diff --git a/.env b/.env new file mode 100644 index 0000000..6bd3c53 --- /dev/null +++ b/.env @@ -0,0 +1,33 @@ +# 服务配置 +HOST=0.0.0.0 +PORT=8000 +DEBUG=false + +# 文件处理配置 +UPLOAD_DIR=./uploads +MAX_FILE_SIZE=104857600 +ALLOWED_EXTENSIONS=.stp,.step,.stp.gz + +# 几何处理配置 +POINTCLOUD_SAMPLE_COUNT=10000 +MESH_QUALITY=high +PARALLEL_PROCESSING=true + +# 数据库配置 +DB_HOST=szcjw +DB_PORT=5432 +DB_NAME=moldinsight +DB_USER=moldinsight +DB_PASSWORD=Qqs1996* + +# RustFS 对象存储配置 (S3v4 API) +RUSTFS_ENDPOINT=http://szcjw:9000 +RUSTFS_ACCESS_KEY=1RlKXw7v3DAsFr4fLckt +RUSTFS_SECRET_KEY=KjWCHXZOh7GAtkLq0eQgNpMSmE6zw8Ddyiou21bB +RUSTFS_TIMEOUT=30 +RUSTFS_PRESIGNED_URL_EXPIRES=3600 + +# JWT认证配置 +SECRET_KEY=your-secret-key-change-in-production-min-32-chars +ALGORITHM=HS256 +ACCESS_TOKEN_EXPIRE_MINUTES=1440 \ No newline at end of file diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..69acca5 --- /dev/null +++ b/.env.example @@ -0,0 +1,33 @@ +# 服务器配置 +HOST=0.0.0.0 +PORT=8000 +DEBUG=false + +# 文件上传配置 +UPLOAD_DIR=./uploads +MAX_FILE_SIZE=104857600 +ALLOWED_EXTENSIONS=.stp,.step,.stp.gz + +# 几何处理配置 +POINTCLOUD_SAMPLE_COUNT=10000 +MESH_QUALITY=high +PARALLEL_PROCESSING=true + +# PostgreSQL 数据库配置 +DB_HOST=localhost +DB_PORT=5432 +DB_NAME=moldinsight +DB_USER=moldinsight_user +DB_PASSWORD=your_secure_password_here + +# RustFS 对象存储配置 (S3v4 API) +RUSTFS_ENDPOINT=http://localhost:9000 +RUSTFS_ACCESS_KEY=your-access-key +RUSTFS_SECRET_KEY=your-secret-key +RUSTFS_TIMEOUT=30 +RUSTFS_PRESIGNED_URL_EXPIRES=3600 + +# JWT认证配置 +SECRET_KEY=your-secret-key-change-in-production-min-32-chars +ALGORITHM=HS256 +ACCESS_TOKEN_EXPIRE_MINUTES=1440 diff --git a/1panel.env b/1panel.env new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/1panel.env @@ -0,0 +1 @@ + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5e77384 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,29 @@ +# Dockerfile for MoldInsight +FROM continuumio/miniconda3:latest + +# 设置工作目录 +WORKDIR /app + +# 复制项目文件 +COPY . . + +# 更新conda并创建环境 +RUN conda update -n base -c defaults conda -y && \ + conda create -n moldinsight python=3.11 pythonocc-core=7.9.0 -c conda-forge -y + +# 激活环境并安装Python依赖 +RUN . /opt/conda/etc/profile.d/conda.sh && \ + conda activate moldinsight && \ + pip install -r requirements.txt + +# 创建必要的目录 +RUN mkdir -p uploads html_output logs + +# 设置启动脚本 +RUN chmod +x start.sh + +# 暴露端口 +EXPOSE 8000 + +# 启动命令(使用shell形式确保环境激活) +CMD ["/bin/bash", "-c", "source /opt/conda/etc/profile.d/conda.sh && conda activate moldinsight && python src/main.py"] \ No newline at end of file diff --git a/LINUX_SETUP.md b/LINUX_SETUP.md new file mode 100644 index 0000000..e788769 --- /dev/null +++ b/LINUX_SETUP.md @@ -0,0 +1,281 @@ +# MoldInsight Linux 部署指南 + +## 系统要求 +- Linux 系统 (Ubuntu 20.04+ / CentOS 8+) +- Python 3.8+ +- PostgreSQL 12+ +- Git + +## 1. 环境准备 + +### 安装系统依赖 +```bash +# Ubuntu/Debian +sudo apt update +sudo apt install python3 python3-pip python3-venv postgresql postgresql-contrib git + +# CentOS/RHEL +sudo yum update +sudo yum install python3 python3-pip postgresql postgresql-server git +``` + +### 配置PostgreSQL +```bash +# 启动PostgreSQL服务 +sudo systemctl start postgresql +sudo systemctl enable postgresql + +# 创建数据库和用户 +sudo -u postgres psql +``` + +在PostgreSQL中执行: +```sql +CREATE DATABASE moldinsight; +CREATE USER molduser WITH PASSWORD 'moldpassword'; +GRANT ALL PRIVILEGES ON DATABASE moldinsight TO molduser; +\q +``` + +## 2. 项目部署 + +### 克隆或复制项目 +```bash +# 如果使用Git +cd /opt +sudo git clone moldinsight +sudo chown -R $USER:$USER moldinsight +cd moldinsight + +# 或者直接复制项目文件到Linux服务器 +``` + +### 创建Python虚拟环境 +```bash +cd moldinsight_project +python3 -m venv venv +source venv/bin/activate +``` + +### 安装依赖 +```bash +pip install --upgrade pip +pip install -r requirements.txt +``` + +## 3. 环境配置 + +### 修改环境配置文件 +编辑 `.env` 文件: +```bash +nano .env +``` + +修改为Linux环境的配置: +```env +# 数据库配置(Linux环境) +DATABASE_URL=postgresql+asyncpg://molduser:moldpassword@localhost:5432/moldinsight + +# 服务配置 +DEBUG=false +HOST=0.0.0.0 +PORT=8000 + +# Redis配置(可选) +REDIS_HOST=localhost +REDIS_PORT=6379 +REDIS_PASSWORD= + +# Kafka配置(可选) +KAFKA_BOOTSTRAP_SERVERS=localhost:9092 +KAFKA_SECURITY_PROTOCOL=PLAINTEXT +``` + +### 创建必要的目录 +```bash +mkdir -p uploads html_output logs +chmod 755 uploads html_output logs +``` + +## 4. 启动服务 + +### 开发模式启动 +```bash +cd moldinsight_project +source venv/bin/activate +python src/main.py +``` + +### 生产环境启动(使用Gunicorn) +```bash +# 安装Gunicorn +pip install gunicorn uvloop httptools + +# 启动服务 +cd moldinsight_project +source venv/bin/activate +gunicorn src.main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000 +``` + +## 5. 系统服务配置(可选) + +### 创建systemd服务文件 +```bash +sudo nano /etc/systemd/system/moldinsight.service +``` + +添加以下内容: +```ini +[Unit] +Description=MoldInsight Geometry Analysis Service +After=network.target postgresql.service + +[Service] +Type=simple +User=www-data +Group=www-data +WorkingDirectory=/opt/moldinsight/moldinsight_project +Environment=PATH=/opt/moldinsight/moldinsight_project/venv/bin +ExecStart=/opt/moldinsight/moldinsight_project/venv/bin/gunicorn src.main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000 +Restart=always + +[Install] +WantedBy=multi-user.target +``` + +### 启用并启动服务 +```bash +sudo systemctl daemon-reload +sudo systemctl enable moldinsight +sudo systemctl start moldinsight +sudo systemctl status moldinsight +``` + +## 6. Nginx反向代理配置(可选) + +### 安装Nginx +```bash +# Ubuntu/Debian +sudo apt install nginx + +# CentOS/RHEL +sudo yum install nginx +``` + +### 创建Nginx配置文件 +```bash +sudo nano /etc/nginx/sites-available/moldinsight +``` + +添加以下内容: +```nginx +server { + listen 80; + server_name your-domain.com; + + location / { + proxy_pass http://127.0.0.1:8000; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + location /static { + alias /opt/moldinsight/moldinsight_project/static; + expires 30d; + } +} +``` + +### 启用站点并重启Nginx +```bash +sudo ln -s /etc/nginx/sites-available/moldinsight /etc/nginx/sites-enabled/ +sudo nginx -t +sudo systemctl restart nginx +``` + +## 7. 防火墙配置 + +```bash +# Ubuntu/Debian (ufw) +sudo ufw allow 80 +sudo ufw allow 8000 +sudo ufw allow ssh +sudo ufw enable + +# CentOS/RHEL (firewalld) +sudo firewall-cmd --permanent --add-port=80/tcp +sudo firewall-cmd --permanent --add-port=8000/tcp +sudo firewall-cmd --permanent --add-service=ssh +sudo firewall-cmd --reload +``` + +## 8. 验证部署 + +### 检查服务状态 +```bash +# 检查应用服务 +curl http://localhost:8000/health + +# 检查数据库连接 +sudo -u postgres psql -d moldinsight -c "SELECT version();" +``` + +### 测试文件上传 +访问 `http://your-server-ip:8000` 上传STP文件测试功能。 + +## 9. 故障排除 + +### 常见问题 + +1. **数据库连接失败** + - 检查PostgreSQL服务状态:`sudo systemctl status postgresql` + - 验证数据库连接:`psql -h localhost -U molduser -d moldinsight` + +2. **端口被占用** + - 检查端口使用:`netstat -tulpn | grep 8000` + - 修改端口或停止占用进程 + +3. **权限问题** + - 确保目录权限正确:`chmod 755 uploads html_output logs` + - 检查文件所有者:`ls -la` + +4. **依赖安装失败** + - 更新pip:`pip install --upgrade pip` + - 使用国内镜像:`pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple` + +## 10. 备份和恢复 + +### 数据库备份 +```bash +# 备份数据库 +sudo -u postgres pg_dump moldinsight > moldinsight_backup.sql + +# 恢复数据库 +sudo -u postgres psql -d moldinsight < moldinsight_backup.sql +``` + +### 文件备份 +```bash +# 备份上传的文件和配置 +tar -czf moldinsight_backup.tar.gz uploads/ html_output/ .env requirements.txt +``` + +## 快速启动脚本 + +创建启动脚本 `start.sh`: +```bash +#!/bin/bash +cd /opt/moldinsight/moldinsight_project +source venv/bin/activate +python src/main.py +``` + +赋予执行权限: +```bash +chmod +x start.sh +./start.sh +``` + +现在您的MoldInsight项目已经可以在Linux环境下正常运行! \ No newline at end of file diff --git a/README.md b/README.md index 2a413c9..e885946 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,73 @@ -# geMoldInsight +# MoldInsight - 模具几何分析系统 +## 项目结构 + +``` +moldinsight_project/ +├── src/ # 源代码目录 +│ ├── main.py # 主程序入口 +│ ├── api/ # API路由 +│ │ └── routes.py +│ ├── core/ # 核心业务逻辑 +│ │ ├── stp_parser.py +│ │ ├── geometry_analyzer.py +│ │ └── mesh_generator.py +│ ├── models/ # 数据模型 +│ │ ├── schemas.py +│ │ └── database.py +│ ├── services/ # 业务服务 +│ │ └── storage_service.py +│ ├── database/ # 数据库管理 +│ │ ├── database.py +│ │ └── init_db.py +│ └── utils/ # 工具类 +│ ├── logger.py +│ ├── file_handler.py +│ └── html_generator.py +├── config/ # 配置文件 +│ └── settings.py +├── static/ # 静态文件 +│ ├── script.js +│ └── style.css +├── templates/ # HTML模板 +│ └── index.html +├── uploads/ # 上传文件目录 +├── html_output/ # 生成的HTML文件 +├── logs/ # 日志文件 +├── tests/ # 测试文件 +├── docs/ # 文档 +├── requirements.txt # 依赖包 +├── docker-compose.yml # Docker配置 +└── .env # 环境变量 +``` + +## 功能特性 + +- ✅ STP文件解析和几何分析 +- ✅ JSON数据导出 +- ✅ PostgreSQL数据库存储 +- ✅ 3D可视化HTML生成 +- ✅ Web界面文件上传 +- ✅ 任务状态跟踪 + +## 这是一个模具设计项目: + +- 输入: 产品的三维模型(STP文件) +- 输出: 模具设计方案(型腔、型芯、工艺参数等) +- 目标: 为泡沫产品(ABS、PP、PC等材料)设计铝制模具 + +## 快速开始 + +1. 安装依赖: +```bash +pip install -r requirements.txt +``` + +2. 配置数据库连接(修改.env文件) + +3. 启动服务: +```bash +python src/main.py +``` + +4. 访问 http://localhost:8000 \ No newline at end of file diff --git a/cleanup_old_buckets.py b/cleanup_old_buckets.py new file mode 100644 index 0000000..290edbf --- /dev/null +++ b/cleanup_old_buckets.py @@ -0,0 +1,336 @@ +#!/usr/bin/env python3 +""" +RustFS 旧桶清理脚本 + +删除所有遗留的旧桶结构,包括: +- moldinsight-geometry +- moldinsight-stp-files +- moldinsight-mold-cavities +- moldinsight-html +- moldinsight-user-files + +注意:这是rustFS,而不是minio,只是用了minio的通用S3接口 +""" + +import asyncio +import sys +import os +from pathlib import Path +from typing import List, Dict +from datetime import datetime + +# 添加项目根目录和 src 目录到 Python 路径 +project_root = Path(__file__).parent +src_root = project_root / "src" +sys.path.insert(0, str(project_root)) +sys.path.insert(0, str(src_root)) + +from storage.rustfs_storage import RustFSManager +from config.settings import settings +from utils.logger import get_logger + +logger = get_logger(__name__) + + +class RustFSCleanup: + """RustFS 旧桶清理器""" + + def __init__(self): + self.rustfs = RustFSManager() + self.is_connected = False + + # 所有需要清理的旧桶 + self.old_buckets_to_clean = [ + 'moldinsight-geometry', + 'moldinsight-stp-files', + 'moldinsight-mold-cavities', + 'moldinsight-html', + 'moldinsight-user-files' + ] + + async def connect(self): + """连接到 RustFS""" + try: + await self.rustfs.connect( + endpoint=settings.RUSTFS_ENDPOINT, + access_key=settings.RUSTFS_ACCESS_KEY, + secret_key=settings.RUSTFS_SECRET_KEY, + timeout=settings.RUSTFS_TIMEOUT + ) + self.is_connected = True + logger.info("RustFS 连接成功") + return True + except Exception as e: + logger.error(f"RustFS 连接失败: {e}") + return False + + async def close(self): + """关闭连接""" + await self.rustfs.close() + self.is_connected = False + logger.info("RustFS 连接已关闭") + + async def list_all_buckets(self) -> List[str]: + """列出所有桶""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + try: + buckets = self.rustfs.client.list_buckets() + bucket_names = [bucket.name for bucket in buckets] + logger.info(f"当前存在的桶: {bucket_names}") + return bucket_names + except Exception as e: + logger.error(f"列出桶失败: {e}") + return [] + + async def check_bucket_status(self) -> Dict[str, Dict]: + """检查桶状态和文件数量""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + bucket_status = {} + + for bucket_name in self.old_buckets_to_clean: + try: + # 检查桶是否存在 + exists = self.rustfs.client.bucket_exists(bucket_name) + + if exists: + # 统计文件数量 + objects = list(self.rustfs.client.list_objects(bucket_name, recursive=True)) + file_count = len(objects) + + # 计算总大小 + total_size = sum(obj.size for obj in objects) + + bucket_status[bucket_name] = { + 'exists': True, + 'file_count': file_count, + 'total_size': total_size, + 'files': [obj.object_name for obj in objects] + } + + logger.info(f"桶 {bucket_name}: 存在, {file_count} 个文件, {total_size} 字节") + else: + bucket_status[bucket_name] = { + 'exists': False, + 'file_count': 0, + 'total_size': 0, + 'files': [] + } + logger.info(f"桶 {bucket_name}: 不存在") + + except Exception as e: + logger.error(f"检查桶 {bucket_name} 状态失败: {e}") + bucket_status[bucket_name] = { + 'exists': False, + 'file_count': 0, + 'total_size': 0, + 'files': [], + 'error': str(e) + } + + return bucket_status + + async def delete_bucket(self, bucket_name: str) -> Dict[str, any]: + """删除单个桶及其所有文件""" + result = { + 'bucket_name': bucket_name, + 'success': False, + 'files_deleted': 0, + 'error': None + } + + try: + # 检查桶是否存在 + if not self.rustfs.client.bucket_exists(bucket_name): + result['success'] = True + result['message'] = "桶不存在,无需删除" + logger.info(f"桶 {bucket_name} 不存在,跳过删除") + return result + + # 列出所有文件 + objects = list(self.rustfs.client.list_objects(bucket_name, recursive=True)) + file_count = len(objects) + + if file_count > 0: + logger.info(f"开始删除桶 {bucket_name} 中的 {file_count} 个文件") + + # 删除所有文件 + for obj in objects: + try: + self.rustfs.client.remove_object(bucket_name, obj.object_name) + result['files_deleted'] += 1 + logger.debug(f"删除文件: {bucket_name}/{obj.object_name}") + except Exception as e: + logger.error(f"删除文件失败 {bucket_name}/{obj.object_name}: {e}") + result['error'] = f"删除文件失败: {e}" + return result + + # 删除空桶 + self.rustfs.client.remove_bucket(bucket_name) + + result['success'] = True + logger.info(f"桶 {bucket_name} 删除成功,共删除 {file_count} 个文件") + + except Exception as e: + result['success'] = False + result['error'] = str(e) + logger.error(f"删除桶 {bucket_name} 失败: {e}") + + return result + + async def cleanup_all_old_buckets(self) -> Dict[str, Dict]: + """清理所有旧桶""" + cleanup_results = {} + + try: + # 检查所有桶状态 + logger.info("=== 检查旧桶状态 ===") + bucket_status = await self.check_bucket_status() + + # 统计需要清理的桶 + buckets_to_clean = [ + bucket_name for bucket_name, status in bucket_status.items() + if status['exists'] and status['file_count'] > 0 + ] + + if not buckets_to_clean: + logger.info("没有需要清理的桶") + return {} + + print(f"\n发现 {len(buckets_to_clean)} 个需要清理的桶:") + for bucket_name in buckets_to_clean: + status = bucket_status[bucket_name] + print(f" - {bucket_name}: {status['file_count']} 个文件, {status['total_size']} 字节") + + # 确认清理 + print("\n警告:此操作将永久删除这些桶及其所有文件!") + confirm = input("确认清理?(输入 'DELETE' 确认): ").strip() + + if confirm != 'DELETE': + logger.info("用户取消清理操作") + return {} + + # 执行清理 + logger.info("=== 开始清理旧桶 ===") + + for bucket_name in buckets_to_clean: + print(f"\n清理桶: {bucket_name}") + result = await self.delete_bucket(bucket_name) + cleanup_results[bucket_name] = result + + if result['success']: + print(f" ✓ 清理成功,删除 {result['files_deleted']} 个文件") + else: + print(f" ✗ 清理失败: {result['error']}") + + logger.info("=== 旧桶清理完成 ===") + + except Exception as e: + logger.error(f"清理过程失败: {e}") + + return cleanup_results + + async def run_cleanup(self) -> Dict[str, any]: + """运行完整清理流程""" + cleanup_summary = { + 'start_time': datetime.now().isoformat(), + 'connection_status': False, + 'all_buckets': [], + 'bucket_status': {}, + 'cleanup_results': {}, + 'end_time': None, + 'status': 'failed' + } + + try: + # 连接 + logger.info("=== RustFS 旧桶清理开始 ===") + connection_result = await self.connect() + if not connection_result: + raise RuntimeError("无法连接到 RustFS") + + cleanup_summary['connection_status'] = True + + # 列出所有桶 + all_buckets = await self.list_all_buckets() + cleanup_summary['all_buckets'] = all_buckets + + # 检查状态 + bucket_status = await self.check_bucket_status() + cleanup_summary['bucket_status'] = bucket_status + + # 执行清理 + cleanup_results = await self.cleanup_all_old_buckets() + cleanup_summary['cleanup_results'] = cleanup_results + + # 完成 + cleanup_summary['status'] = 'completed' + cleanup_summary['end_time'] = datetime.now().isoformat() + + logger.info("=== RustFS 旧桶清理完成 ===") + + return cleanup_summary + + except Exception as e: + cleanup_summary['error'] = str(e) + cleanup_summary['end_time'] = datetime.now().isoformat() + logger.error(f"清理失败: {e}") + return cleanup_summary + + finally: + await self.close() + + +async def main(): + """主函数""" + cleanup = RustFSCleanup() + + print("=== RustFS 旧桶清理工具 ===") + print("注意:这是rustFS,而不是minio,只是用了minio的通用S3接口") + print("\n此工具将删除以下遗留桶:") + print(" - moldinsight-geometry") + print(" - moldinsight-stp-files") + print(" - moldinsight-mold-cavities") + print(" - moldinsight-html") + print(" - moldinsight-user-files") + print("\n请确保所有重要数据已备份!") + + # 运行清理 + result = await cleanup.run_cleanup() + + # 输出结果 + print("\n=== 清理结果摘要 ===") + print(f"状态: {result['status']}") + print(f"开始时间: {result['start_time']}") + print(f"结束时间: {result['end_time']}") + + if 'error' in result: + print(f"错误: {result['error']}") + + # 桶状态 + print("\n--- 桶状态检查 ---") + for bucket_name, status in result['bucket_status'].items(): + if status['exists']: + print(f"{bucket_name}: 存在, {status['file_count']} 个文件") + else: + print(f"{bucket_name}: 不存在") + + # 清理结果 + print("\n--- 清理结果 ---") + if result['cleanup_results']: + for bucket_name, cleanup_result in result['cleanup_results'].items(): + if cleanup_result['success']: + print(f"{bucket_name}: 成功,删除 {cleanup_result['files_deleted']} 个文件") + else: + print(f"{bucket_name}: 失败 - {cleanup_result.get('error', '未知错误')}") + else: + print("未执行清理操作") + + print("\n=== 清理完成 ===") + + +if __name__ == "__main__": + asyncio.run(main()) \ No newline at end of file diff --git a/config/__init__.py b/config/__init__.py new file mode 100644 index 0000000..96b788a --- /dev/null +++ b/config/__init__.py @@ -0,0 +1,2 @@ +# config package +# 配置模块包 \ No newline at end of file diff --git a/config/settings.py b/config/settings.py new file mode 100644 index 0000000..dfc4cd4 --- /dev/null +++ b/config/settings.py @@ -0,0 +1,92 @@ +# config/settings.py +import os +import urllib.parse +from typing import Dict, Any +from dotenv import load_dotenv + +# 加载.env文件 +load_dotenv() + + +class Settings: + """配置管理器""" + + def __init__(self): + # 从环境变量加载配置 + self.HOST = os.getenv('HOST', '0.0.0.0') + self.PORT = int(os.getenv('PORT', '8000')) + self.DEBUG = os.getenv('DEBUG', 'false').lower() == 'true' + + # 文件处理配置 + self.UPLOAD_DIR = os.getenv('UPLOAD_DIR', './uploads') + self.MAX_FILE_SIZE = int(os.getenv('MAX_FILE_SIZE', '104857600')) + self.ALLOWED_EXTENSIONS = os.getenv('ALLOWED_EXTENSIONS', '.stp,.step,.stp.gz') + + # 几何处理配置 + self.POINTCLOUD_SAMPLE_COUNT = int(os.getenv('POINTCLOUD_SAMPLE_COUNT', '10000')) + self.MESH_QUALITY = os.getenv('MESH_QUALITY', 'high') + self.PARALLEL_PROCESSING = os.getenv('PARALLEL_PROCESSING', 'true').lower() == 'true' + + # RustFS 对象存储配置 (S3v4 API) + self.RUSTFS_ENDPOINT = os.getenv('RUSTFS_ENDPOINT', 'http://localhost:8080') + self.RUSTFS_ACCESS_KEY = os.getenv('RUSTFS_ACCESS_KEY', 'your-access-key') + self.RUSTFS_SECRET_KEY = os.getenv('RUSTFS_SECRET_KEY', 'your-secret-key') + self.RUSTFS_TIMEOUT = int(os.getenv('RUSTFS_TIMEOUT', '30')) + + # 预签名URL过期时间(秒) + self.RUSTFS_PRESIGNED_URL_EXPIRES = int(os.getenv('RUSTFS_PRESIGNED_URL_EXPIRES', '3600')) + + # 数据库配置 - 必须来自环境变量 + # 先检查所有配置是否存在 + db_host = os.getenv('DB_HOST') + db_port_str = os.getenv('DB_PORT') + db_name = os.getenv('DB_NAME') + db_user = os.getenv('DB_USER') + db_password = os.getenv('DB_PASSWORD') + + missing_configs = [] + if not db_host: + missing_configs.append("DB_HOST") + if not db_port_str: + missing_configs.append("DB_PORT") + if not db_name: + missing_configs.append("DB_NAME") + if not db_user: + missing_configs.append("DB_USER") + if not db_password: + missing_configs.append("DB_PASSWORD") + + if missing_configs: + raise ValueError(f"数据库配置缺失,请在.env文件中设置: {', '.join(missing_configs)}") + + # 所有配置都存在,进行赋值 + self.DB_HOST = db_host + self.DB_PORT = int(db_port_str) + self.DB_NAME = db_name + self.DB_USER = db_user + self.DB_PASSWORD = db_password + + # JWT配置 + self.SECRET_KEY = os.getenv('SECRET_KEY', 'your-secret-key-change-in-production') + self.ALGORITHM = os.getenv('ALGORITHM', 'HS256') + self.ACCESS_TOKEN_EXPIRE_MINUTES = int(os.getenv('ACCESS_TOKEN_EXPIRE_MINUTES', '1440')) # 24小时 + + @property + def DATABASE_URL(self) -> str: + """动态生成数据库连接URL""" + # 安全编码密码 + if self.DB_PASSWORD: + safe_password = urllib.parse.quote(self.DB_PASSWORD.encode('utf-8'), safe='') + else: + safe_password = "" + + return f"postgresql+asyncpg://{self.DB_USER}:{safe_password}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}" + + @property + def allowed_extensions_set(self) -> set: + """将ALLOWED_EXTENSIONS字符串转换为set""" + return set(ext.strip() for ext in self.ALLOWED_EXTENSIONS.split(',')) + + +# 创建全局配置实例 +settings = Settings() \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..95504f8 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,91 @@ +# docker-compose.yml - 完整版(包含PostgreSQL和MinIO) +services: + postgres: + image: postgres:15 + container_name: moldinsight_postgres + environment: + POSTGRES_DB: ${DB_NAME:-moldinsight} + POSTGRES_USER: ${DB_USER:-moldinsight_user} + POSTGRES_PASSWORD: ${DB_PASSWORD:-moldinsight_password} + ports: + - "5432:5432" + volumes: + - postgres_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-moldinsight_user} -d ${DB_NAME:-moldinsight}"] + interval: 10s + timeout: 5s + retries: 5 + restart: unless-stopped + networks: + - moldinsight_network + + minio: + image: minio/minio:latest + container_name: moldinsight_minio + command: server /data --console-address ":9001" + environment: + MINIO_ROOT_USER: ${MINIO_ACCESS_KEY:-minioadmin} + MINIO_ROOT_PASSWORD: ${MINIO_SECRET_KEY:-minioadmin} + ports: + - "9000:9000" # API端口 + - "9001:9001" # 控制台端口 + volumes: + - minio_data:/data + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] + interval: 30s + timeout: 20s + retries: 3 + restart: unless-stopped + networks: + - moldinsight_network + + moldinsight: + build: . + container_name: moldinsight_app + ports: + - "10001:8000" # 宿主机端口:容器端口 + volumes: + - ./uploads:/app/uploads + - ./html_output:/app/html_output + - ./logs:/app/logs + - ./.env:/app/.env:ro + environment: + # 应用内部使用8000端口(容器内) + - PORT=8000 + # 数据库配置 + - DB_HOST=postgres + - DB_PORT=5432 + - DB_NAME=${DB_NAME:-moldinsight} + - DB_USER=${DB_USER:-moldinsight_user} + - DB_PASSWORD=${DB_PASSWORD:-moldinsight_password} + # MinIO配置 + - MINIO_ENDPOINT=minio:9000 + - MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY:-minioadmin} + - MINIO_SECRET_KEY=${MINIO_SECRET_KEY:-minioadmin} + - MINIO_SECURE=false + depends_on: + postgres: + condition: service_healthy + minio: + condition: service_healthy + restart: unless-stopped + healthcheck: + test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s + networks: + - moldinsight_network + +volumes: + postgres_data: + driver: local + minio_data: + driver: local + +networks: + moldinsight_network: + driver: bridge diff --git a/docs/RUSTFS_STORAGE.md b/docs/RUSTFS_STORAGE.md new file mode 100644 index 0000000..ce3c1b0 --- /dev/null +++ b/docs/RUSTFS_STORAGE.md @@ -0,0 +1,465 @@ +# RustFS 对象存储集成说明 + +## 架构概述 + +本项目采用 **RustFS** 作为对象存储和 **PostgreSQL** 作为元数据存储的双层存储架构。 + +``` +┌─────────────────────────────────────────────────────────────┐ +│ 应用层 (FastAPI) │ +└──────────────────────┬──────────────────────────────────────┘ + │ + ┌──────────────┴──────────────┐ + │ │ +┌───────▼────────┐ ┌─────────▼─────────┐ +│ PostgreSQL │ │ RustFS │ +│ (元数据) │ │ (对象存储) │ +│ │ │ │ +│ - users │ │ - stp-files │ +│ - stp_files │ │ - geometry │ +│ - geometry_data│ │ - mold-cavities │ +│ - mold_cavity │ │ - html-files │ +│ - features │ │ - user-files │ +│ - logs │ │ │ +└────────────────┘ └──────────────────┘ +``` + +## RustFS API 端点 + +假设 RustFS 运行在 `http://localhost:8080`,需要实现以下 REST API: + +### 1. 健康检查 +``` +GET /health +返回: 200 OK +``` + +### 2. 初始化上传 +``` +POST /api/v1/upload/init +Content-Type: application/json +Authorization: Bearer + +请求体: +{ + "namespace": "moldinsight/stp-files", + "key": "stp-files/abc123.stp", + "file_size": 1234567, + "file_hash": "sha256_hash", + "metadata": { + "original_filename": "model.stp", + "user_id": "1" + } +} + +响应: +{ + "upload_id": "unique-upload-id", + "upload_url": "https://rustfs/upload/xyz", + "expires_at": "2024-01-01T00:00:00Z" +} +``` + +### 3. 上传文件内容 +``` +PUT +Content-Type: application/octet-stream +Content-Length: 1234567 +X-File-Hash: sha256_hash + +请求体: <文件二进制数据> + +响应: 201 Created +``` + +### 4. 完成上传 +``` +POST /api/v1/upload/complete +Content-Type: application/json +Authorization: Bearer + +请求体: +{ + "upload_id": "unique-upload-id", + "namespace": "moldinsight/stp-files", + "key": "stp-files/abc123.stp" +} + +响应: +{ + "object_key": "moldinsight/stp-files/abc123.stp", + "etag": "d41d8cd98f00b204e9800998ecf8427e", + "created_at": "2024-01-01T00:00:00Z" +} +``` + +### 5. 上传 JSON(小文件,直接上传) +``` +PUT /api/v1/objects// +Content-Type: application/json +Authorization: Bearer +X-File-Hash: sha256_hash + +请求体: + +响应: 201 Created +{ + "object_key": "moldinsight/geometry/abc123.json", + "etag": "d41d8cd98f00b204e9800998ecf8427e", + "created_at": "2024-01-01T00:00:00Z" +} +``` + +### 6. 下载文件 +``` +GET /api/v1/objects// +Authorization: Bearer + +响应: <文件二进制数据> +Content-Type: <原上传时的内容类型> +Content-Length: <文件大小> +ETag: <文件etag> +``` + +### 7. 获取文件信息 +``` +GET /api/v1/objects///info +Authorization: Bearer + +响应: +{ + "object_key": "moldinsight/stp-files/abc123.stp", + "namespace": "moldinsight/stp-files", + "file_size": 1234567, + "file_hash": "sha256_hash", + "content_type": "application/octet-stream", + "created_at": "2024-01-01T00:00:00Z", + "last_modified": "2024-01-01T00:00:00Z", + "metadata": { + "original_filename": "model.stp", + "user_id": "1" + } +} +``` + +### 8. 删除文件 +``` +DELETE /api/v1/objects// +Authorization: Bearer + +响应: 204 No Content +``` + +### 9. 列出文件 +``` +GET /api/v1/buckets//objects?prefix=stp-files +Authorization: Bearer + +响应: +{ + "namespace": "moldinsight/stp-files", + "prefix": "stp-files", + "objects": [ + { + "object_key": "moldinsight/stp-files/abc123.stp", + "file_size": 1234567, + "file_hash": "sha256_hash", + "created_at": "2024-01-01T00:00:00Z" + }, + ... + ], + "is_truncated": false, + "next_marker": null +} +``` + +### 10. 生成预签名 URL +``` +POST /api/v1/presigned-url +Content-Type: application/json +Authorization: Bearer + +请求体: +{ + "namespace": "moldinsight/stp-files", + "key": "stp-files/abc123.stp", + "expires": 3600, + "method": "GET" +} + +响应: +{ + "url": "https://rustfs/objects/moldinsight/stp-files/abc123.stp?signature=xyz&expires=123", + "expires_at": "2024-01-01T01:00:00Z" +} +``` + +### 11. 存储统计 +``` +GET /api/v1/stats +Authorization: Bearer + +响应: +{ + "total_objects": 1234, + "total_size": 1234567890, + "namespace_stats": { + "moldinsight/stp-files": { + "object_count": 100, + "total_size": 123456789 + }, + "moldinsight/geometry": { + "object_count": 200, + "total_size": 234567890 + }, + ... + } +} +``` + +## 存储桶(命名空间) + +| 命名空间 | 用途 | 存储内容 | +|---------|------|---------| +| `moldinsight/stp-files` | STP/STEP文件 | 用户上传的原始3D模型文件 | +| `moldinsight/geometry` | 几何数据 | 几何分析结果的JSON数据 | +| `moldinsight/mold-cavities` | 模具型腔数据 | 模具设计的详细JSON数据 | +| `moldinsight/html` | HTML文件 | 生成的HTML报告文件 | +| `moldinsight/user-files` | 用户文件 | 其他用户上传的文件 | + +## 快速开始 + +### 1. 配置环境变量 + +```bash +# 复制示例配置 +cp .env.example .env + +# 编辑 .env 文件 +nano .env +``` + +设置 RustFS 相关配置: +```env +RUSTFS_ENDPOINT=http://localhost:8080 +RUSTFS_API_KEY=your-rustfs-api-key +RUSTFS_TIMEOUT=30 +RUSTFS_PRESIGNED_URL_EXPIRES=3600 +``` + +### 2. 启动 RustFS 服务 + +假设你已经有 RustFS 服务,如果没有,可以按照以下方式启动: + +```bash +# 使用 Docker(如果提供了 Docker 镜像) +docker run -d \ + --name rustfs \ + -p 8080:8080 \ + -e RUSTFS_API_KEY=your-rustfs-api-key \ + -e RUSTFS_STORAGE_PATH=/data \ + -v rustfs_data:/data \ + your-registry/rustfs:latest + +# 或直接运行编译好的二进制文件 +./rustfs-server --port 8080 --api-key your-rustfs-api-key --storage-path ./rustfs-data +``` + +### 3. 初始化存储 + +```bash +# 初始化 RustFS 连接 +python src/storage/init_storage.py +``` + +### 4. 使用存储集成服务 + +```python +from services.storage_integration_rustfs import storage_integration +from database.database import db_manager + +async def upload_file(file_path: str): + async with db_manager.get_session() as session: + stp_file = await storage_integration.save_stp_file( + session=session, + file_path=Path(file_path), + original_filename="model.stp", + user_id=1 + ) + print(f"文件已保存到 RustFS,ID: {stp_file.id}") +``` + +## Python 客户端使用 + +### 上传文件 + +```python +from storage.rustfs_storage import rustfs_manager +from pathlib import Path + +# 先连接 +await rustfs_manager.connect( + endpoint="http://localhost:8080", + api_key="your-api-key" +) + +# 上传 STP 文件 +result = await rustfs_manager.upload_file( + bucket_type='stp_files', + file_path=Path('model.stp'), + original_filename='model.stp' +) +print(f"上传成功: {result['object_key']}") +``` + +### 上传 JSON 数据 + +```python +geometry_data = { + "volume": 5061079.99, + "surface_area": 640037.28, + "bounding_box": {...} +} + +result = await rustfs_manager.upload_json_data( + bucket_type='geometry_data', + json_data=geometry_data, + file_hash='sha256-hash' +) +print(f"JSON 上传成功: {result['object_key']}") +``` + +### 下载文件 + +```python +data = await rustfs_manager.download_file( + bucket_type='geometry_data', + object_key='geometry_data/abc123.json' +) +json_data = json.loads(data.decode('utf-8')) +print(json_data) +``` + +### 生成预签名 URL + +```python +url = await rustfs_manager.generate_presigned_url( + bucket_type='stp_files', + object_key='stp-files/abc123.stp', + expires=3600 # 1小时 +) +print(f"临时访问链接: {url}") +``` + +### 列出文件 + +```python +files = await rustfs_manager.list_files( + bucket_type='stp_files', + prefix='stp-files' +) +for f in files: + print(f"{f['object_key']}: {f['file_size']} bytes") +``` + +## RustFS 服务端实现参考 + +如果你需要实现 RustFS 服务端,以下是一个简单的 Rust 实现框架: + +```rust +use actix_web::{web, App, HttpServer}; +use serde::{Deserialize, Serialize}; +use std::path::PathBuf; + +#[derive(Deserialize)] +struct UploadInitRequest { + namespace: String, + key: String, + file_size: u64, + file_hash: String, + metadata: Option, +} + +#[derive(Serialize)] +struct UploadInitResponse { + upload_id: String, + upload_url: String, + expires_at: String, +} + +async fn upload_init( + req: web::Json, + path: web::Data +) -> impl web::Responder { + // 验证 API Key + // 生成 upload_id + // 返回上传 URL + web::Json(UploadInitResponse { ... }) +} + +#[actix_web::main] +async fn main() -> std::io::Result<()> { + HttpServer::new(|| { + App::new() + .route("/health", web::get().to(health_check)) + .route("/api/v1/upload/init", web::post().to(upload_init)) + // ... 其他路由 + }) + .bind("0.0.0.0:8080")? + .run() + .await +} +``` + +## 故障排除 + +### 连接 RustFS 失败 +``` +错误: RustFS 连接失败 +解决: +1. 检查 RUSTFS_ENDPOINT 是否正确 +2. 检查 RustFS 服务是否运行 +3. 检查网络连接 +4. 验证 API Key +``` + +### 文件上传失败 +``` +错误: RustFS 上传失败 +解决: +1. 检查磁盘空间 +2. 检查网络连接 +3. 检查文件大小限制 +4. 查看服务端日志 +``` + +### 预签名 URL 失败 +``` +错误: RustFS 生成预签名URL失败 +解决: +1. 检查 expires 参数是否有效 +2. 确认服务端支持预签名 URL +3. 检查权限配置 +``` + +## 性能优化建议 + +### 客户端 +- 使用连接池(aiohttp 默认支持) +- 实现上传重试机制 +- 对大文件使用分片上传 +- 并行上传多个小文件 + +### 服务端 +- 实现缓存层 +- 支持范围请求(断点续传) +- 压缩存储 +- CDN 分发静态文件 + +## 安全建议 + +1. **更改默认 API Key**:生产环境必须使用强密钥 +2. **启用 HTTPS**:生产环境使用 TLS +3. **访问控制**:配置命名空间权限 +4. **数据加密**:敏感数据加密存储 +5. **日志监控**:记录所有访问和操作 diff --git a/docs/STORAGE_SETUP.md b/docs/STORAGE_SETUP.md new file mode 100644 index 0000000..2033d72 --- /dev/null +++ b/docs/STORAGE_SETUP.md @@ -0,0 +1,255 @@ +# 存储架构说明 + +## 架构概述 + +本项目采用 **MinIO (S3兼容)** 作为对象存储和 **PostgreSQL** 作为元数据存储的双层存储架构。 + +``` +┌─────────────────────────────────────────────────────────────┐ +│ 应用层 (FastAPI) │ +└──────────────────────┬──────────────────────────────────────┘ + │ + ┌──────────────┴──────────────┐ + │ │ +┌───────▼────────┐ ┌─────────▼─────────┐ +│ PostgreSQL │ │ MinIO/S3 │ +│ (元数据) │ │ (对象存储) │ +│ │ │ │ +│ - users │ │ - stp-files │ +│ - stp_files │ │ - geometry │ +│ - geometry_data│ │ - mold-cavities │ +│ - mold_cavity │ │ - html-files │ +│ - features │ │ - user-files │ +│ - logs │ │ │ +└────────────────┘ └──────────────────┘ +``` + +## PostgreSQL 数据表 + +### 用户管理 +- `users` - 用户信息(用户名、邮箱、密码等) + +### 文件管理 +- `stp_files` - STP文件元数据(文件名、哈希、大小、状态等) +- `html_files` - HTML报告文件元数据 + +### 几何数据 +- `geometry_data` - 几何分析数据(体积、表面积、边界框等) +- `mold_cavity_data` - 模具型腔数据(工艺参数、质量评估等) +- `feature_detections` - 特征检测结果(壁厚、拔模角等) +- `design_recommendations` - 设计建议(优先级、参数等) + +### 任务和日志 +- `processing_tasks` - 处理任务记录 +- `user_activities` - 用户活动日志 +- `system_logs` - 系统日志 + +## MinIO 存储桶 + +| 存储桶名称 | 用途 | 存储内容 | +|-------------|------|---------| +| `moldinsight-stp-files` | STP/STEP文件 | 用户上传的原始3D模型文件 | +| `moldinsight-geometry` | 几何数据 | 几何分析结果的JSON数据 | +| `moldinsight-mold-cavities` | 模具型腔数据 | 模具设计的详细JSON数据 | +| `moldinsight-html` | HTML文件 | 生成的HTML报告文件 | +| `moldinsight-user-files` | 用户文件 | 其他用户上传的文件 | + +## 快速开始 + +### 1. 安装依赖 + +```bash +pip install -r requirements.txt +``` + +### 2. 启动 PostgreSQL + +使用 Docker Compose(推荐): +```bash +docker-compose up -d postgres +``` + +或手动启动: +```bash +# 创建数据库 +createdb moldinsight + +# 运行数据库容器 +docker run -d \ + --name postgres \ + -e POSTGRES_DB=moldinsight \ + -e POSTGRES_USER=moldinsight_user \ + -e POSTGRES_PASSWORD=your_password \ + -p 5432:5432 \ + postgres:15 +``` + +### 3. 启动 MinIO + +使用 Docker Compose(推荐): +```bash +docker-compose up -d minio +``` + +或手动启动: +```bash +docker run -d \ + --name minio \ + -p 9000:9000 \ + -p 9001:9001 \ + -e MINIO_ROOT_USER=minioadmin \ + -e MINIO_ROOT_PASSWORD=minioadmin \ + minio/minio server /data --console-address ":9001" +``` + +### 4. 配置环境变量 + +```bash +# 复制示例配置 +cp .env.example .env + +# 编辑 .env 文件,修改数据库和MinIO配置 +nano .env +``` + +### 5. 初始化数据库和存储 + +```bash +# 初始化数据库 +python src/database/init_db.py + +# 初始化MinIO存储 +python src/storage/init_storage.py +``` + +### 6. 启动服务 + +```bash +python src/main.py +``` + +## 使用示例 + +### 保存STP文件 + +```python +from services.storage_integration import storage_integration +from database.database import db_manager + +async def upload_file(file_path: str): + async with db_manager.get_session() as session: + stp_file = await storage_integration.save_stp_file( + session=session, + file_path=Path(file_path), + original_filename="model.stp", + user_id=1 + ) + print(f"文件已保存,ID: {stp_file.id}") +``` + +### 保存几何数据 + +```python +async def save_geometry(stp_file_id: int, geometry_data: dict): + async with db_manager.get_session() as session: + geo_data = await storage_integration.save_geometry_data( + session=session, + stp_file_id=stp_file_id, + geometry_json=geometry_data, + analysis_method="pythonocc" + ) + print(f"几何数据已保存,ID: {geo_data.id}") +``` + +### 获取文件数据 + +```python +async def get_file_data(stp_file_id: int): + async with db_manager.get_session() as session: + data = await storage_integration.get_stp_file_with_data( + session=session, + stp_file_id=stp_file_id + ) + + # 访问几何数据 + geometry = data['geometry_data'] + print(f"体积: {geometry['volume']}") + print(f"表面积: {geometry['surface_area']}") + + # 访问模具型腔数据 + cavity = data['mold_cavity_data'] + print(f"模具材料: {cavity['mold_material']}") + + # 访问特征和建议 + for feature in data['features']: + print(f"特征: {feature['feature_type']}") +``` + +## 数据清理策略 + +### MinIO 对象存储 +- 设置生命周期策略自动删除旧文件 +- 示例:删除30天前的临时文件 + +### PostgreSQL +- 定期清理已删除用户的记录 +- 归档超过6个月的日志数据 + +## 监控和维护 + +### 检查存储使用情况 +```bash +# MinIO控制台 +# http://localhost:9001 +# 用户名: minioadmin +# 密码: minioadmin +``` + +### 数据库备份 +```bash +# 备份数据库 +pg_dump -h localhost -U moldinsight_user moldinsight > backup.sql + +# 恢复数据库 +psql -h localhost -U moldinsight_user moldinsight < backup.sql +``` + +## 性能优化 + +### PostgreSQL +- 创建适当的索引(已在模型中定义) +- 定期运行 VACUUM 和 ANALYZE +- 考虑使用连接池(已配置) + +### MinIO +- 启用缓存层 +- 配置CDN分发静态文件 +- 使用多区域复制 + +## 安全建议 + +1. **更改默认密码**:生产环境必须更改所有默认密码 +2. **启用TLS**:生产环境启用 HTTPS +3. **访问控制**:配置适当的用户权限 +4. **数据加密**:敏感数据加密存储 +5. **定期备份**:设置自动备份策略 + +## 故障排除 + +### 连接MinIO失败 +``` +错误: 对象存储连接失败 +解决: 检查 MINIO_ENDPOINT, MINIO_ACCESS_KEY, MINIO_SECRET_KEY 配置 +``` + +### 数据库连接失败 +``` +错误: 数据库连接失败 +解决: 检查 DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD 配置 +``` + +### 文件上传失败 +``` +错误: STP文件上传失败 +解决: 检查磁盘空间、网络连接、MinIO权限 +``` diff --git a/html_output/fsa30scy_tc-01-0817_stp_20251115_172420.html b/html_output/fsa30scy_tc-01-0817_stp_20251115_172420.html new file mode 100644 index 0000000..55310e8 --- /dev/null +++ b/html_output/fsa30scy_tc-01-0817_stp_20251115_172420.html @@ -0,0 +1,226 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 5061080.00 mm³ +
+
+ 表面积: + 640037.28 mm² +
+
+ 边界框: + 203.8 × 563.2 × 193.3 mm +
+
+ 面数: + 232 +
+
+ 边数: + 1337 +
+
+ 顶点数: + 2674 +
+
+ +
+ + +
+
+ + + + diff --git a/html_output/fsa30scy_tc-01-0817_stp_20251115_233520.html b/html_output/fsa30scy_tc-01-0817_stp_20251115_233520.html new file mode 100644 index 0000000..55310e8 --- /dev/null +++ b/html_output/fsa30scy_tc-01-0817_stp_20251115_233520.html @@ -0,0 +1,226 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 5061080.00 mm³ +
+
+ 表面积: + 640037.28 mm² +
+
+ 边界框: + 203.8 × 563.2 × 193.3 mm +
+
+ 面数: + 232 +
+
+ 边数: + 1337 +
+
+ 顶点数: + 2674 +
+
+ +
+ + +
+
+ + + + diff --git a/html_output/fsa30scy_tc-01-0817_stp_20260118_234823.html b/html_output/fsa30scy_tc-01-0817_stp_20260118_234823.html new file mode 100644 index 0000000..e055a77 --- /dev/null +++ b/html_output/fsa30scy_tc-01-0817_stp_20260118_234823.html @@ -0,0 +1,226 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 5061080.00 mm³ +
+
+ 表面积: + 640037.28 mm² +
+
+ 边界框: + 203.8 × 563.2 × 193.3 mm +
+
+ 面数: + 232 +
+
+ 边数: + 1337 +
+
+ 顶点数: + 2674 +
+
+ +
+ + +
+
+ + + + diff --git a/html_output/fsa30scy_tc-01-0817_stp_20260118_235737.html b/html_output/fsa30scy_tc-01-0817_stp_20260118_235737.html new file mode 100644 index 0000000..e055a77 --- /dev/null +++ b/html_output/fsa30scy_tc-01-0817_stp_20260118_235737.html @@ -0,0 +1,226 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 5061080.00 mm³ +
+
+ 表面积: + 640037.28 mm² +
+
+ 边界框: + 203.8 × 563.2 × 193.3 mm +
+
+ 面数: + 232 +
+
+ 边数: + 1337 +
+
+ 顶点数: + 2674 +
+
+ +
+ + +
+
+ + + + diff --git a/html_output/fsa30scy_tc-01-0817_stp_20260119_002729.html b/html_output/fsa30scy_tc-01-0817_stp_20260119_002729.html new file mode 100644 index 0000000..e055a77 --- /dev/null +++ b/html_output/fsa30scy_tc-01-0817_stp_20260119_002729.html @@ -0,0 +1,226 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 5061080.00 mm³ +
+
+ 表面积: + 640037.28 mm² +
+
+ 边界框: + 203.8 × 563.2 × 193.3 mm +
+
+ 面数: + 232 +
+
+ 边数: + 1337 +
+
+ 顶点数: + 2674 +
+
+ +
+ + +
+
+ + + + diff --git a/html_output/fsa30scy_tc-01-0817_stp_20260119_003755.html b/html_output/fsa30scy_tc-01-0817_stp_20260119_003755.html new file mode 100644 index 0000000..e055a77 --- /dev/null +++ b/html_output/fsa30scy_tc-01-0817_stp_20260119_003755.html @@ -0,0 +1,226 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 5061080.00 mm³ +
+
+ 表面积: + 640037.28 mm² +
+
+ 边界框: + 203.8 × 563.2 × 193.3 mm +
+
+ 面数: + 232 +
+
+ 边数: + 1337 +
+
+ 顶点数: + 2674 +
+
+ +
+ + +
+
+ + + + diff --git a/html_output/fsa30scy_tc-01-0817_stp_20260119_004422.html b/html_output/fsa30scy_tc-01-0817_stp_20260119_004422.html new file mode 100644 index 0000000..e055a77 --- /dev/null +++ b/html_output/fsa30scy_tc-01-0817_stp_20260119_004422.html @@ -0,0 +1,226 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 5061080.00 mm³ +
+
+ 表面积: + 640037.28 mm² +
+
+ 边界框: + 203.8 × 563.2 × 193.3 mm +
+
+ 面数: + 232 +
+
+ 边数: + 1337 +
+
+ 顶点数: + 2674 +
+
+ +
+ + +
+
+ + + + diff --git a/html_output/fsa30scy_tc-01-0817_stp_20260119_004925.html b/html_output/fsa30scy_tc-01-0817_stp_20260119_004925.html new file mode 100644 index 0000000..e055a77 --- /dev/null +++ b/html_output/fsa30scy_tc-01-0817_stp_20260119_004925.html @@ -0,0 +1,226 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 5061080.00 mm³ +
+
+ 表面积: + 640037.28 mm² +
+
+ 边界框: + 203.8 × 563.2 × 193.3 mm +
+
+ 面数: + 232 +
+
+ 边数: + 1337 +
+
+ 顶点数: + 2674 +
+
+ +
+ + +
+
+ + + + diff --git a/html_output/fsa30scy_tc-01-0817_stp_20260130_224517.html b/html_output/fsa30scy_tc-01-0817_stp_20260130_224517.html new file mode 100644 index 0000000..e055a77 --- /dev/null +++ b/html_output/fsa30scy_tc-01-0817_stp_20260130_224517.html @@ -0,0 +1,226 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 5061080.00 mm³ +
+
+ 表面积: + 640037.28 mm² +
+
+ 边界框: + 203.8 × 563.2 × 193.3 mm +
+
+ 面数: + 232 +
+
+ 边数: + 1337 +
+
+ 顶点数: + 2674 +
+
+ +
+ + +
+
+ + + + diff --git a/html_output/fsa30scy_tc-01-0817_stp_20260130_225821.html b/html_output/fsa30scy_tc-01-0817_stp_20260130_225821.html new file mode 100644 index 0000000..e055a77 --- /dev/null +++ b/html_output/fsa30scy_tc-01-0817_stp_20260130_225821.html @@ -0,0 +1,226 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 5061080.00 mm³ +
+
+ 表面积: + 640037.28 mm² +
+
+ 边界框: + 203.8 × 563.2 × 193.3 mm +
+
+ 面数: + 232 +
+
+ 边数: + 1337 +
+
+ 顶点数: + 2674 +
+
+ +
+ + +
+
+ + + + diff --git a/html_output/fsa30scy_tc-01-0817_stp_20260130_231109.html b/html_output/fsa30scy_tc-01-0817_stp_20260130_231109.html new file mode 100644 index 0000000..e055a77 --- /dev/null +++ b/html_output/fsa30scy_tc-01-0817_stp_20260130_231109.html @@ -0,0 +1,226 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 5061080.00 mm³ +
+
+ 表面积: + 640037.28 mm² +
+
+ 边界框: + 203.8 × 563.2 × 193.3 mm +
+
+ 面数: + 232 +
+
+ 边数: + 1337 +
+
+ 顶点数: + 2674 +
+
+ +
+ + +
+
+ + + + diff --git a/html_output/fsa30scy_tc-01-0817_stp_20260130_231519.html b/html_output/fsa30scy_tc-01-0817_stp_20260130_231519.html new file mode 100644 index 0000000..e055a77 --- /dev/null +++ b/html_output/fsa30scy_tc-01-0817_stp_20260130_231519.html @@ -0,0 +1,226 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 5061080.00 mm³ +
+
+ 表面积: + 640037.28 mm² +
+
+ 边界框: + 203.8 × 563.2 × 193.3 mm +
+
+ 面数: + 232 +
+
+ 边数: + 1337 +
+
+ 顶点数: + 2674 +
+
+ +
+ + +
+
+ + + + diff --git a/html_output/fsa30scy_tc-01-0817_stp_20260130_233908.html b/html_output/fsa30scy_tc-01-0817_stp_20260130_233908.html new file mode 100644 index 0000000..e055a77 --- /dev/null +++ b/html_output/fsa30scy_tc-01-0817_stp_20260130_233908.html @@ -0,0 +1,226 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 5061080.00 mm³ +
+
+ 表面积: + 640037.28 mm² +
+
+ 边界框: + 203.8 × 563.2 × 193.3 mm +
+
+ 面数: + 232 +
+
+ 边数: + 1337 +
+
+ 顶点数: + 2674 +
+
+ +
+ + +
+
+ + + + diff --git a/html_output/fsa30scy_tc-01-0817_stp_20260131_013848.html b/html_output/fsa30scy_tc-01-0817_stp_20260131_013848.html new file mode 100644 index 0000000..e055a77 --- /dev/null +++ b/html_output/fsa30scy_tc-01-0817_stp_20260131_013848.html @@ -0,0 +1,226 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 5061080.00 mm³ +
+
+ 表面积: + 640037.28 mm² +
+
+ 边界框: + 203.8 × 563.2 × 193.3 mm +
+
+ 面数: + 232 +
+
+ 边数: + 1337 +
+
+ 顶点数: + 2674 +
+
+ +
+ + +
+
+ + + + diff --git a/html_output/fsa30scy_tc-01-0817_stp_20260131_014229.html b/html_output/fsa30scy_tc-01-0817_stp_20260131_014229.html new file mode 100644 index 0000000..e055a77 --- /dev/null +++ b/html_output/fsa30scy_tc-01-0817_stp_20260131_014229.html @@ -0,0 +1,226 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 5061080.00 mm³ +
+
+ 表面积: + 640037.28 mm² +
+
+ 边界框: + 203.8 × 563.2 × 193.3 mm +
+
+ 面数: + 232 +
+
+ 边数: + 1337 +
+
+ 顶点数: + 2674 +
+
+ +
+ + +
+
+ + + + diff --git a/html_output/fsa30scy_tc-01-0817_stp_20260131_023157.html b/html_output/fsa30scy_tc-01-0817_stp_20260131_023157.html new file mode 100644 index 0000000..e055a77 --- /dev/null +++ b/html_output/fsa30scy_tc-01-0817_stp_20260131_023157.html @@ -0,0 +1,226 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 5061080.00 mm³ +
+
+ 表面积: + 640037.28 mm² +
+
+ 边界框: + 203.8 × 563.2 × 193.3 mm +
+
+ 面数: + 232 +
+
+ 边数: + 1337 +
+
+ 顶点数: + 2674 +
+
+ +
+ + +
+
+ + + + diff --git a/html_output/fsa30scy_tc-01-0817_stp_20260131_153851.html b/html_output/fsa30scy_tc-01-0817_stp_20260131_153851.html new file mode 100644 index 0000000..e055a77 --- /dev/null +++ b/html_output/fsa30scy_tc-01-0817_stp_20260131_153851.html @@ -0,0 +1,226 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 5061080.00 mm³ +
+
+ 表面积: + 640037.28 mm² +
+
+ 边界框: + 203.8 × 563.2 × 193.3 mm +
+
+ 面数: + 232 +
+
+ 边数: + 1337 +
+
+ 顶点数: + 2674 +
+
+ +
+ + +
+
+ + + + diff --git a/html_output/fsa30scy_tc-01-0817_stp_20260131_165947.html b/html_output/fsa30scy_tc-01-0817_stp_20260131_165947.html new file mode 100644 index 0000000..e055a77 --- /dev/null +++ b/html_output/fsa30scy_tc-01-0817_stp_20260131_165947.html @@ -0,0 +1,226 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 5061080.00 mm³ +
+
+ 表面积: + 640037.28 mm² +
+
+ 边界框: + 203.8 × 563.2 × 193.3 mm +
+
+ 面数: + 232 +
+
+ 边数: + 1337 +
+
+ 顶点数: + 2674 +
+
+ +
+ + +
+
+ + + + diff --git a/migrate_rustfs_structure.py b/migrate_rustfs_structure.py new file mode 100644 index 0000000..d79f943 --- /dev/null +++ b/migrate_rustfs_structure.py @@ -0,0 +1,378 @@ +#!/usr/bin/env python3 +""" +RustFS 存储结构迁移脚本 + +将旧的多桶结构迁移到新的单桶结构: +旧结构: moldinsight-geometry, moldinsight-stp-files, moldinsight-mold-cavities, moldinsight-html-files, moldinsight-user-files +新结构: moldinsight-storage/ + ├── moldinsight/stp-files/{uuid}.stp + ├── moldinsight/geometry/{file_hash}.json + ├── moldinsight/mold-cavities/{file_hash}.json + ├── moldinsight/html/{file_hash}.json + └── moldinsight/user-files/{uuid}.{ext} + +注意:这是rustFS,而不是minio,只是用了minio的通用S3接口 +""" + +import asyncio +import sys +import os +from pathlib import Path +from typing import Dict, List, Optional +import json +from datetime import datetime + +# 添加项目根目录和 src 目录到 Python 路径 +project_root = Path(__file__).parent +src_root = project_root / "src" +sys.path.insert(0, str(project_root)) +sys.path.insert(0, str(src_root)) + +from storage.rustfs_storage import RustFSManager +from config.settings import settings +from utils.logger import get_logger + +logger = get_logger(__name__) + + +class RustFSMigration: + """RustFS 存储结构迁移器""" + + def __init__(self): + self.rustfs = RustFSManager() + self.is_connected = False + + # 旧桶名称映射 + self.old_buckets = { + 'stp_files': 'moldinsight-stp-files', + 'geometry_data': 'moldinsight-geometry', + 'mold_cavities': 'moldinsight-mold-cavities', + 'html_files': 'moldinsight-html-files', + 'user_files': 'moldinsight-user-files' + } + + # 新桶名称 + self.new_bucket = 'moldinsight' + + # 文件类型前缀映射 + self.file_type_mapping = { + 'stp_files': 'stp-files', + 'geometry_data': 'geometry', + 'mold_cavities': 'mold-cavities', + 'html_files': 'html', + 'user_files': 'user-files' + } + + async def connect(self): + """连接到 RustFS""" + try: + await self.rustfs.connect( + endpoint=settings.RUSTFS_ENDPOINT, + access_key=settings.RUSTFS_ACCESS_KEY, + secret_key=settings.RUSTFS_SECRET_KEY, + timeout=settings.RUSTFS_TIMEOUT + ) + self.is_connected = True + logger.info("RustFS 连接成功") + return True + except Exception as e: + logger.error(f"RustFS 连接失败: {e}") + return False + + async def close(self): + """关闭连接""" + await self.rustfs.close() + self.is_connected = False + logger.info("RustFS 连接已关闭") + + async def list_old_buckets(self) -> Dict[str, List[Dict]]: + """列出所有旧桶及其文件""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + buckets_info = {} + + for file_type, bucket_name in self.old_buckets.items(): + try: + # 检查桶是否存在 + if not self.rustfs.client.bucket_exists(bucket_name): + logger.info(f"桶不存在: {bucket_name}") + buckets_info[bucket_name] = [] + continue + + # 列出桶中所有文件 + objects = self.rustfs.client.list_objects(bucket_name, recursive=True) + files = [] + + for obj in objects: + files.append({ + 'object_key': obj.object_name, + 'size': obj.size, + 'last_modified': obj.last_modified, + 'etag': obj.etag + }) + + buckets_info[bucket_name] = files + logger.info(f"桶 {bucket_name} 包含 {len(files)} 个文件") + + except Exception as e: + logger.error(f"列出桶 {bucket_name} 失败: {e}") + buckets_info[bucket_name] = [] + + return buckets_info + + async def ensure_new_bucket(self): + """确保新桶存在""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + try: + if not self.rustfs.client.bucket_exists(self.new_bucket): + self.rustfs.client.make_bucket(self.new_bucket) + logger.info(f"创建新桶: {self.new_bucket}") + else: + logger.info(f"新桶已存在: {self.new_bucket}") + except Exception as e: + logger.error(f"确保新桶存在失败: {e}") + raise + + async def migrate_file(self, old_bucket: str, old_object_key: str, file_type: str) -> bool: + """迁移单个文件到新结构""" + try: + # 下载旧文件 + response = self.rustfs.client.get_object(old_bucket, old_object_key) + file_data = response.read() + response.close() + response.release_conn() + + # 生成新对象键 + if file_type in ['stp_files', 'user_files']: + # STP文件和用户文件:使用UUID格式 + import uuid + unique_id = str(uuid.uuid4()) + ext = Path(old_object_key).suffix or ('.stp' if file_type == 'stp_files' else '') + new_object_key = f"moldinsight/{self.file_type_mapping[file_type]}/{unique_id}{ext}" + else: + # JSON数据文件:使用文件哈希格式 + import hashlib + file_hash = hashlib.sha256(file_data).hexdigest() + new_object_key = f"moldinsight/{self.file_type_mapping[file_type]}/{file_hash}.json" + + # 上传到新桶 + self.rustfs.client.put_object( + self.new_bucket, + new_object_key, + data=file_data, + length=len(file_data), + content_type='application/octet-stream' + ) + + logger.info(f"文件迁移成功: {old_bucket}/{old_object_key} -> {self.new_bucket}/{new_object_key}") + return True + + except Exception as e: + logger.error(f"文件迁移失败 {old_bucket}/{old_object_key}: {e}") + return False + + async def migrate_bucket(self, old_bucket: str, file_type: str) -> Dict[str, any]: + """迁移整个桶""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + migration_result = { + 'total_files': 0, + 'successful': 0, + 'failed': 0, + 'failed_files': [] + } + + try: + # 检查桶是否存在 + if not self.rustfs.client.bucket_exists(old_bucket): + logger.info(f"桶不存在,跳过迁移: {old_bucket}") + return migration_result + + # 列出桶中所有文件 + objects = self.rustfs.client.list_objects(old_bucket, recursive=True) + files = list(objects) + migration_result['total_files'] = len(files) + + logger.info(f"开始迁移桶 {old_bucket}, 包含 {len(files)} 个文件") + + for obj in files: + success = await self.migrate_file(old_bucket, obj.object_name, file_type) + if success: + migration_result['successful'] += 1 + else: + migration_result['failed'] += 1 + migration_result['failed_files'].append(obj.object_name) + + logger.info(f"桶 {old_bucket} 迁移完成: 成功 {migration_result['successful']}, 失败 {migration_result['failed']}") + + except Exception as e: + logger.error(f"桶 {old_bucket} 迁移失败: {e}") + + return migration_result + + async def delete_old_buckets(self) -> Dict[str, bool]: + """删除所有旧桶(可选操作)""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + deletion_results = {} + + for file_type, bucket_name in self.old_buckets.items(): + try: + # 检查桶是否存在 + if not self.rustfs.client.bucket_exists(bucket_name): + logger.info(f"桶不存在,跳过删除: {bucket_name}") + deletion_results[bucket_name] = True + continue + + # 删除桶中所有文件 + objects = self.rustfs.client.list_objects(bucket_name, recursive=True) + for obj in objects: + self.rustfs.client.remove_object(bucket_name, obj.object_name) + + # 删除空桶 + self.rustfs.client.remove_bucket(bucket_name) + + deletion_results[bucket_name] = True + logger.info(f"桶删除成功: {bucket_name}") + + except Exception as e: + deletion_results[bucket_name] = False + logger.error(f"桶删除失败 {bucket_name}: {e}") + + return deletion_results + + async def run_migration(self, delete_old_buckets: bool = False) -> Dict[str, any]: + """运行完整迁移流程""" + migration_summary = { + 'start_time': datetime.now().isoformat(), + 'connection_status': False, + 'old_buckets_info': {}, + 'migration_results': {}, + 'deletion_results': {}, + 'end_time': None, + 'status': 'failed' + } + + try: + # 1. 连接 + logger.info("=== RustFS 存储结构迁移开始 ===") + connection_result = await self.connect() + if not connection_result: + raise RuntimeError("无法连接到 RustFS") + + migration_summary['connection_status'] = True + + # 2. 列出旧桶信息 + logger.info("1. 检查旧桶结构...") + old_buckets_info = await self.list_old_buckets() + migration_summary['old_buckets_info'] = old_buckets_info + + # 3. 确保新桶存在 + logger.info("2. 确保新桶存在...") + await self.ensure_new_bucket() + + # 4. 执行迁移 + logger.info("3. 开始迁移文件...") + migration_results = {} + + for file_type, bucket_name in self.old_buckets.items(): + if old_buckets_info.get(bucket_name): + logger.info(f"迁移桶: {bucket_name}") + result = await self.migrate_bucket(bucket_name, file_type) + migration_results[bucket_name] = result + else: + logger.info(f"跳过空桶: {bucket_name}") + + migration_summary['migration_results'] = migration_results + + # 5. 可选:删除旧桶 + if delete_old_buckets: + logger.info("4. 删除旧桶...") + deletion_results = await self.delete_old_buckets() + migration_summary['deletion_results'] = deletion_results + else: + logger.info("4. 保留旧桶(跳过删除)") + + # 6. 完成 + migration_summary['status'] = 'completed' + migration_summary['end_time'] = datetime.now().isoformat() + + logger.info("=== RustFS 存储结构迁移完成 ===") + + return migration_summary + + except Exception as e: + migration_summary['error'] = str(e) + migration_summary['end_time'] = datetime.now().isoformat() + logger.error(f"迁移失败: {e}") + return migration_summary + + finally: + await self.close() + + +async def main(): + """主函数""" + migration = RustFSMigration() + + print("=== RustFS 存储结构迁移工具 ===") + print("注意:这是rustFS,而不是minio,只是用了minio的通用S3接口") + print() + + # 询问是否删除旧桶 + delete_old = input("是否在迁移完成后删除旧桶?(y/N): ").strip().lower() == 'y' + + print("\n开始迁移...") + + # 运行迁移 + result = await migration.run_migration(delete_old_buckets=delete_old) + + # 输出结果摘要 + print("\n=== 迁移结果摘要 ===") + print(f"状态: {result['status']}") + print(f"开始时间: {result['start_time']}") + print(f"结束时间: {result['end_time']}") + + if 'error' in result: + print(f"错误: {result['error']}") + + # 旧桶信息 + print("\n--- 旧桶信息 ---") + for bucket_name, files in result['old_buckets_info'].items(): + print(f"{bucket_name}: {len(files)} 个文件") + + # 迁移结果 + print("\n--- 迁移结果 ---") + total_files = 0 + total_success = 0 + total_failed = 0 + + for bucket_name, migration_result in result['migration_results'].items(): + print(f"{bucket_name}:") + print(f" 总文件数: {migration_result['total_files']}") + print(f" 成功: {migration_result['successful']}") + print(f" 失败: {migration_result['failed']}") + + total_files += migration_result['total_files'] + total_success += migration_result['successful'] + total_failed += migration_result['failed'] + + print(f"\n总计: {total_files} 个文件, 成功 {total_success}, 失败 {total_failed}") + + # 删除结果(如果执行了删除) + if result['deletion_results']: + print("\n--- 旧桶删除结果 ---") + for bucket_name, success in result['deletion_results'].items(): + status = "成功" if success else "失败" + print(f"{bucket_name}: {status}") + + print("\n=== 迁移完成 ===") + + +if __name__ == "__main__": + asyncio.run(main()) \ No newline at end of file diff --git a/migrate_to_new_structure.py b/migrate_to_new_structure.py new file mode 100644 index 0000000..dd8bbe1 --- /dev/null +++ b/migrate_to_new_structure.py @@ -0,0 +1,457 @@ +#!/usr/bin/env python3 +""" +RustFS 存储结构迁移脚本 - 完整版 + +从旧结构迁移到新结构: +旧桶: moldinsight-storage +新桶: moldinsight/ +├── stp-files/{uuid}.stp +├── geometry/{file_hash}.json +├── mold-cavities/{file_hash}.json +├── html/{file_hash}.json +└── user-files/{uuid}.{ext} + +注意:这是rustFS,而不是minio,只是用了minio的通用S3接口 +""" + +import asyncio +import sys +import os +from pathlib import Path +from typing import Dict, List, Optional +import json +from datetime import datetime +import hashlib + +# 添加项目根目录和 src 目录到 Python 路径 +project_root = Path(__file__).parent +src_root = project_root / "src" +sys.path.insert(0, str(project_root)) +sys.path.insert(0, str(src_root)) + +from storage.rustfs_storage import RustFSManager +from config.settings import settings +from utils.logger import get_logger + +logger = get_logger(__name__) + + +class RustFSMigration: + """RustFS 存储结构迁移器""" + + def __init__(self): + self.rustfs = RustFSManager() + self.is_connected = False + + # 旧桶名称 + self.old_bucket = 'moldinsight-storage' + + # 新桶名称 + self.new_bucket = 'moldinsight' + + # 文件类型前缀映射 + self.file_type_mapping = { + 'stp-files': 'stp_files', + 'geometry': 'geometry_data', + 'mold-cavities': 'mold_cavities', + 'html': 'html_files', + 'user-files': 'user_files' + } + + async def connect(self): + """连接到 RustFS""" + try: + await self.rustfs.connect( + endpoint=settings.RUSTFS_ENDPOINT, + access_key=settings.RUSTFS_ACCESS_KEY, + secret_key=settings.RUSTFS_SECRET_KEY, + timeout=settings.RUSTFS_TIMEOUT + ) + self.is_connected = True + logger.info("RustFS 连接成功") + return True + except Exception as e: + logger.error(f"RustFS 连接失败: {e}") + return False + + async def close(self): + """关闭连接""" + await self.rustfs.close() + self.is_connected = False + logger.info("RustFS 连接已关闭") + + async def list_all_buckets(self) -> List[str]: + """列出所有桶""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + try: + buckets = self.rustfs.client.list_buckets() + bucket_names = [bucket.name for bucket in buckets] + logger.info(f"当前存在的桶: {bucket_names}") + return bucket_names + except Exception as e: + logger.error(f"列出桶失败: {e}") + return [] + + async def check_old_bucket_files(self) -> List[Dict]: + """检查旧桶中的所有文件""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + try: + # 检查旧桶是否存在 + if not self.rustfs.client.bucket_exists(self.old_bucket): + logger.info(f"旧桶不存在: {self.old_bucket}") + return [] + + # 列出所有文件 + objects = self.rustfs.client.list_objects(self.old_bucket, recursive=True) + files = [] + + for obj in objects: + files.append({ + 'object_key': obj.object_name, + 'size': obj.size, + 'last_modified': obj.last_modified, + 'etag': obj.etag + }) + + logger.info(f"旧桶 {self.old_bucket} 包含 {len(files)} 个文件") + return files + + except Exception as e: + logger.error(f"检查旧桶文件失败: {e}") + return [] + + async def ensure_new_bucket(self): + """确保新桶存在""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + try: + if not self.rustfs.client.bucket_exists(self.new_bucket): + self.rustfs.client.make_bucket(self.new_bucket) + logger.info(f"创建新桶: {self.new_bucket}") + else: + logger.info(f"新桶已存在: {self.new_bucket}") + except Exception as e: + logger.error(f"确保新桶存在失败: {e}") + raise + + async def migrate_file(self, old_object_key: str) -> bool: + """迁移单个文件到新结构""" + try: + # 下载旧文件 + response = self.rustfs.client.get_object(self.old_bucket, old_object_key) + file_data = response.read() + response.close() + response.release_conn() + + # 解析旧对象键,确定文件类型 + # 旧格式: moldinsight/{文件类型}/{文件名} 或 {文件类型}/{文件名} + parts = old_object_key.split('/') + + # 确定文件类型和新对象键 + if len(parts) >= 2: + # 可能是 moldinsight/{类型}/{文件} 或 {类型}/{文件} + if parts[0] == 'moldinsight' and len(parts) >= 3: + # moldinsight/{类型}/{文件} + old_type = parts[1] + filename = parts[2] + elif parts[0] in self.file_type_mapping: + # {类型}/{文件} + old_type = parts[0] + filename = parts[1] + else: + # 无法识别的格式,使用默认 + old_type = 'misc' + filename = parts[-1] + else: + old_type = 'misc' + filename = parts[-1] + + # 根据旧类型确定新类型 + new_type = old_type # 默认保持不变 + + # 生成新对象键 + if old_type in self.file_type_mapping: + # 直接使用类型名作为目录 + new_object_key = f"{old_type}/{filename}" + else: + # 其他文件放到misc目录 + new_object_key = f"misc/{filename}" + + # 上传到新桶 + self.rustfs.client.put_object( + self.new_bucket, + new_object_key, + data=file_data, + length=len(file_data), + content_type='application/octet-stream' + ) + + logger.info(f"文件迁移成功: {self.old_bucket}/{old_object_key} -> {self.new_bucket}/{new_object_key}") + return True + + except Exception as e: + logger.error(f"文件迁移失败 {old_object_key}: {e}") + return False + + async def migrate_all_files(self) -> Dict[str, any]: + """迁移所有文件""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + migration_result = { + 'total_files': 0, + 'successful': 0, + 'failed': 0, + 'failed_files': [] + } + + try: + # 获取所有文件 + files = await self.check_old_bucket_files() + migration_result['total_files'] = len(files) + + if len(files) == 0: + logger.info("旧桶中没有文件需要迁移") + return migration_result + + logger.info(f"开始迁移 {len(files)} 个文件...") + + for file_info in files: + old_object_key = file_info['object_key'] + success = await self.migrate_file(old_object_key) + + if success: + migration_result['successful'] += 1 + else: + migration_result['failed'] += 1 + migration_result['failed_files'].append(old_object_key) + + logger.info(f"迁移完成: 成功 {migration_result['successful']}, 失败 {migration_result['failed']}") + + except Exception as e: + logger.error(f"文件迁移失败: {e}") + + return migration_result + + async def delete_old_bucket(self) -> bool: + """删除旧桶及其所有文件""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + try: + # 检查桶是否存在 + if not self.rustfs.client.bucket_exists(self.old_bucket): + logger.info(f"旧桶不存在,无需删除: {self.old_bucket}") + return True + + # 列出所有文件 + objects = list(self.rustfs.client.list_objects(self.old_bucket, recursive=True)) + + if len(objects) > 0: + logger.info(f"删除旧桶中的 {len(objects)} 个文件...") + + # 删除所有文件 + for obj in objects: + self.rustfs.client.remove_object(self.old_bucket, obj.object_name) + logger.debug(f"删除文件: {obj.object_name}") + + # 删除空桶 + self.rustfs.client.remove_bucket(self.old_bucket) + + logger.info(f"旧桶删除成功: {self.old_bucket}") + return True + + except Exception as e: + logger.error(f"删除旧桶失败 {self.old_bucket}: {e}") + return False + + async def list_new_bucket_structure(self) -> Dict[str, List[str]]: + """列出新桶的文件结构""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + try: + if not self.rustfs.client.bucket_exists(self.new_bucket): + return {} + + objects = self.rustfs.client.list_objects(self.new_bucket, recursive=True) + structure = { + 'stp-files': [], + 'geometry': [], + 'mold-cavities': [], + 'html': [], + 'user-files': [], + 'misc': [] + } + + for obj in objects: + parts = obj.object_name.split('/') + if len(parts) >= 2: + file_type = parts[0] + if file_type in structure: + structure[file_type].append(obj.object_name) + else: + structure['misc'].append(obj.object_name) + + return structure + + except Exception as e: + logger.error(f"列出新桶结构失败: {e}") + return {} + + async def run_migration(self, delete_old_bucket: bool = False) -> Dict[str, any]: + """运行完整迁移流程""" + migration_summary = { + 'start_time': datetime.now().isoformat(), + 'connection_status': False, + 'all_buckets': [], + 'old_bucket_files': [], + 'migration_results': {}, + 'new_bucket_structure': {}, + 'deletion_result': False, + 'end_time': None, + 'status': 'failed' + } + + try: + # 1. 连接 + logger.info("=== RustFS 存储结构迁移开始 ===") + connection_result = await self.connect() + if not connection_result: + raise RuntimeError("无法连接到 RustFS") + + migration_summary['connection_status'] = True + + # 2. 列出所有桶 + logger.info("1. 检查桶状态...") + all_buckets = await self.list_all_buckets() + migration_summary['all_buckets'] = all_buckets + + # 3. 检查旧桶文件 + logger.info("2. 检查旧桶文件...") + old_bucket_files = await self.check_old_bucket_files() + migration_summary['old_bucket_files'] = old_bucket_files + + if not old_bucket_files: + logger.info("旧桶中没有文件,跳过迁移") + migration_summary['status'] = 'completed' + migration_summary['end_time'] = datetime.now().isoformat() + return migration_summary + + # 4. 确保新桶存在 + logger.info("3. 确保新桶存在...") + await self.ensure_new_bucket() + + # 5. 执行迁移 + logger.info("4. 开始迁移文件...") + migration_results = await self.migrate_all_files() + migration_summary['migration_results'] = migration_results + + # 6. 检查新桶结构 + logger.info("5. 检查新桶结构...") + new_bucket_structure = await self.list_new_bucket_structure() + migration_summary['new_bucket_structure'] = new_bucket_structure + + # 7. 可选:删除旧桶 + if delete_old_bucket: + logger.info("6. 删除旧桶...") + deletion_result = await self.delete_old_bucket() + migration_summary['deletion_result'] = deletion_result + else: + logger.info("6. 保留旧桶(跳过删除)") + + # 8. 完成 + migration_summary['status'] = 'completed' + migration_summary['end_time'] = datetime.now().isoformat() + + logger.info("=== RustFS 存储结构迁移完成 ===") + + return migration_summary + + except Exception as e: + migration_summary['error'] = str(e) + migration_summary['end_time'] = datetime.now().isoformat() + logger.error(f"迁移失败: {e}") + return migration_summary + + finally: + await self.close() + + +async def main(): + """主函数""" + migration = RustFSMigration() + + print("=== RustFS 存储结构迁移工具 ===") + print("注意:这是rustFS,而不是minio,只是用了minio的通用S3接口") + print() + print("从旧结构迁移到新结构:") + print(" 旧桶: moldinsight-storage") + print(" 新桶: moldinsight/") + print(" ├── stp-files/") + print(" ├── geometry/") + print(" ├── mold-cavities/") + print(" ├── html/") + print(" └── user-files/") + print() + + # 询问是否删除旧桶 + delete_old = input("是否在迁移完成后删除旧桶 moldinsight-storage?(y/N): ").strip().lower() == 'y' + + print("\n开始迁移...") + + # 运行迁移 + result = await migration.run_migration(delete_old_bucket=delete_old) + + # 输出结果摘要 + print("\n=== 迁移结果摘要 ===") + print(f"状态: {result['status']}") + print(f"开始时间: {result['start_time']}") + print(f"结束时间: {result['end_time']}") + + if 'error' in result: + print(f"错误: {result['error']}") + + # 桶列表 + print("\n--- 当前桶列表 ---") + for bucket in result['all_buckets']: + print(f" - {bucket}") + + # 旧桶文件统计 + print(f"\n--- 旧桶文件统计 ---") + print(f"旧桶 {migration.old_bucket} 包含 {len(result['old_bucket_files'])} 个文件") + + # 迁移结果 + print("\n--- 迁移结果 ---") + migration_result = result['migration_results'] + print(f"总文件数: {migration_result['total_files']}") + print(f"成功: {migration_result['successful']}") + print(f"失败: {migration_result['failed']}") + + if migration_result['failed'] > 0: + print("\n失败的文件:") + for failed_file in migration_result['failed_files']: + print(f" - {failed_file}") + + # 新桶结构 + print("\n--- 新桶文件结构 ---") + for file_type, files in result['new_bucket_structure'].items(): + if files: + print(f"{file_type}: {len(files)} 个文件") + + # 删除结果 + if 'deletion_result' in result: + status = "成功" if result['deletion_result'] else "失败" + print(f"\n--- 旧桶删除结果 ---") + print(f"旧桶 {migration.old_bucket} 删除: {status}") + + print("\n=== 迁移完成 ===") + + +if __name__ == "__main__": + asyncio.run(main()) \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..91fdacb --- /dev/null +++ b/requirements.txt @@ -0,0 +1,40 @@ +# requirements.txt +# 几何处理核心 +-i https://mirrors.aliyun.com/pypi/simple/ +--trusted-host mirrors.aliyun.com +# pythonocc-core==7.7.0 +pyvista +trimesh +numpy +scipy +dotenv +fastapi +numpy +OCC +# Web框架 +fastapi +uvicorn +pydantic +python-multipart + +# 数据库 +sqlalchemy +psycopg2-binary +asyncpg + +# 对象存储 (RustFS S3v4) +minio +aiohttp + +# 消息队列 +kafka-python +redis + +# 工具库 +aiofiles +python-dotenv +jinja2 + +# JWT认证 +python-jose[cryptography] +passlib[bcrypt] diff --git a/src/api/__init__.py b/src/api/__init__.py new file mode 100644 index 0000000..3e68f6b --- /dev/null +++ b/src/api/__init__.py @@ -0,0 +1 @@ +# API 模块 diff --git a/src/api/routes.py b/src/api/routes.py new file mode 100644 index 0000000..363d3f8 --- /dev/null +++ b/src/api/routes.py @@ -0,0 +1,327 @@ +# api/routes.py +from fastapi import APIRouter, UploadFile, File, HTTPException, BackgroundTasks, Request, Depends +from typing import Optional +import uuid +from datetime import datetime +from pathlib import Path + +from models.schemas import ProcessingStatus, create_task_info +from core.stp_parser import STPParser +from core.geometry_analyzer import GeometryAnalyzer +from utils.file_handler import FileHandler +from utils.html_generator import HTMLGenerator +from services.storage_integration_rustfs import StorageIntegrationService +from database.database import get_db_session +from utils.logger import get_logger +from sqlalchemy.ext.asyncio import AsyncSession +from core.mold_generator import MoldCavityGenerator + +logger = get_logger(__name__) + +router = APIRouter() + +# 服务实例 +stp_parser = STPParser() +geometry_analyzer = GeometryAnalyzer() +file_handler = FileHandler() +html_generator = HTMLGenerator() +# 初始化模具生成器(可配置不同材料的收缩率) +mold_generator = MoldCavityGenerator(shrinkage_rate=0.005) # ABS材料 + +# 内存中的任务存储 +tasks = {} + + +@router.get("/") +async def read_root(request: Request): + """主页面""" + from fastapi.templating import Jinja2Templates + import os + # 使用绝对路径确保模板目录正确 + templates_dir = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), "templates") + templates = Jinja2Templates(directory=templates_dir) + return templates.TemplateResponse("index.html", { + "request": request, + "pythonocc_available": True, + "version": "3.0.0" + }) + + +@router.get("/health") +async def health(): + return { + "status": "healthy", + "pythonocc": True, + "total_tasks": len(tasks) + } + + +@router.post("/upload") +async def upload_stp( + background_tasks: BackgroundTasks, + file: UploadFile = File(...), + db_session: AsyncSession = Depends(get_db_session) +): + """上传STP文件并存储到数据库""" + + if not file.filename.lower().endswith(('.stp', '.step')): + raise HTTPException(400, "只支持STP/STEP文件") + + task_id = str(uuid.uuid4()) + + # 保存文件 + file_path = await file_handler.save_uploaded_file(file) + content = await file.read() + + # 创建存储集成服务实例 + storage_service = StorageIntegrationService() + + # 保存STP文件到RustFS + PostgreSQL + stp_file = await storage_service.save_stp_file( + session=db_session, + file_path=file_path, + original_filename=file.filename + ) + + # 创建处理任务记录 + await storage_service.create_processing_task(db_session, task_id, stp_file.id) + + # 创建内存任务记录 + tasks[task_id] = create_task_info( + task_id=task_id, + status=ProcessingStatus.PROCESSING, + filename=file.filename, + file_path=str(file_path), + file_size=len(content), + upload_time=str(datetime.now()) + ) + + # 后台处理(包含数据库存储) + background_tasks.add_task(process_file_with_storage, task_id, file_path, stp_file.id, db_session) + + return { + "task_id": task_id, + "status": "processing", + "message": "文件上传成功,开始处理并存储到数据库", + "file_info": { + "filename": file.filename, + "size": len(content), + "pythonocc_available": True, + "database_file_id": stp_file.id + } + } + + +@router.get("/status/{task_id}") +async def get_status(task_id: str): + """获取任务状态""" + if task_id not in tasks: + raise HTTPException(404, "任务不存在") + + task = tasks[task_id] + logger.info(f"返回任务状态: {task_id} - {task['status']}") + return task + + +@router.get("/debug/tasks") +async def debug_tasks(): + """调试接口:查看所有任务""" + return { + "total_tasks": len(tasks), + "tasks": tasks + } + + +async def process_file_with_storage( + task_id: str, + file_path: str, + stp_file_id: int, + db_session: AsyncSession +): + """处理文件的后台任务""" + + storage_service = StorageIntegrationService() + + try: + logger.info(f"开始处理文件并生成模具型腔: {file_path}") + + # 设置处理超时(5分钟) + import asyncio + timeout_seconds = 300 # 5分钟 + + async def process_with_timeout(): + # 处理逻辑将在下面添加 + pass + + # 使用超时保护 + try: + await asyncio.wait_for(process_file_core(storage_service, task_id, file_path, stp_file_id, db_session), timeout_seconds) + except asyncio.TimeoutError: + logger.error(f"处理超时: {task_id}") + raise Exception(f"处理超时,超过{timeout_seconds}秒未完成") + + except Exception as e: + logger.error(f"模具型腔生成失败: {e}") + + await storage_service.update_stp_file_status(db_session, stp_file_id, "failed") + await storage_service.update_task_status( + db_session, task_id, "failed", error_message=str(e) + ) + + tasks[task_id]["status"] = ProcessingStatus.FAILED + tasks[task_id]["error"] = str(e) + tasks[task_id]["completed_at"] = str(datetime.now()) + return + + +async def process_file_core( + storage_service: StorageIntegrationService, + task_id: str, + file_path: str, + stp_file_id: int, + db_session: AsyncSession +): + """核心处理逻辑""" + + try: + logger.info(f"开始处理文件并生成模具型腔: {file_path}") + + # 更新任务状态 + await storage_service.update_task_status( + db_session, task_id, "processing", 20, "解析STP文件" + ) + + # 1. 解析STP文件 + await storage_service.update_task_status( + db_session, task_id, "processing", 20, "解析STP文件" + ) + + # 使用STPParser类进行真实解析 + shape = stp_parser.load_step_file(Path(file_path)) + geometry_data = stp_parser.analyze_geometry(shape) + + # 2. 生成模具型腔(模拟数据) + await storage_service.update_task_status( + db_session, task_id, "processing", 40, "生成模具型腔(模拟)" + ) + + cavity_data = { + "cavity_count": 1, + "cavity_dimensions": {"length": 100, "width": 80, "height": 50}, + "runner_system": "cold_runner", + "gating_type": "edge_gate" + } + + # 3. 生成详细JSON数据(模拟) + await storage_service.update_task_status( + db_session, task_id, "processing", 60, "生成型腔详细数据(模拟)" + ) + + detailed_cavity_json = { + "metadata": { + "file_name": Path(file_path).name, + "analysis_date": datetime.now().isoformat(), + "shrinkage_rate": 0.005, + "draft_angle": 2.0 + }, + "product_analysis": { + "volume": geometry_data["volume"], + "surface_area": geometry_data["surface_area"], + "bounding_box": geometry_data["bounding_box"] + }, + "manufacturing_info": { + "recommended_material": "ABS", + "estimated_clamping_force": "150 吨", + "estimated_mold_size": { + "length": 120, + "width": 100, + "height": 60 + } + }, + "mold_cavities": { + "cavity_count": 1, + "cavity_key_info": { + "geometric_characteristics": { + "product_weight": "1.2 g", + "wall_thickness_range": "1.5-3.0 mm", + "complexity_score": 0.7 + }, + "quality_considerations": { + "potential_weld_lines": "center", + "sink_mark_areas": "thick_sections", + "warpage_risk": "low" + } + } + } + } + + # 4. 生成关键信息(模拟) + cavity_key_info = detailed_cavity_json["mold_cavities"]["cavity_key_info"] + + # 5. 保存几何数据到数据库 + await storage_service.update_task_status( + db_session, task_id, "processing", 70, "保存几何数据" + ) + + geometry_record = await storage_service.save_geometry_data( + db_session, + stp_file_id, + geometry_data, + geometry_data.get("analysis_method", "mold_cavity") + ) + + # 6. 保存模具型腔数据 + await storage_service.save_mold_cavity_data( + db_session, + stp_file_id, + detailed_cavity_json + ) + + # 7. 生成HTML可视化(包含型腔信息) + await storage_service.update_task_status( + db_session, task_id, "processing", 85, "生成可视化报告" + ) + + html_file_path = html_generator.generate_and_save_visualization( + geometry_data, + Path(file_path).name + ) + + # 保存HTML文件信息 + html_record = await storage_service.save_html_file( + db_session, + stp_file_id, + Path(html_file_path).name, + html_file_path + ) + + # 8. 分析模具设计 + analysis_result = geometry_analyzer.analyze_mold_design(geometry_data) + + # 9. 完成处理 + await storage_service.update_stp_file_status(db_session, stp_file_id, "completed") + await storage_service.update_task_status( + db_session, task_id, "completed", 100, "模具型腔生成完成" + ) + + # 更新内存任务状态 + tasks[task_id]["geometry_data"] = geometry_data + tasks[task_id]["analysis_result"] = analysis_result + tasks[task_id]["cavity_data"] = detailed_cavity_json + tasks[task_id]["key_info"] = cavity_key_info + tasks[task_id]["status"] = ProcessingStatus.COMPLETED + tasks[task_id]["completed_at"] = str(datetime.now()) + + logger.info(f"模具型腔生成完成: {task_id}") + + except Exception as e: + logger.error(f"模具型腔生成失败: {e}") + + await storage_service.update_stp_file_status(db_session, stp_file_id, "failed") + await storage_service.update_task_status( + db_session, task_id, "failed", error_message=str(e) + ) + + tasks[task_id]["status"] = ProcessingStatus.FAILED + tasks[task_id]["error"] = str(e) + tasks[task_id]["completed_at"] = str(datetime.now()) \ No newline at end of file diff --git a/src/core/__init__.py b/src/core/__init__.py new file mode 100644 index 0000000..303e344 --- /dev/null +++ b/src/core/__init__.py @@ -0,0 +1 @@ +# Core 模块 diff --git a/src/core/geometry_analyzer.py b/src/core/geometry_analyzer.py new file mode 100644 index 0000000..a4ecef5 --- /dev/null +++ b/src/core/geometry_analyzer.py @@ -0,0 +1,340 @@ +# core/geometry_analyzer.py +from typing import Dict, List, Any + +# import features # 暂时注释掉,避免导入错误 +import numpy as np +from models.schemas import ( + create_mold_feature, + create_design_recommendation, + create_analysis_result +) +from utils.logger import get_logger + +logger = get_logger(__name__) + + +class GeometryAnalyzer: + """几何分析器 - 简化版""" + + def __init__(self): + self.feature_thresholds = { + "thin_wall": 2.0, + "thick_wall": 8.0, + "small_feature": 5.0, + "large_feature": 1000.0, + "high_complexity": 50, + } + + self.product_materials = { + "ABS": {"shrinkage": 0.005, "min_wall": 1.2}, + "PP": {"shrinkage": 0.016, "min_wall": 1.0}, + "PC": {"shrinkage": 0.007, "min_wall": 1.5}, + } + + self.mold_materials = { + "Aluminum": {"thermal_conductivity": 200, "hardness": "HB80", "cost": "low"}, + "P20_Steel": {"thermal_conductivity": 30, "hardness": "HRC30", "cost": "medium"}, + "H13_Steel": {"thermal_conductivity": 25, "hardness": "HRC48", "cost": "high"} + } + + def analyze_mold_design(self, geometry_data: Dict[str, Any], + product_material: str = "ABS", + mold_material: str = "Aluminum" + ) -> Dict[str, Any]: + """分析模具设计""" + logger.info("开始模具设计分析") + + # 检测特征 + features = self._detect_features(geometry_data) + + # 使用产品材料属性 + product_props = self.product_materials.get(product_material, {}) + shrinkage = product_props.get("shrinkage", 0.005) + + # 使用模具材料属性 + mold_props = self.mold_materials.get(mold_material, {}) + thermal_cond = mold_props.get("thermal_conductivity", 200) + + # 生成设计建议 + recommendations = self._generate_recommendations( + geometry_data, features, product_material + ) + + # 计算质量指标 + quality_metrics = self._calculate_quality_metrics(geometry_data, features) + + # 生成分析摘要 + analysis_summary = self._generate_analysis_summary(geometry_data, features, recommendations) + + return create_analysis_result( + geometry_data=geometry_data, + detected_features=features, + design_recommendations=recommendations, + quality_metrics=quality_metrics, + analysis_summary=analysis_summary + ) + + def _detect_features(self, geometry_data: Dict[str, Any]) -> List[Dict[str, Any]]: + """检测模具特征""" + features = [] + + # 壁厚分析 + wall_features = self._detect_wall_features(geometry_data) + features.extend(wall_features) + + # 加强筋检测 + rib_features = self._detect_rib_features(geometry_data) + features.extend(rib_features) + + # BOSS柱检测 + boss_features = self._detect_boss_features(geometry_data) + features.extend(boss_features) + + # 拔模角度分析 + draft_features = self._analyze_draft_angles(geometry_data) + features.extend(draft_features) + + logger.info(f"检测到 {len(features)} 个特征") + return features + + def _detect_wall_features(self, geometry_data: Dict[str, Any]) -> List[Dict[str, Any]]: + """检测壁厚特征""" + features = [] + volume = geometry_data.get("volume", 0) + surface_area = geometry_data.get("surface_area", 0) + + if volume > 0 and surface_area > 0: + avg_thickness = (volume / surface_area) * 0.6 + + if avg_thickness < self.feature_thresholds["thin_wall"]: + features.append(create_mold_feature( + feature_type="thin_wall", + confidence=0.85, + location=geometry_data.get("center_of_mass", [0, 0, 0]), + dimensions=[avg_thickness, avg_thickness, avg_thickness], + parameters={"average_thickness": avg_thickness}, + recommendations=[ + f"平均壁厚 {avg_thickness:.2f}mm 过薄,建议增加到 {self.feature_thresholds['thin_wall']}mm 以上", + "考虑增加加强筋以提高结构强度", + "检查注塑填充是否充分" + ] + )) + elif avg_thickness > self.feature_thresholds["thick_wall"]: + features.append(create_mold_feature( + feature_type="thick_wall", + confidence=0.75, + location=geometry_data.get("center_of_mass", [0, 0, 0]), + dimensions=[avg_thickness, avg_thickness, avg_thickness], + parameters={"average_thickness": avg_thickness}, + recommendations=[ + f"平均壁厚 {avg_thickness:.2f}mm 过厚,可能产生缩痕", + "考虑减薄壁厚或增加加强筋", + "优化冷却系统设计" + ] + )) + elif volume > 0: + # 如果没有surface_area,基于边界框估算壁厚 + bbox = geometry_data.get("bounding_box", {}) + dimensions = bbox.get("dimensions", [100, 100, 100]) + bbox_volume = dimensions[0] * dimensions[1] * dimensions[2] + if bbox_volume > 0: + volume_efficiency = volume / bbox_volume + avg_thickness = (dimensions[0] + dimensions[1]) / 2 * volume_efficiency + if avg_thickness < self.feature_thresholds["thin_wall"]: + features.append(create_mold_feature( + feature_type="thin_wall", + confidence=0.7, + location=bbox.get("center", [50, 50, 50]), + dimensions=[avg_thickness, avg_thickness, avg_thickness], + parameters={"average_thickness": avg_thickness, "estimation_method": "bbox_based"}, + recommendations=[ + f"估算平均壁厚 {avg_thickness:.2f}mm 过薄,建议检查表面积数据", + "考虑增加加强筋以提高结构强度" + ] + )) + + return features + + def _detect_rib_features(self, geometry_data: Dict[str, Any]) -> List[Dict[str, Any]]: + """检测加强筋特征""" + features = [] + topology = geometry_data.get("topology", {}) + + face_count = topology.get("faces", 0) + edge_count = topology.get("edges", 0) + complexity_ratio = edge_count / max(face_count, 1) + + if complexity_ratio > 3.0: + features.append(create_mold_feature( + feature_type="rib_structure", + confidence=0.7, + location=geometry_data.get("center_of_mass", [0, 0, 0]), + dimensions=[2.0, 8.0, 2.0], + parameters={"complexity_ratio": complexity_ratio}, + recommendations=[ + "检测到可能的加强筋结构", + "建议加强筋厚度为壁厚的50-80%", + "加强筋高度不超过壁厚的3倍", + "加强筋根部增加圆角避免应力集中" + ] + )) + + return features + + def _detect_boss_features(self, geometry_data: Dict[str, Any]) -> List[Dict[str, Any]]: + """检测BOSS柱特征""" + features = [] + volume = geometry_data.get("volume", 0) + bbox = geometry_data.get("bounding_box", {}) + + dimensions = bbox.get("dimensions", [100, 100, 100]) + volume_efficiency = volume / (dimensions[0] * dimensions[1] * dimensions[2]) + + if volume_efficiency < 0.3: + features.append(create_mold_feature( + feature_type="boss_feature", + confidence=0.65, + location=bbox.get("center", [50, 50, 50]), + dimensions=[6.0, 12.0, 6.0], + parameters={"volume_efficiency": volume_efficiency}, + recommendations=[ + "检测到可能的BOSS柱结构", + "建议BOSS柱外径为螺钉直径的2-2.5倍", + "BOSS柱高度不超过直径的2倍", + "增加拔模角度1-2度", + "根部增加圆角R0.5-R1.0" + ] + )) + + return features + + def _analyze_draft_angles(self, geometry_data: Dict[str, Any]) -> List[Dict[str, Any]]: + """分析拔模角度""" + features = [] + + features.append(create_mold_feature( + feature_type="draft_angle", + confidence=0.8, + location=geometry_data.get("center_of_mass", [0, 0, 0]), + dimensions=[1.0, 2.0, 1.0], + parameters={"recommended_angle": 2.0}, + recommendations=[ + "建议所有垂直面添加1-2度拔模角度", + "纹理表面需要3-5度拔模角度", + "深腔结构需要更大的拔模角度" + ] + )) + + return features + + def _generate_recommendations(self, geometry_data: Dict[str, Any], + features: List[Dict[str, Any]], + material: str) -> List[Dict[str, Any]]: + """生成设计建议""" + recommendations = [] + + # 壁厚建议 + wall_rec = self._get_wall_thickness_recommendation(geometry_data, material) + if wall_rec: + recommendations.append(wall_rec) + + # 拔模角度建议 + recommendations.append(create_design_recommendation( + rec_type="draft_angle", + priority="high", + description="添加拔模角度", + parameters={"min_angle": 1.0, "preferred_angle": 2.0}, + reason="确保顺利脱模" + )) + + # 基于检测到的特征生成建议 + for feature in features: + if feature["feature_type"] == "thin_wall": + rec = create_design_recommendation( + rec_type="wall_thickness", + priority="high", + description="增加壁厚", + parameters={ + "current": feature["parameters"]["average_thickness"], + "recommended": self.feature_thresholds["thin_wall"] + }, + reason="壁厚不足影响结构强度" + ) + recommendations.append(rec) + + return recommendations + + def _get_wall_thickness_recommendation(self, geometry_data: Dict[str, Any], + material: str) -> Dict[str, Any]: + """获取壁厚建议""" + volume = geometry_data.get("volume", 0) + surface_area = geometry_data.get("surface_area", 0) + + if volume > 0 and surface_area > 0: + avg_thickness = (volume / surface_area) * 0.6 + material_props = self.product_materials.get(material, self.product_materials["ABS"]) + min_wall = material_props["min_wall"] + + if avg_thickness < min_wall: + return create_design_recommendation( + rec_type="wall_thickness", + priority="high", + description=f"增加壁厚至{min_wall}mm以上", + parameters={"current": avg_thickness, "recommended": min_wall}, + reason=f"{material}材料最小壁厚要求" + ) + + return None + + def _calculate_quality_metrics(self, geometry_data: Dict[str, Any], + features: List[Dict[str, Any]]) -> Dict[str, float]: + """计算质量指标""" + metrics = {} + + # 体积利用率 + bbox = geometry_data.get("bounding_box", {}) + dimensions = bbox.get("dimensions", [100, 100, 100]) + volume = geometry_data.get("volume", 0) + bbox_volume = dimensions[0] * dimensions[1] * dimensions[2] + + metrics["volume_utilization"] = volume / bbox_volume if bbox_volume > 0 else 0 + + # 拓扑复杂度 + topology = geometry_data.get("topology", {}) + face_count = topology.get("faces", 0) + metrics["topology_complexity"] = face_count / 100.0 + + # 壁厚均匀性评分 + surface_area = geometry_data.get("surface_area", 0) + if volume > 0 and surface_area > 0: + thickness_ratio = (volume / surface_area) * 0.6 + ideal_thickness = 3.0 + metrics["wall_uniformity"] = 1.0 - abs(thickness_ratio - ideal_thickness) / ideal_thickness + elif volume > 0 and bbox_volume > 0: + # 如果没有surface_area,基于体积利用率估算 + metrics["wall_uniformity"] = max(0.5, metrics["volume_utilization"]) + else: + metrics["wall_uniformity"] = 0.5 + + return metrics + + def _generate_analysis_summary(self, geometry_data: Dict[str, Any], + features: List[Dict[str, Any]], + recommendations: List[Dict[str, Any]]) -> str: + """生成分析摘要""" + volume = geometry_data.get("volume", 0) + high_priority_recs = len([r for r in recommendations if r["priority"] == "high"]) + + summary_parts = [] + + if volume > 0: + summary_parts.append(f"模型体积: {volume / 1000:.1f} cm³") + + if features: + feature_types = set(f["feature_type"] for f in features) + summary_parts.append(f"检测到 {len(feature_types)} 类特征") + + if high_priority_recs > 0: + summary_parts.append(f"有 {high_priority_recs} 个高优先级建议") + + return " | ".join(summary_parts) if summary_parts else "分析完成" \ No newline at end of file diff --git a/src/core/mesh_generator.py b/src/core/mesh_generator.py new file mode 100644 index 0000000..1971f0f --- /dev/null +++ b/src/core/mesh_generator.py @@ -0,0 +1,102 @@ +# src/core/mesh_generator.py +import logging +import numpy as np +from typing import Dict, List, Optional +import pyvista as pv +import trimesh +from OCC.Core.BRepMesh import BRepMesh_IncrementalMesh + +logger = logging.getLogger(__name__) + + +class MeshGenerator: + """网格生成器 - 使用PyVista和Trimesh""" + + def __init__(self, quality: str = "medium"): + self.quality_settings = { + "low": 0.5, + "medium": 0.1, + "high": 0.01 + } + self.quality = self.quality_settings.get(quality, 0.1) + + def generate_mesh_from_shape(self, shape, num_points: int = 10000) -> Dict: + """从形状生成网格数据""" + try: + # 方法1: 使用PythonOCC生成网格 + occ_mesh = self._generate_occ_mesh(shape) + + # 方法2: 转换为PyVista网格 + pv_mesh = self._convert_to_pyvista(occ_mesh) + + # 方法3: 转换为Trimesh网格 + tri_mesh = self._convert_to_trimesh(pv_mesh) + + # 生成点云 + pointcloud = self._generate_pointcloud(tri_mesh, num_points) + + return { + "pyvista_mesh": pv_mesh, + "trimesh_mesh": tri_mesh, + "pointcloud": pointcloud + } + + except Exception as e: + logger.error(f"网格生成失败: {e}") + raise + + def _generate_occ_mesh(self, shape) -> any: + """使用PythonOCC生成网格""" + mesh = BRepMesh_IncrementalMesh(shape, self.quality) + mesh.Perform() + return mesh + + def _convert_to_pyvista(self, occ_mesh) -> pv.PolyData: + """转换为PyVista网格""" + # 这里需要从OCC网格中提取顶点和面数据 + # 简化实现 - 实际需要遍历OCC网格数据结构 + try: + # 创建示例网格数据 + cube = pv.Cube() + return cube + except Exception as e: + logger.warning(f"PyVista转换失败,使用备用方法: {e}") + return self._create_sample_mesh() + + def _convert_to_trimesh(self, pv_mesh) -> trimesh.Trimesh: + """转换为Trimesh网格""" + try: + # 从PyVista转换 + vertices = pv_mesh.points + faces = pv_mesh.faces.reshape(-1, 4)[:, 1:4] # 假设三角形网格 + + return trimesh.Trimesh(vertices=vertices, faces=faces) + except Exception as e: + logger.warning(f"Trimesh转换失败: {e}") + return self._create_sample_trimesh() + + def _generate_pointcloud(self, mesh: trimesh.Trimesh, num_points: int) -> Dict: + """从网格生成点云""" + try: + # 均匀采样点云 + points, face_indices = trimesh.sample.sample_surface(mesh, num_points) + + # 计算法向量 + normals = mesh.face_normals[face_indices] + + return { + "points": points.tolist(), + "normals": normals.tolist(), + "count": len(points) + } + except Exception as e: + logger.error(f"点云生成失败: {e}") + raise + + def _create_sample_mesh(self) -> pv.PolyData: + """创建示例网格(备用)""" + return pv.Cube() + + def _create_sample_trimesh(self) -> trimesh.Trimesh: + """创建示例Trimesh(备用)""" + return trimesh.creation.box([100, 80, 50]) \ No newline at end of file diff --git a/src/core/mold_generator.py b/src/core/mold_generator.py new file mode 100644 index 0000000..1ce25f1 --- /dev/null +++ b/src/core/mold_generator.py @@ -0,0 +1,523 @@ +# src/core/mold_generator.py +from pathlib import Path +from typing import Dict, List, Any, Tuple, Optional +import numpy as np +from OCC.Core.BRepOffsetAPI import BRepOffsetAPI_MakeThickSolid +from OCC.Core.BRepAlgoAPI import BRepAlgoAPI_Cut, BRepAlgoAPI_Fuse +from OCC.Core.BRepBuilderAPI import BRepBuilderAPI_MakeFace, BRepBuilderAPI_Transform +from OCC.Core.Geom import Geom_Plane +from OCC.Core.gp import gp_Pln, gp_Dir, gp_Pnt, gp_Vec, gp_Trsf +from OCC.Core.TopTools import TopTools_ListOfShape +from OCC.Core.TopoDS import TopoDS_Face, TopoDS_Shape +from OCC.Core.BRep import BRep_Tool +from OCC.Core.BRepMesh import BRepMesh_IncrementalMesh +from OCC.Core.BRepExtrema import BRepExtrema_DistShapeShape +from OCC.Core.GProp import GProp_GProps +from OCC.Core.BRepGProp import brepgprop + +from models.schemas import create_mold_cavity_data, create_mold_key_info +from utils.logger import get_logger + +logger = get_logger(__name__) + + +class MoldCavityGenerator: + """模具型腔生成器 - 基于产品模型生成Cavity和Core""" + + def __init__(self, shrinkage_rate: float = 0.005, draft_angle: float = 2.0): + """ + 初始化模具生成器 + + Args: + shrinkage_rate: 收缩率(默认0.5% for ABS) + draft_angle: 拔模角(默认2度) + """ + self.shrinkage_rate = shrinkage_rate + self.draft_angle = draft_angle # 度 + + # 分型面检测参数 + self.parting_line_tolerance = 0.1 + self.max_draft_angle = 5.0 + + def generate_mold_cavities(self, product_shape: Any) -> Dict[str, Any]: + """ + 从产品的3D模型生成型腔和型芯 + + Returns: + { + "cavity": cavity_shape, # 型腔(产品外部) + "core": core_shape, # 型芯(产品内部) + "parting_surface": parting_surface, # 分型面 + "parting_line": parting_line # 分型线 + } + """ + logger.info("开始生成模具型腔...") + + try: + # Step 1: 分析产品几何 + analysis = self._analyze_product_geometry(product_shape) + + # Step 2: 检测分型面和分型线 + parting_surface, parting_line = self._detect_parting_surface( + product_shape, analysis + ) + + # Step 3: 应用收缩率补偿 + scaled_shape = self._apply_shrinkage_compensation(product_shape) + + # Step 4: 添加拔模角 + drafted_shape = self._apply_draft_angles(scaled_shape, parting_surface) + + # Step 5: 分离型腔和型芯 + cavity, core = self._split_cavity_core(drafted_shape, parting_surface) + + logger.info("模具型腔生成完成") + + return { + "cavity": cavity, + "core": core, + "parting_surface": parting_surface, + "parting_line": parting_line, + "analysis": analysis + } + + except Exception as e: + logger.error(f"模具型腔生成失败: {e}") + raise + + def generate_detailed_cavity_json(self, cavity_data: Dict) -> Dict[str, Any]: + """ + 生成详细的型腔三维JSON数据 + + Returns: + 包含完整几何信息的JSON结构 + """ + cavity = cavity_data["cavity"] + core = cavity_data["core"] + parting_surface = cavity_data["parting_surface"] + analysis = cavity_data["analysis"] + + # 提取型腔几何数据 + cavity_geometry = self._extract_shape_geometry(cavity, "cavity") + core_geometry = self._extract_shape_geometry(core, "core") + + # 提取分型面数据 + parting_geometry = self._extract_parting_surface_geometry( + parting_surface + ) + + detailed_json = { + "metadata": { + "version": "2.0", + "generated_at": str(np.datetime64('now')), + "shrinkage_rate": self.shrinkage_rate, + "draft_angle": self.draft_angle, + "unit": "mm" + }, + "product_analysis": { + "bounding_box": analysis.get("bounding_box", {}), # 使用get方法 + "volume": analysis.get("volume", 0), # 使用get方法 + "surface_area": analysis.get("surface_area", 0), # 使用get方法 + "center_of_mass": analysis.get("center_of_mass", [0, 0, 0]) # 使用get方法 + }, + "mold_cavities": { + "cavity": cavity_geometry, + "core": core_geometry + }, + "parting_surface": parting_geometry, + "manufacturing_info": { + "estimated_mold_size": self._calculate_mold_size(analysis), + "estimated_clamping_force": self._calculate_clamping_force(analysis), + "recommended_material": self._get_recommended_material() + } + } + + return detailed_json + + def generate_cavity_key_info(self, cavity_data: Dict) -> Dict[str, Any]: + """ + 生成模具型腔的关键信息 + + Returns: + 关键参数摘要 + """ + analysis = cavity_data["analysis"] + + key_info = { + "mold_parameters": { + "shrinkage_rate": f"{self.shrinkage_rate * 100:.2f}%", + "draft_angle": f"{self.draft_angle}°", + "parting_line_length": self._calculate_parting_line_length( + cavity_data["parting_line"] + ), + "cavity_depth": analysis.get("bounding_box", {}).get("dimensions", [0, 0, 0])[2] + }, + "geometric_characteristics": { + "product_volume": f"{analysis.get('volume', 0) / 1000:.2f} cm³", + "product_weight": self._calculate_product_weight(analysis), + "wall_thickness_range": self._estimate_wall_thickness(analysis), + "complexity_score": self._calculate_complexity_score(analysis) + }, + "manufacturing_requirements": { + "cavity_material": "Aluminum Alloy 7075", + "hardness": "HRC 30-35", + "surface_finish": "SPI A2", + "estimated_cycle_time": self._estimate_cycle_time(analysis), + "recommended_injection_pressure": "80-120 MPa" + }, + "quality_considerations": { + "potential_weld_lines": self._identify_weld_line_risk(analysis), + "sink_mark_areas": self._identify_sink_mark_risk(analysis), + "warpage_risk": self._assess_warpage_risk(analysis) + } + } + + return key_info + + # ==================== 内部方法 ==================== + + def _analyze_product_geometry(self, shape: Any) -> Dict[str, Any]: + """分析产品几何属性""" + # 计算体积属性 + volume_props = GProp_GProps() + brepgprop.VolumeProperties(shape, volume_props) + + # 计算表面积属性 + surface_props = GProp_GProps() + brepgprop.SurfaceProperties(shape, surface_props) + + # 计算边界框 + from OCC.Core.Bnd import Bnd_Box + from OCC.Core.BRepBndLib import brepbndlib + + bbox = Bnd_Box() + brepbndlib.Add(shape, bbox) + xmin, ymin, zmin, xmax, ymax, zmax = bbox.Get() + + return { + "volume": volume_props.Mass(), + "surface_area": surface_props.Mass(), + "center_of_mass": [ + volume_props.CentreOfMass().X(), + volume_props.CentreOfMass().Y(), + volume_props.CentreOfMass().Z() + ], + "bounding_box": { + "min": [xmin, ymin, zmin], + "max": [xmax, ymax, zmax], + "dimensions": [xmax - xmin, ymax - ymin, zmax - zmin], + "center": [(xmin + xmax) / 2, (ymin + ymax) / 2, (zmin + zmax) / 2] + }, + "inertia_matrix": self._get_inertia_matrix(volume_props) + } + + def _detect_parting_surface(self, shape: Any, analysis: Dict) -> Tuple[Any, List]: + """检测分型面和分型线""" + # 简化的分型面检测:基于Z方向的最高点和最低点 + bbox = analysis["bounding_box"] + center_z = bbox["center"][2] + + # 创建分型面(XY平面) + parting_plane = gp_Pln( + gp_Pnt(0, 0, center_z), + gp_Dir(0, 0, 1) + ) + parting_surface = BRepBuilderAPI_MakeFace( + parting_plane, + bbox["min"][0] - 10, bbox["max"][0] + 10, + bbox["min"][1] - 10, bbox["max"][1] + 10 + ).Face() + + # 分型线(简化) + parting_line = [ + [bbox["min"][0], bbox["min"][1], center_z], + [bbox["max"][0], bbox["min"][1], center_z], + [bbox["max"][0], bbox["max"][1], center_z], + [bbox["min"][0], bbox["max"][1], center_z], + [bbox["min"][0], bbox["min"][1], center_z] + ] + + return parting_surface, parting_line + + def _apply_shrinkage_compensation(self, shape: Any) -> Any: + """应用收缩率补偿(放大模型)""" + scale_factor = 1.0 + self.shrinkage_rate + + # 创建缩放变换 + trsf = gp_Trsf() + trsf.SetScale(gp_Pnt(0, 0, 0), scale_factor) + + from OCC.Core.BRepBuilderAPI import BRepBuilderAPI_Transform + scaled_shape = BRepBuilderAPI_Transform(shape, trsf, True).Shape() + + return scaled_shape + + def _apply_draft_angles(self, shape: Any, parting_surface: Any) -> Any: + """添加拔模角(简化实现)""" + # 实际实现需要复杂的拔模面处理 + # 这里返回原始形状(假设已在CAD中处理) + logger.warning("拔模角处理为简化实现,建议在设计阶段处理") + return shape + + def _split_cavity_core(self, shape: Any, parting_surface: Any) -> Tuple[Any, Any]: + """分离型腔和型芯""" + try: + # 使用分型面切割产品 + # 上半部分为型腔(Cavity) + # 下半部分为型芯(Core) + + # 这里需要实现BRepAlgoAPI_Section或类似的切割操作 + # 简化:返回相同的形状(实际需实现切割逻辑) + + return shape, shape # (cavity, core) + + except Exception as e: + logger.error(f"型腔分离失败: {e}") + return shape, shape + + def _extract_shape_geometry(self, shape: Any, shape_type: str) -> Dict[str, Any]: + """提取形状几何数据为JSON格式""" + try: + # 网格化 + mesh = BRepMesh_IncrementalMesh(shape, 0.1) + mesh.Perform() + + # 提取顶点和面 + from OCC.Core.TopExp import TopExp_Explorer + from OCC.Core.TopAbs import TopAbs_FACE + from OCC.Core.BRep import BRep_Tool + from OCC.Core.Poly import Poly_Triangulation + from OCC.Core.TopLoc import TopLoc_Location + + vertices = [] + faces = [] + + explorer = TopExp_Explorer(shape, TopAbs_FACE) + vertex_index = 0 + + while explorer.More(): + # 使用 explorer.Current() 直接获取面 + face = explorer.Current() + location = TopLoc_Location() + triangulation = BRep_Tool.Triangulation(face, location) + + if triangulation: + # 提取顶点 + nb_nodes = triangulation.NbNodes() + for i in range(1, nb_nodes + 1): + node = triangulation.Node(i) + # 应用位置变换 + transformed = node.Transformed(location.Transformation()) + vertices.extend([ + float(transformed.X()), + float(transformed.Y()), + float(transformed.Z()) + ]) + + # 提取三角形面 + nb_triangles = triangulation.NbTriangles() + for i in range(1, nb_triangles + 1): + triangle = triangulation.Triangle(i) + # 三角形顶点索引需要加上之前的顶点数量 + idx1 = triangle.Value(1) + vertex_index - 1 + idx2 = triangle.Value(2) + vertex_index - 1 + idx3 = triangle.Value(3) + vertex_index - 1 + faces.extend([int(idx1), int(idx2), int(idx3)]) + + vertex_index += nb_nodes + + explorer.Next() + + vertex_count = len(vertices) // 3 + face_count = len(faces) // 3 + + return { + "type": shape_type, + "vertices": vertices, + "faces": faces, + "vertex_count": vertex_count, + "face_count": face_count, + "triangulation": "BRepMesh三角化" + } + + except Exception as e: + logger.error(f"{shape_type}几何提取失败: {e}") + return { + "type": shape_type, + "vertices": [], + "faces": [], + "vertex_count": 0, + "face_count": 0, + "triangulation": f"提取失败: {str(e)}" + } + + def _extract_parting_surface_geometry(self, surface: Any) -> Dict[str, Any]: + """提取分型面几何数据""" + # 尝试从surface获取边界信息,失败则使用默认值 + try: + from OCC.Core.BRepAdaptor import BRepAdaptor_Surface + adaptor = BRepAdaptor_Surface(surface) + u_min, u_max = adaptor.FirstUParameter(), adaptor.LastUParameter() + v_min, v_max = adaptor.FirstVParameter(), adaptor.LastVParameter() + + bounds = { + "u_range": [float(u_min), float(u_max)], + "v_range": [float(v_min), float(v_max)] + } + except Exception as e: + logger.warning(f"分型面边界提取失败,使用默认值: {e}") + bounds = { + "u_range": [-200, 200], + "v_range": [-200, 200] + } + + # 分型面是水平面,法向量为 [0, 0, 1],原点在 Z 轴中心 + return { + "type": "plane", + "normal": [0, 0, 1], + "origin": [0, 0, 0], + "bounds": bounds + } + + return { + "type": "plane", + "normal": [0, 0, 1], + "origin": [0, 0, 0], + "bounds": bounds + } + + def _calculate_mold_size(self, analysis: Dict) -> Dict[str, float]: + """估算模具尺寸""" + product_bbox = analysis["bounding_box"]["dimensions"] + + # 模具通常比产品大20-50mm + margin = 30 # mm + + return { + "length": product_bbox[0] + 2 * margin, + "width": product_bbox[1] + 2 * margin, + "height": product_bbox[2] + 2 * margin + 100, # 增加100mm用于模架 + "margin": margin + } + + def _calculate_clamping_force(self, analysis: Dict) -> str: + """估算锁模力""" + volume_cm3 = analysis.get("volume", 0) / 1000 # mm³ → cm³ + + # 经验公式: 锁模力 ≈ 投影面积 × 压力 × 安全系数 + # 简化估算 + if volume_cm3 < 10: + return "50-100 吨" + elif volume_cm3 < 100: + return "150-300 吨" + elif volume_cm3 < 500: + return "400-600 吨" + else: + return "800+ 吨" + + def _get_recommended_material(self) -> str: + """推荐模具材料 - 铝模具专用""" + return "Aluminum Alloy 7075 (铝合金模具)" + + def _calculate_product_weight(self, analysis: Dict) -> str: + """计算产品重量(泡沫材料,密度约0.1 g/cm³)""" + volume_cm3 = analysis.get("volume", 0) / 1000 + weight_g = volume_cm3 * 0.1 # EPP泡沫密度约0.1 g/cm³ + return f"{weight_g:.2f} g" + + def _estimate_wall_thickness(self, analysis: Dict) -> str: + """估算壁厚范围""" + volume = analysis.get("volume", 0) + surface_area = analysis.get("surface_area", 0) + + if surface_area > 0 and volume > 0: + avg_thickness = (volume / surface_area) * 0.6 + return f"{avg_thickness * 0.7:.2f} - {avg_thickness * 1.3:.2f} mm" + elif volume > 0: + # 如果没有surface_area,基于体积估算 + bbox_dims = analysis.get("bounding_box", {}).get("dimensions", [1, 1, 1]) + bbox_volume = bbox_dims[0] * bbox_dims[1] * bbox_dims[2] + if bbox_volume > 0: + efficiency = volume / bbox_volume + avg_thickness = (bbox_dims[0] + bbox_dims[1]) / 2 * efficiency + return f"{avg_thickness * 0.7:.2f} - {avg_thickness * 1.3:.2f} mm" + + return "2.0 - 4.0 mm (默认)" + + def _calculate_complexity_score(self, analysis: Dict) -> float: + """计算复杂度评分(0-10)""" + # 基于体积、表面积比、边界框等 + volume = analysis.get("volume", 0) + surface_area = analysis.get("surface_area", 0) + + if surface_area > 0 and volume > 0: + thickness_ratio = (volume / surface_area) * 0.6 + complexity = min(thickness_ratio / 5.0, 10.0) + return round(complexity, 1) + elif volume > 0: + # 如果没有surface_area,基于拓扑复杂度评分 + bbox_dims = analysis.get("bounding_box", {}).get("dimensions", [100, 100, 100]) + bbox_volume = bbox_dims[0] * bbox_dims[1] * bbox_dims[2] + if bbox_volume > 0: + volume_ratio = volume / bbox_volume + complexity = (1.0 - volume_ratio) * 10 + return round(min(max(complexity, 0), 10), 1) + + return 5.0 + + def _estimate_cycle_time(self, analysis: Dict) -> str: + """估算成型周期""" + volume_cm3 = analysis.get("volume", 0) / 1000 + + if volume_cm3 < 10: + return "15-25 秒" + elif volume_cm3 < 50: + return "25-40 秒" + elif volume_cm3 < 200: + return "40-60 秒" + else: + return "60-90 秒" + + def _identify_weld_line_risk(self, analysis: Dict) -> str: + """识别熔接痕风险""" + # 基于几何复杂度判断 + complexity = self._calculate_complexity_score(analysis) + + if complexity > 7: + return "高 - 建议优化浇口位置" + elif complexity > 4: + return "中 - 需仿真验证" + else: + return "低" + + def _identify_sink_mark_risk(self, analysis: Dict) -> str: + """识别缩痕风险""" + thickness = self._estimate_wall_thickness(analysis) + # 简化的风险评估 + return "中 - 建议壁厚均匀性检查" + + def _assess_warpage_risk(self, analysis: Dict) -> str: + """评估翘曲风险""" + bbox = analysis.get("bounding_box", {}).get("dimensions", [1, 1, 1]) + aspect_ratio = max(bbox) / min(bbox) + + if aspect_ratio > 5: + return "高 - 建议增加加强筋" + elif aspect_ratio > 3: + return "中 - 需优化冷却" + else: + return "低" + + def _get_inertia_matrix(self, props: GProp_GProps) -> List[List[float]]: + """获取惯性矩阵""" + inertia = props.MatrixOfInertia() + return [ + [inertia.Value(1, 1), inertia.Value(1, 2), inertia.Value(1, 3)], + [inertia.Value(2, 1), inertia.Value(2, 2), inertia.Value(2, 3)], + [inertia.Value(3, 1), inertia.Value(3, 2), inertia.Value(3, 3)] + ] + + def _calculate_parting_line_length(self, parting_line: List) -> float: + """计算分型线长度""" + # 简化的长度计算 + return 250.0 # mm diff --git a/src/core/stp_parser.py b/src/core/stp_parser.py new file mode 100644 index 0000000..00f06ec --- /dev/null +++ b/src/core/stp_parser.py @@ -0,0 +1,292 @@ +# core/stp_parser.py +from pathlib import Path +from typing import Dict, Any, Optional, List +import numpy as np +import json +from utils.logger import get_logger +from OCC.Core.GProp import GProp_GProps +from OCC.Core.BRepGProp import brepgprop + +logger = get_logger(__name__) + + +class STPParser: + """STP文件解析器""" + + def __init__(self): + # 强制要求PythonOCC必须可用 + self._verify_occ_availability() + + def _verify_occ_availability(self): + """验证PythonOCC是否可用,不可用则抛出异常""" + try: + from OCC.Core.STEPControl import STEPControl_Reader + from OCC.Core.IFSelect import IFSelect_RetDone + logger.info("PythonOCC验证通过") + except ImportError as e: + logger.error("PythonOCC不可用,服务无法运行") + raise RuntimeError("PythonOCC未安装,请安装PythonOCC后再运行服务") from e + + + + def load_step_file(self, file_path: Path) -> Any: + """加载STP文件""" + try: + from OCC.Core.STEPControl import STEPControl_Reader + from OCC.Core.IFSelect import IFSelect_RetDone + + logger.info(f"加载STP文件: {file_path}") + reader = STEPControl_Reader() + status = reader.ReadFile(str(file_path)) + + if status == IFSelect_RetDone: + reader.TransferRoots() + shape = reader.OneShape() + logger.info("STP文件加载成功") + return shape + else: + raise ValueError(f"STP文件读取失败,状态码: {status}") + + except Exception as e: + logger.error(f"STP解析失败: {e}") + raise + + def analyze_geometry(self, shape) -> Dict[str, Any]: + """分析几何属性""" + + try: + from OCC.Core.GProp import GProp_GProps + from OCC.Core.BRepGProp import brepgprop + from OCC.Core.Bnd import Bnd_Box + from OCC.Core.BRepBndLib import brepbndlib + from OCC.Core.TopExp import TopExp_Explorer + from OCC.Core.TopAbs import TopAbs_FACE, TopAbs_EDGE, TopAbs_VERTEX + + logger.info("开始几何分析...") + + # 计算边界框 + bbox = self._compute_bounding_box(shape) + + # 计算体积和表面积 + volume = self._compute_volume(shape) + area = self._compute_surface_area(shape) + + # 分析拓扑 + topology = self._analyze_topology(shape) + + # 计算质心 + center_of_mass = self._compute_center_of_mass(shape) + + # 计算惯性属性 + inertia_properties = self._compute_inertia_properties(shape) + + result = { + "bounding_box": bbox, + "volume": float(volume), + "surface_area": float(area), + "topology": topology, + "center_of_mass": center_of_mass, + "inertia_properties": inertia_properties, + "analysis_method": "pythonocc" + } + + logger.info("几何分析完成") + return result + + except Exception as e: + logger.error(f"几何分析失败: {e}") + raise + + def _compute_bounding_box(self, shape) -> Dict[str, Any]: + """计算边界框""" + try: + from OCC.Core.Bnd import Bnd_Box + from OCC.Core.BRepBndLib import brepbndlib + + bbox = Bnd_Box() + brepbndlib.Add(shape, bbox) + xmin, ymin, zmin, xmax, ymax, zmax = bbox.Get() + + return { + "min": [float(xmin), float(ymin), float(zmin)], + "max": [float(xmax), float(ymax), float(zmax)], + "dimensions": [ + float(xmax - xmin), + float(ymax - ymin), + float(zmax - zmin) + ], + "center": [ + float((xmin + xmax) / 2), + float((ymin + ymax) / 2), + float((zmin + zmax) / 2) + ] + } + except Exception as e: + logger.error(f"边界框计算失败: {e}") + return self._default_bounding_box() + + def _compute_volume(self, shape) -> float: + """计算体积""" + try: + from OCC.Core.GProp import GProp_GProps + from OCC.Core.BRepGProp import brepgprop + + props = GProp_GProps() + brepgprop.VolumeProperties(shape, props) + return props.Mass() + except Exception as e: + logger.error(f"体积计算失败: {e}") + return 1000000.0 + + def _compute_surface_area(self, shape) -> float: + """计算表面积""" + try: + from OCC.Core.GProp import GProp_GProps + from OCC.Core.BRepGProp import brepgprop + + props = GProp_GProps() + brepgprop.SurfaceProperties(shape, props) + area = props.Mass() + logger.info(f"表面积计算成功: {area:.2f} mm²") + + # 如果计算结果为0,使用备选估算方法 + if area <= 0: + logger.warning("表面积计算结果为0,使用边界框估算") + raise ValueError("Surface area is zero") + + return area + except Exception as e: + logger.error(f"表面积计算失败: {e}") + # 基于边界框估算表面积 + try: + bbox = self._compute_bounding_box(shape) + dims = bbox.get("dimensions", [100, 100, 100]) + # 简化的估算公式:2*(lw + lh + wh) + estimated_area = 2 * (dims[0]*dims[1] + dims[0]*dims[2] + dims[1]*dims[2]) + logger.warning(f"使用边界框估算表面积: {estimated_area:.2f} mm²") + return estimated_area + except: + return 60000.0 + + def _compute_center_of_mass(self, shape) -> List[float]: + """计算质心""" + try: + from OCC.Core.GProp import GProp_GProps + from OCC.Core.BRepGProp import brepgprop + + props = GProp_GProps() + brepgprop.VolumeProperties(shape, props) + center = props.CentreOfMass() + return [float(center.X()), float(center.Y()), float(center.Z())] + except Exception as e: + logger.error(f"质心计算失败: {e}") + return [0.0, 0.0, 0.0] + + def _compute_inertia_properties(self, shape) -> Dict[str, Any]: + """计算惯性属性""" + try: + from OCC.Core.GProp import GProp_GProps + from OCC.Core.BRepGProp import brepgprop + + props = GProp_GProps() + brepgprop.VolumeProperties(shape, props) + + inertia = props.MatrixOfInertia() + return { + "mass": float(props.Mass()), + "moment_of_inertia": [ + [float(inertia.Value(1, 1)), float(inertia.Value(1, 2)), float(inertia.Value(1, 3))], + [float(inertia.Value(2, 1)), float(inertia.Value(2, 2)), float(inertia.Value(2, 3))], + [float(inertia.Value(3, 1)), float(inertia.Value(3, 2)), float(inertia.Value(3, 3))] + ] + } + except Exception as e: + logger.error(f"惯性属性计算失败: {e}") + return {} + + def _analyze_topology(self, shape) -> Dict[str, int]: + """分析拓扑""" + try: + from OCC.Core.TopExp import TopExp_Explorer + from OCC.Core.TopAbs import TopAbs_FACE, TopAbs_EDGE, TopAbs_VERTEX + + def count_elements(element_type): + explorer = TopExp_Explorer(shape, element_type) + count = 0 + while explorer.More(): + count += 1 + explorer.Next() + return count + + return { + "faces": count_elements(TopAbs_FACE), + "edges": count_elements(TopAbs_EDGE), + "vertices": count_elements(TopAbs_VERTEX) + } + except Exception as e: + logger.error(f"拓扑分析失败: {e}") + raise + + def _create_dummy_shape(self): + """创建虚拟形状""" + return "dummy_shape" + + def _simulate_analysis(self) -> Dict[str, Any]: + """模拟分析结果""" + logger.info("使用模拟分析数据") + return { + "bounding_box": self._default_bounding_box(), + "volume": 1000000.0, + "surface_area": 60000.0, + "topology": {"faces": 6, "edges": 12, "vertices": 8}, + "center_of_mass": [50.0, 50.0, 50.0], + "inertia_properties": {}, + "analysis_method": "simulated" + } + + def _default_bounding_box(self) -> Dict[str, Any]: + """默认边界框""" + return { + "min": [0.0, 0.0, 0.0], + "max": [100.0, 100.0, 100.0], + "dimensions": [100.0, 100.0, 100.0], + "center": [50.0, 50.0, 50.0] + } + + def export_to_json(self, geometry_data: Dict[str, Any], output_path: Path) -> str: + """将几何数据导出为JSON文件""" + try: + # 确保输出目录存在 + output_path.parent.mkdir(parents=True, exist_ok=True) + + # 添加元数据 + json_data = { + "metadata": { + "export_time": str(np.datetime64('now')), + "analysis_method": geometry_data.get("analysis_method", "unknown"), + "version": "1.0.0" + }, + "geometry_data": geometry_data + } + + # 保存JSON文件 + with open(output_path, 'w', encoding='utf-8') as f: + json.dump(json_data, f, indent=2, ensure_ascii=False) + + logger.info(f"几何数据已导出到: {output_path}") + return str(output_path) + + except Exception as e: + logger.error(f"JSON导出失败: {e}") + raise + + def get_json_data(self, geometry_data: Dict[str, Any]) -> Dict[str, Any]: + """获取JSON格式的几何数据""" + return { + "metadata": { + "export_time": str(np.datetime64('now')), + "analysis_method": geometry_data.get("analysis_method", "unknown"), + "version": "1.0.0" + }, + "geometry_data": geometry_data + } \ No newline at end of file diff --git a/src/database/database.py b/src/database/database.py new file mode 100644 index 0000000..12dbd40 --- /dev/null +++ b/src/database/database.py @@ -0,0 +1,99 @@ +# database/database.py +import sys +import os +from pathlib import Path + +# 添加项目根目录到Python路径 +project_root = Path(__file__).parent.parent.parent +sys.path.insert(0, str(project_root)) + +from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession, async_sessionmaker +from sqlalchemy import text +from sqlalchemy.orm import sessionmaker +from config.settings import settings +import asyncio +from utils.logger import get_logger + +logger = get_logger(__name__) + +class DatabaseManager: + """数据库管理器""" + + def __init__(self): + self.engine = None + self.async_session = None + self.is_connected = False + + async def connect(self): + """连接数据库""" + if not settings.DATABASE_URL: + logger.warning("未配置数据库连接,跳过数据库初始化") + self.is_connected = False + return + + try: + # 创建异步引擎 + self.engine = create_async_engine( + settings.DATABASE_URL, + echo=settings.DEBUG, + pool_size=20, + max_overflow=30, + pool_recycle=3600 + ) + + # 创建异步会话工厂 + self.async_session = async_sessionmaker( + self.engine, + class_=AsyncSession, + expire_on_commit=False + ) + + # 测试连接 + async with self.engine.begin() as conn: + await conn.execute(text("SELECT 1")) + + self.is_connected = True + logger.info("数据库连接成功") + + except Exception as e: + logger.error(f"数据库连接失败: {e}") + self.is_connected = False + raise + + async def disconnect(self): + """断开数据库连接""" + if self.engine: + await self.engine.dispose() + self.is_connected = False + logger.info("数据库连接已断开") + + async def get_session(self) -> AsyncSession: + """获取数据库会话""" + if not self.is_connected: + await self.connect() + + return self.async_session() + + async def create_tables(self): + """创建数据库表""" + from models.database import Base + + try: + async with self.engine.begin() as conn: + await conn.run_sync(Base.metadata.create_all) + logger.info("数据库表创建成功") + except Exception as e: + logger.error(f"数据库表创建失败: {e}") + raise + +# 全局数据库管理器实例 +db_manager = DatabaseManager() + +# 数据库依赖注入 +async def get_db_session(): + """获取数据库会话的依赖函数""" + session = await db_manager.get_session() + try: + yield session + finally: + await session.close() \ No newline at end of file diff --git a/src/database/init_db.py b/src/database/init_db.py new file mode 100644 index 0000000..82c81b1 --- /dev/null +++ b/src/database/init_db.py @@ -0,0 +1,25 @@ +# database/init_db.py +import asyncio +from database.database import db_manager +from utils.logger import get_logger + +logger = get_logger(__name__) + +async def init_database(): + """初始化数据库""" + try: + # 连接数据库 + await db_manager.connect() + + # 创建表 + await db_manager.create_tables() + + logger.info("数据库初始化完成") + return True + + except Exception as e: + logger.error(f"数据库初始化失败: {e}") + return False + +if __name__ == "__main__": + asyncio.run(init_database()) \ No newline at end of file diff --git a/src/database/migrate_db.py b/src/database/migrate_db.py new file mode 100644 index 0000000..032f226 --- /dev/null +++ b/src/database/migrate_db.py @@ -0,0 +1,67 @@ +"""数据库迁移脚本 - 删除旧表并重新创建""" +import asyncio +import sys +import os +from pathlib import Path + +# 添加项目根目录到路径 +project_root = Path(__file__).parent.parent.parent +sys.path.insert(0, str(project_root)) +sys.path.insert(0, str(Path(__file__).parent.parent)) + +# 设置环境变量确保正确导入 +os.environ['PYTHONPATH'] = str(project_root) + os.pathsep + str(Path(__file__).parent.parent) + +from src.database.database import db_manager +from src.models.database import Base +from src.utils.logger import get_logger + +logger = get_logger(__name__) + + +async def migrate_database(): + """迁移数据库:删除所有表并重新创建""" + try: + # 连接数据库 + await db_manager.connect() + + # 删除所有表 + logger.info("正在删除所有数据库表...") + async with db_manager.engine.begin() as conn: + await conn.run_sync(Base.metadata.drop_all) + + # 重新创建所有表 + logger.info("正在创建所有数据库表...") + async with db_manager.engine.begin() as conn: + await conn.run_sync(Base.metadata.create_all) + + logger.info("数据库迁移完成!") + + return True + + except Exception as e: + logger.error(f"数据库迁移失败: {e}") + return False + finally: + await db_manager.disconnect() + + +if __name__ == "__main__": + import sys + + # 检查命令行参数 + if len(sys.argv) > 1 and sys.argv[1] == '--force': + confirm = 'yes' + else: + print("=== 数据库迁移 ===") + print("警告:这将删除所有数据库表和数据!") + confirm = input("确认继续?(yes/no): ") + + if confirm.lower() == 'yes': + asyncio.run(migrate_database()) + else: + print("已取消迁移") + + + + diff --git a/src/html_output/fsa30scy_tc-01-0817_stp_20251115_230916.html b/src/html_output/fsa30scy_tc-01-0817_stp_20251115_230916.html new file mode 100644 index 0000000..26d1b22 --- /dev/null +++ b/src/html_output/fsa30scy_tc-01-0817_stp_20251115_230916.html @@ -0,0 +1,207 @@ + + + + + + + 3D模具几何可视化 - fsa30scy_tc-01-0817.stp + + + + + +
+ + +
+

模具几何信息

+
+ 文件名: + fsa30scy_tc-01-0817.stp +
+
+ 体积: + 1000000.00 mm³ +
+
+ 表面积: + 60000.00 mm² +
+
+ 边界框: + 100.0 × 100.0 × 100.0 mm +
+
+ 面数: + 6 +
+
+ 边数: + 12 +
+
+ 顶点数: + 8 +
+
+ +
+ + +
+
+ + + + diff --git a/src/main.py b/src/main.py new file mode 100644 index 0000000..b54341c --- /dev/null +++ b/src/main.py @@ -0,0 +1,134 @@ +# main.py +import sys +import os +from pathlib import Path + +# 添加项目根目录到Python路径 +project_root = Path(__file__).parent.parent +src_root = Path(__file__).parent +sys.path.insert(0, str(project_root)) +sys.path.insert(0, str(src_root)) + +# 确保当前工作目录是项目根目录 +os.chdir(project_root) + +# 打印调试信息 +print(f"项目根目录: {project_root}") +print(f"Python路径: {sys.path}") +print(f"当前工作目录: {os.getcwd()}") + +# 测试导入配置模块 +try: + from config.settings import settings + print("[OK] 配置模块导入成功") +except ImportError as e: + print(f"[FAIL] 配置模块导入失败: {e}") + # 列出当前目录内容 + print("当前目录内容:") + for item in os.listdir('.'): + print(f" - {item}") + # 列出config目录内容 + if os.path.exists('config'): + print("config目录内容:") + for item in os.listdir('config'): + print(f" - {item}") + raise + +from fastapi import FastAPI +from fastapi.staticfiles import StaticFiles +from fastapi.templating import Jinja2Templates +import asyncio + +from api.routes import router +from utils.logger import setup_logging +from database.init_db import init_database + +# 设置日志 +setup_logging() + +# 创建FastAPI应用 +app = FastAPI( + title="模具几何分析服务", + description="基于PythonOCC的STP文件几何分析和模具设计建议服务", + version="3.0.0" +) + +# 启动时初始化数据库和RustFS +@app.on_event("startup") +async def startup_event(): + """应用启动时初始化数据库和RustFS""" + # 初始化数据库 + success = await init_database() + if success: + print("[OK] 数据库初始化成功") + else: + print("[FAIL] 数据库初始化失败,服务将继续运行但数据库功能不可用") + + # 初始化RustFS连接 + try: + from storage.rustfs_storage import rustfs_manager + from config.settings import settings + + await rustfs_manager.connect( + endpoint=settings.RUSTFS_ENDPOINT, + access_key=settings.RUSTFS_ACCESS_KEY, + secret_key=settings.RUSTFS_SECRET_KEY, + timeout=settings.RUSTFS_TIMEOUT + ) + print("[OK] RustFS连接成功") + except Exception as e: + print(f"[FAIL] RustFS连接失败: {e}") + print("[WARN] 文件上传功能将不可用,但其他功能正常") + +# 创建必要目录 +UPLOAD_DIR = Path("uploads") +UPLOAD_DIR.mkdir(exist_ok=True) +TEMPLATES_DIR = Path("templates") +TEMPLATES_DIR.mkdir(exist_ok=True) +STATIC_DIR = Path("static") +STATIC_DIR.mkdir(exist_ok=True) +HTML_OUTPUT_DIR = Path("html_output") +HTML_OUTPUT_DIR.mkdir(exist_ok=True) + +# 挂载静态文件 +import os +static_dir = os.path.join(os.path.dirname(os.path.dirname(__file__)), "static") +app.mount("/static", StaticFiles(directory=static_dir), name="static") + +# 注册路由 +app.include_router(router) + + +@app.get("/health") +async def health(): + from database.database import db_manager + return { + "status": "healthy", + "service": "mold-geometry-analysis", + "database_connected": db_manager.is_connected + } + + +if __name__ == "__main__": + import uvicorn + import os + + # 直接从环境变量获取端口,避免配置导入问题 + host = os.getenv('HOST', '0.0.0.0') + port = int(os.getenv('PORT', '8000')) + + print("启动模具几何分析服务 v3.0...") + print(f"访问 http://localhost:{port} 使用网页界面") + print("新增功能:") + print(" - STP文件解析为JSON数据") + print(" - 数据存储到PostgreSQL数据库") + print(" - 自动生成3D可视化HTML页面") + print(" - 源文件、JSON数据、HTML文件统一管理") + print(f"调试接口: http://localhost:{port}/debug/tasks") + + uvicorn.run( + "main:app", + host=host, + port=port, + reload=True + ) \ No newline at end of file diff --git a/src/models/database.py b/src/models/database.py new file mode 100644 index 0000000..5eaceac --- /dev/null +++ b/src/models/database.py @@ -0,0 +1,328 @@ +# models/database.py +from sqlalchemy import Column, Integer, String, Text, DateTime, JSON, LargeBinary, Boolean, Float, ForeignKey +from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy.sql import func +from sqlalchemy.orm import relationship +from datetime import datetime + +Base = declarative_base() + +class User(Base): + """用户表""" + __tablename__ = "users" + + id = Column(Integer, primary_key=True, index=True) + username = Column(String(50), unique=True, index=True, nullable=False) + email = Column(String(255), unique=True, index=True, nullable=False) + hashed_password = Column(String(255), nullable=False) + full_name = Column(String(100)) + is_active = Column(Boolean, default=True) + is_superuser = Column(Boolean, default=False) + created_at = Column(DateTime, default=func.now()) + last_login = Column(DateTime, nullable=True) + + # 关联关系 + stp_files = relationship("STPFile", back_populates="user") + + def __repr__(self): + return f"" + +class STPFile(Base): + """STP源文件元数据表""" + __tablename__ = "stp_files" + + id = Column(Integer, primary_key=True, index=True) + user_id = Column(Integer, ForeignKey("users.id"), nullable=True, index=True) + + # 对象存储信息 + object_key = Column(String(500), nullable=False, index=True) # MinIO对象键 + storage_bucket = Column(String(100), nullable=False) # 存储桶名称 + object_url = Column(String(1000), nullable=True) # 预签名URL(可选) + + # 文件信息 + original_filename = Column(String(255), nullable=False) + file_size = Column(Integer, nullable=False) + file_hash = Column(String(64), unique=True, index=True) # SHA256 hash + mime_type = Column(String(50), default="application/octet-stream") + + # 时间戳 + upload_time = Column(DateTime, default=func.now()) + processed_time = Column(DateTime, nullable=True) + + # 状态 + status = Column(String(20), default="pending") # pending, processing, completed, failed + error_message = Column(Text, nullable=True) + + # 保留旧字段以兼容 + file_path = Column(String(500), nullable=True) # 本地路径(已弃用) + file_content = Column(LargeBinary, nullable=True) # 本地存储(已弃用) + filename = Column(String(255), nullable=True) # 已弃用 + + # 关联关系 + user = relationship("User", back_populates="stp_files") + geometry_data = relationship("GeometryData", back_populates="stp_file", uselist=False) + mold_cavity_data = relationship("MoldCavityData", back_populates="stp_file", uselist=False) + html_file = relationship("HTMLFile", back_populates="stp_file", uselist=False) + + def __repr__(self): + return f"" + +class GeometryData(Base): + """几何数据JSON元数据表""" + __tablename__ = "geometry_data" + + id = Column(Integer, primary_key=True, index=True) + stp_file_id = Column(Integer, ForeignKey("stp_files.id"), nullable=False, index=True) + + # 对象存储信息 + object_key = Column(String(500), nullable=False) + storage_bucket = Column(String(100), nullable=False) + object_url = Column(String(1000), nullable=True) + + # 分析方法 + analysis_method = Column(String(50), default="pythonocc") # pythonocc, simulated + + # 时间戳 + created_time = Column(DateTime, default=func.now()) + + # 几何属性摘要(便于快速查询) + volume = Column(Float, nullable=True) + surface_area = Column(Float, nullable=True) + bounding_box_min = Column(JSON, nullable=True) + bounding_box_max = Column(JSON, nullable=True) + center_of_mass = Column(JSON, nullable=True) + + # 拓扑信息 + topology_faces = Column(Integer, nullable=True) + topology_edges = Column(Integer, nullable=True) + topology_vertices = Column(Integer, nullable=True) + + # 关联关系 + stp_file = relationship("STPFile", back_populates="geometry_data") + + def __repr__(self): + return f"" + +class HTMLFile(Base): + """网页文件元数据表""" + __tablename__ = "html_files" + + id = Column(Integer, primary_key=True, index=True) + stp_file_id = Column(Integer, ForeignKey("stp_files.id"), nullable=False, index=True) + + # 对象存储信息 + object_key = Column(String(500), nullable=False) + storage_bucket = Column(String(100), nullable=False) + object_url = Column(String(1000), nullable=True) + + # 文件信息 + filename = Column(String(255), nullable=False) + generated_time = Column(DateTime, default=func.now()) + + # 可视化相关元数据 + visualization_type = Column(String(50), default="3d_viewer") + has_interactive_elements = Column(Boolean, default=True) + + # 保留旧字段以兼容 + file_path = Column(String(500), nullable=True) + html_content = Column(Text, nullable=True) + + # 关联关系 + stp_file = relationship("STPFile", back_populates="html_file") + + def __repr__(self): + return f"" + +class ProcessingTask(Base): + """处理任务记录表""" + __tablename__ = "processing_tasks" + + id = Column(Integer, primary_key=True, index=True) + task_id = Column(String(36), unique=True, index=True, nullable=False) + stp_file_id = Column(Integer, ForeignKey("stp_files.id"), nullable=False, index=True) + + # 任务类型和状态 + task_type = Column(String(50), default="stp_parsing") # stp_parsing, geometry_analysis, mold_generation + status = Column(String(20), default="pending") # pending, processing, completed, failed + + # 时间戳 + created_time = Column(DateTime, default=func.now()) + started_time = Column(DateTime, nullable=True) + completed_time = Column(DateTime, nullable=True) + + # 处理进度 + progress = Column(Integer, default=0) # 0-100 + current_step = Column(String(100), nullable=True) + + # 错误信息 + error_message = Column(Text, nullable=True) + error_stack = Column(Text, nullable=True) + + # 处理参数 + parameters = Column(JSON, nullable=True) # 任务参数 + + def __repr__(self): + return f"" + +class MoldCavityData(Base): + """模具型腔数据元数据表""" + __tablename__ = "mold_cavity_data" + + id = Column(Integer, primary_key=True, index=True) + stp_file_id = Column(Integer, ForeignKey("stp_files.id"), nullable=False, index=True) + + # 对象存储信息 + detailed_object_key = Column(String(500), nullable=False) # 完整三维数据 + storage_bucket = Column(String(100), nullable=False) + + # 模具类型和材料 + mold_material = Column(String(100), default="Aluminum Alloy 7075") + mold_type = Column(String(50), default="single_cavity") # single_cavity, multi_cavity + + # 工艺参数 + shrinkage_rate = Column(Float, nullable=False) + draft_angle = Column(Float, nullable=False) + parting_line_length = Column(Float, nullable=True) + + # 生成时间 + generated_time = Column(DateTime, default=func.now()) + + # 关键信息摘要(快速查询字段) + cavity_key_info = Column(JSON, nullable=True) # 完整关键信息 + + # 提取的字段(便于查询和排序) + mold_size_length = Column(Float, nullable=True) + mold_size_width = Column(Float, nullable=True) + mold_size_height = Column(Float, nullable=True) + estimated_clamping_force = Column(String(50), nullable=True) + product_weight = Column(String(50), nullable=True) + product_volume = Column(Float, nullable=True) + wall_thickness_range = Column(String(50), nullable=True) + complexity_score = Column(Float, nullable=True) + + # 质量评估 + weld_line_risk = Column(String(50), nullable=True) # 熔接痕风险 + sink_mark_risk = Column(String(50), nullable=True) # 缩痕风险 + warpage_risk = Column(String(50), nullable=True) # 翘曲风险 + + # 关联关系 + stp_file = relationship("STPFile", back_populates="mold_cavity_data") + + def __repr__(self): + return f"" + + +class FeatureDetection(Base): + """特征检测结果表""" + __tablename__ = "feature_detections" + + id = Column(Integer, primary_key=True, index=True) + stp_file_id = Column(Integer, ForeignKey("stp_files.id"), nullable=False, index=True) + + # 特征信息 + feature_type = Column(String(50), nullable=False, index=True) # thin_wall, thick_wall, rib, boss, draft_angle + confidence = Column(Float, nullable=False) # 0.0 - 1.0 + + # 位置和尺寸 + location = Column(JSON, nullable=True) # [x, y, z] + dimensions = Column(JSON, nullable=True) # [length, width, height] + + # 特征参数 + parameters = Column(JSON, nullable=True) # 自定义参数 + + # 检测时间 + detected_at = Column(DateTime, default=func.now()) + + # 关联的几何数据 + geometry_data_id = Column(Integer, ForeignKey("geometry_data.id"), nullable=True) + + def __repr__(self): + return f"" + + +class DesignRecommendation(Base): + """设计建议表""" + __tablename__ = "design_recommendations" + + id = Column(Integer, primary_key=True, index=True) + stp_file_id = Column(Integer, ForeignKey("stp_files.id"), nullable=False, index=True) + + # 建议信息 + rec_type = Column(String(50), nullable=False) # wall_thickness, draft_angle, etc. + priority = Column(String(20), nullable=False) # high, medium, low + description = Column(String(500), nullable=False) + reason = Column(Text, nullable=True) + + # 建议参数 + parameters = Column(JSON, nullable=True) + + # 状态 + status = Column(String(20), default="pending") # pending, accepted, rejected + user_notes = Column(Text, nullable=True) + + # 时间戳 + created_at = Column(DateTime, default=func.now()) + updated_at = Column(DateTime, nullable=True) + + def __repr__(self): + return f"" + + +class UserActivity(Base): + """用户活动日志表""" + __tablename__ = "user_activities" + + id = Column(Integer, primary_key=True, index=True) + user_id = Column(Integer, ForeignKey("users.id"), nullable=False, index=True) + + # 活动信息 + activity_type = Column(String(50), nullable=False, index=True) # upload, view, download, delete, export + resource_type = Column(String(50), nullable=True) # stp_file, geometry_data, mold_cavity + resource_id = Column(Integer, nullable=True) + + # 活动详情 + description = Column(Text, nullable=True) + meta_data = Column(JSON, nullable=True) + + # 时间戳 + created_at = Column(DateTime, default=func.now(), index=True) + + # IP和设备信息 + ip_address = Column(String(45), nullable=True) + user_agent = Column(String(500), nullable=True) + + def __repr__(self): + return f"" + + +class SystemLog(Base): + """系统日志表(重要操作和错误)""" + __tablename__ = "system_logs" + + id = Column(Integer, primary_key=True, index=True) + + # 日志级别 + level = Column(String(20), nullable=False, index=True) # INFO, WARNING, ERROR, CRITICAL + + # 日志信息 + message = Column(Text, nullable=False) + module = Column(String(100), nullable=True) # 模块名 + function_name = Column(String(100), nullable=True) + + # 时间戳 + created_at = Column(DateTime, default=func.now(), index=True) + + # 用户信息(如果有关联用户) + user_id = Column(Integer, ForeignKey("users.id"), nullable=True) + + # 额外信息 + request_id = Column(String(100), nullable=True) # 关联的请求ID + execution_time_ms = Column(Integer, nullable=True) # 执行时间 + + # 关联数据 + resource_type = Column(String(50), nullable=True) + resource_id = Column(Integer, nullable=True) + + def __repr__(self): + return f"" + diff --git a/src/models/schemas.py b/src/models/schemas.py new file mode 100644 index 0000000..97737c6 --- /dev/null +++ b/src/models/schemas.py @@ -0,0 +1,135 @@ +# models/schemas.py +from typing import Dict, List, Optional, Any +from enum import Enum + +class ProcessingStatus(str, Enum): + PENDING = "pending" + PROCESSING = "processing" + COMPLETED = "completed" + FAILED = "failed" + +# 简化的数据模型,避免复杂的Pydantic验证 +def create_geometry_data( + bounding_box: Dict[str, List[float]], + volume: float, + surface_area: float, + topology: Dict[str, int], + analysis_method: str, + center_of_mass: Optional[List[float]] = None, + inertia_properties: Optional[Dict[str, Any]] = None +) -> Dict[str, Any]: + """创建几何数据""" + return { + "bounding_box": bounding_box, + "volume": volume, + "surface_area": surface_area, + "topology": topology, + "center_of_mass": center_of_mass or [0.0, 0.0, 0.0], + "inertia_properties": inertia_properties or {}, + "analysis_method": analysis_method + } + +def create_mold_feature( + feature_type: str, + confidence: float, + location: List[float], + dimensions: List[float], + parameters: Dict[str, Any], + recommendations: List[str] +) -> Dict[str, Any]: + """创建模具特征""" + return { + "feature_type": feature_type, + "confidence": confidence, + "location": location, + "dimensions": dimensions, + "parameters": parameters, + "recommendations": recommendations + } + +def create_design_recommendation( + rec_type: str, + priority: str, + description: str, + parameters: Dict[str, Any], + reason: str +) -> Dict[str, Any]: + """创建设计建议""" + return { + "type": rec_type, + "priority": priority, + "description": description, + "parameters": parameters, + "reason": reason + } + +def create_analysis_result( + geometry_data: Dict[str, Any], + detected_features: List[Dict[str, Any]], + design_recommendations: List[Dict[str, Any]], + quality_metrics: Dict[str, float], + analysis_summary: str +) -> Dict[str, Any]: + """创建分析结果""" + return { + "geometry_data": geometry_data, + "detected_features": detected_features, + "design_recommendations": design_recommendations, + "quality_metrics": quality_metrics, + "analysis_summary": analysis_summary + } + +def create_task_info( + task_id: str, + status: ProcessingStatus, + filename: str, + file_path: str, + file_size: int, + upload_time: str, + completed_at: Optional[str] = None, + geometry_data: Optional[Dict[str, Any]] = None, + analysis_result: Optional[Dict[str, Any]] = None, + error: Optional[str] = None +) -> Dict[str, Any]: + """创建任务信息""" + return { + "task_id": task_id, + "status": status, + "filename": filename, + "file_path": file_path, + "file_size": file_size, + "upload_time": upload_time, + "completed_at": completed_at, + "geometry_data": geometry_data, + "analysis_result": analysis_result, + "error": error + } +# 添加到 schemas.py + +def create_mold_cavity_data( + cavity_geometry: Dict[str, Any], + core_geometry: Dict[str, Any], + parting_surface: Dict[str, Any], + manufacturing_info: Dict[str, Any] +) -> Dict[str, Any]: + """创建模具型腔详细数据""" + return { + "cavity_geometry": cavity_geometry, + "core_geometry": core_geometry, + "parting_surface": parting_surface, + "manufacturing_info": manufacturing_info + } + +def create_mold_key_info( + mold_parameters: Dict[str, Any], + geometric_characteristics: Dict[str, Any], + manufacturing_requirements: Dict[str, Any], + quality_considerations: Dict[str, Any] +) -> Dict[str, Any]: + """创建模具型腔关键信息""" + return { + "mold_parameters": mold_parameters, + "geometric_characteristics": geometric_characteristics, + "manufacturing_requirements": manufacturing_requirements, + "quality_considerations": quality_considerations + } diff --git a/src/services/__init__.py b/src/services/__init__.py new file mode 100644 index 0000000..530c003 --- /dev/null +++ b/src/services/__init__.py @@ -0,0 +1 @@ +# Services 模块 diff --git a/src/services/storage_integration.py b/src/services/storage_integration.py new file mode 100644 index 0000000..50f7568 --- /dev/null +++ b/src/services/storage_integration.py @@ -0,0 +1,376 @@ +# services/storage_integration.py +"""存储集成服务 - 协调 PostgreSQL 和 MinIO""" +from sqlalchemy.ext.asyncio import AsyncSession +from sqlalchemy import select +from pathlib import Path +from typing import Optional, Dict, Any +import json + +from models.database import ( + STPFile, GeometryData, MoldCavityData, + HTMLFile, ProcessingTask, User, + FeatureDetection, DesignRecommendation, + UserActivity, SystemLog +) +from storage.object_storage import storage_manager +from utils.logger import get_logger + +logger = get_logger(__name__) + + +class StorageIntegrationService: + """存储集成服务""" + + async def save_stp_file(self, session: AsyncSession, + file_path: Path, + original_filename: str, + user_id: Optional[int] = None) -> STPFile: + """保存STP文件到PostgreSQL元数据 + MinIO对象存储""" + + # 1. 上传到MinIO + upload_result = await storage_manager.upload_stp_file( + file_path, + original_filename + ) + + # 2. 创建PostgreSQL记录 + stp_file = STPFile( + user_id=user_id, + object_key=upload_result['object_key'], + storage_bucket=storage_manager.buckets['stp_files'], + original_filename=original_filename, + file_size=upload_result['file_size'], + file_hash=upload_result['file_hash'], + status="uploaded", + file_path=str(file_path) # 保留本地路径以兼容 + ) + + session.add(stp_file) + await session.commit() + await session.refresh(stp_file) + + logger.info(f"STP文件保存成功: {stp_file.id}") + return stp_file + + async def save_geometry_data(self, session: AsyncSession, + stp_file_id: int, + geometry_json: Dict[str, Any], + analysis_method: str = "pythonocc") -> GeometryData: + """保存几何数据到PostgreSQL元数据 + MinIO对象存储""" + + # 1. 获取文件哈希 + stp_file = await session.get(STPFile, stp_file_id) + file_hash = stp_file.file_hash + + # 2. 上传到MinIO + upload_result = await storage_manager.upload_geometry_data( + geometry_json, + file_hash + ) + + # 3. 创建PostgreSQL记录 + geometry_data = GeometryData( + stp_file_id=stp_file_id, + object_key=upload_result['object_key'], + storage_bucket=storage_manager.buckets['geometry_data'], + analysis_method=analysis_method, + + # 提取摘要字段 + volume=geometry_json.get('geometry_data', {}).get('volume'), + surface_area=geometry_json.get('geometry_data', {}).get('surface_area'), + bounding_box_min=geometry_json.get('geometry_data', {}).get('bounding_box', {}).get('min'), + bounding_box_max=geometry_json.get('geometry_data', {}).get('bounding_box', {}).get('max'), + center_of_mass=geometry_json.get('geometry_data', {}).get('center_of_mass'), + topology_faces=geometry_json.get('geometry_data', {}).get('topology', {}).get('faces'), + topology_edges=geometry_json.get('geometry_data', {}).get('topology', {}).get('edges'), + topology_vertices=geometry_json.get('geometry_data', {}).get('topology', {}).get('vertices') + ) + + session.add(geometry_data) + await session.commit() + await session.refresh(geometry_data) + + logger.info(f"几何数据保存成功: {geometry_data.id}") + return geometry_data + + async def save_mold_cavity_data(self, session: AsyncSession, + stp_file_id: int, + cavity_json: Dict[str, Any]) -> MoldCavityData: + """保存模具型腔数据到PostgreSQL元数据 + MinIO对象存储""" + + # 1. 获取文件哈希 + stp_file = await session.get(STPFile, stp_file_id) + file_hash = stp_file.file_hash + + # 2. 上传到MinIO + upload_result = await storage_manager.upload_mold_cavity_data( + cavity_json, + file_hash + ) + + # 3. 提取关键信息 + metadata = cavity_json.get('metadata', {}) + product_analysis = cavity_json.get('product_analysis', {}) + manufacturing_info = cavity_json.get('manufacturing_info', {}) + mold_size = manufacturing_info.get('estimated_mold_size', {}) + key_info = cavity_json.get('mold_cavities', {}).get('cavity_key_info', {}) + + # 4. 创建PostgreSQL记录 + mold_cavity = MoldCavityData( + stp_file_id=stp_file_id, + detailed_object_key=upload_result['object_key'], + storage_bucket=storage_manager.buckets['mold_cavities'], + + # 模具参数 + mold_material=manufacturing_info.get('recommended_material', 'Aluminum Alloy 7075'), + shrinkage_rate=metadata.get('shrinkage_rate', 0.005), + draft_angle=metadata.get('draft_angle', 2.0), + + # 提取的摘要字段 + cavity_key_info=key_info, + mold_size_length=mold_size.get('length'), + mold_size_width=mold_size.get('width'), + mold_size_height=mold_size.get('height'), + estimated_clamping_force=manufacturing_info.get('estimated_clamping_force'), + product_volume=product_analysis.get('volume'), + + # 从key_info中提取(如果存在) + product_weight=key_info.get('geometric_characteristics', {}).get('product_weight'), + wall_thickness_range=key_info.get('geometric_characteristics', {}).get('wall_thickness_range'), + complexity_score=key_info.get('geometric_characteristics', {}).get('complexity_score'), + + # 质量评估 + weld_line_risk=key_info.get('quality_considerations', {}).get('potential_weld_lines'), + sink_mark_risk=key_info.get('quality_considerations', {}).get('sink_mark_areas'), + warpage_risk=key_info.get('quality_considerations', {}).get('warpage_risk') + ) + + session.add(mold_cavity) + await session.commit() + await session.refresh(mold_cavity) + + logger.info(f"模具型腔数据保存成功: {mold_cavity.id}") + return mold_cavity + + async def save_html_file(self, session: AsyncSession, + stp_file_id: int, + html_content: str, + filename: str) -> HTMLFile: + """保存HTML文件到PostgreSQL元数据 + MinIO对象存储""" + + # 1. 获取文件哈希 + stp_file = await session.get(STPFile, stp_file_id) + file_hash = stp_file.file_hash + + # 2. 上传到MinIO + upload_result = await storage_manager.upload_html_file( + html_content, + filename, + file_hash + ) + + # 3. 创建PostgreSQL记录 + html_file = HTMLFile( + stp_file_id=stp_file_id, + object_key=upload_result['object_key'], + storage_bucket=storage_manager.buckets['html_files'], + filename=filename, + file_path=str(Path('html_output') / filename), # 保留本地路径 + html_content=html_content # 保留内容以兼容 + ) + + session.add(html_file) + await session.commit() + await session.refresh(html_file) + + logger.info(f"HTML文件保存成功: {html_file.id}") + return html_file + + async def save_features_and_recommendations( + self, session: AsyncSession, + stp_file_id: int, + features: list, + recommendations: list + ): + """保存特征检测结果和设计建议""" + + # 1. 保存特征 + for feature in features: + feature_record = FeatureDetection( + stp_file_id=stp_file_id, + feature_type=feature.get('feature_type'), + confidence=feature.get('confidence'), + location=feature.get('location'), + dimensions=feature.get('dimensions'), + parameters=feature.get('parameters') + ) + session.add(feature_record) + + # 2. 保存建议 + for rec in recommendations: + rec_record = DesignRecommendation( + stp_file_id=stp_file_id, + rec_type=rec.get('rec_type'), + priority=rec.get('priority'), + description=rec.get('description'), + reason=rec.get('reason'), + parameters=rec.get('parameters') + ) + session.add(rec_record) + + await session.commit() + logger.info(f"保存了 {len(features)} 个特征和 {len(recommendations)} 个建议") + + async def log_user_activity(self, session: AsyncSession, + user_id: int, + activity_type: str, + resource_type: Optional[str] = None, + resource_id: Optional[int] = None, + description: Optional[str] = None, + metadata: Optional[Dict] = None, + ip_address: Optional[str] = None, + user_agent: Optional[str] = None): + """记录用户活动""" + + activity = UserActivity( + user_id=user_id, + activity_type=activity_type, + resource_type=resource_type, + resource_id=resource_id, + description=description, + metadata=metadata, + ip_address=ip_address, + user_agent=user_agent + ) + + session.add(activity) + await session.commit() + logger.debug(f"用户活动记录: {activity_type} by user {user_id}") + + async def get_stp_file_with_data(self, session: AsyncSession, + stp_file_id: int) -> Dict[str, Any]: + """获取STP文件及其所有关联数据""" + + # 1. 获取STP文件记录 + stp_file = await session.get(STPFile, stp_file_id) + if not stp_file: + raise ValueError(f"STP文件不存在: {stp_file_id}") + + result = { + 'metadata': { + 'id': stp_file.id, + 'original_filename': stp_file.original_filename, + 'file_size': stp_file.file_size, + 'file_hash': stp_file.file_hash, + 'upload_time': stp_file.upload_time.isoformat() if stp_file.upload_time else None, + 'status': stp_file.status, + 'user_id': stp_file.user_id + }, + 'geometry_data': None, + 'mold_cavity_data': None, + 'html_file': None, + 'features': [], + 'recommendations': [] + } + + # 2. 从MinIO获取数据 + try: + # 几何数据 + if stp_file.geometry_data: + geo_data_bytes = await storage_manager.download_file( + 'geometry_data', + stp_file.geometry_data.object_key + ) + result['geometry_data'] = json.loads(geo_data_bytes.decode('utf-8')) + + # 模具型腔数据 + if stp_file.mold_cavity_data: + cavity_data_bytes = await storage_manager.download_file( + 'mold_cavities', + stp_file.mold_cavity_data.detailed_object_key + ) + result['mold_cavity_data'] = json.loads(cavity_data_bytes.decode('utf-8')) + + # HTML文件 + if stp_file.html_file: + html_bytes = await storage_manager.download_file( + 'html_files', + stp_file.html_file.object_key + ) + result['html_content'] = html_bytes.decode('utf-8') + except Exception as e: + logger.error(f"从MinIO获取数据失败: {e}") + + # 3. 从PostgreSQL获取特征和建议 + features = await session.execute( + select(FeatureDetection).where(FeatureDetection.stp_file_id == stp_file_id) + ) + result['features'] = [ + { + 'feature_type': f.feature_type, + 'confidence': f.confidence, + 'location': f.location, + 'dimensions': f.dimensions, + 'parameters': f.parameters + } + for f in features.scalars().all() + ] + + recommendations = await session.execute( + select(DesignRecommendation).where(DesignRecommendation.stp_file_id == stp_file_id) + ) + result['recommendations'] = [ + { + 'rec_type': r.rec_type, + 'priority': r.priority, + 'description': r.description, + 'reason': r.reason, + 'parameters': r.parameters + } + for r in recommendations.scalars().all() + ] + + return result + + async def delete_stp_file_cascade(self, session: AsyncSession, + stp_file_id: int): + """级联删除STP文件及其所有关联数据""" + + stp_file = await session.get(STPFile, stp_file_id) + if not stp_file: + raise ValueError(f"STP文件不存在: {stp_file_id}") + + # 1. 删除MinIO中的文件 + try: + if stp_file.object_key: + await storage_manager.delete_file('stp_files', stp_file.object_key) + except Exception as e: + logger.error(f"删除MinIO文件失败: {e}") + + try: + if stp_file.geometry_data: + await storage_manager.delete_file('geometry_data', stp_file.geometry_data.object_key) + except Exception as e: + logger.error(f"删除几何数据失败: {e}") + + try: + if stp_file.mold_cavity_data: + await storage_manager.delete_file('mold_cavities', stp_file.mold_cavity_data.detailed_object_key) + except Exception as e: + logger.error(f"删除型腔数据失败: {e}") + + try: + if stp_file.html_file: + await storage_manager.delete_file('html_files', stp_file.html_file.object_key) + except Exception as e: + logger.error(f"删除HTML文件失败: {e}") + + # 2. 级联删除PostgreSQL记录(通过外键自动处理) + await session.delete(stp_file) + await session.commit() + + logger.info(f"STP文件及其关联数据已删除: {stp_file_id}") + + +# 全局存储集成服务实例 +storage_integration = StorageIntegrationService() diff --git a/src/services/storage_integration_rustfs.py b/src/services/storage_integration_rustfs.py new file mode 100644 index 0000000..e327735 --- /dev/null +++ b/src/services/storage_integration_rustfs.py @@ -0,0 +1,498 @@ +# services/storage_integration_rustfs.py +"""存储集成服务 - 协调 PostgreSQL 和 RustFS""" +from sqlalchemy.ext.asyncio import AsyncSession +from sqlalchemy import select, update +from pathlib import Path +from typing import Optional, Dict, Any +import json +from datetime import datetime + +from models.database import ( + STPFile, GeometryData, MoldCavityData, + HTMLFile, ProcessingTask, User, + FeatureDetection, DesignRecommendation, + UserActivity, SystemLog +) +from storage.rustfs_storage import rustfs_manager +from utils.logger import get_logger + +logger = get_logger(__name__) + + +class StorageIntegrationService: + """存储集成服务 - PostgreSQL + RustFS""" + + async def save_stp_file(self, session: AsyncSession, + file_path: Path, + original_filename: str, + user_id: Optional[int] = None) -> STPFile: + """保存STP文件到PostgreSQL元数据 + RustFS对象存储""" + + # 1. 上传到RustFS + upload_result = await rustfs_manager.upload_file( + file_type='stp_files', + file_path=file_path, + original_filename=original_filename, + metadata={ + 'original_filename': original_filename, + 'user_id': str(user_id) if user_id else 'anonymous' + } + ) + + file_hash = upload_result['file_hash'] + + # 2. 检查是否已存在相同文件 + existing_file = await session.execute( + select(STPFile).where(STPFile.file_hash == file_hash) + ) + existing_file = existing_file.scalar_one_or_none() + + if existing_file: + logger.info(f"文件已存在,返回现有记录: {existing_file.id}") + return existing_file + + # 3. 创建新PostgreSQL记录 + stp_file = STPFile( + user_id=user_id, + object_key=upload_result['object_key'], + storage_bucket=upload_result['bucket'], + original_filename=original_filename, + file_size=upload_result['file_size'], + file_hash=file_hash, + status="uploaded", + file_path=str(file_path) # 保留本地路径以兼容 + ) + + session.add(stp_file) + await session.commit() + await session.refresh(stp_file) + + logger.info(f"STP文件保存成功 RustFS: {stp_file.id}") + return stp_file + + async def create_processing_task(self, session: AsyncSession, + task_id: str, + stp_file_id: int, + task_type: str = "stp_parsing") -> ProcessingTask: + """创建处理任务记录""" + try: + task = ProcessingTask( + task_id=task_id, + stp_file_id=stp_file_id, + task_type=task_type, + status="pending", + started_time=datetime.now() + ) + + session.add(task) + await session.commit() + await session.refresh(task) + + logger.info(f"处理任务创建成功: {task_id}") + return task + + except Exception as e: + await session.rollback() + logger.error(f"创建处理任务失败: {e}") + raise + + async def update_task_status( + self, + session: AsyncSession, + task_id: str, + status: str, + progress: Optional[int] = None, + current_step: Optional[str] = None, + error_message: Optional[str] = None + ): + """更新任务状态""" + try: + update_data = { + "status": status, + "completed_time": datetime.now() if status in ["completed", "failed"] else None, + "error_message": error_message + } + + if progress is not None: + update_data["progress"] = progress + if current_step is not None: + update_data["current_step"] = current_step + + await session.execute( + update(ProcessingTask) + .where(ProcessingTask.task_id == task_id) + .values(**update_data) + ) + await session.commit() + + logger.info(f"任务状态更新: {task_id} -> {status}") + + except Exception as e: + await session.rollback() + logger.error(f"更新任务状态失败: {e}") + raise + + async def update_stp_file_status(self, session: AsyncSession, stp_file_id: int, status: str): + """更新STP文件状态""" + try: + await session.execute( + update(STPFile) + .where(STPFile.id == stp_file_id) + .values( + status=status, + processed_time=datetime.now() if status in ["completed", "failed"] else None + ) + ) + await session.commit() + + logger.info(f"STP文件状态更新: ID {stp_file_id} -> {status}") + + except Exception as e: + await session.rollback() + logger.error(f"更新STP文件状态失败: {e}") + raise + + async def save_geometry_data(self, session: AsyncSession, + stp_file_id: int, + geometry_json: Dict[str, Any], + analysis_method: str = "pythonocc") -> GeometryData: + """保存几何数据到PostgreSQL元数据 + RustFS对象存储""" + + # 1. 获取文件哈希 + stp_file = await session.get(STPFile, stp_file_id) + file_hash = stp_file.file_hash + + # 2. 上传到RustFS + upload_result = await rustfs_manager.upload_json_data( + file_type='geometry_data', + json_data=geometry_json, + file_hash=file_hash + ) + + # 3. 提取几何数据 + if 'geometry_data' in geometry_json: + geo_data = geometry_json['geometry_data'] + else: + geo_data = geometry_json + + # 4. 创建PostgreSQL记录 + geometry_data = GeometryData( + stp_file_id=stp_file_id, + object_key=upload_result['object_key'], + storage_bucket=upload_result['bucket'], + analysis_method=analysis_method, + + # 提取摘要字段 + volume=geo_data.get('volume'), + surface_area=geo_data.get('surface_area'), + bounding_box_min=geo_data.get('bounding_box', {}).get('min'), + bounding_box_max=geo_data.get('bounding_box', {}).get('max'), + center_of_mass=geo_data.get('center_of_mass'), + topology_faces=geo_data.get('topology', {}).get('faces'), + topology_edges=geo_data.get('topology', {}).get('edges'), + topology_vertices=geo_data.get('topology', {}).get('vertices') + ) + + session.add(geometry_data) + await session.commit() + await session.refresh(geometry_data) + + logger.info(f"几何数据保存成功 RustFS: {geometry_data.id}") + return geometry_data + + async def save_mold_cavity_data(self, session: AsyncSession, + stp_file_id: int, + cavity_json: Dict[str, Any]) -> MoldCavityData: + """保存模具型腔数据到PostgreSQL元数据 + RustFS对象存储""" + + # 1. 获取文件哈希 + stp_file = await session.get(STPFile, stp_file_id) + file_hash = stp_file.file_hash + + # 2. 上传到RustFS + upload_result = await rustfs_manager.upload_json_data( + file_type='mold_cavities', + json_data=cavity_json, + file_hash=file_hash + ) + + # 3. 提取关键信息 + metadata = cavity_json.get('metadata', {}) + product_analysis = cavity_json.get('product_analysis', {}) + manufacturing_info = cavity_json.get('manufacturing_info', {}) + mold_size = manufacturing_info.get('estimated_mold_size', {}) + key_info = cavity_json.get('mold_cavities', {}).get('cavity_key_info', {}) + + # 4. 创建PostgreSQL记录 + mold_cavity = MoldCavityData( + stp_file_id=stp_file_id, + detailed_object_key=upload_result['object_key'], + storage_bucket=upload_result['bucket'], + + # 模具参数 + mold_material=manufacturing_info.get('recommended_material', 'Aluminum Alloy 7075'), + shrinkage_rate=metadata.get('shrinkage_rate', 0.005), + draft_angle=metadata.get('draft_angle', 2.0), + + # 提取的摘要字段 + cavity_key_info=key_info, + mold_size_length=mold_size.get('length'), + mold_size_width=mold_size.get('width'), + mold_size_height=mold_size.get('height'), + estimated_clamping_force=manufacturing_info.get('estimated_clamping_force'), + product_volume=product_analysis.get('volume'), + + # 从key_info中提取(如果存在) + product_weight=key_info.get('geometric_characteristics', {}).get('product_weight'), + wall_thickness_range=key_info.get('geometric_characteristics', {}).get('wall_thickness_range'), + complexity_score=key_info.get('geometric_characteristics', {}).get('complexity_score'), + + # 质量评估 + weld_line_risk=key_info.get('quality_considerations', {}).get('potential_weld_lines'), + sink_mark_risk=key_info.get('quality_considerations', {}).get('sink_mark_areas'), + warpage_risk=key_info.get('quality_considerations', {}).get('warpage_risk') + ) + + session.add(mold_cavity) + await session.commit() + await session.refresh(mold_cavity) + + logger.info(f"模具型腔数据保存成功 RustFS: {mold_cavity.id}") + return mold_cavity + + async def save_html_file(self, session: AsyncSession, + stp_file_id: int, + filename: str, + file_path: str, + html_content: Optional[str] = None, + visualization_type: str = "3d_viewer") -> HTMLFile: + """保存HTML文件到PostgreSQL元数据 + RustFS对象存储""" + + # 1. 获取文件哈希 + stp_file = await session.get(STPFile, stp_file_id) + file_hash = stp_file.file_hash + + # 2. 读取HTML内容(如果未提供) + if html_content is None: + try: + with open(file_path, 'r', encoding='utf-8') as f: + html_content = f.read() + except Exception as e: + logger.error(f"读取HTML文件失败: {e}") + html_content = "" + + # 3. 上传到RustFS + html_json = {'content': html_content, 'filename': filename} + upload_result = await rustfs_manager.upload_json_data( + file_type='html_files', + json_data=html_json, + file_hash=file_hash + ) + + # 4. 创建PostgreSQL记录 + html_file = HTMLFile( + stp_file_id=stp_file_id, + object_key=upload_result['object_key'], + storage_bucket=upload_result['bucket'], + filename=filename, + file_path=file_path, # 保留本地路径 + html_content=html_content, # 保留内容以兼容 + visualization_type=visualization_type + ) + + session.add(html_file) + await session.commit() + await session.refresh(html_file) + + logger.info(f"HTML文件保存成功 RustFS: {html_file.id}") + return html_file + + async def save_features_and_recommendations( + self, session: AsyncSession, + stp_file_id: int, + features: list, + recommendations: list + ): + """保存特征检测结果和设计建议""" + + # 1. 保存特征 + for feature in features: + feature_record = FeatureDetection( + stp_file_id=stp_file_id, + feature_type=feature.get('feature_type'), + confidence=feature.get('confidence'), + location=feature.get('location'), + dimensions=feature.get('dimensions'), + parameters=feature.get('parameters') + ) + session.add(feature_record) + + # 2. 保存建议 + for rec in recommendations: + rec_record = DesignRecommendation( + stp_file_id=stp_file_id, + rec_type=rec.get('rec_type'), + priority=rec.get('priority'), + description=rec.get('description'), + reason=rec.get('reason'), + parameters=rec.get('parameters') + ) + session.add(rec_record) + + await session.commit() + logger.info(f"保存了 {len(features)} 个特征和 {len(recommendations)} 个建议") + + async def log_user_activity(self, session: AsyncSession, + user_id: int, + activity_type: str, + resource_type: Optional[str] = None, + resource_id: Optional[int] = None, + description: Optional[str] = None, + metadata: Optional[Dict] = None, + ip_address: Optional[str] = None, + user_agent: Optional[str] = None): + """记录用户活动""" + + activity = UserActivity( + user_id=user_id, + activity_type=activity_type, + resource_type=resource_type, + resource_id=resource_id, + description=description, + metadata=metadata, + ip_address=ip_address, + user_agent=user_agent + ) + + session.add(activity) + await session.commit() + logger.debug(f"用户活动记录: {activity_type} by user {user_id}") + + async def get_stp_file_with_data(self, session: AsyncSession, + stp_file_id: int) -> Dict[str, Any]: + """获取STP文件及其所有关联数据""" + + # 1. 获取STP文件记录 + stp_file = await session.get(STPFile, stp_file_id) + if not stp_file: + raise ValueError(f"STP文件不存在: {stp_file_id}") + + result = { + 'metadata': { + 'id': stp_file.id, + 'original_filename': stp_file.original_filename, + 'file_size': stp_file.file_size, + 'file_hash': stp_file.file_hash, + 'upload_time': stp_file.upload_time.isoformat() if stp_file.upload_time else None, + 'status': stp_file.status, + 'user_id': stp_file.user_id + }, + 'geometry_data': None, + 'mold_cavity_data': None, + 'html_content': None, + 'features': [], + 'recommendations': [] + } + + # 2. 从RustFS获取数据 + try: + # 几何数据 + if stp_file.geometry_data: + geo_data_bytes = await rustfs_manager.download_file( + file_type='geometry_data', + object_key=stp_file.geometry_data.object_key + ) + result['geometry_data'] = json.loads(geo_data_bytes.decode('utf-8')) + + # 模具型腔数据 + if stp_file.mold_cavity_data: + cavity_data_bytes = await rustfs_manager.download_file( + file_type='mold_cavities', + object_key=stp_file.mold_cavity_data.detailed_object_key + ) + result['mold_cavity_data'] = json.loads(cavity_data_bytes.decode('utf-8')) + + # HTML文件 + if stp_file.html_file: + html_bytes = await rustfs_manager.download_file( + file_type='html_files', + object_key=stp_file.html_file.object_key + ) + html_json = json.loads(html_bytes.decode('utf-8')) + result['html_content'] = html_json.get('content', '') + except Exception as e: + logger.error(f"从RustFS获取数据失败: {e}") + + # 3. 从PostgreSQL获取特征和建议 + features = await session.execute( + select(FeatureDetection).where(FeatureDetection.stp_file_id == stp_file_id) + ) + result['features'] = [ + { + 'feature_type': f.feature_type, + 'confidence': f.confidence, + 'location': f.location, + 'dimensions': f.dimensions, + 'parameters': f.parameters + } + for f in features.scalars().all() + ] + + recommendations = await session.execute( + select(DesignRecommendation).where(DesignRecommendation.stp_file_id == stp_file_id) + ) + result['recommendations'] = [ + { + 'rec_type': r.rec_type, + 'priority': r.priority, + 'description': r.description, + 'reason': r.reason, + 'parameters': r.parameters + } + for r in recommendations.scalars().all() + ] + + return result + + async def delete_stp_file_cascade(self, session: AsyncSession, + stp_file_id: int): + """级联删除STP文件及其所有关联数据""" + + stp_file = await session.get(STPFile, stp_file_id) + if not stp_file: + raise ValueError(f"STP文件不存在: {stp_file_id}") + + # 1. 删除RustFS中的文件 + try: + if stp_file.object_key: + await rustfs_manager.delete_file('stp_files', stp_file.object_key) + except Exception as e: + logger.error(f"删除RustFS文件失败: {e}") + + try: + if stp_file.geometry_data: + await rustfs_manager.delete_file('geometry_data', stp_file.geometry_data.object_key) + except Exception as e: + logger.error(f"删除几何数据失败: {e}") + + try: + if stp_file.mold_cavity_data: + await rustfs_manager.delete_file('mold_cavities', stp_file.mold_cavity_data.detailed_object_key) + except Exception as e: + logger.error(f"删除型腔数据失败: {e}") + + try: + if stp_file.html_file: + await rustfs_manager.delete_file('html_files', stp_file.html_file.object_key) + except Exception as e: + logger.error(f"删除HTML文件失败: {e}") + + # 2. 级联删除PostgreSQL记录(通过外键自动处理) + await session.delete(stp_file) + await session.commit() + + logger.info(f"STP文件及其关联数据已删除: {stp_file_id}") + + +# 全局存储集成服务实例 +storage_integration = StorageIntegrationService() diff --git a/src/services/storage_service.py b/src/services/storage_service.py new file mode 100644 index 0000000..f07e869 --- /dev/null +++ b/src/services/storage_service.py @@ -0,0 +1,296 @@ +# services/storage_service.py +from sqlalchemy.ext.asyncio import AsyncSession +from sqlalchemy import select, update +from datetime import datetime +import hashlib +import json +from pathlib import Path +from typing import Optional, Dict, Any + +from models.database import STPFile, GeometryData, HTMLFile, ProcessingTask +from utils.logger import get_logger + +from models.database import MoldCavityData + +logger = get_logger(__name__) + +class StorageService: + """数据存储服务""" + + def __init__(self, db_session: AsyncSession): + self.db_session = db_session + + async def save_stp_file( + self, + filename: str, + file_path: str, + file_size: int, + file_content: Optional[bytes] = None + ) -> STPFile: + """保存STP文件信息到数据库""" + try: + # 计算文件哈希 + file_hash = self._calculate_file_hash(file_path, file_content) + + # 检查是否已存在相同文件 + existing_file = await self.db_session.execute( + select(STPFile).where(STPFile.file_hash == file_hash) + ) + existing_file = existing_file.scalar_one_or_none() + + if existing_file: + logger.info(f"文件已存在,跳过保存: {filename}") + return existing_file + + # 创建新的STP文件记录 + stp_file = STPFile( + filename=filename, + original_filename=filename, + file_path=file_path, + file_size=file_size, + file_hash=file_hash, + file_content=file_content, + upload_time=datetime.now(), + status="pending", + # 必填字段提供默认值 + object_key=f"stp_files/{file_hash}", + storage_bucket="default", + object_url=None + ) + + self.db_session.add(stp_file) + await self.db_session.commit() + await self.db_session.refresh(stp_file) + + logger.info(f"STP文件保存成功: {filename} (ID: {stp_file.id})") + return stp_file + + except Exception as e: + await self.db_session.rollback() + logger.error(f"保存STP文件失败: {e}") + raise + + async def save_geometry_data( + self, + stp_file_id: int, + geometry_json: Dict[str, Any], + analysis_method: str + ) -> GeometryData: + """保存几何数据JSON到数据库""" + try: + # 提取关键几何属性用于快速查询 + volume = geometry_json.get("volume") + surface_area = geometry_json.get("surface_area") + bounding_box = geometry_json.get("bounding_box", {}) + + geometry_data = GeometryData( + stp_file_id=stp_file_id, + analysis_method=analysis_method, + volume=volume, + surface_area=surface_area, + bounding_box_min=bounding_box.get("min"), + bounding_box_max=bounding_box.get("max"), + created_time=datetime.now(), + # 必填字段提供默认值 + object_key=f"geometry_data/{stp_file_id}", + storage_bucket="default", + object_url=None + ) + + self.db_session.add(geometry_data) + await self.db_session.commit() + await self.db_session.refresh(geometry_data) + + logger.info(f"几何数据保存成功: STP文件ID {stp_file_id}") + return geometry_data + + except Exception as e: + await self.db_session.rollback() + logger.error(f"保存几何数据失败: {e}") + raise + + async def save_html_file( + self, + stp_file_id: int, + filename: str, + file_path: str, + html_content: Optional[str] = None, + visualization_type: str = "3d_viewer" + ) -> HTMLFile: + """保存HTML文件信息到数据库""" + try: + html_file = HTMLFile( + stp_file_id=stp_file_id, + filename=filename, + file_path=file_path, + html_content=html_content, + visualization_type=visualization_type, + has_interactive_elements=True, + generated_time=datetime.now(), + # 必填字段提供默认值 + object_key=f"html_files/{stp_file_id}", + storage_bucket="default", + object_url=None + ) + + self.db_session.add(html_file) + await self.db_session.commit() + await self.db_session.refresh(html_file) + + logger.info(f"HTML文件保存成功: {filename} (STP文件ID: {stp_file_id})") + return html_file + + except Exception as e: + await self.db_session.rollback() + logger.error(f"保存HTML文件失败: {e}") + raise + + async def create_processing_task( + self, + task_id: str, + stp_file_id: int, + task_type: str = "stp_parsing" + ) -> ProcessingTask: + """创建处理任务记录""" + try: + task = ProcessingTask( + task_id=task_id, + stp_file_id=stp_file_id, + task_type=task_type, + status="pending", + started_time=datetime.now() + ) + + self.db_session.add(task) + await self.db_session.commit() + await self.db_session.refresh(task) + + logger.info(f"处理任务创建成功: {task_id}") + return task + + except Exception as e: + await self.db_session.rollback() + logger.error(f"创建处理任务失败: {e}") + raise + + async def update_task_status( + self, + task_id: str, + status: str, + progress: Optional[int] = None, + current_step: Optional[str] = None, + error_message: Optional[str] = None + ): + """更新任务状态""" + try: + update_data = { + "status": status, + "completed_time": datetime.now() if status in ["completed", "failed"] else None, + "error_message": error_message + } + + if progress is not None: + update_data["progress"] = progress + if current_step is not None: + update_data["current_step"] = current_step + + await self.db_session.execute( + update(ProcessingTask) + .where(ProcessingTask.task_id == task_id) + .values(**update_data) + ) + await self.db_session.commit() + + logger.info(f"任务状态更新: {task_id} -> {status}") + + except Exception as e: + await self.db_session.rollback() + logger.error(f"更新任务状态失败: {e}") + raise + + async def update_stp_file_status(self, stp_file_id: int, status: str): + """更新STP文件状态""" + try: + await self.db_session.execute( + update(STPFile) + .where(STPFile.id == stp_file_id) + .values( + status=status, + processed_time=datetime.now() if status in ["completed", "failed"] else None + ) + ) + await self.db_session.commit() + + logger.info(f"STP文件状态更新: ID {stp_file_id} -> {status}") + + except Exception as e: + await self.db_session.rollback() + logger.error(f"更新STP文件状态失败: {e}") + raise + + async def get_stp_file_by_id(self, stp_file_id: int) -> Optional[STPFile]: + """根据ID获取STP文件""" + try: + result = await self.db_session.execute( + select(STPFile).where(STPFile.id == stp_file_id) + ) + return result.scalar_one_or_none() + except Exception as e: + logger.error(f"获取STP文件失败: {e}") + return None + + async def get_geometry_data_by_stp_file_id(self, stp_file_id: int) -> Optional[GeometryData]: + """根据STP文件ID获取几何数据""" + try: + result = await self.db_session.execute( + select(GeometryData).where(GeometryData.stp_file_id == stp_file_id) + ) + return result.scalar_one_or_none() + except Exception as e: + logger.error(f"获取几何数据失败: {e}") + return None + + def _calculate_file_hash(self, file_path: str, file_content: Optional[bytes] = None) -> str: + """计算文件哈希值""" + sha256_hash = hashlib.sha256() + + if file_content: + sha256_hash.update(file_content) + else: + # 从文件路径读取内容计算哈希 + with open(file_path, "rb") as f: + for chunk in iter(lambda: f.read(4096), b""): + sha256_hash.update(chunk) + + return sha256_hash.hexdigest() + + async def save_mold_cavity_data( + self, + stp_file_id: int, + cavity_json: Dict[str, Any], + key_info: Dict[str, Any] + ) -> MoldCavityData: + """保存模具型腔数据""" + try: + mold_data = MoldCavityData( + stp_file_id=stp_file_id, + cavity_key_info=key_info, + shrinkage_rate=cavity_json["metadata"]["shrinkage_rate"], + draft_angle=cavity_json["metadata"]["draft_angle"], + generated_time=datetime.now(), + # 必填字段提供默认值 + detailed_object_key=f"mold_cavity/{stp_file_id}", + storage_bucket="default" + ) + + self.db_session.add(mold_data) + await self.db_session.commit() + await self.db_session.refresh(mold_data) + + logger.info(f"模具型腔数据保存成功: STP文件ID {stp_file_id}") + return mold_data + + except Exception as e: + await self.db_session.rollback() + logger.error(f"保存模具型腔数据失败: {e}") + raise \ No newline at end of file diff --git a/src/storage/__init__.py b/src/storage/__init__.py new file mode 100644 index 0000000..f0177b3 --- /dev/null +++ b/src/storage/__init__.py @@ -0,0 +1,5 @@ +# storage/__init__.py +from .rustfs_storage import RustFSManager, rustfs_manager + +__all__ = ['RustFSManager', 'rustfs_manager'] + diff --git a/src/storage/init_storage.py b/src/storage/init_storage.py new file mode 100644 index 0000000..6d79c9e --- /dev/null +++ b/src/storage/init_storage.py @@ -0,0 +1,107 @@ +# storage/init_storage.py +"""初始化 RustFS 对象存储""" +import asyncio +import sys +from pathlib import Path + +# 添加项目根目录和 src 目录到 Python 路径 +project_root = Path(__file__).parent.parent.parent +src_root = Path(__file__).parent.parent +sys.path.insert(0, str(project_root)) +sys.path.insert(0, str(src_root)) + +from storage.rustfs_storage import rustfs_manager +from config.settings import settings +from utils.logger import get_logger + +logger = get_logger(__name__) + + +async def init_rustfs_storage(): + """初始化 RustFS 对象存储""" + try: + # 连接到 RustFS (S3v4 API) + await rustfs_manager.connect( + endpoint=settings.RUSTFS_ENDPOINT, + access_key=settings.RUSTFS_ACCESS_KEY, + secret_key=settings.RUSTFS_SECRET_KEY, + timeout=settings.RUSTFS_TIMEOUT + ) + + logger.info("RustFS 对象存储初始化完成") + return True + + except Exception as e: + logger.error(f"RustFS 对象存储初始化失败: {e}") + return False + + +async def test_storage(): + """测试 RustFS 对象存储功能""" + try: + import json + + # 测试上传 JSON + test_data = {"test": True, "timestamp": "2024-01-01", "storage": "rustfs"} + result = await rustfs_manager.upload_json_data( + file_type='stp_files', + json_data=test_data, + file_hash='test-hash' + ) + + logger.info(f"RustFS 测试上传成功: {result['object_key']}") + + # 测试下载 + downloaded_bytes = await rustfs_manager.download_file( + file_type='stp_files', + object_key=result['object_key'] + ) + downloaded_data = json.loads(downloaded_bytes.decode('utf-8')) + logger.info(f"RustFS 测试下载成功: {downloaded_data}") + + # 测试预签名 URL + url = await rustfs_manager.generate_presigned_url( + file_type='stp_files', + object_key=result['object_key'], + expires=3600 + ) + logger.info(f"RustFS 预签名URL: {url}") + + # 清理测试文件 + await rustfs_manager.delete_file( + file_type='stp_files', + object_key=result['object_key'] + ) + logger.info("RustFS 测试文件已清理") + + return True + + except Exception as e: + logger.error(f"RustFS 存储测试失败: {e}") + return False + + +if __name__ == "__main__": + async def main(): + try: + print("=== 初始化 RustFS 对象存储 ===") + # 初始化存储 + init_result = await init_rustfs_storage() + if init_result: + print("[OK] RustFS 连接成功") + + print("\n=== 测试 RustFS 功能 ===") + # 运行测试 + test_result = await test_storage() + if test_result: + print("[OK] RustFS 测试全部通过") + else: + print("[FAIL] RustFS 测试失败") + + finally: + # 关闭连接 + await rustfs_manager.close() + print("\n=== 连接已关闭 ===") + + # 运行主函数 + asyncio.run(main()) diff --git a/src/storage/object_storage.py b/src/storage/object_storage.py new file mode 100644 index 0000000..186f74f --- /dev/null +++ b/src/storage/object_storage.py @@ -0,0 +1,361 @@ +# storage/object_storage.py +"""MinIO/S3 对象存储服务""" +from minio import Minio +from minio.error import S3Error +from pathlib import Path +from typing import Optional, BinaryIO +from io import BytesIO +from utils.logger import get_logger +import hashlib +import uuid + +logger = get_logger(__name__) + + +class ObjectStorageManager: + """对象存储管理器 - MinIO/S3兼容""" + + def __init__(self): + self.client: Optional[Minio] = None + self.is_connected = False + + # 桶名称 + self.buckets = { + 'stp_files': 'moldinsight-stp-files', # STP/STEP文件 + 'geometry_data': 'moldinsight-geometry', # 几何数据JSON + 'mold_cavities': 'moldinsight-mold-cavities', # 模具型腔数据 + 'html_files': 'moldinsight-html', # HTML报告文件 + 'user_files': 'moldinsight-user-files' # 用户上传的其他文件 + } + + async def connect(self, endpoint: str, access_key: str, secret_key: str, + secure: bool = False): + """连接到MinIO/S3服务""" + try: + self.client = Minio( + endpoint, + access_key=access_key, + secret_key=secret_key, + secure=secure + ) + + # 测试连接 + self.client.list_buckets() + + self.is_connected = True + logger.info(f"对象存储连接成功: {endpoint}") + + # 确保所有桶都存在 + await self._ensure_buckets() + + except S3Error as e: + logger.error(f"对象存储连接失败: {e}") + self.is_connected = False + raise + + async def _ensure_buckets(self): + """确保所有必要的桶都存在""" + for bucket_name in self.buckets.values(): + try: + if not self.client.bucket_exists(bucket_name): + self.client.make_bucket(bucket_name) + logger.info(f"创建存储桶: {bucket_name}") + else: + logger.debug(f"存储桶已存在: {bucket_name}") + except S3Error as e: + logger.error(f"创建存储桶失败 {bucket_name}: {e}") + + def _generate_object_key(self, original_filename: str, prefix: str = '') -> str: + """生成对象存储的唯一键名""" + # 提取文件扩展名 + ext = Path(original_filename).suffix + + # 生成唯一ID + unique_id = str(uuid.uuid4()) + + # 生成键名: prefix/unique_id + original_ext + if prefix: + return f"{prefix}/{unique_id}{ext}" + return f"{unique_id}{ext}" + + async def upload_stp_file(self, file_path: Path, + original_filename: str) -> dict: + """上传STP文件到对象存储""" + if not self.is_connected: + raise RuntimeError("对象存储未连接") + + bucket_name = self.buckets['stp_files'] + + # 计算文件哈希 + file_hash = self._calculate_file_hash(file_path) + + # 检查是否已存在 + existing_key = await self._find_file_by_hash(bucket_name, file_hash) + if existing_key: + logger.info(f"文件已存在,跳过上传: {existing_key}") + return { + 'object_key': existing_key, + 'file_hash': file_hash, + 'already_exists': True + } + + # 生成唯一键名 + object_key = self._generate_object_key( + original_filename, + prefix='stp' + ) + + # 上传文件 + try: + result = self.client.fput_object( + bucket_name, + object_key, + str(file_path), + content_type='application/octet-stream' + ) + + logger.info(f"STP文件上传成功: {object_key}") + + return { + 'object_key': object_key, + 'file_hash': file_hash, + 'file_size': result.size, + 'etag': result.etag, + 'already_exists': False + } + except S3Error as e: + logger.error(f"STP文件上传失败: {e}") + raise + + async def upload_geometry_data(self, geometry_json: dict, + file_hash: str) -> dict: + """上传几何数据JSON到对象存储""" + if not self.is_connected: + raise RuntimeError("对象存储未连接") + + bucket_name = self.buckets['geometry_data'] + + # 使用文件哈希作为键名的一部分 + object_key = f"geometry/{file_hash}.json" + + # 转换为字节 + import json + json_bytes = json.dumps(geometry_json, ensure_ascii=False).encode('utf-8') + + # 上传 + try: + result = self.client.put_object( + bucket_name, + object_key, + BytesIO(json_bytes), + length=len(json_bytes), + content_type='application/json' + ) + + logger.info(f"几何数据上传成功: {object_key}") + + return { + 'object_key': object_key, + 'file_size': result.size, + 'etag': result.etag + } + except S3Error as e: + logger.error(f"几何数据上传失败: {e}") + raise + + async def upload_mold_cavity_data(self, cavity_json: dict, + file_hash: str) -> dict: + """上传模具型腔数据到对象存储""" + if not self.is_connected: + raise RuntimeError("对象存储未连接") + + bucket_name = self.buckets['mold_cavities'] + object_key = f"mold-cavity/{file_hash}.json" + + import json + json_bytes = json.dumps(cavity_json, ensure_ascii=False).encode('utf-8') + + try: + result = self.client.put_object( + bucket_name, + object_key, + BytesIO(json_bytes), + length=len(json_bytes), + content_type='application/json' + ) + + logger.info(f"模具型腔数据上传成功: {object_key}") + + return { + 'object_key': object_key, + 'file_size': result.size, + 'etag': result.etag + } + except S3Error as e: + logger.error(f"模具型腔数据上传失败: {e}") + raise + + async def upload_html_file(self, html_content: str, + original_filename: str, + file_hash: str) -> dict: + """上传HTML文件到对象存储""" + if not self.is_connected: + raise RuntimeError("对象存储未连接") + + bucket_name = self.buckets['html_files'] + object_key = f"html/{file_hash}.html" + + html_bytes = html_content.encode('utf-8') + + try: + result = self.client.put_object( + bucket_name, + object_key, + BytesIO(html_bytes), + length=len(html_bytes), + content_type='text/html; charset=utf-8' + ) + + logger.info(f"HTML文件上传成功: {object_key}") + + return { + 'object_key': object_key, + 'file_size': result.size, + 'etag': result.etag + } + except S3Error as e: + logger.error(f"HTML文件上传失败: {e}") + raise + + async def download_file(self, bucket_type: str, + object_key: str) -> bytes: + """从对象存储下载文件""" + if not self.is_connected: + raise RuntimeError("对象存储未连接") + + bucket_name = self.buckets.get(bucket_type) + if not bucket_name: + raise ValueError(f"未知的桶类型: {bucket_type}") + + try: + response = self.client.get_object(bucket_name, object_key) + data = response.read() + response.close() + response.release_conn() + + logger.debug(f"文件下载成功: {object_key}") + return data + except S3Error as e: + logger.error(f"文件下载失败 {object_key}: {e}") + raise + + async def get_presigned_url(self, bucket_type: str, + object_key: str, + expires: int = 3600) -> str: + """生成预签名URL(临时访问链接)""" + if not self.is_connected: + raise RuntimeError("对象存储未连接") + + bucket_name = self.buckets.get(bucket_type) + if not bucket_name: + raise ValueError(f"未知的桶类型: {bucket_type}") + + try: + url = self.client.presigned_get_object( + bucket_name, + object_key, + expires=expires + ) + return url + except S3Error as e: + logger.error(f"生成预签名URL失败: {e}") + raise + + async def delete_file(self, bucket_type: str, object_key: str): + """删除对象存储中的文件""" + if not self.is_connected: + raise RuntimeError("对象存储未连接") + + bucket_name = self.buckets.get(bucket_type) + if not bucket_name: + raise ValueError(f"未知的桶类型: {bucket_type}") + + try: + self.client.remove_object(bucket_name, object_key) + logger.info(f"文件删除成功: {object_key}") + except S3Error as e: + logger.error(f"文件删除失败 {object_key}: {e}") + raise + + def _calculate_file_hash(self, file_path: Path) -> str: + """计算文件的SHA256哈希""" + sha256_hash = hashlib.sha256() + with open(file_path, 'rb') as f: + for byte_block in iter(lambda: f.read(4096), b""): + sha256_hash.update(byte_block) + return sha256_hash.hexdigest() + + async def _find_file_by_hash(self, bucket_name: str, + file_hash: str) -> Optional[str]: + """根据哈希查找已存在的文件""" + try: + objects = self.client.list_objects(bucket_name, recursive=True) + for obj in objects: + # 从对象键中提取哈希(如果有) + if file_hash in obj.object_name: + return obj.object_name + return None + except S3Error as e: + logger.warning(f"查找文件哈希失败: {e}") + return None + + async def get_file_info(self, bucket_type: str, + object_key: str) -> dict: + """获取文件信息""" + if not self.is_connected: + raise RuntimeError("对象存储未连接") + + bucket_name = self.buckets.get(bucket_type) + if not bucket_name: + raise ValueError(f"未知的桶类型: {bucket_type}") + + try: + stat = self.client.stat_object(bucket_name, object_key) + return { + 'size': stat.size, + 'etag': stat.etag, + 'content_type': stat.content_type, + 'last_modified': stat.last_modified + } + except S3Error as e: + logger.error(f"获取文件信息失败: {e}") + raise + + async def list_files(self, bucket_type: str, + prefix: str = '') -> list: + """列出存储桶中的文件""" + if not self.is_connected: + raise RuntimeError("对象存储未连接") + + bucket_name = self.buckets.get(bucket_type) + if not bucket_name: + raise ValueError(f"未知的桶类型: {bucket_type}") + + try: + objects = self.client.list_objects(bucket_name, prefix=prefix) + return [ + { + 'object_key': obj.object_name, + 'size': obj.size, + 'etag': obj.etag, + 'last_modified': obj.last_modified + } + for obj in objects + ] + except S3Error as e: + logger.error(f"列出文件失败: {e}") + raise + + +# 全局对象存储管理器实例 +storage_manager = ObjectStorageManager() diff --git a/src/storage/rustfs_storage.py b/src/storage/rustfs_storage.py new file mode 100644 index 0000000..88a4a9c --- /dev/null +++ b/src/storage/rustfs_storage.py @@ -0,0 +1,348 @@ +# storage/rustfs_storage.py +"""RustFS 对象存储服务 (S3v4 API 兼容)""" +from minio import Minio +from minio.error import S3Error +from pathlib import Path +from typing import Optional, Dict, Any +from io import BytesIO +from utils.logger import get_logger +from datetime import timedelta +import hashlib +import uuid + +logger = get_logger(__name__) + + +class RustFSManager: + """RustFS 对象存储管理器 (使用 MinIO S3 客户端)""" + + def __init__(self, project_name: str = "moldinsight"): + self.client: Optional[Minio] = None + self.is_connected = False + self.project_name = project_name + + # 使用单个项目桶,按类型组织文件 + self.bucket_name = f"{project_name}" + + # 文件类型前缀(子目录结构) + self.file_types = { + 'stp_files': 'stp-files', + 'geometry_data': 'geometry', + 'mold_cavities': 'mold-cavities', + 'html_files': 'html', + 'user_files': 'user-files' + } + + async def connect(self, endpoint: str, access_key: str, secret_key: str, timeout: int = 30): + """连接到 RustFS 服务""" + try: + # 提取端口号和主机 + from urllib.parse import urlparse + parsed = urlparse(endpoint) + host = parsed.netloc or parsed.path + + # 创建 MinIO 客户端(S3v4 兼容) + self.client = Minio( + host, + access_key=access_key, + secret_key=secret_key, + secure=False, # HTTP 而不是 HTTPS + region='us-east-1' + ) + + # 测试连接 + self.client.list_buckets() + + self.is_connected = True + logger.info(f"RustFS 连接成功: {endpoint}") + + # 确保所有桶都存在 + await self._ensure_buckets() + + except S3Error as e: + logger.error(f"RustFS 连接失败: {e}") + self.is_connected = False + raise + except Exception as e: + logger.error(f"RustFS 初始化失败: {e}") + self.is_connected = False + raise + + async def close(self): + """关闭连接""" + # MinIO 客户端不需要显式关闭 + self.is_connected = False + logger.info("RustFS 连接已关闭") + + async def _ensure_buckets(self): + """确保项目存储桶存在""" + try: + if not self.client.bucket_exists(self.bucket_name): + self.client.make_bucket(self.bucket_name) + logger.info(f"创建项目存储桶: {self.bucket_name}") + else: + logger.debug(f"项目存储桶已存在: {self.bucket_name}") + except S3Error as e: + logger.error(f"创建存储桶失败 {self.bucket_name}: {e}") + + def _generate_object_key(self, original_filename: str, file_type: str = '') -> str: + """生成对象存储的唯一键名""" + ext = Path(original_filename).suffix + unique_id = str(uuid.uuid4()) + + # 格式: {文件类型}/{唯一ID}.扩展名 (去掉项目名前缀) + if file_type and file_type in self.file_types: + type_prefix = self.file_types[file_type] + return f"{type_prefix}/{unique_id}{ext}" + + # 默认格式 + return f"misc/{unique_id}{ext}" + + def _calculate_file_hash(self, file_path: Path) -> str: + """计算文件的SHA256哈希""" + sha256_hash = hashlib.sha256() + with open(file_path, 'rb') as f: + for byte_block in iter(lambda: f.read(4096), b""): + sha256_hash.update(byte_block) + return sha256_hash.hexdigest() + + async def upload_file(self, file_type: str, file_path: Path, + original_filename: str, + metadata: Optional[Dict] = None) -> Dict[str, Any]: + """上传文件到 RustFS""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + if file_type not in self.file_types: + raise ValueError(f"未知的文件类型: {file_type}") + + # 计算文件哈希 + file_hash = self._calculate_file_hash(file_path) + + # 生成唯一键名 + object_key = self._generate_object_key(original_filename, file_type) + + # 上传文件 + try: + result = self.client.fput_object( + self.bucket_name, + object_key, + str(file_path), + content_type='application/octet-stream', + metadata=metadata or {} + ) + + logger.info(f"文件上传成功 RustFS: {self.bucket_name}/{object_key}") + + # 获取文件大小 + file_size = file_path.stat().st_size + + return { + 'object_key': object_key, + 'bucket': self.bucket_name, + 'file_hash': file_hash, + 'file_size': file_size, + 'etag': result.etag if hasattr(result, 'etag') else None + } + + except S3Error as e: + logger.error(f"RustFS 上传失败: {e}") + raise + + async def upload_json_data(self, file_type: str, + json_data: Dict[str, Any], + file_hash: str) -> Dict[str, Any]: + """上传JSON数据到 RustFS""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + if file_type not in self.file_types: + raise ValueError(f"未知的文件类型: {file_type}") + + # 格式: {文件类型}/{文件哈希}.json (去掉项目名前缀) + type_prefix = self.file_types[file_type] + object_key = f"{type_prefix}/{file_hash}.json" + + # 转换为字节 + import json + json_bytes = json.dumps(json_data, ensure_ascii=False).encode('utf-8') + + try: + result = self.client.put_object( + self.bucket_name, + object_key, + BytesIO(json_bytes), + length=len(json_bytes), + content_type='application/json' + ) + + logger.info(f"JSON数据上传成功 RustFS: {self.bucket_name}/{object_key}") + + return { + 'object_key': object_key, + 'bucket': self.bucket_name, + 'file_size': len(json_bytes), + 'etag': result.etag if hasattr(result, 'etag') else None + } + + except S3Error as e: + logger.error(f"RustFS JSON上传失败: {e}") + raise + + async def download_file(self, file_type: str, object_key: str) -> bytes: + """从 RustFS 下载文件""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + if file_type not in self.file_types: + raise ValueError(f"未知的文件类型: {file_type}") + + try: + response = self.client.get_object(self.bucket_name, object_key) + data = response.read() + response.close() + response.release_conn() + + logger.debug(f"文件下载成功: {self.bucket_name}/{object_key}") + return data + + except S3Error as e: + logger.error(f"RustFS 下载失败: {e}") + raise + + async def get_file_info(self, file_type: str, object_key: str) -> Dict[str, Any]: + """获取文件信息""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + if file_type not in self.file_types: + raise ValueError(f"未知的文件类型: {file_type}") + + try: + stat = self.client.stat_object(self.bucket_name, object_key) + return { + 'size': stat.size, + 'etag': stat.etag, + 'content_type': stat.content_type, + 'last_modified': stat.last_modified + } + + except S3Error as e: + logger.error(f"RustFS 获取文件信息失败: {e}") + raise + + async def delete_file(self, file_type: str, object_key: str): + """删除 RustFS 中的文件""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + if file_type not in self.file_types: + raise ValueError(f"未知的文件类型: {file_type}") + + try: + self.client.remove_object(self.bucket_name, object_key) + logger.info(f"文件删除成功: {self.bucket_name}/{object_key}") + + except S3Error as e: + logger.error(f"RustFS 删除失败: {e}") + raise + + async def list_files(self, file_type: str, prefix: str = '') -> list: + """列出存储桶中的文件""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + if file_type not in self.file_types: + raise ValueError(f"未知的文件类型: {file_type}") + + # 构建完整前缀:{文件类型}/... (去掉项目名前缀) + type_prefix = self.file_types[file_type] + full_prefix = f"{type_prefix}/" + if prefix: + full_prefix += prefix + + try: + objects = self.client.list_objects(self.bucket_name, prefix=full_prefix, recursive=True) + return [ + { + 'object_key': obj.object_name, + 'size': obj.size, + 'etag': obj.etag, + 'last_modified': obj.last_modified + } + for obj in objects + ] + + except S3Error as e: + logger.error(f"RustFS 列出文件失败: {e}") + raise + + async def generate_presigned_url(self, file_type: str, + object_key: str, + expires: int = 3600, + method: str = 'GET') -> str: + """生成预签名URL(临时访问链接)""" + if not self.is_connected: + raise RuntimeError("RustFS 未连接") + + if file_type not in self.file_types: + raise ValueError(f"未知的文件类型: {file_type}") + + try: + url = self.client.presigned_get_object( + self.bucket_name, + object_key, + expires=timedelta(seconds=expires) + ) + return url + + except S3Error as e: + logger.error(f"RustFS 生成预签名URL失败: {e}") + raise + + async def file_exists(self, file_type: str, object_key: str) -> bool: + """检查文件是否存在""" + try: + await self.get_file_info(file_type, object_key) + return True + except: + return False + + async def get_storage_stats(self) -> Dict[str, Any]: + """获取存储统计信息""" + try: + buckets = self.client.list_buckets() + total_objects = 0 + total_size = 0 + namespace_stats = {} + + for bucket in buckets: + objects = self.client.list_objects(bucket.name, recursive=True) + bucket_count = 0 + bucket_size = 0 + + for obj in objects: + bucket_count += 1 + bucket_size += obj.size + + namespace_stats[bucket.name] = { + 'object_count': bucket_count, + 'total_size': bucket_size + } + + total_objects += bucket_count + total_size += bucket_size + + return { + 'total_objects': total_objects, + 'total_size': total_size, + 'namespace_stats': namespace_stats + } + + except S3Error as e: + logger.error(f"RustFS 获取统计信息失败: {e}") + raise + + +# 全局 RustFS 管理器实例 +rustfs_manager = RustFSManager() diff --git a/src/uploads/fsa30scy_tc-01-0817.stp b/src/uploads/fsa30scy_tc-01-0817.stp new file mode 100644 index 0000000..c225e09 --- /dev/null +++ b/src/uploads/fsa30scy_tc-01-0817.stp @@ -0,0 +1,12172 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION((''),'2;1'); +FILE_NAME('FSA30SCY_TC-01-0702','2024-08-17T',('fuzg1'),(''), +'CREO PARAMETRIC BY PTC INC, 2014500','CREO PARAMETRIC BY PTC INC, 2014500',''); +FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }')); +ENDSEC; +DATA; +#31=CARTESIAN_POINT('',(-6.416713281516E0,-8.000179578406E1,1.429144561350E-3)); +#32=DIRECTION('',(1.E0,0.E0,0.E0)); +#33=DIRECTION('',(0.E0,-7.528894952213E-1,-6.581469501452E-1)); +#34=AXIS2_PLACEMENT_3D('',#31,#32,#33); +#36=DIRECTION('',(0.E0,-1.815217220578E-14,-1.E0)); +#37=VECTOR('',#36,5.010390445080E1); +#38=CARTESIAN_POINT('',(-6.416713281516E0,-2.1E2,-1.398960955492E2)); +#39=LINE('',#38,#37); +#40=DIRECTION('',(-1.E0,0.E0,2.659714333131E-14)); +#41=VECTOR('',#40,7.159620520583E1); +#42=CARTESIAN_POINT('',(6.517949192431E1,-2.1E2,-1.398960955492E2)); +#43=LINE('',#42,#41); +#44=CARTESIAN_POINT('',(-6.416713281508E0,-2.237836842081E2,-1.256871505913E2)); +#45=CARTESIAN_POINT('',(-4.783739647448E0,-2.248449087110E2,-1.244731591261E2)); +#46=CARTESIAN_POINT('',(-1.731770613588E0,-2.271545221656E2,-1.217726534781E2)); +#47=CARTESIAN_POINT('',(2.291147736651E0,-2.312859663935E2,-1.166190533201E2)); +#48=CARTESIAN_POINT('',(5.259587976580E0,-2.356087996048E2,-1.107952906111E2)); +#49=CARTESIAN_POINT('',(7.084212792781E0,-2.398915572932E2,-1.045239741335E2)); +#50=CARTESIAN_POINT('',(7.500000000077E0,-2.425930748449E2,-1.002060191605E2)); +#51=CARTESIAN_POINT('',(7.500000000077E0,-2.439120468376E2,-9.8E1)); +#53=DIRECTION('',(1.E0,0.E0,0.E0)); +#54=VECTOR('',#53,7.749999999992E1); +#55=CARTESIAN_POINT('',(7.500000000076E0,-2.5E2,-8.701271383328E1)); +#56=LINE('',#55,#54); +#57=CARTESIAN_POINT('',(8.5E1,-2.298205080757E2,-1.184266248042E2)); +#58=CARTESIAN_POINT('',(8.448840494974E1,-2.298943504607E2,-1.183332096828E2)); +#59=CARTESIAN_POINT('',(8.346665365840E1,-2.299955564513E2,-1.182048560008E2)); +#60=CARTESIAN_POINT('',(8.194455821446E1,-2.300131350374E2,-1.181825286985E2)); +#61=CARTESIAN_POINT('',(8.042033919986E1,-2.298989342313E2,-1.183274557470E2)); +#62=CARTESIAN_POINT('',(7.887012825185E1,-2.296439508577E2,-1.186500133411E2)); +#63=CARTESIAN_POINT('',(7.730476089498E1,-2.292384781370E2,-1.191600793208E2)); +#64=CARTESIAN_POINT('',(7.569445561571E1,-2.286545085597E2,-1.198885531978E2)); +#65=CARTESIAN_POINT('',(7.405705376289E1,-2.278669632926E2,-1.208597047055E2)); +#66=CARTESIAN_POINT('',(7.239650241540E1,-2.268366170754E2,-1.221111578520E2)); +#67=CARTESIAN_POINT('',(7.074933663105E1,-2.255287332312E2,-1.236692422726E2)); +#68=CARTESIAN_POINT('',(6.917598923799E1,-2.239239423300E2,-1.255359751331E2)); +#69=CARTESIAN_POINT('',(6.774707772114E1,-2.220178542372E2,-1.276912909919E2)); +#70=CARTESIAN_POINT('',(6.654477862879E1,-2.198352066614E2,-1.300803054034E2)); +#71=CARTESIAN_POINT('',(6.565228576743E1,-2.174560785017E2,-1.325930898376E2)); +#72=CARTESIAN_POINT('',(6.511196588790E1,-2.149654450911E2,-1.351278845152E2)); +#73=CARTESIAN_POINT('',(6.494099876118E1,-2.124319583366E2,-1.376107339644E2)); +#74=CARTESIAN_POINT('',(6.506334190258E1,-2.108047109558E2,-1.391483269279E2)); +#75=CARTESIAN_POINT('',(6.517949192431E1,-2.1E2,-1.398960955492E2)); +#77=DIRECTION('',(0.E0,1.871942758721E-14,1.E0)); +#78=VECTOR('',#77,5.010390445080E1); +#79=CARTESIAN_POINT('',(6.517949192431E1,-2.1E2,-1.9E2)); +#80=LINE('',#79,#78); +#81=DIRECTION('',(0.E0,-1.111876954069E-14,-1.E0)); +#82=VECTOR('',#81,7.157337519581E1); +#83=CARTESIAN_POINT('',(8.5E1,-2.298205080757E2,-1.184266248042E2)); +#84=LINE('',#83,#82); +#85=DIRECTION('',(0.E0,-5.160694937511E-14,-1.E0)); +#86=VECTOR('',#85,1.029872861667E2); +#87=CARTESIAN_POINT('',(8.5E1,-2.5E2,-8.701271383328E1)); +#88=LINE('',#87,#86); +#89=CARTESIAN_POINT('',(8.5E1,-8.000179578406E1,1.429144561350E-3)); +#90=DIRECTION('',(-1.E0,0.E0,0.E0)); +#91=DIRECTION('',(0.E0,-7.845003004779E-1,-6.201284371403E-1)); +#92=AXIS2_PLACEMENT_3D('',#89,#90,#91); +#94=DIRECTION('',(0.E0,0.E0,-1.E0)); +#95=VECTOR('',#94,6.425112614904E1); +#96=CARTESIAN_POINT('',(-4.75E1,-2.5E2,-1.257488738510E2)); +#97=LINE('',#96,#95); +#98=CARTESIAN_POINT('',(-2.699999999992E1,-2.5E2,-9.8E1)); +#99=DIRECTION('',(0.E0,1.E0,0.E0)); +#100=DIRECTION('',(-5.942028985530E-1,0.E0,-8.043151840859E-1)); +#101=AXIS2_PLACEMENT_3D('',#98,#99,#100); +#103=DIRECTION('',(0.E0,0.E0,1.E0)); +#104=VECTOR('',#103,2.300000000033E1); +#105=CARTESIAN_POINT('',(-6.149999999992E1,-2.5E2,-9.8E1)); +#106=LINE('',#105,#104); +#107=DIRECTION('',(-1.E0,0.E0,4.441787079974E-10)); +#108=VECTOR('',#107,2.350000000008E1); +#109=CARTESIAN_POINT('',(-6.149999999992E1,-2.5E2,-7.499999999967E1)); +#110=LINE('',#109,#108); +#111=DIRECTION('',(0.E0,0.E0,-1.E0)); +#112=VECTOR('',#111,1.150000000108E2); +#113=CARTESIAN_POINT('',(-8.5E1,-2.5E2,-7.499999998923E1)); +#114=LINE('',#113,#112); +#115=DIRECTION('',(0.E0,0.E0,-1.E0)); +#116=VECTOR('',#115,5.779473724702E1); +#117=CARTESIAN_POINT('',(-2.25E1,-2.5E2,-1.322052627530E2)); +#118=LINE('',#117,#116); +#119=DIRECTION('',(1.213362233166E-13,-4.863149363577E-13,-1.E0)); +#120=VECTOR('',#119,1.098728616673E1); +#121=CARTESIAN_POINT('',(7.500000000076E0,-2.5E2,-8.701271383328E1)); +#122=LINE('',#121,#120); +#123=CARTESIAN_POINT('',(-2.699999999992E1,-2.5E2,-9.8E1)); +#124=DIRECTION('',(0.E0,1.E0,0.E0)); +#125=DIRECTION('',(1.E0,0.E0,-1.104327579463E-12)); +#126=AXIS2_PLACEMENT_3D('',#123,#124,#125); +#128=CARTESIAN_POINT('',(9.5E1,-2.E2,-1.9E2)); +#129=DIRECTION('',(0.E0,0.E0,1.E0)); +#130=DIRECTION('',(1.E0,0.E0,0.E0)); +#131=AXIS2_PLACEMENT_3D('',#128,#129,#130); +#133=DIRECTION('',(-1.E0,0.E0,0.E0)); +#134=VECTOR('',#133,8.641671328152E1); +#135=CARTESIAN_POINT('',(9.5E1,-1.95E2,-1.9E2)); +#136=LINE('',#135,#134); +#137=DIRECTION('',(-1.E0,0.E0,0.E0)); +#138=VECTOR('',#137,9.358328671848E1); +#139=CARTESIAN_POINT('',(8.583286718484E0,-1.8E2,-1.9E2)); +#140=LINE('',#139,#138); +#141=DIRECTION('',(0.E0,1.E0,0.E0)); +#142=VECTOR('',#141,1.9E2); +#143=CARTESIAN_POINT('',(-8.5E1,-1.8E2,-1.9E2)); +#144=LINE('',#143,#142); +#145=DIRECTION('',(1.E0,0.E0,0.E0)); +#146=VECTOR('',#145,1.8E2); +#147=CARTESIAN_POINT('',(-8.5E1,1.E1,-1.9E2)); +#148=LINE('',#147,#146); +#149=CARTESIAN_POINT('',(9.5E1,1.5E1,-1.9E2)); +#150=DIRECTION('',(0.E0,0.E0,1.E0)); +#151=DIRECTION('',(0.E0,-1.E0,0.E0)); +#152=AXIS2_PLACEMENT_3D('',#149,#150,#151); +#154=CARTESIAN_POINT('',(9.E1,2.85E2,-1.9E2)); +#155=DIRECTION('',(0.E0,0.E0,1.E0)); +#156=DIRECTION('',(1.E0,0.E0,0.E0)); +#157=AXIS2_PLACEMENT_3D('',#154,#155,#156); +#159=CARTESIAN_POINT('',(-9.E1,2.85E2,-1.9E2)); +#160=DIRECTION('',(0.E0,0.E0,1.E0)); +#161=DIRECTION('',(0.E0,1.E0,0.E0)); +#162=AXIS2_PLACEMENT_3D('',#159,#160,#161); +#164=CARTESIAN_POINT('',(-8.E1,-2.45E2,-1.9E2)); +#165=DIRECTION('',(0.E0,0.E0,1.E0)); +#166=DIRECTION('',(-1.E0,0.E0,0.E0)); +#167=AXIS2_PLACEMENT_3D('',#164,#165,#166); +#169=DIRECTION('',(1.E0,0.E0,0.E0)); +#170=VECTOR('',#169,1.599999999839E2); +#171=CARTESIAN_POINT('',(-7.999999999530E1,-2.65E2,-1.9E2)); +#172=LINE('',#171,#170); +#173=CARTESIAN_POINT('',(8.E1,-2.45E2,-1.9E2)); +#174=DIRECTION('',(0.E0,0.E0,1.E0)); +#175=DIRECTION('',(0.E0,-1.E0,0.E0)); +#176=AXIS2_PLACEMENT_3D('',#173,#174,#175); +#178=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-1.9E2)); +#179=DIRECTION('',(0.E0,0.E0,-1.E0)); +#180=DIRECTION('',(0.E0,-1.E0,0.E0)); +#181=AXIS2_PLACEMENT_3D('',#178,#179,#180); +#183=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-1.9E2)); +#184=DIRECTION('',(0.E0,0.E0,-1.E0)); +#185=DIRECTION('',(0.E0,1.E0,0.E0)); +#186=AXIS2_PLACEMENT_3D('',#183,#184,#185); +#188=DIRECTION('',(-1.E0,0.E0,0.E0)); +#189=VECTOR('',#188,1.075E2); +#190=CARTESIAN_POINT('',(8.5E1,-2.5E2,-1.9E2)); +#191=LINE('',#190,#189); +#192=CARTESIAN_POINT('',(-3.5E1,-2.5E2,-1.9E2)); +#193=DIRECTION('',(0.E0,0.E0,-1.E0)); +#194=DIRECTION('',(-1.E0,0.E0,0.E0)); +#195=AXIS2_PLACEMENT_3D('',#192,#193,#194); +#197=DIRECTION('',(-1.E0,0.E0,0.E0)); +#198=VECTOR('',#197,3.75E1); +#199=CARTESIAN_POINT('',(-4.75E1,-2.5E2,-1.9E2)); +#200=LINE('',#199,#198); +#201=DIRECTION('',(1.535020688586E-14,1.E0,0.E0)); +#202=VECTOR('',#201,3.517949192431E1); +#203=CARTESIAN_POINT('',(-8.5E1,-2.5E2,-1.9E2)); +#204=LINE('',#203,#202); +#205=CARTESIAN_POINT('',(-8.25E1,-1.975E2,-1.9E2)); +#206=DIRECTION('',(0.E0,0.E0,1.E0)); +#207=DIRECTION('',(-1.428571428571E-1,-9.897433186108E-1,0.E0)); +#208=AXIS2_PLACEMENT_3D('',#205,#206,#207); +#210=DIRECTION('',(0.E0,-1.E0,0.E0)); +#211=VECTOR('',#210,1.5E1); +#212=CARTESIAN_POINT('',(-6.416713281516E0,-1.95E2,-1.9E2)); +#213=LINE('',#212,#211); +#214=DIRECTION('',(1.E0,0.E0,0.E0)); +#215=VECTOR('',#214,7.159620520583E1); +#216=CARTESIAN_POINT('',(-6.416713281516E0,-2.1E2,-1.9E2)); +#217=LINE('',#216,#215); +#218=CARTESIAN_POINT('',(8.25E1,-2.125E2,-1.9E2)); +#219=DIRECTION('',(0.E0,0.E0,1.E0)); +#220=DIRECTION('',(-9.897433186108E-1,1.428571428571E-1,0.E0)); +#221=AXIS2_PLACEMENT_3D('',#218,#219,#220); +#223=DIRECTION('',(2.676045963909E-14,-1.E0,0.E0)); +#224=VECTOR('',#223,2.017949192431E1); +#225=CARTESIAN_POINT('',(8.5E1,-2.298205080757E2,-1.9E2)); +#226=LINE('',#225,#224); +#227=DIRECTION('',(-1.E0,-1.225711124444E-14,0.E0)); +#228=VECTOR('',#227,5.275255128608E1); +#229=CARTESIAN_POINT('',(7.025255128608E1,2.5E1,-1.9E2)); +#230=LINE('',#229,#228); +#231=CARTESIAN_POINT('',(5.E0,2.5E1,-1.9E2)); +#232=DIRECTION('',(0.E0,0.E0,-1.E0)); +#233=DIRECTION('',(-1.E0,0.E0,0.E0)); +#234=AXIS2_PLACEMENT_3D('',#231,#232,#233); +#236=DIRECTION('',(-1.E0,1.092662729970E-14,0.E0)); +#237=VECTOR('',#236,6.275255128608E1); +#238=CARTESIAN_POINT('',(-7.5E0,2.5E1,-1.9E2)); +#239=LINE('',#238,#237); +#240=CARTESIAN_POINT('',(-8.25E1,3.75E1,-1.9E2)); +#241=DIRECTION('',(0.E0,0.E0,1.E0)); +#242=DIRECTION('',(6.998542122238E-1,-7.142857142857E-1,0.E0)); +#243=AXIS2_PLACEMENT_3D('',#240,#241,#242); +#245=DIRECTION('',(0.E0,1.E0,0.E0)); +#246=VECTOR('',#245,1.076213034582E2); +#247=CARTESIAN_POINT('',(-8.5E1,5.482050807569E1,-1.9E2)); +#248=LINE('',#247,#246); +#249=DIRECTION('',(1.E0,-2.740463178536E-13,-3.435050620100E-13)); +#250=VECTOR('',#249,2.250535965856E1); +#251=CARTESIAN_POINT('',(-8.5E1,1.624418115339E2,-1.9E2)); +#252=LINE('',#251,#250); +#253=CARTESIAN_POINT('',(-6.249464034144E1,1.624418115339E2,-1.9E2)); +#254=CARTESIAN_POINT('',(-6.104301635298E1,1.612754312835E2,-1.9E2)); +#255=CARTESIAN_POINT('',(-5.776480533153E1,1.591221236817E2,-1.900000001466E2)); +#256=CARTESIAN_POINT('',(-5.148289313774E1,1.565555691166E2,-1.899999994869E2)); +#257=CARTESIAN_POINT('',(-4.400862309202E1,1.549489675185E2,-1.900000019059E2)); +#258=CARTESIAN_POINT('',(-3.584396831414E1,1.541742137106E2,-1.899999928895E2)); +#259=CARTESIAN_POINT('',(-2.998791901139E1,1.540384043179E2,-1.900000153205E2)); +#260=CARTESIAN_POINT('',(-2.695261958154E1,1.540326241061E2,-1.900000153205E2)); +#262=CARTESIAN_POINT('',(-2.695261958154E1,1.540326241061E2,-1.900000153205E2)); +#263=CARTESIAN_POINT('',(-2.308360527501E1,1.540415126521E2,-1.900000153205E2)); +#264=CARTESIAN_POINT('',(-1.578259456502E1,1.542631379931E2,-1.899999928896E2)); +#265=CARTESIAN_POINT('',(-6.113469695116E0,1.555509158729E2,-1.900000019055E2)); +#266=CARTESIAN_POINT('',(2.191311005807E0,1.581899794807E2,-1.899999994882E2)); +#267=CARTESIAN_POINT('',(9.117759696221E0,1.624728170022E2,-1.900000001417E2)); +#268=CARTESIAN_POINT('',(1.432909135028E1,1.681949904722E2,-1.899999999450E2)); +#269=CARTESIAN_POINT('',(1.790629091415E1,1.749929349075E2,-1.900000000781E2)); +#270=CARTESIAN_POINT('',(1.993739406501E1,1.820583047773E2,-1.899999997424E2)); +#271=CARTESIAN_POINT('',(2.110119214835E1,1.902888800315E2,-1.900000009521E2)); +#272=CARTESIAN_POINT('',(2.125603642447E1,1.963561349639E2,-1.899999979501E2)); +#273=CARTESIAN_POINT('',(2.123537790404E1,1.995521107079E2,-1.899999979501E2)); +#275=DIRECTION('',(1.E0,0.E0,0.E0)); +#276=VECTOR('',#275,5.947949192431E1); +#277=CARTESIAN_POINT('',(5.7E0,2.8E2,-1.9E2)); +#278=LINE('',#277,#276); +#279=CARTESIAN_POINT('',(8.25E1,2.775E2,-1.9E2)); +#280=DIRECTION('',(0.E0,0.E0,1.E0)); +#281=DIRECTION('',(-9.897433186108E-1,1.428571428571E-1,0.E0)); +#282=AXIS2_PLACEMENT_3D('',#279,#280,#281); +#284=DIRECTION('',(0.E0,-1.E0,0.E0)); +#285=VECTOR('',#284,2.053589838486E2); +#286=CARTESIAN_POINT('',(8.5E1,2.601794919243E2,-1.9E2)); +#287=LINE('',#286,#285); +#288=CARTESIAN_POINT('',(8.25E1,3.75E1,-1.9E2)); +#289=DIRECTION('',(0.E0,0.E0,1.E0)); +#290=DIRECTION('',(1.428571428571E-1,9.897433186108E-1,0.E0)); +#291=AXIS2_PLACEMENT_3D('',#288,#289,#290); +#293=DIRECTION('',(0.E0,-9.433499647572E-14,1.E0)); +#294=VECTOR('',#293,5.453256584609E1); +#295=CARTESIAN_POINT('',(1.E2,-2.E2,-1.9E2)); +#296=LINE('',#295,#294); +#297=CARTESIAN_POINT('',(1.E2,-2.E2,-1.354674341539E2)); +#298=CARTESIAN_POINT('',(1.E2,-1.994579492240E2,-1.352234543418E2)); +#299=CARTESIAN_POINT('',(9.982356204314E1,-1.983882991232E2,-1.347407841503E2)); +#300=CARTESIAN_POINT('',(9.907448762796E1,-1.969565703775E2,-1.340911562141E2)); +#301=CARTESIAN_POINT('',(9.791176823734E1,-1.958298794318E2,-1.335774589698E2)); +#302=CARTESIAN_POINT('',(9.646926541842E1,-1.951378284010E2,-1.332610400570E2)); +#303=CARTESIAN_POINT('',(9.548106810418E1,-1.95E2,-1.331978977207E2)); +#304=CARTESIAN_POINT('',(9.5E1,-1.95E2,-1.331978977207E2)); +#306=DIRECTION('',(0.E0,-7.405382594849E-14,-1.E0)); +#307=VECTOR('',#306,5.680210227930E1); +#308=CARTESIAN_POINT('',(9.5E1,-1.95E2,-1.331978977207E2)); +#309=LINE('',#308,#307); +#310=CARTESIAN_POINT('',(1.E2,-8.000179578406E1,1.429144561350E-3)); +#311=DIRECTION('',(1.E0,0.E0,0.E0)); +#312=DIRECTION('',(0.E0,-9.117261318006E-1,-4.107985644959E-1)); +#313=AXIS2_PLACEMENT_3D('',#310,#311,#312); +#315=DIRECTION('',(0.E0,-1.E0,0.E0)); +#316=VECTOR('',#315,4.499999999989E1); +#317=CARTESIAN_POINT('',(1.E2,-2.E2,-1.9E2)); +#318=LINE('',#317,#316); +#319=CARTESIAN_POINT('',(9.5E1,-8.000179578406E1,1.429144561350E-3)); +#320=DIRECTION('',(1.E0,0.E0,0.E0)); +#321=DIRECTION('',(0.E0,-9.117261318022E-1,-4.107985644924E-1)); +#322=AXIS2_PLACEMENT_3D('',#319,#320,#321); +#324=CARTESIAN_POINT('',(9.5E1,-2.449999999990E2,-7.434219562769E1)); +#325=DIRECTION('',(0.E0,4.107985645047E-1,-9.117261317967E-1)); +#326=DIRECTION('',(0.E0,9.117261317967E-1,4.107985645047E-1)); +#327=AXIS2_PLACEMENT_3D('',#324,#325,#326); +#329=CARTESIAN_POINT('',(1.E2,-2.449999999993E2,-7.434219562695E1)); +#330=CARTESIAN_POINT('',(9.999999655475E1,-2.456213001965E2,-7.330789094328E1)); +#331=CARTESIAN_POINT('',(9.994211840338E1,-2.468355159692E2,-7.123477905937E1)); +#332=CARTESIAN_POINT('',(9.970459982023E1,-2.485648165454E2,-6.812576021188E1)); +#333=CARTESIAN_POINT('',(9.945661639919E1,-2.496634200464E2,-6.604242800875E1)); +#334=CARTESIAN_POINT('',(9.931262684307E1,-2.501983387327E2,-6.500002173116E1)); +#336=DIRECTION('',(1.E0,1.611567611410E-14,-5.032037643790E-14)); +#337=VECTOR('',#336,8.641671328152E1); +#338=CARTESIAN_POINT('',(8.583286718484E0,-1.95E2,-1.331978977207E2)); +#339=LINE('',#338,#337); +#340=CARTESIAN_POINT('',(9.500000155257E1,-2.404413693404E2,-7.228820280442E1)); +#341=CARTESIAN_POINT('',(9.499998459875E1,-2.417885302932E2,-6.929831002890E1)); +#342=CARTESIAN_POINT('',(9.481025796860E1,-2.430553247828E2,-6.626269984404E1)); +#343=CARTESIAN_POINT('',(9.448436920520E1,-2.442324401611E2,-6.320413323342E1)); +#345=DIRECTION('',(1.E0,7.395159568286E-8,-1.937888800933E-7)); +#346=VECTOR('',#345,8.590108248672E1); +#347=CARTESIAN_POINT('',(8.583286718484E0,-2.442324465136E2,-6.320411658674E1)); +#348=LINE('',#347,#346); +#349=DIRECTION('',(-1.E0,-3.374849024923E-14,0.E0)); +#350=VECTOR('',#349,8.590056445466E1); +#351=CARTESIAN_POINT('',(9.448385117314E1,-2.488987944182E2,-6.E1)); +#352=LINE('',#351,#350); +#353=CARTESIAN_POINT('',(9.448445380693E1,-2.488987944182E2,-6.5E1)); +#354=DIRECTION('',(9.620210962658E-2,3.575141971206E-1,-9.289395852049E-1)); +#355=DIRECTION('',(-3.750021434428E-5,9.332695518422E-1,3.591767562049E-1)); +#356=AXIS2_PLACEMENT_3D('',#353,#354,#355); +#358=CARTESIAN_POINT('',(9.448445380692E1,-2.488987944182E2,-6.5E1)); +#359=DIRECTION('',(-2.599196278792E-1,-9.656302537944E-1,0.E0)); +#360=DIRECTION('',(9.656302537327E-1,-2.599196278626E-1,-1.130853926554E-5)); +#361=AXIS2_PLACEMENT_3D('',#358,#359,#360); +#363=CARTESIAN_POINT('',(9.448445380693E1,-2.488987944182E2,-6.5E1)); +#364=DIRECTION('',(-9.999999970353E-1,-5.915402280868E-5,4.929727165250E-5)); +#365=DIRECTION('',(4.929727156764E-5,2.916129915320E-9,9.999999987849E-1)); +#366=AXIS2_PLACEMENT_3D('',#363,#364,#365); +#368=CARTESIAN_POINT('',(8.E1,-2.45E2,-6.5E1)); +#369=DIRECTION('',(0.E0,0.E0,-1.E0)); +#370=DIRECTION('',(9.656316715674E-1,-2.599143606383E-1,0.E0)); +#371=AXIS2_PLACEMENT_3D('',#368,#369,#370); +#373=CARTESIAN_POINT('',(8.E1,-2.6E2,-6.5E1)); +#374=DIRECTION('',(-1.E0,0.E0,0.E0)); +#375=DIRECTION('',(0.E0,-1.E0,0.E0)); +#376=AXIS2_PLACEMENT_3D('',#373,#374,#375); +#378=DIRECTION('',(0.E0,-4.726802344704E-12,-1.E0)); +#379=VECTOR('',#378,1.156578043730E2); +#380=CARTESIAN_POINT('',(1.E2,-2.449999999993E2,-7.434219562695E1)); +#381=LINE('',#380,#379); +#382=DIRECTION('',(2.278693500557E-11,0.E0,1.E0)); +#383=VECTOR('',#382,1.25E2); +#384=CARTESIAN_POINT('',(7.999999998861E1,-2.65E2,-1.9E2)); +#385=LINE('',#384,#383); +#386=DIRECTION('',(0.E0,0.E0,-1.E0)); +#387=VECTOR('',#386,5.8E1); +#388=CARTESIAN_POINT('',(-5.449999999992E1,-2.65E2,-7.E0)); +#389=LINE('',#388,#387); +#390=DIRECTION('',(0.E0,0.E0,1.E0)); +#391=VECTOR('',#390,5.3E1); +#392=CARTESIAN_POINT('',(-5.949999999992E1,-2.6E2,-6.E1)); +#393=LINE('',#392,#391); +#394=CARTESIAN_POINT('',(-5.449999999992E1,-2.6E2,-7.E0)); +#395=DIRECTION('',(0.E0,0.E0,-1.E0)); +#396=DIRECTION('',(0.E0,-1.E0,0.E0)); +#397=AXIS2_PLACEMENT_3D('',#394,#395,#396); +#399=DIRECTION('',(0.E0,1.E0,0.E0)); +#400=VECTOR('',#399,4.2E1); +#401=CARTESIAN_POINT('',(-5.949999999992E1,-2.6E2,-7.E0)); +#402=LINE('',#401,#400); +#403=DIRECTION('',(0.E0,-1.E0,0.E0)); +#404=VECTOR('',#403,3.2E1); +#405=CARTESIAN_POINT('',(-4.649999999992E1,-2.18E2,-7.E0)); +#406=LINE('',#405,#404); +#407=DIRECTION('',(1.E0,0.E0,0.E0)); +#408=VECTOR('',#407,3.9E1); +#409=CARTESIAN_POINT('',(-4.649999999992E1,-2.5E2,-7.E0)); +#410=LINE('',#409,#408); +#411=DIRECTION('',(0.E0,1.E0,0.E0)); +#412=VECTOR('',#411,3.2E1); +#413=CARTESIAN_POINT('',(-7.499999999924E0,-2.5E2,-7.E0)); +#414=LINE('',#413,#412); +#415=DIRECTION('',(0.E0,-1.E0,0.E0)); +#416=VECTOR('',#415,4.2E1); +#417=CARTESIAN_POINT('',(5.500000000076E0,-2.18E2,-7.E0)); +#418=LINE('',#417,#416); +#419=CARTESIAN_POINT('',(5.000000000761E-1,-2.6E2,-7.E0)); +#420=DIRECTION('',(0.E0,0.E0,-1.E0)); +#421=DIRECTION('',(1.E0,-1.250555214938E-13,0.E0)); +#422=AXIS2_PLACEMENT_3D('',#419,#420,#421); +#424=DIRECTION('',(-1.E0,0.E0,0.E0)); +#425=VECTOR('',#424,5.5E1); +#426=CARTESIAN_POINT('',(5.000000000761E-1,-2.65E2,-7.E0)); +#427=LINE('',#426,#425); +#428=CARTESIAN_POINT('',(-5.949999999992E1,-2.05E2,-5.5E1)); +#429=DIRECTION('',(-1.E0,0.E0,0.E0)); +#430=DIRECTION('',(0.E0,0.E0,-1.E0)); +#431=AXIS2_PLACEMENT_3D('',#428,#429,#430); +#433=CARTESIAN_POINT('',(-5.949999999992E1,-2.18E2,-1.5E1)); +#434=DIRECTION('',(1.E0,0.E0,0.E0)); +#435=DIRECTION('',(0.E0,1.E0,0.E0)); +#436=AXIS2_PLACEMENT_3D('',#433,#434,#435); +#438=DIRECTION('',(0.E0,-1.E0,0.E0)); +#439=VECTOR('',#438,5.5E1); +#440=CARTESIAN_POINT('',(-5.949999999992E1,-2.05E2,-6.E1)); +#441=LINE('',#440,#439); +#442=CARTESIAN_POINT('',(-8.E1,-2.45E2,-6.E1)); +#443=DIRECTION('',(0.E0,0.E0,-1.E0)); +#444=DIRECTION('',(0.E0,-1.E0,0.E0)); +#445=AXIS2_PLACEMENT_3D('',#442,#443,#444); +#447=CARTESIAN_POINT('',(-9.5E1,-2.124911722892E2,-6.E1)); +#448=CARTESIAN_POINT('',(-9.485386149287E1,-2.124911722892E2,-6.E1)); +#449=CARTESIAN_POINT('',(-9.456312447763E1,-2.125050140603E2,-6.E1)); +#450=CARTESIAN_POINT('',(-9.412932354275E1,-2.125665939002E2,-6.E1)); +#451=CARTESIAN_POINT('',(-9.384628967168E1,-2.126344824685E2,-6.E1)); +#452=CARTESIAN_POINT('',(-9.370590477449E1,-2.126750847334E2,-6.E1)); +#454=DIRECTION('',(-1.E0,0.E0,0.E0)); +#455=VECTOR('',#454,1.3E1); +#456=CARTESIAN_POINT('',(-4.649999999992E1,-2.1E2,-5.5E1)); +#457=LINE('',#456,#455); +#458=DIRECTION('',(1.E0,0.E0,0.E0)); +#459=VECTOR('',#458,1.3E1); +#460=CARTESIAN_POINT('',(-5.949999999992E1,-2.05E2,-6.E1)); +#461=LINE('',#460,#459); +#462=DIRECTION('',(0.E0,0.E0,1.E0)); +#463=VECTOR('',#462,4.E1); +#464=CARTESIAN_POINT('',(-4.649999999992E1,-2.1E2,-5.5E1)); +#465=LINE('',#464,#463); +#466=DIRECTION('',(0.E0,0.E0,-1.E0)); +#467=VECTOR('',#466,4.E1); +#468=CARTESIAN_POINT('',(-5.949999999992E1,-2.1E2,-1.5E1)); +#469=LINE('',#468,#467); +#470=CARTESIAN_POINT('',(-4.649999999992E1,-2.05E2,-5.5E1)); +#471=DIRECTION('',(1.E0,0.E0,0.E0)); +#472=DIRECTION('',(0.E0,-1.E0,0.E0)); +#473=AXIS2_PLACEMENT_3D('',#470,#471,#472); +#475=DIRECTION('',(0.E0,1.E0,0.E0)); +#476=VECTOR('',#475,2.3E2); +#477=CARTESIAN_POINT('',(-4.649999999992E1,-2.05E2,-6.E1)); +#478=LINE('',#477,#476); +#479=CARTESIAN_POINT('',(-4.649999999992E1,2.5E1,-7.E1)); +#480=DIRECTION('',(-1.E0,0.E0,0.E0)); +#481=DIRECTION('',(0.E0,0.E0,1.E0)); +#482=AXIS2_PLACEMENT_3D('',#479,#480,#481); +#484=DIRECTION('',(0.E0,0.E0,-1.E0)); +#485=VECTOR('',#484,2.8E1); +#486=CARTESIAN_POINT('',(-4.649999999992E1,3.5E1,-7.E1)); +#487=LINE('',#486,#485); +#488=DIRECTION('',(0.E0,0.E0,1.E0)); +#489=VECTOR('',#488,9.1E1); +#490=CARTESIAN_POINT('',(-4.649999999992E1,-2.5E2,-9.8E1)); +#491=LINE('',#490,#489); +#492=CARTESIAN_POINT('',(-4.649999999992E1,-2.18E2,-1.5E1)); +#493=DIRECTION('',(-1.E0,0.E0,0.E0)); +#494=DIRECTION('',(0.E0,0.E0,1.E0)); +#495=AXIS2_PLACEMENT_3D('',#492,#493,#494); +#497=DIRECTION('',(1.E0,2.869486735322E-10,-5.696352251793E-9)); +#498=VECTOR('',#497,1.466790339402E1); +#499=CARTESIAN_POINT('',(-6.116790339394E1,3.499999999579E1,-6.999999991645E1)); +#500=LINE('',#499,#498); +#501=DIRECTION('',(-1.E0,-2.592726568368E-11,-2.011093135562E-12)); +#502=VECTOR('',#501,1.449284595800E1); +#503=CARTESIAN_POINT('',(-4.649999999992E1,2.5E1,-6.E1)); +#504=LINE('',#503,#502); +#505=CARTESIAN_POINT('',(-6.144910224280E1,3.5E1,-1.041483448332E2)); +#506=CARTESIAN_POINT('',(-6.141520951360E1,3.5E1,-1.004185102544E2)); +#507=CARTESIAN_POINT('',(-6.134876726597E1,3.499999999944E1,-9.291589367541E1)); +#508=CARTESIAN_POINT('',(-6.125435726280E1,3.500000000196E1,-8.153307142956E1)); +#509=CARTESIAN_POINT('',(-6.119577922749E1,3.499999999579E1,-7.385867179375E1)); +#510=CARTESIAN_POINT('',(-6.116790339394E1,3.499999999579E1,-6.999999991645E1)); +#512=CARTESIAN_POINT('',(-6.116790339394E1,3.499999999579E1,-6.999999991645E1)); +#513=CARTESIAN_POINT('',(-6.116152031936E1,3.499999999579E1,-6.911643206454E1)); +#514=CARTESIAN_POINT('',(-6.114654648469E1,3.476469660017E1,-6.735001532581E1)); +#515=CARTESIAN_POINT('',(-6.111846339555E1,3.372846467814E1,-6.488335724641E1)); +#516=CARTESIAN_POINT('',(-6.108674157541E1,3.208912623006E1,-6.278328768652E1)); +#517=CARTESIAN_POINT('',(-6.105351584565E1,2.997537141474E1,-6.119415088311E1)); +#518=CARTESIAN_POINT('',(-6.102114164831E1,2.754879048226E1,-6.021536648827E1)); +#519=CARTESIAN_POINT('',(-6.100170804669E1,2.584547624352E1,-6.000000000003E1)); +#520=CARTESIAN_POINT('',(-6.099284595792E1,2.499999999962E1,-6.000000000003E1)); +#522=CARTESIAN_POINT('',(-6.099284595792E1,2.499999999962E1,-6.000000000003E1)); +#523=CARTESIAN_POINT('',(-6.093280351439E1,1.927172747222E1,-6.000000000003E1)); +#524=CARTESIAN_POINT('',(-6.082247901560E1,8.408368232910E0,-6.E1)); +#525=CARTESIAN_POINT('',(-6.068701746324E1,-6.098950858621E0, +-5.999999999997E1)); +#526=CARTESIAN_POINT('',(-6.058148553132E1,-1.884305955794E1, +-6.000000000014E1)); +#527=CARTESIAN_POINT('',(-6.050040097897E1,-3.025375750275E1, +-5.999999999947E1)); +#528=CARTESIAN_POINT('',(-6.043414107926E1,-4.239841020668E1, +-6.000000000199E1)); +#529=CARTESIAN_POINT('',(-6.039637671635E1,-5.323823903802E1, +-5.999999999258E1)); +#530=CARTESIAN_POINT('',(-6.038606822672E1,-6.106144495431E1, +-6.000000001599E1)); +#531=CARTESIAN_POINT('',(-6.038606822672E1,-6.5E1,-6.000000001599E1)); +#533=CARTESIAN_POINT('',(-6.038606822672E1,-6.5E1,-6.000000001599E1)); +#534=CARTESIAN_POINT('',(-6.038606822672E1,-6.731464143936E1, +-6.000000001599E1)); +#535=CARTESIAN_POINT('',(-6.038944808440E1,-7.190652609254E1, +-5.999999999258E1)); +#536=CARTESIAN_POINT('',(-6.040403260519E1,-7.869372835668E1, +-6.000000000199E1)); +#537=CARTESIAN_POINT('',(-6.042705812843E1,-8.534559607367E1, +-5.999999999947E1)); +#538=CARTESIAN_POINT('',(-6.045709579580E1,-9.182902757449E1, +-6.000000000014E1)); +#539=CARTESIAN_POINT('',(-6.049307254696E1,-9.819090417513E1, +-5.999999999996E1)); +#540=CARTESIAN_POINT('',(-6.053431404142E1,-1.044951806098E2, +-6.000000000001E1)); +#541=CARTESIAN_POINT('',(-6.058061997842E1,-1.108292410596E2,-6.E1)); +#542=CARTESIAN_POINT('',(-6.063215964029E1,-1.172872117174E2,-6.E1)); +#543=CARTESIAN_POINT('',(-6.068950780461E1,-1.239800453519E2,-6.E1)); +#544=CARTESIAN_POINT('',(-6.075369467248E1,-1.310419618131E2,-6.E1)); +#545=CARTESIAN_POINT('',(-6.082609250491E1,-1.386201796210E2,-6.E1)); +#546=CARTESIAN_POINT('',(-6.090890395650E1,-1.469256688279E2,-6.E1)); +#547=CARTESIAN_POINT('',(-6.100498867325E1,-1.562099939631E2,-6.E1)); +#548=CARTESIAN_POINT('',(-6.111770192260E1,-1.667510988037E2,-6.E1)); +#549=CARTESIAN_POINT('',(-6.125050168794E1,-1.788200038690E2,-6.E1)); +#550=CARTESIAN_POINT('',(-6.140525017654E1,-1.925407496491E2,-6.E1)); +#551=CARTESIAN_POINT('',(-6.158414923393E1,-2.080773250151E2,-6.E1)); +#552=CARTESIAN_POINT('',(-6.172196086115E1,-2.198398556709E2,-6.E1)); +#553=CARTESIAN_POINT('',(-6.179534369283E1,-2.260561355206E2,-6.E1)); +#555=CARTESIAN_POINT('',(-6.179502873889E1,7.171941947150E1,-1.041483409422E2)); +#556=CARTESIAN_POINT('',(-6.175464047483E1,6.768911059715E1,-1.041483409422E2)); +#557=CARTESIAN_POINT('',(-6.167529979332E1,5.959541845975E1,-1.041483466490E2)); +#558=CARTESIAN_POINT('',(-6.155917607096E1,4.735560271802E1,-1.041483443144E2)); +#559=CARTESIAN_POINT('',(-6.148513261952E1,3.912956403251E1,-1.041483448332E2)); +#560=CARTESIAN_POINT('',(-6.144910224280E1,3.5E1,-1.041483448332E2)); +#562=DIRECTION('',(9.999999999457E-1,4.778996308965E-8,-1.042538724087E-5)); +#563=VECTOR('',#562,5.620757187139E0); +#564=CARTESIAN_POINT('',(-6.144910224280E1,3.5E1,-1.041483448332E2)); +#565=LINE('',#564,#563); +#566=CARTESIAN_POINT('',(-5.582834505597E1,3.500000026862E1,-1.041484034318E2)); +#567=CARTESIAN_POINT('',(-5.541662148574E1,3.500000026862E1,-1.060455620899E2)); +#568=CARTESIAN_POINT('',(-5.424320722460E1,3.499999988879E1,-1.096795375549E2)); +#569=CARTESIAN_POINT('',(-5.144095882318E1,3.499999998631E1,-1.147467285329E2)); +#570=CARTESIAN_POINT('',(-4.770073148499E1,3.500000016596E1,-1.191672476639E2)); +#571=CARTESIAN_POINT('',(-4.472161811205E1,3.499999962189E1,-1.215558394538E2)); +#572=CARTESIAN_POINT('',(-4.309414992402E1,3.499999962189E1,-1.226153382100E2)); +#574=CARTESIAN_POINT('',(-4.309414992402E1,3.499999962189E1,-1.226153382100E2)); +#575=CARTESIAN_POINT('',(-4.297436052068E1,3.499999962189E1,-1.226933214953E2)); +#576=CARTESIAN_POINT('',(-4.273229914574E1,3.500000017645E1,-1.228484993468E2)); +#577=CARTESIAN_POINT('',(-4.236626582700E1,3.499999994959E1,-1.230754884465E2)); +#578=CARTESIAN_POINT('',(-4.211999466207E1,3.5E1,-1.232233107057E2)); +#579=CARTESIAN_POINT('',(-4.199632111959E1,3.5E1,-1.232963173402E2)); +#581=CARTESIAN_POINT('',(-2.699999999992E1,3.5E1,-9.8E1)); +#582=DIRECTION('',(0.E0,1.E0,0.E0)); +#583=DIRECTION('',(-7.690421087016E-1,0.E0,-6.391981187737E-1)); +#584=AXIS2_PLACEMENT_3D('',#581,#582,#583); +#586=DIRECTION('',(-9.999999999494E-1,-9.277152888742E-7,1.001517354245E-5)); +#587=VECTOR('',#586,6.038187262974E0); +#588=CARTESIAN_POINT('',(-5.575684147623E1,7.171942507322E1,-1.041484014156E2)); +#589=LINE('',#588,#587); +#590=CARTESIAN_POINT('',(-4.887559634005E1,6.517400711162E1,-1.174199042393E2)); +#591=CARTESIAN_POINT('',(-4.829726550908E1,6.517400711162E1,-1.180591666866E2)); +#592=CARTESIAN_POINT('',(-4.709070710844E1,6.517400579075E1,-1.192793149067E2)); +#593=CARTESIAN_POINT('',(-4.512888680081E1,6.517400667270E1,-1.209475837654E2)); +#594=CARTESIAN_POINT('',(-4.373692150661E1,6.517400564171E1,-1.219365652426E2)); +#595=CARTESIAN_POINT('',(-4.301830183280E1,6.517400564171E1,-1.224012483210E2)); +#597=CARTESIAN_POINT('',(-5.582834505597E1,3.500000026862E1,-1.041484034318E2)); +#598=CARTESIAN_POINT('',(-5.582061674655E1,3.908060028881E1,-1.041484034318E2)); +#599=CARTESIAN_POINT('',(-5.577539806509E1,4.724126459577E1,-1.041483250315E2)); +#600=CARTESIAN_POINT('',(-5.580877817080E1,5.948111019535E1,-1.041483262412E2)); +#601=CARTESIAN_POINT('',(-5.576498323704E1,6.764009044628E1,-1.041484014156E2)); +#602=CARTESIAN_POINT('',(-5.575684147623E1,7.171942507322E1,-1.041484014156E2)); +#604=CARTESIAN_POINT('',(-5.575684147623E1,7.171942507322E1,-1.041484014156E2)); +#605=CARTESIAN_POINT('',(-5.592289676994E1,7.227427116460E1,-1.034174832943E2)); +#606=CARTESIAN_POINT('',(-5.619934625379E1,7.336999515762E1,-1.019497109461E2)); +#607=CARTESIAN_POINT('',(-5.644561773761E1,7.496722588456E1,-9.973653554706E1)); +#608=CARTESIAN_POINT('',(-5.649998386668E1,7.599534500678E1,-9.826325213712E1)); +#609=CARTESIAN_POINT('',(-5.649995489182E1,7.649972203408E1,-9.752838969832E1)); +#611=DIRECTION('',(1.227401768781E-6,9.999619230857E-1,8.726532946426E-3)); +#612=VECTOR('',#611,5.554976403499E1); +#613=CARTESIAN_POINT('',(-5.649995489182E1,7.649972203408E1,-9.752838969832E1)); +#614=LINE('',#613,#612); +#615=DIRECTION('',(7.913993281292E-13,0.E0,1.E0)); +#616=VECTOR('',#615,6.706796490054E0); +#617=CARTESIAN_POINT('',(-4.199632111960E1,6.517400626796E1,-1.297397892668E2)); +#618=LINE('',#617,#616); +#619=CARTESIAN_POINT('',(-4.199632111959E1,6.517400626796E1,-1.230329927767E2)); +#620=CARTESIAN_POINT('',(-4.211129736576E1,6.517400626796E1,-1.229651203069E2)); +#621=CARTESIAN_POINT('',(-4.234030041703E1,6.517400618446E1,-1.228278253786E2)); +#622=CARTESIAN_POINT('',(-4.268101849719E1,6.517400656021E1,-1.226172467972E2)); +#623=CARTESIAN_POINT('',(-4.290618461928E1,6.517400564171E1,-1.224737462077E2)); +#624=CARTESIAN_POINT('',(-4.301830183280E1,6.517400564171E1,-1.224012483210E2)); +#626=DIRECTION('',(1.E0,-1.719549285260E-14,-2.456498978943E-14)); +#627=VECTOR('',#626,5.785003306339E0); +#628=CARTESIAN_POINT('',(-4.778132442594E1,6.517400626796E1,-1.297397892668E2)); +#629=LINE('',#628,#627); +#630=DIRECTION('',(2.862558829990E-14,-8.726535498964E-3,9.999619230642E-1)); +#631=VECTOR('',#630,2.631126012207E1); +#632=CARTESIAN_POINT('',(-4.199632111960E1,1.226939752463E2,-1.711803744151E2)); +#633=LINE('',#632,#631); +#634=DIRECTION('',(0.E0,-9.999619230642E-1,-8.726535498537E-3)); +#635=VECTOR('',#634,9.746808038669E1); +#636=CARTESIAN_POINT('',(-4.199632111960E1,1.224643691008E2,-1.448701161452E2)); +#637=LINE('',#636,#635); +#638=DIRECTION('',(-2.702188176462E-14,0.E0,-1.E0)); +#639=VECTOR('',#638,1.472524879990E1); +#640=CARTESIAN_POINT('',(-4.199632111960E1,2.5E1,-1.457206748087E2)); +#641=LINE('',#640,#639); +#642=CARTESIAN_POINT('',(-4.199632111960E1,2.5E1,-1.604459236086E2)); +#643=CARTESIAN_POINT('',(-4.199632111960E1,2.5E1,-1.579586820622E2)); +#644=CARTESIAN_POINT('',(-4.199632111960E1,2.457888242752E1,-1.530117146039E2)); +#645=CARTESIAN_POINT('',(-4.199632111960E1,2.254858661036E1,-1.455057407944E2)); +#646=CARTESIAN_POINT('',(-4.199632111960E1,1.924933502565E1,-1.384180271452E2)); +#647=CARTESIAN_POINT('',(-4.199632111960E1,1.469225539412E1,-1.319460508804E2)); +#648=CARTESIAN_POINT('',(-4.199632111960E1,9.138347231802E0,-1.263420340991E2)); +#649=CARTESIAN_POINT('',(-4.199632111959E1,5.048641661128E0,-1.234410088926E2)); +#650=CARTESIAN_POINT('',(-4.199632111959E1,2.888543819998E0,-1.221699598131E2)); +#652=CARTESIAN_POINT('',(-4.199632111959E1,2.888543819998E0,-1.221699598131E2)); +#653=CARTESIAN_POINT('',(-4.199632111959E1,6.096646440116E-1, +-1.208290171836E2)); +#654=CARTESIAN_POINT('',(-4.199632111960E1,-3.762927346602E0, +-1.181930169604E2)); +#655=CARTESIAN_POINT('',(-4.199632111960E1,-9.589096853872E0, +-1.144418829470E2)); +#656=CARTESIAN_POINT('',(-4.199632111960E1,-1.326578928308E1, +-1.118209151159E2)); +#657=CARTESIAN_POINT('',(-4.199632111960E1,-1.5E1,-1.104643633161E2)); +#659=DIRECTION('',(2.596989846174E-13,0.E0,-1.E0)); +#660=VECTOR('',#659,1.283195402410E1); +#661=CARTESIAN_POINT('',(-4.199632111960E1,3.5E1,-1.104643633161E2)); +#662=LINE('',#661,#660); +#663=DIRECTION('',(0.E0,9.999619230642E-1,8.726535499276E-3)); +#664=VECTOR('',#663,3.017515524541E1); +#665=CARTESIAN_POINT('',(-4.199632111959E1,3.5E1,-1.232963173402E2)); +#666=LINE('',#665,#664); +#667=DIRECTION('',(0.E0,8.726535498604E-3,-9.999619230642E-1)); +#668=VECTOR('',#667,2.596848404780E1); +#669=CARTESIAN_POINT('',(-4.199632111960E1,1.373328999143E2,-1.297397892668E2)); +#670=LINE('',#669,#668); +#671=CARTESIAN_POINT('',(-4.199632111960E1,1.226939752464E2,-1.711803744151E2)); +#672=CARTESIAN_POINT('',(-4.782012498041E1,1.226783073997E2,-1.693850170129E2)); +#673=CARTESIAN_POINT('',(-5.745215699190E1,1.226336291846E2,-1.642654006622E2)); +#674=CARTESIAN_POINT('',(-6.812984843119E1,1.225416532043E2,-1.537259972360E2)); +#675=CARTESIAN_POINT('',(-7.540173823336E1,1.224271318134E2,-1.406031456349E2)); +#676=CARTESIAN_POINT('',(-7.773617171070E1,1.223341456306E2,-1.299479844630E2)); +#677=CARTESIAN_POINT('',(-7.789569528522E1,1.222809819051E2,-1.238560249310E2)); +#679=DIRECTION('',(-2.617595225285E-2,-8.723545360324E-3,9.996192871689E-1)); +#680=VECTOR('',#679,7.028278248809E1); +#681=CARTESIAN_POINT('',(-7.789569528521E1,1.222809819051E2,-1.238560249310E2)); +#682=LINE('',#681,#680); +#683=DIRECTION('',(1.E0,0.E0,0.E0)); +#684=VECTOR('',#683,7.235414043899E0); +#685=CARTESIAN_POINT('',(-7.973541404382E1,1.216678668640E2,-5.36E1)); +#686=LINE('',#685,#684); +#687=CARTESIAN_POINT('',(-6.045398431104E1,1.223157460388E2,-1.278396000900E2)); +#688=CARTESIAN_POINT('',(-6.043169027173E1,1.223190069597E2,-1.282132646086E2)); +#689=CARTESIAN_POINT('',(-6.037131595026E1,1.223277118151E2,-1.292107422374E2)); +#690=CARTESIAN_POINT('',(-6.001348994638E1,1.223774622027E2,-1.349115719944E2)); +#691=CARTESIAN_POINT('',(-5.962022145080E1,1.224237079003E2,-1.402108040614E2)); +#692=CARTESIAN_POINT('',(-5.924594064482E1,1.224643691008E2,-1.448701161452E2)); +#694=CARTESIAN_POINT('',(-5.924589036480E1,4.789835568808E1,-1.455208459175E2)); +#695=CARTESIAN_POINT('',(-5.877750031481E1,4.763379832567E1,-1.455231546746E2)); +#696=CARTESIAN_POINT('',(-5.783175849077E1,4.701594133117E1,-1.455285436565E2)); +#697=CARTESIAN_POINT('',(-5.640869682606E1,4.579259436715E1,-1.455392208392E2)); +#698=CARTESIAN_POINT('',(-5.498908448435E1,4.422287718810E1,-1.455529192332E2)); +#699=CARTESIAN_POINT('',(-5.360208978080E1,4.226015175283E1,-1.455700477644E2)); +#700=CARTESIAN_POINT('',(-5.228487252030E1,3.985594094127E1,-1.455910289713E2)); +#701=CARTESIAN_POINT('',(-5.108971247560E1,3.697839133792E1,-1.456161409724E2)); +#702=CARTESIAN_POINT('',(-5.006883911625E1,3.358768021477E1,-1.456457312584E2)); +#703=CARTESIAN_POINT('',(-4.928247464402E1,2.964510276850E1,-1.456801376110E2)); +#704=CARTESIAN_POINT('',(-4.896127916129E1,2.661427823107E1,-1.457065872160E2)); +#705=CARTESIAN_POINT('',(-4.886584490267E1,2.5E1,-1.457206748087E2)); +#707=DIRECTION('',(-1.E0,1.548811370913E-13,0.E0)); +#708=VECTOR('',#707,1.724961952522E1); +#709=CARTESIAN_POINT('',(-4.199632111960E1,1.224643691008E2,-1.448701161452E2)); +#710=LINE('',#709,#708); +#711=CARTESIAN_POINT('',(-6.331964059014E1,-6.5E1,0.E0)); +#712=DIRECTION('',(-1.E0,0.E0,0.E0)); +#713=DIRECTION('',(0.E0,7.400817165765E-1,-6.725169535329E-1)); +#714=AXIS2_PLACEMENT_3D('',#711,#712,#713); +#716=CARTESIAN_POINT('',(-6.048442515706E1,6.812858474245E1,-1.278065390583E2)); +#717=CARTESIAN_POINT('',(-6.036037993202E1,6.604523991728E1,-1.299316316810E2)); +#718=CARTESIAN_POINT('',(-6.009682344626E1,6.176559765957E1,-1.340812087803E2)); +#719=CARTESIAN_POINT('',(-5.967684899048E1,5.501486148564E1,-1.399943271960E2)); +#720=CARTESIAN_POINT('',(-5.938910531691E1,5.030356434306E1,-1.437168792269E2)); +#721=CARTESIAN_POINT('',(-5.924589036480E1,4.789835568808E1,-1.455208459175E2)); +#723=DIRECTION('',(-6.742764032864E-7,9.999619228262E-1,8.726562740071E-3)); +#724=VECTOR('',#723,7.456885278394E1); +#725=CARTESIAN_POINT('',(-5.924589036480E1,4.789835568808E1,-1.455208459175E2)); +#726=LINE('',#725,#724); +#727=CARTESIAN_POINT('',(-6.045398431104E1,1.223157460388E2,-1.278396000900E2)); +#728=CARTESIAN_POINT('',(-6.046403899768E1,1.042531681433E2,-1.278286930313E2)); +#729=CARTESIAN_POINT('',(-6.047451017527E1,8.619116279354E1,-1.278173155652E2)); +#730=CARTESIAN_POINT('',(-6.048442515706E1,6.812858474245E1,-1.278065390583E2)); +#732=CARTESIAN_POINT('',(-6.045398431104E1,1.223157460389E2,-1.278396000900E2)); +#733=CARTESIAN_POINT('',(-6.446935799380E1,1.222777337977E2,-1.234838286859E2)); +#734=CARTESIAN_POINT('',(-7.027864553629E1,1.221941374506E2,-1.139046361117E2)); +#735=CARTESIAN_POINT('',(-7.249999999992E1,1.220983116029E2,-1.029240815756E2)); +#736=CARTESIAN_POINT('',(-7.249999999992E1,1.220466129262E2,-9.7E1)); +#738=DIRECTION('',(-2.018026748006E-14,-1.E0,1.555357200903E-13)); +#739=VECTOR('',#738,2.887201787087E1); +#740=CARTESIAN_POINT('',(-7.249999999992E1,1.220466129261E2,-9.7E1)); +#741=LINE('',#740,#739); +#742=CARTESIAN_POINT('',(-7.249999999992E1,9.317459505526E1,-9.7E1)); +#743=CARTESIAN_POINT('',(-7.249999999992E1,9.123584866556E1,-1.001614476815E2)); +#744=CARTESIAN_POINT('',(-7.184007843673E1,8.702370923173E1,-1.065236631392E2)); +#745=CARTESIAN_POINT('',(-6.881312085167E1,7.982575020388E1,-1.158300762914E2)); +#746=CARTESIAN_POINT('',(-6.539969951512E1,7.458216861521E1,-1.216503150900E2)); +#747=CARTESIAN_POINT('',(-6.331964059015E1,7.190541391043E1,-1.244068186296E2)); +#749=CARTESIAN_POINT('',(-6.331964059015E1,7.190541391043E1,-1.244068186296E2)); +#750=CARTESIAN_POINT('',(-6.300811589162E1,7.150452372774E1,-1.248196525757E2)); +#751=CARTESIAN_POINT('',(-6.238077145933E1,7.069099834967E1,-1.256217423137E2)); +#752=CARTESIAN_POINT('',(-6.143229845614E1,6.943254292526E1,-1.267551409594E2)); +#753=CARTESIAN_POINT('',(-6.080014200422E1,6.856807927266E1,-1.274633891809E2)); +#754=CARTESIAN_POINT('',(-6.048442515706E1,6.812858474245E1,-1.278065390583E2)); +#756=CARTESIAN_POINT('',(-7.249999999992E1,-6.5E1,0.E0)); +#757=DIRECTION('',(-1.E0,0.E0,0.E0)); +#758=DIRECTION('',(0.E0,9.573672936174E-1,-2.888734413400E-1)); +#759=AXIS2_PLACEMENT_3D('',#756,#757,#758); +#761=DIRECTION('',(0.E0,-8.726535498228E-3,9.999619230642E-1)); +#762=VECTOR('',#761,4.340165260194E1); +#763=CARTESIAN_POINT('',(-7.249999999992E1,1.220466129261E2,-9.7E1)); +#764=LINE('',#763,#762); +#765=CARTESIAN_POINT('',(-7.973541387423E1,1.460845364280E2,-5.359999999099E1)); +#766=CARTESIAN_POINT('',(-8.037268056666E1,1.466687434432E2,-5.359999999099E1)); +#767=CARTESIAN_POINT('',(-8.161228467235E1,1.478696431335E2,-5.360000091627E1)); +#768=CARTESIAN_POINT('',(-8.337185355462E1,1.497726881102E2,-5.359999680658E1)); +#769=CARTESIAN_POINT('',(-8.446936696799E1,1.510996938937E2,-5.360000684048E1)); +#770=CARTESIAN_POINT('',(-8.499990594336E1,1.517790122859E2,-5.360000684048E1)); +#772=DIRECTION('',(6.452387961345E-14,1.E0,-2.313417147116E-13)); +#773=VECTOR('',#772,9.029913371822E0); +#774=CARTESIAN_POINT('',(-7.249999999992E1,1.126379534922E2,-5.36E1)); +#775=LINE('',#774,#773); +#776=DIRECTION('',(-6.945575467411E-9,-1.E0,-3.690288864913E-10)); +#777=VECTOR('',#776,2.441666956397E1); +#778=CARTESIAN_POINT('',(-7.973541387423E1,1.460845364280E2,-5.359999999099E1)); +#779=LINE('',#778,#777); +#780=CARTESIAN_POINT('',(-1.699632111960E1,1.38E2,-1.724483496347E2)); +#781=CARTESIAN_POINT('',(-1.644551516538E1,1.38E2,-1.723380233333E2)); +#782=CARTESIAN_POINT('',(-1.540758151261E1,1.378285333254E2,-1.721117665256E2)); +#783=CARTESIAN_POINT('',(-1.396863711595E1,1.370843861294E2,-1.717512688201E2)); +#784=CARTESIAN_POINT('',(-1.285899327592E1,1.359550186918E2,-1.714409992770E2)); +#785=CARTESIAN_POINT('',(-1.214654335754E1,1.345106915149E2,-1.712271730378E2)); +#786=CARTESIAN_POINT('',(-1.199632111960E1,1.335184868405E2,-1.711803744151E2)); +#787=CARTESIAN_POINT('',(-1.199632111960E1,1.33E2,-1.711803744151E2)); +#789=DIRECTION('',(0.E0,-1.E0,1.930443316098E-14)); +#790=VECTOR('',#789,1.030602475368E1); +#791=CARTESIAN_POINT('',(-1.199632111960E1,1.33E2,-1.711803744151E2)); +#792=LINE('',#791,#790); +#793=DIRECTION('',(-9.982565870483E-8,1.E0,5.312879636458E-9)); +#794=VECTOR('',#793,2.553908398942E1); +#795=CARTESIAN_POINT('',(2.390305304602E1,1.222809819051E2,-1.238560249310E2)); +#796=LINE('',#795,#794); +#797=CARTESIAN_POINT('',(2.390305049656E1,1.478200658945E2,-1.238560247953E2)); +#798=CARTESIAN_POINT('',(2.383974958419E1,1.478797836573E2,-1.262733891110E2)); +#799=CARTESIAN_POINT('',(2.335855128868E1,1.476751904838E2,-1.311996578661E2)); +#800=CARTESIAN_POINT('',(2.155197526198E1,1.464480618530E2,-1.385210975030E2)); +#801=CARTESIAN_POINT('',(1.944780356108E1,1.450776661018E2,-1.435822317286E2)); +#802=CARTESIAN_POINT('',(1.813820889572E1,1.443061931079E2,-1.460902994783E2)); +#804=CARTESIAN_POINT('',(-2.699648657210E1,1.406755739535E2,-1.734399999984E2)); +#805=CARTESIAN_POINT('',(-3.024015327260E1,1.406755608421E2,-1.734399894582E2)); +#806=CARTESIAN_POINT('',(-3.663011985375E1,1.404970542875E2,-1.728182004881E2)); +#807=CARTESIAN_POINT('',(-4.557808958724E1,1.400849959267E2,-1.702201794109E2)); +#808=CARTESIAN_POINT('',(-5.371429053341E1,1.399633240382E2,-1.661874297575E2)); +#809=CARTESIAN_POINT('',(-6.113090163990E1,1.405527016116E2,-1.606733296366E2)); +#810=CARTESIAN_POINT('',(-6.734907919112E1,1.420680316530E2,-1.540173468944E2)); +#811=CARTESIAN_POINT('',(-7.069469368870E1,1.435410729343E2,-1.488407571235E2)); +#812=CARTESIAN_POINT('',(-7.213086778258E1,1.443062021939E2,-1.460902661105E2)); +#814=DIRECTION('',(-1.252570227427E-7,-1.E0,-6.665745699792E-9)); +#815=VECTOR('',#814,2.553908470022E1); +#816=CARTESIAN_POINT('',(-7.789569208626E1,1.478200666053E2,-1.238560247607E2)); +#817=LINE('',#816,#815); +#818=DIRECTION('',(0.E0,1.E0,-1.930443316099E-14)); +#819=VECTOR('',#818,1.030602475368E1); +#820=CARTESIAN_POINT('',(-4.199632111960E1,1.226939752463E2,-1.711803744151E2)); +#821=LINE('',#820,#819); +#822=CARTESIAN_POINT('',(-4.199632111960E1,1.33E2,-1.711803744151E2)); +#823=CARTESIAN_POINT('',(-4.199632111960E1,1.335245996119E2,-1.711803744151E2)); +#824=CARTESIAN_POINT('',(-4.184155637109E1,1.345242104047E2,-1.712285729066E2)); +#825=CARTESIAN_POINT('',(-4.113168492296E1,1.359548570775E2,-1.714415130539E2)); +#826=CARTESIAN_POINT('',(-4.003278579672E1,1.370768521353E2,-1.717488541889E2)); +#827=CARTESIAN_POINT('',(-3.859768335367E1,1.378248329110E2,-1.721088450486E2)); +#828=CARTESIAN_POINT('',(-3.755271294907E1,1.38E2,-1.723369044838E2)); +#829=CARTESIAN_POINT('',(-3.699632111960E1,1.38E2,-1.724483496347E2)); +#831=CARTESIAN_POINT('',(-2.699632111960E1,1.38E2,-1.225231779111E2)); +#832=DIRECTION('',(0.E0,-1.E0,0.E0)); +#833=DIRECTION('',(-2.745983703794E-1,0.E0,-9.615590127418E-1)); +#834=AXIS2_PLACEMENT_3D('',#831,#832,#833); +#836=CARTESIAN_POINT('',(-2.699632111960E1,1.38E2,-1.225231779111E2)); +#837=DIRECTION('',(0.E0,1.E0,0.E0)); +#838=DIRECTION('',(1.963987458319E-1,0.E0,-9.805241111955E-1)); +#839=AXIS2_PLACEMENT_3D('',#836,#837,#838); +#841=DIRECTION('',(6.474888104733E-14,0.E0,1.E0)); +#842=VECTOR('',#841,1.547308990080E1); +#843=CARTESIAN_POINT('',(-4.199632111960E1,1.33E2,-1.711803744151E2)); +#844=LINE('',#843,#842); +#845=DIRECTION('',(-1.358339870562E-13,0.E0,-1.E0)); +#846=VECTOR('',#845,1.490824822861E1); +#847=CARTESIAN_POINT('',(-3.699632111960E1,1.38E2,-1.575401014061E2)); +#848=LINE('',#847,#846); +#849=CARTESIAN_POINT('',(9.408021833869E0,1.372782406607E2,-1.234764591805E2)); +#850=CARTESIAN_POINT('',(9.241945002974E0,1.373335883613E2,-1.298186774771E2)); +#851=CARTESIAN_POINT('',(5.877295866943E0,1.374295584722E2,-1.408157629401E2)); +#852=CARTESIAN_POINT('',(-1.694215409811E0,1.375051007650E2,-1.494720523006E2)); +#853=CARTESIAN_POINT('',(-6.996321119625E0,1.375355087694E2,-1.529564644746E2)); +#855=CARTESIAN_POINT('',(-6.996321119606E0,1.375355087694E2,-1.529564644746E2)); +#856=CARTESIAN_POINT('',(-7.557439739748E0,1.375387268300E2,-1.533252176942E2)); +#857=CARTESIAN_POINT('',(-8.609933248125E0,1.373583440008E2,-1.539726106702E2)); +#858=CARTESIAN_POINT('',(-9.944386704966E0,1.366788081290E2,-1.547108027254E2)); +#859=CARTESIAN_POINT('',(-1.102965628036E1,1.356399883606E2,-1.552583173482E2)); +#860=CARTESIAN_POINT('',(-1.173823920332E1,1.343256822700E2,-1.555905726981E2)); +#861=CARTESIAN_POINT('',(-1.195072715201E1,1.334515831223E2,-1.556871967568E2)); +#862=CARTESIAN_POINT('',(-1.199058065951E1,1.329994625013E2,-1.557052167791E2)); +#864=CARTESIAN_POINT('',(-1.199058065951E1,1.329994625013E2,-1.557052167791E2)); +#865=CARTESIAN_POINT('',(-1.199058065951E1,1.335038781683E2,-1.557052167791E2)); +#866=CARTESIAN_POINT('',(-1.214002773931E1,1.344745953981E2,-1.557727698537E2)); +#867=CARTESIAN_POINT('',(-1.283111998087E1,1.359131085699E2,-1.560766727203E2)); +#868=CARTESIAN_POINT('',(-1.391232177821E1,1.370406138417E2,-1.565175722169E2)); +#869=CARTESIAN_POINT('',(-1.534949738575E1,1.378124879640E2,-1.570400025551E2)); +#870=CARTESIAN_POINT('',(-1.642075995854E1,1.38E2,-1.573757348360E2)); +#871=CARTESIAN_POINT('',(-1.699632111960E1,1.38E2,-1.575401014061E2)); +#873=CARTESIAN_POINT('',(-3.699632111960E1,1.38E2,-1.575401014061E2)); +#874=CARTESIAN_POINT('',(-3.755248950252E1,1.38E2,-1.573812729519E2)); +#875=CARTESIAN_POINT('',(-3.859915760932E1,1.378265720591E2,-1.570547773539E2)); +#876=CARTESIAN_POINT('',(-4.005868392983E1,1.370606722448E2,-1.565263436086E2)); +#877=CARTESIAN_POINT('',(-4.116146558925E1,1.359172061324E2,-1.560767789468E2)); +#878=CARTESIAN_POINT('',(-4.186084722187E1,1.344579376342E2,-1.557692970565E2)); +#879=CARTESIAN_POINT('',(-4.199632111960E1,1.334964431798E2,-1.557072845143E2)); +#880=CARTESIAN_POINT('',(-4.199632111960E1,1.33E2,-1.557072845143E2)); +#882=DIRECTION('',(0.E0,1.E0,0.E0)); +#883=VECTOR('',#882,4.559514812202E0); +#884=CARTESIAN_POINT('',(-4.199632111960E1,1.33E2,-1.557072845143E2)); +#885=LINE('',#884,#883); +#886=CARTESIAN_POINT('',(-4.199632111960E1,1.375595148122E2,-1.557072845143E2)); +#887=CARTESIAN_POINT('',(-4.546414756111E1,1.375458351026E2,-1.541397450520E2)); +#888=CARTESIAN_POINT('',(-5.127772955619E1,1.375119731074E2,-1.502595447414E2)); +#889=CARTESIAN_POINT('',(-5.768507715225E1,1.374477757718E2,-1.429032587084E2)); +#890=CARTESIAN_POINT('',(-6.197983948137E1,1.373713356750E2,-1.341440912006E2)); +#891=CARTESIAN_POINT('',(-6.330104681957E1,1.373114396680E2,-1.272806886107E2)); +#892=CARTESIAN_POINT('',(-6.340066407307E1,1.372782406607E2,-1.234764591805E2)); +#894=DIRECTION('',(-1.330699059346E-4,9.999999911415E-1,-3.078530512375E-6)); +#895=VECTOR('',#894,1.121016633147E1); +#896=CARTESIAN_POINT('',(-6.340066407323E1,1.372782406607E2,-1.234764591741E2)); +#897=LINE('',#896,#895); +#898=CARTESIAN_POINT('',(-6.340215580901E1,1.484884068928E2,-1.234764936849E2)); +#899=CARTESIAN_POINT('',(-6.332629722805E1,1.485855920430E2,-1.263714154932E2)); +#900=CARTESIAN_POINT('',(-6.246965901999E1,1.478960937027E2,-1.321639271933E2)); +#901=CARTESIAN_POINT('',(-6.031508364938E1,1.459780120661E2,-1.374981287713E2)); +#902=CARTESIAN_POINT('',(-5.894111472589E1,1.449352207877E2,-1.400080645567E2)); +#904=CARTESIAN_POINT('',(-5.894111472589E1,1.449352207877E2,-1.400080645567E2)); +#905=CARTESIAN_POINT('',(-5.743205706937E1,1.438917302444E2,-1.427651322065E2)); +#906=CARTESIAN_POINT('',(-5.457529900474E1,1.424285297655E2,-1.467041573805E2)); +#907=CARTESIAN_POINT('',(-4.965283161486E1,1.413182603949E2,-1.511806677727E2)); +#908=CARTESIAN_POINT('',(-4.551104317724E1,1.409625836960E2,-1.540146694199E2)); +#909=CARTESIAN_POINT('',(-4.107025712453E1,1.410025918897E2,-1.562302057163E2)); +#910=CARTESIAN_POINT('',(-3.491449093952E1,1.413174523267E2,-1.583249596494E2)); +#911=CARTESIAN_POINT('',(-3.014892785477E1,1.415602476752E2,-1.589399965321E2)); +#912=CARTESIAN_POINT('',(-2.699627936903E1,1.415604579995E2,-1.5894E2)); +#914=CARTESIAN_POINT('',(-2.699627936903E1,1.415604579995E2,-1.5894E2)); +#915=CARTESIAN_POINT('',(-2.384371294473E1,1.415602422629E2,-1.589399932701E2)); +#916=CARTESIAN_POINT('',(-1.907900346835E1,1.413174987E2,-1.583250757778E2)); +#917=CARTESIAN_POINT('',(-1.292368323238E1,1.410026397832E2,-1.562307425516E2)); +#918=CARTESIAN_POINT('',(-8.482760834628E0,1.409625182220E2,-1.540153589608E2)); +#919=CARTESIAN_POINT('',(-4.340926466090E0,1.413180905722E2,-1.511815431232E2)); +#920=CARTESIAN_POINT('',(5.819494524103E-1,1.424281832047E2,-1.467050637635E2)); +#921=CARTESIAN_POINT('',(3.439037076696E0,1.438915617618E2,-1.427655724549E2)); +#922=CARTESIAN_POINT('',(4.948232304896E0,1.449351040041E2,-1.400083280285E2)); +#924=CARTESIAN_POINT('',(4.948232304896E0,1.449351040041E2,-1.400083280285E2)); +#925=CARTESIAN_POINT('',(6.322254438427E0,1.459774942275E2,-1.374980327002E2)); +#926=CARTESIAN_POINT('',(8.476452896290E0,1.478967402502E2,-1.321645136490E2)); +#927=CARTESIAN_POINT('',(9.333615657379E0,1.485856561657E2,-1.263741804295E2)); +#928=CARTESIAN_POINT('',(9.409513447820E0,1.484884070160E2,-1.234764979477E2)); +#930=DIRECTION('',(-1.330590365478E-4,-9.999999911417E-1,3.458221790077E-6)); +#931=VECTOR('',#930,1.121016645462E1); +#932=CARTESIAN_POINT('',(9.409513447820E0,1.484884070160E2,-1.234764979477E2)); +#933=LINE('',#932,#931); +#934=DIRECTION('',(-9.999976610138E-1,-4.133976246182E-5,-2.162465696887E-3)); +#935=VECTOR('',#934,9.078401622734E0); +#936=CARTESIAN_POINT('',(1.157856131818E1,1.365554310026E2,-4.056946047982E1)); +#937=LINE('',#936,#935); +#938=CARTESIAN_POINT('',(-2.699973104533E1,1.370471928183E2,-9.700099879006E1)); +#939=DIRECTION('',(2.508301967800E-12,9.999619230642E-1,8.726535497571E-3)); +#940=DIRECTION('',(9.999999994823E-1,-2.808049947426E-7,3.217677781140E-5)); +#941=AXIS2_PLACEMENT_3D('',#938,#939,#940); +#943=DIRECTION('',(-1.E0,0.E0,0.E0)); +#944=VECTOR('',#943,9.078903878814E0); +#945=CARTESIAN_POINT('',(1.357890387889E1,1.345549126017E2,-3.86E1)); +#946=LINE('',#945,#944); +#947=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-3.86E1)); +#948=DIRECTION('',(0.E0,0.E0,1.E0)); +#949=DIRECTION('',(5.880963505364E-1,-8.087908768562E-1,0.E0)); +#950=AXIS2_PLACEMENT_3D('',#947,#948,#949); +#952=CARTESIAN_POINT('',(9.E1,2.85E2,-3.86E1)); +#953=DIRECTION('',(0.E0,0.E0,-1.E0)); +#954=DIRECTION('',(-2.925023352418E-8,1.E0,0.E0)); +#955=AXIS2_PLACEMENT_3D('',#952,#953,#954); +#957=CARTESIAN_POINT('',(6.E1,1.4519E2,-3.86E1)); +#958=DIRECTION('',(0.E0,0.E0,1.E0)); +#959=DIRECTION('',(0.E0,1.E0,0.E0)); +#960=AXIS2_PLACEMENT_3D('',#957,#958,#959); +#962=CARTESIAN_POINT('',(6.E1,1.4519E2,-3.86E1)); +#963=DIRECTION('',(0.E0,0.E0,1.E0)); +#964=DIRECTION('',(0.E0,-1.E0,0.E0)); +#965=AXIS2_PLACEMENT_3D('',#962,#963,#964); +#967=CARTESIAN_POINT('',(2.500180929700E0,1.365550557037E2,-4.058909221191E1)); +#968=CARTESIAN_POINT('',(2.500640049058E0,1.365527601282E2,-4.037864461773E1)); +#969=CARTESIAN_POINT('',(2.568658427489E0,1.364864656818E2,-3.997156467308E1)); +#970=CARTESIAN_POINT('',(2.847428250725E0,1.362079345047E2,-3.941913588411E1)); +#971=CARTESIAN_POINT('',(3.277130331167E0,1.357776492265E2,-3.897660870357E1)); +#972=CARTESIAN_POINT('',(3.844532785512E0,1.352103000134E2,-3.867406755020E1)); +#973=CARTESIAN_POINT('',(4.275105861371E0,1.347798067404E2,-3.86E1)); +#974=CARTESIAN_POINT('',(4.500000000076E0,1.345549126017E2,-3.86E1)); +#976=DIRECTION('',(-1.034257620380E-13,-1.E0,-2.287300506610E-14)); +#977=VECTOR('',#976,4.286926761548E1); +#978=CARTESIAN_POINT('',(4.500000000076E0,1.345549126017E2,-3.86E1)); +#979=LINE('',#978,#977); +#980=CARTESIAN_POINT('',(2.500001586577E0,9.124474384559E1,-4.059854558165E1)); +#981=CARTESIAN_POINT('',(2.500616721298E0,9.130877199153E1,-4.031658486743E1)); +#982=CARTESIAN_POINT('',(2.610062359737E0,9.142377178499E1,-3.980369906564E1)); +#983=CARTESIAN_POINT('',(3.064323952437E0,9.157132903915E1,-3.913117200873E1)); +#984=CARTESIAN_POINT('',(3.739127201691E0,9.166467706470E1,-3.869811354107E1)); +#985=CARTESIAN_POINT('',(4.233277271550E0,9.168564498622E1,-3.86E1)); +#986=CARTESIAN_POINT('',(4.500000000072E0,9.168564498622E1,-3.86E1)); +#988=DIRECTION('',(1.E0,2.334132886969E-11,8.565000560632E-11)); +#989=VECTOR('',#988,7.200000000008E0); +#990=CARTESIAN_POINT('',(4.500000000072E0,9.168564498622E1,-3.86E1)); +#991=LINE('',#990,#989); +#992=DIRECTION('',(-1.E0,4.983221564858E-11,8.859541120052E-11)); +#993=VECTOR('',#992,9.200000000004E0); +#994=CARTESIAN_POINT('',(1.170000000008E1,6.888722174432E1,-9.380000000072E1)); +#995=LINE('',#994,#993); +#996=CARTESIAN_POINT('',(1.170000000008E1,-8.000179578406E1,1.429144561350E-3)); +#997=DIRECTION('',(-1.E0,0.E0,0.E0)); +#998=DIRECTION('',(0.E0,9.756441181107E-1,-2.193594192099E-1)); +#999=AXIS2_PLACEMENT_3D('',#996,#997,#998); +#1001=CARTESIAN_POINT('',(1.170000000008E1,-7.078058083514E1, +-3.807070152652E0)); +#1002=DIRECTION('',(1.E0,0.E0,0.E0)); +#1003=DIRECTION('',(0.E0,8.406127148873E-1,-5.416366527200E-1)); +#1004=AXIS2_PLACEMENT_3D('',#1001,#1002,#1003); +#1006=DIRECTION('',(-9.999999999664E-1,7.158120759143E-8,-8.201984189294E-6)); +#1007=VECTOR('',#1006,6.806883977354E0); +#1008=CARTESIAN_POINT('',(8.583286718484E0,6.184132964200E1,-1.041483448332E2)); +#1009=LINE('',#1008,#1007); +#1010=CARTESIAN_POINT('',(1.776402741359E0,6.184133012924E1,-1.041484006631E2)); +#1011=CARTESIAN_POINT('',(1.940002512139E0,6.237733955134E1,-1.034184014631E2)); +#1012=CARTESIAN_POINT('',(2.208587211095E0,6.343061216482E1,-1.019602203443E2)); +#1013=CARTESIAN_POINT('',(2.447544414835E0,6.495431191607E1,-9.978181521391E1)); +#1014=CARTESIAN_POINT('',(2.499983164392E0,6.593305346548E1,-9.833685014424E1)); +#1015=CARTESIAN_POINT('',(2.499958914005E0,6.641338366177E1,-9.761641183937E1)); +#1017=DIRECTION('',(1.E0,-2.114738956180E-12,-7.391009239880E-12)); +#1018=VECTOR('',#1017,8.329999999992E1); +#1019=CARTESIAN_POINT('',(1.170000000008E1,9.168564498639E1,-3.859999999938E1)); +#1020=LINE('',#1019,#1018); +#1021=DIRECTION('',(-9.999999481177E-1,-2.704259810779E-4,-1.750266379623E-4)); +#1022=VECTOR('',#1021,8.641671776501E1); +#1023=CARTESIAN_POINT('',(9.5E1,9.999999999999E0,-1.512190265727E2)); +#1024=LINE('',#1023,#1022); +#1025=CARTESIAN_POINT('',(8.583286718484E0,-8.000179578406E1, +1.429144561350E-3)); +#1026=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1027=DIRECTION('',(0.E0,8.060485402719E-1,-5.918494324788E-1)); +#1028=AXIS2_PLACEMENT_3D('',#1025,#1026,#1027); +#1030=CARTESIAN_POINT('',(8.583286718484E0,9.976630674315E0,-1.512341518003E2)); +#1031=CARTESIAN_POINT('',(8.583286718484E0,9.976630674315E0,-1.576059612453E2)); +#1032=CARTESIAN_POINT('',(8.583286718484E0,1.E1,-1.639764936790E2)); +#1033=CARTESIAN_POINT('',(8.583286718484E0,1.E1,-1.703483031240E2)); +#1035=CARTESIAN_POINT('',(8.583286718484E0,-2.E1,-1.703483031240E2)); +#1036=DIRECTION('',(1.E0,0.E0,0.E0)); +#1037=DIRECTION('',(0.E0,1.E0,0.E0)); +#1038=AXIS2_PLACEMENT_3D('',#1035,#1036,#1037); +#1040=CARTESIAN_POINT('',(8.583286718470E0,-8.000179578406E1, +1.429144561350E-3)); +#1041=DIRECTION('',(1.E0,0.E0,0.E0)); +#1042=DIRECTION('',(0.E0,4.689778814429E-1,-8.832099109030E-1)); +#1043=AXIS2_PLACEMENT_3D('',#1040,#1041,#1042); +#1045=CARTESIAN_POINT('',(-6.331964059014E1,9.999999999991E0, +-1.691010020063E2)); +#1046=CARTESIAN_POINT('',(-6.207135086049E1,9.999999999991E0, +-1.690174808986E2)); +#1047=CARTESIAN_POINT('',(-5.965489067566E1,1.E1,-1.685370766434E2)); +#1048=CARTESIAN_POINT('',(-5.613681744027E1,9.999999999999E0, +-1.668148426440E2)); +#1049=CARTESIAN_POINT('',(-5.313079196305E1,1.E1,-1.642120330330E2)); +#1050=CARTESIAN_POINT('',(-5.073759260607E1,1.E1,-1.607777876092E2)); +#1051=CARTESIAN_POINT('',(-4.921121845284E1,1.E1,-1.568368199394E2)); +#1052=CARTESIAN_POINT('',(-4.878513215821E1,1.E1,-1.538330823190E2)); +#1053=CARTESIAN_POINT('',(-4.876712271256E1,1.E1,-1.522394128795E2)); +#1055=DIRECTION('',(-1.E0,0.E0,-7.456368061412E-14)); +#1056=VECTOR('',#1055,5.755721939480E1); +#1057=CARTESIAN_POINT('',(8.583286718484E0,1.E1,-1.703483031240E2)); +#1058=LINE('',#1057,#1056); +#1059=DIRECTION('',(1.E0,2.935450876845E-10,-1.277827774781E-10)); +#1060=VECTOR('',#1059,5.626188414445E1); +#1061=CARTESIAN_POINT('',(-4.857432525506E1,-7.239165821842E0, +-1.431975920643E2)); +#1062=LINE('',#1061,#1060); +#1063=CARTESIAN_POINT('',(-4.897393267632E1,1.E1,-1.703483031240E2)); +#1064=CARTESIAN_POINT('',(-4.895078602071E1,1.E1,-1.683407063491E2)); +#1065=CARTESIAN_POINT('',(-4.890459085322E1,1.E1,-1.643225115299E2)); +#1066=CARTESIAN_POINT('',(-4.883563197943E1,1.E1,-1.582862150627E2)); +#1067=CARTESIAN_POINT('',(-4.878991154883E1,1.E1,-1.542560142029E2)); +#1068=CARTESIAN_POINT('',(-4.876712271256E1,1.E1,-1.522394128795E2)); +#1070=CARTESIAN_POINT('',(-4.876712470387E1,5.417504448760E0, +-1.544124797183E2)); +#1071=CARTESIAN_POINT('',(-4.879065145501E1,6.418272097743E0, +-1.560086957017E2)); +#1072=CARTESIAN_POINT('',(-4.883815237304E1,8.111978569683E0, +-1.593802239260E2)); +#1073=CARTESIAN_POINT('',(-4.890820698957E1,9.657129809739E0, +-1.647891066140E2)); +#1074=CARTESIAN_POINT('',(-4.895261342541E1,1.E1,-1.684992040537E2)); +#1075=CARTESIAN_POINT('',(-4.897393267632E1,1.E1,-1.703483031240E2)); +#1077=CARTESIAN_POINT('',(-4.876712271256E1,-6.5E1,0.E0)); +#1078=DIRECTION('',(1.E0,0.E0,0.E0)); +#1079=DIRECTION('',(0.E0,4.149258783681E-1,-9.098552167573E-1)); +#1080=AXIS2_PLACEMENT_3D('',#1077,#1078,#1079); +#1082=CARTESIAN_POINT('',(-6.331964059014E1,-6.5E1,0.E0)); +#1083=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1084=DIRECTION('',(0.E0,4.054341399496E-1,-9.141242575073E-1)); +#1085=AXIS2_PLACEMENT_3D('',#1082,#1083,#1084); +#1087=CARTESIAN_POINT('',(-6.331964059014E1,-6.5E1,0.E0)); +#1088=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1089=DIRECTION('',(0.E0,5.583341522870E-3,-9.999844130272E-1)); +#1090=AXIS2_PLACEMENT_3D('',#1087,#1088,#1089); +#1092=CARTESIAN_POINT('',(-6.331964059014E1,-6.5E1,0.E0)); +#1093=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1094=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1095=AXIS2_PLACEMENT_3D('',#1092,#1093,#1094); +#1097=CARTESIAN_POINT('',(-4.876712271256E1,-6.5E1,0.E0)); +#1098=DIRECTION('',(1.E0,0.E0,0.E0)); +#1099=DIRECTION('',(0.E0,-6.248571408615E-1,-7.807391072019E-1)); +#1100=AXIS2_PLACEMENT_3D('',#1097,#1098,#1099); +#1102=CARTESIAN_POINT('',(-4.876712271256E1,-6.5E1,0.E0)); +#1103=DIRECTION('',(1.E0,0.E0,0.E0)); +#1104=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1105=AXIS2_PLACEMENT_3D('',#1102,#1103,#1104); +#1107=CARTESIAN_POINT('',(-4.876712271256E1,-6.5E1,0.E0)); +#1108=DIRECTION('',(1.E0,0.E0,0.E0)); +#1109=DIRECTION('',(0.E0,5.583341522870E-3,-9.999844130272E-1)); +#1110=AXIS2_PLACEMENT_3D('',#1107,#1108,#1109); +#1112=CARTESIAN_POINT('',(-6.331964059014E1,9.999999999991E0, +-1.691010020063E2)); +#1113=CARTESIAN_POINT('',(-6.572884145938E1,9.999999999991E0, +-1.692621978573E2)); +#1114=CARTESIAN_POINT('',(-7.054706514069E1,1.E1,-1.695844528908E2)); +#1115=CARTESIAN_POINT('',(-7.777385164136E1,1.E1,-1.700676475192E2)); +#1116=CARTESIAN_POINT('',(-8.259134329440E1,9.999999999995E0, +-1.703896517312E2)); +#1117=CARTESIAN_POINT('',(-8.5E1,9.999999999995E0,-1.705505868161E2)); +#1119=CARTESIAN_POINT('',(-8.5E1,-1.8E2,-1.465861612271E2)); +#1120=CARTESIAN_POINT('',(-8.259193082400E1,-1.8E2,-1.463989615774E2)); +#1121=CARTESIAN_POINT('',(-7.777525173081E1,-1.8E2,-1.460238249560E2)); +#1122=CARTESIAN_POINT('',(-7.054846530357E1,-1.8E2,-1.454607790773E2)); +#1123=CARTESIAN_POINT('',(-6.572942856993E1,-1.8E2,-1.450851968057E2)); +#1124=CARTESIAN_POINT('',(-6.331964059014E1,-1.8E2,-1.448970285393E2)); +#1126=DIRECTION('',(4.676206388197E-14,2.672378885130E-13,-1.E0)); +#1127=VECTOR('',#1126,1.944941318391E1); +#1128=CARTESIAN_POINT('',(-8.5E1,9.999999999995E0,-1.705505868161E2)); +#1129=LINE('',#1128,#1127); +#1130=CARTESIAN_POINT('',(-8.5E1,-6.5E1,0.E0)); +#1131=DIRECTION('',(1.E0,0.E0,0.E0)); +#1132=DIRECTION('',(0.E0,-6.172411579263E-1,-7.867740164506E-1)); +#1133=AXIS2_PLACEMENT_3D('',#1130,#1131,#1132); +#1135=CARTESIAN_POINT('',(-8.5E1,-6.5E1,0.E0)); +#1136=DIRECTION('',(1.E0,0.E0,0.E0)); +#1137=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1138=AXIS2_PLACEMENT_3D('',#1135,#1136,#1137); +#1140=DIRECTION('',(0.E0,0.E0,1.E0)); +#1141=VECTOR('',#1140,5.75E1); +#1142=CARTESIAN_POINT('',(8.583286718484E0,-1.8E2,-1.9E2)); +#1143=LINE('',#1142,#1141); +#1144=DIRECTION('',(-1.E0,1.893860808289E-14,2.136663476018E-14)); +#1145=VECTOR('',#1144,5.852841259159E1); +#1146=CARTESIAN_POINT('',(8.583286718484E0,-1.8E2,-1.325E2)); +#1147=LINE('',#1146,#1145); +#1148=CARTESIAN_POINT('',(-4.994512587310E1,-1.8E2,-1.325E2)); +#1149=CARTESIAN_POINT('',(-5.041840094900E1,-1.8E2,-1.340133798951E2)); +#1150=CARTESIAN_POINT('',(-5.160484292524E1,-1.8E2,-1.367725644779E2)); +#1151=CARTESIAN_POINT('',(-5.399364990256E1,-1.8E2,-1.401662359611E2)); +#1152=CARTESIAN_POINT('',(-5.692787096121E1,-1.8E2,-1.427671481579E2)); +#1153=CARTESIAN_POINT('',(-6.016878126423E1,-1.8E2,-1.443871055251E2)); +#1154=CARTESIAN_POINT('',(-6.226647232707E1,-1.8E2,-1.448147919077E2)); +#1155=CARTESIAN_POINT('',(-6.331964059014E1,-1.8E2,-1.448970285393E2)); +#1157=DIRECTION('',(2.094941906729E-14,5.302821701409E-14,-1.E0)); +#1158=VECTOR('',#1157,4.341383877287E1); +#1159=CARTESIAN_POINT('',(-8.5E1,-1.8E2,-1.465861612271E2)); +#1160=LINE('',#1159,#1158); +#1161=CARTESIAN_POINT('',(8.583286718484E0,-8.000179578406E1, +1.429144561350E-3)); +#1162=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1163=DIRECTION('',(0.E0,-6.534975478278E-1,-7.569286326881E-1)); +#1164=AXIS2_PLACEMENT_3D('',#1161,#1162,#1163); +#1166=CARTESIAN_POINT('',(8.583286718484E0,-2.488987944182E2,-6.5E1)); +#1167=DIRECTION('',(1.E0,0.E0,0.E0)); +#1168=DIRECTION('',(0.E0,9.332695951335E-1,3.591766456765E-1)); +#1169=AXIS2_PLACEMENT_3D('',#1166,#1167,#1168); +#1171=CARTESIAN_POINT('',(8.583286718470E0,-8.000179578406E1, +1.429144561350E-3)); +#1172=DIRECTION('',(1.E0,0.E0,0.E0)); +#1173=DIRECTION('',(0.E0,-9.317991982900E-1,-3.629741782361E-1)); +#1174=AXIS2_PLACEMENT_3D('',#1171,#1172,#1173); +#1176=DIRECTION('',(0.E0,-1.E0,0.E0)); +#1177=VECTOR('',#1176,1.5E1); +#1178=CARTESIAN_POINT('',(8.583286718484E0,-1.8E2,-1.9E2)); +#1179=LINE('',#1178,#1177); +#1180=DIRECTION('',(0.E0,4.953600519527E-14,1.E0)); +#1181=VECTOR('',#1180,5.680210227931E1); +#1182=CARTESIAN_POINT('',(8.583286718484E0,-1.95E2,-1.9E2)); +#1183=LINE('',#1182,#1181); +#1184=CARTESIAN_POINT('',(5.500000000077E0,-2.165999092251E2,-6.E1)); +#1185=CARTESIAN_POINT('',(5.839519193223E0,-2.185374406211E2,-6.E1)); +#1186=CARTESIAN_POINT('',(6.521055817371E0,-2.224120629913E2,-6.E1)); +#1187=CARTESIAN_POINT('',(7.548638431441E0,-2.282230680479E2,-6.E1)); +#1188=CARTESIAN_POINT('',(8.237931846756E0,-2.320963178863E2,-6.E1)); +#1189=CARTESIAN_POINT('',(8.583286718479E0,-2.340328176184E2,-6.E1)); +#1191=DIRECTION('',(3.173692404455E-13,-1.E0,2.103049183675E-14)); +#1192=VECTOR('',#1191,1.486597679984E1); +#1193=CARTESIAN_POINT('',(8.583286718479E0,-2.340328176184E2,-6.E1)); +#1194=LINE('',#1193,#1192); +#1195=CARTESIAN_POINT('',(8.E1,-2.45E2,-6.E1)); +#1196=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1197=DIRECTION('',(9.656193945036E-1,-2.599599679924E-1,0.E0)); +#1198=AXIS2_PLACEMENT_3D('',#1195,#1196,#1197); +#1200=DIRECTION('',(2.130395854938E-14,1.E0,0.E0)); +#1201=VECTOR('',#1200,4.340009077489E1); +#1202=CARTESIAN_POINT('',(5.500000000076E0,-2.6E2,-6.E1)); +#1203=LINE('',#1202,#1201); +#1204=CARTESIAN_POINT('',(7.076698078222E0,-2.1E2,-8.88E1)); +#1205=CARTESIAN_POINT('',(7.133975564553E0,-2.1E2,-8.933056015541E1)); +#1206=CARTESIAN_POINT('',(7.221492184735E0,-2.098288183036E2, +-9.038508965698E1)); +#1207=CARTESIAN_POINT('',(7.263424473637E0,-2.091115504481E2, +-9.178598790960E1)); +#1208=CARTESIAN_POINT('',(7.214975802593E0,-2.079949199792E2, +-9.290530044844E1)); +#1209=CARTESIAN_POINT('',(7.079820724947E0,-2.065919870677E2, +-9.362716238672E1)); +#1210=CARTESIAN_POINT('',(6.938029935871E0,-2.055327335634E2, +-9.380008759286E1)); +#1211=CARTESIAN_POINT('',(6.856391084146E0,-2.049994334506E2, +-9.380008759286E1)); +#1213=CARTESIAN_POINT('',(4.613849571136E0,3.E1,-9.38E1)); +#1214=CARTESIAN_POINT('',(4.689140465498E0,3.051698827425E1,-9.38E1)); +#1215=CARTESIAN_POINT('',(4.860507314237E0,3.155359500435E1,-9.396070916390E1)); +#1216=CARTESIAN_POINT('',(5.157652712310E0,3.297672243125E1,-9.467972024659E1)); +#1217=CARTESIAN_POINT('',(5.460488107251E0,3.410313647038E1,-9.579924190179E1)); +#1218=CARTESIAN_POINT('',(5.743090568065E0,3.483367261301E1,-9.722446662156E1)); +#1219=CARTESIAN_POINT('',(5.897600991837E0,3.5E1,-9.827448891679E1)); +#1220=CARTESIAN_POINT('',(5.963144320304E0,3.5E1,-9.88E1)); +#1222=CARTESIAN_POINT('',(5.963144320304E0,3.5E1,-9.88E1)); +#1223=CARTESIAN_POINT('',(6.036896628517E0,3.5E1,-9.939132876350E1)); +#1224=CARTESIAN_POINT('',(6.185407027435E0,3.5E1,-1.005759395793E2)); +#1225=CARTESIAN_POINT('',(6.411159214887E0,3.5E1,-1.023587210438E2)); +#1226=CARTESIAN_POINT('',(6.563633349315E0,3.5E1,-1.035511513973E2)); +#1227=CARTESIAN_POINT('',(6.640358504370E0,3.5E1,-1.041483448332E2)); +#1229=CARTESIAN_POINT('',(8.583286718479E0,-2.477429559125E0, +-1.459975428660E2)); +#1230=CARTESIAN_POINT('',(8.477294980770E0,-2.978812788909E0, +-1.456367523663E2)); +#1231=CARTESIAN_POINT('',(8.269155593292E0,-4.002147267197E0, +-1.449473891081E2)); +#1232=CARTESIAN_POINT('',(7.969930688470E0,-5.592655904575E0, +-1.440127998631E2)); +#1233=CARTESIAN_POINT('',(7.779946067911E0,-6.685604760093E0, +-1.434577657628E2)); +#1234=CARTESIAN_POINT('',(7.687558889398E0,-7.239165805327E0, +-1.431975920715E2)); +#1236=CARTESIAN_POINT('',(7.687558889398E0,-7.239165805327E0, +-1.431975920715E2)); +#1237=CARTESIAN_POINT('',(7.250615479724E0,-9.857222276581E0, +-1.419671055300E2)); +#1238=CARTESIAN_POINT('',(6.397895808718E0,-1.503385764157E1, +-1.395340869085E2)); +#1239=CARTESIAN_POINT('',(5.184632933325E0,-2.262073613400E1, +-1.359682540170E2)); +#1240=CARTESIAN_POINT('',(4.420627004866E0,-2.755998657041E1, +-1.336468063119E2)); +#1241=CARTESIAN_POINT('',(4.050390083494E0,-3.E1,-1.325E2)); +#1243=CARTESIAN_POINT('',(4.050390083494E0,-3.E1,-1.325E2)); +#1244=CARTESIAN_POINT('',(3.676405471015E0,-3.553443422554E1,-1.325E2)); +#1245=CARTESIAN_POINT('',(3.036642449818E0,-4.661662470751E1, +-1.325000012960E2)); +#1246=CARTESIAN_POINT('',(2.440962978094E0,-6.327046311953E1, +-1.324999954641E2)); +#1247=CARTESIAN_POINT('',(2.304110890147E0,-7.441849933442E1, +-1.325000097198E2)); +#1248=CARTESIAN_POINT('',(2.304110890166E0,-8.000179465084E1, +-1.325000097198E2)); +#1250=CARTESIAN_POINT('',(2.304110890166E0,-8.000179465084E1, +-1.325000097198E2)); +#1251=CARTESIAN_POINT('',(2.304110890189E0,-8.646330171934E1, +-1.325000097198E2)); +#1252=CARTESIAN_POINT('',(2.485800661115E0,-9.940361010273E1, +-1.324999954889E2)); +#1253=CARTESIAN_POINT('',(3.303251262060E0,-1.190814716761E2, +-1.325000012092E2)); +#1254=CARTESIAN_POINT('',(4.590151213682E0,-1.383802215777E2, +-1.324999996745E2)); +#1255=CARTESIAN_POINT('',(6.279599477630E0,-1.576801924835E2, +-1.325000000930E2)); +#1256=CARTESIAN_POINT('',(7.761900315179E0,-1.716629279751E2,-1.325E2)); +#1257=CARTESIAN_POINT('',(8.583286718479E0,-1.788405455807E2,-1.325E2)); +#1259=CARTESIAN_POINT('',(5.500000000077E0,-2.165999092251E2,-6.E1)); +#1260=CARTESIAN_POINT('',(5.305705567093E0,-2.154911307773E2,-6.E1)); +#1261=CARTESIAN_POINT('',(4.920981341115E0,-2.132912981770E2,-6.E1)); +#1262=CARTESIAN_POINT('',(4.537811352389E0,-2.110911942990E2,-6.E1)); +#1263=CARTESIAN_POINT('',(4.348188160383E0,-2.1E2,-6.E1)); +#1265=CARTESIAN_POINT('',(7.076698078222E0,-2.1E2,-8.88E1)); +#1266=CARTESIAN_POINT('',(6.731674108321E0,-2.1E2,-8.560405019809E1)); +#1267=CARTESIAN_POINT('',(6.063256460202E0,-2.1E2,-7.921011586123E1)); +#1268=CARTESIAN_POINT('',(5.156277132985E0,-2.1E2,-6.960935906591E1)); +#1269=CARTESIAN_POINT('',(4.605190581918E0,-2.1E2,-6.320422945985E1)); +#1270=CARTESIAN_POINT('',(4.348188160383E0,-2.1E2,-6.E1)); +#1272=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1273=VECTOR('',#1272,7.38E1); +#1274=CARTESIAN_POINT('',(-7.499999999924E0,-2.1E2,-1.5E1)); +#1275=LINE('',#1274,#1273); +#1276=DIRECTION('',(9.999999992027E-1,3.946321898376E-5,-6.101314767071E-6)); +#1277=VECTOR('',#1276,1.435639109552E1); +#1278=CARTESIAN_POINT('',(-7.499999999924E0,-2.05E2,-9.38E1)); +#1279=LINE('',#1278,#1277); +#1280=DIRECTION('',(-1.E0,1.754823921730E-14,1.364863050234E-14)); +#1281=VECTOR('',#1280,1.457669807815E1); +#1282=CARTESIAN_POINT('',(7.076698078222E0,-2.1E2,-8.88E1)); +#1283=LINE('',#1282,#1281); +#1284=DIRECTION('',(0.E0,1.E0,0.E0)); +#1285=VECTOR('',#1284,2.35E2); +#1286=CARTESIAN_POINT('',(-7.499999999924E0,-2.05E2,-9.38E1)); +#1287=LINE('',#1286,#1285); +#1288=CARTESIAN_POINT('',(4.613849571136E0,3.E1,-9.38E1)); +#1289=CARTESIAN_POINT('',(4.309186284835E0,2.790801599653E1,-9.38E1)); +#1290=CARTESIAN_POINT('',(3.705916462989E0,2.372282959532E1,-9.380000186895E1)); +#1291=CARTESIAN_POINT('',(2.828698339838E0,1.744332135650E1,-9.379999345867E1)); +#1292=CARTESIAN_POINT('',(2.258443569856E0,1.324977091516E1,-9.380001401714E1)); +#1293=CARTESIAN_POINT('',(1.980031151679E0,1.116253373997E1,-9.380001401714E1)); +#1295=CARTESIAN_POINT('',(1.979999939715E0,-1.711645394054E2, +-9.380003612953E1)); +#1296=CARTESIAN_POINT('',(2.481483863736E0,-1.749241298680E2, +-9.380003612953E1)); +#1297=CARTESIAN_POINT('',(3.520483479693E0,-1.824532876349E2, +-9.379999481860E1)); +#1298=CARTESIAN_POINT('',(5.142783639624E0,-1.937330081165E2, +-9.379996394060E1)); +#1299=CARTESIAN_POINT('',(6.281524053099E0,-2.012441546092E2, +-9.380008759286E1)); +#1300=CARTESIAN_POINT('',(6.856391084146E0,-2.049994334506E2, +-9.380008759286E1)); +#1302=CARTESIAN_POINT('',(-7.499999999924E0,-2.05E2,-8.88E1)); +#1303=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1304=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1305=AXIS2_PLACEMENT_3D('',#1302,#1303,#1304); +#1307=CARTESIAN_POINT('',(-7.499999999924E0,-2.18E2,-1.5E1)); +#1308=DIRECTION('',(1.E0,0.E0,0.E0)); +#1309=DIRECTION('',(0.E0,1.E0,0.E0)); +#1310=AXIS2_PLACEMENT_3D('',#1307,#1308,#1309); +#1312=DIRECTION('',(1.465982402626E-14,0.E0,-1.E0)); +#1313=VECTOR('',#1312,9.100000000001E1); +#1314=CARTESIAN_POINT('',(-7.499999999924E0,-2.5E2,-7.E0)); +#1315=LINE('',#1314,#1313); +#1316=CARTESIAN_POINT('',(-7.499999999924E0,3.E1,-9.88E1)); +#1317=DIRECTION('',(1.E0,0.E0,0.E0)); +#1318=DIRECTION('',(0.E0,9.871170143402E-1,1.6E-1)); +#1319=AXIS2_PLACEMENT_3D('',#1316,#1317,#1318); +#1321=CARTESIAN_POINT('',(4.348188160384E0,-2.1E2,-1.5E1)); +#1322=CARTESIAN_POINT('',(4.348188160384E0,-2.1E2,-1.426220810527E1)); +#1323=CARTESIAN_POINT('',(4.384878327141E0,-2.102115438031E2, +-1.278596439236E1)); +#1324=CARTESIAN_POINT('',(4.534204031365E0,-2.110696400689E2, +-1.079871066908E1)); +#1325=CARTESIAN_POINT('',(4.792734268099E0,-2.125545114432E2, +-8.986085208772E0)); +#1326=CARTESIAN_POINT('',(5.124420317017E0,-2.144544556312E2, +-7.712180058739E0)); +#1327=CARTESIAN_POINT('',(5.373336010782E0,-2.158770768758E2, +-7.251955544056E0)); +#1328=CARTESIAN_POINT('',(5.500000000077E0,-2.165999092251E2, +-7.123468668123E0)); +#1330=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1331=VECTOR('',#1330,1.3E1); +#1332=CARTESIAN_POINT('',(5.500000000076E0,-2.18E2,-7.E0)); +#1333=LINE('',#1332,#1331); +#1334=DIRECTION('',(1.E0,1.919058613577E-14,0.E0)); +#1335=VECTOR('',#1334,1.184818816031E1); +#1336=CARTESIAN_POINT('',(-7.499999999924E0,-2.1E2,-1.5E1)); +#1337=LINE('',#1336,#1335); +#1338=DIRECTION('',(-3.742191741670E-14,0.E0,-1.E0)); +#1339=VECTOR('',#1338,4.5E1); +#1340=CARTESIAN_POINT('',(4.348188160384E0,-2.1E2,-1.5E1)); +#1341=LINE('',#1340,#1339); +#1342=DIRECTION('',(1.615892000156E-14,6.611383485044E-14,1.E0)); +#1343=VECTOR('',#1342,5.287653133188E1); +#1344=CARTESIAN_POINT('',(5.500000000077E0,-2.165999092251E2,-6.E1)); +#1345=LINE('',#1344,#1343); +#1346=CARTESIAN_POINT('',(5.500000000076E0,-2.18E2,-1.5E1)); +#1347=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1348=DIRECTION('',(0.E0,0.E0,1.E0)); +#1349=AXIS2_PLACEMENT_3D('',#1346,#1347,#1348); +#1351=DIRECTION('',(0.E0,0.E0,1.E0)); +#1352=VECTOR('',#1351,5.8E1); +#1353=CARTESIAN_POINT('',(5.000000000761E-1,-2.65E2,-6.5E1)); +#1354=LINE('',#1353,#1352); +#1355=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1356=VECTOR('',#1355,5.3E1); +#1357=CARTESIAN_POINT('',(5.500000000076E0,-2.6E2,-7.E0)); +#1358=LINE('',#1357,#1356); +#1359=CARTESIAN_POINT('',(5.500000000076E0,-2.6E2,-6.E1)); +#1360=CARTESIAN_POINT('',(5.500000000076E0,-2.603880345115E2,-6.E1)); +#1361=CARTESIAN_POINT('',(5.422796413415E0,-2.611841941241E2, +-6.007693509891E1)); +#1362=CARTESIAN_POINT('',(4.884835717815E0,-2.625078190950E2, +-6.061548284294E1)); +#1363=CARTESIAN_POINT('',(4.239967001913E0,-2.633944448335E2, +-6.125955338251E1)); +#1364=CARTESIAN_POINT('',(3.153177861626E0,-2.643127643901E2, +-6.234688255345E1)); +#1365=CARTESIAN_POINT('',(1.978842236357E0,-2.648370985882E2, +-6.352161241746E1)); +#1366=CARTESIAN_POINT('',(1.010132093282E0,-2.65E2,-6.448986790679E1)); +#1367=CARTESIAN_POINT('',(5.000000000761E-1,-2.65E2,-6.5E1)); +#1369=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1370=VECTOR('',#1369,7.949999999138E1); +#1371=CARTESIAN_POINT('',(7.999999999145E1,-2.65E2,-6.5E1)); +#1372=LINE('',#1371,#1370); +#1373=DIRECTION('',(1.E0,0.E0,0.E0)); +#1374=VECTOR('',#1373,7.449999999992E1); +#1375=CARTESIAN_POINT('',(5.500000000076E0,-2.6E2,-6.E1)); +#1376=LINE('',#1375,#1374); +#1377=CARTESIAN_POINT('',(-2.699999999992E1,-2.5E2,-9.8E1)); +#1378=DIRECTION('',(0.E0,-1.E0,0.E0)); +#1379=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1380=AXIS2_PLACEMENT_3D('',#1377,#1378,#1379); +#1382=DIRECTION('',(-7.688072400924E-14,1.E0,-1.091393642128E-13)); +#1383=VECTOR('',#1382,5.E1); +#1384=CARTESIAN_POINT('',(-1.199632111959E1,-1.5E1,-1.104555056122E2)); +#1385=LINE('',#1384,#1383); +#1386=CARTESIAN_POINT('',(-7.516417167187E0,3.5E1,-9.88E1)); +#1387=CARTESIAN_POINT('',(-7.512753125398E0,3.5E1,-9.871076417287E1)); +#1388=CARTESIAN_POINT('',(-7.506660157285E0,3.499523671767E1, +-9.853250092278E1)); +#1389=CARTESIAN_POINT('',(-7.501197951375E0,3.497373163376E1, +-9.826532073398E1)); +#1390=CARTESIAN_POINT('',(-7.499999999923E0,3.494989762089E1, +-9.808830100513E1)); +#1391=CARTESIAN_POINT('',(-7.499999999923E0,3.493558507170E1,-9.8E1)); +#1393=DIRECTION('',(0.E0,-1.E0,-3.860241446079E-14)); +#1394=VECTOR('',#1393,2.849355850717E2); +#1395=CARTESIAN_POINT('',(-7.499999999923E0,3.493558507170E1,-9.8E1)); +#1396=LINE('',#1395,#1394); +#1397=DIRECTION('',(0.E0,1.E0,0.E0)); +#1398=VECTOR('',#1397,2.85E2); +#1399=CARTESIAN_POINT('',(-4.649999999992E1,-2.5E2,-9.8E1)); +#1400=LINE('',#1399,#1398); +#1401=DIRECTION('',(3.254285729781E-14,-1.E0,-5.343281372916E-14)); +#1402=VECTOR('',#1401,5.E1); +#1403=CARTESIAN_POINT('',(-4.199632111960E1,3.5E1,-1.104643633161E2)); +#1404=LINE('',#1403,#1402); +#1405=CARTESIAN_POINT('',(-2.699999999992E1,-1.5E1,-9.8E1)); +#1406=DIRECTION('',(0.E0,1.E0,0.E0)); +#1407=DIRECTION('',(7.694194297607E-1,0.E0,-6.387438775493E-1)); +#1408=AXIS2_PLACEMENT_3D('',#1405,#1406,#1407); +#1410=CARTESIAN_POINT('',(-2.699999999992E1,-1.5E1,-9.8E1)); +#1411=DIRECTION('',(0.E0,1.E0,0.E0)); +#1412=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1413=AXIS2_PLACEMENT_3D('',#1410,#1411,#1412); +#1415=CARTESIAN_POINT('',(-2.699999999992E1,2.888543819997E0,-9.8E1)); +#1416=DIRECTION('',(0.E0,1.E0,0.E0)); +#1417=DIRECTION('',(5.274762851299E-1,0.E0,-8.495697550087E-1)); +#1418=AXIS2_PLACEMENT_3D('',#1415,#1416,#1417); +#1420=CARTESIAN_POINT('',(-2.699999999992E1,2.888543819997E0,-9.8E1)); +#1421=DIRECTION('',(0.E0,1.E0,0.E0)); +#1422=DIRECTION('',(6.142950217438E-4,0.E0,-9.999998113208E-1)); +#1423=AXIS2_PLACEMENT_3D('',#1420,#1421,#1422); +#1425=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1426=VECTOR('',#1425,4.427932519135E1); +#1427=CARTESIAN_POINT('',(-7.5E0,2.5E1,-1.457206748087E2)); +#1428=LINE('',#1427,#1426); +#1429=DIRECTION('',(-1.E0,-3.081537768049E-14,-3.514533331354E-12)); +#1430=VECTOR('',#1429,4.496321119600E0); +#1431=CARTESIAN_POINT('',(-7.5E0,2.5E1,-1.457206748087E2)); +#1432=LINE('',#1431,#1430); +#1433=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1434=VECTOR('',#1433,1.472348138314E1); +#1435=CARTESIAN_POINT('',(-1.199632111960E1,2.5E1,-1.457206748087E2)); +#1436=LINE('',#1435,#1434); +#1437=CARTESIAN_POINT('',(-2.699999999992E1,2.5E1,-9.8E1)); +#1438=DIRECTION('',(0.E0,1.E0,0.E0)); +#1439=DIRECTION('',(2.336244356309E-1,0.E0,-9.723269116280E-1)); +#1440=AXIS2_PLACEMENT_3D('',#1437,#1438,#1439); +#1442=CARTESIAN_POINT('',(-2.699999999992E1,2.5E1,-9.8E1)); +#1443=DIRECTION('',(0.E0,1.E0,0.E0)); +#1444=DIRECTION('',(1.228589811677E-3,0.E0,-9.999992452833E-1)); +#1445=AXIS2_PLACEMENT_3D('',#1442,#1443,#1444); +#1447=DIRECTION('',(-1.E0,0.E0,-2.296236133973E-12)); +#1448=VECTOR('',#1447,6.869523783071E0); +#1449=CARTESIAN_POINT('',(-4.199632111960E1,2.5E1,-1.457206748087E2)); +#1450=LINE('',#1449,#1448); +#1451=CARTESIAN_POINT('',(-4.886584490267E1,2.5E1,-1.457206748087E2)); +#1452=CARTESIAN_POINT('',(-4.902143374155E1,2.5E1,-1.473231583809E2)); +#1453=CARTESIAN_POINT('',(-4.967669430009E1,2.5E1,-1.502967301731E2)); +#1454=CARTESIAN_POINT('',(-5.139817116536E1,2.5E1,-1.540492140155E2)); +#1455=CARTESIAN_POINT('',(-5.382952696188E1,2.5E1,-1.572304633538E2)); +#1456=CARTESIAN_POINT('',(-5.675462739445E1,2.5E1,-1.596040475454E2)); +#1457=CARTESIAN_POINT('',(-6.002740111037E1,2.500000000001E1, +-1.611221754180E2)); +#1458=CARTESIAN_POINT('',(-6.220996295858E1,2.499999999999E1, +-1.615396066029E2)); +#1459=CARTESIAN_POINT('',(-6.331964059014E1,2.499999999999E1, +-1.616172914002E2)); +#1461=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1462=VECTOR('',#1461,3.048505569992E1); +#1463=CARTESIAN_POINT('',(1.75E1,2.5E1,-1.595149443001E2)); +#1464=LINE('',#1463,#1462); +#1465=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1466=VECTOR('',#1465,1.036921612375E1); +#1467=CARTESIAN_POINT('',(-6.416713281516E0,3.009005479810E1, +-1.456762545734E2)); +#1468=LINE('',#1467,#1466); +#1469=CARTESIAN_POINT('',(-6.416713281516E0,-8.000179578406E1, +1.429144561350E-3)); +#1470=DIRECTION('',(1.E0,0.E0,0.E0)); +#1471=DIRECTION('',(0.E0,5.764773207618E-1,-8.171131492317E-1)); +#1472=AXIS2_PLACEMENT_3D('',#1469,#1470,#1471); +#1474=DIRECTION('',(0.E0,-9.999619230642E-1,-8.726535498301E-3)); +#1475=VECTOR('',#1474,1.353414721193E1); +#1476=CARTESIAN_POINT('',(-6.416713281516E0,4.362368667118E1, +-1.455581483573E2)); +#1477=LINE('',#1476,#1475); +#1478=CARTESIAN_POINT('',(-6.416713281516E0,3.009005479810E1, +-1.560454706971E2)); +#1479=CARTESIAN_POINT('',(-6.018804776460E0,3.098254171517E1, +-1.554158168147E2)); +#1480=CARTESIAN_POINT('',(-5.046626104298E0,3.263338422938E1, +-1.542289943871E2)); +#1481=CARTESIAN_POINT('',(-2.912668509486E0,3.483247072852E1, +-1.525955625208E2)); +#1482=CARTESIAN_POINT('',(-4.232192401903E-1,3.638616861326E1, +-1.514101142273E2)); +#1483=CARTESIAN_POINT('',(2.332497696806E0,3.732403935321E1,-1.506825977636E2)); +#1484=CARTESIAN_POINT('',(5.167754473109E0,3.760736819157E1,-1.504608186181E2)); +#1485=CARTESIAN_POINT('',(8.093788757276E0,3.723846027205E1,-1.507494203052E2)); +#1486=CARTESIAN_POINT('',(1.105186987316E1,3.609712940190E1,-1.516333261480E2)); +#1487=CARTESIAN_POINT('',(1.375557814778E1,3.413702312280E1,-1.531196404284E2)); +#1488=CARTESIAN_POINT('',(1.592732165976E1,3.139960735853E1,-1.551284422091E2)); +#1489=CARTESIAN_POINT('',(1.723337064995E1,2.820052418505E1,-1.573777555972E2)); +#1490=CARTESIAN_POINT('',(1.75E1,2.608240831831E1,-1.588024480545E2)); +#1491=CARTESIAN_POINT('',(1.75E1,2.5E1,-1.595149443001E2)); +#1493=DIRECTION('',(1.E0,-3.185501988254E-14,-2.203586153397E-13)); +#1494=VECTOR('',#1493,5.275255128608E1); +#1495=CARTESIAN_POINT('',(1.75E1,2.5E1,-1.595149443001E2)); +#1496=LINE('',#1495,#1494); +#1497=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1498=VECTOR('',#1497,6.649999999992E1); +#1499=CARTESIAN_POINT('',(8.5E1,1.032950599131E2,-5.36E1)); +#1500=LINE('',#1499,#1498); +#1501=DIRECTION('',(-9.999999999653E-1,-8.335211294575E-6,-7.274037346258E-8)); +#1502=VECTOR('',#1501,1.166955795023E1); +#1503=CARTESIAN_POINT('',(5.252844668309E0,4.362378393941E1,-1.455581475084E2)); +#1504=LINE('',#1503,#1502); +#1505=DIRECTION('',(0.E0,-4.879988371638E-14,1.E0)); +#1506=VECTOR('',#1505,5.474686583241E1); +#1507=CARTESIAN_POINT('',(8.5E1,5.482050807569E1,-1.9E2)); +#1508=LINE('',#1507,#1506); +#1509=CARTESIAN_POINT('',(8.5E1,5.482050807569E1,-1.352531341676E2)); +#1510=CARTESIAN_POINT('',(8.441536654814E1,5.490489264589E1,-1.351690192817E2)); +#1511=CARTESIAN_POINT('',(8.324008217832E1,5.501376683472E1,-1.350602182644E2)); +#1512=CARTESIAN_POINT('',(8.148899065837E1,5.500003832757E1,-1.350739522397E2)); +#1513=CARTESIAN_POINT('',(7.973318093679E1,5.481043628036E1,-1.352633513634E2)); +#1514=CARTESIAN_POINT('',(7.796859948836E1,5.443617142789E1,-1.356356838324E2)); +#1515=CARTESIAN_POINT('',(7.619200896843E1,5.386054533489E1,-1.362043874343E2)); +#1516=CARTESIAN_POINT('',(7.441287128590E1,5.306214015051E1,-1.369853643864E2)); +#1517=CARTESIAN_POINT('',(7.264481718473E1,5.201240639592E1,-1.379985287710E2)); +#1518=CARTESIAN_POINT('',(7.092498980387E1,5.068808710162E1,-1.392549949221E2)); +#1519=CARTESIAN_POINT('',(6.930136690110E1,4.907078642753E1,-1.407573216062E2)); +#1520=CARTESIAN_POINT('',(6.784340672379E1,4.716537001034E1,-1.424831237956E2)); +#1521=CARTESIAN_POINT('',(6.662554746235E1,4.500684450856E1,-1.443824410290E2)); +#1522=CARTESIAN_POINT('',(6.570888286043E1,4.264415778508E1,-1.463959161620E2)); +#1523=CARTESIAN_POINT('',(6.514214714602E1,4.016530937512E1,-1.484378016082E2)); +#1524=CARTESIAN_POINT('',(6.494056285628E1,3.764150396188E1,-1.504455886942E2)); +#1525=CARTESIAN_POINT('',(6.509934711466E1,3.515556822599E1,-1.523559465642E2)); +#1526=CARTESIAN_POINT('',(6.559602947399E1,3.276254625376E1,-1.541342754630E2)); +#1527=CARTESIAN_POINT('',(6.639482578750E1,3.052058537432E1,-1.557483093875E2)); +#1528=CARTESIAN_POINT('',(6.745988669275E1,2.845584314423E1,-1.571917266860E2)); +#1529=CARTESIAN_POINT('',(6.875135250810E1,2.659653494584E1,-1.584571556493E2)); +#1530=CARTESIAN_POINT('',(6.973606446021E1,2.550605167290E1,-1.591818353329E2)); +#1531=CARTESIAN_POINT('',(7.025255128608E1,2.5E1,-1.595149443001E2)); +#1533=DIRECTION('',(4.428501660728E-14,7.668300244103E-14,-1.E0)); +#1534=VECTOR('',#1533,3.048505569990E1); +#1535=CARTESIAN_POINT('',(7.025255128608E1,2.5E1,-1.595149443001E2)); +#1536=LINE('',#1535,#1534); +#1537=DIRECTION('',(2.221183464633E-14,-1.E0,0.E0)); +#1538=VECTOR('',#1537,8.637131588180E1); +#1539=CARTESIAN_POINT('',(8.5E1,2.601794919243E2,-5.36E1)); +#1540=LINE('',#1539,#1538); +#1541=DIRECTION('',(0.E0,-1.E0,0.E0)); +#1542=VECTOR('',#1541,5.723635208501E1); +#1543=CARTESIAN_POINT('',(8.5E1,1.738081760425E2,-1.02E2)); +#1544=LINE('',#1543,#1542); +#1545=DIRECTION('',(-1.038244637598E-13,-1.E0,-8.081182488524E-14)); +#1546=VECTOR('',#1545,1.327676404439E1); +#1547=CARTESIAN_POINT('',(8.5E1,1.165718239575E2,-5.36E1)); +#1548=LINE('',#1547,#1546); +#1549=CARTESIAN_POINT('',(8.5E1,-8.000179578406E1,1.429144561350E-3)); +#1550=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1551=DIRECTION('',(0.E0,9.598029256263E-1,-2.806748010762E-1)); +#1552=AXIS2_PLACEMENT_3D('',#1549,#1550,#1551); +#1554=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1555=VECTOR('',#1554,1.364E2); +#1556=CARTESIAN_POINT('',(8.5E1,2.601794919243E2,-5.36E1)); +#1557=LINE('',#1556,#1555); +#1558=DIRECTION('',(0.E0,0.E0,1.E0)); +#1559=VECTOR('',#1558,8.8E1); +#1560=CARTESIAN_POINT('',(6.517949192431E1,2.8E2,-1.9E2)); +#1561=LINE('',#1560,#1559); +#1562=DIRECTION('',(6.694369576583E-14,0.E0,1.E0)); +#1563=VECTOR('',#1562,4.84E1); +#1564=CARTESIAN_POINT('',(6.898321842155E1,2.663848474702E2,-1.02E2)); +#1565=LINE('',#1564,#1563); +#1566=CARTESIAN_POINT('',(8.25E1,2.775E2,-5.36E1)); +#1567=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1568=DIRECTION('',(1.428571428571E-1,-9.897433186108E-1,0.E0)); +#1569=AXIS2_PLACEMENT_3D('',#1566,#1567,#1568); +#1571=CARTESIAN_POINT('',(8.25E1,2.775E2,-5.36E1)); +#1572=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1573=DIRECTION('',(0.E0,-1.E0,0.E0)); +#1574=AXIS2_PLACEMENT_3D('',#1571,#1572,#1573); +#1576=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-5.36E1)); +#1577=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1578=DIRECTION('',(6.951188330258E-1,7.188948518196E-1,0.E0)); +#1579=AXIS2_PLACEMENT_3D('',#1576,#1577,#1578); +#1581=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-5.36E1)); +#1582=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1583=DIRECTION('',(1.E0,0.E0,0.E0)); +#1584=AXIS2_PLACEMENT_3D('',#1581,#1582,#1583); +#1586=CARTESIAN_POINT('',(6.E1,1.4519E2,-5.36E1)); +#1587=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1588=DIRECTION('',(-1.862042234073E-1,9.825110621185E-1,0.E0)); +#1589=AXIS2_PLACEMENT_3D('',#1586,#1587,#1588); +#1591=DIRECTION('',(0.E0,0.E0,1.E0)); +#1592=VECTOR('',#1591,4.84E1); +#1593=CARTESIAN_POINT('',(3.E1,2.663848474702E2,-1.02E2)); +#1594=LINE('',#1593,#1592); +#1595=DIRECTION('',(1.E0,8.019830490999E-14,0.E0)); +#1596=VECTOR('',#1595,3.898321842155E1); +#1597=CARTESIAN_POINT('',(3.E1,2.663848474702E2,-5.36E1)); +#1598=LINE('',#1597,#1596); +#1599=CARTESIAN_POINT('',(8.25E1,2.775E2,-1.02E2)); +#1600=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1601=DIRECTION('',(-7.723875187682E-1,-6.351515731313E-1,0.E0)); +#1602=AXIS2_PLACEMENT_3D('',#1599,#1600,#1601); +#1604=DIRECTION('',(1.E0,8.019830491E-14,0.E0)); +#1605=VECTOR('',#1604,3.898321842155E1); +#1606=CARTESIAN_POINT('',(3.E1,2.663848474702E2,-1.02E2)); +#1607=LINE('',#1606,#1605); +#1608=CARTESIAN_POINT('',(5.7E0,2.8E2,-1.657E2)); +#1609=DIRECTION('',(0.E0,-1.E0,0.E0)); +#1610=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1611=AXIS2_PLACEMENT_3D('',#1608,#1609,#1610); +#1613=DIRECTION('',(1.E0,0.E0,0.E0)); +#1614=VECTOR('',#1613,3.517949192431E1); +#1615=CARTESIAN_POINT('',(3.E1,2.8E2,-1.02E2)); +#1616=LINE('',#1615,#1614); +#1617=DIRECTION('',(5.979479162192E-14,1.E0,-3.150478268252E-14)); +#1618=VECTOR('',#1617,4.420483632990E1); +#1619=CARTESIAN_POINT('',(3.E1,2.357951636701E2,-1.657E2)); +#1620=LINE('',#1619,#1618); +#1621=DIRECTION('',(1.142780634603E-13,-1.E0,-2.531698636658E-13)); +#1622=VECTOR('',#1621,4.243556483829E1); +#1623=CARTESIAN_POINT('',(5.7E0,2.8E2,-1.9E2)); +#1624=LINE('',#1623,#1622); +#1625=CARTESIAN_POINT('',(3.E1,2.357951636701E2,-1.657E2)); +#1626=CARTESIAN_POINT('',(3.E1,2.364310287480E2,-1.649302132216E2)); +#1627=CARTESIAN_POINT('',(2.999999989060E1,2.376216370821E2,-1.633186576606E2)); +#1628=CARTESIAN_POINT('',(3.000000038291E1,2.391307042377E2,-1.607092561231E2)); +#1629=CARTESIAN_POINT('',(2.999999857777E1,2.404135223067E2,-1.577949054135E2)); +#1630=CARTESIAN_POINT('',(3.000000530601E1,2.414813343479E2,-1.544668277613E2)); +#1631=CARTESIAN_POINT('',(2.999998019818E1,2.423145488297E2,-1.506336976203E2)); +#1632=CARTESIAN_POINT('',(3.000004266690E1,2.427262068930E2,-1.476438337510E2)); +#1633=CARTESIAN_POINT('',(3.000004266690E1,2.428897124884E2,-1.460478878347E2)); +#1635=CARTESIAN_POINT('',(3.000004266690E1,2.428897124884E2,-1.460478878347E2)); +#1636=CARTESIAN_POINT('',(3.000004266690E1,2.434390346503E2,-1.374444266006E2)); +#1637=CARTESIAN_POINT('',(3.000000493999E1,2.445123626232E2,-1.202359449138E2)); +#1638=CARTESIAN_POINT('',(2.999991870967E1,2.460711290709E2,-9.442003503788E1)); +#1639=CARTESIAN_POINT('',(3.000018638411E1,2.470663127229E2,-7.720684576929E1)); +#1640=CARTESIAN_POINT('',(3.000018638411E1,2.475589762720E2,-6.859998692460E1)); +#1642=DIRECTION('',(-1.521453028427E-5,9.999999998837E-1,-1.067344295250E-6)); +#1643=VECTOR('',#1642,1.225040157868E1); +#1644=CARTESIAN_POINT('',(3.000018638411E1,2.475589762720E2,-6.859998692460E1)); +#1645=LINE('',#1644,#1643); +#1646=DIRECTION('',(-2.555609966940E-13,1.E0,0.E0)); +#1647=VECTOR('',#1646,6.575469620995E0); +#1648=CARTESIAN_POINT('',(3.E1,2.598093778492E2,-5.36E1)); +#1649=LINE('',#1648,#1647); +#1650=DIRECTION('',(0.E0,1.E0,0.E0)); +#1651=VECTOR('',#1650,1.361515252980E1); +#1652=CARTESIAN_POINT('',(3.E1,2.663848474702E2,-1.02E2)); +#1653=LINE('',#1652,#1651); +#1654=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1655=VECTOR('',#1654,6.37E1); +#1656=CARTESIAN_POINT('',(3.E1,2.8E2,-1.02E2)); +#1657=LINE('',#1656,#1655); +#1658=CARTESIAN_POINT('',(3.E1,2.357951636701E2,-1.657E2)); +#1659=CARTESIAN_POINT('',(3.E1,2.350507558578E2,-1.666011900662E2)); +#1660=CARTESIAN_POINT('',(2.989958152599E1,2.336445025319E2,-1.683083194669E2)); +#1661=CARTESIAN_POINT('',(2.954298537523E1,2.318085643134E2,-1.705520325717E2)); +#1662=CARTESIAN_POINT('',(2.904236458432E1,2.302361272810E2,-1.725498061142E2)); +#1663=CARTESIAN_POINT('',(2.843437607526E1,2.289220495632E2,-1.743452908855E2)); +#1664=CARTESIAN_POINT('',(2.774973402293E1,2.278769157199E2,-1.759592554437E2)); +#1665=CARTESIAN_POINT('',(2.700818254124E1,2.271054154585E2,-1.774166048982E2)); +#1666=CARTESIAN_POINT('',(2.623143810838E1,2.266098126550E2,-1.787259206673E2)); +#1667=CARTESIAN_POINT('',(2.542552227872E1,2.263589138124E2,-1.799142438211E2)); +#1668=CARTESIAN_POINT('',(2.458917866477E1,2.263191964022E2,-1.810073456922E2)); +#1669=CARTESIAN_POINT('',(2.368748794848E1,2.264760301577E2,-1.820583855024E2)); +#1670=CARTESIAN_POINT('',(2.268684130093E1,2.268383215297E2,-1.830977887419E2)); +#1671=CARTESIAN_POINT('',(2.152775347717E1,2.274139175259E2,-1.841631593899E2)); +#1672=CARTESIAN_POINT('',(2.015885284662E1,2.282212819415E2,-1.852593488916E2)); +#1673=CARTESIAN_POINT('',(1.854667884918E1,2.292633815169E2,-1.863607970333E2)); +#1674=CARTESIAN_POINT('',(1.665838445182E1,2.305284303188E2,-1.874280598851E2)); +#1675=CARTESIAN_POINT('',(1.448305294016E1,2.319815398260E2,-1.884043610582E2)); +#1676=CARTESIAN_POINT('',(1.189086436551E1,2.336867517191E2,-1.892584593799E2)); +#1677=CARTESIAN_POINT('',(8.893795256137E0,2.356086277672E2,-1.898567692280E2)); +#1678=CARTESIAN_POINT('',(6.784952141236E0,2.369027970441E2,-1.9E2)); +#1679=CARTESIAN_POINT('',(5.700000000005E0,2.375644351617E2,-1.9E2)); +#1681=CARTESIAN_POINT('',(5.700000000005E0,2.375644351617E2,-1.9E2)); +#1682=CARTESIAN_POINT('',(6.577156397782E0,2.370295174582E2,-1.9E2)); +#1683=CARTESIAN_POINT('',(8.247755351512E0,2.358803664364E2,-1.9E2)); +#1684=CARTESIAN_POINT('',(1.049947092037E1,2.339257488819E2,-1.9E2)); +#1685=CARTESIAN_POINT('',(1.253108905725E1,2.317599449483E2,-1.899999999999E2)); +#1686=CARTESIAN_POINT('',(1.436459301771E1,2.293587086510E2,-1.900000000004E2)); +#1687=CARTESIAN_POINT('',(1.597211435173E1,2.267088882981E2,-1.899999999987E2)); +#1688=CARTESIAN_POINT('',(1.741753858043E1,2.236700910709E2,-1.900000000049E2)); +#1689=CARTESIAN_POINT('',(1.871476230124E1,2.200784227095E2,-1.899999999817E2)); +#1690=CARTESIAN_POINT('',(1.978947160391E1,2.159014719179E2,-1.900000000683E2)); +#1691=CARTESIAN_POINT('',(2.058719090170E1,2.111098528835E2,-1.899999997451E2)); +#1692=CARTESIAN_POINT('',(2.107796019922E1,2.057017165588E2,-1.900000009514E2)); +#1693=CARTESIAN_POINT('',(2.122137768390E1,2.016718026466E2,-1.899999979501E2)); +#1694=CARTESIAN_POINT('',(2.123537790404E1,1.995521107079E2,-1.899999979501E2)); +#1696=CARTESIAN_POINT('',(-2.695261958154E1,1.540326241061E2, +-1.900000153205E2)); +#1697=CARTESIAN_POINT('',(-2.696674950875E1,1.515501263307E2, +-1.876524206454E2)); +#1698=CARTESIAN_POINT('',(-2.695407879639E1,1.480714148439E2, +-1.838792541714E2)); +#1699=CARTESIAN_POINT('',(-2.697972707891E1,1.442653850473E2, +-1.790345860844E2)); +#1700=CARTESIAN_POINT('',(-2.699036284041E1,1.417971665101E2, +-1.753784815478E2)); +#1701=CARTESIAN_POINT('',(-2.699648657210E1,1.406755739535E2, +-1.734399999984E2)); +#1703=CARTESIAN_POINT('',(-2.699648657210E1,1.406755739535E2, +-1.734399999984E2)); +#1704=CARTESIAN_POINT('',(-2.382005693740E1,1.406755668860E2, +-1.734400103201E2)); +#1705=CARTESIAN_POINT('',(-1.750435515677E1,1.405036332135E2, +-1.728455652890E2)); +#1706=CARTESIAN_POINT('',(-8.443458125453E0,1.400847728112E2, +-1.702430659123E2)); +#1707=CARTESIAN_POINT('',(-1.380941260086E-1,1.399612975969E2, +-1.661140447025E2)); +#1708=CARTESIAN_POINT('',(7.363257692161E0,1.405836194353E2,-1.604786440434E2)); +#1709=CARTESIAN_POINT('',(1.353920440407E1,1.421367448640E2,-1.537701999525E2)); +#1710=CARTESIAN_POINT('',(1.676068191427E1,1.435723096712E2,-1.487284676749E2)); +#1711=CARTESIAN_POINT('',(1.813820889572E1,1.443061931079E2,-1.460902994783E2)); +#1713=CARTESIAN_POINT('',(4.034383082927E1,1.994802791342E2,-1.458859474800E2)); +#1714=CARTESIAN_POINT('',(4.031488415960E1,1.994799711064E2,-1.466690157037E2)); +#1715=CARTESIAN_POINT('',(4.019412457675E1,1.994798994642E2,-1.492245606867E2)); +#1716=CARTESIAN_POINT('',(3.982706326942E1,1.994775656843E2,-1.537234269387E2)); +#1717=CARTESIAN_POINT('',(3.881279153047E1,1.994759823413E2,-1.597725889085E2)); +#1718=CARTESIAN_POINT('',(3.692549027110E1,1.994729423146E2,-1.660173816936E2)); +#1719=CARTESIAN_POINT('',(3.427335886001E1,1.994669027605E2,-1.717861514372E2)); +#1720=CARTESIAN_POINT('',(3.131317741988E1,1.994671799601E2,-1.767716529115E2)); +#1721=CARTESIAN_POINT('',(2.743500512435E1,1.994831656046E2,-1.824806965087E2)); +#1722=CARTESIAN_POINT('',(2.428175991751E1,1.995094457560E2,-1.865900133249E2)); +#1723=CARTESIAN_POINT('',(2.123537790404E1,1.995521107079E2,-1.899999979501E2)); +#1725=CARTESIAN_POINT('',(-6.249464034144E1,1.624418115339E2,-1.9E2)); +#1726=CARTESIAN_POINT('',(-6.368637532199E1,1.624418115339E2, +-1.892383506577E2)); +#1727=CARTESIAN_POINT('',(-6.616634286833E1,1.624418115339E2, +-1.875116267847E2)); +#1728=CARTESIAN_POINT('',(-7.016856581927E1,1.624418115339E2, +-1.840982870394E2)); +#1729=CARTESIAN_POINT('',(-7.415076161971E1,1.624418115339E2, +-1.799870080393E2)); +#1730=CARTESIAN_POINT('',(-7.821822715237E1,1.624418115339E2, +-1.751277442306E2)); +#1731=CARTESIAN_POINT('',(-8.218431509342E1,1.624418115339E2, +-1.690181252080E2)); +#1732=CARTESIAN_POINT('',(-8.418289400122E1,1.624418115339E2, +-1.643592410451E2)); +#1733=CARTESIAN_POINT('',(-8.5E1,1.624418115339E2,-1.618398077073E2)); +#1735=CARTESIAN_POINT('',(-8.500000941552E1,1.575995290716E2, +-1.460651841775E2)); +#1736=CARTESIAN_POINT('',(-8.389058920670E1,1.558393247920E2, +-1.460754473351E2)); +#1737=CARTESIAN_POINT('',(-8.142284914800E1,1.524651885704E2, +-1.461042712740E2)); +#1738=CARTESIAN_POINT('',(-7.718230168693E1,1.480483159832E2, +-1.461075362641E2)); +#1739=CARTESIAN_POINT('',(-7.387337520191E1,1.454758868121E2, +-1.460983497298E2)); +#1740=CARTESIAN_POINT('',(-7.213086778258E1,1.443062021939E2, +-1.460902661105E2)); +#1742=DIRECTION('',(6.711756998946E-14,3.532503683656E-14,-1.E0)); +#1743=VECTOR('',#1742,2.816019229270E1); +#1744=CARTESIAN_POINT('',(-8.5E1,1.624418115339E2,-1.618398077073E2)); +#1745=LINE('',#1744,#1743); +#1746=CARTESIAN_POINT('',(-8.5E1,-6.5E1,0.E0)); +#1747=DIRECTION('',(1.E0,0.E0,0.E0)); +#1748=DIRECTION('',(0.E0,6.431143404170E-1,-7.657701647035E-1)); +#1749=AXIS2_PLACEMENT_3D('',#1746,#1747,#1748); +#1751=DIRECTION('',(2.453056677448E-6,9.999999999970E-1,-1.784040440700E-7)); +#1752=VECTOR('',#1751,3.834262960769E1); +#1753=CARTESIAN_POINT('',(-8.5E1,1.134363826783E2,-5.36E1)); +#1754=LINE('',#1753,#1752); +#1755=CARTESIAN_POINT('',(-8.499990594336E1,1.517790122859E2, +-5.360000684048E1)); +#1756=CARTESIAN_POINT('',(-8.499990594336E1,1.523821023504E2, +-6.387758287075E1)); +#1757=CARTESIAN_POINT('',(-8.500004514850E1,1.536080997510E2, +-8.443198926361E1)); +#1758=CARTESIAN_POINT('',(-8.499998306520E1,1.555525931383E2, +-1.152538995660E2)); +#1759=CARTESIAN_POINT('',(-8.500000941552E1,1.569009416501E2, +-1.358062489182E2)); +#1760=CARTESIAN_POINT('',(-8.500000941552E1,1.575995290716E2, +-1.460651841775E2)); +#1762=CARTESIAN_POINT('',(-8.500000941552E1,1.575995290716E2, +-1.460651841775E2)); +#1763=CARTESIAN_POINT('',(-8.500000941552E1,1.578362522818E2, +-1.482162167795E2)); +#1764=CARTESIAN_POINT('',(-8.499999560609E1,1.584867869747E2, +-1.522303527763E2)); +#1765=CARTESIAN_POINT('',(-8.500000125540E1,1.600194342331E2, +-1.573711867076E2)); +#1766=CARTESIAN_POINT('',(-8.5E1,1.615534612155E2,-1.604263179808E2)); +#1767=CARTESIAN_POINT('',(-8.5E1,1.624418115339E2,-1.618398077073E2)); +#1769=DIRECTION('',(2.445094622795E-14,-2.133090361032E-13,1.E0)); +#1770=VECTOR('',#1769,2.789753083461E1); +#1771=CARTESIAN_POINT('',(-7.025255128608E1,2.5E1,-1.9E2)); +#1772=LINE('',#1771,#1770); +#1773=DIRECTION('',(1.921719629203E-14,1.159037151363E-13,-1.E0)); +#1774=VECTOR('',#1773,4.732712763880E1); +#1775=CARTESIAN_POINT('',(-8.5E1,5.482050807568E1,-1.426728723612E2)); +#1776=LINE('',#1775,#1774); +#1777=CARTESIAN_POINT('',(-8.5E1,5.482050807568E1,-1.426728723612E2)); +#1778=CARTESIAN_POINT('',(-8.386037148970E1,5.498499928248E1, +-1.424437052720E2)); +#1779=CARTESIAN_POINT('',(-8.147965645699E1,5.508605142500E1, +-1.421675544632E2)); +#1780=CARTESIAN_POINT('',(-7.788876779013E1,5.454153546700E1, +-1.423407419240E2)); +#1781=CARTESIAN_POINT('',(-7.394642068455E1,5.294041488331E1, +-1.433626764153E2)); +#1782=CARTESIAN_POINT('',(-7.106876848647E1,5.088821438806E1, +-1.448039626307E2)); +#1783=CARTESIAN_POINT('',(-6.863932170501E1,4.839447161528E1, +-1.465818116862E2)); +#1784=CARTESIAN_POINT('',(-6.652944164388E1,4.504582296700E1, +-1.489632013306E2)); +#1785=CARTESIAN_POINT('',(-6.516814828303E1,4.098443302344E1, +-1.517835235732E2)); +#1786=CARTESIAN_POINT('',(-6.484043875040E1,3.662585401469E1, +-1.547125794398E2)); +#1787=CARTESIAN_POINT('',(-6.559970227354E1,3.229675355830E1, +-1.575229107178E2)); +#1788=CARTESIAN_POINT('',(-6.741207647154E1,2.828173920504E1, +-1.600556655566E2)); +#1789=CARTESIAN_POINT('',(-6.922215323171E1,2.600957978607E1, +-1.614698623969E2)); +#1790=CARTESIAN_POINT('',(-7.025255128608E1,2.499999999999E1, +-1.621024691654E2)); +#1792=CARTESIAN_POINT('',(-7.025255128608E1,2.499999999999E1, +-1.621024691654E2)); +#1793=CARTESIAN_POINT('',(-6.948227196469E1,2.499999999999E1, +-1.620485826615E2)); +#1794=CARTESIAN_POINT('',(-6.794168475781E1,2.5E1,-1.619407830494E2)); +#1795=CARTESIAN_POINT('',(-6.563071452476E1,2.500000000001E1, +-1.617790571317E2)); +#1796=CARTESIAN_POINT('',(-6.409000808534E1,2.499999999999E1, +-1.616712222365E2)); +#1797=CARTESIAN_POINT('',(-6.331964059014E1,2.499999999999E1, +-1.616172914002E2)); +#1799=CARTESIAN_POINT('',(-7.249999999992E1,1.126379534922E2,-5.36E1)); +#1800=CARTESIAN_POINT('',(-7.388893096454E1,1.127266871032E2,-5.36E1)); +#1801=CARTESIAN_POINT('',(-7.666676507962E1,1.129041377879E2,-5.36E1)); +#1802=CARTESIAN_POINT('',(-8.083343174975E1,1.131702808030E2,-5.36E1)); +#1803=CARTESIAN_POINT('',(-8.361115319183E1,1.133476875064E2,-5.36E1)); +#1804=CARTESIAN_POINT('',(-8.5E1,1.134363826783E2,-5.36E1)); +#1806=CARTESIAN_POINT('',(-7.973541387423E1,1.460845364280E2, +-5.359999999099E1)); +#1807=CARTESIAN_POINT('',(-7.953122913960E1,1.462771574755E2, +-6.139750041849E1)); +#1808=CARTESIAN_POINT('',(-7.912270717660E1,1.466625297293E2, +-7.699831797507E1)); +#1809=CARTESIAN_POINT('',(-7.850946940943E1,1.472410388759E2, +-1.004169929950E2)); +#1810=CARTESIAN_POINT('',(-7.810033373920E1,1.476270100141E2, +-1.160410753271E2)); +#1811=CARTESIAN_POINT('',(-7.789569208626E1,1.478200666053E2, +-1.238560247607E2)); +#1813=CARTESIAN_POINT('',(-7.789569208626E1,1.478200666053E2, +-1.238560247607E2)); +#1814=CARTESIAN_POINT('',(-7.783449773525E1,1.478777966551E2, +-1.261929427434E2)); +#1815=CARTESIAN_POINT('',(-7.737956667401E1,1.476920406285E2, +-1.310129532718E2)); +#1816=CARTESIAN_POINT('',(-7.560229070163E1,1.464889961475E2, +-1.383593104317E2)); +#1817=CARTESIAN_POINT('',(-7.347407253632E1,1.450974752121E2, +-1.435178254715E2)); +#1818=CARTESIAN_POINT('',(-7.213086778258E1,1.443062021939E2, +-1.460902661105E2)); +#1820=CARTESIAN_POINT('',(4.034383082927E1,1.994802791342E2,-1.458859474800E2)); +#1821=CARTESIAN_POINT('',(4.034358179921E1,1.946392078519E2,-1.458927144106E2)); +#1822=CARTESIAN_POINT('',(3.993101462741E1,1.854584850623E2,-1.459113341450E2)); +#1823=CARTESIAN_POINT('',(3.800049398671E1,1.739185415505E2,-1.459743146657E2)); +#1824=CARTESIAN_POINT('',(3.471166813903E1,1.640631556693E2,-1.460396914494E2)); +#1825=CARTESIAN_POINT('',(3.053023900089E1,1.563169860035E2,-1.460868025377E2)); +#1826=CARTESIAN_POINT('',(2.459596846150E1,1.491530350370E2,-1.461113489834E2)); +#1827=CARTESIAN_POINT('',(2.030811026133E1,1.457632989045E2,-1.461008465832E2)); +#1828=CARTESIAN_POINT('',(1.813820889572E1,1.443061931079E2,-1.460902994783E2)); +#1830=CARTESIAN_POINT('',(6.E1,1.4519E2,-1.02E2)); +#1831=DIRECTION('',(0.E0,0.E0,1.E0)); +#1832=DIRECTION('',(6.578947368421E-1,7.531098958555E-1,0.E0)); +#1833=AXIS2_PLACEMENT_3D('',#1830,#1831,#1832); +#1835=CARTESIAN_POINT('',(4.014428198252E1,1.775898880691E2,-1.019999983709E2)); +#1836=CARTESIAN_POINT('',(3.950137881913E1,1.742295494399E2,-1.019999983709E2)); +#1837=CARTESIAN_POINT('',(3.788684585605E1,1.679857803194E2,-1.020000007622E2)); +#1838=CARTESIAN_POINT('',(3.440330596722E1,1.598835241652E2,-1.019999997761E2)); +#1839=CARTESIAN_POINT('',(3.039252448269E1,1.534875882985E2,-1.020000001334E2)); +#1840=CARTESIAN_POINT('',(2.662412614833E1,1.492456478085E2,-1.019999998380E2)); +#1841=CARTESIAN_POINT('',(2.447537015582E1,1.472801423223E2,-1.019999998380E2)); +#1843=CARTESIAN_POINT('',(6.E1,1.4519E2,-1.02E2)); +#1844=DIRECTION('',(0.E0,0.E0,1.E0)); +#1845=DIRECTION('',(-9.348585999821E-1,-3.550202783498E-1,0.E0)); +#1846=AXIS2_PLACEMENT_3D('',#1843,#1844,#1845); +#1848=CARTESIAN_POINT('',(6.E1,1.4519E2,-1.02E2)); +#1849=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1850=DIRECTION('',(0.E0,1.E0,0.E0)); +#1851=AXIS2_PLACEMENT_3D('',#1848,#1849,#1850); +#1853=CARTESIAN_POINT('',(6.E1,1.4519E2,-1.02E2)); +#1854=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1855=DIRECTION('',(0.E0,-1.E0,0.E0)); +#1856=AXIS2_PLACEMENT_3D('',#1853,#1854,#1855); +#1858=DIRECTION('',(0.E0,0.E0,1.E0)); +#1859=VECTOR('',#1858,4.84E1); +#1860=CARTESIAN_POINT('',(8.5E1,1.738081760425E2,-1.02E2)); +#1861=LINE('',#1860,#1859); +#1862=CARTESIAN_POINT('',(4.153519107535E1,1.784022162454E2,-6.860000013934E1)); +#1863=CARTESIAN_POINT('',(4.138052348249E1,1.783162265865E2,-7.235045477893E1)); +#1864=CARTESIAN_POINT('',(4.107150533018E1,1.781415932051E2,-7.982515058838E1)); +#1865=CARTESIAN_POINT('',(4.060766529728E1,1.778707773057E2,-9.095848020257E1)); +#1866=CARTESIAN_POINT('',(4.029882242955E1,1.776845951390E2,-9.832824576658E1)); +#1867=CARTESIAN_POINT('',(4.014428198252E1,1.775898880691E2,-1.019999983709E2)); +#1869=DIRECTION('',(0.E0,-1.894780628694E-14,1.E0)); +#1870=VECTOR('',#1869,1.5E1); +#1871=CARTESIAN_POINT('',(5.292423951052E1,1.825254203605E2,-6.86E1)); +#1872=LINE('',#1871,#1870); +#1873=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1874=VECTOR('',#1873,1.5E1); +#1875=CARTESIAN_POINT('',(3.E1,2.598093778492E2,-5.36E1)); +#1876=LINE('',#1875,#1874); +#1877=CARTESIAN_POINT('',(6.E1,1.4519E2,-6.86E1)); +#1878=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1879=DIRECTION('',(-4.859160724206E-1,8.740054751335E-1,0.E0)); +#1880=AXIS2_PLACEMENT_3D('',#1877,#1878,#1879); +#1882=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-6.86E1)); +#1883=DIRECTION('',(0.E0,0.E0,1.E0)); +#1884=DIRECTION('',(9.746827294957E-1,-2.235924346280E-1,0.E0)); +#1885=AXIS2_PLACEMENT_3D('',#1882,#1883,#1884); +#1887=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-6.86E1)); +#1888=DIRECTION('',(0.E0,0.E0,1.E0)); +#1889=DIRECTION('',(1.E0,0.E0,0.E0)); +#1890=AXIS2_PLACEMENT_3D('',#1887,#1888,#1889); +#1892=CARTESIAN_POINT('',(3.000018638411E1,2.475589762720E2,-6.859998692460E1)); +#1893=CARTESIAN_POINT('',(3.097586405663E1,2.463594107505E2,-6.859998692460E1)); +#1894=CARTESIAN_POINT('',(3.282721437915E1,2.438464163527E2,-6.860000606831E1)); +#1895=CARTESIAN_POINT('',(3.524966050531E1,2.397844175371E2,-6.859999837400E1)); +#1896=CARTESIAN_POINT('',(3.741717691034E1,2.352167014133E2,-6.860000043569E1)); +#1897=CARTESIAN_POINT('',(3.933024611043E1,2.300029000157E2,-6.859999988326E1)); +#1898=CARTESIAN_POINT('',(4.095302650563E1,2.239517622586E2,-6.860000003129E1)); +#1899=CARTESIAN_POINT('',(4.220592587352E1,2.169202781801E2,-6.859999999158E1)); +#1900=CARTESIAN_POINT('',(4.300532766477E1,2.088400315086E2,-6.860000000241E1)); +#1901=CARTESIAN_POINT('',(4.318787069947E1,2.027202007226E2,-6.86E1)); +#1902=CARTESIAN_POINT('',(4.318787070919E1,1.994798494047E2,-6.86E1)); +#1904=CARTESIAN_POINT('',(4.318787070919E1,1.994798494047E2,-6.86E1)); +#1905=CARTESIAN_POINT('',(4.318787070918E1,1.969376952453E2,-6.86E1)); +#1906=CARTESIAN_POINT('',(4.307984028649E1,1.919863229487E2,-6.860000001858E1)); +#1907=CARTESIAN_POINT('',(4.254146937662E1,1.849164205552E2,-6.859999993497E1)); +#1908=CARTESIAN_POINT('',(4.191562670082E1,1.805244434428E2,-6.860000013934E1)); +#1909=CARTESIAN_POINT('',(4.153519107535E1,1.784022162454E2,-6.860000013934E1)); +#1911=CARTESIAN_POINT('',(3.000004266690E1,2.428897124884E2,-1.460478878347E2)); +#1912=CARTESIAN_POINT('',(3.154385588157E1,2.406434686662E2,-1.460379333162E2)); +#1913=CARTESIAN_POINT('',(3.454764694191E1,2.354795173915E2,-1.460128501857E2)); +#1914=CARTESIAN_POINT('',(3.815623179728E1,2.244597046641E2,-1.459480370508E2)); +#1915=CARTESIAN_POINT('',(3.989102682197E1,2.135447247764E2,-1.458989806756E2)); +#1916=CARTESIAN_POINT('',(4.034374891660E1,2.043299563190E2,-1.458881724344E2)); +#1917=CARTESIAN_POINT('',(4.034383082927E1,1.994802791342E2,-1.458859474800E2)); +#1919=DIRECTION('',(3.677403567096E-2,-5.556493068288E-6,9.993236063806E-1)); +#1920=VECTOR('',#1919,7.733825858466E1); +#1921=CARTESIAN_POINT('',(4.034383082927E1,1.994802791342E2,-1.458859474800E2)); +#1922=LINE('',#1921,#1920); +#1923=DIRECTION('',(-1.954223482988E-7,1.E0,1.039500419362E-8)); +#1924=VECTOR('',#1923,1.558091289964E1); +#1925=CARTESIAN_POINT('',(2.447537320068E1,1.316992294227E2,-1.02E2)); +#1926=LINE('',#1925,#1924); +#1927=CARTESIAN_POINT('',(2.447537015582E1,1.472801423223E2,-1.019999998380E2)); +#1928=CARTESIAN_POINT('',(2.428459676974E1,1.474601151818E2,-1.092853415272E2)); +#1929=CARTESIAN_POINT('',(2.409382388148E1,1.476400912414E2,-1.165706831504E2)); +#1930=CARTESIAN_POINT('',(2.390305049656E1,1.478200658945E2,-1.238560247953E2)); +#1932=DIRECTION('',(-4.477913537279E-13,1.E0,-2.409639571630E-14)); +#1933=VECTOR('',#1932,7.077002660072E0); +#1934=CARTESIAN_POINT('',(2.574277180462E1,1.216678668640E2,-5.36E1)); +#1935=LINE('',#1934,#1933); +#1936=CARTESIAN_POINT('',(5.253298405632E0,1.224643691008E2,-1.448701161452E2)); +#1937=CARTESIAN_POINT('',(5.627579211614E0,1.224237079003E2,-1.402108040614E2)); +#1938=CARTESIAN_POINT('',(6.020847707192E0,1.223774622028E2,-1.349115719944E2)); +#1939=CARTESIAN_POINT('',(6.378852057874E0,1.223276870186E2,-1.292079008430E2)); +#1940=CARTESIAN_POINT('',(6.439392325226E0,1.223189573165E2,-1.282075760584E2)); +#1941=CARTESIAN_POINT('',(6.461851306827E0,1.223156715455E2,-1.278310639960E2)); +#1943=DIRECTION('',(1.E0,1.922832583537E-12,0.E0)); +#1944=VECTOR('',#1943,7.242771804543E0); +#1945=CARTESIAN_POINT('',(1.850000000008E1,1.216678668640E2,-5.36E1)); +#1946=LINE('',#1945,#1944); +#1947=DIRECTION('',(-2.617595225285E-2,8.723545360278E-3,-9.996192871689E-1)); +#1948=VECTOR('',#1947,7.028278248807E1); +#1949=CARTESIAN_POINT('',(2.574277180462E1,1.216678668640E2,-5.36E1)); +#1950=LINE('',#1949,#1948); +#1951=CARTESIAN_POINT('',(2.390305304601E1,1.222809819051E2,-1.238560249310E2)); +#1952=CARTESIAN_POINT('',(2.374352947150E1,1.223341456306E2,-1.299479844630E2)); +#1953=CARTESIAN_POINT('',(2.140909599415E1,1.224271318134E2,-1.406031456349E2)); +#1954=CARTESIAN_POINT('',(1.413720619197E1,1.225416532043E2,-1.537259972360E2)); +#1955=CARTESIAN_POINT('',(3.459514752686E0,1.226336291846E2,-1.642654006622E2)); +#1956=CARTESIAN_POINT('',(-6.172517258794E0,1.226783073997E2, +-1.693850170129E2)); +#1957=CARTESIAN_POINT('',(-1.199632111960E1,1.226939752464E2, +-1.711803744151E2)); +#1959=DIRECTION('',(-5.754904600103E-6,-9.999619230476E-1,-8.726535498228E-3)); +#1960=VECTOR('',#1959,7.884358728495E1); +#1961=CARTESIAN_POINT('',(5.253298405632E0,1.224643691008E2,-1.448701161452E2)); +#1962=LINE('',#1961,#1960); +#1963=CARTESIAN_POINT('',(5.252844668309E0,4.362378393941E1,-1.455581475084E2)); +#1964=CARTESIAN_POINT('',(5.399643082762E0,4.579797160151E1,-1.437115840374E2)); +#1965=CARTESIAN_POINT('',(5.692415616075E0,5.005416523263E1,-1.399289156309E2)); +#1966=CARTESIAN_POINT('',(6.113214732332E0,5.615389341776E1,-1.340003954013E2)); +#1967=CARTESIAN_POINT('',(6.373140277531E0,6.002482161711E1,-1.298883337904E2)); +#1968=CARTESIAN_POINT('',(6.495212666513E0,6.191010253814E1,-1.277948160008E2)); +#1970=CARTESIAN_POINT('',(6.495212666513E0,6.191010253814E1,-1.277948160008E2)); +#1971=CARTESIAN_POINT('',(6.484180232228E0,8.204531297683E1,-1.278068158664E2)); +#1972=CARTESIAN_POINT('',(6.473057497336E0,1.021804613003E2,-1.278189015912E2)); +#1973=CARTESIAN_POINT('',(6.461851306827E0,1.223156715455E2,-1.278310639960E2)); +#1975=CARTESIAN_POINT('',(-7.5E0,2.5E1,-1.457206748087E2)); +#1976=CARTESIAN_POINT('',(-7.5E0,2.677352920173E1,-1.457051974538E2)); +#1977=CARTESIAN_POINT('',(-7.138906707015E0,2.847021461960E1, +-1.456903907045E2)); +#1978=CARTESIAN_POINT('',(-6.416713281516E0,3.009005479810E1, +-1.456762545734E2)); +#1980=DIRECTION('',(-1.E0,2.883425424570E-13,0.E0)); +#1981=VECTOR('',#1980,1.724961952523E1); +#1982=CARTESIAN_POINT('',(5.253298405632E0,1.224643691008E2,-1.448701161452E2)); +#1983=LINE('',#1982,#1981); +#1984=DIRECTION('',(0.E0,9.999619230642E-1,8.726535498537E-3)); +#1985=VECTOR('',#1984,9.746808038669E1); +#1986=CARTESIAN_POINT('',(-1.199632111960E1,2.5E1,-1.457206748087E2)); +#1987=LINE('',#1986,#1985); +#1988=DIRECTION('',(2.774791696051E-14,8.726535498852E-3,-9.999619230642E-1)); +#1989=VECTOR('',#1988,2.631126012207E1); +#1990=CARTESIAN_POINT('',(-1.199632111960E1,1.224643691008E2, +-1.448701161452E2)); +#1991=LINE('',#1990,#1989); +#1992=CARTESIAN_POINT('',(-1.199058065951E1,1.329994625013E2, +-1.557052167791E2)); +#1993=CARTESIAN_POINT('',(-1.199058065951E1,1.329256763024E2, +-1.557054165974E2)); +#1994=CARTESIAN_POINT('',(-1.199919134964E1,1.327792504216E2, +-1.557042988472E2)); +#1995=CARTESIAN_POINT('',(-1.199632111960E1,1.326324300813E2, +-1.557063795397E2)); +#1996=CARTESIAN_POINT('',(-1.199632111960E1,1.325593244203E2, +-1.557072845143E2)); +#1998=DIRECTION('',(-2.558322067291E-14,-8.726535498603E-3,9.999619230642E-1)); +#1999=VECTOR('',#1998,2.596848404780E1); +#2000=CARTESIAN_POINT('',(-1.199632111960E1,1.325593244203E2, +-1.557072845143E2)); +#2001=LINE('',#2000,#1999); +#2002=DIRECTION('',(-1.985842840941E-14,-1.E0,0.E0)); +#2003=VECTOR('',#2002,6.717772216845E1); +#2004=CARTESIAN_POINT('',(-1.199632111960E1,1.323327095224E2, +-1.297397892668E2)); +#2005=LINE('',#2004,#2003); +#2006=DIRECTION('',(0.E0,-9.999619230642E-1,-8.726535497596E-3)); +#2007=VECTOR('',#2006,3.015613560720E1); +#2008=CARTESIAN_POINT('',(-1.199632111959E1,6.515498735396E1, +-1.230288139017E2)); +#2009=LINE('',#2008,#2007); +#2010=DIRECTION('',(-2.634824250744E-13,0.E0,1.E0)); +#2011=VECTOR('',#2010,1.283646687730E1); +#2012=CARTESIAN_POINT('',(-1.199632111959E1,3.5E1,-1.232919724895E2)); +#2013=LINE('',#2012,#2011); +#2014=CARTESIAN_POINT('',(-1.199632111959E1,-1.5E1,-1.104555056122E2)); +#2015=CARTESIAN_POINT('',(-1.199632111959E1,-1.323036162855E1, +-1.118407544057E2)); +#2016=CARTESIAN_POINT('',(-1.199632111960E1,-9.501829949944E0, +-1.144941800294E2)); +#2017=CARTESIAN_POINT('',(-1.199632111960E1,-3.679054594259E0, +-1.182389821731E2)); +#2018=CARTESIAN_POINT('',(-1.199632111961E1,6.459865436566E-1, +-1.208455737252E2)); +#2019=CARTESIAN_POINT('',(-1.199632111961E1,2.888543819998E0, +-1.221653931180E2)); +#2021=CARTESIAN_POINT('',(-1.199632111961E1,2.888543819998E0, +-1.221653931180E2)); +#2022=CARTESIAN_POINT('',(-1.199632111961E1,5.048693581407E0, +-1.234367129529E2)); +#2023=CARTESIAN_POINT('',(-1.199632111960E1,9.138490099122E0, +-1.263382720928E2)); +#2024=CARTESIAN_POINT('',(-1.199632111960E1,1.469259090327E1, +-1.319432282980E2)); +#2025=CARTESIAN_POINT('',(-1.199632111960E1,1.924961096775E1, +-1.384158121944E2)); +#2026=CARTESIAN_POINT('',(-1.199632111960E1,2.254860259189E1, +-1.455035271509E2)); +#2027=CARTESIAN_POINT('',(-1.199632111960E1,2.457893680657E1, +-1.530099815867E2)); +#2028=CARTESIAN_POINT('',(-1.199632111960E1,2.5E1,-1.579569444252E2)); +#2029=CARTESIAN_POINT('',(-1.199632111960E1,2.5E1,-1.604441561918E2)); +#2031=DIRECTION('',(-3.709467664853E-4,3.473300252100E-5,-9.999999305961E-1)); +#2032=VECTOR('',#2031,1.547515871E1); +#2033=CARTESIAN_POINT('',(-1.199058065951E1,1.329994625013E2, +-1.557052167791E2)); +#2034=LINE('',#2033,#2032); +#2035=DIRECTION('',(-1.348807660944E-13,0.E0,1.E0)); +#2036=VECTOR('',#2035,1.490824822861E1); +#2037=CARTESIAN_POINT('',(-1.699632111960E1,1.38E2,-1.724483496347E2)); +#2038=LINE('',#2037,#2036); +#2039=CARTESIAN_POINT('',(-8.106076420312E0,1.371201476872E2, +-1.196557747190E2)); +#2040=CARTESIAN_POINT('',(-8.158690645515E0,1.371180970975E2, +-1.207934220188E2)); +#2041=CARTESIAN_POINT('',(-8.270994229599E0,1.371105231260E2, +-1.230569461720E2)); +#2042=CARTESIAN_POINT('',(-8.454589381799E0,1.370879221854E2, +-1.264185340598E2)); +#2043=CARTESIAN_POINT('',(-8.587882227744E0,1.370637484843E2, +-1.286364928305E2)); +#2044=CARTESIAN_POINT('',(-8.656434216330E0,1.370492462361E2, +-1.297397892668E2)); +#2046=DIRECTION('',(5.850156355977E-6,-8.726535497430E-3,9.999619230471E-1)); +#2047=VECTOR('',#2046,3.427690187901E1); +#2048=CARTESIAN_POINT('',(-6.996321119606E0,1.375355087694E2, +-1.529564644746E2)); +#2049=LINE('',#2048,#2047); +#2050=CARTESIAN_POINT('',(-8.106076420312E0,1.371201476872E2, +-1.196557747190E2)); +#2051=CARTESIAN_POINT('',(-7.865950816485E0,1.350274752616E2, +-1.194737673595E2)); +#2052=CARTESIAN_POINT('',(-7.407833299829E0,1.310208240634E2, +-1.191145814305E2)); +#2053=CARTESIAN_POINT('',(-6.791861997639E0,1.255581904563E2, +-1.185980866543E2)); +#2054=CARTESIAN_POINT('',(-6.242230489232E0,1.206058199516E2, +-1.181102593733E2)); +#2055=CARTESIAN_POINT('',(-5.757125468498E0,1.161388884272E2, +-1.176566803915E2)); +#2056=CARTESIAN_POINT('',(-5.333776956173E0,1.121282103375E2, +-1.172423475555E2)); +#2057=CARTESIAN_POINT('',(-4.969156586313E0,1.085415224878E2, +-1.168710429656E2)); +#2058=CARTESIAN_POINT('',(-4.662215934258E0,1.053698778713E2, +-1.165479189607E2)); +#2059=CARTESIAN_POINT('',(-4.408537440224E0,1.025777869311E2, +-1.162737515587E2)); +#2060=CARTESIAN_POINT('',(-4.200060204200E0,1.000912444873E2, +-1.160440265063E2)); +#2061=CARTESIAN_POINT('',(-4.029860412811E0,9.784048095584E1, +-1.158541653442E2)); +#2062=CARTESIAN_POINT('',(-3.892621118620E0,9.576548574975E1, +-1.157004739694E2)); +#2063=CARTESIAN_POINT('',(-3.783697723540E0,9.379342739857E1, +-1.155794503369E2)); +#2064=CARTESIAN_POINT('',(-3.702103486805E0,9.188633894910E1, +-1.154914194524E2)); +#2065=CARTESIAN_POINT('',(-3.647674783782E0,8.999617524476E1, +-1.154375435649E2)); +#2066=CARTESIAN_POINT('',(-3.622404137156E0,8.810758171003E1, +-1.154211996253E2)); +#2067=CARTESIAN_POINT('',(-3.627537325211E0,8.622335946953E1, +-1.154443186439E2)); +#2068=CARTESIAN_POINT('',(-3.662786140838E0,8.433575665539E1, +-1.155065236002E2)); +#2069=CARTESIAN_POINT('',(-3.726573036185E0,8.244213824160E1, +-1.156053314499E2)); +#2070=CARTESIAN_POINT('',(-3.817210302475E0,8.052146490363E1, +-1.157379824415E2)); +#2071=CARTESIAN_POINT('',(-3.934723012594E0,7.853289951474E1, +-1.159038376436E2)); +#2072=CARTESIAN_POINT('',(-4.081097480579E0,7.642501639769E1, +-1.161045221988E2)); +#2073=CARTESIAN_POINT('',(-4.263021158970E0,7.410635589070E1, +-1.163473463229E2)); +#2074=CARTESIAN_POINT('',(-4.487703103724E0,7.150508058753E1, +-1.166389012979E2)); +#2075=CARTESIAN_POINT('',(-4.760749616641E0,6.857050589809E1, +-1.169831590408E2)); +#2076=CARTESIAN_POINT('',(-4.981479819324E0,6.633671846445E1, +-1.172513682186E2)); +#2077=CARTESIAN_POINT('',(-5.101024770992E0,6.515498838114E1, +-1.173941360337E2)); +#2079=CARTESIAN_POINT('',(-5.101024770992E0,6.515498838114E1, +-1.173941360337E2)); +#2080=CARTESIAN_POINT('',(-5.196040429328E0,6.515498838114E1, +-1.186254361904E2)); +#2081=CARTESIAN_POINT('',(-5.404530755864E0,6.515498687461E1, +-1.211812083319E2)); +#2082=CARTESIAN_POINT('',(-5.769571883708E0,6.515498749092E1, +-1.252847971247E2)); +#2083=CARTESIAN_POINT('',(-6.048760487485E0,6.515498735396E1,-1.282223417E2)); +#2084=CARTESIAN_POINT('',(-6.196794757926E0,6.515498735396E1, +-1.297397892668E2)); +#2086=CARTESIAN_POINT('',(-6.196794757926E0,6.515498735396E1, +-1.297397892668E2)); +#2087=CARTESIAN_POINT('',(-6.109913672373E0,6.639936272525E1, +-1.297397892668E2)); +#2088=CARTESIAN_POINT('',(-5.948353756439E0,6.885267387989E1, +-1.297397892668E2)); +#2089=CARTESIAN_POINT('',(-5.745970507500E0,7.240249926324E1, +-1.297397892668E2)); +#2090=CARTESIAN_POINT('',(-5.581529499307E0,7.589421278595E1, +-1.297397892668E2)); +#2091=CARTESIAN_POINT('',(-5.456440889025E0,7.936873751888E1, +-1.297397892668E2)); +#2092=CARTESIAN_POINT('',(-5.373231242874E0,8.287736312857E1, +-1.297397892668E2)); +#2093=CARTESIAN_POINT('',(-5.336391191386E0,8.640428582840E1, +-1.297397892668E2)); +#2094=CARTESIAN_POINT('',(-5.348002321145E0,8.994107564589E1, +-1.297397892668E2)); +#2095=CARTESIAN_POINT('',(-5.407391199139E0,9.345960640226E1, +-1.297397892668E2)); +#2096=CARTESIAN_POINT('',(-5.511155822487E0,9.695079260717E1, +-1.297397892668E2)); +#2097=CARTESIAN_POINT('',(-5.655543430418E0,1.004319289534E2, +-1.297397892668E2)); +#2098=CARTESIAN_POINT('',(-5.837900998079E0,1.039374943009E2, +-1.297397892668E2)); +#2099=CARTESIAN_POINT('',(-6.058083044800E0,1.075249398247E2, +-1.297397892668E2)); +#2100=CARTESIAN_POINT('',(-6.319428658858E0,1.112757315192E2, +-1.297397892668E2)); +#2101=CARTESIAN_POINT('',(-6.629176689652E0,1.152946380735E2, +-1.297397892668E2)); +#2102=CARTESIAN_POINT('',(-7.000239293598E0,1.197274791737E2, +-1.297397892668E2)); +#2103=CARTESIAN_POINT('',(-7.449425305850E0,1.247337931493E2, +-1.297397892668E2)); +#2104=CARTESIAN_POINT('',(-7.989269622813E0,1.304116622363E2, +-1.297397892668E2)); +#2105=CARTESIAN_POINT('',(-8.422183428658E0,1.347503879811E2, +-1.297397892668E2)); +#2106=CARTESIAN_POINT('',(-8.656434216330E0,1.370492462361E2, +-1.297397892668E2)); +#2108=CARTESIAN_POINT('',(-1.097516337784E1,6.515498706311E1, +-1.223971672266E2)); +#2109=CARTESIAN_POINT('',(-1.025410794479E1,6.515498706311E1, +-1.219306329830E2)); +#2110=CARTESIAN_POINT('',(-8.857638600365E0,6.515498762665E1, +-1.209376015258E2)); +#2111=CARTESIAN_POINT('',(-6.890100993255E0,6.515498683583E1, +-1.192620365839E2)); +#2112=CARTESIAN_POINT('',(-5.680670616786E0,6.515498838114E1, +-1.180363797831E2)); +#2113=CARTESIAN_POINT('',(-5.101024770992E0,6.515498838114E1, +-1.173941360337E2)); +#2115=CARTESIAN_POINT('',(-8.106076420312E0,1.371201476872E2, +-1.196557747190E2)); +#2116=CARTESIAN_POINT('',(-7.986439767652E0,1.371465126084E2, +-1.195557651358E2)); +#2117=CARTESIAN_POINT('',(-7.744117397599E0,1.371905424433E2, +-1.193508919681E2)); +#2118=CARTESIAN_POINT('',(-7.373044048170E0,1.372298307624E2, +-1.190255434991E2)); +#2119=CARTESIAN_POINT('',(-7.122559606232E0,1.372374081981E2, +-1.187975224054E2)); +#2120=CARTESIAN_POINT('',(-6.996120594370E0,1.372363901684E2, +-1.186808677556E2)); +#2122=DIRECTION('',(-8.360658836740E-13,-9.999619251061E-1,-8.726301513420E-3)); +#2123=VECTOR('',#2122,7.063649006126E1); +#2124=CARTESIAN_POINT('',(2.499958914064E0,1.370471842462E2,-9.700001652925E1)); +#2125=LINE('',#2124,#2123); +#2126=CARTESIAN_POINT('',(1.776402741359E0,6.184133012924E1,-1.041484006631E2)); +#2127=CARTESIAN_POINT('',(1.782272596794E0,5.885926668174E1,-1.041484006631E2)); +#2128=CARTESIAN_POINT('',(1.814022615870E0,5.289500033832E1,-1.041483264134E2)); +#2129=CARTESIAN_POINT('',(1.789796250442E0,4.394786339850E1,-1.041483255576E2)); +#2130=CARTESIAN_POINT('',(1.822649872508E0,3.798272203887E1,-1.041484020895E2)); +#2131=CARTESIAN_POINT('',(1.828298986212E0,3.500000049967E1,-1.041484020895E2)); +#2133=DIRECTION('',(-2.298956637291E-3,9.999711877966E-1,7.234526596647E-3)); +#2134=VECTOR('',#2133,3.015585563589E1); +#2135=CARTESIAN_POINT('',(-1.090583637337E1,3.500000028387E1, +-1.226153305663E2)); +#2136=LINE('',#2135,#2134); +#2137=DIRECTION('',(-1.191918374396E-12,0.E0,-1.E0)); +#2138=VECTOR('',#2137,6.710975365133E0); +#2139=CARTESIAN_POINT('',(-1.199632111959E1,6.515498735396E1, +-1.230288139017E2)); +#2140=LINE('',#2139,#2138); +#2141=CARTESIAN_POINT('',(-1.097516337784E1,6.515498706311E1, +-1.223971672266E2)); +#2142=CARTESIAN_POINT('',(-1.108719133313E1,6.515498706311E1, +-1.224696493751E2)); +#2143=CARTESIAN_POINT('',(-1.131216462408E1,6.515498748969E1, +-1.226131415992E2)); +#2144=CARTESIAN_POINT('',(-1.165261690407E1,6.515498731518E1, +-1.228236742994E2)); +#2145=CARTESIAN_POINT('',(-1.188143641260E1,6.515498735396E1, +-1.229609505889E2)); +#2146=CARTESIAN_POINT('',(-1.199632111959E1,6.515498735396E1, +-1.230288139017E2)); +#2148=CARTESIAN_POINT('',(-1.199632111960E1,1.323327095224E2, +-1.297397892668E2)); +#2149=CARTESIAN_POINT('',(-1.199632111959E1,1.335129839784E2, +-1.297397892668E2)); +#2150=CARTESIAN_POINT('',(-1.127058434522E1,1.353596091054E2, +-1.297397892668E2)); +#2151=CARTESIAN_POINT('',(-9.769748710216E0,1.366573551426E2, +-1.297397892668E2)); +#2152=CARTESIAN_POINT('',(-8.656434216318E0,1.370492462361E2, +-1.297397892668E2)); +#2154=DIRECTION('',(-1.E0,0.E0,-1.470208478656E-14)); +#2155=VECTOR('',#2154,5.799526361674E0); +#2156=CARTESIAN_POINT('',(-6.196794757926E0,6.515498735396E1, +-1.297397892668E2)); +#2157=LINE('',#2156,#2155); +#2158=CARTESIAN_POINT('',(-2.699999999992E1,3.5E1,-9.8E1)); +#2159=DIRECTION('',(0.E0,1.E0,0.E0)); +#2160=DIRECTION('',(9.991580939863E-1,0.E0,-4.102564102564E-2)); +#2161=AXIS2_PLACEMENT_3D('',#2158,#2159,#2160); +#2163=CARTESIAN_POINT('',(-1.199632111959E1,3.5E1,-1.232919724895E2)); +#2164=CARTESIAN_POINT('',(-1.187344912711E1,3.5E1,-1.232193910234E2)); +#2165=CARTESIAN_POINT('',(-1.162874663815E1,3.500000003785E1, +-1.230724282976E2)); +#2166=CARTESIAN_POINT('',(-1.126515238375E1,3.499999986753E1, +-1.228468778819E2)); +#2167=CARTESIAN_POINT('',(-1.102439569465E1,3.500000028387E1, +-1.226925152907E2)); +#2168=CARTESIAN_POINT('',(-1.090583637337E1,3.500000028387E1, +-1.226153305663E2)); +#2170=CARTESIAN_POINT('',(-1.090583637337E1,3.500000028387E1, +-1.226153305663E2)); +#2171=CARTESIAN_POINT('',(-9.277942362288E0,3.500000028387E1, +-1.215555106740E2)); +#2172=CARTESIAN_POINT('',(-6.299105636431E0,3.499999985036E1, +-1.191671031460E2)); +#2173=CARTESIAN_POINT('',(-2.558827694344E0,3.500000009794E1, +-1.147466132535E2)); +#2174=CARTESIAN_POINT('',(2.432793048926E-1,3.499999975787E1, +-1.096794748914E2)); +#2175=CARTESIAN_POINT('',(1.416577742088E0,3.500000049967E1,-1.060455188753E2)); +#2176=CARTESIAN_POINT('',(1.828298986212E0,3.500000049967E1,-1.041484020895E2)); +#2178=DIRECTION('',(-1.E0,-1.818317511651E-14,2.111594529659E-14)); +#2179=VECTOR('',#2178,1.211384957106E1); +#2180=CARTESIAN_POINT('',(4.613849571136E0,3.E1,-9.38E1)); +#2181=LINE('',#2180,#2179); +#2182=DIRECTION('',(1.E0,2.372067009663E-14,-2.741055211166E-14)); +#2183=VECTOR('',#2182,1.347956148749E1); +#2184=CARTESIAN_POINT('',(-7.516417167187E0,3.5E1,-9.88E1)); +#2185=LINE('',#2184,#2183); +#2186=DIRECTION('',(-3.465884911087E-13,-1.E0,-6.581094513560E-13)); +#2187=VECTOR('',#2186,1.347431392151E1); +#2188=CARTESIAN_POINT('',(8.583286718484E0,6.184132964200E1,-1.041483448332E2)); +#2189=LINE('',#2188,#2187); +#2190=CARTESIAN_POINT('',(8.583286718479E0,4.836701572049E1,-1.041483448332E2)); +#2191=CARTESIAN_POINT('',(8.362644681501E0,4.688248636809E1,-1.041483448332E2)); +#2192=CARTESIAN_POINT('',(7.924073856143E0,4.391303279418E1,-1.041483448332E2)); +#2193=CARTESIAN_POINT('',(7.276618962967E0,3.945731947134E1,-1.041483448332E2)); +#2194=CARTESIAN_POINT('',(6.851160984407E0,3.648595848586E1,-1.041483448332E2)); +#2195=CARTESIAN_POINT('',(6.640358504370E0,3.5E1,-1.041483448332E2)); +#2197=DIRECTION('',(-9.999999999292E-1,1.038378917585E-7,-1.189850800518E-5)); +#2198=VECTOR('',#2197,4.812059518498E0); +#2199=CARTESIAN_POINT('',(6.640358504370E0,3.5E1,-1.041483448332E2)); +#2200=LINE('',#2199,#2198); +#2201=DIRECTION('',(-3.958108246984E-6,-9.999999782276E-1,-2.086361612883E-4)); +#2202=VECTOR('',#2201,4.531031284458E1); +#2203=CARTESIAN_POINT('',(2.500180929700E0,1.365550557037E2,-4.058909221191E1)); +#2204=LINE('',#2203,#2202); +#2205=CARTESIAN_POINT('',(2.500000000076E0,-7.078058083514E1, +-3.807070152652E0)); +#2206=DIRECTION('',(-1.E0,0.E0,0.E0)); +#2207=DIRECTION('',(0.E0,9.751730770557E-1,-2.214440556566E-1)); +#2208=AXIS2_PLACEMENT_3D('',#2205,#2206,#2207); +#2210=CARTESIAN_POINT('',(2.500000000076E0,-8.000179578406E1, +1.429144561350E-3)); +#2211=DIRECTION('',(-1.E0,0.E0,0.E0)); +#2212=DIRECTION('',(0.E0,8.460880630010E-1,-5.330431405122E-1)); +#2213=AXIS2_PLACEMENT_3D('',#2210,#2211,#2212); +#2215=DIRECTION('',(3.935535371987E-6,-8.723661632034E-3,9.999619481321E-1)); +#2216=VECTOR('',#2215,5.641307094006E1); +#2217=CARTESIAN_POINT('',(2.499958914064E0,1.370471842462E2,-9.700001652925E1)); +#2218=LINE('',#2217,#2216); +#2219=CARTESIAN_POINT('',(6.495212666513E0,6.191010253814E1,-1.277948160008E2)); +#2220=CARTESIAN_POINT('',(8.383302724407E0,6.375948680053E1,-1.257411598003E2)); +#2221=CARTESIAN_POINT('',(1.177892309383E1,6.760532886897E1,-1.212876183527E2)); +#2222=CARTESIAN_POINT('',(1.563737398377E1,7.356636354898E1,-1.136752197337E2)); +#2223=CARTESIAN_POINT('',(1.804499505298E1,7.954229283378E1,-1.051233900348E2)); +#2224=CARTESIAN_POINT('',(1.850000000008E1,8.292518068591E1,-9.967450013005E1)); +#2225=CARTESIAN_POINT('',(1.850000000008E1,8.450222622976E1,-9.7E1)); +#2227=DIRECTION('',(0.E0,1.E0,-4.958456194124E-14)); +#2228=VECTOR('',#2227,3.754438669636E1); +#2229=CARTESIAN_POINT('',(1.850000000008E1,8.450222622976E1,-9.7E1)); +#2230=LINE('',#2229,#2228); +#2231=CARTESIAN_POINT('',(1.850000000008E1,1.220466129262E2,-9.7E1)); +#2232=CARTESIAN_POINT('',(1.850000000008E1,1.220982921441E2,-1.029218518227E2)); +#2233=CARTESIAN_POINT('',(1.628024597795E1,1.221940873773E2,-1.138988982796E2)); +#2234=CARTESIAN_POINT('',(1.047460261534E1,1.222776646765E2,-1.234759081819E2)); +#2235=CARTESIAN_POINT('',(6.461851306825E0,1.223156715455E2,-1.278310639960E2)); +#2237=CARTESIAN_POINT('',(1.850000000008E1,-8.000179578406E1, +1.429144561350E-3)); +#2238=DIRECTION('',(1.E0,0.E0,0.E0)); +#2239=DIRECTION('',(0.E0,8.613974364460E-1,-5.079315470457E-1)); +#2240=AXIS2_PLACEMENT_3D('',#2237,#2238,#2239); +#2242=DIRECTION('',(0.E0,1.E0,6.651860593611E-14)); +#2243=VECTOR('',#2242,1.837280695090E1); +#2244=CARTESIAN_POINT('',(1.850000000008E1,1.032950599131E2,-5.36E1)); +#2245=LINE('',#2244,#2243); +#2246=DIRECTION('',(0.E0,8.726535498229E-3,-9.999619230642E-1)); +#2247=VECTOR('',#2246,4.340165260194E1); +#2248=CARTESIAN_POINT('',(1.850000000008E1,1.216678668640E2,-5.36E1)); +#2249=LINE('',#2248,#2247); +#2250=CARTESIAN_POINT('',(6.E1,1.4519E2,-5.36E1)); +#2251=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2252=DIRECTION('',(6.578947368421E-1,-7.531098958555E-1,0.E0)); +#2253=AXIS2_PLACEMENT_3D('',#2250,#2251,#2252); +#2255=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2256=VECTOR('',#2255,4.84E1); +#2257=CARTESIAN_POINT('',(8.5E1,1.165718239575E2,-5.36E1)); +#2258=LINE('',#2257,#2256); +#2259=CARTESIAN_POINT('',(2.447537320068E1,1.316992294227E2,-1.019999999997E2)); +#2260=CARTESIAN_POINT('',(2.489763397695E1,1.305873095066E2,-8.587451153232E1)); +#2261=CARTESIAN_POINT('',(2.532013693348E1,1.296252699104E2,-6.973977457420E1)); +#2262=CARTESIAN_POINT('',(2.574277180462E1,1.287448695241E2,-5.360000000021E1)); +#2264=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2265=VECTOR('',#2264,1.5E1); +#2266=CARTESIAN_POINT('',(6.E1,1.3519E2,-8.7E1)); +#2267=LINE('',#2266,#2265); +#2268=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2269=VECTOR('',#2268,1.5E1); +#2270=CARTESIAN_POINT('',(6.E1,1.5519E2,-8.7E1)); +#2271=LINE('',#2270,#2269); +#2272=CARTESIAN_POINT('',(6.E1,1.4519E2,-8.7E1)); +#2273=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2274=DIRECTION('',(1.E0,0.E0,0.E0)); +#2275=AXIS2_PLACEMENT_3D('',#2272,#2273,#2274); +#2277=CARTESIAN_POINT('',(6.E1,1.4519E2,-8.7E1)); +#2278=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2279=DIRECTION('',(0.E0,-1.E0,0.E0)); +#2280=AXIS2_PLACEMENT_3D('',#2277,#2278,#2279); +#2282=CARTESIAN_POINT('',(6.E1,1.4519E2,-8.7E1)); +#2283=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2284=DIRECTION('',(-1.E0,0.E0,0.E0)); +#2285=AXIS2_PLACEMENT_3D('',#2282,#2283,#2284); +#2287=CARTESIAN_POINT('',(6.E1,1.4519E2,-8.7E1)); +#2288=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2289=DIRECTION('',(0.E0,1.E0,0.E0)); +#2290=AXIS2_PLACEMENT_3D('',#2287,#2288,#2289); +#2292=CARTESIAN_POINT('',(6.E1,1.4519E2,-8.7E1)); +#2293=DIRECTION('',(0.E0,0.E0,1.E0)); +#2294=DIRECTION('',(0.E0,-1.E0,0.E0)); +#2295=AXIS2_PLACEMENT_3D('',#2292,#2293,#2294); +#2297=CARTESIAN_POINT('',(6.E1,1.4519E2,-8.7E1)); +#2298=DIRECTION('',(0.E0,0.E0,1.E0)); +#2299=DIRECTION('',(0.E0,1.E0,0.E0)); +#2300=AXIS2_PLACEMENT_3D('',#2297,#2298,#2299); +#2302=DIRECTION('',(0.E0,0.E0,1.E0)); +#2303=VECTOR('',#2302,1.5E1); +#2304=CARTESIAN_POINT('',(3.508894772309E1,1.472970060410E2,-6.86E1)); +#2305=LINE('',#2304,#2303); +#2306=CARTESIAN_POINT('',(6.E1,1.4519E2,-5.36E1)); +#2307=DIRECTION('',(0.E0,0.E0,1.E0)); +#2308=DIRECTION('',(-9.964420910766E-1,8.428024163998E-2,0.E0)); +#2309=AXIS2_PLACEMENT_3D('',#2306,#2307,#2308); +#2311=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2312=VECTOR('',#2311,3.34E1); +#2313=CARTESIAN_POINT('',(3.5E1,1.4519E2,-5.36E1)); +#2314=LINE('',#2313,#2312); +#2315=DIRECTION('',(6.243617889368E-8,-1.989519660128E-13,1.E0)); +#2316=VECTOR('',#2315,5.E0); +#2317=CARTESIAN_POINT('',(5.999999937564E1,1.2019E2,-5.36E1)); +#2318=LINE('',#2317,#2316); +#2319=CARTESIAN_POINT('',(6.E1,1.4519E2,-4.86E1)); +#2320=DIRECTION('',(0.E0,0.E0,1.E0)); +#2321=DIRECTION('',(0.E0,1.E0,0.E0)); +#2322=AXIS2_PLACEMENT_3D('',#2319,#2320,#2321); +#2324=DIRECTION('',(3.061185594030E-8,-1.961161351382E-1,9.805806756909E-1)); +#2325=VECTOR('',#2324,1.019803902719E1); +#2326=CARTESIAN_POINT('',(5.999999968782E1,1.2019E2,-4.86E1)); +#2327=LINE('',#2326,#2325); +#2328=CARTESIAN_POINT('',(6.E1,1.4519E2,-4.86E1)); +#2329=DIRECTION('',(0.E0,0.E0,1.E0)); +#2330=DIRECTION('',(-2.497447155747E-8,-1.E0,0.E0)); +#2331=AXIS2_PLACEMENT_3D('',#2328,#2329,#2330); +#2333=DIRECTION('',(3.158147620978E-8,1.961161351382E-1,9.805806756909E-1)); +#2334=VECTOR('',#2333,1.019803902719E1); +#2335=CARTESIAN_POINT('',(6.000000073198E1,1.7019E2,-4.86E1)); +#2336=LINE('',#2335,#2334); +#2337=CARTESIAN_POINT('',(6.E1,1.4519E2,-5.36E1)); +#2338=DIRECTION('',(0.E0,0.E0,1.E0)); +#2339=DIRECTION('',(-2.497447155747E-8,-1.E0,0.E0)); +#2340=AXIS2_PLACEMENT_3D('',#2337,#2338,#2339); +#2342=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2343=VECTOR('',#2342,3.34E1); +#2344=CARTESIAN_POINT('',(8.5E1,1.4519E2,-5.36E1)); +#2345=LINE('',#2344,#2343); +#2346=CARTESIAN_POINT('',(6.E1,1.4519E2,-6.86E1)); +#2347=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2348=DIRECTION('',(-9.964420910766E-1,8.428024163998E-2,0.E0)); +#2349=AXIS2_PLACEMENT_3D('',#2346,#2347,#2348); +#2351=DIRECTION('',(0.E0,0.E0,1.E0)); +#2352=VECTOR('',#2351,1.5E1); +#2353=CARTESIAN_POINT('',(4.764942639721E1,1.669262216515E2,-6.86E1)); +#2354=LINE('',#2353,#2352); +#2355=CARTESIAN_POINT('',(6.E1,1.4519E2,-5.36E1)); +#2356=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2357=DIRECTION('',(-4.940229441115E-1,8.694488660591E-1,0.E0)); +#2358=AXIS2_PLACEMENT_3D('',#2355,#2356,#2357); +#2360=DIRECTION('',(1.463950610514E-7,1.875832822407E-13,1.E0)); +#2361=VECTOR('',#2360,5.E0); +#2362=CARTESIAN_POINT('',(6.E1,1.7019E2,-5.36E1)); +#2363=LINE('',#2362,#2361); +#2364=CARTESIAN_POINT('',(1.979999939715E0,-1.711645394054E2, +-9.380003612953E1)); +#2365=CARTESIAN_POINT('',(1.905963714131E0,-1.677229820148E2, +-9.380003612953E1)); +#2366=CARTESIAN_POINT('',(1.767393967728E0,-1.609508503771E2, +-9.379998323223E1)); +#2367=CARTESIAN_POINT('',(1.589116715223E0,-1.510382624519E2, +-9.380000449291E1)); +#2368=CARTESIAN_POINT('',(1.438498029093E0,-1.414905134396E2, +-9.379999879613E1)); +#2369=CARTESIAN_POINT('',(1.314946366487E0,-1.323978926257E2, +-9.380000032258E1)); +#2370=CARTESIAN_POINT('',(1.215737785153E0,-1.237810044477E2, +-9.379999991357E1)); +#2371=CARTESIAN_POINT('',(1.137810675482E0,-1.156055090017E2, +-9.380000002316E1)); +#2372=CARTESIAN_POINT('',(1.077347688405E0,-1.076900589128E2, +-9.379999999379E1)); +#2373=CARTESIAN_POINT('',(1.031425756592E0,-9.970059678689E1, +-9.380000000166E1)); +#2374=CARTESIAN_POINT('',(1.000890697454E0,-9.165200739247E1, +-9.379999999956E1)); +#2375=CARTESIAN_POINT('',(9.863661101515E-1,-8.383001393981E1, +-9.380000000011E1)); +#2376=CARTESIAN_POINT('',(9.863659589408E-1,-7.617363877272E1, +-9.380000000001E1)); +#2377=CARTESIAN_POINT('',(1.000891009141E0,-6.835143009569E1, +-9.379999999984E1)); +#2378=CARTESIAN_POINT('',(1.031426837117E0,-6.030278252869E1, +-9.380000000064E1)); +#2379=CARTESIAN_POINT('',(1.077347877484E0,-5.231352468203E1, +-9.379999999759E1)); +#2380=CARTESIAN_POINT('',(1.137809784577E0,-4.439818536037E1, +-9.380000000899E1)); +#2381=CARTESIAN_POINT('',(1.215737659611E0,-3.622259097167E1, +-9.379999996647E1)); +#2382=CARTESIAN_POINT('',(1.314948132233E0,-2.760554541012E1, +-9.380000012515E1)); +#2383=CARTESIAN_POINT('',(1.438501028016E0,-1.851289851948E1, +-9.379999953293E1)); +#2384=CARTESIAN_POINT('',(1.589113575513E0,-8.965478716315E0, +-9.380000174311E1)); +#2385=CARTESIAN_POINT('',(1.767398667510E0,9.473902584108E-1, +-9.379999349462E1)); +#2386=CARTESIAN_POINT('',(1.905942318519E0,7.718530899674E0,-9.380001401714E1)); +#2387=CARTESIAN_POINT('',(1.980031151679E0,1.116253373997E1,-9.380001401714E1)); +#2389=CARTESIAN_POINT('',(1.979284016401E0,-8.000179578406E1, +1.429144620701E-3)); +#2390=DIRECTION('',(-1.E0,4.766306091058E-12,-6.624082215186E-11)); +#2391=DIRECTION('',(5.082549400036E-11,6.969329344421E-1,-7.171363084449E-1)); +#2392=AXIS2_PLACEMENT_3D('',#2389,#2390,#2391); +#2394=CARTESIAN_POINT('',(1.979284016401E0,-8.000179578406E1, +1.429144620701E-3)); +#2395=DIRECTION('',(-1.E0,4.766306091058E-12,-6.624082215186E-11)); +#2396=DIRECTION('',(6.624082186606E-11,0.E0,-1.E0)); +#2397=AXIS2_PLACEMENT_3D('',#2394,#2395,#2396); +#2399=DIRECTION('',(9.999999999995E-1,9.050474939203E-7,-4.621513506780E-7)); +#2400=VECTOR('',#2399,5.240384235412E1); +#2401=CARTESIAN_POINT('',(-4.835345227060E1,-3.000004742797E1, +-1.324999757815E2)); +#2402=LINE('',#2401,#2400); +#2403=CARTESIAN_POINT('',(-4.857432525506E1,-7.239165821842E0, +-1.431975920643E2)); +#2404=CARTESIAN_POINT('',(-4.859142116193E1,-5.563660312210E0, +-1.439850796538E2)); +#2405=CARTESIAN_POINT('',(-4.862930726737E1,-2.326090422574E0, +-1.458865087265E2)); +#2406=CARTESIAN_POINT('',(-4.869486979395E1,1.991010130856E0, +-1.496709357654E2)); +#2407=CARTESIAN_POINT('',(-4.874267581074E1,4.377511244614E0, +-1.527536993042E2)); +#2408=CARTESIAN_POINT('',(-4.876712470387E1,5.417504448760E0, +-1.544124797183E2)); +#2410=CARTESIAN_POINT('',(-4.876789753462E1,-1.710451932055E2, +-1.325000166150E2)); +#2411=CARTESIAN_POINT('',(-4.871164889362E1,-1.638994700114E2, +-1.325000166150E2)); +#2412=CARTESIAN_POINT('',(-4.860523676412E1,-1.496392282490E2, +-1.324999926323E2)); +#2413=CARTESIAN_POINT('',(-4.847392914107E1,-1.283329736853E2, +-1.325000008645E2)); +#2414=CARTESIAN_POINT('',(-4.837494231396E1,-1.071387173804E2, +-1.325000039099E2)); +#2415=CARTESIAN_POINT('',(-4.831106844800E1,-8.600300052762E1, +-1.324999834960E2)); +#2416=CARTESIAN_POINT('',(-4.830120666032E1,-7.199020171387E1, +-1.325000359027E2)); +#2417=CARTESIAN_POINT('',(-4.830120666032E1,-6.499999964165E1, +-1.325000359027E2)); +#2419=CARTESIAN_POINT('',(-4.830120666032E1,-6.499999964165E1, +-1.325000359027E2)); +#2420=CARTESIAN_POINT('',(-4.830120666032E1,-6.110031456322E1, +-1.325000359027E2)); +#2421=CARTESIAN_POINT('',(-4.832570189247E1,-5.330815473913E1, +-1.324999800163E2)); +#2422=CARTESIAN_POINT('',(-4.830184020832E1,-4.164084081567E1, +-1.325000160890E2)); +#2423=CARTESIAN_POINT('',(-4.834097613391E1,-3.387789421876E1, +-1.324999757815E2)); +#2424=CARTESIAN_POINT('',(-4.835345227060E1,-3.000004742797E1, +-1.324999757815E2)); +#2426=CARTESIAN_POINT('',(-4.835345227060E1,-3.000004742797E1, +-1.324999757815E2)); +#2427=CARTESIAN_POINT('',(-4.837630502917E1,-2.744431736954E1, +-1.337011689090E2)); +#2428=CARTESIAN_POINT('',(-4.842629955820E1,-2.235062115090E1, +-1.360952089586E2)); +#2429=CARTESIAN_POINT('',(-4.849815266685E1,-1.476370113557E1, +-1.396610602090E2)); +#2430=CARTESIAN_POINT('',(-4.854879389598E1,-9.741398263206E0, +-1.420215428169E2)); +#2431=CARTESIAN_POINT('',(-4.857432525506E1,-7.239165821842E0, +-1.431975920643E2)); +#2433=CARTESIAN_POINT('',(-4.876789753462E1,-1.710451932055E2, +-1.325000166150E2)); +#2434=CARTESIAN_POINT('',(-4.877662488193E1,-1.721538985965E2, +-1.325000166150E2)); +#2435=CARTESIAN_POINT('',(-4.888463125267E1,-1.742955830782E2, +-1.324999922463E2)); +#2436=CARTESIAN_POINT('',(-4.929577499944E1,-1.773025981173E2, +-1.325000022153E2)); +#2437=CARTESIAN_POINT('',(-4.970826166378E1,-1.791273264619E2,-1.325E2)); +#2438=CARTESIAN_POINT('',(-4.994512587310E1,-1.8E2,-1.325E2)); +#2440=DIRECTION('',(-4.027792772935E-12,1.E0,-1.764936201758E-12)); +#2441=VECTOR('',#2440,1.159454419345E0); +#2442=CARTESIAN_POINT('',(8.583286718484E0,-1.8E2,-1.325E2)); +#2443=LINE('',#2442,#2441); +#2444=DIRECTION('',(0.E0,-3.600261551935E-14,1.E0)); +#2445=VECTOR('',#2444,3.878097342728E1); +#2446=CARTESIAN_POINT('',(9.5E1,1.E1,-1.9E2)); +#2447=LINE('',#2446,#2445); +#2448=DIRECTION('',(0.E0,2.314228041652E-13,-1.E0)); +#2449=VECTOR('',#2448,3.596883280131E1); +#2450=CARTESIAN_POINT('',(1.E2,1.499999999999E1,-1.540311671987E2)); +#2451=LINE('',#2450,#2449); +#2452=CARTESIAN_POINT('',(1.E2,1.499999999999E1,-1.540311671987E2)); +#2453=CARTESIAN_POINT('',(1.E2,1.444695857409E1,-1.537224930891E2)); +#2454=CARTESIAN_POINT('',(9.981591856770E1,1.336355688223E1,-1.531157919010E2)); +#2455=CARTESIAN_POINT('',(9.905877710240E1,1.193335914194E1,-1.523101978055E2)); +#2456=CARTESIAN_POINT('',(9.787031941752E1,1.079860966256E1,-1.516689299553E2)); +#2457=CARTESIAN_POINT('',(9.641798729281E1,1.012498399421E1,-1.512837911351E2)); +#2458=CARTESIAN_POINT('',(9.545957660188E1,9.999999999999E0,-1.512190265727E2)); +#2459=CARTESIAN_POINT('',(9.5E1,9.999999999999E0,-1.512190265727E2)); +#2461=CARTESIAN_POINT('',(9.5E1,-8.000179578406E1,1.429144561350E-3)); +#2462=DIRECTION('',(1.E0,0.E0,0.E0)); +#2463=DIRECTION('',(0.E0,5.114510547882E-1,-8.593124103352E-1)); +#2464=AXIS2_PLACEMENT_3D('',#2461,#2462,#2463); +#2466=DIRECTION('',(0.E0,-1.E0,0.E0)); +#2467=VECTOR('',#2466,2.699999999925E2); +#2468=CARTESIAN_POINT('',(1.E2,2.849999999925E2,-1.9E2)); +#2469=LINE('',#2468,#2467); +#2470=CARTESIAN_POINT('',(1.E2,-8.000179578406E1,1.429144561350E-3)); +#2471=DIRECTION('',(1.E0,0.E0,0.E0)); +#2472=DIRECTION('',(0.E0,5.249488635107E-1,-8.511337678055E-1)); +#2473=AXIS2_PLACEMENT_3D('',#2470,#2471,#2472); +#2475=DIRECTION('',(0.E0,1.E0,0.E0)); +#2476=VECTOR('',#2475,1.933143550138E2); +#2477=CARTESIAN_POINT('',(9.5E1,9.168564498621E1,-3.86E1)); +#2478=LINE('',#2477,#2476); +#2479=DIRECTION('',(0.E0,-1.E0,2.994377338904E-14)); +#2480=VECTOR('',#2479,1.893592687100E2); +#2481=CARTESIAN_POINT('',(1.E2,2.849999999944E2,-4.36E1)); +#2482=LINE('',#2481,#2480); +#2483=CARTESIAN_POINT('',(1.E2,9.564073128438E1,-4.359999999999E1)); +#2484=CARTESIAN_POINT('',(1.E2,9.517421729048E1,-4.300351966197E1)); +#2485=CARTESIAN_POINT('',(9.978187012215E1,9.428328283953E1,-4.186899559162E1)); +#2486=CARTESIAN_POINT('',(9.902851545282E1,9.319950715288E1,-4.049906598409E1)); +#2487=CARTESIAN_POINT('',(9.781757596216E1,9.229241458359E1,-3.935895359676E1)); +#2488=CARTESIAN_POINT('',(9.634976147283E1,9.177267244440E1,-3.870866238425E1)); +#2489=CARTESIAN_POINT('',(9.543145117105E1,9.168564498621E1,-3.86E1)); +#2490=CARTESIAN_POINT('',(9.5E1,9.168564498621E1,-3.86E1)); +#2492=CARTESIAN_POINT('',(9.E1,2.85E2,-4.36E1)); +#2493=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2494=DIRECTION('',(0.E0,1.E0,0.E0)); +#2495=AXIS2_PLACEMENT_3D('',#2492,#2493,#2494); +#2497=CARTESIAN_POINT('',(9.5E1,2.85E2,-4.36E1)); +#2498=DIRECTION('',(0.E0,-1.E0,0.E0)); +#2499=DIRECTION('',(1.E0,0.E0,0.E0)); +#2500=AXIS2_PLACEMENT_3D('',#2497,#2498,#2499); +#2502=CARTESIAN_POINT('',(9.E1,2.9E2,-4.36E1)); +#2503=DIRECTION('',(-1.E0,0.E0,0.E0)); +#2504=DIRECTION('',(0.E0,4.648734375223E-9,1.E0)); +#2505=AXIS2_PLACEMENT_3D('',#2502,#2503,#2504); +#2507=DIRECTION('',(-3.958460760024E-12,0.E0,-1.E0)); +#2508=VECTOR('',#2507,1.464000000047E2); +#2509=CARTESIAN_POINT('',(8.999999999826E1,2.95E2,-4.359999999534E1)); +#2510=LINE('',#2509,#2508); +#2511=DIRECTION('',(0.E0,1.282626706727E-11,1.E0)); +#2512=VECTOR('',#2511,1.464E2); +#2513=CARTESIAN_POINT('',(1.E2,2.849999999925E2,-1.9E2)); +#2514=LINE('',#2513,#2512); +#2515=CARTESIAN_POINT('',(-5.463211195957E-1,2.95E2,-1.269E2)); +#2516=DIRECTION('',(0.E0,1.E0,0.E0)); +#2517=DIRECTION('',(1.E0,0.E0,-2.229038879401E-9)); +#2518=AXIS2_PLACEMENT_3D('',#2515,#2516,#2517); +#2520=CARTESIAN_POINT('',(-5.519223417048E1,2.95E2,-1.269E2)); +#2521=DIRECTION('',(0.E0,1.E0,0.E0)); +#2522=DIRECTION('',(-2.754953598583E-9,0.E0,-1.E0)); +#2523=AXIS2_PLACEMENT_3D('',#2520,#2521,#2522); +#2525=DIRECTION('',(1.E0,0.E0,0.E0)); +#2526=VECTOR('',#2525,1.799999999902E2); +#2527=CARTESIAN_POINT('',(-8.999999999251E1,2.95E2,-1.9E2)); +#2528=LINE('',#2527,#2526); +#2529=DIRECTION('',(3.537466437646E-12,0.E0,1.E0)); +#2530=VECTOR('',#2529,8.330000001358E1); +#2531=CARTESIAN_POINT('',(1.145367887922E1,2.95E2,-1.269000000089E2)); +#2532=LINE('',#2531,#2530); +#2533=DIRECTION('',(2.181528267355E-14,0.E0,-1.E0)); +#2534=VECTOR('',#2533,8.329999999998E1); +#2535=CARTESIAN_POINT('',(9.453678880401E0,2.93E2,-4.36E1)); +#2536=LINE('',#2535,#2534); +#2537=CARTESIAN_POINT('',(1.145367888040E1,2.9E2,-4.36E1)); +#2538=DIRECTION('',(1.E0,0.E0,0.E0)); +#2539=DIRECTION('',(0.E0,1.E0,0.E0)); +#2540=AXIS2_PLACEMENT_3D('',#2537,#2538,#2539); +#2542=CARTESIAN_POINT('',(1.145367888040E1,2.9E2,-4.06E1)); +#2543=DIRECTION('',(0.E0,-1.E0,0.E0)); +#2544=DIRECTION('',(0.E0,0.E0,1.E0)); +#2545=AXIS2_PLACEMENT_3D('',#2542,#2543,#2544); +#2547=CARTESIAN_POINT('',(1.145367888040E1,2.93E2,-4.36E1)); +#2548=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2549=DIRECTION('',(-1.E0,0.E0,0.E0)); +#2550=AXIS2_PLACEMENT_3D('',#2547,#2548,#2549); +#2552=DIRECTION('',(1.E0,0.E0,0.E0)); +#2553=VECTOR('',#2552,7.854632111875E1); +#2554=CARTESIAN_POINT('',(1.145367887951E1,2.95E2,-4.359999999534E1)); +#2555=LINE('',#2554,#2553); +#2556=DIRECTION('',(-1.E0,-4.932039828178E-11,0.E0)); +#2557=VECTOR('',#2556,7.854632107085E1); +#2558=CARTESIAN_POINT('',(8.999999995125E1,2.900000000155E2,-3.86E1)); +#2559=LINE('',#2558,#2557); +#2560=DIRECTION('',(-3.394115846557E-13,1.E0,0.E0)); +#2561=VECTOR('',#2560,3.292480687719E1); +#2562=CARTESIAN_POINT('',(9.453678880413E0,2.570751931228E2,-4.06E1)); +#2563=LINE('',#2562,#2561); +#2564=DIRECTION('',(4.572474773494E-13,-1.E0,0.E0)); +#2565=VECTOR('',#2564,3.184834053940E1); +#2566=CARTESIAN_POINT('',(1.145367888040E1,2.900000000116E2,-3.86E1)); +#2567=LINE('',#2566,#2565); +#2568=DIRECTION('',(0.E0,0.E0,1.E0)); +#2569=VECTOR('',#2568,2.720000000002E1); +#2570=CARTESIAN_POINT('',(9.453678880404E0,2.82E2,-1.541E2)); +#2571=LINE('',#2570,#2569); +#2572=CARTESIAN_POINT('',(9.453678880400E0,2.9E2,-4.36E1)); +#2573=DIRECTION('',(1.E0,0.E0,0.E0)); +#2574=DIRECTION('',(0.E0,1.E0,-4.736951571734E-14)); +#2575=AXIS2_PLACEMENT_3D('',#2572,#2573,#2574); +#2577=CARTESIAN_POINT('',(1.157824197223E1,1.460817453775E2,-4.058582198069E1)); +#2578=CARTESIAN_POINT('',(1.154028465641E1,1.460550140477E2,-4.203535339092E1)); +#2579=CARTESIAN_POINT('',(1.146553856270E1,1.460015491648E2,-4.490925975967E1)); +#2580=CARTESIAN_POINT('',(1.135140639606E1,1.459221441764E2,-4.925982709175E1)); +#2581=CARTESIAN_POINT('',(1.127570166892E1,1.458691610761E2,-5.215264381969E1)); +#2582=CARTESIAN_POINT('',(1.123780131350E1,1.458428199120E2,-5.36E1)); +#2584=DIRECTION('',(1.668409000698E-13,-7.520821572353E-13,1.E0)); +#2585=VECTOR('',#2584,1.3E1); +#2586=CARTESIAN_POINT('',(9.453678880410E0,2.570751931228E2,-5.36E1)); +#2587=LINE('',#2586,#2585); +#2588=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-4.06E1)); +#2589=DIRECTION('',(0.E0,0.E0,1.E0)); +#2590=DIRECTION('',(5.757905088801E-1,-8.175972663137E-1,0.E0)); +#2591=AXIS2_PLACEMENT_3D('',#2588,#2589,#2590); +#2593=CARTESIAN_POINT('',(9.453678880413E0,2.570751931228E2,-4.06E1)); +#2594=CARTESIAN_POINT('',(9.453678880413E0,2.570751931228E2,-4.034415802587E1)); +#2595=CARTESIAN_POINT('',(9.554982664322E0,2.571302827243E2,-3.983407495448E1)); +#2596=CARTESIAN_POINT('',(9.962230078832E0,2.573510372595E2,-3.919574463344E1)); +#2597=CARTESIAN_POINT('',(1.061080300245E1,2.577007969236E2,-3.872572211746E1)); +#2598=CARTESIAN_POINT('',(1.116331573845E1,2.579968446161E2,-3.86E1)); +#2599=CARTESIAN_POINT('',(1.145367888041E1,2.581516594722E2,-3.86E1)); +#2601=CARTESIAN_POINT('',(1.157824197223E1,1.460817453775E2,-4.058582198069E1)); +#2602=CARTESIAN_POINT('',(1.158151366470E1,1.460840493177E2,-4.033582733825E1)); +#2603=CARTESIAN_POINT('',(1.168359774296E1,1.460294598402E2,-3.981560419766E1)); +#2604=CARTESIAN_POINT('',(1.211482115792E1,1.458018262124E2,-3.916682807426E1)); +#2605=CARTESIAN_POINT('',(1.275951102382E1,1.454728161413E2,-3.871842605996E1)); +#2606=CARTESIAN_POINT('',(1.329837269195E1,1.451962993326E2,-3.86E1)); +#2607=CARTESIAN_POINT('',(1.357890387888E1,1.450534294969E2,-3.86E1)); +#2609=DIRECTION('',(5.920333932021E-13,-1.E0,0.E0)); +#2610=VECTOR('',#2609,1.049851689521E1); +#2611=CARTESIAN_POINT('',(1.357890387888E1,1.450534294969E2,-3.86E1)); +#2612=LINE('',#2611,#2610); +#2613=CARTESIAN_POINT('',(1.357890387889E1,1.345549126017E2,-3.86E1)); +#2614=CARTESIAN_POINT('',(1.335586282551E1,1.347779536551E2,-3.86E1)); +#2615=CARTESIAN_POINT('',(1.292960479364E1,1.352042742453E2,-3.867299555203E1)); +#2616=CARTESIAN_POINT('',(1.237074063997E1,1.357628230607E2,-3.896718273081E1)); +#2617=CARTESIAN_POINT('',(1.194444299505E1,1.361903594936E2,-3.939614813305E1)); +#2618=CARTESIAN_POINT('',(1.165648358989E1,1.364761001631E2,-3.994037568665E1)); +#2619=CARTESIAN_POINT('',(1.158221714902E1,1.365531460474E2,-4.035998649510E1)); +#2620=CARTESIAN_POINT('',(1.157856131818E1,1.365554310026E2,-4.056946047982E1)); +#2622=DIRECTION('',(3.352245877732E-5,-9.999985245282E-1,1.717503337973E-3)); +#2623=VECTOR('',#2622,9.526328430714E0); +#2624=CARTESIAN_POINT('',(1.157824197223E1,1.460817453775E2,-4.058582198069E1)); +#2625=LINE('',#2624,#2623); +#2626=DIRECTION('',(-2.617045171622E-2,8.715001682112E-3,-9.996195057134E-1)); +#2627=VECTOR('',#2626,8.293855634752E1); +#2628=CARTESIAN_POINT('',(1.157856131818E1,1.365554310026E2,-4.056946047982E1)); +#2629=LINE('',#2628,#2627); +#2630=DIRECTION('',(2.611935992617E-2,-2.471439896252E-2,9.993532796369E-1)); +#2631=VECTOR('',#2630,6.992176952343E1); +#2632=CARTESIAN_POINT('',(9.409513447820E0,1.484884070160E2,-1.234764979477E2)); +#2633=LINE('',#2632,#2631); +#2634=CARTESIAN_POINT('',(2.240959022005E1,1.485016472422E2,-1.238165699842E2)); +#2635=DIRECTION('',(-2.599859414311E-2,2.509251576925E-2,-9.993470061770E-1)); +#2636=DIRECTION('',(-9.996619141375E-1,-1.013882098581E-3,2.598132918091E-2)); +#2637=AXIS2_PLACEMENT_3D('',#2634,#2635,#2636); +#2639=CARTESIAN_POINT('',(1.123582531268E1,1.467603325079E2,-5.359994825649E1)); +#2640=CARTESIAN_POINT('',(1.123677765899E1,1.476866615356E2,-5.359994825649E1)); +#2641=CARTESIAN_POINT('',(1.143146987651E1,1.494932314211E2,-5.360002146276E1)); +#2642=CARTESIAN_POINT('',(1.228551517266E1,1.521175441038E2,-5.360000249559E1)); +#2643=CARTESIAN_POINT('',(1.367606925279E1,1.545019633592E2,-5.359996855489E1)); +#2644=CARTESIAN_POINT('',(1.489719050731E1,1.558471194035E2,-5.360007170820E1)); +#2645=CARTESIAN_POINT('',(1.558936053468E1,1.564625055242E2,-5.360007170820E1)); +#2647=CARTESIAN_POINT('',(1.558936053468E1,1.564625055242E2,-5.360007170820E1)); +#2648=CARTESIAN_POINT('',(1.649076049505E1,1.572655520754E2,-5.360007170820E1)); +#2649=CARTESIAN_POINT('',(1.820429992608E1,1.589788426753E2,-5.359996672011E1)); +#2650=CARTESIAN_POINT('',(2.048395310853E1,1.618216350455E2,-5.360000891732E1)); +#2651=CARTESIAN_POINT('',(2.255100433163E1,1.650728600494E2,-5.359999761061E1)); +#2652=CARTESIAN_POINT('',(2.439152000052E1,1.688177197824E2,-5.360000064024E1)); +#2653=CARTESIAN_POINT('',(2.601609989750E1,1.732057538735E2,-5.359999982845E1)); +#2654=CARTESIAN_POINT('',(2.739814671668E1,1.784198906540E2,-5.360000004598E1)); +#2655=CARTESIAN_POINT('',(2.843429683577E1,1.844833199751E2,-5.359999998762E1)); +#2656=CARTESIAN_POINT('',(2.907773943998E1,1.914254083087E2,-5.360000000354E1)); +#2657=CARTESIAN_POINT('',(2.923009902071E1,1.966915864477E2,-5.36E1)); +#2658=CARTESIAN_POINT('',(2.923009902060E1,1.994798492339E2,-5.36E1)); +#2660=CARTESIAN_POINT('',(2.923009902060E1,1.994798492339E2,-5.36E1)); +#2661=CARTESIAN_POINT('',(2.923009902061E1,2.019952683424E2,-5.36E1)); +#2662=CARTESIAN_POINT('',(2.910710063513E1,2.067756304647E2,-5.36E1)); +#2663=CARTESIAN_POINT('',(2.857964376815E1,2.131786357884E2,-5.36E1)); +#2664=CARTESIAN_POINT('',(2.772027828420E1,2.188624759101E2,-5.36E1)); +#2665=CARTESIAN_POINT('',(2.657346768150E1,2.238230125742E2,-5.36E1)); +#2666=CARTESIAN_POINT('',(2.518676118788E1,2.281353671523E2,-5.36E1)); +#2667=CARTESIAN_POINT('',(2.359407760402E1,2.318607100807E2,-5.36E1)); +#2668=CARTESIAN_POINT('',(2.181046103477E1,2.351183351112E2,-5.36E1)); +#2669=CARTESIAN_POINT('',(1.984984092911E1,2.379837517550E2,-5.359999999999E1)); +#2670=CARTESIAN_POINT('',(1.766771723730E1,2.405594972061E2,-5.360000000004E1)); +#2671=CARTESIAN_POINT('',(1.525225477221E1,2.428684058812E2,-5.359999999985E1)); +#2672=CARTESIAN_POINT('',(1.255905873976E1,2.449596835659E2,-5.360000000057E1)); +#2673=CARTESIAN_POINT('',(1.052704391381E1,2.462300573940E2,-5.359999999877E1)); +#2674=CARTESIAN_POINT('',(9.453678863567E0,2.468280368970E2,-5.359999999877E1)); +#2676=DIRECTION('',(1.643687485688E-9,1.E0,-1.198224304006E-10)); +#2677=VECTOR('',#2676,1.024715622585E1); +#2678=CARTESIAN_POINT('',(9.453678863567E0,2.468280368970E2,-5.359999999877E1)); +#2679=LINE('',#2678,#2677); +#2680=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-5.36E1)); +#2681=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2682=DIRECTION('',(5.440809431123E-1,8.390327331768E-1,0.E0)); +#2683=AXIS2_PLACEMENT_3D('',#2680,#2681,#2682); +#2685=DIRECTION('',(-2.153644810744E-3,9.999976793141E-1,5.639528641677E-5)); +#2686=VECTOR('',#2685,9.175147251209E-1); +#2687=CARTESIAN_POINT('',(1.123780131350E1,1.458428199120E2,-5.36E1)); +#2688=LINE('',#2687,#2686); +#2689=DIRECTION('',(-2.587478555025E-2,2.505040351822E-2,-9.993512759567E-1)); +#2690=VECTOR('',#2689,6.979579005569E1); +#2691=CARTESIAN_POINT('',(1.558936053468E1,1.564625055242E2,-5.360007170820E1)); +#2692=LINE('',#2691,#2690); +#2693=CARTESIAN_POINT('',(1.378340943468E1,1.582109182289E2,-1.233505835568E2)); +#2694=CARTESIAN_POINT('',(1.370389100339E1,1.582615247897E2,-1.258764246431E2)); +#2695=CARTESIAN_POINT('',(1.331058903483E1,1.581451148419E2,-1.308422913635E2)); +#2696=CARTESIAN_POINT('',(1.212230412595E1,1.574540314493E2,-1.374391048274E2)); +#2697=CARTESIAN_POINT('',(1.061725119612E1,1.565543132228E2,-1.424572007703E2)); +#2698=CARTESIAN_POINT('',(9.677561657532E0,1.560516652281E2,-1.450220741261E2)); +#2700=CARTESIAN_POINT('',(9.677561657532E0,1.560516652281E2,-1.450220741261E2)); +#2701=CARTESIAN_POINT('',(1.128879890411E1,1.571012174760E2,-1.450413588776E2)); +#2702=CARTESIAN_POINT('',(1.427497587884E1,1.594109417142E2,-1.450778125159E2)); +#2703=CARTESIAN_POINT('',(1.842241489519E1,1.644749287657E2,-1.451336281737E2)); +#2704=CARTESIAN_POINT('',(2.073026832242E1,1.686812103177E2,-1.451718605072E2)); +#2705=CARTESIAN_POINT('',(2.293631603026E1,1.742729293952E2,-1.452137541001E2)); +#2706=CARTESIAN_POINT('',(2.458557573236E1,1.811347115408E2,-1.452575155207E2)); +#2707=CARTESIAN_POINT('',(2.561564307070E1,1.893767934295E2,-1.453038066475E2)); +#2708=CARTESIAN_POINT('',(2.585583373530E1,1.959903108483E2,-1.453364171779E2)); +#2709=CARTESIAN_POINT('',(2.585522121497E1,1.994798490635E2,-1.453530603990E2)); +#2711=DIRECTION('',(3.675732580429E-2,1.855629157369E-9,9.993242211613E-1)); +#2712=VECTOR('',#2711,9.181510710545E1); +#2713=CARTESIAN_POINT('',(2.585522121497E1,1.994798490635E2,-1.453530603990E2)); +#2714=LINE('',#2713,#2712); +#2715=CARTESIAN_POINT('',(4.948232304896E0,1.449351040041E2,-1.400083280285E2)); +#2716=CARTESIAN_POINT('',(4.816056738853E0,1.460276926290E2,-1.402498058384E2)); +#2717=CARTESIAN_POINT('',(4.809135228919E0,1.482555680826E2,-1.408905241966E2)); +#2718=CARTESIAN_POINT('',(5.594609609116E0,1.513253316547E2,-1.422095746991E2)); +#2719=CARTESIAN_POINT('',(7.103000338048E0,1.539620621704E2,-1.438065504684E2)); +#2720=CARTESIAN_POINT('',(8.548866468905E0,1.553202756659E2,-1.450050022999E2)); +#2721=CARTESIAN_POINT('',(9.336139396321E0,1.558611721451E2,-1.456017523328E2)); +#2723=CARTESIAN_POINT('',(9.677561657532E0,1.560516652281E2,-1.450220741261E2)); +#2724=CARTESIAN_POINT('',(9.639618227270E0,1.560311601945E2,-1.450865191774E2)); +#2725=CARTESIAN_POINT('',(9.570396818121E0,1.559794786021E2,-1.452159662E2)); +#2726=CARTESIAN_POINT('',(9.452414861520E0,1.559229665183E2,-1.454083161844E2)); +#2727=CARTESIAN_POINT('',(9.375253385554E0,1.558814258954E2,-1.455372615513E2)); +#2728=CARTESIAN_POINT('',(9.336139396321E0,1.558611721451E2,-1.456017523328E2)); +#2730=CARTESIAN_POINT('',(-2.699627936903E1,1.415604579995E2,-1.5894E2)); +#2731=CARTESIAN_POINT('',(-2.699625081687E1,1.426445440867E2, +-1.589400002912E2)); +#2732=CARTESIAN_POINT('',(-2.699617190509E1,1.448977741563E2, +-1.592150615720E2)); +#2733=CARTESIAN_POINT('',(-2.699611279729E1,1.481930296117E2, +-1.605689070634E2)); +#2734=CARTESIAN_POINT('',(-2.699594574372E1,1.510166061592E2, +-1.627872938598E2)); +#2735=CARTESIAN_POINT('',(-2.699612609420E1,1.523888323973E2, +-1.646605811700E2)); +#2736=CARTESIAN_POINT('',(-2.699611047953E1,1.529296310830E2, +-1.656358873415E2)); +#2738=CARTESIAN_POINT('',(-2.699611047953E1,1.529296310830E2, +-1.656358873415E2)); +#2739=CARTESIAN_POINT('',(-2.404118141114E1,1.529461193119E2, +-1.656658810400E2)); +#2740=CARTESIAN_POINT('',(-1.852864096754E1,1.528345306704E2, +-1.651626934560E2)); +#2741=CARTESIAN_POINT('',(-1.193326186677E1,1.527277614760E2, +-1.636519325764E2)); +#2742=CARTESIAN_POINT('',(-6.115065390988E0,1.527812676413E2, +-1.615153421436E2)); +#2743=CARTESIAN_POINT('',(-8.319730828658E-1,1.532053623990E2, +-1.584866867979E2)); +#2744=CARTESIAN_POINT('',(2.324038777515E0,1.536721384517E2,-1.558746359302E2)); +#2745=CARTESIAN_POINT('',(6.105138728185E0,1.545286759995E2,-1.516473153007E2)); +#2746=CARTESIAN_POINT('',(8.334538254048E0,1.553828985603E2,-1.47825681E2)); +#2747=CARTESIAN_POINT('',(9.336139396321E0,1.558611721451E2,-1.456017523328E2)); +#2749=CARTESIAN_POINT('',(-5.894111472589E1,1.449352207877E2, +-1.400080645567E2)); +#2750=CARTESIAN_POINT('',(-5.880207056381E1,1.460243184471E2, +-1.402621026969E2)); +#2751=CARTESIAN_POINT('',(-5.878556373519E1,1.482490772483E2, +-1.409207973482E2)); +#2752=CARTESIAN_POINT('',(-5.955947044192E1,1.513129372966E2, +-1.422632536720E2)); +#2753=CARTESIAN_POINT('',(-6.106390900948E1,1.539475187097E2, +-1.438706365947E2)); +#2754=CARTESIAN_POINT('',(-6.251315110695E1,1.553068776987E2, +-1.450645090298E2)); +#2755=CARTESIAN_POINT('',(-6.330419243935E1,1.558494161045E2, +-1.456560249239E2)); +#2757=CARTESIAN_POINT('',(-6.330419243935E1,1.558494161045E2, +-1.456560249239E2)); +#2758=CARTESIAN_POINT('',(-6.334611577644E1,1.558709415438E2, +-1.455855300798E2)); +#2759=CARTESIAN_POINT('',(-6.342889777993E1,1.559151791495E2, +-1.454444318317E2)); +#2760=CARTESIAN_POINT('',(-6.355488363743E1,1.559751548207E2, +-1.452344420328E2)); +#2761=CARTESIAN_POINT('',(-6.363012806957E1,1.560306730276E2, +-1.450915914161E2)); +#2762=CARTESIAN_POINT('',(-6.367143249596E1,1.560529200800E2, +-1.450202262551E2)); +#2764=CARTESIAN_POINT('',(-6.367143249596E1,1.560529200800E2, +-1.450202262551E2)); +#2765=CARTESIAN_POINT('',(-6.528854202744E1,1.571062912590E2, +-1.450406057254E2)); +#2766=CARTESIAN_POINT('',(-6.829352125495E1,1.594036400903E2, +-1.450797165479E2)); +#2767=CARTESIAN_POINT('',(-7.244464632295E1,1.644927065114E2, +-1.451344576323E2)); +#2768=CARTESIAN_POINT('',(-7.473953897973E1,1.686992395323E2, +-1.451725152363E2)); +#2769=CARTESIAN_POINT('',(-7.695283547400E1,1.742974870400E2, +-1.452146078607E2)); +#2770=CARTESIAN_POINT('',(-7.858430239858E1,1.811633812798E2, +-1.452577394932E2)); +#2771=CARTESIAN_POINT('',(-7.962232806806E1,1.893945560862E2, +-1.453044014051E2)); +#2772=CARTESIAN_POINT('',(-7.984841694111E1,1.960006400129E2, +-1.453363556897E2)); +#2773=CARTESIAN_POINT('',(-7.984786345021E1,1.994798494009E2, +-1.453530603986E2)); +#2775=CARTESIAN_POINT('',(-7.984786345021E1,1.994798494009E2, +-1.453530603986E2)); +#2776=CARTESIAN_POINT('',(-7.977372563411E1,1.994798157143E2, +-1.475964421866E2)); +#2777=CARTESIAN_POINT('',(-7.941710426709E1,1.994797356756E2, +-1.528917852095E2)); +#2778=CARTESIAN_POINT('',(-7.763261112649E1,1.994796296416E2, +-1.609499358453E2)); +#2779=CARTESIAN_POINT('',(-7.397221244978E1,1.994792556981E2, +-1.676455745325E2)); +#2780=CARTESIAN_POINT('',(-7.061779031863E1,1.994797981296E2, +-1.725865826446E2)); +#2781=CARTESIAN_POINT('',(-6.889628540545E1,1.994802359535E2, +-1.749307128437E2)); +#2782=CARTESIAN_POINT('',(-6.806140416174E1,1.994805390271E2, +-1.760029915268E2)); +#2784=CARTESIAN_POINT('',(-6.806140416174E1,1.994805390271E2, +-1.760029915268E2)); +#2785=CARTESIAN_POINT('',(-6.806491051009E1,1.974778611831E2, +-1.760029915268E2)); +#2786=CARTESIAN_POINT('',(-6.798183010094E1,1.936778269057E2, +-1.760029467364E2)); +#2787=CARTESIAN_POINT('',(-6.758557365931E1,1.886070582508E2, +-1.760029647387E2)); +#2788=CARTESIAN_POINT('',(-6.691810657125E1,1.841256068063E2, +-1.760029599150E2)); +#2789=CARTESIAN_POINT('',(-6.598933178188E1,1.802052842058E2, +-1.760029612075E2)); +#2790=CARTESIAN_POINT('',(-6.483436394446E1,1.768779517431E2, +-1.760029608612E2)); +#2791=CARTESIAN_POINT('',(-6.351099531571E1,1.740954841068E2, +-1.760029609540E2)); +#2792=CARTESIAN_POINT('',(-6.203481486501E1,1.717504328846E2, +-1.760029609291E2)); +#2793=CARTESIAN_POINT('',(-6.037795219486E1,1.697137305816E2, +-1.760029609358E2)); +#2794=CARTESIAN_POINT('',(-5.852303011813E1,1.679283597061E2, +-1.760029609340E2)); +#2795=CARTESIAN_POINT('',(-5.637534083117E1,1.663212540626E2, +-1.760029609345E2)); +#2796=CARTESIAN_POINT('',(-5.387177474783E1,1.648839229245E2, +-1.760029609343E2)); +#2797=CARTESIAN_POINT('',(-5.090745996048E1,1.636066897504E2, +-1.760029609346E2)); +#2798=CARTESIAN_POINT('',(-4.736427645403E1,1.625094968138E2, +-1.760029609338E2)); +#2799=CARTESIAN_POINT('',(-4.324726717493E1,1.616415853595E2, +-1.760029609366E2)); +#2800=CARTESIAN_POINT('',(-3.853861678234E1,1.610197142705E2, +-1.760029609261E2)); +#2801=CARTESIAN_POINT('',(-3.319376937708E1,1.606524660884E2, +-1.760029609655E2)); +#2802=CARTESIAN_POINT('',(-2.914015881365E1,1.605738496431E2, +-1.760029608673E2)); +#2803=CARTESIAN_POINT('',(-2.699625742765E1,1.605733218830E2, +-1.760029608673E2)); +#2805=CARTESIAN_POINT('',(-2.699625742765E1,1.605733218830E2, +-1.760029608673E2)); +#2806=CARTESIAN_POINT('',(-2.699612188732E1,1.596071824808E2, +-1.749435849415E2)); +#2807=CARTESIAN_POINT('',(-2.699633745054E1,1.576845677503E2, +-1.726493615931E2)); +#2808=CARTESIAN_POINT('',(-2.699631194218E1,1.550914238937E2, +-1.692219784389E2)); +#2809=CARTESIAN_POINT('',(-2.699610657785E1,1.535700090522E2, +-1.667907792119E2)); +#2810=CARTESIAN_POINT('',(-2.699611047953E1,1.529296310830E2, +-1.656358873415E2)); +#2812=CARTESIAN_POINT('',(-2.699611047953E1,1.529296310830E2, +-1.656358873415E2)); +#2813=CARTESIAN_POINT('',(-2.985184870817E1,1.529035247542E2, +-1.655890760351E2)); +#2814=CARTESIAN_POINT('',(-3.501360049316E1,1.528616926523E2, +-1.652511604101E2)); +#2815=CARTESIAN_POINT('',(-4.145634130318E1,1.527355657930E2, +-1.637979028356E2)); +#2816=CARTESIAN_POINT('',(-4.680114211771E1,1.527456027609E2, +-1.619783000026E2)); +#2817=CARTESIAN_POINT('',(-5.286961526861E1,1.531464000973E2, +-1.587828378807E2)); +#2818=CARTESIAN_POINT('',(-5.676495766837E1,1.537517712406E2, +-1.554465372085E2)); +#2819=CARTESIAN_POINT('',(-6.014479712078E1,1.545625190432E2, +-1.515536628074E2)); +#2820=CARTESIAN_POINT('',(-6.230545459223E1,1.553682797280E2, +-1.477815827538E2)); +#2821=CARTESIAN_POINT('',(-6.330419243935E1,1.558494161045E2, +-1.456560249239E2)); +#2823=CARTESIAN_POINT('',(-7.640223374009E1,1.485016465565E2, +-1.238165617390E2)); +#2824=DIRECTION('',(-2.599859414348E-2,-2.509251576834E-2,9.993470061770E-1)); +#2825=DIRECTION('',(9.996619141509E-1,-1.013845079132E-3,2.598133011114E-2)); +#2826=AXIS2_PLACEMENT_3D('',#2823,#2824,#2825); +#2828=CARTESIAN_POINT('',(-6.958200282833E1,1.564625054630E2, +-5.360007170388E1)); +#2829=CARTESIAN_POINT('',(-6.888983284702E1,1.558471193377E2, +-5.360007170388E1)); +#2830=CARTESIAN_POINT('',(-6.766871195318E1,1.545019629730E2, +-5.359996855701E1)); +#2831=CARTESIAN_POINT('',(-6.627815775135E1,1.521175440277E2, +-5.360000249465E1)); +#2832=CARTESIAN_POINT('',(-6.542411272286E1,1.494932310240E2, +-5.360002146438E1)); +#2833=CARTESIAN_POINT('',(-6.522941994885E1,1.476866621425E2, +-5.359994825334E1)); +#2834=CARTESIAN_POINT('',(-6.522846756659E1,1.467603312321E2, +-5.359994825334E1)); +#2836=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-5.36E1)); +#2837=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2838=DIRECTION('',(-5.706074514117E-1,-8.212229516967E-1,0.E0)); +#2839=AXIS2_PLACEMENT_3D('',#2836,#2837,#2838); +#2841=CARTESIAN_POINT('',(-6.519223416037E1,2.457916280694E2, +-5.359999999933E1)); +#2842=CARTESIAN_POINT('',(-6.691029170453E1,2.447057665568E2, +-5.359999999933E1)); +#2843=CARTESIAN_POINT('',(-7.017776029282E1,2.422732096688E2, +-5.360000004617E1)); +#2844=CARTESIAN_POINT('',(-7.477458054362E1,2.369855583356E2, +-5.359999983942E1)); +#2845=CARTESIAN_POINT('',(-7.782032005737E1,2.315932455431E2, +-5.360000059616E1)); +#2846=CARTESIAN_POINT('',(-8.023462684345E1,2.253224029948E2, +-5.359999777594E1)); +#2847=CARTESIAN_POINT('',(-8.199213832937E1,2.177977988981E2, +-5.360000830008E1)); +#2848=CARTESIAN_POINT('',(-8.301546339485E1,2.091075567413E2, +-5.359996902373E1)); +#2849=CARTESIAN_POINT('',(-8.322273880326E1,2.027904494084E2, +-5.360006674457E1)); +#2850=CARTESIAN_POINT('',(-8.322273880339E1,1.994798492339E2, +-5.360006674457E1)); +#2852=CARTESIAN_POINT('',(-8.322273880339E1,1.994798492339E2, +-5.360006674457E1)); +#2853=CARTESIAN_POINT('',(-8.322273880338E1,1.967233157828E2, +-5.360006674457E1)); +#2854=CARTESIAN_POINT('',(-8.307394064794E1,1.915089546593E2, +-5.359996902727E1)); +#2855=CARTESIAN_POINT('',(-8.244130563763E1,1.846017155887E2, +-5.360000828769E1)); +#2856=CARTESIAN_POINT('',(-8.141842585292E1,1.785541380438E2, +-5.359999782198E1)); +#2857=CARTESIAN_POINT('',(-8.005606715923E1,1.733570343374E2, +-5.360000042437E1)); +#2858=CARTESIAN_POINT('',(-7.842836568565E1,1.689161030767E2, +-5.360000048052E1)); +#2859=CARTESIAN_POINT('',(-7.656849336241E1,1.651146064416E2, +-5.359999765356E1)); +#2860=CARTESIAN_POINT('',(-7.449436184315E1,1.618456160489E2, +-5.360000890526E1)); +#2861=CARTESIAN_POINT('',(-7.220433923876E1,1.589861255295E2, +-5.359996672540E1)); +#2862=CARTESIAN_POINT('',(-7.048560453027E1,1.572675135198E2, +-5.360007170388E1)); +#2863=CARTESIAN_POINT('',(-6.958200282833E1,1.564625054630E2, +-5.360007170388E1)); +#2865=DIRECTION('',(8.637042406078E-5,9.999983165068E-1,-1.832900333378E-3)); +#2866=VECTOR('',#2865,9.521539712738E0); +#2867=CARTESIAN_POINT('',(-6.557170786036E1,1.365553997275E2, +-4.056836994594E1)); +#2868=LINE('',#2867,#2866); +#2869=DIRECTION('',(2.142521946791E-3,9.999977032232E-1,5.610785626658E-5)); +#2870=VECTOR('',#2869,9.222711139995E-1); +#2871=CARTESIAN_POINT('',(-6.523044355270E1,1.458380622363E2,-5.36E1)); +#2872=LINE('',#2871,#2870); +#2873=DIRECTION('',(2.611935997249E-2,2.471441694217E-2,-9.993532791910E-1)); +#2874=VECTOR('',#2873,6.992176529220E1); +#2875=CARTESIAN_POINT('',(-6.522846756659E1,1.467603312321E2, +-5.359994825334E1)); +#2876=LINE('',#2875,#2874); +#2877=DIRECTION('',(-2.617618385354E-2,-8.715262803878E-3,9.996193533506E-1)); +#2878=VECTOR('',#2877,8.293965993180E1); +#2879=CARTESIAN_POINT('',(-6.340066407323E1,1.372782406607E2, +-1.234764591741E2)); +#2880=LINE('',#2879,#2878); +#2881=DIRECTION('',(-3.534587296414E-13,1.E0,0.E0)); +#2882=VECTOR('',#2881,1.049353932899E1); +#2883=CARTESIAN_POINT('',(-6.757154611808E1,1.345549126017E2,-3.86E1)); +#2884=LINE('',#2883,#2882); +#2885=CARTESIAN_POINT('',(-6.757154611808E1,1.450484519307E2,-3.86E1)); +#2886=CARTESIAN_POINT('',(-6.729236149683E1,1.451906575498E2,-3.86E1)); +#2887=CARTESIAN_POINT('',(-6.675491477284E1,1.454664953984E2, +-3.871716811580E1)); +#2888=CARTESIAN_POINT('',(-6.610716337530E1,1.457971013980E2, +-3.916632704276E1)); +#2889=CARTESIAN_POINT('',(-6.567485591663E1,1.460253928321E2, +-3.981868527458E1)); +#2890=CARTESIAN_POINT('',(-6.557413728389E1,1.460792127372E2, +-4.033734717765E1)); +#2891=CARTESIAN_POINT('',(-6.557088548094E1,1.460769234108E2, +-4.058582197926E1)); +#2893=CARTESIAN_POINT('',(-6.557170786036E1,1.365553997275E2, +-4.056836994594E1)); +#2894=CARTESIAN_POINT('',(-6.557533197575E1,1.365517753431E2, +-4.036071328953E1)); +#2895=CARTESIAN_POINT('',(-6.564761389362E1,1.364780370912E2, +-3.994511549568E1)); +#2896=CARTESIAN_POINT('',(-6.593456613051E1,1.361927634393E2, +-3.939936118048E1)); +#2897=CARTESIAN_POINT('',(-6.636075903465E1,1.357654691023E2, +-3.896896343017E1)); +#2898=CARTESIAN_POINT('',(-6.692088576483E1,1.352056298227E2, +-3.867326434413E1)); +#2899=CARTESIAN_POINT('',(-6.734802659668E1,1.347784321231E2,-3.86E1)); +#2900=CARTESIAN_POINT('',(-6.757154611808E1,1.345549126017E2,-3.86E1)); +#2902=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-3.86E1)); +#2903=DIRECTION('',(0.E0,0.E0,1.E0)); +#2904=DIRECTION('',(-9.855109520546E-1,-1.696118020083E-1,0.E0)); +#2905=AXIS2_PLACEMENT_3D('',#2902,#2903,#2904); +#2907=CARTESIAN_POINT('',(-6.150005151080E1,1.315548747265E2, +-3.860000054999E1)); +#2908=DIRECTION('',(-3.670764566406E-7,4.926139529651E-7,-9.999999999998E-1)); +#2909=DIRECTION('',(2.515629623628E-5,9.999999996835E-1,4.926047192439E-7)); +#2910=AXIS2_PLACEMENT_3D('',#2907,#2908,#2909); +#2912=CARTESIAN_POINT('',(-9.370590477449E1,8.965435865507E1,-3.86E1)); +#2913=CARTESIAN_POINT('',(-9.384657290651E1,8.961551047696E1,-3.86E1)); +#2914=CARTESIAN_POINT('',(-9.413001519127E1,8.955069565368E1,-3.86E1)); +#2915=CARTESIAN_POINT('',(-9.456360268214E1,8.949188518914E1,-3.86E1)); +#2916=CARTESIAN_POINT('',(-9.485406609606E1,8.947875550782E1,-3.86E1)); +#2917=CARTESIAN_POINT('',(-9.499999999989E1,8.947875550782E1,-3.86E1)); +#2919=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-4.06E1)); +#2920=DIRECTION('',(0.E0,0.E0,1.E0)); +#2921=DIRECTION('',(-9.855109520632E-1,-1.696118019582E-1,0.E0)); +#2922=AXIS2_PLACEMENT_3D('',#2919,#2920,#2921); +#2924=CARTESIAN_POINT('',(-9.500000000024E1,1.891567856635E2,-4.06E1)); +#2925=DIRECTION('',(1.696118019783E-1,-9.855109520597E-1,0.E0)); +#2926=DIRECTION('',(9.855109520597E-1,1.696118019782E-1,0.E0)); +#2927=AXIS2_PLACEMENT_3D('',#2924,#2925,#2926); +#2929=CARTESIAN_POINT('',(-9.499999999999E1,1.891567856629E2,-3.86E1)); +#2930=CARTESIAN_POINT('',(-9.571570339569E1,1.914361906962E2, +-3.859999999998E1)); +#2931=CARTESIAN_POINT('',(-9.664569369226E1,1.962183829619E2, +-3.886950292282E1)); +#2932=CARTESIAN_POINT('',(-9.675686439823E1,2.048050756246E2, +-3.891294163394E1)); +#2933=CARTESIAN_POINT('',(-9.576730923231E1,2.099852915745E2,-3.86E1)); +#2934=CARTESIAN_POINT('',(-9.499999999647E1,2.125632143544E2,-3.86E1)); +#2936=CARTESIAN_POINT('',(-9.499999999430E1,2.125632143710E2,-4.06E1)); +#2937=DIRECTION('',(1.696118024785E-1,9.855109519736E-1,0.E0)); +#2938=DIRECTION('',(0.E0,0.E0,1.E0)); +#2939=AXIS2_PLACEMENT_3D('',#2936,#2937,#2938); +#2941=CARTESIAN_POINT('',(-9.302897809620E1,1.894960092679E2, +-4.059999921567E1)); +#2942=CARTESIAN_POINT('',(-9.334998495570E1,1.913611893203E2, +-4.060000582190E1)); +#2943=CARTESIAN_POINT('',(-9.383621833639E1,1.951334356725E2, +-4.070388285347E1)); +#2944=CARTESIAN_POINT('',(-9.408150855523E1,2.008600420666E2, +-4.080523239764E1)); +#2945=CARTESIAN_POINT('',(-9.383620034533E1,2.065867478041E2, +-4.070386263228E1)); +#2946=CARTESIAN_POINT('',(-9.334998346624E1,2.103588208919E2, +-4.060000294749E1)); +#2947=CARTESIAN_POINT('',(-9.302897809218E1,2.122239907555E2, +-4.059999921566E1)); +#2949=DIRECTION('',(-3.935313613441E-14,-1.246182644256E-13,-1.E0)); +#2950=VECTOR('',#2949,1.3E1); +#2951=CARTESIAN_POINT('',(-6.519223417048E1,2.559084669915E2,-4.06E1)); +#2952=LINE('',#2951,#2950); +#2953=CARTESIAN_POINT('',(-6.523044355270E1,1.458380622363E2,-5.36E1)); +#2954=CARTESIAN_POINT('',(-6.526834390807E1,1.458643964068E2, +-5.215264382137E1)); +#2955=CARTESIAN_POINT('',(-6.534404880447E1,1.459173652717E2, +-4.925982709302E1)); +#2956=CARTESIAN_POINT('',(-6.545818020941E1,1.459967496980E2, +-4.490925976180E1)); +#2957=CARTESIAN_POINT('',(-6.553292816507E1,1.460501991768E2, +-4.203535339118E1)); +#2958=CARTESIAN_POINT('',(-6.557088548094E1,1.460769234108E2, +-4.058582197926E1)); +#2960=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-4.06E1)); +#2961=DIRECTION('',(0.E0,0.E0,1.E0)); +#2962=DIRECTION('',(-5.700371621247E-1,8.216189103208E-1,0.E0)); +#2963=AXIS2_PLACEMENT_3D('',#2960,#2961,#2962); +#2965=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-3.86E1)); +#2966=DIRECTION('',(0.E0,0.E0,1.E0)); +#2967=DIRECTION('',(-5.824998530777E-1,8.128308072191E-1,0.E0)); +#2968=AXIS2_PLACEMENT_3D('',#2965,#2966,#2967); +#2970=CARTESIAN_POINT('',(-8.999999999997E1,2.85E2,-3.859999999999E1)); +#2971=DIRECTION('',(-2.445268358888E-12,-1.883549820922E-12,-1.E0)); +#2972=DIRECTION('',(-1.E0,1.526814230594E-11,2.445688096475E-12)); +#2973=AXIS2_PLACEMENT_3D('',#2970,#2971,#2972); +#2975=DIRECTION('',(1.534813226477E-13,1.E0,0.E0)); +#2976=VECTOR('',#2975,3.305467431352E1); +#2977=CARTESIAN_POINT('',(-6.719223417049E1,2.569453256981E2,-3.86E1)); +#2978=LINE('',#2977,#2976); +#2979=DIRECTION('',(4.585285203462E-14,-1.E0,0.E0)); +#2980=VECTOR('',#2979,3.409153300850E1); +#2981=CARTESIAN_POINT('',(-6.519223417048E1,2.9E2,-4.06E1)); +#2982=LINE('',#2981,#2980); +#2983=CARTESIAN_POINT('',(-6.519223417048E1,2.559084669915E2,-4.06E1)); +#2984=CARTESIAN_POINT('',(-6.519223417048E1,2.559084669915E2, +-4.034391255293E1)); +#2985=CARTESIAN_POINT('',(-6.529364090244E1,2.559615565122E2, +-3.983318488958E1)); +#2986=CARTESIAN_POINT('',(-6.570282701699E1,2.561753276202E2, +-3.919324661814E1)); +#2987=CARTESIAN_POINT('',(-6.635272475549E1,2.565130576428E2, +-3.872435119304E1)); +#2988=CARTESIAN_POINT('',(-6.690361219696E1,2.567970787133E2,-3.86E1)); +#2989=CARTESIAN_POINT('',(-6.719223417049E1,2.569453256981E2,-3.86E1)); +#2991=CARTESIAN_POINT('',(-6.719223417048E1,2.9E2,-4.36E1)); +#2992=DIRECTION('',(-1.E0,0.E0,0.E0)); +#2993=DIRECTION('',(0.E0,4.652326879295E-9,1.E0)); +#2994=AXIS2_PLACEMENT_3D('',#2991,#2992,#2993); +#2996=CARTESIAN_POINT('',(-6.719223417048E1,2.93E2,-4.36E1)); +#2997=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2998=DIRECTION('',(0.E0,1.E0,0.E0)); +#2999=AXIS2_PLACEMENT_3D('',#2996,#2997,#2998); +#3001=CARTESIAN_POINT('',(-6.719223417048E1,2.9E2,-4.06E1)); +#3002=DIRECTION('',(0.E0,-1.E0,0.E0)); +#3003=DIRECTION('',(1.E0,0.E0,-1.350031197944E-13)); +#3004=AXIS2_PLACEMENT_3D('',#3001,#3002,#3003); +#3006=DIRECTION('',(-1.E0,1.699787208627E-10,0.E0)); +#3007=VECTOR('',#3006,2.280776578073E1); +#3008=CARTESIAN_POINT('',(-6.719223417048E1,2.900000000116E2,-3.86E1)); +#3009=LINE('',#3008,#3007); +#3010=DIRECTION('',(1.E0,-1.595061451887E-13,2.563936669733E-13)); +#3011=VECTOR('',#3010,2.280776582486E1); +#3012=CARTESIAN_POINT('',(-8.999999999438E1,2.95E2,-4.359999999534E1)); +#3013=LINE('',#3012,#3011); +#3014=CARTESIAN_POINT('',(-8.999999999998E1,2.85E2,-4.36E1)); +#3015=DIRECTION('',(-2.445268358888E-12,-1.883549820922E-12,-1.E0)); +#3016=DIRECTION('',(-1.E0,1.244870873048E-12,2.444977553744E-12)); +#3017=AXIS2_PLACEMENT_3D('',#3014,#3015,#3016); +#3019=CARTESIAN_POINT('',(-9.E1,2.9E2,-4.360000000001E1)); +#3020=DIRECTION('',(1.E0,3.645472812503E-12,-2.445268358894E-12)); +#3021=DIRECTION('',(-3.646505319911E-12,1.E0,2.742694960027E-12)); +#3022=AXIS2_PLACEMENT_3D('',#3019,#3020,#3021); +#3024=CARTESIAN_POINT('',(-9.499999999999E1,2.85E2,-4.359999999999E1)); +#3025=DIRECTION('',(-7.496503417979E-13,-1.E0,1.883549820924E-12)); +#3026=DIRECTION('',(7.730704965049E-13,1.887201506174E-12,1.E0)); +#3027=AXIS2_PLACEMENT_3D('',#3024,#3025,#3026); +#3029=DIRECTION('',(0.E0,-3.952636639365E-12,-1.E0)); +#3030=VECTOR('',#3029,1.464E2); +#3031=CARTESIAN_POINT('',(-1.E2,2.849999999983E2,-4.36E1)); +#3032=LINE('',#3031,#3030); +#3033=DIRECTION('',(-1.279200182291E-11,2.484958201486E-14,1.E0)); +#3034=VECTOR('',#3033,1.464000000047E2); +#3035=CARTESIAN_POINT('',(-8.999999999251E1,2.95E2,-1.9E2)); +#3036=LINE('',#3035,#3034); +#3037=DIRECTION('',(0.E0,1.E0,0.E0)); +#3038=VECTOR('',#3037,5.299999999952E2); +#3039=CARTESIAN_POINT('',(-1.E2,-2.449999999976E2,-1.9E2)); +#3040=LINE('',#3039,#3038); +#3041=CARTESIAN_POINT('',(-1.E2,-6.5E1,0.E0)); +#3042=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3043=DIRECTION('',(0.E0,9.641152344664E-1,-2.654841137806E-1)); +#3044=AXIS2_PLACEMENT_3D('',#3041,#3042,#3043); +#3046=CARTESIAN_POINT('',(-1.E2,-6.5E1,0.E0)); +#3047=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3048=DIRECTION('',(0.E0,7.007800054811E-2,-9.975415148450E-1)); +#3049=AXIS2_PLACEMENT_3D('',#3046,#3047,#3048); +#3051=DIRECTION('',(0.E0,-1.E0,1.173716420960E-13)); +#3052=VECTOR('',#3051,3.250882771079E1); +#3053=CARTESIAN_POINT('',(-9.5E1,-2.124911722892E2,-6.E1)); +#3054=LINE('',#3053,#3052); +#3055=DIRECTION('',(0.E0,1.E0,-5.074180808346E-13)); +#3056=VECTOR('',#3055,2.918246545114E1); +#3057=CARTESIAN_POINT('',(-1.E2,-2.449999999982E2,-6.5E1)); +#3058=LINE('',#3057,#3056); +#3059=CARTESIAN_POINT('',(-1.E2,-2.158175345470E2,-6.500000000001E1)); +#3060=CARTESIAN_POINT('',(-1.E2,-2.154450590731E2,-6.443387276970E1)); +#3061=CARTESIAN_POINT('',(-9.980613293633E1,-2.147181651594E2, +-6.333322282102E1)); +#3062=CARTESIAN_POINT('',(-9.904106191651E1,-2.137698256502E2, +-6.190707079373E1)); +#3063=CARTESIAN_POINT('',(-9.781938743241E1,-2.130029803218E2, +-6.076154303155E1)); +#3064=CARTESIAN_POINT('',(-9.636337707584E1,-2.125670547664E2, +-6.011261878977E1)); +#3065=CARTESIAN_POINT('',(-9.543694686005E1,-2.124911722892E2,-6.E1)); +#3066=CARTESIAN_POINT('',(-9.5E1,-2.124911722892E2,-6.E1)); +#3068=CARTESIAN_POINT('',(-8.E1,-2.45E2,-6.5E1)); +#3069=DIRECTION('',(0.E0,0.E0,-1.E0)); +#3070=DIRECTION('',(3.524974090396E-10,-1.E0,0.E0)); +#3071=AXIS2_PLACEMENT_3D('',#3068,#3069,#3070); +#3073=CARTESIAN_POINT('',(-9.5E1,-2.45E2,-6.5E1)); +#3074=DIRECTION('',(0.E0,1.E0,0.E0)); +#3075=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3076=AXIS2_PLACEMENT_3D('',#3073,#3074,#3075); +#3078=CARTESIAN_POINT('',(-8.E1,-2.6E2,-6.5E1)); +#3079=DIRECTION('',(1.E0,0.E0,0.E0)); +#3080=DIRECTION('',(0.E0,0.E0,1.E0)); +#3081=AXIS2_PLACEMENT_3D('',#3078,#3079,#3080); +#3083=DIRECTION('',(9.399514055985E-12,0.E0,-1.E0)); +#3084=VECTOR('',#3083,1.25E2); +#3085=CARTESIAN_POINT('',(-7.999999999647E1,-2.65E2,-6.5E1)); +#3086=LINE('',#3085,#3084); +#3087=DIRECTION('',(0.E0,-4.888534022029E-12,1.E0)); +#3088=VECTOR('',#3087,1.25E2); +#3089=CARTESIAN_POINT('',(-1.E2,-2.449999999976E2,-1.9E2)); +#3090=LINE('',#3089,#3088); +#3091=DIRECTION('',(1.E0,0.E0,0.E0)); +#3092=VECTOR('',#3091,2.050000000008E1); +#3093=CARTESIAN_POINT('',(-8.E1,-2.6E2,-6.E1)); +#3094=LINE('',#3093,#3092); +#3095=CARTESIAN_POINT('',(-5.949999999992E1,-2.6E2,-6.E1)); +#3096=CARTESIAN_POINT('',(-5.949999999992E1,-2.603878139624E2,-6.E1)); +#3097=CARTESIAN_POINT('',(-5.942321030988E1,-2.611838508331E2, +-6.007706625192E1)); +#3098=CARTESIAN_POINT('',(-5.888420182928E1,-2.625086318977E2, +-6.061546616848E1)); +#3099=CARTESIAN_POINT('',(-5.823907311155E1,-2.633959356013E2, +-6.126141591663E1)); +#3100=CARTESIAN_POINT('',(-5.715259092623E1,-2.643128461274E2, +-6.234734954460E1)); +#3101=CARTESIAN_POINT('',(-5.597966250844E1,-2.648366609360E2, +-6.351988680507E1)); +#3102=CARTESIAN_POINT('',(-5.501075012748E1,-2.65E2,-6.448924987244E1)); +#3103=CARTESIAN_POINT('',(-5.449999999992E1,-2.65E2,-6.5E1)); +#3105=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3106=VECTOR('',#3105,2.549999999655E1); +#3107=CARTESIAN_POINT('',(-5.449999999992E1,-2.65E2,-6.5E1)); +#3108=LINE('',#3107,#3106); +#3109=CARTESIAN_POINT('',(-9.370590477450E1,-6.5E1,0.E0)); +#3110=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3111=DIRECTION('',(0.E0,9.702362944906E-1,-2.421601388608E-1)); +#3112=AXIS2_PLACEMENT_3D('',#3109,#3110,#3111); +#3114=CARTESIAN_POINT('',(-9.370590477450E1,-6.5E1,0.E0)); +#3115=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3116=DIRECTION('',(0.E0,7.007800054811E-2,-9.975415148450E-1)); +#3117=AXIS2_PLACEMENT_3D('',#3114,#3115,#3116); +#3119=CARTESIAN_POINT('',(-1.E2,9.333498895332E1,-4.360000000001E1)); +#3120=CARTESIAN_POINT('',(-1.E2,9.288519278206E1,-4.300960386394E1)); +#3121=CARTESIAN_POINT('',(-9.978600034398E1,9.202209345853E1, +-4.188224682348E1)); +#3122=CARTESIAN_POINT('',(-9.903667180945E1,9.096201651408E1, +-4.050735718133E1)); +#3123=CARTESIAN_POINT('',(-9.781430032916E1,9.006835241727E1, +-3.935582420824E1)); +#3124=CARTESIAN_POINT('',(-9.634875568289E1,8.956383909049E1, +-3.870891917993E1)); +#3125=CARTESIAN_POINT('',(-9.543073807578E1,8.947875550782E1, +-3.859999999999E1)); +#3126=CARTESIAN_POINT('',(-9.499999999989E1,8.947875550782E1,-3.86E1)); +#3128=CARTESIAN_POINT('',(-9.370590477449E1,8.965435865507E1,-3.86E1)); +#3129=CARTESIAN_POINT('',(-9.195237203007E1,9.013863004899E1,-3.86E1)); +#3130=CARTESIAN_POINT('',(-8.844537793993E1,9.110683051516E1,-3.86E1)); +#3131=CARTESIAN_POINT('',(-8.318517172098E1,9.255836093416E1,-3.86E1)); +#3132=CARTESIAN_POINT('',(-7.967855992041E1,9.352554184788E1,-3.86E1)); +#3133=CARTESIAN_POINT('',(-7.792529284529E1,9.400897231133E1,-3.86E1)); +#3135=CARTESIAN_POINT('',(-7.792529284529E1,-2.172294757119E2,-6.E1)); +#3136=CARTESIAN_POINT('',(-7.967836298812E1,-2.167245725282E2,-6.E1)); +#3137=CARTESIAN_POINT('',(-8.318463526465E1,-2.157136975893E2,-6.E1)); +#3138=CARTESIAN_POINT('',(-8.844484421711E1,-2.141955802731E2,-6.E1)); +#3139=CARTESIAN_POINT('',(-9.195218161812E1,-2.131822983545E2,-6.E1)); +#3140=CARTESIAN_POINT('',(-9.370590477449E1,-2.126750847334E2,-6.E1)); +#3142=CARTESIAN_POINT('',(-7.792529284530E1,-6.5E1,0.E0)); +#3143=DIRECTION('',(1.E0,0.E0,0.E0)); +#3144=DIRECTION('',(0.E0,-9.303441615595E-1,-3.666875250838E-1)); +#3145=AXIS2_PLACEMENT_3D('',#3142,#3143,#3144); +#3147=DIRECTION('',(3.836721254900E-13,1.E0,2.690201036151E-13)); +#3148=VECTOR('',#3147,9.481999252474E0); +#3149=CARTESIAN_POINT('',(-7.792529284529E1,9.400897231133E1,-3.86E1)); +#3150=LINE('',#3149,#3148); +#3151=CARTESIAN_POINT('',(-7.792529284529E1,-6.5E1,0.E0)); +#3152=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3153=DIRECTION('',(0.E0,9.747480793263E-1,-2.233073707913E-1)); +#3154=AXIS2_PLACEMENT_3D('',#3151,#3152,#3153); +#3156=CARTESIAN_POINT('',(-7.792529284529E1,-6.5E1,0.E0)); +#3157=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3158=DIRECTION('',(0.E0,0.E0,-1.E0)); +#3159=AXIS2_PLACEMENT_3D('',#3156,#3157,#3158); +#3161=DIRECTION('',(-3.682526472513E-13,1.E0,1.956342188522E-13)); +#3162=VECTOR('',#3161,9.879029612540E0); +#3163=CARTESIAN_POINT('',(-7.792529284529E1,-2.271085053244E2,-6.E1)); +#3164=LINE('',#3163,#3162); +#3165=CARTESIAN_POINT('',(-6.179450381567E1,-6.5E1,0.E0)); +#3166=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3167=DIRECTION('',(0.E0,8.378916106492E-1,-5.458366502935E-1)); +#3168=AXIS2_PLACEMENT_3D('',#3165,#3166,#3167); +#3170=CARTESIAN_POINT('',(-6.179534369283E1,-6.5E1,0.E0)); +#3171=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3172=DIRECTION('',(0.E0,7.954845484038E-1,-6.059738717559E-1)); +#3173=AXIS2_PLACEMENT_3D('',#3170,#3171,#3172); +#3175=CARTESIAN_POINT('',(-6.179534369283E1,-6.5E1,0.E0)); +#3176=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3177=DIRECTION('',(0.E0,0.E0,-1.E0)); +#3178=AXIS2_PLACEMENT_3D('',#3175,#3176,#3177); +#3180=CARTESIAN_POINT('',(-6.179534369283E1,-2.260561355206E2,-6.E1)); +#3181=CARTESIAN_POINT('',(-6.358767509602E1,-2.261731192858E2,-6.E1)); +#3182=CARTESIAN_POINT('',(-6.717226233266E1,-2.264070358819E2,-6.E1)); +#3183=CARTESIAN_POINT('',(-7.254891206204E1,-2.267578256721E2,-6.E1)); +#3184=CARTESIAN_POINT('',(-7.613319112481E1,-2.269916288282E2,-6.E1)); +#3185=CARTESIAN_POINT('',(-7.792529284529E1,-2.271085053244E2,-6.E1)); +#3187=CARTESIAN_POINT('',(-7.792529284529E1,1.034909715638E2,-3.86E1)); +#3188=CARTESIAN_POINT('',(-7.613312034531E1,1.033785179276E2,-3.86E1)); +#3189=CARTESIAN_POINT('',(-7.254874610017E1,1.031535953398E2,-3.86E1)); +#3190=CARTESIAN_POINT('',(-6.717209637734E1,1.028161753809E2,-3.86E1)); +#3191=CARTESIAN_POINT('',(-6.358760433120E1,1.025912046083E2,-3.86E1)); +#3192=CARTESIAN_POINT('',(-6.179534369283E1,1.024787114496E2,-3.86E1)); +#3194=CARTESIAN_POINT('',(-6.179534369283E1,-6.5E1,0.E0)); +#3195=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3196=DIRECTION('',(0.E0,9.744535390971E-1,-2.245891808194E-1)); +#3197=AXIS2_PLACEMENT_3D('',#3194,#3195,#3196); +#3199=CARTESIAN_POINT('',(-5.849999999992E1,1.024787114496E2,-3.86E1)); +#3200=CARTESIAN_POINT('',(-5.822687859849E1,1.024787114496E2,-3.86E1)); +#3201=CARTESIAN_POINT('',(-5.772413264151E1,1.024549084749E2, +-3.870346925025E1)); +#3202=CARTESIAN_POINT('',(-5.705321062913E1,1.023530429726E2, +-3.914271887908E1)); +#3203=CARTESIAN_POINT('',(-5.660646421173E1,1.021947571303E2, +-3.981428295134E1)); +#3204=CARTESIAN_POINT('',(-5.649999999992E1,1.020725461927E2, +-4.032275419072E1)); +#3205=CARTESIAN_POINT('',(-5.649999999992E1,1.020051459950E2,-4.06E1)); +#3207=DIRECTION('',(-9.999996846171E-1,4.987486798321E-4,-6.180739277115E-4)); +#3208=VECTOR('',#3207,5.294925424258E0); +#3209=CARTESIAN_POINT('',(-5.649999999992E1,7.899842953589E1, +-9.380511334107E1)); +#3210=LINE('',#3209,#3208); +#3211=DIRECTION('',(1.E0,-3.881163980316E-14,0.E0)); +#3212=VECTOR('',#3211,3.295343692910E0); +#3213=CARTESIAN_POINT('',(-6.179534369283E1,1.024787114496E2,-3.86E1)); +#3214=LINE('',#3213,#3212); +#3215=DIRECTION('',(-1.250877649199E-7,1.E0,-1.893047490575E-8)); +#3216=VECTOR('',#3215,2.907606885823E1); +#3217=CARTESIAN_POINT('',(-5.849999999992E1,1.024787114496E2,-3.86E1)); +#3218=LINE('',#3217,#3216); +#3219=CARTESIAN_POINT('',(-6.150001587199E1,1.345549195651E2, +-4.059999889943E1)); +#3220=DIRECTION('',(-9.999999999264E-1,1.212414194035E-5,3.670824291351E-7)); +#3221=DIRECTION('',(3.670402183834E-7,-3.481607608878E-6,9.999999999939E-1)); +#3222=AXIS2_PLACEMENT_3D('',#3219,#3220,#3221); +#3224=CARTESIAN_POINT('',(-6.149999992327E1,1.365548191118E2, +-4.058036561135E1)); +#3225=CARTESIAN_POINT('',(-6.097686420126E1,1.365548163713E2, +-4.058036571222E1)); +#3226=CARTESIAN_POINT('',(-5.993010638482E1,1.363893430868E2, +-4.058413657505E1)); +#3227=CARTESIAN_POINT('',(-5.851141906295E1,1.356666214864E2, +-4.058537563281E1)); +#3228=CARTESIAN_POINT('',(-5.738601212957E1,1.345402784053E2, +-4.058965229709E1)); +#3229=CARTESIAN_POINT('',(-5.666486957768E1,1.331221419657E2, +-4.059450909762E1)); +#3230=CARTESIAN_POINT('',(-5.649999810201E1,1.320769443801E2, +-4.059817777584E1)); +#3231=CARTESIAN_POINT('',(-5.650000214112E1,1.315547984196E2, +-4.060000055318E1)); +#3233=CARTESIAN_POINT('',(-5.850000839188E1,1.315548225344E2, +-4.060000147855E1)); +#3234=DIRECTION('',(-1.772551865732E-5,-9.999999998428E-1,-4.926074462672E-7)); +#3235=DIRECTION('',(9.999999998426E-1,-1.772551902533E-5,7.392671433904E-7)); +#3236=AXIS2_PLACEMENT_3D('',#3233,#3234,#3235); +#3238=DIRECTION('',(9.999956501039E-1,-1.425969483764E-4,-2.946088819550E-3)); +#3239=VECTOR('',#3238,4.071725648667E0); +#3240=CARTESIAN_POINT('',(-6.557170786036E1,1.365553997275E2, +-4.056836994594E1)); +#3241=LINE('',#3240,#3239); +#3242=DIRECTION('',(-1.E0,-2.639073579817E-7,-5.094027547145E-8)); +#3243=VECTOR('',#3242,6.071554146112E0); +#3244=CARTESIAN_POINT('',(-6.149999197197E1,1.345549142040E2, +-3.859999969071E1)); +#3245=LINE('',#3244,#3243); +#3246=DIRECTION('',(-1.E0,-1.763860263473E-12,-2.581258922156E-14)); +#3247=VECTOR('',#3246,3.303238104452E0); +#3248=CARTESIAN_POINT('',(-4.199632111960E1,1.373328999143E2, +-1.297397892668E2)); +#3249=LINE('',#3248,#3247); +#3250=CARTESIAN_POINT('',(-2.699999999992E1,1.370471841019E2,-9.7E1)); +#3251=DIRECTION('',(0.E0,9.999619230642E-1,8.726535498375E-3)); +#3252=DIRECTION('',(-5.368738644941E-1,7.362250960306E-3,-8.436303994546E-1)); +#3253=AXIS2_PLACEMENT_3D('',#3250,#3251,#3252); +#3255=CARTESIAN_POINT('',(-2.699548582841E1,1.370471591967E2, +-9.699846142346E1)); +#3256=DIRECTION('',(-7.147364285034E-8,9.999619140095E-1,8.727572998824E-3)); +#3257=DIRECTION('',(-5.450036155513E-1,7.317452316116E-3,-8.384017616439E-1)); +#3258=AXIS2_PLACEMENT_3D('',#3255,#3256,#3257); +#3260=DIRECTION('',(0.E0,-1.E0,0.E0)); +#3261=VECTOR('',#3260,7.215889364635E1); +#3262=CARTESIAN_POINT('',(-4.199632111960E1,1.373328999143E2, +-1.297397892668E2)); +#3263=LINE('',#3262,#3261); +#3264=CARTESIAN_POINT('',(-4.887559634005E1,6.517400711162E1, +-1.174199042393E2)); +#3265=CARTESIAN_POINT('',(-4.899433582285E1,6.634749634467E1, +-1.172784137502E2)); +#3266=CARTESIAN_POINT('',(-4.921316940689E1,6.856132441741E1, +-1.170130939184E2)); +#3267=CARTESIAN_POINT('',(-4.948197528875E1,7.144784862288E1, +-1.166751422988E2)); +#3268=CARTESIAN_POINT('',(-4.970352982667E1,7.400572532045E1, +-1.163886309873E2)); +#3269=CARTESIAN_POINT('',(-4.988468426347E1,7.630152769032E1, +-1.161477878384E2)); +#3270=CARTESIAN_POINT('',(-5.003260062246E1,7.841397085287E1, +-1.159458343730E2)); +#3271=CARTESIAN_POINT('',(-5.015222778192E1,8.041529349891E1, +-1.157777362083E2)); +#3272=CARTESIAN_POINT('',(-5.024614167300E1,8.237905027769E1, +-1.156409152683E2)); +#3273=CARTESIAN_POINT('',(-5.031233205381E1,8.432304091287E1, +-1.155388170509E2)); +#3274=CARTESIAN_POINT('',(-5.034872039172E1,8.627689201040E1, +-1.154746845883E2)); +#3275=CARTESIAN_POINT('',(-5.035276200621E1,8.823133057029E1, +-1.154523862913E2)); +#3276=CARTESIAN_POINT('',(-5.032433789747E1,9.018394123090E1, +-1.154721584666E2)); +#3277=CARTESIAN_POINT('',(-5.026518883484E1,9.213396706701E1, +-1.155313531767E2)); +#3278=CARTESIAN_POINT('',(-5.017830163286E1,9.408660160226E1, +-1.156253280403E2)); +#3279=CARTESIAN_POINT('',(-5.006512661674E1,9.607786412171E1, +-1.157509241585E2)); +#3280=CARTESIAN_POINT('',(-4.992521220506E1,9.815235127485E1, +-1.159071100901E2)); +#3281=CARTESIAN_POINT('',(-4.975399807142E1,1.003882098095E2, +-1.160972887912E2)); +#3282=CARTESIAN_POINT('',(-4.954434269391E1,1.028703364629E2, +-1.163272353500E2)); +#3283=CARTESIAN_POINT('',(-4.928422409293E1,1.057180595240E2, +-1.166069171347E2)); +#3284=CARTESIAN_POINT('',(-4.896821763052E1,1.089681055096E2, +-1.169375508669E2)); +#3285=CARTESIAN_POINT('',(-4.859434153371E1,1.126325228051E2, +-1.173156039461E2)); +#3286=CARTESIAN_POINT('',(-4.815793054560E1,1.167557265600E2, +-1.177393312996E2)); +#3287=CARTESIAN_POINT('',(-4.765635840924E1,1.213634526506E2, +-1.182037450254E2)); +#3288=CARTESIAN_POINT('',(-4.708757924969E1,1.264819251473E2, +-1.187034368428E2)); +#3289=CARTESIAN_POINT('',(-4.666021525134E1,1.302614883001E2, +-1.190559944208E2)); +#3290=CARTESIAN_POINT('',(-4.643524979295E1,1.322410440894E2, +-1.192357422435E2)); +#3292=CARTESIAN_POINT('',(-4.552254317174E1,1.373011871746E2, +-1.261058692337E2)); +#3293=CARTESIAN_POINT('',(-4.549899351437E1,1.373046981929E2, +-1.265081920757E2)); +#3294=CARTESIAN_POINT('',(-4.545105787487E1,1.373117286331E2, +-1.273138007315E2)); +#3295=CARTESIAN_POINT('',(-4.537670208451E1,1.373222995632E2, +-1.285251093423E2)); +#3296=CARTESIAN_POINT('',(-4.532553353807E1,1.373293636560E2, +-1.293345742013E2)); +#3297=CARTESIAN_POINT('',(-4.529955922405E1,1.373328999143E2, +-1.297397892668E2)); +#3299=CARTESIAN_POINT('',(-4.529955922405E1,1.373328999143E2, +-1.297397892668E2)); +#3300=CARTESIAN_POINT('',(-4.558840457033E1,1.344994791823E2, +-1.297397892668E2)); +#3301=CARTESIAN_POINT('',(-4.613336861622E1,1.290287172088E2, +-1.297397892668E2)); +#3302=CARTESIAN_POINT('',(-4.687559739178E1,1.210172424116E2, +-1.297397892668E2)); +#3303=CARTESIAN_POINT('',(-4.743372372481E1,1.143770613741E2, +-1.297397892668E2)); +#3304=CARTESIAN_POINT('',(-4.793183599980E1,1.075735755960E2, +-1.297397892668E2)); +#3305=CARTESIAN_POINT('',(-4.833295796743E1,1.007181346667E2, +-1.297397892668E2)); +#3306=CARTESIAN_POINT('',(-4.861945719797E1,9.280111715247E1, +-1.297397892668E2)); +#3307=CARTESIAN_POINT('',(-4.865402232238E1,8.547040147696E1, +-1.297397892668E2)); +#3308=CARTESIAN_POINT('',(-4.855276949659E1,7.980223833308E1, +-1.297397892668E2)); +#3309=CARTESIAN_POINT('',(-4.824427978354E1,7.222640140482E1, +-1.297397892668E2)); +#3310=CARTESIAN_POINT('',(-4.794765983962E1,6.755386504061E1, +-1.297397892668E2)); +#3311=CARTESIAN_POINT('',(-4.778132442594E1,6.517400626796E1, +-1.297397892668E2)); +#3313=CARTESIAN_POINT('',(-4.778132442594E1,6.517400626796E1, +-1.297397892668E2)); +#3314=CARTESIAN_POINT('',(-4.793140611326E1,6.517400626796E1, +-1.282018717140E2)); +#3315=CARTESIAN_POINT('',(-4.821294244389E1,6.517400638045E1, +-1.252390369228E2)); +#3316=CARTESIAN_POINT('',(-4.857607006879E1,6.517400587425E1, +-1.211549464243E2)); +#3317=CARTESIAN_POINT('',(-4.878211075064E1,6.517400711162E1, +-1.186296948071E2)); +#3318=CARTESIAN_POINT('',(-4.887559634005E1,6.517400711162E1, +-1.174199042393E2)); +#3320=CARTESIAN_POINT('',(-4.555705140993E1,1.372760360081E2, +-1.255486970194E2)); +#3321=CARTESIAN_POINT('',(-4.558231851798E1,1.372445875667E2, +-1.251618817800E2)); +#3322=CARTESIAN_POINT('',(-4.563773688022E1,1.371254831980E2, +-1.243951263279E2)); +#3323=CARTESIAN_POINT('',(-4.573792954257E1,1.367706526891E2, +-1.232443496568E2)); +#3324=CARTESIAN_POINT('',(-4.584893414789E1,1.362596394804E2, +-1.221788320360E2)); +#3325=CARTESIAN_POINT('',(-4.596369168427E1,1.356361490096E2, +-1.212575218022E2)); +#3326=CARTESIAN_POINT('',(-4.607651662111E1,1.349446668384E2, +-1.205102002751E2)); +#3327=CARTESIAN_POINT('',(-4.618150125652E1,1.342366317707E2, +-1.199519578281E2)); +#3328=CARTESIAN_POINT('',(-4.627677746985E1,1.335401226308E2, +-1.195650404604E2)); +#3329=CARTESIAN_POINT('',(-4.636196820276E1,1.328670578201E2, +-1.193265450841E2)); +#3330=CARTESIAN_POINT('',(-4.641201488353E1,1.324454955895E2, +-1.192543096492E2)); +#3331=CARTESIAN_POINT('',(-4.643524979295E1,1.322410440894E2, +-1.192357422435E2)); +#3333=CARTESIAN_POINT('',(-2.699548547105E1,1.320473488850E2, +-9.704209929493E1)); +#3334=DIRECTION('',(-7.147364285034E-8,9.999619140095E-1,8.727572998824E-3)); +#3335=DIRECTION('',(-6.588805251745E-1,6.565248762067E-3,-7.522189515390E-1)); +#3336=AXIS2_PLACEMENT_3D('',#3333,#3334,#3335); +#3338=CARTESIAN_POINT('',(-6.149968290503E1,1.320473613056E2, +-9.704380495699E1)); +#3339=DIRECTION('',(-4.943472471579E-5,-8.727572991693E-3,9.999619127876E-1)); +#3340=DIRECTION('',(9.999999987738E-1,2.505094229810E-6,4.945847178275E-5)); +#3341=AXIS2_PLACEMENT_3D('',#3338,#3339,#3340); +#3343=CARTESIAN_POINT('',(-4.580220504967E1,1.322998214514E2, +-1.259693044791E2)); +#3344=DIRECTION('',(8.383996455986E-1,4.757075878580E-3,-5.450352323375E-1)); +#3345=DIRECTION('',(-7.674841987557E-6,9.999620159843E-1,8.715878018673E-3)); +#3346=AXIS2_PLACEMENT_3D('',#3343,#3344,#3345); +#3348=DIRECTION('',(-1.152471782641E-9,8.726422950817E-3,-9.999619240464E-1)); +#3349=VECTOR('',#3348,5.642089754183E1); +#3350=CARTESIAN_POINT('',(-6.149999992327E1,1.365548191118E2, +-4.058036561135E1)); +#3351=LINE('',#3350,#3349); +#3352=DIRECTION('',(-2.044992068045E-6,-8.726471179180E-3,9.999619236234E-1)); +#3353=VECTOR('',#3352,5.644578154995E1); +#3354=CARTESIAN_POINT('',(-5.649988670994E1,1.320473709055E2, +-9.704363285230E1)); +#3355=LINE('',#3354,#3353); +#3356=DIRECTION('',(-7.246099588101E-8,1.E0,-1.872036450088E-8)); +#3357=VECTOR('',#3356,2.954965242457E1); +#3358=CARTESIAN_POINT('',(-5.649999999992E1,1.020051459950E2,-4.06E1)); +#3359=LINE('',#3358,#3357); +#3360=CARTESIAN_POINT('',(-5.649999999992E1,-6.437090860656E1, +-8.410286813856E-1)); +#3361=DIRECTION('',(1.E0,0.E0,0.E0)); +#3362=DIRECTION('',(0.E0,8.244821190039E-1,-5.658880060956E-1)); +#3363=AXIS2_PLACEMENT_3D('',#3360,#3361,#3362); +#3365=CARTESIAN_POINT('',(-5.649999999992E1,-6.5E1,0.E0)); +#3366=DIRECTION('',(1.E0,0.E0,0.E0)); +#3367=DIRECTION('',(0.E0,8.379020253738E-1,-5.458206627405E-1)); +#3368=AXIS2_PLACEMENT_3D('',#3365,#3366,#3367); +#3370=CARTESIAN_POINT('',(-4.552254317174E1,1.373011871746E2, +-1.261058692337E2)); +#3371=CARTESIAN_POINT('',(-4.552613028698E1,1.373006523716E2, +-1.260445868816E2)); +#3372=CARTESIAN_POINT('',(-4.553346779995E1,1.372980945808E2, +-1.259215932398E2)); +#3373=CARTESIAN_POINT('',(-4.554497183954E1,1.372897230537E2, +-1.257358048247E2)); +#3374=CARTESIAN_POINT('',(-4.555296888560E1,1.372811199919E2, +-1.256111915057E2)); +#3375=CARTESIAN_POINT('',(-4.555705140993E1,1.372760360081E2, +-1.255486970194E2)); +#3377=DIRECTION('',(9.831459747310E-13,-1.E0,-2.630371698635E-14)); +#3378=VECTOR('',#3377,9.967803015503E1); +#3379=CARTESIAN_POINT('',(-9.499999999999E1,1.891567856629E2,-3.86E1)); +#3380=LINE('',#3379,#3378); +#3381=DIRECTION('',(0.E0,1.E0,4.478311508807E-14)); +#3382=VECTOR('',#3381,1.916650110449E2); +#3383=CARTESIAN_POINT('',(-1.E2,9.333498895332E1,-4.360000000001E1)); +#3384=LINE('',#3383,#3382); +#3385=DIRECTION('',(4.857291067759E-11,-1.E0,-9.554104568030E-14)); +#3386=VECTOR('',#3385,7.243678564563E1); +#3387=CARTESIAN_POINT('',(-9.499999999999E1,2.85E2,-3.859999999999E1)); +#3388=LINE('',#3387,#3386); +#3389=DIRECTION('',(3.852455235574E-12,0.E0,-1.E0)); +#3390=VECTOR('',#3389,8.330000001438E1); +#3391=CARTESIAN_POINT('',(-6.719223416952E1,2.95E2,-4.359999999534E1)); +#3392=LINE('',#3391,#3390); +#3393=DIRECTION('',(0.E0,0.E0,1.E0)); +#3394=VECTOR('',#3393,8.329999999988E1); +#3395=CARTESIAN_POINT('',(-6.519223417048E1,2.93E2,-1.268999999999E2)); +#3396=LINE('',#3395,#3394); +#3397=CARTESIAN_POINT('',(-5.519223417048E1,2.93E2,-1.389E2)); +#3398=DIRECTION('',(1.E0,0.E0,0.E0)); +#3399=DIRECTION('',(0.E0,1.E0,1.421085471520E-14)); +#3400=AXIS2_PLACEMENT_3D('',#3397,#3398,#3399); +#3402=CARTESIAN_POINT('',(-5.519223417048E1,2.93E2,-1.269E2)); +#3403=DIRECTION('',(0.E0,1.E0,0.E0)); +#3404=DIRECTION('',(-8.152511554727E-10,0.E0,-1.E0)); +#3405=AXIS2_PLACEMENT_3D('',#3402,#3403,#3404); +#3407=CARTESIAN_POINT('',(-6.719223417048E1,2.93E2,-1.269E2)); +#3408=DIRECTION('',(0.E0,0.E0,1.E0)); +#3409=DIRECTION('',(1.E0,0.E0,0.E0)); +#3410=AXIS2_PLACEMENT_3D('',#3407,#3408,#3409); +#3412=DIRECTION('',(1.E0,0.E0,0.E0)); +#3413=VECTOR('',#3412,5.464591307214E1); +#3414=CARTESIAN_POINT('',(-5.519223418150E1,2.95E2,-1.388999999986E2)); +#3415=LINE('',#3414,#3413); +#3416=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3417=VECTOR('',#3416,5.464591305933E1); +#3418=CARTESIAN_POINT('',(-5.463211152221E-1,2.93E2,-1.369E2)); +#3419=LINE('',#3418,#3417); +#3420=CARTESIAN_POINT('',(1.145367888040E1,2.93E2,-1.269E2)); +#3421=DIRECTION('',(0.E0,0.E0,1.E0)); +#3422=DIRECTION('',(-2.150279954094E-12,1.E0,0.E0)); +#3423=AXIS2_PLACEMENT_3D('',#3420,#3421,#3422); +#3425=CARTESIAN_POINT('',(-5.463211195957E-1,2.93E2,-1.269E2)); +#3426=DIRECTION('',(0.E0,1.E0,0.E0)); +#3427=DIRECTION('',(1.E0,0.E0,0.E0)); +#3428=AXIS2_PLACEMENT_3D('',#3425,#3426,#3427); +#3430=CARTESIAN_POINT('',(-5.463211195957E-1,2.93E2,-1.389E2)); +#3431=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3432=DIRECTION('',(0.E0,2.842170943040E-14,1.E0)); +#3433=AXIS2_PLACEMENT_3D('',#3430,#3431,#3432); +#3435=DIRECTION('',(8.639553718901E-14,-1.E0,3.979039320257E-13)); +#3436=VECTOR('',#3435,1.1E1); +#3437=CARTESIAN_POINT('',(9.453678880403E0,2.93E2,-1.269E2)); +#3438=LINE('',#3437,#3436); +#3439=DIRECTION('',(-1.325325909624E-10,1.E0,0.E0)); +#3440=VECTOR('',#3439,1.1E1); +#3441=CARTESIAN_POINT('',(-5.463211137643E-1,2.82E2,-1.369E2)); +#3442=LINE('',#3441,#3440); +#3443=CARTESIAN_POINT('',(-5.463211195957E-1,2.82E2,-1.269E2)); +#3444=DIRECTION('',(0.E0,-1.E0,0.E0)); +#3445=DIRECTION('',(0.E0,0.E0,-1.E0)); +#3446=AXIS2_PLACEMENT_3D('',#3443,#3444,#3445); +#3448=CARTESIAN_POINT('',(-6.346321119596E0,2.82E2,-1.541E2)); +#3449=DIRECTION('',(0.E0,1.E0,0.E0)); +#3450=DIRECTION('',(1.E0,0.E0,0.E0)); +#3451=AXIS2_PLACEMENT_3D('',#3448,#3449,#3450); +#3453=CARTESIAN_POINT('',(-4.939223417048E1,2.82E2,-1.541E2)); +#3454=DIRECTION('',(0.E0,1.E0,0.E0)); +#3455=DIRECTION('',(0.E0,0.E0,-1.E0)); +#3456=AXIS2_PLACEMENT_3D('',#3453,#3454,#3455); +#3458=CARTESIAN_POINT('',(-5.519223417048E1,2.82E2,-1.269E2)); +#3459=DIRECTION('',(0.E0,-1.E0,0.E0)); +#3460=DIRECTION('',(-1.E0,0.E0,1.136868377216E-14)); +#3461=AXIS2_PLACEMENT_3D('',#3458,#3459,#3460); +#3463=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3464=VECTOR('',#3463,5.464591306215E1); +#3465=CARTESIAN_POINT('',(-5.463211137643E-1,2.82E2,-1.369E2)); +#3466=LINE('',#3465,#3464); +#3467=DIRECTION('',(-1.235220410804E-10,-1.E0,0.E0)); +#3468=VECTOR('',#3467,1.1E1); +#3469=CARTESIAN_POINT('',(-5.519223417456E1,2.93E2,-1.369E2)); +#3470=LINE('',#3469,#3468); +#3471=DIRECTION('',(0.E0,1.E0,-3.507497322888E-12)); +#3472=VECTOR('',#3471,1.1E1); +#3473=CARTESIAN_POINT('',(-6.519223417048E1,2.82E2,-1.268999999998E2)); +#3474=LINE('',#3473,#3472); +#3475=DIRECTION('',(0.E0,0.E0,-1.E0)); +#3476=VECTOR('',#3475,2.720000000015E1); +#3477=CARTESIAN_POINT('',(-6.519223417048E1,2.82E2,-1.268999999998E2)); +#3478=LINE('',#3477,#3476); +#3479=DIRECTION('',(-9.996878113385E-10,1.E0,-6.660610183148E-11)); +#3480=VECTOR('',#3479,1.011683892210E1); +#3481=CARTESIAN_POINT('',(-6.519223416037E1,2.457916280694E2, +-5.359999999933E1)); +#3482=LINE('',#3481,#3480); +#3483=CARTESIAN_POINT('',(-6.519223417048E1,2.9E2,-4.36E1)); +#3484=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3485=DIRECTION('',(0.E0,4.357995445995E-13,1.E0)); +#3486=AXIS2_PLACEMENT_3D('',#3483,#3484,#3485); +#3488=DIRECTION('',(3.693715621915E-14,-1.E0,1.054356384096E-13)); +#3489=VECTOR('',#3488,4.097381017071E1); +#3490=CARTESIAN_POINT('',(-4.939223417048E1,2.82E2,-1.699E2)); +#3491=LINE('',#3490,#3489); +#3492=DIRECTION('',(1.580697130987E-14,1.E0,0.E0)); +#3493=VECTOR('',#3492,4.135512768920E1); +#3494=CARTESIAN_POINT('',(-6.519223417048E1,2.406448723108E2,-1.541E2)); +#3495=LINE('',#3494,#3493); +#3496=DIRECTION('',(1.E0,0.E0,0.E0)); +#3497=VECTOR('',#3496,4.304591305088E1); +#3498=CARTESIAN_POINT('',(-4.939223417048E1,2.82E2,-1.699E2)); +#3499=LINE('',#3498,#3497); +#3500=DIRECTION('',(2.561946100536E-14,-1.E0,-1.276540617568E-14)); +#3501=VECTOR('',#3500,4.007634090970E1); +#3502=CARTESIAN_POINT('',(9.453678880404E0,2.82E2,-1.541E2)); +#3503=LINE('',#3502,#3501); +#3504=DIRECTION('',(4.391978899050E-14,1.E0,-1.396311614036E-13)); +#3505=VECTOR('',#3504,4.050614576141E1); +#3506=CARTESIAN_POINT('',(-6.346321119598E0,2.414938542386E2,-1.699E2)); +#3507=LINE('',#3506,#3505); +#3508=CARTESIAN_POINT('',(-2.699646879019E1,2.435568685852E2, +-1.698999999753E2)); +#3509=CARTESIAN_POINT('',(-2.438178383367E1,2.435571006446E2, +-1.698999999753E2)); +#3510=CARTESIAN_POINT('',(-1.936517102826E1,2.434269696350E2, +-1.699000000115E2)); +#3511=CARTESIAN_POINT('',(-1.244489516718E1,2.427652335746E2, +-1.698999999967E2)); +#3512=CARTESIAN_POINT('',(-8.302781614021E0,2.419797625509E2,-1.699E2)); +#3513=CARTESIAN_POINT('',(-6.346321119598E0,2.414938542386E2,-1.699E2)); +#3515=CARTESIAN_POINT('',(-6.346321119598E0,2.414938542386E2,-1.699E2)); +#3516=CARTESIAN_POINT('',(-5.226871113415E0,2.412158266143E2,-1.699E2)); +#3517=CARTESIAN_POINT('',(-2.975695685062E0,2.407628702315E2, +-1.696677975453E2)); +#3518=CARTESIAN_POINT('',(3.738472951313E-1,2.403847691085E2, +-1.685363560970E2)); +#3519=CARTESIAN_POINT('',(3.227988773549E0,2.402969219138E2,-1.668156154926E2)); +#3520=CARTESIAN_POINT('',(5.762395300547E0,2.404254787539E2,-1.644559630782E2)); +#3521=CARTESIAN_POINT('',(7.817933548375E0,2.407456153803E2,-1.614262622168E2)); +#3522=CARTESIAN_POINT('',(9.152308127796E0,2.412112251165E2,-1.578735008580E2)); +#3523=CARTESIAN_POINT('',(9.453678880405E0,2.416583418682E2,-1.553610983619E2)); +#3524=CARTESIAN_POINT('',(9.453678880405E0,2.419236590903E2,-1.541E2)); +#3526=CARTESIAN_POINT('',(9.453678880405E0,2.419236590903E2,-1.541E2)); +#3527=CARTESIAN_POINT('',(9.453678880405E0,2.421099193456E2,-1.532146729904E2)); +#3528=CARTESIAN_POINT('',(9.453678878643E0,2.424325854385E2,-1.513884713859E2)); +#3529=CARTESIAN_POINT('',(9.453678886568E0,2.427871072975E2,-1.484772502792E2)); +#3530=CARTESIAN_POINT('',(9.453678867197E0,2.429551774685E2,-1.464445394691E2)); +#3531=CARTESIAN_POINT('',(9.453678867197E0,2.430292775469E2,-1.454039139649E2)); +#3533=CARTESIAN_POINT('',(9.453678867197E0,2.430292775469E2,-1.454039139649E2)); +#3534=CARTESIAN_POINT('',(1.109283200149E1,2.419808698920E2,-1.454018476793E2)); +#3535=CARTESIAN_POINT('',(1.413898475427E1,2.396807227330E2,-1.453976410483E2)); +#3536=CARTESIAN_POINT('',(1.840019914681E1,2.345171575170E2,-1.453889396728E2)); +#3537=CARTESIAN_POINT('',(2.070480247658E1,2.303083820510E2,-1.453825315156E2)); +#3538=CARTESIAN_POINT('',(2.295110146466E1,2.246518351249E2,-1.453749358849E2)); +#3539=CARTESIAN_POINT('',(2.458894626542E1,2.177517853252E2,-1.453671606278E2)); +#3540=CARTESIAN_POINT('',(2.562018165357E1,2.095112947888E2,-1.453592682784E2)); +#3541=CARTESIAN_POINT('',(2.585515169083E1,2.029359048540E2,-1.453549508653E2)); +#3542=CARTESIAN_POINT('',(2.585522121497E1,1.994798490635E2,-1.453530603990E2)); +#3544=CARTESIAN_POINT('',(2.585522121497E1,1.994798490635E2,-1.453530603990E2)); +#3545=CARTESIAN_POINT('',(2.574772123231E1,1.994798053176E2,-1.482735871106E2)); +#3546=CARTESIAN_POINT('',(2.533519428126E1,1.994797336578E2,-1.540566125332E2)); +#3547=CARTESIAN_POINT('',(2.342568194498E1,1.994795934837E2,-1.608885817753E2)); +#3548=CARTESIAN_POINT('',(2.087731132056E1,1.994793631244E2,-1.659867720001E2)); +#3549=CARTESIAN_POINT('',(1.861838863553E1,1.994794607481E2,-1.696721650578E2)); +#3550=CARTESIAN_POINT('',(1.632808573943E1,1.994798685214E2,-1.729975001106E2)); +#3551=CARTESIAN_POINT('',(1.477541296306E1,1.994802816857E2,-1.750954092614E2)); +#3552=CARTESIAN_POINT('',(1.406884648070E1,1.994805383177E2,-1.760029303392E2)); +#3554=CARTESIAN_POINT('',(1.406884648070E1,1.994805383177E2,-1.760029303392E2)); +#3555=CARTESIAN_POINT('',(1.406543982356E1,2.014280350164E2,-1.760029303392E2)); +#3556=CARTESIAN_POINT('',(1.397433088887E1,2.051334594079E2,-1.760029751337E2)); +#3557=CARTESIAN_POINT('',(1.357805753038E1,2.101196798505E2,-1.760029571297E2)); +#3558=CARTESIAN_POINT('',(1.291809116550E1,2.145435763355E2,-1.760029619539E2)); +#3559=CARTESIAN_POINT('',(1.201589386117E1,2.183831297510E2,-1.760029606612E2)); +#3560=CARTESIAN_POINT('',(1.089318741089E1,2.216686396471E2,-1.760029610076E2)); +#3561=CARTESIAN_POINT('',(9.587602073596E0,2.244599392260E2,-1.760029609148E2)); +#3562=CARTESIAN_POINT('',(8.094753473264E0,2.268581651515E2,-1.760029609397E2)); +#3563=CARTESIAN_POINT('',(6.406321398251E0,2.289343878477E2,-1.760029609330E2)); +#3564=CARTESIAN_POINT('',(4.519371059636E0,2.307368116405E2,-1.760029609348E2)); +#3565=CARTESIAN_POINT('',(2.340585970535E0,2.323423636469E2,-1.760029609343E2)); +#3566=CARTESIAN_POINT('',(-1.939896747627E-1,2.337636767715E2, +-1.760029609343E2)); +#3567=CARTESIAN_POINT('',(-3.183833133521E0,2.350099193391E2, +-1.760029609350E2)); +#3568=CARTESIAN_POINT('',(-6.719554762534E0,2.360609351068E2, +-1.760029609322E2)); +#3569=CARTESIAN_POINT('',(-1.083875875974E1,2.368878309854E2, +-1.760029609427E2)); +#3570=CARTESIAN_POINT('',(-1.552953442449E1,2.374721732920E2, +-1.760029609033E2)); +#3571=CARTESIAN_POINT('',(-2.084757450236E1,2.378144555339E2, +-1.760029610504E2)); +#3572=CARTESIAN_POINT('',(-2.487054103525E1,2.378881192316E2, +-1.760029606844E2)); +#3573=CARTESIAN_POINT('',(-2.699653848303E1,2.378900065293E2, +-1.760029606844E2)); +#3575=CARTESIAN_POINT('',(9.453678867197E0,2.430292775469E2,-1.454039139649E2)); +#3576=CARTESIAN_POINT('',(9.453678867197E0,2.434630730651E2,-1.351391356536E2)); +#3577=CARTESIAN_POINT('',(9.453678884322E0,2.443153550725E2,-1.146521581803E2)); +#3578=CARTESIAN_POINT('',(9.453678886500E0,2.455814950528E2,-8.405083821406E1)); +#3579=CARTESIAN_POINT('',(9.453678863567E0,2.464162399616E2,-6.373602387344E1)); +#3580=CARTESIAN_POINT('',(9.453678863567E0,2.468280368970E2,-5.359999999877E1)); +#3582=CARTESIAN_POINT('',(-6.806140416174E1,1.994805390271E2, +-1.760029915268E2)); +#3583=CARTESIAN_POINT('',(-6.805798931725E1,2.014326362921E2, +-1.760029915268E2)); +#3584=CARTESIAN_POINT('',(-6.796656136103E1,2.051452623335E2, +-1.760029467364E2)); +#3585=CARTESIAN_POINT('',(-6.756907017575E1,2.101348933442E2, +-1.760029647387E2)); +#3586=CARTESIAN_POINT('',(-6.690776932734E1,2.145589840146E2, +-1.760029599150E2)); +#3587=CARTESIAN_POINT('',(-6.600521737986E1,2.183950903031E2, +-1.760029612075E2)); +#3588=CARTESIAN_POINT('',(-6.487927483119E1,2.216855352177E2, +-1.760029608612E2)); +#3589=CARTESIAN_POINT('',(-6.357015156686E1,2.244794485926E2, +-1.760029609540E2)); +#3590=CARTESIAN_POINT('',(-6.206884012961E1,2.268845935976E2, +-1.760029609291E2)); +#3591=CARTESIAN_POINT('',(-6.037796961253E1,2.289570387501E2, +-1.760029609358E2)); +#3592=CARTESIAN_POINT('',(-5.848570057125E1,2.307592770117E2, +-1.760029609340E2)); +#3593=CARTESIAN_POINT('',(-5.629819606148E1,2.323648793187E2, +-1.760029609345E2)); +#3594=CARTESIAN_POINT('',(-5.376331007985E1,2.337804457525E2, +-1.760029609342E2)); +#3595=CARTESIAN_POINT('',(-5.077556782253E1,2.350213830375E2, +-1.760029609350E2)); +#3596=CARTESIAN_POINT('',(-4.724263400974E1,2.360681836143E2, +-1.760029609322E2)); +#3597=CARTESIAN_POINT('',(-4.312699174315E1,2.368919280655E2, +-1.760029609427E2)); +#3598=CARTESIAN_POINT('',(-3.844344015747E1,2.374737667619E2, +-1.760029609033E2)); +#3599=CARTESIAN_POINT('',(-3.313478706916E1,2.378146924384E2, +-1.760029610504E2)); +#3600=CARTESIAN_POINT('',(-2.911872339779E1,2.378881186272E2, +-1.760029606844E2)); +#3601=CARTESIAN_POINT('',(-2.699653848303E1,2.378900065293E2, +-1.760029606844E2)); +#3603=CARTESIAN_POINT('',(1.406884648070E1,1.994805383177E2,-1.760029303392E2)); +#3604=CARTESIAN_POINT('',(1.407234637682E1,1.974814642308E2,-1.760029303392E2)); +#3605=CARTESIAN_POINT('',(1.398945027809E1,1.936882719727E2,-1.760029751337E2)); +#3606=CARTESIAN_POINT('',(1.359486628616E1,1.886265959101E2,-1.760029571297E2)); +#3607=CARTESIAN_POINT('',(1.293040354232E1,1.841532992809E2,-1.760029619539E2)); +#3608=CARTESIAN_POINT('',(1.200625668606E1,1.802398659638E2,-1.760029606612E2)); +#3609=CARTESIAN_POINT('',(1.085791592947E1,1.769187923323E2,-1.760029610076E2)); +#3610=CARTESIAN_POINT('',(9.541242311982E0,1.741376945623E2,-1.760029609148E2)); +#3611=CARTESIAN_POINT('',(8.068987190885E0,1.717878029958E2,-1.760029609397E2)); +#3612=CARTESIAN_POINT('',(6.414348479921E0,1.697452004668E2,-1.760029609330E2)); +#3613=CARTESIAN_POINT('',(4.559638419025E0,1.679528437262E2,-1.760029609348E2)); +#3614=CARTESIAN_POINT('',(2.409447069507E0,1.663386398383E2,-1.760029609343E2)); +#3615=CARTESIAN_POINT('',(-9.032546587824E-2,1.648992135332E2, +-1.760029609344E2)); +#3616=CARTESIAN_POINT('',(-3.052670718993E0,1.636183544358E2, +-1.760029609346E2)); +#3617=CARTESIAN_POINT('',(-6.601485130969E0,1.625161069080E2, +-1.760029609338E2)); +#3618=CARTESIAN_POINT('',(-1.072270161945E1,1.616452456428E2, +-1.760029609366E2)); +#3619=CARTESIAN_POINT('',(-1.543749914317E1,1.610211405646E2, +-1.760029609261E2)); +#3620=CARTESIAN_POINT('',(-2.079038701338E1,1.606526740978E2, +-1.760029609655E2)); +#3621=CARTESIAN_POINT('',(-2.484951154968E1,1.605738516039E2, +-1.760029608673E2)); +#3622=CARTESIAN_POINT('',(-2.699625742765E1,1.605733218830E2, +-1.760029608673E2)); +#3624=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-1.760029609344E2)); +#3625=DIRECTION('',(0.E0,0.E0,1.E0)); +#3626=DIRECTION('',(0.E0,1.E0,0.E0)); +#3627=AXIS2_PLACEMENT_3D('',#3624,#3625,#3626); +#3629=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-1.760029609344E2)); +#3630=DIRECTION('',(0.E0,0.E0,1.E0)); +#3631=DIRECTION('',(0.E0,-1.E0,0.E0)); +#3632=AXIS2_PLACEMENT_3D('',#3629,#3630,#3631); +#3634=CARTESIAN_POINT('',(-6.519223416210E1,2.418282421301E2, +-1.454012464152E2)); +#3635=CARTESIAN_POINT('',(-6.519223416210E1,2.417489015647E2, +-1.464457416963E2)); +#3636=CARTESIAN_POINT('',(-6.519223417439E1,2.415688394655E2, +-1.484839405693E2)); +#3637=CARTESIAN_POINT('',(-6.519223416936E1,2.411889784370E2, +-1.513971262343E2)); +#3638=CARTESIAN_POINT('',(-6.519223417048E1,2.408438534183E2, +-1.532185402249E2)); +#3639=CARTESIAN_POINT('',(-6.519223417048E1,2.406448723108E2,-1.541E2)); +#3641=CARTESIAN_POINT('',(-6.519223417048E1,2.406448723108E2,-1.541E2)); +#3642=CARTESIAN_POINT('',(-6.519223417048E1,2.403542736075E2, +-1.553873135087E2)); +#3643=CARTESIAN_POINT('',(-6.487769871294E1,2.398824525580E2, +-1.579594413957E2)); +#3644=CARTESIAN_POINT('',(-6.347429498136E1,2.394664916203E2, +-1.616066008062E2)); +#3645=CARTESIAN_POINT('',(-6.128563229559E1,2.392742003805E2, +-1.647131488512E2)); +#3646=CARTESIAN_POINT('',(-5.866584292628E1,2.393360075196E2, +-1.670381787947E2)); +#3647=CARTESIAN_POINT('',(-5.576661507003E1,2.396339660413E2, +-1.686890919880E2)); +#3648=CARTESIAN_POINT('',(-5.249924926339E1,2.402092300774E2, +-1.697093423836E2)); +#3649=CARTESIAN_POINT('',(-5.041103649280E1,2.407324760783E2,-1.699E2)); +#3650=CARTESIAN_POINT('',(-4.939223417048E1,2.410261898293E2,-1.699E2)); +#3652=CARTESIAN_POINT('',(-4.939223417048E1,2.410261898293E2,-1.699E2)); +#3653=CARTESIAN_POINT('',(-4.733417159763E1,2.416195152122E2,-1.699E2)); +#3654=CARTESIAN_POINT('',(-4.292638308793E1,2.425819665619E2, +-1.698999999967E2)); +#3655=CARTESIAN_POINT('',(-3.540757595141E1,2.433979265107E2, +-1.699000000115E2)); +#3656=CARTESIAN_POINT('',(-2.988998207468E1,2.435571178744E2, +-1.698999999753E2)); +#3657=CARTESIAN_POINT('',(-2.699646879019E1,2.435568685852E2, +-1.698999999753E2)); +#3659=CARTESIAN_POINT('',(-2.699646879019E1,2.435568685852E2, +-1.698999999753E2)); +#3660=CARTESIAN_POINT('',(-2.699647480892E1,2.426584215143E2, +-1.710499087607E2)); +#3661=CARTESIAN_POINT('',(-2.699673742983E1,2.408623062244E2, +-1.731176397550E2)); +#3662=CARTESIAN_POINT('',(-2.699615902616E1,2.388794395588E2, +-1.751110915366E2)); +#3663=CARTESIAN_POINT('',(-2.699653848303E1,2.378900065293E2, +-1.760029606844E2)); +#3665=CARTESIAN_POINT('',(-6.519223416037E1,2.457916280694E2, +-5.359999999933E1)); +#3666=CARTESIAN_POINT('',(-6.519223416037E1,2.453661327095E2, +-6.370539605698E1)); +#3667=CARTESIAN_POINT('',(-6.519223417408E1,2.444977156847E2, +-8.397903419616E1)); +#3668=CARTESIAN_POINT('',(-6.519223417304E1,2.431763801840E2, +-1.145794597676E2)); +#3669=CARTESIAN_POINT('',(-6.519223416210E1,2.422857069978E2, +-1.351064787213E2)); +#3670=CARTESIAN_POINT('',(-6.519223416210E1,2.418282421301E2, +-1.454012464152E2)); +#3672=CARTESIAN_POINT('',(-6.519223416210E1,2.418282421301E2, +-1.454012464152E2)); +#3673=CARTESIAN_POINT('',(-6.692724317260E1,2.405450642175E2, +-1.453988711931E2)); +#3674=CARTESIAN_POINT('',(-7.007795340286E1,2.377195549667E2, +-1.453939165365E2)); +#3675=CARTESIAN_POINT('',(-7.409465244942E1,2.316893623031E2, +-1.453840571132E2)); +#3676=CARTESIAN_POINT('',(-7.630648477635E1,2.265240458777E2, +-1.453770443692E2)); +#3677=CARTESIAN_POINT('',(-7.835185727216E1,2.191917022857E2, +-1.453684839862E2)); +#3678=CARTESIAN_POINT('',(-7.955806471778E1,2.104584345250E2, +-1.453599013083E2)); +#3679=CARTESIAN_POINT('',(-7.984778165445E1,2.032727254985E2, +-1.453552829270E2)); +#3680=CARTESIAN_POINT('',(-7.984786345021E1,1.994798494009E2, +-1.453530603986E2)); +#3682=DIRECTION('',(-3.675732583232E-2,-1.818758606246E-9,9.993242211603E-1)); +#3683=VECTOR('',#3682,9.181504031539E1); +#3684=CARTESIAN_POINT('',(-7.984786345021E1,1.994798494009E2, +-1.453530603986E2)); +#3685=LINE('',#3684,#3683); +#3686=DIRECTION('',(-2.587323867038E-2,-2.505177937318E-2,9.993512815176E-1)); +#3687=VECTOR('',#3686,6.979578633727E1); +#3688=CARTESIAN_POINT('',(-6.777615979024E1,1.582110141035E2, +-1.233505802246E2)); +#3689=LINE('',#3688,#3687); +#3690=CARTESIAN_POINT('',(-6.367143249596E1,1.560529200800E2, +-1.450202262551E2)); +#3691=CARTESIAN_POINT('',(-6.457263193212E1,1.565381366945E2, +-1.426331874584E2)); +#3692=CARTESIAN_POINT('',(-6.603383306462E1,1.574061184263E2, +-1.378410646850E2)); +#3693=CARTESIAN_POINT('',(-6.737969648221E1,1.581829814190E2, +-1.302791953863E2)); +#3694=CARTESIAN_POINT('',(-6.772983436531E1,1.582792497984E2, +-1.256303125306E2)); +#3695=CARTESIAN_POINT('',(-6.777615979024E1,1.582110141035E2, +-1.233505802246E2)); +#3697=DIRECTION('',(0.E0,0.E0,1.E0)); +#3698=VECTOR('',#3697,1.399703906560E1); +#3699=CARTESIAN_POINT('',(-2.699974430812E1,1.8586E2,-1.9E2)); +#3700=LINE('',#3699,#3698); +#3701=DIRECTION('',(0.E0,0.E0,1.E0)); +#3702=VECTOR('',#3701,1.399703906560E1); +#3703=CARTESIAN_POINT('',(-2.699974430812E1,2.1586E2,-1.9E2)); +#3704=LINE('',#3703,#3702); +#3705=DIRECTION('',(2.513618591865E-3,9.999716711231E-1,7.094975190030E-3)); +#3706=VECTOR('',#3705,3.017486083973E1); +#3707=CARTESIAN_POINT('',(-4.309414992402E1,3.499999962189E1, +-1.226153382100E2)); +#3708=LINE('',#3707,#3706); +#3709=DIRECTION('',(1.E0,0.E0,0.E0)); +#3710=VECTOR('',#3709,1.3E1); +#3711=CARTESIAN_POINT('',(-5.949999999992E1,-2.1E2,-1.5E1)); +#3712=LINE('',#3711,#3710); +#3713=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3714=VECTOR('',#3713,1.3E1); +#3715=CARTESIAN_POINT('',(-4.649999999992E1,-2.18E2,-7.E0)); +#3716=LINE('',#3715,#3714); +#3717=DIRECTION('',(-6.294336607922E-14,1.E0,1.642991998454E-9)); +#3718=VECTOR('',#3717,1.444941315385E1); +#3719=CARTESIAN_POINT('',(-8.5E1,-2.5E2,-7.499999998923E1)); +#3720=LINE('',#3719,#3718); +#3721=CARTESIAN_POINT('',(-8.5E1,-6.5E1,0.E0)); +#3722=DIRECTION('',(1.E0,0.E0,0.E0)); +#3723=DIRECTION('',(0.E0,-9.153986234780E-1,-4.025485810864E-1)); +#3724=AXIS2_PLACEMENT_3D('',#3721,#3722,#3723); +#3726=DIRECTION('',(-3.292875515484E-12,2.588656593361E-11,1.E0)); +#3727=VECTOR('',#3726,4.358793156577E-1); +#3728=CARTESIAN_POINT('',(-6.149999999992E1,-2.244427602564E2,-9.38E1)); +#3729=LINE('',#3728,#3727); +#3730=CARTESIAN_POINT('',(-6.149999999992E1,-6.5E1,0.E0)); +#3731=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3732=DIRECTION('',(0.E0,-8.629394876408E-1,-5.053072735181E-1)); +#3733=AXIS2_PLACEMENT_3D('',#3730,#3731,#3732); +#3735=DIRECTION('',(8.937065072993E-14,-1.E0,-8.137131711534E-11)); +#3736=VECTOR('',#3735,1.613954628071E1); +#3737=CARTESIAN_POINT('',(-6.149999999992E1,-2.338604537193E2, +-7.499999999836E1)); +#3738=LINE('',#3737,#3736); +#3739=CARTESIAN_POINT('',(-6.149999999992E1,-6.5E1,0.E0)); +#3740=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3741=DIRECTION('',(0.E0,-8.477489624525E-1,-5.303976778425E-1)); +#3742=AXIS2_PLACEMENT_3D('',#3739,#3740,#3741); +#3744=CARTESIAN_POINT('',(-6.195878103591E1,-2.244427602564E2, +-9.351465573056E1)); +#3745=CARTESIAN_POINT('',(-6.190734672012E1,-2.244427602564E2, +-9.349935265957E1)); +#3746=CARTESIAN_POINT('',(-6.180479096494E1,-2.244427602564E2, +-9.346777272871E1)); +#3747=CARTESIAN_POINT('',(-6.165182757551E1,-2.244427602564E2, +-9.341759372762E1)); +#3748=CARTESIAN_POINT('',(-6.155050810934E1,-2.244427602564E2, +-9.338224811400E1)); +#3749=CARTESIAN_POINT('',(-6.149999999992E1,-2.244427602564E2, +-9.336412068434E1)); +#3751=DIRECTION('',(-5.716820088918E-12,1.E0,1.265470854634E-11)); +#3752=VECTOR('',#3751,2.560370998036E-1); +#3753=CARTESIAN_POINT('',(-6.149999999992E1,-2.244427602564E2,-9.38E1)); +#3754=LINE('',#3753,#3752); +#3755=CARTESIAN_POINT('',(-6.149999999992E1,-2.241867231566E2,-9.38E1)); +#3756=CARTESIAN_POINT('',(-6.155080353904E1,-2.241974172076E2,-9.38E1)); +#3757=CARTESIAN_POINT('',(-6.165252511339E1,-2.242182213722E2,-9.38E1)); +#3758=CARTESIAN_POINT('',(-6.180546511184E1,-2.242476685405E2,-9.38E1)); +#3759=CARTESIAN_POINT('',(-6.190763860206E1,-2.242661258199E2,-9.38E1)); +#3760=CARTESIAN_POINT('',(-6.195878103591E1,-2.242750596753E2,-9.38E1)); +#3762=DIRECTION('',(1.E0,-1.851168452293E-13,0.E0)); +#3763=VECTOR('',#3762,4.606016712611E-1); +#3764=CARTESIAN_POINT('',(-6.196060167118E1,-2.244427602564E2,-9.38E1)); +#3765=LINE('',#3764,#3763); +#3766=CARTESIAN_POINT('',(-6.195878103592E1,-6.5E1,0.E0)); +#3767=DIRECTION('',(1.E0,0.E0,0.E0)); +#3768=DIRECTION('',(0.E0,-8.625841585866E-1,-5.059135987058E-1)); +#3769=AXIS2_PLACEMENT_3D('',#3766,#3767,#3768); +#3771=CARTESIAN_POINT('',(-6.331964059014E1,-6.5E1,0.E0)); +#3772=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3773=DIRECTION('',(0.E0,-7.027525092460E-1,-7.114344036862E-1)); +#3774=AXIS2_PLACEMENT_3D('',#3771,#3772,#3773); +#3776=CARTESIAN_POINT('',(-6.331964059014E1,-2.341010020063E2, +-7.499999999999E1)); +#3777=CARTESIAN_POINT('',(-6.311634874707E1,-2.340874000679E2, +-7.499999999999E1)); +#3778=CARTESIAN_POINT('',(-6.271049580400E1,-2.340514519023E2, +-7.499999999979E1)); +#3779=CARTESIAN_POINT('',(-6.210323211994E1,-2.339712096214E2, +-7.500000000076E1)); +#3780=CARTESIAN_POINT('',(-6.170075654350E1,-2.339002916604E2, +-7.499999999836E1)); +#3781=CARTESIAN_POINT('',(-6.149999999992E1,-2.338604537193E2, +-7.499999999836E1)); +#3783=CARTESIAN_POINT('',(-6.195878103591E1,-2.244427602564E2, +-9.351465573056E1)); +#3784=CARTESIAN_POINT('',(-6.195898306889E1,-2.244427602564E2, +-9.354635584342E1)); +#3785=CARTESIAN_POINT('',(-6.196011625060E1,-2.244427602564E2, +-9.360975157701E1)); +#3786=CARTESIAN_POINT('',(-6.195926664081E1,-2.244427602564E2, +-9.370486949666E1)); +#3787=CARTESIAN_POINT('',(-6.196039908521E1,-2.244427602564E2, +-9.376828503963E1)); +#3788=CARTESIAN_POINT('',(-6.196060167118E1,-2.244427602564E2,-9.38E1)); +#3790=CARTESIAN_POINT('',(-6.196060167118E1,-2.244427602564E2,-9.38E1)); +#3791=CARTESIAN_POINT('',(-6.195999471063E1,-2.243868600636E2,-9.38E1)); +#3792=CARTESIAN_POINT('',(-6.195938783215E1,-2.243309598699E2,-9.38E1)); +#3793=CARTESIAN_POINT('',(-6.195878103591E1,-2.242750596753E2,-9.38E1)); +#3795=CARTESIAN_POINT('',(-4.75E1,-2.5E2,-1.257488738510E2)); +#3796=CARTESIAN_POINT('',(-4.75E1,-2.490603027780E2,-1.257488738510E2)); +#3797=CARTESIAN_POINT('',(-4.730429358266E1,-2.471836948206E2, +-1.258962447251E2)); +#3798=CARTESIAN_POINT('',(-4.621032549758E1,-2.441698945726E2, +-1.266739385789E2)); +#3799=CARTESIAN_POINT('',(-4.441621865905E1,-2.415748275468E2, +-1.278162105079E2)); +#3800=CARTESIAN_POINT('',(-4.194499828608E1,-2.394398235152E2, +-1.291432296530E2)); +#3801=CARTESIAN_POINT('',(-3.904631112353E1,-2.380236059031E2, +-1.303855268203E2)); +#3802=CARTESIAN_POINT('',(-3.581098912580E1,-2.373896147189E2, +-1.314111832608E2)); +#3803=CARTESIAN_POINT('',(-3.269192269666E1,-2.375835996554E2, +-1.320744315071E2)); +#3804=CARTESIAN_POINT('',(-2.976056891020E1,-2.385305876351E2, +-1.324229500328E2)); +#3805=CARTESIAN_POINT('',(-2.745304459477E1,-2.399158807595E2, +-1.325190045770E2)); +#3806=CARTESIAN_POINT('',(-2.538550921099E1,-2.418372196525E2, +-1.324798922186E2)); +#3807=CARTESIAN_POINT('',(-2.373252536273E1,-2.443113521320E2, +-1.323536476895E2)); +#3808=CARTESIAN_POINT('',(-2.270886337103E1,-2.471641657284E2, +-1.322339464412E2)); +#3809=CARTESIAN_POINT('',(-2.25E1,-2.490432190900E2,-1.322052627530E2)); +#3810=CARTESIAN_POINT('',(-2.25E1,-2.5E2,-1.322052627530E2)); +#3812=DIRECTION('',(0.E0,1.E0,2.210542534789E-12)); +#3813=VECTOR('',#3812,6.087953162403E0); +#3814=CARTESIAN_POINT('',(7.500000000077E0,-2.5E2,-9.800000000001E1)); +#3815=LINE('',#3814,#3813); +#3816=DIRECTION('',(0.E0,1.E0,-3.510293411175E-13)); +#3817=VECTOR('',#3816,2.878368420812E1); +#3818=CARTESIAN_POINT('',(-6.416713281508E0,-2.237836842081E2, +-1.256871505913E2)); +#3819=LINE('',#3818,#3817); +#3820=CARTESIAN_POINT('',(-5.158087926405E1,-1.95E2,-1.222080642473E2)); +#3821=CARTESIAN_POINT('',(-5.236650435776E1,-1.972854701588E2, +-1.214103401758E2)); +#3822=CARTESIAN_POINT('',(-5.413055097031E1,-2.015967517132E2, +-1.194659197982E2)); +#3823=CARTESIAN_POINT('',(-5.692808457114E1,-2.074197877170E2, +-1.154301617082E2)); +#3824=CARTESIAN_POINT('',(-5.937191821138E1,-2.126049700899E2, +-1.104042282530E2)); +#3825=CARTESIAN_POINT('',(-6.107752299898E1,-2.173579097880E2, +-1.045012116898E2)); +#3826=CARTESIAN_POINT('',(-6.149999999992E1,-2.202534726833E2, +-1.002098141585E2)); +#3827=CARTESIAN_POINT('',(-6.149999999992E1,-2.216360521379E2, +-9.800000000001E1)); +#3829=DIRECTION('',(5.110385860234E-14,-1.E0,2.535152201253E-13)); +#3830=VECTOR('',#3829,2.836394786213E1); +#3831=CARTESIAN_POINT('',(-6.149999999992E1,-2.216360521379E2, +-9.800000000001E1)); +#3832=LINE('',#3831,#3830); +#3833=CARTESIAN_POINT('',(7.500000000076E0,-8.000179578406E1, +1.429144561350E-3)); +#3834=DIRECTION('',(1.E0,0.E0,0.E0)); +#3835=DIRECTION('',(0.E0,-8.901667905708E-1,-4.556348153563E-1)); +#3836=AXIS2_PLACEMENT_3D('',#3833,#3834,#3835); +#3838=DIRECTION('',(-1.187131617700E-13,0.E0,-1.E0)); +#3839=VECTOR('',#3838,6.431284940867E1); +#3840=CARTESIAN_POINT('',(-6.416713281508E0,-1.95E2,-1.256871505913E2)); +#3841=LINE('',#3840,#3839); +#3842=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3843=VECTOR('',#3842,5.876277864279E1); +#3844=CARTESIAN_POINT('',(-6.416713281516E0,-1.95E2,-1.9E2)); +#3845=LINE('',#3844,#3843); +#3846=CARTESIAN_POINT('',(-6.517949192431E1,-1.95E2,-1.317658817268E2)); +#3847=CARTESIAN_POINT('',(-6.455954011895E1,-1.95E2,-1.317126158644E2)); +#3848=CARTESIAN_POINT('',(-6.393958967217E1,-1.95E2,-1.316593341872E2)); +#3849=CARTESIAN_POINT('',(-6.331964059014E1,-1.95E2,-1.316060366379E2)); +#3851=CARTESIAN_POINT('',(-6.331964059014E1,-1.95E2,-1.316060366379E2)); +#3852=CARTESIAN_POINT('',(-6.280322728285E1,-1.95E2,-1.315616401471E2)); +#3853=CARTESIAN_POINT('',(-6.177102635448E1,-1.95E2,-1.314000155163E2)); +#3854=CARTESIAN_POINT('',(-6.022710564522E1,-1.95E2,-1.309333919484E2)); +#3855=CARTESIAN_POINT('',(-5.868300417669E1,-1.95E2,-1.302249703272E2)); +#3856=CARTESIAN_POINT('',(-5.715698942659E1,-1.95E2,-1.292596311779E2)); +#3857=CARTESIAN_POINT('',(-5.565490168653E1,-1.95E2,-1.280093445880E2)); +#3858=CARTESIAN_POINT('',(-5.419832079769E1,-1.95E2,-1.264450747695E2)); +#3859=CARTESIAN_POINT('',(-5.282001534402E1,-1.95E2,-1.245433229532E2)); +#3860=CARTESIAN_POINT('',(-5.197598578110E1,-1.95E2,-1.230295672164E2)); +#3861=CARTESIAN_POINT('',(-5.158087926405E1,-1.95E2,-1.222080642473E2)); +#3863=CARTESIAN_POINT('',(-2.699999999992E1,-1.95E2,-9.8E1)); +#3864=DIRECTION('',(0.E0,-1.E0,0.E0)); +#3865=DIRECTION('',(-7.124892540327E-1,0.E0,-7.016830216614E-1)); +#3866=AXIS2_PLACEMENT_3D('',#3863,#3864,#3865); +#3868=CARTESIAN_POINT('',(-8.5E1,-2.148205080757E2,-1.107534108877E2)); +#3869=CARTESIAN_POINT('',(-8.397663856822E1,-2.149682175752E2, +-1.104483050617E2)); +#3870=CARTESIAN_POINT('',(-8.190962037518E1,-2.150744025076E2, +-1.100866403923E2)); +#3871=CARTESIAN_POINT('',(-7.898806512650E1,-2.147333852020E2, +-1.102563651935E2)); +#3872=CARTESIAN_POINT('',(-7.592030786427E1,-2.138259250623E2, +-1.111627735486E2)); +#3873=CARTESIAN_POINT('',(-7.297047222651E1,-2.123064926661E2, +-1.128831245203E2)); +#3874=CARTESIAN_POINT('',(-7.025602742001E1,-2.101673434879E2, +-1.153608466844E2)); +#3875=CARTESIAN_POINT('',(-6.792704620702E1,-2.074200985422E2, +-1.185245131632E2)); +#3876=CARTESIAN_POINT('',(-6.610383221473E1,-2.040405897645E2, +-1.223158498606E2)); +#3877=CARTESIAN_POINT('',(-6.497580190289E1,-1.999306758648E2, +-1.267502137447E2)); +#3878=CARTESIAN_POINT('',(-6.493302921721E1,-1.967075437235E2, +-1.300600460080E2)); +#3879=CARTESIAN_POINT('',(-6.517949192431E1,-1.95E2,-1.317658817268E2)); +#3881=DIRECTION('',(0.E0,-9.956411972447E-14,-1.E0)); +#3882=VECTOR('',#3881,5.823411827321E1); +#3883=CARTESIAN_POINT('',(-6.517949192431E1,-1.95E2,-1.317658817268E2)); +#3884=LINE('',#3883,#3882); +#3885=DIRECTION('',(-1.147676779481E-14,1.255271477558E-13,1.E0)); +#3886=VECTOR('',#3885,7.924658911231E1); +#3887=CARTESIAN_POINT('',(-8.5E1,-2.148205080757E2,-1.9E2)); +#3888=LINE('',#3887,#3886); +#3889=CARTESIAN_POINT('',(-8.5E1,-2.355505868461E2,-7.499999996549E1)); +#3890=CARTESIAN_POINT('',(-8.259134329402E1,-2.353896517613E2, +-7.499999996549E1)); +#3891=CARTESIAN_POINT('',(-7.777385164256E1,-2.350676475387E2, +-7.500000001610E1)); +#3892=CARTESIAN_POINT('',(-7.054706514068E1,-2.345844529032E2, +-7.499999999540E1)); +#3893=CARTESIAN_POINT('',(-6.572884145969E1,-2.342621978573E2, +-7.499999999999E1)); +#3894=CARTESIAN_POINT('',(-6.331964059014E1,-2.341010020063E2, +-7.499999999999E1)); +#3896=CARTESIAN_POINT('',(-6.416713281516E0,-2.237836842081E2, +-1.256871505913E2)); +#3897=CARTESIAN_POINT('',(-6.416713281516E0,-2.1E2,-1.398960955492E2)); +#3898=VERTEX_POINT('',#3896); +#3899=VERTEX_POINT('',#3897); +#3900=CARTESIAN_POINT('',(-6.416713281516E0,-2.1E2,-1.9E2)); +#3901=VERTEX_POINT('',#3900); +#3902=CARTESIAN_POINT('',(-6.416713281516E0,-1.95E2,-1.9E2)); +#3903=VERTEX_POINT('',#3902); +#3904=CARTESIAN_POINT('',(-6.416713281508E0,-1.95E2,-1.256871505913E2)); +#3905=VERTEX_POINT('',#3904); +#3906=CARTESIAN_POINT('',(6.517949192431E1,-2.1E2,-1.398960955492E2)); +#3907=VERTEX_POINT('',#3906); +#3908=VERTEX_POINT('',#51); +#3909=CARTESIAN_POINT('',(7.500000000076E0,-2.5E2,-8.701271383326E1)); +#3910=VERTEX_POINT('',#3909); +#3911=CARTESIAN_POINT('',(8.5E1,-2.5E2,-8.701271383328E1)); +#3912=VERTEX_POINT('',#3911); +#3913=CARTESIAN_POINT('',(8.5E1,-2.298205080757E2,-1.184266248042E2)); +#3914=VERTEX_POINT('',#3913); +#3915=VERTEX_POINT('',#1963); +#3916=VERTEX_POINT('',#1968); +#3917=CARTESIAN_POINT('',(-6.416713281516E0,4.362368667118E1, +-1.455581483573E2)); +#3918=VERTEX_POINT('',#3917); +#3919=VERTEX_POINT('',#1509); +#3920=VERTEX_POINT('',#1531); +#3921=CARTESIAN_POINT('',(8.5E1,1.032950599131E2,-5.36E1)); +#3922=VERTEX_POINT('',#3921); +#3923=CARTESIAN_POINT('',(1.850000000008E1,1.032950599131E2,-5.36E1)); +#3924=VERTEX_POINT('',#3923); +#3925=CARTESIAN_POINT('',(1.850000000008E1,8.450222622976E1,-9.7E1)); +#3926=VERTEX_POINT('',#3925); +#3927=CARTESIAN_POINT('',(6.517949192431E1,-2.1E2,-1.9E2)); +#3928=VERTEX_POINT('',#3927); +#3929=CARTESIAN_POINT('',(8.5E1,-2.298205080757E2,-1.9E2)); +#3930=VERTEX_POINT('',#3929); +#3931=CARTESIAN_POINT('',(8.5E1,-2.5E2,-1.9E2)); +#3932=VERTEX_POINT('',#3931); +#3933=CARTESIAN_POINT('',(8.5E1,2.601794919243E2,-5.36E1)); +#3934=CARTESIAN_POINT('',(8.5E1,2.601794919243E2,-1.9E2)); +#3935=VERTEX_POINT('',#3933); +#3936=VERTEX_POINT('',#3934); +#3937=CARTESIAN_POINT('',(8.5E1,1.738081760425E2,-5.36E1)); +#3938=VERTEX_POINT('',#3937); +#3939=CARTESIAN_POINT('',(8.5E1,1.738081760425E2,-1.02E2)); +#3940=VERTEX_POINT('',#3939); +#3941=CARTESIAN_POINT('',(8.5E1,1.165718239575E2,-1.02E2)); +#3942=VERTEX_POINT('',#3941); +#3943=CARTESIAN_POINT('',(8.5E1,1.165718239575E2,-5.36E1)); +#3944=VERTEX_POINT('',#3943); +#3945=CARTESIAN_POINT('',(8.5E1,5.482050807569E1,-1.9E2)); +#3946=VERTEX_POINT('',#3945); +#3947=CARTESIAN_POINT('',(-8.5E1,-2.5E2,-7.499999998923E1)); +#3948=CARTESIAN_POINT('',(-8.5E1,-2.5E2,-1.9E2)); +#3949=VERTEX_POINT('',#3947); +#3950=VERTEX_POINT('',#3948); +#3951=CARTESIAN_POINT('',(7.500000000077E0,-2.5E2,-9.800000000001E1)); +#3952=VERTEX_POINT('',#3951); +#3953=CARTESIAN_POINT('',(-6.149999999992E1,-2.5E2,-9.8E1)); +#3954=CARTESIAN_POINT('',(-6.149999999992E1,-2.5E2,-7.499999999967E1)); +#3955=VERTEX_POINT('',#3953); +#3956=VERTEX_POINT('',#3954); +#3957=CARTESIAN_POINT('',(-8.5E1,9.999999999995E0,-1.705505868161E2)); +#3958=CARTESIAN_POINT('',(-8.5E1,1.E1,-1.9E2)); +#3959=VERTEX_POINT('',#3957); +#3960=VERTEX_POINT('',#3958); +#3961=CARTESIAN_POINT('',(-8.5E1,-1.8E2,-1.9E2)); +#3962=VERTEX_POINT('',#3961); +#3963=CARTESIAN_POINT('',(-8.5E1,-1.8E2,-1.465861612271E2)); +#3964=VERTEX_POINT('',#3963); +#3965=CARTESIAN_POINT('',(-8.5E1,-6.5E1,-1.863129159863E2)); +#3966=VERTEX_POINT('',#3965); +#3967=CARTESIAN_POINT('',(-8.5E1,-2.355505868461E2,-7.499999996549E1)); +#3968=VERTEX_POINT('',#3967); +#3969=CARTESIAN_POINT('',(-8.5E1,-2.148205080757E2,-1.107534108877E2)); +#3970=VERTEX_POINT('',#3969); +#3971=CARTESIAN_POINT('',(-8.5E1,-2.148205080757E2,-1.9E2)); +#3972=VERTEX_POINT('',#3971); +#3973=CARTESIAN_POINT('',(-8.5E1,1.624418115339E2,-1.618398077073E2)); +#3974=CARTESIAN_POINT('',(-8.5E1,1.624418115339E2,-1.9E2)); +#3975=VERTEX_POINT('',#3973); +#3976=VERTEX_POINT('',#3974); +#3977=CARTESIAN_POINT('',(-8.5E1,5.482050807569E1,-1.9E2)); +#3978=VERTEX_POINT('',#3977); +#3979=CARTESIAN_POINT('',(-8.5E1,5.482050807568E1,-1.426728723612E2)); +#3980=VERTEX_POINT('',#3979); +#3981=CARTESIAN_POINT('',(-8.5E1,1.134363826783E2,-5.359999999999E1)); +#3982=VERTEX_POINT('',#3981); +#3983=CARTESIAN_POINT('',(-8.499990594336E1,1.517790122859E2, +-5.360000684048E1)); +#3984=VERTEX_POINT('',#3983); +#3985=VERTEX_POINT('',#1760); +#3986=CARTESIAN_POINT('',(8.583286718484E0,1.E1,-1.703483031240E2)); +#3987=CARTESIAN_POINT('',(-4.897393267632E1,1.E1,-1.703483031240E2)); +#3988=VERTEX_POINT('',#3986); +#3989=VERTEX_POINT('',#3987); +#3990=VERTEX_POINT('',#1030); +#3991=CARTESIAN_POINT('',(9.5E1,9.999999999999E0,-1.512190265727E2)); +#3992=VERTEX_POINT('',#3991); +#3993=CARTESIAN_POINT('',(9.5E1,1.E1,-1.9E2)); +#3994=VERTEX_POINT('',#3993); +#3995=VERTEX_POINT('',#1112); +#3996=VERTEX_POINT('',#1053); +#3997=VERTEX_POINT('',#1070); +#3998=VERTEX_POINT('',#2403); +#3999=CARTESIAN_POINT('',(7.687558889398E0,-7.239165805327E0, +-1.431975920715E2)); +#4000=VERTEX_POINT('',#3999); +#4001=VERTEX_POINT('',#1229); +#4002=VERTEX_POINT('',#3744); +#4003=VERTEX_POINT('',#3749); +#4004=CARTESIAN_POINT('',(-6.195878103592E1,-2.242750596753E2, +-9.379999999996E1)); +#4005=VERTEX_POINT('',#4004); +#4006=VERTEX_POINT('',#3755); +#4007=CARTESIAN_POINT('',(-6.149999999992E1,-2.216360521379E2, +-9.799999999999E1)); +#4008=VERTEX_POINT('',#4007); +#4009=VERTEX_POINT('',#3820); +#4010=VERTEX_POINT('',#3851); +#4011=CARTESIAN_POINT('',(-6.331964059014E1,-2.341010020063E2, +-7.499999999999E1)); +#4012=VERTEX_POINT('',#4011); +#4013=VERTEX_POINT('',#3781); +#4014=CARTESIAN_POINT('',(-6.331964059014E1,-6.396715502482E1, +-1.849840050133E2)); +#4015=VERTEX_POINT('',#4014); +#4016=CARTESIAN_POINT('',(-6.331964059014E1,-6.5E1,-1.849868883989E2)); +#4017=VERTEX_POINT('',#4016); +#4018=CARTESIAN_POINT('',(-6.331964059014E1,-1.8E2,-1.448970285393E2)); +#4019=VERTEX_POINT('',#4018); +#4020=VERTEX_POINT('',#1148); +#4021=VERTEX_POINT('',#2433); +#4022=CARTESIAN_POINT('',(-4.876712271256E1,-6.5E1,-1.697110451146E2)); +#4023=VERTEX_POINT('',#4022); +#4024=CARTESIAN_POINT('',(-4.876712271256E1,-6.405244527492E1, +-1.697083998332E2)); +#4025=VERTEX_POINT('',#4024); +#4026=VERTEX_POINT('',#694); +#4027=VERTEX_POINT('',#705); +#4028=VERTEX_POINT('',#716); +#4029=VERTEX_POINT('',#749); +#4030=CARTESIAN_POINT('',(-6.331964059014E1,2.499999999998E1, +-1.616172914002E2)); +#4031=VERTEX_POINT('',#4030); +#4032=CARTESIAN_POINT('',(-6.149999999992E1,-2.244427602564E2,-9.38E1)); +#4033=VERTEX_POINT('',#4032); +#4034=CARTESIAN_POINT('',(-6.196060167118E1,-2.244427602564E2,-9.38E1)); +#4035=VERTEX_POINT('',#4034); +#4036=VERTEX_POINT('',#1790); +#4037=VERTEX_POINT('',#742); +#4038=CARTESIAN_POINT('',(-7.249999999992E1,1.126379534922E2, +-5.359999999999E1)); +#4039=VERTEX_POINT('',#4038); +#4040=VERTEX_POINT('',#3879); +#4041=CARTESIAN_POINT('',(8.583286718484E0,-1.8E2,-1.9E2)); +#4042=CARTESIAN_POINT('',(8.583286718484E0,-1.8E2,-1.325E2)); +#4043=VERTEX_POINT('',#4041); +#4044=VERTEX_POINT('',#4042); +#4045=CARTESIAN_POINT('',(8.583286718484E0,-1.95E2,-1.331978977207E2)); +#4046=CARTESIAN_POINT('',(8.583286718484E0,-2.442324464425E2, +-6.320411677159E1)); +#4047=VERTEX_POINT('',#4045); +#4048=VERTEX_POINT('',#4046); +#4049=CARTESIAN_POINT('',(8.583286718484E0,-2.488987944182E2,-6.E1)); +#4050=VERTEX_POINT('',#4049); +#4051=CARTESIAN_POINT('',(8.583286718479E0,-2.340328176184E2,-6.E1)); +#4052=VERTEX_POINT('',#4051); +#4053=CARTESIAN_POINT('',(8.583286718470E0,-1.788405455806E2,-1.325E2)); +#4054=VERTEX_POINT('',#4053); +#4055=CARTESIAN_POINT('',(8.583286718484E0,-1.95E2,-1.9E2)); +#4056=VERTEX_POINT('',#4055); +#4057=CARTESIAN_POINT('',(8.583286718484E0,6.184132964198E1,-1.041483448332E2)); +#4058=VERTEX_POINT('',#4057); +#4059=CARTESIAN_POINT('',(8.583286718470E0,4.836701572045E1,-1.041483448332E2)); +#4060=VERTEX_POINT('',#4059); +#4061=CARTESIAN_POINT('',(9.448436920520E1,-2.442324401611E2, +-6.320413323342E1)); +#4062=VERTEX_POINT('',#4061); +#4063=CARTESIAN_POINT('',(9.5E1,-1.95E2,-1.331978977207E2)); +#4064=VERTEX_POINT('',#4063); +#4065=CARTESIAN_POINT('',(9.5E1,-2.404413693410E2,-7.228820280300E1)); +#4066=VERTEX_POINT('',#4065); +#4067=CARTESIAN_POINT('',(1.776402741359E0,6.184133012924E1,-1.041484006631E2)); +#4068=VERTEX_POINT('',#4067); +#4069=VERTEX_POINT('',#1015); +#4070=CARTESIAN_POINT('',(2.500000000076E0,6.888722174489E1,-9.379999999972E1)); +#4071=VERTEX_POINT('',#4070); +#4072=CARTESIAN_POINT('',(1.170000000008E1,6.888722174432E1,-9.380000000072E1)); +#4073=VERTEX_POINT('',#4072); +#4074=CARTESIAN_POINT('',(1.170000000008E1,9.168564498677E1,-3.859999999750E1)); +#4075=VERTEX_POINT('',#4074); +#4076=CARTESIAN_POINT('',(9.5E1,9.168564498621E1,-3.86E1)); +#4077=VERTEX_POINT('',#4076); +#4078=CARTESIAN_POINT('',(9.448470029329E1,-2.488987944036E2, +-6.000000000608E1)); +#4079=VERTEX_POINT('',#4078); +#4080=CARTESIAN_POINT('',(9.931261327110E1,-2.501983621031E2, +-6.500014508090E1)); +#4081=VERTEX_POINT('',#4080); +#4082=CARTESIAN_POINT('',(1.E2,-2.449999999990E2,-7.434219562769E1)); +#4083=VERTEX_POINT('',#4082); +#4084=CARTESIAN_POINT('',(1.E2,-2.E2,-1.354674341539E2)); +#4085=VERTEX_POINT('',#4084); +#4086=CARTESIAN_POINT('',(1.E2,-2.E2,-1.9E2)); +#4087=VERTEX_POINT('',#4086); +#4088=CARTESIAN_POINT('',(1.E2,-2.449999999999E2,-1.9E2)); +#4089=VERTEX_POINT('',#4088); +#4090=CARTESIAN_POINT('',(1.E2,2.849999999944E2,-4.36E1)); +#4091=CARTESIAN_POINT('',(1.E2,9.564073128438E1,-4.359999999999E1)); +#4092=VERTEX_POINT('',#4090); +#4093=VERTEX_POINT('',#4091); +#4094=CARTESIAN_POINT('',(1.E2,2.849999999925E2,-1.9E2)); +#4095=VERTEX_POINT('',#4094); +#4096=CARTESIAN_POINT('',(1.E2,1.5E1,-1.9E2)); +#4097=VERTEX_POINT('',#4096); +#4098=CARTESIAN_POINT('',(1.E2,1.499999999999E1,-1.540311671987E2)); +#4099=VERTEX_POINT('',#4098); +#4100=CARTESIAN_POINT('',(9.5E1,-1.95E2,-1.9E2)); +#4101=VERTEX_POINT('',#4100); +#4102=CARTESIAN_POINT('',(9.E1,2.95E2,-1.9E2)); +#4103=VERTEX_POINT('',#4102); +#4104=CARTESIAN_POINT('',(-8.999999999251E1,2.95E2,-1.9E2)); +#4105=VERTEX_POINT('',#4104); +#4106=CARTESIAN_POINT('',(-1.E2,2.85E2,-1.9E2)); +#4107=VERTEX_POINT('',#4106); +#4108=CARTESIAN_POINT('',(-1.E2,-2.449999999976E2,-1.9E2)); +#4109=VERTEX_POINT('',#4108); +#4110=CARTESIAN_POINT('',(-8.E1,-2.65E2,-1.9E2)); +#4111=VERTEX_POINT('',#4110); +#4112=CARTESIAN_POINT('',(7.999999998861E1,-2.65E2,-1.9E2)); +#4113=VERTEX_POINT('',#4112); +#4114=CARTESIAN_POINT('',(-6.517949192431E1,-1.95E2,-1.9E2)); +#4115=VERTEX_POINT('',#4114); +#4116=CARTESIAN_POINT('',(-6.249464034144E1,1.624418115339E2,-1.9E2)); +#4117=VERTEX_POINT('',#4116); +#4118=VERTEX_POINT('',#260); +#4119=VERTEX_POINT('',#273); +#4120=VERTEX_POINT('',#1681); +#4121=CARTESIAN_POINT('',(5.7E0,2.8E2,-1.9E2)); +#4122=VERTEX_POINT('',#4121); +#4123=CARTESIAN_POINT('',(6.517949192431E1,2.8E2,-1.9E2)); +#4124=VERTEX_POINT('',#4123); +#4125=CARTESIAN_POINT('',(-2.699974430812E1,1.8586E2,-1.9E2)); +#4126=CARTESIAN_POINT('',(-2.699974430812E1,2.1586E2,-1.9E2)); +#4127=VERTEX_POINT('',#4125); +#4128=VERTEX_POINT('',#4126); +#4129=CARTESIAN_POINT('',(-2.699974430812E1,1.8586E2,-1.760029609344E2)); +#4130=VERTEX_POINT('',#4129); +#4131=CARTESIAN_POINT('',(-2.699974430812E1,2.1586E2,-1.760029609344E2)); +#4132=VERTEX_POINT('',#4131); +#4133=VERTEX_POINT('',#2784); +#4134=VERTEX_POINT('',#2803); +#4135=VERTEX_POINT('',#3601); +#4136=VERTEX_POINT('',#3554); +#4137=VERTEX_POINT('',#2757); +#4138=VERTEX_POINT('',#2762); +#4139=VERTEX_POINT('',#2773); +#4140=VERTEX_POINT('',#2810); +#4141=VERTEX_POINT('',#2749); +#4142=VERTEX_POINT('',#898); +#4143=CARTESIAN_POINT('',(-6.777379867914E1,1.582141230255E2, +-1.233482182635E2)); +#4144=VERTEX_POINT('',#4143); +#4145=VERTEX_POINT('',#2730); +#4146=VERTEX_POINT('',#922); +#4147=VERTEX_POINT('',#2747); +#4148=VERTEX_POINT('',#849); +#4149=VERTEX_POINT('',#853); +#4150=VERTEX_POINT('',#864); +#4151=VERTEX_POINT('',#871); +#4152=CARTESIAN_POINT('',(-3.699632111960E1,1.38E2,-1.575401014061E2)); +#4153=VERTEX_POINT('',#4152); +#4154=VERTEX_POINT('',#880); +#4155=CARTESIAN_POINT('',(-4.199632111960E1,1.375595148122E2, +-1.557072845143E2)); +#4156=VERTEX_POINT('',#4155); +#4157=VERTEX_POINT('',#892); +#4158=VERTEX_POINT('',#928); +#4159=CARTESIAN_POINT('',(1.157856131818E1,1.365554310026E2,-4.056946047982E1)); +#4160=CARTESIAN_POINT('',(2.500180929700E0,1.365550557037E2,-4.058909221191E1)); +#4161=VERTEX_POINT('',#4159); +#4162=VERTEX_POINT('',#4160); +#4163=CARTESIAN_POINT('',(2.499958914064E0,1.370471842462E2,-9.700001652925E1)); +#4164=VERTEX_POINT('',#4163); +#4165=CARTESIAN_POINT('',(-6.995891182424E0,1.372363943418E2, +-1.186813459766E2)); +#4166=VERTEX_POINT('',#4165); +#4167=CARTESIAN_POINT('',(-6.557170786036E1,1.365553997275E2, +-4.056836994594E1)); +#4168=CARTESIAN_POINT('',(-6.149999992327E1,1.365548191118E2, +-4.058036561135E1)); +#4169=VERTEX_POINT('',#4167); +#4170=VERTEX_POINT('',#4168); +#4171=CARTESIAN_POINT('',(-4.199632111960E1,1.373328999143E2, +-1.297397892668E2)); +#4172=VERTEX_POINT('',#4171); +#4173=CARTESIAN_POINT('',(-4.529955922405E1,1.373328999143E2, +-1.297397892668E2)); +#4174=VERTEX_POINT('',#4173); +#4175=VERTEX_POINT('',#3292); +#4176=CARTESIAN_POINT('',(-4.580055528571E1,1.372996269323E2, +-1.259270831666E2)); +#4177=VERTEX_POINT('',#4176); +#4178=CARTESIAN_POINT('',(-6.149980587444E1,1.370471469742E2, +-9.699734359607E1)); +#4179=VERTEX_POINT('',#4178); +#4180=CARTESIAN_POINT('',(1.357890387889E1,1.345549126017E2,-3.86E1)); +#4181=CARTESIAN_POINT('',(4.500000000076E0,1.345549126017E2,-3.86E1)); +#4182=VERTEX_POINT('',#4180); +#4183=VERTEX_POINT('',#4181); +#4184=CARTESIAN_POINT('',(4.500000000072E0,9.168564498622E1,-3.86E1)); +#4185=VERTEX_POINT('',#4184); +#4186=CARTESIAN_POINT('',(1.357890387888E1,1.450534294969E2,-3.86E1)); +#4187=VERTEX_POINT('',#4186); +#4188=CARTESIAN_POINT('',(1.145367888040E1,2.581516594723E2,-3.86E1)); +#4189=VERTEX_POINT('',#4188); +#4190=CARTESIAN_POINT('',(1.145367888040E1,2.900000000116E2,-3.86E1)); +#4191=VERTEX_POINT('',#4190); +#4192=CARTESIAN_POINT('',(8.999999995125E1,2.900000000155E2,-3.86E1)); +#4193=VERTEX_POINT('',#4192); +#4194=CARTESIAN_POINT('',(9.5E1,2.85E2,-3.86E1)); +#4195=VERTEX_POINT('',#4194); +#4196=CARTESIAN_POINT('',(6.E1,1.7219E2,-3.86E1)); +#4197=CARTESIAN_POINT('',(6.E1,1.1819E2,-3.86E1)); +#4198=VERTEX_POINT('',#4196); +#4199=VERTEX_POINT('',#4197); +#4200=CARTESIAN_POINT('',(-6.719223417049E1,2.569453256981E2,-3.86E1)); +#4201=CARTESIAN_POINT('',(-6.719223417048E1,2.900000000116E2,-3.86E1)); +#4202=VERTEX_POINT('',#4200); +#4203=VERTEX_POINT('',#4201); +#4204=CARTESIAN_POINT('',(-9.499999999999E1,2.125632143380E2,-3.86E1)); +#4205=VERTEX_POINT('',#4204); +#4206=CARTESIAN_POINT('',(-9.499999999999E1,2.85E2,-3.859999999999E1)); +#4207=VERTEX_POINT('',#4206); +#4208=CARTESIAN_POINT('',(-8.999999985362E1,2.9E2,-3.86E1)); +#4209=VERTEX_POINT('',#4208); +#4210=CARTESIAN_POINT('',(-9.499999999989E1,1.891567856614E2,-3.86E1)); +#4211=CARTESIAN_POINT('',(-6.757154611808E1,1.450484519307E2,-3.86E1)); +#4212=VERTEX_POINT('',#4210); +#4213=VERTEX_POINT('',#4211); +#4214=CARTESIAN_POINT('',(-6.757154611808E1,1.345549126017E2,-3.86E1)); +#4215=VERTEX_POINT('',#4214); +#4216=CARTESIAN_POINT('',(-6.149999197197E1,1.345549142040E2, +-3.859999969071E1)); +#4217=VERTEX_POINT('',#4216); +#4218=CARTESIAN_POINT('',(-5.850001100784E1,1.315547439718E2, +-3.860000165130E1)); +#4219=VERTEX_POINT('',#4218); +#4220=CARTESIAN_POINT('',(-5.849999999992E1,1.024787114496E2,-3.86E1)); +#4221=VERTEX_POINT('',#4220); +#4222=CARTESIAN_POINT('',(-6.179534369283E1,1.024787114496E2,-3.86E1)); +#4223=VERTEX_POINT('',#4222); +#4224=VERTEX_POINT('',#3187); +#4225=CARTESIAN_POINT('',(-7.792529284529E1,9.400897231133E1,-3.86E1)); +#4226=VERTEX_POINT('',#4225); +#4227=VERTEX_POINT('',#3128); +#4228=VERTEX_POINT('',#2917); +#4229=CARTESIAN_POINT('',(6.000000073198E1,1.7019E2,-4.86E1)); +#4230=VERTEX_POINT('',#4229); +#4231=CARTESIAN_POINT('',(5.999999937564E1,1.2019E2,-4.86E1)); +#4232=VERTEX_POINT('',#4231); +#4233=CARTESIAN_POINT('',(5.999999937564E1,1.2019E2,-5.36E1)); +#4234=VERTEX_POINT('',#4233); +#4235=CARTESIAN_POINT('',(8.5E1,1.4519E2,-5.36E1)); +#4236=VERTEX_POINT('',#4235); +#4237=CARTESIAN_POINT('',(8.5E1,1.4519E2,-8.7E1)); +#4238=VERTEX_POINT('',#4237); +#4239=CARTESIAN_POINT('',(6.E1,1.7019E2,-8.7E1)); +#4240=VERTEX_POINT('',#4239); +#4241=CARTESIAN_POINT('',(3.5E1,1.4519E2,-8.7E1)); +#4242=VERTEX_POINT('',#4241); +#4243=CARTESIAN_POINT('',(3.5E1,1.4519E2,-5.36E1)); +#4244=VERTEX_POINT('',#4243); +#4245=CARTESIAN_POINT('',(3.508894772309E1,1.472970060410E2,-5.36E1)); +#4246=VERTEX_POINT('',#4245); +#4247=CARTESIAN_POINT('',(3.508894772309E1,1.472970060410E2,-6.86E1)); +#4248=VERTEX_POINT('',#4247); +#4249=CARTESIAN_POINT('',(4.764942639721E1,1.669262216515E2,-6.86E1)); +#4250=VERTEX_POINT('',#4249); +#4251=CARTESIAN_POINT('',(4.764942639721E1,1.669262216515E2,-5.36E1)); +#4252=VERTEX_POINT('',#4251); +#4253=CARTESIAN_POINT('',(6.E1,1.7019E2,-5.36E1)); +#4254=VERTEX_POINT('',#4253); +#4255=CARTESIAN_POINT('',(6.E1,1.2019E2,-8.7E1)); +#4256=VERTEX_POINT('',#4255); +#4257=CARTESIAN_POINT('',(6.E1,1.3519E2,-8.7E1)); +#4258=CARTESIAN_POINT('',(6.E1,1.5519E2,-8.7E1)); +#4259=VERTEX_POINT('',#4257); +#4260=VERTEX_POINT('',#4258); +#4261=CARTESIAN_POINT('',(6.E1,1.5519E2,-1.02E2)); +#4262=CARTESIAN_POINT('',(6.E1,1.3519E2,-1.02E2)); +#4263=VERTEX_POINT('',#4261); +#4264=VERTEX_POINT('',#4262); +#4265=CARTESIAN_POINT('',(4.014430915075E1,1.775898694581E2,-1.02E2)); +#4266=VERTEX_POINT('',#4265); +#4267=VERTEX_POINT('',#1841); +#4268=CARTESIAN_POINT('',(2.447537320068E1,1.316992294227E2,-1.02E2)); +#4269=VERTEX_POINT('',#4268); +#4270=CARTESIAN_POINT('',(5.292423951052E1,1.825254203605E2,-5.36E1)); +#4271=VERTEX_POINT('',#4270); +#4272=CARTESIAN_POINT('',(5.292423951052E1,1.825254203605E2,-6.86E1)); +#4273=VERTEX_POINT('',#4272); +#4274=CARTESIAN_POINT('',(4.153518924802E1,1.784022080551E2,-6.86E1)); +#4275=VERTEX_POINT('',#4274); +#4276=CARTESIAN_POINT('',(2.574277180462E1,1.287448695241E2,-5.36E1)); +#4277=VERTEX_POINT('',#4276); +#4278=CARTESIAN_POINT('',(2.574277180462E1,1.216678668640E2,-5.36E1)); +#4279=VERTEX_POINT('',#4278); +#4280=CARTESIAN_POINT('',(1.850000000008E1,1.216678668640E2,-5.36E1)); +#4281=VERTEX_POINT('',#4280); +#4282=CARTESIAN_POINT('',(8.25E1,2.6E2,-5.36E1)); +#4283=CARTESIAN_POINT('',(6.898321842156E1,2.663848474702E2,-5.36E1)); +#4284=VERTEX_POINT('',#4282); +#4285=VERTEX_POINT('',#4283); +#4286=CARTESIAN_POINT('',(3.E1,2.663848474702E2,-5.36E1)); +#4287=VERTEX_POINT('',#4286); +#4288=CARTESIAN_POINT('',(3.E1,2.598093778492E2,-5.36E1)); +#4289=VERTEX_POINT('',#4288); +#4290=CARTESIAN_POINT('',(5.500025569188E1,2.0086E2,-5.36E1)); +#4291=VERTEX_POINT('',#4290); +#4292=VERTEX_POINT('',#1930); +#4293=CARTESIAN_POINT('',(2.390305304602E1,1.222809819051E2,-1.238560249310E2)); +#4294=VERTEX_POINT('',#4293); +#4295=VERTEX_POINT('',#1904); +#4296=CARTESIAN_POINT('',(4.034383082927E1,1.994802791342E2,-1.458859474800E2)); +#4297=VERTEX_POINT('',#4296); +#4298=VERTEX_POINT('',#1828); +#4299=CARTESIAN_POINT('',(5.500025569188E1,2.0086E2,-6.86E1)); +#4300=CARTESIAN_POINT('',(3.E1,2.598093778492E2,-6.86E1)); +#4301=VERTEX_POINT('',#4299); +#4302=VERTEX_POINT('',#4300); +#4303=CARTESIAN_POINT('',(3.000018638411E1,2.475589762720E2,-6.859998692460E1)); +#4304=VERTEX_POINT('',#4303); +#4305=CARTESIAN_POINT('',(3.E1,2.357951636701E2,-1.657E2)); +#4306=CARTESIAN_POINT('',(3.E1,2.8E2,-1.657E2)); +#4307=VERTEX_POINT('',#4305); +#4308=VERTEX_POINT('',#4306); +#4309=VERTEX_POINT('',#1633); +#4310=CARTESIAN_POINT('',(3.E1,2.663848474702E2,-1.02E2)); +#4311=VERTEX_POINT('',#4310); +#4312=CARTESIAN_POINT('',(3.E1,2.8E2,-1.02E2)); +#4313=VERTEX_POINT('',#4312); +#4314=CARTESIAN_POINT('',(6.517949192431E1,2.8E2,-1.02E2)); +#4315=VERTEX_POINT('',#4314); +#4316=CARTESIAN_POINT('',(6.898321842156E1,2.663848474702E2,-1.02E2)); +#4317=VERTEX_POINT('',#4316); +#4318=VERTEX_POINT('',#1701); +#4319=VERTEX_POINT('',#1740); +#4320=VERTEX_POINT('',#765); +#4321=VERTEX_POINT('',#1811); +#4322=CARTESIAN_POINT('',(-7.973541404382E1,1.216678668640E2,-5.36E1)); +#4323=VERTEX_POINT('',#4322); +#4324=CARTESIAN_POINT('',(-7.249999999992E1,1.216678668640E2,-5.36E1)); +#4325=VERTEX_POINT('',#4324); +#4326=CARTESIAN_POINT('',(-7.789569528521E1,1.222809819051E2, +-1.238560249310E2)); +#4327=VERTEX_POINT('',#4326); +#4328=CARTESIAN_POINT('',(-4.199632111960E1,1.224643691008E2, +-1.448701161452E2)); +#4329=CARTESIAN_POINT('',(-5.924594064482E1,1.224643691008E2, +-1.448701161452E2)); +#4330=VERTEX_POINT('',#4328); +#4331=VERTEX_POINT('',#4329); +#4332=CARTESIAN_POINT('',(-4.199632111960E1,1.226939752463E2, +-1.711803744151E2)); +#4333=VERTEX_POINT('',#4332); +#4334=CARTESIAN_POINT('',(-7.249999999992E1,1.220466129261E2,-9.7E1)); +#4335=VERTEX_POINT('',#4334); +#4336=VERTEX_POINT('',#732); +#4337=VERTEX_POINT('',#1936); +#4338=VERTEX_POINT('',#1941); +#4339=VERTEX_POINT('',#2231); +#4340=VERTEX_POINT('',#1957); +#4341=CARTESIAN_POINT('',(-1.199632111960E1,1.224643691008E2, +-1.448701161452E2)); +#4342=VERTEX_POINT('',#4341); +#4343=CARTESIAN_POINT('',(-4.199632111960E1,2.5E1,-1.457206748087E2)); +#4344=VERTEX_POINT('',#4343); +#4345=CARTESIAN_POINT('',(-7.025255128608E1,2.5E1,-1.9E2)); +#4346=VERTEX_POINT('',#4345); +#4347=CARTESIAN_POINT('',(7.025255128608E1,2.5E1,-1.9E2)); +#4348=VERTEX_POINT('',#4347); +#4349=CARTESIAN_POINT('',(-1.199632111960E1,2.5E1,-1.457206748087E2)); +#4350=CARTESIAN_POINT('',(-1.199632111960E1,2.5E1,-1.604441561918E2)); +#4351=VERTEX_POINT('',#4349); +#4352=VERTEX_POINT('',#4350); +#4353=CARTESIAN_POINT('',(-2.692109829188E1,2.5E1,-1.622213110811E2)); +#4354=CARTESIAN_POINT('',(-4.199632111960E1,2.5E1,-1.604459236086E2)); +#4355=VERTEX_POINT('',#4353); +#4356=VERTEX_POINT('',#4354); +#4357=CARTESIAN_POINT('',(-1.199632111960E1,1.33E2,-1.711803744151E2)); +#4358=VERTEX_POINT('',#4357); +#4359=CARTESIAN_POINT('',(-1.199632111960E1,1.325593244203E2, +-1.557072845143E2)); +#4360=CARTESIAN_POINT('',(-1.199632111960E1,1.323327095224E2, +-1.297397892668E2)); +#4361=VERTEX_POINT('',#4359); +#4362=VERTEX_POINT('',#4360); +#4363=CARTESIAN_POINT('',(-1.199632111960E1,6.515498735396E1, +-1.297397892668E2)); +#4364=VERTEX_POINT('',#4363); +#4365=CARTESIAN_POINT('',(-1.199632111959E1,6.515498735396E1, +-1.230288139017E2)); +#4366=VERTEX_POINT('',#4365); +#4367=CARTESIAN_POINT('',(-1.199632111959E1,3.5E1,-1.232919724895E2)); +#4368=VERTEX_POINT('',#4367); +#4369=CARTESIAN_POINT('',(-1.199632111960E1,3.5E1,-1.104555056122E2)); +#4370=VERTEX_POINT('',#4369); +#4371=CARTESIAN_POINT('',(-1.199632111959E1,-1.5E1,-1.104555056122E2)); +#4372=VERTEX_POINT('',#4371); +#4373=VERTEX_POINT('',#2019); +#4374=CARTESIAN_POINT('',(-1.699632111960E1,1.38E2,-1.724483496347E2)); +#4375=CARTESIAN_POINT('',(-3.699632111960E1,1.38E2,-1.724483496347E2)); +#4376=VERTEX_POINT('',#4374); +#4377=VERTEX_POINT('',#4375); +#4378=CARTESIAN_POINT('',(-4.199632111960E1,1.33E2,-1.711803744151E2)); +#4379=VERTEX_POINT('',#4378); +#4380=VERTEX_POINT('',#650); +#4381=VERTEX_POINT('',#657); +#4382=CARTESIAN_POINT('',(-4.199632111960E1,3.5E1,-1.104643633161E2)); +#4383=VERTEX_POINT('',#4382); +#4384=CARTESIAN_POINT('',(-4.199632111959E1,3.5E1,-1.232963173402E2)); +#4385=VERTEX_POINT('',#4384); +#4386=CARTESIAN_POINT('',(-4.199632111959E1,6.517400626796E1, +-1.230329927767E2)); +#4387=VERTEX_POINT('',#4386); +#4388=CARTESIAN_POINT('',(-4.199632111960E1,6.517400626796E1, +-1.297397892668E2)); +#4389=VERTEX_POINT('',#4388); +#4390=CARTESIAN_POINT('',(-2.698252682529E1,2.888543819997E0, +-1.264442665432E2)); +#4391=VERTEX_POINT('',#4390); +#4392=CARTESIAN_POINT('',(-2.699999999992E1,-1.5E1,-1.175E2)); +#4393=VERTEX_POINT('',#4392); +#4394=CARTESIAN_POINT('',(-7.516417167186E0,3.5E1,-9.88E1)); +#4395=VERTEX_POINT('',#4394); +#4396=VERTEX_POINT('',#1391); +#4397=CARTESIAN_POINT('',(-7.499999999923E0,-2.5E2,-9.800000000001E1)); +#4398=VERTEX_POINT('',#4397); +#4399=CARTESIAN_POINT('',(-4.649999999992E1,-2.5E2,-9.8E1)); +#4400=VERTEX_POINT('',#4399); +#4401=CARTESIAN_POINT('',(-4.649999999992E1,3.5E1,-9.8E1)); +#4402=VERTEX_POINT('',#4401); +#4403=VERTEX_POINT('',#505); +#4404=VERTEX_POINT('',#510); +#4405=CARTESIAN_POINT('',(-5.582834505597E1,3.500000026862E1, +-1.041484034318E2)); +#4406=VERTEX_POINT('',#4405); +#4407=VERTEX_POINT('',#572); +#4408=CARTESIAN_POINT('',(-4.649999999992E1,3.5E1,-7.E1)); +#4409=VERTEX_POINT('',#4408); +#4410=CARTESIAN_POINT('',(5.963144320304E0,3.5E1,-9.88E1)); +#4411=VERTEX_POINT('',#4410); +#4412=VERTEX_POINT('',#2168); +#4413=VERTEX_POINT('',#2176); +#4414=CARTESIAN_POINT('',(6.640358504370E0,3.5E1,-1.041483448332E2)); +#4415=VERTEX_POINT('',#4414); +#4416=VERTEX_POINT('',#520); +#4417=VERTEX_POINT('',#533); +#4418=VERTEX_POINT('',#553); +#4419=CARTESIAN_POINT('',(-6.179534369283E1,-6.5E1,-1.718693654751E2)); +#4420=VERTEX_POINT('',#4419); +#4421=CARTESIAN_POINT('',(-6.179534369283E1,7.171942457941E1, +-1.041483448332E2)); +#4422=VERTEX_POINT('',#4421); +#4423=CARTESIAN_POINT('',(-4.649999999992E1,2.5E1,-6.E1)); +#4424=VERTEX_POINT('',#4423); +#4425=CARTESIAN_POINT('',(-4.649999999992E1,-2.1E2,-5.5E1)); +#4426=CARTESIAN_POINT('',(-4.649999999992E1,-2.1E2,-1.5E1)); +#4427=VERTEX_POINT('',#4425); +#4428=VERTEX_POINT('',#4426); +#4429=CARTESIAN_POINT('',(-4.649999999992E1,-2.05E2,-6.E1)); +#4430=VERTEX_POINT('',#4429); +#4431=CARTESIAN_POINT('',(-4.649999999992E1,-2.5E2,-7.E0)); +#4432=VERTEX_POINT('',#4431); +#4433=CARTESIAN_POINT('',(-4.649999999992E1,-2.18E2,-7.E0)); +#4434=VERTEX_POINT('',#4433); +#4435=CARTESIAN_POINT('',(-5.949999999992E1,-2.1E2,-5.5E1)); +#4436=VERTEX_POINT('',#4435); +#4437=CARTESIAN_POINT('',(-5.949999999992E1,-2.1E2,-1.5E1)); +#4438=VERTEX_POINT('',#4437); +#4439=CARTESIAN_POINT('',(7.076698078222E0,-2.1E2,-8.88E1)); +#4440=CARTESIAN_POINT('',(-7.499999999924E0,-2.1E2,-8.88E1)); +#4441=VERTEX_POINT('',#4439); +#4442=VERTEX_POINT('',#4440); +#4443=VERTEX_POINT('',#1270); +#4444=CARTESIAN_POINT('',(4.348188160384E0,-2.1E2,-1.5E1)); +#4445=VERTEX_POINT('',#4444); +#4446=CARTESIAN_POINT('',(-7.499999999924E0,-2.1E2,-1.5E1)); +#4447=VERTEX_POINT('',#4446); +#4448=CARTESIAN_POINT('',(-5.949999999992E1,-2.05E2,-6.E1)); +#4449=VERTEX_POINT('',#4448); +#4450=CARTESIAN_POINT('',(-5.949999999992E1,-2.6E2,-6.E1)); +#4451=VERTEX_POINT('',#4450); +#4452=CARTESIAN_POINT('',(-5.949999999992E1,-2.18E2,-7.E0)); +#4453=VERTEX_POINT('',#4452); +#4454=CARTESIAN_POINT('',(-5.949999999992E1,-2.6E2,-7.E0)); +#4455=VERTEX_POINT('',#4454); +#4456=VERTEX_POINT('',#1184); +#4457=CARTESIAN_POINT('',(8.E1,-2.6E2,-6.E1)); +#4458=VERTEX_POINT('',#4457); +#4459=CARTESIAN_POINT('',(5.500000000076E0,-2.6E2,-6.E1)); +#4460=VERTEX_POINT('',#4459); +#4461=CARTESIAN_POINT('',(-8.E1,-2.6E2,-6.E1)); +#4462=VERTEX_POINT('',#4461); +#4463=CARTESIAN_POINT('',(-9.5E1,-2.45E2,-6.E1)); +#4464=VERTEX_POINT('',#4463); +#4465=CARTESIAN_POINT('',(-9.5E1,-2.124911722892E2,-6.E1)); +#4466=VERTEX_POINT('',#4465); +#4467=VERTEX_POINT('',#452); +#4468=VERTEX_POINT('',#3135); +#4469=CARTESIAN_POINT('',(-7.792529284529E1,-2.271085053244E2,-6.E1)); +#4470=VERTEX_POINT('',#4469); +#4471=VERTEX_POINT('',#1211); +#4472=VERTEX_POINT('',#1295); +#4473=CARTESIAN_POINT('',(1.979284025065E0,-8.000179578406E1, +-1.307985708554E2)); +#4474=VERTEX_POINT('',#4473); +#4475=CARTESIAN_POINT('',(1.979284023049E0,1.115703204098E1,-9.379999999999E1)); +#4476=VERTEX_POINT('',#4475); +#4477=VERTEX_POINT('',#1288); +#4478=VERTEX_POINT('',#1241); +#4479=VERTEX_POINT('',#1250); +#4480=CARTESIAN_POINT('',(-7.499999999924E0,-2.05E2,-9.38E1)); +#4481=VERTEX_POINT('',#4480); +#4482=CARTESIAN_POINT('',(-7.499999999924E0,3.E1,-9.38E1)); +#4483=VERTEX_POINT('',#4482); +#4484=CARTESIAN_POINT('',(-7.499999999924E0,-2.18E2,-7.E0)); +#4485=VERTEX_POINT('',#4484); +#4486=CARTESIAN_POINT('',(-7.499999999924E0,-2.5E2,-7.E0)); +#4487=VERTEX_POINT('',#4486); +#4488=VERTEX_POINT('',#1328); +#4489=CARTESIAN_POINT('',(5.500000000076E0,-2.18E2,-7.E0)); +#4490=VERTEX_POINT('',#4489); +#4491=CARTESIAN_POINT('',(5.500000000076E0,-2.6E2,-7.E0)); +#4492=VERTEX_POINT('',#4491); +#4493=CARTESIAN_POINT('',(5.000000000761E-1,-2.65E2,-6.5E1)); +#4494=CARTESIAN_POINT('',(5.000000000761E-1,-2.65E2,-7.E0)); +#4495=VERTEX_POINT('',#4493); +#4496=VERTEX_POINT('',#4494); +#4497=CARTESIAN_POINT('',(-5.449999999992E1,-2.65E2,-7.E0)); +#4498=CARTESIAN_POINT('',(-5.449999999992E1,-2.65E2,-6.5E1)); +#4499=VERTEX_POINT('',#4497); +#4500=VERTEX_POINT('',#4498); +#4501=CARTESIAN_POINT('',(7.999999999145E1,-2.65E2,-6.5E1)); +#4502=VERTEX_POINT('',#4501); +#4503=CARTESIAN_POINT('',(-7.999999999647E1,-2.65E2,-6.5E1)); +#4504=VERTEX_POINT('',#4503); +#4505=CARTESIAN_POINT('',(-1.E2,-2.45E2,-6.5E1)); +#4506=VERTEX_POINT('',#4505); +#4507=CARTESIAN_POINT('',(-1.E2,-2.158175345470E2,-6.500000000001E1)); +#4508=VERTEX_POINT('',#4507); +#4509=CARTESIAN_POINT('',(-1.E2,2.849999999983E2,-4.36E1)); +#4510=VERTEX_POINT('',#4509); +#4511=CARTESIAN_POINT('',(-1.E2,9.333498895332E1,-4.360000000001E1)); +#4512=VERTEX_POINT('',#4511); +#4513=CARTESIAN_POINT('',(-1.E2,-5.349121033878E1,-1.638245295656E2)); +#4514=VERTEX_POINT('',#4513); +#4515=CARTESIAN_POINT('',(-9.370590477450E1,-5.382966109170E1, +-1.590067740057E2)); +#4516=VERTEX_POINT('',#4515); +#4517=CARTESIAN_POINT('',(-7.792529284529E1,-6.5E1,-1.728559154282E2)); +#4518=VERTEX_POINT('',#4517); +#4519=CARTESIAN_POINT('',(-6.179450381567E1,7.900785641748E1, +-9.381257069987E1)); +#4520=VERTEX_POINT('',#4519); +#4521=VERTEX_POINT('',#604); +#4522=VERTEX_POINT('',#609); +#4523=CARTESIAN_POINT('',(-5.649999999992E1,7.899842953589E1, +-9.380511334107E1)); +#4524=VERTEX_POINT('',#4523); +#4525=VERTEX_POINT('',#590); +#4526=VERTEX_POINT('',#595); +#4527=CARTESIAN_POINT('',(-5.649988670994E1,1.320473709055E2, +-9.704363285230E1)); +#4528=VERTEX_POINT('',#4527); +#4529=CARTESIAN_POINT('',(-4.643522610932E1,1.322410512761E2, +-1.192357152274E2)); +#4530=VERTEX_POINT('',#4529); +#4531=VERTEX_POINT('',#3313); +#4532=VERTEX_POINT('',#2141); +#4533=CARTESIAN_POINT('',(-6.196794757926E0,6.515498735396E1, +-1.297397892668E2)); +#4534=VERTEX_POINT('',#4533); +#4535=VERTEX_POINT('',#2079); +#4536=VERTEX_POINT('',#2152); +#4537=VERTEX_POINT('',#2039); +#4538=CARTESIAN_POINT('',(2.500001586577E0,9.124474384559E1,-4.059854558165E1)); +#4539=VERTEX_POINT('',#4538); +#4540=VERTEX_POINT('',#3320); +#4541=VERTEX_POINT('',#3231); +#4542=VERTEX_POINT('',#2891); +#4543=CARTESIAN_POINT('',(-9.302897809612E1,1.894960092675E2,-4.06E1)); +#4544=VERTEX_POINT('',#4543); +#4545=VERTEX_POINT('',#2947); +#4546=CARTESIAN_POINT('',(1.157821978685E1,1.460809831570E2,-4.06E1)); +#4547=CARTESIAN_POINT('',(9.453678880423E0,2.570751931228E2,-4.06E1)); +#4548=VERTEX_POINT('',#4546); +#4549=VERTEX_POINT('',#4547); +#4550=VERTEX_POINT('',#2582); +#4551=CARTESIAN_POINT('',(9.453678880403E0,2.570751931228E2,-5.36E1)); +#4552=VERTEX_POINT('',#4551); +#4553=CARTESIAN_POINT('',(-6.519223417048E1,2.559084669915E2,-4.06E1)); +#4554=VERTEX_POINT('',#4553); +#4555=CARTESIAN_POINT('',(-6.519223417048E1,2.559084669915E2,-5.36E1)); +#4556=VERTEX_POINT('',#4555); +#4557=CARTESIAN_POINT('',(-6.523044355270E1,1.458380622363E2,-5.36E1)); +#4558=VERTEX_POINT('',#4557); +#4559=CARTESIAN_POINT('',(9.453678880401E0,2.9E2,-4.06E1)); +#4560=VERTEX_POINT('',#4559); +#4561=CARTESIAN_POINT('',(9.453678863567E0,2.468280368970E2,-5.359999999877E1)); +#4562=VERTEX_POINT('',#4561); +#4563=VERTEX_POINT('',#3575); +#4564=VERTEX_POINT('',#3526); +#4565=CARTESIAN_POINT('',(9.453678880404E0,2.82E2,-1.541E2)); +#4566=VERTEX_POINT('',#4565); +#4567=CARTESIAN_POINT('',(9.453678880404E0,2.82E2,-1.269E2)); +#4568=VERTEX_POINT('',#4567); +#4569=CARTESIAN_POINT('',(9.453678880403E0,2.93E2,-1.269E2)); +#4570=VERTEX_POINT('',#4569); +#4571=CARTESIAN_POINT('',(9.453678880401E0,2.93E2,-4.36E1)); +#4572=VERTEX_POINT('',#4571); +#4573=VERTEX_POINT('',#2828); +#4574=VERTEX_POINT('',#2834); +#4575=CARTESIAN_POINT('',(-6.519223416037E1,2.457916280694E2, +-5.359999999933E1)); +#4576=VERTEX_POINT('',#4575); +#4577=VERTEX_POINT('',#2850); +#4578=VERTEX_POINT('',#2639); +#4579=VERTEX_POINT('',#2645); +#4580=VERTEX_POINT('',#2658); +#4581=VERTEX_POINT('',#3670); +#4582=CARTESIAN_POINT('',(-6.519223417048E1,2.93E2,-1.268999999999E2)); +#4583=CARTESIAN_POINT('',(-6.519223417048E1,2.93E2,-4.36E1)); +#4584=VERTEX_POINT('',#4582); +#4585=VERTEX_POINT('',#4583); +#4586=CARTESIAN_POINT('',(-6.519223417048E1,2.82E2,-1.268999999998E2)); +#4587=VERTEX_POINT('',#4586); +#4588=CARTESIAN_POINT('',(-6.519223417048E1,2.82E2,-1.541E2)); +#4589=VERTEX_POINT('',#4588); +#4590=CARTESIAN_POINT('',(-6.519223417048E1,2.406448723108E2,-1.541E2)); +#4591=VERTEX_POINT('',#4590); +#4592=CARTESIAN_POINT('',(-6.519223417048E1,2.9E2,-4.06E1)); +#4593=VERTEX_POINT('',#4592); +#4594=CARTESIAN_POINT('',(-6.719223416952E1,2.95E2,-4.359999999534E1)); +#4595=CARTESIAN_POINT('',(-6.719223416920E1,2.95E2,-1.269000000097E2)); +#4596=VERTEX_POINT('',#4594); +#4597=VERTEX_POINT('',#4595); +#4598=CARTESIAN_POINT('',(1.145367887922E1,2.95E2,-1.269000000089E2)); +#4599=CARTESIAN_POINT('',(1.145367887951E1,2.95E2,-4.359999999534E1)); +#4600=VERTEX_POINT('',#4598); +#4601=VERTEX_POINT('',#4599); +#4602=CARTESIAN_POINT('',(-5.463210888886E-1,2.95E2,-1.389E2)); +#4603=VERTEX_POINT('',#4602); +#4604=CARTESIAN_POINT('',(-5.519223418150E1,2.95E2,-1.388999999986E2)); +#4605=VERTEX_POINT('',#4604); +#4606=CARTESIAN_POINT('',(-8.999999999438E1,2.95E2,-4.359999999534E1)); +#4607=VERTEX_POINT('',#4606); +#4608=CARTESIAN_POINT('',(8.999999999826E1,2.95E2,-4.359999999534E1)); +#4609=VERTEX_POINT('',#4608); +#4610=CARTESIAN_POINT('',(-5.463211108485E-1,2.93E2,-1.369E2)); +#4611=VERTEX_POINT('',#4610); +#4612=CARTESIAN_POINT('',(-5.463211195957E-1,2.82E2,-1.369E2)); +#4613=VERTEX_POINT('',#4612); +#4614=CARTESIAN_POINT('',(-5.519223417592E1,2.82E2,-1.369E2)); +#4615=VERTEX_POINT('',#4614); +#4616=CARTESIAN_POINT('',(-6.346321119596E0,2.82E2,-1.699E2)); +#4617=VERTEX_POINT('',#4616); +#4618=CARTESIAN_POINT('',(-4.939223417048E1,2.82E2,-1.699E2)); +#4619=VERTEX_POINT('',#4618); +#4620=CARTESIAN_POINT('',(-5.519223417456E1,2.93E2,-1.369E2)); +#4621=VERTEX_POINT('',#4620); +#4622=VERTEX_POINT('',#3515); +#4623=VERTEX_POINT('',#3508); +#4624=VERTEX_POINT('',#3542); +#4625=VERTEX_POINT('',#3652); +#4626=CARTESIAN_POINT('',(1.378340943468E1,1.582109182289E2,-1.233505835568E2)); +#4627=VERTEX_POINT('',#4626); +#4628=VERTEX_POINT('',#2698); +#4629=VERTEX_POINT('',#3205); +#4630=VERTEX_POINT('',#2426); +#4631=VERTEX_POINT('',#2419); +#4632=CARTESIAN_POINT('',(-6.416713281516E0,3.009005479810E1, +-1.456762545734E2)); +#4633=CARTESIAN_POINT('',(-6.416713281516E0,3.009005479810E1, +-1.560454706971E2)); +#4634=VERTEX_POINT('',#4632); +#4635=VERTEX_POINT('',#4633); +#4636=VERTEX_POINT('',#1491); +#4637=CARTESIAN_POINT('',(-4.75E1,-2.5E2,-1.257488738510E2)); +#4638=CARTESIAN_POINT('',(-4.75E1,-2.5E2,-1.9E2)); +#4639=VERTEX_POINT('',#4637); +#4640=VERTEX_POINT('',#4638); +#4641=CARTESIAN_POINT('',(-2.25E1,-2.5E2,-1.322052627530E2)); +#4642=CARTESIAN_POINT('',(-2.25E1,-2.5E2,-1.9E2)); +#4643=VERTEX_POINT('',#4641); +#4644=VERTEX_POINT('',#4642); +#4645=CARTESIAN_POINT('',(-7.5E0,2.5E1,-1.457206748087E2)); +#4646=CARTESIAN_POINT('',(-7.5E0,2.5E1,-1.9E2)); +#4647=VERTEX_POINT('',#4645); +#4648=VERTEX_POINT('',#4646); +#4649=CARTESIAN_POINT('',(1.75E1,2.5E1,-1.9E2)); +#4650=VERTEX_POINT('',#4649); +#4651=CARTESIAN_POINT('',(-6.416713281516E0,-8.000179578406E1, +1.429144561350E-3)); +#4652=DIRECTION('',(1.E0,0.E0,0.E0)); +#4653=DIRECTION('',(0.E0,0.E0,1.E0)); +#4654=AXIS2_PLACEMENT_3D('',#4651,#4652,#4653); +#4655=PLANE('',#4654); +#4657=ORIENTED_EDGE('',*,*,#4656,.T.); +#4659=ORIENTED_EDGE('',*,*,#4658,.T.); +#4661=ORIENTED_EDGE('',*,*,#4660,.F.); +#4663=ORIENTED_EDGE('',*,*,#4662,.F.); +#4665=ORIENTED_EDGE('',*,*,#4664,.F.); +#4666=EDGE_LOOP('',(#4657,#4659,#4661,#4663,#4665)); +#4667=FACE_OUTER_BOUND('',#4666,.F.); +#4669=CARTESIAN_POINT('',(-5.196849685997E0,-8.000179578406E1, +1.429144561350E-3)); +#4670=DIRECTION('',(1.E0,0.E0,0.E0)); +#4671=DIRECTION('',(0.E0,0.E0,1.E0)); +#4672=AXIS2_PLACEMENT_3D('',#4669,#4670,#4671); +#4673=CYLINDRICAL_SURFACE('',#4672,1.909734288188E2); +#4675=ORIENTED_EDGE('',*,*,#4674,.T.); +#4676=ORIENTED_EDGE('',*,*,#4656,.F.); +#4678=ORIENTED_EDGE('',*,*,#4677,.T.); +#4680=ORIENTED_EDGE('',*,*,#4679,.F.); +#4682=ORIENTED_EDGE('',*,*,#4681,.T.); +#4684=ORIENTED_EDGE('',*,*,#4683,.F.); +#4686=ORIENTED_EDGE('',*,*,#4685,.T.); +#4687=EDGE_LOOP('',(#4675,#4676,#4678,#4680,#4682,#4684,#4686)); +#4688=FACE_OUTER_BOUND('',#4687,.F.); +#4690=CARTESIAN_POINT('',(1.E2,-2.1E2,-1.9E2)); +#4691=DIRECTION('',(0.E0,-1.E0,0.E0)); +#4692=DIRECTION('',(-1.E0,0.E0,0.E0)); +#4693=AXIS2_PLACEMENT_3D('',#4690,#4691,#4692); +#4694=PLANE('',#4693); +#4696=ORIENTED_EDGE('',*,*,#4695,.F.); +#4698=ORIENTED_EDGE('',*,*,#4697,.F.); +#4699=ORIENTED_EDGE('',*,*,#4658,.F.); +#4700=ORIENTED_EDGE('',*,*,#4674,.F.); +#4701=EDGE_LOOP('',(#4696,#4698,#4699,#4700)); +#4702=FACE_OUTER_BOUND('',#4701,.F.); +#4704=CARTESIAN_POINT('',(8.25E1,-2.125E2,-1.9E2)); +#4705=DIRECTION('',(0.E0,0.E0,-1.E0)); +#4706=DIRECTION('',(0.E0,-1.E0,0.E0)); +#4707=AXIS2_PLACEMENT_3D('',#4704,#4705,#4706); +#4708=CYLINDRICAL_SURFACE('',#4707,1.75E1); +#4709=ORIENTED_EDGE('',*,*,#4695,.T.); +#4710=ORIENTED_EDGE('',*,*,#4685,.F.); +#4712=ORIENTED_EDGE('',*,*,#4711,.T.); +#4714=ORIENTED_EDGE('',*,*,#4713,.F.); +#4715=EDGE_LOOP('',(#4709,#4710,#4712,#4714)); +#4716=FACE_OUTER_BOUND('',#4715,.F.); +#4718=CARTESIAN_POINT('',(8.5E1,-2.95E2,-1.9E2)); +#4719=DIRECTION('',(1.E0,0.E0,0.E0)); +#4720=DIRECTION('',(0.E0,1.E0,0.E0)); +#4721=AXIS2_PLACEMENT_3D('',#4718,#4719,#4720); +#4722=PLANE('',#4721); +#4724=ORIENTED_EDGE('',*,*,#4723,.T.); +#4726=ORIENTED_EDGE('',*,*,#4725,.F.); +#4727=ORIENTED_EDGE('',*,*,#4711,.F.); +#4728=ORIENTED_EDGE('',*,*,#4683,.T.); +#4729=EDGE_LOOP('',(#4724,#4726,#4727,#4728)); +#4730=FACE_OUTER_BOUND('',#4729,.F.); +#4732=CARTESIAN_POINT('',(-8.5E1,-2.5E2,-1.9E2)); +#4733=DIRECTION('',(0.E0,1.E0,0.E0)); +#4734=DIRECTION('',(1.E0,0.E0,0.E0)); +#4735=AXIS2_PLACEMENT_3D('',#4732,#4733,#4734); +#4736=PLANE('',#4735); +#4738=ORIENTED_EDGE('',*,*,#4737,.F.); +#4740=ORIENTED_EDGE('',*,*,#4739,.T.); +#4742=ORIENTED_EDGE('',*,*,#4741,.T.); +#4744=ORIENTED_EDGE('',*,*,#4743,.T.); +#4746=ORIENTED_EDGE('',*,*,#4745,.T.); +#4748=ORIENTED_EDGE('',*,*,#4747,.F.); +#4749=EDGE_LOOP('',(#4738,#4740,#4742,#4744,#4746,#4748)); +#4750=FACE_OUTER_BOUND('',#4749,.F.); +#4752=CARTESIAN_POINT('',(-8.5E1,-2.5E2,-1.9E2)); +#4753=DIRECTION('',(0.E0,1.E0,0.E0)); +#4754=DIRECTION('',(1.E0,0.E0,0.E0)); +#4755=AXIS2_PLACEMENT_3D('',#4752,#4753,#4754); +#4756=PLANE('',#4755); +#4758=ORIENTED_EDGE('',*,*,#4757,.T.); +#4760=ORIENTED_EDGE('',*,*,#4759,.F.); +#4761=ORIENTED_EDGE('',*,*,#4723,.F.); +#4762=ORIENTED_EDGE('',*,*,#4681,.F.); +#4764=ORIENTED_EDGE('',*,*,#4763,.T.); +#4766=ORIENTED_EDGE('',*,*,#4765,.T.); +#4767=EDGE_LOOP('',(#4758,#4760,#4761,#4762,#4764,#4766)); +#4768=FACE_OUTER_BOUND('',#4767,.F.); +#4770=CARTESIAN_POINT('',(-3.5E1,-2.5E2,-1.9E2)); +#4771=DIRECTION('',(0.E0,0.E0,-1.E0)); +#4772=DIRECTION('',(-1.E0,0.E0,0.E0)); +#4773=AXIS2_PLACEMENT_3D('',#4770,#4771,#4772); +#4774=CYLINDRICAL_SURFACE('',#4773,1.25E1); +#4775=ORIENTED_EDGE('',*,*,#4737,.T.); +#4777=ORIENTED_EDGE('',*,*,#4776,.T.); +#4778=ORIENTED_EDGE('',*,*,#4757,.F.); +#4780=ORIENTED_EDGE('',*,*,#4779,.F.); +#4781=EDGE_LOOP('',(#4775,#4777,#4778,#4780)); +#4782=FACE_OUTER_BOUND('',#4781,.F.); +#4784=CARTESIAN_POINT('',(0.E0,0.E0,-1.9E2)); +#4785=DIRECTION('',(0.E0,0.E0,1.E0)); +#4786=DIRECTION('',(1.E0,0.E0,0.E0)); +#4787=AXIS2_PLACEMENT_3D('',#4784,#4785,#4786); +#4788=PLANE('',#4787); +#4790=ORIENTED_EDGE('',*,*,#4789,.T.); +#4792=ORIENTED_EDGE('',*,*,#4791,.T.); +#4794=ORIENTED_EDGE('',*,*,#4793,.F.); +#4796=ORIENTED_EDGE('',*,*,#4795,.T.); +#4798=ORIENTED_EDGE('',*,*,#4797,.T.); +#4800=ORIENTED_EDGE('',*,*,#4799,.T.); +#4802=ORIENTED_EDGE('',*,*,#4801,.T.); +#4804=ORIENTED_EDGE('',*,*,#4803,.F.); +#4806=ORIENTED_EDGE('',*,*,#4805,.T.); +#4808=ORIENTED_EDGE('',*,*,#4807,.F.); +#4810=ORIENTED_EDGE('',*,*,#4809,.T.); +#4812=ORIENTED_EDGE('',*,*,#4811,.F.); +#4814=ORIENTED_EDGE('',*,*,#4813,.T.); +#4816=ORIENTED_EDGE('',*,*,#4815,.T.); +#4818=ORIENTED_EDGE('',*,*,#4817,.T.); +#4820=ORIENTED_EDGE('',*,*,#4819,.F.); +#4821=EDGE_LOOP('',(#4790,#4792,#4794,#4796,#4798,#4800,#4802,#4804,#4806,#4808, +#4810,#4812,#4814,#4816,#4818,#4820)); +#4822=FACE_OUTER_BOUND('',#4821,.F.); +#4824=ORIENTED_EDGE('',*,*,#4823,.T.); +#4826=ORIENTED_EDGE('',*,*,#4825,.T.); +#4827=EDGE_LOOP('',(#4824,#4826)); +#4828=FACE_BOUND('',#4827,.F.); +#4829=ORIENTED_EDGE('',*,*,#4759,.T.); +#4830=ORIENTED_EDGE('',*,*,#4776,.F.); +#4831=ORIENTED_EDGE('',*,*,#4747,.T.); +#4833=ORIENTED_EDGE('',*,*,#4832,.T.); +#4835=ORIENTED_EDGE('',*,*,#4834,.T.); +#4837=ORIENTED_EDGE('',*,*,#4836,.F.); +#4838=ORIENTED_EDGE('',*,*,#4660,.T.); +#4839=ORIENTED_EDGE('',*,*,#4697,.T.); +#4840=ORIENTED_EDGE('',*,*,#4713,.T.); +#4841=ORIENTED_EDGE('',*,*,#4725,.T.); +#4842=EDGE_LOOP('',(#4829,#4830,#4831,#4833,#4835,#4837,#4838,#4839,#4840, +#4841)); +#4843=FACE_BOUND('',#4842,.F.); +#4845=ORIENTED_EDGE('',*,*,#4844,.T.); +#4847=ORIENTED_EDGE('',*,*,#4846,.F.); +#4849=ORIENTED_EDGE('',*,*,#4848,.T.); +#4851=ORIENTED_EDGE('',*,*,#4850,.T.); +#4853=ORIENTED_EDGE('',*,*,#4852,.T.); +#4855=ORIENTED_EDGE('',*,*,#4854,.T.); +#4857=ORIENTED_EDGE('',*,*,#4856,.T.); +#4859=ORIENTED_EDGE('',*,*,#4858,.T.); +#4861=ORIENTED_EDGE('',*,*,#4860,.F.); +#4863=ORIENTED_EDGE('',*,*,#4862,.F.); +#4865=ORIENTED_EDGE('',*,*,#4864,.T.); +#4867=ORIENTED_EDGE('',*,*,#4866,.T.); +#4869=ORIENTED_EDGE('',*,*,#4868,.T.); +#4871=ORIENTED_EDGE('',*,*,#4870,.T.); +#4872=EDGE_LOOP('',(#4845,#4847,#4849,#4851,#4853,#4855,#4857,#4859,#4861,#4863, +#4865,#4867,#4869,#4871)); +#4873=FACE_BOUND('',#4872,.F.); +#4875=CARTESIAN_POINT('',(9.5E1,-2.E2,-6.900468170986E2)); +#4876=DIRECTION('',(0.E0,0.E0,1.E0)); +#4877=DIRECTION('',(1.E0,0.E0,0.E0)); +#4878=AXIS2_PLACEMENT_3D('',#4875,#4876,#4877); +#4879=CYLINDRICAL_SURFACE('',#4878,5.E0); +#4880=ORIENTED_EDGE('',*,*,#4789,.F.); +#4882=ORIENTED_EDGE('',*,*,#4881,.T.); +#4884=ORIENTED_EDGE('',*,*,#4883,.T.); +#4886=ORIENTED_EDGE('',*,*,#4885,.T.); +#4887=EDGE_LOOP('',(#4880,#4882,#4884,#4886)); +#4888=FACE_OUTER_BOUND('',#4887,.F.); +#4890=CARTESIAN_POINT('',(1.E2,-2.95E2,-1.9E2)); +#4891=DIRECTION('',(1.E0,0.E0,0.E0)); +#4892=DIRECTION('',(0.E0,1.E0,0.E0)); +#4893=AXIS2_PLACEMENT_3D('',#4890,#4891,#4892); +#4894=PLANE('',#4893); +#4896=ORIENTED_EDGE('',*,*,#4895,.T.); +#4897=ORIENTED_EDGE('',*,*,#4881,.F.); +#4898=ORIENTED_EDGE('',*,*,#4819,.T.); +#4900=ORIENTED_EDGE('',*,*,#4899,.F.); +#4901=EDGE_LOOP('',(#4896,#4897,#4898,#4900)); +#4902=FACE_OUTER_BOUND('',#4901,.F.); +#4904=CARTESIAN_POINT('',(9.5E1,-8.000179578406E1,1.429144561350E-3)); +#4905=DIRECTION('',(1.E0,0.E0,0.E0)); +#4906=DIRECTION('',(0.E0,-9.192783888012E-1,-3.936079824940E-1)); +#4907=AXIS2_PLACEMENT_3D('',#4904,#4905,#4906); +#4908=TOROIDAL_SURFACE('',#4907,1.809734288188E2,5.E0); +#4909=ORIENTED_EDGE('',*,*,#4895,.F.); +#4911=ORIENTED_EDGE('',*,*,#4910,.F.); +#4913=ORIENTED_EDGE('',*,*,#4912,.T.); +#4914=ORIENTED_EDGE('',*,*,#4883,.F.); +#4915=EDGE_LOOP('',(#4909,#4911,#4913,#4914)); +#4916=FACE_OUTER_BOUND('',#4915,.F.); +#4918=CARTESIAN_POINT('',(9.337485170458E1,-2.444985990587E2, +-6.282662915540E1)); +#4919=CARTESIAN_POINT('',(9.352435821481E1,-2.439864034388E2, +-6.416764144128E1)); +#4920=CARTESIAN_POINT('',(9.381882720458E1,-2.427213330853E2, +-6.736214261514E1)); +#4921=CARTESIAN_POINT('',(9.394767301689E1,-2.412937911442E2, +-7.067949742887E1)); +#4922=CARTESIAN_POINT('',(9.394086791589E1,-2.404006763258E2, +-7.265379339784E1)); +#4923=CARTESIAN_POINT('',(9.393975905231E1,-2.403283358554E2, +-7.281307294298E1)); +#4924=CARTESIAN_POINT('',(9.806013137729E1,-2.437144444281E2, +-6.201974084495E1)); +#4925=CARTESIAN_POINT('',(9.821526142761E1,-2.431891221706E2, +-6.340613943316E1)); +#4926=CARTESIAN_POINT('',(9.852168936754E1,-2.418866603398E2, +-6.671648329226E1)); +#4927=CARTESIAN_POINT('',(9.865725166022E1,-2.404011940042E2, +-7.017794493992E1)); +#4928=CARTESIAN_POINT('',(9.865009362752E1,-2.394634276933E2, +-7.225051323764E1)); +#4929=CARTESIAN_POINT('',(9.864892625371E1,-2.393874156142E2, +-7.241780521641E1)); +#4930=CARTESIAN_POINT('',(1.010103131927E2,-2.473697548417E2, +-6.309348663110E1)); +#4931=CARTESIAN_POINT('',(1.011689842197E2,-2.468231597603E2, +-6.454258159892E1)); +#4932=CARTESIAN_POINT('',(1.014829423562E2,-2.454649985545E2, +-6.800718635750E1)); +#4933=CARTESIAN_POINT('',(1.016227338176E2,-2.439066849487E2, +-7.164396846156E1)); +#4934=CARTESIAN_POINT('',(1.016153535543E2,-2.429179984620E2, +-7.382882439675E1)); +#4935=CARTESIAN_POINT('',(1.016141493383E2,-2.428378270538E2, +-7.400522883021E1)); +#4936=CARTESIAN_POINT('',(9.888913810716E1,-2.513308656010E2, +-6.483360437213E1)); +#4937=CARTESIAN_POINT('',(9.904526317867E1,-2.507789082134E2, +-6.629180461969E1)); +#4938=CARTESIAN_POINT('',(9.935380711826E1,-2.494097282405E2, +-6.977464015180E1)); +#4939=CARTESIAN_POINT('',(9.949055781544E1,-2.478460249584E2, +-7.341969246665E1)); +#4940=CARTESIAN_POINT('',(9.948333733550E1,-2.468577334864E2, +-7.560386912477E1)); +#4941=CARTESIAN_POINT('',(9.948215960898E1,-2.467776186709E2, +-7.578018107268E1)); +#4942=(BOUNDED_SURFACE()B_SPLINE_SURFACE(3,3,((#4918,#4919,#4920,#4921,#4922, +#4923),(#4924,#4925,#4926,#4927,#4928,#4929),(#4930,#4931,#4932,#4933,#4934, +#4935),(#4936,#4937,#4938,#4939,#4940,#4941)),.UNSPECIFIED.,.F.,.F.,.F.)B_SPLINE_SURFACE_WITH_KNOTS((4,4),(4,1,1,4),(0.E0,1.E0),(9.265411026607E-1, +9.572540027019E-1,1.E0,1.003755290940E0),.UNSPECIFIED.)GEOMETRIC_REPRESENTATION_ITEM()RATIONAL_B_SPLINE_SURFACE(((1.394148688117E0,1.394148688117E0, +1.394148688117E0,1.394148688117E0,1.394148688117E0,1.394148688117E0),( +8.686171039611E-1,8.686171039611E-1,8.686171039611E-1,8.686171039611E-1, +8.686171039611E-1,8.686171039611E-1),(8.686171039611E-1,8.686171039611E-1, +8.686171039611E-1,8.686171039611E-1,8.686171039611E-1,8.686171039611E-1),( +1.394148688117E0,1.394148688117E0,1.394148688117E0,1.394148688117E0, +1.394148688117E0,1.394148688117E0)))REPRESENTATION_ITEM('')SURFACE()); +#4944=ORIENTED_EDGE('',*,*,#4943,.F.); +#4945=ORIENTED_EDGE('',*,*,#4910,.T.); +#4947=ORIENTED_EDGE('',*,*,#4946,.T.); +#4949=ORIENTED_EDGE('',*,*,#4948,.F.); +#4950=EDGE_LOOP('',(#4944,#4945,#4947,#4949)); +#4951=FACE_OUTER_BOUND('',#4950,.F.); +#4953=CARTESIAN_POINT('',(-5.196849685997E0,-8.000179578406E1, +1.429144561350E-3)); +#4954=DIRECTION('',(1.E0,0.E0,0.E0)); +#4955=DIRECTION('',(0.E0,0.E0,1.E0)); +#4956=AXIS2_PLACEMENT_3D('',#4953,#4954,#4955); +#4957=CYLINDRICAL_SURFACE('',#4956,1.759734288188E2); +#4959=ORIENTED_EDGE('',*,*,#4958,.F.); +#4961=ORIENTED_EDGE('',*,*,#4960,.F.); +#4963=ORIENTED_EDGE('',*,*,#4962,.T.); +#4964=ORIENTED_EDGE('',*,*,#4912,.F.); +#4965=ORIENTED_EDGE('',*,*,#4943,.T.); +#4966=EDGE_LOOP('',(#4959,#4961,#4963,#4964,#4965)); +#4967=FACE_OUTER_BOUND('',#4966,.F.); +#4969=CARTESIAN_POINT('',(1.000988548E3,-2.488987944182E2,-6.5E1)); +#4970=DIRECTION('',(-1.E0,0.E0,0.E0)); +#4971=DIRECTION('',(0.E0,0.E0,1.E0)); +#4972=AXIS2_PLACEMENT_3D('',#4969,#4970,#4971); +#4973=CYLINDRICAL_SURFACE('',#4972,5.E0); +#4974=ORIENTED_EDGE('',*,*,#4958,.T.); +#4976=ORIENTED_EDGE('',*,*,#4975,.F.); +#4978=ORIENTED_EDGE('',*,*,#4977,.T.); +#4980=ORIENTED_EDGE('',*,*,#4979,.F.); +#4981=EDGE_LOOP('',(#4974,#4976,#4978,#4980)); +#4982=FACE_OUTER_BOUND('',#4981,.F.); +#4984=CARTESIAN_POINT('',(9.448445380693E1,-2.488987944182E2,-6.5E1)); +#4985=DIRECTION('',(-3.750021434561E-5,9.332695518422E-1,3.591767562049E-1)); +#4986=DIRECTION('',(-9.953579625200E-1,3.453305869569E-2,-8.983314702915E-2)); +#4987=AXIS2_PLACEMENT_3D('',#4984,#4985,#4986); +#4988=SPHERICAL_SURFACE('',#4987,5.E0); +#4989=ORIENTED_EDGE('',*,*,#4948,.T.); +#4991=ORIENTED_EDGE('',*,*,#4990,.T.); +#4992=ORIENTED_EDGE('',*,*,#4975,.T.); +#4993=EDGE_LOOP('',(#4989,#4991,#4992)); +#4994=FACE_OUTER_BOUND('',#4993,.F.); +#4996=CARTESIAN_POINT('',(8.E1,-2.45E2,-6.5E1)); +#4997=DIRECTION('',(0.E0,0.E0,-1.E0)); +#4998=DIRECTION('',(-9.692537184184E-2,-9.952916518756E-1,0.E0)); +#4999=AXIS2_PLACEMENT_3D('',#4996,#4997,#4998); +#5000=TOROIDAL_SURFACE('',#4999,1.5E1,5.E0); +#5002=ORIENTED_EDGE('',*,*,#5001,.T.); +#5004=ORIENTED_EDGE('',*,*,#5003,.T.); +#5006=ORIENTED_EDGE('',*,*,#5005,.F.); +#5007=ORIENTED_EDGE('',*,*,#4990,.F.); +#5008=EDGE_LOOP('',(#5002,#5004,#5006,#5007)); +#5009=FACE_OUTER_BOUND('',#5008,.F.); +#5011=CARTESIAN_POINT('',(8.E1,-2.45E2,6.875166547988E2)); +#5012=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5013=DIRECTION('',(1.E0,0.E0,0.E0)); +#5014=AXIS2_PLACEMENT_3D('',#5011,#5012,#5013); +#5015=CYLINDRICAL_SURFACE('',#5014,2.E1); +#5016=ORIENTED_EDGE('',*,*,#5001,.F.); +#5017=ORIENTED_EDGE('',*,*,#4946,.F.); +#5018=ORIENTED_EDGE('',*,*,#4899,.T.); +#5019=ORIENTED_EDGE('',*,*,#4817,.F.); +#5021=ORIENTED_EDGE('',*,*,#5020,.T.); +#5022=EDGE_LOOP('',(#5016,#5017,#5018,#5019,#5021)); +#5023=FACE_OUTER_BOUND('',#5022,.F.); +#5025=CARTESIAN_POINT('',(1.883112633936E2,-2.65E2,-2.667E2)); +#5026=DIRECTION('',(0.E0,1.E0,0.E0)); +#5027=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5028=AXIS2_PLACEMENT_3D('',#5025,#5026,#5027); +#5029=PLANE('',#5028); +#5031=ORIENTED_EDGE('',*,*,#5030,.F.); +#5033=ORIENTED_EDGE('',*,*,#5032,.F.); +#5035=ORIENTED_EDGE('',*,*,#5034,.F.); +#5037=ORIENTED_EDGE('',*,*,#5036,.F.); +#5038=ORIENTED_EDGE('',*,*,#5020,.F.); +#5039=ORIENTED_EDGE('',*,*,#4815,.F.); +#5041=ORIENTED_EDGE('',*,*,#5040,.F.); +#5043=ORIENTED_EDGE('',*,*,#5042,.F.); +#5044=EDGE_LOOP('',(#5031,#5033,#5035,#5037,#5038,#5039,#5041,#5043)); +#5045=FACE_OUTER_BOUND('',#5044,.F.); +#5047=CARTESIAN_POINT('',(-5.449999999992E1,-2.6E2,-6.900468170986E2)); +#5048=DIRECTION('',(0.E0,0.E0,1.E0)); +#5049=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5050=AXIS2_PLACEMENT_3D('',#5047,#5048,#5049); +#5051=CYLINDRICAL_SURFACE('',#5050,5.E0); +#5053=ORIENTED_EDGE('',*,*,#5052,.F.); +#5054=ORIENTED_EDGE('',*,*,#5030,.T.); +#5056=ORIENTED_EDGE('',*,*,#5055,.F.); +#5058=ORIENTED_EDGE('',*,*,#5057,.T.); +#5059=EDGE_LOOP('',(#5053,#5054,#5056,#5058)); +#5060=FACE_OUTER_BOUND('',#5059,.F.); +#5062=CARTESIAN_POINT('',(0.E0,0.E0,-7.E0)); +#5063=DIRECTION('',(0.E0,0.E0,1.E0)); +#5064=DIRECTION('',(0.E0,1.E0,0.E0)); +#5065=AXIS2_PLACEMENT_3D('',#5062,#5063,#5064); +#5066=PLANE('',#5065); +#5067=ORIENTED_EDGE('',*,*,#5052,.T.); +#5069=ORIENTED_EDGE('',*,*,#5068,.T.); +#5071=ORIENTED_EDGE('',*,*,#5070,.F.); +#5073=ORIENTED_EDGE('',*,*,#5072,.T.); +#5075=ORIENTED_EDGE('',*,*,#5074,.T.); +#5077=ORIENTED_EDGE('',*,*,#5076,.T.); +#5079=ORIENTED_EDGE('',*,*,#5078,.F.); +#5081=ORIENTED_EDGE('',*,*,#5080,.T.); +#5083=ORIENTED_EDGE('',*,*,#5082,.T.); +#5084=ORIENTED_EDGE('',*,*,#5032,.T.); +#5085=EDGE_LOOP('',(#5067,#5069,#5071,#5073,#5075,#5077,#5079,#5081,#5083, +#5084)); +#5086=FACE_OUTER_BOUND('',#5085,.F.); +#5088=CARTESIAN_POINT('',(-5.949999999992E1,-2.1E2,-6.E1)); +#5089=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5090=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5091=AXIS2_PLACEMENT_3D('',#5088,#5089,#5090); +#5092=PLANE('',#5091); +#5094=ORIENTED_EDGE('',*,*,#5093,.F.); +#5096=ORIENTED_EDGE('',*,*,#5095,.T.); +#5098=ORIENTED_EDGE('',*,*,#5097,.F.); +#5100=ORIENTED_EDGE('',*,*,#5099,.T.); +#5101=ORIENTED_EDGE('',*,*,#5068,.F.); +#5102=ORIENTED_EDGE('',*,*,#5057,.F.); +#5103=EDGE_LOOP('',(#5094,#5096,#5098,#5100,#5101,#5102)); +#5104=FACE_OUTER_BOUND('',#5103,.F.); +#5106=CARTESIAN_POINT('',(0.E0,0.E0,-6.E1)); +#5107=DIRECTION('',(0.E0,0.E0,1.E0)); +#5108=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5109=AXIS2_PLACEMENT_3D('',#5106,#5107,#5108); +#5110=PLANE('',#5109); +#5112=ORIENTED_EDGE('',*,*,#5111,.F.); +#5113=ORIENTED_EDGE('',*,*,#5093,.T.); +#5115=ORIENTED_EDGE('',*,*,#5114,.F.); +#5117=ORIENTED_EDGE('',*,*,#5116,.T.); +#5119=ORIENTED_EDGE('',*,*,#5118,.F.); +#5121=ORIENTED_EDGE('',*,*,#5120,.T.); +#5123=ORIENTED_EDGE('',*,*,#5122,.F.); +#5125=ORIENTED_EDGE('',*,*,#5124,.F.); +#5127=ORIENTED_EDGE('',*,*,#5126,.F.); +#5129=ORIENTED_EDGE('',*,*,#5128,.F.); +#5131=ORIENTED_EDGE('',*,*,#5130,.F.); +#5133=ORIENTED_EDGE('',*,*,#5132,.F.); +#5135=ORIENTED_EDGE('',*,*,#5134,.F.); +#5136=EDGE_LOOP('',(#5112,#5113,#5115,#5117,#5119,#5121,#5123,#5125,#5127,#5129, +#5131,#5133,#5135)); +#5137=FACE_OUTER_BOUND('',#5136,.F.); +#5139=CARTESIAN_POINT('',(-7.32018548E2,-2.05E2,-5.5E1)); +#5140=DIRECTION('',(1.E0,0.E0,0.E0)); +#5141=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5142=AXIS2_PLACEMENT_3D('',#5139,#5140,#5141); +#5143=CYLINDRICAL_SURFACE('',#5142,5.E0); +#5145=ORIENTED_EDGE('',*,*,#5144,.T.); +#5146=ORIENTED_EDGE('',*,*,#5095,.F.); +#5147=ORIENTED_EDGE('',*,*,#5111,.T.); +#5149=ORIENTED_EDGE('',*,*,#5148,.F.); +#5150=EDGE_LOOP('',(#5145,#5146,#5147,#5149)); +#5151=FACE_OUTER_BOUND('',#5150,.F.); +#5153=CARTESIAN_POINT('',(-7.026E1,-2.1E2,-6.E1)); +#5154=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5155=DIRECTION('',(1.E0,0.E0,0.E0)); +#5156=AXIS2_PLACEMENT_3D('',#5153,#5154,#5155); +#5157=PLANE('',#5156); +#5158=ORIENTED_EDGE('',*,*,#5144,.F.); +#5160=ORIENTED_EDGE('',*,*,#5159,.T.); +#5162=ORIENTED_EDGE('',*,*,#5161,.F.); +#5163=ORIENTED_EDGE('',*,*,#5097,.T.); +#5164=EDGE_LOOP('',(#5158,#5160,#5162,#5163)); +#5165=FACE_OUTER_BOUND('',#5164,.F.); +#5167=CARTESIAN_POINT('',(-4.649999999992E1,-2.95E2,-6.E1)); +#5168=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5169=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5170=AXIS2_PLACEMENT_3D('',#5167,#5168,#5169); +#5171=PLANE('',#5170); +#5172=ORIENTED_EDGE('',*,*,#5159,.F.); +#5173=ORIENTED_EDGE('',*,*,#5148,.T.); +#5174=ORIENTED_EDGE('',*,*,#5134,.T.); +#5176=ORIENTED_EDGE('',*,*,#5175,.T.); +#5178=ORIENTED_EDGE('',*,*,#5177,.T.); +#5180=ORIENTED_EDGE('',*,*,#5179,.F.); +#5182=ORIENTED_EDGE('',*,*,#5181,.T.); +#5183=ORIENTED_EDGE('',*,*,#5072,.F.); +#5185=ORIENTED_EDGE('',*,*,#5184,.T.); +#5186=EDGE_LOOP('',(#5172,#5173,#5174,#5176,#5178,#5180,#5182,#5183,#5185)); +#5187=FACE_OUTER_BOUND('',#5186,.F.); +#5189=CARTESIAN_POINT('',(6.998110302995E2,2.5E1,-7.E1)); +#5190=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5191=DIRECTION('',(0.E0,0.E0,1.E0)); +#5192=AXIS2_PLACEMENT_3D('',#5189,#5190,#5191); +#5193=CYLINDRICAL_SURFACE('',#5192,1.E1); +#5195=ORIENTED_EDGE('',*,*,#5194,.F.); +#5197=ORIENTED_EDGE('',*,*,#5196,.T.); +#5198=ORIENTED_EDGE('',*,*,#5175,.F.); +#5199=ORIENTED_EDGE('',*,*,#5132,.T.); +#5200=EDGE_LOOP('',(#5195,#5197,#5198,#5199)); +#5201=FACE_OUTER_BOUND('',#5200,.F.); +#5203=CARTESIAN_POINT('',(-6.109070532508E1,-6.5E1,0.E0)); +#5204=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5205=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5206=AXIS2_PLACEMENT_3D('',#5203,#5204,#5205); +#5207=CONICAL_SURFACE('',#5206,1.159346827535E2,8.927825336436E1); +#5209=ORIENTED_EDGE('',*,*,#5208,.T.); +#5210=ORIENTED_EDGE('',*,*,#5194,.T.); +#5211=ORIENTED_EDGE('',*,*,#5130,.T.); +#5212=ORIENTED_EDGE('',*,*,#5128,.T.); +#5214=ORIENTED_EDGE('',*,*,#5213,.F.); +#5216=ORIENTED_EDGE('',*,*,#5215,.F.); +#5218=ORIENTED_EDGE('',*,*,#5217,.T.); +#5219=EDGE_LOOP('',(#5209,#5210,#5211,#5212,#5214,#5216,#5218)); +#5220=FACE_OUTER_BOUND('',#5219,.F.); +#5222=CARTESIAN_POINT('',(0.E0,3.5E1,-1.9E2)); +#5223=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5224=DIRECTION('',(1.E0,0.E0,0.E0)); +#5225=AXIS2_PLACEMENT_3D('',#5222,#5223,#5224); +#5226=PLANE('',#5225); +#5227=ORIENTED_EDGE('',*,*,#5208,.F.); +#5229=ORIENTED_EDGE('',*,*,#5228,.T.); +#5231=ORIENTED_EDGE('',*,*,#5230,.T.); +#5233=ORIENTED_EDGE('',*,*,#5232,.T.); +#5235=ORIENTED_EDGE('',*,*,#5234,.F.); +#5237=ORIENTED_EDGE('',*,*,#5236,.T.); +#5238=ORIENTED_EDGE('',*,*,#5177,.F.); +#5239=ORIENTED_EDGE('',*,*,#5196,.F.); +#5240=EDGE_LOOP('',(#5227,#5229,#5231,#5233,#5235,#5237,#5238,#5239)); +#5241=FACE_OUTER_BOUND('',#5240,.F.); +#5243=CARTESIAN_POINT('',(-5.449999999992E1,3.5E1,-1.041483448332E2)); +#5244=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5245=DIRECTION('',(0.E0,1.E0,0.E0)); +#5246=AXIS2_PLACEMENT_3D('',#5243,#5244,#5245); +#5247=PLANE('',#5246); +#5248=ORIENTED_EDGE('',*,*,#5217,.F.); +#5250=ORIENTED_EDGE('',*,*,#5249,.F.); +#5252=ORIENTED_EDGE('',*,*,#5251,.F.); +#5253=ORIENTED_EDGE('',*,*,#5228,.F.); +#5254=EDGE_LOOP('',(#5248,#5250,#5252,#5253)); +#5255=FACE_OUTER_BOUND('',#5254,.F.); +#5257=CARTESIAN_POINT('',(-5.449999999992E1,-6.437090860656E1, +-8.410286813856E-1)); +#5258=DIRECTION('',(1.E0,0.E0,0.E0)); +#5259=DIRECTION('',(0.E0,9.999619230642E-1,8.726535498375E-3)); +#5260=AXIS2_PLACEMENT_3D('',#5257,#5258,#5259); +#5261=CYLINDRICAL_SURFACE('',#5260,1.708595339955E2); +#5263=ORIENTED_EDGE('',*,*,#5262,.F.); +#5264=ORIENTED_EDGE('',*,*,#5249,.T.); +#5266=ORIENTED_EDGE('',*,*,#5265,.F.); +#5268=ORIENTED_EDGE('',*,*,#5267,.F.); +#5270=ORIENTED_EDGE('',*,*,#5269,.F.); +#5271=EDGE_LOOP('',(#5263,#5264,#5266,#5268,#5270)); +#5272=FACE_OUTER_BOUND('',#5271,.F.); +#5274=CARTESIAN_POINT('',(-2.700058323027E1,1.370471943136E2, +-9.700117014010E1)); +#5275=DIRECTION('',(2.706869236514E-12,-9.999619230642E-1,-8.726535498928E-3)); +#5276=DIRECTION('',(-9.999999991784E-1,-3.537407137730E-7,4.053438716555E-5)); +#5277=AXIS2_PLACEMENT_3D('',#5274,#5275,#5276); +#5278=CYLINDRICAL_SURFACE('',#5277,2.949928146872E1); +#5280=ORIENTED_EDGE('',*,*,#5279,.T.); +#5282=ORIENTED_EDGE('',*,*,#5281,.F.); +#5283=ORIENTED_EDGE('',*,*,#5230,.F.); +#5284=ORIENTED_EDGE('',*,*,#5251,.T.); +#5285=ORIENTED_EDGE('',*,*,#5262,.T.); +#5287=ORIENTED_EDGE('',*,*,#5286,.T.); +#5289=ORIENTED_EDGE('',*,*,#5288,.F.); +#5291=ORIENTED_EDGE('',*,*,#5290,.F.); +#5292=EDGE_LOOP('',(#5280,#5282,#5283,#5284,#5285,#5287,#5289,#5291)); +#5293=FACE_OUTER_BOUND('',#5292,.F.); +#5295=CARTESIAN_POINT('',(-4.199632111960E1,6.517400626796E1, +-1.174197892668E2)); +#5296=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5297=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5298=AXIS2_PLACEMENT_3D('',#5295,#5296,#5297); +#5299=PLANE('',#5298); +#5301=ORIENTED_EDGE('',*,*,#5300,.T.); +#5303=ORIENTED_EDGE('',*,*,#5302,.T.); +#5304=ORIENTED_EDGE('',*,*,#5279,.F.); +#5306=ORIENTED_EDGE('',*,*,#5305,.F.); +#5308=ORIENTED_EDGE('',*,*,#5307,.T.); +#5309=EDGE_LOOP('',(#5301,#5303,#5304,#5306,#5308)); +#5310=FACE_OUTER_BOUND('',#5309,.F.); +#5312=CARTESIAN_POINT('',(-4.199632111960E1,1.38E2,-6.E1)); +#5313=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5314=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5315=AXIS2_PLACEMENT_3D('',#5312,#5313,#5314); +#5316=PLANE('',#5315); +#5318=ORIENTED_EDGE('',*,*,#5317,.T.); +#5320=ORIENTED_EDGE('',*,*,#5319,.T.); +#5322=ORIENTED_EDGE('',*,*,#5321,.T.); +#5324=ORIENTED_EDGE('',*,*,#5323,.T.); +#5326=ORIENTED_EDGE('',*,*,#5325,.T.); +#5328=ORIENTED_EDGE('',*,*,#5327,.F.); +#5329=ORIENTED_EDGE('',*,*,#5234,.T.); +#5331=ORIENTED_EDGE('',*,*,#5330,.T.); +#5332=ORIENTED_EDGE('',*,*,#5300,.F.); +#5334=ORIENTED_EDGE('',*,*,#5333,.F.); +#5336=ORIENTED_EDGE('',*,*,#5335,.T.); +#5338=ORIENTED_EDGE('',*,*,#5337,.F.); +#5340=ORIENTED_EDGE('',*,*,#5339,.F.); +#5342=ORIENTED_EDGE('',*,*,#5341,.F.); +#5343=EDGE_LOOP('',(#5318,#5320,#5322,#5324,#5326,#5328,#5329,#5331,#5332,#5334, +#5336,#5338,#5340,#5342)); +#5344=FACE_OUTER_BOUND('',#5343,.F.); +#5346=CARTESIAN_POINT('',(4.555367888040E1,1.227286290940E2,-1.751513120379E2)); +#5347=DIRECTION('',(0.E0,-9.999619230642E-1,-8.726535498375E-3)); +#5348=DIRECTION('',(0.E0,-8.726535498375E-3,9.999619230642E-1)); +#5349=AXIS2_PLACEMENT_3D('',#5346,#5347,#5348); +#5350=PLANE('',#5349); +#5352=ORIENTED_EDGE('',*,*,#5351,.F.); +#5353=ORIENTED_EDGE('',*,*,#5317,.F.); +#5355=ORIENTED_EDGE('',*,*,#5354,.T.); +#5357=ORIENTED_EDGE('',*,*,#5356,.T.); +#5359=ORIENTED_EDGE('',*,*,#5358,.T.); +#5361=ORIENTED_EDGE('',*,*,#5360,.F.); +#5363=ORIENTED_EDGE('',*,*,#5362,.F.); +#5365=ORIENTED_EDGE('',*,*,#5364,.T.); +#5366=EDGE_LOOP('',(#5352,#5353,#5355,#5357,#5359,#5361,#5363,#5365)); +#5367=FACE_OUTER_BOUND('',#5366,.F.); +#5369=CARTESIAN_POINT('',(-5.924594064482E1,1.224643691008E2, +-1.448701161452E2)); +#5370=DIRECTION('',(0.E0,8.726535498375E-3,-9.999619230642E-1)); +#5371=DIRECTION('',(1.E0,0.E0,0.E0)); +#5372=AXIS2_PLACEMENT_3D('',#5369,#5370,#5371); +#5373=PLANE('',#5372); +#5375=ORIENTED_EDGE('',*,*,#5374,.T.); +#5377=ORIENTED_EDGE('',*,*,#5376,.F.); +#5378=ORIENTED_EDGE('',*,*,#5319,.F.); +#5379=ORIENTED_EDGE('',*,*,#5351,.T.); +#5381=ORIENTED_EDGE('',*,*,#5380,.F.); +#5382=EDGE_LOOP('',(#5375,#5377,#5378,#5379,#5381)); +#5383=FACE_OUTER_BOUND('',#5382,.F.); +#5385=CARTESIAN_POINT('',(-6.426589295293E1,-6.5E1,0.E0)); +#5386=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5387=DIRECTION('',(0.E0,5.583341522870E-3,-9.999844130272E-1)); +#5388=AXIS2_PLACEMENT_3D('',#5385,#5386,#5387); +#5389=TOROIDAL_SURFACE('',#5388,1.695157990234E2,1.55E1); +#5390=ORIENTED_EDGE('',*,*,#5374,.F.); +#5392=ORIENTED_EDGE('',*,*,#5391,.F.); +#5394=ORIENTED_EDGE('',*,*,#5393,.F.); +#5396=ORIENTED_EDGE('',*,*,#5395,.T.); +#5398=ORIENTED_EDGE('',*,*,#5397,.F.); +#5399=EDGE_LOOP('',(#5390,#5392,#5394,#5396,#5398)); +#5400=FACE_OUTER_BOUND('',#5399,.F.); +#5402=CARTESIAN_POINT('',(-6.050590529706E1,1.223080636826E2, +-1.269592892561E2)); +#5403=CARTESIAN_POINT('',(-6.049862223189E1,1.223091540193E2, +-1.270842294653E2)); +#5404=CARTESIAN_POINT('',(-6.045952516874E1,1.223149777077E2, +-1.277515580615E2)); +#5405=CARTESIAN_POINT('',(-6.038187650236E1,1.223262435273E2, +-1.290424931190E2)); +#5406=CARTESIAN_POINT('',(-6.001348994638E1,1.223774622027E2, +-1.349115719944E2)); +#5407=CARTESIAN_POINT('',(-5.961092187876E1,1.224248014666E2, +-1.403361143544E2)); +#5408=CARTESIAN_POINT('',(-5.922587472969E1,1.224665467960E2, +-1.451196552903E2)); +#5409=CARTESIAN_POINT('',(-5.921581306366E1,1.224676354569E2, +-1.452444034725E2)); +#5411=DIRECTION('',(0.E0,-9.999619230642E-1,-8.726535498375E-3)); +#5412=VECTOR('',#5411,1.E0); +#5413=SURFACE_OF_LINEAR_EXTRUSION('',#5410,#5412); +#5414=ORIENTED_EDGE('',*,*,#5391,.T.); +#5415=ORIENTED_EDGE('',*,*,#5380,.T.); +#5416=ORIENTED_EDGE('',*,*,#5364,.F.); +#5418=ORIENTED_EDGE('',*,*,#5417,.T.); +#5419=EDGE_LOOP('',(#5414,#5415,#5416,#5418)); +#5420=FACE_OUTER_BOUND('',#5419,.F.); +#5422=CARTESIAN_POINT('',(-2.699999999992E1,3.5E1,-9.7E1)); +#5423=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5424=DIRECTION('',(1.E0,0.E0,0.E0)); +#5425=AXIS2_PLACEMENT_3D('',#5422,#5423,#5424); +#5426=CYLINDRICAL_SURFACE('',#5425,4.55E1); +#5427=ORIENTED_EDGE('',*,*,#5417,.F.); +#5428=ORIENTED_EDGE('',*,*,#5362,.T.); +#5430=ORIENTED_EDGE('',*,*,#5429,.T.); +#5432=ORIENTED_EDGE('',*,*,#5431,.T.); +#5433=ORIENTED_EDGE('',*,*,#5393,.T.); +#5434=EDGE_LOOP('',(#5427,#5428,#5430,#5432,#5433)); +#5435=FACE_OUTER_BOUND('',#5434,.F.); +#5437=CARTESIAN_POINT('',(-7.249999999992E1,3.5E1,-6.E1)); +#5438=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5439=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5440=AXIS2_PLACEMENT_3D('',#5437,#5438,#5439); +#5441=PLANE('',#5440); +#5443=ORIENTED_EDGE('',*,*,#5442,.F.); +#5445=ORIENTED_EDGE('',*,*,#5444,.T.); +#5446=ORIENTED_EDGE('',*,*,#5429,.F.); +#5447=ORIENTED_EDGE('',*,*,#5360,.T.); +#5448=EDGE_LOOP('',(#5443,#5445,#5446,#5447)); +#5449=FACE_OUTER_BOUND('',#5448,.F.); +#5451=CARTESIAN_POINT('',(0.E0,0.E0,-5.36E1)); +#5452=DIRECTION('',(0.E0,0.E0,1.E0)); +#5453=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5454=AXIS2_PLACEMENT_3D('',#5451,#5452,#5453); +#5455=PLANE('',#5454); +#5457=ORIENTED_EDGE('',*,*,#5456,.F.); +#5459=ORIENTED_EDGE('',*,*,#5458,.T.); +#5461=ORIENTED_EDGE('',*,*,#5460,.F.); +#5463=ORIENTED_EDGE('',*,*,#5462,.F.); +#5464=ORIENTED_EDGE('',*,*,#5442,.T.); +#5465=ORIENTED_EDGE('',*,*,#5358,.F.); +#5466=EDGE_LOOP('',(#5457,#5459,#5461,#5463,#5464,#5465)); +#5467=FACE_OUTER_BOUND('',#5466,.F.); +#5469=CARTESIAN_POINT('',(-7.999118099423E1,1.385798492198E2, +-4.383265422462E1)); +#5470=DIRECTION('',(-9.996573249756E-1,0.E0,-2.617694830787E-2)); +#5471=DIRECTION('',(2.617694830787E-2,0.E0,-9.996573249756E-1)); +#5472=AXIS2_PLACEMENT_3D('',#5469,#5470,#5471); +#5473=PLANE('',#5472); +#5474=ORIENTED_EDGE('',*,*,#5456,.T.); +#5475=ORIENTED_EDGE('',*,*,#5356,.F.); +#5477=ORIENTED_EDGE('',*,*,#5476,.F.); +#5479=ORIENTED_EDGE('',*,*,#5478,.F.); +#5480=EDGE_LOOP('',(#5474,#5475,#5477,#5479)); +#5481=FACE_OUTER_BOUND('',#5480,.F.); +#5483=CARTESIAN_POINT('',(-2.699632111960E1,4.061542711321E2, +-1.225231779111E2)); +#5484=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5485=DIRECTION('',(9.996573249756E-1,0.E0,-2.617694830787E-2)); +#5486=AXIS2_PLACEMENT_3D('',#5483,#5484,#5485); +#5487=CYLINDRICAL_SURFACE('',#5486,5.091682208887E1); +#5489=ORIENTED_EDGE('',*,*,#5488,.F.); +#5491=ORIENTED_EDGE('',*,*,#5490,.T.); +#5493=ORIENTED_EDGE('',*,*,#5492,.T.); +#5495=ORIENTED_EDGE('',*,*,#5494,.F.); +#5497=ORIENTED_EDGE('',*,*,#5496,.T.); +#5499=ORIENTED_EDGE('',*,*,#5498,.T.); +#5501=ORIENTED_EDGE('',*,*,#5500,.F.); +#5503=ORIENTED_EDGE('',*,*,#5502,.T.); +#5505=ORIENTED_EDGE('',*,*,#5504,.F.); +#5506=ORIENTED_EDGE('',*,*,#5476,.T.); +#5507=ORIENTED_EDGE('',*,*,#5354,.F.); +#5508=ORIENTED_EDGE('',*,*,#5341,.T.); +#5510=ORIENTED_EDGE('',*,*,#5509,.T.); +#5511=EDGE_LOOP('',(#5489,#5491,#5493,#5495,#5497,#5499,#5501,#5503,#5505,#5506, +#5507,#5508,#5510)); +#5512=FACE_OUTER_BOUND('',#5511,.F.); +#5514=CARTESIAN_POINT('',(-1.199632111960E1,1.38E2,-6.E1)); +#5515=DIRECTION('',(0.E0,1.E0,0.E0)); +#5516=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5517=AXIS2_PLACEMENT_3D('',#5514,#5515,#5516); +#5518=PLANE('',#5517); +#5520=ORIENTED_EDGE('',*,*,#5519,.F.); +#5522=ORIENTED_EDGE('',*,*,#5521,.T.); +#5524=ORIENTED_EDGE('',*,*,#5523,.F.); +#5525=ORIENTED_EDGE('',*,*,#5488,.T.); +#5526=EDGE_LOOP('',(#5520,#5522,#5524,#5525)); +#5527=FACE_OUTER_BOUND('',#5526,.F.); +#5529=CARTESIAN_POINT('',(-3.699632111960E1,1.33E2,6.762011500698E2)); +#5530=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5531=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5532=AXIS2_PLACEMENT_3D('',#5529,#5530,#5531); +#5533=CYLINDRICAL_SURFACE('',#5532,5.E0); +#5534=ORIENTED_EDGE('',*,*,#5339,.T.); +#5536=ORIENTED_EDGE('',*,*,#5535,.F.); +#5537=ORIENTED_EDGE('',*,*,#5519,.T.); +#5538=ORIENTED_EDGE('',*,*,#5509,.F.); +#5539=EDGE_LOOP('',(#5534,#5536,#5537,#5538)); +#5540=FACE_OUTER_BOUND('',#5539,.F.); +#5542=CARTESIAN_POINT('',(-2.699632111960E1,4.061542711321E2, +-1.225231779111E2)); +#5543=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5544=DIRECTION('',(9.996573249756E-1,0.E0,-2.617694830787E-2)); +#5545=AXIS2_PLACEMENT_3D('',#5542,#5543,#5544); +#5546=CYLINDRICAL_SURFACE('',#5545,3.641682208887E1); +#5548=ORIENTED_EDGE('',*,*,#5547,.T.); +#5550=ORIENTED_EDGE('',*,*,#5549,.T.); +#5552=ORIENTED_EDGE('',*,*,#5551,.T.); +#5553=ORIENTED_EDGE('',*,*,#5521,.F.); +#5554=ORIENTED_EDGE('',*,*,#5535,.T.); +#5555=ORIENTED_EDGE('',*,*,#5337,.T.); +#5557=ORIENTED_EDGE('',*,*,#5556,.T.); +#5559=ORIENTED_EDGE('',*,*,#5558,.T.); +#5561=ORIENTED_EDGE('',*,*,#5560,.T.); +#5563=ORIENTED_EDGE('',*,*,#5562,.T.); +#5565=ORIENTED_EDGE('',*,*,#5564,.T.); +#5567=ORIENTED_EDGE('',*,*,#5566,.T.); +#5569=ORIENTED_EDGE('',*,*,#5568,.T.); +#5570=EDGE_LOOP('',(#5548,#5550,#5552,#5553,#5554,#5555,#5557,#5559,#5561,#5563, +#5565,#5567,#5569)); +#5571=FACE_OUTER_BOUND('',#5570,.F.); +#5573=CARTESIAN_POINT('',(4.555367888040E1,1.377280579399E2,-1.750204140054E2)); +#5574=DIRECTION('',(0.E0,-9.999619230642E-1,-8.726535498375E-3)); +#5575=DIRECTION('',(0.E0,-8.726535498375E-3,9.999619230642E-1)); +#5576=AXIS2_PLACEMENT_3D('',#5573,#5574,#5575); +#5577=PLANE('',#5576); +#5579=ORIENTED_EDGE('',*,*,#5578,.T.); +#5581=ORIENTED_EDGE('',*,*,#5580,.F.); +#5583=ORIENTED_EDGE('',*,*,#5582,.T.); +#5585=ORIENTED_EDGE('',*,*,#5584,.F.); +#5586=ORIENTED_EDGE('',*,*,#5547,.F.); +#5588=ORIENTED_EDGE('',*,*,#5587,.F.); +#5589=EDGE_LOOP('',(#5579,#5581,#5583,#5585,#5586,#5588)); +#5590=FACE_OUTER_BOUND('',#5589,.F.); +#5592=CARTESIAN_POINT('',(-7.32018548E2,1.345549126017E2,-4.06E1)); +#5593=DIRECTION('',(1.E0,0.E0,0.E0)); +#5594=DIRECTION('',(0.E0,9.999619230642E-1,8.726535498372E-3)); +#5595=AXIS2_PLACEMENT_3D('',#5592,#5593,#5594); +#5596=CYLINDRICAL_SURFACE('',#5595,2.E0); +#5598=ORIENTED_EDGE('',*,*,#5597,.T.); +#5600=ORIENTED_EDGE('',*,*,#5599,.F.); +#5601=ORIENTED_EDGE('',*,*,#5578,.F.); +#5603=ORIENTED_EDGE('',*,*,#5602,.F.); +#5604=EDGE_LOOP('',(#5598,#5600,#5601,#5603)); +#5605=FACE_OUTER_BOUND('',#5604,.F.); +#5607=CARTESIAN_POINT('',(0.E0,0.E0,-3.86E1)); +#5608=DIRECTION('',(0.E0,0.E0,1.E0)); +#5609=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5610=AXIS2_PLACEMENT_3D('',#5607,#5608,#5609); +#5611=PLANE('',#5610); +#5613=ORIENTED_EDGE('',*,*,#5612,.F.); +#5614=ORIENTED_EDGE('',*,*,#5597,.F.); +#5616=ORIENTED_EDGE('',*,*,#5615,.F.); +#5618=ORIENTED_EDGE('',*,*,#5617,.T.); +#5620=ORIENTED_EDGE('',*,*,#5619,.F.); +#5622=ORIENTED_EDGE('',*,*,#5621,.F.); +#5624=ORIENTED_EDGE('',*,*,#5623,.T.); +#5626=ORIENTED_EDGE('',*,*,#5625,.F.); +#5628=ORIENTED_EDGE('',*,*,#5627,.F.); +#5630=ORIENTED_EDGE('',*,*,#5629,.F.); +#5631=EDGE_LOOP('',(#5613,#5614,#5616,#5618,#5620,#5622,#5624,#5626,#5628, +#5630)); +#5632=FACE_OUTER_BOUND('',#5631,.F.); +#5634=ORIENTED_EDGE('',*,*,#5633,.T.); +#5636=ORIENTED_EDGE('',*,*,#5635,.T.); +#5637=EDGE_LOOP('',(#5634,#5636)); +#5638=FACE_BOUND('',#5637,.F.); +#5640=CARTESIAN_POINT('',(4.500000000076E0,1.025551722450E3,-4.06E1)); +#5641=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5642=DIRECTION('',(0.E0,0.E0,1.E0)); +#5643=AXIS2_PLACEMENT_3D('',#5640,#5641,#5642); +#5644=CYLINDRICAL_SURFACE('',#5643,2.E0); +#5646=ORIENTED_EDGE('',*,*,#5645,.F.); +#5648=ORIENTED_EDGE('',*,*,#5647,.F.); +#5649=ORIENTED_EDGE('',*,*,#5599,.T.); +#5650=ORIENTED_EDGE('',*,*,#5612,.T.); +#5651=EDGE_LOOP('',(#5646,#5648,#5649,#5650)); +#5652=FACE_OUTER_BOUND('',#5651,.F.); +#5654=CARTESIAN_POINT('',(-1.069999999992E1,-7.078058083514E1, +-3.807070152652E0)); +#5655=DIRECTION('',(1.E0,0.E0,0.E0)); +#5656=DIRECTION('',(0.E0,1.E0,0.E0)); +#5657=AXIS2_PLACEMENT_3D('',#5654,#5655,#5656); +#5658=CYLINDRICAL_SURFACE('',#5657,1.6615E2); +#5659=ORIENTED_EDGE('',*,*,#5645,.T.); +#5660=ORIENTED_EDGE('',*,*,#5629,.T.); +#5662=ORIENTED_EDGE('',*,*,#5661,.F.); +#5664=ORIENTED_EDGE('',*,*,#5663,.T.); +#5666=ORIENTED_EDGE('',*,*,#5665,.F.); +#5667=EDGE_LOOP('',(#5659,#5660,#5662,#5664,#5666)); +#5668=FACE_OUTER_BOUND('',#5667,.F.); +#5670=CARTESIAN_POINT('',(1.170000000008E1,3.5E1,-1.9E2)); +#5671=DIRECTION('',(1.E0,0.E0,0.E0)); +#5672=DIRECTION('',(0.E0,1.E0,0.E0)); +#5673=AXIS2_PLACEMENT_3D('',#5670,#5671,#5672); +#5674=PLANE('',#5673); +#5676=ORIENTED_EDGE('',*,*,#5675,.T.); +#5677=ORIENTED_EDGE('',*,*,#5661,.T.); +#5678=EDGE_LOOP('',(#5676,#5677)); +#5679=FACE_OUTER_BOUND('',#5678,.F.); +#5681=CARTESIAN_POINT('',(-5.196849685997E0,-8.000179578406E1, +1.429144561350E-3)); +#5682=DIRECTION('',(1.E0,0.E0,0.E0)); +#5683=DIRECTION('',(0.E0,0.E0,1.E0)); +#5684=AXIS2_PLACEMENT_3D('',#5681,#5682,#5683); +#5685=CYLINDRICAL_SURFACE('',#5684,1.759734288188E2); +#5687=ORIENTED_EDGE('',*,*,#5686,.F.); +#5689=ORIENTED_EDGE('',*,*,#5688,.T.); +#5691=ORIENTED_EDGE('',*,*,#5690,.T.); +#5693=ORIENTED_EDGE('',*,*,#5692,.F.); +#5694=ORIENTED_EDGE('',*,*,#5663,.F.); +#5695=ORIENTED_EDGE('',*,*,#5675,.F.); +#5696=ORIENTED_EDGE('',*,*,#5627,.T.); +#5698=ORIENTED_EDGE('',*,*,#5697,.F.); +#5700=ORIENTED_EDGE('',*,*,#5699,.T.); +#5701=EDGE_LOOP('',(#5687,#5689,#5691,#5693,#5694,#5695,#5696,#5698,#5700)); +#5702=FACE_OUTER_BOUND('',#5701,.F.); +#5704=CARTESIAN_POINT('',(8.583286718484E0,-8.000179578406E1, +1.429144561350E-3)); +#5705=DIRECTION('',(1.E0,0.E0,0.E0)); +#5706=DIRECTION('',(0.E0,0.E0,1.E0)); +#5707=AXIS2_PLACEMENT_3D('',#5704,#5705,#5706); +#5708=PLANE('',#5707); +#5709=ORIENTED_EDGE('',*,*,#5686,.T.); +#5711=ORIENTED_EDGE('',*,*,#5710,.T.); +#5713=ORIENTED_EDGE('',*,*,#5712,.T.); +#5715=ORIENTED_EDGE('',*,*,#5714,.T.); +#5717=ORIENTED_EDGE('',*,*,#5716,.F.); +#5718=EDGE_LOOP('',(#5709,#5711,#5713,#5715,#5717)); +#5719=FACE_OUTER_BOUND('',#5718,.F.); +#5721=CARTESIAN_POINT('',(7.500398666440E1,1.E1,-6.E1)); +#5722=DIRECTION('',(0.E0,1.E0,0.E0)); +#5723=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5724=AXIS2_PLACEMENT_3D('',#5721,#5722,#5723); +#5725=PLANE('',#5724); +#5727=ORIENTED_EDGE('',*,*,#5726,.F.); +#5728=ORIENTED_EDGE('',*,*,#5710,.F.); +#5729=ORIENTED_EDGE('',*,*,#5699,.F.); +#5731=ORIENTED_EDGE('',*,*,#5730,.F.); +#5732=ORIENTED_EDGE('',*,*,#4799,.F.); +#5734=ORIENTED_EDGE('',*,*,#5733,.F.); +#5736=ORIENTED_EDGE('',*,*,#5735,.F.); +#5738=ORIENTED_EDGE('',*,*,#5737,.T.); +#5740=ORIENTED_EDGE('',*,*,#5739,.F.); +#5741=EDGE_LOOP('',(#5727,#5728,#5729,#5731,#5732,#5734,#5736,#5738,#5740)); +#5742=FACE_OUTER_BOUND('',#5741,.F.); +#5744=CARTESIAN_POINT('',(-7.32018548E2,-2.E1,-1.703483031240E2)); +#5745=DIRECTION('',(1.E0,0.E0,0.E0)); +#5746=DIRECTION('',(0.E0,1.E0,0.E0)); +#5747=AXIS2_PLACEMENT_3D('',#5744,#5745,#5746); +#5748=CYLINDRICAL_SURFACE('',#5747,3.E1); +#5749=ORIENTED_EDGE('',*,*,#5726,.T.); +#5751=ORIENTED_EDGE('',*,*,#5750,.F.); +#5753=ORIENTED_EDGE('',*,*,#5752,.F.); +#5755=ORIENTED_EDGE('',*,*,#5754,.T.); +#5757=ORIENTED_EDGE('',*,*,#5756,.F.); +#5758=ORIENTED_EDGE('',*,*,#5712,.F.); +#5759=EDGE_LOOP('',(#5749,#5751,#5753,#5755,#5757,#5758)); +#5760=FACE_OUTER_BOUND('',#5759,.F.); +#5762=CARTESIAN_POINT('',(-4.887052769444E1,-6.5E1,0.E0)); +#5763=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5764=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5765=AXIS2_PLACEMENT_3D('',#5762,#5763,#5764); +#5766=CONICAL_SURFACE('',#5765,1.779194043499E2,8.927825336436E1); +#5767=ORIENTED_EDGE('',*,*,#5739,.T.); +#5769=ORIENTED_EDGE('',*,*,#5768,.F.); +#5770=ORIENTED_EDGE('',*,*,#5750,.T.); +#5771=EDGE_LOOP('',(#5767,#5769,#5770)); +#5772=FACE_OUTER_BOUND('',#5771,.F.); +#5774=CARTESIAN_POINT('',(-6.426589295293E1,-6.5E1,0.E0)); +#5775=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5776=DIRECTION('',(0.E0,5.583341522870E-3,-9.999844130272E-1)); +#5777=AXIS2_PLACEMENT_3D('',#5774,#5775,#5776); +#5778=TOROIDAL_SURFACE('',#5777,1.695157990234E2,1.55E1); +#5779=ORIENTED_EDGE('',*,*,#5768,.T.); +#5780=ORIENTED_EDGE('',*,*,#5737,.F.); +#5782=ORIENTED_EDGE('',*,*,#5781,.T.); +#5784=ORIENTED_EDGE('',*,*,#5783,.T.); +#5786=ORIENTED_EDGE('',*,*,#5785,.T.); +#5788=ORIENTED_EDGE('',*,*,#5787,.F.); +#5790=ORIENTED_EDGE('',*,*,#5789,.F.); +#5792=ORIENTED_EDGE('',*,*,#5791,.T.); +#5794=ORIENTED_EDGE('',*,*,#5793,.T.); +#5796=ORIENTED_EDGE('',*,*,#5795,.T.); +#5797=EDGE_LOOP('',(#5779,#5780,#5782,#5784,#5786,#5788,#5790,#5792,#5794, +#5796)); +#5798=FACE_OUTER_BOUND('',#5797,.F.); +#5800=CARTESIAN_POINT('',(-7.415982029507E1,-6.5E1,0.E0)); +#5801=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5802=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5803=AXIS2_PLACEMENT_3D('',#5800,#5801,#5802); +#5804=CONICAL_SURFACE('',#5803,1.856499021926E2,3.5E0); +#5805=ORIENTED_EDGE('',*,*,#5735,.T.); +#5807=ORIENTED_EDGE('',*,*,#5806,.F.); +#5809=ORIENTED_EDGE('',*,*,#5808,.F.); +#5811=ORIENTED_EDGE('',*,*,#5810,.T.); +#5812=ORIENTED_EDGE('',*,*,#5785,.F.); +#5813=ORIENTED_EDGE('',*,*,#5783,.F.); +#5814=ORIENTED_EDGE('',*,*,#5781,.F.); +#5815=EDGE_LOOP('',(#5805,#5807,#5809,#5811,#5812,#5813,#5814)); +#5816=FACE_OUTER_BOUND('',#5815,.F.); +#5818=CARTESIAN_POINT('',(-8.5E1,2.95E2,-1.9E2)); +#5819=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5820=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5821=AXIS2_PLACEMENT_3D('',#5818,#5819,#5820); +#5822=PLANE('',#5821); +#5823=ORIENTED_EDGE('',*,*,#5733,.T.); +#5824=ORIENTED_EDGE('',*,*,#4797,.F.); +#5826=ORIENTED_EDGE('',*,*,#5825,.F.); +#5827=ORIENTED_EDGE('',*,*,#5808,.T.); +#5828=ORIENTED_EDGE('',*,*,#5806,.T.); +#5829=EDGE_LOOP('',(#5823,#5824,#5826,#5827,#5828)); +#5830=FACE_OUTER_BOUND('',#5829,.F.); +#5832=CARTESIAN_POINT('',(1.281398666440E1,-1.8E2,-6.E1)); +#5833=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5834=DIRECTION('',(1.E0,0.E0,0.E0)); +#5835=AXIS2_PLACEMENT_3D('',#5832,#5833,#5834); +#5836=PLANE('',#5835); +#5838=ORIENTED_EDGE('',*,*,#5837,.T.); +#5840=ORIENTED_EDGE('',*,*,#5839,.T.); +#5841=ORIENTED_EDGE('',*,*,#5787,.T.); +#5842=ORIENTED_EDGE('',*,*,#5810,.F.); +#5843=ORIENTED_EDGE('',*,*,#5825,.T.); +#5844=ORIENTED_EDGE('',*,*,#4795,.F.); +#5845=EDGE_LOOP('',(#5838,#5840,#5841,#5842,#5843,#5844)); +#5846=FACE_OUTER_BOUND('',#5845,.F.); +#5848=CARTESIAN_POINT('',(8.583286718484E0,-8.000179578406E1, +1.429144561350E-3)); +#5849=DIRECTION('',(1.E0,0.E0,0.E0)); +#5850=DIRECTION('',(0.E0,0.E0,1.E0)); +#5851=AXIS2_PLACEMENT_3D('',#5848,#5849,#5850); +#5852=PLANE('',#5851); +#5853=ORIENTED_EDGE('',*,*,#4960,.T.); +#5854=ORIENTED_EDGE('',*,*,#4979,.T.); +#5856=ORIENTED_EDGE('',*,*,#5855,.F.); +#5858=ORIENTED_EDGE('',*,*,#5857,.T.); +#5860=ORIENTED_EDGE('',*,*,#5859,.F.); +#5861=ORIENTED_EDGE('',*,*,#5837,.F.); +#5862=ORIENTED_EDGE('',*,*,#4793,.T.); +#5864=ORIENTED_EDGE('',*,*,#5863,.T.); +#5865=EDGE_LOOP('',(#5853,#5854,#5856,#5858,#5860,#5861,#5862,#5864)); +#5866=FACE_OUTER_BOUND('',#5865,.F.); +#5868=CARTESIAN_POINT('',(0.E0,0.E0,-6.E1)); +#5869=DIRECTION('',(0.E0,0.E0,1.E0)); +#5870=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5871=AXIS2_PLACEMENT_3D('',#5868,#5869,#5870); +#5872=PLANE('',#5871); +#5874=ORIENTED_EDGE('',*,*,#5873,.T.); +#5875=ORIENTED_EDGE('',*,*,#5855,.T.); +#5876=ORIENTED_EDGE('',*,*,#4977,.F.); +#5877=ORIENTED_EDGE('',*,*,#5005,.T.); +#5879=ORIENTED_EDGE('',*,*,#5878,.F.); +#5881=ORIENTED_EDGE('',*,*,#5880,.T.); +#5882=EDGE_LOOP('',(#5874,#5875,#5876,#5877,#5879,#5881)); +#5883=FACE_OUTER_BOUND('',#5882,.F.); +#5885=CARTESIAN_POINT('',(5.281285370993E0,-8.000179578406E1, +1.429144561350E-3)); +#5886=DIRECTION('',(1.E0,0.E0,0.E0)); +#5887=DIRECTION('',(0.E0,0.E0,1.E0)); +#5888=AXIS2_PLACEMENT_3D('',#5885,#5886,#5887); +#5889=CONICAL_SURFACE('',#5888,1.480524760469E2,7.916502623919E1); +#5891=ORIENTED_EDGE('',*,*,#5890,.F.); +#5893=ORIENTED_EDGE('',*,*,#5892,.T.); +#5895=ORIENTED_EDGE('',*,*,#5894,.F.); +#5897=ORIENTED_EDGE('',*,*,#5896,.F.); +#5899=ORIENTED_EDGE('',*,*,#5898,.F.); +#5901=ORIENTED_EDGE('',*,*,#5900,.F.); +#5903=ORIENTED_EDGE('',*,*,#5902,.T.); +#5905=ORIENTED_EDGE('',*,*,#5904,.T.); +#5907=ORIENTED_EDGE('',*,*,#5906,.F.); +#5908=ORIENTED_EDGE('',*,*,#5714,.F.); +#5909=ORIENTED_EDGE('',*,*,#5756,.T.); +#5911=ORIENTED_EDGE('',*,*,#5910,.T.); +#5913=ORIENTED_EDGE('',*,*,#5912,.T.); +#5915=ORIENTED_EDGE('',*,*,#5914,.T.); +#5916=ORIENTED_EDGE('',*,*,#5857,.F.); +#5917=ORIENTED_EDGE('',*,*,#5873,.F.); +#5919=ORIENTED_EDGE('',*,*,#5918,.T.); +#5920=EDGE_LOOP('',(#5891,#5893,#5895,#5897,#5899,#5901,#5903,#5905,#5907,#5908, +#5909,#5911,#5913,#5915,#5916,#5917,#5919)); +#5921=FACE_OUTER_BOUND('',#5920,.F.); +#5923=CARTESIAN_POINT('',(-7.026E1,-2.1E2,-6.E1)); +#5924=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5925=DIRECTION('',(1.E0,0.E0,0.E0)); +#5926=AXIS2_PLACEMENT_3D('',#5923,#5924,#5925); +#5927=PLANE('',#5926); +#5929=ORIENTED_EDGE('',*,*,#5928,.F.); +#5930=ORIENTED_EDGE('',*,*,#5890,.T.); +#5932=ORIENTED_EDGE('',*,*,#5931,.F.); +#5934=ORIENTED_EDGE('',*,*,#5933,.F.); +#5936=ORIENTED_EDGE('',*,*,#5935,.T.); +#5937=EDGE_LOOP('',(#5929,#5930,#5932,#5934,#5936)); +#5938=FACE_OUTER_BOUND('',#5937,.F.); +#5940=CARTESIAN_POINT('',(1.000988548E3,-2.05E2,-8.88E1)); +#5941=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5942=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5943=AXIS2_PLACEMENT_3D('',#5940,#5941,#5942); +#5944=CYLINDRICAL_SURFACE('',#5943,5.E0); +#5946=ORIENTED_EDGE('',*,*,#5945,.T.); +#5947=ORIENTED_EDGE('',*,*,#5892,.F.); +#5948=ORIENTED_EDGE('',*,*,#5928,.T.); +#5950=ORIENTED_EDGE('',*,*,#5949,.F.); +#5951=EDGE_LOOP('',(#5946,#5947,#5948,#5950)); +#5952=FACE_OUTER_BOUND('',#5951,.F.); +#5954=CARTESIAN_POINT('',(0.E0,0.E0,-9.38E1)); +#5955=DIRECTION('',(0.E0,0.E0,1.E0)); +#5956=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5957=AXIS2_PLACEMENT_3D('',#5954,#5955,#5956); +#5958=PLANE('',#5957); +#5959=ORIENTED_EDGE('',*,*,#5945,.F.); +#5961=ORIENTED_EDGE('',*,*,#5960,.T.); +#5963=ORIENTED_EDGE('',*,*,#5962,.F.); +#5964=ORIENTED_EDGE('',*,*,#5900,.T.); +#5966=ORIENTED_EDGE('',*,*,#5965,.F.); +#5967=ORIENTED_EDGE('',*,*,#5894,.T.); +#5968=EDGE_LOOP('',(#5959,#5961,#5963,#5964,#5966,#5967)); +#5969=FACE_OUTER_BOUND('',#5968,.F.); +#5971=CARTESIAN_POINT('',(-7.499999999924E0,-2.95E2,-9.8E1)); +#5972=DIRECTION('',(1.E0,0.E0,0.E0)); +#5973=DIRECTION('',(0.E0,0.E0,1.E0)); +#5974=AXIS2_PLACEMENT_3D('',#5971,#5972,#5973); +#5975=PLANE('',#5974); +#5976=ORIENTED_EDGE('',*,*,#5960,.F.); +#5977=ORIENTED_EDGE('',*,*,#5949,.T.); +#5978=ORIENTED_EDGE('',*,*,#5935,.F.); +#5980=ORIENTED_EDGE('',*,*,#5979,.T.); +#5981=ORIENTED_EDGE('',*,*,#5076,.F.); +#5983=ORIENTED_EDGE('',*,*,#5982,.T.); +#5985=ORIENTED_EDGE('',*,*,#5984,.F.); +#5987=ORIENTED_EDGE('',*,*,#5986,.T.); +#5988=EDGE_LOOP('',(#5976,#5977,#5978,#5980,#5981,#5983,#5985,#5987)); +#5989=FACE_OUTER_BOUND('',#5988,.F.); +#5991=CARTESIAN_POINT('',(1.000988548E3,-2.18E2,-1.5E1)); +#5992=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5993=DIRECTION('',(0.E0,0.E0,1.E0)); +#5994=AXIS2_PLACEMENT_3D('',#5991,#5992,#5993); +#5995=CYLINDRICAL_SURFACE('',#5994,8.E0); +#5997=ORIENTED_EDGE('',*,*,#5996,.T.); +#5999=ORIENTED_EDGE('',*,*,#5998,.F.); +#6000=ORIENTED_EDGE('',*,*,#5078,.T.); +#6001=ORIENTED_EDGE('',*,*,#5979,.F.); +#6002=ORIENTED_EDGE('',*,*,#5933,.T.); +#6003=EDGE_LOOP('',(#5997,#5999,#6000,#6001,#6002)); +#6004=FACE_OUTER_BOUND('',#6003,.F.); +#6006=CARTESIAN_POINT('',(5.629080912922E0,-2.173362148907E2,-6.E1)); +#6007=CARTESIAN_POINT('',(5.586035932438E0,-2.170907828287E2,-6.E1)); +#6008=CARTESIAN_POINT('',(5.348632304943E0,-2.157365835743E2,-6.E1)); +#6009=CARTESIAN_POINT('',(4.920981341111E0,-2.132912981770E2,-6.E1)); +#6010=CARTESIAN_POINT('',(4.495058033146E0,-2.108457112335E2,-6.E1)); +#6011=CARTESIAN_POINT('',(4.262885182555E0,-2.095089984943E2,-6.E1)); +#6012=CARTESIAN_POINT('',(4.220264863567E0,-2.092634923312E2,-6.E1)); +#6014=DIRECTION('',(0.E0,0.E0,1.E0)); +#6015=VECTOR('',#6014,1.E0); +#6016=SURFACE_OF_LINEAR_EXTRUSION('',#6013,#6015); +#6017=ORIENTED_EDGE('',*,*,#5931,.T.); +#6018=ORIENTED_EDGE('',*,*,#5918,.F.); +#6020=ORIENTED_EDGE('',*,*,#6019,.T.); +#6021=ORIENTED_EDGE('',*,*,#5996,.F.); +#6022=EDGE_LOOP('',(#6017,#6018,#6020,#6021)); +#6023=FACE_OUTER_BOUND('',#6022,.F.); +#6025=CARTESIAN_POINT('',(5.500000000076E0,-2.95E2,-6.E1)); +#6026=DIRECTION('',(1.E0,0.E0,0.E0)); +#6027=DIRECTION('',(0.E0,1.E0,0.E0)); +#6028=AXIS2_PLACEMENT_3D('',#6025,#6026,#6027); +#6029=PLANE('',#6028); +#6030=ORIENTED_EDGE('',*,*,#6019,.F.); +#6031=ORIENTED_EDGE('',*,*,#5880,.F.); +#6033=ORIENTED_EDGE('',*,*,#6032,.F.); +#6034=ORIENTED_EDGE('',*,*,#5080,.F.); +#6035=ORIENTED_EDGE('',*,*,#5998,.T.); +#6036=EDGE_LOOP('',(#6030,#6031,#6033,#6034,#6035)); +#6037=FACE_OUTER_BOUND('',#6036,.F.); +#6039=CARTESIAN_POINT('',(5.000000000761E-1,-2.6E2,6.876455785160E2)); +#6040=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6041=DIRECTION('',(1.E0,0.E0,0.E0)); +#6042=AXIS2_PLACEMENT_3D('',#6039,#6040,#6041); +#6043=CYLINDRICAL_SURFACE('',#6042,5.E0); +#6044=ORIENTED_EDGE('',*,*,#5034,.T.); +#6045=ORIENTED_EDGE('',*,*,#5082,.F.); +#6046=ORIENTED_EDGE('',*,*,#6032,.T.); +#6048=ORIENTED_EDGE('',*,*,#6047,.T.); +#6049=EDGE_LOOP('',(#6044,#6045,#6046,#6048)); +#6050=FACE_OUTER_BOUND('',#6049,.F.); +#6052=CARTESIAN_POINT('',(-7.32018548E2,-2.6E2,-6.5E1)); +#6053=DIRECTION('',(1.E0,0.E0,0.E0)); +#6054=DIRECTION('',(0.E0,0.E0,1.E0)); +#6055=AXIS2_PLACEMENT_3D('',#6052,#6053,#6054); +#6056=CYLINDRICAL_SURFACE('',#6055,5.E0); +#6057=ORIENTED_EDGE('',*,*,#5036,.T.); +#6058=ORIENTED_EDGE('',*,*,#6047,.F.); +#6059=ORIENTED_EDGE('',*,*,#5878,.T.); +#6060=ORIENTED_EDGE('',*,*,#5003,.F.); +#6061=EDGE_LOOP('',(#6057,#6058,#6059,#6060)); +#6062=FACE_OUTER_BOUND('',#6061,.F.); +#6064=CARTESIAN_POINT('',(5.500000000076E0,-2.5E2,-7.E0)); +#6065=DIRECTION('',(0.E0,1.E0,0.E0)); +#6066=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6067=AXIS2_PLACEMENT_3D('',#6064,#6065,#6066); +#6068=PLANE('',#6067); +#6070=ORIENTED_EDGE('',*,*,#6069,.T.); +#6071=ORIENTED_EDGE('',*,*,#5982,.F.); +#6072=ORIENTED_EDGE('',*,*,#5074,.F.); +#6073=ORIENTED_EDGE('',*,*,#5181,.F.); +#6074=EDGE_LOOP('',(#6070,#6071,#6072,#6073)); +#6075=FACE_OUTER_BOUND('',#6074,.F.); +#6077=CARTESIAN_POINT('',(-2.699999999992E1,-2.95E2,-9.8E1)); +#6078=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6079=DIRECTION('',(1.E0,0.E0,0.E0)); +#6080=AXIS2_PLACEMENT_3D('',#6077,#6078,#6079); +#6081=CYLINDRICAL_SURFACE('',#6080,1.95E1); +#6083=ORIENTED_EDGE('',*,*,#6082,.F.); +#6085=ORIENTED_EDGE('',*,*,#6084,.F.); +#6087=ORIENTED_EDGE('',*,*,#6086,.T.); +#6089=ORIENTED_EDGE('',*,*,#6088,.F.); +#6091=ORIENTED_EDGE('',*,*,#6090,.T.); +#6092=ORIENTED_EDGE('',*,*,#5984,.T.); +#6093=ORIENTED_EDGE('',*,*,#6069,.F.); +#6094=ORIENTED_EDGE('',*,*,#5179,.T.); +#6095=ORIENTED_EDGE('',*,*,#5236,.F.); +#6096=ORIENTED_EDGE('',*,*,#5327,.T.); +#6097=EDGE_LOOP('',(#6083,#6085,#6087,#6089,#6091,#6092,#6093,#6094,#6095, +#6096)); +#6098=FACE_OUTER_BOUND('',#6097,.F.); +#6100=CARTESIAN_POINT('',(-2.699999999992E1,-6.055728090001E0,-9.8E1)); +#6101=DIRECTION('',(0.E0,1.E0,0.E0)); +#6102=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6103=AXIS2_PLACEMENT_3D('',#6100,#6101,#6102); +#6104=CONICAL_SURFACE('',#6103,2.397213595500E1,2.656505117708E1); +#6106=ORIENTED_EDGE('',*,*,#6105,.F.); +#6108=ORIENTED_EDGE('',*,*,#6107,.F.); +#6110=ORIENTED_EDGE('',*,*,#6109,.F.); +#6111=ORIENTED_EDGE('',*,*,#6084,.T.); +#6112=ORIENTED_EDGE('',*,*,#6082,.T.); +#6113=ORIENTED_EDGE('',*,*,#5325,.F.); +#6114=EDGE_LOOP('',(#6106,#6108,#6110,#6111,#6112,#6113)); +#6115=FACE_OUTER_BOUND('',#6114,.F.); +#6117=CARTESIAN_POINT('',(-2.699999999992E1,-1.5E1,-9.8E1)); +#6118=DIRECTION('',(0.E0,1.E0,0.E0)); +#6119=DIRECTION('',(-1.228589811677E-3,0.E0,9.999992452833E-1)); +#6120=AXIS2_PLACEMENT_3D('',#6117,#6118,#6119); +#6121=TOROIDAL_SURFACE('',#6120,6.422135955E1,4.E1); +#6122=ORIENTED_EDGE('',*,*,#6107,.T.); +#6123=ORIENTED_EDGE('',*,*,#6105,.T.); +#6124=ORIENTED_EDGE('',*,*,#5323,.F.); +#6126=ORIENTED_EDGE('',*,*,#6125,.F.); +#6128=ORIENTED_EDGE('',*,*,#6127,.F.); +#6130=ORIENTED_EDGE('',*,*,#6129,.F.); +#6131=EDGE_LOOP('',(#6122,#6123,#6124,#6126,#6128,#6130)); +#6132=FACE_OUTER_BOUND('',#6131,.F.); +#6134=CARTESIAN_POINT('',(-8.5E1,2.5E1,-1.9E2)); +#6135=DIRECTION('',(0.E0,1.E0,0.E0)); +#6136=DIRECTION('',(1.E0,0.E0,0.E0)); +#6137=AXIS2_PLACEMENT_3D('',#6134,#6135,#6136); +#6138=PLANE('',#6137); +#6140=ORIENTED_EDGE('',*,*,#6139,.F.); +#6142=ORIENTED_EDGE('',*,*,#6141,.T.); +#6144=ORIENTED_EDGE('',*,*,#6143,.T.); +#6145=ORIENTED_EDGE('',*,*,#6127,.T.); +#6146=ORIENTED_EDGE('',*,*,#6125,.T.); +#6147=ORIENTED_EDGE('',*,*,#5321,.F.); +#6148=ORIENTED_EDGE('',*,*,#5376,.T.); +#6149=ORIENTED_EDGE('',*,*,#5397,.T.); +#6151=ORIENTED_EDGE('',*,*,#6150,.F.); +#6153=ORIENTED_EDGE('',*,*,#6152,.F.); +#6154=ORIENTED_EDGE('',*,*,#4848,.F.); +#6155=EDGE_LOOP('',(#6140,#6142,#6144,#6145,#6146,#6147,#6148,#6149,#6151,#6153, +#6154)); +#6156=FACE_OUTER_BOUND('',#6155,.F.); +#6158=CARTESIAN_POINT('',(-8.5E1,2.5E1,-1.9E2)); +#6159=DIRECTION('',(0.E0,1.E0,0.E0)); +#6160=DIRECTION('',(1.E0,0.E0,0.E0)); +#6161=AXIS2_PLACEMENT_3D('',#6158,#6159,#6160); +#6162=PLANE('',#6161); +#6164=ORIENTED_EDGE('',*,*,#6163,.T.); +#6165=ORIENTED_EDGE('',*,*,#4844,.F.); +#6167=ORIENTED_EDGE('',*,*,#6166,.F.); +#6169=ORIENTED_EDGE('',*,*,#6168,.F.); +#6170=EDGE_LOOP('',(#6164,#6165,#6167,#6169)); +#6171=FACE_OUTER_BOUND('',#6170,.F.); +#6173=CARTESIAN_POINT('',(5.E0,2.5E1,-1.9E2)); +#6174=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6175=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6176=AXIS2_PLACEMENT_3D('',#6173,#6174,#6175); +#6177=CYLINDRICAL_SURFACE('',#6176,1.25E1); +#6179=ORIENTED_EDGE('',*,*,#6178,.F.); +#6181=ORIENTED_EDGE('',*,*,#6180,.F.); +#6182=ORIENTED_EDGE('',*,*,#6139,.T.); +#6183=ORIENTED_EDGE('',*,*,#4846,.T.); +#6184=ORIENTED_EDGE('',*,*,#6163,.F.); +#6186=ORIENTED_EDGE('',*,*,#6185,.F.); +#6187=EDGE_LOOP('',(#6179,#6181,#6182,#6183,#6184,#6186)); +#6188=FACE_OUTER_BOUND('',#6187,.F.); +#6190=CARTESIAN_POINT('',(-6.416713281516E0,-8.000179578406E1, +1.429144561350E-3)); +#6191=DIRECTION('',(1.E0,0.E0,0.E0)); +#6192=DIRECTION('',(0.E0,0.E0,1.E0)); +#6193=AXIS2_PLACEMENT_3D('',#6190,#6191,#6192); +#6194=PLANE('',#6193); +#6195=ORIENTED_EDGE('',*,*,#6178,.T.); +#6197=ORIENTED_EDGE('',*,*,#6196,.T.); +#6199=ORIENTED_EDGE('',*,*,#6198,.T.); +#6200=EDGE_LOOP('',(#6195,#6197,#6199)); +#6201=FACE_OUTER_BOUND('',#6200,.F.); +#6203=CARTESIAN_POINT('',(-5.196849685997E0,-8.000179578406E1, +1.429144561350E-3)); +#6204=DIRECTION('',(1.E0,0.E0,0.E0)); +#6205=DIRECTION('',(0.E0,0.E0,1.E0)); +#6206=AXIS2_PLACEMENT_3D('',#6203,#6204,#6205); +#6207=CYLINDRICAL_SURFACE('',#6206,1.909734288188E2); +#6208=ORIENTED_EDGE('',*,*,#6185,.T.); +#6209=ORIENTED_EDGE('',*,*,#6168,.T.); +#6211=ORIENTED_EDGE('',*,*,#6210,.F.); +#6213=ORIENTED_EDGE('',*,*,#6212,.F.); +#6215=ORIENTED_EDGE('',*,*,#6214,.T.); +#6217=ORIENTED_EDGE('',*,*,#6216,.F.); +#6219=ORIENTED_EDGE('',*,*,#6218,.F.); +#6221=ORIENTED_EDGE('',*,*,#6220,.F.); +#6223=ORIENTED_EDGE('',*,*,#6222,.T.); +#6224=ORIENTED_EDGE('',*,*,#6196,.F.); +#6225=EDGE_LOOP('',(#6208,#6209,#6211,#6213,#6215,#6217,#6219,#6221,#6223, +#6224)); +#6226=FACE_OUTER_BOUND('',#6225,.F.); +#6228=CARTESIAN_POINT('',(8.25E1,3.75E1,-1.9E2)); +#6229=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6230=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6231=AXIS2_PLACEMENT_3D('',#6228,#6229,#6230); +#6232=CYLINDRICAL_SURFACE('',#6231,1.75E1); +#6233=ORIENTED_EDGE('',*,*,#4870,.F.); +#6235=ORIENTED_EDGE('',*,*,#6234,.T.); +#6236=ORIENTED_EDGE('',*,*,#6210,.T.); +#6237=ORIENTED_EDGE('',*,*,#6166,.T.); +#6238=EDGE_LOOP('',(#6233,#6235,#6236,#6237)); +#6239=FACE_OUTER_BOUND('',#6238,.F.); +#6241=CARTESIAN_POINT('',(8.5E1,-2.95E2,-1.9E2)); +#6242=DIRECTION('',(1.E0,0.E0,0.E0)); +#6243=DIRECTION('',(0.E0,1.E0,0.E0)); +#6244=AXIS2_PLACEMENT_3D('',#6241,#6242,#6243); +#6245=PLANE('',#6244); +#6247=ORIENTED_EDGE('',*,*,#6246,.F.); +#6249=ORIENTED_EDGE('',*,*,#6248,.T.); +#6251=ORIENTED_EDGE('',*,*,#6250,.F.); +#6253=ORIENTED_EDGE('',*,*,#6252,.T.); +#6255=ORIENTED_EDGE('',*,*,#6254,.F.); +#6257=ORIENTED_EDGE('',*,*,#6256,.T.); +#6258=ORIENTED_EDGE('',*,*,#6212,.T.); +#6259=ORIENTED_EDGE('',*,*,#6234,.F.); +#6260=ORIENTED_EDGE('',*,*,#4868,.F.); +#6261=EDGE_LOOP('',(#6247,#6249,#6251,#6253,#6255,#6257,#6258,#6259,#6260)); +#6262=FACE_OUTER_BOUND('',#6261,.F.); +#6264=CARTESIAN_POINT('',(8.25E1,2.775E2,-1.9E2)); +#6265=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6266=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6267=AXIS2_PLACEMENT_3D('',#6264,#6265,#6266); +#6268=CYLINDRICAL_SURFACE('',#6267,1.75E1); +#6270=ORIENTED_EDGE('',*,*,#6269,.F.); +#6272=ORIENTED_EDGE('',*,*,#6271,.F.); +#6273=ORIENTED_EDGE('',*,*,#6246,.T.); +#6274=ORIENTED_EDGE('',*,*,#4866,.F.); +#6276=ORIENTED_EDGE('',*,*,#6275,.T.); +#6278=ORIENTED_EDGE('',*,*,#6277,.F.); +#6280=ORIENTED_EDGE('',*,*,#6279,.T.); +#6281=EDGE_LOOP('',(#6270,#6272,#6273,#6274,#6276,#6278,#6280)); +#6282=FACE_OUTER_BOUND('',#6281,.F.); +#6284=CARTESIAN_POINT('',(0.E0,0.E0,-5.36E1)); +#6285=DIRECTION('',(0.E0,0.E0,1.E0)); +#6286=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6287=AXIS2_PLACEMENT_3D('',#6284,#6285,#6286); +#6288=PLANE('',#6287); +#6289=ORIENTED_EDGE('',*,*,#6271,.T.); +#6290=ORIENTED_EDGE('',*,*,#6269,.T.); +#6292=ORIENTED_EDGE('',*,*,#6291,.F.); +#6294=ORIENTED_EDGE('',*,*,#6293,.F.); +#6296=ORIENTED_EDGE('',*,*,#6295,.T.); +#6298=ORIENTED_EDGE('',*,*,#6297,.T.); +#6300=ORIENTED_EDGE('',*,*,#6299,.T.); +#6301=ORIENTED_EDGE('',*,*,#6248,.F.); +#6302=EDGE_LOOP('',(#6289,#6290,#6292,#6294,#6296,#6298,#6300,#6301)); +#6303=FACE_OUTER_BOUND('',#6302,.F.); +#6305=CARTESIAN_POINT('',(8.5E1,2.663848474702E2,-1.02E2)); +#6306=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6307=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6308=AXIS2_PLACEMENT_3D('',#6305,#6306,#6307); +#6309=PLANE('',#6308); +#6310=ORIENTED_EDGE('',*,*,#6279,.F.); +#6312=ORIENTED_EDGE('',*,*,#6311,.F.); +#6314=ORIENTED_EDGE('',*,*,#6313,.T.); +#6315=ORIENTED_EDGE('',*,*,#6291,.T.); +#6316=EDGE_LOOP('',(#6310,#6312,#6314,#6315)); +#6317=FACE_OUTER_BOUND('',#6316,.F.); +#6319=CARTESIAN_POINT('',(0.E0,0.E0,-1.02E2)); +#6320=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6321=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6322=AXIS2_PLACEMENT_3D('',#6319,#6320,#6321); +#6323=PLANE('',#6322); +#6324=ORIENTED_EDGE('',*,*,#6277,.T.); +#6326=ORIENTED_EDGE('',*,*,#6325,.F.); +#6328=ORIENTED_EDGE('',*,*,#6327,.F.); +#6329=ORIENTED_EDGE('',*,*,#6311,.T.); +#6330=EDGE_LOOP('',(#6324,#6326,#6328,#6329)); +#6331=FACE_OUTER_BOUND('',#6330,.F.); +#6333=CARTESIAN_POINT('',(1.E2,2.8E2,-1.9E2)); +#6334=DIRECTION('',(0.E0,1.E0,0.E0)); +#6335=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6336=AXIS2_PLACEMENT_3D('',#6333,#6334,#6335); +#6337=PLANE('',#6336); +#6338=ORIENTED_EDGE('',*,*,#6275,.F.); +#6339=ORIENTED_EDGE('',*,*,#4864,.F.); +#6341=ORIENTED_EDGE('',*,*,#6340,.T.); +#6343=ORIENTED_EDGE('',*,*,#6342,.F.); +#6344=ORIENTED_EDGE('',*,*,#6325,.T.); +#6345=EDGE_LOOP('',(#6338,#6339,#6341,#6343,#6344)); +#6346=FACE_OUTER_BOUND('',#6345,.F.); +#6348=CARTESIAN_POINT('',(5.7E0,1.064124E3,-1.657E2)); +#6349=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6350=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6351=AXIS2_PLACEMENT_3D('',#6348,#6349,#6350); +#6352=CYLINDRICAL_SURFACE('',#6351,2.43E1); +#6354=ORIENTED_EDGE('',*,*,#6353,.T.); +#6355=ORIENTED_EDGE('',*,*,#6340,.F.); +#6356=ORIENTED_EDGE('',*,*,#4862,.T.); +#6358=ORIENTED_EDGE('',*,*,#6357,.F.); +#6359=EDGE_LOOP('',(#6354,#6355,#6356,#6358)); +#6360=FACE_OUTER_BOUND('',#6359,.F.); +#6362=CARTESIAN_POINT('',(3.E1,2.8E2,-1.9E2)); +#6363=DIRECTION('',(1.E0,0.E0,0.E0)); +#6364=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6365=AXIS2_PLACEMENT_3D('',#6362,#6363,#6364); +#6366=PLANE('',#6365); +#6367=ORIENTED_EDGE('',*,*,#6353,.F.); +#6369=ORIENTED_EDGE('',*,*,#6368,.T.); +#6371=ORIENTED_EDGE('',*,*,#6370,.T.); +#6373=ORIENTED_EDGE('',*,*,#6372,.T.); +#6375=ORIENTED_EDGE('',*,*,#6374,.F.); +#6376=ORIENTED_EDGE('',*,*,#6293,.T.); +#6377=ORIENTED_EDGE('',*,*,#6313,.F.); +#6378=ORIENTED_EDGE('',*,*,#6327,.T.); +#6379=ORIENTED_EDGE('',*,*,#6342,.T.); +#6380=EDGE_LOOP('',(#6367,#6369,#6371,#6373,#6375,#6376,#6377,#6378,#6379)); +#6381=FACE_OUTER_BOUND('',#6380,.F.); +#6383=CARTESIAN_POINT('',(2.097124058701E1,1.991327065019E2,-1.902797351458E2)); +#6384=CARTESIAN_POINT('',(2.094233671181E1,2.026218976754E2,-1.902961914250E2)); +#6385=CARTESIAN_POINT('',(2.063857673840E1,2.095083543758E2,-1.903263822434E2)); +#6386=CARTESIAN_POINT('',(1.868489128545E1,2.195794987931E2,-1.905160600659E2)); +#6387=CARTESIAN_POINT('',(1.431839669781E1,2.286217117819E2,-1.909396038211E2)); +#6388=CARTESIAN_POINT('',(8.714669003335E0,2.339432774976E2,-1.912538506175E2)); +#6389=CARTESIAN_POINT('',(5.179918798553E0,2.360061991589E2,-1.913903053246E2)); +#6390=CARTESIAN_POINT('',(4.248478566714E0,2.364827664702E2,-1.914237814633E2)); +#6391=CARTESIAN_POINT('',(2.397569888866E1,1.990652843367E2,-1.869802305140E2)); +#6392=CARTESIAN_POINT('',(2.396984764929E1,2.027415780136E2,-1.869886353324E2)); +#6393=CARTESIAN_POINT('',(2.370851025870E1,2.100019683277E2,-1.869944157080E2)); +#6394=CARTESIAN_POINT('',(2.183529341431E1,2.206963263577E2,-1.871043433951E2)); +#6395=CARTESIAN_POINT('',(1.759067214848E1,2.305171973379E2,-1.874035217901E2)); +#6396=CARTESIAN_POINT('',(1.189423088989E1,2.367246153585E2,-1.876307225558E2)); +#6397=CARTESIAN_POINT('',(8.133469175839E0,2.393029924023E2,-1.877227303838E2)); +#6398=CARTESIAN_POINT('',(7.134003854572E0,2.399109240168E2,-1.877453728757E2)); +#6399=CARTESIAN_POINT('',(2.704917440274E1,1.990114380407E2,-1.829924937312E2)); +#6400=CARTESIAN_POINT('',(2.705102039638E1,2.029206645148E2,-1.830032673743E2)); +#6401=CARTESIAN_POINT('',(2.677182651717E1,2.106410463792E2,-1.830240978514E2)); +#6402=CARTESIAN_POINT('',(2.477670812330E1,2.219878217664E2,-1.831742037320E2)); +#6403=CARTESIAN_POINT('',(2.036030695716E1,2.323847881617E2,-1.835081295762E2)); +#6404=CARTESIAN_POINT('',(1.450024400529E1,2.390488976392E2,-1.837639281616E2)); +#6405=CARTESIAN_POINT('',(1.058290962945E1,2.419069946020E2,-1.838666169805E2)); +#6406=CARTESIAN_POINT('',(9.538510770258E0,2.425877094269E2,-1.838914206173E2)); +#6407=CARTESIAN_POINT('',(3.073738979224E1,1.989589461420E2,-1.776418117166E2)); +#6408=CARTESIAN_POINT('',(3.074720205601E1,2.031576056374E2,-1.776530324358E2)); +#6409=CARTESIAN_POINT('',(3.044322588432E1,2.114495691223E2,-1.776865391884E2)); +#6410=CARTESIAN_POINT('',(2.828793675029E1,2.235997948024E2,-1.778773090115E2)); +#6411=CARTESIAN_POINT('',(2.363062382252E1,2.346968667324E2,-1.782485750653E2)); +#6412=CARTESIAN_POINT('',(1.753155322740E1,2.418836473684E2,-1.785286930963E2)); +#6413=CARTESIAN_POINT('',(1.341581407451E1,2.450470427430E2,-1.786361683583E2)); +#6414=CARTESIAN_POINT('',(1.231567867272E1,2.458065032435E2,-1.786613728097E2)); +#6415=CARTESIAN_POINT('',(3.352795672099E1,1.989303617279E2,-1.731099711241E2)); +#6416=CARTESIAN_POINT('',(3.354437140820E1,2.033408530023E2,-1.731154586287E2)); +#6417=CARTESIAN_POINT('',(3.322760305526E1,2.120518797119E2,-1.731386209472E2)); +#6418=CARTESIAN_POINT('',(3.097457127107E1,2.248147217067E2,-1.733001537574E2)); +#6419=CARTESIAN_POINT('',(2.615513235185E1,2.364911780305E2,-1.736051139574E2)); +#6420=CARTESIAN_POINT('',(1.985229162274E1,2.441342782189E2,-1.738026311337E2)); +#6421=CARTESIAN_POINT('',(1.556662490248E1,2.475475266733E2,-1.738560057424E2)); +#6422=CARTESIAN_POINT('',(1.441913447709E1,2.483703846280E2,-1.738668366521E2)); +#6423=CARTESIAN_POINT('',(3.613663815595E1,1.989124495812E2,-1.679039653363E2)); +#6424=CARTESIAN_POINT('',(3.615533123153E1,2.035121077062E2,-1.679039678802E2)); +#6425=CARTESIAN_POINT('',(3.581907937022E1,2.125970294597E2,-1.679152120825E2)); +#6426=CARTESIAN_POINT('',(3.346343566280E1,2.259191136434E2,-1.680260671916E2)); +#6427=CARTESIAN_POINT('',(2.846413162480E1,2.381373075359E2,-1.682159748475E2)); +#6428=CARTESIAN_POINT('',(2.191881541229E1,2.461836226517E2,-1.682749935473E2)); +#6429=CARTESIAN_POINT('',(1.745177378503E1,2.497926287394E2,-1.682454770413E2)); +#6430=CARTESIAN_POINT('',(1.625496415006E1,2.506636893230E2,-1.682348207021E2)); +#6431=CARTESIAN_POINT('',(3.819248455545E1,1.988988936359E2,-1.621336650449E2)); +#6432=CARTESIAN_POINT('',(3.821059358054E1,2.036430987887E2,-1.621332541627E2)); +#6433=CARTESIAN_POINT('',(3.785424007629E1,2.130134400270E2,-1.621484856536E2)); +#6434=CARTESIAN_POINT('',(3.540416733376E1,2.267627851192E2,-1.622395297712E2)); +#6435=CARTESIAN_POINT('',(3.022779140593E1,2.393848338958E2,-1.623520027763E2)); +#6436=CARTESIAN_POINT('',(2.344541610946E1,2.476915075926E2,-1.623207605553E2)); +#6437=CARTESIAN_POINT('',(1.882084239814E1,2.514038665309E2,-1.622457361306E2)); +#6438=CARTESIAN_POINT('',(1.758226955934E1,2.522989574392E2,-1.622237859517E2)); +#6439=CARTESIAN_POINT('',(3.945854138055E1,1.988894892027E2,-1.563270185798E2)); +#6440=CARTESIAN_POINT('',(3.947653868313E1,2.037257005862E2,-1.563259393733E2)); +#6441=CARTESIAN_POINT('',(3.911199756088E1,2.132777802916E2,-1.563489866526E2)); +#6442=CARTESIAN_POINT('',(3.660845195329E1,2.272922427935E2,-1.564515257395E2)); +#6443=CARTESIAN_POINT('',(3.131318158559E1,2.401506251896E2,-1.565604760061E2)); +#6444=CARTESIAN_POINT('',(2.436845788601E1,2.485844629486E2,-1.565330799081E2)); +#6445=CARTESIAN_POINT('',(1.964431015362E1,2.523357813242E2,-1.564666473738E2)); +#6446=CARTESIAN_POINT('',(1.837977896626E1,2.532391416083E2,-1.564471694246E2)); +#6447=CARTESIAN_POINT('',(4.012034452938E1,1.988845027042E2,-1.506565082738E2)); +#6448=CARTESIAN_POINT('',(4.013770943772E1,2.037778874845E2,-1.506540760757E2)); +#6449=CARTESIAN_POINT('',(3.977366624269E1,2.134431265301E2,-1.506832038718E2)); +#6450=CARTESIAN_POINT('',(3.725659856126E1,2.276128312023E2,-1.508113757771E2)); +#6451=CARTESIAN_POINT('',(3.191220554881E1,2.405996808782E2,-1.509635506722E2)); +#6452=CARTESIAN_POINT('',(2.488452315565E1,2.490969183630E2,-1.509939456271E2)); +#6453=CARTESIAN_POINT('',(2.010856107428E1,2.528629304529E2,-1.509607339846E2)); +#6454=CARTESIAN_POINT('',(1.883050184309E1,2.537689575194E2,-1.509495929774E2)); +#6455=CARTESIAN_POINT('',(4.030509023115E1,1.988829984790E2,-1.471136695912E2)); +#6456=CARTESIAN_POINT('',(4.032178899334E1,2.038000942210E2,-1.471104055301E2)); +#6457=CARTESIAN_POINT('',(3.996141660754E1,2.135126172045E2,-1.471406374015E2)); +#6458=CARTESIAN_POINT('',(3.745328563212E1,2.277419632591E2,-1.472748925416E2)); +#6459=CARTESIAN_POINT('',(3.211045065232E1,2.407750076822E2,-1.474381516594E2)); +#6460=CARTESIAN_POINT('',(2.506314762751E1,2.492976504709E2,-1.474853176842E2)); +#6461=CARTESIAN_POINT('',(2.027173182008E1,2.530679098626E2,-1.474616486438E2)); +#6462=CARTESIAN_POINT('',(1.898952416323E1,2.539744606302E2,-1.474528817623E2)); +#6463=CARTESIAN_POINT('',(4.036545984169E1,1.988825257706E2,-1.452169529902E2)); +#6464=CARTESIAN_POINT('',(4.038175568648E1,2.038096797575E2,-1.452132307541E2)); +#6465=CARTESIAN_POINT('',(4.002389376137E1,2.135423768674E2,-1.452440661645E2)); +#6466=CARTESIAN_POINT('',(3.752336306415E1,2.277964511245E2,-1.453814028643E2)); +#6467=CARTESIAN_POINT('',(3.218603886553E1,2.408484879569E2,-1.455499781474E2)); +#6468=CARTESIAN_POINT('',(2.513229014542E1,2.493820185508E2,-1.456055035346E2)); +#6469=CARTESIAN_POINT('',(2.033493820913E1,2.531531999128E2,-1.455867037510E2)); +#6470=CARTESIAN_POINT('',(1.905112522649E1,2.540596921E2,-1.455791527559E2)); +#6471=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#6383,#6384,#6385,#6386,#6387,#6388, +#6389,#6390),(#6391,#6392,#6393,#6394,#6395,#6396,#6397,#6398),(#6399,#6400, +#6401,#6402,#6403,#6404,#6405,#6406),(#6407,#6408,#6409,#6410,#6411,#6412,#6413, +#6414),(#6415,#6416,#6417,#6418,#6419,#6420,#6421,#6422),(#6423,#6424,#6425, +#6426,#6427,#6428,#6429,#6430),(#6431,#6432,#6433,#6434,#6435,#6436,#6437, +#6438),(#6439,#6440,#6441,#6442,#6443,#6444,#6445,#6446),(#6447,#6448,#6449, +#6450,#6451,#6452,#6453,#6454),(#6455,#6456,#6457,#6458,#6459,#6460,#6461, +#6462),(#6463,#6464,#6465,#6466,#6467,#6468,#6469,#6470)),.UNSPECIFIED.,.F.,.F., +.F.,(4,1,1,1,1,1,1,1,4),(4,1,1,1,1,4),(-3.108116019794E-1,-2.613471779246E-2, +1.204559562126E-1,2.670466302176E-1,4.136373042227E-1,5.602279782277E-1, +7.068186522328E-1,8.534093262379E-1,1.019544193944E0),(4.973676521766E-1, +5.625E-1,6.25E-1,6.875E-1,7.5E-1,7.719181811432E-1),.UNSPECIFIED.); +#6472=ORIENTED_EDGE('',*,*,#6368,.F.); +#6473=ORIENTED_EDGE('',*,*,#6357,.T.); +#6474=ORIENTED_EDGE('',*,*,#4860,.T.); +#6476=ORIENTED_EDGE('',*,*,#6475,.F.); +#6478=ORIENTED_EDGE('',*,*,#6477,.F.); +#6479=EDGE_LOOP('',(#6472,#6473,#6474,#6476,#6478)); +#6480=FACE_OUTER_BOUND('',#6479,.F.); +#6482=CARTESIAN_POINT('',(-2.769593184547E1,1.554806706652E2, +-1.913456595686E2)); +#6483=CARTESIAN_POINT('',(-2.419696305696E1,1.554371178658E2, +-1.913053367756E2)); +#6484=CARTESIAN_POINT('',(-1.773734581032E1,1.554476272037E2, +-1.911922877881E2)); +#6485=CARTESIAN_POINT('',(-8.664906978174E0,1.561390274141E2, +-1.909784113979E2)); +#6486=CARTESIAN_POINT('',(-7.855540132226E-2,1.581129976692E2, +-1.908299349692E2)); +#6487=CARTESIAN_POINT('',(8.305359157542E0,1.625269178635E2,-1.907837906362E2)); +#6488=CARTESIAN_POINT('',(1.518163512299E1,1.700630786292E2,-1.906019390825E2)); +#6489=CARTESIAN_POINT('',(1.915961938723E1,1.794133879758E2,-1.903610969593E2)); +#6490=CARTESIAN_POINT('',(2.085448172533E1,1.897079665879E2,-1.902928546075E2)); +#6491=CARTESIAN_POINT('',(2.099063034320E1,1.967240974384E2,-1.903277304523E2)); +#6492=CARTESIAN_POINT('',(2.093130439980E1,2.003226807597E2,-1.903447829371E2)); +#6493=CARTESIAN_POINT('',(-2.780639722715E1,1.512622190952E2, +-1.874935071983E2)); +#6494=CARTESIAN_POINT('',(-2.405901771279E1,1.512098024910E2, +-1.874533268507E2)); +#6495=CARTESIAN_POINT('',(-1.710952039551E1,1.512808995581E2, +-1.873463916381E2)); +#6496=CARTESIAN_POINT('',(-7.279302549464E0,1.523042407996E2, +-1.871817397633E2)); +#6497=CARTESIAN_POINT('',(2.017101212046E0,1.548114825031E2,-1.871099124716E2)); +#6498=CARTESIAN_POINT('',(1.096180493894E1,1.599329897914E2,-1.871239075832E2)); +#6499=CARTESIAN_POINT('',(1.811309830471E1,1.682062750338E2,-1.869863001775E2)); +#6500=CARTESIAN_POINT('',(2.221011646185E1,1.781954258181E2,-1.867901989565E2)); +#6501=CARTESIAN_POINT('',(2.399753338815E1,1.890995924343E2,-1.867407416499E2)); +#6502=CARTESIAN_POINT('',(2.418418058443E1,1.965145692306E2,-1.867664096140E2)); +#6503=CARTESIAN_POINT('',(2.414901554375E1,2.003211431576E2,-1.867732316070E2)); +#6504=CARTESIAN_POINT('',(-2.785792246730E1,1.475590638945E2, +-1.832941659005E2)); +#6505=CARTESIAN_POINT('',(-2.383677397041E1,1.475365732312E2, +-1.832870079758E2)); +#6506=CARTESIAN_POINT('',(-1.637159649659E1,1.477155605946E2, +-1.832361530073E2)); +#6507=CARTESIAN_POINT('',(-5.837018258197E0,1.490386931327E2, +-1.831272307279E2)); +#6508=CARTESIAN_POINT('',(4.045229435371E0,1.519550110148E2,-1.830692096010E2)); +#6509=CARTESIAN_POINT('',(1.340486514422E1,1.575443939825E2,-1.830439037659E2)); +#6510=CARTESIAN_POINT('',(2.084444602480E1,1.662780794353E2,-1.828562842557E2)); +#6511=CARTESIAN_POINT('',(2.519939433594E1,1.768082439617E2,-1.826201840761E2)); +#6512=CARTESIAN_POINT('',(2.716910187123E1,1.883803895058E2,-1.825377119375E2)); +#6513=CARTESIAN_POINT('',(2.739962164437E1,1.962873313728E2,-1.825602052581E2)); +#6514=CARTESIAN_POINT('',(2.736729443817E1,2.003495409358E2,-1.825722969700E2)); +#6515=CARTESIAN_POINT('',(-2.793137165613E1,1.430811206265E2, +-1.773831534283E2)); +#6516=CARTESIAN_POINT('',(-2.358164621688E1,1.430800615156E2, +-1.774142329789E2)); +#6517=CARTESIAN_POINT('',(-1.550096206182E1,1.433607780238E2, +-1.774334033516E2)); +#6518=CARTESIAN_POINT('',(-4.125361722084E0,1.450061185160E2, +-1.774086849985E2)); +#6519=CARTESIAN_POINT('',(6.469022135378E0,1.483837710827E2,-1.773956710152E2)); +#6520=CARTESIAN_POINT('',(1.636845950617E1,1.545313609556E2,-1.773615708396E2)); +#6521=CARTESIAN_POINT('',(2.419858999166E1,1.638617819789E2,-1.771419148427E2)); +#6522=CARTESIAN_POINT('',(2.887080977031E1,1.750879042571E2,-1.768697224922E2)); +#6523=CARTESIAN_POINT('',(3.105593807617E1,1.874987256544E2,-1.767500178153E2)); +#6524=CARTESIAN_POINT('',(3.133836885994E1,1.960197675718E2,-1.767619162493E2)); +#6525=CARTESIAN_POINT('',(3.131018699006E1,2.004010061450E2,-1.767745184895E2)); +#6526=CARTESIAN_POINT('',(-2.797880679955E1,1.397306362688E2, +-1.720477317354E2)); +#6527=CARTESIAN_POINT('',(-2.339937400909E1,1.397313902594E2, +-1.720959561319E2)); +#6528=CARTESIAN_POINT('',(-1.488805299502E1,1.400604456040E2, +-1.721598622100E2)); +#6529=CARTESIAN_POINT('',(-2.905220708969E0,1.419054284292E2, +-1.722227004207E2)); +#6530=CARTESIAN_POINT('',(8.235927083251E0,1.455969447360E2,-1.722948636109E2)); +#6531=CARTESIAN_POINT('',(1.859698114472E1,1.521757744277E2,-1.723265306403E2)); +#6532=CARTESIAN_POINT('',(2.675919629863E1,1.620262835130E2,-1.721550147567E2)); +#6533=CARTESIAN_POINT('',(3.165420562521E1,1.738269036142E2,-1.719072912327E2)); +#6534=CARTESIAN_POINT('',(3.397877332084E1,1.868738582863E2,-1.717837273121E2)); +#6535=CARTESIAN_POINT('',(3.429557999714E1,1.958388266580E2,-1.717820534568E2)); +#6536=CARTESIAN_POINT('',(3.427092481134E1,2.004497002858E2,-1.717870435301E2)); +#6537=CARTESIAN_POINT('',(-2.802017911762E1,1.369714403855E2, +-1.658893121221E2)); +#6538=CARTESIAN_POINT('',(-2.325056883932E1,1.369580761518E2, +-1.659316224354E2)); +#6539=CARTESIAN_POINT('',(-1.438413002156E1,1.372915835672E2, +-1.660051700497E2)); +#6540=CARTESIAN_POINT('',(-1.888893847059E0,1.392371965104E2, +-1.661258960748E2)); +#6541=CARTESIAN_POINT('',(9.743153087382E0,1.431278337899E2,-1.662761589532E2)); +#6542=CARTESIAN_POINT('',(2.056603534486E1,1.500449805712E2,-1.663958084251E2)); +#6543=CARTESIAN_POINT('',(2.907376482346E1,1.603804370174E2,-1.663180363254E2)); +#6544=CARTESIAN_POINT('',(3.417280572664E1,1.727238198511E2,-1.661340235484E2)); +#6545=CARTESIAN_POINT('',(3.661114964984E1,1.863434050370E2,-1.660265320860E2)); +#6546=CARTESIAN_POINT('',(3.694973734723E1,1.956907565027E2,-1.660166486747E2)); +#6547=CARTESIAN_POINT('',(3.692294534345E1,2.004975047959E2,-1.660174877837E2)); +#6548=CARTESIAN_POINT('',(-2.805004433046E1,1.352296181798E2, +-1.595182606728E2)); +#6549=CARTESIAN_POINT('',(-2.314541463976E1,1.352032163139E2, +-1.595321931744E2)); +#6550=CARTESIAN_POINT('',(-1.403178800170E1,1.355261821392E2, +-1.595739198566E2)); +#6551=CARTESIAN_POINT('',(-1.189297100835E0,1.375010394289E2, +-1.596938692681E2)); +#6552=CARTESIAN_POINT('',(1.077914789705E1,1.414744733991E2,-1.598666354210E2)); +#6553=CARTESIAN_POINT('',(2.194028994413E1,1.485717499254E2,-1.600269907257E2)); +#6554=CARTESIAN_POINT('',(3.071795197712E1,1.592221473896E2,-1.600176021759E2)); +#6555=CARTESIAN_POINT('',(3.597109417705E1,1.719449701247E2,-1.598862424104E2)); +#6556=CARTESIAN_POINT('',(3.848809663421E1,1.859698165476E2,-1.597871714243E2)); +#6557=CARTESIAN_POINT('',(3.883897358821E1,1.955861334499E2,-1.597709812145E2)); +#6558=CARTESIAN_POINT('',(3.880970198163E1,2.005296703667E2,-1.597728143462E2)); +#6559=CARTESIAN_POINT('',(-2.806733811511E1,1.343583891348E2, +-1.535839858479E2)); +#6560=CARTESIAN_POINT('',(-2.307804898514E1,1.343301412971E2, +-1.535827139534E2)); +#6561=CARTESIAN_POINT('',(-1.381667922176E1,1.346507640567E2, +-1.536096295020E2)); +#6562=CARTESIAN_POINT('',(-7.863047067937E-1,1.366286142608E2, +-1.537291460170E2)); +#6563=CARTESIAN_POINT('',(1.135426635950E1,1.406197173729E2,-1.538976103229E2)); +#6564=CARTESIAN_POINT('',(2.269328207598E1,1.477795885568E2,-1.540373888289E2)); +#6565=CARTESIAN_POINT('',(3.161968558197E1,1.585763493581E2,-1.540130696726E2)); +#6566=CARTESIAN_POINT('',(3.695203557967E1,1.714978707551E2,-1.538708045102E2)); +#6567=CARTESIAN_POINT('',(3.950123736665E1,1.857505261285E2,-1.537493937262E2)); +#6568=CARTESIAN_POINT('',(3.985426754980E1,1.955248942462E2,-1.537217970283E2)); +#6569=CARTESIAN_POINT('',(3.982432187356E1,2.005485664902E2,-1.537235788946E2)); +#6570=CARTESIAN_POINT('',(-2.807703544041E1,1.340160038004E2, +-1.489476598161E2)); +#6571=CARTESIAN_POINT('',(-2.304293987008E1,1.339879873310E2, +-1.489445462351E2)); +#6572=CARTESIAN_POINT('',(-1.370902314952E1,1.343047723852E2, +-1.489735044634E2)); +#6573=CARTESIAN_POINT('',(-5.996214035001E-1,1.362683026855E2, +-1.491007323227E2)); +#6574=CARTESIAN_POINT('',(1.160856692585E1,1.402459198523E2,-1.492664552348E2)); +#6575=CARTESIAN_POINT('',(2.302101806234E1,1.474178072152E2,-1.493834112099E2)); +#6576=CARTESIAN_POINT('',(3.200116932756E1,1.582758074516E2,-1.493311143929E2)); +#6577=CARTESIAN_POINT('',(3.734676288884E1,1.712830461740E2,-1.491678511737E2)); +#6578=CARTESIAN_POINT('',(3.989102595262E1,1.856412313716E2,-1.490278695698E2)); +#6579=CARTESIAN_POINT('',(4.023880908995E1,1.954950007760E2,-1.489931529898E2)); +#6580=CARTESIAN_POINT('',(4.020860540996E1,2.005589160014E2,-1.489944676049E2)); +#6581=CARTESIAN_POINT('',(-2.808143338286E1,1.338997576677E2, +-1.462013300167E2)); +#6582=CARTESIAN_POINT('',(-2.302693145230E1,1.338720260921E2, +-1.461984563264E2)); +#6583=CARTESIAN_POINT('',(-1.366228359967E1,1.341855359982E2, +-1.462299437567E2)); +#6584=CARTESIAN_POINT('',(-5.245899542650E-1,1.361354352918E2, +-1.463623991019E2)); +#6585=CARTESIAN_POINT('',(1.170673386657E1,1.400970847242E2,-1.465290310099E2)); +#6586=CARTESIAN_POINT('',(2.314799015987E1,1.472669820316E2,-1.466393061486E2)); +#6587=CARTESIAN_POINT('',(3.214543439114E1,1.581500554080E2,-1.465789948633E2)); +#6588=CARTESIAN_POINT('',(3.748641031500E1,1.711916280636E2,-1.464100162376E2)); +#6589=CARTESIAN_POINT('',(4.002027886804E1,1.855936079276E2,-1.462637406894E2)); +#6590=CARTESIAN_POINT('',(4.036341593153E1,1.954822395735E2,-1.462259526405E2)); +#6591=CARTESIAN_POINT('',(4.033315156216E1,2.005637657186E2,-1.462268354817E2)); +#6592=CARTESIAN_POINT('',(-2.808277852435E1,1.338696841870E2, +-1.452026851322E2)); +#6593=CARTESIAN_POINT('',(-2.302183473336E1,1.338420823053E2, +-1.452000459287E2)); +#6594=CARTESIAN_POINT('',(-1.364789764354E1,1.341542545873E2, +-1.452326908282E2)); +#6595=CARTESIAN_POINT('',(-5.025860235560E-1,1.360984314216E2, +-1.453671784089E2)); +#6596=CARTESIAN_POINT('',(1.173486364450E1,1.400530973506E2,-1.455339403986E2)); +#6597=CARTESIAN_POINT('',(2.318477473294E1,1.472209877655E2,-1.456411907136E2)); +#6598=CARTESIAN_POINT('',(3.218667305966E1,1.581117798909E2,-1.455772733570E2)); +#6599=CARTESIAN_POINT('',(3.752420346065E1,1.711636854326E2,-1.454057370027E2)); +#6600=CARTESIAN_POINT('',(4.005315243516E1,1.855788989162E2,-1.452568747072E2)); +#6601=CARTESIAN_POINT('',(4.039436032384E1,1.954783465756E2,-1.452178971941E2)); +#6602=CARTESIAN_POINT('',(4.036408633425E1,2.005653260450E2,-1.452186270321E2)); +#6603=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#6482,#6483,#6484,#6485,#6486,#6487, +#6488,#6489,#6490,#6491,#6492),(#6493,#6494,#6495,#6496,#6497,#6498,#6499,#6500, +#6501,#6502,#6503),(#6504,#6505,#6506,#6507,#6508,#6509,#6510,#6511,#6512,#6513, +#6514),(#6515,#6516,#6517,#6518,#6519,#6520,#6521,#6522,#6523,#6524,#6525),( +#6526,#6527,#6528,#6529,#6530,#6531,#6532,#6533,#6534,#6535,#6536),(#6537,#6538, +#6539,#6540,#6541,#6542,#6543,#6544,#6545,#6546,#6547),(#6548,#6549,#6550,#6551, +#6552,#6553,#6554,#6555,#6556,#6557,#6558),(#6559,#6560,#6561,#6562,#6563,#6564, +#6565,#6566,#6567,#6568,#6569),(#6570,#6571,#6572,#6573,#6574,#6575,#6576,#6577, +#6578,#6579,#6580),(#6581,#6582,#6583,#6584,#6585,#6586,#6587,#6588,#6589,#6590, +#6591),(#6592,#6593,#6594,#6595,#6596,#6597,#6598,#6599,#6600,#6601,#6602)), +.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1,1,1,1,1,1,4),(4,1,1,1,1,1,1,1,4),( +-3.124503472869E-1,-5.546263180595E-3,1.506026036646E-1,3.067514705099E-1, +4.629003373551E-1,6.190492042004E-1,7.751980710456E-1,9.313469378908E-1, +1.019506370635E0),(-4.831667478739E-3,6.25E-2,1.25E-1,1.875E-1,2.5E-1,3.125E-1, +3.75E-1,4.375E-1,5.047815439496E-1),.UNSPECIFIED.); +#6604=ORIENTED_EDGE('',*,*,#4858,.F.); +#6606=ORIENTED_EDGE('',*,*,#6605,.T.); +#6607=ORIENTED_EDGE('',*,*,#5500,.T.); +#6609=ORIENTED_EDGE('',*,*,#6608,.F.); +#6610=ORIENTED_EDGE('',*,*,#6475,.T.); +#6611=EDGE_LOOP('',(#6604,#6606,#6607,#6609,#6610)); +#6612=FACE_OUTER_BOUND('',#6611,.F.); +#6614=CARTESIAN_POINT('',(-2.647999780359E1,1.549725214384E2, +-1.908789217720E2)); +#6615=CARTESIAN_POINT('',(-2.993803040528E1,1.549308393424E2, +-1.908388176928E2)); +#6616=CARTESIAN_POINT('',(-3.639072051042E1,1.549531512965E2, +-1.907274766997E2)); +#6617=CARTESIAN_POINT('',(-4.549457867912E1,1.556796202033E2, +-1.905208938823E2)); +#6618=CARTESIAN_POINT('',(-5.416593328221E1,1.577173295200E2, +-1.903814340481E2)); +#6619=CARTESIAN_POINT('',(-6.261682819268E1,1.622155820170E2, +-1.903422022640E2)); +#6620=CARTESIAN_POINT('',(-6.782469509366E1,1.679620148769E2, +-1.902089157642E2)); +#6621=CARTESIAN_POINT('',(-6.995620137047E1,1.716451042626E2, +-1.901189590532E2)); +#6622=CARTESIAN_POINT('',(-7.036623715645E1,1.724250876626E2, +-1.901003418528E2)); +#6623=CARTESIAN_POINT('',(-2.639284136447E1,1.510602322701E2, +-1.872649513223E2)); +#6624=CARTESIAN_POINT('',(-3.007989392924E1,1.510136920005E2, +-1.872267002553E2)); +#6625=CARTESIAN_POINT('',(-3.698694774864E1,1.510957956249E2, +-1.871237345895E2)); +#6626=CARTESIAN_POINT('',(-4.679092548469E1,1.521284900993E2, +-1.869631409306E2)); +#6627=CARTESIAN_POINT('',(-5.611885303162E1,1.546577243401E2, +-1.868920717845E2)); +#6628=CARTESIAN_POINT('',(-6.508590308777E1,1.598044018387E2, +-1.869039731950E2)); +#6629=CARTESIAN_POINT('',(-7.048780340382E1,1.660589676798E2, +-1.867982367518E2)); +#6630=CARTESIAN_POINT('',(-7.269060900695E1,1.700035476620E2, +-1.867238946246E2)); +#6631=CARTESIAN_POINT('',(-7.311415394182E1,1.708368937766E2, +-1.867084510939E2)); +#6632=CARTESIAN_POINT('',(-2.635740387674E1,1.474677522653E2, +-1.831747183821E2)); +#6633=CARTESIAN_POINT('',(-3.030495674315E1,1.474503537637E2, +-1.831677520809E2)); +#6634=CARTESIAN_POINT('',(-3.770715818249E1,1.476364792578E2, +-1.831185650159E2)); +#6635=CARTESIAN_POINT('',(-4.819010341282E1,1.489574610562E2, +-1.830120358267E2)); +#6636=CARTESIAN_POINT('',(-5.808669634745E1,1.518830720165E2, +-1.829549213827E2)); +#6637=CARTESIAN_POINT('',(-6.745720585102E1,1.574836995009E2, +-1.829294384795E2)); +#6638=CARTESIAN_POINT('',(-7.307062006958E1,1.640756583073E2, +-1.827875364296E2)); +#6639=CARTESIAN_POINT('',(-7.538339835703E1,1.682291732166E2, +-1.826955150081E2)); +#6640=CARTESIAN_POINT('',(-7.582923450357E1,1.691067670238E2, +-1.826765108339E2)); +#6641=CARTESIAN_POINT('',(-2.630335559586E1,1.430812200402E2, +-1.773848715234E2)); +#6642=CARTESIAN_POINT('',(-3.056655348636E1,1.430855499718E2, +-1.774146077069E2)); +#6643=CARTESIAN_POINT('',(-3.856560918244E1,1.433714772750E2, +-1.774332515385E2)); +#6644=CARTESIAN_POINT('',(-4.986727818027E1,1.450061242563E2, +-1.774086936889E2)); +#6645=CARTESIAN_POINT('',(-6.046166103049E1,1.483837761943E2, +-1.773956795913E2)); +#6646=CARTESIAN_POINT('',(-7.036109759672E1,1.545313652624E2, +-1.773615793582E2)); +#6647=CARTESIAN_POINT('',(-7.626295307916E1,1.615640443809E2, +-1.771960165780E2)); +#6648=CARTESIAN_POINT('',(-7.871757677733E1,1.659891496781E2, +-1.770897446511E2)); +#6649=CARTESIAN_POINT('',(-7.919187533060E1,1.669241642043E2, +-1.770677550370E2)); +#6650=CARTESIAN_POINT('',(-2.626870692662E1,1.397308596848E2, +-1.720504117589E2)); +#6651=CARTESIAN_POINT('',(-3.075711583284E1,1.397378165090E2, +-1.720971944479E2)); +#6652=CARTESIAN_POINT('',(-3.918246489091E1,1.400724414196E2, +-1.721602803245E2)); +#6653=CARTESIAN_POINT('',(-5.108741962347E1,1.419054334210E2, +-1.722227100049E2)); +#6654=CARTESIAN_POINT('',(-6.222856652107E1,1.455969492864E2, +-1.722948730325E2)); +#6655=CARTESIAN_POINT('',(-7.258961977866E1,1.521757783059E2, +-1.723265399072E2)); +#6656=CARTESIAN_POINT('',(-7.874177962158E1,1.596004668500E2, +-1.721972620045E2)); +#6657=CARTESIAN_POINT('',(-8.130703776353E1,1.642586433661E2, +-1.721049528406E2)); +#6658=CARTESIAN_POINT('',(-8.180307376231E1,1.652425225991E2, +-1.720855723300E2)); +#6659=CARTESIAN_POINT('',(-2.623791995054E1,1.369708926057E2, +-1.658916739174E2)); +#6660=CARTESIAN_POINT('',(-3.091275810518E1,1.369645921280E2, +-1.659330490570E2)); +#6661=CARTESIAN_POINT('',(-3.968971829545E1,1.373042315578E2, +-1.660059643932E2)); +#6662=CARTESIAN_POINT('',(-5.210374709870E1,1.392371998585E2, +-1.661259057898E2)); +#6663=CARTESIAN_POINT('',(-6.373579339617E1,1.431278369445E2, +-1.662761685969E2)); +#6664=CARTESIAN_POINT('',(-7.455867502578E1,1.500449833405E2, +-1.663958179622E2)); +#6665=CARTESIAN_POINT('',(-8.097126173750E1,1.578351946586E2, +-1.663371981763E2)); +#6666=CARTESIAN_POINT('',(-8.364426700889E1,1.627125720762E2, +-1.662763371898E2)); +#6667=CARTESIAN_POINT('',(-8.416115342424E1,1.637423822666E2, +-1.662630749164E2)); +#6668=CARTESIAN_POINT('',(-2.621556730991E1,1.352283503645E2, +-1.595190529336E2)); +#6669=CARTESIAN_POINT('',(-3.102267084746E1,1.352095303351E2, +-1.595330086315E2)); +#6670=CARTESIAN_POINT('',(-4.004431740752E1,1.355390183957E2, +-1.595747078124E2)); +#6671=CARTESIAN_POINT('',(-5.280334443588E1,1.375010410414E2, +-1.596938776817E2)); +#6672=CARTESIAN_POINT('',(-6.477178911543E1,1.414744749575E2, +-1.598666438324E2)); +#6673=CARTESIAN_POINT('',(-7.593293083625E1,1.485717513460E2, +-1.600269991331E2)); +#6674=CARTESIAN_POINT('',(-8.254897575366E1,1.565993454920E2, +-1.600199226162E2)); +#6675=CARTESIAN_POINT('',(-8.530475378326E1,1.616262244814E2, +-1.599836400390E2)); +#6676=CARTESIAN_POINT('',(-8.583758026045E1,1.626875866598E2, +-1.599752040431E2)); +#6677=CARTESIAN_POINT('',(-2.620298015353E1,1.343570182059E2, +-1.535839373814E2)); +#6678=CARTESIAN_POINT('',(-3.109287943983E1,1.343364096379E2, +-1.535832438336E2)); +#6679=CARTESIAN_POINT('',(-4.026064742617E1,1.346636187928E2, +-1.536104128758E2)); +#6680=CARTESIAN_POINT('',(-5.320633719881E1,1.366286149299E2, +-1.537291526424E2)); +#6681=CARTESIAN_POINT('',(-6.534690813520E1,1.406197180469E2, +-1.538976169560E2)); +#6682=CARTESIAN_POINT('',(-7.668592371504E1,1.477795891971E2, +-1.540373955035E2)); +#6683=CARTESIAN_POINT('',(-8.341408064706E1,1.559175028739E2, +-1.540190653024E2)); +#6684=CARTESIAN_POINT('',(-8.621395617326E1,1.610197881008E2, +-1.539775729954E2)); +#6685=CARTESIAN_POINT('',(-8.675518951509E1,1.620972770326E2, +-1.539680595119E2)); +#6686=CARTESIAN_POINT('',(-2.619577078295E1,1.340146416909E2, +-1.489474912478E2)); +#6687=CARTESIAN_POINT('',(-3.112938385666E1,1.339941794627E2, +-1.489450952090E2)); +#6688=CARTESIAN_POINT('',(-4.036881762626E1,1.343175322694E2, +-1.489743174255E2)); +#6689=CARTESIAN_POINT('',(-5.339302143271E1,1.362683015203E2, +-1.491007184512E2)); +#6690=CARTESIAN_POINT('',(-6.560120998312E1,1.402459186550E2, +-1.492664413516E2)); +#6691=CARTESIAN_POINT('',(-7.701366135635E1,1.474178060634E2, +-1.493833972487E2)); +#6692=CARTESIAN_POINT('',(-8.378233015810E1,1.556018783745E2, +-1.493439791516E2)); +#6693=CARTESIAN_POINT('',(-8.659406348795E1,1.607363983149E2, +-1.492925752442E2)); +#6694=CARTESIAN_POINT('',(-8.713735876976E1,1.618208200991E2, +-1.492810761844E2)); +#6695=CARTESIAN_POINT('',(-2.619250470243E1,1.338984090907E2, +-1.462011571800E2)); +#6696=CARTESIAN_POINT('',(-3.114598301382E1,1.338781543271E2, +-1.461990353712E2)); +#6697=CARTESIAN_POINT('',(-4.041574126593E1,1.341982069821E2, +-1.462307719947E2)); +#6698=CARTESIAN_POINT('',(-5.346805318630E1,1.361354336921E2, +-1.463623665722E2)); +#6699=CARTESIAN_POINT('',(-6.569937728627E1,1.400970829370E2, +-1.465289984915E2)); +#6700=CARTESIAN_POINT('',(-7.714063392519E1,1.472669802232E2, +-1.466392735523E2)); +#6701=CARTESIAN_POINT('',(-8.392233709181E1,1.554699511564E2, +-1.465938146587E2)); +#6702=CARTESIAN_POINT('',(-8.673553173393E1,1.606174670931E2, +-1.465396509451E2)); +#6703=CARTESIAN_POINT('',(-8.727892919726E1,1.617046831554E2, +-1.465275983620E2)); +#6704=CARTESIAN_POINT('',(-2.619151663866E1,1.338683418211E2, +-1.452025063335E2)); +#6705=CARTESIAN_POINT('',(-3.115125829047E1,1.338481843912E2, +-1.452006278929E2)); +#6706=CARTESIAN_POINT('',(-4.043017692076E1,1.341668881905E2, +-1.452335129166E2)); +#6707=CARTESIAN_POINT('',(-5.349005736149E1,1.360984294947E2, +-1.453671265657E2)); +#6708=CARTESIAN_POINT('',(-6.572750734843E1,1.400530950599E2, +-1.455338885621E2)); +#6709=CARTESIAN_POINT('',(-7.717741888751E1,1.472209853701E2, +-1.456411387194E2)); +#6710=CARTESIAN_POINT('',(-8.396247928609E1,1.554297742836E2, +-1.455929617268E2)); +#6711=CARTESIAN_POINT('',(-8.677545215918E1,1.605812282863E2, +-1.455375599012E2)); +#6712=CARTESIAN_POINT('',(-8.731873330795E1,1.616692895650E2, +-1.455252598046E2)); +#6713=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#6614,#6615,#6616,#6617,#6618,#6619, +#6620,#6621,#6622),(#6623,#6624,#6625,#6626,#6627,#6628,#6629,#6630,#6631),( +#6632,#6633,#6634,#6635,#6636,#6637,#6638,#6639,#6640),(#6641,#6642,#6643,#6644, +#6645,#6646,#6647,#6648,#6649),(#6650,#6651,#6652,#6653,#6654,#6655,#6656,#6657, +#6658),(#6659,#6660,#6661,#6662,#6663,#6664,#6665,#6666,#6667),(#6668,#6669, +#6670,#6671,#6672,#6673,#6674,#6675,#6676),(#6677,#6678,#6679,#6680,#6681,#6682, +#6683,#6684,#6685),(#6686,#6687,#6688,#6689,#6690,#6691,#6692,#6693,#6694),( +#6695,#6696,#6697,#6698,#6699,#6700,#6701,#6702,#6703),(#6704,#6705,#6706,#6707, +#6708,#6709,#6710,#6711,#6712)),.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1,1,1,1,1,1,4), +(4,1,1,1,1,1,4),(-2.999765769981E-1,-5.546576851006E-3,1.506023159307E-1, +3.067512087124E-1,4.629001014941E-1,6.190489942758E-1,7.751978870575E-1, +9.313467798393E-1,1.019507901446E0),(-3.581701146903E-3,6.25E-2,1.25E-1, +1.875E-1,2.5E-1,3.125E-1,3.288256121986E-1),.UNSPECIFIED.); +#6715=ORIENTED_EDGE('',*,*,#6714,.T.); +#6717=ORIENTED_EDGE('',*,*,#6716,.F.); +#6719=ORIENTED_EDGE('',*,*,#6718,.T.); +#6720=ORIENTED_EDGE('',*,*,#5502,.F.); +#6721=ORIENTED_EDGE('',*,*,#6605,.F.); +#6722=ORIENTED_EDGE('',*,*,#4856,.F.); +#6723=EDGE_LOOP('',(#6715,#6717,#6719,#6720,#6721,#6722)); +#6724=FACE_OUTER_BOUND('',#6723,.F.); +#6726=CARTESIAN_POINT('',(-5.443718882636E1,1.624418115339E2,-1.9E2)); +#6727=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6728=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6729=AXIS2_PLACEMENT_3D('',#6726,#6727,#6728); +#6730=PLANE('',#6729); +#6732=ORIENTED_EDGE('',*,*,#6731,.F.); +#6733=ORIENTED_EDGE('',*,*,#6714,.F.); +#6734=ORIENTED_EDGE('',*,*,#4854,.F.); +#6735=EDGE_LOOP('',(#6732,#6733,#6734)); +#6736=FACE_OUTER_BOUND('',#6735,.F.); +#6738=CARTESIAN_POINT('',(-8.5E1,2.95E2,-1.9E2)); +#6739=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6740=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6741=AXIS2_PLACEMENT_3D('',#6738,#6739,#6740); +#6742=PLANE('',#6741); +#6743=ORIENTED_EDGE('',*,*,#6731,.T.); +#6744=ORIENTED_EDGE('',*,*,#4852,.F.); +#6746=ORIENTED_EDGE('',*,*,#6745,.F.); +#6748=ORIENTED_EDGE('',*,*,#6747,.T.); +#6749=ORIENTED_EDGE('',*,*,#5460,.T.); +#6751=ORIENTED_EDGE('',*,*,#6750,.T.); +#6752=ORIENTED_EDGE('',*,*,#6716,.T.); +#6753=EDGE_LOOP('',(#6743,#6744,#6746,#6748,#6749,#6751,#6752)); +#6754=FACE_OUTER_BOUND('',#6753,.F.); +#6756=CARTESIAN_POINT('',(-8.25E1,3.75E1,-1.9E2)); +#6757=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6758=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6759=AXIS2_PLACEMENT_3D('',#6756,#6757,#6758); +#6760=CYLINDRICAL_SURFACE('',#6759,1.75E1); +#6761=ORIENTED_EDGE('',*,*,#4850,.F.); +#6762=ORIENTED_EDGE('',*,*,#6152,.T.); +#6764=ORIENTED_EDGE('',*,*,#6763,.F.); +#6765=ORIENTED_EDGE('',*,*,#6745,.T.); +#6766=EDGE_LOOP('',(#6761,#6762,#6764,#6765)); +#6767=FACE_OUTER_BOUND('',#6766,.F.); +#6769=CARTESIAN_POINT('',(-7.415982029507E1,-6.5E1,0.E0)); +#6770=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6771=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6772=AXIS2_PLACEMENT_3D('',#6769,#6770,#6771); +#6773=CONICAL_SURFACE('',#6772,1.856499021926E2,3.5E0); +#6774=ORIENTED_EDGE('',*,*,#6763,.T.); +#6775=ORIENTED_EDGE('',*,*,#6150,.T.); +#6776=ORIENTED_EDGE('',*,*,#5395,.F.); +#6777=ORIENTED_EDGE('',*,*,#5431,.F.); +#6778=ORIENTED_EDGE('',*,*,#5444,.F.); +#6779=ORIENTED_EDGE('',*,*,#5462,.T.); +#6780=ORIENTED_EDGE('',*,*,#6747,.F.); +#6781=EDGE_LOOP('',(#6774,#6775,#6776,#6777,#6778,#6779,#6780)); +#6782=FACE_OUTER_BOUND('',#6781,.F.); +#6784=CARTESIAN_POINT('',(-8.785007705980E1,1.557207977567E2, +-5.175115938447E1)); +#6785=CARTESIAN_POINT('',(-8.694970501804E1,1.564704842147E2, +-8.382045449212E1)); +#6786=CARTESIAN_POINT('',(-8.604933297628E1,1.572201706726E2, +-1.158897495998E2)); +#6787=CARTESIAN_POINT('',(-8.514896093452E1,1.579698571305E2, +-1.479590447074E2)); +#6788=CARTESIAN_POINT('',(-8.777960171657E1,1.556090621683E2, +-5.175112949180E1)); +#6789=CARTESIAN_POINT('',(-8.688047421271E1,1.563598239487E2, +-8.382042785742E1)); +#6790=CARTESIAN_POINT('',(-8.598134670884E1,1.571105857290E2, +-1.158897262231E2)); +#6791=CARTESIAN_POINT('',(-8.508221920498E1,1.578613475094E2, +-1.479590245887E2)); +#6792=CARTESIAN_POINT('',(-8.676086363385E1,1.540079807628E2, +-5.175069568215E1)); +#6793=CARTESIAN_POINT('',(-8.587957555047E1,1.547740570470E2, +-8.382004095315E1)); +#6794=CARTESIAN_POINT('',(-8.499828746709E1,1.555401333311E2, +-1.158893862241E2)); +#6795=CARTESIAN_POINT('',(-8.411699938371E1,1.563062096153E2, +-1.479587314951E2)); +#6796=CARTESIAN_POINT('',(-8.372081963433E1,1.497848784978E2, +-5.174931770422E1)); +#6797=CARTESIAN_POINT('',(-8.288675600156E1,1.505878377248E2, +-8.381879259719E1)); +#6798=CARTESIAN_POINT('',(-8.205269236880E1,1.513907969518E2, +-1.158882674902E2)); +#6799=CARTESIAN_POINT('',(-8.121862873604E1,1.521937561788E2, +-1.479577423831E2)); +#6800=CARTESIAN_POINT('',(-7.914266936880E1,1.452238925713E2, +-5.174624043165E1)); +#6801=CARTESIAN_POINT('',(-7.835683691194E1,1.460638349289E2, +-8.381574761540E1)); +#6802=CARTESIAN_POINT('',(-7.757100445507E1,1.469037772865E2, +-1.158852547992E2)); +#6803=CARTESIAN_POINT('',(-7.678517199821E1,1.477437196441E2, +-1.479547619829E2)); +#6804=CARTESIAN_POINT('',(-7.535056371627E1,1.424167041781E2, +-5.174366601840E1)); +#6805=CARTESIAN_POINT('',(-7.460153275268E1,1.432884606568E2, +-8.381311135075E1)); +#6806=CARTESIAN_POINT('',(-7.385250178910E1,1.441602171356E2, +-1.158825566831E2)); +#6807=CARTESIAN_POINT('',(-7.310347082551E1,1.450319736144E2, +-1.479520020154E2)); +#6808=CARTESIAN_POINT('',(-7.408572329342E1,1.415679757577E2, +-5.174283664538E1)); +#6809=CARTESIAN_POINT('',(-7.334900467799E1,1.424503832283E2, +-8.381225665718E1)); +#6810=CARTESIAN_POINT('',(-7.261228606256E1,1.433327906990E2, +-1.158816766690E2)); +#6811=CARTESIAN_POINT('',(-7.187556744713E1,1.442151981697E2, +-1.479510966808E2)); +#6812=CARTESIAN_POINT('',(-7.397591377195E1,1.414949269027E2, +-5.174276487889E1)); +#6813=CARTESIAN_POINT('',(-7.324026459742E1,1.423782592939E2, +-8.381218266101E1)); +#6814=CARTESIAN_POINT('',(-7.250461542290E1,1.432615916851E2, +-1.158816004431E2)); +#6815=CARTESIAN_POINT('',(-7.176896624837E1,1.441449240763E2, +-1.479510182252E2)); +#6816=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#6784,#6785,#6786,#6787),(#6788, +#6789,#6790,#6791),(#6792,#6793,#6794,#6795),(#6796,#6797,#6798,#6799),(#6800, +#6801,#6802,#6803),(#6804,#6805,#6806,#6807),(#6808,#6809,#6810,#6811),(#6812, +#6813,#6814,#6815)),.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1,1,1,4),(4,4),( +-2.017514296756E-2,0.E0,2.697234915241E-1,7.769142972143E-1,1.E0, +1.021158598787E0),(-9.803676848848E-3,1.009802999515E0),.UNSPECIFIED.); +#6817=ORIENTED_EDGE('',*,*,#6718,.F.); +#6818=ORIENTED_EDGE('',*,*,#6750,.F.); +#6819=ORIENTED_EDGE('',*,*,#5458,.F.); +#6820=ORIENTED_EDGE('',*,*,#5478,.T.); +#6821=ORIENTED_EDGE('',*,*,#5504,.T.); +#6822=EDGE_LOOP('',(#6817,#6818,#6819,#6820,#6821)); +#6823=FACE_OUTER_BOUND('',#6822,.F.); +#6825=CARTESIAN_POINT('',(4.324446085028E1,2.001260949021E2,-6.703089800685E1)); +#6826=CARTESIAN_POINT('',(4.225526651646E1,2.001143868492E2,-9.391032855851E1)); +#6827=CARTESIAN_POINT('',(4.126607218263E1,2.001026787964E2,-1.207897591102E2)); +#6828=CARTESIAN_POINT('',(4.027687784881E1,2.000909707435E2,-1.476691896618E2)); +#6829=CARTESIAN_POINT('',(4.324522852545E1,1.999107695065E2,-6.703090220738E1)); +#6830=CARTESIAN_POINT('',(4.225600152596E1,1.999029630668E2,-9.391033305499E1)); +#6831=CARTESIAN_POINT('',(4.126677452648E1,1.998951566271E2,-1.207897639026E2)); +#6832=CARTESIAN_POINT('',(4.027754752700E1,1.998873501874E2,-1.476691947502E2)); +#6833=CARTESIAN_POINT('',(4.325804193071E1,1.928258622639E2,-6.703097003762E1)); +#6834=CARTESIAN_POINT('',(4.226827613320E1,1.929464187418E2,-9.391040564686E1)); +#6835=CARTESIAN_POINT('',(4.127851033570E1,1.930669752197E2,-1.207898412561E2)); +#6836=CARTESIAN_POINT('',(4.028874453820E1,1.931875316975E2,-1.476692768653E2)); +#6837=CARTESIAN_POINT('',(4.245325222008E1,1.786941935113E2,-6.702670970257E1)); +#6838=CARTESIAN_POINT('',(4.149732747365E1,1.790688964272E2,-9.390584624819E1)); +#6839=CARTESIAN_POINT('',(4.054140272723E1,1.794435993431E2,-1.207849827938E2)); +#6840=CARTESIAN_POINT('',(3.958547798080E1,1.798183022590E2,-1.476641193394E2)); +#6841=CARTESIAN_POINT('',(3.761533270667E1,1.624026530322E2,-6.702326032561E1)); +#6842=CARTESIAN_POINT('',(3.680037388146E1,1.629854076018E2,-9.390232989228E1)); +#6843=CARTESIAN_POINT('',(3.598541505625E1,1.635681621715E2,-1.207813994589E2)); +#6844=CARTESIAN_POINT('',(3.517045623105E1,1.641509167412E2,-1.476604690256E2)); +#6845=CARTESIAN_POINT('',(3.041203258892E1,1.512453247692E2,-6.702076817725E1)); +#6846=CARTESIAN_POINT('',(2.970358175216E1,1.519112422421E2,-9.390018755229E1)); +#6847=CARTESIAN_POINT('',(2.899513091540E1,1.525771597150E2,-1.207796069273E2)); +#6848=CARTESIAN_POINT('',(2.828668007864E1,1.532430771878E2,-1.476590263023E2)); +#6849=CARTESIAN_POINT('',(2.477573683212E1,1.456238243539E2,-6.701697638906E1)); +#6850=CARTESIAN_POINT('',(2.411711192088E1,1.463278404805E2,-9.389643018261E1)); +#6851=CARTESIAN_POINT('',(2.345848700964E1,1.470318566072E2,-1.207758839762E2)); +#6852=CARTESIAN_POINT('',(2.279986209840E1,1.477358727338E2,-1.476553377697E2)); +#6853=CARTESIAN_POINT('',(2.093595752135E1,1.427835135196E2,-6.701432919771E1)); +#6854=CARTESIAN_POINT('',(2.030859206011E1,1.435145834485E2,-9.389372961647E1)); +#6855=CARTESIAN_POINT('',(1.968122659888E1,1.442456533774E2,-1.207731300352E2)); +#6856=CARTESIAN_POINT('',(1.905386113765E1,1.449767233063E2,-1.476525304540E2)); +#6857=CARTESIAN_POINT('',(1.960801056364E1,1.418984187792E2,-6.701344396209E1)); +#6858=CARTESIAN_POINT('',(1.899149394521E1,1.426388905976E2,-9.389282148431E1)); +#6859=CARTESIAN_POINT('',(1.837497732677E1,1.433793624160E2,-1.207721990065E2)); +#6860=CARTESIAN_POINT('',(1.775846070833E1,1.441198342344E2,-1.476515765288E2)); +#6861=CARTESIAN_POINT('',(1.943083662558E1,1.417819785158E2,-6.701332647629E1)); +#6862=CARTESIAN_POINT('',(1.881576899548E1,1.425237053179E2,-9.389270087763E1)); +#6863=CARTESIAN_POINT('',(1.820070136539E1,1.432654321199E2,-1.207720752790E2)); +#6864=CARTESIAN_POINT('',(1.758563373530E1,1.440071589220E2,-1.476514496803E2)); +#6865=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#6825,#6826,#6827,#6828),(#6829, +#6830,#6831,#6832),(#6833,#6834,#6835,#6836),(#6837,#6838,#6839,#6840),(#6841, +#6842,#6843,#6844),(#6845,#6846,#6847,#6848),(#6849,#6850,#6851,#6852),(#6853, +#6854,#6855,#6856),(#6857,#6858,#6859,#6860),(#6861,#6862,#6863,#6864)), +.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1,1,1,1,1,4),(4,4),(-9.738945845285E-3,0.E0, +3.105663606468E-1,6.211327051207E-1,7.764158773575E-1,9.316990495947E-1,1.E0, +1.010473816954E0),(-1.004066453960E-2,1.009803771734E0),.UNSPECIFIED.); +#6867=ORIENTED_EDGE('',*,*,#6866,.F.); +#6869=ORIENTED_EDGE('',*,*,#6868,.F.); +#6871=ORIENTED_EDGE('',*,*,#6870,.F.); +#6873=ORIENTED_EDGE('',*,*,#6872,.F.); +#6874=ORIENTED_EDGE('',*,*,#6608,.T.); +#6875=ORIENTED_EDGE('',*,*,#5498,.F.); +#6877=ORIENTED_EDGE('',*,*,#6876,.F.); +#6878=EDGE_LOOP('',(#6867,#6869,#6871,#6873,#6874,#6875,#6877)); +#6879=FACE_OUTER_BOUND('',#6878,.F.); +#6881=CARTESIAN_POINT('',(0.E0,0.E0,-1.02E2)); +#6882=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6883=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6884=AXIS2_PLACEMENT_3D('',#6881,#6882,#6883); +#6885=PLANE('',#6884); +#6886=ORIENTED_EDGE('',*,*,#6252,.F.); +#6888=ORIENTED_EDGE('',*,*,#6887,.T.); +#6889=ORIENTED_EDGE('',*,*,#6866,.T.); +#6891=ORIENTED_EDGE('',*,*,#6890,.F.); +#6893=ORIENTED_EDGE('',*,*,#6892,.T.); +#6894=EDGE_LOOP('',(#6886,#6888,#6889,#6891,#6893)); +#6895=FACE_OUTER_BOUND('',#6894,.F.); +#6897=ORIENTED_EDGE('',*,*,#6896,.T.); +#6899=ORIENTED_EDGE('',*,*,#6898,.T.); +#6900=EDGE_LOOP('',(#6897,#6899)); +#6901=FACE_BOUND('',#6900,.F.); +#6903=CARTESIAN_POINT('',(6.E1,1.4519E2,-1.02E2)); +#6904=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6905=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6906=AXIS2_PLACEMENT_3D('',#6903,#6904,#6905); +#6907=CYLINDRICAL_SURFACE('',#6906,3.8E1); +#6908=ORIENTED_EDGE('',*,*,#6250,.T.); +#6909=ORIENTED_EDGE('',*,*,#6299,.F.); +#6911=ORIENTED_EDGE('',*,*,#6910,.F.); +#6913=ORIENTED_EDGE('',*,*,#6912,.F.); +#6914=ORIENTED_EDGE('',*,*,#6868,.T.); +#6915=ORIENTED_EDGE('',*,*,#6887,.F.); +#6916=EDGE_LOOP('',(#6908,#6909,#6911,#6913,#6914,#6915)); +#6917=FACE_OUTER_BOUND('',#6916,.F.); +#6919=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-5.36E1)); +#6920=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6921=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6922=AXIS2_PLACEMENT_3D('',#6919,#6920,#6921); +#6923=CYLINDRICAL_SURFACE('',#6922,8.2E1); +#6924=ORIENTED_EDGE('',*,*,#6910,.T.); +#6925=ORIENTED_EDGE('',*,*,#6297,.F.); +#6926=ORIENTED_EDGE('',*,*,#6295,.F.); +#6927=ORIENTED_EDGE('',*,*,#6374,.T.); +#6929=ORIENTED_EDGE('',*,*,#6928,.F.); +#6931=ORIENTED_EDGE('',*,*,#6930,.F.); +#6932=EDGE_LOOP('',(#6924,#6925,#6926,#6927,#6929,#6931)); +#6933=FACE_OUTER_BOUND('',#6932,.F.); +#6935=CARTESIAN_POINT('',(0.E0,0.E0,-6.86E1)); +#6936=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6937=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6938=AXIS2_PLACEMENT_3D('',#6935,#6936,#6937); +#6939=PLANE('',#6938); +#6940=ORIENTED_EDGE('',*,*,#6912,.T.); +#6941=ORIENTED_EDGE('',*,*,#6930,.T.); +#6942=ORIENTED_EDGE('',*,*,#6928,.T.); +#6943=ORIENTED_EDGE('',*,*,#6372,.F.); +#6945=ORIENTED_EDGE('',*,*,#6944,.T.); +#6946=ORIENTED_EDGE('',*,*,#6870,.T.); +#6947=EDGE_LOOP('',(#6940,#6941,#6942,#6943,#6945,#6946)); +#6948=FACE_OUTER_BOUND('',#6947,.F.); +#6950=CARTESIAN_POINT('',(2.972416924774E1,2.479837846882E2,-6.703989739048E1)); +#6951=CARTESIAN_POINT('',(2.901736630117E1,2.473173731933E2,-9.389192163618E1)); +#6952=CARTESIAN_POINT('',(2.831056335459E1,2.466509616983E2,-1.207439458819E2)); +#6953=CARTESIAN_POINT('',(2.760376040802E1,2.459845502034E2,-1.475959701276E2)); +#6954=CARTESIAN_POINT('',(2.983049499735E1,2.478558379432E2,-6.703995554972E1)); +#6955=CARTESIAN_POINT('',(2.912251461357E1,2.471903319403E2,-9.389197738807E1)); +#6956=CARTESIAN_POINT('',(2.841453422979E1,2.465248259374E2,-1.207439992264E2)); +#6957=CARTESIAN_POINT('',(2.770655384601E1,2.458593199344E2,-1.475960210648E2)); +#6958=CARTESIAN_POINT('',(3.130416109425E1,2.460636058393E2,-6.704075607128E1)); +#6959=CARTESIAN_POINT('',(3.057970259558E1,2.454108079444E2,-9.389274356034E1)); +#6960=CARTESIAN_POINT('',(2.985524409691E1,2.447580100495E2,-1.207447310494E2)); +#6961=CARTESIAN_POINT('',(2.913078559824E1,2.441052121545E2,-1.475967185385E2)); +#6962=CARTESIAN_POINT('',(3.542689256272E1,2.402413375920E2,-6.704276478480E1)); +#6963=CARTESIAN_POINT('',(3.464942220536E1,2.396312605302E2,-9.389461681997E1)); +#6964=CARTESIAN_POINT('',(3.387195184799E1,2.390211834685E2,-1.207464688551E2)); +#6965=CARTESIAN_POINT('',(3.309448149063E1,2.384111064068E2,-1.475983208903E2)); +#6966=CARTESIAN_POINT('',(4.009513297855E1,2.292357874458E2,-6.704422235295E1)); +#6967=CARTESIAN_POINT('',(3.921255573575E1,2.287391620694E2,-9.389587768837E1)); +#6968=CARTESIAN_POINT('',(3.832997849296E1,2.282425366930E2,-1.207475330238E2)); +#6969=CARTESIAN_POINT('',(3.744740125017E1,2.277459113166E2,-1.475991883592E2)); +#6970=CARTESIAN_POINT('',(4.281809974080E1,2.145245801906E2,-6.704869132706E1)); +#6971=CARTESIAN_POINT('',(4.184687806632E1,2.142534935049E2,-9.390063901256E1)); +#6972=CARTESIAN_POINT('',(4.087565639184E1,2.139824068193E2,-1.207525866981E2)); +#6973=CARTESIAN_POINT('',(3.990443471736E1,2.137113201336E2,-1.476045343836E2)); +#6974=CARTESIAN_POINT('',(4.325213487634E1,2.043017448247E2,-6.705087846977E1)); +#6975=CARTESIAN_POINT('',(4.226360928426E1,2.042144710426E2,-9.390295375456E1)); +#6976=CARTESIAN_POINT('',(4.127508369218E1,2.041271972606E2,-1.207550290393E2)); +#6977=CARTESIAN_POINT('',(4.028655810010E1,2.040399234785E2,-1.476071043241E2)); +#6978=CARTESIAN_POINT('',(4.324463800121E1,1.991406117972E2,-6.705084069204E1)); +#6979=CARTESIAN_POINT('',(4.225641129117E1,1.991467511043E2,-9.390291377293E1)); +#6980=CARTESIAN_POINT('',(4.126818458114E1,1.991528904114E2,-1.207549868538E2)); +#6981=CARTESIAN_POINT('',(4.027995787111E1,1.991590297185E2,-1.476070599347E2)); +#6982=CARTESIAN_POINT('',(4.324415053916E1,1.989710545660E2,-6.705083817518E1)); +#6983=CARTESIAN_POINT('',(4.225594339324E1,1.989802631810E2,-9.390291110944E1)); +#6984=CARTESIAN_POINT('',(4.126773624731E1,1.989894717960E2,-1.207549840437E2)); +#6985=CARTESIAN_POINT('',(4.027952910138E1,1.989986804109E2,-1.476070569780E2)); +#6986=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#6950,#6951,#6952,#6953),(#6954, +#6955,#6956,#6957),(#6958,#6959,#6960,#6961),(#6962,#6963,#6964,#6965),(#6966, +#6967,#6968,#6969),(#6970,#6971,#6972,#6973),(#6974,#6975,#6976,#6977),(#6978, +#6979,#6980,#6981),(#6982,#6983,#6984,#6985)),.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1, +1,1,1,4),(4,4),(-1.014184039725E-2,0.E0,1.312411522663E-1,4.208274348444E-1, +7.104137174224E-1,1.E0,1.009839396159E0),(-9.803794067370E-3,1.009797420157E0), +.UNSPECIFIED.); +#6987=ORIENTED_EDGE('',*,*,#6370,.F.); +#6988=ORIENTED_EDGE('',*,*,#6477,.T.); +#6989=ORIENTED_EDGE('',*,*,#6872,.T.); +#6990=ORIENTED_EDGE('',*,*,#6944,.F.); +#6991=EDGE_LOOP('',(#6987,#6988,#6989,#6990)); +#6992=FACE_OUTER_BOUND('',#6991,.F.); +#6994=CARTESIAN_POINT('',(2.298715777458E1,1.385798492198E2,-1.588326542246E2)); +#6995=DIRECTION('',(9.996573249756E-1,0.E0,-2.617694830787E-2)); +#6996=DIRECTION('',(2.617694830787E-2,0.E0,9.996573249756E-1)); +#6997=AXIS2_PLACEMENT_3D('',#6994,#6995,#6996); +#6998=PLANE('',#6997); +#6999=ORIENTED_EDGE('',*,*,#6890,.T.); +#7000=ORIENTED_EDGE('',*,*,#6876,.T.); +#7001=ORIENTED_EDGE('',*,*,#5496,.F.); +#7003=ORIENTED_EDGE('',*,*,#7002,.F.); +#7005=ORIENTED_EDGE('',*,*,#7004,.T.); +#7007=ORIENTED_EDGE('',*,*,#7006,.F.); +#7008=EDGE_LOOP('',(#6999,#7000,#7001,#7003,#7005,#7007)); +#7009=FACE_OUTER_BOUND('',#7008,.F.); +#7011=CARTESIAN_POINT('',(4.555367888040E1,1.227286290940E2,-1.751513120379E2)); +#7012=DIRECTION('',(0.E0,-9.999619230642E-1,-8.726535498375E-3)); +#7013=DIRECTION('',(0.E0,-8.726535498375E-3,9.999619230642E-1)); +#7014=AXIS2_PLACEMENT_3D('',#7011,#7012,#7013); +#7015=PLANE('',#7014); +#7017=ORIENTED_EDGE('',*,*,#7016,.T.); +#7019=ORIENTED_EDGE('',*,*,#7018,.F.); +#7021=ORIENTED_EDGE('',*,*,#7020,.F.); +#7023=ORIENTED_EDGE('',*,*,#7022,.T.); +#7024=ORIENTED_EDGE('',*,*,#7002,.T.); +#7025=ORIENTED_EDGE('',*,*,#5494,.T.); +#7027=ORIENTED_EDGE('',*,*,#7026,.F.); +#7029=ORIENTED_EDGE('',*,*,#7028,.F.); +#7030=EDGE_LOOP('',(#7017,#7019,#7021,#7023,#7024,#7025,#7027,#7029)); +#7031=FACE_OUTER_BOUND('',#7030,.F.); +#7033=CARTESIAN_POINT('',(6.517137032771E0,1.223074831941E2,-1.268927718614E2)); +#7034=CARTESIAN_POINT('',(6.509863834227E0,1.223085740144E2,-1.270177674915E2)); +#7035=CARTESIAN_POINT('',(6.469537938688E0,1.223145914429E2,-1.277072965039E2)); +#7036=CARTESIAN_POINT('',(6.390620050824E0,1.223260508541E2,-1.290204149597E2)); +#7037=CARTESIAN_POINT('',(6.020844627693E0,1.223774626309E2,-1.349116210565E2)); +#7038=CARTESIAN_POINT('',(5.618275828953E0,1.224248019132E2,-1.403361655230E2)); +#7039=CARTESIAN_POINT('',(5.233228191526E0,1.224665472612E2,-1.451197086001E2)); +#7040=CARTESIAN_POINT('',(5.223170252468E0,1.224676355187E2,-1.452444105645E2)); +#7042=DIRECTION('',(0.E0,-9.999619230642E-1,-8.726535498375E-3)); +#7043=VECTOR('',#7042,1.E0); +#7044=SURFACE_OF_LINEAR_EXTRUSION('',#7041,#7043); +#7045=ORIENTED_EDGE('',*,*,#7016,.F.); +#7047=ORIENTED_EDGE('',*,*,#7046,.T.); +#7048=ORIENTED_EDGE('',*,*,#6220,.T.); +#7050=ORIENTED_EDGE('',*,*,#7049,.T.); +#7051=EDGE_LOOP('',(#7045,#7047,#7048,#7050)); +#7052=FACE_OUTER_BOUND('',#7051,.F.); +#7054=CARTESIAN_POINT('',(-1.199632111960E1,1.224643691008E2, +-1.448701161452E2)); +#7055=DIRECTION('',(0.E0,8.726535498375E-3,-9.999619230642E-1)); +#7056=DIRECTION('',(1.E0,0.E0,0.E0)); +#7057=AXIS2_PLACEMENT_3D('',#7054,#7055,#7056); +#7058=PLANE('',#7057); +#7059=ORIENTED_EDGE('',*,*,#6180,.T.); +#7060=ORIENTED_EDGE('',*,*,#6198,.F.); +#7061=ORIENTED_EDGE('',*,*,#6222,.F.); +#7062=ORIENTED_EDGE('',*,*,#7046,.F.); +#7063=ORIENTED_EDGE('',*,*,#7028,.T.); +#7065=ORIENTED_EDGE('',*,*,#7064,.F.); +#7066=ORIENTED_EDGE('',*,*,#6141,.F.); +#7067=EDGE_LOOP('',(#7059,#7060,#7061,#7062,#7063,#7065,#7066)); +#7068=FACE_OUTER_BOUND('',#7067,.F.); +#7070=CARTESIAN_POINT('',(-1.199632111960E1,2.5E1,-6.E1)); +#7071=DIRECTION('',(1.E0,0.E0,0.E0)); +#7072=DIRECTION('',(0.E0,1.E0,0.E0)); +#7073=AXIS2_PLACEMENT_3D('',#7070,#7071,#7072); +#7074=PLANE('',#7073); +#7075=ORIENTED_EDGE('',*,*,#6143,.F.); +#7076=ORIENTED_EDGE('',*,*,#7064,.T.); +#7077=ORIENTED_EDGE('',*,*,#7026,.T.); +#7078=ORIENTED_EDGE('',*,*,#5492,.F.); +#7080=ORIENTED_EDGE('',*,*,#7079,.F.); +#7082=ORIENTED_EDGE('',*,*,#7081,.T.); +#7084=ORIENTED_EDGE('',*,*,#7083,.T.); +#7086=ORIENTED_EDGE('',*,*,#7085,.T.); +#7088=ORIENTED_EDGE('',*,*,#7087,.F.); +#7090=ORIENTED_EDGE('',*,*,#7089,.T.); +#7092=ORIENTED_EDGE('',*,*,#7091,.T.); +#7093=ORIENTED_EDGE('',*,*,#6086,.F.); +#7094=ORIENTED_EDGE('',*,*,#6109,.T.); +#7095=ORIENTED_EDGE('',*,*,#6129,.T.); +#7096=EDGE_LOOP('',(#7075,#7076,#7077,#7078,#7080,#7082,#7084,#7086,#7088,#7090, +#7092,#7093,#7094,#7095)); +#7097=FACE_OUTER_BOUND('',#7096,.F.); +#7099=CARTESIAN_POINT('',(-1.699632111960E1,1.33E2,6.763969153196E2)); +#7100=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7101=DIRECTION('',(0.E0,1.E0,0.E0)); +#7102=AXIS2_PLACEMENT_3D('',#7099,#7100,#7101); +#7103=CYLINDRICAL_SURFACE('',#7102,5.E0); +#7104=ORIENTED_EDGE('',*,*,#7079,.T.); +#7105=ORIENTED_EDGE('',*,*,#5490,.F.); +#7106=ORIENTED_EDGE('',*,*,#5523,.T.); +#7107=ORIENTED_EDGE('',*,*,#5551,.F.); +#7108=EDGE_LOOP('',(#7104,#7105,#7106,#7107)); +#7109=FACE_OUTER_BOUND('',#7108,.F.); +#7111=CARTESIAN_POINT('',(-6.996321119596E0,1.372224348765E2, +-6.900468170986E2)); +#7112=DIRECTION('',(0.E0,-8.726535498374E-3,9.999619230642E-1)); +#7113=DIRECTION('',(0.E0,9.999619230642E-1,8.726535498374E-3)); +#7114=AXIS2_PLACEMENT_3D('',#7111,#7112,#7113); +#7115=CYLINDRICAL_SURFACE('',#7114,5.E0); +#7117=ORIENTED_EDGE('',*,*,#7116,.T.); +#7119=ORIENTED_EDGE('',*,*,#7118,.F.); +#7120=ORIENTED_EDGE('',*,*,#7083,.F.); +#7121=ORIENTED_EDGE('',*,*,#7081,.F.); +#7122=ORIENTED_EDGE('',*,*,#5549,.F.); +#7123=ORIENTED_EDGE('',*,*,#5584,.T.); +#7125=ORIENTED_EDGE('',*,*,#7124,.F.); +#7126=EDGE_LOOP('',(#7117,#7119,#7120,#7121,#7122,#7123,#7125)); +#7127=FACE_OUTER_BOUND('',#7126,.F.); +#7129=CARTESIAN_POINT('',(-6.139435803987E0,8.734510100495E1, +-9.876080982141E1)); +#7130=DIRECTION('',(-9.999999982571E-1,-5.904089589353E-5,0.E0)); +#7131=DIRECTION('',(-5.904089576757E-5,9.999999961236E-1,6.532159003521E-5)); +#7132=AXIS2_PLACEMENT_3D('',#7129,#7130,#7131); +#7133=CONICAL_SURFACE('',#7132,3.761749676807E1,8.315722658737E1); +#7135=ORIENTED_EDGE('',*,*,#7134,.T.); +#7137=ORIENTED_EDGE('',*,*,#7136,.T.); +#7139=ORIENTED_EDGE('',*,*,#7138,.T.); +#7140=ORIENTED_EDGE('',*,*,#7116,.F.); +#7141=EDGE_LOOP('',(#7135,#7137,#7139,#7140)); +#7142=FACE_OUTER_BOUND('',#7141,.F.); +#7144=CARTESIAN_POINT('',(-2.699973104533E1,1.370471928183E2, +-9.700099879006E1)); +#7145=DIRECTION('',(-2.508301967800E-12,-9.999619230642E-1,-8.726535497571E-3)); +#7146=DIRECTION('',(5.432110015939E-1,7.326766191505E-3,-8.395642478361E-1)); +#7147=AXIS2_PLACEMENT_3D('',#7144,#7145,#7146); +#7148=CYLINDRICAL_SURFACE('',#7147,2.949960780428E1); +#7150=ORIENTED_EDGE('',*,*,#7149,.T.); +#7151=ORIENTED_EDGE('',*,*,#7134,.F.); +#7152=ORIENTED_EDGE('',*,*,#7124,.T.); +#7153=ORIENTED_EDGE('',*,*,#5582,.F.); +#7155=ORIENTED_EDGE('',*,*,#7154,.T.); +#7156=ORIENTED_EDGE('',*,*,#5690,.F.); +#7158=ORIENTED_EDGE('',*,*,#7157,.T.); +#7160=ORIENTED_EDGE('',*,*,#7159,.F.); +#7162=ORIENTED_EDGE('',*,*,#7161,.T.); +#7163=EDGE_LOOP('',(#7150,#7151,#7152,#7153,#7155,#7156,#7158,#7160,#7162)); +#7164=FACE_OUTER_BOUND('',#7163,.F.); +#7166=CARTESIAN_POINT('',(-1.199632111960E1,6.515498735396E1, +-1.297397892668E2)); +#7167=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7168=DIRECTION('',(0.E0,0.E0,1.E0)); +#7169=AXIS2_PLACEMENT_3D('',#7166,#7167,#7168); +#7170=PLANE('',#7169); +#7171=ORIENTED_EDGE('',*,*,#7087,.T.); +#7173=ORIENTED_EDGE('',*,*,#7172,.F.); +#7174=ORIENTED_EDGE('',*,*,#7136,.F.); +#7175=ORIENTED_EDGE('',*,*,#7149,.F.); +#7177=ORIENTED_EDGE('',*,*,#7176,.T.); +#7178=EDGE_LOOP('',(#7171,#7173,#7174,#7175,#7177)); +#7179=FACE_OUTER_BOUND('',#7178,.F.); +#7181=CARTESIAN_POINT('',(-1.199632111960E1,1.098547678675E2, +-1.297397892668E2)); +#7182=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7183=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7184=AXIS2_PLACEMENT_3D('',#7181,#7182,#7183); +#7185=PLANE('',#7184); +#7186=ORIENTED_EDGE('',*,*,#7085,.F.); +#7187=ORIENTED_EDGE('',*,*,#7118,.T.); +#7188=ORIENTED_EDGE('',*,*,#7138,.F.); +#7189=ORIENTED_EDGE('',*,*,#7172,.T.); +#7190=EDGE_LOOP('',(#7186,#7187,#7188,#7189)); +#7191=FACE_OUTER_BOUND('',#7190,.F.); +#7193=CARTESIAN_POINT('',(-2.699999999992E1,1.370471841019E2,-9.7E1)); +#7194=DIRECTION('',(0.E0,9.999619230642E-1,8.726535498375E-3)); +#7195=DIRECTION('',(-1.E0,0.E0,0.E0)); +#7196=AXIS2_PLACEMENT_3D('',#7193,#7194,#7195); +#7197=CYLINDRICAL_SURFACE('',#7196,2.950073545538E1); +#7198=ORIENTED_EDGE('',*,*,#7176,.F.); +#7199=ORIENTED_EDGE('',*,*,#7161,.F.); +#7201=ORIENTED_EDGE('',*,*,#7200,.F.); +#7202=ORIENTED_EDGE('',*,*,#7089,.F.); +#7203=EDGE_LOOP('',(#7198,#7199,#7201,#7202)); +#7204=FACE_OUTER_BOUND('',#7203,.F.); +#7206=CARTESIAN_POINT('',(0.E0,3.5E1,-1.9E2)); +#7207=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7208=DIRECTION('',(1.E0,0.E0,0.E0)); +#7209=AXIS2_PLACEMENT_3D('',#7206,#7207,#7208); +#7210=PLANE('',#7209); +#7212=ORIENTED_EDGE('',*,*,#7211,.F.); +#7213=ORIENTED_EDGE('',*,*,#6088,.T.); +#7214=ORIENTED_EDGE('',*,*,#7091,.F.); +#7215=ORIENTED_EDGE('',*,*,#7200,.T.); +#7216=ORIENTED_EDGE('',*,*,#7159,.T.); +#7218=ORIENTED_EDGE('',*,*,#7217,.F.); +#7219=ORIENTED_EDGE('',*,*,#5904,.F.); +#7220=EDGE_LOOP('',(#7212,#7213,#7214,#7215,#7216,#7218,#7219)); +#7221=FACE_OUTER_BOUND('',#7220,.F.); +#7223=CARTESIAN_POINT('',(-7.32018548E2,3.E1,-9.88E1)); +#7224=DIRECTION('',(1.E0,0.E0,0.E0)); +#7225=DIRECTION('',(0.E0,1.E0,0.E0)); +#7226=AXIS2_PLACEMENT_3D('',#7223,#7224,#7225); +#7227=CYLINDRICAL_SURFACE('',#7226,5.E0); +#7228=ORIENTED_EDGE('',*,*,#5902,.F.); +#7229=ORIENTED_EDGE('',*,*,#5962,.T.); +#7230=ORIENTED_EDGE('',*,*,#5986,.F.); +#7231=ORIENTED_EDGE('',*,*,#6090,.F.); +#7232=ORIENTED_EDGE('',*,*,#7211,.T.); +#7233=EDGE_LOOP('',(#7228,#7229,#7230,#7231,#7232)); +#7234=FACE_OUTER_BOUND('',#7233,.F.); +#7236=CARTESIAN_POINT('',(-1.069999999992E1,3.5E1,-1.041483448332E2)); +#7237=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7238=DIRECTION('',(0.E0,1.E0,0.E0)); +#7239=AXIS2_PLACEMENT_3D('',#7236,#7237,#7238); +#7240=PLANE('',#7239); +#7241=ORIENTED_EDGE('',*,*,#7157,.F.); +#7242=ORIENTED_EDGE('',*,*,#5688,.F.); +#7243=ORIENTED_EDGE('',*,*,#5716,.T.); +#7244=ORIENTED_EDGE('',*,*,#5906,.T.); +#7245=ORIENTED_EDGE('',*,*,#7217,.T.); +#7246=EDGE_LOOP('',(#7241,#7242,#7243,#7244,#7245)); +#7247=FACE_OUTER_BOUND('',#7246,.F.); +#7249=CARTESIAN_POINT('',(2.500000000076E0,1.364950652563E2,-3.373344677042E1)); +#7250=DIRECTION('',(1.E0,0.E0,0.E0)); +#7251=DIRECTION('',(0.E0,8.726535498375E-3,-9.999619230642E-1)); +#7252=AXIS2_PLACEMENT_3D('',#7249,#7250,#7251); +#7253=PLANE('',#7252); +#7254=ORIENTED_EDGE('',*,*,#5647,.T.); +#7255=ORIENTED_EDGE('',*,*,#5665,.T.); +#7256=ORIENTED_EDGE('',*,*,#5692,.T.); +#7257=ORIENTED_EDGE('',*,*,#7154,.F.); +#7258=ORIENTED_EDGE('',*,*,#5580,.T.); +#7259=EDGE_LOOP('',(#7254,#7255,#7256,#7257,#7258)); +#7260=FACE_OUTER_BOUND('',#7259,.F.); +#7262=CARTESIAN_POINT('',(-2.699999999992E1,3.5E1,-9.7E1)); +#7263=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7264=DIRECTION('',(1.E0,0.E0,0.E0)); +#7265=AXIS2_PLACEMENT_3D('',#7262,#7263,#7264); +#7266=CYLINDRICAL_SURFACE('',#7265,4.55E1); +#7267=ORIENTED_EDGE('',*,*,#7049,.F.); +#7268=ORIENTED_EDGE('',*,*,#6218,.T.); +#7270=ORIENTED_EDGE('',*,*,#7269,.T.); +#7271=ORIENTED_EDGE('',*,*,#7018,.T.); +#7272=EDGE_LOOP('',(#7267,#7268,#7270,#7271)); +#7273=FACE_OUTER_BOUND('',#7272,.F.); +#7275=CARTESIAN_POINT('',(1.850000000008E1,3.5E1,-9.7E1)); +#7276=DIRECTION('',(1.E0,0.E0,0.E0)); +#7277=DIRECTION('',(0.E0,0.E0,1.E0)); +#7278=AXIS2_PLACEMENT_3D('',#7275,#7276,#7277); +#7279=PLANE('',#7278); +#7280=ORIENTED_EDGE('',*,*,#7269,.F.); +#7281=ORIENTED_EDGE('',*,*,#6216,.T.); +#7283=ORIENTED_EDGE('',*,*,#7282,.T.); +#7284=ORIENTED_EDGE('',*,*,#7020,.T.); +#7285=EDGE_LOOP('',(#7280,#7281,#7283,#7284)); +#7286=FACE_OUTER_BOUND('',#7285,.F.); +#7288=CARTESIAN_POINT('',(0.E0,0.E0,-5.36E1)); +#7289=DIRECTION('',(0.E0,0.E0,1.E0)); +#7290=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7291=AXIS2_PLACEMENT_3D('',#7288,#7289,#7290); +#7292=PLANE('',#7291); +#7294=ORIENTED_EDGE('',*,*,#7293,.T.); +#7295=ORIENTED_EDGE('',*,*,#7004,.F.); +#7296=ORIENTED_EDGE('',*,*,#7022,.F.); +#7297=ORIENTED_EDGE('',*,*,#7282,.F.); +#7298=ORIENTED_EDGE('',*,*,#6214,.F.); +#7299=ORIENTED_EDGE('',*,*,#6256,.F.); +#7300=EDGE_LOOP('',(#7294,#7295,#7296,#7297,#7298,#7299)); +#7301=FACE_OUTER_BOUND('',#7300,.F.); +#7303=CARTESIAN_POINT('',(6.E1,1.4519E2,-1.02E2)); +#7304=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7305=DIRECTION('',(-1.E0,0.E0,0.E0)); +#7306=AXIS2_PLACEMENT_3D('',#7303,#7304,#7305); +#7307=CYLINDRICAL_SURFACE('',#7306,3.8E1); +#7308=ORIENTED_EDGE('',*,*,#6254,.T.); +#7309=ORIENTED_EDGE('',*,*,#6892,.F.); +#7310=ORIENTED_EDGE('',*,*,#7006,.T.); +#7311=ORIENTED_EDGE('',*,*,#7293,.F.); +#7312=EDGE_LOOP('',(#7308,#7309,#7310,#7311)); +#7313=FACE_OUTER_BOUND('',#7312,.F.); +#7315=CARTESIAN_POINT('',(6.E1,1.4519E2,-1.02E2)); +#7316=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7317=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7318=AXIS2_PLACEMENT_3D('',#7315,#7316,#7317); +#7319=CYLINDRICAL_SURFACE('',#7318,1.E1); +#7320=ORIENTED_EDGE('',*,*,#6896,.F.); +#7322=ORIENTED_EDGE('',*,*,#7321,.F.); +#7324=ORIENTED_EDGE('',*,*,#7323,.F.); +#7326=ORIENTED_EDGE('',*,*,#7325,.T.); +#7327=EDGE_LOOP('',(#7320,#7322,#7324,#7326)); +#7328=FACE_OUTER_BOUND('',#7327,.F.); +#7330=CARTESIAN_POINT('',(6.E1,1.4519E2,-1.02E2)); +#7331=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7332=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7333=AXIS2_PLACEMENT_3D('',#7330,#7331,#7332); +#7334=CYLINDRICAL_SURFACE('',#7333,1.E1); +#7335=ORIENTED_EDGE('',*,*,#6898,.F.); +#7336=ORIENTED_EDGE('',*,*,#7325,.F.); +#7338=ORIENTED_EDGE('',*,*,#7337,.F.); +#7339=ORIENTED_EDGE('',*,*,#7321,.T.); +#7340=EDGE_LOOP('',(#7335,#7336,#7338,#7339)); +#7341=FACE_OUTER_BOUND('',#7340,.F.); +#7343=CARTESIAN_POINT('',(0.E0,0.E0,-8.7E1)); +#7344=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7345=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7346=AXIS2_PLACEMENT_3D('',#7343,#7344,#7345); +#7347=PLANE('',#7346); +#7349=ORIENTED_EDGE('',*,*,#7348,.T.); +#7351=ORIENTED_EDGE('',*,*,#7350,.T.); +#7353=ORIENTED_EDGE('',*,*,#7352,.T.); +#7355=ORIENTED_EDGE('',*,*,#7354,.T.); +#7356=EDGE_LOOP('',(#7349,#7351,#7353,#7355)); +#7357=FACE_OUTER_BOUND('',#7356,.F.); +#7358=ORIENTED_EDGE('',*,*,#7323,.T.); +#7359=ORIENTED_EDGE('',*,*,#7337,.T.); +#7360=EDGE_LOOP('',(#7358,#7359)); +#7361=FACE_BOUND('',#7360,.F.); +#7363=CARTESIAN_POINT('',(6.E1,1.4519E2,-3.86E1)); +#7364=DIRECTION('',(0.E0,0.E0,1.E0)); +#7365=DIRECTION('',(0.E0,1.E0,0.E0)); +#7366=AXIS2_PLACEMENT_3D('',#7363,#7364,#7365); +#7367=CYLINDRICAL_SURFACE('',#7366,2.5E1); +#7369=ORIENTED_EDGE('',*,*,#7368,.F.); +#7371=ORIENTED_EDGE('',*,*,#7370,.F.); +#7373=ORIENTED_EDGE('',*,*,#7372,.F.); +#7375=ORIENTED_EDGE('',*,*,#7374,.F.); +#7377=ORIENTED_EDGE('',*,*,#7376,.F.); +#7379=ORIENTED_EDGE('',*,*,#7378,.T.); +#7381=ORIENTED_EDGE('',*,*,#7380,.T.); +#7383=ORIENTED_EDGE('',*,*,#7382,.T.); +#7384=ORIENTED_EDGE('',*,*,#7350,.F.); +#7385=ORIENTED_EDGE('',*,*,#7348,.F.); +#7387=ORIENTED_EDGE('',*,*,#7386,.F.); +#7389=ORIENTED_EDGE('',*,*,#7388,.F.); +#7391=ORIENTED_EDGE('',*,*,#7390,.T.); +#7392=EDGE_LOOP('',(#7369,#7371,#7373,#7375,#7377,#7379,#7381,#7383,#7384,#7385, +#7387,#7389,#7391)); +#7393=FACE_OUTER_BOUND('',#7392,.F.); +#7395=CARTESIAN_POINT('',(6.E1,1.4519E2,-4.36E1)); +#7396=DIRECTION('',(0.E0,0.E0,1.E0)); +#7397=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7398=AXIS2_PLACEMENT_3D('',#7395,#7396,#7397); +#7399=CONICAL_SURFACE('',#7398,2.6E1,1.130993247402E1); +#7400=ORIENTED_EDGE('',*,*,#5633,.F.); +#7402=ORIENTED_EDGE('',*,*,#7401,.F.); +#7403=ORIENTED_EDGE('',*,*,#7368,.T.); +#7405=ORIENTED_EDGE('',*,*,#7404,.T.); +#7406=EDGE_LOOP('',(#7400,#7402,#7403,#7405)); +#7407=FACE_OUTER_BOUND('',#7406,.F.); +#7409=CARTESIAN_POINT('',(6.E1,1.4519E2,-4.36E1)); +#7410=DIRECTION('',(0.E0,0.E0,1.E0)); +#7411=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7412=AXIS2_PLACEMENT_3D('',#7409,#7410,#7411); +#7413=CONICAL_SURFACE('',#7412,2.6E1,1.130993247402E1); +#7414=ORIENTED_EDGE('',*,*,#5635,.F.); +#7415=ORIENTED_EDGE('',*,*,#7404,.F.); +#7417=ORIENTED_EDGE('',*,*,#7416,.T.); +#7418=ORIENTED_EDGE('',*,*,#7401,.T.); +#7419=EDGE_LOOP('',(#7414,#7415,#7417,#7418)); +#7420=FACE_OUTER_BOUND('',#7419,.F.); +#7422=CARTESIAN_POINT('',(6.E1,1.4519E2,-3.86E1)); +#7423=DIRECTION('',(0.E0,0.E0,1.E0)); +#7424=DIRECTION('',(0.E0,1.E0,0.E0)); +#7425=AXIS2_PLACEMENT_3D('',#7422,#7423,#7424); +#7426=CYLINDRICAL_SURFACE('',#7425,2.5E1); +#7427=ORIENTED_EDGE('',*,*,#7416,.F.); +#7428=ORIENTED_EDGE('',*,*,#7390,.F.); +#7429=ORIENTED_EDGE('',*,*,#7388,.T.); +#7430=ORIENTED_EDGE('',*,*,#7386,.T.); +#7431=ORIENTED_EDGE('',*,*,#7354,.F.); +#7432=ORIENTED_EDGE('',*,*,#7352,.F.); +#7433=ORIENTED_EDGE('',*,*,#7382,.F.); +#7434=ORIENTED_EDGE('',*,*,#7380,.F.); +#7435=ORIENTED_EDGE('',*,*,#7378,.F.); +#7436=ORIENTED_EDGE('',*,*,#7376,.T.); +#7437=ORIENTED_EDGE('',*,*,#7374,.T.); +#7438=ORIENTED_EDGE('',*,*,#7372,.T.); +#7439=ORIENTED_EDGE('',*,*,#7370,.T.); +#7440=EDGE_LOOP('',(#7427,#7428,#7429,#7430,#7431,#7432,#7433,#7434,#7435,#7436, +#7437,#7438,#7439)); +#7441=FACE_OUTER_BOUND('',#7440,.F.); +#7443=CARTESIAN_POINT('',(9.694405291696E-1,-1.468628580950E2, +-6.468135679269E1)); +#7444=CARTESIAN_POINT('',(1.259706527175E0,-1.560919430696E2, +-7.360976605172E1)); +#7445=CARTESIAN_POINT('',(1.604031499522E0,-1.653200679540E2, +-8.253724649950E1)); +#7446=CARTESIAN_POINT('',(2.002409343167E0,-1.745470691829E2, +-9.146363989945E1)); +#7447=CARTESIAN_POINT('',(9.694405320178E-1,-1.079700616218E2, +-1.048839184290E2)); +#7448=CARTESIAN_POINT('',(1.259706530416E0,-1.118306269955E2, +-1.193616391215E2)); +#7449=CARTESIAN_POINT('',(1.604031503157E0,-1.156907907594E2, +-1.338378537148E2)); +#7450=CARTESIAN_POINT('',(2.002409347194E0,-1.195504844935E2, +-1.483123056229E2)); +#7451=CARTESIAN_POINT('',(9.694405322840E-1,-5.203352991279E1, +-1.048839184200E2)); +#7452=CARTESIAN_POINT('',(1.259706530719E0,-4.817296453443E1, +-1.193616391113E2)); +#7453=CARTESIAN_POINT('',(1.604031503496E0,-4.431280076587E1, +-1.338378537034E2)); +#7454=CARTESIAN_POINT('',(2.002409347571E0,-4.045310702719E1, +-1.483123056103E2)); +#7455=CARTESIAN_POINT('',(9.694405298059E-1,-1.314073345240E1, +-6.468135677126E1)); +#7456=CARTESIAN_POINT('',(1.259706527899E0,-3.911648474958E0, +-7.360976602733E1)); +#7457=CARTESIAN_POINT('',(1.604031500334E0,5.316476412313E0,-8.253724647216E1)); +#7458=CARTESIAN_POINT('',(2.002409344067E0,1.454347764403E1,-9.146363986916E1)); +#7459=(BOUNDED_SURFACE()B_SPLINE_SURFACE(3,3,((#7443,#7444,#7445,#7446),(#7447, +#7448,#7449,#7450),(#7451,#7452,#7453,#7454),(#7455,#7456,#7457,#7458)), +.UNSPECIFIED.,.F.,.F.,.F.)B_SPLINE_SURFACE_WITH_KNOTS((4,4),(4,4),(0.E0,1.E0),( +0.E0,1.E0),.UNSPECIFIED.)GEOMETRIC_REPRESENTATION_ITEM()RATIONAL_B_SPLINE_SURFACE(((1.179735861260E0,1.179728891120E0,1.179728891120E0,1.179735861260E0),( +9.400939544934E-1,9.400884002110E-1,9.400884002110E-1,9.400939544934E-1),( +9.400939544934E-1,9.400884002110E-1,9.400884002110E-1,9.400939544934E-1),( +1.179735861260E0,1.179728891120E0,1.179728891120E0,1.179735861260E0)))REPRESENTATION_ITEM('')SURFACE()); +#7460=ORIENTED_EDGE('',*,*,#5965,.T.); +#7461=ORIENTED_EDGE('',*,*,#5898,.T.); +#7462=ORIENTED_EDGE('',*,*,#5896,.T.); +#7463=EDGE_LOOP('',(#7460,#7461,#7462)); +#7464=FACE_OUTER_BOUND('',#7463,.F.); +#7466=CARTESIAN_POINT('',(-2.215252901205E1,-1.E1,-1.419E2)); +#7467=DIRECTION('',(0.E0,-4.253611398224E-1,-9.050237017498E-1)); +#7468=DIRECTION('',(0.E0,-9.050237017498E-1,4.253611398224E-1)); +#7469=AXIS2_PLACEMENT_3D('',#7466,#7467,#7468); +#7470=PLANE('',#7469); +#7471=ORIENTED_EDGE('',*,*,#5754,.F.); +#7473=ORIENTED_EDGE('',*,*,#7472,.F.); +#7475=ORIENTED_EDGE('',*,*,#7474,.T.); +#7476=ORIENTED_EDGE('',*,*,#5910,.F.); +#7477=EDGE_LOOP('',(#7471,#7473,#7475,#7476)); +#7478=FACE_OUTER_BOUND('',#7477,.F.); +#7480=CARTESIAN_POINT('',(-4.853273969455E1,-6.5E1,0.E0)); +#7481=DIRECTION('',(-1.E0,0.E0,0.E0)); +#7482=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7483=AXIS2_PLACEMENT_3D('',#7480,#7481,#7482); +#7484=CONICAL_SURFACE('',#7483,1.511055584600E2,8.927825336436E1); +#7485=ORIENTED_EDGE('',*,*,#5752,.T.); +#7486=ORIENTED_EDGE('',*,*,#5795,.F.); +#7487=ORIENTED_EDGE('',*,*,#5793,.F.); +#7488=ORIENTED_EDGE('',*,*,#5791,.F.); +#7490=ORIENTED_EDGE('',*,*,#7489,.T.); +#7492=ORIENTED_EDGE('',*,*,#7491,.T.); +#7493=ORIENTED_EDGE('',*,*,#7472,.T.); +#7494=EDGE_LOOP('',(#7485,#7486,#7487,#7488,#7490,#7492,#7493)); +#7495=FACE_OUTER_BOUND('',#7494,.F.); +#7497=CARTESIAN_POINT('',(0.E0,0.E0,-1.325E2)); +#7498=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7499=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7500=AXIS2_PLACEMENT_3D('',#7497,#7498,#7499); +#7501=PLANE('',#7500); +#7502=ORIENTED_EDGE('',*,*,#7474,.F.); +#7503=ORIENTED_EDGE('',*,*,#7491,.F.); +#7504=ORIENTED_EDGE('',*,*,#7489,.F.); +#7505=ORIENTED_EDGE('',*,*,#5789,.T.); +#7506=ORIENTED_EDGE('',*,*,#5839,.F.); +#7507=ORIENTED_EDGE('',*,*,#5859,.T.); +#7508=ORIENTED_EDGE('',*,*,#5914,.F.); +#7509=ORIENTED_EDGE('',*,*,#5912,.F.); +#7510=EDGE_LOOP('',(#7502,#7503,#7504,#7505,#7506,#7507,#7508,#7509)); +#7511=FACE_OUTER_BOUND('',#7510,.F.); +#7513=CARTESIAN_POINT('',(1.127471552894E2,-1.95E2,-1.9E2)); +#7514=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7515=DIRECTION('',(-1.E0,0.E0,0.E0)); +#7516=AXIS2_PLACEMENT_3D('',#7513,#7514,#7515); +#7517=PLANE('',#7516); +#7518=ORIENTED_EDGE('',*,*,#4885,.F.); +#7519=ORIENTED_EDGE('',*,*,#4962,.F.); +#7520=ORIENTED_EDGE('',*,*,#5863,.F.); +#7521=ORIENTED_EDGE('',*,*,#4791,.F.); +#7522=EDGE_LOOP('',(#7518,#7519,#7520,#7521)); +#7523=FACE_OUTER_BOUND('',#7522,.F.); +#7525=CARTESIAN_POINT('',(9.5E1,1.5E1,6.429794054201E2)); +#7526=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7527=DIRECTION('',(1.E0,0.E0,0.E0)); +#7528=AXIS2_PLACEMENT_3D('',#7525,#7526,#7527); +#7529=CYLINDRICAL_SURFACE('',#7528,5.E0); +#7530=ORIENTED_EDGE('',*,*,#4801,.F.); +#7531=ORIENTED_EDGE('',*,*,#5730,.T.); +#7533=ORIENTED_EDGE('',*,*,#7532,.F.); +#7535=ORIENTED_EDGE('',*,*,#7534,.T.); +#7536=EDGE_LOOP('',(#7530,#7531,#7533,#7535)); +#7537=FACE_OUTER_BOUND('',#7536,.F.); +#7539=CARTESIAN_POINT('',(9.5E1,-8.000179578406E1,1.429144561350E-3)); +#7540=DIRECTION('',(1.E0,0.E0,0.E0)); +#7541=DIRECTION('',(0.E0,-6.428362304890E-2,9.979316689071E-1)); +#7542=AXIS2_PLACEMENT_3D('',#7539,#7540,#7541); +#7543=TOROIDAL_SURFACE('',#7542,1.809734288188E2,5.E0); +#7545=ORIENTED_EDGE('',*,*,#7544,.F.); +#7546=ORIENTED_EDGE('',*,*,#7532,.T.); +#7547=ORIENTED_EDGE('',*,*,#5697,.T.); +#7549=ORIENTED_EDGE('',*,*,#7548,.F.); +#7550=EDGE_LOOP('',(#7545,#7546,#7547,#7549)); +#7551=FACE_OUTER_BOUND('',#7550,.F.); +#7553=CARTESIAN_POINT('',(1.E2,-2.95E2,-1.9E2)); +#7554=DIRECTION('',(1.E0,0.E0,0.E0)); +#7555=DIRECTION('',(0.E0,1.E0,0.E0)); +#7556=AXIS2_PLACEMENT_3D('',#7553,#7554,#7555); +#7557=PLANE('',#7556); +#7559=ORIENTED_EDGE('',*,*,#7558,.F.); +#7561=ORIENTED_EDGE('',*,*,#7560,.F.); +#7562=ORIENTED_EDGE('',*,*,#4803,.T.); +#7563=ORIENTED_EDGE('',*,*,#7534,.F.); +#7564=ORIENTED_EDGE('',*,*,#7544,.T.); +#7565=EDGE_LOOP('',(#7559,#7561,#7562,#7563,#7564)); +#7566=FACE_OUTER_BOUND('',#7565,.F.); +#7568=CARTESIAN_POINT('',(9.5E1,2.863141738256E2,-4.36E1)); +#7569=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7570=DIRECTION('',(1.E0,0.E0,0.E0)); +#7571=AXIS2_PLACEMENT_3D('',#7568,#7569,#7570); +#7572=CYLINDRICAL_SURFACE('',#7571,5.E0); +#7573=ORIENTED_EDGE('',*,*,#5625,.T.); +#7575=ORIENTED_EDGE('',*,*,#7574,.F.); +#7576=ORIENTED_EDGE('',*,*,#7558,.T.); +#7577=ORIENTED_EDGE('',*,*,#7548,.T.); +#7578=EDGE_LOOP('',(#7573,#7575,#7576,#7577)); +#7579=FACE_OUTER_BOUND('',#7578,.F.); +#7581=CARTESIAN_POINT('',(8.936617853238E1,2.892077783815E2,-3.865577678127E1)); +#7582=CARTESIAN_POINT('',(8.882453474418E1,2.928036127590E2,-3.810802260003E1)); +#7583=CARTESIAN_POINT('',(8.843721404820E1,2.953749356543E2,-4.070835310852E1)); +#7584=CARTESIAN_POINT('',(8.851880234246E1,2.948332918661E2,-4.434475282029E1)); +#7585=CARTESIAN_POINT('',(9.246093445594E1,2.896739442685E2,-3.865577678127E1)); +#7586=CARTESIAN_POINT('',(9.456397124048E1,2.936681492753E2,-3.810802260003E1)); +#7587=CARTESIAN_POINT('',(9.606781876682E1,2.965243405523E2,-4.070835310852E1)); +#7588=CARTESIAN_POINT('',(9.575103643173E1,2.959226898355E2,-4.434475282029E1)); +#7589=CARTESIAN_POINT('',(9.467394426846E1,2.874609344559E2,-3.865577678127E1)); +#7590=CARTESIAN_POINT('',(9.866814927531E1,2.895639712405E2,-3.810802260003E1)); +#7591=CARTESIAN_POINT('',(1.015243405523E2,2.910678187668E2,-4.070835310852E1)); +#7592=CARTESIAN_POINT('',(1.009226898355E2,2.907510364317E2,-4.434475282029E1)); +#7593=CARTESIAN_POINT('',(9.420777838148E1,2.843661785324E2,-3.865577678127E1)); +#7594=CARTESIAN_POINT('',(9.780361275898E1,2.838245347442E2,-3.810802260003E1)); +#7595=CARTESIAN_POINT('',(1.003749356543E2,2.834372140482E2,-4.070835310852E1)); +#7596=CARTESIAN_POINT('',(9.983329186607E1,2.835188023425E2,-4.434475282029E1)); +#7597=(BOUNDED_SURFACE()B_SPLINE_SURFACE(3,3,((#7581,#7582,#7583,#7584),(#7585, +#7586,#7587,#7588),(#7589,#7590,#7591,#7592),(#7593,#7594,#7595,#7596)), +.UNSPECIFIED.,.F.,.F.,.F.)B_SPLINE_SURFACE_WITH_KNOTS((4,4),(4,4),(0.E0,1.E0),( +0.E0,1.E0),.UNSPECIFIED.)GEOMETRIC_REPRESENTATION_ITEM()RATIONAL_B_SPLINE_SURFACE(((1.574492818929E0,1.148219670698E0,1.148219670698E0,1.574492818929E0),( +1.148219670698E0,8.373543507647E-1,8.373543507647E-1,1.148219670698E0),( +1.148219670698E0,8.373543507647E-1,8.373543507647E-1,1.148219670698E0),( +1.574492818929E0,1.148219670698E0,1.148219670698E0,1.574492818929E0)))REPRESENTATION_ITEM('')SURFACE()); +#7599=ORIENTED_EDGE('',*,*,#7598,.T.); +#7600=ORIENTED_EDGE('',*,*,#7574,.T.); +#7601=ORIENTED_EDGE('',*,*,#5623,.F.); +#7603=ORIENTED_EDGE('',*,*,#7602,.T.); +#7604=EDGE_LOOP('',(#7599,#7600,#7601,#7603)); +#7605=FACE_OUTER_BOUND('',#7604,.F.); +#7607=CARTESIAN_POINT('',(9.E1,2.85E2,6.640352260206E2)); +#7608=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7609=DIRECTION('',(0.E0,1.E0,0.E0)); +#7610=AXIS2_PLACEMENT_3D('',#7607,#7608,#7609); +#7611=CYLINDRICAL_SURFACE('',#7610,1.E1); +#7612=ORIENTED_EDGE('',*,*,#7598,.F.); +#7614=ORIENTED_EDGE('',*,*,#7613,.T.); +#7615=ORIENTED_EDGE('',*,*,#4805,.F.); +#7616=ORIENTED_EDGE('',*,*,#7560,.T.); +#7617=EDGE_LOOP('',(#7612,#7614,#7615,#7616)); +#7618=FACE_OUTER_BOUND('',#7617,.F.); +#7620=CARTESIAN_POINT('',(1.E2,2.95E2,-1.9E2)); +#7621=DIRECTION('',(0.E0,1.E0,0.E0)); +#7622=DIRECTION('',(-1.E0,0.E0,0.E0)); +#7623=AXIS2_PLACEMENT_3D('',#7620,#7621,#7622); +#7624=PLANE('',#7623); +#7626=ORIENTED_EDGE('',*,*,#7625,.F.); +#7628=ORIENTED_EDGE('',*,*,#7627,.T.); +#7630=ORIENTED_EDGE('',*,*,#7629,.F.); +#7632=ORIENTED_EDGE('',*,*,#7631,.T.); +#7634=ORIENTED_EDGE('',*,*,#7633,.F.); +#7636=ORIENTED_EDGE('',*,*,#7635,.F.); +#7638=ORIENTED_EDGE('',*,*,#7637,.F.); +#7639=ORIENTED_EDGE('',*,*,#4807,.T.); +#7640=ORIENTED_EDGE('',*,*,#7613,.F.); +#7642=ORIENTED_EDGE('',*,*,#7641,.F.); +#7643=EDGE_LOOP('',(#7626,#7628,#7630,#7632,#7634,#7636,#7638,#7639,#7640, +#7642)); +#7644=FACE_OUTER_BOUND('',#7643,.F.); +#7646=CARTESIAN_POINT('',(1.145367888040E1,2.93E2,-1.552884201579E2)); +#7647=DIRECTION('',(0.E0,0.E0,1.E0)); +#7648=DIRECTION('',(0.E0,1.E0,0.E0)); +#7649=AXIS2_PLACEMENT_3D('',#7646,#7647,#7648); +#7650=CYLINDRICAL_SURFACE('',#7649,2.E0); +#7651=ORIENTED_EDGE('',*,*,#7625,.T.); +#7653=ORIENTED_EDGE('',*,*,#7652,.F.); +#7655=ORIENTED_EDGE('',*,*,#7654,.T.); +#7657=ORIENTED_EDGE('',*,*,#7656,.F.); +#7658=EDGE_LOOP('',(#7651,#7653,#7655,#7657)); +#7659=FACE_OUTER_BOUND('',#7658,.F.); +#7661=CARTESIAN_POINT('',(1.145367888040E1,2.9E2,-4.36E1)); +#7662=DIRECTION('',(1.E0,0.E0,0.E0)); +#7663=DIRECTION('',(0.E0,9.592289723847E-1,-2.826301090432E-1)); +#7664=AXIS2_PLACEMENT_3D('',#7661,#7662,#7663); +#7665=TOROIDAL_SURFACE('',#7664,3.E0,2.E0); +#7667=ORIENTED_EDGE('',*,*,#7666,.T.); +#7669=ORIENTED_EDGE('',*,*,#7668,.T.); +#7671=ORIENTED_EDGE('',*,*,#7670,.F.); +#7672=ORIENTED_EDGE('',*,*,#7652,.T.); +#7673=EDGE_LOOP('',(#7667,#7669,#7671,#7672)); +#7674=FACE_OUTER_BOUND('',#7673,.F.); +#7676=CARTESIAN_POINT('',(-7.32018548E2,2.9E2,-4.36E1)); +#7677=DIRECTION('',(1.E0,0.E0,0.E0)); +#7678=DIRECTION('',(0.E0,1.E0,0.E0)); +#7679=AXIS2_PLACEMENT_3D('',#7676,#7677,#7678); +#7680=CYLINDRICAL_SURFACE('',#7679,5.E0); +#7681=ORIENTED_EDGE('',*,*,#7666,.F.); +#7682=ORIENTED_EDGE('',*,*,#7641,.T.); +#7683=ORIENTED_EDGE('',*,*,#7602,.F.); +#7684=ORIENTED_EDGE('',*,*,#5621,.T.); +#7685=EDGE_LOOP('',(#7681,#7682,#7683,#7684)); +#7686=FACE_OUTER_BOUND('',#7685,.F.); +#7688=CARTESIAN_POINT('',(1.145367888040E1,2.914326745253E2,-4.06E1)); +#7689=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7690=DIRECTION('',(0.E0,0.E0,1.E0)); +#7691=AXIS2_PLACEMENT_3D('',#7688,#7689,#7690); +#7692=CYLINDRICAL_SURFACE('',#7691,2.E0); +#7694=ORIENTED_EDGE('',*,*,#7693,.T.); +#7695=ORIENTED_EDGE('',*,*,#7668,.F.); +#7696=ORIENTED_EDGE('',*,*,#5619,.T.); +#7698=ORIENTED_EDGE('',*,*,#7697,.F.); +#7699=EDGE_LOOP('',(#7694,#7695,#7696,#7698)); +#7700=FACE_OUTER_BOUND('',#7699,.F.); +#7702=CARTESIAN_POINT('',(9.453678880404E0,2.3188E2,-3.86E1)); +#7703=DIRECTION('',(1.E0,0.E0,0.E0)); +#7704=DIRECTION('',(0.E0,1.E0,0.E0)); +#7705=AXIS2_PLACEMENT_3D('',#7702,#7703,#7704); +#7706=PLANE('',#7705); +#7707=ORIENTED_EDGE('',*,*,#7693,.F.); +#7709=ORIENTED_EDGE('',*,*,#7708,.F.); +#7711=ORIENTED_EDGE('',*,*,#7710,.F.); +#7713=ORIENTED_EDGE('',*,*,#7712,.F.); +#7715=ORIENTED_EDGE('',*,*,#7714,.F.); +#7717=ORIENTED_EDGE('',*,*,#7716,.F.); +#7719=ORIENTED_EDGE('',*,*,#7718,.T.); +#7721=ORIENTED_EDGE('',*,*,#7720,.F.); +#7722=ORIENTED_EDGE('',*,*,#7654,.F.); +#7723=ORIENTED_EDGE('',*,*,#7670,.T.); +#7724=EDGE_LOOP('',(#7707,#7709,#7711,#7713,#7715,#7717,#7719,#7721,#7722, +#7723)); +#7725=FACE_OUTER_BOUND('',#7724,.F.); +#7727=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-3.86E1)); +#7728=DIRECTION('',(0.E0,0.E0,1.E0)); +#7729=DIRECTION('',(0.E0,1.E0,0.E0)); +#7730=AXIS2_PLACEMENT_3D('',#7727,#7728,#7729); +#7731=CYLINDRICAL_SURFACE('',#7730,6.7E1); +#7733=ORIENTED_EDGE('',*,*,#7732,.F.); +#7735=ORIENTED_EDGE('',*,*,#7734,.T.); +#7737=ORIENTED_EDGE('',*,*,#7736,.F.); +#7738=ORIENTED_EDGE('',*,*,#7708,.T.); +#7739=EDGE_LOOP('',(#7733,#7735,#7737,#7738)); +#7740=FACE_OUTER_BOUND('',#7739,.F.); +#7742=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-4.06E1)); +#7743=DIRECTION('',(0.E0,0.E0,1.E0)); +#7744=DIRECTION('',(9.955508345719E-4,-9.999995044391E-1,0.E0)); +#7745=AXIS2_PLACEMENT_3D('',#7742,#7743,#7744); +#7746=TOROIDAL_SURFACE('',#7745,6.9E1,2.E0); +#7747=ORIENTED_EDGE('',*,*,#7732,.T.); +#7748=ORIENTED_EDGE('',*,*,#7697,.T.); +#7749=ORIENTED_EDGE('',*,*,#5617,.F.); +#7751=ORIENTED_EDGE('',*,*,#7750,.F.); +#7752=EDGE_LOOP('',(#7747,#7748,#7749,#7751)); +#7753=FACE_OUTER_BOUND('',#7752,.F.); +#7755=CARTESIAN_POINT('',(1.357890387889E1,-7.775731440644E2,-4.06E1)); +#7756=DIRECTION('',(0.E0,1.E0,0.E0)); +#7757=DIRECTION('',(-9.996573249756E-1,0.E0,2.617694830787E-2)); +#7758=AXIS2_PLACEMENT_3D('',#7755,#7756,#7757); +#7759=CYLINDRICAL_SURFACE('',#7758,2.E0); +#7761=ORIENTED_EDGE('',*,*,#7760,.F.); +#7762=ORIENTED_EDGE('',*,*,#7750,.T.); +#7763=ORIENTED_EDGE('',*,*,#5615,.T.); +#7764=ORIENTED_EDGE('',*,*,#5602,.T.); +#7765=EDGE_LOOP('',(#7761,#7762,#7763,#7764)); +#7766=FACE_OUTER_BOUND('',#7765,.F.); +#7768=CARTESIAN_POINT('',(8.492126562435E0,1.385798492198E2,-1.584530884742E2)); +#7769=DIRECTION('',(9.996573249756E-1,0.E0,-2.617694830787E-2)); +#7770=DIRECTION('',(2.617694830787E-2,0.E0,9.996573249756E-1)); +#7771=AXIS2_PLACEMENT_3D('',#7768,#7769,#7770); +#7772=PLANE('',#7771); +#7773=ORIENTED_EDGE('',*,*,#7760,.T.); +#7774=ORIENTED_EDGE('',*,*,#5587,.T.); +#7775=ORIENTED_EDGE('',*,*,#5568,.F.); +#7777=ORIENTED_EDGE('',*,*,#7776,.T.); +#7779=ORIENTED_EDGE('',*,*,#7778,.F.); +#7780=ORIENTED_EDGE('',*,*,#7734,.F.); +#7781=EDGE_LOOP('',(#7773,#7774,#7775,#7777,#7779,#7780)); +#7782=FACE_OUTER_BOUND('',#7781,.F.); +#7784=CARTESIAN_POINT('',(2.239141132863E1,1.485191925801E2,-1.245153393335E2)); +#7785=DIRECTION('',(2.599859414311E-2,-2.509251576925E-2,9.993470061770E-1)); +#7786=DIRECTION('',(-6.003887112879E-1,7.989120006946E-1,3.567927275327E-2)); +#7787=AXIS2_PLACEMENT_3D('',#7784,#7785,#7786); +#7788=CYLINDRICAL_SURFACE('',#7787,1.300005422238E1); +#7790=ORIENTED_EDGE('',*,*,#7789,.F.); +#7791=ORIENTED_EDGE('',*,*,#7776,.F.); +#7793=ORIENTED_EDGE('',*,*,#7792,.T.); +#7795=ORIENTED_EDGE('',*,*,#7794,.F.); +#7796=EDGE_LOOP('',(#7790,#7791,#7793,#7795)); +#7797=FACE_OUTER_BOUND('',#7796,.F.); +#7799=CARTESIAN_POINT('',(0.E0,0.E0,-5.36E1)); +#7800=DIRECTION('',(0.E0,0.E0,1.E0)); +#7801=DIRECTION('',(0.E0,1.E0,0.E0)); +#7802=AXIS2_PLACEMENT_3D('',#7799,#7800,#7801); +#7803=PLANE('',#7802); +#7804=ORIENTED_EDGE('',*,*,#7789,.T.); +#7806=ORIENTED_EDGE('',*,*,#7805,.T.); +#7808=ORIENTED_EDGE('',*,*,#7807,.T.); +#7809=ORIENTED_EDGE('',*,*,#7710,.T.); +#7810=ORIENTED_EDGE('',*,*,#7736,.T.); +#7811=ORIENTED_EDGE('',*,*,#7778,.T.); +#7812=EDGE_LOOP('',(#7804,#7806,#7808,#7809,#7810,#7811)); +#7813=FACE_OUTER_BOUND('',#7812,.F.); +#7815=CARTESIAN_POINT('',(2.929677708166E1,1.999943262360E2,-5.176493993188E1)); +#7816=CARTESIAN_POINT('',(2.812619895709E1,1.999835563520E2,-8.357264506081E1)); +#7817=CARTESIAN_POINT('',(2.695562083252E1,1.999727864680E2,-1.153803501897E2)); +#7818=CARTESIAN_POINT('',(2.578504270794E1,1.999620165841E2,-1.471880553187E2)); +#7819=CARTESIAN_POINT('',(2.929734743617E1,1.998228179048E2,-5.176494003649E1)); +#7820=CARTESIAN_POINT('',(2.812674233134E1,1.998156396401E2,-8.357264517443E1)); +#7821=CARTESIAN_POINT('',(2.695613722650E1,1.998084613754E2,-1.153803503124E2)); +#7822=CARTESIAN_POINT('',(2.578553212166E1,1.998012831107E2,-1.471880554503E2)); +#7823=CARTESIAN_POINT('',(2.930821119868E1,1.933373674978E2,-5.176494198219E1)); +#7824=CARTESIAN_POINT('',(2.813709585430E1,1.934659546402E2,-8.357264728713E1)); +#7825=CARTESIAN_POINT('',(2.696598050993E1,1.935945417825E2,-1.153803525921E2)); +#7826=CARTESIAN_POINT('',(2.579486516555E1,1.937231289249E2,-1.471880578970E2)); +#7827=CARTESIAN_POINT('',(2.851884767462E1,1.806044121254E2,-5.176480059814E1)); +#7828=CARTESIAN_POINT('',(2.738480645416E1,1.809956303509E2,-8.357249376623E1)); +#7829=CARTESIAN_POINT('',(2.625076523371E1,1.813868485763E2,-1.153801869343E2)); +#7830=CARTESIAN_POINT('',(2.511672401326E1,1.817780668018E2,-1.471878801024E2)); +#7831=CARTESIAN_POINT('',(2.375942776459E1,1.653410414652E2,-5.176468456389E1)); +#7832=CARTESIAN_POINT('',(2.279132405969E1,1.660054170767E2,-8.357237694240E1)); +#7833=CARTESIAN_POINT('',(2.182322035479E1,1.666697926882E2,-1.153800693209E2)); +#7834=CARTESIAN_POINT('',(2.085511664990E1,1.673341682997E2,-1.471877616994E2)); +#7835=CARTESIAN_POINT('',(1.724860162127E1,1.573878894172E2,-5.176452784925E1)); +#7836=CARTESIAN_POINT('',(1.643333521068E1,1.581942641454E2,-8.357223517690E1)); +#7837=CARTESIAN_POINT('',(1.561806880008E1,1.590006388736E2,-1.153799425046E2)); +#7838=CARTESIAN_POINT('',(1.480280238949E1,1.598070136019E2,-1.471876498322E2)); +#7839=CARTESIAN_POINT('',(1.258178170092E1,1.539795396799E2,-5.176438255386E1)); +#7840=CARTESIAN_POINT('',(1.185601115248E1,1.548570624531E2,-8.357208665603E1)); +#7841=CARTESIAN_POINT('',(1.113024060404E1,1.557345852262E2,-1.153797907582E2)); +#7842=CARTESIAN_POINT('',(1.040447005559E1,1.566121079994E2,-1.471874948604E2)); +#7843=CARTESIAN_POINT('',(1.147106354425E1,1.532614351534E2,-5.176434919695E1)); +#7844=CARTESIAN_POINT('',(1.076591133871E1,1.541545766028E2,-8.357205223797E1)); +#7845=CARTESIAN_POINT('',(1.006075913318E1,1.550477180523E2,-1.153797552790E2)); +#7846=CARTESIAN_POINT('',(9.355606927654E0,1.559408595017E2,-1.471874583200E2)); +#7847=CARTESIAN_POINT('',(1.132624577165E1,1.531692923877E2,-5.176434487409E1)); +#7848=CARTESIAN_POINT('',(1.062377129852E1,1.540644490704E2,-8.357204777279E1)); +#7849=CARTESIAN_POINT('',(9.921296825389E0,1.549596057532E2,-1.153797506715E2)); +#7850=CARTESIAN_POINT('',(9.218822352261E0,1.558547624360E2,-1.471874535702E2)); +#7851=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#7815,#7816,#7817,#7818),(#7819, +#7820,#7821,#7822),(#7823,#7824,#7825,#7826),(#7827,#7828,#7829,#7830),(#7831, +#7832,#7833,#7834),(#7835,#7836,#7837,#7838),(#7839,#7840,#7841,#7842),(#7843, +#7844,#7845,#7846),(#7847,#7848,#7849,#7850)),.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1, +1,1,1,4),(4,4),(-8.340425205789E-3,0.E0,3.070685694740E-1,6.141371388435E-1, +9.212057082131E-1,1.E0,1.011738252009E0),(-9.804052065458E-3,1.009810576905E0), +.UNSPECIFIED.); +#7852=ORIENTED_EDGE('',*,*,#7794,.T.); +#7854=ORIENTED_EDGE('',*,*,#7853,.T.); +#7856=ORIENTED_EDGE('',*,*,#7855,.T.); +#7858=ORIENTED_EDGE('',*,*,#7857,.T.); +#7859=ORIENTED_EDGE('',*,*,#7805,.F.); +#7860=EDGE_LOOP('',(#7852,#7854,#7856,#7858,#7859)); +#7861=FACE_OUTER_BOUND('',#7860,.F.); +#7863=CARTESIAN_POINT('',(9.682501168459E0,1.561017023578E2,-1.468215883311E2)); +#7864=CARTESIAN_POINT('',(9.874798419585E0,1.562076499716E2,-1.465296468697E2)); +#7865=CARTESIAN_POINT('',(1.077846027646E1,1.567111920516E2,-1.451206250895E2)); +#7866=CARTESIAN_POINT('',(1.229159916660E1,1.575988297877E2,-1.424301550050E2)); +#7867=CARTESIAN_POINT('',(1.402498026286E1,1.586718097315E2,-1.385045901620E2)); +#7868=CARTESIAN_POINT('',(1.545910967421E1,1.595746324809E2,-1.341049736771E2)); +#7869=CARTESIAN_POINT('',(1.652633041040E1,1.602058313933E2,-1.290377782585E2)); +#7870=CARTESIAN_POINT('',(1.686779371169E1,1.603118304980E2,-1.250745696373E2)); +#7871=CARTESIAN_POINT('',(1.689443039317E1,1.602346335698E2,-1.228466524837E2)); +#7872=CARTESIAN_POINT('',(1.689527236687E1,1.602233614935E2,-1.225795323469E2)); +#7873=CARTESIAN_POINT('',(5.570868379963E0,1.537993526249E2,-1.437773194313E2)); +#7874=CARTESIAN_POINT('',(5.738572417986E0,1.539045803744E2,-1.435191396981E2)); +#7875=CARTESIAN_POINT('',(6.526201700840E0,1.544042494024E2,-1.422738694961E2)); +#7876=CARTESIAN_POINT('',(7.841264191196E0,1.552811007715E2,-1.399032751118E2)); +#7877=CARTESIAN_POINT('',(9.341560488073E0,1.563333025095E2,-1.364613117777E2)); +#7878=CARTESIAN_POINT('',(1.057855058500E1,1.572123511788E2,-1.326210186399E2)); +#7879=CARTESIAN_POINT('',(1.149704969064E1,1.578230164455E2,-1.282145843700E2)); +#7880=CARTESIAN_POINT('',(1.179172749383E1,1.579250288380E2,-1.247763809227E2)); +#7881=CARTESIAN_POINT('',(1.181590412466E1,1.578505891010E2,-1.228434702236E2)); +#7882=CARTESIAN_POINT('',(1.181678819634E1,1.578397248581E2,-1.226117128133E2)); +#7883=CARTESIAN_POINT('',(3.750213293185E0,1.491131186380E2,-1.412876654446E2)); +#7884=CARTESIAN_POINT('',(3.896207930340E0,1.492168811657E2,-1.410481248999E2)); +#7885=CARTESIAN_POINT('',(4.579968781197E0,1.497086669311E2,-1.398960368263E2)); +#7886=CARTESIAN_POINT('',(5.705946994019E0,1.505635635821E2,-1.377322028622E2)); +#7887=CARTESIAN_POINT('',(6.964893451798E0,1.515734730770E2,-1.346595365683E2)); +#7888=CARTESIAN_POINT('',(7.985000168552E0,1.524041316602E2,-1.313025169368E2)); +#7889=CARTESIAN_POINT('',(8.734018480274E0,1.529730024648E2,-1.275190477771E2)); +#7890=CARTESIAN_POINT('',(8.977669491827E0,1.530669002489E2,-1.246009425333E2)); +#7891=CARTESIAN_POINT('',(9.002630227264E0,1.529980725364E2,-1.229599037881E2)); +#7892=CARTESIAN_POINT('',(9.004019156055E0,1.529880384034E2,-1.227631104379E2)); +#7893=CARTESIAN_POINT('',(4.870676677690E0,1.437164155280E2,-1.402416610763E2)); +#7894=CARTESIAN_POINT('',(5.005597972470E0,1.438184906951E2,-1.399989812814E2)); +#7895=CARTESIAN_POINT('',(5.634745085429E0,1.443011980347E2,-1.388362313244E2)); +#7896=CARTESIAN_POINT('',(6.648151563838E0,1.451308114633E2,-1.366922100763E2)); +#7897=CARTESIAN_POINT('',(7.743667160445E0,1.460920168858E2,-1.337426634564E2)); +#7898=CARTESIAN_POINT('',(8.604593680183E0,1.468669490736E2,-1.306202945458E2)); +#7899=CARTESIAN_POINT('',(9.223892214758E0,1.473876890541E2,-1.271995388049E2)); +#7900=CARTESIAN_POINT('',(9.430496383484E0,1.474722419928E2,-1.246109020569E2)); +#7901=CARTESIAN_POINT('',(9.459205381556E0,1.474098771309E2,-1.231543757210E2)); +#7902=CARTESIAN_POINT('',(9.461381646312E0,1.474007989587E2,-1.229796623897E2)); +#7903=(BOUNDED_SURFACE()B_SPLINE_SURFACE(3,3,((#7863,#7864,#7865,#7866,#7867, +#7868,#7869,#7870,#7871,#7872),(#7873,#7874,#7875,#7876,#7877,#7878,#7879,#7880, +#7881,#7882),(#7883,#7884,#7885,#7886,#7887,#7888,#7889,#7890,#7891,#7892),( +#7893,#7894,#7895,#7896,#7897,#7898,#7899,#7900,#7901,#7902)),.UNSPECIFIED.,.F., +.F.,.F.)B_SPLINE_SURFACE_WITH_KNOTS((4,4),(4,1,1,1,1,1,1,4),(0.E0,1.E0),( +8.944102904206E-1,8.993956907021E-1,9.181672259717E-1,9.371508953900E-1, +9.562759719594E-1,9.767542421932E-1,1.E0,1.003169488103E0),.UNSPECIFIED.)GEOMETRIC_REPRESENTATION_ITEM()RATIONAL_B_SPLINE_SURFACE(((1.098023787629E0, +1.098023787629E0,1.098023787629E0,1.098023787629E0,1.098023787629E0, +1.098023787629E0,1.098023787629E0,1.098023787629E0,1.098023787629E0, +1.098023787629E0),(9.673254041236E-1,9.673254041236E-1,9.673254041236E-1, +9.673254041236E-1,9.673254041236E-1,9.673254041236E-1,9.673254041236E-1, +9.673254041236E-1,9.673254041236E-1,9.673254041236E-1),(9.673254041236E-1, +9.673254041236E-1,9.673254041236E-1,9.673254041236E-1,9.673254041236E-1, +9.673254041236E-1,9.673254041236E-1,9.673254041236E-1,9.673254041236E-1, +9.673254041236E-1),(1.098023787629E0,1.098023787629E0,1.098023787629E0, +1.098023787629E0,1.098023787629E0,1.098023787629E0,1.098023787629E0, +1.098023787629E0,1.098023787629E0,1.098023787629E0)))REPRESENTATION_ITEM('')SURFACE()); +#7905=ORIENTED_EDGE('',*,*,#7904,.F.); +#7906=ORIENTED_EDGE('',*,*,#7853,.F.); +#7907=ORIENTED_EDGE('',*,*,#7792,.F.); +#7908=ORIENTED_EDGE('',*,*,#5566,.F.); +#7910=ORIENTED_EDGE('',*,*,#7909,.T.); +#7911=EDGE_LOOP('',(#7905,#7906,#7907,#7908,#7910)); +#7912=FACE_OUTER_BOUND('',#7911,.F.); +#7914=CARTESIAN_POINT('',(-2.765901755367E1,1.608880603739E2, +-1.763439644426E2)); +#7915=CARTESIAN_POINT('',(-2.075476943016E1,1.608122036726E2, +-1.762858450323E2)); +#7916=CARTESIAN_POINT('',(-8.454444108698E0,1.614628242626E2, +-1.762393183946E2)); +#7917=CARTESIAN_POINT('',(3.005139172727E0,1.660505259999E2,-1.763238281814E2)); +#7918=CARTESIAN_POINT('',(9.072906861480E0,1.733009012707E2,-1.763974722640E2)); +#7919=CARTESIAN_POINT('',(1.200610366459E1,1.806176810632E2,-1.764411281347E2)); +#7920=CARTESIAN_POINT('',(1.351271395652E1,1.897539466562E2,-1.764673362264E2)); +#7921=CARTESIAN_POINT('',(1.372854785084E1,1.966146402705E2,-1.764637783239E2)); +#7922=CARTESIAN_POINT('',(1.371085680675E1,2.001464885809E2,-1.764549537952E2)); +#7923=CARTESIAN_POINT('',(-2.767324632536E1,1.598027098792E2, +-1.751747342264E2)); +#7924=CARTESIAN_POINT('',(-2.062281602533E1,1.597458260353E2, +-1.751394132438E2)); +#7925=CARTESIAN_POINT('',(-8.060077665924E0,1.604737749281E2, +-1.751088748185E2)); +#7926=CARTESIAN_POINT('',(3.659968523038E0,1.652493149763E2,-1.751608672116E2)); +#7927=CARTESIAN_POINT('',(9.883890904663E0,1.726987336684E2,-1.752028566543E2)); +#7928=CARTESIAN_POINT('',(1.290544444039E1,1.801915441857E2,-1.752266451834E2)); +#7929=CARTESIAN_POINT('',(1.446765473821E1,1.895349347358E2,-1.752419430326E2)); +#7930=CARTESIAN_POINT('',(1.469494302961E1,1.965493309474E2,-1.752403913698E2)); +#7931=CARTESIAN_POINT('',(1.467680945206E1,2.001611801990E2,-1.752353527717E2)); +#7932=CARTESIAN_POINT('',(-2.770015752854E1,1.577741571126E2, +-1.727660493076E2)); +#7933=CARTESIAN_POINT('',(-2.036849669717E1,1.577453162407E2, +-1.727658708325E2)); +#7934=CARTESIAN_POINT('',(-7.303701259998E0,1.586062283115E2, +-1.727598657528E2)); +#7935=CARTESIAN_POINT('',(4.909298231456E0,1.637271095985E2,-1.727598152074E2)); +#7936=CARTESIAN_POINT('',(1.143022138915E1,1.715497886321E2,-1.727512596475E2)); +#7937=CARTESIAN_POINT('',(1.462048262197E1,1.793767809189E2,-1.727430653385E2)); +#7938=CARTESIAN_POINT('',(1.628851390727E1,1.891160655078E2,-1.727402979498E2)); +#7939=CARTESIAN_POINT('',(1.653719486469E1,1.964247809149E2,-1.727412796667E2)); +#7940=CARTESIAN_POINT('',(1.651800739243E1,2.001895063998E2,-1.727418983418E2)); +#7941=CARTESIAN_POINT('',(-2.775164776832E1,1.540208468372E2, +-1.678042927963E2)); +#7942=CARTESIAN_POINT('',(-1.988436450703E1,1.540280315020E2, +-1.678661972915E2)); +#7943=CARTESIAN_POINT('',(-5.870107963548E0,1.551067095095E2, +-1.679074792152E2)); +#7944=CARTESIAN_POINT('',(7.265613555960E0,1.608505901111E2,-1.678257603371E2)); +#7945=CARTESIAN_POINT('',(1.434140298597E1,1.693681015192E2,-1.677338056419E2)); +#7946=CARTESIAN_POINT('',(1.784569608953E1,1.778249001291E2,-1.676713329687E2)); +#7947=CARTESIAN_POINT('',(1.971008320915E1,1.883165768294E2,-1.676360059174E2)); +#7948=CARTESIAN_POINT('',(1.999839405673E1,1.961873518288E2,-1.676385898444E2)); +#7949=CARTESIAN_POINT('',(1.997750550349E1,2.002439385425E2,-1.676470657218E2)); +#7950=CARTESIAN_POINT('',(-2.780748479731E1,1.503336499827E2, +-1.611169282866E2)); +#7951=CARTESIAN_POINT('',(-1.935750941830E1,1.503080880715E2, +-1.611789702449E2)); +#7952=CARTESIAN_POINT('',(-4.326275477491E0,1.514942933728E2, +-1.612265723698E2)); +#7953=CARTESIAN_POINT('',(9.785128849798E0,1.578137388195E2,-1.611540498783E2)); +#7954=CARTESIAN_POINT('',(1.744357076695E1,1.670476152338E2,-1.610637939134E2)); +#7955=CARTESIAN_POINT('',(2.127150390932E1,1.761704219745E2,-1.609978664369E2)); +#7956=CARTESIAN_POINT('',(2.333504416495E1,1.874656671485E2,-1.609534290077E2)); +#7957=CARTESIAN_POINT('',(2.366203588672E1,1.959366582185E2,-1.609470342900E2)); +#7958=CARTESIAN_POINT('',(2.363911355079E1,2.003026331164E2,-1.609505554619E2)); +#7959=CARTESIAN_POINT('',(-2.784109662503E1,1.487466030952E2, +-1.527307466228E2)); +#7960=CARTESIAN_POINT('',(-1.904023998245E1,1.487021776842E2, +-1.527277329948E2)); +#7961=CARTESIAN_POINT('',(-3.448363928181E0,1.499019697710E2, +-1.527202000074E2)); +#7962=CARTESIAN_POINT('',(1.112005533321E1,1.564004727048E2,-1.527089472426E2)); +#7963=CARTESIAN_POINT('',(1.904411835879E1,1.659176667341E2,-1.526916480946E2)); +#7964=CARTESIAN_POINT('',(2.301318242648E1,1.753375755380E2,-1.526771854491E2)); +#7965=CARTESIAN_POINT('',(2.515536629129E1,1.870268104234E2,-1.526674793822E2)); +#7966=CARTESIAN_POINT('',(2.549236032096E1,1.958083714158E2,-1.526667131286E2)); +#7967=CARTESIAN_POINT('',(2.546791357409E1,2.003325930711E2,-1.526680651927E2)); +#7968=CARTESIAN_POINT('',(-2.785253557921E1,1.484211660836E2, +-1.471444443536E2)); +#7969=CARTESIAN_POINT('',(-1.893165897135E1,1.483787545889E2, +-1.471415965146E2)); +#7970=CARTESIAN_POINT('',(-3.184015272982E0,1.495650809829E2, +-1.471411980195E2)); +#7971=CARTESIAN_POINT('',(1.144571719435E1,1.560425663766E2,-1.471477234782E2)); +#7972=CARTESIAN_POINT('',(1.939396554154E1,1.655894706886E2,-1.471432051077E2)); +#7973=CARTESIAN_POINT('',(2.336989091289E1,1.750711897691E2,-1.471366948406E2)); +#7974=CARTESIAN_POINT('',(2.550850927290E1,1.868751822476E2,-1.471316453656E2)); +#7975=CARTESIAN_POINT('',(2.583994120636E1,1.957636993792E2,-1.471307908007E2)); +#7976=CARTESIAN_POINT('',(2.581517359956E1,2.003430702180E2,-1.471311605551E2)); +#7977=CARTESIAN_POINT('',(-2.785652668499E1,1.483554017824E2, +-1.446388158077E2)); +#7978=CARTESIAN_POINT('',(-1.889356913647E1,1.483138274279E2, +-1.446387346690E2)); +#7979=CARTESIAN_POINT('',(-3.098827261633E0,1.494894702758E2, +-1.446444014997E2)); +#7980=CARTESIAN_POINT('',(1.153311084423E1,1.559420614599E2,-1.446575292490E2)); +#7981=CARTESIAN_POINT('',(1.947617346613E1,1.654862253958E2,-1.446565991846E2)); +#7982=CARTESIAN_POINT('',(2.344576626965E1,1.749819098338E2,-1.446519982549E2)); +#7983=CARTESIAN_POINT('',(2.557666430641E1,1.868221314531E2,-1.446476765780E2)); +#7984=CARTESIAN_POINT('',(2.590422951547E1,1.957480358775E2,-1.446463319635E2)); +#7985=CARTESIAN_POINT('',(2.587936206881E1,2.003467529217E2,-1.446461890795E2)); +#7986=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#7914,#7915,#7916,#7917,#7918,#7919, +#7920,#7921,#7922),(#7923,#7924,#7925,#7926,#7927,#7928,#7929,#7930,#7931),( +#7932,#7933,#7934,#7935,#7936,#7937,#7938,#7939,#7940),(#7941,#7942,#7943,#7944, +#7945,#7946,#7947,#7948,#7949),(#7950,#7951,#7952,#7953,#7954,#7955,#7956,#7957, +#7958),(#7959,#7960,#7961,#7962,#7963,#7964,#7965,#7966,#7967),(#7968,#7969, +#7970,#7971,#7972,#7973,#7974,#7975,#7976),(#7977,#7978,#7979,#7980,#7981,#7982, +#7983,#7984,#7985)),.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1,1,1,4),(4,1,1,1,1,1,4),( +-1.584827556396E-1,-5.546263180595E-3,1.506026036646E-1,4.629003373551E-1, +7.751980710456E-1,1.023659194163E0),(-4.145425470516E-3,1.25E-1,2.5E-1,3.125E-1, +3.75E-1,4.375E-1,5.041903433540E-1),.UNSPECIFIED.); +#7988=ORIENTED_EDGE('',*,*,#7987,.F.); +#7990=ORIENTED_EDGE('',*,*,#7989,.F.); +#7992=ORIENTED_EDGE('',*,*,#7991,.F.); +#7994=ORIENTED_EDGE('',*,*,#7993,.F.); +#7995=ORIENTED_EDGE('',*,*,#7855,.F.); +#7996=ORIENTED_EDGE('',*,*,#7904,.T.); +#7997=EDGE_LOOP('',(#7988,#7990,#7992,#7994,#7995,#7996)); +#7998=FACE_OUTER_BOUND('',#7997,.F.); +#8000=CARTESIAN_POINT('',(-2.768536422368E1,1.538973485885E2, +-1.678400899359E2)); +#8001=CARTESIAN_POINT('',(-2.745545467797E1,1.538983000144E2, +-1.678435694451E2)); +#8002=CARTESIAN_POINT('',(-2.637076785395E1,1.539004696048E2, +-1.678517684063E2)); +#8003=CARTESIAN_POINT('',(-2.448510334477E1,1.538859286121E2, +-1.677984781229E2)); +#8004=CARTESIAN_POINT('',(-2.207997770508E1,1.538365824838E2, +-1.675990228049E2)); +#8005=CARTESIAN_POINT('',(-1.980926860812E1,1.537675903705E2, +-1.672921224815E2)); +#8006=CARTESIAN_POINT('',(-1.764887624450E1,1.536869892850E2, +-1.668904843644E2)); +#8007=CARTESIAN_POINT('',(-1.558653476692E1,1.536020325590E2, +-1.664044907777E2)); +#8008=CARTESIAN_POINT('',(-1.360838712162E1,1.535190969206E2, +-1.658409248838E2)); +#8009=CARTESIAN_POINT('',(-1.170234001114E1,1.534441441861E2, +-1.652040716750E2)); +#8010=CARTESIAN_POINT('',(-9.860117254186E0,1.533831266787E2, +-1.644970679820E2)); +#8011=CARTESIAN_POINT('',(-8.078647391133E0,1.533421955283E2, +-1.637236187592E2)); +#8012=CARTESIAN_POINT('',(-6.356172855021E0,1.533275706034E2, +-1.628873872536E2)); +#8013=CARTESIAN_POINT('',(-4.692839282103E0,1.533455098246E2, +-1.619928487001E2)); +#8014=CARTESIAN_POINT('',(-3.087769798547E0,1.534021681536E2, +-1.610435493650E2)); +#8015=CARTESIAN_POINT('',(-1.544912857114E0,1.535006557045E2, +-1.600456752252E2)); +#8016=CARTESIAN_POINT('',(-4.975996495484E-2,1.536437712320E2, +-1.589935639305E2)); +#8017=CARTESIAN_POINT('',(1.448742266252E0,1.538400807168E2,-1.578489411369E2)); +#8018=CARTESIAN_POINT('',(3.009283524061E0,1.541075760201E2,-1.565509485439E2)); +#8019=CARTESIAN_POINT('',(4.662489019912E0,1.544689504179E2,-1.550421564547E2)); +#8020=CARTESIAN_POINT('',(6.409771728453E0,1.549459224212E2,-1.532740212390E2)); +#8021=CARTESIAN_POINT('',(8.235887427050E0,1.555551710992E2,-1.511980800720E2)); +#8022=CARTESIAN_POINT('',(1.002085913304E1,1.562757026318E2,-1.488829449778E2)); +#8023=CARTESIAN_POINT('',(1.115126808063E1,1.568149579183E2,-1.471893948270E2)); +#8024=CARTESIAN_POINT('',(1.168049901002E1,1.570853716637E2,-1.463330901272E2)); +#8025=CARTESIAN_POINT('',(-2.759388683996E1,1.519298478261E2, +-1.619121994761E2)); +#8026=CARTESIAN_POINT('',(-2.739450877842E1,1.519307892027E2, +-1.619152110080E2)); +#8027=CARTESIAN_POINT('',(-2.645384001193E1,1.519329366184E2, +-1.619223077753E2)); +#8028=CARTESIAN_POINT('',(-2.481829049170E1,1.519185414385E2, +-1.618761837395E2)); +#8029=CARTESIAN_POINT('',(-2.273140904233E1,1.518695914952E2, +-1.617034492479E2)); +#8030=CARTESIAN_POINT('',(-2.076029761816E1,1.518010169E2,-1.614375120803E2)); +#8031=CARTESIAN_POINT('',(-1.888400210190E1,1.517207258622E2, +-1.610892594625E2)); +#8032=CARTESIAN_POINT('',(-1.709187030975E1,1.516358909528E2, +-1.606675658401E2)); +#8033=CARTESIAN_POINT('',(-1.537187691668E1,1.515528582056E2, +-1.601781857257E2)); +#8034=CARTESIAN_POINT('',(-1.371353157651E1,1.514776084454E2, +-1.596247030904E2)); +#8035=CARTESIAN_POINT('',(-1.210966619864E1,1.514161660522E2, +-1.590097004729E2)); +#8036=CARTESIAN_POINT('',(-1.055764350630E1,1.513748157422E2, +-1.583362461253E2)); +#8037=CARTESIAN_POINT('',(-9.056010516682E0,1.513599753087E2, +-1.576073847904E2)); +#8038=CARTESIAN_POINT('',(-7.604897965820E0,1.513781823200E2, +-1.568268163093E2)); +#8039=CARTESIAN_POINT('',(-6.203931495711E0,1.514359055172E2, +-1.559976466650E2)); +#8040=CARTESIAN_POINT('',(-4.856953384194E0,1.515364503739E2, +-1.551253822134E2)); +#8041=CARTESIAN_POINT('',(-3.551551871769E0,1.516827489323E2, +-1.542051568754E2)); +#8042=CARTESIAN_POINT('',(-2.243431378420E0,1.518835447081E2, +-1.532036264176E2)); +#8043=CARTESIAN_POINT('',(-8.816870214962E-1,1.521571045443E2, +-1.520677151287E2)); +#8044=CARTESIAN_POINT('',(5.599425504329E-1,1.525262734141E2, +-1.507474855774E2)); +#8045=CARTESIAN_POINT('',(2.082011401108E0,1.530123199443E2,-1.492011695195E2)); +#8046=CARTESIAN_POINT('',(3.670724739961E0,1.536310728126E2,-1.473872055043E2)); +#8047=CARTESIAN_POINT('',(5.221574740151E0,1.543604252146E2,-1.453660607808E2)); +#8048=CARTESIAN_POINT('',(6.202080652762E0,1.549035066015E2,-1.438896387751E2)); +#8049=CARTESIAN_POINT('',(6.660746514537E0,1.551749924773E2,-1.431437564140E2)); +#8050=CARTESIAN_POINT('',(-2.752527399429E1,1.467191584464E2, +-1.584678839215E2)); +#8051=CARTESIAN_POINT('',(-2.734889461186E1,1.467200732083E2, +-1.584704760262E2)); +#8052=CARTESIAN_POINT('',(-2.651641701172E1,1.467221618970E2, +-1.584765908244E2)); +#8053=CARTESIAN_POINT('',(-2.506590622091E1,1.467081528850E2, +-1.584368778990E2)); +#8054=CARTESIAN_POINT('',(-2.320570447068E1,1.466602521899E2, +-1.582869190050E2)); +#8055=CARTESIAN_POINT('',(-2.143820259620E1,1.465927833414E2, +-1.580541895608E2)); +#8056=CARTESIAN_POINT('',(-1.974419605114E1,1.465133134276E2, +-1.577467044974E2)); +#8057=CARTESIAN_POINT('',(-1.811407577100E1,1.464288011347E2, +-1.573707389895E2)); +#8058=CARTESIAN_POINT('',(-1.653710038276E1,1.463455112067E2, +-1.569298237003E2)); +#8059=CARTESIAN_POINT('',(-1.500395287195E1,1.462694748095E2, +-1.564255188083E2)); +#8060=CARTESIAN_POINT('',(-1.350840220354E1,1.462069071574E2, +-1.558584284939E2)); +#8061=CARTESIAN_POINT('',(-1.204843620728E1,1.461644467535E2, +-1.552295016450E2)); +#8062=CARTESIAN_POINT('',(-1.062363803139E1,1.461490355714E2, +-1.545398208095E2)); +#8063=CARTESIAN_POINT('',(-9.234177504386E0,1.461679517926E2, +-1.537904494854E2)); +#8064=CARTESIAN_POINT('',(-7.884433993199E0,1.462284951653E2, +-1.529845093794E2)); +#8065=CARTESIAN_POINT('',(-6.582908789451E0,1.463344885493E2, +-1.521286025924E2)); +#8066=CARTESIAN_POINT('',(-5.320696531746E0,1.464892169828E2, +-1.512189651622E2)); +#8067=CARTESIAN_POINT('',(-4.058343167696E0,1.467018941613E2, +-1.502242367945E2)); +#8068=CARTESIAN_POINT('',(-2.750705291948E0,1.469915151840E2, +-1.490938128143E2)); +#8069=CARTESIAN_POINT('',(-1.378173408546E0,1.473813267764E2, +-1.477818778806E2)); +#8070=CARTESIAN_POINT('',(5.155225644068E-2,1.478914061008E2, +-1.462554947896E2)); +#8071=CARTESIAN_POINT('',(1.519252822773E0,1.485353296750E2,-1.444835774260E2)); +#8072=CARTESIAN_POINT('',(2.926820057977E0,1.492880430898E2,-1.425314136350E2)); +#8073=CARTESIAN_POINT('',(3.796818957265E0,1.498412574441E2,-1.411304763313E2)); +#8074=CARTESIAN_POINT('',(4.199107194811E0,1.501155827284E2,-1.404304535831E2)); +#8075=CARTESIAN_POINT('',(-2.750886855887E1,1.404936764745E2, +-1.589801343742E2)); +#8076=CARTESIAN_POINT('',(-2.733811946803E1,1.404945594386E2, +-1.589825349735E2)); +#8077=CARTESIAN_POINT('',(-2.653173726239E1,1.404965779630E2, +-1.589882079748E2)); +#8078=CARTESIAN_POINT('',(-2.512205554106E1,1.404830303259E2, +-1.589514092563E2)); +#8079=CARTESIAN_POINT('',(-2.330002748036E1,1.404363832224E2, +-1.588105405511E2)); +#8080=CARTESIAN_POINT('',(-2.155307166140E1,1.403702354669E2, +-1.585890618300E2)); +#8081=CARTESIAN_POINT('',(-1.986158876866E1,1.402917465928E2, +-1.582922917816E2)); +#8082=CARTESIAN_POINT('',(-1.821599621381E1,1.402076197466E2, +-1.579239265180E2)); +#8083=CARTESIAN_POINT('',(-1.660573970601E1,1.401240225513E2, +-1.574850287014E2)); +#8084=CARTESIAN_POINT('',(-1.502174415758E1,1.400470463180E2, +-1.569746774387E2)); +#8085=CARTESIAN_POINT('',(-1.345814381408E1,1.399831342605E2, +-1.563909205474E2)); +#8086=CARTESIAN_POINT('',(-1.191347520326E1,1.399393475695E2, +-1.557320112537E2)); +#8087=CARTESIAN_POINT('',(-1.038864604093E1,1.399232544843E2, +-1.549965653696E2)); +#8088=CARTESIAN_POINT('',(-8.883902522563E0,1.399430180355E2, +-1.541822765551E2)); +#8089=CARTESIAN_POINT('',(-7.410595977853E0,1.400069308189E2, +-1.532927315237E2)); +#8090=CARTESIAN_POINT('',(-5.984659433698E0,1.401194338421E2, +-1.523369348821E2)); +#8091=CARTESIAN_POINT('',(-4.600604050317E0,1.402842338863E2, +-1.513120593010E2)); +#8092=CARTESIAN_POINT('',(-3.219830501440E0,1.405111063955E2, +-1.501849338056E2)); +#8093=CARTESIAN_POINT('',(-1.798469586207E0,1.408199165542E2, +-1.489010564440E2)); +#8094=CARTESIAN_POINT('',(-3.230069365236E-1,1.412343910824E2, +-1.474136009431E2)); +#8095=CARTESIAN_POINT('',(1.186737570693E0,1.417731836376E2,-1.456967401239E2)); +#8096=CARTESIAN_POINT('',(2.701567102287E0,1.424471799651E2,-1.437289573003E2)); +#8097=CARTESIAN_POINT('',(4.117966617247E0,1.432278039984E2,-1.415912647159E2)); +#8098=CARTESIAN_POINT('',(4.964113797365E0,1.437931247366E2,-1.400918869906E2)); +#8099=CARTESIAN_POINT('',(5.348322228838E0,1.440708424101E2,-1.393535488724E2)); +#8100=(BOUNDED_SURFACE()B_SPLINE_SURFACE(3,3,((#8000,#8001,#8002,#8003,#8004, +#8005,#8006,#8007,#8008,#8009,#8010,#8011,#8012,#8013,#8014,#8015,#8016,#8017, +#8018,#8019,#8020,#8021,#8022,#8023,#8024),(#8025,#8026,#8027,#8028,#8029,#8030, +#8031,#8032,#8033,#8034,#8035,#8036,#8037,#8038,#8039,#8040,#8041,#8042,#8043, +#8044,#8045,#8046,#8047,#8048,#8049),(#8050,#8051,#8052,#8053,#8054,#8055,#8056, +#8057,#8058,#8059,#8060,#8061,#8062,#8063,#8064,#8065,#8066,#8067,#8068,#8069, +#8070,#8071,#8072,#8073,#8074),(#8075,#8076,#8077,#8078,#8079,#8080,#8081,#8082, +#8083,#8084,#8085,#8086,#8087,#8088,#8089,#8090,#8091,#8092,#8093,#8094,#8095, +#8096,#8097,#8098,#8099)),.UNSPECIFIED.,.F.,.F.,.F.)B_SPLINE_SURFACE_WITH_KNOTS( +(4,4),(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0,1.E0),( +-5.026575974010E-3,0.E0,1.869780474703E-2,3.634360665471E-2,5.336374255441E-2, +6.985181998337E-2,8.594324651670E-2,1.017644685029E-1,1.174368672858E-1, +1.330581164831E-1,1.486713224895E-1,1.642785029198E-1,1.799278695868E-1, +1.956724773613E-1,2.112966463721E-1,2.266874114486E-1,2.425340944240E-1, +2.598505094852E-1,2.790484355486E-1,3.001851504498E-1,3.234340270725E-1, +3.490154003843E-1,3.733618853352E-1),.UNSPECIFIED.)GEOMETRIC_REPRESENTATION_ITEM()RATIONAL_B_SPLINE_SURFACE(((1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0),(9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1),(9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1),( +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0)))REPRESENTATION_ITEM('')SURFACE()); +#8101=ORIENTED_EDGE('',*,*,#5564,.F.); +#8103=ORIENTED_EDGE('',*,*,#8102,.T.); +#8104=ORIENTED_EDGE('',*,*,#7987,.T.); +#8105=ORIENTED_EDGE('',*,*,#7909,.F.); +#8106=EDGE_LOOP('',(#8101,#8103,#8104,#8105)); +#8107=FACE_OUTER_BOUND('',#8106,.F.); +#8109=CARTESIAN_POINT('',(-6.567161149244E1,1.570847155375E2, +-1.463333439139E2)); +#8110=CARTESIAN_POINT('',(-6.513408061200E1,1.568100243255E2, +-1.472030231098E2)); +#8111=CARTESIAN_POINT('',(-6.405943599515E1,1.562980100031E2, +-1.488110802753E2)); +#8112=CARTESIAN_POINT('',(-6.240037707260E1,1.556235871291E2, +-1.509759618337E2)); +#8113=CARTESIAN_POINT('',(-6.078961002005E1,1.550696418197E2, +-1.528437790223E2)); +#8114=CARTESIAN_POINT('',(-5.925129050720E1,1.546244345612E2, +-1.544508406355E2)); +#8115=CARTESIAN_POINT('',(-5.779609883341E1,1.542742722941E2, +-1.558362743114E2)); +#8116=CARTESIAN_POINT('',(-5.639524072877E1,1.539978302723E2, +-1.570633229841E2)); +#8117=CARTESIAN_POINT('',(-5.499910644135E1,1.537770376673E2, +-1.581934024524E2)); +#8118=CARTESIAN_POINT('',(-5.356512181172E1,1.536026701374E2, +-1.592659499973E2)); +#8119=CARTESIAN_POINT('',(-5.207918041422E1,1.534726221719E2, +-1.602903069931E2)); +#8120=CARTESIAN_POINT('',(-5.054061288955E1,1.533854208470E2, +-1.612647764757E2)); +#8121=CARTESIAN_POINT('',(-4.892979176981E1,1.533378268304E2, +-1.621982535447E2)); +#8122=CARTESIAN_POINT('',(-4.717602388231E1,1.533273157481E2, +-1.631208182854E2)); +#8123=CARTESIAN_POINT('',(-4.517866292449E1,1.533542185488E2, +-1.640594951632E2)); +#8124=CARTESIAN_POINT('',(-4.285333062008E1,1.534215522941E2, +-1.650094840499E2)); +#8125=CARTESIAN_POINT('',(-4.020259514849E1,1.535253674966E2, +-1.659130785526E2)); +#8126=CARTESIAN_POINT('',(-3.729530552751E1,1.536489699825E2, +-1.666967662881E2)); +#8127=CARTESIAN_POINT('',(-3.416428002271E1,1.537707277073E2, +-1.673151599849E2)); +#8128=CARTESIAN_POINT('',(-3.072329582742E1,1.538697672317E2, +-1.677398097642E2)); +#8129=CARTESIAN_POINT('',(-2.805887323352E1,1.539009761054E2, +-1.678539165500E2)); +#8130=CARTESIAN_POINT('',(-2.653722853075E1,1.538979104715E2, +-1.678424072919E2)); +#8131=CARTESIAN_POINT('',(-2.630736707304E1,1.538969505920E2, +-1.678389279278E2)); +#8132=CARTESIAN_POINT('',(-6.065257662064E1,1.551739509897E2, +-1.431441322467E2)); +#8133=CARTESIAN_POINT('',(-6.018671261060E1,1.548981706122E2, +-1.439016790598E2)); +#8134=CARTESIAN_POINT('',(-5.925455280696E1,1.543824925766E2, +-1.453036150817E2)); +#8135=CARTESIAN_POINT('',(-5.781318781921E1,1.536999980761E2, +-1.471934871016E2)); +#8136=CARTESIAN_POINT('',(-5.641204599001E1,1.531376395513E2, +-1.488254527716E2)); +#8137=CARTESIAN_POINT('',(-5.507249040587E1,1.526844629334E2, +-1.502305566272E2)); +#8138=CARTESIAN_POINT('',(-5.380400481662E1,1.523270553611E2, +-1.514426650960E2)); +#8139=CARTESIAN_POINT('',(-5.258201379617E1,1.520445036592E2, +-1.525164691105E2)); +#8140=CARTESIAN_POINT('',(-5.136352823274E1,1.518186732781E2, +-1.535054330439E2)); +#8141=CARTESIAN_POINT('',(-5.011162917477E1,1.516403363311E2, +-1.544438449473E2)); +#8142=CARTESIAN_POINT('',(-4.881423267092E1,1.515074294981E2, +-1.553397018559E2)); +#8143=CARTESIAN_POINT('',(-4.747103468666E1,1.514184442367E2, +-1.561913775841E2)); +#8144=CARTESIAN_POINT('',(-4.606511324162E1,1.513699818098E2, +-1.570065980555E2)); +#8145=CARTESIAN_POINT('',(-4.453532869953E1,1.513593380221E2, +-1.578114206937E2)); +#8146=CARTESIAN_POINT('',(-4.279436978762E1,1.513865974128E2, +-1.586293258311E2)); +#8147=CARTESIAN_POINT('',(-4.076919534581E1,1.514545174659E2, +-1.594560769361E2)); +#8148=CARTESIAN_POINT('',(-3.846270631992E1,1.515587932209E2, +-1.602414533548E2)); +#8149=CARTESIAN_POINT('',(-3.593528504388E1,1.516824336303E2, +-1.609217842009E2)); +#8150=CARTESIAN_POINT('',(-3.321564826215E1,1.518037751483E2, +-1.614580399638E2)); +#8151=CARTESIAN_POINT('',(-3.022898295820E1,1.519021454530E2, +-1.618259313279E2)); +#8152=CARTESIAN_POINT('',(-2.791778688635E1,1.519330392571E2, +-1.619246908087E2)); +#8153=CARTESIAN_POINT('',(-2.659816523774E1,1.519300053707E2, +-1.619147288581E2)); +#8154=CARTESIAN_POINT('',(-2.639882747447E1,1.519290558371E2, +-1.619117174376E2)); +#8155=CARTESIAN_POINT('',(-5.819142970477E1,1.501148011251E2, +-1.404310966611E2)); +#8156=CARTESIAN_POINT('',(-5.778281127819E1,1.498361369536E2, +-1.411420972635E2)); +#8157=CARTESIAN_POINT('',(-5.695552651351E1,1.493107584691E2, +-1.424726188385E2)); +#8158=CARTESIAN_POINT('',(-5.564859531286E1,1.486068926446E2, +-1.442963362688E2)); +#8159=CARTESIAN_POINT('',(-5.435707576917E1,1.480222583675E2, +-1.458883737289E2)); +#8160=CARTESIAN_POINT('',(-5.310492245459E1,1.475479811995E2, +-1.472708010268E2)); +#8161=CARTESIAN_POINT('',(-5.190322554415E1,1.471713901621E2, +-1.484727809649E2)); +#8162=CARTESIAN_POINT('',(-5.073505881340E1,1.468726618007E2, +-1.495408205584E2)); +#8163=CARTESIAN_POINT('',(-4.956279328497E1,1.466334928509E2, +-1.505247018902E2)); +#8164=CARTESIAN_POINT('',(-4.835379022124E1,1.464446460398E2, +-1.514558256164E2)); +#8165=CARTESIAN_POINT('',(-4.709917789343E1,1.463041697553E2, +-1.523400007777E2)); +#8166=CARTESIAN_POINT('',(-4.580205461782E1,1.462104611478E2, +-1.531739060739E2)); +#8167=CARTESIAN_POINT('',(-4.444865810872E1,1.461596994227E2, +-1.539645224931E2)); +#8168=CARTESIAN_POINT('',(-4.298692530272E1,1.461487042697E2, +-1.547345567810E2)); +#8169=CARTESIAN_POINT('',(-4.133925306666E1,1.461769078070E2, +-1.555053222856E2)); +#8170=CARTESIAN_POINT('',(-3.944263954125E1,1.462463802329E2, +-1.562721720432E2)); +#8171=CARTESIAN_POINT('',(-3.730785845477E1,1.463518753974E2, +-1.569885210335E2)); +#8172=CARTESIAN_POINT('',(-3.499655879911E1,1.464756162172E2, +-1.575990144467E2)); +#8173=CARTESIAN_POINT('',(-3.253726831501E1,1.465958557405E2, +-1.580731539737E2)); +#8174=CARTESIAN_POINT('',(-2.986331937556E1,1.466924541455E2, +-1.583941134596E2)); +#8175=CARTESIAN_POINT('',(-2.781162030688E1,1.467225137367E2, +-1.584791056859E2)); +#8176=CARTESIAN_POINT('',(-2.664377197122E1,1.467195639085E2, +-1.584705241470E2)); +#8177=CARTESIAN_POINT('',(-2.646743186891E1,1.467186417679E2, +-1.584679321700E2)); +#8178=CARTESIAN_POINT('',(-5.934055652018E1,1.440705570981E2, +-1.393543304614E2)); +#8179=CARTESIAN_POINT('',(-5.895028419365E1,1.437884476136E2, +-1.401042741728E2)); +#8180=CARTESIAN_POINT('',(-5.814542015456E1,1.432514798538E2, +-1.415286247963E2)); +#8181=CARTESIAN_POINT('',(-5.683217874121E1,1.425220813805E2, +-1.435233302711E2)); +#8182=CARTESIAN_POINT('',(-5.550340408467E1,1.419108339199E2, +-1.452884361220E2)); +#8183=CARTESIAN_POINT('',(-5.418991819299E1,1.414113476008E2, +-1.468371645521E2)); +#8184=CARTESIAN_POINT('',(-5.290653373407E1,1.410118377832E2, +-1.481965435930E2)); +#8185=CARTESIAN_POINT('',(-5.164413324640E1,1.406937829181E2, +-1.494087638678E2)); +#8186=CARTESIAN_POINT('',(-5.036689538916E1,1.404386781755E2, +-1.505257688504E2)); +#8187=CARTESIAN_POINT('',(-4.904325642635E1,1.402372750684E2, +-1.515795682862E2)); +#8188=CARTESIAN_POINT('',(-4.766737305453E1,1.400877554440E2, +-1.525738751523E2)); +#8189=CARTESIAN_POINT('',(-4.624732812247E1,1.399884037824E2, +-1.535026319708E2)); +#8190=CARTESIAN_POINT('',(-4.477162216172E1,1.399348950504E2, +-1.543728175697E2)); +#8191=CARTESIAN_POINT('',(-4.319291057799E1,1.399234801158E2, +-1.552058927490E2)); +#8192=CARTESIAN_POINT('',(-4.143552028963E1,1.399528116397E2, +-1.560233076229E2)); +#8193=CARTESIAN_POINT('',(-3.944089812028E1,1.400241387091E2, +-1.568192062680E2)); +#8194=CARTESIAN_POINT('',(-3.723186419712E1,1.401310907209E2, +-1.575452345957E2)); +#8195=CARTESIAN_POINT('',(-3.488052588909E1,1.402549515026E2, +-1.581492725003E2)); +#8196=CARTESIAN_POINT('',(-3.241921526865E1,1.403738744558E2, +-1.586078783756E2)); +#8197=CARTESIAN_POINT('',(-2.978266273148E1,1.404683559451E2, +-1.589118005791E2)); +#8198=CARTESIAN_POINT('',(-2.778577029662E1,1.404974188894E2, +-1.589904924758E2)); +#8199=CARTESIAN_POINT('',(-2.665454730391E1,1.404945694867E2, +-1.589825341891E2)); +#8200=CARTESIAN_POINT('',(-2.648384503529E1,1.404936800731E2, +-1.589801338016E2)); +#8201=(BOUNDED_SURFACE()B_SPLINE_SURFACE(3,3,((#8109,#8110,#8111,#8112,#8113, +#8114,#8115,#8116,#8117,#8118,#8119,#8120,#8121,#8122,#8123,#8124,#8125,#8126, +#8127,#8128,#8129,#8130,#8131),(#8132,#8133,#8134,#8135,#8136,#8137,#8138,#8139, +#8140,#8141,#8142,#8143,#8144,#8145,#8146,#8147,#8148,#8149,#8150,#8151,#8152, +#8153,#8154),(#8155,#8156,#8157,#8158,#8159,#8160,#8161,#8162,#8163,#8164,#8165, +#8166,#8167,#8168,#8169,#8170,#8171,#8172,#8173,#8174,#8175,#8176,#8177),(#8178, +#8179,#8180,#8181,#8182,#8183,#8184,#8185,#8186,#8187,#8188,#8189,#8190,#8191, +#8192,#8193,#8194,#8195,#8196,#8197,#8198,#8199,#8200)),.UNSPECIFIED.,.F.,.F., +.F.)B_SPLINE_SURFACE_WITH_KNOTS((4,4),(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +4),(0.E0,1.E0),(6.182376059121E-1,6.435262305080E-1,6.667460293865E-1, +6.879913097884E-1,7.072938109400E-1,7.247355833054E-1,7.408097609683E-1, +7.563944195289E-1,7.721058520821E-1,7.879152510729E-1,8.036285256329E-1, +8.193962354810E-1,8.358140171851E-1,8.538590188990E-1,8.743833835378E-1, +8.972899059853E-1,9.210897361766E-1,9.452901665442E-1,9.711068248476E-1,1.E0, +1.005138772699E0),.UNSPECIFIED.)GEOMETRIC_REPRESENTATION_ITEM()RATIONAL_B_SPLINE_SURFACE(((1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0),(9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1),(9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1),(1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0)))REPRESENTATION_ITEM('')SURFACE()); +#8203=ORIENTED_EDGE('',*,*,#8202,.F.); +#8204=ORIENTED_EDGE('',*,*,#8102,.F.); +#8205=ORIENTED_EDGE('',*,*,#5562,.F.); +#8207=ORIENTED_EDGE('',*,*,#8206,.T.); +#8208=EDGE_LOOP('',(#8203,#8204,#8205,#8207)); +#8209=FACE_OUTER_BOUND('',#8208,.F.); +#8211=CARTESIAN_POINT('',(-2.633351884309E1,1.608880620614E2, +-1.763439659014E2)); +#8212=CARTESIAN_POINT('',(-3.323780886095E1,1.608122008087E2, +-1.762858458308E2)); +#8213=CARTESIAN_POINT('',(-4.553817405473E1,1.614628151787E2, +-1.762393187678E2)); +#8214=CARTESIAN_POINT('',(-5.699778109520E1,1.660505263873E2, +-1.763238287462E2)); +#8215=CARTESIAN_POINT('',(-6.306554870842E1,1.733009015618E2, +-1.763974728439E2)); +#8216=CARTESIAN_POINT('',(-6.599874546878E1,1.806176812693E2, +-1.764411287242E2)); +#8217=CARTESIAN_POINT('',(-6.750535581707E1,1.897539472670E2, +-1.764673368226E2)); +#8218=CARTESIAN_POINT('',(-6.772118965800E1,1.966146414271E2, +-1.764637789170E2)); +#8219=CARTESIAN_POINT('',(-6.770349857030E1,2.001464902567E2, +-1.764549543828E2)); +#8220=CARTESIAN_POINT('',(-2.631928785628E1,1.598027132703E2, +-1.751747375621E2)); +#8221=CARTESIAN_POINT('',(-3.336976065760E1,1.597458247323E2, +-1.751394161479E2)); +#8222=CARTESIAN_POINT('',(-4.593253922317E1,1.604737672761E2, +-1.751088774212E2)); +#8223=CARTESIAN_POINT('',(-5.765260923319E1,1.652493168436E2, +-1.751608699940E2)); +#8224=CARTESIAN_POINT('',(-6.387653125030E1,1.726987350731E2, +-1.752028595058E2)); +#8225=CARTESIAN_POINT('',(-6.689808457949E1,1.801915451799E2, +-1.752266480783E2)); +#8226=CARTESIAN_POINT('',(-6.846029483373E1,1.895349357630E2, +-1.752419459524E2)); +#8227=CARTESIAN_POINT('',(-6.868758304969E1,1.965493322498E2, +-1.752403942842E2)); +#8228=CARTESIAN_POINT('',(-6.866944942723E1,2.001611818856E2, +-1.752353556759E2)); +#8229=CARTESIAN_POINT('',(-2.629237236254E1,1.577741615647E2, +-1.727660542132E2)); +#8230=CARTESIAN_POINT('',(-3.362407718044E1,1.577453157273E2, +-1.727658756968E2)); +#8231=CARTESIAN_POINT('',(-4.668891401806E1,1.586062213401E2, +-1.727598705370E2)); +#8232=CARTESIAN_POINT('',(-5.890193798842E1,1.637271126232E2, +-1.727598200929E2)); +#8233=CARTESIAN_POINT('',(-6.542286055734E1,1.715497909195E2, +-1.727512646322E2)); +#8234=CARTESIAN_POINT('',(-6.861312145544E1,1.793767825430E2, +-1.727430703861E2)); +#8235=CARTESIAN_POINT('',(-7.028115262310E1,1.891160668818E2, +-1.727403030331E2)); +#8236=CARTESIAN_POINT('',(-7.052983348673E1,1.964247823619E2, +-1.727412847460E2)); +#8237=CARTESIAN_POINT('',(-7.051064596671E1,2.001895081371E2, +-1.727419034102E2)); +#8238=CARTESIAN_POINT('',(-2.624087392236E1,1.540208512916E2, +-1.678042987537E2)); +#8239=CARTESIAN_POINT('',(-3.410820433260E1,1.540280304571E2, +-1.678662039299E2)); +#8240=CARTESIAN_POINT('',(-4.812250508890E1,1.551067018888E2, +-1.679074861906E2)); +#8241=CARTESIAN_POINT('',(-6.125825283372E1,1.608505937265E2, +-1.678257671980E2)); +#8242=CARTESIAN_POINT('',(-6.833404157332E1,1.693681042720E2, +-1.677338125678E2)); +#8243=CARTESIAN_POINT('',(-7.183833428966E1,1.778249020906E2, +-1.676713399405E2)); +#8244=CARTESIAN_POINT('',(-7.370272127162E1,1.883165784198E2, +-1.676360129195E2)); +#8245=CARTESIAN_POINT('',(-7.399103201525E1,1.961873534186E2, +-1.676385968537E2)); +#8246=CARTESIAN_POINT('',(-7.397014340662E1,2.002439404062E2, +-1.676470727321E2)); +#8247=CARTESIAN_POINT('',(-2.618502793315E1,1.503336524865E2, +-1.611169338693E2)); +#8248=CARTESIAN_POINT('',(-3.463505439426E1,1.503080840710E2, +-1.611789765973E2)); +#8249=CARTESIAN_POINT('',(-4.966633632016E1,1.514942823527E2, +-1.612265791739E2)); +#8250=CARTESIAN_POINT('',(-6.377776944569E1,1.578137406763E2, +-1.611540564626E2)); +#8251=CARTESIAN_POINT('',(-7.143621099852E1,1.670476166734E2, +-1.610638004222E2)); +#8252=CARTESIAN_POINT('',(-7.526414394270E1,1.761704230096E2, +-1.609978728972E2)); +#8253=CARTESIAN_POINT('',(-7.732768419456E1,1.874656683066E2, +-1.609534354388E2)); +#8254=CARTESIAN_POINT('',(-7.765467583581E1,1.959366597636E2, +-1.609470407256E2)); +#8255=CARTESIAN_POINT('',(-7.763175343730E1,2.003026351601E2, +-1.609505619073E2)); +#8256=CARTESIAN_POINT('',(-2.615140835997E1,1.487464937099E2, +-1.527301680907E2)); +#8257=CARTESIAN_POINT('',(-3.495234324611E1,1.487020600663E2, +-1.527271499353E2)); +#8258=CARTESIAN_POINT('',(-5.054430876398E1,1.499018457837E2, +-1.527196130971E2)); +#8259=CARTESIAN_POINT('',(-6.511279010846E1,1.564003747230E2, +-1.527083645577E2)); +#8260=CARTESIAN_POINT('',(-7.303687157681E1,1.659175884275E2, +-1.526910704729E2)); +#8261=CARTESIAN_POINT('',(-7.700594544756E1,1.753375178403E2, +-1.526766113983E2)); +#8262=CARTESIAN_POINT('',(-7.914813489891E1,1.870267806755E2, +-1.526669077395E2)); +#8263=CARTESIAN_POINT('',(-7.948512956473E1,1.958083639714E2, +-1.526661418750E2)); +#8264=CARTESIAN_POINT('',(-7.946068264516E1,2.003325973019E2, +-1.526674937887E2)); +#8265=CARTESIAN_POINT('',(-2.613996742136E1,1.484210963809E2, +-1.471432374491E2)); +#8266=CARTESIAN_POINT('',(-3.506092494286E1,1.483786785095E2, +-1.471403896062E2)); +#8267=CARTESIAN_POINT('',(-5.080865360123E1,1.495649946563E2, +-1.471399926390E2)); +#8268=CARTESIAN_POINT('',(-6.543842981866E1,1.560424890169E2, +-1.471465219519E2)); +#8269=CARTESIAN_POINT('',(-7.338668339784E1,1.655893997559E2, +-1.471420063410E2)); +#8270=CARTESIAN_POINT('',(-7.736261025553E1,1.750711321978E2, +-1.471354977907E2)); +#8271=CARTESIAN_POINT('',(-7.950122796595E1,1.868751501311E2, +-1.471304493201E2)); +#8272=CARTESIAN_POINT('',(-7.983265863448E1,1.957636911826E2, +-1.471295947359E2)); +#8273=CARTESIAN_POINT('',(-7.980789089219E1,2.003430746644E2, +-1.471299642779E2)); +#8274=CARTESIAN_POINT('',(-2.613597521897E1,1.483553542689E2, +-1.446369802980E2)); +#8275=CARTESIAN_POINT('',(-3.509901896842E1,1.483137737845E2, +-1.446369011577E2)); +#8276=CARTESIAN_POINT('',(-5.089384687343E1,1.494894014616E2, +-1.446425724363E2)); +#8277=CARTESIAN_POINT('',(-6.552581708319E1,1.559419878532E2, +-1.446557050483E2)); +#8278=CARTESIAN_POINT('',(-7.346887590061E1,1.654861497763E2, +-1.446547776105E2)); +#8279=CARTESIAN_POINT('',(-7.743846406190E1,1.749818444403E2, +-1.446501780776E2)); +#8280=CARTESIAN_POINT('',(-7.956935655873E1,1.868220932491E2, +-1.446458569323E2)); +#8281=CARTESIAN_POINT('',(-7.989691887072E1,1.957480258681E2, +-1.446445119585E2)); +#8282=CARTESIAN_POINT('',(-7.987205128538E1,2.003467578106E2, +-1.446443686990E2)); +#8283=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#8211,#8212,#8213,#8214,#8215,#8216, +#8217,#8218,#8219),(#8220,#8221,#8222,#8223,#8224,#8225,#8226,#8227,#8228),( +#8229,#8230,#8231,#8232,#8233,#8234,#8235,#8236,#8237),(#8238,#8239,#8240,#8241, +#8242,#8243,#8244,#8245,#8246),(#8247,#8248,#8249,#8250,#8251,#8252,#8253,#8254, +#8255),(#8256,#8257,#8258,#8259,#8260,#8261,#8262,#8263,#8264),(#8265,#8266, +#8267,#8268,#8269,#8270,#8271,#8272,#8273),(#8274,#8275,#8276,#8277,#8278,#8279, +#8280,#8281,#8282)),.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1,1,1,4),(4,1,1,1,1,1,4),( +-1.584827803642E-1,-5.546576851006E-3,1.506023159307E-1,4.629001014941E-1, +7.751978870575E-1,1.023719864332E0),(-4.146085448080E-3,1.25E-1,2.5E-1,3.125E-1, +3.75E-1,4.375E-1,5.041903539469E-1),.UNSPECIFIED.); +#8285=ORIENTED_EDGE('',*,*,#8284,.T.); +#8287=ORIENTED_EDGE('',*,*,#8286,.T.); +#8289=ORIENTED_EDGE('',*,*,#8288,.T.); +#8291=ORIENTED_EDGE('',*,*,#8290,.T.); +#8292=ORIENTED_EDGE('',*,*,#7989,.T.); +#8293=ORIENTED_EDGE('',*,*,#8202,.T.); +#8294=EDGE_LOOP('',(#8285,#8287,#8289,#8291,#8292,#8293)); +#8295=FACE_OUTER_BOUND('',#8294,.F.); +#8297=CARTESIAN_POINT('',(-7.089606317318E1,1.602267210426E2, +-1.225763561360E2)); +#8298=CARTESIAN_POINT('',(-7.089525447982E1,1.602382463455E2, +-1.228445772900E2)); +#8299=CARTESIAN_POINT('',(-7.085634119153E1,1.603535089555E2, +-1.261329067450E2)); +#8300=CARTESIAN_POINT('',(-7.002625389479E1,1.599611731910E2, +-1.328727284139E2)); +#8301=CARTESIAN_POINT('',(-6.727684757190E1,1.581825818556E2, +-1.407394593593E2)); +#8302=CARTESIAN_POINT('',(-6.480026481867E1,1.567238390300E2, +-1.451296280506E2)); +#8303=CARTESIAN_POINT('',(-6.367959006786E1,1.561055831274E2, +-1.468302718857E2)); +#8304=CARTESIAN_POINT('',(-6.581243902685E1,1.578450189295E2, +-1.226088154519E2)); +#8305=CARTESIAN_POINT('',(-6.581158387224E1,1.578561096356E2, +-1.228415195864E2)); +#8306=CARTESIAN_POINT('',(-6.577624096636E1,1.579671305057E2, +-1.256943317573E2)); +#8307=CARTESIAN_POINT('',(-6.506217019531E1,1.575902971788E2, +-1.315411831347E2)); +#8308=CARTESIAN_POINT('',(-6.269254182939E1,1.558602370068E2, +-1.384111787960E2)); +#8309=CARTESIAN_POINT('',(-6.054083474694E1,1.544188140411E2, +-1.422795984126E2)); +#8310=CARTESIAN_POINT('',(-5.956352834895E1,1.538048665863E2, +-1.437834353522E2)); +#8311=CARTESIAN_POINT('',(-6.299615985291E1,1.529910199486E2, +-1.227606535648E2)); +#8312=CARTESIAN_POINT('',(-6.299479331362E1,1.530012249299E2, +-1.229582334028E2)); +#8313=CARTESIAN_POINT('',(-6.295818466450E1,1.531036009736E2, +-1.253800807692E2)); +#8314=CARTESIAN_POINT('',(-6.237733498293E1,1.527583622010E2, +-1.303423084044E2)); +#8315=CARTESIAN_POINT('',(-6.043090639741E1,1.511272103752E2, +-1.363628541195E2)); +#8316=CARTESIAN_POINT('',(-5.859118952385E1,1.497210859388E2, +-1.398959068405E2)); +#8317=CARTESIAN_POINT('',(-5.774042520815E1,1.491159192638E2, +-1.412911617077E2)); +#8318=CARTESIAN_POINT('',(-6.345407512124E1,1.474000798650E2, +-1.229775867500E2)); +#8319=CARTESIAN_POINT('',(-6.345191509928E1,1.474092646495E2, +-1.231529923205E2)); +#8320=CARTESIAN_POINT('',(-6.340965709780E1,1.475016833968E2, +-1.253025018191E2)); +#8321=CARTESIAN_POINT('',(-6.293160512673E1,1.471928359090E2, +-1.297047145674E2)); +#8322=CARTESIAN_POINT('',(-6.130049976579E1,1.456756088369E2, +-1.353267829775E2)); +#8323=CARTESIAN_POINT('',(-5.964834785319E1,1.443101420034E2, +-1.388307481801E2)); +#8324=CARTESIAN_POINT('',(-5.886205922193E1,1.437150892187E2, +-1.402444650325E2)); +#8325=(BOUNDED_SURFACE()B_SPLINE_SURFACE(3,3,((#8297,#8298,#8299,#8300,#8301, +#8302,#8303),(#8304,#8305,#8306,#8307,#8308,#8309,#8310),(#8311,#8312,#8313, +#8314,#8315,#8316,#8317),(#8318,#8319,#8320,#8321,#8322,#8323,#8324)), +.UNSPECIFIED.,.F.,.F.,.F.)B_SPLINE_SURFACE_WITH_KNOTS((4,4),(4,1,1,1,4),(0.E0, +1.E0),(-3.182469416041E-3,0.E0,3.580500146193E-2,7.649806247072E-2, +1.055206547686E-1),.UNSPECIFIED.)GEOMETRIC_REPRESENTATION_ITEM()RATIONAL_B_SPLINE_SURFACE(((1.098150052804E0,1.098150052804E0,1.098150052804E0,1.098150052804E0, +1.098150052804E0,1.098150052804E0,1.098150052804E0),(9.672833157320E-1, +9.672833157320E-1,9.672833157320E-1,9.672833157320E-1,9.672833157320E-1, +9.672833157320E-1,9.672833157320E-1),(9.672833157320E-1,9.672833157320E-1, +9.672833157320E-1,9.672833157320E-1,9.672833157320E-1,9.672833157320E-1, +9.672833157320E-1),(1.098150052804E0,1.098150052804E0,1.098150052804E0, +1.098150052804E0,1.098150052804E0,1.098150052804E0,1.098150052804E0)))REPRESENTATION_ITEM('')SURFACE()); +#8326=ORIENTED_EDGE('',*,*,#8284,.F.); +#8327=ORIENTED_EDGE('',*,*,#8206,.F.); +#8328=ORIENTED_EDGE('',*,*,#5560,.F.); +#8330=ORIENTED_EDGE('',*,*,#8329,.T.); +#8332=ORIENTED_EDGE('',*,*,#8331,.F.); +#8333=EDGE_LOOP('',(#8326,#8327,#8328,#8330,#8332)); +#8334=FACE_OUTER_BOUND('',#8333,.F.); +#8336=CARTESIAN_POINT('',(-7.823827921985E1,1.467295891946E2, +-5.324172437370E1)); +#8337=DIRECTION('',(2.599859414348E-2,2.509251576834E-2,-9.993470061770E-1)); +#8338=DIRECTION('',(6.003887460020E-1,7.989119745957E-1,3.567927300055E-2)); +#8339=AXIS2_PLACEMENT_3D('',#8336,#8337,#8338); +#8340=CYLINDRICAL_SURFACE('',#8339,1.300005524497E1); +#8342=ORIENTED_EDGE('',*,*,#8341,.F.); +#8344=ORIENTED_EDGE('',*,*,#8343,.F.); +#8345=ORIENTED_EDGE('',*,*,#8329,.F.); +#8347=ORIENTED_EDGE('',*,*,#8346,.F.); +#8348=EDGE_LOOP('',(#8342,#8344,#8345,#8347)); +#8349=FACE_OUTER_BOUND('',#8348,.F.); +#8351=CARTESIAN_POINT('',(0.E0,0.E0,-5.36E1)); +#8352=DIRECTION('',(0.E0,0.E0,1.E0)); +#8353=DIRECTION('',(0.E0,1.E0,0.E0)); +#8354=AXIS2_PLACEMENT_3D('',#8351,#8352,#8353); +#8355=PLANE('',#8354); +#8356=ORIENTED_EDGE('',*,*,#8341,.T.); +#8358=ORIENTED_EDGE('',*,*,#8357,.F.); +#8360=ORIENTED_EDGE('',*,*,#8359,.T.); +#8362=ORIENTED_EDGE('',*,*,#8361,.F.); +#8364=ORIENTED_EDGE('',*,*,#8363,.T.); +#8366=ORIENTED_EDGE('',*,*,#8365,.T.); +#8367=EDGE_LOOP('',(#8356,#8358,#8360,#8362,#8364,#8366)); +#8368=FACE_OUTER_BOUND('',#8367,.F.); +#8370=CARTESIAN_POINT('',(-6.549614978208E1,1.385798492198E2, +-4.345308847415E1)); +#8371=DIRECTION('',(-9.996573249756E-1,0.E0,-2.617694830787E-2)); +#8372=DIRECTION('',(2.617694830787E-2,0.E0,-9.996573249756E-1)); +#8373=AXIS2_PLACEMENT_3D('',#8370,#8371,#8372); +#8374=PLANE('',#8373); +#8376=ORIENTED_EDGE('',*,*,#8375,.T.); +#8378=ORIENTED_EDGE('',*,*,#8377,.F.); +#8379=ORIENTED_EDGE('',*,*,#8357,.T.); +#8380=ORIENTED_EDGE('',*,*,#8346,.T.); +#8381=ORIENTED_EDGE('',*,*,#5558,.F.); +#8383=ORIENTED_EDGE('',*,*,#8382,.T.); +#8384=EDGE_LOOP('',(#8376,#8378,#8379,#8380,#8381,#8383)); +#8385=FACE_OUTER_BOUND('',#8384,.F.); +#8387=CARTESIAN_POINT('',(-6.757154611808E1,1.036996808377E3,-4.06E1)); +#8388=DIRECTION('',(0.E0,-1.E0,0.E0)); +#8389=DIRECTION('',(9.996573249756E-1,0.E0,2.617694830787E-2)); +#8390=AXIS2_PLACEMENT_3D('',#8387,#8388,#8389); +#8391=CYLINDRICAL_SURFACE('',#8390,2.E0); +#8393=ORIENTED_EDGE('',*,*,#8392,.T.); +#8395=ORIENTED_EDGE('',*,*,#8394,.T.); +#8396=ORIENTED_EDGE('',*,*,#8375,.F.); +#8398=ORIENTED_EDGE('',*,*,#8397,.T.); +#8399=EDGE_LOOP('',(#8393,#8395,#8396,#8398)); +#8400=FACE_OUTER_BOUND('',#8399,.F.); +#8402=CARTESIAN_POINT('',(0.E0,0.E0,-3.86E1)); +#8403=DIRECTION('',(0.E0,0.E0,1.E0)); +#8404=DIRECTION('',(0.E0,-1.E0,0.E0)); +#8405=AXIS2_PLACEMENT_3D('',#8402,#8403,#8404); +#8406=PLANE('',#8405); +#8408=ORIENTED_EDGE('',*,*,#8407,.T.); +#8409=ORIENTED_EDGE('',*,*,#8392,.F.); +#8411=ORIENTED_EDGE('',*,*,#8410,.F.); +#8413=ORIENTED_EDGE('',*,*,#8412,.T.); +#8415=ORIENTED_EDGE('',*,*,#8414,.F.); +#8417=ORIENTED_EDGE('',*,*,#8416,.F.); +#8419=ORIENTED_EDGE('',*,*,#8418,.F.); +#8421=ORIENTED_EDGE('',*,*,#8420,.F.); +#8423=ORIENTED_EDGE('',*,*,#8422,.F.); +#8425=ORIENTED_EDGE('',*,*,#8424,.T.); +#8427=ORIENTED_EDGE('',*,*,#8426,.F.); +#8428=EDGE_LOOP('',(#8408,#8409,#8411,#8413,#8415,#8417,#8419,#8421,#8423,#8425, +#8427)); +#8429=FACE_OUTER_BOUND('',#8428,.F.); +#8431=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-4.06E1)); +#8432=DIRECTION('',(0.E0,0.E0,1.E0)); +#8433=DIRECTION('',(5.530216454431E-1,-8.331668858467E-1,0.E0)); +#8434=AXIS2_PLACEMENT_3D('',#8431,#8432,#8433); +#8435=TOROIDAL_SURFACE('',#8434,6.9E1,2.E0); +#8436=ORIENTED_EDGE('',*,*,#8407,.F.); +#8438=ORIENTED_EDGE('',*,*,#8437,.F.); +#8440=ORIENTED_EDGE('',*,*,#8439,.T.); +#8441=ORIENTED_EDGE('',*,*,#8394,.F.); +#8442=EDGE_LOOP('',(#8436,#8438,#8440,#8441)); +#8443=FACE_OUTER_BOUND('',#8442,.F.); +#8445=CARTESIAN_POINT('',(-9.321025782889E1,2.127958580079E2, +-4.161829668407E1)); +#8446=CARTESIAN_POINT('',(-9.324173308347E1,2.126212654445E2, +-4.161728157448E1)); +#8447=CARTESIAN_POINT('',(-9.340314332878E1,2.117051878360E2, +-4.161477673011E1)); +#8448=CARTESIAN_POINT('',(-9.366387200473E1,2.100222638573E2, +-4.163410751354E1)); +#8449=CARTESIAN_POINT('',(-9.394687753839E1,2.076670002288E2, +-4.168692551816E1)); +#8450=CARTESIAN_POINT('',(-9.415610571924E1,2.051697154270E2, +-4.174570903504E1)); +#8451=CARTESIAN_POINT('',(-9.427498091631E1,2.025263003375E2, +-4.178719237038E1)); +#8452=CARTESIAN_POINT('',(-9.428778180006E1,1.998236318930E2, +-4.179202649797E1)); +#8453=CARTESIAN_POINT('',(-9.419316370104E1,1.971694955803E2, +-4.175799878933E1)); +#8454=CARTESIAN_POINT('',(-9.400139682270E1,1.946000419356E2, +-4.170049593391E1)); +#8455=CARTESIAN_POINT('',(-9.371341126277E1,1.920372817435E2, +-4.163995896292E1)); +#8456=CARTESIAN_POINT('',(-9.342760587993E1,1.901536630275E2, +-4.161440996359E1)); +#8457=CARTESIAN_POINT('',(-9.324178460836E1,1.890990276347E2, +-4.161727840575E1)); +#8458=CARTESIAN_POINT('',(-9.321033646566E1,1.889245810261E2, +-4.161828656570E1)); +#8459=CARTESIAN_POINT('',(-9.149300702365E1,2.125031308134E2, +-3.866787389126E1)); +#8460=CARTESIAN_POINT('',(-9.152475663899E1,2.123272682191E2, +-3.866683085251E1)); +#8461=CARTESIAN_POINT('',(-9.168710229287E1,2.114064571040E2, +-3.866426252317E1)); +#8462=CARTESIAN_POINT('',(-9.194538356444E1,2.097324440864E2, +-3.868408804443E1)); +#8463=CARTESIAN_POINT('',(-9.222056469987E1,2.074213699202E2, +-3.873730758631E1)); +#8464=CARTESIAN_POINT('',(-9.242079486168E1,2.049989100220E2, +-3.879582765612E1)); +#8465=CARTESIAN_POINT('',(-9.253321303338E1,2.024566785106E2, +-3.883675562483E1)); +#8466=CARTESIAN_POINT('',(-9.254525618397E1,1.998671814976E2, +-3.884150650871E1)); +#8467=CARTESIAN_POINT('',(-9.245594816251E1,1.973181667315E2, +-3.880798260687E1)); +#8468=CARTESIAN_POINT('',(-9.227302670072E1,1.948316535656E2, +-3.875087886943E1)); +#8469=CARTESIAN_POINT('',(-9.199409948807E1,1.923238506833E2, +-3.869006368693E1)); +#8470=CARTESIAN_POINT('',(-9.171170405964E1,1.904531024572E2, +-3.866388958813E1)); +#8471=CARTESIAN_POINT('',(-9.152480878238E1,1.893930282059E2, +-3.866682687701E1)); +#8472=CARTESIAN_POINT('',(-9.149308731176E1,1.892173166698E2, +-3.866786129106E1)); +#8473=CARTESIAN_POINT('',(-9.424474229471E1,2.130108235626E2, +-3.669054974662E1)); +#8474=CARTESIAN_POINT('',(-9.427855336530E1,2.128237000626E2, +-3.668948799022E1)); +#8475=CARTESIAN_POINT('',(-9.445114480266E1,2.118451367948E2, +-3.668687711431E1)); +#8476=CARTESIAN_POINT('',(-9.472324228413E1,2.100771881439E2, +-3.670703420062E1)); +#8477=CARTESIAN_POINT('',(-9.500985074397E1,2.076565577437E2, +-3.676052284607E1)); +#8478=CARTESIAN_POINT('',(-9.521630979862E1,2.051372543147E2, +-3.681886635805E1)); +#8479=CARTESIAN_POINT('',(-9.533133822055E1,2.025076937148E2, +-3.685942212930E1)); +#8480=CARTESIAN_POINT('',(-9.534361934032E1,1.998356233434E2, +-3.686411722463E1)); +#8481=CARTESIAN_POINT('',(-9.525235156234E1,1.972013617289E2, +-3.683093096571E1)); +#8482=CARTESIAN_POINT('',(-9.506413430210E1,1.946193181230E2, +-3.677409471049E1)); +#8483=CARTESIAN_POINT('',(-9.477433584628E1,1.919970554844E2, +-3.671309307527E1)); +#8484=CARTESIAN_POINT('',(-9.447729760904E1,1.900231702683E2, +-3.668650004523E1)); +#8485=CARTESIAN_POINT('',(-9.427860900026E1,1.888966161038E2, +-3.668948347403E1)); +#8486=CARTESIAN_POINT('',(-9.424482840020E1,1.887096558672E2, +-3.669053548314E1)); +#8487=CARTESIAN_POINT('',(-9.641197958170E1,2.133865728693E2, +-3.931762416196E1)); +#8488=CARTESIAN_POINT('',(-9.644585339772E1,2.131988779238E2, +-3.931658727385E1)); +#8489=CARTESIAN_POINT('',(-9.661918490167E1,2.122156040534E2, +-3.931403292535E1)); +#8490=CARTESIAN_POINT('',(-9.689598912830E1,2.104233833109E2, +-3.933374949407E1)); +#8491=CARTESIAN_POINT('',(-9.719229067684E1,2.079406479079E2, +-3.938688060830E1)); +#8492=CARTESIAN_POINT('',(-9.740876635054E1,2.053306829212E2, +-3.944545869515E1)); +#8493=CARTESIAN_POINT('',(-9.753067864751E1,2.025856579693E2, +-3.948650896824E1)); +#8494=CARTESIAN_POINT('',(-9.754375641513E1,1.997869130888E2, +-3.949127818428E1)); +#8495=CARTESIAN_POINT('',(-9.744685808401E1,1.970335896589E2, +-3.945764333271E1)); +#8496=CARTESIAN_POINT('',(-9.724892939452E1,1.943529836476E2, +-3.940045170041E1)); +#8497=CARTESIAN_POINT('',(-9.694829483593E1,1.916570462942E2, +-3.933969778641E1)); +#8498=CARTESIAN_POINT('',(-9.664545213123E1,1.896534247757E2, +-3.931366134875E1)); +#8499=CARTESIAN_POINT('',(-9.644590898516E1,1.885214381251E2, +-3.931658347602E1)); +#8500=CARTESIAN_POINT('',(-9.641206498717E1,1.883339033357E2, +-3.931761210831E1)); +#8501=(BOUNDED_SURFACE()B_SPLINE_SURFACE(3,3,((#8445,#8446,#8447,#8448,#8449, +#8450,#8451,#8452,#8453,#8454,#8455,#8456,#8457,#8458),(#8459,#8460,#8461,#8462, +#8463,#8464,#8465,#8466,#8467,#8468,#8469,#8470,#8471,#8472),(#8473,#8474,#8475, +#8476,#8477,#8478,#8479,#8480,#8481,#8482,#8483,#8484,#8485,#8486),(#8487,#8488, +#8489,#8490,#8491,#8492,#8493,#8494,#8495,#8496,#8497,#8498,#8499,#8500)), +.UNSPECIFIED.,.F.,.F.,.F.)B_SPLINE_SURFACE_WITH_KNOTS((4,4),(4,1,1,1,1,1,1,1,1, +1,1,4),(0.E0,1.E0),(-2.362765154021E-2,0.E0,1.001103507034E-1,2.015669493850E-1, +3.114928644346E-1,4.271778305820E-1,5.453065915886E-1,6.618578103257E-1, +7.719187803027E-1,8.811549550408E-1,1.E0,1.023607742194E0),.UNSPECIFIED.)GEOMETRIC_REPRESENTATION_ITEM()RATIONAL_B_SPLINE_SURFACE(((1.848831870305E0, +1.848831870305E0,1.848831870305E0,1.848831870305E0,1.848831870305E0, +1.848831870305E0,1.848831870305E0,1.848831870305E0,1.848831870305E0, +1.848831870305E0,1.848831870305E0,1.848831870305E0,1.848831870305E0, +1.848831870305E0),(7.170560432316E-1,7.170560432316E-1,7.170560432316E-1, +7.170560432316E-1,7.170560432316E-1,7.170560432316E-1,7.170560432316E-1, +7.170560432316E-1,7.170560432316E-1,7.170560432316E-1,7.170560432316E-1, +7.170560432316E-1,7.170560432316E-1,7.170560432316E-1),(7.170560432316E-1, +7.170560432316E-1,7.170560432316E-1,7.170560432316E-1,7.170560432316E-1, +7.170560432316E-1,7.170560432316E-1,7.170560432316E-1,7.170560432316E-1, +7.170560432316E-1,7.170560432316E-1,7.170560432316E-1,7.170560432316E-1, +7.170560432316E-1),(1.848831870305E0,1.848831870305E0,1.848831870305E0, +1.848831870305E0,1.848831870305E0,1.848831870305E0,1.848831870305E0, +1.848831870305E0,1.848831870305E0,1.848831870305E0,1.848831870305E0, +1.848831870305E0,1.848831870305E0,1.848831870305E0)))REPRESENTATION_ITEM('')SURFACE()); +#8503=ORIENTED_EDGE('',*,*,#8502,.F.); +#8504=ORIENTED_EDGE('',*,*,#8437,.T.); +#8506=ORIENTED_EDGE('',*,*,#8505,.T.); +#8508=ORIENTED_EDGE('',*,*,#8507,.T.); +#8509=EDGE_LOOP('',(#8503,#8504,#8506,#8508)); +#8510=FACE_OUTER_BOUND('',#8509,.F.); +#8512=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-3.86E1)); +#8513=DIRECTION('',(0.E0,0.E0,1.E0)); +#8514=DIRECTION('',(0.E0,1.E0,0.E0)); +#8515=AXIS2_PLACEMENT_3D('',#8512,#8513,#8514); +#8516=CYLINDRICAL_SURFACE('',#8515,6.7E1); +#8517=ORIENTED_EDGE('',*,*,#8439,.F.); +#8518=ORIENTED_EDGE('',*,*,#8502,.T.); +#8520=ORIENTED_EDGE('',*,*,#8519,.F.); +#8522=ORIENTED_EDGE('',*,*,#8521,.T.); +#8523=ORIENTED_EDGE('',*,*,#8359,.F.); +#8524=ORIENTED_EDGE('',*,*,#8377,.T.); +#8525=EDGE_LOOP('',(#8517,#8518,#8520,#8522,#8523,#8524)); +#8526=FACE_OUTER_BOUND('',#8525,.F.); +#8528=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-4.06E1)); +#8529=DIRECTION('',(0.E0,0.E0,1.E0)); +#8530=DIRECTION('',(9.955508345719E-4,-9.999995044391E-1,0.E0)); +#8531=AXIS2_PLACEMENT_3D('',#8528,#8529,#8530); +#8532=TOROIDAL_SURFACE('',#8531,6.9E1,2.E0); +#8533=ORIENTED_EDGE('',*,*,#8519,.T.); +#8534=ORIENTED_EDGE('',*,*,#8507,.F.); +#8536=ORIENTED_EDGE('',*,*,#8535,.F.); +#8538=ORIENTED_EDGE('',*,*,#8537,.F.); +#8539=EDGE_LOOP('',(#8533,#8534,#8536,#8538)); +#8540=FACE_OUTER_BOUND('',#8539,.F.); +#8542=CARTESIAN_POINT('',(0.E0,0.E0,-3.86E1)); +#8543=DIRECTION('',(0.E0,0.E0,1.E0)); +#8544=DIRECTION('',(0.E0,-1.E0,0.E0)); +#8545=AXIS2_PLACEMENT_3D('',#8542,#8543,#8544); +#8546=PLANE('',#8545); +#8548=ORIENTED_EDGE('',*,*,#8547,.F.); +#8549=ORIENTED_EDGE('',*,*,#8535,.T.); +#8551=ORIENTED_EDGE('',*,*,#8550,.F.); +#8553=ORIENTED_EDGE('',*,*,#8552,.T.); +#8555=ORIENTED_EDGE('',*,*,#8554,.F.); +#8556=EDGE_LOOP('',(#8548,#8549,#8551,#8553,#8555)); +#8557=FACE_OUTER_BOUND('',#8556,.F.); +#8559=CARTESIAN_POINT('',(-6.719223417048E1,-9.276334532783E2,-4.06E1)); +#8560=DIRECTION('',(0.E0,1.E0,0.E0)); +#8561=DIRECTION('',(0.E0,0.E0,1.E0)); +#8562=AXIS2_PLACEMENT_3D('',#8559,#8560,#8561); +#8563=CYLINDRICAL_SURFACE('',#8562,2.E0); +#8564=ORIENTED_EDGE('',*,*,#8547,.T.); +#8566=ORIENTED_EDGE('',*,*,#8565,.F.); +#8568=ORIENTED_EDGE('',*,*,#8567,.T.); +#8569=ORIENTED_EDGE('',*,*,#8537,.T.); +#8570=EDGE_LOOP('',(#8564,#8566,#8568,#8569)); +#8571=FACE_OUTER_BOUND('',#8570,.F.); +#8573=CARTESIAN_POINT('',(-6.719223417048E1,2.9E2,-4.36E1)); +#8574=DIRECTION('',(1.E0,0.E0,0.E0)); +#8575=DIRECTION('',(0.E0,-2.598190038955E-1,9.656573332268E-1)); +#8576=AXIS2_PLACEMENT_3D('',#8573,#8574,#8575); +#8577=TOROIDAL_SURFACE('',#8576,3.E0,2.E0); +#8579=ORIENTED_EDGE('',*,*,#8578,.T.); +#8581=ORIENTED_EDGE('',*,*,#8580,.T.); +#8583=ORIENTED_EDGE('',*,*,#8582,.F.); +#8584=ORIENTED_EDGE('',*,*,#8565,.T.); +#8585=EDGE_LOOP('',(#8579,#8581,#8583,#8584)); +#8586=FACE_OUTER_BOUND('',#8585,.F.); +#8588=CARTESIAN_POINT('',(-9.131417382563E1,2.9E2,-4.36E1)); +#8589=DIRECTION('',(1.E0,0.E0,0.E0)); +#8590=DIRECTION('',(0.E0,1.E0,0.E0)); +#8591=AXIS2_PLACEMENT_3D('',#8588,#8589,#8590); +#8592=CYLINDRICAL_SURFACE('',#8591,5.E0); +#8593=ORIENTED_EDGE('',*,*,#8578,.F.); +#8594=ORIENTED_EDGE('',*,*,#8554,.T.); +#8596=ORIENTED_EDGE('',*,*,#8595,.F.); +#8597=ORIENTED_EDGE('',*,*,#7635,.T.); +#8598=EDGE_LOOP('',(#8593,#8594,#8596,#8597)); +#8599=FACE_OUTER_BOUND('',#8598,.F.); +#8601=CARTESIAN_POINT('',(-9.420777838145E1,2.843661785324E2, +-3.865577678125E1)); +#8602=CARTESIAN_POINT('',(-9.780361275897E1,2.838245347442E2, +-3.810802259999E1)); +#8603=CARTESIAN_POINT('',(-1.003749356543E2,2.834372140482E2, +-4.070835310849E1)); +#8604=CARTESIAN_POINT('',(-9.983329186607E1,2.835188023424E2, +-4.434475282028E1)); +#8605=CARTESIAN_POINT('',(-9.467394426842E1,2.874609344559E2, +-3.865577678125E1)); +#8606=CARTESIAN_POINT('',(-9.866814927530E1,2.895639712405E2,-3.81080226E1)); +#8607=CARTESIAN_POINT('',(-1.015243405523E2,2.910678187668E2, +-4.070835310851E1)); +#8608=CARTESIAN_POINT('',(-1.009226898355E2,2.907510364317E2, +-4.434475282029E1)); +#8609=CARTESIAN_POINT('',(-9.246093445591E1,2.896739442684E2, +-3.865577678126E1)); +#8610=CARTESIAN_POINT('',(-9.456397124047E1,2.936681492753E2, +-3.810802260002E1)); +#8611=CARTESIAN_POINT('',(-9.606781876683E1,2.965243405523E2, +-4.070835310853E1)); +#8612=CARTESIAN_POINT('',(-9.575103643173E1,2.959226898355E2, +-4.434475282032E1)); +#8613=CARTESIAN_POINT('',(-8.936617853235E1,2.892077783815E2, +-3.865577678127E1)); +#8614=CARTESIAN_POINT('',(-8.882453474415E1,2.928036127590E2, +-3.810802260003E1)); +#8615=CARTESIAN_POINT('',(-8.843721404819E1,2.953749356543E2, +-4.070835310855E1)); +#8616=CARTESIAN_POINT('',(-8.851880234246E1,2.948332918661E2, +-4.434475282033E1)); +#8617=(BOUNDED_SURFACE()B_SPLINE_SURFACE(3,3,((#8601,#8602,#8603,#8604),(#8605, +#8606,#8607,#8608),(#8609,#8610,#8611,#8612),(#8613,#8614,#8615,#8616)), +.UNSPECIFIED.,.F.,.F.,.F.)B_SPLINE_SURFACE_WITH_KNOTS((4,4),(4,4),(0.E0,1.E0),( +0.E0,1.E0),.UNSPECIFIED.)GEOMETRIC_REPRESENTATION_ITEM()RATIONAL_B_SPLINE_SURFACE(((1.574492818930E0,1.148219670697E0,1.148219670697E0,1.574492818930E0),( +1.148219670700E0,8.373543507644E-1,8.373543507644E-1,1.148219670700E0),( +1.148219670700E0,8.373543507644E-1,8.373543507644E-1,1.148219670700E0),( +1.574492818930E0,1.148219670697E0,1.148219670697E0,1.574492818930E0)))REPRESENTATION_ITEM('')SURFACE()); +#8619=ORIENTED_EDGE('',*,*,#8618,.T.); +#8620=ORIENTED_EDGE('',*,*,#8595,.T.); +#8621=ORIENTED_EDGE('',*,*,#8552,.F.); +#8623=ORIENTED_EDGE('',*,*,#8622,.T.); +#8624=EDGE_LOOP('',(#8619,#8620,#8621,#8623)); +#8625=FACE_OUTER_BOUND('',#8624,.F.); +#8627=CARTESIAN_POINT('',(-9.E1,2.85E2,6.640352260206E2)); +#8628=DIRECTION('',(0.E0,0.E0,-1.E0)); +#8629=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8630=AXIS2_PLACEMENT_3D('',#8627,#8628,#8629); +#8631=CYLINDRICAL_SURFACE('',#8630,1.E1); +#8632=ORIENTED_EDGE('',*,*,#8618,.F.); +#8634=ORIENTED_EDGE('',*,*,#8633,.T.); +#8635=ORIENTED_EDGE('',*,*,#4809,.F.); +#8636=ORIENTED_EDGE('',*,*,#7637,.T.); +#8637=EDGE_LOOP('',(#8632,#8634,#8635,#8636)); +#8638=FACE_OUTER_BOUND('',#8637,.F.); +#8640=CARTESIAN_POINT('',(-1.E2,2.95E2,-1.9E2)); +#8641=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8642=DIRECTION('',(0.E0,-1.E0,0.E0)); +#8643=AXIS2_PLACEMENT_3D('',#8640,#8641,#8642); +#8644=PLANE('',#8643); +#8646=ORIENTED_EDGE('',*,*,#8645,.F.); +#8648=ORIENTED_EDGE('',*,*,#8647,.F.); +#8649=ORIENTED_EDGE('',*,*,#4811,.T.); +#8650=ORIENTED_EDGE('',*,*,#8633,.F.); +#8652=ORIENTED_EDGE('',*,*,#8651,.F.); +#8654=ORIENTED_EDGE('',*,*,#8653,.T.); +#8656=ORIENTED_EDGE('',*,*,#8655,.T.); +#8657=EDGE_LOOP('',(#8646,#8648,#8649,#8650,#8652,#8654,#8656)); +#8658=FACE_OUTER_BOUND('',#8657,.F.); +#8660=CARTESIAN_POINT('',(-9.5E1,-2.463141738256E2,-6.5E1)); +#8661=DIRECTION('',(0.E0,1.E0,0.E0)); +#8662=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8663=AXIS2_PLACEMENT_3D('',#8660,#8661,#8662); +#8664=CYLINDRICAL_SURFACE('',#8663,5.E0); +#8665=ORIENTED_EDGE('',*,*,#5118,.T.); +#8667=ORIENTED_EDGE('',*,*,#8666,.F.); +#8668=ORIENTED_EDGE('',*,*,#8645,.T.); +#8670=ORIENTED_EDGE('',*,*,#8669,.T.); +#8671=EDGE_LOOP('',(#8665,#8667,#8668,#8670)); +#8672=FACE_OUTER_BOUND('',#8671,.F.); +#8674=CARTESIAN_POINT('',(-8.E1,-2.45E2,-6.5E1)); +#8675=DIRECTION('',(0.E0,0.E0,1.E0)); +#8676=DIRECTION('',(6.566141716224E-2,-9.978419605811E-1,0.E0)); +#8677=AXIS2_PLACEMENT_3D('',#8674,#8675,#8676); +#8678=TOROIDAL_SURFACE('',#8677,1.5E1,5.E0); +#8680=ORIENTED_EDGE('',*,*,#8679,.T.); +#8681=ORIENTED_EDGE('',*,*,#8666,.T.); +#8682=ORIENTED_EDGE('',*,*,#5116,.F.); +#8684=ORIENTED_EDGE('',*,*,#8683,.T.); +#8685=EDGE_LOOP('',(#8680,#8681,#8682,#8684)); +#8686=FACE_OUTER_BOUND('',#8685,.F.); +#8688=CARTESIAN_POINT('',(-8.E1,-2.45E2,-6.898189951633E2)); +#8689=DIRECTION('',(0.E0,0.E0,1.E0)); +#8690=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8691=AXIS2_PLACEMENT_3D('',#8688,#8689,#8690); +#8692=CYLINDRICAL_SURFACE('',#8691,2.E1); +#8693=ORIENTED_EDGE('',*,*,#8679,.F.); +#8694=ORIENTED_EDGE('',*,*,#5040,.T.); +#8695=ORIENTED_EDGE('',*,*,#4813,.F.); +#8696=ORIENTED_EDGE('',*,*,#8647,.T.); +#8697=EDGE_LOOP('',(#8693,#8694,#8695,#8696)); +#8698=FACE_OUTER_BOUND('',#8697,.F.); +#8700=CARTESIAN_POINT('',(1.000988548E3,-2.6E2,-6.5E1)); +#8701=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8702=DIRECTION('',(0.E0,-1.E0,0.E0)); +#8703=AXIS2_PLACEMENT_3D('',#8700,#8701,#8702); +#8704=CYLINDRICAL_SURFACE('',#8703,5.E0); +#8705=ORIENTED_EDGE('',*,*,#5114,.T.); +#8706=ORIENTED_EDGE('',*,*,#5055,.T.); +#8707=ORIENTED_EDGE('',*,*,#5042,.T.); +#8708=ORIENTED_EDGE('',*,*,#8683,.F.); +#8709=EDGE_LOOP('',(#8705,#8706,#8707,#8708)); +#8710=FACE_OUTER_BOUND('',#8709,.F.); +#8712=CARTESIAN_POINT('',(-9.5E1,-6.5E1,0.E0)); +#8713=DIRECTION('',(1.E0,0.E0,0.E0)); +#8714=DIRECTION('',(0.E0,-7.007800054811E-2,9.975415148450E-1)); +#8715=AXIS2_PLACEMENT_3D('',#8712,#8713,#8714); +#8716=TOROIDAL_SURFACE('',#8715,1.642282823598E2,5.E0); +#8717=ORIENTED_EDGE('',*,*,#8424,.F.); +#8719=ORIENTED_EDGE('',*,*,#8718,.T.); +#8721=ORIENTED_EDGE('',*,*,#8720,.T.); +#8722=ORIENTED_EDGE('',*,*,#5120,.F.); +#8723=ORIENTED_EDGE('',*,*,#8669,.F.); +#8724=ORIENTED_EDGE('',*,*,#8655,.F.); +#8725=ORIENTED_EDGE('',*,*,#8653,.F.); +#8727=ORIENTED_EDGE('',*,*,#8726,.T.); +#8728=EDGE_LOOP('',(#8717,#8719,#8721,#8722,#8723,#8724,#8725,#8727)); +#8729=FACE_OUTER_BOUND('',#8728,.F.); +#8731=CARTESIAN_POINT('',(-8.581559880990E1,-6.5E1,0.E0)); +#8732=DIRECTION('',(1.E0,0.E0,0.E0)); +#8733=DIRECTION('',(0.E0,-1.E0,0.E0)); +#8734=AXIS2_PLACEMENT_3D('',#8731,#8732,#8733); +#8735=CONICAL_SURFACE('',#8734,1.615128543396E2,1.5E1); +#8736=ORIENTED_EDGE('',*,*,#8720,.F.); +#8737=ORIENTED_EDGE('',*,*,#8718,.F.); +#8738=ORIENTED_EDGE('',*,*,#8422,.T.); +#8740=ORIENTED_EDGE('',*,*,#8739,.F.); +#8741=ORIENTED_EDGE('',*,*,#5122,.T.); +#8742=EDGE_LOOP('',(#8736,#8737,#8738,#8740,#8741)); +#8743=FACE_OUTER_BOUND('',#8742,.F.); +#8745=CARTESIAN_POINT('',(-7.792529284529E1,1.4239E2,-2.3045E2)); +#8746=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8747=DIRECTION('',(0.E0,-1.E0,0.E0)); +#8748=AXIS2_PLACEMENT_3D('',#8745,#8746,#8747); +#8749=PLANE('',#8748); +#8750=ORIENTED_EDGE('',*,*,#8739,.T.); +#8751=ORIENTED_EDGE('',*,*,#8420,.T.); +#8753=ORIENTED_EDGE('',*,*,#8752,.T.); +#8755=ORIENTED_EDGE('',*,*,#8754,.T.); +#8756=ORIENTED_EDGE('',*,*,#5124,.T.); +#8757=EDGE_LOOP('',(#8750,#8751,#8753,#8755,#8756)); +#8758=FACE_OUTER_BOUND('',#8757,.F.); +#8760=CARTESIAN_POINT('',(-6.985986421047E1,-6.5E1,0.E0)); +#8761=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8762=DIRECTION('',(0.E0,0.E0,-1.E0)); +#8763=AXIS2_PLACEMENT_3D('',#8760,#8761,#8762); +#8764=CONICAL_SURFACE('',#8763,1.723626126802E2,3.5E0); +#8765=ORIENTED_EDGE('',*,*,#5265,.T.); +#8766=ORIENTED_EDGE('',*,*,#5215,.T.); +#8767=ORIENTED_EDGE('',*,*,#5213,.T.); +#8768=ORIENTED_EDGE('',*,*,#5126,.T.); +#8769=ORIENTED_EDGE('',*,*,#8754,.F.); +#8770=ORIENTED_EDGE('',*,*,#8752,.F.); +#8771=ORIENTED_EDGE('',*,*,#8418,.T.); +#8773=ORIENTED_EDGE('',*,*,#8772,.T.); +#8774=EDGE_LOOP('',(#8765,#8766,#8767,#8768,#8769,#8770,#8771,#8773)); +#8775=FACE_OUTER_BOUND('',#8774,.F.); +#8777=CARTESIAN_POINT('',(-5.449999999992E1,-6.5E1,0.E0)); +#8778=DIRECTION('',(1.E0,0.E0,0.E0)); +#8779=DIRECTION('',(0.E0,1.E0,0.E0)); +#8780=AXIS2_PLACEMENT_3D('',#8777,#8778,#8779); +#8781=CYLINDRICAL_SURFACE('',#8780,1.718693654751E2); +#8783=ORIENTED_EDGE('',*,*,#8782,.T.); +#8785=ORIENTED_EDGE('',*,*,#8784,.F.); +#8786=ORIENTED_EDGE('',*,*,#5267,.T.); +#8787=ORIENTED_EDGE('',*,*,#8772,.F.); +#8788=ORIENTED_EDGE('',*,*,#8416,.T.); +#8789=EDGE_LOOP('',(#8783,#8785,#8786,#8787,#8788)); +#8790=FACE_OUTER_BOUND('',#8789,.F.); +#8792=CARTESIAN_POINT('',(-5.849999999992E1,-7.836757657658E2,-4.06E1)); +#8793=DIRECTION('',(0.E0,1.E0,0.E0)); +#8794=DIRECTION('',(0.E0,0.E0,1.E0)); +#8795=AXIS2_PLACEMENT_3D('',#8792,#8793,#8794); +#8796=CYLINDRICAL_SURFACE('',#8795,2.E0); +#8797=ORIENTED_EDGE('',*,*,#8782,.F.); +#8798=ORIENTED_EDGE('',*,*,#8414,.T.); +#8800=ORIENTED_EDGE('',*,*,#8799,.F.); +#8802=ORIENTED_EDGE('',*,*,#8801,.F.); +#8803=EDGE_LOOP('',(#8797,#8798,#8800,#8802)); +#8804=FACE_OUTER_BOUND('',#8803,.F.); +#8806=CARTESIAN_POINT('',(-6.150005224495E1,1.315548757118E2, +-4.060000037728E1)); +#8807=DIRECTION('',(-3.670764566406E-7,4.926139529651E-7,-9.999999999998E-1)); +#8808=DIRECTION('',(9.999999998492E-1,-1.736450439635E-5,-3.670850105922E-7)); +#8809=AXIS2_PLACEMENT_3D('',#8806,#8807,#8808); +#8810=TOROIDAL_SURFACE('',#8809,3.000043853548E0,1.999999827294E0); +#8811=ORIENTED_EDGE('',*,*,#8412,.F.); +#8813=ORIENTED_EDGE('',*,*,#8812,.T.); +#8815=ORIENTED_EDGE('',*,*,#8814,.T.); +#8816=ORIENTED_EDGE('',*,*,#8799,.T.); +#8817=EDGE_LOOP('',(#8811,#8813,#8815,#8816)); +#8818=FACE_OUTER_BOUND('',#8817,.F.); +#8820=CARTESIAN_POINT('',(1.281901029492E1,1.345549126017E2,-4.06E1)); +#8821=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8822=DIRECTION('',(0.E0,0.E0,1.E0)); +#8823=AXIS2_PLACEMENT_3D('',#8820,#8821,#8822); +#8824=CYLINDRICAL_SURFACE('',#8823,2.E0); +#8826=ORIENTED_EDGE('',*,*,#8825,.T.); +#8827=ORIENTED_EDGE('',*,*,#8812,.F.); +#8828=ORIENTED_EDGE('',*,*,#8410,.T.); +#8829=ORIENTED_EDGE('',*,*,#8397,.F.); +#8830=EDGE_LOOP('',(#8826,#8827,#8828,#8829)); +#8831=FACE_OUTER_BOUND('',#8830,.F.); +#8833=CARTESIAN_POINT('',(4.555367888040E1,1.377280579399E2,-1.750204140054E2)); +#8834=DIRECTION('',(0.E0,-9.999619230642E-1,-8.726535498375E-3)); +#8835=DIRECTION('',(0.E0,-8.726535498375E-3,9.999619230642E-1)); +#8836=AXIS2_PLACEMENT_3D('',#8833,#8834,#8835); +#8837=PLANE('',#8836); +#8838=ORIENTED_EDGE('',*,*,#8825,.F.); +#8839=ORIENTED_EDGE('',*,*,#8382,.F.); +#8840=ORIENTED_EDGE('',*,*,#5556,.F.); +#8841=ORIENTED_EDGE('',*,*,#5335,.F.); +#8843=ORIENTED_EDGE('',*,*,#8842,.T.); +#8845=ORIENTED_EDGE('',*,*,#8844,.F.); +#8847=ORIENTED_EDGE('',*,*,#8846,.T.); +#8849=ORIENTED_EDGE('',*,*,#8848,.T.); +#8851=ORIENTED_EDGE('',*,*,#8850,.F.); +#8852=EDGE_LOOP('',(#8838,#8839,#8840,#8841,#8843,#8845,#8847,#8849,#8851)); +#8853=FACE_OUTER_BOUND('',#8852,.F.); +#8855=CARTESIAN_POINT('',(-4.199632111960E1,6.517400626796E1, +-1.297397892668E2)); +#8856=DIRECTION('',(0.E0,0.E0,-1.E0)); +#8857=DIRECTION('',(0.E0,1.E0,0.E0)); +#8858=AXIS2_PLACEMENT_3D('',#8855,#8856,#8857); +#8859=PLANE('',#8858); +#8860=ORIENTED_EDGE('',*,*,#5333,.T.); +#8861=ORIENTED_EDGE('',*,*,#5307,.F.); +#8863=ORIENTED_EDGE('',*,*,#8862,.F.); +#8864=ORIENTED_EDGE('',*,*,#8842,.F.); +#8865=EDGE_LOOP('',(#8860,#8861,#8863,#8864)); +#8866=FACE_OUTER_BOUND('',#8865,.F.); +#8868=CARTESIAN_POINT('',(-4.782341581810E1,8.734263994542E1, +-9.876080982141E1)); +#8869=DIRECTION('',(9.999999982571E-1,5.904089589353E-5,0.E0)); +#8870=DIRECTION('',(-5.904089576757E-5,9.999999961236E-1,6.532159003521E-5)); +#8871=AXIS2_PLACEMENT_3D('',#8868,#8869,#8870); +#8872=CONICAL_SURFACE('',#8871,3.775405049216E1,8.315722658737E1); +#8873=ORIENTED_EDGE('',*,*,#5290,.T.); +#8875=ORIENTED_EDGE('',*,*,#8874,.F.); +#8877=ORIENTED_EDGE('',*,*,#8876,.F.); +#8878=ORIENTED_EDGE('',*,*,#8844,.T.); +#8879=ORIENTED_EDGE('',*,*,#8862,.T.); +#8880=ORIENTED_EDGE('',*,*,#5305,.T.); +#8881=EDGE_LOOP('',(#8873,#8875,#8877,#8878,#8879,#8880)); +#8882=FACE_OUTER_BOUND('',#8881,.F.); +#8884=CARTESIAN_POINT('',(-2.699548547105E1,1.320473488850E2, +-9.704209929493E1)); +#8885=DIRECTION('',(7.147364285034E-8,-9.999619140095E-1,-8.727572998824E-3)); +#8886=DIRECTION('',(-9.998374502131E-1,-1.574277250802E-4,1.802909781284E-2)); +#8887=AXIS2_PLACEMENT_3D('',#8884,#8885,#8886); +#8888=TOROIDAL_SURFACE('',#8887,3.450419747615E1,5.000000743179E0); +#8889=ORIENTED_EDGE('',*,*,#8874,.T.); +#8890=ORIENTED_EDGE('',*,*,#5288,.T.); +#8892=ORIENTED_EDGE('',*,*,#8891,.T.); +#8893=ORIENTED_EDGE('',*,*,#8848,.F.); +#8895=ORIENTED_EDGE('',*,*,#8894,.T.); +#8896=EDGE_LOOP('',(#8889,#8890,#8892,#8893,#8895)); +#8897=FACE_OUTER_BOUND('',#8896,.F.); +#8899=CARTESIAN_POINT('',(-6.149999999992E1,1.251994954837E2,6.876455785160E2)); +#8900=DIRECTION('',(0.E0,8.726535498374E-3,-9.999619230642E-1)); +#8901=DIRECTION('',(0.E0,9.999619230642E-1,8.726535498374E-3)); +#8902=AXIS2_PLACEMENT_3D('',#8899,#8900,#8901); +#8903=CYLINDRICAL_SURFACE('',#8902,5.E0); +#8904=ORIENTED_EDGE('',*,*,#8814,.F.); +#8905=ORIENTED_EDGE('',*,*,#8850,.T.); +#8906=ORIENTED_EDGE('',*,*,#8891,.F.); +#8908=ORIENTED_EDGE('',*,*,#8907,.T.); +#8909=EDGE_LOOP('',(#8904,#8905,#8906,#8908)); +#8910=FACE_OUTER_BOUND('',#8909,.F.); +#8912=CARTESIAN_POINT('',(-5.649999999992E1,1.370471841019E2,-9.7E1)); +#8913=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8914=DIRECTION('',(0.E0,-8.726535498375E-3,9.999619230642E-1)); +#8915=AXIS2_PLACEMENT_3D('',#8912,#8913,#8914); +#8916=PLANE('',#8915); +#8917=ORIENTED_EDGE('',*,*,#8801,.T.); +#8918=ORIENTED_EDGE('',*,*,#8907,.F.); +#8919=ORIENTED_EDGE('',*,*,#5286,.F.); +#8920=ORIENTED_EDGE('',*,*,#5269,.T.); +#8921=ORIENTED_EDGE('',*,*,#8784,.T.); +#8922=EDGE_LOOP('',(#8917,#8918,#8919,#8920,#8921)); +#8923=FACE_OUTER_BOUND('',#8922,.F.); +#8925=CARTESIAN_POINT('',(-2.699999999992E1,1.320473744866E2, +-9.704363267749E1)); +#8926=DIRECTION('',(0.E0,9.999619230642E-1,8.726535498375E-3)); +#8927=DIRECTION('',(-5.995002189628E-1,6.984497288782E-3,-8.003441161533E-1)); +#8928=AXIS2_PLACEMENT_3D('',#8925,#8926,#8927); +#8929=TOROIDAL_SURFACE('',#8928,3.450073545538E1,5.E0); +#8930=ORIENTED_EDGE('',*,*,#8876,.T.); +#8931=ORIENTED_EDGE('',*,*,#8894,.F.); +#8932=ORIENTED_EDGE('',*,*,#8846,.F.); +#8933=EDGE_LOOP('',(#8930,#8931,#8932)); +#8934=FACE_OUTER_BOUND('',#8933,.F.); +#8936=CARTESIAN_POINT('',(-9.5E1,-1.064124E3,-4.36E1)); +#8937=DIRECTION('',(0.E0,1.E0,0.E0)); +#8938=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8939=AXIS2_PLACEMENT_3D('',#8936,#8937,#8938); +#8940=CYLINDRICAL_SURFACE('',#8939,5.E0); +#8941=ORIENTED_EDGE('',*,*,#8505,.F.); +#8942=ORIENTED_EDGE('',*,*,#8426,.T.); +#8943=ORIENTED_EDGE('',*,*,#8726,.F.); +#8944=ORIENTED_EDGE('',*,*,#8651,.T.); +#8945=ORIENTED_EDGE('',*,*,#8622,.F.); +#8946=ORIENTED_EDGE('',*,*,#8550,.T.); +#8947=EDGE_LOOP('',(#8941,#8942,#8943,#8944,#8945,#8946)); +#8948=FACE_OUTER_BOUND('',#8947,.F.); +#8950=CARTESIAN_POINT('',(-6.719223417048E1,2.93E2,-4.220913670269E1)); +#8951=DIRECTION('',(0.E0,0.E0,-1.E0)); +#8952=DIRECTION('',(0.E0,1.E0,0.E0)); +#8953=AXIS2_PLACEMENT_3D('',#8950,#8951,#8952); +#8954=CYLINDRICAL_SURFACE('',#8953,2.E0); +#8955=ORIENTED_EDGE('',*,*,#7633,.T.); +#8957=ORIENTED_EDGE('',*,*,#8956,.F.); +#8959=ORIENTED_EDGE('',*,*,#8958,.T.); +#8960=ORIENTED_EDGE('',*,*,#8580,.F.); +#8961=EDGE_LOOP('',(#8955,#8957,#8959,#8960)); +#8962=FACE_OUTER_BOUND('',#8961,.F.); +#8964=CARTESIAN_POINT('',(-5.519223417048E1,2.93E2,-1.269E2)); +#8965=DIRECTION('',(0.E0,-1.E0,0.E0)); +#8966=DIRECTION('',(-9.906743956096E-1,0.E0,1.362506582867E-1)); +#8967=AXIS2_PLACEMENT_3D('',#8964,#8965,#8966); +#8968=TOROIDAL_SURFACE('',#8967,1.2E1,2.E0); +#8969=ORIENTED_EDGE('',*,*,#7631,.F.); +#8971=ORIENTED_EDGE('',*,*,#8970,.T.); +#8973=ORIENTED_EDGE('',*,*,#8972,.T.); +#8974=ORIENTED_EDGE('',*,*,#8956,.T.); +#8975=EDGE_LOOP('',(#8969,#8971,#8973,#8974)); +#8976=FACE_OUTER_BOUND('',#8975,.F.); +#8978=CARTESIAN_POINT('',(-5.713378973804E1,2.93E2,-1.389E2)); +#8979=DIRECTION('',(1.E0,0.E0,0.E0)); +#8980=DIRECTION('',(0.E0,1.E0,1.421085471520E-14)); +#8981=AXIS2_PLACEMENT_3D('',#8978,#8979,#8980); +#8982=CYLINDRICAL_SURFACE('',#8981,2.E0); +#8983=ORIENTED_EDGE('',*,*,#7629,.T.); +#8985=ORIENTED_EDGE('',*,*,#8984,.F.); +#8987=ORIENTED_EDGE('',*,*,#8986,.T.); +#8988=ORIENTED_EDGE('',*,*,#8970,.F.); +#8989=EDGE_LOOP('',(#8983,#8985,#8987,#8988)); +#8990=FACE_OUTER_BOUND('',#8989,.F.); +#8992=CARTESIAN_POINT('',(-5.463211195957E-1,2.93E2,-1.269E2)); +#8993=DIRECTION('',(0.E0,1.E0,0.E0)); +#8994=DIRECTION('',(-1.929380268982E-1,0.E0,-9.812109445866E-1)); +#8995=AXIS2_PLACEMENT_3D('',#8992,#8993,#8994); +#8996=TOROIDAL_SURFACE('',#8995,1.2E1,2.E0); +#8997=ORIENTED_EDGE('',*,*,#7627,.F.); +#8998=ORIENTED_EDGE('',*,*,#7656,.T.); +#9000=ORIENTED_EDGE('',*,*,#8999,.T.); +#9001=ORIENTED_EDGE('',*,*,#8984,.T.); +#9002=EDGE_LOOP('',(#8997,#8998,#9000,#9001)); +#9003=FACE_OUTER_BOUND('',#9002,.F.); +#9005=CARTESIAN_POINT('',(-5.463211195957E-1,-8.688519685227E2,-1.269E2)); +#9006=DIRECTION('',(0.E0,1.E0,0.E0)); +#9007=DIRECTION('',(1.E0,0.E0,0.E0)); +#9008=AXIS2_PLACEMENT_3D('',#9005,#9006,#9007); +#9009=CYLINDRICAL_SURFACE('',#9008,1.E1); +#9010=ORIENTED_EDGE('',*,*,#8999,.F.); +#9011=ORIENTED_EDGE('',*,*,#7720,.T.); +#9013=ORIENTED_EDGE('',*,*,#9012,.F.); +#9015=ORIENTED_EDGE('',*,*,#9014,.T.); +#9016=EDGE_LOOP('',(#9010,#9011,#9013,#9015)); +#9017=FACE_OUTER_BOUND('',#9016,.F.); +#9019=CARTESIAN_POINT('',(-7.729785106631E1,2.82E2,-1.699E2)); +#9020=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9021=DIRECTION('',(1.E0,0.E0,0.E0)); +#9022=AXIS2_PLACEMENT_3D('',#9019,#9020,#9021); +#9023=PLANE('',#9022); +#9025=ORIENTED_EDGE('',*,*,#9024,.F.); +#9026=ORIENTED_EDGE('',*,*,#9012,.T.); +#9027=ORIENTED_EDGE('',*,*,#7718,.F.); +#9029=ORIENTED_EDGE('',*,*,#9028,.T.); +#9031=ORIENTED_EDGE('',*,*,#9030,.F.); +#9033=ORIENTED_EDGE('',*,*,#9032,.T.); +#9035=ORIENTED_EDGE('',*,*,#9034,.F.); +#9037=ORIENTED_EDGE('',*,*,#9036,.T.); +#9038=EDGE_LOOP('',(#9025,#9026,#9027,#9029,#9031,#9033,#9035,#9037)); +#9039=FACE_OUTER_BOUND('',#9038,.F.); +#9041=CARTESIAN_POINT('',(0.E0,0.E0,-1.369E2)); +#9042=DIRECTION('',(0.E0,0.E0,1.E0)); +#9043=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9044=AXIS2_PLACEMENT_3D('',#9041,#9042,#9043); +#9045=PLANE('',#9044); +#9046=ORIENTED_EDGE('',*,*,#8986,.F.); +#9047=ORIENTED_EDGE('',*,*,#9014,.F.); +#9048=ORIENTED_EDGE('',*,*,#9024,.T.); +#9050=ORIENTED_EDGE('',*,*,#9049,.F.); +#9051=EDGE_LOOP('',(#9046,#9047,#9048,#9050)); +#9052=FACE_OUTER_BOUND('',#9051,.F.); +#9054=CARTESIAN_POINT('',(-5.519223417048E1,1.064124E3,-1.269E2)); +#9055=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9056=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9057=AXIS2_PLACEMENT_3D('',#9054,#9055,#9056); +#9058=CYLINDRICAL_SURFACE('',#9057,1.E1); +#9059=ORIENTED_EDGE('',*,*,#8972,.F.); +#9060=ORIENTED_EDGE('',*,*,#9049,.T.); +#9061=ORIENTED_EDGE('',*,*,#9036,.F.); +#9063=ORIENTED_EDGE('',*,*,#9062,.T.); +#9064=EDGE_LOOP('',(#9059,#9060,#9061,#9063)); +#9065=FACE_OUTER_BOUND('',#9064,.F.); +#9067=CARTESIAN_POINT('',(-6.519223417048E1,3.1641E2,-3.86E1)); +#9068=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9069=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9070=AXIS2_PLACEMENT_3D('',#9067,#9068,#9069); +#9071=PLANE('',#9070); +#9072=ORIENTED_EDGE('',*,*,#8958,.F.); +#9073=ORIENTED_EDGE('',*,*,#9062,.F.); +#9074=ORIENTED_EDGE('',*,*,#9034,.T.); +#9076=ORIENTED_EDGE('',*,*,#9075,.F.); +#9078=ORIENTED_EDGE('',*,*,#9077,.F.); +#9080=ORIENTED_EDGE('',*,*,#9079,.F.); +#9081=ORIENTED_EDGE('',*,*,#8361,.T.); +#9082=ORIENTED_EDGE('',*,*,#8521,.F.); +#9083=ORIENTED_EDGE('',*,*,#8567,.F.); +#9084=ORIENTED_EDGE('',*,*,#8582,.T.); +#9085=EDGE_LOOP('',(#9072,#9073,#9074,#9076,#9078,#9080,#9081,#9082,#9083, +#9084)); +#9086=FACE_OUTER_BOUND('',#9085,.F.); +#9088=CARTESIAN_POINT('',(-4.939223417048E1,-9.140899009060E2,-1.541E2)); +#9089=DIRECTION('',(0.E0,1.E0,0.E0)); +#9090=DIRECTION('',(0.E0,0.E0,-1.E0)); +#9091=AXIS2_PLACEMENT_3D('',#9088,#9089,#9090); +#9092=CYLINDRICAL_SURFACE('',#9091,1.58E1); +#9093=ORIENTED_EDGE('',*,*,#9032,.F.); +#9095=ORIENTED_EDGE('',*,*,#9094,.T.); +#9097=ORIENTED_EDGE('',*,*,#9096,.F.); +#9098=ORIENTED_EDGE('',*,*,#9075,.T.); +#9099=EDGE_LOOP('',(#9093,#9095,#9097,#9098)); +#9100=FACE_OUTER_BOUND('',#9099,.F.); +#9102=CARTESIAN_POINT('',(0.E0,0.E0,-1.699E2)); +#9103=DIRECTION('',(0.E0,0.E0,1.E0)); +#9104=DIRECTION('',(0.E0,1.E0,0.E0)); +#9105=AXIS2_PLACEMENT_3D('',#9102,#9103,#9104); +#9106=PLANE('',#9105); +#9107=ORIENTED_EDGE('',*,*,#9030,.T.); +#9109=ORIENTED_EDGE('',*,*,#9108,.F.); +#9111=ORIENTED_EDGE('',*,*,#9110,.F.); +#9113=ORIENTED_EDGE('',*,*,#9112,.F.); +#9114=ORIENTED_EDGE('',*,*,#9094,.F.); +#9115=EDGE_LOOP('',(#9107,#9109,#9111,#9113,#9114)); +#9116=FACE_OUTER_BOUND('',#9115,.F.); +#9118=CARTESIAN_POINT('',(-6.346321119596E0,1.064124E3,-1.541E2)); +#9119=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9120=DIRECTION('',(0.E0,0.E0,-1.E0)); +#9121=AXIS2_PLACEMENT_3D('',#9118,#9119,#9120); +#9122=CYLINDRICAL_SURFACE('',#9121,1.58E1); +#9123=ORIENTED_EDGE('',*,*,#9028,.F.); +#9124=ORIENTED_EDGE('',*,*,#7716,.T.); +#9126=ORIENTED_EDGE('',*,*,#9125,.F.); +#9127=ORIENTED_EDGE('',*,*,#9108,.T.); +#9128=EDGE_LOOP('',(#9123,#9124,#9126,#9127)); +#9129=FACE_OUTER_BOUND('',#9128,.F.); +#9131=CARTESIAN_POINT('',(1.356455263463E1,1.988180543384E2,-1.766428122845E2)); +#9132=CARTESIAN_POINT('',(1.357977330416E1,2.023379414872E2,-1.766352608087E2)); +#9133=CARTESIAN_POINT('',(1.336104677040E1,2.091683660459E2,-1.766062003805E2)); +#9134=CARTESIAN_POINT('',(1.185622759352E1,2.182422686976E2,-1.765320599334E2)); +#9135=CARTESIAN_POINT('',(8.929675183413E0,2.254843736876E2,-1.764454711188E2)); +#9136=CARTESIAN_POINT('',(2.880022558971E0,2.326179522728E2,-1.763242212478E2)); +#9137=CARTESIAN_POINT('',(-8.527707643042E0,2.370490405988E2, +-1.762034835390E2)); +#9138=CARTESIAN_POINT('',(-2.077751444071E1,2.376129915243E2, +-1.762612316683E2)); +#9139=CARTESIAN_POINT('',(-2.765847073683E1,2.375077978495E2, +-1.763426356600E2)); +#9140=CARTESIAN_POINT('',(1.445484023622E1,1.988038333673E2,-1.755260887585E2)); +#9141=CARTESIAN_POINT('',(1.447114093775E1,2.023972810276E2,-1.755214649137E2)); +#9142=CARTESIAN_POINT('',(1.424316058959E1,2.093716552290E2,-1.755031111226E2)); +#9143=CARTESIAN_POINT('',(1.268901157537E1,2.186471524529E2,-1.754569666006E2)); +#9144=CARTESIAN_POINT('',(9.682951238749E0,2.260681694413E2,-1.754046041927E2)); +#9145=CARTESIAN_POINT('',(3.490750512907E0,2.334149062558E2,-1.753304298290E2)); +#9146=CARTESIAN_POINT('',(-8.161259562108E0,2.380627077445E2, +-1.752536057338E2)); +#9147=CARTESIAN_POINT('',(-2.065605495771E1,2.387236208036E2, +-1.752924530729E2)); +#9148=CARTESIAN_POINT('',(-2.767204918244E1,2.386452099025E2, +-1.753443132985E2)); +#9149=CARTESIAN_POINT('',(1.617626716921E1,1.987765103308E2,-1.732154529151E2)); +#9150=CARTESIAN_POINT('',(1.619445330261E1,2.025125127584E2,-1.732152801577E2)); +#9151=CARTESIAN_POINT('',(1.594820483523E1,2.097652830579E2,-1.732136759747E2)); +#9152=CARTESIAN_POINT('',(1.429747303325E1,2.194267908173E2,-1.732121827070E2)); +#9153=CARTESIAN_POINT('',(1.113574389638E1,2.271850800787E2,-1.732149414470E2)); +#9154=CARTESIAN_POINT('',(4.667422320677E0,2.349246850136E2,-1.732172121987E2)); +#9155=CARTESIAN_POINT('',(-7.450022633257E0,2.399628378413E2, +-1.732132787228E2)); +#9156=CARTESIAN_POINT('',(-2.041831173421E1,2.407947985602E2, +-1.732253209486E2)); +#9157=CARTESIAN_POINT('',(-2.769718004587E1,2.407617719929E2, +-1.732327031504E2)); +#9158=CARTESIAN_POINT('',(1.861638452016E1,1.987374898437E2,-1.696712987737E2)); +#9159=CARTESIAN_POINT('',(1.863726790373E1,2.026783684654E2,-1.696756523748E2)); +#9160=CARTESIAN_POINT('',(1.836580628026E1,2.103310547974E2,-1.696926035726E2)); +#9161=CARTESIAN_POINT('',(1.657990999925E1,2.205432761578E2,-1.697426778216E2)); +#9162=CARTESIAN_POINT('',(1.319919834488E1,2.287770530208E2,-1.698099589898E2)); +#9163=CARTESIAN_POINT('',(6.341171663811E0,2.370600380886E2,-1.699021295293E2)); +#9164=CARTESIAN_POINT('',(-6.432791135730E0,2.426139302954E2, +-1.699840462686E2)); +#9165=CARTESIAN_POINT('',(-2.007669122018E1,2.436384776767E2, +-1.699629663146E2)); +#9166=CARTESIAN_POINT('',(-2.773375377247E1,2.436406612017E2, +-1.699165398067E2)); +#9167=CARTESIAN_POINT('',(2.087502464671E1,1.987013912452E2,-1.659856425164E2)); +#9168=CARTESIAN_POINT('',(2.089837189407E1,2.028334450096E2,-1.659911892539E2)); +#9169=CARTESIAN_POINT('',(2.060451844699E1,2.108585156783E2,-1.660158097415E2)); +#9170=CARTESIAN_POINT('',(1.869648576062E1,2.215777529725E2,-1.660904165947E2)); +#9171=CARTESIAN_POINT('',(1.511642749159E1,2.302421721594E2,-1.661892347539E2)); +#9172=CARTESIAN_POINT('',(7.900136630558E0,2.390059242280E2,-1.663256498547E2)); +#9173=CARTESIAN_POINT('',(-5.480917603938E0,2.449854948728E2, +-1.664512574635E2)); +#9174=CARTESIAN_POINT('',(-1.975492651696E1,2.461283214405E2, +-1.664177491838E2)); +#9175=CARTESIAN_POINT('',(-2.776792272720E1,2.461306721611E2, +-1.663472265686E2)); +#9176=CARTESIAN_POINT('',(2.342301630339E1,1.986610300466E2,-1.608880494629E2)); +#9177=CARTESIAN_POINT('',(2.344862827953E1,2.030087086686E2,-1.608904492422E2)); +#9178=CARTESIAN_POINT('',(2.313018277440E1,2.114516332047E2,-1.609078237275E2)); +#9179=CARTESIAN_POINT('',(2.108726100350E1,2.227261283056E2,-1.609685206665E2)); +#9180=CARTESIAN_POINT('',(1.728529191868E1,2.318460423326E2,-1.610513577806E2)); +#9181=CARTESIAN_POINT('',(9.666827599884E0,2.410942080498E2,-1.611668437269E2)); +#9182=CARTESIAN_POINT('',(-4.393781111193E0,2.474512838336E2, +-1.612800717517E2)); +#9183=CARTESIAN_POINT('',(-1.938339675217E1,2.486480727743E2, +-1.612732063192E2)); +#9184=CARTESIAN_POINT('',(-2.780739089207E1,2.486172875050E2, +-1.612283376307E2)); +#9185=CARTESIAN_POINT('',(2.536549336987E1,1.986303373709E2,-1.539421525386E2)); +#9186=CARTESIAN_POINT('',(2.539181688539E1,2.031419119165E2,-1.539427995079E2)); +#9187=CARTESIAN_POINT('',(2.505778549147E1,2.118995005498E2,-1.539481670642E2)); +#9188=CARTESIAN_POINT('',(2.292125502036E1,2.235640351192E2,-1.539670589841E2)); +#9189=CARTESIAN_POINT('',(1.895911910382E1,2.329720183537E2,-1.539922932897E2)); +#9190=CARTESIAN_POINT('',(1.104528414961E1,2.424856608929E2,-1.540252776770E2)); +#9191=CARTESIAN_POINT('',(-3.510083824950E0,2.489918173528E2, +-1.540610342266E2)); +#9192=CARTESIAN_POINT('',(-1.906931585892E1,2.501929182870E2, +-1.540901685185E2)); +#9193=CARTESIAN_POINT('',(-2.784097249954E1,2.501457905138E2, +-1.541020064561E2)); +#9194=CARTESIAN_POINT('',(2.576003277396E1,1.986193988675E2,-1.480313263293E2)); +#9195=CARTESIAN_POINT('',(2.578541578833E1,2.031894849482E2,-1.480316855463E2)); +#9196=CARTESIAN_POINT('',(2.545438009858E1,2.120601925386E2,-1.480343958247E2)); +#9197=CARTESIAN_POINT('',(2.331673192841E1,2.238449189555E2,-1.480435481291E2)); +#9198=CARTESIAN_POINT('',(1.934259723250E1,2.333162186050E2,-1.480551997124E2)); +#9199=CARTESIAN_POINT('',(1.139799119094E1,2.428578297639E2,-1.480675185835E2)); +#9200=CARTESIAN_POINT('',(-3.225003306766E0,2.493390667871E2, +-1.480709259674E2)); +#9201=CARTESIAN_POINT('',(-1.895101072115E1,2.505287247443E2, +-1.480762794800E2)); +#9202=CARTESIAN_POINT('',(-2.785337653952E1,2.504867066861E2, +-1.480803518491E2)); +#9203=CARTESIAN_POINT('',(2.586397615665E1,1.986146946878E2,-1.449862642845E2)); +#9204=CARTESIAN_POINT('',(2.588869554161E1,2.032100183239E2,-1.449860437791E2)); +#9205=CARTESIAN_POINT('',(2.556047518390E1,2.121296560548E2,-1.449868225387E2)); +#9206=CARTESIAN_POINT('',(2.342878718047E1,2.239635027605E2,-1.449907753458E2)); +#9207=CARTESIAN_POINT('',(1.945885656771E1,2.334562996380E2,-1.449955008833E2)); +#9208=CARTESIAN_POINT('',(1.151618764719E1,2.429996959147E2,-1.449971849427E2)); +#9209=CARTESIAN_POINT('',(-3.113938419218E0,2.494549701812E2, +-1.449851407614E2)); +#9210=CARTESIAN_POINT('',(-1.890121862881E1,2.506319228298E2, +-1.449790812367E2)); +#9211=CARTESIAN_POINT('',(-2.785862204193E1,2.505903298995E2, +-1.449787123427E2)); +#9212=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#9131,#9132,#9133,#9134,#9135,#9136, +#9137,#9138,#9139),(#9140,#9141,#9142,#9143,#9144,#9145,#9146,#9147,#9148),( +#9149,#9150,#9151,#9152,#9153,#9154,#9155,#9156,#9157),(#9158,#9159,#9160,#9161, +#9162,#9163,#9164,#9165,#9166),(#9167,#9168,#9169,#9170,#9171,#9172,#9173,#9174, +#9175),(#9176,#9177,#9178,#9179,#9180,#9181,#9182,#9183,#9184),(#9185,#9186, +#9187,#9188,#9189,#9190,#9191,#9192,#9193),(#9194,#9195,#9196,#9197,#9198,#9199, +#9200,#9201,#9202),(#9203,#9204,#9205,#9206,#9207,#9208,#9209,#9210,#9211)), +.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1,1,1,1,4),(4,1,1,1,1,1,4),(-1.662060469505E-1, +-2.613471780889E-2,1.204559561797E-1,2.670466301684E-1,4.136373041570E-1, +7.068186521343E-1,1.012243145402E0),(4.958152984222E-1,5.625E-1,6.25E-1, +6.875E-1,7.5E-1,8.75E-1,1.004158548838E0),.UNSPECIFIED.); +#9213=ORIENTED_EDGE('',*,*,#9110,.T.); +#9214=ORIENTED_EDGE('',*,*,#9125,.T.); +#9215=ORIENTED_EDGE('',*,*,#7714,.T.); +#9217=ORIENTED_EDGE('',*,*,#9216,.T.); +#9218=ORIENTED_EDGE('',*,*,#7993,.T.); +#9220=ORIENTED_EDGE('',*,*,#9219,.T.); +#9222=ORIENTED_EDGE('',*,*,#9221,.F.); +#9223=EDGE_LOOP('',(#9213,#9214,#9215,#9217,#9218,#9220,#9222)); +#9224=FACE_OUTER_BOUND('',#9223,.F.); +#9226=CARTESIAN_POINT('',(9.019349234767E0,2.471403198546E2,-5.176324243220E1)); +#9227=CARTESIAN_POINT('',(8.358361252626E0,2.462143213538E2,-8.358880296559E1)); +#9228=CARTESIAN_POINT('',(7.697373270485E0,2.452883228531E2,-1.154143634990E2)); +#9229=CARTESIAN_POINT('',(7.036385288343E0,2.443623243524E2,-1.472399240324E2)); +#9230=CARTESIAN_POINT('',(9.177832224060E0,2.470549201647E2,-5.176324663603E1)); +#9231=CARTESIAN_POINT('',(8.514013299920E0,2.461309069758E2,-8.358880734764E1)); +#9232=CARTESIAN_POINT('',(7.850194375780E0,2.452068937868E2,-1.154143680592E2)); +#9233=CARTESIAN_POINT('',(7.186375451640E0,2.442828805979E2,-1.472399287708E2)); +#9234=CARTESIAN_POINT('',(1.283356102706E1,2.450516657933E2,-5.176334530746E1)); +#9235=CARTESIAN_POINT('',(1.210421683443E1,2.441738986471E2,-8.358891009165E1)); +#9236=CARTESIAN_POINT('',(1.137487264179E1,2.432961315010E2,-1.154144748758E2)); +#9237=CARTESIAN_POINT('',(1.064552844915E1,2.424183643548E2,-1.472400396600E2)); +#9238=CARTESIAN_POINT('',(1.903908880816E1,2.401359602655E2,-5.176358316394E1)); +#9239=CARTESIAN_POINT('',(1.818820630951E1,2.393573146156E2,-8.358915281872E1)); +#9240=CARTESIAN_POINT('',(1.733732381086E1,2.385786689657E2,-1.154147224735E2)); +#9241=CARTESIAN_POINT('',(1.648644131221E1,2.378000233157E2,-1.472402921283E2)); +#9242=CARTESIAN_POINT('',(2.533719031333E1,2.295402016447E2,-5.176366098921E1)); +#9243=CARTESIAN_POINT('',(2.431663278285E1,2.289463391118E2,-8.358920944580E1)); +#9244=CARTESIAN_POINT('',(2.329607525236E1,2.283524765789E2,-1.154147579024E2)); +#9245=CARTESIAN_POINT('',(2.227551772187E1,2.277586140460E2,-1.472403063590E2)); +#9246=CARTESIAN_POINT('',(2.872884738636E1,2.156941729925E2,-5.176381133307E1)); +#9247=CARTESIAN_POINT('',(2.758386107610E1,2.153567311670E2,-8.358936973926E1)); +#9248=CARTESIAN_POINT('',(2.643887476585E1,2.150192893414E2,-1.154149281455E2)); +#9249=CARTESIAN_POINT('',(2.529388845559E1,2.146818475159E2,-1.472404865516E2)); +#9250=CARTESIAN_POINT('',(2.930714323877E1,2.047160384681E2,-5.176391129543E1)); +#9251=CARTESIAN_POINT('',(2.813542960473E1,2.046063717736E2,-8.358947734398E1)); +#9252=CARTESIAN_POINT('',(2.696371597069E1,2.044967050790E2,-1.154150433925E2)); +#9253=CARTESIAN_POINT('',(2.579200233665E1,2.043870383845E2,-1.472406094411E2)); +#9254=CARTESIAN_POINT('',(2.929735727168E1,1.991191393367E2,-5.176390960375E1)); +#9255=CARTESIAN_POINT('',(2.812609591948E1,1.991266928287E2,-8.358947552292E1)); +#9256=CARTESIAN_POINT('',(2.695483456728E1,1.991342463207E2,-1.154150414421E2)); +#9257=CARTESIAN_POINT('',(2.578357321508E1,1.991417998127E2,-1.472406073612E2)); +#9258=CARTESIAN_POINT('',(2.929673167097E1,1.989387702950E2,-5.176390949292E1)); +#9259=CARTESIAN_POINT('',(2.812549943132E1,1.989501023798E2,-8.358947540361E1)); +#9260=CARTESIAN_POINT('',(2.695426719167E1,1.989614344647E2,-1.154150413143E2)); +#9261=CARTESIAN_POINT('',(2.578303495202E1,1.989727665495E2,-1.472406072250E2)); +#9262=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#9226,#9227,#9228,#9229),(#9230, +#9231,#9232,#9233),(#9234,#9235,#9236,#9237),(#9238,#9239,#9240,#9241),(#9242, +#9243,#9244,#9245),(#9246,#9247,#9248,#9249),(#9250,#9251,#9252,#9253),(#9254, +#9255,#9256,#9257),(#9258,#9259,#9260,#9261)),.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1, +1,1,1,4),(4,4),(-1.147164772909E-2,0.E0,2.545315118608E-1,5.030210079074E-1, +7.515105039536E-1,1.E0,1.008274408961E0),(-9.803921569561E-3,1.009803921617E0), +.UNSPECIFIED.); +#9263=ORIENTED_EDGE('',*,*,#7712,.T.); +#9264=ORIENTED_EDGE('',*,*,#7807,.F.); +#9265=ORIENTED_EDGE('',*,*,#7857,.F.); +#9266=ORIENTED_EDGE('',*,*,#9216,.F.); +#9267=EDGE_LOOP('',(#9263,#9264,#9265,#9266)); +#9268=FACE_OUTER_BOUND('',#9267,.F.); +#9270=CARTESIAN_POINT('',(4.555367888040E1,2.531015233771E2,-1.760029609344E2)); +#9271=DIRECTION('',(0.E0,0.E0,-1.E0)); +#9272=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9273=AXIS2_PLACEMENT_3D('',#9270,#9271,#9272); +#9274=PLANE('',#9273); +#9275=ORIENTED_EDGE('',*,*,#8290,.F.); +#9277=ORIENTED_EDGE('',*,*,#9276,.T.); +#9278=ORIENTED_EDGE('',*,*,#9219,.F.); +#9279=ORIENTED_EDGE('',*,*,#7991,.T.); +#9280=EDGE_LOOP('',(#9275,#9277,#9278,#9279)); +#9281=FACE_OUTER_BOUND('',#9280,.F.); +#9283=ORIENTED_EDGE('',*,*,#9282,.T.); +#9285=ORIENTED_EDGE('',*,*,#9284,.T.); +#9286=EDGE_LOOP('',(#9283,#9285)); +#9287=FACE_BOUND('',#9286,.F.); +#9289=CARTESIAN_POINT('',(-6.755719130666E1,1.988180590295E2, +-1.766428167714E2)); +#9290=CARTESIAN_POINT('',(-6.757241185271E1,2.023379443425E2, +-1.766352652807E2)); +#9291=CARTESIAN_POINT('',(-6.735368522559E1,2.091683666119E2, +-1.766062048110E2)); +#9292=CARTESIAN_POINT('',(-6.584886647713E1,2.182422670659E2, +-1.765320642620E2)); +#9293=CARTESIAN_POINT('',(-6.292231438732E1,2.254843713348E2, +-1.764454753091E2)); +#9294=CARTESIAN_POINT('',(-5.687266233722E1,2.326179490604E2, +-1.763242252479E2)); +#9295=CARTESIAN_POINT('',(-4.546501618260E1,2.370490042487E2, +-1.762034882409E2)); +#9296=CARTESIAN_POINT('',(-3.321534956501E1,2.376129768150E2, +-1.762612345198E2)); +#9297=CARTESIAN_POINT('',(-2.633454006382E1,2.375077988979E2, +-1.763426353193E2)); +#9298=CARTESIAN_POINT('',(-6.844748166989E1,1.988038381110E2, +-1.755260899691E2)); +#9299=CARTESIAN_POINT('',(-6.846378224589E1,2.023972841313E2, +-1.755214661207E2)); +#9300=CARTESIAN_POINT('',(-6.823580177270E1,2.093716564547E2, +-1.755031123252E2)); +#9301=CARTESIAN_POINT('',(-6.668165304274E1,2.186471520787E2, +-1.754569677943E2)); +#9302=CARTESIAN_POINT('',(-6.367559278197E1,2.260681689100E2, +-1.754046053660E2)); +#9303=CARTESIAN_POINT('',(-5.748339218910E1,2.334149055477E2, +-1.753304309736E2)); +#9304=CARTESIAN_POINT('',(-4.583146717503E1,2.380626730259E2, +-1.752536074092E2)); +#9305=CARTESIAN_POINT('',(-3.333681386626E1,2.387236078666E2, +-1.752924534919E2)); +#9306=CARTESIAN_POINT('',(-2.632096880705E1,2.386452131395E2, +-1.753443116601E2)); +#9307=CARTESIAN_POINT('',(-7.016891085549E1,1.987765152266E2, +-1.732154510428E2)); +#9308=CARTESIAN_POINT('',(-7.018709685490E1,2.025125161391E2, +-1.732152782890E2)); +#9309=CARTESIAN_POINT('',(-6.994084823168E1,2.097652848572E2, +-1.732136741213E2)); +#9310=CARTESIAN_POINT('',(-6.829011660092E1,2.194267914600E2, +-1.732121808935E2)); +#9311=CARTESIAN_POINT('',(-6.512838733421E1,2.271850809997E2, +-1.732149396825E2)); +#9312=CARTESIAN_POINT('',(-5.866006552945E1,2.349246862589E2, +-1.732172105024E2)); +#9313=CARTESIAN_POINT('',(-4.654270842261E1,2.399628027285E2, +-1.732132771205E2)); +#9314=CARTESIAN_POINT('',(-3.357456599260E1,2.407947851872E2, +-1.732253190756E2)); +#9315=CARTESIAN_POINT('',(-2.629585198943E1,2.407617755270E2, +-1.732327010610E2)); +#9316=CARTESIAN_POINT('',(-7.260902994176E1,1.987374949811E2, +-1.696712939486E2)); +#9317=CARTESIAN_POINT('',(-7.262991317838E1,2.026783721482E2, +-1.696756475556E2)); +#9318=CARTESIAN_POINT('',(-7.235845137345E1,2.103310570923E2, +-1.696925987715E2)); +#9319=CARTESIAN_POINT('',(-7.057255519262E1,2.205432776065E2, +-1.697426730657E2)); +#9320=CARTESIAN_POINT('',(-6.719184325775E1,2.287770550806E2, +-1.698099543006E2)); +#9321=CARTESIAN_POINT('',(-6.033381607483E1,2.370600408397E2, +-1.699021249330E2)); +#9322=CARTESIAN_POINT('',(-4.755994543745E1,2.426138932418E2, +-1.699840411650E2)); +#9323=CARTESIAN_POINT('',(-3.391619901445E1,2.436384626789E2, +-1.699629621562E2)); +#9324=CARTESIAN_POINT('',(-2.625929848981E1,2.436406646962E2, +-1.699165376966E2)); +#9325=CARTESIAN_POINT('',(-7.486766922401E1,1.987013966481E2, +-1.659856383679E2)); +#9326=CARTESIAN_POINT('',(-7.489101630984E1,2.028334488040E2, +-1.659911851080E2)); +#9327=CARTESIAN_POINT('',(-7.459716268210E1,2.108585178533E2, +-1.660158055950E2)); +#9328=CARTESIAN_POINT('',(-7.268913016379E1,2.215777540221E2, +-1.660904124402E2)); +#9329=CARTESIAN_POINT('',(-6.910907169279E1,2.302421736356E2, +-1.661892306051E2)); +#9330=CARTESIAN_POINT('',(-6.189278046682E1,2.390059261692E2, +-1.663256457148E2)); +#9331=CARTESIAN_POINT('',(-4.851182304504E1,2.449854536608E2, +-1.664512524219E2)); +#9332=CARTESIAN_POINT('',(-3.423797503710E1,2.461283031097E2, +-1.664177456725E2)); +#9333=CARTESIAN_POINT('',(-2.622514860954E1,2.461306744196E2, +-1.663472262284E2)); +#9334=CARTESIAN_POINT('',(-7.741565973504E1,1.986610357519E2, +-1.608880462163E2)); +#9335=CARTESIAN_POINT('',(-7.744127153380E1,2.030087125726E2, +-1.608904459978E2)); +#9336=CARTESIAN_POINT('',(-7.712282585059E1,2.114516351922E2, +-1.609078204750E2)); +#9337=CARTESIAN_POINT('',(-7.507990433264E1,2.227261288101E2, +-1.609685173789E2)); +#9338=CARTESIAN_POINT('',(-7.127793514919E1,2.318460430203E2, +-1.610513544597E2)); +#9339=CARTESIAN_POINT('',(-6.365947064981E1,2.410942089149E2, +-1.611668403598E2)); +#9340=CARTESIAN_POINT('',(-4.959896401581E1,2.474512385185E2, +-1.612800675212E2)); +#9341=CARTESIAN_POINT('',(-3.460951763034E1,2.486480520257E2, +-1.612732030675E2)); +#9342=CARTESIAN_POINT('',(-2.618570247138E1,2.486172900969E2, +-1.612283366946E2)); +#9343=CARTESIAN_POINT('',(-7.935813577743E1,1.986303433069E2, +-1.539421506052E2)); +#9344=CARTESIAN_POINT('',(-7.938445910669E1,2.031419158978E2, +-1.539427975769E2)); +#9345=CARTESIAN_POINT('',(-7.905042753886E1,2.118995023771E2, +-1.539481651344E2)); +#9346=CARTESIAN_POINT('',(-7.691389739303E1,2.235640351992E2, +-1.539670570498E2)); +#9347=CARTESIAN_POINT('',(-7.295176147161E1,2.329720184491E2, +-1.539922913517E2)); +#9348=CARTESIAN_POINT('',(-6.503792650589E1,2.424856609919E2, +-1.540252757329E2)); +#9349=CARTESIAN_POINT('',(-5.048266449007E1,2.489917700691E2, +-1.540610320105E2)); +#9350=CARTESIAN_POINT('',(-3.492360872001E1,2.501928965882E2, +-1.540901660238E2)); +#9351=CARTESIAN_POINT('',(-2.615213949806E1,2.501457931389E2, +-1.541020038521E2)); +#9352=CARTESIAN_POINT('',(-7.975267507048E1,1.986194048827E2, +-1.480313256663E2)); +#9353=CARTESIAN_POINT('',(-7.977805790133E1,2.031894889715E2, +-1.480316848838E2)); +#9354=CARTESIAN_POINT('',(-7.944702203581E1,2.120601943532E2, +-1.480343951619E2)); +#9355=CARTESIAN_POINT('',(-7.730937419320E1,2.238449189822E2, +-1.480435474637E2)); +#9356=CARTESIAN_POINT('',(-7.333523949808E1,2.333162186369E2, +-1.480551990454E2)); +#9357=CARTESIAN_POINT('',(-6.539063345675E1,2.428578297965E2, +-1.480675179142E2)); +#9358=CARTESIAN_POINT('',(-5.076774543129E1,2.493390196225E2, +-1.480709252700E2)); +#9359=CARTESIAN_POINT('',(-3.504191685583E1,2.505287031834E2, +-1.480762787076E2)); +#9360=CARTESIAN_POINT('',(-2.613974246087E1,2.504867089597E2, +-1.480803509551E2)); +#9361=CARTESIAN_POINT('',(-7.985661842924E1,1.986147007372E2, +-1.449862642579E2)); +#9362=CARTESIAN_POINT('',(-7.988133763296E1,2.032100223650E2, +-1.449860437532E2)); +#9363=CARTESIAN_POINT('',(-7.955311709855E1,2.121296578619E2, +-1.449868225130E2)); +#9364=CARTESIAN_POINT('',(-7.742142942059E1,2.239635027615E2, +-1.449907753195E2)); +#9365=CARTESIAN_POINT('',(-7.345149880786E1,2.334562996392E2, +-1.449955008569E2)); +#9366=CARTESIAN_POINT('',(-6.550882988737E1,2.429996959158E2, +-1.449971849162E2)); +#9367=CARTESIAN_POINT('',(-5.087881034703E1,2.494549231793E2, +-1.449851408225E2)); +#9368=CARTESIAN_POINT('',(-3.509171004924E1,2.506319014760E2, +-1.449790813199E2)); +#9369=CARTESIAN_POINT('',(-2.613449990708E1,2.505903321272E2, +-1.449787123357E2)); +#9370=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#9289,#9290,#9291,#9292,#9293,#9294, +#9295,#9296,#9297),(#9298,#9299,#9300,#9301,#9302,#9303,#9304,#9305,#9306),( +#9307,#9308,#9309,#9310,#9311,#9312,#9313,#9314,#9315),(#9316,#9317,#9318,#9319, +#9320,#9321,#9322,#9323,#9324),(#9325,#9326,#9327,#9328,#9329,#9330,#9331,#9332, +#9333),(#9334,#9335,#9336,#9337,#9338,#9339,#9340,#9341,#9342),(#9343,#9344, +#9345,#9346,#9347,#9348,#9349,#9350,#9351),(#9352,#9353,#9354,#9355,#9356,#9357, +#9358,#9359,#9360),(#9361,#9362,#9363,#9364,#9365,#9366,#9367,#9368,#9369)), +.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1,1,1,1,4),(4,1,1,1,1,1,4),(-1.662062349900E-1, +-2.613449069705E-2,1.204561508414E-1,2.670467923799E-1,4.136374339183E-1, +7.068187169953E-1,1.012243146279E0),(4.958153276845E-1,5.625E-1,6.25E-1, +6.875E-1,7.5E-1,8.75E-1,1.004156243157E0),.UNSPECIFIED.); +#9371=ORIENTED_EDGE('',*,*,#9077,.T.); +#9372=ORIENTED_EDGE('',*,*,#9096,.T.); +#9373=ORIENTED_EDGE('',*,*,#9112,.T.); +#9374=ORIENTED_EDGE('',*,*,#9221,.T.); +#9375=ORIENTED_EDGE('',*,*,#9276,.F.); +#9376=ORIENTED_EDGE('',*,*,#8288,.F.); +#9378=ORIENTED_EDGE('',*,*,#9377,.F.); +#9379=EDGE_LOOP('',(#9371,#9372,#9373,#9374,#9375,#9376,#9378)); +#9380=FACE_OUTER_BOUND('',#9379,.F.); +#9382=CARTESIAN_POINT('',(-6.479157613847E1,2.461177827040E2, +-5.176313885275E1)); +#9383=CARTESIAN_POINT('',(-6.409838735469E1,2.452149744834E2, +-8.358782528857E1)); +#9384=CARTESIAN_POINT('',(-6.340519857091E1,2.443121662629E2, +-1.154125117244E2)); +#9385=CARTESIAN_POINT('',(-6.271200978713E1,2.434093580423E2, +-1.472371981602E2)); +#9386=CARTESIAN_POINT('',(-6.493942318885E1,2.460272972216E2, +-5.176314331204E1)); +#9387=CARTESIAN_POINT('',(-6.424352554239E1,2.451264973407E2, +-8.358782992242E1)); +#9388=CARTESIAN_POINT('',(-6.354762789594E1,2.442256974597E2, +-1.154125165328E2)); +#9389=CARTESIAN_POINT('',(-6.285173024949E1,2.433248975787E2, +-1.472372031432E2)); +#9390=CARTESIAN_POINT('',(-6.830722726455E1,2.439325294904E2, +-5.176324568026E1)); +#9391=CARTESIAN_POINT('',(-6.754936655463E1,2.430779196004E2, +-8.358793612850E1)); +#9392=CARTESIAN_POINT('',(-6.679150584472E1,2.422233097104E2, +-1.154126265767E2)); +#9393=CARTESIAN_POINT('',(-6.603364513480E1,2.413686998204E2, +-1.472373170250E2)); +#9394=CARTESIAN_POINT('',(-7.398903931054E1,2.388952896187E2, +-5.176344951539E1)); +#9395=CARTESIAN_POINT('',(-7.311508621619E1,2.381385931255E2, +-8.358814030359E1)); +#9396=CARTESIAN_POINT('',(-7.224113312183E1,2.373818966323E2, +-1.154128310918E2)); +#9397=CARTESIAN_POINT('',(-7.136718002748E1,2.366252001390E2, +-1.472375218800E2)); +#9398=CARTESIAN_POINT('',(-7.970569521307E1,2.283838675489E2, +-5.176351487347E1)); +#9399=CARTESIAN_POINT('',(-7.867218939722E1,2.278106258791E2, +-8.358818723059E1)); +#9400=CARTESIAN_POINT('',(-7.763868358138E1,2.272373842093E2, +-1.154128595877E2)); +#9401=CARTESIAN_POINT('',(-7.660517776554E1,2.266641425395E2, +-1.472375319448E2)); +#9402=CARTESIAN_POINT('',(-8.277178892953E1,2.149743866278E2, +-5.176366704393E1)); +#9403=CARTESIAN_POINT('',(-8.162441482482E1,2.146516807031E2, +-8.358835032545E1)); +#9404=CARTESIAN_POINT('',(-8.047704072012E1,2.143289747785E2, +-1.154130336070E2)); +#9405=CARTESIAN_POINT('',(-7.932966661541E1,2.140062688538E2, +-1.472377168885E2)); +#9406=CARTESIAN_POINT('',(-8.329901762941E1,2.044808673641E2, +-5.176375754425E1)); +#9407=CARTESIAN_POINT('',(-8.212737358794E1,2.043761329657E2, +-8.358844756326E1)); +#9408=CARTESIAN_POINT('',(-8.095572954647E1,2.042713985673E2, +-1.154131375823E2)); +#9409=CARTESIAN_POINT('',(-7.978408550499E1,2.041666641689E2, +-1.472378276013E2)); +#9410=CARTESIAN_POINT('',(-8.329002877864E1,1.991327006422E2, +-5.176375600118E1)); +#9411=CARTESIAN_POINT('',(-8.211879852124E1,1.991399698172E2, +-8.358844590528E1)); +#9412=CARTESIAN_POINT('',(-8.094756826384E1,1.991472389922E2, +-1.154131358094E2)); +#9413=CARTESIAN_POINT('',(-7.977633800644E1,1.991545081673E2, +-1.472378257135E2)); +#9414=CARTESIAN_POINT('',(-8.328944989717E1,1.989591153762E2, +-5.176375589945E1)); +#9415=CARTESIAN_POINT('',(-8.211824645903E1,1.989700206630E2, +-8.358844579598E1)); +#9416=CARTESIAN_POINT('',(-8.094704302088E1,1.989809259497E2, +-1.154131356925E2)); +#9417=CARTESIAN_POINT('',(-7.977583958273E1,1.989918312365E2, +-1.472378255890E2)); +#9418=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#9382,#9383,#9384,#9385),(#9386, +#9387,#9388,#9389),(#9390,#9391,#9392,#9393),(#9394,#9395,#9396,#9397),(#9398, +#9399,#9400,#9401),(#9402,#9403,#9404,#9405),(#9406,#9407,#9408,#9409),(#9410, +#9411,#9412,#9413),(#9414,#9415,#9416,#9417)),.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1, +1,1,1,4),(4,4),(-1.166193257122E-2,0.E0,2.554308686219E-1,5.036205790817E-1, +7.518102895411E-1,1.E0,1.008325556445E0),(-9.806145342179E-3,1.009803965186E0), +.UNSPECIFIED.); +#9419=ORIENTED_EDGE('',*,*,#9079,.T.); +#9420=ORIENTED_EDGE('',*,*,#9377,.T.); +#9422=ORIENTED_EDGE('',*,*,#9421,.T.); +#9423=ORIENTED_EDGE('',*,*,#8363,.F.); +#9424=EDGE_LOOP('',(#9419,#9420,#9422,#9423)); +#9425=FACE_OUTER_BOUND('',#9424,.F.); +#9427=CARTESIAN_POINT('',(-8.328941841646E1,1.999943081111E2, +-5.176496614375E1)); +#9428=CARTESIAN_POINT('',(-8.211884061690E1,1.999835386094E2, +-8.357266236365E1)); +#9429=CARTESIAN_POINT('',(-8.094826281734E1,1.999727691078E2, +-1.153803585836E2)); +#9430=CARTESIAN_POINT('',(-7.977768501779E1,1.999619996062E2, +-1.471880548035E2)); +#9431=CARTESIAN_POINT('',(-8.328998873093E1,1.998228058224E2, +-5.176496624835E1)); +#9432=CARTESIAN_POINT('',(-8.211938395302E1,1.998156278125E2, +-8.357266247727E1)); +#9433=CARTESIAN_POINT('',(-8.094877917510E1,1.998084498026E2, +-1.153803587062E2)); +#9434=CARTESIAN_POINT('',(-7.977817439718E1,1.998012717927E2, +-1.471880549351E2)); +#9435=CARTESIAN_POINT('',(-8.330085210040E1,1.933373615968E2, +-5.176496819399E1)); +#9436=CARTESIAN_POINT('',(-8.212973710153E1,1.934659488271E2, +-8.357266458988E1)); +#9437=CARTESIAN_POINT('',(-8.095862210266E1,1.935945360573E2, +-1.153803609858E2)); +#9438=CARTESIAN_POINT('',(-7.978750710379E1,1.937231232875E2, +-1.471880573817E2)); +#9439=CARTESIAN_POINT('',(-8.251148897927E1,1.806044124477E2, +-5.176482680999E1)); +#9440=CARTESIAN_POINT('',(-8.137744807646E1,1.809956305636E2, +-8.357251106905E1)); +#9441=CARTESIAN_POINT('',(-8.024340717364E1,1.813868486796E2, +-1.153801953281E2)); +#9442=CARTESIAN_POINT('',(-7.910936627082E1,1.817780667955E2, +-1.471878795872E2)); +#9443=CARTESIAN_POINT('',(-7.775206920599E1,1.653410420126E2, +-5.176471077574E1)); +#9444=CARTESIAN_POINT('',(-7.678396577225E1,1.660054174381E2, +-8.357239424522E1)); +#9445=CARTESIAN_POINT('',(-7.581586233851E1,1.666697928635E2, +-1.153800777147E2)); +#9446=CARTESIAN_POINT('',(-7.484775890477E1,1.673341682889E2, +-1.471877611842E2)); +#9447=CARTESIAN_POINT('',(-7.124163187582E1,1.573883648738E2, +-5.176455407047E1)); +#9448=CARTESIAN_POINT('',(-7.042635656940E1,1.581947308990E2, +-8.357225248821E1)); +#9449=CARTESIAN_POINT('',(-6.961108126299E1,1.590010969242E2, +-1.153799509059E2)); +#9450=CARTESIAN_POINT('',(-6.879580595657E1,1.598074629494E2, +-1.471876493237E2)); +#9451=CARTESIAN_POINT('',(-6.657540137297E1,1.539802489077E2, +-5.176440879625E1)); +#9452=CARTESIAN_POINT('',(-6.584961232269E1,1.548577566018E2, +-8.357210399009E1)); +#9453=CARTESIAN_POINT('',(-6.512382327242E1,1.557352642959E2, +-1.153797991839E2)); +#9454=CARTESIAN_POINT('',(-6.439803422214E1,1.566127719900E2, +-1.471874943778E2)); +#9455=CARTESIAN_POINT('',(-6.546523894860E1,1.532624223132E2, +-5.176437545478E1)); +#9456=CARTESIAN_POINT('',(-6.476005850625E1,1.541555420191E2, +-8.357206958824E1)); +#9457=CARTESIAN_POINT('',(-6.405487806389E1,1.550486617249E2, +-1.153797637217E2)); +#9458=CARTESIAN_POINT('',(-6.334969762154E1,1.559417814307E2, +-1.471874578551E2)); +#9459=CARTESIAN_POINT('',(-6.532043110858E1,1.531702753717E2, +-5.176437113204E1)); +#9460=CARTESIAN_POINT('',(-6.461792828869E1,1.540654103217E2, +-8.357206512321E1)); +#9461=CARTESIAN_POINT('',(-6.391542546879E1,1.549605452717E2, +-1.153797591144E2)); +#9462=CARTESIAN_POINT('',(-6.321292264890E1,1.558556802217E2, +-1.471874531056E2)); +#9463=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#9427,#9428,#9429,#9430),(#9431, +#9432,#9433,#9434),(#9435,#9436,#9437,#9438),(#9439,#9440,#9441,#9442),(#9443, +#9444,#9445,#9446),(#9447,#9448,#9449,#9450),(#9451,#9452,#9453,#9454),(#9455, +#9456,#9457,#9458),(#9459,#9460,#9461,#9462)),.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1, +1,1,1,4),(4,4),(-8.340476564895E-3,0.E0,3.070812725160E-1,6.141625449274E-1, +9.212438173385E-1,1.E0,1.011738396065E0),(-9.803771986609E-3,1.009810571400E0), +.UNSPECIFIED.); +#9464=ORIENTED_EDGE('',*,*,#8343,.T.); +#9465=ORIENTED_EDGE('',*,*,#8365,.F.); +#9466=ORIENTED_EDGE('',*,*,#9421,.F.); +#9467=ORIENTED_EDGE('',*,*,#8286,.F.); +#9468=ORIENTED_EDGE('',*,*,#8331,.T.); +#9469=EDGE_LOOP('',(#9464,#9465,#9466,#9467,#9468)); +#9470=FACE_OUTER_BOUND('',#9469,.F.); +#9472=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-1.760029609344E2)); +#9473=DIRECTION('',(0.E0,0.E0,1.E0)); +#9474=DIRECTION('',(0.E0,1.E0,0.E0)); +#9475=AXIS2_PLACEMENT_3D('',#9472,#9473,#9474); +#9476=CYLINDRICAL_SURFACE('',#9475,1.5E1); +#9477=ORIENTED_EDGE('',*,*,#4823,.F.); +#9479=ORIENTED_EDGE('',*,*,#9478,.T.); +#9480=ORIENTED_EDGE('',*,*,#9282,.F.); +#9482=ORIENTED_EDGE('',*,*,#9481,.F.); +#9483=EDGE_LOOP('',(#9477,#9479,#9480,#9482)); +#9484=FACE_OUTER_BOUND('',#9483,.F.); +#9486=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-1.760029609344E2)); +#9487=DIRECTION('',(0.E0,0.E0,1.E0)); +#9488=DIRECTION('',(0.E0,1.E0,0.E0)); +#9489=AXIS2_PLACEMENT_3D('',#9486,#9487,#9488); +#9490=CYLINDRICAL_SURFACE('',#9489,1.5E1); +#9491=ORIENTED_EDGE('',*,*,#4825,.F.); +#9492=ORIENTED_EDGE('',*,*,#9481,.T.); +#9493=ORIENTED_EDGE('',*,*,#9284,.F.); +#9494=ORIENTED_EDGE('',*,*,#9478,.F.); +#9495=EDGE_LOOP('',(#9491,#9492,#9493,#9494)); +#9496=FACE_OUTER_BOUND('',#9495,.F.); +#9498=CARTESIAN_POINT('',(-2.699999999992E1,1.370471841019E2,-9.7E1)); +#9499=DIRECTION('',(0.E0,9.999619230642E-1,8.726535498375E-3)); +#9500=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9501=AXIS2_PLACEMENT_3D('',#9498,#9499,#9500); +#9502=CYLINDRICAL_SURFACE('',#9501,2.950073545538E1); +#9503=ORIENTED_EDGE('',*,*,#5330,.F.); +#9504=ORIENTED_EDGE('',*,*,#5232,.F.); +#9505=ORIENTED_EDGE('',*,*,#5281,.T.); +#9506=ORIENTED_EDGE('',*,*,#5302,.F.); +#9507=EDGE_LOOP('',(#9503,#9504,#9505,#9506)); +#9508=FACE_OUTER_BOUND('',#9507,.F.); +#9510=CARTESIAN_POINT('',(1.000988548E3,-2.18E2,-1.5E1)); +#9511=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9512=DIRECTION('',(0.E0,0.E0,1.E0)); +#9513=AXIS2_PLACEMENT_3D('',#9510,#9511,#9512); +#9514=CYLINDRICAL_SURFACE('',#9513,8.E0); +#9515=ORIENTED_EDGE('',*,*,#5099,.F.); +#9516=ORIENTED_EDGE('',*,*,#5161,.T.); +#9517=ORIENTED_EDGE('',*,*,#5184,.F.); +#9518=ORIENTED_EDGE('',*,*,#5070,.T.); +#9519=EDGE_LOOP('',(#9515,#9516,#9517,#9518)); +#9520=FACE_OUTER_BOUND('',#9519,.F.); +#9522=CARTESIAN_POINT('',(-8.5E1,2.95E2,-1.9E2)); +#9523=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9524=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9525=AXIS2_PLACEMENT_3D('',#9522,#9523,#9524); +#9526=PLANE('',#9525); +#9527=ORIENTED_EDGE('',*,*,#4745,.F.); +#9529=ORIENTED_EDGE('',*,*,#9528,.T.); +#9531=ORIENTED_EDGE('',*,*,#9530,.T.); +#9533=ORIENTED_EDGE('',*,*,#9532,.F.); +#9534=ORIENTED_EDGE('',*,*,#4832,.F.); +#9535=EDGE_LOOP('',(#9527,#9529,#9531,#9533,#9534)); +#9536=FACE_OUTER_BOUND('',#9535,.F.); +#9538=CARTESIAN_POINT('',(0.E0,0.E0,-7.5E1)); +#9539=DIRECTION('',(0.E0,0.E0,1.E0)); +#9540=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9541=AXIS2_PLACEMENT_3D('',#9538,#9539,#9540); +#9542=PLANE('',#9541); +#9543=ORIENTED_EDGE('',*,*,#4743,.F.); +#9545=ORIENTED_EDGE('',*,*,#9544,.F.); +#9547=ORIENTED_EDGE('',*,*,#9546,.F.); +#9549=ORIENTED_EDGE('',*,*,#9548,.F.); +#9550=ORIENTED_EDGE('',*,*,#9528,.F.); +#9551=EDGE_LOOP('',(#9543,#9545,#9547,#9549,#9550)); +#9552=FACE_OUTER_BOUND('',#9551,.F.); +#9554=CARTESIAN_POINT('',(-6.149999999992E1,-2.95E2,-6.E1)); +#9555=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9556=DIRECTION('',(0.E0,0.E0,-1.E0)); +#9557=AXIS2_PLACEMENT_3D('',#9554,#9555,#9556); +#9558=PLANE('',#9557); +#9560=ORIENTED_EDGE('',*,*,#9559,.T.); +#9562=ORIENTED_EDGE('',*,*,#9561,.T.); +#9563=ORIENTED_EDGE('',*,*,#9544,.T.); +#9564=ORIENTED_EDGE('',*,*,#4741,.F.); +#9566=ORIENTED_EDGE('',*,*,#9565,.F.); +#9568=ORIENTED_EDGE('',*,*,#9567,.T.); +#9570=ORIENTED_EDGE('',*,*,#9569,.F.); +#9571=EDGE_LOOP('',(#9560,#9562,#9563,#9564,#9566,#9568,#9570)); +#9572=FACE_OUTER_BOUND('',#9571,.F.); +#9574=CARTESIAN_POINT('',(-4.649999999992E1,-2.244427602564E2,-6.E1)); +#9575=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9576=DIRECTION('',(0.E0,0.E0,-1.E0)); +#9577=AXIS2_PLACEMENT_3D('',#9574,#9575,#9576); +#9578=PLANE('',#9577); +#9579=ORIENTED_EDGE('',*,*,#9559,.F.); +#9581=ORIENTED_EDGE('',*,*,#9580,.F.); +#9583=ORIENTED_EDGE('',*,*,#9582,.F.); +#9585=ORIENTED_EDGE('',*,*,#9584,.T.); +#9586=EDGE_LOOP('',(#9579,#9581,#9583,#9585)); +#9587=FACE_OUTER_BOUND('',#9586,.F.); +#9589=CARTESIAN_POINT('',(-4.649999999992E1,-2.244427602564E2,-9.38E1)); +#9590=DIRECTION('',(0.E0,0.E0,-1.E0)); +#9591=DIRECTION('',(0.E0,1.E0,0.E0)); +#9592=AXIS2_PLACEMENT_3D('',#9589,#9590,#9591); +#9593=PLANE('',#9592); +#9594=ORIENTED_EDGE('',*,*,#9569,.T.); +#9596=ORIENTED_EDGE('',*,*,#9595,.T.); +#9598=ORIENTED_EDGE('',*,*,#9597,.F.); +#9599=ORIENTED_EDGE('',*,*,#9580,.T.); +#9600=EDGE_LOOP('',(#9594,#9596,#9598,#9599)); +#9601=FACE_OUTER_BOUND('',#9600,.F.); +#9603=CARTESIAN_POINT('',(-6.426589295293E1,-6.5E1,0.E0)); +#9604=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9605=DIRECTION('',(0.E0,5.583341522870E-3,-9.999844130272E-1)); +#9606=AXIS2_PLACEMENT_3D('',#9603,#9604,#9605); +#9607=TOROIDAL_SURFACE('',#9606,1.695157990234E2,1.55E1); +#9608=ORIENTED_EDGE('',*,*,#9584,.F.); +#9610=ORIENTED_EDGE('',*,*,#9609,.T.); +#9611=ORIENTED_EDGE('',*,*,#9595,.F.); +#9612=ORIENTED_EDGE('',*,*,#9567,.F.); +#9614=ORIENTED_EDGE('',*,*,#9613,.F.); +#9616=ORIENTED_EDGE('',*,*,#9615,.F.); +#9618=ORIENTED_EDGE('',*,*,#9617,.T.); +#9619=ORIENTED_EDGE('',*,*,#9546,.T.); +#9620=ORIENTED_EDGE('',*,*,#9561,.F.); +#9621=EDGE_LOOP('',(#9608,#9610,#9611,#9612,#9614,#9616,#9618,#9619,#9620)); +#9622=FACE_OUTER_BOUND('',#9621,.F.); +#9624=CARTESIAN_POINT('',(-6.195969135355E1,-6.5E1,0.E0)); +#9625=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9626=DIRECTION('',(0.E0,0.E0,-1.E0)); +#9627=AXIS2_PLACEMENT_3D('',#9624,#9625,#9626); +#9628=CONICAL_SURFACE('',#9627,1.849153968566E2,8.927825336436E1); +#9629=ORIENTED_EDGE('',*,*,#9609,.F.); +#9630=ORIENTED_EDGE('',*,*,#9582,.T.); +#9631=ORIENTED_EDGE('',*,*,#9597,.T.); +#9632=EDGE_LOOP('',(#9629,#9630,#9631)); +#9633=FACE_OUTER_BOUND('',#9632,.F.); +#9635=CARTESIAN_POINT('',(-2.699999999992E1,-2.95E2,-9.8E1)); +#9636=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9637=DIRECTION('',(1.E0,0.E0,0.E0)); +#9638=AXIS2_PLACEMENT_3D('',#9635,#9636,#9637); +#9639=CYLINDRICAL_SURFACE('',#9638,3.45E1); +#9640=ORIENTED_EDGE('',*,*,#4779,.T.); +#9641=ORIENTED_EDGE('',*,*,#4765,.F.); +#9643=ORIENTED_EDGE('',*,*,#9642,.T.); +#9644=ORIENTED_EDGE('',*,*,#4677,.F.); +#9645=ORIENTED_EDGE('',*,*,#4664,.T.); +#9647=ORIENTED_EDGE('',*,*,#9646,.F.); +#9648=ORIENTED_EDGE('',*,*,#9613,.T.); +#9649=ORIENTED_EDGE('',*,*,#9565,.T.); +#9650=ORIENTED_EDGE('',*,*,#4739,.F.); +#9651=EDGE_LOOP('',(#9640,#9641,#9643,#9644,#9645,#9647,#9648,#9649,#9650)); +#9652=FACE_OUTER_BOUND('',#9651,.F.); +#9654=CARTESIAN_POINT('',(7.500000000076E0,-2.95E2,-9.8E1)); +#9655=DIRECTION('',(1.E0,0.E0,0.E0)); +#9656=DIRECTION('',(0.E0,0.E0,1.E0)); +#9657=AXIS2_PLACEMENT_3D('',#9654,#9655,#9656); +#9658=PLANE('',#9657); +#9659=ORIENTED_EDGE('',*,*,#4763,.F.); +#9660=ORIENTED_EDGE('',*,*,#4679,.T.); +#9661=ORIENTED_EDGE('',*,*,#9642,.F.); +#9662=EDGE_LOOP('',(#9659,#9660,#9661)); +#9663=FACE_OUTER_BOUND('',#9662,.F.); +#9665=CARTESIAN_POINT('',(8.5E1,-1.95E2,-1.9E2)); +#9666=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9667=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9668=AXIS2_PLACEMENT_3D('',#9665,#9666,#9667); +#9669=PLANE('',#9668); +#9670=ORIENTED_EDGE('',*,*,#4662,.T.); +#9671=ORIENTED_EDGE('',*,*,#4836,.T.); +#9673=ORIENTED_EDGE('',*,*,#9672,.F.); +#9675=ORIENTED_EDGE('',*,*,#9674,.T.); +#9676=ORIENTED_EDGE('',*,*,#9615,.T.); +#9677=ORIENTED_EDGE('',*,*,#9646,.T.); +#9678=EDGE_LOOP('',(#9670,#9671,#9673,#9675,#9676,#9677)); +#9679=FACE_OUTER_BOUND('',#9678,.F.); +#9681=CARTESIAN_POINT('',(-8.25E1,-1.975E2,-1.9E2)); +#9682=DIRECTION('',(0.E0,0.E0,-1.E0)); +#9683=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9684=AXIS2_PLACEMENT_3D('',#9681,#9682,#9683); +#9685=CYLINDRICAL_SURFACE('',#9684,1.75E1); +#9687=ORIENTED_EDGE('',*,*,#9686,.T.); +#9688=ORIENTED_EDGE('',*,*,#9672,.T.); +#9689=ORIENTED_EDGE('',*,*,#4834,.F.); +#9690=ORIENTED_EDGE('',*,*,#9532,.T.); +#9691=EDGE_LOOP('',(#9687,#9688,#9689,#9690)); +#9692=FACE_OUTER_BOUND('',#9691,.F.); +#9694=CARTESIAN_POINT('',(-7.415982029507E1,-6.5E1,0.E0)); +#9695=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9696=DIRECTION('',(0.E0,0.E0,-1.E0)); +#9697=AXIS2_PLACEMENT_3D('',#9694,#9695,#9696); +#9698=CONICAL_SURFACE('',#9697,1.856499021926E2,3.5E0); +#9699=ORIENTED_EDGE('',*,*,#9686,.F.); +#9700=ORIENTED_EDGE('',*,*,#9530,.F.); +#9701=ORIENTED_EDGE('',*,*,#9548,.T.); +#9702=ORIENTED_EDGE('',*,*,#9617,.F.); +#9703=ORIENTED_EDGE('',*,*,#9674,.F.); +#9704=EDGE_LOOP('',(#9699,#9700,#9701,#9702,#9703)); +#9705=FACE_OUTER_BOUND('',#9704,.F.); +#9707=CLOSED_SHELL('',(#4668,#4689,#4703,#4717,#4731,#4751,#4769,#4783,#4874, +#4889,#4903,#4917,#4952,#4968,#4983,#4995,#5010,#5024,#5046,#5061,#5087,#5105, +#5138,#5152,#5166,#5188,#5202,#5221,#5242,#5256,#5273,#5294,#5311,#5345,#5368, +#5384,#5401,#5421,#5436,#5450,#5468,#5482,#5513,#5528,#5541,#5572,#5591,#5606, +#5639,#5653,#5669,#5680,#5703,#5720,#5743,#5761,#5773,#5799,#5817,#5831,#5847, +#5867,#5884,#5922,#5939,#5953,#5970,#5990,#6005,#6024,#6038,#6051,#6063,#6076, +#6099,#6116,#6133,#6157,#6172,#6189,#6202,#6227,#6240,#6263,#6283,#6304,#6318, +#6332,#6347,#6361,#6382,#6481,#6613,#6725,#6737,#6755,#6768,#6783,#6824,#6880, +#6902,#6918,#6934,#6949,#6993,#7010,#7032,#7053,#7069,#7098,#7110,#7128,#7143, +#7165,#7180,#7192,#7205,#7222,#7235,#7248,#7261,#7274,#7287,#7302,#7314,#7329, +#7342,#7362,#7394,#7408,#7421,#7442,#7465,#7479,#7496,#7512,#7524,#7538,#7552, +#7567,#7580,#7606,#7619,#7645,#7660,#7675,#7687,#7701,#7726,#7741,#7754,#7767, +#7783,#7798,#7814,#7862,#7913,#7999,#8108,#8210,#8296,#8335,#8350,#8369,#8386, +#8401,#8430,#8444,#8511,#8527,#8541,#8558,#8572,#8587,#8600,#8626,#8639,#8659, +#8673,#8687,#8699,#8711,#8730,#8744,#8759,#8776,#8791,#8805,#8819,#8832,#8854, +#8867,#8883,#8898,#8911,#8924,#8935,#8949,#8963,#8977,#8991,#9004,#9018,#9040, +#9053,#9066,#9087,#9101,#9117,#9130,#9225,#9269,#9288,#9381,#9426,#9471,#9485, +#9497,#9509,#9521,#9537,#9553,#9573,#9588,#9602,#9623,#9634,#9653,#9664,#9680, +#9693,#9706)); +#9708=MANIFOLD_SOLID_BREP('',#9707); +#9709=PRESENTATION_LAYER_ASSIGNMENT('LAY0002','',(#9708)); +#9712=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2), +#9711); +#9713=(CONVERSION_BASED_UNIT('DEGREE',#9712)NAMED_UNIT(*)PLANE_ANGLE_UNIT()); +#9715=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(6.229205525721E-2),#9710, +'distance_accuracy_value', +'Maximum model space distance between geometric entities at asserted connectivities'); +#9718=APPLICATION_CONTEXT('automotive_design'); +#9719=APPLICATION_PROTOCOL_DEFINITION('international standard', +'automotive_design',2001,#9718); +#9720=PRODUCT_DEFINITION_CONTEXT('part definition',#9718,'design'); +#9721=PRODUCT_CONTEXT('',#9718,'mechanical'); +#9722=PRODUCT('FSA30SCY_TC-01-0702','FSA30SCY_TC-01-0702','NOT SPECIFIED', +(#9721)); +#9723=PRODUCT_DEFINITION_FORMATION('1','LAST_VERSION',#9722); +#9731=DERIVED_UNIT_ELEMENT(#9730,2.E0); +#9732=DERIVED_UNIT((#9731)); +#9733=MEASURE_REPRESENTATION_ITEM('surface area measure',AREA_MEASURE( +6.400360537162E5),#9732); +#9738=DERIVED_UNIT_ELEMENT(#9737,3.E0); +#9739=DERIVED_UNIT((#9738)); +#9740=MEASURE_REPRESENTATION_ITEM('volume measure',VOLUME_MEASURE( +5.061158967088E6),#9739); +#9744=CARTESIAN_POINT('centre point',(-9.874848738634E0,4.052949582793E1, +-1.208118585268E2)); +#9749=DERIVED_UNIT_ELEMENT(#9748,2.E0); +#9750=DERIVED_UNIT((#9749)); +#9751=MEASURE_REPRESENTATION_ITEM('surface area measure',AREA_MEASURE( +6.400360537162E5),#9750); +#9756=DERIVED_UNIT_ELEMENT(#9755,3.E0); +#9757=DERIVED_UNIT((#9756)); +#9758=MEASURE_REPRESENTATION_ITEM('volume measure',VOLUME_MEASURE( +5.061158967088E6),#9757); +#9762=CARTESIAN_POINT('centre point',(-9.874848738634E0,4.052949582793E1, +-1.208118585268E2)); +#9767=PRODUCT_RELATED_PRODUCT_CATEGORY('part','',(#9722)); +#9769=GENERAL_PROPERTY('','PTC_COMMON_NAME','user defined attribute'); +#9770=GENERAL_PROPERTY_ASSOCIATION('user defined attribute','',#9769,#9768); +#9771=DESCRIPTIVE_REPRESENTATION_ITEM('PTC_COMMON_NAME','\X2\4E0B6CE16CAB\X0\'); +#1=COLOUR_RGB('',0.E0,6.E-1,1.E0); +#2=COLOUR_RGB('',0.E0,7.490196078431E-1,1.E0); +#3=DRAUGHTING_PRE_DEFINED_COLOUR('green'); +#4=DRAUGHTING_PRE_DEFINED_COLOUR('cyan'); +#5=COLOUR_RGB('',1.1E-2,1.2E-2,1.E0); +#6=COLOUR_RGB('',1.1E-1,1.1E-1,1.1E-1); +#7=COLOUR_RGB('',1.372549019608E-1,6.470588235294E-1,7.882352941176E-1); +#8=COLOUR_RGB('',2.E-1,2.E-1,6.E-1); +#9=COLOUR_RGB('',3.92E-1,1.2E-2,1.2E-2); +#10=COLOUR_RGB('',4.1E-1,0.E0,2.2E-1); +#11=COLOUR_RGB('',5.058823529412E-1,1.568627450980E-2,1.568627450980E-2); +#12=COLOUR_RGB('',5.294117647059E-1,6.392156862745E-1,1.E0); +#13=COLOUR_RGB('',5.529411764706E-1,2.549019607843E-1,1.960784313725E-2); +#14=COLOUR_RGB('',6.078431372549E-1,5.647058823529E-1,0.E0); +#15=COLOUR_RGB('',6.392156862745E-1,4.E-1,2.078431372549E-1); +#16=COLOUR_RGB('',6.392156862745E-1,6.392156862745E-1,6.392156862745E-1); +#17=COLOUR_RGB('',6.952E-1,7.426E-1,7.9E-1); +#18=COLOUR_RGB('',7.490196078431E-1,9.411764705882E-1,1.E0); +#19=COLOUR_RGB('',7.882352941176E-1,8.313725490196E-1,7.215686274510E-1); +#20=COLOUR_RGB('',8.392156862745E-1,4.470588235294E-1,3.882352941176E-1); +#21=COLOUR_RGB('',8.78E-1,9.49E-1,1.E0); +#22=COLOUR_RGB('',9.490196078431E-1,7.568627450980E-1,1.764705882353E-1); +#23=COLOUR_RGB('',9.6E-1,9.6E-1,9.6E-1); +#24=COLOUR_RGB('',9.8E-1,6.27E-1,0.E0); +#25=DRAUGHTING_PRE_DEFINED_COLOUR('red'); +#26=COLOUR_RGB('',1.E0,0.E0,2.E-1); +#27=COLOUR_RGB('',1.E0,8.078431372549E-1,4.588235294118E-1); +#28=DRAUGHTING_PRE_DEFINED_COLOUR('yellow'); +#29=COLOUR_RGB('',1.E0,1.E0,9.49E-1); +#30=DRAUGHTING_PRE_DEFINED_COLOUR('white'); +#35=CIRCLE('',#34,1.909734288188E2); +#52=B_SPLINE_CURVE_WITH_KNOTS('',3,(#44,#45,#46,#47,#48,#49,#50,#51), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#76=B_SPLINE_CURVE_WITH_KNOTS('',3,(#57,#58,#59,#60,#61,#62,#63,#64,#65,#66,#67, +#68,#69,#70,#71,#72,#73,#74,#75),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,4),(0.E0,6.25E-2,1.25E-1,1.875E-1,2.5E-1,3.125E-1,3.75E-1,4.375E-1, +5.E-1,5.625E-1,6.25E-1,6.875E-1,7.5E-1,8.125E-1,8.75E-1,9.375E-1,1.E0), +.UNSPECIFIED.); +#93=CIRCLE('',#92,1.909734288188E2); +#102=CIRCLE('',#101,3.45E1); +#127=CIRCLE('',#126,3.45E1); +#132=CIRCLE('',#131,5.E0); +#153=CIRCLE('',#152,5.E0); +#158=CIRCLE('',#157,1.E1); +#163=CIRCLE('',#162,1.E1); +#168=CIRCLE('',#167,2.E1); +#177=CIRCLE('',#176,2.E1); +#182=CIRCLE('',#181,1.5E1); +#187=CIRCLE('',#186,1.5E1); +#196=CIRCLE('',#195,1.25E1); +#209=CIRCLE('',#208,1.75E1); +#222=CIRCLE('',#221,1.75E1); +#235=CIRCLE('',#234,1.25E1); +#244=CIRCLE('',#243,1.75E1); +#261=B_SPLINE_CURVE_WITH_KNOTS('',3,(#253,#254,#255,#256,#257,#258,#259,#260), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#274=B_SPLINE_CURVE_WITH_KNOTS('',3,(#262,#263,#264,#265,#266,#267,#268,#269, +#270,#271,#272,#273),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,4),(0.E0, +1.111111111111E-1,2.222222222222E-1,3.333333333333E-1,4.444444444444E-1, +5.555555555556E-1,6.666666666667E-1,7.777777777778E-1,8.888888888889E-1,1.E0), +.UNSPECIFIED.); +#283=CIRCLE('',#282,1.75E1); +#292=CIRCLE('',#291,1.75E1); +#305=B_SPLINE_CURVE_WITH_KNOTS('',3,(#297,#298,#299,#300,#301,#302,#303,#304), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#314=CIRCLE('',#313,1.809734288188E2); +#323=CIRCLE('',#322,1.759734288188E2); +#328=CIRCLE('',#327,5.E0); +#335=B_SPLINE_CURVE_WITH_KNOTS('',3,(#329,#330,#331,#332,#333,#334), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#344=B_SPLINE_CURVE_WITH_KNOTS('',3,(#340,#341,#342,#343),.UNSPECIFIED.,.F.,.F., +(4,4),(0.E0,1.E0),.UNSPECIFIED.); +#357=CIRCLE('',#356,5.E0); +#362=CIRCLE('',#361,5.E0); +#367=CIRCLE('',#366,5.E0); +#372=CIRCLE('',#371,2.E1); +#377=CIRCLE('',#376,5.E0); +#398=CIRCLE('',#397,5.E0); +#423=CIRCLE('',#422,5.E0); +#432=CIRCLE('',#431,5.E0); +#437=CIRCLE('',#436,8.E0); +#446=CIRCLE('',#445,1.5E1); +#453=B_SPLINE_CURVE_WITH_KNOTS('',3,(#447,#448,#449,#450,#451,#452), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#474=CIRCLE('',#473,5.E0); +#483=CIRCLE('',#482,1.E1); +#496=CIRCLE('',#495,8.E0); +#511=B_SPLINE_CURVE_WITH_KNOTS('',3,(#505,#506,#507,#508,#509,#510), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#521=B_SPLINE_CURVE_WITH_KNOTS('',3,(#512,#513,#514,#515,#516,#517,#518,#519, +#520),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#532=B_SPLINE_CURVE_WITH_KNOTS('',3,(#522,#523,#524,#525,#526,#527,#528,#529, +#530,#531),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,4),(0.E0,1.428571428571E-1, +2.857142857143E-1,4.285714285714E-1,5.714285714286E-1,7.142857142857E-1, +8.571428571429E-1,1.E0),.UNSPECIFIED.); +#554=B_SPLINE_CURVE_WITH_KNOTS('',3,(#533,#534,#535,#536,#537,#538,#539,#540, +#541,#542,#543,#544,#545,#546,#547,#548,#549,#550,#551,#552,#553),.UNSPECIFIED., +.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0,5.555555555556E-2, +1.111111111111E-1,1.666666666667E-1,2.222222222222E-1,2.777777777778E-1, +3.333333333333E-1,3.888888888889E-1,4.444444444444E-1,5.E-1,5.555555555556E-1, +6.111111111111E-1,6.666666666667E-1,7.222222222222E-1,7.777777777778E-1, +8.333333333333E-1,8.888888888889E-1,9.444444444444E-1,1.E0),.UNSPECIFIED.); +#561=B_SPLINE_CURVE_WITH_KNOTS('',3,(#555,#556,#557,#558,#559,#560), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#573=B_SPLINE_CURVE_WITH_KNOTS('',3,(#566,#567,#568,#569,#570,#571,#572), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#580=B_SPLINE_CURVE_WITH_KNOTS('',3,(#574,#575,#576,#577,#578,#579), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#585=CIRCLE('',#584,1.95E1); +#596=B_SPLINE_CURVE_WITH_KNOTS('',3,(#590,#591,#592,#593,#594,#595), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#603=B_SPLINE_CURVE_WITH_KNOTS('',3,(#597,#598,#599,#600,#601,#602), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#610=B_SPLINE_CURVE_WITH_KNOTS('',3,(#604,#605,#606,#607,#608,#609), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#625=B_SPLINE_CURVE_WITH_KNOTS('',3,(#619,#620,#621,#622,#623,#624), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#651=B_SPLINE_CURVE_WITH_KNOTS('',3,(#642,#643,#644,#645,#646,#647,#648,#649, +#650),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#658=B_SPLINE_CURVE_WITH_KNOTS('',3,(#652,#653,#654,#655,#656,#657), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#678=B_SPLINE_CURVE_WITH_KNOTS('',3,(#671,#672,#673,#674,#675,#676,#677), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#693=B_SPLINE_CURVE_WITH_KNOTS('',3,(#687,#688,#689,#690,#691,#692), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,6.545436899698E-2,1.747936458030E-1,1.E0), +.UNSPECIFIED.); +#706=B_SPLINE_CURVE_WITH_KNOTS('',3,(#694,#695,#696,#697,#698,#699,#700,#701, +#702,#703,#704,#705),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,4),(0.E0, +1.111111111111E-1,2.222222222222E-1,3.333333333333E-1,4.444444444444E-1, +5.555555555556E-1,6.666666666667E-1,7.777777777778E-1,8.888888888889E-1,1.E0), +.UNSPECIFIED.); +#715=CIRCLE('',#714,1.849868883989E2); +#722=B_SPLINE_CURVE_WITH_KNOTS('',3,(#716,#717,#718,#719,#720,#721), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#731=B_SPLINE_CURVE_WITH_KNOTS('',3,(#727,#728,#729,#730),.UNSPECIFIED.,.F.,.F., +(4,4),(0.E0,1.E0),.UNSPECIFIED.); +#737=B_SPLINE_CURVE_WITH_KNOTS('',3,(#732,#733,#734,#735,#736),.UNSPECIFIED., +.F.,.F.,(4,1,4),(0.E0,5.E-1,1.E0),.UNSPECIFIED.); +#748=B_SPLINE_CURVE_WITH_KNOTS('',3,(#742,#743,#744,#745,#746,#747), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#755=B_SPLINE_CURVE_WITH_KNOTS('',3,(#749,#750,#751,#752,#753,#754), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#760=CIRCLE('',#759,1.855483832344E2); +#771=B_SPLINE_CURVE_WITH_KNOTS('',3,(#765,#766,#767,#768,#769,#770), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#788=B_SPLINE_CURVE_WITH_KNOTS('',3,(#780,#781,#782,#783,#784,#785,#786,#787), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#803=B_SPLINE_CURVE_WITH_KNOTS('',3,(#797,#798,#799,#800,#801,#802), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#813=B_SPLINE_CURVE_WITH_KNOTS('',3,(#804,#805,#806,#807,#808,#809,#810,#811, +#812),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#830=B_SPLINE_CURVE_WITH_KNOTS('',3,(#822,#823,#824,#825,#826,#827,#828,#829), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#835=CIRCLE('',#834,3.641682208887E1); +#840=CIRCLE('',#839,5.091682208887E1); +#854=B_SPLINE_CURVE_WITH_KNOTS('',3,(#849,#850,#851,#852,#853),.UNSPECIFIED., +.F.,.F.,(4,1,4),(0.E0,5.E-1,1.E0),.UNSPECIFIED.); +#863=B_SPLINE_CURVE_WITH_KNOTS('',3,(#855,#856,#857,#858,#859,#860,#861,#862), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#872=B_SPLINE_CURVE_WITH_KNOTS('',3,(#864,#865,#866,#867,#868,#869,#870,#871), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#881=B_SPLINE_CURVE_WITH_KNOTS('',3,(#873,#874,#875,#876,#877,#878,#879,#880), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#893=B_SPLINE_CURVE_WITH_KNOTS('',3,(#886,#887,#888,#889,#890,#891,#892), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#903=B_SPLINE_CURVE_WITH_KNOTS('',3,(#898,#899,#900,#901,#902),.UNSPECIFIED., +.F.,.F.,(4,1,4),(0.E0,5.E-1,1.E0),.UNSPECIFIED.); +#913=B_SPLINE_CURVE_WITH_KNOTS('',3,(#904,#905,#906,#907,#908,#909,#910,#911, +#912),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,6.25E-1, +7.5E-1,1.E0),.UNSPECIFIED.); +#923=B_SPLINE_CURVE_WITH_KNOTS('',3,(#914,#915,#916,#917,#918,#919,#920,#921, +#922),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,6.25E-1, +7.5E-1,1.E0),.UNSPECIFIED.); +#929=B_SPLINE_CURVE_WITH_KNOTS('',3,(#924,#925,#926,#927,#928),.UNSPECIFIED., +.F.,.F.,(4,1,4),(0.E0,5.E-1,1.E0),.UNSPECIFIED.); +#942=CIRCLE('',#941,2.949960780428E1); +#951=CIRCLE('',#950,6.9E1); +#956=CIRCLE('',#955,5.E0); +#961=CIRCLE('',#960,2.7E1); +#966=CIRCLE('',#965,2.7E1); +#975=B_SPLINE_CURVE_WITH_KNOTS('',3,(#967,#968,#969,#970,#971,#972,#973,#974), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#987=B_SPLINE_CURVE_WITH_KNOTS('',3,(#980,#981,#982,#983,#984,#985,#986), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#1000=CIRCLE('',#999,1.759734288188E2); +#1005=CIRCLE('',#1004,1.6615E2); +#1016=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1010,#1011,#1012,#1013,#1014,#1015), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1029=CIRCLE('',#1028,1.759734288188E2); +#1034=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1030,#1031,#1032,#1033),.UNSPECIFIED., +.F.,.F.,(4,4),(0.E0,1.E0),.UNSPECIFIED.); +#1039=CIRCLE('',#1038,3.E1); +#1044=CIRCLE('',#1043,1.653049520937E2); +#1054=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1045,#1046,#1047,#1048,#1049,#1050,#1051, +#1052,#1053),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#1069=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1063,#1064,#1065,#1066,#1067,#1068), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1076=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1070,#1071,#1072,#1073,#1074,#1075), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1081=CIRCLE('',#1080,1.697110451146E2); +#1086=CIRCLE('',#1085,1.849868883989E2); +#1091=CIRCLE('',#1090,1.849868883989E2); +#1096=CIRCLE('',#1095,1.849868883989E2); +#1101=CIRCLE('',#1100,1.697110451146E2); +#1106=CIRCLE('',#1105,1.697110451146E2); +#1111=CIRCLE('',#1110,1.697110451146E2); +#1118=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1112,#1113,#1114,#1115,#1116,#1117), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1125=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1119,#1120,#1121,#1122,#1123,#1124), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1134=CIRCLE('',#1133,1.863129159863E2); +#1139=CIRCLE('',#1138,1.863129159863E2); +#1156=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1148,#1149,#1150,#1151,#1152,#1153,#1154, +#1155),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#1165=CIRCLE('',#1164,1.759734288188E2); +#1170=CIRCLE('',#1169,5.E0); +#1175=CIRCLE('',#1174,1.653049520937E2); +#1190=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1184,#1185,#1186,#1187,#1188,#1189), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1199=CIRCLE('',#1198,1.5E1); +#1212=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1204,#1205,#1206,#1207,#1208,#1209,#1210, +#1211),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#1221=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1213,#1214,#1215,#1216,#1217,#1218,#1219, +#1220),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#1228=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1222,#1223,#1224,#1225,#1226,#1227), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1235=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1229,#1230,#1231,#1232,#1233,#1234), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1242=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1236,#1237,#1238,#1239,#1240,#1241), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1249=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1243,#1244,#1245,#1246,#1247,#1248), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1258=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1250,#1251,#1252,#1253,#1254,#1255,#1256, +#1257),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#1264=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1259,#1260,#1261,#1262,#1263), +.UNSPECIFIED.,.F.,.F.,(4,1,4),(0.E0,5.040581296611E-1,1.E0),.UNSPECIFIED.); +#1271=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1265,#1266,#1267,#1268,#1269,#1270), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1294=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1288,#1289,#1290,#1291,#1292,#1293), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1301=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1295,#1296,#1297,#1298,#1299,#1300), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1306=CIRCLE('',#1305,5.E0); +#1311=CIRCLE('',#1310,8.E0); +#1320=CIRCLE('',#1319,5.E0); +#1329=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1321,#1322,#1323,#1324,#1325,#1326,#1327, +#1328),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#1350=CIRCLE('',#1349,8.E0); +#1368=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1359,#1360,#1361,#1362,#1363,#1364,#1365, +#1366,#1367),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#1381=CIRCLE('',#1380,1.95E1); +#1392=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1386,#1387,#1388,#1389,#1390,#1391), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1409=CIRCLE('',#1408,1.95E1); +#1414=CIRCLE('',#1413,1.95E1); +#1419=CIRCLE('',#1418,2.844427191E1); +#1424=CIRCLE('',#1423,2.844427191E1); +#1441=CIRCLE('',#1440,6.422135955E1); +#1446=CIRCLE('',#1445,6.422135955E1); +#1460=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1451,#1452,#1453,#1454,#1455,#1456,#1457, +#1458,#1459),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#1473=CIRCLE('',#1472,1.909734288188E2); +#1492=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1478,#1479,#1480,#1481,#1482,#1483,#1484, +#1485,#1486,#1487,#1488,#1489,#1490,#1491),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1, +1,1,1,1,4),(0.E0,9.090909090909E-2,1.818181818182E-1,2.727272727273E-1, +3.636363636364E-1,4.545454545455E-1,5.454545454545E-1,6.363636363636E-1, +7.272727272727E-1,8.181818181818E-1,9.090909090909E-1,1.E0),.UNSPECIFIED.); +#1532=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1509,#1510,#1511,#1512,#1513,#1514,#1515, +#1516,#1517,#1518,#1519,#1520,#1521,#1522,#1523,#1524,#1525,#1526,#1527,#1528, +#1529,#1530,#1531),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,4),(0.E0,5.E-2,1.E-1,1.5E-1,2.E-1,2.5E-1,3.E-1,3.5E-1,4.E-1,4.5E-1,5.E-1, +5.5E-1,6.E-1,6.5E-1,7.E-1,7.5E-1,8.E-1,8.5E-1,9.E-1,9.5E-1,1.E0),.UNSPECIFIED.); +#1553=CIRCLE('',#1552,1.909734288188E2); +#1570=CIRCLE('',#1569,1.75E1); +#1575=CIRCLE('',#1574,1.75E1); +#1580=CIRCLE('',#1579,8.2E1); +#1585=CIRCLE('',#1584,8.2E1); +#1590=CIRCLE('',#1589,3.8E1); +#1603=CIRCLE('',#1602,1.75E1); +#1612=CIRCLE('',#1611,2.43E1); +#1634=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1625,#1626,#1627,#1628,#1629,#1630,#1631, +#1632,#1633),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#1641=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1635,#1636,#1637,#1638,#1639,#1640), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1680=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1658,#1659,#1660,#1661,#1662,#1663,#1664, +#1665,#1666,#1667,#1668,#1669,#1670,#1671,#1672,#1673,#1674,#1675,#1676,#1677, +#1678,#1679),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),( +0.E0,5.263157894737E-2,1.052631578947E-1,1.578947368421E-1,2.105263157895E-1, +2.631578947368E-1,3.157894736842E-1,3.684210526316E-1,4.210526315789E-1, +4.736842105263E-1,5.263157894737E-1,5.789473684211E-1,6.315789473684E-1, +6.842105263158E-1,7.368421052632E-1,7.894736842105E-1,8.421052631579E-1, +8.947368421053E-1,9.473684210526E-1,1.E0),.UNSPECIFIED.); +#1695=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1681,#1682,#1683,#1684,#1685,#1686,#1687, +#1688,#1689,#1690,#1691,#1692,#1693,#1694),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1, +1,1,1,1,4),(0.E0,9.090909090909E-2,1.818181818182E-1,2.727272727273E-1, +3.636363636364E-1,4.545454545455E-1,5.454545454545E-1,6.363636363636E-1, +7.272727272727E-1,8.181818181818E-1,9.090909090909E-1,1.E0),.UNSPECIFIED.); +#1702=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1696,#1697,#1698,#1699,#1700,#1701), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1712=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1703,#1704,#1705,#1706,#1707,#1708,#1709, +#1710,#1711),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#1724=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1713,#1714,#1715,#1716,#1717,#1718,#1719, +#1720,#1721,#1722,#1723),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,4),(0.E0, +5.271603106458E-2,1.725714580982E-1,2.924268851317E-1,4.122823121654E-1, +5.321377391990E-1,6.519931662326E-1,7.718485932662E-1,1.E0),.UNSPECIFIED.); +#1734=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1725,#1726,#1727,#1728,#1729,#1730,#1731, +#1732,#1733),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#1741=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1735,#1736,#1737,#1738,#1739,#1740), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1750=CIRCLE('',#1749,1.863129159863E2); +#1761=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1755,#1756,#1757,#1758,#1759,#1760), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1768=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1762,#1763,#1764,#1765,#1766,#1767), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1791=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1777,#1778,#1779,#1780,#1781,#1782,#1783, +#1784,#1785,#1786,#1787,#1788,#1789,#1790),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1, +1,1,1,1,4),(0.E0,9.090909090909E-2,1.818181818182E-1,2.727272727273E-1, +3.636363636364E-1,4.545454545455E-1,5.454545454545E-1,6.363636363636E-1, +7.272727272727E-1,8.181818181818E-1,9.090909090909E-1,1.E0),.UNSPECIFIED.); +#1798=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1792,#1793,#1794,#1795,#1796,#1797), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1805=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1799,#1800,#1801,#1802,#1803,#1804), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1812=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1806,#1807,#1808,#1809,#1810,#1811), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1819=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1813,#1814,#1815,#1816,#1817,#1818), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1829=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1820,#1821,#1822,#1823,#1824,#1825,#1826, +#1827,#1828),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#1834=CIRCLE('',#1833,3.8E1); +#1842=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1835,#1836,#1837,#1838,#1839,#1840, +#1841),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#1847=CIRCLE('',#1846,3.8E1); +#1852=CIRCLE('',#1851,1.E1); +#1857=CIRCLE('',#1856,1.E1); +#1868=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1862,#1863,#1864,#1865,#1866,#1867), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1881=CIRCLE('',#1880,3.8E1); +#1886=CIRCLE('',#1885,8.2E1); +#1891=CIRCLE('',#1890,8.2E1); +#1903=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1892,#1893,#1894,#1895,#1896,#1897,#1898, +#1899,#1900,#1901,#1902),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,4),(0.E0, +1.25E-1,2.5E-1,3.75E-1,5.E-1,6.25E-1,7.5E-1,8.75E-1,1.E0),.UNSPECIFIED.); +#1910=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1904,#1905,#1906,#1907,#1908,#1909), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1918=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1911,#1912,#1913,#1914,#1915,#1916, +#1917),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#1931=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1927,#1928,#1929,#1930),.UNSPECIFIED., +.F.,.F.,(4,4),(0.E0,1.E0),.UNSPECIFIED.); +#1942=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1936,#1937,#1938,#1939,#1940,#1941), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,8.247952616438E-1,9.340800689682E-1,1.E0), +.UNSPECIFIED.); +#1958=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1951,#1952,#1953,#1954,#1955,#1956, +#1957),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#1969=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1963,#1964,#1965,#1966,#1967,#1968), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1974=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1970,#1971,#1972,#1973),.UNSPECIFIED., +.F.,.F.,(4,4),(0.E0,1.E0),.UNSPECIFIED.); +#1979=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1975,#1976,#1977,#1978),.UNSPECIFIED., +.F.,.F.,(4,4),(0.E0,1.E0),.UNSPECIFIED.); +#1997=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1992,#1993,#1994,#1995,#1996), +.UNSPECIFIED.,.F.,.F.,(4,1,4),(0.E0,5.E-1,1.E0),.UNSPECIFIED.); +#2020=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2014,#2015,#2016,#2017,#2018,#2019), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2030=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2021,#2022,#2023,#2024,#2025,#2026,#2027, +#2028,#2029),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#2045=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2039,#2040,#2041,#2042,#2043,#2044), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2078=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2050,#2051,#2052,#2053,#2054,#2055,#2056, +#2057,#2058,#2059,#2060,#2061,#2062,#2063,#2064,#2065,#2066,#2067,#2068,#2069, +#2070,#2071,#2072,#2073,#2074,#2075,#2076,#2077),.UNSPECIFIED.,.F.,.F.,(4,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0,4.E-2,8.E-2,1.2E-1,1.6E-1, +2.E-1,2.4E-1,2.8E-1,3.2E-1,3.6E-1,4.E-1,4.4E-1,4.8E-1,5.2E-1,5.6E-1,6.E-1, +6.4E-1,6.8E-1,7.2E-1,7.6E-1,8.E-1,8.4E-1,8.8E-1,9.2E-1,9.6E-1,1.E0), +.UNSPECIFIED.); +#2085=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2079,#2080,#2081,#2082,#2083,#2084), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2107=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2086,#2087,#2088,#2089,#2090,#2091,#2092, +#2093,#2094,#2095,#2096,#2097,#2098,#2099,#2100,#2101,#2102,#2103,#2104,#2105, +#2106),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0, +5.555555555556E-2,1.111111111111E-1,1.666666666667E-1,2.222222222222E-1, +2.777777777778E-1,3.333333333333E-1,3.888888888889E-1,4.444444444444E-1,5.E-1, +5.555555555556E-1,6.111111111111E-1,6.666666666667E-1,7.222222222222E-1, +7.777777777778E-1,8.333333333333E-1,8.888888888889E-1,9.444444444444E-1,1.E0), +.UNSPECIFIED.); +#2114=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2108,#2109,#2110,#2111,#2112,#2113), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2121=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2115,#2116,#2117,#2118,#2119,#2120), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2132=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2126,#2127,#2128,#2129,#2130,#2131), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2147=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2141,#2142,#2143,#2144,#2145,#2146), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2153=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2148,#2149,#2150,#2151,#2152), +.UNSPECIFIED.,.F.,.F.,(4,1,4),(0.E0,5.E-1,1.E0),.UNSPECIFIED.); +#2162=CIRCLE('',#2161,1.95E1); +#2169=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2163,#2164,#2165,#2166,#2167,#2168), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2177=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2170,#2171,#2172,#2173,#2174,#2175, +#2176),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2196=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2190,#2191,#2192,#2193,#2194,#2195), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2209=CIRCLE('',#2208,1.6615E2); +#2214=CIRCLE('',#2213,1.759734288188E2); +#2226=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2219,#2220,#2221,#2222,#2223,#2224, +#2225),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2236=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2231,#2232,#2233,#2234,#2235), +.UNSPECIFIED.,.F.,.F.,(4,1,4),(0.E0,5.E-1,1.E0),.UNSPECIFIED.); +#2241=CIRCLE('',#2240,1.909734288188E2); +#2254=CIRCLE('',#2253,3.8E1); +#2263=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2259,#2260,#2261,#2262),.UNSPECIFIED., +.F.,.F.,(4,4),(0.E0,1.E0),.UNSPECIFIED.); +#2276=CIRCLE('',#2275,2.5E1); +#2281=CIRCLE('',#2280,2.5E1); +#2286=CIRCLE('',#2285,2.5E1); +#2291=CIRCLE('',#2290,2.5E1); +#2296=CIRCLE('',#2295,1.E1); +#2301=CIRCLE('',#2300,1.E1); +#2310=CIRCLE('',#2309,2.5E1); +#2323=CIRCLE('',#2322,2.5E1); +#2332=CIRCLE('',#2331,2.5E1); +#2341=CIRCLE('',#2340,2.5E1); +#2350=CIRCLE('',#2349,2.5E1); +#2359=CIRCLE('',#2358,2.5E1); +#2388=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2364,#2365,#2366,#2367,#2368,#2369,#2370, +#2371,#2372,#2373,#2374,#2375,#2376,#2377,#2378,#2379,#2380,#2381,#2382,#2383, +#2384,#2385,#2386,#2387),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,4),(0.E0,4.761904761905E-2,9.523809523810E-2,1.428571428571E-1, +1.904761904762E-1,2.380952380952E-1,2.857142857143E-1,3.333333333333E-1, +3.809523809524E-1,4.285714285714E-1,4.761904761905E-1,5.238095238095E-1, +5.714285714286E-1,6.190476190476E-1,6.666666666667E-1,7.142857142857E-1, +7.619047619048E-1,8.095238095238E-1,8.571428571429E-1,9.047619047619E-1, +9.523809523810E-1,1.E0),.UNSPECIFIED.); +#2393=CIRCLE('',#2392,1.308E2); +#2398=CIRCLE('',#2397,1.308E2); +#2409=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2403,#2404,#2405,#2406,#2407,#2408), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2418=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2410,#2411,#2412,#2413,#2414,#2415,#2416, +#2417),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#2425=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2419,#2420,#2421,#2422,#2423,#2424), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2432=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2426,#2427,#2428,#2429,#2430,#2431), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2439=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2433,#2434,#2435,#2436,#2437,#2438), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2460=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2452,#2453,#2454,#2455,#2456,#2457,#2458, +#2459),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#2465=CIRCLE('',#2464,1.759734288188E2); +#2474=CIRCLE('',#2473,1.809734288188E2); +#2491=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2483,#2484,#2485,#2486,#2487,#2488,#2489, +#2490),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#2496=CIRCLE('',#2495,1.E1); +#2501=CIRCLE('',#2500,5.E0); +#2506=CIRCLE('',#2505,5.E0); +#2519=CIRCLE('',#2518,1.2E1); +#2524=CIRCLE('',#2523,1.2E1); +#2541=CIRCLE('',#2540,5.E0); +#2546=CIRCLE('',#2545,2.E0); +#2551=CIRCLE('',#2550,2.E0); +#2576=CIRCLE('',#2575,3.E0); +#2583=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2577,#2578,#2579,#2580,#2581,#2582), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2592=CIRCLE('',#2591,6.7E1); +#2600=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2593,#2594,#2595,#2596,#2597,#2598, +#2599),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2608=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2601,#2602,#2603,#2604,#2605,#2606, +#2607),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2621=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2613,#2614,#2615,#2616,#2617,#2618,#2619, +#2620),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#2638=CIRCLE('',#2637,1.300005422238E1); +#2646=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2639,#2640,#2641,#2642,#2643,#2644, +#2645),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2659=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2647,#2648,#2649,#2650,#2651,#2652,#2653, +#2654,#2655,#2656,#2657,#2658),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,4), +(0.E0,1.111111111111E-1,2.222222222222E-1,3.333333333333E-1,4.444444444444E-1, +5.555555555556E-1,6.666666666667E-1,7.777777777778E-1,8.888888888889E-1,1.E0), +.UNSPECIFIED.); +#2675=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2660,#2661,#2662,#2663,#2664,#2665,#2666, +#2667,#2668,#2669,#2670,#2671,#2672,#2673,#2674),.UNSPECIFIED.,.F.,.F.,(4,1,1,1, +1,1,1,1,1,1,1,1,4),(0.E0,8.333333333333E-2,1.666666666667E-1,2.5E-1, +3.333333333333E-1,4.166666666667E-1,5.E-1,5.833333333333E-1,6.666666666667E-1, +7.5E-1,8.333333333333E-1,9.166666666667E-1,1.E0),.UNSPECIFIED.); +#2684=CIRCLE('',#2683,6.7E1); +#2699=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2693,#2694,#2695,#2696,#2697,#2698), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2710=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2700,#2701,#2702,#2703,#2704,#2705,#2706, +#2707,#2708,#2709),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,4),(0.E0, +1.428571428571E-1,2.857142857143E-1,4.285714285714E-1,5.714285714286E-1, +7.142857142857E-1,8.571428571429E-1,1.E0),.UNSPECIFIED.); +#2722=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2715,#2716,#2717,#2718,#2719,#2720, +#2721),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2729=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2723,#2724,#2725,#2726,#2727,#2728), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2737=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2730,#2731,#2732,#2733,#2734,#2735, +#2736),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2748=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2738,#2739,#2740,#2741,#2742,#2743,#2744, +#2745,#2746,#2747),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,4),(0.E0, +1.428571428571E-1,2.857142857143E-1,4.285714285714E-1,5.714285714286E-1, +7.142857142857E-1,8.571428571429E-1,1.E0),.UNSPECIFIED.); +#2756=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2749,#2750,#2751,#2752,#2753,#2754, +#2755),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2763=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2757,#2758,#2759,#2760,#2761,#2762), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2774=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2764,#2765,#2766,#2767,#2768,#2769,#2770, +#2771,#2772,#2773),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,4),(0.E0, +1.428571428571E-1,2.857142857143E-1,4.285714285714E-1,5.714285714286E-1, +7.142857142857E-1,8.571428571429E-1,1.E0),.UNSPECIFIED.); +#2783=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2775,#2776,#2777,#2778,#2779,#2780,#2781, +#2782),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,1.973167309379E-1, +4.713521149810E-1,7.453874990242E-1,8.824051910458E-1,1.E0),.UNSPECIFIED.); +#2804=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2784,#2785,#2786,#2787,#2788,#2789,#2790, +#2791,#2792,#2793,#2794,#2795,#2796,#2797,#2798,#2799,#2800,#2801,#2802,#2803), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0, +5.882352941176E-2,1.176470588235E-1,1.764705882353E-1,2.352941176471E-1, +2.941176470588E-1,3.529411764706E-1,4.117647058824E-1,4.705882352941E-1, +5.294117647059E-1,5.882352941176E-1,6.470588235294E-1,7.058823529412E-1, +7.647058823529E-1,8.235294117647E-1,8.823529411765E-1,9.411764705882E-1,1.E0), +.UNSPECIFIED.); +#2811=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2805,#2806,#2807,#2808,#2809,#2810), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.218461461726E-1,6.852082418657E-1,1.E0), +.UNSPECIFIED.); +#2822=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2812,#2813,#2814,#2815,#2816,#2817,#2818, +#2819,#2820,#2821),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,4),(0.E0, +1.428571428571E-1,2.857142857143E-1,4.285714285714E-1,5.714285714286E-1, +7.142857142857E-1,8.571428571429E-1,1.E0),.UNSPECIFIED.); +#2827=CIRCLE('',#2826,1.300005524497E1); +#2835=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2828,#2829,#2830,#2831,#2832,#2833, +#2834),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2840=CIRCLE('',#2839,6.7E1); +#2851=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2841,#2842,#2843,#2844,#2845,#2846,#2847, +#2848,#2849,#2850),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,4),(0.E0, +1.428571428571E-1,2.857142857143E-1,4.285714285714E-1,5.714285714286E-1, +7.142857142857E-1,8.571428571429E-1,1.E0),.UNSPECIFIED.); +#2864=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2852,#2853,#2854,#2855,#2856,#2857,#2858, +#2859,#2860,#2861,#2862,#2863),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,4), +(0.E0,1.111111111111E-1,2.222222222222E-1,3.333333333333E-1,4.444444444444E-1, +5.555555555556E-1,6.666666666667E-1,7.777777777778E-1,8.888888888889E-1,1.E0), +.UNSPECIFIED.); +#2892=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2885,#2886,#2887,#2888,#2889,#2890, +#2891),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2901=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2893,#2894,#2895,#2896,#2897,#2898,#2899, +#2900),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#2906=CIRCLE('',#2905,6.9E1); +#2911=CIRCLE('',#2910,3.000040505811E0); +#2918=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2912,#2913,#2914,#2915,#2916,#2917), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2923=CIRCLE('',#2922,6.7E1); +#2928=CIRCLE('',#2927,2.E0); +#2935=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2929,#2930,#2931,#2932,#2933,#2934), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2940=CIRCLE('',#2939,2.E0); +#2948=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2941,#2942,#2943,#2944,#2945,#2946, +#2947),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2959=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2953,#2954,#2955,#2956,#2957,#2958), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2964=CIRCLE('',#2963,6.7E1); +#2969=CIRCLE('',#2968,6.9E1); +#2974=CIRCLE('',#2973,5.000000000024E0); +#2990=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2983,#2984,#2985,#2986,#2987,#2988, +#2989),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2995=CIRCLE('',#2994,5.E0); +#3000=CIRCLE('',#2999,2.E0); +#3005=CIRCLE('',#3004,2.E0); +#3018=CIRCLE('',#3017,1.000000000003E1); +#3023=CIRCLE('',#3022,5.000000000014E0); +#3028=CIRCLE('',#3027,5.000000000014E0); +#3045=CIRCLE('',#3044,1.642282823598E2); +#3050=CIRCLE('',#3049,1.642282823598E2); +#3067=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3059,#3060,#3061,#3062,#3063,#3064,#3065, +#3066),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#3072=CIRCLE('',#3071,2.E1); +#3077=CIRCLE('',#3076,5.E0); +#3082=CIRCLE('',#3081,5.E0); +#3104=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3095,#3096,#3097,#3098,#3099,#3100,#3101, +#3102,#3103),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#3113=CIRCLE('',#3112,1.593986532284E2); +#3118=CIRCLE('',#3117,1.593986532284E2); +#3127=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3119,#3120,#3121,#3122,#3123,#3124,#3125, +#3126),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#3134=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3128,#3129,#3130,#3131,#3132,#3133), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3141=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3135,#3136,#3137,#3138,#3139,#3140), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3146=CIRCLE('',#3145,1.636270554508E2); +#3155=CIRCLE('',#3154,1.728559154282E2); +#3160=CIRCLE('',#3159,1.728559154282E2); +#3169=CIRCLE('',#3168,1.718693141060E2); +#3174=CIRCLE('',#3173,1.718693654751E2); +#3179=CIRCLE('',#3178,1.718693654751E2); +#3186=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3180,#3181,#3182,#3183,#3184,#3185), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3193=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3187,#3188,#3189,#3190,#3191,#3192), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3198=CIRCLE('',#3197,1.718693654751E2); +#3206=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3199,#3200,#3201,#3202,#3203,#3204, +#3205),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#3223=CIRCLE('',#3222,1.999999827294E0); +#3232=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3224,#3225,#3226,#3227,#3228,#3229,#3230, +#3231),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#3237=CIRCLE('',#3236,1.999999827294E0); +#3254=CIRCLE('',#3253,3.450073545538E1); +#3259=CIRCLE('',#3258,3.450432006414E1); +#3291=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3264,#3265,#3266,#3267,#3268,#3269,#3270, +#3271,#3272,#3273,#3274,#3275,#3276,#3277,#3278,#3279,#3280,#3281,#3282,#3283, +#3284,#3285,#3286,#3287,#3288,#3289,#3290),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0,4.166666666667E-2,8.333333333333E-2, +1.25E-1,1.666666666667E-1,2.083333333333E-1,2.5E-1,2.916666666667E-1, +3.333333333333E-1,3.75E-1,4.166666666667E-1,4.583333333333E-1,5.E-1, +5.416666666667E-1,5.833333333333E-1,6.25E-1,6.666666666667E-1,7.083333333333E-1, +7.5E-1,7.916666666667E-1,8.333333333333E-1,8.75E-1,9.166666666667E-1, +9.583333333333E-1,1.E0),.UNSPECIFIED.); +#3298=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3292,#3293,#3294,#3295,#3296,#3297), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3312=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3299,#3300,#3301,#3302,#3303,#3304,#3305, +#3306,#3307,#3308,#3309,#3310,#3311),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1, +4),(0.E0,1.E-1,2.E-1,3.E-1,4.E-1,5.E-1,6.E-1,7.E-1,8.E-1,9.E-1,1.E0), +.UNSPECIFIED.); +#3319=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3313,#3314,#3315,#3316,#3317,#3318), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3332=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3320,#3321,#3322,#3323,#3324,#3325,#3326, +#3327,#3328,#3329,#3330,#3331),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,4), +(0.E0,1.111111111111E-1,2.222222222222E-1,3.333333333333E-1,4.444444444444E-1, +5.555555555556E-1,6.666666666667E-1,7.777777777778E-1,8.888888888889E-1,1.E0), +.UNSPECIFIED.); +#3337=CIRCLE('',#3336,2.950419673297E1); +#3342=CIRCLE('',#3341,5.000000743179E0); +#3347=CIRCLE('',#3346,5.000000743179E0); +#3364=CIRCLE('',#3363,1.708595339955E2); +#3369=CIRCLE('',#3368,1.718693654751E2); +#3376=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3370,#3371,#3372,#3373,#3374,#3375), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3401=CIRCLE('',#3400,2.E0); +#3406=CIRCLE('',#3405,1.E1); +#3411=CIRCLE('',#3410,2.E0); +#3424=CIRCLE('',#3423,2.E0); +#3429=CIRCLE('',#3428,1.E1); +#3434=CIRCLE('',#3433,2.E0); +#3447=CIRCLE('',#3446,1.E1); +#3452=CIRCLE('',#3451,1.58E1); +#3457=CIRCLE('',#3456,1.58E1); +#3462=CIRCLE('',#3461,1.E1); +#3487=CIRCLE('',#3486,3.E0); +#3514=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3508,#3509,#3510,#3511,#3512,#3513), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3525=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3515,#3516,#3517,#3518,#3519,#3520,#3521, +#3522,#3523,#3524),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,4),(0.E0, +1.428571428571E-1,2.857142857143E-1,4.285714285714E-1,5.714285714286E-1, +7.142857142857E-1,8.571428571429E-1,1.E0),.UNSPECIFIED.); +#3532=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3526,#3527,#3528,#3529,#3530,#3531), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3543=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3533,#3534,#3535,#3536,#3537,#3538,#3539, +#3540,#3541,#3542),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,4),(0.E0, +1.428571428571E-1,2.857142857143E-1,4.285714285714E-1,5.714285714286E-1, +7.142857142857E-1,8.571428571429E-1,1.E0),.UNSPECIFIED.); +#3553=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3544,#3545,#3546,#3547,#3548,#3549,#3550, +#3551,#3552),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.572608870448E-1, +5.145425200682E-1,6.431833365799E-1,7.718241530917E-1,9.004649696034E-1,1.E0), +.UNSPECIFIED.); +#3574=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3554,#3555,#3556,#3557,#3558,#3559,#3560, +#3561,#3562,#3563,#3564,#3565,#3566,#3567,#3568,#3569,#3570,#3571,#3572,#3573), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0, +5.882352941176E-2,1.176470588235E-1,1.764705882353E-1,2.352941176471E-1, +2.941176470588E-1,3.529411764706E-1,4.117647058824E-1,4.705882352941E-1, +5.294117647059E-1,5.882352941176E-1,6.470588235294E-1,7.058823529412E-1, +7.647058823529E-1,8.235294117647E-1,8.823529411765E-1,9.411764705882E-1,1.E0), +.UNSPECIFIED.); +#3581=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3575,#3576,#3577,#3578,#3579,#3580), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3602=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3582,#3583,#3584,#3585,#3586,#3587,#3588, +#3589,#3590,#3591,#3592,#3593,#3594,#3595,#3596,#3597,#3598,#3599,#3600,#3601), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0, +5.882352941176E-2,1.176470588235E-1,1.764705882353E-1,2.352941176471E-1, +2.941176470588E-1,3.529411764706E-1,4.117647058824E-1,4.705882352941E-1, +5.294117647059E-1,5.882352941176E-1,6.470588235294E-1,7.058823529412E-1, +7.647058823529E-1,8.235294117647E-1,8.823529411765E-1,9.411764705882E-1,1.E0), +.UNSPECIFIED.); +#3623=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3603,#3604,#3605,#3606,#3607,#3608,#3609, +#3610,#3611,#3612,#3613,#3614,#3615,#3616,#3617,#3618,#3619,#3620,#3621,#3622), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0, +5.882352941176E-2,1.176470588235E-1,1.764705882353E-1,2.352941176471E-1, +2.941176470588E-1,3.529411764706E-1,4.117647058824E-1,4.705882352941E-1, +5.294117647059E-1,5.882352941176E-1,6.470588235294E-1,7.058823529412E-1, +7.647058823529E-1,8.235294117647E-1,8.823529411765E-1,9.411764705882E-1,1.E0), +.UNSPECIFIED.); +#3628=CIRCLE('',#3627,1.5E1); +#3633=CIRCLE('',#3632,1.5E1); +#3640=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3634,#3635,#3636,#3637,#3638,#3639), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3651=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3641,#3642,#3643,#3644,#3645,#3646,#3647, +#3648,#3649,#3650),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,4),(0.E0, +1.428571428571E-1,2.857142857143E-1,4.285714285714E-1,5.714285714286E-1, +7.142857142857E-1,8.571428571429E-1,1.E0),.UNSPECIFIED.); +#3658=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3652,#3653,#3654,#3655,#3656,#3657), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3664=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3659,#3660,#3661,#3662,#3663), +.UNSPECIFIED.,.F.,.F.,(4,1,4),(0.E0,5.396578299101E-1,1.E0),.UNSPECIFIED.); +#3671=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3665,#3666,#3667,#3668,#3669,#3670), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3681=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3672,#3673,#3674,#3675,#3676,#3677,#3678, +#3679,#3680),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#3696=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3690,#3691,#3692,#3693,#3694,#3695), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3725=CIRCLE('',#3724,1.863129159863E2); +#3734=CIRCLE('',#3733,1.847670231111E2); +#3743=CIRCLE('',#3742,1.847670231111E2); +#3750=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3744,#3745,#3746,#3747,#3748,#3749), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3761=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3755,#3756,#3757,#3758,#3759,#3760), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3770=CIRCLE('',#3769,1.848431352108E2); +#3775=CIRCLE('',#3774,1.849868883989E2); +#3782=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3776,#3777,#3778,#3779,#3780,#3781), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3789=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3783,#3784,#3785,#3786,#3787,#3788), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3794=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3790,#3791,#3792,#3793),.UNSPECIFIED., +.F.,.F.,(4,4),(0.E0,1.E0),.UNSPECIFIED.); +#3811=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3795,#3796,#3797,#3798,#3799,#3800,#3801, +#3802,#3803,#3804,#3805,#3806,#3807,#3808,#3809,#3810),.UNSPECIFIED.,.F.,.F.,(4, +1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0,7.692307692308E-2,1.538461538462E-1, +2.307692307692E-1,3.076923076923E-1,3.846153846154E-1,4.615384615385E-1, +5.384615384615E-1,6.153846153846E-1,6.923076923077E-1,7.692307692308E-1, +8.461538461538E-1,9.230769230769E-1,1.E0),.UNSPECIFIED.); +#3828=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3820,#3821,#3822,#3823,#3824,#3825,#3826, +#3827),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#3837=CIRCLE('',#3836,1.909734288188E2); +#3850=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3846,#3847,#3848,#3849),.UNSPECIFIED., +.F.,.F.,(4,4),(0.E0,1.E0),.UNSPECIFIED.); +#3862=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3851,#3852,#3853,#3854,#3855,#3856,#3857, +#3858,#3859,#3860,#3861),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,4),(0.E0, +1.25E-1,2.5E-1,3.75E-1,5.E-1,6.25E-1,7.5E-1,8.75E-1,1.E0),.UNSPECIFIED.); +#3867=CIRCLE('',#3866,3.45E1); +#3880=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3868,#3869,#3870,#3871,#3872,#3873,#3874, +#3875,#3876,#3877,#3878,#3879),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,4), +(0.E0,1.111111111111E-1,2.222222222222E-1,3.333333333333E-1,4.444444444444E-1, +5.555555555556E-1,6.666666666667E-1,7.777777777778E-1,8.888888888889E-1,1.E0), +.UNSPECIFIED.); +#3895=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3889,#3890,#3891,#3892,#3893,#3894), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#4656=EDGE_CURVE('',#3898,#3899,#35,.T.); +#4658=EDGE_CURVE('',#3899,#3901,#39,.T.); +#4660=EDGE_CURVE('',#3903,#3901,#213,.T.); +#4662=EDGE_CURVE('',#3905,#3903,#3841,.T.); +#4664=EDGE_CURVE('',#3898,#3905,#3819,.T.); +#4668=ADVANCED_FACE('',(#4667),#4655,.F.); +#4674=EDGE_CURVE('',#3907,#3899,#43,.T.); +#4677=EDGE_CURVE('',#3898,#3908,#52,.T.); +#4679=EDGE_CURVE('',#3910,#3908,#3837,.T.); +#4681=EDGE_CURVE('',#3910,#3912,#56,.T.); +#4683=EDGE_CURVE('',#3914,#3912,#93,.T.); +#4685=EDGE_CURVE('',#3914,#3907,#76,.T.); +#4689=ADVANCED_FACE('',(#4688),#4673,.T.); +#4695=EDGE_CURVE('',#3928,#3907,#80,.T.); +#4697=EDGE_CURVE('',#3901,#3928,#217,.T.); +#4703=ADVANCED_FACE('',(#4702),#4694,.T.); +#4711=EDGE_CURVE('',#3914,#3930,#84,.T.); +#4713=EDGE_CURVE('',#3928,#3930,#222,.T.); +#4717=ADVANCED_FACE('',(#4716),#4708,.T.); +#4723=EDGE_CURVE('',#3912,#3932,#88,.T.); +#4725=EDGE_CURVE('',#3930,#3932,#226,.T.); +#4731=ADVANCED_FACE('',(#4730),#4722,.F.); +#4737=EDGE_CURVE('',#4639,#4640,#97,.T.); +#4739=EDGE_CURVE('',#4639,#3955,#102,.T.); +#4741=EDGE_CURVE('',#3955,#3956,#106,.T.); +#4743=EDGE_CURVE('',#3956,#3949,#110,.T.); +#4745=EDGE_CURVE('',#3949,#3950,#114,.T.); +#4747=EDGE_CURVE('',#4640,#3950,#200,.T.); +#4751=ADVANCED_FACE('',(#4750),#4736,.T.); +#4757=EDGE_CURVE('',#4643,#4644,#118,.T.); +#4759=EDGE_CURVE('',#3932,#4644,#191,.T.); +#4763=EDGE_CURVE('',#3910,#3952,#122,.T.); +#4765=EDGE_CURVE('',#3952,#4643,#127,.T.); +#4769=ADVANCED_FACE('',(#4768),#4756,.T.); +#4776=EDGE_CURVE('',#4640,#4644,#196,.T.); +#4779=EDGE_CURVE('',#4639,#4643,#3811,.T.); +#4783=ADVANCED_FACE('',(#4782),#4774,.T.); +#4789=EDGE_CURVE('',#4087,#4101,#132,.T.); +#4791=EDGE_CURVE('',#4101,#4056,#136,.T.); +#4793=EDGE_CURVE('',#4043,#4056,#1179,.T.); +#4795=EDGE_CURVE('',#4043,#3962,#140,.T.); +#4797=EDGE_CURVE('',#3962,#3960,#144,.T.); +#4799=EDGE_CURVE('',#3960,#3994,#148,.T.); +#4801=EDGE_CURVE('',#3994,#4097,#153,.T.); +#4803=EDGE_CURVE('',#4095,#4097,#2469,.T.); +#4805=EDGE_CURVE('',#4095,#4103,#158,.T.); +#4807=EDGE_CURVE('',#4105,#4103,#2528,.T.); +#4809=EDGE_CURVE('',#4105,#4107,#163,.T.); +#4811=EDGE_CURVE('',#4109,#4107,#3040,.T.); +#4813=EDGE_CURVE('',#4109,#4111,#168,.T.); +#4815=EDGE_CURVE('',#4111,#4113,#172,.T.); +#4817=EDGE_CURVE('',#4113,#4089,#177,.T.); +#4819=EDGE_CURVE('',#4087,#4089,#318,.T.); +#4823=EDGE_CURVE('',#4127,#4128,#182,.T.); +#4825=EDGE_CURVE('',#4128,#4127,#187,.T.); +#4832=EDGE_CURVE('',#3950,#3972,#204,.T.); +#4834=EDGE_CURVE('',#3972,#4115,#209,.T.); +#4836=EDGE_CURVE('',#3903,#4115,#3845,.T.); +#4844=EDGE_CURVE('',#4348,#4650,#230,.T.); +#4846=EDGE_CURVE('',#4648,#4650,#235,.T.); +#4848=EDGE_CURVE('',#4648,#4346,#239,.T.); +#4850=EDGE_CURVE('',#4346,#3978,#244,.T.); +#4852=EDGE_CURVE('',#3978,#3976,#248,.T.); +#4854=EDGE_CURVE('',#3976,#4117,#252,.T.); +#4856=EDGE_CURVE('',#4117,#4118,#261,.T.); +#4858=EDGE_CURVE('',#4118,#4119,#274,.T.); +#4860=EDGE_CURVE('',#4120,#4119,#1695,.T.); +#4862=EDGE_CURVE('',#4122,#4120,#1624,.T.); +#4864=EDGE_CURVE('',#4122,#4124,#278,.T.); +#4866=EDGE_CURVE('',#4124,#3936,#283,.T.); +#4868=EDGE_CURVE('',#3936,#3946,#287,.T.); +#4870=EDGE_CURVE('',#3946,#4348,#292,.T.); +#4874=ADVANCED_FACE('',(#4822,#4828,#4843,#4873),#4788,.F.); +#4881=EDGE_CURVE('',#4087,#4085,#296,.T.); +#4883=EDGE_CURVE('',#4085,#4064,#305,.T.); +#4885=EDGE_CURVE('',#4064,#4101,#309,.T.); +#4889=ADVANCED_FACE('',(#4888),#4879,.T.); +#4895=EDGE_CURVE('',#4083,#4085,#314,.T.); +#4899=EDGE_CURVE('',#4083,#4089,#381,.T.); +#4903=ADVANCED_FACE('',(#4902),#4894,.T.); +#4910=EDGE_CURVE('',#4066,#4083,#328,.T.); +#4912=EDGE_CURVE('',#4066,#4064,#323,.T.); +#4917=ADVANCED_FACE('',(#4916),#4908,.T.); +#4943=EDGE_CURVE('',#4066,#4062,#344,.T.); +#4946=EDGE_CURVE('',#4083,#4081,#335,.T.); +#4948=EDGE_CURVE('',#4062,#4081,#357,.T.); +#4952=ADVANCED_FACE('',(#4951),#4942,.T.); +#4958=EDGE_CURVE('',#4048,#4062,#348,.T.); +#4960=EDGE_CURVE('',#4047,#4048,#1165,.T.); +#4962=EDGE_CURVE('',#4047,#4064,#339,.T.); +#4968=ADVANCED_FACE('',(#4967),#4957,.F.); +#4975=EDGE_CURVE('',#4079,#4062,#367,.T.); +#4977=EDGE_CURVE('',#4079,#4050,#352,.T.); +#4979=EDGE_CURVE('',#4048,#4050,#1170,.T.); +#4983=ADVANCED_FACE('',(#4982),#4973,.T.); +#4990=EDGE_CURVE('',#4081,#4079,#362,.T.); +#4995=ADVANCED_FACE('',(#4994),#4988,.T.); +#5001=EDGE_CURVE('',#4081,#4502,#372,.T.); +#5003=EDGE_CURVE('',#4502,#4458,#377,.T.); +#5005=EDGE_CURVE('',#4079,#4458,#1199,.T.); +#5010=ADVANCED_FACE('',(#5009),#5000,.T.); +#5020=EDGE_CURVE('',#4113,#4502,#385,.T.); +#5024=ADVANCED_FACE('',(#5023),#5015,.T.); +#5030=EDGE_CURVE('',#4499,#4500,#389,.T.); +#5032=EDGE_CURVE('',#4496,#4499,#427,.T.); +#5034=EDGE_CURVE('',#4495,#4496,#1354,.T.); +#5036=EDGE_CURVE('',#4502,#4495,#1372,.T.); +#5040=EDGE_CURVE('',#4504,#4111,#3086,.T.); +#5042=EDGE_CURVE('',#4500,#4504,#3108,.T.); +#5046=ADVANCED_FACE('',(#5045),#5029,.F.); +#5052=EDGE_CURVE('',#4499,#4455,#398,.T.); +#5055=EDGE_CURVE('',#4451,#4500,#3104,.T.); +#5057=EDGE_CURVE('',#4451,#4455,#393,.T.); +#5061=ADVANCED_FACE('',(#5060),#5051,.T.); +#5068=EDGE_CURVE('',#4455,#4453,#402,.T.); +#5070=EDGE_CURVE('',#4434,#4453,#3716,.T.); +#5072=EDGE_CURVE('',#4434,#4432,#406,.T.); +#5074=EDGE_CURVE('',#4432,#4487,#410,.T.); +#5076=EDGE_CURVE('',#4487,#4485,#414,.T.); +#5078=EDGE_CURVE('',#4490,#4485,#1333,.T.); +#5080=EDGE_CURVE('',#4490,#4492,#418,.T.); +#5082=EDGE_CURVE('',#4492,#4496,#423,.T.); +#5087=ADVANCED_FACE('',(#5086),#5066,.T.); +#5093=EDGE_CURVE('',#4449,#4451,#441,.T.); +#5095=EDGE_CURVE('',#4449,#4436,#432,.T.); +#5097=EDGE_CURVE('',#4438,#4436,#469,.T.); +#5099=EDGE_CURVE('',#4438,#4453,#437,.T.); +#5105=ADVANCED_FACE('',(#5104),#5092,.T.); +#5111=EDGE_CURVE('',#4449,#4430,#461,.T.); +#5114=EDGE_CURVE('',#4462,#4451,#3094,.T.); +#5116=EDGE_CURVE('',#4462,#4464,#446,.T.); +#5118=EDGE_CURVE('',#4466,#4464,#3054,.T.); +#5120=EDGE_CURVE('',#4466,#4467,#453,.T.); +#5122=EDGE_CURVE('',#4468,#4467,#3141,.T.); +#5124=EDGE_CURVE('',#4470,#4468,#3164,.T.); +#5126=EDGE_CURVE('',#4418,#4470,#3186,.T.); +#5128=EDGE_CURVE('',#4417,#4418,#554,.T.); +#5130=EDGE_CURVE('',#4416,#4417,#532,.T.); +#5132=EDGE_CURVE('',#4424,#4416,#504,.T.); +#5134=EDGE_CURVE('',#4430,#4424,#478,.T.); +#5138=ADVANCED_FACE('',(#5137),#5110,.T.); +#5144=EDGE_CURVE('',#4427,#4436,#457,.T.); +#5148=EDGE_CURVE('',#4427,#4430,#474,.T.); +#5152=ADVANCED_FACE('',(#5151),#5143,.F.); +#5159=EDGE_CURVE('',#4427,#4428,#465,.T.); +#5161=EDGE_CURVE('',#4438,#4428,#3712,.T.); +#5166=ADVANCED_FACE('',(#5165),#5157,.F.); +#5175=EDGE_CURVE('',#4424,#4409,#483,.T.); +#5177=EDGE_CURVE('',#4409,#4402,#487,.T.); +#5179=EDGE_CURVE('',#4400,#4402,#1400,.T.); +#5181=EDGE_CURVE('',#4400,#4432,#491,.T.); +#5184=EDGE_CURVE('',#4434,#4428,#496,.T.); +#5188=ADVANCED_FACE('',(#5187),#5171,.F.); +#5194=EDGE_CURVE('',#4404,#4416,#521,.T.); +#5196=EDGE_CURVE('',#4404,#4409,#500,.T.); +#5202=ADVANCED_FACE('',(#5201),#5193,.T.); +#5208=EDGE_CURVE('',#4403,#4404,#511,.T.); +#5213=EDGE_CURVE('',#4420,#4418,#3179,.T.); +#5215=EDGE_CURVE('',#4422,#4420,#3174,.T.); +#5217=EDGE_CURVE('',#4422,#4403,#561,.T.); +#5221=ADVANCED_FACE('',(#5220),#5207,.F.); +#5228=EDGE_CURVE('',#4403,#4406,#565,.T.); +#5230=EDGE_CURVE('',#4406,#4407,#573,.T.); +#5232=EDGE_CURVE('',#4407,#4385,#580,.T.); +#5234=EDGE_CURVE('',#4383,#4385,#662,.T.); +#5236=EDGE_CURVE('',#4383,#4402,#585,.T.); +#5242=ADVANCED_FACE('',(#5241),#5226,.F.); +#5249=EDGE_CURVE('',#4521,#4422,#589,.T.); +#5251=EDGE_CURVE('',#4406,#4521,#603,.T.); +#5256=ADVANCED_FACE('',(#5255),#5247,.F.); +#5262=EDGE_CURVE('',#4521,#4522,#610,.T.); +#5265=EDGE_CURVE('',#4520,#4422,#3169,.T.); +#5267=EDGE_CURVE('',#4524,#4520,#3210,.T.); +#5269=EDGE_CURVE('',#4522,#4524,#3364,.T.); +#5273=ADVANCED_FACE('',(#5272),#5261,.F.); +#5279=EDGE_CURVE('',#4525,#4526,#596,.T.); +#5281=EDGE_CURVE('',#4407,#4526,#3708,.T.); +#5286=EDGE_CURVE('',#4522,#4528,#614,.T.); +#5288=EDGE_CURVE('',#4530,#4528,#3337,.T.); +#5290=EDGE_CURVE('',#4525,#4530,#3291,.T.); +#5294=ADVANCED_FACE('',(#5293),#5278,.F.); +#5300=EDGE_CURVE('',#4389,#4387,#618,.T.); +#5302=EDGE_CURVE('',#4387,#4526,#625,.T.); +#5305=EDGE_CURVE('',#4531,#4525,#3319,.T.); +#5307=EDGE_CURVE('',#4531,#4389,#629,.T.); +#5311=ADVANCED_FACE('',(#5310),#5299,.F.); +#5317=EDGE_CURVE('',#4333,#4330,#633,.T.); +#5319=EDGE_CURVE('',#4330,#4344,#637,.T.); +#5321=EDGE_CURVE('',#4344,#4356,#641,.T.); +#5323=EDGE_CURVE('',#4356,#4380,#651,.T.); +#5325=EDGE_CURVE('',#4380,#4381,#658,.T.); +#5327=EDGE_CURVE('',#4383,#4381,#1404,.T.); +#5330=EDGE_CURVE('',#4385,#4387,#666,.T.); +#5333=EDGE_CURVE('',#4172,#4389,#3263,.T.); +#5335=EDGE_CURVE('',#4172,#4156,#670,.T.); +#5337=EDGE_CURVE('',#4154,#4156,#885,.T.); +#5339=EDGE_CURVE('',#4379,#4154,#844,.T.); +#5341=EDGE_CURVE('',#4333,#4379,#821,.T.); +#5345=ADVANCED_FACE('',(#5344),#5316,.F.); +#5351=EDGE_CURVE('',#4330,#4331,#710,.T.); +#5354=EDGE_CURVE('',#4333,#4327,#678,.T.); +#5356=EDGE_CURVE('',#4327,#4323,#682,.T.); +#5358=EDGE_CURVE('',#4323,#4325,#686,.T.); +#5360=EDGE_CURVE('',#4335,#4325,#764,.T.); +#5362=EDGE_CURVE('',#4336,#4335,#737,.T.); +#5364=EDGE_CURVE('',#4336,#4331,#693,.T.); +#5368=ADVANCED_FACE('',(#5367),#5350,.T.); +#5374=EDGE_CURVE('',#4026,#4027,#706,.T.); +#5376=EDGE_CURVE('',#4344,#4027,#1450,.T.); +#5380=EDGE_CURVE('',#4026,#4331,#726,.T.); +#5384=ADVANCED_FACE('',(#5383),#5373,.T.); +#5391=EDGE_CURVE('',#4028,#4026,#722,.T.); +#5393=EDGE_CURVE('',#4029,#4028,#755,.T.); +#5395=EDGE_CURVE('',#4029,#4031,#715,.T.); +#5397=EDGE_CURVE('',#4027,#4031,#1460,.T.); +#5401=ADVANCED_FACE('',(#5400),#5389,.T.); +#5410=B_SPLINE_CURVE_WITH_KNOTS('',3,(#5402,#5403,#5404,#5405,#5406,#5407,#5408, +#5409),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.037522218752E-2, +1.088417506500E-1,2.106962811155E-1,9.794136917219E-1,1.E0),.UNSPECIFIED.); +#5417=EDGE_CURVE('',#4336,#4028,#731,.T.); +#5421=ADVANCED_FACE('',(#5420),#5413,.T.); +#5429=EDGE_CURVE('',#4335,#4037,#741,.T.); +#5431=EDGE_CURVE('',#4037,#4029,#748,.T.); +#5436=ADVANCED_FACE('',(#5435),#5426,.T.); +#5442=EDGE_CURVE('',#4039,#4325,#775,.T.); +#5444=EDGE_CURVE('',#4039,#4037,#760,.T.); +#5450=ADVANCED_FACE('',(#5449),#5441,.T.); +#5456=EDGE_CURVE('',#4320,#4323,#779,.T.); +#5458=EDGE_CURVE('',#4320,#3984,#771,.T.); +#5460=EDGE_CURVE('',#3982,#3984,#1754,.T.); +#5462=EDGE_CURVE('',#4039,#3982,#1805,.T.); +#5468=ADVANCED_FACE('',(#5467),#5455,.F.); +#5476=EDGE_CURVE('',#4321,#4327,#817,.T.); +#5478=EDGE_CURVE('',#4320,#4321,#1812,.T.); +#5482=ADVANCED_FACE('',(#5481),#5473,.T.); +#5488=EDGE_CURVE('',#4376,#4377,#840,.T.); +#5490=EDGE_CURVE('',#4376,#4358,#788,.T.); +#5492=EDGE_CURVE('',#4358,#4340,#792,.T.); +#5494=EDGE_CURVE('',#4294,#4340,#1958,.T.); +#5496=EDGE_CURVE('',#4294,#4292,#796,.T.); +#5498=EDGE_CURVE('',#4292,#4298,#803,.T.); +#5500=EDGE_CURVE('',#4318,#4298,#1712,.T.); +#5502=EDGE_CURVE('',#4318,#4319,#813,.T.); +#5504=EDGE_CURVE('',#4321,#4319,#1819,.T.); +#5509=EDGE_CURVE('',#4379,#4377,#830,.T.); +#5513=ADVANCED_FACE('',(#5512),#5487,.T.); +#5519=EDGE_CURVE('',#4153,#4377,#848,.T.); +#5521=EDGE_CURVE('',#4153,#4151,#835,.T.); +#5523=EDGE_CURVE('',#4376,#4151,#2038,.T.); +#5528=ADVANCED_FACE('',(#5527),#5518,.F.); +#5535=EDGE_CURVE('',#4153,#4154,#881,.T.); +#5541=ADVANCED_FACE('',(#5540),#5533,.F.); +#5547=EDGE_CURVE('',#4148,#4149,#854,.T.); +#5549=EDGE_CURVE('',#4149,#4150,#863,.T.); +#5551=EDGE_CURVE('',#4150,#4151,#872,.T.); +#5556=EDGE_CURVE('',#4156,#4157,#893,.T.); +#5558=EDGE_CURVE('',#4157,#4142,#897,.T.); +#5560=EDGE_CURVE('',#4142,#4141,#903,.T.); +#5562=EDGE_CURVE('',#4141,#4145,#913,.T.); +#5564=EDGE_CURVE('',#4145,#4146,#923,.T.); +#5566=EDGE_CURVE('',#4146,#4158,#929,.T.); +#5568=EDGE_CURVE('',#4158,#4148,#933,.T.); +#5572=ADVANCED_FACE('',(#5571),#5546,.F.); +#5578=EDGE_CURVE('',#4161,#4162,#937,.T.); +#5580=EDGE_CURVE('',#4164,#4162,#2218,.T.); +#5582=EDGE_CURVE('',#4164,#4166,#942,.T.); +#5584=EDGE_CURVE('',#4149,#4166,#2049,.T.); +#5587=EDGE_CURVE('',#4161,#4148,#2629,.T.); +#5591=ADVANCED_FACE('',(#5590),#5577,.F.); +#5597=EDGE_CURVE('',#4182,#4183,#946,.T.); +#5599=EDGE_CURVE('',#4162,#4183,#975,.T.); +#5602=EDGE_CURVE('',#4182,#4161,#2621,.T.); +#5606=ADVANCED_FACE('',(#5605),#5596,.T.); +#5612=EDGE_CURVE('',#4183,#4185,#979,.T.); +#5615=EDGE_CURVE('',#4187,#4182,#2612,.T.); +#5617=EDGE_CURVE('',#4187,#4189,#951,.T.); +#5619=EDGE_CURVE('',#4191,#4189,#2567,.T.); +#5621=EDGE_CURVE('',#4193,#4191,#2559,.T.); +#5623=EDGE_CURVE('',#4193,#4195,#956,.T.); +#5625=EDGE_CURVE('',#4077,#4195,#2478,.T.); +#5627=EDGE_CURVE('',#4075,#4077,#1020,.T.); +#5629=EDGE_CURVE('',#4185,#4075,#991,.T.); +#5633=EDGE_CURVE('',#4198,#4199,#961,.T.); +#5635=EDGE_CURVE('',#4199,#4198,#966,.T.); +#5639=ADVANCED_FACE('',(#5632,#5638),#5611,.T.); +#5645=EDGE_CURVE('',#4539,#4185,#987,.T.); +#5647=EDGE_CURVE('',#4162,#4539,#2204,.T.); +#5653=ADVANCED_FACE('',(#5652),#5644,.T.); +#5661=EDGE_CURVE('',#4073,#4075,#1005,.T.); +#5663=EDGE_CURVE('',#4073,#4071,#995,.T.); +#5665=EDGE_CURVE('',#4539,#4071,#2209,.T.); +#5669=ADVANCED_FACE('',(#5668),#5658,.F.); +#5675=EDGE_CURVE('',#4075,#4073,#1000,.T.); +#5680=ADVANCED_FACE('',(#5679),#5674,.F.); +#5686=EDGE_CURVE('',#4058,#3990,#1029,.T.); +#5688=EDGE_CURVE('',#4058,#4068,#1009,.T.); +#5690=EDGE_CURVE('',#4068,#4069,#1016,.T.); +#5692=EDGE_CURVE('',#4071,#4069,#2214,.T.); +#5697=EDGE_CURVE('',#3992,#4077,#2465,.T.); +#5699=EDGE_CURVE('',#3992,#3990,#1024,.T.); +#5703=ADVANCED_FACE('',(#5702),#5685,.F.); +#5710=EDGE_CURVE('',#3990,#3988,#1034,.T.); +#5712=EDGE_CURVE('',#3988,#4001,#1039,.T.); +#5714=EDGE_CURVE('',#4001,#4060,#1044,.T.); +#5716=EDGE_CURVE('',#4058,#4060,#2189,.T.); +#5720=ADVANCED_FACE('',(#5719),#5708,.T.); +#5726=EDGE_CURVE('',#3988,#3989,#1058,.T.); +#5730=EDGE_CURVE('',#3994,#3992,#2447,.T.); +#5733=EDGE_CURVE('',#3959,#3960,#1129,.T.); +#5735=EDGE_CURVE('',#3995,#3959,#1118,.T.); +#5737=EDGE_CURVE('',#3995,#3996,#1054,.T.); +#5739=EDGE_CURVE('',#3989,#3996,#1069,.T.); +#5743=ADVANCED_FACE('',(#5742),#5725,.F.); +#5750=EDGE_CURVE('',#3997,#3989,#1076,.T.); +#5752=EDGE_CURVE('',#3998,#3997,#2409,.T.); +#5754=EDGE_CURVE('',#3998,#4000,#1062,.T.); +#5756=EDGE_CURVE('',#4001,#4000,#1235,.T.); +#5761=ADVANCED_FACE('',(#5760),#5748,.F.); +#5768=EDGE_CURVE('',#3997,#3996,#1081,.T.); +#5773=ADVANCED_FACE('',(#5772),#5766,.F.); +#5781=EDGE_CURVE('',#3995,#4015,#1086,.T.); +#5783=EDGE_CURVE('',#4015,#4017,#1091,.T.); +#5785=EDGE_CURVE('',#4017,#4019,#1096,.T.); +#5787=EDGE_CURVE('',#4020,#4019,#1156,.T.); +#5789=EDGE_CURVE('',#4021,#4020,#2439,.T.); +#5791=EDGE_CURVE('',#4021,#4023,#1101,.T.); +#5793=EDGE_CURVE('',#4023,#4025,#1106,.T.); +#5795=EDGE_CURVE('',#4025,#3997,#1111,.T.); +#5799=ADVANCED_FACE('',(#5798),#5778,.T.); +#5806=EDGE_CURVE('',#3966,#3959,#1139,.T.); +#5808=EDGE_CURVE('',#3964,#3966,#1134,.T.); +#5810=EDGE_CURVE('',#3964,#4019,#1125,.T.); +#5817=ADVANCED_FACE('',(#5816),#5804,.T.); +#5825=EDGE_CURVE('',#3964,#3962,#1160,.T.); +#5831=ADVANCED_FACE('',(#5830),#5822,.F.); +#5837=EDGE_CURVE('',#4043,#4044,#1143,.T.); +#5839=EDGE_CURVE('',#4044,#4020,#1147,.T.); +#5847=ADVANCED_FACE('',(#5846),#5836,.F.); +#5855=EDGE_CURVE('',#4052,#4050,#1194,.T.); +#5857=EDGE_CURVE('',#4052,#4054,#1175,.T.); +#5859=EDGE_CURVE('',#4044,#4054,#2443,.T.); +#5863=EDGE_CURVE('',#4056,#4047,#1183,.T.); +#5867=ADVANCED_FACE('',(#5866),#5852,.T.); +#5873=EDGE_CURVE('',#4456,#4052,#1190,.T.); +#5878=EDGE_CURVE('',#4460,#4458,#1376,.T.); +#5880=EDGE_CURVE('',#4460,#4456,#1203,.T.); +#5884=ADVANCED_FACE('',(#5883),#5872,.T.); +#5890=EDGE_CURVE('',#4441,#4443,#1271,.T.); +#5892=EDGE_CURVE('',#4441,#4471,#1212,.T.); +#5894=EDGE_CURVE('',#4472,#4471,#1301,.T.); +#5896=EDGE_CURVE('',#4474,#4472,#2398,.T.); +#5898=EDGE_CURVE('',#4476,#4474,#2393,.T.); +#5900=EDGE_CURVE('',#4477,#4476,#1294,.T.); +#5902=EDGE_CURVE('',#4477,#4411,#1221,.T.); +#5904=EDGE_CURVE('',#4411,#4415,#1228,.T.); +#5906=EDGE_CURVE('',#4060,#4415,#2196,.T.); +#5910=EDGE_CURVE('',#4000,#4478,#1242,.T.); +#5912=EDGE_CURVE('',#4478,#4479,#1249,.T.); +#5914=EDGE_CURVE('',#4479,#4054,#1258,.T.); +#5918=EDGE_CURVE('',#4456,#4443,#1264,.T.); +#5922=ADVANCED_FACE('',(#5921),#5889,.F.); +#5928=EDGE_CURVE('',#4441,#4442,#1283,.T.); +#5931=EDGE_CURVE('',#4445,#4443,#1341,.T.); +#5933=EDGE_CURVE('',#4447,#4445,#1337,.T.); +#5935=EDGE_CURVE('',#4447,#4442,#1275,.T.); +#5939=ADVANCED_FACE('',(#5938),#5927,.F.); +#5945=EDGE_CURVE('',#4481,#4471,#1279,.T.); +#5949=EDGE_CURVE('',#4481,#4442,#1306,.T.); +#5953=ADVANCED_FACE('',(#5952),#5944,.F.); +#5960=EDGE_CURVE('',#4481,#4483,#1287,.T.); +#5962=EDGE_CURVE('',#4477,#4483,#2181,.T.); +#5965=EDGE_CURVE('',#4472,#4476,#2388,.T.); +#5970=ADVANCED_FACE('',(#5969),#5958,.T.); +#5979=EDGE_CURVE('',#4447,#4485,#1311,.T.); +#5982=EDGE_CURVE('',#4487,#4398,#1315,.T.); +#5984=EDGE_CURVE('',#4396,#4398,#1396,.T.); +#5986=EDGE_CURVE('',#4396,#4483,#1320,.T.); +#5990=ADVANCED_FACE('',(#5989),#5975,.F.); +#5996=EDGE_CURVE('',#4445,#4488,#1329,.T.); +#5998=EDGE_CURVE('',#4490,#4488,#1350,.T.); +#6005=ADVANCED_FACE('',(#6004),#5995,.T.); +#6013=B_SPLINE_CURVE_WITH_KNOTS('',3,(#6006,#6007,#6008,#6009,#6010,#6011, +#6012),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,9.122135981592E-2, +5.033177534491E-1,9.087786401841E-1,1.E0),.UNSPECIFIED.); +#6019=EDGE_CURVE('',#4456,#4488,#1345,.T.); +#6024=ADVANCED_FACE('',(#6023),#6016,.T.); +#6032=EDGE_CURVE('',#4492,#4460,#1358,.T.); +#6038=ADVANCED_FACE('',(#6037),#6029,.T.); +#6047=EDGE_CURVE('',#4460,#4495,#1368,.T.); +#6051=ADVANCED_FACE('',(#6050),#6043,.T.); +#6063=ADVANCED_FACE('',(#6062),#6056,.T.); +#6069=EDGE_CURVE('',#4400,#4398,#1381,.T.); +#6076=ADVANCED_FACE('',(#6075),#6068,.T.); +#6082=EDGE_CURVE('',#4393,#4381,#1414,.T.); +#6084=EDGE_CURVE('',#4372,#4393,#1409,.T.); +#6086=EDGE_CURVE('',#4372,#4370,#1385,.T.); +#6088=EDGE_CURVE('',#4395,#4370,#2162,.T.); +#6090=EDGE_CURVE('',#4395,#4396,#1392,.T.); +#6099=ADVANCED_FACE('',(#6098),#6081,.F.); +#6105=EDGE_CURVE('',#4391,#4380,#1424,.T.); +#6107=EDGE_CURVE('',#4373,#4391,#1419,.T.); +#6109=EDGE_CURVE('',#4372,#4373,#2020,.T.); +#6116=ADVANCED_FACE('',(#6115),#6104,.F.); +#6125=EDGE_CURVE('',#4355,#4356,#1446,.T.); +#6127=EDGE_CURVE('',#4352,#4355,#1441,.T.); +#6129=EDGE_CURVE('',#4373,#4352,#2030,.T.); +#6133=ADVANCED_FACE('',(#6132),#6121,.T.); +#6139=EDGE_CURVE('',#4647,#4648,#1428,.T.); +#6141=EDGE_CURVE('',#4647,#4351,#1432,.T.); +#6143=EDGE_CURVE('',#4351,#4352,#1436,.T.); +#6150=EDGE_CURVE('',#4036,#4031,#1798,.T.); +#6152=EDGE_CURVE('',#4346,#4036,#1772,.T.); +#6157=ADVANCED_FACE('',(#6156),#6138,.T.); +#6163=EDGE_CURVE('',#4636,#4650,#1464,.T.); +#6166=EDGE_CURVE('',#3920,#4348,#1536,.T.); +#6168=EDGE_CURVE('',#4636,#3920,#1496,.T.); +#6172=ADVANCED_FACE('',(#6171),#6162,.T.); +#6178=EDGE_CURVE('',#4634,#4635,#1468,.T.); +#6180=EDGE_CURVE('',#4647,#4634,#1979,.T.); +#6185=EDGE_CURVE('',#4635,#4636,#1492,.T.); +#6189=ADVANCED_FACE('',(#6188),#6177,.T.); +#6196=EDGE_CURVE('',#4635,#3918,#1473,.T.); +#6198=EDGE_CURVE('',#3918,#4634,#1477,.T.); +#6202=ADVANCED_FACE('',(#6201),#6194,.F.); +#6210=EDGE_CURVE('',#3919,#3920,#1532,.T.); +#6212=EDGE_CURVE('',#3922,#3919,#1553,.T.); +#6214=EDGE_CURVE('',#3922,#3924,#1500,.T.); +#6216=EDGE_CURVE('',#3926,#3924,#2241,.T.); +#6218=EDGE_CURVE('',#3916,#3926,#2226,.T.); +#6220=EDGE_CURVE('',#3915,#3916,#1969,.T.); +#6222=EDGE_CURVE('',#3915,#3918,#1504,.T.); +#6227=ADVANCED_FACE('',(#6226),#6207,.T.); +#6234=EDGE_CURVE('',#3946,#3919,#1508,.T.); +#6240=ADVANCED_FACE('',(#6239),#6232,.T.); +#6246=EDGE_CURVE('',#3935,#3936,#1557,.T.); +#6248=EDGE_CURVE('',#3935,#3938,#1540,.T.); +#6250=EDGE_CURVE('',#3940,#3938,#1861,.T.); +#6252=EDGE_CURVE('',#3940,#3942,#1544,.T.); +#6254=EDGE_CURVE('',#3944,#3942,#2258,.T.); +#6256=EDGE_CURVE('',#3944,#3922,#1548,.T.); +#6263=ADVANCED_FACE('',(#6262),#6245,.F.); +#6269=EDGE_CURVE('',#4284,#4285,#1575,.T.); +#6271=EDGE_CURVE('',#3935,#4284,#1570,.T.); +#6275=EDGE_CURVE('',#4124,#4315,#1561,.T.); +#6277=EDGE_CURVE('',#4317,#4315,#1603,.T.); +#6279=EDGE_CURVE('',#4317,#4285,#1565,.T.); +#6283=ADVANCED_FACE('',(#6282),#6268,.T.); +#6291=EDGE_CURVE('',#4287,#4285,#1598,.T.); +#6293=EDGE_CURVE('',#4289,#4287,#1649,.T.); +#6295=EDGE_CURVE('',#4289,#4291,#1580,.T.); +#6297=EDGE_CURVE('',#4291,#4271,#1585,.T.); +#6299=EDGE_CURVE('',#4271,#3938,#1590,.T.); +#6304=ADVANCED_FACE('',(#6303),#6288,.F.); +#6311=EDGE_CURVE('',#4311,#4317,#1607,.T.); +#6313=EDGE_CURVE('',#4311,#4287,#1594,.T.); +#6318=ADVANCED_FACE('',(#6317),#6309,.T.); +#6325=EDGE_CURVE('',#4313,#4315,#1616,.T.); +#6327=EDGE_CURVE('',#4311,#4313,#1653,.T.); +#6332=ADVANCED_FACE('',(#6331),#6323,.T.); +#6340=EDGE_CURVE('',#4122,#4308,#1612,.T.); +#6342=EDGE_CURVE('',#4313,#4308,#1657,.T.); +#6347=ADVANCED_FACE('',(#6346),#6337,.F.); +#6353=EDGE_CURVE('',#4307,#4308,#1620,.T.); +#6357=EDGE_CURVE('',#4307,#4120,#1680,.T.); +#6361=ADVANCED_FACE('',(#6360),#6352,.T.); +#6368=EDGE_CURVE('',#4307,#4309,#1634,.T.); +#6370=EDGE_CURVE('',#4309,#4304,#1641,.T.); +#6372=EDGE_CURVE('',#4304,#4302,#1645,.T.); +#6374=EDGE_CURVE('',#4289,#4302,#1876,.T.); +#6382=ADVANCED_FACE('',(#6381),#6366,.T.); +#6475=EDGE_CURVE('',#4297,#4119,#1724,.T.); +#6477=EDGE_CURVE('',#4309,#4297,#1918,.T.); +#6481=ADVANCED_FACE('',(#6480),#6471,.F.); +#6605=EDGE_CURVE('',#4118,#4318,#1702,.T.); +#6608=EDGE_CURVE('',#4297,#4298,#1829,.T.); +#6613=ADVANCED_FACE('',(#6612),#6603,.F.); +#6714=EDGE_CURVE('',#4117,#3975,#1734,.T.); +#6716=EDGE_CURVE('',#3985,#3975,#1768,.T.); +#6718=EDGE_CURVE('',#3985,#4319,#1741,.T.); +#6725=ADVANCED_FACE('',(#6724),#6713,.T.); +#6731=EDGE_CURVE('',#3975,#3976,#1745,.T.); +#6737=ADVANCED_FACE('',(#6736),#6730,.T.); +#6745=EDGE_CURVE('',#3980,#3978,#1776,.T.); +#6747=EDGE_CURVE('',#3980,#3982,#1750,.T.); +#6750=EDGE_CURVE('',#3984,#3985,#1761,.T.); +#6755=ADVANCED_FACE('',(#6754),#6742,.F.); +#6763=EDGE_CURVE('',#3980,#4036,#1791,.T.); +#6768=ADVANCED_FACE('',(#6767),#6760,.T.); +#6783=ADVANCED_FACE('',(#6782),#6773,.T.); +#6824=ADVANCED_FACE('',(#6823),#6816,.F.); +#6866=EDGE_CURVE('',#4266,#4267,#1842,.T.); +#6868=EDGE_CURVE('',#4275,#4266,#1868,.T.); +#6870=EDGE_CURVE('',#4295,#4275,#1910,.T.); +#6872=EDGE_CURVE('',#4297,#4295,#1922,.T.); +#6876=EDGE_CURVE('',#4267,#4292,#1931,.T.); +#6880=ADVANCED_FACE('',(#6879),#6865,.T.); +#6887=EDGE_CURVE('',#3940,#4266,#1834,.T.); +#6890=EDGE_CURVE('',#4269,#4267,#1926,.T.); +#6892=EDGE_CURVE('',#4269,#3942,#1847,.T.); +#6896=EDGE_CURVE('',#4263,#4264,#1852,.T.); +#6898=EDGE_CURVE('',#4264,#4263,#1857,.T.); +#6902=ADVANCED_FACE('',(#6895,#6901),#6885,.T.); +#6910=EDGE_CURVE('',#4273,#4271,#1872,.T.); +#6912=EDGE_CURVE('',#4275,#4273,#1881,.T.); +#6918=ADVANCED_FACE('',(#6917),#6907,.T.); +#6928=EDGE_CURVE('',#4301,#4302,#1891,.T.); +#6930=EDGE_CURVE('',#4273,#4301,#1886,.T.); +#6934=ADVANCED_FACE('',(#6933),#6923,.T.); +#6944=EDGE_CURVE('',#4304,#4295,#1903,.T.); +#6949=ADVANCED_FACE('',(#6948),#6939,.T.); +#6993=ADVANCED_FACE('',(#6992),#6986,.T.); +#7002=EDGE_CURVE('',#4279,#4294,#1950,.T.); +#7004=EDGE_CURVE('',#4279,#4277,#1935,.T.); +#7006=EDGE_CURVE('',#4269,#4277,#2263,.T.); +#7010=ADVANCED_FACE('',(#7009),#6998,.T.); +#7016=EDGE_CURVE('',#4337,#4338,#1942,.T.); +#7018=EDGE_CURVE('',#4339,#4338,#2236,.T.); +#7020=EDGE_CURVE('',#4281,#4339,#2249,.T.); +#7022=EDGE_CURVE('',#4281,#4279,#1946,.T.); +#7026=EDGE_CURVE('',#4342,#4340,#1991,.T.); +#7028=EDGE_CURVE('',#4337,#4342,#1983,.T.); +#7032=ADVANCED_FACE('',(#7031),#7015,.T.); +#7041=B_SPLINE_CURVE_WITH_KNOTS('',3,(#7033,#7034,#7035,#7036,#7037,#7038,#7039, +#7040),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.030988854563E-2, +1.120523467548E-1,2.135398791584E-1,9.794954668850E-1,1.E0),.UNSPECIFIED.); +#7046=EDGE_CURVE('',#4337,#3915,#1962,.T.); +#7049=EDGE_CURVE('',#3916,#4338,#1974,.T.); +#7053=ADVANCED_FACE('',(#7052),#7044,.F.); +#7064=EDGE_CURVE('',#4351,#4342,#1987,.T.); +#7069=ADVANCED_FACE('',(#7068),#7058,.T.); +#7079=EDGE_CURVE('',#4150,#4358,#2034,.T.); +#7081=EDGE_CURVE('',#4150,#4361,#1997,.T.); +#7083=EDGE_CURVE('',#4361,#4362,#2001,.T.); +#7085=EDGE_CURVE('',#4362,#4364,#2005,.T.); +#7087=EDGE_CURVE('',#4366,#4364,#2140,.T.); +#7089=EDGE_CURVE('',#4366,#4368,#2009,.T.); +#7091=EDGE_CURVE('',#4368,#4370,#2013,.T.); +#7098=ADVANCED_FACE('',(#7097),#7074,.F.); +#7110=ADVANCED_FACE('',(#7109),#7103,.F.); +#7116=EDGE_CURVE('',#4537,#4536,#2045,.T.); +#7118=EDGE_CURVE('',#4362,#4536,#2153,.T.); +#7124=EDGE_CURVE('',#4537,#4166,#2121,.T.); +#7128=ADVANCED_FACE('',(#7127),#7115,.T.); +#7134=EDGE_CURVE('',#4537,#4535,#2078,.T.); +#7136=EDGE_CURVE('',#4535,#4534,#2085,.T.); +#7138=EDGE_CURVE('',#4534,#4536,#2107,.T.); +#7143=ADVANCED_FACE('',(#7142),#7133,.F.); +#7149=EDGE_CURVE('',#4532,#4535,#2114,.T.); +#7154=EDGE_CURVE('',#4164,#4069,#2125,.T.); +#7157=EDGE_CURVE('',#4068,#4413,#2132,.T.); +#7159=EDGE_CURVE('',#4412,#4413,#2177,.T.); +#7161=EDGE_CURVE('',#4412,#4532,#2136,.T.); +#7165=ADVANCED_FACE('',(#7164),#7148,.F.); +#7172=EDGE_CURVE('',#4534,#4364,#2157,.T.); +#7176=EDGE_CURVE('',#4532,#4366,#2147,.T.); +#7180=ADVANCED_FACE('',(#7179),#7170,.F.); +#7192=ADVANCED_FACE('',(#7191),#7185,.F.); +#7200=EDGE_CURVE('',#4368,#4412,#2169,.T.); +#7205=ADVANCED_FACE('',(#7204),#7197,.F.); +#7211=EDGE_CURVE('',#4395,#4411,#2185,.T.); +#7217=EDGE_CURVE('',#4415,#4413,#2200,.T.); +#7222=ADVANCED_FACE('',(#7221),#7210,.F.); +#7235=ADVANCED_FACE('',(#7234),#7227,.T.); +#7248=ADVANCED_FACE('',(#7247),#7240,.F.); +#7261=ADVANCED_FACE('',(#7260),#7253,.F.); +#7269=EDGE_CURVE('',#3926,#4339,#2230,.T.); +#7274=ADVANCED_FACE('',(#7273),#7266,.T.); +#7282=EDGE_CURVE('',#3924,#4281,#2245,.T.); +#7287=ADVANCED_FACE('',(#7286),#7279,.T.); +#7293=EDGE_CURVE('',#3944,#4277,#2254,.T.); +#7302=ADVANCED_FACE('',(#7301),#7292,.F.); +#7314=ADVANCED_FACE('',(#7313),#7307,.T.); +#7321=EDGE_CURVE('',#4260,#4263,#2271,.T.); +#7323=EDGE_CURVE('',#4259,#4260,#2296,.T.); +#7325=EDGE_CURVE('',#4259,#4264,#2267,.T.); +#7329=ADVANCED_FACE('',(#7328),#7319,.F.); +#7337=EDGE_CURVE('',#4260,#4259,#2301,.T.); +#7342=ADVANCED_FACE('',(#7341),#7334,.F.); +#7348=EDGE_CURVE('',#4238,#4256,#2276,.T.); +#7350=EDGE_CURVE('',#4256,#4242,#2281,.T.); +#7352=EDGE_CURVE('',#4242,#4240,#2286,.T.); +#7354=EDGE_CURVE('',#4240,#4238,#2291,.T.); +#7362=ADVANCED_FACE('',(#7357,#7361),#7347,.F.); +#7368=EDGE_CURVE('',#4230,#4232,#2323,.T.); +#7370=EDGE_CURVE('',#4254,#4230,#2363,.T.); +#7372=EDGE_CURVE('',#4252,#4254,#2359,.T.); +#7374=EDGE_CURVE('',#4250,#4252,#2354,.T.); +#7376=EDGE_CURVE('',#4248,#4250,#2350,.T.); +#7378=EDGE_CURVE('',#4248,#4246,#2305,.T.); +#7380=EDGE_CURVE('',#4246,#4244,#2310,.T.); +#7382=EDGE_CURVE('',#4244,#4242,#2314,.T.); +#7386=EDGE_CURVE('',#4236,#4238,#2345,.T.); +#7388=EDGE_CURVE('',#4234,#4236,#2341,.T.); +#7390=EDGE_CURVE('',#4234,#4232,#2318,.T.); +#7394=ADVANCED_FACE('',(#7393),#7367,.F.); +#7401=EDGE_CURVE('',#4230,#4198,#2336,.T.); +#7404=EDGE_CURVE('',#4232,#4199,#2327,.T.); +#7408=ADVANCED_FACE('',(#7407),#7399,.F.); +#7416=EDGE_CURVE('',#4232,#4230,#2332,.T.); +#7421=ADVANCED_FACE('',(#7420),#7413,.F.); +#7442=ADVANCED_FACE('',(#7441),#7426,.F.); +#7465=ADVANCED_FACE('',(#7464),#7459,.F.); +#7472=EDGE_CURVE('',#4630,#3998,#2432,.T.); +#7474=EDGE_CURVE('',#4630,#4478,#2402,.T.); +#7479=ADVANCED_FACE('',(#7478),#7470,.T.); +#7489=EDGE_CURVE('',#4021,#4631,#2418,.T.); +#7491=EDGE_CURVE('',#4631,#4630,#2425,.T.); +#7496=ADVANCED_FACE('',(#7495),#7484,.T.); +#7512=ADVANCED_FACE('',(#7511),#7501,.T.); +#7524=ADVANCED_FACE('',(#7523),#7517,.F.); +#7532=EDGE_CURVE('',#4099,#3992,#2460,.T.); +#7534=EDGE_CURVE('',#4099,#4097,#2451,.T.); +#7538=ADVANCED_FACE('',(#7537),#7529,.T.); +#7544=EDGE_CURVE('',#4099,#4093,#2474,.T.); +#7548=EDGE_CURVE('',#4093,#4077,#2491,.T.); +#7552=ADVANCED_FACE('',(#7551),#7543,.T.); +#7558=EDGE_CURVE('',#4092,#4093,#2482,.T.); +#7560=EDGE_CURVE('',#4095,#4092,#2514,.T.); +#7567=ADVANCED_FACE('',(#7566),#7557,.T.); +#7574=EDGE_CURVE('',#4092,#4195,#2501,.T.); +#7580=ADVANCED_FACE('',(#7579),#7572,.T.); +#7598=EDGE_CURVE('',#4609,#4092,#2496,.T.); +#7602=EDGE_CURVE('',#4193,#4609,#2506,.T.); +#7606=ADVANCED_FACE('',(#7605),#7597,.T.); +#7613=EDGE_CURVE('',#4609,#4103,#2510,.T.); +#7619=ADVANCED_FACE('',(#7618),#7611,.T.); +#7625=EDGE_CURVE('',#4600,#4601,#2532,.T.); +#7627=EDGE_CURVE('',#4600,#4603,#2519,.T.); +#7629=EDGE_CURVE('',#4605,#4603,#3415,.T.); +#7631=EDGE_CURVE('',#4605,#4597,#2524,.T.); +#7633=EDGE_CURVE('',#4596,#4597,#3392,.T.); +#7635=EDGE_CURVE('',#4607,#4596,#3013,.T.); +#7637=EDGE_CURVE('',#4105,#4607,#3036,.T.); +#7641=EDGE_CURVE('',#4601,#4609,#2555,.T.); +#7645=ADVANCED_FACE('',(#7644),#7624,.T.); +#7652=EDGE_CURVE('',#4572,#4601,#2551,.T.); +#7654=EDGE_CURVE('',#4572,#4570,#2536,.T.); +#7656=EDGE_CURVE('',#4600,#4570,#3424,.T.); +#7660=ADVANCED_FACE('',(#7659),#7650,.T.); +#7666=EDGE_CURVE('',#4601,#4191,#2541,.T.); +#7668=EDGE_CURVE('',#4191,#4560,#2546,.T.); +#7670=EDGE_CURVE('',#4572,#4560,#2576,.T.); +#7675=ADVANCED_FACE('',(#7674),#7665,.T.); +#7687=ADVANCED_FACE('',(#7686),#7680,.T.); +#7693=EDGE_CURVE('',#4549,#4560,#2563,.T.); +#7697=EDGE_CURVE('',#4549,#4189,#2600,.T.); +#7701=ADVANCED_FACE('',(#7700),#7692,.T.); +#7708=EDGE_CURVE('',#4552,#4549,#2587,.T.); +#7710=EDGE_CURVE('',#4562,#4552,#2679,.T.); +#7712=EDGE_CURVE('',#4563,#4562,#3581,.T.); +#7714=EDGE_CURVE('',#4564,#4563,#3532,.T.); +#7716=EDGE_CURVE('',#4566,#4564,#3503,.T.); +#7718=EDGE_CURVE('',#4566,#4568,#2571,.T.); +#7720=EDGE_CURVE('',#4570,#4568,#3438,.T.); +#7726=ADVANCED_FACE('',(#7725),#7706,.F.); +#7732=EDGE_CURVE('',#4548,#4549,#2592,.T.); +#7734=EDGE_CURVE('',#4548,#4550,#2583,.T.); +#7736=EDGE_CURVE('',#4552,#4550,#2684,.T.); +#7741=ADVANCED_FACE('',(#7740),#7731,.F.); +#7750=EDGE_CURVE('',#4548,#4187,#2608,.T.); +#7754=ADVANCED_FACE('',(#7753),#7746,.T.); +#7760=EDGE_CURVE('',#4548,#4161,#2625,.T.); +#7767=ADVANCED_FACE('',(#7766),#7759,.T.); +#7776=EDGE_CURVE('',#4158,#4578,#2633,.T.); +#7778=EDGE_CURVE('',#4550,#4578,#2688,.T.); +#7783=ADVANCED_FACE('',(#7782),#7772,.F.); +#7789=EDGE_CURVE('',#4578,#4579,#2646,.T.); +#7792=EDGE_CURVE('',#4158,#4627,#2638,.T.); +#7794=EDGE_CURVE('',#4579,#4627,#2692,.T.); +#7798=ADVANCED_FACE('',(#7797),#7788,.T.); +#7805=EDGE_CURVE('',#4579,#4580,#2659,.T.); +#7807=EDGE_CURVE('',#4580,#4562,#2675,.T.); +#7814=ADVANCED_FACE('',(#7813),#7803,.T.); +#7853=EDGE_CURVE('',#4627,#4628,#2699,.T.); +#7855=EDGE_CURVE('',#4628,#4624,#2710,.T.); +#7857=EDGE_CURVE('',#4624,#4580,#2714,.T.); +#7862=ADVANCED_FACE('',(#7861),#7851,.F.); +#7904=EDGE_CURVE('',#4628,#4147,#2729,.T.); +#7909=EDGE_CURVE('',#4146,#4147,#2722,.T.); +#7913=ADVANCED_FACE('',(#7912),#7903,.T.); +#7987=EDGE_CURVE('',#4140,#4147,#2748,.T.); +#7989=EDGE_CURVE('',#4134,#4140,#2811,.T.); +#7991=EDGE_CURVE('',#4136,#4134,#3623,.T.); +#7993=EDGE_CURVE('',#4624,#4136,#3553,.T.); +#7999=ADVANCED_FACE('',(#7998),#7986,.T.); +#8102=EDGE_CURVE('',#4145,#4140,#2737,.T.); +#8108=ADVANCED_FACE('',(#8107),#8100,.T.); +#8202=EDGE_CURVE('',#4140,#4137,#2822,.T.); +#8206=EDGE_CURVE('',#4141,#4137,#2756,.T.); +#8210=ADVANCED_FACE('',(#8209),#8201,.T.); +#8284=EDGE_CURVE('',#4137,#4138,#2763,.T.); +#8286=EDGE_CURVE('',#4138,#4139,#2774,.T.); +#8288=EDGE_CURVE('',#4139,#4133,#2783,.T.); +#8290=EDGE_CURVE('',#4133,#4134,#2804,.T.); +#8296=ADVANCED_FACE('',(#8295),#8283,.F.); +#8329=EDGE_CURVE('',#4142,#4144,#2827,.T.); +#8331=EDGE_CURVE('',#4138,#4144,#3696,.T.); +#8335=ADVANCED_FACE('',(#8334),#8325,.T.); +#8341=EDGE_CURVE('',#4573,#4574,#2835,.T.); +#8343=EDGE_CURVE('',#4144,#4573,#3689,.T.); +#8346=EDGE_CURVE('',#4574,#4142,#2876,.T.); +#8350=ADVANCED_FACE('',(#8349),#8340,.T.); +#8357=EDGE_CURVE('',#4558,#4574,#2872,.T.); +#8359=EDGE_CURVE('',#4558,#4556,#2840,.T.); +#8361=EDGE_CURVE('',#4576,#4556,#3482,.T.); +#8363=EDGE_CURVE('',#4576,#4577,#2851,.T.); +#8365=EDGE_CURVE('',#4577,#4573,#2864,.T.); +#8369=ADVANCED_FACE('',(#8368),#8355,.T.); +#8375=EDGE_CURVE('',#4169,#4542,#2868,.T.); +#8377=EDGE_CURVE('',#4558,#4542,#2959,.T.); +#8382=EDGE_CURVE('',#4157,#4169,#2880,.T.); +#8386=ADVANCED_FACE('',(#8385),#8374,.F.); +#8392=EDGE_CURVE('',#4215,#4213,#2884,.T.); +#8394=EDGE_CURVE('',#4213,#4542,#2892,.T.); +#8397=EDGE_CURVE('',#4169,#4215,#2901,.T.); +#8401=ADVANCED_FACE('',(#8400),#8391,.T.); +#8407=EDGE_CURVE('',#4212,#4213,#2906,.T.); +#8410=EDGE_CURVE('',#4217,#4215,#3245,.T.); +#8412=EDGE_CURVE('',#4217,#4219,#2911,.T.); +#8414=EDGE_CURVE('',#4221,#4219,#3218,.T.); +#8416=EDGE_CURVE('',#4223,#4221,#3214,.T.); +#8418=EDGE_CURVE('',#4224,#4223,#3193,.T.); +#8420=EDGE_CURVE('',#4226,#4224,#3150,.T.); +#8422=EDGE_CURVE('',#4227,#4226,#3134,.T.); +#8424=EDGE_CURVE('',#4227,#4228,#2918,.T.); +#8426=EDGE_CURVE('',#4212,#4228,#3380,.T.); +#8430=ADVANCED_FACE('',(#8429),#8406,.T.); +#8437=EDGE_CURVE('',#4544,#4212,#2928,.T.); +#8439=EDGE_CURVE('',#4544,#4542,#2923,.T.); +#8444=ADVANCED_FACE('',(#8443),#8435,.T.); +#8502=EDGE_CURVE('',#4544,#4545,#2948,.T.); +#8505=EDGE_CURVE('',#4212,#4205,#2935,.T.); +#8507=EDGE_CURVE('',#4205,#4545,#2940,.T.); +#8511=ADVANCED_FACE('',(#8510),#8501,.T.); +#8519=EDGE_CURVE('',#4554,#4545,#2964,.T.); +#8521=EDGE_CURVE('',#4554,#4556,#2952,.T.); +#8527=ADVANCED_FACE('',(#8526),#8516,.F.); +#8535=EDGE_CURVE('',#4202,#4205,#2969,.T.); +#8537=EDGE_CURVE('',#4554,#4202,#2990,.T.); +#8541=ADVANCED_FACE('',(#8540),#8532,.T.); +#8547=EDGE_CURVE('',#4202,#4203,#2978,.T.); +#8550=EDGE_CURVE('',#4207,#4205,#3388,.T.); +#8552=EDGE_CURVE('',#4207,#4209,#2974,.T.); +#8554=EDGE_CURVE('',#4203,#4209,#3009,.T.); +#8558=ADVANCED_FACE('',(#8557),#8546,.T.); +#8565=EDGE_CURVE('',#4593,#4203,#3005,.T.); +#8567=EDGE_CURVE('',#4593,#4554,#2982,.T.); +#8572=ADVANCED_FACE('',(#8571),#8563,.T.); +#8578=EDGE_CURVE('',#4203,#4596,#2995,.T.); +#8580=EDGE_CURVE('',#4596,#4585,#3000,.T.); +#8582=EDGE_CURVE('',#4593,#4585,#3487,.T.); +#8587=ADVANCED_FACE('',(#8586),#8577,.T.); +#8595=EDGE_CURVE('',#4607,#4209,#3023,.T.); +#8600=ADVANCED_FACE('',(#8599),#8592,.T.); +#8618=EDGE_CURVE('',#4510,#4607,#3018,.T.); +#8622=EDGE_CURVE('',#4207,#4510,#3028,.T.); +#8626=ADVANCED_FACE('',(#8625),#8617,.T.); +#8633=EDGE_CURVE('',#4510,#4107,#3032,.T.); +#8639=ADVANCED_FACE('',(#8638),#8631,.T.); +#8645=EDGE_CURVE('',#4506,#4508,#3058,.T.); +#8647=EDGE_CURVE('',#4109,#4506,#3090,.T.); +#8651=EDGE_CURVE('',#4512,#4510,#3384,.T.); +#8653=EDGE_CURVE('',#4512,#4514,#3045,.T.); +#8655=EDGE_CURVE('',#4514,#4508,#3050,.T.); +#8659=ADVANCED_FACE('',(#8658),#8644,.T.); +#8666=EDGE_CURVE('',#4506,#4464,#3077,.T.); +#8669=EDGE_CURVE('',#4508,#4466,#3067,.T.); +#8673=ADVANCED_FACE('',(#8672),#8664,.T.); +#8679=EDGE_CURVE('',#4504,#4506,#3072,.T.); +#8683=EDGE_CURVE('',#4462,#4504,#3082,.T.); +#8687=ADVANCED_FACE('',(#8686),#8678,.T.); +#8699=ADVANCED_FACE('',(#8698),#8692,.T.); +#8711=ADVANCED_FACE('',(#8710),#8704,.T.); +#8718=EDGE_CURVE('',#4227,#4516,#3113,.T.); +#8720=EDGE_CURVE('',#4516,#4467,#3118,.T.); +#8726=EDGE_CURVE('',#4512,#4228,#3127,.T.); +#8730=ADVANCED_FACE('',(#8729),#8716,.T.); +#8739=EDGE_CURVE('',#4468,#4226,#3146,.T.); +#8744=ADVANCED_FACE('',(#8743),#8735,.F.); +#8752=EDGE_CURVE('',#4224,#4518,#3155,.T.); +#8754=EDGE_CURVE('',#4518,#4470,#3160,.T.); +#8759=ADVANCED_FACE('',(#8758),#8749,.F.); +#8772=EDGE_CURVE('',#4223,#4520,#3198,.T.); +#8776=ADVANCED_FACE('',(#8775),#8764,.F.); +#8782=EDGE_CURVE('',#4221,#4629,#3206,.T.); +#8784=EDGE_CURVE('',#4524,#4629,#3369,.T.); +#8791=ADVANCED_FACE('',(#8790),#8781,.F.); +#8799=EDGE_CURVE('',#4541,#4219,#3237,.T.); +#8801=EDGE_CURVE('',#4629,#4541,#3359,.T.); +#8805=ADVANCED_FACE('',(#8804),#8796,.T.); +#8812=EDGE_CURVE('',#4217,#4170,#3223,.T.); +#8814=EDGE_CURVE('',#4170,#4541,#3232,.T.); +#8819=ADVANCED_FACE('',(#8818),#8810,.T.); +#8825=EDGE_CURVE('',#4169,#4170,#3241,.T.); +#8832=ADVANCED_FACE('',(#8831),#8824,.T.); +#8842=EDGE_CURVE('',#4172,#4174,#3249,.T.); +#8844=EDGE_CURVE('',#4175,#4174,#3298,.T.); +#8846=EDGE_CURVE('',#4175,#4177,#3254,.T.); +#8848=EDGE_CURVE('',#4177,#4179,#3259,.T.); +#8850=EDGE_CURVE('',#4170,#4179,#3351,.T.); +#8854=ADVANCED_FACE('',(#8853),#8837,.F.); +#8862=EDGE_CURVE('',#4174,#4531,#3312,.T.); +#8867=ADVANCED_FACE('',(#8866),#8859,.F.); +#8874=EDGE_CURVE('',#4540,#4530,#3332,.T.); +#8876=EDGE_CURVE('',#4175,#4540,#3376,.T.); +#8883=ADVANCED_FACE('',(#8882),#8872,.F.); +#8891=EDGE_CURVE('',#4528,#4179,#3342,.T.); +#8894=EDGE_CURVE('',#4177,#4540,#3347,.T.); +#8898=ADVANCED_FACE('',(#8897),#8888,.T.); +#8907=EDGE_CURVE('',#4528,#4541,#3355,.T.); +#8911=ADVANCED_FACE('',(#8910),#8903,.T.); +#8924=ADVANCED_FACE('',(#8923),#8916,.F.); +#8935=ADVANCED_FACE('',(#8934),#8929,.T.); +#8949=ADVANCED_FACE('',(#8948),#8940,.T.); +#8956=EDGE_CURVE('',#4584,#4597,#3411,.T.); +#8958=EDGE_CURVE('',#4584,#4585,#3396,.T.); +#8963=ADVANCED_FACE('',(#8962),#8954,.T.); +#8970=EDGE_CURVE('',#4605,#4621,#3401,.T.); +#8972=EDGE_CURVE('',#4621,#4584,#3406,.T.); +#8977=ADVANCED_FACE('',(#8976),#8968,.T.); +#8984=EDGE_CURVE('',#4611,#4603,#3434,.T.); +#8986=EDGE_CURVE('',#4611,#4621,#3419,.T.); +#8991=ADVANCED_FACE('',(#8990),#8982,.T.); +#8999=EDGE_CURVE('',#4570,#4611,#3429,.T.); +#9004=ADVANCED_FACE('',(#9003),#8996,.T.); +#9012=EDGE_CURVE('',#4613,#4568,#3447,.T.); +#9014=EDGE_CURVE('',#4613,#4611,#3442,.T.); +#9018=ADVANCED_FACE('',(#9017),#9009,.F.); +#9024=EDGE_CURVE('',#4613,#4615,#3466,.T.); +#9028=EDGE_CURVE('',#4566,#4617,#3452,.T.); +#9030=EDGE_CURVE('',#4619,#4617,#3499,.T.); +#9032=EDGE_CURVE('',#4619,#4589,#3457,.T.); +#9034=EDGE_CURVE('',#4587,#4589,#3478,.T.); +#9036=EDGE_CURVE('',#4587,#4615,#3462,.T.); +#9040=ADVANCED_FACE('',(#9039),#9023,.T.); +#9049=EDGE_CURVE('',#4621,#4615,#3470,.T.); +#9053=ADVANCED_FACE('',(#9052),#9045,.T.); +#9062=EDGE_CURVE('',#4587,#4584,#3474,.T.); +#9066=ADVANCED_FACE('',(#9065),#9058,.F.); +#9075=EDGE_CURVE('',#4591,#4589,#3495,.T.); +#9077=EDGE_CURVE('',#4581,#4591,#3640,.T.); +#9079=EDGE_CURVE('',#4576,#4581,#3671,.T.); +#9087=ADVANCED_FACE('',(#9086),#9071,.F.); +#9094=EDGE_CURVE('',#4619,#4625,#3491,.T.); +#9096=EDGE_CURVE('',#4591,#4625,#3651,.T.); +#9101=ADVANCED_FACE('',(#9100),#9092,.F.); +#9108=EDGE_CURVE('',#4622,#4617,#3507,.T.); +#9110=EDGE_CURVE('',#4623,#4622,#3514,.T.); +#9112=EDGE_CURVE('',#4625,#4623,#3658,.T.); +#9117=ADVANCED_FACE('',(#9116),#9106,.T.); +#9125=EDGE_CURVE('',#4622,#4564,#3525,.T.); +#9130=ADVANCED_FACE('',(#9129),#9122,.F.); +#9216=EDGE_CURVE('',#4563,#4624,#3543,.T.); +#9219=EDGE_CURVE('',#4136,#4135,#3574,.T.); +#9221=EDGE_CURVE('',#4623,#4135,#3664,.T.); +#9225=ADVANCED_FACE('',(#9224),#9212,.T.); +#9269=ADVANCED_FACE('',(#9268),#9262,.F.); +#9276=EDGE_CURVE('',#4133,#4135,#3602,.T.); +#9282=EDGE_CURVE('',#4132,#4130,#3628,.T.); +#9284=EDGE_CURVE('',#4130,#4132,#3633,.T.); +#9288=ADVANCED_FACE('',(#9281,#9287),#9274,.F.); +#9377=EDGE_CURVE('',#4581,#4139,#3681,.T.); +#9381=ADVANCED_FACE('',(#9380),#9370,.F.); +#9421=EDGE_CURVE('',#4139,#4577,#3685,.T.); +#9426=ADVANCED_FACE('',(#9425),#9418,.T.); +#9471=ADVANCED_FACE('',(#9470),#9463,.T.); +#9478=EDGE_CURVE('',#4127,#4130,#3700,.T.); +#9481=EDGE_CURVE('',#4128,#4132,#3704,.T.); +#9485=ADVANCED_FACE('',(#9484),#9476,.F.); +#9497=ADVANCED_FACE('',(#9496),#9490,.F.); +#9509=ADVANCED_FACE('',(#9508),#9502,.F.); +#9521=ADVANCED_FACE('',(#9520),#9514,.T.); +#9528=EDGE_CURVE('',#3949,#3968,#3720,.T.); +#9530=EDGE_CURVE('',#3968,#3970,#3725,.T.); +#9532=EDGE_CURVE('',#3972,#3970,#3888,.T.); +#9537=ADVANCED_FACE('',(#9536),#9526,.F.); +#9544=EDGE_CURVE('',#4013,#3956,#3738,.T.); +#9546=EDGE_CURVE('',#4012,#4013,#3782,.T.); +#9548=EDGE_CURVE('',#3968,#4012,#3895,.T.); +#9553=ADVANCED_FACE('',(#9552),#9542,.F.); +#9559=EDGE_CURVE('',#4033,#4003,#3729,.T.); +#9561=EDGE_CURVE('',#4003,#4013,#3734,.T.); +#9565=EDGE_CURVE('',#4008,#3955,#3832,.T.); +#9567=EDGE_CURVE('',#4008,#4006,#3743,.T.); +#9569=EDGE_CURVE('',#4033,#4006,#3754,.T.); +#9573=ADVANCED_FACE('',(#9572),#9558,.T.); +#9580=EDGE_CURVE('',#4035,#4033,#3765,.T.); +#9582=EDGE_CURVE('',#4002,#4035,#3789,.T.); +#9584=EDGE_CURVE('',#4002,#4003,#3750,.T.); +#9588=ADVANCED_FACE('',(#9587),#9578,.T.); +#9595=EDGE_CURVE('',#4006,#4005,#3761,.T.); +#9597=EDGE_CURVE('',#4035,#4005,#3794,.T.); +#9602=ADVANCED_FACE('',(#9601),#9593,.T.); +#9609=EDGE_CURVE('',#4002,#4005,#3770,.T.); +#9613=EDGE_CURVE('',#4009,#4008,#3828,.T.); +#9615=EDGE_CURVE('',#4010,#4009,#3862,.T.); +#9617=EDGE_CURVE('',#4010,#4012,#3775,.T.); +#9623=ADVANCED_FACE('',(#9622),#9607,.T.); +#9634=ADVANCED_FACE('',(#9633),#9628,.F.); +#9642=EDGE_CURVE('',#3952,#3908,#3815,.T.); +#9646=EDGE_CURVE('',#4009,#3905,#3867,.T.); +#9653=ADVANCED_FACE('',(#9652),#9639,.T.); +#9664=ADVANCED_FACE('',(#9663),#9658,.T.); +#9672=EDGE_CURVE('',#4040,#4115,#3884,.T.); +#9674=EDGE_CURVE('',#4040,#4010,#3850,.T.); +#9680=ADVANCED_FACE('',(#9679),#9669,.T.); +#9686=EDGE_CURVE('',#3970,#4040,#3880,.T.); +#9693=ADVANCED_FACE('',(#9692),#9685,.T.); +#9706=ADVANCED_FACE('',(#9705),#9698,.T.); +#9710=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); +#9711=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)); +#9714=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()); +#9716=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT(( +#9715))GLOBAL_UNIT_ASSIGNED_CONTEXT((#9710,#9713,#9714))REPRESENTATION_CONTEXT( +'ID1','3')); +#9717=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#9708),#9716); +#9724=PRODUCT_DEFINITION('part definition','',#9723,#9720); +#9725=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR FSA30SCY_TC-01-0702.',#9724); +#9726=SHAPE_ASPECT('','solid data associated with FSA30SCY_TC-01-0702',#9725, +.F.); +#9727=PROPERTY_DEFINITION('', +'shape for solid data with which properties are associated',#9726); +#9728=SHAPE_REPRESENTATION('',(#9708),#9716); +#9729=SHAPE_DEFINITION_REPRESENTATION(#9727,#9728); +#9730=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); +#9734=PROPERTY_DEFINITION('geometric validation property', +'area of FSA30SCY_TC-01-0702',#9726); +#9735=REPRESENTATION('surface area',(#9733),#9716); +#9736=PROPERTY_DEFINITION_REPRESENTATION(#9734,#9735); +#9737=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); +#9741=PROPERTY_DEFINITION('geometric validation property', +'volume of FSA30SCY_TC-01-0702',#9726); +#9742=REPRESENTATION('volume',(#9740),#9716); +#9743=PROPERTY_DEFINITION_REPRESENTATION(#9741,#9742); +#9745=PROPERTY_DEFINITION('geometric validation property', +'centroid of FSA30SCY_TC-01-0702',#9726); +#9746=REPRESENTATION('centroid',(#9744),#9716); +#9747=PROPERTY_DEFINITION_REPRESENTATION(#9745,#9746); +#9748=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); +#9752=PROPERTY_DEFINITION('geometric validation property', +'area of FSA30SCY_TC-01-0702',#9725); +#9753=REPRESENTATION('surface area',(#9751),#9716); +#9754=PROPERTY_DEFINITION_REPRESENTATION(#9752,#9753); +#9755=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); +#9759=PROPERTY_DEFINITION('geometric validation property', +'volume of FSA30SCY_TC-01-0702',#9725); +#9760=REPRESENTATION('volume',(#9758),#9716); +#9761=PROPERTY_DEFINITION_REPRESENTATION(#9759,#9760); +#9763=PROPERTY_DEFINITION('geometric validation property', +'centroid of FSA30SCY_TC-01-0702',#9725); +#9764=REPRESENTATION('centroid',(#9762),#9716); +#9765=PROPERTY_DEFINITION_REPRESENTATION(#9763,#9764); +#9766=SHAPE_DEFINITION_REPRESENTATION(#9725,#9717); +#9768=PROPERTY_DEFINITION('PTC_COMMON_NAME','user defined attribute',#9724); +#9772=REPRESENTATION('',(#9771),#9716); +#9773=PROPERTY_DEFINITION_REPRESENTATION(#9768,#9772); +ENDSEC; +END-ISO-10303-21; diff --git a/src/utils/__init__.py b/src/utils/__init__.py new file mode 100644 index 0000000..2c4ee6f --- /dev/null +++ b/src/utils/__init__.py @@ -0,0 +1 @@ +# Utils 模块 diff --git a/src/utils/file_handler.py b/src/utils/file_handler.py new file mode 100644 index 0000000..1752fab --- /dev/null +++ b/src/utils/file_handler.py @@ -0,0 +1,28 @@ +# utils/file_handler.py +import aiofiles +from pathlib import Path +from fastapi import UploadFile + + +class FileHandler: + def __init__(self, upload_dir: str = "uploads"): + self.upload_dir = Path(upload_dir) + self.upload_dir.mkdir(exist_ok=True) + + async def save_uploaded_file(self, file: UploadFile) -> Path: + """保存上传的文件""" + file_path = self.upload_dir / file.filename + + async with aiofiles.open(file_path, 'wb') as f: + content = await file.read() + await f.write(content) + + return file_path + + def cleanup_file(self, file_path: Path): + """清理文件""" + try: + if file_path.exists(): + file_path.unlink() + except Exception as e: + print(f"文件清理失败: {e}") \ No newline at end of file diff --git a/src/utils/html_generator.py b/src/utils/html_generator.py new file mode 100644 index 0000000..c46d21a --- /dev/null +++ b/src/utils/html_generator.py @@ -0,0 +1,279 @@ +# utils/html_generator.py +from pathlib import Path +from typing import Dict, Any, Optional +import json +from datetime import datetime +from utils.logger import get_logger + +logger = get_logger(__name__) + +class HTMLGenerator: + """HTML文件生成器""" + + def __init__(self, output_dir: str = "./html_output"): + self.output_dir = Path(output_dir) + self.output_dir.mkdir(exist_ok=True) + + def generate_3d_viewer_html( + self, + geometry_data: Dict[str, Any], + stp_filename: str, + cavity_data: Optional[Dict[str, Any]] = None, + key_info: Optional[Dict[str, Any]] = None + ) -> str: + """生成3D可视化HTML页面""" + + # 提取几何数据 + bounding_box = geometry_data.get("bounding_box", {}) + volume = geometry_data.get("volume", 0) or 0 + surface_area = geometry_data.get("surface_area", 0) or 0 + topology = geometry_data.get("topology", {}) + center_of_mass = geometry_data.get("center_of_mass", [0, 0, 0]) + cavity_html = "" + if cavity_data and key_info: + cavity_html = f""" +
+

🔧 模具型腔信息

+
+ 收缩率: + {cavity_data["metadata"]["shrinkage_rate"]} +
+
+ 拔模角: + {cavity_data["metadata"]["draft_angle"]}° +
+
+ 预估模具尺寸: + + {key_info["mold_parameters"]["mold_size"]["length"]:.0f} × + {key_info["mold_parameters"]["mold_size"]["width"]:.0f} × + {key_info["mold_parameters"]["mold_size"]["height"]:.0f} mm + +
+
+ 预估锁模力: + + {key_info["manufacturing_requirements"]["clamping_force"]} + +
+
+ 产品重量: + + {key_info["geometric_characteristics"]["product_weight"]} + +
+
+ """ + html_content = f""" + + + + + + 3D模具几何可视化 - {stp_filename} + + + + + +
+ + {cavity_html} +
+

模具几何信息

+
+ 文件名: + {stp_filename} +
+
+ 体积: + {volume:.2f} mm³ +
+
+ 表面积: + {surface_area:.2f} mm² +
+
+ 边界框: + {bounding_box.get('dimensions', [0, 0, 0])[0]:.1f} × {bounding_box.get('dimensions', [0, 0, 0])[1]:.1f} × {bounding_box.get('dimensions', [0, 0, 0])[2]:.1f} mm +
+
+ 面数: + {topology.get('faces', 0)} +
+
+ 边数: + {topology.get('edges', 0)} +
+
+ 顶点数: + {topology.get('vertices', 0)} +
+
+ +
+ + +
+
+ + + + +""" + + return html_content + + def save_html_file(self, html_content: str, filename: str) -> str: + """保存HTML文件到磁盘""" + try: + file_path = self.output_dir / filename + + with open(file_path, 'w', encoding='utf-8') as f: + f.write(html_content) + + logger.info(f"HTML文件保存成功: {file_path}") + return str(file_path) + + except Exception as e: + logger.error(f"保存HTML文件失败: {e}") + raise + + def generate_and_save_visualization( + self, + geometry_data: Dict[str, Any], + stp_filename: str + ) -> str: + """生成并保存可视化HTML文件""" + try: + # 生成HTML内容 + html_content = self.generate_3d_viewer_html(geometry_data, stp_filename) + + # 创建文件名 + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + safe_filename = stp_filename.replace('.', '_').replace(' ', '_') + html_filename = f"{safe_filename}_{timestamp}.html" + + # 保存文件 + file_path = self.save_html_file(html_content, html_filename) + + return file_path + + except Exception as e: + logger.error(f"生成可视化文件失败: {e}") + raise + diff --git a/src/utils/logger.py b/src/utils/logger.py new file mode 100644 index 0000000..c3babb4 --- /dev/null +++ b/src/utils/logger.py @@ -0,0 +1,17 @@ +# utils/logger.py +import logging +import sys + +def setup_logging(): + """设置日志配置""" + logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + handlers=[ + logging.StreamHandler(sys.stdout) + ] + ) + +def get_logger(name: str): + """获取日志器""" + return logging.getLogger(name) \ No newline at end of file diff --git a/start.sh b/start.sh new file mode 100644 index 0000000..53864a6 --- /dev/null +++ b/start.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +# MoldInsight 启动脚本 - 修复版 +# 适用于Linux conda环境 + +echo "🚀 启动 MoldInsight 模具几何分析系统..." + +# 检查Python版本 +python_version=$(python3 -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') +echo "📋 Python版本: $python_version" + +# 初始化conda环境 +echo "🔧 初始化conda环境..." +source /opt/anaconda3/etc/profile.d/conda.sh + +# 激活conda环境 +echo "🔧 激活conda环境..." +conda activate moldinsight + +# 验证PythonOCC是否可用 +echo "🔍 验证PythonOCC..." +python3 -c "import OCC; print('✅ PythonOCC可用')" || { + echo "❌ PythonOCC不可用,请先安装PythonOCC" + exit 1 +} + +# 检查是否已经安装依赖 +echo "📦 检查依赖包..." +pip install -r requirements.txt + +# 创建必要目录 +echo "📁 创建必要目录..." +mkdir -p uploads html_output logs + +# 检查环境配置文件 +if [ ! -f ".env" ]; then + echo "❌ 错误: 未找到.env配置文件" + echo "📋 请创建.env文件并配置数据库连接信息:" + echo " 1. 创建.env文件: touch .env" + echo " 2. 编辑配置文件: nano .env" + echo " 3. 添加数据库配置:" + echo " DATABASE_URL=postgresql+asyncpg://username:password@localhost:5432/database_name" + echo "" + echo "💡 提示: 请根据实际的PostgreSQL连接信息修改上述配置" + exit 1 +fi + +echo "🔧 检查数据库连接..." + +# 启动服务 +echo "🚀 启动 MoldInsight 服务..." +echo "🌐 服务将在 http://localhost:8000 启动" +echo "📊 功能特性:" +echo " - STP文件解析和几何分析" +echo " - JSON数据导出" +echo " - PostgreSQL数据库存储" +echo " - 3D可视化HTML生成" +echo " - Web界面文件上传" +echo " - 任务状态跟踪" +echo "" +echo "按 Ctrl+C 停止服务" +echo "" + +# 启动应用 +python3 src/main.py \ No newline at end of file diff --git a/start_fixed.sh b/start_fixed.sh new file mode 100644 index 0000000..53864a6 --- /dev/null +++ b/start_fixed.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +# MoldInsight 启动脚本 - 修复版 +# 适用于Linux conda环境 + +echo "🚀 启动 MoldInsight 模具几何分析系统..." + +# 检查Python版本 +python_version=$(python3 -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') +echo "📋 Python版本: $python_version" + +# 初始化conda环境 +echo "🔧 初始化conda环境..." +source /opt/anaconda3/etc/profile.d/conda.sh + +# 激活conda环境 +echo "🔧 激活conda环境..." +conda activate moldinsight + +# 验证PythonOCC是否可用 +echo "🔍 验证PythonOCC..." +python3 -c "import OCC; print('✅ PythonOCC可用')" || { + echo "❌ PythonOCC不可用,请先安装PythonOCC" + exit 1 +} + +# 检查是否已经安装依赖 +echo "📦 检查依赖包..." +pip install -r requirements.txt + +# 创建必要目录 +echo "📁 创建必要目录..." +mkdir -p uploads html_output logs + +# 检查环境配置文件 +if [ ! -f ".env" ]; then + echo "❌ 错误: 未找到.env配置文件" + echo "📋 请创建.env文件并配置数据库连接信息:" + echo " 1. 创建.env文件: touch .env" + echo " 2. 编辑配置文件: nano .env" + echo " 3. 添加数据库配置:" + echo " DATABASE_URL=postgresql+asyncpg://username:password@localhost:5432/database_name" + echo "" + echo "💡 提示: 请根据实际的PostgreSQL连接信息修改上述配置" + exit 1 +fi + +echo "🔧 检查数据库连接..." + +# 启动服务 +echo "🚀 启动 MoldInsight 服务..." +echo "🌐 服务将在 http://localhost:8000 启动" +echo "📊 功能特性:" +echo " - STP文件解析和几何分析" +echo " - JSON数据导出" +echo " - PostgreSQL数据库存储" +echo " - 3D可视化HTML生成" +echo " - Web界面文件上传" +echo " - 任务状态跟踪" +echo "" +echo "按 Ctrl+C 停止服务" +echo "" + +# 启动应用 +python3 src/main.py \ No newline at end of file diff --git a/static/script.js b/static/script.js new file mode 100644 index 0000000..2cc6b4b --- /dev/null +++ b/static/script.js @@ -0,0 +1,600 @@ +// static/script.js +let selectedFile = null; +const uploadSection = document.getElementById('uploadSection'); +const uploadArea = document.getElementById('uploadArea'); +const fileInput = document.getElementById('fileInput'); +const uploadBtn = document.getElementById('uploadBtn'); +const loading = document.getElementById('loading'); +const resultsSection = document.getElementById('resultsSection'); +const errorMessage = document.getElementById('errorMessage'); +const taskInfo = document.getElementById('taskInfo'); +const geometryData = document.getElementById('geometryData'); +const boundingBoxData = document.getElementById('boundingBoxData'); +const topologyData = document.getElementById('topologyData'); +const featuresData = document.getElementById('featuresData'); +const recommendationsData = document.getElementById('recommendationsData'); +const metricsData = document.getElementById('metricsData'); +const analysisInfo = document.getElementById('analysisInfo'); + +// 页面加载时初始化 +document.addEventListener('DOMContentLoaded', function() { + console.log('页面加载完成'); + showUploadSection(); +}); + +// 显示上传区域 +function showUploadSection() { + uploadSection.style.display = 'block'; + resultsSection.style.display = 'none'; + resetUploadArea(); +} + +// 显示结果区域 +function showResultsSection() { + uploadSection.style.display = 'none'; + resultsSection.style.display = 'block'; +} + +// 重置上传区域 +function resetUploadArea() { + selectedFile = null; + uploadArea.innerHTML = ` +
📁
+

拖放文件到此处或点击选择

+

最大文件大小: 100MB

+ + + `; + uploadBtn.disabled = true; + hideError(); + loading.style.display = 'none'; + + // 重新绑定事件 + const newFileInput = document.getElementById('fileInput'); + newFileInput.addEventListener('change', (e) => { + if (e.target.files.length > 0) { + handleFileSelect(e.target.files[0]); + } + }); +} + +// 拖放功能 +uploadArea.addEventListener('dragover', (e) => { + e.preventDefault(); + uploadArea.classList.add('dragover'); +}); + +uploadArea.addEventListener('dragleave', () => { + uploadArea.classList.remove('dragover'); +}); + +uploadArea.addEventListener('drop', (e) => { + e.preventDefault(); + uploadArea.classList.remove('dragover'); + const files = e.dataTransfer.files; + if (files.length > 0) { + handleFileSelect(files[0]); + } +}); + +// 文件选择 +fileInput.addEventListener('change', (e) => { + if (e.target.files.length > 0) { + handleFileSelect(e.target.files[0]); + } +}); + +function handleFileSelect(file) { + if (!file.name.toLowerCase().endsWith('.stp') && !file.name.toLowerCase().endsWith('.step')) { + showError('请选择STP或STEP格式的文件'); + return; + } + + if (file.size > 100 * 1024 * 1024) { + showError('文件大小不能超过100MB'); + return; + } + + selectedFile = file; + uploadArea.innerHTML = ` +
✅
+

已选择文件

+

${file.name}

+

大小: ${(file.size / 1024 / 1024).toFixed(2)} MB

+ `; + uploadBtn.disabled = false; + hideError(); +} + +async function uploadFile() { + if (!selectedFile) return; + + loading.style.display = 'block'; + uploadBtn.disabled = true; + hideError(); + + const formData = new FormData(); + formData.append('file', selectedFile); + + try { + const response = await fetch('/upload', { + method: 'POST', + body: formData + }); + + if (!response.ok) { + throw new Error(`上传失败: ${response.status} ${response.statusText}`); + } + + const result = await response.json(); + console.log('上传结果:', result); + + // 开始轮询任务状态 + pollTaskStatus(result.task_id); + + } catch (error) { + showError('上传失败: ' + error.message); + loading.style.display = 'none'; + uploadBtn.disabled = false; + } +} + +async function pollTaskStatus(taskId) { + try { + const response = await fetch(`/status/${taskId}`); + const task = await response.json(); + + console.log('任务状态:', task.status); + console.log('完整任务数据:', task); + + updateTaskInfo(task); + + if (task.status === 'completed') { + loading.style.display = 'none'; + showResultsSection(); + displayAllResults(task); + } else if (task.status === 'failed') { + loading.style.display = 'none'; + showError('分析失败: ' + (task.error || '未知错误')); + uploadBtn.disabled = false; + } else { + setTimeout(() => pollTaskStatus(taskId), 1000); + } + + } catch (error) { + console.error('轮询错误:', error); + loading.style.display = 'none'; + showError('查询状态失败: ' + error.message); + uploadBtn.disabled = false; + } +} + +function updateTaskInfo(task) { + taskInfo.innerHTML = ` +
+
📋 任务ID
+
${task.task_id || 'N/A'}
+
+
+
🔄 状态
+
+ ${getStatusText(task.status)} +
+
+
+
📁 文件名
+
${task.filename || 'N/A'}
+
+
+
📏 文件大小
+
${task.file_size ? formatFileSize(task.file_size) : 'N/A'}
+
+ `; +} + +function displayAllResults(task) { + console.log('显示所有结果:', task); + + displayGeometryData(task); + displayBoundingBoxData(task); + displayTopologyData(task); + + // 添加模具型腔数据显示 + if (task.cavity_data) { + displayCavityData(task.cavity_data); + } + if (task.key_info) { + displayKeyInfo(task.key_info); + } + + displayFeaturesData(task); + displayRecommendationsData(task); + displayMetricsData(task); + displayAnalysisInfo(task); +} + +function displayGeometryData(task) { + if (task.geometry_data) { + const geo = task.geometry_data; + geometryData.innerHTML = ` +
+
📦 体积
+
+ ${geo.volume ? formatNumber(geo.volume) : 'N/A'} + mm³ +
+
+
+
📐 表面积
+
+ ${geo.surface_area ? formatNumber(geo.surface_area) : 'N/A'} + mm² +
+
+
+
📏 体积表面积比
+
+ ${geo.volume && geo.surface_area ? (geo.volume / geo.surface_area).toFixed(4) : 'N/A'} +
+
+ `; + } else { + geometryData.innerHTML = '
无几何数据
'; + } +} + +function displayBoundingBoxData(task) { + if (task.geometry_data && task.geometry_data.bounding_box) { + const bbox = task.geometry_data.bounding_box; + boundingBoxData.innerHTML = ` +
+
📍 最小坐标
+
+ X: ${bbox.min[0].toFixed(2)}
+ Y: ${bbox.min[1].toFixed(2)}
+ Z: ${bbox.min[2].toFixed(2)} +
+
+
+
📍 最大坐标
+
+ X: ${bbox.max[0].toFixed(2)}
+ Y: ${bbox.max[1].toFixed(2)}
+ Z: ${bbox.max[2].toFixed(2)} +
+
+
+
📏 尺寸
+
+ ${bbox.dimensions[0].toFixed(2)} × ${bbox.dimensions[1].toFixed(2)} × ${bbox.dimensions[2].toFixed(2)} + mm +
+
+ `; + } else { + boundingBoxData.innerHTML = '
无边界框数据
'; + } +} + +function displayTopologyData(task) { + if (task.geometry_data && task.geometry_data.topology) { + const topo = task.geometry_data.topology; + topologyData.innerHTML = ` +
+
🔺 面数
+
${topo.faces || 0}
+
+
+
📏 边数
+
${topo.edges || 0}
+
+
+
📍 顶点数
+
${topo.vertices || 0}
+
+
+
📊 拓扑复杂度
+
${calculateTopologyComplexity(topo)}
+
+ `; + } else { + topologyData.innerHTML = '
无拓扑数据
'; + } +} + +function displayFeaturesData(task) { + if (task.analysis_result && task.analysis_result.detected_features) { + const features = task.analysis_result.detected_features; + + if (features.length > 0) { + featuresData.innerHTML = features.map(feature => ` +
+
+
${getFeatureTypeText(feature.feature_type)}
+
置信度: ${(feature.confidence * 100).toFixed(0)}%
+
+
+
📍 位置
+
${feature.location.map(v => v.toFixed(2)).join(', ')}
+
+
+
📏 尺寸
+
${feature.dimensions.map(v => v.toFixed(2)).join(' × ')} mm
+
+ ${feature.recommendations && feature.recommendations.length > 0 ? ` +
+
💡 建议
+
    + ${feature.recommendations.map(rec => `
  • ${rec}
  • `).join('')} +
+
+ ` : ''} +
+ `).join(''); + } else { + featuresData.innerHTML = '
未检测到明显特征
'; + } + } else { + featuresData.innerHTML = '
无特征数据
'; + } +} + +function displayRecommendationsData(task) { + if (task.analysis_result && task.analysis_result.design_recommendations) { + const recommendations = task.analysis_result.design_recommendations; + + if (recommendations.length > 0) { + recommendationsData.innerHTML = recommendations.map(rec => ` +
+
+
${getRecommendationTypeText(rec.type)}
+
${getPriorityText(rec.priority)}
+
+
+
📝 描述
+
${rec.description}
+
+
+
📋 原因
+
${rec.reason}
+
+ ${Object.keys(rec.parameters).length > 0 ? ` +
+
⚙️ 参数
+
${formatParameters(rec.parameters)}
+
+ ` : ''} +
+ `).join(''); + } else { + recommendationsData.innerHTML = '
无设计建议
'; + } + } else { + recommendationsData.innerHTML = '
无建议数据
'; + } +} + +function displayMetricsData(task) { + if (task.analysis_result && task.analysis_result.quality_metrics) { + const metrics = task.analysis_result.quality_metrics; + metricsData.innerHTML = ` +
+
体积利用率
+
+ ${(metrics.volume_utilization * 100).toFixed(1)}% +
+
${getVolumeUtilizationText(metrics.volume_utilization)}
+
+
+
拓扑复杂度
+
+ ${metrics.topology_complexity.toFixed(2)} +
+
${getComplexityText(metrics.topology_complexity)}
+
+
+
壁厚均匀性
+
+ ${(metrics.wall_uniformity * 100).toFixed(1)}% +
+
${getUniformityText(metrics.wall_uniformity)}
+
+ `; + } else { + metricsData.innerHTML = '
无质量指标数据
'; + } +} + +function displayAnalysisInfo(task) { + let infoHTML = ''; + + if (task.geometry_data) { + const geo = task.geometry_data; + infoHTML += ` +
+
🔧 分析方法
+
${geo.analysis_method || '未知'}
+
+ `; + } + + if (task.analysis_result) { + const analysis = task.analysis_result; + infoHTML += ` +
+
✅ 分析状态
+
${task.status === 'completed' ? '分析完成' : '分析中'}
+
+
+
📋 分析摘要
+
${analysis.analysis_summary || '无摘要'}
+
+ `; + } + + infoHTML += ` +
+
📅 处理时间
+
${task.completed_at ? new Date(task.completed_at).toLocaleString() : new Date().toLocaleString()}
+
+ `; + + analysisInfo.innerHTML = infoHTML; +} + +// 工具函数 +function getStatusText(status) { + const statusMap = { + 'processing': '处理中', + 'completed': '已完成', + 'failed': '失败' + }; + return statusMap[status] || status; +} + +function formatFileSize(bytes) { + if (!bytes || bytes === 0) return '0 Bytes'; + const k = 1024; + const sizes = ['Bytes', 'KB', 'MB', 'GB']; + const i = Math.floor(Math.log(bytes) / Math.log(k)); + return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]; +} + +function formatNumber(num) { + if (!num) return 'N/A'; + if (num >= 1000000) { + return (num / 1000000).toFixed(2) + 'M'; + } else if (num >= 1000) { + return (num / 1000).toFixed(2) + 'K'; + } else { + return num.toFixed(2); + } +} + +function calculateTopologyComplexity(topo) { + const totalElements = (topo.faces || 0) + (topo.edges || 0) + (topo.vertices || 0); + if (totalElements < 100) return '简单'; + if (totalElements < 1000) return '中等'; + return '复杂'; +} + +function getFeatureTypeText(type) { + const typeMap = { + 'thin_wall': '薄壁区域', + 'thick_wall': '厚壁区域', + 'rib_structure': '加强筋结构', + 'boss_feature': 'BOSS柱', + 'draft_angle': '拔模角度', + 'cooling_system': '冷却系统' + }; + return typeMap[type] || type; +} + +function getRecommendationTypeText(type) { + const typeMap = { + 'wall_thickness': '壁厚优化', + 'draft_angle': '拔模角度', + 'rib_design': '加强筋设计', + 'boss_design': 'BOSS柱设计', + 'cooling_system': '冷却系统' + }; + return typeMap[type] || type; +} + +function getPriorityText(priority) { + const priorityMap = { + 'high': '高优先级', + 'medium': '中优先级', + 'low': '低优先级' + }; + return priorityMap[priority] || priority; +} + +function formatParameters(parameters) { + return Object.entries(parameters).map(([key, value]) => { + if (typeof value === 'number') { + return `${key}: ${value.toFixed(2)}`; + } + return `${key}: ${value}`; + }).join('; '); +} + +function getMetricClass(value, goodThreshold, excellentThreshold, reverse = false) { + if (reverse) { + if (value <= goodThreshold) return 'metric-good'; + if (value <= excellentThreshold) return 'metric-warning'; + return 'metric-poor'; + } else { + if (value >= excellentThreshold) return 'metric-good'; + if (value >= goodThreshold) return 'metric-warning'; + return 'metric-poor'; + } +} + +function getVolumeUtilizationText(value) { + if (value >= 0.6) return '优秀'; + if (value >= 0.3) return '良好'; + return '待优化'; +} + +function getComplexityText(value) { + if (value <= 0.3) return '简单'; + if (value <= 0.7) return '中等'; + return '复杂'; +} + +function getUniformityText(value) { + if (value >= 0.8) return '均匀'; + if (value >= 0.6) return '一般'; + return '不均匀'; +} + +function showError(message) { + errorMessage.textContent = message; + errorMessage.style.display = 'block'; +} + +function hideError() { + errorMessage.style.display = 'none'; +} + +// 添加显示函数 +function displayCavityData(cavityData) { + const cavityDiv = document.getElementById('cavityData'); + cavityDiv.innerHTML = ` +
${JSON.stringify(cavityData, null, 2)}
+ `; +} + +function displayKeyInfo(keyInfo) { + const keyInfoDiv = document.getElementById('keyInfoData'); + + if (!keyInfo) { + keyInfoDiv.innerHTML = '
无关键信息数据
'; + return; + } + + const moldParams = keyInfo.mold_parameters || {}; + const geoChars = keyInfo.geometric_characteristics || {}; + const manuReqs = keyInfo.manufacturing_requirements || {}; + + keyInfoDiv.innerHTML = ` +

模具参数

+

收缩率: ${moldParams.shrinkage_rate || 'N/A'}

+

拔模角: ${moldParams.draft_angle || 'N/A'}

+

分型线长度: ${moldParams.parting_line_length || 'N/A'} mm

+ +

几何特性

+

产品体积: ${geoChars.product_volume || 'N/A'}

+

产品重量: ${geoChars.product_weight || 'N/A'}

+

壁厚范围: ${geoChars.wall_thickness_range || 'N/A'}

+ +

制造要求

+

型腔材料: ${manuReqs.cavity_material || 'N/A'}

+

硬度: ${manuReqs.hardness || 'N/A'}

+

表面光洁度: ${manuReqs.surface_finish || 'N/A'}

+

预估周期: ${manuReqs.estimated_cycle_time || 'N/A'}

+ `; +} diff --git a/static/style.css b/static/style.css new file mode 100644 index 0000000..4a5a14d --- /dev/null +++ b/static/style.css @@ -0,0 +1,460 @@ +/* static/style.css */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + min-height: 100vh; + padding: 20px; +} + +.container { + max-width: 1200px; + margin: 0 auto; + background: white; + border-radius: 15px; + box-shadow: 0 20px 40px rgba(0,0,0,0.1); + overflow: hidden; +} + +.header { + background: linear-gradient(135deg, #2c3e50, #34495e); + color: white; + padding: 30px; + text-align: center; +} + +.header h1 { + font-size: 2.5em; + margin-bottom: 10px; +} + +.header p { + opacity: 0.9; + font-size: 1.1em; +} + +.upload-section { + padding: 40px; + text-align: center; +} + +.upload-area { + border: 3px dashed #3498db; + border-radius: 10px; + padding: 60px 40px; + margin: 20px 0; + background: #f8f9fa; + transition: all 0.3s ease; + cursor: pointer; +} + +.upload-area:hover { + border-color: #2980b9; + background: #e8f4fc; +} + +.upload-area.dragover { + border-color: #27ae60; + background: #d5f4e6; +} + +.upload-icon { + font-size: 4em; + color: #3498db; + margin-bottom: 20px; +} + +.file-input { + display: none; +} + +.upload-btn { + background: linear-gradient(135deg, #3498db, #2980b9); + color: white; + border: none; + padding: 15px 40px; + font-size: 1.1em; + border-radius: 50px; + cursor: pointer; + transition: all 0.3s ease; + margin: 10px; +} + +.upload-btn:hover { + transform: translateY(-2px); + box-shadow: 0 10px 20px rgba(52, 152, 219, 0.3); +} + +.upload-btn:disabled { + background: #bdc3c7; + cursor: not-allowed; + transform: none; + box-shadow: none; +} + +.results-section { + padding: 0 40px 40px; +} + +.result-card { + background: #f8f9fa; + border-radius: 10px; + padding: 25px; + margin: 15px 0; + border-left: 5px solid #3498db; + box-shadow: 0 4px 6px rgba(0,0,0,0.1); +} + +.result-card h3 { + color: #2c3e50; + margin-bottom: 20px; + display: flex; + align-items: center; + gap: 10px; + font-size: 1.3em; +} + +.task-info { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 15px; +} + +.geometry-data { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 15px; +} + +.bounding-box-data { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 15px; +} + +.topology-data { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 15px; +} + +.features-data { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 15px; +} + +.recommendations-data { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); + gap: 15px; +} + +.metrics-data { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 15px; +} + +.analysis-info { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 15px; +} + +.data-item { + background: white; + padding: 20px; + border-radius: 8px; + box-shadow: 0 2px 8px rgba(0,0,0,0.1); + transition: transform 0.2s ease; +} + +.data-item:hover { + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0,0,0,0.15); +} + +.data-label { + font-weight: bold; + color: #2c3e50; + margin-bottom: 8px; + font-size: 0.95em; + display: flex; + align-items: center; + gap: 8px; +} + +.data-value { + color: #34495e; + font-family: 'Courier New', monospace; + font-size: 1.1em; + font-weight: 600; +} + +.data-unit { + color: #7f8c8d; + font-size: 0.9em; + margin-left: 4px; +} + +.coordinate-item { + background: linear-gradient(135deg, #e8f4fc, #d1edff); + padding: 15px; + border-radius: 6px; +} + +.coordinate-label { + font-weight: bold; + color: #2980b9; + margin-bottom: 5px; +} + +.coordinate-value { + font-family: 'Courier New', monospace; + color: #2c3e50; +} + +.status-badge { + padding: 6px 16px; + border-radius: 20px; + font-size: 0.9em; + font-weight: bold; + display: inline-block; +} + +.status-processing { + background: #fff3cd; + color: #856404; + border: 1px solid #ffeaa7; +} + +.status-completed { + background: #d1edff; + color: #0c5460; + border: 1px solid #bee5eb; +} + +.status-failed { + background: #f8d7da; + color: #721c24; + border: 1px solid #f5c6cb; +} + +.loading { + display: none; + text-align: center; + padding: 30px; +} + +.spinner { + border: 4px solid #f3f3f3; + border-top: 4px solid #3498db; + border-radius: 50%; + width: 50px; + height: 50px; + animation: spin 1s linear infinite; + margin: 0 auto 20px; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +.error-message { + background: #f8d7da; + color: #721c24; + padding: 20px; + border-radius: 8px; + margin: 20px 0; + display: none; + border-left: 5px solid #e74c3c; +} + +.system-info { + background: #2c3e50; + color: white; + padding: 20px; + text-align: center; + margin-top: 20px; + border-radius: 0 0 15px 15px; +} + +/* 特征和建议的特殊样式 */ +.feature-item { + background: linear-gradient(135deg, #e8f4fc, #d1edff); + padding: 20px; + border-radius: 10px; + border-left: 4px solid #3498db; +} + +.recommendation-item { + background: linear-gradient(135deg, #fff3cd, #ffeaa7); + padding: 20px; + border-radius: 10px; + border-left: 4px solid #f39c12; +} + +.recommendation-high { + border-left-color: #e74c3c; + background: linear-gradient(135deg, #f8d7da, #f5c6cb); +} + +.recommendation-medium { + border-left-color: #f39c12; + background: linear-gradient(135deg, #fff3cd, #ffeaa7); +} + +.recommendation-low { + border-left-color: #27ae60; + background: linear-gradient(135deg, #d1edff, #bee5eb); +} + +.feature-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 10px; +} + +.feature-type { + font-weight: bold; + color: #2c3e50; + font-size: 1.1em; +} + +.confidence-badge { + background: #3498db; + color: white; + padding: 4px 12px; + border-radius: 12px; + font-size: 0.9em; +} + +.recommendation-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 10px; +} + +.priority-badge { + padding: 4px 12px; + border-radius: 12px; + font-size: 0.9em; + font-weight: bold; +} + +.priority-high { + background: #e74c3c; + color: white; +} + +.priority-medium { + background: #f39c12; + color: white; +} + +.priority-low { + background: #27ae60; + color: white; +} + +.recommendation-list { + list-style: none; + padding: 0; + margin: 10px 0; +} + +.recommendation-list li { + padding: 8px 0; + border-bottom: 1px solid #eee; + display: flex; + align-items: flex-start; + gap: 8px; +} + +.recommendation-list li:before { + content: "💡"; + font-size: 1.1em; +} + +.recommendation-list li:last-child { + border-bottom: none; +} + +.metric-item { + background: white; + padding: 20px; + border-radius: 8px; + box-shadow: 0 2px 8px rgba(0,0,0,0.1); + text-align: center; +} + +.metric-value { + font-size: 1.8em; + font-weight: bold; + color: #2c3e50; + margin: 10px 0; +} + +.metric-label { + color: #7f8c8d; + font-size: 0.9em; +} + +.metric-good { + color: #27ae60; +} + +.metric-warning { + color: #f39c12; +} + +.metric-poor { + color: #e74c3c; +} + +/* 响应式设计 */ +@media (max-width: 768px) { + .container { + margin: 10px; + border-radius: 10px; + } + + .header { + padding: 20px; + } + + .header h1 { + font-size: 2em; + } + + .upload-section { + padding: 20px; + } + + .upload-area { + padding: 30px 20px; + } + + .results-section { + padding: 0 20px 20px; + } + + .geometry-data, + .bounding-box-data, + .topology-data, + .features-data, + .recommendations-data, + .metrics-data, + .analysis-info { + grid-template-columns: 1fr; + } +} \ No newline at end of file diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..fcf08b0 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,123 @@ + + + + + + + STP文件几何分析工具 + + + +
+
+

🔧 STP文件几何分析工具

+

上传STP/STEP文件,自动分析几何属性和拓扑结构

+
+ + +
+

选择STP文件

+

支持 .stp 和 .step 格式文件

+ +
+
📁
+

拖放文件到此处或点击选择

+

最大文件大小: 100MB

+ + +
+ + + +
+
+

正在分析文件,请稍候...

+
+ +
+
+ + + + +
+

PythonOCC 可用: {{ pythonocc_available }} | 服务版本: 2.0.0

+
+
+ + + + \ No newline at end of file diff --git a/uploads/fsa30scy_tc-01-0817.stp b/uploads/fsa30scy_tc-01-0817.stp new file mode 100644 index 0000000..c225e09 --- /dev/null +++ b/uploads/fsa30scy_tc-01-0817.stp @@ -0,0 +1,12172 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION((''),'2;1'); +FILE_NAME('FSA30SCY_TC-01-0702','2024-08-17T',('fuzg1'),(''), +'CREO PARAMETRIC BY PTC INC, 2014500','CREO PARAMETRIC BY PTC INC, 2014500',''); +FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }')); +ENDSEC; +DATA; +#31=CARTESIAN_POINT('',(-6.416713281516E0,-8.000179578406E1,1.429144561350E-3)); +#32=DIRECTION('',(1.E0,0.E0,0.E0)); +#33=DIRECTION('',(0.E0,-7.528894952213E-1,-6.581469501452E-1)); +#34=AXIS2_PLACEMENT_3D('',#31,#32,#33); +#36=DIRECTION('',(0.E0,-1.815217220578E-14,-1.E0)); +#37=VECTOR('',#36,5.010390445080E1); +#38=CARTESIAN_POINT('',(-6.416713281516E0,-2.1E2,-1.398960955492E2)); +#39=LINE('',#38,#37); +#40=DIRECTION('',(-1.E0,0.E0,2.659714333131E-14)); +#41=VECTOR('',#40,7.159620520583E1); +#42=CARTESIAN_POINT('',(6.517949192431E1,-2.1E2,-1.398960955492E2)); +#43=LINE('',#42,#41); +#44=CARTESIAN_POINT('',(-6.416713281508E0,-2.237836842081E2,-1.256871505913E2)); +#45=CARTESIAN_POINT('',(-4.783739647448E0,-2.248449087110E2,-1.244731591261E2)); +#46=CARTESIAN_POINT('',(-1.731770613588E0,-2.271545221656E2,-1.217726534781E2)); +#47=CARTESIAN_POINT('',(2.291147736651E0,-2.312859663935E2,-1.166190533201E2)); +#48=CARTESIAN_POINT('',(5.259587976580E0,-2.356087996048E2,-1.107952906111E2)); +#49=CARTESIAN_POINT('',(7.084212792781E0,-2.398915572932E2,-1.045239741335E2)); +#50=CARTESIAN_POINT('',(7.500000000077E0,-2.425930748449E2,-1.002060191605E2)); +#51=CARTESIAN_POINT('',(7.500000000077E0,-2.439120468376E2,-9.8E1)); +#53=DIRECTION('',(1.E0,0.E0,0.E0)); +#54=VECTOR('',#53,7.749999999992E1); +#55=CARTESIAN_POINT('',(7.500000000076E0,-2.5E2,-8.701271383328E1)); +#56=LINE('',#55,#54); +#57=CARTESIAN_POINT('',(8.5E1,-2.298205080757E2,-1.184266248042E2)); +#58=CARTESIAN_POINT('',(8.448840494974E1,-2.298943504607E2,-1.183332096828E2)); +#59=CARTESIAN_POINT('',(8.346665365840E1,-2.299955564513E2,-1.182048560008E2)); +#60=CARTESIAN_POINT('',(8.194455821446E1,-2.300131350374E2,-1.181825286985E2)); +#61=CARTESIAN_POINT('',(8.042033919986E1,-2.298989342313E2,-1.183274557470E2)); +#62=CARTESIAN_POINT('',(7.887012825185E1,-2.296439508577E2,-1.186500133411E2)); +#63=CARTESIAN_POINT('',(7.730476089498E1,-2.292384781370E2,-1.191600793208E2)); +#64=CARTESIAN_POINT('',(7.569445561571E1,-2.286545085597E2,-1.198885531978E2)); +#65=CARTESIAN_POINT('',(7.405705376289E1,-2.278669632926E2,-1.208597047055E2)); +#66=CARTESIAN_POINT('',(7.239650241540E1,-2.268366170754E2,-1.221111578520E2)); +#67=CARTESIAN_POINT('',(7.074933663105E1,-2.255287332312E2,-1.236692422726E2)); +#68=CARTESIAN_POINT('',(6.917598923799E1,-2.239239423300E2,-1.255359751331E2)); +#69=CARTESIAN_POINT('',(6.774707772114E1,-2.220178542372E2,-1.276912909919E2)); +#70=CARTESIAN_POINT('',(6.654477862879E1,-2.198352066614E2,-1.300803054034E2)); +#71=CARTESIAN_POINT('',(6.565228576743E1,-2.174560785017E2,-1.325930898376E2)); +#72=CARTESIAN_POINT('',(6.511196588790E1,-2.149654450911E2,-1.351278845152E2)); +#73=CARTESIAN_POINT('',(6.494099876118E1,-2.124319583366E2,-1.376107339644E2)); +#74=CARTESIAN_POINT('',(6.506334190258E1,-2.108047109558E2,-1.391483269279E2)); +#75=CARTESIAN_POINT('',(6.517949192431E1,-2.1E2,-1.398960955492E2)); +#77=DIRECTION('',(0.E0,1.871942758721E-14,1.E0)); +#78=VECTOR('',#77,5.010390445080E1); +#79=CARTESIAN_POINT('',(6.517949192431E1,-2.1E2,-1.9E2)); +#80=LINE('',#79,#78); +#81=DIRECTION('',(0.E0,-1.111876954069E-14,-1.E0)); +#82=VECTOR('',#81,7.157337519581E1); +#83=CARTESIAN_POINT('',(8.5E1,-2.298205080757E2,-1.184266248042E2)); +#84=LINE('',#83,#82); +#85=DIRECTION('',(0.E0,-5.160694937511E-14,-1.E0)); +#86=VECTOR('',#85,1.029872861667E2); +#87=CARTESIAN_POINT('',(8.5E1,-2.5E2,-8.701271383328E1)); +#88=LINE('',#87,#86); +#89=CARTESIAN_POINT('',(8.5E1,-8.000179578406E1,1.429144561350E-3)); +#90=DIRECTION('',(-1.E0,0.E0,0.E0)); +#91=DIRECTION('',(0.E0,-7.845003004779E-1,-6.201284371403E-1)); +#92=AXIS2_PLACEMENT_3D('',#89,#90,#91); +#94=DIRECTION('',(0.E0,0.E0,-1.E0)); +#95=VECTOR('',#94,6.425112614904E1); +#96=CARTESIAN_POINT('',(-4.75E1,-2.5E2,-1.257488738510E2)); +#97=LINE('',#96,#95); +#98=CARTESIAN_POINT('',(-2.699999999992E1,-2.5E2,-9.8E1)); +#99=DIRECTION('',(0.E0,1.E0,0.E0)); +#100=DIRECTION('',(-5.942028985530E-1,0.E0,-8.043151840859E-1)); +#101=AXIS2_PLACEMENT_3D('',#98,#99,#100); +#103=DIRECTION('',(0.E0,0.E0,1.E0)); +#104=VECTOR('',#103,2.300000000033E1); +#105=CARTESIAN_POINT('',(-6.149999999992E1,-2.5E2,-9.8E1)); +#106=LINE('',#105,#104); +#107=DIRECTION('',(-1.E0,0.E0,4.441787079974E-10)); +#108=VECTOR('',#107,2.350000000008E1); +#109=CARTESIAN_POINT('',(-6.149999999992E1,-2.5E2,-7.499999999967E1)); +#110=LINE('',#109,#108); +#111=DIRECTION('',(0.E0,0.E0,-1.E0)); +#112=VECTOR('',#111,1.150000000108E2); +#113=CARTESIAN_POINT('',(-8.5E1,-2.5E2,-7.499999998923E1)); +#114=LINE('',#113,#112); +#115=DIRECTION('',(0.E0,0.E0,-1.E0)); +#116=VECTOR('',#115,5.779473724702E1); +#117=CARTESIAN_POINT('',(-2.25E1,-2.5E2,-1.322052627530E2)); +#118=LINE('',#117,#116); +#119=DIRECTION('',(1.213362233166E-13,-4.863149363577E-13,-1.E0)); +#120=VECTOR('',#119,1.098728616673E1); +#121=CARTESIAN_POINT('',(7.500000000076E0,-2.5E2,-8.701271383328E1)); +#122=LINE('',#121,#120); +#123=CARTESIAN_POINT('',(-2.699999999992E1,-2.5E2,-9.8E1)); +#124=DIRECTION('',(0.E0,1.E0,0.E0)); +#125=DIRECTION('',(1.E0,0.E0,-1.104327579463E-12)); +#126=AXIS2_PLACEMENT_3D('',#123,#124,#125); +#128=CARTESIAN_POINT('',(9.5E1,-2.E2,-1.9E2)); +#129=DIRECTION('',(0.E0,0.E0,1.E0)); +#130=DIRECTION('',(1.E0,0.E0,0.E0)); +#131=AXIS2_PLACEMENT_3D('',#128,#129,#130); +#133=DIRECTION('',(-1.E0,0.E0,0.E0)); +#134=VECTOR('',#133,8.641671328152E1); +#135=CARTESIAN_POINT('',(9.5E1,-1.95E2,-1.9E2)); +#136=LINE('',#135,#134); +#137=DIRECTION('',(-1.E0,0.E0,0.E0)); +#138=VECTOR('',#137,9.358328671848E1); +#139=CARTESIAN_POINT('',(8.583286718484E0,-1.8E2,-1.9E2)); +#140=LINE('',#139,#138); +#141=DIRECTION('',(0.E0,1.E0,0.E0)); +#142=VECTOR('',#141,1.9E2); +#143=CARTESIAN_POINT('',(-8.5E1,-1.8E2,-1.9E2)); +#144=LINE('',#143,#142); +#145=DIRECTION('',(1.E0,0.E0,0.E0)); +#146=VECTOR('',#145,1.8E2); +#147=CARTESIAN_POINT('',(-8.5E1,1.E1,-1.9E2)); +#148=LINE('',#147,#146); +#149=CARTESIAN_POINT('',(9.5E1,1.5E1,-1.9E2)); +#150=DIRECTION('',(0.E0,0.E0,1.E0)); +#151=DIRECTION('',(0.E0,-1.E0,0.E0)); +#152=AXIS2_PLACEMENT_3D('',#149,#150,#151); +#154=CARTESIAN_POINT('',(9.E1,2.85E2,-1.9E2)); +#155=DIRECTION('',(0.E0,0.E0,1.E0)); +#156=DIRECTION('',(1.E0,0.E0,0.E0)); +#157=AXIS2_PLACEMENT_3D('',#154,#155,#156); +#159=CARTESIAN_POINT('',(-9.E1,2.85E2,-1.9E2)); +#160=DIRECTION('',(0.E0,0.E0,1.E0)); +#161=DIRECTION('',(0.E0,1.E0,0.E0)); +#162=AXIS2_PLACEMENT_3D('',#159,#160,#161); +#164=CARTESIAN_POINT('',(-8.E1,-2.45E2,-1.9E2)); +#165=DIRECTION('',(0.E0,0.E0,1.E0)); +#166=DIRECTION('',(-1.E0,0.E0,0.E0)); +#167=AXIS2_PLACEMENT_3D('',#164,#165,#166); +#169=DIRECTION('',(1.E0,0.E0,0.E0)); +#170=VECTOR('',#169,1.599999999839E2); +#171=CARTESIAN_POINT('',(-7.999999999530E1,-2.65E2,-1.9E2)); +#172=LINE('',#171,#170); +#173=CARTESIAN_POINT('',(8.E1,-2.45E2,-1.9E2)); +#174=DIRECTION('',(0.E0,0.E0,1.E0)); +#175=DIRECTION('',(0.E0,-1.E0,0.E0)); +#176=AXIS2_PLACEMENT_3D('',#173,#174,#175); +#178=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-1.9E2)); +#179=DIRECTION('',(0.E0,0.E0,-1.E0)); +#180=DIRECTION('',(0.E0,-1.E0,0.E0)); +#181=AXIS2_PLACEMENT_3D('',#178,#179,#180); +#183=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-1.9E2)); +#184=DIRECTION('',(0.E0,0.E0,-1.E0)); +#185=DIRECTION('',(0.E0,1.E0,0.E0)); +#186=AXIS2_PLACEMENT_3D('',#183,#184,#185); +#188=DIRECTION('',(-1.E0,0.E0,0.E0)); +#189=VECTOR('',#188,1.075E2); +#190=CARTESIAN_POINT('',(8.5E1,-2.5E2,-1.9E2)); +#191=LINE('',#190,#189); +#192=CARTESIAN_POINT('',(-3.5E1,-2.5E2,-1.9E2)); +#193=DIRECTION('',(0.E0,0.E0,-1.E0)); +#194=DIRECTION('',(-1.E0,0.E0,0.E0)); +#195=AXIS2_PLACEMENT_3D('',#192,#193,#194); +#197=DIRECTION('',(-1.E0,0.E0,0.E0)); +#198=VECTOR('',#197,3.75E1); +#199=CARTESIAN_POINT('',(-4.75E1,-2.5E2,-1.9E2)); +#200=LINE('',#199,#198); +#201=DIRECTION('',(1.535020688586E-14,1.E0,0.E0)); +#202=VECTOR('',#201,3.517949192431E1); +#203=CARTESIAN_POINT('',(-8.5E1,-2.5E2,-1.9E2)); +#204=LINE('',#203,#202); +#205=CARTESIAN_POINT('',(-8.25E1,-1.975E2,-1.9E2)); +#206=DIRECTION('',(0.E0,0.E0,1.E0)); +#207=DIRECTION('',(-1.428571428571E-1,-9.897433186108E-1,0.E0)); +#208=AXIS2_PLACEMENT_3D('',#205,#206,#207); +#210=DIRECTION('',(0.E0,-1.E0,0.E0)); +#211=VECTOR('',#210,1.5E1); +#212=CARTESIAN_POINT('',(-6.416713281516E0,-1.95E2,-1.9E2)); +#213=LINE('',#212,#211); +#214=DIRECTION('',(1.E0,0.E0,0.E0)); +#215=VECTOR('',#214,7.159620520583E1); +#216=CARTESIAN_POINT('',(-6.416713281516E0,-2.1E2,-1.9E2)); +#217=LINE('',#216,#215); +#218=CARTESIAN_POINT('',(8.25E1,-2.125E2,-1.9E2)); +#219=DIRECTION('',(0.E0,0.E0,1.E0)); +#220=DIRECTION('',(-9.897433186108E-1,1.428571428571E-1,0.E0)); +#221=AXIS2_PLACEMENT_3D('',#218,#219,#220); +#223=DIRECTION('',(2.676045963909E-14,-1.E0,0.E0)); +#224=VECTOR('',#223,2.017949192431E1); +#225=CARTESIAN_POINT('',(8.5E1,-2.298205080757E2,-1.9E2)); +#226=LINE('',#225,#224); +#227=DIRECTION('',(-1.E0,-1.225711124444E-14,0.E0)); +#228=VECTOR('',#227,5.275255128608E1); +#229=CARTESIAN_POINT('',(7.025255128608E1,2.5E1,-1.9E2)); +#230=LINE('',#229,#228); +#231=CARTESIAN_POINT('',(5.E0,2.5E1,-1.9E2)); +#232=DIRECTION('',(0.E0,0.E0,-1.E0)); +#233=DIRECTION('',(-1.E0,0.E0,0.E0)); +#234=AXIS2_PLACEMENT_3D('',#231,#232,#233); +#236=DIRECTION('',(-1.E0,1.092662729970E-14,0.E0)); +#237=VECTOR('',#236,6.275255128608E1); +#238=CARTESIAN_POINT('',(-7.5E0,2.5E1,-1.9E2)); +#239=LINE('',#238,#237); +#240=CARTESIAN_POINT('',(-8.25E1,3.75E1,-1.9E2)); +#241=DIRECTION('',(0.E0,0.E0,1.E0)); +#242=DIRECTION('',(6.998542122238E-1,-7.142857142857E-1,0.E0)); +#243=AXIS2_PLACEMENT_3D('',#240,#241,#242); +#245=DIRECTION('',(0.E0,1.E0,0.E0)); +#246=VECTOR('',#245,1.076213034582E2); +#247=CARTESIAN_POINT('',(-8.5E1,5.482050807569E1,-1.9E2)); +#248=LINE('',#247,#246); +#249=DIRECTION('',(1.E0,-2.740463178536E-13,-3.435050620100E-13)); +#250=VECTOR('',#249,2.250535965856E1); +#251=CARTESIAN_POINT('',(-8.5E1,1.624418115339E2,-1.9E2)); +#252=LINE('',#251,#250); +#253=CARTESIAN_POINT('',(-6.249464034144E1,1.624418115339E2,-1.9E2)); +#254=CARTESIAN_POINT('',(-6.104301635298E1,1.612754312835E2,-1.9E2)); +#255=CARTESIAN_POINT('',(-5.776480533153E1,1.591221236817E2,-1.900000001466E2)); +#256=CARTESIAN_POINT('',(-5.148289313774E1,1.565555691166E2,-1.899999994869E2)); +#257=CARTESIAN_POINT('',(-4.400862309202E1,1.549489675185E2,-1.900000019059E2)); +#258=CARTESIAN_POINT('',(-3.584396831414E1,1.541742137106E2,-1.899999928895E2)); +#259=CARTESIAN_POINT('',(-2.998791901139E1,1.540384043179E2,-1.900000153205E2)); +#260=CARTESIAN_POINT('',(-2.695261958154E1,1.540326241061E2,-1.900000153205E2)); +#262=CARTESIAN_POINT('',(-2.695261958154E1,1.540326241061E2,-1.900000153205E2)); +#263=CARTESIAN_POINT('',(-2.308360527501E1,1.540415126521E2,-1.900000153205E2)); +#264=CARTESIAN_POINT('',(-1.578259456502E1,1.542631379931E2,-1.899999928896E2)); +#265=CARTESIAN_POINT('',(-6.113469695116E0,1.555509158729E2,-1.900000019055E2)); +#266=CARTESIAN_POINT('',(2.191311005807E0,1.581899794807E2,-1.899999994882E2)); +#267=CARTESIAN_POINT('',(9.117759696221E0,1.624728170022E2,-1.900000001417E2)); +#268=CARTESIAN_POINT('',(1.432909135028E1,1.681949904722E2,-1.899999999450E2)); +#269=CARTESIAN_POINT('',(1.790629091415E1,1.749929349075E2,-1.900000000781E2)); +#270=CARTESIAN_POINT('',(1.993739406501E1,1.820583047773E2,-1.899999997424E2)); +#271=CARTESIAN_POINT('',(2.110119214835E1,1.902888800315E2,-1.900000009521E2)); +#272=CARTESIAN_POINT('',(2.125603642447E1,1.963561349639E2,-1.899999979501E2)); +#273=CARTESIAN_POINT('',(2.123537790404E1,1.995521107079E2,-1.899999979501E2)); +#275=DIRECTION('',(1.E0,0.E0,0.E0)); +#276=VECTOR('',#275,5.947949192431E1); +#277=CARTESIAN_POINT('',(5.7E0,2.8E2,-1.9E2)); +#278=LINE('',#277,#276); +#279=CARTESIAN_POINT('',(8.25E1,2.775E2,-1.9E2)); +#280=DIRECTION('',(0.E0,0.E0,1.E0)); +#281=DIRECTION('',(-9.897433186108E-1,1.428571428571E-1,0.E0)); +#282=AXIS2_PLACEMENT_3D('',#279,#280,#281); +#284=DIRECTION('',(0.E0,-1.E0,0.E0)); +#285=VECTOR('',#284,2.053589838486E2); +#286=CARTESIAN_POINT('',(8.5E1,2.601794919243E2,-1.9E2)); +#287=LINE('',#286,#285); +#288=CARTESIAN_POINT('',(8.25E1,3.75E1,-1.9E2)); +#289=DIRECTION('',(0.E0,0.E0,1.E0)); +#290=DIRECTION('',(1.428571428571E-1,9.897433186108E-1,0.E0)); +#291=AXIS2_PLACEMENT_3D('',#288,#289,#290); +#293=DIRECTION('',(0.E0,-9.433499647572E-14,1.E0)); +#294=VECTOR('',#293,5.453256584609E1); +#295=CARTESIAN_POINT('',(1.E2,-2.E2,-1.9E2)); +#296=LINE('',#295,#294); +#297=CARTESIAN_POINT('',(1.E2,-2.E2,-1.354674341539E2)); +#298=CARTESIAN_POINT('',(1.E2,-1.994579492240E2,-1.352234543418E2)); +#299=CARTESIAN_POINT('',(9.982356204314E1,-1.983882991232E2,-1.347407841503E2)); +#300=CARTESIAN_POINT('',(9.907448762796E1,-1.969565703775E2,-1.340911562141E2)); +#301=CARTESIAN_POINT('',(9.791176823734E1,-1.958298794318E2,-1.335774589698E2)); +#302=CARTESIAN_POINT('',(9.646926541842E1,-1.951378284010E2,-1.332610400570E2)); +#303=CARTESIAN_POINT('',(9.548106810418E1,-1.95E2,-1.331978977207E2)); +#304=CARTESIAN_POINT('',(9.5E1,-1.95E2,-1.331978977207E2)); +#306=DIRECTION('',(0.E0,-7.405382594849E-14,-1.E0)); +#307=VECTOR('',#306,5.680210227930E1); +#308=CARTESIAN_POINT('',(9.5E1,-1.95E2,-1.331978977207E2)); +#309=LINE('',#308,#307); +#310=CARTESIAN_POINT('',(1.E2,-8.000179578406E1,1.429144561350E-3)); +#311=DIRECTION('',(1.E0,0.E0,0.E0)); +#312=DIRECTION('',(0.E0,-9.117261318006E-1,-4.107985644959E-1)); +#313=AXIS2_PLACEMENT_3D('',#310,#311,#312); +#315=DIRECTION('',(0.E0,-1.E0,0.E0)); +#316=VECTOR('',#315,4.499999999989E1); +#317=CARTESIAN_POINT('',(1.E2,-2.E2,-1.9E2)); +#318=LINE('',#317,#316); +#319=CARTESIAN_POINT('',(9.5E1,-8.000179578406E1,1.429144561350E-3)); +#320=DIRECTION('',(1.E0,0.E0,0.E0)); +#321=DIRECTION('',(0.E0,-9.117261318022E-1,-4.107985644924E-1)); +#322=AXIS2_PLACEMENT_3D('',#319,#320,#321); +#324=CARTESIAN_POINT('',(9.5E1,-2.449999999990E2,-7.434219562769E1)); +#325=DIRECTION('',(0.E0,4.107985645047E-1,-9.117261317967E-1)); +#326=DIRECTION('',(0.E0,9.117261317967E-1,4.107985645047E-1)); +#327=AXIS2_PLACEMENT_3D('',#324,#325,#326); +#329=CARTESIAN_POINT('',(1.E2,-2.449999999993E2,-7.434219562695E1)); +#330=CARTESIAN_POINT('',(9.999999655475E1,-2.456213001965E2,-7.330789094328E1)); +#331=CARTESIAN_POINT('',(9.994211840338E1,-2.468355159692E2,-7.123477905937E1)); +#332=CARTESIAN_POINT('',(9.970459982023E1,-2.485648165454E2,-6.812576021188E1)); +#333=CARTESIAN_POINT('',(9.945661639919E1,-2.496634200464E2,-6.604242800875E1)); +#334=CARTESIAN_POINT('',(9.931262684307E1,-2.501983387327E2,-6.500002173116E1)); +#336=DIRECTION('',(1.E0,1.611567611410E-14,-5.032037643790E-14)); +#337=VECTOR('',#336,8.641671328152E1); +#338=CARTESIAN_POINT('',(8.583286718484E0,-1.95E2,-1.331978977207E2)); +#339=LINE('',#338,#337); +#340=CARTESIAN_POINT('',(9.500000155257E1,-2.404413693404E2,-7.228820280442E1)); +#341=CARTESIAN_POINT('',(9.499998459875E1,-2.417885302932E2,-6.929831002890E1)); +#342=CARTESIAN_POINT('',(9.481025796860E1,-2.430553247828E2,-6.626269984404E1)); +#343=CARTESIAN_POINT('',(9.448436920520E1,-2.442324401611E2,-6.320413323342E1)); +#345=DIRECTION('',(1.E0,7.395159568286E-8,-1.937888800933E-7)); +#346=VECTOR('',#345,8.590108248672E1); +#347=CARTESIAN_POINT('',(8.583286718484E0,-2.442324465136E2,-6.320411658674E1)); +#348=LINE('',#347,#346); +#349=DIRECTION('',(-1.E0,-3.374849024923E-14,0.E0)); +#350=VECTOR('',#349,8.590056445466E1); +#351=CARTESIAN_POINT('',(9.448385117314E1,-2.488987944182E2,-6.E1)); +#352=LINE('',#351,#350); +#353=CARTESIAN_POINT('',(9.448445380693E1,-2.488987944182E2,-6.5E1)); +#354=DIRECTION('',(9.620210962658E-2,3.575141971206E-1,-9.289395852049E-1)); +#355=DIRECTION('',(-3.750021434428E-5,9.332695518422E-1,3.591767562049E-1)); +#356=AXIS2_PLACEMENT_3D('',#353,#354,#355); +#358=CARTESIAN_POINT('',(9.448445380692E1,-2.488987944182E2,-6.5E1)); +#359=DIRECTION('',(-2.599196278792E-1,-9.656302537944E-1,0.E0)); +#360=DIRECTION('',(9.656302537327E-1,-2.599196278626E-1,-1.130853926554E-5)); +#361=AXIS2_PLACEMENT_3D('',#358,#359,#360); +#363=CARTESIAN_POINT('',(9.448445380693E1,-2.488987944182E2,-6.5E1)); +#364=DIRECTION('',(-9.999999970353E-1,-5.915402280868E-5,4.929727165250E-5)); +#365=DIRECTION('',(4.929727156764E-5,2.916129915320E-9,9.999999987849E-1)); +#366=AXIS2_PLACEMENT_3D('',#363,#364,#365); +#368=CARTESIAN_POINT('',(8.E1,-2.45E2,-6.5E1)); +#369=DIRECTION('',(0.E0,0.E0,-1.E0)); +#370=DIRECTION('',(9.656316715674E-1,-2.599143606383E-1,0.E0)); +#371=AXIS2_PLACEMENT_3D('',#368,#369,#370); +#373=CARTESIAN_POINT('',(8.E1,-2.6E2,-6.5E1)); +#374=DIRECTION('',(-1.E0,0.E0,0.E0)); +#375=DIRECTION('',(0.E0,-1.E0,0.E0)); +#376=AXIS2_PLACEMENT_3D('',#373,#374,#375); +#378=DIRECTION('',(0.E0,-4.726802344704E-12,-1.E0)); +#379=VECTOR('',#378,1.156578043730E2); +#380=CARTESIAN_POINT('',(1.E2,-2.449999999993E2,-7.434219562695E1)); +#381=LINE('',#380,#379); +#382=DIRECTION('',(2.278693500557E-11,0.E0,1.E0)); +#383=VECTOR('',#382,1.25E2); +#384=CARTESIAN_POINT('',(7.999999998861E1,-2.65E2,-1.9E2)); +#385=LINE('',#384,#383); +#386=DIRECTION('',(0.E0,0.E0,-1.E0)); +#387=VECTOR('',#386,5.8E1); +#388=CARTESIAN_POINT('',(-5.449999999992E1,-2.65E2,-7.E0)); +#389=LINE('',#388,#387); +#390=DIRECTION('',(0.E0,0.E0,1.E0)); +#391=VECTOR('',#390,5.3E1); +#392=CARTESIAN_POINT('',(-5.949999999992E1,-2.6E2,-6.E1)); +#393=LINE('',#392,#391); +#394=CARTESIAN_POINT('',(-5.449999999992E1,-2.6E2,-7.E0)); +#395=DIRECTION('',(0.E0,0.E0,-1.E0)); +#396=DIRECTION('',(0.E0,-1.E0,0.E0)); +#397=AXIS2_PLACEMENT_3D('',#394,#395,#396); +#399=DIRECTION('',(0.E0,1.E0,0.E0)); +#400=VECTOR('',#399,4.2E1); +#401=CARTESIAN_POINT('',(-5.949999999992E1,-2.6E2,-7.E0)); +#402=LINE('',#401,#400); +#403=DIRECTION('',(0.E0,-1.E0,0.E0)); +#404=VECTOR('',#403,3.2E1); +#405=CARTESIAN_POINT('',(-4.649999999992E1,-2.18E2,-7.E0)); +#406=LINE('',#405,#404); +#407=DIRECTION('',(1.E0,0.E0,0.E0)); +#408=VECTOR('',#407,3.9E1); +#409=CARTESIAN_POINT('',(-4.649999999992E1,-2.5E2,-7.E0)); +#410=LINE('',#409,#408); +#411=DIRECTION('',(0.E0,1.E0,0.E0)); +#412=VECTOR('',#411,3.2E1); +#413=CARTESIAN_POINT('',(-7.499999999924E0,-2.5E2,-7.E0)); +#414=LINE('',#413,#412); +#415=DIRECTION('',(0.E0,-1.E0,0.E0)); +#416=VECTOR('',#415,4.2E1); +#417=CARTESIAN_POINT('',(5.500000000076E0,-2.18E2,-7.E0)); +#418=LINE('',#417,#416); +#419=CARTESIAN_POINT('',(5.000000000761E-1,-2.6E2,-7.E0)); +#420=DIRECTION('',(0.E0,0.E0,-1.E0)); +#421=DIRECTION('',(1.E0,-1.250555214938E-13,0.E0)); +#422=AXIS2_PLACEMENT_3D('',#419,#420,#421); +#424=DIRECTION('',(-1.E0,0.E0,0.E0)); +#425=VECTOR('',#424,5.5E1); +#426=CARTESIAN_POINT('',(5.000000000761E-1,-2.65E2,-7.E0)); +#427=LINE('',#426,#425); +#428=CARTESIAN_POINT('',(-5.949999999992E1,-2.05E2,-5.5E1)); +#429=DIRECTION('',(-1.E0,0.E0,0.E0)); +#430=DIRECTION('',(0.E0,0.E0,-1.E0)); +#431=AXIS2_PLACEMENT_3D('',#428,#429,#430); +#433=CARTESIAN_POINT('',(-5.949999999992E1,-2.18E2,-1.5E1)); +#434=DIRECTION('',(1.E0,0.E0,0.E0)); +#435=DIRECTION('',(0.E0,1.E0,0.E0)); +#436=AXIS2_PLACEMENT_3D('',#433,#434,#435); +#438=DIRECTION('',(0.E0,-1.E0,0.E0)); +#439=VECTOR('',#438,5.5E1); +#440=CARTESIAN_POINT('',(-5.949999999992E1,-2.05E2,-6.E1)); +#441=LINE('',#440,#439); +#442=CARTESIAN_POINT('',(-8.E1,-2.45E2,-6.E1)); +#443=DIRECTION('',(0.E0,0.E0,-1.E0)); +#444=DIRECTION('',(0.E0,-1.E0,0.E0)); +#445=AXIS2_PLACEMENT_3D('',#442,#443,#444); +#447=CARTESIAN_POINT('',(-9.5E1,-2.124911722892E2,-6.E1)); +#448=CARTESIAN_POINT('',(-9.485386149287E1,-2.124911722892E2,-6.E1)); +#449=CARTESIAN_POINT('',(-9.456312447763E1,-2.125050140603E2,-6.E1)); +#450=CARTESIAN_POINT('',(-9.412932354275E1,-2.125665939002E2,-6.E1)); +#451=CARTESIAN_POINT('',(-9.384628967168E1,-2.126344824685E2,-6.E1)); +#452=CARTESIAN_POINT('',(-9.370590477449E1,-2.126750847334E2,-6.E1)); +#454=DIRECTION('',(-1.E0,0.E0,0.E0)); +#455=VECTOR('',#454,1.3E1); +#456=CARTESIAN_POINT('',(-4.649999999992E1,-2.1E2,-5.5E1)); +#457=LINE('',#456,#455); +#458=DIRECTION('',(1.E0,0.E0,0.E0)); +#459=VECTOR('',#458,1.3E1); +#460=CARTESIAN_POINT('',(-5.949999999992E1,-2.05E2,-6.E1)); +#461=LINE('',#460,#459); +#462=DIRECTION('',(0.E0,0.E0,1.E0)); +#463=VECTOR('',#462,4.E1); +#464=CARTESIAN_POINT('',(-4.649999999992E1,-2.1E2,-5.5E1)); +#465=LINE('',#464,#463); +#466=DIRECTION('',(0.E0,0.E0,-1.E0)); +#467=VECTOR('',#466,4.E1); +#468=CARTESIAN_POINT('',(-5.949999999992E1,-2.1E2,-1.5E1)); +#469=LINE('',#468,#467); +#470=CARTESIAN_POINT('',(-4.649999999992E1,-2.05E2,-5.5E1)); +#471=DIRECTION('',(1.E0,0.E0,0.E0)); +#472=DIRECTION('',(0.E0,-1.E0,0.E0)); +#473=AXIS2_PLACEMENT_3D('',#470,#471,#472); +#475=DIRECTION('',(0.E0,1.E0,0.E0)); +#476=VECTOR('',#475,2.3E2); +#477=CARTESIAN_POINT('',(-4.649999999992E1,-2.05E2,-6.E1)); +#478=LINE('',#477,#476); +#479=CARTESIAN_POINT('',(-4.649999999992E1,2.5E1,-7.E1)); +#480=DIRECTION('',(-1.E0,0.E0,0.E0)); +#481=DIRECTION('',(0.E0,0.E0,1.E0)); +#482=AXIS2_PLACEMENT_3D('',#479,#480,#481); +#484=DIRECTION('',(0.E0,0.E0,-1.E0)); +#485=VECTOR('',#484,2.8E1); +#486=CARTESIAN_POINT('',(-4.649999999992E1,3.5E1,-7.E1)); +#487=LINE('',#486,#485); +#488=DIRECTION('',(0.E0,0.E0,1.E0)); +#489=VECTOR('',#488,9.1E1); +#490=CARTESIAN_POINT('',(-4.649999999992E1,-2.5E2,-9.8E1)); +#491=LINE('',#490,#489); +#492=CARTESIAN_POINT('',(-4.649999999992E1,-2.18E2,-1.5E1)); +#493=DIRECTION('',(-1.E0,0.E0,0.E0)); +#494=DIRECTION('',(0.E0,0.E0,1.E0)); +#495=AXIS2_PLACEMENT_3D('',#492,#493,#494); +#497=DIRECTION('',(1.E0,2.869486735322E-10,-5.696352251793E-9)); +#498=VECTOR('',#497,1.466790339402E1); +#499=CARTESIAN_POINT('',(-6.116790339394E1,3.499999999579E1,-6.999999991645E1)); +#500=LINE('',#499,#498); +#501=DIRECTION('',(-1.E0,-2.592726568368E-11,-2.011093135562E-12)); +#502=VECTOR('',#501,1.449284595800E1); +#503=CARTESIAN_POINT('',(-4.649999999992E1,2.5E1,-6.E1)); +#504=LINE('',#503,#502); +#505=CARTESIAN_POINT('',(-6.144910224280E1,3.5E1,-1.041483448332E2)); +#506=CARTESIAN_POINT('',(-6.141520951360E1,3.5E1,-1.004185102544E2)); +#507=CARTESIAN_POINT('',(-6.134876726597E1,3.499999999944E1,-9.291589367541E1)); +#508=CARTESIAN_POINT('',(-6.125435726280E1,3.500000000196E1,-8.153307142956E1)); +#509=CARTESIAN_POINT('',(-6.119577922749E1,3.499999999579E1,-7.385867179375E1)); +#510=CARTESIAN_POINT('',(-6.116790339394E1,3.499999999579E1,-6.999999991645E1)); +#512=CARTESIAN_POINT('',(-6.116790339394E1,3.499999999579E1,-6.999999991645E1)); +#513=CARTESIAN_POINT('',(-6.116152031936E1,3.499999999579E1,-6.911643206454E1)); +#514=CARTESIAN_POINT('',(-6.114654648469E1,3.476469660017E1,-6.735001532581E1)); +#515=CARTESIAN_POINT('',(-6.111846339555E1,3.372846467814E1,-6.488335724641E1)); +#516=CARTESIAN_POINT('',(-6.108674157541E1,3.208912623006E1,-6.278328768652E1)); +#517=CARTESIAN_POINT('',(-6.105351584565E1,2.997537141474E1,-6.119415088311E1)); +#518=CARTESIAN_POINT('',(-6.102114164831E1,2.754879048226E1,-6.021536648827E1)); +#519=CARTESIAN_POINT('',(-6.100170804669E1,2.584547624352E1,-6.000000000003E1)); +#520=CARTESIAN_POINT('',(-6.099284595792E1,2.499999999962E1,-6.000000000003E1)); +#522=CARTESIAN_POINT('',(-6.099284595792E1,2.499999999962E1,-6.000000000003E1)); +#523=CARTESIAN_POINT('',(-6.093280351439E1,1.927172747222E1,-6.000000000003E1)); +#524=CARTESIAN_POINT('',(-6.082247901560E1,8.408368232910E0,-6.E1)); +#525=CARTESIAN_POINT('',(-6.068701746324E1,-6.098950858621E0, +-5.999999999997E1)); +#526=CARTESIAN_POINT('',(-6.058148553132E1,-1.884305955794E1, +-6.000000000014E1)); +#527=CARTESIAN_POINT('',(-6.050040097897E1,-3.025375750275E1, +-5.999999999947E1)); +#528=CARTESIAN_POINT('',(-6.043414107926E1,-4.239841020668E1, +-6.000000000199E1)); +#529=CARTESIAN_POINT('',(-6.039637671635E1,-5.323823903802E1, +-5.999999999258E1)); +#530=CARTESIAN_POINT('',(-6.038606822672E1,-6.106144495431E1, +-6.000000001599E1)); +#531=CARTESIAN_POINT('',(-6.038606822672E1,-6.5E1,-6.000000001599E1)); +#533=CARTESIAN_POINT('',(-6.038606822672E1,-6.5E1,-6.000000001599E1)); +#534=CARTESIAN_POINT('',(-6.038606822672E1,-6.731464143936E1, +-6.000000001599E1)); +#535=CARTESIAN_POINT('',(-6.038944808440E1,-7.190652609254E1, +-5.999999999258E1)); +#536=CARTESIAN_POINT('',(-6.040403260519E1,-7.869372835668E1, +-6.000000000199E1)); +#537=CARTESIAN_POINT('',(-6.042705812843E1,-8.534559607367E1, +-5.999999999947E1)); +#538=CARTESIAN_POINT('',(-6.045709579580E1,-9.182902757449E1, +-6.000000000014E1)); +#539=CARTESIAN_POINT('',(-6.049307254696E1,-9.819090417513E1, +-5.999999999996E1)); +#540=CARTESIAN_POINT('',(-6.053431404142E1,-1.044951806098E2, +-6.000000000001E1)); +#541=CARTESIAN_POINT('',(-6.058061997842E1,-1.108292410596E2,-6.E1)); +#542=CARTESIAN_POINT('',(-6.063215964029E1,-1.172872117174E2,-6.E1)); +#543=CARTESIAN_POINT('',(-6.068950780461E1,-1.239800453519E2,-6.E1)); +#544=CARTESIAN_POINT('',(-6.075369467248E1,-1.310419618131E2,-6.E1)); +#545=CARTESIAN_POINT('',(-6.082609250491E1,-1.386201796210E2,-6.E1)); +#546=CARTESIAN_POINT('',(-6.090890395650E1,-1.469256688279E2,-6.E1)); +#547=CARTESIAN_POINT('',(-6.100498867325E1,-1.562099939631E2,-6.E1)); +#548=CARTESIAN_POINT('',(-6.111770192260E1,-1.667510988037E2,-6.E1)); +#549=CARTESIAN_POINT('',(-6.125050168794E1,-1.788200038690E2,-6.E1)); +#550=CARTESIAN_POINT('',(-6.140525017654E1,-1.925407496491E2,-6.E1)); +#551=CARTESIAN_POINT('',(-6.158414923393E1,-2.080773250151E2,-6.E1)); +#552=CARTESIAN_POINT('',(-6.172196086115E1,-2.198398556709E2,-6.E1)); +#553=CARTESIAN_POINT('',(-6.179534369283E1,-2.260561355206E2,-6.E1)); +#555=CARTESIAN_POINT('',(-6.179502873889E1,7.171941947150E1,-1.041483409422E2)); +#556=CARTESIAN_POINT('',(-6.175464047483E1,6.768911059715E1,-1.041483409422E2)); +#557=CARTESIAN_POINT('',(-6.167529979332E1,5.959541845975E1,-1.041483466490E2)); +#558=CARTESIAN_POINT('',(-6.155917607096E1,4.735560271802E1,-1.041483443144E2)); +#559=CARTESIAN_POINT('',(-6.148513261952E1,3.912956403251E1,-1.041483448332E2)); +#560=CARTESIAN_POINT('',(-6.144910224280E1,3.5E1,-1.041483448332E2)); +#562=DIRECTION('',(9.999999999457E-1,4.778996308965E-8,-1.042538724087E-5)); +#563=VECTOR('',#562,5.620757187139E0); +#564=CARTESIAN_POINT('',(-6.144910224280E1,3.5E1,-1.041483448332E2)); +#565=LINE('',#564,#563); +#566=CARTESIAN_POINT('',(-5.582834505597E1,3.500000026862E1,-1.041484034318E2)); +#567=CARTESIAN_POINT('',(-5.541662148574E1,3.500000026862E1,-1.060455620899E2)); +#568=CARTESIAN_POINT('',(-5.424320722460E1,3.499999988879E1,-1.096795375549E2)); +#569=CARTESIAN_POINT('',(-5.144095882318E1,3.499999998631E1,-1.147467285329E2)); +#570=CARTESIAN_POINT('',(-4.770073148499E1,3.500000016596E1,-1.191672476639E2)); +#571=CARTESIAN_POINT('',(-4.472161811205E1,3.499999962189E1,-1.215558394538E2)); +#572=CARTESIAN_POINT('',(-4.309414992402E1,3.499999962189E1,-1.226153382100E2)); +#574=CARTESIAN_POINT('',(-4.309414992402E1,3.499999962189E1,-1.226153382100E2)); +#575=CARTESIAN_POINT('',(-4.297436052068E1,3.499999962189E1,-1.226933214953E2)); +#576=CARTESIAN_POINT('',(-4.273229914574E1,3.500000017645E1,-1.228484993468E2)); +#577=CARTESIAN_POINT('',(-4.236626582700E1,3.499999994959E1,-1.230754884465E2)); +#578=CARTESIAN_POINT('',(-4.211999466207E1,3.5E1,-1.232233107057E2)); +#579=CARTESIAN_POINT('',(-4.199632111959E1,3.5E1,-1.232963173402E2)); +#581=CARTESIAN_POINT('',(-2.699999999992E1,3.5E1,-9.8E1)); +#582=DIRECTION('',(0.E0,1.E0,0.E0)); +#583=DIRECTION('',(-7.690421087016E-1,0.E0,-6.391981187737E-1)); +#584=AXIS2_PLACEMENT_3D('',#581,#582,#583); +#586=DIRECTION('',(-9.999999999494E-1,-9.277152888742E-7,1.001517354245E-5)); +#587=VECTOR('',#586,6.038187262974E0); +#588=CARTESIAN_POINT('',(-5.575684147623E1,7.171942507322E1,-1.041484014156E2)); +#589=LINE('',#588,#587); +#590=CARTESIAN_POINT('',(-4.887559634005E1,6.517400711162E1,-1.174199042393E2)); +#591=CARTESIAN_POINT('',(-4.829726550908E1,6.517400711162E1,-1.180591666866E2)); +#592=CARTESIAN_POINT('',(-4.709070710844E1,6.517400579075E1,-1.192793149067E2)); +#593=CARTESIAN_POINT('',(-4.512888680081E1,6.517400667270E1,-1.209475837654E2)); +#594=CARTESIAN_POINT('',(-4.373692150661E1,6.517400564171E1,-1.219365652426E2)); +#595=CARTESIAN_POINT('',(-4.301830183280E1,6.517400564171E1,-1.224012483210E2)); +#597=CARTESIAN_POINT('',(-5.582834505597E1,3.500000026862E1,-1.041484034318E2)); +#598=CARTESIAN_POINT('',(-5.582061674655E1,3.908060028881E1,-1.041484034318E2)); +#599=CARTESIAN_POINT('',(-5.577539806509E1,4.724126459577E1,-1.041483250315E2)); +#600=CARTESIAN_POINT('',(-5.580877817080E1,5.948111019535E1,-1.041483262412E2)); +#601=CARTESIAN_POINT('',(-5.576498323704E1,6.764009044628E1,-1.041484014156E2)); +#602=CARTESIAN_POINT('',(-5.575684147623E1,7.171942507322E1,-1.041484014156E2)); +#604=CARTESIAN_POINT('',(-5.575684147623E1,7.171942507322E1,-1.041484014156E2)); +#605=CARTESIAN_POINT('',(-5.592289676994E1,7.227427116460E1,-1.034174832943E2)); +#606=CARTESIAN_POINT('',(-5.619934625379E1,7.336999515762E1,-1.019497109461E2)); +#607=CARTESIAN_POINT('',(-5.644561773761E1,7.496722588456E1,-9.973653554706E1)); +#608=CARTESIAN_POINT('',(-5.649998386668E1,7.599534500678E1,-9.826325213712E1)); +#609=CARTESIAN_POINT('',(-5.649995489182E1,7.649972203408E1,-9.752838969832E1)); +#611=DIRECTION('',(1.227401768781E-6,9.999619230857E-1,8.726532946426E-3)); +#612=VECTOR('',#611,5.554976403499E1); +#613=CARTESIAN_POINT('',(-5.649995489182E1,7.649972203408E1,-9.752838969832E1)); +#614=LINE('',#613,#612); +#615=DIRECTION('',(7.913993281292E-13,0.E0,1.E0)); +#616=VECTOR('',#615,6.706796490054E0); +#617=CARTESIAN_POINT('',(-4.199632111960E1,6.517400626796E1,-1.297397892668E2)); +#618=LINE('',#617,#616); +#619=CARTESIAN_POINT('',(-4.199632111959E1,6.517400626796E1,-1.230329927767E2)); +#620=CARTESIAN_POINT('',(-4.211129736576E1,6.517400626796E1,-1.229651203069E2)); +#621=CARTESIAN_POINT('',(-4.234030041703E1,6.517400618446E1,-1.228278253786E2)); +#622=CARTESIAN_POINT('',(-4.268101849719E1,6.517400656021E1,-1.226172467972E2)); +#623=CARTESIAN_POINT('',(-4.290618461928E1,6.517400564171E1,-1.224737462077E2)); +#624=CARTESIAN_POINT('',(-4.301830183280E1,6.517400564171E1,-1.224012483210E2)); +#626=DIRECTION('',(1.E0,-1.719549285260E-14,-2.456498978943E-14)); +#627=VECTOR('',#626,5.785003306339E0); +#628=CARTESIAN_POINT('',(-4.778132442594E1,6.517400626796E1,-1.297397892668E2)); +#629=LINE('',#628,#627); +#630=DIRECTION('',(2.862558829990E-14,-8.726535498964E-3,9.999619230642E-1)); +#631=VECTOR('',#630,2.631126012207E1); +#632=CARTESIAN_POINT('',(-4.199632111960E1,1.226939752463E2,-1.711803744151E2)); +#633=LINE('',#632,#631); +#634=DIRECTION('',(0.E0,-9.999619230642E-1,-8.726535498537E-3)); +#635=VECTOR('',#634,9.746808038669E1); +#636=CARTESIAN_POINT('',(-4.199632111960E1,1.224643691008E2,-1.448701161452E2)); +#637=LINE('',#636,#635); +#638=DIRECTION('',(-2.702188176462E-14,0.E0,-1.E0)); +#639=VECTOR('',#638,1.472524879990E1); +#640=CARTESIAN_POINT('',(-4.199632111960E1,2.5E1,-1.457206748087E2)); +#641=LINE('',#640,#639); +#642=CARTESIAN_POINT('',(-4.199632111960E1,2.5E1,-1.604459236086E2)); +#643=CARTESIAN_POINT('',(-4.199632111960E1,2.5E1,-1.579586820622E2)); +#644=CARTESIAN_POINT('',(-4.199632111960E1,2.457888242752E1,-1.530117146039E2)); +#645=CARTESIAN_POINT('',(-4.199632111960E1,2.254858661036E1,-1.455057407944E2)); +#646=CARTESIAN_POINT('',(-4.199632111960E1,1.924933502565E1,-1.384180271452E2)); +#647=CARTESIAN_POINT('',(-4.199632111960E1,1.469225539412E1,-1.319460508804E2)); +#648=CARTESIAN_POINT('',(-4.199632111960E1,9.138347231802E0,-1.263420340991E2)); +#649=CARTESIAN_POINT('',(-4.199632111959E1,5.048641661128E0,-1.234410088926E2)); +#650=CARTESIAN_POINT('',(-4.199632111959E1,2.888543819998E0,-1.221699598131E2)); +#652=CARTESIAN_POINT('',(-4.199632111959E1,2.888543819998E0,-1.221699598131E2)); +#653=CARTESIAN_POINT('',(-4.199632111959E1,6.096646440116E-1, +-1.208290171836E2)); +#654=CARTESIAN_POINT('',(-4.199632111960E1,-3.762927346602E0, +-1.181930169604E2)); +#655=CARTESIAN_POINT('',(-4.199632111960E1,-9.589096853872E0, +-1.144418829470E2)); +#656=CARTESIAN_POINT('',(-4.199632111960E1,-1.326578928308E1, +-1.118209151159E2)); +#657=CARTESIAN_POINT('',(-4.199632111960E1,-1.5E1,-1.104643633161E2)); +#659=DIRECTION('',(2.596989846174E-13,0.E0,-1.E0)); +#660=VECTOR('',#659,1.283195402410E1); +#661=CARTESIAN_POINT('',(-4.199632111960E1,3.5E1,-1.104643633161E2)); +#662=LINE('',#661,#660); +#663=DIRECTION('',(0.E0,9.999619230642E-1,8.726535499276E-3)); +#664=VECTOR('',#663,3.017515524541E1); +#665=CARTESIAN_POINT('',(-4.199632111959E1,3.5E1,-1.232963173402E2)); +#666=LINE('',#665,#664); +#667=DIRECTION('',(0.E0,8.726535498604E-3,-9.999619230642E-1)); +#668=VECTOR('',#667,2.596848404780E1); +#669=CARTESIAN_POINT('',(-4.199632111960E1,1.373328999143E2,-1.297397892668E2)); +#670=LINE('',#669,#668); +#671=CARTESIAN_POINT('',(-4.199632111960E1,1.226939752464E2,-1.711803744151E2)); +#672=CARTESIAN_POINT('',(-4.782012498041E1,1.226783073997E2,-1.693850170129E2)); +#673=CARTESIAN_POINT('',(-5.745215699190E1,1.226336291846E2,-1.642654006622E2)); +#674=CARTESIAN_POINT('',(-6.812984843119E1,1.225416532043E2,-1.537259972360E2)); +#675=CARTESIAN_POINT('',(-7.540173823336E1,1.224271318134E2,-1.406031456349E2)); +#676=CARTESIAN_POINT('',(-7.773617171070E1,1.223341456306E2,-1.299479844630E2)); +#677=CARTESIAN_POINT('',(-7.789569528522E1,1.222809819051E2,-1.238560249310E2)); +#679=DIRECTION('',(-2.617595225285E-2,-8.723545360324E-3,9.996192871689E-1)); +#680=VECTOR('',#679,7.028278248809E1); +#681=CARTESIAN_POINT('',(-7.789569528521E1,1.222809819051E2,-1.238560249310E2)); +#682=LINE('',#681,#680); +#683=DIRECTION('',(1.E0,0.E0,0.E0)); +#684=VECTOR('',#683,7.235414043899E0); +#685=CARTESIAN_POINT('',(-7.973541404382E1,1.216678668640E2,-5.36E1)); +#686=LINE('',#685,#684); +#687=CARTESIAN_POINT('',(-6.045398431104E1,1.223157460388E2,-1.278396000900E2)); +#688=CARTESIAN_POINT('',(-6.043169027173E1,1.223190069597E2,-1.282132646086E2)); +#689=CARTESIAN_POINT('',(-6.037131595026E1,1.223277118151E2,-1.292107422374E2)); +#690=CARTESIAN_POINT('',(-6.001348994638E1,1.223774622027E2,-1.349115719944E2)); +#691=CARTESIAN_POINT('',(-5.962022145080E1,1.224237079003E2,-1.402108040614E2)); +#692=CARTESIAN_POINT('',(-5.924594064482E1,1.224643691008E2,-1.448701161452E2)); +#694=CARTESIAN_POINT('',(-5.924589036480E1,4.789835568808E1,-1.455208459175E2)); +#695=CARTESIAN_POINT('',(-5.877750031481E1,4.763379832567E1,-1.455231546746E2)); +#696=CARTESIAN_POINT('',(-5.783175849077E1,4.701594133117E1,-1.455285436565E2)); +#697=CARTESIAN_POINT('',(-5.640869682606E1,4.579259436715E1,-1.455392208392E2)); +#698=CARTESIAN_POINT('',(-5.498908448435E1,4.422287718810E1,-1.455529192332E2)); +#699=CARTESIAN_POINT('',(-5.360208978080E1,4.226015175283E1,-1.455700477644E2)); +#700=CARTESIAN_POINT('',(-5.228487252030E1,3.985594094127E1,-1.455910289713E2)); +#701=CARTESIAN_POINT('',(-5.108971247560E1,3.697839133792E1,-1.456161409724E2)); +#702=CARTESIAN_POINT('',(-5.006883911625E1,3.358768021477E1,-1.456457312584E2)); +#703=CARTESIAN_POINT('',(-4.928247464402E1,2.964510276850E1,-1.456801376110E2)); +#704=CARTESIAN_POINT('',(-4.896127916129E1,2.661427823107E1,-1.457065872160E2)); +#705=CARTESIAN_POINT('',(-4.886584490267E1,2.5E1,-1.457206748087E2)); +#707=DIRECTION('',(-1.E0,1.548811370913E-13,0.E0)); +#708=VECTOR('',#707,1.724961952522E1); +#709=CARTESIAN_POINT('',(-4.199632111960E1,1.224643691008E2,-1.448701161452E2)); +#710=LINE('',#709,#708); +#711=CARTESIAN_POINT('',(-6.331964059014E1,-6.5E1,0.E0)); +#712=DIRECTION('',(-1.E0,0.E0,0.E0)); +#713=DIRECTION('',(0.E0,7.400817165765E-1,-6.725169535329E-1)); +#714=AXIS2_PLACEMENT_3D('',#711,#712,#713); +#716=CARTESIAN_POINT('',(-6.048442515706E1,6.812858474245E1,-1.278065390583E2)); +#717=CARTESIAN_POINT('',(-6.036037993202E1,6.604523991728E1,-1.299316316810E2)); +#718=CARTESIAN_POINT('',(-6.009682344626E1,6.176559765957E1,-1.340812087803E2)); +#719=CARTESIAN_POINT('',(-5.967684899048E1,5.501486148564E1,-1.399943271960E2)); +#720=CARTESIAN_POINT('',(-5.938910531691E1,5.030356434306E1,-1.437168792269E2)); +#721=CARTESIAN_POINT('',(-5.924589036480E1,4.789835568808E1,-1.455208459175E2)); +#723=DIRECTION('',(-6.742764032864E-7,9.999619228262E-1,8.726562740071E-3)); +#724=VECTOR('',#723,7.456885278394E1); +#725=CARTESIAN_POINT('',(-5.924589036480E1,4.789835568808E1,-1.455208459175E2)); +#726=LINE('',#725,#724); +#727=CARTESIAN_POINT('',(-6.045398431104E1,1.223157460388E2,-1.278396000900E2)); +#728=CARTESIAN_POINT('',(-6.046403899768E1,1.042531681433E2,-1.278286930313E2)); +#729=CARTESIAN_POINT('',(-6.047451017527E1,8.619116279354E1,-1.278173155652E2)); +#730=CARTESIAN_POINT('',(-6.048442515706E1,6.812858474245E1,-1.278065390583E2)); +#732=CARTESIAN_POINT('',(-6.045398431104E1,1.223157460389E2,-1.278396000900E2)); +#733=CARTESIAN_POINT('',(-6.446935799380E1,1.222777337977E2,-1.234838286859E2)); +#734=CARTESIAN_POINT('',(-7.027864553629E1,1.221941374506E2,-1.139046361117E2)); +#735=CARTESIAN_POINT('',(-7.249999999992E1,1.220983116029E2,-1.029240815756E2)); +#736=CARTESIAN_POINT('',(-7.249999999992E1,1.220466129262E2,-9.7E1)); +#738=DIRECTION('',(-2.018026748006E-14,-1.E0,1.555357200903E-13)); +#739=VECTOR('',#738,2.887201787087E1); +#740=CARTESIAN_POINT('',(-7.249999999992E1,1.220466129261E2,-9.7E1)); +#741=LINE('',#740,#739); +#742=CARTESIAN_POINT('',(-7.249999999992E1,9.317459505526E1,-9.7E1)); +#743=CARTESIAN_POINT('',(-7.249999999992E1,9.123584866556E1,-1.001614476815E2)); +#744=CARTESIAN_POINT('',(-7.184007843673E1,8.702370923173E1,-1.065236631392E2)); +#745=CARTESIAN_POINT('',(-6.881312085167E1,7.982575020388E1,-1.158300762914E2)); +#746=CARTESIAN_POINT('',(-6.539969951512E1,7.458216861521E1,-1.216503150900E2)); +#747=CARTESIAN_POINT('',(-6.331964059015E1,7.190541391043E1,-1.244068186296E2)); +#749=CARTESIAN_POINT('',(-6.331964059015E1,7.190541391043E1,-1.244068186296E2)); +#750=CARTESIAN_POINT('',(-6.300811589162E1,7.150452372774E1,-1.248196525757E2)); +#751=CARTESIAN_POINT('',(-6.238077145933E1,7.069099834967E1,-1.256217423137E2)); +#752=CARTESIAN_POINT('',(-6.143229845614E1,6.943254292526E1,-1.267551409594E2)); +#753=CARTESIAN_POINT('',(-6.080014200422E1,6.856807927266E1,-1.274633891809E2)); +#754=CARTESIAN_POINT('',(-6.048442515706E1,6.812858474245E1,-1.278065390583E2)); +#756=CARTESIAN_POINT('',(-7.249999999992E1,-6.5E1,0.E0)); +#757=DIRECTION('',(-1.E0,0.E0,0.E0)); +#758=DIRECTION('',(0.E0,9.573672936174E-1,-2.888734413400E-1)); +#759=AXIS2_PLACEMENT_3D('',#756,#757,#758); +#761=DIRECTION('',(0.E0,-8.726535498228E-3,9.999619230642E-1)); +#762=VECTOR('',#761,4.340165260194E1); +#763=CARTESIAN_POINT('',(-7.249999999992E1,1.220466129261E2,-9.7E1)); +#764=LINE('',#763,#762); +#765=CARTESIAN_POINT('',(-7.973541387423E1,1.460845364280E2,-5.359999999099E1)); +#766=CARTESIAN_POINT('',(-8.037268056666E1,1.466687434432E2,-5.359999999099E1)); +#767=CARTESIAN_POINT('',(-8.161228467235E1,1.478696431335E2,-5.360000091627E1)); +#768=CARTESIAN_POINT('',(-8.337185355462E1,1.497726881102E2,-5.359999680658E1)); +#769=CARTESIAN_POINT('',(-8.446936696799E1,1.510996938937E2,-5.360000684048E1)); +#770=CARTESIAN_POINT('',(-8.499990594336E1,1.517790122859E2,-5.360000684048E1)); +#772=DIRECTION('',(6.452387961345E-14,1.E0,-2.313417147116E-13)); +#773=VECTOR('',#772,9.029913371822E0); +#774=CARTESIAN_POINT('',(-7.249999999992E1,1.126379534922E2,-5.36E1)); +#775=LINE('',#774,#773); +#776=DIRECTION('',(-6.945575467411E-9,-1.E0,-3.690288864913E-10)); +#777=VECTOR('',#776,2.441666956397E1); +#778=CARTESIAN_POINT('',(-7.973541387423E1,1.460845364280E2,-5.359999999099E1)); +#779=LINE('',#778,#777); +#780=CARTESIAN_POINT('',(-1.699632111960E1,1.38E2,-1.724483496347E2)); +#781=CARTESIAN_POINT('',(-1.644551516538E1,1.38E2,-1.723380233333E2)); +#782=CARTESIAN_POINT('',(-1.540758151261E1,1.378285333254E2,-1.721117665256E2)); +#783=CARTESIAN_POINT('',(-1.396863711595E1,1.370843861294E2,-1.717512688201E2)); +#784=CARTESIAN_POINT('',(-1.285899327592E1,1.359550186918E2,-1.714409992770E2)); +#785=CARTESIAN_POINT('',(-1.214654335754E1,1.345106915149E2,-1.712271730378E2)); +#786=CARTESIAN_POINT('',(-1.199632111960E1,1.335184868405E2,-1.711803744151E2)); +#787=CARTESIAN_POINT('',(-1.199632111960E1,1.33E2,-1.711803744151E2)); +#789=DIRECTION('',(0.E0,-1.E0,1.930443316098E-14)); +#790=VECTOR('',#789,1.030602475368E1); +#791=CARTESIAN_POINT('',(-1.199632111960E1,1.33E2,-1.711803744151E2)); +#792=LINE('',#791,#790); +#793=DIRECTION('',(-9.982565870483E-8,1.E0,5.312879636458E-9)); +#794=VECTOR('',#793,2.553908398942E1); +#795=CARTESIAN_POINT('',(2.390305304602E1,1.222809819051E2,-1.238560249310E2)); +#796=LINE('',#795,#794); +#797=CARTESIAN_POINT('',(2.390305049656E1,1.478200658945E2,-1.238560247953E2)); +#798=CARTESIAN_POINT('',(2.383974958419E1,1.478797836573E2,-1.262733891110E2)); +#799=CARTESIAN_POINT('',(2.335855128868E1,1.476751904838E2,-1.311996578661E2)); +#800=CARTESIAN_POINT('',(2.155197526198E1,1.464480618530E2,-1.385210975030E2)); +#801=CARTESIAN_POINT('',(1.944780356108E1,1.450776661018E2,-1.435822317286E2)); +#802=CARTESIAN_POINT('',(1.813820889572E1,1.443061931079E2,-1.460902994783E2)); +#804=CARTESIAN_POINT('',(-2.699648657210E1,1.406755739535E2,-1.734399999984E2)); +#805=CARTESIAN_POINT('',(-3.024015327260E1,1.406755608421E2,-1.734399894582E2)); +#806=CARTESIAN_POINT('',(-3.663011985375E1,1.404970542875E2,-1.728182004881E2)); +#807=CARTESIAN_POINT('',(-4.557808958724E1,1.400849959267E2,-1.702201794109E2)); +#808=CARTESIAN_POINT('',(-5.371429053341E1,1.399633240382E2,-1.661874297575E2)); +#809=CARTESIAN_POINT('',(-6.113090163990E1,1.405527016116E2,-1.606733296366E2)); +#810=CARTESIAN_POINT('',(-6.734907919112E1,1.420680316530E2,-1.540173468944E2)); +#811=CARTESIAN_POINT('',(-7.069469368870E1,1.435410729343E2,-1.488407571235E2)); +#812=CARTESIAN_POINT('',(-7.213086778258E1,1.443062021939E2,-1.460902661105E2)); +#814=DIRECTION('',(-1.252570227427E-7,-1.E0,-6.665745699792E-9)); +#815=VECTOR('',#814,2.553908470022E1); +#816=CARTESIAN_POINT('',(-7.789569208626E1,1.478200666053E2,-1.238560247607E2)); +#817=LINE('',#816,#815); +#818=DIRECTION('',(0.E0,1.E0,-1.930443316099E-14)); +#819=VECTOR('',#818,1.030602475368E1); +#820=CARTESIAN_POINT('',(-4.199632111960E1,1.226939752463E2,-1.711803744151E2)); +#821=LINE('',#820,#819); +#822=CARTESIAN_POINT('',(-4.199632111960E1,1.33E2,-1.711803744151E2)); +#823=CARTESIAN_POINT('',(-4.199632111960E1,1.335245996119E2,-1.711803744151E2)); +#824=CARTESIAN_POINT('',(-4.184155637109E1,1.345242104047E2,-1.712285729066E2)); +#825=CARTESIAN_POINT('',(-4.113168492296E1,1.359548570775E2,-1.714415130539E2)); +#826=CARTESIAN_POINT('',(-4.003278579672E1,1.370768521353E2,-1.717488541889E2)); +#827=CARTESIAN_POINT('',(-3.859768335367E1,1.378248329110E2,-1.721088450486E2)); +#828=CARTESIAN_POINT('',(-3.755271294907E1,1.38E2,-1.723369044838E2)); +#829=CARTESIAN_POINT('',(-3.699632111960E1,1.38E2,-1.724483496347E2)); +#831=CARTESIAN_POINT('',(-2.699632111960E1,1.38E2,-1.225231779111E2)); +#832=DIRECTION('',(0.E0,-1.E0,0.E0)); +#833=DIRECTION('',(-2.745983703794E-1,0.E0,-9.615590127418E-1)); +#834=AXIS2_PLACEMENT_3D('',#831,#832,#833); +#836=CARTESIAN_POINT('',(-2.699632111960E1,1.38E2,-1.225231779111E2)); +#837=DIRECTION('',(0.E0,1.E0,0.E0)); +#838=DIRECTION('',(1.963987458319E-1,0.E0,-9.805241111955E-1)); +#839=AXIS2_PLACEMENT_3D('',#836,#837,#838); +#841=DIRECTION('',(6.474888104733E-14,0.E0,1.E0)); +#842=VECTOR('',#841,1.547308990080E1); +#843=CARTESIAN_POINT('',(-4.199632111960E1,1.33E2,-1.711803744151E2)); +#844=LINE('',#843,#842); +#845=DIRECTION('',(-1.358339870562E-13,0.E0,-1.E0)); +#846=VECTOR('',#845,1.490824822861E1); +#847=CARTESIAN_POINT('',(-3.699632111960E1,1.38E2,-1.575401014061E2)); +#848=LINE('',#847,#846); +#849=CARTESIAN_POINT('',(9.408021833869E0,1.372782406607E2,-1.234764591805E2)); +#850=CARTESIAN_POINT('',(9.241945002974E0,1.373335883613E2,-1.298186774771E2)); +#851=CARTESIAN_POINT('',(5.877295866943E0,1.374295584722E2,-1.408157629401E2)); +#852=CARTESIAN_POINT('',(-1.694215409811E0,1.375051007650E2,-1.494720523006E2)); +#853=CARTESIAN_POINT('',(-6.996321119625E0,1.375355087694E2,-1.529564644746E2)); +#855=CARTESIAN_POINT('',(-6.996321119606E0,1.375355087694E2,-1.529564644746E2)); +#856=CARTESIAN_POINT('',(-7.557439739748E0,1.375387268300E2,-1.533252176942E2)); +#857=CARTESIAN_POINT('',(-8.609933248125E0,1.373583440008E2,-1.539726106702E2)); +#858=CARTESIAN_POINT('',(-9.944386704966E0,1.366788081290E2,-1.547108027254E2)); +#859=CARTESIAN_POINT('',(-1.102965628036E1,1.356399883606E2,-1.552583173482E2)); +#860=CARTESIAN_POINT('',(-1.173823920332E1,1.343256822700E2,-1.555905726981E2)); +#861=CARTESIAN_POINT('',(-1.195072715201E1,1.334515831223E2,-1.556871967568E2)); +#862=CARTESIAN_POINT('',(-1.199058065951E1,1.329994625013E2,-1.557052167791E2)); +#864=CARTESIAN_POINT('',(-1.199058065951E1,1.329994625013E2,-1.557052167791E2)); +#865=CARTESIAN_POINT('',(-1.199058065951E1,1.335038781683E2,-1.557052167791E2)); +#866=CARTESIAN_POINT('',(-1.214002773931E1,1.344745953981E2,-1.557727698537E2)); +#867=CARTESIAN_POINT('',(-1.283111998087E1,1.359131085699E2,-1.560766727203E2)); +#868=CARTESIAN_POINT('',(-1.391232177821E1,1.370406138417E2,-1.565175722169E2)); +#869=CARTESIAN_POINT('',(-1.534949738575E1,1.378124879640E2,-1.570400025551E2)); +#870=CARTESIAN_POINT('',(-1.642075995854E1,1.38E2,-1.573757348360E2)); +#871=CARTESIAN_POINT('',(-1.699632111960E1,1.38E2,-1.575401014061E2)); +#873=CARTESIAN_POINT('',(-3.699632111960E1,1.38E2,-1.575401014061E2)); +#874=CARTESIAN_POINT('',(-3.755248950252E1,1.38E2,-1.573812729519E2)); +#875=CARTESIAN_POINT('',(-3.859915760932E1,1.378265720591E2,-1.570547773539E2)); +#876=CARTESIAN_POINT('',(-4.005868392983E1,1.370606722448E2,-1.565263436086E2)); +#877=CARTESIAN_POINT('',(-4.116146558925E1,1.359172061324E2,-1.560767789468E2)); +#878=CARTESIAN_POINT('',(-4.186084722187E1,1.344579376342E2,-1.557692970565E2)); +#879=CARTESIAN_POINT('',(-4.199632111960E1,1.334964431798E2,-1.557072845143E2)); +#880=CARTESIAN_POINT('',(-4.199632111960E1,1.33E2,-1.557072845143E2)); +#882=DIRECTION('',(0.E0,1.E0,0.E0)); +#883=VECTOR('',#882,4.559514812202E0); +#884=CARTESIAN_POINT('',(-4.199632111960E1,1.33E2,-1.557072845143E2)); +#885=LINE('',#884,#883); +#886=CARTESIAN_POINT('',(-4.199632111960E1,1.375595148122E2,-1.557072845143E2)); +#887=CARTESIAN_POINT('',(-4.546414756111E1,1.375458351026E2,-1.541397450520E2)); +#888=CARTESIAN_POINT('',(-5.127772955619E1,1.375119731074E2,-1.502595447414E2)); +#889=CARTESIAN_POINT('',(-5.768507715225E1,1.374477757718E2,-1.429032587084E2)); +#890=CARTESIAN_POINT('',(-6.197983948137E1,1.373713356750E2,-1.341440912006E2)); +#891=CARTESIAN_POINT('',(-6.330104681957E1,1.373114396680E2,-1.272806886107E2)); +#892=CARTESIAN_POINT('',(-6.340066407307E1,1.372782406607E2,-1.234764591805E2)); +#894=DIRECTION('',(-1.330699059346E-4,9.999999911415E-1,-3.078530512375E-6)); +#895=VECTOR('',#894,1.121016633147E1); +#896=CARTESIAN_POINT('',(-6.340066407323E1,1.372782406607E2,-1.234764591741E2)); +#897=LINE('',#896,#895); +#898=CARTESIAN_POINT('',(-6.340215580901E1,1.484884068928E2,-1.234764936849E2)); +#899=CARTESIAN_POINT('',(-6.332629722805E1,1.485855920430E2,-1.263714154932E2)); +#900=CARTESIAN_POINT('',(-6.246965901999E1,1.478960937027E2,-1.321639271933E2)); +#901=CARTESIAN_POINT('',(-6.031508364938E1,1.459780120661E2,-1.374981287713E2)); +#902=CARTESIAN_POINT('',(-5.894111472589E1,1.449352207877E2,-1.400080645567E2)); +#904=CARTESIAN_POINT('',(-5.894111472589E1,1.449352207877E2,-1.400080645567E2)); +#905=CARTESIAN_POINT('',(-5.743205706937E1,1.438917302444E2,-1.427651322065E2)); +#906=CARTESIAN_POINT('',(-5.457529900474E1,1.424285297655E2,-1.467041573805E2)); +#907=CARTESIAN_POINT('',(-4.965283161486E1,1.413182603949E2,-1.511806677727E2)); +#908=CARTESIAN_POINT('',(-4.551104317724E1,1.409625836960E2,-1.540146694199E2)); +#909=CARTESIAN_POINT('',(-4.107025712453E1,1.410025918897E2,-1.562302057163E2)); +#910=CARTESIAN_POINT('',(-3.491449093952E1,1.413174523267E2,-1.583249596494E2)); +#911=CARTESIAN_POINT('',(-3.014892785477E1,1.415602476752E2,-1.589399965321E2)); +#912=CARTESIAN_POINT('',(-2.699627936903E1,1.415604579995E2,-1.5894E2)); +#914=CARTESIAN_POINT('',(-2.699627936903E1,1.415604579995E2,-1.5894E2)); +#915=CARTESIAN_POINT('',(-2.384371294473E1,1.415602422629E2,-1.589399932701E2)); +#916=CARTESIAN_POINT('',(-1.907900346835E1,1.413174987E2,-1.583250757778E2)); +#917=CARTESIAN_POINT('',(-1.292368323238E1,1.410026397832E2,-1.562307425516E2)); +#918=CARTESIAN_POINT('',(-8.482760834628E0,1.409625182220E2,-1.540153589608E2)); +#919=CARTESIAN_POINT('',(-4.340926466090E0,1.413180905722E2,-1.511815431232E2)); +#920=CARTESIAN_POINT('',(5.819494524103E-1,1.424281832047E2,-1.467050637635E2)); +#921=CARTESIAN_POINT('',(3.439037076696E0,1.438915617618E2,-1.427655724549E2)); +#922=CARTESIAN_POINT('',(4.948232304896E0,1.449351040041E2,-1.400083280285E2)); +#924=CARTESIAN_POINT('',(4.948232304896E0,1.449351040041E2,-1.400083280285E2)); +#925=CARTESIAN_POINT('',(6.322254438427E0,1.459774942275E2,-1.374980327002E2)); +#926=CARTESIAN_POINT('',(8.476452896290E0,1.478967402502E2,-1.321645136490E2)); +#927=CARTESIAN_POINT('',(9.333615657379E0,1.485856561657E2,-1.263741804295E2)); +#928=CARTESIAN_POINT('',(9.409513447820E0,1.484884070160E2,-1.234764979477E2)); +#930=DIRECTION('',(-1.330590365478E-4,-9.999999911417E-1,3.458221790077E-6)); +#931=VECTOR('',#930,1.121016645462E1); +#932=CARTESIAN_POINT('',(9.409513447820E0,1.484884070160E2,-1.234764979477E2)); +#933=LINE('',#932,#931); +#934=DIRECTION('',(-9.999976610138E-1,-4.133976246182E-5,-2.162465696887E-3)); +#935=VECTOR('',#934,9.078401622734E0); +#936=CARTESIAN_POINT('',(1.157856131818E1,1.365554310026E2,-4.056946047982E1)); +#937=LINE('',#936,#935); +#938=CARTESIAN_POINT('',(-2.699973104533E1,1.370471928183E2,-9.700099879006E1)); +#939=DIRECTION('',(2.508301967800E-12,9.999619230642E-1,8.726535497571E-3)); +#940=DIRECTION('',(9.999999994823E-1,-2.808049947426E-7,3.217677781140E-5)); +#941=AXIS2_PLACEMENT_3D('',#938,#939,#940); +#943=DIRECTION('',(-1.E0,0.E0,0.E0)); +#944=VECTOR('',#943,9.078903878814E0); +#945=CARTESIAN_POINT('',(1.357890387889E1,1.345549126017E2,-3.86E1)); +#946=LINE('',#945,#944); +#947=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-3.86E1)); +#948=DIRECTION('',(0.E0,0.E0,1.E0)); +#949=DIRECTION('',(5.880963505364E-1,-8.087908768562E-1,0.E0)); +#950=AXIS2_PLACEMENT_3D('',#947,#948,#949); +#952=CARTESIAN_POINT('',(9.E1,2.85E2,-3.86E1)); +#953=DIRECTION('',(0.E0,0.E0,-1.E0)); +#954=DIRECTION('',(-2.925023352418E-8,1.E0,0.E0)); +#955=AXIS2_PLACEMENT_3D('',#952,#953,#954); +#957=CARTESIAN_POINT('',(6.E1,1.4519E2,-3.86E1)); +#958=DIRECTION('',(0.E0,0.E0,1.E0)); +#959=DIRECTION('',(0.E0,1.E0,0.E0)); +#960=AXIS2_PLACEMENT_3D('',#957,#958,#959); +#962=CARTESIAN_POINT('',(6.E1,1.4519E2,-3.86E1)); +#963=DIRECTION('',(0.E0,0.E0,1.E0)); +#964=DIRECTION('',(0.E0,-1.E0,0.E0)); +#965=AXIS2_PLACEMENT_3D('',#962,#963,#964); +#967=CARTESIAN_POINT('',(2.500180929700E0,1.365550557037E2,-4.058909221191E1)); +#968=CARTESIAN_POINT('',(2.500640049058E0,1.365527601282E2,-4.037864461773E1)); +#969=CARTESIAN_POINT('',(2.568658427489E0,1.364864656818E2,-3.997156467308E1)); +#970=CARTESIAN_POINT('',(2.847428250725E0,1.362079345047E2,-3.941913588411E1)); +#971=CARTESIAN_POINT('',(3.277130331167E0,1.357776492265E2,-3.897660870357E1)); +#972=CARTESIAN_POINT('',(3.844532785512E0,1.352103000134E2,-3.867406755020E1)); +#973=CARTESIAN_POINT('',(4.275105861371E0,1.347798067404E2,-3.86E1)); +#974=CARTESIAN_POINT('',(4.500000000076E0,1.345549126017E2,-3.86E1)); +#976=DIRECTION('',(-1.034257620380E-13,-1.E0,-2.287300506610E-14)); +#977=VECTOR('',#976,4.286926761548E1); +#978=CARTESIAN_POINT('',(4.500000000076E0,1.345549126017E2,-3.86E1)); +#979=LINE('',#978,#977); +#980=CARTESIAN_POINT('',(2.500001586577E0,9.124474384559E1,-4.059854558165E1)); +#981=CARTESIAN_POINT('',(2.500616721298E0,9.130877199153E1,-4.031658486743E1)); +#982=CARTESIAN_POINT('',(2.610062359737E0,9.142377178499E1,-3.980369906564E1)); +#983=CARTESIAN_POINT('',(3.064323952437E0,9.157132903915E1,-3.913117200873E1)); +#984=CARTESIAN_POINT('',(3.739127201691E0,9.166467706470E1,-3.869811354107E1)); +#985=CARTESIAN_POINT('',(4.233277271550E0,9.168564498622E1,-3.86E1)); +#986=CARTESIAN_POINT('',(4.500000000072E0,9.168564498622E1,-3.86E1)); +#988=DIRECTION('',(1.E0,2.334132886969E-11,8.565000560632E-11)); +#989=VECTOR('',#988,7.200000000008E0); +#990=CARTESIAN_POINT('',(4.500000000072E0,9.168564498622E1,-3.86E1)); +#991=LINE('',#990,#989); +#992=DIRECTION('',(-1.E0,4.983221564858E-11,8.859541120052E-11)); +#993=VECTOR('',#992,9.200000000004E0); +#994=CARTESIAN_POINT('',(1.170000000008E1,6.888722174432E1,-9.380000000072E1)); +#995=LINE('',#994,#993); +#996=CARTESIAN_POINT('',(1.170000000008E1,-8.000179578406E1,1.429144561350E-3)); +#997=DIRECTION('',(-1.E0,0.E0,0.E0)); +#998=DIRECTION('',(0.E0,9.756441181107E-1,-2.193594192099E-1)); +#999=AXIS2_PLACEMENT_3D('',#996,#997,#998); +#1001=CARTESIAN_POINT('',(1.170000000008E1,-7.078058083514E1, +-3.807070152652E0)); +#1002=DIRECTION('',(1.E0,0.E0,0.E0)); +#1003=DIRECTION('',(0.E0,8.406127148873E-1,-5.416366527200E-1)); +#1004=AXIS2_PLACEMENT_3D('',#1001,#1002,#1003); +#1006=DIRECTION('',(-9.999999999664E-1,7.158120759143E-8,-8.201984189294E-6)); +#1007=VECTOR('',#1006,6.806883977354E0); +#1008=CARTESIAN_POINT('',(8.583286718484E0,6.184132964200E1,-1.041483448332E2)); +#1009=LINE('',#1008,#1007); +#1010=CARTESIAN_POINT('',(1.776402741359E0,6.184133012924E1,-1.041484006631E2)); +#1011=CARTESIAN_POINT('',(1.940002512139E0,6.237733955134E1,-1.034184014631E2)); +#1012=CARTESIAN_POINT('',(2.208587211095E0,6.343061216482E1,-1.019602203443E2)); +#1013=CARTESIAN_POINT('',(2.447544414835E0,6.495431191607E1,-9.978181521391E1)); +#1014=CARTESIAN_POINT('',(2.499983164392E0,6.593305346548E1,-9.833685014424E1)); +#1015=CARTESIAN_POINT('',(2.499958914005E0,6.641338366177E1,-9.761641183937E1)); +#1017=DIRECTION('',(1.E0,-2.114738956180E-12,-7.391009239880E-12)); +#1018=VECTOR('',#1017,8.329999999992E1); +#1019=CARTESIAN_POINT('',(1.170000000008E1,9.168564498639E1,-3.859999999938E1)); +#1020=LINE('',#1019,#1018); +#1021=DIRECTION('',(-9.999999481177E-1,-2.704259810779E-4,-1.750266379623E-4)); +#1022=VECTOR('',#1021,8.641671776501E1); +#1023=CARTESIAN_POINT('',(9.5E1,9.999999999999E0,-1.512190265727E2)); +#1024=LINE('',#1023,#1022); +#1025=CARTESIAN_POINT('',(8.583286718484E0,-8.000179578406E1, +1.429144561350E-3)); +#1026=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1027=DIRECTION('',(0.E0,8.060485402719E-1,-5.918494324788E-1)); +#1028=AXIS2_PLACEMENT_3D('',#1025,#1026,#1027); +#1030=CARTESIAN_POINT('',(8.583286718484E0,9.976630674315E0,-1.512341518003E2)); +#1031=CARTESIAN_POINT('',(8.583286718484E0,9.976630674315E0,-1.576059612453E2)); +#1032=CARTESIAN_POINT('',(8.583286718484E0,1.E1,-1.639764936790E2)); +#1033=CARTESIAN_POINT('',(8.583286718484E0,1.E1,-1.703483031240E2)); +#1035=CARTESIAN_POINT('',(8.583286718484E0,-2.E1,-1.703483031240E2)); +#1036=DIRECTION('',(1.E0,0.E0,0.E0)); +#1037=DIRECTION('',(0.E0,1.E0,0.E0)); +#1038=AXIS2_PLACEMENT_3D('',#1035,#1036,#1037); +#1040=CARTESIAN_POINT('',(8.583286718470E0,-8.000179578406E1, +1.429144561350E-3)); +#1041=DIRECTION('',(1.E0,0.E0,0.E0)); +#1042=DIRECTION('',(0.E0,4.689778814429E-1,-8.832099109030E-1)); +#1043=AXIS2_PLACEMENT_3D('',#1040,#1041,#1042); +#1045=CARTESIAN_POINT('',(-6.331964059014E1,9.999999999991E0, +-1.691010020063E2)); +#1046=CARTESIAN_POINT('',(-6.207135086049E1,9.999999999991E0, +-1.690174808986E2)); +#1047=CARTESIAN_POINT('',(-5.965489067566E1,1.E1,-1.685370766434E2)); +#1048=CARTESIAN_POINT('',(-5.613681744027E1,9.999999999999E0, +-1.668148426440E2)); +#1049=CARTESIAN_POINT('',(-5.313079196305E1,1.E1,-1.642120330330E2)); +#1050=CARTESIAN_POINT('',(-5.073759260607E1,1.E1,-1.607777876092E2)); +#1051=CARTESIAN_POINT('',(-4.921121845284E1,1.E1,-1.568368199394E2)); +#1052=CARTESIAN_POINT('',(-4.878513215821E1,1.E1,-1.538330823190E2)); +#1053=CARTESIAN_POINT('',(-4.876712271256E1,1.E1,-1.522394128795E2)); +#1055=DIRECTION('',(-1.E0,0.E0,-7.456368061412E-14)); +#1056=VECTOR('',#1055,5.755721939480E1); +#1057=CARTESIAN_POINT('',(8.583286718484E0,1.E1,-1.703483031240E2)); +#1058=LINE('',#1057,#1056); +#1059=DIRECTION('',(1.E0,2.935450876845E-10,-1.277827774781E-10)); +#1060=VECTOR('',#1059,5.626188414445E1); +#1061=CARTESIAN_POINT('',(-4.857432525506E1,-7.239165821842E0, +-1.431975920643E2)); +#1062=LINE('',#1061,#1060); +#1063=CARTESIAN_POINT('',(-4.897393267632E1,1.E1,-1.703483031240E2)); +#1064=CARTESIAN_POINT('',(-4.895078602071E1,1.E1,-1.683407063491E2)); +#1065=CARTESIAN_POINT('',(-4.890459085322E1,1.E1,-1.643225115299E2)); +#1066=CARTESIAN_POINT('',(-4.883563197943E1,1.E1,-1.582862150627E2)); +#1067=CARTESIAN_POINT('',(-4.878991154883E1,1.E1,-1.542560142029E2)); +#1068=CARTESIAN_POINT('',(-4.876712271256E1,1.E1,-1.522394128795E2)); +#1070=CARTESIAN_POINT('',(-4.876712470387E1,5.417504448760E0, +-1.544124797183E2)); +#1071=CARTESIAN_POINT('',(-4.879065145501E1,6.418272097743E0, +-1.560086957017E2)); +#1072=CARTESIAN_POINT('',(-4.883815237304E1,8.111978569683E0, +-1.593802239260E2)); +#1073=CARTESIAN_POINT('',(-4.890820698957E1,9.657129809739E0, +-1.647891066140E2)); +#1074=CARTESIAN_POINT('',(-4.895261342541E1,1.E1,-1.684992040537E2)); +#1075=CARTESIAN_POINT('',(-4.897393267632E1,1.E1,-1.703483031240E2)); +#1077=CARTESIAN_POINT('',(-4.876712271256E1,-6.5E1,0.E0)); +#1078=DIRECTION('',(1.E0,0.E0,0.E0)); +#1079=DIRECTION('',(0.E0,4.149258783681E-1,-9.098552167573E-1)); +#1080=AXIS2_PLACEMENT_3D('',#1077,#1078,#1079); +#1082=CARTESIAN_POINT('',(-6.331964059014E1,-6.5E1,0.E0)); +#1083=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1084=DIRECTION('',(0.E0,4.054341399496E-1,-9.141242575073E-1)); +#1085=AXIS2_PLACEMENT_3D('',#1082,#1083,#1084); +#1087=CARTESIAN_POINT('',(-6.331964059014E1,-6.5E1,0.E0)); +#1088=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1089=DIRECTION('',(0.E0,5.583341522870E-3,-9.999844130272E-1)); +#1090=AXIS2_PLACEMENT_3D('',#1087,#1088,#1089); +#1092=CARTESIAN_POINT('',(-6.331964059014E1,-6.5E1,0.E0)); +#1093=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1094=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1095=AXIS2_PLACEMENT_3D('',#1092,#1093,#1094); +#1097=CARTESIAN_POINT('',(-4.876712271256E1,-6.5E1,0.E0)); +#1098=DIRECTION('',(1.E0,0.E0,0.E0)); +#1099=DIRECTION('',(0.E0,-6.248571408615E-1,-7.807391072019E-1)); +#1100=AXIS2_PLACEMENT_3D('',#1097,#1098,#1099); +#1102=CARTESIAN_POINT('',(-4.876712271256E1,-6.5E1,0.E0)); +#1103=DIRECTION('',(1.E0,0.E0,0.E0)); +#1104=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1105=AXIS2_PLACEMENT_3D('',#1102,#1103,#1104); +#1107=CARTESIAN_POINT('',(-4.876712271256E1,-6.5E1,0.E0)); +#1108=DIRECTION('',(1.E0,0.E0,0.E0)); +#1109=DIRECTION('',(0.E0,5.583341522870E-3,-9.999844130272E-1)); +#1110=AXIS2_PLACEMENT_3D('',#1107,#1108,#1109); +#1112=CARTESIAN_POINT('',(-6.331964059014E1,9.999999999991E0, +-1.691010020063E2)); +#1113=CARTESIAN_POINT('',(-6.572884145938E1,9.999999999991E0, +-1.692621978573E2)); +#1114=CARTESIAN_POINT('',(-7.054706514069E1,1.E1,-1.695844528908E2)); +#1115=CARTESIAN_POINT('',(-7.777385164136E1,1.E1,-1.700676475192E2)); +#1116=CARTESIAN_POINT('',(-8.259134329440E1,9.999999999995E0, +-1.703896517312E2)); +#1117=CARTESIAN_POINT('',(-8.5E1,9.999999999995E0,-1.705505868161E2)); +#1119=CARTESIAN_POINT('',(-8.5E1,-1.8E2,-1.465861612271E2)); +#1120=CARTESIAN_POINT('',(-8.259193082400E1,-1.8E2,-1.463989615774E2)); +#1121=CARTESIAN_POINT('',(-7.777525173081E1,-1.8E2,-1.460238249560E2)); +#1122=CARTESIAN_POINT('',(-7.054846530357E1,-1.8E2,-1.454607790773E2)); +#1123=CARTESIAN_POINT('',(-6.572942856993E1,-1.8E2,-1.450851968057E2)); +#1124=CARTESIAN_POINT('',(-6.331964059014E1,-1.8E2,-1.448970285393E2)); +#1126=DIRECTION('',(4.676206388197E-14,2.672378885130E-13,-1.E0)); +#1127=VECTOR('',#1126,1.944941318391E1); +#1128=CARTESIAN_POINT('',(-8.5E1,9.999999999995E0,-1.705505868161E2)); +#1129=LINE('',#1128,#1127); +#1130=CARTESIAN_POINT('',(-8.5E1,-6.5E1,0.E0)); +#1131=DIRECTION('',(1.E0,0.E0,0.E0)); +#1132=DIRECTION('',(0.E0,-6.172411579263E-1,-7.867740164506E-1)); +#1133=AXIS2_PLACEMENT_3D('',#1130,#1131,#1132); +#1135=CARTESIAN_POINT('',(-8.5E1,-6.5E1,0.E0)); +#1136=DIRECTION('',(1.E0,0.E0,0.E0)); +#1137=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1138=AXIS2_PLACEMENT_3D('',#1135,#1136,#1137); +#1140=DIRECTION('',(0.E0,0.E0,1.E0)); +#1141=VECTOR('',#1140,5.75E1); +#1142=CARTESIAN_POINT('',(8.583286718484E0,-1.8E2,-1.9E2)); +#1143=LINE('',#1142,#1141); +#1144=DIRECTION('',(-1.E0,1.893860808289E-14,2.136663476018E-14)); +#1145=VECTOR('',#1144,5.852841259159E1); +#1146=CARTESIAN_POINT('',(8.583286718484E0,-1.8E2,-1.325E2)); +#1147=LINE('',#1146,#1145); +#1148=CARTESIAN_POINT('',(-4.994512587310E1,-1.8E2,-1.325E2)); +#1149=CARTESIAN_POINT('',(-5.041840094900E1,-1.8E2,-1.340133798951E2)); +#1150=CARTESIAN_POINT('',(-5.160484292524E1,-1.8E2,-1.367725644779E2)); +#1151=CARTESIAN_POINT('',(-5.399364990256E1,-1.8E2,-1.401662359611E2)); +#1152=CARTESIAN_POINT('',(-5.692787096121E1,-1.8E2,-1.427671481579E2)); +#1153=CARTESIAN_POINT('',(-6.016878126423E1,-1.8E2,-1.443871055251E2)); +#1154=CARTESIAN_POINT('',(-6.226647232707E1,-1.8E2,-1.448147919077E2)); +#1155=CARTESIAN_POINT('',(-6.331964059014E1,-1.8E2,-1.448970285393E2)); +#1157=DIRECTION('',(2.094941906729E-14,5.302821701409E-14,-1.E0)); +#1158=VECTOR('',#1157,4.341383877287E1); +#1159=CARTESIAN_POINT('',(-8.5E1,-1.8E2,-1.465861612271E2)); +#1160=LINE('',#1159,#1158); +#1161=CARTESIAN_POINT('',(8.583286718484E0,-8.000179578406E1, +1.429144561350E-3)); +#1162=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1163=DIRECTION('',(0.E0,-6.534975478278E-1,-7.569286326881E-1)); +#1164=AXIS2_PLACEMENT_3D('',#1161,#1162,#1163); +#1166=CARTESIAN_POINT('',(8.583286718484E0,-2.488987944182E2,-6.5E1)); +#1167=DIRECTION('',(1.E0,0.E0,0.E0)); +#1168=DIRECTION('',(0.E0,9.332695951335E-1,3.591766456765E-1)); +#1169=AXIS2_PLACEMENT_3D('',#1166,#1167,#1168); +#1171=CARTESIAN_POINT('',(8.583286718470E0,-8.000179578406E1, +1.429144561350E-3)); +#1172=DIRECTION('',(1.E0,0.E0,0.E0)); +#1173=DIRECTION('',(0.E0,-9.317991982900E-1,-3.629741782361E-1)); +#1174=AXIS2_PLACEMENT_3D('',#1171,#1172,#1173); +#1176=DIRECTION('',(0.E0,-1.E0,0.E0)); +#1177=VECTOR('',#1176,1.5E1); +#1178=CARTESIAN_POINT('',(8.583286718484E0,-1.8E2,-1.9E2)); +#1179=LINE('',#1178,#1177); +#1180=DIRECTION('',(0.E0,4.953600519527E-14,1.E0)); +#1181=VECTOR('',#1180,5.680210227931E1); +#1182=CARTESIAN_POINT('',(8.583286718484E0,-1.95E2,-1.9E2)); +#1183=LINE('',#1182,#1181); +#1184=CARTESIAN_POINT('',(5.500000000077E0,-2.165999092251E2,-6.E1)); +#1185=CARTESIAN_POINT('',(5.839519193223E0,-2.185374406211E2,-6.E1)); +#1186=CARTESIAN_POINT('',(6.521055817371E0,-2.224120629913E2,-6.E1)); +#1187=CARTESIAN_POINT('',(7.548638431441E0,-2.282230680479E2,-6.E1)); +#1188=CARTESIAN_POINT('',(8.237931846756E0,-2.320963178863E2,-6.E1)); +#1189=CARTESIAN_POINT('',(8.583286718479E0,-2.340328176184E2,-6.E1)); +#1191=DIRECTION('',(3.173692404455E-13,-1.E0,2.103049183675E-14)); +#1192=VECTOR('',#1191,1.486597679984E1); +#1193=CARTESIAN_POINT('',(8.583286718479E0,-2.340328176184E2,-6.E1)); +#1194=LINE('',#1193,#1192); +#1195=CARTESIAN_POINT('',(8.E1,-2.45E2,-6.E1)); +#1196=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1197=DIRECTION('',(9.656193945036E-1,-2.599599679924E-1,0.E0)); +#1198=AXIS2_PLACEMENT_3D('',#1195,#1196,#1197); +#1200=DIRECTION('',(2.130395854938E-14,1.E0,0.E0)); +#1201=VECTOR('',#1200,4.340009077489E1); +#1202=CARTESIAN_POINT('',(5.500000000076E0,-2.6E2,-6.E1)); +#1203=LINE('',#1202,#1201); +#1204=CARTESIAN_POINT('',(7.076698078222E0,-2.1E2,-8.88E1)); +#1205=CARTESIAN_POINT('',(7.133975564553E0,-2.1E2,-8.933056015541E1)); +#1206=CARTESIAN_POINT('',(7.221492184735E0,-2.098288183036E2, +-9.038508965698E1)); +#1207=CARTESIAN_POINT('',(7.263424473637E0,-2.091115504481E2, +-9.178598790960E1)); +#1208=CARTESIAN_POINT('',(7.214975802593E0,-2.079949199792E2, +-9.290530044844E1)); +#1209=CARTESIAN_POINT('',(7.079820724947E0,-2.065919870677E2, +-9.362716238672E1)); +#1210=CARTESIAN_POINT('',(6.938029935871E0,-2.055327335634E2, +-9.380008759286E1)); +#1211=CARTESIAN_POINT('',(6.856391084146E0,-2.049994334506E2, +-9.380008759286E1)); +#1213=CARTESIAN_POINT('',(4.613849571136E0,3.E1,-9.38E1)); +#1214=CARTESIAN_POINT('',(4.689140465498E0,3.051698827425E1,-9.38E1)); +#1215=CARTESIAN_POINT('',(4.860507314237E0,3.155359500435E1,-9.396070916390E1)); +#1216=CARTESIAN_POINT('',(5.157652712310E0,3.297672243125E1,-9.467972024659E1)); +#1217=CARTESIAN_POINT('',(5.460488107251E0,3.410313647038E1,-9.579924190179E1)); +#1218=CARTESIAN_POINT('',(5.743090568065E0,3.483367261301E1,-9.722446662156E1)); +#1219=CARTESIAN_POINT('',(5.897600991837E0,3.5E1,-9.827448891679E1)); +#1220=CARTESIAN_POINT('',(5.963144320304E0,3.5E1,-9.88E1)); +#1222=CARTESIAN_POINT('',(5.963144320304E0,3.5E1,-9.88E1)); +#1223=CARTESIAN_POINT('',(6.036896628517E0,3.5E1,-9.939132876350E1)); +#1224=CARTESIAN_POINT('',(6.185407027435E0,3.5E1,-1.005759395793E2)); +#1225=CARTESIAN_POINT('',(6.411159214887E0,3.5E1,-1.023587210438E2)); +#1226=CARTESIAN_POINT('',(6.563633349315E0,3.5E1,-1.035511513973E2)); +#1227=CARTESIAN_POINT('',(6.640358504370E0,3.5E1,-1.041483448332E2)); +#1229=CARTESIAN_POINT('',(8.583286718479E0,-2.477429559125E0, +-1.459975428660E2)); +#1230=CARTESIAN_POINT('',(8.477294980770E0,-2.978812788909E0, +-1.456367523663E2)); +#1231=CARTESIAN_POINT('',(8.269155593292E0,-4.002147267197E0, +-1.449473891081E2)); +#1232=CARTESIAN_POINT('',(7.969930688470E0,-5.592655904575E0, +-1.440127998631E2)); +#1233=CARTESIAN_POINT('',(7.779946067911E0,-6.685604760093E0, +-1.434577657628E2)); +#1234=CARTESIAN_POINT('',(7.687558889398E0,-7.239165805327E0, +-1.431975920715E2)); +#1236=CARTESIAN_POINT('',(7.687558889398E0,-7.239165805327E0, +-1.431975920715E2)); +#1237=CARTESIAN_POINT('',(7.250615479724E0,-9.857222276581E0, +-1.419671055300E2)); +#1238=CARTESIAN_POINT('',(6.397895808718E0,-1.503385764157E1, +-1.395340869085E2)); +#1239=CARTESIAN_POINT('',(5.184632933325E0,-2.262073613400E1, +-1.359682540170E2)); +#1240=CARTESIAN_POINT('',(4.420627004866E0,-2.755998657041E1, +-1.336468063119E2)); +#1241=CARTESIAN_POINT('',(4.050390083494E0,-3.E1,-1.325E2)); +#1243=CARTESIAN_POINT('',(4.050390083494E0,-3.E1,-1.325E2)); +#1244=CARTESIAN_POINT('',(3.676405471015E0,-3.553443422554E1,-1.325E2)); +#1245=CARTESIAN_POINT('',(3.036642449818E0,-4.661662470751E1, +-1.325000012960E2)); +#1246=CARTESIAN_POINT('',(2.440962978094E0,-6.327046311953E1, +-1.324999954641E2)); +#1247=CARTESIAN_POINT('',(2.304110890147E0,-7.441849933442E1, +-1.325000097198E2)); +#1248=CARTESIAN_POINT('',(2.304110890166E0,-8.000179465084E1, +-1.325000097198E2)); +#1250=CARTESIAN_POINT('',(2.304110890166E0,-8.000179465084E1, +-1.325000097198E2)); +#1251=CARTESIAN_POINT('',(2.304110890189E0,-8.646330171934E1, +-1.325000097198E2)); +#1252=CARTESIAN_POINT('',(2.485800661115E0,-9.940361010273E1, +-1.324999954889E2)); +#1253=CARTESIAN_POINT('',(3.303251262060E0,-1.190814716761E2, +-1.325000012092E2)); +#1254=CARTESIAN_POINT('',(4.590151213682E0,-1.383802215777E2, +-1.324999996745E2)); +#1255=CARTESIAN_POINT('',(6.279599477630E0,-1.576801924835E2, +-1.325000000930E2)); +#1256=CARTESIAN_POINT('',(7.761900315179E0,-1.716629279751E2,-1.325E2)); +#1257=CARTESIAN_POINT('',(8.583286718479E0,-1.788405455807E2,-1.325E2)); +#1259=CARTESIAN_POINT('',(5.500000000077E0,-2.165999092251E2,-6.E1)); +#1260=CARTESIAN_POINT('',(5.305705567093E0,-2.154911307773E2,-6.E1)); +#1261=CARTESIAN_POINT('',(4.920981341115E0,-2.132912981770E2,-6.E1)); +#1262=CARTESIAN_POINT('',(4.537811352389E0,-2.110911942990E2,-6.E1)); +#1263=CARTESIAN_POINT('',(4.348188160383E0,-2.1E2,-6.E1)); +#1265=CARTESIAN_POINT('',(7.076698078222E0,-2.1E2,-8.88E1)); +#1266=CARTESIAN_POINT('',(6.731674108321E0,-2.1E2,-8.560405019809E1)); +#1267=CARTESIAN_POINT('',(6.063256460202E0,-2.1E2,-7.921011586123E1)); +#1268=CARTESIAN_POINT('',(5.156277132985E0,-2.1E2,-6.960935906591E1)); +#1269=CARTESIAN_POINT('',(4.605190581918E0,-2.1E2,-6.320422945985E1)); +#1270=CARTESIAN_POINT('',(4.348188160383E0,-2.1E2,-6.E1)); +#1272=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1273=VECTOR('',#1272,7.38E1); +#1274=CARTESIAN_POINT('',(-7.499999999924E0,-2.1E2,-1.5E1)); +#1275=LINE('',#1274,#1273); +#1276=DIRECTION('',(9.999999992027E-1,3.946321898376E-5,-6.101314767071E-6)); +#1277=VECTOR('',#1276,1.435639109552E1); +#1278=CARTESIAN_POINT('',(-7.499999999924E0,-2.05E2,-9.38E1)); +#1279=LINE('',#1278,#1277); +#1280=DIRECTION('',(-1.E0,1.754823921730E-14,1.364863050234E-14)); +#1281=VECTOR('',#1280,1.457669807815E1); +#1282=CARTESIAN_POINT('',(7.076698078222E0,-2.1E2,-8.88E1)); +#1283=LINE('',#1282,#1281); +#1284=DIRECTION('',(0.E0,1.E0,0.E0)); +#1285=VECTOR('',#1284,2.35E2); +#1286=CARTESIAN_POINT('',(-7.499999999924E0,-2.05E2,-9.38E1)); +#1287=LINE('',#1286,#1285); +#1288=CARTESIAN_POINT('',(4.613849571136E0,3.E1,-9.38E1)); +#1289=CARTESIAN_POINT('',(4.309186284835E0,2.790801599653E1,-9.38E1)); +#1290=CARTESIAN_POINT('',(3.705916462989E0,2.372282959532E1,-9.380000186895E1)); +#1291=CARTESIAN_POINT('',(2.828698339838E0,1.744332135650E1,-9.379999345867E1)); +#1292=CARTESIAN_POINT('',(2.258443569856E0,1.324977091516E1,-9.380001401714E1)); +#1293=CARTESIAN_POINT('',(1.980031151679E0,1.116253373997E1,-9.380001401714E1)); +#1295=CARTESIAN_POINT('',(1.979999939715E0,-1.711645394054E2, +-9.380003612953E1)); +#1296=CARTESIAN_POINT('',(2.481483863736E0,-1.749241298680E2, +-9.380003612953E1)); +#1297=CARTESIAN_POINT('',(3.520483479693E0,-1.824532876349E2, +-9.379999481860E1)); +#1298=CARTESIAN_POINT('',(5.142783639624E0,-1.937330081165E2, +-9.379996394060E1)); +#1299=CARTESIAN_POINT('',(6.281524053099E0,-2.012441546092E2, +-9.380008759286E1)); +#1300=CARTESIAN_POINT('',(6.856391084146E0,-2.049994334506E2, +-9.380008759286E1)); +#1302=CARTESIAN_POINT('',(-7.499999999924E0,-2.05E2,-8.88E1)); +#1303=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1304=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1305=AXIS2_PLACEMENT_3D('',#1302,#1303,#1304); +#1307=CARTESIAN_POINT('',(-7.499999999924E0,-2.18E2,-1.5E1)); +#1308=DIRECTION('',(1.E0,0.E0,0.E0)); +#1309=DIRECTION('',(0.E0,1.E0,0.E0)); +#1310=AXIS2_PLACEMENT_3D('',#1307,#1308,#1309); +#1312=DIRECTION('',(1.465982402626E-14,0.E0,-1.E0)); +#1313=VECTOR('',#1312,9.100000000001E1); +#1314=CARTESIAN_POINT('',(-7.499999999924E0,-2.5E2,-7.E0)); +#1315=LINE('',#1314,#1313); +#1316=CARTESIAN_POINT('',(-7.499999999924E0,3.E1,-9.88E1)); +#1317=DIRECTION('',(1.E0,0.E0,0.E0)); +#1318=DIRECTION('',(0.E0,9.871170143402E-1,1.6E-1)); +#1319=AXIS2_PLACEMENT_3D('',#1316,#1317,#1318); +#1321=CARTESIAN_POINT('',(4.348188160384E0,-2.1E2,-1.5E1)); +#1322=CARTESIAN_POINT('',(4.348188160384E0,-2.1E2,-1.426220810527E1)); +#1323=CARTESIAN_POINT('',(4.384878327141E0,-2.102115438031E2, +-1.278596439236E1)); +#1324=CARTESIAN_POINT('',(4.534204031365E0,-2.110696400689E2, +-1.079871066908E1)); +#1325=CARTESIAN_POINT('',(4.792734268099E0,-2.125545114432E2, +-8.986085208772E0)); +#1326=CARTESIAN_POINT('',(5.124420317017E0,-2.144544556312E2, +-7.712180058739E0)); +#1327=CARTESIAN_POINT('',(5.373336010782E0,-2.158770768758E2, +-7.251955544056E0)); +#1328=CARTESIAN_POINT('',(5.500000000077E0,-2.165999092251E2, +-7.123468668123E0)); +#1330=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1331=VECTOR('',#1330,1.3E1); +#1332=CARTESIAN_POINT('',(5.500000000076E0,-2.18E2,-7.E0)); +#1333=LINE('',#1332,#1331); +#1334=DIRECTION('',(1.E0,1.919058613577E-14,0.E0)); +#1335=VECTOR('',#1334,1.184818816031E1); +#1336=CARTESIAN_POINT('',(-7.499999999924E0,-2.1E2,-1.5E1)); +#1337=LINE('',#1336,#1335); +#1338=DIRECTION('',(-3.742191741670E-14,0.E0,-1.E0)); +#1339=VECTOR('',#1338,4.5E1); +#1340=CARTESIAN_POINT('',(4.348188160384E0,-2.1E2,-1.5E1)); +#1341=LINE('',#1340,#1339); +#1342=DIRECTION('',(1.615892000156E-14,6.611383485044E-14,1.E0)); +#1343=VECTOR('',#1342,5.287653133188E1); +#1344=CARTESIAN_POINT('',(5.500000000077E0,-2.165999092251E2,-6.E1)); +#1345=LINE('',#1344,#1343); +#1346=CARTESIAN_POINT('',(5.500000000076E0,-2.18E2,-1.5E1)); +#1347=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1348=DIRECTION('',(0.E0,0.E0,1.E0)); +#1349=AXIS2_PLACEMENT_3D('',#1346,#1347,#1348); +#1351=DIRECTION('',(0.E0,0.E0,1.E0)); +#1352=VECTOR('',#1351,5.8E1); +#1353=CARTESIAN_POINT('',(5.000000000761E-1,-2.65E2,-6.5E1)); +#1354=LINE('',#1353,#1352); +#1355=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1356=VECTOR('',#1355,5.3E1); +#1357=CARTESIAN_POINT('',(5.500000000076E0,-2.6E2,-7.E0)); +#1358=LINE('',#1357,#1356); +#1359=CARTESIAN_POINT('',(5.500000000076E0,-2.6E2,-6.E1)); +#1360=CARTESIAN_POINT('',(5.500000000076E0,-2.603880345115E2,-6.E1)); +#1361=CARTESIAN_POINT('',(5.422796413415E0,-2.611841941241E2, +-6.007693509891E1)); +#1362=CARTESIAN_POINT('',(4.884835717815E0,-2.625078190950E2, +-6.061548284294E1)); +#1363=CARTESIAN_POINT('',(4.239967001913E0,-2.633944448335E2, +-6.125955338251E1)); +#1364=CARTESIAN_POINT('',(3.153177861626E0,-2.643127643901E2, +-6.234688255345E1)); +#1365=CARTESIAN_POINT('',(1.978842236357E0,-2.648370985882E2, +-6.352161241746E1)); +#1366=CARTESIAN_POINT('',(1.010132093282E0,-2.65E2,-6.448986790679E1)); +#1367=CARTESIAN_POINT('',(5.000000000761E-1,-2.65E2,-6.5E1)); +#1369=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1370=VECTOR('',#1369,7.949999999138E1); +#1371=CARTESIAN_POINT('',(7.999999999145E1,-2.65E2,-6.5E1)); +#1372=LINE('',#1371,#1370); +#1373=DIRECTION('',(1.E0,0.E0,0.E0)); +#1374=VECTOR('',#1373,7.449999999992E1); +#1375=CARTESIAN_POINT('',(5.500000000076E0,-2.6E2,-6.E1)); +#1376=LINE('',#1375,#1374); +#1377=CARTESIAN_POINT('',(-2.699999999992E1,-2.5E2,-9.8E1)); +#1378=DIRECTION('',(0.E0,-1.E0,0.E0)); +#1379=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1380=AXIS2_PLACEMENT_3D('',#1377,#1378,#1379); +#1382=DIRECTION('',(-7.688072400924E-14,1.E0,-1.091393642128E-13)); +#1383=VECTOR('',#1382,5.E1); +#1384=CARTESIAN_POINT('',(-1.199632111959E1,-1.5E1,-1.104555056122E2)); +#1385=LINE('',#1384,#1383); +#1386=CARTESIAN_POINT('',(-7.516417167187E0,3.5E1,-9.88E1)); +#1387=CARTESIAN_POINT('',(-7.512753125398E0,3.5E1,-9.871076417287E1)); +#1388=CARTESIAN_POINT('',(-7.506660157285E0,3.499523671767E1, +-9.853250092278E1)); +#1389=CARTESIAN_POINT('',(-7.501197951375E0,3.497373163376E1, +-9.826532073398E1)); +#1390=CARTESIAN_POINT('',(-7.499999999923E0,3.494989762089E1, +-9.808830100513E1)); +#1391=CARTESIAN_POINT('',(-7.499999999923E0,3.493558507170E1,-9.8E1)); +#1393=DIRECTION('',(0.E0,-1.E0,-3.860241446079E-14)); +#1394=VECTOR('',#1393,2.849355850717E2); +#1395=CARTESIAN_POINT('',(-7.499999999923E0,3.493558507170E1,-9.8E1)); +#1396=LINE('',#1395,#1394); +#1397=DIRECTION('',(0.E0,1.E0,0.E0)); +#1398=VECTOR('',#1397,2.85E2); +#1399=CARTESIAN_POINT('',(-4.649999999992E1,-2.5E2,-9.8E1)); +#1400=LINE('',#1399,#1398); +#1401=DIRECTION('',(3.254285729781E-14,-1.E0,-5.343281372916E-14)); +#1402=VECTOR('',#1401,5.E1); +#1403=CARTESIAN_POINT('',(-4.199632111960E1,3.5E1,-1.104643633161E2)); +#1404=LINE('',#1403,#1402); +#1405=CARTESIAN_POINT('',(-2.699999999992E1,-1.5E1,-9.8E1)); +#1406=DIRECTION('',(0.E0,1.E0,0.E0)); +#1407=DIRECTION('',(7.694194297607E-1,0.E0,-6.387438775493E-1)); +#1408=AXIS2_PLACEMENT_3D('',#1405,#1406,#1407); +#1410=CARTESIAN_POINT('',(-2.699999999992E1,-1.5E1,-9.8E1)); +#1411=DIRECTION('',(0.E0,1.E0,0.E0)); +#1412=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1413=AXIS2_PLACEMENT_3D('',#1410,#1411,#1412); +#1415=CARTESIAN_POINT('',(-2.699999999992E1,2.888543819997E0,-9.8E1)); +#1416=DIRECTION('',(0.E0,1.E0,0.E0)); +#1417=DIRECTION('',(5.274762851299E-1,0.E0,-8.495697550087E-1)); +#1418=AXIS2_PLACEMENT_3D('',#1415,#1416,#1417); +#1420=CARTESIAN_POINT('',(-2.699999999992E1,2.888543819997E0,-9.8E1)); +#1421=DIRECTION('',(0.E0,1.E0,0.E0)); +#1422=DIRECTION('',(6.142950217438E-4,0.E0,-9.999998113208E-1)); +#1423=AXIS2_PLACEMENT_3D('',#1420,#1421,#1422); +#1425=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1426=VECTOR('',#1425,4.427932519135E1); +#1427=CARTESIAN_POINT('',(-7.5E0,2.5E1,-1.457206748087E2)); +#1428=LINE('',#1427,#1426); +#1429=DIRECTION('',(-1.E0,-3.081537768049E-14,-3.514533331354E-12)); +#1430=VECTOR('',#1429,4.496321119600E0); +#1431=CARTESIAN_POINT('',(-7.5E0,2.5E1,-1.457206748087E2)); +#1432=LINE('',#1431,#1430); +#1433=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1434=VECTOR('',#1433,1.472348138314E1); +#1435=CARTESIAN_POINT('',(-1.199632111960E1,2.5E1,-1.457206748087E2)); +#1436=LINE('',#1435,#1434); +#1437=CARTESIAN_POINT('',(-2.699999999992E1,2.5E1,-9.8E1)); +#1438=DIRECTION('',(0.E0,1.E0,0.E0)); +#1439=DIRECTION('',(2.336244356309E-1,0.E0,-9.723269116280E-1)); +#1440=AXIS2_PLACEMENT_3D('',#1437,#1438,#1439); +#1442=CARTESIAN_POINT('',(-2.699999999992E1,2.5E1,-9.8E1)); +#1443=DIRECTION('',(0.E0,1.E0,0.E0)); +#1444=DIRECTION('',(1.228589811677E-3,0.E0,-9.999992452833E-1)); +#1445=AXIS2_PLACEMENT_3D('',#1442,#1443,#1444); +#1447=DIRECTION('',(-1.E0,0.E0,-2.296236133973E-12)); +#1448=VECTOR('',#1447,6.869523783071E0); +#1449=CARTESIAN_POINT('',(-4.199632111960E1,2.5E1,-1.457206748087E2)); +#1450=LINE('',#1449,#1448); +#1451=CARTESIAN_POINT('',(-4.886584490267E1,2.5E1,-1.457206748087E2)); +#1452=CARTESIAN_POINT('',(-4.902143374155E1,2.5E1,-1.473231583809E2)); +#1453=CARTESIAN_POINT('',(-4.967669430009E1,2.5E1,-1.502967301731E2)); +#1454=CARTESIAN_POINT('',(-5.139817116536E1,2.5E1,-1.540492140155E2)); +#1455=CARTESIAN_POINT('',(-5.382952696188E1,2.5E1,-1.572304633538E2)); +#1456=CARTESIAN_POINT('',(-5.675462739445E1,2.5E1,-1.596040475454E2)); +#1457=CARTESIAN_POINT('',(-6.002740111037E1,2.500000000001E1, +-1.611221754180E2)); +#1458=CARTESIAN_POINT('',(-6.220996295858E1,2.499999999999E1, +-1.615396066029E2)); +#1459=CARTESIAN_POINT('',(-6.331964059014E1,2.499999999999E1, +-1.616172914002E2)); +#1461=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1462=VECTOR('',#1461,3.048505569992E1); +#1463=CARTESIAN_POINT('',(1.75E1,2.5E1,-1.595149443001E2)); +#1464=LINE('',#1463,#1462); +#1465=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1466=VECTOR('',#1465,1.036921612375E1); +#1467=CARTESIAN_POINT('',(-6.416713281516E0,3.009005479810E1, +-1.456762545734E2)); +#1468=LINE('',#1467,#1466); +#1469=CARTESIAN_POINT('',(-6.416713281516E0,-8.000179578406E1, +1.429144561350E-3)); +#1470=DIRECTION('',(1.E0,0.E0,0.E0)); +#1471=DIRECTION('',(0.E0,5.764773207618E-1,-8.171131492317E-1)); +#1472=AXIS2_PLACEMENT_3D('',#1469,#1470,#1471); +#1474=DIRECTION('',(0.E0,-9.999619230642E-1,-8.726535498301E-3)); +#1475=VECTOR('',#1474,1.353414721193E1); +#1476=CARTESIAN_POINT('',(-6.416713281516E0,4.362368667118E1, +-1.455581483573E2)); +#1477=LINE('',#1476,#1475); +#1478=CARTESIAN_POINT('',(-6.416713281516E0,3.009005479810E1, +-1.560454706971E2)); +#1479=CARTESIAN_POINT('',(-6.018804776460E0,3.098254171517E1, +-1.554158168147E2)); +#1480=CARTESIAN_POINT('',(-5.046626104298E0,3.263338422938E1, +-1.542289943871E2)); +#1481=CARTESIAN_POINT('',(-2.912668509486E0,3.483247072852E1, +-1.525955625208E2)); +#1482=CARTESIAN_POINT('',(-4.232192401903E-1,3.638616861326E1, +-1.514101142273E2)); +#1483=CARTESIAN_POINT('',(2.332497696806E0,3.732403935321E1,-1.506825977636E2)); +#1484=CARTESIAN_POINT('',(5.167754473109E0,3.760736819157E1,-1.504608186181E2)); +#1485=CARTESIAN_POINT('',(8.093788757276E0,3.723846027205E1,-1.507494203052E2)); +#1486=CARTESIAN_POINT('',(1.105186987316E1,3.609712940190E1,-1.516333261480E2)); +#1487=CARTESIAN_POINT('',(1.375557814778E1,3.413702312280E1,-1.531196404284E2)); +#1488=CARTESIAN_POINT('',(1.592732165976E1,3.139960735853E1,-1.551284422091E2)); +#1489=CARTESIAN_POINT('',(1.723337064995E1,2.820052418505E1,-1.573777555972E2)); +#1490=CARTESIAN_POINT('',(1.75E1,2.608240831831E1,-1.588024480545E2)); +#1491=CARTESIAN_POINT('',(1.75E1,2.5E1,-1.595149443001E2)); +#1493=DIRECTION('',(1.E0,-3.185501988254E-14,-2.203586153397E-13)); +#1494=VECTOR('',#1493,5.275255128608E1); +#1495=CARTESIAN_POINT('',(1.75E1,2.5E1,-1.595149443001E2)); +#1496=LINE('',#1495,#1494); +#1497=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1498=VECTOR('',#1497,6.649999999992E1); +#1499=CARTESIAN_POINT('',(8.5E1,1.032950599131E2,-5.36E1)); +#1500=LINE('',#1499,#1498); +#1501=DIRECTION('',(-9.999999999653E-1,-8.335211294575E-6,-7.274037346258E-8)); +#1502=VECTOR('',#1501,1.166955795023E1); +#1503=CARTESIAN_POINT('',(5.252844668309E0,4.362378393941E1,-1.455581475084E2)); +#1504=LINE('',#1503,#1502); +#1505=DIRECTION('',(0.E0,-4.879988371638E-14,1.E0)); +#1506=VECTOR('',#1505,5.474686583241E1); +#1507=CARTESIAN_POINT('',(8.5E1,5.482050807569E1,-1.9E2)); +#1508=LINE('',#1507,#1506); +#1509=CARTESIAN_POINT('',(8.5E1,5.482050807569E1,-1.352531341676E2)); +#1510=CARTESIAN_POINT('',(8.441536654814E1,5.490489264589E1,-1.351690192817E2)); +#1511=CARTESIAN_POINT('',(8.324008217832E1,5.501376683472E1,-1.350602182644E2)); +#1512=CARTESIAN_POINT('',(8.148899065837E1,5.500003832757E1,-1.350739522397E2)); +#1513=CARTESIAN_POINT('',(7.973318093679E1,5.481043628036E1,-1.352633513634E2)); +#1514=CARTESIAN_POINT('',(7.796859948836E1,5.443617142789E1,-1.356356838324E2)); +#1515=CARTESIAN_POINT('',(7.619200896843E1,5.386054533489E1,-1.362043874343E2)); +#1516=CARTESIAN_POINT('',(7.441287128590E1,5.306214015051E1,-1.369853643864E2)); +#1517=CARTESIAN_POINT('',(7.264481718473E1,5.201240639592E1,-1.379985287710E2)); +#1518=CARTESIAN_POINT('',(7.092498980387E1,5.068808710162E1,-1.392549949221E2)); +#1519=CARTESIAN_POINT('',(6.930136690110E1,4.907078642753E1,-1.407573216062E2)); +#1520=CARTESIAN_POINT('',(6.784340672379E1,4.716537001034E1,-1.424831237956E2)); +#1521=CARTESIAN_POINT('',(6.662554746235E1,4.500684450856E1,-1.443824410290E2)); +#1522=CARTESIAN_POINT('',(6.570888286043E1,4.264415778508E1,-1.463959161620E2)); +#1523=CARTESIAN_POINT('',(6.514214714602E1,4.016530937512E1,-1.484378016082E2)); +#1524=CARTESIAN_POINT('',(6.494056285628E1,3.764150396188E1,-1.504455886942E2)); +#1525=CARTESIAN_POINT('',(6.509934711466E1,3.515556822599E1,-1.523559465642E2)); +#1526=CARTESIAN_POINT('',(6.559602947399E1,3.276254625376E1,-1.541342754630E2)); +#1527=CARTESIAN_POINT('',(6.639482578750E1,3.052058537432E1,-1.557483093875E2)); +#1528=CARTESIAN_POINT('',(6.745988669275E1,2.845584314423E1,-1.571917266860E2)); +#1529=CARTESIAN_POINT('',(6.875135250810E1,2.659653494584E1,-1.584571556493E2)); +#1530=CARTESIAN_POINT('',(6.973606446021E1,2.550605167290E1,-1.591818353329E2)); +#1531=CARTESIAN_POINT('',(7.025255128608E1,2.5E1,-1.595149443001E2)); +#1533=DIRECTION('',(4.428501660728E-14,7.668300244103E-14,-1.E0)); +#1534=VECTOR('',#1533,3.048505569990E1); +#1535=CARTESIAN_POINT('',(7.025255128608E1,2.5E1,-1.595149443001E2)); +#1536=LINE('',#1535,#1534); +#1537=DIRECTION('',(2.221183464633E-14,-1.E0,0.E0)); +#1538=VECTOR('',#1537,8.637131588180E1); +#1539=CARTESIAN_POINT('',(8.5E1,2.601794919243E2,-5.36E1)); +#1540=LINE('',#1539,#1538); +#1541=DIRECTION('',(0.E0,-1.E0,0.E0)); +#1542=VECTOR('',#1541,5.723635208501E1); +#1543=CARTESIAN_POINT('',(8.5E1,1.738081760425E2,-1.02E2)); +#1544=LINE('',#1543,#1542); +#1545=DIRECTION('',(-1.038244637598E-13,-1.E0,-8.081182488524E-14)); +#1546=VECTOR('',#1545,1.327676404439E1); +#1547=CARTESIAN_POINT('',(8.5E1,1.165718239575E2,-5.36E1)); +#1548=LINE('',#1547,#1546); +#1549=CARTESIAN_POINT('',(8.5E1,-8.000179578406E1,1.429144561350E-3)); +#1550=DIRECTION('',(-1.E0,0.E0,0.E0)); +#1551=DIRECTION('',(0.E0,9.598029256263E-1,-2.806748010762E-1)); +#1552=AXIS2_PLACEMENT_3D('',#1549,#1550,#1551); +#1554=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1555=VECTOR('',#1554,1.364E2); +#1556=CARTESIAN_POINT('',(8.5E1,2.601794919243E2,-5.36E1)); +#1557=LINE('',#1556,#1555); +#1558=DIRECTION('',(0.E0,0.E0,1.E0)); +#1559=VECTOR('',#1558,8.8E1); +#1560=CARTESIAN_POINT('',(6.517949192431E1,2.8E2,-1.9E2)); +#1561=LINE('',#1560,#1559); +#1562=DIRECTION('',(6.694369576583E-14,0.E0,1.E0)); +#1563=VECTOR('',#1562,4.84E1); +#1564=CARTESIAN_POINT('',(6.898321842155E1,2.663848474702E2,-1.02E2)); +#1565=LINE('',#1564,#1563); +#1566=CARTESIAN_POINT('',(8.25E1,2.775E2,-5.36E1)); +#1567=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1568=DIRECTION('',(1.428571428571E-1,-9.897433186108E-1,0.E0)); +#1569=AXIS2_PLACEMENT_3D('',#1566,#1567,#1568); +#1571=CARTESIAN_POINT('',(8.25E1,2.775E2,-5.36E1)); +#1572=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1573=DIRECTION('',(0.E0,-1.E0,0.E0)); +#1574=AXIS2_PLACEMENT_3D('',#1571,#1572,#1573); +#1576=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-5.36E1)); +#1577=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1578=DIRECTION('',(6.951188330258E-1,7.188948518196E-1,0.E0)); +#1579=AXIS2_PLACEMENT_3D('',#1576,#1577,#1578); +#1581=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-5.36E1)); +#1582=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1583=DIRECTION('',(1.E0,0.E0,0.E0)); +#1584=AXIS2_PLACEMENT_3D('',#1581,#1582,#1583); +#1586=CARTESIAN_POINT('',(6.E1,1.4519E2,-5.36E1)); +#1587=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1588=DIRECTION('',(-1.862042234073E-1,9.825110621185E-1,0.E0)); +#1589=AXIS2_PLACEMENT_3D('',#1586,#1587,#1588); +#1591=DIRECTION('',(0.E0,0.E0,1.E0)); +#1592=VECTOR('',#1591,4.84E1); +#1593=CARTESIAN_POINT('',(3.E1,2.663848474702E2,-1.02E2)); +#1594=LINE('',#1593,#1592); +#1595=DIRECTION('',(1.E0,8.019830490999E-14,0.E0)); +#1596=VECTOR('',#1595,3.898321842155E1); +#1597=CARTESIAN_POINT('',(3.E1,2.663848474702E2,-5.36E1)); +#1598=LINE('',#1597,#1596); +#1599=CARTESIAN_POINT('',(8.25E1,2.775E2,-1.02E2)); +#1600=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1601=DIRECTION('',(-7.723875187682E-1,-6.351515731313E-1,0.E0)); +#1602=AXIS2_PLACEMENT_3D('',#1599,#1600,#1601); +#1604=DIRECTION('',(1.E0,8.019830491E-14,0.E0)); +#1605=VECTOR('',#1604,3.898321842155E1); +#1606=CARTESIAN_POINT('',(3.E1,2.663848474702E2,-1.02E2)); +#1607=LINE('',#1606,#1605); +#1608=CARTESIAN_POINT('',(5.7E0,2.8E2,-1.657E2)); +#1609=DIRECTION('',(0.E0,-1.E0,0.E0)); +#1610=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1611=AXIS2_PLACEMENT_3D('',#1608,#1609,#1610); +#1613=DIRECTION('',(1.E0,0.E0,0.E0)); +#1614=VECTOR('',#1613,3.517949192431E1); +#1615=CARTESIAN_POINT('',(3.E1,2.8E2,-1.02E2)); +#1616=LINE('',#1615,#1614); +#1617=DIRECTION('',(5.979479162192E-14,1.E0,-3.150478268252E-14)); +#1618=VECTOR('',#1617,4.420483632990E1); +#1619=CARTESIAN_POINT('',(3.E1,2.357951636701E2,-1.657E2)); +#1620=LINE('',#1619,#1618); +#1621=DIRECTION('',(1.142780634603E-13,-1.E0,-2.531698636658E-13)); +#1622=VECTOR('',#1621,4.243556483829E1); +#1623=CARTESIAN_POINT('',(5.7E0,2.8E2,-1.9E2)); +#1624=LINE('',#1623,#1622); +#1625=CARTESIAN_POINT('',(3.E1,2.357951636701E2,-1.657E2)); +#1626=CARTESIAN_POINT('',(3.E1,2.364310287480E2,-1.649302132216E2)); +#1627=CARTESIAN_POINT('',(2.999999989060E1,2.376216370821E2,-1.633186576606E2)); +#1628=CARTESIAN_POINT('',(3.000000038291E1,2.391307042377E2,-1.607092561231E2)); +#1629=CARTESIAN_POINT('',(2.999999857777E1,2.404135223067E2,-1.577949054135E2)); +#1630=CARTESIAN_POINT('',(3.000000530601E1,2.414813343479E2,-1.544668277613E2)); +#1631=CARTESIAN_POINT('',(2.999998019818E1,2.423145488297E2,-1.506336976203E2)); +#1632=CARTESIAN_POINT('',(3.000004266690E1,2.427262068930E2,-1.476438337510E2)); +#1633=CARTESIAN_POINT('',(3.000004266690E1,2.428897124884E2,-1.460478878347E2)); +#1635=CARTESIAN_POINT('',(3.000004266690E1,2.428897124884E2,-1.460478878347E2)); +#1636=CARTESIAN_POINT('',(3.000004266690E1,2.434390346503E2,-1.374444266006E2)); +#1637=CARTESIAN_POINT('',(3.000000493999E1,2.445123626232E2,-1.202359449138E2)); +#1638=CARTESIAN_POINT('',(2.999991870967E1,2.460711290709E2,-9.442003503788E1)); +#1639=CARTESIAN_POINT('',(3.000018638411E1,2.470663127229E2,-7.720684576929E1)); +#1640=CARTESIAN_POINT('',(3.000018638411E1,2.475589762720E2,-6.859998692460E1)); +#1642=DIRECTION('',(-1.521453028427E-5,9.999999998837E-1,-1.067344295250E-6)); +#1643=VECTOR('',#1642,1.225040157868E1); +#1644=CARTESIAN_POINT('',(3.000018638411E1,2.475589762720E2,-6.859998692460E1)); +#1645=LINE('',#1644,#1643); +#1646=DIRECTION('',(-2.555609966940E-13,1.E0,0.E0)); +#1647=VECTOR('',#1646,6.575469620995E0); +#1648=CARTESIAN_POINT('',(3.E1,2.598093778492E2,-5.36E1)); +#1649=LINE('',#1648,#1647); +#1650=DIRECTION('',(0.E0,1.E0,0.E0)); +#1651=VECTOR('',#1650,1.361515252980E1); +#1652=CARTESIAN_POINT('',(3.E1,2.663848474702E2,-1.02E2)); +#1653=LINE('',#1652,#1651); +#1654=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1655=VECTOR('',#1654,6.37E1); +#1656=CARTESIAN_POINT('',(3.E1,2.8E2,-1.02E2)); +#1657=LINE('',#1656,#1655); +#1658=CARTESIAN_POINT('',(3.E1,2.357951636701E2,-1.657E2)); +#1659=CARTESIAN_POINT('',(3.E1,2.350507558578E2,-1.666011900662E2)); +#1660=CARTESIAN_POINT('',(2.989958152599E1,2.336445025319E2,-1.683083194669E2)); +#1661=CARTESIAN_POINT('',(2.954298537523E1,2.318085643134E2,-1.705520325717E2)); +#1662=CARTESIAN_POINT('',(2.904236458432E1,2.302361272810E2,-1.725498061142E2)); +#1663=CARTESIAN_POINT('',(2.843437607526E1,2.289220495632E2,-1.743452908855E2)); +#1664=CARTESIAN_POINT('',(2.774973402293E1,2.278769157199E2,-1.759592554437E2)); +#1665=CARTESIAN_POINT('',(2.700818254124E1,2.271054154585E2,-1.774166048982E2)); +#1666=CARTESIAN_POINT('',(2.623143810838E1,2.266098126550E2,-1.787259206673E2)); +#1667=CARTESIAN_POINT('',(2.542552227872E1,2.263589138124E2,-1.799142438211E2)); +#1668=CARTESIAN_POINT('',(2.458917866477E1,2.263191964022E2,-1.810073456922E2)); +#1669=CARTESIAN_POINT('',(2.368748794848E1,2.264760301577E2,-1.820583855024E2)); +#1670=CARTESIAN_POINT('',(2.268684130093E1,2.268383215297E2,-1.830977887419E2)); +#1671=CARTESIAN_POINT('',(2.152775347717E1,2.274139175259E2,-1.841631593899E2)); +#1672=CARTESIAN_POINT('',(2.015885284662E1,2.282212819415E2,-1.852593488916E2)); +#1673=CARTESIAN_POINT('',(1.854667884918E1,2.292633815169E2,-1.863607970333E2)); +#1674=CARTESIAN_POINT('',(1.665838445182E1,2.305284303188E2,-1.874280598851E2)); +#1675=CARTESIAN_POINT('',(1.448305294016E1,2.319815398260E2,-1.884043610582E2)); +#1676=CARTESIAN_POINT('',(1.189086436551E1,2.336867517191E2,-1.892584593799E2)); +#1677=CARTESIAN_POINT('',(8.893795256137E0,2.356086277672E2,-1.898567692280E2)); +#1678=CARTESIAN_POINT('',(6.784952141236E0,2.369027970441E2,-1.9E2)); +#1679=CARTESIAN_POINT('',(5.700000000005E0,2.375644351617E2,-1.9E2)); +#1681=CARTESIAN_POINT('',(5.700000000005E0,2.375644351617E2,-1.9E2)); +#1682=CARTESIAN_POINT('',(6.577156397782E0,2.370295174582E2,-1.9E2)); +#1683=CARTESIAN_POINT('',(8.247755351512E0,2.358803664364E2,-1.9E2)); +#1684=CARTESIAN_POINT('',(1.049947092037E1,2.339257488819E2,-1.9E2)); +#1685=CARTESIAN_POINT('',(1.253108905725E1,2.317599449483E2,-1.899999999999E2)); +#1686=CARTESIAN_POINT('',(1.436459301771E1,2.293587086510E2,-1.900000000004E2)); +#1687=CARTESIAN_POINT('',(1.597211435173E1,2.267088882981E2,-1.899999999987E2)); +#1688=CARTESIAN_POINT('',(1.741753858043E1,2.236700910709E2,-1.900000000049E2)); +#1689=CARTESIAN_POINT('',(1.871476230124E1,2.200784227095E2,-1.899999999817E2)); +#1690=CARTESIAN_POINT('',(1.978947160391E1,2.159014719179E2,-1.900000000683E2)); +#1691=CARTESIAN_POINT('',(2.058719090170E1,2.111098528835E2,-1.899999997451E2)); +#1692=CARTESIAN_POINT('',(2.107796019922E1,2.057017165588E2,-1.900000009514E2)); +#1693=CARTESIAN_POINT('',(2.122137768390E1,2.016718026466E2,-1.899999979501E2)); +#1694=CARTESIAN_POINT('',(2.123537790404E1,1.995521107079E2,-1.899999979501E2)); +#1696=CARTESIAN_POINT('',(-2.695261958154E1,1.540326241061E2, +-1.900000153205E2)); +#1697=CARTESIAN_POINT('',(-2.696674950875E1,1.515501263307E2, +-1.876524206454E2)); +#1698=CARTESIAN_POINT('',(-2.695407879639E1,1.480714148439E2, +-1.838792541714E2)); +#1699=CARTESIAN_POINT('',(-2.697972707891E1,1.442653850473E2, +-1.790345860844E2)); +#1700=CARTESIAN_POINT('',(-2.699036284041E1,1.417971665101E2, +-1.753784815478E2)); +#1701=CARTESIAN_POINT('',(-2.699648657210E1,1.406755739535E2, +-1.734399999984E2)); +#1703=CARTESIAN_POINT('',(-2.699648657210E1,1.406755739535E2, +-1.734399999984E2)); +#1704=CARTESIAN_POINT('',(-2.382005693740E1,1.406755668860E2, +-1.734400103201E2)); +#1705=CARTESIAN_POINT('',(-1.750435515677E1,1.405036332135E2, +-1.728455652890E2)); +#1706=CARTESIAN_POINT('',(-8.443458125453E0,1.400847728112E2, +-1.702430659123E2)); +#1707=CARTESIAN_POINT('',(-1.380941260086E-1,1.399612975969E2, +-1.661140447025E2)); +#1708=CARTESIAN_POINT('',(7.363257692161E0,1.405836194353E2,-1.604786440434E2)); +#1709=CARTESIAN_POINT('',(1.353920440407E1,1.421367448640E2,-1.537701999525E2)); +#1710=CARTESIAN_POINT('',(1.676068191427E1,1.435723096712E2,-1.487284676749E2)); +#1711=CARTESIAN_POINT('',(1.813820889572E1,1.443061931079E2,-1.460902994783E2)); +#1713=CARTESIAN_POINT('',(4.034383082927E1,1.994802791342E2,-1.458859474800E2)); +#1714=CARTESIAN_POINT('',(4.031488415960E1,1.994799711064E2,-1.466690157037E2)); +#1715=CARTESIAN_POINT('',(4.019412457675E1,1.994798994642E2,-1.492245606867E2)); +#1716=CARTESIAN_POINT('',(3.982706326942E1,1.994775656843E2,-1.537234269387E2)); +#1717=CARTESIAN_POINT('',(3.881279153047E1,1.994759823413E2,-1.597725889085E2)); +#1718=CARTESIAN_POINT('',(3.692549027110E1,1.994729423146E2,-1.660173816936E2)); +#1719=CARTESIAN_POINT('',(3.427335886001E1,1.994669027605E2,-1.717861514372E2)); +#1720=CARTESIAN_POINT('',(3.131317741988E1,1.994671799601E2,-1.767716529115E2)); +#1721=CARTESIAN_POINT('',(2.743500512435E1,1.994831656046E2,-1.824806965087E2)); +#1722=CARTESIAN_POINT('',(2.428175991751E1,1.995094457560E2,-1.865900133249E2)); +#1723=CARTESIAN_POINT('',(2.123537790404E1,1.995521107079E2,-1.899999979501E2)); +#1725=CARTESIAN_POINT('',(-6.249464034144E1,1.624418115339E2,-1.9E2)); +#1726=CARTESIAN_POINT('',(-6.368637532199E1,1.624418115339E2, +-1.892383506577E2)); +#1727=CARTESIAN_POINT('',(-6.616634286833E1,1.624418115339E2, +-1.875116267847E2)); +#1728=CARTESIAN_POINT('',(-7.016856581927E1,1.624418115339E2, +-1.840982870394E2)); +#1729=CARTESIAN_POINT('',(-7.415076161971E1,1.624418115339E2, +-1.799870080393E2)); +#1730=CARTESIAN_POINT('',(-7.821822715237E1,1.624418115339E2, +-1.751277442306E2)); +#1731=CARTESIAN_POINT('',(-8.218431509342E1,1.624418115339E2, +-1.690181252080E2)); +#1732=CARTESIAN_POINT('',(-8.418289400122E1,1.624418115339E2, +-1.643592410451E2)); +#1733=CARTESIAN_POINT('',(-8.5E1,1.624418115339E2,-1.618398077073E2)); +#1735=CARTESIAN_POINT('',(-8.500000941552E1,1.575995290716E2, +-1.460651841775E2)); +#1736=CARTESIAN_POINT('',(-8.389058920670E1,1.558393247920E2, +-1.460754473351E2)); +#1737=CARTESIAN_POINT('',(-8.142284914800E1,1.524651885704E2, +-1.461042712740E2)); +#1738=CARTESIAN_POINT('',(-7.718230168693E1,1.480483159832E2, +-1.461075362641E2)); +#1739=CARTESIAN_POINT('',(-7.387337520191E1,1.454758868121E2, +-1.460983497298E2)); +#1740=CARTESIAN_POINT('',(-7.213086778258E1,1.443062021939E2, +-1.460902661105E2)); +#1742=DIRECTION('',(6.711756998946E-14,3.532503683656E-14,-1.E0)); +#1743=VECTOR('',#1742,2.816019229270E1); +#1744=CARTESIAN_POINT('',(-8.5E1,1.624418115339E2,-1.618398077073E2)); +#1745=LINE('',#1744,#1743); +#1746=CARTESIAN_POINT('',(-8.5E1,-6.5E1,0.E0)); +#1747=DIRECTION('',(1.E0,0.E0,0.E0)); +#1748=DIRECTION('',(0.E0,6.431143404170E-1,-7.657701647035E-1)); +#1749=AXIS2_PLACEMENT_3D('',#1746,#1747,#1748); +#1751=DIRECTION('',(2.453056677448E-6,9.999999999970E-1,-1.784040440700E-7)); +#1752=VECTOR('',#1751,3.834262960769E1); +#1753=CARTESIAN_POINT('',(-8.5E1,1.134363826783E2,-5.36E1)); +#1754=LINE('',#1753,#1752); +#1755=CARTESIAN_POINT('',(-8.499990594336E1,1.517790122859E2, +-5.360000684048E1)); +#1756=CARTESIAN_POINT('',(-8.499990594336E1,1.523821023504E2, +-6.387758287075E1)); +#1757=CARTESIAN_POINT('',(-8.500004514850E1,1.536080997510E2, +-8.443198926361E1)); +#1758=CARTESIAN_POINT('',(-8.499998306520E1,1.555525931383E2, +-1.152538995660E2)); +#1759=CARTESIAN_POINT('',(-8.500000941552E1,1.569009416501E2, +-1.358062489182E2)); +#1760=CARTESIAN_POINT('',(-8.500000941552E1,1.575995290716E2, +-1.460651841775E2)); +#1762=CARTESIAN_POINT('',(-8.500000941552E1,1.575995290716E2, +-1.460651841775E2)); +#1763=CARTESIAN_POINT('',(-8.500000941552E1,1.578362522818E2, +-1.482162167795E2)); +#1764=CARTESIAN_POINT('',(-8.499999560609E1,1.584867869747E2, +-1.522303527763E2)); +#1765=CARTESIAN_POINT('',(-8.500000125540E1,1.600194342331E2, +-1.573711867076E2)); +#1766=CARTESIAN_POINT('',(-8.5E1,1.615534612155E2,-1.604263179808E2)); +#1767=CARTESIAN_POINT('',(-8.5E1,1.624418115339E2,-1.618398077073E2)); +#1769=DIRECTION('',(2.445094622795E-14,-2.133090361032E-13,1.E0)); +#1770=VECTOR('',#1769,2.789753083461E1); +#1771=CARTESIAN_POINT('',(-7.025255128608E1,2.5E1,-1.9E2)); +#1772=LINE('',#1771,#1770); +#1773=DIRECTION('',(1.921719629203E-14,1.159037151363E-13,-1.E0)); +#1774=VECTOR('',#1773,4.732712763880E1); +#1775=CARTESIAN_POINT('',(-8.5E1,5.482050807568E1,-1.426728723612E2)); +#1776=LINE('',#1775,#1774); +#1777=CARTESIAN_POINT('',(-8.5E1,5.482050807568E1,-1.426728723612E2)); +#1778=CARTESIAN_POINT('',(-8.386037148970E1,5.498499928248E1, +-1.424437052720E2)); +#1779=CARTESIAN_POINT('',(-8.147965645699E1,5.508605142500E1, +-1.421675544632E2)); +#1780=CARTESIAN_POINT('',(-7.788876779013E1,5.454153546700E1, +-1.423407419240E2)); +#1781=CARTESIAN_POINT('',(-7.394642068455E1,5.294041488331E1, +-1.433626764153E2)); +#1782=CARTESIAN_POINT('',(-7.106876848647E1,5.088821438806E1, +-1.448039626307E2)); +#1783=CARTESIAN_POINT('',(-6.863932170501E1,4.839447161528E1, +-1.465818116862E2)); +#1784=CARTESIAN_POINT('',(-6.652944164388E1,4.504582296700E1, +-1.489632013306E2)); +#1785=CARTESIAN_POINT('',(-6.516814828303E1,4.098443302344E1, +-1.517835235732E2)); +#1786=CARTESIAN_POINT('',(-6.484043875040E1,3.662585401469E1, +-1.547125794398E2)); +#1787=CARTESIAN_POINT('',(-6.559970227354E1,3.229675355830E1, +-1.575229107178E2)); +#1788=CARTESIAN_POINT('',(-6.741207647154E1,2.828173920504E1, +-1.600556655566E2)); +#1789=CARTESIAN_POINT('',(-6.922215323171E1,2.600957978607E1, +-1.614698623969E2)); +#1790=CARTESIAN_POINT('',(-7.025255128608E1,2.499999999999E1, +-1.621024691654E2)); +#1792=CARTESIAN_POINT('',(-7.025255128608E1,2.499999999999E1, +-1.621024691654E2)); +#1793=CARTESIAN_POINT('',(-6.948227196469E1,2.499999999999E1, +-1.620485826615E2)); +#1794=CARTESIAN_POINT('',(-6.794168475781E1,2.5E1,-1.619407830494E2)); +#1795=CARTESIAN_POINT('',(-6.563071452476E1,2.500000000001E1, +-1.617790571317E2)); +#1796=CARTESIAN_POINT('',(-6.409000808534E1,2.499999999999E1, +-1.616712222365E2)); +#1797=CARTESIAN_POINT('',(-6.331964059014E1,2.499999999999E1, +-1.616172914002E2)); +#1799=CARTESIAN_POINT('',(-7.249999999992E1,1.126379534922E2,-5.36E1)); +#1800=CARTESIAN_POINT('',(-7.388893096454E1,1.127266871032E2,-5.36E1)); +#1801=CARTESIAN_POINT('',(-7.666676507962E1,1.129041377879E2,-5.36E1)); +#1802=CARTESIAN_POINT('',(-8.083343174975E1,1.131702808030E2,-5.36E1)); +#1803=CARTESIAN_POINT('',(-8.361115319183E1,1.133476875064E2,-5.36E1)); +#1804=CARTESIAN_POINT('',(-8.5E1,1.134363826783E2,-5.36E1)); +#1806=CARTESIAN_POINT('',(-7.973541387423E1,1.460845364280E2, +-5.359999999099E1)); +#1807=CARTESIAN_POINT('',(-7.953122913960E1,1.462771574755E2, +-6.139750041849E1)); +#1808=CARTESIAN_POINT('',(-7.912270717660E1,1.466625297293E2, +-7.699831797507E1)); +#1809=CARTESIAN_POINT('',(-7.850946940943E1,1.472410388759E2, +-1.004169929950E2)); +#1810=CARTESIAN_POINT('',(-7.810033373920E1,1.476270100141E2, +-1.160410753271E2)); +#1811=CARTESIAN_POINT('',(-7.789569208626E1,1.478200666053E2, +-1.238560247607E2)); +#1813=CARTESIAN_POINT('',(-7.789569208626E1,1.478200666053E2, +-1.238560247607E2)); +#1814=CARTESIAN_POINT('',(-7.783449773525E1,1.478777966551E2, +-1.261929427434E2)); +#1815=CARTESIAN_POINT('',(-7.737956667401E1,1.476920406285E2, +-1.310129532718E2)); +#1816=CARTESIAN_POINT('',(-7.560229070163E1,1.464889961475E2, +-1.383593104317E2)); +#1817=CARTESIAN_POINT('',(-7.347407253632E1,1.450974752121E2, +-1.435178254715E2)); +#1818=CARTESIAN_POINT('',(-7.213086778258E1,1.443062021939E2, +-1.460902661105E2)); +#1820=CARTESIAN_POINT('',(4.034383082927E1,1.994802791342E2,-1.458859474800E2)); +#1821=CARTESIAN_POINT('',(4.034358179921E1,1.946392078519E2,-1.458927144106E2)); +#1822=CARTESIAN_POINT('',(3.993101462741E1,1.854584850623E2,-1.459113341450E2)); +#1823=CARTESIAN_POINT('',(3.800049398671E1,1.739185415505E2,-1.459743146657E2)); +#1824=CARTESIAN_POINT('',(3.471166813903E1,1.640631556693E2,-1.460396914494E2)); +#1825=CARTESIAN_POINT('',(3.053023900089E1,1.563169860035E2,-1.460868025377E2)); +#1826=CARTESIAN_POINT('',(2.459596846150E1,1.491530350370E2,-1.461113489834E2)); +#1827=CARTESIAN_POINT('',(2.030811026133E1,1.457632989045E2,-1.461008465832E2)); +#1828=CARTESIAN_POINT('',(1.813820889572E1,1.443061931079E2,-1.460902994783E2)); +#1830=CARTESIAN_POINT('',(6.E1,1.4519E2,-1.02E2)); +#1831=DIRECTION('',(0.E0,0.E0,1.E0)); +#1832=DIRECTION('',(6.578947368421E-1,7.531098958555E-1,0.E0)); +#1833=AXIS2_PLACEMENT_3D('',#1830,#1831,#1832); +#1835=CARTESIAN_POINT('',(4.014428198252E1,1.775898880691E2,-1.019999983709E2)); +#1836=CARTESIAN_POINT('',(3.950137881913E1,1.742295494399E2,-1.019999983709E2)); +#1837=CARTESIAN_POINT('',(3.788684585605E1,1.679857803194E2,-1.020000007622E2)); +#1838=CARTESIAN_POINT('',(3.440330596722E1,1.598835241652E2,-1.019999997761E2)); +#1839=CARTESIAN_POINT('',(3.039252448269E1,1.534875882985E2,-1.020000001334E2)); +#1840=CARTESIAN_POINT('',(2.662412614833E1,1.492456478085E2,-1.019999998380E2)); +#1841=CARTESIAN_POINT('',(2.447537015582E1,1.472801423223E2,-1.019999998380E2)); +#1843=CARTESIAN_POINT('',(6.E1,1.4519E2,-1.02E2)); +#1844=DIRECTION('',(0.E0,0.E0,1.E0)); +#1845=DIRECTION('',(-9.348585999821E-1,-3.550202783498E-1,0.E0)); +#1846=AXIS2_PLACEMENT_3D('',#1843,#1844,#1845); +#1848=CARTESIAN_POINT('',(6.E1,1.4519E2,-1.02E2)); +#1849=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1850=DIRECTION('',(0.E0,1.E0,0.E0)); +#1851=AXIS2_PLACEMENT_3D('',#1848,#1849,#1850); +#1853=CARTESIAN_POINT('',(6.E1,1.4519E2,-1.02E2)); +#1854=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1855=DIRECTION('',(0.E0,-1.E0,0.E0)); +#1856=AXIS2_PLACEMENT_3D('',#1853,#1854,#1855); +#1858=DIRECTION('',(0.E0,0.E0,1.E0)); +#1859=VECTOR('',#1858,4.84E1); +#1860=CARTESIAN_POINT('',(8.5E1,1.738081760425E2,-1.02E2)); +#1861=LINE('',#1860,#1859); +#1862=CARTESIAN_POINT('',(4.153519107535E1,1.784022162454E2,-6.860000013934E1)); +#1863=CARTESIAN_POINT('',(4.138052348249E1,1.783162265865E2,-7.235045477893E1)); +#1864=CARTESIAN_POINT('',(4.107150533018E1,1.781415932051E2,-7.982515058838E1)); +#1865=CARTESIAN_POINT('',(4.060766529728E1,1.778707773057E2,-9.095848020257E1)); +#1866=CARTESIAN_POINT('',(4.029882242955E1,1.776845951390E2,-9.832824576658E1)); +#1867=CARTESIAN_POINT('',(4.014428198252E1,1.775898880691E2,-1.019999983709E2)); +#1869=DIRECTION('',(0.E0,-1.894780628694E-14,1.E0)); +#1870=VECTOR('',#1869,1.5E1); +#1871=CARTESIAN_POINT('',(5.292423951052E1,1.825254203605E2,-6.86E1)); +#1872=LINE('',#1871,#1870); +#1873=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1874=VECTOR('',#1873,1.5E1); +#1875=CARTESIAN_POINT('',(3.E1,2.598093778492E2,-5.36E1)); +#1876=LINE('',#1875,#1874); +#1877=CARTESIAN_POINT('',(6.E1,1.4519E2,-6.86E1)); +#1878=DIRECTION('',(0.E0,0.E0,-1.E0)); +#1879=DIRECTION('',(-4.859160724206E-1,8.740054751335E-1,0.E0)); +#1880=AXIS2_PLACEMENT_3D('',#1877,#1878,#1879); +#1882=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-6.86E1)); +#1883=DIRECTION('',(0.E0,0.E0,1.E0)); +#1884=DIRECTION('',(9.746827294957E-1,-2.235924346280E-1,0.E0)); +#1885=AXIS2_PLACEMENT_3D('',#1882,#1883,#1884); +#1887=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-6.86E1)); +#1888=DIRECTION('',(0.E0,0.E0,1.E0)); +#1889=DIRECTION('',(1.E0,0.E0,0.E0)); +#1890=AXIS2_PLACEMENT_3D('',#1887,#1888,#1889); +#1892=CARTESIAN_POINT('',(3.000018638411E1,2.475589762720E2,-6.859998692460E1)); +#1893=CARTESIAN_POINT('',(3.097586405663E1,2.463594107505E2,-6.859998692460E1)); +#1894=CARTESIAN_POINT('',(3.282721437915E1,2.438464163527E2,-6.860000606831E1)); +#1895=CARTESIAN_POINT('',(3.524966050531E1,2.397844175371E2,-6.859999837400E1)); +#1896=CARTESIAN_POINT('',(3.741717691034E1,2.352167014133E2,-6.860000043569E1)); +#1897=CARTESIAN_POINT('',(3.933024611043E1,2.300029000157E2,-6.859999988326E1)); +#1898=CARTESIAN_POINT('',(4.095302650563E1,2.239517622586E2,-6.860000003129E1)); +#1899=CARTESIAN_POINT('',(4.220592587352E1,2.169202781801E2,-6.859999999158E1)); +#1900=CARTESIAN_POINT('',(4.300532766477E1,2.088400315086E2,-6.860000000241E1)); +#1901=CARTESIAN_POINT('',(4.318787069947E1,2.027202007226E2,-6.86E1)); +#1902=CARTESIAN_POINT('',(4.318787070919E1,1.994798494047E2,-6.86E1)); +#1904=CARTESIAN_POINT('',(4.318787070919E1,1.994798494047E2,-6.86E1)); +#1905=CARTESIAN_POINT('',(4.318787070918E1,1.969376952453E2,-6.86E1)); +#1906=CARTESIAN_POINT('',(4.307984028649E1,1.919863229487E2,-6.860000001858E1)); +#1907=CARTESIAN_POINT('',(4.254146937662E1,1.849164205552E2,-6.859999993497E1)); +#1908=CARTESIAN_POINT('',(4.191562670082E1,1.805244434428E2,-6.860000013934E1)); +#1909=CARTESIAN_POINT('',(4.153519107535E1,1.784022162454E2,-6.860000013934E1)); +#1911=CARTESIAN_POINT('',(3.000004266690E1,2.428897124884E2,-1.460478878347E2)); +#1912=CARTESIAN_POINT('',(3.154385588157E1,2.406434686662E2,-1.460379333162E2)); +#1913=CARTESIAN_POINT('',(3.454764694191E1,2.354795173915E2,-1.460128501857E2)); +#1914=CARTESIAN_POINT('',(3.815623179728E1,2.244597046641E2,-1.459480370508E2)); +#1915=CARTESIAN_POINT('',(3.989102682197E1,2.135447247764E2,-1.458989806756E2)); +#1916=CARTESIAN_POINT('',(4.034374891660E1,2.043299563190E2,-1.458881724344E2)); +#1917=CARTESIAN_POINT('',(4.034383082927E1,1.994802791342E2,-1.458859474800E2)); +#1919=DIRECTION('',(3.677403567096E-2,-5.556493068288E-6,9.993236063806E-1)); +#1920=VECTOR('',#1919,7.733825858466E1); +#1921=CARTESIAN_POINT('',(4.034383082927E1,1.994802791342E2,-1.458859474800E2)); +#1922=LINE('',#1921,#1920); +#1923=DIRECTION('',(-1.954223482988E-7,1.E0,1.039500419362E-8)); +#1924=VECTOR('',#1923,1.558091289964E1); +#1925=CARTESIAN_POINT('',(2.447537320068E1,1.316992294227E2,-1.02E2)); +#1926=LINE('',#1925,#1924); +#1927=CARTESIAN_POINT('',(2.447537015582E1,1.472801423223E2,-1.019999998380E2)); +#1928=CARTESIAN_POINT('',(2.428459676974E1,1.474601151818E2,-1.092853415272E2)); +#1929=CARTESIAN_POINT('',(2.409382388148E1,1.476400912414E2,-1.165706831504E2)); +#1930=CARTESIAN_POINT('',(2.390305049656E1,1.478200658945E2,-1.238560247953E2)); +#1932=DIRECTION('',(-4.477913537279E-13,1.E0,-2.409639571630E-14)); +#1933=VECTOR('',#1932,7.077002660072E0); +#1934=CARTESIAN_POINT('',(2.574277180462E1,1.216678668640E2,-5.36E1)); +#1935=LINE('',#1934,#1933); +#1936=CARTESIAN_POINT('',(5.253298405632E0,1.224643691008E2,-1.448701161452E2)); +#1937=CARTESIAN_POINT('',(5.627579211614E0,1.224237079003E2,-1.402108040614E2)); +#1938=CARTESIAN_POINT('',(6.020847707192E0,1.223774622028E2,-1.349115719944E2)); +#1939=CARTESIAN_POINT('',(6.378852057874E0,1.223276870186E2,-1.292079008430E2)); +#1940=CARTESIAN_POINT('',(6.439392325226E0,1.223189573165E2,-1.282075760584E2)); +#1941=CARTESIAN_POINT('',(6.461851306827E0,1.223156715455E2,-1.278310639960E2)); +#1943=DIRECTION('',(1.E0,1.922832583537E-12,0.E0)); +#1944=VECTOR('',#1943,7.242771804543E0); +#1945=CARTESIAN_POINT('',(1.850000000008E1,1.216678668640E2,-5.36E1)); +#1946=LINE('',#1945,#1944); +#1947=DIRECTION('',(-2.617595225285E-2,8.723545360278E-3,-9.996192871689E-1)); +#1948=VECTOR('',#1947,7.028278248807E1); +#1949=CARTESIAN_POINT('',(2.574277180462E1,1.216678668640E2,-5.36E1)); +#1950=LINE('',#1949,#1948); +#1951=CARTESIAN_POINT('',(2.390305304601E1,1.222809819051E2,-1.238560249310E2)); +#1952=CARTESIAN_POINT('',(2.374352947150E1,1.223341456306E2,-1.299479844630E2)); +#1953=CARTESIAN_POINT('',(2.140909599415E1,1.224271318134E2,-1.406031456349E2)); +#1954=CARTESIAN_POINT('',(1.413720619197E1,1.225416532043E2,-1.537259972360E2)); +#1955=CARTESIAN_POINT('',(3.459514752686E0,1.226336291846E2,-1.642654006622E2)); +#1956=CARTESIAN_POINT('',(-6.172517258794E0,1.226783073997E2, +-1.693850170129E2)); +#1957=CARTESIAN_POINT('',(-1.199632111960E1,1.226939752464E2, +-1.711803744151E2)); +#1959=DIRECTION('',(-5.754904600103E-6,-9.999619230476E-1,-8.726535498228E-3)); +#1960=VECTOR('',#1959,7.884358728495E1); +#1961=CARTESIAN_POINT('',(5.253298405632E0,1.224643691008E2,-1.448701161452E2)); +#1962=LINE('',#1961,#1960); +#1963=CARTESIAN_POINT('',(5.252844668309E0,4.362378393941E1,-1.455581475084E2)); +#1964=CARTESIAN_POINT('',(5.399643082762E0,4.579797160151E1,-1.437115840374E2)); +#1965=CARTESIAN_POINT('',(5.692415616075E0,5.005416523263E1,-1.399289156309E2)); +#1966=CARTESIAN_POINT('',(6.113214732332E0,5.615389341776E1,-1.340003954013E2)); +#1967=CARTESIAN_POINT('',(6.373140277531E0,6.002482161711E1,-1.298883337904E2)); +#1968=CARTESIAN_POINT('',(6.495212666513E0,6.191010253814E1,-1.277948160008E2)); +#1970=CARTESIAN_POINT('',(6.495212666513E0,6.191010253814E1,-1.277948160008E2)); +#1971=CARTESIAN_POINT('',(6.484180232228E0,8.204531297683E1,-1.278068158664E2)); +#1972=CARTESIAN_POINT('',(6.473057497336E0,1.021804613003E2,-1.278189015912E2)); +#1973=CARTESIAN_POINT('',(6.461851306827E0,1.223156715455E2,-1.278310639960E2)); +#1975=CARTESIAN_POINT('',(-7.5E0,2.5E1,-1.457206748087E2)); +#1976=CARTESIAN_POINT('',(-7.5E0,2.677352920173E1,-1.457051974538E2)); +#1977=CARTESIAN_POINT('',(-7.138906707015E0,2.847021461960E1, +-1.456903907045E2)); +#1978=CARTESIAN_POINT('',(-6.416713281516E0,3.009005479810E1, +-1.456762545734E2)); +#1980=DIRECTION('',(-1.E0,2.883425424570E-13,0.E0)); +#1981=VECTOR('',#1980,1.724961952523E1); +#1982=CARTESIAN_POINT('',(5.253298405632E0,1.224643691008E2,-1.448701161452E2)); +#1983=LINE('',#1982,#1981); +#1984=DIRECTION('',(0.E0,9.999619230642E-1,8.726535498537E-3)); +#1985=VECTOR('',#1984,9.746808038669E1); +#1986=CARTESIAN_POINT('',(-1.199632111960E1,2.5E1,-1.457206748087E2)); +#1987=LINE('',#1986,#1985); +#1988=DIRECTION('',(2.774791696051E-14,8.726535498852E-3,-9.999619230642E-1)); +#1989=VECTOR('',#1988,2.631126012207E1); +#1990=CARTESIAN_POINT('',(-1.199632111960E1,1.224643691008E2, +-1.448701161452E2)); +#1991=LINE('',#1990,#1989); +#1992=CARTESIAN_POINT('',(-1.199058065951E1,1.329994625013E2, +-1.557052167791E2)); +#1993=CARTESIAN_POINT('',(-1.199058065951E1,1.329256763024E2, +-1.557054165974E2)); +#1994=CARTESIAN_POINT('',(-1.199919134964E1,1.327792504216E2, +-1.557042988472E2)); +#1995=CARTESIAN_POINT('',(-1.199632111960E1,1.326324300813E2, +-1.557063795397E2)); +#1996=CARTESIAN_POINT('',(-1.199632111960E1,1.325593244203E2, +-1.557072845143E2)); +#1998=DIRECTION('',(-2.558322067291E-14,-8.726535498603E-3,9.999619230642E-1)); +#1999=VECTOR('',#1998,2.596848404780E1); +#2000=CARTESIAN_POINT('',(-1.199632111960E1,1.325593244203E2, +-1.557072845143E2)); +#2001=LINE('',#2000,#1999); +#2002=DIRECTION('',(-1.985842840941E-14,-1.E0,0.E0)); +#2003=VECTOR('',#2002,6.717772216845E1); +#2004=CARTESIAN_POINT('',(-1.199632111960E1,1.323327095224E2, +-1.297397892668E2)); +#2005=LINE('',#2004,#2003); +#2006=DIRECTION('',(0.E0,-9.999619230642E-1,-8.726535497596E-3)); +#2007=VECTOR('',#2006,3.015613560720E1); +#2008=CARTESIAN_POINT('',(-1.199632111959E1,6.515498735396E1, +-1.230288139017E2)); +#2009=LINE('',#2008,#2007); +#2010=DIRECTION('',(-2.634824250744E-13,0.E0,1.E0)); +#2011=VECTOR('',#2010,1.283646687730E1); +#2012=CARTESIAN_POINT('',(-1.199632111959E1,3.5E1,-1.232919724895E2)); +#2013=LINE('',#2012,#2011); +#2014=CARTESIAN_POINT('',(-1.199632111959E1,-1.5E1,-1.104555056122E2)); +#2015=CARTESIAN_POINT('',(-1.199632111959E1,-1.323036162855E1, +-1.118407544057E2)); +#2016=CARTESIAN_POINT('',(-1.199632111960E1,-9.501829949944E0, +-1.144941800294E2)); +#2017=CARTESIAN_POINT('',(-1.199632111960E1,-3.679054594259E0, +-1.182389821731E2)); +#2018=CARTESIAN_POINT('',(-1.199632111961E1,6.459865436566E-1, +-1.208455737252E2)); +#2019=CARTESIAN_POINT('',(-1.199632111961E1,2.888543819998E0, +-1.221653931180E2)); +#2021=CARTESIAN_POINT('',(-1.199632111961E1,2.888543819998E0, +-1.221653931180E2)); +#2022=CARTESIAN_POINT('',(-1.199632111961E1,5.048693581407E0, +-1.234367129529E2)); +#2023=CARTESIAN_POINT('',(-1.199632111960E1,9.138490099122E0, +-1.263382720928E2)); +#2024=CARTESIAN_POINT('',(-1.199632111960E1,1.469259090327E1, +-1.319432282980E2)); +#2025=CARTESIAN_POINT('',(-1.199632111960E1,1.924961096775E1, +-1.384158121944E2)); +#2026=CARTESIAN_POINT('',(-1.199632111960E1,2.254860259189E1, +-1.455035271509E2)); +#2027=CARTESIAN_POINT('',(-1.199632111960E1,2.457893680657E1, +-1.530099815867E2)); +#2028=CARTESIAN_POINT('',(-1.199632111960E1,2.5E1,-1.579569444252E2)); +#2029=CARTESIAN_POINT('',(-1.199632111960E1,2.5E1,-1.604441561918E2)); +#2031=DIRECTION('',(-3.709467664853E-4,3.473300252100E-5,-9.999999305961E-1)); +#2032=VECTOR('',#2031,1.547515871E1); +#2033=CARTESIAN_POINT('',(-1.199058065951E1,1.329994625013E2, +-1.557052167791E2)); +#2034=LINE('',#2033,#2032); +#2035=DIRECTION('',(-1.348807660944E-13,0.E0,1.E0)); +#2036=VECTOR('',#2035,1.490824822861E1); +#2037=CARTESIAN_POINT('',(-1.699632111960E1,1.38E2,-1.724483496347E2)); +#2038=LINE('',#2037,#2036); +#2039=CARTESIAN_POINT('',(-8.106076420312E0,1.371201476872E2, +-1.196557747190E2)); +#2040=CARTESIAN_POINT('',(-8.158690645515E0,1.371180970975E2, +-1.207934220188E2)); +#2041=CARTESIAN_POINT('',(-8.270994229599E0,1.371105231260E2, +-1.230569461720E2)); +#2042=CARTESIAN_POINT('',(-8.454589381799E0,1.370879221854E2, +-1.264185340598E2)); +#2043=CARTESIAN_POINT('',(-8.587882227744E0,1.370637484843E2, +-1.286364928305E2)); +#2044=CARTESIAN_POINT('',(-8.656434216330E0,1.370492462361E2, +-1.297397892668E2)); +#2046=DIRECTION('',(5.850156355977E-6,-8.726535497430E-3,9.999619230471E-1)); +#2047=VECTOR('',#2046,3.427690187901E1); +#2048=CARTESIAN_POINT('',(-6.996321119606E0,1.375355087694E2, +-1.529564644746E2)); +#2049=LINE('',#2048,#2047); +#2050=CARTESIAN_POINT('',(-8.106076420312E0,1.371201476872E2, +-1.196557747190E2)); +#2051=CARTESIAN_POINT('',(-7.865950816485E0,1.350274752616E2, +-1.194737673595E2)); +#2052=CARTESIAN_POINT('',(-7.407833299829E0,1.310208240634E2, +-1.191145814305E2)); +#2053=CARTESIAN_POINT('',(-6.791861997639E0,1.255581904563E2, +-1.185980866543E2)); +#2054=CARTESIAN_POINT('',(-6.242230489232E0,1.206058199516E2, +-1.181102593733E2)); +#2055=CARTESIAN_POINT('',(-5.757125468498E0,1.161388884272E2, +-1.176566803915E2)); +#2056=CARTESIAN_POINT('',(-5.333776956173E0,1.121282103375E2, +-1.172423475555E2)); +#2057=CARTESIAN_POINT('',(-4.969156586313E0,1.085415224878E2, +-1.168710429656E2)); +#2058=CARTESIAN_POINT('',(-4.662215934258E0,1.053698778713E2, +-1.165479189607E2)); +#2059=CARTESIAN_POINT('',(-4.408537440224E0,1.025777869311E2, +-1.162737515587E2)); +#2060=CARTESIAN_POINT('',(-4.200060204200E0,1.000912444873E2, +-1.160440265063E2)); +#2061=CARTESIAN_POINT('',(-4.029860412811E0,9.784048095584E1, +-1.158541653442E2)); +#2062=CARTESIAN_POINT('',(-3.892621118620E0,9.576548574975E1, +-1.157004739694E2)); +#2063=CARTESIAN_POINT('',(-3.783697723540E0,9.379342739857E1, +-1.155794503369E2)); +#2064=CARTESIAN_POINT('',(-3.702103486805E0,9.188633894910E1, +-1.154914194524E2)); +#2065=CARTESIAN_POINT('',(-3.647674783782E0,8.999617524476E1, +-1.154375435649E2)); +#2066=CARTESIAN_POINT('',(-3.622404137156E0,8.810758171003E1, +-1.154211996253E2)); +#2067=CARTESIAN_POINT('',(-3.627537325211E0,8.622335946953E1, +-1.154443186439E2)); +#2068=CARTESIAN_POINT('',(-3.662786140838E0,8.433575665539E1, +-1.155065236002E2)); +#2069=CARTESIAN_POINT('',(-3.726573036185E0,8.244213824160E1, +-1.156053314499E2)); +#2070=CARTESIAN_POINT('',(-3.817210302475E0,8.052146490363E1, +-1.157379824415E2)); +#2071=CARTESIAN_POINT('',(-3.934723012594E0,7.853289951474E1, +-1.159038376436E2)); +#2072=CARTESIAN_POINT('',(-4.081097480579E0,7.642501639769E1, +-1.161045221988E2)); +#2073=CARTESIAN_POINT('',(-4.263021158970E0,7.410635589070E1, +-1.163473463229E2)); +#2074=CARTESIAN_POINT('',(-4.487703103724E0,7.150508058753E1, +-1.166389012979E2)); +#2075=CARTESIAN_POINT('',(-4.760749616641E0,6.857050589809E1, +-1.169831590408E2)); +#2076=CARTESIAN_POINT('',(-4.981479819324E0,6.633671846445E1, +-1.172513682186E2)); +#2077=CARTESIAN_POINT('',(-5.101024770992E0,6.515498838114E1, +-1.173941360337E2)); +#2079=CARTESIAN_POINT('',(-5.101024770992E0,6.515498838114E1, +-1.173941360337E2)); +#2080=CARTESIAN_POINT('',(-5.196040429328E0,6.515498838114E1, +-1.186254361904E2)); +#2081=CARTESIAN_POINT('',(-5.404530755864E0,6.515498687461E1, +-1.211812083319E2)); +#2082=CARTESIAN_POINT('',(-5.769571883708E0,6.515498749092E1, +-1.252847971247E2)); +#2083=CARTESIAN_POINT('',(-6.048760487485E0,6.515498735396E1,-1.282223417E2)); +#2084=CARTESIAN_POINT('',(-6.196794757926E0,6.515498735396E1, +-1.297397892668E2)); +#2086=CARTESIAN_POINT('',(-6.196794757926E0,6.515498735396E1, +-1.297397892668E2)); +#2087=CARTESIAN_POINT('',(-6.109913672373E0,6.639936272525E1, +-1.297397892668E2)); +#2088=CARTESIAN_POINT('',(-5.948353756439E0,6.885267387989E1, +-1.297397892668E2)); +#2089=CARTESIAN_POINT('',(-5.745970507500E0,7.240249926324E1, +-1.297397892668E2)); +#2090=CARTESIAN_POINT('',(-5.581529499307E0,7.589421278595E1, +-1.297397892668E2)); +#2091=CARTESIAN_POINT('',(-5.456440889025E0,7.936873751888E1, +-1.297397892668E2)); +#2092=CARTESIAN_POINT('',(-5.373231242874E0,8.287736312857E1, +-1.297397892668E2)); +#2093=CARTESIAN_POINT('',(-5.336391191386E0,8.640428582840E1, +-1.297397892668E2)); +#2094=CARTESIAN_POINT('',(-5.348002321145E0,8.994107564589E1, +-1.297397892668E2)); +#2095=CARTESIAN_POINT('',(-5.407391199139E0,9.345960640226E1, +-1.297397892668E2)); +#2096=CARTESIAN_POINT('',(-5.511155822487E0,9.695079260717E1, +-1.297397892668E2)); +#2097=CARTESIAN_POINT('',(-5.655543430418E0,1.004319289534E2, +-1.297397892668E2)); +#2098=CARTESIAN_POINT('',(-5.837900998079E0,1.039374943009E2, +-1.297397892668E2)); +#2099=CARTESIAN_POINT('',(-6.058083044800E0,1.075249398247E2, +-1.297397892668E2)); +#2100=CARTESIAN_POINT('',(-6.319428658858E0,1.112757315192E2, +-1.297397892668E2)); +#2101=CARTESIAN_POINT('',(-6.629176689652E0,1.152946380735E2, +-1.297397892668E2)); +#2102=CARTESIAN_POINT('',(-7.000239293598E0,1.197274791737E2, +-1.297397892668E2)); +#2103=CARTESIAN_POINT('',(-7.449425305850E0,1.247337931493E2, +-1.297397892668E2)); +#2104=CARTESIAN_POINT('',(-7.989269622813E0,1.304116622363E2, +-1.297397892668E2)); +#2105=CARTESIAN_POINT('',(-8.422183428658E0,1.347503879811E2, +-1.297397892668E2)); +#2106=CARTESIAN_POINT('',(-8.656434216330E0,1.370492462361E2, +-1.297397892668E2)); +#2108=CARTESIAN_POINT('',(-1.097516337784E1,6.515498706311E1, +-1.223971672266E2)); +#2109=CARTESIAN_POINT('',(-1.025410794479E1,6.515498706311E1, +-1.219306329830E2)); +#2110=CARTESIAN_POINT('',(-8.857638600365E0,6.515498762665E1, +-1.209376015258E2)); +#2111=CARTESIAN_POINT('',(-6.890100993255E0,6.515498683583E1, +-1.192620365839E2)); +#2112=CARTESIAN_POINT('',(-5.680670616786E0,6.515498838114E1, +-1.180363797831E2)); +#2113=CARTESIAN_POINT('',(-5.101024770992E0,6.515498838114E1, +-1.173941360337E2)); +#2115=CARTESIAN_POINT('',(-8.106076420312E0,1.371201476872E2, +-1.196557747190E2)); +#2116=CARTESIAN_POINT('',(-7.986439767652E0,1.371465126084E2, +-1.195557651358E2)); +#2117=CARTESIAN_POINT('',(-7.744117397599E0,1.371905424433E2, +-1.193508919681E2)); +#2118=CARTESIAN_POINT('',(-7.373044048170E0,1.372298307624E2, +-1.190255434991E2)); +#2119=CARTESIAN_POINT('',(-7.122559606232E0,1.372374081981E2, +-1.187975224054E2)); +#2120=CARTESIAN_POINT('',(-6.996120594370E0,1.372363901684E2, +-1.186808677556E2)); +#2122=DIRECTION('',(-8.360658836740E-13,-9.999619251061E-1,-8.726301513420E-3)); +#2123=VECTOR('',#2122,7.063649006126E1); +#2124=CARTESIAN_POINT('',(2.499958914064E0,1.370471842462E2,-9.700001652925E1)); +#2125=LINE('',#2124,#2123); +#2126=CARTESIAN_POINT('',(1.776402741359E0,6.184133012924E1,-1.041484006631E2)); +#2127=CARTESIAN_POINT('',(1.782272596794E0,5.885926668174E1,-1.041484006631E2)); +#2128=CARTESIAN_POINT('',(1.814022615870E0,5.289500033832E1,-1.041483264134E2)); +#2129=CARTESIAN_POINT('',(1.789796250442E0,4.394786339850E1,-1.041483255576E2)); +#2130=CARTESIAN_POINT('',(1.822649872508E0,3.798272203887E1,-1.041484020895E2)); +#2131=CARTESIAN_POINT('',(1.828298986212E0,3.500000049967E1,-1.041484020895E2)); +#2133=DIRECTION('',(-2.298956637291E-3,9.999711877966E-1,7.234526596647E-3)); +#2134=VECTOR('',#2133,3.015585563589E1); +#2135=CARTESIAN_POINT('',(-1.090583637337E1,3.500000028387E1, +-1.226153305663E2)); +#2136=LINE('',#2135,#2134); +#2137=DIRECTION('',(-1.191918374396E-12,0.E0,-1.E0)); +#2138=VECTOR('',#2137,6.710975365133E0); +#2139=CARTESIAN_POINT('',(-1.199632111959E1,6.515498735396E1, +-1.230288139017E2)); +#2140=LINE('',#2139,#2138); +#2141=CARTESIAN_POINT('',(-1.097516337784E1,6.515498706311E1, +-1.223971672266E2)); +#2142=CARTESIAN_POINT('',(-1.108719133313E1,6.515498706311E1, +-1.224696493751E2)); +#2143=CARTESIAN_POINT('',(-1.131216462408E1,6.515498748969E1, +-1.226131415992E2)); +#2144=CARTESIAN_POINT('',(-1.165261690407E1,6.515498731518E1, +-1.228236742994E2)); +#2145=CARTESIAN_POINT('',(-1.188143641260E1,6.515498735396E1, +-1.229609505889E2)); +#2146=CARTESIAN_POINT('',(-1.199632111959E1,6.515498735396E1, +-1.230288139017E2)); +#2148=CARTESIAN_POINT('',(-1.199632111960E1,1.323327095224E2, +-1.297397892668E2)); +#2149=CARTESIAN_POINT('',(-1.199632111959E1,1.335129839784E2, +-1.297397892668E2)); +#2150=CARTESIAN_POINT('',(-1.127058434522E1,1.353596091054E2, +-1.297397892668E2)); +#2151=CARTESIAN_POINT('',(-9.769748710216E0,1.366573551426E2, +-1.297397892668E2)); +#2152=CARTESIAN_POINT('',(-8.656434216318E0,1.370492462361E2, +-1.297397892668E2)); +#2154=DIRECTION('',(-1.E0,0.E0,-1.470208478656E-14)); +#2155=VECTOR('',#2154,5.799526361674E0); +#2156=CARTESIAN_POINT('',(-6.196794757926E0,6.515498735396E1, +-1.297397892668E2)); +#2157=LINE('',#2156,#2155); +#2158=CARTESIAN_POINT('',(-2.699999999992E1,3.5E1,-9.8E1)); +#2159=DIRECTION('',(0.E0,1.E0,0.E0)); +#2160=DIRECTION('',(9.991580939863E-1,0.E0,-4.102564102564E-2)); +#2161=AXIS2_PLACEMENT_3D('',#2158,#2159,#2160); +#2163=CARTESIAN_POINT('',(-1.199632111959E1,3.5E1,-1.232919724895E2)); +#2164=CARTESIAN_POINT('',(-1.187344912711E1,3.5E1,-1.232193910234E2)); +#2165=CARTESIAN_POINT('',(-1.162874663815E1,3.500000003785E1, +-1.230724282976E2)); +#2166=CARTESIAN_POINT('',(-1.126515238375E1,3.499999986753E1, +-1.228468778819E2)); +#2167=CARTESIAN_POINT('',(-1.102439569465E1,3.500000028387E1, +-1.226925152907E2)); +#2168=CARTESIAN_POINT('',(-1.090583637337E1,3.500000028387E1, +-1.226153305663E2)); +#2170=CARTESIAN_POINT('',(-1.090583637337E1,3.500000028387E1, +-1.226153305663E2)); +#2171=CARTESIAN_POINT('',(-9.277942362288E0,3.500000028387E1, +-1.215555106740E2)); +#2172=CARTESIAN_POINT('',(-6.299105636431E0,3.499999985036E1, +-1.191671031460E2)); +#2173=CARTESIAN_POINT('',(-2.558827694344E0,3.500000009794E1, +-1.147466132535E2)); +#2174=CARTESIAN_POINT('',(2.432793048926E-1,3.499999975787E1, +-1.096794748914E2)); +#2175=CARTESIAN_POINT('',(1.416577742088E0,3.500000049967E1,-1.060455188753E2)); +#2176=CARTESIAN_POINT('',(1.828298986212E0,3.500000049967E1,-1.041484020895E2)); +#2178=DIRECTION('',(-1.E0,-1.818317511651E-14,2.111594529659E-14)); +#2179=VECTOR('',#2178,1.211384957106E1); +#2180=CARTESIAN_POINT('',(4.613849571136E0,3.E1,-9.38E1)); +#2181=LINE('',#2180,#2179); +#2182=DIRECTION('',(1.E0,2.372067009663E-14,-2.741055211166E-14)); +#2183=VECTOR('',#2182,1.347956148749E1); +#2184=CARTESIAN_POINT('',(-7.516417167187E0,3.5E1,-9.88E1)); +#2185=LINE('',#2184,#2183); +#2186=DIRECTION('',(-3.465884911087E-13,-1.E0,-6.581094513560E-13)); +#2187=VECTOR('',#2186,1.347431392151E1); +#2188=CARTESIAN_POINT('',(8.583286718484E0,6.184132964200E1,-1.041483448332E2)); +#2189=LINE('',#2188,#2187); +#2190=CARTESIAN_POINT('',(8.583286718479E0,4.836701572049E1,-1.041483448332E2)); +#2191=CARTESIAN_POINT('',(8.362644681501E0,4.688248636809E1,-1.041483448332E2)); +#2192=CARTESIAN_POINT('',(7.924073856143E0,4.391303279418E1,-1.041483448332E2)); +#2193=CARTESIAN_POINT('',(7.276618962967E0,3.945731947134E1,-1.041483448332E2)); +#2194=CARTESIAN_POINT('',(6.851160984407E0,3.648595848586E1,-1.041483448332E2)); +#2195=CARTESIAN_POINT('',(6.640358504370E0,3.5E1,-1.041483448332E2)); +#2197=DIRECTION('',(-9.999999999292E-1,1.038378917585E-7,-1.189850800518E-5)); +#2198=VECTOR('',#2197,4.812059518498E0); +#2199=CARTESIAN_POINT('',(6.640358504370E0,3.5E1,-1.041483448332E2)); +#2200=LINE('',#2199,#2198); +#2201=DIRECTION('',(-3.958108246984E-6,-9.999999782276E-1,-2.086361612883E-4)); +#2202=VECTOR('',#2201,4.531031284458E1); +#2203=CARTESIAN_POINT('',(2.500180929700E0,1.365550557037E2,-4.058909221191E1)); +#2204=LINE('',#2203,#2202); +#2205=CARTESIAN_POINT('',(2.500000000076E0,-7.078058083514E1, +-3.807070152652E0)); +#2206=DIRECTION('',(-1.E0,0.E0,0.E0)); +#2207=DIRECTION('',(0.E0,9.751730770557E-1,-2.214440556566E-1)); +#2208=AXIS2_PLACEMENT_3D('',#2205,#2206,#2207); +#2210=CARTESIAN_POINT('',(2.500000000076E0,-8.000179578406E1, +1.429144561350E-3)); +#2211=DIRECTION('',(-1.E0,0.E0,0.E0)); +#2212=DIRECTION('',(0.E0,8.460880630010E-1,-5.330431405122E-1)); +#2213=AXIS2_PLACEMENT_3D('',#2210,#2211,#2212); +#2215=DIRECTION('',(3.935535371987E-6,-8.723661632034E-3,9.999619481321E-1)); +#2216=VECTOR('',#2215,5.641307094006E1); +#2217=CARTESIAN_POINT('',(2.499958914064E0,1.370471842462E2,-9.700001652925E1)); +#2218=LINE('',#2217,#2216); +#2219=CARTESIAN_POINT('',(6.495212666513E0,6.191010253814E1,-1.277948160008E2)); +#2220=CARTESIAN_POINT('',(8.383302724407E0,6.375948680053E1,-1.257411598003E2)); +#2221=CARTESIAN_POINT('',(1.177892309383E1,6.760532886897E1,-1.212876183527E2)); +#2222=CARTESIAN_POINT('',(1.563737398377E1,7.356636354898E1,-1.136752197337E2)); +#2223=CARTESIAN_POINT('',(1.804499505298E1,7.954229283378E1,-1.051233900348E2)); +#2224=CARTESIAN_POINT('',(1.850000000008E1,8.292518068591E1,-9.967450013005E1)); +#2225=CARTESIAN_POINT('',(1.850000000008E1,8.450222622976E1,-9.7E1)); +#2227=DIRECTION('',(0.E0,1.E0,-4.958456194124E-14)); +#2228=VECTOR('',#2227,3.754438669636E1); +#2229=CARTESIAN_POINT('',(1.850000000008E1,8.450222622976E1,-9.7E1)); +#2230=LINE('',#2229,#2228); +#2231=CARTESIAN_POINT('',(1.850000000008E1,1.220466129262E2,-9.7E1)); +#2232=CARTESIAN_POINT('',(1.850000000008E1,1.220982921441E2,-1.029218518227E2)); +#2233=CARTESIAN_POINT('',(1.628024597795E1,1.221940873773E2,-1.138988982796E2)); +#2234=CARTESIAN_POINT('',(1.047460261534E1,1.222776646765E2,-1.234759081819E2)); +#2235=CARTESIAN_POINT('',(6.461851306825E0,1.223156715455E2,-1.278310639960E2)); +#2237=CARTESIAN_POINT('',(1.850000000008E1,-8.000179578406E1, +1.429144561350E-3)); +#2238=DIRECTION('',(1.E0,0.E0,0.E0)); +#2239=DIRECTION('',(0.E0,8.613974364460E-1,-5.079315470457E-1)); +#2240=AXIS2_PLACEMENT_3D('',#2237,#2238,#2239); +#2242=DIRECTION('',(0.E0,1.E0,6.651860593611E-14)); +#2243=VECTOR('',#2242,1.837280695090E1); +#2244=CARTESIAN_POINT('',(1.850000000008E1,1.032950599131E2,-5.36E1)); +#2245=LINE('',#2244,#2243); +#2246=DIRECTION('',(0.E0,8.726535498229E-3,-9.999619230642E-1)); +#2247=VECTOR('',#2246,4.340165260194E1); +#2248=CARTESIAN_POINT('',(1.850000000008E1,1.216678668640E2,-5.36E1)); +#2249=LINE('',#2248,#2247); +#2250=CARTESIAN_POINT('',(6.E1,1.4519E2,-5.36E1)); +#2251=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2252=DIRECTION('',(6.578947368421E-1,-7.531098958555E-1,0.E0)); +#2253=AXIS2_PLACEMENT_3D('',#2250,#2251,#2252); +#2255=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2256=VECTOR('',#2255,4.84E1); +#2257=CARTESIAN_POINT('',(8.5E1,1.165718239575E2,-5.36E1)); +#2258=LINE('',#2257,#2256); +#2259=CARTESIAN_POINT('',(2.447537320068E1,1.316992294227E2,-1.019999999997E2)); +#2260=CARTESIAN_POINT('',(2.489763397695E1,1.305873095066E2,-8.587451153232E1)); +#2261=CARTESIAN_POINT('',(2.532013693348E1,1.296252699104E2,-6.973977457420E1)); +#2262=CARTESIAN_POINT('',(2.574277180462E1,1.287448695241E2,-5.360000000021E1)); +#2264=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2265=VECTOR('',#2264,1.5E1); +#2266=CARTESIAN_POINT('',(6.E1,1.3519E2,-8.7E1)); +#2267=LINE('',#2266,#2265); +#2268=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2269=VECTOR('',#2268,1.5E1); +#2270=CARTESIAN_POINT('',(6.E1,1.5519E2,-8.7E1)); +#2271=LINE('',#2270,#2269); +#2272=CARTESIAN_POINT('',(6.E1,1.4519E2,-8.7E1)); +#2273=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2274=DIRECTION('',(1.E0,0.E0,0.E0)); +#2275=AXIS2_PLACEMENT_3D('',#2272,#2273,#2274); +#2277=CARTESIAN_POINT('',(6.E1,1.4519E2,-8.7E1)); +#2278=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2279=DIRECTION('',(0.E0,-1.E0,0.E0)); +#2280=AXIS2_PLACEMENT_3D('',#2277,#2278,#2279); +#2282=CARTESIAN_POINT('',(6.E1,1.4519E2,-8.7E1)); +#2283=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2284=DIRECTION('',(-1.E0,0.E0,0.E0)); +#2285=AXIS2_PLACEMENT_3D('',#2282,#2283,#2284); +#2287=CARTESIAN_POINT('',(6.E1,1.4519E2,-8.7E1)); +#2288=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2289=DIRECTION('',(0.E0,1.E0,0.E0)); +#2290=AXIS2_PLACEMENT_3D('',#2287,#2288,#2289); +#2292=CARTESIAN_POINT('',(6.E1,1.4519E2,-8.7E1)); +#2293=DIRECTION('',(0.E0,0.E0,1.E0)); +#2294=DIRECTION('',(0.E0,-1.E0,0.E0)); +#2295=AXIS2_PLACEMENT_3D('',#2292,#2293,#2294); +#2297=CARTESIAN_POINT('',(6.E1,1.4519E2,-8.7E1)); +#2298=DIRECTION('',(0.E0,0.E0,1.E0)); +#2299=DIRECTION('',(0.E0,1.E0,0.E0)); +#2300=AXIS2_PLACEMENT_3D('',#2297,#2298,#2299); +#2302=DIRECTION('',(0.E0,0.E0,1.E0)); +#2303=VECTOR('',#2302,1.5E1); +#2304=CARTESIAN_POINT('',(3.508894772309E1,1.472970060410E2,-6.86E1)); +#2305=LINE('',#2304,#2303); +#2306=CARTESIAN_POINT('',(6.E1,1.4519E2,-5.36E1)); +#2307=DIRECTION('',(0.E0,0.E0,1.E0)); +#2308=DIRECTION('',(-9.964420910766E-1,8.428024163998E-2,0.E0)); +#2309=AXIS2_PLACEMENT_3D('',#2306,#2307,#2308); +#2311=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2312=VECTOR('',#2311,3.34E1); +#2313=CARTESIAN_POINT('',(3.5E1,1.4519E2,-5.36E1)); +#2314=LINE('',#2313,#2312); +#2315=DIRECTION('',(6.243617889368E-8,-1.989519660128E-13,1.E0)); +#2316=VECTOR('',#2315,5.E0); +#2317=CARTESIAN_POINT('',(5.999999937564E1,1.2019E2,-5.36E1)); +#2318=LINE('',#2317,#2316); +#2319=CARTESIAN_POINT('',(6.E1,1.4519E2,-4.86E1)); +#2320=DIRECTION('',(0.E0,0.E0,1.E0)); +#2321=DIRECTION('',(0.E0,1.E0,0.E0)); +#2322=AXIS2_PLACEMENT_3D('',#2319,#2320,#2321); +#2324=DIRECTION('',(3.061185594030E-8,-1.961161351382E-1,9.805806756909E-1)); +#2325=VECTOR('',#2324,1.019803902719E1); +#2326=CARTESIAN_POINT('',(5.999999968782E1,1.2019E2,-4.86E1)); +#2327=LINE('',#2326,#2325); +#2328=CARTESIAN_POINT('',(6.E1,1.4519E2,-4.86E1)); +#2329=DIRECTION('',(0.E0,0.E0,1.E0)); +#2330=DIRECTION('',(-2.497447155747E-8,-1.E0,0.E0)); +#2331=AXIS2_PLACEMENT_3D('',#2328,#2329,#2330); +#2333=DIRECTION('',(3.158147620978E-8,1.961161351382E-1,9.805806756909E-1)); +#2334=VECTOR('',#2333,1.019803902719E1); +#2335=CARTESIAN_POINT('',(6.000000073198E1,1.7019E2,-4.86E1)); +#2336=LINE('',#2335,#2334); +#2337=CARTESIAN_POINT('',(6.E1,1.4519E2,-5.36E1)); +#2338=DIRECTION('',(0.E0,0.E0,1.E0)); +#2339=DIRECTION('',(-2.497447155747E-8,-1.E0,0.E0)); +#2340=AXIS2_PLACEMENT_3D('',#2337,#2338,#2339); +#2342=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2343=VECTOR('',#2342,3.34E1); +#2344=CARTESIAN_POINT('',(8.5E1,1.4519E2,-5.36E1)); +#2345=LINE('',#2344,#2343); +#2346=CARTESIAN_POINT('',(6.E1,1.4519E2,-6.86E1)); +#2347=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2348=DIRECTION('',(-9.964420910766E-1,8.428024163998E-2,0.E0)); +#2349=AXIS2_PLACEMENT_3D('',#2346,#2347,#2348); +#2351=DIRECTION('',(0.E0,0.E0,1.E0)); +#2352=VECTOR('',#2351,1.5E1); +#2353=CARTESIAN_POINT('',(4.764942639721E1,1.669262216515E2,-6.86E1)); +#2354=LINE('',#2353,#2352); +#2355=CARTESIAN_POINT('',(6.E1,1.4519E2,-5.36E1)); +#2356=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2357=DIRECTION('',(-4.940229441115E-1,8.694488660591E-1,0.E0)); +#2358=AXIS2_PLACEMENT_3D('',#2355,#2356,#2357); +#2360=DIRECTION('',(1.463950610514E-7,1.875832822407E-13,1.E0)); +#2361=VECTOR('',#2360,5.E0); +#2362=CARTESIAN_POINT('',(6.E1,1.7019E2,-5.36E1)); +#2363=LINE('',#2362,#2361); +#2364=CARTESIAN_POINT('',(1.979999939715E0,-1.711645394054E2, +-9.380003612953E1)); +#2365=CARTESIAN_POINT('',(1.905963714131E0,-1.677229820148E2, +-9.380003612953E1)); +#2366=CARTESIAN_POINT('',(1.767393967728E0,-1.609508503771E2, +-9.379998323223E1)); +#2367=CARTESIAN_POINT('',(1.589116715223E0,-1.510382624519E2, +-9.380000449291E1)); +#2368=CARTESIAN_POINT('',(1.438498029093E0,-1.414905134396E2, +-9.379999879613E1)); +#2369=CARTESIAN_POINT('',(1.314946366487E0,-1.323978926257E2, +-9.380000032258E1)); +#2370=CARTESIAN_POINT('',(1.215737785153E0,-1.237810044477E2, +-9.379999991357E1)); +#2371=CARTESIAN_POINT('',(1.137810675482E0,-1.156055090017E2, +-9.380000002316E1)); +#2372=CARTESIAN_POINT('',(1.077347688405E0,-1.076900589128E2, +-9.379999999379E1)); +#2373=CARTESIAN_POINT('',(1.031425756592E0,-9.970059678689E1, +-9.380000000166E1)); +#2374=CARTESIAN_POINT('',(1.000890697454E0,-9.165200739247E1, +-9.379999999956E1)); +#2375=CARTESIAN_POINT('',(9.863661101515E-1,-8.383001393981E1, +-9.380000000011E1)); +#2376=CARTESIAN_POINT('',(9.863659589408E-1,-7.617363877272E1, +-9.380000000001E1)); +#2377=CARTESIAN_POINT('',(1.000891009141E0,-6.835143009569E1, +-9.379999999984E1)); +#2378=CARTESIAN_POINT('',(1.031426837117E0,-6.030278252869E1, +-9.380000000064E1)); +#2379=CARTESIAN_POINT('',(1.077347877484E0,-5.231352468203E1, +-9.379999999759E1)); +#2380=CARTESIAN_POINT('',(1.137809784577E0,-4.439818536037E1, +-9.380000000899E1)); +#2381=CARTESIAN_POINT('',(1.215737659611E0,-3.622259097167E1, +-9.379999996647E1)); +#2382=CARTESIAN_POINT('',(1.314948132233E0,-2.760554541012E1, +-9.380000012515E1)); +#2383=CARTESIAN_POINT('',(1.438501028016E0,-1.851289851948E1, +-9.379999953293E1)); +#2384=CARTESIAN_POINT('',(1.589113575513E0,-8.965478716315E0, +-9.380000174311E1)); +#2385=CARTESIAN_POINT('',(1.767398667510E0,9.473902584108E-1, +-9.379999349462E1)); +#2386=CARTESIAN_POINT('',(1.905942318519E0,7.718530899674E0,-9.380001401714E1)); +#2387=CARTESIAN_POINT('',(1.980031151679E0,1.116253373997E1,-9.380001401714E1)); +#2389=CARTESIAN_POINT('',(1.979284016401E0,-8.000179578406E1, +1.429144620701E-3)); +#2390=DIRECTION('',(-1.E0,4.766306091058E-12,-6.624082215186E-11)); +#2391=DIRECTION('',(5.082549400036E-11,6.969329344421E-1,-7.171363084449E-1)); +#2392=AXIS2_PLACEMENT_3D('',#2389,#2390,#2391); +#2394=CARTESIAN_POINT('',(1.979284016401E0,-8.000179578406E1, +1.429144620701E-3)); +#2395=DIRECTION('',(-1.E0,4.766306091058E-12,-6.624082215186E-11)); +#2396=DIRECTION('',(6.624082186606E-11,0.E0,-1.E0)); +#2397=AXIS2_PLACEMENT_3D('',#2394,#2395,#2396); +#2399=DIRECTION('',(9.999999999995E-1,9.050474939203E-7,-4.621513506780E-7)); +#2400=VECTOR('',#2399,5.240384235412E1); +#2401=CARTESIAN_POINT('',(-4.835345227060E1,-3.000004742797E1, +-1.324999757815E2)); +#2402=LINE('',#2401,#2400); +#2403=CARTESIAN_POINT('',(-4.857432525506E1,-7.239165821842E0, +-1.431975920643E2)); +#2404=CARTESIAN_POINT('',(-4.859142116193E1,-5.563660312210E0, +-1.439850796538E2)); +#2405=CARTESIAN_POINT('',(-4.862930726737E1,-2.326090422574E0, +-1.458865087265E2)); +#2406=CARTESIAN_POINT('',(-4.869486979395E1,1.991010130856E0, +-1.496709357654E2)); +#2407=CARTESIAN_POINT('',(-4.874267581074E1,4.377511244614E0, +-1.527536993042E2)); +#2408=CARTESIAN_POINT('',(-4.876712470387E1,5.417504448760E0, +-1.544124797183E2)); +#2410=CARTESIAN_POINT('',(-4.876789753462E1,-1.710451932055E2, +-1.325000166150E2)); +#2411=CARTESIAN_POINT('',(-4.871164889362E1,-1.638994700114E2, +-1.325000166150E2)); +#2412=CARTESIAN_POINT('',(-4.860523676412E1,-1.496392282490E2, +-1.324999926323E2)); +#2413=CARTESIAN_POINT('',(-4.847392914107E1,-1.283329736853E2, +-1.325000008645E2)); +#2414=CARTESIAN_POINT('',(-4.837494231396E1,-1.071387173804E2, +-1.325000039099E2)); +#2415=CARTESIAN_POINT('',(-4.831106844800E1,-8.600300052762E1, +-1.324999834960E2)); +#2416=CARTESIAN_POINT('',(-4.830120666032E1,-7.199020171387E1, +-1.325000359027E2)); +#2417=CARTESIAN_POINT('',(-4.830120666032E1,-6.499999964165E1, +-1.325000359027E2)); +#2419=CARTESIAN_POINT('',(-4.830120666032E1,-6.499999964165E1, +-1.325000359027E2)); +#2420=CARTESIAN_POINT('',(-4.830120666032E1,-6.110031456322E1, +-1.325000359027E2)); +#2421=CARTESIAN_POINT('',(-4.832570189247E1,-5.330815473913E1, +-1.324999800163E2)); +#2422=CARTESIAN_POINT('',(-4.830184020832E1,-4.164084081567E1, +-1.325000160890E2)); +#2423=CARTESIAN_POINT('',(-4.834097613391E1,-3.387789421876E1, +-1.324999757815E2)); +#2424=CARTESIAN_POINT('',(-4.835345227060E1,-3.000004742797E1, +-1.324999757815E2)); +#2426=CARTESIAN_POINT('',(-4.835345227060E1,-3.000004742797E1, +-1.324999757815E2)); +#2427=CARTESIAN_POINT('',(-4.837630502917E1,-2.744431736954E1, +-1.337011689090E2)); +#2428=CARTESIAN_POINT('',(-4.842629955820E1,-2.235062115090E1, +-1.360952089586E2)); +#2429=CARTESIAN_POINT('',(-4.849815266685E1,-1.476370113557E1, +-1.396610602090E2)); +#2430=CARTESIAN_POINT('',(-4.854879389598E1,-9.741398263206E0, +-1.420215428169E2)); +#2431=CARTESIAN_POINT('',(-4.857432525506E1,-7.239165821842E0, +-1.431975920643E2)); +#2433=CARTESIAN_POINT('',(-4.876789753462E1,-1.710451932055E2, +-1.325000166150E2)); +#2434=CARTESIAN_POINT('',(-4.877662488193E1,-1.721538985965E2, +-1.325000166150E2)); +#2435=CARTESIAN_POINT('',(-4.888463125267E1,-1.742955830782E2, +-1.324999922463E2)); +#2436=CARTESIAN_POINT('',(-4.929577499944E1,-1.773025981173E2, +-1.325000022153E2)); +#2437=CARTESIAN_POINT('',(-4.970826166378E1,-1.791273264619E2,-1.325E2)); +#2438=CARTESIAN_POINT('',(-4.994512587310E1,-1.8E2,-1.325E2)); +#2440=DIRECTION('',(-4.027792772935E-12,1.E0,-1.764936201758E-12)); +#2441=VECTOR('',#2440,1.159454419345E0); +#2442=CARTESIAN_POINT('',(8.583286718484E0,-1.8E2,-1.325E2)); +#2443=LINE('',#2442,#2441); +#2444=DIRECTION('',(0.E0,-3.600261551935E-14,1.E0)); +#2445=VECTOR('',#2444,3.878097342728E1); +#2446=CARTESIAN_POINT('',(9.5E1,1.E1,-1.9E2)); +#2447=LINE('',#2446,#2445); +#2448=DIRECTION('',(0.E0,2.314228041652E-13,-1.E0)); +#2449=VECTOR('',#2448,3.596883280131E1); +#2450=CARTESIAN_POINT('',(1.E2,1.499999999999E1,-1.540311671987E2)); +#2451=LINE('',#2450,#2449); +#2452=CARTESIAN_POINT('',(1.E2,1.499999999999E1,-1.540311671987E2)); +#2453=CARTESIAN_POINT('',(1.E2,1.444695857409E1,-1.537224930891E2)); +#2454=CARTESIAN_POINT('',(9.981591856770E1,1.336355688223E1,-1.531157919010E2)); +#2455=CARTESIAN_POINT('',(9.905877710240E1,1.193335914194E1,-1.523101978055E2)); +#2456=CARTESIAN_POINT('',(9.787031941752E1,1.079860966256E1,-1.516689299553E2)); +#2457=CARTESIAN_POINT('',(9.641798729281E1,1.012498399421E1,-1.512837911351E2)); +#2458=CARTESIAN_POINT('',(9.545957660188E1,9.999999999999E0,-1.512190265727E2)); +#2459=CARTESIAN_POINT('',(9.5E1,9.999999999999E0,-1.512190265727E2)); +#2461=CARTESIAN_POINT('',(9.5E1,-8.000179578406E1,1.429144561350E-3)); +#2462=DIRECTION('',(1.E0,0.E0,0.E0)); +#2463=DIRECTION('',(0.E0,5.114510547882E-1,-8.593124103352E-1)); +#2464=AXIS2_PLACEMENT_3D('',#2461,#2462,#2463); +#2466=DIRECTION('',(0.E0,-1.E0,0.E0)); +#2467=VECTOR('',#2466,2.699999999925E2); +#2468=CARTESIAN_POINT('',(1.E2,2.849999999925E2,-1.9E2)); +#2469=LINE('',#2468,#2467); +#2470=CARTESIAN_POINT('',(1.E2,-8.000179578406E1,1.429144561350E-3)); +#2471=DIRECTION('',(1.E0,0.E0,0.E0)); +#2472=DIRECTION('',(0.E0,5.249488635107E-1,-8.511337678055E-1)); +#2473=AXIS2_PLACEMENT_3D('',#2470,#2471,#2472); +#2475=DIRECTION('',(0.E0,1.E0,0.E0)); +#2476=VECTOR('',#2475,1.933143550138E2); +#2477=CARTESIAN_POINT('',(9.5E1,9.168564498621E1,-3.86E1)); +#2478=LINE('',#2477,#2476); +#2479=DIRECTION('',(0.E0,-1.E0,2.994377338904E-14)); +#2480=VECTOR('',#2479,1.893592687100E2); +#2481=CARTESIAN_POINT('',(1.E2,2.849999999944E2,-4.36E1)); +#2482=LINE('',#2481,#2480); +#2483=CARTESIAN_POINT('',(1.E2,9.564073128438E1,-4.359999999999E1)); +#2484=CARTESIAN_POINT('',(1.E2,9.517421729048E1,-4.300351966197E1)); +#2485=CARTESIAN_POINT('',(9.978187012215E1,9.428328283953E1,-4.186899559162E1)); +#2486=CARTESIAN_POINT('',(9.902851545282E1,9.319950715288E1,-4.049906598409E1)); +#2487=CARTESIAN_POINT('',(9.781757596216E1,9.229241458359E1,-3.935895359676E1)); +#2488=CARTESIAN_POINT('',(9.634976147283E1,9.177267244440E1,-3.870866238425E1)); +#2489=CARTESIAN_POINT('',(9.543145117105E1,9.168564498621E1,-3.86E1)); +#2490=CARTESIAN_POINT('',(9.5E1,9.168564498621E1,-3.86E1)); +#2492=CARTESIAN_POINT('',(9.E1,2.85E2,-4.36E1)); +#2493=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2494=DIRECTION('',(0.E0,1.E0,0.E0)); +#2495=AXIS2_PLACEMENT_3D('',#2492,#2493,#2494); +#2497=CARTESIAN_POINT('',(9.5E1,2.85E2,-4.36E1)); +#2498=DIRECTION('',(0.E0,-1.E0,0.E0)); +#2499=DIRECTION('',(1.E0,0.E0,0.E0)); +#2500=AXIS2_PLACEMENT_3D('',#2497,#2498,#2499); +#2502=CARTESIAN_POINT('',(9.E1,2.9E2,-4.36E1)); +#2503=DIRECTION('',(-1.E0,0.E0,0.E0)); +#2504=DIRECTION('',(0.E0,4.648734375223E-9,1.E0)); +#2505=AXIS2_PLACEMENT_3D('',#2502,#2503,#2504); +#2507=DIRECTION('',(-3.958460760024E-12,0.E0,-1.E0)); +#2508=VECTOR('',#2507,1.464000000047E2); +#2509=CARTESIAN_POINT('',(8.999999999826E1,2.95E2,-4.359999999534E1)); +#2510=LINE('',#2509,#2508); +#2511=DIRECTION('',(0.E0,1.282626706727E-11,1.E0)); +#2512=VECTOR('',#2511,1.464E2); +#2513=CARTESIAN_POINT('',(1.E2,2.849999999925E2,-1.9E2)); +#2514=LINE('',#2513,#2512); +#2515=CARTESIAN_POINT('',(-5.463211195957E-1,2.95E2,-1.269E2)); +#2516=DIRECTION('',(0.E0,1.E0,0.E0)); +#2517=DIRECTION('',(1.E0,0.E0,-2.229038879401E-9)); +#2518=AXIS2_PLACEMENT_3D('',#2515,#2516,#2517); +#2520=CARTESIAN_POINT('',(-5.519223417048E1,2.95E2,-1.269E2)); +#2521=DIRECTION('',(0.E0,1.E0,0.E0)); +#2522=DIRECTION('',(-2.754953598583E-9,0.E0,-1.E0)); +#2523=AXIS2_PLACEMENT_3D('',#2520,#2521,#2522); +#2525=DIRECTION('',(1.E0,0.E0,0.E0)); +#2526=VECTOR('',#2525,1.799999999902E2); +#2527=CARTESIAN_POINT('',(-8.999999999251E1,2.95E2,-1.9E2)); +#2528=LINE('',#2527,#2526); +#2529=DIRECTION('',(3.537466437646E-12,0.E0,1.E0)); +#2530=VECTOR('',#2529,8.330000001358E1); +#2531=CARTESIAN_POINT('',(1.145367887922E1,2.95E2,-1.269000000089E2)); +#2532=LINE('',#2531,#2530); +#2533=DIRECTION('',(2.181528267355E-14,0.E0,-1.E0)); +#2534=VECTOR('',#2533,8.329999999998E1); +#2535=CARTESIAN_POINT('',(9.453678880401E0,2.93E2,-4.36E1)); +#2536=LINE('',#2535,#2534); +#2537=CARTESIAN_POINT('',(1.145367888040E1,2.9E2,-4.36E1)); +#2538=DIRECTION('',(1.E0,0.E0,0.E0)); +#2539=DIRECTION('',(0.E0,1.E0,0.E0)); +#2540=AXIS2_PLACEMENT_3D('',#2537,#2538,#2539); +#2542=CARTESIAN_POINT('',(1.145367888040E1,2.9E2,-4.06E1)); +#2543=DIRECTION('',(0.E0,-1.E0,0.E0)); +#2544=DIRECTION('',(0.E0,0.E0,1.E0)); +#2545=AXIS2_PLACEMENT_3D('',#2542,#2543,#2544); +#2547=CARTESIAN_POINT('',(1.145367888040E1,2.93E2,-4.36E1)); +#2548=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2549=DIRECTION('',(-1.E0,0.E0,0.E0)); +#2550=AXIS2_PLACEMENT_3D('',#2547,#2548,#2549); +#2552=DIRECTION('',(1.E0,0.E0,0.E0)); +#2553=VECTOR('',#2552,7.854632111875E1); +#2554=CARTESIAN_POINT('',(1.145367887951E1,2.95E2,-4.359999999534E1)); +#2555=LINE('',#2554,#2553); +#2556=DIRECTION('',(-1.E0,-4.932039828178E-11,0.E0)); +#2557=VECTOR('',#2556,7.854632107085E1); +#2558=CARTESIAN_POINT('',(8.999999995125E1,2.900000000155E2,-3.86E1)); +#2559=LINE('',#2558,#2557); +#2560=DIRECTION('',(-3.394115846557E-13,1.E0,0.E0)); +#2561=VECTOR('',#2560,3.292480687719E1); +#2562=CARTESIAN_POINT('',(9.453678880413E0,2.570751931228E2,-4.06E1)); +#2563=LINE('',#2562,#2561); +#2564=DIRECTION('',(4.572474773494E-13,-1.E0,0.E0)); +#2565=VECTOR('',#2564,3.184834053940E1); +#2566=CARTESIAN_POINT('',(1.145367888040E1,2.900000000116E2,-3.86E1)); +#2567=LINE('',#2566,#2565); +#2568=DIRECTION('',(0.E0,0.E0,1.E0)); +#2569=VECTOR('',#2568,2.720000000002E1); +#2570=CARTESIAN_POINT('',(9.453678880404E0,2.82E2,-1.541E2)); +#2571=LINE('',#2570,#2569); +#2572=CARTESIAN_POINT('',(9.453678880400E0,2.9E2,-4.36E1)); +#2573=DIRECTION('',(1.E0,0.E0,0.E0)); +#2574=DIRECTION('',(0.E0,1.E0,-4.736951571734E-14)); +#2575=AXIS2_PLACEMENT_3D('',#2572,#2573,#2574); +#2577=CARTESIAN_POINT('',(1.157824197223E1,1.460817453775E2,-4.058582198069E1)); +#2578=CARTESIAN_POINT('',(1.154028465641E1,1.460550140477E2,-4.203535339092E1)); +#2579=CARTESIAN_POINT('',(1.146553856270E1,1.460015491648E2,-4.490925975967E1)); +#2580=CARTESIAN_POINT('',(1.135140639606E1,1.459221441764E2,-4.925982709175E1)); +#2581=CARTESIAN_POINT('',(1.127570166892E1,1.458691610761E2,-5.215264381969E1)); +#2582=CARTESIAN_POINT('',(1.123780131350E1,1.458428199120E2,-5.36E1)); +#2584=DIRECTION('',(1.668409000698E-13,-7.520821572353E-13,1.E0)); +#2585=VECTOR('',#2584,1.3E1); +#2586=CARTESIAN_POINT('',(9.453678880410E0,2.570751931228E2,-5.36E1)); +#2587=LINE('',#2586,#2585); +#2588=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-4.06E1)); +#2589=DIRECTION('',(0.E0,0.E0,1.E0)); +#2590=DIRECTION('',(5.757905088801E-1,-8.175972663137E-1,0.E0)); +#2591=AXIS2_PLACEMENT_3D('',#2588,#2589,#2590); +#2593=CARTESIAN_POINT('',(9.453678880413E0,2.570751931228E2,-4.06E1)); +#2594=CARTESIAN_POINT('',(9.453678880413E0,2.570751931228E2,-4.034415802587E1)); +#2595=CARTESIAN_POINT('',(9.554982664322E0,2.571302827243E2,-3.983407495448E1)); +#2596=CARTESIAN_POINT('',(9.962230078832E0,2.573510372595E2,-3.919574463344E1)); +#2597=CARTESIAN_POINT('',(1.061080300245E1,2.577007969236E2,-3.872572211746E1)); +#2598=CARTESIAN_POINT('',(1.116331573845E1,2.579968446161E2,-3.86E1)); +#2599=CARTESIAN_POINT('',(1.145367888041E1,2.581516594722E2,-3.86E1)); +#2601=CARTESIAN_POINT('',(1.157824197223E1,1.460817453775E2,-4.058582198069E1)); +#2602=CARTESIAN_POINT('',(1.158151366470E1,1.460840493177E2,-4.033582733825E1)); +#2603=CARTESIAN_POINT('',(1.168359774296E1,1.460294598402E2,-3.981560419766E1)); +#2604=CARTESIAN_POINT('',(1.211482115792E1,1.458018262124E2,-3.916682807426E1)); +#2605=CARTESIAN_POINT('',(1.275951102382E1,1.454728161413E2,-3.871842605996E1)); +#2606=CARTESIAN_POINT('',(1.329837269195E1,1.451962993326E2,-3.86E1)); +#2607=CARTESIAN_POINT('',(1.357890387888E1,1.450534294969E2,-3.86E1)); +#2609=DIRECTION('',(5.920333932021E-13,-1.E0,0.E0)); +#2610=VECTOR('',#2609,1.049851689521E1); +#2611=CARTESIAN_POINT('',(1.357890387888E1,1.450534294969E2,-3.86E1)); +#2612=LINE('',#2611,#2610); +#2613=CARTESIAN_POINT('',(1.357890387889E1,1.345549126017E2,-3.86E1)); +#2614=CARTESIAN_POINT('',(1.335586282551E1,1.347779536551E2,-3.86E1)); +#2615=CARTESIAN_POINT('',(1.292960479364E1,1.352042742453E2,-3.867299555203E1)); +#2616=CARTESIAN_POINT('',(1.237074063997E1,1.357628230607E2,-3.896718273081E1)); +#2617=CARTESIAN_POINT('',(1.194444299505E1,1.361903594936E2,-3.939614813305E1)); +#2618=CARTESIAN_POINT('',(1.165648358989E1,1.364761001631E2,-3.994037568665E1)); +#2619=CARTESIAN_POINT('',(1.158221714902E1,1.365531460474E2,-4.035998649510E1)); +#2620=CARTESIAN_POINT('',(1.157856131818E1,1.365554310026E2,-4.056946047982E1)); +#2622=DIRECTION('',(3.352245877732E-5,-9.999985245282E-1,1.717503337973E-3)); +#2623=VECTOR('',#2622,9.526328430714E0); +#2624=CARTESIAN_POINT('',(1.157824197223E1,1.460817453775E2,-4.058582198069E1)); +#2625=LINE('',#2624,#2623); +#2626=DIRECTION('',(-2.617045171622E-2,8.715001682112E-3,-9.996195057134E-1)); +#2627=VECTOR('',#2626,8.293855634752E1); +#2628=CARTESIAN_POINT('',(1.157856131818E1,1.365554310026E2,-4.056946047982E1)); +#2629=LINE('',#2628,#2627); +#2630=DIRECTION('',(2.611935992617E-2,-2.471439896252E-2,9.993532796369E-1)); +#2631=VECTOR('',#2630,6.992176952343E1); +#2632=CARTESIAN_POINT('',(9.409513447820E0,1.484884070160E2,-1.234764979477E2)); +#2633=LINE('',#2632,#2631); +#2634=CARTESIAN_POINT('',(2.240959022005E1,1.485016472422E2,-1.238165699842E2)); +#2635=DIRECTION('',(-2.599859414311E-2,2.509251576925E-2,-9.993470061770E-1)); +#2636=DIRECTION('',(-9.996619141375E-1,-1.013882098581E-3,2.598132918091E-2)); +#2637=AXIS2_PLACEMENT_3D('',#2634,#2635,#2636); +#2639=CARTESIAN_POINT('',(1.123582531268E1,1.467603325079E2,-5.359994825649E1)); +#2640=CARTESIAN_POINT('',(1.123677765899E1,1.476866615356E2,-5.359994825649E1)); +#2641=CARTESIAN_POINT('',(1.143146987651E1,1.494932314211E2,-5.360002146276E1)); +#2642=CARTESIAN_POINT('',(1.228551517266E1,1.521175441038E2,-5.360000249559E1)); +#2643=CARTESIAN_POINT('',(1.367606925279E1,1.545019633592E2,-5.359996855489E1)); +#2644=CARTESIAN_POINT('',(1.489719050731E1,1.558471194035E2,-5.360007170820E1)); +#2645=CARTESIAN_POINT('',(1.558936053468E1,1.564625055242E2,-5.360007170820E1)); +#2647=CARTESIAN_POINT('',(1.558936053468E1,1.564625055242E2,-5.360007170820E1)); +#2648=CARTESIAN_POINT('',(1.649076049505E1,1.572655520754E2,-5.360007170820E1)); +#2649=CARTESIAN_POINT('',(1.820429992608E1,1.589788426753E2,-5.359996672011E1)); +#2650=CARTESIAN_POINT('',(2.048395310853E1,1.618216350455E2,-5.360000891732E1)); +#2651=CARTESIAN_POINT('',(2.255100433163E1,1.650728600494E2,-5.359999761061E1)); +#2652=CARTESIAN_POINT('',(2.439152000052E1,1.688177197824E2,-5.360000064024E1)); +#2653=CARTESIAN_POINT('',(2.601609989750E1,1.732057538735E2,-5.359999982845E1)); +#2654=CARTESIAN_POINT('',(2.739814671668E1,1.784198906540E2,-5.360000004598E1)); +#2655=CARTESIAN_POINT('',(2.843429683577E1,1.844833199751E2,-5.359999998762E1)); +#2656=CARTESIAN_POINT('',(2.907773943998E1,1.914254083087E2,-5.360000000354E1)); +#2657=CARTESIAN_POINT('',(2.923009902071E1,1.966915864477E2,-5.36E1)); +#2658=CARTESIAN_POINT('',(2.923009902060E1,1.994798492339E2,-5.36E1)); +#2660=CARTESIAN_POINT('',(2.923009902060E1,1.994798492339E2,-5.36E1)); +#2661=CARTESIAN_POINT('',(2.923009902061E1,2.019952683424E2,-5.36E1)); +#2662=CARTESIAN_POINT('',(2.910710063513E1,2.067756304647E2,-5.36E1)); +#2663=CARTESIAN_POINT('',(2.857964376815E1,2.131786357884E2,-5.36E1)); +#2664=CARTESIAN_POINT('',(2.772027828420E1,2.188624759101E2,-5.36E1)); +#2665=CARTESIAN_POINT('',(2.657346768150E1,2.238230125742E2,-5.36E1)); +#2666=CARTESIAN_POINT('',(2.518676118788E1,2.281353671523E2,-5.36E1)); +#2667=CARTESIAN_POINT('',(2.359407760402E1,2.318607100807E2,-5.36E1)); +#2668=CARTESIAN_POINT('',(2.181046103477E1,2.351183351112E2,-5.36E1)); +#2669=CARTESIAN_POINT('',(1.984984092911E1,2.379837517550E2,-5.359999999999E1)); +#2670=CARTESIAN_POINT('',(1.766771723730E1,2.405594972061E2,-5.360000000004E1)); +#2671=CARTESIAN_POINT('',(1.525225477221E1,2.428684058812E2,-5.359999999985E1)); +#2672=CARTESIAN_POINT('',(1.255905873976E1,2.449596835659E2,-5.360000000057E1)); +#2673=CARTESIAN_POINT('',(1.052704391381E1,2.462300573940E2,-5.359999999877E1)); +#2674=CARTESIAN_POINT('',(9.453678863567E0,2.468280368970E2,-5.359999999877E1)); +#2676=DIRECTION('',(1.643687485688E-9,1.E0,-1.198224304006E-10)); +#2677=VECTOR('',#2676,1.024715622585E1); +#2678=CARTESIAN_POINT('',(9.453678863567E0,2.468280368970E2,-5.359999999877E1)); +#2679=LINE('',#2678,#2677); +#2680=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-5.36E1)); +#2681=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2682=DIRECTION('',(5.440809431123E-1,8.390327331768E-1,0.E0)); +#2683=AXIS2_PLACEMENT_3D('',#2680,#2681,#2682); +#2685=DIRECTION('',(-2.153644810744E-3,9.999976793141E-1,5.639528641677E-5)); +#2686=VECTOR('',#2685,9.175147251209E-1); +#2687=CARTESIAN_POINT('',(1.123780131350E1,1.458428199120E2,-5.36E1)); +#2688=LINE('',#2687,#2686); +#2689=DIRECTION('',(-2.587478555025E-2,2.505040351822E-2,-9.993512759567E-1)); +#2690=VECTOR('',#2689,6.979579005569E1); +#2691=CARTESIAN_POINT('',(1.558936053468E1,1.564625055242E2,-5.360007170820E1)); +#2692=LINE('',#2691,#2690); +#2693=CARTESIAN_POINT('',(1.378340943468E1,1.582109182289E2,-1.233505835568E2)); +#2694=CARTESIAN_POINT('',(1.370389100339E1,1.582615247897E2,-1.258764246431E2)); +#2695=CARTESIAN_POINT('',(1.331058903483E1,1.581451148419E2,-1.308422913635E2)); +#2696=CARTESIAN_POINT('',(1.212230412595E1,1.574540314493E2,-1.374391048274E2)); +#2697=CARTESIAN_POINT('',(1.061725119612E1,1.565543132228E2,-1.424572007703E2)); +#2698=CARTESIAN_POINT('',(9.677561657532E0,1.560516652281E2,-1.450220741261E2)); +#2700=CARTESIAN_POINT('',(9.677561657532E0,1.560516652281E2,-1.450220741261E2)); +#2701=CARTESIAN_POINT('',(1.128879890411E1,1.571012174760E2,-1.450413588776E2)); +#2702=CARTESIAN_POINT('',(1.427497587884E1,1.594109417142E2,-1.450778125159E2)); +#2703=CARTESIAN_POINT('',(1.842241489519E1,1.644749287657E2,-1.451336281737E2)); +#2704=CARTESIAN_POINT('',(2.073026832242E1,1.686812103177E2,-1.451718605072E2)); +#2705=CARTESIAN_POINT('',(2.293631603026E1,1.742729293952E2,-1.452137541001E2)); +#2706=CARTESIAN_POINT('',(2.458557573236E1,1.811347115408E2,-1.452575155207E2)); +#2707=CARTESIAN_POINT('',(2.561564307070E1,1.893767934295E2,-1.453038066475E2)); +#2708=CARTESIAN_POINT('',(2.585583373530E1,1.959903108483E2,-1.453364171779E2)); +#2709=CARTESIAN_POINT('',(2.585522121497E1,1.994798490635E2,-1.453530603990E2)); +#2711=DIRECTION('',(3.675732580429E-2,1.855629157369E-9,9.993242211613E-1)); +#2712=VECTOR('',#2711,9.181510710545E1); +#2713=CARTESIAN_POINT('',(2.585522121497E1,1.994798490635E2,-1.453530603990E2)); +#2714=LINE('',#2713,#2712); +#2715=CARTESIAN_POINT('',(4.948232304896E0,1.449351040041E2,-1.400083280285E2)); +#2716=CARTESIAN_POINT('',(4.816056738853E0,1.460276926290E2,-1.402498058384E2)); +#2717=CARTESIAN_POINT('',(4.809135228919E0,1.482555680826E2,-1.408905241966E2)); +#2718=CARTESIAN_POINT('',(5.594609609116E0,1.513253316547E2,-1.422095746991E2)); +#2719=CARTESIAN_POINT('',(7.103000338048E0,1.539620621704E2,-1.438065504684E2)); +#2720=CARTESIAN_POINT('',(8.548866468905E0,1.553202756659E2,-1.450050022999E2)); +#2721=CARTESIAN_POINT('',(9.336139396321E0,1.558611721451E2,-1.456017523328E2)); +#2723=CARTESIAN_POINT('',(9.677561657532E0,1.560516652281E2,-1.450220741261E2)); +#2724=CARTESIAN_POINT('',(9.639618227270E0,1.560311601945E2,-1.450865191774E2)); +#2725=CARTESIAN_POINT('',(9.570396818121E0,1.559794786021E2,-1.452159662E2)); +#2726=CARTESIAN_POINT('',(9.452414861520E0,1.559229665183E2,-1.454083161844E2)); +#2727=CARTESIAN_POINT('',(9.375253385554E0,1.558814258954E2,-1.455372615513E2)); +#2728=CARTESIAN_POINT('',(9.336139396321E0,1.558611721451E2,-1.456017523328E2)); +#2730=CARTESIAN_POINT('',(-2.699627936903E1,1.415604579995E2,-1.5894E2)); +#2731=CARTESIAN_POINT('',(-2.699625081687E1,1.426445440867E2, +-1.589400002912E2)); +#2732=CARTESIAN_POINT('',(-2.699617190509E1,1.448977741563E2, +-1.592150615720E2)); +#2733=CARTESIAN_POINT('',(-2.699611279729E1,1.481930296117E2, +-1.605689070634E2)); +#2734=CARTESIAN_POINT('',(-2.699594574372E1,1.510166061592E2, +-1.627872938598E2)); +#2735=CARTESIAN_POINT('',(-2.699612609420E1,1.523888323973E2, +-1.646605811700E2)); +#2736=CARTESIAN_POINT('',(-2.699611047953E1,1.529296310830E2, +-1.656358873415E2)); +#2738=CARTESIAN_POINT('',(-2.699611047953E1,1.529296310830E2, +-1.656358873415E2)); +#2739=CARTESIAN_POINT('',(-2.404118141114E1,1.529461193119E2, +-1.656658810400E2)); +#2740=CARTESIAN_POINT('',(-1.852864096754E1,1.528345306704E2, +-1.651626934560E2)); +#2741=CARTESIAN_POINT('',(-1.193326186677E1,1.527277614760E2, +-1.636519325764E2)); +#2742=CARTESIAN_POINT('',(-6.115065390988E0,1.527812676413E2, +-1.615153421436E2)); +#2743=CARTESIAN_POINT('',(-8.319730828658E-1,1.532053623990E2, +-1.584866867979E2)); +#2744=CARTESIAN_POINT('',(2.324038777515E0,1.536721384517E2,-1.558746359302E2)); +#2745=CARTESIAN_POINT('',(6.105138728185E0,1.545286759995E2,-1.516473153007E2)); +#2746=CARTESIAN_POINT('',(8.334538254048E0,1.553828985603E2,-1.47825681E2)); +#2747=CARTESIAN_POINT('',(9.336139396321E0,1.558611721451E2,-1.456017523328E2)); +#2749=CARTESIAN_POINT('',(-5.894111472589E1,1.449352207877E2, +-1.400080645567E2)); +#2750=CARTESIAN_POINT('',(-5.880207056381E1,1.460243184471E2, +-1.402621026969E2)); +#2751=CARTESIAN_POINT('',(-5.878556373519E1,1.482490772483E2, +-1.409207973482E2)); +#2752=CARTESIAN_POINT('',(-5.955947044192E1,1.513129372966E2, +-1.422632536720E2)); +#2753=CARTESIAN_POINT('',(-6.106390900948E1,1.539475187097E2, +-1.438706365947E2)); +#2754=CARTESIAN_POINT('',(-6.251315110695E1,1.553068776987E2, +-1.450645090298E2)); +#2755=CARTESIAN_POINT('',(-6.330419243935E1,1.558494161045E2, +-1.456560249239E2)); +#2757=CARTESIAN_POINT('',(-6.330419243935E1,1.558494161045E2, +-1.456560249239E2)); +#2758=CARTESIAN_POINT('',(-6.334611577644E1,1.558709415438E2, +-1.455855300798E2)); +#2759=CARTESIAN_POINT('',(-6.342889777993E1,1.559151791495E2, +-1.454444318317E2)); +#2760=CARTESIAN_POINT('',(-6.355488363743E1,1.559751548207E2, +-1.452344420328E2)); +#2761=CARTESIAN_POINT('',(-6.363012806957E1,1.560306730276E2, +-1.450915914161E2)); +#2762=CARTESIAN_POINT('',(-6.367143249596E1,1.560529200800E2, +-1.450202262551E2)); +#2764=CARTESIAN_POINT('',(-6.367143249596E1,1.560529200800E2, +-1.450202262551E2)); +#2765=CARTESIAN_POINT('',(-6.528854202744E1,1.571062912590E2, +-1.450406057254E2)); +#2766=CARTESIAN_POINT('',(-6.829352125495E1,1.594036400903E2, +-1.450797165479E2)); +#2767=CARTESIAN_POINT('',(-7.244464632295E1,1.644927065114E2, +-1.451344576323E2)); +#2768=CARTESIAN_POINT('',(-7.473953897973E1,1.686992395323E2, +-1.451725152363E2)); +#2769=CARTESIAN_POINT('',(-7.695283547400E1,1.742974870400E2, +-1.452146078607E2)); +#2770=CARTESIAN_POINT('',(-7.858430239858E1,1.811633812798E2, +-1.452577394932E2)); +#2771=CARTESIAN_POINT('',(-7.962232806806E1,1.893945560862E2, +-1.453044014051E2)); +#2772=CARTESIAN_POINT('',(-7.984841694111E1,1.960006400129E2, +-1.453363556897E2)); +#2773=CARTESIAN_POINT('',(-7.984786345021E1,1.994798494009E2, +-1.453530603986E2)); +#2775=CARTESIAN_POINT('',(-7.984786345021E1,1.994798494009E2, +-1.453530603986E2)); +#2776=CARTESIAN_POINT('',(-7.977372563411E1,1.994798157143E2, +-1.475964421866E2)); +#2777=CARTESIAN_POINT('',(-7.941710426709E1,1.994797356756E2, +-1.528917852095E2)); +#2778=CARTESIAN_POINT('',(-7.763261112649E1,1.994796296416E2, +-1.609499358453E2)); +#2779=CARTESIAN_POINT('',(-7.397221244978E1,1.994792556981E2, +-1.676455745325E2)); +#2780=CARTESIAN_POINT('',(-7.061779031863E1,1.994797981296E2, +-1.725865826446E2)); +#2781=CARTESIAN_POINT('',(-6.889628540545E1,1.994802359535E2, +-1.749307128437E2)); +#2782=CARTESIAN_POINT('',(-6.806140416174E1,1.994805390271E2, +-1.760029915268E2)); +#2784=CARTESIAN_POINT('',(-6.806140416174E1,1.994805390271E2, +-1.760029915268E2)); +#2785=CARTESIAN_POINT('',(-6.806491051009E1,1.974778611831E2, +-1.760029915268E2)); +#2786=CARTESIAN_POINT('',(-6.798183010094E1,1.936778269057E2, +-1.760029467364E2)); +#2787=CARTESIAN_POINT('',(-6.758557365931E1,1.886070582508E2, +-1.760029647387E2)); +#2788=CARTESIAN_POINT('',(-6.691810657125E1,1.841256068063E2, +-1.760029599150E2)); +#2789=CARTESIAN_POINT('',(-6.598933178188E1,1.802052842058E2, +-1.760029612075E2)); +#2790=CARTESIAN_POINT('',(-6.483436394446E1,1.768779517431E2, +-1.760029608612E2)); +#2791=CARTESIAN_POINT('',(-6.351099531571E1,1.740954841068E2, +-1.760029609540E2)); +#2792=CARTESIAN_POINT('',(-6.203481486501E1,1.717504328846E2, +-1.760029609291E2)); +#2793=CARTESIAN_POINT('',(-6.037795219486E1,1.697137305816E2, +-1.760029609358E2)); +#2794=CARTESIAN_POINT('',(-5.852303011813E1,1.679283597061E2, +-1.760029609340E2)); +#2795=CARTESIAN_POINT('',(-5.637534083117E1,1.663212540626E2, +-1.760029609345E2)); +#2796=CARTESIAN_POINT('',(-5.387177474783E1,1.648839229245E2, +-1.760029609343E2)); +#2797=CARTESIAN_POINT('',(-5.090745996048E1,1.636066897504E2, +-1.760029609346E2)); +#2798=CARTESIAN_POINT('',(-4.736427645403E1,1.625094968138E2, +-1.760029609338E2)); +#2799=CARTESIAN_POINT('',(-4.324726717493E1,1.616415853595E2, +-1.760029609366E2)); +#2800=CARTESIAN_POINT('',(-3.853861678234E1,1.610197142705E2, +-1.760029609261E2)); +#2801=CARTESIAN_POINT('',(-3.319376937708E1,1.606524660884E2, +-1.760029609655E2)); +#2802=CARTESIAN_POINT('',(-2.914015881365E1,1.605738496431E2, +-1.760029608673E2)); +#2803=CARTESIAN_POINT('',(-2.699625742765E1,1.605733218830E2, +-1.760029608673E2)); +#2805=CARTESIAN_POINT('',(-2.699625742765E1,1.605733218830E2, +-1.760029608673E2)); +#2806=CARTESIAN_POINT('',(-2.699612188732E1,1.596071824808E2, +-1.749435849415E2)); +#2807=CARTESIAN_POINT('',(-2.699633745054E1,1.576845677503E2, +-1.726493615931E2)); +#2808=CARTESIAN_POINT('',(-2.699631194218E1,1.550914238937E2, +-1.692219784389E2)); +#2809=CARTESIAN_POINT('',(-2.699610657785E1,1.535700090522E2, +-1.667907792119E2)); +#2810=CARTESIAN_POINT('',(-2.699611047953E1,1.529296310830E2, +-1.656358873415E2)); +#2812=CARTESIAN_POINT('',(-2.699611047953E1,1.529296310830E2, +-1.656358873415E2)); +#2813=CARTESIAN_POINT('',(-2.985184870817E1,1.529035247542E2, +-1.655890760351E2)); +#2814=CARTESIAN_POINT('',(-3.501360049316E1,1.528616926523E2, +-1.652511604101E2)); +#2815=CARTESIAN_POINT('',(-4.145634130318E1,1.527355657930E2, +-1.637979028356E2)); +#2816=CARTESIAN_POINT('',(-4.680114211771E1,1.527456027609E2, +-1.619783000026E2)); +#2817=CARTESIAN_POINT('',(-5.286961526861E1,1.531464000973E2, +-1.587828378807E2)); +#2818=CARTESIAN_POINT('',(-5.676495766837E1,1.537517712406E2, +-1.554465372085E2)); +#2819=CARTESIAN_POINT('',(-6.014479712078E1,1.545625190432E2, +-1.515536628074E2)); +#2820=CARTESIAN_POINT('',(-6.230545459223E1,1.553682797280E2, +-1.477815827538E2)); +#2821=CARTESIAN_POINT('',(-6.330419243935E1,1.558494161045E2, +-1.456560249239E2)); +#2823=CARTESIAN_POINT('',(-7.640223374009E1,1.485016465565E2, +-1.238165617390E2)); +#2824=DIRECTION('',(-2.599859414348E-2,-2.509251576834E-2,9.993470061770E-1)); +#2825=DIRECTION('',(9.996619141509E-1,-1.013845079132E-3,2.598133011114E-2)); +#2826=AXIS2_PLACEMENT_3D('',#2823,#2824,#2825); +#2828=CARTESIAN_POINT('',(-6.958200282833E1,1.564625054630E2, +-5.360007170388E1)); +#2829=CARTESIAN_POINT('',(-6.888983284702E1,1.558471193377E2, +-5.360007170388E1)); +#2830=CARTESIAN_POINT('',(-6.766871195318E1,1.545019629730E2, +-5.359996855701E1)); +#2831=CARTESIAN_POINT('',(-6.627815775135E1,1.521175440277E2, +-5.360000249465E1)); +#2832=CARTESIAN_POINT('',(-6.542411272286E1,1.494932310240E2, +-5.360002146438E1)); +#2833=CARTESIAN_POINT('',(-6.522941994885E1,1.476866621425E2, +-5.359994825334E1)); +#2834=CARTESIAN_POINT('',(-6.522846756659E1,1.467603312321E2, +-5.359994825334E1)); +#2836=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-5.36E1)); +#2837=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2838=DIRECTION('',(-5.706074514117E-1,-8.212229516967E-1,0.E0)); +#2839=AXIS2_PLACEMENT_3D('',#2836,#2837,#2838); +#2841=CARTESIAN_POINT('',(-6.519223416037E1,2.457916280694E2, +-5.359999999933E1)); +#2842=CARTESIAN_POINT('',(-6.691029170453E1,2.447057665568E2, +-5.359999999933E1)); +#2843=CARTESIAN_POINT('',(-7.017776029282E1,2.422732096688E2, +-5.360000004617E1)); +#2844=CARTESIAN_POINT('',(-7.477458054362E1,2.369855583356E2, +-5.359999983942E1)); +#2845=CARTESIAN_POINT('',(-7.782032005737E1,2.315932455431E2, +-5.360000059616E1)); +#2846=CARTESIAN_POINT('',(-8.023462684345E1,2.253224029948E2, +-5.359999777594E1)); +#2847=CARTESIAN_POINT('',(-8.199213832937E1,2.177977988981E2, +-5.360000830008E1)); +#2848=CARTESIAN_POINT('',(-8.301546339485E1,2.091075567413E2, +-5.359996902373E1)); +#2849=CARTESIAN_POINT('',(-8.322273880326E1,2.027904494084E2, +-5.360006674457E1)); +#2850=CARTESIAN_POINT('',(-8.322273880339E1,1.994798492339E2, +-5.360006674457E1)); +#2852=CARTESIAN_POINT('',(-8.322273880339E1,1.994798492339E2, +-5.360006674457E1)); +#2853=CARTESIAN_POINT('',(-8.322273880338E1,1.967233157828E2, +-5.360006674457E1)); +#2854=CARTESIAN_POINT('',(-8.307394064794E1,1.915089546593E2, +-5.359996902727E1)); +#2855=CARTESIAN_POINT('',(-8.244130563763E1,1.846017155887E2, +-5.360000828769E1)); +#2856=CARTESIAN_POINT('',(-8.141842585292E1,1.785541380438E2, +-5.359999782198E1)); +#2857=CARTESIAN_POINT('',(-8.005606715923E1,1.733570343374E2, +-5.360000042437E1)); +#2858=CARTESIAN_POINT('',(-7.842836568565E1,1.689161030767E2, +-5.360000048052E1)); +#2859=CARTESIAN_POINT('',(-7.656849336241E1,1.651146064416E2, +-5.359999765356E1)); +#2860=CARTESIAN_POINT('',(-7.449436184315E1,1.618456160489E2, +-5.360000890526E1)); +#2861=CARTESIAN_POINT('',(-7.220433923876E1,1.589861255295E2, +-5.359996672540E1)); +#2862=CARTESIAN_POINT('',(-7.048560453027E1,1.572675135198E2, +-5.360007170388E1)); +#2863=CARTESIAN_POINT('',(-6.958200282833E1,1.564625054630E2, +-5.360007170388E1)); +#2865=DIRECTION('',(8.637042406078E-5,9.999983165068E-1,-1.832900333378E-3)); +#2866=VECTOR('',#2865,9.521539712738E0); +#2867=CARTESIAN_POINT('',(-6.557170786036E1,1.365553997275E2, +-4.056836994594E1)); +#2868=LINE('',#2867,#2866); +#2869=DIRECTION('',(2.142521946791E-3,9.999977032232E-1,5.610785626658E-5)); +#2870=VECTOR('',#2869,9.222711139995E-1); +#2871=CARTESIAN_POINT('',(-6.523044355270E1,1.458380622363E2,-5.36E1)); +#2872=LINE('',#2871,#2870); +#2873=DIRECTION('',(2.611935997249E-2,2.471441694217E-2,-9.993532791910E-1)); +#2874=VECTOR('',#2873,6.992176529220E1); +#2875=CARTESIAN_POINT('',(-6.522846756659E1,1.467603312321E2, +-5.359994825334E1)); +#2876=LINE('',#2875,#2874); +#2877=DIRECTION('',(-2.617618385354E-2,-8.715262803878E-3,9.996193533506E-1)); +#2878=VECTOR('',#2877,8.293965993180E1); +#2879=CARTESIAN_POINT('',(-6.340066407323E1,1.372782406607E2, +-1.234764591741E2)); +#2880=LINE('',#2879,#2878); +#2881=DIRECTION('',(-3.534587296414E-13,1.E0,0.E0)); +#2882=VECTOR('',#2881,1.049353932899E1); +#2883=CARTESIAN_POINT('',(-6.757154611808E1,1.345549126017E2,-3.86E1)); +#2884=LINE('',#2883,#2882); +#2885=CARTESIAN_POINT('',(-6.757154611808E1,1.450484519307E2,-3.86E1)); +#2886=CARTESIAN_POINT('',(-6.729236149683E1,1.451906575498E2,-3.86E1)); +#2887=CARTESIAN_POINT('',(-6.675491477284E1,1.454664953984E2, +-3.871716811580E1)); +#2888=CARTESIAN_POINT('',(-6.610716337530E1,1.457971013980E2, +-3.916632704276E1)); +#2889=CARTESIAN_POINT('',(-6.567485591663E1,1.460253928321E2, +-3.981868527458E1)); +#2890=CARTESIAN_POINT('',(-6.557413728389E1,1.460792127372E2, +-4.033734717765E1)); +#2891=CARTESIAN_POINT('',(-6.557088548094E1,1.460769234108E2, +-4.058582197926E1)); +#2893=CARTESIAN_POINT('',(-6.557170786036E1,1.365553997275E2, +-4.056836994594E1)); +#2894=CARTESIAN_POINT('',(-6.557533197575E1,1.365517753431E2, +-4.036071328953E1)); +#2895=CARTESIAN_POINT('',(-6.564761389362E1,1.364780370912E2, +-3.994511549568E1)); +#2896=CARTESIAN_POINT('',(-6.593456613051E1,1.361927634393E2, +-3.939936118048E1)); +#2897=CARTESIAN_POINT('',(-6.636075903465E1,1.357654691023E2, +-3.896896343017E1)); +#2898=CARTESIAN_POINT('',(-6.692088576483E1,1.352056298227E2, +-3.867326434413E1)); +#2899=CARTESIAN_POINT('',(-6.734802659668E1,1.347784321231E2,-3.86E1)); +#2900=CARTESIAN_POINT('',(-6.757154611808E1,1.345549126017E2,-3.86E1)); +#2902=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-3.86E1)); +#2903=DIRECTION('',(0.E0,0.E0,1.E0)); +#2904=DIRECTION('',(-9.855109520546E-1,-1.696118020083E-1,0.E0)); +#2905=AXIS2_PLACEMENT_3D('',#2902,#2903,#2904); +#2907=CARTESIAN_POINT('',(-6.150005151080E1,1.315548747265E2, +-3.860000054999E1)); +#2908=DIRECTION('',(-3.670764566406E-7,4.926139529651E-7,-9.999999999998E-1)); +#2909=DIRECTION('',(2.515629623628E-5,9.999999996835E-1,4.926047192439E-7)); +#2910=AXIS2_PLACEMENT_3D('',#2907,#2908,#2909); +#2912=CARTESIAN_POINT('',(-9.370590477449E1,8.965435865507E1,-3.86E1)); +#2913=CARTESIAN_POINT('',(-9.384657290651E1,8.961551047696E1,-3.86E1)); +#2914=CARTESIAN_POINT('',(-9.413001519127E1,8.955069565368E1,-3.86E1)); +#2915=CARTESIAN_POINT('',(-9.456360268214E1,8.949188518914E1,-3.86E1)); +#2916=CARTESIAN_POINT('',(-9.485406609606E1,8.947875550782E1,-3.86E1)); +#2917=CARTESIAN_POINT('',(-9.499999999989E1,8.947875550782E1,-3.86E1)); +#2919=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-4.06E1)); +#2920=DIRECTION('',(0.E0,0.E0,1.E0)); +#2921=DIRECTION('',(-9.855109520632E-1,-1.696118019582E-1,0.E0)); +#2922=AXIS2_PLACEMENT_3D('',#2919,#2920,#2921); +#2924=CARTESIAN_POINT('',(-9.500000000024E1,1.891567856635E2,-4.06E1)); +#2925=DIRECTION('',(1.696118019783E-1,-9.855109520597E-1,0.E0)); +#2926=DIRECTION('',(9.855109520597E-1,1.696118019782E-1,0.E0)); +#2927=AXIS2_PLACEMENT_3D('',#2924,#2925,#2926); +#2929=CARTESIAN_POINT('',(-9.499999999999E1,1.891567856629E2,-3.86E1)); +#2930=CARTESIAN_POINT('',(-9.571570339569E1,1.914361906962E2, +-3.859999999998E1)); +#2931=CARTESIAN_POINT('',(-9.664569369226E1,1.962183829619E2, +-3.886950292282E1)); +#2932=CARTESIAN_POINT('',(-9.675686439823E1,2.048050756246E2, +-3.891294163394E1)); +#2933=CARTESIAN_POINT('',(-9.576730923231E1,2.099852915745E2,-3.86E1)); +#2934=CARTESIAN_POINT('',(-9.499999999647E1,2.125632143544E2,-3.86E1)); +#2936=CARTESIAN_POINT('',(-9.499999999430E1,2.125632143710E2,-4.06E1)); +#2937=DIRECTION('',(1.696118024785E-1,9.855109519736E-1,0.E0)); +#2938=DIRECTION('',(0.E0,0.E0,1.E0)); +#2939=AXIS2_PLACEMENT_3D('',#2936,#2937,#2938); +#2941=CARTESIAN_POINT('',(-9.302897809620E1,1.894960092679E2, +-4.059999921567E1)); +#2942=CARTESIAN_POINT('',(-9.334998495570E1,1.913611893203E2, +-4.060000582190E1)); +#2943=CARTESIAN_POINT('',(-9.383621833639E1,1.951334356725E2, +-4.070388285347E1)); +#2944=CARTESIAN_POINT('',(-9.408150855523E1,2.008600420666E2, +-4.080523239764E1)); +#2945=CARTESIAN_POINT('',(-9.383620034533E1,2.065867478041E2, +-4.070386263228E1)); +#2946=CARTESIAN_POINT('',(-9.334998346624E1,2.103588208919E2, +-4.060000294749E1)); +#2947=CARTESIAN_POINT('',(-9.302897809218E1,2.122239907555E2, +-4.059999921566E1)); +#2949=DIRECTION('',(-3.935313613441E-14,-1.246182644256E-13,-1.E0)); +#2950=VECTOR('',#2949,1.3E1); +#2951=CARTESIAN_POINT('',(-6.519223417048E1,2.559084669915E2,-4.06E1)); +#2952=LINE('',#2951,#2950); +#2953=CARTESIAN_POINT('',(-6.523044355270E1,1.458380622363E2,-5.36E1)); +#2954=CARTESIAN_POINT('',(-6.526834390807E1,1.458643964068E2, +-5.215264382137E1)); +#2955=CARTESIAN_POINT('',(-6.534404880447E1,1.459173652717E2, +-4.925982709302E1)); +#2956=CARTESIAN_POINT('',(-6.545818020941E1,1.459967496980E2, +-4.490925976180E1)); +#2957=CARTESIAN_POINT('',(-6.553292816507E1,1.460501991768E2, +-4.203535339118E1)); +#2958=CARTESIAN_POINT('',(-6.557088548094E1,1.460769234108E2, +-4.058582197926E1)); +#2960=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-4.06E1)); +#2961=DIRECTION('',(0.E0,0.E0,1.E0)); +#2962=DIRECTION('',(-5.700371621247E-1,8.216189103208E-1,0.E0)); +#2963=AXIS2_PLACEMENT_3D('',#2960,#2961,#2962); +#2965=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-3.86E1)); +#2966=DIRECTION('',(0.E0,0.E0,1.E0)); +#2967=DIRECTION('',(-5.824998530777E-1,8.128308072191E-1,0.E0)); +#2968=AXIS2_PLACEMENT_3D('',#2965,#2966,#2967); +#2970=CARTESIAN_POINT('',(-8.999999999997E1,2.85E2,-3.859999999999E1)); +#2971=DIRECTION('',(-2.445268358888E-12,-1.883549820922E-12,-1.E0)); +#2972=DIRECTION('',(-1.E0,1.526814230594E-11,2.445688096475E-12)); +#2973=AXIS2_PLACEMENT_3D('',#2970,#2971,#2972); +#2975=DIRECTION('',(1.534813226477E-13,1.E0,0.E0)); +#2976=VECTOR('',#2975,3.305467431352E1); +#2977=CARTESIAN_POINT('',(-6.719223417049E1,2.569453256981E2,-3.86E1)); +#2978=LINE('',#2977,#2976); +#2979=DIRECTION('',(4.585285203462E-14,-1.E0,0.E0)); +#2980=VECTOR('',#2979,3.409153300850E1); +#2981=CARTESIAN_POINT('',(-6.519223417048E1,2.9E2,-4.06E1)); +#2982=LINE('',#2981,#2980); +#2983=CARTESIAN_POINT('',(-6.519223417048E1,2.559084669915E2,-4.06E1)); +#2984=CARTESIAN_POINT('',(-6.519223417048E1,2.559084669915E2, +-4.034391255293E1)); +#2985=CARTESIAN_POINT('',(-6.529364090244E1,2.559615565122E2, +-3.983318488958E1)); +#2986=CARTESIAN_POINT('',(-6.570282701699E1,2.561753276202E2, +-3.919324661814E1)); +#2987=CARTESIAN_POINT('',(-6.635272475549E1,2.565130576428E2, +-3.872435119304E1)); +#2988=CARTESIAN_POINT('',(-6.690361219696E1,2.567970787133E2,-3.86E1)); +#2989=CARTESIAN_POINT('',(-6.719223417049E1,2.569453256981E2,-3.86E1)); +#2991=CARTESIAN_POINT('',(-6.719223417048E1,2.9E2,-4.36E1)); +#2992=DIRECTION('',(-1.E0,0.E0,0.E0)); +#2993=DIRECTION('',(0.E0,4.652326879295E-9,1.E0)); +#2994=AXIS2_PLACEMENT_3D('',#2991,#2992,#2993); +#2996=CARTESIAN_POINT('',(-6.719223417048E1,2.93E2,-4.36E1)); +#2997=DIRECTION('',(0.E0,0.E0,-1.E0)); +#2998=DIRECTION('',(0.E0,1.E0,0.E0)); +#2999=AXIS2_PLACEMENT_3D('',#2996,#2997,#2998); +#3001=CARTESIAN_POINT('',(-6.719223417048E1,2.9E2,-4.06E1)); +#3002=DIRECTION('',(0.E0,-1.E0,0.E0)); +#3003=DIRECTION('',(1.E0,0.E0,-1.350031197944E-13)); +#3004=AXIS2_PLACEMENT_3D('',#3001,#3002,#3003); +#3006=DIRECTION('',(-1.E0,1.699787208627E-10,0.E0)); +#3007=VECTOR('',#3006,2.280776578073E1); +#3008=CARTESIAN_POINT('',(-6.719223417048E1,2.900000000116E2,-3.86E1)); +#3009=LINE('',#3008,#3007); +#3010=DIRECTION('',(1.E0,-1.595061451887E-13,2.563936669733E-13)); +#3011=VECTOR('',#3010,2.280776582486E1); +#3012=CARTESIAN_POINT('',(-8.999999999438E1,2.95E2,-4.359999999534E1)); +#3013=LINE('',#3012,#3011); +#3014=CARTESIAN_POINT('',(-8.999999999998E1,2.85E2,-4.36E1)); +#3015=DIRECTION('',(-2.445268358888E-12,-1.883549820922E-12,-1.E0)); +#3016=DIRECTION('',(-1.E0,1.244870873048E-12,2.444977553744E-12)); +#3017=AXIS2_PLACEMENT_3D('',#3014,#3015,#3016); +#3019=CARTESIAN_POINT('',(-9.E1,2.9E2,-4.360000000001E1)); +#3020=DIRECTION('',(1.E0,3.645472812503E-12,-2.445268358894E-12)); +#3021=DIRECTION('',(-3.646505319911E-12,1.E0,2.742694960027E-12)); +#3022=AXIS2_PLACEMENT_3D('',#3019,#3020,#3021); +#3024=CARTESIAN_POINT('',(-9.499999999999E1,2.85E2,-4.359999999999E1)); +#3025=DIRECTION('',(-7.496503417979E-13,-1.E0,1.883549820924E-12)); +#3026=DIRECTION('',(7.730704965049E-13,1.887201506174E-12,1.E0)); +#3027=AXIS2_PLACEMENT_3D('',#3024,#3025,#3026); +#3029=DIRECTION('',(0.E0,-3.952636639365E-12,-1.E0)); +#3030=VECTOR('',#3029,1.464E2); +#3031=CARTESIAN_POINT('',(-1.E2,2.849999999983E2,-4.36E1)); +#3032=LINE('',#3031,#3030); +#3033=DIRECTION('',(-1.279200182291E-11,2.484958201486E-14,1.E0)); +#3034=VECTOR('',#3033,1.464000000047E2); +#3035=CARTESIAN_POINT('',(-8.999999999251E1,2.95E2,-1.9E2)); +#3036=LINE('',#3035,#3034); +#3037=DIRECTION('',(0.E0,1.E0,0.E0)); +#3038=VECTOR('',#3037,5.299999999952E2); +#3039=CARTESIAN_POINT('',(-1.E2,-2.449999999976E2,-1.9E2)); +#3040=LINE('',#3039,#3038); +#3041=CARTESIAN_POINT('',(-1.E2,-6.5E1,0.E0)); +#3042=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3043=DIRECTION('',(0.E0,9.641152344664E-1,-2.654841137806E-1)); +#3044=AXIS2_PLACEMENT_3D('',#3041,#3042,#3043); +#3046=CARTESIAN_POINT('',(-1.E2,-6.5E1,0.E0)); +#3047=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3048=DIRECTION('',(0.E0,7.007800054811E-2,-9.975415148450E-1)); +#3049=AXIS2_PLACEMENT_3D('',#3046,#3047,#3048); +#3051=DIRECTION('',(0.E0,-1.E0,1.173716420960E-13)); +#3052=VECTOR('',#3051,3.250882771079E1); +#3053=CARTESIAN_POINT('',(-9.5E1,-2.124911722892E2,-6.E1)); +#3054=LINE('',#3053,#3052); +#3055=DIRECTION('',(0.E0,1.E0,-5.074180808346E-13)); +#3056=VECTOR('',#3055,2.918246545114E1); +#3057=CARTESIAN_POINT('',(-1.E2,-2.449999999982E2,-6.5E1)); +#3058=LINE('',#3057,#3056); +#3059=CARTESIAN_POINT('',(-1.E2,-2.158175345470E2,-6.500000000001E1)); +#3060=CARTESIAN_POINT('',(-1.E2,-2.154450590731E2,-6.443387276970E1)); +#3061=CARTESIAN_POINT('',(-9.980613293633E1,-2.147181651594E2, +-6.333322282102E1)); +#3062=CARTESIAN_POINT('',(-9.904106191651E1,-2.137698256502E2, +-6.190707079373E1)); +#3063=CARTESIAN_POINT('',(-9.781938743241E1,-2.130029803218E2, +-6.076154303155E1)); +#3064=CARTESIAN_POINT('',(-9.636337707584E1,-2.125670547664E2, +-6.011261878977E1)); +#3065=CARTESIAN_POINT('',(-9.543694686005E1,-2.124911722892E2,-6.E1)); +#3066=CARTESIAN_POINT('',(-9.5E1,-2.124911722892E2,-6.E1)); +#3068=CARTESIAN_POINT('',(-8.E1,-2.45E2,-6.5E1)); +#3069=DIRECTION('',(0.E0,0.E0,-1.E0)); +#3070=DIRECTION('',(3.524974090396E-10,-1.E0,0.E0)); +#3071=AXIS2_PLACEMENT_3D('',#3068,#3069,#3070); +#3073=CARTESIAN_POINT('',(-9.5E1,-2.45E2,-6.5E1)); +#3074=DIRECTION('',(0.E0,1.E0,0.E0)); +#3075=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3076=AXIS2_PLACEMENT_3D('',#3073,#3074,#3075); +#3078=CARTESIAN_POINT('',(-8.E1,-2.6E2,-6.5E1)); +#3079=DIRECTION('',(1.E0,0.E0,0.E0)); +#3080=DIRECTION('',(0.E0,0.E0,1.E0)); +#3081=AXIS2_PLACEMENT_3D('',#3078,#3079,#3080); +#3083=DIRECTION('',(9.399514055985E-12,0.E0,-1.E0)); +#3084=VECTOR('',#3083,1.25E2); +#3085=CARTESIAN_POINT('',(-7.999999999647E1,-2.65E2,-6.5E1)); +#3086=LINE('',#3085,#3084); +#3087=DIRECTION('',(0.E0,-4.888534022029E-12,1.E0)); +#3088=VECTOR('',#3087,1.25E2); +#3089=CARTESIAN_POINT('',(-1.E2,-2.449999999976E2,-1.9E2)); +#3090=LINE('',#3089,#3088); +#3091=DIRECTION('',(1.E0,0.E0,0.E0)); +#3092=VECTOR('',#3091,2.050000000008E1); +#3093=CARTESIAN_POINT('',(-8.E1,-2.6E2,-6.E1)); +#3094=LINE('',#3093,#3092); +#3095=CARTESIAN_POINT('',(-5.949999999992E1,-2.6E2,-6.E1)); +#3096=CARTESIAN_POINT('',(-5.949999999992E1,-2.603878139624E2,-6.E1)); +#3097=CARTESIAN_POINT('',(-5.942321030988E1,-2.611838508331E2, +-6.007706625192E1)); +#3098=CARTESIAN_POINT('',(-5.888420182928E1,-2.625086318977E2, +-6.061546616848E1)); +#3099=CARTESIAN_POINT('',(-5.823907311155E1,-2.633959356013E2, +-6.126141591663E1)); +#3100=CARTESIAN_POINT('',(-5.715259092623E1,-2.643128461274E2, +-6.234734954460E1)); +#3101=CARTESIAN_POINT('',(-5.597966250844E1,-2.648366609360E2, +-6.351988680507E1)); +#3102=CARTESIAN_POINT('',(-5.501075012748E1,-2.65E2,-6.448924987244E1)); +#3103=CARTESIAN_POINT('',(-5.449999999992E1,-2.65E2,-6.5E1)); +#3105=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3106=VECTOR('',#3105,2.549999999655E1); +#3107=CARTESIAN_POINT('',(-5.449999999992E1,-2.65E2,-6.5E1)); +#3108=LINE('',#3107,#3106); +#3109=CARTESIAN_POINT('',(-9.370590477450E1,-6.5E1,0.E0)); +#3110=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3111=DIRECTION('',(0.E0,9.702362944906E-1,-2.421601388608E-1)); +#3112=AXIS2_PLACEMENT_3D('',#3109,#3110,#3111); +#3114=CARTESIAN_POINT('',(-9.370590477450E1,-6.5E1,0.E0)); +#3115=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3116=DIRECTION('',(0.E0,7.007800054811E-2,-9.975415148450E-1)); +#3117=AXIS2_PLACEMENT_3D('',#3114,#3115,#3116); +#3119=CARTESIAN_POINT('',(-1.E2,9.333498895332E1,-4.360000000001E1)); +#3120=CARTESIAN_POINT('',(-1.E2,9.288519278206E1,-4.300960386394E1)); +#3121=CARTESIAN_POINT('',(-9.978600034398E1,9.202209345853E1, +-4.188224682348E1)); +#3122=CARTESIAN_POINT('',(-9.903667180945E1,9.096201651408E1, +-4.050735718133E1)); +#3123=CARTESIAN_POINT('',(-9.781430032916E1,9.006835241727E1, +-3.935582420824E1)); +#3124=CARTESIAN_POINT('',(-9.634875568289E1,8.956383909049E1, +-3.870891917993E1)); +#3125=CARTESIAN_POINT('',(-9.543073807578E1,8.947875550782E1, +-3.859999999999E1)); +#3126=CARTESIAN_POINT('',(-9.499999999989E1,8.947875550782E1,-3.86E1)); +#3128=CARTESIAN_POINT('',(-9.370590477449E1,8.965435865507E1,-3.86E1)); +#3129=CARTESIAN_POINT('',(-9.195237203007E1,9.013863004899E1,-3.86E1)); +#3130=CARTESIAN_POINT('',(-8.844537793993E1,9.110683051516E1,-3.86E1)); +#3131=CARTESIAN_POINT('',(-8.318517172098E1,9.255836093416E1,-3.86E1)); +#3132=CARTESIAN_POINT('',(-7.967855992041E1,9.352554184788E1,-3.86E1)); +#3133=CARTESIAN_POINT('',(-7.792529284529E1,9.400897231133E1,-3.86E1)); +#3135=CARTESIAN_POINT('',(-7.792529284529E1,-2.172294757119E2,-6.E1)); +#3136=CARTESIAN_POINT('',(-7.967836298812E1,-2.167245725282E2,-6.E1)); +#3137=CARTESIAN_POINT('',(-8.318463526465E1,-2.157136975893E2,-6.E1)); +#3138=CARTESIAN_POINT('',(-8.844484421711E1,-2.141955802731E2,-6.E1)); +#3139=CARTESIAN_POINT('',(-9.195218161812E1,-2.131822983545E2,-6.E1)); +#3140=CARTESIAN_POINT('',(-9.370590477449E1,-2.126750847334E2,-6.E1)); +#3142=CARTESIAN_POINT('',(-7.792529284530E1,-6.5E1,0.E0)); +#3143=DIRECTION('',(1.E0,0.E0,0.E0)); +#3144=DIRECTION('',(0.E0,-9.303441615595E-1,-3.666875250838E-1)); +#3145=AXIS2_PLACEMENT_3D('',#3142,#3143,#3144); +#3147=DIRECTION('',(3.836721254900E-13,1.E0,2.690201036151E-13)); +#3148=VECTOR('',#3147,9.481999252474E0); +#3149=CARTESIAN_POINT('',(-7.792529284529E1,9.400897231133E1,-3.86E1)); +#3150=LINE('',#3149,#3148); +#3151=CARTESIAN_POINT('',(-7.792529284529E1,-6.5E1,0.E0)); +#3152=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3153=DIRECTION('',(0.E0,9.747480793263E-1,-2.233073707913E-1)); +#3154=AXIS2_PLACEMENT_3D('',#3151,#3152,#3153); +#3156=CARTESIAN_POINT('',(-7.792529284529E1,-6.5E1,0.E0)); +#3157=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3158=DIRECTION('',(0.E0,0.E0,-1.E0)); +#3159=AXIS2_PLACEMENT_3D('',#3156,#3157,#3158); +#3161=DIRECTION('',(-3.682526472513E-13,1.E0,1.956342188522E-13)); +#3162=VECTOR('',#3161,9.879029612540E0); +#3163=CARTESIAN_POINT('',(-7.792529284529E1,-2.271085053244E2,-6.E1)); +#3164=LINE('',#3163,#3162); +#3165=CARTESIAN_POINT('',(-6.179450381567E1,-6.5E1,0.E0)); +#3166=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3167=DIRECTION('',(0.E0,8.378916106492E-1,-5.458366502935E-1)); +#3168=AXIS2_PLACEMENT_3D('',#3165,#3166,#3167); +#3170=CARTESIAN_POINT('',(-6.179534369283E1,-6.5E1,0.E0)); +#3171=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3172=DIRECTION('',(0.E0,7.954845484038E-1,-6.059738717559E-1)); +#3173=AXIS2_PLACEMENT_3D('',#3170,#3171,#3172); +#3175=CARTESIAN_POINT('',(-6.179534369283E1,-6.5E1,0.E0)); +#3176=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3177=DIRECTION('',(0.E0,0.E0,-1.E0)); +#3178=AXIS2_PLACEMENT_3D('',#3175,#3176,#3177); +#3180=CARTESIAN_POINT('',(-6.179534369283E1,-2.260561355206E2,-6.E1)); +#3181=CARTESIAN_POINT('',(-6.358767509602E1,-2.261731192858E2,-6.E1)); +#3182=CARTESIAN_POINT('',(-6.717226233266E1,-2.264070358819E2,-6.E1)); +#3183=CARTESIAN_POINT('',(-7.254891206204E1,-2.267578256721E2,-6.E1)); +#3184=CARTESIAN_POINT('',(-7.613319112481E1,-2.269916288282E2,-6.E1)); +#3185=CARTESIAN_POINT('',(-7.792529284529E1,-2.271085053244E2,-6.E1)); +#3187=CARTESIAN_POINT('',(-7.792529284529E1,1.034909715638E2,-3.86E1)); +#3188=CARTESIAN_POINT('',(-7.613312034531E1,1.033785179276E2,-3.86E1)); +#3189=CARTESIAN_POINT('',(-7.254874610017E1,1.031535953398E2,-3.86E1)); +#3190=CARTESIAN_POINT('',(-6.717209637734E1,1.028161753809E2,-3.86E1)); +#3191=CARTESIAN_POINT('',(-6.358760433120E1,1.025912046083E2,-3.86E1)); +#3192=CARTESIAN_POINT('',(-6.179534369283E1,1.024787114496E2,-3.86E1)); +#3194=CARTESIAN_POINT('',(-6.179534369283E1,-6.5E1,0.E0)); +#3195=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3196=DIRECTION('',(0.E0,9.744535390971E-1,-2.245891808194E-1)); +#3197=AXIS2_PLACEMENT_3D('',#3194,#3195,#3196); +#3199=CARTESIAN_POINT('',(-5.849999999992E1,1.024787114496E2,-3.86E1)); +#3200=CARTESIAN_POINT('',(-5.822687859849E1,1.024787114496E2,-3.86E1)); +#3201=CARTESIAN_POINT('',(-5.772413264151E1,1.024549084749E2, +-3.870346925025E1)); +#3202=CARTESIAN_POINT('',(-5.705321062913E1,1.023530429726E2, +-3.914271887908E1)); +#3203=CARTESIAN_POINT('',(-5.660646421173E1,1.021947571303E2, +-3.981428295134E1)); +#3204=CARTESIAN_POINT('',(-5.649999999992E1,1.020725461927E2, +-4.032275419072E1)); +#3205=CARTESIAN_POINT('',(-5.649999999992E1,1.020051459950E2,-4.06E1)); +#3207=DIRECTION('',(-9.999996846171E-1,4.987486798321E-4,-6.180739277115E-4)); +#3208=VECTOR('',#3207,5.294925424258E0); +#3209=CARTESIAN_POINT('',(-5.649999999992E1,7.899842953589E1, +-9.380511334107E1)); +#3210=LINE('',#3209,#3208); +#3211=DIRECTION('',(1.E0,-3.881163980316E-14,0.E0)); +#3212=VECTOR('',#3211,3.295343692910E0); +#3213=CARTESIAN_POINT('',(-6.179534369283E1,1.024787114496E2,-3.86E1)); +#3214=LINE('',#3213,#3212); +#3215=DIRECTION('',(-1.250877649199E-7,1.E0,-1.893047490575E-8)); +#3216=VECTOR('',#3215,2.907606885823E1); +#3217=CARTESIAN_POINT('',(-5.849999999992E1,1.024787114496E2,-3.86E1)); +#3218=LINE('',#3217,#3216); +#3219=CARTESIAN_POINT('',(-6.150001587199E1,1.345549195651E2, +-4.059999889943E1)); +#3220=DIRECTION('',(-9.999999999264E-1,1.212414194035E-5,3.670824291351E-7)); +#3221=DIRECTION('',(3.670402183834E-7,-3.481607608878E-6,9.999999999939E-1)); +#3222=AXIS2_PLACEMENT_3D('',#3219,#3220,#3221); +#3224=CARTESIAN_POINT('',(-6.149999992327E1,1.365548191118E2, +-4.058036561135E1)); +#3225=CARTESIAN_POINT('',(-6.097686420126E1,1.365548163713E2, +-4.058036571222E1)); +#3226=CARTESIAN_POINT('',(-5.993010638482E1,1.363893430868E2, +-4.058413657505E1)); +#3227=CARTESIAN_POINT('',(-5.851141906295E1,1.356666214864E2, +-4.058537563281E1)); +#3228=CARTESIAN_POINT('',(-5.738601212957E1,1.345402784053E2, +-4.058965229709E1)); +#3229=CARTESIAN_POINT('',(-5.666486957768E1,1.331221419657E2, +-4.059450909762E1)); +#3230=CARTESIAN_POINT('',(-5.649999810201E1,1.320769443801E2, +-4.059817777584E1)); +#3231=CARTESIAN_POINT('',(-5.650000214112E1,1.315547984196E2, +-4.060000055318E1)); +#3233=CARTESIAN_POINT('',(-5.850000839188E1,1.315548225344E2, +-4.060000147855E1)); +#3234=DIRECTION('',(-1.772551865732E-5,-9.999999998428E-1,-4.926074462672E-7)); +#3235=DIRECTION('',(9.999999998426E-1,-1.772551902533E-5,7.392671433904E-7)); +#3236=AXIS2_PLACEMENT_3D('',#3233,#3234,#3235); +#3238=DIRECTION('',(9.999956501039E-1,-1.425969483764E-4,-2.946088819550E-3)); +#3239=VECTOR('',#3238,4.071725648667E0); +#3240=CARTESIAN_POINT('',(-6.557170786036E1,1.365553997275E2, +-4.056836994594E1)); +#3241=LINE('',#3240,#3239); +#3242=DIRECTION('',(-1.E0,-2.639073579817E-7,-5.094027547145E-8)); +#3243=VECTOR('',#3242,6.071554146112E0); +#3244=CARTESIAN_POINT('',(-6.149999197197E1,1.345549142040E2, +-3.859999969071E1)); +#3245=LINE('',#3244,#3243); +#3246=DIRECTION('',(-1.E0,-1.763860263473E-12,-2.581258922156E-14)); +#3247=VECTOR('',#3246,3.303238104452E0); +#3248=CARTESIAN_POINT('',(-4.199632111960E1,1.373328999143E2, +-1.297397892668E2)); +#3249=LINE('',#3248,#3247); +#3250=CARTESIAN_POINT('',(-2.699999999992E1,1.370471841019E2,-9.7E1)); +#3251=DIRECTION('',(0.E0,9.999619230642E-1,8.726535498375E-3)); +#3252=DIRECTION('',(-5.368738644941E-1,7.362250960306E-3,-8.436303994546E-1)); +#3253=AXIS2_PLACEMENT_3D('',#3250,#3251,#3252); +#3255=CARTESIAN_POINT('',(-2.699548582841E1,1.370471591967E2, +-9.699846142346E1)); +#3256=DIRECTION('',(-7.147364285034E-8,9.999619140095E-1,8.727572998824E-3)); +#3257=DIRECTION('',(-5.450036155513E-1,7.317452316116E-3,-8.384017616439E-1)); +#3258=AXIS2_PLACEMENT_3D('',#3255,#3256,#3257); +#3260=DIRECTION('',(0.E0,-1.E0,0.E0)); +#3261=VECTOR('',#3260,7.215889364635E1); +#3262=CARTESIAN_POINT('',(-4.199632111960E1,1.373328999143E2, +-1.297397892668E2)); +#3263=LINE('',#3262,#3261); +#3264=CARTESIAN_POINT('',(-4.887559634005E1,6.517400711162E1, +-1.174199042393E2)); +#3265=CARTESIAN_POINT('',(-4.899433582285E1,6.634749634467E1, +-1.172784137502E2)); +#3266=CARTESIAN_POINT('',(-4.921316940689E1,6.856132441741E1, +-1.170130939184E2)); +#3267=CARTESIAN_POINT('',(-4.948197528875E1,7.144784862288E1, +-1.166751422988E2)); +#3268=CARTESIAN_POINT('',(-4.970352982667E1,7.400572532045E1, +-1.163886309873E2)); +#3269=CARTESIAN_POINT('',(-4.988468426347E1,7.630152769032E1, +-1.161477878384E2)); +#3270=CARTESIAN_POINT('',(-5.003260062246E1,7.841397085287E1, +-1.159458343730E2)); +#3271=CARTESIAN_POINT('',(-5.015222778192E1,8.041529349891E1, +-1.157777362083E2)); +#3272=CARTESIAN_POINT('',(-5.024614167300E1,8.237905027769E1, +-1.156409152683E2)); +#3273=CARTESIAN_POINT('',(-5.031233205381E1,8.432304091287E1, +-1.155388170509E2)); +#3274=CARTESIAN_POINT('',(-5.034872039172E1,8.627689201040E1, +-1.154746845883E2)); +#3275=CARTESIAN_POINT('',(-5.035276200621E1,8.823133057029E1, +-1.154523862913E2)); +#3276=CARTESIAN_POINT('',(-5.032433789747E1,9.018394123090E1, +-1.154721584666E2)); +#3277=CARTESIAN_POINT('',(-5.026518883484E1,9.213396706701E1, +-1.155313531767E2)); +#3278=CARTESIAN_POINT('',(-5.017830163286E1,9.408660160226E1, +-1.156253280403E2)); +#3279=CARTESIAN_POINT('',(-5.006512661674E1,9.607786412171E1, +-1.157509241585E2)); +#3280=CARTESIAN_POINT('',(-4.992521220506E1,9.815235127485E1, +-1.159071100901E2)); +#3281=CARTESIAN_POINT('',(-4.975399807142E1,1.003882098095E2, +-1.160972887912E2)); +#3282=CARTESIAN_POINT('',(-4.954434269391E1,1.028703364629E2, +-1.163272353500E2)); +#3283=CARTESIAN_POINT('',(-4.928422409293E1,1.057180595240E2, +-1.166069171347E2)); +#3284=CARTESIAN_POINT('',(-4.896821763052E1,1.089681055096E2, +-1.169375508669E2)); +#3285=CARTESIAN_POINT('',(-4.859434153371E1,1.126325228051E2, +-1.173156039461E2)); +#3286=CARTESIAN_POINT('',(-4.815793054560E1,1.167557265600E2, +-1.177393312996E2)); +#3287=CARTESIAN_POINT('',(-4.765635840924E1,1.213634526506E2, +-1.182037450254E2)); +#3288=CARTESIAN_POINT('',(-4.708757924969E1,1.264819251473E2, +-1.187034368428E2)); +#3289=CARTESIAN_POINT('',(-4.666021525134E1,1.302614883001E2, +-1.190559944208E2)); +#3290=CARTESIAN_POINT('',(-4.643524979295E1,1.322410440894E2, +-1.192357422435E2)); +#3292=CARTESIAN_POINT('',(-4.552254317174E1,1.373011871746E2, +-1.261058692337E2)); +#3293=CARTESIAN_POINT('',(-4.549899351437E1,1.373046981929E2, +-1.265081920757E2)); +#3294=CARTESIAN_POINT('',(-4.545105787487E1,1.373117286331E2, +-1.273138007315E2)); +#3295=CARTESIAN_POINT('',(-4.537670208451E1,1.373222995632E2, +-1.285251093423E2)); +#3296=CARTESIAN_POINT('',(-4.532553353807E1,1.373293636560E2, +-1.293345742013E2)); +#3297=CARTESIAN_POINT('',(-4.529955922405E1,1.373328999143E2, +-1.297397892668E2)); +#3299=CARTESIAN_POINT('',(-4.529955922405E1,1.373328999143E2, +-1.297397892668E2)); +#3300=CARTESIAN_POINT('',(-4.558840457033E1,1.344994791823E2, +-1.297397892668E2)); +#3301=CARTESIAN_POINT('',(-4.613336861622E1,1.290287172088E2, +-1.297397892668E2)); +#3302=CARTESIAN_POINT('',(-4.687559739178E1,1.210172424116E2, +-1.297397892668E2)); +#3303=CARTESIAN_POINT('',(-4.743372372481E1,1.143770613741E2, +-1.297397892668E2)); +#3304=CARTESIAN_POINT('',(-4.793183599980E1,1.075735755960E2, +-1.297397892668E2)); +#3305=CARTESIAN_POINT('',(-4.833295796743E1,1.007181346667E2, +-1.297397892668E2)); +#3306=CARTESIAN_POINT('',(-4.861945719797E1,9.280111715247E1, +-1.297397892668E2)); +#3307=CARTESIAN_POINT('',(-4.865402232238E1,8.547040147696E1, +-1.297397892668E2)); +#3308=CARTESIAN_POINT('',(-4.855276949659E1,7.980223833308E1, +-1.297397892668E2)); +#3309=CARTESIAN_POINT('',(-4.824427978354E1,7.222640140482E1, +-1.297397892668E2)); +#3310=CARTESIAN_POINT('',(-4.794765983962E1,6.755386504061E1, +-1.297397892668E2)); +#3311=CARTESIAN_POINT('',(-4.778132442594E1,6.517400626796E1, +-1.297397892668E2)); +#3313=CARTESIAN_POINT('',(-4.778132442594E1,6.517400626796E1, +-1.297397892668E2)); +#3314=CARTESIAN_POINT('',(-4.793140611326E1,6.517400626796E1, +-1.282018717140E2)); +#3315=CARTESIAN_POINT('',(-4.821294244389E1,6.517400638045E1, +-1.252390369228E2)); +#3316=CARTESIAN_POINT('',(-4.857607006879E1,6.517400587425E1, +-1.211549464243E2)); +#3317=CARTESIAN_POINT('',(-4.878211075064E1,6.517400711162E1, +-1.186296948071E2)); +#3318=CARTESIAN_POINT('',(-4.887559634005E1,6.517400711162E1, +-1.174199042393E2)); +#3320=CARTESIAN_POINT('',(-4.555705140993E1,1.372760360081E2, +-1.255486970194E2)); +#3321=CARTESIAN_POINT('',(-4.558231851798E1,1.372445875667E2, +-1.251618817800E2)); +#3322=CARTESIAN_POINT('',(-4.563773688022E1,1.371254831980E2, +-1.243951263279E2)); +#3323=CARTESIAN_POINT('',(-4.573792954257E1,1.367706526891E2, +-1.232443496568E2)); +#3324=CARTESIAN_POINT('',(-4.584893414789E1,1.362596394804E2, +-1.221788320360E2)); +#3325=CARTESIAN_POINT('',(-4.596369168427E1,1.356361490096E2, +-1.212575218022E2)); +#3326=CARTESIAN_POINT('',(-4.607651662111E1,1.349446668384E2, +-1.205102002751E2)); +#3327=CARTESIAN_POINT('',(-4.618150125652E1,1.342366317707E2, +-1.199519578281E2)); +#3328=CARTESIAN_POINT('',(-4.627677746985E1,1.335401226308E2, +-1.195650404604E2)); +#3329=CARTESIAN_POINT('',(-4.636196820276E1,1.328670578201E2, +-1.193265450841E2)); +#3330=CARTESIAN_POINT('',(-4.641201488353E1,1.324454955895E2, +-1.192543096492E2)); +#3331=CARTESIAN_POINT('',(-4.643524979295E1,1.322410440894E2, +-1.192357422435E2)); +#3333=CARTESIAN_POINT('',(-2.699548547105E1,1.320473488850E2, +-9.704209929493E1)); +#3334=DIRECTION('',(-7.147364285034E-8,9.999619140095E-1,8.727572998824E-3)); +#3335=DIRECTION('',(-6.588805251745E-1,6.565248762067E-3,-7.522189515390E-1)); +#3336=AXIS2_PLACEMENT_3D('',#3333,#3334,#3335); +#3338=CARTESIAN_POINT('',(-6.149968290503E1,1.320473613056E2, +-9.704380495699E1)); +#3339=DIRECTION('',(-4.943472471579E-5,-8.727572991693E-3,9.999619127876E-1)); +#3340=DIRECTION('',(9.999999987738E-1,2.505094229810E-6,4.945847178275E-5)); +#3341=AXIS2_PLACEMENT_3D('',#3338,#3339,#3340); +#3343=CARTESIAN_POINT('',(-4.580220504967E1,1.322998214514E2, +-1.259693044791E2)); +#3344=DIRECTION('',(8.383996455986E-1,4.757075878580E-3,-5.450352323375E-1)); +#3345=DIRECTION('',(-7.674841987557E-6,9.999620159843E-1,8.715878018673E-3)); +#3346=AXIS2_PLACEMENT_3D('',#3343,#3344,#3345); +#3348=DIRECTION('',(-1.152471782641E-9,8.726422950817E-3,-9.999619240464E-1)); +#3349=VECTOR('',#3348,5.642089754183E1); +#3350=CARTESIAN_POINT('',(-6.149999992327E1,1.365548191118E2, +-4.058036561135E1)); +#3351=LINE('',#3350,#3349); +#3352=DIRECTION('',(-2.044992068045E-6,-8.726471179180E-3,9.999619236234E-1)); +#3353=VECTOR('',#3352,5.644578154995E1); +#3354=CARTESIAN_POINT('',(-5.649988670994E1,1.320473709055E2, +-9.704363285230E1)); +#3355=LINE('',#3354,#3353); +#3356=DIRECTION('',(-7.246099588101E-8,1.E0,-1.872036450088E-8)); +#3357=VECTOR('',#3356,2.954965242457E1); +#3358=CARTESIAN_POINT('',(-5.649999999992E1,1.020051459950E2,-4.06E1)); +#3359=LINE('',#3358,#3357); +#3360=CARTESIAN_POINT('',(-5.649999999992E1,-6.437090860656E1, +-8.410286813856E-1)); +#3361=DIRECTION('',(1.E0,0.E0,0.E0)); +#3362=DIRECTION('',(0.E0,8.244821190039E-1,-5.658880060956E-1)); +#3363=AXIS2_PLACEMENT_3D('',#3360,#3361,#3362); +#3365=CARTESIAN_POINT('',(-5.649999999992E1,-6.5E1,0.E0)); +#3366=DIRECTION('',(1.E0,0.E0,0.E0)); +#3367=DIRECTION('',(0.E0,8.379020253738E-1,-5.458206627405E-1)); +#3368=AXIS2_PLACEMENT_3D('',#3365,#3366,#3367); +#3370=CARTESIAN_POINT('',(-4.552254317174E1,1.373011871746E2, +-1.261058692337E2)); +#3371=CARTESIAN_POINT('',(-4.552613028698E1,1.373006523716E2, +-1.260445868816E2)); +#3372=CARTESIAN_POINT('',(-4.553346779995E1,1.372980945808E2, +-1.259215932398E2)); +#3373=CARTESIAN_POINT('',(-4.554497183954E1,1.372897230537E2, +-1.257358048247E2)); +#3374=CARTESIAN_POINT('',(-4.555296888560E1,1.372811199919E2, +-1.256111915057E2)); +#3375=CARTESIAN_POINT('',(-4.555705140993E1,1.372760360081E2, +-1.255486970194E2)); +#3377=DIRECTION('',(9.831459747310E-13,-1.E0,-2.630371698635E-14)); +#3378=VECTOR('',#3377,9.967803015503E1); +#3379=CARTESIAN_POINT('',(-9.499999999999E1,1.891567856629E2,-3.86E1)); +#3380=LINE('',#3379,#3378); +#3381=DIRECTION('',(0.E0,1.E0,4.478311508807E-14)); +#3382=VECTOR('',#3381,1.916650110449E2); +#3383=CARTESIAN_POINT('',(-1.E2,9.333498895332E1,-4.360000000001E1)); +#3384=LINE('',#3383,#3382); +#3385=DIRECTION('',(4.857291067759E-11,-1.E0,-9.554104568030E-14)); +#3386=VECTOR('',#3385,7.243678564563E1); +#3387=CARTESIAN_POINT('',(-9.499999999999E1,2.85E2,-3.859999999999E1)); +#3388=LINE('',#3387,#3386); +#3389=DIRECTION('',(3.852455235574E-12,0.E0,-1.E0)); +#3390=VECTOR('',#3389,8.330000001438E1); +#3391=CARTESIAN_POINT('',(-6.719223416952E1,2.95E2,-4.359999999534E1)); +#3392=LINE('',#3391,#3390); +#3393=DIRECTION('',(0.E0,0.E0,1.E0)); +#3394=VECTOR('',#3393,8.329999999988E1); +#3395=CARTESIAN_POINT('',(-6.519223417048E1,2.93E2,-1.268999999999E2)); +#3396=LINE('',#3395,#3394); +#3397=CARTESIAN_POINT('',(-5.519223417048E1,2.93E2,-1.389E2)); +#3398=DIRECTION('',(1.E0,0.E0,0.E0)); +#3399=DIRECTION('',(0.E0,1.E0,1.421085471520E-14)); +#3400=AXIS2_PLACEMENT_3D('',#3397,#3398,#3399); +#3402=CARTESIAN_POINT('',(-5.519223417048E1,2.93E2,-1.269E2)); +#3403=DIRECTION('',(0.E0,1.E0,0.E0)); +#3404=DIRECTION('',(-8.152511554727E-10,0.E0,-1.E0)); +#3405=AXIS2_PLACEMENT_3D('',#3402,#3403,#3404); +#3407=CARTESIAN_POINT('',(-6.719223417048E1,2.93E2,-1.269E2)); +#3408=DIRECTION('',(0.E0,0.E0,1.E0)); +#3409=DIRECTION('',(1.E0,0.E0,0.E0)); +#3410=AXIS2_PLACEMENT_3D('',#3407,#3408,#3409); +#3412=DIRECTION('',(1.E0,0.E0,0.E0)); +#3413=VECTOR('',#3412,5.464591307214E1); +#3414=CARTESIAN_POINT('',(-5.519223418150E1,2.95E2,-1.388999999986E2)); +#3415=LINE('',#3414,#3413); +#3416=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3417=VECTOR('',#3416,5.464591305933E1); +#3418=CARTESIAN_POINT('',(-5.463211152221E-1,2.93E2,-1.369E2)); +#3419=LINE('',#3418,#3417); +#3420=CARTESIAN_POINT('',(1.145367888040E1,2.93E2,-1.269E2)); +#3421=DIRECTION('',(0.E0,0.E0,1.E0)); +#3422=DIRECTION('',(-2.150279954094E-12,1.E0,0.E0)); +#3423=AXIS2_PLACEMENT_3D('',#3420,#3421,#3422); +#3425=CARTESIAN_POINT('',(-5.463211195957E-1,2.93E2,-1.269E2)); +#3426=DIRECTION('',(0.E0,1.E0,0.E0)); +#3427=DIRECTION('',(1.E0,0.E0,0.E0)); +#3428=AXIS2_PLACEMENT_3D('',#3425,#3426,#3427); +#3430=CARTESIAN_POINT('',(-5.463211195957E-1,2.93E2,-1.389E2)); +#3431=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3432=DIRECTION('',(0.E0,2.842170943040E-14,1.E0)); +#3433=AXIS2_PLACEMENT_3D('',#3430,#3431,#3432); +#3435=DIRECTION('',(8.639553718901E-14,-1.E0,3.979039320257E-13)); +#3436=VECTOR('',#3435,1.1E1); +#3437=CARTESIAN_POINT('',(9.453678880403E0,2.93E2,-1.269E2)); +#3438=LINE('',#3437,#3436); +#3439=DIRECTION('',(-1.325325909624E-10,1.E0,0.E0)); +#3440=VECTOR('',#3439,1.1E1); +#3441=CARTESIAN_POINT('',(-5.463211137643E-1,2.82E2,-1.369E2)); +#3442=LINE('',#3441,#3440); +#3443=CARTESIAN_POINT('',(-5.463211195957E-1,2.82E2,-1.269E2)); +#3444=DIRECTION('',(0.E0,-1.E0,0.E0)); +#3445=DIRECTION('',(0.E0,0.E0,-1.E0)); +#3446=AXIS2_PLACEMENT_3D('',#3443,#3444,#3445); +#3448=CARTESIAN_POINT('',(-6.346321119596E0,2.82E2,-1.541E2)); +#3449=DIRECTION('',(0.E0,1.E0,0.E0)); +#3450=DIRECTION('',(1.E0,0.E0,0.E0)); +#3451=AXIS2_PLACEMENT_3D('',#3448,#3449,#3450); +#3453=CARTESIAN_POINT('',(-4.939223417048E1,2.82E2,-1.541E2)); +#3454=DIRECTION('',(0.E0,1.E0,0.E0)); +#3455=DIRECTION('',(0.E0,0.E0,-1.E0)); +#3456=AXIS2_PLACEMENT_3D('',#3453,#3454,#3455); +#3458=CARTESIAN_POINT('',(-5.519223417048E1,2.82E2,-1.269E2)); +#3459=DIRECTION('',(0.E0,-1.E0,0.E0)); +#3460=DIRECTION('',(-1.E0,0.E0,1.136868377216E-14)); +#3461=AXIS2_PLACEMENT_3D('',#3458,#3459,#3460); +#3463=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3464=VECTOR('',#3463,5.464591306215E1); +#3465=CARTESIAN_POINT('',(-5.463211137643E-1,2.82E2,-1.369E2)); +#3466=LINE('',#3465,#3464); +#3467=DIRECTION('',(-1.235220410804E-10,-1.E0,0.E0)); +#3468=VECTOR('',#3467,1.1E1); +#3469=CARTESIAN_POINT('',(-5.519223417456E1,2.93E2,-1.369E2)); +#3470=LINE('',#3469,#3468); +#3471=DIRECTION('',(0.E0,1.E0,-3.507497322888E-12)); +#3472=VECTOR('',#3471,1.1E1); +#3473=CARTESIAN_POINT('',(-6.519223417048E1,2.82E2,-1.268999999998E2)); +#3474=LINE('',#3473,#3472); +#3475=DIRECTION('',(0.E0,0.E0,-1.E0)); +#3476=VECTOR('',#3475,2.720000000015E1); +#3477=CARTESIAN_POINT('',(-6.519223417048E1,2.82E2,-1.268999999998E2)); +#3478=LINE('',#3477,#3476); +#3479=DIRECTION('',(-9.996878113385E-10,1.E0,-6.660610183148E-11)); +#3480=VECTOR('',#3479,1.011683892210E1); +#3481=CARTESIAN_POINT('',(-6.519223416037E1,2.457916280694E2, +-5.359999999933E1)); +#3482=LINE('',#3481,#3480); +#3483=CARTESIAN_POINT('',(-6.519223417048E1,2.9E2,-4.36E1)); +#3484=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3485=DIRECTION('',(0.E0,4.357995445995E-13,1.E0)); +#3486=AXIS2_PLACEMENT_3D('',#3483,#3484,#3485); +#3488=DIRECTION('',(3.693715621915E-14,-1.E0,1.054356384096E-13)); +#3489=VECTOR('',#3488,4.097381017071E1); +#3490=CARTESIAN_POINT('',(-4.939223417048E1,2.82E2,-1.699E2)); +#3491=LINE('',#3490,#3489); +#3492=DIRECTION('',(1.580697130987E-14,1.E0,0.E0)); +#3493=VECTOR('',#3492,4.135512768920E1); +#3494=CARTESIAN_POINT('',(-6.519223417048E1,2.406448723108E2,-1.541E2)); +#3495=LINE('',#3494,#3493); +#3496=DIRECTION('',(1.E0,0.E0,0.E0)); +#3497=VECTOR('',#3496,4.304591305088E1); +#3498=CARTESIAN_POINT('',(-4.939223417048E1,2.82E2,-1.699E2)); +#3499=LINE('',#3498,#3497); +#3500=DIRECTION('',(2.561946100536E-14,-1.E0,-1.276540617568E-14)); +#3501=VECTOR('',#3500,4.007634090970E1); +#3502=CARTESIAN_POINT('',(9.453678880404E0,2.82E2,-1.541E2)); +#3503=LINE('',#3502,#3501); +#3504=DIRECTION('',(4.391978899050E-14,1.E0,-1.396311614036E-13)); +#3505=VECTOR('',#3504,4.050614576141E1); +#3506=CARTESIAN_POINT('',(-6.346321119598E0,2.414938542386E2,-1.699E2)); +#3507=LINE('',#3506,#3505); +#3508=CARTESIAN_POINT('',(-2.699646879019E1,2.435568685852E2, +-1.698999999753E2)); +#3509=CARTESIAN_POINT('',(-2.438178383367E1,2.435571006446E2, +-1.698999999753E2)); +#3510=CARTESIAN_POINT('',(-1.936517102826E1,2.434269696350E2, +-1.699000000115E2)); +#3511=CARTESIAN_POINT('',(-1.244489516718E1,2.427652335746E2, +-1.698999999967E2)); +#3512=CARTESIAN_POINT('',(-8.302781614021E0,2.419797625509E2,-1.699E2)); +#3513=CARTESIAN_POINT('',(-6.346321119598E0,2.414938542386E2,-1.699E2)); +#3515=CARTESIAN_POINT('',(-6.346321119598E0,2.414938542386E2,-1.699E2)); +#3516=CARTESIAN_POINT('',(-5.226871113415E0,2.412158266143E2,-1.699E2)); +#3517=CARTESIAN_POINT('',(-2.975695685062E0,2.407628702315E2, +-1.696677975453E2)); +#3518=CARTESIAN_POINT('',(3.738472951313E-1,2.403847691085E2, +-1.685363560970E2)); +#3519=CARTESIAN_POINT('',(3.227988773549E0,2.402969219138E2,-1.668156154926E2)); +#3520=CARTESIAN_POINT('',(5.762395300547E0,2.404254787539E2,-1.644559630782E2)); +#3521=CARTESIAN_POINT('',(7.817933548375E0,2.407456153803E2,-1.614262622168E2)); +#3522=CARTESIAN_POINT('',(9.152308127796E0,2.412112251165E2,-1.578735008580E2)); +#3523=CARTESIAN_POINT('',(9.453678880405E0,2.416583418682E2,-1.553610983619E2)); +#3524=CARTESIAN_POINT('',(9.453678880405E0,2.419236590903E2,-1.541E2)); +#3526=CARTESIAN_POINT('',(9.453678880405E0,2.419236590903E2,-1.541E2)); +#3527=CARTESIAN_POINT('',(9.453678880405E0,2.421099193456E2,-1.532146729904E2)); +#3528=CARTESIAN_POINT('',(9.453678878643E0,2.424325854385E2,-1.513884713859E2)); +#3529=CARTESIAN_POINT('',(9.453678886568E0,2.427871072975E2,-1.484772502792E2)); +#3530=CARTESIAN_POINT('',(9.453678867197E0,2.429551774685E2,-1.464445394691E2)); +#3531=CARTESIAN_POINT('',(9.453678867197E0,2.430292775469E2,-1.454039139649E2)); +#3533=CARTESIAN_POINT('',(9.453678867197E0,2.430292775469E2,-1.454039139649E2)); +#3534=CARTESIAN_POINT('',(1.109283200149E1,2.419808698920E2,-1.454018476793E2)); +#3535=CARTESIAN_POINT('',(1.413898475427E1,2.396807227330E2,-1.453976410483E2)); +#3536=CARTESIAN_POINT('',(1.840019914681E1,2.345171575170E2,-1.453889396728E2)); +#3537=CARTESIAN_POINT('',(2.070480247658E1,2.303083820510E2,-1.453825315156E2)); +#3538=CARTESIAN_POINT('',(2.295110146466E1,2.246518351249E2,-1.453749358849E2)); +#3539=CARTESIAN_POINT('',(2.458894626542E1,2.177517853252E2,-1.453671606278E2)); +#3540=CARTESIAN_POINT('',(2.562018165357E1,2.095112947888E2,-1.453592682784E2)); +#3541=CARTESIAN_POINT('',(2.585515169083E1,2.029359048540E2,-1.453549508653E2)); +#3542=CARTESIAN_POINT('',(2.585522121497E1,1.994798490635E2,-1.453530603990E2)); +#3544=CARTESIAN_POINT('',(2.585522121497E1,1.994798490635E2,-1.453530603990E2)); +#3545=CARTESIAN_POINT('',(2.574772123231E1,1.994798053176E2,-1.482735871106E2)); +#3546=CARTESIAN_POINT('',(2.533519428126E1,1.994797336578E2,-1.540566125332E2)); +#3547=CARTESIAN_POINT('',(2.342568194498E1,1.994795934837E2,-1.608885817753E2)); +#3548=CARTESIAN_POINT('',(2.087731132056E1,1.994793631244E2,-1.659867720001E2)); +#3549=CARTESIAN_POINT('',(1.861838863553E1,1.994794607481E2,-1.696721650578E2)); +#3550=CARTESIAN_POINT('',(1.632808573943E1,1.994798685214E2,-1.729975001106E2)); +#3551=CARTESIAN_POINT('',(1.477541296306E1,1.994802816857E2,-1.750954092614E2)); +#3552=CARTESIAN_POINT('',(1.406884648070E1,1.994805383177E2,-1.760029303392E2)); +#3554=CARTESIAN_POINT('',(1.406884648070E1,1.994805383177E2,-1.760029303392E2)); +#3555=CARTESIAN_POINT('',(1.406543982356E1,2.014280350164E2,-1.760029303392E2)); +#3556=CARTESIAN_POINT('',(1.397433088887E1,2.051334594079E2,-1.760029751337E2)); +#3557=CARTESIAN_POINT('',(1.357805753038E1,2.101196798505E2,-1.760029571297E2)); +#3558=CARTESIAN_POINT('',(1.291809116550E1,2.145435763355E2,-1.760029619539E2)); +#3559=CARTESIAN_POINT('',(1.201589386117E1,2.183831297510E2,-1.760029606612E2)); +#3560=CARTESIAN_POINT('',(1.089318741089E1,2.216686396471E2,-1.760029610076E2)); +#3561=CARTESIAN_POINT('',(9.587602073596E0,2.244599392260E2,-1.760029609148E2)); +#3562=CARTESIAN_POINT('',(8.094753473264E0,2.268581651515E2,-1.760029609397E2)); +#3563=CARTESIAN_POINT('',(6.406321398251E0,2.289343878477E2,-1.760029609330E2)); +#3564=CARTESIAN_POINT('',(4.519371059636E0,2.307368116405E2,-1.760029609348E2)); +#3565=CARTESIAN_POINT('',(2.340585970535E0,2.323423636469E2,-1.760029609343E2)); +#3566=CARTESIAN_POINT('',(-1.939896747627E-1,2.337636767715E2, +-1.760029609343E2)); +#3567=CARTESIAN_POINT('',(-3.183833133521E0,2.350099193391E2, +-1.760029609350E2)); +#3568=CARTESIAN_POINT('',(-6.719554762534E0,2.360609351068E2, +-1.760029609322E2)); +#3569=CARTESIAN_POINT('',(-1.083875875974E1,2.368878309854E2, +-1.760029609427E2)); +#3570=CARTESIAN_POINT('',(-1.552953442449E1,2.374721732920E2, +-1.760029609033E2)); +#3571=CARTESIAN_POINT('',(-2.084757450236E1,2.378144555339E2, +-1.760029610504E2)); +#3572=CARTESIAN_POINT('',(-2.487054103525E1,2.378881192316E2, +-1.760029606844E2)); +#3573=CARTESIAN_POINT('',(-2.699653848303E1,2.378900065293E2, +-1.760029606844E2)); +#3575=CARTESIAN_POINT('',(9.453678867197E0,2.430292775469E2,-1.454039139649E2)); +#3576=CARTESIAN_POINT('',(9.453678867197E0,2.434630730651E2,-1.351391356536E2)); +#3577=CARTESIAN_POINT('',(9.453678884322E0,2.443153550725E2,-1.146521581803E2)); +#3578=CARTESIAN_POINT('',(9.453678886500E0,2.455814950528E2,-8.405083821406E1)); +#3579=CARTESIAN_POINT('',(9.453678863567E0,2.464162399616E2,-6.373602387344E1)); +#3580=CARTESIAN_POINT('',(9.453678863567E0,2.468280368970E2,-5.359999999877E1)); +#3582=CARTESIAN_POINT('',(-6.806140416174E1,1.994805390271E2, +-1.760029915268E2)); +#3583=CARTESIAN_POINT('',(-6.805798931725E1,2.014326362921E2, +-1.760029915268E2)); +#3584=CARTESIAN_POINT('',(-6.796656136103E1,2.051452623335E2, +-1.760029467364E2)); +#3585=CARTESIAN_POINT('',(-6.756907017575E1,2.101348933442E2, +-1.760029647387E2)); +#3586=CARTESIAN_POINT('',(-6.690776932734E1,2.145589840146E2, +-1.760029599150E2)); +#3587=CARTESIAN_POINT('',(-6.600521737986E1,2.183950903031E2, +-1.760029612075E2)); +#3588=CARTESIAN_POINT('',(-6.487927483119E1,2.216855352177E2, +-1.760029608612E2)); +#3589=CARTESIAN_POINT('',(-6.357015156686E1,2.244794485926E2, +-1.760029609540E2)); +#3590=CARTESIAN_POINT('',(-6.206884012961E1,2.268845935976E2, +-1.760029609291E2)); +#3591=CARTESIAN_POINT('',(-6.037796961253E1,2.289570387501E2, +-1.760029609358E2)); +#3592=CARTESIAN_POINT('',(-5.848570057125E1,2.307592770117E2, +-1.760029609340E2)); +#3593=CARTESIAN_POINT('',(-5.629819606148E1,2.323648793187E2, +-1.760029609345E2)); +#3594=CARTESIAN_POINT('',(-5.376331007985E1,2.337804457525E2, +-1.760029609342E2)); +#3595=CARTESIAN_POINT('',(-5.077556782253E1,2.350213830375E2, +-1.760029609350E2)); +#3596=CARTESIAN_POINT('',(-4.724263400974E1,2.360681836143E2, +-1.760029609322E2)); +#3597=CARTESIAN_POINT('',(-4.312699174315E1,2.368919280655E2, +-1.760029609427E2)); +#3598=CARTESIAN_POINT('',(-3.844344015747E1,2.374737667619E2, +-1.760029609033E2)); +#3599=CARTESIAN_POINT('',(-3.313478706916E1,2.378146924384E2, +-1.760029610504E2)); +#3600=CARTESIAN_POINT('',(-2.911872339779E1,2.378881186272E2, +-1.760029606844E2)); +#3601=CARTESIAN_POINT('',(-2.699653848303E1,2.378900065293E2, +-1.760029606844E2)); +#3603=CARTESIAN_POINT('',(1.406884648070E1,1.994805383177E2,-1.760029303392E2)); +#3604=CARTESIAN_POINT('',(1.407234637682E1,1.974814642308E2,-1.760029303392E2)); +#3605=CARTESIAN_POINT('',(1.398945027809E1,1.936882719727E2,-1.760029751337E2)); +#3606=CARTESIAN_POINT('',(1.359486628616E1,1.886265959101E2,-1.760029571297E2)); +#3607=CARTESIAN_POINT('',(1.293040354232E1,1.841532992809E2,-1.760029619539E2)); +#3608=CARTESIAN_POINT('',(1.200625668606E1,1.802398659638E2,-1.760029606612E2)); +#3609=CARTESIAN_POINT('',(1.085791592947E1,1.769187923323E2,-1.760029610076E2)); +#3610=CARTESIAN_POINT('',(9.541242311982E0,1.741376945623E2,-1.760029609148E2)); +#3611=CARTESIAN_POINT('',(8.068987190885E0,1.717878029958E2,-1.760029609397E2)); +#3612=CARTESIAN_POINT('',(6.414348479921E0,1.697452004668E2,-1.760029609330E2)); +#3613=CARTESIAN_POINT('',(4.559638419025E0,1.679528437262E2,-1.760029609348E2)); +#3614=CARTESIAN_POINT('',(2.409447069507E0,1.663386398383E2,-1.760029609343E2)); +#3615=CARTESIAN_POINT('',(-9.032546587824E-2,1.648992135332E2, +-1.760029609344E2)); +#3616=CARTESIAN_POINT('',(-3.052670718993E0,1.636183544358E2, +-1.760029609346E2)); +#3617=CARTESIAN_POINT('',(-6.601485130969E0,1.625161069080E2, +-1.760029609338E2)); +#3618=CARTESIAN_POINT('',(-1.072270161945E1,1.616452456428E2, +-1.760029609366E2)); +#3619=CARTESIAN_POINT('',(-1.543749914317E1,1.610211405646E2, +-1.760029609261E2)); +#3620=CARTESIAN_POINT('',(-2.079038701338E1,1.606526740978E2, +-1.760029609655E2)); +#3621=CARTESIAN_POINT('',(-2.484951154968E1,1.605738516039E2, +-1.760029608673E2)); +#3622=CARTESIAN_POINT('',(-2.699625742765E1,1.605733218830E2, +-1.760029608673E2)); +#3624=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-1.760029609344E2)); +#3625=DIRECTION('',(0.E0,0.E0,1.E0)); +#3626=DIRECTION('',(0.E0,1.E0,0.E0)); +#3627=AXIS2_PLACEMENT_3D('',#3624,#3625,#3626); +#3629=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-1.760029609344E2)); +#3630=DIRECTION('',(0.E0,0.E0,1.E0)); +#3631=DIRECTION('',(0.E0,-1.E0,0.E0)); +#3632=AXIS2_PLACEMENT_3D('',#3629,#3630,#3631); +#3634=CARTESIAN_POINT('',(-6.519223416210E1,2.418282421301E2, +-1.454012464152E2)); +#3635=CARTESIAN_POINT('',(-6.519223416210E1,2.417489015647E2, +-1.464457416963E2)); +#3636=CARTESIAN_POINT('',(-6.519223417439E1,2.415688394655E2, +-1.484839405693E2)); +#3637=CARTESIAN_POINT('',(-6.519223416936E1,2.411889784370E2, +-1.513971262343E2)); +#3638=CARTESIAN_POINT('',(-6.519223417048E1,2.408438534183E2, +-1.532185402249E2)); +#3639=CARTESIAN_POINT('',(-6.519223417048E1,2.406448723108E2,-1.541E2)); +#3641=CARTESIAN_POINT('',(-6.519223417048E1,2.406448723108E2,-1.541E2)); +#3642=CARTESIAN_POINT('',(-6.519223417048E1,2.403542736075E2, +-1.553873135087E2)); +#3643=CARTESIAN_POINT('',(-6.487769871294E1,2.398824525580E2, +-1.579594413957E2)); +#3644=CARTESIAN_POINT('',(-6.347429498136E1,2.394664916203E2, +-1.616066008062E2)); +#3645=CARTESIAN_POINT('',(-6.128563229559E1,2.392742003805E2, +-1.647131488512E2)); +#3646=CARTESIAN_POINT('',(-5.866584292628E1,2.393360075196E2, +-1.670381787947E2)); +#3647=CARTESIAN_POINT('',(-5.576661507003E1,2.396339660413E2, +-1.686890919880E2)); +#3648=CARTESIAN_POINT('',(-5.249924926339E1,2.402092300774E2, +-1.697093423836E2)); +#3649=CARTESIAN_POINT('',(-5.041103649280E1,2.407324760783E2,-1.699E2)); +#3650=CARTESIAN_POINT('',(-4.939223417048E1,2.410261898293E2,-1.699E2)); +#3652=CARTESIAN_POINT('',(-4.939223417048E1,2.410261898293E2,-1.699E2)); +#3653=CARTESIAN_POINT('',(-4.733417159763E1,2.416195152122E2,-1.699E2)); +#3654=CARTESIAN_POINT('',(-4.292638308793E1,2.425819665619E2, +-1.698999999967E2)); +#3655=CARTESIAN_POINT('',(-3.540757595141E1,2.433979265107E2, +-1.699000000115E2)); +#3656=CARTESIAN_POINT('',(-2.988998207468E1,2.435571178744E2, +-1.698999999753E2)); +#3657=CARTESIAN_POINT('',(-2.699646879019E1,2.435568685852E2, +-1.698999999753E2)); +#3659=CARTESIAN_POINT('',(-2.699646879019E1,2.435568685852E2, +-1.698999999753E2)); +#3660=CARTESIAN_POINT('',(-2.699647480892E1,2.426584215143E2, +-1.710499087607E2)); +#3661=CARTESIAN_POINT('',(-2.699673742983E1,2.408623062244E2, +-1.731176397550E2)); +#3662=CARTESIAN_POINT('',(-2.699615902616E1,2.388794395588E2, +-1.751110915366E2)); +#3663=CARTESIAN_POINT('',(-2.699653848303E1,2.378900065293E2, +-1.760029606844E2)); +#3665=CARTESIAN_POINT('',(-6.519223416037E1,2.457916280694E2, +-5.359999999933E1)); +#3666=CARTESIAN_POINT('',(-6.519223416037E1,2.453661327095E2, +-6.370539605698E1)); +#3667=CARTESIAN_POINT('',(-6.519223417408E1,2.444977156847E2, +-8.397903419616E1)); +#3668=CARTESIAN_POINT('',(-6.519223417304E1,2.431763801840E2, +-1.145794597676E2)); +#3669=CARTESIAN_POINT('',(-6.519223416210E1,2.422857069978E2, +-1.351064787213E2)); +#3670=CARTESIAN_POINT('',(-6.519223416210E1,2.418282421301E2, +-1.454012464152E2)); +#3672=CARTESIAN_POINT('',(-6.519223416210E1,2.418282421301E2, +-1.454012464152E2)); +#3673=CARTESIAN_POINT('',(-6.692724317260E1,2.405450642175E2, +-1.453988711931E2)); +#3674=CARTESIAN_POINT('',(-7.007795340286E1,2.377195549667E2, +-1.453939165365E2)); +#3675=CARTESIAN_POINT('',(-7.409465244942E1,2.316893623031E2, +-1.453840571132E2)); +#3676=CARTESIAN_POINT('',(-7.630648477635E1,2.265240458777E2, +-1.453770443692E2)); +#3677=CARTESIAN_POINT('',(-7.835185727216E1,2.191917022857E2, +-1.453684839862E2)); +#3678=CARTESIAN_POINT('',(-7.955806471778E1,2.104584345250E2, +-1.453599013083E2)); +#3679=CARTESIAN_POINT('',(-7.984778165445E1,2.032727254985E2, +-1.453552829270E2)); +#3680=CARTESIAN_POINT('',(-7.984786345021E1,1.994798494009E2, +-1.453530603986E2)); +#3682=DIRECTION('',(-3.675732583232E-2,-1.818758606246E-9,9.993242211603E-1)); +#3683=VECTOR('',#3682,9.181504031539E1); +#3684=CARTESIAN_POINT('',(-7.984786345021E1,1.994798494009E2, +-1.453530603986E2)); +#3685=LINE('',#3684,#3683); +#3686=DIRECTION('',(-2.587323867038E-2,-2.505177937318E-2,9.993512815176E-1)); +#3687=VECTOR('',#3686,6.979578633727E1); +#3688=CARTESIAN_POINT('',(-6.777615979024E1,1.582110141035E2, +-1.233505802246E2)); +#3689=LINE('',#3688,#3687); +#3690=CARTESIAN_POINT('',(-6.367143249596E1,1.560529200800E2, +-1.450202262551E2)); +#3691=CARTESIAN_POINT('',(-6.457263193212E1,1.565381366945E2, +-1.426331874584E2)); +#3692=CARTESIAN_POINT('',(-6.603383306462E1,1.574061184263E2, +-1.378410646850E2)); +#3693=CARTESIAN_POINT('',(-6.737969648221E1,1.581829814190E2, +-1.302791953863E2)); +#3694=CARTESIAN_POINT('',(-6.772983436531E1,1.582792497984E2, +-1.256303125306E2)); +#3695=CARTESIAN_POINT('',(-6.777615979024E1,1.582110141035E2, +-1.233505802246E2)); +#3697=DIRECTION('',(0.E0,0.E0,1.E0)); +#3698=VECTOR('',#3697,1.399703906560E1); +#3699=CARTESIAN_POINT('',(-2.699974430812E1,1.8586E2,-1.9E2)); +#3700=LINE('',#3699,#3698); +#3701=DIRECTION('',(0.E0,0.E0,1.E0)); +#3702=VECTOR('',#3701,1.399703906560E1); +#3703=CARTESIAN_POINT('',(-2.699974430812E1,2.1586E2,-1.9E2)); +#3704=LINE('',#3703,#3702); +#3705=DIRECTION('',(2.513618591865E-3,9.999716711231E-1,7.094975190030E-3)); +#3706=VECTOR('',#3705,3.017486083973E1); +#3707=CARTESIAN_POINT('',(-4.309414992402E1,3.499999962189E1, +-1.226153382100E2)); +#3708=LINE('',#3707,#3706); +#3709=DIRECTION('',(1.E0,0.E0,0.E0)); +#3710=VECTOR('',#3709,1.3E1); +#3711=CARTESIAN_POINT('',(-5.949999999992E1,-2.1E2,-1.5E1)); +#3712=LINE('',#3711,#3710); +#3713=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3714=VECTOR('',#3713,1.3E1); +#3715=CARTESIAN_POINT('',(-4.649999999992E1,-2.18E2,-7.E0)); +#3716=LINE('',#3715,#3714); +#3717=DIRECTION('',(-6.294336607922E-14,1.E0,1.642991998454E-9)); +#3718=VECTOR('',#3717,1.444941315385E1); +#3719=CARTESIAN_POINT('',(-8.5E1,-2.5E2,-7.499999998923E1)); +#3720=LINE('',#3719,#3718); +#3721=CARTESIAN_POINT('',(-8.5E1,-6.5E1,0.E0)); +#3722=DIRECTION('',(1.E0,0.E0,0.E0)); +#3723=DIRECTION('',(0.E0,-9.153986234780E-1,-4.025485810864E-1)); +#3724=AXIS2_PLACEMENT_3D('',#3721,#3722,#3723); +#3726=DIRECTION('',(-3.292875515484E-12,2.588656593361E-11,1.E0)); +#3727=VECTOR('',#3726,4.358793156577E-1); +#3728=CARTESIAN_POINT('',(-6.149999999992E1,-2.244427602564E2,-9.38E1)); +#3729=LINE('',#3728,#3727); +#3730=CARTESIAN_POINT('',(-6.149999999992E1,-6.5E1,0.E0)); +#3731=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3732=DIRECTION('',(0.E0,-8.629394876408E-1,-5.053072735181E-1)); +#3733=AXIS2_PLACEMENT_3D('',#3730,#3731,#3732); +#3735=DIRECTION('',(8.937065072993E-14,-1.E0,-8.137131711534E-11)); +#3736=VECTOR('',#3735,1.613954628071E1); +#3737=CARTESIAN_POINT('',(-6.149999999992E1,-2.338604537193E2, +-7.499999999836E1)); +#3738=LINE('',#3737,#3736); +#3739=CARTESIAN_POINT('',(-6.149999999992E1,-6.5E1,0.E0)); +#3740=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3741=DIRECTION('',(0.E0,-8.477489624525E-1,-5.303976778425E-1)); +#3742=AXIS2_PLACEMENT_3D('',#3739,#3740,#3741); +#3744=CARTESIAN_POINT('',(-6.195878103591E1,-2.244427602564E2, +-9.351465573056E1)); +#3745=CARTESIAN_POINT('',(-6.190734672012E1,-2.244427602564E2, +-9.349935265957E1)); +#3746=CARTESIAN_POINT('',(-6.180479096494E1,-2.244427602564E2, +-9.346777272871E1)); +#3747=CARTESIAN_POINT('',(-6.165182757551E1,-2.244427602564E2, +-9.341759372762E1)); +#3748=CARTESIAN_POINT('',(-6.155050810934E1,-2.244427602564E2, +-9.338224811400E1)); +#3749=CARTESIAN_POINT('',(-6.149999999992E1,-2.244427602564E2, +-9.336412068434E1)); +#3751=DIRECTION('',(-5.716820088918E-12,1.E0,1.265470854634E-11)); +#3752=VECTOR('',#3751,2.560370998036E-1); +#3753=CARTESIAN_POINT('',(-6.149999999992E1,-2.244427602564E2,-9.38E1)); +#3754=LINE('',#3753,#3752); +#3755=CARTESIAN_POINT('',(-6.149999999992E1,-2.241867231566E2,-9.38E1)); +#3756=CARTESIAN_POINT('',(-6.155080353904E1,-2.241974172076E2,-9.38E1)); +#3757=CARTESIAN_POINT('',(-6.165252511339E1,-2.242182213722E2,-9.38E1)); +#3758=CARTESIAN_POINT('',(-6.180546511184E1,-2.242476685405E2,-9.38E1)); +#3759=CARTESIAN_POINT('',(-6.190763860206E1,-2.242661258199E2,-9.38E1)); +#3760=CARTESIAN_POINT('',(-6.195878103591E1,-2.242750596753E2,-9.38E1)); +#3762=DIRECTION('',(1.E0,-1.851168452293E-13,0.E0)); +#3763=VECTOR('',#3762,4.606016712611E-1); +#3764=CARTESIAN_POINT('',(-6.196060167118E1,-2.244427602564E2,-9.38E1)); +#3765=LINE('',#3764,#3763); +#3766=CARTESIAN_POINT('',(-6.195878103592E1,-6.5E1,0.E0)); +#3767=DIRECTION('',(1.E0,0.E0,0.E0)); +#3768=DIRECTION('',(0.E0,-8.625841585866E-1,-5.059135987058E-1)); +#3769=AXIS2_PLACEMENT_3D('',#3766,#3767,#3768); +#3771=CARTESIAN_POINT('',(-6.331964059014E1,-6.5E1,0.E0)); +#3772=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3773=DIRECTION('',(0.E0,-7.027525092460E-1,-7.114344036862E-1)); +#3774=AXIS2_PLACEMENT_3D('',#3771,#3772,#3773); +#3776=CARTESIAN_POINT('',(-6.331964059014E1,-2.341010020063E2, +-7.499999999999E1)); +#3777=CARTESIAN_POINT('',(-6.311634874707E1,-2.340874000679E2, +-7.499999999999E1)); +#3778=CARTESIAN_POINT('',(-6.271049580400E1,-2.340514519023E2, +-7.499999999979E1)); +#3779=CARTESIAN_POINT('',(-6.210323211994E1,-2.339712096214E2, +-7.500000000076E1)); +#3780=CARTESIAN_POINT('',(-6.170075654350E1,-2.339002916604E2, +-7.499999999836E1)); +#3781=CARTESIAN_POINT('',(-6.149999999992E1,-2.338604537193E2, +-7.499999999836E1)); +#3783=CARTESIAN_POINT('',(-6.195878103591E1,-2.244427602564E2, +-9.351465573056E1)); +#3784=CARTESIAN_POINT('',(-6.195898306889E1,-2.244427602564E2, +-9.354635584342E1)); +#3785=CARTESIAN_POINT('',(-6.196011625060E1,-2.244427602564E2, +-9.360975157701E1)); +#3786=CARTESIAN_POINT('',(-6.195926664081E1,-2.244427602564E2, +-9.370486949666E1)); +#3787=CARTESIAN_POINT('',(-6.196039908521E1,-2.244427602564E2, +-9.376828503963E1)); +#3788=CARTESIAN_POINT('',(-6.196060167118E1,-2.244427602564E2,-9.38E1)); +#3790=CARTESIAN_POINT('',(-6.196060167118E1,-2.244427602564E2,-9.38E1)); +#3791=CARTESIAN_POINT('',(-6.195999471063E1,-2.243868600636E2,-9.38E1)); +#3792=CARTESIAN_POINT('',(-6.195938783215E1,-2.243309598699E2,-9.38E1)); +#3793=CARTESIAN_POINT('',(-6.195878103591E1,-2.242750596753E2,-9.38E1)); +#3795=CARTESIAN_POINT('',(-4.75E1,-2.5E2,-1.257488738510E2)); +#3796=CARTESIAN_POINT('',(-4.75E1,-2.490603027780E2,-1.257488738510E2)); +#3797=CARTESIAN_POINT('',(-4.730429358266E1,-2.471836948206E2, +-1.258962447251E2)); +#3798=CARTESIAN_POINT('',(-4.621032549758E1,-2.441698945726E2, +-1.266739385789E2)); +#3799=CARTESIAN_POINT('',(-4.441621865905E1,-2.415748275468E2, +-1.278162105079E2)); +#3800=CARTESIAN_POINT('',(-4.194499828608E1,-2.394398235152E2, +-1.291432296530E2)); +#3801=CARTESIAN_POINT('',(-3.904631112353E1,-2.380236059031E2, +-1.303855268203E2)); +#3802=CARTESIAN_POINT('',(-3.581098912580E1,-2.373896147189E2, +-1.314111832608E2)); +#3803=CARTESIAN_POINT('',(-3.269192269666E1,-2.375835996554E2, +-1.320744315071E2)); +#3804=CARTESIAN_POINT('',(-2.976056891020E1,-2.385305876351E2, +-1.324229500328E2)); +#3805=CARTESIAN_POINT('',(-2.745304459477E1,-2.399158807595E2, +-1.325190045770E2)); +#3806=CARTESIAN_POINT('',(-2.538550921099E1,-2.418372196525E2, +-1.324798922186E2)); +#3807=CARTESIAN_POINT('',(-2.373252536273E1,-2.443113521320E2, +-1.323536476895E2)); +#3808=CARTESIAN_POINT('',(-2.270886337103E1,-2.471641657284E2, +-1.322339464412E2)); +#3809=CARTESIAN_POINT('',(-2.25E1,-2.490432190900E2,-1.322052627530E2)); +#3810=CARTESIAN_POINT('',(-2.25E1,-2.5E2,-1.322052627530E2)); +#3812=DIRECTION('',(0.E0,1.E0,2.210542534789E-12)); +#3813=VECTOR('',#3812,6.087953162403E0); +#3814=CARTESIAN_POINT('',(7.500000000077E0,-2.5E2,-9.800000000001E1)); +#3815=LINE('',#3814,#3813); +#3816=DIRECTION('',(0.E0,1.E0,-3.510293411175E-13)); +#3817=VECTOR('',#3816,2.878368420812E1); +#3818=CARTESIAN_POINT('',(-6.416713281508E0,-2.237836842081E2, +-1.256871505913E2)); +#3819=LINE('',#3818,#3817); +#3820=CARTESIAN_POINT('',(-5.158087926405E1,-1.95E2,-1.222080642473E2)); +#3821=CARTESIAN_POINT('',(-5.236650435776E1,-1.972854701588E2, +-1.214103401758E2)); +#3822=CARTESIAN_POINT('',(-5.413055097031E1,-2.015967517132E2, +-1.194659197982E2)); +#3823=CARTESIAN_POINT('',(-5.692808457114E1,-2.074197877170E2, +-1.154301617082E2)); +#3824=CARTESIAN_POINT('',(-5.937191821138E1,-2.126049700899E2, +-1.104042282530E2)); +#3825=CARTESIAN_POINT('',(-6.107752299898E1,-2.173579097880E2, +-1.045012116898E2)); +#3826=CARTESIAN_POINT('',(-6.149999999992E1,-2.202534726833E2, +-1.002098141585E2)); +#3827=CARTESIAN_POINT('',(-6.149999999992E1,-2.216360521379E2, +-9.800000000001E1)); +#3829=DIRECTION('',(5.110385860234E-14,-1.E0,2.535152201253E-13)); +#3830=VECTOR('',#3829,2.836394786213E1); +#3831=CARTESIAN_POINT('',(-6.149999999992E1,-2.216360521379E2, +-9.800000000001E1)); +#3832=LINE('',#3831,#3830); +#3833=CARTESIAN_POINT('',(7.500000000076E0,-8.000179578406E1, +1.429144561350E-3)); +#3834=DIRECTION('',(1.E0,0.E0,0.E0)); +#3835=DIRECTION('',(0.E0,-8.901667905708E-1,-4.556348153563E-1)); +#3836=AXIS2_PLACEMENT_3D('',#3833,#3834,#3835); +#3838=DIRECTION('',(-1.187131617700E-13,0.E0,-1.E0)); +#3839=VECTOR('',#3838,6.431284940867E1); +#3840=CARTESIAN_POINT('',(-6.416713281508E0,-1.95E2,-1.256871505913E2)); +#3841=LINE('',#3840,#3839); +#3842=DIRECTION('',(-1.E0,0.E0,0.E0)); +#3843=VECTOR('',#3842,5.876277864279E1); +#3844=CARTESIAN_POINT('',(-6.416713281516E0,-1.95E2,-1.9E2)); +#3845=LINE('',#3844,#3843); +#3846=CARTESIAN_POINT('',(-6.517949192431E1,-1.95E2,-1.317658817268E2)); +#3847=CARTESIAN_POINT('',(-6.455954011895E1,-1.95E2,-1.317126158644E2)); +#3848=CARTESIAN_POINT('',(-6.393958967217E1,-1.95E2,-1.316593341872E2)); +#3849=CARTESIAN_POINT('',(-6.331964059014E1,-1.95E2,-1.316060366379E2)); +#3851=CARTESIAN_POINT('',(-6.331964059014E1,-1.95E2,-1.316060366379E2)); +#3852=CARTESIAN_POINT('',(-6.280322728285E1,-1.95E2,-1.315616401471E2)); +#3853=CARTESIAN_POINT('',(-6.177102635448E1,-1.95E2,-1.314000155163E2)); +#3854=CARTESIAN_POINT('',(-6.022710564522E1,-1.95E2,-1.309333919484E2)); +#3855=CARTESIAN_POINT('',(-5.868300417669E1,-1.95E2,-1.302249703272E2)); +#3856=CARTESIAN_POINT('',(-5.715698942659E1,-1.95E2,-1.292596311779E2)); +#3857=CARTESIAN_POINT('',(-5.565490168653E1,-1.95E2,-1.280093445880E2)); +#3858=CARTESIAN_POINT('',(-5.419832079769E1,-1.95E2,-1.264450747695E2)); +#3859=CARTESIAN_POINT('',(-5.282001534402E1,-1.95E2,-1.245433229532E2)); +#3860=CARTESIAN_POINT('',(-5.197598578110E1,-1.95E2,-1.230295672164E2)); +#3861=CARTESIAN_POINT('',(-5.158087926405E1,-1.95E2,-1.222080642473E2)); +#3863=CARTESIAN_POINT('',(-2.699999999992E1,-1.95E2,-9.8E1)); +#3864=DIRECTION('',(0.E0,-1.E0,0.E0)); +#3865=DIRECTION('',(-7.124892540327E-1,0.E0,-7.016830216614E-1)); +#3866=AXIS2_PLACEMENT_3D('',#3863,#3864,#3865); +#3868=CARTESIAN_POINT('',(-8.5E1,-2.148205080757E2,-1.107534108877E2)); +#3869=CARTESIAN_POINT('',(-8.397663856822E1,-2.149682175752E2, +-1.104483050617E2)); +#3870=CARTESIAN_POINT('',(-8.190962037518E1,-2.150744025076E2, +-1.100866403923E2)); +#3871=CARTESIAN_POINT('',(-7.898806512650E1,-2.147333852020E2, +-1.102563651935E2)); +#3872=CARTESIAN_POINT('',(-7.592030786427E1,-2.138259250623E2, +-1.111627735486E2)); +#3873=CARTESIAN_POINT('',(-7.297047222651E1,-2.123064926661E2, +-1.128831245203E2)); +#3874=CARTESIAN_POINT('',(-7.025602742001E1,-2.101673434879E2, +-1.153608466844E2)); +#3875=CARTESIAN_POINT('',(-6.792704620702E1,-2.074200985422E2, +-1.185245131632E2)); +#3876=CARTESIAN_POINT('',(-6.610383221473E1,-2.040405897645E2, +-1.223158498606E2)); +#3877=CARTESIAN_POINT('',(-6.497580190289E1,-1.999306758648E2, +-1.267502137447E2)); +#3878=CARTESIAN_POINT('',(-6.493302921721E1,-1.967075437235E2, +-1.300600460080E2)); +#3879=CARTESIAN_POINT('',(-6.517949192431E1,-1.95E2,-1.317658817268E2)); +#3881=DIRECTION('',(0.E0,-9.956411972447E-14,-1.E0)); +#3882=VECTOR('',#3881,5.823411827321E1); +#3883=CARTESIAN_POINT('',(-6.517949192431E1,-1.95E2,-1.317658817268E2)); +#3884=LINE('',#3883,#3882); +#3885=DIRECTION('',(-1.147676779481E-14,1.255271477558E-13,1.E0)); +#3886=VECTOR('',#3885,7.924658911231E1); +#3887=CARTESIAN_POINT('',(-8.5E1,-2.148205080757E2,-1.9E2)); +#3888=LINE('',#3887,#3886); +#3889=CARTESIAN_POINT('',(-8.5E1,-2.355505868461E2,-7.499999996549E1)); +#3890=CARTESIAN_POINT('',(-8.259134329402E1,-2.353896517613E2, +-7.499999996549E1)); +#3891=CARTESIAN_POINT('',(-7.777385164256E1,-2.350676475387E2, +-7.500000001610E1)); +#3892=CARTESIAN_POINT('',(-7.054706514068E1,-2.345844529032E2, +-7.499999999540E1)); +#3893=CARTESIAN_POINT('',(-6.572884145969E1,-2.342621978573E2, +-7.499999999999E1)); +#3894=CARTESIAN_POINT('',(-6.331964059014E1,-2.341010020063E2, +-7.499999999999E1)); +#3896=CARTESIAN_POINT('',(-6.416713281516E0,-2.237836842081E2, +-1.256871505913E2)); +#3897=CARTESIAN_POINT('',(-6.416713281516E0,-2.1E2,-1.398960955492E2)); +#3898=VERTEX_POINT('',#3896); +#3899=VERTEX_POINT('',#3897); +#3900=CARTESIAN_POINT('',(-6.416713281516E0,-2.1E2,-1.9E2)); +#3901=VERTEX_POINT('',#3900); +#3902=CARTESIAN_POINT('',(-6.416713281516E0,-1.95E2,-1.9E2)); +#3903=VERTEX_POINT('',#3902); +#3904=CARTESIAN_POINT('',(-6.416713281508E0,-1.95E2,-1.256871505913E2)); +#3905=VERTEX_POINT('',#3904); +#3906=CARTESIAN_POINT('',(6.517949192431E1,-2.1E2,-1.398960955492E2)); +#3907=VERTEX_POINT('',#3906); +#3908=VERTEX_POINT('',#51); +#3909=CARTESIAN_POINT('',(7.500000000076E0,-2.5E2,-8.701271383326E1)); +#3910=VERTEX_POINT('',#3909); +#3911=CARTESIAN_POINT('',(8.5E1,-2.5E2,-8.701271383328E1)); +#3912=VERTEX_POINT('',#3911); +#3913=CARTESIAN_POINT('',(8.5E1,-2.298205080757E2,-1.184266248042E2)); +#3914=VERTEX_POINT('',#3913); +#3915=VERTEX_POINT('',#1963); +#3916=VERTEX_POINT('',#1968); +#3917=CARTESIAN_POINT('',(-6.416713281516E0,4.362368667118E1, +-1.455581483573E2)); +#3918=VERTEX_POINT('',#3917); +#3919=VERTEX_POINT('',#1509); +#3920=VERTEX_POINT('',#1531); +#3921=CARTESIAN_POINT('',(8.5E1,1.032950599131E2,-5.36E1)); +#3922=VERTEX_POINT('',#3921); +#3923=CARTESIAN_POINT('',(1.850000000008E1,1.032950599131E2,-5.36E1)); +#3924=VERTEX_POINT('',#3923); +#3925=CARTESIAN_POINT('',(1.850000000008E1,8.450222622976E1,-9.7E1)); +#3926=VERTEX_POINT('',#3925); +#3927=CARTESIAN_POINT('',(6.517949192431E1,-2.1E2,-1.9E2)); +#3928=VERTEX_POINT('',#3927); +#3929=CARTESIAN_POINT('',(8.5E1,-2.298205080757E2,-1.9E2)); +#3930=VERTEX_POINT('',#3929); +#3931=CARTESIAN_POINT('',(8.5E1,-2.5E2,-1.9E2)); +#3932=VERTEX_POINT('',#3931); +#3933=CARTESIAN_POINT('',(8.5E1,2.601794919243E2,-5.36E1)); +#3934=CARTESIAN_POINT('',(8.5E1,2.601794919243E2,-1.9E2)); +#3935=VERTEX_POINT('',#3933); +#3936=VERTEX_POINT('',#3934); +#3937=CARTESIAN_POINT('',(8.5E1,1.738081760425E2,-5.36E1)); +#3938=VERTEX_POINT('',#3937); +#3939=CARTESIAN_POINT('',(8.5E1,1.738081760425E2,-1.02E2)); +#3940=VERTEX_POINT('',#3939); +#3941=CARTESIAN_POINT('',(8.5E1,1.165718239575E2,-1.02E2)); +#3942=VERTEX_POINT('',#3941); +#3943=CARTESIAN_POINT('',(8.5E1,1.165718239575E2,-5.36E1)); +#3944=VERTEX_POINT('',#3943); +#3945=CARTESIAN_POINT('',(8.5E1,5.482050807569E1,-1.9E2)); +#3946=VERTEX_POINT('',#3945); +#3947=CARTESIAN_POINT('',(-8.5E1,-2.5E2,-7.499999998923E1)); +#3948=CARTESIAN_POINT('',(-8.5E1,-2.5E2,-1.9E2)); +#3949=VERTEX_POINT('',#3947); +#3950=VERTEX_POINT('',#3948); +#3951=CARTESIAN_POINT('',(7.500000000077E0,-2.5E2,-9.800000000001E1)); +#3952=VERTEX_POINT('',#3951); +#3953=CARTESIAN_POINT('',(-6.149999999992E1,-2.5E2,-9.8E1)); +#3954=CARTESIAN_POINT('',(-6.149999999992E1,-2.5E2,-7.499999999967E1)); +#3955=VERTEX_POINT('',#3953); +#3956=VERTEX_POINT('',#3954); +#3957=CARTESIAN_POINT('',(-8.5E1,9.999999999995E0,-1.705505868161E2)); +#3958=CARTESIAN_POINT('',(-8.5E1,1.E1,-1.9E2)); +#3959=VERTEX_POINT('',#3957); +#3960=VERTEX_POINT('',#3958); +#3961=CARTESIAN_POINT('',(-8.5E1,-1.8E2,-1.9E2)); +#3962=VERTEX_POINT('',#3961); +#3963=CARTESIAN_POINT('',(-8.5E1,-1.8E2,-1.465861612271E2)); +#3964=VERTEX_POINT('',#3963); +#3965=CARTESIAN_POINT('',(-8.5E1,-6.5E1,-1.863129159863E2)); +#3966=VERTEX_POINT('',#3965); +#3967=CARTESIAN_POINT('',(-8.5E1,-2.355505868461E2,-7.499999996549E1)); +#3968=VERTEX_POINT('',#3967); +#3969=CARTESIAN_POINT('',(-8.5E1,-2.148205080757E2,-1.107534108877E2)); +#3970=VERTEX_POINT('',#3969); +#3971=CARTESIAN_POINT('',(-8.5E1,-2.148205080757E2,-1.9E2)); +#3972=VERTEX_POINT('',#3971); +#3973=CARTESIAN_POINT('',(-8.5E1,1.624418115339E2,-1.618398077073E2)); +#3974=CARTESIAN_POINT('',(-8.5E1,1.624418115339E2,-1.9E2)); +#3975=VERTEX_POINT('',#3973); +#3976=VERTEX_POINT('',#3974); +#3977=CARTESIAN_POINT('',(-8.5E1,5.482050807569E1,-1.9E2)); +#3978=VERTEX_POINT('',#3977); +#3979=CARTESIAN_POINT('',(-8.5E1,5.482050807568E1,-1.426728723612E2)); +#3980=VERTEX_POINT('',#3979); +#3981=CARTESIAN_POINT('',(-8.5E1,1.134363826783E2,-5.359999999999E1)); +#3982=VERTEX_POINT('',#3981); +#3983=CARTESIAN_POINT('',(-8.499990594336E1,1.517790122859E2, +-5.360000684048E1)); +#3984=VERTEX_POINT('',#3983); +#3985=VERTEX_POINT('',#1760); +#3986=CARTESIAN_POINT('',(8.583286718484E0,1.E1,-1.703483031240E2)); +#3987=CARTESIAN_POINT('',(-4.897393267632E1,1.E1,-1.703483031240E2)); +#3988=VERTEX_POINT('',#3986); +#3989=VERTEX_POINT('',#3987); +#3990=VERTEX_POINT('',#1030); +#3991=CARTESIAN_POINT('',(9.5E1,9.999999999999E0,-1.512190265727E2)); +#3992=VERTEX_POINT('',#3991); +#3993=CARTESIAN_POINT('',(9.5E1,1.E1,-1.9E2)); +#3994=VERTEX_POINT('',#3993); +#3995=VERTEX_POINT('',#1112); +#3996=VERTEX_POINT('',#1053); +#3997=VERTEX_POINT('',#1070); +#3998=VERTEX_POINT('',#2403); +#3999=CARTESIAN_POINT('',(7.687558889398E0,-7.239165805327E0, +-1.431975920715E2)); +#4000=VERTEX_POINT('',#3999); +#4001=VERTEX_POINT('',#1229); +#4002=VERTEX_POINT('',#3744); +#4003=VERTEX_POINT('',#3749); +#4004=CARTESIAN_POINT('',(-6.195878103592E1,-2.242750596753E2, +-9.379999999996E1)); +#4005=VERTEX_POINT('',#4004); +#4006=VERTEX_POINT('',#3755); +#4007=CARTESIAN_POINT('',(-6.149999999992E1,-2.216360521379E2, +-9.799999999999E1)); +#4008=VERTEX_POINT('',#4007); +#4009=VERTEX_POINT('',#3820); +#4010=VERTEX_POINT('',#3851); +#4011=CARTESIAN_POINT('',(-6.331964059014E1,-2.341010020063E2, +-7.499999999999E1)); +#4012=VERTEX_POINT('',#4011); +#4013=VERTEX_POINT('',#3781); +#4014=CARTESIAN_POINT('',(-6.331964059014E1,-6.396715502482E1, +-1.849840050133E2)); +#4015=VERTEX_POINT('',#4014); +#4016=CARTESIAN_POINT('',(-6.331964059014E1,-6.5E1,-1.849868883989E2)); +#4017=VERTEX_POINT('',#4016); +#4018=CARTESIAN_POINT('',(-6.331964059014E1,-1.8E2,-1.448970285393E2)); +#4019=VERTEX_POINT('',#4018); +#4020=VERTEX_POINT('',#1148); +#4021=VERTEX_POINT('',#2433); +#4022=CARTESIAN_POINT('',(-4.876712271256E1,-6.5E1,-1.697110451146E2)); +#4023=VERTEX_POINT('',#4022); +#4024=CARTESIAN_POINT('',(-4.876712271256E1,-6.405244527492E1, +-1.697083998332E2)); +#4025=VERTEX_POINT('',#4024); +#4026=VERTEX_POINT('',#694); +#4027=VERTEX_POINT('',#705); +#4028=VERTEX_POINT('',#716); +#4029=VERTEX_POINT('',#749); +#4030=CARTESIAN_POINT('',(-6.331964059014E1,2.499999999998E1, +-1.616172914002E2)); +#4031=VERTEX_POINT('',#4030); +#4032=CARTESIAN_POINT('',(-6.149999999992E1,-2.244427602564E2,-9.38E1)); +#4033=VERTEX_POINT('',#4032); +#4034=CARTESIAN_POINT('',(-6.196060167118E1,-2.244427602564E2,-9.38E1)); +#4035=VERTEX_POINT('',#4034); +#4036=VERTEX_POINT('',#1790); +#4037=VERTEX_POINT('',#742); +#4038=CARTESIAN_POINT('',(-7.249999999992E1,1.126379534922E2, +-5.359999999999E1)); +#4039=VERTEX_POINT('',#4038); +#4040=VERTEX_POINT('',#3879); +#4041=CARTESIAN_POINT('',(8.583286718484E0,-1.8E2,-1.9E2)); +#4042=CARTESIAN_POINT('',(8.583286718484E0,-1.8E2,-1.325E2)); +#4043=VERTEX_POINT('',#4041); +#4044=VERTEX_POINT('',#4042); +#4045=CARTESIAN_POINT('',(8.583286718484E0,-1.95E2,-1.331978977207E2)); +#4046=CARTESIAN_POINT('',(8.583286718484E0,-2.442324464425E2, +-6.320411677159E1)); +#4047=VERTEX_POINT('',#4045); +#4048=VERTEX_POINT('',#4046); +#4049=CARTESIAN_POINT('',(8.583286718484E0,-2.488987944182E2,-6.E1)); +#4050=VERTEX_POINT('',#4049); +#4051=CARTESIAN_POINT('',(8.583286718479E0,-2.340328176184E2,-6.E1)); +#4052=VERTEX_POINT('',#4051); +#4053=CARTESIAN_POINT('',(8.583286718470E0,-1.788405455806E2,-1.325E2)); +#4054=VERTEX_POINT('',#4053); +#4055=CARTESIAN_POINT('',(8.583286718484E0,-1.95E2,-1.9E2)); +#4056=VERTEX_POINT('',#4055); +#4057=CARTESIAN_POINT('',(8.583286718484E0,6.184132964198E1,-1.041483448332E2)); +#4058=VERTEX_POINT('',#4057); +#4059=CARTESIAN_POINT('',(8.583286718470E0,4.836701572045E1,-1.041483448332E2)); +#4060=VERTEX_POINT('',#4059); +#4061=CARTESIAN_POINT('',(9.448436920520E1,-2.442324401611E2, +-6.320413323342E1)); +#4062=VERTEX_POINT('',#4061); +#4063=CARTESIAN_POINT('',(9.5E1,-1.95E2,-1.331978977207E2)); +#4064=VERTEX_POINT('',#4063); +#4065=CARTESIAN_POINT('',(9.5E1,-2.404413693410E2,-7.228820280300E1)); +#4066=VERTEX_POINT('',#4065); +#4067=CARTESIAN_POINT('',(1.776402741359E0,6.184133012924E1,-1.041484006631E2)); +#4068=VERTEX_POINT('',#4067); +#4069=VERTEX_POINT('',#1015); +#4070=CARTESIAN_POINT('',(2.500000000076E0,6.888722174489E1,-9.379999999972E1)); +#4071=VERTEX_POINT('',#4070); +#4072=CARTESIAN_POINT('',(1.170000000008E1,6.888722174432E1,-9.380000000072E1)); +#4073=VERTEX_POINT('',#4072); +#4074=CARTESIAN_POINT('',(1.170000000008E1,9.168564498677E1,-3.859999999750E1)); +#4075=VERTEX_POINT('',#4074); +#4076=CARTESIAN_POINT('',(9.5E1,9.168564498621E1,-3.86E1)); +#4077=VERTEX_POINT('',#4076); +#4078=CARTESIAN_POINT('',(9.448470029329E1,-2.488987944036E2, +-6.000000000608E1)); +#4079=VERTEX_POINT('',#4078); +#4080=CARTESIAN_POINT('',(9.931261327110E1,-2.501983621031E2, +-6.500014508090E1)); +#4081=VERTEX_POINT('',#4080); +#4082=CARTESIAN_POINT('',(1.E2,-2.449999999990E2,-7.434219562769E1)); +#4083=VERTEX_POINT('',#4082); +#4084=CARTESIAN_POINT('',(1.E2,-2.E2,-1.354674341539E2)); +#4085=VERTEX_POINT('',#4084); +#4086=CARTESIAN_POINT('',(1.E2,-2.E2,-1.9E2)); +#4087=VERTEX_POINT('',#4086); +#4088=CARTESIAN_POINT('',(1.E2,-2.449999999999E2,-1.9E2)); +#4089=VERTEX_POINT('',#4088); +#4090=CARTESIAN_POINT('',(1.E2,2.849999999944E2,-4.36E1)); +#4091=CARTESIAN_POINT('',(1.E2,9.564073128438E1,-4.359999999999E1)); +#4092=VERTEX_POINT('',#4090); +#4093=VERTEX_POINT('',#4091); +#4094=CARTESIAN_POINT('',(1.E2,2.849999999925E2,-1.9E2)); +#4095=VERTEX_POINT('',#4094); +#4096=CARTESIAN_POINT('',(1.E2,1.5E1,-1.9E2)); +#4097=VERTEX_POINT('',#4096); +#4098=CARTESIAN_POINT('',(1.E2,1.499999999999E1,-1.540311671987E2)); +#4099=VERTEX_POINT('',#4098); +#4100=CARTESIAN_POINT('',(9.5E1,-1.95E2,-1.9E2)); +#4101=VERTEX_POINT('',#4100); +#4102=CARTESIAN_POINT('',(9.E1,2.95E2,-1.9E2)); +#4103=VERTEX_POINT('',#4102); +#4104=CARTESIAN_POINT('',(-8.999999999251E1,2.95E2,-1.9E2)); +#4105=VERTEX_POINT('',#4104); +#4106=CARTESIAN_POINT('',(-1.E2,2.85E2,-1.9E2)); +#4107=VERTEX_POINT('',#4106); +#4108=CARTESIAN_POINT('',(-1.E2,-2.449999999976E2,-1.9E2)); +#4109=VERTEX_POINT('',#4108); +#4110=CARTESIAN_POINT('',(-8.E1,-2.65E2,-1.9E2)); +#4111=VERTEX_POINT('',#4110); +#4112=CARTESIAN_POINT('',(7.999999998861E1,-2.65E2,-1.9E2)); +#4113=VERTEX_POINT('',#4112); +#4114=CARTESIAN_POINT('',(-6.517949192431E1,-1.95E2,-1.9E2)); +#4115=VERTEX_POINT('',#4114); +#4116=CARTESIAN_POINT('',(-6.249464034144E1,1.624418115339E2,-1.9E2)); +#4117=VERTEX_POINT('',#4116); +#4118=VERTEX_POINT('',#260); +#4119=VERTEX_POINT('',#273); +#4120=VERTEX_POINT('',#1681); +#4121=CARTESIAN_POINT('',(5.7E0,2.8E2,-1.9E2)); +#4122=VERTEX_POINT('',#4121); +#4123=CARTESIAN_POINT('',(6.517949192431E1,2.8E2,-1.9E2)); +#4124=VERTEX_POINT('',#4123); +#4125=CARTESIAN_POINT('',(-2.699974430812E1,1.8586E2,-1.9E2)); +#4126=CARTESIAN_POINT('',(-2.699974430812E1,2.1586E2,-1.9E2)); +#4127=VERTEX_POINT('',#4125); +#4128=VERTEX_POINT('',#4126); +#4129=CARTESIAN_POINT('',(-2.699974430812E1,1.8586E2,-1.760029609344E2)); +#4130=VERTEX_POINT('',#4129); +#4131=CARTESIAN_POINT('',(-2.699974430812E1,2.1586E2,-1.760029609344E2)); +#4132=VERTEX_POINT('',#4131); +#4133=VERTEX_POINT('',#2784); +#4134=VERTEX_POINT('',#2803); +#4135=VERTEX_POINT('',#3601); +#4136=VERTEX_POINT('',#3554); +#4137=VERTEX_POINT('',#2757); +#4138=VERTEX_POINT('',#2762); +#4139=VERTEX_POINT('',#2773); +#4140=VERTEX_POINT('',#2810); +#4141=VERTEX_POINT('',#2749); +#4142=VERTEX_POINT('',#898); +#4143=CARTESIAN_POINT('',(-6.777379867914E1,1.582141230255E2, +-1.233482182635E2)); +#4144=VERTEX_POINT('',#4143); +#4145=VERTEX_POINT('',#2730); +#4146=VERTEX_POINT('',#922); +#4147=VERTEX_POINT('',#2747); +#4148=VERTEX_POINT('',#849); +#4149=VERTEX_POINT('',#853); +#4150=VERTEX_POINT('',#864); +#4151=VERTEX_POINT('',#871); +#4152=CARTESIAN_POINT('',(-3.699632111960E1,1.38E2,-1.575401014061E2)); +#4153=VERTEX_POINT('',#4152); +#4154=VERTEX_POINT('',#880); +#4155=CARTESIAN_POINT('',(-4.199632111960E1,1.375595148122E2, +-1.557072845143E2)); +#4156=VERTEX_POINT('',#4155); +#4157=VERTEX_POINT('',#892); +#4158=VERTEX_POINT('',#928); +#4159=CARTESIAN_POINT('',(1.157856131818E1,1.365554310026E2,-4.056946047982E1)); +#4160=CARTESIAN_POINT('',(2.500180929700E0,1.365550557037E2,-4.058909221191E1)); +#4161=VERTEX_POINT('',#4159); +#4162=VERTEX_POINT('',#4160); +#4163=CARTESIAN_POINT('',(2.499958914064E0,1.370471842462E2,-9.700001652925E1)); +#4164=VERTEX_POINT('',#4163); +#4165=CARTESIAN_POINT('',(-6.995891182424E0,1.372363943418E2, +-1.186813459766E2)); +#4166=VERTEX_POINT('',#4165); +#4167=CARTESIAN_POINT('',(-6.557170786036E1,1.365553997275E2, +-4.056836994594E1)); +#4168=CARTESIAN_POINT('',(-6.149999992327E1,1.365548191118E2, +-4.058036561135E1)); +#4169=VERTEX_POINT('',#4167); +#4170=VERTEX_POINT('',#4168); +#4171=CARTESIAN_POINT('',(-4.199632111960E1,1.373328999143E2, +-1.297397892668E2)); +#4172=VERTEX_POINT('',#4171); +#4173=CARTESIAN_POINT('',(-4.529955922405E1,1.373328999143E2, +-1.297397892668E2)); +#4174=VERTEX_POINT('',#4173); +#4175=VERTEX_POINT('',#3292); +#4176=CARTESIAN_POINT('',(-4.580055528571E1,1.372996269323E2, +-1.259270831666E2)); +#4177=VERTEX_POINT('',#4176); +#4178=CARTESIAN_POINT('',(-6.149980587444E1,1.370471469742E2, +-9.699734359607E1)); +#4179=VERTEX_POINT('',#4178); +#4180=CARTESIAN_POINT('',(1.357890387889E1,1.345549126017E2,-3.86E1)); +#4181=CARTESIAN_POINT('',(4.500000000076E0,1.345549126017E2,-3.86E1)); +#4182=VERTEX_POINT('',#4180); +#4183=VERTEX_POINT('',#4181); +#4184=CARTESIAN_POINT('',(4.500000000072E0,9.168564498622E1,-3.86E1)); +#4185=VERTEX_POINT('',#4184); +#4186=CARTESIAN_POINT('',(1.357890387888E1,1.450534294969E2,-3.86E1)); +#4187=VERTEX_POINT('',#4186); +#4188=CARTESIAN_POINT('',(1.145367888040E1,2.581516594723E2,-3.86E1)); +#4189=VERTEX_POINT('',#4188); +#4190=CARTESIAN_POINT('',(1.145367888040E1,2.900000000116E2,-3.86E1)); +#4191=VERTEX_POINT('',#4190); +#4192=CARTESIAN_POINT('',(8.999999995125E1,2.900000000155E2,-3.86E1)); +#4193=VERTEX_POINT('',#4192); +#4194=CARTESIAN_POINT('',(9.5E1,2.85E2,-3.86E1)); +#4195=VERTEX_POINT('',#4194); +#4196=CARTESIAN_POINT('',(6.E1,1.7219E2,-3.86E1)); +#4197=CARTESIAN_POINT('',(6.E1,1.1819E2,-3.86E1)); +#4198=VERTEX_POINT('',#4196); +#4199=VERTEX_POINT('',#4197); +#4200=CARTESIAN_POINT('',(-6.719223417049E1,2.569453256981E2,-3.86E1)); +#4201=CARTESIAN_POINT('',(-6.719223417048E1,2.900000000116E2,-3.86E1)); +#4202=VERTEX_POINT('',#4200); +#4203=VERTEX_POINT('',#4201); +#4204=CARTESIAN_POINT('',(-9.499999999999E1,2.125632143380E2,-3.86E1)); +#4205=VERTEX_POINT('',#4204); +#4206=CARTESIAN_POINT('',(-9.499999999999E1,2.85E2,-3.859999999999E1)); +#4207=VERTEX_POINT('',#4206); +#4208=CARTESIAN_POINT('',(-8.999999985362E1,2.9E2,-3.86E1)); +#4209=VERTEX_POINT('',#4208); +#4210=CARTESIAN_POINT('',(-9.499999999989E1,1.891567856614E2,-3.86E1)); +#4211=CARTESIAN_POINT('',(-6.757154611808E1,1.450484519307E2,-3.86E1)); +#4212=VERTEX_POINT('',#4210); +#4213=VERTEX_POINT('',#4211); +#4214=CARTESIAN_POINT('',(-6.757154611808E1,1.345549126017E2,-3.86E1)); +#4215=VERTEX_POINT('',#4214); +#4216=CARTESIAN_POINT('',(-6.149999197197E1,1.345549142040E2, +-3.859999969071E1)); +#4217=VERTEX_POINT('',#4216); +#4218=CARTESIAN_POINT('',(-5.850001100784E1,1.315547439718E2, +-3.860000165130E1)); +#4219=VERTEX_POINT('',#4218); +#4220=CARTESIAN_POINT('',(-5.849999999992E1,1.024787114496E2,-3.86E1)); +#4221=VERTEX_POINT('',#4220); +#4222=CARTESIAN_POINT('',(-6.179534369283E1,1.024787114496E2,-3.86E1)); +#4223=VERTEX_POINT('',#4222); +#4224=VERTEX_POINT('',#3187); +#4225=CARTESIAN_POINT('',(-7.792529284529E1,9.400897231133E1,-3.86E1)); +#4226=VERTEX_POINT('',#4225); +#4227=VERTEX_POINT('',#3128); +#4228=VERTEX_POINT('',#2917); +#4229=CARTESIAN_POINT('',(6.000000073198E1,1.7019E2,-4.86E1)); +#4230=VERTEX_POINT('',#4229); +#4231=CARTESIAN_POINT('',(5.999999937564E1,1.2019E2,-4.86E1)); +#4232=VERTEX_POINT('',#4231); +#4233=CARTESIAN_POINT('',(5.999999937564E1,1.2019E2,-5.36E1)); +#4234=VERTEX_POINT('',#4233); +#4235=CARTESIAN_POINT('',(8.5E1,1.4519E2,-5.36E1)); +#4236=VERTEX_POINT('',#4235); +#4237=CARTESIAN_POINT('',(8.5E1,1.4519E2,-8.7E1)); +#4238=VERTEX_POINT('',#4237); +#4239=CARTESIAN_POINT('',(6.E1,1.7019E2,-8.7E1)); +#4240=VERTEX_POINT('',#4239); +#4241=CARTESIAN_POINT('',(3.5E1,1.4519E2,-8.7E1)); +#4242=VERTEX_POINT('',#4241); +#4243=CARTESIAN_POINT('',(3.5E1,1.4519E2,-5.36E1)); +#4244=VERTEX_POINT('',#4243); +#4245=CARTESIAN_POINT('',(3.508894772309E1,1.472970060410E2,-5.36E1)); +#4246=VERTEX_POINT('',#4245); +#4247=CARTESIAN_POINT('',(3.508894772309E1,1.472970060410E2,-6.86E1)); +#4248=VERTEX_POINT('',#4247); +#4249=CARTESIAN_POINT('',(4.764942639721E1,1.669262216515E2,-6.86E1)); +#4250=VERTEX_POINT('',#4249); +#4251=CARTESIAN_POINT('',(4.764942639721E1,1.669262216515E2,-5.36E1)); +#4252=VERTEX_POINT('',#4251); +#4253=CARTESIAN_POINT('',(6.E1,1.7019E2,-5.36E1)); +#4254=VERTEX_POINT('',#4253); +#4255=CARTESIAN_POINT('',(6.E1,1.2019E2,-8.7E1)); +#4256=VERTEX_POINT('',#4255); +#4257=CARTESIAN_POINT('',(6.E1,1.3519E2,-8.7E1)); +#4258=CARTESIAN_POINT('',(6.E1,1.5519E2,-8.7E1)); +#4259=VERTEX_POINT('',#4257); +#4260=VERTEX_POINT('',#4258); +#4261=CARTESIAN_POINT('',(6.E1,1.5519E2,-1.02E2)); +#4262=CARTESIAN_POINT('',(6.E1,1.3519E2,-1.02E2)); +#4263=VERTEX_POINT('',#4261); +#4264=VERTEX_POINT('',#4262); +#4265=CARTESIAN_POINT('',(4.014430915075E1,1.775898694581E2,-1.02E2)); +#4266=VERTEX_POINT('',#4265); +#4267=VERTEX_POINT('',#1841); +#4268=CARTESIAN_POINT('',(2.447537320068E1,1.316992294227E2,-1.02E2)); +#4269=VERTEX_POINT('',#4268); +#4270=CARTESIAN_POINT('',(5.292423951052E1,1.825254203605E2,-5.36E1)); +#4271=VERTEX_POINT('',#4270); +#4272=CARTESIAN_POINT('',(5.292423951052E1,1.825254203605E2,-6.86E1)); +#4273=VERTEX_POINT('',#4272); +#4274=CARTESIAN_POINT('',(4.153518924802E1,1.784022080551E2,-6.86E1)); +#4275=VERTEX_POINT('',#4274); +#4276=CARTESIAN_POINT('',(2.574277180462E1,1.287448695241E2,-5.36E1)); +#4277=VERTEX_POINT('',#4276); +#4278=CARTESIAN_POINT('',(2.574277180462E1,1.216678668640E2,-5.36E1)); +#4279=VERTEX_POINT('',#4278); +#4280=CARTESIAN_POINT('',(1.850000000008E1,1.216678668640E2,-5.36E1)); +#4281=VERTEX_POINT('',#4280); +#4282=CARTESIAN_POINT('',(8.25E1,2.6E2,-5.36E1)); +#4283=CARTESIAN_POINT('',(6.898321842156E1,2.663848474702E2,-5.36E1)); +#4284=VERTEX_POINT('',#4282); +#4285=VERTEX_POINT('',#4283); +#4286=CARTESIAN_POINT('',(3.E1,2.663848474702E2,-5.36E1)); +#4287=VERTEX_POINT('',#4286); +#4288=CARTESIAN_POINT('',(3.E1,2.598093778492E2,-5.36E1)); +#4289=VERTEX_POINT('',#4288); +#4290=CARTESIAN_POINT('',(5.500025569188E1,2.0086E2,-5.36E1)); +#4291=VERTEX_POINT('',#4290); +#4292=VERTEX_POINT('',#1930); +#4293=CARTESIAN_POINT('',(2.390305304602E1,1.222809819051E2,-1.238560249310E2)); +#4294=VERTEX_POINT('',#4293); +#4295=VERTEX_POINT('',#1904); +#4296=CARTESIAN_POINT('',(4.034383082927E1,1.994802791342E2,-1.458859474800E2)); +#4297=VERTEX_POINT('',#4296); +#4298=VERTEX_POINT('',#1828); +#4299=CARTESIAN_POINT('',(5.500025569188E1,2.0086E2,-6.86E1)); +#4300=CARTESIAN_POINT('',(3.E1,2.598093778492E2,-6.86E1)); +#4301=VERTEX_POINT('',#4299); +#4302=VERTEX_POINT('',#4300); +#4303=CARTESIAN_POINT('',(3.000018638411E1,2.475589762720E2,-6.859998692460E1)); +#4304=VERTEX_POINT('',#4303); +#4305=CARTESIAN_POINT('',(3.E1,2.357951636701E2,-1.657E2)); +#4306=CARTESIAN_POINT('',(3.E1,2.8E2,-1.657E2)); +#4307=VERTEX_POINT('',#4305); +#4308=VERTEX_POINT('',#4306); +#4309=VERTEX_POINT('',#1633); +#4310=CARTESIAN_POINT('',(3.E1,2.663848474702E2,-1.02E2)); +#4311=VERTEX_POINT('',#4310); +#4312=CARTESIAN_POINT('',(3.E1,2.8E2,-1.02E2)); +#4313=VERTEX_POINT('',#4312); +#4314=CARTESIAN_POINT('',(6.517949192431E1,2.8E2,-1.02E2)); +#4315=VERTEX_POINT('',#4314); +#4316=CARTESIAN_POINT('',(6.898321842156E1,2.663848474702E2,-1.02E2)); +#4317=VERTEX_POINT('',#4316); +#4318=VERTEX_POINT('',#1701); +#4319=VERTEX_POINT('',#1740); +#4320=VERTEX_POINT('',#765); +#4321=VERTEX_POINT('',#1811); +#4322=CARTESIAN_POINT('',(-7.973541404382E1,1.216678668640E2,-5.36E1)); +#4323=VERTEX_POINT('',#4322); +#4324=CARTESIAN_POINT('',(-7.249999999992E1,1.216678668640E2,-5.36E1)); +#4325=VERTEX_POINT('',#4324); +#4326=CARTESIAN_POINT('',(-7.789569528521E1,1.222809819051E2, +-1.238560249310E2)); +#4327=VERTEX_POINT('',#4326); +#4328=CARTESIAN_POINT('',(-4.199632111960E1,1.224643691008E2, +-1.448701161452E2)); +#4329=CARTESIAN_POINT('',(-5.924594064482E1,1.224643691008E2, +-1.448701161452E2)); +#4330=VERTEX_POINT('',#4328); +#4331=VERTEX_POINT('',#4329); +#4332=CARTESIAN_POINT('',(-4.199632111960E1,1.226939752463E2, +-1.711803744151E2)); +#4333=VERTEX_POINT('',#4332); +#4334=CARTESIAN_POINT('',(-7.249999999992E1,1.220466129261E2,-9.7E1)); +#4335=VERTEX_POINT('',#4334); +#4336=VERTEX_POINT('',#732); +#4337=VERTEX_POINT('',#1936); +#4338=VERTEX_POINT('',#1941); +#4339=VERTEX_POINT('',#2231); +#4340=VERTEX_POINT('',#1957); +#4341=CARTESIAN_POINT('',(-1.199632111960E1,1.224643691008E2, +-1.448701161452E2)); +#4342=VERTEX_POINT('',#4341); +#4343=CARTESIAN_POINT('',(-4.199632111960E1,2.5E1,-1.457206748087E2)); +#4344=VERTEX_POINT('',#4343); +#4345=CARTESIAN_POINT('',(-7.025255128608E1,2.5E1,-1.9E2)); +#4346=VERTEX_POINT('',#4345); +#4347=CARTESIAN_POINT('',(7.025255128608E1,2.5E1,-1.9E2)); +#4348=VERTEX_POINT('',#4347); +#4349=CARTESIAN_POINT('',(-1.199632111960E1,2.5E1,-1.457206748087E2)); +#4350=CARTESIAN_POINT('',(-1.199632111960E1,2.5E1,-1.604441561918E2)); +#4351=VERTEX_POINT('',#4349); +#4352=VERTEX_POINT('',#4350); +#4353=CARTESIAN_POINT('',(-2.692109829188E1,2.5E1,-1.622213110811E2)); +#4354=CARTESIAN_POINT('',(-4.199632111960E1,2.5E1,-1.604459236086E2)); +#4355=VERTEX_POINT('',#4353); +#4356=VERTEX_POINT('',#4354); +#4357=CARTESIAN_POINT('',(-1.199632111960E1,1.33E2,-1.711803744151E2)); +#4358=VERTEX_POINT('',#4357); +#4359=CARTESIAN_POINT('',(-1.199632111960E1,1.325593244203E2, +-1.557072845143E2)); +#4360=CARTESIAN_POINT('',(-1.199632111960E1,1.323327095224E2, +-1.297397892668E2)); +#4361=VERTEX_POINT('',#4359); +#4362=VERTEX_POINT('',#4360); +#4363=CARTESIAN_POINT('',(-1.199632111960E1,6.515498735396E1, +-1.297397892668E2)); +#4364=VERTEX_POINT('',#4363); +#4365=CARTESIAN_POINT('',(-1.199632111959E1,6.515498735396E1, +-1.230288139017E2)); +#4366=VERTEX_POINT('',#4365); +#4367=CARTESIAN_POINT('',(-1.199632111959E1,3.5E1,-1.232919724895E2)); +#4368=VERTEX_POINT('',#4367); +#4369=CARTESIAN_POINT('',(-1.199632111960E1,3.5E1,-1.104555056122E2)); +#4370=VERTEX_POINT('',#4369); +#4371=CARTESIAN_POINT('',(-1.199632111959E1,-1.5E1,-1.104555056122E2)); +#4372=VERTEX_POINT('',#4371); +#4373=VERTEX_POINT('',#2019); +#4374=CARTESIAN_POINT('',(-1.699632111960E1,1.38E2,-1.724483496347E2)); +#4375=CARTESIAN_POINT('',(-3.699632111960E1,1.38E2,-1.724483496347E2)); +#4376=VERTEX_POINT('',#4374); +#4377=VERTEX_POINT('',#4375); +#4378=CARTESIAN_POINT('',(-4.199632111960E1,1.33E2,-1.711803744151E2)); +#4379=VERTEX_POINT('',#4378); +#4380=VERTEX_POINT('',#650); +#4381=VERTEX_POINT('',#657); +#4382=CARTESIAN_POINT('',(-4.199632111960E1,3.5E1,-1.104643633161E2)); +#4383=VERTEX_POINT('',#4382); +#4384=CARTESIAN_POINT('',(-4.199632111959E1,3.5E1,-1.232963173402E2)); +#4385=VERTEX_POINT('',#4384); +#4386=CARTESIAN_POINT('',(-4.199632111959E1,6.517400626796E1, +-1.230329927767E2)); +#4387=VERTEX_POINT('',#4386); +#4388=CARTESIAN_POINT('',(-4.199632111960E1,6.517400626796E1, +-1.297397892668E2)); +#4389=VERTEX_POINT('',#4388); +#4390=CARTESIAN_POINT('',(-2.698252682529E1,2.888543819997E0, +-1.264442665432E2)); +#4391=VERTEX_POINT('',#4390); +#4392=CARTESIAN_POINT('',(-2.699999999992E1,-1.5E1,-1.175E2)); +#4393=VERTEX_POINT('',#4392); +#4394=CARTESIAN_POINT('',(-7.516417167186E0,3.5E1,-9.88E1)); +#4395=VERTEX_POINT('',#4394); +#4396=VERTEX_POINT('',#1391); +#4397=CARTESIAN_POINT('',(-7.499999999923E0,-2.5E2,-9.800000000001E1)); +#4398=VERTEX_POINT('',#4397); +#4399=CARTESIAN_POINT('',(-4.649999999992E1,-2.5E2,-9.8E1)); +#4400=VERTEX_POINT('',#4399); +#4401=CARTESIAN_POINT('',(-4.649999999992E1,3.5E1,-9.8E1)); +#4402=VERTEX_POINT('',#4401); +#4403=VERTEX_POINT('',#505); +#4404=VERTEX_POINT('',#510); +#4405=CARTESIAN_POINT('',(-5.582834505597E1,3.500000026862E1, +-1.041484034318E2)); +#4406=VERTEX_POINT('',#4405); +#4407=VERTEX_POINT('',#572); +#4408=CARTESIAN_POINT('',(-4.649999999992E1,3.5E1,-7.E1)); +#4409=VERTEX_POINT('',#4408); +#4410=CARTESIAN_POINT('',(5.963144320304E0,3.5E1,-9.88E1)); +#4411=VERTEX_POINT('',#4410); +#4412=VERTEX_POINT('',#2168); +#4413=VERTEX_POINT('',#2176); +#4414=CARTESIAN_POINT('',(6.640358504370E0,3.5E1,-1.041483448332E2)); +#4415=VERTEX_POINT('',#4414); +#4416=VERTEX_POINT('',#520); +#4417=VERTEX_POINT('',#533); +#4418=VERTEX_POINT('',#553); +#4419=CARTESIAN_POINT('',(-6.179534369283E1,-6.5E1,-1.718693654751E2)); +#4420=VERTEX_POINT('',#4419); +#4421=CARTESIAN_POINT('',(-6.179534369283E1,7.171942457941E1, +-1.041483448332E2)); +#4422=VERTEX_POINT('',#4421); +#4423=CARTESIAN_POINT('',(-4.649999999992E1,2.5E1,-6.E1)); +#4424=VERTEX_POINT('',#4423); +#4425=CARTESIAN_POINT('',(-4.649999999992E1,-2.1E2,-5.5E1)); +#4426=CARTESIAN_POINT('',(-4.649999999992E1,-2.1E2,-1.5E1)); +#4427=VERTEX_POINT('',#4425); +#4428=VERTEX_POINT('',#4426); +#4429=CARTESIAN_POINT('',(-4.649999999992E1,-2.05E2,-6.E1)); +#4430=VERTEX_POINT('',#4429); +#4431=CARTESIAN_POINT('',(-4.649999999992E1,-2.5E2,-7.E0)); +#4432=VERTEX_POINT('',#4431); +#4433=CARTESIAN_POINT('',(-4.649999999992E1,-2.18E2,-7.E0)); +#4434=VERTEX_POINT('',#4433); +#4435=CARTESIAN_POINT('',(-5.949999999992E1,-2.1E2,-5.5E1)); +#4436=VERTEX_POINT('',#4435); +#4437=CARTESIAN_POINT('',(-5.949999999992E1,-2.1E2,-1.5E1)); +#4438=VERTEX_POINT('',#4437); +#4439=CARTESIAN_POINT('',(7.076698078222E0,-2.1E2,-8.88E1)); +#4440=CARTESIAN_POINT('',(-7.499999999924E0,-2.1E2,-8.88E1)); +#4441=VERTEX_POINT('',#4439); +#4442=VERTEX_POINT('',#4440); +#4443=VERTEX_POINT('',#1270); +#4444=CARTESIAN_POINT('',(4.348188160384E0,-2.1E2,-1.5E1)); +#4445=VERTEX_POINT('',#4444); +#4446=CARTESIAN_POINT('',(-7.499999999924E0,-2.1E2,-1.5E1)); +#4447=VERTEX_POINT('',#4446); +#4448=CARTESIAN_POINT('',(-5.949999999992E1,-2.05E2,-6.E1)); +#4449=VERTEX_POINT('',#4448); +#4450=CARTESIAN_POINT('',(-5.949999999992E1,-2.6E2,-6.E1)); +#4451=VERTEX_POINT('',#4450); +#4452=CARTESIAN_POINT('',(-5.949999999992E1,-2.18E2,-7.E0)); +#4453=VERTEX_POINT('',#4452); +#4454=CARTESIAN_POINT('',(-5.949999999992E1,-2.6E2,-7.E0)); +#4455=VERTEX_POINT('',#4454); +#4456=VERTEX_POINT('',#1184); +#4457=CARTESIAN_POINT('',(8.E1,-2.6E2,-6.E1)); +#4458=VERTEX_POINT('',#4457); +#4459=CARTESIAN_POINT('',(5.500000000076E0,-2.6E2,-6.E1)); +#4460=VERTEX_POINT('',#4459); +#4461=CARTESIAN_POINT('',(-8.E1,-2.6E2,-6.E1)); +#4462=VERTEX_POINT('',#4461); +#4463=CARTESIAN_POINT('',(-9.5E1,-2.45E2,-6.E1)); +#4464=VERTEX_POINT('',#4463); +#4465=CARTESIAN_POINT('',(-9.5E1,-2.124911722892E2,-6.E1)); +#4466=VERTEX_POINT('',#4465); +#4467=VERTEX_POINT('',#452); +#4468=VERTEX_POINT('',#3135); +#4469=CARTESIAN_POINT('',(-7.792529284529E1,-2.271085053244E2,-6.E1)); +#4470=VERTEX_POINT('',#4469); +#4471=VERTEX_POINT('',#1211); +#4472=VERTEX_POINT('',#1295); +#4473=CARTESIAN_POINT('',(1.979284025065E0,-8.000179578406E1, +-1.307985708554E2)); +#4474=VERTEX_POINT('',#4473); +#4475=CARTESIAN_POINT('',(1.979284023049E0,1.115703204098E1,-9.379999999999E1)); +#4476=VERTEX_POINT('',#4475); +#4477=VERTEX_POINT('',#1288); +#4478=VERTEX_POINT('',#1241); +#4479=VERTEX_POINT('',#1250); +#4480=CARTESIAN_POINT('',(-7.499999999924E0,-2.05E2,-9.38E1)); +#4481=VERTEX_POINT('',#4480); +#4482=CARTESIAN_POINT('',(-7.499999999924E0,3.E1,-9.38E1)); +#4483=VERTEX_POINT('',#4482); +#4484=CARTESIAN_POINT('',(-7.499999999924E0,-2.18E2,-7.E0)); +#4485=VERTEX_POINT('',#4484); +#4486=CARTESIAN_POINT('',(-7.499999999924E0,-2.5E2,-7.E0)); +#4487=VERTEX_POINT('',#4486); +#4488=VERTEX_POINT('',#1328); +#4489=CARTESIAN_POINT('',(5.500000000076E0,-2.18E2,-7.E0)); +#4490=VERTEX_POINT('',#4489); +#4491=CARTESIAN_POINT('',(5.500000000076E0,-2.6E2,-7.E0)); +#4492=VERTEX_POINT('',#4491); +#4493=CARTESIAN_POINT('',(5.000000000761E-1,-2.65E2,-6.5E1)); +#4494=CARTESIAN_POINT('',(5.000000000761E-1,-2.65E2,-7.E0)); +#4495=VERTEX_POINT('',#4493); +#4496=VERTEX_POINT('',#4494); +#4497=CARTESIAN_POINT('',(-5.449999999992E1,-2.65E2,-7.E0)); +#4498=CARTESIAN_POINT('',(-5.449999999992E1,-2.65E2,-6.5E1)); +#4499=VERTEX_POINT('',#4497); +#4500=VERTEX_POINT('',#4498); +#4501=CARTESIAN_POINT('',(7.999999999145E1,-2.65E2,-6.5E1)); +#4502=VERTEX_POINT('',#4501); +#4503=CARTESIAN_POINT('',(-7.999999999647E1,-2.65E2,-6.5E1)); +#4504=VERTEX_POINT('',#4503); +#4505=CARTESIAN_POINT('',(-1.E2,-2.45E2,-6.5E1)); +#4506=VERTEX_POINT('',#4505); +#4507=CARTESIAN_POINT('',(-1.E2,-2.158175345470E2,-6.500000000001E1)); +#4508=VERTEX_POINT('',#4507); +#4509=CARTESIAN_POINT('',(-1.E2,2.849999999983E2,-4.36E1)); +#4510=VERTEX_POINT('',#4509); +#4511=CARTESIAN_POINT('',(-1.E2,9.333498895332E1,-4.360000000001E1)); +#4512=VERTEX_POINT('',#4511); +#4513=CARTESIAN_POINT('',(-1.E2,-5.349121033878E1,-1.638245295656E2)); +#4514=VERTEX_POINT('',#4513); +#4515=CARTESIAN_POINT('',(-9.370590477450E1,-5.382966109170E1, +-1.590067740057E2)); +#4516=VERTEX_POINT('',#4515); +#4517=CARTESIAN_POINT('',(-7.792529284529E1,-6.5E1,-1.728559154282E2)); +#4518=VERTEX_POINT('',#4517); +#4519=CARTESIAN_POINT('',(-6.179450381567E1,7.900785641748E1, +-9.381257069987E1)); +#4520=VERTEX_POINT('',#4519); +#4521=VERTEX_POINT('',#604); +#4522=VERTEX_POINT('',#609); +#4523=CARTESIAN_POINT('',(-5.649999999992E1,7.899842953589E1, +-9.380511334107E1)); +#4524=VERTEX_POINT('',#4523); +#4525=VERTEX_POINT('',#590); +#4526=VERTEX_POINT('',#595); +#4527=CARTESIAN_POINT('',(-5.649988670994E1,1.320473709055E2, +-9.704363285230E1)); +#4528=VERTEX_POINT('',#4527); +#4529=CARTESIAN_POINT('',(-4.643522610932E1,1.322410512761E2, +-1.192357152274E2)); +#4530=VERTEX_POINT('',#4529); +#4531=VERTEX_POINT('',#3313); +#4532=VERTEX_POINT('',#2141); +#4533=CARTESIAN_POINT('',(-6.196794757926E0,6.515498735396E1, +-1.297397892668E2)); +#4534=VERTEX_POINT('',#4533); +#4535=VERTEX_POINT('',#2079); +#4536=VERTEX_POINT('',#2152); +#4537=VERTEX_POINT('',#2039); +#4538=CARTESIAN_POINT('',(2.500001586577E0,9.124474384559E1,-4.059854558165E1)); +#4539=VERTEX_POINT('',#4538); +#4540=VERTEX_POINT('',#3320); +#4541=VERTEX_POINT('',#3231); +#4542=VERTEX_POINT('',#2891); +#4543=CARTESIAN_POINT('',(-9.302897809612E1,1.894960092675E2,-4.06E1)); +#4544=VERTEX_POINT('',#4543); +#4545=VERTEX_POINT('',#2947); +#4546=CARTESIAN_POINT('',(1.157821978685E1,1.460809831570E2,-4.06E1)); +#4547=CARTESIAN_POINT('',(9.453678880423E0,2.570751931228E2,-4.06E1)); +#4548=VERTEX_POINT('',#4546); +#4549=VERTEX_POINT('',#4547); +#4550=VERTEX_POINT('',#2582); +#4551=CARTESIAN_POINT('',(9.453678880403E0,2.570751931228E2,-5.36E1)); +#4552=VERTEX_POINT('',#4551); +#4553=CARTESIAN_POINT('',(-6.519223417048E1,2.559084669915E2,-4.06E1)); +#4554=VERTEX_POINT('',#4553); +#4555=CARTESIAN_POINT('',(-6.519223417048E1,2.559084669915E2,-5.36E1)); +#4556=VERTEX_POINT('',#4555); +#4557=CARTESIAN_POINT('',(-6.523044355270E1,1.458380622363E2,-5.36E1)); +#4558=VERTEX_POINT('',#4557); +#4559=CARTESIAN_POINT('',(9.453678880401E0,2.9E2,-4.06E1)); +#4560=VERTEX_POINT('',#4559); +#4561=CARTESIAN_POINT('',(9.453678863567E0,2.468280368970E2,-5.359999999877E1)); +#4562=VERTEX_POINT('',#4561); +#4563=VERTEX_POINT('',#3575); +#4564=VERTEX_POINT('',#3526); +#4565=CARTESIAN_POINT('',(9.453678880404E0,2.82E2,-1.541E2)); +#4566=VERTEX_POINT('',#4565); +#4567=CARTESIAN_POINT('',(9.453678880404E0,2.82E2,-1.269E2)); +#4568=VERTEX_POINT('',#4567); +#4569=CARTESIAN_POINT('',(9.453678880403E0,2.93E2,-1.269E2)); +#4570=VERTEX_POINT('',#4569); +#4571=CARTESIAN_POINT('',(9.453678880401E0,2.93E2,-4.36E1)); +#4572=VERTEX_POINT('',#4571); +#4573=VERTEX_POINT('',#2828); +#4574=VERTEX_POINT('',#2834); +#4575=CARTESIAN_POINT('',(-6.519223416037E1,2.457916280694E2, +-5.359999999933E1)); +#4576=VERTEX_POINT('',#4575); +#4577=VERTEX_POINT('',#2850); +#4578=VERTEX_POINT('',#2639); +#4579=VERTEX_POINT('',#2645); +#4580=VERTEX_POINT('',#2658); +#4581=VERTEX_POINT('',#3670); +#4582=CARTESIAN_POINT('',(-6.519223417048E1,2.93E2,-1.268999999999E2)); +#4583=CARTESIAN_POINT('',(-6.519223417048E1,2.93E2,-4.36E1)); +#4584=VERTEX_POINT('',#4582); +#4585=VERTEX_POINT('',#4583); +#4586=CARTESIAN_POINT('',(-6.519223417048E1,2.82E2,-1.268999999998E2)); +#4587=VERTEX_POINT('',#4586); +#4588=CARTESIAN_POINT('',(-6.519223417048E1,2.82E2,-1.541E2)); +#4589=VERTEX_POINT('',#4588); +#4590=CARTESIAN_POINT('',(-6.519223417048E1,2.406448723108E2,-1.541E2)); +#4591=VERTEX_POINT('',#4590); +#4592=CARTESIAN_POINT('',(-6.519223417048E1,2.9E2,-4.06E1)); +#4593=VERTEX_POINT('',#4592); +#4594=CARTESIAN_POINT('',(-6.719223416952E1,2.95E2,-4.359999999534E1)); +#4595=CARTESIAN_POINT('',(-6.719223416920E1,2.95E2,-1.269000000097E2)); +#4596=VERTEX_POINT('',#4594); +#4597=VERTEX_POINT('',#4595); +#4598=CARTESIAN_POINT('',(1.145367887922E1,2.95E2,-1.269000000089E2)); +#4599=CARTESIAN_POINT('',(1.145367887951E1,2.95E2,-4.359999999534E1)); +#4600=VERTEX_POINT('',#4598); +#4601=VERTEX_POINT('',#4599); +#4602=CARTESIAN_POINT('',(-5.463210888886E-1,2.95E2,-1.389E2)); +#4603=VERTEX_POINT('',#4602); +#4604=CARTESIAN_POINT('',(-5.519223418150E1,2.95E2,-1.388999999986E2)); +#4605=VERTEX_POINT('',#4604); +#4606=CARTESIAN_POINT('',(-8.999999999438E1,2.95E2,-4.359999999534E1)); +#4607=VERTEX_POINT('',#4606); +#4608=CARTESIAN_POINT('',(8.999999999826E1,2.95E2,-4.359999999534E1)); +#4609=VERTEX_POINT('',#4608); +#4610=CARTESIAN_POINT('',(-5.463211108485E-1,2.93E2,-1.369E2)); +#4611=VERTEX_POINT('',#4610); +#4612=CARTESIAN_POINT('',(-5.463211195957E-1,2.82E2,-1.369E2)); +#4613=VERTEX_POINT('',#4612); +#4614=CARTESIAN_POINT('',(-5.519223417592E1,2.82E2,-1.369E2)); +#4615=VERTEX_POINT('',#4614); +#4616=CARTESIAN_POINT('',(-6.346321119596E0,2.82E2,-1.699E2)); +#4617=VERTEX_POINT('',#4616); +#4618=CARTESIAN_POINT('',(-4.939223417048E1,2.82E2,-1.699E2)); +#4619=VERTEX_POINT('',#4618); +#4620=CARTESIAN_POINT('',(-5.519223417456E1,2.93E2,-1.369E2)); +#4621=VERTEX_POINT('',#4620); +#4622=VERTEX_POINT('',#3515); +#4623=VERTEX_POINT('',#3508); +#4624=VERTEX_POINT('',#3542); +#4625=VERTEX_POINT('',#3652); +#4626=CARTESIAN_POINT('',(1.378340943468E1,1.582109182289E2,-1.233505835568E2)); +#4627=VERTEX_POINT('',#4626); +#4628=VERTEX_POINT('',#2698); +#4629=VERTEX_POINT('',#3205); +#4630=VERTEX_POINT('',#2426); +#4631=VERTEX_POINT('',#2419); +#4632=CARTESIAN_POINT('',(-6.416713281516E0,3.009005479810E1, +-1.456762545734E2)); +#4633=CARTESIAN_POINT('',(-6.416713281516E0,3.009005479810E1, +-1.560454706971E2)); +#4634=VERTEX_POINT('',#4632); +#4635=VERTEX_POINT('',#4633); +#4636=VERTEX_POINT('',#1491); +#4637=CARTESIAN_POINT('',(-4.75E1,-2.5E2,-1.257488738510E2)); +#4638=CARTESIAN_POINT('',(-4.75E1,-2.5E2,-1.9E2)); +#4639=VERTEX_POINT('',#4637); +#4640=VERTEX_POINT('',#4638); +#4641=CARTESIAN_POINT('',(-2.25E1,-2.5E2,-1.322052627530E2)); +#4642=CARTESIAN_POINT('',(-2.25E1,-2.5E2,-1.9E2)); +#4643=VERTEX_POINT('',#4641); +#4644=VERTEX_POINT('',#4642); +#4645=CARTESIAN_POINT('',(-7.5E0,2.5E1,-1.457206748087E2)); +#4646=CARTESIAN_POINT('',(-7.5E0,2.5E1,-1.9E2)); +#4647=VERTEX_POINT('',#4645); +#4648=VERTEX_POINT('',#4646); +#4649=CARTESIAN_POINT('',(1.75E1,2.5E1,-1.9E2)); +#4650=VERTEX_POINT('',#4649); +#4651=CARTESIAN_POINT('',(-6.416713281516E0,-8.000179578406E1, +1.429144561350E-3)); +#4652=DIRECTION('',(1.E0,0.E0,0.E0)); +#4653=DIRECTION('',(0.E0,0.E0,1.E0)); +#4654=AXIS2_PLACEMENT_3D('',#4651,#4652,#4653); +#4655=PLANE('',#4654); +#4657=ORIENTED_EDGE('',*,*,#4656,.T.); +#4659=ORIENTED_EDGE('',*,*,#4658,.T.); +#4661=ORIENTED_EDGE('',*,*,#4660,.F.); +#4663=ORIENTED_EDGE('',*,*,#4662,.F.); +#4665=ORIENTED_EDGE('',*,*,#4664,.F.); +#4666=EDGE_LOOP('',(#4657,#4659,#4661,#4663,#4665)); +#4667=FACE_OUTER_BOUND('',#4666,.F.); +#4669=CARTESIAN_POINT('',(-5.196849685997E0,-8.000179578406E1, +1.429144561350E-3)); +#4670=DIRECTION('',(1.E0,0.E0,0.E0)); +#4671=DIRECTION('',(0.E0,0.E0,1.E0)); +#4672=AXIS2_PLACEMENT_3D('',#4669,#4670,#4671); +#4673=CYLINDRICAL_SURFACE('',#4672,1.909734288188E2); +#4675=ORIENTED_EDGE('',*,*,#4674,.T.); +#4676=ORIENTED_EDGE('',*,*,#4656,.F.); +#4678=ORIENTED_EDGE('',*,*,#4677,.T.); +#4680=ORIENTED_EDGE('',*,*,#4679,.F.); +#4682=ORIENTED_EDGE('',*,*,#4681,.T.); +#4684=ORIENTED_EDGE('',*,*,#4683,.F.); +#4686=ORIENTED_EDGE('',*,*,#4685,.T.); +#4687=EDGE_LOOP('',(#4675,#4676,#4678,#4680,#4682,#4684,#4686)); +#4688=FACE_OUTER_BOUND('',#4687,.F.); +#4690=CARTESIAN_POINT('',(1.E2,-2.1E2,-1.9E2)); +#4691=DIRECTION('',(0.E0,-1.E0,0.E0)); +#4692=DIRECTION('',(-1.E0,0.E0,0.E0)); +#4693=AXIS2_PLACEMENT_3D('',#4690,#4691,#4692); +#4694=PLANE('',#4693); +#4696=ORIENTED_EDGE('',*,*,#4695,.F.); +#4698=ORIENTED_EDGE('',*,*,#4697,.F.); +#4699=ORIENTED_EDGE('',*,*,#4658,.F.); +#4700=ORIENTED_EDGE('',*,*,#4674,.F.); +#4701=EDGE_LOOP('',(#4696,#4698,#4699,#4700)); +#4702=FACE_OUTER_BOUND('',#4701,.F.); +#4704=CARTESIAN_POINT('',(8.25E1,-2.125E2,-1.9E2)); +#4705=DIRECTION('',(0.E0,0.E0,-1.E0)); +#4706=DIRECTION('',(0.E0,-1.E0,0.E0)); +#4707=AXIS2_PLACEMENT_3D('',#4704,#4705,#4706); +#4708=CYLINDRICAL_SURFACE('',#4707,1.75E1); +#4709=ORIENTED_EDGE('',*,*,#4695,.T.); +#4710=ORIENTED_EDGE('',*,*,#4685,.F.); +#4712=ORIENTED_EDGE('',*,*,#4711,.T.); +#4714=ORIENTED_EDGE('',*,*,#4713,.F.); +#4715=EDGE_LOOP('',(#4709,#4710,#4712,#4714)); +#4716=FACE_OUTER_BOUND('',#4715,.F.); +#4718=CARTESIAN_POINT('',(8.5E1,-2.95E2,-1.9E2)); +#4719=DIRECTION('',(1.E0,0.E0,0.E0)); +#4720=DIRECTION('',(0.E0,1.E0,0.E0)); +#4721=AXIS2_PLACEMENT_3D('',#4718,#4719,#4720); +#4722=PLANE('',#4721); +#4724=ORIENTED_EDGE('',*,*,#4723,.T.); +#4726=ORIENTED_EDGE('',*,*,#4725,.F.); +#4727=ORIENTED_EDGE('',*,*,#4711,.F.); +#4728=ORIENTED_EDGE('',*,*,#4683,.T.); +#4729=EDGE_LOOP('',(#4724,#4726,#4727,#4728)); +#4730=FACE_OUTER_BOUND('',#4729,.F.); +#4732=CARTESIAN_POINT('',(-8.5E1,-2.5E2,-1.9E2)); +#4733=DIRECTION('',(0.E0,1.E0,0.E0)); +#4734=DIRECTION('',(1.E0,0.E0,0.E0)); +#4735=AXIS2_PLACEMENT_3D('',#4732,#4733,#4734); +#4736=PLANE('',#4735); +#4738=ORIENTED_EDGE('',*,*,#4737,.F.); +#4740=ORIENTED_EDGE('',*,*,#4739,.T.); +#4742=ORIENTED_EDGE('',*,*,#4741,.T.); +#4744=ORIENTED_EDGE('',*,*,#4743,.T.); +#4746=ORIENTED_EDGE('',*,*,#4745,.T.); +#4748=ORIENTED_EDGE('',*,*,#4747,.F.); +#4749=EDGE_LOOP('',(#4738,#4740,#4742,#4744,#4746,#4748)); +#4750=FACE_OUTER_BOUND('',#4749,.F.); +#4752=CARTESIAN_POINT('',(-8.5E1,-2.5E2,-1.9E2)); +#4753=DIRECTION('',(0.E0,1.E0,0.E0)); +#4754=DIRECTION('',(1.E0,0.E0,0.E0)); +#4755=AXIS2_PLACEMENT_3D('',#4752,#4753,#4754); +#4756=PLANE('',#4755); +#4758=ORIENTED_EDGE('',*,*,#4757,.T.); +#4760=ORIENTED_EDGE('',*,*,#4759,.F.); +#4761=ORIENTED_EDGE('',*,*,#4723,.F.); +#4762=ORIENTED_EDGE('',*,*,#4681,.F.); +#4764=ORIENTED_EDGE('',*,*,#4763,.T.); +#4766=ORIENTED_EDGE('',*,*,#4765,.T.); +#4767=EDGE_LOOP('',(#4758,#4760,#4761,#4762,#4764,#4766)); +#4768=FACE_OUTER_BOUND('',#4767,.F.); +#4770=CARTESIAN_POINT('',(-3.5E1,-2.5E2,-1.9E2)); +#4771=DIRECTION('',(0.E0,0.E0,-1.E0)); +#4772=DIRECTION('',(-1.E0,0.E0,0.E0)); +#4773=AXIS2_PLACEMENT_3D('',#4770,#4771,#4772); +#4774=CYLINDRICAL_SURFACE('',#4773,1.25E1); +#4775=ORIENTED_EDGE('',*,*,#4737,.T.); +#4777=ORIENTED_EDGE('',*,*,#4776,.T.); +#4778=ORIENTED_EDGE('',*,*,#4757,.F.); +#4780=ORIENTED_EDGE('',*,*,#4779,.F.); +#4781=EDGE_LOOP('',(#4775,#4777,#4778,#4780)); +#4782=FACE_OUTER_BOUND('',#4781,.F.); +#4784=CARTESIAN_POINT('',(0.E0,0.E0,-1.9E2)); +#4785=DIRECTION('',(0.E0,0.E0,1.E0)); +#4786=DIRECTION('',(1.E0,0.E0,0.E0)); +#4787=AXIS2_PLACEMENT_3D('',#4784,#4785,#4786); +#4788=PLANE('',#4787); +#4790=ORIENTED_EDGE('',*,*,#4789,.T.); +#4792=ORIENTED_EDGE('',*,*,#4791,.T.); +#4794=ORIENTED_EDGE('',*,*,#4793,.F.); +#4796=ORIENTED_EDGE('',*,*,#4795,.T.); +#4798=ORIENTED_EDGE('',*,*,#4797,.T.); +#4800=ORIENTED_EDGE('',*,*,#4799,.T.); +#4802=ORIENTED_EDGE('',*,*,#4801,.T.); +#4804=ORIENTED_EDGE('',*,*,#4803,.F.); +#4806=ORIENTED_EDGE('',*,*,#4805,.T.); +#4808=ORIENTED_EDGE('',*,*,#4807,.F.); +#4810=ORIENTED_EDGE('',*,*,#4809,.T.); +#4812=ORIENTED_EDGE('',*,*,#4811,.F.); +#4814=ORIENTED_EDGE('',*,*,#4813,.T.); +#4816=ORIENTED_EDGE('',*,*,#4815,.T.); +#4818=ORIENTED_EDGE('',*,*,#4817,.T.); +#4820=ORIENTED_EDGE('',*,*,#4819,.F.); +#4821=EDGE_LOOP('',(#4790,#4792,#4794,#4796,#4798,#4800,#4802,#4804,#4806,#4808, +#4810,#4812,#4814,#4816,#4818,#4820)); +#4822=FACE_OUTER_BOUND('',#4821,.F.); +#4824=ORIENTED_EDGE('',*,*,#4823,.T.); +#4826=ORIENTED_EDGE('',*,*,#4825,.T.); +#4827=EDGE_LOOP('',(#4824,#4826)); +#4828=FACE_BOUND('',#4827,.F.); +#4829=ORIENTED_EDGE('',*,*,#4759,.T.); +#4830=ORIENTED_EDGE('',*,*,#4776,.F.); +#4831=ORIENTED_EDGE('',*,*,#4747,.T.); +#4833=ORIENTED_EDGE('',*,*,#4832,.T.); +#4835=ORIENTED_EDGE('',*,*,#4834,.T.); +#4837=ORIENTED_EDGE('',*,*,#4836,.F.); +#4838=ORIENTED_EDGE('',*,*,#4660,.T.); +#4839=ORIENTED_EDGE('',*,*,#4697,.T.); +#4840=ORIENTED_EDGE('',*,*,#4713,.T.); +#4841=ORIENTED_EDGE('',*,*,#4725,.T.); +#4842=EDGE_LOOP('',(#4829,#4830,#4831,#4833,#4835,#4837,#4838,#4839,#4840, +#4841)); +#4843=FACE_BOUND('',#4842,.F.); +#4845=ORIENTED_EDGE('',*,*,#4844,.T.); +#4847=ORIENTED_EDGE('',*,*,#4846,.F.); +#4849=ORIENTED_EDGE('',*,*,#4848,.T.); +#4851=ORIENTED_EDGE('',*,*,#4850,.T.); +#4853=ORIENTED_EDGE('',*,*,#4852,.T.); +#4855=ORIENTED_EDGE('',*,*,#4854,.T.); +#4857=ORIENTED_EDGE('',*,*,#4856,.T.); +#4859=ORIENTED_EDGE('',*,*,#4858,.T.); +#4861=ORIENTED_EDGE('',*,*,#4860,.F.); +#4863=ORIENTED_EDGE('',*,*,#4862,.F.); +#4865=ORIENTED_EDGE('',*,*,#4864,.T.); +#4867=ORIENTED_EDGE('',*,*,#4866,.T.); +#4869=ORIENTED_EDGE('',*,*,#4868,.T.); +#4871=ORIENTED_EDGE('',*,*,#4870,.T.); +#4872=EDGE_LOOP('',(#4845,#4847,#4849,#4851,#4853,#4855,#4857,#4859,#4861,#4863, +#4865,#4867,#4869,#4871)); +#4873=FACE_BOUND('',#4872,.F.); +#4875=CARTESIAN_POINT('',(9.5E1,-2.E2,-6.900468170986E2)); +#4876=DIRECTION('',(0.E0,0.E0,1.E0)); +#4877=DIRECTION('',(1.E0,0.E0,0.E0)); +#4878=AXIS2_PLACEMENT_3D('',#4875,#4876,#4877); +#4879=CYLINDRICAL_SURFACE('',#4878,5.E0); +#4880=ORIENTED_EDGE('',*,*,#4789,.F.); +#4882=ORIENTED_EDGE('',*,*,#4881,.T.); +#4884=ORIENTED_EDGE('',*,*,#4883,.T.); +#4886=ORIENTED_EDGE('',*,*,#4885,.T.); +#4887=EDGE_LOOP('',(#4880,#4882,#4884,#4886)); +#4888=FACE_OUTER_BOUND('',#4887,.F.); +#4890=CARTESIAN_POINT('',(1.E2,-2.95E2,-1.9E2)); +#4891=DIRECTION('',(1.E0,0.E0,0.E0)); +#4892=DIRECTION('',(0.E0,1.E0,0.E0)); +#4893=AXIS2_PLACEMENT_3D('',#4890,#4891,#4892); +#4894=PLANE('',#4893); +#4896=ORIENTED_EDGE('',*,*,#4895,.T.); +#4897=ORIENTED_EDGE('',*,*,#4881,.F.); +#4898=ORIENTED_EDGE('',*,*,#4819,.T.); +#4900=ORIENTED_EDGE('',*,*,#4899,.F.); +#4901=EDGE_LOOP('',(#4896,#4897,#4898,#4900)); +#4902=FACE_OUTER_BOUND('',#4901,.F.); +#4904=CARTESIAN_POINT('',(9.5E1,-8.000179578406E1,1.429144561350E-3)); +#4905=DIRECTION('',(1.E0,0.E0,0.E0)); +#4906=DIRECTION('',(0.E0,-9.192783888012E-1,-3.936079824940E-1)); +#4907=AXIS2_PLACEMENT_3D('',#4904,#4905,#4906); +#4908=TOROIDAL_SURFACE('',#4907,1.809734288188E2,5.E0); +#4909=ORIENTED_EDGE('',*,*,#4895,.F.); +#4911=ORIENTED_EDGE('',*,*,#4910,.F.); +#4913=ORIENTED_EDGE('',*,*,#4912,.T.); +#4914=ORIENTED_EDGE('',*,*,#4883,.F.); +#4915=EDGE_LOOP('',(#4909,#4911,#4913,#4914)); +#4916=FACE_OUTER_BOUND('',#4915,.F.); +#4918=CARTESIAN_POINT('',(9.337485170458E1,-2.444985990587E2, +-6.282662915540E1)); +#4919=CARTESIAN_POINT('',(9.352435821481E1,-2.439864034388E2, +-6.416764144128E1)); +#4920=CARTESIAN_POINT('',(9.381882720458E1,-2.427213330853E2, +-6.736214261514E1)); +#4921=CARTESIAN_POINT('',(9.394767301689E1,-2.412937911442E2, +-7.067949742887E1)); +#4922=CARTESIAN_POINT('',(9.394086791589E1,-2.404006763258E2, +-7.265379339784E1)); +#4923=CARTESIAN_POINT('',(9.393975905231E1,-2.403283358554E2, +-7.281307294298E1)); +#4924=CARTESIAN_POINT('',(9.806013137729E1,-2.437144444281E2, +-6.201974084495E1)); +#4925=CARTESIAN_POINT('',(9.821526142761E1,-2.431891221706E2, +-6.340613943316E1)); +#4926=CARTESIAN_POINT('',(9.852168936754E1,-2.418866603398E2, +-6.671648329226E1)); +#4927=CARTESIAN_POINT('',(9.865725166022E1,-2.404011940042E2, +-7.017794493992E1)); +#4928=CARTESIAN_POINT('',(9.865009362752E1,-2.394634276933E2, +-7.225051323764E1)); +#4929=CARTESIAN_POINT('',(9.864892625371E1,-2.393874156142E2, +-7.241780521641E1)); +#4930=CARTESIAN_POINT('',(1.010103131927E2,-2.473697548417E2, +-6.309348663110E1)); +#4931=CARTESIAN_POINT('',(1.011689842197E2,-2.468231597603E2, +-6.454258159892E1)); +#4932=CARTESIAN_POINT('',(1.014829423562E2,-2.454649985545E2, +-6.800718635750E1)); +#4933=CARTESIAN_POINT('',(1.016227338176E2,-2.439066849487E2, +-7.164396846156E1)); +#4934=CARTESIAN_POINT('',(1.016153535543E2,-2.429179984620E2, +-7.382882439675E1)); +#4935=CARTESIAN_POINT('',(1.016141493383E2,-2.428378270538E2, +-7.400522883021E1)); +#4936=CARTESIAN_POINT('',(9.888913810716E1,-2.513308656010E2, +-6.483360437213E1)); +#4937=CARTESIAN_POINT('',(9.904526317867E1,-2.507789082134E2, +-6.629180461969E1)); +#4938=CARTESIAN_POINT('',(9.935380711826E1,-2.494097282405E2, +-6.977464015180E1)); +#4939=CARTESIAN_POINT('',(9.949055781544E1,-2.478460249584E2, +-7.341969246665E1)); +#4940=CARTESIAN_POINT('',(9.948333733550E1,-2.468577334864E2, +-7.560386912477E1)); +#4941=CARTESIAN_POINT('',(9.948215960898E1,-2.467776186709E2, +-7.578018107268E1)); +#4942=(BOUNDED_SURFACE()B_SPLINE_SURFACE(3,3,((#4918,#4919,#4920,#4921,#4922, +#4923),(#4924,#4925,#4926,#4927,#4928,#4929),(#4930,#4931,#4932,#4933,#4934, +#4935),(#4936,#4937,#4938,#4939,#4940,#4941)),.UNSPECIFIED.,.F.,.F.,.F.)B_SPLINE_SURFACE_WITH_KNOTS((4,4),(4,1,1,4),(0.E0,1.E0),(9.265411026607E-1, +9.572540027019E-1,1.E0,1.003755290940E0),.UNSPECIFIED.)GEOMETRIC_REPRESENTATION_ITEM()RATIONAL_B_SPLINE_SURFACE(((1.394148688117E0,1.394148688117E0, +1.394148688117E0,1.394148688117E0,1.394148688117E0,1.394148688117E0),( +8.686171039611E-1,8.686171039611E-1,8.686171039611E-1,8.686171039611E-1, +8.686171039611E-1,8.686171039611E-1),(8.686171039611E-1,8.686171039611E-1, +8.686171039611E-1,8.686171039611E-1,8.686171039611E-1,8.686171039611E-1),( +1.394148688117E0,1.394148688117E0,1.394148688117E0,1.394148688117E0, +1.394148688117E0,1.394148688117E0)))REPRESENTATION_ITEM('')SURFACE()); +#4944=ORIENTED_EDGE('',*,*,#4943,.F.); +#4945=ORIENTED_EDGE('',*,*,#4910,.T.); +#4947=ORIENTED_EDGE('',*,*,#4946,.T.); +#4949=ORIENTED_EDGE('',*,*,#4948,.F.); +#4950=EDGE_LOOP('',(#4944,#4945,#4947,#4949)); +#4951=FACE_OUTER_BOUND('',#4950,.F.); +#4953=CARTESIAN_POINT('',(-5.196849685997E0,-8.000179578406E1, +1.429144561350E-3)); +#4954=DIRECTION('',(1.E0,0.E0,0.E0)); +#4955=DIRECTION('',(0.E0,0.E0,1.E0)); +#4956=AXIS2_PLACEMENT_3D('',#4953,#4954,#4955); +#4957=CYLINDRICAL_SURFACE('',#4956,1.759734288188E2); +#4959=ORIENTED_EDGE('',*,*,#4958,.F.); +#4961=ORIENTED_EDGE('',*,*,#4960,.F.); +#4963=ORIENTED_EDGE('',*,*,#4962,.T.); +#4964=ORIENTED_EDGE('',*,*,#4912,.F.); +#4965=ORIENTED_EDGE('',*,*,#4943,.T.); +#4966=EDGE_LOOP('',(#4959,#4961,#4963,#4964,#4965)); +#4967=FACE_OUTER_BOUND('',#4966,.F.); +#4969=CARTESIAN_POINT('',(1.000988548E3,-2.488987944182E2,-6.5E1)); +#4970=DIRECTION('',(-1.E0,0.E0,0.E0)); +#4971=DIRECTION('',(0.E0,0.E0,1.E0)); +#4972=AXIS2_PLACEMENT_3D('',#4969,#4970,#4971); +#4973=CYLINDRICAL_SURFACE('',#4972,5.E0); +#4974=ORIENTED_EDGE('',*,*,#4958,.T.); +#4976=ORIENTED_EDGE('',*,*,#4975,.F.); +#4978=ORIENTED_EDGE('',*,*,#4977,.T.); +#4980=ORIENTED_EDGE('',*,*,#4979,.F.); +#4981=EDGE_LOOP('',(#4974,#4976,#4978,#4980)); +#4982=FACE_OUTER_BOUND('',#4981,.F.); +#4984=CARTESIAN_POINT('',(9.448445380693E1,-2.488987944182E2,-6.5E1)); +#4985=DIRECTION('',(-3.750021434561E-5,9.332695518422E-1,3.591767562049E-1)); +#4986=DIRECTION('',(-9.953579625200E-1,3.453305869569E-2,-8.983314702915E-2)); +#4987=AXIS2_PLACEMENT_3D('',#4984,#4985,#4986); +#4988=SPHERICAL_SURFACE('',#4987,5.E0); +#4989=ORIENTED_EDGE('',*,*,#4948,.T.); +#4991=ORIENTED_EDGE('',*,*,#4990,.T.); +#4992=ORIENTED_EDGE('',*,*,#4975,.T.); +#4993=EDGE_LOOP('',(#4989,#4991,#4992)); +#4994=FACE_OUTER_BOUND('',#4993,.F.); +#4996=CARTESIAN_POINT('',(8.E1,-2.45E2,-6.5E1)); +#4997=DIRECTION('',(0.E0,0.E0,-1.E0)); +#4998=DIRECTION('',(-9.692537184184E-2,-9.952916518756E-1,0.E0)); +#4999=AXIS2_PLACEMENT_3D('',#4996,#4997,#4998); +#5000=TOROIDAL_SURFACE('',#4999,1.5E1,5.E0); +#5002=ORIENTED_EDGE('',*,*,#5001,.T.); +#5004=ORIENTED_EDGE('',*,*,#5003,.T.); +#5006=ORIENTED_EDGE('',*,*,#5005,.F.); +#5007=ORIENTED_EDGE('',*,*,#4990,.F.); +#5008=EDGE_LOOP('',(#5002,#5004,#5006,#5007)); +#5009=FACE_OUTER_BOUND('',#5008,.F.); +#5011=CARTESIAN_POINT('',(8.E1,-2.45E2,6.875166547988E2)); +#5012=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5013=DIRECTION('',(1.E0,0.E0,0.E0)); +#5014=AXIS2_PLACEMENT_3D('',#5011,#5012,#5013); +#5015=CYLINDRICAL_SURFACE('',#5014,2.E1); +#5016=ORIENTED_EDGE('',*,*,#5001,.F.); +#5017=ORIENTED_EDGE('',*,*,#4946,.F.); +#5018=ORIENTED_EDGE('',*,*,#4899,.T.); +#5019=ORIENTED_EDGE('',*,*,#4817,.F.); +#5021=ORIENTED_EDGE('',*,*,#5020,.T.); +#5022=EDGE_LOOP('',(#5016,#5017,#5018,#5019,#5021)); +#5023=FACE_OUTER_BOUND('',#5022,.F.); +#5025=CARTESIAN_POINT('',(1.883112633936E2,-2.65E2,-2.667E2)); +#5026=DIRECTION('',(0.E0,1.E0,0.E0)); +#5027=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5028=AXIS2_PLACEMENT_3D('',#5025,#5026,#5027); +#5029=PLANE('',#5028); +#5031=ORIENTED_EDGE('',*,*,#5030,.F.); +#5033=ORIENTED_EDGE('',*,*,#5032,.F.); +#5035=ORIENTED_EDGE('',*,*,#5034,.F.); +#5037=ORIENTED_EDGE('',*,*,#5036,.F.); +#5038=ORIENTED_EDGE('',*,*,#5020,.F.); +#5039=ORIENTED_EDGE('',*,*,#4815,.F.); +#5041=ORIENTED_EDGE('',*,*,#5040,.F.); +#5043=ORIENTED_EDGE('',*,*,#5042,.F.); +#5044=EDGE_LOOP('',(#5031,#5033,#5035,#5037,#5038,#5039,#5041,#5043)); +#5045=FACE_OUTER_BOUND('',#5044,.F.); +#5047=CARTESIAN_POINT('',(-5.449999999992E1,-2.6E2,-6.900468170986E2)); +#5048=DIRECTION('',(0.E0,0.E0,1.E0)); +#5049=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5050=AXIS2_PLACEMENT_3D('',#5047,#5048,#5049); +#5051=CYLINDRICAL_SURFACE('',#5050,5.E0); +#5053=ORIENTED_EDGE('',*,*,#5052,.F.); +#5054=ORIENTED_EDGE('',*,*,#5030,.T.); +#5056=ORIENTED_EDGE('',*,*,#5055,.F.); +#5058=ORIENTED_EDGE('',*,*,#5057,.T.); +#5059=EDGE_LOOP('',(#5053,#5054,#5056,#5058)); +#5060=FACE_OUTER_BOUND('',#5059,.F.); +#5062=CARTESIAN_POINT('',(0.E0,0.E0,-7.E0)); +#5063=DIRECTION('',(0.E0,0.E0,1.E0)); +#5064=DIRECTION('',(0.E0,1.E0,0.E0)); +#5065=AXIS2_PLACEMENT_3D('',#5062,#5063,#5064); +#5066=PLANE('',#5065); +#5067=ORIENTED_EDGE('',*,*,#5052,.T.); +#5069=ORIENTED_EDGE('',*,*,#5068,.T.); +#5071=ORIENTED_EDGE('',*,*,#5070,.F.); +#5073=ORIENTED_EDGE('',*,*,#5072,.T.); +#5075=ORIENTED_EDGE('',*,*,#5074,.T.); +#5077=ORIENTED_EDGE('',*,*,#5076,.T.); +#5079=ORIENTED_EDGE('',*,*,#5078,.F.); +#5081=ORIENTED_EDGE('',*,*,#5080,.T.); +#5083=ORIENTED_EDGE('',*,*,#5082,.T.); +#5084=ORIENTED_EDGE('',*,*,#5032,.T.); +#5085=EDGE_LOOP('',(#5067,#5069,#5071,#5073,#5075,#5077,#5079,#5081,#5083, +#5084)); +#5086=FACE_OUTER_BOUND('',#5085,.F.); +#5088=CARTESIAN_POINT('',(-5.949999999992E1,-2.1E2,-6.E1)); +#5089=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5090=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5091=AXIS2_PLACEMENT_3D('',#5088,#5089,#5090); +#5092=PLANE('',#5091); +#5094=ORIENTED_EDGE('',*,*,#5093,.F.); +#5096=ORIENTED_EDGE('',*,*,#5095,.T.); +#5098=ORIENTED_EDGE('',*,*,#5097,.F.); +#5100=ORIENTED_EDGE('',*,*,#5099,.T.); +#5101=ORIENTED_EDGE('',*,*,#5068,.F.); +#5102=ORIENTED_EDGE('',*,*,#5057,.F.); +#5103=EDGE_LOOP('',(#5094,#5096,#5098,#5100,#5101,#5102)); +#5104=FACE_OUTER_BOUND('',#5103,.F.); +#5106=CARTESIAN_POINT('',(0.E0,0.E0,-6.E1)); +#5107=DIRECTION('',(0.E0,0.E0,1.E0)); +#5108=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5109=AXIS2_PLACEMENT_3D('',#5106,#5107,#5108); +#5110=PLANE('',#5109); +#5112=ORIENTED_EDGE('',*,*,#5111,.F.); +#5113=ORIENTED_EDGE('',*,*,#5093,.T.); +#5115=ORIENTED_EDGE('',*,*,#5114,.F.); +#5117=ORIENTED_EDGE('',*,*,#5116,.T.); +#5119=ORIENTED_EDGE('',*,*,#5118,.F.); +#5121=ORIENTED_EDGE('',*,*,#5120,.T.); +#5123=ORIENTED_EDGE('',*,*,#5122,.F.); +#5125=ORIENTED_EDGE('',*,*,#5124,.F.); +#5127=ORIENTED_EDGE('',*,*,#5126,.F.); +#5129=ORIENTED_EDGE('',*,*,#5128,.F.); +#5131=ORIENTED_EDGE('',*,*,#5130,.F.); +#5133=ORIENTED_EDGE('',*,*,#5132,.F.); +#5135=ORIENTED_EDGE('',*,*,#5134,.F.); +#5136=EDGE_LOOP('',(#5112,#5113,#5115,#5117,#5119,#5121,#5123,#5125,#5127,#5129, +#5131,#5133,#5135)); +#5137=FACE_OUTER_BOUND('',#5136,.F.); +#5139=CARTESIAN_POINT('',(-7.32018548E2,-2.05E2,-5.5E1)); +#5140=DIRECTION('',(1.E0,0.E0,0.E0)); +#5141=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5142=AXIS2_PLACEMENT_3D('',#5139,#5140,#5141); +#5143=CYLINDRICAL_SURFACE('',#5142,5.E0); +#5145=ORIENTED_EDGE('',*,*,#5144,.T.); +#5146=ORIENTED_EDGE('',*,*,#5095,.F.); +#5147=ORIENTED_EDGE('',*,*,#5111,.T.); +#5149=ORIENTED_EDGE('',*,*,#5148,.F.); +#5150=EDGE_LOOP('',(#5145,#5146,#5147,#5149)); +#5151=FACE_OUTER_BOUND('',#5150,.F.); +#5153=CARTESIAN_POINT('',(-7.026E1,-2.1E2,-6.E1)); +#5154=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5155=DIRECTION('',(1.E0,0.E0,0.E0)); +#5156=AXIS2_PLACEMENT_3D('',#5153,#5154,#5155); +#5157=PLANE('',#5156); +#5158=ORIENTED_EDGE('',*,*,#5144,.F.); +#5160=ORIENTED_EDGE('',*,*,#5159,.T.); +#5162=ORIENTED_EDGE('',*,*,#5161,.F.); +#5163=ORIENTED_EDGE('',*,*,#5097,.T.); +#5164=EDGE_LOOP('',(#5158,#5160,#5162,#5163)); +#5165=FACE_OUTER_BOUND('',#5164,.F.); +#5167=CARTESIAN_POINT('',(-4.649999999992E1,-2.95E2,-6.E1)); +#5168=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5169=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5170=AXIS2_PLACEMENT_3D('',#5167,#5168,#5169); +#5171=PLANE('',#5170); +#5172=ORIENTED_EDGE('',*,*,#5159,.F.); +#5173=ORIENTED_EDGE('',*,*,#5148,.T.); +#5174=ORIENTED_EDGE('',*,*,#5134,.T.); +#5176=ORIENTED_EDGE('',*,*,#5175,.T.); +#5178=ORIENTED_EDGE('',*,*,#5177,.T.); +#5180=ORIENTED_EDGE('',*,*,#5179,.F.); +#5182=ORIENTED_EDGE('',*,*,#5181,.T.); +#5183=ORIENTED_EDGE('',*,*,#5072,.F.); +#5185=ORIENTED_EDGE('',*,*,#5184,.T.); +#5186=EDGE_LOOP('',(#5172,#5173,#5174,#5176,#5178,#5180,#5182,#5183,#5185)); +#5187=FACE_OUTER_BOUND('',#5186,.F.); +#5189=CARTESIAN_POINT('',(6.998110302995E2,2.5E1,-7.E1)); +#5190=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5191=DIRECTION('',(0.E0,0.E0,1.E0)); +#5192=AXIS2_PLACEMENT_3D('',#5189,#5190,#5191); +#5193=CYLINDRICAL_SURFACE('',#5192,1.E1); +#5195=ORIENTED_EDGE('',*,*,#5194,.F.); +#5197=ORIENTED_EDGE('',*,*,#5196,.T.); +#5198=ORIENTED_EDGE('',*,*,#5175,.F.); +#5199=ORIENTED_EDGE('',*,*,#5132,.T.); +#5200=EDGE_LOOP('',(#5195,#5197,#5198,#5199)); +#5201=FACE_OUTER_BOUND('',#5200,.F.); +#5203=CARTESIAN_POINT('',(-6.109070532508E1,-6.5E1,0.E0)); +#5204=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5205=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5206=AXIS2_PLACEMENT_3D('',#5203,#5204,#5205); +#5207=CONICAL_SURFACE('',#5206,1.159346827535E2,8.927825336436E1); +#5209=ORIENTED_EDGE('',*,*,#5208,.T.); +#5210=ORIENTED_EDGE('',*,*,#5194,.T.); +#5211=ORIENTED_EDGE('',*,*,#5130,.T.); +#5212=ORIENTED_EDGE('',*,*,#5128,.T.); +#5214=ORIENTED_EDGE('',*,*,#5213,.F.); +#5216=ORIENTED_EDGE('',*,*,#5215,.F.); +#5218=ORIENTED_EDGE('',*,*,#5217,.T.); +#5219=EDGE_LOOP('',(#5209,#5210,#5211,#5212,#5214,#5216,#5218)); +#5220=FACE_OUTER_BOUND('',#5219,.F.); +#5222=CARTESIAN_POINT('',(0.E0,3.5E1,-1.9E2)); +#5223=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5224=DIRECTION('',(1.E0,0.E0,0.E0)); +#5225=AXIS2_PLACEMENT_3D('',#5222,#5223,#5224); +#5226=PLANE('',#5225); +#5227=ORIENTED_EDGE('',*,*,#5208,.F.); +#5229=ORIENTED_EDGE('',*,*,#5228,.T.); +#5231=ORIENTED_EDGE('',*,*,#5230,.T.); +#5233=ORIENTED_EDGE('',*,*,#5232,.T.); +#5235=ORIENTED_EDGE('',*,*,#5234,.F.); +#5237=ORIENTED_EDGE('',*,*,#5236,.T.); +#5238=ORIENTED_EDGE('',*,*,#5177,.F.); +#5239=ORIENTED_EDGE('',*,*,#5196,.F.); +#5240=EDGE_LOOP('',(#5227,#5229,#5231,#5233,#5235,#5237,#5238,#5239)); +#5241=FACE_OUTER_BOUND('',#5240,.F.); +#5243=CARTESIAN_POINT('',(-5.449999999992E1,3.5E1,-1.041483448332E2)); +#5244=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5245=DIRECTION('',(0.E0,1.E0,0.E0)); +#5246=AXIS2_PLACEMENT_3D('',#5243,#5244,#5245); +#5247=PLANE('',#5246); +#5248=ORIENTED_EDGE('',*,*,#5217,.F.); +#5250=ORIENTED_EDGE('',*,*,#5249,.F.); +#5252=ORIENTED_EDGE('',*,*,#5251,.F.); +#5253=ORIENTED_EDGE('',*,*,#5228,.F.); +#5254=EDGE_LOOP('',(#5248,#5250,#5252,#5253)); +#5255=FACE_OUTER_BOUND('',#5254,.F.); +#5257=CARTESIAN_POINT('',(-5.449999999992E1,-6.437090860656E1, +-8.410286813856E-1)); +#5258=DIRECTION('',(1.E0,0.E0,0.E0)); +#5259=DIRECTION('',(0.E0,9.999619230642E-1,8.726535498375E-3)); +#5260=AXIS2_PLACEMENT_3D('',#5257,#5258,#5259); +#5261=CYLINDRICAL_SURFACE('',#5260,1.708595339955E2); +#5263=ORIENTED_EDGE('',*,*,#5262,.F.); +#5264=ORIENTED_EDGE('',*,*,#5249,.T.); +#5266=ORIENTED_EDGE('',*,*,#5265,.F.); +#5268=ORIENTED_EDGE('',*,*,#5267,.F.); +#5270=ORIENTED_EDGE('',*,*,#5269,.F.); +#5271=EDGE_LOOP('',(#5263,#5264,#5266,#5268,#5270)); +#5272=FACE_OUTER_BOUND('',#5271,.F.); +#5274=CARTESIAN_POINT('',(-2.700058323027E1,1.370471943136E2, +-9.700117014010E1)); +#5275=DIRECTION('',(2.706869236514E-12,-9.999619230642E-1,-8.726535498928E-3)); +#5276=DIRECTION('',(-9.999999991784E-1,-3.537407137730E-7,4.053438716555E-5)); +#5277=AXIS2_PLACEMENT_3D('',#5274,#5275,#5276); +#5278=CYLINDRICAL_SURFACE('',#5277,2.949928146872E1); +#5280=ORIENTED_EDGE('',*,*,#5279,.T.); +#5282=ORIENTED_EDGE('',*,*,#5281,.F.); +#5283=ORIENTED_EDGE('',*,*,#5230,.F.); +#5284=ORIENTED_EDGE('',*,*,#5251,.T.); +#5285=ORIENTED_EDGE('',*,*,#5262,.T.); +#5287=ORIENTED_EDGE('',*,*,#5286,.T.); +#5289=ORIENTED_EDGE('',*,*,#5288,.F.); +#5291=ORIENTED_EDGE('',*,*,#5290,.F.); +#5292=EDGE_LOOP('',(#5280,#5282,#5283,#5284,#5285,#5287,#5289,#5291)); +#5293=FACE_OUTER_BOUND('',#5292,.F.); +#5295=CARTESIAN_POINT('',(-4.199632111960E1,6.517400626796E1, +-1.174197892668E2)); +#5296=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5297=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5298=AXIS2_PLACEMENT_3D('',#5295,#5296,#5297); +#5299=PLANE('',#5298); +#5301=ORIENTED_EDGE('',*,*,#5300,.T.); +#5303=ORIENTED_EDGE('',*,*,#5302,.T.); +#5304=ORIENTED_EDGE('',*,*,#5279,.F.); +#5306=ORIENTED_EDGE('',*,*,#5305,.F.); +#5308=ORIENTED_EDGE('',*,*,#5307,.T.); +#5309=EDGE_LOOP('',(#5301,#5303,#5304,#5306,#5308)); +#5310=FACE_OUTER_BOUND('',#5309,.F.); +#5312=CARTESIAN_POINT('',(-4.199632111960E1,1.38E2,-6.E1)); +#5313=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5314=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5315=AXIS2_PLACEMENT_3D('',#5312,#5313,#5314); +#5316=PLANE('',#5315); +#5318=ORIENTED_EDGE('',*,*,#5317,.T.); +#5320=ORIENTED_EDGE('',*,*,#5319,.T.); +#5322=ORIENTED_EDGE('',*,*,#5321,.T.); +#5324=ORIENTED_EDGE('',*,*,#5323,.T.); +#5326=ORIENTED_EDGE('',*,*,#5325,.T.); +#5328=ORIENTED_EDGE('',*,*,#5327,.F.); +#5329=ORIENTED_EDGE('',*,*,#5234,.T.); +#5331=ORIENTED_EDGE('',*,*,#5330,.T.); +#5332=ORIENTED_EDGE('',*,*,#5300,.F.); +#5334=ORIENTED_EDGE('',*,*,#5333,.F.); +#5336=ORIENTED_EDGE('',*,*,#5335,.T.); +#5338=ORIENTED_EDGE('',*,*,#5337,.F.); +#5340=ORIENTED_EDGE('',*,*,#5339,.F.); +#5342=ORIENTED_EDGE('',*,*,#5341,.F.); +#5343=EDGE_LOOP('',(#5318,#5320,#5322,#5324,#5326,#5328,#5329,#5331,#5332,#5334, +#5336,#5338,#5340,#5342)); +#5344=FACE_OUTER_BOUND('',#5343,.F.); +#5346=CARTESIAN_POINT('',(4.555367888040E1,1.227286290940E2,-1.751513120379E2)); +#5347=DIRECTION('',(0.E0,-9.999619230642E-1,-8.726535498375E-3)); +#5348=DIRECTION('',(0.E0,-8.726535498375E-3,9.999619230642E-1)); +#5349=AXIS2_PLACEMENT_3D('',#5346,#5347,#5348); +#5350=PLANE('',#5349); +#5352=ORIENTED_EDGE('',*,*,#5351,.F.); +#5353=ORIENTED_EDGE('',*,*,#5317,.F.); +#5355=ORIENTED_EDGE('',*,*,#5354,.T.); +#5357=ORIENTED_EDGE('',*,*,#5356,.T.); +#5359=ORIENTED_EDGE('',*,*,#5358,.T.); +#5361=ORIENTED_EDGE('',*,*,#5360,.F.); +#5363=ORIENTED_EDGE('',*,*,#5362,.F.); +#5365=ORIENTED_EDGE('',*,*,#5364,.T.); +#5366=EDGE_LOOP('',(#5352,#5353,#5355,#5357,#5359,#5361,#5363,#5365)); +#5367=FACE_OUTER_BOUND('',#5366,.F.); +#5369=CARTESIAN_POINT('',(-5.924594064482E1,1.224643691008E2, +-1.448701161452E2)); +#5370=DIRECTION('',(0.E0,8.726535498375E-3,-9.999619230642E-1)); +#5371=DIRECTION('',(1.E0,0.E0,0.E0)); +#5372=AXIS2_PLACEMENT_3D('',#5369,#5370,#5371); +#5373=PLANE('',#5372); +#5375=ORIENTED_EDGE('',*,*,#5374,.T.); +#5377=ORIENTED_EDGE('',*,*,#5376,.F.); +#5378=ORIENTED_EDGE('',*,*,#5319,.F.); +#5379=ORIENTED_EDGE('',*,*,#5351,.T.); +#5381=ORIENTED_EDGE('',*,*,#5380,.F.); +#5382=EDGE_LOOP('',(#5375,#5377,#5378,#5379,#5381)); +#5383=FACE_OUTER_BOUND('',#5382,.F.); +#5385=CARTESIAN_POINT('',(-6.426589295293E1,-6.5E1,0.E0)); +#5386=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5387=DIRECTION('',(0.E0,5.583341522870E-3,-9.999844130272E-1)); +#5388=AXIS2_PLACEMENT_3D('',#5385,#5386,#5387); +#5389=TOROIDAL_SURFACE('',#5388,1.695157990234E2,1.55E1); +#5390=ORIENTED_EDGE('',*,*,#5374,.F.); +#5392=ORIENTED_EDGE('',*,*,#5391,.F.); +#5394=ORIENTED_EDGE('',*,*,#5393,.F.); +#5396=ORIENTED_EDGE('',*,*,#5395,.T.); +#5398=ORIENTED_EDGE('',*,*,#5397,.F.); +#5399=EDGE_LOOP('',(#5390,#5392,#5394,#5396,#5398)); +#5400=FACE_OUTER_BOUND('',#5399,.F.); +#5402=CARTESIAN_POINT('',(-6.050590529706E1,1.223080636826E2, +-1.269592892561E2)); +#5403=CARTESIAN_POINT('',(-6.049862223189E1,1.223091540193E2, +-1.270842294653E2)); +#5404=CARTESIAN_POINT('',(-6.045952516874E1,1.223149777077E2, +-1.277515580615E2)); +#5405=CARTESIAN_POINT('',(-6.038187650236E1,1.223262435273E2, +-1.290424931190E2)); +#5406=CARTESIAN_POINT('',(-6.001348994638E1,1.223774622027E2, +-1.349115719944E2)); +#5407=CARTESIAN_POINT('',(-5.961092187876E1,1.224248014666E2, +-1.403361143544E2)); +#5408=CARTESIAN_POINT('',(-5.922587472969E1,1.224665467960E2, +-1.451196552903E2)); +#5409=CARTESIAN_POINT('',(-5.921581306366E1,1.224676354569E2, +-1.452444034725E2)); +#5411=DIRECTION('',(0.E0,-9.999619230642E-1,-8.726535498375E-3)); +#5412=VECTOR('',#5411,1.E0); +#5413=SURFACE_OF_LINEAR_EXTRUSION('',#5410,#5412); +#5414=ORIENTED_EDGE('',*,*,#5391,.T.); +#5415=ORIENTED_EDGE('',*,*,#5380,.T.); +#5416=ORIENTED_EDGE('',*,*,#5364,.F.); +#5418=ORIENTED_EDGE('',*,*,#5417,.T.); +#5419=EDGE_LOOP('',(#5414,#5415,#5416,#5418)); +#5420=FACE_OUTER_BOUND('',#5419,.F.); +#5422=CARTESIAN_POINT('',(-2.699999999992E1,3.5E1,-9.7E1)); +#5423=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5424=DIRECTION('',(1.E0,0.E0,0.E0)); +#5425=AXIS2_PLACEMENT_3D('',#5422,#5423,#5424); +#5426=CYLINDRICAL_SURFACE('',#5425,4.55E1); +#5427=ORIENTED_EDGE('',*,*,#5417,.F.); +#5428=ORIENTED_EDGE('',*,*,#5362,.T.); +#5430=ORIENTED_EDGE('',*,*,#5429,.T.); +#5432=ORIENTED_EDGE('',*,*,#5431,.T.); +#5433=ORIENTED_EDGE('',*,*,#5393,.T.); +#5434=EDGE_LOOP('',(#5427,#5428,#5430,#5432,#5433)); +#5435=FACE_OUTER_BOUND('',#5434,.F.); +#5437=CARTESIAN_POINT('',(-7.249999999992E1,3.5E1,-6.E1)); +#5438=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5439=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5440=AXIS2_PLACEMENT_3D('',#5437,#5438,#5439); +#5441=PLANE('',#5440); +#5443=ORIENTED_EDGE('',*,*,#5442,.F.); +#5445=ORIENTED_EDGE('',*,*,#5444,.T.); +#5446=ORIENTED_EDGE('',*,*,#5429,.F.); +#5447=ORIENTED_EDGE('',*,*,#5360,.T.); +#5448=EDGE_LOOP('',(#5443,#5445,#5446,#5447)); +#5449=FACE_OUTER_BOUND('',#5448,.F.); +#5451=CARTESIAN_POINT('',(0.E0,0.E0,-5.36E1)); +#5452=DIRECTION('',(0.E0,0.E0,1.E0)); +#5453=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5454=AXIS2_PLACEMENT_3D('',#5451,#5452,#5453); +#5455=PLANE('',#5454); +#5457=ORIENTED_EDGE('',*,*,#5456,.F.); +#5459=ORIENTED_EDGE('',*,*,#5458,.T.); +#5461=ORIENTED_EDGE('',*,*,#5460,.F.); +#5463=ORIENTED_EDGE('',*,*,#5462,.F.); +#5464=ORIENTED_EDGE('',*,*,#5442,.T.); +#5465=ORIENTED_EDGE('',*,*,#5358,.F.); +#5466=EDGE_LOOP('',(#5457,#5459,#5461,#5463,#5464,#5465)); +#5467=FACE_OUTER_BOUND('',#5466,.F.); +#5469=CARTESIAN_POINT('',(-7.999118099423E1,1.385798492198E2, +-4.383265422462E1)); +#5470=DIRECTION('',(-9.996573249756E-1,0.E0,-2.617694830787E-2)); +#5471=DIRECTION('',(2.617694830787E-2,0.E0,-9.996573249756E-1)); +#5472=AXIS2_PLACEMENT_3D('',#5469,#5470,#5471); +#5473=PLANE('',#5472); +#5474=ORIENTED_EDGE('',*,*,#5456,.T.); +#5475=ORIENTED_EDGE('',*,*,#5356,.F.); +#5477=ORIENTED_EDGE('',*,*,#5476,.F.); +#5479=ORIENTED_EDGE('',*,*,#5478,.F.); +#5480=EDGE_LOOP('',(#5474,#5475,#5477,#5479)); +#5481=FACE_OUTER_BOUND('',#5480,.F.); +#5483=CARTESIAN_POINT('',(-2.699632111960E1,4.061542711321E2, +-1.225231779111E2)); +#5484=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5485=DIRECTION('',(9.996573249756E-1,0.E0,-2.617694830787E-2)); +#5486=AXIS2_PLACEMENT_3D('',#5483,#5484,#5485); +#5487=CYLINDRICAL_SURFACE('',#5486,5.091682208887E1); +#5489=ORIENTED_EDGE('',*,*,#5488,.F.); +#5491=ORIENTED_EDGE('',*,*,#5490,.T.); +#5493=ORIENTED_EDGE('',*,*,#5492,.T.); +#5495=ORIENTED_EDGE('',*,*,#5494,.F.); +#5497=ORIENTED_EDGE('',*,*,#5496,.T.); +#5499=ORIENTED_EDGE('',*,*,#5498,.T.); +#5501=ORIENTED_EDGE('',*,*,#5500,.F.); +#5503=ORIENTED_EDGE('',*,*,#5502,.T.); +#5505=ORIENTED_EDGE('',*,*,#5504,.F.); +#5506=ORIENTED_EDGE('',*,*,#5476,.T.); +#5507=ORIENTED_EDGE('',*,*,#5354,.F.); +#5508=ORIENTED_EDGE('',*,*,#5341,.T.); +#5510=ORIENTED_EDGE('',*,*,#5509,.T.); +#5511=EDGE_LOOP('',(#5489,#5491,#5493,#5495,#5497,#5499,#5501,#5503,#5505,#5506, +#5507,#5508,#5510)); +#5512=FACE_OUTER_BOUND('',#5511,.F.); +#5514=CARTESIAN_POINT('',(-1.199632111960E1,1.38E2,-6.E1)); +#5515=DIRECTION('',(0.E0,1.E0,0.E0)); +#5516=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5517=AXIS2_PLACEMENT_3D('',#5514,#5515,#5516); +#5518=PLANE('',#5517); +#5520=ORIENTED_EDGE('',*,*,#5519,.F.); +#5522=ORIENTED_EDGE('',*,*,#5521,.T.); +#5524=ORIENTED_EDGE('',*,*,#5523,.F.); +#5525=ORIENTED_EDGE('',*,*,#5488,.T.); +#5526=EDGE_LOOP('',(#5520,#5522,#5524,#5525)); +#5527=FACE_OUTER_BOUND('',#5526,.F.); +#5529=CARTESIAN_POINT('',(-3.699632111960E1,1.33E2,6.762011500698E2)); +#5530=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5531=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5532=AXIS2_PLACEMENT_3D('',#5529,#5530,#5531); +#5533=CYLINDRICAL_SURFACE('',#5532,5.E0); +#5534=ORIENTED_EDGE('',*,*,#5339,.T.); +#5536=ORIENTED_EDGE('',*,*,#5535,.F.); +#5537=ORIENTED_EDGE('',*,*,#5519,.T.); +#5538=ORIENTED_EDGE('',*,*,#5509,.F.); +#5539=EDGE_LOOP('',(#5534,#5536,#5537,#5538)); +#5540=FACE_OUTER_BOUND('',#5539,.F.); +#5542=CARTESIAN_POINT('',(-2.699632111960E1,4.061542711321E2, +-1.225231779111E2)); +#5543=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5544=DIRECTION('',(9.996573249756E-1,0.E0,-2.617694830787E-2)); +#5545=AXIS2_PLACEMENT_3D('',#5542,#5543,#5544); +#5546=CYLINDRICAL_SURFACE('',#5545,3.641682208887E1); +#5548=ORIENTED_EDGE('',*,*,#5547,.T.); +#5550=ORIENTED_EDGE('',*,*,#5549,.T.); +#5552=ORIENTED_EDGE('',*,*,#5551,.T.); +#5553=ORIENTED_EDGE('',*,*,#5521,.F.); +#5554=ORIENTED_EDGE('',*,*,#5535,.T.); +#5555=ORIENTED_EDGE('',*,*,#5337,.T.); +#5557=ORIENTED_EDGE('',*,*,#5556,.T.); +#5559=ORIENTED_EDGE('',*,*,#5558,.T.); +#5561=ORIENTED_EDGE('',*,*,#5560,.T.); +#5563=ORIENTED_EDGE('',*,*,#5562,.T.); +#5565=ORIENTED_EDGE('',*,*,#5564,.T.); +#5567=ORIENTED_EDGE('',*,*,#5566,.T.); +#5569=ORIENTED_EDGE('',*,*,#5568,.T.); +#5570=EDGE_LOOP('',(#5548,#5550,#5552,#5553,#5554,#5555,#5557,#5559,#5561,#5563, +#5565,#5567,#5569)); +#5571=FACE_OUTER_BOUND('',#5570,.F.); +#5573=CARTESIAN_POINT('',(4.555367888040E1,1.377280579399E2,-1.750204140054E2)); +#5574=DIRECTION('',(0.E0,-9.999619230642E-1,-8.726535498375E-3)); +#5575=DIRECTION('',(0.E0,-8.726535498375E-3,9.999619230642E-1)); +#5576=AXIS2_PLACEMENT_3D('',#5573,#5574,#5575); +#5577=PLANE('',#5576); +#5579=ORIENTED_EDGE('',*,*,#5578,.T.); +#5581=ORIENTED_EDGE('',*,*,#5580,.F.); +#5583=ORIENTED_EDGE('',*,*,#5582,.T.); +#5585=ORIENTED_EDGE('',*,*,#5584,.F.); +#5586=ORIENTED_EDGE('',*,*,#5547,.F.); +#5588=ORIENTED_EDGE('',*,*,#5587,.F.); +#5589=EDGE_LOOP('',(#5579,#5581,#5583,#5585,#5586,#5588)); +#5590=FACE_OUTER_BOUND('',#5589,.F.); +#5592=CARTESIAN_POINT('',(-7.32018548E2,1.345549126017E2,-4.06E1)); +#5593=DIRECTION('',(1.E0,0.E0,0.E0)); +#5594=DIRECTION('',(0.E0,9.999619230642E-1,8.726535498372E-3)); +#5595=AXIS2_PLACEMENT_3D('',#5592,#5593,#5594); +#5596=CYLINDRICAL_SURFACE('',#5595,2.E0); +#5598=ORIENTED_EDGE('',*,*,#5597,.T.); +#5600=ORIENTED_EDGE('',*,*,#5599,.F.); +#5601=ORIENTED_EDGE('',*,*,#5578,.F.); +#5603=ORIENTED_EDGE('',*,*,#5602,.F.); +#5604=EDGE_LOOP('',(#5598,#5600,#5601,#5603)); +#5605=FACE_OUTER_BOUND('',#5604,.F.); +#5607=CARTESIAN_POINT('',(0.E0,0.E0,-3.86E1)); +#5608=DIRECTION('',(0.E0,0.E0,1.E0)); +#5609=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5610=AXIS2_PLACEMENT_3D('',#5607,#5608,#5609); +#5611=PLANE('',#5610); +#5613=ORIENTED_EDGE('',*,*,#5612,.F.); +#5614=ORIENTED_EDGE('',*,*,#5597,.F.); +#5616=ORIENTED_EDGE('',*,*,#5615,.F.); +#5618=ORIENTED_EDGE('',*,*,#5617,.T.); +#5620=ORIENTED_EDGE('',*,*,#5619,.F.); +#5622=ORIENTED_EDGE('',*,*,#5621,.F.); +#5624=ORIENTED_EDGE('',*,*,#5623,.T.); +#5626=ORIENTED_EDGE('',*,*,#5625,.F.); +#5628=ORIENTED_EDGE('',*,*,#5627,.F.); +#5630=ORIENTED_EDGE('',*,*,#5629,.F.); +#5631=EDGE_LOOP('',(#5613,#5614,#5616,#5618,#5620,#5622,#5624,#5626,#5628, +#5630)); +#5632=FACE_OUTER_BOUND('',#5631,.F.); +#5634=ORIENTED_EDGE('',*,*,#5633,.T.); +#5636=ORIENTED_EDGE('',*,*,#5635,.T.); +#5637=EDGE_LOOP('',(#5634,#5636)); +#5638=FACE_BOUND('',#5637,.F.); +#5640=CARTESIAN_POINT('',(4.500000000076E0,1.025551722450E3,-4.06E1)); +#5641=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5642=DIRECTION('',(0.E0,0.E0,1.E0)); +#5643=AXIS2_PLACEMENT_3D('',#5640,#5641,#5642); +#5644=CYLINDRICAL_SURFACE('',#5643,2.E0); +#5646=ORIENTED_EDGE('',*,*,#5645,.F.); +#5648=ORIENTED_EDGE('',*,*,#5647,.F.); +#5649=ORIENTED_EDGE('',*,*,#5599,.T.); +#5650=ORIENTED_EDGE('',*,*,#5612,.T.); +#5651=EDGE_LOOP('',(#5646,#5648,#5649,#5650)); +#5652=FACE_OUTER_BOUND('',#5651,.F.); +#5654=CARTESIAN_POINT('',(-1.069999999992E1,-7.078058083514E1, +-3.807070152652E0)); +#5655=DIRECTION('',(1.E0,0.E0,0.E0)); +#5656=DIRECTION('',(0.E0,1.E0,0.E0)); +#5657=AXIS2_PLACEMENT_3D('',#5654,#5655,#5656); +#5658=CYLINDRICAL_SURFACE('',#5657,1.6615E2); +#5659=ORIENTED_EDGE('',*,*,#5645,.T.); +#5660=ORIENTED_EDGE('',*,*,#5629,.T.); +#5662=ORIENTED_EDGE('',*,*,#5661,.F.); +#5664=ORIENTED_EDGE('',*,*,#5663,.T.); +#5666=ORIENTED_EDGE('',*,*,#5665,.F.); +#5667=EDGE_LOOP('',(#5659,#5660,#5662,#5664,#5666)); +#5668=FACE_OUTER_BOUND('',#5667,.F.); +#5670=CARTESIAN_POINT('',(1.170000000008E1,3.5E1,-1.9E2)); +#5671=DIRECTION('',(1.E0,0.E0,0.E0)); +#5672=DIRECTION('',(0.E0,1.E0,0.E0)); +#5673=AXIS2_PLACEMENT_3D('',#5670,#5671,#5672); +#5674=PLANE('',#5673); +#5676=ORIENTED_EDGE('',*,*,#5675,.T.); +#5677=ORIENTED_EDGE('',*,*,#5661,.T.); +#5678=EDGE_LOOP('',(#5676,#5677)); +#5679=FACE_OUTER_BOUND('',#5678,.F.); +#5681=CARTESIAN_POINT('',(-5.196849685997E0,-8.000179578406E1, +1.429144561350E-3)); +#5682=DIRECTION('',(1.E0,0.E0,0.E0)); +#5683=DIRECTION('',(0.E0,0.E0,1.E0)); +#5684=AXIS2_PLACEMENT_3D('',#5681,#5682,#5683); +#5685=CYLINDRICAL_SURFACE('',#5684,1.759734288188E2); +#5687=ORIENTED_EDGE('',*,*,#5686,.F.); +#5689=ORIENTED_EDGE('',*,*,#5688,.T.); +#5691=ORIENTED_EDGE('',*,*,#5690,.T.); +#5693=ORIENTED_EDGE('',*,*,#5692,.F.); +#5694=ORIENTED_EDGE('',*,*,#5663,.F.); +#5695=ORIENTED_EDGE('',*,*,#5675,.F.); +#5696=ORIENTED_EDGE('',*,*,#5627,.T.); +#5698=ORIENTED_EDGE('',*,*,#5697,.F.); +#5700=ORIENTED_EDGE('',*,*,#5699,.T.); +#5701=EDGE_LOOP('',(#5687,#5689,#5691,#5693,#5694,#5695,#5696,#5698,#5700)); +#5702=FACE_OUTER_BOUND('',#5701,.F.); +#5704=CARTESIAN_POINT('',(8.583286718484E0,-8.000179578406E1, +1.429144561350E-3)); +#5705=DIRECTION('',(1.E0,0.E0,0.E0)); +#5706=DIRECTION('',(0.E0,0.E0,1.E0)); +#5707=AXIS2_PLACEMENT_3D('',#5704,#5705,#5706); +#5708=PLANE('',#5707); +#5709=ORIENTED_EDGE('',*,*,#5686,.T.); +#5711=ORIENTED_EDGE('',*,*,#5710,.T.); +#5713=ORIENTED_EDGE('',*,*,#5712,.T.); +#5715=ORIENTED_EDGE('',*,*,#5714,.T.); +#5717=ORIENTED_EDGE('',*,*,#5716,.F.); +#5718=EDGE_LOOP('',(#5709,#5711,#5713,#5715,#5717)); +#5719=FACE_OUTER_BOUND('',#5718,.F.); +#5721=CARTESIAN_POINT('',(7.500398666440E1,1.E1,-6.E1)); +#5722=DIRECTION('',(0.E0,1.E0,0.E0)); +#5723=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5724=AXIS2_PLACEMENT_3D('',#5721,#5722,#5723); +#5725=PLANE('',#5724); +#5727=ORIENTED_EDGE('',*,*,#5726,.F.); +#5728=ORIENTED_EDGE('',*,*,#5710,.F.); +#5729=ORIENTED_EDGE('',*,*,#5699,.F.); +#5731=ORIENTED_EDGE('',*,*,#5730,.F.); +#5732=ORIENTED_EDGE('',*,*,#4799,.F.); +#5734=ORIENTED_EDGE('',*,*,#5733,.F.); +#5736=ORIENTED_EDGE('',*,*,#5735,.F.); +#5738=ORIENTED_EDGE('',*,*,#5737,.T.); +#5740=ORIENTED_EDGE('',*,*,#5739,.F.); +#5741=EDGE_LOOP('',(#5727,#5728,#5729,#5731,#5732,#5734,#5736,#5738,#5740)); +#5742=FACE_OUTER_BOUND('',#5741,.F.); +#5744=CARTESIAN_POINT('',(-7.32018548E2,-2.E1,-1.703483031240E2)); +#5745=DIRECTION('',(1.E0,0.E0,0.E0)); +#5746=DIRECTION('',(0.E0,1.E0,0.E0)); +#5747=AXIS2_PLACEMENT_3D('',#5744,#5745,#5746); +#5748=CYLINDRICAL_SURFACE('',#5747,3.E1); +#5749=ORIENTED_EDGE('',*,*,#5726,.T.); +#5751=ORIENTED_EDGE('',*,*,#5750,.F.); +#5753=ORIENTED_EDGE('',*,*,#5752,.F.); +#5755=ORIENTED_EDGE('',*,*,#5754,.T.); +#5757=ORIENTED_EDGE('',*,*,#5756,.F.); +#5758=ORIENTED_EDGE('',*,*,#5712,.F.); +#5759=EDGE_LOOP('',(#5749,#5751,#5753,#5755,#5757,#5758)); +#5760=FACE_OUTER_BOUND('',#5759,.F.); +#5762=CARTESIAN_POINT('',(-4.887052769444E1,-6.5E1,0.E0)); +#5763=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5764=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5765=AXIS2_PLACEMENT_3D('',#5762,#5763,#5764); +#5766=CONICAL_SURFACE('',#5765,1.779194043499E2,8.927825336436E1); +#5767=ORIENTED_EDGE('',*,*,#5739,.T.); +#5769=ORIENTED_EDGE('',*,*,#5768,.F.); +#5770=ORIENTED_EDGE('',*,*,#5750,.T.); +#5771=EDGE_LOOP('',(#5767,#5769,#5770)); +#5772=FACE_OUTER_BOUND('',#5771,.F.); +#5774=CARTESIAN_POINT('',(-6.426589295293E1,-6.5E1,0.E0)); +#5775=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5776=DIRECTION('',(0.E0,5.583341522870E-3,-9.999844130272E-1)); +#5777=AXIS2_PLACEMENT_3D('',#5774,#5775,#5776); +#5778=TOROIDAL_SURFACE('',#5777,1.695157990234E2,1.55E1); +#5779=ORIENTED_EDGE('',*,*,#5768,.T.); +#5780=ORIENTED_EDGE('',*,*,#5737,.F.); +#5782=ORIENTED_EDGE('',*,*,#5781,.T.); +#5784=ORIENTED_EDGE('',*,*,#5783,.T.); +#5786=ORIENTED_EDGE('',*,*,#5785,.T.); +#5788=ORIENTED_EDGE('',*,*,#5787,.F.); +#5790=ORIENTED_EDGE('',*,*,#5789,.F.); +#5792=ORIENTED_EDGE('',*,*,#5791,.T.); +#5794=ORIENTED_EDGE('',*,*,#5793,.T.); +#5796=ORIENTED_EDGE('',*,*,#5795,.T.); +#5797=EDGE_LOOP('',(#5779,#5780,#5782,#5784,#5786,#5788,#5790,#5792,#5794, +#5796)); +#5798=FACE_OUTER_BOUND('',#5797,.F.); +#5800=CARTESIAN_POINT('',(-7.415982029507E1,-6.5E1,0.E0)); +#5801=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5802=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5803=AXIS2_PLACEMENT_3D('',#5800,#5801,#5802); +#5804=CONICAL_SURFACE('',#5803,1.856499021926E2,3.5E0); +#5805=ORIENTED_EDGE('',*,*,#5735,.T.); +#5807=ORIENTED_EDGE('',*,*,#5806,.F.); +#5809=ORIENTED_EDGE('',*,*,#5808,.F.); +#5811=ORIENTED_EDGE('',*,*,#5810,.T.); +#5812=ORIENTED_EDGE('',*,*,#5785,.F.); +#5813=ORIENTED_EDGE('',*,*,#5783,.F.); +#5814=ORIENTED_EDGE('',*,*,#5781,.F.); +#5815=EDGE_LOOP('',(#5805,#5807,#5809,#5811,#5812,#5813,#5814)); +#5816=FACE_OUTER_BOUND('',#5815,.F.); +#5818=CARTESIAN_POINT('',(-8.5E1,2.95E2,-1.9E2)); +#5819=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5820=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5821=AXIS2_PLACEMENT_3D('',#5818,#5819,#5820); +#5822=PLANE('',#5821); +#5823=ORIENTED_EDGE('',*,*,#5733,.T.); +#5824=ORIENTED_EDGE('',*,*,#4797,.F.); +#5826=ORIENTED_EDGE('',*,*,#5825,.F.); +#5827=ORIENTED_EDGE('',*,*,#5808,.T.); +#5828=ORIENTED_EDGE('',*,*,#5806,.T.); +#5829=EDGE_LOOP('',(#5823,#5824,#5826,#5827,#5828)); +#5830=FACE_OUTER_BOUND('',#5829,.F.); +#5832=CARTESIAN_POINT('',(1.281398666440E1,-1.8E2,-6.E1)); +#5833=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5834=DIRECTION('',(1.E0,0.E0,0.E0)); +#5835=AXIS2_PLACEMENT_3D('',#5832,#5833,#5834); +#5836=PLANE('',#5835); +#5838=ORIENTED_EDGE('',*,*,#5837,.T.); +#5840=ORIENTED_EDGE('',*,*,#5839,.T.); +#5841=ORIENTED_EDGE('',*,*,#5787,.T.); +#5842=ORIENTED_EDGE('',*,*,#5810,.F.); +#5843=ORIENTED_EDGE('',*,*,#5825,.T.); +#5844=ORIENTED_EDGE('',*,*,#4795,.F.); +#5845=EDGE_LOOP('',(#5838,#5840,#5841,#5842,#5843,#5844)); +#5846=FACE_OUTER_BOUND('',#5845,.F.); +#5848=CARTESIAN_POINT('',(8.583286718484E0,-8.000179578406E1, +1.429144561350E-3)); +#5849=DIRECTION('',(1.E0,0.E0,0.E0)); +#5850=DIRECTION('',(0.E0,0.E0,1.E0)); +#5851=AXIS2_PLACEMENT_3D('',#5848,#5849,#5850); +#5852=PLANE('',#5851); +#5853=ORIENTED_EDGE('',*,*,#4960,.T.); +#5854=ORIENTED_EDGE('',*,*,#4979,.T.); +#5856=ORIENTED_EDGE('',*,*,#5855,.F.); +#5858=ORIENTED_EDGE('',*,*,#5857,.T.); +#5860=ORIENTED_EDGE('',*,*,#5859,.F.); +#5861=ORIENTED_EDGE('',*,*,#5837,.F.); +#5862=ORIENTED_EDGE('',*,*,#4793,.T.); +#5864=ORIENTED_EDGE('',*,*,#5863,.T.); +#5865=EDGE_LOOP('',(#5853,#5854,#5856,#5858,#5860,#5861,#5862,#5864)); +#5866=FACE_OUTER_BOUND('',#5865,.F.); +#5868=CARTESIAN_POINT('',(0.E0,0.E0,-6.E1)); +#5869=DIRECTION('',(0.E0,0.E0,1.E0)); +#5870=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5871=AXIS2_PLACEMENT_3D('',#5868,#5869,#5870); +#5872=PLANE('',#5871); +#5874=ORIENTED_EDGE('',*,*,#5873,.T.); +#5875=ORIENTED_EDGE('',*,*,#5855,.T.); +#5876=ORIENTED_EDGE('',*,*,#4977,.F.); +#5877=ORIENTED_EDGE('',*,*,#5005,.T.); +#5879=ORIENTED_EDGE('',*,*,#5878,.F.); +#5881=ORIENTED_EDGE('',*,*,#5880,.T.); +#5882=EDGE_LOOP('',(#5874,#5875,#5876,#5877,#5879,#5881)); +#5883=FACE_OUTER_BOUND('',#5882,.F.); +#5885=CARTESIAN_POINT('',(5.281285370993E0,-8.000179578406E1, +1.429144561350E-3)); +#5886=DIRECTION('',(1.E0,0.E0,0.E0)); +#5887=DIRECTION('',(0.E0,0.E0,1.E0)); +#5888=AXIS2_PLACEMENT_3D('',#5885,#5886,#5887); +#5889=CONICAL_SURFACE('',#5888,1.480524760469E2,7.916502623919E1); +#5891=ORIENTED_EDGE('',*,*,#5890,.F.); +#5893=ORIENTED_EDGE('',*,*,#5892,.T.); +#5895=ORIENTED_EDGE('',*,*,#5894,.F.); +#5897=ORIENTED_EDGE('',*,*,#5896,.F.); +#5899=ORIENTED_EDGE('',*,*,#5898,.F.); +#5901=ORIENTED_EDGE('',*,*,#5900,.F.); +#5903=ORIENTED_EDGE('',*,*,#5902,.T.); +#5905=ORIENTED_EDGE('',*,*,#5904,.T.); +#5907=ORIENTED_EDGE('',*,*,#5906,.F.); +#5908=ORIENTED_EDGE('',*,*,#5714,.F.); +#5909=ORIENTED_EDGE('',*,*,#5756,.T.); +#5911=ORIENTED_EDGE('',*,*,#5910,.T.); +#5913=ORIENTED_EDGE('',*,*,#5912,.T.); +#5915=ORIENTED_EDGE('',*,*,#5914,.T.); +#5916=ORIENTED_EDGE('',*,*,#5857,.F.); +#5917=ORIENTED_EDGE('',*,*,#5873,.F.); +#5919=ORIENTED_EDGE('',*,*,#5918,.T.); +#5920=EDGE_LOOP('',(#5891,#5893,#5895,#5897,#5899,#5901,#5903,#5905,#5907,#5908, +#5909,#5911,#5913,#5915,#5916,#5917,#5919)); +#5921=FACE_OUTER_BOUND('',#5920,.F.); +#5923=CARTESIAN_POINT('',(-7.026E1,-2.1E2,-6.E1)); +#5924=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5925=DIRECTION('',(1.E0,0.E0,0.E0)); +#5926=AXIS2_PLACEMENT_3D('',#5923,#5924,#5925); +#5927=PLANE('',#5926); +#5929=ORIENTED_EDGE('',*,*,#5928,.F.); +#5930=ORIENTED_EDGE('',*,*,#5890,.T.); +#5932=ORIENTED_EDGE('',*,*,#5931,.F.); +#5934=ORIENTED_EDGE('',*,*,#5933,.F.); +#5936=ORIENTED_EDGE('',*,*,#5935,.T.); +#5937=EDGE_LOOP('',(#5929,#5930,#5932,#5934,#5936)); +#5938=FACE_OUTER_BOUND('',#5937,.F.); +#5940=CARTESIAN_POINT('',(1.000988548E3,-2.05E2,-8.88E1)); +#5941=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5942=DIRECTION('',(0.E0,0.E0,-1.E0)); +#5943=AXIS2_PLACEMENT_3D('',#5940,#5941,#5942); +#5944=CYLINDRICAL_SURFACE('',#5943,5.E0); +#5946=ORIENTED_EDGE('',*,*,#5945,.T.); +#5947=ORIENTED_EDGE('',*,*,#5892,.F.); +#5948=ORIENTED_EDGE('',*,*,#5928,.T.); +#5950=ORIENTED_EDGE('',*,*,#5949,.F.); +#5951=EDGE_LOOP('',(#5946,#5947,#5948,#5950)); +#5952=FACE_OUTER_BOUND('',#5951,.F.); +#5954=CARTESIAN_POINT('',(0.E0,0.E0,-9.38E1)); +#5955=DIRECTION('',(0.E0,0.E0,1.E0)); +#5956=DIRECTION('',(0.E0,-1.E0,0.E0)); +#5957=AXIS2_PLACEMENT_3D('',#5954,#5955,#5956); +#5958=PLANE('',#5957); +#5959=ORIENTED_EDGE('',*,*,#5945,.F.); +#5961=ORIENTED_EDGE('',*,*,#5960,.T.); +#5963=ORIENTED_EDGE('',*,*,#5962,.F.); +#5964=ORIENTED_EDGE('',*,*,#5900,.T.); +#5966=ORIENTED_EDGE('',*,*,#5965,.F.); +#5967=ORIENTED_EDGE('',*,*,#5894,.T.); +#5968=EDGE_LOOP('',(#5959,#5961,#5963,#5964,#5966,#5967)); +#5969=FACE_OUTER_BOUND('',#5968,.F.); +#5971=CARTESIAN_POINT('',(-7.499999999924E0,-2.95E2,-9.8E1)); +#5972=DIRECTION('',(1.E0,0.E0,0.E0)); +#5973=DIRECTION('',(0.E0,0.E0,1.E0)); +#5974=AXIS2_PLACEMENT_3D('',#5971,#5972,#5973); +#5975=PLANE('',#5974); +#5976=ORIENTED_EDGE('',*,*,#5960,.F.); +#5977=ORIENTED_EDGE('',*,*,#5949,.T.); +#5978=ORIENTED_EDGE('',*,*,#5935,.F.); +#5980=ORIENTED_EDGE('',*,*,#5979,.T.); +#5981=ORIENTED_EDGE('',*,*,#5076,.F.); +#5983=ORIENTED_EDGE('',*,*,#5982,.T.); +#5985=ORIENTED_EDGE('',*,*,#5984,.F.); +#5987=ORIENTED_EDGE('',*,*,#5986,.T.); +#5988=EDGE_LOOP('',(#5976,#5977,#5978,#5980,#5981,#5983,#5985,#5987)); +#5989=FACE_OUTER_BOUND('',#5988,.F.); +#5991=CARTESIAN_POINT('',(1.000988548E3,-2.18E2,-1.5E1)); +#5992=DIRECTION('',(-1.E0,0.E0,0.E0)); +#5993=DIRECTION('',(0.E0,0.E0,1.E0)); +#5994=AXIS2_PLACEMENT_3D('',#5991,#5992,#5993); +#5995=CYLINDRICAL_SURFACE('',#5994,8.E0); +#5997=ORIENTED_EDGE('',*,*,#5996,.T.); +#5999=ORIENTED_EDGE('',*,*,#5998,.F.); +#6000=ORIENTED_EDGE('',*,*,#5078,.T.); +#6001=ORIENTED_EDGE('',*,*,#5979,.F.); +#6002=ORIENTED_EDGE('',*,*,#5933,.T.); +#6003=EDGE_LOOP('',(#5997,#5999,#6000,#6001,#6002)); +#6004=FACE_OUTER_BOUND('',#6003,.F.); +#6006=CARTESIAN_POINT('',(5.629080912922E0,-2.173362148907E2,-6.E1)); +#6007=CARTESIAN_POINT('',(5.586035932438E0,-2.170907828287E2,-6.E1)); +#6008=CARTESIAN_POINT('',(5.348632304943E0,-2.157365835743E2,-6.E1)); +#6009=CARTESIAN_POINT('',(4.920981341111E0,-2.132912981770E2,-6.E1)); +#6010=CARTESIAN_POINT('',(4.495058033146E0,-2.108457112335E2,-6.E1)); +#6011=CARTESIAN_POINT('',(4.262885182555E0,-2.095089984943E2,-6.E1)); +#6012=CARTESIAN_POINT('',(4.220264863567E0,-2.092634923312E2,-6.E1)); +#6014=DIRECTION('',(0.E0,0.E0,1.E0)); +#6015=VECTOR('',#6014,1.E0); +#6016=SURFACE_OF_LINEAR_EXTRUSION('',#6013,#6015); +#6017=ORIENTED_EDGE('',*,*,#5931,.T.); +#6018=ORIENTED_EDGE('',*,*,#5918,.F.); +#6020=ORIENTED_EDGE('',*,*,#6019,.T.); +#6021=ORIENTED_EDGE('',*,*,#5996,.F.); +#6022=EDGE_LOOP('',(#6017,#6018,#6020,#6021)); +#6023=FACE_OUTER_BOUND('',#6022,.F.); +#6025=CARTESIAN_POINT('',(5.500000000076E0,-2.95E2,-6.E1)); +#6026=DIRECTION('',(1.E0,0.E0,0.E0)); +#6027=DIRECTION('',(0.E0,1.E0,0.E0)); +#6028=AXIS2_PLACEMENT_3D('',#6025,#6026,#6027); +#6029=PLANE('',#6028); +#6030=ORIENTED_EDGE('',*,*,#6019,.F.); +#6031=ORIENTED_EDGE('',*,*,#5880,.F.); +#6033=ORIENTED_EDGE('',*,*,#6032,.F.); +#6034=ORIENTED_EDGE('',*,*,#5080,.F.); +#6035=ORIENTED_EDGE('',*,*,#5998,.T.); +#6036=EDGE_LOOP('',(#6030,#6031,#6033,#6034,#6035)); +#6037=FACE_OUTER_BOUND('',#6036,.F.); +#6039=CARTESIAN_POINT('',(5.000000000761E-1,-2.6E2,6.876455785160E2)); +#6040=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6041=DIRECTION('',(1.E0,0.E0,0.E0)); +#6042=AXIS2_PLACEMENT_3D('',#6039,#6040,#6041); +#6043=CYLINDRICAL_SURFACE('',#6042,5.E0); +#6044=ORIENTED_EDGE('',*,*,#5034,.T.); +#6045=ORIENTED_EDGE('',*,*,#5082,.F.); +#6046=ORIENTED_EDGE('',*,*,#6032,.T.); +#6048=ORIENTED_EDGE('',*,*,#6047,.T.); +#6049=EDGE_LOOP('',(#6044,#6045,#6046,#6048)); +#6050=FACE_OUTER_BOUND('',#6049,.F.); +#6052=CARTESIAN_POINT('',(-7.32018548E2,-2.6E2,-6.5E1)); +#6053=DIRECTION('',(1.E0,0.E0,0.E0)); +#6054=DIRECTION('',(0.E0,0.E0,1.E0)); +#6055=AXIS2_PLACEMENT_3D('',#6052,#6053,#6054); +#6056=CYLINDRICAL_SURFACE('',#6055,5.E0); +#6057=ORIENTED_EDGE('',*,*,#5036,.T.); +#6058=ORIENTED_EDGE('',*,*,#6047,.F.); +#6059=ORIENTED_EDGE('',*,*,#5878,.T.); +#6060=ORIENTED_EDGE('',*,*,#5003,.F.); +#6061=EDGE_LOOP('',(#6057,#6058,#6059,#6060)); +#6062=FACE_OUTER_BOUND('',#6061,.F.); +#6064=CARTESIAN_POINT('',(5.500000000076E0,-2.5E2,-7.E0)); +#6065=DIRECTION('',(0.E0,1.E0,0.E0)); +#6066=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6067=AXIS2_PLACEMENT_3D('',#6064,#6065,#6066); +#6068=PLANE('',#6067); +#6070=ORIENTED_EDGE('',*,*,#6069,.T.); +#6071=ORIENTED_EDGE('',*,*,#5982,.F.); +#6072=ORIENTED_EDGE('',*,*,#5074,.F.); +#6073=ORIENTED_EDGE('',*,*,#5181,.F.); +#6074=EDGE_LOOP('',(#6070,#6071,#6072,#6073)); +#6075=FACE_OUTER_BOUND('',#6074,.F.); +#6077=CARTESIAN_POINT('',(-2.699999999992E1,-2.95E2,-9.8E1)); +#6078=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6079=DIRECTION('',(1.E0,0.E0,0.E0)); +#6080=AXIS2_PLACEMENT_3D('',#6077,#6078,#6079); +#6081=CYLINDRICAL_SURFACE('',#6080,1.95E1); +#6083=ORIENTED_EDGE('',*,*,#6082,.F.); +#6085=ORIENTED_EDGE('',*,*,#6084,.F.); +#6087=ORIENTED_EDGE('',*,*,#6086,.T.); +#6089=ORIENTED_EDGE('',*,*,#6088,.F.); +#6091=ORIENTED_EDGE('',*,*,#6090,.T.); +#6092=ORIENTED_EDGE('',*,*,#5984,.T.); +#6093=ORIENTED_EDGE('',*,*,#6069,.F.); +#6094=ORIENTED_EDGE('',*,*,#5179,.T.); +#6095=ORIENTED_EDGE('',*,*,#5236,.F.); +#6096=ORIENTED_EDGE('',*,*,#5327,.T.); +#6097=EDGE_LOOP('',(#6083,#6085,#6087,#6089,#6091,#6092,#6093,#6094,#6095, +#6096)); +#6098=FACE_OUTER_BOUND('',#6097,.F.); +#6100=CARTESIAN_POINT('',(-2.699999999992E1,-6.055728090001E0,-9.8E1)); +#6101=DIRECTION('',(0.E0,1.E0,0.E0)); +#6102=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6103=AXIS2_PLACEMENT_3D('',#6100,#6101,#6102); +#6104=CONICAL_SURFACE('',#6103,2.397213595500E1,2.656505117708E1); +#6106=ORIENTED_EDGE('',*,*,#6105,.F.); +#6108=ORIENTED_EDGE('',*,*,#6107,.F.); +#6110=ORIENTED_EDGE('',*,*,#6109,.F.); +#6111=ORIENTED_EDGE('',*,*,#6084,.T.); +#6112=ORIENTED_EDGE('',*,*,#6082,.T.); +#6113=ORIENTED_EDGE('',*,*,#5325,.F.); +#6114=EDGE_LOOP('',(#6106,#6108,#6110,#6111,#6112,#6113)); +#6115=FACE_OUTER_BOUND('',#6114,.F.); +#6117=CARTESIAN_POINT('',(-2.699999999992E1,-1.5E1,-9.8E1)); +#6118=DIRECTION('',(0.E0,1.E0,0.E0)); +#6119=DIRECTION('',(-1.228589811677E-3,0.E0,9.999992452833E-1)); +#6120=AXIS2_PLACEMENT_3D('',#6117,#6118,#6119); +#6121=TOROIDAL_SURFACE('',#6120,6.422135955E1,4.E1); +#6122=ORIENTED_EDGE('',*,*,#6107,.T.); +#6123=ORIENTED_EDGE('',*,*,#6105,.T.); +#6124=ORIENTED_EDGE('',*,*,#5323,.F.); +#6126=ORIENTED_EDGE('',*,*,#6125,.F.); +#6128=ORIENTED_EDGE('',*,*,#6127,.F.); +#6130=ORIENTED_EDGE('',*,*,#6129,.F.); +#6131=EDGE_LOOP('',(#6122,#6123,#6124,#6126,#6128,#6130)); +#6132=FACE_OUTER_BOUND('',#6131,.F.); +#6134=CARTESIAN_POINT('',(-8.5E1,2.5E1,-1.9E2)); +#6135=DIRECTION('',(0.E0,1.E0,0.E0)); +#6136=DIRECTION('',(1.E0,0.E0,0.E0)); +#6137=AXIS2_PLACEMENT_3D('',#6134,#6135,#6136); +#6138=PLANE('',#6137); +#6140=ORIENTED_EDGE('',*,*,#6139,.F.); +#6142=ORIENTED_EDGE('',*,*,#6141,.T.); +#6144=ORIENTED_EDGE('',*,*,#6143,.T.); +#6145=ORIENTED_EDGE('',*,*,#6127,.T.); +#6146=ORIENTED_EDGE('',*,*,#6125,.T.); +#6147=ORIENTED_EDGE('',*,*,#5321,.F.); +#6148=ORIENTED_EDGE('',*,*,#5376,.T.); +#6149=ORIENTED_EDGE('',*,*,#5397,.T.); +#6151=ORIENTED_EDGE('',*,*,#6150,.F.); +#6153=ORIENTED_EDGE('',*,*,#6152,.F.); +#6154=ORIENTED_EDGE('',*,*,#4848,.F.); +#6155=EDGE_LOOP('',(#6140,#6142,#6144,#6145,#6146,#6147,#6148,#6149,#6151,#6153, +#6154)); +#6156=FACE_OUTER_BOUND('',#6155,.F.); +#6158=CARTESIAN_POINT('',(-8.5E1,2.5E1,-1.9E2)); +#6159=DIRECTION('',(0.E0,1.E0,0.E0)); +#6160=DIRECTION('',(1.E0,0.E0,0.E0)); +#6161=AXIS2_PLACEMENT_3D('',#6158,#6159,#6160); +#6162=PLANE('',#6161); +#6164=ORIENTED_EDGE('',*,*,#6163,.T.); +#6165=ORIENTED_EDGE('',*,*,#4844,.F.); +#6167=ORIENTED_EDGE('',*,*,#6166,.F.); +#6169=ORIENTED_EDGE('',*,*,#6168,.F.); +#6170=EDGE_LOOP('',(#6164,#6165,#6167,#6169)); +#6171=FACE_OUTER_BOUND('',#6170,.F.); +#6173=CARTESIAN_POINT('',(5.E0,2.5E1,-1.9E2)); +#6174=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6175=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6176=AXIS2_PLACEMENT_3D('',#6173,#6174,#6175); +#6177=CYLINDRICAL_SURFACE('',#6176,1.25E1); +#6179=ORIENTED_EDGE('',*,*,#6178,.F.); +#6181=ORIENTED_EDGE('',*,*,#6180,.F.); +#6182=ORIENTED_EDGE('',*,*,#6139,.T.); +#6183=ORIENTED_EDGE('',*,*,#4846,.T.); +#6184=ORIENTED_EDGE('',*,*,#6163,.F.); +#6186=ORIENTED_EDGE('',*,*,#6185,.F.); +#6187=EDGE_LOOP('',(#6179,#6181,#6182,#6183,#6184,#6186)); +#6188=FACE_OUTER_BOUND('',#6187,.F.); +#6190=CARTESIAN_POINT('',(-6.416713281516E0,-8.000179578406E1, +1.429144561350E-3)); +#6191=DIRECTION('',(1.E0,0.E0,0.E0)); +#6192=DIRECTION('',(0.E0,0.E0,1.E0)); +#6193=AXIS2_PLACEMENT_3D('',#6190,#6191,#6192); +#6194=PLANE('',#6193); +#6195=ORIENTED_EDGE('',*,*,#6178,.T.); +#6197=ORIENTED_EDGE('',*,*,#6196,.T.); +#6199=ORIENTED_EDGE('',*,*,#6198,.T.); +#6200=EDGE_LOOP('',(#6195,#6197,#6199)); +#6201=FACE_OUTER_BOUND('',#6200,.F.); +#6203=CARTESIAN_POINT('',(-5.196849685997E0,-8.000179578406E1, +1.429144561350E-3)); +#6204=DIRECTION('',(1.E0,0.E0,0.E0)); +#6205=DIRECTION('',(0.E0,0.E0,1.E0)); +#6206=AXIS2_PLACEMENT_3D('',#6203,#6204,#6205); +#6207=CYLINDRICAL_SURFACE('',#6206,1.909734288188E2); +#6208=ORIENTED_EDGE('',*,*,#6185,.T.); +#6209=ORIENTED_EDGE('',*,*,#6168,.T.); +#6211=ORIENTED_EDGE('',*,*,#6210,.F.); +#6213=ORIENTED_EDGE('',*,*,#6212,.F.); +#6215=ORIENTED_EDGE('',*,*,#6214,.T.); +#6217=ORIENTED_EDGE('',*,*,#6216,.F.); +#6219=ORIENTED_EDGE('',*,*,#6218,.F.); +#6221=ORIENTED_EDGE('',*,*,#6220,.F.); +#6223=ORIENTED_EDGE('',*,*,#6222,.T.); +#6224=ORIENTED_EDGE('',*,*,#6196,.F.); +#6225=EDGE_LOOP('',(#6208,#6209,#6211,#6213,#6215,#6217,#6219,#6221,#6223, +#6224)); +#6226=FACE_OUTER_BOUND('',#6225,.F.); +#6228=CARTESIAN_POINT('',(8.25E1,3.75E1,-1.9E2)); +#6229=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6230=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6231=AXIS2_PLACEMENT_3D('',#6228,#6229,#6230); +#6232=CYLINDRICAL_SURFACE('',#6231,1.75E1); +#6233=ORIENTED_EDGE('',*,*,#4870,.F.); +#6235=ORIENTED_EDGE('',*,*,#6234,.T.); +#6236=ORIENTED_EDGE('',*,*,#6210,.T.); +#6237=ORIENTED_EDGE('',*,*,#6166,.T.); +#6238=EDGE_LOOP('',(#6233,#6235,#6236,#6237)); +#6239=FACE_OUTER_BOUND('',#6238,.F.); +#6241=CARTESIAN_POINT('',(8.5E1,-2.95E2,-1.9E2)); +#6242=DIRECTION('',(1.E0,0.E0,0.E0)); +#6243=DIRECTION('',(0.E0,1.E0,0.E0)); +#6244=AXIS2_PLACEMENT_3D('',#6241,#6242,#6243); +#6245=PLANE('',#6244); +#6247=ORIENTED_EDGE('',*,*,#6246,.F.); +#6249=ORIENTED_EDGE('',*,*,#6248,.T.); +#6251=ORIENTED_EDGE('',*,*,#6250,.F.); +#6253=ORIENTED_EDGE('',*,*,#6252,.T.); +#6255=ORIENTED_EDGE('',*,*,#6254,.F.); +#6257=ORIENTED_EDGE('',*,*,#6256,.T.); +#6258=ORIENTED_EDGE('',*,*,#6212,.T.); +#6259=ORIENTED_EDGE('',*,*,#6234,.F.); +#6260=ORIENTED_EDGE('',*,*,#4868,.F.); +#6261=EDGE_LOOP('',(#6247,#6249,#6251,#6253,#6255,#6257,#6258,#6259,#6260)); +#6262=FACE_OUTER_BOUND('',#6261,.F.); +#6264=CARTESIAN_POINT('',(8.25E1,2.775E2,-1.9E2)); +#6265=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6266=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6267=AXIS2_PLACEMENT_3D('',#6264,#6265,#6266); +#6268=CYLINDRICAL_SURFACE('',#6267,1.75E1); +#6270=ORIENTED_EDGE('',*,*,#6269,.F.); +#6272=ORIENTED_EDGE('',*,*,#6271,.F.); +#6273=ORIENTED_EDGE('',*,*,#6246,.T.); +#6274=ORIENTED_EDGE('',*,*,#4866,.F.); +#6276=ORIENTED_EDGE('',*,*,#6275,.T.); +#6278=ORIENTED_EDGE('',*,*,#6277,.F.); +#6280=ORIENTED_EDGE('',*,*,#6279,.T.); +#6281=EDGE_LOOP('',(#6270,#6272,#6273,#6274,#6276,#6278,#6280)); +#6282=FACE_OUTER_BOUND('',#6281,.F.); +#6284=CARTESIAN_POINT('',(0.E0,0.E0,-5.36E1)); +#6285=DIRECTION('',(0.E0,0.E0,1.E0)); +#6286=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6287=AXIS2_PLACEMENT_3D('',#6284,#6285,#6286); +#6288=PLANE('',#6287); +#6289=ORIENTED_EDGE('',*,*,#6271,.T.); +#6290=ORIENTED_EDGE('',*,*,#6269,.T.); +#6292=ORIENTED_EDGE('',*,*,#6291,.F.); +#6294=ORIENTED_EDGE('',*,*,#6293,.F.); +#6296=ORIENTED_EDGE('',*,*,#6295,.T.); +#6298=ORIENTED_EDGE('',*,*,#6297,.T.); +#6300=ORIENTED_EDGE('',*,*,#6299,.T.); +#6301=ORIENTED_EDGE('',*,*,#6248,.F.); +#6302=EDGE_LOOP('',(#6289,#6290,#6292,#6294,#6296,#6298,#6300,#6301)); +#6303=FACE_OUTER_BOUND('',#6302,.F.); +#6305=CARTESIAN_POINT('',(8.5E1,2.663848474702E2,-1.02E2)); +#6306=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6307=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6308=AXIS2_PLACEMENT_3D('',#6305,#6306,#6307); +#6309=PLANE('',#6308); +#6310=ORIENTED_EDGE('',*,*,#6279,.F.); +#6312=ORIENTED_EDGE('',*,*,#6311,.F.); +#6314=ORIENTED_EDGE('',*,*,#6313,.T.); +#6315=ORIENTED_EDGE('',*,*,#6291,.T.); +#6316=EDGE_LOOP('',(#6310,#6312,#6314,#6315)); +#6317=FACE_OUTER_BOUND('',#6316,.F.); +#6319=CARTESIAN_POINT('',(0.E0,0.E0,-1.02E2)); +#6320=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6321=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6322=AXIS2_PLACEMENT_3D('',#6319,#6320,#6321); +#6323=PLANE('',#6322); +#6324=ORIENTED_EDGE('',*,*,#6277,.T.); +#6326=ORIENTED_EDGE('',*,*,#6325,.F.); +#6328=ORIENTED_EDGE('',*,*,#6327,.F.); +#6329=ORIENTED_EDGE('',*,*,#6311,.T.); +#6330=EDGE_LOOP('',(#6324,#6326,#6328,#6329)); +#6331=FACE_OUTER_BOUND('',#6330,.F.); +#6333=CARTESIAN_POINT('',(1.E2,2.8E2,-1.9E2)); +#6334=DIRECTION('',(0.E0,1.E0,0.E0)); +#6335=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6336=AXIS2_PLACEMENT_3D('',#6333,#6334,#6335); +#6337=PLANE('',#6336); +#6338=ORIENTED_EDGE('',*,*,#6275,.F.); +#6339=ORIENTED_EDGE('',*,*,#4864,.F.); +#6341=ORIENTED_EDGE('',*,*,#6340,.T.); +#6343=ORIENTED_EDGE('',*,*,#6342,.F.); +#6344=ORIENTED_EDGE('',*,*,#6325,.T.); +#6345=EDGE_LOOP('',(#6338,#6339,#6341,#6343,#6344)); +#6346=FACE_OUTER_BOUND('',#6345,.F.); +#6348=CARTESIAN_POINT('',(5.7E0,1.064124E3,-1.657E2)); +#6349=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6350=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6351=AXIS2_PLACEMENT_3D('',#6348,#6349,#6350); +#6352=CYLINDRICAL_SURFACE('',#6351,2.43E1); +#6354=ORIENTED_EDGE('',*,*,#6353,.T.); +#6355=ORIENTED_EDGE('',*,*,#6340,.F.); +#6356=ORIENTED_EDGE('',*,*,#4862,.T.); +#6358=ORIENTED_EDGE('',*,*,#6357,.F.); +#6359=EDGE_LOOP('',(#6354,#6355,#6356,#6358)); +#6360=FACE_OUTER_BOUND('',#6359,.F.); +#6362=CARTESIAN_POINT('',(3.E1,2.8E2,-1.9E2)); +#6363=DIRECTION('',(1.E0,0.E0,0.E0)); +#6364=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6365=AXIS2_PLACEMENT_3D('',#6362,#6363,#6364); +#6366=PLANE('',#6365); +#6367=ORIENTED_EDGE('',*,*,#6353,.F.); +#6369=ORIENTED_EDGE('',*,*,#6368,.T.); +#6371=ORIENTED_EDGE('',*,*,#6370,.T.); +#6373=ORIENTED_EDGE('',*,*,#6372,.T.); +#6375=ORIENTED_EDGE('',*,*,#6374,.F.); +#6376=ORIENTED_EDGE('',*,*,#6293,.T.); +#6377=ORIENTED_EDGE('',*,*,#6313,.F.); +#6378=ORIENTED_EDGE('',*,*,#6327,.T.); +#6379=ORIENTED_EDGE('',*,*,#6342,.T.); +#6380=EDGE_LOOP('',(#6367,#6369,#6371,#6373,#6375,#6376,#6377,#6378,#6379)); +#6381=FACE_OUTER_BOUND('',#6380,.F.); +#6383=CARTESIAN_POINT('',(2.097124058701E1,1.991327065019E2,-1.902797351458E2)); +#6384=CARTESIAN_POINT('',(2.094233671181E1,2.026218976754E2,-1.902961914250E2)); +#6385=CARTESIAN_POINT('',(2.063857673840E1,2.095083543758E2,-1.903263822434E2)); +#6386=CARTESIAN_POINT('',(1.868489128545E1,2.195794987931E2,-1.905160600659E2)); +#6387=CARTESIAN_POINT('',(1.431839669781E1,2.286217117819E2,-1.909396038211E2)); +#6388=CARTESIAN_POINT('',(8.714669003335E0,2.339432774976E2,-1.912538506175E2)); +#6389=CARTESIAN_POINT('',(5.179918798553E0,2.360061991589E2,-1.913903053246E2)); +#6390=CARTESIAN_POINT('',(4.248478566714E0,2.364827664702E2,-1.914237814633E2)); +#6391=CARTESIAN_POINT('',(2.397569888866E1,1.990652843367E2,-1.869802305140E2)); +#6392=CARTESIAN_POINT('',(2.396984764929E1,2.027415780136E2,-1.869886353324E2)); +#6393=CARTESIAN_POINT('',(2.370851025870E1,2.100019683277E2,-1.869944157080E2)); +#6394=CARTESIAN_POINT('',(2.183529341431E1,2.206963263577E2,-1.871043433951E2)); +#6395=CARTESIAN_POINT('',(1.759067214848E1,2.305171973379E2,-1.874035217901E2)); +#6396=CARTESIAN_POINT('',(1.189423088989E1,2.367246153585E2,-1.876307225558E2)); +#6397=CARTESIAN_POINT('',(8.133469175839E0,2.393029924023E2,-1.877227303838E2)); +#6398=CARTESIAN_POINT('',(7.134003854572E0,2.399109240168E2,-1.877453728757E2)); +#6399=CARTESIAN_POINT('',(2.704917440274E1,1.990114380407E2,-1.829924937312E2)); +#6400=CARTESIAN_POINT('',(2.705102039638E1,2.029206645148E2,-1.830032673743E2)); +#6401=CARTESIAN_POINT('',(2.677182651717E1,2.106410463792E2,-1.830240978514E2)); +#6402=CARTESIAN_POINT('',(2.477670812330E1,2.219878217664E2,-1.831742037320E2)); +#6403=CARTESIAN_POINT('',(2.036030695716E1,2.323847881617E2,-1.835081295762E2)); +#6404=CARTESIAN_POINT('',(1.450024400529E1,2.390488976392E2,-1.837639281616E2)); +#6405=CARTESIAN_POINT('',(1.058290962945E1,2.419069946020E2,-1.838666169805E2)); +#6406=CARTESIAN_POINT('',(9.538510770258E0,2.425877094269E2,-1.838914206173E2)); +#6407=CARTESIAN_POINT('',(3.073738979224E1,1.989589461420E2,-1.776418117166E2)); +#6408=CARTESIAN_POINT('',(3.074720205601E1,2.031576056374E2,-1.776530324358E2)); +#6409=CARTESIAN_POINT('',(3.044322588432E1,2.114495691223E2,-1.776865391884E2)); +#6410=CARTESIAN_POINT('',(2.828793675029E1,2.235997948024E2,-1.778773090115E2)); +#6411=CARTESIAN_POINT('',(2.363062382252E1,2.346968667324E2,-1.782485750653E2)); +#6412=CARTESIAN_POINT('',(1.753155322740E1,2.418836473684E2,-1.785286930963E2)); +#6413=CARTESIAN_POINT('',(1.341581407451E1,2.450470427430E2,-1.786361683583E2)); +#6414=CARTESIAN_POINT('',(1.231567867272E1,2.458065032435E2,-1.786613728097E2)); +#6415=CARTESIAN_POINT('',(3.352795672099E1,1.989303617279E2,-1.731099711241E2)); +#6416=CARTESIAN_POINT('',(3.354437140820E1,2.033408530023E2,-1.731154586287E2)); +#6417=CARTESIAN_POINT('',(3.322760305526E1,2.120518797119E2,-1.731386209472E2)); +#6418=CARTESIAN_POINT('',(3.097457127107E1,2.248147217067E2,-1.733001537574E2)); +#6419=CARTESIAN_POINT('',(2.615513235185E1,2.364911780305E2,-1.736051139574E2)); +#6420=CARTESIAN_POINT('',(1.985229162274E1,2.441342782189E2,-1.738026311337E2)); +#6421=CARTESIAN_POINT('',(1.556662490248E1,2.475475266733E2,-1.738560057424E2)); +#6422=CARTESIAN_POINT('',(1.441913447709E1,2.483703846280E2,-1.738668366521E2)); +#6423=CARTESIAN_POINT('',(3.613663815595E1,1.989124495812E2,-1.679039653363E2)); +#6424=CARTESIAN_POINT('',(3.615533123153E1,2.035121077062E2,-1.679039678802E2)); +#6425=CARTESIAN_POINT('',(3.581907937022E1,2.125970294597E2,-1.679152120825E2)); +#6426=CARTESIAN_POINT('',(3.346343566280E1,2.259191136434E2,-1.680260671916E2)); +#6427=CARTESIAN_POINT('',(2.846413162480E1,2.381373075359E2,-1.682159748475E2)); +#6428=CARTESIAN_POINT('',(2.191881541229E1,2.461836226517E2,-1.682749935473E2)); +#6429=CARTESIAN_POINT('',(1.745177378503E1,2.497926287394E2,-1.682454770413E2)); +#6430=CARTESIAN_POINT('',(1.625496415006E1,2.506636893230E2,-1.682348207021E2)); +#6431=CARTESIAN_POINT('',(3.819248455545E1,1.988988936359E2,-1.621336650449E2)); +#6432=CARTESIAN_POINT('',(3.821059358054E1,2.036430987887E2,-1.621332541627E2)); +#6433=CARTESIAN_POINT('',(3.785424007629E1,2.130134400270E2,-1.621484856536E2)); +#6434=CARTESIAN_POINT('',(3.540416733376E1,2.267627851192E2,-1.622395297712E2)); +#6435=CARTESIAN_POINT('',(3.022779140593E1,2.393848338958E2,-1.623520027763E2)); +#6436=CARTESIAN_POINT('',(2.344541610946E1,2.476915075926E2,-1.623207605553E2)); +#6437=CARTESIAN_POINT('',(1.882084239814E1,2.514038665309E2,-1.622457361306E2)); +#6438=CARTESIAN_POINT('',(1.758226955934E1,2.522989574392E2,-1.622237859517E2)); +#6439=CARTESIAN_POINT('',(3.945854138055E1,1.988894892027E2,-1.563270185798E2)); +#6440=CARTESIAN_POINT('',(3.947653868313E1,2.037257005862E2,-1.563259393733E2)); +#6441=CARTESIAN_POINT('',(3.911199756088E1,2.132777802916E2,-1.563489866526E2)); +#6442=CARTESIAN_POINT('',(3.660845195329E1,2.272922427935E2,-1.564515257395E2)); +#6443=CARTESIAN_POINT('',(3.131318158559E1,2.401506251896E2,-1.565604760061E2)); +#6444=CARTESIAN_POINT('',(2.436845788601E1,2.485844629486E2,-1.565330799081E2)); +#6445=CARTESIAN_POINT('',(1.964431015362E1,2.523357813242E2,-1.564666473738E2)); +#6446=CARTESIAN_POINT('',(1.837977896626E1,2.532391416083E2,-1.564471694246E2)); +#6447=CARTESIAN_POINT('',(4.012034452938E1,1.988845027042E2,-1.506565082738E2)); +#6448=CARTESIAN_POINT('',(4.013770943772E1,2.037778874845E2,-1.506540760757E2)); +#6449=CARTESIAN_POINT('',(3.977366624269E1,2.134431265301E2,-1.506832038718E2)); +#6450=CARTESIAN_POINT('',(3.725659856126E1,2.276128312023E2,-1.508113757771E2)); +#6451=CARTESIAN_POINT('',(3.191220554881E1,2.405996808782E2,-1.509635506722E2)); +#6452=CARTESIAN_POINT('',(2.488452315565E1,2.490969183630E2,-1.509939456271E2)); +#6453=CARTESIAN_POINT('',(2.010856107428E1,2.528629304529E2,-1.509607339846E2)); +#6454=CARTESIAN_POINT('',(1.883050184309E1,2.537689575194E2,-1.509495929774E2)); +#6455=CARTESIAN_POINT('',(4.030509023115E1,1.988829984790E2,-1.471136695912E2)); +#6456=CARTESIAN_POINT('',(4.032178899334E1,2.038000942210E2,-1.471104055301E2)); +#6457=CARTESIAN_POINT('',(3.996141660754E1,2.135126172045E2,-1.471406374015E2)); +#6458=CARTESIAN_POINT('',(3.745328563212E1,2.277419632591E2,-1.472748925416E2)); +#6459=CARTESIAN_POINT('',(3.211045065232E1,2.407750076822E2,-1.474381516594E2)); +#6460=CARTESIAN_POINT('',(2.506314762751E1,2.492976504709E2,-1.474853176842E2)); +#6461=CARTESIAN_POINT('',(2.027173182008E1,2.530679098626E2,-1.474616486438E2)); +#6462=CARTESIAN_POINT('',(1.898952416323E1,2.539744606302E2,-1.474528817623E2)); +#6463=CARTESIAN_POINT('',(4.036545984169E1,1.988825257706E2,-1.452169529902E2)); +#6464=CARTESIAN_POINT('',(4.038175568648E1,2.038096797575E2,-1.452132307541E2)); +#6465=CARTESIAN_POINT('',(4.002389376137E1,2.135423768674E2,-1.452440661645E2)); +#6466=CARTESIAN_POINT('',(3.752336306415E1,2.277964511245E2,-1.453814028643E2)); +#6467=CARTESIAN_POINT('',(3.218603886553E1,2.408484879569E2,-1.455499781474E2)); +#6468=CARTESIAN_POINT('',(2.513229014542E1,2.493820185508E2,-1.456055035346E2)); +#6469=CARTESIAN_POINT('',(2.033493820913E1,2.531531999128E2,-1.455867037510E2)); +#6470=CARTESIAN_POINT('',(1.905112522649E1,2.540596921E2,-1.455791527559E2)); +#6471=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#6383,#6384,#6385,#6386,#6387,#6388, +#6389,#6390),(#6391,#6392,#6393,#6394,#6395,#6396,#6397,#6398),(#6399,#6400, +#6401,#6402,#6403,#6404,#6405,#6406),(#6407,#6408,#6409,#6410,#6411,#6412,#6413, +#6414),(#6415,#6416,#6417,#6418,#6419,#6420,#6421,#6422),(#6423,#6424,#6425, +#6426,#6427,#6428,#6429,#6430),(#6431,#6432,#6433,#6434,#6435,#6436,#6437, +#6438),(#6439,#6440,#6441,#6442,#6443,#6444,#6445,#6446),(#6447,#6448,#6449, +#6450,#6451,#6452,#6453,#6454),(#6455,#6456,#6457,#6458,#6459,#6460,#6461, +#6462),(#6463,#6464,#6465,#6466,#6467,#6468,#6469,#6470)),.UNSPECIFIED.,.F.,.F., +.F.,(4,1,1,1,1,1,1,1,4),(4,1,1,1,1,4),(-3.108116019794E-1,-2.613471779246E-2, +1.204559562126E-1,2.670466302176E-1,4.136373042227E-1,5.602279782277E-1, +7.068186522328E-1,8.534093262379E-1,1.019544193944E0),(4.973676521766E-1, +5.625E-1,6.25E-1,6.875E-1,7.5E-1,7.719181811432E-1),.UNSPECIFIED.); +#6472=ORIENTED_EDGE('',*,*,#6368,.F.); +#6473=ORIENTED_EDGE('',*,*,#6357,.T.); +#6474=ORIENTED_EDGE('',*,*,#4860,.T.); +#6476=ORIENTED_EDGE('',*,*,#6475,.F.); +#6478=ORIENTED_EDGE('',*,*,#6477,.F.); +#6479=EDGE_LOOP('',(#6472,#6473,#6474,#6476,#6478)); +#6480=FACE_OUTER_BOUND('',#6479,.F.); +#6482=CARTESIAN_POINT('',(-2.769593184547E1,1.554806706652E2, +-1.913456595686E2)); +#6483=CARTESIAN_POINT('',(-2.419696305696E1,1.554371178658E2, +-1.913053367756E2)); +#6484=CARTESIAN_POINT('',(-1.773734581032E1,1.554476272037E2, +-1.911922877881E2)); +#6485=CARTESIAN_POINT('',(-8.664906978174E0,1.561390274141E2, +-1.909784113979E2)); +#6486=CARTESIAN_POINT('',(-7.855540132226E-2,1.581129976692E2, +-1.908299349692E2)); +#6487=CARTESIAN_POINT('',(8.305359157542E0,1.625269178635E2,-1.907837906362E2)); +#6488=CARTESIAN_POINT('',(1.518163512299E1,1.700630786292E2,-1.906019390825E2)); +#6489=CARTESIAN_POINT('',(1.915961938723E1,1.794133879758E2,-1.903610969593E2)); +#6490=CARTESIAN_POINT('',(2.085448172533E1,1.897079665879E2,-1.902928546075E2)); +#6491=CARTESIAN_POINT('',(2.099063034320E1,1.967240974384E2,-1.903277304523E2)); +#6492=CARTESIAN_POINT('',(2.093130439980E1,2.003226807597E2,-1.903447829371E2)); +#6493=CARTESIAN_POINT('',(-2.780639722715E1,1.512622190952E2, +-1.874935071983E2)); +#6494=CARTESIAN_POINT('',(-2.405901771279E1,1.512098024910E2, +-1.874533268507E2)); +#6495=CARTESIAN_POINT('',(-1.710952039551E1,1.512808995581E2, +-1.873463916381E2)); +#6496=CARTESIAN_POINT('',(-7.279302549464E0,1.523042407996E2, +-1.871817397633E2)); +#6497=CARTESIAN_POINT('',(2.017101212046E0,1.548114825031E2,-1.871099124716E2)); +#6498=CARTESIAN_POINT('',(1.096180493894E1,1.599329897914E2,-1.871239075832E2)); +#6499=CARTESIAN_POINT('',(1.811309830471E1,1.682062750338E2,-1.869863001775E2)); +#6500=CARTESIAN_POINT('',(2.221011646185E1,1.781954258181E2,-1.867901989565E2)); +#6501=CARTESIAN_POINT('',(2.399753338815E1,1.890995924343E2,-1.867407416499E2)); +#6502=CARTESIAN_POINT('',(2.418418058443E1,1.965145692306E2,-1.867664096140E2)); +#6503=CARTESIAN_POINT('',(2.414901554375E1,2.003211431576E2,-1.867732316070E2)); +#6504=CARTESIAN_POINT('',(-2.785792246730E1,1.475590638945E2, +-1.832941659005E2)); +#6505=CARTESIAN_POINT('',(-2.383677397041E1,1.475365732312E2, +-1.832870079758E2)); +#6506=CARTESIAN_POINT('',(-1.637159649659E1,1.477155605946E2, +-1.832361530073E2)); +#6507=CARTESIAN_POINT('',(-5.837018258197E0,1.490386931327E2, +-1.831272307279E2)); +#6508=CARTESIAN_POINT('',(4.045229435371E0,1.519550110148E2,-1.830692096010E2)); +#6509=CARTESIAN_POINT('',(1.340486514422E1,1.575443939825E2,-1.830439037659E2)); +#6510=CARTESIAN_POINT('',(2.084444602480E1,1.662780794353E2,-1.828562842557E2)); +#6511=CARTESIAN_POINT('',(2.519939433594E1,1.768082439617E2,-1.826201840761E2)); +#6512=CARTESIAN_POINT('',(2.716910187123E1,1.883803895058E2,-1.825377119375E2)); +#6513=CARTESIAN_POINT('',(2.739962164437E1,1.962873313728E2,-1.825602052581E2)); +#6514=CARTESIAN_POINT('',(2.736729443817E1,2.003495409358E2,-1.825722969700E2)); +#6515=CARTESIAN_POINT('',(-2.793137165613E1,1.430811206265E2, +-1.773831534283E2)); +#6516=CARTESIAN_POINT('',(-2.358164621688E1,1.430800615156E2, +-1.774142329789E2)); +#6517=CARTESIAN_POINT('',(-1.550096206182E1,1.433607780238E2, +-1.774334033516E2)); +#6518=CARTESIAN_POINT('',(-4.125361722084E0,1.450061185160E2, +-1.774086849985E2)); +#6519=CARTESIAN_POINT('',(6.469022135378E0,1.483837710827E2,-1.773956710152E2)); +#6520=CARTESIAN_POINT('',(1.636845950617E1,1.545313609556E2,-1.773615708396E2)); +#6521=CARTESIAN_POINT('',(2.419858999166E1,1.638617819789E2,-1.771419148427E2)); +#6522=CARTESIAN_POINT('',(2.887080977031E1,1.750879042571E2,-1.768697224922E2)); +#6523=CARTESIAN_POINT('',(3.105593807617E1,1.874987256544E2,-1.767500178153E2)); +#6524=CARTESIAN_POINT('',(3.133836885994E1,1.960197675718E2,-1.767619162493E2)); +#6525=CARTESIAN_POINT('',(3.131018699006E1,2.004010061450E2,-1.767745184895E2)); +#6526=CARTESIAN_POINT('',(-2.797880679955E1,1.397306362688E2, +-1.720477317354E2)); +#6527=CARTESIAN_POINT('',(-2.339937400909E1,1.397313902594E2, +-1.720959561319E2)); +#6528=CARTESIAN_POINT('',(-1.488805299502E1,1.400604456040E2, +-1.721598622100E2)); +#6529=CARTESIAN_POINT('',(-2.905220708969E0,1.419054284292E2, +-1.722227004207E2)); +#6530=CARTESIAN_POINT('',(8.235927083251E0,1.455969447360E2,-1.722948636109E2)); +#6531=CARTESIAN_POINT('',(1.859698114472E1,1.521757744277E2,-1.723265306403E2)); +#6532=CARTESIAN_POINT('',(2.675919629863E1,1.620262835130E2,-1.721550147567E2)); +#6533=CARTESIAN_POINT('',(3.165420562521E1,1.738269036142E2,-1.719072912327E2)); +#6534=CARTESIAN_POINT('',(3.397877332084E1,1.868738582863E2,-1.717837273121E2)); +#6535=CARTESIAN_POINT('',(3.429557999714E1,1.958388266580E2,-1.717820534568E2)); +#6536=CARTESIAN_POINT('',(3.427092481134E1,2.004497002858E2,-1.717870435301E2)); +#6537=CARTESIAN_POINT('',(-2.802017911762E1,1.369714403855E2, +-1.658893121221E2)); +#6538=CARTESIAN_POINT('',(-2.325056883932E1,1.369580761518E2, +-1.659316224354E2)); +#6539=CARTESIAN_POINT('',(-1.438413002156E1,1.372915835672E2, +-1.660051700497E2)); +#6540=CARTESIAN_POINT('',(-1.888893847059E0,1.392371965104E2, +-1.661258960748E2)); +#6541=CARTESIAN_POINT('',(9.743153087382E0,1.431278337899E2,-1.662761589532E2)); +#6542=CARTESIAN_POINT('',(2.056603534486E1,1.500449805712E2,-1.663958084251E2)); +#6543=CARTESIAN_POINT('',(2.907376482346E1,1.603804370174E2,-1.663180363254E2)); +#6544=CARTESIAN_POINT('',(3.417280572664E1,1.727238198511E2,-1.661340235484E2)); +#6545=CARTESIAN_POINT('',(3.661114964984E1,1.863434050370E2,-1.660265320860E2)); +#6546=CARTESIAN_POINT('',(3.694973734723E1,1.956907565027E2,-1.660166486747E2)); +#6547=CARTESIAN_POINT('',(3.692294534345E1,2.004975047959E2,-1.660174877837E2)); +#6548=CARTESIAN_POINT('',(-2.805004433046E1,1.352296181798E2, +-1.595182606728E2)); +#6549=CARTESIAN_POINT('',(-2.314541463976E1,1.352032163139E2, +-1.595321931744E2)); +#6550=CARTESIAN_POINT('',(-1.403178800170E1,1.355261821392E2, +-1.595739198566E2)); +#6551=CARTESIAN_POINT('',(-1.189297100835E0,1.375010394289E2, +-1.596938692681E2)); +#6552=CARTESIAN_POINT('',(1.077914789705E1,1.414744733991E2,-1.598666354210E2)); +#6553=CARTESIAN_POINT('',(2.194028994413E1,1.485717499254E2,-1.600269907257E2)); +#6554=CARTESIAN_POINT('',(3.071795197712E1,1.592221473896E2,-1.600176021759E2)); +#6555=CARTESIAN_POINT('',(3.597109417705E1,1.719449701247E2,-1.598862424104E2)); +#6556=CARTESIAN_POINT('',(3.848809663421E1,1.859698165476E2,-1.597871714243E2)); +#6557=CARTESIAN_POINT('',(3.883897358821E1,1.955861334499E2,-1.597709812145E2)); +#6558=CARTESIAN_POINT('',(3.880970198163E1,2.005296703667E2,-1.597728143462E2)); +#6559=CARTESIAN_POINT('',(-2.806733811511E1,1.343583891348E2, +-1.535839858479E2)); +#6560=CARTESIAN_POINT('',(-2.307804898514E1,1.343301412971E2, +-1.535827139534E2)); +#6561=CARTESIAN_POINT('',(-1.381667922176E1,1.346507640567E2, +-1.536096295020E2)); +#6562=CARTESIAN_POINT('',(-7.863047067937E-1,1.366286142608E2, +-1.537291460170E2)); +#6563=CARTESIAN_POINT('',(1.135426635950E1,1.406197173729E2,-1.538976103229E2)); +#6564=CARTESIAN_POINT('',(2.269328207598E1,1.477795885568E2,-1.540373888289E2)); +#6565=CARTESIAN_POINT('',(3.161968558197E1,1.585763493581E2,-1.540130696726E2)); +#6566=CARTESIAN_POINT('',(3.695203557967E1,1.714978707551E2,-1.538708045102E2)); +#6567=CARTESIAN_POINT('',(3.950123736665E1,1.857505261285E2,-1.537493937262E2)); +#6568=CARTESIAN_POINT('',(3.985426754980E1,1.955248942462E2,-1.537217970283E2)); +#6569=CARTESIAN_POINT('',(3.982432187356E1,2.005485664902E2,-1.537235788946E2)); +#6570=CARTESIAN_POINT('',(-2.807703544041E1,1.340160038004E2, +-1.489476598161E2)); +#6571=CARTESIAN_POINT('',(-2.304293987008E1,1.339879873310E2, +-1.489445462351E2)); +#6572=CARTESIAN_POINT('',(-1.370902314952E1,1.343047723852E2, +-1.489735044634E2)); +#6573=CARTESIAN_POINT('',(-5.996214035001E-1,1.362683026855E2, +-1.491007323227E2)); +#6574=CARTESIAN_POINT('',(1.160856692585E1,1.402459198523E2,-1.492664552348E2)); +#6575=CARTESIAN_POINT('',(2.302101806234E1,1.474178072152E2,-1.493834112099E2)); +#6576=CARTESIAN_POINT('',(3.200116932756E1,1.582758074516E2,-1.493311143929E2)); +#6577=CARTESIAN_POINT('',(3.734676288884E1,1.712830461740E2,-1.491678511737E2)); +#6578=CARTESIAN_POINT('',(3.989102595262E1,1.856412313716E2,-1.490278695698E2)); +#6579=CARTESIAN_POINT('',(4.023880908995E1,1.954950007760E2,-1.489931529898E2)); +#6580=CARTESIAN_POINT('',(4.020860540996E1,2.005589160014E2,-1.489944676049E2)); +#6581=CARTESIAN_POINT('',(-2.808143338286E1,1.338997576677E2, +-1.462013300167E2)); +#6582=CARTESIAN_POINT('',(-2.302693145230E1,1.338720260921E2, +-1.461984563264E2)); +#6583=CARTESIAN_POINT('',(-1.366228359967E1,1.341855359982E2, +-1.462299437567E2)); +#6584=CARTESIAN_POINT('',(-5.245899542650E-1,1.361354352918E2, +-1.463623991019E2)); +#6585=CARTESIAN_POINT('',(1.170673386657E1,1.400970847242E2,-1.465290310099E2)); +#6586=CARTESIAN_POINT('',(2.314799015987E1,1.472669820316E2,-1.466393061486E2)); +#6587=CARTESIAN_POINT('',(3.214543439114E1,1.581500554080E2,-1.465789948633E2)); +#6588=CARTESIAN_POINT('',(3.748641031500E1,1.711916280636E2,-1.464100162376E2)); +#6589=CARTESIAN_POINT('',(4.002027886804E1,1.855936079276E2,-1.462637406894E2)); +#6590=CARTESIAN_POINT('',(4.036341593153E1,1.954822395735E2,-1.462259526405E2)); +#6591=CARTESIAN_POINT('',(4.033315156216E1,2.005637657186E2,-1.462268354817E2)); +#6592=CARTESIAN_POINT('',(-2.808277852435E1,1.338696841870E2, +-1.452026851322E2)); +#6593=CARTESIAN_POINT('',(-2.302183473336E1,1.338420823053E2, +-1.452000459287E2)); +#6594=CARTESIAN_POINT('',(-1.364789764354E1,1.341542545873E2, +-1.452326908282E2)); +#6595=CARTESIAN_POINT('',(-5.025860235560E-1,1.360984314216E2, +-1.453671784089E2)); +#6596=CARTESIAN_POINT('',(1.173486364450E1,1.400530973506E2,-1.455339403986E2)); +#6597=CARTESIAN_POINT('',(2.318477473294E1,1.472209877655E2,-1.456411907136E2)); +#6598=CARTESIAN_POINT('',(3.218667305966E1,1.581117798909E2,-1.455772733570E2)); +#6599=CARTESIAN_POINT('',(3.752420346065E1,1.711636854326E2,-1.454057370027E2)); +#6600=CARTESIAN_POINT('',(4.005315243516E1,1.855788989162E2,-1.452568747072E2)); +#6601=CARTESIAN_POINT('',(4.039436032384E1,1.954783465756E2,-1.452178971941E2)); +#6602=CARTESIAN_POINT('',(4.036408633425E1,2.005653260450E2,-1.452186270321E2)); +#6603=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#6482,#6483,#6484,#6485,#6486,#6487, +#6488,#6489,#6490,#6491,#6492),(#6493,#6494,#6495,#6496,#6497,#6498,#6499,#6500, +#6501,#6502,#6503),(#6504,#6505,#6506,#6507,#6508,#6509,#6510,#6511,#6512,#6513, +#6514),(#6515,#6516,#6517,#6518,#6519,#6520,#6521,#6522,#6523,#6524,#6525),( +#6526,#6527,#6528,#6529,#6530,#6531,#6532,#6533,#6534,#6535,#6536),(#6537,#6538, +#6539,#6540,#6541,#6542,#6543,#6544,#6545,#6546,#6547),(#6548,#6549,#6550,#6551, +#6552,#6553,#6554,#6555,#6556,#6557,#6558),(#6559,#6560,#6561,#6562,#6563,#6564, +#6565,#6566,#6567,#6568,#6569),(#6570,#6571,#6572,#6573,#6574,#6575,#6576,#6577, +#6578,#6579,#6580),(#6581,#6582,#6583,#6584,#6585,#6586,#6587,#6588,#6589,#6590, +#6591),(#6592,#6593,#6594,#6595,#6596,#6597,#6598,#6599,#6600,#6601,#6602)), +.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1,1,1,1,1,1,4),(4,1,1,1,1,1,1,1,4),( +-3.124503472869E-1,-5.546263180595E-3,1.506026036646E-1,3.067514705099E-1, +4.629003373551E-1,6.190492042004E-1,7.751980710456E-1,9.313469378908E-1, +1.019506370635E0),(-4.831667478739E-3,6.25E-2,1.25E-1,1.875E-1,2.5E-1,3.125E-1, +3.75E-1,4.375E-1,5.047815439496E-1),.UNSPECIFIED.); +#6604=ORIENTED_EDGE('',*,*,#4858,.F.); +#6606=ORIENTED_EDGE('',*,*,#6605,.T.); +#6607=ORIENTED_EDGE('',*,*,#5500,.T.); +#6609=ORIENTED_EDGE('',*,*,#6608,.F.); +#6610=ORIENTED_EDGE('',*,*,#6475,.T.); +#6611=EDGE_LOOP('',(#6604,#6606,#6607,#6609,#6610)); +#6612=FACE_OUTER_BOUND('',#6611,.F.); +#6614=CARTESIAN_POINT('',(-2.647999780359E1,1.549725214384E2, +-1.908789217720E2)); +#6615=CARTESIAN_POINT('',(-2.993803040528E1,1.549308393424E2, +-1.908388176928E2)); +#6616=CARTESIAN_POINT('',(-3.639072051042E1,1.549531512965E2, +-1.907274766997E2)); +#6617=CARTESIAN_POINT('',(-4.549457867912E1,1.556796202033E2, +-1.905208938823E2)); +#6618=CARTESIAN_POINT('',(-5.416593328221E1,1.577173295200E2, +-1.903814340481E2)); +#6619=CARTESIAN_POINT('',(-6.261682819268E1,1.622155820170E2, +-1.903422022640E2)); +#6620=CARTESIAN_POINT('',(-6.782469509366E1,1.679620148769E2, +-1.902089157642E2)); +#6621=CARTESIAN_POINT('',(-6.995620137047E1,1.716451042626E2, +-1.901189590532E2)); +#6622=CARTESIAN_POINT('',(-7.036623715645E1,1.724250876626E2, +-1.901003418528E2)); +#6623=CARTESIAN_POINT('',(-2.639284136447E1,1.510602322701E2, +-1.872649513223E2)); +#6624=CARTESIAN_POINT('',(-3.007989392924E1,1.510136920005E2, +-1.872267002553E2)); +#6625=CARTESIAN_POINT('',(-3.698694774864E1,1.510957956249E2, +-1.871237345895E2)); +#6626=CARTESIAN_POINT('',(-4.679092548469E1,1.521284900993E2, +-1.869631409306E2)); +#6627=CARTESIAN_POINT('',(-5.611885303162E1,1.546577243401E2, +-1.868920717845E2)); +#6628=CARTESIAN_POINT('',(-6.508590308777E1,1.598044018387E2, +-1.869039731950E2)); +#6629=CARTESIAN_POINT('',(-7.048780340382E1,1.660589676798E2, +-1.867982367518E2)); +#6630=CARTESIAN_POINT('',(-7.269060900695E1,1.700035476620E2, +-1.867238946246E2)); +#6631=CARTESIAN_POINT('',(-7.311415394182E1,1.708368937766E2, +-1.867084510939E2)); +#6632=CARTESIAN_POINT('',(-2.635740387674E1,1.474677522653E2, +-1.831747183821E2)); +#6633=CARTESIAN_POINT('',(-3.030495674315E1,1.474503537637E2, +-1.831677520809E2)); +#6634=CARTESIAN_POINT('',(-3.770715818249E1,1.476364792578E2, +-1.831185650159E2)); +#6635=CARTESIAN_POINT('',(-4.819010341282E1,1.489574610562E2, +-1.830120358267E2)); +#6636=CARTESIAN_POINT('',(-5.808669634745E1,1.518830720165E2, +-1.829549213827E2)); +#6637=CARTESIAN_POINT('',(-6.745720585102E1,1.574836995009E2, +-1.829294384795E2)); +#6638=CARTESIAN_POINT('',(-7.307062006958E1,1.640756583073E2, +-1.827875364296E2)); +#6639=CARTESIAN_POINT('',(-7.538339835703E1,1.682291732166E2, +-1.826955150081E2)); +#6640=CARTESIAN_POINT('',(-7.582923450357E1,1.691067670238E2, +-1.826765108339E2)); +#6641=CARTESIAN_POINT('',(-2.630335559586E1,1.430812200402E2, +-1.773848715234E2)); +#6642=CARTESIAN_POINT('',(-3.056655348636E1,1.430855499718E2, +-1.774146077069E2)); +#6643=CARTESIAN_POINT('',(-3.856560918244E1,1.433714772750E2, +-1.774332515385E2)); +#6644=CARTESIAN_POINT('',(-4.986727818027E1,1.450061242563E2, +-1.774086936889E2)); +#6645=CARTESIAN_POINT('',(-6.046166103049E1,1.483837761943E2, +-1.773956795913E2)); +#6646=CARTESIAN_POINT('',(-7.036109759672E1,1.545313652624E2, +-1.773615793582E2)); +#6647=CARTESIAN_POINT('',(-7.626295307916E1,1.615640443809E2, +-1.771960165780E2)); +#6648=CARTESIAN_POINT('',(-7.871757677733E1,1.659891496781E2, +-1.770897446511E2)); +#6649=CARTESIAN_POINT('',(-7.919187533060E1,1.669241642043E2, +-1.770677550370E2)); +#6650=CARTESIAN_POINT('',(-2.626870692662E1,1.397308596848E2, +-1.720504117589E2)); +#6651=CARTESIAN_POINT('',(-3.075711583284E1,1.397378165090E2, +-1.720971944479E2)); +#6652=CARTESIAN_POINT('',(-3.918246489091E1,1.400724414196E2, +-1.721602803245E2)); +#6653=CARTESIAN_POINT('',(-5.108741962347E1,1.419054334210E2, +-1.722227100049E2)); +#6654=CARTESIAN_POINT('',(-6.222856652107E1,1.455969492864E2, +-1.722948730325E2)); +#6655=CARTESIAN_POINT('',(-7.258961977866E1,1.521757783059E2, +-1.723265399072E2)); +#6656=CARTESIAN_POINT('',(-7.874177962158E1,1.596004668500E2, +-1.721972620045E2)); +#6657=CARTESIAN_POINT('',(-8.130703776353E1,1.642586433661E2, +-1.721049528406E2)); +#6658=CARTESIAN_POINT('',(-8.180307376231E1,1.652425225991E2, +-1.720855723300E2)); +#6659=CARTESIAN_POINT('',(-2.623791995054E1,1.369708926057E2, +-1.658916739174E2)); +#6660=CARTESIAN_POINT('',(-3.091275810518E1,1.369645921280E2, +-1.659330490570E2)); +#6661=CARTESIAN_POINT('',(-3.968971829545E1,1.373042315578E2, +-1.660059643932E2)); +#6662=CARTESIAN_POINT('',(-5.210374709870E1,1.392371998585E2, +-1.661259057898E2)); +#6663=CARTESIAN_POINT('',(-6.373579339617E1,1.431278369445E2, +-1.662761685969E2)); +#6664=CARTESIAN_POINT('',(-7.455867502578E1,1.500449833405E2, +-1.663958179622E2)); +#6665=CARTESIAN_POINT('',(-8.097126173750E1,1.578351946586E2, +-1.663371981763E2)); +#6666=CARTESIAN_POINT('',(-8.364426700889E1,1.627125720762E2, +-1.662763371898E2)); +#6667=CARTESIAN_POINT('',(-8.416115342424E1,1.637423822666E2, +-1.662630749164E2)); +#6668=CARTESIAN_POINT('',(-2.621556730991E1,1.352283503645E2, +-1.595190529336E2)); +#6669=CARTESIAN_POINT('',(-3.102267084746E1,1.352095303351E2, +-1.595330086315E2)); +#6670=CARTESIAN_POINT('',(-4.004431740752E1,1.355390183957E2, +-1.595747078124E2)); +#6671=CARTESIAN_POINT('',(-5.280334443588E1,1.375010410414E2, +-1.596938776817E2)); +#6672=CARTESIAN_POINT('',(-6.477178911543E1,1.414744749575E2, +-1.598666438324E2)); +#6673=CARTESIAN_POINT('',(-7.593293083625E1,1.485717513460E2, +-1.600269991331E2)); +#6674=CARTESIAN_POINT('',(-8.254897575366E1,1.565993454920E2, +-1.600199226162E2)); +#6675=CARTESIAN_POINT('',(-8.530475378326E1,1.616262244814E2, +-1.599836400390E2)); +#6676=CARTESIAN_POINT('',(-8.583758026045E1,1.626875866598E2, +-1.599752040431E2)); +#6677=CARTESIAN_POINT('',(-2.620298015353E1,1.343570182059E2, +-1.535839373814E2)); +#6678=CARTESIAN_POINT('',(-3.109287943983E1,1.343364096379E2, +-1.535832438336E2)); +#6679=CARTESIAN_POINT('',(-4.026064742617E1,1.346636187928E2, +-1.536104128758E2)); +#6680=CARTESIAN_POINT('',(-5.320633719881E1,1.366286149299E2, +-1.537291526424E2)); +#6681=CARTESIAN_POINT('',(-6.534690813520E1,1.406197180469E2, +-1.538976169560E2)); +#6682=CARTESIAN_POINT('',(-7.668592371504E1,1.477795891971E2, +-1.540373955035E2)); +#6683=CARTESIAN_POINT('',(-8.341408064706E1,1.559175028739E2, +-1.540190653024E2)); +#6684=CARTESIAN_POINT('',(-8.621395617326E1,1.610197881008E2, +-1.539775729954E2)); +#6685=CARTESIAN_POINT('',(-8.675518951509E1,1.620972770326E2, +-1.539680595119E2)); +#6686=CARTESIAN_POINT('',(-2.619577078295E1,1.340146416909E2, +-1.489474912478E2)); +#6687=CARTESIAN_POINT('',(-3.112938385666E1,1.339941794627E2, +-1.489450952090E2)); +#6688=CARTESIAN_POINT('',(-4.036881762626E1,1.343175322694E2, +-1.489743174255E2)); +#6689=CARTESIAN_POINT('',(-5.339302143271E1,1.362683015203E2, +-1.491007184512E2)); +#6690=CARTESIAN_POINT('',(-6.560120998312E1,1.402459186550E2, +-1.492664413516E2)); +#6691=CARTESIAN_POINT('',(-7.701366135635E1,1.474178060634E2, +-1.493833972487E2)); +#6692=CARTESIAN_POINT('',(-8.378233015810E1,1.556018783745E2, +-1.493439791516E2)); +#6693=CARTESIAN_POINT('',(-8.659406348795E1,1.607363983149E2, +-1.492925752442E2)); +#6694=CARTESIAN_POINT('',(-8.713735876976E1,1.618208200991E2, +-1.492810761844E2)); +#6695=CARTESIAN_POINT('',(-2.619250470243E1,1.338984090907E2, +-1.462011571800E2)); +#6696=CARTESIAN_POINT('',(-3.114598301382E1,1.338781543271E2, +-1.461990353712E2)); +#6697=CARTESIAN_POINT('',(-4.041574126593E1,1.341982069821E2, +-1.462307719947E2)); +#6698=CARTESIAN_POINT('',(-5.346805318630E1,1.361354336921E2, +-1.463623665722E2)); +#6699=CARTESIAN_POINT('',(-6.569937728627E1,1.400970829370E2, +-1.465289984915E2)); +#6700=CARTESIAN_POINT('',(-7.714063392519E1,1.472669802232E2, +-1.466392735523E2)); +#6701=CARTESIAN_POINT('',(-8.392233709181E1,1.554699511564E2, +-1.465938146587E2)); +#6702=CARTESIAN_POINT('',(-8.673553173393E1,1.606174670931E2, +-1.465396509451E2)); +#6703=CARTESIAN_POINT('',(-8.727892919726E1,1.617046831554E2, +-1.465275983620E2)); +#6704=CARTESIAN_POINT('',(-2.619151663866E1,1.338683418211E2, +-1.452025063335E2)); +#6705=CARTESIAN_POINT('',(-3.115125829047E1,1.338481843912E2, +-1.452006278929E2)); +#6706=CARTESIAN_POINT('',(-4.043017692076E1,1.341668881905E2, +-1.452335129166E2)); +#6707=CARTESIAN_POINT('',(-5.349005736149E1,1.360984294947E2, +-1.453671265657E2)); +#6708=CARTESIAN_POINT('',(-6.572750734843E1,1.400530950599E2, +-1.455338885621E2)); +#6709=CARTESIAN_POINT('',(-7.717741888751E1,1.472209853701E2, +-1.456411387194E2)); +#6710=CARTESIAN_POINT('',(-8.396247928609E1,1.554297742836E2, +-1.455929617268E2)); +#6711=CARTESIAN_POINT('',(-8.677545215918E1,1.605812282863E2, +-1.455375599012E2)); +#6712=CARTESIAN_POINT('',(-8.731873330795E1,1.616692895650E2, +-1.455252598046E2)); +#6713=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#6614,#6615,#6616,#6617,#6618,#6619, +#6620,#6621,#6622),(#6623,#6624,#6625,#6626,#6627,#6628,#6629,#6630,#6631),( +#6632,#6633,#6634,#6635,#6636,#6637,#6638,#6639,#6640),(#6641,#6642,#6643,#6644, +#6645,#6646,#6647,#6648,#6649),(#6650,#6651,#6652,#6653,#6654,#6655,#6656,#6657, +#6658),(#6659,#6660,#6661,#6662,#6663,#6664,#6665,#6666,#6667),(#6668,#6669, +#6670,#6671,#6672,#6673,#6674,#6675,#6676),(#6677,#6678,#6679,#6680,#6681,#6682, +#6683,#6684,#6685),(#6686,#6687,#6688,#6689,#6690,#6691,#6692,#6693,#6694),( +#6695,#6696,#6697,#6698,#6699,#6700,#6701,#6702,#6703),(#6704,#6705,#6706,#6707, +#6708,#6709,#6710,#6711,#6712)),.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1,1,1,1,1,1,4), +(4,1,1,1,1,1,4),(-2.999765769981E-1,-5.546576851006E-3,1.506023159307E-1, +3.067512087124E-1,4.629001014941E-1,6.190489942758E-1,7.751978870575E-1, +9.313467798393E-1,1.019507901446E0),(-3.581701146903E-3,6.25E-2,1.25E-1, +1.875E-1,2.5E-1,3.125E-1,3.288256121986E-1),.UNSPECIFIED.); +#6715=ORIENTED_EDGE('',*,*,#6714,.T.); +#6717=ORIENTED_EDGE('',*,*,#6716,.F.); +#6719=ORIENTED_EDGE('',*,*,#6718,.T.); +#6720=ORIENTED_EDGE('',*,*,#5502,.F.); +#6721=ORIENTED_EDGE('',*,*,#6605,.F.); +#6722=ORIENTED_EDGE('',*,*,#4856,.F.); +#6723=EDGE_LOOP('',(#6715,#6717,#6719,#6720,#6721,#6722)); +#6724=FACE_OUTER_BOUND('',#6723,.F.); +#6726=CARTESIAN_POINT('',(-5.443718882636E1,1.624418115339E2,-1.9E2)); +#6727=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6728=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6729=AXIS2_PLACEMENT_3D('',#6726,#6727,#6728); +#6730=PLANE('',#6729); +#6732=ORIENTED_EDGE('',*,*,#6731,.F.); +#6733=ORIENTED_EDGE('',*,*,#6714,.F.); +#6734=ORIENTED_EDGE('',*,*,#4854,.F.); +#6735=EDGE_LOOP('',(#6732,#6733,#6734)); +#6736=FACE_OUTER_BOUND('',#6735,.F.); +#6738=CARTESIAN_POINT('',(-8.5E1,2.95E2,-1.9E2)); +#6739=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6740=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6741=AXIS2_PLACEMENT_3D('',#6738,#6739,#6740); +#6742=PLANE('',#6741); +#6743=ORIENTED_EDGE('',*,*,#6731,.T.); +#6744=ORIENTED_EDGE('',*,*,#4852,.F.); +#6746=ORIENTED_EDGE('',*,*,#6745,.F.); +#6748=ORIENTED_EDGE('',*,*,#6747,.T.); +#6749=ORIENTED_EDGE('',*,*,#5460,.T.); +#6751=ORIENTED_EDGE('',*,*,#6750,.T.); +#6752=ORIENTED_EDGE('',*,*,#6716,.T.); +#6753=EDGE_LOOP('',(#6743,#6744,#6746,#6748,#6749,#6751,#6752)); +#6754=FACE_OUTER_BOUND('',#6753,.F.); +#6756=CARTESIAN_POINT('',(-8.25E1,3.75E1,-1.9E2)); +#6757=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6758=DIRECTION('',(0.E0,-1.E0,0.E0)); +#6759=AXIS2_PLACEMENT_3D('',#6756,#6757,#6758); +#6760=CYLINDRICAL_SURFACE('',#6759,1.75E1); +#6761=ORIENTED_EDGE('',*,*,#4850,.F.); +#6762=ORIENTED_EDGE('',*,*,#6152,.T.); +#6764=ORIENTED_EDGE('',*,*,#6763,.F.); +#6765=ORIENTED_EDGE('',*,*,#6745,.T.); +#6766=EDGE_LOOP('',(#6761,#6762,#6764,#6765)); +#6767=FACE_OUTER_BOUND('',#6766,.F.); +#6769=CARTESIAN_POINT('',(-7.415982029507E1,-6.5E1,0.E0)); +#6770=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6771=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6772=AXIS2_PLACEMENT_3D('',#6769,#6770,#6771); +#6773=CONICAL_SURFACE('',#6772,1.856499021926E2,3.5E0); +#6774=ORIENTED_EDGE('',*,*,#6763,.T.); +#6775=ORIENTED_EDGE('',*,*,#6150,.T.); +#6776=ORIENTED_EDGE('',*,*,#5395,.F.); +#6777=ORIENTED_EDGE('',*,*,#5431,.F.); +#6778=ORIENTED_EDGE('',*,*,#5444,.F.); +#6779=ORIENTED_EDGE('',*,*,#5462,.T.); +#6780=ORIENTED_EDGE('',*,*,#6747,.F.); +#6781=EDGE_LOOP('',(#6774,#6775,#6776,#6777,#6778,#6779,#6780)); +#6782=FACE_OUTER_BOUND('',#6781,.F.); +#6784=CARTESIAN_POINT('',(-8.785007705980E1,1.557207977567E2, +-5.175115938447E1)); +#6785=CARTESIAN_POINT('',(-8.694970501804E1,1.564704842147E2, +-8.382045449212E1)); +#6786=CARTESIAN_POINT('',(-8.604933297628E1,1.572201706726E2, +-1.158897495998E2)); +#6787=CARTESIAN_POINT('',(-8.514896093452E1,1.579698571305E2, +-1.479590447074E2)); +#6788=CARTESIAN_POINT('',(-8.777960171657E1,1.556090621683E2, +-5.175112949180E1)); +#6789=CARTESIAN_POINT('',(-8.688047421271E1,1.563598239487E2, +-8.382042785742E1)); +#6790=CARTESIAN_POINT('',(-8.598134670884E1,1.571105857290E2, +-1.158897262231E2)); +#6791=CARTESIAN_POINT('',(-8.508221920498E1,1.578613475094E2, +-1.479590245887E2)); +#6792=CARTESIAN_POINT('',(-8.676086363385E1,1.540079807628E2, +-5.175069568215E1)); +#6793=CARTESIAN_POINT('',(-8.587957555047E1,1.547740570470E2, +-8.382004095315E1)); +#6794=CARTESIAN_POINT('',(-8.499828746709E1,1.555401333311E2, +-1.158893862241E2)); +#6795=CARTESIAN_POINT('',(-8.411699938371E1,1.563062096153E2, +-1.479587314951E2)); +#6796=CARTESIAN_POINT('',(-8.372081963433E1,1.497848784978E2, +-5.174931770422E1)); +#6797=CARTESIAN_POINT('',(-8.288675600156E1,1.505878377248E2, +-8.381879259719E1)); +#6798=CARTESIAN_POINT('',(-8.205269236880E1,1.513907969518E2, +-1.158882674902E2)); +#6799=CARTESIAN_POINT('',(-8.121862873604E1,1.521937561788E2, +-1.479577423831E2)); +#6800=CARTESIAN_POINT('',(-7.914266936880E1,1.452238925713E2, +-5.174624043165E1)); +#6801=CARTESIAN_POINT('',(-7.835683691194E1,1.460638349289E2, +-8.381574761540E1)); +#6802=CARTESIAN_POINT('',(-7.757100445507E1,1.469037772865E2, +-1.158852547992E2)); +#6803=CARTESIAN_POINT('',(-7.678517199821E1,1.477437196441E2, +-1.479547619829E2)); +#6804=CARTESIAN_POINT('',(-7.535056371627E1,1.424167041781E2, +-5.174366601840E1)); +#6805=CARTESIAN_POINT('',(-7.460153275268E1,1.432884606568E2, +-8.381311135075E1)); +#6806=CARTESIAN_POINT('',(-7.385250178910E1,1.441602171356E2, +-1.158825566831E2)); +#6807=CARTESIAN_POINT('',(-7.310347082551E1,1.450319736144E2, +-1.479520020154E2)); +#6808=CARTESIAN_POINT('',(-7.408572329342E1,1.415679757577E2, +-5.174283664538E1)); +#6809=CARTESIAN_POINT('',(-7.334900467799E1,1.424503832283E2, +-8.381225665718E1)); +#6810=CARTESIAN_POINT('',(-7.261228606256E1,1.433327906990E2, +-1.158816766690E2)); +#6811=CARTESIAN_POINT('',(-7.187556744713E1,1.442151981697E2, +-1.479510966808E2)); +#6812=CARTESIAN_POINT('',(-7.397591377195E1,1.414949269027E2, +-5.174276487889E1)); +#6813=CARTESIAN_POINT('',(-7.324026459742E1,1.423782592939E2, +-8.381218266101E1)); +#6814=CARTESIAN_POINT('',(-7.250461542290E1,1.432615916851E2, +-1.158816004431E2)); +#6815=CARTESIAN_POINT('',(-7.176896624837E1,1.441449240763E2, +-1.479510182252E2)); +#6816=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#6784,#6785,#6786,#6787),(#6788, +#6789,#6790,#6791),(#6792,#6793,#6794,#6795),(#6796,#6797,#6798,#6799),(#6800, +#6801,#6802,#6803),(#6804,#6805,#6806,#6807),(#6808,#6809,#6810,#6811),(#6812, +#6813,#6814,#6815)),.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1,1,1,4),(4,4),( +-2.017514296756E-2,0.E0,2.697234915241E-1,7.769142972143E-1,1.E0, +1.021158598787E0),(-9.803676848848E-3,1.009802999515E0),.UNSPECIFIED.); +#6817=ORIENTED_EDGE('',*,*,#6718,.F.); +#6818=ORIENTED_EDGE('',*,*,#6750,.F.); +#6819=ORIENTED_EDGE('',*,*,#5458,.F.); +#6820=ORIENTED_EDGE('',*,*,#5478,.T.); +#6821=ORIENTED_EDGE('',*,*,#5504,.T.); +#6822=EDGE_LOOP('',(#6817,#6818,#6819,#6820,#6821)); +#6823=FACE_OUTER_BOUND('',#6822,.F.); +#6825=CARTESIAN_POINT('',(4.324446085028E1,2.001260949021E2,-6.703089800685E1)); +#6826=CARTESIAN_POINT('',(4.225526651646E1,2.001143868492E2,-9.391032855851E1)); +#6827=CARTESIAN_POINT('',(4.126607218263E1,2.001026787964E2,-1.207897591102E2)); +#6828=CARTESIAN_POINT('',(4.027687784881E1,2.000909707435E2,-1.476691896618E2)); +#6829=CARTESIAN_POINT('',(4.324522852545E1,1.999107695065E2,-6.703090220738E1)); +#6830=CARTESIAN_POINT('',(4.225600152596E1,1.999029630668E2,-9.391033305499E1)); +#6831=CARTESIAN_POINT('',(4.126677452648E1,1.998951566271E2,-1.207897639026E2)); +#6832=CARTESIAN_POINT('',(4.027754752700E1,1.998873501874E2,-1.476691947502E2)); +#6833=CARTESIAN_POINT('',(4.325804193071E1,1.928258622639E2,-6.703097003762E1)); +#6834=CARTESIAN_POINT('',(4.226827613320E1,1.929464187418E2,-9.391040564686E1)); +#6835=CARTESIAN_POINT('',(4.127851033570E1,1.930669752197E2,-1.207898412561E2)); +#6836=CARTESIAN_POINT('',(4.028874453820E1,1.931875316975E2,-1.476692768653E2)); +#6837=CARTESIAN_POINT('',(4.245325222008E1,1.786941935113E2,-6.702670970257E1)); +#6838=CARTESIAN_POINT('',(4.149732747365E1,1.790688964272E2,-9.390584624819E1)); +#6839=CARTESIAN_POINT('',(4.054140272723E1,1.794435993431E2,-1.207849827938E2)); +#6840=CARTESIAN_POINT('',(3.958547798080E1,1.798183022590E2,-1.476641193394E2)); +#6841=CARTESIAN_POINT('',(3.761533270667E1,1.624026530322E2,-6.702326032561E1)); +#6842=CARTESIAN_POINT('',(3.680037388146E1,1.629854076018E2,-9.390232989228E1)); +#6843=CARTESIAN_POINT('',(3.598541505625E1,1.635681621715E2,-1.207813994589E2)); +#6844=CARTESIAN_POINT('',(3.517045623105E1,1.641509167412E2,-1.476604690256E2)); +#6845=CARTESIAN_POINT('',(3.041203258892E1,1.512453247692E2,-6.702076817725E1)); +#6846=CARTESIAN_POINT('',(2.970358175216E1,1.519112422421E2,-9.390018755229E1)); +#6847=CARTESIAN_POINT('',(2.899513091540E1,1.525771597150E2,-1.207796069273E2)); +#6848=CARTESIAN_POINT('',(2.828668007864E1,1.532430771878E2,-1.476590263023E2)); +#6849=CARTESIAN_POINT('',(2.477573683212E1,1.456238243539E2,-6.701697638906E1)); +#6850=CARTESIAN_POINT('',(2.411711192088E1,1.463278404805E2,-9.389643018261E1)); +#6851=CARTESIAN_POINT('',(2.345848700964E1,1.470318566072E2,-1.207758839762E2)); +#6852=CARTESIAN_POINT('',(2.279986209840E1,1.477358727338E2,-1.476553377697E2)); +#6853=CARTESIAN_POINT('',(2.093595752135E1,1.427835135196E2,-6.701432919771E1)); +#6854=CARTESIAN_POINT('',(2.030859206011E1,1.435145834485E2,-9.389372961647E1)); +#6855=CARTESIAN_POINT('',(1.968122659888E1,1.442456533774E2,-1.207731300352E2)); +#6856=CARTESIAN_POINT('',(1.905386113765E1,1.449767233063E2,-1.476525304540E2)); +#6857=CARTESIAN_POINT('',(1.960801056364E1,1.418984187792E2,-6.701344396209E1)); +#6858=CARTESIAN_POINT('',(1.899149394521E1,1.426388905976E2,-9.389282148431E1)); +#6859=CARTESIAN_POINT('',(1.837497732677E1,1.433793624160E2,-1.207721990065E2)); +#6860=CARTESIAN_POINT('',(1.775846070833E1,1.441198342344E2,-1.476515765288E2)); +#6861=CARTESIAN_POINT('',(1.943083662558E1,1.417819785158E2,-6.701332647629E1)); +#6862=CARTESIAN_POINT('',(1.881576899548E1,1.425237053179E2,-9.389270087763E1)); +#6863=CARTESIAN_POINT('',(1.820070136539E1,1.432654321199E2,-1.207720752790E2)); +#6864=CARTESIAN_POINT('',(1.758563373530E1,1.440071589220E2,-1.476514496803E2)); +#6865=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#6825,#6826,#6827,#6828),(#6829, +#6830,#6831,#6832),(#6833,#6834,#6835,#6836),(#6837,#6838,#6839,#6840),(#6841, +#6842,#6843,#6844),(#6845,#6846,#6847,#6848),(#6849,#6850,#6851,#6852),(#6853, +#6854,#6855,#6856),(#6857,#6858,#6859,#6860),(#6861,#6862,#6863,#6864)), +.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1,1,1,1,1,4),(4,4),(-9.738945845285E-3,0.E0, +3.105663606468E-1,6.211327051207E-1,7.764158773575E-1,9.316990495947E-1,1.E0, +1.010473816954E0),(-1.004066453960E-2,1.009803771734E0),.UNSPECIFIED.); +#6867=ORIENTED_EDGE('',*,*,#6866,.F.); +#6869=ORIENTED_EDGE('',*,*,#6868,.F.); +#6871=ORIENTED_EDGE('',*,*,#6870,.F.); +#6873=ORIENTED_EDGE('',*,*,#6872,.F.); +#6874=ORIENTED_EDGE('',*,*,#6608,.T.); +#6875=ORIENTED_EDGE('',*,*,#5498,.F.); +#6877=ORIENTED_EDGE('',*,*,#6876,.F.); +#6878=EDGE_LOOP('',(#6867,#6869,#6871,#6873,#6874,#6875,#6877)); +#6879=FACE_OUTER_BOUND('',#6878,.F.); +#6881=CARTESIAN_POINT('',(0.E0,0.E0,-1.02E2)); +#6882=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6883=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6884=AXIS2_PLACEMENT_3D('',#6881,#6882,#6883); +#6885=PLANE('',#6884); +#6886=ORIENTED_EDGE('',*,*,#6252,.F.); +#6888=ORIENTED_EDGE('',*,*,#6887,.T.); +#6889=ORIENTED_EDGE('',*,*,#6866,.T.); +#6891=ORIENTED_EDGE('',*,*,#6890,.F.); +#6893=ORIENTED_EDGE('',*,*,#6892,.T.); +#6894=EDGE_LOOP('',(#6886,#6888,#6889,#6891,#6893)); +#6895=FACE_OUTER_BOUND('',#6894,.F.); +#6897=ORIENTED_EDGE('',*,*,#6896,.T.); +#6899=ORIENTED_EDGE('',*,*,#6898,.T.); +#6900=EDGE_LOOP('',(#6897,#6899)); +#6901=FACE_BOUND('',#6900,.F.); +#6903=CARTESIAN_POINT('',(6.E1,1.4519E2,-1.02E2)); +#6904=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6905=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6906=AXIS2_PLACEMENT_3D('',#6903,#6904,#6905); +#6907=CYLINDRICAL_SURFACE('',#6906,3.8E1); +#6908=ORIENTED_EDGE('',*,*,#6250,.T.); +#6909=ORIENTED_EDGE('',*,*,#6299,.F.); +#6911=ORIENTED_EDGE('',*,*,#6910,.F.); +#6913=ORIENTED_EDGE('',*,*,#6912,.F.); +#6914=ORIENTED_EDGE('',*,*,#6868,.T.); +#6915=ORIENTED_EDGE('',*,*,#6887,.F.); +#6916=EDGE_LOOP('',(#6908,#6909,#6911,#6913,#6914,#6915)); +#6917=FACE_OUTER_BOUND('',#6916,.F.); +#6919=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-5.36E1)); +#6920=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6921=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6922=AXIS2_PLACEMENT_3D('',#6919,#6920,#6921); +#6923=CYLINDRICAL_SURFACE('',#6922,8.2E1); +#6924=ORIENTED_EDGE('',*,*,#6910,.T.); +#6925=ORIENTED_EDGE('',*,*,#6297,.F.); +#6926=ORIENTED_EDGE('',*,*,#6295,.F.); +#6927=ORIENTED_EDGE('',*,*,#6374,.T.); +#6929=ORIENTED_EDGE('',*,*,#6928,.F.); +#6931=ORIENTED_EDGE('',*,*,#6930,.F.); +#6932=EDGE_LOOP('',(#6924,#6925,#6926,#6927,#6929,#6931)); +#6933=FACE_OUTER_BOUND('',#6932,.F.); +#6935=CARTESIAN_POINT('',(0.E0,0.E0,-6.86E1)); +#6936=DIRECTION('',(0.E0,0.E0,-1.E0)); +#6937=DIRECTION('',(-1.E0,0.E0,0.E0)); +#6938=AXIS2_PLACEMENT_3D('',#6935,#6936,#6937); +#6939=PLANE('',#6938); +#6940=ORIENTED_EDGE('',*,*,#6912,.T.); +#6941=ORIENTED_EDGE('',*,*,#6930,.T.); +#6942=ORIENTED_EDGE('',*,*,#6928,.T.); +#6943=ORIENTED_EDGE('',*,*,#6372,.F.); +#6945=ORIENTED_EDGE('',*,*,#6944,.T.); +#6946=ORIENTED_EDGE('',*,*,#6870,.T.); +#6947=EDGE_LOOP('',(#6940,#6941,#6942,#6943,#6945,#6946)); +#6948=FACE_OUTER_BOUND('',#6947,.F.); +#6950=CARTESIAN_POINT('',(2.972416924774E1,2.479837846882E2,-6.703989739048E1)); +#6951=CARTESIAN_POINT('',(2.901736630117E1,2.473173731933E2,-9.389192163618E1)); +#6952=CARTESIAN_POINT('',(2.831056335459E1,2.466509616983E2,-1.207439458819E2)); +#6953=CARTESIAN_POINT('',(2.760376040802E1,2.459845502034E2,-1.475959701276E2)); +#6954=CARTESIAN_POINT('',(2.983049499735E1,2.478558379432E2,-6.703995554972E1)); +#6955=CARTESIAN_POINT('',(2.912251461357E1,2.471903319403E2,-9.389197738807E1)); +#6956=CARTESIAN_POINT('',(2.841453422979E1,2.465248259374E2,-1.207439992264E2)); +#6957=CARTESIAN_POINT('',(2.770655384601E1,2.458593199344E2,-1.475960210648E2)); +#6958=CARTESIAN_POINT('',(3.130416109425E1,2.460636058393E2,-6.704075607128E1)); +#6959=CARTESIAN_POINT('',(3.057970259558E1,2.454108079444E2,-9.389274356034E1)); +#6960=CARTESIAN_POINT('',(2.985524409691E1,2.447580100495E2,-1.207447310494E2)); +#6961=CARTESIAN_POINT('',(2.913078559824E1,2.441052121545E2,-1.475967185385E2)); +#6962=CARTESIAN_POINT('',(3.542689256272E1,2.402413375920E2,-6.704276478480E1)); +#6963=CARTESIAN_POINT('',(3.464942220536E1,2.396312605302E2,-9.389461681997E1)); +#6964=CARTESIAN_POINT('',(3.387195184799E1,2.390211834685E2,-1.207464688551E2)); +#6965=CARTESIAN_POINT('',(3.309448149063E1,2.384111064068E2,-1.475983208903E2)); +#6966=CARTESIAN_POINT('',(4.009513297855E1,2.292357874458E2,-6.704422235295E1)); +#6967=CARTESIAN_POINT('',(3.921255573575E1,2.287391620694E2,-9.389587768837E1)); +#6968=CARTESIAN_POINT('',(3.832997849296E1,2.282425366930E2,-1.207475330238E2)); +#6969=CARTESIAN_POINT('',(3.744740125017E1,2.277459113166E2,-1.475991883592E2)); +#6970=CARTESIAN_POINT('',(4.281809974080E1,2.145245801906E2,-6.704869132706E1)); +#6971=CARTESIAN_POINT('',(4.184687806632E1,2.142534935049E2,-9.390063901256E1)); +#6972=CARTESIAN_POINT('',(4.087565639184E1,2.139824068193E2,-1.207525866981E2)); +#6973=CARTESIAN_POINT('',(3.990443471736E1,2.137113201336E2,-1.476045343836E2)); +#6974=CARTESIAN_POINT('',(4.325213487634E1,2.043017448247E2,-6.705087846977E1)); +#6975=CARTESIAN_POINT('',(4.226360928426E1,2.042144710426E2,-9.390295375456E1)); +#6976=CARTESIAN_POINT('',(4.127508369218E1,2.041271972606E2,-1.207550290393E2)); +#6977=CARTESIAN_POINT('',(4.028655810010E1,2.040399234785E2,-1.476071043241E2)); +#6978=CARTESIAN_POINT('',(4.324463800121E1,1.991406117972E2,-6.705084069204E1)); +#6979=CARTESIAN_POINT('',(4.225641129117E1,1.991467511043E2,-9.390291377293E1)); +#6980=CARTESIAN_POINT('',(4.126818458114E1,1.991528904114E2,-1.207549868538E2)); +#6981=CARTESIAN_POINT('',(4.027995787111E1,1.991590297185E2,-1.476070599347E2)); +#6982=CARTESIAN_POINT('',(4.324415053916E1,1.989710545660E2,-6.705083817518E1)); +#6983=CARTESIAN_POINT('',(4.225594339324E1,1.989802631810E2,-9.390291110944E1)); +#6984=CARTESIAN_POINT('',(4.126773624731E1,1.989894717960E2,-1.207549840437E2)); +#6985=CARTESIAN_POINT('',(4.027952910138E1,1.989986804109E2,-1.476070569780E2)); +#6986=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#6950,#6951,#6952,#6953),(#6954, +#6955,#6956,#6957),(#6958,#6959,#6960,#6961),(#6962,#6963,#6964,#6965),(#6966, +#6967,#6968,#6969),(#6970,#6971,#6972,#6973),(#6974,#6975,#6976,#6977),(#6978, +#6979,#6980,#6981),(#6982,#6983,#6984,#6985)),.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1, +1,1,1,4),(4,4),(-1.014184039725E-2,0.E0,1.312411522663E-1,4.208274348444E-1, +7.104137174224E-1,1.E0,1.009839396159E0),(-9.803794067370E-3,1.009797420157E0), +.UNSPECIFIED.); +#6987=ORIENTED_EDGE('',*,*,#6370,.F.); +#6988=ORIENTED_EDGE('',*,*,#6477,.T.); +#6989=ORIENTED_EDGE('',*,*,#6872,.T.); +#6990=ORIENTED_EDGE('',*,*,#6944,.F.); +#6991=EDGE_LOOP('',(#6987,#6988,#6989,#6990)); +#6992=FACE_OUTER_BOUND('',#6991,.F.); +#6994=CARTESIAN_POINT('',(2.298715777458E1,1.385798492198E2,-1.588326542246E2)); +#6995=DIRECTION('',(9.996573249756E-1,0.E0,-2.617694830787E-2)); +#6996=DIRECTION('',(2.617694830787E-2,0.E0,9.996573249756E-1)); +#6997=AXIS2_PLACEMENT_3D('',#6994,#6995,#6996); +#6998=PLANE('',#6997); +#6999=ORIENTED_EDGE('',*,*,#6890,.T.); +#7000=ORIENTED_EDGE('',*,*,#6876,.T.); +#7001=ORIENTED_EDGE('',*,*,#5496,.F.); +#7003=ORIENTED_EDGE('',*,*,#7002,.F.); +#7005=ORIENTED_EDGE('',*,*,#7004,.T.); +#7007=ORIENTED_EDGE('',*,*,#7006,.F.); +#7008=EDGE_LOOP('',(#6999,#7000,#7001,#7003,#7005,#7007)); +#7009=FACE_OUTER_BOUND('',#7008,.F.); +#7011=CARTESIAN_POINT('',(4.555367888040E1,1.227286290940E2,-1.751513120379E2)); +#7012=DIRECTION('',(0.E0,-9.999619230642E-1,-8.726535498375E-3)); +#7013=DIRECTION('',(0.E0,-8.726535498375E-3,9.999619230642E-1)); +#7014=AXIS2_PLACEMENT_3D('',#7011,#7012,#7013); +#7015=PLANE('',#7014); +#7017=ORIENTED_EDGE('',*,*,#7016,.T.); +#7019=ORIENTED_EDGE('',*,*,#7018,.F.); +#7021=ORIENTED_EDGE('',*,*,#7020,.F.); +#7023=ORIENTED_EDGE('',*,*,#7022,.T.); +#7024=ORIENTED_EDGE('',*,*,#7002,.T.); +#7025=ORIENTED_EDGE('',*,*,#5494,.T.); +#7027=ORIENTED_EDGE('',*,*,#7026,.F.); +#7029=ORIENTED_EDGE('',*,*,#7028,.F.); +#7030=EDGE_LOOP('',(#7017,#7019,#7021,#7023,#7024,#7025,#7027,#7029)); +#7031=FACE_OUTER_BOUND('',#7030,.F.); +#7033=CARTESIAN_POINT('',(6.517137032771E0,1.223074831941E2,-1.268927718614E2)); +#7034=CARTESIAN_POINT('',(6.509863834227E0,1.223085740144E2,-1.270177674915E2)); +#7035=CARTESIAN_POINT('',(6.469537938688E0,1.223145914429E2,-1.277072965039E2)); +#7036=CARTESIAN_POINT('',(6.390620050824E0,1.223260508541E2,-1.290204149597E2)); +#7037=CARTESIAN_POINT('',(6.020844627693E0,1.223774626309E2,-1.349116210565E2)); +#7038=CARTESIAN_POINT('',(5.618275828953E0,1.224248019132E2,-1.403361655230E2)); +#7039=CARTESIAN_POINT('',(5.233228191526E0,1.224665472612E2,-1.451197086001E2)); +#7040=CARTESIAN_POINT('',(5.223170252468E0,1.224676355187E2,-1.452444105645E2)); +#7042=DIRECTION('',(0.E0,-9.999619230642E-1,-8.726535498375E-3)); +#7043=VECTOR('',#7042,1.E0); +#7044=SURFACE_OF_LINEAR_EXTRUSION('',#7041,#7043); +#7045=ORIENTED_EDGE('',*,*,#7016,.F.); +#7047=ORIENTED_EDGE('',*,*,#7046,.T.); +#7048=ORIENTED_EDGE('',*,*,#6220,.T.); +#7050=ORIENTED_EDGE('',*,*,#7049,.T.); +#7051=EDGE_LOOP('',(#7045,#7047,#7048,#7050)); +#7052=FACE_OUTER_BOUND('',#7051,.F.); +#7054=CARTESIAN_POINT('',(-1.199632111960E1,1.224643691008E2, +-1.448701161452E2)); +#7055=DIRECTION('',(0.E0,8.726535498375E-3,-9.999619230642E-1)); +#7056=DIRECTION('',(1.E0,0.E0,0.E0)); +#7057=AXIS2_PLACEMENT_3D('',#7054,#7055,#7056); +#7058=PLANE('',#7057); +#7059=ORIENTED_EDGE('',*,*,#6180,.T.); +#7060=ORIENTED_EDGE('',*,*,#6198,.F.); +#7061=ORIENTED_EDGE('',*,*,#6222,.F.); +#7062=ORIENTED_EDGE('',*,*,#7046,.F.); +#7063=ORIENTED_EDGE('',*,*,#7028,.T.); +#7065=ORIENTED_EDGE('',*,*,#7064,.F.); +#7066=ORIENTED_EDGE('',*,*,#6141,.F.); +#7067=EDGE_LOOP('',(#7059,#7060,#7061,#7062,#7063,#7065,#7066)); +#7068=FACE_OUTER_BOUND('',#7067,.F.); +#7070=CARTESIAN_POINT('',(-1.199632111960E1,2.5E1,-6.E1)); +#7071=DIRECTION('',(1.E0,0.E0,0.E0)); +#7072=DIRECTION('',(0.E0,1.E0,0.E0)); +#7073=AXIS2_PLACEMENT_3D('',#7070,#7071,#7072); +#7074=PLANE('',#7073); +#7075=ORIENTED_EDGE('',*,*,#6143,.F.); +#7076=ORIENTED_EDGE('',*,*,#7064,.T.); +#7077=ORIENTED_EDGE('',*,*,#7026,.T.); +#7078=ORIENTED_EDGE('',*,*,#5492,.F.); +#7080=ORIENTED_EDGE('',*,*,#7079,.F.); +#7082=ORIENTED_EDGE('',*,*,#7081,.T.); +#7084=ORIENTED_EDGE('',*,*,#7083,.T.); +#7086=ORIENTED_EDGE('',*,*,#7085,.T.); +#7088=ORIENTED_EDGE('',*,*,#7087,.F.); +#7090=ORIENTED_EDGE('',*,*,#7089,.T.); +#7092=ORIENTED_EDGE('',*,*,#7091,.T.); +#7093=ORIENTED_EDGE('',*,*,#6086,.F.); +#7094=ORIENTED_EDGE('',*,*,#6109,.T.); +#7095=ORIENTED_EDGE('',*,*,#6129,.T.); +#7096=EDGE_LOOP('',(#7075,#7076,#7077,#7078,#7080,#7082,#7084,#7086,#7088,#7090, +#7092,#7093,#7094,#7095)); +#7097=FACE_OUTER_BOUND('',#7096,.F.); +#7099=CARTESIAN_POINT('',(-1.699632111960E1,1.33E2,6.763969153196E2)); +#7100=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7101=DIRECTION('',(0.E0,1.E0,0.E0)); +#7102=AXIS2_PLACEMENT_3D('',#7099,#7100,#7101); +#7103=CYLINDRICAL_SURFACE('',#7102,5.E0); +#7104=ORIENTED_EDGE('',*,*,#7079,.T.); +#7105=ORIENTED_EDGE('',*,*,#5490,.F.); +#7106=ORIENTED_EDGE('',*,*,#5523,.T.); +#7107=ORIENTED_EDGE('',*,*,#5551,.F.); +#7108=EDGE_LOOP('',(#7104,#7105,#7106,#7107)); +#7109=FACE_OUTER_BOUND('',#7108,.F.); +#7111=CARTESIAN_POINT('',(-6.996321119596E0,1.372224348765E2, +-6.900468170986E2)); +#7112=DIRECTION('',(0.E0,-8.726535498374E-3,9.999619230642E-1)); +#7113=DIRECTION('',(0.E0,9.999619230642E-1,8.726535498374E-3)); +#7114=AXIS2_PLACEMENT_3D('',#7111,#7112,#7113); +#7115=CYLINDRICAL_SURFACE('',#7114,5.E0); +#7117=ORIENTED_EDGE('',*,*,#7116,.T.); +#7119=ORIENTED_EDGE('',*,*,#7118,.F.); +#7120=ORIENTED_EDGE('',*,*,#7083,.F.); +#7121=ORIENTED_EDGE('',*,*,#7081,.F.); +#7122=ORIENTED_EDGE('',*,*,#5549,.F.); +#7123=ORIENTED_EDGE('',*,*,#5584,.T.); +#7125=ORIENTED_EDGE('',*,*,#7124,.F.); +#7126=EDGE_LOOP('',(#7117,#7119,#7120,#7121,#7122,#7123,#7125)); +#7127=FACE_OUTER_BOUND('',#7126,.F.); +#7129=CARTESIAN_POINT('',(-6.139435803987E0,8.734510100495E1, +-9.876080982141E1)); +#7130=DIRECTION('',(-9.999999982571E-1,-5.904089589353E-5,0.E0)); +#7131=DIRECTION('',(-5.904089576757E-5,9.999999961236E-1,6.532159003521E-5)); +#7132=AXIS2_PLACEMENT_3D('',#7129,#7130,#7131); +#7133=CONICAL_SURFACE('',#7132,3.761749676807E1,8.315722658737E1); +#7135=ORIENTED_EDGE('',*,*,#7134,.T.); +#7137=ORIENTED_EDGE('',*,*,#7136,.T.); +#7139=ORIENTED_EDGE('',*,*,#7138,.T.); +#7140=ORIENTED_EDGE('',*,*,#7116,.F.); +#7141=EDGE_LOOP('',(#7135,#7137,#7139,#7140)); +#7142=FACE_OUTER_BOUND('',#7141,.F.); +#7144=CARTESIAN_POINT('',(-2.699973104533E1,1.370471928183E2, +-9.700099879006E1)); +#7145=DIRECTION('',(-2.508301967800E-12,-9.999619230642E-1,-8.726535497571E-3)); +#7146=DIRECTION('',(5.432110015939E-1,7.326766191505E-3,-8.395642478361E-1)); +#7147=AXIS2_PLACEMENT_3D('',#7144,#7145,#7146); +#7148=CYLINDRICAL_SURFACE('',#7147,2.949960780428E1); +#7150=ORIENTED_EDGE('',*,*,#7149,.T.); +#7151=ORIENTED_EDGE('',*,*,#7134,.F.); +#7152=ORIENTED_EDGE('',*,*,#7124,.T.); +#7153=ORIENTED_EDGE('',*,*,#5582,.F.); +#7155=ORIENTED_EDGE('',*,*,#7154,.T.); +#7156=ORIENTED_EDGE('',*,*,#5690,.F.); +#7158=ORIENTED_EDGE('',*,*,#7157,.T.); +#7160=ORIENTED_EDGE('',*,*,#7159,.F.); +#7162=ORIENTED_EDGE('',*,*,#7161,.T.); +#7163=EDGE_LOOP('',(#7150,#7151,#7152,#7153,#7155,#7156,#7158,#7160,#7162)); +#7164=FACE_OUTER_BOUND('',#7163,.F.); +#7166=CARTESIAN_POINT('',(-1.199632111960E1,6.515498735396E1, +-1.297397892668E2)); +#7167=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7168=DIRECTION('',(0.E0,0.E0,1.E0)); +#7169=AXIS2_PLACEMENT_3D('',#7166,#7167,#7168); +#7170=PLANE('',#7169); +#7171=ORIENTED_EDGE('',*,*,#7087,.T.); +#7173=ORIENTED_EDGE('',*,*,#7172,.F.); +#7174=ORIENTED_EDGE('',*,*,#7136,.F.); +#7175=ORIENTED_EDGE('',*,*,#7149,.F.); +#7177=ORIENTED_EDGE('',*,*,#7176,.T.); +#7178=EDGE_LOOP('',(#7171,#7173,#7174,#7175,#7177)); +#7179=FACE_OUTER_BOUND('',#7178,.F.); +#7181=CARTESIAN_POINT('',(-1.199632111960E1,1.098547678675E2, +-1.297397892668E2)); +#7182=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7183=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7184=AXIS2_PLACEMENT_3D('',#7181,#7182,#7183); +#7185=PLANE('',#7184); +#7186=ORIENTED_EDGE('',*,*,#7085,.F.); +#7187=ORIENTED_EDGE('',*,*,#7118,.T.); +#7188=ORIENTED_EDGE('',*,*,#7138,.F.); +#7189=ORIENTED_EDGE('',*,*,#7172,.T.); +#7190=EDGE_LOOP('',(#7186,#7187,#7188,#7189)); +#7191=FACE_OUTER_BOUND('',#7190,.F.); +#7193=CARTESIAN_POINT('',(-2.699999999992E1,1.370471841019E2,-9.7E1)); +#7194=DIRECTION('',(0.E0,9.999619230642E-1,8.726535498375E-3)); +#7195=DIRECTION('',(-1.E0,0.E0,0.E0)); +#7196=AXIS2_PLACEMENT_3D('',#7193,#7194,#7195); +#7197=CYLINDRICAL_SURFACE('',#7196,2.950073545538E1); +#7198=ORIENTED_EDGE('',*,*,#7176,.F.); +#7199=ORIENTED_EDGE('',*,*,#7161,.F.); +#7201=ORIENTED_EDGE('',*,*,#7200,.F.); +#7202=ORIENTED_EDGE('',*,*,#7089,.F.); +#7203=EDGE_LOOP('',(#7198,#7199,#7201,#7202)); +#7204=FACE_OUTER_BOUND('',#7203,.F.); +#7206=CARTESIAN_POINT('',(0.E0,3.5E1,-1.9E2)); +#7207=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7208=DIRECTION('',(1.E0,0.E0,0.E0)); +#7209=AXIS2_PLACEMENT_3D('',#7206,#7207,#7208); +#7210=PLANE('',#7209); +#7212=ORIENTED_EDGE('',*,*,#7211,.F.); +#7213=ORIENTED_EDGE('',*,*,#6088,.T.); +#7214=ORIENTED_EDGE('',*,*,#7091,.F.); +#7215=ORIENTED_EDGE('',*,*,#7200,.T.); +#7216=ORIENTED_EDGE('',*,*,#7159,.T.); +#7218=ORIENTED_EDGE('',*,*,#7217,.F.); +#7219=ORIENTED_EDGE('',*,*,#5904,.F.); +#7220=EDGE_LOOP('',(#7212,#7213,#7214,#7215,#7216,#7218,#7219)); +#7221=FACE_OUTER_BOUND('',#7220,.F.); +#7223=CARTESIAN_POINT('',(-7.32018548E2,3.E1,-9.88E1)); +#7224=DIRECTION('',(1.E0,0.E0,0.E0)); +#7225=DIRECTION('',(0.E0,1.E0,0.E0)); +#7226=AXIS2_PLACEMENT_3D('',#7223,#7224,#7225); +#7227=CYLINDRICAL_SURFACE('',#7226,5.E0); +#7228=ORIENTED_EDGE('',*,*,#5902,.F.); +#7229=ORIENTED_EDGE('',*,*,#5962,.T.); +#7230=ORIENTED_EDGE('',*,*,#5986,.F.); +#7231=ORIENTED_EDGE('',*,*,#6090,.F.); +#7232=ORIENTED_EDGE('',*,*,#7211,.T.); +#7233=EDGE_LOOP('',(#7228,#7229,#7230,#7231,#7232)); +#7234=FACE_OUTER_BOUND('',#7233,.F.); +#7236=CARTESIAN_POINT('',(-1.069999999992E1,3.5E1,-1.041483448332E2)); +#7237=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7238=DIRECTION('',(0.E0,1.E0,0.E0)); +#7239=AXIS2_PLACEMENT_3D('',#7236,#7237,#7238); +#7240=PLANE('',#7239); +#7241=ORIENTED_EDGE('',*,*,#7157,.F.); +#7242=ORIENTED_EDGE('',*,*,#5688,.F.); +#7243=ORIENTED_EDGE('',*,*,#5716,.T.); +#7244=ORIENTED_EDGE('',*,*,#5906,.T.); +#7245=ORIENTED_EDGE('',*,*,#7217,.T.); +#7246=EDGE_LOOP('',(#7241,#7242,#7243,#7244,#7245)); +#7247=FACE_OUTER_BOUND('',#7246,.F.); +#7249=CARTESIAN_POINT('',(2.500000000076E0,1.364950652563E2,-3.373344677042E1)); +#7250=DIRECTION('',(1.E0,0.E0,0.E0)); +#7251=DIRECTION('',(0.E0,8.726535498375E-3,-9.999619230642E-1)); +#7252=AXIS2_PLACEMENT_3D('',#7249,#7250,#7251); +#7253=PLANE('',#7252); +#7254=ORIENTED_EDGE('',*,*,#5647,.T.); +#7255=ORIENTED_EDGE('',*,*,#5665,.T.); +#7256=ORIENTED_EDGE('',*,*,#5692,.T.); +#7257=ORIENTED_EDGE('',*,*,#7154,.F.); +#7258=ORIENTED_EDGE('',*,*,#5580,.T.); +#7259=EDGE_LOOP('',(#7254,#7255,#7256,#7257,#7258)); +#7260=FACE_OUTER_BOUND('',#7259,.F.); +#7262=CARTESIAN_POINT('',(-2.699999999992E1,3.5E1,-9.7E1)); +#7263=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7264=DIRECTION('',(1.E0,0.E0,0.E0)); +#7265=AXIS2_PLACEMENT_3D('',#7262,#7263,#7264); +#7266=CYLINDRICAL_SURFACE('',#7265,4.55E1); +#7267=ORIENTED_EDGE('',*,*,#7049,.F.); +#7268=ORIENTED_EDGE('',*,*,#6218,.T.); +#7270=ORIENTED_EDGE('',*,*,#7269,.T.); +#7271=ORIENTED_EDGE('',*,*,#7018,.T.); +#7272=EDGE_LOOP('',(#7267,#7268,#7270,#7271)); +#7273=FACE_OUTER_BOUND('',#7272,.F.); +#7275=CARTESIAN_POINT('',(1.850000000008E1,3.5E1,-9.7E1)); +#7276=DIRECTION('',(1.E0,0.E0,0.E0)); +#7277=DIRECTION('',(0.E0,0.E0,1.E0)); +#7278=AXIS2_PLACEMENT_3D('',#7275,#7276,#7277); +#7279=PLANE('',#7278); +#7280=ORIENTED_EDGE('',*,*,#7269,.F.); +#7281=ORIENTED_EDGE('',*,*,#6216,.T.); +#7283=ORIENTED_EDGE('',*,*,#7282,.T.); +#7284=ORIENTED_EDGE('',*,*,#7020,.T.); +#7285=EDGE_LOOP('',(#7280,#7281,#7283,#7284)); +#7286=FACE_OUTER_BOUND('',#7285,.F.); +#7288=CARTESIAN_POINT('',(0.E0,0.E0,-5.36E1)); +#7289=DIRECTION('',(0.E0,0.E0,1.E0)); +#7290=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7291=AXIS2_PLACEMENT_3D('',#7288,#7289,#7290); +#7292=PLANE('',#7291); +#7294=ORIENTED_EDGE('',*,*,#7293,.T.); +#7295=ORIENTED_EDGE('',*,*,#7004,.F.); +#7296=ORIENTED_EDGE('',*,*,#7022,.F.); +#7297=ORIENTED_EDGE('',*,*,#7282,.F.); +#7298=ORIENTED_EDGE('',*,*,#6214,.F.); +#7299=ORIENTED_EDGE('',*,*,#6256,.F.); +#7300=EDGE_LOOP('',(#7294,#7295,#7296,#7297,#7298,#7299)); +#7301=FACE_OUTER_BOUND('',#7300,.F.); +#7303=CARTESIAN_POINT('',(6.E1,1.4519E2,-1.02E2)); +#7304=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7305=DIRECTION('',(-1.E0,0.E0,0.E0)); +#7306=AXIS2_PLACEMENT_3D('',#7303,#7304,#7305); +#7307=CYLINDRICAL_SURFACE('',#7306,3.8E1); +#7308=ORIENTED_EDGE('',*,*,#6254,.T.); +#7309=ORIENTED_EDGE('',*,*,#6892,.F.); +#7310=ORIENTED_EDGE('',*,*,#7006,.T.); +#7311=ORIENTED_EDGE('',*,*,#7293,.F.); +#7312=EDGE_LOOP('',(#7308,#7309,#7310,#7311)); +#7313=FACE_OUTER_BOUND('',#7312,.F.); +#7315=CARTESIAN_POINT('',(6.E1,1.4519E2,-1.02E2)); +#7316=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7317=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7318=AXIS2_PLACEMENT_3D('',#7315,#7316,#7317); +#7319=CYLINDRICAL_SURFACE('',#7318,1.E1); +#7320=ORIENTED_EDGE('',*,*,#6896,.F.); +#7322=ORIENTED_EDGE('',*,*,#7321,.F.); +#7324=ORIENTED_EDGE('',*,*,#7323,.F.); +#7326=ORIENTED_EDGE('',*,*,#7325,.T.); +#7327=EDGE_LOOP('',(#7320,#7322,#7324,#7326)); +#7328=FACE_OUTER_BOUND('',#7327,.F.); +#7330=CARTESIAN_POINT('',(6.E1,1.4519E2,-1.02E2)); +#7331=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7332=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7333=AXIS2_PLACEMENT_3D('',#7330,#7331,#7332); +#7334=CYLINDRICAL_SURFACE('',#7333,1.E1); +#7335=ORIENTED_EDGE('',*,*,#6898,.F.); +#7336=ORIENTED_EDGE('',*,*,#7325,.F.); +#7338=ORIENTED_EDGE('',*,*,#7337,.F.); +#7339=ORIENTED_EDGE('',*,*,#7321,.T.); +#7340=EDGE_LOOP('',(#7335,#7336,#7338,#7339)); +#7341=FACE_OUTER_BOUND('',#7340,.F.); +#7343=CARTESIAN_POINT('',(0.E0,0.E0,-8.7E1)); +#7344=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7345=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7346=AXIS2_PLACEMENT_3D('',#7343,#7344,#7345); +#7347=PLANE('',#7346); +#7349=ORIENTED_EDGE('',*,*,#7348,.T.); +#7351=ORIENTED_EDGE('',*,*,#7350,.T.); +#7353=ORIENTED_EDGE('',*,*,#7352,.T.); +#7355=ORIENTED_EDGE('',*,*,#7354,.T.); +#7356=EDGE_LOOP('',(#7349,#7351,#7353,#7355)); +#7357=FACE_OUTER_BOUND('',#7356,.F.); +#7358=ORIENTED_EDGE('',*,*,#7323,.T.); +#7359=ORIENTED_EDGE('',*,*,#7337,.T.); +#7360=EDGE_LOOP('',(#7358,#7359)); +#7361=FACE_BOUND('',#7360,.F.); +#7363=CARTESIAN_POINT('',(6.E1,1.4519E2,-3.86E1)); +#7364=DIRECTION('',(0.E0,0.E0,1.E0)); +#7365=DIRECTION('',(0.E0,1.E0,0.E0)); +#7366=AXIS2_PLACEMENT_3D('',#7363,#7364,#7365); +#7367=CYLINDRICAL_SURFACE('',#7366,2.5E1); +#7369=ORIENTED_EDGE('',*,*,#7368,.F.); +#7371=ORIENTED_EDGE('',*,*,#7370,.F.); +#7373=ORIENTED_EDGE('',*,*,#7372,.F.); +#7375=ORIENTED_EDGE('',*,*,#7374,.F.); +#7377=ORIENTED_EDGE('',*,*,#7376,.F.); +#7379=ORIENTED_EDGE('',*,*,#7378,.T.); +#7381=ORIENTED_EDGE('',*,*,#7380,.T.); +#7383=ORIENTED_EDGE('',*,*,#7382,.T.); +#7384=ORIENTED_EDGE('',*,*,#7350,.F.); +#7385=ORIENTED_EDGE('',*,*,#7348,.F.); +#7387=ORIENTED_EDGE('',*,*,#7386,.F.); +#7389=ORIENTED_EDGE('',*,*,#7388,.F.); +#7391=ORIENTED_EDGE('',*,*,#7390,.T.); +#7392=EDGE_LOOP('',(#7369,#7371,#7373,#7375,#7377,#7379,#7381,#7383,#7384,#7385, +#7387,#7389,#7391)); +#7393=FACE_OUTER_BOUND('',#7392,.F.); +#7395=CARTESIAN_POINT('',(6.E1,1.4519E2,-4.36E1)); +#7396=DIRECTION('',(0.E0,0.E0,1.E0)); +#7397=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7398=AXIS2_PLACEMENT_3D('',#7395,#7396,#7397); +#7399=CONICAL_SURFACE('',#7398,2.6E1,1.130993247402E1); +#7400=ORIENTED_EDGE('',*,*,#5633,.F.); +#7402=ORIENTED_EDGE('',*,*,#7401,.F.); +#7403=ORIENTED_EDGE('',*,*,#7368,.T.); +#7405=ORIENTED_EDGE('',*,*,#7404,.T.); +#7406=EDGE_LOOP('',(#7400,#7402,#7403,#7405)); +#7407=FACE_OUTER_BOUND('',#7406,.F.); +#7409=CARTESIAN_POINT('',(6.E1,1.4519E2,-4.36E1)); +#7410=DIRECTION('',(0.E0,0.E0,1.E0)); +#7411=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7412=AXIS2_PLACEMENT_3D('',#7409,#7410,#7411); +#7413=CONICAL_SURFACE('',#7412,2.6E1,1.130993247402E1); +#7414=ORIENTED_EDGE('',*,*,#5635,.F.); +#7415=ORIENTED_EDGE('',*,*,#7404,.F.); +#7417=ORIENTED_EDGE('',*,*,#7416,.T.); +#7418=ORIENTED_EDGE('',*,*,#7401,.T.); +#7419=EDGE_LOOP('',(#7414,#7415,#7417,#7418)); +#7420=FACE_OUTER_BOUND('',#7419,.F.); +#7422=CARTESIAN_POINT('',(6.E1,1.4519E2,-3.86E1)); +#7423=DIRECTION('',(0.E0,0.E0,1.E0)); +#7424=DIRECTION('',(0.E0,1.E0,0.E0)); +#7425=AXIS2_PLACEMENT_3D('',#7422,#7423,#7424); +#7426=CYLINDRICAL_SURFACE('',#7425,2.5E1); +#7427=ORIENTED_EDGE('',*,*,#7416,.F.); +#7428=ORIENTED_EDGE('',*,*,#7390,.F.); +#7429=ORIENTED_EDGE('',*,*,#7388,.T.); +#7430=ORIENTED_EDGE('',*,*,#7386,.T.); +#7431=ORIENTED_EDGE('',*,*,#7354,.F.); +#7432=ORIENTED_EDGE('',*,*,#7352,.F.); +#7433=ORIENTED_EDGE('',*,*,#7382,.F.); +#7434=ORIENTED_EDGE('',*,*,#7380,.F.); +#7435=ORIENTED_EDGE('',*,*,#7378,.F.); +#7436=ORIENTED_EDGE('',*,*,#7376,.T.); +#7437=ORIENTED_EDGE('',*,*,#7374,.T.); +#7438=ORIENTED_EDGE('',*,*,#7372,.T.); +#7439=ORIENTED_EDGE('',*,*,#7370,.T.); +#7440=EDGE_LOOP('',(#7427,#7428,#7429,#7430,#7431,#7432,#7433,#7434,#7435,#7436, +#7437,#7438,#7439)); +#7441=FACE_OUTER_BOUND('',#7440,.F.); +#7443=CARTESIAN_POINT('',(9.694405291696E-1,-1.468628580950E2, +-6.468135679269E1)); +#7444=CARTESIAN_POINT('',(1.259706527175E0,-1.560919430696E2, +-7.360976605172E1)); +#7445=CARTESIAN_POINT('',(1.604031499522E0,-1.653200679540E2, +-8.253724649950E1)); +#7446=CARTESIAN_POINT('',(2.002409343167E0,-1.745470691829E2, +-9.146363989945E1)); +#7447=CARTESIAN_POINT('',(9.694405320178E-1,-1.079700616218E2, +-1.048839184290E2)); +#7448=CARTESIAN_POINT('',(1.259706530416E0,-1.118306269955E2, +-1.193616391215E2)); +#7449=CARTESIAN_POINT('',(1.604031503157E0,-1.156907907594E2, +-1.338378537148E2)); +#7450=CARTESIAN_POINT('',(2.002409347194E0,-1.195504844935E2, +-1.483123056229E2)); +#7451=CARTESIAN_POINT('',(9.694405322840E-1,-5.203352991279E1, +-1.048839184200E2)); +#7452=CARTESIAN_POINT('',(1.259706530719E0,-4.817296453443E1, +-1.193616391113E2)); +#7453=CARTESIAN_POINT('',(1.604031503496E0,-4.431280076587E1, +-1.338378537034E2)); +#7454=CARTESIAN_POINT('',(2.002409347571E0,-4.045310702719E1, +-1.483123056103E2)); +#7455=CARTESIAN_POINT('',(9.694405298059E-1,-1.314073345240E1, +-6.468135677126E1)); +#7456=CARTESIAN_POINT('',(1.259706527899E0,-3.911648474958E0, +-7.360976602733E1)); +#7457=CARTESIAN_POINT('',(1.604031500334E0,5.316476412313E0,-8.253724647216E1)); +#7458=CARTESIAN_POINT('',(2.002409344067E0,1.454347764403E1,-9.146363986916E1)); +#7459=(BOUNDED_SURFACE()B_SPLINE_SURFACE(3,3,((#7443,#7444,#7445,#7446),(#7447, +#7448,#7449,#7450),(#7451,#7452,#7453,#7454),(#7455,#7456,#7457,#7458)), +.UNSPECIFIED.,.F.,.F.,.F.)B_SPLINE_SURFACE_WITH_KNOTS((4,4),(4,4),(0.E0,1.E0),( +0.E0,1.E0),.UNSPECIFIED.)GEOMETRIC_REPRESENTATION_ITEM()RATIONAL_B_SPLINE_SURFACE(((1.179735861260E0,1.179728891120E0,1.179728891120E0,1.179735861260E0),( +9.400939544934E-1,9.400884002110E-1,9.400884002110E-1,9.400939544934E-1),( +9.400939544934E-1,9.400884002110E-1,9.400884002110E-1,9.400939544934E-1),( +1.179735861260E0,1.179728891120E0,1.179728891120E0,1.179735861260E0)))REPRESENTATION_ITEM('')SURFACE()); +#7460=ORIENTED_EDGE('',*,*,#5965,.T.); +#7461=ORIENTED_EDGE('',*,*,#5898,.T.); +#7462=ORIENTED_EDGE('',*,*,#5896,.T.); +#7463=EDGE_LOOP('',(#7460,#7461,#7462)); +#7464=FACE_OUTER_BOUND('',#7463,.F.); +#7466=CARTESIAN_POINT('',(-2.215252901205E1,-1.E1,-1.419E2)); +#7467=DIRECTION('',(0.E0,-4.253611398224E-1,-9.050237017498E-1)); +#7468=DIRECTION('',(0.E0,-9.050237017498E-1,4.253611398224E-1)); +#7469=AXIS2_PLACEMENT_3D('',#7466,#7467,#7468); +#7470=PLANE('',#7469); +#7471=ORIENTED_EDGE('',*,*,#5754,.F.); +#7473=ORIENTED_EDGE('',*,*,#7472,.F.); +#7475=ORIENTED_EDGE('',*,*,#7474,.T.); +#7476=ORIENTED_EDGE('',*,*,#5910,.F.); +#7477=EDGE_LOOP('',(#7471,#7473,#7475,#7476)); +#7478=FACE_OUTER_BOUND('',#7477,.F.); +#7480=CARTESIAN_POINT('',(-4.853273969455E1,-6.5E1,0.E0)); +#7481=DIRECTION('',(-1.E0,0.E0,0.E0)); +#7482=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7483=AXIS2_PLACEMENT_3D('',#7480,#7481,#7482); +#7484=CONICAL_SURFACE('',#7483,1.511055584600E2,8.927825336436E1); +#7485=ORIENTED_EDGE('',*,*,#5752,.T.); +#7486=ORIENTED_EDGE('',*,*,#5795,.F.); +#7487=ORIENTED_EDGE('',*,*,#5793,.F.); +#7488=ORIENTED_EDGE('',*,*,#5791,.F.); +#7490=ORIENTED_EDGE('',*,*,#7489,.T.); +#7492=ORIENTED_EDGE('',*,*,#7491,.T.); +#7493=ORIENTED_EDGE('',*,*,#7472,.T.); +#7494=EDGE_LOOP('',(#7485,#7486,#7487,#7488,#7490,#7492,#7493)); +#7495=FACE_OUTER_BOUND('',#7494,.F.); +#7497=CARTESIAN_POINT('',(0.E0,0.E0,-1.325E2)); +#7498=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7499=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7500=AXIS2_PLACEMENT_3D('',#7497,#7498,#7499); +#7501=PLANE('',#7500); +#7502=ORIENTED_EDGE('',*,*,#7474,.F.); +#7503=ORIENTED_EDGE('',*,*,#7491,.F.); +#7504=ORIENTED_EDGE('',*,*,#7489,.F.); +#7505=ORIENTED_EDGE('',*,*,#5789,.T.); +#7506=ORIENTED_EDGE('',*,*,#5839,.F.); +#7507=ORIENTED_EDGE('',*,*,#5859,.T.); +#7508=ORIENTED_EDGE('',*,*,#5914,.F.); +#7509=ORIENTED_EDGE('',*,*,#5912,.F.); +#7510=EDGE_LOOP('',(#7502,#7503,#7504,#7505,#7506,#7507,#7508,#7509)); +#7511=FACE_OUTER_BOUND('',#7510,.F.); +#7513=CARTESIAN_POINT('',(1.127471552894E2,-1.95E2,-1.9E2)); +#7514=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7515=DIRECTION('',(-1.E0,0.E0,0.E0)); +#7516=AXIS2_PLACEMENT_3D('',#7513,#7514,#7515); +#7517=PLANE('',#7516); +#7518=ORIENTED_EDGE('',*,*,#4885,.F.); +#7519=ORIENTED_EDGE('',*,*,#4962,.F.); +#7520=ORIENTED_EDGE('',*,*,#5863,.F.); +#7521=ORIENTED_EDGE('',*,*,#4791,.F.); +#7522=EDGE_LOOP('',(#7518,#7519,#7520,#7521)); +#7523=FACE_OUTER_BOUND('',#7522,.F.); +#7525=CARTESIAN_POINT('',(9.5E1,1.5E1,6.429794054201E2)); +#7526=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7527=DIRECTION('',(1.E0,0.E0,0.E0)); +#7528=AXIS2_PLACEMENT_3D('',#7525,#7526,#7527); +#7529=CYLINDRICAL_SURFACE('',#7528,5.E0); +#7530=ORIENTED_EDGE('',*,*,#4801,.F.); +#7531=ORIENTED_EDGE('',*,*,#5730,.T.); +#7533=ORIENTED_EDGE('',*,*,#7532,.F.); +#7535=ORIENTED_EDGE('',*,*,#7534,.T.); +#7536=EDGE_LOOP('',(#7530,#7531,#7533,#7535)); +#7537=FACE_OUTER_BOUND('',#7536,.F.); +#7539=CARTESIAN_POINT('',(9.5E1,-8.000179578406E1,1.429144561350E-3)); +#7540=DIRECTION('',(1.E0,0.E0,0.E0)); +#7541=DIRECTION('',(0.E0,-6.428362304890E-2,9.979316689071E-1)); +#7542=AXIS2_PLACEMENT_3D('',#7539,#7540,#7541); +#7543=TOROIDAL_SURFACE('',#7542,1.809734288188E2,5.E0); +#7545=ORIENTED_EDGE('',*,*,#7544,.F.); +#7546=ORIENTED_EDGE('',*,*,#7532,.T.); +#7547=ORIENTED_EDGE('',*,*,#5697,.T.); +#7549=ORIENTED_EDGE('',*,*,#7548,.F.); +#7550=EDGE_LOOP('',(#7545,#7546,#7547,#7549)); +#7551=FACE_OUTER_BOUND('',#7550,.F.); +#7553=CARTESIAN_POINT('',(1.E2,-2.95E2,-1.9E2)); +#7554=DIRECTION('',(1.E0,0.E0,0.E0)); +#7555=DIRECTION('',(0.E0,1.E0,0.E0)); +#7556=AXIS2_PLACEMENT_3D('',#7553,#7554,#7555); +#7557=PLANE('',#7556); +#7559=ORIENTED_EDGE('',*,*,#7558,.F.); +#7561=ORIENTED_EDGE('',*,*,#7560,.F.); +#7562=ORIENTED_EDGE('',*,*,#4803,.T.); +#7563=ORIENTED_EDGE('',*,*,#7534,.F.); +#7564=ORIENTED_EDGE('',*,*,#7544,.T.); +#7565=EDGE_LOOP('',(#7559,#7561,#7562,#7563,#7564)); +#7566=FACE_OUTER_BOUND('',#7565,.F.); +#7568=CARTESIAN_POINT('',(9.5E1,2.863141738256E2,-4.36E1)); +#7569=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7570=DIRECTION('',(1.E0,0.E0,0.E0)); +#7571=AXIS2_PLACEMENT_3D('',#7568,#7569,#7570); +#7572=CYLINDRICAL_SURFACE('',#7571,5.E0); +#7573=ORIENTED_EDGE('',*,*,#5625,.T.); +#7575=ORIENTED_EDGE('',*,*,#7574,.F.); +#7576=ORIENTED_EDGE('',*,*,#7558,.T.); +#7577=ORIENTED_EDGE('',*,*,#7548,.T.); +#7578=EDGE_LOOP('',(#7573,#7575,#7576,#7577)); +#7579=FACE_OUTER_BOUND('',#7578,.F.); +#7581=CARTESIAN_POINT('',(8.936617853238E1,2.892077783815E2,-3.865577678127E1)); +#7582=CARTESIAN_POINT('',(8.882453474418E1,2.928036127590E2,-3.810802260003E1)); +#7583=CARTESIAN_POINT('',(8.843721404820E1,2.953749356543E2,-4.070835310852E1)); +#7584=CARTESIAN_POINT('',(8.851880234246E1,2.948332918661E2,-4.434475282029E1)); +#7585=CARTESIAN_POINT('',(9.246093445594E1,2.896739442685E2,-3.865577678127E1)); +#7586=CARTESIAN_POINT('',(9.456397124048E1,2.936681492753E2,-3.810802260003E1)); +#7587=CARTESIAN_POINT('',(9.606781876682E1,2.965243405523E2,-4.070835310852E1)); +#7588=CARTESIAN_POINT('',(9.575103643173E1,2.959226898355E2,-4.434475282029E1)); +#7589=CARTESIAN_POINT('',(9.467394426846E1,2.874609344559E2,-3.865577678127E1)); +#7590=CARTESIAN_POINT('',(9.866814927531E1,2.895639712405E2,-3.810802260003E1)); +#7591=CARTESIAN_POINT('',(1.015243405523E2,2.910678187668E2,-4.070835310852E1)); +#7592=CARTESIAN_POINT('',(1.009226898355E2,2.907510364317E2,-4.434475282029E1)); +#7593=CARTESIAN_POINT('',(9.420777838148E1,2.843661785324E2,-3.865577678127E1)); +#7594=CARTESIAN_POINT('',(9.780361275898E1,2.838245347442E2,-3.810802260003E1)); +#7595=CARTESIAN_POINT('',(1.003749356543E2,2.834372140482E2,-4.070835310852E1)); +#7596=CARTESIAN_POINT('',(9.983329186607E1,2.835188023425E2,-4.434475282029E1)); +#7597=(BOUNDED_SURFACE()B_SPLINE_SURFACE(3,3,((#7581,#7582,#7583,#7584),(#7585, +#7586,#7587,#7588),(#7589,#7590,#7591,#7592),(#7593,#7594,#7595,#7596)), +.UNSPECIFIED.,.F.,.F.,.F.)B_SPLINE_SURFACE_WITH_KNOTS((4,4),(4,4),(0.E0,1.E0),( +0.E0,1.E0),.UNSPECIFIED.)GEOMETRIC_REPRESENTATION_ITEM()RATIONAL_B_SPLINE_SURFACE(((1.574492818929E0,1.148219670698E0,1.148219670698E0,1.574492818929E0),( +1.148219670698E0,8.373543507647E-1,8.373543507647E-1,1.148219670698E0),( +1.148219670698E0,8.373543507647E-1,8.373543507647E-1,1.148219670698E0),( +1.574492818929E0,1.148219670698E0,1.148219670698E0,1.574492818929E0)))REPRESENTATION_ITEM('')SURFACE()); +#7599=ORIENTED_EDGE('',*,*,#7598,.T.); +#7600=ORIENTED_EDGE('',*,*,#7574,.T.); +#7601=ORIENTED_EDGE('',*,*,#5623,.F.); +#7603=ORIENTED_EDGE('',*,*,#7602,.T.); +#7604=EDGE_LOOP('',(#7599,#7600,#7601,#7603)); +#7605=FACE_OUTER_BOUND('',#7604,.F.); +#7607=CARTESIAN_POINT('',(9.E1,2.85E2,6.640352260206E2)); +#7608=DIRECTION('',(0.E0,0.E0,-1.E0)); +#7609=DIRECTION('',(0.E0,1.E0,0.E0)); +#7610=AXIS2_PLACEMENT_3D('',#7607,#7608,#7609); +#7611=CYLINDRICAL_SURFACE('',#7610,1.E1); +#7612=ORIENTED_EDGE('',*,*,#7598,.F.); +#7614=ORIENTED_EDGE('',*,*,#7613,.T.); +#7615=ORIENTED_EDGE('',*,*,#4805,.F.); +#7616=ORIENTED_EDGE('',*,*,#7560,.T.); +#7617=EDGE_LOOP('',(#7612,#7614,#7615,#7616)); +#7618=FACE_OUTER_BOUND('',#7617,.F.); +#7620=CARTESIAN_POINT('',(1.E2,2.95E2,-1.9E2)); +#7621=DIRECTION('',(0.E0,1.E0,0.E0)); +#7622=DIRECTION('',(-1.E0,0.E0,0.E0)); +#7623=AXIS2_PLACEMENT_3D('',#7620,#7621,#7622); +#7624=PLANE('',#7623); +#7626=ORIENTED_EDGE('',*,*,#7625,.F.); +#7628=ORIENTED_EDGE('',*,*,#7627,.T.); +#7630=ORIENTED_EDGE('',*,*,#7629,.F.); +#7632=ORIENTED_EDGE('',*,*,#7631,.T.); +#7634=ORIENTED_EDGE('',*,*,#7633,.F.); +#7636=ORIENTED_EDGE('',*,*,#7635,.F.); +#7638=ORIENTED_EDGE('',*,*,#7637,.F.); +#7639=ORIENTED_EDGE('',*,*,#4807,.T.); +#7640=ORIENTED_EDGE('',*,*,#7613,.F.); +#7642=ORIENTED_EDGE('',*,*,#7641,.F.); +#7643=EDGE_LOOP('',(#7626,#7628,#7630,#7632,#7634,#7636,#7638,#7639,#7640, +#7642)); +#7644=FACE_OUTER_BOUND('',#7643,.F.); +#7646=CARTESIAN_POINT('',(1.145367888040E1,2.93E2,-1.552884201579E2)); +#7647=DIRECTION('',(0.E0,0.E0,1.E0)); +#7648=DIRECTION('',(0.E0,1.E0,0.E0)); +#7649=AXIS2_PLACEMENT_3D('',#7646,#7647,#7648); +#7650=CYLINDRICAL_SURFACE('',#7649,2.E0); +#7651=ORIENTED_EDGE('',*,*,#7625,.T.); +#7653=ORIENTED_EDGE('',*,*,#7652,.F.); +#7655=ORIENTED_EDGE('',*,*,#7654,.T.); +#7657=ORIENTED_EDGE('',*,*,#7656,.F.); +#7658=EDGE_LOOP('',(#7651,#7653,#7655,#7657)); +#7659=FACE_OUTER_BOUND('',#7658,.F.); +#7661=CARTESIAN_POINT('',(1.145367888040E1,2.9E2,-4.36E1)); +#7662=DIRECTION('',(1.E0,0.E0,0.E0)); +#7663=DIRECTION('',(0.E0,9.592289723847E-1,-2.826301090432E-1)); +#7664=AXIS2_PLACEMENT_3D('',#7661,#7662,#7663); +#7665=TOROIDAL_SURFACE('',#7664,3.E0,2.E0); +#7667=ORIENTED_EDGE('',*,*,#7666,.T.); +#7669=ORIENTED_EDGE('',*,*,#7668,.T.); +#7671=ORIENTED_EDGE('',*,*,#7670,.F.); +#7672=ORIENTED_EDGE('',*,*,#7652,.T.); +#7673=EDGE_LOOP('',(#7667,#7669,#7671,#7672)); +#7674=FACE_OUTER_BOUND('',#7673,.F.); +#7676=CARTESIAN_POINT('',(-7.32018548E2,2.9E2,-4.36E1)); +#7677=DIRECTION('',(1.E0,0.E0,0.E0)); +#7678=DIRECTION('',(0.E0,1.E0,0.E0)); +#7679=AXIS2_PLACEMENT_3D('',#7676,#7677,#7678); +#7680=CYLINDRICAL_SURFACE('',#7679,5.E0); +#7681=ORIENTED_EDGE('',*,*,#7666,.F.); +#7682=ORIENTED_EDGE('',*,*,#7641,.T.); +#7683=ORIENTED_EDGE('',*,*,#7602,.F.); +#7684=ORIENTED_EDGE('',*,*,#5621,.T.); +#7685=EDGE_LOOP('',(#7681,#7682,#7683,#7684)); +#7686=FACE_OUTER_BOUND('',#7685,.F.); +#7688=CARTESIAN_POINT('',(1.145367888040E1,2.914326745253E2,-4.06E1)); +#7689=DIRECTION('',(0.E0,-1.E0,0.E0)); +#7690=DIRECTION('',(0.E0,0.E0,1.E0)); +#7691=AXIS2_PLACEMENT_3D('',#7688,#7689,#7690); +#7692=CYLINDRICAL_SURFACE('',#7691,2.E0); +#7694=ORIENTED_EDGE('',*,*,#7693,.T.); +#7695=ORIENTED_EDGE('',*,*,#7668,.F.); +#7696=ORIENTED_EDGE('',*,*,#5619,.T.); +#7698=ORIENTED_EDGE('',*,*,#7697,.F.); +#7699=EDGE_LOOP('',(#7694,#7695,#7696,#7698)); +#7700=FACE_OUTER_BOUND('',#7699,.F.); +#7702=CARTESIAN_POINT('',(9.453678880404E0,2.3188E2,-3.86E1)); +#7703=DIRECTION('',(1.E0,0.E0,0.E0)); +#7704=DIRECTION('',(0.E0,1.E0,0.E0)); +#7705=AXIS2_PLACEMENT_3D('',#7702,#7703,#7704); +#7706=PLANE('',#7705); +#7707=ORIENTED_EDGE('',*,*,#7693,.F.); +#7709=ORIENTED_EDGE('',*,*,#7708,.F.); +#7711=ORIENTED_EDGE('',*,*,#7710,.F.); +#7713=ORIENTED_EDGE('',*,*,#7712,.F.); +#7715=ORIENTED_EDGE('',*,*,#7714,.F.); +#7717=ORIENTED_EDGE('',*,*,#7716,.F.); +#7719=ORIENTED_EDGE('',*,*,#7718,.T.); +#7721=ORIENTED_EDGE('',*,*,#7720,.F.); +#7722=ORIENTED_EDGE('',*,*,#7654,.F.); +#7723=ORIENTED_EDGE('',*,*,#7670,.T.); +#7724=EDGE_LOOP('',(#7707,#7709,#7711,#7713,#7715,#7717,#7719,#7721,#7722, +#7723)); +#7725=FACE_OUTER_BOUND('',#7724,.F.); +#7727=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-3.86E1)); +#7728=DIRECTION('',(0.E0,0.E0,1.E0)); +#7729=DIRECTION('',(0.E0,1.E0,0.E0)); +#7730=AXIS2_PLACEMENT_3D('',#7727,#7728,#7729); +#7731=CYLINDRICAL_SURFACE('',#7730,6.7E1); +#7733=ORIENTED_EDGE('',*,*,#7732,.F.); +#7735=ORIENTED_EDGE('',*,*,#7734,.T.); +#7737=ORIENTED_EDGE('',*,*,#7736,.F.); +#7738=ORIENTED_EDGE('',*,*,#7708,.T.); +#7739=EDGE_LOOP('',(#7733,#7735,#7737,#7738)); +#7740=FACE_OUTER_BOUND('',#7739,.F.); +#7742=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-4.06E1)); +#7743=DIRECTION('',(0.E0,0.E0,1.E0)); +#7744=DIRECTION('',(9.955508345719E-4,-9.999995044391E-1,0.E0)); +#7745=AXIS2_PLACEMENT_3D('',#7742,#7743,#7744); +#7746=TOROIDAL_SURFACE('',#7745,6.9E1,2.E0); +#7747=ORIENTED_EDGE('',*,*,#7732,.T.); +#7748=ORIENTED_EDGE('',*,*,#7697,.T.); +#7749=ORIENTED_EDGE('',*,*,#5617,.F.); +#7751=ORIENTED_EDGE('',*,*,#7750,.F.); +#7752=EDGE_LOOP('',(#7747,#7748,#7749,#7751)); +#7753=FACE_OUTER_BOUND('',#7752,.F.); +#7755=CARTESIAN_POINT('',(1.357890387889E1,-7.775731440644E2,-4.06E1)); +#7756=DIRECTION('',(0.E0,1.E0,0.E0)); +#7757=DIRECTION('',(-9.996573249756E-1,0.E0,2.617694830787E-2)); +#7758=AXIS2_PLACEMENT_3D('',#7755,#7756,#7757); +#7759=CYLINDRICAL_SURFACE('',#7758,2.E0); +#7761=ORIENTED_EDGE('',*,*,#7760,.F.); +#7762=ORIENTED_EDGE('',*,*,#7750,.T.); +#7763=ORIENTED_EDGE('',*,*,#5615,.T.); +#7764=ORIENTED_EDGE('',*,*,#5602,.T.); +#7765=EDGE_LOOP('',(#7761,#7762,#7763,#7764)); +#7766=FACE_OUTER_BOUND('',#7765,.F.); +#7768=CARTESIAN_POINT('',(8.492126562435E0,1.385798492198E2,-1.584530884742E2)); +#7769=DIRECTION('',(9.996573249756E-1,0.E0,-2.617694830787E-2)); +#7770=DIRECTION('',(2.617694830787E-2,0.E0,9.996573249756E-1)); +#7771=AXIS2_PLACEMENT_3D('',#7768,#7769,#7770); +#7772=PLANE('',#7771); +#7773=ORIENTED_EDGE('',*,*,#7760,.T.); +#7774=ORIENTED_EDGE('',*,*,#5587,.T.); +#7775=ORIENTED_EDGE('',*,*,#5568,.F.); +#7777=ORIENTED_EDGE('',*,*,#7776,.T.); +#7779=ORIENTED_EDGE('',*,*,#7778,.F.); +#7780=ORIENTED_EDGE('',*,*,#7734,.F.); +#7781=EDGE_LOOP('',(#7773,#7774,#7775,#7777,#7779,#7780)); +#7782=FACE_OUTER_BOUND('',#7781,.F.); +#7784=CARTESIAN_POINT('',(2.239141132863E1,1.485191925801E2,-1.245153393335E2)); +#7785=DIRECTION('',(2.599859414311E-2,-2.509251576925E-2,9.993470061770E-1)); +#7786=DIRECTION('',(-6.003887112879E-1,7.989120006946E-1,3.567927275327E-2)); +#7787=AXIS2_PLACEMENT_3D('',#7784,#7785,#7786); +#7788=CYLINDRICAL_SURFACE('',#7787,1.300005422238E1); +#7790=ORIENTED_EDGE('',*,*,#7789,.F.); +#7791=ORIENTED_EDGE('',*,*,#7776,.F.); +#7793=ORIENTED_EDGE('',*,*,#7792,.T.); +#7795=ORIENTED_EDGE('',*,*,#7794,.F.); +#7796=EDGE_LOOP('',(#7790,#7791,#7793,#7795)); +#7797=FACE_OUTER_BOUND('',#7796,.F.); +#7799=CARTESIAN_POINT('',(0.E0,0.E0,-5.36E1)); +#7800=DIRECTION('',(0.E0,0.E0,1.E0)); +#7801=DIRECTION('',(0.E0,1.E0,0.E0)); +#7802=AXIS2_PLACEMENT_3D('',#7799,#7800,#7801); +#7803=PLANE('',#7802); +#7804=ORIENTED_EDGE('',*,*,#7789,.T.); +#7806=ORIENTED_EDGE('',*,*,#7805,.T.); +#7808=ORIENTED_EDGE('',*,*,#7807,.T.); +#7809=ORIENTED_EDGE('',*,*,#7710,.T.); +#7810=ORIENTED_EDGE('',*,*,#7736,.T.); +#7811=ORIENTED_EDGE('',*,*,#7778,.T.); +#7812=EDGE_LOOP('',(#7804,#7806,#7808,#7809,#7810,#7811)); +#7813=FACE_OUTER_BOUND('',#7812,.F.); +#7815=CARTESIAN_POINT('',(2.929677708166E1,1.999943262360E2,-5.176493993188E1)); +#7816=CARTESIAN_POINT('',(2.812619895709E1,1.999835563520E2,-8.357264506081E1)); +#7817=CARTESIAN_POINT('',(2.695562083252E1,1.999727864680E2,-1.153803501897E2)); +#7818=CARTESIAN_POINT('',(2.578504270794E1,1.999620165841E2,-1.471880553187E2)); +#7819=CARTESIAN_POINT('',(2.929734743617E1,1.998228179048E2,-5.176494003649E1)); +#7820=CARTESIAN_POINT('',(2.812674233134E1,1.998156396401E2,-8.357264517443E1)); +#7821=CARTESIAN_POINT('',(2.695613722650E1,1.998084613754E2,-1.153803503124E2)); +#7822=CARTESIAN_POINT('',(2.578553212166E1,1.998012831107E2,-1.471880554503E2)); +#7823=CARTESIAN_POINT('',(2.930821119868E1,1.933373674978E2,-5.176494198219E1)); +#7824=CARTESIAN_POINT('',(2.813709585430E1,1.934659546402E2,-8.357264728713E1)); +#7825=CARTESIAN_POINT('',(2.696598050993E1,1.935945417825E2,-1.153803525921E2)); +#7826=CARTESIAN_POINT('',(2.579486516555E1,1.937231289249E2,-1.471880578970E2)); +#7827=CARTESIAN_POINT('',(2.851884767462E1,1.806044121254E2,-5.176480059814E1)); +#7828=CARTESIAN_POINT('',(2.738480645416E1,1.809956303509E2,-8.357249376623E1)); +#7829=CARTESIAN_POINT('',(2.625076523371E1,1.813868485763E2,-1.153801869343E2)); +#7830=CARTESIAN_POINT('',(2.511672401326E1,1.817780668018E2,-1.471878801024E2)); +#7831=CARTESIAN_POINT('',(2.375942776459E1,1.653410414652E2,-5.176468456389E1)); +#7832=CARTESIAN_POINT('',(2.279132405969E1,1.660054170767E2,-8.357237694240E1)); +#7833=CARTESIAN_POINT('',(2.182322035479E1,1.666697926882E2,-1.153800693209E2)); +#7834=CARTESIAN_POINT('',(2.085511664990E1,1.673341682997E2,-1.471877616994E2)); +#7835=CARTESIAN_POINT('',(1.724860162127E1,1.573878894172E2,-5.176452784925E1)); +#7836=CARTESIAN_POINT('',(1.643333521068E1,1.581942641454E2,-8.357223517690E1)); +#7837=CARTESIAN_POINT('',(1.561806880008E1,1.590006388736E2,-1.153799425046E2)); +#7838=CARTESIAN_POINT('',(1.480280238949E1,1.598070136019E2,-1.471876498322E2)); +#7839=CARTESIAN_POINT('',(1.258178170092E1,1.539795396799E2,-5.176438255386E1)); +#7840=CARTESIAN_POINT('',(1.185601115248E1,1.548570624531E2,-8.357208665603E1)); +#7841=CARTESIAN_POINT('',(1.113024060404E1,1.557345852262E2,-1.153797907582E2)); +#7842=CARTESIAN_POINT('',(1.040447005559E1,1.566121079994E2,-1.471874948604E2)); +#7843=CARTESIAN_POINT('',(1.147106354425E1,1.532614351534E2,-5.176434919695E1)); +#7844=CARTESIAN_POINT('',(1.076591133871E1,1.541545766028E2,-8.357205223797E1)); +#7845=CARTESIAN_POINT('',(1.006075913318E1,1.550477180523E2,-1.153797552790E2)); +#7846=CARTESIAN_POINT('',(9.355606927654E0,1.559408595017E2,-1.471874583200E2)); +#7847=CARTESIAN_POINT('',(1.132624577165E1,1.531692923877E2,-5.176434487409E1)); +#7848=CARTESIAN_POINT('',(1.062377129852E1,1.540644490704E2,-8.357204777279E1)); +#7849=CARTESIAN_POINT('',(9.921296825389E0,1.549596057532E2,-1.153797506715E2)); +#7850=CARTESIAN_POINT('',(9.218822352261E0,1.558547624360E2,-1.471874535702E2)); +#7851=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#7815,#7816,#7817,#7818),(#7819, +#7820,#7821,#7822),(#7823,#7824,#7825,#7826),(#7827,#7828,#7829,#7830),(#7831, +#7832,#7833,#7834),(#7835,#7836,#7837,#7838),(#7839,#7840,#7841,#7842),(#7843, +#7844,#7845,#7846),(#7847,#7848,#7849,#7850)),.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1, +1,1,1,4),(4,4),(-8.340425205789E-3,0.E0,3.070685694740E-1,6.141371388435E-1, +9.212057082131E-1,1.E0,1.011738252009E0),(-9.804052065458E-3,1.009810576905E0), +.UNSPECIFIED.); +#7852=ORIENTED_EDGE('',*,*,#7794,.T.); +#7854=ORIENTED_EDGE('',*,*,#7853,.T.); +#7856=ORIENTED_EDGE('',*,*,#7855,.T.); +#7858=ORIENTED_EDGE('',*,*,#7857,.T.); +#7859=ORIENTED_EDGE('',*,*,#7805,.F.); +#7860=EDGE_LOOP('',(#7852,#7854,#7856,#7858,#7859)); +#7861=FACE_OUTER_BOUND('',#7860,.F.); +#7863=CARTESIAN_POINT('',(9.682501168459E0,1.561017023578E2,-1.468215883311E2)); +#7864=CARTESIAN_POINT('',(9.874798419585E0,1.562076499716E2,-1.465296468697E2)); +#7865=CARTESIAN_POINT('',(1.077846027646E1,1.567111920516E2,-1.451206250895E2)); +#7866=CARTESIAN_POINT('',(1.229159916660E1,1.575988297877E2,-1.424301550050E2)); +#7867=CARTESIAN_POINT('',(1.402498026286E1,1.586718097315E2,-1.385045901620E2)); +#7868=CARTESIAN_POINT('',(1.545910967421E1,1.595746324809E2,-1.341049736771E2)); +#7869=CARTESIAN_POINT('',(1.652633041040E1,1.602058313933E2,-1.290377782585E2)); +#7870=CARTESIAN_POINT('',(1.686779371169E1,1.603118304980E2,-1.250745696373E2)); +#7871=CARTESIAN_POINT('',(1.689443039317E1,1.602346335698E2,-1.228466524837E2)); +#7872=CARTESIAN_POINT('',(1.689527236687E1,1.602233614935E2,-1.225795323469E2)); +#7873=CARTESIAN_POINT('',(5.570868379963E0,1.537993526249E2,-1.437773194313E2)); +#7874=CARTESIAN_POINT('',(5.738572417986E0,1.539045803744E2,-1.435191396981E2)); +#7875=CARTESIAN_POINT('',(6.526201700840E0,1.544042494024E2,-1.422738694961E2)); +#7876=CARTESIAN_POINT('',(7.841264191196E0,1.552811007715E2,-1.399032751118E2)); +#7877=CARTESIAN_POINT('',(9.341560488073E0,1.563333025095E2,-1.364613117777E2)); +#7878=CARTESIAN_POINT('',(1.057855058500E1,1.572123511788E2,-1.326210186399E2)); +#7879=CARTESIAN_POINT('',(1.149704969064E1,1.578230164455E2,-1.282145843700E2)); +#7880=CARTESIAN_POINT('',(1.179172749383E1,1.579250288380E2,-1.247763809227E2)); +#7881=CARTESIAN_POINT('',(1.181590412466E1,1.578505891010E2,-1.228434702236E2)); +#7882=CARTESIAN_POINT('',(1.181678819634E1,1.578397248581E2,-1.226117128133E2)); +#7883=CARTESIAN_POINT('',(3.750213293185E0,1.491131186380E2,-1.412876654446E2)); +#7884=CARTESIAN_POINT('',(3.896207930340E0,1.492168811657E2,-1.410481248999E2)); +#7885=CARTESIAN_POINT('',(4.579968781197E0,1.497086669311E2,-1.398960368263E2)); +#7886=CARTESIAN_POINT('',(5.705946994019E0,1.505635635821E2,-1.377322028622E2)); +#7887=CARTESIAN_POINT('',(6.964893451798E0,1.515734730770E2,-1.346595365683E2)); +#7888=CARTESIAN_POINT('',(7.985000168552E0,1.524041316602E2,-1.313025169368E2)); +#7889=CARTESIAN_POINT('',(8.734018480274E0,1.529730024648E2,-1.275190477771E2)); +#7890=CARTESIAN_POINT('',(8.977669491827E0,1.530669002489E2,-1.246009425333E2)); +#7891=CARTESIAN_POINT('',(9.002630227264E0,1.529980725364E2,-1.229599037881E2)); +#7892=CARTESIAN_POINT('',(9.004019156055E0,1.529880384034E2,-1.227631104379E2)); +#7893=CARTESIAN_POINT('',(4.870676677690E0,1.437164155280E2,-1.402416610763E2)); +#7894=CARTESIAN_POINT('',(5.005597972470E0,1.438184906951E2,-1.399989812814E2)); +#7895=CARTESIAN_POINT('',(5.634745085429E0,1.443011980347E2,-1.388362313244E2)); +#7896=CARTESIAN_POINT('',(6.648151563838E0,1.451308114633E2,-1.366922100763E2)); +#7897=CARTESIAN_POINT('',(7.743667160445E0,1.460920168858E2,-1.337426634564E2)); +#7898=CARTESIAN_POINT('',(8.604593680183E0,1.468669490736E2,-1.306202945458E2)); +#7899=CARTESIAN_POINT('',(9.223892214758E0,1.473876890541E2,-1.271995388049E2)); +#7900=CARTESIAN_POINT('',(9.430496383484E0,1.474722419928E2,-1.246109020569E2)); +#7901=CARTESIAN_POINT('',(9.459205381556E0,1.474098771309E2,-1.231543757210E2)); +#7902=CARTESIAN_POINT('',(9.461381646312E0,1.474007989587E2,-1.229796623897E2)); +#7903=(BOUNDED_SURFACE()B_SPLINE_SURFACE(3,3,((#7863,#7864,#7865,#7866,#7867, +#7868,#7869,#7870,#7871,#7872),(#7873,#7874,#7875,#7876,#7877,#7878,#7879,#7880, +#7881,#7882),(#7883,#7884,#7885,#7886,#7887,#7888,#7889,#7890,#7891,#7892),( +#7893,#7894,#7895,#7896,#7897,#7898,#7899,#7900,#7901,#7902)),.UNSPECIFIED.,.F., +.F.,.F.)B_SPLINE_SURFACE_WITH_KNOTS((4,4),(4,1,1,1,1,1,1,4),(0.E0,1.E0),( +8.944102904206E-1,8.993956907021E-1,9.181672259717E-1,9.371508953900E-1, +9.562759719594E-1,9.767542421932E-1,1.E0,1.003169488103E0),.UNSPECIFIED.)GEOMETRIC_REPRESENTATION_ITEM()RATIONAL_B_SPLINE_SURFACE(((1.098023787629E0, +1.098023787629E0,1.098023787629E0,1.098023787629E0,1.098023787629E0, +1.098023787629E0,1.098023787629E0,1.098023787629E0,1.098023787629E0, +1.098023787629E0),(9.673254041236E-1,9.673254041236E-1,9.673254041236E-1, +9.673254041236E-1,9.673254041236E-1,9.673254041236E-1,9.673254041236E-1, +9.673254041236E-1,9.673254041236E-1,9.673254041236E-1),(9.673254041236E-1, +9.673254041236E-1,9.673254041236E-1,9.673254041236E-1,9.673254041236E-1, +9.673254041236E-1,9.673254041236E-1,9.673254041236E-1,9.673254041236E-1, +9.673254041236E-1),(1.098023787629E0,1.098023787629E0,1.098023787629E0, +1.098023787629E0,1.098023787629E0,1.098023787629E0,1.098023787629E0, +1.098023787629E0,1.098023787629E0,1.098023787629E0)))REPRESENTATION_ITEM('')SURFACE()); +#7905=ORIENTED_EDGE('',*,*,#7904,.F.); +#7906=ORIENTED_EDGE('',*,*,#7853,.F.); +#7907=ORIENTED_EDGE('',*,*,#7792,.F.); +#7908=ORIENTED_EDGE('',*,*,#5566,.F.); +#7910=ORIENTED_EDGE('',*,*,#7909,.T.); +#7911=EDGE_LOOP('',(#7905,#7906,#7907,#7908,#7910)); +#7912=FACE_OUTER_BOUND('',#7911,.F.); +#7914=CARTESIAN_POINT('',(-2.765901755367E1,1.608880603739E2, +-1.763439644426E2)); +#7915=CARTESIAN_POINT('',(-2.075476943016E1,1.608122036726E2, +-1.762858450323E2)); +#7916=CARTESIAN_POINT('',(-8.454444108698E0,1.614628242626E2, +-1.762393183946E2)); +#7917=CARTESIAN_POINT('',(3.005139172727E0,1.660505259999E2,-1.763238281814E2)); +#7918=CARTESIAN_POINT('',(9.072906861480E0,1.733009012707E2,-1.763974722640E2)); +#7919=CARTESIAN_POINT('',(1.200610366459E1,1.806176810632E2,-1.764411281347E2)); +#7920=CARTESIAN_POINT('',(1.351271395652E1,1.897539466562E2,-1.764673362264E2)); +#7921=CARTESIAN_POINT('',(1.372854785084E1,1.966146402705E2,-1.764637783239E2)); +#7922=CARTESIAN_POINT('',(1.371085680675E1,2.001464885809E2,-1.764549537952E2)); +#7923=CARTESIAN_POINT('',(-2.767324632536E1,1.598027098792E2, +-1.751747342264E2)); +#7924=CARTESIAN_POINT('',(-2.062281602533E1,1.597458260353E2, +-1.751394132438E2)); +#7925=CARTESIAN_POINT('',(-8.060077665924E0,1.604737749281E2, +-1.751088748185E2)); +#7926=CARTESIAN_POINT('',(3.659968523038E0,1.652493149763E2,-1.751608672116E2)); +#7927=CARTESIAN_POINT('',(9.883890904663E0,1.726987336684E2,-1.752028566543E2)); +#7928=CARTESIAN_POINT('',(1.290544444039E1,1.801915441857E2,-1.752266451834E2)); +#7929=CARTESIAN_POINT('',(1.446765473821E1,1.895349347358E2,-1.752419430326E2)); +#7930=CARTESIAN_POINT('',(1.469494302961E1,1.965493309474E2,-1.752403913698E2)); +#7931=CARTESIAN_POINT('',(1.467680945206E1,2.001611801990E2,-1.752353527717E2)); +#7932=CARTESIAN_POINT('',(-2.770015752854E1,1.577741571126E2, +-1.727660493076E2)); +#7933=CARTESIAN_POINT('',(-2.036849669717E1,1.577453162407E2, +-1.727658708325E2)); +#7934=CARTESIAN_POINT('',(-7.303701259998E0,1.586062283115E2, +-1.727598657528E2)); +#7935=CARTESIAN_POINT('',(4.909298231456E0,1.637271095985E2,-1.727598152074E2)); +#7936=CARTESIAN_POINT('',(1.143022138915E1,1.715497886321E2,-1.727512596475E2)); +#7937=CARTESIAN_POINT('',(1.462048262197E1,1.793767809189E2,-1.727430653385E2)); +#7938=CARTESIAN_POINT('',(1.628851390727E1,1.891160655078E2,-1.727402979498E2)); +#7939=CARTESIAN_POINT('',(1.653719486469E1,1.964247809149E2,-1.727412796667E2)); +#7940=CARTESIAN_POINT('',(1.651800739243E1,2.001895063998E2,-1.727418983418E2)); +#7941=CARTESIAN_POINT('',(-2.775164776832E1,1.540208468372E2, +-1.678042927963E2)); +#7942=CARTESIAN_POINT('',(-1.988436450703E1,1.540280315020E2, +-1.678661972915E2)); +#7943=CARTESIAN_POINT('',(-5.870107963548E0,1.551067095095E2, +-1.679074792152E2)); +#7944=CARTESIAN_POINT('',(7.265613555960E0,1.608505901111E2,-1.678257603371E2)); +#7945=CARTESIAN_POINT('',(1.434140298597E1,1.693681015192E2,-1.677338056419E2)); +#7946=CARTESIAN_POINT('',(1.784569608953E1,1.778249001291E2,-1.676713329687E2)); +#7947=CARTESIAN_POINT('',(1.971008320915E1,1.883165768294E2,-1.676360059174E2)); +#7948=CARTESIAN_POINT('',(1.999839405673E1,1.961873518288E2,-1.676385898444E2)); +#7949=CARTESIAN_POINT('',(1.997750550349E1,2.002439385425E2,-1.676470657218E2)); +#7950=CARTESIAN_POINT('',(-2.780748479731E1,1.503336499827E2, +-1.611169282866E2)); +#7951=CARTESIAN_POINT('',(-1.935750941830E1,1.503080880715E2, +-1.611789702449E2)); +#7952=CARTESIAN_POINT('',(-4.326275477491E0,1.514942933728E2, +-1.612265723698E2)); +#7953=CARTESIAN_POINT('',(9.785128849798E0,1.578137388195E2,-1.611540498783E2)); +#7954=CARTESIAN_POINT('',(1.744357076695E1,1.670476152338E2,-1.610637939134E2)); +#7955=CARTESIAN_POINT('',(2.127150390932E1,1.761704219745E2,-1.609978664369E2)); +#7956=CARTESIAN_POINT('',(2.333504416495E1,1.874656671485E2,-1.609534290077E2)); +#7957=CARTESIAN_POINT('',(2.366203588672E1,1.959366582185E2,-1.609470342900E2)); +#7958=CARTESIAN_POINT('',(2.363911355079E1,2.003026331164E2,-1.609505554619E2)); +#7959=CARTESIAN_POINT('',(-2.784109662503E1,1.487466030952E2, +-1.527307466228E2)); +#7960=CARTESIAN_POINT('',(-1.904023998245E1,1.487021776842E2, +-1.527277329948E2)); +#7961=CARTESIAN_POINT('',(-3.448363928181E0,1.499019697710E2, +-1.527202000074E2)); +#7962=CARTESIAN_POINT('',(1.112005533321E1,1.564004727048E2,-1.527089472426E2)); +#7963=CARTESIAN_POINT('',(1.904411835879E1,1.659176667341E2,-1.526916480946E2)); +#7964=CARTESIAN_POINT('',(2.301318242648E1,1.753375755380E2,-1.526771854491E2)); +#7965=CARTESIAN_POINT('',(2.515536629129E1,1.870268104234E2,-1.526674793822E2)); +#7966=CARTESIAN_POINT('',(2.549236032096E1,1.958083714158E2,-1.526667131286E2)); +#7967=CARTESIAN_POINT('',(2.546791357409E1,2.003325930711E2,-1.526680651927E2)); +#7968=CARTESIAN_POINT('',(-2.785253557921E1,1.484211660836E2, +-1.471444443536E2)); +#7969=CARTESIAN_POINT('',(-1.893165897135E1,1.483787545889E2, +-1.471415965146E2)); +#7970=CARTESIAN_POINT('',(-3.184015272982E0,1.495650809829E2, +-1.471411980195E2)); +#7971=CARTESIAN_POINT('',(1.144571719435E1,1.560425663766E2,-1.471477234782E2)); +#7972=CARTESIAN_POINT('',(1.939396554154E1,1.655894706886E2,-1.471432051077E2)); +#7973=CARTESIAN_POINT('',(2.336989091289E1,1.750711897691E2,-1.471366948406E2)); +#7974=CARTESIAN_POINT('',(2.550850927290E1,1.868751822476E2,-1.471316453656E2)); +#7975=CARTESIAN_POINT('',(2.583994120636E1,1.957636993792E2,-1.471307908007E2)); +#7976=CARTESIAN_POINT('',(2.581517359956E1,2.003430702180E2,-1.471311605551E2)); +#7977=CARTESIAN_POINT('',(-2.785652668499E1,1.483554017824E2, +-1.446388158077E2)); +#7978=CARTESIAN_POINT('',(-1.889356913647E1,1.483138274279E2, +-1.446387346690E2)); +#7979=CARTESIAN_POINT('',(-3.098827261633E0,1.494894702758E2, +-1.446444014997E2)); +#7980=CARTESIAN_POINT('',(1.153311084423E1,1.559420614599E2,-1.446575292490E2)); +#7981=CARTESIAN_POINT('',(1.947617346613E1,1.654862253958E2,-1.446565991846E2)); +#7982=CARTESIAN_POINT('',(2.344576626965E1,1.749819098338E2,-1.446519982549E2)); +#7983=CARTESIAN_POINT('',(2.557666430641E1,1.868221314531E2,-1.446476765780E2)); +#7984=CARTESIAN_POINT('',(2.590422951547E1,1.957480358775E2,-1.446463319635E2)); +#7985=CARTESIAN_POINT('',(2.587936206881E1,2.003467529217E2,-1.446461890795E2)); +#7986=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#7914,#7915,#7916,#7917,#7918,#7919, +#7920,#7921,#7922),(#7923,#7924,#7925,#7926,#7927,#7928,#7929,#7930,#7931),( +#7932,#7933,#7934,#7935,#7936,#7937,#7938,#7939,#7940),(#7941,#7942,#7943,#7944, +#7945,#7946,#7947,#7948,#7949),(#7950,#7951,#7952,#7953,#7954,#7955,#7956,#7957, +#7958),(#7959,#7960,#7961,#7962,#7963,#7964,#7965,#7966,#7967),(#7968,#7969, +#7970,#7971,#7972,#7973,#7974,#7975,#7976),(#7977,#7978,#7979,#7980,#7981,#7982, +#7983,#7984,#7985)),.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1,1,1,4),(4,1,1,1,1,1,4),( +-1.584827556396E-1,-5.546263180595E-3,1.506026036646E-1,4.629003373551E-1, +7.751980710456E-1,1.023659194163E0),(-4.145425470516E-3,1.25E-1,2.5E-1,3.125E-1, +3.75E-1,4.375E-1,5.041903433540E-1),.UNSPECIFIED.); +#7988=ORIENTED_EDGE('',*,*,#7987,.F.); +#7990=ORIENTED_EDGE('',*,*,#7989,.F.); +#7992=ORIENTED_EDGE('',*,*,#7991,.F.); +#7994=ORIENTED_EDGE('',*,*,#7993,.F.); +#7995=ORIENTED_EDGE('',*,*,#7855,.F.); +#7996=ORIENTED_EDGE('',*,*,#7904,.T.); +#7997=EDGE_LOOP('',(#7988,#7990,#7992,#7994,#7995,#7996)); +#7998=FACE_OUTER_BOUND('',#7997,.F.); +#8000=CARTESIAN_POINT('',(-2.768536422368E1,1.538973485885E2, +-1.678400899359E2)); +#8001=CARTESIAN_POINT('',(-2.745545467797E1,1.538983000144E2, +-1.678435694451E2)); +#8002=CARTESIAN_POINT('',(-2.637076785395E1,1.539004696048E2, +-1.678517684063E2)); +#8003=CARTESIAN_POINT('',(-2.448510334477E1,1.538859286121E2, +-1.677984781229E2)); +#8004=CARTESIAN_POINT('',(-2.207997770508E1,1.538365824838E2, +-1.675990228049E2)); +#8005=CARTESIAN_POINT('',(-1.980926860812E1,1.537675903705E2, +-1.672921224815E2)); +#8006=CARTESIAN_POINT('',(-1.764887624450E1,1.536869892850E2, +-1.668904843644E2)); +#8007=CARTESIAN_POINT('',(-1.558653476692E1,1.536020325590E2, +-1.664044907777E2)); +#8008=CARTESIAN_POINT('',(-1.360838712162E1,1.535190969206E2, +-1.658409248838E2)); +#8009=CARTESIAN_POINT('',(-1.170234001114E1,1.534441441861E2, +-1.652040716750E2)); +#8010=CARTESIAN_POINT('',(-9.860117254186E0,1.533831266787E2, +-1.644970679820E2)); +#8011=CARTESIAN_POINT('',(-8.078647391133E0,1.533421955283E2, +-1.637236187592E2)); +#8012=CARTESIAN_POINT('',(-6.356172855021E0,1.533275706034E2, +-1.628873872536E2)); +#8013=CARTESIAN_POINT('',(-4.692839282103E0,1.533455098246E2, +-1.619928487001E2)); +#8014=CARTESIAN_POINT('',(-3.087769798547E0,1.534021681536E2, +-1.610435493650E2)); +#8015=CARTESIAN_POINT('',(-1.544912857114E0,1.535006557045E2, +-1.600456752252E2)); +#8016=CARTESIAN_POINT('',(-4.975996495484E-2,1.536437712320E2, +-1.589935639305E2)); +#8017=CARTESIAN_POINT('',(1.448742266252E0,1.538400807168E2,-1.578489411369E2)); +#8018=CARTESIAN_POINT('',(3.009283524061E0,1.541075760201E2,-1.565509485439E2)); +#8019=CARTESIAN_POINT('',(4.662489019912E0,1.544689504179E2,-1.550421564547E2)); +#8020=CARTESIAN_POINT('',(6.409771728453E0,1.549459224212E2,-1.532740212390E2)); +#8021=CARTESIAN_POINT('',(8.235887427050E0,1.555551710992E2,-1.511980800720E2)); +#8022=CARTESIAN_POINT('',(1.002085913304E1,1.562757026318E2,-1.488829449778E2)); +#8023=CARTESIAN_POINT('',(1.115126808063E1,1.568149579183E2,-1.471893948270E2)); +#8024=CARTESIAN_POINT('',(1.168049901002E1,1.570853716637E2,-1.463330901272E2)); +#8025=CARTESIAN_POINT('',(-2.759388683996E1,1.519298478261E2, +-1.619121994761E2)); +#8026=CARTESIAN_POINT('',(-2.739450877842E1,1.519307892027E2, +-1.619152110080E2)); +#8027=CARTESIAN_POINT('',(-2.645384001193E1,1.519329366184E2, +-1.619223077753E2)); +#8028=CARTESIAN_POINT('',(-2.481829049170E1,1.519185414385E2, +-1.618761837395E2)); +#8029=CARTESIAN_POINT('',(-2.273140904233E1,1.518695914952E2, +-1.617034492479E2)); +#8030=CARTESIAN_POINT('',(-2.076029761816E1,1.518010169E2,-1.614375120803E2)); +#8031=CARTESIAN_POINT('',(-1.888400210190E1,1.517207258622E2, +-1.610892594625E2)); +#8032=CARTESIAN_POINT('',(-1.709187030975E1,1.516358909528E2, +-1.606675658401E2)); +#8033=CARTESIAN_POINT('',(-1.537187691668E1,1.515528582056E2, +-1.601781857257E2)); +#8034=CARTESIAN_POINT('',(-1.371353157651E1,1.514776084454E2, +-1.596247030904E2)); +#8035=CARTESIAN_POINT('',(-1.210966619864E1,1.514161660522E2, +-1.590097004729E2)); +#8036=CARTESIAN_POINT('',(-1.055764350630E1,1.513748157422E2, +-1.583362461253E2)); +#8037=CARTESIAN_POINT('',(-9.056010516682E0,1.513599753087E2, +-1.576073847904E2)); +#8038=CARTESIAN_POINT('',(-7.604897965820E0,1.513781823200E2, +-1.568268163093E2)); +#8039=CARTESIAN_POINT('',(-6.203931495711E0,1.514359055172E2, +-1.559976466650E2)); +#8040=CARTESIAN_POINT('',(-4.856953384194E0,1.515364503739E2, +-1.551253822134E2)); +#8041=CARTESIAN_POINT('',(-3.551551871769E0,1.516827489323E2, +-1.542051568754E2)); +#8042=CARTESIAN_POINT('',(-2.243431378420E0,1.518835447081E2, +-1.532036264176E2)); +#8043=CARTESIAN_POINT('',(-8.816870214962E-1,1.521571045443E2, +-1.520677151287E2)); +#8044=CARTESIAN_POINT('',(5.599425504329E-1,1.525262734141E2, +-1.507474855774E2)); +#8045=CARTESIAN_POINT('',(2.082011401108E0,1.530123199443E2,-1.492011695195E2)); +#8046=CARTESIAN_POINT('',(3.670724739961E0,1.536310728126E2,-1.473872055043E2)); +#8047=CARTESIAN_POINT('',(5.221574740151E0,1.543604252146E2,-1.453660607808E2)); +#8048=CARTESIAN_POINT('',(6.202080652762E0,1.549035066015E2,-1.438896387751E2)); +#8049=CARTESIAN_POINT('',(6.660746514537E0,1.551749924773E2,-1.431437564140E2)); +#8050=CARTESIAN_POINT('',(-2.752527399429E1,1.467191584464E2, +-1.584678839215E2)); +#8051=CARTESIAN_POINT('',(-2.734889461186E1,1.467200732083E2, +-1.584704760262E2)); +#8052=CARTESIAN_POINT('',(-2.651641701172E1,1.467221618970E2, +-1.584765908244E2)); +#8053=CARTESIAN_POINT('',(-2.506590622091E1,1.467081528850E2, +-1.584368778990E2)); +#8054=CARTESIAN_POINT('',(-2.320570447068E1,1.466602521899E2, +-1.582869190050E2)); +#8055=CARTESIAN_POINT('',(-2.143820259620E1,1.465927833414E2, +-1.580541895608E2)); +#8056=CARTESIAN_POINT('',(-1.974419605114E1,1.465133134276E2, +-1.577467044974E2)); +#8057=CARTESIAN_POINT('',(-1.811407577100E1,1.464288011347E2, +-1.573707389895E2)); +#8058=CARTESIAN_POINT('',(-1.653710038276E1,1.463455112067E2, +-1.569298237003E2)); +#8059=CARTESIAN_POINT('',(-1.500395287195E1,1.462694748095E2, +-1.564255188083E2)); +#8060=CARTESIAN_POINT('',(-1.350840220354E1,1.462069071574E2, +-1.558584284939E2)); +#8061=CARTESIAN_POINT('',(-1.204843620728E1,1.461644467535E2, +-1.552295016450E2)); +#8062=CARTESIAN_POINT('',(-1.062363803139E1,1.461490355714E2, +-1.545398208095E2)); +#8063=CARTESIAN_POINT('',(-9.234177504386E0,1.461679517926E2, +-1.537904494854E2)); +#8064=CARTESIAN_POINT('',(-7.884433993199E0,1.462284951653E2, +-1.529845093794E2)); +#8065=CARTESIAN_POINT('',(-6.582908789451E0,1.463344885493E2, +-1.521286025924E2)); +#8066=CARTESIAN_POINT('',(-5.320696531746E0,1.464892169828E2, +-1.512189651622E2)); +#8067=CARTESIAN_POINT('',(-4.058343167696E0,1.467018941613E2, +-1.502242367945E2)); +#8068=CARTESIAN_POINT('',(-2.750705291948E0,1.469915151840E2, +-1.490938128143E2)); +#8069=CARTESIAN_POINT('',(-1.378173408546E0,1.473813267764E2, +-1.477818778806E2)); +#8070=CARTESIAN_POINT('',(5.155225644068E-2,1.478914061008E2, +-1.462554947896E2)); +#8071=CARTESIAN_POINT('',(1.519252822773E0,1.485353296750E2,-1.444835774260E2)); +#8072=CARTESIAN_POINT('',(2.926820057977E0,1.492880430898E2,-1.425314136350E2)); +#8073=CARTESIAN_POINT('',(3.796818957265E0,1.498412574441E2,-1.411304763313E2)); +#8074=CARTESIAN_POINT('',(4.199107194811E0,1.501155827284E2,-1.404304535831E2)); +#8075=CARTESIAN_POINT('',(-2.750886855887E1,1.404936764745E2, +-1.589801343742E2)); +#8076=CARTESIAN_POINT('',(-2.733811946803E1,1.404945594386E2, +-1.589825349735E2)); +#8077=CARTESIAN_POINT('',(-2.653173726239E1,1.404965779630E2, +-1.589882079748E2)); +#8078=CARTESIAN_POINT('',(-2.512205554106E1,1.404830303259E2, +-1.589514092563E2)); +#8079=CARTESIAN_POINT('',(-2.330002748036E1,1.404363832224E2, +-1.588105405511E2)); +#8080=CARTESIAN_POINT('',(-2.155307166140E1,1.403702354669E2, +-1.585890618300E2)); +#8081=CARTESIAN_POINT('',(-1.986158876866E1,1.402917465928E2, +-1.582922917816E2)); +#8082=CARTESIAN_POINT('',(-1.821599621381E1,1.402076197466E2, +-1.579239265180E2)); +#8083=CARTESIAN_POINT('',(-1.660573970601E1,1.401240225513E2, +-1.574850287014E2)); +#8084=CARTESIAN_POINT('',(-1.502174415758E1,1.400470463180E2, +-1.569746774387E2)); +#8085=CARTESIAN_POINT('',(-1.345814381408E1,1.399831342605E2, +-1.563909205474E2)); +#8086=CARTESIAN_POINT('',(-1.191347520326E1,1.399393475695E2, +-1.557320112537E2)); +#8087=CARTESIAN_POINT('',(-1.038864604093E1,1.399232544843E2, +-1.549965653696E2)); +#8088=CARTESIAN_POINT('',(-8.883902522563E0,1.399430180355E2, +-1.541822765551E2)); +#8089=CARTESIAN_POINT('',(-7.410595977853E0,1.400069308189E2, +-1.532927315237E2)); +#8090=CARTESIAN_POINT('',(-5.984659433698E0,1.401194338421E2, +-1.523369348821E2)); +#8091=CARTESIAN_POINT('',(-4.600604050317E0,1.402842338863E2, +-1.513120593010E2)); +#8092=CARTESIAN_POINT('',(-3.219830501440E0,1.405111063955E2, +-1.501849338056E2)); +#8093=CARTESIAN_POINT('',(-1.798469586207E0,1.408199165542E2, +-1.489010564440E2)); +#8094=CARTESIAN_POINT('',(-3.230069365236E-1,1.412343910824E2, +-1.474136009431E2)); +#8095=CARTESIAN_POINT('',(1.186737570693E0,1.417731836376E2,-1.456967401239E2)); +#8096=CARTESIAN_POINT('',(2.701567102287E0,1.424471799651E2,-1.437289573003E2)); +#8097=CARTESIAN_POINT('',(4.117966617247E0,1.432278039984E2,-1.415912647159E2)); +#8098=CARTESIAN_POINT('',(4.964113797365E0,1.437931247366E2,-1.400918869906E2)); +#8099=CARTESIAN_POINT('',(5.348322228838E0,1.440708424101E2,-1.393535488724E2)); +#8100=(BOUNDED_SURFACE()B_SPLINE_SURFACE(3,3,((#8000,#8001,#8002,#8003,#8004, +#8005,#8006,#8007,#8008,#8009,#8010,#8011,#8012,#8013,#8014,#8015,#8016,#8017, +#8018,#8019,#8020,#8021,#8022,#8023,#8024),(#8025,#8026,#8027,#8028,#8029,#8030, +#8031,#8032,#8033,#8034,#8035,#8036,#8037,#8038,#8039,#8040,#8041,#8042,#8043, +#8044,#8045,#8046,#8047,#8048,#8049),(#8050,#8051,#8052,#8053,#8054,#8055,#8056, +#8057,#8058,#8059,#8060,#8061,#8062,#8063,#8064,#8065,#8066,#8067,#8068,#8069, +#8070,#8071,#8072,#8073,#8074),(#8075,#8076,#8077,#8078,#8079,#8080,#8081,#8082, +#8083,#8084,#8085,#8086,#8087,#8088,#8089,#8090,#8091,#8092,#8093,#8094,#8095, +#8096,#8097,#8098,#8099)),.UNSPECIFIED.,.F.,.F.,.F.)B_SPLINE_SURFACE_WITH_KNOTS( +(4,4),(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0,1.E0),( +-5.026575974010E-3,0.E0,1.869780474703E-2,3.634360665471E-2,5.336374255441E-2, +6.985181998337E-2,8.594324651670E-2,1.017644685029E-1,1.174368672858E-1, +1.330581164831E-1,1.486713224895E-1,1.642785029198E-1,1.799278695868E-1, +1.956724773613E-1,2.112966463721E-1,2.266874114486E-1,2.425340944240E-1, +2.598505094852E-1,2.790484355486E-1,3.001851504498E-1,3.234340270725E-1, +3.490154003843E-1,3.733618853352E-1),.UNSPECIFIED.)GEOMETRIC_REPRESENTATION_ITEM()RATIONAL_B_SPLINE_SURFACE(((1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0),(9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1),(9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1, +9.600953986335E-1,9.600953986335E-1,9.600953986335E-1,9.600953986335E-1),( +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0,1.119713804099E0,1.119713804099E0,1.119713804099E0, +1.119713804099E0)))REPRESENTATION_ITEM('')SURFACE()); +#8101=ORIENTED_EDGE('',*,*,#5564,.F.); +#8103=ORIENTED_EDGE('',*,*,#8102,.T.); +#8104=ORIENTED_EDGE('',*,*,#7987,.T.); +#8105=ORIENTED_EDGE('',*,*,#7909,.F.); +#8106=EDGE_LOOP('',(#8101,#8103,#8104,#8105)); +#8107=FACE_OUTER_BOUND('',#8106,.F.); +#8109=CARTESIAN_POINT('',(-6.567161149244E1,1.570847155375E2, +-1.463333439139E2)); +#8110=CARTESIAN_POINT('',(-6.513408061200E1,1.568100243255E2, +-1.472030231098E2)); +#8111=CARTESIAN_POINT('',(-6.405943599515E1,1.562980100031E2, +-1.488110802753E2)); +#8112=CARTESIAN_POINT('',(-6.240037707260E1,1.556235871291E2, +-1.509759618337E2)); +#8113=CARTESIAN_POINT('',(-6.078961002005E1,1.550696418197E2, +-1.528437790223E2)); +#8114=CARTESIAN_POINT('',(-5.925129050720E1,1.546244345612E2, +-1.544508406355E2)); +#8115=CARTESIAN_POINT('',(-5.779609883341E1,1.542742722941E2, +-1.558362743114E2)); +#8116=CARTESIAN_POINT('',(-5.639524072877E1,1.539978302723E2, +-1.570633229841E2)); +#8117=CARTESIAN_POINT('',(-5.499910644135E1,1.537770376673E2, +-1.581934024524E2)); +#8118=CARTESIAN_POINT('',(-5.356512181172E1,1.536026701374E2, +-1.592659499973E2)); +#8119=CARTESIAN_POINT('',(-5.207918041422E1,1.534726221719E2, +-1.602903069931E2)); +#8120=CARTESIAN_POINT('',(-5.054061288955E1,1.533854208470E2, +-1.612647764757E2)); +#8121=CARTESIAN_POINT('',(-4.892979176981E1,1.533378268304E2, +-1.621982535447E2)); +#8122=CARTESIAN_POINT('',(-4.717602388231E1,1.533273157481E2, +-1.631208182854E2)); +#8123=CARTESIAN_POINT('',(-4.517866292449E1,1.533542185488E2, +-1.640594951632E2)); +#8124=CARTESIAN_POINT('',(-4.285333062008E1,1.534215522941E2, +-1.650094840499E2)); +#8125=CARTESIAN_POINT('',(-4.020259514849E1,1.535253674966E2, +-1.659130785526E2)); +#8126=CARTESIAN_POINT('',(-3.729530552751E1,1.536489699825E2, +-1.666967662881E2)); +#8127=CARTESIAN_POINT('',(-3.416428002271E1,1.537707277073E2, +-1.673151599849E2)); +#8128=CARTESIAN_POINT('',(-3.072329582742E1,1.538697672317E2, +-1.677398097642E2)); +#8129=CARTESIAN_POINT('',(-2.805887323352E1,1.539009761054E2, +-1.678539165500E2)); +#8130=CARTESIAN_POINT('',(-2.653722853075E1,1.538979104715E2, +-1.678424072919E2)); +#8131=CARTESIAN_POINT('',(-2.630736707304E1,1.538969505920E2, +-1.678389279278E2)); +#8132=CARTESIAN_POINT('',(-6.065257662064E1,1.551739509897E2, +-1.431441322467E2)); +#8133=CARTESIAN_POINT('',(-6.018671261060E1,1.548981706122E2, +-1.439016790598E2)); +#8134=CARTESIAN_POINT('',(-5.925455280696E1,1.543824925766E2, +-1.453036150817E2)); +#8135=CARTESIAN_POINT('',(-5.781318781921E1,1.536999980761E2, +-1.471934871016E2)); +#8136=CARTESIAN_POINT('',(-5.641204599001E1,1.531376395513E2, +-1.488254527716E2)); +#8137=CARTESIAN_POINT('',(-5.507249040587E1,1.526844629334E2, +-1.502305566272E2)); +#8138=CARTESIAN_POINT('',(-5.380400481662E1,1.523270553611E2, +-1.514426650960E2)); +#8139=CARTESIAN_POINT('',(-5.258201379617E1,1.520445036592E2, +-1.525164691105E2)); +#8140=CARTESIAN_POINT('',(-5.136352823274E1,1.518186732781E2, +-1.535054330439E2)); +#8141=CARTESIAN_POINT('',(-5.011162917477E1,1.516403363311E2, +-1.544438449473E2)); +#8142=CARTESIAN_POINT('',(-4.881423267092E1,1.515074294981E2, +-1.553397018559E2)); +#8143=CARTESIAN_POINT('',(-4.747103468666E1,1.514184442367E2, +-1.561913775841E2)); +#8144=CARTESIAN_POINT('',(-4.606511324162E1,1.513699818098E2, +-1.570065980555E2)); +#8145=CARTESIAN_POINT('',(-4.453532869953E1,1.513593380221E2, +-1.578114206937E2)); +#8146=CARTESIAN_POINT('',(-4.279436978762E1,1.513865974128E2, +-1.586293258311E2)); +#8147=CARTESIAN_POINT('',(-4.076919534581E1,1.514545174659E2, +-1.594560769361E2)); +#8148=CARTESIAN_POINT('',(-3.846270631992E1,1.515587932209E2, +-1.602414533548E2)); +#8149=CARTESIAN_POINT('',(-3.593528504388E1,1.516824336303E2, +-1.609217842009E2)); +#8150=CARTESIAN_POINT('',(-3.321564826215E1,1.518037751483E2, +-1.614580399638E2)); +#8151=CARTESIAN_POINT('',(-3.022898295820E1,1.519021454530E2, +-1.618259313279E2)); +#8152=CARTESIAN_POINT('',(-2.791778688635E1,1.519330392571E2, +-1.619246908087E2)); +#8153=CARTESIAN_POINT('',(-2.659816523774E1,1.519300053707E2, +-1.619147288581E2)); +#8154=CARTESIAN_POINT('',(-2.639882747447E1,1.519290558371E2, +-1.619117174376E2)); +#8155=CARTESIAN_POINT('',(-5.819142970477E1,1.501148011251E2, +-1.404310966611E2)); +#8156=CARTESIAN_POINT('',(-5.778281127819E1,1.498361369536E2, +-1.411420972635E2)); +#8157=CARTESIAN_POINT('',(-5.695552651351E1,1.493107584691E2, +-1.424726188385E2)); +#8158=CARTESIAN_POINT('',(-5.564859531286E1,1.486068926446E2, +-1.442963362688E2)); +#8159=CARTESIAN_POINT('',(-5.435707576917E1,1.480222583675E2, +-1.458883737289E2)); +#8160=CARTESIAN_POINT('',(-5.310492245459E1,1.475479811995E2, +-1.472708010268E2)); +#8161=CARTESIAN_POINT('',(-5.190322554415E1,1.471713901621E2, +-1.484727809649E2)); +#8162=CARTESIAN_POINT('',(-5.073505881340E1,1.468726618007E2, +-1.495408205584E2)); +#8163=CARTESIAN_POINT('',(-4.956279328497E1,1.466334928509E2, +-1.505247018902E2)); +#8164=CARTESIAN_POINT('',(-4.835379022124E1,1.464446460398E2, +-1.514558256164E2)); +#8165=CARTESIAN_POINT('',(-4.709917789343E1,1.463041697553E2, +-1.523400007777E2)); +#8166=CARTESIAN_POINT('',(-4.580205461782E1,1.462104611478E2, +-1.531739060739E2)); +#8167=CARTESIAN_POINT('',(-4.444865810872E1,1.461596994227E2, +-1.539645224931E2)); +#8168=CARTESIAN_POINT('',(-4.298692530272E1,1.461487042697E2, +-1.547345567810E2)); +#8169=CARTESIAN_POINT('',(-4.133925306666E1,1.461769078070E2, +-1.555053222856E2)); +#8170=CARTESIAN_POINT('',(-3.944263954125E1,1.462463802329E2, +-1.562721720432E2)); +#8171=CARTESIAN_POINT('',(-3.730785845477E1,1.463518753974E2, +-1.569885210335E2)); +#8172=CARTESIAN_POINT('',(-3.499655879911E1,1.464756162172E2, +-1.575990144467E2)); +#8173=CARTESIAN_POINT('',(-3.253726831501E1,1.465958557405E2, +-1.580731539737E2)); +#8174=CARTESIAN_POINT('',(-2.986331937556E1,1.466924541455E2, +-1.583941134596E2)); +#8175=CARTESIAN_POINT('',(-2.781162030688E1,1.467225137367E2, +-1.584791056859E2)); +#8176=CARTESIAN_POINT('',(-2.664377197122E1,1.467195639085E2, +-1.584705241470E2)); +#8177=CARTESIAN_POINT('',(-2.646743186891E1,1.467186417679E2, +-1.584679321700E2)); +#8178=CARTESIAN_POINT('',(-5.934055652018E1,1.440705570981E2, +-1.393543304614E2)); +#8179=CARTESIAN_POINT('',(-5.895028419365E1,1.437884476136E2, +-1.401042741728E2)); +#8180=CARTESIAN_POINT('',(-5.814542015456E1,1.432514798538E2, +-1.415286247963E2)); +#8181=CARTESIAN_POINT('',(-5.683217874121E1,1.425220813805E2, +-1.435233302711E2)); +#8182=CARTESIAN_POINT('',(-5.550340408467E1,1.419108339199E2, +-1.452884361220E2)); +#8183=CARTESIAN_POINT('',(-5.418991819299E1,1.414113476008E2, +-1.468371645521E2)); +#8184=CARTESIAN_POINT('',(-5.290653373407E1,1.410118377832E2, +-1.481965435930E2)); +#8185=CARTESIAN_POINT('',(-5.164413324640E1,1.406937829181E2, +-1.494087638678E2)); +#8186=CARTESIAN_POINT('',(-5.036689538916E1,1.404386781755E2, +-1.505257688504E2)); +#8187=CARTESIAN_POINT('',(-4.904325642635E1,1.402372750684E2, +-1.515795682862E2)); +#8188=CARTESIAN_POINT('',(-4.766737305453E1,1.400877554440E2, +-1.525738751523E2)); +#8189=CARTESIAN_POINT('',(-4.624732812247E1,1.399884037824E2, +-1.535026319708E2)); +#8190=CARTESIAN_POINT('',(-4.477162216172E1,1.399348950504E2, +-1.543728175697E2)); +#8191=CARTESIAN_POINT('',(-4.319291057799E1,1.399234801158E2, +-1.552058927490E2)); +#8192=CARTESIAN_POINT('',(-4.143552028963E1,1.399528116397E2, +-1.560233076229E2)); +#8193=CARTESIAN_POINT('',(-3.944089812028E1,1.400241387091E2, +-1.568192062680E2)); +#8194=CARTESIAN_POINT('',(-3.723186419712E1,1.401310907209E2, +-1.575452345957E2)); +#8195=CARTESIAN_POINT('',(-3.488052588909E1,1.402549515026E2, +-1.581492725003E2)); +#8196=CARTESIAN_POINT('',(-3.241921526865E1,1.403738744558E2, +-1.586078783756E2)); +#8197=CARTESIAN_POINT('',(-2.978266273148E1,1.404683559451E2, +-1.589118005791E2)); +#8198=CARTESIAN_POINT('',(-2.778577029662E1,1.404974188894E2, +-1.589904924758E2)); +#8199=CARTESIAN_POINT('',(-2.665454730391E1,1.404945694867E2, +-1.589825341891E2)); +#8200=CARTESIAN_POINT('',(-2.648384503529E1,1.404936800731E2, +-1.589801338016E2)); +#8201=(BOUNDED_SURFACE()B_SPLINE_SURFACE(3,3,((#8109,#8110,#8111,#8112,#8113, +#8114,#8115,#8116,#8117,#8118,#8119,#8120,#8121,#8122,#8123,#8124,#8125,#8126, +#8127,#8128,#8129,#8130,#8131),(#8132,#8133,#8134,#8135,#8136,#8137,#8138,#8139, +#8140,#8141,#8142,#8143,#8144,#8145,#8146,#8147,#8148,#8149,#8150,#8151,#8152, +#8153,#8154),(#8155,#8156,#8157,#8158,#8159,#8160,#8161,#8162,#8163,#8164,#8165, +#8166,#8167,#8168,#8169,#8170,#8171,#8172,#8173,#8174,#8175,#8176,#8177),(#8178, +#8179,#8180,#8181,#8182,#8183,#8184,#8185,#8186,#8187,#8188,#8189,#8190,#8191, +#8192,#8193,#8194,#8195,#8196,#8197,#8198,#8199,#8200)),.UNSPECIFIED.,.F.,.F., +.F.)B_SPLINE_SURFACE_WITH_KNOTS((4,4),(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +4),(0.E0,1.E0),(6.182376059121E-1,6.435262305080E-1,6.667460293865E-1, +6.879913097884E-1,7.072938109400E-1,7.247355833054E-1,7.408097609683E-1, +7.563944195289E-1,7.721058520821E-1,7.879152510729E-1,8.036285256329E-1, +8.193962354810E-1,8.358140171851E-1,8.538590188990E-1,8.743833835378E-1, +8.972899059853E-1,9.210897361766E-1,9.452901665442E-1,9.711068248476E-1,1.E0, +1.005138772699E0),.UNSPECIFIED.)GEOMETRIC_REPRESENTATION_ITEM()RATIONAL_B_SPLINE_SURFACE(((1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0),(9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1),(9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1,9.601015464715E-1,9.601015464715E-1,9.601015464715E-1, +9.601015464715E-1),(1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0, +1.119695360586E0,1.119695360586E0,1.119695360586E0,1.119695360586E0)))REPRESENTATION_ITEM('')SURFACE()); +#8203=ORIENTED_EDGE('',*,*,#8202,.F.); +#8204=ORIENTED_EDGE('',*,*,#8102,.F.); +#8205=ORIENTED_EDGE('',*,*,#5562,.F.); +#8207=ORIENTED_EDGE('',*,*,#8206,.T.); +#8208=EDGE_LOOP('',(#8203,#8204,#8205,#8207)); +#8209=FACE_OUTER_BOUND('',#8208,.F.); +#8211=CARTESIAN_POINT('',(-2.633351884309E1,1.608880620614E2, +-1.763439659014E2)); +#8212=CARTESIAN_POINT('',(-3.323780886095E1,1.608122008087E2, +-1.762858458308E2)); +#8213=CARTESIAN_POINT('',(-4.553817405473E1,1.614628151787E2, +-1.762393187678E2)); +#8214=CARTESIAN_POINT('',(-5.699778109520E1,1.660505263873E2, +-1.763238287462E2)); +#8215=CARTESIAN_POINT('',(-6.306554870842E1,1.733009015618E2, +-1.763974728439E2)); +#8216=CARTESIAN_POINT('',(-6.599874546878E1,1.806176812693E2, +-1.764411287242E2)); +#8217=CARTESIAN_POINT('',(-6.750535581707E1,1.897539472670E2, +-1.764673368226E2)); +#8218=CARTESIAN_POINT('',(-6.772118965800E1,1.966146414271E2, +-1.764637789170E2)); +#8219=CARTESIAN_POINT('',(-6.770349857030E1,2.001464902567E2, +-1.764549543828E2)); +#8220=CARTESIAN_POINT('',(-2.631928785628E1,1.598027132703E2, +-1.751747375621E2)); +#8221=CARTESIAN_POINT('',(-3.336976065760E1,1.597458247323E2, +-1.751394161479E2)); +#8222=CARTESIAN_POINT('',(-4.593253922317E1,1.604737672761E2, +-1.751088774212E2)); +#8223=CARTESIAN_POINT('',(-5.765260923319E1,1.652493168436E2, +-1.751608699940E2)); +#8224=CARTESIAN_POINT('',(-6.387653125030E1,1.726987350731E2, +-1.752028595058E2)); +#8225=CARTESIAN_POINT('',(-6.689808457949E1,1.801915451799E2, +-1.752266480783E2)); +#8226=CARTESIAN_POINT('',(-6.846029483373E1,1.895349357630E2, +-1.752419459524E2)); +#8227=CARTESIAN_POINT('',(-6.868758304969E1,1.965493322498E2, +-1.752403942842E2)); +#8228=CARTESIAN_POINT('',(-6.866944942723E1,2.001611818856E2, +-1.752353556759E2)); +#8229=CARTESIAN_POINT('',(-2.629237236254E1,1.577741615647E2, +-1.727660542132E2)); +#8230=CARTESIAN_POINT('',(-3.362407718044E1,1.577453157273E2, +-1.727658756968E2)); +#8231=CARTESIAN_POINT('',(-4.668891401806E1,1.586062213401E2, +-1.727598705370E2)); +#8232=CARTESIAN_POINT('',(-5.890193798842E1,1.637271126232E2, +-1.727598200929E2)); +#8233=CARTESIAN_POINT('',(-6.542286055734E1,1.715497909195E2, +-1.727512646322E2)); +#8234=CARTESIAN_POINT('',(-6.861312145544E1,1.793767825430E2, +-1.727430703861E2)); +#8235=CARTESIAN_POINT('',(-7.028115262310E1,1.891160668818E2, +-1.727403030331E2)); +#8236=CARTESIAN_POINT('',(-7.052983348673E1,1.964247823619E2, +-1.727412847460E2)); +#8237=CARTESIAN_POINT('',(-7.051064596671E1,2.001895081371E2, +-1.727419034102E2)); +#8238=CARTESIAN_POINT('',(-2.624087392236E1,1.540208512916E2, +-1.678042987537E2)); +#8239=CARTESIAN_POINT('',(-3.410820433260E1,1.540280304571E2, +-1.678662039299E2)); +#8240=CARTESIAN_POINT('',(-4.812250508890E1,1.551067018888E2, +-1.679074861906E2)); +#8241=CARTESIAN_POINT('',(-6.125825283372E1,1.608505937265E2, +-1.678257671980E2)); +#8242=CARTESIAN_POINT('',(-6.833404157332E1,1.693681042720E2, +-1.677338125678E2)); +#8243=CARTESIAN_POINT('',(-7.183833428966E1,1.778249020906E2, +-1.676713399405E2)); +#8244=CARTESIAN_POINT('',(-7.370272127162E1,1.883165784198E2, +-1.676360129195E2)); +#8245=CARTESIAN_POINT('',(-7.399103201525E1,1.961873534186E2, +-1.676385968537E2)); +#8246=CARTESIAN_POINT('',(-7.397014340662E1,2.002439404062E2, +-1.676470727321E2)); +#8247=CARTESIAN_POINT('',(-2.618502793315E1,1.503336524865E2, +-1.611169338693E2)); +#8248=CARTESIAN_POINT('',(-3.463505439426E1,1.503080840710E2, +-1.611789765973E2)); +#8249=CARTESIAN_POINT('',(-4.966633632016E1,1.514942823527E2, +-1.612265791739E2)); +#8250=CARTESIAN_POINT('',(-6.377776944569E1,1.578137406763E2, +-1.611540564626E2)); +#8251=CARTESIAN_POINT('',(-7.143621099852E1,1.670476166734E2, +-1.610638004222E2)); +#8252=CARTESIAN_POINT('',(-7.526414394270E1,1.761704230096E2, +-1.609978728972E2)); +#8253=CARTESIAN_POINT('',(-7.732768419456E1,1.874656683066E2, +-1.609534354388E2)); +#8254=CARTESIAN_POINT('',(-7.765467583581E1,1.959366597636E2, +-1.609470407256E2)); +#8255=CARTESIAN_POINT('',(-7.763175343730E1,2.003026351601E2, +-1.609505619073E2)); +#8256=CARTESIAN_POINT('',(-2.615140835997E1,1.487464937099E2, +-1.527301680907E2)); +#8257=CARTESIAN_POINT('',(-3.495234324611E1,1.487020600663E2, +-1.527271499353E2)); +#8258=CARTESIAN_POINT('',(-5.054430876398E1,1.499018457837E2, +-1.527196130971E2)); +#8259=CARTESIAN_POINT('',(-6.511279010846E1,1.564003747230E2, +-1.527083645577E2)); +#8260=CARTESIAN_POINT('',(-7.303687157681E1,1.659175884275E2, +-1.526910704729E2)); +#8261=CARTESIAN_POINT('',(-7.700594544756E1,1.753375178403E2, +-1.526766113983E2)); +#8262=CARTESIAN_POINT('',(-7.914813489891E1,1.870267806755E2, +-1.526669077395E2)); +#8263=CARTESIAN_POINT('',(-7.948512956473E1,1.958083639714E2, +-1.526661418750E2)); +#8264=CARTESIAN_POINT('',(-7.946068264516E1,2.003325973019E2, +-1.526674937887E2)); +#8265=CARTESIAN_POINT('',(-2.613996742136E1,1.484210963809E2, +-1.471432374491E2)); +#8266=CARTESIAN_POINT('',(-3.506092494286E1,1.483786785095E2, +-1.471403896062E2)); +#8267=CARTESIAN_POINT('',(-5.080865360123E1,1.495649946563E2, +-1.471399926390E2)); +#8268=CARTESIAN_POINT('',(-6.543842981866E1,1.560424890169E2, +-1.471465219519E2)); +#8269=CARTESIAN_POINT('',(-7.338668339784E1,1.655893997559E2, +-1.471420063410E2)); +#8270=CARTESIAN_POINT('',(-7.736261025553E1,1.750711321978E2, +-1.471354977907E2)); +#8271=CARTESIAN_POINT('',(-7.950122796595E1,1.868751501311E2, +-1.471304493201E2)); +#8272=CARTESIAN_POINT('',(-7.983265863448E1,1.957636911826E2, +-1.471295947359E2)); +#8273=CARTESIAN_POINT('',(-7.980789089219E1,2.003430746644E2, +-1.471299642779E2)); +#8274=CARTESIAN_POINT('',(-2.613597521897E1,1.483553542689E2, +-1.446369802980E2)); +#8275=CARTESIAN_POINT('',(-3.509901896842E1,1.483137737845E2, +-1.446369011577E2)); +#8276=CARTESIAN_POINT('',(-5.089384687343E1,1.494894014616E2, +-1.446425724363E2)); +#8277=CARTESIAN_POINT('',(-6.552581708319E1,1.559419878532E2, +-1.446557050483E2)); +#8278=CARTESIAN_POINT('',(-7.346887590061E1,1.654861497763E2, +-1.446547776105E2)); +#8279=CARTESIAN_POINT('',(-7.743846406190E1,1.749818444403E2, +-1.446501780776E2)); +#8280=CARTESIAN_POINT('',(-7.956935655873E1,1.868220932491E2, +-1.446458569323E2)); +#8281=CARTESIAN_POINT('',(-7.989691887072E1,1.957480258681E2, +-1.446445119585E2)); +#8282=CARTESIAN_POINT('',(-7.987205128538E1,2.003467578106E2, +-1.446443686990E2)); +#8283=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#8211,#8212,#8213,#8214,#8215,#8216, +#8217,#8218,#8219),(#8220,#8221,#8222,#8223,#8224,#8225,#8226,#8227,#8228),( +#8229,#8230,#8231,#8232,#8233,#8234,#8235,#8236,#8237),(#8238,#8239,#8240,#8241, +#8242,#8243,#8244,#8245,#8246),(#8247,#8248,#8249,#8250,#8251,#8252,#8253,#8254, +#8255),(#8256,#8257,#8258,#8259,#8260,#8261,#8262,#8263,#8264),(#8265,#8266, +#8267,#8268,#8269,#8270,#8271,#8272,#8273),(#8274,#8275,#8276,#8277,#8278,#8279, +#8280,#8281,#8282)),.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1,1,1,4),(4,1,1,1,1,1,4),( +-1.584827803642E-1,-5.546576851006E-3,1.506023159307E-1,4.629001014941E-1, +7.751978870575E-1,1.023719864332E0),(-4.146085448080E-3,1.25E-1,2.5E-1,3.125E-1, +3.75E-1,4.375E-1,5.041903539469E-1),.UNSPECIFIED.); +#8285=ORIENTED_EDGE('',*,*,#8284,.T.); +#8287=ORIENTED_EDGE('',*,*,#8286,.T.); +#8289=ORIENTED_EDGE('',*,*,#8288,.T.); +#8291=ORIENTED_EDGE('',*,*,#8290,.T.); +#8292=ORIENTED_EDGE('',*,*,#7989,.T.); +#8293=ORIENTED_EDGE('',*,*,#8202,.T.); +#8294=EDGE_LOOP('',(#8285,#8287,#8289,#8291,#8292,#8293)); +#8295=FACE_OUTER_BOUND('',#8294,.F.); +#8297=CARTESIAN_POINT('',(-7.089606317318E1,1.602267210426E2, +-1.225763561360E2)); +#8298=CARTESIAN_POINT('',(-7.089525447982E1,1.602382463455E2, +-1.228445772900E2)); +#8299=CARTESIAN_POINT('',(-7.085634119153E1,1.603535089555E2, +-1.261329067450E2)); +#8300=CARTESIAN_POINT('',(-7.002625389479E1,1.599611731910E2, +-1.328727284139E2)); +#8301=CARTESIAN_POINT('',(-6.727684757190E1,1.581825818556E2, +-1.407394593593E2)); +#8302=CARTESIAN_POINT('',(-6.480026481867E1,1.567238390300E2, +-1.451296280506E2)); +#8303=CARTESIAN_POINT('',(-6.367959006786E1,1.561055831274E2, +-1.468302718857E2)); +#8304=CARTESIAN_POINT('',(-6.581243902685E1,1.578450189295E2, +-1.226088154519E2)); +#8305=CARTESIAN_POINT('',(-6.581158387224E1,1.578561096356E2, +-1.228415195864E2)); +#8306=CARTESIAN_POINT('',(-6.577624096636E1,1.579671305057E2, +-1.256943317573E2)); +#8307=CARTESIAN_POINT('',(-6.506217019531E1,1.575902971788E2, +-1.315411831347E2)); +#8308=CARTESIAN_POINT('',(-6.269254182939E1,1.558602370068E2, +-1.384111787960E2)); +#8309=CARTESIAN_POINT('',(-6.054083474694E1,1.544188140411E2, +-1.422795984126E2)); +#8310=CARTESIAN_POINT('',(-5.956352834895E1,1.538048665863E2, +-1.437834353522E2)); +#8311=CARTESIAN_POINT('',(-6.299615985291E1,1.529910199486E2, +-1.227606535648E2)); +#8312=CARTESIAN_POINT('',(-6.299479331362E1,1.530012249299E2, +-1.229582334028E2)); +#8313=CARTESIAN_POINT('',(-6.295818466450E1,1.531036009736E2, +-1.253800807692E2)); +#8314=CARTESIAN_POINT('',(-6.237733498293E1,1.527583622010E2, +-1.303423084044E2)); +#8315=CARTESIAN_POINT('',(-6.043090639741E1,1.511272103752E2, +-1.363628541195E2)); +#8316=CARTESIAN_POINT('',(-5.859118952385E1,1.497210859388E2, +-1.398959068405E2)); +#8317=CARTESIAN_POINT('',(-5.774042520815E1,1.491159192638E2, +-1.412911617077E2)); +#8318=CARTESIAN_POINT('',(-6.345407512124E1,1.474000798650E2, +-1.229775867500E2)); +#8319=CARTESIAN_POINT('',(-6.345191509928E1,1.474092646495E2, +-1.231529923205E2)); +#8320=CARTESIAN_POINT('',(-6.340965709780E1,1.475016833968E2, +-1.253025018191E2)); +#8321=CARTESIAN_POINT('',(-6.293160512673E1,1.471928359090E2, +-1.297047145674E2)); +#8322=CARTESIAN_POINT('',(-6.130049976579E1,1.456756088369E2, +-1.353267829775E2)); +#8323=CARTESIAN_POINT('',(-5.964834785319E1,1.443101420034E2, +-1.388307481801E2)); +#8324=CARTESIAN_POINT('',(-5.886205922193E1,1.437150892187E2, +-1.402444650325E2)); +#8325=(BOUNDED_SURFACE()B_SPLINE_SURFACE(3,3,((#8297,#8298,#8299,#8300,#8301, +#8302,#8303),(#8304,#8305,#8306,#8307,#8308,#8309,#8310),(#8311,#8312,#8313, +#8314,#8315,#8316,#8317),(#8318,#8319,#8320,#8321,#8322,#8323,#8324)), +.UNSPECIFIED.,.F.,.F.,.F.)B_SPLINE_SURFACE_WITH_KNOTS((4,4),(4,1,1,1,4),(0.E0, +1.E0),(-3.182469416041E-3,0.E0,3.580500146193E-2,7.649806247072E-2, +1.055206547686E-1),.UNSPECIFIED.)GEOMETRIC_REPRESENTATION_ITEM()RATIONAL_B_SPLINE_SURFACE(((1.098150052804E0,1.098150052804E0,1.098150052804E0,1.098150052804E0, +1.098150052804E0,1.098150052804E0,1.098150052804E0),(9.672833157320E-1, +9.672833157320E-1,9.672833157320E-1,9.672833157320E-1,9.672833157320E-1, +9.672833157320E-1,9.672833157320E-1),(9.672833157320E-1,9.672833157320E-1, +9.672833157320E-1,9.672833157320E-1,9.672833157320E-1,9.672833157320E-1, +9.672833157320E-1),(1.098150052804E0,1.098150052804E0,1.098150052804E0, +1.098150052804E0,1.098150052804E0,1.098150052804E0,1.098150052804E0)))REPRESENTATION_ITEM('')SURFACE()); +#8326=ORIENTED_EDGE('',*,*,#8284,.F.); +#8327=ORIENTED_EDGE('',*,*,#8206,.F.); +#8328=ORIENTED_EDGE('',*,*,#5560,.F.); +#8330=ORIENTED_EDGE('',*,*,#8329,.T.); +#8332=ORIENTED_EDGE('',*,*,#8331,.F.); +#8333=EDGE_LOOP('',(#8326,#8327,#8328,#8330,#8332)); +#8334=FACE_OUTER_BOUND('',#8333,.F.); +#8336=CARTESIAN_POINT('',(-7.823827921985E1,1.467295891946E2, +-5.324172437370E1)); +#8337=DIRECTION('',(2.599859414348E-2,2.509251576834E-2,-9.993470061770E-1)); +#8338=DIRECTION('',(6.003887460020E-1,7.989119745957E-1,3.567927300055E-2)); +#8339=AXIS2_PLACEMENT_3D('',#8336,#8337,#8338); +#8340=CYLINDRICAL_SURFACE('',#8339,1.300005524497E1); +#8342=ORIENTED_EDGE('',*,*,#8341,.F.); +#8344=ORIENTED_EDGE('',*,*,#8343,.F.); +#8345=ORIENTED_EDGE('',*,*,#8329,.F.); +#8347=ORIENTED_EDGE('',*,*,#8346,.F.); +#8348=EDGE_LOOP('',(#8342,#8344,#8345,#8347)); +#8349=FACE_OUTER_BOUND('',#8348,.F.); +#8351=CARTESIAN_POINT('',(0.E0,0.E0,-5.36E1)); +#8352=DIRECTION('',(0.E0,0.E0,1.E0)); +#8353=DIRECTION('',(0.E0,1.E0,0.E0)); +#8354=AXIS2_PLACEMENT_3D('',#8351,#8352,#8353); +#8355=PLANE('',#8354); +#8356=ORIENTED_EDGE('',*,*,#8341,.T.); +#8358=ORIENTED_EDGE('',*,*,#8357,.F.); +#8360=ORIENTED_EDGE('',*,*,#8359,.T.); +#8362=ORIENTED_EDGE('',*,*,#8361,.F.); +#8364=ORIENTED_EDGE('',*,*,#8363,.T.); +#8366=ORIENTED_EDGE('',*,*,#8365,.T.); +#8367=EDGE_LOOP('',(#8356,#8358,#8360,#8362,#8364,#8366)); +#8368=FACE_OUTER_BOUND('',#8367,.F.); +#8370=CARTESIAN_POINT('',(-6.549614978208E1,1.385798492198E2, +-4.345308847415E1)); +#8371=DIRECTION('',(-9.996573249756E-1,0.E0,-2.617694830787E-2)); +#8372=DIRECTION('',(2.617694830787E-2,0.E0,-9.996573249756E-1)); +#8373=AXIS2_PLACEMENT_3D('',#8370,#8371,#8372); +#8374=PLANE('',#8373); +#8376=ORIENTED_EDGE('',*,*,#8375,.T.); +#8378=ORIENTED_EDGE('',*,*,#8377,.F.); +#8379=ORIENTED_EDGE('',*,*,#8357,.T.); +#8380=ORIENTED_EDGE('',*,*,#8346,.T.); +#8381=ORIENTED_EDGE('',*,*,#5558,.F.); +#8383=ORIENTED_EDGE('',*,*,#8382,.T.); +#8384=EDGE_LOOP('',(#8376,#8378,#8379,#8380,#8381,#8383)); +#8385=FACE_OUTER_BOUND('',#8384,.F.); +#8387=CARTESIAN_POINT('',(-6.757154611808E1,1.036996808377E3,-4.06E1)); +#8388=DIRECTION('',(0.E0,-1.E0,0.E0)); +#8389=DIRECTION('',(9.996573249756E-1,0.E0,2.617694830787E-2)); +#8390=AXIS2_PLACEMENT_3D('',#8387,#8388,#8389); +#8391=CYLINDRICAL_SURFACE('',#8390,2.E0); +#8393=ORIENTED_EDGE('',*,*,#8392,.T.); +#8395=ORIENTED_EDGE('',*,*,#8394,.T.); +#8396=ORIENTED_EDGE('',*,*,#8375,.F.); +#8398=ORIENTED_EDGE('',*,*,#8397,.T.); +#8399=EDGE_LOOP('',(#8393,#8395,#8396,#8398)); +#8400=FACE_OUTER_BOUND('',#8399,.F.); +#8402=CARTESIAN_POINT('',(0.E0,0.E0,-3.86E1)); +#8403=DIRECTION('',(0.E0,0.E0,1.E0)); +#8404=DIRECTION('',(0.E0,-1.E0,0.E0)); +#8405=AXIS2_PLACEMENT_3D('',#8402,#8403,#8404); +#8406=PLANE('',#8405); +#8408=ORIENTED_EDGE('',*,*,#8407,.T.); +#8409=ORIENTED_EDGE('',*,*,#8392,.F.); +#8411=ORIENTED_EDGE('',*,*,#8410,.F.); +#8413=ORIENTED_EDGE('',*,*,#8412,.T.); +#8415=ORIENTED_EDGE('',*,*,#8414,.F.); +#8417=ORIENTED_EDGE('',*,*,#8416,.F.); +#8419=ORIENTED_EDGE('',*,*,#8418,.F.); +#8421=ORIENTED_EDGE('',*,*,#8420,.F.); +#8423=ORIENTED_EDGE('',*,*,#8422,.F.); +#8425=ORIENTED_EDGE('',*,*,#8424,.T.); +#8427=ORIENTED_EDGE('',*,*,#8426,.F.); +#8428=EDGE_LOOP('',(#8408,#8409,#8411,#8413,#8415,#8417,#8419,#8421,#8423,#8425, +#8427)); +#8429=FACE_OUTER_BOUND('',#8428,.F.); +#8431=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-4.06E1)); +#8432=DIRECTION('',(0.E0,0.E0,1.E0)); +#8433=DIRECTION('',(5.530216454431E-1,-8.331668858467E-1,0.E0)); +#8434=AXIS2_PLACEMENT_3D('',#8431,#8432,#8433); +#8435=TOROIDAL_SURFACE('',#8434,6.9E1,2.E0); +#8436=ORIENTED_EDGE('',*,*,#8407,.F.); +#8438=ORIENTED_EDGE('',*,*,#8437,.F.); +#8440=ORIENTED_EDGE('',*,*,#8439,.T.); +#8441=ORIENTED_EDGE('',*,*,#8394,.F.); +#8442=EDGE_LOOP('',(#8436,#8438,#8440,#8441)); +#8443=FACE_OUTER_BOUND('',#8442,.F.); +#8445=CARTESIAN_POINT('',(-9.321025782889E1,2.127958580079E2, +-4.161829668407E1)); +#8446=CARTESIAN_POINT('',(-9.324173308347E1,2.126212654445E2, +-4.161728157448E1)); +#8447=CARTESIAN_POINT('',(-9.340314332878E1,2.117051878360E2, +-4.161477673011E1)); +#8448=CARTESIAN_POINT('',(-9.366387200473E1,2.100222638573E2, +-4.163410751354E1)); +#8449=CARTESIAN_POINT('',(-9.394687753839E1,2.076670002288E2, +-4.168692551816E1)); +#8450=CARTESIAN_POINT('',(-9.415610571924E1,2.051697154270E2, +-4.174570903504E1)); +#8451=CARTESIAN_POINT('',(-9.427498091631E1,2.025263003375E2, +-4.178719237038E1)); +#8452=CARTESIAN_POINT('',(-9.428778180006E1,1.998236318930E2, +-4.179202649797E1)); +#8453=CARTESIAN_POINT('',(-9.419316370104E1,1.971694955803E2, +-4.175799878933E1)); +#8454=CARTESIAN_POINT('',(-9.400139682270E1,1.946000419356E2, +-4.170049593391E1)); +#8455=CARTESIAN_POINT('',(-9.371341126277E1,1.920372817435E2, +-4.163995896292E1)); +#8456=CARTESIAN_POINT('',(-9.342760587993E1,1.901536630275E2, +-4.161440996359E1)); +#8457=CARTESIAN_POINT('',(-9.324178460836E1,1.890990276347E2, +-4.161727840575E1)); +#8458=CARTESIAN_POINT('',(-9.321033646566E1,1.889245810261E2, +-4.161828656570E1)); +#8459=CARTESIAN_POINT('',(-9.149300702365E1,2.125031308134E2, +-3.866787389126E1)); +#8460=CARTESIAN_POINT('',(-9.152475663899E1,2.123272682191E2, +-3.866683085251E1)); +#8461=CARTESIAN_POINT('',(-9.168710229287E1,2.114064571040E2, +-3.866426252317E1)); +#8462=CARTESIAN_POINT('',(-9.194538356444E1,2.097324440864E2, +-3.868408804443E1)); +#8463=CARTESIAN_POINT('',(-9.222056469987E1,2.074213699202E2, +-3.873730758631E1)); +#8464=CARTESIAN_POINT('',(-9.242079486168E1,2.049989100220E2, +-3.879582765612E1)); +#8465=CARTESIAN_POINT('',(-9.253321303338E1,2.024566785106E2, +-3.883675562483E1)); +#8466=CARTESIAN_POINT('',(-9.254525618397E1,1.998671814976E2, +-3.884150650871E1)); +#8467=CARTESIAN_POINT('',(-9.245594816251E1,1.973181667315E2, +-3.880798260687E1)); +#8468=CARTESIAN_POINT('',(-9.227302670072E1,1.948316535656E2, +-3.875087886943E1)); +#8469=CARTESIAN_POINT('',(-9.199409948807E1,1.923238506833E2, +-3.869006368693E1)); +#8470=CARTESIAN_POINT('',(-9.171170405964E1,1.904531024572E2, +-3.866388958813E1)); +#8471=CARTESIAN_POINT('',(-9.152480878238E1,1.893930282059E2, +-3.866682687701E1)); +#8472=CARTESIAN_POINT('',(-9.149308731176E1,1.892173166698E2, +-3.866786129106E1)); +#8473=CARTESIAN_POINT('',(-9.424474229471E1,2.130108235626E2, +-3.669054974662E1)); +#8474=CARTESIAN_POINT('',(-9.427855336530E1,2.128237000626E2, +-3.668948799022E1)); +#8475=CARTESIAN_POINT('',(-9.445114480266E1,2.118451367948E2, +-3.668687711431E1)); +#8476=CARTESIAN_POINT('',(-9.472324228413E1,2.100771881439E2, +-3.670703420062E1)); +#8477=CARTESIAN_POINT('',(-9.500985074397E1,2.076565577437E2, +-3.676052284607E1)); +#8478=CARTESIAN_POINT('',(-9.521630979862E1,2.051372543147E2, +-3.681886635805E1)); +#8479=CARTESIAN_POINT('',(-9.533133822055E1,2.025076937148E2, +-3.685942212930E1)); +#8480=CARTESIAN_POINT('',(-9.534361934032E1,1.998356233434E2, +-3.686411722463E1)); +#8481=CARTESIAN_POINT('',(-9.525235156234E1,1.972013617289E2, +-3.683093096571E1)); +#8482=CARTESIAN_POINT('',(-9.506413430210E1,1.946193181230E2, +-3.677409471049E1)); +#8483=CARTESIAN_POINT('',(-9.477433584628E1,1.919970554844E2, +-3.671309307527E1)); +#8484=CARTESIAN_POINT('',(-9.447729760904E1,1.900231702683E2, +-3.668650004523E1)); +#8485=CARTESIAN_POINT('',(-9.427860900026E1,1.888966161038E2, +-3.668948347403E1)); +#8486=CARTESIAN_POINT('',(-9.424482840020E1,1.887096558672E2, +-3.669053548314E1)); +#8487=CARTESIAN_POINT('',(-9.641197958170E1,2.133865728693E2, +-3.931762416196E1)); +#8488=CARTESIAN_POINT('',(-9.644585339772E1,2.131988779238E2, +-3.931658727385E1)); +#8489=CARTESIAN_POINT('',(-9.661918490167E1,2.122156040534E2, +-3.931403292535E1)); +#8490=CARTESIAN_POINT('',(-9.689598912830E1,2.104233833109E2, +-3.933374949407E1)); +#8491=CARTESIAN_POINT('',(-9.719229067684E1,2.079406479079E2, +-3.938688060830E1)); +#8492=CARTESIAN_POINT('',(-9.740876635054E1,2.053306829212E2, +-3.944545869515E1)); +#8493=CARTESIAN_POINT('',(-9.753067864751E1,2.025856579693E2, +-3.948650896824E1)); +#8494=CARTESIAN_POINT('',(-9.754375641513E1,1.997869130888E2, +-3.949127818428E1)); +#8495=CARTESIAN_POINT('',(-9.744685808401E1,1.970335896589E2, +-3.945764333271E1)); +#8496=CARTESIAN_POINT('',(-9.724892939452E1,1.943529836476E2, +-3.940045170041E1)); +#8497=CARTESIAN_POINT('',(-9.694829483593E1,1.916570462942E2, +-3.933969778641E1)); +#8498=CARTESIAN_POINT('',(-9.664545213123E1,1.896534247757E2, +-3.931366134875E1)); +#8499=CARTESIAN_POINT('',(-9.644590898516E1,1.885214381251E2, +-3.931658347602E1)); +#8500=CARTESIAN_POINT('',(-9.641206498717E1,1.883339033357E2, +-3.931761210831E1)); +#8501=(BOUNDED_SURFACE()B_SPLINE_SURFACE(3,3,((#8445,#8446,#8447,#8448,#8449, +#8450,#8451,#8452,#8453,#8454,#8455,#8456,#8457,#8458),(#8459,#8460,#8461,#8462, +#8463,#8464,#8465,#8466,#8467,#8468,#8469,#8470,#8471,#8472),(#8473,#8474,#8475, +#8476,#8477,#8478,#8479,#8480,#8481,#8482,#8483,#8484,#8485,#8486),(#8487,#8488, +#8489,#8490,#8491,#8492,#8493,#8494,#8495,#8496,#8497,#8498,#8499,#8500)), +.UNSPECIFIED.,.F.,.F.,.F.)B_SPLINE_SURFACE_WITH_KNOTS((4,4),(4,1,1,1,1,1,1,1,1, +1,1,4),(0.E0,1.E0),(-2.362765154021E-2,0.E0,1.001103507034E-1,2.015669493850E-1, +3.114928644346E-1,4.271778305820E-1,5.453065915886E-1,6.618578103257E-1, +7.719187803027E-1,8.811549550408E-1,1.E0,1.023607742194E0),.UNSPECIFIED.)GEOMETRIC_REPRESENTATION_ITEM()RATIONAL_B_SPLINE_SURFACE(((1.848831870305E0, +1.848831870305E0,1.848831870305E0,1.848831870305E0,1.848831870305E0, +1.848831870305E0,1.848831870305E0,1.848831870305E0,1.848831870305E0, +1.848831870305E0,1.848831870305E0,1.848831870305E0,1.848831870305E0, +1.848831870305E0),(7.170560432316E-1,7.170560432316E-1,7.170560432316E-1, +7.170560432316E-1,7.170560432316E-1,7.170560432316E-1,7.170560432316E-1, +7.170560432316E-1,7.170560432316E-1,7.170560432316E-1,7.170560432316E-1, +7.170560432316E-1,7.170560432316E-1,7.170560432316E-1),(7.170560432316E-1, +7.170560432316E-1,7.170560432316E-1,7.170560432316E-1,7.170560432316E-1, +7.170560432316E-1,7.170560432316E-1,7.170560432316E-1,7.170560432316E-1, +7.170560432316E-1,7.170560432316E-1,7.170560432316E-1,7.170560432316E-1, +7.170560432316E-1),(1.848831870305E0,1.848831870305E0,1.848831870305E0, +1.848831870305E0,1.848831870305E0,1.848831870305E0,1.848831870305E0, +1.848831870305E0,1.848831870305E0,1.848831870305E0,1.848831870305E0, +1.848831870305E0,1.848831870305E0,1.848831870305E0)))REPRESENTATION_ITEM('')SURFACE()); +#8503=ORIENTED_EDGE('',*,*,#8502,.F.); +#8504=ORIENTED_EDGE('',*,*,#8437,.T.); +#8506=ORIENTED_EDGE('',*,*,#8505,.T.); +#8508=ORIENTED_EDGE('',*,*,#8507,.T.); +#8509=EDGE_LOOP('',(#8503,#8504,#8506,#8508)); +#8510=FACE_OUTER_BOUND('',#8509,.F.); +#8512=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-3.86E1)); +#8513=DIRECTION('',(0.E0,0.E0,1.E0)); +#8514=DIRECTION('',(0.E0,1.E0,0.E0)); +#8515=AXIS2_PLACEMENT_3D('',#8512,#8513,#8514); +#8516=CYLINDRICAL_SURFACE('',#8515,6.7E1); +#8517=ORIENTED_EDGE('',*,*,#8439,.F.); +#8518=ORIENTED_EDGE('',*,*,#8502,.T.); +#8520=ORIENTED_EDGE('',*,*,#8519,.F.); +#8522=ORIENTED_EDGE('',*,*,#8521,.T.); +#8523=ORIENTED_EDGE('',*,*,#8359,.F.); +#8524=ORIENTED_EDGE('',*,*,#8377,.T.); +#8525=EDGE_LOOP('',(#8517,#8518,#8520,#8522,#8523,#8524)); +#8526=FACE_OUTER_BOUND('',#8525,.F.); +#8528=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-4.06E1)); +#8529=DIRECTION('',(0.E0,0.E0,1.E0)); +#8530=DIRECTION('',(9.955508345719E-4,-9.999995044391E-1,0.E0)); +#8531=AXIS2_PLACEMENT_3D('',#8528,#8529,#8530); +#8532=TOROIDAL_SURFACE('',#8531,6.9E1,2.E0); +#8533=ORIENTED_EDGE('',*,*,#8519,.T.); +#8534=ORIENTED_EDGE('',*,*,#8507,.F.); +#8536=ORIENTED_EDGE('',*,*,#8535,.F.); +#8538=ORIENTED_EDGE('',*,*,#8537,.F.); +#8539=EDGE_LOOP('',(#8533,#8534,#8536,#8538)); +#8540=FACE_OUTER_BOUND('',#8539,.F.); +#8542=CARTESIAN_POINT('',(0.E0,0.E0,-3.86E1)); +#8543=DIRECTION('',(0.E0,0.E0,1.E0)); +#8544=DIRECTION('',(0.E0,-1.E0,0.E0)); +#8545=AXIS2_PLACEMENT_3D('',#8542,#8543,#8544); +#8546=PLANE('',#8545); +#8548=ORIENTED_EDGE('',*,*,#8547,.F.); +#8549=ORIENTED_EDGE('',*,*,#8535,.T.); +#8551=ORIENTED_EDGE('',*,*,#8550,.F.); +#8553=ORIENTED_EDGE('',*,*,#8552,.T.); +#8555=ORIENTED_EDGE('',*,*,#8554,.F.); +#8556=EDGE_LOOP('',(#8548,#8549,#8551,#8553,#8555)); +#8557=FACE_OUTER_BOUND('',#8556,.F.); +#8559=CARTESIAN_POINT('',(-6.719223417048E1,-9.276334532783E2,-4.06E1)); +#8560=DIRECTION('',(0.E0,1.E0,0.E0)); +#8561=DIRECTION('',(0.E0,0.E0,1.E0)); +#8562=AXIS2_PLACEMENT_3D('',#8559,#8560,#8561); +#8563=CYLINDRICAL_SURFACE('',#8562,2.E0); +#8564=ORIENTED_EDGE('',*,*,#8547,.T.); +#8566=ORIENTED_EDGE('',*,*,#8565,.F.); +#8568=ORIENTED_EDGE('',*,*,#8567,.T.); +#8569=ORIENTED_EDGE('',*,*,#8537,.T.); +#8570=EDGE_LOOP('',(#8564,#8566,#8568,#8569)); +#8571=FACE_OUTER_BOUND('',#8570,.F.); +#8573=CARTESIAN_POINT('',(-6.719223417048E1,2.9E2,-4.36E1)); +#8574=DIRECTION('',(1.E0,0.E0,0.E0)); +#8575=DIRECTION('',(0.E0,-2.598190038955E-1,9.656573332268E-1)); +#8576=AXIS2_PLACEMENT_3D('',#8573,#8574,#8575); +#8577=TOROIDAL_SURFACE('',#8576,3.E0,2.E0); +#8579=ORIENTED_EDGE('',*,*,#8578,.T.); +#8581=ORIENTED_EDGE('',*,*,#8580,.T.); +#8583=ORIENTED_EDGE('',*,*,#8582,.F.); +#8584=ORIENTED_EDGE('',*,*,#8565,.T.); +#8585=EDGE_LOOP('',(#8579,#8581,#8583,#8584)); +#8586=FACE_OUTER_BOUND('',#8585,.F.); +#8588=CARTESIAN_POINT('',(-9.131417382563E1,2.9E2,-4.36E1)); +#8589=DIRECTION('',(1.E0,0.E0,0.E0)); +#8590=DIRECTION('',(0.E0,1.E0,0.E0)); +#8591=AXIS2_PLACEMENT_3D('',#8588,#8589,#8590); +#8592=CYLINDRICAL_SURFACE('',#8591,5.E0); +#8593=ORIENTED_EDGE('',*,*,#8578,.F.); +#8594=ORIENTED_EDGE('',*,*,#8554,.T.); +#8596=ORIENTED_EDGE('',*,*,#8595,.F.); +#8597=ORIENTED_EDGE('',*,*,#7635,.T.); +#8598=EDGE_LOOP('',(#8593,#8594,#8596,#8597)); +#8599=FACE_OUTER_BOUND('',#8598,.F.); +#8601=CARTESIAN_POINT('',(-9.420777838145E1,2.843661785324E2, +-3.865577678125E1)); +#8602=CARTESIAN_POINT('',(-9.780361275897E1,2.838245347442E2, +-3.810802259999E1)); +#8603=CARTESIAN_POINT('',(-1.003749356543E2,2.834372140482E2, +-4.070835310849E1)); +#8604=CARTESIAN_POINT('',(-9.983329186607E1,2.835188023424E2, +-4.434475282028E1)); +#8605=CARTESIAN_POINT('',(-9.467394426842E1,2.874609344559E2, +-3.865577678125E1)); +#8606=CARTESIAN_POINT('',(-9.866814927530E1,2.895639712405E2,-3.81080226E1)); +#8607=CARTESIAN_POINT('',(-1.015243405523E2,2.910678187668E2, +-4.070835310851E1)); +#8608=CARTESIAN_POINT('',(-1.009226898355E2,2.907510364317E2, +-4.434475282029E1)); +#8609=CARTESIAN_POINT('',(-9.246093445591E1,2.896739442684E2, +-3.865577678126E1)); +#8610=CARTESIAN_POINT('',(-9.456397124047E1,2.936681492753E2, +-3.810802260002E1)); +#8611=CARTESIAN_POINT('',(-9.606781876683E1,2.965243405523E2, +-4.070835310853E1)); +#8612=CARTESIAN_POINT('',(-9.575103643173E1,2.959226898355E2, +-4.434475282032E1)); +#8613=CARTESIAN_POINT('',(-8.936617853235E1,2.892077783815E2, +-3.865577678127E1)); +#8614=CARTESIAN_POINT('',(-8.882453474415E1,2.928036127590E2, +-3.810802260003E1)); +#8615=CARTESIAN_POINT('',(-8.843721404819E1,2.953749356543E2, +-4.070835310855E1)); +#8616=CARTESIAN_POINT('',(-8.851880234246E1,2.948332918661E2, +-4.434475282033E1)); +#8617=(BOUNDED_SURFACE()B_SPLINE_SURFACE(3,3,((#8601,#8602,#8603,#8604),(#8605, +#8606,#8607,#8608),(#8609,#8610,#8611,#8612),(#8613,#8614,#8615,#8616)), +.UNSPECIFIED.,.F.,.F.,.F.)B_SPLINE_SURFACE_WITH_KNOTS((4,4),(4,4),(0.E0,1.E0),( +0.E0,1.E0),.UNSPECIFIED.)GEOMETRIC_REPRESENTATION_ITEM()RATIONAL_B_SPLINE_SURFACE(((1.574492818930E0,1.148219670697E0,1.148219670697E0,1.574492818930E0),( +1.148219670700E0,8.373543507644E-1,8.373543507644E-1,1.148219670700E0),( +1.148219670700E0,8.373543507644E-1,8.373543507644E-1,1.148219670700E0),( +1.574492818930E0,1.148219670697E0,1.148219670697E0,1.574492818930E0)))REPRESENTATION_ITEM('')SURFACE()); +#8619=ORIENTED_EDGE('',*,*,#8618,.T.); +#8620=ORIENTED_EDGE('',*,*,#8595,.T.); +#8621=ORIENTED_EDGE('',*,*,#8552,.F.); +#8623=ORIENTED_EDGE('',*,*,#8622,.T.); +#8624=EDGE_LOOP('',(#8619,#8620,#8621,#8623)); +#8625=FACE_OUTER_BOUND('',#8624,.F.); +#8627=CARTESIAN_POINT('',(-9.E1,2.85E2,6.640352260206E2)); +#8628=DIRECTION('',(0.E0,0.E0,-1.E0)); +#8629=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8630=AXIS2_PLACEMENT_3D('',#8627,#8628,#8629); +#8631=CYLINDRICAL_SURFACE('',#8630,1.E1); +#8632=ORIENTED_EDGE('',*,*,#8618,.F.); +#8634=ORIENTED_EDGE('',*,*,#8633,.T.); +#8635=ORIENTED_EDGE('',*,*,#4809,.F.); +#8636=ORIENTED_EDGE('',*,*,#7637,.T.); +#8637=EDGE_LOOP('',(#8632,#8634,#8635,#8636)); +#8638=FACE_OUTER_BOUND('',#8637,.F.); +#8640=CARTESIAN_POINT('',(-1.E2,2.95E2,-1.9E2)); +#8641=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8642=DIRECTION('',(0.E0,-1.E0,0.E0)); +#8643=AXIS2_PLACEMENT_3D('',#8640,#8641,#8642); +#8644=PLANE('',#8643); +#8646=ORIENTED_EDGE('',*,*,#8645,.F.); +#8648=ORIENTED_EDGE('',*,*,#8647,.F.); +#8649=ORIENTED_EDGE('',*,*,#4811,.T.); +#8650=ORIENTED_EDGE('',*,*,#8633,.F.); +#8652=ORIENTED_EDGE('',*,*,#8651,.F.); +#8654=ORIENTED_EDGE('',*,*,#8653,.T.); +#8656=ORIENTED_EDGE('',*,*,#8655,.T.); +#8657=EDGE_LOOP('',(#8646,#8648,#8649,#8650,#8652,#8654,#8656)); +#8658=FACE_OUTER_BOUND('',#8657,.F.); +#8660=CARTESIAN_POINT('',(-9.5E1,-2.463141738256E2,-6.5E1)); +#8661=DIRECTION('',(0.E0,1.E0,0.E0)); +#8662=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8663=AXIS2_PLACEMENT_3D('',#8660,#8661,#8662); +#8664=CYLINDRICAL_SURFACE('',#8663,5.E0); +#8665=ORIENTED_EDGE('',*,*,#5118,.T.); +#8667=ORIENTED_EDGE('',*,*,#8666,.F.); +#8668=ORIENTED_EDGE('',*,*,#8645,.T.); +#8670=ORIENTED_EDGE('',*,*,#8669,.T.); +#8671=EDGE_LOOP('',(#8665,#8667,#8668,#8670)); +#8672=FACE_OUTER_BOUND('',#8671,.F.); +#8674=CARTESIAN_POINT('',(-8.E1,-2.45E2,-6.5E1)); +#8675=DIRECTION('',(0.E0,0.E0,1.E0)); +#8676=DIRECTION('',(6.566141716224E-2,-9.978419605811E-1,0.E0)); +#8677=AXIS2_PLACEMENT_3D('',#8674,#8675,#8676); +#8678=TOROIDAL_SURFACE('',#8677,1.5E1,5.E0); +#8680=ORIENTED_EDGE('',*,*,#8679,.T.); +#8681=ORIENTED_EDGE('',*,*,#8666,.T.); +#8682=ORIENTED_EDGE('',*,*,#5116,.F.); +#8684=ORIENTED_EDGE('',*,*,#8683,.T.); +#8685=EDGE_LOOP('',(#8680,#8681,#8682,#8684)); +#8686=FACE_OUTER_BOUND('',#8685,.F.); +#8688=CARTESIAN_POINT('',(-8.E1,-2.45E2,-6.898189951633E2)); +#8689=DIRECTION('',(0.E0,0.E0,1.E0)); +#8690=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8691=AXIS2_PLACEMENT_3D('',#8688,#8689,#8690); +#8692=CYLINDRICAL_SURFACE('',#8691,2.E1); +#8693=ORIENTED_EDGE('',*,*,#8679,.F.); +#8694=ORIENTED_EDGE('',*,*,#5040,.T.); +#8695=ORIENTED_EDGE('',*,*,#4813,.F.); +#8696=ORIENTED_EDGE('',*,*,#8647,.T.); +#8697=EDGE_LOOP('',(#8693,#8694,#8695,#8696)); +#8698=FACE_OUTER_BOUND('',#8697,.F.); +#8700=CARTESIAN_POINT('',(1.000988548E3,-2.6E2,-6.5E1)); +#8701=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8702=DIRECTION('',(0.E0,-1.E0,0.E0)); +#8703=AXIS2_PLACEMENT_3D('',#8700,#8701,#8702); +#8704=CYLINDRICAL_SURFACE('',#8703,5.E0); +#8705=ORIENTED_EDGE('',*,*,#5114,.T.); +#8706=ORIENTED_EDGE('',*,*,#5055,.T.); +#8707=ORIENTED_EDGE('',*,*,#5042,.T.); +#8708=ORIENTED_EDGE('',*,*,#8683,.F.); +#8709=EDGE_LOOP('',(#8705,#8706,#8707,#8708)); +#8710=FACE_OUTER_BOUND('',#8709,.F.); +#8712=CARTESIAN_POINT('',(-9.5E1,-6.5E1,0.E0)); +#8713=DIRECTION('',(1.E0,0.E0,0.E0)); +#8714=DIRECTION('',(0.E0,-7.007800054811E-2,9.975415148450E-1)); +#8715=AXIS2_PLACEMENT_3D('',#8712,#8713,#8714); +#8716=TOROIDAL_SURFACE('',#8715,1.642282823598E2,5.E0); +#8717=ORIENTED_EDGE('',*,*,#8424,.F.); +#8719=ORIENTED_EDGE('',*,*,#8718,.T.); +#8721=ORIENTED_EDGE('',*,*,#8720,.T.); +#8722=ORIENTED_EDGE('',*,*,#5120,.F.); +#8723=ORIENTED_EDGE('',*,*,#8669,.F.); +#8724=ORIENTED_EDGE('',*,*,#8655,.F.); +#8725=ORIENTED_EDGE('',*,*,#8653,.F.); +#8727=ORIENTED_EDGE('',*,*,#8726,.T.); +#8728=EDGE_LOOP('',(#8717,#8719,#8721,#8722,#8723,#8724,#8725,#8727)); +#8729=FACE_OUTER_BOUND('',#8728,.F.); +#8731=CARTESIAN_POINT('',(-8.581559880990E1,-6.5E1,0.E0)); +#8732=DIRECTION('',(1.E0,0.E0,0.E0)); +#8733=DIRECTION('',(0.E0,-1.E0,0.E0)); +#8734=AXIS2_PLACEMENT_3D('',#8731,#8732,#8733); +#8735=CONICAL_SURFACE('',#8734,1.615128543396E2,1.5E1); +#8736=ORIENTED_EDGE('',*,*,#8720,.F.); +#8737=ORIENTED_EDGE('',*,*,#8718,.F.); +#8738=ORIENTED_EDGE('',*,*,#8422,.T.); +#8740=ORIENTED_EDGE('',*,*,#8739,.F.); +#8741=ORIENTED_EDGE('',*,*,#5122,.T.); +#8742=EDGE_LOOP('',(#8736,#8737,#8738,#8740,#8741)); +#8743=FACE_OUTER_BOUND('',#8742,.F.); +#8745=CARTESIAN_POINT('',(-7.792529284529E1,1.4239E2,-2.3045E2)); +#8746=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8747=DIRECTION('',(0.E0,-1.E0,0.E0)); +#8748=AXIS2_PLACEMENT_3D('',#8745,#8746,#8747); +#8749=PLANE('',#8748); +#8750=ORIENTED_EDGE('',*,*,#8739,.T.); +#8751=ORIENTED_EDGE('',*,*,#8420,.T.); +#8753=ORIENTED_EDGE('',*,*,#8752,.T.); +#8755=ORIENTED_EDGE('',*,*,#8754,.T.); +#8756=ORIENTED_EDGE('',*,*,#5124,.T.); +#8757=EDGE_LOOP('',(#8750,#8751,#8753,#8755,#8756)); +#8758=FACE_OUTER_BOUND('',#8757,.F.); +#8760=CARTESIAN_POINT('',(-6.985986421047E1,-6.5E1,0.E0)); +#8761=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8762=DIRECTION('',(0.E0,0.E0,-1.E0)); +#8763=AXIS2_PLACEMENT_3D('',#8760,#8761,#8762); +#8764=CONICAL_SURFACE('',#8763,1.723626126802E2,3.5E0); +#8765=ORIENTED_EDGE('',*,*,#5265,.T.); +#8766=ORIENTED_EDGE('',*,*,#5215,.T.); +#8767=ORIENTED_EDGE('',*,*,#5213,.T.); +#8768=ORIENTED_EDGE('',*,*,#5126,.T.); +#8769=ORIENTED_EDGE('',*,*,#8754,.F.); +#8770=ORIENTED_EDGE('',*,*,#8752,.F.); +#8771=ORIENTED_EDGE('',*,*,#8418,.T.); +#8773=ORIENTED_EDGE('',*,*,#8772,.T.); +#8774=EDGE_LOOP('',(#8765,#8766,#8767,#8768,#8769,#8770,#8771,#8773)); +#8775=FACE_OUTER_BOUND('',#8774,.F.); +#8777=CARTESIAN_POINT('',(-5.449999999992E1,-6.5E1,0.E0)); +#8778=DIRECTION('',(1.E0,0.E0,0.E0)); +#8779=DIRECTION('',(0.E0,1.E0,0.E0)); +#8780=AXIS2_PLACEMENT_3D('',#8777,#8778,#8779); +#8781=CYLINDRICAL_SURFACE('',#8780,1.718693654751E2); +#8783=ORIENTED_EDGE('',*,*,#8782,.T.); +#8785=ORIENTED_EDGE('',*,*,#8784,.F.); +#8786=ORIENTED_EDGE('',*,*,#5267,.T.); +#8787=ORIENTED_EDGE('',*,*,#8772,.F.); +#8788=ORIENTED_EDGE('',*,*,#8416,.T.); +#8789=EDGE_LOOP('',(#8783,#8785,#8786,#8787,#8788)); +#8790=FACE_OUTER_BOUND('',#8789,.F.); +#8792=CARTESIAN_POINT('',(-5.849999999992E1,-7.836757657658E2,-4.06E1)); +#8793=DIRECTION('',(0.E0,1.E0,0.E0)); +#8794=DIRECTION('',(0.E0,0.E0,1.E0)); +#8795=AXIS2_PLACEMENT_3D('',#8792,#8793,#8794); +#8796=CYLINDRICAL_SURFACE('',#8795,2.E0); +#8797=ORIENTED_EDGE('',*,*,#8782,.F.); +#8798=ORIENTED_EDGE('',*,*,#8414,.T.); +#8800=ORIENTED_EDGE('',*,*,#8799,.F.); +#8802=ORIENTED_EDGE('',*,*,#8801,.F.); +#8803=EDGE_LOOP('',(#8797,#8798,#8800,#8802)); +#8804=FACE_OUTER_BOUND('',#8803,.F.); +#8806=CARTESIAN_POINT('',(-6.150005224495E1,1.315548757118E2, +-4.060000037728E1)); +#8807=DIRECTION('',(-3.670764566406E-7,4.926139529651E-7,-9.999999999998E-1)); +#8808=DIRECTION('',(9.999999998492E-1,-1.736450439635E-5,-3.670850105922E-7)); +#8809=AXIS2_PLACEMENT_3D('',#8806,#8807,#8808); +#8810=TOROIDAL_SURFACE('',#8809,3.000043853548E0,1.999999827294E0); +#8811=ORIENTED_EDGE('',*,*,#8412,.F.); +#8813=ORIENTED_EDGE('',*,*,#8812,.T.); +#8815=ORIENTED_EDGE('',*,*,#8814,.T.); +#8816=ORIENTED_EDGE('',*,*,#8799,.T.); +#8817=EDGE_LOOP('',(#8811,#8813,#8815,#8816)); +#8818=FACE_OUTER_BOUND('',#8817,.F.); +#8820=CARTESIAN_POINT('',(1.281901029492E1,1.345549126017E2,-4.06E1)); +#8821=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8822=DIRECTION('',(0.E0,0.E0,1.E0)); +#8823=AXIS2_PLACEMENT_3D('',#8820,#8821,#8822); +#8824=CYLINDRICAL_SURFACE('',#8823,2.E0); +#8826=ORIENTED_EDGE('',*,*,#8825,.T.); +#8827=ORIENTED_EDGE('',*,*,#8812,.F.); +#8828=ORIENTED_EDGE('',*,*,#8410,.T.); +#8829=ORIENTED_EDGE('',*,*,#8397,.F.); +#8830=EDGE_LOOP('',(#8826,#8827,#8828,#8829)); +#8831=FACE_OUTER_BOUND('',#8830,.F.); +#8833=CARTESIAN_POINT('',(4.555367888040E1,1.377280579399E2,-1.750204140054E2)); +#8834=DIRECTION('',(0.E0,-9.999619230642E-1,-8.726535498375E-3)); +#8835=DIRECTION('',(0.E0,-8.726535498375E-3,9.999619230642E-1)); +#8836=AXIS2_PLACEMENT_3D('',#8833,#8834,#8835); +#8837=PLANE('',#8836); +#8838=ORIENTED_EDGE('',*,*,#8825,.F.); +#8839=ORIENTED_EDGE('',*,*,#8382,.F.); +#8840=ORIENTED_EDGE('',*,*,#5556,.F.); +#8841=ORIENTED_EDGE('',*,*,#5335,.F.); +#8843=ORIENTED_EDGE('',*,*,#8842,.T.); +#8845=ORIENTED_EDGE('',*,*,#8844,.F.); +#8847=ORIENTED_EDGE('',*,*,#8846,.T.); +#8849=ORIENTED_EDGE('',*,*,#8848,.T.); +#8851=ORIENTED_EDGE('',*,*,#8850,.F.); +#8852=EDGE_LOOP('',(#8838,#8839,#8840,#8841,#8843,#8845,#8847,#8849,#8851)); +#8853=FACE_OUTER_BOUND('',#8852,.F.); +#8855=CARTESIAN_POINT('',(-4.199632111960E1,6.517400626796E1, +-1.297397892668E2)); +#8856=DIRECTION('',(0.E0,0.E0,-1.E0)); +#8857=DIRECTION('',(0.E0,1.E0,0.E0)); +#8858=AXIS2_PLACEMENT_3D('',#8855,#8856,#8857); +#8859=PLANE('',#8858); +#8860=ORIENTED_EDGE('',*,*,#5333,.T.); +#8861=ORIENTED_EDGE('',*,*,#5307,.F.); +#8863=ORIENTED_EDGE('',*,*,#8862,.F.); +#8864=ORIENTED_EDGE('',*,*,#8842,.F.); +#8865=EDGE_LOOP('',(#8860,#8861,#8863,#8864)); +#8866=FACE_OUTER_BOUND('',#8865,.F.); +#8868=CARTESIAN_POINT('',(-4.782341581810E1,8.734263994542E1, +-9.876080982141E1)); +#8869=DIRECTION('',(9.999999982571E-1,5.904089589353E-5,0.E0)); +#8870=DIRECTION('',(-5.904089576757E-5,9.999999961236E-1,6.532159003521E-5)); +#8871=AXIS2_PLACEMENT_3D('',#8868,#8869,#8870); +#8872=CONICAL_SURFACE('',#8871,3.775405049216E1,8.315722658737E1); +#8873=ORIENTED_EDGE('',*,*,#5290,.T.); +#8875=ORIENTED_EDGE('',*,*,#8874,.F.); +#8877=ORIENTED_EDGE('',*,*,#8876,.F.); +#8878=ORIENTED_EDGE('',*,*,#8844,.T.); +#8879=ORIENTED_EDGE('',*,*,#8862,.T.); +#8880=ORIENTED_EDGE('',*,*,#5305,.T.); +#8881=EDGE_LOOP('',(#8873,#8875,#8877,#8878,#8879,#8880)); +#8882=FACE_OUTER_BOUND('',#8881,.F.); +#8884=CARTESIAN_POINT('',(-2.699548547105E1,1.320473488850E2, +-9.704209929493E1)); +#8885=DIRECTION('',(7.147364285034E-8,-9.999619140095E-1,-8.727572998824E-3)); +#8886=DIRECTION('',(-9.998374502131E-1,-1.574277250802E-4,1.802909781284E-2)); +#8887=AXIS2_PLACEMENT_3D('',#8884,#8885,#8886); +#8888=TOROIDAL_SURFACE('',#8887,3.450419747615E1,5.000000743179E0); +#8889=ORIENTED_EDGE('',*,*,#8874,.T.); +#8890=ORIENTED_EDGE('',*,*,#5288,.T.); +#8892=ORIENTED_EDGE('',*,*,#8891,.T.); +#8893=ORIENTED_EDGE('',*,*,#8848,.F.); +#8895=ORIENTED_EDGE('',*,*,#8894,.T.); +#8896=EDGE_LOOP('',(#8889,#8890,#8892,#8893,#8895)); +#8897=FACE_OUTER_BOUND('',#8896,.F.); +#8899=CARTESIAN_POINT('',(-6.149999999992E1,1.251994954837E2,6.876455785160E2)); +#8900=DIRECTION('',(0.E0,8.726535498374E-3,-9.999619230642E-1)); +#8901=DIRECTION('',(0.E0,9.999619230642E-1,8.726535498374E-3)); +#8902=AXIS2_PLACEMENT_3D('',#8899,#8900,#8901); +#8903=CYLINDRICAL_SURFACE('',#8902,5.E0); +#8904=ORIENTED_EDGE('',*,*,#8814,.F.); +#8905=ORIENTED_EDGE('',*,*,#8850,.T.); +#8906=ORIENTED_EDGE('',*,*,#8891,.F.); +#8908=ORIENTED_EDGE('',*,*,#8907,.T.); +#8909=EDGE_LOOP('',(#8904,#8905,#8906,#8908)); +#8910=FACE_OUTER_BOUND('',#8909,.F.); +#8912=CARTESIAN_POINT('',(-5.649999999992E1,1.370471841019E2,-9.7E1)); +#8913=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8914=DIRECTION('',(0.E0,-8.726535498375E-3,9.999619230642E-1)); +#8915=AXIS2_PLACEMENT_3D('',#8912,#8913,#8914); +#8916=PLANE('',#8915); +#8917=ORIENTED_EDGE('',*,*,#8801,.T.); +#8918=ORIENTED_EDGE('',*,*,#8907,.F.); +#8919=ORIENTED_EDGE('',*,*,#5286,.F.); +#8920=ORIENTED_EDGE('',*,*,#5269,.T.); +#8921=ORIENTED_EDGE('',*,*,#8784,.T.); +#8922=EDGE_LOOP('',(#8917,#8918,#8919,#8920,#8921)); +#8923=FACE_OUTER_BOUND('',#8922,.F.); +#8925=CARTESIAN_POINT('',(-2.699999999992E1,1.320473744866E2, +-9.704363267749E1)); +#8926=DIRECTION('',(0.E0,9.999619230642E-1,8.726535498375E-3)); +#8927=DIRECTION('',(-5.995002189628E-1,6.984497288782E-3,-8.003441161533E-1)); +#8928=AXIS2_PLACEMENT_3D('',#8925,#8926,#8927); +#8929=TOROIDAL_SURFACE('',#8928,3.450073545538E1,5.E0); +#8930=ORIENTED_EDGE('',*,*,#8876,.T.); +#8931=ORIENTED_EDGE('',*,*,#8894,.F.); +#8932=ORIENTED_EDGE('',*,*,#8846,.F.); +#8933=EDGE_LOOP('',(#8930,#8931,#8932)); +#8934=FACE_OUTER_BOUND('',#8933,.F.); +#8936=CARTESIAN_POINT('',(-9.5E1,-1.064124E3,-4.36E1)); +#8937=DIRECTION('',(0.E0,1.E0,0.E0)); +#8938=DIRECTION('',(-1.E0,0.E0,0.E0)); +#8939=AXIS2_PLACEMENT_3D('',#8936,#8937,#8938); +#8940=CYLINDRICAL_SURFACE('',#8939,5.E0); +#8941=ORIENTED_EDGE('',*,*,#8505,.F.); +#8942=ORIENTED_EDGE('',*,*,#8426,.T.); +#8943=ORIENTED_EDGE('',*,*,#8726,.F.); +#8944=ORIENTED_EDGE('',*,*,#8651,.T.); +#8945=ORIENTED_EDGE('',*,*,#8622,.F.); +#8946=ORIENTED_EDGE('',*,*,#8550,.T.); +#8947=EDGE_LOOP('',(#8941,#8942,#8943,#8944,#8945,#8946)); +#8948=FACE_OUTER_BOUND('',#8947,.F.); +#8950=CARTESIAN_POINT('',(-6.719223417048E1,2.93E2,-4.220913670269E1)); +#8951=DIRECTION('',(0.E0,0.E0,-1.E0)); +#8952=DIRECTION('',(0.E0,1.E0,0.E0)); +#8953=AXIS2_PLACEMENT_3D('',#8950,#8951,#8952); +#8954=CYLINDRICAL_SURFACE('',#8953,2.E0); +#8955=ORIENTED_EDGE('',*,*,#7633,.T.); +#8957=ORIENTED_EDGE('',*,*,#8956,.F.); +#8959=ORIENTED_EDGE('',*,*,#8958,.T.); +#8960=ORIENTED_EDGE('',*,*,#8580,.F.); +#8961=EDGE_LOOP('',(#8955,#8957,#8959,#8960)); +#8962=FACE_OUTER_BOUND('',#8961,.F.); +#8964=CARTESIAN_POINT('',(-5.519223417048E1,2.93E2,-1.269E2)); +#8965=DIRECTION('',(0.E0,-1.E0,0.E0)); +#8966=DIRECTION('',(-9.906743956096E-1,0.E0,1.362506582867E-1)); +#8967=AXIS2_PLACEMENT_3D('',#8964,#8965,#8966); +#8968=TOROIDAL_SURFACE('',#8967,1.2E1,2.E0); +#8969=ORIENTED_EDGE('',*,*,#7631,.F.); +#8971=ORIENTED_EDGE('',*,*,#8970,.T.); +#8973=ORIENTED_EDGE('',*,*,#8972,.T.); +#8974=ORIENTED_EDGE('',*,*,#8956,.T.); +#8975=EDGE_LOOP('',(#8969,#8971,#8973,#8974)); +#8976=FACE_OUTER_BOUND('',#8975,.F.); +#8978=CARTESIAN_POINT('',(-5.713378973804E1,2.93E2,-1.389E2)); +#8979=DIRECTION('',(1.E0,0.E0,0.E0)); +#8980=DIRECTION('',(0.E0,1.E0,1.421085471520E-14)); +#8981=AXIS2_PLACEMENT_3D('',#8978,#8979,#8980); +#8982=CYLINDRICAL_SURFACE('',#8981,2.E0); +#8983=ORIENTED_EDGE('',*,*,#7629,.T.); +#8985=ORIENTED_EDGE('',*,*,#8984,.F.); +#8987=ORIENTED_EDGE('',*,*,#8986,.T.); +#8988=ORIENTED_EDGE('',*,*,#8970,.F.); +#8989=EDGE_LOOP('',(#8983,#8985,#8987,#8988)); +#8990=FACE_OUTER_BOUND('',#8989,.F.); +#8992=CARTESIAN_POINT('',(-5.463211195957E-1,2.93E2,-1.269E2)); +#8993=DIRECTION('',(0.E0,1.E0,0.E0)); +#8994=DIRECTION('',(-1.929380268982E-1,0.E0,-9.812109445866E-1)); +#8995=AXIS2_PLACEMENT_3D('',#8992,#8993,#8994); +#8996=TOROIDAL_SURFACE('',#8995,1.2E1,2.E0); +#8997=ORIENTED_EDGE('',*,*,#7627,.F.); +#8998=ORIENTED_EDGE('',*,*,#7656,.T.); +#9000=ORIENTED_EDGE('',*,*,#8999,.T.); +#9001=ORIENTED_EDGE('',*,*,#8984,.T.); +#9002=EDGE_LOOP('',(#8997,#8998,#9000,#9001)); +#9003=FACE_OUTER_BOUND('',#9002,.F.); +#9005=CARTESIAN_POINT('',(-5.463211195957E-1,-8.688519685227E2,-1.269E2)); +#9006=DIRECTION('',(0.E0,1.E0,0.E0)); +#9007=DIRECTION('',(1.E0,0.E0,0.E0)); +#9008=AXIS2_PLACEMENT_3D('',#9005,#9006,#9007); +#9009=CYLINDRICAL_SURFACE('',#9008,1.E1); +#9010=ORIENTED_EDGE('',*,*,#8999,.F.); +#9011=ORIENTED_EDGE('',*,*,#7720,.T.); +#9013=ORIENTED_EDGE('',*,*,#9012,.F.); +#9015=ORIENTED_EDGE('',*,*,#9014,.T.); +#9016=EDGE_LOOP('',(#9010,#9011,#9013,#9015)); +#9017=FACE_OUTER_BOUND('',#9016,.F.); +#9019=CARTESIAN_POINT('',(-7.729785106631E1,2.82E2,-1.699E2)); +#9020=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9021=DIRECTION('',(1.E0,0.E0,0.E0)); +#9022=AXIS2_PLACEMENT_3D('',#9019,#9020,#9021); +#9023=PLANE('',#9022); +#9025=ORIENTED_EDGE('',*,*,#9024,.F.); +#9026=ORIENTED_EDGE('',*,*,#9012,.T.); +#9027=ORIENTED_EDGE('',*,*,#7718,.F.); +#9029=ORIENTED_EDGE('',*,*,#9028,.T.); +#9031=ORIENTED_EDGE('',*,*,#9030,.F.); +#9033=ORIENTED_EDGE('',*,*,#9032,.T.); +#9035=ORIENTED_EDGE('',*,*,#9034,.F.); +#9037=ORIENTED_EDGE('',*,*,#9036,.T.); +#9038=EDGE_LOOP('',(#9025,#9026,#9027,#9029,#9031,#9033,#9035,#9037)); +#9039=FACE_OUTER_BOUND('',#9038,.F.); +#9041=CARTESIAN_POINT('',(0.E0,0.E0,-1.369E2)); +#9042=DIRECTION('',(0.E0,0.E0,1.E0)); +#9043=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9044=AXIS2_PLACEMENT_3D('',#9041,#9042,#9043); +#9045=PLANE('',#9044); +#9046=ORIENTED_EDGE('',*,*,#8986,.F.); +#9047=ORIENTED_EDGE('',*,*,#9014,.F.); +#9048=ORIENTED_EDGE('',*,*,#9024,.T.); +#9050=ORIENTED_EDGE('',*,*,#9049,.F.); +#9051=EDGE_LOOP('',(#9046,#9047,#9048,#9050)); +#9052=FACE_OUTER_BOUND('',#9051,.F.); +#9054=CARTESIAN_POINT('',(-5.519223417048E1,1.064124E3,-1.269E2)); +#9055=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9056=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9057=AXIS2_PLACEMENT_3D('',#9054,#9055,#9056); +#9058=CYLINDRICAL_SURFACE('',#9057,1.E1); +#9059=ORIENTED_EDGE('',*,*,#8972,.F.); +#9060=ORIENTED_EDGE('',*,*,#9049,.T.); +#9061=ORIENTED_EDGE('',*,*,#9036,.F.); +#9063=ORIENTED_EDGE('',*,*,#9062,.T.); +#9064=EDGE_LOOP('',(#9059,#9060,#9061,#9063)); +#9065=FACE_OUTER_BOUND('',#9064,.F.); +#9067=CARTESIAN_POINT('',(-6.519223417048E1,3.1641E2,-3.86E1)); +#9068=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9069=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9070=AXIS2_PLACEMENT_3D('',#9067,#9068,#9069); +#9071=PLANE('',#9070); +#9072=ORIENTED_EDGE('',*,*,#8958,.F.); +#9073=ORIENTED_EDGE('',*,*,#9062,.F.); +#9074=ORIENTED_EDGE('',*,*,#9034,.T.); +#9076=ORIENTED_EDGE('',*,*,#9075,.F.); +#9078=ORIENTED_EDGE('',*,*,#9077,.F.); +#9080=ORIENTED_EDGE('',*,*,#9079,.F.); +#9081=ORIENTED_EDGE('',*,*,#8361,.T.); +#9082=ORIENTED_EDGE('',*,*,#8521,.F.); +#9083=ORIENTED_EDGE('',*,*,#8567,.F.); +#9084=ORIENTED_EDGE('',*,*,#8582,.T.); +#9085=EDGE_LOOP('',(#9072,#9073,#9074,#9076,#9078,#9080,#9081,#9082,#9083, +#9084)); +#9086=FACE_OUTER_BOUND('',#9085,.F.); +#9088=CARTESIAN_POINT('',(-4.939223417048E1,-9.140899009060E2,-1.541E2)); +#9089=DIRECTION('',(0.E0,1.E0,0.E0)); +#9090=DIRECTION('',(0.E0,0.E0,-1.E0)); +#9091=AXIS2_PLACEMENT_3D('',#9088,#9089,#9090); +#9092=CYLINDRICAL_SURFACE('',#9091,1.58E1); +#9093=ORIENTED_EDGE('',*,*,#9032,.F.); +#9095=ORIENTED_EDGE('',*,*,#9094,.T.); +#9097=ORIENTED_EDGE('',*,*,#9096,.F.); +#9098=ORIENTED_EDGE('',*,*,#9075,.T.); +#9099=EDGE_LOOP('',(#9093,#9095,#9097,#9098)); +#9100=FACE_OUTER_BOUND('',#9099,.F.); +#9102=CARTESIAN_POINT('',(0.E0,0.E0,-1.699E2)); +#9103=DIRECTION('',(0.E0,0.E0,1.E0)); +#9104=DIRECTION('',(0.E0,1.E0,0.E0)); +#9105=AXIS2_PLACEMENT_3D('',#9102,#9103,#9104); +#9106=PLANE('',#9105); +#9107=ORIENTED_EDGE('',*,*,#9030,.T.); +#9109=ORIENTED_EDGE('',*,*,#9108,.F.); +#9111=ORIENTED_EDGE('',*,*,#9110,.F.); +#9113=ORIENTED_EDGE('',*,*,#9112,.F.); +#9114=ORIENTED_EDGE('',*,*,#9094,.F.); +#9115=EDGE_LOOP('',(#9107,#9109,#9111,#9113,#9114)); +#9116=FACE_OUTER_BOUND('',#9115,.F.); +#9118=CARTESIAN_POINT('',(-6.346321119596E0,1.064124E3,-1.541E2)); +#9119=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9120=DIRECTION('',(0.E0,0.E0,-1.E0)); +#9121=AXIS2_PLACEMENT_3D('',#9118,#9119,#9120); +#9122=CYLINDRICAL_SURFACE('',#9121,1.58E1); +#9123=ORIENTED_EDGE('',*,*,#9028,.F.); +#9124=ORIENTED_EDGE('',*,*,#7716,.T.); +#9126=ORIENTED_EDGE('',*,*,#9125,.F.); +#9127=ORIENTED_EDGE('',*,*,#9108,.T.); +#9128=EDGE_LOOP('',(#9123,#9124,#9126,#9127)); +#9129=FACE_OUTER_BOUND('',#9128,.F.); +#9131=CARTESIAN_POINT('',(1.356455263463E1,1.988180543384E2,-1.766428122845E2)); +#9132=CARTESIAN_POINT('',(1.357977330416E1,2.023379414872E2,-1.766352608087E2)); +#9133=CARTESIAN_POINT('',(1.336104677040E1,2.091683660459E2,-1.766062003805E2)); +#9134=CARTESIAN_POINT('',(1.185622759352E1,2.182422686976E2,-1.765320599334E2)); +#9135=CARTESIAN_POINT('',(8.929675183413E0,2.254843736876E2,-1.764454711188E2)); +#9136=CARTESIAN_POINT('',(2.880022558971E0,2.326179522728E2,-1.763242212478E2)); +#9137=CARTESIAN_POINT('',(-8.527707643042E0,2.370490405988E2, +-1.762034835390E2)); +#9138=CARTESIAN_POINT('',(-2.077751444071E1,2.376129915243E2, +-1.762612316683E2)); +#9139=CARTESIAN_POINT('',(-2.765847073683E1,2.375077978495E2, +-1.763426356600E2)); +#9140=CARTESIAN_POINT('',(1.445484023622E1,1.988038333673E2,-1.755260887585E2)); +#9141=CARTESIAN_POINT('',(1.447114093775E1,2.023972810276E2,-1.755214649137E2)); +#9142=CARTESIAN_POINT('',(1.424316058959E1,2.093716552290E2,-1.755031111226E2)); +#9143=CARTESIAN_POINT('',(1.268901157537E1,2.186471524529E2,-1.754569666006E2)); +#9144=CARTESIAN_POINT('',(9.682951238749E0,2.260681694413E2,-1.754046041927E2)); +#9145=CARTESIAN_POINT('',(3.490750512907E0,2.334149062558E2,-1.753304298290E2)); +#9146=CARTESIAN_POINT('',(-8.161259562108E0,2.380627077445E2, +-1.752536057338E2)); +#9147=CARTESIAN_POINT('',(-2.065605495771E1,2.387236208036E2, +-1.752924530729E2)); +#9148=CARTESIAN_POINT('',(-2.767204918244E1,2.386452099025E2, +-1.753443132985E2)); +#9149=CARTESIAN_POINT('',(1.617626716921E1,1.987765103308E2,-1.732154529151E2)); +#9150=CARTESIAN_POINT('',(1.619445330261E1,2.025125127584E2,-1.732152801577E2)); +#9151=CARTESIAN_POINT('',(1.594820483523E1,2.097652830579E2,-1.732136759747E2)); +#9152=CARTESIAN_POINT('',(1.429747303325E1,2.194267908173E2,-1.732121827070E2)); +#9153=CARTESIAN_POINT('',(1.113574389638E1,2.271850800787E2,-1.732149414470E2)); +#9154=CARTESIAN_POINT('',(4.667422320677E0,2.349246850136E2,-1.732172121987E2)); +#9155=CARTESIAN_POINT('',(-7.450022633257E0,2.399628378413E2, +-1.732132787228E2)); +#9156=CARTESIAN_POINT('',(-2.041831173421E1,2.407947985602E2, +-1.732253209486E2)); +#9157=CARTESIAN_POINT('',(-2.769718004587E1,2.407617719929E2, +-1.732327031504E2)); +#9158=CARTESIAN_POINT('',(1.861638452016E1,1.987374898437E2,-1.696712987737E2)); +#9159=CARTESIAN_POINT('',(1.863726790373E1,2.026783684654E2,-1.696756523748E2)); +#9160=CARTESIAN_POINT('',(1.836580628026E1,2.103310547974E2,-1.696926035726E2)); +#9161=CARTESIAN_POINT('',(1.657990999925E1,2.205432761578E2,-1.697426778216E2)); +#9162=CARTESIAN_POINT('',(1.319919834488E1,2.287770530208E2,-1.698099589898E2)); +#9163=CARTESIAN_POINT('',(6.341171663811E0,2.370600380886E2,-1.699021295293E2)); +#9164=CARTESIAN_POINT('',(-6.432791135730E0,2.426139302954E2, +-1.699840462686E2)); +#9165=CARTESIAN_POINT('',(-2.007669122018E1,2.436384776767E2, +-1.699629663146E2)); +#9166=CARTESIAN_POINT('',(-2.773375377247E1,2.436406612017E2, +-1.699165398067E2)); +#9167=CARTESIAN_POINT('',(2.087502464671E1,1.987013912452E2,-1.659856425164E2)); +#9168=CARTESIAN_POINT('',(2.089837189407E1,2.028334450096E2,-1.659911892539E2)); +#9169=CARTESIAN_POINT('',(2.060451844699E1,2.108585156783E2,-1.660158097415E2)); +#9170=CARTESIAN_POINT('',(1.869648576062E1,2.215777529725E2,-1.660904165947E2)); +#9171=CARTESIAN_POINT('',(1.511642749159E1,2.302421721594E2,-1.661892347539E2)); +#9172=CARTESIAN_POINT('',(7.900136630558E0,2.390059242280E2,-1.663256498547E2)); +#9173=CARTESIAN_POINT('',(-5.480917603938E0,2.449854948728E2, +-1.664512574635E2)); +#9174=CARTESIAN_POINT('',(-1.975492651696E1,2.461283214405E2, +-1.664177491838E2)); +#9175=CARTESIAN_POINT('',(-2.776792272720E1,2.461306721611E2, +-1.663472265686E2)); +#9176=CARTESIAN_POINT('',(2.342301630339E1,1.986610300466E2,-1.608880494629E2)); +#9177=CARTESIAN_POINT('',(2.344862827953E1,2.030087086686E2,-1.608904492422E2)); +#9178=CARTESIAN_POINT('',(2.313018277440E1,2.114516332047E2,-1.609078237275E2)); +#9179=CARTESIAN_POINT('',(2.108726100350E1,2.227261283056E2,-1.609685206665E2)); +#9180=CARTESIAN_POINT('',(1.728529191868E1,2.318460423326E2,-1.610513577806E2)); +#9181=CARTESIAN_POINT('',(9.666827599884E0,2.410942080498E2,-1.611668437269E2)); +#9182=CARTESIAN_POINT('',(-4.393781111193E0,2.474512838336E2, +-1.612800717517E2)); +#9183=CARTESIAN_POINT('',(-1.938339675217E1,2.486480727743E2, +-1.612732063192E2)); +#9184=CARTESIAN_POINT('',(-2.780739089207E1,2.486172875050E2, +-1.612283376307E2)); +#9185=CARTESIAN_POINT('',(2.536549336987E1,1.986303373709E2,-1.539421525386E2)); +#9186=CARTESIAN_POINT('',(2.539181688539E1,2.031419119165E2,-1.539427995079E2)); +#9187=CARTESIAN_POINT('',(2.505778549147E1,2.118995005498E2,-1.539481670642E2)); +#9188=CARTESIAN_POINT('',(2.292125502036E1,2.235640351192E2,-1.539670589841E2)); +#9189=CARTESIAN_POINT('',(1.895911910382E1,2.329720183537E2,-1.539922932897E2)); +#9190=CARTESIAN_POINT('',(1.104528414961E1,2.424856608929E2,-1.540252776770E2)); +#9191=CARTESIAN_POINT('',(-3.510083824950E0,2.489918173528E2, +-1.540610342266E2)); +#9192=CARTESIAN_POINT('',(-1.906931585892E1,2.501929182870E2, +-1.540901685185E2)); +#9193=CARTESIAN_POINT('',(-2.784097249954E1,2.501457905138E2, +-1.541020064561E2)); +#9194=CARTESIAN_POINT('',(2.576003277396E1,1.986193988675E2,-1.480313263293E2)); +#9195=CARTESIAN_POINT('',(2.578541578833E1,2.031894849482E2,-1.480316855463E2)); +#9196=CARTESIAN_POINT('',(2.545438009858E1,2.120601925386E2,-1.480343958247E2)); +#9197=CARTESIAN_POINT('',(2.331673192841E1,2.238449189555E2,-1.480435481291E2)); +#9198=CARTESIAN_POINT('',(1.934259723250E1,2.333162186050E2,-1.480551997124E2)); +#9199=CARTESIAN_POINT('',(1.139799119094E1,2.428578297639E2,-1.480675185835E2)); +#9200=CARTESIAN_POINT('',(-3.225003306766E0,2.493390667871E2, +-1.480709259674E2)); +#9201=CARTESIAN_POINT('',(-1.895101072115E1,2.505287247443E2, +-1.480762794800E2)); +#9202=CARTESIAN_POINT('',(-2.785337653952E1,2.504867066861E2, +-1.480803518491E2)); +#9203=CARTESIAN_POINT('',(2.586397615665E1,1.986146946878E2,-1.449862642845E2)); +#9204=CARTESIAN_POINT('',(2.588869554161E1,2.032100183239E2,-1.449860437791E2)); +#9205=CARTESIAN_POINT('',(2.556047518390E1,2.121296560548E2,-1.449868225387E2)); +#9206=CARTESIAN_POINT('',(2.342878718047E1,2.239635027605E2,-1.449907753458E2)); +#9207=CARTESIAN_POINT('',(1.945885656771E1,2.334562996380E2,-1.449955008833E2)); +#9208=CARTESIAN_POINT('',(1.151618764719E1,2.429996959147E2,-1.449971849427E2)); +#9209=CARTESIAN_POINT('',(-3.113938419218E0,2.494549701812E2, +-1.449851407614E2)); +#9210=CARTESIAN_POINT('',(-1.890121862881E1,2.506319228298E2, +-1.449790812367E2)); +#9211=CARTESIAN_POINT('',(-2.785862204193E1,2.505903298995E2, +-1.449787123427E2)); +#9212=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#9131,#9132,#9133,#9134,#9135,#9136, +#9137,#9138,#9139),(#9140,#9141,#9142,#9143,#9144,#9145,#9146,#9147,#9148),( +#9149,#9150,#9151,#9152,#9153,#9154,#9155,#9156,#9157),(#9158,#9159,#9160,#9161, +#9162,#9163,#9164,#9165,#9166),(#9167,#9168,#9169,#9170,#9171,#9172,#9173,#9174, +#9175),(#9176,#9177,#9178,#9179,#9180,#9181,#9182,#9183,#9184),(#9185,#9186, +#9187,#9188,#9189,#9190,#9191,#9192,#9193),(#9194,#9195,#9196,#9197,#9198,#9199, +#9200,#9201,#9202),(#9203,#9204,#9205,#9206,#9207,#9208,#9209,#9210,#9211)), +.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1,1,1,1,4),(4,1,1,1,1,1,4),(-1.662060469505E-1, +-2.613471780889E-2,1.204559561797E-1,2.670466301684E-1,4.136373041570E-1, +7.068186521343E-1,1.012243145402E0),(4.958152984222E-1,5.625E-1,6.25E-1, +6.875E-1,7.5E-1,8.75E-1,1.004158548838E0),.UNSPECIFIED.); +#9213=ORIENTED_EDGE('',*,*,#9110,.T.); +#9214=ORIENTED_EDGE('',*,*,#9125,.T.); +#9215=ORIENTED_EDGE('',*,*,#7714,.T.); +#9217=ORIENTED_EDGE('',*,*,#9216,.T.); +#9218=ORIENTED_EDGE('',*,*,#7993,.T.); +#9220=ORIENTED_EDGE('',*,*,#9219,.T.); +#9222=ORIENTED_EDGE('',*,*,#9221,.F.); +#9223=EDGE_LOOP('',(#9213,#9214,#9215,#9217,#9218,#9220,#9222)); +#9224=FACE_OUTER_BOUND('',#9223,.F.); +#9226=CARTESIAN_POINT('',(9.019349234767E0,2.471403198546E2,-5.176324243220E1)); +#9227=CARTESIAN_POINT('',(8.358361252626E0,2.462143213538E2,-8.358880296559E1)); +#9228=CARTESIAN_POINT('',(7.697373270485E0,2.452883228531E2,-1.154143634990E2)); +#9229=CARTESIAN_POINT('',(7.036385288343E0,2.443623243524E2,-1.472399240324E2)); +#9230=CARTESIAN_POINT('',(9.177832224060E0,2.470549201647E2,-5.176324663603E1)); +#9231=CARTESIAN_POINT('',(8.514013299920E0,2.461309069758E2,-8.358880734764E1)); +#9232=CARTESIAN_POINT('',(7.850194375780E0,2.452068937868E2,-1.154143680592E2)); +#9233=CARTESIAN_POINT('',(7.186375451640E0,2.442828805979E2,-1.472399287708E2)); +#9234=CARTESIAN_POINT('',(1.283356102706E1,2.450516657933E2,-5.176334530746E1)); +#9235=CARTESIAN_POINT('',(1.210421683443E1,2.441738986471E2,-8.358891009165E1)); +#9236=CARTESIAN_POINT('',(1.137487264179E1,2.432961315010E2,-1.154144748758E2)); +#9237=CARTESIAN_POINT('',(1.064552844915E1,2.424183643548E2,-1.472400396600E2)); +#9238=CARTESIAN_POINT('',(1.903908880816E1,2.401359602655E2,-5.176358316394E1)); +#9239=CARTESIAN_POINT('',(1.818820630951E1,2.393573146156E2,-8.358915281872E1)); +#9240=CARTESIAN_POINT('',(1.733732381086E1,2.385786689657E2,-1.154147224735E2)); +#9241=CARTESIAN_POINT('',(1.648644131221E1,2.378000233157E2,-1.472402921283E2)); +#9242=CARTESIAN_POINT('',(2.533719031333E1,2.295402016447E2,-5.176366098921E1)); +#9243=CARTESIAN_POINT('',(2.431663278285E1,2.289463391118E2,-8.358920944580E1)); +#9244=CARTESIAN_POINT('',(2.329607525236E1,2.283524765789E2,-1.154147579024E2)); +#9245=CARTESIAN_POINT('',(2.227551772187E1,2.277586140460E2,-1.472403063590E2)); +#9246=CARTESIAN_POINT('',(2.872884738636E1,2.156941729925E2,-5.176381133307E1)); +#9247=CARTESIAN_POINT('',(2.758386107610E1,2.153567311670E2,-8.358936973926E1)); +#9248=CARTESIAN_POINT('',(2.643887476585E1,2.150192893414E2,-1.154149281455E2)); +#9249=CARTESIAN_POINT('',(2.529388845559E1,2.146818475159E2,-1.472404865516E2)); +#9250=CARTESIAN_POINT('',(2.930714323877E1,2.047160384681E2,-5.176391129543E1)); +#9251=CARTESIAN_POINT('',(2.813542960473E1,2.046063717736E2,-8.358947734398E1)); +#9252=CARTESIAN_POINT('',(2.696371597069E1,2.044967050790E2,-1.154150433925E2)); +#9253=CARTESIAN_POINT('',(2.579200233665E1,2.043870383845E2,-1.472406094411E2)); +#9254=CARTESIAN_POINT('',(2.929735727168E1,1.991191393367E2,-5.176390960375E1)); +#9255=CARTESIAN_POINT('',(2.812609591948E1,1.991266928287E2,-8.358947552292E1)); +#9256=CARTESIAN_POINT('',(2.695483456728E1,1.991342463207E2,-1.154150414421E2)); +#9257=CARTESIAN_POINT('',(2.578357321508E1,1.991417998127E2,-1.472406073612E2)); +#9258=CARTESIAN_POINT('',(2.929673167097E1,1.989387702950E2,-5.176390949292E1)); +#9259=CARTESIAN_POINT('',(2.812549943132E1,1.989501023798E2,-8.358947540361E1)); +#9260=CARTESIAN_POINT('',(2.695426719167E1,1.989614344647E2,-1.154150413143E2)); +#9261=CARTESIAN_POINT('',(2.578303495202E1,1.989727665495E2,-1.472406072250E2)); +#9262=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#9226,#9227,#9228,#9229),(#9230, +#9231,#9232,#9233),(#9234,#9235,#9236,#9237),(#9238,#9239,#9240,#9241),(#9242, +#9243,#9244,#9245),(#9246,#9247,#9248,#9249),(#9250,#9251,#9252,#9253),(#9254, +#9255,#9256,#9257),(#9258,#9259,#9260,#9261)),.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1, +1,1,1,4),(4,4),(-1.147164772909E-2,0.E0,2.545315118608E-1,5.030210079074E-1, +7.515105039536E-1,1.E0,1.008274408961E0),(-9.803921569561E-3,1.009803921617E0), +.UNSPECIFIED.); +#9263=ORIENTED_EDGE('',*,*,#7712,.T.); +#9264=ORIENTED_EDGE('',*,*,#7807,.F.); +#9265=ORIENTED_EDGE('',*,*,#7857,.F.); +#9266=ORIENTED_EDGE('',*,*,#9216,.F.); +#9267=EDGE_LOOP('',(#9263,#9264,#9265,#9266)); +#9268=FACE_OUTER_BOUND('',#9267,.F.); +#9270=CARTESIAN_POINT('',(4.555367888040E1,2.531015233771E2,-1.760029609344E2)); +#9271=DIRECTION('',(0.E0,0.E0,-1.E0)); +#9272=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9273=AXIS2_PLACEMENT_3D('',#9270,#9271,#9272); +#9274=PLANE('',#9273); +#9275=ORIENTED_EDGE('',*,*,#8290,.F.); +#9277=ORIENTED_EDGE('',*,*,#9276,.T.); +#9278=ORIENTED_EDGE('',*,*,#9219,.F.); +#9279=ORIENTED_EDGE('',*,*,#7991,.T.); +#9280=EDGE_LOOP('',(#9275,#9277,#9278,#9279)); +#9281=FACE_OUTER_BOUND('',#9280,.F.); +#9283=ORIENTED_EDGE('',*,*,#9282,.T.); +#9285=ORIENTED_EDGE('',*,*,#9284,.T.); +#9286=EDGE_LOOP('',(#9283,#9285)); +#9287=FACE_BOUND('',#9286,.F.); +#9289=CARTESIAN_POINT('',(-6.755719130666E1,1.988180590295E2, +-1.766428167714E2)); +#9290=CARTESIAN_POINT('',(-6.757241185271E1,2.023379443425E2, +-1.766352652807E2)); +#9291=CARTESIAN_POINT('',(-6.735368522559E1,2.091683666119E2, +-1.766062048110E2)); +#9292=CARTESIAN_POINT('',(-6.584886647713E1,2.182422670659E2, +-1.765320642620E2)); +#9293=CARTESIAN_POINT('',(-6.292231438732E1,2.254843713348E2, +-1.764454753091E2)); +#9294=CARTESIAN_POINT('',(-5.687266233722E1,2.326179490604E2, +-1.763242252479E2)); +#9295=CARTESIAN_POINT('',(-4.546501618260E1,2.370490042487E2, +-1.762034882409E2)); +#9296=CARTESIAN_POINT('',(-3.321534956501E1,2.376129768150E2, +-1.762612345198E2)); +#9297=CARTESIAN_POINT('',(-2.633454006382E1,2.375077988979E2, +-1.763426353193E2)); +#9298=CARTESIAN_POINT('',(-6.844748166989E1,1.988038381110E2, +-1.755260899691E2)); +#9299=CARTESIAN_POINT('',(-6.846378224589E1,2.023972841313E2, +-1.755214661207E2)); +#9300=CARTESIAN_POINT('',(-6.823580177270E1,2.093716564547E2, +-1.755031123252E2)); +#9301=CARTESIAN_POINT('',(-6.668165304274E1,2.186471520787E2, +-1.754569677943E2)); +#9302=CARTESIAN_POINT('',(-6.367559278197E1,2.260681689100E2, +-1.754046053660E2)); +#9303=CARTESIAN_POINT('',(-5.748339218910E1,2.334149055477E2, +-1.753304309736E2)); +#9304=CARTESIAN_POINT('',(-4.583146717503E1,2.380626730259E2, +-1.752536074092E2)); +#9305=CARTESIAN_POINT('',(-3.333681386626E1,2.387236078666E2, +-1.752924534919E2)); +#9306=CARTESIAN_POINT('',(-2.632096880705E1,2.386452131395E2, +-1.753443116601E2)); +#9307=CARTESIAN_POINT('',(-7.016891085549E1,1.987765152266E2, +-1.732154510428E2)); +#9308=CARTESIAN_POINT('',(-7.018709685490E1,2.025125161391E2, +-1.732152782890E2)); +#9309=CARTESIAN_POINT('',(-6.994084823168E1,2.097652848572E2, +-1.732136741213E2)); +#9310=CARTESIAN_POINT('',(-6.829011660092E1,2.194267914600E2, +-1.732121808935E2)); +#9311=CARTESIAN_POINT('',(-6.512838733421E1,2.271850809997E2, +-1.732149396825E2)); +#9312=CARTESIAN_POINT('',(-5.866006552945E1,2.349246862589E2, +-1.732172105024E2)); +#9313=CARTESIAN_POINT('',(-4.654270842261E1,2.399628027285E2, +-1.732132771205E2)); +#9314=CARTESIAN_POINT('',(-3.357456599260E1,2.407947851872E2, +-1.732253190756E2)); +#9315=CARTESIAN_POINT('',(-2.629585198943E1,2.407617755270E2, +-1.732327010610E2)); +#9316=CARTESIAN_POINT('',(-7.260902994176E1,1.987374949811E2, +-1.696712939486E2)); +#9317=CARTESIAN_POINT('',(-7.262991317838E1,2.026783721482E2, +-1.696756475556E2)); +#9318=CARTESIAN_POINT('',(-7.235845137345E1,2.103310570923E2, +-1.696925987715E2)); +#9319=CARTESIAN_POINT('',(-7.057255519262E1,2.205432776065E2, +-1.697426730657E2)); +#9320=CARTESIAN_POINT('',(-6.719184325775E1,2.287770550806E2, +-1.698099543006E2)); +#9321=CARTESIAN_POINT('',(-6.033381607483E1,2.370600408397E2, +-1.699021249330E2)); +#9322=CARTESIAN_POINT('',(-4.755994543745E1,2.426138932418E2, +-1.699840411650E2)); +#9323=CARTESIAN_POINT('',(-3.391619901445E1,2.436384626789E2, +-1.699629621562E2)); +#9324=CARTESIAN_POINT('',(-2.625929848981E1,2.436406646962E2, +-1.699165376966E2)); +#9325=CARTESIAN_POINT('',(-7.486766922401E1,1.987013966481E2, +-1.659856383679E2)); +#9326=CARTESIAN_POINT('',(-7.489101630984E1,2.028334488040E2, +-1.659911851080E2)); +#9327=CARTESIAN_POINT('',(-7.459716268210E1,2.108585178533E2, +-1.660158055950E2)); +#9328=CARTESIAN_POINT('',(-7.268913016379E1,2.215777540221E2, +-1.660904124402E2)); +#9329=CARTESIAN_POINT('',(-6.910907169279E1,2.302421736356E2, +-1.661892306051E2)); +#9330=CARTESIAN_POINT('',(-6.189278046682E1,2.390059261692E2, +-1.663256457148E2)); +#9331=CARTESIAN_POINT('',(-4.851182304504E1,2.449854536608E2, +-1.664512524219E2)); +#9332=CARTESIAN_POINT('',(-3.423797503710E1,2.461283031097E2, +-1.664177456725E2)); +#9333=CARTESIAN_POINT('',(-2.622514860954E1,2.461306744196E2, +-1.663472262284E2)); +#9334=CARTESIAN_POINT('',(-7.741565973504E1,1.986610357519E2, +-1.608880462163E2)); +#9335=CARTESIAN_POINT('',(-7.744127153380E1,2.030087125726E2, +-1.608904459978E2)); +#9336=CARTESIAN_POINT('',(-7.712282585059E1,2.114516351922E2, +-1.609078204750E2)); +#9337=CARTESIAN_POINT('',(-7.507990433264E1,2.227261288101E2, +-1.609685173789E2)); +#9338=CARTESIAN_POINT('',(-7.127793514919E1,2.318460430203E2, +-1.610513544597E2)); +#9339=CARTESIAN_POINT('',(-6.365947064981E1,2.410942089149E2, +-1.611668403598E2)); +#9340=CARTESIAN_POINT('',(-4.959896401581E1,2.474512385185E2, +-1.612800675212E2)); +#9341=CARTESIAN_POINT('',(-3.460951763034E1,2.486480520257E2, +-1.612732030675E2)); +#9342=CARTESIAN_POINT('',(-2.618570247138E1,2.486172900969E2, +-1.612283366946E2)); +#9343=CARTESIAN_POINT('',(-7.935813577743E1,1.986303433069E2, +-1.539421506052E2)); +#9344=CARTESIAN_POINT('',(-7.938445910669E1,2.031419158978E2, +-1.539427975769E2)); +#9345=CARTESIAN_POINT('',(-7.905042753886E1,2.118995023771E2, +-1.539481651344E2)); +#9346=CARTESIAN_POINT('',(-7.691389739303E1,2.235640351992E2, +-1.539670570498E2)); +#9347=CARTESIAN_POINT('',(-7.295176147161E1,2.329720184491E2, +-1.539922913517E2)); +#9348=CARTESIAN_POINT('',(-6.503792650589E1,2.424856609919E2, +-1.540252757329E2)); +#9349=CARTESIAN_POINT('',(-5.048266449007E1,2.489917700691E2, +-1.540610320105E2)); +#9350=CARTESIAN_POINT('',(-3.492360872001E1,2.501928965882E2, +-1.540901660238E2)); +#9351=CARTESIAN_POINT('',(-2.615213949806E1,2.501457931389E2, +-1.541020038521E2)); +#9352=CARTESIAN_POINT('',(-7.975267507048E1,1.986194048827E2, +-1.480313256663E2)); +#9353=CARTESIAN_POINT('',(-7.977805790133E1,2.031894889715E2, +-1.480316848838E2)); +#9354=CARTESIAN_POINT('',(-7.944702203581E1,2.120601943532E2, +-1.480343951619E2)); +#9355=CARTESIAN_POINT('',(-7.730937419320E1,2.238449189822E2, +-1.480435474637E2)); +#9356=CARTESIAN_POINT('',(-7.333523949808E1,2.333162186369E2, +-1.480551990454E2)); +#9357=CARTESIAN_POINT('',(-6.539063345675E1,2.428578297965E2, +-1.480675179142E2)); +#9358=CARTESIAN_POINT('',(-5.076774543129E1,2.493390196225E2, +-1.480709252700E2)); +#9359=CARTESIAN_POINT('',(-3.504191685583E1,2.505287031834E2, +-1.480762787076E2)); +#9360=CARTESIAN_POINT('',(-2.613974246087E1,2.504867089597E2, +-1.480803509551E2)); +#9361=CARTESIAN_POINT('',(-7.985661842924E1,1.986147007372E2, +-1.449862642579E2)); +#9362=CARTESIAN_POINT('',(-7.988133763296E1,2.032100223650E2, +-1.449860437532E2)); +#9363=CARTESIAN_POINT('',(-7.955311709855E1,2.121296578619E2, +-1.449868225130E2)); +#9364=CARTESIAN_POINT('',(-7.742142942059E1,2.239635027615E2, +-1.449907753195E2)); +#9365=CARTESIAN_POINT('',(-7.345149880786E1,2.334562996392E2, +-1.449955008569E2)); +#9366=CARTESIAN_POINT('',(-6.550882988737E1,2.429996959158E2, +-1.449971849162E2)); +#9367=CARTESIAN_POINT('',(-5.087881034703E1,2.494549231793E2, +-1.449851408225E2)); +#9368=CARTESIAN_POINT('',(-3.509171004924E1,2.506319014760E2, +-1.449790813199E2)); +#9369=CARTESIAN_POINT('',(-2.613449990708E1,2.505903321272E2, +-1.449787123357E2)); +#9370=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#9289,#9290,#9291,#9292,#9293,#9294, +#9295,#9296,#9297),(#9298,#9299,#9300,#9301,#9302,#9303,#9304,#9305,#9306),( +#9307,#9308,#9309,#9310,#9311,#9312,#9313,#9314,#9315),(#9316,#9317,#9318,#9319, +#9320,#9321,#9322,#9323,#9324),(#9325,#9326,#9327,#9328,#9329,#9330,#9331,#9332, +#9333),(#9334,#9335,#9336,#9337,#9338,#9339,#9340,#9341,#9342),(#9343,#9344, +#9345,#9346,#9347,#9348,#9349,#9350,#9351),(#9352,#9353,#9354,#9355,#9356,#9357, +#9358,#9359,#9360),(#9361,#9362,#9363,#9364,#9365,#9366,#9367,#9368,#9369)), +.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1,1,1,1,4),(4,1,1,1,1,1,4),(-1.662062349900E-1, +-2.613449069705E-2,1.204561508414E-1,2.670467923799E-1,4.136374339183E-1, +7.068187169953E-1,1.012243146279E0),(4.958153276845E-1,5.625E-1,6.25E-1, +6.875E-1,7.5E-1,8.75E-1,1.004156243157E0),.UNSPECIFIED.); +#9371=ORIENTED_EDGE('',*,*,#9077,.T.); +#9372=ORIENTED_EDGE('',*,*,#9096,.T.); +#9373=ORIENTED_EDGE('',*,*,#9112,.T.); +#9374=ORIENTED_EDGE('',*,*,#9221,.T.); +#9375=ORIENTED_EDGE('',*,*,#9276,.F.); +#9376=ORIENTED_EDGE('',*,*,#8288,.F.); +#9378=ORIENTED_EDGE('',*,*,#9377,.F.); +#9379=EDGE_LOOP('',(#9371,#9372,#9373,#9374,#9375,#9376,#9378)); +#9380=FACE_OUTER_BOUND('',#9379,.F.); +#9382=CARTESIAN_POINT('',(-6.479157613847E1,2.461177827040E2, +-5.176313885275E1)); +#9383=CARTESIAN_POINT('',(-6.409838735469E1,2.452149744834E2, +-8.358782528857E1)); +#9384=CARTESIAN_POINT('',(-6.340519857091E1,2.443121662629E2, +-1.154125117244E2)); +#9385=CARTESIAN_POINT('',(-6.271200978713E1,2.434093580423E2, +-1.472371981602E2)); +#9386=CARTESIAN_POINT('',(-6.493942318885E1,2.460272972216E2, +-5.176314331204E1)); +#9387=CARTESIAN_POINT('',(-6.424352554239E1,2.451264973407E2, +-8.358782992242E1)); +#9388=CARTESIAN_POINT('',(-6.354762789594E1,2.442256974597E2, +-1.154125165328E2)); +#9389=CARTESIAN_POINT('',(-6.285173024949E1,2.433248975787E2, +-1.472372031432E2)); +#9390=CARTESIAN_POINT('',(-6.830722726455E1,2.439325294904E2, +-5.176324568026E1)); +#9391=CARTESIAN_POINT('',(-6.754936655463E1,2.430779196004E2, +-8.358793612850E1)); +#9392=CARTESIAN_POINT('',(-6.679150584472E1,2.422233097104E2, +-1.154126265767E2)); +#9393=CARTESIAN_POINT('',(-6.603364513480E1,2.413686998204E2, +-1.472373170250E2)); +#9394=CARTESIAN_POINT('',(-7.398903931054E1,2.388952896187E2, +-5.176344951539E1)); +#9395=CARTESIAN_POINT('',(-7.311508621619E1,2.381385931255E2, +-8.358814030359E1)); +#9396=CARTESIAN_POINT('',(-7.224113312183E1,2.373818966323E2, +-1.154128310918E2)); +#9397=CARTESIAN_POINT('',(-7.136718002748E1,2.366252001390E2, +-1.472375218800E2)); +#9398=CARTESIAN_POINT('',(-7.970569521307E1,2.283838675489E2, +-5.176351487347E1)); +#9399=CARTESIAN_POINT('',(-7.867218939722E1,2.278106258791E2, +-8.358818723059E1)); +#9400=CARTESIAN_POINT('',(-7.763868358138E1,2.272373842093E2, +-1.154128595877E2)); +#9401=CARTESIAN_POINT('',(-7.660517776554E1,2.266641425395E2, +-1.472375319448E2)); +#9402=CARTESIAN_POINT('',(-8.277178892953E1,2.149743866278E2, +-5.176366704393E1)); +#9403=CARTESIAN_POINT('',(-8.162441482482E1,2.146516807031E2, +-8.358835032545E1)); +#9404=CARTESIAN_POINT('',(-8.047704072012E1,2.143289747785E2, +-1.154130336070E2)); +#9405=CARTESIAN_POINT('',(-7.932966661541E1,2.140062688538E2, +-1.472377168885E2)); +#9406=CARTESIAN_POINT('',(-8.329901762941E1,2.044808673641E2, +-5.176375754425E1)); +#9407=CARTESIAN_POINT('',(-8.212737358794E1,2.043761329657E2, +-8.358844756326E1)); +#9408=CARTESIAN_POINT('',(-8.095572954647E1,2.042713985673E2, +-1.154131375823E2)); +#9409=CARTESIAN_POINT('',(-7.978408550499E1,2.041666641689E2, +-1.472378276013E2)); +#9410=CARTESIAN_POINT('',(-8.329002877864E1,1.991327006422E2, +-5.176375600118E1)); +#9411=CARTESIAN_POINT('',(-8.211879852124E1,1.991399698172E2, +-8.358844590528E1)); +#9412=CARTESIAN_POINT('',(-8.094756826384E1,1.991472389922E2, +-1.154131358094E2)); +#9413=CARTESIAN_POINT('',(-7.977633800644E1,1.991545081673E2, +-1.472378257135E2)); +#9414=CARTESIAN_POINT('',(-8.328944989717E1,1.989591153762E2, +-5.176375589945E1)); +#9415=CARTESIAN_POINT('',(-8.211824645903E1,1.989700206630E2, +-8.358844579598E1)); +#9416=CARTESIAN_POINT('',(-8.094704302088E1,1.989809259497E2, +-1.154131356925E2)); +#9417=CARTESIAN_POINT('',(-7.977583958273E1,1.989918312365E2, +-1.472378255890E2)); +#9418=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#9382,#9383,#9384,#9385),(#9386, +#9387,#9388,#9389),(#9390,#9391,#9392,#9393),(#9394,#9395,#9396,#9397),(#9398, +#9399,#9400,#9401),(#9402,#9403,#9404,#9405),(#9406,#9407,#9408,#9409),(#9410, +#9411,#9412,#9413),(#9414,#9415,#9416,#9417)),.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1, +1,1,1,4),(4,4),(-1.166193257122E-2,0.E0,2.554308686219E-1,5.036205790817E-1, +7.518102895411E-1,1.E0,1.008325556445E0),(-9.806145342179E-3,1.009803965186E0), +.UNSPECIFIED.); +#9419=ORIENTED_EDGE('',*,*,#9079,.T.); +#9420=ORIENTED_EDGE('',*,*,#9377,.T.); +#9422=ORIENTED_EDGE('',*,*,#9421,.T.); +#9423=ORIENTED_EDGE('',*,*,#8363,.F.); +#9424=EDGE_LOOP('',(#9419,#9420,#9422,#9423)); +#9425=FACE_OUTER_BOUND('',#9424,.F.); +#9427=CARTESIAN_POINT('',(-8.328941841646E1,1.999943081111E2, +-5.176496614375E1)); +#9428=CARTESIAN_POINT('',(-8.211884061690E1,1.999835386094E2, +-8.357266236365E1)); +#9429=CARTESIAN_POINT('',(-8.094826281734E1,1.999727691078E2, +-1.153803585836E2)); +#9430=CARTESIAN_POINT('',(-7.977768501779E1,1.999619996062E2, +-1.471880548035E2)); +#9431=CARTESIAN_POINT('',(-8.328998873093E1,1.998228058224E2, +-5.176496624835E1)); +#9432=CARTESIAN_POINT('',(-8.211938395302E1,1.998156278125E2, +-8.357266247727E1)); +#9433=CARTESIAN_POINT('',(-8.094877917510E1,1.998084498026E2, +-1.153803587062E2)); +#9434=CARTESIAN_POINT('',(-7.977817439718E1,1.998012717927E2, +-1.471880549351E2)); +#9435=CARTESIAN_POINT('',(-8.330085210040E1,1.933373615968E2, +-5.176496819399E1)); +#9436=CARTESIAN_POINT('',(-8.212973710153E1,1.934659488271E2, +-8.357266458988E1)); +#9437=CARTESIAN_POINT('',(-8.095862210266E1,1.935945360573E2, +-1.153803609858E2)); +#9438=CARTESIAN_POINT('',(-7.978750710379E1,1.937231232875E2, +-1.471880573817E2)); +#9439=CARTESIAN_POINT('',(-8.251148897927E1,1.806044124477E2, +-5.176482680999E1)); +#9440=CARTESIAN_POINT('',(-8.137744807646E1,1.809956305636E2, +-8.357251106905E1)); +#9441=CARTESIAN_POINT('',(-8.024340717364E1,1.813868486796E2, +-1.153801953281E2)); +#9442=CARTESIAN_POINT('',(-7.910936627082E1,1.817780667955E2, +-1.471878795872E2)); +#9443=CARTESIAN_POINT('',(-7.775206920599E1,1.653410420126E2, +-5.176471077574E1)); +#9444=CARTESIAN_POINT('',(-7.678396577225E1,1.660054174381E2, +-8.357239424522E1)); +#9445=CARTESIAN_POINT('',(-7.581586233851E1,1.666697928635E2, +-1.153800777147E2)); +#9446=CARTESIAN_POINT('',(-7.484775890477E1,1.673341682889E2, +-1.471877611842E2)); +#9447=CARTESIAN_POINT('',(-7.124163187582E1,1.573883648738E2, +-5.176455407047E1)); +#9448=CARTESIAN_POINT('',(-7.042635656940E1,1.581947308990E2, +-8.357225248821E1)); +#9449=CARTESIAN_POINT('',(-6.961108126299E1,1.590010969242E2, +-1.153799509059E2)); +#9450=CARTESIAN_POINT('',(-6.879580595657E1,1.598074629494E2, +-1.471876493237E2)); +#9451=CARTESIAN_POINT('',(-6.657540137297E1,1.539802489077E2, +-5.176440879625E1)); +#9452=CARTESIAN_POINT('',(-6.584961232269E1,1.548577566018E2, +-8.357210399009E1)); +#9453=CARTESIAN_POINT('',(-6.512382327242E1,1.557352642959E2, +-1.153797991839E2)); +#9454=CARTESIAN_POINT('',(-6.439803422214E1,1.566127719900E2, +-1.471874943778E2)); +#9455=CARTESIAN_POINT('',(-6.546523894860E1,1.532624223132E2, +-5.176437545478E1)); +#9456=CARTESIAN_POINT('',(-6.476005850625E1,1.541555420191E2, +-8.357206958824E1)); +#9457=CARTESIAN_POINT('',(-6.405487806389E1,1.550486617249E2, +-1.153797637217E2)); +#9458=CARTESIAN_POINT('',(-6.334969762154E1,1.559417814307E2, +-1.471874578551E2)); +#9459=CARTESIAN_POINT('',(-6.532043110858E1,1.531702753717E2, +-5.176437113204E1)); +#9460=CARTESIAN_POINT('',(-6.461792828869E1,1.540654103217E2, +-8.357206512321E1)); +#9461=CARTESIAN_POINT('',(-6.391542546879E1,1.549605452717E2, +-1.153797591144E2)); +#9462=CARTESIAN_POINT('',(-6.321292264890E1,1.558556802217E2, +-1.471874531056E2)); +#9463=B_SPLINE_SURFACE_WITH_KNOTS('',3,3,((#9427,#9428,#9429,#9430),(#9431, +#9432,#9433,#9434),(#9435,#9436,#9437,#9438),(#9439,#9440,#9441,#9442),(#9443, +#9444,#9445,#9446),(#9447,#9448,#9449,#9450),(#9451,#9452,#9453,#9454),(#9455, +#9456,#9457,#9458),(#9459,#9460,#9461,#9462)),.UNSPECIFIED.,.F.,.F.,.F.,(4,1,1, +1,1,1,4),(4,4),(-8.340476564895E-3,0.E0,3.070812725160E-1,6.141625449274E-1, +9.212438173385E-1,1.E0,1.011738396065E0),(-9.803771986609E-3,1.009810571400E0), +.UNSPECIFIED.); +#9464=ORIENTED_EDGE('',*,*,#8343,.T.); +#9465=ORIENTED_EDGE('',*,*,#8365,.F.); +#9466=ORIENTED_EDGE('',*,*,#9421,.F.); +#9467=ORIENTED_EDGE('',*,*,#8286,.F.); +#9468=ORIENTED_EDGE('',*,*,#8331,.T.); +#9469=EDGE_LOOP('',(#9464,#9465,#9466,#9467,#9468)); +#9470=FACE_OUTER_BOUND('',#9469,.F.); +#9472=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-1.760029609344E2)); +#9473=DIRECTION('',(0.E0,0.E0,1.E0)); +#9474=DIRECTION('',(0.E0,1.E0,0.E0)); +#9475=AXIS2_PLACEMENT_3D('',#9472,#9473,#9474); +#9476=CYLINDRICAL_SURFACE('',#9475,1.5E1); +#9477=ORIENTED_EDGE('',*,*,#4823,.F.); +#9479=ORIENTED_EDGE('',*,*,#9478,.T.); +#9480=ORIENTED_EDGE('',*,*,#9282,.F.); +#9482=ORIENTED_EDGE('',*,*,#9481,.F.); +#9483=EDGE_LOOP('',(#9477,#9479,#9480,#9482)); +#9484=FACE_OUTER_BOUND('',#9483,.F.); +#9486=CARTESIAN_POINT('',(-2.699974430812E1,2.0086E2,-1.760029609344E2)); +#9487=DIRECTION('',(0.E0,0.E0,1.E0)); +#9488=DIRECTION('',(0.E0,1.E0,0.E0)); +#9489=AXIS2_PLACEMENT_3D('',#9486,#9487,#9488); +#9490=CYLINDRICAL_SURFACE('',#9489,1.5E1); +#9491=ORIENTED_EDGE('',*,*,#4825,.F.); +#9492=ORIENTED_EDGE('',*,*,#9481,.T.); +#9493=ORIENTED_EDGE('',*,*,#9284,.F.); +#9494=ORIENTED_EDGE('',*,*,#9478,.F.); +#9495=EDGE_LOOP('',(#9491,#9492,#9493,#9494)); +#9496=FACE_OUTER_BOUND('',#9495,.F.); +#9498=CARTESIAN_POINT('',(-2.699999999992E1,1.370471841019E2,-9.7E1)); +#9499=DIRECTION('',(0.E0,9.999619230642E-1,8.726535498375E-3)); +#9500=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9501=AXIS2_PLACEMENT_3D('',#9498,#9499,#9500); +#9502=CYLINDRICAL_SURFACE('',#9501,2.950073545538E1); +#9503=ORIENTED_EDGE('',*,*,#5330,.F.); +#9504=ORIENTED_EDGE('',*,*,#5232,.F.); +#9505=ORIENTED_EDGE('',*,*,#5281,.T.); +#9506=ORIENTED_EDGE('',*,*,#5302,.F.); +#9507=EDGE_LOOP('',(#9503,#9504,#9505,#9506)); +#9508=FACE_OUTER_BOUND('',#9507,.F.); +#9510=CARTESIAN_POINT('',(1.000988548E3,-2.18E2,-1.5E1)); +#9511=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9512=DIRECTION('',(0.E0,0.E0,1.E0)); +#9513=AXIS2_PLACEMENT_3D('',#9510,#9511,#9512); +#9514=CYLINDRICAL_SURFACE('',#9513,8.E0); +#9515=ORIENTED_EDGE('',*,*,#5099,.F.); +#9516=ORIENTED_EDGE('',*,*,#5161,.T.); +#9517=ORIENTED_EDGE('',*,*,#5184,.F.); +#9518=ORIENTED_EDGE('',*,*,#5070,.T.); +#9519=EDGE_LOOP('',(#9515,#9516,#9517,#9518)); +#9520=FACE_OUTER_BOUND('',#9519,.F.); +#9522=CARTESIAN_POINT('',(-8.5E1,2.95E2,-1.9E2)); +#9523=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9524=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9525=AXIS2_PLACEMENT_3D('',#9522,#9523,#9524); +#9526=PLANE('',#9525); +#9527=ORIENTED_EDGE('',*,*,#4745,.F.); +#9529=ORIENTED_EDGE('',*,*,#9528,.T.); +#9531=ORIENTED_EDGE('',*,*,#9530,.T.); +#9533=ORIENTED_EDGE('',*,*,#9532,.F.); +#9534=ORIENTED_EDGE('',*,*,#4832,.F.); +#9535=EDGE_LOOP('',(#9527,#9529,#9531,#9533,#9534)); +#9536=FACE_OUTER_BOUND('',#9535,.F.); +#9538=CARTESIAN_POINT('',(0.E0,0.E0,-7.5E1)); +#9539=DIRECTION('',(0.E0,0.E0,1.E0)); +#9540=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9541=AXIS2_PLACEMENT_3D('',#9538,#9539,#9540); +#9542=PLANE('',#9541); +#9543=ORIENTED_EDGE('',*,*,#4743,.F.); +#9545=ORIENTED_EDGE('',*,*,#9544,.F.); +#9547=ORIENTED_EDGE('',*,*,#9546,.F.); +#9549=ORIENTED_EDGE('',*,*,#9548,.F.); +#9550=ORIENTED_EDGE('',*,*,#9528,.F.); +#9551=EDGE_LOOP('',(#9543,#9545,#9547,#9549,#9550)); +#9552=FACE_OUTER_BOUND('',#9551,.F.); +#9554=CARTESIAN_POINT('',(-6.149999999992E1,-2.95E2,-6.E1)); +#9555=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9556=DIRECTION('',(0.E0,0.E0,-1.E0)); +#9557=AXIS2_PLACEMENT_3D('',#9554,#9555,#9556); +#9558=PLANE('',#9557); +#9560=ORIENTED_EDGE('',*,*,#9559,.T.); +#9562=ORIENTED_EDGE('',*,*,#9561,.T.); +#9563=ORIENTED_EDGE('',*,*,#9544,.T.); +#9564=ORIENTED_EDGE('',*,*,#4741,.F.); +#9566=ORIENTED_EDGE('',*,*,#9565,.F.); +#9568=ORIENTED_EDGE('',*,*,#9567,.T.); +#9570=ORIENTED_EDGE('',*,*,#9569,.F.); +#9571=EDGE_LOOP('',(#9560,#9562,#9563,#9564,#9566,#9568,#9570)); +#9572=FACE_OUTER_BOUND('',#9571,.F.); +#9574=CARTESIAN_POINT('',(-4.649999999992E1,-2.244427602564E2,-6.E1)); +#9575=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9576=DIRECTION('',(0.E0,0.E0,-1.E0)); +#9577=AXIS2_PLACEMENT_3D('',#9574,#9575,#9576); +#9578=PLANE('',#9577); +#9579=ORIENTED_EDGE('',*,*,#9559,.F.); +#9581=ORIENTED_EDGE('',*,*,#9580,.F.); +#9583=ORIENTED_EDGE('',*,*,#9582,.F.); +#9585=ORIENTED_EDGE('',*,*,#9584,.T.); +#9586=EDGE_LOOP('',(#9579,#9581,#9583,#9585)); +#9587=FACE_OUTER_BOUND('',#9586,.F.); +#9589=CARTESIAN_POINT('',(-4.649999999992E1,-2.244427602564E2,-9.38E1)); +#9590=DIRECTION('',(0.E0,0.E0,-1.E0)); +#9591=DIRECTION('',(0.E0,1.E0,0.E0)); +#9592=AXIS2_PLACEMENT_3D('',#9589,#9590,#9591); +#9593=PLANE('',#9592); +#9594=ORIENTED_EDGE('',*,*,#9569,.T.); +#9596=ORIENTED_EDGE('',*,*,#9595,.T.); +#9598=ORIENTED_EDGE('',*,*,#9597,.F.); +#9599=ORIENTED_EDGE('',*,*,#9580,.T.); +#9600=EDGE_LOOP('',(#9594,#9596,#9598,#9599)); +#9601=FACE_OUTER_BOUND('',#9600,.F.); +#9603=CARTESIAN_POINT('',(-6.426589295293E1,-6.5E1,0.E0)); +#9604=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9605=DIRECTION('',(0.E0,5.583341522870E-3,-9.999844130272E-1)); +#9606=AXIS2_PLACEMENT_3D('',#9603,#9604,#9605); +#9607=TOROIDAL_SURFACE('',#9606,1.695157990234E2,1.55E1); +#9608=ORIENTED_EDGE('',*,*,#9584,.F.); +#9610=ORIENTED_EDGE('',*,*,#9609,.T.); +#9611=ORIENTED_EDGE('',*,*,#9595,.F.); +#9612=ORIENTED_EDGE('',*,*,#9567,.F.); +#9614=ORIENTED_EDGE('',*,*,#9613,.F.); +#9616=ORIENTED_EDGE('',*,*,#9615,.F.); +#9618=ORIENTED_EDGE('',*,*,#9617,.T.); +#9619=ORIENTED_EDGE('',*,*,#9546,.T.); +#9620=ORIENTED_EDGE('',*,*,#9561,.F.); +#9621=EDGE_LOOP('',(#9608,#9610,#9611,#9612,#9614,#9616,#9618,#9619,#9620)); +#9622=FACE_OUTER_BOUND('',#9621,.F.); +#9624=CARTESIAN_POINT('',(-6.195969135355E1,-6.5E1,0.E0)); +#9625=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9626=DIRECTION('',(0.E0,0.E0,-1.E0)); +#9627=AXIS2_PLACEMENT_3D('',#9624,#9625,#9626); +#9628=CONICAL_SURFACE('',#9627,1.849153968566E2,8.927825336436E1); +#9629=ORIENTED_EDGE('',*,*,#9609,.F.); +#9630=ORIENTED_EDGE('',*,*,#9582,.T.); +#9631=ORIENTED_EDGE('',*,*,#9597,.T.); +#9632=EDGE_LOOP('',(#9629,#9630,#9631)); +#9633=FACE_OUTER_BOUND('',#9632,.F.); +#9635=CARTESIAN_POINT('',(-2.699999999992E1,-2.95E2,-9.8E1)); +#9636=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9637=DIRECTION('',(1.E0,0.E0,0.E0)); +#9638=AXIS2_PLACEMENT_3D('',#9635,#9636,#9637); +#9639=CYLINDRICAL_SURFACE('',#9638,3.45E1); +#9640=ORIENTED_EDGE('',*,*,#4779,.T.); +#9641=ORIENTED_EDGE('',*,*,#4765,.F.); +#9643=ORIENTED_EDGE('',*,*,#9642,.T.); +#9644=ORIENTED_EDGE('',*,*,#4677,.F.); +#9645=ORIENTED_EDGE('',*,*,#4664,.T.); +#9647=ORIENTED_EDGE('',*,*,#9646,.F.); +#9648=ORIENTED_EDGE('',*,*,#9613,.T.); +#9649=ORIENTED_EDGE('',*,*,#9565,.T.); +#9650=ORIENTED_EDGE('',*,*,#4739,.F.); +#9651=EDGE_LOOP('',(#9640,#9641,#9643,#9644,#9645,#9647,#9648,#9649,#9650)); +#9652=FACE_OUTER_BOUND('',#9651,.F.); +#9654=CARTESIAN_POINT('',(7.500000000076E0,-2.95E2,-9.8E1)); +#9655=DIRECTION('',(1.E0,0.E0,0.E0)); +#9656=DIRECTION('',(0.E0,0.E0,1.E0)); +#9657=AXIS2_PLACEMENT_3D('',#9654,#9655,#9656); +#9658=PLANE('',#9657); +#9659=ORIENTED_EDGE('',*,*,#4763,.F.); +#9660=ORIENTED_EDGE('',*,*,#4679,.T.); +#9661=ORIENTED_EDGE('',*,*,#9642,.F.); +#9662=EDGE_LOOP('',(#9659,#9660,#9661)); +#9663=FACE_OUTER_BOUND('',#9662,.F.); +#9665=CARTESIAN_POINT('',(8.5E1,-1.95E2,-1.9E2)); +#9666=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9667=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9668=AXIS2_PLACEMENT_3D('',#9665,#9666,#9667); +#9669=PLANE('',#9668); +#9670=ORIENTED_EDGE('',*,*,#4662,.T.); +#9671=ORIENTED_EDGE('',*,*,#4836,.T.); +#9673=ORIENTED_EDGE('',*,*,#9672,.F.); +#9675=ORIENTED_EDGE('',*,*,#9674,.T.); +#9676=ORIENTED_EDGE('',*,*,#9615,.T.); +#9677=ORIENTED_EDGE('',*,*,#9646,.T.); +#9678=EDGE_LOOP('',(#9670,#9671,#9673,#9675,#9676,#9677)); +#9679=FACE_OUTER_BOUND('',#9678,.F.); +#9681=CARTESIAN_POINT('',(-8.25E1,-1.975E2,-1.9E2)); +#9682=DIRECTION('',(0.E0,0.E0,-1.E0)); +#9683=DIRECTION('',(0.E0,-1.E0,0.E0)); +#9684=AXIS2_PLACEMENT_3D('',#9681,#9682,#9683); +#9685=CYLINDRICAL_SURFACE('',#9684,1.75E1); +#9687=ORIENTED_EDGE('',*,*,#9686,.T.); +#9688=ORIENTED_EDGE('',*,*,#9672,.T.); +#9689=ORIENTED_EDGE('',*,*,#4834,.F.); +#9690=ORIENTED_EDGE('',*,*,#9532,.T.); +#9691=EDGE_LOOP('',(#9687,#9688,#9689,#9690)); +#9692=FACE_OUTER_BOUND('',#9691,.F.); +#9694=CARTESIAN_POINT('',(-7.415982029507E1,-6.5E1,0.E0)); +#9695=DIRECTION('',(-1.E0,0.E0,0.E0)); +#9696=DIRECTION('',(0.E0,0.E0,-1.E0)); +#9697=AXIS2_PLACEMENT_3D('',#9694,#9695,#9696); +#9698=CONICAL_SURFACE('',#9697,1.856499021926E2,3.5E0); +#9699=ORIENTED_EDGE('',*,*,#9686,.F.); +#9700=ORIENTED_EDGE('',*,*,#9530,.F.); +#9701=ORIENTED_EDGE('',*,*,#9548,.T.); +#9702=ORIENTED_EDGE('',*,*,#9617,.F.); +#9703=ORIENTED_EDGE('',*,*,#9674,.F.); +#9704=EDGE_LOOP('',(#9699,#9700,#9701,#9702,#9703)); +#9705=FACE_OUTER_BOUND('',#9704,.F.); +#9707=CLOSED_SHELL('',(#4668,#4689,#4703,#4717,#4731,#4751,#4769,#4783,#4874, +#4889,#4903,#4917,#4952,#4968,#4983,#4995,#5010,#5024,#5046,#5061,#5087,#5105, +#5138,#5152,#5166,#5188,#5202,#5221,#5242,#5256,#5273,#5294,#5311,#5345,#5368, +#5384,#5401,#5421,#5436,#5450,#5468,#5482,#5513,#5528,#5541,#5572,#5591,#5606, +#5639,#5653,#5669,#5680,#5703,#5720,#5743,#5761,#5773,#5799,#5817,#5831,#5847, +#5867,#5884,#5922,#5939,#5953,#5970,#5990,#6005,#6024,#6038,#6051,#6063,#6076, +#6099,#6116,#6133,#6157,#6172,#6189,#6202,#6227,#6240,#6263,#6283,#6304,#6318, +#6332,#6347,#6361,#6382,#6481,#6613,#6725,#6737,#6755,#6768,#6783,#6824,#6880, +#6902,#6918,#6934,#6949,#6993,#7010,#7032,#7053,#7069,#7098,#7110,#7128,#7143, +#7165,#7180,#7192,#7205,#7222,#7235,#7248,#7261,#7274,#7287,#7302,#7314,#7329, +#7342,#7362,#7394,#7408,#7421,#7442,#7465,#7479,#7496,#7512,#7524,#7538,#7552, +#7567,#7580,#7606,#7619,#7645,#7660,#7675,#7687,#7701,#7726,#7741,#7754,#7767, +#7783,#7798,#7814,#7862,#7913,#7999,#8108,#8210,#8296,#8335,#8350,#8369,#8386, +#8401,#8430,#8444,#8511,#8527,#8541,#8558,#8572,#8587,#8600,#8626,#8639,#8659, +#8673,#8687,#8699,#8711,#8730,#8744,#8759,#8776,#8791,#8805,#8819,#8832,#8854, +#8867,#8883,#8898,#8911,#8924,#8935,#8949,#8963,#8977,#8991,#9004,#9018,#9040, +#9053,#9066,#9087,#9101,#9117,#9130,#9225,#9269,#9288,#9381,#9426,#9471,#9485, +#9497,#9509,#9521,#9537,#9553,#9573,#9588,#9602,#9623,#9634,#9653,#9664,#9680, +#9693,#9706)); +#9708=MANIFOLD_SOLID_BREP('',#9707); +#9709=PRESENTATION_LAYER_ASSIGNMENT('LAY0002','',(#9708)); +#9712=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2), +#9711); +#9713=(CONVERSION_BASED_UNIT('DEGREE',#9712)NAMED_UNIT(*)PLANE_ANGLE_UNIT()); +#9715=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(6.229205525721E-2),#9710, +'distance_accuracy_value', +'Maximum model space distance between geometric entities at asserted connectivities'); +#9718=APPLICATION_CONTEXT('automotive_design'); +#9719=APPLICATION_PROTOCOL_DEFINITION('international standard', +'automotive_design',2001,#9718); +#9720=PRODUCT_DEFINITION_CONTEXT('part definition',#9718,'design'); +#9721=PRODUCT_CONTEXT('',#9718,'mechanical'); +#9722=PRODUCT('FSA30SCY_TC-01-0702','FSA30SCY_TC-01-0702','NOT SPECIFIED', +(#9721)); +#9723=PRODUCT_DEFINITION_FORMATION('1','LAST_VERSION',#9722); +#9731=DERIVED_UNIT_ELEMENT(#9730,2.E0); +#9732=DERIVED_UNIT((#9731)); +#9733=MEASURE_REPRESENTATION_ITEM('surface area measure',AREA_MEASURE( +6.400360537162E5),#9732); +#9738=DERIVED_UNIT_ELEMENT(#9737,3.E0); +#9739=DERIVED_UNIT((#9738)); +#9740=MEASURE_REPRESENTATION_ITEM('volume measure',VOLUME_MEASURE( +5.061158967088E6),#9739); +#9744=CARTESIAN_POINT('centre point',(-9.874848738634E0,4.052949582793E1, +-1.208118585268E2)); +#9749=DERIVED_UNIT_ELEMENT(#9748,2.E0); +#9750=DERIVED_UNIT((#9749)); +#9751=MEASURE_REPRESENTATION_ITEM('surface area measure',AREA_MEASURE( +6.400360537162E5),#9750); +#9756=DERIVED_UNIT_ELEMENT(#9755,3.E0); +#9757=DERIVED_UNIT((#9756)); +#9758=MEASURE_REPRESENTATION_ITEM('volume measure',VOLUME_MEASURE( +5.061158967088E6),#9757); +#9762=CARTESIAN_POINT('centre point',(-9.874848738634E0,4.052949582793E1, +-1.208118585268E2)); +#9767=PRODUCT_RELATED_PRODUCT_CATEGORY('part','',(#9722)); +#9769=GENERAL_PROPERTY('','PTC_COMMON_NAME','user defined attribute'); +#9770=GENERAL_PROPERTY_ASSOCIATION('user defined attribute','',#9769,#9768); +#9771=DESCRIPTIVE_REPRESENTATION_ITEM('PTC_COMMON_NAME','\X2\4E0B6CE16CAB\X0\'); +#1=COLOUR_RGB('',0.E0,6.E-1,1.E0); +#2=COLOUR_RGB('',0.E0,7.490196078431E-1,1.E0); +#3=DRAUGHTING_PRE_DEFINED_COLOUR('green'); +#4=DRAUGHTING_PRE_DEFINED_COLOUR('cyan'); +#5=COLOUR_RGB('',1.1E-2,1.2E-2,1.E0); +#6=COLOUR_RGB('',1.1E-1,1.1E-1,1.1E-1); +#7=COLOUR_RGB('',1.372549019608E-1,6.470588235294E-1,7.882352941176E-1); +#8=COLOUR_RGB('',2.E-1,2.E-1,6.E-1); +#9=COLOUR_RGB('',3.92E-1,1.2E-2,1.2E-2); +#10=COLOUR_RGB('',4.1E-1,0.E0,2.2E-1); +#11=COLOUR_RGB('',5.058823529412E-1,1.568627450980E-2,1.568627450980E-2); +#12=COLOUR_RGB('',5.294117647059E-1,6.392156862745E-1,1.E0); +#13=COLOUR_RGB('',5.529411764706E-1,2.549019607843E-1,1.960784313725E-2); +#14=COLOUR_RGB('',6.078431372549E-1,5.647058823529E-1,0.E0); +#15=COLOUR_RGB('',6.392156862745E-1,4.E-1,2.078431372549E-1); +#16=COLOUR_RGB('',6.392156862745E-1,6.392156862745E-1,6.392156862745E-1); +#17=COLOUR_RGB('',6.952E-1,7.426E-1,7.9E-1); +#18=COLOUR_RGB('',7.490196078431E-1,9.411764705882E-1,1.E0); +#19=COLOUR_RGB('',7.882352941176E-1,8.313725490196E-1,7.215686274510E-1); +#20=COLOUR_RGB('',8.392156862745E-1,4.470588235294E-1,3.882352941176E-1); +#21=COLOUR_RGB('',8.78E-1,9.49E-1,1.E0); +#22=COLOUR_RGB('',9.490196078431E-1,7.568627450980E-1,1.764705882353E-1); +#23=COLOUR_RGB('',9.6E-1,9.6E-1,9.6E-1); +#24=COLOUR_RGB('',9.8E-1,6.27E-1,0.E0); +#25=DRAUGHTING_PRE_DEFINED_COLOUR('red'); +#26=COLOUR_RGB('',1.E0,0.E0,2.E-1); +#27=COLOUR_RGB('',1.E0,8.078431372549E-1,4.588235294118E-1); +#28=DRAUGHTING_PRE_DEFINED_COLOUR('yellow'); +#29=COLOUR_RGB('',1.E0,1.E0,9.49E-1); +#30=DRAUGHTING_PRE_DEFINED_COLOUR('white'); +#35=CIRCLE('',#34,1.909734288188E2); +#52=B_SPLINE_CURVE_WITH_KNOTS('',3,(#44,#45,#46,#47,#48,#49,#50,#51), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#76=B_SPLINE_CURVE_WITH_KNOTS('',3,(#57,#58,#59,#60,#61,#62,#63,#64,#65,#66,#67, +#68,#69,#70,#71,#72,#73,#74,#75),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,4),(0.E0,6.25E-2,1.25E-1,1.875E-1,2.5E-1,3.125E-1,3.75E-1,4.375E-1, +5.E-1,5.625E-1,6.25E-1,6.875E-1,7.5E-1,8.125E-1,8.75E-1,9.375E-1,1.E0), +.UNSPECIFIED.); +#93=CIRCLE('',#92,1.909734288188E2); +#102=CIRCLE('',#101,3.45E1); +#127=CIRCLE('',#126,3.45E1); +#132=CIRCLE('',#131,5.E0); +#153=CIRCLE('',#152,5.E0); +#158=CIRCLE('',#157,1.E1); +#163=CIRCLE('',#162,1.E1); +#168=CIRCLE('',#167,2.E1); +#177=CIRCLE('',#176,2.E1); +#182=CIRCLE('',#181,1.5E1); +#187=CIRCLE('',#186,1.5E1); +#196=CIRCLE('',#195,1.25E1); +#209=CIRCLE('',#208,1.75E1); +#222=CIRCLE('',#221,1.75E1); +#235=CIRCLE('',#234,1.25E1); +#244=CIRCLE('',#243,1.75E1); +#261=B_SPLINE_CURVE_WITH_KNOTS('',3,(#253,#254,#255,#256,#257,#258,#259,#260), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#274=B_SPLINE_CURVE_WITH_KNOTS('',3,(#262,#263,#264,#265,#266,#267,#268,#269, +#270,#271,#272,#273),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,4),(0.E0, +1.111111111111E-1,2.222222222222E-1,3.333333333333E-1,4.444444444444E-1, +5.555555555556E-1,6.666666666667E-1,7.777777777778E-1,8.888888888889E-1,1.E0), +.UNSPECIFIED.); +#283=CIRCLE('',#282,1.75E1); +#292=CIRCLE('',#291,1.75E1); +#305=B_SPLINE_CURVE_WITH_KNOTS('',3,(#297,#298,#299,#300,#301,#302,#303,#304), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#314=CIRCLE('',#313,1.809734288188E2); +#323=CIRCLE('',#322,1.759734288188E2); +#328=CIRCLE('',#327,5.E0); +#335=B_SPLINE_CURVE_WITH_KNOTS('',3,(#329,#330,#331,#332,#333,#334), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#344=B_SPLINE_CURVE_WITH_KNOTS('',3,(#340,#341,#342,#343),.UNSPECIFIED.,.F.,.F., +(4,4),(0.E0,1.E0),.UNSPECIFIED.); +#357=CIRCLE('',#356,5.E0); +#362=CIRCLE('',#361,5.E0); +#367=CIRCLE('',#366,5.E0); +#372=CIRCLE('',#371,2.E1); +#377=CIRCLE('',#376,5.E0); +#398=CIRCLE('',#397,5.E0); +#423=CIRCLE('',#422,5.E0); +#432=CIRCLE('',#431,5.E0); +#437=CIRCLE('',#436,8.E0); +#446=CIRCLE('',#445,1.5E1); +#453=B_SPLINE_CURVE_WITH_KNOTS('',3,(#447,#448,#449,#450,#451,#452), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#474=CIRCLE('',#473,5.E0); +#483=CIRCLE('',#482,1.E1); +#496=CIRCLE('',#495,8.E0); +#511=B_SPLINE_CURVE_WITH_KNOTS('',3,(#505,#506,#507,#508,#509,#510), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#521=B_SPLINE_CURVE_WITH_KNOTS('',3,(#512,#513,#514,#515,#516,#517,#518,#519, +#520),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#532=B_SPLINE_CURVE_WITH_KNOTS('',3,(#522,#523,#524,#525,#526,#527,#528,#529, +#530,#531),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,4),(0.E0,1.428571428571E-1, +2.857142857143E-1,4.285714285714E-1,5.714285714286E-1,7.142857142857E-1, +8.571428571429E-1,1.E0),.UNSPECIFIED.); +#554=B_SPLINE_CURVE_WITH_KNOTS('',3,(#533,#534,#535,#536,#537,#538,#539,#540, +#541,#542,#543,#544,#545,#546,#547,#548,#549,#550,#551,#552,#553),.UNSPECIFIED., +.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0,5.555555555556E-2, +1.111111111111E-1,1.666666666667E-1,2.222222222222E-1,2.777777777778E-1, +3.333333333333E-1,3.888888888889E-1,4.444444444444E-1,5.E-1,5.555555555556E-1, +6.111111111111E-1,6.666666666667E-1,7.222222222222E-1,7.777777777778E-1, +8.333333333333E-1,8.888888888889E-1,9.444444444444E-1,1.E0),.UNSPECIFIED.); +#561=B_SPLINE_CURVE_WITH_KNOTS('',3,(#555,#556,#557,#558,#559,#560), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#573=B_SPLINE_CURVE_WITH_KNOTS('',3,(#566,#567,#568,#569,#570,#571,#572), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#580=B_SPLINE_CURVE_WITH_KNOTS('',3,(#574,#575,#576,#577,#578,#579), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#585=CIRCLE('',#584,1.95E1); +#596=B_SPLINE_CURVE_WITH_KNOTS('',3,(#590,#591,#592,#593,#594,#595), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#603=B_SPLINE_CURVE_WITH_KNOTS('',3,(#597,#598,#599,#600,#601,#602), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#610=B_SPLINE_CURVE_WITH_KNOTS('',3,(#604,#605,#606,#607,#608,#609), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#625=B_SPLINE_CURVE_WITH_KNOTS('',3,(#619,#620,#621,#622,#623,#624), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#651=B_SPLINE_CURVE_WITH_KNOTS('',3,(#642,#643,#644,#645,#646,#647,#648,#649, +#650),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#658=B_SPLINE_CURVE_WITH_KNOTS('',3,(#652,#653,#654,#655,#656,#657), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#678=B_SPLINE_CURVE_WITH_KNOTS('',3,(#671,#672,#673,#674,#675,#676,#677), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#693=B_SPLINE_CURVE_WITH_KNOTS('',3,(#687,#688,#689,#690,#691,#692), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,6.545436899698E-2,1.747936458030E-1,1.E0), +.UNSPECIFIED.); +#706=B_SPLINE_CURVE_WITH_KNOTS('',3,(#694,#695,#696,#697,#698,#699,#700,#701, +#702,#703,#704,#705),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,4),(0.E0, +1.111111111111E-1,2.222222222222E-1,3.333333333333E-1,4.444444444444E-1, +5.555555555556E-1,6.666666666667E-1,7.777777777778E-1,8.888888888889E-1,1.E0), +.UNSPECIFIED.); +#715=CIRCLE('',#714,1.849868883989E2); +#722=B_SPLINE_CURVE_WITH_KNOTS('',3,(#716,#717,#718,#719,#720,#721), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#731=B_SPLINE_CURVE_WITH_KNOTS('',3,(#727,#728,#729,#730),.UNSPECIFIED.,.F.,.F., +(4,4),(0.E0,1.E0),.UNSPECIFIED.); +#737=B_SPLINE_CURVE_WITH_KNOTS('',3,(#732,#733,#734,#735,#736),.UNSPECIFIED., +.F.,.F.,(4,1,4),(0.E0,5.E-1,1.E0),.UNSPECIFIED.); +#748=B_SPLINE_CURVE_WITH_KNOTS('',3,(#742,#743,#744,#745,#746,#747), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#755=B_SPLINE_CURVE_WITH_KNOTS('',3,(#749,#750,#751,#752,#753,#754), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#760=CIRCLE('',#759,1.855483832344E2); +#771=B_SPLINE_CURVE_WITH_KNOTS('',3,(#765,#766,#767,#768,#769,#770), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#788=B_SPLINE_CURVE_WITH_KNOTS('',3,(#780,#781,#782,#783,#784,#785,#786,#787), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#803=B_SPLINE_CURVE_WITH_KNOTS('',3,(#797,#798,#799,#800,#801,#802), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#813=B_SPLINE_CURVE_WITH_KNOTS('',3,(#804,#805,#806,#807,#808,#809,#810,#811, +#812),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#830=B_SPLINE_CURVE_WITH_KNOTS('',3,(#822,#823,#824,#825,#826,#827,#828,#829), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#835=CIRCLE('',#834,3.641682208887E1); +#840=CIRCLE('',#839,5.091682208887E1); +#854=B_SPLINE_CURVE_WITH_KNOTS('',3,(#849,#850,#851,#852,#853),.UNSPECIFIED., +.F.,.F.,(4,1,4),(0.E0,5.E-1,1.E0),.UNSPECIFIED.); +#863=B_SPLINE_CURVE_WITH_KNOTS('',3,(#855,#856,#857,#858,#859,#860,#861,#862), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#872=B_SPLINE_CURVE_WITH_KNOTS('',3,(#864,#865,#866,#867,#868,#869,#870,#871), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#881=B_SPLINE_CURVE_WITH_KNOTS('',3,(#873,#874,#875,#876,#877,#878,#879,#880), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#893=B_SPLINE_CURVE_WITH_KNOTS('',3,(#886,#887,#888,#889,#890,#891,#892), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#903=B_SPLINE_CURVE_WITH_KNOTS('',3,(#898,#899,#900,#901,#902),.UNSPECIFIED., +.F.,.F.,(4,1,4),(0.E0,5.E-1,1.E0),.UNSPECIFIED.); +#913=B_SPLINE_CURVE_WITH_KNOTS('',3,(#904,#905,#906,#907,#908,#909,#910,#911, +#912),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,6.25E-1, +7.5E-1,1.E0),.UNSPECIFIED.); +#923=B_SPLINE_CURVE_WITH_KNOTS('',3,(#914,#915,#916,#917,#918,#919,#920,#921, +#922),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,6.25E-1, +7.5E-1,1.E0),.UNSPECIFIED.); +#929=B_SPLINE_CURVE_WITH_KNOTS('',3,(#924,#925,#926,#927,#928),.UNSPECIFIED., +.F.,.F.,(4,1,4),(0.E0,5.E-1,1.E0),.UNSPECIFIED.); +#942=CIRCLE('',#941,2.949960780428E1); +#951=CIRCLE('',#950,6.9E1); +#956=CIRCLE('',#955,5.E0); +#961=CIRCLE('',#960,2.7E1); +#966=CIRCLE('',#965,2.7E1); +#975=B_SPLINE_CURVE_WITH_KNOTS('',3,(#967,#968,#969,#970,#971,#972,#973,#974), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#987=B_SPLINE_CURVE_WITH_KNOTS('',3,(#980,#981,#982,#983,#984,#985,#986), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#1000=CIRCLE('',#999,1.759734288188E2); +#1005=CIRCLE('',#1004,1.6615E2); +#1016=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1010,#1011,#1012,#1013,#1014,#1015), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1029=CIRCLE('',#1028,1.759734288188E2); +#1034=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1030,#1031,#1032,#1033),.UNSPECIFIED., +.F.,.F.,(4,4),(0.E0,1.E0),.UNSPECIFIED.); +#1039=CIRCLE('',#1038,3.E1); +#1044=CIRCLE('',#1043,1.653049520937E2); +#1054=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1045,#1046,#1047,#1048,#1049,#1050,#1051, +#1052,#1053),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#1069=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1063,#1064,#1065,#1066,#1067,#1068), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1076=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1070,#1071,#1072,#1073,#1074,#1075), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1081=CIRCLE('',#1080,1.697110451146E2); +#1086=CIRCLE('',#1085,1.849868883989E2); +#1091=CIRCLE('',#1090,1.849868883989E2); +#1096=CIRCLE('',#1095,1.849868883989E2); +#1101=CIRCLE('',#1100,1.697110451146E2); +#1106=CIRCLE('',#1105,1.697110451146E2); +#1111=CIRCLE('',#1110,1.697110451146E2); +#1118=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1112,#1113,#1114,#1115,#1116,#1117), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1125=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1119,#1120,#1121,#1122,#1123,#1124), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1134=CIRCLE('',#1133,1.863129159863E2); +#1139=CIRCLE('',#1138,1.863129159863E2); +#1156=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1148,#1149,#1150,#1151,#1152,#1153,#1154, +#1155),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#1165=CIRCLE('',#1164,1.759734288188E2); +#1170=CIRCLE('',#1169,5.E0); +#1175=CIRCLE('',#1174,1.653049520937E2); +#1190=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1184,#1185,#1186,#1187,#1188,#1189), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1199=CIRCLE('',#1198,1.5E1); +#1212=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1204,#1205,#1206,#1207,#1208,#1209,#1210, +#1211),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#1221=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1213,#1214,#1215,#1216,#1217,#1218,#1219, +#1220),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#1228=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1222,#1223,#1224,#1225,#1226,#1227), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1235=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1229,#1230,#1231,#1232,#1233,#1234), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1242=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1236,#1237,#1238,#1239,#1240,#1241), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1249=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1243,#1244,#1245,#1246,#1247,#1248), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1258=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1250,#1251,#1252,#1253,#1254,#1255,#1256, +#1257),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#1264=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1259,#1260,#1261,#1262,#1263), +.UNSPECIFIED.,.F.,.F.,(4,1,4),(0.E0,5.040581296611E-1,1.E0),.UNSPECIFIED.); +#1271=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1265,#1266,#1267,#1268,#1269,#1270), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1294=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1288,#1289,#1290,#1291,#1292,#1293), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1301=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1295,#1296,#1297,#1298,#1299,#1300), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1306=CIRCLE('',#1305,5.E0); +#1311=CIRCLE('',#1310,8.E0); +#1320=CIRCLE('',#1319,5.E0); +#1329=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1321,#1322,#1323,#1324,#1325,#1326,#1327, +#1328),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#1350=CIRCLE('',#1349,8.E0); +#1368=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1359,#1360,#1361,#1362,#1363,#1364,#1365, +#1366,#1367),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#1381=CIRCLE('',#1380,1.95E1); +#1392=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1386,#1387,#1388,#1389,#1390,#1391), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1409=CIRCLE('',#1408,1.95E1); +#1414=CIRCLE('',#1413,1.95E1); +#1419=CIRCLE('',#1418,2.844427191E1); +#1424=CIRCLE('',#1423,2.844427191E1); +#1441=CIRCLE('',#1440,6.422135955E1); +#1446=CIRCLE('',#1445,6.422135955E1); +#1460=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1451,#1452,#1453,#1454,#1455,#1456,#1457, +#1458,#1459),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#1473=CIRCLE('',#1472,1.909734288188E2); +#1492=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1478,#1479,#1480,#1481,#1482,#1483,#1484, +#1485,#1486,#1487,#1488,#1489,#1490,#1491),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1, +1,1,1,1,4),(0.E0,9.090909090909E-2,1.818181818182E-1,2.727272727273E-1, +3.636363636364E-1,4.545454545455E-1,5.454545454545E-1,6.363636363636E-1, +7.272727272727E-1,8.181818181818E-1,9.090909090909E-1,1.E0),.UNSPECIFIED.); +#1532=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1509,#1510,#1511,#1512,#1513,#1514,#1515, +#1516,#1517,#1518,#1519,#1520,#1521,#1522,#1523,#1524,#1525,#1526,#1527,#1528, +#1529,#1530,#1531),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,4),(0.E0,5.E-2,1.E-1,1.5E-1,2.E-1,2.5E-1,3.E-1,3.5E-1,4.E-1,4.5E-1,5.E-1, +5.5E-1,6.E-1,6.5E-1,7.E-1,7.5E-1,8.E-1,8.5E-1,9.E-1,9.5E-1,1.E0),.UNSPECIFIED.); +#1553=CIRCLE('',#1552,1.909734288188E2); +#1570=CIRCLE('',#1569,1.75E1); +#1575=CIRCLE('',#1574,1.75E1); +#1580=CIRCLE('',#1579,8.2E1); +#1585=CIRCLE('',#1584,8.2E1); +#1590=CIRCLE('',#1589,3.8E1); +#1603=CIRCLE('',#1602,1.75E1); +#1612=CIRCLE('',#1611,2.43E1); +#1634=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1625,#1626,#1627,#1628,#1629,#1630,#1631, +#1632,#1633),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#1641=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1635,#1636,#1637,#1638,#1639,#1640), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1680=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1658,#1659,#1660,#1661,#1662,#1663,#1664, +#1665,#1666,#1667,#1668,#1669,#1670,#1671,#1672,#1673,#1674,#1675,#1676,#1677, +#1678,#1679),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),( +0.E0,5.263157894737E-2,1.052631578947E-1,1.578947368421E-1,2.105263157895E-1, +2.631578947368E-1,3.157894736842E-1,3.684210526316E-1,4.210526315789E-1, +4.736842105263E-1,5.263157894737E-1,5.789473684211E-1,6.315789473684E-1, +6.842105263158E-1,7.368421052632E-1,7.894736842105E-1,8.421052631579E-1, +8.947368421053E-1,9.473684210526E-1,1.E0),.UNSPECIFIED.); +#1695=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1681,#1682,#1683,#1684,#1685,#1686,#1687, +#1688,#1689,#1690,#1691,#1692,#1693,#1694),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1, +1,1,1,1,4),(0.E0,9.090909090909E-2,1.818181818182E-1,2.727272727273E-1, +3.636363636364E-1,4.545454545455E-1,5.454545454545E-1,6.363636363636E-1, +7.272727272727E-1,8.181818181818E-1,9.090909090909E-1,1.E0),.UNSPECIFIED.); +#1702=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1696,#1697,#1698,#1699,#1700,#1701), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1712=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1703,#1704,#1705,#1706,#1707,#1708,#1709, +#1710,#1711),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#1724=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1713,#1714,#1715,#1716,#1717,#1718,#1719, +#1720,#1721,#1722,#1723),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,4),(0.E0, +5.271603106458E-2,1.725714580982E-1,2.924268851317E-1,4.122823121654E-1, +5.321377391990E-1,6.519931662326E-1,7.718485932662E-1,1.E0),.UNSPECIFIED.); +#1734=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1725,#1726,#1727,#1728,#1729,#1730,#1731, +#1732,#1733),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#1741=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1735,#1736,#1737,#1738,#1739,#1740), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1750=CIRCLE('',#1749,1.863129159863E2); +#1761=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1755,#1756,#1757,#1758,#1759,#1760), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1768=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1762,#1763,#1764,#1765,#1766,#1767), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1791=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1777,#1778,#1779,#1780,#1781,#1782,#1783, +#1784,#1785,#1786,#1787,#1788,#1789,#1790),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1, +1,1,1,1,4),(0.E0,9.090909090909E-2,1.818181818182E-1,2.727272727273E-1, +3.636363636364E-1,4.545454545455E-1,5.454545454545E-1,6.363636363636E-1, +7.272727272727E-1,8.181818181818E-1,9.090909090909E-1,1.E0),.UNSPECIFIED.); +#1798=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1792,#1793,#1794,#1795,#1796,#1797), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1805=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1799,#1800,#1801,#1802,#1803,#1804), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1812=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1806,#1807,#1808,#1809,#1810,#1811), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1819=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1813,#1814,#1815,#1816,#1817,#1818), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1829=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1820,#1821,#1822,#1823,#1824,#1825,#1826, +#1827,#1828),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#1834=CIRCLE('',#1833,3.8E1); +#1842=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1835,#1836,#1837,#1838,#1839,#1840, +#1841),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#1847=CIRCLE('',#1846,3.8E1); +#1852=CIRCLE('',#1851,1.E1); +#1857=CIRCLE('',#1856,1.E1); +#1868=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1862,#1863,#1864,#1865,#1866,#1867), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1881=CIRCLE('',#1880,3.8E1); +#1886=CIRCLE('',#1885,8.2E1); +#1891=CIRCLE('',#1890,8.2E1); +#1903=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1892,#1893,#1894,#1895,#1896,#1897,#1898, +#1899,#1900,#1901,#1902),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,4),(0.E0, +1.25E-1,2.5E-1,3.75E-1,5.E-1,6.25E-1,7.5E-1,8.75E-1,1.E0),.UNSPECIFIED.); +#1910=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1904,#1905,#1906,#1907,#1908,#1909), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1918=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1911,#1912,#1913,#1914,#1915,#1916, +#1917),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#1931=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1927,#1928,#1929,#1930),.UNSPECIFIED., +.F.,.F.,(4,4),(0.E0,1.E0),.UNSPECIFIED.); +#1942=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1936,#1937,#1938,#1939,#1940,#1941), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,8.247952616438E-1,9.340800689682E-1,1.E0), +.UNSPECIFIED.); +#1958=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1951,#1952,#1953,#1954,#1955,#1956, +#1957),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#1969=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1963,#1964,#1965,#1966,#1967,#1968), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#1974=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1970,#1971,#1972,#1973),.UNSPECIFIED., +.F.,.F.,(4,4),(0.E0,1.E0),.UNSPECIFIED.); +#1979=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1975,#1976,#1977,#1978),.UNSPECIFIED., +.F.,.F.,(4,4),(0.E0,1.E0),.UNSPECIFIED.); +#1997=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1992,#1993,#1994,#1995,#1996), +.UNSPECIFIED.,.F.,.F.,(4,1,4),(0.E0,5.E-1,1.E0),.UNSPECIFIED.); +#2020=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2014,#2015,#2016,#2017,#2018,#2019), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2030=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2021,#2022,#2023,#2024,#2025,#2026,#2027, +#2028,#2029),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#2045=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2039,#2040,#2041,#2042,#2043,#2044), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2078=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2050,#2051,#2052,#2053,#2054,#2055,#2056, +#2057,#2058,#2059,#2060,#2061,#2062,#2063,#2064,#2065,#2066,#2067,#2068,#2069, +#2070,#2071,#2072,#2073,#2074,#2075,#2076,#2077),.UNSPECIFIED.,.F.,.F.,(4,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0,4.E-2,8.E-2,1.2E-1,1.6E-1, +2.E-1,2.4E-1,2.8E-1,3.2E-1,3.6E-1,4.E-1,4.4E-1,4.8E-1,5.2E-1,5.6E-1,6.E-1, +6.4E-1,6.8E-1,7.2E-1,7.6E-1,8.E-1,8.4E-1,8.8E-1,9.2E-1,9.6E-1,1.E0), +.UNSPECIFIED.); +#2085=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2079,#2080,#2081,#2082,#2083,#2084), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2107=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2086,#2087,#2088,#2089,#2090,#2091,#2092, +#2093,#2094,#2095,#2096,#2097,#2098,#2099,#2100,#2101,#2102,#2103,#2104,#2105, +#2106),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0, +5.555555555556E-2,1.111111111111E-1,1.666666666667E-1,2.222222222222E-1, +2.777777777778E-1,3.333333333333E-1,3.888888888889E-1,4.444444444444E-1,5.E-1, +5.555555555556E-1,6.111111111111E-1,6.666666666667E-1,7.222222222222E-1, +7.777777777778E-1,8.333333333333E-1,8.888888888889E-1,9.444444444444E-1,1.E0), +.UNSPECIFIED.); +#2114=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2108,#2109,#2110,#2111,#2112,#2113), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2121=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2115,#2116,#2117,#2118,#2119,#2120), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2132=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2126,#2127,#2128,#2129,#2130,#2131), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2147=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2141,#2142,#2143,#2144,#2145,#2146), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2153=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2148,#2149,#2150,#2151,#2152), +.UNSPECIFIED.,.F.,.F.,(4,1,4),(0.E0,5.E-1,1.E0),.UNSPECIFIED.); +#2162=CIRCLE('',#2161,1.95E1); +#2169=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2163,#2164,#2165,#2166,#2167,#2168), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2177=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2170,#2171,#2172,#2173,#2174,#2175, +#2176),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2196=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2190,#2191,#2192,#2193,#2194,#2195), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2209=CIRCLE('',#2208,1.6615E2); +#2214=CIRCLE('',#2213,1.759734288188E2); +#2226=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2219,#2220,#2221,#2222,#2223,#2224, +#2225),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2236=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2231,#2232,#2233,#2234,#2235), +.UNSPECIFIED.,.F.,.F.,(4,1,4),(0.E0,5.E-1,1.E0),.UNSPECIFIED.); +#2241=CIRCLE('',#2240,1.909734288188E2); +#2254=CIRCLE('',#2253,3.8E1); +#2263=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2259,#2260,#2261,#2262),.UNSPECIFIED., +.F.,.F.,(4,4),(0.E0,1.E0),.UNSPECIFIED.); +#2276=CIRCLE('',#2275,2.5E1); +#2281=CIRCLE('',#2280,2.5E1); +#2286=CIRCLE('',#2285,2.5E1); +#2291=CIRCLE('',#2290,2.5E1); +#2296=CIRCLE('',#2295,1.E1); +#2301=CIRCLE('',#2300,1.E1); +#2310=CIRCLE('',#2309,2.5E1); +#2323=CIRCLE('',#2322,2.5E1); +#2332=CIRCLE('',#2331,2.5E1); +#2341=CIRCLE('',#2340,2.5E1); +#2350=CIRCLE('',#2349,2.5E1); +#2359=CIRCLE('',#2358,2.5E1); +#2388=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2364,#2365,#2366,#2367,#2368,#2369,#2370, +#2371,#2372,#2373,#2374,#2375,#2376,#2377,#2378,#2379,#2380,#2381,#2382,#2383, +#2384,#2385,#2386,#2387),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,4),(0.E0,4.761904761905E-2,9.523809523810E-2,1.428571428571E-1, +1.904761904762E-1,2.380952380952E-1,2.857142857143E-1,3.333333333333E-1, +3.809523809524E-1,4.285714285714E-1,4.761904761905E-1,5.238095238095E-1, +5.714285714286E-1,6.190476190476E-1,6.666666666667E-1,7.142857142857E-1, +7.619047619048E-1,8.095238095238E-1,8.571428571429E-1,9.047619047619E-1, +9.523809523810E-1,1.E0),.UNSPECIFIED.); +#2393=CIRCLE('',#2392,1.308E2); +#2398=CIRCLE('',#2397,1.308E2); +#2409=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2403,#2404,#2405,#2406,#2407,#2408), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2418=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2410,#2411,#2412,#2413,#2414,#2415,#2416, +#2417),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#2425=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2419,#2420,#2421,#2422,#2423,#2424), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2432=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2426,#2427,#2428,#2429,#2430,#2431), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2439=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2433,#2434,#2435,#2436,#2437,#2438), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2460=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2452,#2453,#2454,#2455,#2456,#2457,#2458, +#2459),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#2465=CIRCLE('',#2464,1.759734288188E2); +#2474=CIRCLE('',#2473,1.809734288188E2); +#2491=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2483,#2484,#2485,#2486,#2487,#2488,#2489, +#2490),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#2496=CIRCLE('',#2495,1.E1); +#2501=CIRCLE('',#2500,5.E0); +#2506=CIRCLE('',#2505,5.E0); +#2519=CIRCLE('',#2518,1.2E1); +#2524=CIRCLE('',#2523,1.2E1); +#2541=CIRCLE('',#2540,5.E0); +#2546=CIRCLE('',#2545,2.E0); +#2551=CIRCLE('',#2550,2.E0); +#2576=CIRCLE('',#2575,3.E0); +#2583=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2577,#2578,#2579,#2580,#2581,#2582), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2592=CIRCLE('',#2591,6.7E1); +#2600=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2593,#2594,#2595,#2596,#2597,#2598, +#2599),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2608=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2601,#2602,#2603,#2604,#2605,#2606, +#2607),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2621=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2613,#2614,#2615,#2616,#2617,#2618,#2619, +#2620),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#2638=CIRCLE('',#2637,1.300005422238E1); +#2646=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2639,#2640,#2641,#2642,#2643,#2644, +#2645),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2659=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2647,#2648,#2649,#2650,#2651,#2652,#2653, +#2654,#2655,#2656,#2657,#2658),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,4), +(0.E0,1.111111111111E-1,2.222222222222E-1,3.333333333333E-1,4.444444444444E-1, +5.555555555556E-1,6.666666666667E-1,7.777777777778E-1,8.888888888889E-1,1.E0), +.UNSPECIFIED.); +#2675=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2660,#2661,#2662,#2663,#2664,#2665,#2666, +#2667,#2668,#2669,#2670,#2671,#2672,#2673,#2674),.UNSPECIFIED.,.F.,.F.,(4,1,1,1, +1,1,1,1,1,1,1,1,4),(0.E0,8.333333333333E-2,1.666666666667E-1,2.5E-1, +3.333333333333E-1,4.166666666667E-1,5.E-1,5.833333333333E-1,6.666666666667E-1, +7.5E-1,8.333333333333E-1,9.166666666667E-1,1.E0),.UNSPECIFIED.); +#2684=CIRCLE('',#2683,6.7E1); +#2699=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2693,#2694,#2695,#2696,#2697,#2698), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2710=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2700,#2701,#2702,#2703,#2704,#2705,#2706, +#2707,#2708,#2709),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,4),(0.E0, +1.428571428571E-1,2.857142857143E-1,4.285714285714E-1,5.714285714286E-1, +7.142857142857E-1,8.571428571429E-1,1.E0),.UNSPECIFIED.); +#2722=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2715,#2716,#2717,#2718,#2719,#2720, +#2721),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2729=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2723,#2724,#2725,#2726,#2727,#2728), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2737=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2730,#2731,#2732,#2733,#2734,#2735, +#2736),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2748=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2738,#2739,#2740,#2741,#2742,#2743,#2744, +#2745,#2746,#2747),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,4),(0.E0, +1.428571428571E-1,2.857142857143E-1,4.285714285714E-1,5.714285714286E-1, +7.142857142857E-1,8.571428571429E-1,1.E0),.UNSPECIFIED.); +#2756=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2749,#2750,#2751,#2752,#2753,#2754, +#2755),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2763=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2757,#2758,#2759,#2760,#2761,#2762), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2774=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2764,#2765,#2766,#2767,#2768,#2769,#2770, +#2771,#2772,#2773),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,4),(0.E0, +1.428571428571E-1,2.857142857143E-1,4.285714285714E-1,5.714285714286E-1, +7.142857142857E-1,8.571428571429E-1,1.E0),.UNSPECIFIED.); +#2783=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2775,#2776,#2777,#2778,#2779,#2780,#2781, +#2782),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,1.973167309379E-1, +4.713521149810E-1,7.453874990242E-1,8.824051910458E-1,1.E0),.UNSPECIFIED.); +#2804=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2784,#2785,#2786,#2787,#2788,#2789,#2790, +#2791,#2792,#2793,#2794,#2795,#2796,#2797,#2798,#2799,#2800,#2801,#2802,#2803), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0, +5.882352941176E-2,1.176470588235E-1,1.764705882353E-1,2.352941176471E-1, +2.941176470588E-1,3.529411764706E-1,4.117647058824E-1,4.705882352941E-1, +5.294117647059E-1,5.882352941176E-1,6.470588235294E-1,7.058823529412E-1, +7.647058823529E-1,8.235294117647E-1,8.823529411765E-1,9.411764705882E-1,1.E0), +.UNSPECIFIED.); +#2811=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2805,#2806,#2807,#2808,#2809,#2810), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.218461461726E-1,6.852082418657E-1,1.E0), +.UNSPECIFIED.); +#2822=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2812,#2813,#2814,#2815,#2816,#2817,#2818, +#2819,#2820,#2821),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,4),(0.E0, +1.428571428571E-1,2.857142857143E-1,4.285714285714E-1,5.714285714286E-1, +7.142857142857E-1,8.571428571429E-1,1.E0),.UNSPECIFIED.); +#2827=CIRCLE('',#2826,1.300005524497E1); +#2835=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2828,#2829,#2830,#2831,#2832,#2833, +#2834),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2840=CIRCLE('',#2839,6.7E1); +#2851=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2841,#2842,#2843,#2844,#2845,#2846,#2847, +#2848,#2849,#2850),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,4),(0.E0, +1.428571428571E-1,2.857142857143E-1,4.285714285714E-1,5.714285714286E-1, +7.142857142857E-1,8.571428571429E-1,1.E0),.UNSPECIFIED.); +#2864=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2852,#2853,#2854,#2855,#2856,#2857,#2858, +#2859,#2860,#2861,#2862,#2863),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,4), +(0.E0,1.111111111111E-1,2.222222222222E-1,3.333333333333E-1,4.444444444444E-1, +5.555555555556E-1,6.666666666667E-1,7.777777777778E-1,8.888888888889E-1,1.E0), +.UNSPECIFIED.); +#2892=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2885,#2886,#2887,#2888,#2889,#2890, +#2891),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2901=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2893,#2894,#2895,#2896,#2897,#2898,#2899, +#2900),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#2906=CIRCLE('',#2905,6.9E1); +#2911=CIRCLE('',#2910,3.000040505811E0); +#2918=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2912,#2913,#2914,#2915,#2916,#2917), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2923=CIRCLE('',#2922,6.7E1); +#2928=CIRCLE('',#2927,2.E0); +#2935=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2929,#2930,#2931,#2932,#2933,#2934), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2940=CIRCLE('',#2939,2.E0); +#2948=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2941,#2942,#2943,#2944,#2945,#2946, +#2947),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2959=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2953,#2954,#2955,#2956,#2957,#2958), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#2964=CIRCLE('',#2963,6.7E1); +#2969=CIRCLE('',#2968,6.9E1); +#2974=CIRCLE('',#2973,5.000000000024E0); +#2990=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2983,#2984,#2985,#2986,#2987,#2988, +#2989),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#2995=CIRCLE('',#2994,5.E0); +#3000=CIRCLE('',#2999,2.E0); +#3005=CIRCLE('',#3004,2.E0); +#3018=CIRCLE('',#3017,1.000000000003E1); +#3023=CIRCLE('',#3022,5.000000000014E0); +#3028=CIRCLE('',#3027,5.000000000014E0); +#3045=CIRCLE('',#3044,1.642282823598E2); +#3050=CIRCLE('',#3049,1.642282823598E2); +#3067=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3059,#3060,#3061,#3062,#3063,#3064,#3065, +#3066),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#3072=CIRCLE('',#3071,2.E1); +#3077=CIRCLE('',#3076,5.E0); +#3082=CIRCLE('',#3081,5.E0); +#3104=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3095,#3096,#3097,#3098,#3099,#3100,#3101, +#3102,#3103),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#3113=CIRCLE('',#3112,1.593986532284E2); +#3118=CIRCLE('',#3117,1.593986532284E2); +#3127=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3119,#3120,#3121,#3122,#3123,#3124,#3125, +#3126),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#3134=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3128,#3129,#3130,#3131,#3132,#3133), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3141=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3135,#3136,#3137,#3138,#3139,#3140), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3146=CIRCLE('',#3145,1.636270554508E2); +#3155=CIRCLE('',#3154,1.728559154282E2); +#3160=CIRCLE('',#3159,1.728559154282E2); +#3169=CIRCLE('',#3168,1.718693141060E2); +#3174=CIRCLE('',#3173,1.718693654751E2); +#3179=CIRCLE('',#3178,1.718693654751E2); +#3186=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3180,#3181,#3182,#3183,#3184,#3185), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3193=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3187,#3188,#3189,#3190,#3191,#3192), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3198=CIRCLE('',#3197,1.718693654751E2); +#3206=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3199,#3200,#3201,#3202,#3203,#3204, +#3205),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,2.5E-1,5.E-1,7.5E-1,1.E0), +.UNSPECIFIED.); +#3223=CIRCLE('',#3222,1.999999827294E0); +#3232=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3224,#3225,#3226,#3227,#3228,#3229,#3230, +#3231),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#3237=CIRCLE('',#3236,1.999999827294E0); +#3254=CIRCLE('',#3253,3.450073545538E1); +#3259=CIRCLE('',#3258,3.450432006414E1); +#3291=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3264,#3265,#3266,#3267,#3268,#3269,#3270, +#3271,#3272,#3273,#3274,#3275,#3276,#3277,#3278,#3279,#3280,#3281,#3282,#3283, +#3284,#3285,#3286,#3287,#3288,#3289,#3290),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0,4.166666666667E-2,8.333333333333E-2, +1.25E-1,1.666666666667E-1,2.083333333333E-1,2.5E-1,2.916666666667E-1, +3.333333333333E-1,3.75E-1,4.166666666667E-1,4.583333333333E-1,5.E-1, +5.416666666667E-1,5.833333333333E-1,6.25E-1,6.666666666667E-1,7.083333333333E-1, +7.5E-1,7.916666666667E-1,8.333333333333E-1,8.75E-1,9.166666666667E-1, +9.583333333333E-1,1.E0),.UNSPECIFIED.); +#3298=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3292,#3293,#3294,#3295,#3296,#3297), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3312=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3299,#3300,#3301,#3302,#3303,#3304,#3305, +#3306,#3307,#3308,#3309,#3310,#3311),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1, +4),(0.E0,1.E-1,2.E-1,3.E-1,4.E-1,5.E-1,6.E-1,7.E-1,8.E-1,9.E-1,1.E0), +.UNSPECIFIED.); +#3319=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3313,#3314,#3315,#3316,#3317,#3318), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3332=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3320,#3321,#3322,#3323,#3324,#3325,#3326, +#3327,#3328,#3329,#3330,#3331),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,4), +(0.E0,1.111111111111E-1,2.222222222222E-1,3.333333333333E-1,4.444444444444E-1, +5.555555555556E-1,6.666666666667E-1,7.777777777778E-1,8.888888888889E-1,1.E0), +.UNSPECIFIED.); +#3337=CIRCLE('',#3336,2.950419673297E1); +#3342=CIRCLE('',#3341,5.000000743179E0); +#3347=CIRCLE('',#3346,5.000000743179E0); +#3364=CIRCLE('',#3363,1.708595339955E2); +#3369=CIRCLE('',#3368,1.718693654751E2); +#3376=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3370,#3371,#3372,#3373,#3374,#3375), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3401=CIRCLE('',#3400,2.E0); +#3406=CIRCLE('',#3405,1.E1); +#3411=CIRCLE('',#3410,2.E0); +#3424=CIRCLE('',#3423,2.E0); +#3429=CIRCLE('',#3428,1.E1); +#3434=CIRCLE('',#3433,2.E0); +#3447=CIRCLE('',#3446,1.E1); +#3452=CIRCLE('',#3451,1.58E1); +#3457=CIRCLE('',#3456,1.58E1); +#3462=CIRCLE('',#3461,1.E1); +#3487=CIRCLE('',#3486,3.E0); +#3514=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3508,#3509,#3510,#3511,#3512,#3513), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3525=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3515,#3516,#3517,#3518,#3519,#3520,#3521, +#3522,#3523,#3524),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,4),(0.E0, +1.428571428571E-1,2.857142857143E-1,4.285714285714E-1,5.714285714286E-1, +7.142857142857E-1,8.571428571429E-1,1.E0),.UNSPECIFIED.); +#3532=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3526,#3527,#3528,#3529,#3530,#3531), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3543=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3533,#3534,#3535,#3536,#3537,#3538,#3539, +#3540,#3541,#3542),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,4),(0.E0, +1.428571428571E-1,2.857142857143E-1,4.285714285714E-1,5.714285714286E-1, +7.142857142857E-1,8.571428571429E-1,1.E0),.UNSPECIFIED.); +#3553=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3544,#3545,#3546,#3547,#3548,#3549,#3550, +#3551,#3552),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.572608870448E-1, +5.145425200682E-1,6.431833365799E-1,7.718241530917E-1,9.004649696034E-1,1.E0), +.UNSPECIFIED.); +#3574=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3554,#3555,#3556,#3557,#3558,#3559,#3560, +#3561,#3562,#3563,#3564,#3565,#3566,#3567,#3568,#3569,#3570,#3571,#3572,#3573), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0, +5.882352941176E-2,1.176470588235E-1,1.764705882353E-1,2.352941176471E-1, +2.941176470588E-1,3.529411764706E-1,4.117647058824E-1,4.705882352941E-1, +5.294117647059E-1,5.882352941176E-1,6.470588235294E-1,7.058823529412E-1, +7.647058823529E-1,8.235294117647E-1,8.823529411765E-1,9.411764705882E-1,1.E0), +.UNSPECIFIED.); +#3581=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3575,#3576,#3577,#3578,#3579,#3580), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3602=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3582,#3583,#3584,#3585,#3586,#3587,#3588, +#3589,#3590,#3591,#3592,#3593,#3594,#3595,#3596,#3597,#3598,#3599,#3600,#3601), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0, +5.882352941176E-2,1.176470588235E-1,1.764705882353E-1,2.352941176471E-1, +2.941176470588E-1,3.529411764706E-1,4.117647058824E-1,4.705882352941E-1, +5.294117647059E-1,5.882352941176E-1,6.470588235294E-1,7.058823529412E-1, +7.647058823529E-1,8.235294117647E-1,8.823529411765E-1,9.411764705882E-1,1.E0), +.UNSPECIFIED.); +#3623=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3603,#3604,#3605,#3606,#3607,#3608,#3609, +#3610,#3611,#3612,#3613,#3614,#3615,#3616,#3617,#3618,#3619,#3620,#3621,#3622), +.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0, +5.882352941176E-2,1.176470588235E-1,1.764705882353E-1,2.352941176471E-1, +2.941176470588E-1,3.529411764706E-1,4.117647058824E-1,4.705882352941E-1, +5.294117647059E-1,5.882352941176E-1,6.470588235294E-1,7.058823529412E-1, +7.647058823529E-1,8.235294117647E-1,8.823529411765E-1,9.411764705882E-1,1.E0), +.UNSPECIFIED.); +#3628=CIRCLE('',#3627,1.5E1); +#3633=CIRCLE('',#3632,1.5E1); +#3640=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3634,#3635,#3636,#3637,#3638,#3639), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3651=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3641,#3642,#3643,#3644,#3645,#3646,#3647, +#3648,#3649,#3650),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,4),(0.E0, +1.428571428571E-1,2.857142857143E-1,4.285714285714E-1,5.714285714286E-1, +7.142857142857E-1,8.571428571429E-1,1.E0),.UNSPECIFIED.); +#3658=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3652,#3653,#3654,#3655,#3656,#3657), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3664=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3659,#3660,#3661,#3662,#3663), +.UNSPECIFIED.,.F.,.F.,(4,1,4),(0.E0,5.396578299101E-1,1.E0),.UNSPECIFIED.); +#3671=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3665,#3666,#3667,#3668,#3669,#3670), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3681=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3672,#3673,#3674,#3675,#3676,#3677,#3678, +#3679,#3680),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,1.666666666667E-1, +3.333333333333E-1,5.E-1,6.666666666667E-1,8.333333333333E-1,1.E0), +.UNSPECIFIED.); +#3696=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3690,#3691,#3692,#3693,#3694,#3695), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3725=CIRCLE('',#3724,1.863129159863E2); +#3734=CIRCLE('',#3733,1.847670231111E2); +#3743=CIRCLE('',#3742,1.847670231111E2); +#3750=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3744,#3745,#3746,#3747,#3748,#3749), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3761=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3755,#3756,#3757,#3758,#3759,#3760), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3770=CIRCLE('',#3769,1.848431352108E2); +#3775=CIRCLE('',#3774,1.849868883989E2); +#3782=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3776,#3777,#3778,#3779,#3780,#3781), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3789=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3783,#3784,#3785,#3786,#3787,#3788), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#3794=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3790,#3791,#3792,#3793),.UNSPECIFIED., +.F.,.F.,(4,4),(0.E0,1.E0),.UNSPECIFIED.); +#3811=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3795,#3796,#3797,#3798,#3799,#3800,#3801, +#3802,#3803,#3804,#3805,#3806,#3807,#3808,#3809,#3810),.UNSPECIFIED.,.F.,.F.,(4, +1,1,1,1,1,1,1,1,1,1,1,1,4),(0.E0,7.692307692308E-2,1.538461538462E-1, +2.307692307692E-1,3.076923076923E-1,3.846153846154E-1,4.615384615385E-1, +5.384615384615E-1,6.153846153846E-1,6.923076923077E-1,7.692307692308E-1, +8.461538461538E-1,9.230769230769E-1,1.E0),.UNSPECIFIED.); +#3828=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3820,#3821,#3822,#3823,#3824,#3825,#3826, +#3827),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.E-1,4.E-1,6.E-1,8.E-1,1.E0), +.UNSPECIFIED.); +#3837=CIRCLE('',#3836,1.909734288188E2); +#3850=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3846,#3847,#3848,#3849),.UNSPECIFIED., +.F.,.F.,(4,4),(0.E0,1.E0),.UNSPECIFIED.); +#3862=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3851,#3852,#3853,#3854,#3855,#3856,#3857, +#3858,#3859,#3860,#3861),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,4),(0.E0, +1.25E-1,2.5E-1,3.75E-1,5.E-1,6.25E-1,7.5E-1,8.75E-1,1.E0),.UNSPECIFIED.); +#3867=CIRCLE('',#3866,3.45E1); +#3880=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3868,#3869,#3870,#3871,#3872,#3873,#3874, +#3875,#3876,#3877,#3878,#3879),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,1,1,1,4), +(0.E0,1.111111111111E-1,2.222222222222E-1,3.333333333333E-1,4.444444444444E-1, +5.555555555556E-1,6.666666666667E-1,7.777777777778E-1,8.888888888889E-1,1.E0), +.UNSPECIFIED.); +#3895=B_SPLINE_CURVE_WITH_KNOTS('',3,(#3889,#3890,#3891,#3892,#3893,#3894), +.UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.E0,3.333333333333E-1,6.666666666667E-1,1.E0), +.UNSPECIFIED.); +#4656=EDGE_CURVE('',#3898,#3899,#35,.T.); +#4658=EDGE_CURVE('',#3899,#3901,#39,.T.); +#4660=EDGE_CURVE('',#3903,#3901,#213,.T.); +#4662=EDGE_CURVE('',#3905,#3903,#3841,.T.); +#4664=EDGE_CURVE('',#3898,#3905,#3819,.T.); +#4668=ADVANCED_FACE('',(#4667),#4655,.F.); +#4674=EDGE_CURVE('',#3907,#3899,#43,.T.); +#4677=EDGE_CURVE('',#3898,#3908,#52,.T.); +#4679=EDGE_CURVE('',#3910,#3908,#3837,.T.); +#4681=EDGE_CURVE('',#3910,#3912,#56,.T.); +#4683=EDGE_CURVE('',#3914,#3912,#93,.T.); +#4685=EDGE_CURVE('',#3914,#3907,#76,.T.); +#4689=ADVANCED_FACE('',(#4688),#4673,.T.); +#4695=EDGE_CURVE('',#3928,#3907,#80,.T.); +#4697=EDGE_CURVE('',#3901,#3928,#217,.T.); +#4703=ADVANCED_FACE('',(#4702),#4694,.T.); +#4711=EDGE_CURVE('',#3914,#3930,#84,.T.); +#4713=EDGE_CURVE('',#3928,#3930,#222,.T.); +#4717=ADVANCED_FACE('',(#4716),#4708,.T.); +#4723=EDGE_CURVE('',#3912,#3932,#88,.T.); +#4725=EDGE_CURVE('',#3930,#3932,#226,.T.); +#4731=ADVANCED_FACE('',(#4730),#4722,.F.); +#4737=EDGE_CURVE('',#4639,#4640,#97,.T.); +#4739=EDGE_CURVE('',#4639,#3955,#102,.T.); +#4741=EDGE_CURVE('',#3955,#3956,#106,.T.); +#4743=EDGE_CURVE('',#3956,#3949,#110,.T.); +#4745=EDGE_CURVE('',#3949,#3950,#114,.T.); +#4747=EDGE_CURVE('',#4640,#3950,#200,.T.); +#4751=ADVANCED_FACE('',(#4750),#4736,.T.); +#4757=EDGE_CURVE('',#4643,#4644,#118,.T.); +#4759=EDGE_CURVE('',#3932,#4644,#191,.T.); +#4763=EDGE_CURVE('',#3910,#3952,#122,.T.); +#4765=EDGE_CURVE('',#3952,#4643,#127,.T.); +#4769=ADVANCED_FACE('',(#4768),#4756,.T.); +#4776=EDGE_CURVE('',#4640,#4644,#196,.T.); +#4779=EDGE_CURVE('',#4639,#4643,#3811,.T.); +#4783=ADVANCED_FACE('',(#4782),#4774,.T.); +#4789=EDGE_CURVE('',#4087,#4101,#132,.T.); +#4791=EDGE_CURVE('',#4101,#4056,#136,.T.); +#4793=EDGE_CURVE('',#4043,#4056,#1179,.T.); +#4795=EDGE_CURVE('',#4043,#3962,#140,.T.); +#4797=EDGE_CURVE('',#3962,#3960,#144,.T.); +#4799=EDGE_CURVE('',#3960,#3994,#148,.T.); +#4801=EDGE_CURVE('',#3994,#4097,#153,.T.); +#4803=EDGE_CURVE('',#4095,#4097,#2469,.T.); +#4805=EDGE_CURVE('',#4095,#4103,#158,.T.); +#4807=EDGE_CURVE('',#4105,#4103,#2528,.T.); +#4809=EDGE_CURVE('',#4105,#4107,#163,.T.); +#4811=EDGE_CURVE('',#4109,#4107,#3040,.T.); +#4813=EDGE_CURVE('',#4109,#4111,#168,.T.); +#4815=EDGE_CURVE('',#4111,#4113,#172,.T.); +#4817=EDGE_CURVE('',#4113,#4089,#177,.T.); +#4819=EDGE_CURVE('',#4087,#4089,#318,.T.); +#4823=EDGE_CURVE('',#4127,#4128,#182,.T.); +#4825=EDGE_CURVE('',#4128,#4127,#187,.T.); +#4832=EDGE_CURVE('',#3950,#3972,#204,.T.); +#4834=EDGE_CURVE('',#3972,#4115,#209,.T.); +#4836=EDGE_CURVE('',#3903,#4115,#3845,.T.); +#4844=EDGE_CURVE('',#4348,#4650,#230,.T.); +#4846=EDGE_CURVE('',#4648,#4650,#235,.T.); +#4848=EDGE_CURVE('',#4648,#4346,#239,.T.); +#4850=EDGE_CURVE('',#4346,#3978,#244,.T.); +#4852=EDGE_CURVE('',#3978,#3976,#248,.T.); +#4854=EDGE_CURVE('',#3976,#4117,#252,.T.); +#4856=EDGE_CURVE('',#4117,#4118,#261,.T.); +#4858=EDGE_CURVE('',#4118,#4119,#274,.T.); +#4860=EDGE_CURVE('',#4120,#4119,#1695,.T.); +#4862=EDGE_CURVE('',#4122,#4120,#1624,.T.); +#4864=EDGE_CURVE('',#4122,#4124,#278,.T.); +#4866=EDGE_CURVE('',#4124,#3936,#283,.T.); +#4868=EDGE_CURVE('',#3936,#3946,#287,.T.); +#4870=EDGE_CURVE('',#3946,#4348,#292,.T.); +#4874=ADVANCED_FACE('',(#4822,#4828,#4843,#4873),#4788,.F.); +#4881=EDGE_CURVE('',#4087,#4085,#296,.T.); +#4883=EDGE_CURVE('',#4085,#4064,#305,.T.); +#4885=EDGE_CURVE('',#4064,#4101,#309,.T.); +#4889=ADVANCED_FACE('',(#4888),#4879,.T.); +#4895=EDGE_CURVE('',#4083,#4085,#314,.T.); +#4899=EDGE_CURVE('',#4083,#4089,#381,.T.); +#4903=ADVANCED_FACE('',(#4902),#4894,.T.); +#4910=EDGE_CURVE('',#4066,#4083,#328,.T.); +#4912=EDGE_CURVE('',#4066,#4064,#323,.T.); +#4917=ADVANCED_FACE('',(#4916),#4908,.T.); +#4943=EDGE_CURVE('',#4066,#4062,#344,.T.); +#4946=EDGE_CURVE('',#4083,#4081,#335,.T.); +#4948=EDGE_CURVE('',#4062,#4081,#357,.T.); +#4952=ADVANCED_FACE('',(#4951),#4942,.T.); +#4958=EDGE_CURVE('',#4048,#4062,#348,.T.); +#4960=EDGE_CURVE('',#4047,#4048,#1165,.T.); +#4962=EDGE_CURVE('',#4047,#4064,#339,.T.); +#4968=ADVANCED_FACE('',(#4967),#4957,.F.); +#4975=EDGE_CURVE('',#4079,#4062,#367,.T.); +#4977=EDGE_CURVE('',#4079,#4050,#352,.T.); +#4979=EDGE_CURVE('',#4048,#4050,#1170,.T.); +#4983=ADVANCED_FACE('',(#4982),#4973,.T.); +#4990=EDGE_CURVE('',#4081,#4079,#362,.T.); +#4995=ADVANCED_FACE('',(#4994),#4988,.T.); +#5001=EDGE_CURVE('',#4081,#4502,#372,.T.); +#5003=EDGE_CURVE('',#4502,#4458,#377,.T.); +#5005=EDGE_CURVE('',#4079,#4458,#1199,.T.); +#5010=ADVANCED_FACE('',(#5009),#5000,.T.); +#5020=EDGE_CURVE('',#4113,#4502,#385,.T.); +#5024=ADVANCED_FACE('',(#5023),#5015,.T.); +#5030=EDGE_CURVE('',#4499,#4500,#389,.T.); +#5032=EDGE_CURVE('',#4496,#4499,#427,.T.); +#5034=EDGE_CURVE('',#4495,#4496,#1354,.T.); +#5036=EDGE_CURVE('',#4502,#4495,#1372,.T.); +#5040=EDGE_CURVE('',#4504,#4111,#3086,.T.); +#5042=EDGE_CURVE('',#4500,#4504,#3108,.T.); +#5046=ADVANCED_FACE('',(#5045),#5029,.F.); +#5052=EDGE_CURVE('',#4499,#4455,#398,.T.); +#5055=EDGE_CURVE('',#4451,#4500,#3104,.T.); +#5057=EDGE_CURVE('',#4451,#4455,#393,.T.); +#5061=ADVANCED_FACE('',(#5060),#5051,.T.); +#5068=EDGE_CURVE('',#4455,#4453,#402,.T.); +#5070=EDGE_CURVE('',#4434,#4453,#3716,.T.); +#5072=EDGE_CURVE('',#4434,#4432,#406,.T.); +#5074=EDGE_CURVE('',#4432,#4487,#410,.T.); +#5076=EDGE_CURVE('',#4487,#4485,#414,.T.); +#5078=EDGE_CURVE('',#4490,#4485,#1333,.T.); +#5080=EDGE_CURVE('',#4490,#4492,#418,.T.); +#5082=EDGE_CURVE('',#4492,#4496,#423,.T.); +#5087=ADVANCED_FACE('',(#5086),#5066,.T.); +#5093=EDGE_CURVE('',#4449,#4451,#441,.T.); +#5095=EDGE_CURVE('',#4449,#4436,#432,.T.); +#5097=EDGE_CURVE('',#4438,#4436,#469,.T.); +#5099=EDGE_CURVE('',#4438,#4453,#437,.T.); +#5105=ADVANCED_FACE('',(#5104),#5092,.T.); +#5111=EDGE_CURVE('',#4449,#4430,#461,.T.); +#5114=EDGE_CURVE('',#4462,#4451,#3094,.T.); +#5116=EDGE_CURVE('',#4462,#4464,#446,.T.); +#5118=EDGE_CURVE('',#4466,#4464,#3054,.T.); +#5120=EDGE_CURVE('',#4466,#4467,#453,.T.); +#5122=EDGE_CURVE('',#4468,#4467,#3141,.T.); +#5124=EDGE_CURVE('',#4470,#4468,#3164,.T.); +#5126=EDGE_CURVE('',#4418,#4470,#3186,.T.); +#5128=EDGE_CURVE('',#4417,#4418,#554,.T.); +#5130=EDGE_CURVE('',#4416,#4417,#532,.T.); +#5132=EDGE_CURVE('',#4424,#4416,#504,.T.); +#5134=EDGE_CURVE('',#4430,#4424,#478,.T.); +#5138=ADVANCED_FACE('',(#5137),#5110,.T.); +#5144=EDGE_CURVE('',#4427,#4436,#457,.T.); +#5148=EDGE_CURVE('',#4427,#4430,#474,.T.); +#5152=ADVANCED_FACE('',(#5151),#5143,.F.); +#5159=EDGE_CURVE('',#4427,#4428,#465,.T.); +#5161=EDGE_CURVE('',#4438,#4428,#3712,.T.); +#5166=ADVANCED_FACE('',(#5165),#5157,.F.); +#5175=EDGE_CURVE('',#4424,#4409,#483,.T.); +#5177=EDGE_CURVE('',#4409,#4402,#487,.T.); +#5179=EDGE_CURVE('',#4400,#4402,#1400,.T.); +#5181=EDGE_CURVE('',#4400,#4432,#491,.T.); +#5184=EDGE_CURVE('',#4434,#4428,#496,.T.); +#5188=ADVANCED_FACE('',(#5187),#5171,.F.); +#5194=EDGE_CURVE('',#4404,#4416,#521,.T.); +#5196=EDGE_CURVE('',#4404,#4409,#500,.T.); +#5202=ADVANCED_FACE('',(#5201),#5193,.T.); +#5208=EDGE_CURVE('',#4403,#4404,#511,.T.); +#5213=EDGE_CURVE('',#4420,#4418,#3179,.T.); +#5215=EDGE_CURVE('',#4422,#4420,#3174,.T.); +#5217=EDGE_CURVE('',#4422,#4403,#561,.T.); +#5221=ADVANCED_FACE('',(#5220),#5207,.F.); +#5228=EDGE_CURVE('',#4403,#4406,#565,.T.); +#5230=EDGE_CURVE('',#4406,#4407,#573,.T.); +#5232=EDGE_CURVE('',#4407,#4385,#580,.T.); +#5234=EDGE_CURVE('',#4383,#4385,#662,.T.); +#5236=EDGE_CURVE('',#4383,#4402,#585,.T.); +#5242=ADVANCED_FACE('',(#5241),#5226,.F.); +#5249=EDGE_CURVE('',#4521,#4422,#589,.T.); +#5251=EDGE_CURVE('',#4406,#4521,#603,.T.); +#5256=ADVANCED_FACE('',(#5255),#5247,.F.); +#5262=EDGE_CURVE('',#4521,#4522,#610,.T.); +#5265=EDGE_CURVE('',#4520,#4422,#3169,.T.); +#5267=EDGE_CURVE('',#4524,#4520,#3210,.T.); +#5269=EDGE_CURVE('',#4522,#4524,#3364,.T.); +#5273=ADVANCED_FACE('',(#5272),#5261,.F.); +#5279=EDGE_CURVE('',#4525,#4526,#596,.T.); +#5281=EDGE_CURVE('',#4407,#4526,#3708,.T.); +#5286=EDGE_CURVE('',#4522,#4528,#614,.T.); +#5288=EDGE_CURVE('',#4530,#4528,#3337,.T.); +#5290=EDGE_CURVE('',#4525,#4530,#3291,.T.); +#5294=ADVANCED_FACE('',(#5293),#5278,.F.); +#5300=EDGE_CURVE('',#4389,#4387,#618,.T.); +#5302=EDGE_CURVE('',#4387,#4526,#625,.T.); +#5305=EDGE_CURVE('',#4531,#4525,#3319,.T.); +#5307=EDGE_CURVE('',#4531,#4389,#629,.T.); +#5311=ADVANCED_FACE('',(#5310),#5299,.F.); +#5317=EDGE_CURVE('',#4333,#4330,#633,.T.); +#5319=EDGE_CURVE('',#4330,#4344,#637,.T.); +#5321=EDGE_CURVE('',#4344,#4356,#641,.T.); +#5323=EDGE_CURVE('',#4356,#4380,#651,.T.); +#5325=EDGE_CURVE('',#4380,#4381,#658,.T.); +#5327=EDGE_CURVE('',#4383,#4381,#1404,.T.); +#5330=EDGE_CURVE('',#4385,#4387,#666,.T.); +#5333=EDGE_CURVE('',#4172,#4389,#3263,.T.); +#5335=EDGE_CURVE('',#4172,#4156,#670,.T.); +#5337=EDGE_CURVE('',#4154,#4156,#885,.T.); +#5339=EDGE_CURVE('',#4379,#4154,#844,.T.); +#5341=EDGE_CURVE('',#4333,#4379,#821,.T.); +#5345=ADVANCED_FACE('',(#5344),#5316,.F.); +#5351=EDGE_CURVE('',#4330,#4331,#710,.T.); +#5354=EDGE_CURVE('',#4333,#4327,#678,.T.); +#5356=EDGE_CURVE('',#4327,#4323,#682,.T.); +#5358=EDGE_CURVE('',#4323,#4325,#686,.T.); +#5360=EDGE_CURVE('',#4335,#4325,#764,.T.); +#5362=EDGE_CURVE('',#4336,#4335,#737,.T.); +#5364=EDGE_CURVE('',#4336,#4331,#693,.T.); +#5368=ADVANCED_FACE('',(#5367),#5350,.T.); +#5374=EDGE_CURVE('',#4026,#4027,#706,.T.); +#5376=EDGE_CURVE('',#4344,#4027,#1450,.T.); +#5380=EDGE_CURVE('',#4026,#4331,#726,.T.); +#5384=ADVANCED_FACE('',(#5383),#5373,.T.); +#5391=EDGE_CURVE('',#4028,#4026,#722,.T.); +#5393=EDGE_CURVE('',#4029,#4028,#755,.T.); +#5395=EDGE_CURVE('',#4029,#4031,#715,.T.); +#5397=EDGE_CURVE('',#4027,#4031,#1460,.T.); +#5401=ADVANCED_FACE('',(#5400),#5389,.T.); +#5410=B_SPLINE_CURVE_WITH_KNOTS('',3,(#5402,#5403,#5404,#5405,#5406,#5407,#5408, +#5409),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.037522218752E-2, +1.088417506500E-1,2.106962811155E-1,9.794136917219E-1,1.E0),.UNSPECIFIED.); +#5417=EDGE_CURVE('',#4336,#4028,#731,.T.); +#5421=ADVANCED_FACE('',(#5420),#5413,.T.); +#5429=EDGE_CURVE('',#4335,#4037,#741,.T.); +#5431=EDGE_CURVE('',#4037,#4029,#748,.T.); +#5436=ADVANCED_FACE('',(#5435),#5426,.T.); +#5442=EDGE_CURVE('',#4039,#4325,#775,.T.); +#5444=EDGE_CURVE('',#4039,#4037,#760,.T.); +#5450=ADVANCED_FACE('',(#5449),#5441,.T.); +#5456=EDGE_CURVE('',#4320,#4323,#779,.T.); +#5458=EDGE_CURVE('',#4320,#3984,#771,.T.); +#5460=EDGE_CURVE('',#3982,#3984,#1754,.T.); +#5462=EDGE_CURVE('',#4039,#3982,#1805,.T.); +#5468=ADVANCED_FACE('',(#5467),#5455,.F.); +#5476=EDGE_CURVE('',#4321,#4327,#817,.T.); +#5478=EDGE_CURVE('',#4320,#4321,#1812,.T.); +#5482=ADVANCED_FACE('',(#5481),#5473,.T.); +#5488=EDGE_CURVE('',#4376,#4377,#840,.T.); +#5490=EDGE_CURVE('',#4376,#4358,#788,.T.); +#5492=EDGE_CURVE('',#4358,#4340,#792,.T.); +#5494=EDGE_CURVE('',#4294,#4340,#1958,.T.); +#5496=EDGE_CURVE('',#4294,#4292,#796,.T.); +#5498=EDGE_CURVE('',#4292,#4298,#803,.T.); +#5500=EDGE_CURVE('',#4318,#4298,#1712,.T.); +#5502=EDGE_CURVE('',#4318,#4319,#813,.T.); +#5504=EDGE_CURVE('',#4321,#4319,#1819,.T.); +#5509=EDGE_CURVE('',#4379,#4377,#830,.T.); +#5513=ADVANCED_FACE('',(#5512),#5487,.T.); +#5519=EDGE_CURVE('',#4153,#4377,#848,.T.); +#5521=EDGE_CURVE('',#4153,#4151,#835,.T.); +#5523=EDGE_CURVE('',#4376,#4151,#2038,.T.); +#5528=ADVANCED_FACE('',(#5527),#5518,.F.); +#5535=EDGE_CURVE('',#4153,#4154,#881,.T.); +#5541=ADVANCED_FACE('',(#5540),#5533,.F.); +#5547=EDGE_CURVE('',#4148,#4149,#854,.T.); +#5549=EDGE_CURVE('',#4149,#4150,#863,.T.); +#5551=EDGE_CURVE('',#4150,#4151,#872,.T.); +#5556=EDGE_CURVE('',#4156,#4157,#893,.T.); +#5558=EDGE_CURVE('',#4157,#4142,#897,.T.); +#5560=EDGE_CURVE('',#4142,#4141,#903,.T.); +#5562=EDGE_CURVE('',#4141,#4145,#913,.T.); +#5564=EDGE_CURVE('',#4145,#4146,#923,.T.); +#5566=EDGE_CURVE('',#4146,#4158,#929,.T.); +#5568=EDGE_CURVE('',#4158,#4148,#933,.T.); +#5572=ADVANCED_FACE('',(#5571),#5546,.F.); +#5578=EDGE_CURVE('',#4161,#4162,#937,.T.); +#5580=EDGE_CURVE('',#4164,#4162,#2218,.T.); +#5582=EDGE_CURVE('',#4164,#4166,#942,.T.); +#5584=EDGE_CURVE('',#4149,#4166,#2049,.T.); +#5587=EDGE_CURVE('',#4161,#4148,#2629,.T.); +#5591=ADVANCED_FACE('',(#5590),#5577,.F.); +#5597=EDGE_CURVE('',#4182,#4183,#946,.T.); +#5599=EDGE_CURVE('',#4162,#4183,#975,.T.); +#5602=EDGE_CURVE('',#4182,#4161,#2621,.T.); +#5606=ADVANCED_FACE('',(#5605),#5596,.T.); +#5612=EDGE_CURVE('',#4183,#4185,#979,.T.); +#5615=EDGE_CURVE('',#4187,#4182,#2612,.T.); +#5617=EDGE_CURVE('',#4187,#4189,#951,.T.); +#5619=EDGE_CURVE('',#4191,#4189,#2567,.T.); +#5621=EDGE_CURVE('',#4193,#4191,#2559,.T.); +#5623=EDGE_CURVE('',#4193,#4195,#956,.T.); +#5625=EDGE_CURVE('',#4077,#4195,#2478,.T.); +#5627=EDGE_CURVE('',#4075,#4077,#1020,.T.); +#5629=EDGE_CURVE('',#4185,#4075,#991,.T.); +#5633=EDGE_CURVE('',#4198,#4199,#961,.T.); +#5635=EDGE_CURVE('',#4199,#4198,#966,.T.); +#5639=ADVANCED_FACE('',(#5632,#5638),#5611,.T.); +#5645=EDGE_CURVE('',#4539,#4185,#987,.T.); +#5647=EDGE_CURVE('',#4162,#4539,#2204,.T.); +#5653=ADVANCED_FACE('',(#5652),#5644,.T.); +#5661=EDGE_CURVE('',#4073,#4075,#1005,.T.); +#5663=EDGE_CURVE('',#4073,#4071,#995,.T.); +#5665=EDGE_CURVE('',#4539,#4071,#2209,.T.); +#5669=ADVANCED_FACE('',(#5668),#5658,.F.); +#5675=EDGE_CURVE('',#4075,#4073,#1000,.T.); +#5680=ADVANCED_FACE('',(#5679),#5674,.F.); +#5686=EDGE_CURVE('',#4058,#3990,#1029,.T.); +#5688=EDGE_CURVE('',#4058,#4068,#1009,.T.); +#5690=EDGE_CURVE('',#4068,#4069,#1016,.T.); +#5692=EDGE_CURVE('',#4071,#4069,#2214,.T.); +#5697=EDGE_CURVE('',#3992,#4077,#2465,.T.); +#5699=EDGE_CURVE('',#3992,#3990,#1024,.T.); +#5703=ADVANCED_FACE('',(#5702),#5685,.F.); +#5710=EDGE_CURVE('',#3990,#3988,#1034,.T.); +#5712=EDGE_CURVE('',#3988,#4001,#1039,.T.); +#5714=EDGE_CURVE('',#4001,#4060,#1044,.T.); +#5716=EDGE_CURVE('',#4058,#4060,#2189,.T.); +#5720=ADVANCED_FACE('',(#5719),#5708,.T.); +#5726=EDGE_CURVE('',#3988,#3989,#1058,.T.); +#5730=EDGE_CURVE('',#3994,#3992,#2447,.T.); +#5733=EDGE_CURVE('',#3959,#3960,#1129,.T.); +#5735=EDGE_CURVE('',#3995,#3959,#1118,.T.); +#5737=EDGE_CURVE('',#3995,#3996,#1054,.T.); +#5739=EDGE_CURVE('',#3989,#3996,#1069,.T.); +#5743=ADVANCED_FACE('',(#5742),#5725,.F.); +#5750=EDGE_CURVE('',#3997,#3989,#1076,.T.); +#5752=EDGE_CURVE('',#3998,#3997,#2409,.T.); +#5754=EDGE_CURVE('',#3998,#4000,#1062,.T.); +#5756=EDGE_CURVE('',#4001,#4000,#1235,.T.); +#5761=ADVANCED_FACE('',(#5760),#5748,.F.); +#5768=EDGE_CURVE('',#3997,#3996,#1081,.T.); +#5773=ADVANCED_FACE('',(#5772),#5766,.F.); +#5781=EDGE_CURVE('',#3995,#4015,#1086,.T.); +#5783=EDGE_CURVE('',#4015,#4017,#1091,.T.); +#5785=EDGE_CURVE('',#4017,#4019,#1096,.T.); +#5787=EDGE_CURVE('',#4020,#4019,#1156,.T.); +#5789=EDGE_CURVE('',#4021,#4020,#2439,.T.); +#5791=EDGE_CURVE('',#4021,#4023,#1101,.T.); +#5793=EDGE_CURVE('',#4023,#4025,#1106,.T.); +#5795=EDGE_CURVE('',#4025,#3997,#1111,.T.); +#5799=ADVANCED_FACE('',(#5798),#5778,.T.); +#5806=EDGE_CURVE('',#3966,#3959,#1139,.T.); +#5808=EDGE_CURVE('',#3964,#3966,#1134,.T.); +#5810=EDGE_CURVE('',#3964,#4019,#1125,.T.); +#5817=ADVANCED_FACE('',(#5816),#5804,.T.); +#5825=EDGE_CURVE('',#3964,#3962,#1160,.T.); +#5831=ADVANCED_FACE('',(#5830),#5822,.F.); +#5837=EDGE_CURVE('',#4043,#4044,#1143,.T.); +#5839=EDGE_CURVE('',#4044,#4020,#1147,.T.); +#5847=ADVANCED_FACE('',(#5846),#5836,.F.); +#5855=EDGE_CURVE('',#4052,#4050,#1194,.T.); +#5857=EDGE_CURVE('',#4052,#4054,#1175,.T.); +#5859=EDGE_CURVE('',#4044,#4054,#2443,.T.); +#5863=EDGE_CURVE('',#4056,#4047,#1183,.T.); +#5867=ADVANCED_FACE('',(#5866),#5852,.T.); +#5873=EDGE_CURVE('',#4456,#4052,#1190,.T.); +#5878=EDGE_CURVE('',#4460,#4458,#1376,.T.); +#5880=EDGE_CURVE('',#4460,#4456,#1203,.T.); +#5884=ADVANCED_FACE('',(#5883),#5872,.T.); +#5890=EDGE_CURVE('',#4441,#4443,#1271,.T.); +#5892=EDGE_CURVE('',#4441,#4471,#1212,.T.); +#5894=EDGE_CURVE('',#4472,#4471,#1301,.T.); +#5896=EDGE_CURVE('',#4474,#4472,#2398,.T.); +#5898=EDGE_CURVE('',#4476,#4474,#2393,.T.); +#5900=EDGE_CURVE('',#4477,#4476,#1294,.T.); +#5902=EDGE_CURVE('',#4477,#4411,#1221,.T.); +#5904=EDGE_CURVE('',#4411,#4415,#1228,.T.); +#5906=EDGE_CURVE('',#4060,#4415,#2196,.T.); +#5910=EDGE_CURVE('',#4000,#4478,#1242,.T.); +#5912=EDGE_CURVE('',#4478,#4479,#1249,.T.); +#5914=EDGE_CURVE('',#4479,#4054,#1258,.T.); +#5918=EDGE_CURVE('',#4456,#4443,#1264,.T.); +#5922=ADVANCED_FACE('',(#5921),#5889,.F.); +#5928=EDGE_CURVE('',#4441,#4442,#1283,.T.); +#5931=EDGE_CURVE('',#4445,#4443,#1341,.T.); +#5933=EDGE_CURVE('',#4447,#4445,#1337,.T.); +#5935=EDGE_CURVE('',#4447,#4442,#1275,.T.); +#5939=ADVANCED_FACE('',(#5938),#5927,.F.); +#5945=EDGE_CURVE('',#4481,#4471,#1279,.T.); +#5949=EDGE_CURVE('',#4481,#4442,#1306,.T.); +#5953=ADVANCED_FACE('',(#5952),#5944,.F.); +#5960=EDGE_CURVE('',#4481,#4483,#1287,.T.); +#5962=EDGE_CURVE('',#4477,#4483,#2181,.T.); +#5965=EDGE_CURVE('',#4472,#4476,#2388,.T.); +#5970=ADVANCED_FACE('',(#5969),#5958,.T.); +#5979=EDGE_CURVE('',#4447,#4485,#1311,.T.); +#5982=EDGE_CURVE('',#4487,#4398,#1315,.T.); +#5984=EDGE_CURVE('',#4396,#4398,#1396,.T.); +#5986=EDGE_CURVE('',#4396,#4483,#1320,.T.); +#5990=ADVANCED_FACE('',(#5989),#5975,.F.); +#5996=EDGE_CURVE('',#4445,#4488,#1329,.T.); +#5998=EDGE_CURVE('',#4490,#4488,#1350,.T.); +#6005=ADVANCED_FACE('',(#6004),#5995,.T.); +#6013=B_SPLINE_CURVE_WITH_KNOTS('',3,(#6006,#6007,#6008,#6009,#6010,#6011, +#6012),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,4),(0.E0,9.122135981592E-2, +5.033177534491E-1,9.087786401841E-1,1.E0),.UNSPECIFIED.); +#6019=EDGE_CURVE('',#4456,#4488,#1345,.T.); +#6024=ADVANCED_FACE('',(#6023),#6016,.T.); +#6032=EDGE_CURVE('',#4492,#4460,#1358,.T.); +#6038=ADVANCED_FACE('',(#6037),#6029,.T.); +#6047=EDGE_CURVE('',#4460,#4495,#1368,.T.); +#6051=ADVANCED_FACE('',(#6050),#6043,.T.); +#6063=ADVANCED_FACE('',(#6062),#6056,.T.); +#6069=EDGE_CURVE('',#4400,#4398,#1381,.T.); +#6076=ADVANCED_FACE('',(#6075),#6068,.T.); +#6082=EDGE_CURVE('',#4393,#4381,#1414,.T.); +#6084=EDGE_CURVE('',#4372,#4393,#1409,.T.); +#6086=EDGE_CURVE('',#4372,#4370,#1385,.T.); +#6088=EDGE_CURVE('',#4395,#4370,#2162,.T.); +#6090=EDGE_CURVE('',#4395,#4396,#1392,.T.); +#6099=ADVANCED_FACE('',(#6098),#6081,.F.); +#6105=EDGE_CURVE('',#4391,#4380,#1424,.T.); +#6107=EDGE_CURVE('',#4373,#4391,#1419,.T.); +#6109=EDGE_CURVE('',#4372,#4373,#2020,.T.); +#6116=ADVANCED_FACE('',(#6115),#6104,.F.); +#6125=EDGE_CURVE('',#4355,#4356,#1446,.T.); +#6127=EDGE_CURVE('',#4352,#4355,#1441,.T.); +#6129=EDGE_CURVE('',#4373,#4352,#2030,.T.); +#6133=ADVANCED_FACE('',(#6132),#6121,.T.); +#6139=EDGE_CURVE('',#4647,#4648,#1428,.T.); +#6141=EDGE_CURVE('',#4647,#4351,#1432,.T.); +#6143=EDGE_CURVE('',#4351,#4352,#1436,.T.); +#6150=EDGE_CURVE('',#4036,#4031,#1798,.T.); +#6152=EDGE_CURVE('',#4346,#4036,#1772,.T.); +#6157=ADVANCED_FACE('',(#6156),#6138,.T.); +#6163=EDGE_CURVE('',#4636,#4650,#1464,.T.); +#6166=EDGE_CURVE('',#3920,#4348,#1536,.T.); +#6168=EDGE_CURVE('',#4636,#3920,#1496,.T.); +#6172=ADVANCED_FACE('',(#6171),#6162,.T.); +#6178=EDGE_CURVE('',#4634,#4635,#1468,.T.); +#6180=EDGE_CURVE('',#4647,#4634,#1979,.T.); +#6185=EDGE_CURVE('',#4635,#4636,#1492,.T.); +#6189=ADVANCED_FACE('',(#6188),#6177,.T.); +#6196=EDGE_CURVE('',#4635,#3918,#1473,.T.); +#6198=EDGE_CURVE('',#3918,#4634,#1477,.T.); +#6202=ADVANCED_FACE('',(#6201),#6194,.F.); +#6210=EDGE_CURVE('',#3919,#3920,#1532,.T.); +#6212=EDGE_CURVE('',#3922,#3919,#1553,.T.); +#6214=EDGE_CURVE('',#3922,#3924,#1500,.T.); +#6216=EDGE_CURVE('',#3926,#3924,#2241,.T.); +#6218=EDGE_CURVE('',#3916,#3926,#2226,.T.); +#6220=EDGE_CURVE('',#3915,#3916,#1969,.T.); +#6222=EDGE_CURVE('',#3915,#3918,#1504,.T.); +#6227=ADVANCED_FACE('',(#6226),#6207,.T.); +#6234=EDGE_CURVE('',#3946,#3919,#1508,.T.); +#6240=ADVANCED_FACE('',(#6239),#6232,.T.); +#6246=EDGE_CURVE('',#3935,#3936,#1557,.T.); +#6248=EDGE_CURVE('',#3935,#3938,#1540,.T.); +#6250=EDGE_CURVE('',#3940,#3938,#1861,.T.); +#6252=EDGE_CURVE('',#3940,#3942,#1544,.T.); +#6254=EDGE_CURVE('',#3944,#3942,#2258,.T.); +#6256=EDGE_CURVE('',#3944,#3922,#1548,.T.); +#6263=ADVANCED_FACE('',(#6262),#6245,.F.); +#6269=EDGE_CURVE('',#4284,#4285,#1575,.T.); +#6271=EDGE_CURVE('',#3935,#4284,#1570,.T.); +#6275=EDGE_CURVE('',#4124,#4315,#1561,.T.); +#6277=EDGE_CURVE('',#4317,#4315,#1603,.T.); +#6279=EDGE_CURVE('',#4317,#4285,#1565,.T.); +#6283=ADVANCED_FACE('',(#6282),#6268,.T.); +#6291=EDGE_CURVE('',#4287,#4285,#1598,.T.); +#6293=EDGE_CURVE('',#4289,#4287,#1649,.T.); +#6295=EDGE_CURVE('',#4289,#4291,#1580,.T.); +#6297=EDGE_CURVE('',#4291,#4271,#1585,.T.); +#6299=EDGE_CURVE('',#4271,#3938,#1590,.T.); +#6304=ADVANCED_FACE('',(#6303),#6288,.F.); +#6311=EDGE_CURVE('',#4311,#4317,#1607,.T.); +#6313=EDGE_CURVE('',#4311,#4287,#1594,.T.); +#6318=ADVANCED_FACE('',(#6317),#6309,.T.); +#6325=EDGE_CURVE('',#4313,#4315,#1616,.T.); +#6327=EDGE_CURVE('',#4311,#4313,#1653,.T.); +#6332=ADVANCED_FACE('',(#6331),#6323,.T.); +#6340=EDGE_CURVE('',#4122,#4308,#1612,.T.); +#6342=EDGE_CURVE('',#4313,#4308,#1657,.T.); +#6347=ADVANCED_FACE('',(#6346),#6337,.F.); +#6353=EDGE_CURVE('',#4307,#4308,#1620,.T.); +#6357=EDGE_CURVE('',#4307,#4120,#1680,.T.); +#6361=ADVANCED_FACE('',(#6360),#6352,.T.); +#6368=EDGE_CURVE('',#4307,#4309,#1634,.T.); +#6370=EDGE_CURVE('',#4309,#4304,#1641,.T.); +#6372=EDGE_CURVE('',#4304,#4302,#1645,.T.); +#6374=EDGE_CURVE('',#4289,#4302,#1876,.T.); +#6382=ADVANCED_FACE('',(#6381),#6366,.T.); +#6475=EDGE_CURVE('',#4297,#4119,#1724,.T.); +#6477=EDGE_CURVE('',#4309,#4297,#1918,.T.); +#6481=ADVANCED_FACE('',(#6480),#6471,.F.); +#6605=EDGE_CURVE('',#4118,#4318,#1702,.T.); +#6608=EDGE_CURVE('',#4297,#4298,#1829,.T.); +#6613=ADVANCED_FACE('',(#6612),#6603,.F.); +#6714=EDGE_CURVE('',#4117,#3975,#1734,.T.); +#6716=EDGE_CURVE('',#3985,#3975,#1768,.T.); +#6718=EDGE_CURVE('',#3985,#4319,#1741,.T.); +#6725=ADVANCED_FACE('',(#6724),#6713,.T.); +#6731=EDGE_CURVE('',#3975,#3976,#1745,.T.); +#6737=ADVANCED_FACE('',(#6736),#6730,.T.); +#6745=EDGE_CURVE('',#3980,#3978,#1776,.T.); +#6747=EDGE_CURVE('',#3980,#3982,#1750,.T.); +#6750=EDGE_CURVE('',#3984,#3985,#1761,.T.); +#6755=ADVANCED_FACE('',(#6754),#6742,.F.); +#6763=EDGE_CURVE('',#3980,#4036,#1791,.T.); +#6768=ADVANCED_FACE('',(#6767),#6760,.T.); +#6783=ADVANCED_FACE('',(#6782),#6773,.T.); +#6824=ADVANCED_FACE('',(#6823),#6816,.F.); +#6866=EDGE_CURVE('',#4266,#4267,#1842,.T.); +#6868=EDGE_CURVE('',#4275,#4266,#1868,.T.); +#6870=EDGE_CURVE('',#4295,#4275,#1910,.T.); +#6872=EDGE_CURVE('',#4297,#4295,#1922,.T.); +#6876=EDGE_CURVE('',#4267,#4292,#1931,.T.); +#6880=ADVANCED_FACE('',(#6879),#6865,.T.); +#6887=EDGE_CURVE('',#3940,#4266,#1834,.T.); +#6890=EDGE_CURVE('',#4269,#4267,#1926,.T.); +#6892=EDGE_CURVE('',#4269,#3942,#1847,.T.); +#6896=EDGE_CURVE('',#4263,#4264,#1852,.T.); +#6898=EDGE_CURVE('',#4264,#4263,#1857,.T.); +#6902=ADVANCED_FACE('',(#6895,#6901),#6885,.T.); +#6910=EDGE_CURVE('',#4273,#4271,#1872,.T.); +#6912=EDGE_CURVE('',#4275,#4273,#1881,.T.); +#6918=ADVANCED_FACE('',(#6917),#6907,.T.); +#6928=EDGE_CURVE('',#4301,#4302,#1891,.T.); +#6930=EDGE_CURVE('',#4273,#4301,#1886,.T.); +#6934=ADVANCED_FACE('',(#6933),#6923,.T.); +#6944=EDGE_CURVE('',#4304,#4295,#1903,.T.); +#6949=ADVANCED_FACE('',(#6948),#6939,.T.); +#6993=ADVANCED_FACE('',(#6992),#6986,.T.); +#7002=EDGE_CURVE('',#4279,#4294,#1950,.T.); +#7004=EDGE_CURVE('',#4279,#4277,#1935,.T.); +#7006=EDGE_CURVE('',#4269,#4277,#2263,.T.); +#7010=ADVANCED_FACE('',(#7009),#6998,.T.); +#7016=EDGE_CURVE('',#4337,#4338,#1942,.T.); +#7018=EDGE_CURVE('',#4339,#4338,#2236,.T.); +#7020=EDGE_CURVE('',#4281,#4339,#2249,.T.); +#7022=EDGE_CURVE('',#4281,#4279,#1946,.T.); +#7026=EDGE_CURVE('',#4342,#4340,#1991,.T.); +#7028=EDGE_CURVE('',#4337,#4342,#1983,.T.); +#7032=ADVANCED_FACE('',(#7031),#7015,.T.); +#7041=B_SPLINE_CURVE_WITH_KNOTS('',3,(#7033,#7034,#7035,#7036,#7037,#7038,#7039, +#7040),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,4),(0.E0,2.030988854563E-2, +1.120523467548E-1,2.135398791584E-1,9.794954668850E-1,1.E0),.UNSPECIFIED.); +#7046=EDGE_CURVE('',#4337,#3915,#1962,.T.); +#7049=EDGE_CURVE('',#3916,#4338,#1974,.T.); +#7053=ADVANCED_FACE('',(#7052),#7044,.F.); +#7064=EDGE_CURVE('',#4351,#4342,#1987,.T.); +#7069=ADVANCED_FACE('',(#7068),#7058,.T.); +#7079=EDGE_CURVE('',#4150,#4358,#2034,.T.); +#7081=EDGE_CURVE('',#4150,#4361,#1997,.T.); +#7083=EDGE_CURVE('',#4361,#4362,#2001,.T.); +#7085=EDGE_CURVE('',#4362,#4364,#2005,.T.); +#7087=EDGE_CURVE('',#4366,#4364,#2140,.T.); +#7089=EDGE_CURVE('',#4366,#4368,#2009,.T.); +#7091=EDGE_CURVE('',#4368,#4370,#2013,.T.); +#7098=ADVANCED_FACE('',(#7097),#7074,.F.); +#7110=ADVANCED_FACE('',(#7109),#7103,.F.); +#7116=EDGE_CURVE('',#4537,#4536,#2045,.T.); +#7118=EDGE_CURVE('',#4362,#4536,#2153,.T.); +#7124=EDGE_CURVE('',#4537,#4166,#2121,.T.); +#7128=ADVANCED_FACE('',(#7127),#7115,.T.); +#7134=EDGE_CURVE('',#4537,#4535,#2078,.T.); +#7136=EDGE_CURVE('',#4535,#4534,#2085,.T.); +#7138=EDGE_CURVE('',#4534,#4536,#2107,.T.); +#7143=ADVANCED_FACE('',(#7142),#7133,.F.); +#7149=EDGE_CURVE('',#4532,#4535,#2114,.T.); +#7154=EDGE_CURVE('',#4164,#4069,#2125,.T.); +#7157=EDGE_CURVE('',#4068,#4413,#2132,.T.); +#7159=EDGE_CURVE('',#4412,#4413,#2177,.T.); +#7161=EDGE_CURVE('',#4412,#4532,#2136,.T.); +#7165=ADVANCED_FACE('',(#7164),#7148,.F.); +#7172=EDGE_CURVE('',#4534,#4364,#2157,.T.); +#7176=EDGE_CURVE('',#4532,#4366,#2147,.T.); +#7180=ADVANCED_FACE('',(#7179),#7170,.F.); +#7192=ADVANCED_FACE('',(#7191),#7185,.F.); +#7200=EDGE_CURVE('',#4368,#4412,#2169,.T.); +#7205=ADVANCED_FACE('',(#7204),#7197,.F.); +#7211=EDGE_CURVE('',#4395,#4411,#2185,.T.); +#7217=EDGE_CURVE('',#4415,#4413,#2200,.T.); +#7222=ADVANCED_FACE('',(#7221),#7210,.F.); +#7235=ADVANCED_FACE('',(#7234),#7227,.T.); +#7248=ADVANCED_FACE('',(#7247),#7240,.F.); +#7261=ADVANCED_FACE('',(#7260),#7253,.F.); +#7269=EDGE_CURVE('',#3926,#4339,#2230,.T.); +#7274=ADVANCED_FACE('',(#7273),#7266,.T.); +#7282=EDGE_CURVE('',#3924,#4281,#2245,.T.); +#7287=ADVANCED_FACE('',(#7286),#7279,.T.); +#7293=EDGE_CURVE('',#3944,#4277,#2254,.T.); +#7302=ADVANCED_FACE('',(#7301),#7292,.F.); +#7314=ADVANCED_FACE('',(#7313),#7307,.T.); +#7321=EDGE_CURVE('',#4260,#4263,#2271,.T.); +#7323=EDGE_CURVE('',#4259,#4260,#2296,.T.); +#7325=EDGE_CURVE('',#4259,#4264,#2267,.T.); +#7329=ADVANCED_FACE('',(#7328),#7319,.F.); +#7337=EDGE_CURVE('',#4260,#4259,#2301,.T.); +#7342=ADVANCED_FACE('',(#7341),#7334,.F.); +#7348=EDGE_CURVE('',#4238,#4256,#2276,.T.); +#7350=EDGE_CURVE('',#4256,#4242,#2281,.T.); +#7352=EDGE_CURVE('',#4242,#4240,#2286,.T.); +#7354=EDGE_CURVE('',#4240,#4238,#2291,.T.); +#7362=ADVANCED_FACE('',(#7357,#7361),#7347,.F.); +#7368=EDGE_CURVE('',#4230,#4232,#2323,.T.); +#7370=EDGE_CURVE('',#4254,#4230,#2363,.T.); +#7372=EDGE_CURVE('',#4252,#4254,#2359,.T.); +#7374=EDGE_CURVE('',#4250,#4252,#2354,.T.); +#7376=EDGE_CURVE('',#4248,#4250,#2350,.T.); +#7378=EDGE_CURVE('',#4248,#4246,#2305,.T.); +#7380=EDGE_CURVE('',#4246,#4244,#2310,.T.); +#7382=EDGE_CURVE('',#4244,#4242,#2314,.T.); +#7386=EDGE_CURVE('',#4236,#4238,#2345,.T.); +#7388=EDGE_CURVE('',#4234,#4236,#2341,.T.); +#7390=EDGE_CURVE('',#4234,#4232,#2318,.T.); +#7394=ADVANCED_FACE('',(#7393),#7367,.F.); +#7401=EDGE_CURVE('',#4230,#4198,#2336,.T.); +#7404=EDGE_CURVE('',#4232,#4199,#2327,.T.); +#7408=ADVANCED_FACE('',(#7407),#7399,.F.); +#7416=EDGE_CURVE('',#4232,#4230,#2332,.T.); +#7421=ADVANCED_FACE('',(#7420),#7413,.F.); +#7442=ADVANCED_FACE('',(#7441),#7426,.F.); +#7465=ADVANCED_FACE('',(#7464),#7459,.F.); +#7472=EDGE_CURVE('',#4630,#3998,#2432,.T.); +#7474=EDGE_CURVE('',#4630,#4478,#2402,.T.); +#7479=ADVANCED_FACE('',(#7478),#7470,.T.); +#7489=EDGE_CURVE('',#4021,#4631,#2418,.T.); +#7491=EDGE_CURVE('',#4631,#4630,#2425,.T.); +#7496=ADVANCED_FACE('',(#7495),#7484,.T.); +#7512=ADVANCED_FACE('',(#7511),#7501,.T.); +#7524=ADVANCED_FACE('',(#7523),#7517,.F.); +#7532=EDGE_CURVE('',#4099,#3992,#2460,.T.); +#7534=EDGE_CURVE('',#4099,#4097,#2451,.T.); +#7538=ADVANCED_FACE('',(#7537),#7529,.T.); +#7544=EDGE_CURVE('',#4099,#4093,#2474,.T.); +#7548=EDGE_CURVE('',#4093,#4077,#2491,.T.); +#7552=ADVANCED_FACE('',(#7551),#7543,.T.); +#7558=EDGE_CURVE('',#4092,#4093,#2482,.T.); +#7560=EDGE_CURVE('',#4095,#4092,#2514,.T.); +#7567=ADVANCED_FACE('',(#7566),#7557,.T.); +#7574=EDGE_CURVE('',#4092,#4195,#2501,.T.); +#7580=ADVANCED_FACE('',(#7579),#7572,.T.); +#7598=EDGE_CURVE('',#4609,#4092,#2496,.T.); +#7602=EDGE_CURVE('',#4193,#4609,#2506,.T.); +#7606=ADVANCED_FACE('',(#7605),#7597,.T.); +#7613=EDGE_CURVE('',#4609,#4103,#2510,.T.); +#7619=ADVANCED_FACE('',(#7618),#7611,.T.); +#7625=EDGE_CURVE('',#4600,#4601,#2532,.T.); +#7627=EDGE_CURVE('',#4600,#4603,#2519,.T.); +#7629=EDGE_CURVE('',#4605,#4603,#3415,.T.); +#7631=EDGE_CURVE('',#4605,#4597,#2524,.T.); +#7633=EDGE_CURVE('',#4596,#4597,#3392,.T.); +#7635=EDGE_CURVE('',#4607,#4596,#3013,.T.); +#7637=EDGE_CURVE('',#4105,#4607,#3036,.T.); +#7641=EDGE_CURVE('',#4601,#4609,#2555,.T.); +#7645=ADVANCED_FACE('',(#7644),#7624,.T.); +#7652=EDGE_CURVE('',#4572,#4601,#2551,.T.); +#7654=EDGE_CURVE('',#4572,#4570,#2536,.T.); +#7656=EDGE_CURVE('',#4600,#4570,#3424,.T.); +#7660=ADVANCED_FACE('',(#7659),#7650,.T.); +#7666=EDGE_CURVE('',#4601,#4191,#2541,.T.); +#7668=EDGE_CURVE('',#4191,#4560,#2546,.T.); +#7670=EDGE_CURVE('',#4572,#4560,#2576,.T.); +#7675=ADVANCED_FACE('',(#7674),#7665,.T.); +#7687=ADVANCED_FACE('',(#7686),#7680,.T.); +#7693=EDGE_CURVE('',#4549,#4560,#2563,.T.); +#7697=EDGE_CURVE('',#4549,#4189,#2600,.T.); +#7701=ADVANCED_FACE('',(#7700),#7692,.T.); +#7708=EDGE_CURVE('',#4552,#4549,#2587,.T.); +#7710=EDGE_CURVE('',#4562,#4552,#2679,.T.); +#7712=EDGE_CURVE('',#4563,#4562,#3581,.T.); +#7714=EDGE_CURVE('',#4564,#4563,#3532,.T.); +#7716=EDGE_CURVE('',#4566,#4564,#3503,.T.); +#7718=EDGE_CURVE('',#4566,#4568,#2571,.T.); +#7720=EDGE_CURVE('',#4570,#4568,#3438,.T.); +#7726=ADVANCED_FACE('',(#7725),#7706,.F.); +#7732=EDGE_CURVE('',#4548,#4549,#2592,.T.); +#7734=EDGE_CURVE('',#4548,#4550,#2583,.T.); +#7736=EDGE_CURVE('',#4552,#4550,#2684,.T.); +#7741=ADVANCED_FACE('',(#7740),#7731,.F.); +#7750=EDGE_CURVE('',#4548,#4187,#2608,.T.); +#7754=ADVANCED_FACE('',(#7753),#7746,.T.); +#7760=EDGE_CURVE('',#4548,#4161,#2625,.T.); +#7767=ADVANCED_FACE('',(#7766),#7759,.T.); +#7776=EDGE_CURVE('',#4158,#4578,#2633,.T.); +#7778=EDGE_CURVE('',#4550,#4578,#2688,.T.); +#7783=ADVANCED_FACE('',(#7782),#7772,.F.); +#7789=EDGE_CURVE('',#4578,#4579,#2646,.T.); +#7792=EDGE_CURVE('',#4158,#4627,#2638,.T.); +#7794=EDGE_CURVE('',#4579,#4627,#2692,.T.); +#7798=ADVANCED_FACE('',(#7797),#7788,.T.); +#7805=EDGE_CURVE('',#4579,#4580,#2659,.T.); +#7807=EDGE_CURVE('',#4580,#4562,#2675,.T.); +#7814=ADVANCED_FACE('',(#7813),#7803,.T.); +#7853=EDGE_CURVE('',#4627,#4628,#2699,.T.); +#7855=EDGE_CURVE('',#4628,#4624,#2710,.T.); +#7857=EDGE_CURVE('',#4624,#4580,#2714,.T.); +#7862=ADVANCED_FACE('',(#7861),#7851,.F.); +#7904=EDGE_CURVE('',#4628,#4147,#2729,.T.); +#7909=EDGE_CURVE('',#4146,#4147,#2722,.T.); +#7913=ADVANCED_FACE('',(#7912),#7903,.T.); +#7987=EDGE_CURVE('',#4140,#4147,#2748,.T.); +#7989=EDGE_CURVE('',#4134,#4140,#2811,.T.); +#7991=EDGE_CURVE('',#4136,#4134,#3623,.T.); +#7993=EDGE_CURVE('',#4624,#4136,#3553,.T.); +#7999=ADVANCED_FACE('',(#7998),#7986,.T.); +#8102=EDGE_CURVE('',#4145,#4140,#2737,.T.); +#8108=ADVANCED_FACE('',(#8107),#8100,.T.); +#8202=EDGE_CURVE('',#4140,#4137,#2822,.T.); +#8206=EDGE_CURVE('',#4141,#4137,#2756,.T.); +#8210=ADVANCED_FACE('',(#8209),#8201,.T.); +#8284=EDGE_CURVE('',#4137,#4138,#2763,.T.); +#8286=EDGE_CURVE('',#4138,#4139,#2774,.T.); +#8288=EDGE_CURVE('',#4139,#4133,#2783,.T.); +#8290=EDGE_CURVE('',#4133,#4134,#2804,.T.); +#8296=ADVANCED_FACE('',(#8295),#8283,.F.); +#8329=EDGE_CURVE('',#4142,#4144,#2827,.T.); +#8331=EDGE_CURVE('',#4138,#4144,#3696,.T.); +#8335=ADVANCED_FACE('',(#8334),#8325,.T.); +#8341=EDGE_CURVE('',#4573,#4574,#2835,.T.); +#8343=EDGE_CURVE('',#4144,#4573,#3689,.T.); +#8346=EDGE_CURVE('',#4574,#4142,#2876,.T.); +#8350=ADVANCED_FACE('',(#8349),#8340,.T.); +#8357=EDGE_CURVE('',#4558,#4574,#2872,.T.); +#8359=EDGE_CURVE('',#4558,#4556,#2840,.T.); +#8361=EDGE_CURVE('',#4576,#4556,#3482,.T.); +#8363=EDGE_CURVE('',#4576,#4577,#2851,.T.); +#8365=EDGE_CURVE('',#4577,#4573,#2864,.T.); +#8369=ADVANCED_FACE('',(#8368),#8355,.T.); +#8375=EDGE_CURVE('',#4169,#4542,#2868,.T.); +#8377=EDGE_CURVE('',#4558,#4542,#2959,.T.); +#8382=EDGE_CURVE('',#4157,#4169,#2880,.T.); +#8386=ADVANCED_FACE('',(#8385),#8374,.F.); +#8392=EDGE_CURVE('',#4215,#4213,#2884,.T.); +#8394=EDGE_CURVE('',#4213,#4542,#2892,.T.); +#8397=EDGE_CURVE('',#4169,#4215,#2901,.T.); +#8401=ADVANCED_FACE('',(#8400),#8391,.T.); +#8407=EDGE_CURVE('',#4212,#4213,#2906,.T.); +#8410=EDGE_CURVE('',#4217,#4215,#3245,.T.); +#8412=EDGE_CURVE('',#4217,#4219,#2911,.T.); +#8414=EDGE_CURVE('',#4221,#4219,#3218,.T.); +#8416=EDGE_CURVE('',#4223,#4221,#3214,.T.); +#8418=EDGE_CURVE('',#4224,#4223,#3193,.T.); +#8420=EDGE_CURVE('',#4226,#4224,#3150,.T.); +#8422=EDGE_CURVE('',#4227,#4226,#3134,.T.); +#8424=EDGE_CURVE('',#4227,#4228,#2918,.T.); +#8426=EDGE_CURVE('',#4212,#4228,#3380,.T.); +#8430=ADVANCED_FACE('',(#8429),#8406,.T.); +#8437=EDGE_CURVE('',#4544,#4212,#2928,.T.); +#8439=EDGE_CURVE('',#4544,#4542,#2923,.T.); +#8444=ADVANCED_FACE('',(#8443),#8435,.T.); +#8502=EDGE_CURVE('',#4544,#4545,#2948,.T.); +#8505=EDGE_CURVE('',#4212,#4205,#2935,.T.); +#8507=EDGE_CURVE('',#4205,#4545,#2940,.T.); +#8511=ADVANCED_FACE('',(#8510),#8501,.T.); +#8519=EDGE_CURVE('',#4554,#4545,#2964,.T.); +#8521=EDGE_CURVE('',#4554,#4556,#2952,.T.); +#8527=ADVANCED_FACE('',(#8526),#8516,.F.); +#8535=EDGE_CURVE('',#4202,#4205,#2969,.T.); +#8537=EDGE_CURVE('',#4554,#4202,#2990,.T.); +#8541=ADVANCED_FACE('',(#8540),#8532,.T.); +#8547=EDGE_CURVE('',#4202,#4203,#2978,.T.); +#8550=EDGE_CURVE('',#4207,#4205,#3388,.T.); +#8552=EDGE_CURVE('',#4207,#4209,#2974,.T.); +#8554=EDGE_CURVE('',#4203,#4209,#3009,.T.); +#8558=ADVANCED_FACE('',(#8557),#8546,.T.); +#8565=EDGE_CURVE('',#4593,#4203,#3005,.T.); +#8567=EDGE_CURVE('',#4593,#4554,#2982,.T.); +#8572=ADVANCED_FACE('',(#8571),#8563,.T.); +#8578=EDGE_CURVE('',#4203,#4596,#2995,.T.); +#8580=EDGE_CURVE('',#4596,#4585,#3000,.T.); +#8582=EDGE_CURVE('',#4593,#4585,#3487,.T.); +#8587=ADVANCED_FACE('',(#8586),#8577,.T.); +#8595=EDGE_CURVE('',#4607,#4209,#3023,.T.); +#8600=ADVANCED_FACE('',(#8599),#8592,.T.); +#8618=EDGE_CURVE('',#4510,#4607,#3018,.T.); +#8622=EDGE_CURVE('',#4207,#4510,#3028,.T.); +#8626=ADVANCED_FACE('',(#8625),#8617,.T.); +#8633=EDGE_CURVE('',#4510,#4107,#3032,.T.); +#8639=ADVANCED_FACE('',(#8638),#8631,.T.); +#8645=EDGE_CURVE('',#4506,#4508,#3058,.T.); +#8647=EDGE_CURVE('',#4109,#4506,#3090,.T.); +#8651=EDGE_CURVE('',#4512,#4510,#3384,.T.); +#8653=EDGE_CURVE('',#4512,#4514,#3045,.T.); +#8655=EDGE_CURVE('',#4514,#4508,#3050,.T.); +#8659=ADVANCED_FACE('',(#8658),#8644,.T.); +#8666=EDGE_CURVE('',#4506,#4464,#3077,.T.); +#8669=EDGE_CURVE('',#4508,#4466,#3067,.T.); +#8673=ADVANCED_FACE('',(#8672),#8664,.T.); +#8679=EDGE_CURVE('',#4504,#4506,#3072,.T.); +#8683=EDGE_CURVE('',#4462,#4504,#3082,.T.); +#8687=ADVANCED_FACE('',(#8686),#8678,.T.); +#8699=ADVANCED_FACE('',(#8698),#8692,.T.); +#8711=ADVANCED_FACE('',(#8710),#8704,.T.); +#8718=EDGE_CURVE('',#4227,#4516,#3113,.T.); +#8720=EDGE_CURVE('',#4516,#4467,#3118,.T.); +#8726=EDGE_CURVE('',#4512,#4228,#3127,.T.); +#8730=ADVANCED_FACE('',(#8729),#8716,.T.); +#8739=EDGE_CURVE('',#4468,#4226,#3146,.T.); +#8744=ADVANCED_FACE('',(#8743),#8735,.F.); +#8752=EDGE_CURVE('',#4224,#4518,#3155,.T.); +#8754=EDGE_CURVE('',#4518,#4470,#3160,.T.); +#8759=ADVANCED_FACE('',(#8758),#8749,.F.); +#8772=EDGE_CURVE('',#4223,#4520,#3198,.T.); +#8776=ADVANCED_FACE('',(#8775),#8764,.F.); +#8782=EDGE_CURVE('',#4221,#4629,#3206,.T.); +#8784=EDGE_CURVE('',#4524,#4629,#3369,.T.); +#8791=ADVANCED_FACE('',(#8790),#8781,.F.); +#8799=EDGE_CURVE('',#4541,#4219,#3237,.T.); +#8801=EDGE_CURVE('',#4629,#4541,#3359,.T.); +#8805=ADVANCED_FACE('',(#8804),#8796,.T.); +#8812=EDGE_CURVE('',#4217,#4170,#3223,.T.); +#8814=EDGE_CURVE('',#4170,#4541,#3232,.T.); +#8819=ADVANCED_FACE('',(#8818),#8810,.T.); +#8825=EDGE_CURVE('',#4169,#4170,#3241,.T.); +#8832=ADVANCED_FACE('',(#8831),#8824,.T.); +#8842=EDGE_CURVE('',#4172,#4174,#3249,.T.); +#8844=EDGE_CURVE('',#4175,#4174,#3298,.T.); +#8846=EDGE_CURVE('',#4175,#4177,#3254,.T.); +#8848=EDGE_CURVE('',#4177,#4179,#3259,.T.); +#8850=EDGE_CURVE('',#4170,#4179,#3351,.T.); +#8854=ADVANCED_FACE('',(#8853),#8837,.F.); +#8862=EDGE_CURVE('',#4174,#4531,#3312,.T.); +#8867=ADVANCED_FACE('',(#8866),#8859,.F.); +#8874=EDGE_CURVE('',#4540,#4530,#3332,.T.); +#8876=EDGE_CURVE('',#4175,#4540,#3376,.T.); +#8883=ADVANCED_FACE('',(#8882),#8872,.F.); +#8891=EDGE_CURVE('',#4528,#4179,#3342,.T.); +#8894=EDGE_CURVE('',#4177,#4540,#3347,.T.); +#8898=ADVANCED_FACE('',(#8897),#8888,.T.); +#8907=EDGE_CURVE('',#4528,#4541,#3355,.T.); +#8911=ADVANCED_FACE('',(#8910),#8903,.T.); +#8924=ADVANCED_FACE('',(#8923),#8916,.F.); +#8935=ADVANCED_FACE('',(#8934),#8929,.T.); +#8949=ADVANCED_FACE('',(#8948),#8940,.T.); +#8956=EDGE_CURVE('',#4584,#4597,#3411,.T.); +#8958=EDGE_CURVE('',#4584,#4585,#3396,.T.); +#8963=ADVANCED_FACE('',(#8962),#8954,.T.); +#8970=EDGE_CURVE('',#4605,#4621,#3401,.T.); +#8972=EDGE_CURVE('',#4621,#4584,#3406,.T.); +#8977=ADVANCED_FACE('',(#8976),#8968,.T.); +#8984=EDGE_CURVE('',#4611,#4603,#3434,.T.); +#8986=EDGE_CURVE('',#4611,#4621,#3419,.T.); +#8991=ADVANCED_FACE('',(#8990),#8982,.T.); +#8999=EDGE_CURVE('',#4570,#4611,#3429,.T.); +#9004=ADVANCED_FACE('',(#9003),#8996,.T.); +#9012=EDGE_CURVE('',#4613,#4568,#3447,.T.); +#9014=EDGE_CURVE('',#4613,#4611,#3442,.T.); +#9018=ADVANCED_FACE('',(#9017),#9009,.F.); +#9024=EDGE_CURVE('',#4613,#4615,#3466,.T.); +#9028=EDGE_CURVE('',#4566,#4617,#3452,.T.); +#9030=EDGE_CURVE('',#4619,#4617,#3499,.T.); +#9032=EDGE_CURVE('',#4619,#4589,#3457,.T.); +#9034=EDGE_CURVE('',#4587,#4589,#3478,.T.); +#9036=EDGE_CURVE('',#4587,#4615,#3462,.T.); +#9040=ADVANCED_FACE('',(#9039),#9023,.T.); +#9049=EDGE_CURVE('',#4621,#4615,#3470,.T.); +#9053=ADVANCED_FACE('',(#9052),#9045,.T.); +#9062=EDGE_CURVE('',#4587,#4584,#3474,.T.); +#9066=ADVANCED_FACE('',(#9065),#9058,.F.); +#9075=EDGE_CURVE('',#4591,#4589,#3495,.T.); +#9077=EDGE_CURVE('',#4581,#4591,#3640,.T.); +#9079=EDGE_CURVE('',#4576,#4581,#3671,.T.); +#9087=ADVANCED_FACE('',(#9086),#9071,.F.); +#9094=EDGE_CURVE('',#4619,#4625,#3491,.T.); +#9096=EDGE_CURVE('',#4591,#4625,#3651,.T.); +#9101=ADVANCED_FACE('',(#9100),#9092,.F.); +#9108=EDGE_CURVE('',#4622,#4617,#3507,.T.); +#9110=EDGE_CURVE('',#4623,#4622,#3514,.T.); +#9112=EDGE_CURVE('',#4625,#4623,#3658,.T.); +#9117=ADVANCED_FACE('',(#9116),#9106,.T.); +#9125=EDGE_CURVE('',#4622,#4564,#3525,.T.); +#9130=ADVANCED_FACE('',(#9129),#9122,.F.); +#9216=EDGE_CURVE('',#4563,#4624,#3543,.T.); +#9219=EDGE_CURVE('',#4136,#4135,#3574,.T.); +#9221=EDGE_CURVE('',#4623,#4135,#3664,.T.); +#9225=ADVANCED_FACE('',(#9224),#9212,.T.); +#9269=ADVANCED_FACE('',(#9268),#9262,.F.); +#9276=EDGE_CURVE('',#4133,#4135,#3602,.T.); +#9282=EDGE_CURVE('',#4132,#4130,#3628,.T.); +#9284=EDGE_CURVE('',#4130,#4132,#3633,.T.); +#9288=ADVANCED_FACE('',(#9281,#9287),#9274,.F.); +#9377=EDGE_CURVE('',#4581,#4139,#3681,.T.); +#9381=ADVANCED_FACE('',(#9380),#9370,.F.); +#9421=EDGE_CURVE('',#4139,#4577,#3685,.T.); +#9426=ADVANCED_FACE('',(#9425),#9418,.T.); +#9471=ADVANCED_FACE('',(#9470),#9463,.T.); +#9478=EDGE_CURVE('',#4127,#4130,#3700,.T.); +#9481=EDGE_CURVE('',#4128,#4132,#3704,.T.); +#9485=ADVANCED_FACE('',(#9484),#9476,.F.); +#9497=ADVANCED_FACE('',(#9496),#9490,.F.); +#9509=ADVANCED_FACE('',(#9508),#9502,.F.); +#9521=ADVANCED_FACE('',(#9520),#9514,.T.); +#9528=EDGE_CURVE('',#3949,#3968,#3720,.T.); +#9530=EDGE_CURVE('',#3968,#3970,#3725,.T.); +#9532=EDGE_CURVE('',#3972,#3970,#3888,.T.); +#9537=ADVANCED_FACE('',(#9536),#9526,.F.); +#9544=EDGE_CURVE('',#4013,#3956,#3738,.T.); +#9546=EDGE_CURVE('',#4012,#4013,#3782,.T.); +#9548=EDGE_CURVE('',#3968,#4012,#3895,.T.); +#9553=ADVANCED_FACE('',(#9552),#9542,.F.); +#9559=EDGE_CURVE('',#4033,#4003,#3729,.T.); +#9561=EDGE_CURVE('',#4003,#4013,#3734,.T.); +#9565=EDGE_CURVE('',#4008,#3955,#3832,.T.); +#9567=EDGE_CURVE('',#4008,#4006,#3743,.T.); +#9569=EDGE_CURVE('',#4033,#4006,#3754,.T.); +#9573=ADVANCED_FACE('',(#9572),#9558,.T.); +#9580=EDGE_CURVE('',#4035,#4033,#3765,.T.); +#9582=EDGE_CURVE('',#4002,#4035,#3789,.T.); +#9584=EDGE_CURVE('',#4002,#4003,#3750,.T.); +#9588=ADVANCED_FACE('',(#9587),#9578,.T.); +#9595=EDGE_CURVE('',#4006,#4005,#3761,.T.); +#9597=EDGE_CURVE('',#4035,#4005,#3794,.T.); +#9602=ADVANCED_FACE('',(#9601),#9593,.T.); +#9609=EDGE_CURVE('',#4002,#4005,#3770,.T.); +#9613=EDGE_CURVE('',#4009,#4008,#3828,.T.); +#9615=EDGE_CURVE('',#4010,#4009,#3862,.T.); +#9617=EDGE_CURVE('',#4010,#4012,#3775,.T.); +#9623=ADVANCED_FACE('',(#9622),#9607,.T.); +#9634=ADVANCED_FACE('',(#9633),#9628,.F.); +#9642=EDGE_CURVE('',#3952,#3908,#3815,.T.); +#9646=EDGE_CURVE('',#4009,#3905,#3867,.T.); +#9653=ADVANCED_FACE('',(#9652),#9639,.T.); +#9664=ADVANCED_FACE('',(#9663),#9658,.T.); +#9672=EDGE_CURVE('',#4040,#4115,#3884,.T.); +#9674=EDGE_CURVE('',#4040,#4010,#3850,.T.); +#9680=ADVANCED_FACE('',(#9679),#9669,.T.); +#9686=EDGE_CURVE('',#3970,#4040,#3880,.T.); +#9693=ADVANCED_FACE('',(#9692),#9685,.T.); +#9706=ADVANCED_FACE('',(#9705),#9698,.T.); +#9710=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); +#9711=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)); +#9714=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()); +#9716=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT(( +#9715))GLOBAL_UNIT_ASSIGNED_CONTEXT((#9710,#9713,#9714))REPRESENTATION_CONTEXT( +'ID1','3')); +#9717=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#9708),#9716); +#9724=PRODUCT_DEFINITION('part definition','',#9723,#9720); +#9725=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR FSA30SCY_TC-01-0702.',#9724); +#9726=SHAPE_ASPECT('','solid data associated with FSA30SCY_TC-01-0702',#9725, +.F.); +#9727=PROPERTY_DEFINITION('', +'shape for solid data with which properties are associated',#9726); +#9728=SHAPE_REPRESENTATION('',(#9708),#9716); +#9729=SHAPE_DEFINITION_REPRESENTATION(#9727,#9728); +#9730=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); +#9734=PROPERTY_DEFINITION('geometric validation property', +'area of FSA30SCY_TC-01-0702',#9726); +#9735=REPRESENTATION('surface area',(#9733),#9716); +#9736=PROPERTY_DEFINITION_REPRESENTATION(#9734,#9735); +#9737=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); +#9741=PROPERTY_DEFINITION('geometric validation property', +'volume of FSA30SCY_TC-01-0702',#9726); +#9742=REPRESENTATION('volume',(#9740),#9716); +#9743=PROPERTY_DEFINITION_REPRESENTATION(#9741,#9742); +#9745=PROPERTY_DEFINITION('geometric validation property', +'centroid of FSA30SCY_TC-01-0702',#9726); +#9746=REPRESENTATION('centroid',(#9744),#9716); +#9747=PROPERTY_DEFINITION_REPRESENTATION(#9745,#9746); +#9748=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); +#9752=PROPERTY_DEFINITION('geometric validation property', +'area of FSA30SCY_TC-01-0702',#9725); +#9753=REPRESENTATION('surface area',(#9751),#9716); +#9754=PROPERTY_DEFINITION_REPRESENTATION(#9752,#9753); +#9755=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); +#9759=PROPERTY_DEFINITION('geometric validation property', +'volume of FSA30SCY_TC-01-0702',#9725); +#9760=REPRESENTATION('volume',(#9758),#9716); +#9761=PROPERTY_DEFINITION_REPRESENTATION(#9759,#9760); +#9763=PROPERTY_DEFINITION('geometric validation property', +'centroid of FSA30SCY_TC-01-0702',#9725); +#9764=REPRESENTATION('centroid',(#9762),#9716); +#9765=PROPERTY_DEFINITION_REPRESENTATION(#9763,#9764); +#9766=SHAPE_DEFINITION_REPRESENTATION(#9725,#9717); +#9768=PROPERTY_DEFINITION('PTC_COMMON_NAME','user defined attribute',#9724); +#9772=REPRESENTATION('',(#9771),#9716); +#9773=PROPERTY_DEFINITION_REPRESENTATION(#9768,#9772); +ENDSEC; +END-ISO-10303-21; diff --git a/venv/.installed b/venv/.installed new file mode 100644 index 0000000..e69de29 diff --git a/venv/bin/Activate.ps1 b/venv/bin/Activate.ps1 new file mode 100644 index 0000000..eeea358 --- /dev/null +++ b/venv/bin/Activate.ps1 @@ -0,0 +1,247 @@ +<# +.Synopsis +Activate a Python virtual environment for the current PowerShell session. + +.Description +Pushes the python executable for a virtual environment to the front of the +$Env:PATH environment variable and sets the prompt to signify that you are +in a Python virtual environment. Makes use of the command line switches as +well as the `pyvenv.cfg` file values present in the virtual environment. + +.Parameter VenvDir +Path to the directory that contains the virtual environment to activate. The +default value for this is the parent of the directory that the Activate.ps1 +script is located within. + +.Parameter Prompt +The prompt prefix to display when this virtual environment is activated. By +default, this prompt is the name of the virtual environment folder (VenvDir) +surrounded by parentheses and followed by a single space (ie. '(.venv) '). + +.Example +Activate.ps1 +Activates the Python virtual environment that contains the Activate.ps1 script. + +.Example +Activate.ps1 -Verbose +Activates the Python virtual environment that contains the Activate.ps1 script, +and shows extra information about the activation as it executes. + +.Example +Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv +Activates the Python virtual environment located in the specified location. + +.Example +Activate.ps1 -Prompt "MyPython" +Activates the Python virtual environment that contains the Activate.ps1 script, +and prefixes the current prompt with the specified string (surrounded in +parentheses) while the virtual environment is active. + +.Notes +On Windows, it may be required to enable this Activate.ps1 script by setting the +execution policy for the user. You can do this by issuing the following PowerShell +command: + +PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser + +For more information on Execution Policies: +https://go.microsoft.com/fwlink/?LinkID=135170 + +#> +Param( + [Parameter(Mandatory = $false)] + [String] + $VenvDir, + [Parameter(Mandatory = $false)] + [String] + $Prompt +) + +<# Function declarations --------------------------------------------------- #> + +<# +.Synopsis +Remove all shell session elements added by the Activate script, including the +addition of the virtual environment's Python executable from the beginning of +the PATH variable. + +.Parameter NonDestructive +If present, do not remove this function from the global namespace for the +session. + +#> +function global:deactivate ([switch]$NonDestructive) { + # Revert to original values + + # The prior prompt: + if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) { + Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt + Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT + } + + # The prior PYTHONHOME: + if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) { + Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME + Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME + } + + # The prior PATH: + if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) { + Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH + Remove-Item -Path Env:_OLD_VIRTUAL_PATH + } + + # Just remove the VIRTUAL_ENV altogether: + if (Test-Path -Path Env:VIRTUAL_ENV) { + Remove-Item -Path env:VIRTUAL_ENV + } + + # Just remove VIRTUAL_ENV_PROMPT altogether. + if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) { + Remove-Item -Path env:VIRTUAL_ENV_PROMPT + } + + # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether: + if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) { + Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force + } + + # Leave deactivate function in the global namespace if requested: + if (-not $NonDestructive) { + Remove-Item -Path function:deactivate + } +} + +<# +.Description +Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the +given folder, and returns them in a map. + +For each line in the pyvenv.cfg file, if that line can be parsed into exactly +two strings separated by `=` (with any amount of whitespace surrounding the =) +then it is considered a `key = value` line. The left hand string is the key, +the right hand is the value. + +If the value starts with a `'` or a `"` then the first and last character is +stripped from the value before being captured. + +.Parameter ConfigDir +Path to the directory that contains the `pyvenv.cfg` file. +#> +function Get-PyVenvConfig( + [String] + $ConfigDir +) { + Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg" + + # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue). + $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue + + # An empty map will be returned if no config file is found. + $pyvenvConfig = @{ } + + if ($pyvenvConfigPath) { + + Write-Verbose "File exists, parse `key = value` lines" + $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath + + $pyvenvConfigContent | ForEach-Object { + $keyval = $PSItem -split "\s*=\s*", 2 + if ($keyval[0] -and $keyval[1]) { + $val = $keyval[1] + + # Remove extraneous quotations around a string value. + if ("'""".Contains($val.Substring(0, 1))) { + $val = $val.Substring(1, $val.Length - 2) + } + + $pyvenvConfig[$keyval[0]] = $val + Write-Verbose "Adding Key: '$($keyval[0])'='$val'" + } + } + } + return $pyvenvConfig +} + + +<# Begin Activate script --------------------------------------------------- #> + +# Determine the containing directory of this script +$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition +$VenvExecDir = Get-Item -Path $VenvExecPath + +Write-Verbose "Activation script is located in path: '$VenvExecPath'" +Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)" +Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)" + +# Set values required in priority: CmdLine, ConfigFile, Default +# First, get the location of the virtual environment, it might not be +# VenvExecDir if specified on the command line. +if ($VenvDir) { + Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values" +} +else { + Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir." + $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/") + Write-Verbose "VenvDir=$VenvDir" +} + +# Next, read the `pyvenv.cfg` file to determine any required value such +# as `prompt`. +$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir + +# Next, set the prompt from the command line, or the config file, or +# just use the name of the virtual environment folder. +if ($Prompt) { + Write-Verbose "Prompt specified as argument, using '$Prompt'" +} +else { + Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value" + if ($pyvenvCfg -and $pyvenvCfg['prompt']) { + Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'" + $Prompt = $pyvenvCfg['prompt']; + } + else { + Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)" + Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'" + $Prompt = Split-Path -Path $venvDir -Leaf + } +} + +Write-Verbose "Prompt = '$Prompt'" +Write-Verbose "VenvDir='$VenvDir'" + +# Deactivate any currently active virtual environment, but leave the +# deactivate function in place. +deactivate -nondestructive + +# Now set the environment variable VIRTUAL_ENV, used by many tools to determine +# that there is an activated venv. +$env:VIRTUAL_ENV = $VenvDir + +if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) { + + Write-Verbose "Setting prompt to '$Prompt'" + + # Set the prompt to include the env name + # Make sure _OLD_VIRTUAL_PROMPT is global + function global:_OLD_VIRTUAL_PROMPT { "" } + Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT + New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt + + function global:prompt { + Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) " + _OLD_VIRTUAL_PROMPT + } + $env:VIRTUAL_ENV_PROMPT = $Prompt +} + +# Clear PYTHONHOME +if (Test-Path -Path Env:PYTHONHOME) { + Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME + Remove-Item -Path Env:PYTHONHOME +} + +# Add the venv to the PATH +Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH +$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH" diff --git a/venv/bin/activate b/venv/bin/activate new file mode 100644 index 0000000..3238d93 --- /dev/null +++ b/venv/bin/activate @@ -0,0 +1,63 @@ +# This file must be used with "source bin/activate" *from bash* +# you cannot run it directly + +deactivate () { + # reset old environment variables + if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then + PATH="${_OLD_VIRTUAL_PATH:-}" + export PATH + unset _OLD_VIRTUAL_PATH + fi + if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then + PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" + export PYTHONHOME + unset _OLD_VIRTUAL_PYTHONHOME + fi + + # Call hash to forget past commands. Without forgetting + # past commands the $PATH changes we made may not be respected + hash -r 2> /dev/null + + if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then + PS1="${_OLD_VIRTUAL_PS1:-}" + export PS1 + unset _OLD_VIRTUAL_PS1 + fi + + unset VIRTUAL_ENV + unset VIRTUAL_ENV_PROMPT + if [ ! "${1:-}" = "nondestructive" ] ; then + # Self destruct! + unset -f deactivate + fi +} + +# unset irrelevant variables +deactivate nondestructive + +VIRTUAL_ENV=/opt/moldinsight/moldinsight_project/venv +export VIRTUAL_ENV + +_OLD_VIRTUAL_PATH="$PATH" +PATH="$VIRTUAL_ENV/"bin":$PATH" +export PATH + +# unset PYTHONHOME if set +# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) +# could use `if (set -u; : $PYTHONHOME) ;` in bash +if [ -n "${PYTHONHOME:-}" ] ; then + _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" + unset PYTHONHOME +fi + +if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then + _OLD_VIRTUAL_PS1="${PS1:-}" + PS1='(venv) '"${PS1:-}" + export PS1 + VIRTUAL_ENV_PROMPT='(venv) ' + export VIRTUAL_ENV_PROMPT +fi + +# Call hash to forget past commands. Without forgetting +# past commands the $PATH changes we made may not be respected +hash -r 2> /dev/null diff --git a/venv/bin/activate.csh b/venv/bin/activate.csh new file mode 100644 index 0000000..a19a1b1 --- /dev/null +++ b/venv/bin/activate.csh @@ -0,0 +1,26 @@ +# This file must be used with "source bin/activate.csh" *from csh*. +# You cannot run it directly. +# Created by Davide Di Blasi . +# Ported to Python 3.3 venv by Andrew Svetlov + +alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate' + +# Unset irrelevant variables. +deactivate nondestructive + +setenv VIRTUAL_ENV /opt/moldinsight/moldinsight_project/venv + +set _OLD_VIRTUAL_PATH="$PATH" +setenv PATH "$VIRTUAL_ENV/"bin":$PATH" + + +set _OLD_VIRTUAL_PROMPT="$prompt" + +if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then + set prompt = '(venv) '"$prompt" + setenv VIRTUAL_ENV_PROMPT '(venv) ' +endif + +alias pydoc python -m pydoc + +rehash diff --git a/venv/bin/activate.fish b/venv/bin/activate.fish new file mode 100644 index 0000000..32e05a6 --- /dev/null +++ b/venv/bin/activate.fish @@ -0,0 +1,69 @@ +# This file must be used with "source /bin/activate.fish" *from fish* +# (https://fishshell.com/); you cannot run it directly. + +function deactivate -d "Exit virtual environment and return to normal shell environment" + # reset old environment variables + if test -n "$_OLD_VIRTUAL_PATH" + set -gx PATH $_OLD_VIRTUAL_PATH + set -e _OLD_VIRTUAL_PATH + end + if test -n "$_OLD_VIRTUAL_PYTHONHOME" + set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME + set -e _OLD_VIRTUAL_PYTHONHOME + end + + if test -n "$_OLD_FISH_PROMPT_OVERRIDE" + set -e _OLD_FISH_PROMPT_OVERRIDE + # prevents error when using nested fish instances (Issue #93858) + if functions -q _old_fish_prompt + functions -e fish_prompt + functions -c _old_fish_prompt fish_prompt + functions -e _old_fish_prompt + end + end + + set -e VIRTUAL_ENV + set -e VIRTUAL_ENV_PROMPT + if test "$argv[1]" != "nondestructive" + # Self-destruct! + functions -e deactivate + end +end + +# Unset irrelevant variables. +deactivate nondestructive + +set -gx VIRTUAL_ENV /opt/moldinsight/moldinsight_project/venv + +set -gx _OLD_VIRTUAL_PATH $PATH +set -gx PATH "$VIRTUAL_ENV/"bin $PATH + +# Unset PYTHONHOME if set. +if set -q PYTHONHOME + set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME + set -e PYTHONHOME +end + +if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" + # fish uses a function instead of an env var to generate the prompt. + + # Save the current fish_prompt function as the function _old_fish_prompt. + functions -c fish_prompt _old_fish_prompt + + # With the original prompt function renamed, we can override with our own. + function fish_prompt + # Save the return status of the last command. + set -l old_status $status + + # Output the venv prompt; color taken from the blue of the Python logo. + printf "%s%s%s" (set_color 4B8BBE) '(venv) ' (set_color normal) + + # Restore the return status of the previous command. + echo "exit $old_status" | . + # Output the original/"old" prompt. + _old_fish_prompt + end + + set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" + set -gx VIRTUAL_ENV_PROMPT '(venv) ' +end diff --git a/venv/bin/dotenv b/venv/bin/dotenv new file mode 100644 index 0000000..6838936 --- /dev/null +++ b/venv/bin/dotenv @@ -0,0 +1,8 @@ +#!/opt/moldinsight/moldinsight_project/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from dotenv.__main__ import cli +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(cli()) diff --git a/venv/bin/f2py b/venv/bin/f2py new file mode 100644 index 0000000..3983e82 --- /dev/null +++ b/venv/bin/f2py @@ -0,0 +1,8 @@ +#!/opt/moldinsight/moldinsight_project/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from numpy.f2py.f2py2e import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/fastapi b/venv/bin/fastapi new file mode 100644 index 0000000..5e9ecc0 --- /dev/null +++ b/venv/bin/fastapi @@ -0,0 +1,8 @@ +#!/opt/moldinsight/moldinsight_project/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from fastapi.cli import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/fonttools b/venv/bin/fonttools new file mode 100644 index 0000000..e6622c7 --- /dev/null +++ b/venv/bin/fonttools @@ -0,0 +1,8 @@ +#!/opt/moldinsight/moldinsight_project/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from fontTools.__main__ import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/normalizer b/venv/bin/normalizer new file mode 100644 index 0000000..ea88ee7 --- /dev/null +++ b/venv/bin/normalizer @@ -0,0 +1,8 @@ +#!/opt/moldinsight/moldinsight_project/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from charset_normalizer.cli import cli_detect +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(cli_detect()) diff --git a/venv/bin/numpy-config b/venv/bin/numpy-config new file mode 100644 index 0000000..924b2dd --- /dev/null +++ b/venv/bin/numpy-config @@ -0,0 +1,8 @@ +#!/opt/moldinsight/moldinsight_project/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from numpy._configtool import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/pip b/venv/bin/pip new file mode 100644 index 0000000..cce3f69 --- /dev/null +++ b/venv/bin/pip @@ -0,0 +1,8 @@ +#!/opt/moldinsight/moldinsight_project/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/pip3 b/venv/bin/pip3 new file mode 100644 index 0000000..cce3f69 --- /dev/null +++ b/venv/bin/pip3 @@ -0,0 +1,8 @@ +#!/opt/moldinsight/moldinsight_project/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/pip3.11 b/venv/bin/pip3.11 new file mode 100644 index 0000000..cce3f69 --- /dev/null +++ b/venv/bin/pip3.11 @@ -0,0 +1,8 @@ +#!/opt/moldinsight/moldinsight_project/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/pyftmerge b/venv/bin/pyftmerge new file mode 100644 index 0000000..0cae669 --- /dev/null +++ b/venv/bin/pyftmerge @@ -0,0 +1,8 @@ +#!/opt/moldinsight/moldinsight_project/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from fontTools.merge import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/pyftsubset b/venv/bin/pyftsubset new file mode 100644 index 0000000..0dbb578 --- /dev/null +++ b/venv/bin/pyftsubset @@ -0,0 +1,8 @@ +#!/opt/moldinsight/moldinsight_project/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from fontTools.subset import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/python b/venv/bin/python new file mode 100644 index 0000000..b8a0adb --- /dev/null +++ b/venv/bin/python @@ -0,0 +1 @@ +python3 \ No newline at end of file diff --git a/venv/bin/python3 b/venv/bin/python3 new file mode 100644 index 0000000..a2dcc18 --- /dev/null +++ b/venv/bin/python3 @@ -0,0 +1 @@ +/opt/anaconda3/envs/moldinsight/bin/python3 \ No newline at end of file diff --git a/venv/bin/python3.11 b/venv/bin/python3.11 new file mode 100644 index 0000000..b8a0adb --- /dev/null +++ b/venv/bin/python3.11 @@ -0,0 +1 @@ +python3 \ No newline at end of file diff --git a/venv/bin/scooby b/venv/bin/scooby new file mode 100644 index 0000000..85b34eb --- /dev/null +++ b/venv/bin/scooby @@ -0,0 +1,8 @@ +#!/opt/moldinsight/moldinsight_project/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from scooby.__main__ import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/trimesh b/venv/bin/trimesh new file mode 100644 index 0000000..dbe606b --- /dev/null +++ b/venv/bin/trimesh @@ -0,0 +1,8 @@ +#!/opt/moldinsight/moldinsight_project/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from trimesh import __main__ +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(__main__.main()) diff --git a/venv/bin/ttx b/venv/bin/ttx new file mode 100644 index 0000000..f2c8d8b --- /dev/null +++ b/venv/bin/ttx @@ -0,0 +1,8 @@ +#!/opt/moldinsight/moldinsight_project/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from fontTools.ttx import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/uvicorn b/venv/bin/uvicorn new file mode 100644 index 0000000..98bf55e --- /dev/null +++ b/venv/bin/uvicorn @@ -0,0 +1,8 @@ +#!/opt/moldinsight/moldinsight_project/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from uvicorn.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/include/site/python3.11/greenlet/greenlet.h b/venv/include/site/python3.11/greenlet/greenlet.h new file mode 100644 index 0000000..d02a16e --- /dev/null +++ b/venv/include/site/python3.11/greenlet/greenlet.h @@ -0,0 +1,164 @@ +/* -*- indent-tabs-mode: nil; tab-width: 4; -*- */ + +/* Greenlet object interface */ + +#ifndef Py_GREENLETOBJECT_H +#define Py_GREENLETOBJECT_H + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* This is deprecated and undocumented. It does not change. */ +#define GREENLET_VERSION "1.0.0" + +#ifndef GREENLET_MODULE +#define implementation_ptr_t void* +#endif + +typedef struct _greenlet { + PyObject_HEAD + PyObject* weakreflist; + PyObject* dict; + implementation_ptr_t pimpl; +} PyGreenlet; + +#define PyGreenlet_Check(op) (op && PyObject_TypeCheck(op, &PyGreenlet_Type)) + + +/* C API functions */ + +/* Total number of symbols that are exported */ +#define PyGreenlet_API_pointers 12 + +#define PyGreenlet_Type_NUM 0 +#define PyExc_GreenletError_NUM 1 +#define PyExc_GreenletExit_NUM 2 + +#define PyGreenlet_New_NUM 3 +#define PyGreenlet_GetCurrent_NUM 4 +#define PyGreenlet_Throw_NUM 5 +#define PyGreenlet_Switch_NUM 6 +#define PyGreenlet_SetParent_NUM 7 + +#define PyGreenlet_MAIN_NUM 8 +#define PyGreenlet_STARTED_NUM 9 +#define PyGreenlet_ACTIVE_NUM 10 +#define PyGreenlet_GET_PARENT_NUM 11 + +#ifndef GREENLET_MODULE +/* This section is used by modules that uses the greenlet C API */ +static void** _PyGreenlet_API = NULL; + +# define PyGreenlet_Type \ + (*(PyTypeObject*)_PyGreenlet_API[PyGreenlet_Type_NUM]) + +# define PyExc_GreenletError \ + ((PyObject*)_PyGreenlet_API[PyExc_GreenletError_NUM]) + +# define PyExc_GreenletExit \ + ((PyObject*)_PyGreenlet_API[PyExc_GreenletExit_NUM]) + +/* + * PyGreenlet_New(PyObject *args) + * + * greenlet.greenlet(run, parent=None) + */ +# define PyGreenlet_New \ + (*(PyGreenlet * (*)(PyObject * run, PyGreenlet * parent)) \ + _PyGreenlet_API[PyGreenlet_New_NUM]) + +/* + * PyGreenlet_GetCurrent(void) + * + * greenlet.getcurrent() + */ +# define PyGreenlet_GetCurrent \ + (*(PyGreenlet * (*)(void)) _PyGreenlet_API[PyGreenlet_GetCurrent_NUM]) + +/* + * PyGreenlet_Throw( + * PyGreenlet *greenlet, + * PyObject *typ, + * PyObject *val, + * PyObject *tb) + * + * g.throw(...) + */ +# define PyGreenlet_Throw \ + (*(PyObject * (*)(PyGreenlet * self, \ + PyObject * typ, \ + PyObject * val, \ + PyObject * tb)) \ + _PyGreenlet_API[PyGreenlet_Throw_NUM]) + +/* + * PyGreenlet_Switch(PyGreenlet *greenlet, PyObject *args) + * + * g.switch(*args, **kwargs) + */ +# define PyGreenlet_Switch \ + (*(PyObject * \ + (*)(PyGreenlet * greenlet, PyObject * args, PyObject * kwargs)) \ + _PyGreenlet_API[PyGreenlet_Switch_NUM]) + +/* + * PyGreenlet_SetParent(PyObject *greenlet, PyObject *new_parent) + * + * g.parent = new_parent + */ +# define PyGreenlet_SetParent \ + (*(int (*)(PyGreenlet * greenlet, PyGreenlet * nparent)) \ + _PyGreenlet_API[PyGreenlet_SetParent_NUM]) + +/* + * PyGreenlet_GetParent(PyObject* greenlet) + * + * return greenlet.parent; + * + * This could return NULL even if there is no exception active. + * If it does not return NULL, you are responsible for decrementing the + * reference count. + */ +# define PyGreenlet_GetParent \ + (*(PyGreenlet* (*)(PyGreenlet*)) \ + _PyGreenlet_API[PyGreenlet_GET_PARENT_NUM]) + +/* + * deprecated, undocumented alias. + */ +# define PyGreenlet_GET_PARENT PyGreenlet_GetParent + +# define PyGreenlet_MAIN \ + (*(int (*)(PyGreenlet*)) \ + _PyGreenlet_API[PyGreenlet_MAIN_NUM]) + +# define PyGreenlet_STARTED \ + (*(int (*)(PyGreenlet*)) \ + _PyGreenlet_API[PyGreenlet_STARTED_NUM]) + +# define PyGreenlet_ACTIVE \ + (*(int (*)(PyGreenlet*)) \ + _PyGreenlet_API[PyGreenlet_ACTIVE_NUM]) + + + + +/* Macro that imports greenlet and initializes C API */ +/* NOTE: This has actually moved to ``greenlet._greenlet._C_API``, but we + keep the older definition to be sure older code that might have a copy of + the header still works. */ +# define PyGreenlet_Import() \ + { \ + _PyGreenlet_API = (void**)PyCapsule_Import("greenlet._C_API", 0); \ + } + +#endif /* GREENLET_MODULE */ + +#ifdef __cplusplus +} +#endif +#endif /* !Py_GREENLETOBJECT_H */ diff --git a/venv/lib/python3.11/site-packages/PIL/BdfFontFile.py b/venv/lib/python3.11/site-packages/PIL/BdfFontFile.py new file mode 100644 index 0000000..f175e2f --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/BdfFontFile.py @@ -0,0 +1,122 @@ +# +# The Python Imaging Library +# $Id$ +# +# bitmap distribution font (bdf) file parser +# +# history: +# 1996-05-16 fl created (as bdf2pil) +# 1997-08-25 fl converted to FontFile driver +# 2001-05-25 fl removed bogus __init__ call +# 2002-11-20 fl robustification (from Kevin Cazabon, Dmitry Vasiliev) +# 2003-04-22 fl more robustification (from Graham Dumpleton) +# +# Copyright (c) 1997-2003 by Secret Labs AB. +# Copyright (c) 1997-2003 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# + +""" +Parse X Bitmap Distribution Format (BDF) +""" +from __future__ import annotations + +from typing import BinaryIO + +from . import FontFile, Image + + +def bdf_char( + f: BinaryIO, +) -> ( + tuple[ + str, + int, + tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int]], + Image.Image, + ] + | None +): + # skip to STARTCHAR + while True: + s = f.readline() + if not s: + return None + if s.startswith(b"STARTCHAR"): + break + id = s[9:].strip().decode("ascii") + + # load symbol properties + props = {} + while True: + s = f.readline() + if not s or s.startswith(b"BITMAP"): + break + i = s.find(b" ") + props[s[:i].decode("ascii")] = s[i + 1 : -1].decode("ascii") + + # load bitmap + bitmap = bytearray() + while True: + s = f.readline() + if not s or s.startswith(b"ENDCHAR"): + break + bitmap += s[:-1] + + # The word BBX + # followed by the width in x (BBw), height in y (BBh), + # and x and y displacement (BBxoff0, BByoff0) + # of the lower left corner from the origin of the character. + width, height, x_disp, y_disp = (int(p) for p in props["BBX"].split()) + + # The word DWIDTH + # followed by the width in x and y of the character in device pixels. + dwx, dwy = (int(p) for p in props["DWIDTH"].split()) + + bbox = ( + (dwx, dwy), + (x_disp, -y_disp - height, width + x_disp, -y_disp), + (0, 0, width, height), + ) + + try: + im = Image.frombytes("1", (width, height), bitmap, "hex", "1") + except ValueError: + # deal with zero-width characters + im = Image.new("1", (width, height)) + + return id, int(props["ENCODING"]), bbox, im + + +class BdfFontFile(FontFile.FontFile): + """Font file plugin for the X11 BDF format.""" + + def __init__(self, fp: BinaryIO) -> None: + super().__init__() + + s = fp.readline() + if not s.startswith(b"STARTFONT 2.1"): + msg = "not a valid BDF file" + raise SyntaxError(msg) + + props = {} + comments = [] + + while True: + s = fp.readline() + if not s or s.startswith(b"ENDPROPERTIES"): + break + i = s.find(b" ") + props[s[:i].decode("ascii")] = s[i + 1 : -1].decode("ascii") + if s[:i] in [b"COMMENT", b"COPYRIGHT"]: + if s.find(b"LogicalFontDescription") < 0: + comments.append(s[i + 1 : -1].decode("ascii")) + + while True: + c = bdf_char(fp) + if not c: + break + id, ch, (xy, dst, src), im = c + if 0 <= ch < len(self.glyph): + self.glyph[ch] = xy, dst, src, im diff --git a/venv/lib/python3.11/site-packages/PIL/ContainerIO.py b/venv/lib/python3.11/site-packages/PIL/ContainerIO.py new file mode 100644 index 0000000..ec9e66c --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ContainerIO.py @@ -0,0 +1,173 @@ +# +# The Python Imaging Library. +# $Id$ +# +# a class to read from a container file +# +# History: +# 1995-06-18 fl Created +# 1995-09-07 fl Added readline(), readlines() +# +# Copyright (c) 1997-2001 by Secret Labs AB +# Copyright (c) 1995 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# +from __future__ import annotations + +import io +from collections.abc import Iterable +from typing import IO, AnyStr, NoReturn + + +class ContainerIO(IO[AnyStr]): + """ + A file object that provides read access to a part of an existing + file (for example a TAR file). + """ + + def __init__(self, file: IO[AnyStr], offset: int, length: int) -> None: + """ + Create file object. + + :param file: Existing file. + :param offset: Start of region, in bytes. + :param length: Size of region, in bytes. + """ + self.fh: IO[AnyStr] = file + self.pos = 0 + self.offset = offset + self.length = length + self.fh.seek(offset) + + ## + # Always false. + + def isatty(self) -> bool: + return False + + def seekable(self) -> bool: + return True + + def seek(self, offset: int, mode: int = io.SEEK_SET) -> int: + """ + Move file pointer. + + :param offset: Offset in bytes. + :param mode: Starting position. Use 0 for beginning of region, 1 + for current offset, and 2 for end of region. You cannot move + the pointer outside the defined region. + :returns: Offset from start of region, in bytes. + """ + if mode == 1: + self.pos = self.pos + offset + elif mode == 2: + self.pos = self.length + offset + else: + self.pos = offset + # clamp + self.pos = max(0, min(self.pos, self.length)) + self.fh.seek(self.offset + self.pos) + return self.pos + + def tell(self) -> int: + """ + Get current file pointer. + + :returns: Offset from start of region, in bytes. + """ + return self.pos + + def readable(self) -> bool: + return True + + def read(self, n: int = -1) -> AnyStr: + """ + Read data. + + :param n: Number of bytes to read. If omitted, zero or negative, + read until end of region. + :returns: An 8-bit string. + """ + if n > 0: + n = min(n, self.length - self.pos) + else: + n = self.length - self.pos + if n <= 0: # EOF + return b"" if "b" in self.fh.mode else "" # type: ignore[return-value] + self.pos = self.pos + n + return self.fh.read(n) + + def readline(self, n: int = -1) -> AnyStr: + """ + Read a line of text. + + :param n: Number of bytes to read. If omitted, zero or negative, + read until end of line. + :returns: An 8-bit string. + """ + s: AnyStr = b"" if "b" in self.fh.mode else "" # type: ignore[assignment] + newline_character = b"\n" if "b" in self.fh.mode else "\n" + while True: + c = self.read(1) + if not c: + break + s = s + c + if c == newline_character or len(s) == n: + break + return s + + def readlines(self, n: int | None = -1) -> list[AnyStr]: + """ + Read multiple lines of text. + + :param n: Number of lines to read. If omitted, zero, negative or None, + read until end of region. + :returns: A list of 8-bit strings. + """ + lines = [] + while True: + s = self.readline() + if not s: + break + lines.append(s) + if len(lines) == n: + break + return lines + + def writable(self) -> bool: + return False + + def write(self, b: AnyStr) -> NoReturn: + raise NotImplementedError() + + def writelines(self, lines: Iterable[AnyStr]) -> NoReturn: + raise NotImplementedError() + + def truncate(self, size: int | None = None) -> int: + raise NotImplementedError() + + def __enter__(self) -> ContainerIO[AnyStr]: + return self + + def __exit__(self, *args: object) -> None: + self.close() + + def __iter__(self) -> ContainerIO[AnyStr]: + return self + + def __next__(self) -> AnyStr: + line = self.readline() + if not line: + msg = "end of region" + raise StopIteration(msg) + return line + + def fileno(self) -> int: + return self.fh.fileno() + + def flush(self) -> None: + self.fh.flush() + + def close(self) -> None: + self.fh.close() diff --git a/venv/lib/python3.11/site-packages/PIL/ExifTags.py b/venv/lib/python3.11/site-packages/PIL/ExifTags.py new file mode 100644 index 0000000..2280d5c --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ExifTags.py @@ -0,0 +1,382 @@ +# +# The Python Imaging Library. +# $Id$ +# +# EXIF tags +# +# Copyright (c) 2003 by Secret Labs AB +# +# See the README file for information on usage and redistribution. +# + +""" +This module provides constants and clear-text names for various +well-known EXIF tags. +""" +from __future__ import annotations + +from enum import IntEnum + + +class Base(IntEnum): + # possibly incomplete + InteropIndex = 0x0001 + ProcessingSoftware = 0x000B + NewSubfileType = 0x00FE + SubfileType = 0x00FF + ImageWidth = 0x0100 + ImageLength = 0x0101 + BitsPerSample = 0x0102 + Compression = 0x0103 + PhotometricInterpretation = 0x0106 + Thresholding = 0x0107 + CellWidth = 0x0108 + CellLength = 0x0109 + FillOrder = 0x010A + DocumentName = 0x010D + ImageDescription = 0x010E + Make = 0x010F + Model = 0x0110 + StripOffsets = 0x0111 + Orientation = 0x0112 + SamplesPerPixel = 0x0115 + RowsPerStrip = 0x0116 + StripByteCounts = 0x0117 + MinSampleValue = 0x0118 + MaxSampleValue = 0x0119 + XResolution = 0x011A + YResolution = 0x011B + PlanarConfiguration = 0x011C + PageName = 0x011D + FreeOffsets = 0x0120 + FreeByteCounts = 0x0121 + GrayResponseUnit = 0x0122 + GrayResponseCurve = 0x0123 + T4Options = 0x0124 + T6Options = 0x0125 + ResolutionUnit = 0x0128 + PageNumber = 0x0129 + TransferFunction = 0x012D + Software = 0x0131 + DateTime = 0x0132 + Artist = 0x013B + HostComputer = 0x013C + Predictor = 0x013D + WhitePoint = 0x013E + PrimaryChromaticities = 0x013F + ColorMap = 0x0140 + HalftoneHints = 0x0141 + TileWidth = 0x0142 + TileLength = 0x0143 + TileOffsets = 0x0144 + TileByteCounts = 0x0145 + SubIFDs = 0x014A + InkSet = 0x014C + InkNames = 0x014D + NumberOfInks = 0x014E + DotRange = 0x0150 + TargetPrinter = 0x0151 + ExtraSamples = 0x0152 + SampleFormat = 0x0153 + SMinSampleValue = 0x0154 + SMaxSampleValue = 0x0155 + TransferRange = 0x0156 + ClipPath = 0x0157 + XClipPathUnits = 0x0158 + YClipPathUnits = 0x0159 + Indexed = 0x015A + JPEGTables = 0x015B + OPIProxy = 0x015F + JPEGProc = 0x0200 + JpegIFOffset = 0x0201 + JpegIFByteCount = 0x0202 + JpegRestartInterval = 0x0203 + JpegLosslessPredictors = 0x0205 + JpegPointTransforms = 0x0206 + JpegQTables = 0x0207 + JpegDCTables = 0x0208 + JpegACTables = 0x0209 + YCbCrCoefficients = 0x0211 + YCbCrSubSampling = 0x0212 + YCbCrPositioning = 0x0213 + ReferenceBlackWhite = 0x0214 + XMLPacket = 0x02BC + RelatedImageFileFormat = 0x1000 + RelatedImageWidth = 0x1001 + RelatedImageLength = 0x1002 + Rating = 0x4746 + RatingPercent = 0x4749 + ImageID = 0x800D + CFARepeatPatternDim = 0x828D + BatteryLevel = 0x828F + Copyright = 0x8298 + ExposureTime = 0x829A + FNumber = 0x829D + IPTCNAA = 0x83BB + ImageResources = 0x8649 + ExifOffset = 0x8769 + InterColorProfile = 0x8773 + ExposureProgram = 0x8822 + SpectralSensitivity = 0x8824 + GPSInfo = 0x8825 + ISOSpeedRatings = 0x8827 + OECF = 0x8828 + Interlace = 0x8829 + TimeZoneOffset = 0x882A + SelfTimerMode = 0x882B + SensitivityType = 0x8830 + StandardOutputSensitivity = 0x8831 + RecommendedExposureIndex = 0x8832 + ISOSpeed = 0x8833 + ISOSpeedLatitudeyyy = 0x8834 + ISOSpeedLatitudezzz = 0x8835 + ExifVersion = 0x9000 + DateTimeOriginal = 0x9003 + DateTimeDigitized = 0x9004 + OffsetTime = 0x9010 + OffsetTimeOriginal = 0x9011 + OffsetTimeDigitized = 0x9012 + ComponentsConfiguration = 0x9101 + CompressedBitsPerPixel = 0x9102 + ShutterSpeedValue = 0x9201 + ApertureValue = 0x9202 + BrightnessValue = 0x9203 + ExposureBiasValue = 0x9204 + MaxApertureValue = 0x9205 + SubjectDistance = 0x9206 + MeteringMode = 0x9207 + LightSource = 0x9208 + Flash = 0x9209 + FocalLength = 0x920A + Noise = 0x920D + ImageNumber = 0x9211 + SecurityClassification = 0x9212 + ImageHistory = 0x9213 + TIFFEPStandardID = 0x9216 + MakerNote = 0x927C + UserComment = 0x9286 + SubsecTime = 0x9290 + SubsecTimeOriginal = 0x9291 + SubsecTimeDigitized = 0x9292 + AmbientTemperature = 0x9400 + Humidity = 0x9401 + Pressure = 0x9402 + WaterDepth = 0x9403 + Acceleration = 0x9404 + CameraElevationAngle = 0x9405 + XPTitle = 0x9C9B + XPComment = 0x9C9C + XPAuthor = 0x9C9D + XPKeywords = 0x9C9E + XPSubject = 0x9C9F + FlashPixVersion = 0xA000 + ColorSpace = 0xA001 + ExifImageWidth = 0xA002 + ExifImageHeight = 0xA003 + RelatedSoundFile = 0xA004 + ExifInteroperabilityOffset = 0xA005 + FlashEnergy = 0xA20B + SpatialFrequencyResponse = 0xA20C + FocalPlaneXResolution = 0xA20E + FocalPlaneYResolution = 0xA20F + FocalPlaneResolutionUnit = 0xA210 + SubjectLocation = 0xA214 + ExposureIndex = 0xA215 + SensingMethod = 0xA217 + FileSource = 0xA300 + SceneType = 0xA301 + CFAPattern = 0xA302 + CustomRendered = 0xA401 + ExposureMode = 0xA402 + WhiteBalance = 0xA403 + DigitalZoomRatio = 0xA404 + FocalLengthIn35mmFilm = 0xA405 + SceneCaptureType = 0xA406 + GainControl = 0xA407 + Contrast = 0xA408 + Saturation = 0xA409 + Sharpness = 0xA40A + DeviceSettingDescription = 0xA40B + SubjectDistanceRange = 0xA40C + ImageUniqueID = 0xA420 + CameraOwnerName = 0xA430 + BodySerialNumber = 0xA431 + LensSpecification = 0xA432 + LensMake = 0xA433 + LensModel = 0xA434 + LensSerialNumber = 0xA435 + CompositeImage = 0xA460 + CompositeImageCount = 0xA461 + CompositeImageExposureTimes = 0xA462 + Gamma = 0xA500 + PrintImageMatching = 0xC4A5 + DNGVersion = 0xC612 + DNGBackwardVersion = 0xC613 + UniqueCameraModel = 0xC614 + LocalizedCameraModel = 0xC615 + CFAPlaneColor = 0xC616 + CFALayout = 0xC617 + LinearizationTable = 0xC618 + BlackLevelRepeatDim = 0xC619 + BlackLevel = 0xC61A + BlackLevelDeltaH = 0xC61B + BlackLevelDeltaV = 0xC61C + WhiteLevel = 0xC61D + DefaultScale = 0xC61E + DefaultCropOrigin = 0xC61F + DefaultCropSize = 0xC620 + ColorMatrix1 = 0xC621 + ColorMatrix2 = 0xC622 + CameraCalibration1 = 0xC623 + CameraCalibration2 = 0xC624 + ReductionMatrix1 = 0xC625 + ReductionMatrix2 = 0xC626 + AnalogBalance = 0xC627 + AsShotNeutral = 0xC628 + AsShotWhiteXY = 0xC629 + BaselineExposure = 0xC62A + BaselineNoise = 0xC62B + BaselineSharpness = 0xC62C + BayerGreenSplit = 0xC62D + LinearResponseLimit = 0xC62E + CameraSerialNumber = 0xC62F + LensInfo = 0xC630 + ChromaBlurRadius = 0xC631 + AntiAliasStrength = 0xC632 + ShadowScale = 0xC633 + DNGPrivateData = 0xC634 + MakerNoteSafety = 0xC635 + CalibrationIlluminant1 = 0xC65A + CalibrationIlluminant2 = 0xC65B + BestQualityScale = 0xC65C + RawDataUniqueID = 0xC65D + OriginalRawFileName = 0xC68B + OriginalRawFileData = 0xC68C + ActiveArea = 0xC68D + MaskedAreas = 0xC68E + AsShotICCProfile = 0xC68F + AsShotPreProfileMatrix = 0xC690 + CurrentICCProfile = 0xC691 + CurrentPreProfileMatrix = 0xC692 + ColorimetricReference = 0xC6BF + CameraCalibrationSignature = 0xC6F3 + ProfileCalibrationSignature = 0xC6F4 + AsShotProfileName = 0xC6F6 + NoiseReductionApplied = 0xC6F7 + ProfileName = 0xC6F8 + ProfileHueSatMapDims = 0xC6F9 + ProfileHueSatMapData1 = 0xC6FA + ProfileHueSatMapData2 = 0xC6FB + ProfileToneCurve = 0xC6FC + ProfileEmbedPolicy = 0xC6FD + ProfileCopyright = 0xC6FE + ForwardMatrix1 = 0xC714 + ForwardMatrix2 = 0xC715 + PreviewApplicationName = 0xC716 + PreviewApplicationVersion = 0xC717 + PreviewSettingsName = 0xC718 + PreviewSettingsDigest = 0xC719 + PreviewColorSpace = 0xC71A + PreviewDateTime = 0xC71B + RawImageDigest = 0xC71C + OriginalRawFileDigest = 0xC71D + SubTileBlockSize = 0xC71E + RowInterleaveFactor = 0xC71F + ProfileLookTableDims = 0xC725 + ProfileLookTableData = 0xC726 + OpcodeList1 = 0xC740 + OpcodeList2 = 0xC741 + OpcodeList3 = 0xC74E + NoiseProfile = 0xC761 + + +"""Maps EXIF tags to tag names.""" +TAGS = { + **{i.value: i.name for i in Base}, + 0x920C: "SpatialFrequencyResponse", + 0x9214: "SubjectLocation", + 0x9215: "ExposureIndex", + 0x828E: "CFAPattern", + 0x920B: "FlashEnergy", + 0x9216: "TIFF/EPStandardID", +} + + +class GPS(IntEnum): + GPSVersionID = 0x00 + GPSLatitudeRef = 0x01 + GPSLatitude = 0x02 + GPSLongitudeRef = 0x03 + GPSLongitude = 0x04 + GPSAltitudeRef = 0x05 + GPSAltitude = 0x06 + GPSTimeStamp = 0x07 + GPSSatellites = 0x08 + GPSStatus = 0x09 + GPSMeasureMode = 0x0A + GPSDOP = 0x0B + GPSSpeedRef = 0x0C + GPSSpeed = 0x0D + GPSTrackRef = 0x0E + GPSTrack = 0x0F + GPSImgDirectionRef = 0x10 + GPSImgDirection = 0x11 + GPSMapDatum = 0x12 + GPSDestLatitudeRef = 0x13 + GPSDestLatitude = 0x14 + GPSDestLongitudeRef = 0x15 + GPSDestLongitude = 0x16 + GPSDestBearingRef = 0x17 + GPSDestBearing = 0x18 + GPSDestDistanceRef = 0x19 + GPSDestDistance = 0x1A + GPSProcessingMethod = 0x1B + GPSAreaInformation = 0x1C + GPSDateStamp = 0x1D + GPSDifferential = 0x1E + GPSHPositioningError = 0x1F + + +"""Maps EXIF GPS tags to tag names.""" +GPSTAGS = {i.value: i.name for i in GPS} + + +class Interop(IntEnum): + InteropIndex = 0x0001 + InteropVersion = 0x0002 + RelatedImageFileFormat = 0x1000 + RelatedImageWidth = 0x1001 + RelatedImageHeight = 0x1002 + + +class IFD(IntEnum): + Exif = 0x8769 + GPSInfo = 0x8825 + MakerNote = 0x927C + Makernote = 0x927C # Deprecated + Interop = 0xA005 + IFD1 = -1 + + +class LightSource(IntEnum): + Unknown = 0x00 + Daylight = 0x01 + Fluorescent = 0x02 + Tungsten = 0x03 + Flash = 0x04 + Fine = 0x09 + Cloudy = 0x0A + Shade = 0x0B + DaylightFluorescent = 0x0C + DayWhiteFluorescent = 0x0D + CoolWhiteFluorescent = 0x0E + WhiteFluorescent = 0x0F + StandardLightA = 0x11 + StandardLightB = 0x12 + StandardLightC = 0x13 + D55 = 0x14 + D65 = 0x15 + D75 = 0x16 + D50 = 0x17 + ISO = 0x18 + Other = 0xFF diff --git a/venv/lib/python3.11/site-packages/PIL/FontFile.py b/venv/lib/python3.11/site-packages/PIL/FontFile.py new file mode 100644 index 0000000..1e0c1c1 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/FontFile.py @@ -0,0 +1,134 @@ +# +# The Python Imaging Library +# $Id$ +# +# base class for raster font file parsers +# +# history: +# 1997-06-05 fl created +# 1997-08-19 fl restrict image width +# +# Copyright (c) 1997-1998 by Secret Labs AB +# Copyright (c) 1997-1998 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# +from __future__ import annotations + +import os +from typing import BinaryIO + +from . import Image, _binary + +WIDTH = 800 + + +def puti16( + fp: BinaryIO, values: tuple[int, int, int, int, int, int, int, int, int, int] +) -> None: + """Write network order (big-endian) 16-bit sequence""" + for v in values: + if v < 0: + v += 65536 + fp.write(_binary.o16be(v)) + + +class FontFile: + """Base class for raster font file handlers.""" + + bitmap: Image.Image | None = None + + def __init__(self) -> None: + self.info: dict[bytes, bytes | int] = {} + self.glyph: list[ + tuple[ + tuple[int, int], + tuple[int, int, int, int], + tuple[int, int, int, int], + Image.Image, + ] + | None + ] = [None] * 256 + + def __getitem__(self, ix: int) -> ( + tuple[ + tuple[int, int], + tuple[int, int, int, int], + tuple[int, int, int, int], + Image.Image, + ] + | None + ): + return self.glyph[ix] + + def compile(self) -> None: + """Create metrics and bitmap""" + + if self.bitmap: + return + + # create bitmap large enough to hold all data + h = w = maxwidth = 0 + lines = 1 + for glyph in self.glyph: + if glyph: + d, dst, src, im = glyph + h = max(h, src[3] - src[1]) + w = w + (src[2] - src[0]) + if w > WIDTH: + lines += 1 + w = src[2] - src[0] + maxwidth = max(maxwidth, w) + + xsize = maxwidth + ysize = lines * h + + if xsize == 0 and ysize == 0: + return + + self.ysize = h + + # paste glyphs into bitmap + self.bitmap = Image.new("1", (xsize, ysize)) + self.metrics: list[ + tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int]] + | None + ] = [None] * 256 + x = y = 0 + for i in range(256): + glyph = self[i] + if glyph: + d, dst, src, im = glyph + xx = src[2] - src[0] + x0, y0 = x, y + x = x + xx + if x > WIDTH: + x, y = 0, y + h + x0, y0 = x, y + x = xx + s = src[0] + x0, src[1] + y0, src[2] + x0, src[3] + y0 + self.bitmap.paste(im.crop(src), s) + self.metrics[i] = d, dst, s + + def save(self, filename: str) -> None: + """Save font""" + + self.compile() + + # font data + if not self.bitmap: + msg = "No bitmap created" + raise ValueError(msg) + self.bitmap.save(os.path.splitext(filename)[0] + ".pbm", "PNG") + + # font metrics + with open(os.path.splitext(filename)[0] + ".pil", "wb") as fp: + fp.write(b"PILfont\n") + fp.write(f";;;;;;{self.ysize};\n".encode("ascii")) # HACK!!! + fp.write(b"DATA\n") + for id in range(256): + m = self.metrics[id] + if not m: + puti16(fp, (0,) * 10) + else: + puti16(fp, m[0] + m[1] + m[2]) diff --git a/venv/lib/python3.11/site-packages/PIL/GdImageFile.py b/venv/lib/python3.11/site-packages/PIL/GdImageFile.py new file mode 100644 index 0000000..891225c --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/GdImageFile.py @@ -0,0 +1,102 @@ +# +# The Python Imaging Library. +# $Id$ +# +# GD file handling +# +# History: +# 1996-04-12 fl Created +# +# Copyright (c) 1997 by Secret Labs AB. +# Copyright (c) 1996 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# + + +""" +.. note:: + This format cannot be automatically recognized, so the + class is not registered for use with :py:func:`PIL.Image.open()`. To open a + gd file, use the :py:func:`PIL.GdImageFile.open()` function instead. + +.. warning:: + THE GD FORMAT IS NOT DESIGNED FOR DATA INTERCHANGE. This + implementation is provided for convenience and demonstrational + purposes only. +""" +from __future__ import annotations + +from typing import IO + +from . import ImageFile, ImagePalette, UnidentifiedImageError +from ._binary import i16be as i16 +from ._binary import i32be as i32 +from ._typing import StrOrBytesPath + + +class GdImageFile(ImageFile.ImageFile): + """ + Image plugin for the GD uncompressed format. Note that this format + is not supported by the standard :py:func:`PIL.Image.open()` function. To use + this plugin, you have to import the :py:mod:`PIL.GdImageFile` module and + use the :py:func:`PIL.GdImageFile.open()` function. + """ + + format = "GD" + format_description = "GD uncompressed images" + + def _open(self) -> None: + # Header + assert self.fp is not None + + s = self.fp.read(1037) + + if i16(s) not in [65534, 65535]: + msg = "Not a valid GD 2.x .gd file" + raise SyntaxError(msg) + + self._mode = "P" + self._size = i16(s, 2), i16(s, 4) + + true_color = s[6] + true_color_offset = 2 if true_color else 0 + + # transparency index + tindex = i32(s, 7 + true_color_offset) + if tindex < 256: + self.info["transparency"] = tindex + + self.palette = ImagePalette.raw( + "RGBX", s[7 + true_color_offset + 6 : 7 + true_color_offset + 6 + 256 * 4] + ) + + self.tile = [ + ImageFile._Tile( + "raw", + (0, 0) + self.size, + 7 + true_color_offset + 6 + 256 * 4, + "L", + ) + ] + + +def open(fp: StrOrBytesPath | IO[bytes], mode: str = "r") -> GdImageFile: + """ + Load texture from a GD image file. + + :param fp: GD file name, or an opened file handle. + :param mode: Optional mode. In this version, if the mode argument + is given, it must be "r". + :returns: An image instance. + :raises OSError: If the image could not be read. + """ + if mode != "r": + msg = "bad mode" + raise ValueError(msg) + + try: + return GdImageFile(fp) + except SyntaxError as e: + msg = "cannot identify this image file" + raise UnidentifiedImageError(msg) from e diff --git a/venv/lib/python3.11/site-packages/PIL/Image.py b/venv/lib/python3.11/site-packages/PIL/Image.py new file mode 100644 index 0000000..9d50812 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/Image.py @@ -0,0 +1,4227 @@ +# +# The Python Imaging Library. +# $Id$ +# +# the Image class wrapper +# +# partial release history: +# 1995-09-09 fl Created +# 1996-03-11 fl PIL release 0.0 (proof of concept) +# 1996-04-30 fl PIL release 0.1b1 +# 1999-07-28 fl PIL release 1.0 final +# 2000-06-07 fl PIL release 1.1 +# 2000-10-20 fl PIL release 1.1.1 +# 2001-05-07 fl PIL release 1.1.2 +# 2002-03-15 fl PIL release 1.1.3 +# 2003-05-10 fl PIL release 1.1.4 +# 2005-03-28 fl PIL release 1.1.5 +# 2006-12-02 fl PIL release 1.1.6 +# 2009-11-15 fl PIL release 1.1.7 +# +# Copyright (c) 1997-2009 by Secret Labs AB. All rights reserved. +# Copyright (c) 1995-2009 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# + +from __future__ import annotations + +import abc +import atexit +import builtins +import io +import logging +import math +import os +import re +import struct +import sys +import tempfile +import warnings +from collections.abc import MutableMapping +from enum import IntEnum +from typing import IO, Protocol, cast + +# VERSION was removed in Pillow 6.0.0. +# PILLOW_VERSION was removed in Pillow 9.0.0. +# Use __version__ instead. +from . import ( + ExifTags, + ImageMode, + TiffTags, + UnidentifiedImageError, + __version__, + _plugins, +) +from ._binary import i32le, o32be, o32le +from ._deprecate import deprecate +from ._util import DeferredError, is_path + +ElementTree: ModuleType | None +try: + from defusedxml import ElementTree +except ImportError: + ElementTree = None + +TYPE_CHECKING = False +if TYPE_CHECKING: + from collections.abc import Callable, Iterator, Sequence + from types import ModuleType + from typing import Any, Literal + +logger = logging.getLogger(__name__) + + +class DecompressionBombWarning(RuntimeWarning): + pass + + +class DecompressionBombError(Exception): + pass + + +WARN_POSSIBLE_FORMATS: bool = False + +# Limit to around a quarter gigabyte for a 24-bit (3 bpp) image +MAX_IMAGE_PIXELS: int | None = int(1024 * 1024 * 1024 // 4 // 3) + + +try: + # If the _imaging C module is not present, Pillow will not load. + # Note that other modules should not refer to _imaging directly; + # import Image and use the Image.core variable instead. + # Also note that Image.core is not a publicly documented interface, + # and should be considered private and subject to change. + from . import _imaging as core + + if __version__ != getattr(core, "PILLOW_VERSION", None): + msg = ( + "The _imaging extension was built for another version of Pillow or PIL:\n" + f"Core version: {getattr(core, 'PILLOW_VERSION', None)}\n" + f"Pillow version: {__version__}" + ) + raise ImportError(msg) + +except ImportError as v: + # Explanations for ways that we know we might have an import error + if str(v).startswith("Module use of python"): + # The _imaging C module is present, but not compiled for + # the right version (windows only). Print a warning, if + # possible. + warnings.warn( + "The _imaging extension was built for another version of Python.", + RuntimeWarning, + ) + elif str(v).startswith("The _imaging extension"): + warnings.warn(str(v), RuntimeWarning) + # Fail here anyway. Don't let people run with a mostly broken Pillow. + # see docs/porting.rst + raise + + +# +# Constants + + +# transpose +class Transpose(IntEnum): + FLIP_LEFT_RIGHT = 0 + FLIP_TOP_BOTTOM = 1 + ROTATE_90 = 2 + ROTATE_180 = 3 + ROTATE_270 = 4 + TRANSPOSE = 5 + TRANSVERSE = 6 + + +# transforms (also defined in Imaging.h) +class Transform(IntEnum): + AFFINE = 0 + EXTENT = 1 + PERSPECTIVE = 2 + QUAD = 3 + MESH = 4 + + +# resampling filters (also defined in Imaging.h) +class Resampling(IntEnum): + NEAREST = 0 + BOX = 4 + BILINEAR = 2 + HAMMING = 5 + BICUBIC = 3 + LANCZOS = 1 + + +_filters_support = { + Resampling.BOX: 0.5, + Resampling.BILINEAR: 1.0, + Resampling.HAMMING: 1.0, + Resampling.BICUBIC: 2.0, + Resampling.LANCZOS: 3.0, +} + + +# dithers +class Dither(IntEnum): + NONE = 0 + ORDERED = 1 # Not yet implemented + RASTERIZE = 2 # Not yet implemented + FLOYDSTEINBERG = 3 # default + + +# palettes/quantizers +class Palette(IntEnum): + WEB = 0 + ADAPTIVE = 1 + + +class Quantize(IntEnum): + MEDIANCUT = 0 + MAXCOVERAGE = 1 + FASTOCTREE = 2 + LIBIMAGEQUANT = 3 + + +module = sys.modules[__name__] +for enum in (Transpose, Transform, Resampling, Dither, Palette, Quantize): + for item in enum: + setattr(module, item.name, item.value) + + +if hasattr(core, "DEFAULT_STRATEGY"): + DEFAULT_STRATEGY = core.DEFAULT_STRATEGY + FILTERED = core.FILTERED + HUFFMAN_ONLY = core.HUFFMAN_ONLY + RLE = core.RLE + FIXED = core.FIXED + + +# -------------------------------------------------------------------- +# Registries + +TYPE_CHECKING = False +if TYPE_CHECKING: + import mmap + from xml.etree.ElementTree import Element + + from IPython.lib.pretty import PrettyPrinter + + from . import ImageFile, ImageFilter, ImagePalette, ImageQt, TiffImagePlugin + from ._typing import CapsuleType, NumpyArray, StrOrBytesPath +ID: list[str] = [] +OPEN: dict[ + str, + tuple[ + Callable[[IO[bytes], str | bytes], ImageFile.ImageFile], + Callable[[bytes], bool | str] | None, + ], +] = {} +MIME: dict[str, str] = {} +SAVE: dict[str, Callable[[Image, IO[bytes], str | bytes], None]] = {} +SAVE_ALL: dict[str, Callable[[Image, IO[bytes], str | bytes], None]] = {} +EXTENSION: dict[str, str] = {} +DECODERS: dict[str, type[ImageFile.PyDecoder]] = {} +ENCODERS: dict[str, type[ImageFile.PyEncoder]] = {} + +# -------------------------------------------------------------------- +# Modes + +_ENDIAN = "<" if sys.byteorder == "little" else ">" + + +def _conv_type_shape(im: Image) -> tuple[tuple[int, ...], str]: + m = ImageMode.getmode(im.mode) + shape: tuple[int, ...] = (im.height, im.width) + extra = len(m.bands) + if extra != 1: + shape += (extra,) + return shape, m.typestr + + +MODES = [ + "1", + "CMYK", + "F", + "HSV", + "I", + "I;16", + "I;16B", + "I;16L", + "I;16N", + "L", + "LA", + "La", + "LAB", + "P", + "PA", + "RGB", + "RGBA", + "RGBa", + "RGBX", + "YCbCr", +] + +# raw modes that may be memory mapped. NOTE: if you change this, you +# may have to modify the stride calculation in map.c too! +_MAPMODES = ("L", "P", "RGBX", "RGBA", "CMYK", "I;16", "I;16L", "I;16B") + + +def getmodebase(mode: str) -> str: + """ + Gets the "base" mode for given mode. This function returns "L" for + images that contain grayscale data, and "RGB" for images that + contain color data. + + :param mode: Input mode. + :returns: "L" or "RGB". + :exception KeyError: If the input mode was not a standard mode. + """ + return ImageMode.getmode(mode).basemode + + +def getmodetype(mode: str) -> str: + """ + Gets the storage type mode. Given a mode, this function returns a + single-layer mode suitable for storing individual bands. + + :param mode: Input mode. + :returns: "L", "I", or "F". + :exception KeyError: If the input mode was not a standard mode. + """ + return ImageMode.getmode(mode).basetype + + +def getmodebandnames(mode: str) -> tuple[str, ...]: + """ + Gets a list of individual band names. Given a mode, this function returns + a tuple containing the names of individual bands (use + :py:method:`~PIL.Image.getmodetype` to get the mode used to store each + individual band. + + :param mode: Input mode. + :returns: A tuple containing band names. The length of the tuple + gives the number of bands in an image of the given mode. + :exception KeyError: If the input mode was not a standard mode. + """ + return ImageMode.getmode(mode).bands + + +def getmodebands(mode: str) -> int: + """ + Gets the number of individual bands for this mode. + + :param mode: Input mode. + :returns: The number of bands in this mode. + :exception KeyError: If the input mode was not a standard mode. + """ + return len(ImageMode.getmode(mode).bands) + + +# -------------------------------------------------------------------- +# Helpers + +_initialized = 0 + + +def preinit() -> None: + """ + Explicitly loads BMP, GIF, JPEG, PPM and PPM file format drivers. + + It is called when opening or saving images. + """ + + global _initialized + if _initialized >= 1: + return + + try: + from . import BmpImagePlugin + + assert BmpImagePlugin + except ImportError: + pass + try: + from . import GifImagePlugin + + assert GifImagePlugin + except ImportError: + pass + try: + from . import JpegImagePlugin + + assert JpegImagePlugin + except ImportError: + pass + try: + from . import PpmImagePlugin + + assert PpmImagePlugin + except ImportError: + pass + try: + from . import PngImagePlugin + + assert PngImagePlugin + except ImportError: + pass + + _initialized = 1 + + +def init() -> bool: + """ + Explicitly initializes the Python Imaging Library. This function + loads all available file format drivers. + + It is called when opening or saving images if :py:meth:`~preinit()` is + insufficient, and by :py:meth:`~PIL.features.pilinfo`. + """ + + global _initialized + if _initialized >= 2: + return False + + parent_name = __name__.rpartition(".")[0] + for plugin in _plugins: + try: + logger.debug("Importing %s", plugin) + __import__(f"{parent_name}.{plugin}", globals(), locals(), []) + except ImportError as e: + logger.debug("Image: failed to import %s: %s", plugin, e) + + if OPEN or SAVE: + _initialized = 2 + return True + return False + + +# -------------------------------------------------------------------- +# Codec factories (used by tobytes/frombytes and ImageFile.load) + + +def _getdecoder( + mode: str, decoder_name: str, args: Any, extra: tuple[Any, ...] = () +) -> core.ImagingDecoder | ImageFile.PyDecoder: + # tweak arguments + if args is None: + args = () + elif not isinstance(args, tuple): + args = (args,) + + try: + decoder = DECODERS[decoder_name] + except KeyError: + pass + else: + return decoder(mode, *args + extra) + + try: + # get decoder + decoder = getattr(core, f"{decoder_name}_decoder") + except AttributeError as e: + msg = f"decoder {decoder_name} not available" + raise OSError(msg) from e + return decoder(mode, *args + extra) + + +def _getencoder( + mode: str, encoder_name: str, args: Any, extra: tuple[Any, ...] = () +) -> core.ImagingEncoder | ImageFile.PyEncoder: + # tweak arguments + if args is None: + args = () + elif not isinstance(args, tuple): + args = (args,) + + try: + encoder = ENCODERS[encoder_name] + except KeyError: + pass + else: + return encoder(mode, *args + extra) + + try: + # get encoder + encoder = getattr(core, f"{encoder_name}_encoder") + except AttributeError as e: + msg = f"encoder {encoder_name} not available" + raise OSError(msg) from e + return encoder(mode, *args + extra) + + +# -------------------------------------------------------------------- +# Simple expression analyzer + + +class ImagePointTransform: + """ + Used with :py:meth:`~PIL.Image.Image.point` for single band images with more than + 8 bits, this represents an affine transformation, where the value is multiplied by + ``scale`` and ``offset`` is added. + """ + + def __init__(self, scale: float, offset: float) -> None: + self.scale = scale + self.offset = offset + + def __neg__(self) -> ImagePointTransform: + return ImagePointTransform(-self.scale, -self.offset) + + def __add__(self, other: ImagePointTransform | float) -> ImagePointTransform: + if isinstance(other, ImagePointTransform): + return ImagePointTransform( + self.scale + other.scale, self.offset + other.offset + ) + return ImagePointTransform(self.scale, self.offset + other) + + __radd__ = __add__ + + def __sub__(self, other: ImagePointTransform | float) -> ImagePointTransform: + return self + -other + + def __rsub__(self, other: ImagePointTransform | float) -> ImagePointTransform: + return other + -self + + def __mul__(self, other: ImagePointTransform | float) -> ImagePointTransform: + if isinstance(other, ImagePointTransform): + return NotImplemented + return ImagePointTransform(self.scale * other, self.offset * other) + + __rmul__ = __mul__ + + def __truediv__(self, other: ImagePointTransform | float) -> ImagePointTransform: + if isinstance(other, ImagePointTransform): + return NotImplemented + return ImagePointTransform(self.scale / other, self.offset / other) + + +def _getscaleoffset( + expr: Callable[[ImagePointTransform], ImagePointTransform | float], +) -> tuple[float, float]: + a = expr(ImagePointTransform(1, 0)) + return (a.scale, a.offset) if isinstance(a, ImagePointTransform) else (0, a) + + +# -------------------------------------------------------------------- +# Implementation wrapper + + +class SupportsGetData(Protocol): + def getdata( + self, + ) -> tuple[Transform, Sequence[int]]: ... + + +class Image: + """ + This class represents an image object. To create + :py:class:`~PIL.Image.Image` objects, use the appropriate factory + functions. There's hardly ever any reason to call the Image constructor + directly. + + * :py:func:`~PIL.Image.open` + * :py:func:`~PIL.Image.new` + * :py:func:`~PIL.Image.frombytes` + """ + + format: str | None = None + format_description: str | None = None + _close_exclusive_fp_after_loading = True + + def __init__(self) -> None: + # FIXME: take "new" parameters / other image? + self._im: core.ImagingCore | DeferredError | None = None + self._mode = "" + self._size = (0, 0) + self.palette: ImagePalette.ImagePalette | None = None + self.info: dict[str | tuple[int, int], Any] = {} + self.readonly = 0 + self._exif: Exif | None = None + + @property + def im(self) -> core.ImagingCore: + if isinstance(self._im, DeferredError): + raise self._im.ex + assert self._im is not None + return self._im + + @im.setter + def im(self, im: core.ImagingCore) -> None: + self._im = im + + @property + def width(self) -> int: + return self.size[0] + + @property + def height(self) -> int: + return self.size[1] + + @property + def size(self) -> tuple[int, int]: + return self._size + + @property + def mode(self) -> str: + return self._mode + + @property + def readonly(self) -> int: + return (self._im and self._im.readonly) or self._readonly + + @readonly.setter + def readonly(self, readonly: int) -> None: + self._readonly = readonly + + def _new(self, im: core.ImagingCore) -> Image: + new = Image() + new.im = im + new._mode = im.mode + new._size = im.size + if im.mode in ("P", "PA"): + if self.palette: + new.palette = self.palette.copy() + else: + from . import ImagePalette + + new.palette = ImagePalette.ImagePalette() + new.info = self.info.copy() + return new + + # Context manager support + def __enter__(self): + return self + + def __exit__(self, *args): + from . import ImageFile + + if isinstance(self, ImageFile.ImageFile): + if getattr(self, "_exclusive_fp", False): + self._close_fp() + self.fp = None + + def close(self) -> None: + """ + This operation will destroy the image core and release its memory. + The image data will be unusable afterward. + + This function is required to close images that have multiple frames or + have not had their file read and closed by the + :py:meth:`~PIL.Image.Image.load` method. See :ref:`file-handling` for + more information. + """ + if getattr(self, "map", None): + if sys.platform == "win32" and hasattr(sys, "pypy_version_info"): + self.map.close() + self.map: mmap.mmap | None = None + + # Instead of simply setting to None, we're setting up a + # deferred error that will better explain that the core image + # object is gone. + self._im = DeferredError(ValueError("Operation on closed image")) + + def _copy(self) -> None: + self.load() + self.im = self.im.copy() + self.readonly = 0 + + def _ensure_mutable(self) -> None: + if self.readonly: + self._copy() + else: + self.load() + + def _dump( + self, file: str | None = None, format: str | None = None, **options: Any + ) -> str: + suffix = "" + if format: + suffix = f".{format}" + + if not file: + f, filename = tempfile.mkstemp(suffix) + os.close(f) + else: + filename = file + if not filename.endswith(suffix): + filename = filename + suffix + + self.load() + + if not format or format == "PPM": + self.im.save_ppm(filename) + else: + self.save(filename, format, **options) + + return filename + + def __eq__(self, other: object) -> bool: + if self.__class__ is not other.__class__: + return False + assert isinstance(other, Image) + return ( + self.mode == other.mode + and self.size == other.size + and self.info == other.info + and self.getpalette() == other.getpalette() + and self.tobytes() == other.tobytes() + ) + + def __repr__(self) -> str: + return ( + f"<{self.__class__.__module__}.{self.__class__.__name__} " + f"image mode={self.mode} size={self.size[0]}x{self.size[1]} " + f"at 0x{id(self):X}>" + ) + + def _repr_pretty_(self, p: PrettyPrinter, cycle: bool) -> None: + """IPython plain text display support""" + + # Same as __repr__ but without unpredictable id(self), + # to keep Jupyter notebook `text/plain` output stable. + p.text( + f"<{self.__class__.__module__}.{self.__class__.__name__} " + f"image mode={self.mode} size={self.size[0]}x{self.size[1]}>" + ) + + def _repr_image(self, image_format: str, **kwargs: Any) -> bytes | None: + """Helper function for iPython display hook. + + :param image_format: Image format. + :returns: image as bytes, saved into the given format. + """ + b = io.BytesIO() + try: + self.save(b, image_format, **kwargs) + except Exception: + return None + return b.getvalue() + + def _repr_png_(self) -> bytes | None: + """iPython display hook support for PNG format. + + :returns: PNG version of the image as bytes + """ + return self._repr_image("PNG", compress_level=1) + + def _repr_jpeg_(self) -> bytes | None: + """iPython display hook support for JPEG format. + + :returns: JPEG version of the image as bytes + """ + return self._repr_image("JPEG") + + @property + def __array_interface__(self) -> dict[str, str | bytes | int | tuple[int, ...]]: + # numpy array interface support + new: dict[str, str | bytes | int | tuple[int, ...]] = {"version": 3} + if self.mode == "1": + # Binary images need to be extended from bits to bytes + # See: https://github.com/python-pillow/Pillow/issues/350 + new["data"] = self.tobytes("raw", "L") + else: + new["data"] = self.tobytes() + new["shape"], new["typestr"] = _conv_type_shape(self) + return new + + def __arrow_c_schema__(self) -> object: + self.load() + return self.im.__arrow_c_schema__() + + def __arrow_c_array__( + self, requested_schema: object | None = None + ) -> tuple[object, object]: + self.load() + return (self.im.__arrow_c_schema__(), self.im.__arrow_c_array__()) + + def __getstate__(self) -> list[Any]: + im_data = self.tobytes() # load image first + return [self.info, self.mode, self.size, self.getpalette(), im_data] + + def __setstate__(self, state: list[Any]) -> None: + Image.__init__(self) + info, mode, size, palette, data = state[:5] + self.info = info + self._mode = mode + self._size = size + self.im = core.new(mode, size) + if mode in ("L", "LA", "P", "PA") and palette: + self.putpalette(palette) + self.frombytes(data) + + def tobytes(self, encoder_name: str = "raw", *args: Any) -> bytes: + """ + Return image as a bytes object. + + .. warning:: + + This method returns raw image data derived from Pillow's internal + storage. For compressed image data (e.g. PNG, JPEG) use + :meth:`~.save`, with a BytesIO parameter for in-memory data. + + :param encoder_name: What encoder to use. + + The default is to use the standard "raw" encoder. + To see how this packs pixel data into the returned + bytes, see :file:`libImaging/Pack.c`. + + A list of C encoders can be seen under codecs + section of the function array in + :file:`_imaging.c`. Python encoders are registered + within the relevant plugins. + :param args: Extra arguments to the encoder. + :returns: A :py:class:`bytes` object. + """ + + encoder_args: Any = args + if len(encoder_args) == 1 and isinstance(encoder_args[0], tuple): + # may pass tuple instead of argument list + encoder_args = encoder_args[0] + + if encoder_name == "raw" and encoder_args == (): + encoder_args = self.mode + + self.load() + + if self.width == 0 or self.height == 0: + return b"" + + # unpack data + e = _getencoder(self.mode, encoder_name, encoder_args) + e.setimage(self.im) + + from . import ImageFile + + bufsize = max(ImageFile.MAXBLOCK, self.size[0] * 4) # see RawEncode.c + + output = [] + while True: + bytes_consumed, errcode, data = e.encode(bufsize) + output.append(data) + if errcode: + break + if errcode < 0: + msg = f"encoder error {errcode} in tobytes" + raise RuntimeError(msg) + + return b"".join(output) + + def tobitmap(self, name: str = "image") -> bytes: + """ + Returns the image converted to an X11 bitmap. + + .. note:: This method only works for mode "1" images. + + :param name: The name prefix to use for the bitmap variables. + :returns: A string containing an X11 bitmap. + :raises ValueError: If the mode is not "1" + """ + + self.load() + if self.mode != "1": + msg = "not a bitmap" + raise ValueError(msg) + data = self.tobytes("xbm") + return b"".join( + [ + f"#define {name}_width {self.size[0]}\n".encode("ascii"), + f"#define {name}_height {self.size[1]}\n".encode("ascii"), + f"static char {name}_bits[] = {{\n".encode("ascii"), + data, + b"};", + ] + ) + + def frombytes( + self, + data: bytes | bytearray | SupportsArrayInterface, + decoder_name: str = "raw", + *args: Any, + ) -> None: + """ + Loads this image with pixel data from a bytes object. + + This method is similar to the :py:func:`~PIL.Image.frombytes` function, + but loads data into this image instead of creating a new image object. + """ + + if self.width == 0 or self.height == 0: + return + + decoder_args: Any = args + if len(decoder_args) == 1 and isinstance(decoder_args[0], tuple): + # may pass tuple instead of argument list + decoder_args = decoder_args[0] + + # default format + if decoder_name == "raw" and decoder_args == (): + decoder_args = self.mode + + # unpack data + d = _getdecoder(self.mode, decoder_name, decoder_args) + d.setimage(self.im) + s = d.decode(data) + + if s[0] >= 0: + msg = "not enough image data" + raise ValueError(msg) + if s[1] != 0: + msg = "cannot decode image data" + raise ValueError(msg) + + def load(self) -> core.PixelAccess | None: + """ + Allocates storage for the image and loads the pixel data. In + normal cases, you don't need to call this method, since the + Image class automatically loads an opened image when it is + accessed for the first time. + + If the file associated with the image was opened by Pillow, then this + method will close it. The exception to this is if the image has + multiple frames, in which case the file will be left open for seek + operations. See :ref:`file-handling` for more information. + + :returns: An image access object. + :rtype: :py:class:`.PixelAccess` + """ + if self._im is not None and self.palette and self.palette.dirty: + # realize palette + mode, arr = self.palette.getdata() + self.im.putpalette(self.palette.mode, mode, arr) + self.palette.dirty = 0 + self.palette.rawmode = None + if "transparency" in self.info and mode in ("LA", "PA"): + if isinstance(self.info["transparency"], int): + self.im.putpalettealpha(self.info["transparency"], 0) + else: + self.im.putpalettealphas(self.info["transparency"]) + self.palette.mode = "RGBA" + else: + self.palette.palette = self.im.getpalette( + self.palette.mode, self.palette.mode + ) + + if self._im is not None: + return self.im.pixel_access(self.readonly) + return None + + def verify(self) -> None: + """ + Verifies the contents of a file. For data read from a file, this + method attempts to determine if the file is broken, without + actually decoding the image data. If this method finds any + problems, it raises suitable exceptions. If you need to load + the image after using this method, you must reopen the image + file. + """ + pass + + def convert( + self, + mode: str | None = None, + matrix: tuple[float, ...] | None = None, + dither: Dither | None = None, + palette: Palette = Palette.WEB, + colors: int = 256, + ) -> Image: + """ + Returns a converted copy of this image. For the "P" mode, this + method translates pixels through the palette. If mode is + omitted, a mode is chosen so that all information in the image + and the palette can be represented without a palette. + + This supports all possible conversions between "L", "RGB" and "CMYK". The + ``matrix`` argument only supports "L" and "RGB". + + When translating a color image to grayscale (mode "L"), + the library uses the ITU-R 601-2 luma transform:: + + L = R * 299/1000 + G * 587/1000 + B * 114/1000 + + The default method of converting a grayscale ("L") or "RGB" + image into a bilevel (mode "1") image uses Floyd-Steinberg + dither to approximate the original image luminosity levels. If + dither is ``None``, all values larger than 127 are set to 255 (white), + all other values to 0 (black). To use other thresholds, use the + :py:meth:`~PIL.Image.Image.point` method. + + When converting from "RGBA" to "P" without a ``matrix`` argument, + this passes the operation to :py:meth:`~PIL.Image.Image.quantize`, + and ``dither`` and ``palette`` are ignored. + + When converting from "PA", if an "RGBA" palette is present, the alpha + channel from the image will be used instead of the values from the palette. + + :param mode: The requested mode. See: :ref:`concept-modes`. + :param matrix: An optional conversion matrix. If given, this + should be 4- or 12-tuple containing floating point values. + :param dither: Dithering method, used when converting from + mode "RGB" to "P" or from "RGB" or "L" to "1". + Available methods are :data:`Dither.NONE` or :data:`Dither.FLOYDSTEINBERG` + (default). Note that this is not used when ``matrix`` is supplied. + :param palette: Palette to use when converting from mode "RGB" + to "P". Available palettes are :data:`Palette.WEB` or + :data:`Palette.ADAPTIVE`. + :param colors: Number of colors to use for the :data:`Palette.ADAPTIVE` + palette. Defaults to 256. + :rtype: :py:class:`~PIL.Image.Image` + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + self.load() + + has_transparency = "transparency" in self.info + if not mode and self.mode == "P": + # determine default mode + if self.palette: + mode = self.palette.mode + else: + mode = "RGB" + if mode == "RGB" and has_transparency: + mode = "RGBA" + if not mode or (mode == self.mode and not matrix): + return self.copy() + + if matrix: + # matrix conversion + if mode not in ("L", "RGB"): + msg = "illegal conversion" + raise ValueError(msg) + im = self.im.convert_matrix(mode, matrix) + new_im = self._new(im) + if has_transparency and self.im.bands == 3: + transparency = new_im.info["transparency"] + + def convert_transparency( + m: tuple[float, ...], v: tuple[int, int, int] + ) -> int: + value = m[0] * v[0] + m[1] * v[1] + m[2] * v[2] + m[3] * 0.5 + return max(0, min(255, int(value))) + + if mode == "L": + transparency = convert_transparency(matrix, transparency) + elif len(mode) == 3: + transparency = tuple( + convert_transparency(matrix[i * 4 : i * 4 + 4], transparency) + for i in range(len(transparency)) + ) + new_im.info["transparency"] = transparency + return new_im + + if self.mode == "RGBA": + if mode == "P": + return self.quantize(colors) + elif mode == "PA": + r, g, b, a = self.split() + rgb = merge("RGB", (r, g, b)) + p = rgb.quantize(colors) + return merge("PA", (p, a)) + + trns = None + delete_trns = False + # transparency handling + if has_transparency: + if (self.mode in ("1", "L", "I", "I;16") and mode in ("LA", "RGBA")) or ( + self.mode == "RGB" and mode in ("La", "LA", "RGBa", "RGBA") + ): + # Use transparent conversion to promote from transparent + # color to an alpha channel. + new_im = self._new( + self.im.convert_transparent(mode, self.info["transparency"]) + ) + del new_im.info["transparency"] + return new_im + elif self.mode in ("L", "RGB", "P") and mode in ("L", "RGB", "P"): + t = self.info["transparency"] + if isinstance(t, bytes): + # Dragons. This can't be represented by a single color + warnings.warn( + "Palette images with Transparency expressed in bytes should be " + "converted to RGBA images" + ) + delete_trns = True + else: + # get the new transparency color. + # use existing conversions + trns_im = new(self.mode, (1, 1)) + if self.mode == "P": + assert self.palette is not None + trns_im.putpalette(self.palette, self.palette.mode) + if isinstance(t, tuple): + err = "Couldn't allocate a palette color for transparency" + assert trns_im.palette is not None + try: + t = trns_im.palette.getcolor(t, self) + except ValueError as e: + if str(e) == "cannot allocate more than 256 colors": + # If all 256 colors are in use, + # then there is no need for transparency + t = None + else: + raise ValueError(err) from e + if t is None: + trns = None + else: + trns_im.putpixel((0, 0), t) + + if mode in ("L", "RGB"): + trns_im = trns_im.convert(mode) + else: + # can't just retrieve the palette number, got to do it + # after quantization. + trns_im = trns_im.convert("RGB") + trns = trns_im.getpixel((0, 0)) + + elif self.mode == "P" and mode in ("LA", "PA", "RGBA"): + t = self.info["transparency"] + delete_trns = True + + if isinstance(t, bytes): + self.im.putpalettealphas(t) + elif isinstance(t, int): + self.im.putpalettealpha(t, 0) + else: + msg = "Transparency for P mode should be bytes or int" + raise ValueError(msg) + + if mode == "P" and palette == Palette.ADAPTIVE: + im = self.im.quantize(colors) + new_im = self._new(im) + from . import ImagePalette + + new_im.palette = ImagePalette.ImagePalette( + "RGB", new_im.im.getpalette("RGB") + ) + if delete_trns: + # This could possibly happen if we requantize to fewer colors. + # The transparency would be totally off in that case. + del new_im.info["transparency"] + if trns is not None: + try: + new_im.info["transparency"] = new_im.palette.getcolor( + cast(tuple[int, ...], trns), # trns was converted to RGB + new_im, + ) + except Exception: + # if we can't make a transparent color, don't leave the old + # transparency hanging around to mess us up. + del new_im.info["transparency"] + warnings.warn("Couldn't allocate palette entry for transparency") + return new_im + + if "LAB" in (self.mode, mode): + im = self + if mode == "LAB": + if im.mode not in ("RGB", "RGBA", "RGBX"): + im = im.convert("RGBA") + other_mode = im.mode + else: + other_mode = mode + if other_mode in ("RGB", "RGBA", "RGBX"): + from . import ImageCms + + srgb = ImageCms.createProfile("sRGB") + lab = ImageCms.createProfile("LAB") + profiles = [lab, srgb] if im.mode == "LAB" else [srgb, lab] + transform = ImageCms.buildTransform( + profiles[0], profiles[1], im.mode, mode + ) + return transform.apply(im) + + # colorspace conversion + if dither is None: + dither = Dither.FLOYDSTEINBERG + + try: + im = self.im.convert(mode, dither) + except ValueError: + try: + # normalize source image and try again + modebase = getmodebase(self.mode) + if modebase == self.mode: + raise + im = self.im.convert(modebase) + im = im.convert(mode, dither) + except KeyError as e: + msg = "illegal conversion" + raise ValueError(msg) from e + + new_im = self._new(im) + if mode in ("P", "PA") and palette != Palette.ADAPTIVE: + from . import ImagePalette + + new_im.palette = ImagePalette.ImagePalette("RGB", im.getpalette("RGB")) + if delete_trns: + # crash fail if we leave a bytes transparency in an rgb/l mode. + del new_im.info["transparency"] + if trns is not None: + if new_im.mode == "P" and new_im.palette: + try: + new_im.info["transparency"] = new_im.palette.getcolor( + cast(tuple[int, ...], trns), new_im # trns was converted to RGB + ) + except ValueError as e: + del new_im.info["transparency"] + if str(e) != "cannot allocate more than 256 colors": + # If all 256 colors are in use, + # then there is no need for transparency + warnings.warn( + "Couldn't allocate palette entry for transparency" + ) + else: + new_im.info["transparency"] = trns + return new_im + + def quantize( + self, + colors: int = 256, + method: int | None = None, + kmeans: int = 0, + palette: Image | None = None, + dither: Dither = Dither.FLOYDSTEINBERG, + ) -> Image: + """ + Convert the image to 'P' mode with the specified number + of colors. + + :param colors: The desired number of colors, <= 256 + :param method: :data:`Quantize.MEDIANCUT` (median cut), + :data:`Quantize.MAXCOVERAGE` (maximum coverage), + :data:`Quantize.FASTOCTREE` (fast octree), + :data:`Quantize.LIBIMAGEQUANT` (libimagequant; check support + using :py:func:`PIL.features.check_feature` with + ``feature="libimagequant"``). + + By default, :data:`Quantize.MEDIANCUT` will be used. + + The exception to this is RGBA images. :data:`Quantize.MEDIANCUT` + and :data:`Quantize.MAXCOVERAGE` do not support RGBA images, so + :data:`Quantize.FASTOCTREE` is used by default instead. + :param kmeans: Integer greater than or equal to zero. + :param palette: Quantize to the palette of given + :py:class:`PIL.Image.Image`. + :param dither: Dithering method, used when converting from + mode "RGB" to "P" or from "RGB" or "L" to "1". + Available methods are :data:`Dither.NONE` or :data:`Dither.FLOYDSTEINBERG` + (default). + :returns: A new image + """ + + self.load() + + if method is None: + # defaults: + method = Quantize.MEDIANCUT + if self.mode == "RGBA": + method = Quantize.FASTOCTREE + + if self.mode == "RGBA" and method not in ( + Quantize.FASTOCTREE, + Quantize.LIBIMAGEQUANT, + ): + # Caller specified an invalid mode. + msg = ( + "Fast Octree (method == 2) and libimagequant (method == 3) " + "are the only valid methods for quantizing RGBA images" + ) + raise ValueError(msg) + + if palette: + # use palette from reference image + palette.load() + if palette.mode != "P": + msg = "bad mode for palette image" + raise ValueError(msg) + if self.mode not in {"RGB", "L"}: + msg = "only RGB or L mode images can be quantized to a palette" + raise ValueError(msg) + im = self.im.convert("P", dither, palette.im) + new_im = self._new(im) + assert palette.palette is not None + new_im.palette = palette.palette.copy() + return new_im + + if kmeans < 0: + msg = "kmeans must not be negative" + raise ValueError(msg) + + im = self._new(self.im.quantize(colors, method, kmeans)) + + from . import ImagePalette + + mode = im.im.getpalettemode() + palette_data = im.im.getpalette(mode, mode)[: colors * len(mode)] + im.palette = ImagePalette.ImagePalette(mode, palette_data) + + return im + + def copy(self) -> Image: + """ + Copies this image. Use this method if you wish to paste things + into an image, but still retain the original. + + :rtype: :py:class:`~PIL.Image.Image` + :returns: An :py:class:`~PIL.Image.Image` object. + """ + self.load() + return self._new(self.im.copy()) + + __copy__ = copy + + def crop(self, box: tuple[float, float, float, float] | None = None) -> Image: + """ + Returns a rectangular region from this image. The box is a + 4-tuple defining the left, upper, right, and lower pixel + coordinate. See :ref:`coordinate-system`. + + Note: Prior to Pillow 3.4.0, this was a lazy operation. + + :param box: The crop rectangle, as a (left, upper, right, lower)-tuple. + :rtype: :py:class:`~PIL.Image.Image` + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + if box is None: + return self.copy() + + if box[2] < box[0]: + msg = "Coordinate 'right' is less than 'left'" + raise ValueError(msg) + elif box[3] < box[1]: + msg = "Coordinate 'lower' is less than 'upper'" + raise ValueError(msg) + + self.load() + return self._new(self._crop(self.im, box)) + + def _crop( + self, im: core.ImagingCore, box: tuple[float, float, float, float] + ) -> core.ImagingCore: + """ + Returns a rectangular region from the core image object im. + + This is equivalent to calling im.crop((x0, y0, x1, y1)), but + includes additional sanity checks. + + :param im: a core image object + :param box: The crop rectangle, as a (left, upper, right, lower)-tuple. + :returns: A core image object. + """ + + x0, y0, x1, y1 = map(int, map(round, box)) + + absolute_values = (abs(x1 - x0), abs(y1 - y0)) + + _decompression_bomb_check(absolute_values) + + return im.crop((x0, y0, x1, y1)) + + def draft( + self, mode: str | None, size: tuple[int, int] | None + ) -> tuple[str, tuple[int, int, float, float]] | None: + """ + Configures the image file loader so it returns a version of the + image that as closely as possible matches the given mode and + size. For example, you can use this method to convert a color + JPEG to grayscale while loading it. + + If any changes are made, returns a tuple with the chosen ``mode`` and + ``box`` with coordinates of the original image within the altered one. + + Note that this method modifies the :py:class:`~PIL.Image.Image` object + in place. If the image has already been loaded, this method has no + effect. + + Note: This method is not implemented for most images. It is + currently implemented only for JPEG and MPO images. + + :param mode: The requested mode. + :param size: The requested size in pixels, as a 2-tuple: + (width, height). + """ + pass + + def filter(self, filter: ImageFilter.Filter | type[ImageFilter.Filter]) -> Image: + """ + Filters this image using the given filter. For a list of + available filters, see the :py:mod:`~PIL.ImageFilter` module. + + :param filter: Filter kernel. + :returns: An :py:class:`~PIL.Image.Image` object.""" + + from . import ImageFilter + + self.load() + + if callable(filter): + filter = filter() + if not hasattr(filter, "filter"): + msg = "filter argument should be ImageFilter.Filter instance or class" + raise TypeError(msg) + + multiband = isinstance(filter, ImageFilter.MultibandFilter) + if self.im.bands == 1 or multiband: + return self._new(filter.filter(self.im)) + + ims = [ + self._new(filter.filter(self.im.getband(c))) for c in range(self.im.bands) + ] + return merge(self.mode, ims) + + def getbands(self) -> tuple[str, ...]: + """ + Returns a tuple containing the name of each band in this image. + For example, ``getbands`` on an RGB image returns ("R", "G", "B"). + + :returns: A tuple containing band names. + :rtype: tuple + """ + return ImageMode.getmode(self.mode).bands + + def getbbox(self, *, alpha_only: bool = True) -> tuple[int, int, int, int] | None: + """ + Calculates the bounding box of the non-zero regions in the + image. + + :param alpha_only: Optional flag, defaulting to ``True``. + If ``True`` and the image has an alpha channel, trim transparent pixels. + Otherwise, trim pixels when all channels are zero. + Keyword-only argument. + :returns: The bounding box is returned as a 4-tuple defining the + left, upper, right, and lower pixel coordinate. See + :ref:`coordinate-system`. If the image is completely empty, this + method returns None. + + """ + + self.load() + return self.im.getbbox(alpha_only) + + def getcolors( + self, maxcolors: int = 256 + ) -> list[tuple[int, tuple[int, ...]]] | list[tuple[int, float]] | None: + """ + Returns a list of colors used in this image. + + The colors will be in the image's mode. For example, an RGB image will + return a tuple of (red, green, blue) color values, and a P image will + return the index of the color in the palette. + + :param maxcolors: Maximum number of colors. If this number is + exceeded, this method returns None. The default limit is + 256 colors. + :returns: An unsorted list of (count, pixel) values. + """ + + self.load() + if self.mode in ("1", "L", "P"): + h = self.im.histogram() + out: list[tuple[int, float]] = [(h[i], i) for i in range(256) if h[i]] + if len(out) > maxcolors: + return None + return out + return self.im.getcolors(maxcolors) + + def getdata(self, band: int | None = None) -> core.ImagingCore: + """ + Returns the contents of this image as a sequence object + containing pixel values. The sequence object is flattened, so + that values for line one follow directly after the values of + line zero, and so on. + + Note that the sequence object returned by this method is an + internal PIL data type, which only supports certain sequence + operations. To convert it to an ordinary sequence (e.g. for + printing), use ``list(im.getdata())``. + + :param band: What band to return. The default is to return + all bands. To return a single band, pass in the index + value (e.g. 0 to get the "R" band from an "RGB" image). + :returns: A sequence-like object. + """ + + self.load() + if band is not None: + return self.im.getband(band) + return self.im # could be abused + + def getextrema(self) -> tuple[float, float] | tuple[tuple[int, int], ...]: + """ + Gets the minimum and maximum pixel values for each band in + the image. + + :returns: For a single-band image, a 2-tuple containing the + minimum and maximum pixel value. For a multi-band image, + a tuple containing one 2-tuple for each band. + """ + + self.load() + if self.im.bands > 1: + return tuple(self.im.getband(i).getextrema() for i in range(self.im.bands)) + return self.im.getextrema() + + def getxmp(self) -> dict[str, Any]: + """ + Returns a dictionary containing the XMP tags. + Requires defusedxml to be installed. + + :returns: XMP tags in a dictionary. + """ + + def get_name(tag: str) -> str: + return re.sub("^{[^}]+}", "", tag) + + def get_value(element: Element) -> str | dict[str, Any] | None: + value: dict[str, Any] = {get_name(k): v for k, v in element.attrib.items()} + children = list(element) + if children: + for child in children: + name = get_name(child.tag) + child_value = get_value(child) + if name in value: + if not isinstance(value[name], list): + value[name] = [value[name]] + value[name].append(child_value) + else: + value[name] = child_value + elif value: + if element.text: + value["text"] = element.text + else: + return element.text + return value + + if ElementTree is None: + warnings.warn("XMP data cannot be read without defusedxml dependency") + return {} + if "xmp" not in self.info: + return {} + root = ElementTree.fromstring(self.info["xmp"].rstrip(b"\x00 ")) + return {get_name(root.tag): get_value(root)} + + def getexif(self) -> Exif: + """ + Gets EXIF data from the image. + + :returns: an :py:class:`~PIL.Image.Exif` object. + """ + if self._exif is None: + self._exif = Exif() + elif self._exif._loaded: + return self._exif + self._exif._loaded = True + + exif_info = self.info.get("exif") + if exif_info is None: + if "Raw profile type exif" in self.info: + exif_info = bytes.fromhex( + "".join(self.info["Raw profile type exif"].split("\n")[3:]) + ) + elif hasattr(self, "tag_v2"): + self._exif.bigtiff = self.tag_v2._bigtiff + self._exif.endian = self.tag_v2._endian + self._exif.load_from_fp(self.fp, self.tag_v2._offset) + if exif_info is not None: + self._exif.load(exif_info) + + # XMP tags + if ExifTags.Base.Orientation not in self._exif: + xmp_tags = self.info.get("XML:com.adobe.xmp") + pattern: str | bytes = r'tiff:Orientation(="|>)([0-9])' + if not xmp_tags and (xmp_tags := self.info.get("xmp")): + pattern = rb'tiff:Orientation(="|>)([0-9])' + if xmp_tags: + match = re.search(pattern, xmp_tags) + if match: + self._exif[ExifTags.Base.Orientation] = int(match[2]) + + return self._exif + + def _reload_exif(self) -> None: + if self._exif is None or not self._exif._loaded: + return + self._exif._loaded = False + self.getexif() + + def get_child_images(self) -> list[ImageFile.ImageFile]: + from . import ImageFile + + deprecate("Image.Image.get_child_images", 13) + return ImageFile.ImageFile.get_child_images(self) # type: ignore[arg-type] + + def getim(self) -> CapsuleType: + """ + Returns a capsule that points to the internal image memory. + + :returns: A capsule object. + """ + + self.load() + return self.im.ptr + + def getpalette(self, rawmode: str | None = "RGB") -> list[int] | None: + """ + Returns the image palette as a list. + + :param rawmode: The mode in which to return the palette. ``None`` will + return the palette in its current mode. + + .. versionadded:: 9.1.0 + + :returns: A list of color values [r, g, b, ...], or None if the + image has no palette. + """ + + self.load() + try: + mode = self.im.getpalettemode() + except ValueError: + return None # no palette + if rawmode is None: + rawmode = mode + return list(self.im.getpalette(mode, rawmode)) + + @property + def has_transparency_data(self) -> bool: + """ + Determine if an image has transparency data, whether in the form of an + alpha channel, a palette with an alpha channel, or a "transparency" key + in the info dictionary. + + Note the image might still appear solid, if all of the values shown + within are opaque. + + :returns: A boolean. + """ + if ( + self.mode in ("LA", "La", "PA", "RGBA", "RGBa") + or "transparency" in self.info + ): + return True + if self.mode == "P": + assert self.palette is not None + return self.palette.mode.endswith("A") + return False + + def apply_transparency(self) -> None: + """ + If a P mode image has a "transparency" key in the info dictionary, + remove the key and instead apply the transparency to the palette. + Otherwise, the image is unchanged. + """ + if self.mode != "P" or "transparency" not in self.info: + return + + from . import ImagePalette + + palette = self.getpalette("RGBA") + assert palette is not None + transparency = self.info["transparency"] + if isinstance(transparency, bytes): + for i, alpha in enumerate(transparency): + palette[i * 4 + 3] = alpha + else: + palette[transparency * 4 + 3] = 0 + self.palette = ImagePalette.ImagePalette("RGBA", bytes(palette)) + self.palette.dirty = 1 + + del self.info["transparency"] + + def getpixel( + self, xy: tuple[int, int] | list[int] + ) -> float | tuple[int, ...] | None: + """ + Returns the pixel value at a given position. + + :param xy: The coordinate, given as (x, y). See + :ref:`coordinate-system`. + :returns: The pixel value. If the image is a multi-layer image, + this method returns a tuple. + """ + + self.load() + return self.im.getpixel(tuple(xy)) + + def getprojection(self) -> tuple[list[int], list[int]]: + """ + Get projection to x and y axes + + :returns: Two sequences, indicating where there are non-zero + pixels along the X-axis and the Y-axis, respectively. + """ + + self.load() + x, y = self.im.getprojection() + return list(x), list(y) + + def histogram( + self, mask: Image | None = None, extrema: tuple[float, float] | None = None + ) -> list[int]: + """ + Returns a histogram for the image. The histogram is returned as a + list of pixel counts, one for each pixel value in the source + image. Counts are grouped into 256 bins for each band, even if + the image has more than 8 bits per band. If the image has more + than one band, the histograms for all bands are concatenated (for + example, the histogram for an "RGB" image contains 768 values). + + A bilevel image (mode "1") is treated as a grayscale ("L") image + by this method. + + If a mask is provided, the method returns a histogram for those + parts of the image where the mask image is non-zero. The mask + image must have the same size as the image, and be either a + bi-level image (mode "1") or a grayscale image ("L"). + + :param mask: An optional mask. + :param extrema: An optional tuple of manually-specified extrema. + :returns: A list containing pixel counts. + """ + self.load() + if mask: + mask.load() + return self.im.histogram((0, 0), mask.im) + if self.mode in ("I", "F"): + return self.im.histogram( + extrema if extrema is not None else self.getextrema() + ) + return self.im.histogram() + + def entropy( + self, mask: Image | None = None, extrema: tuple[float, float] | None = None + ) -> float: + """ + Calculates and returns the entropy for the image. + + A bilevel image (mode "1") is treated as a grayscale ("L") + image by this method. + + If a mask is provided, the method employs the histogram for + those parts of the image where the mask image is non-zero. + The mask image must have the same size as the image, and be + either a bi-level image (mode "1") or a grayscale image ("L"). + + :param mask: An optional mask. + :param extrema: An optional tuple of manually-specified extrema. + :returns: A float value representing the image entropy + """ + self.load() + if mask: + mask.load() + return self.im.entropy((0, 0), mask.im) + if self.mode in ("I", "F"): + return self.im.entropy( + extrema if extrema is not None else self.getextrema() + ) + return self.im.entropy() + + def paste( + self, + im: Image | str | float | tuple[float, ...], + box: Image | tuple[int, int, int, int] | tuple[int, int] | None = None, + mask: Image | None = None, + ) -> None: + """ + Pastes another image into this image. The box argument is either + a 2-tuple giving the upper left corner, a 4-tuple defining the + left, upper, right, and lower pixel coordinate, or None (same as + (0, 0)). See :ref:`coordinate-system`. If a 4-tuple is given, the size + of the pasted image must match the size of the region. + + If the modes don't match, the pasted image is converted to the mode of + this image (see the :py:meth:`~PIL.Image.Image.convert` method for + details). + + Instead of an image, the source can be a integer or tuple + containing pixel values. The method then fills the region + with the given color. When creating RGB images, you can + also use color strings as supported by the ImageColor module. See + :ref:`colors` for more information. + + If a mask is given, this method updates only the regions + indicated by the mask. You can use either "1", "L", "LA", "RGBA" + or "RGBa" images (if present, the alpha band is used as mask). + Where the mask is 255, the given image is copied as is. Where + the mask is 0, the current value is preserved. Intermediate + values will mix the two images together, including their alpha + channels if they have them. + + See :py:meth:`~PIL.Image.Image.alpha_composite` if you want to + combine images with respect to their alpha channels. + + :param im: Source image or pixel value (integer, float or tuple). + :param box: An optional 4-tuple giving the region to paste into. + If a 2-tuple is used instead, it's treated as the upper left + corner. If omitted or None, the source is pasted into the + upper left corner. + + If an image is given as the second argument and there is no + third, the box defaults to (0, 0), and the second argument + is interpreted as a mask image. + :param mask: An optional mask image. + """ + + if isinstance(box, Image): + if mask is not None: + msg = "If using second argument as mask, third argument must be None" + raise ValueError(msg) + # abbreviated paste(im, mask) syntax + mask = box + box = None + + if box is None: + box = (0, 0) + + if len(box) == 2: + # upper left corner given; get size from image or mask + if isinstance(im, Image): + size = im.size + elif isinstance(mask, Image): + size = mask.size + else: + # FIXME: use self.size here? + msg = "cannot determine region size; use 4-item box" + raise ValueError(msg) + box += (box[0] + size[0], box[1] + size[1]) + + source: core.ImagingCore | str | float | tuple[float, ...] + if isinstance(im, str): + from . import ImageColor + + source = ImageColor.getcolor(im, self.mode) + elif isinstance(im, Image): + im.load() + if self.mode != im.mode: + if self.mode != "RGB" or im.mode not in ("LA", "RGBA", "RGBa"): + # should use an adapter for this! + im = im.convert(self.mode) + source = im.im + else: + source = im + + self._ensure_mutable() + + if mask: + mask.load() + self.im.paste(source, box, mask.im) + else: + self.im.paste(source, box) + + def alpha_composite( + self, im: Image, dest: Sequence[int] = (0, 0), source: Sequence[int] = (0, 0) + ) -> None: + """'In-place' analog of Image.alpha_composite. Composites an image + onto this image. + + :param im: image to composite over this one + :param dest: Optional 2 tuple (left, top) specifying the upper + left corner in this (destination) image. + :param source: Optional 2 (left, top) tuple for the upper left + corner in the overlay source image, or 4 tuple (left, top, right, + bottom) for the bounds of the source rectangle + + Performance Note: Not currently implemented in-place in the core layer. + """ + + if not isinstance(source, (list, tuple)): + msg = "Source must be a list or tuple" + raise ValueError(msg) + if not isinstance(dest, (list, tuple)): + msg = "Destination must be a list or tuple" + raise ValueError(msg) + + if len(source) == 4: + overlay_crop_box = tuple(source) + elif len(source) == 2: + overlay_crop_box = tuple(source) + im.size + else: + msg = "Source must be a sequence of length 2 or 4" + raise ValueError(msg) + + if not len(dest) == 2: + msg = "Destination must be a sequence of length 2" + raise ValueError(msg) + if min(source) < 0: + msg = "Source must be non-negative" + raise ValueError(msg) + + # over image, crop if it's not the whole image. + if overlay_crop_box == (0, 0) + im.size: + overlay = im + else: + overlay = im.crop(overlay_crop_box) + + # target for the paste + box = tuple(dest) + (dest[0] + overlay.width, dest[1] + overlay.height) + + # destination image. don't copy if we're using the whole image. + if box == (0, 0) + self.size: + background = self + else: + background = self.crop(box) + + result = alpha_composite(background, overlay) + self.paste(result, box) + + def point( + self, + lut: ( + Sequence[float] + | NumpyArray + | Callable[[int], float] + | Callable[[ImagePointTransform], ImagePointTransform | float] + | ImagePointHandler + ), + mode: str | None = None, + ) -> Image: + """ + Maps this image through a lookup table or function. + + :param lut: A lookup table, containing 256 (or 65536 if + self.mode=="I" and mode == "L") values per band in the + image. A function can be used instead, it should take a + single argument. The function is called once for each + possible pixel value, and the resulting table is applied to + all bands of the image. + + It may also be an :py:class:`~PIL.Image.ImagePointHandler` + object:: + + class Example(Image.ImagePointHandler): + def point(self, im: Image) -> Image: + # Return result + :param mode: Output mode (default is same as input). This can only be used if + the source image has mode "L" or "P", and the output has mode "1" or the + source image mode is "I" and the output mode is "L". + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + self.load() + + if isinstance(lut, ImagePointHandler): + return lut.point(self) + + if callable(lut): + # if it isn't a list, it should be a function + if self.mode in ("I", "I;16", "F"): + # check if the function can be used with point_transform + # UNDONE wiredfool -- I think this prevents us from ever doing + # a gamma function point transform on > 8bit images. + scale, offset = _getscaleoffset(lut) # type: ignore[arg-type] + return self._new(self.im.point_transform(scale, offset)) + # for other modes, convert the function to a table + flatLut = [lut(i) for i in range(256)] * self.im.bands # type: ignore[arg-type] + else: + flatLut = lut + + if self.mode == "F": + # FIXME: _imaging returns a confusing error message for this case + msg = "point operation not supported for this mode" + raise ValueError(msg) + + if mode != "F": + flatLut = [round(i) for i in flatLut] + return self._new(self.im.point(flatLut, mode)) + + def putalpha(self, alpha: Image | int) -> None: + """ + Adds or replaces the alpha layer in this image. If the image + does not have an alpha layer, it's converted to "LA" or "RGBA". + The new layer must be either "L" or "1". + + :param alpha: The new alpha layer. This can either be an "L" or "1" + image having the same size as this image, or an integer. + """ + + self._ensure_mutable() + + if self.mode not in ("LA", "PA", "RGBA"): + # attempt to promote self to a matching alpha mode + try: + mode = getmodebase(self.mode) + "A" + try: + self.im.setmode(mode) + except (AttributeError, ValueError) as e: + # do things the hard way + im = self.im.convert(mode) + if im.mode not in ("LA", "PA", "RGBA"): + msg = "alpha channel could not be added" + raise ValueError(msg) from e # sanity check + self.im = im + self._mode = self.im.mode + except KeyError as e: + msg = "illegal image mode" + raise ValueError(msg) from e + + if self.mode in ("LA", "PA"): + band = 1 + else: + band = 3 + + if isinstance(alpha, Image): + # alpha layer + if alpha.mode not in ("1", "L"): + msg = "illegal image mode" + raise ValueError(msg) + alpha.load() + if alpha.mode == "1": + alpha = alpha.convert("L") + else: + # constant alpha + try: + self.im.fillband(band, alpha) + except (AttributeError, ValueError): + # do things the hard way + alpha = new("L", self.size, alpha) + else: + return + + self.im.putband(alpha.im, band) + + def putdata( + self, + data: Sequence[float] | Sequence[Sequence[int]] | core.ImagingCore | NumpyArray, + scale: float = 1.0, + offset: float = 0.0, + ) -> None: + """ + Copies pixel data from a flattened sequence object into the image. The + values should start at the upper left corner (0, 0), continue to the + end of the line, followed directly by the first value of the second + line, and so on. Data will be read until either the image or the + sequence ends. The scale and offset values are used to adjust the + sequence values: **pixel = value*scale + offset**. + + :param data: A flattened sequence object. See :ref:`colors` for more + information about values. + :param scale: An optional scale value. The default is 1.0. + :param offset: An optional offset value. The default is 0.0. + """ + + self._ensure_mutable() + + self.im.putdata(data, scale, offset) + + def putpalette( + self, + data: ImagePalette.ImagePalette | bytes | Sequence[int], + rawmode: str = "RGB", + ) -> None: + """ + Attaches a palette to this image. The image must be a "P", "PA", "L" + or "LA" image. + + The palette sequence must contain at most 256 colors, made up of one + integer value for each channel in the raw mode. + For example, if the raw mode is "RGB", then it can contain at most 768 + values, made up of red, green and blue values for the corresponding pixel + index in the 256 colors. + If the raw mode is "RGBA", then it can contain at most 1024 values, + containing red, green, blue and alpha values. + + Alternatively, an 8-bit string may be used instead of an integer sequence. + + :param data: A palette sequence (either a list or a string). + :param rawmode: The raw mode of the palette. Either "RGB", "RGBA", or a mode + that can be transformed to "RGB" or "RGBA" (e.g. "R", "BGR;15", "RGBA;L"). + """ + from . import ImagePalette + + if self.mode not in ("L", "LA", "P", "PA"): + msg = "illegal image mode" + raise ValueError(msg) + if isinstance(data, ImagePalette.ImagePalette): + if data.rawmode is not None: + palette = ImagePalette.raw(data.rawmode, data.palette) + else: + palette = ImagePalette.ImagePalette(palette=data.palette) + palette.dirty = 1 + else: + if not isinstance(data, bytes): + data = bytes(data) + palette = ImagePalette.raw(rawmode, data) + self._mode = "PA" if "A" in self.mode else "P" + self.palette = palette + self.palette.mode = "RGBA" if "A" in rawmode else "RGB" + self.load() # install new palette + + def putpixel( + self, xy: tuple[int, int], value: float | tuple[int, ...] | list[int] + ) -> None: + """ + Modifies the pixel at the given position. The color is given as + a single numerical value for single-band images, and a tuple for + multi-band images. In addition to this, RGB and RGBA tuples are + accepted for P and PA images. See :ref:`colors` for more information. + + Note that this method is relatively slow. For more extensive changes, + use :py:meth:`~PIL.Image.Image.paste` or the :py:mod:`~PIL.ImageDraw` + module instead. + + See: + + * :py:meth:`~PIL.Image.Image.paste` + * :py:meth:`~PIL.Image.Image.putdata` + * :py:mod:`~PIL.ImageDraw` + + :param xy: The pixel coordinate, given as (x, y). See + :ref:`coordinate-system`. + :param value: The pixel value. + """ + + self._ensure_mutable() + + if ( + self.mode in ("P", "PA") + and isinstance(value, (list, tuple)) + and len(value) in [3, 4] + ): + # RGB or RGBA value for a P or PA image + if self.mode == "PA": + alpha = value[3] if len(value) == 4 else 255 + value = value[:3] + assert self.palette is not None + palette_index = self.palette.getcolor(tuple(value), self) + value = (palette_index, alpha) if self.mode == "PA" else palette_index + return self.im.putpixel(xy, value) + + def remap_palette( + self, dest_map: list[int], source_palette: bytes | bytearray | None = None + ) -> Image: + """ + Rewrites the image to reorder the palette. + + :param dest_map: A list of indexes into the original palette. + e.g. ``[1,0]`` would swap a two item palette, and ``list(range(256))`` + is the identity transform. + :param source_palette: Bytes or None. + :returns: An :py:class:`~PIL.Image.Image` object. + + """ + from . import ImagePalette + + if self.mode not in ("L", "P"): + msg = "illegal image mode" + raise ValueError(msg) + + bands = 3 + palette_mode = "RGB" + if source_palette is None: + if self.mode == "P": + self.load() + palette_mode = self.im.getpalettemode() + if palette_mode == "RGBA": + bands = 4 + source_palette = self.im.getpalette(palette_mode, palette_mode) + else: # L-mode + source_palette = bytearray(i // 3 for i in range(768)) + elif len(source_palette) > 768: + bands = 4 + palette_mode = "RGBA" + + palette_bytes = b"" + new_positions = [0] * 256 + + # pick only the used colors from the palette + for i, oldPosition in enumerate(dest_map): + palette_bytes += source_palette[ + oldPosition * bands : oldPosition * bands + bands + ] + new_positions[oldPosition] = i + + # replace the palette color id of all pixel with the new id + + # Palette images are [0..255], mapped through a 1 or 3 + # byte/color map. We need to remap the whole image + # from palette 1 to palette 2. New_positions is + # an array of indexes into palette 1. Palette 2 is + # palette 1 with any holes removed. + + # We're going to leverage the convert mechanism to use the + # C code to remap the image from palette 1 to palette 2, + # by forcing the source image into 'L' mode and adding a + # mapping 'L' mode palette, then converting back to 'L' + # sans palette thus converting the image bytes, then + # assigning the optimized RGB palette. + + # perf reference, 9500x4000 gif, w/~135 colors + # 14 sec prepatch, 1 sec postpatch with optimization forced. + + mapping_palette = bytearray(new_positions) + + m_im = self.copy() + m_im._mode = "P" + + m_im.palette = ImagePalette.ImagePalette( + palette_mode, palette=mapping_palette * bands + ) + # possibly set palette dirty, then + # m_im.putpalette(mapping_palette, 'L') # converts to 'P' + # or just force it. + # UNDONE -- this is part of the general issue with palettes + m_im.im.putpalette(palette_mode, palette_mode + ";L", m_im.palette.tobytes()) + + m_im = m_im.convert("L") + + m_im.putpalette(palette_bytes, palette_mode) + m_im.palette = ImagePalette.ImagePalette(palette_mode, palette=palette_bytes) + + if "transparency" in self.info: + try: + m_im.info["transparency"] = dest_map.index(self.info["transparency"]) + except ValueError: + if "transparency" in m_im.info: + del m_im.info["transparency"] + + return m_im + + def _get_safe_box( + self, + size: tuple[int, int], + resample: Resampling, + box: tuple[float, float, float, float], + ) -> tuple[int, int, int, int]: + """Expands the box so it includes adjacent pixels + that may be used by resampling with the given resampling filter. + """ + filter_support = _filters_support[resample] - 0.5 + scale_x = (box[2] - box[0]) / size[0] + scale_y = (box[3] - box[1]) / size[1] + support_x = filter_support * scale_x + support_y = filter_support * scale_y + + return ( + max(0, int(box[0] - support_x)), + max(0, int(box[1] - support_y)), + min(self.size[0], math.ceil(box[2] + support_x)), + min(self.size[1], math.ceil(box[3] + support_y)), + ) + + def resize( + self, + size: tuple[int, int] | list[int] | NumpyArray, + resample: int | None = None, + box: tuple[float, float, float, float] | None = None, + reducing_gap: float | None = None, + ) -> Image: + """ + Returns a resized copy of this image. + + :param size: The requested size in pixels, as a tuple or array: + (width, height). + :param resample: An optional resampling filter. This can be + one of :py:data:`Resampling.NEAREST`, :py:data:`Resampling.BOX`, + :py:data:`Resampling.BILINEAR`, :py:data:`Resampling.HAMMING`, + :py:data:`Resampling.BICUBIC` or :py:data:`Resampling.LANCZOS`. + If the image has mode "1" or "P", it is always set to + :py:data:`Resampling.NEAREST`. Otherwise, the default filter is + :py:data:`Resampling.BICUBIC`. See: :ref:`concept-filters`. + :param box: An optional 4-tuple of floats providing + the source image region to be scaled. + The values must be within (0, 0, width, height) rectangle. + If omitted or None, the entire source is used. + :param reducing_gap: Apply optimization by resizing the image + in two steps. First, reducing the image by integer times + using :py:meth:`~PIL.Image.Image.reduce`. + Second, resizing using regular resampling. The last step + changes size no less than by ``reducing_gap`` times. + ``reducing_gap`` may be None (no first step is performed) + or should be greater than 1.0. The bigger ``reducing_gap``, + the closer the result to the fair resampling. + The smaller ``reducing_gap``, the faster resizing. + With ``reducing_gap`` greater or equal to 3.0, the result is + indistinguishable from fair resampling in most cases. + The default value is None (no optimization). + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + if resample is None: + resample = Resampling.BICUBIC + elif resample not in ( + Resampling.NEAREST, + Resampling.BILINEAR, + Resampling.BICUBIC, + Resampling.LANCZOS, + Resampling.BOX, + Resampling.HAMMING, + ): + msg = f"Unknown resampling filter ({resample})." + + filters = [ + f"{filter[1]} ({filter[0]})" + for filter in ( + (Resampling.NEAREST, "Image.Resampling.NEAREST"), + (Resampling.LANCZOS, "Image.Resampling.LANCZOS"), + (Resampling.BILINEAR, "Image.Resampling.BILINEAR"), + (Resampling.BICUBIC, "Image.Resampling.BICUBIC"), + (Resampling.BOX, "Image.Resampling.BOX"), + (Resampling.HAMMING, "Image.Resampling.HAMMING"), + ) + ] + msg += f" Use {', '.join(filters[:-1])} or {filters[-1]}" + raise ValueError(msg) + + if reducing_gap is not None and reducing_gap < 1.0: + msg = "reducing_gap must be 1.0 or greater" + raise ValueError(msg) + + if box is None: + box = (0, 0) + self.size + + size = tuple(size) + if self.size == size and box == (0, 0) + self.size: + return self.copy() + + if self.mode in ("1", "P"): + resample = Resampling.NEAREST + + if self.mode in ["LA", "RGBA"] and resample != Resampling.NEAREST: + im = self.convert({"LA": "La", "RGBA": "RGBa"}[self.mode]) + im = im.resize(size, resample, box) + return im.convert(self.mode) + + self.load() + + if reducing_gap is not None and resample != Resampling.NEAREST: + factor_x = int((box[2] - box[0]) / size[0] / reducing_gap) or 1 + factor_y = int((box[3] - box[1]) / size[1] / reducing_gap) or 1 + if factor_x > 1 or factor_y > 1: + reduce_box = self._get_safe_box(size, cast(Resampling, resample), box) + factor = (factor_x, factor_y) + self = ( + self.reduce(factor, box=reduce_box) + if callable(self.reduce) + else Image.reduce(self, factor, box=reduce_box) + ) + box = ( + (box[0] - reduce_box[0]) / factor_x, + (box[1] - reduce_box[1]) / factor_y, + (box[2] - reduce_box[0]) / factor_x, + (box[3] - reduce_box[1]) / factor_y, + ) + + return self._new(self.im.resize(size, resample, box)) + + def reduce( + self, + factor: int | tuple[int, int], + box: tuple[int, int, int, int] | None = None, + ) -> Image: + """ + Returns a copy of the image reduced ``factor`` times. + If the size of the image is not dividable by ``factor``, + the resulting size will be rounded up. + + :param factor: A greater than 0 integer or tuple of two integers + for width and height separately. + :param box: An optional 4-tuple of ints providing + the source image region to be reduced. + The values must be within ``(0, 0, width, height)`` rectangle. + If omitted or ``None``, the entire source is used. + """ + if not isinstance(factor, (list, tuple)): + factor = (factor, factor) + + if box is None: + box = (0, 0) + self.size + + if factor == (1, 1) and box == (0, 0) + self.size: + return self.copy() + + if self.mode in ["LA", "RGBA"]: + im = self.convert({"LA": "La", "RGBA": "RGBa"}[self.mode]) + im = im.reduce(factor, box) + return im.convert(self.mode) + + self.load() + + return self._new(self.im.reduce(factor, box)) + + def rotate( + self, + angle: float, + resample: Resampling = Resampling.NEAREST, + expand: int | bool = False, + center: tuple[float, float] | None = None, + translate: tuple[int, int] | None = None, + fillcolor: float | tuple[float, ...] | str | None = None, + ) -> Image: + """ + Returns a rotated copy of this image. This method returns a + copy of this image, rotated the given number of degrees counter + clockwise around its centre. + + :param angle: In degrees counter clockwise. + :param resample: An optional resampling filter. This can be + one of :py:data:`Resampling.NEAREST` (use nearest neighbour), + :py:data:`Resampling.BILINEAR` (linear interpolation in a 2x2 + environment), or :py:data:`Resampling.BICUBIC` (cubic spline + interpolation in a 4x4 environment). If omitted, or if the image has + mode "1" or "P", it is set to :py:data:`Resampling.NEAREST`. + See :ref:`concept-filters`. + :param expand: Optional expansion flag. If true, expands the output + image to make it large enough to hold the entire rotated image. + If false or omitted, make the output image the same size as the + input image. Note that the expand flag assumes rotation around + the center and no translation. + :param center: Optional center of rotation (a 2-tuple). Origin is + the upper left corner. Default is the center of the image. + :param translate: An optional post-rotate translation (a 2-tuple). + :param fillcolor: An optional color for area outside the rotated image. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + angle = angle % 360.0 + + # Fast paths regardless of filter, as long as we're not + # translating or changing the center. + if not (center or translate): + if angle == 0: + return self.copy() + if angle == 180: + return self.transpose(Transpose.ROTATE_180) + if angle in (90, 270) and (expand or self.width == self.height): + return self.transpose( + Transpose.ROTATE_90 if angle == 90 else Transpose.ROTATE_270 + ) + + # Calculate the affine matrix. Note that this is the reverse + # transformation (from destination image to source) because we + # want to interpolate the (discrete) destination pixel from + # the local area around the (floating) source pixel. + + # The matrix we actually want (note that it operates from the right): + # (1, 0, tx) (1, 0, cx) ( cos a, sin a, 0) (1, 0, -cx) + # (0, 1, ty) * (0, 1, cy) * (-sin a, cos a, 0) * (0, 1, -cy) + # (0, 0, 1) (0, 0, 1) ( 0, 0, 1) (0, 0, 1) + + # The reverse matrix is thus: + # (1, 0, cx) ( cos -a, sin -a, 0) (1, 0, -cx) (1, 0, -tx) + # (0, 1, cy) * (-sin -a, cos -a, 0) * (0, 1, -cy) * (0, 1, -ty) + # (0, 0, 1) ( 0, 0, 1) (0, 0, 1) (0, 0, 1) + + # In any case, the final translation may be updated at the end to + # compensate for the expand flag. + + w, h = self.size + + if translate is None: + post_trans = (0, 0) + else: + post_trans = translate + if center is None: + center = (w / 2, h / 2) + + angle = -math.radians(angle) + matrix = [ + round(math.cos(angle), 15), + round(math.sin(angle), 15), + 0.0, + round(-math.sin(angle), 15), + round(math.cos(angle), 15), + 0.0, + ] + + def transform(x: float, y: float, matrix: list[float]) -> tuple[float, float]: + (a, b, c, d, e, f) = matrix + return a * x + b * y + c, d * x + e * y + f + + matrix[2], matrix[5] = transform( + -center[0] - post_trans[0], -center[1] - post_trans[1], matrix + ) + matrix[2] += center[0] + matrix[5] += center[1] + + if expand: + # calculate output size + xx = [] + yy = [] + for x, y in ((0, 0), (w, 0), (w, h), (0, h)): + transformed_x, transformed_y = transform(x, y, matrix) + xx.append(transformed_x) + yy.append(transformed_y) + nw = math.ceil(max(xx)) - math.floor(min(xx)) + nh = math.ceil(max(yy)) - math.floor(min(yy)) + + # We multiply a translation matrix from the right. Because of its + # special form, this is the same as taking the image of the + # translation vector as new translation vector. + matrix[2], matrix[5] = transform(-(nw - w) / 2.0, -(nh - h) / 2.0, matrix) + w, h = nw, nh + + return self.transform( + (w, h), Transform.AFFINE, matrix, resample, fillcolor=fillcolor + ) + + def save( + self, fp: StrOrBytesPath | IO[bytes], format: str | None = None, **params: Any + ) -> None: + """ + Saves this image under the given filename. If no format is + specified, the format to use is determined from the filename + extension, if possible. + + Keyword options can be used to provide additional instructions + to the writer. If a writer doesn't recognise an option, it is + silently ignored. The available options are described in the + :doc:`image format documentation + <../handbook/image-file-formats>` for each writer. + + You can use a file object instead of a filename. In this case, + you must always specify the format. The file object must + implement the ``seek``, ``tell``, and ``write`` + methods, and be opened in binary mode. + + :param fp: A filename (string), os.PathLike object or file object. + :param format: Optional format override. If omitted, the + format to use is determined from the filename extension. + If a file object was used instead of a filename, this + parameter should always be used. + :param params: Extra parameters to the image writer. These can also be + set on the image itself through ``encoderinfo``. This is useful when + saving multiple images:: + + # Saving XMP data to a single image + from PIL import Image + red = Image.new("RGB", (1, 1), "#f00") + red.save("out.mpo", xmp=b"test") + + # Saving XMP data to the second frame of an image + from PIL import Image + black = Image.new("RGB", (1, 1)) + red = Image.new("RGB", (1, 1), "#f00") + red.encoderinfo = {"xmp": b"test"} + black.save("out.mpo", save_all=True, append_images=[red]) + :returns: None + :exception ValueError: If the output format could not be determined + from the file name. Use the format option to solve this. + :exception OSError: If the file could not be written. The file + may have been created, and may contain partial data. + """ + + filename: str | bytes = "" + open_fp = False + if is_path(fp): + filename = os.fspath(fp) + open_fp = True + elif fp == sys.stdout: + try: + fp = sys.stdout.buffer + except AttributeError: + pass + if not filename and hasattr(fp, "name") and is_path(fp.name): + # only set the name for metadata purposes + filename = os.fspath(fp.name) + + preinit() + + filename_ext = os.path.splitext(filename)[1].lower() + ext = filename_ext.decode() if isinstance(filename_ext, bytes) else filename_ext + + if not format: + if ext not in EXTENSION: + init() + try: + format = EXTENSION[ext] + except KeyError as e: + msg = f"unknown file extension: {ext}" + raise ValueError(msg) from e + + from . import ImageFile + + # may mutate self! + if isinstance(self, ImageFile.ImageFile) and os.path.abspath( + filename + ) == os.path.abspath(self.filename): + self._ensure_mutable() + else: + self.load() + + save_all = params.pop("save_all", None) + self._default_encoderinfo = params + encoderinfo = getattr(self, "encoderinfo", {}) + self._attach_default_encoderinfo(self) + self.encoderconfig: tuple[Any, ...] = () + + if format.upper() not in SAVE: + init() + if save_all or ( + save_all is None + and params.get("append_images") + and format.upper() in SAVE_ALL + ): + save_handler = SAVE_ALL[format.upper()] + else: + save_handler = SAVE[format.upper()] + + created = False + if open_fp: + created = not os.path.exists(filename) + if params.get("append", False): + # Open also for reading ("+"), because TIFF save_all + # writer needs to go back and edit the written data. + fp = builtins.open(filename, "r+b") + else: + fp = builtins.open(filename, "w+b") + else: + fp = cast(IO[bytes], fp) + + try: + save_handler(self, fp, filename) + except Exception: + if open_fp: + fp.close() + if created: + try: + os.remove(filename) + except PermissionError: + pass + raise + finally: + self.encoderinfo = encoderinfo + if open_fp: + fp.close() + + def _attach_default_encoderinfo(self, im: Image) -> dict[str, Any]: + encoderinfo = getattr(self, "encoderinfo", {}) + self.encoderinfo = {**im._default_encoderinfo, **encoderinfo} + return encoderinfo + + def seek(self, frame: int) -> None: + """ + Seeks to the given frame in this sequence file. If you seek + beyond the end of the sequence, the method raises an + ``EOFError`` exception. When a sequence file is opened, the + library automatically seeks to frame 0. + + See :py:meth:`~PIL.Image.Image.tell`. + + If defined, :attr:`~PIL.Image.Image.n_frames` refers to the + number of available frames. + + :param frame: Frame number, starting at 0. + :exception EOFError: If the call attempts to seek beyond the end + of the sequence. + """ + + # overridden by file handlers + if frame != 0: + msg = "no more images in file" + raise EOFError(msg) + + def show(self, title: str | None = None) -> None: + """ + Displays this image. This method is mainly intended for debugging purposes. + + This method calls :py:func:`PIL.ImageShow.show` internally. You can use + :py:func:`PIL.ImageShow.register` to override its default behaviour. + + The image is first saved to a temporary file. By default, it will be in + PNG format. + + On Unix, the image is then opened using the **xdg-open**, **display**, + **gm**, **eog** or **xv** utility, depending on which one can be found. + + On macOS, the image is opened with the native Preview application. + + On Windows, the image is opened with the standard PNG display utility. + + :param title: Optional title to use for the image window, where possible. + """ + + from . import ImageShow + + ImageShow.show(self, title) + + def split(self) -> tuple[Image, ...]: + """ + Split this image into individual bands. This method returns a + tuple of individual image bands from an image. For example, + splitting an "RGB" image creates three new images each + containing a copy of one of the original bands (red, green, + blue). + + If you need only one band, :py:meth:`~PIL.Image.Image.getchannel` + method can be more convenient and faster. + + :returns: A tuple containing bands. + """ + + self.load() + if self.im.bands == 1: + return (self.copy(),) + return tuple(map(self._new, self.im.split())) + + def getchannel(self, channel: int | str) -> Image: + """ + Returns an image containing a single channel of the source image. + + :param channel: What channel to return. Could be index + (0 for "R" channel of "RGB") or channel name + ("A" for alpha channel of "RGBA"). + :returns: An image in "L" mode. + + .. versionadded:: 4.3.0 + """ + self.load() + + if isinstance(channel, str): + try: + channel = self.getbands().index(channel) + except ValueError as e: + msg = f'The image has no channel "{channel}"' + raise ValueError(msg) from e + + return self._new(self.im.getband(channel)) + + def tell(self) -> int: + """ + Returns the current frame number. See :py:meth:`~PIL.Image.Image.seek`. + + If defined, :attr:`~PIL.Image.Image.n_frames` refers to the + number of available frames. + + :returns: Frame number, starting with 0. + """ + return 0 + + def thumbnail( + self, + size: tuple[float, float], + resample: Resampling = Resampling.BICUBIC, + reducing_gap: float | None = 2.0, + ) -> None: + """ + Make this image into a thumbnail. This method modifies the + image to contain a thumbnail version of itself, no larger than + the given size. This method calculates an appropriate thumbnail + size to preserve the aspect of the image, calls the + :py:meth:`~PIL.Image.Image.draft` method to configure the file reader + (where applicable), and finally resizes the image. + + Note that this function modifies the :py:class:`~PIL.Image.Image` + object in place. If you need to use the full resolution image as well, + apply this method to a :py:meth:`~PIL.Image.Image.copy` of the original + image. + + :param size: The requested size in pixels, as a 2-tuple: + (width, height). + :param resample: Optional resampling filter. This can be one + of :py:data:`Resampling.NEAREST`, :py:data:`Resampling.BOX`, + :py:data:`Resampling.BILINEAR`, :py:data:`Resampling.HAMMING`, + :py:data:`Resampling.BICUBIC` or :py:data:`Resampling.LANCZOS`. + If omitted, it defaults to :py:data:`Resampling.BICUBIC`. + (was :py:data:`Resampling.NEAREST` prior to version 2.5.0). + See: :ref:`concept-filters`. + :param reducing_gap: Apply optimization by resizing the image + in two steps. First, reducing the image by integer times + using :py:meth:`~PIL.Image.Image.reduce` or + :py:meth:`~PIL.Image.Image.draft` for JPEG images. + Second, resizing using regular resampling. The last step + changes size no less than by ``reducing_gap`` times. + ``reducing_gap`` may be None (no first step is performed) + or should be greater than 1.0. The bigger ``reducing_gap``, + the closer the result to the fair resampling. + The smaller ``reducing_gap``, the faster resizing. + With ``reducing_gap`` greater or equal to 3.0, the result is + indistinguishable from fair resampling in most cases. + The default value is 2.0 (very close to fair resampling + while still being faster in many cases). + :returns: None + """ + + provided_size = tuple(map(math.floor, size)) + + def preserve_aspect_ratio() -> tuple[int, int] | None: + def round_aspect(number: float, key: Callable[[int], float]) -> int: + return max(min(math.floor(number), math.ceil(number), key=key), 1) + + x, y = provided_size + if x >= self.width and y >= self.height: + return None + + aspect = self.width / self.height + if x / y >= aspect: + x = round_aspect(y * aspect, key=lambda n: abs(aspect - n / y)) + else: + y = round_aspect( + x / aspect, key=lambda n: 0 if n == 0 else abs(aspect - x / n) + ) + return x, y + + preserved_size = preserve_aspect_ratio() + if preserved_size is None: + return + final_size = preserved_size + + box = None + if reducing_gap is not None: + res = self.draft( + None, (int(size[0] * reducing_gap), int(size[1] * reducing_gap)) + ) + if res is not None: + box = res[1] + + if self.size != final_size: + im = self.resize(final_size, resample, box=box, reducing_gap=reducing_gap) + + self.im = im.im + self._size = final_size + self._mode = self.im.mode + + self.readonly = 0 + + # FIXME: the different transform methods need further explanation + # instead of bloating the method docs, add a separate chapter. + def transform( + self, + size: tuple[int, int], + method: Transform | ImageTransformHandler | SupportsGetData, + data: Sequence[Any] | None = None, + resample: int = Resampling.NEAREST, + fill: int = 1, + fillcolor: float | tuple[float, ...] | str | None = None, + ) -> Image: + """ + Transforms this image. This method creates a new image with the + given size, and the same mode as the original, and copies data + to the new image using the given transform. + + :param size: The output size in pixels, as a 2-tuple: + (width, height). + :param method: The transformation method. This is one of + :py:data:`Transform.EXTENT` (cut out a rectangular subregion), + :py:data:`Transform.AFFINE` (affine transform), + :py:data:`Transform.PERSPECTIVE` (perspective transform), + :py:data:`Transform.QUAD` (map a quadrilateral to a rectangle), or + :py:data:`Transform.MESH` (map a number of source quadrilaterals + in one operation). + + It may also be an :py:class:`~PIL.Image.ImageTransformHandler` + object:: + + class Example(Image.ImageTransformHandler): + def transform(self, size, data, resample, fill=1): + # Return result + + Implementations of :py:class:`~PIL.Image.ImageTransformHandler` + for some of the :py:class:`Transform` methods are provided + in :py:mod:`~PIL.ImageTransform`. + + It may also be an object with a ``method.getdata`` method + that returns a tuple supplying new ``method`` and ``data`` values:: + + class Example: + def getdata(self): + method = Image.Transform.EXTENT + data = (0, 0, 100, 100) + return method, data + :param data: Extra data to the transformation method. + :param resample: Optional resampling filter. It can be one of + :py:data:`Resampling.NEAREST` (use nearest neighbour), + :py:data:`Resampling.BILINEAR` (linear interpolation in a 2x2 + environment), or :py:data:`Resampling.BICUBIC` (cubic spline + interpolation in a 4x4 environment). If omitted, or if the image + has mode "1" or "P", it is set to :py:data:`Resampling.NEAREST`. + See: :ref:`concept-filters`. + :param fill: If ``method`` is an + :py:class:`~PIL.Image.ImageTransformHandler` object, this is one of + the arguments passed to it. Otherwise, it is unused. + :param fillcolor: Optional fill color for the area outside the + transform in the output image. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + if self.mode in ("LA", "RGBA") and resample != Resampling.NEAREST: + return ( + self.convert({"LA": "La", "RGBA": "RGBa"}[self.mode]) + .transform(size, method, data, resample, fill, fillcolor) + .convert(self.mode) + ) + + if isinstance(method, ImageTransformHandler): + return method.transform(size, self, resample=resample, fill=fill) + + if hasattr(method, "getdata"): + # compatibility w. old-style transform objects + method, data = method.getdata() + + if data is None: + msg = "missing method data" + raise ValueError(msg) + + im = new(self.mode, size, fillcolor) + if self.mode == "P" and self.palette: + im.palette = self.palette.copy() + im.info = self.info.copy() + if method == Transform.MESH: + # list of quads + for box, quad in data: + im.__transformer( + box, self, Transform.QUAD, quad, resample, fillcolor is None + ) + else: + im.__transformer( + (0, 0) + size, self, method, data, resample, fillcolor is None + ) + + return im + + def __transformer( + self, + box: tuple[int, int, int, int], + image: Image, + method: Transform, + data: Sequence[float], + resample: int = Resampling.NEAREST, + fill: bool = True, + ) -> None: + w = box[2] - box[0] + h = box[3] - box[1] + + if method == Transform.AFFINE: + data = data[:6] + + elif method == Transform.EXTENT: + # convert extent to an affine transform + x0, y0, x1, y1 = data + xs = (x1 - x0) / w + ys = (y1 - y0) / h + method = Transform.AFFINE + data = (xs, 0, x0, 0, ys, y0) + + elif method == Transform.PERSPECTIVE: + data = data[:8] + + elif method == Transform.QUAD: + # quadrilateral warp. data specifies the four corners + # given as NW, SW, SE, and NE. + nw = data[:2] + sw = data[2:4] + se = data[4:6] + ne = data[6:8] + x0, y0 = nw + As = 1.0 / w + At = 1.0 / h + data = ( + x0, + (ne[0] - x0) * As, + (sw[0] - x0) * At, + (se[0] - sw[0] - ne[0] + x0) * As * At, + y0, + (ne[1] - y0) * As, + (sw[1] - y0) * At, + (se[1] - sw[1] - ne[1] + y0) * As * At, + ) + + else: + msg = "unknown transformation method" + raise ValueError(msg) + + if resample not in ( + Resampling.NEAREST, + Resampling.BILINEAR, + Resampling.BICUBIC, + ): + if resample in (Resampling.BOX, Resampling.HAMMING, Resampling.LANCZOS): + unusable: dict[int, str] = { + Resampling.BOX: "Image.Resampling.BOX", + Resampling.HAMMING: "Image.Resampling.HAMMING", + Resampling.LANCZOS: "Image.Resampling.LANCZOS", + } + msg = unusable[resample] + f" ({resample}) cannot be used." + else: + msg = f"Unknown resampling filter ({resample})." + + filters = [ + f"{filter[1]} ({filter[0]})" + for filter in ( + (Resampling.NEAREST, "Image.Resampling.NEAREST"), + (Resampling.BILINEAR, "Image.Resampling.BILINEAR"), + (Resampling.BICUBIC, "Image.Resampling.BICUBIC"), + ) + ] + msg += f" Use {', '.join(filters[:-1])} or {filters[-1]}" + raise ValueError(msg) + + image.load() + + self.load() + + if image.mode in ("1", "P"): + resample = Resampling.NEAREST + + self.im.transform(box, image.im, method, data, resample, fill) + + def transpose(self, method: Transpose) -> Image: + """ + Transpose image (flip or rotate in 90 degree steps) + + :param method: One of :py:data:`Transpose.FLIP_LEFT_RIGHT`, + :py:data:`Transpose.FLIP_TOP_BOTTOM`, :py:data:`Transpose.ROTATE_90`, + :py:data:`Transpose.ROTATE_180`, :py:data:`Transpose.ROTATE_270`, + :py:data:`Transpose.TRANSPOSE` or :py:data:`Transpose.TRANSVERSE`. + :returns: Returns a flipped or rotated copy of this image. + """ + + self.load() + return self._new(self.im.transpose(method)) + + def effect_spread(self, distance: int) -> Image: + """ + Randomly spread pixels in an image. + + :param distance: Distance to spread pixels. + """ + self.load() + return self._new(self.im.effect_spread(distance)) + + def toqimage(self) -> ImageQt.ImageQt: + """Returns a QImage copy of this image""" + from . import ImageQt + + if not ImageQt.qt_is_installed: + msg = "Qt bindings are not installed" + raise ImportError(msg) + return ImageQt.toqimage(self) + + def toqpixmap(self) -> ImageQt.QPixmap: + """Returns a QPixmap copy of this image""" + from . import ImageQt + + if not ImageQt.qt_is_installed: + msg = "Qt bindings are not installed" + raise ImportError(msg) + return ImageQt.toqpixmap(self) + + +# -------------------------------------------------------------------- +# Abstract handlers. + + +class ImagePointHandler(abc.ABC): + """ + Used as a mixin by point transforms + (for use with :py:meth:`~PIL.Image.Image.point`) + """ + + @abc.abstractmethod + def point(self, im: Image) -> Image: + pass + + +class ImageTransformHandler(abc.ABC): + """ + Used as a mixin by geometry transforms + (for use with :py:meth:`~PIL.Image.Image.transform`) + """ + + @abc.abstractmethod + def transform( + self, + size: tuple[int, int], + image: Image, + **options: Any, + ) -> Image: + pass + + +# -------------------------------------------------------------------- +# Factories + + +def _check_size(size: Any) -> None: + """ + Common check to enforce type and sanity check on size tuples + + :param size: Should be a 2 tuple of (width, height) + :returns: None, or raises a ValueError + """ + + if not isinstance(size, (list, tuple)): + msg = "Size must be a list or tuple" + raise ValueError(msg) + if len(size) != 2: + msg = "Size must be a sequence of length 2" + raise ValueError(msg) + if size[0] < 0 or size[1] < 0: + msg = "Width and height must be >= 0" + raise ValueError(msg) + + +def new( + mode: str, + size: tuple[int, int] | list[int], + color: float | tuple[float, ...] | str | None = 0, +) -> Image: + """ + Creates a new image with the given mode and size. + + :param mode: The mode to use for the new image. See: + :ref:`concept-modes`. + :param size: A 2-tuple, containing (width, height) in pixels. + :param color: What color to use for the image. Default is black. If given, + this should be a single integer or floating point value for single-band + modes, and a tuple for multi-band modes (one value per band). When + creating RGB or HSV images, you can also use color strings as supported + by the ImageColor module. See :ref:`colors` for more information. If the + color is None, the image is not initialised. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + _check_size(size) + + if color is None: + # don't initialize + return Image()._new(core.new(mode, size)) + + if isinstance(color, str): + # css3-style specifier + + from . import ImageColor + + color = ImageColor.getcolor(color, mode) + + im = Image() + if ( + mode == "P" + and isinstance(color, (list, tuple)) + and all(isinstance(i, int) for i in color) + ): + color_ints: tuple[int, ...] = cast(tuple[int, ...], tuple(color)) + if len(color_ints) == 3 or len(color_ints) == 4: + # RGB or RGBA value for a P image + from . import ImagePalette + + im.palette = ImagePalette.ImagePalette() + color = im.palette.getcolor(color_ints) + return im._new(core.fill(mode, size, color)) + + +def frombytes( + mode: str, + size: tuple[int, int], + data: bytes | bytearray | SupportsArrayInterface, + decoder_name: str = "raw", + *args: Any, +) -> Image: + """ + Creates a copy of an image memory from pixel data in a buffer. + + In its simplest form, this function takes three arguments + (mode, size, and unpacked pixel data). + + You can also use any pixel decoder supported by PIL. For more + information on available decoders, see the section + :ref:`Writing Your Own File Codec `. + + Note that this function decodes pixel data only, not entire images. + If you have an entire image in a string, wrap it in a + :py:class:`~io.BytesIO` object, and use :py:func:`~PIL.Image.open` to load + it. + + :param mode: The image mode. See: :ref:`concept-modes`. + :param size: The image size. + :param data: A byte buffer containing raw data for the given mode. + :param decoder_name: What decoder to use. + :param args: Additional parameters for the given decoder. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + _check_size(size) + + im = new(mode, size) + if im.width != 0 and im.height != 0: + decoder_args: Any = args + if len(decoder_args) == 1 and isinstance(decoder_args[0], tuple): + # may pass tuple instead of argument list + decoder_args = decoder_args[0] + + if decoder_name == "raw" and decoder_args == (): + decoder_args = mode + + im.frombytes(data, decoder_name, decoder_args) + return im + + +def frombuffer( + mode: str, + size: tuple[int, int], + data: bytes | SupportsArrayInterface, + decoder_name: str = "raw", + *args: Any, +) -> Image: + """ + Creates an image memory referencing pixel data in a byte buffer. + + This function is similar to :py:func:`~PIL.Image.frombytes`, but uses data + in the byte buffer, where possible. This means that changes to the + original buffer object are reflected in this image). Not all modes can + share memory; supported modes include "L", "RGBX", "RGBA", and "CMYK". + + Note that this function decodes pixel data only, not entire images. + If you have an entire image file in a string, wrap it in a + :py:class:`~io.BytesIO` object, and use :py:func:`~PIL.Image.open` to load it. + + The default parameters used for the "raw" decoder differs from that used for + :py:func:`~PIL.Image.frombytes`. This is a bug, and will probably be fixed in a + future release. The current release issues a warning if you do this; to disable + the warning, you should provide the full set of parameters. See below for details. + + :param mode: The image mode. See: :ref:`concept-modes`. + :param size: The image size. + :param data: A bytes or other buffer object containing raw + data for the given mode. + :param decoder_name: What decoder to use. + :param args: Additional parameters for the given decoder. For the + default encoder ("raw"), it's recommended that you provide the + full set of parameters:: + + frombuffer(mode, size, data, "raw", mode, 0, 1) + + :returns: An :py:class:`~PIL.Image.Image` object. + + .. versionadded:: 1.1.4 + """ + + _check_size(size) + + # may pass tuple instead of argument list + if len(args) == 1 and isinstance(args[0], tuple): + args = args[0] + + if decoder_name == "raw": + if args == (): + args = mode, 0, 1 + if args[0] in _MAPMODES: + im = new(mode, (0, 0)) + im = im._new(core.map_buffer(data, size, decoder_name, 0, args)) + if mode == "P": + from . import ImagePalette + + im.palette = ImagePalette.ImagePalette("RGB", im.im.getpalette("RGB")) + im.readonly = 1 + return im + + return frombytes(mode, size, data, decoder_name, args) + + +class SupportsArrayInterface(Protocol): + """ + An object that has an ``__array_interface__`` dictionary. + """ + + @property + def __array_interface__(self) -> dict[str, Any]: + raise NotImplementedError() + + +class SupportsArrowArrayInterface(Protocol): + """ + An object that has an ``__arrow_c_array__`` method corresponding to the arrow c + data interface. + """ + + def __arrow_c_array__( + self, requested_schema: "PyCapsule" = None # type: ignore[name-defined] # noqa: F821, UP037 + ) -> tuple["PyCapsule", "PyCapsule"]: # type: ignore[name-defined] # noqa: F821, UP037 + raise NotImplementedError() + + +def fromarray(obj: SupportsArrayInterface, mode: str | None = None) -> Image: + """ + Creates an image memory from an object exporting the array interface + (using the buffer protocol):: + + from PIL import Image + import numpy as np + a = np.zeros((5, 5)) + im = Image.fromarray(a) + + If ``obj`` is not contiguous, then the ``tobytes`` method is called + and :py:func:`~PIL.Image.frombuffer` is used. + + In the case of NumPy, be aware that Pillow modes do not always correspond + to NumPy dtypes. Pillow modes only offer 1-bit pixels, 8-bit pixels, + 32-bit signed integer pixels, and 32-bit floating point pixels. + + Pillow images can also be converted to arrays:: + + from PIL import Image + import numpy as np + im = Image.open("hopper.jpg") + a = np.asarray(im) + + When converting Pillow images to arrays however, only pixel values are + transferred. This means that P and PA mode images will lose their palette. + + :param obj: Object with array interface + :param mode: Optional mode to use when reading ``obj``. Since pixel values do not + contain information about palettes or color spaces, this can be used to place + grayscale L mode data within a P mode image, or read RGB data as YCbCr for + example. + + See: :ref:`concept-modes` for general information about modes. + :returns: An image object. + + .. versionadded:: 1.1.6 + """ + arr = obj.__array_interface__ + shape = arr["shape"] + ndim = len(shape) + strides = arr.get("strides", None) + try: + typekey = (1, 1) + shape[2:], arr["typestr"] + except KeyError as e: + if mode is not None: + typekey = None + color_modes: list[str] = [] + else: + msg = "Cannot handle this data type" + raise TypeError(msg) from e + if typekey is not None: + try: + typemode, rawmode, color_modes = _fromarray_typemap[typekey] + except KeyError as e: + typekey_shape, typestr = typekey + msg = f"Cannot handle this data type: {typekey_shape}, {typestr}" + raise TypeError(msg) from e + if mode is not None: + if mode != typemode and mode not in color_modes: + deprecate("'mode' parameter for changing data types", 13) + rawmode = mode + else: + mode = typemode + if mode in ["1", "L", "I", "P", "F"]: + ndmax = 2 + elif mode == "RGB": + ndmax = 3 + else: + ndmax = 4 + if ndim > ndmax: + msg = f"Too many dimensions: {ndim} > {ndmax}." + raise ValueError(msg) + + size = 1 if ndim == 1 else shape[1], shape[0] + if strides is not None: + if hasattr(obj, "tobytes"): + obj = obj.tobytes() + elif hasattr(obj, "tostring"): + obj = obj.tostring() + else: + msg = "'strides' requires either tobytes() or tostring()" + raise ValueError(msg) + + return frombuffer(mode, size, obj, "raw", rawmode, 0, 1) + + +def fromarrow( + obj: SupportsArrowArrayInterface, mode: str, size: tuple[int, int] +) -> Image: + """Creates an image with zero-copy shared memory from an object exporting + the arrow_c_array interface protocol:: + + from PIL import Image + import pyarrow as pa + arr = pa.array([0]*(5*5*4), type=pa.uint8()) + im = Image.fromarrow(arr, 'RGBA', (5, 5)) + + If the data representation of the ``obj`` is not compatible with + Pillow internal storage, a ValueError is raised. + + Pillow images can also be converted to Arrow objects:: + + from PIL import Image + import pyarrow as pa + im = Image.open('hopper.jpg') + arr = pa.array(im) + + As with array support, when converting Pillow images to arrays, + only pixel values are transferred. This means that P and PA mode + images will lose their palette. + + :param obj: Object with an arrow_c_array interface + :param mode: Image mode. + :param size: Image size. This must match the storage of the arrow object. + :returns: An Image object + + Note that according to the Arrow spec, both the producer and the + consumer should consider the exported array to be immutable, as + unsynchronized updates will potentially cause inconsistent data. + + See: :ref:`arrow-support` for more detailed information + + .. versionadded:: 11.2.1 + + """ + if not hasattr(obj, "__arrow_c_array__"): + msg = "arrow_c_array interface not found" + raise ValueError(msg) + + (schema_capsule, array_capsule) = obj.__arrow_c_array__() + _im = core.new_arrow(mode, size, schema_capsule, array_capsule) + if _im: + return Image()._new(_im) + + msg = "new_arrow returned None without an exception" + raise ValueError(msg) + + +def fromqimage(im: ImageQt.QImage) -> ImageFile.ImageFile: + """Creates an image instance from a QImage image""" + from . import ImageQt + + if not ImageQt.qt_is_installed: + msg = "Qt bindings are not installed" + raise ImportError(msg) + return ImageQt.fromqimage(im) + + +def fromqpixmap(im: ImageQt.QPixmap) -> ImageFile.ImageFile: + """Creates an image instance from a QPixmap image""" + from . import ImageQt + + if not ImageQt.qt_is_installed: + msg = "Qt bindings are not installed" + raise ImportError(msg) + return ImageQt.fromqpixmap(im) + + +_fromarray_typemap = { + # (shape, typestr) => mode, rawmode, color modes + # first two members of shape are set to one + ((1, 1), "|b1"): ("1", "1;8", []), + ((1, 1), "|u1"): ("L", "L", ["P"]), + ((1, 1), "|i1"): ("I", "I;8", []), + ((1, 1), "u2"): ("I", "I;16B", []), + ((1, 1), "i2"): ("I", "I;16BS", []), + ((1, 1), "u4"): ("I", "I;32B", []), + ((1, 1), "i4"): ("I", "I;32BS", []), + ((1, 1), "f4"): ("F", "F;32BF", []), + ((1, 1), "f8"): ("F", "F;64BF", []), + ((1, 1, 2), "|u1"): ("LA", "LA", ["La", "PA"]), + ((1, 1, 3), "|u1"): ("RGB", "RGB", ["YCbCr", "LAB", "HSV"]), + ((1, 1, 4), "|u1"): ("RGBA", "RGBA", ["RGBa", "RGBX", "CMYK"]), + # shortcuts: + ((1, 1), f"{_ENDIAN}i4"): ("I", "I", []), + ((1, 1), f"{_ENDIAN}f4"): ("F", "F", []), +} + + +def _decompression_bomb_check(size: tuple[int, int]) -> None: + if MAX_IMAGE_PIXELS is None: + return + + pixels = max(1, size[0]) * max(1, size[1]) + + if pixels > 2 * MAX_IMAGE_PIXELS: + msg = ( + f"Image size ({pixels} pixels) exceeds limit of {2 * MAX_IMAGE_PIXELS} " + "pixels, could be decompression bomb DOS attack." + ) + raise DecompressionBombError(msg) + + if pixels > MAX_IMAGE_PIXELS: + warnings.warn( + f"Image size ({pixels} pixels) exceeds limit of {MAX_IMAGE_PIXELS} pixels, " + "could be decompression bomb DOS attack.", + DecompressionBombWarning, + ) + + +def open( + fp: StrOrBytesPath | IO[bytes], + mode: Literal["r"] = "r", + formats: list[str] | tuple[str, ...] | None = None, +) -> ImageFile.ImageFile: + """ + Opens and identifies the given image file. + + This is a lazy operation; this function identifies the file, but + the file remains open and the actual image data is not read from + the file until you try to process the data (or call the + :py:meth:`~PIL.Image.Image.load` method). See + :py:func:`~PIL.Image.new`. See :ref:`file-handling`. + + :param fp: A filename (string), os.PathLike object or a file object. + The file object must implement ``file.read``, + ``file.seek``, and ``file.tell`` methods, + and be opened in binary mode. The file object will also seek to zero + before reading. + :param mode: The mode. If given, this argument must be "r". + :param formats: A list or tuple of formats to attempt to load the file in. + This can be used to restrict the set of formats checked. + Pass ``None`` to try all supported formats. You can print the set of + available formats by running ``python3 -m PIL`` or using + the :py:func:`PIL.features.pilinfo` function. + :returns: An :py:class:`~PIL.Image.Image` object. + :exception FileNotFoundError: If the file cannot be found. + :exception PIL.UnidentifiedImageError: If the image cannot be opened and + identified. + :exception ValueError: If the ``mode`` is not "r", or if a ``StringIO`` + instance is used for ``fp``. + :exception TypeError: If ``formats`` is not ``None``, a list or a tuple. + """ + + if mode != "r": + msg = f"bad mode {repr(mode)}" # type: ignore[unreachable] + raise ValueError(msg) + elif isinstance(fp, io.StringIO): + msg = ( # type: ignore[unreachable] + "StringIO cannot be used to open an image. " + "Binary data must be used instead." + ) + raise ValueError(msg) + + if formats is None: + formats = ID + elif not isinstance(formats, (list, tuple)): + msg = "formats must be a list or tuple" # type: ignore[unreachable] + raise TypeError(msg) + + exclusive_fp = False + filename: str | bytes = "" + if is_path(fp): + filename = os.fspath(fp) + fp = builtins.open(filename, "rb") + exclusive_fp = True + else: + fp = cast(IO[bytes], fp) + + try: + fp.seek(0) + except (AttributeError, io.UnsupportedOperation): + fp = io.BytesIO(fp.read()) + exclusive_fp = True + + prefix = fp.read(16) + + preinit() + + warning_messages: list[str] = [] + + def _open_core( + fp: IO[bytes], + filename: str | bytes, + prefix: bytes, + formats: list[str] | tuple[str, ...], + ) -> ImageFile.ImageFile | None: + for i in formats: + i = i.upper() + if i not in OPEN: + init() + try: + factory, accept = OPEN[i] + result = not accept or accept(prefix) + if isinstance(result, str): + warning_messages.append(result) + elif result: + fp.seek(0) + im = factory(fp, filename) + _decompression_bomb_check(im.size) + return im + except (SyntaxError, IndexError, TypeError, struct.error) as e: + if WARN_POSSIBLE_FORMATS: + warning_messages.append(i + " opening failed. " + str(e)) + except BaseException: + if exclusive_fp: + fp.close() + raise + return None + + im = _open_core(fp, filename, prefix, formats) + + if im is None and formats is ID: + checked_formats = ID.copy() + if init(): + im = _open_core( + fp, + filename, + prefix, + tuple(format for format in formats if format not in checked_formats), + ) + + if im: + im._exclusive_fp = exclusive_fp + return im + + if exclusive_fp: + fp.close() + for message in warning_messages: + warnings.warn(message) + msg = "cannot identify image file %r" % (filename if filename else fp) + raise UnidentifiedImageError(msg) + + +# +# Image processing. + + +def alpha_composite(im1: Image, im2: Image) -> Image: + """ + Alpha composite im2 over im1. + + :param im1: The first image. Must have mode RGBA or LA. + :param im2: The second image. Must have the same mode and size as the first image. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + im1.load() + im2.load() + return im1._new(core.alpha_composite(im1.im, im2.im)) + + +def blend(im1: Image, im2: Image, alpha: float) -> Image: + """ + Creates a new image by interpolating between two input images, using + a constant alpha:: + + out = image1 * (1.0 - alpha) + image2 * alpha + + :param im1: The first image. + :param im2: The second image. Must have the same mode and size as + the first image. + :param alpha: The interpolation alpha factor. If alpha is 0.0, a + copy of the first image is returned. If alpha is 1.0, a copy of + the second image is returned. There are no restrictions on the + alpha value. If necessary, the result is clipped to fit into + the allowed output range. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + im1.load() + im2.load() + return im1._new(core.blend(im1.im, im2.im, alpha)) + + +def composite(image1: Image, image2: Image, mask: Image) -> Image: + """ + Create composite image by blending images using a transparency mask. + + :param image1: The first image. + :param image2: The second image. Must have the same mode and + size as the first image. + :param mask: A mask image. This image can have mode + "1", "L", or "RGBA", and must have the same size as the + other two images. + """ + + image = image2.copy() + image.paste(image1, None, mask) + return image + + +def eval(image: Image, *args: Callable[[int], float]) -> Image: + """ + Applies the function (which should take one argument) to each pixel + in the given image. If the image has more than one band, the same + function is applied to each band. Note that the function is + evaluated once for each possible pixel value, so you cannot use + random components or other generators. + + :param image: The input image. + :param function: A function object, taking one integer argument. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + return image.point(args[0]) + + +def merge(mode: str, bands: Sequence[Image]) -> Image: + """ + Merge a set of single band images into a new multiband image. + + :param mode: The mode to use for the output image. See: + :ref:`concept-modes`. + :param bands: A sequence containing one single-band image for + each band in the output image. All bands must have the + same size. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + if getmodebands(mode) != len(bands) or "*" in mode: + msg = "wrong number of bands" + raise ValueError(msg) + for band in bands[1:]: + if band.mode != getmodetype(mode): + msg = "mode mismatch" + raise ValueError(msg) + if band.size != bands[0].size: + msg = "size mismatch" + raise ValueError(msg) + for band in bands: + band.load() + return bands[0]._new(core.merge(mode, *[b.im for b in bands])) + + +# -------------------------------------------------------------------- +# Plugin registry + + +def register_open( + id: str, + factory: ( + Callable[[IO[bytes], str | bytes], ImageFile.ImageFile] + | type[ImageFile.ImageFile] + ), + accept: Callable[[bytes], bool | str] | None = None, +) -> None: + """ + Register an image file plugin. This function should not be used + in application code. + + :param id: An image format identifier. + :param factory: An image file factory method. + :param accept: An optional function that can be used to quickly + reject images having another format. + """ + id = id.upper() + if id not in ID: + ID.append(id) + OPEN[id] = factory, accept + + +def register_mime(id: str, mimetype: str) -> None: + """ + Registers an image MIME type by populating ``Image.MIME``. This function + should not be used in application code. + + ``Image.MIME`` provides a mapping from image format identifiers to mime + formats, but :py:meth:`~PIL.ImageFile.ImageFile.get_format_mimetype` can + provide a different result for specific images. + + :param id: An image format identifier. + :param mimetype: The image MIME type for this format. + """ + MIME[id.upper()] = mimetype + + +def register_save( + id: str, driver: Callable[[Image, IO[bytes], str | bytes], None] +) -> None: + """ + Registers an image save function. This function should not be + used in application code. + + :param id: An image format identifier. + :param driver: A function to save images in this format. + """ + SAVE[id.upper()] = driver + + +def register_save_all( + id: str, driver: Callable[[Image, IO[bytes], str | bytes], None] +) -> None: + """ + Registers an image function to save all the frames + of a multiframe format. This function should not be + used in application code. + + :param id: An image format identifier. + :param driver: A function to save images in this format. + """ + SAVE_ALL[id.upper()] = driver + + +def register_extension(id: str, extension: str) -> None: + """ + Registers an image extension. This function should not be + used in application code. + + :param id: An image format identifier. + :param extension: An extension used for this format. + """ + EXTENSION[extension.lower()] = id.upper() + + +def register_extensions(id: str, extensions: list[str]) -> None: + """ + Registers image extensions. This function should not be + used in application code. + + :param id: An image format identifier. + :param extensions: A list of extensions used for this format. + """ + for extension in extensions: + register_extension(id, extension) + + +def registered_extensions() -> dict[str, str]: + """ + Returns a dictionary containing all file extensions belonging + to registered plugins + """ + init() + return EXTENSION + + +def register_decoder(name: str, decoder: type[ImageFile.PyDecoder]) -> None: + """ + Registers an image decoder. This function should not be + used in application code. + + :param name: The name of the decoder + :param decoder: An ImageFile.PyDecoder object + + .. versionadded:: 4.1.0 + """ + DECODERS[name] = decoder + + +def register_encoder(name: str, encoder: type[ImageFile.PyEncoder]) -> None: + """ + Registers an image encoder. This function should not be + used in application code. + + :param name: The name of the encoder + :param encoder: An ImageFile.PyEncoder object + + .. versionadded:: 4.1.0 + """ + ENCODERS[name] = encoder + + +# -------------------------------------------------------------------- +# Simple display support. + + +def _show(image: Image, **options: Any) -> None: + from . import ImageShow + + deprecate("Image._show", 13, "ImageShow.show") + ImageShow.show(image, **options) + + +# -------------------------------------------------------------------- +# Effects + + +def effect_mandelbrot( + size: tuple[int, int], extent: tuple[float, float, float, float], quality: int +) -> Image: + """ + Generate a Mandelbrot set covering the given extent. + + :param size: The requested size in pixels, as a 2-tuple: + (width, height). + :param extent: The extent to cover, as a 4-tuple: + (x0, y0, x1, y1). + :param quality: Quality. + """ + return Image()._new(core.effect_mandelbrot(size, extent, quality)) + + +def effect_noise(size: tuple[int, int], sigma: float) -> Image: + """ + Generate Gaussian noise centered around 128. + + :param size: The requested size in pixels, as a 2-tuple: + (width, height). + :param sigma: Standard deviation of noise. + """ + return Image()._new(core.effect_noise(size, sigma)) + + +def linear_gradient(mode: str) -> Image: + """ + Generate 256x256 linear gradient from black to white, top to bottom. + + :param mode: Input mode. + """ + return Image()._new(core.linear_gradient(mode)) + + +def radial_gradient(mode: str) -> Image: + """ + Generate 256x256 radial gradient from black to white, centre to edge. + + :param mode: Input mode. + """ + return Image()._new(core.radial_gradient(mode)) + + +# -------------------------------------------------------------------- +# Resources + + +def _apply_env_variables(env: dict[str, str] | None = None) -> None: + env_dict = env if env is not None else os.environ + + for var_name, setter in [ + ("PILLOW_ALIGNMENT", core.set_alignment), + ("PILLOW_BLOCK_SIZE", core.set_block_size), + ("PILLOW_BLOCKS_MAX", core.set_blocks_max), + ]: + if var_name not in env_dict: + continue + + var = env_dict[var_name].lower() + + units = 1 + for postfix, mul in [("k", 1024), ("m", 1024 * 1024)]: + if var.endswith(postfix): + units = mul + var = var[: -len(postfix)] + + try: + var_int = int(var) * units + except ValueError: + warnings.warn(f"{var_name} is not int") + continue + + try: + setter(var_int) + except ValueError as e: + warnings.warn(f"{var_name}: {e}") + + +_apply_env_variables() +atexit.register(core.clear_cache) + + +if TYPE_CHECKING: + _ExifBase = MutableMapping[int, Any] +else: + _ExifBase = MutableMapping + + +class Exif(_ExifBase): + """ + This class provides read and write access to EXIF image data:: + + from PIL import Image + im = Image.open("exif.png") + exif = im.getexif() # Returns an instance of this class + + Information can be read and written, iterated over or deleted:: + + print(exif[274]) # 1 + exif[274] = 2 + for k, v in exif.items(): + print("Tag", k, "Value", v) # Tag 274 Value 2 + del exif[274] + + To access information beyond IFD0, :py:meth:`~PIL.Image.Exif.get_ifd` + returns a dictionary:: + + from PIL import ExifTags + im = Image.open("exif_gps.jpg") + exif = im.getexif() + gps_ifd = exif.get_ifd(ExifTags.IFD.GPSInfo) + print(gps_ifd) + + Other IFDs include ``ExifTags.IFD.Exif``, ``ExifTags.IFD.MakerNote``, + ``ExifTags.IFD.Interop`` and ``ExifTags.IFD.IFD1``. + + :py:mod:`~PIL.ExifTags` also has enum classes to provide names for data:: + + print(exif[ExifTags.Base.Software]) # PIL + print(gps_ifd[ExifTags.GPS.GPSDateStamp]) # 1999:99:99 99:99:99 + """ + + endian: str | None = None + bigtiff = False + _loaded = False + + def __init__(self) -> None: + self._data: dict[int, Any] = {} + self._hidden_data: dict[int, Any] = {} + self._ifds: dict[int, dict[int, Any]] = {} + self._info: TiffImagePlugin.ImageFileDirectory_v2 | None = None + self._loaded_exif: bytes | None = None + + def _fixup(self, value: Any) -> Any: + try: + if len(value) == 1 and isinstance(value, tuple): + return value[0] + except Exception: + pass + return value + + def _fixup_dict(self, src_dict: dict[int, Any]) -> dict[int, Any]: + # Helper function + # returns a dict with any single item tuples/lists as individual values + return {k: self._fixup(v) for k, v in src_dict.items()} + + def _get_ifd_dict( + self, offset: int, group: int | None = None + ) -> dict[int, Any] | None: + try: + # an offset pointer to the location of the nested embedded IFD. + # It should be a long, but may be corrupted. + self.fp.seek(offset) + except (KeyError, TypeError): + return None + else: + from . import TiffImagePlugin + + info = TiffImagePlugin.ImageFileDirectory_v2(self.head, group=group) + info.load(self.fp) + return self._fixup_dict(dict(info)) + + def _get_head(self) -> bytes: + version = b"\x2b" if self.bigtiff else b"\x2a" + if self.endian == "<": + head = b"II" + version + b"\x00" + o32le(8) + else: + head = b"MM\x00" + version + o32be(8) + if self.bigtiff: + head += o32le(8) if self.endian == "<" else o32be(8) + head += b"\x00\x00\x00\x00" + return head + + def load(self, data: bytes) -> None: + # Extract EXIF information. This is highly experimental, + # and is likely to be replaced with something better in a future + # version. + + # The EXIF record consists of a TIFF file embedded in a JPEG + # application marker (!). + if data == self._loaded_exif: + return + self._loaded_exif = data + self._data.clear() + self._hidden_data.clear() + self._ifds.clear() + while data and data.startswith(b"Exif\x00\x00"): + data = data[6:] + if not data: + self._info = None + return + + self.fp: IO[bytes] = io.BytesIO(data) + self.head = self.fp.read(8) + # process dictionary + from . import TiffImagePlugin + + self._info = TiffImagePlugin.ImageFileDirectory_v2(self.head) + self.endian = self._info._endian + self.fp.seek(self._info.next) + self._info.load(self.fp) + + def load_from_fp(self, fp: IO[bytes], offset: int | None = None) -> None: + self._loaded_exif = None + self._data.clear() + self._hidden_data.clear() + self._ifds.clear() + + # process dictionary + from . import TiffImagePlugin + + self.fp = fp + if offset is not None: + self.head = self._get_head() + else: + self.head = self.fp.read(8) + self._info = TiffImagePlugin.ImageFileDirectory_v2(self.head) + if self.endian is None: + self.endian = self._info._endian + if offset is None: + offset = self._info.next + self.fp.tell() + self.fp.seek(offset) + self._info.load(self.fp) + + def _get_merged_dict(self) -> dict[int, Any]: + merged_dict = dict(self) + + # get EXIF extension + if ExifTags.IFD.Exif in self: + ifd = self._get_ifd_dict(self[ExifTags.IFD.Exif], ExifTags.IFD.Exif) + if ifd: + merged_dict.update(ifd) + + # GPS + if ExifTags.IFD.GPSInfo in self: + merged_dict[ExifTags.IFD.GPSInfo] = self._get_ifd_dict( + self[ExifTags.IFD.GPSInfo], ExifTags.IFD.GPSInfo + ) + + return merged_dict + + def tobytes(self, offset: int = 8) -> bytes: + from . import TiffImagePlugin + + head = self._get_head() + ifd = TiffImagePlugin.ImageFileDirectory_v2(ifh=head) + for tag, ifd_dict in self._ifds.items(): + if tag not in self: + ifd[tag] = ifd_dict + for tag, value in self.items(): + if tag in [ + ExifTags.IFD.Exif, + ExifTags.IFD.GPSInfo, + ] and not isinstance(value, dict): + value = self.get_ifd(tag) + if ( + tag == ExifTags.IFD.Exif + and ExifTags.IFD.Interop in value + and not isinstance(value[ExifTags.IFD.Interop], dict) + ): + value = value.copy() + value[ExifTags.IFD.Interop] = self.get_ifd(ExifTags.IFD.Interop) + ifd[tag] = value + return b"Exif\x00\x00" + head + ifd.tobytes(offset) + + def get_ifd(self, tag: int) -> dict[int, Any]: + if tag not in self._ifds: + if tag == ExifTags.IFD.IFD1: + if self._info is not None and self._info.next != 0: + ifd = self._get_ifd_dict(self._info.next) + if ifd is not None: + self._ifds[tag] = ifd + elif tag in [ExifTags.IFD.Exif, ExifTags.IFD.GPSInfo]: + offset = self._hidden_data.get(tag, self.get(tag)) + if offset is not None: + ifd = self._get_ifd_dict(offset, tag) + if ifd is not None: + self._ifds[tag] = ifd + elif tag in [ExifTags.IFD.Interop, ExifTags.IFD.MakerNote]: + if ExifTags.IFD.Exif not in self._ifds: + self.get_ifd(ExifTags.IFD.Exif) + tag_data = self._ifds[ExifTags.IFD.Exif][tag] + if tag == ExifTags.IFD.MakerNote: + from .TiffImagePlugin import ImageFileDirectory_v2 + + if tag_data.startswith(b"FUJIFILM"): + ifd_offset = i32le(tag_data, 8) + ifd_data = tag_data[ifd_offset:] + + makernote = {} + for i in range(struct.unpack(" 4: + (offset,) = struct.unpack("H", tag_data[:2])[0]): + ifd_tag, typ, count, data = struct.unpack( + ">HHL4s", tag_data[i * 12 + 2 : (i + 1) * 12 + 2] + ) + if ifd_tag == 0x1101: + # CameraInfo + (offset,) = struct.unpack(">L", data) + self.fp.seek(offset) + + camerainfo: dict[str, int | bytes] = { + "ModelID": self.fp.read(4) + } + + self.fp.read(4) + # Seconds since 2000 + camerainfo["TimeStamp"] = i32le(self.fp.read(12)) + + self.fp.read(4) + camerainfo["InternalSerialNumber"] = self.fp.read(4) + + self.fp.read(12) + parallax = self.fp.read(4) + handler = ImageFileDirectory_v2._load_dispatch[ + TiffTags.FLOAT + ][1] + camerainfo["Parallax"] = handler( + ImageFileDirectory_v2(), parallax, False + )[0] + + self.fp.read(4) + camerainfo["Category"] = self.fp.read(2) + + makernote = {0x1101: camerainfo} + self._ifds[tag] = makernote + else: + # Interop + ifd = self._get_ifd_dict(tag_data, tag) + if ifd is not None: + self._ifds[tag] = ifd + ifd = self._ifds.setdefault(tag, {}) + if tag == ExifTags.IFD.Exif and self._hidden_data: + ifd = { + k: v + for (k, v) in ifd.items() + if k not in (ExifTags.IFD.Interop, ExifTags.IFD.MakerNote) + } + return ifd + + def hide_offsets(self) -> None: + for tag in (ExifTags.IFD.Exif, ExifTags.IFD.GPSInfo): + if tag in self: + self._hidden_data[tag] = self[tag] + del self[tag] + + def __str__(self) -> str: + if self._info is not None: + # Load all keys into self._data + for tag in self._info: + self[tag] + + return str(self._data) + + def __len__(self) -> int: + keys = set(self._data) + if self._info is not None: + keys.update(self._info) + return len(keys) + + def __getitem__(self, tag: int) -> Any: + if self._info is not None and tag not in self._data and tag in self._info: + self._data[tag] = self._fixup(self._info[tag]) + del self._info[tag] + return self._data[tag] + + def __contains__(self, tag: object) -> bool: + return tag in self._data or (self._info is not None and tag in self._info) + + def __setitem__(self, tag: int, value: Any) -> None: + if self._info is not None and tag in self._info: + del self._info[tag] + self._data[tag] = value + + def __delitem__(self, tag: int) -> None: + if self._info is not None and tag in self._info: + del self._info[tag] + else: + del self._data[tag] + if tag in self._ifds: + del self._ifds[tag] + + def __iter__(self) -> Iterator[int]: + keys = set(self._data) + if self._info is not None: + keys.update(self._info) + return iter(keys) diff --git a/venv/lib/python3.11/site-packages/PIL/ImageChops.py b/venv/lib/python3.11/site-packages/PIL/ImageChops.py new file mode 100644 index 0000000..29a5c99 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ImageChops.py @@ -0,0 +1,311 @@ +# +# The Python Imaging Library. +# $Id$ +# +# standard channel operations +# +# History: +# 1996-03-24 fl Created +# 1996-08-13 fl Added logical operations (for "1" images) +# 2000-10-12 fl Added offset method (from Image.py) +# +# Copyright (c) 1997-2000 by Secret Labs AB +# Copyright (c) 1996-2000 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from __future__ import annotations + +from . import Image + + +def constant(image: Image.Image, value: int) -> Image.Image: + """Fill a channel with a given gray level. + + :rtype: :py:class:`~PIL.Image.Image` + """ + + return Image.new("L", image.size, value) + + +def duplicate(image: Image.Image) -> Image.Image: + """Copy a channel. Alias for :py:meth:`PIL.Image.Image.copy`. + + :rtype: :py:class:`~PIL.Image.Image` + """ + + return image.copy() + + +def invert(image: Image.Image) -> Image.Image: + """ + Invert an image (channel). :: + + out = MAX - image + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image.load() + return image._new(image.im.chop_invert()) + + +def lighter(image1: Image.Image, image2: Image.Image) -> Image.Image: + """ + Compares the two images, pixel by pixel, and returns a new image containing + the lighter values. :: + + out = max(image1, image2) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_lighter(image2.im)) + + +def darker(image1: Image.Image, image2: Image.Image) -> Image.Image: + """ + Compares the two images, pixel by pixel, and returns a new image containing + the darker values. :: + + out = min(image1, image2) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_darker(image2.im)) + + +def difference(image1: Image.Image, image2: Image.Image) -> Image.Image: + """ + Returns the absolute value of the pixel-by-pixel difference between the two + images. :: + + out = abs(image1 - image2) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_difference(image2.im)) + + +def multiply(image1: Image.Image, image2: Image.Image) -> Image.Image: + """ + Superimposes two images on top of each other. + + If you multiply an image with a solid black image, the result is black. If + you multiply with a solid white image, the image is unaffected. :: + + out = image1 * image2 / MAX + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_multiply(image2.im)) + + +def screen(image1: Image.Image, image2: Image.Image) -> Image.Image: + """ + Superimposes two inverted images on top of each other. :: + + out = MAX - ((MAX - image1) * (MAX - image2) / MAX) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_screen(image2.im)) + + +def soft_light(image1: Image.Image, image2: Image.Image) -> Image.Image: + """ + Superimposes two images on top of each other using the Soft Light algorithm + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_soft_light(image2.im)) + + +def hard_light(image1: Image.Image, image2: Image.Image) -> Image.Image: + """ + Superimposes two images on top of each other using the Hard Light algorithm + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_hard_light(image2.im)) + + +def overlay(image1: Image.Image, image2: Image.Image) -> Image.Image: + """ + Superimposes two images on top of each other using the Overlay algorithm + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_overlay(image2.im)) + + +def add( + image1: Image.Image, image2: Image.Image, scale: float = 1.0, offset: float = 0 +) -> Image.Image: + """ + Adds two images, dividing the result by scale and adding the + offset. If omitted, scale defaults to 1.0, and offset to 0.0. :: + + out = ((image1 + image2) / scale + offset) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_add(image2.im, scale, offset)) + + +def subtract( + image1: Image.Image, image2: Image.Image, scale: float = 1.0, offset: float = 0 +) -> Image.Image: + """ + Subtracts two images, dividing the result by scale and adding the offset. + If omitted, scale defaults to 1.0, and offset to 0.0. :: + + out = ((image1 - image2) / scale + offset) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_subtract(image2.im, scale, offset)) + + +def add_modulo(image1: Image.Image, image2: Image.Image) -> Image.Image: + """Add two images, without clipping the result. :: + + out = ((image1 + image2) % MAX) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_add_modulo(image2.im)) + + +def subtract_modulo(image1: Image.Image, image2: Image.Image) -> Image.Image: + """Subtract two images, without clipping the result. :: + + out = ((image1 - image2) % MAX) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_subtract_modulo(image2.im)) + + +def logical_and(image1: Image.Image, image2: Image.Image) -> Image.Image: + """Logical AND between two images. + + Both of the images must have mode "1". If you would like to perform a + logical AND on an image with a mode other than "1", try + :py:meth:`~PIL.ImageChops.multiply` instead, using a black-and-white mask + as the second image. :: + + out = ((image1 and image2) % MAX) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_and(image2.im)) + + +def logical_or(image1: Image.Image, image2: Image.Image) -> Image.Image: + """Logical OR between two images. + + Both of the images must have mode "1". :: + + out = ((image1 or image2) % MAX) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_or(image2.im)) + + +def logical_xor(image1: Image.Image, image2: Image.Image) -> Image.Image: + """Logical XOR between two images. + + Both of the images must have mode "1". :: + + out = ((bool(image1) != bool(image2)) % MAX) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_xor(image2.im)) + + +def blend(image1: Image.Image, image2: Image.Image, alpha: float) -> Image.Image: + """Blend images using constant transparency weight. Alias for + :py:func:`PIL.Image.blend`. + + :rtype: :py:class:`~PIL.Image.Image` + """ + + return Image.blend(image1, image2, alpha) + + +def composite( + image1: Image.Image, image2: Image.Image, mask: Image.Image +) -> Image.Image: + """Create composite using transparency mask. Alias for + :py:func:`PIL.Image.composite`. + + :rtype: :py:class:`~PIL.Image.Image` + """ + + return Image.composite(image1, image2, mask) + + +def offset(image: Image.Image, xoffset: int, yoffset: int | None = None) -> Image.Image: + """Returns a copy of the image where data has been offset by the given + distances. Data wraps around the edges. If ``yoffset`` is omitted, it + is assumed to be equal to ``xoffset``. + + :param image: Input image. + :param xoffset: The horizontal distance. + :param yoffset: The vertical distance. If omitted, both + distances are set to the same value. + :rtype: :py:class:`~PIL.Image.Image` + """ + + if yoffset is None: + yoffset = xoffset + image.load() + return image._new(image.im.offset(xoffset, yoffset)) diff --git a/venv/lib/python3.11/site-packages/PIL/ImageCms.py b/venv/lib/python3.11/site-packages/PIL/ImageCms.py new file mode 100644 index 0000000..513e28a --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ImageCms.py @@ -0,0 +1,1076 @@ +# The Python Imaging Library. +# $Id$ + +# Optional color management support, based on Kevin Cazabon's PyCMS +# library. + +# Originally released under LGPL. Graciously donated to PIL in +# March 2009, for distribution under the standard PIL license + +# History: + +# 2009-03-08 fl Added to PIL. + +# Copyright (C) 2002-2003 Kevin Cazabon +# Copyright (c) 2009 by Fredrik Lundh +# Copyright (c) 2013 by Eric Soroos + +# See the README file for information on usage and redistribution. See +# below for the original description. +from __future__ import annotations + +import operator +import sys +from enum import IntEnum, IntFlag +from functools import reduce +from typing import Any, Literal, SupportsFloat, SupportsInt, Union + +from . import Image +from ._deprecate import deprecate +from ._typing import SupportsRead + +try: + from . import _imagingcms as core + + _CmsProfileCompatible = Union[ + str, SupportsRead[bytes], core.CmsProfile, "ImageCmsProfile" + ] +except ImportError as ex: + # Allow error import for doc purposes, but error out when accessing + # anything in core. + from ._util import DeferredError + + core = DeferredError.new(ex) + +_DESCRIPTION = """ +pyCMS + + a Python / PIL interface to the littleCMS ICC Color Management System + Copyright (C) 2002-2003 Kevin Cazabon + kevin@cazabon.com + https://www.cazabon.com + + pyCMS home page: https://www.cazabon.com/pyCMS + littleCMS home page: https://www.littlecms.com + (littleCMS is Copyright (C) 1998-2001 Marti Maria) + + Originally released under LGPL. Graciously donated to PIL in + March 2009, for distribution under the standard PIL license + + The pyCMS.py module provides a "clean" interface between Python/PIL and + pyCMSdll, taking care of some of the more complex handling of the direct + pyCMSdll functions, as well as error-checking and making sure that all + relevant data is kept together. + + While it is possible to call pyCMSdll functions directly, it's not highly + recommended. + + Version History: + + 1.0.0 pil Oct 2013 Port to LCMS 2. + + 0.1.0 pil mod March 10, 2009 + + Renamed display profile to proof profile. The proof + profile is the profile of the device that is being + simulated, not the profile of the device which is + actually used to display/print the final simulation + (that'd be the output profile) - also see LCMSAPI.txt + input colorspace -> using 'renderingIntent' -> proof + colorspace -> using 'proofRenderingIntent' -> output + colorspace + + Added LCMS FLAGS support. + Added FLAGS["SOFTPROOFING"] as default flag for + buildProofTransform (otherwise the proof profile/intent + would be ignored). + + 0.1.0 pil March 2009 - added to PIL, as PIL.ImageCms + + 0.0.2 alpha Jan 6, 2002 + + Added try/except statements around type() checks of + potential CObjects... Python won't let you use type() + on them, and raises a TypeError (stupid, if you ask + me!) + + Added buildProofTransformFromOpenProfiles() function. + Additional fixes in DLL, see DLL code for details. + + 0.0.1 alpha first public release, Dec. 26, 2002 + + Known to-do list with current version (of Python interface, not pyCMSdll): + + none + +""" + +_VERSION = "1.0.0 pil" + + +# --------------------------------------------------------------------. + + +# +# intent/direction values + + +class Intent(IntEnum): + PERCEPTUAL = 0 + RELATIVE_COLORIMETRIC = 1 + SATURATION = 2 + ABSOLUTE_COLORIMETRIC = 3 + + +class Direction(IntEnum): + INPUT = 0 + OUTPUT = 1 + PROOF = 2 + + +# +# flags + + +class Flags(IntFlag): + """Flags and documentation are taken from ``lcms2.h``.""" + + NONE = 0 + NOCACHE = 0x0040 + """Inhibit 1-pixel cache""" + NOOPTIMIZE = 0x0100 + """Inhibit optimizations""" + NULLTRANSFORM = 0x0200 + """Don't transform anyway""" + GAMUTCHECK = 0x1000 + """Out of Gamut alarm""" + SOFTPROOFING = 0x4000 + """Do softproofing""" + BLACKPOINTCOMPENSATION = 0x2000 + NOWHITEONWHITEFIXUP = 0x0004 + """Don't fix scum dot""" + HIGHRESPRECALC = 0x0400 + """Use more memory to give better accuracy""" + LOWRESPRECALC = 0x0800 + """Use less memory to minimize resources""" + # this should be 8BITS_DEVICELINK, but that is not a valid name in Python: + USE_8BITS_DEVICELINK = 0x0008 + """Create 8 bits devicelinks""" + GUESSDEVICECLASS = 0x0020 + """Guess device class (for ``transform2devicelink``)""" + KEEP_SEQUENCE = 0x0080 + """Keep profile sequence for devicelink creation""" + FORCE_CLUT = 0x0002 + """Force CLUT optimization""" + CLUT_POST_LINEARIZATION = 0x0001 + """create postlinearization tables if possible""" + CLUT_PRE_LINEARIZATION = 0x0010 + """create prelinearization tables if possible""" + NONEGATIVES = 0x8000 + """Prevent negative numbers in floating point transforms""" + COPY_ALPHA = 0x04000000 + """Alpha channels are copied on ``cmsDoTransform()``""" + NODEFAULTRESOURCEDEF = 0x01000000 + + _GRIDPOINTS_1 = 1 << 16 + _GRIDPOINTS_2 = 2 << 16 + _GRIDPOINTS_4 = 4 << 16 + _GRIDPOINTS_8 = 8 << 16 + _GRIDPOINTS_16 = 16 << 16 + _GRIDPOINTS_32 = 32 << 16 + _GRIDPOINTS_64 = 64 << 16 + _GRIDPOINTS_128 = 128 << 16 + + @staticmethod + def GRIDPOINTS(n: int) -> Flags: + """ + Fine-tune control over number of gridpoints + + :param n: :py:class:`int` in range ``0 <= n <= 255`` + """ + return Flags.NONE | ((n & 0xFF) << 16) + + +_MAX_FLAG = reduce(operator.or_, Flags) + + +_FLAGS = { + "MATRIXINPUT": 1, + "MATRIXOUTPUT": 2, + "MATRIXONLY": (1 | 2), + "NOWHITEONWHITEFIXUP": 4, # Don't hot fix scum dot + # Don't create prelinearization tables on precalculated transforms + # (internal use): + "NOPRELINEARIZATION": 16, + "GUESSDEVICECLASS": 32, # Guess device class (for transform2devicelink) + "NOTCACHE": 64, # Inhibit 1-pixel cache + "NOTPRECALC": 256, + "NULLTRANSFORM": 512, # Don't transform anyway + "HIGHRESPRECALC": 1024, # Use more memory to give better accuracy + "LOWRESPRECALC": 2048, # Use less memory to minimize resources + "WHITEBLACKCOMPENSATION": 8192, + "BLACKPOINTCOMPENSATION": 8192, + "GAMUTCHECK": 4096, # Out of Gamut alarm + "SOFTPROOFING": 16384, # Do softproofing + "PRESERVEBLACK": 32768, # Black preservation + "NODEFAULTRESOURCEDEF": 16777216, # CRD special + "GRIDPOINTS": lambda n: (n & 0xFF) << 16, # Gridpoints +} + + +# --------------------------------------------------------------------. +# Experimental PIL-level API +# --------------------------------------------------------------------. + +## +# Profile. + + +class ImageCmsProfile: + def __init__(self, profile: str | SupportsRead[bytes] | core.CmsProfile) -> None: + """ + :param profile: Either a string representing a filename, + a file like object containing a profile or a + low-level profile object + + """ + self.filename: str | None = None + + if isinstance(profile, str): + if sys.platform == "win32": + profile_bytes_path = profile.encode() + try: + profile_bytes_path.decode("ascii") + except UnicodeDecodeError: + with open(profile, "rb") as f: + self.profile = core.profile_frombytes(f.read()) + return + self.filename = profile + self.profile = core.profile_open(profile) + elif hasattr(profile, "read"): + self.profile = core.profile_frombytes(profile.read()) + elif isinstance(profile, core.CmsProfile): + self.profile = profile + else: + msg = "Invalid type for Profile" # type: ignore[unreachable] + raise TypeError(msg) + + def __getattr__(self, name: str) -> Any: + if name in ("product_name", "product_info"): + deprecate(f"ImageCms.ImageCmsProfile.{name}", 13) + return None + msg = f"'{self.__class__.__name__}' object has no attribute '{name}'" + raise AttributeError(msg) + + def tobytes(self) -> bytes: + """ + Returns the profile in a format suitable for embedding in + saved images. + + :returns: a bytes object containing the ICC profile. + """ + + return core.profile_tobytes(self.profile) + + +class ImageCmsTransform(Image.ImagePointHandler): + """ + Transform. This can be used with the procedural API, or with the standard + :py:func:`~PIL.Image.Image.point` method. + + Will return the output profile in the ``output.info['icc_profile']``. + """ + + def __init__( + self, + input: ImageCmsProfile, + output: ImageCmsProfile, + input_mode: str, + output_mode: str, + intent: Intent = Intent.PERCEPTUAL, + proof: ImageCmsProfile | None = None, + proof_intent: Intent = Intent.ABSOLUTE_COLORIMETRIC, + flags: Flags = Flags.NONE, + ): + if proof is None: + self.transform = core.buildTransform( + input.profile, output.profile, input_mode, output_mode, intent, flags + ) + else: + self.transform = core.buildProofTransform( + input.profile, + output.profile, + proof.profile, + input_mode, + output_mode, + intent, + proof_intent, + flags, + ) + # Note: inputMode and outputMode are for pyCMS compatibility only + self.input_mode = self.inputMode = input_mode + self.output_mode = self.outputMode = output_mode + + self.output_profile = output + + def point(self, im: Image.Image) -> Image.Image: + return self.apply(im) + + def apply(self, im: Image.Image, imOut: Image.Image | None = None) -> Image.Image: + if imOut is None: + imOut = Image.new(self.output_mode, im.size, None) + self.transform.apply(im.getim(), imOut.getim()) + imOut.info["icc_profile"] = self.output_profile.tobytes() + return imOut + + def apply_in_place(self, im: Image.Image) -> Image.Image: + if im.mode != self.output_mode: + msg = "mode mismatch" + raise ValueError(msg) # wrong output mode + self.transform.apply(im.getim(), im.getim()) + im.info["icc_profile"] = self.output_profile.tobytes() + return im + + +def get_display_profile(handle: SupportsInt | None = None) -> ImageCmsProfile | None: + """ + (experimental) Fetches the profile for the current display device. + + :returns: ``None`` if the profile is not known. + """ + + if sys.platform != "win32": + return None + + from . import ImageWin # type: ignore[unused-ignore, unreachable] + + if isinstance(handle, ImageWin.HDC): + profile = core.get_display_profile_win32(int(handle), 1) + else: + profile = core.get_display_profile_win32(int(handle or 0)) + if profile is None: + return None + return ImageCmsProfile(profile) + + +# --------------------------------------------------------------------. +# pyCMS compatible layer +# --------------------------------------------------------------------. + + +class PyCMSError(Exception): + """(pyCMS) Exception class. + This is used for all errors in the pyCMS API.""" + + pass + + +def profileToProfile( + im: Image.Image, + inputProfile: _CmsProfileCompatible, + outputProfile: _CmsProfileCompatible, + renderingIntent: Intent = Intent.PERCEPTUAL, + outputMode: str | None = None, + inPlace: bool = False, + flags: Flags = Flags.NONE, +) -> Image.Image | None: + """ + (pyCMS) Applies an ICC transformation to a given image, mapping from + ``inputProfile`` to ``outputProfile``. + + If the input or output profiles specified are not valid filenames, a + :exc:`PyCMSError` will be raised. If ``inPlace`` is ``True`` and + ``outputMode != im.mode``, a :exc:`PyCMSError` will be raised. + If an error occurs during application of the profiles, + a :exc:`PyCMSError` will be raised. + If ``outputMode`` is not a mode supported by the ``outputProfile`` (or by pyCMS), + a :exc:`PyCMSError` will be raised. + + This function applies an ICC transformation to im from ``inputProfile``'s + color space to ``outputProfile``'s color space using the specified rendering + intent to decide how to handle out-of-gamut colors. + + ``outputMode`` can be used to specify that a color mode conversion is to + be done using these profiles, but the specified profiles must be able + to handle that mode. I.e., if converting im from RGB to CMYK using + profiles, the input profile must handle RGB data, and the output + profile must handle CMYK data. + + :param im: An open :py:class:`~PIL.Image.Image` object (i.e. Image.new(...) + or Image.open(...), etc.) + :param inputProfile: String, as a valid filename path to the ICC input + profile you wish to use for this image, or a profile object + :param outputProfile: String, as a valid filename path to the ICC output + profile you wish to use for this image, or a profile object + :param renderingIntent: Integer (0-3) specifying the rendering intent you + wish to use for the transform + + ImageCms.Intent.PERCEPTUAL = 0 (DEFAULT) + ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 + ImageCms.Intent.SATURATION = 2 + ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3 + + see the pyCMS documentation for details on rendering intents and what + they do. + :param outputMode: A valid PIL mode for the output image (i.e. "RGB", + "CMYK", etc.). Note: if rendering the image "inPlace", outputMode + MUST be the same mode as the input, or omitted completely. If + omitted, the outputMode will be the same as the mode of the input + image (im.mode) + :param inPlace: Boolean. If ``True``, the original image is modified in-place, + and ``None`` is returned. If ``False`` (default), a new + :py:class:`~PIL.Image.Image` object is returned with the transform applied. + :param flags: Integer (0-...) specifying additional flags + :returns: Either None or a new :py:class:`~PIL.Image.Image` object, depending on + the value of ``inPlace`` + :exception PyCMSError: + """ + + if outputMode is None: + outputMode = im.mode + + if not isinstance(renderingIntent, int) or not (0 <= renderingIntent <= 3): + msg = "renderingIntent must be an integer between 0 and 3" + raise PyCMSError(msg) + + if not isinstance(flags, int) or not (0 <= flags <= _MAX_FLAG): + msg = f"flags must be an integer between 0 and {_MAX_FLAG}" + raise PyCMSError(msg) + + try: + if not isinstance(inputProfile, ImageCmsProfile): + inputProfile = ImageCmsProfile(inputProfile) + if not isinstance(outputProfile, ImageCmsProfile): + outputProfile = ImageCmsProfile(outputProfile) + transform = ImageCmsTransform( + inputProfile, + outputProfile, + im.mode, + outputMode, + renderingIntent, + flags=flags, + ) + if inPlace: + transform.apply_in_place(im) + imOut = None + else: + imOut = transform.apply(im) + except (OSError, TypeError, ValueError) as v: + raise PyCMSError(v) from v + + return imOut + + +def getOpenProfile( + profileFilename: str | SupportsRead[bytes] | core.CmsProfile, +) -> ImageCmsProfile: + """ + (pyCMS) Opens an ICC profile file. + + The PyCMSProfile object can be passed back into pyCMS for use in creating + transforms and such (as in ImageCms.buildTransformFromOpenProfiles()). + + If ``profileFilename`` is not a valid filename for an ICC profile, + a :exc:`PyCMSError` will be raised. + + :param profileFilename: String, as a valid filename path to the ICC profile + you wish to open, or a file-like object. + :returns: A CmsProfile class object. + :exception PyCMSError: + """ + + try: + return ImageCmsProfile(profileFilename) + except (OSError, TypeError, ValueError) as v: + raise PyCMSError(v) from v + + +def buildTransform( + inputProfile: _CmsProfileCompatible, + outputProfile: _CmsProfileCompatible, + inMode: str, + outMode: str, + renderingIntent: Intent = Intent.PERCEPTUAL, + flags: Flags = Flags.NONE, +) -> ImageCmsTransform: + """ + (pyCMS) Builds an ICC transform mapping from the ``inputProfile`` to the + ``outputProfile``. Use applyTransform to apply the transform to a given + image. + + If the input or output profiles specified are not valid filenames, a + :exc:`PyCMSError` will be raised. If an error occurs during creation + of the transform, a :exc:`PyCMSError` will be raised. + + If ``inMode`` or ``outMode`` are not a mode supported by the ``outputProfile`` + (or by pyCMS), a :exc:`PyCMSError` will be raised. + + This function builds and returns an ICC transform from the ``inputProfile`` + to the ``outputProfile`` using the ``renderingIntent`` to determine what to do + with out-of-gamut colors. It will ONLY work for converting images that + are in ``inMode`` to images that are in ``outMode`` color format (PIL mode, + i.e. "RGB", "RGBA", "CMYK", etc.). + + Building the transform is a fair part of the overhead in + ImageCms.profileToProfile(), so if you're planning on converting multiple + images using the same input/output settings, this can save you time. + Once you have a transform object, it can be used with + ImageCms.applyProfile() to convert images without the need to re-compute + the lookup table for the transform. + + The reason pyCMS returns a class object rather than a handle directly + to the transform is that it needs to keep track of the PIL input/output + modes that the transform is meant for. These attributes are stored in + the ``inMode`` and ``outMode`` attributes of the object (which can be + manually overridden if you really want to, but I don't know of any + time that would be of use, or would even work). + + :param inputProfile: String, as a valid filename path to the ICC input + profile you wish to use for this transform, or a profile object + :param outputProfile: String, as a valid filename path to the ICC output + profile you wish to use for this transform, or a profile object + :param inMode: String, as a valid PIL mode that the appropriate profile + also supports (i.e. "RGB", "RGBA", "CMYK", etc.) + :param outMode: String, as a valid PIL mode that the appropriate profile + also supports (i.e. "RGB", "RGBA", "CMYK", etc.) + :param renderingIntent: Integer (0-3) specifying the rendering intent you + wish to use for the transform + + ImageCms.Intent.PERCEPTUAL = 0 (DEFAULT) + ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 + ImageCms.Intent.SATURATION = 2 + ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3 + + see the pyCMS documentation for details on rendering intents and what + they do. + :param flags: Integer (0-...) specifying additional flags + :returns: A CmsTransform class object. + :exception PyCMSError: + """ + + if not isinstance(renderingIntent, int) or not (0 <= renderingIntent <= 3): + msg = "renderingIntent must be an integer between 0 and 3" + raise PyCMSError(msg) + + if not isinstance(flags, int) or not (0 <= flags <= _MAX_FLAG): + msg = f"flags must be an integer between 0 and {_MAX_FLAG}" + raise PyCMSError(msg) + + try: + if not isinstance(inputProfile, ImageCmsProfile): + inputProfile = ImageCmsProfile(inputProfile) + if not isinstance(outputProfile, ImageCmsProfile): + outputProfile = ImageCmsProfile(outputProfile) + return ImageCmsTransform( + inputProfile, outputProfile, inMode, outMode, renderingIntent, flags=flags + ) + except (OSError, TypeError, ValueError) as v: + raise PyCMSError(v) from v + + +def buildProofTransform( + inputProfile: _CmsProfileCompatible, + outputProfile: _CmsProfileCompatible, + proofProfile: _CmsProfileCompatible, + inMode: str, + outMode: str, + renderingIntent: Intent = Intent.PERCEPTUAL, + proofRenderingIntent: Intent = Intent.ABSOLUTE_COLORIMETRIC, + flags: Flags = Flags.SOFTPROOFING, +) -> ImageCmsTransform: + """ + (pyCMS) Builds an ICC transform mapping from the ``inputProfile`` to the + ``outputProfile``, but tries to simulate the result that would be + obtained on the ``proofProfile`` device. + + If the input, output, or proof profiles specified are not valid + filenames, a :exc:`PyCMSError` will be raised. + + If an error occurs during creation of the transform, + a :exc:`PyCMSError` will be raised. + + If ``inMode`` or ``outMode`` are not a mode supported by the ``outputProfile`` + (or by pyCMS), a :exc:`PyCMSError` will be raised. + + This function builds and returns an ICC transform from the ``inputProfile`` + to the ``outputProfile``, but tries to simulate the result that would be + obtained on the ``proofProfile`` device using ``renderingIntent`` and + ``proofRenderingIntent`` to determine what to do with out-of-gamut + colors. This is known as "soft-proofing". It will ONLY work for + converting images that are in ``inMode`` to images that are in outMode + color format (PIL mode, i.e. "RGB", "RGBA", "CMYK", etc.). + + Usage of the resulting transform object is exactly the same as with + ImageCms.buildTransform(). + + Proof profiling is generally used when using an output device to get a + good idea of what the final printed/displayed image would look like on + the ``proofProfile`` device when it's quicker and easier to use the + output device for judging color. Generally, this means that the + output device is a monitor, or a dye-sub printer (etc.), and the simulated + device is something more expensive, complicated, or time consuming + (making it difficult to make a real print for color judgement purposes). + + Soft-proofing basically functions by adjusting the colors on the + output device to match the colors of the device being simulated. However, + when the simulated device has a much wider gamut than the output + device, you may obtain marginal results. + + :param inputProfile: String, as a valid filename path to the ICC input + profile you wish to use for this transform, or a profile object + :param outputProfile: String, as a valid filename path to the ICC output + (monitor, usually) profile you wish to use for this transform, or a + profile object + :param proofProfile: String, as a valid filename path to the ICC proof + profile you wish to use for this transform, or a profile object + :param inMode: String, as a valid PIL mode that the appropriate profile + also supports (i.e. "RGB", "RGBA", "CMYK", etc.) + :param outMode: String, as a valid PIL mode that the appropriate profile + also supports (i.e. "RGB", "RGBA", "CMYK", etc.) + :param renderingIntent: Integer (0-3) specifying the rendering intent you + wish to use for the input->proof (simulated) transform + + ImageCms.Intent.PERCEPTUAL = 0 (DEFAULT) + ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 + ImageCms.Intent.SATURATION = 2 + ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3 + + see the pyCMS documentation for details on rendering intents and what + they do. + :param proofRenderingIntent: Integer (0-3) specifying the rendering intent + you wish to use for proof->output transform + + ImageCms.Intent.PERCEPTUAL = 0 (DEFAULT) + ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 + ImageCms.Intent.SATURATION = 2 + ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3 + + see the pyCMS documentation for details on rendering intents and what + they do. + :param flags: Integer (0-...) specifying additional flags + :returns: A CmsTransform class object. + :exception PyCMSError: + """ + + if not isinstance(renderingIntent, int) or not (0 <= renderingIntent <= 3): + msg = "renderingIntent must be an integer between 0 and 3" + raise PyCMSError(msg) + + if not isinstance(flags, int) or not (0 <= flags <= _MAX_FLAG): + msg = f"flags must be an integer between 0 and {_MAX_FLAG}" + raise PyCMSError(msg) + + try: + if not isinstance(inputProfile, ImageCmsProfile): + inputProfile = ImageCmsProfile(inputProfile) + if not isinstance(outputProfile, ImageCmsProfile): + outputProfile = ImageCmsProfile(outputProfile) + if not isinstance(proofProfile, ImageCmsProfile): + proofProfile = ImageCmsProfile(proofProfile) + return ImageCmsTransform( + inputProfile, + outputProfile, + inMode, + outMode, + renderingIntent, + proofProfile, + proofRenderingIntent, + flags, + ) + except (OSError, TypeError, ValueError) as v: + raise PyCMSError(v) from v + + +buildTransformFromOpenProfiles = buildTransform +buildProofTransformFromOpenProfiles = buildProofTransform + + +def applyTransform( + im: Image.Image, transform: ImageCmsTransform, inPlace: bool = False +) -> Image.Image | None: + """ + (pyCMS) Applies a transform to a given image. + + If ``im.mode != transform.input_mode``, a :exc:`PyCMSError` is raised. + + If ``inPlace`` is ``True`` and ``transform.input_mode != transform.output_mode``, a + :exc:`PyCMSError` is raised. + + If ``im.mode``, ``transform.input_mode`` or ``transform.output_mode`` is not + supported by pyCMSdll or the profiles you used for the transform, a + :exc:`PyCMSError` is raised. + + If an error occurs while the transform is being applied, + a :exc:`PyCMSError` is raised. + + This function applies a pre-calculated transform (from + ImageCms.buildTransform() or ImageCms.buildTransformFromOpenProfiles()) + to an image. The transform can be used for multiple images, saving + considerable calculation time if doing the same conversion multiple times. + + If you want to modify im in-place instead of receiving a new image as + the return value, set ``inPlace`` to ``True``. This can only be done if + ``transform.input_mode`` and ``transform.output_mode`` are the same, because we + can't change the mode in-place (the buffer sizes for some modes are + different). The default behavior is to return a new :py:class:`~PIL.Image.Image` + object of the same dimensions in mode ``transform.output_mode``. + + :param im: An :py:class:`~PIL.Image.Image` object, and ``im.mode`` must be the same + as the ``input_mode`` supported by the transform. + :param transform: A valid CmsTransform class object + :param inPlace: Bool. If ``True``, ``im`` is modified in place and ``None`` is + returned, if ``False``, a new :py:class:`~PIL.Image.Image` object with the + transform applied is returned (and ``im`` is not changed). The default is + ``False``. + :returns: Either ``None``, or a new :py:class:`~PIL.Image.Image` object, + depending on the value of ``inPlace``. The profile will be returned in + the image's ``info['icc_profile']``. + :exception PyCMSError: + """ + + try: + if inPlace: + transform.apply_in_place(im) + imOut = None + else: + imOut = transform.apply(im) + except (TypeError, ValueError) as v: + raise PyCMSError(v) from v + + return imOut + + +def createProfile( + colorSpace: Literal["LAB", "XYZ", "sRGB"], colorTemp: SupportsFloat = 0 +) -> core.CmsProfile: + """ + (pyCMS) Creates a profile. + + If colorSpace not in ``["LAB", "XYZ", "sRGB"]``, + a :exc:`PyCMSError` is raised. + + If using LAB and ``colorTemp`` is not a positive integer, + a :exc:`PyCMSError` is raised. + + If an error occurs while creating the profile, + a :exc:`PyCMSError` is raised. + + Use this function to create common profiles on-the-fly instead of + having to supply a profile on disk and knowing the path to it. It + returns a normal CmsProfile object that can be passed to + ImageCms.buildTransformFromOpenProfiles() to create a transform to apply + to images. + + :param colorSpace: String, the color space of the profile you wish to + create. + Currently only "LAB", "XYZ", and "sRGB" are supported. + :param colorTemp: Positive number for the white point for the profile, in + degrees Kelvin (i.e. 5000, 6500, 9600, etc.). The default is for D50 + illuminant if omitted (5000k). colorTemp is ONLY applied to LAB + profiles, and is ignored for XYZ and sRGB. + :returns: A CmsProfile class object + :exception PyCMSError: + """ + + if colorSpace not in ["LAB", "XYZ", "sRGB"]: + msg = ( + f"Color space not supported for on-the-fly profile creation ({colorSpace})" + ) + raise PyCMSError(msg) + + if colorSpace == "LAB": + try: + colorTemp = float(colorTemp) + except (TypeError, ValueError) as e: + msg = f'Color temperature must be numeric, "{colorTemp}" not valid' + raise PyCMSError(msg) from e + + try: + return core.createProfile(colorSpace, colorTemp) + except (TypeError, ValueError) as v: + raise PyCMSError(v) from v + + +def getProfileName(profile: _CmsProfileCompatible) -> str: + """ + + (pyCMS) Gets the internal product name for the given profile. + + If ``profile`` isn't a valid CmsProfile object or filename to a profile, + a :exc:`PyCMSError` is raised If an error occurs while trying + to obtain the name tag, a :exc:`PyCMSError` is raised. + + Use this function to obtain the INTERNAL name of the profile (stored + in an ICC tag in the profile itself), usually the one used when the + profile was originally created. Sometimes this tag also contains + additional information supplied by the creator. + + :param profile: EITHER a valid CmsProfile object, OR a string of the + filename of an ICC profile. + :returns: A string containing the internal name of the profile as stored + in an ICC tag. + :exception PyCMSError: + """ + + try: + # add an extra newline to preserve pyCMS compatibility + if not isinstance(profile, ImageCmsProfile): + profile = ImageCmsProfile(profile) + # do it in python, not c. + # // name was "%s - %s" (model, manufacturer) || Description , + # // but if the Model and Manufacturer were the same or the model + # // was long, Just the model, in 1.x + model = profile.profile.model + manufacturer = profile.profile.manufacturer + + if not (model or manufacturer): + return (profile.profile.profile_description or "") + "\n" + if not manufacturer or (model and len(model) > 30): + return f"{model}\n" + return f"{model} - {manufacturer}\n" + + except (AttributeError, OSError, TypeError, ValueError) as v: + raise PyCMSError(v) from v + + +def getProfileInfo(profile: _CmsProfileCompatible) -> str: + """ + (pyCMS) Gets the internal product information for the given profile. + + If ``profile`` isn't a valid CmsProfile object or filename to a profile, + a :exc:`PyCMSError` is raised. + + If an error occurs while trying to obtain the info tag, + a :exc:`PyCMSError` is raised. + + Use this function to obtain the information stored in the profile's + info tag. This often contains details about the profile, and how it + was created, as supplied by the creator. + + :param profile: EITHER a valid CmsProfile object, OR a string of the + filename of an ICC profile. + :returns: A string containing the internal profile information stored in + an ICC tag. + :exception PyCMSError: + """ + + try: + if not isinstance(profile, ImageCmsProfile): + profile = ImageCmsProfile(profile) + # add an extra newline to preserve pyCMS compatibility + # Python, not C. the white point bits weren't working well, + # so skipping. + # info was description \r\n\r\n copyright \r\n\r\n K007 tag \r\n\r\n whitepoint + description = profile.profile.profile_description + cpright = profile.profile.copyright + elements = [element for element in (description, cpright) if element] + return "\r\n\r\n".join(elements) + "\r\n\r\n" + + except (AttributeError, OSError, TypeError, ValueError) as v: + raise PyCMSError(v) from v + + +def getProfileCopyright(profile: _CmsProfileCompatible) -> str: + """ + (pyCMS) Gets the copyright for the given profile. + + If ``profile`` isn't a valid CmsProfile object or filename to a profile, a + :exc:`PyCMSError` is raised. + + If an error occurs while trying to obtain the copyright tag, + a :exc:`PyCMSError` is raised. + + Use this function to obtain the information stored in the profile's + copyright tag. + + :param profile: EITHER a valid CmsProfile object, OR a string of the + filename of an ICC profile. + :returns: A string containing the internal profile information stored in + an ICC tag. + :exception PyCMSError: + """ + try: + # add an extra newline to preserve pyCMS compatibility + if not isinstance(profile, ImageCmsProfile): + profile = ImageCmsProfile(profile) + return (profile.profile.copyright or "") + "\n" + except (AttributeError, OSError, TypeError, ValueError) as v: + raise PyCMSError(v) from v + + +def getProfileManufacturer(profile: _CmsProfileCompatible) -> str: + """ + (pyCMS) Gets the manufacturer for the given profile. + + If ``profile`` isn't a valid CmsProfile object or filename to a profile, a + :exc:`PyCMSError` is raised. + + If an error occurs while trying to obtain the manufacturer tag, a + :exc:`PyCMSError` is raised. + + Use this function to obtain the information stored in the profile's + manufacturer tag. + + :param profile: EITHER a valid CmsProfile object, OR a string of the + filename of an ICC profile. + :returns: A string containing the internal profile information stored in + an ICC tag. + :exception PyCMSError: + """ + try: + # add an extra newline to preserve pyCMS compatibility + if not isinstance(profile, ImageCmsProfile): + profile = ImageCmsProfile(profile) + return (profile.profile.manufacturer or "") + "\n" + except (AttributeError, OSError, TypeError, ValueError) as v: + raise PyCMSError(v) from v + + +def getProfileModel(profile: _CmsProfileCompatible) -> str: + """ + (pyCMS) Gets the model for the given profile. + + If ``profile`` isn't a valid CmsProfile object or filename to a profile, a + :exc:`PyCMSError` is raised. + + If an error occurs while trying to obtain the model tag, + a :exc:`PyCMSError` is raised. + + Use this function to obtain the information stored in the profile's + model tag. + + :param profile: EITHER a valid CmsProfile object, OR a string of the + filename of an ICC profile. + :returns: A string containing the internal profile information stored in + an ICC tag. + :exception PyCMSError: + """ + + try: + # add an extra newline to preserve pyCMS compatibility + if not isinstance(profile, ImageCmsProfile): + profile = ImageCmsProfile(profile) + return (profile.profile.model or "") + "\n" + except (AttributeError, OSError, TypeError, ValueError) as v: + raise PyCMSError(v) from v + + +def getProfileDescription(profile: _CmsProfileCompatible) -> str: + """ + (pyCMS) Gets the description for the given profile. + + If ``profile`` isn't a valid CmsProfile object or filename to a profile, a + :exc:`PyCMSError` is raised. + + If an error occurs while trying to obtain the description tag, + a :exc:`PyCMSError` is raised. + + Use this function to obtain the information stored in the profile's + description tag. + + :param profile: EITHER a valid CmsProfile object, OR a string of the + filename of an ICC profile. + :returns: A string containing the internal profile information stored in an + ICC tag. + :exception PyCMSError: + """ + + try: + # add an extra newline to preserve pyCMS compatibility + if not isinstance(profile, ImageCmsProfile): + profile = ImageCmsProfile(profile) + return (profile.profile.profile_description or "") + "\n" + except (AttributeError, OSError, TypeError, ValueError) as v: + raise PyCMSError(v) from v + + +def getDefaultIntent(profile: _CmsProfileCompatible) -> int: + """ + (pyCMS) Gets the default intent name for the given profile. + + If ``profile`` isn't a valid CmsProfile object or filename to a profile, a + :exc:`PyCMSError` is raised. + + If an error occurs while trying to obtain the default intent, a + :exc:`PyCMSError` is raised. + + Use this function to determine the default (and usually best optimized) + rendering intent for this profile. Most profiles support multiple + rendering intents, but are intended mostly for one type of conversion. + If you wish to use a different intent than returned, use + ImageCms.isIntentSupported() to verify it will work first. + + :param profile: EITHER a valid CmsProfile object, OR a string of the + filename of an ICC profile. + :returns: Integer 0-3 specifying the default rendering intent for this + profile. + + ImageCms.Intent.PERCEPTUAL = 0 (DEFAULT) + ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 + ImageCms.Intent.SATURATION = 2 + ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3 + + see the pyCMS documentation for details on rendering intents and what + they do. + :exception PyCMSError: + """ + + try: + if not isinstance(profile, ImageCmsProfile): + profile = ImageCmsProfile(profile) + return profile.profile.rendering_intent + except (AttributeError, OSError, TypeError, ValueError) as v: + raise PyCMSError(v) from v + + +def isIntentSupported( + profile: _CmsProfileCompatible, intent: Intent, direction: Direction +) -> Literal[-1, 1]: + """ + (pyCMS) Checks if a given intent is supported. + + Use this function to verify that you can use your desired + ``intent`` with ``profile``, and that ``profile`` can be used for the + input/output/proof profile as you desire. + + Some profiles are created specifically for one "direction", can cannot + be used for others. Some profiles can only be used for certain + rendering intents, so it's best to either verify this before trying + to create a transform with them (using this function), or catch the + potential :exc:`PyCMSError` that will occur if they don't + support the modes you select. + + :param profile: EITHER a valid CmsProfile object, OR a string of the + filename of an ICC profile. + :param intent: Integer (0-3) specifying the rendering intent you wish to + use with this profile + + ImageCms.Intent.PERCEPTUAL = 0 (DEFAULT) + ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 + ImageCms.Intent.SATURATION = 2 + ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3 + + see the pyCMS documentation for details on rendering intents and what + they do. + :param direction: Integer specifying if the profile is to be used for + input, output, or proof + + INPUT = 0 (or use ImageCms.Direction.INPUT) + OUTPUT = 1 (or use ImageCms.Direction.OUTPUT) + PROOF = 2 (or use ImageCms.Direction.PROOF) + + :returns: 1 if the intent/direction are supported, -1 if they are not. + :exception PyCMSError: + """ + + try: + if not isinstance(profile, ImageCmsProfile): + profile = ImageCmsProfile(profile) + # FIXME: I get different results for the same data w. different + # compilers. Bug in LittleCMS or in the binding? + if profile.profile.is_intent_supported(intent, direction): + return 1 + else: + return -1 + except (AttributeError, OSError, TypeError, ValueError) as v: + raise PyCMSError(v) from v diff --git a/venv/lib/python3.11/site-packages/PIL/ImageColor.py b/venv/lib/python3.11/site-packages/PIL/ImageColor.py new file mode 100644 index 0000000..9a15a8e --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ImageColor.py @@ -0,0 +1,320 @@ +# +# The Python Imaging Library +# $Id$ +# +# map CSS3-style colour description strings to RGB +# +# History: +# 2002-10-24 fl Added support for CSS-style color strings +# 2002-12-15 fl Added RGBA support +# 2004-03-27 fl Fixed remaining int() problems for Python 1.5.2 +# 2004-07-19 fl Fixed gray/grey spelling issues +# 2009-03-05 fl Fixed rounding error in grayscale calculation +# +# Copyright (c) 2002-2004 by Secret Labs AB +# Copyright (c) 2002-2004 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# +from __future__ import annotations + +import re +from functools import lru_cache + +from . import Image + + +@lru_cache +def getrgb(color: str) -> tuple[int, int, int] | tuple[int, int, int, int]: + """ + Convert a color string to an RGB or RGBA tuple. If the string cannot be + parsed, this function raises a :py:exc:`ValueError` exception. + + .. versionadded:: 1.1.4 + + :param color: A color string + :return: ``(red, green, blue[, alpha])`` + """ + if len(color) > 100: + msg = "color specifier is too long" + raise ValueError(msg) + color = color.lower() + + rgb = colormap.get(color, None) + if rgb: + if isinstance(rgb, tuple): + return rgb + rgb_tuple = getrgb(rgb) + assert len(rgb_tuple) == 3 + colormap[color] = rgb_tuple + return rgb_tuple + + # check for known string formats + if re.match("#[a-f0-9]{3}$", color): + return int(color[1] * 2, 16), int(color[2] * 2, 16), int(color[3] * 2, 16) + + if re.match("#[a-f0-9]{4}$", color): + return ( + int(color[1] * 2, 16), + int(color[2] * 2, 16), + int(color[3] * 2, 16), + int(color[4] * 2, 16), + ) + + if re.match("#[a-f0-9]{6}$", color): + return int(color[1:3], 16), int(color[3:5], 16), int(color[5:7], 16) + + if re.match("#[a-f0-9]{8}$", color): + return ( + int(color[1:3], 16), + int(color[3:5], 16), + int(color[5:7], 16), + int(color[7:9], 16), + ) + + m = re.match(r"rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$", color) + if m: + return int(m.group(1)), int(m.group(2)), int(m.group(3)) + + m = re.match(r"rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)$", color) + if m: + return ( + int((int(m.group(1)) * 255) / 100.0 + 0.5), + int((int(m.group(2)) * 255) / 100.0 + 0.5), + int((int(m.group(3)) * 255) / 100.0 + 0.5), + ) + + m = re.match( + r"hsl\(\s*(\d+\.?\d*)\s*,\s*(\d+\.?\d*)%\s*,\s*(\d+\.?\d*)%\s*\)$", color + ) + if m: + from colorsys import hls_to_rgb + + rgb_floats = hls_to_rgb( + float(m.group(1)) / 360.0, + float(m.group(3)) / 100.0, + float(m.group(2)) / 100.0, + ) + return ( + int(rgb_floats[0] * 255 + 0.5), + int(rgb_floats[1] * 255 + 0.5), + int(rgb_floats[2] * 255 + 0.5), + ) + + m = re.match( + r"hs[bv]\(\s*(\d+\.?\d*)\s*,\s*(\d+\.?\d*)%\s*,\s*(\d+\.?\d*)%\s*\)$", color + ) + if m: + from colorsys import hsv_to_rgb + + rgb_floats = hsv_to_rgb( + float(m.group(1)) / 360.0, + float(m.group(2)) / 100.0, + float(m.group(3)) / 100.0, + ) + return ( + int(rgb_floats[0] * 255 + 0.5), + int(rgb_floats[1] * 255 + 0.5), + int(rgb_floats[2] * 255 + 0.5), + ) + + m = re.match(r"rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$", color) + if m: + return int(m.group(1)), int(m.group(2)), int(m.group(3)), int(m.group(4)) + msg = f"unknown color specifier: {repr(color)}" + raise ValueError(msg) + + +@lru_cache +def getcolor(color: str, mode: str) -> int | tuple[int, ...]: + """ + Same as :py:func:`~PIL.ImageColor.getrgb` for most modes. However, if + ``mode`` is HSV, converts the RGB value to a HSV value, or if ``mode`` is + not color or a palette image, converts the RGB value to a grayscale value. + If the string cannot be parsed, this function raises a :py:exc:`ValueError` + exception. + + .. versionadded:: 1.1.4 + + :param color: A color string + :param mode: Convert result to this mode + :return: ``graylevel, (graylevel, alpha) or (red, green, blue[, alpha])`` + """ + # same as getrgb, but converts the result to the given mode + rgb, alpha = getrgb(color), 255 + if len(rgb) == 4: + alpha = rgb[3] + rgb = rgb[:3] + + if mode == "HSV": + from colorsys import rgb_to_hsv + + r, g, b = rgb + h, s, v = rgb_to_hsv(r / 255, g / 255, b / 255) + return int(h * 255), int(s * 255), int(v * 255) + elif Image.getmodebase(mode) == "L": + r, g, b = rgb + # ITU-R Recommendation 601-2 for nonlinear RGB + # scaled to 24 bits to match the convert's implementation. + graylevel = (r * 19595 + g * 38470 + b * 7471 + 0x8000) >> 16 + if mode[-1] == "A": + return graylevel, alpha + return graylevel + elif mode[-1] == "A": + return rgb + (alpha,) + return rgb + + +colormap: dict[str, str | tuple[int, int, int]] = { + # X11 colour table from https://drafts.csswg.org/css-color-4/, with + # gray/grey spelling issues fixed. This is a superset of HTML 4.0 + # colour names used in CSS 1. + "aliceblue": "#f0f8ff", + "antiquewhite": "#faebd7", + "aqua": "#00ffff", + "aquamarine": "#7fffd4", + "azure": "#f0ffff", + "beige": "#f5f5dc", + "bisque": "#ffe4c4", + "black": "#000000", + "blanchedalmond": "#ffebcd", + "blue": "#0000ff", + "blueviolet": "#8a2be2", + "brown": "#a52a2a", + "burlywood": "#deb887", + "cadetblue": "#5f9ea0", + "chartreuse": "#7fff00", + "chocolate": "#d2691e", + "coral": "#ff7f50", + "cornflowerblue": "#6495ed", + "cornsilk": "#fff8dc", + "crimson": "#dc143c", + "cyan": "#00ffff", + "darkblue": "#00008b", + "darkcyan": "#008b8b", + "darkgoldenrod": "#b8860b", + "darkgray": "#a9a9a9", + "darkgrey": "#a9a9a9", + "darkgreen": "#006400", + "darkkhaki": "#bdb76b", + "darkmagenta": "#8b008b", + "darkolivegreen": "#556b2f", + "darkorange": "#ff8c00", + "darkorchid": "#9932cc", + "darkred": "#8b0000", + "darksalmon": "#e9967a", + "darkseagreen": "#8fbc8f", + "darkslateblue": "#483d8b", + "darkslategray": "#2f4f4f", + "darkslategrey": "#2f4f4f", + "darkturquoise": "#00ced1", + "darkviolet": "#9400d3", + "deeppink": "#ff1493", + "deepskyblue": "#00bfff", + "dimgray": "#696969", + "dimgrey": "#696969", + "dodgerblue": "#1e90ff", + "firebrick": "#b22222", + "floralwhite": "#fffaf0", + "forestgreen": "#228b22", + "fuchsia": "#ff00ff", + "gainsboro": "#dcdcdc", + "ghostwhite": "#f8f8ff", + "gold": "#ffd700", + "goldenrod": "#daa520", + "gray": "#808080", + "grey": "#808080", + "green": "#008000", + "greenyellow": "#adff2f", + "honeydew": "#f0fff0", + "hotpink": "#ff69b4", + "indianred": "#cd5c5c", + "indigo": "#4b0082", + "ivory": "#fffff0", + "khaki": "#f0e68c", + "lavender": "#e6e6fa", + "lavenderblush": "#fff0f5", + "lawngreen": "#7cfc00", + "lemonchiffon": "#fffacd", + "lightblue": "#add8e6", + "lightcoral": "#f08080", + "lightcyan": "#e0ffff", + "lightgoldenrodyellow": "#fafad2", + "lightgreen": "#90ee90", + "lightgray": "#d3d3d3", + "lightgrey": "#d3d3d3", + "lightpink": "#ffb6c1", + "lightsalmon": "#ffa07a", + "lightseagreen": "#20b2aa", + "lightskyblue": "#87cefa", + "lightslategray": "#778899", + "lightslategrey": "#778899", + "lightsteelblue": "#b0c4de", + "lightyellow": "#ffffe0", + "lime": "#00ff00", + "limegreen": "#32cd32", + "linen": "#faf0e6", + "magenta": "#ff00ff", + "maroon": "#800000", + "mediumaquamarine": "#66cdaa", + "mediumblue": "#0000cd", + "mediumorchid": "#ba55d3", + "mediumpurple": "#9370db", + "mediumseagreen": "#3cb371", + "mediumslateblue": "#7b68ee", + "mediumspringgreen": "#00fa9a", + "mediumturquoise": "#48d1cc", + "mediumvioletred": "#c71585", + "midnightblue": "#191970", + "mintcream": "#f5fffa", + "mistyrose": "#ffe4e1", + "moccasin": "#ffe4b5", + "navajowhite": "#ffdead", + "navy": "#000080", + "oldlace": "#fdf5e6", + "olive": "#808000", + "olivedrab": "#6b8e23", + "orange": "#ffa500", + "orangered": "#ff4500", + "orchid": "#da70d6", + "palegoldenrod": "#eee8aa", + "palegreen": "#98fb98", + "paleturquoise": "#afeeee", + "palevioletred": "#db7093", + "papayawhip": "#ffefd5", + "peachpuff": "#ffdab9", + "peru": "#cd853f", + "pink": "#ffc0cb", + "plum": "#dda0dd", + "powderblue": "#b0e0e6", + "purple": "#800080", + "rebeccapurple": "#663399", + "red": "#ff0000", + "rosybrown": "#bc8f8f", + "royalblue": "#4169e1", + "saddlebrown": "#8b4513", + "salmon": "#fa8072", + "sandybrown": "#f4a460", + "seagreen": "#2e8b57", + "seashell": "#fff5ee", + "sienna": "#a0522d", + "silver": "#c0c0c0", + "skyblue": "#87ceeb", + "slateblue": "#6a5acd", + "slategray": "#708090", + "slategrey": "#708090", + "snow": "#fffafa", + "springgreen": "#00ff7f", + "steelblue": "#4682b4", + "tan": "#d2b48c", + "teal": "#008080", + "thistle": "#d8bfd8", + "tomato": "#ff6347", + "turquoise": "#40e0d0", + "violet": "#ee82ee", + "wheat": "#f5deb3", + "white": "#ffffff", + "whitesmoke": "#f5f5f5", + "yellow": "#ffff00", + "yellowgreen": "#9acd32", +} diff --git a/venv/lib/python3.11/site-packages/PIL/ImageDraw.py b/venv/lib/python3.11/site-packages/PIL/ImageDraw.py new file mode 100644 index 0000000..8bcf2d8 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ImageDraw.py @@ -0,0 +1,1036 @@ +# +# The Python Imaging Library +# $Id$ +# +# drawing interface operations +# +# History: +# 1996-04-13 fl Created (experimental) +# 1996-08-07 fl Filled polygons, ellipses. +# 1996-08-13 fl Added text support +# 1998-06-28 fl Handle I and F images +# 1998-12-29 fl Added arc; use arc primitive to draw ellipses +# 1999-01-10 fl Added shape stuff (experimental) +# 1999-02-06 fl Added bitmap support +# 1999-02-11 fl Changed all primitives to take options +# 1999-02-20 fl Fixed backwards compatibility +# 2000-10-12 fl Copy on write, when necessary +# 2001-02-18 fl Use default ink for bitmap/text also in fill mode +# 2002-10-24 fl Added support for CSS-style color strings +# 2002-12-10 fl Added experimental support for RGBA-on-RGB drawing +# 2002-12-11 fl Refactored low-level drawing API (work in progress) +# 2004-08-26 fl Made Draw() a factory function, added getdraw() support +# 2004-09-04 fl Added width support to line primitive +# 2004-09-10 fl Added font mode handling +# 2006-06-19 fl Added font bearing support (getmask2) +# +# Copyright (c) 1997-2006 by Secret Labs AB +# Copyright (c) 1996-2006 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# +from __future__ import annotations + +import math +import struct +from collections.abc import Sequence +from typing import cast + +from . import Image, ImageColor, ImageText + +TYPE_CHECKING = False +if TYPE_CHECKING: + from collections.abc import Callable + from types import ModuleType + from typing import Any, AnyStr + + from . import ImageDraw2, ImageFont + from ._typing import Coords, _Ink + +# experimental access to the outline API +Outline: Callable[[], Image.core._Outline] = Image.core.outline + +""" +A simple 2D drawing interface for PIL images. +

+Application code should use the Draw factory, instead of +directly. +""" + + +class ImageDraw: + font: ( + ImageFont.ImageFont | ImageFont.FreeTypeFont | ImageFont.TransposedFont | None + ) = None + + def __init__(self, im: Image.Image, mode: str | None = None) -> None: + """ + Create a drawing instance. + + :param im: The image to draw in. + :param mode: Optional mode to use for color values. For RGB + images, this argument can be RGB or RGBA (to blend the + drawing into the image). For all other modes, this argument + must be the same as the image mode. If omitted, the mode + defaults to the mode of the image. + """ + im._ensure_mutable() + blend = 0 + if mode is None: + mode = im.mode + if mode != im.mode: + if mode == "RGBA" and im.mode == "RGB": + blend = 1 + else: + msg = "mode mismatch" + raise ValueError(msg) + if mode == "P": + self.palette = im.palette + else: + self.palette = None + self._image = im + self.im = im.im + self.draw = Image.core.draw(self.im, blend) + self.mode = mode + if mode in ("I", "F"): + self.ink = self.draw.draw_ink(1) + else: + self.ink = self.draw.draw_ink(-1) + if mode in ("1", "P", "I", "F"): + # FIXME: fix Fill2 to properly support matte for I+F images + self.fontmode = "1" + else: + self.fontmode = "L" # aliasing is okay for other modes + self.fill = False + + def getfont( + self, + ) -> ImageFont.ImageFont | ImageFont.FreeTypeFont | ImageFont.TransposedFont: + """ + Get the current default font. + + To set the default font for this ImageDraw instance:: + + from PIL import ImageDraw, ImageFont + draw.font = ImageFont.truetype("Tests/fonts/FreeMono.ttf") + + To set the default font for all future ImageDraw instances:: + + from PIL import ImageDraw, ImageFont + ImageDraw.ImageDraw.font = ImageFont.truetype("Tests/fonts/FreeMono.ttf") + + If the current default font is ``None``, + it is initialized with ``ImageFont.load_default()``. + + :returns: An image font.""" + if not self.font: + # FIXME: should add a font repository + from . import ImageFont + + self.font = ImageFont.load_default() + return self.font + + def _getfont( + self, font_size: float | None + ) -> ImageFont.ImageFont | ImageFont.FreeTypeFont | ImageFont.TransposedFont: + if font_size is not None: + from . import ImageFont + + return ImageFont.load_default(font_size) + else: + return self.getfont() + + def _getink( + self, ink: _Ink | None, fill: _Ink | None = None + ) -> tuple[int | None, int | None]: + result_ink = None + result_fill = None + if ink is None and fill is None: + if self.fill: + result_fill = self.ink + else: + result_ink = self.ink + else: + if ink is not None: + if isinstance(ink, str): + ink = ImageColor.getcolor(ink, self.mode) + if self.palette and isinstance(ink, tuple): + ink = self.palette.getcolor(ink, self._image) + result_ink = self.draw.draw_ink(ink) + if fill is not None: + if isinstance(fill, str): + fill = ImageColor.getcolor(fill, self.mode) + if self.palette and isinstance(fill, tuple): + fill = self.palette.getcolor(fill, self._image) + result_fill = self.draw.draw_ink(fill) + return result_ink, result_fill + + def arc( + self, + xy: Coords, + start: float, + end: float, + fill: _Ink | None = None, + width: int = 1, + ) -> None: + """Draw an arc.""" + ink, fill = self._getink(fill) + if ink is not None: + self.draw.draw_arc(xy, start, end, ink, width) + + def bitmap( + self, xy: Sequence[int], bitmap: Image.Image, fill: _Ink | None = None + ) -> None: + """Draw a bitmap.""" + bitmap.load() + ink, fill = self._getink(fill) + if ink is None: + ink = fill + if ink is not None: + self.draw.draw_bitmap(xy, bitmap.im, ink) + + def chord( + self, + xy: Coords, + start: float, + end: float, + fill: _Ink | None = None, + outline: _Ink | None = None, + width: int = 1, + ) -> None: + """Draw a chord.""" + ink, fill_ink = self._getink(outline, fill) + if fill_ink is not None: + self.draw.draw_chord(xy, start, end, fill_ink, 1) + if ink is not None and ink != fill_ink and width != 0: + self.draw.draw_chord(xy, start, end, ink, 0, width) + + def ellipse( + self, + xy: Coords, + fill: _Ink | None = None, + outline: _Ink | None = None, + width: int = 1, + ) -> None: + """Draw an ellipse.""" + ink, fill_ink = self._getink(outline, fill) + if fill_ink is not None: + self.draw.draw_ellipse(xy, fill_ink, 1) + if ink is not None and ink != fill_ink and width != 0: + self.draw.draw_ellipse(xy, ink, 0, width) + + def circle( + self, + xy: Sequence[float], + radius: float, + fill: _Ink | None = None, + outline: _Ink | None = None, + width: int = 1, + ) -> None: + """Draw a circle given center coordinates and a radius.""" + ellipse_xy = (xy[0] - radius, xy[1] - radius, xy[0] + radius, xy[1] + radius) + self.ellipse(ellipse_xy, fill, outline, width) + + def line( + self, + xy: Coords, + fill: _Ink | None = None, + width: int = 0, + joint: str | None = None, + ) -> None: + """Draw a line, or a connected sequence of line segments.""" + ink = self._getink(fill)[0] + if ink is not None: + self.draw.draw_lines(xy, ink, width) + if joint == "curve" and width > 4: + points: Sequence[Sequence[float]] + if isinstance(xy[0], (list, tuple)): + points = cast(Sequence[Sequence[float]], xy) + else: + points = [ + cast(Sequence[float], tuple(xy[i : i + 2])) + for i in range(0, len(xy), 2) + ] + for i in range(1, len(points) - 1): + point = points[i] + angles = [ + math.degrees(math.atan2(end[0] - start[0], start[1] - end[1])) + % 360 + for start, end in ( + (points[i - 1], point), + (point, points[i + 1]), + ) + ] + if angles[0] == angles[1]: + # This is a straight line, so no joint is required + continue + + def coord_at_angle( + coord: Sequence[float], angle: float + ) -> tuple[float, ...]: + x, y = coord + angle -= 90 + distance = width / 2 - 1 + return tuple( + p + (math.floor(p_d) if p_d > 0 else math.ceil(p_d)) + for p, p_d in ( + (x, distance * math.cos(math.radians(angle))), + (y, distance * math.sin(math.radians(angle))), + ) + ) + + flipped = ( + angles[1] > angles[0] and angles[1] - 180 > angles[0] + ) or (angles[1] < angles[0] and angles[1] + 180 > angles[0]) + coords = [ + (point[0] - width / 2 + 1, point[1] - width / 2 + 1), + (point[0] + width / 2 - 1, point[1] + width / 2 - 1), + ] + if flipped: + start, end = (angles[1] + 90, angles[0] + 90) + else: + start, end = (angles[0] - 90, angles[1] - 90) + self.pieslice(coords, start - 90, end - 90, fill) + + if width > 8: + # Cover potential gaps between the line and the joint + if flipped: + gap_coords = [ + coord_at_angle(point, angles[0] + 90), + point, + coord_at_angle(point, angles[1] + 90), + ] + else: + gap_coords = [ + coord_at_angle(point, angles[0] - 90), + point, + coord_at_angle(point, angles[1] - 90), + ] + self.line(gap_coords, fill, width=3) + + def shape( + self, + shape: Image.core._Outline, + fill: _Ink | None = None, + outline: _Ink | None = None, + ) -> None: + """(Experimental) Draw a shape.""" + shape.close() + ink, fill_ink = self._getink(outline, fill) + if fill_ink is not None: + self.draw.draw_outline(shape, fill_ink, 1) + if ink is not None and ink != fill_ink: + self.draw.draw_outline(shape, ink, 0) + + def pieslice( + self, + xy: Coords, + start: float, + end: float, + fill: _Ink | None = None, + outline: _Ink | None = None, + width: int = 1, + ) -> None: + """Draw a pieslice.""" + ink, fill_ink = self._getink(outline, fill) + if fill_ink is not None: + self.draw.draw_pieslice(xy, start, end, fill_ink, 1) + if ink is not None and ink != fill_ink and width != 0: + self.draw.draw_pieslice(xy, start, end, ink, 0, width) + + def point(self, xy: Coords, fill: _Ink | None = None) -> None: + """Draw one or more individual pixels.""" + ink, fill = self._getink(fill) + if ink is not None: + self.draw.draw_points(xy, ink) + + def polygon( + self, + xy: Coords, + fill: _Ink | None = None, + outline: _Ink | None = None, + width: int = 1, + ) -> None: + """Draw a polygon.""" + ink, fill_ink = self._getink(outline, fill) + if fill_ink is not None: + self.draw.draw_polygon(xy, fill_ink, 1) + if ink is not None and ink != fill_ink and width != 0: + if width == 1: + self.draw.draw_polygon(xy, ink, 0, width) + elif self.im is not None: + # To avoid expanding the polygon outwards, + # use the fill as a mask + mask = Image.new("1", self.im.size) + mask_ink = self._getink(1)[0] + draw = Draw(mask) + draw.draw.draw_polygon(xy, mask_ink, 1) + + self.draw.draw_polygon(xy, ink, 0, width * 2 - 1, mask.im) + + def regular_polygon( + self, + bounding_circle: Sequence[Sequence[float] | float], + n_sides: int, + rotation: float = 0, + fill: _Ink | None = None, + outline: _Ink | None = None, + width: int = 1, + ) -> None: + """Draw a regular polygon.""" + xy = _compute_regular_polygon_vertices(bounding_circle, n_sides, rotation) + self.polygon(xy, fill, outline, width) + + def rectangle( + self, + xy: Coords, + fill: _Ink | None = None, + outline: _Ink | None = None, + width: int = 1, + ) -> None: + """Draw a rectangle.""" + ink, fill_ink = self._getink(outline, fill) + if fill_ink is not None: + self.draw.draw_rectangle(xy, fill_ink, 1) + if ink is not None and ink != fill_ink and width != 0: + self.draw.draw_rectangle(xy, ink, 0, width) + + def rounded_rectangle( + self, + xy: Coords, + radius: float = 0, + fill: _Ink | None = None, + outline: _Ink | None = None, + width: int = 1, + *, + corners: tuple[bool, bool, bool, bool] | None = None, + ) -> None: + """Draw a rounded rectangle.""" + if isinstance(xy[0], (list, tuple)): + (x0, y0), (x1, y1) = cast(Sequence[Sequence[float]], xy) + else: + x0, y0, x1, y1 = cast(Sequence[float], xy) + if x1 < x0: + msg = "x1 must be greater than or equal to x0" + raise ValueError(msg) + if y1 < y0: + msg = "y1 must be greater than or equal to y0" + raise ValueError(msg) + if corners is None: + corners = (True, True, True, True) + + d = radius * 2 + + x0 = round(x0) + y0 = round(y0) + x1 = round(x1) + y1 = round(y1) + full_x, full_y = False, False + if all(corners): + full_x = d >= x1 - x0 - 1 + if full_x: + # The two left and two right corners are joined + d = x1 - x0 + full_y = d >= y1 - y0 - 1 + if full_y: + # The two top and two bottom corners are joined + d = y1 - y0 + if full_x and full_y: + # If all corners are joined, that is a circle + return self.ellipse(xy, fill, outline, width) + + if d == 0 or not any(corners): + # If the corners have no curve, + # or there are no corners, + # that is a rectangle + return self.rectangle(xy, fill, outline, width) + + r = int(d // 2) + ink, fill_ink = self._getink(outline, fill) + + def draw_corners(pieslice: bool) -> None: + parts: tuple[tuple[tuple[float, float, float, float], int, int], ...] + if full_x: + # Draw top and bottom halves + parts = ( + ((x0, y0, x0 + d, y0 + d), 180, 360), + ((x0, y1 - d, x0 + d, y1), 0, 180), + ) + elif full_y: + # Draw left and right halves + parts = ( + ((x0, y0, x0 + d, y0 + d), 90, 270), + ((x1 - d, y0, x1, y0 + d), 270, 90), + ) + else: + # Draw four separate corners + parts = tuple( + part + for i, part in enumerate( + ( + ((x0, y0, x0 + d, y0 + d), 180, 270), + ((x1 - d, y0, x1, y0 + d), 270, 360), + ((x1 - d, y1 - d, x1, y1), 0, 90), + ((x0, y1 - d, x0 + d, y1), 90, 180), + ) + ) + if corners[i] + ) + for part in parts: + if pieslice: + self.draw.draw_pieslice(*(part + (fill_ink, 1))) + else: + self.draw.draw_arc(*(part + (ink, width))) + + if fill_ink is not None: + draw_corners(True) + + if full_x: + self.draw.draw_rectangle((x0, y0 + r + 1, x1, y1 - r - 1), fill_ink, 1) + elif x1 - r - 1 > x0 + r + 1: + self.draw.draw_rectangle((x0 + r + 1, y0, x1 - r - 1, y1), fill_ink, 1) + if not full_x and not full_y: + left = [x0, y0, x0 + r, y1] + if corners[0]: + left[1] += r + 1 + if corners[3]: + left[3] -= r + 1 + self.draw.draw_rectangle(left, fill_ink, 1) + + right = [x1 - r, y0, x1, y1] + if corners[1]: + right[1] += r + 1 + if corners[2]: + right[3] -= r + 1 + self.draw.draw_rectangle(right, fill_ink, 1) + if ink is not None and ink != fill_ink and width != 0: + draw_corners(False) + + if not full_x: + top = [x0, y0, x1, y0 + width - 1] + if corners[0]: + top[0] += r + 1 + if corners[1]: + top[2] -= r + 1 + self.draw.draw_rectangle(top, ink, 1) + + bottom = [x0, y1 - width + 1, x1, y1] + if corners[3]: + bottom[0] += r + 1 + if corners[2]: + bottom[2] -= r + 1 + self.draw.draw_rectangle(bottom, ink, 1) + if not full_y: + left = [x0, y0, x0 + width - 1, y1] + if corners[0]: + left[1] += r + 1 + if corners[3]: + left[3] -= r + 1 + self.draw.draw_rectangle(left, ink, 1) + + right = [x1 - width + 1, y0, x1, y1] + if corners[1]: + right[1] += r + 1 + if corners[2]: + right[3] -= r + 1 + self.draw.draw_rectangle(right, ink, 1) + + def text( + self, + xy: tuple[float, float], + text: AnyStr | ImageText.Text, + fill: _Ink | None = None, + font: ( + ImageFont.ImageFont + | ImageFont.FreeTypeFont + | ImageFont.TransposedFont + | None + ) = None, + anchor: str | None = None, + spacing: float = 4, + align: str = "left", + direction: str | None = None, + features: list[str] | None = None, + language: str | None = None, + stroke_width: float = 0, + stroke_fill: _Ink | None = None, + embedded_color: bool = False, + *args: Any, + **kwargs: Any, + ) -> None: + """Draw text.""" + if isinstance(text, ImageText.Text): + image_text = text + else: + if font is None: + font = self._getfont(kwargs.get("font_size")) + image_text = ImageText.Text( + text, font, self.mode, spacing, direction, features, language + ) + if embedded_color: + image_text.embed_color() + if stroke_width: + image_text.stroke(stroke_width, stroke_fill) + + def getink(fill: _Ink | None) -> int: + ink, fill_ink = self._getink(fill) + if ink is None: + assert fill_ink is not None + return fill_ink + return ink + + ink = getink(fill) + if ink is None: + return + + stroke_ink = None + if image_text.stroke_width: + stroke_ink = ( + getink(image_text.stroke_fill) + if image_text.stroke_fill is not None + else ink + ) + + for xy, anchor, line in image_text._split(xy, anchor, align): + + def draw_text(ink: int, stroke_width: float = 0) -> None: + mode = self.fontmode + if stroke_width == 0 and embedded_color: + mode = "RGBA" + coord = [] + for i in range(2): + coord.append(int(xy[i])) + start = (math.modf(xy[0])[0], math.modf(xy[1])[0]) + try: + mask, offset = image_text.font.getmask2( # type: ignore[union-attr,misc] + line, + mode, + direction=direction, + features=features, + language=language, + stroke_width=stroke_width, + stroke_filled=True, + anchor=anchor, + ink=ink, + start=start, + *args, + **kwargs, + ) + coord = [coord[0] + offset[0], coord[1] + offset[1]] + except AttributeError: + try: + mask = image_text.font.getmask( # type: ignore[misc] + line, + mode, + direction, + features, + language, + stroke_width, + anchor, + ink, + start=start, + *args, + **kwargs, + ) + except TypeError: + mask = image_text.font.getmask(line) + if mode == "RGBA": + # image_text.font.getmask2(mode="RGBA") + # returns color in RGB bands and mask in A + # extract mask and set text alpha + color, mask = mask, mask.getband(3) + ink_alpha = struct.pack("i", ink)[3] + color.fillband(3, ink_alpha) + x, y = coord + if self.im is not None: + self.im.paste( + color, (x, y, x + mask.size[0], y + mask.size[1]), mask + ) + else: + self.draw.draw_bitmap(coord, mask, ink) + + if stroke_ink is not None: + # Draw stroked text + draw_text(stroke_ink, image_text.stroke_width) + + # Draw normal text + if ink != stroke_ink: + draw_text(ink) + else: + # Only draw normal text + draw_text(ink) + + def multiline_text( + self, + xy: tuple[float, float], + text: AnyStr, + fill: _Ink | None = None, + font: ( + ImageFont.ImageFont + | ImageFont.FreeTypeFont + | ImageFont.TransposedFont + | None + ) = None, + anchor: str | None = None, + spacing: float = 4, + align: str = "left", + direction: str | None = None, + features: list[str] | None = None, + language: str | None = None, + stroke_width: float = 0, + stroke_fill: _Ink | None = None, + embedded_color: bool = False, + *, + font_size: float | None = None, + ) -> None: + return self.text( + xy, + text, + fill, + font, + anchor, + spacing, + align, + direction, + features, + language, + stroke_width, + stroke_fill, + embedded_color, + font_size=font_size, + ) + + def textlength( + self, + text: AnyStr, + font: ( + ImageFont.ImageFont + | ImageFont.FreeTypeFont + | ImageFont.TransposedFont + | None + ) = None, + direction: str | None = None, + features: list[str] | None = None, + language: str | None = None, + embedded_color: bool = False, + *, + font_size: float | None = None, + ) -> float: + """Get the length of a given string, in pixels with 1/64 precision.""" + if font is None: + font = self._getfont(font_size) + image_text = ImageText.Text( + text, + font, + self.mode, + direction=direction, + features=features, + language=language, + ) + if embedded_color: + image_text.embed_color() + return image_text.get_length() + + def textbbox( + self, + xy: tuple[float, float], + text: AnyStr, + font: ( + ImageFont.ImageFont + | ImageFont.FreeTypeFont + | ImageFont.TransposedFont + | None + ) = None, + anchor: str | None = None, + spacing: float = 4, + align: str = "left", + direction: str | None = None, + features: list[str] | None = None, + language: str | None = None, + stroke_width: float = 0, + embedded_color: bool = False, + *, + font_size: float | None = None, + ) -> tuple[float, float, float, float]: + """Get the bounding box of a given string, in pixels.""" + if font is None: + font = self._getfont(font_size) + image_text = ImageText.Text( + text, font, self.mode, spacing, direction, features, language + ) + if embedded_color: + image_text.embed_color() + if stroke_width: + image_text.stroke(stroke_width) + return image_text.get_bbox(xy, anchor, align) + + def multiline_textbbox( + self, + xy: tuple[float, float], + text: AnyStr, + font: ( + ImageFont.ImageFont + | ImageFont.FreeTypeFont + | ImageFont.TransposedFont + | None + ) = None, + anchor: str | None = None, + spacing: float = 4, + align: str = "left", + direction: str | None = None, + features: list[str] | None = None, + language: str | None = None, + stroke_width: float = 0, + embedded_color: bool = False, + *, + font_size: float | None = None, + ) -> tuple[float, float, float, float]: + return self.textbbox( + xy, + text, + font, + anchor, + spacing, + align, + direction, + features, + language, + stroke_width, + embedded_color, + font_size=font_size, + ) + + +def Draw(im: Image.Image, mode: str | None = None) -> ImageDraw: + """ + A simple 2D drawing interface for PIL images. + + :param im: The image to draw in. + :param mode: Optional mode to use for color values. For RGB + images, this argument can be RGB or RGBA (to blend the + drawing into the image). For all other modes, this argument + must be the same as the image mode. If omitted, the mode + defaults to the mode of the image. + """ + try: + return getattr(im, "getdraw")(mode) + except AttributeError: + return ImageDraw(im, mode) + + +def getdraw(im: Image.Image | None = None) -> tuple[ImageDraw2.Draw | None, ModuleType]: + """ + :param im: The image to draw in. + :returns: A (drawing context, drawing resource factory) tuple. + """ + from . import ImageDraw2 + + draw = ImageDraw2.Draw(im) if im is not None else None + return draw, ImageDraw2 + + +def floodfill( + image: Image.Image, + xy: tuple[int, int], + value: float | tuple[int, ...], + border: float | tuple[int, ...] | None = None, + thresh: float = 0, +) -> None: + """ + .. warning:: This method is experimental. + + Fills a bounded region with a given color. + + :param image: Target image. + :param xy: Seed position (a 2-item coordinate tuple). See + :ref:`coordinate-system`. + :param value: Fill color. + :param border: Optional border value. If given, the region consists of + pixels with a color different from the border color. If not given, + the region consists of pixels having the same color as the seed + pixel. + :param thresh: Optional threshold value which specifies a maximum + tolerable difference of a pixel value from the 'background' in + order for it to be replaced. Useful for filling regions of + non-homogeneous, but similar, colors. + """ + # based on an implementation by Eric S. Raymond + # amended by yo1995 @20180806 + pixel = image.load() + assert pixel is not None + x, y = xy + try: + background = pixel[x, y] + if _color_diff(value, background) <= thresh: + return # seed point already has fill color + pixel[x, y] = value + except (ValueError, IndexError): + return # seed point outside image + edge = {(x, y)} + # use a set to keep record of current and previous edge pixels + # to reduce memory consumption + full_edge = set() + while edge: + new_edge = set() + for x, y in edge: # 4 adjacent method + for s, t in ((x + 1, y), (x - 1, y), (x, y + 1), (x, y - 1)): + # If already processed, or if a coordinate is negative, skip + if (s, t) in full_edge or s < 0 or t < 0: + continue + try: + p = pixel[s, t] + except (ValueError, IndexError): + pass + else: + full_edge.add((s, t)) + if border is None: + fill = _color_diff(p, background) <= thresh + else: + fill = p not in (value, border) + if fill: + pixel[s, t] = value + new_edge.add((s, t)) + full_edge = edge # discard pixels processed + edge = new_edge + + +def _compute_regular_polygon_vertices( + bounding_circle: Sequence[Sequence[float] | float], n_sides: int, rotation: float +) -> list[tuple[float, float]]: + """ + Generate a list of vertices for a 2D regular polygon. + + :param bounding_circle: The bounding circle is a sequence defined + by a point and radius. The polygon is inscribed in this circle. + (e.g. ``bounding_circle=(x, y, r)`` or ``((x, y), r)``) + :param n_sides: Number of sides + (e.g. ``n_sides=3`` for a triangle, ``6`` for a hexagon) + :param rotation: Apply an arbitrary rotation to the polygon + (e.g. ``rotation=90``, applies a 90 degree rotation) + :return: List of regular polygon vertices + (e.g. ``[(25, 50), (50, 50), (50, 25), (25, 25)]``) + + How are the vertices computed? + 1. Compute the following variables + - theta: Angle between the apothem & the nearest polygon vertex + - side_length: Length of each polygon edge + - centroid: Center of bounding circle (1st, 2nd elements of bounding_circle) + - polygon_radius: Polygon radius (last element of bounding_circle) + - angles: Location of each polygon vertex in polar grid + (e.g. A square with 0 degree rotation => [225.0, 315.0, 45.0, 135.0]) + + 2. For each angle in angles, get the polygon vertex at that angle + The vertex is computed using the equation below. + X= xcos(φ) + ysin(φ) + Y= −xsin(φ) + ycos(φ) + + Note: + φ = angle in degrees + x = 0 + y = polygon_radius + + The formula above assumes rotation around the origin. + In our case, we are rotating around the centroid. + To account for this, we use the formula below + X = xcos(φ) + ysin(φ) + centroid_x + Y = −xsin(φ) + ycos(φ) + centroid_y + """ + # 1. Error Handling + # 1.1 Check `n_sides` has an appropriate value + if not isinstance(n_sides, int): + msg = "n_sides should be an int" # type: ignore[unreachable] + raise TypeError(msg) + if n_sides < 3: + msg = "n_sides should be an int > 2" + raise ValueError(msg) + + # 1.2 Check `bounding_circle` has an appropriate value + if not isinstance(bounding_circle, (list, tuple)): + msg = "bounding_circle should be a sequence" + raise TypeError(msg) + + if len(bounding_circle) == 3: + if not all(isinstance(i, (int, float)) for i in bounding_circle): + msg = "bounding_circle should only contain numeric data" + raise ValueError(msg) + + *centroid, polygon_radius = cast(list[float], list(bounding_circle)) + elif len(bounding_circle) == 2 and isinstance(bounding_circle[0], (list, tuple)): + if not all( + isinstance(i, (int, float)) for i in bounding_circle[0] + ) or not isinstance(bounding_circle[1], (int, float)): + msg = "bounding_circle should only contain numeric data" + raise ValueError(msg) + + if len(bounding_circle[0]) != 2: + msg = "bounding_circle centre should contain 2D coordinates (e.g. (x, y))" + raise ValueError(msg) + + centroid = cast(list[float], list(bounding_circle[0])) + polygon_radius = cast(float, bounding_circle[1]) + else: + msg = ( + "bounding_circle should contain 2D coordinates " + "and a radius (e.g. (x, y, r) or ((x, y), r) )" + ) + raise ValueError(msg) + + if polygon_radius <= 0: + msg = "bounding_circle radius should be > 0" + raise ValueError(msg) + + # 1.3 Check `rotation` has an appropriate value + if not isinstance(rotation, (int, float)): + msg = "rotation should be an int or float" # type: ignore[unreachable] + raise ValueError(msg) + + # 2. Define Helper Functions + def _apply_rotation(point: list[float], degrees: float) -> tuple[float, float]: + return ( + round( + point[0] * math.cos(math.radians(360 - degrees)) + - point[1] * math.sin(math.radians(360 - degrees)) + + centroid[0], + 2, + ), + round( + point[1] * math.cos(math.radians(360 - degrees)) + + point[0] * math.sin(math.radians(360 - degrees)) + + centroid[1], + 2, + ), + ) + + def _compute_polygon_vertex(angle: float) -> tuple[float, float]: + start_point = [polygon_radius, 0] + return _apply_rotation(start_point, angle) + + def _get_angles(n_sides: int, rotation: float) -> list[float]: + angles = [] + degrees = 360 / n_sides + # Start with the bottom left polygon vertex + current_angle = (270 - 0.5 * degrees) + rotation + for _ in range(n_sides): + angles.append(current_angle) + current_angle += degrees + if current_angle > 360: + current_angle -= 360 + return angles + + # 3. Variable Declarations + angles = _get_angles(n_sides, rotation) + + # 4. Compute Vertices + return [_compute_polygon_vertex(angle) for angle in angles] + + +def _color_diff( + color1: float | tuple[int, ...], color2: float | tuple[int, ...] +) -> float: + """ + Uses 1-norm distance to calculate difference between two values. + """ + first = color1 if isinstance(color1, tuple) else (color1,) + second = color2 if isinstance(color2, tuple) else (color2,) + + return sum(abs(first[i] - second[i]) for i in range(len(second))) diff --git a/venv/lib/python3.11/site-packages/PIL/ImageDraw2.py b/venv/lib/python3.11/site-packages/PIL/ImageDraw2.py new file mode 100644 index 0000000..3d68658 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ImageDraw2.py @@ -0,0 +1,243 @@ +# +# The Python Imaging Library +# $Id$ +# +# WCK-style drawing interface operations +# +# History: +# 2003-12-07 fl created +# 2005-05-15 fl updated; added to PIL as ImageDraw2 +# 2005-05-15 fl added text support +# 2005-05-20 fl added arc/chord/pieslice support +# +# Copyright (c) 2003-2005 by Secret Labs AB +# Copyright (c) 2003-2005 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + + +""" +(Experimental) WCK-style drawing interface operations + +.. seealso:: :py:mod:`PIL.ImageDraw` +""" +from __future__ import annotations + +from typing import Any, AnyStr, BinaryIO + +from . import Image, ImageColor, ImageDraw, ImageFont, ImagePath +from ._typing import Coords, StrOrBytesPath + + +class Pen: + """Stores an outline color and width.""" + + def __init__(self, color: str, width: int = 1, opacity: int = 255) -> None: + self.color = ImageColor.getrgb(color) + self.width = width + + +class Brush: + """Stores a fill color""" + + def __init__(self, color: str, opacity: int = 255) -> None: + self.color = ImageColor.getrgb(color) + + +class Font: + """Stores a TrueType font and color""" + + def __init__( + self, color: str, file: StrOrBytesPath | BinaryIO, size: float = 12 + ) -> None: + # FIXME: add support for bitmap fonts + self.color = ImageColor.getrgb(color) + self.font = ImageFont.truetype(file, size) + + +class Draw: + """ + (Experimental) WCK-style drawing interface + """ + + def __init__( + self, + image: Image.Image | str, + size: tuple[int, int] | list[int] | None = None, + color: float | tuple[float, ...] | str | None = None, + ) -> None: + if isinstance(image, str): + if size is None: + msg = "If image argument is mode string, size must be a list or tuple" + raise ValueError(msg) + image = Image.new(image, size, color) + self.draw = ImageDraw.Draw(image) + self.image = image + self.transform: tuple[float, float, float, float, float, float] | None = None + + def flush(self) -> Image.Image: + return self.image + + def render( + self, + op: str, + xy: Coords, + pen: Pen | Brush | None, + brush: Brush | Pen | None = None, + **kwargs: Any, + ) -> None: + # handle color arguments + outline = fill = None + width = 1 + if isinstance(pen, Pen): + outline = pen.color + width = pen.width + elif isinstance(brush, Pen): + outline = brush.color + width = brush.width + if isinstance(brush, Brush): + fill = brush.color + elif isinstance(pen, Brush): + fill = pen.color + # handle transformation + if self.transform: + path = ImagePath.Path(xy) + path.transform(self.transform) + xy = path + # render the item + if op in ("arc", "line"): + kwargs.setdefault("fill", outline) + else: + kwargs.setdefault("fill", fill) + kwargs.setdefault("outline", outline) + if op == "line": + kwargs.setdefault("width", width) + getattr(self.draw, op)(xy, **kwargs) + + def settransform(self, offset: tuple[float, float]) -> None: + """Sets a transformation offset.""" + (xoffset, yoffset) = offset + self.transform = (1, 0, xoffset, 0, 1, yoffset) + + def arc( + self, + xy: Coords, + pen: Pen | Brush | None, + start: float, + end: float, + *options: Any, + ) -> None: + """ + Draws an arc (a portion of a circle outline) between the start and end + angles, inside the given bounding box. + + .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.arc` + """ + self.render("arc", xy, pen, *options, start=start, end=end) + + def chord( + self, + xy: Coords, + pen: Pen | Brush | None, + start: float, + end: float, + *options: Any, + ) -> None: + """ + Same as :py:meth:`~PIL.ImageDraw2.Draw.arc`, but connects the end points + with a straight line. + + .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.chord` + """ + self.render("chord", xy, pen, *options, start=start, end=end) + + def ellipse(self, xy: Coords, pen: Pen | Brush | None, *options: Any) -> None: + """ + Draws an ellipse inside the given bounding box. + + .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.ellipse` + """ + self.render("ellipse", xy, pen, *options) + + def line(self, xy: Coords, pen: Pen | Brush | None, *options: Any) -> None: + """ + Draws a line between the coordinates in the ``xy`` list. + + .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.line` + """ + self.render("line", xy, pen, *options) + + def pieslice( + self, + xy: Coords, + pen: Pen | Brush | None, + start: float, + end: float, + *options: Any, + ) -> None: + """ + Same as arc, but also draws straight lines between the end points and the + center of the bounding box. + + .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.pieslice` + """ + self.render("pieslice", xy, pen, *options, start=start, end=end) + + def polygon(self, xy: Coords, pen: Pen | Brush | None, *options: Any) -> None: + """ + Draws a polygon. + + The polygon outline consists of straight lines between the given + coordinates, plus a straight line between the last and the first + coordinate. + + + .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.polygon` + """ + self.render("polygon", xy, pen, *options) + + def rectangle(self, xy: Coords, pen: Pen | Brush | None, *options: Any) -> None: + """ + Draws a rectangle. + + .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.rectangle` + """ + self.render("rectangle", xy, pen, *options) + + def text(self, xy: tuple[float, float], text: AnyStr, font: Font) -> None: + """ + Draws the string at the given position. + + .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.text` + """ + if self.transform: + path = ImagePath.Path(xy) + path.transform(self.transform) + xy = path + self.draw.text(xy, text, font=font.font, fill=font.color) + + def textbbox( + self, xy: tuple[float, float], text: AnyStr, font: Font + ) -> tuple[float, float, float, float]: + """ + Returns bounding box (in pixels) of given text. + + :return: ``(left, top, right, bottom)`` bounding box + + .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.textbbox` + """ + if self.transform: + path = ImagePath.Path(xy) + path.transform(self.transform) + xy = path + return self.draw.textbbox(xy, text, font=font.font) + + def textlength(self, text: AnyStr, font: Font) -> float: + """ + Returns length (in pixels) of given text. + This is the amount by which following text should be offset. + + .. seealso:: :py:meth:`PIL.ImageDraw.ImageDraw.textlength` + """ + return self.draw.textlength(text, font=font.font) diff --git a/venv/lib/python3.11/site-packages/PIL/ImageFile.py b/venv/lib/python3.11/site-packages/PIL/ImageFile.py new file mode 100644 index 0000000..a1d98bd --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ImageFile.py @@ -0,0 +1,926 @@ +# +# The Python Imaging Library. +# $Id$ +# +# base class for image file handlers +# +# history: +# 1995-09-09 fl Created +# 1996-03-11 fl Fixed load mechanism. +# 1996-04-15 fl Added pcx/xbm decoders. +# 1996-04-30 fl Added encoders. +# 1996-12-14 fl Added load helpers +# 1997-01-11 fl Use encode_to_file where possible +# 1997-08-27 fl Flush output in _save +# 1998-03-05 fl Use memory mapping for some modes +# 1999-02-04 fl Use memory mapping also for "I;16" and "I;16B" +# 1999-05-31 fl Added image parser +# 2000-10-12 fl Set readonly flag on memory-mapped images +# 2002-03-20 fl Use better messages for common decoder errors +# 2003-04-21 fl Fall back on mmap/map_buffer if map is not available +# 2003-10-30 fl Added StubImageFile class +# 2004-02-25 fl Made incremental parser more robust +# +# Copyright (c) 1997-2004 by Secret Labs AB +# Copyright (c) 1995-2004 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# +from __future__ import annotations + +import abc +import io +import itertools +import logging +import os +import struct +from typing import IO, Any, NamedTuple, cast + +from . import ExifTags, Image +from ._util import DeferredError, is_path + +TYPE_CHECKING = False +if TYPE_CHECKING: + from ._typing import StrOrBytesPath + +logger = logging.getLogger(__name__) + +MAXBLOCK = 65536 +""" +By default, Pillow processes image data in blocks. This helps to prevent excessive use +of resources. Codecs may disable this behaviour with ``_pulls_fd`` or ``_pushes_fd``. + +When reading an image, this is the number of bytes to read at once. + +When writing an image, this is the number of bytes to write at once. +If the image width times 4 is greater, then that will be used instead. +Plugins may also set a greater number. + +User code may set this to another number. +""" + +SAFEBLOCK = 1024 * 1024 + +LOAD_TRUNCATED_IMAGES = False +"""Whether or not to load truncated image files. User code may change this.""" + +ERRORS = { + -1: "image buffer overrun error", + -2: "decoding error", + -3: "unknown error", + -8: "bad configuration", + -9: "out of memory error", +} +""" +Dict of known error codes returned from :meth:`.PyDecoder.decode`, +:meth:`.PyEncoder.encode` :meth:`.PyEncoder.encode_to_pyfd` and +:meth:`.PyEncoder.encode_to_file`. +""" + + +# +# -------------------------------------------------------------------- +# Helpers + + +def _get_oserror(error: int, *, encoder: bool) -> OSError: + try: + msg = Image.core.getcodecstatus(error) + except AttributeError: + msg = ERRORS.get(error) + if not msg: + msg = f"{'encoder' if encoder else 'decoder'} error {error}" + msg += f" when {'writing' if encoder else 'reading'} image file" + return OSError(msg) + + +def _tilesort(t: _Tile) -> int: + # sort on offset + return t[2] + + +class _Tile(NamedTuple): + codec_name: str + extents: tuple[int, int, int, int] | None + offset: int = 0 + args: tuple[Any, ...] | str | None = None + + +# +# -------------------------------------------------------------------- +# ImageFile base class + + +class ImageFile(Image.Image): + """Base class for image file format handlers.""" + + def __init__( + self, fp: StrOrBytesPath | IO[bytes], filename: str | bytes | None = None + ) -> None: + super().__init__() + + self._min_frame = 0 + + self.custom_mimetype: str | None = None + + self.tile: list[_Tile] = [] + """ A list of tile descriptors """ + + self.readonly = 1 # until we know better + + self.decoderconfig: tuple[Any, ...] = () + self.decodermaxblock = MAXBLOCK + + if is_path(fp): + # filename + self.fp = open(fp, "rb") + self.filename = os.fspath(fp) + self._exclusive_fp = True + else: + # stream + self.fp = cast(IO[bytes], fp) + self.filename = filename if filename is not None else "" + # can be overridden + self._exclusive_fp = False + + try: + try: + self._open() + except ( + IndexError, # end of data + TypeError, # end of data (ord) + KeyError, # unsupported mode + EOFError, # got header but not the first frame + struct.error, + ) as v: + raise SyntaxError(v) from v + + if not self.mode or self.size[0] <= 0 or self.size[1] <= 0: + msg = "not identified by this driver" + raise SyntaxError(msg) + except BaseException: + # close the file only if we have opened it this constructor + if self._exclusive_fp: + self.fp.close() + raise + + def _open(self) -> None: + pass + + def _close_fp(self): + if getattr(self, "_fp", False) and not isinstance(self._fp, DeferredError): + if self._fp != self.fp: + self._fp.close() + self._fp = DeferredError(ValueError("Operation on closed image")) + if self.fp: + self.fp.close() + + def close(self) -> None: + """ + Closes the file pointer, if possible. + + This operation will destroy the image core and release its memory. + The image data will be unusable afterward. + + This function is required to close images that have multiple frames or + have not had their file read and closed by the + :py:meth:`~PIL.Image.Image.load` method. See :ref:`file-handling` for + more information. + """ + try: + self._close_fp() + self.fp = None + except Exception as msg: + logger.debug("Error closing: %s", msg) + + super().close() + + def get_child_images(self) -> list[ImageFile]: + child_images = [] + exif = self.getexif() + ifds = [] + if ExifTags.Base.SubIFDs in exif: + subifd_offsets = exif[ExifTags.Base.SubIFDs] + if subifd_offsets: + if not isinstance(subifd_offsets, tuple): + subifd_offsets = (subifd_offsets,) + for subifd_offset in subifd_offsets: + ifds.append((exif._get_ifd_dict(subifd_offset), subifd_offset)) + ifd1 = exif.get_ifd(ExifTags.IFD.IFD1) + if ifd1 and ifd1.get(ExifTags.Base.JpegIFOffset): + assert exif._info is not None + ifds.append((ifd1, exif._info.next)) + + offset = None + for ifd, ifd_offset in ifds: + assert self.fp is not None + current_offset = self.fp.tell() + if offset is None: + offset = current_offset + + fp = self.fp + if ifd is not None: + thumbnail_offset = ifd.get(ExifTags.Base.JpegIFOffset) + if thumbnail_offset is not None: + thumbnail_offset += getattr(self, "_exif_offset", 0) + self.fp.seek(thumbnail_offset) + + length = ifd.get(ExifTags.Base.JpegIFByteCount) + assert isinstance(length, int) + data = self.fp.read(length) + fp = io.BytesIO(data) + + with Image.open(fp) as im: + from . import TiffImagePlugin + + if thumbnail_offset is None and isinstance( + im, TiffImagePlugin.TiffImageFile + ): + im._frame_pos = [ifd_offset] + im._seek(0) + im.load() + child_images.append(im) + + if offset is not None: + assert self.fp is not None + self.fp.seek(offset) + return child_images + + def get_format_mimetype(self) -> str | None: + if self.custom_mimetype: + return self.custom_mimetype + if self.format is not None: + return Image.MIME.get(self.format.upper()) + return None + + def __getstate__(self) -> list[Any]: + return super().__getstate__() + [self.filename] + + def __setstate__(self, state: list[Any]) -> None: + self.tile = [] + if len(state) > 5: + self.filename = state[5] + super().__setstate__(state) + + def verify(self) -> None: + """Check file integrity""" + + # raise exception if something's wrong. must be called + # directly after open, and closes file when finished. + if self._exclusive_fp: + self.fp.close() + self.fp = None + + def load(self) -> Image.core.PixelAccess | None: + """Load image data based on tile list""" + + if not self.tile and self._im is None: + msg = "cannot load this image" + raise OSError(msg) + + pixel = Image.Image.load(self) + if not self.tile: + return pixel + + self.map: mmap.mmap | None = None + use_mmap = self.filename and len(self.tile) == 1 + + readonly = 0 + + # look for read/seek overrides + if hasattr(self, "load_read"): + read = self.load_read + # don't use mmap if there are custom read/seek functions + use_mmap = False + else: + read = self.fp.read + + if hasattr(self, "load_seek"): + seek = self.load_seek + use_mmap = False + else: + seek = self.fp.seek + + if use_mmap: + # try memory mapping + decoder_name, extents, offset, args = self.tile[0] + if isinstance(args, str): + args = (args, 0, 1) + if ( + decoder_name == "raw" + and isinstance(args, tuple) + and len(args) >= 3 + and args[0] == self.mode + and args[0] in Image._MAPMODES + ): + if offset < 0: + msg = "Tile offset cannot be negative" + raise ValueError(msg) + try: + # use mmap, if possible + import mmap + + with open(self.filename) as fp: + self.map = mmap.mmap(fp.fileno(), 0, access=mmap.ACCESS_READ) + if offset + self.size[1] * args[1] > self.map.size(): + msg = "buffer is not large enough" + raise OSError(msg) + self.im = Image.core.map_buffer( + self.map, self.size, decoder_name, offset, args + ) + readonly = 1 + # After trashing self.im, + # we might need to reload the palette data. + if self.palette: + self.palette.dirty = 1 + except (AttributeError, OSError, ImportError): + self.map = None + + self.load_prepare() + err_code = -3 # initialize to unknown error + if not self.map: + # sort tiles in file order + self.tile.sort(key=_tilesort) + + # FIXME: This is a hack to handle TIFF's JpegTables tag. + prefix = getattr(self, "tile_prefix", b"") + + # Remove consecutive duplicates that only differ by their offset + self.tile = [ + list(tiles)[-1] + for _, tiles in itertools.groupby( + self.tile, lambda tile: (tile[0], tile[1], tile[3]) + ) + ] + for i, (decoder_name, extents, offset, args) in enumerate(self.tile): + seek(offset) + decoder = Image._getdecoder( + self.mode, decoder_name, args, self.decoderconfig + ) + try: + decoder.setimage(self.im, extents) + if decoder.pulls_fd: + decoder.setfd(self.fp) + err_code = decoder.decode(b"")[1] + else: + b = prefix + while True: + read_bytes = self.decodermaxblock + if i + 1 < len(self.tile): + next_offset = self.tile[i + 1].offset + if next_offset > offset: + read_bytes = next_offset - offset + try: + s = read(read_bytes) + except (IndexError, struct.error) as e: + # truncated png/gif + if LOAD_TRUNCATED_IMAGES: + break + else: + msg = "image file is truncated" + raise OSError(msg) from e + + if not s: # truncated jpeg + if LOAD_TRUNCATED_IMAGES: + break + else: + msg = ( + "image file is truncated " + f"({len(b)} bytes not processed)" + ) + raise OSError(msg) + + b = b + s + n, err_code = decoder.decode(b) + if n < 0: + break + b = b[n:] + finally: + # Need to cleanup here to prevent leaks + decoder.cleanup() + + self.tile = [] + self.readonly = readonly + + self.load_end() + + if self._exclusive_fp and self._close_exclusive_fp_after_loading: + self.fp.close() + self.fp = None + + if not self.map and not LOAD_TRUNCATED_IMAGES and err_code < 0: + # still raised if decoder fails to return anything + raise _get_oserror(err_code, encoder=False) + + return Image.Image.load(self) + + def load_prepare(self) -> None: + # create image memory if necessary + if self._im is None: + self.im = Image.core.new(self.mode, self.size) + # create palette (optional) + if self.mode == "P": + Image.Image.load(self) + + def load_end(self) -> None: + # may be overridden + pass + + # may be defined for contained formats + # def load_seek(self, pos: int) -> None: + # pass + + # may be defined for blocked formats (e.g. PNG) + # def load_read(self, read_bytes: int) -> bytes: + # pass + + def _seek_check(self, frame: int) -> bool: + if ( + frame < self._min_frame + # Only check upper limit on frames if additional seek operations + # are not required to do so + or ( + not (hasattr(self, "_n_frames") and self._n_frames is None) + and frame >= getattr(self, "n_frames") + self._min_frame + ) + ): + msg = "attempt to seek outside sequence" + raise EOFError(msg) + + return self.tell() != frame + + +class StubHandler(abc.ABC): + def open(self, im: StubImageFile) -> None: + pass + + @abc.abstractmethod + def load(self, im: StubImageFile) -> Image.Image: + pass + + +class StubImageFile(ImageFile, metaclass=abc.ABCMeta): + """ + Base class for stub image loaders. + + A stub loader is an image loader that can identify files of a + certain format, but relies on external code to load the file. + """ + + @abc.abstractmethod + def _open(self) -> None: + pass + + def load(self) -> Image.core.PixelAccess | None: + loader = self._load() + if loader is None: + msg = f"cannot find loader for this {self.format} file" + raise OSError(msg) + image = loader.load(self) + assert image is not None + # become the other object (!) + self.__class__ = image.__class__ # type: ignore[assignment] + self.__dict__ = image.__dict__ + return image.load() + + @abc.abstractmethod + def _load(self) -> StubHandler | None: + """(Hook) Find actual image loader.""" + pass + + +class Parser: + """ + Incremental image parser. This class implements the standard + feed/close consumer interface. + """ + + incremental = None + image: Image.Image | None = None + data: bytes | None = None + decoder: Image.core.ImagingDecoder | PyDecoder | None = None + offset = 0 + finished = 0 + + def reset(self) -> None: + """ + (Consumer) Reset the parser. Note that you can only call this + method immediately after you've created a parser; parser + instances cannot be reused. + """ + assert self.data is None, "cannot reuse parsers" + + def feed(self, data: bytes) -> None: + """ + (Consumer) Feed data to the parser. + + :param data: A string buffer. + :exception OSError: If the parser failed to parse the image file. + """ + # collect data + + if self.finished: + return + + if self.data is None: + self.data = data + else: + self.data = self.data + data + + # parse what we have + if self.decoder: + if self.offset > 0: + # skip header + skip = min(len(self.data), self.offset) + self.data = self.data[skip:] + self.offset = self.offset - skip + if self.offset > 0 or not self.data: + return + + n, e = self.decoder.decode(self.data) + + if n < 0: + # end of stream + self.data = None + self.finished = 1 + if e < 0: + # decoding error + self.image = None + raise _get_oserror(e, encoder=False) + else: + # end of image + return + self.data = self.data[n:] + + elif self.image: + # if we end up here with no decoder, this file cannot + # be incrementally parsed. wait until we've gotten all + # available data + pass + + else: + # attempt to open this file + try: + with io.BytesIO(self.data) as fp: + im = Image.open(fp) + except OSError: + pass # not enough data + else: + flag = hasattr(im, "load_seek") or hasattr(im, "load_read") + if flag or len(im.tile) != 1: + # custom load code, or multiple tiles + self.decode = None + else: + # initialize decoder + im.load_prepare() + d, e, o, a = im.tile[0] + im.tile = [] + self.decoder = Image._getdecoder(im.mode, d, a, im.decoderconfig) + self.decoder.setimage(im.im, e) + + # calculate decoder offset + self.offset = o + if self.offset <= len(self.data): + self.data = self.data[self.offset :] + self.offset = 0 + + self.image = im + + def __enter__(self) -> Parser: + return self + + def __exit__(self, *args: object) -> None: + self.close() + + def close(self) -> Image.Image: + """ + (Consumer) Close the stream. + + :returns: An image object. + :exception OSError: If the parser failed to parse the image file either + because it cannot be identified or cannot be + decoded. + """ + # finish decoding + if self.decoder: + # get rid of what's left in the buffers + self.feed(b"") + self.data = self.decoder = None + if not self.finished: + msg = "image was incomplete" + raise OSError(msg) + if not self.image: + msg = "cannot parse this image" + raise OSError(msg) + if self.data: + # incremental parsing not possible; reopen the file + # not that we have all data + with io.BytesIO(self.data) as fp: + try: + self.image = Image.open(fp) + finally: + self.image.load() + return self.image + + +# -------------------------------------------------------------------- + + +def _save(im: Image.Image, fp: IO[bytes], tile: list[_Tile], bufsize: int = 0) -> None: + """Helper to save image based on tile list + + :param im: Image object. + :param fp: File object. + :param tile: Tile list. + :param bufsize: Optional buffer size + """ + + im.load() + if not hasattr(im, "encoderconfig"): + im.encoderconfig = () + tile.sort(key=_tilesort) + # FIXME: make MAXBLOCK a configuration parameter + # It would be great if we could have the encoder specify what it needs + # But, it would need at least the image size in most cases. RawEncode is + # a tricky case. + bufsize = max(MAXBLOCK, bufsize, im.size[0] * 4) # see RawEncode.c + try: + fh = fp.fileno() + fp.flush() + _encode_tile(im, fp, tile, bufsize, fh) + except (AttributeError, io.UnsupportedOperation) as exc: + _encode_tile(im, fp, tile, bufsize, None, exc) + if hasattr(fp, "flush"): + fp.flush() + + +def _encode_tile( + im: Image.Image, + fp: IO[bytes], + tile: list[_Tile], + bufsize: int, + fh: int | None, + exc: BaseException | None = None, +) -> None: + for encoder_name, extents, offset, args in tile: + if offset > 0: + fp.seek(offset) + encoder = Image._getencoder(im.mode, encoder_name, args, im.encoderconfig) + try: + encoder.setimage(im.im, extents) + if encoder.pushes_fd: + encoder.setfd(fp) + errcode = encoder.encode_to_pyfd()[1] + else: + if exc: + # compress to Python file-compatible object + while True: + errcode, data = encoder.encode(bufsize)[1:] + fp.write(data) + if errcode: + break + else: + # slight speedup: compress to real file object + assert fh is not None + errcode = encoder.encode_to_file(fh, bufsize) + if errcode < 0: + raise _get_oserror(errcode, encoder=True) from exc + finally: + encoder.cleanup() + + +def _safe_read(fp: IO[bytes], size: int) -> bytes: + """ + Reads large blocks in a safe way. Unlike fp.read(n), this function + doesn't trust the user. If the requested size is larger than + SAFEBLOCK, the file is read block by block. + + :param fp: File handle. Must implement a read method. + :param size: Number of bytes to read. + :returns: A string containing size bytes of data. + + Raises an OSError if the file is truncated and the read cannot be completed + + """ + if size <= 0: + return b"" + if size <= SAFEBLOCK: + data = fp.read(size) + if len(data) < size: + msg = "Truncated File Read" + raise OSError(msg) + return data + blocks: list[bytes] = [] + remaining_size = size + while remaining_size > 0: + block = fp.read(min(remaining_size, SAFEBLOCK)) + if not block: + break + blocks.append(block) + remaining_size -= len(block) + if sum(len(block) for block in blocks) < size: + msg = "Truncated File Read" + raise OSError(msg) + return b"".join(blocks) + + +class PyCodecState: + def __init__(self) -> None: + self.xsize = 0 + self.ysize = 0 + self.xoff = 0 + self.yoff = 0 + + def extents(self) -> tuple[int, int, int, int]: + return self.xoff, self.yoff, self.xoff + self.xsize, self.yoff + self.ysize + + +class PyCodec: + fd: IO[bytes] | None + + def __init__(self, mode: str, *args: Any) -> None: + self.im: Image.core.ImagingCore | None = None + self.state = PyCodecState() + self.fd = None + self.mode = mode + self.init(args) + + def init(self, args: tuple[Any, ...]) -> None: + """ + Override to perform codec specific initialization + + :param args: Tuple of arg items from the tile entry + :returns: None + """ + self.args = args + + def cleanup(self) -> None: + """ + Override to perform codec specific cleanup + + :returns: None + """ + pass + + def setfd(self, fd: IO[bytes]) -> None: + """ + Called from ImageFile to set the Python file-like object + + :param fd: A Python file-like object + :returns: None + """ + self.fd = fd + + def setimage( + self, + im: Image.core.ImagingCore, + extents: tuple[int, int, int, int] | None = None, + ) -> None: + """ + Called from ImageFile to set the core output image for the codec + + :param im: A core image object + :param extents: a 4 tuple of (x0, y0, x1, y1) defining the rectangle + for this tile + :returns: None + """ + + # following c code + self.im = im + + if extents: + (x0, y0, x1, y1) = extents + else: + (x0, y0, x1, y1) = (0, 0, 0, 0) + + if x0 == 0 and x1 == 0: + self.state.xsize, self.state.ysize = self.im.size + else: + self.state.xoff = x0 + self.state.yoff = y0 + self.state.xsize = x1 - x0 + self.state.ysize = y1 - y0 + + if self.state.xsize <= 0 or self.state.ysize <= 0: + msg = "Size cannot be negative" + raise ValueError(msg) + + if ( + self.state.xsize + self.state.xoff > self.im.size[0] + or self.state.ysize + self.state.yoff > self.im.size[1] + ): + msg = "Tile cannot extend outside image" + raise ValueError(msg) + + +class PyDecoder(PyCodec): + """ + Python implementation of a format decoder. Override this class and + add the decoding logic in the :meth:`decode` method. + + See :ref:`Writing Your Own File Codec in Python` + """ + + _pulls_fd = False + + @property + def pulls_fd(self) -> bool: + return self._pulls_fd + + def decode(self, buffer: bytes | Image.SupportsArrayInterface) -> tuple[int, int]: + """ + Override to perform the decoding process. + + :param buffer: A bytes object with the data to be decoded. + :returns: A tuple of ``(bytes consumed, errcode)``. + If finished with decoding return -1 for the bytes consumed. + Err codes are from :data:`.ImageFile.ERRORS`. + """ + msg = "unavailable in base decoder" + raise NotImplementedError(msg) + + def set_as_raw( + self, data: bytes, rawmode: str | None = None, extra: tuple[Any, ...] = () + ) -> None: + """ + Convenience method to set the internal image from a stream of raw data + + :param data: Bytes to be set + :param rawmode: The rawmode to be used for the decoder. + If not specified, it will default to the mode of the image + :param extra: Extra arguments for the decoder. + :returns: None + """ + + if not rawmode: + rawmode = self.mode + d = Image._getdecoder(self.mode, "raw", rawmode, extra) + assert self.im is not None + d.setimage(self.im, self.state.extents()) + s = d.decode(data) + + if s[0] >= 0: + msg = "not enough image data" + raise ValueError(msg) + if s[1] != 0: + msg = "cannot decode image data" + raise ValueError(msg) + + +class PyEncoder(PyCodec): + """ + Python implementation of a format encoder. Override this class and + add the decoding logic in the :meth:`encode` method. + + See :ref:`Writing Your Own File Codec in Python` + """ + + _pushes_fd = False + + @property + def pushes_fd(self) -> bool: + return self._pushes_fd + + def encode(self, bufsize: int) -> tuple[int, int, bytes]: + """ + Override to perform the encoding process. + + :param bufsize: Buffer size. + :returns: A tuple of ``(bytes encoded, errcode, bytes)``. + If finished with encoding return 1 for the error code. + Err codes are from :data:`.ImageFile.ERRORS`. + """ + msg = "unavailable in base encoder" + raise NotImplementedError(msg) + + def encode_to_pyfd(self) -> tuple[int, int]: + """ + If ``pushes_fd`` is ``True``, then this method will be used, + and ``encode()`` will only be called once. + + :returns: A tuple of ``(bytes consumed, errcode)``. + Err codes are from :data:`.ImageFile.ERRORS`. + """ + if not self.pushes_fd: + return 0, -8 # bad configuration + bytes_consumed, errcode, data = self.encode(0) + if data: + assert self.fd is not None + self.fd.write(data) + return bytes_consumed, errcode + + def encode_to_file(self, fh: int, bufsize: int) -> int: + """ + :param fh: File handle. + :param bufsize: Buffer size. + + :returns: If finished successfully, return 0. + Otherwise, return an error code. Err codes are from + :data:`.ImageFile.ERRORS`. + """ + errcode = 0 + while errcode == 0: + status, errcode, buf = self.encode(bufsize) + if status > 0: + os.write(fh, buf[status:]) + return errcode diff --git a/venv/lib/python3.11/site-packages/PIL/ImageFont.py b/venv/lib/python3.11/site-packages/PIL/ImageFont.py new file mode 100644 index 0000000..92eb763 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ImageFont.py @@ -0,0 +1,1312 @@ +# +# The Python Imaging Library. +# $Id$ +# +# PIL raster font management +# +# History: +# 1996-08-07 fl created (experimental) +# 1997-08-25 fl minor adjustments to handle fonts from pilfont 0.3 +# 1999-02-06 fl rewrote most font management stuff in C +# 1999-03-17 fl take pth files into account in load_path (from Richard Jones) +# 2001-02-17 fl added freetype support +# 2001-05-09 fl added TransposedFont wrapper class +# 2002-03-04 fl make sure we have a "L" or "1" font +# 2002-12-04 fl skip non-directory entries in the system path +# 2003-04-29 fl add embedded default font +# 2003-09-27 fl added support for truetype charmap encodings +# +# Todo: +# Adapt to PILFONT2 format (16-bit fonts, compressed, single file) +# +# Copyright (c) 1997-2003 by Secret Labs AB +# Copyright (c) 1996-2003 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from __future__ import annotations + +import base64 +import os +import sys +import warnings +from enum import IntEnum +from io import BytesIO +from types import ModuleType +from typing import IO, Any, BinaryIO, TypedDict, cast + +from . import Image +from ._typing import StrOrBytesPath +from ._util import DeferredError, is_path + +TYPE_CHECKING = False +if TYPE_CHECKING: + from . import ImageFile + from ._imaging import ImagingFont + from ._imagingft import Font + + +class Axis(TypedDict): + minimum: int | None + default: int | None + maximum: int | None + name: bytes | None + + +class Layout(IntEnum): + BASIC = 0 + RAQM = 1 + + +MAX_STRING_LENGTH = 1_000_000 + + +core: ModuleType | DeferredError +try: + from . import _imagingft as core +except ImportError as ex: + core = DeferredError.new(ex) + + +def _string_length_check(text: str | bytes | bytearray) -> None: + if MAX_STRING_LENGTH is not None and len(text) > MAX_STRING_LENGTH: + msg = "too many characters in string" + raise ValueError(msg) + + +# FIXME: add support for pilfont2 format (see FontFile.py) + +# -------------------------------------------------------------------- +# Font metrics format: +# "PILfont" LF +# fontdescriptor LF +# (optional) key=value... LF +# "DATA" LF +# binary data: 256*10*2 bytes (dx, dy, dstbox, srcbox) +# +# To place a character, cut out srcbox and paste at dstbox, +# relative to the character position. Then move the character +# position according to dx, dy. +# -------------------------------------------------------------------- + + +class ImageFont: + """PIL font wrapper""" + + font: ImagingFont + + def _load_pilfont(self, filename: str) -> None: + with open(filename, "rb") as fp: + image: ImageFile.ImageFile | None = None + root = os.path.splitext(filename)[0] + + for ext in (".png", ".gif", ".pbm"): + if image: + image.close() + try: + fullname = root + ext + image = Image.open(fullname) + except Exception: + pass + else: + if image and image.mode in ("1", "L"): + break + else: + if image: + image.close() + + msg = f"cannot find glyph data file {root}.{{gif|pbm|png}}" + raise OSError(msg) + + self.file = fullname + + self._load_pilfont_data(fp, image) + image.close() + + def _load_pilfont_data(self, file: IO[bytes], image: Image.Image) -> None: + # check image + if image.mode not in ("1", "L"): + msg = "invalid font image mode" + raise TypeError(msg) + + # read PILfont header + if file.read(8) != b"PILfont\n": + msg = "Not a PILfont file" + raise SyntaxError(msg) + file.readline() + self.info = [] # FIXME: should be a dictionary + while True: + s = file.readline() + if not s or s == b"DATA\n": + break + self.info.append(s) + + # read PILfont metrics + data = file.read(256 * 20) + + image.load() + + self.font = Image.core.font(image.im, data) + + def getmask( + self, text: str | bytes, mode: str = "", *args: Any, **kwargs: Any + ) -> Image.core.ImagingCore: + """ + Create a bitmap for the text. + + If the font uses antialiasing, the bitmap should have mode ``L`` and use a + maximum value of 255. Otherwise, it should have mode ``1``. + + :param text: Text to render. + :param mode: Used by some graphics drivers to indicate what mode the + driver prefers; if empty, the renderer may return either + mode. Note that the mode is always a string, to simplify + C-level implementations. + + .. versionadded:: 1.1.5 + + :return: An internal PIL storage memory instance as defined by the + :py:mod:`PIL.Image.core` interface module. + """ + _string_length_check(text) + Image._decompression_bomb_check(self.font.getsize(text)) + return self.font.getmask(text, mode) + + def getbbox( + self, text: str | bytes | bytearray, *args: Any, **kwargs: Any + ) -> tuple[int, int, int, int]: + """ + Returns bounding box (in pixels) of given text. + + .. versionadded:: 9.2.0 + + :param text: Text to render. + + :return: ``(left, top, right, bottom)`` bounding box + """ + _string_length_check(text) + width, height = self.font.getsize(text) + return 0, 0, width, height + + def getlength( + self, text: str | bytes | bytearray, *args: Any, **kwargs: Any + ) -> int: + """ + Returns length (in pixels) of given text. + This is the amount by which following text should be offset. + + .. versionadded:: 9.2.0 + """ + _string_length_check(text) + width, height = self.font.getsize(text) + return width + + +## +# Wrapper for FreeType fonts. Application code should use the +# truetype factory function to create font objects. + + +class FreeTypeFont: + """FreeType font wrapper (requires _imagingft service)""" + + font: Font + font_bytes: bytes + + def __init__( + self, + font: StrOrBytesPath | BinaryIO, + size: float = 10, + index: int = 0, + encoding: str = "", + layout_engine: Layout | None = None, + ) -> None: + # FIXME: use service provider instead + + if isinstance(core, DeferredError): + raise core.ex + + if size <= 0: + msg = f"font size must be greater than 0, not {size}" + raise ValueError(msg) + + self.path = font + self.size = size + self.index = index + self.encoding = encoding + + if layout_engine not in (Layout.BASIC, Layout.RAQM): + layout_engine = Layout.BASIC + if core.HAVE_RAQM: + layout_engine = Layout.RAQM + elif layout_engine == Layout.RAQM and not core.HAVE_RAQM: + warnings.warn( + "Raqm layout was requested, but Raqm is not available. " + "Falling back to basic layout." + ) + layout_engine = Layout.BASIC + + self.layout_engine = layout_engine + + def load_from_bytes(f: IO[bytes]) -> None: + self.font_bytes = f.read() + self.font = core.getfont( + "", size, index, encoding, self.font_bytes, layout_engine + ) + + if is_path(font): + font = os.fspath(font) + if sys.platform == "win32": + font_bytes_path = font if isinstance(font, bytes) else font.encode() + try: + font_bytes_path.decode("ascii") + except UnicodeDecodeError: + # FreeType cannot load fonts with non-ASCII characters on Windows + # So load it into memory first + with open(font, "rb") as f: + load_from_bytes(f) + return + self.font = core.getfont( + font, size, index, encoding, layout_engine=layout_engine + ) + else: + load_from_bytes(cast(IO[bytes], font)) + + def __getstate__(self) -> list[Any]: + return [self.path, self.size, self.index, self.encoding, self.layout_engine] + + def __setstate__(self, state: list[Any]) -> None: + path, size, index, encoding, layout_engine = state + FreeTypeFont.__init__(self, path, size, index, encoding, layout_engine) + + def getname(self) -> tuple[str | None, str | None]: + """ + :return: A tuple of the font family (e.g. Helvetica) and the font style + (e.g. Bold) + """ + return self.font.family, self.font.style + + def getmetrics(self) -> tuple[int, int]: + """ + :return: A tuple of the font ascent (the distance from the baseline to + the highest outline point) and descent (the distance from the + baseline to the lowest outline point, a negative value) + """ + return self.font.ascent, self.font.descent + + def getlength( + self, + text: str | bytes, + mode: str = "", + direction: str | None = None, + features: list[str] | None = None, + language: str | None = None, + ) -> float: + """ + Returns length (in pixels with 1/64 precision) of given text when rendered + in font with provided direction, features, and language. + + This is the amount by which following text should be offset. + Text bounding box may extend past the length in some fonts, + e.g. when using italics or accents. + + The result is returned as a float; it is a whole number if using basic layout. + + Note that the sum of two lengths may not equal the length of a concatenated + string due to kerning. If you need to adjust for kerning, include the following + character and subtract its length. + + For example, instead of :: + + hello = font.getlength("Hello") + world = font.getlength("World") + hello_world = hello + world # not adjusted for kerning + assert hello_world == font.getlength("HelloWorld") # may fail + + use :: + + hello = font.getlength("HelloW") - font.getlength("W") # adjusted for kerning + world = font.getlength("World") + hello_world = hello + world # adjusted for kerning + assert hello_world == font.getlength("HelloWorld") # True + + or disable kerning with (requires libraqm) :: + + hello = draw.textlength("Hello", font, features=["-kern"]) + world = draw.textlength("World", font, features=["-kern"]) + hello_world = hello + world # kerning is disabled, no need to adjust + assert hello_world == draw.textlength("HelloWorld", font, features=["-kern"]) + + .. versionadded:: 8.0.0 + + :param text: Text to measure. + :param mode: Used by some graphics drivers to indicate what mode the + driver prefers; if empty, the renderer may return either + mode. Note that the mode is always a string, to simplify + C-level implementations. + + :param direction: Direction of the text. It can be 'rtl' (right to + left), 'ltr' (left to right) or 'ttb' (top to bottom). + Requires libraqm. + + :param features: A list of OpenType font features to be used during text + layout. This is usually used to turn on optional + font features that are not enabled by default, + for example 'dlig' or 'ss01', but can be also + used to turn off default font features for + example '-liga' to disable ligatures or '-kern' + to disable kerning. To get all supported + features, see + https://learn.microsoft.com/en-us/typography/opentype/spec/featurelist + Requires libraqm. + + :param language: Language of the text. Different languages may use + different glyph shapes or ligatures. This parameter tells + the font which language the text is in, and to apply the + correct substitutions as appropriate, if available. + It should be a `BCP 47 language code + `_ + Requires libraqm. + + :return: Either width for horizontal text, or height for vertical text. + """ + _string_length_check(text) + return self.font.getlength(text, mode, direction, features, language) / 64 + + def getbbox( + self, + text: str | bytes, + mode: str = "", + direction: str | None = None, + features: list[str] | None = None, + language: str | None = None, + stroke_width: float = 0, + anchor: str | None = None, + ) -> tuple[float, float, float, float]: + """ + Returns bounding box (in pixels) of given text relative to given anchor + when rendered in font with provided direction, features, and language. + + Use :py:meth:`getlength()` to get the offset of following text with + 1/64 pixel precision. The bounding box includes extra margins for + some fonts, e.g. italics or accents. + + .. versionadded:: 8.0.0 + + :param text: Text to render. + :param mode: Used by some graphics drivers to indicate what mode the + driver prefers; if empty, the renderer may return either + mode. Note that the mode is always a string, to simplify + C-level implementations. + + :param direction: Direction of the text. It can be 'rtl' (right to + left), 'ltr' (left to right) or 'ttb' (top to bottom). + Requires libraqm. + + :param features: A list of OpenType font features to be used during text + layout. This is usually used to turn on optional + font features that are not enabled by default, + for example 'dlig' or 'ss01', but can be also + used to turn off default font features for + example '-liga' to disable ligatures or '-kern' + to disable kerning. To get all supported + features, see + https://learn.microsoft.com/en-us/typography/opentype/spec/featurelist + Requires libraqm. + + :param language: Language of the text. Different languages may use + different glyph shapes or ligatures. This parameter tells + the font which language the text is in, and to apply the + correct substitutions as appropriate, if available. + It should be a `BCP 47 language code + `_ + Requires libraqm. + + :param stroke_width: The width of the text stroke. + + :param anchor: The text anchor alignment. Determines the relative location of + the anchor to the text. The default alignment is top left, + specifically ``la`` for horizontal text and ``lt`` for + vertical text. See :ref:`text-anchors` for details. + + :return: ``(left, top, right, bottom)`` bounding box + """ + _string_length_check(text) + size, offset = self.font.getsize( + text, mode, direction, features, language, anchor + ) + left, top = offset[0] - stroke_width, offset[1] - stroke_width + width, height = size[0] + 2 * stroke_width, size[1] + 2 * stroke_width + return left, top, left + width, top + height + + def getmask( + self, + text: str | bytes, + mode: str = "", + direction: str | None = None, + features: list[str] | None = None, + language: str | None = None, + stroke_width: float = 0, + anchor: str | None = None, + ink: int = 0, + start: tuple[float, float] | None = None, + ) -> Image.core.ImagingCore: + """ + Create a bitmap for the text. + + If the font uses antialiasing, the bitmap should have mode ``L`` and use a + maximum value of 255. If the font has embedded color data, the bitmap + should have mode ``RGBA``. Otherwise, it should have mode ``1``. + + :param text: Text to render. + :param mode: Used by some graphics drivers to indicate what mode the + driver prefers; if empty, the renderer may return either + mode. Note that the mode is always a string, to simplify + C-level implementations. + + .. versionadded:: 1.1.5 + + :param direction: Direction of the text. It can be 'rtl' (right to + left), 'ltr' (left to right) or 'ttb' (top to bottom). + Requires libraqm. + + .. versionadded:: 4.2.0 + + :param features: A list of OpenType font features to be used during text + layout. This is usually used to turn on optional + font features that are not enabled by default, + for example 'dlig' or 'ss01', but can be also + used to turn off default font features for + example '-liga' to disable ligatures or '-kern' + to disable kerning. To get all supported + features, see + https://learn.microsoft.com/en-us/typography/opentype/spec/featurelist + Requires libraqm. + + .. versionadded:: 4.2.0 + + :param language: Language of the text. Different languages may use + different glyph shapes or ligatures. This parameter tells + the font which language the text is in, and to apply the + correct substitutions as appropriate, if available. + It should be a `BCP 47 language code + `_ + Requires libraqm. + + .. versionadded:: 6.0.0 + + :param stroke_width: The width of the text stroke. + + .. versionadded:: 6.2.0 + + :param anchor: The text anchor alignment. Determines the relative location of + the anchor to the text. The default alignment is top left, + specifically ``la`` for horizontal text and ``lt`` for + vertical text. See :ref:`text-anchors` for details. + + .. versionadded:: 8.0.0 + + :param ink: Foreground ink for rendering in RGBA mode. + + .. versionadded:: 8.0.0 + + :param start: Tuple of horizontal and vertical offset, as text may render + differently when starting at fractional coordinates. + + .. versionadded:: 9.4.0 + + :return: An internal PIL storage memory instance as defined by the + :py:mod:`PIL.Image.core` interface module. + """ + return self.getmask2( + text, + mode, + direction=direction, + features=features, + language=language, + stroke_width=stroke_width, + anchor=anchor, + ink=ink, + start=start, + )[0] + + def getmask2( + self, + text: str | bytes, + mode: str = "", + direction: str | None = None, + features: list[str] | None = None, + language: str | None = None, + stroke_width: float = 0, + anchor: str | None = None, + ink: int = 0, + start: tuple[float, float] | None = None, + *args: Any, + **kwargs: Any, + ) -> tuple[Image.core.ImagingCore, tuple[int, int]]: + """ + Create a bitmap for the text. + + If the font uses antialiasing, the bitmap should have mode ``L`` and use a + maximum value of 255. If the font has embedded color data, the bitmap + should have mode ``RGBA``. Otherwise, it should have mode ``1``. + + :param text: Text to render. + :param mode: Used by some graphics drivers to indicate what mode the + driver prefers; if empty, the renderer may return either + mode. Note that the mode is always a string, to simplify + C-level implementations. + + .. versionadded:: 1.1.5 + + :param direction: Direction of the text. It can be 'rtl' (right to + left), 'ltr' (left to right) or 'ttb' (top to bottom). + Requires libraqm. + + .. versionadded:: 4.2.0 + + :param features: A list of OpenType font features to be used during text + layout. This is usually used to turn on optional + font features that are not enabled by default, + for example 'dlig' or 'ss01', but can be also + used to turn off default font features for + example '-liga' to disable ligatures or '-kern' + to disable kerning. To get all supported + features, see + https://learn.microsoft.com/en-us/typography/opentype/spec/featurelist + Requires libraqm. + + .. versionadded:: 4.2.0 + + :param language: Language of the text. Different languages may use + different glyph shapes or ligatures. This parameter tells + the font which language the text is in, and to apply the + correct substitutions as appropriate, if available. + It should be a `BCP 47 language code + `_ + Requires libraqm. + + .. versionadded:: 6.0.0 + + :param stroke_width: The width of the text stroke. + + .. versionadded:: 6.2.0 + + :param anchor: The text anchor alignment. Determines the relative location of + the anchor to the text. The default alignment is top left, + specifically ``la`` for horizontal text and ``lt`` for + vertical text. See :ref:`text-anchors` for details. + + .. versionadded:: 8.0.0 + + :param ink: Foreground ink for rendering in RGBA mode. + + .. versionadded:: 8.0.0 + + :param start: Tuple of horizontal and vertical offset, as text may render + differently when starting at fractional coordinates. + + .. versionadded:: 9.4.0 + + :return: A tuple of an internal PIL storage memory instance as defined by the + :py:mod:`PIL.Image.core` interface module, and the text offset, the + gap between the starting coordinate and the first marking + """ + _string_length_check(text) + if start is None: + start = (0, 0) + + def fill(width: int, height: int) -> Image.core.ImagingCore: + size = (width, height) + Image._decompression_bomb_check(size) + return Image.core.fill("RGBA" if mode == "RGBA" else "L", size) + + return self.font.render( + text, + fill, + mode, + direction, + features, + language, + stroke_width, + kwargs.get("stroke_filled", False), + anchor, + ink, + start, + ) + + def font_variant( + self, + font: StrOrBytesPath | BinaryIO | None = None, + size: float | None = None, + index: int | None = None, + encoding: str | None = None, + layout_engine: Layout | None = None, + ) -> FreeTypeFont: + """ + Create a copy of this FreeTypeFont object, + using any specified arguments to override the settings. + + Parameters are identical to the parameters used to initialize this + object. + + :return: A FreeTypeFont object. + """ + if font is None: + try: + font = BytesIO(self.font_bytes) + except AttributeError: + font = self.path + return FreeTypeFont( + font=font, + size=self.size if size is None else size, + index=self.index if index is None else index, + encoding=self.encoding if encoding is None else encoding, + layout_engine=layout_engine or self.layout_engine, + ) + + def get_variation_names(self) -> list[bytes]: + """ + :returns: A list of the named styles in a variation font. + :exception OSError: If the font is not a variation font. + """ + names = self.font.getvarnames() + return [name.replace(b"\x00", b"") for name in names] + + def set_variation_by_name(self, name: str | bytes) -> None: + """ + :param name: The name of the style. + :exception OSError: If the font is not a variation font. + """ + names = self.get_variation_names() + if not isinstance(name, bytes): + name = name.encode() + index = names.index(name) + 1 + + if index == getattr(self, "_last_variation_index", None): + # When the same name is set twice in a row, + # there is an 'unknown freetype error' + # https://savannah.nongnu.org/bugs/?56186 + return + self._last_variation_index = index + + self.font.setvarname(index) + + def get_variation_axes(self) -> list[Axis]: + """ + :returns: A list of the axes in a variation font. + :exception OSError: If the font is not a variation font. + """ + axes = self.font.getvaraxes() + for axis in axes: + if axis["name"]: + axis["name"] = axis["name"].replace(b"\x00", b"") + return axes + + def set_variation_by_axes(self, axes: list[float]) -> None: + """ + :param axes: A list of values for each axis. + :exception OSError: If the font is not a variation font. + """ + self.font.setvaraxes(axes) + + +class TransposedFont: + """Wrapper for writing rotated or mirrored text""" + + def __init__( + self, font: ImageFont | FreeTypeFont, orientation: Image.Transpose | None = None + ): + """ + Wrapper that creates a transposed font from any existing font + object. + + :param font: A font object. + :param orientation: An optional orientation. If given, this should + be one of Image.Transpose.FLIP_LEFT_RIGHT, Image.Transpose.FLIP_TOP_BOTTOM, + Image.Transpose.ROTATE_90, Image.Transpose.ROTATE_180, or + Image.Transpose.ROTATE_270. + """ + self.font = font + self.orientation = orientation # any 'transpose' argument, or None + + def getmask( + self, text: str | bytes, mode: str = "", *args: Any, **kwargs: Any + ) -> Image.core.ImagingCore: + im = self.font.getmask(text, mode, *args, **kwargs) + if self.orientation is not None: + return im.transpose(self.orientation) + return im + + def getbbox( + self, text: str | bytes, *args: Any, **kwargs: Any + ) -> tuple[int, int, float, float]: + # TransposedFont doesn't support getmask2, move top-left point to (0, 0) + # this has no effect on ImageFont and simulates anchor="lt" for FreeTypeFont + left, top, right, bottom = self.font.getbbox(text, *args, **kwargs) + width = right - left + height = bottom - top + if self.orientation in (Image.Transpose.ROTATE_90, Image.Transpose.ROTATE_270): + return 0, 0, height, width + return 0, 0, width, height + + def getlength(self, text: str | bytes, *args: Any, **kwargs: Any) -> float: + if self.orientation in (Image.Transpose.ROTATE_90, Image.Transpose.ROTATE_270): + msg = "text length is undefined for text rotated by 90 or 270 degrees" + raise ValueError(msg) + return self.font.getlength(text, *args, **kwargs) + + +def load(filename: str) -> ImageFont: + """ + Load a font file. This function loads a font object from the given + bitmap font file, and returns the corresponding font object. For loading TrueType + or OpenType fonts instead, see :py:func:`~PIL.ImageFont.truetype`. + + :param filename: Name of font file. + :return: A font object. + :exception OSError: If the file could not be read. + """ + f = ImageFont() + f._load_pilfont(filename) + return f + + +def truetype( + font: StrOrBytesPath | BinaryIO, + size: float = 10, + index: int = 0, + encoding: str = "", + layout_engine: Layout | None = None, +) -> FreeTypeFont: + """ + Load a TrueType or OpenType font from a file or file-like object, + and create a font object. This function loads a font object from the given + file or file-like object, and creates a font object for a font of the given + size. For loading bitmap fonts instead, see :py:func:`~PIL.ImageFont.load` + and :py:func:`~PIL.ImageFont.load_path`. + + Pillow uses FreeType to open font files. On Windows, be aware that FreeType + will keep the file open as long as the FreeTypeFont object exists. Windows + limits the number of files that can be open in C at once to 512, so if many + fonts are opened simultaneously and that limit is approached, an + ``OSError`` may be thrown, reporting that FreeType "cannot open resource". + A workaround would be to copy the file(s) into memory, and open that instead. + + This function requires the _imagingft service. + + :param font: A filename or file-like object containing a TrueType font. + If the file is not found in this filename, the loader may also + search in other directories, such as: + + * The :file:`fonts/` directory on Windows, + * :file:`/Library/Fonts/`, :file:`/System/Library/Fonts/` + and :file:`~/Library/Fonts/` on macOS. + * :file:`~/.local/share/fonts`, :file:`/usr/local/share/fonts`, + and :file:`/usr/share/fonts` on Linux; or those specified by + the ``XDG_DATA_HOME`` and ``XDG_DATA_DIRS`` environment variables + for user-installed and system-wide fonts, respectively. + + :param size: The requested size, in pixels. + :param index: Which font face to load (default is first available face). + :param encoding: Which font encoding to use (default is Unicode). Possible + encodings include (see the FreeType documentation for more + information): + + * "unic" (Unicode) + * "symb" (Microsoft Symbol) + * "ADOB" (Adobe Standard) + * "ADBE" (Adobe Expert) + * "ADBC" (Adobe Custom) + * "armn" (Apple Roman) + * "sjis" (Shift JIS) + * "gb " (PRC) + * "big5" + * "wans" (Extended Wansung) + * "joha" (Johab) + * "lat1" (Latin-1) + + This specifies the character set to use. It does not alter the + encoding of any text provided in subsequent operations. + :param layout_engine: Which layout engine to use, if available: + :attr:`.ImageFont.Layout.BASIC` or :attr:`.ImageFont.Layout.RAQM`. + If it is available, Raqm layout will be used by default. + Otherwise, basic layout will be used. + + Raqm layout is recommended for all non-English text. If Raqm layout + is not required, basic layout will have better performance. + + You can check support for Raqm layout using + :py:func:`PIL.features.check_feature` with ``feature="raqm"``. + + .. versionadded:: 4.2.0 + :return: A font object. + :exception OSError: If the file could not be read. + :exception ValueError: If the font size is not greater than zero. + """ + + def freetype(font: StrOrBytesPath | BinaryIO) -> FreeTypeFont: + return FreeTypeFont(font, size, index, encoding, layout_engine) + + try: + return freetype(font) + except OSError: + if not is_path(font): + raise + ttf_filename = os.path.basename(font) + + dirs = [] + if sys.platform == "win32": + # check the windows font repository + # NOTE: must use uppercase WINDIR, to work around bugs in + # 1.5.2's os.environ.get() + windir = os.environ.get("WINDIR") + if windir: + dirs.append(os.path.join(windir, "fonts")) + elif sys.platform in ("linux", "linux2"): + data_home = os.environ.get("XDG_DATA_HOME") + if not data_home: + # The freedesktop spec defines the following default directory for + # when XDG_DATA_HOME is unset or empty. This user-level directory + # takes precedence over system-level directories. + data_home = os.path.expanduser("~/.local/share") + xdg_dirs = [data_home] + + data_dirs = os.environ.get("XDG_DATA_DIRS") + if not data_dirs: + # Similarly, defaults are defined for the system-level directories + data_dirs = "/usr/local/share:/usr/share" + xdg_dirs += data_dirs.split(":") + + dirs += [os.path.join(xdg_dir, "fonts") for xdg_dir in xdg_dirs] + elif sys.platform == "darwin": + dirs += [ + "/Library/Fonts", + "/System/Library/Fonts", + os.path.expanduser("~/Library/Fonts"), + ] + + ext = os.path.splitext(ttf_filename)[1] + first_font_with_a_different_extension = None + for directory in dirs: + for walkroot, walkdir, walkfilenames in os.walk(directory): + for walkfilename in walkfilenames: + if ext and walkfilename == ttf_filename: + return freetype(os.path.join(walkroot, walkfilename)) + elif not ext and os.path.splitext(walkfilename)[0] == ttf_filename: + fontpath = os.path.join(walkroot, walkfilename) + if os.path.splitext(fontpath)[1] == ".ttf": + return freetype(fontpath) + if not ext and first_font_with_a_different_extension is None: + first_font_with_a_different_extension = fontpath + if first_font_with_a_different_extension: + return freetype(first_font_with_a_different_extension) + raise + + +def load_path(filename: str | bytes) -> ImageFont: + """ + Load font file. Same as :py:func:`~PIL.ImageFont.load`, but searches for a + bitmap font along the Python path. + + :param filename: Name of font file. + :return: A font object. + :exception OSError: If the file could not be read. + """ + if not isinstance(filename, str): + filename = filename.decode("utf-8") + for directory in sys.path: + try: + return load(os.path.join(directory, filename)) + except OSError: + pass + msg = f'cannot find font file "{filename}" in sys.path' + if os.path.exists(filename): + msg += f', did you mean ImageFont.load("{filename}") instead?' + + raise OSError(msg) + + +def load_default_imagefont() -> ImageFont: + f = ImageFont() + f._load_pilfont_data( + # courB08 + BytesIO( + base64.b64decode( + b""" +UElMZm9udAo7Ozs7OzsxMDsKREFUQQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAA//8AAQAAAAAAAAABAAEA +BgAAAAH/+gADAAAAAQAAAAMABgAGAAAAAf/6AAT//QADAAAABgADAAYAAAAA//kABQABAAYAAAAL +AAgABgAAAAD/+AAFAAEACwAAABAACQAGAAAAAP/5AAUAAAAQAAAAFQAHAAYAAP////oABQAAABUA +AAAbAAYABgAAAAH/+QAE//wAGwAAAB4AAwAGAAAAAf/5AAQAAQAeAAAAIQAIAAYAAAAB//kABAAB +ACEAAAAkAAgABgAAAAD/+QAE//0AJAAAACgABAAGAAAAAP/6AAX//wAoAAAALQAFAAYAAAAB//8A +BAACAC0AAAAwAAMABgAAAAD//AAF//0AMAAAADUAAQAGAAAAAf//AAMAAAA1AAAANwABAAYAAAAB +//kABQABADcAAAA7AAgABgAAAAD/+QAFAAAAOwAAAEAABwAGAAAAAP/5AAYAAABAAAAARgAHAAYA +AAAA//kABQAAAEYAAABLAAcABgAAAAD/+QAFAAAASwAAAFAABwAGAAAAAP/5AAYAAABQAAAAVgAH +AAYAAAAA//kABQAAAFYAAABbAAcABgAAAAD/+QAFAAAAWwAAAGAABwAGAAAAAP/5AAUAAABgAAAA +ZQAHAAYAAAAA//kABQAAAGUAAABqAAcABgAAAAD/+QAFAAAAagAAAG8ABwAGAAAAAf/8AAMAAABv +AAAAcQAEAAYAAAAA//wAAwACAHEAAAB0AAYABgAAAAD/+gAE//8AdAAAAHgABQAGAAAAAP/7AAT/ +/gB4AAAAfAADAAYAAAAB//oABf//AHwAAACAAAUABgAAAAD/+gAFAAAAgAAAAIUABgAGAAAAAP/5 +AAYAAQCFAAAAiwAIAAYAAP////oABgAAAIsAAACSAAYABgAA////+gAFAAAAkgAAAJgABgAGAAAA +AP/6AAUAAACYAAAAnQAGAAYAAP////oABQAAAJ0AAACjAAYABgAA////+gAFAAAAowAAAKkABgAG +AAD////6AAUAAACpAAAArwAGAAYAAAAA//oABQAAAK8AAAC0AAYABgAA////+gAGAAAAtAAAALsA +BgAGAAAAAP/6AAQAAAC7AAAAvwAGAAYAAP////oABQAAAL8AAADFAAYABgAA////+gAGAAAAxQAA +AMwABgAGAAD////6AAUAAADMAAAA0gAGAAYAAP////oABQAAANIAAADYAAYABgAA////+gAGAAAA +2AAAAN8ABgAGAAAAAP/6AAUAAADfAAAA5AAGAAYAAP////oABQAAAOQAAADqAAYABgAAAAD/+gAF +AAEA6gAAAO8ABwAGAAD////6AAYAAADvAAAA9gAGAAYAAAAA//oABQAAAPYAAAD7AAYABgAA//// ++gAFAAAA+wAAAQEABgAGAAD////6AAYAAAEBAAABCAAGAAYAAP////oABgAAAQgAAAEPAAYABgAA +////+gAGAAABDwAAARYABgAGAAAAAP/6AAYAAAEWAAABHAAGAAYAAP////oABgAAARwAAAEjAAYA +BgAAAAD/+gAFAAABIwAAASgABgAGAAAAAf/5AAQAAQEoAAABKwAIAAYAAAAA//kABAABASsAAAEv +AAgABgAAAAH/+QAEAAEBLwAAATIACAAGAAAAAP/5AAX//AEyAAABNwADAAYAAAAAAAEABgACATcA +AAE9AAEABgAAAAH/+QAE//wBPQAAAUAAAwAGAAAAAP/7AAYAAAFAAAABRgAFAAYAAP////kABQAA +AUYAAAFMAAcABgAAAAD/+wAFAAABTAAAAVEABQAGAAAAAP/5AAYAAAFRAAABVwAHAAYAAAAA//sA +BQAAAVcAAAFcAAUABgAAAAD/+QAFAAABXAAAAWEABwAGAAAAAP/7AAYAAgFhAAABZwAHAAYAAP// +//kABQAAAWcAAAFtAAcABgAAAAD/+QAGAAABbQAAAXMABwAGAAAAAP/5AAQAAgFzAAABdwAJAAYA +AP////kABgAAAXcAAAF+AAcABgAAAAD/+QAGAAABfgAAAYQABwAGAAD////7AAUAAAGEAAABigAF +AAYAAP////sABQAAAYoAAAGQAAUABgAAAAD/+wAFAAABkAAAAZUABQAGAAD////7AAUAAgGVAAAB +mwAHAAYAAAAA//sABgACAZsAAAGhAAcABgAAAAD/+wAGAAABoQAAAacABQAGAAAAAP/7AAYAAAGn +AAABrQAFAAYAAAAA//kABgAAAa0AAAGzAAcABgAA////+wAGAAABswAAAboABQAGAAD////7AAUA +AAG6AAABwAAFAAYAAP////sABgAAAcAAAAHHAAUABgAAAAD/+wAGAAABxwAAAc0ABQAGAAD////7 +AAYAAgHNAAAB1AAHAAYAAAAA//sABQAAAdQAAAHZAAUABgAAAAH/+QAFAAEB2QAAAd0ACAAGAAAA +Av/6AAMAAQHdAAAB3gAHAAYAAAAA//kABAABAd4AAAHiAAgABgAAAAD/+wAF//0B4gAAAecAAgAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAB +//sAAwACAecAAAHpAAcABgAAAAD/+QAFAAEB6QAAAe4ACAAGAAAAAP/5AAYAAAHuAAAB9AAHAAYA +AAAA//oABf//AfQAAAH5AAUABgAAAAD/+QAGAAAB+QAAAf8ABwAGAAAAAv/5AAMAAgH/AAACAAAJ +AAYAAAAA//kABQABAgAAAAIFAAgABgAAAAH/+gAE//sCBQAAAggAAQAGAAAAAP/5AAYAAAIIAAAC +DgAHAAYAAAAB//kABf/+Ag4AAAISAAUABgAA////+wAGAAACEgAAAhkABQAGAAAAAP/7AAX//gIZ +AAACHgADAAYAAAAA//wABf/9Ah4AAAIjAAEABgAAAAD/+QAHAAACIwAAAioABwAGAAAAAP/6AAT/ ++wIqAAACLgABAAYAAAAA//kABP/8Ai4AAAIyAAMABgAAAAD/+gAFAAACMgAAAjcABgAGAAAAAf/5 +AAT//QI3AAACOgAEAAYAAAAB//kABP/9AjoAAAI9AAQABgAAAAL/+QAE//sCPQAAAj8AAgAGAAD/ +///7AAYAAgI/AAACRgAHAAYAAAAA//kABgABAkYAAAJMAAgABgAAAAH//AAD//0CTAAAAk4AAQAG +AAAAAf//AAQAAgJOAAACUQADAAYAAAAB//kABP/9AlEAAAJUAAQABgAAAAH/+QAF//4CVAAAAlgA +BQAGAAD////7AAYAAAJYAAACXwAFAAYAAP////kABgAAAl8AAAJmAAcABgAA////+QAGAAACZgAA +Am0ABwAGAAD////5AAYAAAJtAAACdAAHAAYAAAAA//sABQACAnQAAAJ5AAcABgAA////9wAGAAAC +eQAAAoAACQAGAAD////3AAYAAAKAAAAChwAJAAYAAP////cABgAAAocAAAKOAAkABgAA////9wAG +AAACjgAAApUACQAGAAD////4AAYAAAKVAAACnAAIAAYAAP////cABgAAApwAAAKjAAkABgAA//// ++gAGAAACowAAAqoABgAGAAAAAP/6AAUAAgKqAAACrwAIAAYAAP////cABQAAAq8AAAK1AAkABgAA +////9wAFAAACtQAAArsACQAGAAD////3AAUAAAK7AAACwQAJAAYAAP////gABQAAAsEAAALHAAgA +BgAAAAD/9wAEAAACxwAAAssACQAGAAAAAP/3AAQAAALLAAACzwAJAAYAAAAA//cABAAAAs8AAALT +AAkABgAAAAD/+AAEAAAC0wAAAtcACAAGAAD////6AAUAAALXAAAC3QAGAAYAAP////cABgAAAt0A +AALkAAkABgAAAAD/9wAFAAAC5AAAAukACQAGAAAAAP/3AAUAAALpAAAC7gAJAAYAAAAA//cABQAA +Au4AAALzAAkABgAAAAD/9wAFAAAC8wAAAvgACQAGAAAAAP/4AAUAAAL4AAAC/QAIAAYAAAAA//oA +Bf//Av0AAAMCAAUABgAA////+gAGAAADAgAAAwkABgAGAAD////3AAYAAAMJAAADEAAJAAYAAP// +//cABgAAAxAAAAMXAAkABgAA////9wAGAAADFwAAAx4ACQAGAAD////4AAYAAAAAAAoABwASAAYA +AP////cABgAAAAcACgAOABMABgAA////+gAFAAAADgAKABQAEAAGAAD////6AAYAAAAUAAoAGwAQ +AAYAAAAA//gABgAAABsACgAhABIABgAAAAD/+AAGAAAAIQAKACcAEgAGAAAAAP/4AAYAAAAnAAoA +LQASAAYAAAAA//gABgAAAC0ACgAzABIABgAAAAD/+QAGAAAAMwAKADkAEQAGAAAAAP/3AAYAAAA5 +AAoAPwATAAYAAP////sABQAAAD8ACgBFAA8ABgAAAAD/+wAFAAIARQAKAEoAEQAGAAAAAP/4AAUA +AABKAAoATwASAAYAAAAA//gABQAAAE8ACgBUABIABgAAAAD/+AAFAAAAVAAKAFkAEgAGAAAAAP/5 +AAUAAABZAAoAXgARAAYAAAAA//gABgAAAF4ACgBkABIABgAAAAD/+AAGAAAAZAAKAGoAEgAGAAAA +AP/4AAYAAABqAAoAcAASAAYAAAAA//kABgAAAHAACgB2ABEABgAAAAD/+AAFAAAAdgAKAHsAEgAG +AAD////4AAYAAAB7AAoAggASAAYAAAAA//gABQAAAIIACgCHABIABgAAAAD/+AAFAAAAhwAKAIwA +EgAGAAAAAP/4AAUAAACMAAoAkQASAAYAAAAA//gABQAAAJEACgCWABIABgAAAAD/+QAFAAAAlgAK +AJsAEQAGAAAAAP/6AAX//wCbAAoAoAAPAAYAAAAA//oABQABAKAACgClABEABgAA////+AAGAAAA +pQAKAKwAEgAGAAD////4AAYAAACsAAoAswASAAYAAP////gABgAAALMACgC6ABIABgAA////+QAG +AAAAugAKAMEAEQAGAAD////4AAYAAgDBAAoAyAAUAAYAAP////kABQACAMgACgDOABMABgAA//// ++QAGAAIAzgAKANUAEw== +""" + ) + ), + Image.open( + BytesIO( + base64.b64decode( + b""" +iVBORw0KGgoAAAANSUhEUgAAAx4AAAAUAQAAAAArMtZoAAAEwElEQVR4nABlAJr/AHVE4czCI/4u +Mc4b7vuds/xzjz5/3/7u/n9vMe7vnfH/9++vPn/xyf5zhxzjt8GHw8+2d83u8x27199/nxuQ6Od9 +M43/5z2I+9n9ZtmDBwMQECDRQw/eQIQohJXxpBCNVE6QCCAAAAD//wBlAJr/AgALyj1t/wINwq0g +LeNZUworuN1cjTPIzrTX6ofHWeo3v336qPzfEwRmBnHTtf95/fglZK5N0PDgfRTslpGBvz7LFc4F +IUXBWQGjQ5MGCx34EDFPwXiY4YbYxavpnhHFrk14CDAAAAD//wBlAJr/AgKqRooH2gAgPeggvUAA +Bu2WfgPoAwzRAABAAAAAAACQgLz/3Uv4Gv+gX7BJgDeeGP6AAAD1NMDzKHD7ANWr3loYbxsAD791 +NAADfcoIDyP44K/jv4Y63/Z+t98Ovt+ub4T48LAAAAD//wBlAJr/AuplMlADJAAAAGuAphWpqhMx +in0A/fRvAYBABPgBwBUgABBQ/sYAyv9g0bCHgOLoGAAAAAAAREAAwI7nr0ArYpow7aX8//9LaP/9 +SjdavWA8ePHeBIKB//81/83ndznOaXx379wAAAD//wBlAJr/AqDxW+D3AABAAbUh/QMnbQag/gAY +AYDAAACgtgD/gOqAAAB5IA/8AAAk+n9w0AAA8AAAmFRJuPo27ciC0cD5oeW4E7KA/wD3ECMAn2tt +y8PgwH8AfAxFzC0JzeAMtratAsC/ffwAAAD//wBlAJr/BGKAyCAA4AAAAvgeYTAwHd1kmQF5chkG +ABoMIHcL5xVpTfQbUqzlAAAErwAQBgAAEOClA5D9il08AEh/tUzdCBsXkbgACED+woQg8Si9VeqY +lODCn7lmF6NhnAEYgAAA/NMIAAAAAAD//2JgjLZgVGBg5Pv/Tvpc8hwGBjYGJADjHDrAwPzAjv/H +/Wf3PzCwtzcwHmBgYGcwbZz8wHaCAQMDOwMDQ8MCBgYOC3W7mp+f0w+wHOYxO3OG+e376hsMZjk3 +AAAAAP//YmCMY2A4wMAIN5e5gQETPD6AZisDAwMDgzSDAAPjByiHcQMDAwMDg1nOze1lByRu5/47 +c4859311AYNZzg0AAAAA//9iYGDBYihOIIMuwIjGL39/fwffA8b//xv/P2BPtzzHwCBjUQAAAAD/ +/yLFBrIBAAAA//9i1HhcwdhizX7u8NZNzyLbvT97bfrMf/QHI8evOwcSqGUJAAAA//9iYBB81iSw +pEE170Qrg5MIYydHqwdDQRMrAwcVrQAAAAD//2J4x7j9AAMDn8Q/BgYLBoaiAwwMjPdvMDBYM1Tv +oJodAAAAAP//Yqo/83+dxePWlxl3npsel9lvLfPcqlE9725C+acfVLMEAAAA//9i+s9gwCoaaGMR +evta/58PTEWzr21hufPjA8N+qlnBwAAAAAD//2JiWLci5v1+HmFXDqcnULE/MxgYGBj+f6CaJQAA +AAD//2Ji2FrkY3iYpYC5qDeGgeEMAwPDvwQBBoYvcTwOVLMEAAAA//9isDBgkP///0EOg9z35v// +Gc/eeW7BwPj5+QGZhANUswMAAAD//2JgqGBgYGBgqEMXlvhMPUsAAAAA//8iYDd1AAAAAP//AwDR +w7IkEbzhVQAAAABJRU5ErkJggg== +""" + ) + ) + ), + ) + return f + + +def load_default(size: float | None = None) -> FreeTypeFont | ImageFont: + """If FreeType support is available, load a version of Aileron Regular, + https://dotcolon.net/fonts/aileron, with a more limited character set. + + Otherwise, load a "better than nothing" font. + + .. versionadded:: 1.1.4 + + :param size: The font size of Aileron Regular. + + .. versionadded:: 10.1.0 + + :return: A font object. + """ + if isinstance(core, ModuleType) or size is not None: + return truetype( + BytesIO( + base64.b64decode( + b""" +AAEAAAAPAIAAAwBwRkZUTYwDlUAAADFoAAAAHEdERUYAqADnAAAo8AAAACRHUE9ThhmITwAAKfgAA +AduR1NVQnHxefoAACkUAAAA4k9TLzJovoHLAAABeAAAAGBjbWFw5lFQMQAAA6gAAAGqZ2FzcP//AA +MAACjoAAAACGdseWYmRXoPAAAGQAAAHfhoZWFkE18ayQAAAPwAAAA2aGhlYQboArEAAAE0AAAAJGh +tdHjjERZ8AAAB2AAAAdBsb2NhuOexrgAABVQAAADqbWF4cAC7AEYAAAFYAAAAIG5hbWUr+h5lAAAk +OAAAA6Jwb3N0D3oPTQAAJ9wAAAEKAAEAAAABGhxJDqIhXw889QALA+gAAAAA0Bqf2QAAAADhCh2h/ +2r/LgOxAyAAAAAIAAIAAAAAAAAAAQAAA8r/GgAAA7j/av9qA7EAAQAAAAAAAAAAAAAAAAAAAHQAAQ +AAAHQAQwAFAAAAAAACAAAAAQABAAAAQAAAAAAAAAADAfoBkAAFAAgCigJYAAAASwKKAlgAAAFeADI +BPgAAAAAFAAAAAAAAAAAAAAcAAAAAAAAAAAAAAABVS1dOAEAAIPsCAwL/GgDIA8oA5iAAAJMAAAAA +AhICsgAAACAAAwH0AAAAAAAAAU0AAADYAAAA8gA5AVMAVgJEAEYCRAA1AuQAKQKOAEAAsAArATsAZ +AE7AB4CMABVAkQAUADc/+EBEgAgANwAJQEv//sCRAApAkQAggJEADwCRAAtAkQAIQJEADkCRAArAk +QAMgJEACwCRAAxANwAJQDc/+ECRABnAkQAUAJEAEQB8wAjA1QANgJ/AB0CcwBkArsALwLFAGQCSwB +kAjcAZALGAC8C2gBkAQgAZAIgADcCYQBkAj8AZANiAGQCzgBkAuEALwJWAGQC3QAvAmsAZAJJADQC +ZAAiAqoAXgJuACADuAAaAnEAGQJFABMCTwAuATMAYgEv//sBJwAiAkQAUAH0ADIBLAApAhMAJAJjA +EoCEQAeAmcAHgIlAB4BIgAVAmcAHgJRAEoA7gA+AOn/8wIKAEoA9wBGA1cASgJRAEoCSgAeAmMASg +JnAB4BSgBKAcsAGAE5ABQCUABCAgIAAQMRAAEB4v/6AgEAAQHOABQBLwBAAPoAYAEvACECRABNA0Y +AJAItAHgBKgAcAkQAUAEsAHQAygAgAi0AOQD3ADYA9wAWAaEANgGhABYCbAAlAYMAeAGDADkA6/9q +AhsAFAIKABUB/QAVAAAAAwAAAAMAAAAcAAEAAAAAAKQAAwABAAAAHAAEAIgAAAAeABAAAwAOAH4Aq +QCrALEAtAC3ALsgGSAdICYgOiBEISL7Av//AAAAIACpAKsAsAC0ALcAuyAYIBwgJiA5IEQhIvsB// +//4/+5/7j/tP+y/7D/reBR4E/gR+A14CzfTwVxAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAEGAAABAAAAAAAAAAECAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAMEBQYHCAkKCwwNDg8QERIT +FBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMT +U5PUFFSU1RVVldYWVpbXF1eX2BhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAA +AAAAAAYnFmAAAAAABlAAAAAAAAAAAAAAAAAAAAAAAAAAAAY2htAAAAAAAAAABrbGlqAAAAAHAAbm9 +ycwBnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmACYAJgAmAD4AUgCCAMoBCgFO +AVwBcgGIAaYBvAHKAdYB6AH2AgwCIAJKAogCpgLWAw4DIgNkA5wDugPUA+gD/AQQBEYEogS8BPoFJ +gVSBWoFgAWwBcoF1gX6BhQGJAZMBmgGiga0BuIHGgdUB2YHkAeiB8AH3AfyCAoIHAgqCDoITghcCG +oIogjSCPoJKglYCXwJwgnqCgIKKApACl4Klgq8CtwLDAs8C1YLjAuyC9oL7gwMDCYMSAxgDKAMrAz +qDQoNTA1mDYQNoA2uDcAN2g3oDfYODA4iDkoOXA5sDnoOnA7EDvwAAAAFAAAAAAH0ArwAAwAGAAkA +DAAPAAAxESERAxMhExcRASELARETAfT6qv6syKr+jgFUqsiqArz9RAGLAP/+1P8B/v3VAP8BLP4CA +P8AAgA5//IAuQKyAAMACwAANyMDMwIyFhQGIiY0oE4MZk84JCQ4JLQB/v3AJDgkJDgAAgBWAeUBPA +LfAAMABwAAEyMnMxcjJzOmRgpagkYKWgHl+vr6AAAAAAIARgAAAf4CsgAbAB8AAAEHMxUjByM3Iwc +jNyM1MzcjNTM3MwczNzMHMxUrAQczAZgdZXEvOi9bLzovWmYdZXEvOi9bLzovWp9bHlsBn4w429vb +2ziMONvb29s4jAAAAAMANf+mAg4DDAAfACYALAAAJRQGBxUjNS4BJzMeARcRLgE0Njc1MxUeARcjJ +icVHgEBFBYXNQ4BExU+ATU0Ag5xWDpgcgRcBz41Xl9oVTpVYwpcC1ttXP6cLTQuM5szOrVRZwlOTQ +ZqVzZECAEAGlukZAlOTQdrUG8O7iNlAQgxNhDlCDj+8/YGOjReAAAAAAUAKf/yArsCvAAHAAsAFQA +dACcAABIyFhQGIiY0EyMBMwQiBhUUFjI2NTQSMhYUBiImNDYiBhUUFjI2NTR5iFBQiFCVVwHAV/5c +OiMjOiPmiFBQiFCxOiMjOiMCvFaSVlaS/ZoCsjIzMC80NC8w/uNWklZWkhozMC80NC8wAAAAAgBA/ +/ICbgLAACIALgAAARUjEQYjIiY1NDY3LgE1NDYzMhcVJiMiBhUUFhcWOwE1MxUFFBYzMjc1IyIHDg +ECbmBcYYOOVkg7R4hsQjY4Q0RNRD4SLDxW/pJUXzksPCkUUk0BgUb+zBVUZ0BkDw5RO1huCkULQzp +COAMBcHDHRz0J/AIHRQAAAAEAKwHlAIUC3wADAAATIycze0YKWgHl+gAAAAABAGT/sAEXAwwACQAA +EzMGEBcjLgE0Nt06dXU6OUBAAwzG/jDGVePs4wAAAAEAHv+wANEDDAAJAAATMx4BFAYHIzYQHjo5Q +EA5OnUDDFXj7ONVxgHQAAAAAQBVAFIB2wHbAA4AAAE3FwcXBycHJzcnNxcnMwEtmxOfcTJjYzJxnx +ObCj4BKD07KYolmZkliik7PbMAAQBQAFUB9AIlAAsAAAEjFSM1IzUzNTMVMwH0tTq1tTq1AR/Kyjj +OzgAAAAAB/+H/iACMAGQABAAANwcjNzOMWlFOXVrS3AAAAQAgAP8A8gE3AAMAABMjNTPy0tIA/zgA +AQAl//IApQByAAcAADYyFhQGIiY0STgkJDgkciQ4JCQ4AAAAAf/7/+IBNALQAAMAABcjEzM5Pvs+H +gLuAAAAAAIAKf/yAhsCwAADAAcAABIgECA2IBAgKQHy/g5gATL+zgLA/TJEAkYAAAAAAQCCAAABlg +KyAAgAAAERIxEHNTc2MwGWVr6SIygCsv1OAldxW1sWAAEAPAAAAg4CwAAZAAA3IRUhNRM+ATU0JiM +iDwEjNz4BMzIWFRQGB7kBUv4x+kI2QTt+EAFWAQp8aGVtSl5GRjEA/0RVLzlLmAoKa3FsUkNxXQAA +AAEALf/yAhYCwAAqAAABHgEVFAYjIi8BMxceATMyNjU0KwE1MzI2NTQmIyIGDwEjNz4BMzIWFRQGA +YxBSZJo2RUBVgEHV0JBUaQREUBUQzc5TQcBVgEKfGhfcEMBbxJbQl1x0AoKRkZHPn9GSD80QUVCCg +pfbGBPOlgAAAACACEAAAIkArIACgAPAAAlIxUjNSE1ATMRMyMRBg8BAiRXVv6qAVZWV60dHLCurq4 +rAdn+QgFLMibzAAABADn/8gIZArIAHQAAATIWFRQGIyIvATMXFjMyNjU0JiMiByMTIRUhBzc2ATNv +d5Fl1RQBVgIad0VSTkVhL1IwAYj+vh8rMAHHgGdtgcUKCoFXTU5bYgGRRvAuHQAAAAACACv/8gITA +sAAFwAjAAABMhYVFAYjIhE0NjMyFh8BIycmIyIDNzYTMjY1NCYjIgYVFBYBLmp7imr0l3RZdAgBXA +IYZ5wKJzU6QVNJSz5SUAHSgWltiQFGxcNlVQoKdv7sPiz+ZF1LTmJbU0lhAAAAAQAyAAACGgKyAAY +AAAEVASMBITUCGv6oXAFL/oECsij9dgJsRgAAAAMALP/xAhgCwAAWACAALAAAAR4BFRQGIyImNTQ2 +Ny4BNTQ2MhYVFAYmIgYVFBYyNjU0AzI2NTQmIyIGFRQWAZQ5S5BmbIpPOjA7ecp5P2F8Q0J8RIVJS +0pLTEtOAW0TXTxpZ2ZqPF0SE1A3VWVlVTdQ/UU0N0RENzT9/ko+Ok1NOj1LAAIAMf/yAhkCwAAXAC +MAAAEyERQGIyImLwEzFxYzMhMHBiMiJjU0NhMyNjU0JiMiBhUUFgEl9Jd0WXQIAVwCGGecCic1SWp +7imo+UlBAQVNJAsD+usXDZVUKCnYBFD4sgWltif5kW1NJYV1LTmIAAAACACX/8gClAiAABwAPAAAS +MhYUBiImNBIyFhQGIiY0STgkJDgkJDgkJDgkAiAkOCQkOP52JDgkJDgAAAAC/+H/iAClAiAABwAMA +AASMhYUBiImNBMHIzczSTgkJDgkaFpSTl4CICQ4JCQ4/mba5gAAAQBnAB4B+AH0AAYAAAENARUlNS +UB+P6qAVb+bwGRAbCmpkbJRMkAAAIAUAC7AfQBuwADAAcAAAEhNSERITUhAfT+XAGk/lwBpAGDOP8 +AOAABAEQAHgHVAfQABgAAARUFNS0BNQHV/m8BVv6qAStEyUSmpkYAAAAAAgAj//IB1ALAABgAIAAA +ATIWFRQHDgEHIz4BNz4BNTQmIyIGByM+ARIyFhQGIiY0AQRibmktIAJWBSEqNig+NTlHBFoDezQ4J +CQ4JALAZ1BjaS03JS1DMD5LLDQ/SUVgcv2yJDgkJDgAAAAAAgA2/5gDFgKYADYAQgAAAQMGFRQzMj +Y1NCYjIg4CFRQWMzI2NxcGIyImNTQ+AjMyFhUUBiMiJwcGIyImNTQ2MzIfATcHNzYmIyIGFRQzMjY +Cej8EJjJJlnBAfGQ+oHtAhjUYg5OPx0h2k06Os3xRWQsVLjY5VHtdPBwJETcJDyUoOkZEJz8B0f74 +EQ8kZl6EkTFZjVOLlyknMVm1pmCiaTq4lX6CSCknTVRmmR8wPdYnQzxuSWVGAAIAHQAAAncCsgAHA +AoAACUjByMTMxMjATMDAcj+UVz4dO5d/sjPZPT0ArL9TgE6ATQAAAADAGQAAAJMArIAEAAbACcAAA +EeARUUBgcGKwERMzIXFhUUJRUzMjc2NTQnJiMTPgE1NCcmKwEVMzIBvkdHZkwiNt7LOSGq/oeFHBt +hahIlSTM+cB8Yj5UWAW8QT0VYYgwFArIEF5Fv1eMED2NfDAL93AU+N24PBP0AAAAAAQAv//ICjwLA +ABsAAAEyFh8BIycmIyIGFRQWMzI/ATMHDgEjIiY1NDYBdX+PCwFWAiKiaHx5ZaIiAlYBCpWBk6a0A +sCAagoKpqN/gaOmCgplhcicn8sAAAIAZAAAAp8CsgAMABkAAAEeARUUBgcGKwERMzITPgE1NCYnJi +sBETMyAY59lJp8IzXN0jUVWmdjWRs5d3I4Aq4QqJWUug8EArL9mQ+PeHGHDgX92gAAAAABAGQAAAI +vArIACwAAJRUhESEVIRUhFSEVAi/+NQHB/pUBTf6zRkYCskbwRvAAAAABAGQAAAIlArIACQAAExUh +FSERIxEhFboBQ/69VgHBAmzwRv7KArJGAAAAAAEAL//yAo8CwAAfAAABMxEjNQcGIyImNTQ2MzIWH +wEjJyYjIgYVFBYzMjY1IwGP90wfPnWTprSSf48LAVYCIqJofHllVG+hAU3+s3hARsicn8uAagoKpq +N/gaN1XAAAAAEAZAAAAowCsgALAAABESMRIREjETMRIRECjFb+hFZWAXwCsv1OAS7+0gKy/sQBPAA +AAAABAGQAAAC6ArIAAwAAMyMRM7pWVgKyAAABADf/8gHoArIAEwAAAREUBw4BIyImLwEzFxYzMjc2 +NREB6AIFcGpgbQIBVgIHfXQKAQKy/lYxIltob2EpKYyEFD0BpwAAAAABAGQAAAJ0ArIACwAACQEjA +wcVIxEzEQEzATsBJ3ntQlZWAVVlAWH+nwEnR+ACsv6RAW8AAQBkAAACLwKyAAUAACUVIREzEQIv/j +VWRkYCsv2UAAABAGQAAAMUArIAFAAAAREjETQ3BgcDIwMmJxYVESMRMxsBAxRWAiMxemx8NxsCVo7 +MywKy/U4BY7ZLco7+nAFmoFxLtP6dArL9lwJpAAAAAAEAZAAAAoACsgANAAAhIwEWFREjETMBJjUR +MwKAhP67A1aEAUUDVAJeeov+pwKy/aJ5jAFZAAAAAgAv//ICuwLAAAkAEwAAEiAWFRQGICY1NBIyN +jU0JiIGFRTbATSsrP7MrNrYenrYegLAxaKhxsahov47nIeIm5uIhwACAGQAAAJHArIADgAYAAABHg +EVFAYHBisBESMRMzITNjQnJisBETMyAZRUX2VOHzuAVtY7GlxcGDWIiDUCrgtnVlVpCgT+5gKy/rU +V1BUF/vgAAAACAC//zAK9AsAAEgAcAAAlFhcHJiMiBwYjIiY1NDYgFhUUJRQWMjY1NCYiBgI9PUMx +UDcfKh8omqysATSs/dR62Hp62HpICTg7NgkHxqGixcWitbWHnJyHiJubAAIAZAAAAlgCsgAXACMAA +CUWFyMmJyYnJisBESMRMzIXHgEVFAYHFiUzMjc+ATU0JyYrAQIqDCJfGQwNWhAhglbiOx9QXEY1Tv +6bhDATMj1lGSyMtYgtOXR0BwH+1wKyBApbU0BSESRAAgVAOGoQBAABADT/8gIoAsAAJQAAATIWFyM +uASMiBhUUFhceARUUBiMiJiczHgEzMjY1NCYnLgE1NDYBOmd2ClwGS0E6SUNRdW+HZnKKC1wPWkQ9 +Uk1cZGuEAsBwXUJHNjQ3OhIbZVZZbm5kREo+NT5DFRdYUFdrAAAAAAEAIgAAAmQCsgAHAAABIxEjE +SM1IQJk9lb2AkICbP2UAmxGAAEAXv/yAmQCsgAXAAABERQHDgEiJicmNREzERQXHgEyNjc2NRECZA +IIgfCBCAJWAgZYmlgGAgKy/k0qFFxzc1wUKgGz/lUrEkRQUEQSKwGrAAAAAAEAIAAAAnoCsgAGAAA +hIwMzGwEzAYJ07l3N1FwCsv2PAnEAAAEAGgAAA7ECsgAMAAABAyMLASMDMxsBMxsBA7HAcZyicrZi +kaB0nJkCsv1OAlP9rQKy/ZsCW/2kAmYAAAEAGQAAAm8CsgALAAAhCwEjEwMzGwEzAxMCCsrEY/bkY +re+Y/D6AST+3AFcAVb+5gEa/q3+oQAAAQATAAACUQKyAAgAAAERIxEDMxsBMwFdVvRjwLphARD+8A +EQAaL+sQFPAAABAC4AAAI5ArIACQAAJRUhNQEhNSEVAQI5/fUBof57Aen+YUZGQgIqRkX92QAAAAA +BAGL/sAEFAwwABwAAARUjETMVIxEBBWlpowMMOP0UOANcAAAB//v/4gE0AtAAAwAABSMDMwE0Pvs+ +HgLuAAAAAQAi/7AAxQMMAAcAABcjNTMRIzUzxaNpaaNQOALsOAABAFAA1wH0AmgABgAAJQsBIxMzE +wGwjY1GsESw1wFZ/qcBkf5vAAAAAQAy/6oBwv/iAAMAAAUhNSEBwv5wAZBWOAAAAAEAKQJEALYCsg +ADAAATIycztjhVUAJEbgAAAAACACT/8gHQAiAAHQAlAAAhJwcGIyImNTQ2OwE1NCcmIyIHIz4BMzI +XFh0BFBcnMjY9ASYVFAF6CR0wVUtgkJoiAgdgaQlaBm1Zrg4DCuQ9R+5MOSFQR1tbDiwUUXBUXowf +J8c9SjRORzYSgVwAAAAAAgBK//ICRQLfABEAHgAAATIWFRQGIyImLwEVIxEzETc2EzI2NTQmIyIGH +QEUFgFUcYCVbiNJEyNWVigySElcU01JXmECIJd4i5QTEDRJAt/+3jkq/hRuZV55ZWsdX14AAQAe// +IB9wIgABgAAAEyFhcjJiMiBhUUFjMyNjczDgEjIiY1NDYBF152DFocbEJXU0A1Rw1aE3pbaoKQAiB +oWH5qZm1tPDlaXYuLgZcAAAACAB7/8gIZAt8AEQAeAAABESM1BwYjIiY1NDYzMhYfAREDMjY9ATQm +IyIGFRQWAhlWKDJacYCVbiNJEyOnSV5hQUlcUwLf/SFVOSqXeIuUExA0ARb9VWVrHV9ebmVeeQACA +B7/8gH9AiAAFQAbAAABFAchHgEzMjY3Mw4BIyImNTQ2MzIWJyIGByEmAf0C/oAGUkA1SwlaD4FXbI +WObmt45UBVBwEqDQEYFhNjWD84W16Oh3+akU9aU60AAAEAFQAAARoC8gAWAAATBh0BMxUjESMRIzU +zNTQ3PgEzMhcVJqcDbW1WOTkDB0k8Hx5oAngVITRC/jQBzEIsJRs5PwVHEwAAAAIAHv8uAhkCIAAi +AC8AAAERFAcOASMiLwEzFx4BMzI2NzY9AQcGIyImNTQ2MzIWHwE1AzI2PQE0JiMiBhUUFgIZAQSEd +NwRAVcBBU5DTlUDASgyWnGAlW4jSRMjp0leYUFJXFMCEv5wSh1zeq8KCTI8VU0ZIQk5Kpd4i5QTED +RJ/iJlax1fXm5lXnkAAQBKAAACCgLkABcAAAEWFREjETQnLgEHDgEdASMRMxE3NjMyFgIIAlYCBDs +6RVRWViE5UVViAYUbQP7WASQxGzI7AQJyf+kC5P7TPSxUAAACAD4AAACsAsAABwALAAASMhYUBiIm +NBMjETNeLiAgLiBiVlYCwCAuICAu/WACEgAC//P/LgCnAsAABwAVAAASMhYUBiImNBcRFAcGIyInN +RY3NjURWS4gIC4gYgMLcRwNSgYCAsAgLiAgLo79wCUbZAJGBzMOHgJEAAAAAQBKAAACCALfAAsAAC +EnBxUjETMREzMHEwGTwTJWVvdu9/rgN6kC3/4oAQv6/ugAAQBG//wA3gLfAA8AABMRFBceATcVBiM +iJicmNRGcAQIcIxkkKi4CAQLf/bkhERoSBD4EJC8SNAJKAAAAAQBKAAADEAIgACQAAAEWFREjETQn +JiMiFREjETQnJiMiFREjETMVNzYzMhYXNzYzMhYDCwVWBAxedFYEDF50VlYiJko7ThAvJkpEVAGfI +jn+vAEcQyRZ1v76ARxDJFnW/voCEk08HzYtRB9HAAAAAAEASgAAAgoCIAAWAAABFhURIxE0JyYjIg +YdASMRMxU3NjMyFgIIAlYCCXBEVVZWITlRVWIBhRtA/tYBJDEbbHR/6QISWz0sVAAAAAACAB7/8gI +sAiAABwARAAASIBYUBiAmNBIyNjU0JiIGFRSlAQCHh/8Ah7ieWlqeWgIgn/Cfn/D+s3ZfYHV1YF8A +AgBK/zwCRQIgABEAHgAAATIWFRQGIyImLwERIxEzFTc2EzI2NTQmIyIGHQEUFgFUcYCVbiNJEyNWV +igySElcU01JXmECIJd4i5QTEDT+8wLWVTkq/hRuZV55ZWsdX14AAgAe/zwCGQIgABEAHgAAAREjEQ +cGIyImNTQ2MzIWHwE1AzI2PQE0JiMiBhUUFgIZVigyWnGAlW4jSRMjp0leYUFJXFMCEv0qARk5Kpd +4i5QTEDRJ/iJlax1fXm5lXnkAAQBKAAABPgIeAA0AAAEyFxUmBhURIxEzFTc2ARoWDkdXVlYwIwIe +B0EFVlf+0gISU0cYAAEAGP/yAa0CIAAjAAATMhYXIyYjIgYVFBYXHgEVFAYjIiYnMxYzMjY1NCYnL +gE1NDbkV2MJWhNdKy04PF1XbVhWbgxaE2ktOjlEUllkAiBaS2MrJCUoEBlPQkhOVFZoKCUmLhIWSE +BIUwAAAAEAFP/4ARQCiQAXAAATERQXHgE3FQYjIiYnJjURIzUzNTMVMxWxAQMmMx8qMjMEAUdHVmM +BzP7PGw4mFgY/BSwxDjQBNUJ7e0IAAAABAEL/8gICAhIAFwAAAREjNQcGIyImJyY1ETMRFBceATMy +Nj0BAgJWITlRT2EKBVYEBkA1RFECEv3uWj4qTToiOQE+/tIlJC43c4DpAAAAAAEAAQAAAfwCEgAGA +AABAyMDMxsBAfzJaclfop8CEv3uAhL+LQHTAAABAAEAAAMLAhIADAAAAQMjCwEjAzMbATMbAQMLqW +Z2dmapY3t0a3Z7AhL97gG+/kICEv5AAcD+QwG9AAAB//oAAAHWAhIACwAAARMjJwcjEwMzFzczARq +8ZIuKY763ZoWFYwEO/vLV1QEMAQbNzQAAAQAB/y4B+wISABEAAAEDDgEjIic1FjMyNj8BAzMbAQH7 +2iFZQB8NDRIpNhQH02GenQIS/cFVUAJGASozEwIt/i4B0gABABQAAAGxAg4ACQAAJRUhNQEhNSEVA +QGx/mMBNP7iAYL+zkREQgGIREX+ewAAAAABAED/sAEOAwwALAAAASMiBhUUFxYVFAYHHgEVFAcGFR +QWOwEVIyImNTQ3NjU0JzU2NTQnJjU0NjsBAQ4MKiMLDS4pKS4NCyMqDAtERAwLUlILDERECwLUGBk +WTlsgKzUFBTcrIFtOFhkYOC87GFVMIkUIOAhFIkxVGDsvAAAAAAEAYP84AJoDIAADAAAXIxEzmjo6 +yAPoAAEAIf+wAO8DDAAsAAATFQYVFBcWFRQGKwE1MzI2NTQnJjU0NjcuATU0NzY1NCYrATUzMhYVF +AcGFRTvUgsMREQLDCojCw0uKSkuDQsjKgwLREQMCwF6OAhFIkxVGDsvOBgZFk5bICs1BQU3KyBbTh +YZGDgvOxhVTCJFAAABAE0A3wH2AWQAEwAAATMUIyImJyYjIhUjNDMyFhcWMzIBvjhuGywtQR0xOG4 +bLC1BHTEBZIURGCNMhREYIwAAAwAk/94DIgLoAAcAEQApAAAAIBYQBiAmECQgBhUUFiA2NTQlMhYX +IyYjIgYUFjMyNjczDgEjIiY1NDYBAQFE3d3+vN0CB/7wubkBELn+xVBnD1wSWDo+QTcqOQZcEmZWX +HN2Aujg/rbg4AFKpr+Mjb6+jYxbWEldV5ZZNShLVn5na34AAgB4AFIB9AGeAAUACwAAAQcXIyc3Mw +cXIyc3AUqJiUmJifOJiUmJiQGepqampqampqYAAAIAHAHSAQ4CwAAHAA8AABIyFhQGIiY0NiIGFBY +yNjRgakREakSTNCEhNCECwEJqQkJqCiM4IyM4AAAAAAIAUAAAAfQCCwALAA8AAAEzFSMVIzUjNTM1 +MxMhNSEBP7W1OrW1OrX+XAGkAVs4tLQ4sP31OAAAAQB0AkQBAQKyAAMAABMjNzOsOD1QAkRuAAAAA +AEAIADsAKoBdgAHAAASMhYUBiImNEg6KCg6KAF2KDooKDoAAAIAOQBSAbUBngAFAAsAACUHIzcnMw +UHIzcnMwELiUmJiUkBM4lJiYlJ+KampqampqYAAAABADYB5QDhAt8ABAAAEzczByM2Xk1OXQHv8Po +AAQAWAeUAwQLfAAQAABMHIzczwV5NTl0C1fD6AAIANgHlAYsC3wAEAAkAABM3MwcjPwEzByM2Xk1O +XapeTU5dAe/w+grw+gAAAgAWAeUBawLfAAQACQAAEwcjNzMXByM3M8FeTU5dql5NTl0C1fD6CvD6A +AADACX/8gI1AHIABwAPABcAADYyFhQGIiY0NjIWFAYiJjQ2MhYUBiImNEk4JCQ4JOw4JCQ4JOw4JC +Q4JHIkOCQkOCQkOCQkOCQkOCQkOAAAAAEAeABSAUoBngAFAAABBxcjJzcBSomJSYmJAZ6mpqamAAA +AAAEAOQBSAQsBngAFAAAlByM3JzMBC4lJiYlJ+KampgAAAf9qAAABgQKyAAMAACsBATM/VwHAVwKy +AAAAAAIAFAHIAdwClAAHABQAABMVIxUjNSM1BRUjNwcjJxcjNTMXN9pKMkoByDICKzQqATJLKysCl +CmjoykBy46KiY3Lm5sAAQAVAAABvALyABgAAAERIxEjESMRIzUzNTQ3NjMyFxUmBgcGHQEBvFbCVj +k5AxHHHx5iVgcDAg798gHM/jQBzEIOJRuWBUcIJDAVIRYAAAABABX//AHkAvIAJQAAJR4BNxUGIyI +mJyY1ESYjIgcGHQEzFSMRIxEjNTM1NDc2MzIXERQBowIcIxkkKi4CAR4nXgwDbW1WLy8DEbNdOmYa +EQQ/BCQvEjQCFQZWFSEWQv40AcxCDiUblhP9uSEAAAAAAAAWAQ4AAQAAAAAAAAATACgAAQAAAAAAA +QAHAEwAAQAAAAAAAgAHAGQAAQAAAAAAAwAaAKIAAQAAAAAABAAHAM0AAQAAAAAABQA8AU8AAQAAAA +AABgAPAawAAQAAAAAACAALAdQAAQAAAAAACQALAfgAAQAAAAAACwAXAjQAAQAAAAAADAAXAnwAAwA +BBAkAAAAmAAAAAwABBAkAAQAOADwAAwABBAkAAgAOAFQAAwABBAkAAwA0AGwAAwABBAkABAAOAL0A +AwABBAkABQB4ANUAAwABBAkABgAeAYwAAwABBAkACAAWAbwAAwABBAkACQAWAeAAAwABBAkACwAuA +gQAAwABBAkADAAuAkwATgBvACAAUgBpAGcAaAB0AHMAIABSAGUAcwBlAHIAdgBlAGQALgAATm8gUm +lnaHRzIFJlc2VydmVkLgAAQQBpAGwAZQByAG8AbgAAQWlsZXJvbgAAUgBlAGcAdQBsAGEAcgAAUmV +ndWxhcgAAMQAuADEAMAAyADsAVQBLAFcATgA7AEEAaQBsAGUAcgBvAG4ALQBSAGUAZwB1AGwAYQBy +AAAxLjEwMjtVS1dOO0FpbGVyb24tUmVndWxhcgAAQQBpAGwAZQByAG8AbgAAQWlsZXJvbgAAVgBlA +HIAcwBpAG8AbgAgADEALgAxADAAMgA7AFAAUwAgADAAMAAxAC4AMQAwADIAOwBoAG8AdABjAG8Abg +B2ACAAMQAuADAALgA3ADAAOwBtAGEAawBlAG8AdABmAC4AbABpAGIAMgAuADUALgA1ADgAMwAyADk +AAFZlcnNpb24gMS4xMDI7UFMgMDAxLjEwMjtob3Rjb252IDEuMC43MDttYWtlb3RmLmxpYjIuNS41 +ODMyOQAAQQBpAGwAZQByAG8AbgAtAFIAZQBnAHUAbABhAHIAAEFpbGVyb24tUmVndWxhcgAAUwBvA +HIAYQAgAFMAYQBnAGEAbgBvAABTb3JhIFNhZ2FubwAAUwBvAHIAYQAgAFMAYQBnAGEAbgBvAABTb3 +JhIFNhZ2FubwAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGQAbwB0AGMAbwBsAG8AbgAuAG4AZQB0AAB +odHRwOi8vd3d3LmRvdGNvbG9uLm5ldAAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGQAbwB0AGMAbwBs +AG8AbgAuAG4AZQB0AABodHRwOi8vd3d3LmRvdGNvbG9uLm5ldAAAAAACAAAAAAAA/4MAMgAAAAAAA +AAAAAAAAAAAAAAAAAAAAHQAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATAB +QAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAA +xADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0A +TgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAIsAqQCDAJMAjQDDAKoAtgC3A +LQAtQCrAL4AvwC8AIwAwADBAAAAAAAB//8AAgABAAAADAAAABwAAAACAAIAAwBxAAEAcgBzAAIABA +AAAAIAAAABAAAACgBMAGYAAkRGTFQADmxhdG4AGgAEAAAAAP//AAEAAAAWAANDQVQgAB5NT0wgABZ +ST00gABYAAP//AAEAAAAA//8AAgAAAAEAAmxpZ2EADmxvY2wAFAAAAAEAAQAAAAEAAAACAAYAEAAG +AAAAAgASADQABAAAAAEATAADAAAAAgAQABYAAQAcAAAAAQABAE8AAQABAGcAAQABAE8AAwAAAAIAE +AAWAAEAHAAAAAEAAQAvAAEAAQBnAAEAAQAvAAEAGgABAAgAAgAGAAwAcwACAE8AcgACAEwAAQABAE +kAAAABAAAACgBGAGAAAkRGTFQADmxhdG4AHAAEAAAAAP//AAIAAAABABYAA0NBVCAAFk1PTCAAFlJ +PTSAAFgAA//8AAgAAAAEAAmNwc3AADmtlcm4AFAAAAAEAAAAAAAEAAQACAAYADgABAAAAAQASAAIA +AAACAB4ANgABAAoABQAFAAoAAgABACQAPQAAAAEAEgAEAAAAAQAMAAEAOP/nAAEAAQAkAAIGigAEA +AAFJAXKABoAGQAA//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAD/sv+4/+z/7v/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAD/xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9T/6AAAAAD/8QAA +ABD/vQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7gAAAAAAAAAAAAAAAAAA//MAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAP/5AAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/gAAD/4AAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//L/9AAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAA/+gAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/zAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/mAAAAAAAAAAAAAAAAAAD +/4gAA//AAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+AAAAAAAAP/OAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zv/qAAAAAP/0AAAACAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/ZAAD/egAA/1kAAAAA/5D/rgAAAAAAAAAAAA +AAAAAAAAAAAAAAAAD/9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAD/8AAA/7b/8P+wAAD/8P/E/98AAAAA/8P/+P/0//oAAAAAAAAAAAAA//gA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+AAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/w//C/9MAAP/SAAD/9wAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yAAA/+kAAAAA//QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9wAAAAD//QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAP/cAAAAAAAAAAAAAAAA/7YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAP/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6AAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAkAFAAEAAAAAQACwAAABcA +BgAAAAAAAAAIAA4AAAAAAAsAEgAAAAAAAAATABkAAwANAAAAAQAJAAAAAAAAAAAAAAAAAAAAGAAAA +AAABwAAAAAAAAAAAAAAFQAFAAAAAAAYABgAAAAUAAAACgAAAAwAAgAPABEAFgAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAEAEQBdAAYAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAcAAAAAAAAABwAAAAAACAAAAAAAAAAAAAcAAAAHAAAAEwAJ +ABUADgAPAAAACwAQAAAAAAAAAAAAAAAAAAUAGAACAAIAAgAAAAIAGAAXAAAAGAAAABYAFgACABYAA +gAWAAAAEQADAAoAFAAMAA0ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAEgAGAAEAHgAkAC +YAJwApACoALQAuAC8AMgAzADcAOAA5ADoAPAA9AEUASABOAE8AUgBTAFUAVwBZAFoAWwBcAF0AcwA +AAAAAAQAAAADa3tfFAAAAANAan9kAAAAA4QodoQ== +""" + ) + ), + 10 if size is None else size, + layout_engine=Layout.BASIC, + ) + return load_default_imagefont() diff --git a/venv/lib/python3.11/site-packages/PIL/ImageGrab.py b/venv/lib/python3.11/site-packages/PIL/ImageGrab.py new file mode 100644 index 0000000..1eb4507 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ImageGrab.py @@ -0,0 +1,196 @@ +# +# The Python Imaging Library +# $Id$ +# +# screen grabber +# +# History: +# 2001-04-26 fl created +# 2001-09-17 fl use builtin driver, if present +# 2002-11-19 fl added grabclipboard support +# +# Copyright (c) 2001-2002 by Secret Labs AB +# Copyright (c) 2001-2002 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# +from __future__ import annotations + +import io +import os +import shutil +import subprocess +import sys +import tempfile + +from . import Image + +TYPE_CHECKING = False +if TYPE_CHECKING: + from . import ImageWin + + +def grab( + bbox: tuple[int, int, int, int] | None = None, + include_layered_windows: bool = False, + all_screens: bool = False, + xdisplay: str | None = None, + window: int | ImageWin.HWND | None = None, +) -> Image.Image: + im: Image.Image + if xdisplay is None: + if sys.platform == "darwin": + fh, filepath = tempfile.mkstemp(".png") + os.close(fh) + args = ["screencapture"] + if bbox: + left, top, right, bottom = bbox + args += ["-R", f"{left},{top},{right-left},{bottom-top}"] + subprocess.call(args + ["-x", filepath]) + im = Image.open(filepath) + im.load() + os.unlink(filepath) + if bbox: + im_resized = im.resize((right - left, bottom - top)) + im.close() + return im_resized + return im + elif sys.platform == "win32": + if window is not None: + all_screens = -1 + offset, size, data = Image.core.grabscreen_win32( + include_layered_windows, + all_screens, + int(window) if window is not None else 0, + ) + im = Image.frombytes( + "RGB", + size, + data, + # RGB, 32-bit line padding, origin lower left corner + "raw", + "BGR", + (size[0] * 3 + 3) & -4, + -1, + ) + if bbox: + x0, y0 = offset + left, top, right, bottom = bbox + im = im.crop((left - x0, top - y0, right - x0, bottom - y0)) + return im + # Cast to Optional[str] needed for Windows and macOS. + display_name: str | None = xdisplay + try: + if not Image.core.HAVE_XCB: + msg = "Pillow was built without XCB support" + raise OSError(msg) + size, data = Image.core.grabscreen_x11(display_name) + except OSError: + if display_name is None and sys.platform not in ("darwin", "win32"): + if shutil.which("gnome-screenshot"): + args = ["gnome-screenshot", "-f"] + elif shutil.which("grim"): + args = ["grim"] + elif shutil.which("spectacle"): + args = ["spectacle", "-n", "-b", "-f", "-o"] + else: + raise + fh, filepath = tempfile.mkstemp(".png") + os.close(fh) + subprocess.call(args + [filepath]) + im = Image.open(filepath) + im.load() + os.unlink(filepath) + if bbox: + im_cropped = im.crop(bbox) + im.close() + return im_cropped + return im + else: + raise + else: + im = Image.frombytes("RGB", size, data, "raw", "BGRX", size[0] * 4, 1) + if bbox: + im = im.crop(bbox) + return im + + +def grabclipboard() -> Image.Image | list[str] | None: + if sys.platform == "darwin": + p = subprocess.run( + ["osascript", "-e", "get the clipboard as «class PNGf»"], + capture_output=True, + ) + if p.returncode != 0: + return None + + import binascii + + data = io.BytesIO(binascii.unhexlify(p.stdout[11:-3])) + return Image.open(data) + elif sys.platform == "win32": + fmt, data = Image.core.grabclipboard_win32() + if fmt == "file": # CF_HDROP + import struct + + o = struct.unpack_from("I", data)[0] + if data[16] == 0: + files = data[o:].decode("mbcs").split("\0") + else: + files = data[o:].decode("utf-16le").split("\0") + return files[: files.index("")] + if isinstance(data, bytes): + data = io.BytesIO(data) + if fmt == "png": + from . import PngImagePlugin + + return PngImagePlugin.PngImageFile(data) + elif fmt == "DIB": + from . import BmpImagePlugin + + return BmpImagePlugin.DibImageFile(data) + return None + else: + if os.getenv("WAYLAND_DISPLAY"): + session_type = "wayland" + elif os.getenv("DISPLAY"): + session_type = "x11" + else: # Session type check failed + session_type = None + + if shutil.which("wl-paste") and session_type in ("wayland", None): + args = ["wl-paste", "-t", "image"] + elif shutil.which("xclip") and session_type in ("x11", None): + args = ["xclip", "-selection", "clipboard", "-t", "image/png", "-o"] + else: + msg = "wl-paste or xclip is required for ImageGrab.grabclipboard() on Linux" + raise NotImplementedError(msg) + + p = subprocess.run(args, capture_output=True) + if p.returncode != 0: + err = p.stderr + for silent_error in [ + # wl-paste, when the clipboard is empty + b"Nothing is copied", + # Ubuntu/Debian wl-paste, when the clipboard is empty + b"No selection", + # Ubuntu/Debian wl-paste, when an image isn't available + b"No suitable type of content copied", + # wl-paste or Ubuntu/Debian xclip, when an image isn't available + b" not available", + # xclip, when an image isn't available + b"cannot convert ", + # xclip, when the clipboard isn't initialized + b"xclip: Error: There is no owner for the ", + ]: + if silent_error in err: + return None + msg = f"{args[0]} error" + if err: + msg += f": {err.strip().decode()}" + raise ChildProcessError(msg) + + data = io.BytesIO(p.stdout) + im = Image.open(data) + im.load() + return im diff --git a/venv/lib/python3.11/site-packages/PIL/ImageMath.py b/venv/lib/python3.11/site-packages/PIL/ImageMath.py new file mode 100644 index 0000000..dfdc50c --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ImageMath.py @@ -0,0 +1,314 @@ +# +# The Python Imaging Library +# $Id$ +# +# a simple math add-on for the Python Imaging Library +# +# History: +# 1999-02-15 fl Original PIL Plus release +# 2005-05-05 fl Simplified and cleaned up for PIL 1.1.6 +# 2005-09-12 fl Fixed int() and float() for Python 2.4.1 +# +# Copyright (c) 1999-2005 by Secret Labs AB +# Copyright (c) 2005 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# +from __future__ import annotations + +import builtins + +from . import Image, _imagingmath + +TYPE_CHECKING = False +if TYPE_CHECKING: + from collections.abc import Callable + from types import CodeType + from typing import Any + + +class _Operand: + """Wraps an image operand, providing standard operators""" + + def __init__(self, im: Image.Image): + self.im = im + + def __fixup(self, im1: _Operand | float) -> Image.Image: + # convert image to suitable mode + if isinstance(im1, _Operand): + # argument was an image. + if im1.im.mode in ("1", "L"): + return im1.im.convert("I") + elif im1.im.mode in ("I", "F"): + return im1.im + else: + msg = f"unsupported mode: {im1.im.mode}" + raise ValueError(msg) + else: + # argument was a constant + if isinstance(im1, (int, float)) and self.im.mode in ("1", "L", "I"): + return Image.new("I", self.im.size, im1) + else: + return Image.new("F", self.im.size, im1) + + def apply( + self, + op: str, + im1: _Operand | float, + im2: _Operand | float | None = None, + mode: str | None = None, + ) -> _Operand: + im_1 = self.__fixup(im1) + if im2 is None: + # unary operation + out = Image.new(mode or im_1.mode, im_1.size, None) + try: + op = getattr(_imagingmath, f"{op}_{im_1.mode}") + except AttributeError as e: + msg = f"bad operand type for '{op}'" + raise TypeError(msg) from e + _imagingmath.unop(op, out.getim(), im_1.getim()) + else: + # binary operation + im_2 = self.__fixup(im2) + if im_1.mode != im_2.mode: + # convert both arguments to floating point + if im_1.mode != "F": + im_1 = im_1.convert("F") + if im_2.mode != "F": + im_2 = im_2.convert("F") + if im_1.size != im_2.size: + # crop both arguments to a common size + size = ( + min(im_1.size[0], im_2.size[0]), + min(im_1.size[1], im_2.size[1]), + ) + if im_1.size != size: + im_1 = im_1.crop((0, 0) + size) + if im_2.size != size: + im_2 = im_2.crop((0, 0) + size) + out = Image.new(mode or im_1.mode, im_1.size, None) + try: + op = getattr(_imagingmath, f"{op}_{im_1.mode}") + except AttributeError as e: + msg = f"bad operand type for '{op}'" + raise TypeError(msg) from e + _imagingmath.binop(op, out.getim(), im_1.getim(), im_2.getim()) + return _Operand(out) + + # unary operators + def __bool__(self) -> bool: + # an image is "true" if it contains at least one non-zero pixel + return self.im.getbbox() is not None + + def __abs__(self) -> _Operand: + return self.apply("abs", self) + + def __pos__(self) -> _Operand: + return self + + def __neg__(self) -> _Operand: + return self.apply("neg", self) + + # binary operators + def __add__(self, other: _Operand | float) -> _Operand: + return self.apply("add", self, other) + + def __radd__(self, other: _Operand | float) -> _Operand: + return self.apply("add", other, self) + + def __sub__(self, other: _Operand | float) -> _Operand: + return self.apply("sub", self, other) + + def __rsub__(self, other: _Operand | float) -> _Operand: + return self.apply("sub", other, self) + + def __mul__(self, other: _Operand | float) -> _Operand: + return self.apply("mul", self, other) + + def __rmul__(self, other: _Operand | float) -> _Operand: + return self.apply("mul", other, self) + + def __truediv__(self, other: _Operand | float) -> _Operand: + return self.apply("div", self, other) + + def __rtruediv__(self, other: _Operand | float) -> _Operand: + return self.apply("div", other, self) + + def __mod__(self, other: _Operand | float) -> _Operand: + return self.apply("mod", self, other) + + def __rmod__(self, other: _Operand | float) -> _Operand: + return self.apply("mod", other, self) + + def __pow__(self, other: _Operand | float) -> _Operand: + return self.apply("pow", self, other) + + def __rpow__(self, other: _Operand | float) -> _Operand: + return self.apply("pow", other, self) + + # bitwise + def __invert__(self) -> _Operand: + return self.apply("invert", self) + + def __and__(self, other: _Operand | float) -> _Operand: + return self.apply("and", self, other) + + def __rand__(self, other: _Operand | float) -> _Operand: + return self.apply("and", other, self) + + def __or__(self, other: _Operand | float) -> _Operand: + return self.apply("or", self, other) + + def __ror__(self, other: _Operand | float) -> _Operand: + return self.apply("or", other, self) + + def __xor__(self, other: _Operand | float) -> _Operand: + return self.apply("xor", self, other) + + def __rxor__(self, other: _Operand | float) -> _Operand: + return self.apply("xor", other, self) + + def __lshift__(self, other: _Operand | float) -> _Operand: + return self.apply("lshift", self, other) + + def __rshift__(self, other: _Operand | float) -> _Operand: + return self.apply("rshift", self, other) + + # logical + def __eq__(self, other: _Operand | float) -> _Operand: # type: ignore[override] + return self.apply("eq", self, other) + + def __ne__(self, other: _Operand | float) -> _Operand: # type: ignore[override] + return self.apply("ne", self, other) + + def __lt__(self, other: _Operand | float) -> _Operand: + return self.apply("lt", self, other) + + def __le__(self, other: _Operand | float) -> _Operand: + return self.apply("le", self, other) + + def __gt__(self, other: _Operand | float) -> _Operand: + return self.apply("gt", self, other) + + def __ge__(self, other: _Operand | float) -> _Operand: + return self.apply("ge", self, other) + + +# conversions +def imagemath_int(self: _Operand) -> _Operand: + return _Operand(self.im.convert("I")) + + +def imagemath_float(self: _Operand) -> _Operand: + return _Operand(self.im.convert("F")) + + +# logical +def imagemath_equal(self: _Operand, other: _Operand | float | None) -> _Operand: + return self.apply("eq", self, other, mode="I") + + +def imagemath_notequal(self: _Operand, other: _Operand | float | None) -> _Operand: + return self.apply("ne", self, other, mode="I") + + +def imagemath_min(self: _Operand, other: _Operand | float | None) -> _Operand: + return self.apply("min", self, other) + + +def imagemath_max(self: _Operand, other: _Operand | float | None) -> _Operand: + return self.apply("max", self, other) + + +def imagemath_convert(self: _Operand, mode: str) -> _Operand: + return _Operand(self.im.convert(mode)) + + +ops = { + "int": imagemath_int, + "float": imagemath_float, + "equal": imagemath_equal, + "notequal": imagemath_notequal, + "min": imagemath_min, + "max": imagemath_max, + "convert": imagemath_convert, +} + + +def lambda_eval(expression: Callable[[dict[str, Any]], Any], **kw: Any) -> Any: + """ + Returns the result of an image function. + + :py:mod:`~PIL.ImageMath` only supports single-layer images. To process multi-band + images, use the :py:meth:`~PIL.Image.Image.split` method or + :py:func:`~PIL.Image.merge` function. + + :param expression: A function that receives a dictionary. + :param **kw: Values to add to the function's dictionary. + :return: The expression result. This is usually an image object, but can + also be an integer, a floating point value, or a pixel tuple, + depending on the expression. + """ + + args: dict[str, Any] = ops.copy() + args.update(kw) + for k, v in args.items(): + if isinstance(v, Image.Image): + args[k] = _Operand(v) + + out = expression(args) + try: + return out.im + except AttributeError: + return out + + +def unsafe_eval(expression: str, **kw: Any) -> Any: + """ + Evaluates an image expression. This uses Python's ``eval()`` function to process + the expression string, and carries the security risks of doing so. It is not + recommended to process expressions without considering this. + :py:meth:`~lambda_eval` is a more secure alternative. + + :py:mod:`~PIL.ImageMath` only supports single-layer images. To process multi-band + images, use the :py:meth:`~PIL.Image.Image.split` method or + :py:func:`~PIL.Image.merge` function. + + :param expression: A string containing a Python-style expression. + :param **kw: Values to add to the evaluation context. + :return: The evaluated expression. This is usually an image object, but can + also be an integer, a floating point value, or a pixel tuple, + depending on the expression. + """ + + # build execution namespace + args: dict[str, Any] = ops.copy() + for k in kw: + if "__" in k or hasattr(builtins, k): + msg = f"'{k}' not allowed" + raise ValueError(msg) + + args.update(kw) + for k, v in args.items(): + if isinstance(v, Image.Image): + args[k] = _Operand(v) + + compiled_code = compile(expression, "", "eval") + + def scan(code: CodeType) -> None: + for const in code.co_consts: + if type(const) is type(compiled_code): + scan(const) + + for name in code.co_names: + if name not in args and name != "abs": + msg = f"'{name}' not allowed" + raise ValueError(msg) + + scan(compiled_code) + out = builtins.eval(expression, {"__builtins": {"abs": abs}}, args) + try: + return out.im + except AttributeError: + return out diff --git a/venv/lib/python3.11/site-packages/PIL/ImageMode.py b/venv/lib/python3.11/site-packages/PIL/ImageMode.py new file mode 100644 index 0000000..b7c6c86 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ImageMode.py @@ -0,0 +1,85 @@ +# +# The Python Imaging Library. +# $Id$ +# +# standard mode descriptors +# +# History: +# 2006-03-20 fl Added +# +# Copyright (c) 2006 by Secret Labs AB. +# Copyright (c) 2006 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# +from __future__ import annotations + +import sys +from functools import lru_cache +from typing import NamedTuple + + +class ModeDescriptor(NamedTuple): + """Wrapper for mode strings.""" + + mode: str + bands: tuple[str, ...] + basemode: str + basetype: str + typestr: str + + def __str__(self) -> str: + return self.mode + + +@lru_cache +def getmode(mode: str) -> ModeDescriptor: + """Gets a mode descriptor for the given mode.""" + endian = "<" if sys.byteorder == "little" else ">" + + modes = { + # core modes + # Bits need to be extended to bytes + "1": ("L", "L", ("1",), "|b1"), + "L": ("L", "L", ("L",), "|u1"), + "I": ("L", "I", ("I",), f"{endian}i4"), + "F": ("L", "F", ("F",), f"{endian}f4"), + "P": ("P", "L", ("P",), "|u1"), + "RGB": ("RGB", "L", ("R", "G", "B"), "|u1"), + "RGBX": ("RGB", "L", ("R", "G", "B", "X"), "|u1"), + "RGBA": ("RGB", "L", ("R", "G", "B", "A"), "|u1"), + "CMYK": ("RGB", "L", ("C", "M", "Y", "K"), "|u1"), + "YCbCr": ("RGB", "L", ("Y", "Cb", "Cr"), "|u1"), + # UNDONE - unsigned |u1i1i1 + "LAB": ("RGB", "L", ("L", "A", "B"), "|u1"), + "HSV": ("RGB", "L", ("H", "S", "V"), "|u1"), + # extra experimental modes + "RGBa": ("RGB", "L", ("R", "G", "B", "a"), "|u1"), + "LA": ("L", "L", ("L", "A"), "|u1"), + "La": ("L", "L", ("L", "a"), "|u1"), + "PA": ("RGB", "L", ("P", "A"), "|u1"), + } + if mode in modes: + base_mode, base_type, bands, type_str = modes[mode] + return ModeDescriptor(mode, bands, base_mode, base_type, type_str) + + mapping_modes = { + # I;16 == I;16L, and I;32 == I;32L + "I;16": "u2", + "I;16BS": ">i2", + "I;16N": f"{endian}u2", + "I;16NS": f"{endian}i2", + "I;32": "u4", + "I;32L": "i4", + "I;32LS": " +from __future__ import annotations + +import re + +from . import Image, _imagingmorph + +LUT_SIZE = 1 << 9 + +# fmt: off +ROTATION_MATRIX = [ + 6, 3, 0, + 7, 4, 1, + 8, 5, 2, +] +MIRROR_MATRIX = [ + 2, 1, 0, + 5, 4, 3, + 8, 7, 6, +] +# fmt: on + + +class LutBuilder: + """A class for building a MorphLut from a descriptive language + + The input patterns is a list of a strings sequences like these:: + + 4:(... + .1. + 111)->1 + + (whitespaces including linebreaks are ignored). The option 4 + describes a series of symmetry operations (in this case a + 4-rotation), the pattern is described by: + + - . or X - Ignore + - 1 - Pixel is on + - 0 - Pixel is off + + The result of the operation is described after "->" string. + + The default is to return the current pixel value, which is + returned if no other match is found. + + Operations: + + - 4 - 4 way rotation + - N - Negate + - 1 - Dummy op for no other operation (an op must always be given) + - M - Mirroring + + Example:: + + lb = LutBuilder(patterns = ["4:(... .1. 111)->1"]) + lut = lb.build_lut() + + """ + + def __init__( + self, patterns: list[str] | None = None, op_name: str | None = None + ) -> None: + if patterns is not None: + self.patterns = patterns + else: + self.patterns = [] + self.lut: bytearray | None = None + if op_name is not None: + known_patterns = { + "corner": ["1:(... ... ...)->0", "4:(00. 01. ...)->1"], + "dilation4": ["4:(... .0. .1.)->1"], + "dilation8": ["4:(... .0. .1.)->1", "4:(... .0. ..1)->1"], + "erosion4": ["4:(... .1. .0.)->0"], + "erosion8": ["4:(... .1. .0.)->0", "4:(... .1. ..0)->0"], + "edge": [ + "1:(... ... ...)->0", + "4:(.0. .1. ...)->1", + "4:(01. .1. ...)->1", + ], + } + if op_name not in known_patterns: + msg = f"Unknown pattern {op_name}!" + raise Exception(msg) + + self.patterns = known_patterns[op_name] + + def add_patterns(self, patterns: list[str]) -> None: + self.patterns += patterns + + def build_default_lut(self) -> None: + symbols = [0, 1] + m = 1 << 4 # pos of current pixel + self.lut = bytearray(symbols[(i & m) > 0] for i in range(LUT_SIZE)) + + def get_lut(self) -> bytearray | None: + return self.lut + + def _string_permute(self, pattern: str, permutation: list[int]) -> str: + """string_permute takes a pattern and a permutation and returns the + string permuted according to the permutation list. + """ + assert len(permutation) == 9 + return "".join(pattern[p] for p in permutation) + + def _pattern_permute( + self, basic_pattern: str, options: str, basic_result: int + ) -> list[tuple[str, int]]: + """pattern_permute takes a basic pattern and its result and clones + the pattern according to the modifications described in the $options + parameter. It returns a list of all cloned patterns.""" + patterns = [(basic_pattern, basic_result)] + + # rotations + if "4" in options: + res = patterns[-1][1] + for i in range(4): + patterns.append( + (self._string_permute(patterns[-1][0], ROTATION_MATRIX), res) + ) + # mirror + if "M" in options: + n = len(patterns) + for pattern, res in patterns[:n]: + patterns.append((self._string_permute(pattern, MIRROR_MATRIX), res)) + + # negate + if "N" in options: + n = len(patterns) + for pattern, res in patterns[:n]: + # Swap 0 and 1 + pattern = pattern.replace("0", "Z").replace("1", "0").replace("Z", "1") + res = 1 - int(res) + patterns.append((pattern, res)) + + return patterns + + def build_lut(self) -> bytearray: + """Compile all patterns into a morphology lut. + + TBD :Build based on (file) morphlut:modify_lut + """ + self.build_default_lut() + assert self.lut is not None + patterns = [] + + # Parse and create symmetries of the patterns strings + for p in self.patterns: + m = re.search(r"(\w):?\s*\((.+?)\)\s*->\s*(\d)", p.replace("\n", "")) + if not m: + msg = 'Syntax error in pattern "' + p + '"' + raise Exception(msg) + options = m.group(1) + pattern = m.group(2) + result = int(m.group(3)) + + # Get rid of spaces + pattern = pattern.replace(" ", "").replace("\n", "") + + patterns += self._pattern_permute(pattern, options, result) + + # compile the patterns into regular expressions for speed + compiled_patterns = [] + for pattern in patterns: + p = pattern[0].replace(".", "X").replace("X", "[01]") + compiled_patterns.append((re.compile(p), pattern[1])) + + # Step through table and find patterns that match. + # Note that all the patterns are searched. The last one + # caught overrides + for i in range(LUT_SIZE): + # Build the bit pattern + bitpattern = bin(i)[2:] + bitpattern = ("0" * (9 - len(bitpattern)) + bitpattern)[::-1] + + for pattern, r in compiled_patterns: + if pattern.match(bitpattern): + self.lut[i] = [0, 1][r] + + return self.lut + + +class MorphOp: + """A class for binary morphological operators""" + + def __init__( + self, + lut: bytearray | None = None, + op_name: str | None = None, + patterns: list[str] | None = None, + ) -> None: + """Create a binary morphological operator""" + self.lut = lut + if op_name is not None: + self.lut = LutBuilder(op_name=op_name).build_lut() + elif patterns is not None: + self.lut = LutBuilder(patterns=patterns).build_lut() + + def apply(self, image: Image.Image) -> tuple[int, Image.Image]: + """Run a single morphological operation on an image + + Returns a tuple of the number of changed pixels and the + morphed image""" + if self.lut is None: + msg = "No operator loaded" + raise Exception(msg) + + if image.mode != "L": + msg = "Image mode must be L" + raise ValueError(msg) + outimage = Image.new(image.mode, image.size, None) + count = _imagingmorph.apply(bytes(self.lut), image.getim(), outimage.getim()) + return count, outimage + + def match(self, image: Image.Image) -> list[tuple[int, int]]: + """Get a list of coordinates matching the morphological operation on + an image. + + Returns a list of tuples of (x,y) coordinates + of all matching pixels. See :ref:`coordinate-system`.""" + if self.lut is None: + msg = "No operator loaded" + raise Exception(msg) + + if image.mode != "L": + msg = "Image mode must be L" + raise ValueError(msg) + return _imagingmorph.match(bytes(self.lut), image.getim()) + + def get_on_pixels(self, image: Image.Image) -> list[tuple[int, int]]: + """Get a list of all turned on pixels in a binary image + + Returns a list of tuples of (x,y) coordinates + of all matching pixels. See :ref:`coordinate-system`.""" + + if image.mode != "L": + msg = "Image mode must be L" + raise ValueError(msg) + return _imagingmorph.get_on_pixels(image.getim()) + + def load_lut(self, filename: str) -> None: + """Load an operator from an mrl file""" + with open(filename, "rb") as f: + self.lut = bytearray(f.read()) + + if len(self.lut) != LUT_SIZE: + self.lut = None + msg = "Wrong size operator file!" + raise Exception(msg) + + def save_lut(self, filename: str) -> None: + """Save an operator to an mrl file""" + if self.lut is None: + msg = "No operator loaded" + raise Exception(msg) + with open(filename, "wb") as f: + f.write(self.lut) + + def set_lut(self, lut: bytearray | None) -> None: + """Set the lut from an external source""" + self.lut = lut diff --git a/venv/lib/python3.11/site-packages/PIL/ImageOps.py b/venv/lib/python3.11/site-packages/PIL/ImageOps.py new file mode 100644 index 0000000..42b10bd --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ImageOps.py @@ -0,0 +1,746 @@ +# +# The Python Imaging Library. +# $Id$ +# +# standard image operations +# +# History: +# 2001-10-20 fl Created +# 2001-10-23 fl Added autocontrast operator +# 2001-12-18 fl Added Kevin's fit operator +# 2004-03-14 fl Fixed potential division by zero in equalize +# 2005-05-05 fl Fixed equalize for low number of values +# +# Copyright (c) 2001-2004 by Secret Labs AB +# Copyright (c) 2001-2004 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# +from __future__ import annotations + +import functools +import operator +import re +from collections.abc import Sequence +from typing import Literal, Protocol, cast, overload + +from . import ExifTags, Image, ImagePalette + +# +# helpers + + +def _border(border: int | tuple[int, ...]) -> tuple[int, int, int, int]: + if isinstance(border, tuple): + if len(border) == 2: + left, top = right, bottom = border + elif len(border) == 4: + left, top, right, bottom = border + else: + left = top = right = bottom = border + return left, top, right, bottom + + +def _color(color: str | int | tuple[int, ...], mode: str) -> int | tuple[int, ...]: + if isinstance(color, str): + from . import ImageColor + + color = ImageColor.getcolor(color, mode) + return color + + +def _lut(image: Image.Image, lut: list[int]) -> Image.Image: + if image.mode == "P": + # FIXME: apply to lookup table, not image data + msg = "mode P support coming soon" + raise NotImplementedError(msg) + elif image.mode in ("L", "RGB"): + if image.mode == "RGB" and len(lut) == 256: + lut = lut + lut + lut + return image.point(lut) + else: + msg = f"not supported for mode {image.mode}" + raise OSError(msg) + + +# +# actions + + +def autocontrast( + image: Image.Image, + cutoff: float | tuple[float, float] = 0, + ignore: int | Sequence[int] | None = None, + mask: Image.Image | None = None, + preserve_tone: bool = False, +) -> Image.Image: + """ + Maximize (normalize) image contrast. This function calculates a + histogram of the input image (or mask region), removes ``cutoff`` percent of the + lightest and darkest pixels from the histogram, and remaps the image + so that the darkest pixel becomes black (0), and the lightest + becomes white (255). + + :param image: The image to process. + :param cutoff: The percent to cut off from the histogram on the low and + high ends. Either a tuple of (low, high), or a single + number for both. + :param ignore: The background pixel value (use None for no background). + :param mask: Histogram used in contrast operation is computed using pixels + within the mask. If no mask is given the entire image is used + for histogram computation. + :param preserve_tone: Preserve image tone in Photoshop-like style autocontrast. + + .. versionadded:: 8.2.0 + + :return: An image. + """ + if preserve_tone: + histogram = image.convert("L").histogram(mask) + else: + histogram = image.histogram(mask) + + lut = [] + for layer in range(0, len(histogram), 256): + h = histogram[layer : layer + 256] + if ignore is not None: + # get rid of outliers + if isinstance(ignore, int): + h[ignore] = 0 + else: + for ix in ignore: + h[ix] = 0 + if cutoff: + # cut off pixels from both ends of the histogram + if not isinstance(cutoff, tuple): + cutoff = (cutoff, cutoff) + # get number of pixels + n = 0 + for ix in range(256): + n = n + h[ix] + # remove cutoff% pixels from the low end + cut = int(n * cutoff[0] // 100) + for lo in range(256): + if cut > h[lo]: + cut = cut - h[lo] + h[lo] = 0 + else: + h[lo] -= cut + cut = 0 + if cut <= 0: + break + # remove cutoff% samples from the high end + cut = int(n * cutoff[1] // 100) + for hi in range(255, -1, -1): + if cut > h[hi]: + cut = cut - h[hi] + h[hi] = 0 + else: + h[hi] -= cut + cut = 0 + if cut <= 0: + break + # find lowest/highest samples after preprocessing + for lo in range(256): + if h[lo]: + break + for hi in range(255, -1, -1): + if h[hi]: + break + if hi <= lo: + # don't bother + lut.extend(list(range(256))) + else: + scale = 255.0 / (hi - lo) + offset = -lo * scale + for ix in range(256): + ix = int(ix * scale + offset) + if ix < 0: + ix = 0 + elif ix > 255: + ix = 255 + lut.append(ix) + return _lut(image, lut) + + +def colorize( + image: Image.Image, + black: str | tuple[int, ...], + white: str | tuple[int, ...], + mid: str | int | tuple[int, ...] | None = None, + blackpoint: int = 0, + whitepoint: int = 255, + midpoint: int = 127, +) -> Image.Image: + """ + Colorize grayscale image. + This function calculates a color wedge which maps all black pixels in + the source image to the first color and all white pixels to the + second color. If ``mid`` is specified, it uses three-color mapping. + The ``black`` and ``white`` arguments should be RGB tuples or color names; + optionally you can use three-color mapping by also specifying ``mid``. + Mapping positions for any of the colors can be specified + (e.g. ``blackpoint``), where these parameters are the integer + value corresponding to where the corresponding color should be mapped. + These parameters must have logical order, such that + ``blackpoint <= midpoint <= whitepoint`` (if ``mid`` is specified). + + :param image: The image to colorize. + :param black: The color to use for black input pixels. + :param white: The color to use for white input pixels. + :param mid: The color to use for midtone input pixels. + :param blackpoint: an int value [0, 255] for the black mapping. + :param whitepoint: an int value [0, 255] for the white mapping. + :param midpoint: an int value [0, 255] for the midtone mapping. + :return: An image. + """ + + # Initial asserts + assert image.mode == "L" + if mid is None: + assert 0 <= blackpoint <= whitepoint <= 255 + else: + assert 0 <= blackpoint <= midpoint <= whitepoint <= 255 + + # Define colors from arguments + rgb_black = cast(Sequence[int], _color(black, "RGB")) + rgb_white = cast(Sequence[int], _color(white, "RGB")) + rgb_mid = cast(Sequence[int], _color(mid, "RGB")) if mid is not None else None + + # Empty lists for the mapping + red = [] + green = [] + blue = [] + + # Create the low-end values + for i in range(blackpoint): + red.append(rgb_black[0]) + green.append(rgb_black[1]) + blue.append(rgb_black[2]) + + # Create the mapping (2-color) + if rgb_mid is None: + range_map = range(whitepoint - blackpoint) + + for i in range_map: + red.append( + rgb_black[0] + i * (rgb_white[0] - rgb_black[0]) // len(range_map) + ) + green.append( + rgb_black[1] + i * (rgb_white[1] - rgb_black[1]) // len(range_map) + ) + blue.append( + rgb_black[2] + i * (rgb_white[2] - rgb_black[2]) // len(range_map) + ) + + # Create the mapping (3-color) + else: + range_map1 = range(midpoint - blackpoint) + range_map2 = range(whitepoint - midpoint) + + for i in range_map1: + red.append( + rgb_black[0] + i * (rgb_mid[0] - rgb_black[0]) // len(range_map1) + ) + green.append( + rgb_black[1] + i * (rgb_mid[1] - rgb_black[1]) // len(range_map1) + ) + blue.append( + rgb_black[2] + i * (rgb_mid[2] - rgb_black[2]) // len(range_map1) + ) + for i in range_map2: + red.append(rgb_mid[0] + i * (rgb_white[0] - rgb_mid[0]) // len(range_map2)) + green.append( + rgb_mid[1] + i * (rgb_white[1] - rgb_mid[1]) // len(range_map2) + ) + blue.append(rgb_mid[2] + i * (rgb_white[2] - rgb_mid[2]) // len(range_map2)) + + # Create the high-end values + for i in range(256 - whitepoint): + red.append(rgb_white[0]) + green.append(rgb_white[1]) + blue.append(rgb_white[2]) + + # Return converted image + image = image.convert("RGB") + return _lut(image, red + green + blue) + + +def contain( + image: Image.Image, size: tuple[int, int], method: int = Image.Resampling.BICUBIC +) -> Image.Image: + """ + Returns a resized version of the image, set to the maximum width and height + within the requested size, while maintaining the original aspect ratio. + + :param image: The image to resize. + :param size: The requested output size in pixels, given as a + (width, height) tuple. + :param method: Resampling method to use. Default is + :py:attr:`~PIL.Image.Resampling.BICUBIC`. + See :ref:`concept-filters`. + :return: An image. + """ + + im_ratio = image.width / image.height + dest_ratio = size[0] / size[1] + + if im_ratio != dest_ratio: + if im_ratio > dest_ratio: + new_height = round(image.height / image.width * size[0]) + if new_height != size[1]: + size = (size[0], new_height) + else: + new_width = round(image.width / image.height * size[1]) + if new_width != size[0]: + size = (new_width, size[1]) + return image.resize(size, resample=method) + + +def cover( + image: Image.Image, size: tuple[int, int], method: int = Image.Resampling.BICUBIC +) -> Image.Image: + """ + Returns a resized version of the image, so that the requested size is + covered, while maintaining the original aspect ratio. + + :param image: The image to resize. + :param size: The requested output size in pixels, given as a + (width, height) tuple. + :param method: Resampling method to use. Default is + :py:attr:`~PIL.Image.Resampling.BICUBIC`. + See :ref:`concept-filters`. + :return: An image. + """ + + im_ratio = image.width / image.height + dest_ratio = size[0] / size[1] + + if im_ratio != dest_ratio: + if im_ratio < dest_ratio: + new_height = round(image.height / image.width * size[0]) + if new_height != size[1]: + size = (size[0], new_height) + else: + new_width = round(image.width / image.height * size[1]) + if new_width != size[0]: + size = (new_width, size[1]) + return image.resize(size, resample=method) + + +def pad( + image: Image.Image, + size: tuple[int, int], + method: int = Image.Resampling.BICUBIC, + color: str | int | tuple[int, ...] | None = None, + centering: tuple[float, float] = (0.5, 0.5), +) -> Image.Image: + """ + Returns a resized and padded version of the image, expanded to fill the + requested aspect ratio and size. + + :param image: The image to resize and crop. + :param size: The requested output size in pixels, given as a + (width, height) tuple. + :param method: Resampling method to use. Default is + :py:attr:`~PIL.Image.Resampling.BICUBIC`. + See :ref:`concept-filters`. + :param color: The background color of the padded image. + :param centering: Control the position of the original image within the + padded version. + + (0.5, 0.5) will keep the image centered + (0, 0) will keep the image aligned to the top left + (1, 1) will keep the image aligned to the bottom + right + :return: An image. + """ + + resized = contain(image, size, method) + if resized.size == size: + out = resized + else: + out = Image.new(image.mode, size, color) + if resized.palette: + palette = resized.getpalette() + if palette is not None: + out.putpalette(palette) + if resized.width != size[0]: + x = round((size[0] - resized.width) * max(0, min(centering[0], 1))) + out.paste(resized, (x, 0)) + else: + y = round((size[1] - resized.height) * max(0, min(centering[1], 1))) + out.paste(resized, (0, y)) + return out + + +def crop(image: Image.Image, border: int = 0) -> Image.Image: + """ + Remove border from image. The same amount of pixels are removed + from all four sides. This function works on all image modes. + + .. seealso:: :py:meth:`~PIL.Image.Image.crop` + + :param image: The image to crop. + :param border: The number of pixels to remove. + :return: An image. + """ + left, top, right, bottom = _border(border) + return image.crop((left, top, image.size[0] - right, image.size[1] - bottom)) + + +def scale( + image: Image.Image, factor: float, resample: int = Image.Resampling.BICUBIC +) -> Image.Image: + """ + Returns a rescaled image by a specific factor given in parameter. + A factor greater than 1 expands the image, between 0 and 1 contracts the + image. + + :param image: The image to rescale. + :param factor: The expansion factor, as a float. + :param resample: Resampling method to use. Default is + :py:attr:`~PIL.Image.Resampling.BICUBIC`. + See :ref:`concept-filters`. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + if factor == 1: + return image.copy() + elif factor <= 0: + msg = "the factor must be greater than 0" + raise ValueError(msg) + else: + size = (round(factor * image.width), round(factor * image.height)) + return image.resize(size, resample) + + +class SupportsGetMesh(Protocol): + """ + An object that supports the ``getmesh`` method, taking an image as an + argument, and returning a list of tuples. Each tuple contains two tuples, + the source box as a tuple of 4 integers, and a tuple of 8 integers for the + final quadrilateral, in order of top left, bottom left, bottom right, top + right. + """ + + def getmesh( + self, image: Image.Image + ) -> list[ + tuple[tuple[int, int, int, int], tuple[int, int, int, int, int, int, int, int]] + ]: ... + + +def deform( + image: Image.Image, + deformer: SupportsGetMesh, + resample: int = Image.Resampling.BILINEAR, +) -> Image.Image: + """ + Deform the image. + + :param image: The image to deform. + :param deformer: A deformer object. Any object that implements a + ``getmesh`` method can be used. + :param resample: An optional resampling filter. Same values possible as + in the PIL.Image.transform function. + :return: An image. + """ + return image.transform( + image.size, Image.Transform.MESH, deformer.getmesh(image), resample + ) + + +def equalize(image: Image.Image, mask: Image.Image | None = None) -> Image.Image: + """ + Equalize the image histogram. This function applies a non-linear + mapping to the input image, in order to create a uniform + distribution of grayscale values in the output image. + + :param image: The image to equalize. + :param mask: An optional mask. If given, only the pixels selected by + the mask are included in the analysis. + :return: An image. + """ + if image.mode == "P": + image = image.convert("RGB") + h = image.histogram(mask) + lut = [] + for b in range(0, len(h), 256): + histo = [_f for _f in h[b : b + 256] if _f] + if len(histo) <= 1: + lut.extend(list(range(256))) + else: + step = (functools.reduce(operator.add, histo) - histo[-1]) // 255 + if not step: + lut.extend(list(range(256))) + else: + n = step // 2 + for i in range(256): + lut.append(n // step) + n = n + h[i + b] + return _lut(image, lut) + + +def expand( + image: Image.Image, + border: int | tuple[int, ...] = 0, + fill: str | int | tuple[int, ...] = 0, +) -> Image.Image: + """ + Add border to the image + + :param image: The image to expand. + :param border: Border width, in pixels. + :param fill: Pixel fill value (a color value). Default is 0 (black). + :return: An image. + """ + left, top, right, bottom = _border(border) + width = left + image.size[0] + right + height = top + image.size[1] + bottom + color = _color(fill, image.mode) + if image.palette: + mode = image.palette.mode + palette = ImagePalette.ImagePalette(mode, image.getpalette(mode)) + if isinstance(color, tuple) and (len(color) == 3 or len(color) == 4): + color = palette.getcolor(color) + else: + palette = None + out = Image.new(image.mode, (width, height), color) + if palette: + out.putpalette(palette.palette, mode) + out.paste(image, (left, top)) + return out + + +def fit( + image: Image.Image, + size: tuple[int, int], + method: int = Image.Resampling.BICUBIC, + bleed: float = 0.0, + centering: tuple[float, float] = (0.5, 0.5), +) -> Image.Image: + """ + Returns a resized and cropped version of the image, cropped to the + requested aspect ratio and size. + + This function was contributed by Kevin Cazabon. + + :param image: The image to resize and crop. + :param size: The requested output size in pixels, given as a + (width, height) tuple. + :param method: Resampling method to use. Default is + :py:attr:`~PIL.Image.Resampling.BICUBIC`. + See :ref:`concept-filters`. + :param bleed: Remove a border around the outside of the image from all + four edges. The value is a decimal percentage (use 0.01 for + one percent). The default value is 0 (no border). + Cannot be greater than or equal to 0.5. + :param centering: Control the cropping position. Use (0.5, 0.5) for + center cropping (e.g. if cropping the width, take 50% off + of the left side, and therefore 50% off the right side). + (0.0, 0.0) will crop from the top left corner (i.e. if + cropping the width, take all of the crop off of the right + side, and if cropping the height, take all of it off the + bottom). (1.0, 0.0) will crop from the bottom left + corner, etc. (i.e. if cropping the width, take all of the + crop off the left side, and if cropping the height take + none from the top, and therefore all off the bottom). + :return: An image. + """ + + # by Kevin Cazabon, Feb 17/2000 + # kevin@cazabon.com + # https://www.cazabon.com + + centering_x, centering_y = centering + + if not 0.0 <= centering_x <= 1.0: + centering_x = 0.5 + if not 0.0 <= centering_y <= 1.0: + centering_y = 0.5 + + if not 0.0 <= bleed < 0.5: + bleed = 0.0 + + # calculate the area to use for resizing and cropping, subtracting + # the 'bleed' around the edges + + # number of pixels to trim off on Top and Bottom, Left and Right + bleed_pixels = (bleed * image.size[0], bleed * image.size[1]) + + live_size = ( + image.size[0] - bleed_pixels[0] * 2, + image.size[1] - bleed_pixels[1] * 2, + ) + + # calculate the aspect ratio of the live_size + live_size_ratio = live_size[0] / live_size[1] + + # calculate the aspect ratio of the output image + output_ratio = size[0] / size[1] + + # figure out if the sides or top/bottom will be cropped off + if live_size_ratio == output_ratio: + # live_size is already the needed ratio + crop_width = live_size[0] + crop_height = live_size[1] + elif live_size_ratio >= output_ratio: + # live_size is wider than what's needed, crop the sides + crop_width = output_ratio * live_size[1] + crop_height = live_size[1] + else: + # live_size is taller than what's needed, crop the top and bottom + crop_width = live_size[0] + crop_height = live_size[0] / output_ratio + + # make the crop + crop_left = bleed_pixels[0] + (live_size[0] - crop_width) * centering_x + crop_top = bleed_pixels[1] + (live_size[1] - crop_height) * centering_y + + crop = (crop_left, crop_top, crop_left + crop_width, crop_top + crop_height) + + # resize the image and return it + return image.resize(size, method, box=crop) + + +def flip(image: Image.Image) -> Image.Image: + """ + Flip the image vertically (top to bottom). + + :param image: The image to flip. + :return: An image. + """ + return image.transpose(Image.Transpose.FLIP_TOP_BOTTOM) + + +def grayscale(image: Image.Image) -> Image.Image: + """ + Convert the image to grayscale. + + :param image: The image to convert. + :return: An image. + """ + return image.convert("L") + + +def invert(image: Image.Image) -> Image.Image: + """ + Invert (negate) the image. + + :param image: The image to invert. + :return: An image. + """ + lut = list(range(255, -1, -1)) + return image.point(lut) if image.mode == "1" else _lut(image, lut) + + +def mirror(image: Image.Image) -> Image.Image: + """ + Flip image horizontally (left to right). + + :param image: The image to mirror. + :return: An image. + """ + return image.transpose(Image.Transpose.FLIP_LEFT_RIGHT) + + +def posterize(image: Image.Image, bits: int) -> Image.Image: + """ + Reduce the number of bits for each color channel. + + :param image: The image to posterize. + :param bits: The number of bits to keep for each channel (1-8). + :return: An image. + """ + mask = ~(2 ** (8 - bits) - 1) + lut = [i & mask for i in range(256)] + return _lut(image, lut) + + +def solarize(image: Image.Image, threshold: int = 128) -> Image.Image: + """ + Invert all pixel values above a threshold. + + :param image: The image to solarize. + :param threshold: All pixels above this grayscale level are inverted. + :return: An image. + """ + lut = [] + for i in range(256): + if i < threshold: + lut.append(i) + else: + lut.append(255 - i) + return _lut(image, lut) + + +@overload +def exif_transpose(image: Image.Image, *, in_place: Literal[True]) -> None: ... + + +@overload +def exif_transpose( + image: Image.Image, *, in_place: Literal[False] = False +) -> Image.Image: ... + + +def exif_transpose(image: Image.Image, *, in_place: bool = False) -> Image.Image | None: + """ + If an image has an EXIF Orientation tag, other than 1, transpose the image + accordingly, and remove the orientation data. + + :param image: The image to transpose. + :param in_place: Boolean. Keyword-only argument. + If ``True``, the original image is modified in-place, and ``None`` is returned. + If ``False`` (default), a new :py:class:`~PIL.Image.Image` object is returned + with the transposition applied. If there is no transposition, a copy of the + image will be returned. + """ + image.load() + image_exif = image.getexif() + orientation = image_exif.get(ExifTags.Base.Orientation, 1) + method = { + 2: Image.Transpose.FLIP_LEFT_RIGHT, + 3: Image.Transpose.ROTATE_180, + 4: Image.Transpose.FLIP_TOP_BOTTOM, + 5: Image.Transpose.TRANSPOSE, + 6: Image.Transpose.ROTATE_270, + 7: Image.Transpose.TRANSVERSE, + 8: Image.Transpose.ROTATE_90, + }.get(orientation) + if method is not None: + if in_place: + image.im = image.im.transpose(method) + image._size = image.im.size + else: + transposed_image = image.transpose(method) + exif_image = image if in_place else transposed_image + + exif = exif_image.getexif() + if ExifTags.Base.Orientation in exif: + del exif[ExifTags.Base.Orientation] + if "exif" in exif_image.info: + exif_image.info["exif"] = exif.tobytes() + elif "Raw profile type exif" in exif_image.info: + exif_image.info["Raw profile type exif"] = exif.tobytes().hex() + for key in ("XML:com.adobe.xmp", "xmp"): + if key in exif_image.info: + for pattern in ( + r'tiff:Orientation="([0-9])"', + r"([0-9])", + ): + value = exif_image.info[key] + if isinstance(value, str): + value = re.sub(pattern, "", value) + elif isinstance(value, tuple): + value = tuple( + re.sub(pattern.encode(), b"", v) for v in value + ) + else: + value = re.sub(pattern.encode(), b"", value) + exif_image.info[key] = value + if not in_place: + return transposed_image + elif not in_place: + return image.copy() + return None diff --git a/venv/lib/python3.11/site-packages/PIL/ImagePath.py b/venv/lib/python3.11/site-packages/PIL/ImagePath.py new file mode 100644 index 0000000..77e8a60 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ImagePath.py @@ -0,0 +1,20 @@ +# +# The Python Imaging Library +# $Id$ +# +# path interface +# +# History: +# 1996-11-04 fl Created +# 2002-04-14 fl Added documentation stub class +# +# Copyright (c) Secret Labs AB 1997. +# Copyright (c) Fredrik Lundh 1996. +# +# See the README file for information on usage and redistribution. +# +from __future__ import annotations + +from . import Image + +Path = Image.core.path diff --git a/venv/lib/python3.11/site-packages/PIL/ImageQt.py b/venv/lib/python3.11/site-packages/PIL/ImageQt.py new file mode 100644 index 0000000..af4d074 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ImageQt.py @@ -0,0 +1,219 @@ +# +# The Python Imaging Library. +# $Id$ +# +# a simple Qt image interface. +# +# history: +# 2006-06-03 fl: created +# 2006-06-04 fl: inherit from QImage instead of wrapping it +# 2006-06-05 fl: removed toimage helper; move string support to ImageQt +# 2013-11-13 fl: add support for Qt5 (aurelien.ballier@cyclonit.com) +# +# Copyright (c) 2006 by Secret Labs AB +# Copyright (c) 2006 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# +from __future__ import annotations + +import sys +from io import BytesIO + +from . import Image +from ._util import is_path + +TYPE_CHECKING = False +if TYPE_CHECKING: + from collections.abc import Callable + from typing import Any + + from . import ImageFile + + QBuffer: type + +qt_version: str | None +qt_versions = [ + ["6", "PyQt6"], + ["side6", "PySide6"], +] + +# If a version has already been imported, attempt it first +qt_versions.sort(key=lambda version: version[1] in sys.modules, reverse=True) +for version, qt_module in qt_versions: + try: + qRgba: Callable[[int, int, int, int], int] + if qt_module == "PyQt6": + from PyQt6.QtCore import QBuffer, QByteArray, QIODevice + from PyQt6.QtGui import QImage, QPixmap, qRgba + elif qt_module == "PySide6": + from PySide6.QtCore import ( # type: ignore[assignment] + QBuffer, + QByteArray, + QIODevice, + ) + from PySide6.QtGui import QImage, QPixmap, qRgba # type: ignore[assignment] + except (ImportError, RuntimeError): + continue + qt_is_installed = True + qt_version = version + break +else: + qt_is_installed = False + qt_version = None + + +def rgb(r: int, g: int, b: int, a: int = 255) -> int: + """(Internal) Turns an RGB color into a Qt compatible color integer.""" + # use qRgb to pack the colors, and then turn the resulting long + # into a negative integer with the same bitpattern. + return qRgba(r, g, b, a) & 0xFFFFFFFF + + +def fromqimage(im: QImage | QPixmap) -> ImageFile.ImageFile: + """ + :param im: QImage or PIL ImageQt object + """ + buffer = QBuffer() + qt_openmode: object + if qt_version == "6": + try: + qt_openmode = getattr(QIODevice, "OpenModeFlag") + except AttributeError: + qt_openmode = getattr(QIODevice, "OpenMode") + else: + qt_openmode = QIODevice + buffer.open(getattr(qt_openmode, "ReadWrite")) + # preserve alpha channel with png + # otherwise ppm is more friendly with Image.open + if im.hasAlphaChannel(): + im.save(buffer, "png") + else: + im.save(buffer, "ppm") + + b = BytesIO() + b.write(buffer.data()) + buffer.close() + b.seek(0) + + return Image.open(b) + + +def fromqpixmap(im: QPixmap) -> ImageFile.ImageFile: + return fromqimage(im) + + +def align8to32(bytes: bytes, width: int, mode: str) -> bytes: + """ + converts each scanline of data from 8 bit to 32 bit aligned + """ + + bits_per_pixel = {"1": 1, "L": 8, "P": 8, "I;16": 16}[mode] + + # calculate bytes per line and the extra padding if needed + bits_per_line = bits_per_pixel * width + full_bytes_per_line, remaining_bits_per_line = divmod(bits_per_line, 8) + bytes_per_line = full_bytes_per_line + (1 if remaining_bits_per_line else 0) + + extra_padding = -bytes_per_line % 4 + + # already 32 bit aligned by luck + if not extra_padding: + return bytes + + new_data = [ + bytes[i * bytes_per_line : (i + 1) * bytes_per_line] + b"\x00" * extra_padding + for i in range(len(bytes) // bytes_per_line) + ] + + return b"".join(new_data) + + +def _toqclass_helper(im: Image.Image | str | QByteArray) -> dict[str, Any]: + data = None + colortable = None + exclusive_fp = False + + # handle filename, if given instead of image name + if hasattr(im, "toUtf8"): + # FIXME - is this really the best way to do this? + im = str(im.toUtf8(), "utf-8") + if is_path(im): + im = Image.open(im) + exclusive_fp = True + assert isinstance(im, Image.Image) + + qt_format = getattr(QImage, "Format") if qt_version == "6" else QImage + if im.mode == "1": + format = getattr(qt_format, "Format_Mono") + elif im.mode == "L": + format = getattr(qt_format, "Format_Indexed8") + colortable = [rgb(i, i, i) for i in range(256)] + elif im.mode == "P": + format = getattr(qt_format, "Format_Indexed8") + palette = im.getpalette() + assert palette is not None + colortable = [rgb(*palette[i : i + 3]) for i in range(0, len(palette), 3)] + elif im.mode == "RGB": + # Populate the 4th channel with 255 + im = im.convert("RGBA") + + data = im.tobytes("raw", "BGRA") + format = getattr(qt_format, "Format_RGB32") + elif im.mode == "RGBA": + data = im.tobytes("raw", "BGRA") + format = getattr(qt_format, "Format_ARGB32") + elif im.mode == "I;16": + im = im.point(lambda i: i * 256) + + format = getattr(qt_format, "Format_Grayscale16") + else: + if exclusive_fp: + im.close() + msg = f"unsupported image mode {repr(im.mode)}" + raise ValueError(msg) + + size = im.size + __data = data or align8to32(im.tobytes(), size[0], im.mode) + if exclusive_fp: + im.close() + return {"data": __data, "size": size, "format": format, "colortable": colortable} + + +if qt_is_installed: + + class ImageQt(QImage): + def __init__(self, im: Image.Image | str | QByteArray) -> None: + """ + An PIL image wrapper for Qt. This is a subclass of PyQt's QImage + class. + + :param im: A PIL Image object, or a file name (given either as + Python string or a PyQt string object). + """ + im_data = _toqclass_helper(im) + # must keep a reference, or Qt will crash! + # All QImage constructors that take data operate on an existing + # buffer, so this buffer has to hang on for the life of the image. + # Fixes https://github.com/python-pillow/Pillow/issues/1370 + self.__data = im_data["data"] + super().__init__( + self.__data, + im_data["size"][0], + im_data["size"][1], + im_data["format"], + ) + if im_data["colortable"]: + self.setColorTable(im_data["colortable"]) + + +def toqimage(im: Image.Image | str | QByteArray) -> ImageQt: + return ImageQt(im) + + +def toqpixmap(im: Image.Image | str | QByteArray) -> QPixmap: + qimage = toqimage(im) + pixmap = getattr(QPixmap, "fromImage")(qimage) + if qt_version == "6": + pixmap.detach() + return pixmap diff --git a/venv/lib/python3.11/site-packages/PIL/ImageShow.py b/venv/lib/python3.11/site-packages/PIL/ImageShow.py new file mode 100644 index 0000000..7705608 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ImageShow.py @@ -0,0 +1,362 @@ +# +# The Python Imaging Library. +# $Id$ +# +# im.show() drivers +# +# History: +# 2008-04-06 fl Created +# +# Copyright (c) Secret Labs AB 2008. +# +# See the README file for information on usage and redistribution. +# +from __future__ import annotations + +import abc +import os +import shutil +import subprocess +import sys +from shlex import quote +from typing import Any + +from . import Image + +_viewers = [] + + +def register(viewer: type[Viewer] | Viewer, order: int = 1) -> None: + """ + The :py:func:`register` function is used to register additional viewers:: + + from PIL import ImageShow + ImageShow.register(MyViewer()) # MyViewer will be used as a last resort + ImageShow.register(MySecondViewer(), 0) # MySecondViewer will be prioritised + ImageShow.register(ImageShow.XVViewer(), 0) # XVViewer will be prioritised + + :param viewer: The viewer to be registered. + :param order: + Zero or a negative integer to prepend this viewer to the list, + a positive integer to append it. + """ + if isinstance(viewer, type) and issubclass(viewer, Viewer): + viewer = viewer() + if order > 0: + _viewers.append(viewer) + else: + _viewers.insert(0, viewer) + + +def show(image: Image.Image, title: str | None = None, **options: Any) -> bool: + r""" + Display a given image. + + :param image: An image object. + :param title: Optional title. Not all viewers can display the title. + :param \**options: Additional viewer options. + :returns: ``True`` if a suitable viewer was found, ``False`` otherwise. + """ + for viewer in _viewers: + if viewer.show(image, title=title, **options): + return True + return False + + +class Viewer: + """Base class for viewers.""" + + # main api + + def show(self, image: Image.Image, **options: Any) -> int: + """ + The main function for displaying an image. + Converts the given image to the target format and displays it. + """ + + if not ( + image.mode in ("1", "RGBA") + or (self.format == "PNG" and image.mode in ("I;16", "LA")) + ): + base = Image.getmodebase(image.mode) + if image.mode != base: + image = image.convert(base) + + return self.show_image(image, **options) + + # hook methods + + format: str | None = None + """The format to convert the image into.""" + options: dict[str, Any] = {} + """Additional options used to convert the image.""" + + def get_format(self, image: Image.Image) -> str | None: + """Return format name, or ``None`` to save as PGM/PPM.""" + return self.format + + def get_command(self, file: str, **options: Any) -> str: + """ + Returns the command used to display the file. + Not implemented in the base class. + """ + msg = "unavailable in base viewer" + raise NotImplementedError(msg) + + def save_image(self, image: Image.Image) -> str: + """Save to temporary file and return filename.""" + return image._dump(format=self.get_format(image), **self.options) + + def show_image(self, image: Image.Image, **options: Any) -> int: + """Display the given image.""" + return self.show_file(self.save_image(image), **options) + + def show_file(self, path: str, **options: Any) -> int: + """ + Display given file. + """ + if not os.path.exists(path): + raise FileNotFoundError + os.system(self.get_command(path, **options)) # nosec + return 1 + + +# -------------------------------------------------------------------- + + +class WindowsViewer(Viewer): + """The default viewer on Windows is the default system application for PNG files.""" + + format = "PNG" + options = {"compress_level": 1, "save_all": True} + + def get_command(self, file: str, **options: Any) -> str: + return ( + f'start "Pillow" /WAIT "{file}" ' + "&& ping -n 4 127.0.0.1 >NUL " + f'&& del /f "{file}"' + ) + + def show_file(self, path: str, **options: Any) -> int: + """ + Display given file. + """ + if not os.path.exists(path): + raise FileNotFoundError + subprocess.Popen( + self.get_command(path, **options), + shell=True, + creationflags=getattr(subprocess, "CREATE_NO_WINDOW"), + ) # nosec + return 1 + + +if sys.platform == "win32": + register(WindowsViewer) + + +class MacViewer(Viewer): + """The default viewer on macOS using ``Preview.app``.""" + + format = "PNG" + options = {"compress_level": 1, "save_all": True} + + def get_command(self, file: str, **options: Any) -> str: + # on darwin open returns immediately resulting in the temp + # file removal while app is opening + command = "open -a Preview.app" + command = f"({command} {quote(file)}; sleep 20; rm -f {quote(file)})&" + return command + + def show_file(self, path: str, **options: Any) -> int: + """ + Display given file. + """ + if not os.path.exists(path): + raise FileNotFoundError + subprocess.call(["open", "-a", "Preview.app", path]) + + pyinstaller = getattr(sys, "frozen", False) and hasattr(sys, "_MEIPASS") + executable = (not pyinstaller and sys.executable) or shutil.which("python3") + if executable: + subprocess.Popen( + [ + executable, + "-c", + "import os, sys, time; time.sleep(20); os.remove(sys.argv[1])", + path, + ] + ) + return 1 + + +if sys.platform == "darwin": + register(MacViewer) + + +class UnixViewer(abc.ABC, Viewer): + format = "PNG" + options = {"compress_level": 1, "save_all": True} + + @abc.abstractmethod + def get_command_ex(self, file: str, **options: Any) -> tuple[str, str]: + pass + + def get_command(self, file: str, **options: Any) -> str: + command = self.get_command_ex(file, **options)[0] + return f"{command} {quote(file)}" + + +class XDGViewer(UnixViewer): + """ + The freedesktop.org ``xdg-open`` command. + """ + + def get_command_ex(self, file: str, **options: Any) -> tuple[str, str]: + command = executable = "xdg-open" + return command, executable + + def show_file(self, path: str, **options: Any) -> int: + """ + Display given file. + """ + if not os.path.exists(path): + raise FileNotFoundError + subprocess.Popen(["xdg-open", path]) + return 1 + + +class DisplayViewer(UnixViewer): + """ + The ImageMagick ``display`` command. + This viewer supports the ``title`` parameter. + """ + + def get_command_ex( + self, file: str, title: str | None = None, **options: Any + ) -> tuple[str, str]: + command = executable = "display" + if title: + command += f" -title {quote(title)}" + return command, executable + + def show_file(self, path: str, **options: Any) -> int: + """ + Display given file. + """ + if not os.path.exists(path): + raise FileNotFoundError + args = ["display"] + title = options.get("title") + if title: + args += ["-title", title] + args.append(path) + + subprocess.Popen(args) + return 1 + + +class GmDisplayViewer(UnixViewer): + """The GraphicsMagick ``gm display`` command.""" + + def get_command_ex(self, file: str, **options: Any) -> tuple[str, str]: + executable = "gm" + command = "gm display" + return command, executable + + def show_file(self, path: str, **options: Any) -> int: + """ + Display given file. + """ + if not os.path.exists(path): + raise FileNotFoundError + subprocess.Popen(["gm", "display", path]) + return 1 + + +class EogViewer(UnixViewer): + """The GNOME Image Viewer ``eog`` command.""" + + def get_command_ex(self, file: str, **options: Any) -> tuple[str, str]: + executable = "eog" + command = "eog -n" + return command, executable + + def show_file(self, path: str, **options: Any) -> int: + """ + Display given file. + """ + if not os.path.exists(path): + raise FileNotFoundError + subprocess.Popen(["eog", "-n", path]) + return 1 + + +class XVViewer(UnixViewer): + """ + The X Viewer ``xv`` command. + This viewer supports the ``title`` parameter. + """ + + def get_command_ex( + self, file: str, title: str | None = None, **options: Any + ) -> tuple[str, str]: + # note: xv is pretty outdated. most modern systems have + # imagemagick's display command instead. + command = executable = "xv" + if title: + command += f" -name {quote(title)}" + return command, executable + + def show_file(self, path: str, **options: Any) -> int: + """ + Display given file. + """ + if not os.path.exists(path): + raise FileNotFoundError + args = ["xv"] + title = options.get("title") + if title: + args += ["-name", title] + args.append(path) + + subprocess.Popen(args) + return 1 + + +if sys.platform not in ("win32", "darwin"): # unixoids + if shutil.which("xdg-open"): + register(XDGViewer) + if shutil.which("display"): + register(DisplayViewer) + if shutil.which("gm"): + register(GmDisplayViewer) + if shutil.which("eog"): + register(EogViewer) + if shutil.which("xv"): + register(XVViewer) + + +class IPythonViewer(Viewer): + """The viewer for IPython frontends.""" + + def show_image(self, image: Image.Image, **options: Any) -> int: + ipython_display(image) + return 1 + + +try: + from IPython.display import display as ipython_display +except ImportError: + pass +else: + register(IPythonViewer) + + +if __name__ == "__main__": + if len(sys.argv) < 2: + print("Syntax: python3 ImageShow.py imagefile [title]") + sys.exit() + + with Image.open(sys.argv[1]) as im: + print(show(im, *sys.argv[2:])) diff --git a/venv/lib/python3.11/site-packages/PIL/ImageStat.py b/venv/lib/python3.11/site-packages/PIL/ImageStat.py new file mode 100644 index 0000000..3a1044b --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ImageStat.py @@ -0,0 +1,167 @@ +# +# The Python Imaging Library. +# $Id$ +# +# global image statistics +# +# History: +# 1996-04-05 fl Created +# 1997-05-21 fl Added mask; added rms, var, stddev attributes +# 1997-08-05 fl Added median +# 1998-07-05 hk Fixed integer overflow error +# +# Notes: +# This class shows how to implement delayed evaluation of attributes. +# To get a certain value, simply access the corresponding attribute. +# The __getattr__ dispatcher takes care of the rest. +# +# Copyright (c) Secret Labs AB 1997. +# Copyright (c) Fredrik Lundh 1996-97. +# +# See the README file for information on usage and redistribution. +# +from __future__ import annotations + +import math +from functools import cached_property + +from . import Image + + +class Stat: + def __init__( + self, image_or_list: Image.Image | list[int], mask: Image.Image | None = None + ) -> None: + """ + Calculate statistics for the given image. If a mask is included, + only the regions covered by that mask are included in the + statistics. You can also pass in a previously calculated histogram. + + :param image: A PIL image, or a precalculated histogram. + + .. note:: + + For a PIL image, calculations rely on the + :py:meth:`~PIL.Image.Image.histogram` method. The pixel counts are + grouped into 256 bins, even if the image has more than 8 bits per + channel. So ``I`` and ``F`` mode images have a maximum ``mean``, + ``median`` and ``rms`` of 255, and cannot have an ``extrema`` maximum + of more than 255. + + :param mask: An optional mask. + """ + if isinstance(image_or_list, Image.Image): + self.h = image_or_list.histogram(mask) + elif isinstance(image_or_list, list): + self.h = image_or_list + else: + msg = "first argument must be image or list" # type: ignore[unreachable] + raise TypeError(msg) + self.bands = list(range(len(self.h) // 256)) + + @cached_property + def extrema(self) -> list[tuple[int, int]]: + """ + Min/max values for each band in the image. + + .. note:: + This relies on the :py:meth:`~PIL.Image.Image.histogram` method, and + simply returns the low and high bins used. This is correct for + images with 8 bits per channel, but fails for other modes such as + ``I`` or ``F``. Instead, use :py:meth:`~PIL.Image.Image.getextrema` to + return per-band extrema for the image. This is more correct and + efficient because, for non-8-bit modes, the histogram method uses + :py:meth:`~PIL.Image.Image.getextrema` to determine the bins used. + """ + + def minmax(histogram: list[int]) -> tuple[int, int]: + res_min, res_max = 255, 0 + for i in range(256): + if histogram[i]: + res_min = i + break + for i in range(255, -1, -1): + if histogram[i]: + res_max = i + break + return res_min, res_max + + return [minmax(self.h[i:]) for i in range(0, len(self.h), 256)] + + @cached_property + def count(self) -> list[int]: + """Total number of pixels for each band in the image.""" + return [sum(self.h[i : i + 256]) for i in range(0, len(self.h), 256)] + + @cached_property + def sum(self) -> list[float]: + """Sum of all pixels for each band in the image.""" + + v = [] + for i in range(0, len(self.h), 256): + layer_sum = 0.0 + for j in range(256): + layer_sum += j * self.h[i + j] + v.append(layer_sum) + return v + + @cached_property + def sum2(self) -> list[float]: + """Squared sum of all pixels for each band in the image.""" + + v = [] + for i in range(0, len(self.h), 256): + sum2 = 0.0 + for j in range(256): + sum2 += (j**2) * float(self.h[i + j]) + v.append(sum2) + return v + + @cached_property + def mean(self) -> list[float]: + """Average (arithmetic mean) pixel level for each band in the image.""" + return [self.sum[i] / self.count[i] if self.count[i] else 0 for i in self.bands] + + @cached_property + def median(self) -> list[int]: + """Median pixel level for each band in the image.""" + + v = [] + for i in self.bands: + s = 0 + half = self.count[i] // 2 + b = i * 256 + for j in range(256): + s = s + self.h[b + j] + if s > half: + break + v.append(j) + return v + + @cached_property + def rms(self) -> list[float]: + """RMS (root-mean-square) for each band in the image.""" + return [ + math.sqrt(self.sum2[i] / self.count[i]) if self.count[i] else 0 + for i in self.bands + ] + + @cached_property + def var(self) -> list[float]: + """Variance for each band in the image.""" + return [ + ( + (self.sum2[i] - (self.sum[i] ** 2.0) / self.count[i]) / self.count[i] + if self.count[i] + else 0 + ) + for i in self.bands + ] + + @cached_property + def stddev(self) -> list[float]: + """Standard deviation for each band in the image.""" + return [math.sqrt(self.var[i]) for i in self.bands] + + +Global = Stat # compatibility diff --git a/venv/lib/python3.11/site-packages/PIL/ImageText.py b/venv/lib/python3.11/site-packages/PIL/ImageText.py new file mode 100644 index 0000000..c74570e --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ImageText.py @@ -0,0 +1,318 @@ +from __future__ import annotations + +from . import ImageFont +from ._typing import _Ink + + +class Text: + def __init__( + self, + text: str | bytes, + font: ( + ImageFont.ImageFont + | ImageFont.FreeTypeFont + | ImageFont.TransposedFont + | None + ) = None, + mode: str = "RGB", + spacing: float = 4, + direction: str | None = None, + features: list[str] | None = None, + language: str | None = None, + ) -> None: + """ + :param text: String to be drawn. + :param font: Either an :py:class:`~PIL.ImageFont.ImageFont` instance, + :py:class:`~PIL.ImageFont.FreeTypeFont` instance, + :py:class:`~PIL.ImageFont.TransposedFont` instance or ``None``. If + ``None``, the default font from :py:meth:`.ImageFont.load_default` + will be used. + :param mode: The image mode this will be used with. + :param spacing: The number of pixels between lines. + :param direction: Direction of the text. It can be ``"rtl"`` (right to left), + ``"ltr"`` (left to right) or ``"ttb"`` (top to bottom). + Requires libraqm. + :param features: A list of OpenType font features to be used during text + layout. This is usually used to turn on optional font features + that are not enabled by default, for example ``"dlig"`` or + ``"ss01"``, but can be also used to turn off default font + features, for example ``"-liga"`` to disable ligatures or + ``"-kern"`` to disable kerning. To get all supported + features, see `OpenType docs`_. + Requires libraqm. + :param language: Language of the text. Different languages may use + different glyph shapes or ligatures. This parameter tells + the font which language the text is in, and to apply the + correct substitutions as appropriate, if available. + It should be a `BCP 47 language code`_. + Requires libraqm. + """ + self.text = text + self.font = font or ImageFont.load_default() + + self.mode = mode + self.spacing = spacing + self.direction = direction + self.features = features + self.language = language + + self.embedded_color = False + + self.stroke_width: float = 0 + self.stroke_fill: _Ink | None = None + + def embed_color(self) -> None: + """ + Use embedded color glyphs (COLR, CBDT, SBIX). + """ + if self.mode not in ("RGB", "RGBA"): + msg = "Embedded color supported only in RGB and RGBA modes" + raise ValueError(msg) + self.embedded_color = True + + def stroke(self, width: float = 0, fill: _Ink | None = None) -> None: + """ + :param width: The width of the text stroke. + :param fill: Color to use for the text stroke when drawing. If not given, will + default to the ``fill`` parameter from + :py:meth:`.ImageDraw.ImageDraw.text`. + """ + self.stroke_width = width + self.stroke_fill = fill + + def _get_fontmode(self) -> str: + if self.mode in ("1", "P", "I", "F"): + return "1" + elif self.embedded_color: + return "RGBA" + else: + return "L" + + def get_length(self): + """ + Returns length (in pixels with 1/64 precision) of text. + + This is the amount by which following text should be offset. + Text bounding box may extend past the length in some fonts, + e.g. when using italics or accents. + + The result is returned as a float; it is a whole number if using basic layout. + + Note that the sum of two lengths may not equal the length of a concatenated + string due to kerning. If you need to adjust for kerning, include the following + character and subtract its length. + + For example, instead of:: + + hello = ImageText.Text("Hello", font).get_length() + world = ImageText.Text("World", font).get_length() + helloworld = ImageText.Text("HelloWorld", font).get_length() + assert hello + world == helloworld + + use:: + + hello = ( + ImageText.Text("HelloW", font).get_length() - + ImageText.Text("W", font).get_length() + ) # adjusted for kerning + world = ImageText.Text("World", font).get_length() + helloworld = ImageText.Text("HelloWorld", font).get_length() + assert hello + world == helloworld + + or disable kerning with (requires libraqm):: + + hello = ImageText.Text("Hello", font, features=["-kern"]).get_length() + world = ImageText.Text("World", font, features=["-kern"]).get_length() + helloworld = ImageText.Text( + "HelloWorld", font, features=["-kern"] + ).get_length() + assert hello + world == helloworld + + :return: Either width for horizontal text, or height for vertical text. + """ + split_character = "\n" if isinstance(self.text, str) else b"\n" + if split_character in self.text: + msg = "can't measure length of multiline text" + raise ValueError(msg) + return self.font.getlength( + self.text, + self._get_fontmode(), + self.direction, + self.features, + self.language, + ) + + def _split( + self, xy: tuple[float, float], anchor: str | None, align: str + ) -> list[tuple[tuple[float, float], str, str | bytes]]: + if anchor is None: + anchor = "lt" if self.direction == "ttb" else "la" + elif len(anchor) != 2: + msg = "anchor must be a 2 character string" + raise ValueError(msg) + + lines = ( + self.text.split("\n") + if isinstance(self.text, str) + else self.text.split(b"\n") + ) + if len(lines) == 1: + return [(xy, anchor, self.text)] + + if anchor[1] in "tb" and self.direction != "ttb": + msg = "anchor not supported for multiline text" + raise ValueError(msg) + + fontmode = self._get_fontmode() + line_spacing = ( + self.font.getbbox( + "A", + fontmode, + None, + self.features, + self.language, + self.stroke_width, + )[3] + + self.stroke_width + + self.spacing + ) + + top = xy[1] + parts = [] + if self.direction == "ttb": + left = xy[0] + for line in lines: + parts.append(((left, top), anchor, line)) + left += line_spacing + else: + widths = [] + max_width: float = 0 + for line in lines: + line_width = self.font.getlength( + line, fontmode, self.direction, self.features, self.language + ) + widths.append(line_width) + max_width = max(max_width, line_width) + + if anchor[1] == "m": + top -= (len(lines) - 1) * line_spacing / 2.0 + elif anchor[1] == "d": + top -= (len(lines) - 1) * line_spacing + + idx = -1 + for line in lines: + left = xy[0] + idx += 1 + width_difference = max_width - widths[idx] + + # align by align parameter + if align in ("left", "justify"): + pass + elif align == "center": + left += width_difference / 2.0 + elif align == "right": + left += width_difference + else: + msg = 'align must be "left", "center", "right" or "justify"' + raise ValueError(msg) + + if ( + align == "justify" + and width_difference != 0 + and idx != len(lines) - 1 + ): + words = ( + line.split(" ") if isinstance(line, str) else line.split(b" ") + ) + if len(words) > 1: + # align left by anchor + if anchor[0] == "m": + left -= max_width / 2.0 + elif anchor[0] == "r": + left -= max_width + + word_widths = [ + self.font.getlength( + word, + fontmode, + self.direction, + self.features, + self.language, + ) + for word in words + ] + word_anchor = "l" + anchor[1] + width_difference = max_width - sum(word_widths) + i = 0 + for word in words: + parts.append(((left, top), word_anchor, word)) + left += word_widths[i] + width_difference / (len(words) - 1) + i += 1 + top += line_spacing + continue + + # align left by anchor + if anchor[0] == "m": + left -= width_difference / 2.0 + elif anchor[0] == "r": + left -= width_difference + parts.append(((left, top), anchor, line)) + top += line_spacing + + return parts + + def get_bbox( + self, + xy: tuple[float, float] = (0, 0), + anchor: str | None = None, + align: str = "left", + ) -> tuple[float, float, float, float]: + """ + Returns bounding box (in pixels) of text. + + Use :py:meth:`get_length` to get the offset of following text with 1/64 pixel + precision. The bounding box includes extra margins for some fonts, e.g. italics + or accents. + + :param xy: The anchor coordinates of the text. + :param anchor: The text anchor alignment. Determines the relative location of + the anchor to the text. The default alignment is top left, + specifically ``la`` for horizontal text and ``lt`` for + vertical text. See :ref:`text-anchors` for details. + :param align: For multiline text, ``"left"``, ``"center"``, ``"right"`` or + ``"justify"`` determines the relative alignment of lines. Use the + ``anchor`` parameter to specify the alignment to ``xy``. + + :return: ``(left, top, right, bottom)`` bounding box + """ + bbox: tuple[float, float, float, float] | None = None + fontmode = self._get_fontmode() + for xy, anchor, line in self._split(xy, anchor, align): + bbox_line = self.font.getbbox( + line, + fontmode, + self.direction, + self.features, + self.language, + self.stroke_width, + anchor, + ) + bbox_line = ( + bbox_line[0] + xy[0], + bbox_line[1] + xy[1], + bbox_line[2] + xy[0], + bbox_line[3] + xy[1], + ) + if bbox is None: + bbox = bbox_line + else: + bbox = ( + min(bbox[0], bbox_line[0]), + min(bbox[1], bbox_line[1]), + max(bbox[2], bbox_line[2]), + max(bbox[3], bbox_line[3]), + ) + + if bbox is None: + return xy[0], xy[1], xy[0], xy[1] + return bbox diff --git a/venv/lib/python3.11/site-packages/PIL/ImageTk.py b/venv/lib/python3.11/site-packages/PIL/ImageTk.py new file mode 100644 index 0000000..3a4cb81 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ImageTk.py @@ -0,0 +1,266 @@ +# +# The Python Imaging Library. +# $Id$ +# +# a Tk display interface +# +# History: +# 96-04-08 fl Created +# 96-09-06 fl Added getimage method +# 96-11-01 fl Rewritten, removed image attribute and crop method +# 97-05-09 fl Use PyImagingPaste method instead of image type +# 97-05-12 fl Minor tweaks to match the IFUNC95 interface +# 97-05-17 fl Support the "pilbitmap" booster patch +# 97-06-05 fl Added file= and data= argument to image constructors +# 98-03-09 fl Added width and height methods to Image classes +# 98-07-02 fl Use default mode for "P" images without palette attribute +# 98-07-02 fl Explicitly destroy Tkinter image objects +# 99-07-24 fl Support multiple Tk interpreters (from Greg Couch) +# 99-07-26 fl Automatically hook into Tkinter (if possible) +# 99-08-15 fl Hook uses _imagingtk instead of _imaging +# +# Copyright (c) 1997-1999 by Secret Labs AB +# Copyright (c) 1996-1997 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# +from __future__ import annotations + +import tkinter +from io import BytesIO +from typing import Any + +from . import Image, ImageFile + +TYPE_CHECKING = False +if TYPE_CHECKING: + from ._typing import CapsuleType + +# -------------------------------------------------------------------- +# Check for Tkinter interface hooks + + +def _get_image_from_kw(kw: dict[str, Any]) -> ImageFile.ImageFile | None: + source = None + if "file" in kw: + source = kw.pop("file") + elif "data" in kw: + source = BytesIO(kw.pop("data")) + if not source: + return None + return Image.open(source) + + +def _pyimagingtkcall( + command: str, photo: PhotoImage | tkinter.PhotoImage, ptr: CapsuleType +) -> None: + tk = photo.tk + try: + tk.call(command, photo, repr(ptr)) + except tkinter.TclError: + # activate Tkinter hook + # may raise an error if it cannot attach to Tkinter + from . import _imagingtk + + _imagingtk.tkinit(tk.interpaddr()) + tk.call(command, photo, repr(ptr)) + + +# -------------------------------------------------------------------- +# PhotoImage + + +class PhotoImage: + """ + A Tkinter-compatible photo image. This can be used + everywhere Tkinter expects an image object. If the image is an RGBA + image, pixels having alpha 0 are treated as transparent. + + The constructor takes either a PIL image, or a mode and a size. + Alternatively, you can use the ``file`` or ``data`` options to initialize + the photo image object. + + :param image: Either a PIL image, or a mode string. If a mode string is + used, a size must also be given. + :param size: If the first argument is a mode string, this defines the size + of the image. + :keyword file: A filename to load the image from (using + ``Image.open(file)``). + :keyword data: An 8-bit string containing image data (as loaded from an + image file). + """ + + def __init__( + self, + image: Image.Image | str | None = None, + size: tuple[int, int] | None = None, + **kw: Any, + ) -> None: + # Tk compatibility: file or data + if image is None: + image = _get_image_from_kw(kw) + + if image is None: + msg = "Image is required" + raise ValueError(msg) + elif isinstance(image, str): + mode = image + image = None + + if size is None: + msg = "If first argument is mode, size is required" + raise ValueError(msg) + else: + # got an image instead of a mode + mode = image.mode + if mode == "P": + # palette mapped data + image.apply_transparency() + image.load() + mode = image.palette.mode if image.palette else "RGB" + size = image.size + kw["width"], kw["height"] = size + + if mode not in ["1", "L", "RGB", "RGBA"]: + mode = Image.getmodebase(mode) + + self.__mode = mode + self.__size = size + self.__photo = tkinter.PhotoImage(**kw) + self.tk = self.__photo.tk + if image: + self.paste(image) + + def __del__(self) -> None: + try: + name = self.__photo.name + except AttributeError: + return + self.__photo.name = None + try: + self.__photo.tk.call("image", "delete", name) + except Exception: + pass # ignore internal errors + + def __str__(self) -> str: + """ + Get the Tkinter photo image identifier. This method is automatically + called by Tkinter whenever a PhotoImage object is passed to a Tkinter + method. + + :return: A Tkinter photo image identifier (a string). + """ + return str(self.__photo) + + def width(self) -> int: + """ + Get the width of the image. + + :return: The width, in pixels. + """ + return self.__size[0] + + def height(self) -> int: + """ + Get the height of the image. + + :return: The height, in pixels. + """ + return self.__size[1] + + def paste(self, im: Image.Image) -> None: + """ + Paste a PIL image into the photo image. Note that this can + be very slow if the photo image is displayed. + + :param im: A PIL image. The size must match the target region. If the + mode does not match, the image is converted to the mode of + the bitmap image. + """ + # convert to blittable + ptr = im.getim() + image = im.im + if not image.isblock() or im.mode != self.__mode: + block = Image.core.new_block(self.__mode, im.size) + image.convert2(block, image) # convert directly between buffers + ptr = block.ptr + + _pyimagingtkcall("PyImagingPhoto", self.__photo, ptr) + + +# -------------------------------------------------------------------- +# BitmapImage + + +class BitmapImage: + """ + A Tkinter-compatible bitmap image. This can be used everywhere Tkinter + expects an image object. + + The given image must have mode "1". Pixels having value 0 are treated as + transparent. Options, if any, are passed on to Tkinter. The most commonly + used option is ``foreground``, which is used to specify the color for the + non-transparent parts. See the Tkinter documentation for information on + how to specify colours. + + :param image: A PIL image. + """ + + def __init__(self, image: Image.Image | None = None, **kw: Any) -> None: + # Tk compatibility: file or data + if image is None: + image = _get_image_from_kw(kw) + + if image is None: + msg = "Image is required" + raise ValueError(msg) + self.__mode = image.mode + self.__size = image.size + + self.__photo = tkinter.BitmapImage(data=image.tobitmap(), **kw) + + def __del__(self) -> None: + try: + name = self.__photo.name + except AttributeError: + return + self.__photo.name = None + try: + self.__photo.tk.call("image", "delete", name) + except Exception: + pass # ignore internal errors + + def width(self) -> int: + """ + Get the width of the image. + + :return: The width, in pixels. + """ + return self.__size[0] + + def height(self) -> int: + """ + Get the height of the image. + + :return: The height, in pixels. + """ + return self.__size[1] + + def __str__(self) -> str: + """ + Get the Tkinter bitmap image identifier. This method is automatically + called by Tkinter whenever a BitmapImage object is passed to a Tkinter + method. + + :return: A Tkinter bitmap image identifier (a string). + """ + return str(self.__photo) + + +def getimage(photo: PhotoImage) -> Image.Image: + """Copies the contents of a PhotoImage to a PIL image memory.""" + im = Image.new("RGBA", (photo.width(), photo.height())) + + _pyimagingtkcall("PyImagingPhotoGet", photo, im.getim()) + + return im diff --git a/venv/lib/python3.11/site-packages/PIL/ImageWin.py b/venv/lib/python3.11/site-packages/PIL/ImageWin.py new file mode 100644 index 0000000..98c28f2 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/ImageWin.py @@ -0,0 +1,247 @@ +# +# The Python Imaging Library. +# $Id$ +# +# a Windows DIB display interface +# +# History: +# 1996-05-20 fl Created +# 1996-09-20 fl Fixed subregion exposure +# 1997-09-21 fl Added draw primitive (for tzPrint) +# 2003-05-21 fl Added experimental Window/ImageWindow classes +# 2003-09-05 fl Added fromstring/tostring methods +# +# Copyright (c) Secret Labs AB 1997-2003. +# Copyright (c) Fredrik Lundh 1996-2003. +# +# See the README file for information on usage and redistribution. +# +from __future__ import annotations + +from . import Image + + +class HDC: + """ + Wraps an HDC integer. The resulting object can be passed to the + :py:meth:`~PIL.ImageWin.Dib.draw` and :py:meth:`~PIL.ImageWin.Dib.expose` + methods. + """ + + def __init__(self, dc: int) -> None: + self.dc = dc + + def __int__(self) -> int: + return self.dc + + +class HWND: + """ + Wraps an HWND integer. The resulting object can be passed to the + :py:meth:`~PIL.ImageWin.Dib.draw` and :py:meth:`~PIL.ImageWin.Dib.expose` + methods, instead of a DC. + """ + + def __init__(self, wnd: int) -> None: + self.wnd = wnd + + def __int__(self) -> int: + return self.wnd + + +class Dib: + """ + A Windows bitmap with the given mode and size. The mode can be one of "1", + "L", "P", or "RGB". + + If the display requires a palette, this constructor creates a suitable + palette and associates it with the image. For an "L" image, 128 graylevels + are allocated. For an "RGB" image, a 6x6x6 colour cube is used, together + with 20 graylevels. + + To make sure that palettes work properly under Windows, you must call the + ``palette`` method upon certain events from Windows. + + :param image: Either a PIL image, or a mode string. If a mode string is + used, a size must also be given. The mode can be one of "1", + "L", "P", or "RGB". + :param size: If the first argument is a mode string, this + defines the size of the image. + """ + + def __init__( + self, image: Image.Image | str, size: tuple[int, int] | None = None + ) -> None: + if isinstance(image, str): + mode = image + image = "" + if size is None: + msg = "If first argument is mode, size is required" + raise ValueError(msg) + else: + mode = image.mode + size = image.size + if mode not in ["1", "L", "P", "RGB"]: + mode = Image.getmodebase(mode) + self.image = Image.core.display(mode, size) + self.mode = mode + self.size = size + if image: + assert not isinstance(image, str) + self.paste(image) + + def expose(self, handle: int | HDC | HWND) -> None: + """ + Copy the bitmap contents to a device context. + + :param handle: Device context (HDC), cast to a Python integer, or an + HDC or HWND instance. In PythonWin, you can use + ``CDC.GetHandleAttrib()`` to get a suitable handle. + """ + handle_int = int(handle) + if isinstance(handle, HWND): + dc = self.image.getdc(handle_int) + try: + self.image.expose(dc) + finally: + self.image.releasedc(handle_int, dc) + else: + self.image.expose(handle_int) + + def draw( + self, + handle: int | HDC | HWND, + dst: tuple[int, int, int, int], + src: tuple[int, int, int, int] | None = None, + ) -> None: + """ + Same as expose, but allows you to specify where to draw the image, and + what part of it to draw. + + The destination and source areas are given as 4-tuple rectangles. If + the source is omitted, the entire image is copied. If the source and + the destination have different sizes, the image is resized as + necessary. + """ + if src is None: + src = (0, 0) + self.size + handle_int = int(handle) + if isinstance(handle, HWND): + dc = self.image.getdc(handle_int) + try: + self.image.draw(dc, dst, src) + finally: + self.image.releasedc(handle_int, dc) + else: + self.image.draw(handle_int, dst, src) + + def query_palette(self, handle: int | HDC | HWND) -> int: + """ + Installs the palette associated with the image in the given device + context. + + This method should be called upon **QUERYNEWPALETTE** and + **PALETTECHANGED** events from Windows. If this method returns a + non-zero value, one or more display palette entries were changed, and + the image should be redrawn. + + :param handle: Device context (HDC), cast to a Python integer, or an + HDC or HWND instance. + :return: The number of entries that were changed (if one or more entries, + this indicates that the image should be redrawn). + """ + handle_int = int(handle) + if isinstance(handle, HWND): + handle = self.image.getdc(handle_int) + try: + result = self.image.query_palette(handle) + finally: + self.image.releasedc(handle, handle) + else: + result = self.image.query_palette(handle_int) + return result + + def paste( + self, im: Image.Image, box: tuple[int, int, int, int] | None = None + ) -> None: + """ + Paste a PIL image into the bitmap image. + + :param im: A PIL image. The size must match the target region. + If the mode does not match, the image is converted to the + mode of the bitmap image. + :param box: A 4-tuple defining the left, upper, right, and + lower pixel coordinate. See :ref:`coordinate-system`. If + None is given instead of a tuple, all of the image is + assumed. + """ + im.load() + if self.mode != im.mode: + im = im.convert(self.mode) + if box: + self.image.paste(im.im, box) + else: + self.image.paste(im.im) + + def frombytes(self, buffer: bytes) -> None: + """ + Load display memory contents from byte data. + + :param buffer: A buffer containing display data (usually + data returned from :py:func:`~PIL.ImageWin.Dib.tobytes`) + """ + self.image.frombytes(buffer) + + def tobytes(self) -> bytes: + """ + Copy display memory contents to bytes object. + + :return: A bytes object containing display data. + """ + return self.image.tobytes() + + +class Window: + """Create a Window with the given title size.""" + + def __init__( + self, title: str = "PIL", width: int | None = None, height: int | None = None + ) -> None: + self.hwnd = Image.core.createwindow( + title, self.__dispatcher, width or 0, height or 0 + ) + + def __dispatcher(self, action: str, *args: int) -> None: + getattr(self, f"ui_handle_{action}")(*args) + + def ui_handle_clear(self, dc: int, x0: int, y0: int, x1: int, y1: int) -> None: + pass + + def ui_handle_damage(self, x0: int, y0: int, x1: int, y1: int) -> None: + pass + + def ui_handle_destroy(self) -> None: + pass + + def ui_handle_repair(self, dc: int, x0: int, y0: int, x1: int, y1: int) -> None: + pass + + def ui_handle_resize(self, width: int, height: int) -> None: + pass + + def mainloop(self) -> None: + Image.core.eventloop() + + +class ImageWindow(Window): + """Create an image window which displays the given image.""" + + def __init__(self, image: Image.Image | Dib, title: str = "PIL") -> None: + if not isinstance(image, Dib): + image = Dib(image) + self.image = image + width, height = image.size + super().__init__(title, width=width, height=height) + + def ui_handle_repair(self, dc: int, x0: int, y0: int, x1: int, y1: int) -> None: + self.image.draw(dc, (x0, y0, x1, y1)) diff --git a/venv/lib/python3.11/site-packages/PIL/PSDraw.py b/venv/lib/python3.11/site-packages/PIL/PSDraw.py new file mode 100644 index 0000000..7fd4c5c --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/PSDraw.py @@ -0,0 +1,237 @@ +# +# The Python Imaging Library +# $Id$ +# +# Simple PostScript graphics interface +# +# History: +# 1996-04-20 fl Created +# 1999-01-10 fl Added gsave/grestore to image method +# 2005-05-04 fl Fixed floating point issue in image (from Eric Etheridge) +# +# Copyright (c) 1997-2005 by Secret Labs AB. All rights reserved. +# Copyright (c) 1996 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# +from __future__ import annotations + +import sys +from typing import IO + +from . import EpsImagePlugin + +TYPE_CHECKING = False + + +## +# Simple PostScript graphics interface. + + +class PSDraw: + """ + Sets up printing to the given file. If ``fp`` is omitted, + ``sys.stdout.buffer`` is assumed. + """ + + def __init__(self, fp: IO[bytes] | None = None) -> None: + if not fp: + fp = sys.stdout.buffer + self.fp = fp + + def begin_document(self, id: str | None = None) -> None: + """Set up printing of a document. (Write PostScript DSC header.)""" + # FIXME: incomplete + self.fp.write( + b"%!PS-Adobe-3.0\n" + b"save\n" + b"/showpage { } def\n" + b"%%EndComments\n" + b"%%BeginDocument\n" + ) + # self.fp.write(ERROR_PS) # debugging! + self.fp.write(EDROFF_PS) + self.fp.write(VDI_PS) + self.fp.write(b"%%EndProlog\n") + self.isofont: dict[bytes, int] = {} + + def end_document(self) -> None: + """Ends printing. (Write PostScript DSC footer.)""" + self.fp.write(b"%%EndDocument\nrestore showpage\n%%End\n") + if hasattr(self.fp, "flush"): + self.fp.flush() + + def setfont(self, font: str, size: int) -> None: + """ + Selects which font to use. + + :param font: A PostScript font name + :param size: Size in points. + """ + font_bytes = bytes(font, "UTF-8") + if font_bytes not in self.isofont: + # reencode font + self.fp.write( + b"/PSDraw-%s ISOLatin1Encoding /%s E\n" % (font_bytes, font_bytes) + ) + self.isofont[font_bytes] = 1 + # rough + self.fp.write(b"/F0 %d /PSDraw-%s F\n" % (size, font_bytes)) + + def line(self, xy0: tuple[int, int], xy1: tuple[int, int]) -> None: + """ + Draws a line between the two points. Coordinates are given in + PostScript point coordinates (72 points per inch, (0, 0) is the lower + left corner of the page). + """ + self.fp.write(b"%d %d %d %d Vl\n" % (*xy0, *xy1)) + + def rectangle(self, box: tuple[int, int, int, int]) -> None: + """ + Draws a rectangle. + + :param box: A tuple of four integers, specifying left, bottom, width and + height. + """ + self.fp.write(b"%d %d M 0 %d %d Vr\n" % box) + + def text(self, xy: tuple[int, int], text: str) -> None: + """ + Draws text at the given position. You must use + :py:meth:`~PIL.PSDraw.PSDraw.setfont` before calling this method. + """ + text_bytes = bytes(text, "UTF-8") + text_bytes = b"\\(".join(text_bytes.split(b"(")) + text_bytes = b"\\)".join(text_bytes.split(b")")) + self.fp.write(b"%d %d M (%s) S\n" % (xy + (text_bytes,))) + + if TYPE_CHECKING: + from . import Image + + def image( + self, box: tuple[int, int, int, int], im: Image.Image, dpi: int | None = None + ) -> None: + """Draw a PIL image, centered in the given box.""" + # default resolution depends on mode + if not dpi: + if im.mode == "1": + dpi = 200 # fax + else: + dpi = 100 # grayscale + # image size (on paper) + x = im.size[0] * 72 / dpi + y = im.size[1] * 72 / dpi + # max allowed size + xmax = float(box[2] - box[0]) + ymax = float(box[3] - box[1]) + if x > xmax: + y = y * xmax / x + x = xmax + if y > ymax: + x = x * ymax / y + y = ymax + dx = (xmax - x) / 2 + box[0] + dy = (ymax - y) / 2 + box[1] + self.fp.write(b"gsave\n%f %f translate\n" % (dx, dy)) + if (x, y) != im.size: + # EpsImagePlugin._save prints the image at (0,0,xsize,ysize) + sx = x / im.size[0] + sy = y / im.size[1] + self.fp.write(b"%f %f scale\n" % (sx, sy)) + EpsImagePlugin._save(im, self.fp, "", 0) + self.fp.write(b"\ngrestore\n") + + +# -------------------------------------------------------------------- +# PostScript driver + +# +# EDROFF.PS -- PostScript driver for Edroff 2 +# +# History: +# 94-01-25 fl: created (edroff 2.04) +# +# Copyright (c) Fredrik Lundh 1994. +# + + +EDROFF_PS = b"""\ +/S { show } bind def +/P { moveto show } bind def +/M { moveto } bind def +/X { 0 rmoveto } bind def +/Y { 0 exch rmoveto } bind def +/E { findfont + dup maxlength dict begin + { + 1 index /FID ne { def } { pop pop } ifelse + } forall + /Encoding exch def + dup /FontName exch def + currentdict end definefont pop +} bind def +/F { findfont exch scalefont dup setfont + [ exch /setfont cvx ] cvx bind def +} bind def +""" + +# +# VDI.PS -- PostScript driver for VDI meta commands +# +# History: +# 94-01-25 fl: created (edroff 2.04) +# +# Copyright (c) Fredrik Lundh 1994. +# + +VDI_PS = b"""\ +/Vm { moveto } bind def +/Va { newpath arcn stroke } bind def +/Vl { moveto lineto stroke } bind def +/Vc { newpath 0 360 arc closepath } bind def +/Vr { exch dup 0 rlineto + exch dup 0 exch rlineto + exch neg 0 rlineto + 0 exch neg rlineto + setgray fill } bind def +/Tm matrix def +/Ve { Tm currentmatrix pop + translate scale newpath 0 0 .5 0 360 arc closepath + Tm setmatrix +} bind def +/Vf { currentgray exch setgray fill setgray } bind def +""" + +# +# ERROR.PS -- Error handler +# +# History: +# 89-11-21 fl: created (pslist 1.10) +# + +ERROR_PS = b"""\ +/landscape false def +/errorBUF 200 string def +/errorNL { currentpoint 10 sub exch pop 72 exch moveto } def +errordict begin /handleerror { + initmatrix /Courier findfont 10 scalefont setfont + newpath 72 720 moveto $error begin /newerror false def + (PostScript Error) show errorNL errorNL + (Error: ) show + /errorname load errorBUF cvs show errorNL errorNL + (Command: ) show + /command load dup type /stringtype ne { errorBUF cvs } if show + errorNL errorNL + (VMstatus: ) show + vmstatus errorBUF cvs show ( bytes available, ) show + errorBUF cvs show ( bytes used at level ) show + errorBUF cvs show errorNL errorNL + (Operand stargck: ) show errorNL /ostargck load { + dup type /stringtype ne { errorBUF cvs } if 72 0 rmoveto show errorNL + } forall errorNL + (Execution stargck: ) show errorNL /estargck load { + dup type /stringtype ne { errorBUF cvs } if 72 0 rmoveto show errorNL + } forall + end showpage +} def end +""" diff --git a/venv/lib/python3.11/site-packages/PIL/PdfParser.py b/venv/lib/python3.11/site-packages/PIL/PdfParser.py new file mode 100644 index 0000000..2c90314 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/PdfParser.py @@ -0,0 +1,1075 @@ +from __future__ import annotations + +import calendar +import codecs +import collections +import mmap +import os +import re +import time +import zlib +from typing import Any, NamedTuple + +TYPE_CHECKING = False +if TYPE_CHECKING: + from typing import IO + + _DictBase = collections.UserDict[str | bytes, Any] +else: + _DictBase = collections.UserDict + + +# see 7.9.2.2 Text String Type on page 86 and D.3 PDFDocEncoding Character Set +# on page 656 +def encode_text(s: str) -> bytes: + return codecs.BOM_UTF16_BE + s.encode("utf_16_be") + + +PDFDocEncoding = { + 0x16: "\u0017", + 0x18: "\u02d8", + 0x19: "\u02c7", + 0x1A: "\u02c6", + 0x1B: "\u02d9", + 0x1C: "\u02dd", + 0x1D: "\u02db", + 0x1E: "\u02da", + 0x1F: "\u02dc", + 0x80: "\u2022", + 0x81: "\u2020", + 0x82: "\u2021", + 0x83: "\u2026", + 0x84: "\u2014", + 0x85: "\u2013", + 0x86: "\u0192", + 0x87: "\u2044", + 0x88: "\u2039", + 0x89: "\u203a", + 0x8A: "\u2212", + 0x8B: "\u2030", + 0x8C: "\u201e", + 0x8D: "\u201c", + 0x8E: "\u201d", + 0x8F: "\u2018", + 0x90: "\u2019", + 0x91: "\u201a", + 0x92: "\u2122", + 0x93: "\ufb01", + 0x94: "\ufb02", + 0x95: "\u0141", + 0x96: "\u0152", + 0x97: "\u0160", + 0x98: "\u0178", + 0x99: "\u017d", + 0x9A: "\u0131", + 0x9B: "\u0142", + 0x9C: "\u0153", + 0x9D: "\u0161", + 0x9E: "\u017e", + 0xA0: "\u20ac", +} + + +def decode_text(b: bytes) -> str: + if b[: len(codecs.BOM_UTF16_BE)] == codecs.BOM_UTF16_BE: + return b[len(codecs.BOM_UTF16_BE) :].decode("utf_16_be") + else: + return "".join(PDFDocEncoding.get(byte, chr(byte)) for byte in b) + + +class PdfFormatError(RuntimeError): + """An error that probably indicates a syntactic or semantic error in the + PDF file structure""" + + pass + + +def check_format_condition(condition: bool, error_message: str) -> None: + if not condition: + raise PdfFormatError(error_message) + + +class IndirectReferenceTuple(NamedTuple): + object_id: int + generation: int + + +class IndirectReference(IndirectReferenceTuple): + def __str__(self) -> str: + return f"{self.object_id} {self.generation} R" + + def __bytes__(self) -> bytes: + return self.__str__().encode("us-ascii") + + def __eq__(self, other: object) -> bool: + if self.__class__ is not other.__class__: + return False + assert isinstance(other, IndirectReference) + return other.object_id == self.object_id and other.generation == self.generation + + def __ne__(self, other: object) -> bool: + return not (self == other) + + def __hash__(self) -> int: + return hash((self.object_id, self.generation)) + + +class IndirectObjectDef(IndirectReference): + def __str__(self) -> str: + return f"{self.object_id} {self.generation} obj" + + +class XrefTable: + def __init__(self) -> None: + self.existing_entries: dict[int, tuple[int, int]] = ( + {} + ) # object ID => (offset, generation) + self.new_entries: dict[int, tuple[int, int]] = ( + {} + ) # object ID => (offset, generation) + self.deleted_entries = {0: 65536} # object ID => generation + self.reading_finished = False + + def __setitem__(self, key: int, value: tuple[int, int]) -> None: + if self.reading_finished: + self.new_entries[key] = value + else: + self.existing_entries[key] = value + if key in self.deleted_entries: + del self.deleted_entries[key] + + def __getitem__(self, key: int) -> tuple[int, int]: + try: + return self.new_entries[key] + except KeyError: + return self.existing_entries[key] + + def __delitem__(self, key: int) -> None: + if key in self.new_entries: + generation = self.new_entries[key][1] + 1 + del self.new_entries[key] + self.deleted_entries[key] = generation + elif key in self.existing_entries: + generation = self.existing_entries[key][1] + 1 + self.deleted_entries[key] = generation + elif key in self.deleted_entries: + generation = self.deleted_entries[key] + else: + msg = f"object ID {key} cannot be deleted because it doesn't exist" + raise IndexError(msg) + + def __contains__(self, key: int) -> bool: + return key in self.existing_entries or key in self.new_entries + + def __len__(self) -> int: + return len( + set(self.existing_entries.keys()) + | set(self.new_entries.keys()) + | set(self.deleted_entries.keys()) + ) + + def keys(self) -> set[int]: + return ( + set(self.existing_entries.keys()) - set(self.deleted_entries.keys()) + ) | set(self.new_entries.keys()) + + def write(self, f: IO[bytes]) -> int: + keys = sorted(set(self.new_entries.keys()) | set(self.deleted_entries.keys())) + deleted_keys = sorted(set(self.deleted_entries.keys())) + startxref = f.tell() + f.write(b"xref\n") + while keys: + # find a contiguous sequence of object IDs + prev: int | None = None + for index, key in enumerate(keys): + if prev is None or prev + 1 == key: + prev = key + else: + contiguous_keys = keys[:index] + keys = keys[index:] + break + else: + contiguous_keys = keys + keys = [] + f.write(b"%d %d\n" % (contiguous_keys[0], len(contiguous_keys))) + for object_id in contiguous_keys: + if object_id in self.new_entries: + f.write(b"%010d %05d n \n" % self.new_entries[object_id]) + else: + this_deleted_object_id = deleted_keys.pop(0) + check_format_condition( + object_id == this_deleted_object_id, + f"expected the next deleted object ID to be {object_id}, " + f"instead found {this_deleted_object_id}", + ) + try: + next_in_linked_list = deleted_keys[0] + except IndexError: + next_in_linked_list = 0 + f.write( + b"%010d %05d f \n" + % (next_in_linked_list, self.deleted_entries[object_id]) + ) + return startxref + + +class PdfName: + name: bytes + + def __init__(self, name: PdfName | bytes | str) -> None: + if isinstance(name, PdfName): + self.name = name.name + elif isinstance(name, bytes): + self.name = name + else: + self.name = name.encode("us-ascii") + + def name_as_str(self) -> str: + return self.name.decode("us-ascii") + + def __eq__(self, other: object) -> bool: + return ( + isinstance(other, PdfName) and other.name == self.name + ) or other == self.name + + def __hash__(self) -> int: + return hash(self.name) + + def __repr__(self) -> str: + return f"{self.__class__.__name__}({repr(self.name)})" + + @classmethod + def from_pdf_stream(cls, data: bytes) -> PdfName: + return cls(PdfParser.interpret_name(data)) + + allowed_chars = set(range(33, 127)) - {ord(c) for c in "#%/()<>[]{}"} + + def __bytes__(self) -> bytes: + result = bytearray(b"/") + for b in self.name: + if b in self.allowed_chars: + result.append(b) + else: + result.extend(b"#%02X" % b) + return bytes(result) + + +class PdfArray(list[Any]): + def __bytes__(self) -> bytes: + return b"[ " + b" ".join(pdf_repr(x) for x in self) + b" ]" + + +class PdfDict(_DictBase): + def __setattr__(self, key: str, value: Any) -> None: + if key == "data": + collections.UserDict.__setattr__(self, key, value) + else: + self[key.encode("us-ascii")] = value + + def __getattr__(self, key: str) -> str | time.struct_time: + try: + value = self[key.encode("us-ascii")] + except KeyError as e: + raise AttributeError(key) from e + if isinstance(value, bytes): + value = decode_text(value) + if key.endswith("Date"): + if value.startswith("D:"): + value = value[2:] + + relationship = "Z" + if len(value) > 17: + relationship = value[14] + offset = int(value[15:17]) * 60 + if len(value) > 20: + offset += int(value[18:20]) + + format = "%Y%m%d%H%M%S"[: len(value) - 2] + value = time.strptime(value[: len(format) + 2], format) + if relationship in ["+", "-"]: + offset *= 60 + if relationship == "+": + offset *= -1 + value = time.gmtime(calendar.timegm(value) + offset) + return value + + def __bytes__(self) -> bytes: + out = bytearray(b"<<") + for key, value in self.items(): + if value is None: + continue + value = pdf_repr(value) + out.extend(b"\n") + out.extend(bytes(PdfName(key))) + out.extend(b" ") + out.extend(value) + out.extend(b"\n>>") + return bytes(out) + + +class PdfBinary: + def __init__(self, data: list[int] | bytes) -> None: + self.data = data + + def __bytes__(self) -> bytes: + return b"<%s>" % b"".join(b"%02X" % b for b in self.data) + + +class PdfStream: + def __init__(self, dictionary: PdfDict, buf: bytes) -> None: + self.dictionary = dictionary + self.buf = buf + + def decode(self) -> bytes: + try: + filter = self.dictionary[b"Filter"] + except KeyError: + return self.buf + if filter == b"FlateDecode": + try: + expected_length = self.dictionary[b"DL"] + except KeyError: + expected_length = self.dictionary[b"Length"] + return zlib.decompress(self.buf, bufsize=int(expected_length)) + else: + msg = f"stream filter {repr(filter)} unknown/unsupported" + raise NotImplementedError(msg) + + +def pdf_repr(x: Any) -> bytes: + if x is True: + return b"true" + elif x is False: + return b"false" + elif x is None: + return b"null" + elif isinstance(x, (PdfName, PdfDict, PdfArray, PdfBinary)): + return bytes(x) + elif isinstance(x, (int, float)): + return str(x).encode("us-ascii") + elif isinstance(x, time.struct_time): + return b"(D:" + time.strftime("%Y%m%d%H%M%SZ", x).encode("us-ascii") + b")" + elif isinstance(x, dict): + return bytes(PdfDict(x)) + elif isinstance(x, list): + return bytes(PdfArray(x)) + elif isinstance(x, str): + return pdf_repr(encode_text(x)) + elif isinstance(x, bytes): + # XXX escape more chars? handle binary garbage + x = x.replace(b"\\", b"\\\\") + x = x.replace(b"(", b"\\(") + x = x.replace(b")", b"\\)") + return b"(" + x + b")" + else: + return bytes(x) + + +class PdfParser: + """Based on + https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/PDF32000_2008.pdf + Supports PDF up to 1.4 + """ + + def __init__( + self, + filename: str | None = None, + f: IO[bytes] | None = None, + buf: bytes | bytearray | None = None, + start_offset: int = 0, + mode: str = "rb", + ) -> None: + if buf and f: + msg = "specify buf or f or filename, but not both buf and f" + raise RuntimeError(msg) + self.filename = filename + self.buf: bytes | bytearray | mmap.mmap | None = buf + self.f = f + self.start_offset = start_offset + self.should_close_buf = False + self.should_close_file = False + if filename is not None and f is None: + self.f = f = open(filename, mode) + self.should_close_file = True + if f is not None: + self.buf = self.get_buf_from_file(f) + self.should_close_buf = True + if not filename and hasattr(f, "name"): + self.filename = f.name + self.cached_objects: dict[IndirectReference, Any] = {} + self.root_ref: IndirectReference | None + self.info_ref: IndirectReference | None + self.pages_ref: IndirectReference | None + self.last_xref_section_offset: int | None + if self.buf: + self.read_pdf_info() + else: + self.file_size_total = self.file_size_this = 0 + self.root = PdfDict() + self.root_ref = None + self.info = PdfDict() + self.info_ref = None + self.page_tree_root = PdfDict() + self.pages: list[IndirectReference] = [] + self.orig_pages: list[IndirectReference] = [] + self.pages_ref = None + self.last_xref_section_offset = None + self.trailer_dict: dict[bytes, Any] = {} + self.xref_table = XrefTable() + self.xref_table.reading_finished = True + if f: + self.seek_end() + + def __enter__(self) -> PdfParser: + return self + + def __exit__(self, *args: object) -> None: + self.close() + + def start_writing(self) -> None: + self.close_buf() + self.seek_end() + + def close_buf(self) -> None: + if isinstance(self.buf, mmap.mmap): + self.buf.close() + self.buf = None + + def close(self) -> None: + if self.should_close_buf: + self.close_buf() + if self.f is not None and self.should_close_file: + self.f.close() + self.f = None + + def seek_end(self) -> None: + assert self.f is not None + self.f.seek(0, os.SEEK_END) + + def write_header(self) -> None: + assert self.f is not None + self.f.write(b"%PDF-1.4\n") + + def write_comment(self, s: str) -> None: + assert self.f is not None + self.f.write(f"% {s}\n".encode()) + + def write_catalog(self) -> IndirectReference: + assert self.f is not None + self.del_root() + self.root_ref = self.next_object_id(self.f.tell()) + self.pages_ref = self.next_object_id(0) + self.rewrite_pages() + self.write_obj(self.root_ref, Type=PdfName(b"Catalog"), Pages=self.pages_ref) + self.write_obj( + self.pages_ref, + Type=PdfName(b"Pages"), + Count=len(self.pages), + Kids=self.pages, + ) + return self.root_ref + + def rewrite_pages(self) -> None: + pages_tree_nodes_to_delete = [] + for i, page_ref in enumerate(self.orig_pages): + page_info = self.cached_objects[page_ref] + del self.xref_table[page_ref.object_id] + pages_tree_nodes_to_delete.append(page_info[PdfName(b"Parent")]) + if page_ref not in self.pages: + # the page has been deleted + continue + # make dict keys into strings for passing to write_page + stringified_page_info = {} + for key, value in page_info.items(): + # key should be a PdfName + stringified_page_info[key.name_as_str()] = value + stringified_page_info["Parent"] = self.pages_ref + new_page_ref = self.write_page(None, **stringified_page_info) + for j, cur_page_ref in enumerate(self.pages): + if cur_page_ref == page_ref: + # replace the page reference with the new one + self.pages[j] = new_page_ref + # delete redundant Pages tree nodes from xref table + for pages_tree_node_ref in pages_tree_nodes_to_delete: + while pages_tree_node_ref: + pages_tree_node = self.cached_objects[pages_tree_node_ref] + if pages_tree_node_ref.object_id in self.xref_table: + del self.xref_table[pages_tree_node_ref.object_id] + pages_tree_node_ref = pages_tree_node.get(b"Parent", None) + self.orig_pages = [] + + def write_xref_and_trailer( + self, new_root_ref: IndirectReference | None = None + ) -> None: + assert self.f is not None + if new_root_ref: + self.del_root() + self.root_ref = new_root_ref + if self.info: + self.info_ref = self.write_obj(None, self.info) + start_xref = self.xref_table.write(self.f) + num_entries = len(self.xref_table) + trailer_dict: dict[str | bytes, Any] = { + b"Root": self.root_ref, + b"Size": num_entries, + } + if self.last_xref_section_offset is not None: + trailer_dict[b"Prev"] = self.last_xref_section_offset + if self.info: + trailer_dict[b"Info"] = self.info_ref + self.last_xref_section_offset = start_xref + self.f.write( + b"trailer\n" + + bytes(PdfDict(trailer_dict)) + + b"\nstartxref\n%d\n%%%%EOF" % start_xref + ) + + def write_page( + self, ref: int | IndirectReference | None, *objs: Any, **dict_obj: Any + ) -> IndirectReference: + obj_ref = self.pages[ref] if isinstance(ref, int) else ref + if "Type" not in dict_obj: + dict_obj["Type"] = PdfName(b"Page") + if "Parent" not in dict_obj: + dict_obj["Parent"] = self.pages_ref + return self.write_obj(obj_ref, *objs, **dict_obj) + + def write_obj( + self, ref: IndirectReference | None, *objs: Any, **dict_obj: Any + ) -> IndirectReference: + assert self.f is not None + f = self.f + if ref is None: + ref = self.next_object_id(f.tell()) + else: + self.xref_table[ref.object_id] = (f.tell(), ref.generation) + f.write(bytes(IndirectObjectDef(*ref))) + stream = dict_obj.pop("stream", None) + if stream is not None: + dict_obj["Length"] = len(stream) + if dict_obj: + f.write(pdf_repr(dict_obj)) + for obj in objs: + f.write(pdf_repr(obj)) + if stream is not None: + f.write(b"stream\n") + f.write(stream) + f.write(b"\nendstream\n") + f.write(b"endobj\n") + return ref + + def del_root(self) -> None: + if self.root_ref is None: + return + del self.xref_table[self.root_ref.object_id] + del self.xref_table[self.root[b"Pages"].object_id] + + @staticmethod + def get_buf_from_file(f: IO[bytes]) -> bytes | mmap.mmap: + if hasattr(f, "getbuffer"): + return f.getbuffer() + elif hasattr(f, "getvalue"): + return f.getvalue() + else: + try: + return mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) + except ValueError: # cannot mmap an empty file + return b"" + + def read_pdf_info(self) -> None: + assert self.buf is not None + self.file_size_total = len(self.buf) + self.file_size_this = self.file_size_total - self.start_offset + self.read_trailer() + check_format_condition( + self.trailer_dict.get(b"Root") is not None, "Root is missing" + ) + self.root_ref = self.trailer_dict[b"Root"] + assert self.root_ref is not None + self.info_ref = self.trailer_dict.get(b"Info", None) + self.root = PdfDict(self.read_indirect(self.root_ref)) + if self.info_ref is None: + self.info = PdfDict() + else: + self.info = PdfDict(self.read_indirect(self.info_ref)) + check_format_condition(b"Type" in self.root, "/Type missing in Root") + check_format_condition( + self.root[b"Type"] == b"Catalog", "/Type in Root is not /Catalog" + ) + check_format_condition( + self.root.get(b"Pages") is not None, "/Pages missing in Root" + ) + check_format_condition( + isinstance(self.root[b"Pages"], IndirectReference), + "/Pages in Root is not an indirect reference", + ) + self.pages_ref = self.root[b"Pages"] + assert self.pages_ref is not None + self.page_tree_root = self.read_indirect(self.pages_ref) + self.pages = self.linearize_page_tree(self.page_tree_root) + # save the original list of page references + # in case the user modifies, adds or deletes some pages + # and we need to rewrite the pages and their list + self.orig_pages = self.pages[:] + + def next_object_id(self, offset: int | None = None) -> IndirectReference: + try: + # TODO: support reuse of deleted objects + reference = IndirectReference(max(self.xref_table.keys()) + 1, 0) + except ValueError: + reference = IndirectReference(1, 0) + if offset is not None: + self.xref_table[reference.object_id] = (offset, 0) + return reference + + delimiter = rb"[][()<>{}/%]" + delimiter_or_ws = rb"[][()<>{}/%\000\011\012\014\015\040]" + whitespace = rb"[\000\011\012\014\015\040]" + whitespace_or_hex = rb"[\000\011\012\014\015\0400-9a-fA-F]" + whitespace_optional = whitespace + b"*" + whitespace_mandatory = whitespace + b"+" + # No "\012" aka "\n" or "\015" aka "\r": + whitespace_optional_no_nl = rb"[\000\011\014\040]*" + newline_only = rb"[\r\n]+" + newline = whitespace_optional_no_nl + newline_only + whitespace_optional_no_nl + re_trailer_end = re.compile( + whitespace_mandatory + + rb"trailer" + + whitespace_optional + + rb"<<(.*>>)" + + newline + + rb"startxref" + + newline + + rb"([0-9]+)" + + newline + + rb"%%EOF" + + whitespace_optional + + rb"$", + re.DOTALL, + ) + re_trailer_prev = re.compile( + whitespace_optional + + rb"trailer" + + whitespace_optional + + rb"<<(.*?>>)" + + newline + + rb"startxref" + + newline + + rb"([0-9]+)" + + newline + + rb"%%EOF" + + whitespace_optional, + re.DOTALL, + ) + + def read_trailer(self) -> None: + assert self.buf is not None + search_start_offset = len(self.buf) - 16384 + if search_start_offset < self.start_offset: + search_start_offset = self.start_offset + m = self.re_trailer_end.search(self.buf, search_start_offset) + check_format_condition(m is not None, "trailer end not found") + # make sure we found the LAST trailer + last_match = m + while m: + last_match = m + m = self.re_trailer_end.search(self.buf, m.start() + 16) + if not m: + m = last_match + assert m is not None + trailer_data = m.group(1) + self.last_xref_section_offset = int(m.group(2)) + self.trailer_dict = self.interpret_trailer(trailer_data) + self.xref_table = XrefTable() + self.read_xref_table(xref_section_offset=self.last_xref_section_offset) + if b"Prev" in self.trailer_dict: + self.read_prev_trailer(self.trailer_dict[b"Prev"]) + + def read_prev_trailer(self, xref_section_offset: int) -> None: + assert self.buf is not None + trailer_offset = self.read_xref_table(xref_section_offset=xref_section_offset) + m = self.re_trailer_prev.search( + self.buf[trailer_offset : trailer_offset + 16384] + ) + check_format_condition(m is not None, "previous trailer not found") + assert m is not None + trailer_data = m.group(1) + check_format_condition( + int(m.group(2)) == xref_section_offset, + "xref section offset in previous trailer doesn't match what was expected", + ) + trailer_dict = self.interpret_trailer(trailer_data) + if b"Prev" in trailer_dict: + self.read_prev_trailer(trailer_dict[b"Prev"]) + + re_whitespace_optional = re.compile(whitespace_optional) + re_name = re.compile( + whitespace_optional + + rb"/([!-$&'*-.0-;=?-Z\\^-z|~]+)(?=" + + delimiter_or_ws + + rb")" + ) + re_dict_start = re.compile(whitespace_optional + rb"<<") + re_dict_end = re.compile(whitespace_optional + rb">>" + whitespace_optional) + + @classmethod + def interpret_trailer(cls, trailer_data: bytes) -> dict[bytes, Any]: + trailer = {} + offset = 0 + while True: + m = cls.re_name.match(trailer_data, offset) + if not m: + m = cls.re_dict_end.match(trailer_data, offset) + check_format_condition( + m is not None and m.end() == len(trailer_data), + "name not found in trailer, remaining data: " + + repr(trailer_data[offset:]), + ) + break + key = cls.interpret_name(m.group(1)) + assert isinstance(key, bytes) + value, value_offset = cls.get_value(trailer_data, m.end()) + trailer[key] = value + if value_offset is None: + break + offset = value_offset + check_format_condition( + b"Size" in trailer and isinstance(trailer[b"Size"], int), + "/Size not in trailer or not an integer", + ) + check_format_condition( + b"Root" in trailer and isinstance(trailer[b"Root"], IndirectReference), + "/Root not in trailer or not an indirect reference", + ) + return trailer + + re_hashes_in_name = re.compile(rb"([^#]*)(#([0-9a-fA-F]{2}))?") + + @classmethod + def interpret_name(cls, raw: bytes, as_text: bool = False) -> str | bytes: + name = b"" + for m in cls.re_hashes_in_name.finditer(raw): + if m.group(3): + name += m.group(1) + bytearray.fromhex(m.group(3).decode("us-ascii")) + else: + name += m.group(1) + if as_text: + return name.decode("utf-8") + else: + return bytes(name) + + re_null = re.compile(whitespace_optional + rb"null(?=" + delimiter_or_ws + rb")") + re_true = re.compile(whitespace_optional + rb"true(?=" + delimiter_or_ws + rb")") + re_false = re.compile(whitespace_optional + rb"false(?=" + delimiter_or_ws + rb")") + re_int = re.compile( + whitespace_optional + rb"([-+]?[0-9]+)(?=" + delimiter_or_ws + rb")" + ) + re_real = re.compile( + whitespace_optional + + rb"([-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+))(?=" + + delimiter_or_ws + + rb")" + ) + re_array_start = re.compile(whitespace_optional + rb"\[") + re_array_end = re.compile(whitespace_optional + rb"]") + re_string_hex = re.compile( + whitespace_optional + rb"<(" + whitespace_or_hex + rb"*)>" + ) + re_string_lit = re.compile(whitespace_optional + rb"\(") + re_indirect_reference = re.compile( + whitespace_optional + + rb"([-+]?[0-9]+)" + + whitespace_mandatory + + rb"([-+]?[0-9]+)" + + whitespace_mandatory + + rb"R(?=" + + delimiter_or_ws + + rb")" + ) + re_indirect_def_start = re.compile( + whitespace_optional + + rb"([-+]?[0-9]+)" + + whitespace_mandatory + + rb"([-+]?[0-9]+)" + + whitespace_mandatory + + rb"obj(?=" + + delimiter_or_ws + + rb")" + ) + re_indirect_def_end = re.compile( + whitespace_optional + rb"endobj(?=" + delimiter_or_ws + rb")" + ) + re_comment = re.compile( + rb"(" + whitespace_optional + rb"%[^\r\n]*" + newline + rb")*" + ) + re_stream_start = re.compile(whitespace_optional + rb"stream\r?\n") + re_stream_end = re.compile( + whitespace_optional + rb"endstream(?=" + delimiter_or_ws + rb")" + ) + + @classmethod + def get_value( + cls, + data: bytes | bytearray | mmap.mmap, + offset: int, + expect_indirect: IndirectReference | None = None, + max_nesting: int = -1, + ) -> tuple[Any, int | None]: + if max_nesting == 0: + return None, None + m = cls.re_comment.match(data, offset) + if m: + offset = m.end() + m = cls.re_indirect_def_start.match(data, offset) + if m: + check_format_condition( + int(m.group(1)) > 0, + "indirect object definition: object ID must be greater than 0", + ) + check_format_condition( + int(m.group(2)) >= 0, + "indirect object definition: generation must be non-negative", + ) + check_format_condition( + expect_indirect is None + or expect_indirect + == IndirectReference(int(m.group(1)), int(m.group(2))), + "indirect object definition different than expected", + ) + object, object_offset = cls.get_value( + data, m.end(), max_nesting=max_nesting - 1 + ) + if object_offset is None: + return object, None + m = cls.re_indirect_def_end.match(data, object_offset) + check_format_condition( + m is not None, "indirect object definition end not found" + ) + assert m is not None + return object, m.end() + check_format_condition( + not expect_indirect, "indirect object definition not found" + ) + m = cls.re_indirect_reference.match(data, offset) + if m: + check_format_condition( + int(m.group(1)) > 0, + "indirect object reference: object ID must be greater than 0", + ) + check_format_condition( + int(m.group(2)) >= 0, + "indirect object reference: generation must be non-negative", + ) + return IndirectReference(int(m.group(1)), int(m.group(2))), m.end() + m = cls.re_dict_start.match(data, offset) + if m: + offset = m.end() + result: dict[Any, Any] = {} + m = cls.re_dict_end.match(data, offset) + current_offset: int | None = offset + while not m: + assert current_offset is not None + key, current_offset = cls.get_value( + data, current_offset, max_nesting=max_nesting - 1 + ) + if current_offset is None: + return result, None + value, current_offset = cls.get_value( + data, current_offset, max_nesting=max_nesting - 1 + ) + result[key] = value + if current_offset is None: + return result, None + m = cls.re_dict_end.match(data, current_offset) + current_offset = m.end() + m = cls.re_stream_start.match(data, current_offset) + if m: + stream_len = result.get(b"Length") + if stream_len is None or not isinstance(stream_len, int): + msg = f"bad or missing Length in stream dict ({stream_len})" + raise PdfFormatError(msg) + stream_data = data[m.end() : m.end() + stream_len] + m = cls.re_stream_end.match(data, m.end() + stream_len) + check_format_condition(m is not None, "stream end not found") + assert m is not None + current_offset = m.end() + return PdfStream(PdfDict(result), stream_data), current_offset + return PdfDict(result), current_offset + m = cls.re_array_start.match(data, offset) + if m: + offset = m.end() + results = [] + m = cls.re_array_end.match(data, offset) + current_offset = offset + while not m: + assert current_offset is not None + value, current_offset = cls.get_value( + data, current_offset, max_nesting=max_nesting - 1 + ) + results.append(value) + if current_offset is None: + return results, None + m = cls.re_array_end.match(data, current_offset) + return results, m.end() + m = cls.re_null.match(data, offset) + if m: + return None, m.end() + m = cls.re_true.match(data, offset) + if m: + return True, m.end() + m = cls.re_false.match(data, offset) + if m: + return False, m.end() + m = cls.re_name.match(data, offset) + if m: + return PdfName(cls.interpret_name(m.group(1))), m.end() + m = cls.re_int.match(data, offset) + if m: + return int(m.group(1)), m.end() + m = cls.re_real.match(data, offset) + if m: + # XXX Decimal instead of float??? + return float(m.group(1)), m.end() + m = cls.re_string_hex.match(data, offset) + if m: + # filter out whitespace + hex_string = bytearray( + b for b in m.group(1) if b in b"0123456789abcdefABCDEF" + ) + if len(hex_string) % 2 == 1: + # append a 0 if the length is not even - yes, at the end + hex_string.append(ord(b"0")) + return bytearray.fromhex(hex_string.decode("us-ascii")), m.end() + m = cls.re_string_lit.match(data, offset) + if m: + return cls.get_literal_string(data, m.end()) + # return None, offset # fallback (only for debugging) + msg = f"unrecognized object: {repr(data[offset : offset + 32])}" + raise PdfFormatError(msg) + + re_lit_str_token = re.compile( + rb"(\\[nrtbf()\\])|(\\[0-9]{1,3})|(\\(\r\n|\r|\n))|(\r\n|\r|\n)|(\()|(\))" + ) + escaped_chars = { + b"n": b"\n", + b"r": b"\r", + b"t": b"\t", + b"b": b"\b", + b"f": b"\f", + b"(": b"(", + b")": b")", + b"\\": b"\\", + ord(b"n"): b"\n", + ord(b"r"): b"\r", + ord(b"t"): b"\t", + ord(b"b"): b"\b", + ord(b"f"): b"\f", + ord(b"("): b"(", + ord(b")"): b")", + ord(b"\\"): b"\\", + } + + @classmethod + def get_literal_string( + cls, data: bytes | bytearray | mmap.mmap, offset: int + ) -> tuple[bytes, int]: + nesting_depth = 0 + result = bytearray() + for m in cls.re_lit_str_token.finditer(data, offset): + result.extend(data[offset : m.start()]) + if m.group(1): + result.extend(cls.escaped_chars[m.group(1)[1]]) + elif m.group(2): + result.append(int(m.group(2)[1:], 8)) + elif m.group(3): + pass + elif m.group(5): + result.extend(b"\n") + elif m.group(6): + result.extend(b"(") + nesting_depth += 1 + elif m.group(7): + if nesting_depth == 0: + return bytes(result), m.end() + result.extend(b")") + nesting_depth -= 1 + offset = m.end() + msg = "unfinished literal string" + raise PdfFormatError(msg) + + re_xref_section_start = re.compile(whitespace_optional + rb"xref" + newline) + re_xref_subsection_start = re.compile( + whitespace_optional + + rb"([0-9]+)" + + whitespace_mandatory + + rb"([0-9]+)" + + whitespace_optional + + newline_only + ) + re_xref_entry = re.compile(rb"([0-9]{10}) ([0-9]{5}) ([fn])( \r| \n|\r\n)") + + def read_xref_table(self, xref_section_offset: int) -> int: + assert self.buf is not None + subsection_found = False + m = self.re_xref_section_start.match( + self.buf, xref_section_offset + self.start_offset + ) + check_format_condition(m is not None, "xref section start not found") + assert m is not None + offset = m.end() + while True: + m = self.re_xref_subsection_start.match(self.buf, offset) + if not m: + check_format_condition( + subsection_found, "xref subsection start not found" + ) + break + subsection_found = True + offset = m.end() + first_object = int(m.group(1)) + num_objects = int(m.group(2)) + for i in range(first_object, first_object + num_objects): + m = self.re_xref_entry.match(self.buf, offset) + check_format_condition(m is not None, "xref entry not found") + assert m is not None + offset = m.end() + is_free = m.group(3) == b"f" + if not is_free: + generation = int(m.group(2)) + new_entry = (int(m.group(1)), generation) + if i not in self.xref_table: + self.xref_table[i] = new_entry + return offset + + def read_indirect(self, ref: IndirectReference, max_nesting: int = -1) -> Any: + offset, generation = self.xref_table[ref[0]] + check_format_condition( + generation == ref[1], + f"expected to find generation {ref[1]} for object ID {ref[0]} in xref " + f"table, instead found generation {generation} at offset {offset}", + ) + assert self.buf is not None + value = self.get_value( + self.buf, + offset + self.start_offset, + expect_indirect=IndirectReference(*ref), + max_nesting=max_nesting, + )[0] + self.cached_objects[ref] = value + return value + + def linearize_page_tree( + self, node: PdfDict | None = None + ) -> list[IndirectReference]: + page_node = node if node is not None else self.page_tree_root + check_format_condition( + page_node[b"Type"] == b"Pages", "/Type of page tree node is not /Pages" + ) + pages = [] + for kid in page_node[b"Kids"]: + kid_object = self.read_indirect(kid) + if kid_object[b"Type"] == b"Page": + pages.append(kid) + else: + pages.extend(self.linearize_page_tree(node=kid_object)) + return pages diff --git a/venv/lib/python3.11/site-packages/PIL/TarIO.py b/venv/lib/python3.11/site-packages/PIL/TarIO.py new file mode 100644 index 0000000..86490a4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/TarIO.py @@ -0,0 +1,61 @@ +# +# The Python Imaging Library. +# $Id$ +# +# read files from within a tar file +# +# History: +# 95-06-18 fl Created +# 96-05-28 fl Open files in binary mode +# +# Copyright (c) Secret Labs AB 1997. +# Copyright (c) Fredrik Lundh 1995-96. +# +# See the README file for information on usage and redistribution. +# +from __future__ import annotations + +import io + +from . import ContainerIO + + +class TarIO(ContainerIO.ContainerIO[bytes]): + """A file object that provides read access to a given member of a TAR file.""" + + def __init__(self, tarfile: str, file: str) -> None: + """ + Create file object. + + :param tarfile: Name of TAR file. + :param file: Name of member file. + """ + self.fh = open(tarfile, "rb") + + while True: + s = self.fh.read(512) + if len(s) != 512: + self.fh.close() + + msg = "unexpected end of tar file" + raise OSError(msg) + + name = s[:100].decode("utf-8") + i = name.find("\0") + if i == 0: + self.fh.close() + + msg = "cannot find subfile" + raise OSError(msg) + if i > 0: + name = name[:i] + + size = int(s[124:135], 8) + + if file == name: + break + + self.fh.seek((size + 511) & (~511), io.SEEK_CUR) + + # Open region + super().__init__(self.fh, self.fh.tell(), size) diff --git a/venv/lib/python3.11/site-packages/PIL/TiffTags.py b/venv/lib/python3.11/site-packages/PIL/TiffTags.py new file mode 100644 index 0000000..761aa3f --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/TiffTags.py @@ -0,0 +1,567 @@ +# +# The Python Imaging Library. +# $Id$ +# +# TIFF tags +# +# This module provides clear-text names for various well-known +# TIFF tags. the TIFF codec works just fine without it. +# +# Copyright (c) Secret Labs AB 1999. +# +# See the README file for information on usage and redistribution. +# + +## +# This module provides constants and clear-text names for various +# well-known TIFF tags. +## +from __future__ import annotations + +from typing import NamedTuple + + +class _TagInfo(NamedTuple): + value: int | None + name: str + type: int | None + length: int | None + enum: dict[str, int] + + +class TagInfo(_TagInfo): + __slots__: list[str] = [] + + def __new__( + cls, + value: int | None = None, + name: str = "unknown", + type: int | None = None, + length: int | None = None, + enum: dict[str, int] | None = None, + ) -> TagInfo: + return super().__new__(cls, value, name, type, length, enum or {}) + + def cvt_enum(self, value: str) -> int | str: + # Using get will call hash(value), which can be expensive + # for some types (e.g. Fraction). Since self.enum is rarely + # used, it's usually better to test it first. + return self.enum.get(value, value) if self.enum else value + + +def lookup(tag: int, group: int | None = None) -> TagInfo: + """ + :param tag: Integer tag number + :param group: Which :py:data:`~PIL.TiffTags.TAGS_V2_GROUPS` to look in + + .. versionadded:: 8.3.0 + + :returns: Taginfo namedtuple, From the ``TAGS_V2`` info if possible, + otherwise just populating the value and name from ``TAGS``. + If the tag is not recognized, "unknown" is returned for the name + + """ + + if group is not None: + info = TAGS_V2_GROUPS[group].get(tag) if group in TAGS_V2_GROUPS else None + else: + info = TAGS_V2.get(tag) + return info or TagInfo(tag, TAGS.get(tag, "unknown")) + + +## +# Map tag numbers to tag info. +# +# id: (Name, Type, Length[, enum_values]) +# +# The length here differs from the length in the tiff spec. For +# numbers, the tiff spec is for the number of fields returned. We +# agree here. For string-like types, the tiff spec uses the length of +# field in bytes. In Pillow, we are using the number of expected +# fields, in general 1 for string-like types. + + +BYTE = 1 +ASCII = 2 +SHORT = 3 +LONG = 4 +RATIONAL = 5 +SIGNED_BYTE = 6 +UNDEFINED = 7 +SIGNED_SHORT = 8 +SIGNED_LONG = 9 +SIGNED_RATIONAL = 10 +FLOAT = 11 +DOUBLE = 12 +IFD = 13 +LONG8 = 16 + +_tags_v2: dict[int, tuple[str, int, int] | tuple[str, int, int, dict[str, int]]] = { + 254: ("NewSubfileType", LONG, 1), + 255: ("SubfileType", SHORT, 1), + 256: ("ImageWidth", LONG, 1), + 257: ("ImageLength", LONG, 1), + 258: ("BitsPerSample", SHORT, 0), + 259: ( + "Compression", + SHORT, + 1, + { + "Uncompressed": 1, + "CCITT 1d": 2, + "Group 3 Fax": 3, + "Group 4 Fax": 4, + "LZW": 5, + "JPEG": 6, + "PackBits": 32773, + }, + ), + 262: ( + "PhotometricInterpretation", + SHORT, + 1, + { + "WhiteIsZero": 0, + "BlackIsZero": 1, + "RGB": 2, + "RGB Palette": 3, + "Transparency Mask": 4, + "CMYK": 5, + "YCbCr": 6, + "CieLAB": 8, + "CFA": 32803, # TIFF/EP, Adobe DNG + "LinearRaw": 32892, # Adobe DNG + }, + ), + 263: ("Threshholding", SHORT, 1), + 264: ("CellWidth", SHORT, 1), + 265: ("CellLength", SHORT, 1), + 266: ("FillOrder", SHORT, 1), + 269: ("DocumentName", ASCII, 1), + 270: ("ImageDescription", ASCII, 1), + 271: ("Make", ASCII, 1), + 272: ("Model", ASCII, 1), + 273: ("StripOffsets", LONG, 0), + 274: ("Orientation", SHORT, 1), + 277: ("SamplesPerPixel", SHORT, 1), + 278: ("RowsPerStrip", LONG, 1), + 279: ("StripByteCounts", LONG, 0), + 280: ("MinSampleValue", SHORT, 0), + 281: ("MaxSampleValue", SHORT, 0), + 282: ("XResolution", RATIONAL, 1), + 283: ("YResolution", RATIONAL, 1), + 284: ("PlanarConfiguration", SHORT, 1, {"Contiguous": 1, "Separate": 2}), + 285: ("PageName", ASCII, 1), + 286: ("XPosition", RATIONAL, 1), + 287: ("YPosition", RATIONAL, 1), + 288: ("FreeOffsets", LONG, 1), + 289: ("FreeByteCounts", LONG, 1), + 290: ("GrayResponseUnit", SHORT, 1), + 291: ("GrayResponseCurve", SHORT, 0), + 292: ("T4Options", LONG, 1), + 293: ("T6Options", LONG, 1), + 296: ("ResolutionUnit", SHORT, 1, {"none": 1, "inch": 2, "cm": 3}), + 297: ("PageNumber", SHORT, 2), + 301: ("TransferFunction", SHORT, 0), + 305: ("Software", ASCII, 1), + 306: ("DateTime", ASCII, 1), + 315: ("Artist", ASCII, 1), + 316: ("HostComputer", ASCII, 1), + 317: ("Predictor", SHORT, 1, {"none": 1, "Horizontal Differencing": 2}), + 318: ("WhitePoint", RATIONAL, 2), + 319: ("PrimaryChromaticities", RATIONAL, 6), + 320: ("ColorMap", SHORT, 0), + 321: ("HalftoneHints", SHORT, 2), + 322: ("TileWidth", LONG, 1), + 323: ("TileLength", LONG, 1), + 324: ("TileOffsets", LONG, 0), + 325: ("TileByteCounts", LONG, 0), + 330: ("SubIFDs", LONG, 0), + 332: ("InkSet", SHORT, 1), + 333: ("InkNames", ASCII, 1), + 334: ("NumberOfInks", SHORT, 1), + 336: ("DotRange", SHORT, 0), + 337: ("TargetPrinter", ASCII, 1), + 338: ("ExtraSamples", SHORT, 0), + 339: ("SampleFormat", SHORT, 0), + 340: ("SMinSampleValue", DOUBLE, 0), + 341: ("SMaxSampleValue", DOUBLE, 0), + 342: ("TransferRange", SHORT, 6), + 347: ("JPEGTables", UNDEFINED, 1), + # obsolete JPEG tags + 512: ("JPEGProc", SHORT, 1), + 513: ("JPEGInterchangeFormat", LONG, 1), + 514: ("JPEGInterchangeFormatLength", LONG, 1), + 515: ("JPEGRestartInterval", SHORT, 1), + 517: ("JPEGLosslessPredictors", SHORT, 0), + 518: ("JPEGPointTransforms", SHORT, 0), + 519: ("JPEGQTables", LONG, 0), + 520: ("JPEGDCTables", LONG, 0), + 521: ("JPEGACTables", LONG, 0), + 529: ("YCbCrCoefficients", RATIONAL, 3), + 530: ("YCbCrSubSampling", SHORT, 2), + 531: ("YCbCrPositioning", SHORT, 1), + 532: ("ReferenceBlackWhite", RATIONAL, 6), + 700: ("XMP", BYTE, 0), + # Four private SGI tags + 32995: ("Matteing", SHORT, 1), + 32996: ("DataType", SHORT, 0), + 32997: ("ImageDepth", LONG, 1), + 32998: ("TileDepth", LONG, 1), + 33432: ("Copyright", ASCII, 1), + 33723: ("IptcNaaInfo", UNDEFINED, 1), + 34377: ("PhotoshopInfo", BYTE, 0), + # FIXME add more tags here + 34665: ("ExifIFD", LONG, 1), + 34675: ("ICCProfile", UNDEFINED, 1), + 34853: ("GPSInfoIFD", LONG, 1), + 36864: ("ExifVersion", UNDEFINED, 1), + 37724: ("ImageSourceData", UNDEFINED, 1), + 40965: ("InteroperabilityIFD", LONG, 1), + 41730: ("CFAPattern", UNDEFINED, 1), + # MPInfo + 45056: ("MPFVersion", UNDEFINED, 1), + 45057: ("NumberOfImages", LONG, 1), + 45058: ("MPEntry", UNDEFINED, 1), + 45059: ("ImageUIDList", UNDEFINED, 0), # UNDONE, check + 45060: ("TotalFrames", LONG, 1), + 45313: ("MPIndividualNum", LONG, 1), + 45569: ("PanOrientation", LONG, 1), + 45570: ("PanOverlap_H", RATIONAL, 1), + 45571: ("PanOverlap_V", RATIONAL, 1), + 45572: ("BaseViewpointNum", LONG, 1), + 45573: ("ConvergenceAngle", SIGNED_RATIONAL, 1), + 45574: ("BaselineLength", RATIONAL, 1), + 45575: ("VerticalDivergence", SIGNED_RATIONAL, 1), + 45576: ("AxisDistance_X", SIGNED_RATIONAL, 1), + 45577: ("AxisDistance_Y", SIGNED_RATIONAL, 1), + 45578: ("AxisDistance_Z", SIGNED_RATIONAL, 1), + 45579: ("YawAngle", SIGNED_RATIONAL, 1), + 45580: ("PitchAngle", SIGNED_RATIONAL, 1), + 45581: ("RollAngle", SIGNED_RATIONAL, 1), + 40960: ("FlashPixVersion", UNDEFINED, 1), + 50741: ("MakerNoteSafety", SHORT, 1, {"Unsafe": 0, "Safe": 1}), + 50780: ("BestQualityScale", RATIONAL, 1), + 50838: ("ImageJMetaDataByteCounts", LONG, 0), # Can be more than one + 50839: ("ImageJMetaData", UNDEFINED, 1), # see Issue #2006 +} +_tags_v2_groups = { + # ExifIFD + 34665: { + 36864: ("ExifVersion", UNDEFINED, 1), + 40960: ("FlashPixVersion", UNDEFINED, 1), + 40965: ("InteroperabilityIFD", LONG, 1), + 41730: ("CFAPattern", UNDEFINED, 1), + }, + # GPSInfoIFD + 34853: { + 0: ("GPSVersionID", BYTE, 4), + 1: ("GPSLatitudeRef", ASCII, 2), + 2: ("GPSLatitude", RATIONAL, 3), + 3: ("GPSLongitudeRef", ASCII, 2), + 4: ("GPSLongitude", RATIONAL, 3), + 5: ("GPSAltitudeRef", BYTE, 1), + 6: ("GPSAltitude", RATIONAL, 1), + 7: ("GPSTimeStamp", RATIONAL, 3), + 8: ("GPSSatellites", ASCII, 0), + 9: ("GPSStatus", ASCII, 2), + 10: ("GPSMeasureMode", ASCII, 2), + 11: ("GPSDOP", RATIONAL, 1), + 12: ("GPSSpeedRef", ASCII, 2), + 13: ("GPSSpeed", RATIONAL, 1), + 14: ("GPSTrackRef", ASCII, 2), + 15: ("GPSTrack", RATIONAL, 1), + 16: ("GPSImgDirectionRef", ASCII, 2), + 17: ("GPSImgDirection", RATIONAL, 1), + 18: ("GPSMapDatum", ASCII, 0), + 19: ("GPSDestLatitudeRef", ASCII, 2), + 20: ("GPSDestLatitude", RATIONAL, 3), + 21: ("GPSDestLongitudeRef", ASCII, 2), + 22: ("GPSDestLongitude", RATIONAL, 3), + 23: ("GPSDestBearingRef", ASCII, 2), + 24: ("GPSDestBearing", RATIONAL, 1), + 25: ("GPSDestDistanceRef", ASCII, 2), + 26: ("GPSDestDistance", RATIONAL, 1), + 27: ("GPSProcessingMethod", UNDEFINED, 0), + 28: ("GPSAreaInformation", UNDEFINED, 0), + 29: ("GPSDateStamp", ASCII, 11), + 30: ("GPSDifferential", SHORT, 1), + }, + # InteroperabilityIFD + 40965: {1: ("InteropIndex", ASCII, 1), 2: ("InteropVersion", UNDEFINED, 1)}, +} + +# Legacy Tags structure +# these tags aren't included above, but were in the previous versions +TAGS: dict[int | tuple[int, int], str] = { + 347: "JPEGTables", + 700: "XMP", + # Additional Exif Info + 32932: "Wang Annotation", + 33434: "ExposureTime", + 33437: "FNumber", + 33445: "MD FileTag", + 33446: "MD ScalePixel", + 33447: "MD ColorTable", + 33448: "MD LabName", + 33449: "MD SampleInfo", + 33450: "MD PrepDate", + 33451: "MD PrepTime", + 33452: "MD FileUnits", + 33550: "ModelPixelScaleTag", + 33723: "IptcNaaInfo", + 33918: "INGR Packet Data Tag", + 33919: "INGR Flag Registers", + 33920: "IrasB Transformation Matrix", + 33922: "ModelTiepointTag", + 34264: "ModelTransformationTag", + 34377: "PhotoshopInfo", + 34735: "GeoKeyDirectoryTag", + 34736: "GeoDoubleParamsTag", + 34737: "GeoAsciiParamsTag", + 34850: "ExposureProgram", + 34852: "SpectralSensitivity", + 34855: "ISOSpeedRatings", + 34856: "OECF", + 34864: "SensitivityType", + 34865: "StandardOutputSensitivity", + 34866: "RecommendedExposureIndex", + 34867: "ISOSpeed", + 34868: "ISOSpeedLatitudeyyy", + 34869: "ISOSpeedLatitudezzz", + 34908: "HylaFAX FaxRecvParams", + 34909: "HylaFAX FaxSubAddress", + 34910: "HylaFAX FaxRecvTime", + 36864: "ExifVersion", + 36867: "DateTimeOriginal", + 36868: "DateTimeDigitized", + 37121: "ComponentsConfiguration", + 37122: "CompressedBitsPerPixel", + 37724: "ImageSourceData", + 37377: "ShutterSpeedValue", + 37378: "ApertureValue", + 37379: "BrightnessValue", + 37380: "ExposureBiasValue", + 37381: "MaxApertureValue", + 37382: "SubjectDistance", + 37383: "MeteringMode", + 37384: "LightSource", + 37385: "Flash", + 37386: "FocalLength", + 37396: "SubjectArea", + 37500: "MakerNote", + 37510: "UserComment", + 37520: "SubSec", + 37521: "SubSecTimeOriginal", + 37522: "SubsecTimeDigitized", + 40960: "FlashPixVersion", + 40961: "ColorSpace", + 40962: "PixelXDimension", + 40963: "PixelYDimension", + 40964: "RelatedSoundFile", + 40965: "InteroperabilityIFD", + 41483: "FlashEnergy", + 41484: "SpatialFrequencyResponse", + 41486: "FocalPlaneXResolution", + 41487: "FocalPlaneYResolution", + 41488: "FocalPlaneResolutionUnit", + 41492: "SubjectLocation", + 41493: "ExposureIndex", + 41495: "SensingMethod", + 41728: "FileSource", + 41729: "SceneType", + 41730: "CFAPattern", + 41985: "CustomRendered", + 41986: "ExposureMode", + 41987: "WhiteBalance", + 41988: "DigitalZoomRatio", + 41989: "FocalLengthIn35mmFilm", + 41990: "SceneCaptureType", + 41991: "GainControl", + 41992: "Contrast", + 41993: "Saturation", + 41994: "Sharpness", + 41995: "DeviceSettingDescription", + 41996: "SubjectDistanceRange", + 42016: "ImageUniqueID", + 42032: "CameraOwnerName", + 42033: "BodySerialNumber", + 42034: "LensSpecification", + 42035: "LensMake", + 42036: "LensModel", + 42037: "LensSerialNumber", + 42112: "GDAL_METADATA", + 42113: "GDAL_NODATA", + 42240: "Gamma", + 50215: "Oce Scanjob Description", + 50216: "Oce Application Selector", + 50217: "Oce Identification Number", + 50218: "Oce ImageLogic Characteristics", + # Adobe DNG + 50706: "DNGVersion", + 50707: "DNGBackwardVersion", + 50708: "UniqueCameraModel", + 50709: "LocalizedCameraModel", + 50710: "CFAPlaneColor", + 50711: "CFALayout", + 50712: "LinearizationTable", + 50713: "BlackLevelRepeatDim", + 50714: "BlackLevel", + 50715: "BlackLevelDeltaH", + 50716: "BlackLevelDeltaV", + 50717: "WhiteLevel", + 50718: "DefaultScale", + 50719: "DefaultCropOrigin", + 50720: "DefaultCropSize", + 50721: "ColorMatrix1", + 50722: "ColorMatrix2", + 50723: "CameraCalibration1", + 50724: "CameraCalibration2", + 50725: "ReductionMatrix1", + 50726: "ReductionMatrix2", + 50727: "AnalogBalance", + 50728: "AsShotNeutral", + 50729: "AsShotWhiteXY", + 50730: "BaselineExposure", + 50731: "BaselineNoise", + 50732: "BaselineSharpness", + 50733: "BayerGreenSplit", + 50734: "LinearResponseLimit", + 50735: "CameraSerialNumber", + 50736: "LensInfo", + 50737: "ChromaBlurRadius", + 50738: "AntiAliasStrength", + 50740: "DNGPrivateData", + 50778: "CalibrationIlluminant1", + 50779: "CalibrationIlluminant2", + 50784: "Alias Layer Metadata", +} + +TAGS_V2: dict[int, TagInfo] = {} +TAGS_V2_GROUPS: dict[int, dict[int, TagInfo]] = {} + + +def _populate() -> None: + for k, v in _tags_v2.items(): + # Populate legacy structure. + TAGS[k] = v[0] + if len(v) == 4: + for sk, sv in v[3].items(): + TAGS[(k, sv)] = sk + + TAGS_V2[k] = TagInfo(k, *v) + + for group, tags in _tags_v2_groups.items(): + TAGS_V2_GROUPS[group] = {k: TagInfo(k, *v) for k, v in tags.items()} + + +_populate() +## +# Map type numbers to type names -- defined in ImageFileDirectory. + +TYPES: dict[int, str] = {} + +# +# These tags are handled by default in libtiff, without +# adding to the custom dictionary. From tif_dir.c, searching for +# case TIFFTAG in the _TIFFVSetField function: +# Line: item. +# 148: case TIFFTAG_SUBFILETYPE: +# 151: case TIFFTAG_IMAGEWIDTH: +# 154: case TIFFTAG_IMAGELENGTH: +# 157: case TIFFTAG_BITSPERSAMPLE: +# 181: case TIFFTAG_COMPRESSION: +# 202: case TIFFTAG_PHOTOMETRIC: +# 205: case TIFFTAG_THRESHHOLDING: +# 208: case TIFFTAG_FILLORDER: +# 214: case TIFFTAG_ORIENTATION: +# 221: case TIFFTAG_SAMPLESPERPIXEL: +# 228: case TIFFTAG_ROWSPERSTRIP: +# 238: case TIFFTAG_MINSAMPLEVALUE: +# 241: case TIFFTAG_MAXSAMPLEVALUE: +# 244: case TIFFTAG_SMINSAMPLEVALUE: +# 247: case TIFFTAG_SMAXSAMPLEVALUE: +# 250: case TIFFTAG_XRESOLUTION: +# 256: case TIFFTAG_YRESOLUTION: +# 262: case TIFFTAG_PLANARCONFIG: +# 268: case TIFFTAG_XPOSITION: +# 271: case TIFFTAG_YPOSITION: +# 274: case TIFFTAG_RESOLUTIONUNIT: +# 280: case TIFFTAG_PAGENUMBER: +# 284: case TIFFTAG_HALFTONEHINTS: +# 288: case TIFFTAG_COLORMAP: +# 294: case TIFFTAG_EXTRASAMPLES: +# 298: case TIFFTAG_MATTEING: +# 305: case TIFFTAG_TILEWIDTH: +# 316: case TIFFTAG_TILELENGTH: +# 327: case TIFFTAG_TILEDEPTH: +# 333: case TIFFTAG_DATATYPE: +# 344: case TIFFTAG_SAMPLEFORMAT: +# 361: case TIFFTAG_IMAGEDEPTH: +# 364: case TIFFTAG_SUBIFD: +# 376: case TIFFTAG_YCBCRPOSITIONING: +# 379: case TIFFTAG_YCBCRSUBSAMPLING: +# 383: case TIFFTAG_TRANSFERFUNCTION: +# 389: case TIFFTAG_REFERENCEBLACKWHITE: +# 393: case TIFFTAG_INKNAMES: + +# Following pseudo-tags are also handled by default in libtiff: +# TIFFTAG_JPEGQUALITY 65537 + +# some of these are not in our TAGS_V2 dict and were included from tiff.h + +# This list also exists in encode.c +LIBTIFF_CORE = { + 255, + 256, + 257, + 258, + 259, + 262, + 263, + 266, + 274, + 277, + 278, + 280, + 281, + 340, + 341, + 282, + 283, + 284, + 286, + 287, + 296, + 297, + 321, + 320, + 338, + 32995, + 322, + 323, + 32998, + 32996, + 339, + 32997, + 330, + 531, + 530, + 301, + 532, + 333, + # as above + 269, # this has been in our tests forever, and works + 65537, +} + +LIBTIFF_CORE.remove(255) # We don't have support for subfiletypes +LIBTIFF_CORE.remove(322) # We don't have support for writing tiled images with libtiff +LIBTIFF_CORE.remove(323) # Tiled images +LIBTIFF_CORE.remove(333) # Ink Names either + +# Note to advanced users: There may be combinations of these +# parameters and values that when added properly, will work and +# produce valid tiff images that may work in your application. +# It is safe to add and remove tags from this set from Pillow's point +# of view so long as you test against libtiff. diff --git a/venv/lib/python3.11/site-packages/PIL/__init__.py b/venv/lib/python3.11/site-packages/PIL/__init__.py new file mode 100644 index 0000000..6e4c23f --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/__init__.py @@ -0,0 +1,87 @@ +"""Pillow (Fork of the Python Imaging Library) + +Pillow is the friendly PIL fork by Jeffrey A. Clark and contributors. + https://github.com/python-pillow/Pillow/ + +Pillow is forked from PIL 1.1.7. + +PIL is the Python Imaging Library by Fredrik Lundh and contributors. +Copyright (c) 1999 by Secret Labs AB. + +Use PIL.__version__ for this Pillow version. + +;-) +""" + +from __future__ import annotations + +from . import _version + +# VERSION was removed in Pillow 6.0.0. +# PILLOW_VERSION was removed in Pillow 9.0.0. +# Use __version__ instead. +__version__ = _version.__version__ +del _version + + +_plugins = [ + "AvifImagePlugin", + "BlpImagePlugin", + "BmpImagePlugin", + "BufrStubImagePlugin", + "CurImagePlugin", + "DcxImagePlugin", + "DdsImagePlugin", + "EpsImagePlugin", + "FitsImagePlugin", + "FliImagePlugin", + "FpxImagePlugin", + "FtexImagePlugin", + "GbrImagePlugin", + "GifImagePlugin", + "GribStubImagePlugin", + "Hdf5StubImagePlugin", + "IcnsImagePlugin", + "IcoImagePlugin", + "ImImagePlugin", + "ImtImagePlugin", + "IptcImagePlugin", + "JpegImagePlugin", + "Jpeg2KImagePlugin", + "McIdasImagePlugin", + "MicImagePlugin", + "MpegImagePlugin", + "MpoImagePlugin", + "MspImagePlugin", + "PalmImagePlugin", + "PcdImagePlugin", + "PcxImagePlugin", + "PdfImagePlugin", + "PixarImagePlugin", + "PngImagePlugin", + "PpmImagePlugin", + "PsdImagePlugin", + "QoiImagePlugin", + "SgiImagePlugin", + "SpiderImagePlugin", + "SunImagePlugin", + "TgaImagePlugin", + "TiffImagePlugin", + "WebPImagePlugin", + "WmfImagePlugin", + "XbmImagePlugin", + "XpmImagePlugin", + "XVThumbImagePlugin", +] + + +class UnidentifiedImageError(OSError): + """ + Raised in :py:meth:`PIL.Image.open` if an image cannot be opened and identified. + + If a PNG image raises this error, setting :data:`.ImageFile.LOAD_TRUNCATED_IMAGES` + to true may allow the image to be opened after all. The setting will ignore missing + data and checksum failures. + """ + + pass diff --git a/venv/lib/python3.11/site-packages/PIL/__main__.py b/venv/lib/python3.11/site-packages/PIL/__main__.py new file mode 100644 index 0000000..043156e --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/__main__.py @@ -0,0 +1,7 @@ +from __future__ import annotations + +import sys + +from .features import pilinfo + +pilinfo(supported_formats="--report" not in sys.argv) diff --git a/venv/lib/python3.11/site-packages/PIL/_avif.pyi b/venv/lib/python3.11/site-packages/PIL/_avif.pyi new file mode 100644 index 0000000..e27843e --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/_avif.pyi @@ -0,0 +1,3 @@ +from typing import Any + +def __getattr__(name: str) -> Any: ... diff --git a/venv/lib/python3.11/site-packages/PIL/_binary.py b/venv/lib/python3.11/site-packages/PIL/_binary.py new file mode 100644 index 0000000..4594ccc --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/_binary.py @@ -0,0 +1,112 @@ +# +# The Python Imaging Library. +# $Id$ +# +# Binary input/output support routines. +# +# Copyright (c) 1997-2003 by Secret Labs AB +# Copyright (c) 1995-2003 by Fredrik Lundh +# Copyright (c) 2012 by Brian Crowell +# +# See the README file for information on usage and redistribution. +# + + +"""Binary input/output support routines.""" +from __future__ import annotations + +from struct import pack, unpack_from + + +def i8(c: bytes) -> int: + return c[0] + + +def o8(i: int) -> bytes: + return bytes((i & 255,)) + + +# Input, le = little endian, be = big endian +def i16le(c: bytes, o: int = 0) -> int: + """ + Converts a 2-bytes (16 bits) string to an unsigned integer. + + :param c: string containing bytes to convert + :param o: offset of bytes to convert in string + """ + return unpack_from(" int: + """ + Converts a 2-bytes (16 bits) string to a signed integer. + + :param c: string containing bytes to convert + :param o: offset of bytes to convert in string + """ + return unpack_from(" int: + """ + Converts a 2-bytes (16 bits) string to a signed integer, big endian. + + :param c: string containing bytes to convert + :param o: offset of bytes to convert in string + """ + return unpack_from(">h", c, o)[0] + + +def i32le(c: bytes, o: int = 0) -> int: + """ + Converts a 4-bytes (32 bits) string to an unsigned integer. + + :param c: string containing bytes to convert + :param o: offset of bytes to convert in string + """ + return unpack_from(" int: + """ + Converts a 4-bytes (32 bits) string to a signed integer. + + :param c: string containing bytes to convert + :param o: offset of bytes to convert in string + """ + return unpack_from(" int: + """ + Converts a 4-bytes (32 bits) string to a signed integer, big endian. + + :param c: string containing bytes to convert + :param o: offset of bytes to convert in string + """ + return unpack_from(">i", c, o)[0] + + +def i16be(c: bytes, o: int = 0) -> int: + return unpack_from(">H", c, o)[0] + + +def i32be(c: bytes, o: int = 0) -> int: + return unpack_from(">I", c, o)[0] + + +# Output, le = little endian, be = big endian +def o16le(i: int) -> bytes: + return pack(" bytes: + return pack(" bytes: + return pack(">H", i) + + +def o32be(i: int) -> bytes: + return pack(">I", i) diff --git a/venv/lib/python3.11/site-packages/PIL/_deprecate.py b/venv/lib/python3.11/site-packages/PIL/_deprecate.py new file mode 100644 index 0000000..616a9aa --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/_deprecate.py @@ -0,0 +1,70 @@ +from __future__ import annotations + +import warnings + +from . import __version__ + + +def deprecate( + deprecated: str, + when: int | None, + replacement: str | None = None, + *, + action: str | None = None, + plural: bool = False, + stacklevel: int = 3, +) -> None: + """ + Deprecations helper. + + :param deprecated: Name of thing to be deprecated. + :param when: Pillow major version to be removed in. + :param replacement: Name of replacement. + :param action: Instead of "replacement", give a custom call to action + e.g. "Upgrade to new thing". + :param plural: if the deprecated thing is plural, needing "are" instead of "is". + + Usually of the form: + + "[deprecated] is deprecated and will be removed in Pillow [when] (yyyy-mm-dd). + Use [replacement] instead." + + You can leave out the replacement sentence: + + "[deprecated] is deprecated and will be removed in Pillow [when] (yyyy-mm-dd)" + + Or with another call to action: + + "[deprecated] is deprecated and will be removed in Pillow [when] (yyyy-mm-dd). + [action]." + """ + + is_ = "are" if plural else "is" + + if when is None: + removed = "a future version" + elif when <= int(__version__.split(".")[0]): + msg = f"{deprecated} {is_} deprecated and should be removed." + raise RuntimeError(msg) + elif when == 13: + removed = "Pillow 13 (2026-10-15)" + else: + msg = f"Unknown removal version: {when}. Update {__name__}?" + raise ValueError(msg) + + if replacement and action: + msg = "Use only one of 'replacement' and 'action'" + raise ValueError(msg) + + if replacement: + action = f". Use {replacement} instead." + elif action: + action = f". {action.rstrip('.')}." + else: + action = "" + + warnings.warn( + f"{deprecated} {is_} deprecated and will be removed in {removed}{action}", + DeprecationWarning, + stacklevel=stacklevel, + ) diff --git a/venv/lib/python3.11/site-packages/PIL/_imaging.pyi b/venv/lib/python3.11/site-packages/PIL/_imaging.pyi new file mode 100644 index 0000000..998bc52 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/_imaging.pyi @@ -0,0 +1,31 @@ +from typing import Any + +class ImagingCore: + def __getitem__(self, index: int) -> float: ... + def __getattr__(self, name: str) -> Any: ... + +class ImagingFont: + def __getattr__(self, name: str) -> Any: ... + +class ImagingDraw: + def __getattr__(self, name: str) -> Any: ... + +class PixelAccess: + def __getitem__(self, xy: tuple[int, int]) -> float | tuple[int, ...]: ... + def __setitem__( + self, xy: tuple[int, int], color: float | tuple[int, ...] + ) -> None: ... + +class ImagingDecoder: + def __getattr__(self, name: str) -> Any: ... + +class ImagingEncoder: + def __getattr__(self, name: str) -> Any: ... + +class _Outline: + def close(self) -> None: ... + def __getattr__(self, name: str) -> Any: ... + +def font(image: ImagingCore, glyphdata: bytes) -> ImagingFont: ... +def outline() -> _Outline: ... +def __getattr__(name: str) -> Any: ... diff --git a/venv/lib/python3.11/site-packages/PIL/_imagingft.pyi b/venv/lib/python3.11/site-packages/PIL/_imagingft.pyi new file mode 100644 index 0000000..2136810 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/_imagingft.pyi @@ -0,0 +1,70 @@ +from collections.abc import Callable +from typing import Any + +from . import ImageFont, _imaging + +class Font: + @property + def family(self) -> str | None: ... + @property + def style(self) -> str | None: ... + @property + def ascent(self) -> int: ... + @property + def descent(self) -> int: ... + @property + def height(self) -> int: ... + @property + def x_ppem(self) -> int: ... + @property + def y_ppem(self) -> int: ... + @property + def glyphs(self) -> int: ... + def render( + self, + string: str | bytes, + fill: Callable[[int, int], _imaging.ImagingCore], + mode: str, + dir: str | None, + features: list[str] | None, + lang: str | None, + stroke_width: float, + stroke_filled: bool, + anchor: str | None, + foreground_ink_long: int, + start: tuple[float, float], + /, + ) -> tuple[_imaging.ImagingCore, tuple[int, int]]: ... + def getsize( + self, + string: str | bytes | bytearray, + mode: str, + dir: str | None, + features: list[str] | None, + lang: str | None, + anchor: str | None, + /, + ) -> tuple[tuple[int, int], tuple[int, int]]: ... + def getlength( + self, + string: str | bytes, + mode: str, + dir: str | None, + features: list[str] | None, + lang: str | None, + /, + ) -> float: ... + def getvarnames(self) -> list[bytes]: ... + def getvaraxes(self) -> list[ImageFont.Axis]: ... + def setvarname(self, instance_index: int, /) -> None: ... + def setvaraxes(self, axes: list[float], /) -> None: ... + +def getfont( + filename: str | bytes, + size: float, + index: int, + encoding: str, + font_bytes: bytes, + layout_engine: int, +) -> Font: ... +def __getattr__(name: str) -> Any: ... diff --git a/venv/lib/python3.11/site-packages/PIL/_imagingtk.pyi b/venv/lib/python3.11/site-packages/PIL/_imagingtk.pyi new file mode 100644 index 0000000..e27843e --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/_imagingtk.pyi @@ -0,0 +1,3 @@ +from typing import Any + +def __getattr__(name: str) -> Any: ... diff --git a/venv/lib/python3.11/site-packages/PIL/_typing.py b/venv/lib/python3.11/site-packages/PIL/_typing.py new file mode 100644 index 0000000..a941f89 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/_typing.py @@ -0,0 +1,45 @@ +from __future__ import annotations + +import os +import sys +from collections.abc import Sequence +from typing import Any, Protocol, TypeVar + +TYPE_CHECKING = False +if TYPE_CHECKING: + from numbers import _IntegralLike as IntegralLike + + try: + import numpy.typing as npt + + NumpyArray = npt.NDArray[Any] + except ImportError: + pass + +if sys.version_info >= (3, 13): + from types import CapsuleType +else: + CapsuleType = object + +if sys.version_info >= (3, 12): + from collections.abc import Buffer +else: + Buffer = Any + + +_Ink = float | tuple[int, ...] | str + +Coords = Sequence[float] | Sequence[Sequence[float]] + + +_T_co = TypeVar("_T_co", covariant=True) + + +class SupportsRead(Protocol[_T_co]): + def read(self, length: int = ..., /) -> _T_co: ... + + +StrOrBytesPath = str | bytes | os.PathLike[str] | os.PathLike[bytes] + + +__all__ = ["Buffer", "IntegralLike", "StrOrBytesPath", "SupportsRead"] diff --git a/venv/lib/python3.11/site-packages/PIL/_util.py b/venv/lib/python3.11/site-packages/PIL/_util.py new file mode 100644 index 0000000..b1fa6a0 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/_util.py @@ -0,0 +1,29 @@ +from __future__ import annotations + +import os + +TYPE_CHECKING = False +if TYPE_CHECKING: + from typing import Any, NoReturn, TypeGuard + + from ._typing import StrOrBytesPath + + +def is_path(f: Any) -> TypeGuard[StrOrBytesPath]: + return isinstance(f, (bytes, str, os.PathLike)) + + +class DeferredError: + def __init__(self, ex: BaseException): + self.ex = ex + + def __getattr__(self, elt: str) -> NoReturn: + raise self.ex + + @staticmethod + def new(ex: BaseException) -> Any: + """ + Creates an object that raises the wrapped exception ``ex`` when used, + and casts it to :py:obj:`~typing.Any` type. + """ + return DeferredError(ex) diff --git a/venv/lib/python3.11/site-packages/PIL/_version.py b/venv/lib/python3.11/site-packages/PIL/_version.py new file mode 100644 index 0000000..79ce194 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/_version.py @@ -0,0 +1,4 @@ +# Master version for Pillow +from __future__ import annotations + +__version__ = "12.0.0" diff --git a/venv/lib/python3.11/site-packages/PIL/_webp.pyi b/venv/lib/python3.11/site-packages/PIL/_webp.pyi new file mode 100644 index 0000000..e27843e --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/_webp.pyi @@ -0,0 +1,3 @@ +from typing import Any + +def __getattr__(name: str) -> Any: ... diff --git a/venv/lib/python3.11/site-packages/PIL/features.py b/venv/lib/python3.11/site-packages/PIL/features.py new file mode 100644 index 0000000..ff32c25 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/features.py @@ -0,0 +1,343 @@ +from __future__ import annotations + +import collections +import os +import sys +import warnings +from typing import IO + +import PIL + +from . import Image + +modules = { + "pil": ("PIL._imaging", "PILLOW_VERSION"), + "tkinter": ("PIL._tkinter_finder", "tk_version"), + "freetype2": ("PIL._imagingft", "freetype2_version"), + "littlecms2": ("PIL._imagingcms", "littlecms_version"), + "webp": ("PIL._webp", "webpdecoder_version"), + "avif": ("PIL._avif", "libavif_version"), +} + + +def check_module(feature: str) -> bool: + """ + Checks if a module is available. + + :param feature: The module to check for. + :returns: ``True`` if available, ``False`` otherwise. + :raises ValueError: If the module is not defined in this version of Pillow. + """ + if feature not in modules: + msg = f"Unknown module {feature}" + raise ValueError(msg) + + module, ver = modules[feature] + + try: + __import__(module) + return True + except ModuleNotFoundError: + return False + except ImportError as ex: + warnings.warn(str(ex)) + return False + + +def version_module(feature: str) -> str | None: + """ + :param feature: The module to check for. + :returns: + The loaded version number as a string, or ``None`` if unknown or not available. + :raises ValueError: If the module is not defined in this version of Pillow. + """ + if not check_module(feature): + return None + + module, ver = modules[feature] + + return getattr(__import__(module, fromlist=[ver]), ver) + + +def get_supported_modules() -> list[str]: + """ + :returns: A list of all supported modules. + """ + return [f for f in modules if check_module(f)] + + +codecs = { + "jpg": ("jpeg", "jpeglib"), + "jpg_2000": ("jpeg2k", "jp2klib"), + "zlib": ("zip", "zlib"), + "libtiff": ("libtiff", "libtiff"), +} + + +def check_codec(feature: str) -> bool: + """ + Checks if a codec is available. + + :param feature: The codec to check for. + :returns: ``True`` if available, ``False`` otherwise. + :raises ValueError: If the codec is not defined in this version of Pillow. + """ + if feature not in codecs: + msg = f"Unknown codec {feature}" + raise ValueError(msg) + + codec, lib = codecs[feature] + + return f"{codec}_encoder" in dir(Image.core) + + +def version_codec(feature: str) -> str | None: + """ + :param feature: The codec to check for. + :returns: + The version number as a string, or ``None`` if not available. + Checked at compile time for ``jpg``, run-time otherwise. + :raises ValueError: If the codec is not defined in this version of Pillow. + """ + if not check_codec(feature): + return None + + codec, lib = codecs[feature] + + version = getattr(Image.core, f"{lib}_version") + + if feature == "libtiff": + return version.split("\n")[0].split("Version ")[1] + + return version + + +def get_supported_codecs() -> list[str]: + """ + :returns: A list of all supported codecs. + """ + return [f for f in codecs if check_codec(f)] + + +features: dict[str, tuple[str, str, str | None]] = { + "raqm": ("PIL._imagingft", "HAVE_RAQM", "raqm_version"), + "fribidi": ("PIL._imagingft", "HAVE_FRIBIDI", "fribidi_version"), + "harfbuzz": ("PIL._imagingft", "HAVE_HARFBUZZ", "harfbuzz_version"), + "libjpeg_turbo": ("PIL._imaging", "HAVE_LIBJPEGTURBO", "libjpeg_turbo_version"), + "mozjpeg": ("PIL._imaging", "HAVE_MOZJPEG", "libjpeg_turbo_version"), + "zlib_ng": ("PIL._imaging", "HAVE_ZLIBNG", "zlib_ng_version"), + "libimagequant": ("PIL._imaging", "HAVE_LIBIMAGEQUANT", "imagequant_version"), + "xcb": ("PIL._imaging", "HAVE_XCB", None), +} + + +def check_feature(feature: str) -> bool | None: + """ + Checks if a feature is available. + + :param feature: The feature to check for. + :returns: ``True`` if available, ``False`` if unavailable, ``None`` if unknown. + :raises ValueError: If the feature is not defined in this version of Pillow. + """ + if feature not in features: + msg = f"Unknown feature {feature}" + raise ValueError(msg) + + module, flag, ver = features[feature] + + try: + imported_module = __import__(module, fromlist=["PIL"]) + return getattr(imported_module, flag) + except ModuleNotFoundError: + return None + except ImportError as ex: + warnings.warn(str(ex)) + return None + + +def version_feature(feature: str) -> str | None: + """ + :param feature: The feature to check for. + :returns: The version number as a string, or ``None`` if not available. + :raises ValueError: If the feature is not defined in this version of Pillow. + """ + if not check_feature(feature): + return None + + module, flag, ver = features[feature] + + if ver is None: + return None + + return getattr(__import__(module, fromlist=[ver]), ver) + + +def get_supported_features() -> list[str]: + """ + :returns: A list of all supported features. + """ + return [f for f in features if check_feature(f)] + + +def check(feature: str) -> bool | None: + """ + :param feature: A module, codec, or feature name. + :returns: + ``True`` if the module, codec, or feature is available, + ``False`` or ``None`` otherwise. + """ + + if feature in modules: + return check_module(feature) + if feature in codecs: + return check_codec(feature) + if feature in features: + return check_feature(feature) + warnings.warn(f"Unknown feature '{feature}'.", stacklevel=2) + return False + + +def version(feature: str) -> str | None: + """ + :param feature: + The module, codec, or feature to check for. + :returns: + The version number as a string, or ``None`` if unknown or not available. + """ + if feature in modules: + return version_module(feature) + if feature in codecs: + return version_codec(feature) + if feature in features: + return version_feature(feature) + return None + + +def get_supported() -> list[str]: + """ + :returns: A list of all supported modules, features, and codecs. + """ + + ret = get_supported_modules() + ret.extend(get_supported_features()) + ret.extend(get_supported_codecs()) + return ret + + +def pilinfo(out: IO[str] | None = None, supported_formats: bool = True) -> None: + """ + Prints information about this installation of Pillow. + This function can be called with ``python3 -m PIL``. + It can also be called with ``python3 -m PIL.report`` or ``python3 -m PIL --report`` + to have "supported_formats" set to ``False``, omitting the list of all supported + image file formats. + + :param out: + The output stream to print to. Defaults to ``sys.stdout`` if ``None``. + :param supported_formats: + If ``True``, a list of all supported image file formats will be printed. + """ + + if out is None: + out = sys.stdout + + Image.init() + + print("-" * 68, file=out) + print(f"Pillow {PIL.__version__}", file=out) + py_version_lines = sys.version.splitlines() + print(f"Python {py_version_lines[0].strip()}", file=out) + for py_version in py_version_lines[1:]: + print(f" {py_version.strip()}", file=out) + print("-" * 68, file=out) + print(f"Python executable is {sys.executable or 'unknown'}", file=out) + if sys.prefix != sys.base_prefix: + print(f"Environment Python files loaded from {sys.prefix}", file=out) + print(f"System Python files loaded from {sys.base_prefix}", file=out) + print("-" * 68, file=out) + print( + f"Python Pillow modules loaded from {os.path.dirname(Image.__file__)}", + file=out, + ) + print( + f"Binary Pillow modules loaded from {os.path.dirname(Image.core.__file__)}", + file=out, + ) + print("-" * 68, file=out) + + for name, feature in [ + ("pil", "PIL CORE"), + ("tkinter", "TKINTER"), + ("freetype2", "FREETYPE2"), + ("littlecms2", "LITTLECMS2"), + ("webp", "WEBP"), + ("avif", "AVIF"), + ("jpg", "JPEG"), + ("jpg_2000", "OPENJPEG (JPEG2000)"), + ("zlib", "ZLIB (PNG/ZIP)"), + ("libtiff", "LIBTIFF"), + ("raqm", "RAQM (Bidirectional Text)"), + ("libimagequant", "LIBIMAGEQUANT (Quantization method)"), + ("xcb", "XCB (X protocol)"), + ]: + if check(name): + v: str | None = None + if name == "jpg": + libjpeg_turbo_version = version_feature("libjpeg_turbo") + if libjpeg_turbo_version is not None: + v = "mozjpeg" if check_feature("mozjpeg") else "libjpeg-turbo" + v += " " + libjpeg_turbo_version + if v is None: + v = version(name) + if v is not None: + version_static = name in ("pil", "jpg") + if name == "littlecms2": + # this check is also in src/_imagingcms.c:setup_module() + version_static = tuple(int(x) for x in v.split(".")) < (2, 7) + t = "compiled for" if version_static else "loaded" + if name == "zlib": + zlib_ng_version = version_feature("zlib_ng") + if zlib_ng_version is not None: + v += ", compiled for zlib-ng " + zlib_ng_version + elif name == "raqm": + for f in ("fribidi", "harfbuzz"): + v2 = version_feature(f) + if v2 is not None: + v += f", {f} {v2}" + print("---", feature, "support ok,", t, v, file=out) + else: + print("---", feature, "support ok", file=out) + else: + print("***", feature, "support not installed", file=out) + print("-" * 68, file=out) + + if supported_formats: + extensions = collections.defaultdict(list) + for ext, i in Image.EXTENSION.items(): + extensions[i].append(ext) + + for i in sorted(Image.ID): + line = f"{i}" + if i in Image.MIME: + line = f"{line} {Image.MIME[i]}" + print(line, file=out) + + if i in extensions: + print( + "Extensions: {}".format(", ".join(sorted(extensions[i]))), file=out + ) + + features = [] + if i in Image.OPEN: + features.append("open") + if i in Image.SAVE: + features.append("save") + if i in Image.SAVE_ALL: + features.append("save_all") + if i in Image.DECODERS: + features.append("decode") + if i in Image.ENCODERS: + features.append("encode") + + print("Features: {}".format(", ".join(features)), file=out) + print("-" * 68, file=out) diff --git a/venv/lib/python3.11/site-packages/PIL/py.typed b/venv/lib/python3.11/site-packages/PIL/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/PIL/report.py b/venv/lib/python3.11/site-packages/PIL/report.py new file mode 100644 index 0000000..d2815e8 --- /dev/null +++ b/venv/lib/python3.11/site-packages/PIL/report.py @@ -0,0 +1,5 @@ +from __future__ import annotations + +from .features import pilinfo + +pilinfo(supported_formats=False) diff --git a/venv/lib/python3.11/site-packages/_distutils_hack/__init__.py b/venv/lib/python3.11/site-packages/_distutils_hack/__init__.py new file mode 100644 index 0000000..94f71b9 --- /dev/null +++ b/venv/lib/python3.11/site-packages/_distutils_hack/__init__.py @@ -0,0 +1,239 @@ +# don't import any costly modules +import os +import sys + +report_url = ( + "https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml" +) + + +def warn_distutils_present(): + if 'distutils' not in sys.modules: + return + import warnings + + warnings.warn( + "Distutils was imported before Setuptools, but importing Setuptools " + "also replaces the `distutils` module in `sys.modules`. This may lead " + "to undesirable behaviors or errors. To avoid these issues, avoid " + "using distutils directly, ensure that setuptools is installed in the " + "traditional way (e.g. not an editable install), and/or make sure " + "that setuptools is always imported before distutils." + ) + + +def clear_distutils(): + if 'distutils' not in sys.modules: + return + import warnings + + warnings.warn( + "Setuptools is replacing distutils. Support for replacing " + "an already imported distutils is deprecated. In the future, " + "this condition will fail. " + f"Register concerns at {report_url}" + ) + mods = [ + name + for name in sys.modules + if name == "distutils" or name.startswith("distutils.") + ] + for name in mods: + del sys.modules[name] + + +def enabled(): + """ + Allow selection of distutils by environment variable. + """ + which = os.environ.get('SETUPTOOLS_USE_DISTUTILS', 'local') + if which == 'stdlib': + import warnings + + warnings.warn( + "Reliance on distutils from stdlib is deprecated. Users " + "must rely on setuptools to provide the distutils module. " + "Avoid importing distutils or import setuptools first, " + "and avoid setting SETUPTOOLS_USE_DISTUTILS=stdlib. " + f"Register concerns at {report_url}" + ) + return which == 'local' + + +def ensure_local_distutils(): + import importlib + + clear_distutils() + + # With the DistutilsMetaFinder in place, + # perform an import to cause distutils to be + # loaded from setuptools._distutils. Ref #2906. + with shim(): + importlib.import_module('distutils') + + # check that submodules load as expected + core = importlib.import_module('distutils.core') + assert '_distutils' in core.__file__, core.__file__ + assert 'setuptools._distutils.log' not in sys.modules + + +def do_override(): + """ + Ensure that the local copy of distutils is preferred over stdlib. + + See https://github.com/pypa/setuptools/issues/417#issuecomment-392298401 + for more motivation. + """ + if enabled(): + warn_distutils_present() + ensure_local_distutils() + + +class _TrivialRe: + def __init__(self, *patterns) -> None: + self._patterns = patterns + + def match(self, string): + return all(pat in string for pat in self._patterns) + + +class DistutilsMetaFinder: + def find_spec(self, fullname, path, target=None): + # optimization: only consider top level modules and those + # found in the CPython test suite. + if path is not None and not fullname.startswith('test.'): + return None + + method_name = 'spec_for_{fullname}'.format(**locals()) + method = getattr(self, method_name, lambda: None) + return method() + + def spec_for_distutils(self): + if self.is_cpython(): + return None + + import importlib + import importlib.abc + import importlib.util + + try: + mod = importlib.import_module('setuptools._distutils') + except Exception: + # There are a couple of cases where setuptools._distutils + # may not be present: + # - An older Setuptools without a local distutils is + # taking precedence. Ref #2957. + # - Path manipulation during sitecustomize removes + # setuptools from the path but only after the hook + # has been loaded. Ref #2980. + # In either case, fall back to stdlib behavior. + return None + + class DistutilsLoader(importlib.abc.Loader): + def create_module(self, spec): + mod.__name__ = 'distutils' + return mod + + def exec_module(self, module): + pass + + return importlib.util.spec_from_loader( + 'distutils', DistutilsLoader(), origin=mod.__file__ + ) + + @staticmethod + def is_cpython(): + """ + Suppress supplying distutils for CPython (build and tests). + Ref #2965 and #3007. + """ + return os.path.isfile('pybuilddir.txt') + + def spec_for_pip(self): + """ + Ensure stdlib distutils when running under pip. + See pypa/pip#8761 for rationale. + """ + if sys.version_info >= (3, 12) or self.pip_imported_during_build(): + return + clear_distutils() + self.spec_for_distutils = lambda: None + + @classmethod + def pip_imported_during_build(cls): + """ + Detect if pip is being imported in a build script. Ref #2355. + """ + import traceback + + return any( + cls.frame_file_is_setup(frame) for frame, line in traceback.walk_stack(None) + ) + + @staticmethod + def frame_file_is_setup(frame): + """ + Return True if the indicated frame suggests a setup.py file. + """ + # some frames may not have __file__ (#2940) + return frame.f_globals.get('__file__', '').endswith('setup.py') + + def spec_for_sensitive_tests(self): + """ + Ensure stdlib distutils when running select tests under CPython. + + python/cpython#91169 + """ + clear_distutils() + self.spec_for_distutils = lambda: None + + sensitive_tests = ( + [ + 'test.test_distutils', + 'test.test_peg_generator', + 'test.test_importlib', + ] + if sys.version_info < (3, 10) + else [ + 'test.test_distutils', + ] + ) + + +for name in DistutilsMetaFinder.sensitive_tests: + setattr( + DistutilsMetaFinder, + f'spec_for_{name}', + DistutilsMetaFinder.spec_for_sensitive_tests, + ) + + +DISTUTILS_FINDER = DistutilsMetaFinder() + + +def add_shim(): + DISTUTILS_FINDER in sys.meta_path or insert_shim() + + +class shim: + def __enter__(self) -> None: + insert_shim() + + def __exit__(self, exc: object, value: object, tb: object) -> None: + _remove_shim() + + +def insert_shim(): + sys.meta_path.insert(0, DISTUTILS_FINDER) + + +def _remove_shim(): + try: + sys.meta_path.remove(DISTUTILS_FINDER) + except ValueError: + pass + + +if sys.version_info < (3, 12): + # DistutilsMetaFinder can only be disabled in Python < 3.12 (PEP 632) + remove_shim = _remove_shim diff --git a/venv/lib/python3.11/site-packages/_distutils_hack/override.py b/venv/lib/python3.11/site-packages/_distutils_hack/override.py new file mode 100644 index 0000000..2cc433a --- /dev/null +++ b/venv/lib/python3.11/site-packages/_distutils_hack/override.py @@ -0,0 +1 @@ +__import__('_distutils_hack').do_override() diff --git a/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/METADATA b/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/METADATA new file mode 100644 index 0000000..9fc5423 --- /dev/null +++ b/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/METADATA @@ -0,0 +1,209 @@ +Metadata-Version: 2.4 +Name: aiofiles +Version: 25.1.0 +Summary: File support for asyncio. +Project-URL: Changelog, https://github.com/Tinche/aiofiles#history +Project-URL: Bug Tracker, https://github.com/Tinche/aiofiles/issues +Project-URL: Repository, https://github.com/Tinche/aiofiles +Author-email: Tin Tvrtkovic +License: Apache-2.0 +License-File: LICENSE +License-File: NOTICE +Classifier: Development Status :: 5 - Production/Stable +Classifier: Framework :: AsyncIO +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Requires-Python: >=3.9 +Description-Content-Type: text/markdown + +# aiofiles: file support for asyncio + +[![PyPI](https://img.shields.io/pypi/v/aiofiles.svg)](https://pypi.python.org/pypi/aiofiles) +[![Build](https://github.com/Tinche/aiofiles/workflows/CI/badge.svg)](https://github.com/Tinche/aiofiles/actions) +[![Coverage](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Tinche/882f02e3df32136c847ba90d2688f06e/raw/covbadge.json)](https://github.com/Tinche/aiofiles/actions/workflows/main.yml) +[![Supported Python versions](https://img.shields.io/pypi/pyversions/aiofiles.svg)](https://github.com/Tinche/aiofiles) +[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) + +**aiofiles** is an Apache2 licensed library, written in Python, for handling local +disk files in asyncio applications. + +Ordinary local file IO is blocking, and cannot easily and portably be made +asynchronous. This means doing file IO may interfere with asyncio applications, +which shouldn't block the executing thread. aiofiles helps with this by +introducing asynchronous versions of files that support delegating operations to +a separate thread pool. + +```python +async with aiofiles.open('filename', mode='r') as f: + contents = await f.read() +print(contents) +'My file contents' +``` + +Asynchronous iteration is also supported. + +```python +async with aiofiles.open('filename') as f: + async for line in f: + ... +``` + +Asynchronous interface to tempfile module. + +```python +async with aiofiles.tempfile.TemporaryFile('wb') as f: + await f.write(b'Hello, World!') +``` + +## Features + +- a file API very similar to Python's standard, blocking API +- support for buffered and unbuffered binary files, and buffered text files +- support for `async`/`await` ([PEP 492](https://peps.python.org/pep-0492/)) constructs +- async interface to tempfile module + +## Installation + +To install aiofiles, simply: + +```shell +pip install aiofiles +``` + +## Usage + +Files are opened using the `aiofiles.open()` coroutine, which in addition to +mirroring the builtin `open` accepts optional `loop` and `executor` +arguments. If `loop` is absent, the default loop will be used, as per the +set asyncio policy. If `executor` is not specified, the default event loop +executor will be used. + +In case of success, an asynchronous file object is returned with an +API identical to an ordinary file, except the following methods are coroutines +and delegate to an executor: + +- `close` +- `flush` +- `isatty` +- `read` +- `readall` +- `read1` +- `readinto` +- `readline` +- `readlines` +- `seek` +- `seekable` +- `tell` +- `truncate` +- `writable` +- `write` +- `writelines` + +In case of failure, one of the usual exceptions will be raised. + +`aiofiles.stdin`, `aiofiles.stdout`, `aiofiles.stderr`, +`aiofiles.stdin_bytes`, `aiofiles.stdout_bytes`, and +`aiofiles.stderr_bytes` provide async access to `sys.stdin`, +`sys.stdout`, `sys.stderr`, and their corresponding `.buffer` properties. + +The `aiofiles.os` module contains executor-enabled coroutine versions of +several useful `os` functions that deal with files: + +- `stat` +- `statvfs` +- `sendfile` +- `rename` +- `renames` +- `replace` +- `remove` +- `unlink` +- `mkdir` +- `makedirs` +- `rmdir` +- `removedirs` +- `link` +- `symlink` +- `readlink` +- `listdir` +- `scandir` +- `access` +- `getcwd` +- `path.abspath` +- `path.exists` +- `path.isfile` +- `path.isdir` +- `path.islink` +- `path.ismount` +- `path.getsize` +- `path.getatime` +- `path.getctime` +- `path.samefile` +- `path.sameopenfile` + +### Tempfile + +**aiofiles.tempfile** implements the following interfaces: + +- TemporaryFile +- NamedTemporaryFile +- SpooledTemporaryFile +- TemporaryDirectory + +Results return wrapped with a context manager allowing use with async with and async for. + +```python +async with aiofiles.tempfile.NamedTemporaryFile('wb+') as f: + await f.write(b'Line1\n Line2') + await f.seek(0) + async for line in f: + print(line) + +async with aiofiles.tempfile.TemporaryDirectory() as d: + filename = os.path.join(d, "file.ext") +``` + +### Writing tests for aiofiles + +Real file IO can be mocked by patching `aiofiles.threadpool.sync_open` +as desired. The return type also needs to be registered with the +`aiofiles.threadpool.wrap` dispatcher: + +```python +aiofiles.threadpool.wrap.register(mock.MagicMock)( + lambda *args, **kwargs: aiofiles.threadpool.AsyncBufferedIOBase(*args, **kwargs) +) + +async def test_stuff(): + write_data = 'data' + read_file_chunks = [ + b'file chunks 1', + b'file chunks 2', + b'file chunks 3', + b'', + ] + file_chunks_iter = iter(read_file_chunks) + + mock_file_stream = mock.MagicMock( + read=lambda *args, **kwargs: next(file_chunks_iter) + ) + + with mock.patch('aiofiles.threadpool.sync_open', return_value=mock_file_stream) as mock_open: + async with aiofiles.open('filename', 'w') as f: + await f.write(write_data) + assert await f.read() == b'file chunks 1' + + mock_file_stream.write.assert_called_once_with(write_data) +``` + +### Contributing + +Contributions are very welcome. Tests can be run with `tox`, please ensure +the coverage at least stays the same before you submit a pull request. diff --git a/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/RECORD b/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/RECORD new file mode 100644 index 0000000..dd1ccee --- /dev/null +++ b/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/RECORD @@ -0,0 +1,27 @@ +aiofiles-25.1.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +aiofiles-25.1.0.dist-info/METADATA,sha256=a5a5kHMVigDdsBKlFINLSMPsX3Ms4Fn_zecASBdZqLU,6291 +aiofiles-25.1.0.dist-info/RECORD,, +aiofiles-25.1.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +aiofiles-25.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87 +aiofiles-25.1.0.dist-info/licenses/LICENSE,sha256=y16Ofl9KOYjhBjwULGDcLfdWBfTEZRXnduOspt-XbhQ,11325 +aiofiles-25.1.0.dist-info/licenses/NOTICE,sha256=EExY0dRQvWR0wJ2LZLwBgnM6YKw9jCU-M0zegpRSD_E,55 +aiofiles/__init__.py,sha256=DYqUwak6MVosBjbAsgyEnFFP-HUZCG5h7X4owoeyYHw,345 +aiofiles/__pycache__/__init__.cpython-311.pyc,, +aiofiles/__pycache__/base.cpython-311.pyc,, +aiofiles/__pycache__/os.cpython-311.pyc,, +aiofiles/__pycache__/ospath.cpython-311.pyc,, +aiofiles/base.py,sha256=-fvh41PnictTZL3cg98HoN4h6jdebi5d7Mfh81zOBOc,2046 +aiofiles/os.py,sha256=slJ5oUNHVW1xWVuuIWQiYjw30n3L48H7oX4CJvD_1d4,1078 +aiofiles/ospath.py,sha256=c-Kqw4wMCZ-YRt8Jleb697cANwJQM9qux6lq97949C8,678 +aiofiles/tempfile/__init__.py,sha256=twoC7vaQ-JjFzh2Bbd-3-o0hmExH3CYJUmQcuiVwZfg,10207 +aiofiles/tempfile/__pycache__/__init__.cpython-311.pyc,, +aiofiles/tempfile/__pycache__/temptypes.cpython-311.pyc,, +aiofiles/tempfile/temptypes.py,sha256=3_hlc6l9r5wmino1fDrt4TpFlX4IKoR5IP_bBYVVuHg,2037 +aiofiles/threadpool/__init__.py,sha256=-65UURmzUHsGTXUz0TARdSzyXIfkCFtbczAQLEPpEcU,3140 +aiofiles/threadpool/__pycache__/__init__.cpython-311.pyc,, +aiofiles/threadpool/__pycache__/binary.cpython-311.pyc,, +aiofiles/threadpool/__pycache__/text.cpython-311.pyc,, +aiofiles/threadpool/__pycache__/utils.cpython-311.pyc,, +aiofiles/threadpool/binary.py,sha256=hp-km9VCRu0MLz_wAEUfbCz7OL7xtn9iGAawabpnp5U,2315 +aiofiles/threadpool/text.py,sha256=fNmpw2PEkj0BZSldipJXAgZqVGLxALcfOMiuDQ54Eas,1223 +aiofiles/threadpool/utils.py,sha256=VtIJ9KErbcIT9_Yz4V4rZgNEUjBH3cAYxzKQBMpEzik,1850 diff --git a/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/WHEEL b/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/WHEEL new file mode 100644 index 0000000..12228d4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: hatchling 1.27.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/licenses/LICENSE new file mode 100644 index 0000000..e06d208 --- /dev/null +++ b/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/licenses/LICENSE @@ -0,0 +1,202 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/licenses/NOTICE b/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/licenses/NOTICE new file mode 100644 index 0000000..d134f28 --- /dev/null +++ b/venv/lib/python3.11/site-packages/aiofiles-25.1.0.dist-info/licenses/NOTICE @@ -0,0 +1,2 @@ +Asyncio support for files +Copyright 2016 Tin Tvrtkovic diff --git a/venv/lib/python3.11/site-packages/annotated_doc-0.0.4.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/annotated_doc-0.0.4.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/annotated_doc-0.0.4.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/annotated_doc-0.0.4.dist-info/METADATA b/venv/lib/python3.11/site-packages/annotated_doc-0.0.4.dist-info/METADATA new file mode 100644 index 0000000..9bf7a9e --- /dev/null +++ b/venv/lib/python3.11/site-packages/annotated_doc-0.0.4.dist-info/METADATA @@ -0,0 +1,145 @@ +Metadata-Version: 2.4 +Name: annotated-doc +Version: 0.0.4 +Summary: Document parameters, class attributes, return types, and variables inline, with Annotated. +Author-Email: =?utf-8?q?Sebasti=C3=A1n_Ram=C3=ADrez?= +License-Expression: MIT +License-File: LICENSE +Classifier: Intended Audience :: Information Technology +Classifier: Intended Audience :: System Administrators +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python +Classifier: Topic :: Internet +Classifier: Topic :: Software Development :: Libraries :: Application Frameworks +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: Software Development :: Libraries +Classifier: Topic :: Software Development +Classifier: Typing :: Typed +Classifier: Development Status :: 4 - Beta +Classifier: Intended Audience :: Developers +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Project-URL: Homepage, https://github.com/fastapi/annotated-doc +Project-URL: Documentation, https://github.com/fastapi/annotated-doc +Project-URL: Repository, https://github.com/fastapi/annotated-doc +Project-URL: Issues, https://github.com/fastapi/annotated-doc/issues +Project-URL: Changelog, https://github.com/fastapi/annotated-doc/release-notes.md +Requires-Python: >=3.8 +Description-Content-Type: text/markdown + +# Annotated Doc + +Document parameters, class attributes, return types, and variables inline, with `Annotated`. + + + Test + + + Coverage + + + Package version + + + Supported Python versions + + +## Installation + +```bash +pip install annotated-doc +``` + +Or with `uv`: + +```Python +uv add annotated-doc +``` + +## Usage + +Import `Doc` and pass a single literal string with the documentation for the specific parameter, class attribute, return type, or variable. + +For example, to document a parameter `name` in a function `hi` you could do: + +```Python +from typing import Annotated + +from annotated_doc import Doc + +def hi(name: Annotated[str, Doc("Who to say hi to")]) -> None: + print(f"Hi, {name}!") +``` + +You can also use it to document class attributes: + +```Python +from typing import Annotated + +from annotated_doc import Doc + +class User: + name: Annotated[str, Doc("The user's name")] + age: Annotated[int, Doc("The user's age")] +``` + +The same way, you could document return types and variables, or anything that could have a type annotation with `Annotated`. + +## Who Uses This + +`annotated-doc` was made for: + +* [FastAPI](https://fastapi.tiangolo.com/) +* [Typer](https://typer.tiangolo.com/) +* [SQLModel](https://sqlmodel.tiangolo.com/) +* [Asyncer](https://asyncer.tiangolo.com/) + +`annotated-doc` is supported by [griffe-typingdoc](https://github.com/mkdocstrings/griffe-typingdoc), which powers reference documentation like the one in the [FastAPI Reference](https://fastapi.tiangolo.com/reference/). + +## Reasons not to use `annotated-doc` + +You are already comfortable with one of the existing docstring formats, like: + +* Sphinx +* numpydoc +* Google +* Keras + +Your team is already comfortable using them. + +You prefer having the documentation about parameters all together in a docstring, separated from the code defining them. + +You care about a specific set of users, using one specific editor, and that editor already has support for the specific docstring format you use. + +## Reasons to use `annotated-doc` + +* No micro-syntax to learn for newcomers, it’s **just Python** syntax. +* **Editing** would be already fully supported by default by any editor (current or future) supporting Python syntax, including syntax errors, syntax highlighting, etc. +* **Rendering** would be relatively straightforward to implement by static tools (tools that don't need runtime execution), as the information can be extracted from the AST they normally already create. +* **Deduplication of information**: the name of a parameter would be defined in a single place, not duplicated inside of a docstring. +* **Elimination** of the possibility of having **inconsistencies** when removing a parameter or class variable and **forgetting to remove** its documentation. +* **Minimization** of the probability of adding a new parameter or class variable and **forgetting to add its documentation**. +* **Elimination** of the possibility of having **inconsistencies** between the **name** of a parameter in the **signature** and the name in the docstring when it is renamed. +* **Access** to the documentation string for each symbol at **runtime**, including existing (older) Python versions. +* A more formalized way to document other symbols, like type aliases, that could use Annotated. +* **Support** for apps using FastAPI, Typer and others. +* **AI Accessibility**: AI tools will have an easier way understanding each parameter as the distance from documentation to parameter is much closer. + +## History + +I ([@tiangolo](https://github.com/tiangolo)) originally wanted for this to be part of the Python standard library (in [PEP 727](https://peps.python.org/pep-0727/)), but the proposal was withdrawn as there was a fair amount of negative feedback and opposition. + +The conclusion was that this was better done as an external effort, in a third-party library. + +So, here it is, with a simpler approach, as a third-party library, in a way that can be used by others, starting with FastAPI and friends. + +## License + +This project is licensed under the terms of the MIT license. diff --git a/venv/lib/python3.11/site-packages/annotated_doc-0.0.4.dist-info/RECORD b/venv/lib/python3.11/site-packages/annotated_doc-0.0.4.dist-info/RECORD new file mode 100644 index 0000000..f228290 --- /dev/null +++ b/venv/lib/python3.11/site-packages/annotated_doc-0.0.4.dist-info/RECORD @@ -0,0 +1,11 @@ +annotated_doc-0.0.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +annotated_doc-0.0.4.dist-info/METADATA,sha256=Irm5KJua33dY2qKKAjJ-OhKaVBVIfwFGej_dSe3Z1TU,6566 +annotated_doc-0.0.4.dist-info/RECORD,, +annotated_doc-0.0.4.dist-info/WHEEL,sha256=9P2ygRxDrTJz3gsagc0Z96ukrxjr-LFBGOgv3AuKlCA,90 +annotated_doc-0.0.4.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34 +annotated_doc-0.0.4.dist-info/licenses/LICENSE,sha256=__Fwd5pqy_ZavbQFwIfxzuF4ZpHkqWpANFF-SlBKDN8,1086 +annotated_doc/__init__.py,sha256=VuyxxUe80kfEyWnOrCx_Bk8hybo3aKo6RYBlkBBYW8k,52 +annotated_doc/__pycache__/__init__.cpython-311.pyc,, +annotated_doc/__pycache__/main.cpython-311.pyc,, +annotated_doc/main.py,sha256=5Zfvxv80SwwLqpRW73AZyZyiM4bWma9QWRbp_cgD20s,1075 +annotated_doc/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/venv/lib/python3.11/site-packages/annotated_doc-0.0.4.dist-info/WHEEL b/venv/lib/python3.11/site-packages/annotated_doc-0.0.4.dist-info/WHEEL new file mode 100644 index 0000000..045c8ac --- /dev/null +++ b/venv/lib/python3.11/site-packages/annotated_doc-0.0.4.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: pdm-backend (2.4.5) +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/annotated_doc-0.0.4.dist-info/entry_points.txt b/venv/lib/python3.11/site-packages/annotated_doc-0.0.4.dist-info/entry_points.txt new file mode 100644 index 0000000..c3ad472 --- /dev/null +++ b/venv/lib/python3.11/site-packages/annotated_doc-0.0.4.dist-info/entry_points.txt @@ -0,0 +1,4 @@ +[console_scripts] + +[gui_scripts] + diff --git a/venv/lib/python3.11/site-packages/annotated_doc-0.0.4.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/annotated_doc-0.0.4.dist-info/licenses/LICENSE new file mode 100644 index 0000000..7a25446 --- /dev/null +++ b/venv/lib/python3.11/site-packages/annotated_doc-0.0.4.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2025 Sebastián Ramírez + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/annotated_doc/__init__.py b/venv/lib/python3.11/site-packages/annotated_doc/__init__.py new file mode 100644 index 0000000..a0152a7 --- /dev/null +++ b/venv/lib/python3.11/site-packages/annotated_doc/__init__.py @@ -0,0 +1,3 @@ +from .main import Doc as Doc + +__version__ = "0.0.4" diff --git a/venv/lib/python3.11/site-packages/annotated_doc/main.py b/venv/lib/python3.11/site-packages/annotated_doc/main.py new file mode 100644 index 0000000..7063c59 --- /dev/null +++ b/venv/lib/python3.11/site-packages/annotated_doc/main.py @@ -0,0 +1,36 @@ +class Doc: + """Define the documentation of a type annotation using `Annotated`, to be + used in class attributes, function and method parameters, return values, + and variables. + + The value should be a positional-only string literal to allow static tools + like editors and documentation generators to use it. + + This complements docstrings. + + The string value passed is available in the attribute `documentation`. + + Example: + + ```Python + from typing import Annotated + from annotated_doc import Doc + + def hi(name: Annotated[str, Doc("Who to say hi to")]) -> None: + print(f"Hi, {name}!") + ``` + """ + + def __init__(self, documentation: str, /) -> None: + self.documentation = documentation + + def __repr__(self) -> str: + return f"Doc({self.documentation!r})" + + def __hash__(self) -> int: + return hash(self.documentation) + + def __eq__(self, other: object) -> bool: + if not isinstance(other, Doc): + return NotImplemented + return self.documentation == other.documentation diff --git a/venv/lib/python3.11/site-packages/annotated_doc/py.typed b/venv/lib/python3.11/site-packages/annotated_doc/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/annotated_types-0.7.0.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/annotated_types-0.7.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/annotated_types-0.7.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/annotated_types-0.7.0.dist-info/METADATA b/venv/lib/python3.11/site-packages/annotated_types-0.7.0.dist-info/METADATA new file mode 100644 index 0000000..3ac05cf --- /dev/null +++ b/venv/lib/python3.11/site-packages/annotated_types-0.7.0.dist-info/METADATA @@ -0,0 +1,295 @@ +Metadata-Version: 2.3 +Name: annotated-types +Version: 0.7.0 +Summary: Reusable constraint types to use with typing.Annotated +Project-URL: Homepage, https://github.com/annotated-types/annotated-types +Project-URL: Source, https://github.com/annotated-types/annotated-types +Project-URL: Changelog, https://github.com/annotated-types/annotated-types/releases +Author-email: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com>, Samuel Colvin , Zac Hatfield-Dodds +License-File: LICENSE +Classifier: Development Status :: 4 - Beta +Classifier: Environment :: Console +Classifier: Environment :: MacOS X +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: Information Technology +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: POSIX :: Linux +Classifier: Operating System :: Unix +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Typing :: Typed +Requires-Python: >=3.8 +Requires-Dist: typing-extensions>=4.0.0; python_version < '3.9' +Description-Content-Type: text/markdown + +# annotated-types + +[![CI](https://github.com/annotated-types/annotated-types/workflows/CI/badge.svg?event=push)](https://github.com/annotated-types/annotated-types/actions?query=event%3Apush+branch%3Amain+workflow%3ACI) +[![pypi](https://img.shields.io/pypi/v/annotated-types.svg)](https://pypi.python.org/pypi/annotated-types) +[![versions](https://img.shields.io/pypi/pyversions/annotated-types.svg)](https://github.com/annotated-types/annotated-types) +[![license](https://img.shields.io/github/license/annotated-types/annotated-types.svg)](https://github.com/annotated-types/annotated-types/blob/main/LICENSE) + +[PEP-593](https://peps.python.org/pep-0593/) added `typing.Annotated` as a way of +adding context-specific metadata to existing types, and specifies that +`Annotated[T, x]` _should_ be treated as `T` by any tool or library without special +logic for `x`. + +This package provides metadata objects which can be used to represent common +constraints such as upper and lower bounds on scalar values and collection sizes, +a `Predicate` marker for runtime checks, and +descriptions of how we intend these metadata to be interpreted. In some cases, +we also note alternative representations which do not require this package. + +## Install + +```bash +pip install annotated-types +``` + +## Examples + +```python +from typing import Annotated +from annotated_types import Gt, Len, Predicate + +class MyClass: + age: Annotated[int, Gt(18)] # Valid: 19, 20, ... + # Invalid: 17, 18, "19", 19.0, ... + factors: list[Annotated[int, Predicate(is_prime)]] # Valid: 2, 3, 5, 7, 11, ... + # Invalid: 4, 8, -2, 5.0, "prime", ... + + my_list: Annotated[list[int], Len(0, 10)] # Valid: [], [10, 20, 30, 40, 50] + # Invalid: (1, 2), ["abc"], [0] * 20 +``` + +## Documentation + +_While `annotated-types` avoids runtime checks for performance, users should not +construct invalid combinations such as `MultipleOf("non-numeric")` or `Annotated[int, Len(3)]`. +Downstream implementors may choose to raise an error, emit a warning, silently ignore +a metadata item, etc., if the metadata objects described below are used with an +incompatible type - or for any other reason!_ + +### Gt, Ge, Lt, Le + +Express inclusive and/or exclusive bounds on orderable values - which may be numbers, +dates, times, strings, sets, etc. Note that the boundary value need not be of the +same type that was annotated, so long as they can be compared: `Annotated[int, Gt(1.5)]` +is fine, for example, and implies that the value is an integer x such that `x > 1.5`. + +We suggest that implementors may also interpret `functools.partial(operator.le, 1.5)` +as being equivalent to `Gt(1.5)`, for users who wish to avoid a runtime dependency on +the `annotated-types` package. + +To be explicit, these types have the following meanings: + +* `Gt(x)` - value must be "Greater Than" `x` - equivalent to exclusive minimum +* `Ge(x)` - value must be "Greater than or Equal" to `x` - equivalent to inclusive minimum +* `Lt(x)` - value must be "Less Than" `x` - equivalent to exclusive maximum +* `Le(x)` - value must be "Less than or Equal" to `x` - equivalent to inclusive maximum + +### Interval + +`Interval(gt, ge, lt, le)` allows you to specify an upper and lower bound with a single +metadata object. `None` attributes should be ignored, and non-`None` attributes +treated as per the single bounds above. + +### MultipleOf + +`MultipleOf(multiple_of=x)` might be interpreted in two ways: + +1. Python semantics, implying `value % multiple_of == 0`, or +2. [JSONschema semantics](https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.6.2.1), + where `int(value / multiple_of) == value / multiple_of`. + +We encourage users to be aware of these two common interpretations and their +distinct behaviours, especially since very large or non-integer numbers make +it easy to cause silent data corruption due to floating-point imprecision. + +We encourage libraries to carefully document which interpretation they implement. + +### MinLen, MaxLen, Len + +`Len()` implies that `min_length <= len(value) <= max_length` - lower and upper bounds are inclusive. + +As well as `Len()` which can optionally include upper and lower bounds, we also +provide `MinLen(x)` and `MaxLen(y)` which are equivalent to `Len(min_length=x)` +and `Len(max_length=y)` respectively. + +`Len`, `MinLen`, and `MaxLen` may be used with any type which supports `len(value)`. + +Examples of usage: + +* `Annotated[list, MaxLen(10)]` (or `Annotated[list, Len(max_length=10))`) - list must have a length of 10 or less +* `Annotated[str, MaxLen(10)]` - string must have a length of 10 or less +* `Annotated[list, MinLen(3))` (or `Annotated[list, Len(min_length=3))`) - list must have a length of 3 or more +* `Annotated[list, Len(4, 6)]` - list must have a length of 4, 5, or 6 +* `Annotated[list, Len(8, 8)]` - list must have a length of exactly 8 + +#### Changed in v0.4.0 + +* `min_inclusive` has been renamed to `min_length`, no change in meaning +* `max_exclusive` has been renamed to `max_length`, upper bound is now **inclusive** instead of **exclusive** +* The recommendation that slices are interpreted as `Len` has been removed due to ambiguity and different semantic + meaning of the upper bound in slices vs. `Len` + +See [issue #23](https://github.com/annotated-types/annotated-types/issues/23) for discussion. + +### Timezone + +`Timezone` can be used with a `datetime` or a `time` to express which timezones +are allowed. `Annotated[datetime, Timezone(None)]` must be a naive datetime. +`Timezone[...]` ([literal ellipsis](https://docs.python.org/3/library/constants.html#Ellipsis)) +expresses that any timezone-aware datetime is allowed. You may also pass a specific +timezone string or [`tzinfo`](https://docs.python.org/3/library/datetime.html#tzinfo-objects) +object such as `Timezone(timezone.utc)` or `Timezone("Africa/Abidjan")` to express that you only +allow a specific timezone, though we note that this is often a symptom of fragile design. + +#### Changed in v0.x.x + +* `Timezone` accepts [`tzinfo`](https://docs.python.org/3/library/datetime.html#tzinfo-objects) objects instead of + `timezone`, extending compatibility to [`zoneinfo`](https://docs.python.org/3/library/zoneinfo.html) and third party libraries. + +### Unit + +`Unit(unit: str)` expresses that the annotated numeric value is the magnitude of +a quantity with the specified unit. For example, `Annotated[float, Unit("m/s")]` +would be a float representing a velocity in meters per second. + +Please note that `annotated_types` itself makes no attempt to parse or validate +the unit string in any way. That is left entirely to downstream libraries, +such as [`pint`](https://pint.readthedocs.io) or +[`astropy.units`](https://docs.astropy.org/en/stable/units/). + +An example of how a library might use this metadata: + +```python +from annotated_types import Unit +from typing import Annotated, TypeVar, Callable, Any, get_origin, get_args + +# given a type annotated with a unit: +Meters = Annotated[float, Unit("m")] + + +# you can cast the annotation to a specific unit type with any +# callable that accepts a string and returns the desired type +T = TypeVar("T") +def cast_unit(tp: Any, unit_cls: Callable[[str], T]) -> T | None: + if get_origin(tp) is Annotated: + for arg in get_args(tp): + if isinstance(arg, Unit): + return unit_cls(arg.unit) + return None + + +# using `pint` +import pint +pint_unit = cast_unit(Meters, pint.Unit) + + +# using `astropy.units` +import astropy.units as u +astropy_unit = cast_unit(Meters, u.Unit) +``` + +### Predicate + +`Predicate(func: Callable)` expresses that `func(value)` is truthy for valid values. +Users should prefer the statically inspectable metadata above, but if you need +the full power and flexibility of arbitrary runtime predicates... here it is. + +For some common constraints, we provide generic types: + +* `IsLower = Annotated[T, Predicate(str.islower)]` +* `IsUpper = Annotated[T, Predicate(str.isupper)]` +* `IsDigit = Annotated[T, Predicate(str.isdigit)]` +* `IsFinite = Annotated[T, Predicate(math.isfinite)]` +* `IsNotFinite = Annotated[T, Predicate(Not(math.isfinite))]` +* `IsNan = Annotated[T, Predicate(math.isnan)]` +* `IsNotNan = Annotated[T, Predicate(Not(math.isnan))]` +* `IsInfinite = Annotated[T, Predicate(math.isinf)]` +* `IsNotInfinite = Annotated[T, Predicate(Not(math.isinf))]` + +so that you can write e.g. `x: IsFinite[float] = 2.0` instead of the longer +(but exactly equivalent) `x: Annotated[float, Predicate(math.isfinite)] = 2.0`. + +Some libraries might have special logic to handle known or understandable predicates, +for example by checking for `str.isdigit` and using its presence to both call custom +logic to enforce digit-only strings, and customise some generated external schema. +Users are therefore encouraged to avoid indirection like `lambda s: s.lower()`, in +favor of introspectable methods such as `str.lower` or `re.compile("pattern").search`. + +To enable basic negation of commonly used predicates like `math.isnan` without introducing introspection that makes it impossible for implementers to introspect the predicate we provide a `Not` wrapper that simply negates the predicate in an introspectable manner. Several of the predicates listed above are created in this manner. + +We do not specify what behaviour should be expected for predicates that raise +an exception. For example `Annotated[int, Predicate(str.isdigit)]` might silently +skip invalid constraints, or statically raise an error; or it might try calling it +and then propagate or discard the resulting +`TypeError: descriptor 'isdigit' for 'str' objects doesn't apply to a 'int' object` +exception. We encourage libraries to document the behaviour they choose. + +### Doc + +`doc()` can be used to add documentation information in `Annotated`, for function and method parameters, variables, class attributes, return types, and any place where `Annotated` can be used. + +It expects a value that can be statically analyzed, as the main use case is for static analysis, editors, documentation generators, and similar tools. + +It returns a `DocInfo` class with a single attribute `documentation` containing the value passed to `doc()`. + +This is the early adopter's alternative form of the [`typing-doc` proposal](https://github.com/tiangolo/fastapi/blob/typing-doc/typing_doc.md). + +### Integrating downstream types with `GroupedMetadata` + +Implementers may choose to provide a convenience wrapper that groups multiple pieces of metadata. +This can help reduce verbosity and cognitive overhead for users. +For example, an implementer like Pydantic might provide a `Field` or `Meta` type that accepts keyword arguments and transforms these into low-level metadata: + +```python +from dataclasses import dataclass +from typing import Iterator +from annotated_types import GroupedMetadata, Ge + +@dataclass +class Field(GroupedMetadata): + ge: int | None = None + description: str | None = None + + def __iter__(self) -> Iterator[object]: + # Iterating over a GroupedMetadata object should yield annotated-types + # constraint metadata objects which describe it as fully as possible, + # and may include other unknown objects too. + if self.ge is not None: + yield Ge(self.ge) + if self.description is not None: + yield Description(self.description) +``` + +Libraries consuming annotated-types constraints should check for `GroupedMetadata` and unpack it by iterating over the object and treating the results as if they had been "unpacked" in the `Annotated` type. The same logic should be applied to the [PEP 646 `Unpack` type](https://peps.python.org/pep-0646/), so that `Annotated[T, Field(...)]`, `Annotated[T, Unpack[Field(...)]]` and `Annotated[T, *Field(...)]` are all treated consistently. + +Libraries consuming annotated-types should also ignore any metadata they do not recongize that came from unpacking a `GroupedMetadata`, just like they ignore unrecognized metadata in `Annotated` itself. + +Our own `annotated_types.Interval` class is a `GroupedMetadata` which unpacks itself into `Gt`, `Lt`, etc., so this is not an abstract concern. Similarly, `annotated_types.Len` is a `GroupedMetadata` which unpacks itself into `MinLen` (optionally) and `MaxLen`. + +### Consuming metadata + +We intend to not be prescriptive as to _how_ the metadata and constraints are used, but as an example of how one might parse constraints from types annotations see our [implementation in `test_main.py`](https://github.com/annotated-types/annotated-types/blob/f59cf6d1b5255a0fe359b93896759a180bec30ae/tests/test_main.py#L94-L103). + +It is up to the implementer to determine how this metadata is used. +You could use the metadata for runtime type checking, for generating schemas or to generate example data, amongst other use cases. + +## Design & History + +This package was designed at the PyCon 2022 sprints by the maintainers of Pydantic +and Hypothesis, with the goal of making it as easy as possible for end-users to +provide more informative annotations for use by runtime libraries. + +It is deliberately minimal, and following PEP-593 allows considerable downstream +discretion in what (if anything!) they choose to support. Nonetheless, we expect +that staying simple and covering _only_ the most common use-cases will give users +and maintainers the best experience we can. If you'd like more constraints for your +types - follow our lead, by defining them and documenting them downstream! diff --git a/venv/lib/python3.11/site-packages/annotated_types-0.7.0.dist-info/RECORD b/venv/lib/python3.11/site-packages/annotated_types-0.7.0.dist-info/RECORD new file mode 100644 index 0000000..568bd52 --- /dev/null +++ b/venv/lib/python3.11/site-packages/annotated_types-0.7.0.dist-info/RECORD @@ -0,0 +1,10 @@ +annotated_types-0.7.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +annotated_types-0.7.0.dist-info/METADATA,sha256=7ltqxksJJ0wCYFGBNIQCWTlWQGeAH0hRFdnK3CB895E,15046 +annotated_types-0.7.0.dist-info/RECORD,, +annotated_types-0.7.0.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87 +annotated_types-0.7.0.dist-info/licenses/LICENSE,sha256=_hBJiEsaDZNCkB6I4H8ykl0ksxIdmXK2poBfuYJLCV0,1083 +annotated_types/__init__.py,sha256=RynLsRKUEGI0KimXydlD1fZEfEzWwDo0Uon3zOKhG1Q,13819 +annotated_types/__pycache__/__init__.cpython-311.pyc,, +annotated_types/__pycache__/test_cases.cpython-311.pyc,, +annotated_types/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +annotated_types/test_cases.py,sha256=zHFX6EpcMbGJ8FzBYDbO56bPwx_DYIVSKbZM-4B3_lg,6421 diff --git a/venv/lib/python3.11/site-packages/annotated_types-0.7.0.dist-info/WHEEL b/venv/lib/python3.11/site-packages/annotated_types-0.7.0.dist-info/WHEEL new file mode 100644 index 0000000..516596c --- /dev/null +++ b/venv/lib/python3.11/site-packages/annotated_types-0.7.0.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: hatchling 1.24.2 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE new file mode 100644 index 0000000..d99323a --- /dev/null +++ b/venv/lib/python3.11/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2022 the contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/annotated_types/__init__.py b/venv/lib/python3.11/site-packages/annotated_types/__init__.py new file mode 100644 index 0000000..74e0dee --- /dev/null +++ b/venv/lib/python3.11/site-packages/annotated_types/__init__.py @@ -0,0 +1,432 @@ +import math +import sys +import types +from dataclasses import dataclass +from datetime import tzinfo +from typing import TYPE_CHECKING, Any, Callable, Iterator, Optional, SupportsFloat, SupportsIndex, TypeVar, Union + +if sys.version_info < (3, 8): + from typing_extensions import Protocol, runtime_checkable +else: + from typing import Protocol, runtime_checkable + +if sys.version_info < (3, 9): + from typing_extensions import Annotated, Literal +else: + from typing import Annotated, Literal + +if sys.version_info < (3, 10): + EllipsisType = type(Ellipsis) + KW_ONLY = {} + SLOTS = {} +else: + from types import EllipsisType + + KW_ONLY = {"kw_only": True} + SLOTS = {"slots": True} + + +__all__ = ( + 'BaseMetadata', + 'GroupedMetadata', + 'Gt', + 'Ge', + 'Lt', + 'Le', + 'Interval', + 'MultipleOf', + 'MinLen', + 'MaxLen', + 'Len', + 'Timezone', + 'Predicate', + 'LowerCase', + 'UpperCase', + 'IsDigits', + 'IsFinite', + 'IsNotFinite', + 'IsNan', + 'IsNotNan', + 'IsInfinite', + 'IsNotInfinite', + 'doc', + 'DocInfo', + '__version__', +) + +__version__ = '0.7.0' + + +T = TypeVar('T') + + +# arguments that start with __ are considered +# positional only +# see https://peps.python.org/pep-0484/#positional-only-arguments + + +class SupportsGt(Protocol): + def __gt__(self: T, __other: T) -> bool: + ... + + +class SupportsGe(Protocol): + def __ge__(self: T, __other: T) -> bool: + ... + + +class SupportsLt(Protocol): + def __lt__(self: T, __other: T) -> bool: + ... + + +class SupportsLe(Protocol): + def __le__(self: T, __other: T) -> bool: + ... + + +class SupportsMod(Protocol): + def __mod__(self: T, __other: T) -> T: + ... + + +class SupportsDiv(Protocol): + def __div__(self: T, __other: T) -> T: + ... + + +class BaseMetadata: + """Base class for all metadata. + + This exists mainly so that implementers + can do `isinstance(..., BaseMetadata)` while traversing field annotations. + """ + + __slots__ = () + + +@dataclass(frozen=True, **SLOTS) +class Gt(BaseMetadata): + """Gt(gt=x) implies that the value must be greater than x. + + It can be used with any type that supports the ``>`` operator, + including numbers, dates and times, strings, sets, and so on. + """ + + gt: SupportsGt + + +@dataclass(frozen=True, **SLOTS) +class Ge(BaseMetadata): + """Ge(ge=x) implies that the value must be greater than or equal to x. + + It can be used with any type that supports the ``>=`` operator, + including numbers, dates and times, strings, sets, and so on. + """ + + ge: SupportsGe + + +@dataclass(frozen=True, **SLOTS) +class Lt(BaseMetadata): + """Lt(lt=x) implies that the value must be less than x. + + It can be used with any type that supports the ``<`` operator, + including numbers, dates and times, strings, sets, and so on. + """ + + lt: SupportsLt + + +@dataclass(frozen=True, **SLOTS) +class Le(BaseMetadata): + """Le(le=x) implies that the value must be less than or equal to x. + + It can be used with any type that supports the ``<=`` operator, + including numbers, dates and times, strings, sets, and so on. + """ + + le: SupportsLe + + +@runtime_checkable +class GroupedMetadata(Protocol): + """A grouping of multiple objects, like typing.Unpack. + + `GroupedMetadata` on its own is not metadata and has no meaning. + All of the constraints and metadata should be fully expressable + in terms of the `BaseMetadata`'s returned by `GroupedMetadata.__iter__()`. + + Concrete implementations should override `GroupedMetadata.__iter__()` + to add their own metadata. + For example: + + >>> @dataclass + >>> class Field(GroupedMetadata): + >>> gt: float | None = None + >>> description: str | None = None + ... + >>> def __iter__(self) -> Iterable[object]: + >>> if self.gt is not None: + >>> yield Gt(self.gt) + >>> if self.description is not None: + >>> yield Description(self.gt) + + Also see the implementation of `Interval` below for an example. + + Parsers should recognize this and unpack it so that it can be used + both with and without unpacking: + + - `Annotated[int, Field(...)]` (parser must unpack Field) + - `Annotated[int, *Field(...)]` (PEP-646) + """ # noqa: trailing-whitespace + + @property + def __is_annotated_types_grouped_metadata__(self) -> Literal[True]: + return True + + def __iter__(self) -> Iterator[object]: + ... + + if not TYPE_CHECKING: + __slots__ = () # allow subclasses to use slots + + def __init_subclass__(cls, *args: Any, **kwargs: Any) -> None: + # Basic ABC like functionality without the complexity of an ABC + super().__init_subclass__(*args, **kwargs) + if cls.__iter__ is GroupedMetadata.__iter__: + raise TypeError("Can't subclass GroupedMetadata without implementing __iter__") + + def __iter__(self) -> Iterator[object]: # noqa: F811 + raise NotImplementedError # more helpful than "None has no attribute..." type errors + + +@dataclass(frozen=True, **KW_ONLY, **SLOTS) +class Interval(GroupedMetadata): + """Interval can express inclusive or exclusive bounds with a single object. + + It accepts keyword arguments ``gt``, ``ge``, ``lt``, and/or ``le``, which + are interpreted the same way as the single-bound constraints. + """ + + gt: Union[SupportsGt, None] = None + ge: Union[SupportsGe, None] = None + lt: Union[SupportsLt, None] = None + le: Union[SupportsLe, None] = None + + def __iter__(self) -> Iterator[BaseMetadata]: + """Unpack an Interval into zero or more single-bounds.""" + if self.gt is not None: + yield Gt(self.gt) + if self.ge is not None: + yield Ge(self.ge) + if self.lt is not None: + yield Lt(self.lt) + if self.le is not None: + yield Le(self.le) + + +@dataclass(frozen=True, **SLOTS) +class MultipleOf(BaseMetadata): + """MultipleOf(multiple_of=x) might be interpreted in two ways: + + 1. Python semantics, implying ``value % multiple_of == 0``, or + 2. JSONschema semantics, where ``int(value / multiple_of) == value / multiple_of`` + + We encourage users to be aware of these two common interpretations, + and libraries to carefully document which they implement. + """ + + multiple_of: Union[SupportsDiv, SupportsMod] + + +@dataclass(frozen=True, **SLOTS) +class MinLen(BaseMetadata): + """ + MinLen() implies minimum inclusive length, + e.g. ``len(value) >= min_length``. + """ + + min_length: Annotated[int, Ge(0)] + + +@dataclass(frozen=True, **SLOTS) +class MaxLen(BaseMetadata): + """ + MaxLen() implies maximum inclusive length, + e.g. ``len(value) <= max_length``. + """ + + max_length: Annotated[int, Ge(0)] + + +@dataclass(frozen=True, **SLOTS) +class Len(GroupedMetadata): + """ + Len() implies that ``min_length <= len(value) <= max_length``. + + Upper bound may be omitted or ``None`` to indicate no upper length bound. + """ + + min_length: Annotated[int, Ge(0)] = 0 + max_length: Optional[Annotated[int, Ge(0)]] = None + + def __iter__(self) -> Iterator[BaseMetadata]: + """Unpack a Len into zone or more single-bounds.""" + if self.min_length > 0: + yield MinLen(self.min_length) + if self.max_length is not None: + yield MaxLen(self.max_length) + + +@dataclass(frozen=True, **SLOTS) +class Timezone(BaseMetadata): + """Timezone(tz=...) requires a datetime to be aware (or ``tz=None``, naive). + + ``Annotated[datetime, Timezone(None)]`` must be a naive datetime. + ``Timezone[...]`` (the ellipsis literal) expresses that the datetime must be + tz-aware but any timezone is allowed. + + You may also pass a specific timezone string or tzinfo object such as + ``Timezone(timezone.utc)`` or ``Timezone("Africa/Abidjan")`` to express that + you only allow a specific timezone, though we note that this is often + a symptom of poor design. + """ + + tz: Union[str, tzinfo, EllipsisType, None] + + +@dataclass(frozen=True, **SLOTS) +class Unit(BaseMetadata): + """Indicates that the value is a physical quantity with the specified unit. + + It is intended for usage with numeric types, where the value represents the + magnitude of the quantity. For example, ``distance: Annotated[float, Unit('m')]`` + or ``speed: Annotated[float, Unit('m/s')]``. + + Interpretation of the unit string is left to the discretion of the consumer. + It is suggested to follow conventions established by python libraries that work + with physical quantities, such as + + - ``pint`` : + - ``astropy.units``: + + For indicating a quantity with a certain dimensionality but without a specific unit + it is recommended to use square brackets, e.g. `Annotated[float, Unit('[time]')]`. + Note, however, ``annotated_types`` itself makes no use of the unit string. + """ + + unit: str + + +@dataclass(frozen=True, **SLOTS) +class Predicate(BaseMetadata): + """``Predicate(func: Callable)`` implies `func(value)` is truthy for valid values. + + Users should prefer statically inspectable metadata, but if you need the full + power and flexibility of arbitrary runtime predicates... here it is. + + We provide a few predefined predicates for common string constraints: + ``IsLower = Predicate(str.islower)``, ``IsUpper = Predicate(str.isupper)``, and + ``IsDigits = Predicate(str.isdigit)``. Users are encouraged to use methods which + can be given special handling, and avoid indirection like ``lambda s: s.lower()``. + + Some libraries might have special logic to handle certain predicates, e.g. by + checking for `str.isdigit` and using its presence to both call custom logic to + enforce digit-only strings, and customise some generated external schema. + + We do not specify what behaviour should be expected for predicates that raise + an exception. For example `Annotated[int, Predicate(str.isdigit)]` might silently + skip invalid constraints, or statically raise an error; or it might try calling it + and then propagate or discard the resulting exception. + """ + + func: Callable[[Any], bool] + + def __repr__(self) -> str: + if getattr(self.func, "__name__", "") == "": + return f"{self.__class__.__name__}({self.func!r})" + if isinstance(self.func, (types.MethodType, types.BuiltinMethodType)) and ( + namespace := getattr(self.func.__self__, "__name__", None) + ): + return f"{self.__class__.__name__}({namespace}.{self.func.__name__})" + if isinstance(self.func, type(str.isascii)): # method descriptor + return f"{self.__class__.__name__}({self.func.__qualname__})" + return f"{self.__class__.__name__}({self.func.__name__})" + + +@dataclass +class Not: + func: Callable[[Any], bool] + + def __call__(self, __v: Any) -> bool: + return not self.func(__v) + + +_StrType = TypeVar("_StrType", bound=str) + +LowerCase = Annotated[_StrType, Predicate(str.islower)] +""" +Return True if the string is a lowercase string, False otherwise. + +A string is lowercase if all cased characters in the string are lowercase and there is at least one cased character in the string. +""" # noqa: E501 +UpperCase = Annotated[_StrType, Predicate(str.isupper)] +""" +Return True if the string is an uppercase string, False otherwise. + +A string is uppercase if all cased characters in the string are uppercase and there is at least one cased character in the string. +""" # noqa: E501 +IsDigit = Annotated[_StrType, Predicate(str.isdigit)] +IsDigits = IsDigit # type: ignore # plural for backwards compatibility, see #63 +""" +Return True if the string is a digit string, False otherwise. + +A string is a digit string if all characters in the string are digits and there is at least one character in the string. +""" # noqa: E501 +IsAscii = Annotated[_StrType, Predicate(str.isascii)] +""" +Return True if all characters in the string are ASCII, False otherwise. + +ASCII characters have code points in the range U+0000-U+007F. Empty string is ASCII too. +""" + +_NumericType = TypeVar('_NumericType', bound=Union[SupportsFloat, SupportsIndex]) +IsFinite = Annotated[_NumericType, Predicate(math.isfinite)] +"""Return True if x is neither an infinity nor a NaN, and False otherwise.""" +IsNotFinite = Annotated[_NumericType, Predicate(Not(math.isfinite))] +"""Return True if x is one of infinity or NaN, and False otherwise""" +IsNan = Annotated[_NumericType, Predicate(math.isnan)] +"""Return True if x is a NaN (not a number), and False otherwise.""" +IsNotNan = Annotated[_NumericType, Predicate(Not(math.isnan))] +"""Return True if x is anything but NaN (not a number), and False otherwise.""" +IsInfinite = Annotated[_NumericType, Predicate(math.isinf)] +"""Return True if x is a positive or negative infinity, and False otherwise.""" +IsNotInfinite = Annotated[_NumericType, Predicate(Not(math.isinf))] +"""Return True if x is neither a positive or negative infinity, and False otherwise.""" + +try: + from typing_extensions import DocInfo, doc # type: ignore [attr-defined] +except ImportError: + + @dataclass(frozen=True, **SLOTS) + class DocInfo: # type: ignore [no-redef] + """ " + The return value of doc(), mainly to be used by tools that want to extract the + Annotated documentation at runtime. + """ + + documentation: str + """The documentation string passed to doc().""" + + def doc( + documentation: str, + ) -> DocInfo: + """ + Add documentation to a type annotation inside of Annotated. + + For example: + + >>> def hi(name: Annotated[int, doc("The name of the user")]) -> None: ... + """ + return DocInfo(documentation) diff --git a/venv/lib/python3.11/site-packages/annotated_types/py.typed b/venv/lib/python3.11/site-packages/annotated_types/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/annotated_types/test_cases.py b/venv/lib/python3.11/site-packages/annotated_types/test_cases.py new file mode 100644 index 0000000..d9164d6 --- /dev/null +++ b/venv/lib/python3.11/site-packages/annotated_types/test_cases.py @@ -0,0 +1,151 @@ +import math +import sys +from datetime import date, datetime, timedelta, timezone +from decimal import Decimal +from typing import Any, Dict, Iterable, Iterator, List, NamedTuple, Set, Tuple + +if sys.version_info < (3, 9): + from typing_extensions import Annotated +else: + from typing import Annotated + +import annotated_types as at + + +class Case(NamedTuple): + """ + A test case for `annotated_types`. + """ + + annotation: Any + valid_cases: Iterable[Any] + invalid_cases: Iterable[Any] + + +def cases() -> Iterable[Case]: + # Gt, Ge, Lt, Le + yield Case(Annotated[int, at.Gt(4)], (5, 6, 1000), (4, 0, -1)) + yield Case(Annotated[float, at.Gt(0.5)], (0.6, 0.7, 0.8, 0.9), (0.5, 0.0, -0.1)) + yield Case( + Annotated[datetime, at.Gt(datetime(2000, 1, 1))], + [datetime(2000, 1, 2), datetime(2000, 1, 3)], + [datetime(2000, 1, 1), datetime(1999, 12, 31)], + ) + yield Case( + Annotated[datetime, at.Gt(date(2000, 1, 1))], + [date(2000, 1, 2), date(2000, 1, 3)], + [date(2000, 1, 1), date(1999, 12, 31)], + ) + yield Case( + Annotated[datetime, at.Gt(Decimal('1.123'))], + [Decimal('1.1231'), Decimal('123')], + [Decimal('1.123'), Decimal('0')], + ) + + yield Case(Annotated[int, at.Ge(4)], (4, 5, 6, 1000, 4), (0, -1)) + yield Case(Annotated[float, at.Ge(0.5)], (0.5, 0.6, 0.7, 0.8, 0.9), (0.4, 0.0, -0.1)) + yield Case( + Annotated[datetime, at.Ge(datetime(2000, 1, 1))], + [datetime(2000, 1, 2), datetime(2000, 1, 3)], + [datetime(1998, 1, 1), datetime(1999, 12, 31)], + ) + + yield Case(Annotated[int, at.Lt(4)], (0, -1), (4, 5, 6, 1000, 4)) + yield Case(Annotated[float, at.Lt(0.5)], (0.4, 0.0, -0.1), (0.5, 0.6, 0.7, 0.8, 0.9)) + yield Case( + Annotated[datetime, at.Lt(datetime(2000, 1, 1))], + [datetime(1999, 12, 31), datetime(1999, 12, 31)], + [datetime(2000, 1, 2), datetime(2000, 1, 3)], + ) + + yield Case(Annotated[int, at.Le(4)], (4, 0, -1), (5, 6, 1000)) + yield Case(Annotated[float, at.Le(0.5)], (0.5, 0.0, -0.1), (0.6, 0.7, 0.8, 0.9)) + yield Case( + Annotated[datetime, at.Le(datetime(2000, 1, 1))], + [datetime(2000, 1, 1), datetime(1999, 12, 31)], + [datetime(2000, 1, 2), datetime(2000, 1, 3)], + ) + + # Interval + yield Case(Annotated[int, at.Interval(gt=4)], (5, 6, 1000), (4, 0, -1)) + yield Case(Annotated[int, at.Interval(gt=4, lt=10)], (5, 6), (4, 10, 1000, 0, -1)) + yield Case(Annotated[float, at.Interval(ge=0.5, le=1)], (0.5, 0.9, 1), (0.49, 1.1)) + yield Case( + Annotated[datetime, at.Interval(gt=datetime(2000, 1, 1), le=datetime(2000, 1, 3))], + [datetime(2000, 1, 2), datetime(2000, 1, 3)], + [datetime(2000, 1, 1), datetime(2000, 1, 4)], + ) + + yield Case(Annotated[int, at.MultipleOf(multiple_of=3)], (0, 3, 9), (1, 2, 4)) + yield Case(Annotated[float, at.MultipleOf(multiple_of=0.5)], (0, 0.5, 1, 1.5), (0.4, 1.1)) + + # lengths + + yield Case(Annotated[str, at.MinLen(3)], ('123', '1234', 'x' * 10), ('', '1', '12')) + yield Case(Annotated[str, at.Len(3)], ('123', '1234', 'x' * 10), ('', '1', '12')) + yield Case(Annotated[List[int], at.MinLen(3)], ([1, 2, 3], [1, 2, 3, 4], [1] * 10), ([], [1], [1, 2])) + yield Case(Annotated[List[int], at.Len(3)], ([1, 2, 3], [1, 2, 3, 4], [1] * 10), ([], [1], [1, 2])) + + yield Case(Annotated[str, at.MaxLen(4)], ('', '1234'), ('12345', 'x' * 10)) + yield Case(Annotated[str, at.Len(0, 4)], ('', '1234'), ('12345', 'x' * 10)) + yield Case(Annotated[List[str], at.MaxLen(4)], ([], ['a', 'bcdef'], ['a', 'b', 'c']), (['a'] * 5, ['b'] * 10)) + yield Case(Annotated[List[str], at.Len(0, 4)], ([], ['a', 'bcdef'], ['a', 'b', 'c']), (['a'] * 5, ['b'] * 10)) + + yield Case(Annotated[str, at.Len(3, 5)], ('123', '12345'), ('', '1', '12', '123456', 'x' * 10)) + yield Case(Annotated[str, at.Len(3, 3)], ('123',), ('12', '1234')) + + yield Case(Annotated[Dict[int, int], at.Len(2, 3)], [{1: 1, 2: 2}], [{}, {1: 1}, {1: 1, 2: 2, 3: 3, 4: 4}]) + yield Case(Annotated[Set[int], at.Len(2, 3)], ({1, 2}, {1, 2, 3}), (set(), {1}, {1, 2, 3, 4})) + yield Case(Annotated[Tuple[int, ...], at.Len(2, 3)], ((1, 2), (1, 2, 3)), ((), (1,), (1, 2, 3, 4))) + + # Timezone + + yield Case( + Annotated[datetime, at.Timezone(None)], [datetime(2000, 1, 1)], [datetime(2000, 1, 1, tzinfo=timezone.utc)] + ) + yield Case( + Annotated[datetime, at.Timezone(...)], [datetime(2000, 1, 1, tzinfo=timezone.utc)], [datetime(2000, 1, 1)] + ) + yield Case( + Annotated[datetime, at.Timezone(timezone.utc)], + [datetime(2000, 1, 1, tzinfo=timezone.utc)], + [datetime(2000, 1, 1), datetime(2000, 1, 1, tzinfo=timezone(timedelta(hours=6)))], + ) + yield Case( + Annotated[datetime, at.Timezone('Europe/London')], + [datetime(2000, 1, 1, tzinfo=timezone(timedelta(0), name='Europe/London'))], + [datetime(2000, 1, 1), datetime(2000, 1, 1, tzinfo=timezone(timedelta(hours=6)))], + ) + + # Quantity + + yield Case(Annotated[float, at.Unit(unit='m')], (5, 4.2), ('5m', '4.2m')) + + # predicate types + + yield Case(at.LowerCase[str], ['abc', 'foobar'], ['', 'A', 'Boom']) + yield Case(at.UpperCase[str], ['ABC', 'DEFO'], ['', 'a', 'abc', 'AbC']) + yield Case(at.IsDigit[str], ['123'], ['', 'ab', 'a1b2']) + yield Case(at.IsAscii[str], ['123', 'foo bar'], ['£100', '😊', 'whatever 👀']) + + yield Case(Annotated[int, at.Predicate(lambda x: x % 2 == 0)], [0, 2, 4], [1, 3, 5]) + + yield Case(at.IsFinite[float], [1.23], [math.nan, math.inf, -math.inf]) + yield Case(at.IsNotFinite[float], [math.nan, math.inf], [1.23]) + yield Case(at.IsNan[float], [math.nan], [1.23, math.inf]) + yield Case(at.IsNotNan[float], [1.23, math.inf], [math.nan]) + yield Case(at.IsInfinite[float], [math.inf], [math.nan, 1.23]) + yield Case(at.IsNotInfinite[float], [math.nan, 1.23], [math.inf]) + + # check stacked predicates + yield Case(at.IsInfinite[Annotated[float, at.Predicate(lambda x: x > 0)]], [math.inf], [-math.inf, 1.23, math.nan]) + + # doc + yield Case(Annotated[int, at.doc("A number")], [1, 2], []) + + # custom GroupedMetadata + class MyCustomGroupedMetadata(at.GroupedMetadata): + def __iter__(self) -> Iterator[at.Predicate]: + yield at.Predicate(lambda x: float(x).is_integer()) + + yield Case(Annotated[float, MyCustomGroupedMetadata()], [0, 2.0], [0.01, 1.5]) diff --git a/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/METADATA b/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/METADATA new file mode 100644 index 0000000..8dde437 --- /dev/null +++ b/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/METADATA @@ -0,0 +1,94 @@ +Metadata-Version: 2.4 +Name: anyio +Version: 4.11.0 +Summary: High-level concurrency and networking framework on top of asyncio or Trio +Author-email: Alex Grönholm +License-Expression: MIT +Project-URL: Documentation, https://anyio.readthedocs.io/en/latest/ +Project-URL: Changelog, https://anyio.readthedocs.io/en/stable/versionhistory.html +Project-URL: Source code, https://github.com/agronholm/anyio +Project-URL: Issue tracker, https://github.com/agronholm/anyio/issues +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Framework :: AnyIO +Classifier: Typing :: Typed +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Requires-Python: >=3.9 +Description-Content-Type: text/x-rst +License-File: LICENSE +Requires-Dist: exceptiongroup>=1.0.2; python_version < "3.11" +Requires-Dist: idna>=2.8 +Requires-Dist: sniffio>=1.1 +Requires-Dist: typing_extensions>=4.5; python_version < "3.13" +Provides-Extra: trio +Requires-Dist: trio>=0.31.0; extra == "trio" +Dynamic: license-file + +.. image:: https://github.com/agronholm/anyio/actions/workflows/test.yml/badge.svg + :target: https://github.com/agronholm/anyio/actions/workflows/test.yml + :alt: Build Status +.. image:: https://coveralls.io/repos/github/agronholm/anyio/badge.svg?branch=master + :target: https://coveralls.io/github/agronholm/anyio?branch=master + :alt: Code Coverage +.. image:: https://readthedocs.org/projects/anyio/badge/?version=latest + :target: https://anyio.readthedocs.io/en/latest/?badge=latest + :alt: Documentation +.. image:: https://badges.gitter.im/gitterHQ/gitter.svg + :target: https://gitter.im/python-trio/AnyIO + :alt: Gitter chat + +AnyIO is an asynchronous networking and concurrency library that works on top of either asyncio_ or +Trio_. It implements Trio-like `structured concurrency`_ (SC) on top of asyncio and works in harmony +with the native SC of Trio itself. + +Applications and libraries written against AnyIO's API will run unmodified on either asyncio_ or +Trio_. AnyIO can also be adopted into a library or application incrementally – bit by bit, no full +refactoring necessary. It will blend in with the native libraries of your chosen backend. + +To find out why you might want to use AnyIO's APIs instead of asyncio's, you can read about it +`here `_. + +Documentation +------------- + +View full documentation at: https://anyio.readthedocs.io/ + +Features +-------- + +AnyIO offers the following functionality: + +* Task groups (nurseries_ in trio terminology) +* High-level networking (TCP, UDP and UNIX sockets) + + * `Happy eyeballs`_ algorithm for TCP connections (more robust than that of asyncio on Python + 3.8) + * async/await style UDP sockets (unlike asyncio where you still have to use Transports and + Protocols) + +* A versatile API for byte streams and object streams +* Inter-task synchronization and communication (locks, conditions, events, semaphores, object + streams) +* Worker threads +* Subprocesses +* Subinterpreter support for code parallelization (on Python 3.13 and later) +* Asynchronous file I/O (using worker threads) +* Signal handling + +AnyIO also comes with its own pytest_ plugin which also supports asynchronous fixtures. +It even works with the popular Hypothesis_ library. + +.. _asyncio: https://docs.python.org/3/library/asyncio.html +.. _Trio: https://github.com/python-trio/trio +.. _structured concurrency: https://en.wikipedia.org/wiki/Structured_concurrency +.. _nurseries: https://trio.readthedocs.io/en/stable/reference-core.html#nurseries-and-spawning +.. _Happy eyeballs: https://en.wikipedia.org/wiki/Happy_Eyeballs +.. _pytest: https://docs.pytest.org/en/latest/ +.. _Hypothesis: https://hypothesis.works/ diff --git a/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/RECORD b/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/RECORD new file mode 100644 index 0000000..bd503fa --- /dev/null +++ b/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/RECORD @@ -0,0 +1,90 @@ +anyio-4.11.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +anyio-4.11.0.dist-info/METADATA,sha256=yrQcStE3zgP4G-Zz-7qVaw99qb-DTM2gHgwP_1pABu4,4091 +anyio-4.11.0.dist-info/RECORD,, +anyio-4.11.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91 +anyio-4.11.0.dist-info/entry_points.txt,sha256=_d6Yu6uiaZmNe0CydowirE9Cmg7zUL2g08tQpoS3Qvc,39 +anyio-4.11.0.dist-info/licenses/LICENSE,sha256=U2GsncWPLvX9LpsJxoKXwX8ElQkJu8gCO9uC6s8iwrA,1081 +anyio-4.11.0.dist-info/top_level.txt,sha256=QglSMiWX8_5dpoVAEIHdEYzvqFMdSYWmCj6tYw2ITkQ,6 +anyio/__init__.py,sha256=M21FJC_0BhRH7AdXvs4z3uayj4ytNAxuJ7UnshLD5RM,6091 +anyio/__pycache__/__init__.cpython-311.pyc,, +anyio/__pycache__/from_thread.cpython-311.pyc,, +anyio/__pycache__/lowlevel.cpython-311.pyc,, +anyio/__pycache__/pytest_plugin.cpython-311.pyc,, +anyio/__pycache__/to_interpreter.cpython-311.pyc,, +anyio/__pycache__/to_process.cpython-311.pyc,, +anyio/__pycache__/to_thread.cpython-311.pyc,, +anyio/_backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +anyio/_backends/__pycache__/__init__.cpython-311.pyc,, +anyio/_backends/__pycache__/_asyncio.cpython-311.pyc,, +anyio/_backends/__pycache__/_trio.cpython-311.pyc,, +anyio/_backends/_asyncio.py,sha256=jTPlTu4WO9bTXUJkxFQ0P1GbG4I14nOWpD1FMzKmkvA,98052 +anyio/_backends/_trio.py,sha256=ScNVMQB0iiuJMAon1epQCVOVbIbf-Lxnfb5OxujzMok,42398 +anyio/_core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +anyio/_core/__pycache__/__init__.cpython-311.pyc,, +anyio/_core/__pycache__/_asyncio_selector_thread.cpython-311.pyc,, +anyio/_core/__pycache__/_contextmanagers.cpython-311.pyc,, +anyio/_core/__pycache__/_eventloop.cpython-311.pyc,, +anyio/_core/__pycache__/_exceptions.cpython-311.pyc,, +anyio/_core/__pycache__/_fileio.cpython-311.pyc,, +anyio/_core/__pycache__/_resources.cpython-311.pyc,, +anyio/_core/__pycache__/_signals.cpython-311.pyc,, +anyio/_core/__pycache__/_sockets.cpython-311.pyc,, +anyio/_core/__pycache__/_streams.cpython-311.pyc,, +anyio/_core/__pycache__/_subprocesses.cpython-311.pyc,, +anyio/_core/__pycache__/_synchronization.cpython-311.pyc,, +anyio/_core/__pycache__/_tasks.cpython-311.pyc,, +anyio/_core/__pycache__/_tempfile.cpython-311.pyc,, +anyio/_core/__pycache__/_testing.cpython-311.pyc,, +anyio/_core/__pycache__/_typedattr.cpython-311.pyc,, +anyio/_core/_asyncio_selector_thread.py,sha256=2PdxFM3cs02Kp6BSppbvmRT7q7asreTW5FgBxEsflBo,5626 +anyio/_core/_contextmanagers.py,sha256=YInBCabiEeS-UaP_Jdxa1CaFC71ETPW8HZTHIM8Rsc8,7215 +anyio/_core/_eventloop.py,sha256=mg_TuXTbfUiuWz2Evb19dxVSC2TVTOtypKpzHV7-tlI,4667 +anyio/_core/_exceptions.py,sha256=fR2SvRUBYVHvolNKbzWSLt8FC_5NFB2OAzGD738fD8Q,4257 +anyio/_core/_fileio.py,sha256=KATysDZP7bvwwjpUwEaGAc0xGouJgAPqNVpnBMTsToY,23332 +anyio/_core/_resources.py,sha256=NbmU5O5UX3xEyACnkmYX28Fmwdl-f-ny0tHym26e0w0,435 +anyio/_core/_signals.py,sha256=vulT1M1xdLYtAR-eY5TamIgaf1WTlOwOrMGwswlTTr8,905 +anyio/_core/_sockets.py,sha256=aTbgMr0qPmBPfrapxLykyajsmS7IAerhW9_Qk5r5E18,34311 +anyio/_core/_streams.py,sha256=OnaKgoDD-FcMSwLvkoAUGP51sG2ZdRvMpxt9q2w1gYA,1804 +anyio/_core/_subprocesses.py,sha256=EXm5igL7dj55iYkPlbYVAqtbqxJxjU-6OndSTIx9SRg,8047 +anyio/_core/_synchronization.py,sha256=pZ_9gl9g0bsb92-wnJ5HX-q9TgWf-SjK1Xo-DGZj2Ok,20858 +anyio/_core/_tasks.py,sha256=km6hVE1fsuIenya3MDud8KP6-J_bNzlgYC10wUxI7iA,4880 +anyio/_core/_tempfile.py,sha256=lHb7CW4FyIlpkf5ADAf4VmLHCKwEHF9nxqNyBCFFUiA,19697 +anyio/_core/_testing.py,sha256=YUGwA5cgFFbUTv4WFd7cv_BSVr4ryTtPp8owQA3JdWE,2118 +anyio/_core/_typedattr.py,sha256=P4ozZikn3-DbpoYcvyghS_FOYAgbmUxeoU8-L_07pZM,2508 +anyio/abc/__init__.py,sha256=6mWhcl_pGXhrgZVHP_TCfMvIXIOp9mroEFM90fYCU_U,2869 +anyio/abc/__pycache__/__init__.cpython-311.pyc,, +anyio/abc/__pycache__/_eventloop.cpython-311.pyc,, +anyio/abc/__pycache__/_resources.cpython-311.pyc,, +anyio/abc/__pycache__/_sockets.cpython-311.pyc,, +anyio/abc/__pycache__/_streams.cpython-311.pyc,, +anyio/abc/__pycache__/_subprocesses.cpython-311.pyc,, +anyio/abc/__pycache__/_tasks.cpython-311.pyc,, +anyio/abc/__pycache__/_testing.cpython-311.pyc,, +anyio/abc/_eventloop.py,sha256=GTZbdItBHcj_b-8K2XylET2-bBYLZ3XjW4snY7vK7LE,10900 +anyio/abc/_resources.py,sha256=DrYvkNN1hH6Uvv5_5uKySvDsnknGVDe8FCKfko0VtN8,783 +anyio/abc/_sockets.py,sha256=ECTY0jLEF18gryANHR3vFzXzGdZ-xPwELq1QdgOb0Jo,13258 +anyio/abc/_streams.py,sha256=005GKSCXGprxnhucILboSqc2JFovECZk9m3p-qqxXVc,7640 +anyio/abc/_subprocesses.py,sha256=cumAPJTktOQtw63IqG0lDpyZqu_l1EElvQHMiwJgL08,2067 +anyio/abc/_tasks.py,sha256=KC7wrciE48AINOI-AhPutnFhe1ewfP7QnamFlDzqesQ,3721 +anyio/abc/_testing.py,sha256=tBJUzkSfOXJw23fe8qSJ03kJlShOYjjaEyFB6k6MYT8,1821 +anyio/from_thread.py,sha256=MmzkWz7yq-d0G3aOoEyyG2nh_Dm7h8ggRWFsYteNVJs,18927 +anyio/lowlevel.py,sha256=2a3elbKSw59boeyHBzC9VT7vark3o-kBypXWKGQ3jqU,4405 +anyio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +anyio/pytest_plugin.py,sha256=cTvttH7R4e8Jh4C3mTOV8QVhOYEJtN1dCZFnRoH9lX4,10204 +anyio/streams/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +anyio/streams/__pycache__/__init__.cpython-311.pyc,, +anyio/streams/__pycache__/buffered.cpython-311.pyc,, +anyio/streams/__pycache__/file.cpython-311.pyc,, +anyio/streams/__pycache__/memory.cpython-311.pyc,, +anyio/streams/__pycache__/stapled.cpython-311.pyc,, +anyio/streams/__pycache__/text.cpython-311.pyc,, +anyio/streams/__pycache__/tls.cpython-311.pyc,, +anyio/streams/buffered.py,sha256=joUPdz0OoRfKgGmMpHI9vZyMNm6ly9iFlofrZUPs9cQ,6162 +anyio/streams/file.py,sha256=6uoTNb5KbMoj-6gS3_xrrL8uZN8Q4iIvOS1WtGyFfKw,4383 +anyio/streams/memory.py,sha256=GcbF3cahdsdFZtcTZaIKpZXPDZKogj18wWPPmE0OmGU,10620 +anyio/streams/stapled.py,sha256=U09pCrmOw9kkNhe6tKopsm1QIMT1lFTFvtb-A7SIe4k,4302 +anyio/streams/text.py,sha256=tCJ8ljavGM-HY0aL-5Twxv-Kyw1BfR0B4OtVIB6kZ9w,5662 +anyio/streams/tls.py,sha256=siSaaRyX-XnfC7Jbn9VjtIdVzJkDsvIW_2pSEVheDFQ,15275 +anyio/to_interpreter.py,sha256=Z0-kLCxlITjFG_RM_TNdUlEnog94l48GXVDZ80w0URc,6986 +anyio/to_process.py,sha256=ZvruelRM-HNmqDaql4sdNODg2QD_uSlwSCxnV4OhsfQ,9595 +anyio/to_thread.py,sha256=WM2JQ2MbVsd5D5CM08bQiTwzZIvpsGjfH1Fy247KoDQ,2396 diff --git a/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/WHEEL b/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/WHEEL new file mode 100644 index 0000000..e7fa31b --- /dev/null +++ b/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/entry_points.txt b/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/entry_points.txt new file mode 100644 index 0000000..44dd9bd --- /dev/null +++ b/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/entry_points.txt @@ -0,0 +1,2 @@ +[pytest11] +anyio = anyio.pytest_plugin diff --git a/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/licenses/LICENSE new file mode 100644 index 0000000..104eebf --- /dev/null +++ b/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/licenses/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2018 Alex Grönholm + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/top_level.txt new file mode 100644 index 0000000..c77c069 --- /dev/null +++ b/venv/lib/python3.11/site-packages/anyio-4.11.0.dist-info/top_level.txt @@ -0,0 +1 @@ +anyio diff --git a/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/AUTHORS b/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/AUTHORS new file mode 100644 index 0000000..64bc938 --- /dev/null +++ b/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/AUTHORS @@ -0,0 +1,6 @@ +Main contributors +================= + +MagicStack Inc.: + Elvis Pranskevichus + Yury Selivanov diff --git a/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/LICENSE b/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/LICENSE new file mode 100644 index 0000000..d931386 --- /dev/null +++ b/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/LICENSE @@ -0,0 +1,204 @@ +Copyright (C) 2016-present the asyncpg authors and contributors. + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright (C) 2016-present the asyncpg authors and contributors + + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/METADATA b/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/METADATA new file mode 100644 index 0000000..d9f971e --- /dev/null +++ b/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/METADATA @@ -0,0 +1,142 @@ +Metadata-Version: 2.1 +Name: asyncpg +Version: 0.30.0 +Summary: An asyncio PostgreSQL driver +Author-email: MagicStack Inc +License: Apache License, Version 2.0 +Project-URL: github, https://github.com/MagicStack/asyncpg +Keywords: database,postgres +Classifier: Development Status :: 5 - Production/Stable +Classifier: Framework :: AsyncIO +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: POSIX +Classifier: Operating System :: MacOS :: MacOS X +Classifier: Operating System :: Microsoft :: Windows +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Topic :: Database :: Front-Ends +Requires-Python: >=3.8.0 +Description-Content-Type: text/x-rst +License-File: LICENSE +License-File: AUTHORS +Requires-Dist: async-timeout>=4.0.3; python_version < "3.11.0" +Provides-Extra: docs +Requires-Dist: Sphinx~=8.1.3; extra == "docs" +Requires-Dist: sphinx-rtd-theme>=1.2.2; extra == "docs" +Provides-Extra: gssauth +Requires-Dist: gssapi; platform_system != "Windows" and extra == "gssauth" +Requires-Dist: sspilib; platform_system == "Windows" and extra == "gssauth" +Provides-Extra: test +Requires-Dist: flake8~=6.1; extra == "test" +Requires-Dist: flake8-pyi~=24.1.0; extra == "test" +Requires-Dist: distro~=1.9.0; extra == "test" +Requires-Dist: mypy~=1.8.0; extra == "test" +Requires-Dist: uvloop>=0.15.3; (platform_system != "Windows" and python_version < "3.14.0") and extra == "test" +Requires-Dist: gssapi; platform_system == "Linux" and extra == "test" +Requires-Dist: k5test; platform_system == "Linux" and extra == "test" +Requires-Dist: sspilib; platform_system == "Windows" and extra == "test" + +asyncpg -- A fast PostgreSQL Database Client Library for Python/asyncio +======================================================================= + +.. image:: https://github.com/MagicStack/asyncpg/workflows/Tests/badge.svg + :target: https://github.com/MagicStack/asyncpg/actions?query=workflow%3ATests+branch%3Amaster + :alt: GitHub Actions status +.. image:: https://img.shields.io/pypi/v/asyncpg.svg + :target: https://pypi.python.org/pypi/asyncpg + +**asyncpg** is a database interface library designed specifically for +PostgreSQL and Python/asyncio. asyncpg is an efficient, clean implementation +of PostgreSQL server binary protocol for use with Python's ``asyncio`` +framework. You can read more about asyncpg in an introductory +`blog post `_. + +asyncpg requires Python 3.8 or later and is supported for PostgreSQL +versions 9.5 to 17. Other PostgreSQL versions or other databases +implementing the PostgreSQL protocol *may* work, but are not being +actively tested. + + +Documentation +------------- + +The project documentation can be found +`here `_. + + +Performance +----------- + +In our testing asyncpg is, on average, **5x** faster than psycopg3. + +.. image:: https://raw.githubusercontent.com/MagicStack/asyncpg/master/performance.png?fddca40ab0 + :target: https://gistpreview.github.io/?0ed296e93523831ea0918d42dd1258c2 + +The above results are a geometric mean of benchmarks obtained with PostgreSQL +`client driver benchmarking toolbench `_ +in June 2023 (click on the chart to see full details). + + +Features +-------- + +asyncpg implements PostgreSQL server protocol natively and exposes its +features directly, as opposed to hiding them behind a generic facade +like DB-API. + +This enables asyncpg to have easy-to-use support for: + +* **prepared statements** +* **scrollable cursors** +* **partial iteration** on query results +* automatic encoding and decoding of composite types, arrays, + and any combination of those +* straightforward support for custom data types + + +Installation +------------ + +asyncpg is available on PyPI. When not using GSSAPI/SSPI authentication it +has no dependencies. Use pip to install:: + + $ pip install asyncpg + +If you need GSSAPI/SSPI authentication, use:: + + $ pip install 'asyncpg[gssauth]' + +For more details, please `see the documentation +`_. + + +Basic Usage +----------- + +.. code-block:: python + + import asyncio + import asyncpg + + async def run(): + conn = await asyncpg.connect(user='user', password='password', + database='database', host='127.0.0.1') + values = await conn.fetch( + 'SELECT * FROM mytable WHERE id = $1', + 10, + ) + await conn.close() + + asyncio.run(run()) + + +License +------- + +asyncpg is developed and distributed under the Apache 2.0 license. diff --git a/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/RECORD b/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/RECORD new file mode 100644 index 0000000..08c6e04 --- /dev/null +++ b/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/RECORD @@ -0,0 +1,113 @@ +asyncpg-0.30.0.dist-info/AUTHORS,sha256=gIYYcUuWiSZS93lstwQtCT56St1NtKg-fikn8ourw64,130 +asyncpg-0.30.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +asyncpg-0.30.0.dist-info/LICENSE,sha256=2SItc_2sUJkhdAdu-gT0T2-82dVhVafHCS6YdXBCpvY,11466 +asyncpg-0.30.0.dist-info/METADATA,sha256=60MN0tXDvcPtxahUC1vxSP8-dS5hYDtir_YIbY2NCkQ,5010 +asyncpg-0.30.0.dist-info/RECORD,, +asyncpg-0.30.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +asyncpg-0.30.0.dist-info/WHEEL,sha256=OhaudQk1f3YCu0uQO5v6u-i01XPoX70c0R3T_XY-jOo,151 +asyncpg-0.30.0.dist-info/top_level.txt,sha256=DdhVhpzCq49mykkHNag6i9zuJx05_tx4CMZymM1F8dU,8 +asyncpg/__init__.py,sha256=bzD31aMekbKR9waMXuAxIYFbmrQ-S1Mttjmru_sSjo8,647 +asyncpg/__pycache__/__init__.cpython-311.pyc,, +asyncpg/__pycache__/_asyncio_compat.cpython-311.pyc,, +asyncpg/__pycache__/_version.cpython-311.pyc,, +asyncpg/__pycache__/cluster.cpython-311.pyc,, +asyncpg/__pycache__/compat.cpython-311.pyc,, +asyncpg/__pycache__/connect_utils.cpython-311.pyc,, +asyncpg/__pycache__/connection.cpython-311.pyc,, +asyncpg/__pycache__/connresource.cpython-311.pyc,, +asyncpg/__pycache__/cursor.cpython-311.pyc,, +asyncpg/__pycache__/introspection.cpython-311.pyc,, +asyncpg/__pycache__/pool.cpython-311.pyc,, +asyncpg/__pycache__/prepared_stmt.cpython-311.pyc,, +asyncpg/__pycache__/serverversion.cpython-311.pyc,, +asyncpg/__pycache__/transaction.cpython-311.pyc,, +asyncpg/__pycache__/types.cpython-311.pyc,, +asyncpg/__pycache__/utils.cpython-311.pyc,, +asyncpg/_asyncio_compat.py,sha256=pXF_aF4o_AqxNql0sPnuGdoe5sSSwQxHpKWF6ShZTbo,2540 +asyncpg/_testbase/__init__.py,sha256=IzMqfgI5gtOxajneoeWyoI4NtmE5sp7S5dXmU0gwwB8,16499 +asyncpg/_testbase/__pycache__/__init__.cpython-311.pyc,, +asyncpg/_testbase/__pycache__/fuzzer.cpython-311.pyc,, +asyncpg/_testbase/fuzzer.py,sha256=3Uxdu0YXei-7JZMCuCI3bxKMdnbuossV-KC68GG-AS4,9804 +asyncpg/_version.py,sha256=MLgciqpbfndZJPsc0fi_WNdVVcsn3Wobpaw0WiaRvEo,641 +asyncpg/cluster.py,sha256=s_HmtiEGJqJ6GQWa6_zmfe11fZ29OpOtMT6Ufcu-g0g,24476 +asyncpg/compat.py,sha256=ebs2IeJw82rY9m0ZCmOYUqry_2nF3zqTi3tsWP5FT2o,2459 +asyncpg/connect_utils.py,sha256=vaVSrnmko33wPjw1X5wlbooF0FTeFlN5b50burZuUWc,36923 +asyncpg/connection.py,sha256=EFlI_1VIkSFzSszsUCCl0eFJITT-5McSuAVmWJyCy-Y,98545 +asyncpg/connresource.py,sha256=tBAidNpEhbDvrMOKQbwn3ZNgIVAtsVxARxTnwj5fk-Q,1384 +asyncpg/cursor.py,sha256=rKeSIJMW5mUpvsian6a1MLrLoEwbkYTZsmZtEgwFT6s,9160 +asyncpg/exceptions/__init__.py,sha256=FXUYDFQw9gxE3mVz99FmsldYxivLUMtTIhXzu5tZ7Pk,29157 +asyncpg/exceptions/__pycache__/__init__.cpython-311.pyc,, +asyncpg/exceptions/__pycache__/_base.cpython-311.pyc,, +asyncpg/exceptions/_base.py,sha256=u62xv69n4AHO1xr35FjdgZhYvqdeb_mkQKyp-ip_AyQ,9260 +asyncpg/introspection.py,sha256=biiHj5yQMB8RGch2TiH2TPocN3OO6_GasyijFYxgUOM,9215 +asyncpg/pgproto/__init__.pxd,sha256=uUIkKuI6IGnQ5tZXtrjOC_13qjp9MZOwewKlrxKFzPY,213 +asyncpg/pgproto/__init__.py,sha256=uUIkKuI6IGnQ5tZXtrjOC_13qjp9MZOwewKlrxKFzPY,213 +asyncpg/pgproto/__pycache__/__init__.cpython-311.pyc,, +asyncpg/pgproto/__pycache__/types.cpython-311.pyc,, +asyncpg/pgproto/buffer.pxd,sha256=dVaRqkbNiT5xhQ9HTwbavJWWN3aCT1mWkecKuq-Fm9k,4382 +asyncpg/pgproto/buffer.pyx,sha256=8npNqR7ATB4iLase-V3xobD4W8L0IB_f8H1Ko4VEmgg,25310 +asyncpg/pgproto/codecs/__init__.pxd,sha256=14J1iXxgadLdTa0wjVQJuH0pooZXugSxIS8jVgSAico,6013 +asyncpg/pgproto/codecs/bits.pyx,sha256=x4MMVRLotz9R8n81E0S3lQQk23AvLlODb2pe_NGYqCI,1475 +asyncpg/pgproto/codecs/bytea.pyx,sha256=ot-oFH-hzQ89EUWneHk5QDUxl2krKkpYE_nWklVHXWU,997 +asyncpg/pgproto/codecs/context.pyx,sha256=oYurToHnpZz-Q8kPzRORFS_RyV4HH5kscNKsZYPt4FU,623 +asyncpg/pgproto/codecs/datetime.pyx,sha256=gPRHIkSy0nNVhW-rTT7WCGthrKksW68-0GyKlLzVpIc,12831 +asyncpg/pgproto/codecs/float.pyx,sha256=A6XXA2NdS82EENhADA35LInxLcJsRpXvF6JVme_6HCc,1031 +asyncpg/pgproto/codecs/geometry.pyx,sha256=DtRADwsifbzAZyACxakne2MVApcUNji8EyOgtKuoEaw,4665 +asyncpg/pgproto/codecs/hstore.pyx,sha256=sXwFn3uzypvPkYIFH0FykiW9RU8qRme2N0lg8UoB6kg,2018 +asyncpg/pgproto/codecs/int.pyx,sha256=4RuntTl_4-I7ekCSONK9y4CWFghUmaFGldXL6ruLgxM,4527 +asyncpg/pgproto/codecs/json.pyx,sha256=fs7d0sroyMM9UZW-mmGgvHtVG7MiBac7Inb_wz1mMRs,1454 +asyncpg/pgproto/codecs/jsonpath.pyx,sha256=bAXgTvPzQlkJdlHHB95CNl03J2WAd_iK3JsE1PXI2KU,833 +asyncpg/pgproto/codecs/misc.pyx,sha256=ul5HFobQ1H3shO6ThrSlkEHO1lvxOoqTnRej3UabKiQ,484 +asyncpg/pgproto/codecs/network.pyx,sha256=1oFM__xT5H3pIZrLyRqjNqrR6z1UNlqMOWGTGnsbOyw,3917 +asyncpg/pgproto/codecs/numeric.pyx,sha256=TAN5stFXzmEiyP69MDG1oXryPAFCyZmxHcqPc-vy7LM,10373 +asyncpg/pgproto/codecs/pg_snapshot.pyx,sha256=WGJ-dv7JXVufybAiuScth7KlXXLRdMqSKbtfT4kpVWI,1814 +asyncpg/pgproto/codecs/text.pyx,sha256=yHpJCRxrf2Pgmz1abYSgvFQDRcgCJN137aniygOo_ec,1516 +asyncpg/pgproto/codecs/tid.pyx,sha256=_9L8C9NSDV6Ehk48VV8xOLDNLVJz2R88EornZbHcq88,1549 +asyncpg/pgproto/codecs/uuid.pyx,sha256=XIydQCaPUlfz9MvVDOu_5BTHd1kSKmJ1r3kBpsfjfYE,855 +asyncpg/pgproto/consts.pxi,sha256=YV-GG19C1LpLtoJx-bF8Wl49wU3iZMylyQzl_ah8gFw,375 +asyncpg/pgproto/cpythonx.pxd,sha256=B9fAfasXgoWN-Z-STGCxbu0sW-QR8EblCIbxlzPo0Uc,736 +asyncpg/pgproto/debug.pxd,sha256=SuLG2tteWe3cXnS0czRTTNnnm2QGgG02icp_6G_X9Yw,263 +asyncpg/pgproto/frb.pxd,sha256=B2s2dw-SkzfKWeLEWzVLTkjjYYW53pazPcVNH3vPxAk,1212 +asyncpg/pgproto/frb.pyx,sha256=7bipWSBXebweq3JBFlCvSwa03fIZGLkKPqWbJ8VFWFI,409 +asyncpg/pgproto/hton.pxd,sha256=Swx5ry82iWYO9Ok4fRa_b7cLSrIPyxNYlyXm-ncYweo,953 +asyncpg/pgproto/pgproto.cpython-311-x86_64-linux-gnu.so,sha256=WOrdbso_74T3AcZFj2k9BK_LeiW2tbm13xg2HwFXil4,2750728 +asyncpg/pgproto/pgproto.pxd,sha256=QUUxWiHKdKfFxdDT0czSvOFsA4b59MJRR6WlUbJFgPg,430 +asyncpg/pgproto/pgproto.pyi,sha256=W5nuATmpHFfhRF7Hnjt5Vuvr1lBJ-xkJ8nIvEYE1N1E,275 +asyncpg/pgproto/pgproto.pyx,sha256=bK75qfRQlofzO8dDzJ2mHUE0wLeXSsc5SLeAGvyXSeE,1249 +asyncpg/pgproto/tohex.pxd,sha256=fQVaxBu6dBw2P_ROR8MSPVDlVep0McKi69fdQBLhifI,361 +asyncpg/pgproto/types.py,sha256=wzJgyDJ63Eu2TJym0EhhEr6-D9iIV3cdlzab11sgRS0,13014 +asyncpg/pgproto/uuid.pyx,sha256=PrQIvQKJJItsYFpwZtDCcR9Z_DIbEi_MUt6tQjnVaYI,9943 +asyncpg/pool.py,sha256=oZh4JC01xizpa3MQSJ4mcOW71Nb_jYWluY_Dm2549fg,41296 +asyncpg/prepared_stmt.py,sha256=YfOSeQavN1c1o5SajD9ylTCLHpNV5plGBEw9ku8KyBk,9752 +asyncpg/protocol/__init__.py,sha256=c-b07Si_DGN9rqiCUAmR9RaCUCy_LiJ4lqHCb0yMBRI,340 +asyncpg/protocol/__pycache__/__init__.cpython-311.pyc,, +asyncpg/protocol/codecs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +asyncpg/protocol/codecs/__pycache__/__init__.cpython-311.pyc,, +asyncpg/protocol/codecs/array.pyx,sha256=1S_6xdgxllG8_1Lb68XdPkH1QgF63gAAmjh091Q7Dyk,29486 +asyncpg/protocol/codecs/base.pxd,sha256=NfDsh60UZX-gVThlj8rzGmLRqMbXAYqSJsAwKTcZ1Cg,6224 +asyncpg/protocol/codecs/base.pyx,sha256=C1SPRtSdYbshnvZOHJVj9Gp30VSj5z6nQRBUoPgj2IU,33464 +asyncpg/protocol/codecs/pgproto.pyx,sha256=5PDv1JT_nXbDbHtYVrGCcZN3CxzQdgwqlXT8GpyMamk,17175 +asyncpg/protocol/codecs/range.pyx,sha256=-P-acyY2e5TlEtjqbkeH28PYk-DGLxqbmzKDFGL5BbI,6359 +asyncpg/protocol/codecs/record.pyx,sha256=l17HPv3ZeZzvDMXmh-FTdOQ0LxqaQsge_4hlmnGaf6s,2362 +asyncpg/protocol/codecs/textutils.pyx,sha256=UmTt1Zs5N2oLVDMTSlSe1zAFt5q4_4akbXZoS6HSPO8,2011 +asyncpg/protocol/consts.pxi,sha256=VT7NLBpLgPUvcUbPflrX84I79JZiFg4zFzBK28nCRZo,381 +asyncpg/protocol/coreproto.pxd,sha256=77yJqaBMGWHmxyihZIFfyVgfzICF9jLwKSvtuCoE8rM,6215 +asyncpg/protocol/coreproto.pyx,sha256=sMvXqxnppthc_LJYibMAJts0IfEPgYVs4nwXmY3v-IY,41037 +asyncpg/protocol/cpythonx.pxd,sha256=VX71g4PiwXWGTY-BzBPm7S-AiX5ySRrY40qAggH-BIA,613 +asyncpg/protocol/encodings.pyx,sha256=QegnSON5y-a0aQFD9zFbhAzhYTbKYj-vl3VGiyqIU3I,1644 +asyncpg/protocol/pgtypes.pxi,sha256=w8Mb6N7Z58gxPYWZkj5lwk0PRW7oBTIf9fo0MvPzm4c,6924 +asyncpg/protocol/prepared_stmt.pxd,sha256=GhHzJgQMehpWg0i3XSmbkJH6G5nnnmdNCf2EU_gXhDY,1115 +asyncpg/protocol/prepared_stmt.pyx,sha256=wfo57hwGrghO3-0o7OxABV2heL2Fb0teENUZNmMj6aI,13058 +asyncpg/protocol/protocol.cpython-311-x86_64-linux-gnu.so,sha256=uPHYYhJurohthfKKAoDIgxBbf3IlQHg71fZPUDeZxv0,7867832 +asyncpg/protocol/protocol.pxd,sha256=yOVFbkD7mA8VK5IGIJ4dGTyvHKWZTQOFfCFNfdeUdK8,1927 +asyncpg/protocol/protocol.pyi,sha256=Dg0-ZTvLCXc3g3aCvEHvSKVzRp63Q-9iceiqTSQMr2g,9732 +asyncpg/protocol/protocol.pyx,sha256=V99Dm45e8vgV3qSa-jmS2YypntSymrznLtyxoveU7jI,34850 +asyncpg/protocol/record/__init__.pxd,sha256=KJyCfN_ST2yyEDnUS3PfipeIEYmY8CVTeOwFPcUcVNc,495 +asyncpg/protocol/scram.pxd,sha256=t_nkicIS_4AzxyHoq-aYUNrFNv8O0W7E090HfMAIuno,1299 +asyncpg/protocol/scram.pyx,sha256=nT_Rawg6h3OrRWDBwWN7lju5_hnOmXpwWFWVrb3l_dQ,14594 +asyncpg/protocol/settings.pxd,sha256=8DTwZ5mi0aAUJRWE6SUIRDhWFGFis1mj8lcA8hNFTL0,1066 +asyncpg/protocol/settings.pyx,sha256=yICjZF5FXwfmdxQBg-1qO0XbpLvZL11-c3aMbiwM7oo,3777 +asyncpg/serverversion.py,sha256=WwlqBJkXZHvvnFluubCjPoaX_7OqjR8QgiOe90w6C9E,2133 +asyncpg/transaction.py,sha256=uAJok6Shx7-Kdt5l4NX-GJtLxVJSPXTOJUryGdbIVG8,8497 +asyncpg/types.py,sha256=2x-nAVdfk41PA83DyYcWxkUNXsiGLotGkMX0gVpuFoY,5520 +asyncpg/utils.py,sha256=Y0vATexoIHFkpWURlqnlUZUacc4F1iZJ9rWJ3654OnM,1495 diff --git a/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/WHEEL b/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/WHEEL new file mode 100644 index 0000000..35db8b0 --- /dev/null +++ b/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: setuptools (75.2.0) +Root-Is-Purelib: false +Tag: cp311-cp311-manylinux_2_17_x86_64 +Tag: cp311-cp311-manylinux2014_x86_64 + diff --git a/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/top_level.txt new file mode 100644 index 0000000..5789edd --- /dev/null +++ b/venv/lib/python3.11/site-packages/asyncpg-0.30.0.dist-info/top_level.txt @@ -0,0 +1 @@ +asyncpg diff --git a/venv/lib/python3.11/site-packages/certifi-2025.11.12.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/certifi-2025.11.12.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/certifi-2025.11.12.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/certifi-2025.11.12.dist-info/METADATA b/venv/lib/python3.11/site-packages/certifi-2025.11.12.dist-info/METADATA new file mode 100644 index 0000000..6939bac --- /dev/null +++ b/venv/lib/python3.11/site-packages/certifi-2025.11.12.dist-info/METADATA @@ -0,0 +1,78 @@ +Metadata-Version: 2.4 +Name: certifi +Version: 2025.11.12 +Summary: Python package for providing Mozilla's CA Bundle. +Home-page: https://github.com/certifi/python-certifi +Author: Kenneth Reitz +Author-email: me@kennethreitz.com +License: MPL-2.0 +Project-URL: Source, https://github.com/certifi/python-certifi +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0) +Classifier: Natural Language :: English +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Requires-Python: >=3.7 +License-File: LICENSE +Dynamic: author +Dynamic: author-email +Dynamic: classifier +Dynamic: description +Dynamic: home-page +Dynamic: license +Dynamic: license-file +Dynamic: project-url +Dynamic: requires-python +Dynamic: summary + +Certifi: Python SSL Certificates +================================ + +Certifi provides Mozilla's carefully curated collection of Root Certificates for +validating the trustworthiness of SSL certificates while verifying the identity +of TLS hosts. It has been extracted from the `Requests`_ project. + +Installation +------------ + +``certifi`` is available on PyPI. Simply install it with ``pip``:: + + $ pip install certifi + +Usage +----- + +To reference the installed certificate authority (CA) bundle, you can use the +built-in function:: + + >>> import certifi + + >>> certifi.where() + '/usr/local/lib/python3.7/site-packages/certifi/cacert.pem' + +Or from the command line:: + + $ python -m certifi + /usr/local/lib/python3.7/site-packages/certifi/cacert.pem + +Enjoy! + +.. _`Requests`: https://requests.readthedocs.io/en/master/ + +Addition/Removal of Certificates +-------------------------------- + +Certifi does not support any addition/removal or other modification of the +CA trust store content. This project is intended to provide a reliable and +highly portable root of trust to python deployments. Look to upstream projects +for methods to use alternate trust. diff --git a/venv/lib/python3.11/site-packages/certifi-2025.11.12.dist-info/RECORD b/venv/lib/python3.11/site-packages/certifi-2025.11.12.dist-info/RECORD new file mode 100644 index 0000000..a147ddb --- /dev/null +++ b/venv/lib/python3.11/site-packages/certifi-2025.11.12.dist-info/RECORD @@ -0,0 +1,14 @@ +certifi-2025.11.12.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +certifi-2025.11.12.dist-info/METADATA,sha256=_JprGu_1lWSdHlruRBKcorXnrfvBDhvX_6KRr8HQbLc,2475 +certifi-2025.11.12.dist-info/RECORD,, +certifi-2025.11.12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91 +certifi-2025.11.12.dist-info/licenses/LICENSE,sha256=6TcW2mucDVpKHfYP5pWzcPBpVgPSH2-D8FPkLPwQyvc,989 +certifi-2025.11.12.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8 +certifi/__init__.py,sha256=1BRSxNMnZW7CZ2oJtYWLoJgfHfcB9i273exwiPwfjJM,94 +certifi/__main__.py,sha256=xBBoj905TUWBLRGANOcf7oi6e-3dMP4cEoG9OyMs11g,243 +certifi/__pycache__/__init__.cpython-311.pyc,, +certifi/__pycache__/__main__.cpython-311.pyc,, +certifi/__pycache__/core.cpython-311.pyc,, +certifi/cacert.pem,sha256=oa1dZD4hxDtb7XTH4IkdzbWPavUcis4eTwINZUqlKhY,283932 +certifi/core.py,sha256=XFXycndG5pf37ayeF8N32HUuDafsyhkVMbO4BAPWHa0,3394 +certifi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/venv/lib/python3.11/site-packages/certifi-2025.11.12.dist-info/WHEEL b/venv/lib/python3.11/site-packages/certifi-2025.11.12.dist-info/WHEEL new file mode 100644 index 0000000..e7fa31b --- /dev/null +++ b/venv/lib/python3.11/site-packages/certifi-2025.11.12.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.11/site-packages/certifi-2025.11.12.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/certifi-2025.11.12.dist-info/licenses/LICENSE new file mode 100644 index 0000000..62b076c --- /dev/null +++ b/venv/lib/python3.11/site-packages/certifi-2025.11.12.dist-info/licenses/LICENSE @@ -0,0 +1,20 @@ +This package contains a modified version of ca-bundle.crt: + +ca-bundle.crt -- Bundle of CA Root Certificates + +This is a bundle of X.509 certificates of public Certificate Authorities +(CA). These were automatically extracted from Mozilla's root certificates +file (certdata.txt). This file can be found in the mozilla source tree: +https://hg.mozilla.org/mozilla-central/file/tip/security/nss/lib/ckfw/builtins/certdata.txt +It contains the certificates in PEM format and therefore +can be directly used with curl / libcurl / php_curl, or with +an Apache+mod_ssl webserver for SSL client authentication. +Just configure this file as the SSLCACertificateFile.# + +***** BEGIN LICENSE BLOCK ***** +This Source Code Form is subject to the terms of the Mozilla Public License, +v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain +one at http://mozilla.org/MPL/2.0/. + +***** END LICENSE BLOCK ***** +@(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $ diff --git a/venv/lib/python3.11/site-packages/certifi-2025.11.12.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/certifi-2025.11.12.dist-info/top_level.txt new file mode 100644 index 0000000..963eac5 --- /dev/null +++ b/venv/lib/python3.11/site-packages/certifi-2025.11.12.dist-info/top_level.txt @@ -0,0 +1 @@ +certifi diff --git a/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/METADATA b/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/METADATA new file mode 100644 index 0000000..8d32edc --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/METADATA @@ -0,0 +1,764 @@ +Metadata-Version: 2.4 +Name: charset-normalizer +Version: 3.4.4 +Summary: The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet. +Author-email: "Ahmed R. TAHRI" +Maintainer-email: "Ahmed R. TAHRI" +License: MIT +Project-URL: Changelog, https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md +Project-URL: Documentation, https://charset-normalizer.readthedocs.io/ +Project-URL: Code, https://github.com/jawah/charset_normalizer +Project-URL: Issue tracker, https://github.com/jawah/charset_normalizer/issues +Keywords: encoding,charset,charset-detector,detector,normalization,unicode,chardet,detect +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Text Processing :: Linguistic +Classifier: Topic :: Utilities +Classifier: Typing :: Typed +Requires-Python: >=3.7 +Description-Content-Type: text/markdown +License-File: LICENSE +Provides-Extra: unicode-backport +Dynamic: license-file + +

Charset Detection, for Everyone 👋

+ +

+ The Real First Universal Charset Detector
+ + + + + Download Count Total + + + + +

+

+ Featured Packages
+ + Static Badge + + + Static Badge + +

+

+ In other language (unofficial port - by the community)
+ + Static Badge + +

+ +> A library that helps you read text from an unknown charset encoding.
Motivated by `chardet`, +> I'm trying to resolve the issue by taking a new approach. +> All IANA character set names for which the Python core library provides codecs are supported. + +

+ >>>>> 👉 Try Me Online Now, Then Adopt Me 👈 <<<<< +

+ +This project offers you an alternative to **Universal Charset Encoding Detector**, also known as **Chardet**. + +| Feature | [Chardet](https://github.com/chardet/chardet) | Charset Normalizer | [cChardet](https://github.com/PyYoshi/cChardet) | +|--------------------------------------------------|:---------------------------------------------:|:--------------------------------------------------------------------------------------------------:|:-----------------------------------------------:| +| `Fast` | ❌ | ✅ | ✅ | +| `Universal**` | ❌ | ✅ | ❌ | +| `Reliable` **without** distinguishable standards | ❌ | ✅ | ✅ | +| `Reliable` **with** distinguishable standards | ✅ | ✅ | ✅ | +| `License` | LGPL-2.1
_restrictive_ | MIT | MPL-1.1
_restrictive_ | +| `Native Python` | ✅ | ✅ | ❌ | +| `Detect spoken language` | ❌ | ✅ | N/A | +| `UnicodeDecodeError Safety` | ❌ | ✅ | ❌ | +| `Whl Size (min)` | 193.6 kB | 42 kB | ~200 kB | +| `Supported Encoding` | 33 | 🎉 [99](https://charset-normalizer.readthedocs.io/en/latest/user/support.html#supported-encodings) | 40 | + +

+Reading Normalized TextCat Reading Text +

+ +*\*\* : They are clearly using specific code for a specific encoding even if covering most of used one*
+ +## ⚡ Performance + +This package offer better performance than its counterpart Chardet. Here are some numbers. + +| Package | Accuracy | Mean per file (ms) | File per sec (est) | +|-----------------------------------------------|:--------:|:------------------:|:------------------:| +| [chardet](https://github.com/chardet/chardet) | 86 % | 63 ms | 16 file/sec | +| charset-normalizer | **98 %** | **10 ms** | 100 file/sec | + +| Package | 99th percentile | 95th percentile | 50th percentile | +|-----------------------------------------------|:---------------:|:---------------:|:---------------:| +| [chardet](https://github.com/chardet/chardet) | 265 ms | 71 ms | 7 ms | +| charset-normalizer | 100 ms | 50 ms | 5 ms | + +_updated as of december 2024 using CPython 3.12_ + +Chardet's performance on larger file (1MB+) are very poor. Expect huge difference on large payload. + +> Stats are generated using 400+ files using default parameters. More details on used files, see GHA workflows. +> And yes, these results might change at any time. The dataset can be updated to include more files. +> The actual delays heavily depends on your CPU capabilities. The factors should remain the same. +> Keep in mind that the stats are generous and that Chardet accuracy vs our is measured using Chardet initial capability +> (e.g. Supported Encoding) Challenge-them if you want. + +## ✨ Installation + +Using pip: + +```sh +pip install charset-normalizer -U +``` + +## 🚀 Basic Usage + +### CLI +This package comes with a CLI. + +``` +usage: normalizer [-h] [-v] [-a] [-n] [-m] [-r] [-f] [-t THRESHOLD] + file [file ...] + +The Real First Universal Charset Detector. Discover originating encoding used +on text file. Normalize text to unicode. + +positional arguments: + files File(s) to be analysed + +optional arguments: + -h, --help show this help message and exit + -v, --verbose Display complementary information about file if any. + Stdout will contain logs about the detection process. + -a, --with-alternative + Output complementary possibilities if any. Top-level + JSON WILL be a list. + -n, --normalize Permit to normalize input file. If not set, program + does not write anything. + -m, --minimal Only output the charset detected to STDOUT. Disabling + JSON output. + -r, --replace Replace file when trying to normalize it instead of + creating a new one. + -f, --force Replace file without asking if you are sure, use this + flag with caution. + -t THRESHOLD, --threshold THRESHOLD + Define a custom maximum amount of chaos allowed in + decoded content. 0. <= chaos <= 1. + --version Show version information and exit. +``` + +```bash +normalizer ./data/sample.1.fr.srt +``` + +or + +```bash +python -m charset_normalizer ./data/sample.1.fr.srt +``` + +🎉 Since version 1.4.0 the CLI produce easily usable stdout result in JSON format. + +```json +{ + "path": "/home/default/projects/charset_normalizer/data/sample.1.fr.srt", + "encoding": "cp1252", + "encoding_aliases": [ + "1252", + "windows_1252" + ], + "alternative_encodings": [ + "cp1254", + "cp1256", + "cp1258", + "iso8859_14", + "iso8859_15", + "iso8859_16", + "iso8859_3", + "iso8859_9", + "latin_1", + "mbcs" + ], + "language": "French", + "alphabets": [ + "Basic Latin", + "Latin-1 Supplement" + ], + "has_sig_or_bom": false, + "chaos": 0.149, + "coherence": 97.152, + "unicode_path": null, + "is_preferred": true +} +``` + +### Python +*Just print out normalized text* +```python +from charset_normalizer import from_path + +results = from_path('./my_subtitle.srt') + +print(str(results.best())) +``` + +*Upgrade your code without effort* +```python +from charset_normalizer import detect +``` + +The above code will behave the same as **chardet**. We ensure that we offer the best (reasonable) BC result possible. + +See the docs for advanced usage : [readthedocs.io](https://charset-normalizer.readthedocs.io/en/latest/) + +## 😇 Why + +When I started using Chardet, I noticed that it was not suited to my expectations, and I wanted to propose a +reliable alternative using a completely different method. Also! I never back down on a good challenge! + +I **don't care** about the **originating charset** encoding, because **two different tables** can +produce **two identical rendered string.** +What I want is to get readable text, the best I can. + +In a way, **I'm brute forcing text decoding.** How cool is that ? 😎 + +Don't confuse package **ftfy** with charset-normalizer or chardet. ftfy goal is to repair Unicode string whereas charset-normalizer to convert raw file in unknown encoding to unicode. + +## 🍰 How + + - Discard all charset encoding table that could not fit the binary content. + - Measure noise, or the mess once opened (by chunks) with a corresponding charset encoding. + - Extract matches with the lowest mess detected. + - Additionally, we measure coherence / probe for a language. + +**Wait a minute**, what is noise/mess and coherence according to **YOU ?** + +*Noise :* I opened hundred of text files, **written by humans**, with the wrong encoding table. **I observed**, then +**I established** some ground rules about **what is obvious** when **it seems like** a mess (aka. defining noise in rendered text). + I know that my interpretation of what is noise is probably incomplete, feel free to contribute in order to + improve or rewrite it. + +*Coherence :* For each language there is on earth, we have computed ranked letter appearance occurrences (the best we can). So I thought +that intel is worth something here. So I use those records against decoded text to check if I can detect intelligent design. + +## ⚡ Known limitations + + - Language detection is unreliable when text contains two or more languages sharing identical letters. (eg. HTML (english tags) + Turkish content (Sharing Latin characters)) + - Every charset detector heavily depends on sufficient content. In common cases, do not bother run detection on very tiny content. + +## ⚠️ About Python EOLs + +**If you are running:** + +- Python >=2.7,<3.5: Unsupported +- Python 3.5: charset-normalizer < 2.1 +- Python 3.6: charset-normalizer < 3.1 +- Python 3.7: charset-normalizer < 4.0 + +Upgrade your Python interpreter as soon as possible. + +## 👤 Contributing + +Contributions, issues and feature requests are very much welcome.
+Feel free to check [issues page](https://github.com/ousret/charset_normalizer/issues) if you want to contribute. + +## 📝 License + +Copyright © [Ahmed TAHRI @Ousret](https://github.com/Ousret).
+This project is [MIT](https://github.com/Ousret/charset_normalizer/blob/master/LICENSE) licensed. + +Characters frequencies used in this project © 2012 [Denny Vrandečić](http://simia.net/letters/) + +## 💼 For Enterprise + +Professional support for charset-normalizer is available as part of the [Tidelift +Subscription][1]. Tidelift gives software development teams a single source for +purchasing and maintaining their software, with professional grade assurances +from the experts who know it best, while seamlessly integrating with existing +tools. + +[1]: https://tidelift.com/subscription/pkg/pypi-charset-normalizer?utm_source=pypi-charset-normalizer&utm_medium=readme + +[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/7297/badge)](https://www.bestpractices.dev/projects/7297) + +# Changelog +All notable changes to charset-normalizer will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). + +## [3.4.4](https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4) (2025-10-13) + +### Changed +- Bound `setuptools` to a specific constraint `setuptools>=68,<=81`. +- Raised upper bound of mypyc for the optional pre-built extension to v1.18.2 + +### Removed +- `setuptools-scm` as a build dependency. + +### Misc +- Enforced hashes in `dev-requirements.txt` and created `ci-requirements.txt` for security purposes. +- Additional pre-built wheels for riscv64, s390x, and armv7l architectures. +- Restore ` multiple.intoto.jsonl` in GitHub releases in addition to individual attestation file per wheel. + +## [3.4.3](https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3) (2025-08-09) + +### Changed +- mypy(c) is no longer a required dependency at build time if `CHARSET_NORMALIZER_USE_MYPYC` isn't set to `1`. (#595) (#583) +- automatically lower confidence on small bytes samples that are not Unicode in `detect` output legacy function. (#391) + +### Added +- Custom build backend to overcome inability to mark mypy as an optional dependency in the build phase. +- Support for Python 3.14 + +### Fixed +- sdist archive contained useless directories. +- automatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (#633) + +### Misc +- SBOM are automatically published to the relevant GitHub release to comply with regulatory changes. + Each published wheel comes with its SBOM. We choose CycloneDX as the format. +- Prebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel. + +## [3.4.2](https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2) (2025-05-02) + +### Fixed +- Addressed the DeprecationWarning in our CLI regarding `argparse.FileType` by backporting the target class into the package. (#591) +- Improved the overall reliability of the detector with CJK Ideographs. (#605) (#587) + +### Changed +- Optional mypyc compilation upgraded to version 1.15 for Python >= 3.8 + +## [3.4.1](https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1) (2024-12-24) + +### Changed +- Project metadata are now stored using `pyproject.toml` instead of `setup.cfg` using setuptools as the build backend. +- Enforce annotation delayed loading for a simpler and consistent types in the project. +- Optional mypyc compilation upgraded to version 1.14 for Python >= 3.8 + +### Added +- pre-commit configuration. +- noxfile. + +### Removed +- `build-requirements.txt` as per using `pyproject.toml` native build configuration. +- `bin/integration.py` and `bin/serve.py` in favor of downstream integration test (see noxfile). +- `setup.cfg` in favor of `pyproject.toml` metadata configuration. +- Unused `utils.range_scan` function. + +### Fixed +- Converting content to Unicode bytes may insert `utf_8` instead of preferred `utf-8`. (#572) +- Deprecation warning "'count' is passed as positional argument" when converting to Unicode bytes on Python 3.13+ + +## [3.4.0](https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0) (2024-10-08) + +### Added +- Argument `--no-preemptive` in the CLI to prevent the detector to search for hints. +- Support for Python 3.13 (#512) + +### Fixed +- Relax the TypeError exception thrown when trying to compare a CharsetMatch with anything else than a CharsetMatch. +- Improved the general reliability of the detector based on user feedbacks. (#520) (#509) (#498) (#407) (#537) +- Declared charset in content (preemptive detection) not changed when converting to utf-8 bytes. (#381) + +## [3.3.2](https://github.com/Ousret/charset_normalizer/compare/3.3.1...3.3.2) (2023-10-31) + +### Fixed +- Unintentional memory usage regression when using large payload that match several encoding (#376) +- Regression on some detection case showcased in the documentation (#371) + +### Added +- Noise (md) probe that identify malformed arabic representation due to the presence of letters in isolated form (credit to my wife) + +## [3.3.1](https://github.com/Ousret/charset_normalizer/compare/3.3.0...3.3.1) (2023-10-22) + +### Changed +- Optional mypyc compilation upgraded to version 1.6.1 for Python >= 3.8 +- Improved the general detection reliability based on reports from the community + +## [3.3.0](https://github.com/Ousret/charset_normalizer/compare/3.2.0...3.3.0) (2023-09-30) + +### Added +- Allow to execute the CLI (e.g. normalizer) through `python -m charset_normalizer.cli` or `python -m charset_normalizer` +- Support for 9 forgotten encoding that are supported by Python but unlisted in `encoding.aliases` as they have no alias (#323) + +### Removed +- (internal) Redundant utils.is_ascii function and unused function is_private_use_only +- (internal) charset_normalizer.assets is moved inside charset_normalizer.constant + +### Changed +- (internal) Unicode code blocks in constants are updated using the latest v15.0.0 definition to improve detection +- Optional mypyc compilation upgraded to version 1.5.1 for Python >= 3.8 + +### Fixed +- Unable to properly sort CharsetMatch when both chaos/noise and coherence were close due to an unreachable condition in \_\_lt\_\_ (#350) + +## [3.2.0](https://github.com/Ousret/charset_normalizer/compare/3.1.0...3.2.0) (2023-06-07) + +### Changed +- Typehint for function `from_path` no longer enforce `PathLike` as its first argument +- Minor improvement over the global detection reliability + +### Added +- Introduce function `is_binary` that relies on main capabilities, and optimized to detect binaries +- Propagate `enable_fallback` argument throughout `from_bytes`, `from_path`, and `from_fp` that allow a deeper control over the detection (default True) +- Explicit support for Python 3.12 + +### Fixed +- Edge case detection failure where a file would contain 'very-long' camel cased word (Issue #289) + +## [3.1.0](https://github.com/Ousret/charset_normalizer/compare/3.0.1...3.1.0) (2023-03-06) + +### Added +- Argument `should_rename_legacy` for legacy function `detect` and disregard any new arguments without errors (PR #262) + +### Removed +- Support for Python 3.6 (PR #260) + +### Changed +- Optional speedup provided by mypy/c 1.0.1 + +## [3.0.1](https://github.com/Ousret/charset_normalizer/compare/3.0.0...3.0.1) (2022-11-18) + +### Fixed +- Multi-bytes cutter/chunk generator did not always cut correctly (PR #233) + +### Changed +- Speedup provided by mypy/c 0.990 on Python >= 3.7 + +## [3.0.0](https://github.com/Ousret/charset_normalizer/compare/2.1.1...3.0.0) (2022-10-20) + +### Added +- Extend the capability of explain=True when cp_isolation contains at most two entries (min one), will log in details of the Mess-detector results +- Support for alternative language frequency set in charset_normalizer.assets.FREQUENCIES +- Add parameter `language_threshold` in `from_bytes`, `from_path` and `from_fp` to adjust the minimum expected coherence ratio +- `normalizer --version` now specify if current version provide extra speedup (meaning mypyc compilation whl) + +### Changed +- Build with static metadata using 'build' frontend +- Make the language detection stricter +- Optional: Module `md.py` can be compiled using Mypyc to provide an extra speedup up to 4x faster than v2.1 + +### Fixed +- CLI with opt --normalize fail when using full path for files +- TooManyAccentuatedPlugin induce false positive on the mess detection when too few alpha character have been fed to it +- Sphinx warnings when generating the documentation + +### Removed +- Coherence detector no longer return 'Simple English' instead return 'English' +- Coherence detector no longer return 'Classical Chinese' instead return 'Chinese' +- Breaking: Method `first()` and `best()` from CharsetMatch +- UTF-7 will no longer appear as "detected" without a recognized SIG/mark (is unreliable/conflict with ASCII) +- Breaking: Class aliases CharsetDetector, CharsetDoctor, CharsetNormalizerMatch and CharsetNormalizerMatches +- Breaking: Top-level function `normalize` +- Breaking: Properties `chaos_secondary_pass`, `coherence_non_latin` and `w_counter` from CharsetMatch +- Support for the backport `unicodedata2` + +## [3.0.0rc1](https://github.com/Ousret/charset_normalizer/compare/3.0.0b2...3.0.0rc1) (2022-10-18) + +### Added +- Extend the capability of explain=True when cp_isolation contains at most two entries (min one), will log in details of the Mess-detector results +- Support for alternative language frequency set in charset_normalizer.assets.FREQUENCIES +- Add parameter `language_threshold` in `from_bytes`, `from_path` and `from_fp` to adjust the minimum expected coherence ratio + +### Changed +- Build with static metadata using 'build' frontend +- Make the language detection stricter + +### Fixed +- CLI with opt --normalize fail when using full path for files +- TooManyAccentuatedPlugin induce false positive on the mess detection when too few alpha character have been fed to it + +### Removed +- Coherence detector no longer return 'Simple English' instead return 'English' +- Coherence detector no longer return 'Classical Chinese' instead return 'Chinese' + +## [3.0.0b2](https://github.com/Ousret/charset_normalizer/compare/3.0.0b1...3.0.0b2) (2022-08-21) + +### Added +- `normalizer --version` now specify if current version provide extra speedup (meaning mypyc compilation whl) + +### Removed +- Breaking: Method `first()` and `best()` from CharsetMatch +- UTF-7 will no longer appear as "detected" without a recognized SIG/mark (is unreliable/conflict with ASCII) + +### Fixed +- Sphinx warnings when generating the documentation + +## [3.0.0b1](https://github.com/Ousret/charset_normalizer/compare/2.1.0...3.0.0b1) (2022-08-15) + +### Changed +- Optional: Module `md.py` can be compiled using Mypyc to provide an extra speedup up to 4x faster than v2.1 + +### Removed +- Breaking: Class aliases CharsetDetector, CharsetDoctor, CharsetNormalizerMatch and CharsetNormalizerMatches +- Breaking: Top-level function `normalize` +- Breaking: Properties `chaos_secondary_pass`, `coherence_non_latin` and `w_counter` from CharsetMatch +- Support for the backport `unicodedata2` + +## [2.1.1](https://github.com/Ousret/charset_normalizer/compare/2.1.0...2.1.1) (2022-08-19) + +### Deprecated +- Function `normalize` scheduled for removal in 3.0 + +### Changed +- Removed useless call to decode in fn is_unprintable (#206) + +### Fixed +- Third-party library (i18n xgettext) crashing not recognizing utf_8 (PEP 263) with underscore from [@aleksandernovikov](https://github.com/aleksandernovikov) (#204) + +## [2.1.0](https://github.com/Ousret/charset_normalizer/compare/2.0.12...2.1.0) (2022-06-19) + +### Added +- Output the Unicode table version when running the CLI with `--version` (PR #194) + +### Changed +- Re-use decoded buffer for single byte character sets from [@nijel](https://github.com/nijel) (PR #175) +- Fixing some performance bottlenecks from [@deedy5](https://github.com/deedy5) (PR #183) + +### Fixed +- Workaround potential bug in cpython with Zero Width No-Break Space located in Arabic Presentation Forms-B, Unicode 1.1 not acknowledged as space (PR #175) +- CLI default threshold aligned with the API threshold from [@oleksandr-kuzmenko](https://github.com/oleksandr-kuzmenko) (PR #181) + +### Removed +- Support for Python 3.5 (PR #192) + +### Deprecated +- Use of backport unicodedata from `unicodedata2` as Python is quickly catching up, scheduled for removal in 3.0 (PR #194) + +## [2.0.12](https://github.com/Ousret/charset_normalizer/compare/2.0.11...2.0.12) (2022-02-12) + +### Fixed +- ASCII miss-detection on rare cases (PR #170) + +## [2.0.11](https://github.com/Ousret/charset_normalizer/compare/2.0.10...2.0.11) (2022-01-30) + +### Added +- Explicit support for Python 3.11 (PR #164) + +### Changed +- The logging behavior have been completely reviewed, now using only TRACE and DEBUG levels (PR #163 #165) + +## [2.0.10](https://github.com/Ousret/charset_normalizer/compare/2.0.9...2.0.10) (2022-01-04) + +### Fixed +- Fallback match entries might lead to UnicodeDecodeError for large bytes sequence (PR #154) + +### Changed +- Skipping the language-detection (CD) on ASCII (PR #155) + +## [2.0.9](https://github.com/Ousret/charset_normalizer/compare/2.0.8...2.0.9) (2021-12-03) + +### Changed +- Moderating the logging impact (since 2.0.8) for specific environments (PR #147) + +### Fixed +- Wrong logging level applied when setting kwarg `explain` to True (PR #146) + +## [2.0.8](https://github.com/Ousret/charset_normalizer/compare/2.0.7...2.0.8) (2021-11-24) +### Changed +- Improvement over Vietnamese detection (PR #126) +- MD improvement on trailing data and long foreign (non-pure latin) data (PR #124) +- Efficiency improvements in cd/alphabet_languages from [@adbar](https://github.com/adbar) (PR #122) +- call sum() without an intermediary list following PEP 289 recommendations from [@adbar](https://github.com/adbar) (PR #129) +- Code style as refactored by Sourcery-AI (PR #131) +- Minor adjustment on the MD around european words (PR #133) +- Remove and replace SRTs from assets / tests (PR #139) +- Initialize the library logger with a `NullHandler` by default from [@nmaynes](https://github.com/nmaynes) (PR #135) +- Setting kwarg `explain` to True will add provisionally (bounded to function lifespan) a specific stream handler (PR #135) + +### Fixed +- Fix large (misleading) sequence giving UnicodeDecodeError (PR #137) +- Avoid using too insignificant chunk (PR #137) + +### Added +- Add and expose function `set_logging_handler` to configure a specific StreamHandler from [@nmaynes](https://github.com/nmaynes) (PR #135) +- Add `CHANGELOG.md` entries, format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) (PR #141) + +## [2.0.7](https://github.com/Ousret/charset_normalizer/compare/2.0.6...2.0.7) (2021-10-11) +### Added +- Add support for Kazakh (Cyrillic) language detection (PR #109) + +### Changed +- Further, improve inferring the language from a given single-byte code page (PR #112) +- Vainly trying to leverage PEP263 when PEP3120 is not supported (PR #116) +- Refactoring for potential performance improvements in loops from [@adbar](https://github.com/adbar) (PR #113) +- Various detection improvement (MD+CD) (PR #117) + +### Removed +- Remove redundant logging entry about detected language(s) (PR #115) + +### Fixed +- Fix a minor inconsistency between Python 3.5 and other versions regarding language detection (PR #117 #102) + +## [2.0.6](https://github.com/Ousret/charset_normalizer/compare/2.0.5...2.0.6) (2021-09-18) +### Fixed +- Unforeseen regression with the loss of the backward-compatibility with some older minor of Python 3.5.x (PR #100) +- Fix CLI crash when using --minimal output in certain cases (PR #103) + +### Changed +- Minor improvement to the detection efficiency (less than 1%) (PR #106 #101) + +## [2.0.5](https://github.com/Ousret/charset_normalizer/compare/2.0.4...2.0.5) (2021-09-14) +### Changed +- The project now comply with: flake8, mypy, isort and black to ensure a better overall quality (PR #81) +- The BC-support with v1.x was improved, the old staticmethods are restored (PR #82) +- The Unicode detection is slightly improved (PR #93) +- Add syntax sugar \_\_bool\_\_ for results CharsetMatches list-container (PR #91) + +### Removed +- The project no longer raise warning on tiny content given for detection, will be simply logged as warning instead (PR #92) + +### Fixed +- In some rare case, the chunks extractor could cut in the middle of a multi-byte character and could mislead the mess detection (PR #95) +- Some rare 'space' characters could trip up the UnprintablePlugin/Mess detection (PR #96) +- The MANIFEST.in was not exhaustive (PR #78) + +## [2.0.4](https://github.com/Ousret/charset_normalizer/compare/2.0.3...2.0.4) (2021-07-30) +### Fixed +- The CLI no longer raise an unexpected exception when no encoding has been found (PR #70) +- Fix accessing the 'alphabets' property when the payload contains surrogate characters (PR #68) +- The logger could mislead (explain=True) on detected languages and the impact of one MBCS match (PR #72) +- Submatch factoring could be wrong in rare edge cases (PR #72) +- Multiple files given to the CLI were ignored when publishing results to STDOUT. (After the first path) (PR #72) +- Fix line endings from CRLF to LF for certain project files (PR #67) + +### Changed +- Adjust the MD to lower the sensitivity, thus improving the global detection reliability (PR #69 #76) +- Allow fallback on specified encoding if any (PR #71) + +## [2.0.3](https://github.com/Ousret/charset_normalizer/compare/2.0.2...2.0.3) (2021-07-16) +### Changed +- Part of the detection mechanism has been improved to be less sensitive, resulting in more accurate detection results. Especially ASCII. (PR #63) +- According to the community wishes, the detection will fall back on ASCII or UTF-8 in a last-resort case. (PR #64) + +## [2.0.2](https://github.com/Ousret/charset_normalizer/compare/2.0.1...2.0.2) (2021-07-15) +### Fixed +- Empty/Too small JSON payload miss-detection fixed. Report from [@tseaver](https://github.com/tseaver) (PR #59) + +### Changed +- Don't inject unicodedata2 into sys.modules from [@akx](https://github.com/akx) (PR #57) + +## [2.0.1](https://github.com/Ousret/charset_normalizer/compare/2.0.0...2.0.1) (2021-07-13) +### Fixed +- Make it work where there isn't a filesystem available, dropping assets frequencies.json. Report from [@sethmlarson](https://github.com/sethmlarson). (PR #55) +- Using explain=False permanently disable the verbose output in the current runtime (PR #47) +- One log entry (language target preemptive) was not show in logs when using explain=True (PR #47) +- Fix undesired exception (ValueError) on getitem of instance CharsetMatches (PR #52) + +### Changed +- Public function normalize default args values were not aligned with from_bytes (PR #53) + +### Added +- You may now use charset aliases in cp_isolation and cp_exclusion arguments (PR #47) + +## [2.0.0](https://github.com/Ousret/charset_normalizer/compare/1.4.1...2.0.0) (2021-07-02) +### Changed +- 4x to 5 times faster than the previous 1.4.0 release. At least 2x faster than Chardet. +- Accent has been made on UTF-8 detection, should perform rather instantaneous. +- The backward compatibility with Chardet has been greatly improved. The legacy detect function returns an identical charset name whenever possible. +- The detection mechanism has been slightly improved, now Turkish content is detected correctly (most of the time) +- The program has been rewritten to ease the readability and maintainability. (+Using static typing)+ +- utf_7 detection has been reinstated. + +### Removed +- This package no longer require anything when used with Python 3.5 (Dropped cached_property) +- Removed support for these languages: Catalan, Esperanto, Kazakh, Baque, Volapük, Azeri, Galician, Nynorsk, Macedonian, and Serbocroatian. +- The exception hook on UnicodeDecodeError has been removed. + +### Deprecated +- Methods coherence_non_latin, w_counter, chaos_secondary_pass of the class CharsetMatch are now deprecated and scheduled for removal in v3.0 + +### Fixed +- The CLI output used the relative path of the file(s). Should be absolute. + +## [1.4.1](https://github.com/Ousret/charset_normalizer/compare/1.4.0...1.4.1) (2021-05-28) +### Fixed +- Logger configuration/usage no longer conflict with others (PR #44) + +## [1.4.0](https://github.com/Ousret/charset_normalizer/compare/1.3.9...1.4.0) (2021-05-21) +### Removed +- Using standard logging instead of using the package loguru. +- Dropping nose test framework in favor of the maintained pytest. +- Choose to not use dragonmapper package to help with gibberish Chinese/CJK text. +- Require cached_property only for Python 3.5 due to constraint. Dropping for every other interpreter version. +- Stop support for UTF-7 that does not contain a SIG. +- Dropping PrettyTable, replaced with pure JSON output in CLI. + +### Fixed +- BOM marker in a CharsetNormalizerMatch instance could be False in rare cases even if obviously present. Due to the sub-match factoring process. +- Not searching properly for the BOM when trying utf32/16 parent codec. + +### Changed +- Improving the package final size by compressing frequencies.json. +- Huge improvement over the larges payload. + +### Added +- CLI now produces JSON consumable output. +- Return ASCII if given sequences fit. Given reasonable confidence. + +## [1.3.9](https://github.com/Ousret/charset_normalizer/compare/1.3.8...1.3.9) (2021-05-13) + +### Fixed +- In some very rare cases, you may end up getting encode/decode errors due to a bad bytes payload (PR #40) + +## [1.3.8](https://github.com/Ousret/charset_normalizer/compare/1.3.7...1.3.8) (2021-05-12) + +### Fixed +- Empty given payload for detection may cause an exception if trying to access the `alphabets` property. (PR #39) + +## [1.3.7](https://github.com/Ousret/charset_normalizer/compare/1.3.6...1.3.7) (2021-05-12) + +### Fixed +- The legacy detect function should return UTF-8-SIG if sig is present in the payload. (PR #38) + +## [1.3.6](https://github.com/Ousret/charset_normalizer/compare/1.3.5...1.3.6) (2021-02-09) + +### Changed +- Amend the previous release to allow prettytable 2.0 (PR #35) + +## [1.3.5](https://github.com/Ousret/charset_normalizer/compare/1.3.4...1.3.5) (2021-02-08) + +### Fixed +- Fix error while using the package with a python pre-release interpreter (PR #33) + +### Changed +- Dependencies refactoring, constraints revised. + +### Added +- Add python 3.9 and 3.10 to the supported interpreters + +MIT License + +Copyright (c) 2025 TAHRI Ahmed R. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/RECORD b/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/RECORD new file mode 100644 index 0000000..63817fe --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/RECORD @@ -0,0 +1,35 @@ +../../../bin/normalizer,sha256=MKfK-O2o-okisma1wriDcKhskilH07S61aEu44iDBLI,270 +charset_normalizer-3.4.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +charset_normalizer-3.4.4.dist-info/METADATA,sha256=jVuUFBti8dav19YLvWissTihVdF2ozUY4KKMw7jdkBQ,37303 +charset_normalizer-3.4.4.dist-info/RECORD,, +charset_normalizer-3.4.4.dist-info/WHEEL,sha256=BvA_i88wcFUl5ehXLgmhwyDL4XPGrCKn6CTUA9axFDE,190 +charset_normalizer-3.4.4.dist-info/entry_points.txt,sha256=ADSTKrkXZ3hhdOVFi6DcUEHQRS0xfxDIE_pEz4wLIXA,65 +charset_normalizer-3.4.4.dist-info/licenses/LICENSE,sha256=bQ1Bv-FwrGx9wkjJpj4lTQ-0WmDVCoJX0K-SxuJJuIc,1071 +charset_normalizer-3.4.4.dist-info/top_level.txt,sha256=7ASyzePr8_xuZWJsnqJjIBtyV8vhEo0wBCv1MPRRi3Q,19 +charset_normalizer/__init__.py,sha256=OKRxRv2Zhnqk00tqkN0c1BtJjm165fWXLydE52IKuHc,1590 +charset_normalizer/__main__.py,sha256=yzYxMR-IhKRHYwcSlavEv8oGdwxsR89mr2X09qXGdps,109 +charset_normalizer/__pycache__/__init__.cpython-311.pyc,, +charset_normalizer/__pycache__/__main__.cpython-311.pyc,, +charset_normalizer/__pycache__/api.cpython-311.pyc,, +charset_normalizer/__pycache__/cd.cpython-311.pyc,, +charset_normalizer/__pycache__/constant.cpython-311.pyc,, +charset_normalizer/__pycache__/legacy.cpython-311.pyc,, +charset_normalizer/__pycache__/md.cpython-311.pyc,, +charset_normalizer/__pycache__/models.cpython-311.pyc,, +charset_normalizer/__pycache__/utils.cpython-311.pyc,, +charset_normalizer/__pycache__/version.cpython-311.pyc,, +charset_normalizer/api.py,sha256=V07i8aVeCD8T2fSia3C-fn0i9t8qQguEBhsqszg32Ns,22668 +charset_normalizer/cd.py,sha256=WKTo1HDb-H9HfCDc3Bfwq5jzS25Ziy9SE2a74SgTq88,12522 +charset_normalizer/cli/__init__.py,sha256=D8I86lFk2-py45JvqxniTirSj_sFyE6sjaY_0-G1shc,136 +charset_normalizer/cli/__main__.py,sha256=dMaXG6IJXRvqq8z2tig7Qb83-BpWTln55ooiku5_uvg,12646 +charset_normalizer/cli/__pycache__/__init__.cpython-311.pyc,, +charset_normalizer/cli/__pycache__/__main__.cpython-311.pyc,, +charset_normalizer/constant.py,sha256=7UVY4ldYhmQMHUdgQ_sgZmzcQ0xxYxpBunqSZ-XJZ8U,42713 +charset_normalizer/legacy.py,sha256=sYBzSpzsRrg_wF4LP536pG64BItw7Tqtc3SMQAHvFLM,2731 +charset_normalizer/md.cpython-311-x86_64-linux-gnu.so,sha256=vmQPHNPc6Z0rbXxiiMeoCQxfjjh5z8umtRgKpBckk7E,15912 +charset_normalizer/md.py,sha256=-_oN3h3_X99nkFfqamD3yu45DC_wfk5odH0Tr_CQiXs,20145 +charset_normalizer/md__mypyc.cpython-311-x86_64-linux-gnu.so,sha256=83X9F2ayDPRojhPPi7Dpm2LS0plQBG4B12R1GSri2lw,282232 +charset_normalizer/models.py,sha256=lKXhOnIPtiakbK3i__J9wpOfzx3JDTKj7Dn3Rg0VaRI,12394 +charset_normalizer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +charset_normalizer/utils.py,sha256=sTejPgrdlNsKNucZfJCxJ95lMTLA0ShHLLE3n5wpT9Q,12170 +charset_normalizer/version.py,sha256=nKE4qBNk5WA4LIJ_yIH_aSDfvtsyizkWMg-PUG-UZVk,115 diff --git a/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/WHEEL b/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/WHEEL new file mode 100644 index 0000000..35bcd5d --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/WHEEL @@ -0,0 +1,7 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: false +Tag: cp311-cp311-manylinux_2_17_x86_64 +Tag: cp311-cp311-manylinux2014_x86_64 +Tag: cp311-cp311-manylinux_2_28_x86_64 + diff --git a/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/entry_points.txt b/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/entry_points.txt new file mode 100644 index 0000000..65619e7 --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +normalizer = charset_normalizer.cli:cli_detect diff --git a/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/licenses/LICENSE new file mode 100644 index 0000000..9725772 --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 TAHRI Ahmed R. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/top_level.txt new file mode 100644 index 0000000..66958f0 --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer-3.4.4.dist-info/top_level.txt @@ -0,0 +1 @@ +charset_normalizer diff --git a/venv/lib/python3.11/site-packages/charset_normalizer/__init__.py b/venv/lib/python3.11/site-packages/charset_normalizer/__init__.py new file mode 100644 index 0000000..0d3a379 --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer/__init__.py @@ -0,0 +1,48 @@ +""" +Charset-Normalizer +~~~~~~~~~~~~~~ +The Real First Universal Charset Detector. +A library that helps you read text from an unknown charset encoding. +Motivated by chardet, This package is trying to resolve the issue by taking a new approach. +All IANA character set names for which the Python core library provides codecs are supported. + +Basic usage: + >>> from charset_normalizer import from_bytes + >>> results = from_bytes('Bсеки човек има право на образование. Oбразованието!'.encode('utf_8')) + >>> best_guess = results.best() + >>> str(best_guess) + 'Bсеки човек има право на образование. Oбразованието!' + +Others methods and usages are available - see the full documentation +at . +:copyright: (c) 2021 by Ahmed TAHRI +:license: MIT, see LICENSE for more details. +""" + +from __future__ import annotations + +import logging + +from .api import from_bytes, from_fp, from_path, is_binary +from .legacy import detect +from .models import CharsetMatch, CharsetMatches +from .utils import set_logging_handler +from .version import VERSION, __version__ + +__all__ = ( + "from_fp", + "from_path", + "from_bytes", + "is_binary", + "detect", + "CharsetMatch", + "CharsetMatches", + "__version__", + "VERSION", + "set_logging_handler", +) + +# Attach a NullHandler to the top level logger by default +# https://docs.python.org/3.3/howto/logging.html#configuring-logging-for-a-library + +logging.getLogger("charset_normalizer").addHandler(logging.NullHandler()) diff --git a/venv/lib/python3.11/site-packages/charset_normalizer/__main__.py b/venv/lib/python3.11/site-packages/charset_normalizer/__main__.py new file mode 100644 index 0000000..e0e76f7 --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer/__main__.py @@ -0,0 +1,6 @@ +from __future__ import annotations + +from .cli import cli_detect + +if __name__ == "__main__": + cli_detect() diff --git a/venv/lib/python3.11/site-packages/charset_normalizer/api.py b/venv/lib/python3.11/site-packages/charset_normalizer/api.py new file mode 100644 index 0000000..ebd9639 --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer/api.py @@ -0,0 +1,669 @@ +from __future__ import annotations + +import logging +from os import PathLike +from typing import BinaryIO + +from .cd import ( + coherence_ratio, + encoding_languages, + mb_encoding_languages, + merge_coherence_ratios, +) +from .constant import IANA_SUPPORTED, TOO_BIG_SEQUENCE, TOO_SMALL_SEQUENCE, TRACE +from .md import mess_ratio +from .models import CharsetMatch, CharsetMatches +from .utils import ( + any_specified_encoding, + cut_sequence_chunks, + iana_name, + identify_sig_or_bom, + is_cp_similar, + is_multi_byte_encoding, + should_strip_sig_or_bom, +) + +logger = logging.getLogger("charset_normalizer") +explain_handler = logging.StreamHandler() +explain_handler.setFormatter( + logging.Formatter("%(asctime)s | %(levelname)s | %(message)s") +) + + +def from_bytes( + sequences: bytes | bytearray, + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.2, + cp_isolation: list[str] | None = None, + cp_exclusion: list[str] | None = None, + preemptive_behaviour: bool = True, + explain: bool = False, + language_threshold: float = 0.1, + enable_fallback: bool = True, +) -> CharsetMatches: + """ + Given a raw bytes sequence, return the best possibles charset usable to render str objects. + If there is no results, it is a strong indicator that the source is binary/not text. + By default, the process will extract 5 blocks of 512o each to assess the mess and coherence of a given sequence. + And will give up a particular code page after 20% of measured mess. Those criteria are customizable at will. + + The preemptive behavior DOES NOT replace the traditional detection workflow, it prioritize a particular code page + but never take it for granted. Can improve the performance. + + You may want to focus your attention to some code page or/and not others, use cp_isolation and cp_exclusion for that + purpose. + + This function will strip the SIG in the payload/sequence every time except on UTF-16, UTF-32. + By default the library does not setup any handler other than the NullHandler, if you choose to set the 'explain' + toggle to True it will alter the logger configuration to add a StreamHandler that is suitable for debugging. + Custom logging format and handler can be set manually. + """ + + if not isinstance(sequences, (bytearray, bytes)): + raise TypeError( + "Expected object of type bytes or bytearray, got: {}".format( + type(sequences) + ) + ) + + if explain: + previous_logger_level: int = logger.level + logger.addHandler(explain_handler) + logger.setLevel(TRACE) + + length: int = len(sequences) + + if length == 0: + logger.debug("Encoding detection on empty bytes, assuming utf_8 intention.") + if explain: # Defensive: ensure exit path clean handler + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level or logging.WARNING) + return CharsetMatches([CharsetMatch(sequences, "utf_8", 0.0, False, [], "")]) + + if cp_isolation is not None: + logger.log( + TRACE, + "cp_isolation is set. use this flag for debugging purpose. " + "limited list of encoding allowed : %s.", + ", ".join(cp_isolation), + ) + cp_isolation = [iana_name(cp, False) for cp in cp_isolation] + else: + cp_isolation = [] + + if cp_exclusion is not None: + logger.log( + TRACE, + "cp_exclusion is set. use this flag for debugging purpose. " + "limited list of encoding excluded : %s.", + ", ".join(cp_exclusion), + ) + cp_exclusion = [iana_name(cp, False) for cp in cp_exclusion] + else: + cp_exclusion = [] + + if length <= (chunk_size * steps): + logger.log( + TRACE, + "override steps (%i) and chunk_size (%i) as content does not fit (%i byte(s) given) parameters.", + steps, + chunk_size, + length, + ) + steps = 1 + chunk_size = length + + if steps > 1 and length / steps < chunk_size: + chunk_size = int(length / steps) + + is_too_small_sequence: bool = len(sequences) < TOO_SMALL_SEQUENCE + is_too_large_sequence: bool = len(sequences) >= TOO_BIG_SEQUENCE + + if is_too_small_sequence: + logger.log( + TRACE, + "Trying to detect encoding from a tiny portion of ({}) byte(s).".format( + length + ), + ) + elif is_too_large_sequence: + logger.log( + TRACE, + "Using lazy str decoding because the payload is quite large, ({}) byte(s).".format( + length + ), + ) + + prioritized_encodings: list[str] = [] + + specified_encoding: str | None = ( + any_specified_encoding(sequences) if preemptive_behaviour else None + ) + + if specified_encoding is not None: + prioritized_encodings.append(specified_encoding) + logger.log( + TRACE, + "Detected declarative mark in sequence. Priority +1 given for %s.", + specified_encoding, + ) + + tested: set[str] = set() + tested_but_hard_failure: list[str] = [] + tested_but_soft_failure: list[str] = [] + + fallback_ascii: CharsetMatch | None = None + fallback_u8: CharsetMatch | None = None + fallback_specified: CharsetMatch | None = None + + results: CharsetMatches = CharsetMatches() + + early_stop_results: CharsetMatches = CharsetMatches() + + sig_encoding, sig_payload = identify_sig_or_bom(sequences) + + if sig_encoding is not None: + prioritized_encodings.append(sig_encoding) + logger.log( + TRACE, + "Detected a SIG or BOM mark on first %i byte(s). Priority +1 given for %s.", + len(sig_payload), + sig_encoding, + ) + + prioritized_encodings.append("ascii") + + if "utf_8" not in prioritized_encodings: + prioritized_encodings.append("utf_8") + + for encoding_iana in prioritized_encodings + IANA_SUPPORTED: + if cp_isolation and encoding_iana not in cp_isolation: + continue + + if cp_exclusion and encoding_iana in cp_exclusion: + continue + + if encoding_iana in tested: + continue + + tested.add(encoding_iana) + + decoded_payload: str | None = None + bom_or_sig_available: bool = sig_encoding == encoding_iana + strip_sig_or_bom: bool = bom_or_sig_available and should_strip_sig_or_bom( + encoding_iana + ) + + if encoding_iana in {"utf_16", "utf_32"} and not bom_or_sig_available: + logger.log( + TRACE, + "Encoding %s won't be tested as-is because it require a BOM. Will try some sub-encoder LE/BE.", + encoding_iana, + ) + continue + if encoding_iana in {"utf_7"} and not bom_or_sig_available: + logger.log( + TRACE, + "Encoding %s won't be tested as-is because detection is unreliable without BOM/SIG.", + encoding_iana, + ) + continue + + try: + is_multi_byte_decoder: bool = is_multi_byte_encoding(encoding_iana) + except (ModuleNotFoundError, ImportError): + logger.log( + TRACE, + "Encoding %s does not provide an IncrementalDecoder", + encoding_iana, + ) + continue + + try: + if is_too_large_sequence and is_multi_byte_decoder is False: + str( + ( + sequences[: int(50e4)] + if strip_sig_or_bom is False + else sequences[len(sig_payload) : int(50e4)] + ), + encoding=encoding_iana, + ) + else: + decoded_payload = str( + ( + sequences + if strip_sig_or_bom is False + else sequences[len(sig_payload) :] + ), + encoding=encoding_iana, + ) + except (UnicodeDecodeError, LookupError) as e: + if not isinstance(e, LookupError): + logger.log( + TRACE, + "Code page %s does not fit given bytes sequence at ALL. %s", + encoding_iana, + str(e), + ) + tested_but_hard_failure.append(encoding_iana) + continue + + similar_soft_failure_test: bool = False + + for encoding_soft_failed in tested_but_soft_failure: + if is_cp_similar(encoding_iana, encoding_soft_failed): + similar_soft_failure_test = True + break + + if similar_soft_failure_test: + logger.log( + TRACE, + "%s is deemed too similar to code page %s and was consider unsuited already. Continuing!", + encoding_iana, + encoding_soft_failed, + ) + continue + + r_ = range( + 0 if not bom_or_sig_available else len(sig_payload), + length, + int(length / steps), + ) + + multi_byte_bonus: bool = ( + is_multi_byte_decoder + and decoded_payload is not None + and len(decoded_payload) < length + ) + + if multi_byte_bonus: + logger.log( + TRACE, + "Code page %s is a multi byte encoding table and it appear that at least one character " + "was encoded using n-bytes.", + encoding_iana, + ) + + max_chunk_gave_up: int = int(len(r_) / 4) + + max_chunk_gave_up = max(max_chunk_gave_up, 2) + early_stop_count: int = 0 + lazy_str_hard_failure = False + + md_chunks: list[str] = [] + md_ratios = [] + + try: + for chunk in cut_sequence_chunks( + sequences, + encoding_iana, + r_, + chunk_size, + bom_or_sig_available, + strip_sig_or_bom, + sig_payload, + is_multi_byte_decoder, + decoded_payload, + ): + md_chunks.append(chunk) + + md_ratios.append( + mess_ratio( + chunk, + threshold, + explain is True and 1 <= len(cp_isolation) <= 2, + ) + ) + + if md_ratios[-1] >= threshold: + early_stop_count += 1 + + if (early_stop_count >= max_chunk_gave_up) or ( + bom_or_sig_available and strip_sig_or_bom is False + ): + break + except ( + UnicodeDecodeError + ) as e: # Lazy str loading may have missed something there + logger.log( + TRACE, + "LazyStr Loading: After MD chunk decode, code page %s does not fit given bytes sequence at ALL. %s", + encoding_iana, + str(e), + ) + early_stop_count = max_chunk_gave_up + lazy_str_hard_failure = True + + # We might want to check the sequence again with the whole content + # Only if initial MD tests passes + if ( + not lazy_str_hard_failure + and is_too_large_sequence + and not is_multi_byte_decoder + ): + try: + sequences[int(50e3) :].decode(encoding_iana, errors="strict") + except UnicodeDecodeError as e: + logger.log( + TRACE, + "LazyStr Loading: After final lookup, code page %s does not fit given bytes sequence at ALL. %s", + encoding_iana, + str(e), + ) + tested_but_hard_failure.append(encoding_iana) + continue + + mean_mess_ratio: float = sum(md_ratios) / len(md_ratios) if md_ratios else 0.0 + if mean_mess_ratio >= threshold or early_stop_count >= max_chunk_gave_up: + tested_but_soft_failure.append(encoding_iana) + logger.log( + TRACE, + "%s was excluded because of initial chaos probing. Gave up %i time(s). " + "Computed mean chaos is %f %%.", + encoding_iana, + early_stop_count, + round(mean_mess_ratio * 100, ndigits=3), + ) + # Preparing those fallbacks in case we got nothing. + if ( + enable_fallback + and encoding_iana + in ["ascii", "utf_8", specified_encoding, "utf_16", "utf_32"] + and not lazy_str_hard_failure + ): + fallback_entry = CharsetMatch( + sequences, + encoding_iana, + threshold, + bom_or_sig_available, + [], + decoded_payload, + preemptive_declaration=specified_encoding, + ) + if encoding_iana == specified_encoding: + fallback_specified = fallback_entry + elif encoding_iana == "ascii": + fallback_ascii = fallback_entry + else: + fallback_u8 = fallback_entry + continue + + logger.log( + TRACE, + "%s passed initial chaos probing. Mean measured chaos is %f %%", + encoding_iana, + round(mean_mess_ratio * 100, ndigits=3), + ) + + if not is_multi_byte_decoder: + target_languages: list[str] = encoding_languages(encoding_iana) + else: + target_languages = mb_encoding_languages(encoding_iana) + + if target_languages: + logger.log( + TRACE, + "{} should target any language(s) of {}".format( + encoding_iana, str(target_languages) + ), + ) + + cd_ratios = [] + + # We shall skip the CD when its about ASCII + # Most of the time its not relevant to run "language-detection" on it. + if encoding_iana != "ascii": + for chunk in md_chunks: + chunk_languages = coherence_ratio( + chunk, + language_threshold, + ",".join(target_languages) if target_languages else None, + ) + + cd_ratios.append(chunk_languages) + + cd_ratios_merged = merge_coherence_ratios(cd_ratios) + + if cd_ratios_merged: + logger.log( + TRACE, + "We detected language {} using {}".format( + cd_ratios_merged, encoding_iana + ), + ) + + current_match = CharsetMatch( + sequences, + encoding_iana, + mean_mess_ratio, + bom_or_sig_available, + cd_ratios_merged, + ( + decoded_payload + if ( + is_too_large_sequence is False + or encoding_iana in [specified_encoding, "ascii", "utf_8"] + ) + else None + ), + preemptive_declaration=specified_encoding, + ) + + results.append(current_match) + + if ( + encoding_iana in [specified_encoding, "ascii", "utf_8"] + and mean_mess_ratio < 0.1 + ): + # If md says nothing to worry about, then... stop immediately! + if mean_mess_ratio == 0.0: + logger.debug( + "Encoding detection: %s is most likely the one.", + current_match.encoding, + ) + if explain: # Defensive: ensure exit path clean handler + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level) + return CharsetMatches([current_match]) + + early_stop_results.append(current_match) + + if ( + len(early_stop_results) + and (specified_encoding is None or specified_encoding in tested) + and "ascii" in tested + and "utf_8" in tested + ): + probable_result: CharsetMatch = early_stop_results.best() # type: ignore[assignment] + logger.debug( + "Encoding detection: %s is most likely the one.", + probable_result.encoding, + ) + if explain: # Defensive: ensure exit path clean handler + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level) + + return CharsetMatches([probable_result]) + + if encoding_iana == sig_encoding: + logger.debug( + "Encoding detection: %s is most likely the one as we detected a BOM or SIG within " + "the beginning of the sequence.", + encoding_iana, + ) + if explain: # Defensive: ensure exit path clean handler + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level) + return CharsetMatches([results[encoding_iana]]) + + if len(results) == 0: + if fallback_u8 or fallback_ascii or fallback_specified: + logger.log( + TRACE, + "Nothing got out of the detection process. Using ASCII/UTF-8/Specified fallback.", + ) + + if fallback_specified: + logger.debug( + "Encoding detection: %s will be used as a fallback match", + fallback_specified.encoding, + ) + results.append(fallback_specified) + elif ( + (fallback_u8 and fallback_ascii is None) + or ( + fallback_u8 + and fallback_ascii + and fallback_u8.fingerprint != fallback_ascii.fingerprint + ) + or (fallback_u8 is not None) + ): + logger.debug("Encoding detection: utf_8 will be used as a fallback match") + results.append(fallback_u8) + elif fallback_ascii: + logger.debug("Encoding detection: ascii will be used as a fallback match") + results.append(fallback_ascii) + + if results: + logger.debug( + "Encoding detection: Found %s as plausible (best-candidate) for content. With %i alternatives.", + results.best().encoding, # type: ignore + len(results) - 1, + ) + else: + logger.debug("Encoding detection: Unable to determine any suitable charset.") + + if explain: + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level) + + return results + + +def from_fp( + fp: BinaryIO, + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.20, + cp_isolation: list[str] | None = None, + cp_exclusion: list[str] | None = None, + preemptive_behaviour: bool = True, + explain: bool = False, + language_threshold: float = 0.1, + enable_fallback: bool = True, +) -> CharsetMatches: + """ + Same thing than the function from_bytes but using a file pointer that is already ready. + Will not close the file pointer. + """ + return from_bytes( + fp.read(), + steps, + chunk_size, + threshold, + cp_isolation, + cp_exclusion, + preemptive_behaviour, + explain, + language_threshold, + enable_fallback, + ) + + +def from_path( + path: str | bytes | PathLike, # type: ignore[type-arg] + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.20, + cp_isolation: list[str] | None = None, + cp_exclusion: list[str] | None = None, + preemptive_behaviour: bool = True, + explain: bool = False, + language_threshold: float = 0.1, + enable_fallback: bool = True, +) -> CharsetMatches: + """ + Same thing than the function from_bytes but with one extra step. Opening and reading given file path in binary mode. + Can raise IOError. + """ + with open(path, "rb") as fp: + return from_fp( + fp, + steps, + chunk_size, + threshold, + cp_isolation, + cp_exclusion, + preemptive_behaviour, + explain, + language_threshold, + enable_fallback, + ) + + +def is_binary( + fp_or_path_or_payload: PathLike | str | BinaryIO | bytes, # type: ignore[type-arg] + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.20, + cp_isolation: list[str] | None = None, + cp_exclusion: list[str] | None = None, + preemptive_behaviour: bool = True, + explain: bool = False, + language_threshold: float = 0.1, + enable_fallback: bool = False, +) -> bool: + """ + Detect if the given input (file, bytes, or path) points to a binary file. aka. not a string. + Based on the same main heuristic algorithms and default kwargs at the sole exception that fallbacks match + are disabled to be stricter around ASCII-compatible but unlikely to be a string. + """ + if isinstance(fp_or_path_or_payload, (str, PathLike)): + guesses = from_path( + fp_or_path_or_payload, + steps=steps, + chunk_size=chunk_size, + threshold=threshold, + cp_isolation=cp_isolation, + cp_exclusion=cp_exclusion, + preemptive_behaviour=preemptive_behaviour, + explain=explain, + language_threshold=language_threshold, + enable_fallback=enable_fallback, + ) + elif isinstance( + fp_or_path_or_payload, + ( + bytes, + bytearray, + ), + ): + guesses = from_bytes( + fp_or_path_or_payload, + steps=steps, + chunk_size=chunk_size, + threshold=threshold, + cp_isolation=cp_isolation, + cp_exclusion=cp_exclusion, + preemptive_behaviour=preemptive_behaviour, + explain=explain, + language_threshold=language_threshold, + enable_fallback=enable_fallback, + ) + else: + guesses = from_fp( + fp_or_path_or_payload, + steps=steps, + chunk_size=chunk_size, + threshold=threshold, + cp_isolation=cp_isolation, + cp_exclusion=cp_exclusion, + preemptive_behaviour=preemptive_behaviour, + explain=explain, + language_threshold=language_threshold, + enable_fallback=enable_fallback, + ) + + return not guesses diff --git a/venv/lib/python3.11/site-packages/charset_normalizer/cd.py b/venv/lib/python3.11/site-packages/charset_normalizer/cd.py new file mode 100644 index 0000000..71a3ed5 --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer/cd.py @@ -0,0 +1,395 @@ +from __future__ import annotations + +import importlib +from codecs import IncrementalDecoder +from collections import Counter +from functools import lru_cache +from typing import Counter as TypeCounter + +from .constant import ( + FREQUENCIES, + KO_NAMES, + LANGUAGE_SUPPORTED_COUNT, + TOO_SMALL_SEQUENCE, + ZH_NAMES, +) +from .md import is_suspiciously_successive_range +from .models import CoherenceMatches +from .utils import ( + is_accentuated, + is_latin, + is_multi_byte_encoding, + is_unicode_range_secondary, + unicode_range, +) + + +def encoding_unicode_range(iana_name: str) -> list[str]: + """ + Return associated unicode ranges in a single byte code page. + """ + if is_multi_byte_encoding(iana_name): + raise OSError("Function not supported on multi-byte code page") + + decoder = importlib.import_module(f"encodings.{iana_name}").IncrementalDecoder + + p: IncrementalDecoder = decoder(errors="ignore") + seen_ranges: dict[str, int] = {} + character_count: int = 0 + + for i in range(0x40, 0xFF): + chunk: str = p.decode(bytes([i])) + + if chunk: + character_range: str | None = unicode_range(chunk) + + if character_range is None: + continue + + if is_unicode_range_secondary(character_range) is False: + if character_range not in seen_ranges: + seen_ranges[character_range] = 0 + seen_ranges[character_range] += 1 + character_count += 1 + + return sorted( + [ + character_range + for character_range in seen_ranges + if seen_ranges[character_range] / character_count >= 0.15 + ] + ) + + +def unicode_range_languages(primary_range: str) -> list[str]: + """ + Return inferred languages used with a unicode range. + """ + languages: list[str] = [] + + for language, characters in FREQUENCIES.items(): + for character in characters: + if unicode_range(character) == primary_range: + languages.append(language) + break + + return languages + + +@lru_cache() +def encoding_languages(iana_name: str) -> list[str]: + """ + Single-byte encoding language association. Some code page are heavily linked to particular language(s). + This function does the correspondence. + """ + unicode_ranges: list[str] = encoding_unicode_range(iana_name) + primary_range: str | None = None + + for specified_range in unicode_ranges: + if "Latin" not in specified_range: + primary_range = specified_range + break + + if primary_range is None: + return ["Latin Based"] + + return unicode_range_languages(primary_range) + + +@lru_cache() +def mb_encoding_languages(iana_name: str) -> list[str]: + """ + Multi-byte encoding language association. Some code page are heavily linked to particular language(s). + This function does the correspondence. + """ + if ( + iana_name.startswith("shift_") + or iana_name.startswith("iso2022_jp") + or iana_name.startswith("euc_j") + or iana_name == "cp932" + ): + return ["Japanese"] + if iana_name.startswith("gb") or iana_name in ZH_NAMES: + return ["Chinese"] + if iana_name.startswith("iso2022_kr") or iana_name in KO_NAMES: + return ["Korean"] + + return [] + + +@lru_cache(maxsize=LANGUAGE_SUPPORTED_COUNT) +def get_target_features(language: str) -> tuple[bool, bool]: + """ + Determine main aspects from a supported language if it contains accents and if is pure Latin. + """ + target_have_accents: bool = False + target_pure_latin: bool = True + + for character in FREQUENCIES[language]: + if not target_have_accents and is_accentuated(character): + target_have_accents = True + if target_pure_latin and is_latin(character) is False: + target_pure_latin = False + + return target_have_accents, target_pure_latin + + +def alphabet_languages( + characters: list[str], ignore_non_latin: bool = False +) -> list[str]: + """ + Return associated languages associated to given characters. + """ + languages: list[tuple[str, float]] = [] + + source_have_accents = any(is_accentuated(character) for character in characters) + + for language, language_characters in FREQUENCIES.items(): + target_have_accents, target_pure_latin = get_target_features(language) + + if ignore_non_latin and target_pure_latin is False: + continue + + if target_have_accents is False and source_have_accents: + continue + + character_count: int = len(language_characters) + + character_match_count: int = len( + [c for c in language_characters if c in characters] + ) + + ratio: float = character_match_count / character_count + + if ratio >= 0.2: + languages.append((language, ratio)) + + languages = sorted(languages, key=lambda x: x[1], reverse=True) + + return [compatible_language[0] for compatible_language in languages] + + +def characters_popularity_compare( + language: str, ordered_characters: list[str] +) -> float: + """ + Determine if a ordered characters list (by occurrence from most appearance to rarest) match a particular language. + The result is a ratio between 0. (absolutely no correspondence) and 1. (near perfect fit). + Beware that is function is not strict on the match in order to ease the detection. (Meaning close match is 1.) + """ + if language not in FREQUENCIES: + raise ValueError(f"{language} not available") + + character_approved_count: int = 0 + FREQUENCIES_language_set = set(FREQUENCIES[language]) + + ordered_characters_count: int = len(ordered_characters) + target_language_characters_count: int = len(FREQUENCIES[language]) + + large_alphabet: bool = target_language_characters_count > 26 + + for character, character_rank in zip( + ordered_characters, range(0, ordered_characters_count) + ): + if character not in FREQUENCIES_language_set: + continue + + character_rank_in_language: int = FREQUENCIES[language].index(character) + expected_projection_ratio: float = ( + target_language_characters_count / ordered_characters_count + ) + character_rank_projection: int = int(character_rank * expected_projection_ratio) + + if ( + large_alphabet is False + and abs(character_rank_projection - character_rank_in_language) > 4 + ): + continue + + if ( + large_alphabet is True + and abs(character_rank_projection - character_rank_in_language) + < target_language_characters_count / 3 + ): + character_approved_count += 1 + continue + + characters_before_source: list[str] = FREQUENCIES[language][ + 0:character_rank_in_language + ] + characters_after_source: list[str] = FREQUENCIES[language][ + character_rank_in_language: + ] + characters_before: list[str] = ordered_characters[0:character_rank] + characters_after: list[str] = ordered_characters[character_rank:] + + before_match_count: int = len( + set(characters_before) & set(characters_before_source) + ) + + after_match_count: int = len( + set(characters_after) & set(characters_after_source) + ) + + if len(characters_before_source) == 0 and before_match_count <= 4: + character_approved_count += 1 + continue + + if len(characters_after_source) == 0 and after_match_count <= 4: + character_approved_count += 1 + continue + + if ( + before_match_count / len(characters_before_source) >= 0.4 + or after_match_count / len(characters_after_source) >= 0.4 + ): + character_approved_count += 1 + continue + + return character_approved_count / len(ordered_characters) + + +def alpha_unicode_split(decoded_sequence: str) -> list[str]: + """ + Given a decoded text sequence, return a list of str. Unicode range / alphabet separation. + Ex. a text containing English/Latin with a bit a Hebrew will return two items in the resulting list; + One containing the latin letters and the other hebrew. + """ + layers: dict[str, str] = {} + + for character in decoded_sequence: + if character.isalpha() is False: + continue + + character_range: str | None = unicode_range(character) + + if character_range is None: + continue + + layer_target_range: str | None = None + + for discovered_range in layers: + if ( + is_suspiciously_successive_range(discovered_range, character_range) + is False + ): + layer_target_range = discovered_range + break + + if layer_target_range is None: + layer_target_range = character_range + + if layer_target_range not in layers: + layers[layer_target_range] = character.lower() + continue + + layers[layer_target_range] += character.lower() + + return list(layers.values()) + + +def merge_coherence_ratios(results: list[CoherenceMatches]) -> CoherenceMatches: + """ + This function merge results previously given by the function coherence_ratio. + The return type is the same as coherence_ratio. + """ + per_language_ratios: dict[str, list[float]] = {} + for result in results: + for sub_result in result: + language, ratio = sub_result + if language not in per_language_ratios: + per_language_ratios[language] = [ratio] + continue + per_language_ratios[language].append(ratio) + + merge = [ + ( + language, + round( + sum(per_language_ratios[language]) / len(per_language_ratios[language]), + 4, + ), + ) + for language in per_language_ratios + ] + + return sorted(merge, key=lambda x: x[1], reverse=True) + + +def filter_alt_coherence_matches(results: CoherenceMatches) -> CoherenceMatches: + """ + We shall NOT return "English—" in CoherenceMatches because it is an alternative + of "English". This function only keeps the best match and remove the em-dash in it. + """ + index_results: dict[str, list[float]] = dict() + + for result in results: + language, ratio = result + no_em_name: str = language.replace("—", "") + + if no_em_name not in index_results: + index_results[no_em_name] = [] + + index_results[no_em_name].append(ratio) + + if any(len(index_results[e]) > 1 for e in index_results): + filtered_results: CoherenceMatches = [] + + for language in index_results: + filtered_results.append((language, max(index_results[language]))) + + return filtered_results + + return results + + +@lru_cache(maxsize=2048) +def coherence_ratio( + decoded_sequence: str, threshold: float = 0.1, lg_inclusion: str | None = None +) -> CoherenceMatches: + """ + Detect ANY language that can be identified in given sequence. The sequence will be analysed by layers. + A layer = Character extraction by alphabets/ranges. + """ + + results: list[tuple[str, float]] = [] + ignore_non_latin: bool = False + + sufficient_match_count: int = 0 + + lg_inclusion_list = lg_inclusion.split(",") if lg_inclusion is not None else [] + if "Latin Based" in lg_inclusion_list: + ignore_non_latin = True + lg_inclusion_list.remove("Latin Based") + + for layer in alpha_unicode_split(decoded_sequence): + sequence_frequencies: TypeCounter[str] = Counter(layer) + most_common = sequence_frequencies.most_common() + + character_count: int = sum(o for c, o in most_common) + + if character_count <= TOO_SMALL_SEQUENCE: + continue + + popular_character_ordered: list[str] = [c for c, o in most_common] + + for language in lg_inclusion_list or alphabet_languages( + popular_character_ordered, ignore_non_latin + ): + ratio: float = characters_popularity_compare( + language, popular_character_ordered + ) + + if ratio < threshold: + continue + elif ratio >= 0.8: + sufficient_match_count += 1 + + results.append((language, round(ratio, 4))) + + if sufficient_match_count >= 3: + break + + return sorted( + filter_alt_coherence_matches(results), key=lambda x: x[1], reverse=True + ) diff --git a/venv/lib/python3.11/site-packages/charset_normalizer/cli/__init__.py b/venv/lib/python3.11/site-packages/charset_normalizer/cli/__init__.py new file mode 100644 index 0000000..543a5a4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer/cli/__init__.py @@ -0,0 +1,8 @@ +from __future__ import annotations + +from .__main__ import cli_detect, query_yes_no + +__all__ = ( + "cli_detect", + "query_yes_no", +) diff --git a/venv/lib/python3.11/site-packages/charset_normalizer/cli/__main__.py b/venv/lib/python3.11/site-packages/charset_normalizer/cli/__main__.py new file mode 100644 index 0000000..cb64156 --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer/cli/__main__.py @@ -0,0 +1,381 @@ +from __future__ import annotations + +import argparse +import sys +import typing +from json import dumps +from os.path import abspath, basename, dirname, join, realpath +from platform import python_version +from unicodedata import unidata_version + +import charset_normalizer.md as md_module +from charset_normalizer import from_fp +from charset_normalizer.models import CliDetectionResult +from charset_normalizer.version import __version__ + + +def query_yes_no(question: str, default: str = "yes") -> bool: + """Ask a yes/no question via input() and return their answer. + + "question" is a string that is presented to the user. + "default" is the presumed answer if the user just hits . + It must be "yes" (the default), "no" or None (meaning + an answer is required of the user). + + The "answer" return value is True for "yes" or False for "no". + + Credit goes to (c) https://stackoverflow.com/questions/3041986/apt-command-line-interface-like-yes-no-input + """ + valid = {"yes": True, "y": True, "ye": True, "no": False, "n": False} + if default is None: + prompt = " [y/n] " + elif default == "yes": + prompt = " [Y/n] " + elif default == "no": + prompt = " [y/N] " + else: + raise ValueError("invalid default answer: '%s'" % default) + + while True: + sys.stdout.write(question + prompt) + choice = input().lower() + if default is not None and choice == "": + return valid[default] + elif choice in valid: + return valid[choice] + else: + sys.stdout.write("Please respond with 'yes' or 'no' (or 'y' or 'n').\n") + + +class FileType: + """Factory for creating file object types + + Instances of FileType are typically passed as type= arguments to the + ArgumentParser add_argument() method. + + Keyword Arguments: + - mode -- A string indicating how the file is to be opened. Accepts the + same values as the builtin open() function. + - bufsize -- The file's desired buffer size. Accepts the same values as + the builtin open() function. + - encoding -- The file's encoding. Accepts the same values as the + builtin open() function. + - errors -- A string indicating how encoding and decoding errors are to + be handled. Accepts the same value as the builtin open() function. + + Backported from CPython 3.12 + """ + + def __init__( + self, + mode: str = "r", + bufsize: int = -1, + encoding: str | None = None, + errors: str | None = None, + ): + self._mode = mode + self._bufsize = bufsize + self._encoding = encoding + self._errors = errors + + def __call__(self, string: str) -> typing.IO: # type: ignore[type-arg] + # the special argument "-" means sys.std{in,out} + if string == "-": + if "r" in self._mode: + return sys.stdin.buffer if "b" in self._mode else sys.stdin + elif any(c in self._mode for c in "wax"): + return sys.stdout.buffer if "b" in self._mode else sys.stdout + else: + msg = f'argument "-" with mode {self._mode}' + raise ValueError(msg) + + # all other arguments are used as file names + try: + return open(string, self._mode, self._bufsize, self._encoding, self._errors) + except OSError as e: + message = f"can't open '{string}': {e}" + raise argparse.ArgumentTypeError(message) + + def __repr__(self) -> str: + args = self._mode, self._bufsize + kwargs = [("encoding", self._encoding), ("errors", self._errors)] + args_str = ", ".join( + [repr(arg) for arg in args if arg != -1] + + [f"{kw}={arg!r}" for kw, arg in kwargs if arg is not None] + ) + return f"{type(self).__name__}({args_str})" + + +def cli_detect(argv: list[str] | None = None) -> int: + """ + CLI assistant using ARGV and ArgumentParser + :param argv: + :return: 0 if everything is fine, anything else equal trouble + """ + parser = argparse.ArgumentParser( + description="The Real First Universal Charset Detector. " + "Discover originating encoding used on text file. " + "Normalize text to unicode." + ) + + parser.add_argument( + "files", type=FileType("rb"), nargs="+", help="File(s) to be analysed" + ) + parser.add_argument( + "-v", + "--verbose", + action="store_true", + default=False, + dest="verbose", + help="Display complementary information about file if any. " + "Stdout will contain logs about the detection process.", + ) + parser.add_argument( + "-a", + "--with-alternative", + action="store_true", + default=False, + dest="alternatives", + help="Output complementary possibilities if any. Top-level JSON WILL be a list.", + ) + parser.add_argument( + "-n", + "--normalize", + action="store_true", + default=False, + dest="normalize", + help="Permit to normalize input file. If not set, program does not write anything.", + ) + parser.add_argument( + "-m", + "--minimal", + action="store_true", + default=False, + dest="minimal", + help="Only output the charset detected to STDOUT. Disabling JSON output.", + ) + parser.add_argument( + "-r", + "--replace", + action="store_true", + default=False, + dest="replace", + help="Replace file when trying to normalize it instead of creating a new one.", + ) + parser.add_argument( + "-f", + "--force", + action="store_true", + default=False, + dest="force", + help="Replace file without asking if you are sure, use this flag with caution.", + ) + parser.add_argument( + "-i", + "--no-preemptive", + action="store_true", + default=False, + dest="no_preemptive", + help="Disable looking at a charset declaration to hint the detector.", + ) + parser.add_argument( + "-t", + "--threshold", + action="store", + default=0.2, + type=float, + dest="threshold", + help="Define a custom maximum amount of noise allowed in decoded content. 0. <= noise <= 1.", + ) + parser.add_argument( + "--version", + action="version", + version="Charset-Normalizer {} - Python {} - Unicode {} - SpeedUp {}".format( + __version__, + python_version(), + unidata_version, + "OFF" if md_module.__file__.lower().endswith(".py") else "ON", + ), + help="Show version information and exit.", + ) + + args = parser.parse_args(argv) + + if args.replace is True and args.normalize is False: + if args.files: + for my_file in args.files: + my_file.close() + print("Use --replace in addition of --normalize only.", file=sys.stderr) + return 1 + + if args.force is True and args.replace is False: + if args.files: + for my_file in args.files: + my_file.close() + print("Use --force in addition of --replace only.", file=sys.stderr) + return 1 + + if args.threshold < 0.0 or args.threshold > 1.0: + if args.files: + for my_file in args.files: + my_file.close() + print("--threshold VALUE should be between 0. AND 1.", file=sys.stderr) + return 1 + + x_ = [] + + for my_file in args.files: + matches = from_fp( + my_file, + threshold=args.threshold, + explain=args.verbose, + preemptive_behaviour=args.no_preemptive is False, + ) + + best_guess = matches.best() + + if best_guess is None: + print( + 'Unable to identify originating encoding for "{}". {}'.format( + my_file.name, + ( + "Maybe try increasing maximum amount of chaos." + if args.threshold < 1.0 + else "" + ), + ), + file=sys.stderr, + ) + x_.append( + CliDetectionResult( + abspath(my_file.name), + None, + [], + [], + "Unknown", + [], + False, + 1.0, + 0.0, + None, + True, + ) + ) + else: + x_.append( + CliDetectionResult( + abspath(my_file.name), + best_guess.encoding, + best_guess.encoding_aliases, + [ + cp + for cp in best_guess.could_be_from_charset + if cp != best_guess.encoding + ], + best_guess.language, + best_guess.alphabets, + best_guess.bom, + best_guess.percent_chaos, + best_guess.percent_coherence, + None, + True, + ) + ) + + if len(matches) > 1 and args.alternatives: + for el in matches: + if el != best_guess: + x_.append( + CliDetectionResult( + abspath(my_file.name), + el.encoding, + el.encoding_aliases, + [ + cp + for cp in el.could_be_from_charset + if cp != el.encoding + ], + el.language, + el.alphabets, + el.bom, + el.percent_chaos, + el.percent_coherence, + None, + False, + ) + ) + + if args.normalize is True: + if best_guess.encoding.startswith("utf") is True: + print( + '"{}" file does not need to be normalized, as it already came from unicode.'.format( + my_file.name + ), + file=sys.stderr, + ) + if my_file.closed is False: + my_file.close() + continue + + dir_path = dirname(realpath(my_file.name)) + file_name = basename(realpath(my_file.name)) + + o_: list[str] = file_name.split(".") + + if args.replace is False: + o_.insert(-1, best_guess.encoding) + if my_file.closed is False: + my_file.close() + elif ( + args.force is False + and query_yes_no( + 'Are you sure to normalize "{}" by replacing it ?'.format( + my_file.name + ), + "no", + ) + is False + ): + if my_file.closed is False: + my_file.close() + continue + + try: + x_[0].unicode_path = join(dir_path, ".".join(o_)) + + with open(x_[0].unicode_path, "wb") as fp: + fp.write(best_guess.output()) + except OSError as e: + print(str(e), file=sys.stderr) + if my_file.closed is False: + my_file.close() + return 2 + + if my_file.closed is False: + my_file.close() + + if args.minimal is False: + print( + dumps( + [el.__dict__ for el in x_] if len(x_) > 1 else x_[0].__dict__, + ensure_ascii=True, + indent=4, + ) + ) + else: + for my_file in args.files: + print( + ", ".join( + [ + el.encoding or "undefined" + for el in x_ + if el.path == abspath(my_file.name) + ] + ) + ) + + return 0 + + +if __name__ == "__main__": + cli_detect() diff --git a/venv/lib/python3.11/site-packages/charset_normalizer/constant.py b/venv/lib/python3.11/site-packages/charset_normalizer/constant.py new file mode 100644 index 0000000..cc71a01 --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer/constant.py @@ -0,0 +1,2015 @@ +from __future__ import annotations + +from codecs import BOM_UTF8, BOM_UTF16_BE, BOM_UTF16_LE, BOM_UTF32_BE, BOM_UTF32_LE +from encodings.aliases import aliases +from re import IGNORECASE +from re import compile as re_compile + +# Contain for each eligible encoding a list of/item bytes SIG/BOM +ENCODING_MARKS: dict[str, bytes | list[bytes]] = { + "utf_8": BOM_UTF8, + "utf_7": [ + b"\x2b\x2f\x76\x38", + b"\x2b\x2f\x76\x39", + b"\x2b\x2f\x76\x2b", + b"\x2b\x2f\x76\x2f", + b"\x2b\x2f\x76\x38\x2d", + ], + "gb18030": b"\x84\x31\x95\x33", + "utf_32": [BOM_UTF32_BE, BOM_UTF32_LE], + "utf_16": [BOM_UTF16_BE, BOM_UTF16_LE], +} + +TOO_SMALL_SEQUENCE: int = 32 +TOO_BIG_SEQUENCE: int = int(10e6) + +UTF8_MAXIMAL_ALLOCATION: int = 1_112_064 + +# Up-to-date Unicode ucd/15.0.0 +UNICODE_RANGES_COMBINED: dict[str, range] = { + "Control character": range(32), + "Basic Latin": range(32, 128), + "Latin-1 Supplement": range(128, 256), + "Latin Extended-A": range(256, 384), + "Latin Extended-B": range(384, 592), + "IPA Extensions": range(592, 688), + "Spacing Modifier Letters": range(688, 768), + "Combining Diacritical Marks": range(768, 880), + "Greek and Coptic": range(880, 1024), + "Cyrillic": range(1024, 1280), + "Cyrillic Supplement": range(1280, 1328), + "Armenian": range(1328, 1424), + "Hebrew": range(1424, 1536), + "Arabic": range(1536, 1792), + "Syriac": range(1792, 1872), + "Arabic Supplement": range(1872, 1920), + "Thaana": range(1920, 1984), + "NKo": range(1984, 2048), + "Samaritan": range(2048, 2112), + "Mandaic": range(2112, 2144), + "Syriac Supplement": range(2144, 2160), + "Arabic Extended-B": range(2160, 2208), + "Arabic Extended-A": range(2208, 2304), + "Devanagari": range(2304, 2432), + "Bengali": range(2432, 2560), + "Gurmukhi": range(2560, 2688), + "Gujarati": range(2688, 2816), + "Oriya": range(2816, 2944), + "Tamil": range(2944, 3072), + "Telugu": range(3072, 3200), + "Kannada": range(3200, 3328), + "Malayalam": range(3328, 3456), + "Sinhala": range(3456, 3584), + "Thai": range(3584, 3712), + "Lao": range(3712, 3840), + "Tibetan": range(3840, 4096), + "Myanmar": range(4096, 4256), + "Georgian": range(4256, 4352), + "Hangul Jamo": range(4352, 4608), + "Ethiopic": range(4608, 4992), + "Ethiopic Supplement": range(4992, 5024), + "Cherokee": range(5024, 5120), + "Unified Canadian Aboriginal Syllabics": range(5120, 5760), + "Ogham": range(5760, 5792), + "Runic": range(5792, 5888), + "Tagalog": range(5888, 5920), + "Hanunoo": range(5920, 5952), + "Buhid": range(5952, 5984), + "Tagbanwa": range(5984, 6016), + "Khmer": range(6016, 6144), + "Mongolian": range(6144, 6320), + "Unified Canadian Aboriginal Syllabics Extended": range(6320, 6400), + "Limbu": range(6400, 6480), + "Tai Le": range(6480, 6528), + "New Tai Lue": range(6528, 6624), + "Khmer Symbols": range(6624, 6656), + "Buginese": range(6656, 6688), + "Tai Tham": range(6688, 6832), + "Combining Diacritical Marks Extended": range(6832, 6912), + "Balinese": range(6912, 7040), + "Sundanese": range(7040, 7104), + "Batak": range(7104, 7168), + "Lepcha": range(7168, 7248), + "Ol Chiki": range(7248, 7296), + "Cyrillic Extended-C": range(7296, 7312), + "Georgian Extended": range(7312, 7360), + "Sundanese Supplement": range(7360, 7376), + "Vedic Extensions": range(7376, 7424), + "Phonetic Extensions": range(7424, 7552), + "Phonetic Extensions Supplement": range(7552, 7616), + "Combining Diacritical Marks Supplement": range(7616, 7680), + "Latin Extended Additional": range(7680, 7936), + "Greek Extended": range(7936, 8192), + "General Punctuation": range(8192, 8304), + "Superscripts and Subscripts": range(8304, 8352), + "Currency Symbols": range(8352, 8400), + "Combining Diacritical Marks for Symbols": range(8400, 8448), + "Letterlike Symbols": range(8448, 8528), + "Number Forms": range(8528, 8592), + "Arrows": range(8592, 8704), + "Mathematical Operators": range(8704, 8960), + "Miscellaneous Technical": range(8960, 9216), + "Control Pictures": range(9216, 9280), + "Optical Character Recognition": range(9280, 9312), + "Enclosed Alphanumerics": range(9312, 9472), + "Box Drawing": range(9472, 9600), + "Block Elements": range(9600, 9632), + "Geometric Shapes": range(9632, 9728), + "Miscellaneous Symbols": range(9728, 9984), + "Dingbats": range(9984, 10176), + "Miscellaneous Mathematical Symbols-A": range(10176, 10224), + "Supplemental Arrows-A": range(10224, 10240), + "Braille Patterns": range(10240, 10496), + "Supplemental Arrows-B": range(10496, 10624), + "Miscellaneous Mathematical Symbols-B": range(10624, 10752), + "Supplemental Mathematical Operators": range(10752, 11008), + "Miscellaneous Symbols and Arrows": range(11008, 11264), + "Glagolitic": range(11264, 11360), + "Latin Extended-C": range(11360, 11392), + "Coptic": range(11392, 11520), + "Georgian Supplement": range(11520, 11568), + "Tifinagh": range(11568, 11648), + "Ethiopic Extended": range(11648, 11744), + "Cyrillic Extended-A": range(11744, 11776), + "Supplemental Punctuation": range(11776, 11904), + "CJK Radicals Supplement": range(11904, 12032), + "Kangxi Radicals": range(12032, 12256), + "Ideographic Description Characters": range(12272, 12288), + "CJK Symbols and Punctuation": range(12288, 12352), + "Hiragana": range(12352, 12448), + "Katakana": range(12448, 12544), + "Bopomofo": range(12544, 12592), + "Hangul Compatibility Jamo": range(12592, 12688), + "Kanbun": range(12688, 12704), + "Bopomofo Extended": range(12704, 12736), + "CJK Strokes": range(12736, 12784), + "Katakana Phonetic Extensions": range(12784, 12800), + "Enclosed CJK Letters and Months": range(12800, 13056), + "CJK Compatibility": range(13056, 13312), + "CJK Unified Ideographs Extension A": range(13312, 19904), + "Yijing Hexagram Symbols": range(19904, 19968), + "CJK Unified Ideographs": range(19968, 40960), + "Yi Syllables": range(40960, 42128), + "Yi Radicals": range(42128, 42192), + "Lisu": range(42192, 42240), + "Vai": range(42240, 42560), + "Cyrillic Extended-B": range(42560, 42656), + "Bamum": range(42656, 42752), + "Modifier Tone Letters": range(42752, 42784), + "Latin Extended-D": range(42784, 43008), + "Syloti Nagri": range(43008, 43056), + "Common Indic Number Forms": range(43056, 43072), + "Phags-pa": range(43072, 43136), + "Saurashtra": range(43136, 43232), + "Devanagari Extended": range(43232, 43264), + "Kayah Li": range(43264, 43312), + "Rejang": range(43312, 43360), + "Hangul Jamo Extended-A": range(43360, 43392), + "Javanese": range(43392, 43488), + "Myanmar Extended-B": range(43488, 43520), + "Cham": range(43520, 43616), + "Myanmar Extended-A": range(43616, 43648), + "Tai Viet": range(43648, 43744), + "Meetei Mayek Extensions": range(43744, 43776), + "Ethiopic Extended-A": range(43776, 43824), + "Latin Extended-E": range(43824, 43888), + "Cherokee Supplement": range(43888, 43968), + "Meetei Mayek": range(43968, 44032), + "Hangul Syllables": range(44032, 55216), + "Hangul Jamo Extended-B": range(55216, 55296), + "High Surrogates": range(55296, 56192), + "High Private Use Surrogates": range(56192, 56320), + "Low Surrogates": range(56320, 57344), + "Private Use Area": range(57344, 63744), + "CJK Compatibility Ideographs": range(63744, 64256), + "Alphabetic Presentation Forms": range(64256, 64336), + "Arabic Presentation Forms-A": range(64336, 65024), + "Variation Selectors": range(65024, 65040), + "Vertical Forms": range(65040, 65056), + "Combining Half Marks": range(65056, 65072), + "CJK Compatibility Forms": range(65072, 65104), + "Small Form Variants": range(65104, 65136), + "Arabic Presentation Forms-B": range(65136, 65280), + "Halfwidth and Fullwidth Forms": range(65280, 65520), + "Specials": range(65520, 65536), + "Linear B Syllabary": range(65536, 65664), + "Linear B Ideograms": range(65664, 65792), + "Aegean Numbers": range(65792, 65856), + "Ancient Greek Numbers": range(65856, 65936), + "Ancient Symbols": range(65936, 66000), + "Phaistos Disc": range(66000, 66048), + "Lycian": range(66176, 66208), + "Carian": range(66208, 66272), + "Coptic Epact Numbers": range(66272, 66304), + "Old Italic": range(66304, 66352), + "Gothic": range(66352, 66384), + "Old Permic": range(66384, 66432), + "Ugaritic": range(66432, 66464), + "Old Persian": range(66464, 66528), + "Deseret": range(66560, 66640), + "Shavian": range(66640, 66688), + "Osmanya": range(66688, 66736), + "Osage": range(66736, 66816), + "Elbasan": range(66816, 66864), + "Caucasian Albanian": range(66864, 66928), + "Vithkuqi": range(66928, 67008), + "Linear A": range(67072, 67456), + "Latin Extended-F": range(67456, 67520), + "Cypriot Syllabary": range(67584, 67648), + "Imperial Aramaic": range(67648, 67680), + "Palmyrene": range(67680, 67712), + "Nabataean": range(67712, 67760), + "Hatran": range(67808, 67840), + "Phoenician": range(67840, 67872), + "Lydian": range(67872, 67904), + "Meroitic Hieroglyphs": range(67968, 68000), + "Meroitic Cursive": range(68000, 68096), + "Kharoshthi": range(68096, 68192), + "Old South Arabian": range(68192, 68224), + "Old North Arabian": range(68224, 68256), + "Manichaean": range(68288, 68352), + "Avestan": range(68352, 68416), + "Inscriptional Parthian": range(68416, 68448), + "Inscriptional Pahlavi": range(68448, 68480), + "Psalter Pahlavi": range(68480, 68528), + "Old Turkic": range(68608, 68688), + "Old Hungarian": range(68736, 68864), + "Hanifi Rohingya": range(68864, 68928), + "Rumi Numeral Symbols": range(69216, 69248), + "Yezidi": range(69248, 69312), + "Arabic Extended-C": range(69312, 69376), + "Old Sogdian": range(69376, 69424), + "Sogdian": range(69424, 69488), + "Old Uyghur": range(69488, 69552), + "Chorasmian": range(69552, 69600), + "Elymaic": range(69600, 69632), + "Brahmi": range(69632, 69760), + "Kaithi": range(69760, 69840), + "Sora Sompeng": range(69840, 69888), + "Chakma": range(69888, 69968), + "Mahajani": range(69968, 70016), + "Sharada": range(70016, 70112), + "Sinhala Archaic Numbers": range(70112, 70144), + "Khojki": range(70144, 70224), + "Multani": range(70272, 70320), + "Khudawadi": range(70320, 70400), + "Grantha": range(70400, 70528), + "Newa": range(70656, 70784), + "Tirhuta": range(70784, 70880), + "Siddham": range(71040, 71168), + "Modi": range(71168, 71264), + "Mongolian Supplement": range(71264, 71296), + "Takri": range(71296, 71376), + "Ahom": range(71424, 71504), + "Dogra": range(71680, 71760), + "Warang Citi": range(71840, 71936), + "Dives Akuru": range(71936, 72032), + "Nandinagari": range(72096, 72192), + "Zanabazar Square": range(72192, 72272), + "Soyombo": range(72272, 72368), + "Unified Canadian Aboriginal Syllabics Extended-A": range(72368, 72384), + "Pau Cin Hau": range(72384, 72448), + "Devanagari Extended-A": range(72448, 72544), + "Bhaiksuki": range(72704, 72816), + "Marchen": range(72816, 72896), + "Masaram Gondi": range(72960, 73056), + "Gunjala Gondi": range(73056, 73136), + "Makasar": range(73440, 73472), + "Kawi": range(73472, 73568), + "Lisu Supplement": range(73648, 73664), + "Tamil Supplement": range(73664, 73728), + "Cuneiform": range(73728, 74752), + "Cuneiform Numbers and Punctuation": range(74752, 74880), + "Early Dynastic Cuneiform": range(74880, 75088), + "Cypro-Minoan": range(77712, 77824), + "Egyptian Hieroglyphs": range(77824, 78896), + "Egyptian Hieroglyph Format Controls": range(78896, 78944), + "Anatolian Hieroglyphs": range(82944, 83584), + "Bamum Supplement": range(92160, 92736), + "Mro": range(92736, 92784), + "Tangsa": range(92784, 92880), + "Bassa Vah": range(92880, 92928), + "Pahawh Hmong": range(92928, 93072), + "Medefaidrin": range(93760, 93856), + "Miao": range(93952, 94112), + "Ideographic Symbols and Punctuation": range(94176, 94208), + "Tangut": range(94208, 100352), + "Tangut Components": range(100352, 101120), + "Khitan Small Script": range(101120, 101632), + "Tangut Supplement": range(101632, 101760), + "Kana Extended-B": range(110576, 110592), + "Kana Supplement": range(110592, 110848), + "Kana Extended-A": range(110848, 110896), + "Small Kana Extension": range(110896, 110960), + "Nushu": range(110960, 111360), + "Duployan": range(113664, 113824), + "Shorthand Format Controls": range(113824, 113840), + "Znamenny Musical Notation": range(118528, 118736), + "Byzantine Musical Symbols": range(118784, 119040), + "Musical Symbols": range(119040, 119296), + "Ancient Greek Musical Notation": range(119296, 119376), + "Kaktovik Numerals": range(119488, 119520), + "Mayan Numerals": range(119520, 119552), + "Tai Xuan Jing Symbols": range(119552, 119648), + "Counting Rod Numerals": range(119648, 119680), + "Mathematical Alphanumeric Symbols": range(119808, 120832), + "Sutton SignWriting": range(120832, 121520), + "Latin Extended-G": range(122624, 122880), + "Glagolitic Supplement": range(122880, 122928), + "Cyrillic Extended-D": range(122928, 123024), + "Nyiakeng Puachue Hmong": range(123136, 123216), + "Toto": range(123536, 123584), + "Wancho": range(123584, 123648), + "Nag Mundari": range(124112, 124160), + "Ethiopic Extended-B": range(124896, 124928), + "Mende Kikakui": range(124928, 125152), + "Adlam": range(125184, 125280), + "Indic Siyaq Numbers": range(126064, 126144), + "Ottoman Siyaq Numbers": range(126208, 126288), + "Arabic Mathematical Alphabetic Symbols": range(126464, 126720), + "Mahjong Tiles": range(126976, 127024), + "Domino Tiles": range(127024, 127136), + "Playing Cards": range(127136, 127232), + "Enclosed Alphanumeric Supplement": range(127232, 127488), + "Enclosed Ideographic Supplement": range(127488, 127744), + "Miscellaneous Symbols and Pictographs": range(127744, 128512), + "Emoticons range(Emoji)": range(128512, 128592), + "Ornamental Dingbats": range(128592, 128640), + "Transport and Map Symbols": range(128640, 128768), + "Alchemical Symbols": range(128768, 128896), + "Geometric Shapes Extended": range(128896, 129024), + "Supplemental Arrows-C": range(129024, 129280), + "Supplemental Symbols and Pictographs": range(129280, 129536), + "Chess Symbols": range(129536, 129648), + "Symbols and Pictographs Extended-A": range(129648, 129792), + "Symbols for Legacy Computing": range(129792, 130048), + "CJK Unified Ideographs Extension B": range(131072, 173792), + "CJK Unified Ideographs Extension C": range(173824, 177984), + "CJK Unified Ideographs Extension D": range(177984, 178208), + "CJK Unified Ideographs Extension E": range(178208, 183984), + "CJK Unified Ideographs Extension F": range(183984, 191472), + "CJK Compatibility Ideographs Supplement": range(194560, 195104), + "CJK Unified Ideographs Extension G": range(196608, 201552), + "CJK Unified Ideographs Extension H": range(201552, 205744), + "Tags": range(917504, 917632), + "Variation Selectors Supplement": range(917760, 918000), + "Supplementary Private Use Area-A": range(983040, 1048576), + "Supplementary Private Use Area-B": range(1048576, 1114112), +} + + +UNICODE_SECONDARY_RANGE_KEYWORD: list[str] = [ + "Supplement", + "Extended", + "Extensions", + "Modifier", + "Marks", + "Punctuation", + "Symbols", + "Forms", + "Operators", + "Miscellaneous", + "Drawing", + "Block", + "Shapes", + "Supplemental", + "Tags", +] + +RE_POSSIBLE_ENCODING_INDICATION = re_compile( + r"(?:(?:encoding)|(?:charset)|(?:coding))(?:[\:= ]{1,10})(?:[\"\']?)([a-zA-Z0-9\-_]+)(?:[\"\']?)", + IGNORECASE, +) + +IANA_NO_ALIASES = [ + "cp720", + "cp737", + "cp856", + "cp874", + "cp875", + "cp1006", + "koi8_r", + "koi8_t", + "koi8_u", +] + +IANA_SUPPORTED: list[str] = sorted( + filter( + lambda x: x.endswith("_codec") is False + and x not in {"rot_13", "tactis", "mbcs"}, + list(set(aliases.values())) + IANA_NO_ALIASES, + ) +) + +IANA_SUPPORTED_COUNT: int = len(IANA_SUPPORTED) + +# pre-computed code page that are similar using the function cp_similarity. +IANA_SUPPORTED_SIMILAR: dict[str, list[str]] = { + "cp037": ["cp1026", "cp1140", "cp273", "cp500"], + "cp1026": ["cp037", "cp1140", "cp273", "cp500"], + "cp1125": ["cp866"], + "cp1140": ["cp037", "cp1026", "cp273", "cp500"], + "cp1250": ["iso8859_2"], + "cp1251": ["kz1048", "ptcp154"], + "cp1252": ["iso8859_15", "iso8859_9", "latin_1"], + "cp1253": ["iso8859_7"], + "cp1254": ["iso8859_15", "iso8859_9", "latin_1"], + "cp1257": ["iso8859_13"], + "cp273": ["cp037", "cp1026", "cp1140", "cp500"], + "cp437": ["cp850", "cp858", "cp860", "cp861", "cp862", "cp863", "cp865"], + "cp500": ["cp037", "cp1026", "cp1140", "cp273"], + "cp850": ["cp437", "cp857", "cp858", "cp865"], + "cp857": ["cp850", "cp858", "cp865"], + "cp858": ["cp437", "cp850", "cp857", "cp865"], + "cp860": ["cp437", "cp861", "cp862", "cp863", "cp865"], + "cp861": ["cp437", "cp860", "cp862", "cp863", "cp865"], + "cp862": ["cp437", "cp860", "cp861", "cp863", "cp865"], + "cp863": ["cp437", "cp860", "cp861", "cp862", "cp865"], + "cp865": ["cp437", "cp850", "cp857", "cp858", "cp860", "cp861", "cp862", "cp863"], + "cp866": ["cp1125"], + "iso8859_10": ["iso8859_14", "iso8859_15", "iso8859_4", "iso8859_9", "latin_1"], + "iso8859_11": ["tis_620"], + "iso8859_13": ["cp1257"], + "iso8859_14": [ + "iso8859_10", + "iso8859_15", + "iso8859_16", + "iso8859_3", + "iso8859_9", + "latin_1", + ], + "iso8859_15": [ + "cp1252", + "cp1254", + "iso8859_10", + "iso8859_14", + "iso8859_16", + "iso8859_3", + "iso8859_9", + "latin_1", + ], + "iso8859_16": [ + "iso8859_14", + "iso8859_15", + "iso8859_2", + "iso8859_3", + "iso8859_9", + "latin_1", + ], + "iso8859_2": ["cp1250", "iso8859_16", "iso8859_4"], + "iso8859_3": ["iso8859_14", "iso8859_15", "iso8859_16", "iso8859_9", "latin_1"], + "iso8859_4": ["iso8859_10", "iso8859_2", "iso8859_9", "latin_1"], + "iso8859_7": ["cp1253"], + "iso8859_9": [ + "cp1252", + "cp1254", + "cp1258", + "iso8859_10", + "iso8859_14", + "iso8859_15", + "iso8859_16", + "iso8859_3", + "iso8859_4", + "latin_1", + ], + "kz1048": ["cp1251", "ptcp154"], + "latin_1": [ + "cp1252", + "cp1254", + "cp1258", + "iso8859_10", + "iso8859_14", + "iso8859_15", + "iso8859_16", + "iso8859_3", + "iso8859_4", + "iso8859_9", + ], + "mac_iceland": ["mac_roman", "mac_turkish"], + "mac_roman": ["mac_iceland", "mac_turkish"], + "mac_turkish": ["mac_iceland", "mac_roman"], + "ptcp154": ["cp1251", "kz1048"], + "tis_620": ["iso8859_11"], +} + + +CHARDET_CORRESPONDENCE: dict[str, str] = { + "iso2022_kr": "ISO-2022-KR", + "iso2022_jp": "ISO-2022-JP", + "euc_kr": "EUC-KR", + "tis_620": "TIS-620", + "utf_32": "UTF-32", + "euc_jp": "EUC-JP", + "koi8_r": "KOI8-R", + "iso8859_1": "ISO-8859-1", + "iso8859_2": "ISO-8859-2", + "iso8859_5": "ISO-8859-5", + "iso8859_6": "ISO-8859-6", + "iso8859_7": "ISO-8859-7", + "iso8859_8": "ISO-8859-8", + "utf_16": "UTF-16", + "cp855": "IBM855", + "mac_cyrillic": "MacCyrillic", + "gb2312": "GB2312", + "gb18030": "GB18030", + "cp932": "CP932", + "cp866": "IBM866", + "utf_8": "utf-8", + "utf_8_sig": "UTF-8-SIG", + "shift_jis": "SHIFT_JIS", + "big5": "Big5", + "cp1250": "windows-1250", + "cp1251": "windows-1251", + "cp1252": "Windows-1252", + "cp1253": "windows-1253", + "cp1255": "windows-1255", + "cp1256": "windows-1256", + "cp1254": "Windows-1254", + "cp949": "CP949", +} + + +COMMON_SAFE_ASCII_CHARACTERS: set[str] = { + "<", + ">", + "=", + ":", + "/", + "&", + ";", + "{", + "}", + "[", + "]", + ",", + "|", + '"', + "-", + "(", + ")", +} + +# Sample character sets — replace with full lists if needed +COMMON_CHINESE_CHARACTERS = "的一是在不了有和人这中大为上个国我以要他时来用们生到作地于出就分对成会可主发年动同工也能下过子说产种面而方后多定行学法所民得经十三之进着等部度家电力里如水化高自二理起小物现实加量都两体制机当使点从业本去把性好应开它合还因由其些然前外天政四日那社义事平形相全表间样与关各重新线内数正心反你明看原又么利比或但质气第向道命此变条只没结解问意建月公无系军很情者最立代想已通并提直题党程展五果料象员革位入常文总次品式活设及管特件长求老头基资边流路级少图山统接知较将组见计别她手角期根论运农指几九区强放决西被干做必战先回则任取据处队南给色光门即保治北造百规热领七海口东导器压志世金增争济阶油思术极交受联什认六共权收证改清己美再采转更单风切打白教速花带安场身车例真务具万每目至达走积示议声报斗完类八离华名确才科张信马节话米整空元况今集温传土许步群广石记需段研界拉林律叫且究观越织装影算低持音众书布复容儿须际商非验连断深难近矿千周委素技备半办青省列习响约支般史感劳便团往酸历市克何除消构府太准精值号率族维划选标写存候毛亲快效斯院查江型眼王按格养易置派层片始却专状育厂京识适属圆包火住调满县局照参红细引听该铁价严龙飞" + +COMMON_JAPANESE_CHARACTERS = "日一国年大十二本中長出三時行見月分後前生五間上東四今金九入学高円子外八六下来気小七山話女北午百書先名川千水半男西電校語土木聞食車何南万毎白天母火右読友左休父雨" + +COMMON_KOREAN_CHARACTERS = "一二三四五六七八九十百千萬上下左右中人女子大小山川日月火水木金土父母天地國名年時文校學生" + +# Combine all into a set +COMMON_CJK_CHARACTERS = set( + "".join( + [ + COMMON_CHINESE_CHARACTERS, + COMMON_JAPANESE_CHARACTERS, + COMMON_KOREAN_CHARACTERS, + ] + ) +) + +KO_NAMES: set[str] = {"johab", "cp949", "euc_kr"} +ZH_NAMES: set[str] = {"big5", "cp950", "big5hkscs", "hz"} + +# Logging LEVEL below DEBUG +TRACE: int = 5 + + +# Language label that contain the em dash "—" +# character are to be considered alternative seq to origin +FREQUENCIES: dict[str, list[str]] = { + "English": [ + "e", + "a", + "t", + "i", + "o", + "n", + "s", + "r", + "h", + "l", + "d", + "c", + "u", + "m", + "f", + "p", + "g", + "w", + "y", + "b", + "v", + "k", + "x", + "j", + "z", + "q", + ], + "English—": [ + "e", + "a", + "t", + "i", + "o", + "n", + "s", + "r", + "h", + "l", + "d", + "c", + "m", + "u", + "f", + "p", + "g", + "w", + "b", + "y", + "v", + "k", + "j", + "x", + "z", + "q", + ], + "German": [ + "e", + "n", + "i", + "r", + "s", + "t", + "a", + "d", + "h", + "u", + "l", + "g", + "o", + "c", + "m", + "b", + "f", + "k", + "w", + "z", + "p", + "v", + "ü", + "ä", + "ö", + "j", + ], + "French": [ + "e", + "a", + "s", + "n", + "i", + "t", + "r", + "l", + "u", + "o", + "d", + "c", + "p", + "m", + "é", + "v", + "g", + "f", + "b", + "h", + "q", + "à", + "x", + "è", + "y", + "j", + ], + "Dutch": [ + "e", + "n", + "a", + "i", + "r", + "t", + "o", + "d", + "s", + "l", + "g", + "h", + "v", + "m", + "u", + "k", + "c", + "p", + "b", + "w", + "j", + "z", + "f", + "y", + "x", + "ë", + ], + "Italian": [ + "e", + "i", + "a", + "o", + "n", + "l", + "t", + "r", + "s", + "c", + "d", + "u", + "p", + "m", + "g", + "v", + "f", + "b", + "z", + "h", + "q", + "è", + "à", + "k", + "y", + "ò", + ], + "Polish": [ + "a", + "i", + "o", + "e", + "n", + "r", + "z", + "w", + "s", + "c", + "t", + "k", + "y", + "d", + "p", + "m", + "u", + "l", + "j", + "ł", + "g", + "b", + "h", + "ą", + "ę", + "ó", + ], + "Spanish": [ + "e", + "a", + "o", + "n", + "s", + "r", + "i", + "l", + "d", + "t", + "c", + "u", + "m", + "p", + "b", + "g", + "v", + "f", + "y", + "ó", + "h", + "q", + "í", + "j", + "z", + "á", + ], + "Russian": [ + "о", + "а", + "е", + "и", + "н", + "с", + "т", + "р", + "в", + "л", + "к", + "м", + "д", + "п", + "у", + "г", + "я", + "ы", + "з", + "б", + "й", + "ь", + "ч", + "х", + "ж", + "ц", + ], + # Jap-Kanji + "Japanese": [ + "人", + "一", + "大", + "亅", + "丁", + "丨", + "竹", + "笑", + "口", + "日", + "今", + "二", + "彳", + "行", + "十", + "土", + "丶", + "寸", + "寺", + "時", + "乙", + "丿", + "乂", + "气", + "気", + "冂", + "巾", + "亠", + "市", + "目", + "儿", + "見", + "八", + "小", + "凵", + "県", + "月", + "彐", + "門", + "間", + "木", + "東", + "山", + "出", + "本", + "中", + "刀", + "分", + "耳", + "又", + "取", + "最", + "言", + "田", + "心", + "思", + "刂", + "前", + "京", + "尹", + "事", + "生", + "厶", + "云", + "会", + "未", + "来", + "白", + "冫", + "楽", + "灬", + "馬", + "尸", + "尺", + "駅", + "明", + "耂", + "者", + "了", + "阝", + "都", + "高", + "卜", + "占", + "厂", + "广", + "店", + "子", + "申", + "奄", + "亻", + "俺", + "上", + "方", + "冖", + "学", + "衣", + "艮", + "食", + "自", + ], + # Jap-Katakana + "Japanese—": [ + "ー", + "ン", + "ス", + "・", + "ル", + "ト", + "リ", + "イ", + "ア", + "ラ", + "ッ", + "ク", + "ド", + "シ", + "レ", + "ジ", + "タ", + "フ", + "ロ", + "カ", + "テ", + "マ", + "ィ", + "グ", + "バ", + "ム", + "プ", + "オ", + "コ", + "デ", + "ニ", + "ウ", + "メ", + "サ", + "ビ", + "ナ", + "ブ", + "ャ", + "エ", + "ュ", + "チ", + "キ", + "ズ", + "ダ", + "パ", + "ミ", + "ェ", + "ョ", + "ハ", + "セ", + "ベ", + "ガ", + "モ", + "ツ", + "ネ", + "ボ", + "ソ", + "ノ", + "ァ", + "ヴ", + "ワ", + "ポ", + "ペ", + "ピ", + "ケ", + "ゴ", + "ギ", + "ザ", + "ホ", + "ゲ", + "ォ", + "ヤ", + "ヒ", + "ユ", + "ヨ", + "ヘ", + "ゼ", + "ヌ", + "ゥ", + "ゾ", + "ヶ", + "ヂ", + "ヲ", + "ヅ", + "ヵ", + "ヱ", + "ヰ", + "ヮ", + "ヽ", + "゠", + "ヾ", + "ヷ", + "ヿ", + "ヸ", + "ヹ", + "ヺ", + ], + # Jap-Hiragana + "Japanese——": [ + "の", + "に", + "る", + "た", + "と", + "は", + "し", + "い", + "を", + "で", + "て", + "が", + "な", + "れ", + "か", + "ら", + "さ", + "っ", + "り", + "す", + "あ", + "も", + "こ", + "ま", + "う", + "く", + "よ", + "き", + "ん", + "め", + "お", + "け", + "そ", + "つ", + "だ", + "や", + "え", + "ど", + "わ", + "ち", + "み", + "せ", + "じ", + "ば", + "へ", + "び", + "ず", + "ろ", + "ほ", + "げ", + "む", + "べ", + "ひ", + "ょ", + "ゆ", + "ぶ", + "ご", + "ゃ", + "ね", + "ふ", + "ぐ", + "ぎ", + "ぼ", + "ゅ", + "づ", + "ざ", + "ぞ", + "ぬ", + "ぜ", + "ぱ", + "ぽ", + "ぷ", + "ぴ", + "ぃ", + "ぁ", + "ぇ", + "ぺ", + "ゞ", + "ぢ", + "ぉ", + "ぅ", + "ゐ", + "ゝ", + "ゑ", + "゛", + "゜", + "ゎ", + "ゔ", + "゚", + "ゟ", + "゙", + "ゕ", + "ゖ", + ], + "Portuguese": [ + "a", + "e", + "o", + "s", + "i", + "r", + "d", + "n", + "t", + "m", + "u", + "c", + "l", + "p", + "g", + "v", + "b", + "f", + "h", + "ã", + "q", + "é", + "ç", + "á", + "z", + "í", + ], + "Swedish": [ + "e", + "a", + "n", + "r", + "t", + "s", + "i", + "l", + "d", + "o", + "m", + "k", + "g", + "v", + "h", + "f", + "u", + "p", + "ä", + "c", + "b", + "ö", + "å", + "y", + "j", + "x", + ], + "Chinese": [ + "的", + "一", + "是", + "不", + "了", + "在", + "人", + "有", + "我", + "他", + "这", + "个", + "们", + "中", + "来", + "上", + "大", + "为", + "和", + "国", + "地", + "到", + "以", + "说", + "时", + "要", + "就", + "出", + "会", + "可", + "也", + "你", + "对", + "生", + "能", + "而", + "子", + "那", + "得", + "于", + "着", + "下", + "自", + "之", + "年", + "过", + "发", + "后", + "作", + "里", + "用", + "道", + "行", + "所", + "然", + "家", + "种", + "事", + "成", + "方", + "多", + "经", + "么", + "去", + "法", + "学", + "如", + "都", + "同", + "现", + "当", + "没", + "动", + "面", + "起", + "看", + "定", + "天", + "分", + "还", + "进", + "好", + "小", + "部", + "其", + "些", + "主", + "样", + "理", + "心", + "她", + "本", + "前", + "开", + "但", + "因", + "只", + "从", + "想", + "实", + ], + "Ukrainian": [ + "о", + "а", + "н", + "і", + "и", + "р", + "в", + "т", + "е", + "с", + "к", + "л", + "у", + "д", + "м", + "п", + "з", + "я", + "ь", + "б", + "г", + "й", + "ч", + "х", + "ц", + "ї", + ], + "Norwegian": [ + "e", + "r", + "n", + "t", + "a", + "s", + "i", + "o", + "l", + "d", + "g", + "k", + "m", + "v", + "f", + "p", + "u", + "b", + "h", + "å", + "y", + "j", + "ø", + "c", + "æ", + "w", + ], + "Finnish": [ + "a", + "i", + "n", + "t", + "e", + "s", + "l", + "o", + "u", + "k", + "ä", + "m", + "r", + "v", + "j", + "h", + "p", + "y", + "d", + "ö", + "g", + "c", + "b", + "f", + "w", + "z", + ], + "Vietnamese": [ + "n", + "h", + "t", + "i", + "c", + "g", + "a", + "o", + "u", + "m", + "l", + "r", + "à", + "đ", + "s", + "e", + "v", + "p", + "b", + "y", + "ư", + "d", + "á", + "k", + "ộ", + "ế", + ], + "Czech": [ + "o", + "e", + "a", + "n", + "t", + "s", + "i", + "l", + "v", + "r", + "k", + "d", + "u", + "m", + "p", + "í", + "c", + "h", + "z", + "á", + "y", + "j", + "b", + "ě", + "é", + "ř", + ], + "Hungarian": [ + "e", + "a", + "t", + "l", + "s", + "n", + "k", + "r", + "i", + "o", + "z", + "á", + "é", + "g", + "m", + "b", + "y", + "v", + "d", + "h", + "u", + "p", + "j", + "ö", + "f", + "c", + ], + "Korean": [ + "이", + "다", + "에", + "의", + "는", + "로", + "하", + "을", + "가", + "고", + "지", + "서", + "한", + "은", + "기", + "으", + "년", + "대", + "사", + "시", + "를", + "리", + "도", + "인", + "스", + "일", + ], + "Indonesian": [ + "a", + "n", + "e", + "i", + "r", + "t", + "u", + "s", + "d", + "k", + "m", + "l", + "g", + "p", + "b", + "o", + "h", + "y", + "j", + "c", + "w", + "f", + "v", + "z", + "x", + "q", + ], + "Turkish": [ + "a", + "e", + "i", + "n", + "r", + "l", + "ı", + "k", + "d", + "t", + "s", + "m", + "y", + "u", + "o", + "b", + "ü", + "ş", + "v", + "g", + "z", + "h", + "c", + "p", + "ç", + "ğ", + ], + "Romanian": [ + "e", + "i", + "a", + "r", + "n", + "t", + "u", + "l", + "o", + "c", + "s", + "d", + "p", + "m", + "ă", + "f", + "v", + "î", + "g", + "b", + "ș", + "ț", + "z", + "h", + "â", + "j", + ], + "Farsi": [ + "ا", + "ی", + "ر", + "د", + "ن", + "ه", + "و", + "م", + "ت", + "ب", + "س", + "ل", + "ک", + "ش", + "ز", + "ف", + "گ", + "ع", + "خ", + "ق", + "ج", + "آ", + "پ", + "ح", + "ط", + "ص", + ], + "Arabic": [ + "ا", + "ل", + "ي", + "م", + "و", + "ن", + "ر", + "ت", + "ب", + "ة", + "ع", + "د", + "س", + "ف", + "ه", + "ك", + "ق", + "أ", + "ح", + "ج", + "ش", + "ط", + "ص", + "ى", + "خ", + "إ", + ], + "Danish": [ + "e", + "r", + "n", + "t", + "a", + "i", + "s", + "d", + "l", + "o", + "g", + "m", + "k", + "f", + "v", + "u", + "b", + "h", + "p", + "å", + "y", + "ø", + "æ", + "c", + "j", + "w", + ], + "Serbian": [ + "а", + "и", + "о", + "е", + "н", + "р", + "с", + "у", + "т", + "к", + "ј", + "в", + "д", + "м", + "п", + "л", + "г", + "з", + "б", + "a", + "i", + "e", + "o", + "n", + "ц", + "ш", + ], + "Lithuanian": [ + "i", + "a", + "s", + "o", + "r", + "e", + "t", + "n", + "u", + "k", + "m", + "l", + "p", + "v", + "d", + "j", + "g", + "ė", + "b", + "y", + "ų", + "š", + "ž", + "c", + "ą", + "į", + ], + "Slovene": [ + "e", + "a", + "i", + "o", + "n", + "r", + "s", + "l", + "t", + "j", + "v", + "k", + "d", + "p", + "m", + "u", + "z", + "b", + "g", + "h", + "č", + "c", + "š", + "ž", + "f", + "y", + ], + "Slovak": [ + "o", + "a", + "e", + "n", + "i", + "r", + "v", + "t", + "s", + "l", + "k", + "d", + "m", + "p", + "u", + "c", + "h", + "j", + "b", + "z", + "á", + "y", + "ý", + "í", + "č", + "é", + ], + "Hebrew": [ + "י", + "ו", + "ה", + "ל", + "ר", + "ב", + "ת", + "מ", + "א", + "ש", + "נ", + "ע", + "ם", + "ד", + "ק", + "ח", + "פ", + "ס", + "כ", + "ג", + "ט", + "צ", + "ן", + "ז", + "ך", + ], + "Bulgarian": [ + "а", + "и", + "о", + "е", + "н", + "т", + "р", + "с", + "в", + "л", + "к", + "д", + "п", + "м", + "з", + "г", + "я", + "ъ", + "у", + "б", + "ч", + "ц", + "й", + "ж", + "щ", + "х", + ], + "Croatian": [ + "a", + "i", + "o", + "e", + "n", + "r", + "j", + "s", + "t", + "u", + "k", + "l", + "v", + "d", + "m", + "p", + "g", + "z", + "b", + "c", + "č", + "h", + "š", + "ž", + "ć", + "f", + ], + "Hindi": [ + "क", + "र", + "स", + "न", + "त", + "म", + "ह", + "प", + "य", + "ल", + "व", + "ज", + "द", + "ग", + "ब", + "श", + "ट", + "अ", + "ए", + "थ", + "भ", + "ड", + "च", + "ध", + "ष", + "इ", + ], + "Estonian": [ + "a", + "i", + "e", + "s", + "t", + "l", + "u", + "n", + "o", + "k", + "r", + "d", + "m", + "v", + "g", + "p", + "j", + "h", + "ä", + "b", + "õ", + "ü", + "f", + "c", + "ö", + "y", + ], + "Thai": [ + "า", + "น", + "ร", + "อ", + "ก", + "เ", + "ง", + "ม", + "ย", + "ล", + "ว", + "ด", + "ท", + "ส", + "ต", + "ะ", + "ป", + "บ", + "ค", + "ห", + "แ", + "จ", + "พ", + "ช", + "ข", + "ใ", + ], + "Greek": [ + "α", + "τ", + "ο", + "ι", + "ε", + "ν", + "ρ", + "σ", + "κ", + "η", + "π", + "ς", + "υ", + "μ", + "λ", + "ί", + "ό", + "ά", + "γ", + "έ", + "δ", + "ή", + "ω", + "χ", + "θ", + "ύ", + ], + "Tamil": [ + "க", + "த", + "ப", + "ட", + "ர", + "ம", + "ல", + "ன", + "வ", + "ற", + "ய", + "ள", + "ச", + "ந", + "இ", + "ண", + "அ", + "ஆ", + "ழ", + "ங", + "எ", + "உ", + "ஒ", + "ஸ", + ], + "Kazakh": [ + "а", + "ы", + "е", + "н", + "т", + "р", + "л", + "і", + "д", + "с", + "м", + "қ", + "к", + "о", + "б", + "и", + "у", + "ғ", + "ж", + "ң", + "з", + "ш", + "й", + "п", + "г", + "ө", + ], +} + +LANGUAGE_SUPPORTED_COUNT: int = len(FREQUENCIES) diff --git a/venv/lib/python3.11/site-packages/charset_normalizer/legacy.py b/venv/lib/python3.11/site-packages/charset_normalizer/legacy.py new file mode 100644 index 0000000..360a310 --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer/legacy.py @@ -0,0 +1,80 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING, Any +from warnings import warn + +from .api import from_bytes +from .constant import CHARDET_CORRESPONDENCE, TOO_SMALL_SEQUENCE + +# TODO: remove this check when dropping Python 3.7 support +if TYPE_CHECKING: + from typing_extensions import TypedDict + + class ResultDict(TypedDict): + encoding: str | None + language: str + confidence: float | None + + +def detect( + byte_str: bytes, should_rename_legacy: bool = False, **kwargs: Any +) -> ResultDict: + """ + chardet legacy method + Detect the encoding of the given byte string. It should be mostly backward-compatible. + Encoding name will match Chardet own writing whenever possible. (Not on encoding name unsupported by it) + This function is deprecated and should be used to migrate your project easily, consult the documentation for + further information. Not planned for removal. + + :param byte_str: The byte sequence to examine. + :param should_rename_legacy: Should we rename legacy encodings + to their more modern equivalents? + """ + if len(kwargs): + warn( + f"charset-normalizer disregard arguments '{','.join(list(kwargs.keys()))}' in legacy function detect()" + ) + + if not isinstance(byte_str, (bytearray, bytes)): + raise TypeError( # pragma: nocover + f"Expected object of type bytes or bytearray, got: {type(byte_str)}" + ) + + if isinstance(byte_str, bytearray): + byte_str = bytes(byte_str) + + r = from_bytes(byte_str).best() + + encoding = r.encoding if r is not None else None + language = r.language if r is not None and r.language != "Unknown" else "" + confidence = 1.0 - r.chaos if r is not None else None + + # automatically lower confidence + # on small bytes samples. + # https://github.com/jawah/charset_normalizer/issues/391 + if ( + confidence is not None + and confidence >= 0.9 + and encoding + not in { + "utf_8", + "ascii", + } + and r.bom is False # type: ignore[union-attr] + and len(byte_str) < TOO_SMALL_SEQUENCE + ): + confidence -= 0.2 + + # Note: CharsetNormalizer does not return 'UTF-8-SIG' as the sig get stripped in the detection/normalization process + # but chardet does return 'utf-8-sig' and it is a valid codec name. + if r is not None and encoding == "utf_8" and r.bom: + encoding += "_sig" + + if should_rename_legacy is False and encoding in CHARDET_CORRESPONDENCE: + encoding = CHARDET_CORRESPONDENCE[encoding] + + return { + "encoding": encoding, + "language": language, + "confidence": confidence, + } diff --git a/venv/lib/python3.11/site-packages/charset_normalizer/md.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/charset_normalizer/md.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..f71a5af Binary files /dev/null and b/venv/lib/python3.11/site-packages/charset_normalizer/md.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/charset_normalizer/md.py b/venv/lib/python3.11/site-packages/charset_normalizer/md.py new file mode 100644 index 0000000..12ce024 --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer/md.py @@ -0,0 +1,635 @@ +from __future__ import annotations + +from functools import lru_cache +from logging import getLogger + +from .constant import ( + COMMON_SAFE_ASCII_CHARACTERS, + TRACE, + UNICODE_SECONDARY_RANGE_KEYWORD, +) +from .utils import ( + is_accentuated, + is_arabic, + is_arabic_isolated_form, + is_case_variable, + is_cjk, + is_emoticon, + is_hangul, + is_hiragana, + is_katakana, + is_latin, + is_punctuation, + is_separator, + is_symbol, + is_thai, + is_unprintable, + remove_accent, + unicode_range, + is_cjk_uncommon, +) + + +class MessDetectorPlugin: + """ + Base abstract class used for mess detection plugins. + All detectors MUST extend and implement given methods. + """ + + def eligible(self, character: str) -> bool: + """ + Determine if given character should be fed in. + """ + raise NotImplementedError # pragma: nocover + + def feed(self, character: str) -> None: + """ + The main routine to be executed upon character. + Insert the logic in witch the text would be considered chaotic. + """ + raise NotImplementedError # pragma: nocover + + def reset(self) -> None: # pragma: no cover + """ + Permit to reset the plugin to the initial state. + """ + raise NotImplementedError + + @property + def ratio(self) -> float: + """ + Compute the chaos ratio based on what your feed() has seen. + Must NOT be lower than 0.; No restriction gt 0. + """ + raise NotImplementedError # pragma: nocover + + +class TooManySymbolOrPunctuationPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._punctuation_count: int = 0 + self._symbol_count: int = 0 + self._character_count: int = 0 + + self._last_printable_char: str | None = None + self._frenzy_symbol_in_word: bool = False + + def eligible(self, character: str) -> bool: + return character.isprintable() + + def feed(self, character: str) -> None: + self._character_count += 1 + + if ( + character != self._last_printable_char + and character not in COMMON_SAFE_ASCII_CHARACTERS + ): + if is_punctuation(character): + self._punctuation_count += 1 + elif ( + character.isdigit() is False + and is_symbol(character) + and is_emoticon(character) is False + ): + self._symbol_count += 2 + + self._last_printable_char = character + + def reset(self) -> None: # Abstract + self._punctuation_count = 0 + self._character_count = 0 + self._symbol_count = 0 + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + ratio_of_punctuation: float = ( + self._punctuation_count + self._symbol_count + ) / self._character_count + + return ratio_of_punctuation if ratio_of_punctuation >= 0.3 else 0.0 + + +class TooManyAccentuatedPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._character_count: int = 0 + self._accentuated_count: int = 0 + + def eligible(self, character: str) -> bool: + return character.isalpha() + + def feed(self, character: str) -> None: + self._character_count += 1 + + if is_accentuated(character): + self._accentuated_count += 1 + + def reset(self) -> None: # Abstract + self._character_count = 0 + self._accentuated_count = 0 + + @property + def ratio(self) -> float: + if self._character_count < 8: + return 0.0 + + ratio_of_accentuation: float = self._accentuated_count / self._character_count + return ratio_of_accentuation if ratio_of_accentuation >= 0.35 else 0.0 + + +class UnprintablePlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._unprintable_count: int = 0 + self._character_count: int = 0 + + def eligible(self, character: str) -> bool: + return True + + def feed(self, character: str) -> None: + if is_unprintable(character): + self._unprintable_count += 1 + self._character_count += 1 + + def reset(self) -> None: # Abstract + self._unprintable_count = 0 + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + return (self._unprintable_count * 8) / self._character_count + + +class SuspiciousDuplicateAccentPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._successive_count: int = 0 + self._character_count: int = 0 + + self._last_latin_character: str | None = None + + def eligible(self, character: str) -> bool: + return character.isalpha() and is_latin(character) + + def feed(self, character: str) -> None: + self._character_count += 1 + if ( + self._last_latin_character is not None + and is_accentuated(character) + and is_accentuated(self._last_latin_character) + ): + if character.isupper() and self._last_latin_character.isupper(): + self._successive_count += 1 + # Worse if its the same char duplicated with different accent. + if remove_accent(character) == remove_accent(self._last_latin_character): + self._successive_count += 1 + self._last_latin_character = character + + def reset(self) -> None: # Abstract + self._successive_count = 0 + self._character_count = 0 + self._last_latin_character = None + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + return (self._successive_count * 2) / self._character_count + + +class SuspiciousRange(MessDetectorPlugin): + def __init__(self) -> None: + self._suspicious_successive_range_count: int = 0 + self._character_count: int = 0 + self._last_printable_seen: str | None = None + + def eligible(self, character: str) -> bool: + return character.isprintable() + + def feed(self, character: str) -> None: + self._character_count += 1 + + if ( + character.isspace() + or is_punctuation(character) + or character in COMMON_SAFE_ASCII_CHARACTERS + ): + self._last_printable_seen = None + return + + if self._last_printable_seen is None: + self._last_printable_seen = character + return + + unicode_range_a: str | None = unicode_range(self._last_printable_seen) + unicode_range_b: str | None = unicode_range(character) + + if is_suspiciously_successive_range(unicode_range_a, unicode_range_b): + self._suspicious_successive_range_count += 1 + + self._last_printable_seen = character + + def reset(self) -> None: # Abstract + self._character_count = 0 + self._suspicious_successive_range_count = 0 + self._last_printable_seen = None + + @property + def ratio(self) -> float: + if self._character_count <= 13: + return 0.0 + + ratio_of_suspicious_range_usage: float = ( + self._suspicious_successive_range_count * 2 + ) / self._character_count + + return ratio_of_suspicious_range_usage + + +class SuperWeirdWordPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._word_count: int = 0 + self._bad_word_count: int = 0 + self._foreign_long_count: int = 0 + + self._is_current_word_bad: bool = False + self._foreign_long_watch: bool = False + + self._character_count: int = 0 + self._bad_character_count: int = 0 + + self._buffer: str = "" + self._buffer_accent_count: int = 0 + self._buffer_glyph_count: int = 0 + + def eligible(self, character: str) -> bool: + return True + + def feed(self, character: str) -> None: + if character.isalpha(): + self._buffer += character + if is_accentuated(character): + self._buffer_accent_count += 1 + if ( + self._foreign_long_watch is False + and (is_latin(character) is False or is_accentuated(character)) + and is_cjk(character) is False + and is_hangul(character) is False + and is_katakana(character) is False + and is_hiragana(character) is False + and is_thai(character) is False + ): + self._foreign_long_watch = True + if ( + is_cjk(character) + or is_hangul(character) + or is_katakana(character) + or is_hiragana(character) + or is_thai(character) + ): + self._buffer_glyph_count += 1 + return + if not self._buffer: + return + if ( + character.isspace() or is_punctuation(character) or is_separator(character) + ) and self._buffer: + self._word_count += 1 + buffer_length: int = len(self._buffer) + + self._character_count += buffer_length + + if buffer_length >= 4: + if self._buffer_accent_count / buffer_length >= 0.5: + self._is_current_word_bad = True + # Word/Buffer ending with an upper case accentuated letter are so rare, + # that we will consider them all as suspicious. Same weight as foreign_long suspicious. + elif ( + is_accentuated(self._buffer[-1]) + and self._buffer[-1].isupper() + and all(_.isupper() for _ in self._buffer) is False + ): + self._foreign_long_count += 1 + self._is_current_word_bad = True + elif self._buffer_glyph_count == 1: + self._is_current_word_bad = True + self._foreign_long_count += 1 + if buffer_length >= 24 and self._foreign_long_watch: + camel_case_dst = [ + i + for c, i in zip(self._buffer, range(0, buffer_length)) + if c.isupper() + ] + probable_camel_cased: bool = False + + if camel_case_dst and (len(camel_case_dst) / buffer_length <= 0.3): + probable_camel_cased = True + + if not probable_camel_cased: + self._foreign_long_count += 1 + self._is_current_word_bad = True + + if self._is_current_word_bad: + self._bad_word_count += 1 + self._bad_character_count += len(self._buffer) + self._is_current_word_bad = False + + self._foreign_long_watch = False + self._buffer = "" + self._buffer_accent_count = 0 + self._buffer_glyph_count = 0 + elif ( + character not in {"<", ">", "-", "=", "~", "|", "_"} + and character.isdigit() is False + and is_symbol(character) + ): + self._is_current_word_bad = True + self._buffer += character + + def reset(self) -> None: # Abstract + self._buffer = "" + self._is_current_word_bad = False + self._foreign_long_watch = False + self._bad_word_count = 0 + self._word_count = 0 + self._character_count = 0 + self._bad_character_count = 0 + self._foreign_long_count = 0 + + @property + def ratio(self) -> float: + if self._word_count <= 10 and self._foreign_long_count == 0: + return 0.0 + + return self._bad_character_count / self._character_count + + +class CjkUncommonPlugin(MessDetectorPlugin): + """ + Detect messy CJK text that probably means nothing. + """ + + def __init__(self) -> None: + self._character_count: int = 0 + self._uncommon_count: int = 0 + + def eligible(self, character: str) -> bool: + return is_cjk(character) + + def feed(self, character: str) -> None: + self._character_count += 1 + + if is_cjk_uncommon(character): + self._uncommon_count += 1 + return + + def reset(self) -> None: # Abstract + self._character_count = 0 + self._uncommon_count = 0 + + @property + def ratio(self) -> float: + if self._character_count < 8: + return 0.0 + + uncommon_form_usage: float = self._uncommon_count / self._character_count + + # we can be pretty sure it's garbage when uncommon characters are widely + # used. otherwise it could just be traditional chinese for example. + return uncommon_form_usage / 10 if uncommon_form_usage > 0.5 else 0.0 + + +class ArchaicUpperLowerPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._buf: bool = False + + self._character_count_since_last_sep: int = 0 + + self._successive_upper_lower_count: int = 0 + self._successive_upper_lower_count_final: int = 0 + + self._character_count: int = 0 + + self._last_alpha_seen: str | None = None + self._current_ascii_only: bool = True + + def eligible(self, character: str) -> bool: + return True + + def feed(self, character: str) -> None: + is_concerned = character.isalpha() and is_case_variable(character) + chunk_sep = is_concerned is False + + if chunk_sep and self._character_count_since_last_sep > 0: + if ( + self._character_count_since_last_sep <= 64 + and character.isdigit() is False + and self._current_ascii_only is False + ): + self._successive_upper_lower_count_final += ( + self._successive_upper_lower_count + ) + + self._successive_upper_lower_count = 0 + self._character_count_since_last_sep = 0 + self._last_alpha_seen = None + self._buf = False + self._character_count += 1 + self._current_ascii_only = True + + return + + if self._current_ascii_only is True and character.isascii() is False: + self._current_ascii_only = False + + if self._last_alpha_seen is not None: + if (character.isupper() and self._last_alpha_seen.islower()) or ( + character.islower() and self._last_alpha_seen.isupper() + ): + if self._buf is True: + self._successive_upper_lower_count += 2 + self._buf = False + else: + self._buf = True + else: + self._buf = False + + self._character_count += 1 + self._character_count_since_last_sep += 1 + self._last_alpha_seen = character + + def reset(self) -> None: # Abstract + self._character_count = 0 + self._character_count_since_last_sep = 0 + self._successive_upper_lower_count = 0 + self._successive_upper_lower_count_final = 0 + self._last_alpha_seen = None + self._buf = False + self._current_ascii_only = True + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + return self._successive_upper_lower_count_final / self._character_count + + +class ArabicIsolatedFormPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._character_count: int = 0 + self._isolated_form_count: int = 0 + + def reset(self) -> None: # Abstract + self._character_count = 0 + self._isolated_form_count = 0 + + def eligible(self, character: str) -> bool: + return is_arabic(character) + + def feed(self, character: str) -> None: + self._character_count += 1 + + if is_arabic_isolated_form(character): + self._isolated_form_count += 1 + + @property + def ratio(self) -> float: + if self._character_count < 8: + return 0.0 + + isolated_form_usage: float = self._isolated_form_count / self._character_count + + return isolated_form_usage + + +@lru_cache(maxsize=1024) +def is_suspiciously_successive_range( + unicode_range_a: str | None, unicode_range_b: str | None +) -> bool: + """ + Determine if two Unicode range seen next to each other can be considered as suspicious. + """ + if unicode_range_a is None or unicode_range_b is None: + return True + + if unicode_range_a == unicode_range_b: + return False + + if "Latin" in unicode_range_a and "Latin" in unicode_range_b: + return False + + if "Emoticons" in unicode_range_a or "Emoticons" in unicode_range_b: + return False + + # Latin characters can be accompanied with a combining diacritical mark + # eg. Vietnamese. + if ("Latin" in unicode_range_a or "Latin" in unicode_range_b) and ( + "Combining" in unicode_range_a or "Combining" in unicode_range_b + ): + return False + + keywords_range_a, keywords_range_b = ( + unicode_range_a.split(" "), + unicode_range_b.split(" "), + ) + + for el in keywords_range_a: + if el in UNICODE_SECONDARY_RANGE_KEYWORD: + continue + if el in keywords_range_b: + return False + + # Japanese Exception + range_a_jp_chars, range_b_jp_chars = ( + unicode_range_a + in ( + "Hiragana", + "Katakana", + ), + unicode_range_b in ("Hiragana", "Katakana"), + ) + if (range_a_jp_chars or range_b_jp_chars) and ( + "CJK" in unicode_range_a or "CJK" in unicode_range_b + ): + return False + if range_a_jp_chars and range_b_jp_chars: + return False + + if "Hangul" in unicode_range_a or "Hangul" in unicode_range_b: + if "CJK" in unicode_range_a or "CJK" in unicode_range_b: + return False + if unicode_range_a == "Basic Latin" or unicode_range_b == "Basic Latin": + return False + + # Chinese/Japanese use dedicated range for punctuation and/or separators. + if ("CJK" in unicode_range_a or "CJK" in unicode_range_b) or ( + unicode_range_a in ["Katakana", "Hiragana"] + and unicode_range_b in ["Katakana", "Hiragana"] + ): + if "Punctuation" in unicode_range_a or "Punctuation" in unicode_range_b: + return False + if "Forms" in unicode_range_a or "Forms" in unicode_range_b: + return False + if unicode_range_a == "Basic Latin" or unicode_range_b == "Basic Latin": + return False + + return True + + +@lru_cache(maxsize=2048) +def mess_ratio( + decoded_sequence: str, maximum_threshold: float = 0.2, debug: bool = False +) -> float: + """ + Compute a mess ratio given a decoded bytes sequence. The maximum threshold does stop the computation earlier. + """ + + detectors: list[MessDetectorPlugin] = [ + md_class() for md_class in MessDetectorPlugin.__subclasses__() + ] + + length: int = len(decoded_sequence) + 1 + + mean_mess_ratio: float = 0.0 + + if length < 512: + intermediary_mean_mess_ratio_calc: int = 32 + elif length <= 1024: + intermediary_mean_mess_ratio_calc = 64 + else: + intermediary_mean_mess_ratio_calc = 128 + + for character, index in zip(decoded_sequence + "\n", range(length)): + for detector in detectors: + if detector.eligible(character): + detector.feed(character) + + if ( + index > 0 and index % intermediary_mean_mess_ratio_calc == 0 + ) or index == length - 1: + mean_mess_ratio = sum(dt.ratio for dt in detectors) + + if mean_mess_ratio >= maximum_threshold: + break + + if debug: + logger = getLogger("charset_normalizer") + + logger.log( + TRACE, + "Mess-detector extended-analysis start. " + f"intermediary_mean_mess_ratio_calc={intermediary_mean_mess_ratio_calc} mean_mess_ratio={mean_mess_ratio} " + f"maximum_threshold={maximum_threshold}", + ) + + if len(decoded_sequence) > 16: + logger.log(TRACE, f"Starting with: {decoded_sequence[:16]}") + logger.log(TRACE, f"Ending with: {decoded_sequence[-16::]}") + + for dt in detectors: + logger.log(TRACE, f"{dt.__class__}: {dt.ratio}") + + return round(mean_mess_ratio, 3) diff --git a/venv/lib/python3.11/site-packages/charset_normalizer/md__mypyc.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/charset_normalizer/md__mypyc.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..7ce82fb Binary files /dev/null and b/venv/lib/python3.11/site-packages/charset_normalizer/md__mypyc.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/charset_normalizer/models.py b/venv/lib/python3.11/site-packages/charset_normalizer/models.py new file mode 100644 index 0000000..1042758 --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer/models.py @@ -0,0 +1,360 @@ +from __future__ import annotations + +from encodings.aliases import aliases +from hashlib import sha256 +from json import dumps +from re import sub +from typing import Any, Iterator, List, Tuple + +from .constant import RE_POSSIBLE_ENCODING_INDICATION, TOO_BIG_SEQUENCE +from .utils import iana_name, is_multi_byte_encoding, unicode_range + + +class CharsetMatch: + def __init__( + self, + payload: bytes, + guessed_encoding: str, + mean_mess_ratio: float, + has_sig_or_bom: bool, + languages: CoherenceMatches, + decoded_payload: str | None = None, + preemptive_declaration: str | None = None, + ): + self._payload: bytes = payload + + self._encoding: str = guessed_encoding + self._mean_mess_ratio: float = mean_mess_ratio + self._languages: CoherenceMatches = languages + self._has_sig_or_bom: bool = has_sig_or_bom + self._unicode_ranges: list[str] | None = None + + self._leaves: list[CharsetMatch] = [] + self._mean_coherence_ratio: float = 0.0 + + self._output_payload: bytes | None = None + self._output_encoding: str | None = None + + self._string: str | None = decoded_payload + + self._preemptive_declaration: str | None = preemptive_declaration + + def __eq__(self, other: object) -> bool: + if not isinstance(other, CharsetMatch): + if isinstance(other, str): + return iana_name(other) == self.encoding + return False + return self.encoding == other.encoding and self.fingerprint == other.fingerprint + + def __lt__(self, other: object) -> bool: + """ + Implemented to make sorted available upon CharsetMatches items. + """ + if not isinstance(other, CharsetMatch): + raise ValueError + + chaos_difference: float = abs(self.chaos - other.chaos) + coherence_difference: float = abs(self.coherence - other.coherence) + + # Below 1% difference --> Use Coherence + if chaos_difference < 0.01 and coherence_difference > 0.02: + return self.coherence > other.coherence + elif chaos_difference < 0.01 and coherence_difference <= 0.02: + # When having a difficult decision, use the result that decoded as many multi-byte as possible. + # preserve RAM usage! + if len(self._payload) >= TOO_BIG_SEQUENCE: + return self.chaos < other.chaos + return self.multi_byte_usage > other.multi_byte_usage + + return self.chaos < other.chaos + + @property + def multi_byte_usage(self) -> float: + return 1.0 - (len(str(self)) / len(self.raw)) + + def __str__(self) -> str: + # Lazy Str Loading + if self._string is None: + self._string = str(self._payload, self._encoding, "strict") + return self._string + + def __repr__(self) -> str: + return f"" + + def add_submatch(self, other: CharsetMatch) -> None: + if not isinstance(other, CharsetMatch) or other == self: + raise ValueError( + "Unable to add instance <{}> as a submatch of a CharsetMatch".format( + other.__class__ + ) + ) + + other._string = None # Unload RAM usage; dirty trick. + self._leaves.append(other) + + @property + def encoding(self) -> str: + return self._encoding + + @property + def encoding_aliases(self) -> list[str]: + """ + Encoding name are known by many name, using this could help when searching for IBM855 when it's listed as CP855. + """ + also_known_as: list[str] = [] + for u, p in aliases.items(): + if self.encoding == u: + also_known_as.append(p) + elif self.encoding == p: + also_known_as.append(u) + return also_known_as + + @property + def bom(self) -> bool: + return self._has_sig_or_bom + + @property + def byte_order_mark(self) -> bool: + return self._has_sig_or_bom + + @property + def languages(self) -> list[str]: + """ + Return the complete list of possible languages found in decoded sequence. + Usually not really useful. Returned list may be empty even if 'language' property return something != 'Unknown'. + """ + return [e[0] for e in self._languages] + + @property + def language(self) -> str: + """ + Most probable language found in decoded sequence. If none were detected or inferred, the property will return + "Unknown". + """ + if not self._languages: + # Trying to infer the language based on the given encoding + # Its either English or we should not pronounce ourselves in certain cases. + if "ascii" in self.could_be_from_charset: + return "English" + + # doing it there to avoid circular import + from charset_normalizer.cd import encoding_languages, mb_encoding_languages + + languages = ( + mb_encoding_languages(self.encoding) + if is_multi_byte_encoding(self.encoding) + else encoding_languages(self.encoding) + ) + + if len(languages) == 0 or "Latin Based" in languages: + return "Unknown" + + return languages[0] + + return self._languages[0][0] + + @property + def chaos(self) -> float: + return self._mean_mess_ratio + + @property + def coherence(self) -> float: + if not self._languages: + return 0.0 + return self._languages[0][1] + + @property + def percent_chaos(self) -> float: + return round(self.chaos * 100, ndigits=3) + + @property + def percent_coherence(self) -> float: + return round(self.coherence * 100, ndigits=3) + + @property + def raw(self) -> bytes: + """ + Original untouched bytes. + """ + return self._payload + + @property + def submatch(self) -> list[CharsetMatch]: + return self._leaves + + @property + def has_submatch(self) -> bool: + return len(self._leaves) > 0 + + @property + def alphabets(self) -> list[str]: + if self._unicode_ranges is not None: + return self._unicode_ranges + # list detected ranges + detected_ranges: list[str | None] = [unicode_range(char) for char in str(self)] + # filter and sort + self._unicode_ranges = sorted(list({r for r in detected_ranges if r})) + return self._unicode_ranges + + @property + def could_be_from_charset(self) -> list[str]: + """ + The complete list of encoding that output the exact SAME str result and therefore could be the originating + encoding. + This list does include the encoding available in property 'encoding'. + """ + return [self._encoding] + [m.encoding for m in self._leaves] + + def output(self, encoding: str = "utf_8") -> bytes: + """ + Method to get re-encoded bytes payload using given target encoding. Default to UTF-8. + Any errors will be simply ignored by the encoder NOT replaced. + """ + if self._output_encoding is None or self._output_encoding != encoding: + self._output_encoding = encoding + decoded_string = str(self) + if ( + self._preemptive_declaration is not None + and self._preemptive_declaration.lower() + not in ["utf-8", "utf8", "utf_8"] + ): + patched_header = sub( + RE_POSSIBLE_ENCODING_INDICATION, + lambda m: m.string[m.span()[0] : m.span()[1]].replace( + m.groups()[0], + iana_name(self._output_encoding).replace("_", "-"), # type: ignore[arg-type] + ), + decoded_string[:8192], + count=1, + ) + + decoded_string = patched_header + decoded_string[8192:] + + self._output_payload = decoded_string.encode(encoding, "replace") + + return self._output_payload # type: ignore + + @property + def fingerprint(self) -> str: + """ + Retrieve the unique SHA256 computed using the transformed (re-encoded) payload. Not the original one. + """ + return sha256(self.output()).hexdigest() + + +class CharsetMatches: + """ + Container with every CharsetMatch items ordered by default from most probable to the less one. + Act like a list(iterable) but does not implements all related methods. + """ + + def __init__(self, results: list[CharsetMatch] | None = None): + self._results: list[CharsetMatch] = sorted(results) if results else [] + + def __iter__(self) -> Iterator[CharsetMatch]: + yield from self._results + + def __getitem__(self, item: int | str) -> CharsetMatch: + """ + Retrieve a single item either by its position or encoding name (alias may be used here). + Raise KeyError upon invalid index or encoding not present in results. + """ + if isinstance(item, int): + return self._results[item] + if isinstance(item, str): + item = iana_name(item, False) + for result in self._results: + if item in result.could_be_from_charset: + return result + raise KeyError + + def __len__(self) -> int: + return len(self._results) + + def __bool__(self) -> bool: + return len(self._results) > 0 + + def append(self, item: CharsetMatch) -> None: + """ + Insert a single match. Will be inserted accordingly to preserve sort. + Can be inserted as a submatch. + """ + if not isinstance(item, CharsetMatch): + raise ValueError( + "Cannot append instance '{}' to CharsetMatches".format( + str(item.__class__) + ) + ) + # We should disable the submatch factoring when the input file is too heavy (conserve RAM usage) + if len(item.raw) < TOO_BIG_SEQUENCE: + for match in self._results: + if match.fingerprint == item.fingerprint and match.chaos == item.chaos: + match.add_submatch(item) + return + self._results.append(item) + self._results = sorted(self._results) + + def best(self) -> CharsetMatch | None: + """ + Simply return the first match. Strict equivalent to matches[0]. + """ + if not self._results: + return None + return self._results[0] + + def first(self) -> CharsetMatch | None: + """ + Redundant method, call the method best(). Kept for BC reasons. + """ + return self.best() + + +CoherenceMatch = Tuple[str, float] +CoherenceMatches = List[CoherenceMatch] + + +class CliDetectionResult: + def __init__( + self, + path: str, + encoding: str | None, + encoding_aliases: list[str], + alternative_encodings: list[str], + language: str, + alphabets: list[str], + has_sig_or_bom: bool, + chaos: float, + coherence: float, + unicode_path: str | None, + is_preferred: bool, + ): + self.path: str = path + self.unicode_path: str | None = unicode_path + self.encoding: str | None = encoding + self.encoding_aliases: list[str] = encoding_aliases + self.alternative_encodings: list[str] = alternative_encodings + self.language: str = language + self.alphabets: list[str] = alphabets + self.has_sig_or_bom: bool = has_sig_or_bom + self.chaos: float = chaos + self.coherence: float = coherence + self.is_preferred: bool = is_preferred + + @property + def __dict__(self) -> dict[str, Any]: # type: ignore + return { + "path": self.path, + "encoding": self.encoding, + "encoding_aliases": self.encoding_aliases, + "alternative_encodings": self.alternative_encodings, + "language": self.language, + "alphabets": self.alphabets, + "has_sig_or_bom": self.has_sig_or_bom, + "chaos": self.chaos, + "coherence": self.coherence, + "unicode_path": self.unicode_path, + "is_preferred": self.is_preferred, + } + + def to_json(self) -> str: + return dumps(self.__dict__, ensure_ascii=True, indent=4) diff --git a/venv/lib/python3.11/site-packages/charset_normalizer/py.typed b/venv/lib/python3.11/site-packages/charset_normalizer/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/charset_normalizer/utils.py b/venv/lib/python3.11/site-packages/charset_normalizer/utils.py new file mode 100644 index 0000000..6bf0384 --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer/utils.py @@ -0,0 +1,414 @@ +from __future__ import annotations + +import importlib +import logging +import unicodedata +from codecs import IncrementalDecoder +from encodings.aliases import aliases +from functools import lru_cache +from re import findall +from typing import Generator + +from _multibytecodec import ( # type: ignore[import-not-found,import] + MultibyteIncrementalDecoder, +) + +from .constant import ( + ENCODING_MARKS, + IANA_SUPPORTED_SIMILAR, + RE_POSSIBLE_ENCODING_INDICATION, + UNICODE_RANGES_COMBINED, + UNICODE_SECONDARY_RANGE_KEYWORD, + UTF8_MAXIMAL_ALLOCATION, + COMMON_CJK_CHARACTERS, +) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_accentuated(character: str) -> bool: + try: + description: str = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + return ( + "WITH GRAVE" in description + or "WITH ACUTE" in description + or "WITH CEDILLA" in description + or "WITH DIAERESIS" in description + or "WITH CIRCUMFLEX" in description + or "WITH TILDE" in description + or "WITH MACRON" in description + or "WITH RING ABOVE" in description + ) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def remove_accent(character: str) -> str: + decomposed: str = unicodedata.decomposition(character) + if not decomposed: + return character + + codes: list[str] = decomposed.split(" ") + + return chr(int(codes[0], 16)) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def unicode_range(character: str) -> str | None: + """ + Retrieve the Unicode range official name from a single character. + """ + character_ord: int = ord(character) + + for range_name, ord_range in UNICODE_RANGES_COMBINED.items(): + if character_ord in ord_range: + return range_name + + return None + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_latin(character: str) -> bool: + try: + description: str = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + return "LATIN" in description + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_punctuation(character: str) -> bool: + character_category: str = unicodedata.category(character) + + if "P" in character_category: + return True + + character_range: str | None = unicode_range(character) + + if character_range is None: + return False + + return "Punctuation" in character_range + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_symbol(character: str) -> bool: + character_category: str = unicodedata.category(character) + + if "S" in character_category or "N" in character_category: + return True + + character_range: str | None = unicode_range(character) + + if character_range is None: + return False + + return "Forms" in character_range and character_category != "Lo" + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_emoticon(character: str) -> bool: + character_range: str | None = unicode_range(character) + + if character_range is None: + return False + + return "Emoticons" in character_range or "Pictographs" in character_range + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_separator(character: str) -> bool: + if character.isspace() or character in {"|", "+", "<", ">"}: + return True + + character_category: str = unicodedata.category(character) + + return "Z" in character_category or character_category in {"Po", "Pd", "Pc"} + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_case_variable(character: str) -> bool: + return character.islower() != character.isupper() + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_cjk(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "CJK" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_hiragana(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "HIRAGANA" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_katakana(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "KATAKANA" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_hangul(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "HANGUL" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_thai(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "THAI" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_arabic(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "ARABIC" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_arabic_isolated_form(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "ARABIC" in character_name and "ISOLATED FORM" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_cjk_uncommon(character: str) -> bool: + return character not in COMMON_CJK_CHARACTERS + + +@lru_cache(maxsize=len(UNICODE_RANGES_COMBINED)) +def is_unicode_range_secondary(range_name: str) -> bool: + return any(keyword in range_name for keyword in UNICODE_SECONDARY_RANGE_KEYWORD) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_unprintable(character: str) -> bool: + return ( + character.isspace() is False # includes \n \t \r \v + and character.isprintable() is False + and character != "\x1a" # Why? Its the ASCII substitute character. + and character != "\ufeff" # bug discovered in Python, + # Zero Width No-Break Space located in Arabic Presentation Forms-B, Unicode 1.1 not acknowledged as space. + ) + + +def any_specified_encoding(sequence: bytes, search_zone: int = 8192) -> str | None: + """ + Extract using ASCII-only decoder any specified encoding in the first n-bytes. + """ + if not isinstance(sequence, bytes): + raise TypeError + + seq_len: int = len(sequence) + + results: list[str] = findall( + RE_POSSIBLE_ENCODING_INDICATION, + sequence[: min(seq_len, search_zone)].decode("ascii", errors="ignore"), + ) + + if len(results) == 0: + return None + + for specified_encoding in results: + specified_encoding = specified_encoding.lower().replace("-", "_") + + encoding_alias: str + encoding_iana: str + + for encoding_alias, encoding_iana in aliases.items(): + if encoding_alias == specified_encoding: + return encoding_iana + if encoding_iana == specified_encoding: + return encoding_iana + + return None + + +@lru_cache(maxsize=128) +def is_multi_byte_encoding(name: str) -> bool: + """ + Verify is a specific encoding is a multi byte one based on it IANA name + """ + return name in { + "utf_8", + "utf_8_sig", + "utf_16", + "utf_16_be", + "utf_16_le", + "utf_32", + "utf_32_le", + "utf_32_be", + "utf_7", + } or issubclass( + importlib.import_module(f"encodings.{name}").IncrementalDecoder, + MultibyteIncrementalDecoder, + ) + + +def identify_sig_or_bom(sequence: bytes) -> tuple[str | None, bytes]: + """ + Identify and extract SIG/BOM in given sequence. + """ + + for iana_encoding in ENCODING_MARKS: + marks: bytes | list[bytes] = ENCODING_MARKS[iana_encoding] + + if isinstance(marks, bytes): + marks = [marks] + + for mark in marks: + if sequence.startswith(mark): + return iana_encoding, mark + + return None, b"" + + +def should_strip_sig_or_bom(iana_encoding: str) -> bool: + return iana_encoding not in {"utf_16", "utf_32"} + + +def iana_name(cp_name: str, strict: bool = True) -> str: + """Returns the Python normalized encoding name (Not the IANA official name).""" + cp_name = cp_name.lower().replace("-", "_") + + encoding_alias: str + encoding_iana: str + + for encoding_alias, encoding_iana in aliases.items(): + if cp_name in [encoding_alias, encoding_iana]: + return encoding_iana + + if strict: + raise ValueError(f"Unable to retrieve IANA for '{cp_name}'") + + return cp_name + + +def cp_similarity(iana_name_a: str, iana_name_b: str) -> float: + if is_multi_byte_encoding(iana_name_a) or is_multi_byte_encoding(iana_name_b): + return 0.0 + + decoder_a = importlib.import_module(f"encodings.{iana_name_a}").IncrementalDecoder + decoder_b = importlib.import_module(f"encodings.{iana_name_b}").IncrementalDecoder + + id_a: IncrementalDecoder = decoder_a(errors="ignore") + id_b: IncrementalDecoder = decoder_b(errors="ignore") + + character_match_count: int = 0 + + for i in range(255): + to_be_decoded: bytes = bytes([i]) + if id_a.decode(to_be_decoded) == id_b.decode(to_be_decoded): + character_match_count += 1 + + return character_match_count / 254 + + +def is_cp_similar(iana_name_a: str, iana_name_b: str) -> bool: + """ + Determine if two code page are at least 80% similar. IANA_SUPPORTED_SIMILAR dict was generated using + the function cp_similarity. + """ + return ( + iana_name_a in IANA_SUPPORTED_SIMILAR + and iana_name_b in IANA_SUPPORTED_SIMILAR[iana_name_a] + ) + + +def set_logging_handler( + name: str = "charset_normalizer", + level: int = logging.INFO, + format_string: str = "%(asctime)s | %(levelname)s | %(message)s", +) -> None: + logger = logging.getLogger(name) + logger.setLevel(level) + + handler = logging.StreamHandler() + handler.setFormatter(logging.Formatter(format_string)) + logger.addHandler(handler) + + +def cut_sequence_chunks( + sequences: bytes, + encoding_iana: str, + offsets: range, + chunk_size: int, + bom_or_sig_available: bool, + strip_sig_or_bom: bool, + sig_payload: bytes, + is_multi_byte_decoder: bool, + decoded_payload: str | None = None, +) -> Generator[str, None, None]: + if decoded_payload and is_multi_byte_decoder is False: + for i in offsets: + chunk = decoded_payload[i : i + chunk_size] + if not chunk: + break + yield chunk + else: + for i in offsets: + chunk_end = i + chunk_size + if chunk_end > len(sequences) + 8: + continue + + cut_sequence = sequences[i : i + chunk_size] + + if bom_or_sig_available and strip_sig_or_bom is False: + cut_sequence = sig_payload + cut_sequence + + chunk = cut_sequence.decode( + encoding_iana, + errors="ignore" if is_multi_byte_decoder else "strict", + ) + + # multi-byte bad cutting detector and adjustment + # not the cleanest way to perform that fix but clever enough for now. + if is_multi_byte_decoder and i > 0: + chunk_partial_size_chk: int = min(chunk_size, 16) + + if ( + decoded_payload + and chunk[:chunk_partial_size_chk] not in decoded_payload + ): + for j in range(i, i - 4, -1): + cut_sequence = sequences[j:chunk_end] + + if bom_or_sig_available and strip_sig_or_bom is False: + cut_sequence = sig_payload + cut_sequence + + chunk = cut_sequence.decode(encoding_iana, errors="ignore") + + if chunk[:chunk_partial_size_chk] in decoded_payload: + break + + yield chunk diff --git a/venv/lib/python3.11/site-packages/charset_normalizer/version.py b/venv/lib/python3.11/site-packages/charset_normalizer/version.py new file mode 100644 index 0000000..c843e53 --- /dev/null +++ b/venv/lib/python3.11/site-packages/charset_normalizer/version.py @@ -0,0 +1,8 @@ +""" +Expose version +""" + +from __future__ import annotations + +__version__ = "3.4.4" +VERSION = __version__.split(".") diff --git a/venv/lib/python3.11/site-packages/click-8.3.0.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/click-8.3.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/click-8.3.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/click-8.3.0.dist-info/METADATA b/venv/lib/python3.11/site-packages/click-8.3.0.dist-info/METADATA new file mode 100644 index 0000000..534eb57 --- /dev/null +++ b/venv/lib/python3.11/site-packages/click-8.3.0.dist-info/METADATA @@ -0,0 +1,84 @@ +Metadata-Version: 2.4 +Name: click +Version: 8.3.0 +Summary: Composable command line interface toolkit +Maintainer-email: Pallets +Requires-Python: >=3.10 +Description-Content-Type: text/markdown +License-Expression: BSD-3-Clause +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Typing :: Typed +License-File: LICENSE.txt +Requires-Dist: colorama; platform_system == 'Windows' +Project-URL: Changes, https://click.palletsprojects.com/page/changes/ +Project-URL: Chat, https://discord.gg/pallets +Project-URL: Documentation, https://click.palletsprojects.com/ +Project-URL: Donate, https://palletsprojects.com/donate +Project-URL: Source, https://github.com/pallets/click/ + +
+ +# Click + +Click is a Python package for creating beautiful command line interfaces +in a composable way with as little code as necessary. It's the "Command +Line Interface Creation Kit". It's highly configurable but comes with +sensible defaults out of the box. + +It aims to make the process of writing command line tools quick and fun +while also preventing any frustration caused by the inability to +implement an intended CLI API. + +Click in three points: + +- Arbitrary nesting of commands +- Automatic help page generation +- Supports lazy loading of subcommands at runtime + + +## A Simple Example + +```python +import click + +@click.command() +@click.option("--count", default=1, help="Number of greetings.") +@click.option("--name", prompt="Your name", help="The person to greet.") +def hello(count, name): + """Simple program that greets NAME for a total of COUNT times.""" + for _ in range(count): + click.echo(f"Hello, {name}!") + +if __name__ == '__main__': + hello() +``` + +``` +$ python hello.py --count=3 +Your name: Click +Hello, Click! +Hello, Click! +Hello, Click! +``` + + +## Donate + +The Pallets organization develops and supports Click and other popular +packages. In order to grow the community of contributors and users, and +allow the maintainers to devote more time to the projects, [please +donate today][]. + +[please donate today]: https://palletsprojects.com/donate + +## Contributing + +See our [detailed contributing documentation][contrib] for many ways to +contribute, including reporting issues, requesting features, asking or answering +questions, and making PRs. + +[contrib]: https://palletsprojects.com/contributing/ + diff --git a/venv/lib/python3.11/site-packages/click-8.3.0.dist-info/RECORD b/venv/lib/python3.11/site-packages/click-8.3.0.dist-info/RECORD new file mode 100644 index 0000000..859e0eb --- /dev/null +++ b/venv/lib/python3.11/site-packages/click-8.3.0.dist-info/RECORD @@ -0,0 +1,40 @@ +click-8.3.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +click-8.3.0.dist-info/METADATA,sha256=P6vpEHZ_MLBt4SO2eB-QaadcOdiznkzaZtJImRo7_V4,2621 +click-8.3.0.dist-info/RECORD,, +click-8.3.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82 +click-8.3.0.dist-info/licenses/LICENSE.txt,sha256=morRBqOU6FO_4h9C9OctWSgZoigF2ZG18ydQKSkrZY0,1475 +click/__init__.py,sha256=6YyS1aeyknZ0LYweWozNZy0A9nZ_11wmYIhv3cbQrYo,4473 +click/__pycache__/__init__.cpython-311.pyc,, +click/__pycache__/_compat.cpython-311.pyc,, +click/__pycache__/_termui_impl.cpython-311.pyc,, +click/__pycache__/_textwrap.cpython-311.pyc,, +click/__pycache__/_utils.cpython-311.pyc,, +click/__pycache__/_winconsole.cpython-311.pyc,, +click/__pycache__/core.cpython-311.pyc,, +click/__pycache__/decorators.cpython-311.pyc,, +click/__pycache__/exceptions.cpython-311.pyc,, +click/__pycache__/formatting.cpython-311.pyc,, +click/__pycache__/globals.cpython-311.pyc,, +click/__pycache__/parser.cpython-311.pyc,, +click/__pycache__/shell_completion.cpython-311.pyc,, +click/__pycache__/termui.cpython-311.pyc,, +click/__pycache__/testing.cpython-311.pyc,, +click/__pycache__/types.cpython-311.pyc,, +click/__pycache__/utils.cpython-311.pyc,, +click/_compat.py,sha256=v3xBZkFbvA1BXPRkFfBJc6-pIwPI7345m-kQEnpVAs4,18693 +click/_termui_impl.py,sha256=ktpAHyJtNkhyR-x64CQFD6xJQI11fTA3qg2AV3iCToU,26799 +click/_textwrap.py,sha256=BOae0RQ6vg3FkNgSJyOoGzG1meGMxJ_ukWVZKx_v-0o,1400 +click/_utils.py,sha256=kZwtTf5gMuCilJJceS2iTCvRvCY-0aN5rJq8gKw7p8g,943 +click/_winconsole.py,sha256=_vxUuUaxwBhoR0vUWCNuHY8VUefiMdCIyU2SXPqoF-A,8465 +click/core.py,sha256=1A5T8UoAXklIGPTJ83_DJbVi35ehtJS2FTkP_wQ7es0,128855 +click/decorators.py,sha256=5P7abhJtAQYp_KHgjUvhMv464ERwOzrv2enNknlwHyQ,18461 +click/exceptions.py,sha256=8utf8w6V5hJXMnO_ic1FNrtbwuEn1NUu1aDwV8UqnG4,9954 +click/formatting.py,sha256=RVfwwr0rwWNpgGr8NaHodPzkIr7_tUyVh_nDdanLMNc,9730 +click/globals.py,sha256=gM-Nh6A4M0HB_SgkaF5M4ncGGMDHc_flHXu9_oh4GEU,1923 +click/parser.py,sha256=Q31pH0FlQZEq-UXE_ABRzlygEfvxPTuZbWNh4xfXmzw,19010 +click/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +click/shell_completion.py,sha256=Cc4GQUFuWpfQBa9sF5qXeeYI7n3tI_1k6ZdSn4BZbT0,20994 +click/termui.py,sha256=vAYrKC2a7f_NfEIhAThEVYfa__ib5XQbTSCGtJlABRA,30847 +click/testing.py,sha256=EERbzcl1br0mW0qBS9EqkknfNfXB9WQEW0ELIpkvuSs,19102 +click/types.py,sha256=ek54BNSFwPKsqtfT7jsqcc4WHui8AIFVMKM4oVZIXhc,39927 +click/utils.py,sha256=gCUoewdAhA-QLBUUHxrLh4uj6m7T1WjZZMNPvR0I7YA,20257 diff --git a/venv/lib/python3.11/site-packages/click-8.3.0.dist-info/WHEEL b/venv/lib/python3.11/site-packages/click-8.3.0.dist-info/WHEEL new file mode 100644 index 0000000..d8b9936 --- /dev/null +++ b/venv/lib/python3.11/site-packages/click-8.3.0.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: flit 3.12.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/click-8.3.0.dist-info/licenses/LICENSE.txt b/venv/lib/python3.11/site-packages/click-8.3.0.dist-info/licenses/LICENSE.txt new file mode 100644 index 0000000..d12a849 --- /dev/null +++ b/venv/lib/python3.11/site-packages/click-8.3.0.dist-info/licenses/LICENSE.txt @@ -0,0 +1,28 @@ +Copyright 2014 Pallets + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.11/site-packages/contourpy-1.3.3.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/contourpy-1.3.3.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/contourpy-1.3.3.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/contourpy-1.3.3.dist-info/LICENSE b/venv/lib/python3.11/site-packages/contourpy-1.3.3.dist-info/LICENSE new file mode 100644 index 0000000..93e41fb --- /dev/null +++ b/venv/lib/python3.11/site-packages/contourpy-1.3.3.dist-info/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2021-2025, ContourPy Developers. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.11/site-packages/contourpy-1.3.3.dist-info/METADATA b/venv/lib/python3.11/site-packages/contourpy-1.3.3.dist-info/METADATA new file mode 100644 index 0000000..68529fb --- /dev/null +++ b/venv/lib/python3.11/site-packages/contourpy-1.3.3.dist-info/METADATA @@ -0,0 +1,94 @@ +Metadata-Version: 2.1 +Name: contourpy +Version: 1.3.3 +Summary: Python library for calculating contours of 2D quadrilateral grids +Author-Email: Ian Thomas +License: BSD 3-Clause License + + Copyright (c) 2021-2025, ContourPy Developers. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + 3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: Science/Research +Classifier: License :: OSI Approved :: BSD License +Classifier: Programming Language :: C++ +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Topic :: Scientific/Engineering :: Information Analysis +Classifier: Topic :: Scientific/Engineering :: Mathematics +Classifier: Topic :: Scientific/Engineering :: Visualization +Project-URL: Homepage, https://github.com/contourpy/contourpy +Project-URL: Changelog, https://contourpy.readthedocs.io/en/latest/changelog.html +Project-URL: Documentation, https://contourpy.readthedocs.io +Project-URL: Repository, https://github.com/contourpy/contourpy +Requires-Python: >=3.11 +Requires-Dist: numpy>=1.25 +Provides-Extra: docs +Requires-Dist: furo; extra == "docs" +Requires-Dist: sphinx>=7.2; extra == "docs" +Requires-Dist: sphinx-copybutton; extra == "docs" +Provides-Extra: bokeh +Requires-Dist: bokeh; extra == "bokeh" +Requires-Dist: selenium; extra == "bokeh" +Provides-Extra: mypy +Requires-Dist: contourpy[bokeh,docs]; extra == "mypy" +Requires-Dist: bokeh; extra == "mypy" +Requires-Dist: docutils-stubs; extra == "mypy" +Requires-Dist: mypy==1.17.0; extra == "mypy" +Requires-Dist: types-Pillow; extra == "mypy" +Provides-Extra: test +Requires-Dist: contourpy[test-no-images]; extra == "test" +Requires-Dist: matplotlib; extra == "test" +Requires-Dist: Pillow; extra == "test" +Provides-Extra: test-no-images +Requires-Dist: pytest; extra == "test-no-images" +Requires-Dist: pytest-cov; extra == "test-no-images" +Requires-Dist: pytest-rerunfailures; extra == "test-no-images" +Requires-Dist: pytest-xdist; extra == "test-no-images" +Requires-Dist: wurlitzer; extra == "test-no-images" +Description-Content-Type: text/markdown + +ContourPy + +ContourPy is a Python library for calculating contours of 2D quadrilateral grids. It is written in C++11 and wrapped using pybind11. + +It contains the 2005 and 2014 algorithms used in Matplotlib as well as a newer algorithm that includes more features and is available in both serial and multithreaded versions. It provides an easy way for Python libraries to use contouring algorithms without having to include Matplotlib as a dependency. + + * **Documentation**: https://contourpy.readthedocs.io + * **Source code**: https://github.com/contourpy/contourpy + +| | | +| --- | --- | +| Latest release | [![PyPI version](https://img.shields.io/pypi/v/contourpy.svg?label=pypi&color=fdae61)](https://pypi.python.org/pypi/contourpy) [![conda-forge version](https://img.shields.io/conda/v/conda-forge/contourpy.svg?label=conda-forge&color=a6d96a)](https://anaconda.org/conda-forge/contourpy) | +| Downloads | [![PyPi downloads](https://img.shields.io/pypi/dm/contourpy?label=pypi&style=flat&color=fdae61)](https://pepy.tech/project/contourpy) | +| Python version | [![Platforms](https://img.shields.io/pypi/pyversions/contourpy?color=fdae61)](https://pypi.org/project/contourpy/) | +| Coverage | [![Codecov](https://img.shields.io/codecov/c/gh/contourpy/contourpy?color=fdae61&label=codecov)](https://app.codecov.io/gh/contourpy/contourpy) | diff --git a/venv/lib/python3.11/site-packages/contourpy-1.3.3.dist-info/RECORD b/venv/lib/python3.11/site-packages/contourpy-1.3.3.dist-info/RECORD new file mode 100644 index 0000000..ce2d5a7 --- /dev/null +++ b/venv/lib/python3.11/site-packages/contourpy-1.3.3.dist-info/RECORD @@ -0,0 +1,42 @@ +contourpy-1.3.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +contourpy-1.3.3.dist-info/LICENSE,sha256=NBcJefxk9PXm36Zu8n3sMU___FhSAAxg9INuwd-_FW4,1534 +contourpy-1.3.3.dist-info/METADATA,sha256=xDzvhrrvCc_5x3l15Xj6jMoMlFTfQNwXaTi0maY95Uo,5461 +contourpy-1.3.3.dist-info/RECORD,, +contourpy-1.3.3.dist-info/WHEEL,sha256=0k-XbnzlIttvoouTVqS5igzC3_g2SiMBxIP-1EBcy-Q,138 +contourpy/__init__.py,sha256=6sf-K0D4xaEIDhk38USOjszRiLz52rM43-vtcfVrMvY,11765 +contourpy/__pycache__/__init__.cpython-311.pyc,, +contourpy/__pycache__/_version.cpython-311.pyc,, +contourpy/__pycache__/array.cpython-311.pyc,, +contourpy/__pycache__/chunk.cpython-311.pyc,, +contourpy/__pycache__/convert.cpython-311.pyc,, +contourpy/__pycache__/dechunk.cpython-311.pyc,, +contourpy/__pycache__/enum_util.cpython-311.pyc,, +contourpy/__pycache__/typecheck.cpython-311.pyc,, +contourpy/__pycache__/types.cpython-311.pyc,, +contourpy/_contourpy.cpython-311-x86_64-linux-gnu.so,sha256=521a2LgkCoiv0SFOe2SEz-NTWx8sN0fabM_WrQTa1_4,928744 +contourpy/_contourpy.pyi,sha256=fvtccxkiZwGb6qYag7Fp4E8bsFmAIjAmobf8LNxqfgc,7122 +contourpy/_version.py,sha256=Vi6om3KImlKsS_Wg5CjUgYffoi2zx7T-SRPnnGL0G7M,22 +contourpy/array.py,sha256=4WwLuiZe30rizn_raymmY13OzE6hlCsDOO8kuVFOP18,8979 +contourpy/chunk.py,sha256=8njDQqlpuD22RjaaCyA75FXQsSQDY5hZGJSrxFpvGGU,3279 +contourpy/convert.py,sha256=mhyn7prEoWCnf0igaH-VqDwlk-CegFsZ4qOy2LL-hpU,26154 +contourpy/dechunk.py,sha256=EgFL6hw5H54ccuof4tJ2ehdnktT7trgZjiZqppsH8QI,7756 +contourpy/enum_util.py,sha256=o8MItJRs08oqzwPP3IwC75BBAY9Qq95saIzjkXBXwqA,1519 +contourpy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +contourpy/typecheck.py,sha256=t1nvvCuKMYva1Zx4fc30EpdKFcO0Enz3n_UFfXBsq9o,10747 +contourpy/types.py,sha256=2K4T5tJpMIjYrkkg1Lqh3C2ZKlnOhnMtYmtwz92l_y8,247 +contourpy/util/__init__.py,sha256=eVhJ_crOHL7nkG4Kb0dOo7NL4WHMy_Px665aAN_3d-8,118 +contourpy/util/__pycache__/__init__.cpython-311.pyc,, +contourpy/util/__pycache__/_build_config.cpython-311.pyc,, +contourpy/util/__pycache__/bokeh_renderer.cpython-311.pyc,, +contourpy/util/__pycache__/bokeh_util.cpython-311.pyc,, +contourpy/util/__pycache__/data.cpython-311.pyc,, +contourpy/util/__pycache__/mpl_renderer.cpython-311.pyc,, +contourpy/util/__pycache__/mpl_util.cpython-311.pyc,, +contourpy/util/__pycache__/renderer.cpython-311.pyc,, +contourpy/util/_build_config.py,sha256=ulIVL7Benm6u9u1em_DhNWSAjjYRU2T3-ZfVXubAZtI,1847 +contourpy/util/bokeh_renderer.py,sha256=vSQcq_3zIQWj1E8qoM2j3sI7XlBFJcam9axuhfZle4I,13836 +contourpy/util/bokeh_util.py,sha256=wc-S3ewBUYWyIkEv9jkhFySIergjLQl4Z0UEVnE0HhA,2804 +contourpy/util/data.py,sha256=-7SSGMLX_gN-1H2JzpNSEB_EcEF_uMtYdOo_ePRIcg8,2586 +contourpy/util/mpl_renderer.py,sha256=dhPhSMKwVuFneNGZuBIgXCp9YjffqHpUyPG5C-T-5tU,20092 +contourpy/util/mpl_util.py,sha256=0Jz5f-aA9XMWlpO2pDnHbkVgxIiw4SY_ysxf_gACWEo,3452 +contourpy/util/renderer.py,sha256=8CBHzPmVsFPfqsWxqrxGBhqFpJhVeFHFeDzVXAgT8Fc,5118 diff --git a/venv/lib/python3.11/site-packages/contourpy-1.3.3.dist-info/WHEEL b/venv/lib/python3.11/site-packages/contourpy-1.3.3.dist-info/WHEEL new file mode 100644 index 0000000..882a79b --- /dev/null +++ b/venv/lib/python3.11/site-packages/contourpy-1.3.3.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: meson +Root-Is-Purelib: false +Tag: cp311-cp311-manylinux_2_27_x86_64 +Tag: cp311-cp311-manylinux_2_28_x86_64 + diff --git a/venv/lib/python3.11/site-packages/cycler-0.12.1.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/cycler-0.12.1.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/cycler-0.12.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/cycler-0.12.1.dist-info/LICENSE b/venv/lib/python3.11/site-packages/cycler-0.12.1.dist-info/LICENSE new file mode 100644 index 0000000..d41d808 --- /dev/null +++ b/venv/lib/python3.11/site-packages/cycler-0.12.1.dist-info/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2015, matplotlib project +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the matplotlib project nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/venv/lib/python3.11/site-packages/cycler-0.12.1.dist-info/METADATA b/venv/lib/python3.11/site-packages/cycler-0.12.1.dist-info/METADATA new file mode 100644 index 0000000..e81ab4f --- /dev/null +++ b/venv/lib/python3.11/site-packages/cycler-0.12.1.dist-info/METADATA @@ -0,0 +1,78 @@ +Metadata-Version: 2.1 +Name: cycler +Version: 0.12.1 +Summary: Composable style cycles +Author-email: Thomas A Caswell +License: Copyright (c) 2015, matplotlib project + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name of the matplotlib project nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +Project-URL: homepage, https://matplotlib.org/cycler/ +Project-URL: repository, https://github.com/matplotlib/cycler +Keywords: cycle kwargs +Classifier: License :: OSI Approved :: BSD License +Classifier: Development Status :: 4 - Beta +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3 :: Only +Requires-Python: >=3.8 +Description-Content-Type: text/x-rst +License-File: LICENSE +Provides-Extra: docs +Requires-Dist: ipython ; extra == 'docs' +Requires-Dist: matplotlib ; extra == 'docs' +Requires-Dist: numpydoc ; extra == 'docs' +Requires-Dist: sphinx ; extra == 'docs' +Provides-Extra: tests +Requires-Dist: pytest ; extra == 'tests' +Requires-Dist: pytest-cov ; extra == 'tests' +Requires-Dist: pytest-xdist ; extra == 'tests' + +|PyPi|_ |Conda|_ |Supported Python versions|_ |GitHub Actions|_ |Codecov|_ + +.. |PyPi| image:: https://img.shields.io/pypi/v/cycler.svg?style=flat +.. _PyPi: https://pypi.python.org/pypi/cycler + +.. |Conda| image:: https://img.shields.io/conda/v/conda-forge/cycler +.. _Conda: https://anaconda.org/conda-forge/cycler + +.. |Supported Python versions| image:: https://img.shields.io/pypi/pyversions/cycler.svg +.. _Supported Python versions: https://pypi.python.org/pypi/cycler + +.. |GitHub Actions| image:: https://github.com/matplotlib/cycler/actions/workflows/tests.yml/badge.svg +.. _GitHub Actions: https://github.com/matplotlib/cycler/actions + +.. |Codecov| image:: https://codecov.io/github/matplotlib/cycler/badge.svg?branch=main&service=github +.. _Codecov: https://codecov.io/github/matplotlib/cycler?branch=main + +cycler: composable cycles +========================= + +Docs: https://matplotlib.org/cycler/ diff --git a/venv/lib/python3.11/site-packages/cycler-0.12.1.dist-info/RECORD b/venv/lib/python3.11/site-packages/cycler-0.12.1.dist-info/RECORD new file mode 100644 index 0000000..f4f9f7d --- /dev/null +++ b/venv/lib/python3.11/site-packages/cycler-0.12.1.dist-info/RECORD @@ -0,0 +1,9 @@ +cycler-0.12.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +cycler-0.12.1.dist-info/LICENSE,sha256=8SGBQ9dm2j_qZvEzlrfxXfRqgzA_Kb-Wum6Y601C9Ag,1497 +cycler-0.12.1.dist-info/METADATA,sha256=IyieGbdvHgE5Qidpbmryts0c556JcxIJv5GVFIsY7TY,3779 +cycler-0.12.1.dist-info/RECORD,, +cycler-0.12.1.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92 +cycler-0.12.1.dist-info/top_level.txt,sha256=D8BVVDdAAelLb2FOEz7lDpc6-AL21ylKPrMhtG6yzyE,7 +cycler/__init__.py,sha256=1JdRgv5Zzxo-W1ev7B_LWquysWP6LZH6CHk_COtIaXE,16709 +cycler/__pycache__/__init__.cpython-311.pyc,, +cycler/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/venv/lib/python3.11/site-packages/cycler-0.12.1.dist-info/WHEEL b/venv/lib/python3.11/site-packages/cycler-0.12.1.dist-info/WHEEL new file mode 100644 index 0000000..7e68873 --- /dev/null +++ b/venv/lib/python3.11/site-packages/cycler-0.12.1.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.41.2) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.11/site-packages/cycler-0.12.1.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/cycler-0.12.1.dist-info/top_level.txt new file mode 100644 index 0000000..2254644 --- /dev/null +++ b/venv/lib/python3.11/site-packages/cycler-0.12.1.dist-info/top_level.txt @@ -0,0 +1 @@ +cycler diff --git a/venv/lib/python3.11/site-packages/distutils-precedence.pth b/venv/lib/python3.11/site-packages/distutils-precedence.pth new file mode 100644 index 0000000..7f009fe --- /dev/null +++ b/venv/lib/python3.11/site-packages/distutils-precedence.pth @@ -0,0 +1 @@ +import os; var = 'SETUPTOOLS_USE_DISTUTILS'; enabled = os.environ.get(var, 'local') == 'local'; enabled and __import__('_distutils_hack').add_shim(); diff --git a/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/METADATA b/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/METADATA new file mode 100644 index 0000000..d288d27 --- /dev/null +++ b/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/METADATA @@ -0,0 +1,579 @@ +Metadata-Version: 2.4 +Name: fastapi +Version: 0.121.2 +Summary: FastAPI framework, high performance, easy to learn, fast to code, ready for production +Author-Email: =?utf-8?q?Sebasti=C3=A1n_Ram=C3=ADrez?= +License-Expression: MIT +License-File: LICENSE +Classifier: Intended Audience :: Information Technology +Classifier: Intended Audience :: System Administrators +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python +Classifier: Topic :: Internet +Classifier: Topic :: Software Development :: Libraries :: Application Frameworks +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: Software Development :: Libraries +Classifier: Topic :: Software Development +Classifier: Typing :: Typed +Classifier: Development Status :: 4 - Beta +Classifier: Environment :: Web Environment +Classifier: Framework :: AsyncIO +Classifier: Framework :: FastAPI +Classifier: Framework :: Pydantic +Classifier: Framework :: Pydantic :: 1 +Classifier: Framework :: Pydantic :: 2 +Classifier: Intended Audience :: Developers +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers +Classifier: Topic :: Internet :: WWW/HTTP +Project-URL: Homepage, https://github.com/fastapi/fastapi +Project-URL: Documentation, https://fastapi.tiangolo.com/ +Project-URL: Repository, https://github.com/fastapi/fastapi +Project-URL: Issues, https://github.com/fastapi/fastapi/issues +Project-URL: Changelog, https://fastapi.tiangolo.com/release-notes/ +Requires-Python: >=3.8 +Requires-Dist: starlette<0.50.0,>=0.40.0 +Requires-Dist: pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4 +Requires-Dist: typing-extensions>=4.8.0 +Requires-Dist: annotated-doc>=0.0.2 +Provides-Extra: standard +Requires-Dist: fastapi-cli[standard]>=0.0.8; extra == "standard" +Requires-Dist: httpx<1.0.0,>=0.23.0; extra == "standard" +Requires-Dist: jinja2>=3.1.5; extra == "standard" +Requires-Dist: python-multipart>=0.0.18; extra == "standard" +Requires-Dist: email-validator>=2.0.0; extra == "standard" +Requires-Dist: uvicorn[standard]>=0.12.0; extra == "standard" +Provides-Extra: standard-no-fastapi-cloud-cli +Requires-Dist: fastapi-cli[standard-no-fastapi-cloud-cli]>=0.0.8; extra == "standard-no-fastapi-cloud-cli" +Requires-Dist: httpx<1.0.0,>=0.23.0; extra == "standard-no-fastapi-cloud-cli" +Requires-Dist: jinja2>=3.1.5; extra == "standard-no-fastapi-cloud-cli" +Requires-Dist: python-multipart>=0.0.18; extra == "standard-no-fastapi-cloud-cli" +Requires-Dist: email-validator>=2.0.0; extra == "standard-no-fastapi-cloud-cli" +Requires-Dist: uvicorn[standard]>=0.12.0; extra == "standard-no-fastapi-cloud-cli" +Provides-Extra: all +Requires-Dist: fastapi-cli[standard]>=0.0.8; extra == "all" +Requires-Dist: httpx<1.0.0,>=0.23.0; extra == "all" +Requires-Dist: jinja2>=3.1.5; extra == "all" +Requires-Dist: python-multipart>=0.0.18; extra == "all" +Requires-Dist: itsdangerous>=1.1.0; extra == "all" +Requires-Dist: pyyaml>=5.3.1; extra == "all" +Requires-Dist: ujson!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0,>=4.0.1; extra == "all" +Requires-Dist: orjson>=3.2.1; extra == "all" +Requires-Dist: email-validator>=2.0.0; extra == "all" +Requires-Dist: uvicorn[standard]>=0.12.0; extra == "all" +Requires-Dist: pydantic-settings>=2.0.0; extra == "all" +Requires-Dist: pydantic-extra-types>=2.0.0; extra == "all" +Description-Content-Type: text/markdown + +

+ FastAPI +

+

+ FastAPI framework, high performance, easy to learn, fast to code, ready for production +

+

+ + Test + + + Coverage + + + Package version + + + Supported Python versions + +

+ +--- + +**Documentation**: https://fastapi.tiangolo.com + +**Source Code**: https://github.com/fastapi/fastapi + +--- + +FastAPI is a modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints. + +The key features are: + +* **Fast**: Very high performance, on par with **NodeJS** and **Go** (thanks to Starlette and Pydantic). [One of the fastest Python frameworks available](#performance). +* **Fast to code**: Increase the speed to develop features by about 200% to 300%. * +* **Fewer bugs**: Reduce about 40% of human (developer) induced errors. * +* **Intuitive**: Great editor support. Completion everywhere. Less time debugging. +* **Easy**: Designed to be easy to use and learn. Less time reading docs. +* **Short**: Minimize code duplication. Multiple features from each parameter declaration. Fewer bugs. +* **Robust**: Get production-ready code. With automatic interactive documentation. +* **Standards-based**: Based on (and fully compatible with) the open standards for APIs: OpenAPI (previously known as Swagger) and JSON Schema. + +* estimation based on tests on an internal development team, building production applications. + +## Sponsors + + + + + + + + + + + + + + + + + + + + + + + +Other sponsors + +## Opinions + +"_[...] I'm using **FastAPI** a ton these days. [...] I'm actually planning to use it for all of my team's **ML services at Microsoft**. Some of them are getting integrated into the core **Windows** product and some **Office** products._" + +
Kabir Khan - Microsoft (ref)
+ +--- + +"_We adopted the **FastAPI** library to spawn a **REST** server that can be queried to obtain **predictions**. [for Ludwig]_" + +
Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - Uber (ref)
+ +--- + +"_**Netflix** is pleased to announce the open-source release of our **crisis management** orchestration framework: **Dispatch**! [built with **FastAPI**]_" + +
Kevin Glisson, Marc Vilanova, Forest Monsen - Netflix (ref)
+ +--- + +"_I’m over the moon excited about **FastAPI**. It’s so fun!_" + +
Brian Okken - Python Bytes podcast host (ref)
+ +--- + +"_Honestly, what you've built looks super solid and polished. In many ways, it's what I wanted **Hug** to be - it's really inspiring to see someone build that._" + +
Timothy Crosley - Hug creator (ref)
+ +--- + +"_If you're looking to learn one **modern framework** for building REST APIs, check out **FastAPI** [...] It's fast, easy to use and easy to learn [...]_" + +"_We've switched over to **FastAPI** for our **APIs** [...] I think you'll like it [...]_" + +
Ines Montani - Matthew Honnibal - Explosion AI founders - spaCy creators (ref) - (ref)
+ +--- + +"_If anyone is looking to build a production Python API, I would highly recommend **FastAPI**. It is **beautifully designed**, **simple to use** and **highly scalable**, it has become a **key component** in our API first development strategy and is driving many automations and services such as our Virtual TAC Engineer._" + +
Deon Pillsbury - Cisco (ref)
+ +--- + +## **Typer**, the FastAPI of CLIs + + + +If you are building a CLI app to be used in the terminal instead of a web API, check out **Typer**. + +**Typer** is FastAPI's little sibling. And it's intended to be the **FastAPI of CLIs**. ⌨️ 🚀 + +## Requirements + +FastAPI stands on the shoulders of giants: + +* Starlette for the web parts. +* Pydantic for the data parts. + +## Installation + +Create and activate a virtual environment and then install FastAPI: + +
+ +```console +$ pip install "fastapi[standard]" + +---> 100% +``` + +
+ +**Note**: Make sure you put `"fastapi[standard]"` in quotes to ensure it works in all terminals. + +## Example + +### Create it + +Create a file `main.py` with: + +```Python +from typing import Union + +from fastapi import FastAPI + +app = FastAPI() + + +@app.get("/") +def read_root(): + return {"Hello": "World"} + + +@app.get("/items/{item_id}") +def read_item(item_id: int, q: Union[str, None] = None): + return {"item_id": item_id, "q": q} +``` + +
+Or use async def... + +If your code uses `async` / `await`, use `async def`: + +```Python hl_lines="9 14" +from typing import Union + +from fastapi import FastAPI + +app = FastAPI() + + +@app.get("/") +async def read_root(): + return {"Hello": "World"} + + +@app.get("/items/{item_id}") +async def read_item(item_id: int, q: Union[str, None] = None): + return {"item_id": item_id, "q": q} +``` + +**Note**: + +If you don't know, check the _"In a hurry?"_ section about `async` and `await` in the docs. + +
+ +### Run it + +Run the server with: + +
+ +```console +$ fastapi dev main.py + + ╭────────── FastAPI CLI - Development mode ───────────╮ + │ │ + │ Serving at: http://127.0.0.1:8000 │ + │ │ + │ API docs: http://127.0.0.1:8000/docs │ + │ │ + │ Running in development mode, for production use: │ + │ │ + │ fastapi run │ + │ │ + ╰─────────────────────────────────────────────────────╯ + +INFO: Will watch for changes in these directories: ['/home/user/code/awesomeapp'] +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +INFO: Started reloader process [2248755] using WatchFiles +INFO: Started server process [2248757] +INFO: Waiting for application startup. +INFO: Application startup complete. +``` + +
+ +
+About the command fastapi dev main.py... + +The command `fastapi dev` reads your `main.py` file, detects the **FastAPI** app in it, and starts a server using Uvicorn. + +By default, `fastapi dev` will start with auto-reload enabled for local development. + +You can read more about it in the FastAPI CLI docs. + +
+ +### Check it + +Open your browser at http://127.0.0.1:8000/items/5?q=somequery. + +You will see the JSON response as: + +```JSON +{"item_id": 5, "q": "somequery"} +``` + +You already created an API that: + +* Receives HTTP requests in the _paths_ `/` and `/items/{item_id}`. +* Both _paths_ take `GET` operations (also known as HTTP _methods_). +* The _path_ `/items/{item_id}` has a _path parameter_ `item_id` that should be an `int`. +* The _path_ `/items/{item_id}` has an optional `str` _query parameter_ `q`. + +### Interactive API docs + +Now go to http://127.0.0.1:8000/docs. + +You will see the automatic interactive API documentation (provided by Swagger UI): + +![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png) + +### Alternative API docs + +And now, go to http://127.0.0.1:8000/redoc. + +You will see the alternative automatic documentation (provided by ReDoc): + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png) + +## Example upgrade + +Now modify the file `main.py` to receive a body from a `PUT` request. + +Declare the body using standard Python types, thanks to Pydantic. + +```Python hl_lines="4 9-12 25-27" +from typing import Union + +from fastapi import FastAPI +from pydantic import BaseModel + +app = FastAPI() + + +class Item(BaseModel): + name: str + price: float + is_offer: Union[bool, None] = None + + +@app.get("/") +def read_root(): + return {"Hello": "World"} + + +@app.get("/items/{item_id}") +def read_item(item_id: int, q: Union[str, None] = None): + return {"item_id": item_id, "q": q} + + +@app.put("/items/{item_id}") +def update_item(item_id: int, item: Item): + return {"item_name": item.name, "item_id": item_id} +``` + +The `fastapi dev` server should reload automatically. + +### Interactive API docs upgrade + +Now go to http://127.0.0.1:8000/docs. + +* The interactive API documentation will be automatically updated, including the new body: + +![Swagger UI](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png) + +* Click on the button "Try it out", it allows you to fill the parameters and directly interact with the API: + +![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-04-swagger-03.png) + +* Then click on the "Execute" button, the user interface will communicate with your API, send the parameters, get the results and show them on the screen: + +![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-05-swagger-04.png) + +### Alternative API docs upgrade + +And now, go to http://127.0.0.1:8000/redoc. + +* The alternative documentation will also reflect the new query parameter and body: + +![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png) + +### Recap + +In summary, you declare **once** the types of parameters, body, etc. as function parameters. + +You do that with standard modern Python types. + +You don't have to learn a new syntax, the methods or classes of a specific library, etc. + +Just standard **Python**. + +For example, for an `int`: + +```Python +item_id: int +``` + +or for a more complex `Item` model: + +```Python +item: Item +``` + +...and with that single declaration you get: + +* Editor support, including: + * Completion. + * Type checks. +* Validation of data: + * Automatic and clear errors when the data is invalid. + * Validation even for deeply nested JSON objects. +* Conversion of input data: coming from the network to Python data and types. Reading from: + * JSON. + * Path parameters. + * Query parameters. + * Cookies. + * Headers. + * Forms. + * Files. +* Conversion of output data: converting from Python data and types to network data (as JSON): + * Convert Python types (`str`, `int`, `float`, `bool`, `list`, etc). + * `datetime` objects. + * `UUID` objects. + * Database models. + * ...and many more. +* Automatic interactive API documentation, including 2 alternative user interfaces: + * Swagger UI. + * ReDoc. + +--- + +Coming back to the previous code example, **FastAPI** will: + +* Validate that there is an `item_id` in the path for `GET` and `PUT` requests. +* Validate that the `item_id` is of type `int` for `GET` and `PUT` requests. + * If it is not, the client will see a useful, clear error. +* Check if there is an optional query parameter named `q` (as in `http://127.0.0.1:8000/items/foo?q=somequery`) for `GET` requests. + * As the `q` parameter is declared with `= None`, it is optional. + * Without the `None` it would be required (as is the body in the case with `PUT`). +* For `PUT` requests to `/items/{item_id}`, read the body as JSON: + * Check that it has a required attribute `name` that should be a `str`. + * Check that it has a required attribute `price` that has to be a `float`. + * Check that it has an optional attribute `is_offer`, that should be a `bool`, if present. + * All this would also work for deeply nested JSON objects. +* Convert from and to JSON automatically. +* Document everything with OpenAPI, that can be used by: + * Interactive documentation systems. + * Automatic client code generation systems, for many languages. +* Provide 2 interactive documentation web interfaces directly. + +--- + +We just scratched the surface, but you already get the idea of how it all works. + +Try changing the line with: + +```Python + return {"item_name": item.name, "item_id": item_id} +``` + +...from: + +```Python + ... "item_name": item.name ... +``` + +...to: + +```Python + ... "item_price": item.price ... +``` + +...and see how your editor will auto-complete the attributes and know their types: + +![editor support](https://fastapi.tiangolo.com/img/vscode-completion.png) + +For a more complete example including more features, see the Tutorial - User Guide. + +**Spoiler alert**: the tutorial - user guide includes: + +* Declaration of **parameters** from other different places as: **headers**, **cookies**, **form fields** and **files**. +* How to set **validation constraints** as `maximum_length` or `regex`. +* A very powerful and easy to use **Dependency Injection** system. +* Security and authentication, including support for **OAuth2** with **JWT tokens** and **HTTP Basic** auth. +* More advanced (but equally easy) techniques for declaring **deeply nested JSON models** (thanks to Pydantic). +* **GraphQL** integration with Strawberry and other libraries. +* Many extra features (thanks to Starlette) as: + * **WebSockets** + * extremely easy tests based on HTTPX and `pytest` + * **CORS** + * **Cookie Sessions** + * ...and more. + +## Performance + +Independent TechEmpower benchmarks show **FastAPI** applications running under Uvicorn as one of the fastest Python frameworks available, only below Starlette and Uvicorn themselves (used internally by FastAPI). (*) + +To understand more about it, see the section Benchmarks. + +## Dependencies + +FastAPI depends on Pydantic and Starlette. + +### `standard` Dependencies + +When you install FastAPI with `pip install "fastapi[standard]"` it comes with the `standard` group of optional dependencies: + +Used by Pydantic: + +* email-validator - for email validation. + +Used by Starlette: + +* httpx - Required if you want to use the `TestClient`. +* jinja2 - Required if you want to use the default template configuration. +* python-multipart - Required if you want to support form "parsing", with `request.form()`. + +Used by FastAPI: + +* uvicorn - for the server that loads and serves your application. This includes `uvicorn[standard]`, which includes some dependencies (e.g. `uvloop`) needed for high performance serving. +* `fastapi-cli[standard]` - to provide the `fastapi` command. + * This includes `fastapi-cloud-cli`, which allows you to deploy your FastAPI application to FastAPI Cloud. + +### Without `standard` Dependencies + +If you don't want to include the `standard` optional dependencies, you can install with `pip install fastapi` instead of `pip install "fastapi[standard]"`. + +### Without `fastapi-cloud-cli` + +If you want to install FastAPI with the standard dependencies but without the `fastapi-cloud-cli`, you can install with `pip install "fastapi[standard-no-fastapi-cloud-cli]"`. + +### Additional Optional Dependencies + +There are some additional dependencies you might want to install. + +Additional optional Pydantic dependencies: + +* pydantic-settings - for settings management. +* pydantic-extra-types - for extra types to be used with Pydantic. + +Additional optional FastAPI dependencies: + +* orjson - Required if you want to use `ORJSONResponse`. +* ujson - Required if you want to use `UJSONResponse`. + +## License + +This project is licensed under the terms of the MIT license. diff --git a/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/RECORD b/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/RECORD new file mode 100644 index 0000000..6dd806a --- /dev/null +++ b/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/RECORD @@ -0,0 +1,113 @@ +../../../bin/fastapi,sha256=gh88EPosgHkrx6fsGaHwy3xism2XWS8-f-dQSXXNdwo,247 +fastapi-0.121.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +fastapi-0.121.2.dist-info/METADATA,sha256=w6JpOSo_BDqENpgmOpTXa_-CmN2QK3wn7k0tmv5NrR8,28394 +fastapi-0.121.2.dist-info/RECORD,, +fastapi-0.121.2.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +fastapi-0.121.2.dist-info/WHEEL,sha256=tsUv_t7BDeJeRHaSrczbGeuK-TtDpGsWi_JfpzD255I,90 +fastapi-0.121.2.dist-info/entry_points.txt,sha256=GCf-WbIZxyGT4MUmrPGj1cOHYZoGsNPHAvNkT6hnGeA,61 +fastapi-0.121.2.dist-info/licenses/LICENSE,sha256=Tsif_IFIW5f-xYSy1KlhAy7v_oNEU4lP2cEnSQbMdE4,1086 +fastapi/__init__.py,sha256=P99SJ9inH-xISLoh5Bo4Ux8rqjJ7UOzXFXwW_xYJwwM,1081 +fastapi/__main__.py,sha256=bKePXLdO4SsVSM6r9SVoLickJDcR2c0cTOxZRKq26YQ,37 +fastapi/__pycache__/__init__.cpython-311.pyc,, +fastapi/__pycache__/__main__.cpython-311.pyc,, +fastapi/__pycache__/applications.cpython-311.pyc,, +fastapi/__pycache__/background.cpython-311.pyc,, +fastapi/__pycache__/cli.cpython-311.pyc,, +fastapi/__pycache__/concurrency.cpython-311.pyc,, +fastapi/__pycache__/datastructures.cpython-311.pyc,, +fastapi/__pycache__/encoders.cpython-311.pyc,, +fastapi/__pycache__/exception_handlers.cpython-311.pyc,, +fastapi/__pycache__/exceptions.cpython-311.pyc,, +fastapi/__pycache__/logger.cpython-311.pyc,, +fastapi/__pycache__/param_functions.cpython-311.pyc,, +fastapi/__pycache__/params.cpython-311.pyc,, +fastapi/__pycache__/requests.cpython-311.pyc,, +fastapi/__pycache__/responses.cpython-311.pyc,, +fastapi/__pycache__/routing.cpython-311.pyc,, +fastapi/__pycache__/staticfiles.cpython-311.pyc,, +fastapi/__pycache__/temp_pydantic_v1_params.cpython-311.pyc,, +fastapi/__pycache__/templating.cpython-311.pyc,, +fastapi/__pycache__/testclient.cpython-311.pyc,, +fastapi/__pycache__/types.cpython-311.pyc,, +fastapi/__pycache__/utils.cpython-311.pyc,, +fastapi/__pycache__/websockets.cpython-311.pyc,, +fastapi/_compat/__init__.py,sha256=8fa5XmM6_whr6YWuCs7KDdKR_gZ_AMmaxYW7GDn0eng,2718 +fastapi/_compat/__pycache__/__init__.cpython-311.pyc,, +fastapi/_compat/__pycache__/main.cpython-311.pyc,, +fastapi/_compat/__pycache__/may_v1.cpython-311.pyc,, +fastapi/_compat/__pycache__/model_field.cpython-311.pyc,, +fastapi/_compat/__pycache__/shared.cpython-311.pyc,, +fastapi/_compat/__pycache__/v1.cpython-311.pyc,, +fastapi/_compat/__pycache__/v2.cpython-311.pyc,, +fastapi/_compat/main.py,sha256=WDixlh9_5nfFuwWvbYQJNi8l5nDZdfbl2nMyTriG65c,10978 +fastapi/_compat/may_v1.py,sha256=uiZpZTEVHBlD_Q3WYUW_BNW24X3yk_OwvHhCgPwTUco,2979 +fastapi/_compat/model_field.py,sha256=SrSoXEcloGXKAqjR8UDW2869RPgLRFdWTuVgTBhX_Gw,1190 +fastapi/_compat/shared.py,sha256=KPOKDRBmM4mzGLdRZwDyrTIph6Eud9Vb2vil1dxNdV0,7030 +fastapi/_compat/v1.py,sha256=v_YLzo8uyr0HeA7QxNbgaSb332kCcBK9-9PZmOHGkq8,10325 +fastapi/_compat/v2.py,sha256=w9NLgyL3eF-7UKuFLGYfEkK6IUUAz3VkWe7cFgHwwns,16597 +fastapi/applications.py,sha256=LMSC56YSekA9_D8LwIkPSJxAEAqltWjTJg9PU0GO6fc,180303 +fastapi/background.py,sha256=YWxNdBckdgMLJlwJJT2sR5NJpkVXQVdbYuuyj8zUYsk,1793 +fastapi/cli.py,sha256=OYhZb0NR_deuT5ofyPF2NoNBzZDNOP8Salef2nk-HqA,418 +fastapi/concurrency.py,sha256=MirfowoSpkMQZ8j_g0ZxaQKpV6eB3G-dB5TgcXCrgEA,1424 +fastapi/datastructures.py,sha256=VnWKzzE1EW7KLOTRNWeEqlIoJQASCfgdKOOu5EM3H9A,5813 +fastapi/dependencies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +fastapi/dependencies/__pycache__/__init__.cpython-311.pyc,, +fastapi/dependencies/__pycache__/models.cpython-311.pyc,, +fastapi/dependencies/__pycache__/utils.cpython-311.pyc,, +fastapi/dependencies/models.py,sha256=GFbQawJ92i0HMQ5DqL0i4p7aqRCSYK3mcb5ZtkLYiIg,3004 +fastapi/dependencies/utils.py,sha256=tT6qy1GmhINij3WcIcJ_62vYVcYQSj8fPhw1m3aXAxs,38592 +fastapi/encoders.py,sha256=KAMFJ0sz0FFl0Pg4sUiXiuq94av3mLdLZnzeYp9f4wM,11343 +fastapi/exception_handlers.py,sha256=YVcT8Zy021VYYeecgdyh5YEUjEIHKcLspbkSf4OfbJI,1275 +fastapi/exceptions.py,sha256=JXhpWMMbNwcjQq3nVe3Czj-nOZU1Mcbu1EWpuK75lwA,5156 +fastapi/logger.py,sha256=I9NNi3ov8AcqbsbC9wl1X-hdItKgYt2XTrx1f99Zpl4,54 +fastapi/middleware/__init__.py,sha256=oQDxiFVcc1fYJUOIFvphnK7pTT5kktmfL32QXpBFvvo,58 +fastapi/middleware/__pycache__/__init__.cpython-311.pyc,, +fastapi/middleware/__pycache__/asyncexitstack.cpython-311.pyc,, +fastapi/middleware/__pycache__/cors.cpython-311.pyc,, +fastapi/middleware/__pycache__/gzip.cpython-311.pyc,, +fastapi/middleware/__pycache__/httpsredirect.cpython-311.pyc,, +fastapi/middleware/__pycache__/trustedhost.cpython-311.pyc,, +fastapi/middleware/__pycache__/wsgi.cpython-311.pyc,, +fastapi/middleware/asyncexitstack.py,sha256=RKGlQpGzg3GLosqVhrxBy_NCZ9qJS7zQeNHt5Y3x-00,637 +fastapi/middleware/cors.py,sha256=ynwjWQZoc_vbhzZ3_ZXceoaSrslHFHPdoM52rXr0WUU,79 +fastapi/middleware/gzip.py,sha256=xM5PcsH8QlAimZw4VDvcmTnqQamslThsfe3CVN2voa0,79 +fastapi/middleware/httpsredirect.py,sha256=rL8eXMnmLijwVkH7_400zHri1AekfeBd6D6qs8ix950,115 +fastapi/middleware/trustedhost.py,sha256=eE5XGRxGa7c5zPnMJDGp3BxaL25k5iVQlhnv-Pk0Pss,109 +fastapi/middleware/wsgi.py,sha256=Z3Ue-7wni4lUZMvH3G9ek__acgYdJstbnpZX_HQAboY,79 +fastapi/openapi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +fastapi/openapi/__pycache__/__init__.cpython-311.pyc,, +fastapi/openapi/__pycache__/constants.cpython-311.pyc,, +fastapi/openapi/__pycache__/docs.cpython-311.pyc,, +fastapi/openapi/__pycache__/models.cpython-311.pyc,, +fastapi/openapi/__pycache__/utils.cpython-311.pyc,, +fastapi/openapi/constants.py,sha256=adGzmis1L1HJRTE3kJ5fmHS_Noq6tIY6pWv_SFzoFDU,153 +fastapi/openapi/docs.py,sha256=9Rypo8GU5gdp2S7SsoyIZSVGp5e3T2T1KTtJBYTCnRs,10370 +fastapi/openapi/models.py,sha256=m1BNHxf_RiDTK1uCfMre6XZN5y7krZNA62QEP_2EV9s,15625 +fastapi/openapi/utils.py,sha256=2DkhvMHoHLI58vK4vai_7v9WZ3R5RMB6dGDIAx3snGo,23255 +fastapi/param_functions.py,sha256=DxMaQdIlHOHM-zIyDPhcRvuBm1KLBjdU1IjrsOHG5Lc,65141 +fastapi/params.py,sha256=PxpPdNwPngPcySKzJLwbs-IigT6b_XvJgiZUhvxD88g,27948 +fastapi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +fastapi/requests.py,sha256=zayepKFcienBllv3snmWI20Gk0oHNVLU4DDhqXBb4LU,142 +fastapi/responses.py,sha256=QNQQlwpKhQoIPZTTWkpc9d_QGeGZ_aVQPaDV3nQ8m7c,1761 +fastapi/routing.py,sha256=d9h-Kk0iIqp4mhoFj1tw2LXGsaQ7BV5PtPTTq71w4rw,178778 +fastapi/security/__init__.py,sha256=bO8pNmxqVRXUjfl2mOKiVZLn0FpBQ61VUYVjmppnbJw,881 +fastapi/security/__pycache__/__init__.cpython-311.pyc,, +fastapi/security/__pycache__/api_key.cpython-311.pyc,, +fastapi/security/__pycache__/base.cpython-311.pyc,, +fastapi/security/__pycache__/http.cpython-311.pyc,, +fastapi/security/__pycache__/oauth2.cpython-311.pyc,, +fastapi/security/__pycache__/open_id_connect_url.cpython-311.pyc,, +fastapi/security/__pycache__/utils.cpython-311.pyc,, +fastapi/security/api_key.py,sha256=Bgldi9_cdw6vyoD51dwq_gqJfRG7e1MzIk6nqHaotKc,9041 +fastapi/security/base.py,sha256=dl4pvbC-RxjfbWgPtCWd8MVU-7CB2SZ22rJDXVCXO6c,141 +fastapi/security/http.py,sha256=c4sNFE993EWGYYft_KNmGniakboP61a-nwl8POoftBg,13631 +fastapi/security/oauth2.py,sha256=GnLj23CZpo-c9y3f3PZv3hOqMXtzjuv88_BZOrjO-To,22061 +fastapi/security/open_id_connect_url.py,sha256=LZCVexVMksVj_7VUOAIddp68vpAZtqn8CJPRovIWSPs,2747 +fastapi/security/utils.py,sha256=bd8T0YM7UQD5ATKucr1bNtAvz_Y3__dVNAv5UebiPvc,293 +fastapi/staticfiles.py,sha256=iirGIt3sdY2QZXd36ijs3Cj-T0FuGFda3cd90kM9Ikw,69 +fastapi/temp_pydantic_v1_params.py,sha256=c9uTBAryfdbgEmAiuJ9BmnmFzYiFZK52z3dDKX4PSRY,26530 +fastapi/templating.py,sha256=4zsuTWgcjcEainMJFAlW6-gnslm6AgOS1SiiDWfmQxk,76 +fastapi/testclient.py,sha256=nBvaAmX66YldReJNZXPOk1sfuo2Q6hs8bOvIaCep6LQ,66 +fastapi/types.py,sha256=Y-TgF0Sy5Q6A8q7Ywjts5sysyZrzuG8Ba5OyFCiY3zg,479 +fastapi/utils.py,sha256=Nedm_1OJnL12uHJ85HTPCO-AHfwxCtXObFpBi_0X4xQ,9010 +fastapi/websockets.py,sha256=419uncYObEKZG0YcrXscfQQYLSWoE10jqxVMetGdR98,222 diff --git a/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/WHEEL b/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/WHEEL new file mode 100644 index 0000000..2efd4ed --- /dev/null +++ b/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: pdm-backend (2.4.6) +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/entry_points.txt b/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/entry_points.txt new file mode 100644 index 0000000..b81849e --- /dev/null +++ b/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/entry_points.txt @@ -0,0 +1,5 @@ +[console_scripts] +fastapi = fastapi.cli:main + +[gui_scripts] + diff --git a/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/licenses/LICENSE new file mode 100644 index 0000000..3e92463 --- /dev/null +++ b/venv/lib/python3.11/site-packages/fastapi-0.121.2.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Sebastián Ramírez + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/METADATA b/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/METADATA new file mode 100644 index 0000000..5a5dff2 --- /dev/null +++ b/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/METADATA @@ -0,0 +1,2228 @@ +Metadata-Version: 2.4 +Name: fonttools +Version: 4.60.1 +Summary: Tools to manipulate font files +Home-page: http://github.com/fonttools/fonttools +Author: Just van Rossum +Author-email: just@letterror.com +Maintainer: Behdad Esfahbod +Maintainer-email: behdad@behdad.org +License: MIT +Platform: Any +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Console +Classifier: Environment :: Other Environment +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: End Users/Desktop +Classifier: Natural Language :: English +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3 +Classifier: Topic :: Text Processing :: Fonts +Classifier: Topic :: Multimedia :: Graphics +Classifier: Topic :: Multimedia :: Graphics :: Graphics Conversion +Requires-Python: >=3.9 +Description-Content-Type: text/x-rst +License-File: LICENSE +License-File: LICENSE.external +Provides-Extra: ufo +Provides-Extra: lxml +Requires-Dist: lxml>=4.0; extra == "lxml" +Provides-Extra: woff +Requires-Dist: brotli>=1.0.1; platform_python_implementation == "CPython" and extra == "woff" +Requires-Dist: brotlicffi>=0.8.0; platform_python_implementation != "CPython" and extra == "woff" +Requires-Dist: zopfli>=0.1.4; extra == "woff" +Provides-Extra: unicode +Requires-Dist: unicodedata2>=15.1.0; python_version <= "3.12" and extra == "unicode" +Provides-Extra: graphite +Requires-Dist: lz4>=1.7.4.2; extra == "graphite" +Provides-Extra: interpolatable +Requires-Dist: scipy; platform_python_implementation != "PyPy" and extra == "interpolatable" +Requires-Dist: munkres; platform_python_implementation == "PyPy" and extra == "interpolatable" +Requires-Dist: pycairo; extra == "interpolatable" +Provides-Extra: plot +Requires-Dist: matplotlib; extra == "plot" +Provides-Extra: symfont +Requires-Dist: sympy; extra == "symfont" +Provides-Extra: type1 +Requires-Dist: xattr; sys_platform == "darwin" and extra == "type1" +Provides-Extra: pathops +Requires-Dist: skia-pathops>=0.5.0; extra == "pathops" +Provides-Extra: repacker +Requires-Dist: uharfbuzz>=0.23.0; extra == "repacker" +Provides-Extra: all +Requires-Dist: lxml>=4.0; extra == "all" +Requires-Dist: brotli>=1.0.1; platform_python_implementation == "CPython" and extra == "all" +Requires-Dist: brotlicffi>=0.8.0; platform_python_implementation != "CPython" and extra == "all" +Requires-Dist: zopfli>=0.1.4; extra == "all" +Requires-Dist: unicodedata2>=15.1.0; python_version <= "3.12" and extra == "all" +Requires-Dist: lz4>=1.7.4.2; extra == "all" +Requires-Dist: scipy; platform_python_implementation != "PyPy" and extra == "all" +Requires-Dist: munkres; platform_python_implementation == "PyPy" and extra == "all" +Requires-Dist: pycairo; extra == "all" +Requires-Dist: matplotlib; extra == "all" +Requires-Dist: sympy; extra == "all" +Requires-Dist: xattr; sys_platform == "darwin" and extra == "all" +Requires-Dist: skia-pathops>=0.5.0; extra == "all" +Requires-Dist: uharfbuzz>=0.23.0; extra == "all" +Dynamic: author +Dynamic: author-email +Dynamic: classifier +Dynamic: description +Dynamic: description-content-type +Dynamic: home-page +Dynamic: license +Dynamic: license-file +Dynamic: maintainer +Dynamic: maintainer-email +Dynamic: platform +Dynamic: provides-extra +Dynamic: requires-python +Dynamic: summary + +|CI Build Status| |Coverage Status| |PyPI| |Gitter Chat| + +What is this? +~~~~~~~~~~~~~ + +| fontTools is a library for manipulating fonts, written in Python. The + project includes the TTX tool, that can convert TrueType and OpenType + fonts to and from an XML text format, which is also called TTX. It + supports TrueType, OpenType, AFM and to an extent Type 1 and some + Mac-specific formats. The project has an `MIT open-source + license `__. +| Among other things this means you can use it free of charge. + +`User documentation `_ and +`developer documentation `_ +are available at `Read the Docs `_. + +Installation +~~~~~~~~~~~~ + +FontTools requires `Python `__ 3.9 +or later. We try to follow the same schedule of minimum Python version support as +NumPy (see `NEP 29 `__). + +The package is listed in the Python Package Index (PyPI), so you can +install it with `pip `__: + +.. code:: sh + + pip install fonttools + +If you would like to contribute to its development, you can clone the +repository from GitHub, install the package in 'editable' mode and +modify the source code in place. We recommend creating a virtual +environment, using `virtualenv `__ or +Python 3 `venv `__ module. + +.. code:: sh + + # download the source code to 'fonttools' folder + git clone https://github.com/fonttools/fonttools.git + cd fonttools + + # create new virtual environment called e.g. 'fonttools-venv', or anything you like + python -m virtualenv fonttools-venv + + # source the `activate` shell script to enter the environment (Unix-like); to exit, just type `deactivate` + . fonttools-venv/bin/activate + + # to activate the virtual environment in Windows `cmd.exe`, do + fonttools-venv\Scripts\activate.bat + + # install in 'editable' mode + pip install -e . + +Optional Requirements +--------------------- + +The ``fontTools`` package currently has no (required) external dependencies +besides the modules included in the Python Standard Library. +However, a few extra dependencies are required by some of its modules, which +are needed to unlock optional features. +The ``fonttools`` PyPI distribution also supports so-called "extras", i.e. a +set of keywords that describe a group of additional dependencies, which can be +used when installing via pip, or when specifying a requirement. +For example: + +.. code:: sh + + pip install fonttools[ufo,lxml,woff,unicode] + +This command will install fonttools, as well as the optional dependencies that +are required to unlock the extra features named "ufo", etc. + +- ``Lib/fontTools/misc/etree.py`` + + The module exports a ElementTree-like API for reading/writing XML files, and + allows to use as the backend either the built-in ``xml.etree`` module or + `lxml `__. The latter is preferred whenever present, + as it is generally faster and more secure. + + *Extra:* ``lxml`` + +- ``Lib/fontTools/ttLib/woff2.py`` + + Module to compress/decompress WOFF 2.0 web fonts; it requires: + + * `brotli `__: Python bindings of + the Brotli compression library. + + *Extra:* ``woff`` + +- ``Lib/fontTools/ttLib/sfnt.py`` + + To better compress WOFF 1.0 web fonts, the following module can be used + instead of the built-in ``zlib`` library: + + * `zopfli `__: Python bindings of + the Zopfli compression library. + + *Extra:* ``woff`` + +- ``Lib/fontTools/unicode.py`` + + To display the Unicode character names when dumping the ``cmap`` table + with ``ttx`` we use the ``unicodedata`` module in the Standard Library. + The version included in there varies between different Python versions. + To use the latest available data, you can install: + + * `unicodedata2 `__: + ``unicodedata`` backport for Python 3.x updated to the latest Unicode + version 15.0. + + *Extra:* ``unicode`` + +- ``Lib/fontTools/varLib/interpolatable.py`` + + Module for finding wrong contour/component order between different masters. + It requires one of the following packages in order to solve the so-called + "minimum weight perfect matching problem in bipartite graphs", or + the Assignment problem: + + * `scipy `__: the Scientific Library + for Python, which internally uses `NumPy `__ + arrays and hence is very fast; + * `munkres `__: a pure-Python + module that implements the Hungarian or Kuhn-Munkres algorithm. Slower than + SciPy, but useful for minimalistic systems where adding SciPy is undesirable. + + This ensures both performance (via SciPy) and minimal footprint (via Munkres) + are possible. + + To plot the results to a PDF or HTML format, you also need to install: + + * `pycairo `__: Python bindings for the + Cairo graphics library. Note that wheels are currently only available for + Windows, for other platforms see pycairo's `installation instructions + `__. + + *Extra:* ``interpolatable`` + +- ``Lib/fontTools/varLib/plot.py`` + + Module for visualizing DesignSpaceDocument and resulting VariationModel. + + * `matplotlib `__: 2D plotting library. + + *Extra:* ``plot`` + +- ``Lib/fontTools/misc/symfont.py`` + + Advanced module for symbolic font statistics analysis; it requires: + + * `sympy `__: the Python library for + symbolic mathematics. + + *Extra:* ``symfont`` + +- ``Lib/fontTools/t1Lib.py`` + + To get the file creator and type of Macintosh PostScript Type 1 fonts + on Python 3 you need to install the following module, as the old ``MacOS`` + module is no longer included in Mac Python: + + * `xattr `__: Python wrapper for + extended filesystem attributes (macOS platform only). + + *Extra:* ``type1`` + +- ``Lib/fontTools/ttLib/removeOverlaps.py`` + + Simplify TrueType glyphs by merging overlapping contours and components. + + * `skia-pathops `__: Python + bindings for the Skia library's PathOps module, performing boolean + operations on paths (union, intersection, etc.). + + *Extra:* ``pathops`` + +- ``Lib/fontTools/ufoLib`` + + Package for reading and writing UFO source files; if available, it will use: + + * `fs `__: (aka ``pyfilesystem2``) filesystem abstraction layer + + for reading and writing UFOs to the local filesystem or zip files (.ufoz), instead of + the built-in ``fontTools.misc.filesystem`` package. + The reader and writer classes can in theory also accept any object compatible the + ``fs.base.FS`` interface, although not all have been tested. + +- ``Lib/fontTools/pens/cocoaPen.py`` and ``Lib/fontTools/pens/quartzPen.py`` + + Pens for drawing glyphs with Cocoa ``NSBezierPath`` or ``CGPath`` require: + + * `PyObjC `__: the bridge between + Python and the Objective-C runtime (macOS platform only). + +- ``Lib/fontTools/pens/qtPen.py`` + + Pen for drawing glyphs with Qt's ``QPainterPath``, requires: + + * `PyQt5 `__: Python bindings for + the Qt cross platform UI and application toolkit. + +- ``Lib/fontTools/pens/reportLabPen.py`` + + Pen to drawing glyphs as PNG images, requires: + + * `reportlab `__: Python toolkit + for generating PDFs and graphics. + +- ``Lib/fontTools/pens/freetypePen.py`` + + Pen to drawing glyphs with FreeType as raster images, requires: + + * `freetype-py `__: Python binding + for the FreeType library. + +- ``Lib/fontTools/ttLib/tables/otBase.py`` + + Use the Harfbuzz library to serialize GPOS/GSUB using ``hb_repack`` method, requires: + + * `uharfbuzz `__: Streamlined Cython + bindings for the harfbuzz shaping engine + + *Extra:* ``repacker`` + +How to make a new release +~~~~~~~~~~~~~~~~~~~~~~~~~ + +1) Update ``NEWS.rst`` with all the changes since the last release. Write a + changelog entry for each PR, with one or two short sentences summarizing it, + as well as links to the PR and relevant issues addressed by the PR. Do not + put a new title, the next command will do it for you. +2) Use semantic versioning to decide whether the new release will be a 'major', + 'minor' or 'patch' release. It's usually one of the latter two, depending on + whether new backward compatible APIs were added, or simply some bugs were fixed. +3) From inside a venv, first do ``pip install -r dev-requirements.txt``, then run + the ``python setup.py release`` command from the tip of the ``main`` branch. + By default this bumps the third or 'patch' digit only, unless you pass ``--major`` + or ``--minor`` to bump respectively the first or second digit. + This bumps the package version string, extracts the changes since the latest + version from ``NEWS.rst``, and uses that text to create an annotated git tag + (or a signed git tag if you pass the ``--sign`` option and your git and Github + account are configured for `signing commits `__ + using a GPG key). + It also commits an additional version bump which opens the main branch for + the subsequent developmental cycle +4) Push both the tag and commit to the upstream repository, by running the command + ``git push --follow-tags``. Note: it may push other local tags as well, be + careful. +5) Let the CI build the wheel and source distribution packages and verify both + get uploaded to the Python Package Index (PyPI). +6) [Optional] Go to fonttools `Github Releases `__ + page and create a new release, copy-pasting the content of the git tag + message. This way, the release notes are nicely formatted as markdown, and + users watching the repo will get an email notification. One day we shall + automate that too. + + +Acknowledgments +~~~~~~~~~~~~~~~~ + +In alphabetical order: + +aschmitz, Olivier Berten, Samyak Bhuta, Erik van Blokland, Petr van Blokland, +Jelle Bosma, Sascha Brawer, Tom Byrer, Antonio Cavedoni, Frédéric Coiffier, +Vincent Connare, David Corbett, Simon Cozens, Dave Crossland, Simon Daniels, +Peter Dekkers, Behdad Esfahbod, Behnam Esfahbod, Hannes Famira, Sam Fishman, +Matt Fontaine, Takaaki Fuji, Rob Hagemans, Yannis Haralambous, Greg Hitchcock, +Jeremie Hornus, Khaled Hosny, John Hudson, Denis Moyogo Jacquerye, Jack Jansen, +Tom Kacvinsky, Jens Kutilek, Antoine Leca, Werner Lemberg, Tal Leming, Liang Hai, Peter +Lofting, Cosimo Lupo, Olli Meier, Masaya Nakamura, Dave Opstad, Laurence Penney, +Roozbeh Pournader, Garret Rieger, Read Roberts, Colin Rofls, Guido van Rossum, +Just van Rossum, Andreas Seidel, Georg Seifert, Chris Simpkins, Miguel Sousa, +Adam Twardoch, Adrien Tétar, Vitaly Volkov, Paul Wise. + +Copyrights +~~~~~~~~~~ + +| Copyright (c) 1999-2004 Just van Rossum, LettError + (just@letterror.com) +| See `LICENSE `__ for the full license. + +Copyright (c) 2000 BeOpen.com. All Rights Reserved. + +Copyright (c) 1995-2001 Corporation for National Research Initiatives. +All Rights Reserved. + +Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All +Rights Reserved. + +Have fun! + +.. |CI Build Status| image:: https://github.com/fonttools/fonttools/workflows/Test/badge.svg + :target: https://github.com/fonttools/fonttools/actions?query=workflow%3ATest +.. |Coverage Status| image:: https://codecov.io/gh/fonttools/fonttools/branch/main/graph/badge.svg + :target: https://codecov.io/gh/fonttools/fonttools +.. |PyPI| image:: https://img.shields.io/pypi/v/fonttools.svg + :target: https://pypi.org/project/FontTools +.. |Gitter Chat| image:: https://badges.gitter.im/fonttools-dev/Lobby.svg + :alt: Join the chat at https://gitter.im/fonttools-dev/Lobby + :target: https://gitter.im/fonttools-dev/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge + +Changelog +~~~~~~~~~ + +4.60.1 (released 2025-09-29) +---------------------------- + +- [ufoLib] Reverted accidental method name change in ``UFOReader.getKerningGroupConversionRenameMaps`` + that broke compatibility with downstream projects like defcon (#3948, #3947, robotools/defcon#478). +- [ufoLib] Added test coverage for ``getKerningGroupConversionRenameMaps`` method (#3950). +- [subset] Don't try to subset BASE table; pass it through by default instead (#3949). +- [subset] Remove empty BaseRecord entries in MarkBasePos lookups (#3897, #3892). +- [subset] Add pruning for MarkLigPos and MarkMarkPos lookups (#3946). +- [subset] Remove duplicate features when subsetting (#3945). +- [Docs] Added documentation for the visitor module (#3944). + +4.60.0 (released 2025-09-17) +---------------------------- + +- [pointPen] Allow ``reverseFlipped`` parameter of ``DecomposingPointPen`` to take a ``ReverseFlipped`` + enum value to control whether/how to reverse contour direction of flipped components, in addition to + the existing True/False. This allows to set ``ReverseFlipped.ON_CURVE_FIRST`` to ensure that + the decomposed outline starts with an on-curve point before being reversed, for better consistency + with other segment-oriented contour transformations. The change is backward compatible, and the + default behavior hasn't changed (#3934). +- [filterPen] Added ``ContourFilterPointPen``, base pen for buffered contour operations, and + ``OnCurveStartPointPen`` filter to ensure contours start with an on-curve point (#3934). +- [cu2qu] Fixed difference in cython vs pure-python complex division by real number (#3930). +- [varLib.avar] Refactored and added some new sub-modules and scripts (#3926). + * ``varLib.avar.build`` module to build avar (and a missing fvar) binaries into a possibly empty TTFont, + * ``varLib.avar.unbuild`` module to print a .designspace snippet that would generate the same avar binary, + * ``varLib.avar.map`` module to take TTFont and do the mapping, in user/normalized space, + * ``varLib.avar.plan`` module moved from ``varLib.avarPlanner``. + The bare ``fonttools varLib.avar`` script is deprecated, in favour of ``fonttools varLib.avar.build`` (or ``unbuild``). +- [interpolatable] Clarify ``linear_sum_assignment`` backend options and minimal dependency + usage (#3927). +- [post] Speed up ``build_psNameMapping`` (#3923). +- [ufoLib] Added typing annotations to fontTools.ufoLib (#3875). + +4.59.2 (released 2025-08-27) +---------------------------- + +- [varLib] Clear ``USE_MY_METRICS`` component flags when inconsistent across masters (#3912). +- [varLib.instancer] Avoid negative advance width/height values when instatiating HVAR/VVAR, + (unlikely in well-behaved fonts) (#3918). +- [subset] Fix shaping behaviour when pruning empty mark sets (#3915, harfbuzz/harfbuzz#5499). +- [cu2qu] Fixed ``dot()`` product of perpendicular vectors not always returning exactly 0.0 + in all Python implementations (#3911) +- [varLib.instancer] Implemented fully-instantiating ``avar2`` fonts (#3909). +- [feaLib] Allow float values in ``VariableScalar``'s axis locations (#3906, #3907). +- [cu2qu] Handle special case in ``calc_intersect`` for degenerate cubic curves where 3 to 4 + control points are equal (#3904). + +4.59.1 (released 2025-08-14) +---------------------------- + +- [featureVars] Update OS/2.usMaxContext if possible after addFeatureVariationsRaw (#3894). +- [vhmtx] raise TTLibError('not enough data...') when hmtx/vmtx are truncated (#3843, #3901). +- [feaLib] Combine duplicate features that have the same set of lookups regardless of the order in which those lookups are added to the feature (#3895). +- [varLib] Deprecate ``varLib.mutator`` in favor of ``varLib.instancer``. The latter + provides equivalent full (static font) instancing in addition to partial VF instancing. + CLI users should replace ``fonttools varLib.mutator`` with ``fonttools varLib.instancer``. + API users should migrate to ``fontTools.varLib.instancer.instantiateVariableFont`` (#2680). + + +4.59.0 (released 2025-07-16) +---------------------------- + +- Removed hard-dependency on pyfilesystem2 (``fs`` package) from ``fonttools[ufo]`` extra. + This is replaced by the `fontTools.misc.filesystem` package, a stdlib-only, drop-in + replacement for the subset of the pyfilesystem2's API used by ``fontTools.ufoLib``. + The latter should continue to work with the upstream ``fs`` (we even test with/without). + Clients who wish to continue using ``fs`` can do so by depending on it directly instead + of via the ``fonttools[ufo]`` extra (#3885, #3620). +- [xmlWriter] Replace illegal XML characters (e.g. control or non-characters) with "?" + when dumping to ttx (#3868, #71). +- [varLib.hvar] Fixed vertical metrics fields copy/pasta error (#3884). +- Micro optimizations in ttLib and sstruct modules (#3878, #3879). +- [unicodedata] Add Garay script to RTL_SCRIPTS (#3882). +- [roundingPen] Remove unreliable kwarg usage. Argument names aren’t consistent among + point pens’ ``.addComponent()`` implementations, in particular ``baseGlyphName`` + vs ``glyphName`` (#3880). + +4.58.5 (released 2025-07-03) +---------------------------- + +- [feaLib] Don't try to combine ligature & multisub rules (#3874). +- [feaLib/ast] Use weakref proxies to avoid cycles in visitor (#3873). +- [varLib.instancer] Fixed instancing CFF2 fonts where VarData contains more than 64k items (#3858). + +4.58.4 (released 2025-06-13) +---------------------------- + +- [feaLib] Allow for empty MarkFilter & MarkAttach sets (#3856). + +4.58.3 (released 2025-06-13) +---------------------------- + +- [feaLib] Fixed iterable check for Python 3.13.4 and newer (#3854, #3855). + +4.58.2 (released 2025-06-06) +---------------------------- + +- [ttLib.reorderGlyphs] Handle CFF2 when reordering glyphs (#3852) +- [subset] Copy name IDs in use before scrapping or scrambling them for webfonts (#3853) + +4.58.1 (released 2025-05-28) +---------------------------- + +- [varLib] Make sure that fvar named instances only reuse name ID 2 or 17 if they are at the default location across all axes, to match OT spec requirement (#3831). +- [feaLib] Improve single substitution promotion to multiple/ligature substitutions, fixing a few bugs as well (#3849). +- [loggingTools] Make ``Timer._time`` a static method that doesn't take self, makes it easier to override (#3836). +- [featureVars] Use ``None`` for empty ConditionSet, which translates to a null offset in the compiled table (#3850). +- [feaLib] Raise an error on conflicting ligature substitution rules instead of silently taking the last one (#3835). +- Add typing annotations to T2CharStringPen (#3837). +- [feaLib] Add single substitutions that were promoted to multiple or ligature substitutions to ``aalt`` feature (#3847). +- [featureVars] Create a default ``LangSys`` in a ``ScriptRecord`` if missing when adding feature variations to existing GSUB later in the build (#3838). +- [symfont] Added a ``main()``. +- [cffLib.specializer] Fix rmoveto merging when blends used (#3839, #3840). +- [pyftmerge] Add support for cmap format 14 in the merge tool (#3830). +- [varLib.instancer/cff2] Fix vsindex of Private dicts when instantiating (#3828, #3232). +- Update text file read to use UTF-8 with optional BOM so it works with e.g. Windows Notepad.exe (#3824). +- [varLib] Ensure that instances only reuse name ID 2 or 17 if they are at the default location across all axes (#3831). +- [varLib] Create a dflt LangSys in a ScriptRecord when adding variations later, to fix an avoidable crash in an edge case (#3838). + +4.58.0 (released 2025-05-10) +---------------------------- + +- Drop Python 3.8, require 3.9+ (#3819) +- [HVAR, VVAR] Prune unused regions when using a direct mapping (#3797) +- [Docs] Improvements to ufoLib documentation (#3721) +- [Docs] Improvements to varLib documentation (#3727) +- [Docs] Improvements to Pens and pen-module documentation (#3724) +- [Docs] Miscellany updates to docs (misc modules and smaller modules) (#3730) +- [subset] Close codepoints over BiDi mirror variants. (#3801) +- [feaLib] Fix serializing ChainContextPosStatement and + ChainContextSubstStatement in some rare cases (#3788) +- [designspaceLib] Clarify user expectations for getStatNames (#2892) +- [GVAR] Add support for new `GVAR` table (#3728) +- [TSI0, TSI5] Derive number of entries to decompile from data length (#2477) +- [ttLib] Fix `AttributeError` when reporting table overflow (#3808) +- [ttLib] Apply rounding more often in getCoordinates (#3798) +- [ttLib] Ignore component bounds if empty (#3799) +- [ttLib] Change the separator for duplicate glyph names from "#" to "." (#3809) +- [feaLib] Support subtable breaks in CursivePos, MarkBasePos, MarkToLigPos and + MarkToMarkPos lookups (#3800, #3807) +- [feaLib] If the same lookup has single substitutions and ligature + substitutions, upgrade single substitutions to ligature substitutions with + one input glyph (#3805) +- [feaLib] Correctly handle in single pos lookups (#3803) +- [feaLib] Remove duplicates from class pair pos classes instead of raising an + error (#3804) +- [feaLib] Support creating extension lookups using useExtenion lookup flag + instead of silently ignoring it (#3811) +- [STAT] Add typing for the simpler STAT arguments (#3812) +- [otlLib.builder] Add future import for annotations (#3814) +- [cffLib] Fix reading supplement encoding (#3813) +- [voltLib] Add some missing functionality and fixes to voltLib and VoltToFea, + making the conversion to feature files more robust. Add also `fonttools + voltLib` command line tool to compile VOLT sources directly (doing an + intermediate fea conversion internally) (#3818) +- [pens] Add some PointPen annotations (#3820) + +4.57.0 (released 2025-04-03) +---------------------------- + +- [ttLib.__main__] Add `--no-recalc-timestamp` flag (#3771) +- [ttLib.__main__] Add `-b` (recalcBBoxes=False) flag (#3772) +- [cmap] Speed up glyphOrder loading from cmap (#3774) +- [ttLib.__main__] Improvements around the `-t` flag (#3776) +- [Debg] Fix parsing from XML; add roundtrip tests (#3781) +- [fealib] Support \*Base.MinMax tables (#3783, #3786) +- [config] Add OPTIMIZE_FONT_SPEED (#3784) +- [varLib.hvar] New module to add HVAR table to the font (#3780) +- [otlLib.optimize] Fix crash when the provided TTF does not contain a `GPOS` (#3794) + +4.56.0 (released 2025-02-07) +---------------------------- + +- [varStore] Sort the input todo list with the same sorting key used for the opimizer's output (#3767). +- [otData] Fix DeviceTable's ``DeltaValue`` repeat value which caused a crash after importing from XML and then compiling a GPOS containing Device tables (#3758). +- [feaLib] Make ``FeatureLibError`` pickleable, so client can e.g. use feaLib to can compile features in parallel with multiprocessing (#3762). +- [varLib/gvar] Removed workaround for old, long-fixed macOS bug about composite glyphs with all zero deltas (#1381, #1788). +- [Docs] Updated ttLib documentation, beefed up TTFont and TTGlyphSet explanations (#3720). + +4.55.8 (released 2025-01-29) +---------------------------- + +- [MetaTools] Fixed bug in buildUCD.py script whereby the first non-header line of some UCD text file was being skipped. This affected in particular the U+00B7 (MIDDLE DOT) entry of ScriptExtensions.txt (#3756). + +4.55.7 (released 2025-01-28) +---------------------------- + +- Shorten the changelog included in PyPI package description to accommodate maximum length limit imposed by Azure DevOps. No actual code changes since v4.55.6 (#3754). + +4.55.6 (released 2025-01-24) +---------------------------- + +- [glyf] Fixed regression introduced in 4.55.5 when computing bounds of nested composite glyphs with transformed components (#3752). + +4.55.5 (released 2025-01-23) +---------------------------- + +- [glyf] Fixed recalcBounds of transformed components with unrounded coordinates (#3750). +- [feaLib] Allow duplicate script/language statements (#3749). + +4.55.4 (released 2025-01-21) +---------------------------- + +- [bezierTools] Fixed ``splitCubicAtT`` sometimes not returning identical start/end points as result of numerical precision (#3742, #3743). +- [feaLib/ast] Fixed docstring of ``AlternateSubstStatement`` (#3735). +- [transform] Typing fixes (#3734). + +4.55.3 (released 2024-12-10) +---------------------------- + +- [Docs] fill out ttLib table section [#3716] +- [feaLib] More efficient inline format 4 lookups [#3726] + +4.55.2 (released 2024-12-05) +---------------------------- + +- [Docs] update Sphinx config (#3712) +- [designspaceLib] Allow axisOrdering to be set to zero (#3715) +- [feaLib] Don’t modify variable anchors in place (#3717) + +4.55.1 (released 2024-12-02) +---------------------------- + +- [ttGlyphSet] Support VARC CFF2 fonts (#3683) +- [DecomposedTransform] Document and implement always skewY == 0 (#3697) +- [varLib] "Fix" cython iup issue? (#3704) +- Cython minor refactor (#3705) + + +4.55.0 (released 2024-11-14) +---------------------------- + +- [cffLib.specializer] Adjust stack use calculation (#3689) +- [varLib] Lets not add mac names if the rest of name doesn't have them (#3688) +- [ttLib.reorderGlyphs] Update CFF table charstrings and charset (#3682) +- [cffLib.specializer] Add cmdline to specialize a CFF2 font (#3675, #3679) +- [CFF2] Lift uint16 VariationStore.length limitation (#3674) +- [subset] consider variation selectors subsetting cmap14 (#3672) +- [varLib.interpolatable] Support CFF2 fonts (#3670) +- Set isfinal to true in XML parser for proper resource cleanup (#3669) +- [removeOverlaps] Fix CFF CharString width (#3659) +- [glyf] Add optimizeSize option (#3657) +- Python 3.13 support (#3656) +- [TupleVariation] Optimize for loading speed, not size (#3650, #3653) + + +4.54.1 (released 2024-09-24) +---------------------------- + +- [unicodedata] Update to Unicode 16 +- [subset] Escape ``\\`` in doc string + +4.54.0 (released 2024-09-23) +---------------------------- + +- [Docs] Small docs cleanups by @n8willis (#3611) +- [Docs] cleanup code blocks by @n8willis (#3627) +- [Docs] fix Sphinx builds by @n8willis (#3625) +- [merge] Minor fixes to documentation for merge by @drj11 (#3588) +- [subset] Small tweaks to pyftsubset documentation by @RoelN (#3633) +- [Tests] Do not require fonttools command to be available by @behdad (#3612) +- [Tests] subset_test: add failing test to reproduce issue #3616 by @anthrotype (#3622) +- [ttLib] NameRecordVisitor: include whole sequence of character variants' UI labels, not just the first by @anthrotype (#3617) +- [varLib.avar] Reconstruct mappings from binary by @behdad (#3598) +- [varLib.instancer] Fix visual artefacts with partial L2 instancing by @Hoolean (#3635) +- [varLib.interpolatable] Support discrete axes in .designspace by @behdad (#3599) +- [varLib.models] By default, assume OpenType-like normalized space by @behdad (#3601) + +4.53.1 (released 2024-07-05) +---------------------------- + +- [feaLib] Improve the sharing of inline chained lookups (#3559) +- [otlLib] Correct the calculation of OS/2.usMaxContext with reversed chaining contextual single substitutions (#3569) +- [misc.visitor] Visitors search the inheritance chain of objects they are visiting (#3581) + +4.53.0 (released 2024-05-31) +---------------------------- + +- [ttLib.removeOverlaps] Support CFF table to aid in downconverting CFF2 fonts (#3528) +- [avar] Fix crash when accessing not-yet-existing attribute (#3550) +- [docs] Add buildMathTable to otlLib.builder documentation (#3540) +- [feaLib] Allow UTF-8 with BOM when reading features (#3495) +- [SVGPathPen] Revert rounding coordinates to two decimal places by default (#3543) +- [varLib.instancer] Refix output filename decision-making (#3545, #3544, #3548) + +4.52.4 (released 2024-05-27) +---------------------------- + +- [varLib.cff] Restore and deprecate convertCFFtoCFF2 that was removed in 4.52.0 + release as it is used by downstream projects (#3535). + +4.52.3 (released 2024-05-27) +---------------------------- + +- Fixed a small syntax error in the reStructuredText-formatted NEWS.rst file + which caused the upload to PyPI to fail for 4.52.2. No other code changes. + +4.52.2 (released 2024-05-27) +---------------------------- + +- [varLib.interpolatable] Ensure that scipy/numpy output is JSON-serializable + (#3522, #3526). +- [housekeeping] Regenerate table lists, to fix pyinstaller packaging of the new + ``VARC`` table (#3531, #3529). +- [cffLib] Make CFFToCFF2 and CFF2ToCFF more robust (#3521, #3525). + +4.52.1 (released 2024-05-24) +---------------------------- + +- Fixed a small syntax error in the reStructuredText-formatted NEWS.rst file + which caused the upload to PyPI to fail for 4.52.0. No other code changes. + +4.52.0 (released 2024-05-24) +---------------------------- + +- Added support for the new ``VARC`` (Variable Composite) table that is being + proposed to OpenType spec (#3395). For more info: + https://github.com/harfbuzz/boring-expansion-spec/blob/main/VARC.md +- [ttLib.__main__] Fixed decompiling all tables (90fed08). +- [feaLib] Don't reference the same lookup index multiple times within the same + feature record, it is only applied once anyway (#3520). +- [cffLib] Moved methods to desubroutinize, remove hints and unused subroutines + from subset module to cffLib (#3517). +- [varLib.instancer] Added support for partial-instancing CFF2 tables! Also, added + method to down-convert from CFF2 to CFF 1.0, and CLI entry points to convert + CFF<->CFF2 (#3506). +- [subset] Prune unused user name IDs even with --name-IDs='*' (#3410). +- [ttx] use GNU-style getopt to intermix options and positional arguments (#3509). +- [feaLib.variableScalar] Fixed ``value_at_location()`` method (#3491) +- [psCharStrings] Shorten output of ``encodeFloat`` (#3492). +- [bezierTools] Fix infinite-recursion in ``calcCubicArcLength`` (#3502). +- [avar2] Implement ``avar2`` support in ``TTFont.getGlyphSet()`` (#3473). + +4.51.0 (released 2024-04-05) +---------------------------- + +- [ttLib] Optimization on loading aux fields (#3464). +- [ttFont] Add reorderGlyphs (#3468). + +4.50.0 (released 2024-03-15) +---------------------------- + +- [pens] Added decomposing filter pens that draw components as regular contours (#3460). +- [instancer] Drop explicit no-op axes from TupleVariations (#3457). +- [cu2qu/ufo] Return set of modified glyph names from fonts_to_quadratic (#3456). + +4.49.0 (released 2024-02-15) +---------------------------- + +- [otlLib] Add API for building ``MATH`` table (#3446) + +4.48.1 (released 2024-02-06) +---------------------------- + +- Fixed uploading wheels to PyPI, no code changes since v4.48.0. + +4.48.0 (released 2024-02-06) +---------------------------- + +- [varLib] Do not log when there are no OTL tables to be merged. +- [setup.py] Do not restrict lxml<5 any more, tests pass just fine with lxml>=5. +- [feaLib] Remove glyph and class names length restrictions in FEA (#3424). +- [roundingPens] Added ``transformRoundFunc`` parameter to the rounding pens to allow + for custom rounding of the components' transforms (#3426). +- [feaLib] Keep declaration order of ligature components within a ligature set, instead + of sorting by glyph name (#3429). +- [feaLib] Fixed ordering of alternates in ``aalt`` lookups, following the declaration + order of feature references within the ``aalt`` feature block (#3430). +- [varLib.instancer] Fixed a bug in the instancer's IUP optimization (#3432). +- [sbix] Support sbix glyphs with new graphicType "flip" (#3433). +- [svgPathPen] Added ``--glyphs`` option to dump the SVG paths for the named glyphs + in the font (0572f78). +- [designspaceLib] Added "description" attribute to ```` and ```` + elements, and allow multiple ```` elements to group ```` elements + that are logically related (#3435, #3437). +- [otlLib] Correctly choose the most compact GSUB contextual lookup format (#3439). + +4.47.2 (released 2024-01-11) +---------------------------- + +Minor release to fix uploading wheels to PyPI. + +4.47.1 (released 2024-01-11) +---------------------------- + +- [merge] Improve help message and add standard command line options (#3408) +- [otlLib] Pass ``ttFont`` to ``name.addName`` in ``buildStatTable`` (#3406) +- [featureVars] Re-use ``FeatureVariationRecord``'s when possible (#3413) + +4.47.0 (released 2023-12-18) +---------------------------- + +- [varLib.models] New API for VariationModel: ``getMasterScalars`` and + ``interpolateFromValuesAndScalars``. +- [varLib.interpolatable] Various bugfixes and rendering improvements. In particular, + add a Summary page in the front, and an Index and Table-of-Contents in the back. + Change the page size to Letter. +- [Docs/designspaceLib] Defined a new ``public.fontInfo`` lib key, not used anywhere yet (#3358). + +4.46.0 (released 2023-12-02) +---------------------------- + +- [featureVars] Allow to register the same set of substitution rules to multiple features. + The ``addFeatureVariations`` function can now take a list of featureTags; similarly, the + lib key 'com.github.fonttools.varLib.featureVarsFeatureTag' can now take a + comma-separateed string of feature tags (e.g. "salt,ss01") instead of a single tag (#3360). +- [featureVars] Don't overwrite GSUB FeatureVariations, but append new records to it + for features which are not already there. But raise ``VarLibError`` if the feature tag + already has feature variations associated with it (#3363). +- [varLib] Added ``addGSUBFeatureVariations`` function to add GSUB Feature Variations + to an existing variable font from rules defined in a DesignSpace document (#3362). +- [varLib.interpolatable] Various bugfixes and rendering improvements. In particular, + a new test for "underweight" glyphs. The new test reports quite a few false-positives + though. Please send feedback. + +4.45.1 (released 2023-11-23) +---------------------------- + +- [varLib.interpolatable] Various bugfixes and improvements, better reporting, reduced + false positives. +- [ttGlyphSet] Added option to not recalculate glyf bounds (#3348). + +4.45.0 (released 2023-11-20) +---------------------------- + +- [varLib.interpolatable] Vastly improved algorithms. Also available now is ``--pdf`` + and ``--html`` options to generate a PDF or HTML report of the interpolation issues. + The PDF/HTML report showcases the problematic masters, the interpolated broken + glyph, as well as the proposed fixed version. + +4.44.3 (released 2023-11-15) +---------------------------- + +- [subset] Only prune codepage ranges for OS/2.version >= 1, ignore otherwise (#3334). +- [instancer] Ensure hhea vertical metrics stay in sync with OS/2 ones after instancing + MVAR table containing 'hasc', 'hdsc' or 'hlgp' tags (#3297). + +4.44.2 (released 2023-11-14) +---------------------------- + +- [glyf] Have ``Glyph.recalcBounds`` skip empty components (base glyph with no contours) + when computing the bounding box of composite glyphs. This simply restores the existing + behavior before some changes were introduced in fonttools 4.44.0 (#3333). + +4.44.1 (released 2023-11-14) +---------------------------- + +- [feaLib] Ensure variable mark anchors are deep-copied while building since they + get modified in-place and later reused (#3330). +- [OS/2|subset] Added method to ``recalcCodePageRanges`` to OS/2 table class; added + ``--prune-codepage-ranges`` to `fonttools subset` command (#3328, #2607). + +4.44.0 (released 2023-11-03) +---------------------------- + +- [instancer] Recalc OS/2 AvgCharWidth after instancing if default changes (#3317). +- [otlLib] Make ClassDefBuilder class order match varLib.merger's, i.e. large + classes first, then glyph lexicographic order (#3321, #3324). +- [instancer] Allow not specifying any of min:default:max values and let be filled + up with fvar's values (#3322, #3323). +- [instancer] When running --update-name-table ignore axes that have no STAT axis + values (#3318, #3319). +- [Debg] When dumping to ttx, write the embedded JSON as multi-line string with + indentation (92cbfee0d). +- [varStore] Handle > 65535 items per encoding by splitting VarData subtable (#3310). +- [subset] Handle null-offsets in MarkLigPos subtables. +- [subset] Keep East Asian spacing fatures vhal, halt, chws, vchw by default (#3305). +- [instancer.solver] Fixed case where axisDef < lower and upper < axisMax (#3304). +- [glyf] Speed up compilation, mostly around ``recalcBounds`` (#3301). +- [varLib.interpolatable] Speed it up when working on variable fonts, plus various + micro-optimizations (#3300). +- Require unicodedata2 >= 15.1.0 when installed with 'unicode' extra, contains UCD 15.1. + +4.43.1 (released 2023-10-06) +---------------------------- + +- [EBDT] Fixed TypeError exception in `_reverseBytes` method triggered when dumping + some bitmap fonts with `ttx -z bitwise` option (#3162). +- [v/hhea] Fixed UnboundLocalError exception in ``recalc`` method when no vmtx or hmtx + tables are present (#3290). +- [bezierTools] Fixed incorrectly typed cython local variable leading to TypeError when + calling ``calcQuadraticArcLength`` (#3288). +- [feaLib/otlLib] Better error message when building Coverage table with missing glyph (#3286). + +4.43.0 (released 2023-09-29) +---------------------------- + +- [subset] Set up lxml ``XMLParser(resolve_entities=False)`` when parsing OT-SVG documents + to prevent XML External Entity (XXE) attacks (9f61271dc): + https://codeql.github.com/codeql-query-help/python/py-xxe/ +- [varLib.iup] Added workaround for a Cython bug in ``iup_delta_optimize`` that was + leading to IUP tolerance being incorrectly initialised, resulting in sub-optimal deltas + (60126435d, cython/cython#5732). +- [varLib] Added new command-line entry point ``fonttools varLib.avar`` to add an + ``avar`` table to an existing VF from axes mappings in a .designspace file (0a3360e52). +- [instancer] Fixed bug whereby no longer used variation regions were not correctly pruned + after VarData optimization (#3268). +- Added support for Python 3.12 (#3283). + +4.42.1 (released 2023-08-20) +---------------------------- + +- [t1Lib] Fixed several Type 1 issues (#3238, #3240). +- [otBase/packer] Allow sharing tables reached by different offset sizes (#3241, #3236). +- [varLib/merger] Fix Cursive attachment merging error when all anchors are NULL (#3248, #3247). +- [ttLib] Fixed warning when calling ``addMultilingualName`` and ``ttFont`` parameter was not + passed on to ``findMultilingualName`` (#3253). + +4.42.0 (released 2023-08-02) +---------------------------- + +- [varLib] Use sentinel value 0xFFFF to mark a glyph advance in hmtx/vmtx as non + participating, allowing sparse masters to contain glyphs for variation purposes other + than {H,V}VAR (#3235). +- [varLib/cff] Treat empty glyphs in non-default masters as missing, thus not participating + in CFF2 delta computation, similarly to how varLib already treats them for gvar (#3234). +- Added varLib.avarPlanner script to deduce 'correct' avar v1 axis mappings based on + glyph average weights (#3223). + +4.41.1 (released 2023-07-21) +---------------------------- + +- [subset] Fixed perf regression in v4.41.0 by making ``NameRecordVisitor`` only visit + tables that do contain nameID references (#3213, #3214). +- [varLib.instancer] Support instancing fonts containing null ConditionSet offsets in + FeatureVariationRecords (#3211, #3212). +- [statisticsPen] Report font glyph-average weight/width and font-wide slant. +- [fontBuilder] Fixed head.created date incorrectly set to 0 instead of the current + timestamp, regression introduced in v4.40.0 (#3210). +- [varLib.merger] Support sparse ``CursivePos`` masters (#3209). + +4.41.0 (released 2023-07-12) +---------------------------- + +- [fontBuilder] Fixed bug in setupOS2 with default panose attribute incorrectly being + set to a dict instead of a Panose object (#3201). +- [name] Added method to ``removeUnusedNameRecords`` in the user range (#3185). +- [varLib.instancer] Fixed issue with L4 instancing (moving default) (#3179). +- [cffLib] Use latin1 so we can roundtrip non-ASCII in {Full,Font,Family}Name (#3202). +- [designspaceLib] Mark as optional in docs (as it is in the code). +- [glyf-1] Fixed drawPoints() bug whereby last cubic segment becomes quadratic (#3189, #3190). +- [fontBuilder] Propagate the 'hidden' flag to the fvar Axis instance (#3184). +- [fontBuilder] Update setupAvar() to also support avar 2, fixing ``_add_avar()`` call + site (#3183). +- Added new ``voltLib.voltToFea`` submodule (originally Tiro Typeworks' "Volto") for + converting VOLT OpenType Layout sources to FEA format (#3164). + +4.40.0 (released 2023-06-12) +---------------------------- + +- Published native binary wheels to PyPI for all the python minor versions and platform + and architectures currently supported that would benefit from this. They will include + precompiled Cython-accelerated modules (e.g. cu2qu) without requiring to compile them + from source. The pure-python wheel and source distribution will continue to be + published as always (pip will automatically chose them when no binary wheel is + available for the given platform, e.g. pypy). Use ``pip install --no-binary=fonttools fonttools`` + to expliclity request pip to install from the pure-python source. +- [designspaceLib|varLib] Add initial support for specifying axis mappings and build + ``avar2`` table from those (#3123). +- [feaLib] Support variable ligature caret position (#3130). +- [varLib|glyf] Added option to --drop-implied-oncurves; test for impliable oncurve + points either before or after rounding (#3146, #3147, #3155, #3156). +- [TTGlyphPointPen] Don't error with empty contours, simply ignore them (#3145). +- [sfnt] Fixed str vs bytes remnant of py3 transition in code dealing with de/compiling + WOFF metadata (#3129). +- [instancer-solver] Fixed bug when moving default instance with sparse masters (#3139, #3140). +- [feaLib] Simplify variable scalars that don’t vary (#3132). +- [pens] Added filter pen that explicitly emits closing line when lastPt != movePt (#3100). +- [varStore] Improve optimize algorithm and better document the algorithm (#3124, #3127). + Added ``quantization`` option (#3126). +- Added CI workflow config file for building native binary wheels (#3121). +- [fontBuilder] Added glyphDataFormat=0 option; raise error when glyphs contain cubic + outlines but glyphDataFormat was not explicitly set to 1 (#3113, #3119). +- [subset] Prune emptied GDEF.MarkGlyphSetsDef and remap indices; ensure GDEF is + subsetted before GSUB and GPOS (#3114, #3118). +- [xmlReader] Fixed issue whereby DSIG table data was incorrectly parsed (#3115, #2614). +- [varLib/merger] Fixed merging of SinglePos with pos=0 (#3111, #3112). +- [feaLib] Demote "Feature has not been defined" error to a warning when building aalt + and referenced feature is empty (#3110). +- [feaLib] Dedupe multiple substitutions with classes (#3105). + +4.39.4 (released 2023-05-10) +---------------------------- + +- [varLib.interpolatable] Allow for sparse masters (#3075) +- [merge] Handle differing default/nominalWidthX in CFF (#3070) +- [ttLib] Add missing main.py file to ttLib package (#3088) +- [ttx] Fix missing composite instructions in XML (#3092) +- [ttx] Fix split tables option to work on filenames containing '%' (#3096) +- [featureVars] Process lookups for features other than rvrn last (#3099) +- [feaLib] support multiple substitution with classes (#3103) + +4.39.3 (released 2023-03-28) +---------------------------- + +- [sbix] Fixed TypeError when compiling empty glyphs whose imageData is None, regression + was introduced in v4.39 (#3059). +- [ttFont] Fixed AttributeError on python <= 3.10 when opening a TTFont from a tempfile + SpooledTemporaryFile, seekable method only added on python 3.11 (#3052). + +4.39.2 (released 2023-03-16) +---------------------------- + +- [varLib] Fixed regression introduced in 4.39.1 whereby an incomplete 'STAT' table + would be built even though a DesignSpace v5 did contain 'STAT' definitions (#3045, #3046). + +4.39.1 (released 2023-03-16) +---------------------------- + +- [avar2] Added experimental support for reading/writing avar version 2 as specified in + this draft proposal: https://github.com/harfbuzz/boring-expansion-spec/blob/main/avar2.md +- [glifLib] Wrap underlying XML library exceptions with GlifLibError when parsing GLIFs, + and also print the name and path of the glyph that fails to be parsed (#3042). +- [feaLib] Consult avar for normalizing user-space values in ConditionSets and in + VariableScalars (#3042, #3043). +- [ttProgram] Handle string input to Program.fromAssembly() (#3038). +- [otlLib] Added a config option to emit GPOS 7 lookups, currently disabled by default + because of a macOS bug (#3034). +- [COLRv1] Added method to automatically compute ClipBoxes (#3027). +- [ttFont] Fixed getGlyphID to raise KeyError on missing glyphs instead of returning + None. The regression was introduced in v4.27.0 (#3032). +- [sbix] Fixed UnboundLocalError: cannot access local variable 'rawdata' (#3031). +- [varLib] When building VF, do not overwrite a pre-existing ``STAT`` table that was built + with feaLib from FEA feature file. Also, added support for building multiple VFs + defined in Designspace v5 from ``fonttools varLib`` script (#3024). +- [mtiLib] Only add ``Debg`` table with lookup names when ``FONTTOOLS_LOOKUP_DEBUGGING`` + env variable is set (#3023). + +4.39.0 (released 2023-03-06) +---------------------------- + +- [mtiLib] Optionally add `Debg` debug info for MTI feature builds (#3018). +- [ttx] Support reading input file from standard input using special `-` character, + similar to existing `-o -` option to write output to standard output (#3020). +- [cython] Prevent ``cython.compiled`` raise AttributeError if cython not installed + properly (#3017). +- [OS/2] Guard against ZeroDivisionError when calculating xAvgCharWidth in the unlikely + scenario no glyph has non-zero advance (#3015). +- [subset] Recompute xAvgCharWidth independently of --no-prune-unicode-ranges, + previously the two options were involuntarily bundled together (#3012). +- [fontBuilder] Add ``debug`` parameter to addOpenTypeFeatures method to add source + debugging information to the font in the ``Debg`` private table (#3008). +- [name] Make NameRecord `__lt__` comparison not fail on Unicode encoding errors (#3006). +- [featureVars] Fixed bug in ``overlayBox`` (#3003, #3005). +- [glyf] Added experimental support for cubic bezier curves in TrueType glyf table, as + outlined in glyf v1 proposal (#2988): + https://github.com/harfbuzz/boring-expansion-spec/blob/main/glyf1-cubicOutlines.md +- Added new qu2cu module and related qu2cuPen, the reverse of cu2qu for converting + TrueType quadratic splines to cubic bezier curves (#2993). +- [glyf] Added experimental support for reading and writing Variable Composites/Components + as defined in glyf v1 spec proposal (#2958): + https://github.com/harfbuzz/boring-expansion-spec/blob/main/glyf1-varComposites.md. +- [pens]: Added `addVarComponent` method to pen protocols' base classes, which pens can implement + to handle varcomponents (by default they get decomposed) (#2958). +- [misc.transform] Added DecomposedTransform class which implements an affine transformation + with separate translate, rotation, scale, skew, and transformation-center components (#2598) +- [sbix] Ensure Glyph.referenceGlyphName is set; fixes error after dumping and + re-compiling sbix table with 'dupe' glyphs (#2984). +- [feaLib] Be cleverer when merging chained single substitutions into same lookup + when they are specified using the inline notation (#2150, #2974). +- [instancer] Clamp user-inputted axis ranges to those of fvar (#2959). +- [otBase/subset] Define ``__getstate__`` for BaseTable so that a copied/pickled 'lazy' + object gets its own OTTableReader to read from; incidentally fixes a bug while + subsetting COLRv1 table containing ClipBoxes on python 3.11 (#2965, #2968). +- [sbix] Handle glyphs with "dupe" graphic type on compile correctly (#2963). +- [glyf] ``endPointsOfContours`` field should be unsigned! Kudos to behdad for + spotting one of the oldest bugs in FT. Probably nobody has ever dared to make + glyphs with more than 32767 points... (#2957). +- [feaLib] Fixed handling of ``ignore`` statements with unmarked glyphs to match + makeotf behavior, which assumes the first glyph is marked (#2950). +- Reformatted code with ``black`` and enforce new code style via CI check (#2925). +- [feaLib] Sort name table entries following OT spec prescribed order in the builder (#2927). +- [cu2quPen] Add Cu2QuMultiPen that converts multiple outlines at a time in + interpolation compatible way; its methods take a list of tuples arguments + that would normally be passed to individual segment pens, and at the end it + dispatches the converted outlines to each pen (#2912). +- [reverseContourPen/ttGlyphPen] Add outputImpliedClosingLine option (#2913, #2914, + #2921, #2922, #2995). +- [gvar] Avoid expanding all glyphs unnecessarily upon compile (#2918). +- [scaleUpem] Fixed bug whereby CFF2 vsindex was scaled; it should not (#2893, #2894). +- [designspaceLib] Add DS.getAxisByTag and refactor getAxis (#2891). +- [unicodedata] map Zmth<->math in ot_tag_{to,from}_script (#1737, #2889). +- [woff2] Support encoding/decoding OVERLAP_SIMPLE glyf flags (#2576, #2884). +- [instancer] Update OS/2 class and post.italicAngle when default moved (L4) +- Dropped support for Python 3.7 which reached EOL, fontTools requires 3.8+. +- [instancer] Fixed instantiateFeatureVariations logic when a rule range becomes + default-applicable (#2737, #2880). +- [ttLib] Add main to ttFont and ttCollection that just decompile and re-compile the + input font (#2869). +- [featureVars] Insert 'rvrn' lookup at the beginning of LookupList, to work around bug + in Apple implementation of 'rvrn' feature which the spec says it should be processed + early whereas on macOS 10.15 it follows lookup order (#2140, #2867). +- [instancer/mutator] Remove 'DSIG' table if present. +- [svgPathPen] Don't close path in endPath(), assume open unless closePath() (#2089, #2865). + +4.38.0 (released 2022-10-21) +---------------------------- + +- [varLib.instancer] Added support for L4 instancing, i.e. moving the default value of + an axis while keeping it variable. Thanks Behdad! (#2728, #2861). + It's now also possible to restrict an axis min/max values beyond the current default + value, e.g. a font wght has min=100, def=400, max=900 and you want a partial VF that + only varies between 500 and 700, you can now do that. + You can either specify two min/max values (wght=500:700), and the new default will be + set to either the minimum or maximum, depending on which one is closer to the current + default (e.g. 500 in this case). Or you can specify three values (e.g. wght=500:600:700) + to specify the new default value explicitly. +- [otlLib/featureVars] Set a few Count values so one doesn't need to compile the font + to update them (#2860). +- [varLib.models] Make extrapolation work for 2-master models as well where one master + is at the default location (#2843, #2846). + Add optional extrapolate=False to normalizeLocation() (#2847, #2849). +- [varLib.cff] Fixed sub-optimal packing of CFF2 deltas by no longer rounding them to + integer (#2838). +- [scaleUpem] Calculate numShorts in VarData after scale; handle CFF hintmasks (#2840). + +4.37.4 (released 2022-09-30) +---------------------------- + +- [subset] Keep nameIDs used by CPAL palette entry labels (#2837). +- [varLib] Avoid negative hmtx values when creating font from variable CFF2 font (#2827). +- [instancer] Don't prune stat.ElidedFallbackNameID (#2828). +- [unicodedata] Update Scripts/Blocks to Unicode 15.0 (#2833). + +4.37.3 (released 2022-09-20) +---------------------------- + +- Fix arguments in calls to (glyf) glyph.draw() and drawPoints(), whereby offset wasn't + correctly passed down; this fix also exposed a second bug, where lsb and tsb were not + set (#2824, #2825, adobe-type-tools/afdko#1560). + +4.37.2 (released 2022-09-15) +---------------------------- + +- [subset] Keep CPAL table and don't attempt to prune unused color indices if OT-SVG + table is present even if COLR table was subsetted away; OT-SVG may be referencing the + CPAL table; for now we assume that's the case (#2814, #2815). +- [varLib.instancer] Downgrade GPOS/GSUB version if there are no more FeatureVariations + after instancing (#2812). +- [subset] Added ``--no-lazy`` to optionally load fonts eagerly (mostly to ease + debugging of table lazy loading, no practical effects) (#2807). +- [varLib] Avoid building empty COLR.DeltaSetIndexMap with only identity mappings (#2803). +- [feaLib] Allow multiple value record types (by promoting to the most general format) + within the same PairPos subtable; e.g. this allows variable and non variable kerning + rules to share the same subtable. This also fixes a bug whereby some kerning pairs + would become unreachable while shapiong because of premature subtable splitting (#2772, #2776). +- [feaLib] Speed up ``VarScalar`` by caching models for recurring master locations (#2798). +- [feaLib] Optionally cythonize ``feaLib.lexer``, speeds up parsing FEA a bit (#2799). +- [designspaceLib] Avoid crash when handling unbounded rule conditions (#2797). +- [post] Don't crash if ``post`` legacy format 1 is malformed/improperly used (#2786) +- [gvar] Don't be "lazy" (load all glyph variations up front) when TTFont.lazy=False (#2771). +- [TTFont] Added ``normalizeLocation`` method to normalize a location dict from the + font's defined axes space (also known as "user space") into the normalized (-1..+1) + space. It applies ``avar`` mapping if the font contains an ``avar`` table (#2789). +- [TTVarGlyphSet] Support drawing glyph instances from CFF2 variable glyph set (#2784). +- [fontBuilder] Do not error when building cmap if there are zero code points (#2785). +- [varLib.plot] Added ability to plot a variation model and set of accompaning master + values corresponding to the model's master locations into a pyplot figure (#2767). +- [Snippets] Added ``statShape.py`` script to draw statistical shape of a glyph as an + ellips (requires pycairo) (baecd88). +- [TTVarGlyphSet] implement drawPoints natively, avoiding going through + SegmentToPointPen (#2778). +- [TTVarGlyphSet] Fixed bug whereby drawing a composite glyph multiple times, its + components would shif; needed an extra copy (#2774). + +4.37.1 (released 2022-08-24) +---------------------------- + +- [subset] Fixed regression introduced with v4.37.0 while subsetting the VarStore of + ``HVAR`` and ``VVAR`` tables, whereby an ``AttributeError: subset_varidxes`` was + thrown because an apparently unused import statement (with the side-effect of + dynamically binding that ``subset_varidxes`` method to the VarStore class) had been + accidentally deleted in an unrelated PR (#2679, #2773). +- [pens] Added ``cairoPen`` (#2678). +- [gvar] Read ``gvar`` more lazily by not parsing all of the ``glyf`` table (#2771). +- [ttGlyphSet] Make ``drawPoints(pointPen)`` method work for CFF fonts as well via + adapter pen (#2770). + +4.37.0 (released 2022-08-23) +---------------------------- + +- [varLib.models] Reverted PR #2717 which added support for "narrow tents" in v4.36.0, + as it introduced a regression (#2764, #2765). It will be restored in upcoming release + once we found a solution to the bug. +- [cff.specializer] Fixed issue in charstring generalizer with the ``blend`` operator + (#2750, #1975). +- [varLib.models] Added support for extrapolation (#2757). +- [ttGlyphSet] Ensure the newly added ``_TTVarGlyphSet`` inherits from ``_TTGlyphSet`` + to keep backward compatibility with existing API (#2762). +- [kern] Allow compiling legacy kern tables with more than 64k entries (d21cfdede). +- [visitor] Added new visitor API to traverse tree of objects and dispatch based + on the attribute type: cf. ``fontTools.misc.visitor`` and ``fontTools.ttLib.ttVisitor``. Added ``fontTools.ttLib.scaleUpem`` module that uses the latter to + change a font's units-per-em and scale all the related fields accordingly (#2718, + #2755). + +4.36.0 (released 2022-08-17) +---------------------------- + +- [varLib.models] Use a simpler model that generates narrower "tents" (regions, master + supports) whenever possible: specifically when any two axes that actively "cooperate" + (have masters at non-zero positions for both axes) have a complete set of intermediates. + The simpler algorithm produces fewer overlapping regions and behaves better with + respect to rounding at the peak positions than the generic solver, always matching + intermediate masters exactly, instead of maximally 0.5 units off. This may be useful + when 100% metrics compatibility is desired (#2218, #2717). +- [feaLib] Remove warning when about ``GDEF`` not being built when explicitly not + requested; don't build one unconditonally even when not requested (#2744, also works + around #2747). +- [ttFont] ``TTFont.getGlyphSet`` method now supports selecting a location that + represents an instance of a variable font (supports both user-scale and normalized + axes coordinates via the ``normalized=False`` parameter). Currently this only works + for TrueType-flavored variable fonts (#2738). + +4.35.0 (released 2022-08-15) +---------------------------- + +- [otData/otConverters] Added support for 'biased' PaintSweepGradient start/end angles + to match latest COLRv1 spec (#2743). +- [varLib.instancer] Fixed bug in ``_instantiateFeatureVariations`` when at the same + time pinning one axis and restricting the range of a subsequent axis; the wrong axis + tag was being used in the latter step (as the records' axisIdx was updated in the + preceding step but looked up using the old axes order in the following step) (#2733, + #2734). +- [mtiLib] Pad script tags with space when less than 4 char long (#1727). +- [merge] Use ``'.'`` instead of ``'#'`` in duplicate glyph names (#2742). +- [gvar] Added support for lazily loading glyph variations (#2741). +- [varLib] In ``build_many``, we forgot to pass on ``colr_layer_reuse`` parameter to + the ``build`` method (#2730). +- [svgPathPen] Add a main that prints SVG for input text (6df779fd). +- [cffLib.width] Fixed off-by-one in optimized values; previous code didn't match the + code block above it (2963fa50). +- [varLib.interpolatable] Support reading .designspace and .glyphs files (via optional + ``glyphsLib``). +- Compile some modules with Cython when available and building/installing fonttools + from source: ``varLib.iup`` (35% faster), ``pens.momentsPen`` (makes + ``varLib.interpolatable`` 3x faster). +- [feaLib] Allow features to be built for VF without also building a GDEF table (e.g. + only build GSUB); warn when GDEF would be needed but isn't requested (#2705, 2694). +- [otBase] Fixed ``AttributeError`` when uharfbuzz < 0.23.0 and 'repack' method is + missing (32aa8eaf). Use new ``uharfbuzz.repack_with_tag`` when available (since + uharfbuzz>=0.30.0), enables table-specific optimizations to be performed during + repacking (#2724). +- [statisticsPen] By default report all glyphs (4139d891). Avoid division-by-zero + (52b28f90). +- [feaLib] Added missing required argument to FeatureLibError exception (#2693) +- [varLib.merge] Fixed error during error reporting (#2689). Fixed undefined + ``NotANone`` variable (#2714). + +4.34.4 (released 2022-07-07) +---------------------------- + +- Fixed typo in varLib/merger.py that causes NameError merging COLR glyphs + containing more than 255 layers (#2685). + +4.34.3 (released 2022-07-07) +---------------------------- + +- [designspaceLib] Don't make up bad PS names when no STAT data (#2684) + +4.34.2 (released 2022-07-06) +---------------------------- + +- [varStore/subset] fixed KeyError exception to do with NO_VARIATION_INDEX while + subsetting varidxes in GPOS/GDEF (a08140d). + +4.34.1 (released 2022-07-06) +---------------------------- + +- [instancer] When optimizing HVAR/VVAR VarStore, use_NO_VARIATION_INDEX=False to avoid + including NO_VARIATION_INDEX in AdvWidthMap, RsbMap, LsbMap mappings, which would + push the VarIdx width to maximum (4bytes), which is not desirable. This also fixes + a hard crash when attempting to subset a varfont after it had been partially instanced + with use_NO_VARIATION_INDEX=True. + +4.34.0 (released 2022-07-06) +---------------------------- + +- [instancer] Set RIBBI bits in head and OS/2 table when cutting instances and the + subfamily nameID=2 contains strings like 'Italic' or 'Bold' (#2673). +- [otTraverse] Addded module containing methods for traversing trees of otData tables + (#2660). +- [otTables] Made DeltaSetIndexMap TTX dump less verbose by omitting no-op entries + (#2660). +- [colorLib.builder] Added option to disable PaintColrLayers's reuse of layers from + LayerList (#2660). +- [varLib] Added support for merging multiple master COLRv1 tables into a variable + COLR table (#2660, #2328). Base color glyphs of same name in different masters must have + identical paint graph structure (incl. number of layers, palette indices, number + of color line stops, corresponding paint formats at each level of the graph), + but can differ in the variable fields (e.g. PaintSolid.Alpha). PaintVar* tables + are produced when this happens and a VarStore/DeltaSetIndexMap is added to the + variable COLR table. It is possible for non-default masters to be 'sparse', i.e. + omit some of the color glyphs present in the default master. +- [feaLib] Let the Parser set nameIDs 1 through 6 that were previously reserved (#2675). +- [varLib.varStore] Support NO_VARIATION_INDEX in optimizer and instancer. +- [feaLib] Show all missing glyphs at once at end of parsing (#2665). +- [varLib.iup] Rewrite force-set conditions and limit DP loopback length (#2651). + For Noto Sans, IUP time drops from 23s down to 9s, with only a slight size increase + in the final font. This basically turns the algorithm from O(n^3) into O(n). +- [featureVars] Report about missing glyphs in substitution rules (#2654). +- [mutator/instancer] Added CLI flag to --no-recalc-timestamp (#2649). +- [SVG] Allow individual SVG documents in SVG OT table to be compressed on uncompressed, + and remember that when roundtripping to/from ttx. The SVG.docList is now a list + of SVGDocument namedtuple-like dataclass containing an extra ``compressed`` field, + and no longer a bare 3-tuple (#2645). +- [designspaceLib] Check for descriptor types with hasattr() to allow custom classes + that don't inherit the default descriptors (#2634). +- [subset] Enable sharing across subtables of extension lookups for harfbuzz packing + (#2626). Updated how table packing falls back to fontTools from harfbuzz (#2668). +- [subset] Updated default feature tags following current Harfbuzz (#2637). +- [svgLib] Fixed regex for real number to support e.g. 1e-4 in addition to 1.0e-4. + Support parsing negative rx, ry on arc commands (#2596, #2611). +- [subset] Fixed subsetting SinglePosFormat2 when ValueFormat=0 (#2603). + +4.33.3 (released 2022-04-26) +---------------------------- + +- [designspaceLib] Fixed typo in ``deepcopyExceptFonts`` method, preventing font + references to be transferred (#2600). Fixed another typo in the name of ``Range`` + dataclass's ``__post_init__`` magic method (#2597). + +4.33.2 (released 2022-04-22) +---------------------------- + +- [otBase] Make logging less verbose when harfbuzz fails to serialize. Do not exit + at the first failure but continue attempting to fix offset overflow error using + the pure-python serializer even when the ``USE_HARFBUZZ_REPACKER`` option was + explicitly set to ``True``. This is normal with fonts with relatively large + tables, at least until hb.repack implements proper table splitting. + +4.33.1 (released 2022-04-22) +---------------------------- + +- [otlLib] Put back the ``FONTTOOLS_GPOS_COMPACT_MODE`` environment variable to fix + regression in ufo2ft (and thus fontmake) introduced with v4.33.0 (#2592, #2593). + This is deprecated and will be removed one ufo2ft gets updated to use the new + config setup. + +4.33.0 (released 2022-04-21) +---------------------------- + +- [OS/2 / merge] Automatically recalculate ``OS/2.xAvgCharWidth`` after merging + fonts with ``fontTools.merge`` (#2591, #2538). +- [misc/config] Added ``fontTools.misc.configTools`` module, a generic configuration + system (#2416, #2439). + Added ``fontTools.config`` module, a fontTools-specific configuration + system using ``configTools`` above. + Attached a ``Config`` object to ``TTFont``. +- [otlLib] Replaced environment variable for GPOS compression level with an + equivalent option using the new config system. +- [designspaceLib] Incremented format version to 5.0 (#2436). + Added discrete axes, variable fonts, STAT information, either design- or + user-space location on instances. + Added ``fontTools.designspaceLib.split`` module to split a designspace + into sub-spaces that interpolate and that represent the variable fonts + listed in the document. + Made instance names optional and allow computing them from STAT data instead. + Added ``fontTools.designspaceLib.statNames`` module. + Allow instances to have the same location as a previously defined STAT label. + Deprecated some attributes: + ``SourceDescriptor``: ``copyLib``, ``copyInfo``, ``copyGroups``, ``copyFeatures``. + ``InstanceDescriptor``: ``kerning``, ``info``; ``glyphs``: use rules or sparse + sources. + For both, ``location``: use the more explicit designLocation. + Note: all are soft deprecations and existing code should keep working. + Updated documentation for Python methods and the XML format. +- [varLib] Added ``build_many`` to build several variable fonts from a single + designspace document (#2436). + Added ``fontTools.varLib.stat`` module to build STAT tables from a designspace + document. +- [otBase] Try to use the Harfbuzz Repacker for packing GSUB/GPOS tables when + ``uharfbuzz`` python bindings are available (#2552). Disable it by setting the + "fontTools.ttLib.tables.otBase:USE_HARFBUZZ_REPACKER" config option to ``False``. + If the option is set explicitly to ``True`` but ``uharfbuzz`` can't be imported + or fails to serialize for any reasons, an error will be raised (ImportError or + uharfbuzz errors). +- [CFF/T2] Ensure that ``pen.closePath()`` gets called for CFF2 charstrings (#2577). + Handle implicit CFF2 closePath within ``T2OutlineExtractor`` (#2580). + +4.32.0 (released 2022-04-08) +---------------------------- + +- [otlLib] Disable GPOS7 optimization to work around bug in Apple CoreText. + Always force Chaining GPOS8 for now (#2540). +- [glifLib] Added ``outputImpliedClosingLine=False`` parameter to ``Glyph.draw()``, + to control behaviour of ``PointToSegmentPen`` (6b4e2e7). +- [varLib.interpolatable] Check for wrong contour starting point (#2571). +- [cffLib] Remove leftover ``GlobalState`` class and fix calls to ``TopDictIndex()`` + (#2569, #2570). +- [instancer] Clear ``AxisValueArray`` if it is empty after instantiating (#2563). + +4.31.2 (released 2022-03-22) +---------------------------- + +- [varLib] fix instantiation of GPOS SinglePos values (#2555). + +4.31.1 (released 2022-03-18) +---------------------------- + +- [subset] fix subsetting OT-SVG when glyph id attribute is on the root ```` + element (#2553). + +4.31.0 (released 2022-03-18) +---------------------------- + +- [ttCollection] Fixed 'ResourceWarning: unclosed file' warning (#2549). +- [varLib.merger] Handle merging SinglePos with valueformat=0 (#2550). +- [ttFont] Update glyf's glyphOrder when calling TTFont.setGlyphOrder() (#2544). +- [ttFont] Added ``ensureDecompiled`` method to load all tables irrespective + of the ``lazy`` attribute (#2551). +- [otBase] Added ``iterSubTable`` method to iterate over BaseTable's children of + type BaseTable; useful for traversing a tree of otTables (#2551). + +4.30.0 (released 2022-03-10) +---------------------------- + +- [varLib] Added debug logger showing the glyph name for which ``gvar`` is built (#2542). +- [varLib.errors] Fixed undefined names in ``FoundANone`` and ``UnsupportedFormat`` + exceptions (ac4d5611). +- [otlLib.builder] Added ``windowsNames`` and ``macNames`` (bool) parameters to the + ``buildStatTabe`` function, so that one can select whether to only add one or both + of the two sets (#2528). +- [t1Lib] Added the ability to recreate PostScript stream (#2504). +- [name] Added ``getFirstDebugName``, ``getBest{Family,SubFamily,Full}Name`` methods (#2526). + +4.29.1 (released 2022-02-01) +---------------------------- + +- [colorLib] Fixed rounding issue with radial gradient's start/end circles inside + one another (#2521). +- [freetypePen] Handle rotate/skew transform when auto-computing width/height of the + buffer; raise PenError wen missing moveTo (#2517) + +4.29.0 (released 2022-01-24) +---------------------------- + +- [ufoLib] Fixed illegal characters and expanded reserved filenames (#2506). +- [COLRv1] Don't emit useless PaintColrLayers of lenght=1 in LayerListBuilder (#2513). +- [ttx] Removed legacy ``waitForKeyPress`` method on Windows (#2509). +- [pens] Added FreeTypePen that uses ``freetype-py`` and the pen protocol for + rasterizating outline paths (#2494). +- [unicodedata] Updated the script direction list to Unicode 14.0 (#2484). + Bumped unicodedata2 dependency to 14.0 (#2499). +- [psLib] Fixed type of ``fontName`` in ``suckfont`` (#2496). + +4.28.5 (released 2021-12-19) +---------------------------- + +- [svgPathPen] Continuation of #2471: make sure all occurrences of ``str()`` are now + replaced with user-defined ``ntos`` callable. +- [merge] Refactored code into submodules, plus several bugfixes and improvements: + fixed duplicate-glyph-resolution GSUB-lookup generation code; use tolerance in glyph + comparison for empty glyph's width; ignore space of default ignorable glyphs; + downgrade duplicates-resolution missing-GSUB from assert to warn; added --drop-tables + option (#2473, #2475, #2476). + +4.28.4 (released 2021-12-15) +---------------------------- + +- [merge] Merge GDEF marksets in Lookups properly (#2474). +- [feaLib] Have ``fontTools feaLib`` script exit with error code when build fails (#2459) +- [svgPathPen] Added ``ntos`` option to customize number formatting (e.g. rounding) (#2471). +- [subset] Speed up subsetting of large CFF fonts (#2467). +- [otTables] Speculatively promote lookups to extension to speed up compilation. If the + offset to lookup N is too big to fit in a ushort, the offset to lookup N+1 is going to + be too big as well, so we promote to extension all lookups from lookup N onwards (#2465). + +4.28.3 (released 2021-12-03) +---------------------------- + +- [subset] Fixed bug while subsetting ``COLR`` table, whereby incomplete layer records + pointing to missing glyphs were being retained leading to ``struct.error`` upon + compiling. Make it so that ``glyf`` glyph closure, which follows the ``COLR`` glyph + closure, does not influence the ``COLR`` table subsetting (#2461, #2462). +- [docs] Fully document the ``cmap`` and ``glyf`` tables (#2454, #2457). +- [colorLib.unbuilder] Fixed CLI by deleting no longer existing parameter (180bb1867). + +4.28.2 (released 2021-11-22) +---------------------------- + +- [otlLib] Remove duplicates when building coverage (#2433). +- [docs] Add interrogate configuration (#2443). +- [docs] Remove comment about missing “start” optional argument to ``calcChecksum`` (#2448). +- [cu2qu/cli] Adapt to the latest ufoLib2. +- [subset] Support subsetting SVG table and remove it from the list of drop by default tables (#534). +- [subset] add ``--pretty-svg`` option to pretty print SVG table contents (#2452). +- [merge] Support merging ``CFF`` tables (CID-keyed ``CFF`` is still not supported) (#2447). +- [merge] Support ``--output-file`` (#2447). +- [docs] Split table docs into individual pages (#2444). +- [feaLib] Forbid empty classes (#2446). +- [docs] Improve documentation for ``fontTools.ttLib.ttFont`` (#2442). + +4.28.1 (released 2021-11-08) +---------------------------- + +- [subset] Fixed AttributeError while traversing a color glyph's Paint graph when there is no + LayerList, which is optional (#2441). + +4.28.0 (released 2021-11-05) +---------------------------- + +- Dropped support for EOL Python 3.6, require Python 3.7 (#2417). +- [ufoLib/glifLib] Make filename-clash checks faster by using a set instead of a list (#2422). +- [subset] Don't crash if optional ClipList and LayerList are ``None`` (empty) (#2424, 2439). +- [OT-SVG] Removed support for old deprecated version 1 and embedded color palettes, + which were never officially part of the OpenType SVG spec. Upon compile, reuse offsets + to SVG documents that are identical (#2430). +- [feaLib] Added support for Variable Feature File syntax. This is experimental and subject + to change until it is finalized in the Adobe FEA spec (#2432). +- [unicodedata] Update Scripts/ScriptExtensions/Blocks to UnicodeData 14.0 (#2437). + +4.27.1 (released 2021-09-23) +---------------------------- + +- [otlLib] Fixed error when chained contextual lookup builder overflows (#2404, #2411). +- [bezierTools] Fixed two floating-point bugs: one when computing `t` for a point + lying on an almost horizontal/vertical line; another when computing the intersection + point between a curve and a line (#2413). + +4.27.0 (released 2021-09-14) +---------------------------- + +- [ttLib/otTables] Cleaned up virtual GID handling: allow virtual GIDs in ``Coverage`` + and ``ClassDef`` readers; removed unused ``allowVID`` argument from ``TTFont`` + constructor, and ``requireReal`` argument in ``TTFont.getGlyphID`` method. + Make ``TTFont.setGlyphOrder`` clear reverse glyphOrder map, and assume ``glyphOrder`` + internal attribute is never modified outside setGlyphOrder; added ``TTFont.getGlyphNameMany`` + and ``getGlyphIDMany`` (#1536, #1654, #2334, #2398). +- [py23] Dropped internal use of ``fontTools.py23`` module to fix deprecation warnings + in client code that imports from fontTools (#2234, #2399, #2400). +- [subset] Fix subsetting COLRv1 clip boxes when font is loaded lazily (#2408). + +4.26.2 (released 2021-08-09) +---------------------------- + +- [otTables] Added missing ``CompositeMode.PLUS`` operator (#2390). + +4.26.1 (released 2021-08-03) +---------------------------- + +- [transform] Added ``transformVector`` and ``transformVectors`` methods to the + ``Transform`` class. Similar to ``transformPoint`` but ignore the translation + part (#2386). + +4.26.0 (released 2021-08-03) +---------------------------- + +- [xmlWriter] Default to ``"\n"`` for ``newlinestr`` instead of platform-specific + ``os.linesep`` (#2384). +- [otData] Define COLRv1 ClipList and ClipBox (#2379). +- [removeOverlaps/instancer] Added --ignore-overlap-errors option to work around + Skia PathOps.Simplify bug (#2382, #2363, google/fonts#3365). +- NOTE: This will be the last version to support Python 3.6. FontTools will require + Python 3.7 or above from the next release (#2350) + +4.25.2 (released 2021-07-26) +---------------------------- + +- [COLRv1] Various changes to sync with the latest CORLv1 draft spec. In particular: + define COLR.VarIndexMap, remove/inline ColorIndex struct, add VarIndexBase to ``PaintVar*`` tables (#2372); + add reduced-precicion specialized transform Paints; + define Angle as fraction of half circle encoded as F2Dot14; + use FWORD (int16) for all Paint center coordinates; + change PaintTransform to have an offset to Affine2x3; +- [ttLib] when importing XML, only set sfntVersion if the font has no reader and is empty (#2376) + +4.25.1 (released 2021-07-16) +---------------------------- + +- [ttGlyphPen] Fixed bug in ``TTGlyphPointPen``, whereby open contours (i.e. starting + with segmentType "move") would throw ``NotImplementedError``. They are now treated + as if they are closed, like with the ``TTGlyphPen`` (#2364, #2366). + +4.25.0 (released 2021-07-05) +---------------------------- + +- [tfmLib] Added new library for parsing TeX Font Metric (TFM) files (#2354). +- [TupleVariation] Make shared tuples order deterministic on python < 3.7 where + Counter (subclass of dict) doesn't remember insertion order (#2351, #2353). +- [otData] Renamed COLRv1 structs to remove 'v1' suffix and match the updated draft + spec: 'LayerV1List' -> 'LayerList', 'BaseGlyphV1List' -> 'BaseGlyphList', + 'BaseGlyphV1Record' -> 'BaseGlyphPaintRecord' (#2346). + Added 8 new ``PaintScale*`` tables: with/without centers, uniform vs non-uniform. + Added ``*AroundCenter`` variants to ``PaintRotate`` and ``PaintSkew``: the default + versions no longer have centerX/Y, but default to origin. + ``PaintRotate``, ``PaintSkew`` and ``PaintComposite`` formats were re-numbered. + NOTE: these are breaking changes; clients using the experimental COLRv1 API will + have to be updated (#2348). +- [pointPens] Allow ``GuessSmoothPointPen`` to accept a tolerance. Fixed call to + ``math.atan2`` with x/y parameters inverted. Sync the code with fontPens (#2344). +- [post] Fixed parsing ``post`` table format 2.0 when it contains extra garbage + at the end of the stringData array (#2314). +- [subset] drop empty features unless 'size' with FeatureParams table (#2324). +- [otlLib] Added ``otlLib.optimize`` module; added GPOS compaction algorithm. + The compaction can be run on existing fonts with ``fonttools otlLib.optimize`` + or using the snippet ``compact_gpos.py``. There's experimental support for + compacting fonts at compilation time using an environment variable, but that + might be removed later (#2326). + +4.24.4 (released 2021-05-25) +---------------------------- + +- [subset/instancer] Fixed ``AttributeError`` when instantiating a VF that + contains GPOS ValueRecords with ``Device`` tables but without the respective + non-Device values (e.g. ``XAdvDevice`` without ``XAdvance``). When not + explicitly set, the latter are assumed to be 0 (#2323). + +4.24.3 (released 2021-05-20) +---------------------------- + +- [otTables] Fixed ``AttributeError`` in methods that split LigatureSubst, + MultipleSubst and AlternateSubst subtables when an offset overflow occurs. + The ``Format`` attribute was removed in v4.22.0 (#2319). + +4.24.2 (released 2021-05-20) +---------------------------- + +- [ttGlyphPen] Fixed typing annotation of TTGlyphPen glyphSet parameter (#2315). +- Fixed two instances of DeprecationWarning: invalid escape sequence (#2311). + +4.24.1 (released 2021-05-20) +---------------------------- + +- [subset] Fixed AttributeError when SinglePos subtable has None Value (ValueFormat 0) + (#2312, #2313). + +4.24.0 (released 2021-05-17) +---------------------------- + +- [pens] Add ``ttGlyphPen.TTGlyphPointPen`` similar to ``TTGlyphPen`` (#2205). + +4.23.1 (released 2021-05-14) +---------------------------- + +- [subset] Fix ``KeyError`` after subsetting ``COLR`` table that initially contains + both v0 and v1 color glyphs when the subset only requested v1 glyphs; we were + not pruning the v0 portion of the table (#2308). +- [colorLib] Set ``LayerV1List`` attribute to ``None`` when empty, it's optional + in CORLv1 (#2308). + +4.23.0 (released 2021-05-13) +---------------------------- + +- [designspaceLib] Allow to use ``\\UNC`` absolute paths on Windows (#2299, #2306). +- [varLib.merger] Fixed bug where ``VarLibMergeError`` was raised with incorrect + parameters (#2300). +- [feaLib] Allow substituting a glyph class with ``NULL`` to delete multiple glyphs + (#2303). +- [glyf] Fixed ``NameError`` exception in ``getPhantomPoints`` (#2295, #2305). +- [removeOverlaps] Retry pathops.simplify after rounding path coordinates to integers + if it fails the first time using floats, to work around a rare and hard to debug + Skia bug (#2288). +- [varLib] Added support for building, reading, writing and optimizing 32-bit + ``ItemVariationStore`` as used in COLRv1 table (#2285). +- [otBase/otConverters] Add array readers/writers for int types (#2285). +- [feaLib] Allow more than one lookahead glyph/class in contextual positioning with + "value at end" (#2293, #2294). +- [COLRv1] Default varIdx should be 0xFFFFFFFF (#2297, #2298). +- [pens] Make RecordingPointPen actually pass on identifiers; replace asserts with + explicit ``PenError`` exception (#2284). +- [mutator] Round lsb for CF2 fonts as well (#2286). + +4.22.1 (released 2021-04-26) +---------------------------- + +- [feaLib] Skip references to named lookups if the lookup block definition + is empty, similarly to makeotf. This also fixes an ``AttributeError`` while + generating ``aalt`` feature (#2276, #2277). +- [subset] Fixed bug with ``--no-hinting`` implementation for Device tables (#2272, + #2275). The previous code was alwyas dropping Device tables if no-hinting was + requested, but some Device tables (DeltaFormat=0x8000) are also used to encode + variation indices and need to be retained. +- [otBase] Fixed bug in getting the ValueRecordSize when decompiling ``MVAR`` + table with ``lazy=True`` (#2273, #2274). +- [varLib/glyf/gvar] Optimized and simplified ``GlyphCoordinates`` and + ``TupleVariation`` classes, use ``bytearray`` where possible, refactored + phantom-points calculations. We measured about 30% speedup in total time + of loading master ttfs, building gvar, and saving (#2261, #2266). +- [subset] Fixed ``AssertionError`` while pruning unused CPAL palettes when + ``0xFFFF`` is present (#2257, #2259). + +4.22.0 (released 2021-04-01) +---------------------------- + +- [ttLib] Remove .Format from Coverage, ClassDef, SingleSubst, LigatureSubst, + AlternateSubst, MultipleSubst (#2238). + ATTENTION: This will change your TTX dumps! +- [misc.arrayTools] move Vector to its own submodule, and rewrite as a tuple + subclass (#2201). +- [docs] Added a terminology section for varLib (#2209). +- [varLib] Move rounding to VariationModel, to avoid error accumulation from + multiple deltas (#2214) +- [varLib] Explain merge errors in more human-friendly terms (#2223, #2226) +- [otlLib] Correct some documentation (#2225) +- [varLib/otlLib] Allow merging into VariationFont without first saving GPOS + PairPos2 (#2229) +- [subset] Improve PairPosFormat2 subsetting (#2221) +- [ttLib] TTFont.save: create file on disk as late as possible (#2253) +- [cffLib] Add missing CFF2 dict operators LanguageGroup and ExpansionFactor + (#2249) + ATTENTION: This will change your TTX dumps! + +4.21.1 (released 2021-02-26) +---------------------------- + +- [pens] Reverted breaking change that turned ``AbstractPen`` and ``AbstractPointPen`` + into abstract base classes (#2164, #2198). + +4.21.0 (released 2021-02-26) +---------------------------- + +- [feaLib] Indent anchor statements in ``asFea()`` to make them more legible and + diff-able (#2193). +- [pens] Turn ``AbstractPen`` and ``AbstractPointPen`` into abstract base classes + (#2164). +- [feaLib] Added support for parsing and building ``STAT`` table from AFDKO feature + files (#2039). +- [instancer] Added option to update name table of generated instance using ``STAT`` + table's axis values (#2189). +- [bezierTools] Added functions to compute bezier point-at-time, as well as line-line, + curve-line and curve-curve intersections (#2192). + +4.20.0 (released 2021-02-15) +---------------------------- + +- [COLRv1] Added ``unbuildColrV1`` to deconstruct COLRv1 otTables to raw json-able + data structure; it does the reverse of ``buildColrV1`` (#2171). +- [feaLib] Allow ``sub X by NULL`` sequence to delete a glyph (#2170). +- [arrayTools] Fixed ``Vector`` division (#2173). +- [COLRv1] Define new ``PaintSweepGradient`` (#2172). +- [otTables] Moved ``Paint.Format`` enum class outside of ``Paint`` class definition, + now named ``PaintFormat``. It was clashing with paint instance ``Format`` attribute + and thus was breaking lazy load of COLR table which relies on magic ``__getattr__`` + (#2175). +- [COLRv1] Replace hand-coded builder functions with otData-driven dynamic + implementation (#2181). +- [COLRv1] Define additional static (non-variable) Paint formats (#2181). +- [subset] Added support for subsetting COLR v1 and CPAL tables (#2174, #2177). +- [fontBuilder] Allow ``setupFvar`` to optionally take ``designspaceLib.AxisDescriptor`` + objects. Added new ``setupAvar`` method. Support localised names for axes and + named instances (#2185). + +4.19.1 (released 2021-01-28) +---------------------------- + +- [woff2] An initial off-curve point with an overlap flag now stays an off-curve + point after compression. + +4.19.0 (released 2021-01-25) +---------------------------- + +- [codecs] Handle ``errors`` parameter different from 'strict' for the custom + extended mac encodings (#2137, #2132). +- [featureVars] Raise better error message when a script is missing the required + default language system (#2154). +- [COLRv1] Avoid abrupt change caused by rounding ``PaintRadialGradient.c0`` when + the start circle almost touches the end circle's perimeter (#2148). +- [COLRv1] Support building unlimited lists of paints as 255-ary trees of + ``PaintColrLayers`` tables (#2153). +- [subset] Prune redundant format-12 cmap subtables when all non-BMP characters + are dropped (#2146). +- [basePen] Raise ``MissingComponentError`` instead of bare ``KeyError`` when a + referenced component is missing (#2145). + +4.18.2 (released 2020-12-16) +---------------------------- + +- [COLRv1] Implemented ``PaintTranslate`` paint format (#2129). +- [varLib.cff] Fixed unbound local variable error (#1787). +- [otlLib] Don't crash when creating OpenType class definitions if some glyphs + occur more than once (#2125). + +4.18.1 (released 2020-12-09) +---------------------------- + +- [colorLib] Speed optimization for ``LayerV1ListBuilder`` (#2119). +- [mutator] Fixed missing tab in ``interpolate_cff2_metrics`` (0957dc7a). + +4.18.0 (released 2020-12-04) +---------------------------- + +- [COLRv1] Update to latest draft: added ``PaintRotate`` and ``PaintSkew`` (#2118). +- [woff2] Support new ``brotlicffi`` bindings for PyPy (#2117). +- [glifLib] Added ``expectContentsFile`` parameter to ``GlyphSet``, for use when + reading existing UFOs, to comply with the specification stating that a + ``contents.plist`` file must exist in a glyph set (#2114). +- [subset] Allow ``LangSys`` tags in ``--layout-scripts`` option (#2112). For example: + ``--layout-scripts=arab.dflt,arab.URD,latn``; this will keep ``DefaultLangSys`` + and ``URD`` language for ``arab`` script, and all languages for ``latn`` script. +- [varLib.interpolatable] Allow UFOs to be checked; report open paths, non existant + glyphs; add a ``--json`` option to produce a machine-readable list of + incompatibilities +- [pens] Added ``QuartzPen`` to create ``CGPath`` from glyph outlines on macOS. + Requires pyobjc (#2107). +- [feaLib] You can export ``FONTTOOLS_LOOKUP_DEBUGGING=1`` to enable feature file + debugging info stored in ``Debg`` table (#2106). +- [otlLib] Build more efficient format 1 and format 2 contextual lookups whenever + possible (#2101). + +4.17.1 (released 2020-11-16) +---------------------------- + +- [colorLib] Fixed regression in 4.17.0 when building COLR v0 table; when color + layers are stored in UFO lib plist, we can't distinguish tuples from lists so + we need to accept either types (e5439eb9, googlefonts/ufo2ft/issues#426). + +4.17.0 (released 2020-11-12) +---------------------------- + +- [colorLib/otData] Updated to latest draft ``COLR`` v1 spec (#2092). +- [svgLib] Fixed parsing error when arc commands' boolean flags are not separated + by space or comma (#2094). +- [varLib] Interpret empty non-default glyphs as 'missing', if the default glyph is + not empty (#2082). +- [feaLib.builder] Only stash lookup location for ``Debg`` if ``Builder.buildLookups_`` + has cooperated (#2065, #2067). +- [varLib] Fixed bug in VarStore optimizer (#2073, #2083). +- [varLib] Add designspace lib key for custom feavar feature tag (#2080). +- Add HashPointPen adapted from psautohint. With this pen, a hash value of a glyph + can be computed, which can later be used to detect glyph changes (#2005). + +4.16.1 (released 2020-10-05) +---------------------------- + +- [varLib.instancer] Fixed ``TypeError`` exception when instantiating a VF with + a GSUB table 1.1 in which ``FeatureVariations`` attribute is present but set to + ``None`` -- indicating that optional ``FeatureVariations`` is missing (#2077). +- [glifLib] Make ``x`` and ``y`` attributes of the ``point`` element required + even when validation is turned off, and raise a meaningful ``GlifLibError`` + message when that happens (#2075). + +4.16.0 (released 2020-09-30) +---------------------------- + +- [removeOverlaps] Added new module and ``removeOverlaps`` function that merges + overlapping contours and components in TrueType glyphs. It requires the + `skia-pathops `__ module. + Note that removing overlaps invalidates the TrueType hinting (#2068). +- [varLib.instancer] Added ``--remove-overlaps`` command-line option. + The ``overlap`` option in ``instantiateVariableFont`` now takes an ``OverlapMode`` + enum: 0: KEEP_AND_DONT_SET_FLAGS, 1: KEEP_AND_SET_FLAGS (default), and 2: REMOVE. + The latter is equivalent to calling ``removeOverlaps`` on the generated static + instance. The option continues to accept ``bool`` value for backward compatibility. + + +4.15.0 (released 2020-09-21) +---------------------------- + +- [plistlib] Added typing annotations to plistlib module. Set up mypy static + typechecker to run automatically on CI (#2061). +- [ttLib] Implement private ``Debg`` table, a reverse-DNS namespaced JSON dict. +- [feaLib] Optionally add an entry into the ``Debg`` table with the original + lookup name (if any), feature name / script / language combination (if any), + and original source filename and line location. Annotate the ttx output for + a lookup with the information from the Debg table (#2052). +- [sfnt] Disabled checksum checking by default in ``SFNTReader`` (#2058). +- [Docs] Document ``mtiLib`` module (#2027). +- [varLib.interpolatable] Added checks for contour node count and operation type + of each node (#2054). +- [ttLib] Added API to register custom table packer/unpacker classes (#2055). + +4.14.0 (released 2020-08-19) +---------------------------- + +- [feaLib] Allow anonymous classes in LookupFlags definitions (#2037). +- [Docs] Better document DesignSpace rules processing order (#2041). +- [ttLib] Fixed 21-year old bug in ``maxp.maxComponentDepth`` calculation (#2044, + #2045). +- [varLib.models] Fixed misspelled argument name in CLI entry point (81d0042a). +- [subset] When subsetting GSUB v1.1, fixed TypeError by checking whether the + optional FeatureVariations table is present (e63ecc5b). +- [Snippets] Added snippet to show how to decompose glyphs in a TTF (#2030). +- [otlLib] Generate GSUB type 5 and GPOS type 7 contextual lookups where appropriate + (#2016). + +4.13.0 (released 2020-07-10) +---------------------------- + +- [feaLib/otlLib] Moved lookup subtable builders from feaLib to otlLib; refactored + some common code (#2004, #2007). +- [docs] Document otlLib module (#2009). +- [glifLib] Fixed bug with some UFO .glif filenames clashing on case-insensitive + filesystems (#2001, #2002). +- [colorLib] Updated COLRv1 implementation following changes in the draft spec: + (#2008, googlefonts/colr-gradients-spec#24). + +4.12.1 (released 2020-06-16) +---------------------------- + +- [_n_a_m_e] Fixed error in ``addMultilingualName`` with one-character names. + Only attempt to recovered malformed UTF-16 data from a ``bytes`` string, + not from unicode ``str`` (#1997, #1998). + +4.12.0 (released 2020-06-09) +---------------------------- + +- [otlLib/varLib] Ensure that the ``AxisNameID`` in the ``STAT`` and ``fvar`` + tables is grater than 255 as per OpenType spec (#1985, #1986). +- [docs] Document more modules in ``fontTools.misc`` package: ``filenames``, + ``fixedTools``, ``intTools``, ``loggingTools``, ``macCreatorType``, ``macRes``, + ``plistlib`` (#1981). +- [OS/2] Don't calculate whole sets of unicode codepoints, use faster and more memory + efficient ranges and bisect lookups (#1984). +- [voltLib] Support writing back abstract syntax tree as VOLT data (#1983). +- [voltLib] Accept DO_NOT_TOUCH_CMAP keyword (#1987). +- [subset/merge] Fixed a namespace clash involving a private helper class (#1955). + +4.11.0 (released 2020-05-28) +---------------------------- + +- [feaLib] Introduced ``includeDir`` parameter on Parser and IncludingLexer to + explicitly specify the directory to search when ``include()`` statements are + encountered (#1973). +- [ufoLib] Silently delete duplicate glyphs within the same kerning group when reading + groups (#1970). +- [ttLib] Set version of COLR table when decompiling COLRv1 (commit 9d8a7e2). + +4.10.2 (released 2020-05-20) +---------------------------- + +- [sfnt] Fixed ``NameError: SimpleNamespace`` while reading TTC header. The regression + was introduced with 4.10.1 after removing ``py23`` star import. + +4.10.1 (released 2020-05-19) +---------------------------- + +- [sfnt] Make ``SFNTReader`` pickleable even when TTFont is loaded with lazy=True + option and thus keeps a reference to an external file (#1962, #1967). +- [feaLib.ast] Restore backward compatibility (broken in 4.10 with #1905) for + ``ChainContextPosStatement`` and ``ChainContextSubstStatement`` classes. + Make them accept either list of lookups or list of lists of lookups (#1961). +- [docs] Document some modules in ``fontTools.misc`` package: ``arrayTools``, + ``bezierTools`` ``cliTools`` and ``eexec`` (#1956). +- [ttLib._n_a_m_e] Fixed ``findMultilingualName()`` when name record's ``string`` is + encoded as bytes sequence (#1963). + +4.10.0 (released 2020-05-15) +---------------------------- + +- [varLib] Allow feature variations to be active across the entire space (#1957). +- [ufoLib] Added support for ``formatVersionMinor`` in UFO's ``fontinfo.plist`` and for + ``formatMinor`` attribute in GLIF file as discussed in unified-font-object/ufo-spec#78. + No changes in reading or writing UFOs until an upcoming (non-0) minor update of the + UFO specification is published (#1786). +- [merge] Fixed merging fonts with different versions of ``OS/2`` table (#1865, #1952). +- [subset] Fixed ``AttributeError`` while subsetting ``ContextSubst`` and ``ContextPos`` + Format 3 subtable (#1879, #1944). +- [ttLib.table._m_e_t_a] if data happens to be ascii, emit comment in TTX (#1938). +- [feaLib] Support multiple lookups per glyph position (#1905). +- [psCharStrings] Use inheritance to avoid repeated code in initializer (#1932). +- [Doc] Improved documentation for the following modules: ``afmLib`` (#1933), ``agl`` + (#1934), ``cffLib`` (#1935), ``cu2qu`` (#1937), ``encodings`` (#1940), ``feaLib`` + (#1941), ``merge`` (#1949). +- [Doc] Split off developer-centric info to new page, making front page of docs more + user-focused. List all utilities and sub-modules with brief descriptions. + Make README more concise and focused (#1914). +- [otlLib] Add function to build STAT table from high-level description (#1926). +- [ttLib._n_a_m_e] Add ``findMultilingualName()`` method (#1921). +- [unicodedata] Update ``RTL_SCRIPTS`` for Unicode 13.0 (#1925). +- [gvar] Sort ``gvar`` XML output by glyph name, not glyph order (#1907, #1908). +- [Doc] Added help options to ``fonttools`` command line tool (#1913, #1920). + Ensure all fonttools CLI tools have help documentation (#1948). +- [ufoLib] Only write fontinfo.plist when there actually is content (#1911). + +4.9.0 (released 2020-04-29) +--------------------------- + +- [subset] Fixed subsetting of FeatureVariations table. The subsetter no longer drops + FeatureVariationRecords that have empty substitutions as that will keep the search + going and thus change the logic. It will only drop empty records that occur at the + end of the FeatureVariationRecords array (#1881). +- [subset] Remove FeatureVariations table and downgrade GSUB/GPOS to version 0x10000 + when FeatureVariations contain no FeatureVariationRecords after subsetting (#1903). +- [agl] Add support for legacy Adobe Glyph List of glyph names in ``fontTools.agl`` + (#1895). +- [feaLib] Ignore superfluous script statements (#1883). +- [feaLib] Hide traceback by default on ``fonttools feaLib`` command line. + Use ``--traceback`` option to show (#1898). +- [feaLib] Check lookup index in chaining sub/pos lookups and print better error + message (#1896, #1897). +- [feaLib] Fix building chained alt substitutions (#1902). +- [Doc] Included all fontTools modules in the sphinx-generated documentation, and + published it to ReadTheDocs for continuous documentation of the fontTools project + (#1333). Check it out at https://fonttools.readthedocs.io/. Thanks to Chris Simpkins! +- [transform] The ``Transform`` class is now subclass of ``typing.NamedTuple``. No + change in functionality (#1904). + + +4.8.1 (released 2020-04-17) +--------------------------- + +- [feaLib] Fixed ``AttributeError: 'NoneType' has no attribute 'getAlternateGlyphs'`` + when ``aalt`` feature references a chain contextual substitution lookup + (googlefonts/fontmake#648, #1878). + +4.8.0 (released 2020-04-16) +--------------------------- + +- [feaLib] If Parser is initialized without a ``glyphNames`` parameter, it cannot + distinguish between a glyph name containing an hyphen, or a range of glyph names; + instead of raising an error, it now interprets them as literal glyph names, while + also outputting a logging warning to alert user about the ambiguity (#1768, #1870). +- [feaLib] When serializing AST to string, emit spaces around hyphens that denote + ranges. Also, fixed an issue with CID ranges when round-tripping AST->string->AST + (#1872). +- [Snippets/otf2ttf] In otf2ttf.py script update LSB in hmtx to match xMin (#1873). +- [colorLib] Added experimental support for building ``COLR`` v1 tables as per + the `colr-gradients-spec `__ + draft proposal. **NOTE**: both the API and the XML dump of ``COLR`` v1 are + susceptible to change while the proposal is being discussed and formalized (#1822). + +4.7.0 (released 2020-04-03) +--------------------------- + +- [cu2qu] Added ``fontTools.cu2qu`` package, imported from the original + `cu2qu `__ project. The ``cu2qu.pens`` module + was moved to ``fontTools.pens.cu2quPen``. The optional cu2qu extension module + can be compiled by installing `Cython `__ before installing + fonttools from source (i.e. git repo or sdist tarball). The wheel package that + is published on PyPI (i.e. the one ``pip`` downloads, unless ``--no-binary`` + option is used), will continue to be pure-Python for now (#1868). + +4.6.0 (released 2020-03-24) +--------------------------- + +- [varLib] Added support for building variable ``BASE`` table version 1.1 (#1858). +- [CPAL] Added ``fromRGBA`` method to ``Color`` class (#1861). + + +4.5.0 (released 2020-03-20) +--------------------------- + +- [designspaceLib] Added ``add{Axis,Source,Instance,Rule}Descriptor`` methods to + ``DesignSpaceDocument`` class, to initialize new descriptor objects using keyword + arguments, and at the same time append them to the current document (#1860). +- [unicodedata] Update to Unicode 13.0 (#1859). + +4.4.3 (released 2020-03-13) +--------------------------- + +- [varLib] Always build ``gvar`` table for TrueType-flavored Variable Fonts, + even if it contains no variation data. The table is required according to + the OpenType spec (#1855, #1857). + +4.4.2 (released 2020-03-12) +--------------------------- + +- [ttx] Annotate ``LookupFlag`` in XML dump with comment explaining what bits + are set and what they mean (#1850). +- [feaLib] Added more descriptive message to ``IncludedFeaNotFound`` error (#1842). + +4.4.1 (released 2020-02-26) +--------------------------- + +- [woff2] Skip normalizing ``glyf`` and ``loca`` tables if these are missing from + a font (e.g. in NotoColorEmoji using ``CBDT/CBLC`` tables). +- [timeTools] Use non-localized date parsing in ``timestampFromString``, to fix + error when non-English ``LC_TIME`` locale is set (#1838, #1839). +- [fontBuilder] Make sure the CFF table generated by fontBuilder can be used by varLib + without having to compile and decompile the table first. This was breaking in + converting the CFF table to CFF2 due to some unset attributes (#1836). + +4.4.0 (released 2020-02-18) +--------------------------- + +- [colorLib] Added ``fontTools.colorLib.builder`` module, initially with ``buildCOLR`` + and ``buildCPAL`` public functions. More color font formats will follow (#1827). +- [fontBuilder] Added ``setupCOLR`` and ``setupCPAL`` methods (#1826). +- [ttGlyphPen] Quantize ``GlyphComponent.transform`` floats to ``F2Dot14`` to fix + round-trip issue when computing bounding boxes of transformed components (#1830). +- [glyf] If a component uses reference points (``firstPt`` and ``secondPt``) for + alignment (instead of X and Y offsets), compute the effective translation offset + *after* having applied any transform (#1831). +- [glyf] When all glyphs have zero contours, compile ``glyf`` table data as a single + null byte in order to pass validation by OTS and Windows (#1829). +- [feaLib] Parsing feature code now ensures that referenced glyph names are part of + the known glyph set, unless a glyph set was not provided. +- [varLib] When filling in the default axis value for a missing location of a source or + instance, correctly map the value forward. +- [varLib] The avar table can now contain mapping output values that are greater than + OR EQUAL to the preceeding value, as the avar specification allows this. +- [varLib] The errors of the module are now ordered hierarchically below VarLibError. + See #1821. + +4.3.0 (released 2020-02-03) +--------------------------- + +- [EBLC/CBLC] Fixed incorrect padding length calculation for Format 3 IndexSubTable + (#1817, #1818). +- [varLib] Fixed error when merging OTL tables and TTFonts were loaded as ``lazy=True`` + (#1808, #1809). +- [varLib] Allow to use master fonts containing ``CFF2`` table when building VF (#1816). +- [ttLib] Make ``recalcBBoxes`` option work also with ``CFF2`` table (#1816). +- [feaLib] Don't reset ``lookupflag`` in lookups defined inside feature blocks. + They will now inherit the current ``lookupflag`` of the feature. This is what + Adobe ``makeotf`` also does in this case (#1815). +- [feaLib] Fixed bug with mixed single/multiple substitutions. If a single substitution + involved a glyph class, we were incorrectly using only the first glyph in the class + (#1814). + +4.2.5 (released 2020-01-29) +--------------------------- + +- [feaLib] Do not fail on duplicate multiple substitutions, only warn (#1811). +- [subset] Optimize SinglePos subtables to Format 1 if all ValueRecords are the same + (#1802). + +4.2.4 (released 2020-01-09) +--------------------------- + +- [unicodedata] Update RTL_SCRIPTS for Unicode 11 and 12. + +4.2.3 (released 2020-01-07) +--------------------------- + +- [otTables] Fixed bug when splitting `MarkBasePos` subtables as offsets overflow. + The mark class values in the split subtable were not being updated, leading to + invalid mark-base attachments (#1797, googlefonts/noto-source#145). +- [feaLib] Only log a warning instead of error when features contain duplicate + substitutions (#1767). +- [glifLib] Strip XML comments when parsing with lxml (#1784, #1785). + +4.2.2 (released 2019-12-12) +--------------------------- + +- [subset] Fixed issue with subsetting FeatureVariations table when the index + of features changes as features get dropped. The feature index need to be + remapped to point to index of the remaining features (#1777, #1782). +- [fontBuilder] Added `addFeatureVariations` method to `FontBuilder` class. This + is a shorthand for calling `featureVars.addFeatureVariations` on the builder's + TTFont object (#1781). +- [glyf] Fixed the flags bug in glyph.drawPoints() like we did for glyph.draw() + (#1771, #1774). + +4.2.1 (released 2019-12-06) +--------------------------- + +- [glyf] Use the ``flagOnCurve`` bit mask in ``glyph.draw()``, so that we ignore + the ``overlap`` flag that may be set when instantiating variable fonts (#1771). + +4.2.0 (released 2019-11-28) +--------------------------- + +- [pens] Added the following pens: + + * ``roundingPen.RoundingPen``: filter pen that rounds coordinates and components' + offsets to integer; + * ``roundingPen.RoundingPointPen``: like the above, but using PointPen protocol. + * ``filterPen.FilterPointPen``: base class for filter point pens; + * ``transformPen.TransformPointPen``: filter point pen to apply affine transform; + * ``recordingPen.RecordingPointPen``: records and replays point-pen commands. + +- [ttGlyphPen] Always round float coordinates and component offsets to integers + (#1763). +- [ufoLib] When converting kerning groups from UFO2 to UFO3, avoid confusing + groups with the same name as one of the glyphs (#1761, #1762, + unified-font-object/ufo-spec#98). + +4.1.0 (released 2019-11-18) +--------------------------- + +- [instancer] Implemented restricting axis ranges (level 3 partial instancing). + You can now pass ``{axis_tag: (min, max)}`` tuples as input to the + ``instantiateVariableFont`` function. Note that changing the default axis + position is not supported yet. The command-line script also accepts axis ranges + in the form of colon-separated float values, e.g. ``wght=400:700`` (#1753, #1537). +- [instancer] Never drop STAT ``DesignAxis`` records, but only prune out-of-range + ``AxisValue`` records. +- [otBase/otTables] Enforce that VarStore.RegionAxisCount == fvar.axisCount, even + when regions list is empty to appease OTS < v8.0 (#1752). +- [designspaceLib] Defined new ``processing`` attribute for ```` element, + with values "first" or "last", plus other editorial changes to DesignSpace + specification. Bumped format version to 4.1 (#1750). +- [varLib] Improved error message when masters' glyph orders do not match (#1758, + #1759). +- [featureVars] Allow to specify custom feature tag in ``addFeatureVariations``; + allow said feature to already exist, in which case we append new lookup indices + to existing features. Implemented ```` attribute ``processing`` according to + DesignSpace specification update in #1750. Depending on this flag, we generate + either an 'rvrn' (always processed first) or a 'rclt' feature (follows lookup order, + therefore last) (#1747, #1625, #1371). +- [ttCollection] Added support for context manager auto-closing via ``with`` statement + like with ``TTFont`` (#1751). +- [unicodedata] Require unicodedata2 >= 12.1.0. +- [py2.py3] Removed yet more PY2 vestiges (#1743). +- [_n_a_m_e] Fixed issue when comparing NameRecords with different string types (#1742). +- [fixedTools] Changed ``fixedToFloat`` to not do any rounding but simply return + ``value / (1 << precisionBits)``. Added ``floatToFixedToStr`` and + ``strToFixedToFloat`` functions to be used when loading from or dumping to XML. + Fixed values (e.g. fvar axes and instance coordinates, avar mappings, etc.) are + are now stored as un-rounded decimal floats upon decompiling (#1740, #737). +- [feaLib] Fixed handling of multiple ``LigatureCaret`` statements for the same glyph. + Only the first rule per glyph is used, additional ones are ignored (#1733). + +4.0.2 (released 2019-09-26) +--------------------------- + +- [voltLib] Added support for ``ALL`` and ``NONE`` in ``PROCESS_MARKS`` (#1732). +- [Silf] Fixed issue in ``Silf`` table compilation and decompilation regarding str vs + bytes in python3 (#1728). +- [merge] Handle duplicate glyph names better: instead of appending font index to + all glyph names, use similar code like we use in ``post`` and ``CFF`` tables (#1729). + +4.0.1 (released 2019-09-11) +--------------------------- + +- [otTables] Support fixing offset overflows in ``MultipleSubst`` lookup subtables + (#1706). +- [subset] Prune empty strikes in ``EBDT`` and ``CBDT`` table data (#1698, #1633). +- [pens] Fixed issue in ``PointToSegmentPen`` when last point of closed contour has + same coordinates as the starting point and was incorrectly dropped (#1720). +- [Graphite] Fixed ``Sill`` table output to pass OTS (#1705). +- [name] Added ``removeNames`` method to ``table__n_a_m_e`` class (#1719). +- [ttLib] Added aliases for renamed entries ``ascender`` and ``descender`` in + ``hhea`` table (#1715). + +4.0.0 (released 2019-08-22) +--------------------------- + +- NOTE: The v4.x version series only supports Python 3.6 or greater. You can keep + using fonttools 3.x if you need support for Python 2. +- [py23] Removed all the python2-only code since it is no longer reachable, thus + unused; only the Python3 symbols were kept, but these are no-op. The module is now + DEPRECATED and will removed in the future. +- [ttLib] Fixed UnboundLocalError for empty loca/glyph tables (#1680). Also, allow + the glyf table to be incomplete when dumping to XML (#1681). +- [varLib.models] Fixed KeyError while sorting masters and there are no on-axis for + a given axis (38a8eb0e). +- [cffLib] Make sure glyph names are unique (#1699). +- [feaLib] Fix feature parser to correctly handle octal numbers (#1700). + +\... see `here `__ for earlier changes diff --git a/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/RECORD b/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/RECORD new file mode 100644 index 0000000..c1aaa59 --- /dev/null +++ b/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/RECORD @@ -0,0 +1,689 @@ +../../../bin/fonttools,sha256=XY7u1_mamLAWqXIv46tAnEqJQUul5d6nm1ZXlJfKDls,254 +../../../bin/pyftmerge,sha256=Q3yakbyMuWt6bobTo9nd33NSRWo8WYt-jIvKQybBA90,251 +../../../bin/pyftsubset,sha256=JmGOOPbUt3mSk6LJzqlpHMoHnmqRsqaBexZ6p7Sr7dw,252 +../../../bin/ttx,sha256=jVnu4OErOZBsDdRvVzbch44axdN5uPRI_-_NEoXccpE,249 +../../../share/man/man1/ttx.1,sha256=cLbm_pOOj1C76T2QXvDxzwDj9gk-GTd5RztvTMsouFw,5377 +fontTools/__init__.py,sha256=MfqTqdwYD_P2HKtnQkjibL8iy5ln62P1VIO9tT5epww,183 +fontTools/__main__.py,sha256=VjkGh1UD-i1zTDA1dXo1uecSs6PxHdGQ5vlCk_mCCYs,925 +fontTools/__pycache__/__init__.cpython-311.pyc,, +fontTools/__pycache__/__main__.cpython-311.pyc,, +fontTools/__pycache__/afmLib.cpython-311.pyc,, +fontTools/__pycache__/agl.cpython-311.pyc,, +fontTools/__pycache__/annotations.cpython-311.pyc,, +fontTools/__pycache__/fontBuilder.cpython-311.pyc,, +fontTools/__pycache__/help.cpython-311.pyc,, +fontTools/__pycache__/tfmLib.cpython-311.pyc,, +fontTools/__pycache__/ttx.cpython-311.pyc,, +fontTools/__pycache__/unicode.cpython-311.pyc,, +fontTools/afmLib.py,sha256=1MagIItOzRV4vV5kKPxeDZbPJsfxLB3wdHLFkQvl0uk,13164 +fontTools/agl.py,sha256=05bm8Uq45uVWW8nPbP6xbNgmFyxQr8sWhYAiP0VSjnI,112975 +fontTools/annotations.py,sha256=BdIIriNYDzBfgniwWFg_u71qLZnV0sCcn4-VAkXkYNM,1225 +fontTools/cffLib/CFF2ToCFF.py,sha256=nc7eTW8NDMLHCQzpFMJKXJnDCD5NAwEeztHSHt_xES0,7424 +fontTools/cffLib/CFFToCFF2.py,sha256=Qnk7lYlsTRHnlZQ6NXNdr_f4MJwZQ21kcS08KFbsyY8,10119 +fontTools/cffLib/__init__.py,sha256=62vpcR7u8cE407kXduAwnFttHnsoCpDQ7IBK-qOYFQ8,107886 +fontTools/cffLib/__pycache__/CFF2ToCFF.cpython-311.pyc,, +fontTools/cffLib/__pycache__/CFFToCFF2.cpython-311.pyc,, +fontTools/cffLib/__pycache__/__init__.cpython-311.pyc,, +fontTools/cffLib/__pycache__/specializer.cpython-311.pyc,, +fontTools/cffLib/__pycache__/transforms.cpython-311.pyc,, +fontTools/cffLib/__pycache__/width.cpython-311.pyc,, +fontTools/cffLib/specializer.py,sha256=vsOPkR_jHNe6tESQEjmm0i76y7sWI5MKo3bsTmI3sNM,32609 +fontTools/cffLib/transforms.py,sha256=SEIZc1XxWYiVXVBsoNm6LTvM9SUN7Z76QOaSAlR1ZCo,17455 +fontTools/cffLib/width.py,sha256=IqGL0CLyCZqi_hvsHySG08qpYxS3kaqW-tsAT-bjHV4,6074 +fontTools/colorLib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +fontTools/colorLib/__pycache__/__init__.cpython-311.pyc,, +fontTools/colorLib/__pycache__/builder.cpython-311.pyc,, +fontTools/colorLib/__pycache__/errors.cpython-311.pyc,, +fontTools/colorLib/__pycache__/geometry.cpython-311.pyc,, +fontTools/colorLib/__pycache__/table_builder.cpython-311.pyc,, +fontTools/colorLib/__pycache__/unbuilder.cpython-311.pyc,, +fontTools/colorLib/builder.py,sha256=kmO7OuudQQb3fEOS7aLzgTDVjqS9i2xIQmk9p1uBe8A,23008 +fontTools/colorLib/errors.py,sha256=CsaviiRxxrpgVX4blm7KCyK8553ljwL44xkJOeC5U7U,41 +fontTools/colorLib/geometry.py,sha256=3ScySrR2YDJa7d5K5_xM5Yt1-3NCV-ry8ikYA5VwVbI,5518 +fontTools/colorLib/table_builder.py,sha256=ZeltWY6n-YPiJv_hQ1iBXoEFAG70EKxZyScgsMKUFGU,7469 +fontTools/colorLib/unbuilder.py,sha256=iW-E5I39WsV82K3NgCO4Cjzwm1WqzGrtypHt8epwbHM,2142 +fontTools/config/__init__.py,sha256=JICOHIz06KuHCiBmrxj-ga19P6ZTuLXh0lHmPh-Ra1w,3154 +fontTools/config/__pycache__/__init__.cpython-311.pyc,, +fontTools/cu2qu/__init__.py,sha256=Cuc7Uglb0nSgaraTxXY5J8bReznH5wApW0uakN7MycY,618 +fontTools/cu2qu/__main__.py,sha256=kTUI-jczsHeelULLlory74QEeFjZWp9zigCc7PrdVQY,92 +fontTools/cu2qu/__pycache__/__init__.cpython-311.pyc,, +fontTools/cu2qu/__pycache__/__main__.cpython-311.pyc,, +fontTools/cu2qu/__pycache__/benchmark.cpython-311.pyc,, +fontTools/cu2qu/__pycache__/cli.cpython-311.pyc,, +fontTools/cu2qu/__pycache__/cu2qu.cpython-311.pyc,, +fontTools/cu2qu/__pycache__/errors.cpython-311.pyc,, +fontTools/cu2qu/__pycache__/ufo.cpython-311.pyc,, +fontTools/cu2qu/benchmark.py,sha256=wasPJmf8q9k9UHjpHChC3WQAGbBAyHN9PvJzXvWC0Fw,1296 +fontTools/cu2qu/cli.py,sha256=MbAQnOpZwrUFe_tjAP3Tgf6uLdOgHlONUcPNeTXwH0Y,6076 +fontTools/cu2qu/cu2qu.c,sha256=-7JwWBSeJ3I4vIs6ZaSVHzfBf46MSx25lG05NRqA6Zg,637967 +fontTools/cu2qu/cu2qu.cpython-311-x86_64-linux-gnu.so,sha256=ibfHz85RQDzgTYskQv6J1xeIJH5CcRTH2vrPi-g2O20,1125736 +fontTools/cu2qu/cu2qu.py,sha256=6LTe1ZI-jxW8y79s_UFjbkeFoFleIekTLm2jAE-uqGQ,17986 +fontTools/cu2qu/errors.py,sha256=PyJNMy8lHDtKpfFkc0nkM8F4jNLZAC4lPQCN1Km4bpg,2441 +fontTools/cu2qu/ufo.py,sha256=qZR70uWdCia19Ff8GLn5NeItscvvn69DegjDZVF4eNI,11794 +fontTools/designspaceLib/__init__.py,sha256=NGIC5zaq0NDdSkOyl6-i327cAzgCS3jeayEDvMEXRwY,129263 +fontTools/designspaceLib/__main__.py,sha256=xhtYXo1T1tsykhQDD0tcconSNYgWL5hoTBORpVDUYrc,103 +fontTools/designspaceLib/__pycache__/__init__.cpython-311.pyc,, +fontTools/designspaceLib/__pycache__/__main__.cpython-311.pyc,, +fontTools/designspaceLib/__pycache__/split.cpython-311.pyc,, +fontTools/designspaceLib/__pycache__/statNames.cpython-311.pyc,, +fontTools/designspaceLib/__pycache__/types.cpython-311.pyc,, +fontTools/designspaceLib/split.py,sha256=FB1NuvhUO453UXveQZi9oyrW_caoCPM3RADp1rYWkDs,19239 +fontTools/designspaceLib/statNames.py,sha256=gXGKWVr1ju2_oL-R_DkyoZ3GlI7mfLORovpk1Ebgmvc,9237 +fontTools/designspaceLib/types.py,sha256=ofK65qXNADqcpl7zI72Pa5s07-cm7G41iEmLVV44-Es,5320 +fontTools/encodings/MacRoman.py,sha256=4vEooUDm2gLCG8KIIDhRxm5-A64w7XrhP9cjDRr2Eo0,3576 +fontTools/encodings/StandardEncoding.py,sha256=Eo3AGE8FE_p-IVYYuV097KouSsF3UrXoRRN0XyvYbrs,3581 +fontTools/encodings/__init__.py,sha256=DJBWmoX_Haau7qlgmvWyfbhSzrX2qL636Rns7CG01pk,75 +fontTools/encodings/__pycache__/MacRoman.cpython-311.pyc,, +fontTools/encodings/__pycache__/StandardEncoding.cpython-311.pyc,, +fontTools/encodings/__pycache__/__init__.cpython-311.pyc,, +fontTools/encodings/__pycache__/codecs.cpython-311.pyc,, +fontTools/encodings/codecs.py,sha256=u50ruwz9fcRsrUrRGpR17Cr55Ovn1fvCHCKrElVumDE,4721 +fontTools/feaLib/__init__.py,sha256=jlIru2ghxvb1HhC5Je2BCXjFJmFQlYKpruorPoz3BvQ,213 +fontTools/feaLib/__main__.py,sha256=Df2PA6LXwna98lSXiL7R4as_ZEdWCIk3egSM5w7GpvM,2240 +fontTools/feaLib/__pycache__/__init__.cpython-311.pyc,, +fontTools/feaLib/__pycache__/__main__.cpython-311.pyc,, +fontTools/feaLib/__pycache__/ast.cpython-311.pyc,, +fontTools/feaLib/__pycache__/builder.cpython-311.pyc,, +fontTools/feaLib/__pycache__/error.cpython-311.pyc,, +fontTools/feaLib/__pycache__/lexer.cpython-311.pyc,, +fontTools/feaLib/__pycache__/location.cpython-311.pyc,, +fontTools/feaLib/__pycache__/lookupDebugInfo.cpython-311.pyc,, +fontTools/feaLib/__pycache__/parser.cpython-311.pyc,, +fontTools/feaLib/__pycache__/variableScalar.cpython-311.pyc,, +fontTools/feaLib/ast.py,sha256=48Y6vpSD_wYfucWyh_bQtzf2AQFX-pOwBvsxdcpVDz0,74158 +fontTools/feaLib/builder.py,sha256=jIJVmaLwrNGFBO7mQDNpchiGBiv70nNpZ4LVRVaaIUM,73757 +fontTools/feaLib/error.py,sha256=Bz_5tNcNVcY7_nrAmFlQNhQldtqZWd8WUGQ2E3PWhZo,648 +fontTools/feaLib/lexer.c,sha256=UaY5Hy0WYsGF9UMJnA2tMx0k5DwYA72N2IKxpRsAcCc,754285 +fontTools/feaLib/lexer.cpython-311-x86_64-linux-gnu.so,sha256=jn5guCmWZcx1RY96votqKoclyskHfjG9sha2aobM3h4,1536464 +fontTools/feaLib/lexer.py,sha256=emyMPmRoqNZkzxnJyI6JRCCtXrbCOFofwa9O6ABGLiw,11121 +fontTools/feaLib/location.py,sha256=JXzHqGV56EHdcq823AwA5oaK05hf_1ySWpScbo3zGC0,234 +fontTools/feaLib/lookupDebugInfo.py,sha256=gVRr5-APWfT_a5-25hRuawSVX8fEvXVsOSLWkH91T2w,304 +fontTools/feaLib/parser.py,sha256=E8Ey_Ft2TUbbleRJkCQ9Nmjn1VZ4SCt3UtLACcZqr2s,99716 +fontTools/feaLib/variableScalar.py,sha256=f6sOg9cfFJRI3fw04uRohDeFux0xnZanaPT_lcxAVOw,4200 +fontTools/fontBuilder.py,sha256=yF2-IYl_hao-Zy_FWSI4R-HnlFpzFrz0YBGQO8zfaOs,34130 +fontTools/help.py,sha256=bAjatvIhV7TJyXI7WhsxdYO4YVlhScZXu_kRtHANEPo,1125 +fontTools/merge/__init__.py,sha256=8i6ownyQTAOBKWnTEHvvCYFw64Mv7Z1HPBgJI-ZiuKo,8256 +fontTools/merge/__main__.py,sha256=hDx3gfbUBO83AJKumSEhiV-xqNTJNNgK2uFjazOGTmw,94 +fontTools/merge/__pycache__/__init__.cpython-311.pyc,, +fontTools/merge/__pycache__/__main__.cpython-311.pyc,, +fontTools/merge/__pycache__/base.cpython-311.pyc,, +fontTools/merge/__pycache__/cmap.cpython-311.pyc,, +fontTools/merge/__pycache__/layout.cpython-311.pyc,, +fontTools/merge/__pycache__/options.cpython-311.pyc,, +fontTools/merge/__pycache__/tables.cpython-311.pyc,, +fontTools/merge/__pycache__/unicode.cpython-311.pyc,, +fontTools/merge/__pycache__/util.cpython-311.pyc,, +fontTools/merge/base.py,sha256=l0G1Px98E9ZdVuFLMUBKWdtr7Jb8JX8vxcjeaDUUnzY,2389 +fontTools/merge/cmap.py,sha256=HpthxVH5lA7VegJ8yHoBjd9vrFBV7UB5OknKGYpxWY8,6728 +fontTools/merge/layout.py,sha256=fkMPGPLxEdxohS3scVM4W7LmNthSz-UPyocsffe2KqE,16075 +fontTools/merge/options.py,sha256=xko_1-WErcNQkirECzIOOYxSJR_bRtdQYQYOtmgccYI,2501 +fontTools/merge/tables.py,sha256=7SzXYL04awDEDhvU2-9T_8A2gAjvgGyYAHUICUJOpZg,10958 +fontTools/merge/unicode.py,sha256=kb1Jrfuoq1KUcVhhSKnflAED_wMZxXDjVwB-CI9k05Y,4273 +fontTools/merge/util.py,sha256=BH3bZWNFy-Tsj1cth7aSpGVJ18YXKXqDakPn6Wzku6U,3378 +fontTools/misc/__init__.py,sha256=DJBWmoX_Haau7qlgmvWyfbhSzrX2qL636Rns7CG01pk,75 +fontTools/misc/__pycache__/__init__.cpython-311.pyc,, +fontTools/misc/__pycache__/arrayTools.cpython-311.pyc,, +fontTools/misc/__pycache__/bezierTools.cpython-311.pyc,, +fontTools/misc/__pycache__/classifyTools.cpython-311.pyc,, +fontTools/misc/__pycache__/cliTools.cpython-311.pyc,, +fontTools/misc/__pycache__/configTools.cpython-311.pyc,, +fontTools/misc/__pycache__/cython.cpython-311.pyc,, +fontTools/misc/__pycache__/dictTools.cpython-311.pyc,, +fontTools/misc/__pycache__/eexec.cpython-311.pyc,, +fontTools/misc/__pycache__/encodingTools.cpython-311.pyc,, +fontTools/misc/__pycache__/enumTools.cpython-311.pyc,, +fontTools/misc/__pycache__/etree.cpython-311.pyc,, +fontTools/misc/__pycache__/filenames.cpython-311.pyc,, +fontTools/misc/__pycache__/fixedTools.cpython-311.pyc,, +fontTools/misc/__pycache__/intTools.cpython-311.pyc,, +fontTools/misc/__pycache__/iterTools.cpython-311.pyc,, +fontTools/misc/__pycache__/lazyTools.cpython-311.pyc,, +fontTools/misc/__pycache__/loggingTools.cpython-311.pyc,, +fontTools/misc/__pycache__/macCreatorType.cpython-311.pyc,, +fontTools/misc/__pycache__/macRes.cpython-311.pyc,, +fontTools/misc/__pycache__/psCharStrings.cpython-311.pyc,, +fontTools/misc/__pycache__/psLib.cpython-311.pyc,, +fontTools/misc/__pycache__/psOperators.cpython-311.pyc,, +fontTools/misc/__pycache__/py23.cpython-311.pyc,, +fontTools/misc/__pycache__/roundTools.cpython-311.pyc,, +fontTools/misc/__pycache__/sstruct.cpython-311.pyc,, +fontTools/misc/__pycache__/symfont.cpython-311.pyc,, +fontTools/misc/__pycache__/testTools.cpython-311.pyc,, +fontTools/misc/__pycache__/textTools.cpython-311.pyc,, +fontTools/misc/__pycache__/timeTools.cpython-311.pyc,, +fontTools/misc/__pycache__/transform.cpython-311.pyc,, +fontTools/misc/__pycache__/treeTools.cpython-311.pyc,, +fontTools/misc/__pycache__/vector.cpython-311.pyc,, +fontTools/misc/__pycache__/visitor.cpython-311.pyc,, +fontTools/misc/__pycache__/xmlReader.cpython-311.pyc,, +fontTools/misc/__pycache__/xmlWriter.cpython-311.pyc,, +fontTools/misc/arrayTools.py,sha256=jZk__GE-K9VViZE_H-LPPj0smWbKng-yfPE8BfGp8HI,11483 +fontTools/misc/bezierTools.c,sha256=mFo2nrmrIq11WJ8Tj_cxR4M6U3tx75RVPcU-ODkHrbg,1821732 +fontTools/misc/bezierTools.cpython-311-x86_64-linux-gnu.so,sha256=pxrbjX0Kn0Q9klcMQn469xc3VD3v_ne0750kSzcBeAg,5067464 +fontTools/misc/bezierTools.py,sha256=OmR3pzCGExNvZyTPrByH7gQHpAJsYOl1cmvfYQIVfQA,45038 +fontTools/misc/classifyTools.py,sha256=zcg3EM4GOerBW9c063ljaLllgeeZ772EpFZjp9CdgLI,5613 +fontTools/misc/cliTools.py,sha256=qCznJMLCQu3ZHQD_4ctUnr3TkfAUdkGl-UuxZUrppy0,1862 +fontTools/misc/configTools.py,sha256=YXBE_vL2dMWCnK4oY3vtU15B79q82DtKp7h7XRqJc1Q,11188 +fontTools/misc/cython.py,sha256=eyLcL2Bw-SSToYro8f44dkkYRlQfiFbhcza0afS-qHE,682 +fontTools/misc/dictTools.py,sha256=VxjarsGJuk_wa3z29FSCtKZNCFfXtMBiNEu0RPAlpDk,2417 +fontTools/misc/eexec.py,sha256=GNn2OCRvO1HbbIeDPxk9i0glO7cux_AQaoVMXhBR8y8,3331 +fontTools/misc/encodingTools.py,sha256=hCv5PFfnXQJVCZA8Wyn1vr3vzLBbUuEPtGk5CzWM9RY,2073 +fontTools/misc/enumTools.py,sha256=YQZW-d2ES9KFFkAXOUMIBbRUk6v_3BT6Q7lXE1ufhxA,502 +fontTools/misc/etree.py,sha256=ZzJc6TvAS579deAgZLVDvTY_HeTm-ZsKJ5s3LYhZSSY,16304 +fontTools/misc/filenames.py,sha256=MMCO3xjk1pcDc-baobcKd8IdoFPt-bcGqu8t8HUGAkI,8223 +fontTools/misc/filesystem/__init__.py,sha256=iwoOj6DpXKk8q-NRRHqOfRxFF6lcXIhsIA46j-cZswU,2011 +fontTools/misc/filesystem/__pycache__/__init__.cpython-311.pyc,, +fontTools/misc/filesystem/__pycache__/_base.cpython-311.pyc,, +fontTools/misc/filesystem/__pycache__/_copy.cpython-311.pyc,, +fontTools/misc/filesystem/__pycache__/_errors.cpython-311.pyc,, +fontTools/misc/filesystem/__pycache__/_info.cpython-311.pyc,, +fontTools/misc/filesystem/__pycache__/_osfs.cpython-311.pyc,, +fontTools/misc/filesystem/__pycache__/_path.cpython-311.pyc,, +fontTools/misc/filesystem/__pycache__/_subfs.cpython-311.pyc,, +fontTools/misc/filesystem/__pycache__/_tempfs.cpython-311.pyc,, +fontTools/misc/filesystem/__pycache__/_tools.cpython-311.pyc,, +fontTools/misc/filesystem/__pycache__/_walk.cpython-311.pyc,, +fontTools/misc/filesystem/__pycache__/_zipfs.cpython-311.pyc,, +fontTools/misc/filesystem/_base.py,sha256=p74O7xREadfPQgzPJ9mP3ehu0ZHDgsmXlpsL9CnTRso,4010 +fontTools/misc/filesystem/_copy.py,sha256=ifMSs-A_bz1Aa4tIQrlUd9HtdJQ5fp5M3B6mbYuDtXI,1361 +fontTools/misc/filesystem/_errors.py,sha256=-YziRB1BT1I80ypmufvCR-M_4XoerCHyBVqX-cRnIzU,641 +fontTools/misc/filesystem/_info.py,sha256=pbV7bDTJ5F8ms6alK34J0FZYWzmRO7FT0NM3yRA3czo,2013 +fontTools/misc/filesystem/_osfs.py,sha256=RkKCE2IxcRaj7gyqFW10LhEm_-VJYtXxsS5s0DCXihM,5737 +fontTools/misc/filesystem/_path.py,sha256=frP6ZLmMeP9E3NiwoCbbgBPWpQbLBRh7T-0vOE-EuPo,1745 +fontTools/misc/filesystem/_subfs.py,sha256=vRotQwyLVfINbR88xIBQUbq9j4Kmg1_mJvEhnpvK_t4,3028 +fontTools/misc/filesystem/_tempfs.py,sha256=9FUXdCBTwFtZMFx8ghYuZVYoQdDb0tDB-jXNu3D-Qy0,924 +fontTools/misc/filesystem/_tools.py,sha256=r75dpadp7C9EdQ6r7pJQKZlCZDUJzVq2ikb_LXN-wCI,972 +fontTools/misc/filesystem/_walk.py,sha256=KMQ-GavWYr4SsA5V8ohLPmz3boilvY2P0JKrLoxW6NU,1655 +fontTools/misc/filesystem/_zipfs.py,sha256=i3qolbkDRntB_oL3v79KuEgfVlVojecPBnBA0X04PWc,6301 +fontTools/misc/fixedTools.py,sha256=gsotTCOJLyMis13M4_jQJ8-QPob2Gl2TtNJhW6FER1I,7647 +fontTools/misc/intTools.py,sha256=l6pjk4UYlXcyLtfC0DdOC5RL6UJ8ihRR0zRiYow5xA8,586 +fontTools/misc/iterTools.py,sha256=17H6LPZszp32bTKoNorp6uZF1PKj47BAbe5QG8irUjo,390 +fontTools/misc/lazyTools.py,sha256=BC6MmF-OzJ3GrBD8TYDZ-VCSN4UOx0pN0r3oF4GSoiw,1020 +fontTools/misc/loggingTools.py,sha256=NOYROsLK5TzONK5967OGdVonNyXC6kP_CmPr7M2PW_c,19933 +fontTools/misc/macCreatorType.py,sha256=Je9jtqUr7EPbpH3QxlVl3pizoQ-1AOPMBIctHIMTM3k,1593 +fontTools/misc/macRes.py,sha256=GT_pnfPw2NCvvOF86nHLAnOtZ6SMHqEuLntaplXzvHM,8579 +fontTools/misc/plistlib/__init__.py,sha256=1HfhHPt3As6u2eRSlFfl6XdnXv_ypQImeQdWIw6wK7Y,21113 +fontTools/misc/plistlib/__pycache__/__init__.cpython-311.pyc,, +fontTools/misc/plistlib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +fontTools/misc/psCharStrings.py,sha256=Zn8mr7NRTfEJbnaXbOnSarrFBPcvPM0AupAxF2C80LY,43468 +fontTools/misc/psLib.py,sha256=ioIPm5x3MHkBXF2vzNkC4iVZYobrkWcyvFhmYsjOrPY,12099 +fontTools/misc/psOperators.py,sha256=9SLl5PPBulLo0Xxg_dqlJMitNIBdiGKdkXhOWsNSYZE,15700 +fontTools/misc/py23.py,sha256=aPVCEUz_deggwLBCeTSsccX6QgJavZqvdVtuhpzrPvA,2238 +fontTools/misc/roundTools.py,sha256=1RSXZ0gyi1qW42tz6WSBMJD1FlPdtgqKfWixVN9bd78,3173 +fontTools/misc/sstruct.py,sha256=vUODd2CKvHLtjr7yn1K94Hui_yxOPWKmlgAmBMm3KDQ,7009 +fontTools/misc/symfont.py,sha256=x5ZwqK9Ik9orG6qSftgVGygBFE1wTSngrMK2We1Z5AM,6977 +fontTools/misc/testTools.py,sha256=3vj_KllUQVEiVFbS0SzTmeuKv44-L-disI1dZ4XhOfw,7052 +fontTools/misc/textTools.py,sha256=wNjH5zl1v9qNfmTl4BL52IO2IG1H5xY3o_pslqPPRjc,3483 +fontTools/misc/timeTools.py,sha256=e9h5pgzL04tBDXmCv_8eRGB4boFV8GKXlS6dq3ggEpw,2234 +fontTools/misc/transform.py,sha256=OR8dPsAw87z77gkZQMq00iUkDWLIxYv-12XiKH1-erk,15798 +fontTools/misc/treeTools.py,sha256=tLWkwyDHeZUPVOGNnJeD4Pn7x2bQeZetwJKaEAW2J2M,1269 +fontTools/misc/vector.py,sha256=6lqZcDjAgHJFQgjzD-ULQ_PrigAMfeZKaBZmAfcC0ig,4062 +fontTools/misc/visitor.py,sha256=zwBAVfZ3MTsrbhNFj03pSSjNRyT6oGkare-kfWkN5ns,5754 +fontTools/misc/xmlReader.py,sha256=igut4_d13RT4WarliqVvuuPybO1uSXVeoBOeW4j0_e4,6580 +fontTools/misc/xmlWriter.py,sha256=CrNXQfNJRdt5CHKAZ4-qy3h1yJeL63ot17kXkNbeI_E,6829 +fontTools/mtiLib/__init__.py,sha256=EzYwNaENLf906h1THBeq6nSRHUKpOAYxuzO9x9PHzh8,46602 +fontTools/mtiLib/__main__.py,sha256=gd8X89jnZOe-752k7uaR1lWoiju-2zIT5Yx35Kl0Xek,94 +fontTools/mtiLib/__pycache__/__init__.cpython-311.pyc,, +fontTools/mtiLib/__pycache__/__main__.cpython-311.pyc,, +fontTools/otlLib/__init__.py,sha256=D2leUW-3gsUTOFcJYGC18edBYjIJ804ut4qitJYWsaQ,45 +fontTools/otlLib/__pycache__/__init__.cpython-311.pyc,, +fontTools/otlLib/__pycache__/builder.cpython-311.pyc,, +fontTools/otlLib/__pycache__/error.cpython-311.pyc,, +fontTools/otlLib/__pycache__/maxContextCalc.cpython-311.pyc,, +fontTools/otlLib/builder.py,sha256=MHuQKul3Nl3vzXmY7Wb6x54ZNbJGUzRUD7-VKpOG7lE,128727 +fontTools/otlLib/error.py,sha256=cthuhBuOwZYpkTLi5gFPupUxkXkCHe-L_YgkE7N1wCI,335 +fontTools/otlLib/maxContextCalc.py,sha256=3es4Kt84TaZ49sA2ev1zrlwPJikJCAECx5KavwhyB-I,3175 +fontTools/otlLib/optimize/__init__.py,sha256=UUQRpNkHU2RczCRt-Gz7sEiYE9AQq9BHLXZEOyvsnX4,1530 +fontTools/otlLib/optimize/__main__.py,sha256=BvP472kA9KxBb9RMyyehPNevAfpmgW9MfdazkUiAO3M,104 +fontTools/otlLib/optimize/__pycache__/__init__.cpython-311.pyc,, +fontTools/otlLib/optimize/__pycache__/__main__.cpython-311.pyc,, +fontTools/otlLib/optimize/__pycache__/gpos.cpython-311.pyc,, +fontTools/otlLib/optimize/gpos.py,sha256=htOgSP743DZDUKF3eWAeJ-kdqNYOnpGXdlV-rbEXJ1A,17668 +fontTools/pens/__init__.py,sha256=DJBWmoX_Haau7qlgmvWyfbhSzrX2qL636Rns7CG01pk,75 +fontTools/pens/__pycache__/__init__.cpython-311.pyc,, +fontTools/pens/__pycache__/areaPen.cpython-311.pyc,, +fontTools/pens/__pycache__/basePen.cpython-311.pyc,, +fontTools/pens/__pycache__/boundsPen.cpython-311.pyc,, +fontTools/pens/__pycache__/cairoPen.cpython-311.pyc,, +fontTools/pens/__pycache__/cocoaPen.cpython-311.pyc,, +fontTools/pens/__pycache__/cu2quPen.cpython-311.pyc,, +fontTools/pens/__pycache__/explicitClosingLinePen.cpython-311.pyc,, +fontTools/pens/__pycache__/filterPen.cpython-311.pyc,, +fontTools/pens/__pycache__/freetypePen.cpython-311.pyc,, +fontTools/pens/__pycache__/hashPointPen.cpython-311.pyc,, +fontTools/pens/__pycache__/momentsPen.cpython-311.pyc,, +fontTools/pens/__pycache__/perimeterPen.cpython-311.pyc,, +fontTools/pens/__pycache__/pointInsidePen.cpython-311.pyc,, +fontTools/pens/__pycache__/pointPen.cpython-311.pyc,, +fontTools/pens/__pycache__/qtPen.cpython-311.pyc,, +fontTools/pens/__pycache__/qu2cuPen.cpython-311.pyc,, +fontTools/pens/__pycache__/quartzPen.cpython-311.pyc,, +fontTools/pens/__pycache__/recordingPen.cpython-311.pyc,, +fontTools/pens/__pycache__/reportLabPen.cpython-311.pyc,, +fontTools/pens/__pycache__/reverseContourPen.cpython-311.pyc,, +fontTools/pens/__pycache__/roundingPen.cpython-311.pyc,, +fontTools/pens/__pycache__/statisticsPen.cpython-311.pyc,, +fontTools/pens/__pycache__/svgPathPen.cpython-311.pyc,, +fontTools/pens/__pycache__/t2CharStringPen.cpython-311.pyc,, +fontTools/pens/__pycache__/teePen.cpython-311.pyc,, +fontTools/pens/__pycache__/transformPen.cpython-311.pyc,, +fontTools/pens/__pycache__/ttGlyphPen.cpython-311.pyc,, +fontTools/pens/__pycache__/wxPen.cpython-311.pyc,, +fontTools/pens/areaPen.py,sha256=Y1WkmqzcC4z_bpGAR0IZUKrtHFtxKUQBmr5-64_zCOk,1472 +fontTools/pens/basePen.py,sha256=eIGSKrKm6w4LLHuG6XJoQZ3eObtoKV5P6aF4gT4sk7U,17073 +fontTools/pens/boundsPen.py,sha256=wE3owOQA8DfhH-zBGC3lJvnVwp-oyIt0KZrEqXbmS9I,3129 +fontTools/pens/cairoPen.py,sha256=wuuOJ1qQDSt_K3zscM2nukRyHZTZMwMzzCXCirfq_qQ,592 +fontTools/pens/cocoaPen.py,sha256=IJRQcAxRuVOTQ90bB_Bgjnmz7px_ST5uLF9CW-Y0KPY,612 +fontTools/pens/cu2quPen.py,sha256=gMUwFUsm_-WzBlDjTMQiNnEuI2heomGeOJBX81zYXPo,13007 +fontTools/pens/explicitClosingLinePen.py,sha256=kKKtdZiwaf8Cj4_ytrIDdGB2GMpPPDXm5Nwbw5WDgwU,3219 +fontTools/pens/filterPen.py,sha256=REgspXaaSvF3XUwqe40abe3X_E7-WbBP13IqLUUBLCw,14703 +fontTools/pens/freetypePen.py,sha256=HD-gXJSbgImJdBc8sIBk0HWBdjv3WKFofs6PgCCsGOY,19908 +fontTools/pens/hashPointPen.py,sha256=gElrFyQoOQp3ZbpKHRWPwC61A9OgT2Js8crVUD8BQAY,3573 +fontTools/pens/momentsPen.c,sha256=nXlaxy9cejy1MWW6NCDck71BKCfnc_E25BrmYXXPC18,565310 +fontTools/pens/momentsPen.cpython-311-x86_64-linux-gnu.so,sha256=p7RPo0rzjsXIJhcEYucutFWBVIdpXNLmg5KfR0SKWYE,950112 +fontTools/pens/momentsPen.py,sha256=kjLVXhGe55Abl__Yr1gob0bl0dHe7fPSwyr7TRJnbug,25658 +fontTools/pens/perimeterPen.py,sha256=lr6NzrIWxi4TXBJPbcJsKzqABWfQeil2Bgm9BgUD3N4,2153 +fontTools/pens/pointInsidePen.py,sha256=noEUvBQIeAheDMJwzvvfnEiKhmwbS1i0RQE9jik6Gl4,6355 +fontTools/pens/pointPen.py,sha256=oeE_uabVCNJ1Lpk5Hn3eBmafaao3QqKMjK6FAy0hKBo,24197 +fontTools/pens/qtPen.py,sha256=QRNLIry2rQl4E_7ct2tu10-qLHneQp0XV7FfaZ-tcL8,634 +fontTools/pens/qu2cuPen.py,sha256=pRST43-rUpzlOP83Z_Rr0IvIQBCx6RWI6nnNaitQcLk,3985 +fontTools/pens/quartzPen.py,sha256=EH482Kz_xsqYhVRovv6N_T1CXaSvOzUKPLxTaN956tU,1287 +fontTools/pens/recordingPen.py,sha256=VgFZ4NMhnZt1qSTzFEU0cma-gw3kBe47bfSxPYH73rs,12489 +fontTools/pens/reportLabPen.py,sha256=kpfMfOLXt2vOQ5smPsU82ft80FpCPWJzQLl7ENOH8Ew,2066 +fontTools/pens/reverseContourPen.py,sha256=oz64ZRhLAvT7DYMAwGKoLzZXQK8l81jRiYnTZkW6a-Y,4022 +fontTools/pens/roundingPen.py,sha256=vh_FjikRd82-S4I8glgGMGEuGrj5IkCjRT_wmZ8jfqY,4620 +fontTools/pens/statisticsPen.py,sha256=piWK6NjjWqk9MLROjeE2-4EsxVYMyNU7UQFGD_trE9g,9808 +fontTools/pens/svgPathPen.py,sha256=T3b6SZS9B9sVWMK9mSFDtjHeviQs_yOJOZKq5Sg5Zdg,8572 +fontTools/pens/t2CharStringPen.py,sha256=GgGklb5XsCer0w37ujgRLRXx-EuzdFsyCYuzCx4n-Qs,2931 +fontTools/pens/teePen.py,sha256=P1ARJOCMJ6MxK-PB1yZ-ips3CUfnadWYnQ_do6VIasQ,1290 +fontTools/pens/transformPen.py,sha256=s0kUyQdnemUwHvYr2SFboFmh4WY1S9OHBL8L4PJKRwE,4056 +fontTools/pens/ttGlyphPen.py,sha256=yLtB-E5pTQR59OKVYySttWBu1xC2vR8ezSaRhIMtVwg,11870 +fontTools/pens/wxPen.py,sha256=W9RRHlBWHp-CVC4Exvk3ytBmRaB4-LgJPP5Bv7o9BA0,680 +fontTools/qu2cu/__init__.py,sha256=Jfm1JljXbt91w4gyvZn6jzEmVnhRx50sh2fDongrOsE,618 +fontTools/qu2cu/__main__.py,sha256=9FWf6SIZaRaC8SiL0LhjAWC2yIdY9N_9wlRko8m1l2Q,93 +fontTools/qu2cu/__pycache__/__init__.cpython-311.pyc,, +fontTools/qu2cu/__pycache__/__main__.cpython-311.pyc,, +fontTools/qu2cu/__pycache__/benchmark.cpython-311.pyc,, +fontTools/qu2cu/__pycache__/cli.cpython-311.pyc,, +fontTools/qu2cu/__pycache__/qu2cu.cpython-311.pyc,, +fontTools/qu2cu/benchmark.py,sha256=GMcr_4r7L6K9SmJ13itt-_XKhnKqSVUDPlXUG6IZmmM,1400 +fontTools/qu2cu/cli.py,sha256=U2rooYnVVEalGRAWGFHk-Kp6Okys8wtzdaWLjw1bngY,3714 +fontTools/qu2cu/qu2cu.c,sha256=k-6C2e2_m_1cBuYoSiHCY1ZBcSqtZjiffLCghiJCYDM,690421 +fontTools/qu2cu/qu2cu.cpython-311-x86_64-linux-gnu.so,sha256=8oAw6asRoDVLnbTKKBS63a2L-dZovY-jUgG7lOgEbbs,1210824 +fontTools/qu2cu/qu2cu.py,sha256=IYtpkwHdfKOXJr65Y_pJ9Lrt_MgJaISAKGMAs5ilFSM,12288 +fontTools/subset/__init__.py,sha256=R9VoZ2QWhqENHC5Ct1wyhLhEU-xo4mUXwCWl6EZGgwQ,143263 +fontTools/subset/__main__.py,sha256=bhtfP2SqP4k799pxtksFgnC-XGNQDr3LcO4lc8T5e5g,95 +fontTools/subset/__pycache__/__init__.cpython-311.pyc,, +fontTools/subset/__pycache__/__main__.cpython-311.pyc,, +fontTools/subset/__pycache__/cff.cpython-311.pyc,, +fontTools/subset/__pycache__/svg.cpython-311.pyc,, +fontTools/subset/__pycache__/util.cpython-311.pyc,, +fontTools/subset/cff.py,sha256=rqMRJOlX5FacV1LW8aDlVOglgEM87TkMA9bdsYenask,6145 +fontTools/subset/svg.py,sha256=8dLBzQlnIt4_fOKEFDAVlKTucdHvcbCcyG9-a6UBZZ0,9384 +fontTools/subset/util.py,sha256=9SXFYb5Ef9Z58uXmYPCQil8B2i3Q7aFB_1fFDFSppdU,754 +fontTools/svgLib/__init__.py,sha256=IGCLwSbU8jLhq6HI2vSdPQgNs6zDUi5774TgX5MCXPY,75 +fontTools/svgLib/__pycache__/__init__.cpython-311.pyc,, +fontTools/svgLib/path/__init__.py,sha256=C82fh7xH6ZHsSFVnV848-xeDezpokx1EwTmayJCouFU,1996 +fontTools/svgLib/path/__pycache__/__init__.cpython-311.pyc,, +fontTools/svgLib/path/__pycache__/arc.cpython-311.pyc,, +fontTools/svgLib/path/__pycache__/parser.cpython-311.pyc,, +fontTools/svgLib/path/__pycache__/shapes.cpython-311.pyc,, +fontTools/svgLib/path/arc.py,sha256=-f5Ym6q4tDWQ76sMNSTUTWgL_7AfgXojvBhtBS7bWwQ,5812 +fontTools/svgLib/path/parser.py,sha256=8T6okMstvgM9ufb2zBcwSzsuuoYbqfnUjNYgb6kjznU,10788 +fontTools/svgLib/path/shapes.py,sha256=xvBUIckKyT9JLy7q_ZP50r6TjvZANyHdZP7wFDzErcI,5322 +fontTools/t1Lib/__init__.py,sha256=p42y70wEIbuX0IIxZG7-b_I-gHto1VLy0gLsDvxCfkw,20865 +fontTools/t1Lib/__pycache__/__init__.cpython-311.pyc,, +fontTools/tfmLib.py,sha256=UMbkM73JXRJVS9t2B-BJc13rSjImaWBuzCoehLwHFhs,14270 +fontTools/ttLib/__init__.py,sha256=1k7qp9z04gA3m6GvxDaINjqrKbzOkdTA_4RnqW_-LrA,661 +fontTools/ttLib/__main__.py,sha256=lHMPWsnzjKPuMFavf6i1gpk9KexiAk4qzgDd50Mbby0,4733 +fontTools/ttLib/__pycache__/__init__.cpython-311.pyc,, +fontTools/ttLib/__pycache__/__main__.cpython-311.pyc,, +fontTools/ttLib/__pycache__/macUtils.cpython-311.pyc,, +fontTools/ttLib/__pycache__/removeOverlaps.cpython-311.pyc,, +fontTools/ttLib/__pycache__/reorderGlyphs.cpython-311.pyc,, +fontTools/ttLib/__pycache__/scaleUpem.cpython-311.pyc,, +fontTools/ttLib/__pycache__/sfnt.cpython-311.pyc,, +fontTools/ttLib/__pycache__/standardGlyphOrder.cpython-311.pyc,, +fontTools/ttLib/__pycache__/ttCollection.cpython-311.pyc,, +fontTools/ttLib/__pycache__/ttFont.cpython-311.pyc,, +fontTools/ttLib/__pycache__/ttGlyphSet.cpython-311.pyc,, +fontTools/ttLib/__pycache__/ttVisitor.cpython-311.pyc,, +fontTools/ttLib/__pycache__/woff2.cpython-311.pyc,, +fontTools/ttLib/macUtils.py,sha256=lj3oeFpyjV7ko_JqnluneITmAtlc119J-vwTTg2s73A,1737 +fontTools/ttLib/removeOverlaps.py,sha256=YBtj1PX-d2jMgCiWGuI6ibghWApUWqH2trJGXNxrbjQ,12612 +fontTools/ttLib/reorderGlyphs.py,sha256=TbxLxqPTUGiKRX3ulGFCwVm2lEisFYlX6caONJr_4oY,10371 +fontTools/ttLib/scaleUpem.py,sha256=U_-NGkwfS9GRIackdEXjGYZ-wSomcUPXQahDneLeArI,14618 +fontTools/ttLib/sfnt.py,sha256=wemkfz93dlAoyo-VVzmg5OLoSSyMFQNzBTTP3Kem-xk,22792 +fontTools/ttLib/standardGlyphOrder.py,sha256=7AY_fVWdtwZ4iv5uWdyKAUcbEQiSDt1lN4sqx9xXwE0,5785 +fontTools/ttLib/tables/B_A_S_E_.py,sha256=H71A9pJ850mvjbrWHqy8iFI2Dxg7102YRtAkfdCooig,369 +fontTools/ttLib/tables/BitmapGlyphMetrics.py,sha256=9gcGPVzsxEYnVBO7YLWfeOuht9PaCl09GmbAqDYqKi0,1769 +fontTools/ttLib/tables/C_B_D_T_.py,sha256=5LNdc8FMir1kC5fvp5iHwWfeuE-RuqdxAArFXaqPjQ0,3646 +fontTools/ttLib/tables/C_B_L_C_.py,sha256=YXlwovoCHYx8THLQD9iBU_VGoaB9LFObEKtL6ddD320,520 +fontTools/ttLib/tables/C_F_F_.py,sha256=yg3mUtYBudgmpG7Bz475j_DNnCelsgrTsM8DH1uR4ek,1978 +fontTools/ttLib/tables/C_F_F__2.py,sha256=YoHfJQdF-ezx4OwRQ2Y2O7rRJEPjOkf3Hx5Y11Xq0AM,807 +fontTools/ttLib/tables/C_O_L_R_.py,sha256=SHwFVNVmoUQR2e87KuTSe-J9LfeegS4f2hEpee29_2o,5993 +fontTools/ttLib/tables/C_P_A_L_.py,sha256=odFjqM4GnjXyQYGEC-e0Gvqms1jQ5zHHG3SDg7y-BI0,11942 +fontTools/ttLib/tables/D_S_I_G_.py,sha256=AgQPM9Cdro1P-ehJjTfsC9mRTTtSc16At0nnpb1XOGI,5517 +fontTools/ttLib/tables/D__e_b_g.py,sha256=KDnfkNOUnm3F13wD_j3YNBOvYadZ40Gf_0170hFkJp0,1134 +fontTools/ttLib/tables/DefaultTable.py,sha256=cOtgkLWPY9qmOH2BSPt4c4IUSdANWTKx2rK1CTxQ4h0,1487 +fontTools/ttLib/tables/E_B_D_T_.py,sha256=uOpmt25gOJQeO1u1IGAyPWgVmh-4vSZqrQEHvOYwbwg,32534 +fontTools/ttLib/tables/E_B_L_C_.py,sha256=LfEVzBg_yWr9dhChzS0U2G-7wNOwzwB0LWoXIUYNKKM,30054 +fontTools/ttLib/tables/F_F_T_M_.py,sha256=_450vdbEH7Y-0_rOwb3Q0hg-Qq2W8C_sHljy7rZtqqM,1683 +fontTools/ttLib/tables/F__e_a_t.py,sha256=ct79Gf__5ALlqfSBn6wvw6fazb31Od71R6vIp6o9XF4,5483 +fontTools/ttLib/tables/G_D_E_F_.py,sha256=QXiILFCRnPNZcwpub6ojN5S9WP6y56LsXi25pUWLgp4,299 +fontTools/ttLib/tables/G_M_A_P_.py,sha256=fvIQumokOCLa8DFeq_xi069F9RROsXSVmDvWtxgyacQ,4720 +fontTools/ttLib/tables/G_P_K_G_.py,sha256=Xi4Hj2OxZ2IZgVyBQ-Qyiie0hPZjpXZkrao-E5EdTWM,4646 +fontTools/ttLib/tables/G_P_O_S_.py,sha256=UkP3mlnyvQg-jj6ZBOh6j-OieVg_goJQ31nlLvoLGSI,397 +fontTools/ttLib/tables/G_S_U_B_.py,sha256=cwFMKO-pgwsn1H8Q9Jb58Z6ZrBrCoN0sqJB0YunBfSk,294 +fontTools/ttLib/tables/G_V_A_R_.py,sha256=13oO2dD-L4yfkrBuR-KN2rc40wh5lLIlx_khwMz5GH4,94 +fontTools/ttLib/tables/G__l_a_t.py,sha256=Xh3IzFgYlvNjrAOn7Ja73DrWrQTJgJxmDFSUKS6yHdM,8645 +fontTools/ttLib/tables/G__l_o_c.py,sha256=5DsxGzaG7HyJVvLlKQeff1lXt-XPWaHNNaf-EYwsKh4,2685 +fontTools/ttLib/tables/H_V_A_R_.py,sha256=6kPLDUGT8EussA3y9gKr_mrgY5PNv7YaK1V0keMXD9w,313 +fontTools/ttLib/tables/J_S_T_F_.py,sha256=Q9TEf3OuyDIxZlmoz9a3c-mDMlJK6YBQ9KcYmiwFRbU,315 +fontTools/ttLib/tables/L_T_S_H_.py,sha256=Iu6syJFuhJj0_7Aan2NPlDuQDIq-AzLwsOQbXVTnlL0,2189 +fontTools/ttLib/tables/M_A_T_H_.py,sha256=-TVu9Nlcs-1shkElbIk-CWtUwXUMdycHFkjvPE8C_fs,342 +fontTools/ttLib/tables/M_E_T_A_.py,sha256=sA6ookcjchw8UYVEuS8QEXc62I9_Rms9cu_jKA6MkNI,11989 +fontTools/ttLib/tables/M_V_A_R_.py,sha256=67cEuiTw5y5W1Zk98L_S_SmJINIfy_mzWCkyHcujz94,308 +fontTools/ttLib/tables/O_S_2f_2.py,sha256=1Pq2Xu4oYOJePTHC_hTKg3RIfKely3j6T1u_lMTEpD8,28030 +fontTools/ttLib/tables/S_I_N_G_.py,sha256=CFDy8R2fDeYn7ocfrZr7Ui7U9D0h4G55CdPfY55g-Bk,3317 +fontTools/ttLib/tables/S_T_A_T_.py,sha256=y9NiWCtnlZtMjw4K9_SdA84Xa-dJk7G5eb2dSe6ciWc,498 +fontTools/ttLib/tables/S_V_G_.py,sha256=vT6QTW5ArtskVUxnPEH_ZxKz4DF4v1pKbylN6DG0R3o,7676 +fontTools/ttLib/tables/S__i_l_f.py,sha256=lPQV2RdhcJRgfDzHp_dkgSxVUUdkcAnY1Bz7V18Gt9U,34985 +fontTools/ttLib/tables/S__i_l_l.py,sha256=Vjtn7SI83vaLGIuQf2e-jhZSFOXb9vXB4jwqznjqnMc,3224 +fontTools/ttLib/tables/T_S_I_B_.py,sha256=3WhEtyNnjYumcowD0GpjubrgnS-RzouZxCxEe4yLDo8,341 +fontTools/ttLib/tables/T_S_I_C_.py,sha256=hAV9Hq_ALsWaducDpw1tDRREvFL7hx7onnUF0sXTelU,381 +fontTools/ttLib/tables/T_S_I_D_.py,sha256=TsdX-G2xxVQO9sSE1wE_xDRx-gor5YiXTHeUthMwCPY,341 +fontTools/ttLib/tables/T_S_I_J_.py,sha256=x8Tlvi6aTxoQcI12UL7muoWF1Q61iBDseAS1mRdOYrg,341 +fontTools/ttLib/tables/T_S_I_P_.py,sha256=-il2ucTBOghVBY7cmleHdLZc3W3CKh7-iPPT0A3KBzk,341 +fontTools/ttLib/tables/T_S_I_S_.py,sha256=tVBnl63vyZUIq93oM6dEjHCXvPn9vt5vvL3jG59b0Lg,341 +fontTools/ttLib/tables/T_S_I_V_.py,sha256=iUWxz2MSrtw7mzuQZj30QAJrCPnyJ4GincFfySFUNAg,855 +fontTools/ttLib/tables/T_S_I__0.py,sha256=O-2oI0eBgt4mP15-UwH0_0r7YWi3EEEhG-4etqDueGI,2505 +fontTools/ttLib/tables/T_S_I__1.py,sha256=nSUhni-fvYmeKXW4zLfP3FG_3LQU2QKPKS1_gKY5lYg,6971 +fontTools/ttLib/tables/T_S_I__2.py,sha256=q2rub-d77iWWiBM6awO0-TCl-Xq7kalPobHYC2QEOfc,496 +fontTools/ttLib/tables/T_S_I__3.py,sha256=0LcvvCzVZJzyz7i4zjIkUuYXEqXwOCs9WeCsgDFqKJ8,543 +fontTools/ttLib/tables/T_S_I__5.py,sha256=hhvJn6jiXs8kuBtun8krNUTXTljH-eKxaxXM1T-7SXM,1905 +fontTools/ttLib/tables/T_T_F_A_.py,sha256=LuT0w__AMtawnsBMobhEMW9gp2yk0mA5ZRzwF45c0UI,392 +fontTools/ttLib/tables/TupleVariation.py,sha256=4XTDTRPZWPg9_1K5SVgdNoxtgQvahtiO4LNO7fk1cK4,32235 +fontTools/ttLib/tables/V_A_R_C_.py,sha256=3jFX50J6X-Cc4dwwiztKKsDTRXVHTXlVdQH328UN1-k,289 +fontTools/ttLib/tables/V_D_M_X_.py,sha256=RbHl7vvO9pcjT_kKvcCmcByQj39n4PmVeq55wD5C14g,10437 +fontTools/ttLib/tables/V_O_R_G_.py,sha256=Cn3OxjVtcO-Uvp61P5c2336V9iEbuGr6vWAXnSIaihk,5965 +fontTools/ttLib/tables/V_V_A_R_.py,sha256=Cstw6tc_U4-EmTriRItBSpvTJODAjMFQjfyTaxLzsbI,319 +fontTools/ttLib/tables/__init__.py,sha256=eQPcuHCfRuGtt6nOa0KwV6vtUNKHnwuQyA7xSN8SPoc,2651 +fontTools/ttLib/tables/__pycache__/B_A_S_E_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/BitmapGlyphMetrics.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/C_B_D_T_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/C_B_L_C_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/C_F_F_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/C_F_F__2.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/C_O_L_R_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/C_P_A_L_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/D_S_I_G_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/D__e_b_g.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/DefaultTable.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/E_B_D_T_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/E_B_L_C_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/F_F_T_M_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/F__e_a_t.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/G_D_E_F_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/G_M_A_P_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/G_P_K_G_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/G_P_O_S_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/G_S_U_B_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/G_V_A_R_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/G__l_a_t.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/G__l_o_c.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/H_V_A_R_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/J_S_T_F_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/L_T_S_H_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/M_A_T_H_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/M_E_T_A_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/M_V_A_R_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/O_S_2f_2.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/S_I_N_G_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/S_T_A_T_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/S_V_G_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/S__i_l_f.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/S__i_l_l.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/T_S_I_B_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/T_S_I_C_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/T_S_I_D_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/T_S_I_J_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/T_S_I_P_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/T_S_I_S_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/T_S_I_V_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/T_S_I__0.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/T_S_I__1.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/T_S_I__2.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/T_S_I__3.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/T_S_I__5.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/T_T_F_A_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/TupleVariation.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/V_A_R_C_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/V_D_M_X_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/V_O_R_G_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/V_V_A_R_.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/__init__.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_a_n_k_r.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_a_v_a_r.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_b_s_l_n.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_c_i_d_g.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_c_m_a_p.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_c_v_a_r.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_c_v_t.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_f_e_a_t.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_f_p_g_m.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_f_v_a_r.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_g_a_s_p.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_g_c_i_d.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_g_l_y_f.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_g_v_a_r.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_h_d_m_x.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_h_e_a_d.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_h_h_e_a.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_h_m_t_x.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_k_e_r_n.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_l_c_a_r.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_l_o_c_a.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_l_t_a_g.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_m_a_x_p.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_m_e_t_a.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_m_o_r_t.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_m_o_r_x.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_n_a_m_e.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_o_p_b_d.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_p_o_s_t.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_p_r_e_p.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_p_r_o_p.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_s_b_i_x.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_t_r_a_k.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_v_h_e_a.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/_v_m_t_x.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/asciiTable.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/grUtils.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/otBase.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/otConverters.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/otData.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/otTables.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/otTraverse.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/sbixGlyph.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/sbixStrike.cpython-311.pyc,, +fontTools/ttLib/tables/__pycache__/ttProgram.cpython-311.pyc,, +fontTools/ttLib/tables/_a_n_k_r.py,sha256=MpAzIifmIi_3gx2oP6PC3R2lu36Ewsr2-W1rXjsz2Ug,483 +fontTools/ttLib/tables/_a_v_a_r.py,sha256=YodAzCsIywAKV48P4jQSrrUnYYWWuY6SDnNURAbM6fU,7175 +fontTools/ttLib/tables/_b_s_l_n.py,sha256=_848o7SQqztzBDfHYei-80u9ltxIHVBzXu1dYHLV57M,465 +fontTools/ttLib/tables/_c_i_d_g.py,sha256=yt8rVIadpJSDUCoVH4dZetNiy0Azm5ESAxHjB2BX_eA,913 +fontTools/ttLib/tables/_c_m_a_p.py,sha256=r8-bB_E0EQh5h4TGX5nTnDnwTUtXuRB3iuqEDoN_IOM,62202 +fontTools/ttLib/tables/_c_v_a_r.py,sha256=35ayk2kX1pcLGwyx0y4I1l-r7LHgdKv0ulVx8oBPteI,3527 +fontTools/ttLib/tables/_c_v_t.py,sha256=1_RhEcTmhWQWQp7Hsj8UsByKmXCIppZyIbIArGywEEM,1618 +fontTools/ttLib/tables/_f_e_a_t.py,sha256=Fi1XnjhkCG0tp43AcvpIaivD-YRFpufo6feGIrenQDo,469 +fontTools/ttLib/tables/_f_p_g_m.py,sha256=uZHZzqL6OdLn_Hxskv-xf3XuE4fyaSv_jbALEjwXYug,1633 +fontTools/ttLib/tables/_f_v_a_r.py,sha256=rV33H2BgHUl3Wuydsou1G-Hi4uASBppWaLj3FMmiLjs,8837 +fontTools/ttLib/tables/_g_a_s_p.py,sha256=YvhAVDvdssN2fjPMTfSrO4WBCfTuh9T2cU5zquDVnSw,2203 +fontTools/ttLib/tables/_g_c_i_d.py,sha256=AJ4uV7PTHbnsw4Tfw8c2Ezh0VMox3oAH0qhhq7y8hdM,362 +fontTools/ttLib/tables/_g_l_y_f.py,sha256=dDV65llsEDI9fKcVKC5TOiaXpXSyMHNEytuYOGt7adM,85584 +fontTools/ttLib/tables/_g_v_a_r.py,sha256=E9WCKjeITUfd5hcJLQ0rjQFBtZdxw1eswFlWp1U6bD4,12196 +fontTools/ttLib/tables/_h_d_m_x.py,sha256=wMrO4D04QNT8u30p8AV-aG3bndXCq4wlPNvtbd8ip7c,4252 +fontTools/ttLib/tables/_h_e_a_d.py,sha256=yY2GTFq6Mn6nN8EegbMVJRMUWIqDYFln3FhTk3ziw6s,4926 +fontTools/ttLib/tables/_h_h_e_a.py,sha256=X4t1aF1MZMuz3phCVSFwKcNTeoZdx-042wFtHc-nK9w,4767 +fontTools/ttLib/tables/_h_m_t_x.py,sha256=rbxr3cy9-9Jm0HCGIWQiX6fGH5iu6yojp9kfgWrW2Ks,6192 +fontTools/ttLib/tables/_k_e_r_n.py,sha256=DQNLmD_HEdDKPfp4tamOd9W3T5a1lXFM5tDaWrKl164,10794 +fontTools/ttLib/tables/_l_c_a_r.py,sha256=8W6xFOj-sm003MCXX4bIHxs9ntfVvT0FXYllPxa3z4I,390 +fontTools/ttLib/tables/_l_o_c_a.py,sha256=yxiwLKXLZjNju5XYmLb6EhNLec1d7ezEDDe1dszceHo,2180 +fontTools/ttLib/tables/_l_t_a_g.py,sha256=9YpApjI-rZ4e3HeT8Pj-osiHl3uALD9JXg5O7pqk9L0,2552 +fontTools/ttLib/tables/_m_a_x_p.py,sha256=cIDIZWse9czwwsnlxIh3qwgwaXbt7PQAjXKAcmMDspY,5264 +fontTools/ttLib/tables/_m_e_t_a.py,sha256=A0CZPEAVxYrpytjXUGQJCTddwG8KrvUVbtBe3A1MqgI,3913 +fontTools/ttLib/tables/_m_o_r_t.py,sha256=u35tYqn3cjzKxeCF0FUFeLtaf36mjDDSN08uuk0Kme8,487 +fontTools/ttLib/tables/_m_o_r_x.py,sha256=OwamVpIO7REDnFr95HuFPoY_0U6i9zQPb11K1sFTvDY,548 +fontTools/ttLib/tables/_n_a_m_e.py,sha256=86_0fUeA5_c-GY5ZnkqUI0jyWwMh1mn6yVOf6KKqIlU,41266 +fontTools/ttLib/tables/_o_p_b_d.py,sha256=TNZv_2YTrj4dGzd6wA9Jb-KGZ99un177s5p3LlfxQ74,448 +fontTools/ttLib/tables/_p_o_s_t.py,sha256=9siVXSisWGdTfj_mC1E9dUDz9Jdm1i3QzI-l3i3VWME,11671 +fontTools/ttLib/tables/_p_r_e_p.py,sha256=CcKr4HrswkupLmbJdrJLTM-z9XgLefQyv8467j9V0zs,427 +fontTools/ttLib/tables/_p_r_o_p.py,sha256=Eg8x5qWyXDzPezMafFu0s0qyPDHj-sPsFxGtE6h29qo,427 +fontTools/ttLib/tables/_s_b_i_x.py,sha256=tkkKbNKNYkUhZJuN0kl7q37x5KK5OovB06y28obPV6A,4865 +fontTools/ttLib/tables/_t_r_a_k.py,sha256=rrrPZLELFYA5F8PERoafIS9cb_d_i6xtpAzHEbsFHSw,11379 +fontTools/ttLib/tables/_v_h_e_a.py,sha256=FuULIBl4OQyUeLPOFEY8buB0pAnQhGa1-5a6kN9i5Sc,4459 +fontTools/ttLib/tables/_v_m_t_x.py,sha256=AUuxtyQvMWrTBNbOIaL6uKcB_DNpNb0YX28JIuTHw_Y,500 +fontTools/ttLib/tables/asciiTable.py,sha256=4c69jsAirUnDEpylf9CYBoCKTzwbmfbtUAOrtPnpHjY,637 +fontTools/ttLib/tables/grUtils.py,sha256=hcOJ5oJPOd2uJWnWA7qwR7AfL37YZ5zUT7g8o5BBV80,2270 +fontTools/ttLib/tables/otBase.py,sha256=cHdoYX-ICa8GeI-tVhFy1K9-CHaExiKO-HBjmH0OkbU,53330 +fontTools/ttLib/tables/otConverters.py,sha256=ihE_WMSKAKSaBbMvnFYDj2eMxf7PvRMMa8zGwfoYuYc,74202 +fontTools/ttLib/tables/otData.py,sha256=-XXRwdVfP-Wz7oBjMPpku0A0QH9lw_fFGNzZlt9N0mo,197262 +fontTools/ttLib/tables/otTables.py,sha256=2U04ot_2ITlBZx2QtpnIOtBGftPFs9ZX2FWfz4vz1G0,96987 +fontTools/ttLib/tables/otTraverse.py,sha256=HznEVAlVf_8eyqjsO2edgELtMlXnjnUqccK3PytvVUE,5518 +fontTools/ttLib/tables/sbixGlyph.py,sha256=tjEUPVRfx6gr5yme8UytGTtVrimKN5qmbzT1GZPjXiM,5796 +fontTools/ttLib/tables/sbixStrike.py,sha256=dL8O9K8R4S6RVQDP-PVjIPBrvbqbE9zwra0uRL0nLq0,6651 +fontTools/ttLib/tables/table_API_readme.txt,sha256=eZlRTLUkLzc_9Ot3pdfhyMb3ahU0_Iipx0vSbzOVGy8,2748 +fontTools/ttLib/tables/ttProgram.py,sha256=tgtxgd-EnOq-2PUlYEihp-6NHu_7HnE5rxeSAtmXOtU,35888 +fontTools/ttLib/ttCollection.py,sha256=aRph2MkBK3kd9-JCLqhJ1EN9pffN_lVX6WWmOTTewc8,3963 +fontTools/ttLib/ttFont.py,sha256=8I79ksIdtfMf8GV_nhawEhlzOvQMTyB98lrWzoJADh0,40669 +fontTools/ttLib/ttGlyphSet.py,sha256=cUBhMGa5hszeVqOm2KpOdeJh-LsiqE7RNdyIUPZ2vO8,17476 +fontTools/ttLib/ttVisitor.py,sha256=_tah4C42Tv6Pm9QeLNQwwVCxqI4VNEAqYCbmThp6cvY,1025 +fontTools/ttLib/woff2.py,sha256=6LPISeBQ1dubzKjWrUcYm_vgETC46BTLY4XkG52qvSA,60921 +fontTools/ttx.py,sha256=FxuGubujWCGJWSTrJEjoNH--25fVIPy-ZRtYy9H6iTk,17277 +fontTools/ufoLib/__init__.py,sha256=nKG8gu6NEvqGJoZ781IARoQ7ii4LoWfMMvX3Yf5TsVw,98981 +fontTools/ufoLib/__pycache__/__init__.cpython-311.pyc,, +fontTools/ufoLib/__pycache__/converters.cpython-311.pyc,, +fontTools/ufoLib/__pycache__/errors.cpython-311.pyc,, +fontTools/ufoLib/__pycache__/etree.cpython-311.pyc,, +fontTools/ufoLib/__pycache__/filenames.cpython-311.pyc,, +fontTools/ufoLib/__pycache__/glifLib.cpython-311.pyc,, +fontTools/ufoLib/__pycache__/kerning.cpython-311.pyc,, +fontTools/ufoLib/__pycache__/plistlib.cpython-311.pyc,, +fontTools/ufoLib/__pycache__/pointPen.cpython-311.pyc,, +fontTools/ufoLib/__pycache__/utils.cpython-311.pyc,, +fontTools/ufoLib/__pycache__/validators.cpython-311.pyc,, +fontTools/ufoLib/converters.py,sha256=YnBKr8kmyjwLcq8LdD46ubGOgyL9Pxt9avlvZn9anKI,13444 +fontTools/ufoLib/errors.py,sha256=9f8l5NaFAj3BZPa6Bbqt06FL4afffLuMzy4nPf-eOlE,845 +fontTools/ufoLib/etree.py,sha256=T3sjLTgjMAq6VyYRicWPaMIVBJ2YSuwZxV6Vc5yZtQI,231 +fontTools/ufoLib/filenames.py,sha256=hoyUhzzQMDaeckT7UdreISANq4-gLR2jGyk5yAyYtOA,10654 +fontTools/ufoLib/glifLib.py,sha256=Y-xzf4qbTIOl3-dVLXvu3iFCIDtAEu_klId2_UNngWs,77170 +fontTools/ufoLib/kerning.py,sha256=o1BeJDVZ_CZZPzmOPwRKTqglYmhA_JZPjwq2JLgdQIk,4836 +fontTools/ufoLib/plistlib.py,sha256=jzMGOGvHO6XvS-IO8hS04ur7r8-v2dnVq-vKMoJZvqQ,1510 +fontTools/ufoLib/pointPen.py,sha256=CuREcm3IYteZNBDAd_ZRAV4XqBsy0s07jdWc4en9r-8,244 +fontTools/ufoLib/utils.py,sha256=nZoJJqHXQSL-LXYE58_WHA97XlbTkEbYkdH3GL32SmQ,3192 +fontTools/ufoLib/validators.py,sha256=MWBqcLThGyYpst61QothA_BSlc6jGVhPvFiay-pobCY,32387 +fontTools/unicode.py,sha256=ZZ7OMmWvIyV1IL1k6ioTzaRAh3tUvm6gvK7QgFbOIHY,1237 +fontTools/unicodedata/Blocks.py,sha256=6BL66vrr5UWylVx3bicy6U2kO-QcNNKpmPKQTGggUEU,32415 +fontTools/unicodedata/Mirrored.py,sha256=kdhwCWOWaArmfNkDah0Thv-67M9wWz45R5IMPhqyzFM,9242 +fontTools/unicodedata/OTTags.py,sha256=wOPpbMsNcp_gdvPFeITtgVMnTN8TJSNAsVEdu_nuPXE,1196 +fontTools/unicodedata/ScriptExtensions.py,sha256=YTZr2bOteHiz_7I4108PRy0Is4kFof-32yFuoKjFHjc,28207 +fontTools/unicodedata/Scripts.py,sha256=I0nY08ovsZ4pHU5wYchjat9DjnxcpoTzaXAn5oFaKNI,130271 +fontTools/unicodedata/__init__.py,sha256=ht5cIwvgKSonvRADzijXzBp6uZjhTvFobBwaba4ogaM,9033 +fontTools/unicodedata/__pycache__/Blocks.cpython-311.pyc,, +fontTools/unicodedata/__pycache__/Mirrored.cpython-311.pyc,, +fontTools/unicodedata/__pycache__/OTTags.cpython-311.pyc,, +fontTools/unicodedata/__pycache__/ScriptExtensions.cpython-311.pyc,, +fontTools/unicodedata/__pycache__/Scripts.cpython-311.pyc,, +fontTools/unicodedata/__pycache__/__init__.cpython-311.pyc,, +fontTools/varLib/__init__.py,sha256=SeAVSol0qvmw4Io5hvuVWxwx_onKadqr_1eXwjNUGkk,57322 +fontTools/varLib/__main__.py,sha256=wbdYC5bPjWCxA0I4SKcLO88gl-UMtsYS8MxdW9ySTkY,95 +fontTools/varLib/__pycache__/__init__.cpython-311.pyc,, +fontTools/varLib/__pycache__/__main__.cpython-311.pyc,, +fontTools/varLib/__pycache__/avarPlanner.cpython-311.pyc,, +fontTools/varLib/__pycache__/builder.cpython-311.pyc,, +fontTools/varLib/__pycache__/cff.cpython-311.pyc,, +fontTools/varLib/__pycache__/errors.cpython-311.pyc,, +fontTools/varLib/__pycache__/featureVars.cpython-311.pyc,, +fontTools/varLib/__pycache__/hvar.cpython-311.pyc,, +fontTools/varLib/__pycache__/interpolatable.cpython-311.pyc,, +fontTools/varLib/__pycache__/interpolatableHelpers.cpython-311.pyc,, +fontTools/varLib/__pycache__/interpolatablePlot.cpython-311.pyc,, +fontTools/varLib/__pycache__/interpolatableTestContourOrder.cpython-311.pyc,, +fontTools/varLib/__pycache__/interpolatableTestStartingPoint.cpython-311.pyc,, +fontTools/varLib/__pycache__/interpolate_layout.cpython-311.pyc,, +fontTools/varLib/__pycache__/iup.cpython-311.pyc,, +fontTools/varLib/__pycache__/merger.cpython-311.pyc,, +fontTools/varLib/__pycache__/models.cpython-311.pyc,, +fontTools/varLib/__pycache__/multiVarStore.cpython-311.pyc,, +fontTools/varLib/__pycache__/mutator.cpython-311.pyc,, +fontTools/varLib/__pycache__/mvar.cpython-311.pyc,, +fontTools/varLib/__pycache__/plot.cpython-311.pyc,, +fontTools/varLib/__pycache__/stat.cpython-311.pyc,, +fontTools/varLib/__pycache__/varStore.cpython-311.pyc,, +fontTools/varLib/avar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +fontTools/varLib/avar/__main__.py,sha256=ew1fJpg81GpYbdkrp4I7ntWdbhkDeg5fNn1SrpF254k,1770 +fontTools/varLib/avar/__pycache__/__init__.cpython-311.pyc,, +fontTools/varLib/avar/__pycache__/__main__.cpython-311.pyc,, +fontTools/varLib/avar/__pycache__/build.cpython-311.pyc,, +fontTools/varLib/avar/__pycache__/map.cpython-311.pyc,, +fontTools/varLib/avar/__pycache__/plan.cpython-311.pyc,, +fontTools/varLib/avar/__pycache__/unbuild.cpython-311.pyc,, +fontTools/varLib/avar/build.py,sha256=YSMsRMjGkNW2zhKn29HgovNNG-jgiFSsK7zYH4un2Ws,2087 +fontTools/varLib/avar/map.py,sha256=UBeElT40SHXvJrQ7SflH5MNYKTTom7RLHwq2varb_oE,2867 +fontTools/varLib/avar/plan.py,sha256=qDKZjQq6OfeXBr3T3DZnrmauyMm5ek0rm5YVosAO_UA,27354 +fontTools/varLib/avar/unbuild.py,sha256=h3qb0JBN7SngijPrwjTjGEjueeENlhPYY9FyN02FLEk,10467 +fontTools/varLib/avarPlanner.py,sha256=CabG5xB57FMdwmN1acpVMvyOucVPxCdRdJSK2gu7gb4,109 +fontTools/varLib/builder.py,sha256=mSKOCcnnw-WzmZs15FayoqCDh77Ts7o9Tre9psh8CUc,6609 +fontTools/varLib/cff.py,sha256=EVgaQcoROIrYQsRuftnxFuGGldEPYbrIh5yBckylJC4,22901 +fontTools/varLib/errors.py,sha256=dMo8eGj76I7H4hrBEiNbYrGs2J1K1SwdsUyTHpkVOrQ,6934 +fontTools/varLib/featureVars.py,sha256=kp4gPjKyyGRu7yBWxgd1N4OkKnU9V45QwiWSHs6OWd0,26180 +fontTools/varLib/hvar.py,sha256=1IvL5BneTkg8jJYicH0TSQViB6D0vBEesLdlfqoLBX4,3695 +fontTools/varLib/instancer/__init__.py,sha256=fHd864WfEDyFH3zXGldT34aw3524143dZPIDqA95V5A,75554 +fontTools/varLib/instancer/__main__.py,sha256=zfULwcP01FhplS1IlcMgNQnLxk5RVfmOuinWjqeid-g,104 +fontTools/varLib/instancer/__pycache__/__init__.cpython-311.pyc,, +fontTools/varLib/instancer/__pycache__/__main__.cpython-311.pyc,, +fontTools/varLib/instancer/__pycache__/featureVars.cpython-311.pyc,, +fontTools/varLib/instancer/__pycache__/names.cpython-311.pyc,, +fontTools/varLib/instancer/__pycache__/solver.cpython-311.pyc,, +fontTools/varLib/instancer/featureVars.py,sha256=oPqSlnHLMDTtOsmQMi6gkzLox7ymCrqlRAkvC_EJ4bc,7110 +fontTools/varLib/instancer/names.py,sha256=IPRqel_M8zVU0jl30WsfgufxUm9PBBQDQCY3VHapeHc,14950 +fontTools/varLib/instancer/solver.py,sha256=uMePwX0BVT5F94kUvDglsI4_F0nEH67F7RFuJ6tQwQ0,11002 +fontTools/varLib/interpolatable.py,sha256=Bhlq_LhEZ-sXfLNY8aFEChFrsKuT2kzmnuMfG5qi0v4,45221 +fontTools/varLib/interpolatableHelpers.py,sha256=cTFgTqDjggSCqNfTM77__5b9Sja_g7xWWMiB-pXDx84,11672 +fontTools/varLib/interpolatablePlot.py,sha256=w393P6mGLRhYkIjSxMww3qyoYxAUZzCXlmPBbI_84C0,44375 +fontTools/varLib/interpolatableTestContourOrder.py,sha256=mHJ9Ry7Rm7H3zHDwEUQEtEIDseiUzOxjg4MveW_FSiU,3021 +fontTools/varLib/interpolatableTestStartingPoint.py,sha256=K6OYKBspim6BXc91pfLTbGLyi5XZukfMuBc6hRpENG8,4296 +fontTools/varLib/interpolate_layout.py,sha256=22VjGZuV2YiAe2MpdTf0xPVz1x2G84bcOL0vOeBpGQM,3689 +fontTools/varLib/iup.c,sha256=I7snrACi_wloZDL67Fypk-7Dff5pxJhaVmluAXBUW_4,827723 +fontTools/varLib/iup.cpython-311-x86_64-linux-gnu.so,sha256=dEEwcNpCofw1rK8hpLW5IjYyzCBFaKyHAIg04V6Hl9M,1683328 +fontTools/varLib/iup.py,sha256=mKq_GRWuUg4yTmw2V32nu0v2r-SzzN7xS7rIbV0mYuc,14984 +fontTools/varLib/merger.py,sha256=E59oli4AwqWZ-FgnuStMSBvsB-FHe-55esXTYUqGeJ8,60802 +fontTools/varLib/models.py,sha256=sj_ENljh_qcMbfYzRIOlRgHq6tFOmL02Wv6WO8uofis,22398 +fontTools/varLib/multiVarStore.py,sha256=eQEuWNY01YF5zDpy1UwNtvOYyD6c0FLxpH-QFpX1i78,8305 +fontTools/varLib/mutator.py,sha256=kzXiLFxRLgU2pcHzOzh9u0n0KkO3DuBk06xZ_RPhWz8,19804 +fontTools/varLib/mvar.py,sha256=LTV77vH_3Ecg_qKBO5xQzjLOlJir_ppEr7mPVZRgad8,2449 +fontTools/varLib/plot.py,sha256=NoSZkJ5ndxNcDvJIvd5pQ9_jX6X1oM1K2G_tR4sdPVs,7494 +fontTools/varLib/stat.py,sha256=XuNKKZxGlBrl4OGFDAwVXhpBwJi23U3BdHmNTKoJnvE,4811 +fontTools/varLib/varStore.py,sha256=2QA9SDI6jQyQ_zq82OOwa3FBkfl-ksaSo1KGmVFpa9Q,24069 +fontTools/voltLib/__init__.py,sha256=ZZ1AsTx1VlDn40Kupce-fM3meOWugy3RZraBW9LG-9M,151 +fontTools/voltLib/__main__.py,sha256=uVtABLzMeHtvKL8zetf4rpC4aB8BkYr5QLSegNjZZZI,5928 +fontTools/voltLib/__pycache__/__init__.cpython-311.pyc,, +fontTools/voltLib/__pycache__/__main__.cpython-311.pyc,, +fontTools/voltLib/__pycache__/ast.cpython-311.pyc,, +fontTools/voltLib/__pycache__/error.cpython-311.pyc,, +fontTools/voltLib/__pycache__/lexer.cpython-311.pyc,, +fontTools/voltLib/__pycache__/parser.cpython-311.pyc,, +fontTools/voltLib/__pycache__/voltToFea.cpython-311.pyc,, +fontTools/voltLib/ast.py,sha256=arA9W3Gqo6OqljwNNKnMAojz-C5LStbC5SgjJh7buKk,13300 +fontTools/voltLib/error.py,sha256=phcQOQj-xOspCXu9hBJQRhSOBDzxHRgZd3fWQOFNJzw,395 +fontTools/voltLib/lexer.py,sha256=OvuETOSvlS6v7iCVeJ3IdH2Cg71n3OJoEyiB3-h6vhE,3368 +fontTools/voltLib/parser.py,sha256=rkw2IHBZPsrhGVC7Kw7V501m0u52kh1JSM5HXp-xchM,25396 +fontTools/voltLib/voltToFea.py,sha256=Z2yvnaZLQXzPLT86Uta0zRsXIYgj6NnvZtSWt5xmw2s,36549 +fonttools-4.60.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +fonttools-4.60.1.dist-info/METADATA,sha256=CIZ3DxcKqkgjQVIa68ndWbeo4HP-yrkBlOLu-dmZygM,112334 +fonttools-4.60.1.dist-info/RECORD,, +fonttools-4.60.1.dist-info/WHEEL,sha256=_CFvICYDmZlAYHt8L7Zn3n-BGLj8dkZLQPp22Piy5JE,151 +fonttools-4.60.1.dist-info/entry_points.txt,sha256=8kVHddxfFWA44FSD4mBpmC-4uCynQnkoz_9aNJb227Y,147 +fonttools-4.60.1.dist-info/licenses/LICENSE,sha256=Z4cgj4P2Wcy8IiOy_elS_6b36KymLxqKK_W8UbsbI4M,1072 +fonttools-4.60.1.dist-info/licenses/LICENSE.external,sha256=lKg6ruBymg8wLTSsxKzsvZ1YNm8mJCkHX-VX5KVLLmk,20022 +fonttools-4.60.1.dist-info/top_level.txt,sha256=rRgRylrXzekqWOsrhygzib12pQ7WILf7UGjqEwkIFDM,10 diff --git a/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/WHEEL b/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/WHEEL new file mode 100644 index 0000000..7cc1bea --- /dev/null +++ b/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: false +Tag: cp311-cp311-manylinux_2_17_x86_64 +Tag: cp311-cp311-manylinux2014_x86_64 + diff --git a/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/entry_points.txt b/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/entry_points.txt new file mode 100644 index 0000000..87ae781 --- /dev/null +++ b/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/entry_points.txt @@ -0,0 +1,5 @@ +[console_scripts] +fonttools = fontTools.__main__:main +pyftmerge = fontTools.merge:main +pyftsubset = fontTools.subset:main +ttx = fontTools.ttx:main diff --git a/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/licenses/LICENSE new file mode 100644 index 0000000..cc63390 --- /dev/null +++ b/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Just van Rossum + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/licenses/LICENSE.external b/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/licenses/LICENSE.external new file mode 100644 index 0000000..5c45052 --- /dev/null +++ b/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/licenses/LICENSE.external @@ -0,0 +1,388 @@ +FontTools includes the following font projects for testing purposes, which are +under SIL Open Font License, Version 1.1: + +Lobster + Copyright (c) 2010, Pablo Impallari (www.impallari.com|impallari@gmail.com), + with Reserved Font Name Lobster. + This Font Software is licensed under the SIL Open Font License, Version 1.1. + +Noto Fonts + This Font Software is licensed under the SIL Open Font License, Version 1.1. + +XITS font project + Copyright (c) 2001-2010 by the STI Pub Companies, consisting of the American + Institute of Physics, the American Chemical Society, the American + Mathematical Society, the American Physical Society, Elsevier, Inc., and The + Institute of Electrical and Electronic Engineers, Inc. (www.stixfonts.org), + with Reserved Font Name STIX Fonts, STIX Fonts (TM) is a trademark of The + Institute of Electrical and Electronics Engineers, Inc. + + Portions copyright (c) 1998-2003 by MicroPress, Inc. + (www.micropress-inc.com), with Reserved Font Name TM Math. To obtain + additional mathematical fonts, please contact MicroPress, Inc., 68-30 Harrow + Street, Forest Hills, NY 11375, USA, Phone: (718) 575-1816. + + Portions copyright (c) 1990 by Elsevier, Inc. + + This Font Software is licensed under the SIL Open Font License, Version 1.1. + +Iosevka + Copyright (c) 2015-2020 Belleve Invis (belleve@typeof.net). + This Font Software is licensed under the SIL Open Font License, Version 1.1. + +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font +creation efforts of academic and linguistic communities, and to +provide a free and open framework in which fonts may be shared and +improved in partnership with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply to +any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software +components as distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, +deleting, or substituting -- in part or in whole -- any of the +components of the Original Version, by changing formats or by porting +the Font Software to a new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, +modify, redistribute, and sell modified and unmodified copies of the +Font Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, in +Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the +corresponding Copyright Holder. This restriction only applies to the +primary font name as presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created using +the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + +===== + +FontTools includes Adobe AGL & AGLFN, which is under 3-clauses BSD license: + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +Neither the name of Adobe Systems Incorporated nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +===== + +FontTools includes cu2qu, which is Copyright 2016 Google Inc. All Rights Reserved. +Licensed under the Apache License, Version 2.0, a copy of which is reproduced below: + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +===== + +FontTools includes code in `fontTools.misc.filesystem` which is derived from: + +PyFilesystem2 (i.e. the `fs` package) by Will McGugan +Licensed under the MIT License +https://github.com/PyFilesystem/pyfilesystem2 + +Copyright (c) 2017-2021 The PyFilesystem2 contributors +Copyright (c) 2016-2019 Will McGugan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/top_level.txt new file mode 100644 index 0000000..9af65ba --- /dev/null +++ b/venv/lib/python3.11/site-packages/fonttools-4.60.1.dist-info/top_level.txt @@ -0,0 +1 @@ +fontTools diff --git a/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/METADATA b/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/METADATA new file mode 100644 index 0000000..0e3a649 --- /dev/null +++ b/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/METADATA @@ -0,0 +1,117 @@ +Metadata-Version: 2.4 +Name: greenlet +Version: 3.2.4 +Summary: Lightweight in-process concurrent programming +Home-page: https://greenlet.readthedocs.io/ +Author: Alexey Borzenkov +Author-email: snaury@gmail.com +Maintainer: Jason Madden +Maintainer-email: jason@seecoresoftware.com +License: MIT AND Python-2.0 +Project-URL: Bug Tracker, https://github.com/python-greenlet/greenlet/issues +Project-URL: Source Code, https://github.com/python-greenlet/greenlet/ +Project-URL: Documentation, https://greenlet.readthedocs.io/ +Project-URL: Changes, https://greenlet.readthedocs.io/en/latest/changes.html +Keywords: greenlet coroutine concurrency threads cooperative +Platform: any +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Natural Language :: English +Classifier: Programming Language :: C +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Operating System :: OS Independent +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Requires-Python: >=3.9 +Description-Content-Type: text/x-rst +License-File: LICENSE +License-File: LICENSE.PSF +Provides-Extra: docs +Requires-Dist: Sphinx; extra == "docs" +Requires-Dist: furo; extra == "docs" +Provides-Extra: test +Requires-Dist: objgraph; extra == "test" +Requires-Dist: psutil; extra == "test" +Requires-Dist: setuptools; extra == "test" +Dynamic: author +Dynamic: author-email +Dynamic: classifier +Dynamic: description +Dynamic: description-content-type +Dynamic: home-page +Dynamic: keywords +Dynamic: license +Dynamic: license-file +Dynamic: maintainer +Dynamic: maintainer-email +Dynamic: platform +Dynamic: project-url +Dynamic: provides-extra +Dynamic: requires-python +Dynamic: summary + +.. This file is included into docs/history.rst + + +Greenlets are lightweight coroutines for in-process concurrent +programming. + +The "greenlet" package is a spin-off of `Stackless`_, a version of +CPython that supports micro-threads called "tasklets". Tasklets run +pseudo-concurrently (typically in a single or a few OS-level threads) +and are synchronized with data exchanges on "channels". + +A "greenlet", on the other hand, is a still more primitive notion of +micro-thread with no implicit scheduling; coroutines, in other words. +This is useful when you want to control exactly when your code runs. +You can build custom scheduled micro-threads on top of greenlet; +however, it seems that greenlets are useful on their own as a way to +make advanced control flow structures. For example, we can recreate +generators; the difference with Python's own generators is that our +generators can call nested functions and the nested functions can +yield values too. (Additionally, you don't need a "yield" keyword. See +the example in `test_generator.py +`_). + +Greenlets are provided as a C extension module for the regular unmodified +interpreter. + +.. _`Stackless`: http://www.stackless.com + + +Who is using Greenlet? +====================== + +There are several libraries that use Greenlet as a more flexible +alternative to Python's built in coroutine support: + + - `Concurrence`_ + - `Eventlet`_ + - `Gevent`_ + +.. _Concurrence: http://opensource.hyves.org/concurrence/ +.. _Eventlet: http://eventlet.net/ +.. _Gevent: http://www.gevent.org/ + +Getting Greenlet +================ + +The easiest way to get Greenlet is to install it with pip:: + + pip install greenlet + + +Source code archives and binary distributions are available on the +python package index at https://pypi.org/project/greenlet + +The source code repository is hosted on github: +https://github.com/python-greenlet/greenlet + +Documentation is available on readthedocs.org: +https://greenlet.readthedocs.io diff --git a/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/RECORD b/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/RECORD new file mode 100644 index 0000000..927c0cc --- /dev/null +++ b/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/RECORD @@ -0,0 +1,121 @@ +../../../include/site/python3.11/greenlet/greenlet.h,sha256=sz5pYRSQqedgOt2AMgxLZdTjO-qcr_JMvgiEJR9IAJ8,4755 +greenlet-3.2.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +greenlet-3.2.4.dist-info/METADATA,sha256=ZwuiD2PER_KIrBSuuQdUPtK-VCLKtfY5RueYGQheX6o,4120 +greenlet-3.2.4.dist-info/RECORD,, +greenlet-3.2.4.dist-info/WHEEL,sha256=N6PyfvHGx46Sh1ny6KlB0rtGwHkXZAwlLCEEPBiTPn8,152 +greenlet-3.2.4.dist-info/licenses/LICENSE,sha256=dpgx1uXfrywggC-sz_H6-0wgJd2PYlPfpH_K1Z1NCXk,1434 +greenlet-3.2.4.dist-info/licenses/LICENSE.PSF,sha256=5f88I8EQ5JTNfXNsEP2W1GJFe6_soxCEDbZScpjH1Gs,2424 +greenlet-3.2.4.dist-info/top_level.txt,sha256=YSnRsCRoO61JGlP57o8iKL6rdLWDWuiyKD8ekpWUsDc,9 +greenlet/CObjects.cpp,sha256=OPej1bWBgc4sRrTRQ2aFFML9pzDYKlKhlJSjsI0X_eU,3508 +greenlet/PyGreenlet.cpp,sha256=dGal9uux_E0d6yMaZfVYpdD9x1XFVOrp4s_or_D_UEM,24199 +greenlet/PyGreenlet.hpp,sha256=2ZQlOxYNoy7QwD7mppFoOXe_At56NIsJ0eNsE_hoSsw,1463 +greenlet/PyGreenletUnswitchable.cpp,sha256=PQE0fSZa_IOyUM44IESHkJoD2KtGW3dkhkmZSYY3WHs,4375 +greenlet/PyModule.cpp,sha256=J2TH06dGcNEarioS6NbWXkdME8hJY05XVbdqLrfO5w4,8587 +greenlet/TBrokenGreenlet.cpp,sha256=smN26uC7ahAbNYiS10rtWPjCeTG4jevM8siA2sjJiXg,1021 +greenlet/TExceptionState.cpp,sha256=U7Ctw9fBdNraS0d174MoQW7bN-ae209Ta0JuiKpcpVI,1359 +greenlet/TGreenlet.cpp,sha256=IM4cHsv1drEl35d7n8YOA_wR-R7oRvx5XhOJOK2PBB8,25732 +greenlet/TGreenlet.hpp,sha256=DoN795i3vofgll-20GA-ylg3qCNw-nKprLA6r7CK5HY,28522 +greenlet/TGreenletGlobals.cpp,sha256=YyEmDjKf1g32bsL-unIUScFLnnA1fzLWf2gOMd-D0Zw,3264 +greenlet/TMainGreenlet.cpp,sha256=fvgb8HHB-FVTPEKjR1s_ifCZSpp5D5YQByik0CnIABg,3276 +greenlet/TPythonState.cpp,sha256=b12U09sNjQvKG0_agROFHuJkDDa7HDccWaFW55XViQA,15975 +greenlet/TStackState.cpp,sha256=V444I8Jj9DhQz-9leVW_9dtiSRjaE1NMlgDG02Xxq-Y,7381 +greenlet/TThreadState.hpp,sha256=2Jgg7DtGggMYR_x3CLAvAFf1mIdIDtQvSSItcdmX4ZQ,19131 +greenlet/TThreadStateCreator.hpp,sha256=uYTexDWooXSSgUc5uh-Mhm5BQi3-kR6CqpizvNynBFQ,2610 +greenlet/TThreadStateDestroy.cpp,sha256=36yBCAMq3beXTZd-XnFA7DwaHVSOx2vc28-nf0spysU,8169 +greenlet/TUserGreenlet.cpp,sha256=uemg0lwKXtYB0yzmvyYdIIAsKnNkifXM1OJ2OlrFP1A,23553 +greenlet/__init__.py,sha256=vSR8EU6Bi32-0MkAlx--fzCL-Eheh6EqJWa-7B9LTOk,1723 +greenlet/__pycache__/__init__.cpython-311.pyc,, +greenlet/_greenlet.cpython-311-x86_64-linux-gnu.so,sha256=TkjvWEnGAXpCQgzzry0_iDHyP40sVXMVuRhT4lj8xTM,1365232 +greenlet/greenlet.cpp,sha256=WdItb1yWL9WNsTqJNf0Iw8ZwDHD49pkDP0rIRGBg2pw,10996 +greenlet/greenlet.h,sha256=sz5pYRSQqedgOt2AMgxLZdTjO-qcr_JMvgiEJR9IAJ8,4755 +greenlet/greenlet_allocator.hpp,sha256=eC0S1AQuep1vnVRsag-r83xgfAtbpn0qQZ-oXzQXaso,2607 +greenlet/greenlet_compiler_compat.hpp,sha256=nRxpLN9iNbnLVyFDeVmOwyeeNm6scQrOed1l7JQYMCM,4346 +greenlet/greenlet_cpython_compat.hpp,sha256=kJG6d_yDwwl3bSZOOFqM3ks1UzVIGcwbsTM2s8C6VYE,4149 +greenlet/greenlet_exceptions.hpp,sha256=06Bx81DtVaJTa6RtiMcV141b-XHv4ppEgVItkblcLWY,4503 +greenlet/greenlet_internal.hpp,sha256=Ajc-_09W4xWzm9XfyXHAeQAFUgKGKsnJwYsTCoNy3ns,2709 +greenlet/greenlet_msvc_compat.hpp,sha256=0MyaiyoCE_A6UROXZlMQRxRS17gfyh0d7NUppU3EVFc,2978 +greenlet/greenlet_refs.hpp,sha256=OnbA91yZf3QHH6-eJccvoNDAaN-pQBMMrclFU1Ot3J4,34436 +greenlet/greenlet_slp_switch.hpp,sha256=kM1QHA2iV-gH4cFyN6lfIagHQxvJZjWOVJdIxRE3TlQ,3198 +greenlet/greenlet_thread_support.hpp,sha256=XUJ6ljWjf9OYyuOILiz8e_yHvT3fbaUiHdhiPNQUV4s,867 +greenlet/platform/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +greenlet/platform/__pycache__/__init__.cpython-311.pyc,, +greenlet/platform/setup_switch_x64_masm.cmd,sha256=ZpClUJeU0ujEPSTWNSepP0W2f9XiYQKA8QKSoVou8EU,143 +greenlet/platform/switch_aarch64_gcc.h,sha256=GKC0yWNXnbK2X--X6aguRCMj2Tg7hDU1Zkl3RljDvC8,4307 +greenlet/platform/switch_alpha_unix.h,sha256=Z-SvF8JQV3oxWT8JRbL9RFu4gRFxPdJ7cviM8YayMmw,671 +greenlet/platform/switch_amd64_unix.h,sha256=EcSFCBlodEBhqhKjcJqY_5Dn_jn7pKpkJlOvp7gFXLI,2748 +greenlet/platform/switch_arm32_gcc.h,sha256=Z3KkHszdgq6uU4YN3BxvKMG2AdDnovwCCNrqGWZ1Lyo,2479 +greenlet/platform/switch_arm32_ios.h,sha256=mm5_R9aXB92hyxzFRwB71M60H6AlvHjrpTrc72Pz3l8,1892 +greenlet/platform/switch_arm64_masm.asm,sha256=4kpTtfy7rfcr8j1CpJLAK21EtZpGDAJXWRU68HEy5A8,1245 +greenlet/platform/switch_arm64_masm.obj,sha256=DmLnIB_icoEHAz1naue_pJPTZgR9ElM7-Nmztr-o9_U,746 +greenlet/platform/switch_arm64_msvc.h,sha256=RqK5MHLmXI3Q-FQ7tm32KWnbDNZKnkJdq8CR89cz640,398 +greenlet/platform/switch_csky_gcc.h,sha256=kDikyiPpewP71KoBZQO_MukDTXTXBiC7x-hF0_2DL0w,1331 +greenlet/platform/switch_loongarch64_linux.h,sha256=7M-Dhc4Q8tRbJCJhalDLwU6S9Mx8MjmN1RbTDgIvQTM,779 +greenlet/platform/switch_m68k_gcc.h,sha256=VSa6NpZhvyyvF-Q58CTIWSpEDo4FKygOyTz00whctlw,928 +greenlet/platform/switch_mips_unix.h,sha256=E0tYsqc5anDY1BhenU1l8DW-nVHC_BElzLgJw3TGtPk,1426 +greenlet/platform/switch_ppc64_aix.h,sha256=_BL0iyRr3ZA5iPlr3uk9SJ5sNRWGYLrXcZ5z-CE9anE,3860 +greenlet/platform/switch_ppc64_linux.h,sha256=0rriT5XyxPb0GqsSSn_bP9iQsnjsPbBmu0yqo5goSyQ,3815 +greenlet/platform/switch_ppc_aix.h,sha256=pHA4slEjUFP3J3SYm1TAlNPhgb2G_PAtax5cO8BEe1A,2941 +greenlet/platform/switch_ppc_linux.h,sha256=YwrlKUzxlXuiKMQqr6MFAV1bPzWnmvk6X1AqJZEpOWU,2759 +greenlet/platform/switch_ppc_macosx.h,sha256=Z6KN_ud0n6nC3ltJrNz2qtvER6vnRAVRNH9mdIDpMxY,2624 +greenlet/platform/switch_ppc_unix.h,sha256=-ZG7MSSPEA5N4qO9PQChtyEJ-Fm6qInhyZm_ZBHTtMg,2652 +greenlet/platform/switch_riscv_unix.h,sha256=606V6ACDf79Fz_WGItnkgbjIJ0pGg_sHmPyDxQYKK58,949 +greenlet/platform/switch_s390_unix.h,sha256=RRlGu957ybmq95qNNY4Qw1mcaoT3eBnW5KbVwu48KX8,2763 +greenlet/platform/switch_sh_gcc.h,sha256=mcRJBTu-2UBf4kZtX601qofwuDuy-Y-hnxJtrcaB7do,901 +greenlet/platform/switch_sparc_sun_gcc.h,sha256=xZish9GsMHBienUbUMsX1-ZZ-as7hs36sVhYIE3ew8Y,2797 +greenlet/platform/switch_x32_unix.h,sha256=nM98PKtzTWc1lcM7TRMUZJzskVdR1C69U1UqZRWX0GE,1509 +greenlet/platform/switch_x64_masm.asm,sha256=nu6n2sWyXuXfpPx40d9YmLfHXUc1sHgeTvX1kUzuvEM,1841 +greenlet/platform/switch_x64_masm.obj,sha256=GNtTNxYdo7idFUYsQv-mrXWgyT5EJ93-9q90lN6svtQ,1078 +greenlet/platform/switch_x64_msvc.h,sha256=LIeasyKo_vHzspdMzMHbosRhrBfKI4BkQOh4qcTHyJw,1805 +greenlet/platform/switch_x86_msvc.h,sha256=TtGOwinbFfnn6clxMNkCz8i6OmgB6kVRrShoF5iT9to,12838 +greenlet/platform/switch_x86_unix.h,sha256=VplW9H0FF0cZHw1DhJdIUs5q6YLS4cwb2nYwjF83R1s,3059 +greenlet/slp_platformselect.h,sha256=hTb3GFdcPUYJTuu1MY93js7MZEax1_e5E-gflpi0RzI,3959 +greenlet/tests/__init__.py,sha256=EtTtQfpRDde0MhsdAM5Cm7LYIfS_HKUIFwquiH4Q7ac,9736 +greenlet/tests/__pycache__/__init__.cpython-311.pyc,, +greenlet/tests/__pycache__/fail_clearing_run_switches.cpython-311.pyc,, +greenlet/tests/__pycache__/fail_cpp_exception.cpython-311.pyc,, +greenlet/tests/__pycache__/fail_initialstub_already_started.cpython-311.pyc,, +greenlet/tests/__pycache__/fail_slp_switch.cpython-311.pyc,, +greenlet/tests/__pycache__/fail_switch_three_greenlets.cpython-311.pyc,, +greenlet/tests/__pycache__/fail_switch_three_greenlets2.cpython-311.pyc,, +greenlet/tests/__pycache__/fail_switch_two_greenlets.cpython-311.pyc,, +greenlet/tests/__pycache__/leakcheck.cpython-311.pyc,, +greenlet/tests/__pycache__/test_contextvars.cpython-311.pyc,, +greenlet/tests/__pycache__/test_cpp.cpython-311.pyc,, +greenlet/tests/__pycache__/test_extension_interface.cpython-311.pyc,, +greenlet/tests/__pycache__/test_gc.cpython-311.pyc,, +greenlet/tests/__pycache__/test_generator.cpython-311.pyc,, +greenlet/tests/__pycache__/test_generator_nested.cpython-311.pyc,, +greenlet/tests/__pycache__/test_greenlet.cpython-311.pyc,, +greenlet/tests/__pycache__/test_greenlet_trash.cpython-311.pyc,, +greenlet/tests/__pycache__/test_leaks.cpython-311.pyc,, +greenlet/tests/__pycache__/test_stack_saved.cpython-311.pyc,, +greenlet/tests/__pycache__/test_throw.cpython-311.pyc,, +greenlet/tests/__pycache__/test_tracing.cpython-311.pyc,, +greenlet/tests/__pycache__/test_version.cpython-311.pyc,, +greenlet/tests/__pycache__/test_weakref.cpython-311.pyc,, +greenlet/tests/_test_extension.c,sha256=vkeGA-6oeJcGILsD7oIrT1qZop2GaTOHXiNT7mcSl-0,5773 +greenlet/tests/_test_extension.cpython-311-x86_64-linux-gnu.so,sha256=p118NJ4hObhSNcvKLduspwQExvXHPDAbWVVMU6o3dqs,17256 +greenlet/tests/_test_extension_cpp.cpp,sha256=e0kVnaB8CCaEhE9yHtNyfqTjevsPDKKx-zgxk7PPK48,6565 +greenlet/tests/_test_extension_cpp.cpython-311-x86_64-linux-gnu.so,sha256=oY-c-ycRV67QTFu7qSj83Uf-XU91QUPv7oqQ4Yd3YF0,57920 +greenlet/tests/fail_clearing_run_switches.py,sha256=o433oA_nUCtOPaMEGc8VEhZIKa71imVHXFw7TsXaP8M,1263 +greenlet/tests/fail_cpp_exception.py,sha256=o_ZbipWikok8Bjc-vjiQvcb5FHh2nVW-McGKMLcMzh0,985 +greenlet/tests/fail_initialstub_already_started.py,sha256=txENn5IyzGx2p-XR1XB7qXmC8JX_4mKDEA8kYBXUQKc,1961 +greenlet/tests/fail_slp_switch.py,sha256=rJBZcZfTWR3e2ERQtPAud6YKShiDsP84PmwOJbp4ey0,524 +greenlet/tests/fail_switch_three_greenlets.py,sha256=zSitV7rkNnaoHYVzAGGLnxz-yPtohXJJzaE8ehFDQ0M,956 +greenlet/tests/fail_switch_three_greenlets2.py,sha256=FPJensn2EJxoropl03JSTVP3kgP33k04h6aDWWozrOk,1285 +greenlet/tests/fail_switch_two_greenlets.py,sha256=1CaI8s3504VbbF1vj1uBYuy-zxBHVzHPIAd1LIc8ONg,817 +greenlet/tests/leakcheck.py,sha256=JHgc45bnTyVtn9MiprIlz2ygSXMFtcaCSp2eB9XIhQE,12612 +greenlet/tests/test_contextvars.py,sha256=xutO-qZgKTwKsA9lAqTjIcTBEiQV4RpNKM-vO2_YCVU,10541 +greenlet/tests/test_cpp.py,sha256=hpxhFAdKJTpAVZP8CBGs1ZcrKdscI9BaDZk4btkI5d4,2736 +greenlet/tests/test_extension_interface.py,sha256=eJ3cwLacdK2WbsrC-4DgeyHdwLRcG4zx7rrkRtqSzC4,3829 +greenlet/tests/test_gc.py,sha256=PCOaRpIyjNnNlDogGL3FZU_lrdXuM-pv1rxeE5TP5mc,2923 +greenlet/tests/test_generator.py,sha256=tONXiTf98VGm347o1b-810daPiwdla5cbpFg6QI1R1g,1240 +greenlet/tests/test_generator_nested.py,sha256=7v4HOYrf1XZP39dk5IUMubdZ8yc3ynwZcqj9GUJyMSA,3718 +greenlet/tests/test_greenlet.py,sha256=gSG6hOjKYyRRe5ZzNUpskrUcMnBT3WU4yITTzaZfLH4,47995 +greenlet/tests/test_greenlet_trash.py,sha256=n2dBlQfOoEO1ODatFi8QdhboH3fB86YtqzcYMYOXxbw,7947 +greenlet/tests/test_leaks.py,sha256=OFSE870Zyql85HukfC_XYa2c4gDQBU889RV1AlLum74,18076 +greenlet/tests/test_stack_saved.py,sha256=eyzqNY2VCGuGlxhT_In6TvZ6Okb0AXFZVyBEnK1jDwA,446 +greenlet/tests/test_throw.py,sha256=u2TQ_WvvCd6N6JdXWIxVEcXkKu5fepDlz9dktYdmtng,3712 +greenlet/tests/test_tracing.py,sha256=NFD6Vcww8grBnFQFhCNdswwGetjLeLQ7vL2Qqw3LWBM,8591 +greenlet/tests/test_version.py,sha256=O9DpAITsOFgiRcjd4odQ7ejmwx_N9Q1zQENVcbtFHIc,1339 +greenlet/tests/test_weakref.py,sha256=F8M23btEF87bIbpptLNBORosbQqNZGiYeKMqYjWrsak,883 diff --git a/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/WHEEL b/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/WHEEL new file mode 100644 index 0000000..283ae68 --- /dev/null +++ b/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: false +Tag: cp311-cp311-manylinux_2_24_x86_64 +Tag: cp311-cp311-manylinux_2_28_x86_64 + diff --git a/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/licenses/LICENSE new file mode 100644 index 0000000..b73a4a1 --- /dev/null +++ b/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/licenses/LICENSE @@ -0,0 +1,30 @@ +The following files are derived from Stackless Python and are subject to the +same license as Stackless Python: + + src/greenlet/slp_platformselect.h + files in src/greenlet/platform/ directory + +See LICENSE.PSF and http://www.stackless.com/ for details. + +Unless otherwise noted, the files in greenlet have been released under the +following MIT license: + +Copyright (c) Armin Rigo, Christian Tismer and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/licenses/LICENSE.PSF b/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/licenses/LICENSE.PSF new file mode 100644 index 0000000..d3b509a --- /dev/null +++ b/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/licenses/LICENSE.PSF @@ -0,0 +1,47 @@ +PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 +-------------------------------------------- + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using this software ("Python") in source or binary form and +its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF hereby +grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, +analyze, test, perform and/or display publicly, prepare derivative works, +distribute, and otherwise use Python alone or in any derivative version, +provided, however, that PSF's License Agreement and PSF's notice of copyright, +i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +2011 Python Software Foundation; All Rights Reserved" are retained in Python +alone or in any derivative version prepared by Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python. + +4. PSF is making Python available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. diff --git a/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/top_level.txt new file mode 100644 index 0000000..46725be --- /dev/null +++ b/venv/lib/python3.11/site-packages/greenlet-3.2.4.dist-info/top_level.txt @@ -0,0 +1 @@ +greenlet diff --git a/venv/lib/python3.11/site-packages/h11-0.16.0.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/h11-0.16.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/h11-0.16.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/h11-0.16.0.dist-info/METADATA b/venv/lib/python3.11/site-packages/h11-0.16.0.dist-info/METADATA new file mode 100644 index 0000000..8a2f639 --- /dev/null +++ b/venv/lib/python3.11/site-packages/h11-0.16.0.dist-info/METADATA @@ -0,0 +1,202 @@ +Metadata-Version: 2.4 +Name: h11 +Version: 0.16.0 +Summary: A pure-Python, bring-your-own-I/O implementation of HTTP/1.1 +Home-page: https://github.com/python-hyper/h11 +Author: Nathaniel J. Smith +Author-email: njs@pobox.com +License: MIT +Classifier: Development Status :: 3 - Alpha +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Topic :: Internet :: WWW/HTTP +Classifier: Topic :: System :: Networking +Requires-Python: >=3.8 +License-File: LICENSE.txt +Dynamic: author +Dynamic: author-email +Dynamic: classifier +Dynamic: description +Dynamic: home-page +Dynamic: license +Dynamic: license-file +Dynamic: requires-python +Dynamic: summary + +h11 +=== + +.. image:: https://travis-ci.org/python-hyper/h11.svg?branch=master + :target: https://travis-ci.org/python-hyper/h11 + :alt: Automated test status + +.. image:: https://codecov.io/gh/python-hyper/h11/branch/master/graph/badge.svg + :target: https://codecov.io/gh/python-hyper/h11 + :alt: Test coverage + +.. image:: https://readthedocs.org/projects/h11/badge/?version=latest + :target: http://h11.readthedocs.io/en/latest/?badge=latest + :alt: Documentation Status + +This is a little HTTP/1.1 library written from scratch in Python, +heavily inspired by `hyper-h2 `_. + +It's a "bring-your-own-I/O" library; h11 contains no IO code +whatsoever. This means you can hook h11 up to your favorite network +API, and that could be anything you want: synchronous, threaded, +asynchronous, or your own implementation of `RFC 6214 +`_ -- h11 won't judge you. +(Compare this to the current state of the art, where every time a `new +network API `_ comes along then someone +gets to start over reimplementing the entire HTTP protocol from +scratch.) Cory Benfield made an `excellent blog post describing the +benefits of this approach +`_, or if you like video +then here's his `PyCon 2016 talk on the same theme +`_. + +This also means that h11 is not immediately useful out of the box: +it's a toolkit for building programs that speak HTTP, not something +that could directly replace ``requests`` or ``twisted.web`` or +whatever. But h11 makes it much easier to implement something like +``requests`` or ``twisted.web``. + +At a high level, working with h11 goes like this: + +1) First, create an ``h11.Connection`` object to track the state of a + single HTTP/1.1 connection. + +2) When you read data off the network, pass it to + ``conn.receive_data(...)``; you'll get back a list of objects + representing high-level HTTP "events". + +3) When you want to send a high-level HTTP event, create the + corresponding "event" object and pass it to ``conn.send(...)``; + this will give you back some bytes that you can then push out + through the network. + +For example, a client might instantiate and then send a +``h11.Request`` object, then zero or more ``h11.Data`` objects for the +request body (e.g., if this is a POST), and then a +``h11.EndOfMessage`` to indicate the end of the message. Then the +server would then send back a ``h11.Response``, some ``h11.Data``, and +its own ``h11.EndOfMessage``. If either side violates the protocol, +you'll get a ``h11.ProtocolError`` exception. + +h11 is suitable for implementing both servers and clients, and has a +pleasantly symmetric API: the events you send as a client are exactly +the ones that you receive as a server and vice-versa. + +`Here's an example of a tiny HTTP client +`_ + +It also has `a fine manual `_. + +FAQ +--- + +*Whyyyyy?* + +I wanted to play with HTTP in `Curio +`__ and `Trio +`__, which at the time didn't have any +HTTP libraries. So I thought, no big deal, Python has, like, a dozen +different implementations of HTTP, surely I can find one that's +reusable. I didn't find one, but I did find Cory's call-to-arms +blog-post. So I figured, well, fine, if I have to implement HTTP from +scratch, at least I can make sure no-one *else* has to ever again. + +*Should I use it?* + +Maybe. You should be aware that it's a very young project. But, it's +feature complete and has an exhaustive test-suite and complete docs, +so the next step is for people to try using it and see how it goes +:-). If you do then please let us know -- if nothing else we'll want +to talk to you before making any incompatible changes! + +*What are the features/limitations?* + +Roughly speaking, it's trying to be a robust, complete, and non-hacky +implementation of the first "chapter" of the HTTP/1.1 spec: `RFC 7230: +HTTP/1.1 Message Syntax and Routing +`_. That is, it mostly focuses on +implementing HTTP at the level of taking bytes on and off the wire, +and the headers related to that, and tries to be anal about spec +conformance. It doesn't know about higher-level concerns like URL +routing, conditional GETs, cross-origin cookie policies, or content +negotiation. But it does know how to take care of framing, +cross-version differences in keep-alive handling, and the "obsolete +line folding" rule, so you can focus your energies on the hard / +interesting parts for your application, and it tries to support the +full specification in the sense that any useful HTTP/1.1 conformant +application should be able to use h11. + +It's pure Python, and has no dependencies outside of the standard +library. + +It has a test suite with 100.0% coverage for both statements and +branches. + +Currently it supports Python 3 (testing on 3.8-3.12) and PyPy 3. +The last Python 2-compatible version was h11 0.11.x. +(Originally it had a Cython wrapper for `http-parser +`_ and a beautiful nested state +machine implemented with ``yield from`` to postprocess the output. But +I had to take these out -- the new *parser* needs fewer lines-of-code +than the old *parser wrapper*, is written in pure Python, uses no +exotic language syntax, and has more features. It's sad, really; that +old state machine was really slick. I just need a few sentences here +to mourn that.) + +I don't know how fast it is. I haven't benchmarked or profiled it yet, +so it's probably got a few pointless hot spots, and I've been trying +to err on the side of simplicity and robustness instead of +micro-optimization. But at the architectural level I tried hard to +avoid fundamentally bad decisions, e.g., I believe that all the +parsing algorithms remain linear-time even in the face of pathological +input like slowloris, and there are no byte-by-byte loops. (I also +believe that it maintains bounded memory usage in the face of +arbitrary/pathological input.) + +The whole library is ~800 lines-of-code. You can read and understand +the whole thing in less than an hour. Most of the energy invested in +this so far has been spent on trying to keep things simple by +minimizing special-cases and ad hoc state manipulation; even though it +is now quite small and simple, I'm still annoyed that I haven't +figured out how to make it even smaller and simpler. (Unfortunately, +HTTP does not lend itself to simplicity.) + +The API is ~feature complete and I don't expect the general outlines +to change much, but you can't judge an API's ergonomics until you +actually document and use it, so I'd expect some changes in the +details. + +*How do I try it?* + +.. code-block:: sh + + $ pip install h11 + $ git clone git@github.com:python-hyper/h11 + $ cd h11/examples + $ python basic-client.py + +and go from there. + +*License?* + +MIT + +*Code of conduct?* + +Contributors are requested to follow our `code of conduct +`_ in +all project spaces. diff --git a/venv/lib/python3.11/site-packages/h11-0.16.0.dist-info/RECORD b/venv/lib/python3.11/site-packages/h11-0.16.0.dist-info/RECORD new file mode 100644 index 0000000..aa15b9a --- /dev/null +++ b/venv/lib/python3.11/site-packages/h11-0.16.0.dist-info/RECORD @@ -0,0 +1,29 @@ +h11-0.16.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +h11-0.16.0.dist-info/METADATA,sha256=KPMmCYrAn8unm48YD5YIfIQf4kViFct7hyqcfVzRnWQ,8348 +h11-0.16.0.dist-info/RECORD,, +h11-0.16.0.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91 +h11-0.16.0.dist-info/licenses/LICENSE.txt,sha256=N9tbuFkm2yikJ6JYZ_ELEjIAOuob5pzLhRE4rbjm82E,1124 +h11-0.16.0.dist-info/top_level.txt,sha256=F7dC4jl3zeh8TGHEPaWJrMbeuoWbS379Gwdi-Yvdcis,4 +h11/__init__.py,sha256=iO1KzkSO42yZ6ffg-VMgbx_ZVTWGUY00nRYEWn-s3kY,1507 +h11/__pycache__/__init__.cpython-311.pyc,, +h11/__pycache__/_abnf.cpython-311.pyc,, +h11/__pycache__/_connection.cpython-311.pyc,, +h11/__pycache__/_events.cpython-311.pyc,, +h11/__pycache__/_headers.cpython-311.pyc,, +h11/__pycache__/_readers.cpython-311.pyc,, +h11/__pycache__/_receivebuffer.cpython-311.pyc,, +h11/__pycache__/_state.cpython-311.pyc,, +h11/__pycache__/_util.cpython-311.pyc,, +h11/__pycache__/_version.cpython-311.pyc,, +h11/__pycache__/_writers.cpython-311.pyc,, +h11/_abnf.py,sha256=ybixr0xsupnkA6GFAyMubuXF6Tc1lb_hF890NgCsfNc,4815 +h11/_connection.py,sha256=k9YRVf6koZqbttBW36xSWaJpWdZwa-xQVU9AHEo9DuI,26863 +h11/_events.py,sha256=I97aXoal1Wu7dkL548BANBUCkOIbe-x5CioYA9IBY14,11792 +h11/_headers.py,sha256=P7D-lBNxHwdLZPLimmYwrPG-9ZkjElvvJZJdZAgSP-4,10412 +h11/_readers.py,sha256=a4RypORUCC3d0q_kxPuBIM7jTD8iLt5X91TH0FsduN4,8590 +h11/_receivebuffer.py,sha256=xrspsdsNgWFxRfQcTXxR8RrdjRXXTK0Io5cQYWpJ1Ws,5252 +h11/_state.py,sha256=_5LG_BGR8FCcFQeBPH-TMHgm_-B-EUcWCnQof_9XjFE,13231 +h11/_util.py,sha256=LWkkjXyJaFlAy6Lt39w73UStklFT5ovcvo0TkY7RYuk,4888 +h11/_version.py,sha256=GVSsbPSPDcOuF6ptfIiXnVJoaEm3ygXbMnqlr_Giahw,686 +h11/_writers.py,sha256=oFKm6PtjeHfbj4RLX7VB7KDc1gIY53gXG3_HR9ltmTA,5081 +h11/py.typed,sha256=sow9soTwP9T_gEAQSVh7Gb8855h04Nwmhs2We-JRgZM,7 diff --git a/venv/lib/python3.11/site-packages/h11-0.16.0.dist-info/WHEEL b/venv/lib/python3.11/site-packages/h11-0.16.0.dist-info/WHEEL new file mode 100644 index 0000000..1eb3c49 --- /dev/null +++ b/venv/lib/python3.11/site-packages/h11-0.16.0.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (78.1.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.11/site-packages/h11-0.16.0.dist-info/licenses/LICENSE.txt b/venv/lib/python3.11/site-packages/h11-0.16.0.dist-info/licenses/LICENSE.txt new file mode 100644 index 0000000..8f080ea --- /dev/null +++ b/venv/lib/python3.11/site-packages/h11-0.16.0.dist-info/licenses/LICENSE.txt @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2016 Nathaniel J. Smith and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/h11-0.16.0.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/h11-0.16.0.dist-info/top_level.txt new file mode 100644 index 0000000..0d24def --- /dev/null +++ b/venv/lib/python3.11/site-packages/h11-0.16.0.dist-info/top_level.txt @@ -0,0 +1 @@ +h11 diff --git a/venv/lib/python3.11/site-packages/h11/__init__.py b/venv/lib/python3.11/site-packages/h11/__init__.py new file mode 100644 index 0000000..989e92c --- /dev/null +++ b/venv/lib/python3.11/site-packages/h11/__init__.py @@ -0,0 +1,62 @@ +# A highish-level implementation of the HTTP/1.1 wire protocol (RFC 7230), +# containing no networking code at all, loosely modelled on hyper-h2's generic +# implementation of HTTP/2 (and in particular the h2.connection.H2Connection +# class). There's still a bunch of subtle details you need to get right if you +# want to make this actually useful, because it doesn't implement all the +# semantics to check that what you're asking to write to the wire is sensible, +# but at least it gets you out of dealing with the wire itself. + +from h11._connection import Connection, NEED_DATA, PAUSED +from h11._events import ( + ConnectionClosed, + Data, + EndOfMessage, + Event, + InformationalResponse, + Request, + Response, +) +from h11._state import ( + CLIENT, + CLOSED, + DONE, + ERROR, + IDLE, + MIGHT_SWITCH_PROTOCOL, + MUST_CLOSE, + SEND_BODY, + SEND_RESPONSE, + SERVER, + SWITCHED_PROTOCOL, +) +from h11._util import LocalProtocolError, ProtocolError, RemoteProtocolError +from h11._version import __version__ + +PRODUCT_ID = "python-h11/" + __version__ + + +__all__ = ( + "Connection", + "NEED_DATA", + "PAUSED", + "ConnectionClosed", + "Data", + "EndOfMessage", + "Event", + "InformationalResponse", + "Request", + "Response", + "CLIENT", + "CLOSED", + "DONE", + "ERROR", + "IDLE", + "MUST_CLOSE", + "SEND_BODY", + "SEND_RESPONSE", + "SERVER", + "SWITCHED_PROTOCOL", + "ProtocolError", + "LocalProtocolError", + "RemoteProtocolError", +) diff --git a/venv/lib/python3.11/site-packages/h11/_abnf.py b/venv/lib/python3.11/site-packages/h11/_abnf.py new file mode 100644 index 0000000..933587f --- /dev/null +++ b/venv/lib/python3.11/site-packages/h11/_abnf.py @@ -0,0 +1,132 @@ +# We use native strings for all the re patterns, to take advantage of string +# formatting, and then convert to bytestrings when compiling the final re +# objects. + +# https://svn.tools.ietf.org/svn/wg/httpbis/specs/rfc7230.html#whitespace +# OWS = *( SP / HTAB ) +# ; optional whitespace +OWS = r"[ \t]*" + +# https://svn.tools.ietf.org/svn/wg/httpbis/specs/rfc7230.html#rule.token.separators +# token = 1*tchar +# +# tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" +# / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" +# / DIGIT / ALPHA +# ; any VCHAR, except delimiters +token = r"[-!#$%&'*+.^_`|~0-9a-zA-Z]+" + +# https://svn.tools.ietf.org/svn/wg/httpbis/specs/rfc7230.html#header.fields +# field-name = token +field_name = token + +# The standard says: +# +# field-value = *( field-content / obs-fold ) +# field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] +# field-vchar = VCHAR / obs-text +# obs-fold = CRLF 1*( SP / HTAB ) +# ; obsolete line folding +# ; see Section 3.2.4 +# +# https://tools.ietf.org/html/rfc5234#appendix-B.1 +# +# VCHAR = %x21-7E +# ; visible (printing) characters +# +# https://svn.tools.ietf.org/svn/wg/httpbis/specs/rfc7230.html#rule.quoted-string +# obs-text = %x80-FF +# +# However, the standard definition of field-content is WRONG! It disallows +# fields containing a single visible character surrounded by whitespace, +# e.g. "foo a bar". +# +# See: https://www.rfc-editor.org/errata_search.php?rfc=7230&eid=4189 +# +# So our definition of field_content attempts to fix it up... +# +# Also, we allow lots of control characters, because apparently people assume +# that they're legal in practice (e.g., google analytics makes cookies with +# \x01 in them!): +# https://github.com/python-hyper/h11/issues/57 +# We still don't allow NUL or whitespace, because those are often treated as +# meta-characters and letting them through can lead to nasty issues like SSRF. +vchar = r"[\x21-\x7e]" +vchar_or_obs_text = r"[^\x00\s]" +field_vchar = vchar_or_obs_text +field_content = r"{field_vchar}+(?:[ \t]+{field_vchar}+)*".format(**globals()) + +# We handle obs-fold at a different level, and our fixed-up field_content +# already grows to swallow the whole value, so ? instead of * +field_value = r"({field_content})?".format(**globals()) + +# header-field = field-name ":" OWS field-value OWS +header_field = ( + r"(?P{field_name})" + r":" + r"{OWS}" + r"(?P{field_value})" + r"{OWS}".format(**globals()) +) + +# https://svn.tools.ietf.org/svn/wg/httpbis/specs/rfc7230.html#request.line +# +# request-line = method SP request-target SP HTTP-version CRLF +# method = token +# HTTP-version = HTTP-name "/" DIGIT "." DIGIT +# HTTP-name = %x48.54.54.50 ; "HTTP", case-sensitive +# +# request-target is complicated (see RFC 7230 sec 5.3) -- could be path, full +# URL, host+port (for connect), or even "*", but in any case we are guaranteed +# that it contists of the visible printing characters. +method = token +request_target = r"{vchar}+".format(**globals()) +http_version = r"HTTP/(?P[0-9]\.[0-9])" +request_line = ( + r"(?P{method})" + r" " + r"(?P{request_target})" + r" " + r"{http_version}".format(**globals()) +) + +# https://svn.tools.ietf.org/svn/wg/httpbis/specs/rfc7230.html#status.line +# +# status-line = HTTP-version SP status-code SP reason-phrase CRLF +# status-code = 3DIGIT +# reason-phrase = *( HTAB / SP / VCHAR / obs-text ) +status_code = r"[0-9]{3}" +reason_phrase = r"([ \t]|{vchar_or_obs_text})*".format(**globals()) +status_line = ( + r"{http_version}" + r" " + r"(?P{status_code})" + # However, there are apparently a few too many servers out there that just + # leave out the reason phrase: + # https://github.com/scrapy/scrapy/issues/345#issuecomment-281756036 + # https://github.com/seanmonstar/httparse/issues/29 + # so make it optional. ?: is a non-capturing group. + r"(?: (?P{reason_phrase}))?".format(**globals()) +) + +HEXDIG = r"[0-9A-Fa-f]" +# Actually +# +# chunk-size = 1*HEXDIG +# +# but we impose an upper-limit to avoid ridiculosity. len(str(2**64)) == 20 +chunk_size = r"({HEXDIG}){{1,20}}".format(**globals()) +# Actually +# +# chunk-ext = *( ";" chunk-ext-name [ "=" chunk-ext-val ] ) +# +# but we aren't parsing the things so we don't really care. +chunk_ext = r";.*" +chunk_header = ( + r"(?P{chunk_size})" + r"(?P{chunk_ext})?" + r"{OWS}\r\n".format( + **globals() + ) # Even though the specification does not allow for extra whitespaces, + # we are lenient with trailing whitespaces because some servers on the wild use it. +) diff --git a/venv/lib/python3.11/site-packages/h11/_connection.py b/venv/lib/python3.11/site-packages/h11/_connection.py new file mode 100644 index 0000000..e37d82a --- /dev/null +++ b/venv/lib/python3.11/site-packages/h11/_connection.py @@ -0,0 +1,659 @@ +# This contains the main Connection class. Everything in h11 revolves around +# this. +from typing import ( + Any, + Callable, + cast, + Dict, + List, + Optional, + overload, + Tuple, + Type, + Union, +) + +from ._events import ( + ConnectionClosed, + Data, + EndOfMessage, + Event, + InformationalResponse, + Request, + Response, +) +from ._headers import get_comma_header, has_expect_100_continue, set_comma_header +from ._readers import READERS, ReadersType +from ._receivebuffer import ReceiveBuffer +from ._state import ( + _SWITCH_CONNECT, + _SWITCH_UPGRADE, + CLIENT, + ConnectionState, + DONE, + ERROR, + MIGHT_SWITCH_PROTOCOL, + SEND_BODY, + SERVER, + SWITCHED_PROTOCOL, +) +from ._util import ( # Import the internal things we need + LocalProtocolError, + RemoteProtocolError, + Sentinel, +) +from ._writers import WRITERS, WritersType + +# Everything in __all__ gets re-exported as part of the h11 public API. +__all__ = ["Connection", "NEED_DATA", "PAUSED"] + + +class NEED_DATA(Sentinel, metaclass=Sentinel): + pass + + +class PAUSED(Sentinel, metaclass=Sentinel): + pass + + +# If we ever have this much buffered without it making a complete parseable +# event, we error out. The only time we really buffer is when reading the +# request/response line + headers together, so this is effectively the limit on +# the size of that. +# +# Some precedents for defaults: +# - node.js: 80 * 1024 +# - tomcat: 8 * 1024 +# - IIS: 16 * 1024 +# - Apache: <8 KiB per line> +DEFAULT_MAX_INCOMPLETE_EVENT_SIZE = 16 * 1024 + + +# RFC 7230's rules for connection lifecycles: +# - If either side says they want to close the connection, then the connection +# must close. +# - HTTP/1.1 defaults to keep-alive unless someone says Connection: close +# - HTTP/1.0 defaults to close unless both sides say Connection: keep-alive +# (and even this is a mess -- e.g. if you're implementing a proxy then +# sending Connection: keep-alive is forbidden). +# +# We simplify life by simply not supporting keep-alive with HTTP/1.0 peers. So +# our rule is: +# - If someone says Connection: close, we will close +# - If someone uses HTTP/1.0, we will close. +def _keep_alive(event: Union[Request, Response]) -> bool: + connection = get_comma_header(event.headers, b"connection") + if b"close" in connection: + return False + if getattr(event, "http_version", b"1.1") < b"1.1": + return False + return True + + +def _body_framing( + request_method: bytes, event: Union[Request, Response] +) -> Tuple[str, Union[Tuple[()], Tuple[int]]]: + # Called when we enter SEND_BODY to figure out framing information for + # this body. + # + # These are the only two events that can trigger a SEND_BODY state: + assert type(event) in (Request, Response) + # Returns one of: + # + # ("content-length", count) + # ("chunked", ()) + # ("http/1.0", ()) + # + # which are (lookup key, *args) for constructing body reader/writer + # objects. + # + # Reference: https://tools.ietf.org/html/rfc7230#section-3.3.3 + # + # Step 1: some responses always have an empty body, regardless of what the + # headers say. + if type(event) is Response: + if ( + event.status_code in (204, 304) + or request_method == b"HEAD" + or (request_method == b"CONNECT" and 200 <= event.status_code < 300) + ): + return ("content-length", (0,)) + # Section 3.3.3 also lists another case -- responses with status_code + # < 200. For us these are InformationalResponses, not Responses, so + # they can't get into this function in the first place. + assert event.status_code >= 200 + + # Step 2: check for Transfer-Encoding (T-E beats C-L): + transfer_encodings = get_comma_header(event.headers, b"transfer-encoding") + if transfer_encodings: + assert transfer_encodings == [b"chunked"] + return ("chunked", ()) + + # Step 3: check for Content-Length + content_lengths = get_comma_header(event.headers, b"content-length") + if content_lengths: + return ("content-length", (int(content_lengths[0]),)) + + # Step 4: no applicable headers; fallback/default depends on type + if type(event) is Request: + return ("content-length", (0,)) + else: + return ("http/1.0", ()) + + +################################################################ +# +# The main Connection class +# +################################################################ + + +class Connection: + """An object encapsulating the state of an HTTP connection. + + Args: + our_role: If you're implementing a client, pass :data:`h11.CLIENT`. If + you're implementing a server, pass :data:`h11.SERVER`. + + max_incomplete_event_size (int): + The maximum number of bytes we're willing to buffer of an + incomplete event. In practice this mostly sets a limit on the + maximum size of the request/response line + headers. If this is + exceeded, then :meth:`next_event` will raise + :exc:`RemoteProtocolError`. + + """ + + def __init__( + self, + our_role: Type[Sentinel], + max_incomplete_event_size: int = DEFAULT_MAX_INCOMPLETE_EVENT_SIZE, + ) -> None: + self._max_incomplete_event_size = max_incomplete_event_size + # State and role tracking + if our_role not in (CLIENT, SERVER): + raise ValueError(f"expected CLIENT or SERVER, not {our_role!r}") + self.our_role = our_role + self.their_role: Type[Sentinel] + if our_role is CLIENT: + self.their_role = SERVER + else: + self.their_role = CLIENT + self._cstate = ConnectionState() + + # Callables for converting data->events or vice-versa given the + # current state + self._writer = self._get_io_object(self.our_role, None, WRITERS) + self._reader = self._get_io_object(self.their_role, None, READERS) + + # Holds any unprocessed received data + self._receive_buffer = ReceiveBuffer() + # If this is true, then it indicates that the incoming connection was + # closed *after* the end of whatever's in self._receive_buffer: + self._receive_buffer_closed = False + + # Extra bits of state that don't fit into the state machine. + # + # These two are only used to interpret framing headers for figuring + # out how to read/write response bodies. their_http_version is also + # made available as a convenient public API. + self.their_http_version: Optional[bytes] = None + self._request_method: Optional[bytes] = None + # This is pure flow-control and doesn't at all affect the set of legal + # transitions, so no need to bother ConnectionState with it: + self.client_is_waiting_for_100_continue = False + + @property + def states(self) -> Dict[Type[Sentinel], Type[Sentinel]]: + """A dictionary like:: + + {CLIENT: , SERVER: } + + See :ref:`state-machine` for details. + + """ + return dict(self._cstate.states) + + @property + def our_state(self) -> Type[Sentinel]: + """The current state of whichever role we are playing. See + :ref:`state-machine` for details. + """ + return self._cstate.states[self.our_role] + + @property + def their_state(self) -> Type[Sentinel]: + """The current state of whichever role we are NOT playing. See + :ref:`state-machine` for details. + """ + return self._cstate.states[self.their_role] + + @property + def they_are_waiting_for_100_continue(self) -> bool: + return self.their_role is CLIENT and self.client_is_waiting_for_100_continue + + def start_next_cycle(self) -> None: + """Attempt to reset our connection state for a new request/response + cycle. + + If both client and server are in :data:`DONE` state, then resets them + both to :data:`IDLE` state in preparation for a new request/response + cycle on this same connection. Otherwise, raises a + :exc:`LocalProtocolError`. + + See :ref:`keepalive-and-pipelining`. + + """ + old_states = dict(self._cstate.states) + self._cstate.start_next_cycle() + self._request_method = None + # self.their_http_version gets left alone, since it presumably lasts + # beyond a single request/response cycle + assert not self.client_is_waiting_for_100_continue + self._respond_to_state_changes(old_states) + + def _process_error(self, role: Type[Sentinel]) -> None: + old_states = dict(self._cstate.states) + self._cstate.process_error(role) + self._respond_to_state_changes(old_states) + + def _server_switch_event(self, event: Event) -> Optional[Type[Sentinel]]: + if type(event) is InformationalResponse and event.status_code == 101: + return _SWITCH_UPGRADE + if type(event) is Response: + if ( + _SWITCH_CONNECT in self._cstate.pending_switch_proposals + and 200 <= event.status_code < 300 + ): + return _SWITCH_CONNECT + return None + + # All events go through here + def _process_event(self, role: Type[Sentinel], event: Event) -> None: + # First, pass the event through the state machine to make sure it + # succeeds. + old_states = dict(self._cstate.states) + if role is CLIENT and type(event) is Request: + if event.method == b"CONNECT": + self._cstate.process_client_switch_proposal(_SWITCH_CONNECT) + if get_comma_header(event.headers, b"upgrade"): + self._cstate.process_client_switch_proposal(_SWITCH_UPGRADE) + server_switch_event = None + if role is SERVER: + server_switch_event = self._server_switch_event(event) + self._cstate.process_event(role, type(event), server_switch_event) + + # Then perform the updates triggered by it. + + if type(event) is Request: + self._request_method = event.method + + if role is self.their_role and type(event) in ( + Request, + Response, + InformationalResponse, + ): + event = cast(Union[Request, Response, InformationalResponse], event) + self.their_http_version = event.http_version + + # Keep alive handling + # + # RFC 7230 doesn't really say what one should do if Connection: close + # shows up on a 1xx InformationalResponse. I think the idea is that + # this is not supposed to happen. In any case, if it does happen, we + # ignore it. + if type(event) in (Request, Response) and not _keep_alive( + cast(Union[Request, Response], event) + ): + self._cstate.process_keep_alive_disabled() + + # 100-continue + if type(event) is Request and has_expect_100_continue(event): + self.client_is_waiting_for_100_continue = True + if type(event) in (InformationalResponse, Response): + self.client_is_waiting_for_100_continue = False + if role is CLIENT and type(event) in (Data, EndOfMessage): + self.client_is_waiting_for_100_continue = False + + self._respond_to_state_changes(old_states, event) + + def _get_io_object( + self, + role: Type[Sentinel], + event: Optional[Event], + io_dict: Union[ReadersType, WritersType], + ) -> Optional[Callable[..., Any]]: + # event may be None; it's only used when entering SEND_BODY + state = self._cstate.states[role] + if state is SEND_BODY: + # Special case: the io_dict has a dict of reader/writer factories + # that depend on the request/response framing. + framing_type, args = _body_framing( + cast(bytes, self._request_method), cast(Union[Request, Response], event) + ) + return io_dict[SEND_BODY][framing_type](*args) # type: ignore[index] + else: + # General case: the io_dict just has the appropriate reader/writer + # for this state + return io_dict.get((role, state)) # type: ignore[return-value] + + # This must be called after any action that might have caused + # self._cstate.states to change. + def _respond_to_state_changes( + self, + old_states: Dict[Type[Sentinel], Type[Sentinel]], + event: Optional[Event] = None, + ) -> None: + # Update reader/writer + if self.our_state != old_states[self.our_role]: + self._writer = self._get_io_object(self.our_role, event, WRITERS) + if self.their_state != old_states[self.their_role]: + self._reader = self._get_io_object(self.their_role, event, READERS) + + @property + def trailing_data(self) -> Tuple[bytes, bool]: + """Data that has been received, but not yet processed, represented as + a tuple with two elements, where the first is a byte-string containing + the unprocessed data itself, and the second is a bool that is True if + the receive connection was closed. + + See :ref:`switching-protocols` for discussion of why you'd want this. + """ + return (bytes(self._receive_buffer), self._receive_buffer_closed) + + def receive_data(self, data: bytes) -> None: + """Add data to our internal receive buffer. + + This does not actually do any processing on the data, just stores + it. To trigger processing, you have to call :meth:`next_event`. + + Args: + data (:term:`bytes-like object`): + The new data that was just received. + + Special case: If *data* is an empty byte-string like ``b""``, + then this indicates that the remote side has closed the + connection (end of file). Normally this is convenient, because + standard Python APIs like :meth:`file.read` or + :meth:`socket.recv` use ``b""`` to indicate end-of-file, while + other failures to read are indicated using other mechanisms + like raising :exc:`TimeoutError`. When using such an API you + can just blindly pass through whatever you get from ``read`` + to :meth:`receive_data`, and everything will work. + + But, if you have an API where reading an empty string is a + valid non-EOF condition, then you need to be aware of this and + make sure to check for such strings and avoid passing them to + :meth:`receive_data`. + + Returns: + Nothing, but after calling this you should call :meth:`next_event` + to parse the newly received data. + + Raises: + RuntimeError: + Raised if you pass an empty *data*, indicating EOF, and then + pass a non-empty *data*, indicating more data that somehow + arrived after the EOF. + + (Calling ``receive_data(b"")`` multiple times is fine, + and equivalent to calling it once.) + + """ + if data: + if self._receive_buffer_closed: + raise RuntimeError("received close, then received more data?") + self._receive_buffer += data + else: + self._receive_buffer_closed = True + + def _extract_next_receive_event( + self, + ) -> Union[Event, Type[NEED_DATA], Type[PAUSED]]: + state = self.their_state + # We don't pause immediately when they enter DONE, because even in + # DONE state we can still process a ConnectionClosed() event. But + # if we have data in our buffer, then we definitely aren't getting + # a ConnectionClosed() immediately and we need to pause. + if state is DONE and self._receive_buffer: + return PAUSED + if state is MIGHT_SWITCH_PROTOCOL or state is SWITCHED_PROTOCOL: + return PAUSED + assert self._reader is not None + event = self._reader(self._receive_buffer) + if event is None: + if not self._receive_buffer and self._receive_buffer_closed: + # In some unusual cases (basically just HTTP/1.0 bodies), EOF + # triggers an actual protocol event; in that case, we want to + # return that event, and then the state will change and we'll + # get called again to generate the actual ConnectionClosed(). + if hasattr(self._reader, "read_eof"): + event = self._reader.read_eof() + else: + event = ConnectionClosed() + if event is None: + event = NEED_DATA + return event # type: ignore[no-any-return] + + def next_event(self) -> Union[Event, Type[NEED_DATA], Type[PAUSED]]: + """Parse the next event out of our receive buffer, update our internal + state, and return it. + + This is a mutating operation -- think of it like calling :func:`next` + on an iterator. + + Returns: + : One of three things: + + 1) An event object -- see :ref:`events`. + + 2) The special constant :data:`NEED_DATA`, which indicates that + you need to read more data from your socket and pass it to + :meth:`receive_data` before this method will be able to return + any more events. + + 3) The special constant :data:`PAUSED`, which indicates that we + are not in a state where we can process incoming data (usually + because the peer has finished their part of the current + request/response cycle, and you have not yet called + :meth:`start_next_cycle`). See :ref:`flow-control` for details. + + Raises: + RemoteProtocolError: + The peer has misbehaved. You should close the connection + (possibly after sending some kind of 4xx response). + + Once this method returns :class:`ConnectionClosed` once, then all + subsequent calls will also return :class:`ConnectionClosed`. + + If this method raises any exception besides :exc:`RemoteProtocolError` + then that's a bug -- if it happens please file a bug report! + + If this method raises any exception then it also sets + :attr:`Connection.their_state` to :data:`ERROR` -- see + :ref:`error-handling` for discussion. + + """ + + if self.their_state is ERROR: + raise RemoteProtocolError("Can't receive data when peer state is ERROR") + try: + event = self._extract_next_receive_event() + if event not in [NEED_DATA, PAUSED]: + self._process_event(self.their_role, cast(Event, event)) + if event is NEED_DATA: + if len(self._receive_buffer) > self._max_incomplete_event_size: + # 431 is "Request header fields too large" which is pretty + # much the only situation where we can get here + raise RemoteProtocolError( + "Receive buffer too long", error_status_hint=431 + ) + if self._receive_buffer_closed: + # We're still trying to complete some event, but that's + # never going to happen because no more data is coming + raise RemoteProtocolError("peer unexpectedly closed connection") + return event + except BaseException as exc: + self._process_error(self.their_role) + if isinstance(exc, LocalProtocolError): + exc._reraise_as_remote_protocol_error() + else: + raise + + @overload + def send(self, event: ConnectionClosed) -> None: + ... + + @overload + def send( + self, event: Union[Request, InformationalResponse, Response, Data, EndOfMessage] + ) -> bytes: + ... + + @overload + def send(self, event: Event) -> Optional[bytes]: + ... + + def send(self, event: Event) -> Optional[bytes]: + """Convert a high-level event into bytes that can be sent to the peer, + while updating our internal state machine. + + Args: + event: The :ref:`event ` to send. + + Returns: + If ``type(event) is ConnectionClosed``, then returns + ``None``. Otherwise, returns a :term:`bytes-like object`. + + Raises: + LocalProtocolError: + Sending this event at this time would violate our + understanding of the HTTP/1.1 protocol. + + If this method raises any exception then it also sets + :attr:`Connection.our_state` to :data:`ERROR` -- see + :ref:`error-handling` for discussion. + + """ + data_list = self.send_with_data_passthrough(event) + if data_list is None: + return None + else: + return b"".join(data_list) + + def send_with_data_passthrough(self, event: Event) -> Optional[List[bytes]]: + """Identical to :meth:`send`, except that in situations where + :meth:`send` returns a single :term:`bytes-like object`, this instead + returns a list of them -- and when sending a :class:`Data` event, this + list is guaranteed to contain the exact object you passed in as + :attr:`Data.data`. See :ref:`sendfile` for discussion. + + """ + if self.our_state is ERROR: + raise LocalProtocolError("Can't send data when our state is ERROR") + try: + if type(event) is Response: + event = self._clean_up_response_headers_for_sending(event) + # We want to call _process_event before calling the writer, + # because if someone tries to do something invalid then this will + # give a sensible error message, while our writers all just assume + # they will only receive valid events. But, _process_event might + # change self._writer. So we have to do a little dance: + writer = self._writer + self._process_event(self.our_role, event) + if type(event) is ConnectionClosed: + return None + else: + # In any situation where writer is None, process_event should + # have raised ProtocolError + assert writer is not None + data_list: List[bytes] = [] + writer(event, data_list.append) + return data_list + except: + self._process_error(self.our_role) + raise + + def send_failed(self) -> None: + """Notify the state machine that we failed to send the data it gave + us. + + This causes :attr:`Connection.our_state` to immediately become + :data:`ERROR` -- see :ref:`error-handling` for discussion. + + """ + self._process_error(self.our_role) + + # When sending a Response, we take responsibility for a few things: + # + # - Sometimes you MUST set Connection: close. We take care of those + # times. (You can also set it yourself if you want, and if you do then + # we'll respect that and close the connection at the right time. But you + # don't have to worry about that unless you want to.) + # + # - The user has to set Content-Length if they want it. Otherwise, for + # responses that have bodies (e.g. not HEAD), then we will automatically + # select the right mechanism for streaming a body of unknown length, + # which depends on depending on the peer's HTTP version. + # + # This function's *only* responsibility is making sure headers are set up + # right -- everything downstream just looks at the headers. There are no + # side channels. + def _clean_up_response_headers_for_sending(self, response: Response) -> Response: + assert type(response) is Response + + headers = response.headers + need_close = False + + # HEAD requests need some special handling: they always act like they + # have Content-Length: 0, and that's how _body_framing treats + # them. But their headers are supposed to match what we would send if + # the request was a GET. (Technically there is one deviation allowed: + # we're allowed to leave out the framing headers -- see + # https://tools.ietf.org/html/rfc7231#section-4.3.2 . But it's just as + # easy to get them right.) + method_for_choosing_headers = cast(bytes, self._request_method) + if method_for_choosing_headers == b"HEAD": + method_for_choosing_headers = b"GET" + framing_type, _ = _body_framing(method_for_choosing_headers, response) + if framing_type in ("chunked", "http/1.0"): + # This response has a body of unknown length. + # If our peer is HTTP/1.1, we use Transfer-Encoding: chunked + # If our peer is HTTP/1.0, we use no framing headers, and close the + # connection afterwards. + # + # Make sure to clear Content-Length (in principle user could have + # set both and then we ignored Content-Length b/c + # Transfer-Encoding overwrote it -- this would be naughty of them, + # but the HTTP spec says that if our peer does this then we have + # to fix it instead of erroring out, so we'll accord the user the + # same respect). + headers = set_comma_header(headers, b"content-length", []) + if self.their_http_version is None or self.their_http_version < b"1.1": + # Either we never got a valid request and are sending back an + # error (their_http_version is None), so we assume the worst; + # or else we did get a valid HTTP/1.0 request, so we know that + # they don't understand chunked encoding. + headers = set_comma_header(headers, b"transfer-encoding", []) + # This is actually redundant ATM, since currently we + # unconditionally disable keep-alive when talking to HTTP/1.0 + # peers. But let's be defensive just in case we add + # Connection: keep-alive support later: + if self._request_method != b"HEAD": + need_close = True + else: + headers = set_comma_header(headers, b"transfer-encoding", [b"chunked"]) + + if not self._cstate.keep_alive or need_close: + # Make sure Connection: close is set + connection = set(get_comma_header(headers, b"connection")) + connection.discard(b"keep-alive") + connection.add(b"close") + headers = set_comma_header(headers, b"connection", sorted(connection)) + + return Response( + headers=headers, + status_code=response.status_code, + http_version=response.http_version, + reason=response.reason, + ) diff --git a/venv/lib/python3.11/site-packages/h11/_events.py b/venv/lib/python3.11/site-packages/h11/_events.py new file mode 100644 index 0000000..ca1c3ad --- /dev/null +++ b/venv/lib/python3.11/site-packages/h11/_events.py @@ -0,0 +1,369 @@ +# High level events that make up HTTP/1.1 conversations. Loosely inspired by +# the corresponding events in hyper-h2: +# +# http://python-hyper.org/h2/en/stable/api.html#events +# +# Don't subclass these. Stuff will break. + +import re +from abc import ABC +from dataclasses import dataclass +from typing import List, Tuple, Union + +from ._abnf import method, request_target +from ._headers import Headers, normalize_and_validate +from ._util import bytesify, LocalProtocolError, validate + +# Everything in __all__ gets re-exported as part of the h11 public API. +__all__ = [ + "Event", + "Request", + "InformationalResponse", + "Response", + "Data", + "EndOfMessage", + "ConnectionClosed", +] + +method_re = re.compile(method.encode("ascii")) +request_target_re = re.compile(request_target.encode("ascii")) + + +class Event(ABC): + """ + Base class for h11 events. + """ + + __slots__ = () + + +@dataclass(init=False, frozen=True) +class Request(Event): + """The beginning of an HTTP request. + + Fields: + + .. attribute:: method + + An HTTP method, e.g. ``b"GET"`` or ``b"POST"``. Always a byte + string. :term:`Bytes-like objects ` and native + strings containing only ascii characters will be automatically + converted to byte strings. + + .. attribute:: target + + The target of an HTTP request, e.g. ``b"/index.html"``, or one of the + more exotic formats described in `RFC 7320, section 5.3 + `_. Always a byte + string. :term:`Bytes-like objects ` and native + strings containing only ascii characters will be automatically + converted to byte strings. + + .. attribute:: headers + + Request headers, represented as a list of (name, value) pairs. See + :ref:`the header normalization rules ` for details. + + .. attribute:: http_version + + The HTTP protocol version, represented as a byte string like + ``b"1.1"``. See :ref:`the HTTP version normalization rules + ` for details. + + """ + + __slots__ = ("method", "headers", "target", "http_version") + + method: bytes + headers: Headers + target: bytes + http_version: bytes + + def __init__( + self, + *, + method: Union[bytes, str], + headers: Union[Headers, List[Tuple[bytes, bytes]], List[Tuple[str, str]]], + target: Union[bytes, str], + http_version: Union[bytes, str] = b"1.1", + _parsed: bool = False, + ) -> None: + super().__init__() + if isinstance(headers, Headers): + object.__setattr__(self, "headers", headers) + else: + object.__setattr__( + self, "headers", normalize_and_validate(headers, _parsed=_parsed) + ) + if not _parsed: + object.__setattr__(self, "method", bytesify(method)) + object.__setattr__(self, "target", bytesify(target)) + object.__setattr__(self, "http_version", bytesify(http_version)) + else: + object.__setattr__(self, "method", method) + object.__setattr__(self, "target", target) + object.__setattr__(self, "http_version", http_version) + + # "A server MUST respond with a 400 (Bad Request) status code to any + # HTTP/1.1 request message that lacks a Host header field and to any + # request message that contains more than one Host header field or a + # Host header field with an invalid field-value." + # -- https://tools.ietf.org/html/rfc7230#section-5.4 + host_count = 0 + for name, value in self.headers: + if name == b"host": + host_count += 1 + if self.http_version == b"1.1" and host_count == 0: + raise LocalProtocolError("Missing mandatory Host: header") + if host_count > 1: + raise LocalProtocolError("Found multiple Host: headers") + + validate(method_re, self.method, "Illegal method characters") + validate(request_target_re, self.target, "Illegal target characters") + + # This is an unhashable type. + __hash__ = None # type: ignore + + +@dataclass(init=False, frozen=True) +class _ResponseBase(Event): + __slots__ = ("headers", "http_version", "reason", "status_code") + + headers: Headers + http_version: bytes + reason: bytes + status_code: int + + def __init__( + self, + *, + headers: Union[Headers, List[Tuple[bytes, bytes]], List[Tuple[str, str]]], + status_code: int, + http_version: Union[bytes, str] = b"1.1", + reason: Union[bytes, str] = b"", + _parsed: bool = False, + ) -> None: + super().__init__() + if isinstance(headers, Headers): + object.__setattr__(self, "headers", headers) + else: + object.__setattr__( + self, "headers", normalize_and_validate(headers, _parsed=_parsed) + ) + if not _parsed: + object.__setattr__(self, "reason", bytesify(reason)) + object.__setattr__(self, "http_version", bytesify(http_version)) + if not isinstance(status_code, int): + raise LocalProtocolError("status code must be integer") + # Because IntEnum objects are instances of int, but aren't + # duck-compatible (sigh), see gh-72. + object.__setattr__(self, "status_code", int(status_code)) + else: + object.__setattr__(self, "reason", reason) + object.__setattr__(self, "http_version", http_version) + object.__setattr__(self, "status_code", status_code) + + self.__post_init__() + + def __post_init__(self) -> None: + pass + + # This is an unhashable type. + __hash__ = None # type: ignore + + +@dataclass(init=False, frozen=True) +class InformationalResponse(_ResponseBase): + """An HTTP informational response. + + Fields: + + .. attribute:: status_code + + The status code of this response, as an integer. For an + :class:`InformationalResponse`, this is always in the range [100, + 200). + + .. attribute:: headers + + Request headers, represented as a list of (name, value) pairs. See + :ref:`the header normalization rules ` for + details. + + .. attribute:: http_version + + The HTTP protocol version, represented as a byte string like + ``b"1.1"``. See :ref:`the HTTP version normalization rules + ` for details. + + .. attribute:: reason + + The reason phrase of this response, as a byte string. For example: + ``b"OK"``, or ``b"Not Found"``. + + """ + + def __post_init__(self) -> None: + if not (100 <= self.status_code < 200): + raise LocalProtocolError( + "InformationalResponse status_code should be in range " + "[100, 200), not {}".format(self.status_code) + ) + + # This is an unhashable type. + __hash__ = None # type: ignore + + +@dataclass(init=False, frozen=True) +class Response(_ResponseBase): + """The beginning of an HTTP response. + + Fields: + + .. attribute:: status_code + + The status code of this response, as an integer. For an + :class:`Response`, this is always in the range [200, + 1000). + + .. attribute:: headers + + Request headers, represented as a list of (name, value) pairs. See + :ref:`the header normalization rules ` for details. + + .. attribute:: http_version + + The HTTP protocol version, represented as a byte string like + ``b"1.1"``. See :ref:`the HTTP version normalization rules + ` for details. + + .. attribute:: reason + + The reason phrase of this response, as a byte string. For example: + ``b"OK"``, or ``b"Not Found"``. + + """ + + def __post_init__(self) -> None: + if not (200 <= self.status_code < 1000): + raise LocalProtocolError( + "Response status_code should be in range [200, 1000), not {}".format( + self.status_code + ) + ) + + # This is an unhashable type. + __hash__ = None # type: ignore + + +@dataclass(init=False, frozen=True) +class Data(Event): + """Part of an HTTP message body. + + Fields: + + .. attribute:: data + + A :term:`bytes-like object` containing part of a message body. Or, if + using the ``combine=False`` argument to :meth:`Connection.send`, then + any object that your socket writing code knows what to do with, and for + which calling :func:`len` returns the number of bytes that will be + written -- see :ref:`sendfile` for details. + + .. attribute:: chunk_start + + A marker that indicates whether this data object is from the start of a + chunked transfer encoding chunk. This field is ignored when when a Data + event is provided to :meth:`Connection.send`: it is only valid on + events emitted from :meth:`Connection.next_event`. You probably + shouldn't use this attribute at all; see + :ref:`chunk-delimiters-are-bad` for details. + + .. attribute:: chunk_end + + A marker that indicates whether this data object is the last for a + given chunked transfer encoding chunk. This field is ignored when when + a Data event is provided to :meth:`Connection.send`: it is only valid + on events emitted from :meth:`Connection.next_event`. You probably + shouldn't use this attribute at all; see + :ref:`chunk-delimiters-are-bad` for details. + + """ + + __slots__ = ("data", "chunk_start", "chunk_end") + + data: bytes + chunk_start: bool + chunk_end: bool + + def __init__( + self, data: bytes, chunk_start: bool = False, chunk_end: bool = False + ) -> None: + object.__setattr__(self, "data", data) + object.__setattr__(self, "chunk_start", chunk_start) + object.__setattr__(self, "chunk_end", chunk_end) + + # This is an unhashable type. + __hash__ = None # type: ignore + + +# XX FIXME: "A recipient MUST ignore (or consider as an error) any fields that +# are forbidden to be sent in a trailer, since processing them as if they were +# present in the header section might bypass external security filters." +# https://svn.tools.ietf.org/svn/wg/httpbis/specs/rfc7230.html#chunked.trailer.part +# Unfortunately, the list of forbidden fields is long and vague :-/ +@dataclass(init=False, frozen=True) +class EndOfMessage(Event): + """The end of an HTTP message. + + Fields: + + .. attribute:: headers + + Default value: ``[]`` + + Any trailing headers attached to this message, represented as a list of + (name, value) pairs. See :ref:`the header normalization rules + ` for details. + + Must be empty unless ``Transfer-Encoding: chunked`` is in use. + + """ + + __slots__ = ("headers",) + + headers: Headers + + def __init__( + self, + *, + headers: Union[ + Headers, List[Tuple[bytes, bytes]], List[Tuple[str, str]], None + ] = None, + _parsed: bool = False, + ) -> None: + super().__init__() + if headers is None: + headers = Headers([]) + elif not isinstance(headers, Headers): + headers = normalize_and_validate(headers, _parsed=_parsed) + + object.__setattr__(self, "headers", headers) + + # This is an unhashable type. + __hash__ = None # type: ignore + + +@dataclass(frozen=True) +class ConnectionClosed(Event): + """This event indicates that the sender has closed their outgoing + connection. + + Note that this does not necessarily mean that they can't *receive* further + data, because TCP connections are composed to two one-way channels which + can be closed independently. See :ref:`closing` for details. + + No fields. + """ + + pass diff --git a/venv/lib/python3.11/site-packages/h11/_headers.py b/venv/lib/python3.11/site-packages/h11/_headers.py new file mode 100644 index 0000000..31da3e2 --- /dev/null +++ b/venv/lib/python3.11/site-packages/h11/_headers.py @@ -0,0 +1,282 @@ +import re +from typing import AnyStr, cast, List, overload, Sequence, Tuple, TYPE_CHECKING, Union + +from ._abnf import field_name, field_value +from ._util import bytesify, LocalProtocolError, validate + +if TYPE_CHECKING: + from ._events import Request + +try: + from typing import Literal +except ImportError: + from typing_extensions import Literal # type: ignore + +CONTENT_LENGTH_MAX_DIGITS = 20 # allow up to 1 billion TB - 1 + + +# Facts +# ----- +# +# Headers are: +# keys: case-insensitive ascii +# values: mixture of ascii and raw bytes +# +# "Historically, HTTP has allowed field content with text in the ISO-8859-1 +# charset [ISO-8859-1], supporting other charsets only through use of +# [RFC2047] encoding. In practice, most HTTP header field values use only a +# subset of the US-ASCII charset [USASCII]. Newly defined header fields SHOULD +# limit their field values to US-ASCII octets. A recipient SHOULD treat other +# octets in field content (obs-text) as opaque data." +# And it deprecates all non-ascii values +# +# Leading/trailing whitespace in header names is forbidden +# +# Values get leading/trailing whitespace stripped +# +# Content-Disposition actually needs to contain unicode semantically; to +# accomplish this it has a terrifically weird way of encoding the filename +# itself as ascii (and even this still has lots of cross-browser +# incompatibilities) +# +# Order is important: +# "a proxy MUST NOT change the order of these field values when forwarding a +# message" +# (and there are several headers where the order indicates a preference) +# +# Multiple occurences of the same header: +# "A sender MUST NOT generate multiple header fields with the same field name +# in a message unless either the entire field value for that header field is +# defined as a comma-separated list [or the header is Set-Cookie which gets a +# special exception]" - RFC 7230. (cookies are in RFC 6265) +# +# So every header aside from Set-Cookie can be merged by b", ".join if it +# occurs repeatedly. But, of course, they can't necessarily be split by +# .split(b","), because quoting. +# +# Given all this mess (case insensitive, duplicates allowed, order is +# important, ...), there doesn't appear to be any standard way to handle +# headers in Python -- they're almost like dicts, but... actually just +# aren't. For now we punt and just use a super simple representation: headers +# are a list of pairs +# +# [(name1, value1), (name2, value2), ...] +# +# where all entries are bytestrings, names are lowercase and have no +# leading/trailing whitespace, and values are bytestrings with no +# leading/trailing whitespace. Searching and updating are done via naive O(n) +# methods. +# +# Maybe a dict-of-lists would be better? + +_content_length_re = re.compile(rb"[0-9]+") +_field_name_re = re.compile(field_name.encode("ascii")) +_field_value_re = re.compile(field_value.encode("ascii")) + + +class Headers(Sequence[Tuple[bytes, bytes]]): + """ + A list-like interface that allows iterating over headers as byte-pairs + of (lowercased-name, value). + + Internally we actually store the representation as three-tuples, + including both the raw original casing, in order to preserve casing + over-the-wire, and the lowercased name, for case-insensitive comparisions. + + r = Request( + method="GET", + target="/", + headers=[("Host", "example.org"), ("Connection", "keep-alive")], + http_version="1.1", + ) + assert r.headers == [ + (b"host", b"example.org"), + (b"connection", b"keep-alive") + ] + assert r.headers.raw_items() == [ + (b"Host", b"example.org"), + (b"Connection", b"keep-alive") + ] + """ + + __slots__ = "_full_items" + + def __init__(self, full_items: List[Tuple[bytes, bytes, bytes]]) -> None: + self._full_items = full_items + + def __bool__(self) -> bool: + return bool(self._full_items) + + def __eq__(self, other: object) -> bool: + return list(self) == list(other) # type: ignore + + def __len__(self) -> int: + return len(self._full_items) + + def __repr__(self) -> str: + return "" % repr(list(self)) + + def __getitem__(self, idx: int) -> Tuple[bytes, bytes]: # type: ignore[override] + _, name, value = self._full_items[idx] + return (name, value) + + def raw_items(self) -> List[Tuple[bytes, bytes]]: + return [(raw_name, value) for raw_name, _, value in self._full_items] + + +HeaderTypes = Union[ + List[Tuple[bytes, bytes]], + List[Tuple[bytes, str]], + List[Tuple[str, bytes]], + List[Tuple[str, str]], +] + + +@overload +def normalize_and_validate(headers: Headers, _parsed: Literal[True]) -> Headers: + ... + + +@overload +def normalize_and_validate(headers: HeaderTypes, _parsed: Literal[False]) -> Headers: + ... + + +@overload +def normalize_and_validate( + headers: Union[Headers, HeaderTypes], _parsed: bool = False +) -> Headers: + ... + + +def normalize_and_validate( + headers: Union[Headers, HeaderTypes], _parsed: bool = False +) -> Headers: + new_headers = [] + seen_content_length = None + saw_transfer_encoding = False + for name, value in headers: + # For headers coming out of the parser, we can safely skip some steps, + # because it always returns bytes and has already run these regexes + # over the data: + if not _parsed: + name = bytesify(name) + value = bytesify(value) + validate(_field_name_re, name, "Illegal header name {!r}", name) + validate(_field_value_re, value, "Illegal header value {!r}", value) + assert isinstance(name, bytes) + assert isinstance(value, bytes) + + raw_name = name + name = name.lower() + if name == b"content-length": + lengths = {length.strip() for length in value.split(b",")} + if len(lengths) != 1: + raise LocalProtocolError("conflicting Content-Length headers") + value = lengths.pop() + validate(_content_length_re, value, "bad Content-Length") + if len(value) > CONTENT_LENGTH_MAX_DIGITS: + raise LocalProtocolError("bad Content-Length") + if seen_content_length is None: + seen_content_length = value + new_headers.append((raw_name, name, value)) + elif seen_content_length != value: + raise LocalProtocolError("conflicting Content-Length headers") + elif name == b"transfer-encoding": + # "A server that receives a request message with a transfer coding + # it does not understand SHOULD respond with 501 (Not + # Implemented)." + # https://tools.ietf.org/html/rfc7230#section-3.3.1 + if saw_transfer_encoding: + raise LocalProtocolError( + "multiple Transfer-Encoding headers", error_status_hint=501 + ) + # "All transfer-coding names are case-insensitive" + # -- https://tools.ietf.org/html/rfc7230#section-4 + value = value.lower() + if value != b"chunked": + raise LocalProtocolError( + "Only Transfer-Encoding: chunked is supported", + error_status_hint=501, + ) + saw_transfer_encoding = True + new_headers.append((raw_name, name, value)) + else: + new_headers.append((raw_name, name, value)) + return Headers(new_headers) + + +def get_comma_header(headers: Headers, name: bytes) -> List[bytes]: + # Should only be used for headers whose value is a list of + # comma-separated, case-insensitive values. + # + # The header name `name` is expected to be lower-case bytes. + # + # Connection: meets these criteria (including cast insensitivity). + # + # Content-Length: technically is just a single value (1*DIGIT), but the + # standard makes reference to implementations that do multiple values, and + # using this doesn't hurt. Ditto, case insensitivity doesn't things either + # way. + # + # Transfer-Encoding: is more complex (allows for quoted strings), so + # splitting on , is actually wrong. For example, this is legal: + # + # Transfer-Encoding: foo; options="1,2", chunked + # + # and should be parsed as + # + # foo; options="1,2" + # chunked + # + # but this naive function will parse it as + # + # foo; options="1 + # 2" + # chunked + # + # However, this is okay because the only thing we are going to do with + # any Transfer-Encoding is reject ones that aren't just "chunked", so + # both of these will be treated the same anyway. + # + # Expect: the only legal value is the literal string + # "100-continue". Splitting on commas is harmless. Case insensitive. + # + out: List[bytes] = [] + for _, found_name, found_raw_value in headers._full_items: + if found_name == name: + found_raw_value = found_raw_value.lower() + for found_split_value in found_raw_value.split(b","): + found_split_value = found_split_value.strip() + if found_split_value: + out.append(found_split_value) + return out + + +def set_comma_header(headers: Headers, name: bytes, new_values: List[bytes]) -> Headers: + # The header name `name` is expected to be lower-case bytes. + # + # Note that when we store the header we use title casing for the header + # names, in order to match the conventional HTTP header style. + # + # Simply calling `.title()` is a blunt approach, but it's correct + # here given the cases where we're using `set_comma_header`... + # + # Connection, Content-Length, Transfer-Encoding. + new_headers: List[Tuple[bytes, bytes]] = [] + for found_raw_name, found_name, found_raw_value in headers._full_items: + if found_name != name: + new_headers.append((found_raw_name, found_raw_value)) + for new_value in new_values: + new_headers.append((name.title(), new_value)) + return normalize_and_validate(new_headers) + + +def has_expect_100_continue(request: "Request") -> bool: + # https://tools.ietf.org/html/rfc7231#section-5.1.1 + # "A server that receives a 100-continue expectation in an HTTP/1.0 request + # MUST ignore that expectation." + if request.http_version < b"1.1": + return False + expect = get_comma_header(request.headers, b"expect") + return b"100-continue" in expect diff --git a/venv/lib/python3.11/site-packages/h11/_readers.py b/venv/lib/python3.11/site-packages/h11/_readers.py new file mode 100644 index 0000000..576804c --- /dev/null +++ b/venv/lib/python3.11/site-packages/h11/_readers.py @@ -0,0 +1,250 @@ +# Code to read HTTP data +# +# Strategy: each reader is a callable which takes a ReceiveBuffer object, and +# either: +# 1) consumes some of it and returns an Event +# 2) raises a LocalProtocolError (for consistency -- e.g. we call validate() +# and it might raise a LocalProtocolError, so simpler just to always use +# this) +# 3) returns None, meaning "I need more data" +# +# If they have a .read_eof attribute, then this will be called if an EOF is +# received -- but this is optional. Either way, the actual ConnectionClosed +# event will be generated afterwards. +# +# READERS is a dict describing how to pick a reader. It maps states to either: +# - a reader +# - or, for body readers, a dict of per-framing reader factories + +import re +from typing import Any, Callable, Dict, Iterable, NoReturn, Optional, Tuple, Type, Union + +from ._abnf import chunk_header, header_field, request_line, status_line +from ._events import Data, EndOfMessage, InformationalResponse, Request, Response +from ._receivebuffer import ReceiveBuffer +from ._state import ( + CLIENT, + CLOSED, + DONE, + IDLE, + MUST_CLOSE, + SEND_BODY, + SEND_RESPONSE, + SERVER, +) +from ._util import LocalProtocolError, RemoteProtocolError, Sentinel, validate + +__all__ = ["READERS"] + +header_field_re = re.compile(header_field.encode("ascii")) +obs_fold_re = re.compile(rb"[ \t]+") + + +def _obsolete_line_fold(lines: Iterable[bytes]) -> Iterable[bytes]: + it = iter(lines) + last: Optional[bytes] = None + for line in it: + match = obs_fold_re.match(line) + if match: + if last is None: + raise LocalProtocolError("continuation line at start of headers") + if not isinstance(last, bytearray): + # Cast to a mutable type, avoiding copy on append to ensure O(n) time + last = bytearray(last) + last += b" " + last += line[match.end() :] + else: + if last is not None: + yield last + last = line + if last is not None: + yield last + + +def _decode_header_lines( + lines: Iterable[bytes], +) -> Iterable[Tuple[bytes, bytes]]: + for line in _obsolete_line_fold(lines): + matches = validate(header_field_re, line, "illegal header line: {!r}", line) + yield (matches["field_name"], matches["field_value"]) + + +request_line_re = re.compile(request_line.encode("ascii")) + + +def maybe_read_from_IDLE_client(buf: ReceiveBuffer) -> Optional[Request]: + lines = buf.maybe_extract_lines() + if lines is None: + if buf.is_next_line_obviously_invalid_request_line(): + raise LocalProtocolError("illegal request line") + return None + if not lines: + raise LocalProtocolError("no request line received") + matches = validate( + request_line_re, lines[0], "illegal request line: {!r}", lines[0] + ) + return Request( + headers=list(_decode_header_lines(lines[1:])), _parsed=True, **matches + ) + + +status_line_re = re.compile(status_line.encode("ascii")) + + +def maybe_read_from_SEND_RESPONSE_server( + buf: ReceiveBuffer, +) -> Union[InformationalResponse, Response, None]: + lines = buf.maybe_extract_lines() + if lines is None: + if buf.is_next_line_obviously_invalid_request_line(): + raise LocalProtocolError("illegal request line") + return None + if not lines: + raise LocalProtocolError("no response line received") + matches = validate(status_line_re, lines[0], "illegal status line: {!r}", lines[0]) + http_version = ( + b"1.1" if matches["http_version"] is None else matches["http_version"] + ) + reason = b"" if matches["reason"] is None else matches["reason"] + status_code = int(matches["status_code"]) + class_: Union[Type[InformationalResponse], Type[Response]] = ( + InformationalResponse if status_code < 200 else Response + ) + return class_( + headers=list(_decode_header_lines(lines[1:])), + _parsed=True, + status_code=status_code, + reason=reason, + http_version=http_version, + ) + + +class ContentLengthReader: + def __init__(self, length: int) -> None: + self._length = length + self._remaining = length + + def __call__(self, buf: ReceiveBuffer) -> Union[Data, EndOfMessage, None]: + if self._remaining == 0: + return EndOfMessage() + data = buf.maybe_extract_at_most(self._remaining) + if data is None: + return None + self._remaining -= len(data) + return Data(data=data) + + def read_eof(self) -> NoReturn: + raise RemoteProtocolError( + "peer closed connection without sending complete message body " + "(received {} bytes, expected {})".format( + self._length - self._remaining, self._length + ) + ) + + +chunk_header_re = re.compile(chunk_header.encode("ascii")) + + +class ChunkedReader: + def __init__(self) -> None: + self._bytes_in_chunk = 0 + # After reading a chunk, we have to throw away the trailing \r\n. + # This tracks the bytes that we need to match and throw away. + self._bytes_to_discard = b"" + self._reading_trailer = False + + def __call__(self, buf: ReceiveBuffer) -> Union[Data, EndOfMessage, None]: + if self._reading_trailer: + lines = buf.maybe_extract_lines() + if lines is None: + return None + return EndOfMessage(headers=list(_decode_header_lines(lines))) + if self._bytes_to_discard: + data = buf.maybe_extract_at_most(len(self._bytes_to_discard)) + if data is None: + return None + if data != self._bytes_to_discard[: len(data)]: + raise LocalProtocolError( + f"malformed chunk footer: {data!r} (expected {self._bytes_to_discard!r})" + ) + self._bytes_to_discard = self._bytes_to_discard[len(data) :] + if self._bytes_to_discard: + return None + # else, fall through and read some more + assert self._bytes_to_discard == b"" + if self._bytes_in_chunk == 0: + # We need to refill our chunk count + chunk_header = buf.maybe_extract_next_line() + if chunk_header is None: + return None + matches = validate( + chunk_header_re, + chunk_header, + "illegal chunk header: {!r}", + chunk_header, + ) + # XX FIXME: we discard chunk extensions. Does anyone care? + self._bytes_in_chunk = int(matches["chunk_size"], base=16) + if self._bytes_in_chunk == 0: + self._reading_trailer = True + return self(buf) + chunk_start = True + else: + chunk_start = False + assert self._bytes_in_chunk > 0 + data = buf.maybe_extract_at_most(self._bytes_in_chunk) + if data is None: + return None + self._bytes_in_chunk -= len(data) + if self._bytes_in_chunk == 0: + self._bytes_to_discard = b"\r\n" + chunk_end = True + else: + chunk_end = False + return Data(data=data, chunk_start=chunk_start, chunk_end=chunk_end) + + def read_eof(self) -> NoReturn: + raise RemoteProtocolError( + "peer closed connection without sending complete message body " + "(incomplete chunked read)" + ) + + +class Http10Reader: + def __call__(self, buf: ReceiveBuffer) -> Optional[Data]: + data = buf.maybe_extract_at_most(999999999) + if data is None: + return None + return Data(data=data) + + def read_eof(self) -> EndOfMessage: + return EndOfMessage() + + +def expect_nothing(buf: ReceiveBuffer) -> None: + if buf: + raise LocalProtocolError("Got data when expecting EOF") + return None + + +ReadersType = Dict[ + Union[Type[Sentinel], Tuple[Type[Sentinel], Type[Sentinel]]], + Union[Callable[..., Any], Dict[str, Callable[..., Any]]], +] + +READERS: ReadersType = { + (CLIENT, IDLE): maybe_read_from_IDLE_client, + (SERVER, IDLE): maybe_read_from_SEND_RESPONSE_server, + (SERVER, SEND_RESPONSE): maybe_read_from_SEND_RESPONSE_server, + (CLIENT, DONE): expect_nothing, + (CLIENT, MUST_CLOSE): expect_nothing, + (CLIENT, CLOSED): expect_nothing, + (SERVER, DONE): expect_nothing, + (SERVER, MUST_CLOSE): expect_nothing, + (SERVER, CLOSED): expect_nothing, + SEND_BODY: { + "chunked": ChunkedReader, + "content-length": ContentLengthReader, + "http/1.0": Http10Reader, + }, +} diff --git a/venv/lib/python3.11/site-packages/h11/_receivebuffer.py b/venv/lib/python3.11/site-packages/h11/_receivebuffer.py new file mode 100644 index 0000000..e5c4e08 --- /dev/null +++ b/venv/lib/python3.11/site-packages/h11/_receivebuffer.py @@ -0,0 +1,153 @@ +import re +import sys +from typing import List, Optional, Union + +__all__ = ["ReceiveBuffer"] + + +# Operations we want to support: +# - find next \r\n or \r\n\r\n (\n or \n\n are also acceptable), +# or wait until there is one +# - read at-most-N bytes +# Goals: +# - on average, do this fast +# - worst case, do this in O(n) where n is the number of bytes processed +# Plan: +# - store bytearray, offset, how far we've searched for a separator token +# - use the how-far-we've-searched data to avoid rescanning +# - while doing a stream of uninterrupted processing, advance offset instead +# of constantly copying +# WARNING: +# - I haven't benchmarked or profiled any of this yet. +# +# Note that starting in Python 3.4, deleting the initial n bytes from a +# bytearray is amortized O(n), thanks to some excellent work by Antoine +# Martin: +# +# https://bugs.python.org/issue19087 +# +# This means that if we only supported 3.4+, we could get rid of the code here +# involving self._start and self.compress, because it's doing exactly the same +# thing that bytearray now does internally. +# +# BUT unfortunately, we still support 2.7, and reading short segments out of a +# long buffer MUST be O(bytes read) to avoid DoS issues, so we can't actually +# delete this code. Yet: +# +# https://pythonclock.org/ +# +# (Two things to double-check first though: make sure PyPy also has the +# optimization, and benchmark to make sure it's a win, since we do have a +# slightly clever thing where we delay calling compress() until we've +# processed a whole event, which could in theory be slightly more efficient +# than the internal bytearray support.) +blank_line_regex = re.compile(b"\n\r?\n", re.MULTILINE) + + +class ReceiveBuffer: + def __init__(self) -> None: + self._data = bytearray() + self._next_line_search = 0 + self._multiple_lines_search = 0 + + def __iadd__(self, byteslike: Union[bytes, bytearray]) -> "ReceiveBuffer": + self._data += byteslike + return self + + def __bool__(self) -> bool: + return bool(len(self)) + + def __len__(self) -> int: + return len(self._data) + + # for @property unprocessed_data + def __bytes__(self) -> bytes: + return bytes(self._data) + + def _extract(self, count: int) -> bytearray: + # extracting an initial slice of the data buffer and return it + out = self._data[:count] + del self._data[:count] + + self._next_line_search = 0 + self._multiple_lines_search = 0 + + return out + + def maybe_extract_at_most(self, count: int) -> Optional[bytearray]: + """ + Extract a fixed number of bytes from the buffer. + """ + out = self._data[:count] + if not out: + return None + + return self._extract(count) + + def maybe_extract_next_line(self) -> Optional[bytearray]: + """ + Extract the first line, if it is completed in the buffer. + """ + # Only search in buffer space that we've not already looked at. + search_start_index = max(0, self._next_line_search - 1) + partial_idx = self._data.find(b"\r\n", search_start_index) + + if partial_idx == -1: + self._next_line_search = len(self._data) + return None + + # + 2 is to compensate len(b"\r\n") + idx = partial_idx + 2 + + return self._extract(idx) + + def maybe_extract_lines(self) -> Optional[List[bytearray]]: + """ + Extract everything up to the first blank line, and return a list of lines. + """ + # Handle the case where we have an immediate empty line. + if self._data[:1] == b"\n": + self._extract(1) + return [] + + if self._data[:2] == b"\r\n": + self._extract(2) + return [] + + # Only search in buffer space that we've not already looked at. + match = blank_line_regex.search(self._data, self._multiple_lines_search) + if match is None: + self._multiple_lines_search = max(0, len(self._data) - 2) + return None + + # Truncate the buffer and return it. + idx = match.span(0)[-1] + out = self._extract(idx) + lines = out.split(b"\n") + + for line in lines: + if line.endswith(b"\r"): + del line[-1] + + assert lines[-2] == lines[-1] == b"" + + del lines[-2:] + + return lines + + # In theory we should wait until `\r\n` before starting to validate + # incoming data. However it's interesting to detect (very) invalid data + # early given they might not even contain `\r\n` at all (hence only + # timeout will get rid of them). + # This is not a 100% effective detection but more of a cheap sanity check + # allowing for early abort in some useful cases. + # This is especially interesting when peer is messing up with HTTPS and + # sent us a TLS stream where we were expecting plain HTTP given all + # versions of TLS so far start handshake with a 0x16 message type code. + def is_next_line_obviously_invalid_request_line(self) -> bool: + try: + # HTTP header line must not contain non-printable characters + # and should not start with a space + return self._data[0] < 0x21 + except IndexError: + return False diff --git a/venv/lib/python3.11/site-packages/h11/_state.py b/venv/lib/python3.11/site-packages/h11/_state.py new file mode 100644 index 0000000..3ad444b --- /dev/null +++ b/venv/lib/python3.11/site-packages/h11/_state.py @@ -0,0 +1,365 @@ +################################################################ +# The core state machine +################################################################ +# +# Rule 1: everything that affects the state machine and state transitions must +# live here in this file. As much as possible goes into the table-based +# representation, but for the bits that don't quite fit, the actual code and +# state must nonetheless live here. +# +# Rule 2: this file does not know about what role we're playing; it only knows +# about HTTP request/response cycles in the abstract. This ensures that we +# don't cheat and apply different rules to local and remote parties. +# +# +# Theory of operation +# =================== +# +# Possibly the simplest way to think about this is that we actually have 5 +# different state machines here. Yes, 5. These are: +# +# 1) The client state, with its complicated automaton (see the docs) +# 2) The server state, with its complicated automaton (see the docs) +# 3) The keep-alive state, with possible states {True, False} +# 4) The SWITCH_CONNECT state, with possible states {False, True} +# 5) The SWITCH_UPGRADE state, with possible states {False, True} +# +# For (3)-(5), the first state listed is the initial state. +# +# (1)-(3) are stored explicitly in member variables. The last +# two are stored implicitly in the pending_switch_proposals set as: +# (state of 4) == (_SWITCH_CONNECT in pending_switch_proposals) +# (state of 5) == (_SWITCH_UPGRADE in pending_switch_proposals) +# +# And each of these machines has two different kinds of transitions: +# +# a) Event-triggered +# b) State-triggered +# +# Event triggered is the obvious thing that you'd think it is: some event +# happens, and if it's the right event at the right time then a transition +# happens. But there are somewhat complicated rules for which machines can +# "see" which events. (As a rule of thumb, if a machine "sees" an event, this +# means two things: the event can affect the machine, and if the machine is +# not in a state where it expects that event then it's an error.) These rules +# are: +# +# 1) The client machine sees all h11.events objects emitted by the client. +# +# 2) The server machine sees all h11.events objects emitted by the server. +# +# It also sees the client's Request event. +# +# And sometimes, server events are annotated with a _SWITCH_* event. For +# example, we can have a (Response, _SWITCH_CONNECT) event, which is +# different from a regular Response event. +# +# 3) The keep-alive machine sees the process_keep_alive_disabled() event +# (which is derived from Request/Response events), and this event +# transitions it from True -> False, or from False -> False. There's no way +# to transition back. +# +# 4&5) The _SWITCH_* machines transition from False->True when we get a +# Request that proposes the relevant type of switch (via +# process_client_switch_proposals), and they go from True->False when we +# get a Response that has no _SWITCH_* annotation. +# +# So that's event-triggered transitions. +# +# State-triggered transitions are less standard. What they do here is couple +# the machines together. The way this works is, when certain *joint* +# configurations of states are achieved, then we automatically transition to a +# new *joint* state. So, for example, if we're ever in a joint state with +# +# client: DONE +# keep-alive: False +# +# then the client state immediately transitions to: +# +# client: MUST_CLOSE +# +# This is fundamentally different from an event-based transition, because it +# doesn't matter how we arrived at the {client: DONE, keep-alive: False} state +# -- maybe the client transitioned SEND_BODY -> DONE, or keep-alive +# transitioned True -> False. Either way, once this precondition is satisfied, +# this transition is immediately triggered. +# +# What if two conflicting state-based transitions get enabled at the same +# time? In practice there's only one case where this arises (client DONE -> +# MIGHT_SWITCH_PROTOCOL versus DONE -> MUST_CLOSE), and we resolve it by +# explicitly prioritizing the DONE -> MIGHT_SWITCH_PROTOCOL transition. +# +# Implementation +# -------------- +# +# The event-triggered transitions for the server and client machines are all +# stored explicitly in a table. Ditto for the state-triggered transitions that +# involve just the server and client state. +# +# The transitions for the other machines, and the state-triggered transitions +# that involve the other machines, are written out as explicit Python code. +# +# It'd be nice if there were some cleaner way to do all this. This isn't +# *too* terrible, but I feel like it could probably be better. +# +# WARNING +# ------- +# +# The script that generates the state machine diagrams for the docs knows how +# to read out the EVENT_TRIGGERED_TRANSITIONS and STATE_TRIGGERED_TRANSITIONS +# tables. But it can't automatically read the transitions that are written +# directly in Python code. So if you touch those, you need to also update the +# script to keep it in sync! +from typing import cast, Dict, Optional, Set, Tuple, Type, Union + +from ._events import * +from ._util import LocalProtocolError, Sentinel + +# Everything in __all__ gets re-exported as part of the h11 public API. +__all__ = [ + "CLIENT", + "SERVER", + "IDLE", + "SEND_RESPONSE", + "SEND_BODY", + "DONE", + "MUST_CLOSE", + "CLOSED", + "MIGHT_SWITCH_PROTOCOL", + "SWITCHED_PROTOCOL", + "ERROR", +] + + +class CLIENT(Sentinel, metaclass=Sentinel): + pass + + +class SERVER(Sentinel, metaclass=Sentinel): + pass + + +# States +class IDLE(Sentinel, metaclass=Sentinel): + pass + + +class SEND_RESPONSE(Sentinel, metaclass=Sentinel): + pass + + +class SEND_BODY(Sentinel, metaclass=Sentinel): + pass + + +class DONE(Sentinel, metaclass=Sentinel): + pass + + +class MUST_CLOSE(Sentinel, metaclass=Sentinel): + pass + + +class CLOSED(Sentinel, metaclass=Sentinel): + pass + + +class ERROR(Sentinel, metaclass=Sentinel): + pass + + +# Switch types +class MIGHT_SWITCH_PROTOCOL(Sentinel, metaclass=Sentinel): + pass + + +class SWITCHED_PROTOCOL(Sentinel, metaclass=Sentinel): + pass + + +class _SWITCH_UPGRADE(Sentinel, metaclass=Sentinel): + pass + + +class _SWITCH_CONNECT(Sentinel, metaclass=Sentinel): + pass + + +EventTransitionType = Dict[ + Type[Sentinel], + Dict[ + Type[Sentinel], + Dict[Union[Type[Event], Tuple[Type[Event], Type[Sentinel]]], Type[Sentinel]], + ], +] + +EVENT_TRIGGERED_TRANSITIONS: EventTransitionType = { + CLIENT: { + IDLE: {Request: SEND_BODY, ConnectionClosed: CLOSED}, + SEND_BODY: {Data: SEND_BODY, EndOfMessage: DONE}, + DONE: {ConnectionClosed: CLOSED}, + MUST_CLOSE: {ConnectionClosed: CLOSED}, + CLOSED: {ConnectionClosed: CLOSED}, + MIGHT_SWITCH_PROTOCOL: {}, + SWITCHED_PROTOCOL: {}, + ERROR: {}, + }, + SERVER: { + IDLE: { + ConnectionClosed: CLOSED, + Response: SEND_BODY, + # Special case: server sees client Request events, in this form + (Request, CLIENT): SEND_RESPONSE, + }, + SEND_RESPONSE: { + InformationalResponse: SEND_RESPONSE, + Response: SEND_BODY, + (InformationalResponse, _SWITCH_UPGRADE): SWITCHED_PROTOCOL, + (Response, _SWITCH_CONNECT): SWITCHED_PROTOCOL, + }, + SEND_BODY: {Data: SEND_BODY, EndOfMessage: DONE}, + DONE: {ConnectionClosed: CLOSED}, + MUST_CLOSE: {ConnectionClosed: CLOSED}, + CLOSED: {ConnectionClosed: CLOSED}, + SWITCHED_PROTOCOL: {}, + ERROR: {}, + }, +} + +StateTransitionType = Dict[ + Tuple[Type[Sentinel], Type[Sentinel]], Dict[Type[Sentinel], Type[Sentinel]] +] + +# NB: there are also some special-case state-triggered transitions hard-coded +# into _fire_state_triggered_transitions below. +STATE_TRIGGERED_TRANSITIONS: StateTransitionType = { + # (Client state, Server state) -> new states + # Protocol negotiation + (MIGHT_SWITCH_PROTOCOL, SWITCHED_PROTOCOL): {CLIENT: SWITCHED_PROTOCOL}, + # Socket shutdown + (CLOSED, DONE): {SERVER: MUST_CLOSE}, + (CLOSED, IDLE): {SERVER: MUST_CLOSE}, + (ERROR, DONE): {SERVER: MUST_CLOSE}, + (DONE, CLOSED): {CLIENT: MUST_CLOSE}, + (IDLE, CLOSED): {CLIENT: MUST_CLOSE}, + (DONE, ERROR): {CLIENT: MUST_CLOSE}, +} + + +class ConnectionState: + def __init__(self) -> None: + # Extra bits of state that don't quite fit into the state model. + + # If this is False then it enables the automatic DONE -> MUST_CLOSE + # transition. Don't set this directly; call .keep_alive_disabled() + self.keep_alive = True + + # This is a subset of {UPGRADE, CONNECT}, containing the proposals + # made by the client for switching protocols. + self.pending_switch_proposals: Set[Type[Sentinel]] = set() + + self.states: Dict[Type[Sentinel], Type[Sentinel]] = {CLIENT: IDLE, SERVER: IDLE} + + def process_error(self, role: Type[Sentinel]) -> None: + self.states[role] = ERROR + self._fire_state_triggered_transitions() + + def process_keep_alive_disabled(self) -> None: + self.keep_alive = False + self._fire_state_triggered_transitions() + + def process_client_switch_proposal(self, switch_event: Type[Sentinel]) -> None: + self.pending_switch_proposals.add(switch_event) + self._fire_state_triggered_transitions() + + def process_event( + self, + role: Type[Sentinel], + event_type: Type[Event], + server_switch_event: Optional[Type[Sentinel]] = None, + ) -> None: + _event_type: Union[Type[Event], Tuple[Type[Event], Type[Sentinel]]] = event_type + if server_switch_event is not None: + assert role is SERVER + if server_switch_event not in self.pending_switch_proposals: + raise LocalProtocolError( + "Received server _SWITCH_UPGRADE event without a pending proposal" + ) + _event_type = (event_type, server_switch_event) + if server_switch_event is None and _event_type is Response: + self.pending_switch_proposals = set() + self._fire_event_triggered_transitions(role, _event_type) + # Special case: the server state does get to see Request + # events. + if _event_type is Request: + assert role is CLIENT + self._fire_event_triggered_transitions(SERVER, (Request, CLIENT)) + self._fire_state_triggered_transitions() + + def _fire_event_triggered_transitions( + self, + role: Type[Sentinel], + event_type: Union[Type[Event], Tuple[Type[Event], Type[Sentinel]]], + ) -> None: + state = self.states[role] + try: + new_state = EVENT_TRIGGERED_TRANSITIONS[role][state][event_type] + except KeyError: + event_type = cast(Type[Event], event_type) + raise LocalProtocolError( + "can't handle event type {} when role={} and state={}".format( + event_type.__name__, role, self.states[role] + ) + ) from None + self.states[role] = new_state + + def _fire_state_triggered_transitions(self) -> None: + # We apply these rules repeatedly until converging on a fixed point + while True: + start_states = dict(self.states) + + # It could happen that both these special-case transitions are + # enabled at the same time: + # + # DONE -> MIGHT_SWITCH_PROTOCOL + # DONE -> MUST_CLOSE + # + # For example, this will always be true of a HTTP/1.0 client + # requesting CONNECT. If this happens, the protocol switch takes + # priority. From there the client will either go to + # SWITCHED_PROTOCOL, in which case it's none of our business when + # they close the connection, or else the server will deny the + # request, in which case the client will go back to DONE and then + # from there to MUST_CLOSE. + if self.pending_switch_proposals: + if self.states[CLIENT] is DONE: + self.states[CLIENT] = MIGHT_SWITCH_PROTOCOL + + if not self.pending_switch_proposals: + if self.states[CLIENT] is MIGHT_SWITCH_PROTOCOL: + self.states[CLIENT] = DONE + + if not self.keep_alive: + for role in (CLIENT, SERVER): + if self.states[role] is DONE: + self.states[role] = MUST_CLOSE + + # Tabular state-triggered transitions + joint_state = (self.states[CLIENT], self.states[SERVER]) + changes = STATE_TRIGGERED_TRANSITIONS.get(joint_state, {}) + self.states.update(changes) + + if self.states == start_states: + # Fixed point reached + return + + def start_next_cycle(self) -> None: + if self.states != {CLIENT: DONE, SERVER: DONE}: + raise LocalProtocolError( + f"not in a reusable state. self.states={self.states}" + ) + # Can't reach DONE/DONE with any of these active, but still, let's be + # sure. + assert self.keep_alive + assert not self.pending_switch_proposals + self.states = {CLIENT: IDLE, SERVER: IDLE} diff --git a/venv/lib/python3.11/site-packages/h11/_util.py b/venv/lib/python3.11/site-packages/h11/_util.py new file mode 100644 index 0000000..6718445 --- /dev/null +++ b/venv/lib/python3.11/site-packages/h11/_util.py @@ -0,0 +1,135 @@ +from typing import Any, Dict, NoReturn, Pattern, Tuple, Type, TypeVar, Union + +__all__ = [ + "ProtocolError", + "LocalProtocolError", + "RemoteProtocolError", + "validate", + "bytesify", +] + + +class ProtocolError(Exception): + """Exception indicating a violation of the HTTP/1.1 protocol. + + This as an abstract base class, with two concrete base classes: + :exc:`LocalProtocolError`, which indicates that you tried to do something + that HTTP/1.1 says is illegal, and :exc:`RemoteProtocolError`, which + indicates that the remote peer tried to do something that HTTP/1.1 says is + illegal. See :ref:`error-handling` for details. + + In addition to the normal :exc:`Exception` features, it has one attribute: + + .. attribute:: error_status_hint + + This gives a suggestion as to what status code a server might use if + this error occurred as part of a request. + + For a :exc:`RemoteProtocolError`, this is useful as a suggestion for + how you might want to respond to a misbehaving peer, if you're + implementing a server. + + For a :exc:`LocalProtocolError`, this can be taken as a suggestion for + how your peer might have responded to *you* if h11 had allowed you to + continue. + + The default is 400 Bad Request, a generic catch-all for protocol + violations. + + """ + + def __init__(self, msg: str, error_status_hint: int = 400) -> None: + if type(self) is ProtocolError: + raise TypeError("tried to directly instantiate ProtocolError") + Exception.__init__(self, msg) + self.error_status_hint = error_status_hint + + +# Strategy: there are a number of public APIs where a LocalProtocolError can +# be raised (send(), all the different event constructors, ...), and only one +# public API where RemoteProtocolError can be raised +# (receive_data()). Therefore we always raise LocalProtocolError internally, +# and then receive_data will translate this into a RemoteProtocolError. +# +# Internally: +# LocalProtocolError is the generic "ProtocolError". +# Externally: +# LocalProtocolError is for local errors and RemoteProtocolError is for +# remote errors. +class LocalProtocolError(ProtocolError): + def _reraise_as_remote_protocol_error(self) -> NoReturn: + # After catching a LocalProtocolError, use this method to re-raise it + # as a RemoteProtocolError. This method must be called from inside an + # except: block. + # + # An easy way to get an equivalent RemoteProtocolError is just to + # modify 'self' in place. + self.__class__ = RemoteProtocolError # type: ignore + # But the re-raising is somewhat non-trivial -- you might think that + # now that we've modified the in-flight exception object, that just + # doing 'raise' to re-raise it would be enough. But it turns out that + # this doesn't work, because Python tracks the exception type + # (exc_info[0]) separately from the exception object (exc_info[1]), + # and we only modified the latter. So we really do need to re-raise + # the new type explicitly. + # On py3, the traceback is part of the exception object, so our + # in-place modification preserved it and we can just re-raise: + raise self + + +class RemoteProtocolError(ProtocolError): + pass + + +def validate( + regex: Pattern[bytes], data: bytes, msg: str = "malformed data", *format_args: Any +) -> Dict[str, bytes]: + match = regex.fullmatch(data) + if not match: + if format_args: + msg = msg.format(*format_args) + raise LocalProtocolError(msg) + return match.groupdict() + + +# Sentinel values +# +# - Inherit identity-based comparison and hashing from object +# - Have a nice repr +# - Have a *bonus property*: type(sentinel) is sentinel +# +# The bonus property is useful if you want to take the return value from +# next_event() and do some sort of dispatch based on type(event). + +_T_Sentinel = TypeVar("_T_Sentinel", bound="Sentinel") + + +class Sentinel(type): + def __new__( + cls: Type[_T_Sentinel], + name: str, + bases: Tuple[type, ...], + namespace: Dict[str, Any], + **kwds: Any + ) -> _T_Sentinel: + assert bases == (Sentinel,) + v = super().__new__(cls, name, bases, namespace, **kwds) + v.__class__ = v # type: ignore + return v + + def __repr__(self) -> str: + return self.__name__ + + +# Used for methods, request targets, HTTP versions, header names, and header +# values. Accepts ascii-strings, or bytes/bytearray/memoryview/..., and always +# returns bytes. +def bytesify(s: Union[bytes, bytearray, memoryview, int, str]) -> bytes: + # Fast-path: + if type(s) is bytes: + return s + if isinstance(s, str): + s = s.encode("ascii") + if isinstance(s, int): + raise TypeError("expected bytes-like object, not int") + return bytes(s) diff --git a/venv/lib/python3.11/site-packages/h11/_version.py b/venv/lib/python3.11/site-packages/h11/_version.py new file mode 100644 index 0000000..76e7327 --- /dev/null +++ b/venv/lib/python3.11/site-packages/h11/_version.py @@ -0,0 +1,16 @@ +# This file must be kept very simple, because it is consumed from several +# places -- it is imported by h11/__init__.py, execfile'd by setup.py, etc. + +# We use a simple scheme: +# 1.0.0 -> 1.0.0+dev -> 1.1.0 -> 1.1.0+dev +# where the +dev versions are never released into the wild, they're just what +# we stick into the VCS in between releases. +# +# This is compatible with PEP 440: +# http://legacy.python.org/dev/peps/pep-0440/ +# via the use of the "local suffix" "+dev", which is disallowed on index +# servers and causes 1.0.0+dev to sort after plain 1.0.0, which is what we +# want. (Contrast with the special suffix 1.0.0.dev, which sorts *before* +# 1.0.0.) + +__version__ = "0.16.0" diff --git a/venv/lib/python3.11/site-packages/h11/_writers.py b/venv/lib/python3.11/site-packages/h11/_writers.py new file mode 100644 index 0000000..939cdb9 --- /dev/null +++ b/venv/lib/python3.11/site-packages/h11/_writers.py @@ -0,0 +1,145 @@ +# Code to read HTTP data +# +# Strategy: each writer takes an event + a write-some-bytes function, which is +# calls. +# +# WRITERS is a dict describing how to pick a reader. It maps states to either: +# - a writer +# - or, for body writers, a dict of framin-dependent writer factories + +from typing import Any, Callable, Dict, List, Tuple, Type, Union + +from ._events import Data, EndOfMessage, Event, InformationalResponse, Request, Response +from ._headers import Headers +from ._state import CLIENT, IDLE, SEND_BODY, SEND_RESPONSE, SERVER +from ._util import LocalProtocolError, Sentinel + +__all__ = ["WRITERS"] + +Writer = Callable[[bytes], Any] + + +def write_headers(headers: Headers, write: Writer) -> None: + # "Since the Host field-value is critical information for handling a + # request, a user agent SHOULD generate Host as the first header field + # following the request-line." - RFC 7230 + raw_items = headers._full_items + for raw_name, name, value in raw_items: + if name == b"host": + write(b"%s: %s\r\n" % (raw_name, value)) + for raw_name, name, value in raw_items: + if name != b"host": + write(b"%s: %s\r\n" % (raw_name, value)) + write(b"\r\n") + + +def write_request(request: Request, write: Writer) -> None: + if request.http_version != b"1.1": + raise LocalProtocolError("I only send HTTP/1.1") + write(b"%s %s HTTP/1.1\r\n" % (request.method, request.target)) + write_headers(request.headers, write) + + +# Shared between InformationalResponse and Response +def write_any_response( + response: Union[InformationalResponse, Response], write: Writer +) -> None: + if response.http_version != b"1.1": + raise LocalProtocolError("I only send HTTP/1.1") + status_bytes = str(response.status_code).encode("ascii") + # We don't bother sending ascii status messages like "OK"; they're + # optional and ignored by the protocol. (But the space after the numeric + # status code is mandatory.) + # + # XX FIXME: could at least make an effort to pull out the status message + # from stdlib's http.HTTPStatus table. Or maybe just steal their enums + # (either by import or copy/paste). We already accept them as status codes + # since they're of type IntEnum < int. + write(b"HTTP/1.1 %s %s\r\n" % (status_bytes, response.reason)) + write_headers(response.headers, write) + + +class BodyWriter: + def __call__(self, event: Event, write: Writer) -> None: + if type(event) is Data: + self.send_data(event.data, write) + elif type(event) is EndOfMessage: + self.send_eom(event.headers, write) + else: # pragma: no cover + assert False + + def send_data(self, data: bytes, write: Writer) -> None: + pass + + def send_eom(self, headers: Headers, write: Writer) -> None: + pass + + +# +# These are all careful not to do anything to 'data' except call len(data) and +# write(data). This allows us to transparently pass-through funny objects, +# like placeholder objects referring to files on disk that will be sent via +# sendfile(2). +# +class ContentLengthWriter(BodyWriter): + def __init__(self, length: int) -> None: + self._length = length + + def send_data(self, data: bytes, write: Writer) -> None: + self._length -= len(data) + if self._length < 0: + raise LocalProtocolError("Too much data for declared Content-Length") + write(data) + + def send_eom(self, headers: Headers, write: Writer) -> None: + if self._length != 0: + raise LocalProtocolError("Too little data for declared Content-Length") + if headers: + raise LocalProtocolError("Content-Length and trailers don't mix") + + +class ChunkedWriter(BodyWriter): + def send_data(self, data: bytes, write: Writer) -> None: + # if we encoded 0-length data in the naive way, it would look like an + # end-of-message. + if not data: + return + write(b"%x\r\n" % len(data)) + write(data) + write(b"\r\n") + + def send_eom(self, headers: Headers, write: Writer) -> None: + write(b"0\r\n") + write_headers(headers, write) + + +class Http10Writer(BodyWriter): + def send_data(self, data: bytes, write: Writer) -> None: + write(data) + + def send_eom(self, headers: Headers, write: Writer) -> None: + if headers: + raise LocalProtocolError("can't send trailers to HTTP/1.0 client") + # no need to close the socket ourselves, that will be taken care of by + # Connection: close machinery + + +WritersType = Dict[ + Union[Tuple[Type[Sentinel], Type[Sentinel]], Type[Sentinel]], + Union[ + Dict[str, Type[BodyWriter]], + Callable[[Union[InformationalResponse, Response], Writer], None], + Callable[[Request, Writer], None], + ], +] + +WRITERS: WritersType = { + (CLIENT, IDLE): write_request, + (SERVER, IDLE): write_any_response, + (SERVER, SEND_RESPONSE): write_any_response, + SEND_BODY: { + "chunked": ChunkedWriter, + "content-length": ContentLengthWriter, + "http/1.0": Http10Writer, + }, +} diff --git a/venv/lib/python3.11/site-packages/h11/py.typed b/venv/lib/python3.11/site-packages/h11/py.typed new file mode 100644 index 0000000..f5642f7 --- /dev/null +++ b/venv/lib/python3.11/site-packages/h11/py.typed @@ -0,0 +1 @@ +Marker diff --git a/venv/lib/python3.11/site-packages/idna-3.11.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/idna-3.11.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/idna-3.11.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/idna-3.11.dist-info/METADATA b/venv/lib/python3.11/site-packages/idna-3.11.dist-info/METADATA new file mode 100644 index 0000000..7a4a4b7 --- /dev/null +++ b/venv/lib/python3.11/site-packages/idna-3.11.dist-info/METADATA @@ -0,0 +1,209 @@ +Metadata-Version: 2.4 +Name: idna +Version: 3.11 +Summary: Internationalized Domain Names in Applications (IDNA) +Author-email: Kim Davies +Requires-Python: >=3.8 +Description-Content-Type: text/x-rst +License-Expression: BSD-3-Clause +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: System Administrators +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Internet :: Name Service (DNS) +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: Utilities +License-File: LICENSE.md +Requires-Dist: ruff >= 0.6.2 ; extra == "all" +Requires-Dist: mypy >= 1.11.2 ; extra == "all" +Requires-Dist: pytest >= 8.3.2 ; extra == "all" +Requires-Dist: flake8 >= 7.1.1 ; extra == "all" +Project-URL: Changelog, https://github.com/kjd/idna/blob/master/HISTORY.rst +Project-URL: Issue tracker, https://github.com/kjd/idna/issues +Project-URL: Source, https://github.com/kjd/idna +Provides-Extra: all + +Internationalized Domain Names in Applications (IDNA) +===================================================== + +Support for `Internationalized Domain Names in +Applications (IDNA) `_ +and `Unicode IDNA Compatibility Processing +`_. + +The latest versions of these standards supplied here provide +more comprehensive language coverage and reduce the potential of +allowing domains with known security vulnerabilities. This library +is a suitable replacement for the “encodings.idna” +module that comes with the Python standard library, but which +only supports an older superseded IDNA specification from 2003. + +Basic functions are simply executed: + +.. code-block:: pycon + + >>> import idna + >>> idna.encode('ドメイン.テスト') + b'xn--eckwd4c7c.xn--zckzah' + >>> print(idna.decode('xn--eckwd4c7c.xn--zckzah')) + ドメイン.テスト + + +Installation +------------ + +This package is available for installation from PyPI via the +typical mechanisms, such as: + +.. code-block:: bash + + $ python3 -m pip install idna + + +Usage +----- + +For typical usage, the ``encode`` and ``decode`` functions will take a +domain name argument and perform a conversion to ASCII compatible encoding +(known as A-labels), or to Unicode strings (known as U-labels) +respectively. + +.. code-block:: pycon + + >>> import idna + >>> idna.encode('ドメイン.テスト') + b'xn--eckwd4c7c.xn--zckzah' + >>> print(idna.decode('xn--eckwd4c7c.xn--zckzah')) + ドメイン.テスト + +Conversions can be applied at a per-label basis using the ``ulabel`` or +``alabel`` functions if necessary: + +.. code-block:: pycon + + >>> idna.alabel('测试') + b'xn--0zwm56d' + + +Compatibility Mapping (UTS #46) ++++++++++++++++++++++++++++++++ + +This library provides support for `Unicode IDNA Compatibility +Processing `_ which normalizes input from +different potential ways a user may input a domain prior to performing the IDNA +conversion operations. This functionality, known as a +`mapping `_, is considered by the +specification to be a local user-interface issue distinct from IDNA +conversion functionality. + +For example, “Königsgäßchen” is not a permissible label as *LATIN +CAPITAL LETTER K* is not allowed (nor are capital letters in general). +UTS 46 will convert this into lower case prior to applying the IDNA +conversion. + +.. code-block:: pycon + + >>> import idna + >>> idna.encode('Königsgäßchen') + ... + idna.core.InvalidCodepoint: Codepoint U+004B at position 1 of 'Königsgäßchen' not allowed + >>> idna.encode('Königsgäßchen', uts46=True) + b'xn--knigsgchen-b4a3dun' + >>> print(idna.decode('xn--knigsgchen-b4a3dun')) + königsgäßchen + + +Exceptions +---------- + +All errors raised during the conversion following the specification +should raise an exception derived from the ``idna.IDNAError`` base +class. + +More specific exceptions that may be generated as ``idna.IDNABidiError`` +when the error reflects an illegal combination of left-to-right and +right-to-left characters in a label; ``idna.InvalidCodepoint`` when +a specific codepoint is an illegal character in an IDN label (i.e. +INVALID); and ``idna.InvalidCodepointContext`` when the codepoint is +illegal based on its position in the string (i.e. it is CONTEXTO or CONTEXTJ +but the contextual requirements are not satisfied.) + +Building and Diagnostics +------------------------ + +The IDNA and UTS 46 functionality relies upon pre-calculated lookup +tables for performance. These tables are derived from computing against +eligibility criteria in the respective standards using the command-line +script ``tools/idna-data``. + +This tool will fetch relevant codepoint data from the Unicode repository +and perform the required calculations to identify eligibility. There are +three main modes: + +* ``idna-data make-libdata``. Generates ``idnadata.py`` and + ``uts46data.py``, the pre-calculated lookup tables used for IDNA and + UTS 46 conversions. Implementers who wish to track this library against + a different Unicode version may use this tool to manually generate a + different version of the ``idnadata.py`` and ``uts46data.py`` files. + +* ``idna-data make-table``. Generate a table of the IDNA disposition + (e.g. PVALID, CONTEXTJ, CONTEXTO) in the format found in Appendix + B.1 of RFC 5892 and the pre-computed tables published by `IANA + `_. + +* ``idna-data U+0061``. Prints debugging output on the various + properties associated with an individual Unicode codepoint (in this + case, U+0061), that are used to assess the IDNA and UTS 46 status of a + codepoint. This is helpful in debugging or analysis. + +The tool accepts a number of arguments, described using ``idna-data +-h``. Most notably, the ``--version`` argument allows the specification +of the version of Unicode to be used in computing the table data. For +example, ``idna-data --version 9.0.0 make-libdata`` will generate +library data against Unicode 9.0.0. + + +Additional Notes +---------------- + +* **Packages**. The latest tagged release version is published in the + `Python Package Index `_. + +* **Version support**. This library supports Python 3.8 and higher. + As this library serves as a low-level toolkit for a variety of + applications, many of which strive for broad compatibility with older + Python versions, there is no rush to remove older interpreter support. + Support for older versions are likely to be removed from new releases + as automated tests can no longer easily be run, i.e. once the Python + version is officially end-of-life. + +* **Testing**. The library has a test suite based on each rule of the + IDNA specification, as well as tests that are provided as part of the + Unicode Technical Standard 46, `Unicode IDNA Compatibility Processing + `_. + +* **Emoji**. It is an occasional request to support emoji domains in + this library. Encoding of symbols like emoji is expressly prohibited by + the technical standard IDNA 2008 and emoji domains are broadly phased + out across the domain industry due to associated security risks. For + now, applications that need to support these non-compliant labels + may wish to consider trying the encode/decode operation in this library + first, and then falling back to using `encodings.idna`. See `the Github + project `_ for more discussion. + +* **Transitional processing**. Unicode 16.0.0 removed transitional + processing so the `transitional` argument for the encode() method + no longer has any effect and will be removed at a later date. + diff --git a/venv/lib/python3.11/site-packages/idna-3.11.dist-info/RECORD b/venv/lib/python3.11/site-packages/idna-3.11.dist-info/RECORD new file mode 100644 index 0000000..f7a87b2 --- /dev/null +++ b/venv/lib/python3.11/site-packages/idna-3.11.dist-info/RECORD @@ -0,0 +1,22 @@ +idna-3.11.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +idna-3.11.dist-info/METADATA,sha256=fCwSww9SuiN8TIHllFSASUQCW55hAs8dzKnr9RaEEbA,8378 +idna-3.11.dist-info/RECORD,, +idna-3.11.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82 +idna-3.11.dist-info/licenses/LICENSE.md,sha256=t6M2q_OwThgOwGXN0W5wXQeeHMehT5EKpukYfza5zYc,1541 +idna/__init__.py,sha256=MPqNDLZbXqGaNdXxAFhiqFPKEQXju2jNQhCey6-5eJM,868 +idna/__pycache__/__init__.cpython-311.pyc,, +idna/__pycache__/codec.cpython-311.pyc,, +idna/__pycache__/compat.cpython-311.pyc,, +idna/__pycache__/core.cpython-311.pyc,, +idna/__pycache__/idnadata.cpython-311.pyc,, +idna/__pycache__/intranges.cpython-311.pyc,, +idna/__pycache__/package_data.cpython-311.pyc,, +idna/__pycache__/uts46data.cpython-311.pyc,, +idna/codec.py,sha256=M2SGWN7cs_6B32QmKTyTN6xQGZeYQgQ2wiX3_DR6loE,3438 +idna/compat.py,sha256=RzLy6QQCdl9784aFhb2EX9EKGCJjg0P3PilGdeXXcx8,316 +idna/core.py,sha256=P26_XVycuMTZ1R2mNK1ZREVzM5mvTzdabBXfyZVU1Lc,13246 +idna/idnadata.py,sha256=SG8jhaGE53iiD6B49pt2pwTv_UvClciWE-N54oR2p4U,79623 +idna/intranges.py,sha256=amUtkdhYcQG8Zr-CoMM_kVRacxkivC1WgxN1b63KKdU,1898 +idna/package_data.py,sha256=_CUavOxobnbyNG2FLyHoN8QHP3QM9W1tKuw7eq9QwBk,21 +idna/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +idna/uts46data.py,sha256=H9J35VkD0F9L9mKOqjeNGd2A-Va6FlPoz6Jz4K7h-ps,243725 diff --git a/venv/lib/python3.11/site-packages/idna-3.11.dist-info/WHEEL b/venv/lib/python3.11/site-packages/idna-3.11.dist-info/WHEEL new file mode 100644 index 0000000..d8b9936 --- /dev/null +++ b/venv/lib/python3.11/site-packages/idna-3.11.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: flit 3.12.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/idna-3.11.dist-info/licenses/LICENSE.md b/venv/lib/python3.11/site-packages/idna-3.11.dist-info/licenses/LICENSE.md new file mode 100644 index 0000000..256ba90 --- /dev/null +++ b/venv/lib/python3.11/site-packages/idna-3.11.dist-info/licenses/LICENSE.md @@ -0,0 +1,31 @@ +BSD 3-Clause License + +Copyright (c) 2013-2025, Kim Davies and contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/METADATA b/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/METADATA new file mode 100644 index 0000000..ffef2ff --- /dev/null +++ b/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/METADATA @@ -0,0 +1,84 @@ +Metadata-Version: 2.4 +Name: Jinja2 +Version: 3.1.6 +Summary: A very fast and expressive template engine. +Maintainer-email: Pallets +Requires-Python: >=3.7 +Description-Content-Type: text/markdown +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content +Classifier: Topic :: Text Processing :: Markup :: HTML +Classifier: Typing :: Typed +License-File: LICENSE.txt +Requires-Dist: MarkupSafe>=2.0 +Requires-Dist: Babel>=2.7 ; extra == "i18n" +Project-URL: Changes, https://jinja.palletsprojects.com/changes/ +Project-URL: Chat, https://discord.gg/pallets +Project-URL: Documentation, https://jinja.palletsprojects.com/ +Project-URL: Donate, https://palletsprojects.com/donate +Project-URL: Source, https://github.com/pallets/jinja/ +Provides-Extra: i18n + +# Jinja + +Jinja is a fast, expressive, extensible templating engine. Special +placeholders in the template allow writing code similar to Python +syntax. Then the template is passed data to render the final document. + +It includes: + +- Template inheritance and inclusion. +- Define and import macros within templates. +- HTML templates can use autoescaping to prevent XSS from untrusted + user input. +- A sandboxed environment can safely render untrusted templates. +- AsyncIO support for generating templates and calling async + functions. +- I18N support with Babel. +- Templates are compiled to optimized Python code just-in-time and + cached, or can be compiled ahead-of-time. +- Exceptions point to the correct line in templates to make debugging + easier. +- Extensible filters, tests, functions, and even syntax. + +Jinja's philosophy is that while application logic belongs in Python if +possible, it shouldn't make the template designer's job difficult by +restricting functionality too much. + + +## In A Nutshell + +```jinja +{% extends "base.html" %} +{% block title %}Members{% endblock %} +{% block content %} + +{% endblock %} +``` + +## Donate + +The Pallets organization develops and supports Jinja and other popular +packages. In order to grow the community of contributors and users, and +allow the maintainers to devote more time to the projects, [please +donate today][]. + +[please donate today]: https://palletsprojects.com/donate + +## Contributing + +See our [detailed contributing documentation][contrib] for many ways to +contribute, including reporting issues, requesting features, asking or answering +questions, and making PRs. + +[contrib]: https://palletsprojects.com/contributing/ + diff --git a/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/RECORD b/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/RECORD new file mode 100644 index 0000000..b48ff6c --- /dev/null +++ b/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/RECORD @@ -0,0 +1,58 @@ +jinja2-3.1.6.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +jinja2-3.1.6.dist-info/METADATA,sha256=aMVUj7Z8QTKhOJjZsx7FDGvqKr3ZFdkh8hQ1XDpkmcg,2871 +jinja2-3.1.6.dist-info/RECORD,, +jinja2-3.1.6.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +jinja2-3.1.6.dist-info/WHEEL,sha256=_2ozNFCLWc93bK4WKHCO-eDUENDlo-dgc9cU3qokYO4,82 +jinja2-3.1.6.dist-info/entry_points.txt,sha256=OL85gYU1eD8cuPlikifFngXpeBjaxl6rIJ8KkC_3r-I,58 +jinja2-3.1.6.dist-info/licenses/LICENSE.txt,sha256=O0nc7kEF6ze6wQ-vG-JgQI_oXSUrjp3y4JefweCUQ3s,1475 +jinja2/__init__.py,sha256=xxepO9i7DHsqkQrgBEduLtfoz2QCuT6_gbL4XSN1hbU,1928 +jinja2/__pycache__/__init__.cpython-311.pyc,, +jinja2/__pycache__/_identifier.cpython-311.pyc,, +jinja2/__pycache__/async_utils.cpython-311.pyc,, +jinja2/__pycache__/bccache.cpython-311.pyc,, +jinja2/__pycache__/compiler.cpython-311.pyc,, +jinja2/__pycache__/constants.cpython-311.pyc,, +jinja2/__pycache__/debug.cpython-311.pyc,, +jinja2/__pycache__/defaults.cpython-311.pyc,, +jinja2/__pycache__/environment.cpython-311.pyc,, +jinja2/__pycache__/exceptions.cpython-311.pyc,, +jinja2/__pycache__/ext.cpython-311.pyc,, +jinja2/__pycache__/filters.cpython-311.pyc,, +jinja2/__pycache__/idtracking.cpython-311.pyc,, +jinja2/__pycache__/lexer.cpython-311.pyc,, +jinja2/__pycache__/loaders.cpython-311.pyc,, +jinja2/__pycache__/meta.cpython-311.pyc,, +jinja2/__pycache__/nativetypes.cpython-311.pyc,, +jinja2/__pycache__/nodes.cpython-311.pyc,, +jinja2/__pycache__/optimizer.cpython-311.pyc,, +jinja2/__pycache__/parser.cpython-311.pyc,, +jinja2/__pycache__/runtime.cpython-311.pyc,, +jinja2/__pycache__/sandbox.cpython-311.pyc,, +jinja2/__pycache__/tests.cpython-311.pyc,, +jinja2/__pycache__/utils.cpython-311.pyc,, +jinja2/__pycache__/visitor.cpython-311.pyc,, +jinja2/_identifier.py,sha256=_zYctNKzRqlk_murTNlzrju1FFJL7Va_Ijqqd7ii2lU,1958 +jinja2/async_utils.py,sha256=vK-PdsuorOMnWSnEkT3iUJRIkTnYgO2T6MnGxDgHI5o,2834 +jinja2/bccache.py,sha256=gh0qs9rulnXo0PhX5jTJy2UHzI8wFnQ63o_vw7nhzRg,14061 +jinja2/compiler.py,sha256=9RpCQl5X88BHllJiPsHPh295Hh0uApvwFJNQuutULeM,74131 +jinja2/constants.py,sha256=GMoFydBF_kdpaRKPoM5cl5MviquVRLVyZtfp5-16jg0,1433 +jinja2/debug.py,sha256=CnHqCDHd-BVGvti_8ZsTolnXNhA3ECsY-6n_2pwU8Hw,6297 +jinja2/defaults.py,sha256=boBcSw78h-lp20YbaXSJsqkAI2uN_mD_TtCydpeq5wU,1267 +jinja2/environment.py,sha256=9nhrP7Ch-NbGX00wvyr4yy-uhNHq2OCc60ggGrni_fk,61513 +jinja2/exceptions.py,sha256=ioHeHrWwCWNaXX1inHmHVblvc4haO7AXsjCp3GfWvx0,5071 +jinja2/ext.py,sha256=5PF5eHfh8mXAIxXHHRB2xXbXohi8pE3nHSOxa66uS7E,31875 +jinja2/filters.py,sha256=PQ_Egd9n9jSgtnGQYyF4K5j2nYwhUIulhPnyimkdr-k,55212 +jinja2/idtracking.py,sha256=-ll5lIp73pML3ErUYiIJj7tdmWxcH_IlDv3yA_hiZYo,10555 +jinja2/lexer.py,sha256=LYiYio6br-Tep9nPcupWXsPEtjluw3p1mU-lNBVRUfk,29786 +jinja2/loaders.py,sha256=wIrnxjvcbqh5VwW28NSkfotiDq8qNCxIOSFbGUiSLB4,24055 +jinja2/meta.py,sha256=OTDPkaFvU2Hgvx-6akz7154F8BIWaRmvJcBFvwopHww,4397 +jinja2/nativetypes.py,sha256=7GIGALVJgdyL80oZJdQUaUfwSt5q2lSSZbXt0dNf_M4,4210 +jinja2/nodes.py,sha256=m1Duzcr6qhZI8JQ6VyJgUNinjAf5bQzijSmDnMsvUx8,34579 +jinja2/optimizer.py,sha256=rJnCRlQ7pZsEEmMhsQDgC_pKyDHxP5TPS6zVPGsgcu8,1651 +jinja2/parser.py,sha256=lLOFy3sEmHc5IaEHRiH1sQVnId2moUQzhyeJZTtdY30,40383 +jinja2/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +jinja2/runtime.py,sha256=gDk-GvdriJXqgsGbHgrcKTP0Yp6zPXzhzrIpCFH3jAU,34249 +jinja2/sandbox.py,sha256=Mw2aitlY2I8la7FYhcX2YG9BtUYcLnD0Gh3d29cDWrY,15009 +jinja2/tests.py,sha256=VLsBhVFnWg-PxSBz1MhRnNWgP1ovXk3neO1FLQMeC9Q,5926 +jinja2/utils.py,sha256=rRp3o9e7ZKS4fyrWRbELyLcpuGVTFcnooaOa1qx_FIk,24129 +jinja2/visitor.py,sha256=EcnL1PIwf_4RVCOMxsRNuR8AXHbS1qfAdMOE2ngKJz4,3557 diff --git a/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/WHEEL b/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/WHEEL new file mode 100644 index 0000000..23d2d7e --- /dev/null +++ b/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: flit 3.11.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/entry_points.txt b/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/entry_points.txt new file mode 100644 index 0000000..abc3eae --- /dev/null +++ b/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/entry_points.txt @@ -0,0 +1,3 @@ +[babel.extractors] +jinja2=jinja2.ext:babel_extract[i18n] + diff --git a/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/licenses/LICENSE.txt b/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/licenses/LICENSE.txt new file mode 100644 index 0000000..c37cae4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/jinja2-3.1.6.dist-info/licenses/LICENSE.txt @@ -0,0 +1,28 @@ +Copyright 2007 Pallets + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.11/site-packages/kafka_python-2.2.15.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/kafka_python-2.2.15.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/kafka_python-2.2.15.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/kafka_python-2.2.15.dist-info/METADATA b/venv/lib/python3.11/site-packages/kafka_python-2.2.15.dist-info/METADATA new file mode 100644 index 0000000..7f86dd7 --- /dev/null +++ b/venv/lib/python3.11/site-packages/kafka_python-2.2.15.dist-info/METADATA @@ -0,0 +1,277 @@ +Metadata-Version: 2.4 +Name: kafka-python +Version: 2.2.15 +Summary: Pure Python client for Apache Kafka +Author-email: Dana Powers +Project-URL: Homepage, https://github.com/dpkp/kafka-python +Keywords: apache kafka,kafka +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Description-Content-Type: text/x-rst +Provides-Extra: crc32c +Requires-Dist: crc32c; extra == "crc32c" +Provides-Extra: lz4 +Requires-Dist: lz4; extra == "lz4" +Provides-Extra: snappy +Requires-Dist: python-snappy; extra == "snappy" +Provides-Extra: zstd +Requires-Dist: zstandard; extra == "zstd" +Provides-Extra: testing +Requires-Dist: pytest; extra == "testing" +Requires-Dist: mock; python_version < "3.3" and extra == "testing" +Requires-Dist: pytest-mock; extra == "testing" +Requires-Dist: pytest-timeout; extra == "testing" +Provides-Extra: benchmarks +Requires-Dist: pyperf; extra == "benchmarks" + +Kafka Python client +------------------------ + +.. image:: https://img.shields.io/badge/kafka-4.0--0.8-brightgreen.svg + :target: https://kafka-python.readthedocs.io/en/master/compatibility.html +.. image:: https://img.shields.io/pypi/pyversions/kafka-python.svg + :target: https://pypi.python.org/pypi/kafka-python +.. image:: https://coveralls.io/repos/dpkp/kafka-python/badge.svg?branch=master&service=github + :target: https://coveralls.io/github/dpkp/kafka-python?branch=master +.. image:: https://img.shields.io/badge/license-Apache%202-blue.svg + :target: https://github.com/dpkp/kafka-python/blob/master/LICENSE +.. image:: https://img.shields.io/pypi/dw/kafka-python.svg + :target: https://pypistats.org/packages/kafka-python +.. image:: https://img.shields.io/pypi/v/kafka-python.svg + :target: https://pypi.org/project/kafka-python +.. image:: https://img.shields.io/pypi/implementation/kafka-python + :target: https://github.com/dpkp/kafka-python/blob/master/setup.py + + + +Python client for the Apache Kafka distributed stream processing system. +kafka-python is designed to function much like the official java client, with a +sprinkling of pythonic interfaces (e.g., consumer iterators). + +kafka-python is best used with newer brokers (0.9+), but is backwards-compatible with +older versions (to 0.8.0). Some features will only be enabled on newer brokers. +For example, fully coordinated consumer groups -- i.e., dynamic partition +assignment to multiple consumers in the same group -- requires use of 0.9+ kafka +brokers. Supporting this feature for earlier broker releases would require +writing and maintaining custom leadership election and membership / health +check code (perhaps using zookeeper or consul). For older brokers, you can +achieve something similar by manually assigning different partitions to each +consumer instance with config management tools like chef, ansible, etc. This +approach will work fine, though it does not support rebalancing on failures. +See https://kafka-python.readthedocs.io/en/master/compatibility.html +for more details. + +Please note that the master branch may contain unreleased features. For release +documentation, please see readthedocs and/or python's inline help. + +.. code-block:: bash + + $ pip install kafka-python + + +KafkaConsumer +************* + +KafkaConsumer is a high-level message consumer, intended to operate as similarly +as possible to the official java client. Full support for coordinated +consumer groups requires use of kafka brokers that support the Group APIs: kafka v0.9+. + +See https://kafka-python.readthedocs.io/en/master/apidoc/KafkaConsumer.html +for API and configuration details. + +The consumer iterator returns ConsumerRecords, which are simple namedtuples +that expose basic message attributes: topic, partition, offset, key, and value: + +.. code-block:: python + + from kafka import KafkaConsumer + consumer = KafkaConsumer('my_favorite_topic') + for msg in consumer: + print (msg) + +.. code-block:: python + + # join a consumer group for dynamic partition assignment and offset commits + from kafka import KafkaConsumer + consumer = KafkaConsumer('my_favorite_topic', group_id='my_favorite_group') + for msg in consumer: + print (msg) + +.. code-block:: python + + # manually assign the partition list for the consumer + from kafka import TopicPartition + consumer = KafkaConsumer(bootstrap_servers='localhost:1234') + consumer.assign([TopicPartition('foobar', 2)]) + msg = next(consumer) + +.. code-block:: python + + # Deserialize msgpack-encoded values + consumer = KafkaConsumer(value_deserializer=msgpack.loads) + consumer.subscribe(['msgpackfoo']) + for msg in consumer: + assert isinstance(msg.value, dict) + +.. code-block:: python + + # Access record headers. The returned value is a list of tuples + # with str, bytes for key and value + for msg in consumer: + print (msg.headers) + +.. code-block:: python + + # Read only committed messages from transactional topic + consumer = KafkaConsumer(isolation_level='read_committed') + consumer.subscribe(['txn_topic']) + for msg in consumer: + print(msg) + +.. code-block:: python + + # Get consumer metrics + metrics = consumer.metrics() + + +KafkaProducer +************* + +KafkaProducer is a high-level, asynchronous message producer. The class is +intended to operate as similarly as possible to the official java client. +See https://kafka-python.readthedocs.io/en/master/apidoc/KafkaProducer.html +for more details. + +.. code-block:: python + + from kafka import KafkaProducer + producer = KafkaProducer(bootstrap_servers='localhost:1234') + for _ in range(100): + producer.send('foobar', b'some_message_bytes') + +.. code-block:: python + + # Block until a single message is sent (or timeout) + future = producer.send('foobar', b'another_message') + result = future.get(timeout=60) + +.. code-block:: python + + # Block until all pending messages are at least put on the network + # NOTE: This does not guarantee delivery or success! It is really + # only useful if you configure internal batching using linger_ms + producer.flush() + +.. code-block:: python + + # Use a key for hashed-partitioning + producer.send('foobar', key=b'foo', value=b'bar') + +.. code-block:: python + + # Serialize json messages + import json + producer = KafkaProducer(value_serializer=lambda v: json.dumps(v).encode('utf-8')) + producer.send('fizzbuzz', {'foo': 'bar'}) + +.. code-block:: python + + # Serialize string keys + producer = KafkaProducer(key_serializer=str.encode) + producer.send('flipflap', key='ping', value=b'1234') + +.. code-block:: python + + # Compress messages + producer = KafkaProducer(compression_type='gzip') + for i in range(1000): + producer.send('foobar', b'msg %d' % i) + +.. code-block:: python + + # Use transactions + producer = KafkaProducer(transactional_id='fizzbuzz') + producer.init_transactions() + producer.begin_transaction() + future = producer.send('txn_topic', value=b'yes') + future.get() # wait for successful produce + producer.commit_transaction() # commit the transaction + + producer.begin_transaction() + future = producer.send('txn_topic', value=b'no') + future.get() # wait for successful produce + producer.abort_transaction() # abort the transaction + +.. code-block:: python + + # Include record headers. The format is list of tuples with string key + # and bytes value. + producer.send('foobar', value=b'c29tZSB2YWx1ZQ==', headers=[('content-encoding', b'base64')]) + +.. code-block:: python + + # Get producer performance metrics + metrics = producer.metrics() + + +Thread safety +************* + +The KafkaProducer can be used across threads without issue, unlike the +KafkaConsumer which cannot. + +While it is possible to use the KafkaConsumer in a thread-local manner, +multiprocessing is recommended. + + +Compression +*********** + +kafka-python supports the following compression formats: + +- gzip +- LZ4 +- Snappy +- Zstandard (zstd) + +gzip is supported natively, the others require installing additional libraries. +See https://kafka-python.readthedocs.io/en/master/install.html for more information. + + +Optimized CRC32 Validation +************************** + +Kafka uses CRC32 checksums to validate messages. kafka-python includes a pure +python implementation for compatibility. To improve performance for high-throughput +applications, kafka-python will use `crc32c` for optimized native code if installed. +See https://kafka-python.readthedocs.io/en/master/install.html for installation instructions. +See https://pypi.org/project/crc32c/ for details on the underlying crc32c lib. + + +Protocol +******** + +A secondary goal of kafka-python is to provide an easy-to-use protocol layer +for interacting with kafka brokers via the python repl. This is useful for +testing, probing, and general experimentation. The protocol support is +leveraged to enable a KafkaClient.check_version() method that +probes a kafka broker and attempts to identify which version it is running +(0.8.0 to 2.6+). diff --git a/venv/lib/python3.11/site-packages/kafka_python-2.2.15.dist-info/RECORD b/venv/lib/python3.11/site-packages/kafka_python-2.2.15.dist-info/RECORD new file mode 100644 index 0000000..dd46810 --- /dev/null +++ b/venv/lib/python3.11/site-packages/kafka_python-2.2.15.dist-info/RECORD @@ -0,0 +1,250 @@ +kafka/__init__.py,sha256=4dvHKZAxmD_4tfJ5wGcRV2X78vPcm8vsUoqceULevjA,1077 +kafka/__pycache__/__init__.cpython-311.pyc,, +kafka/__pycache__/client_async.cpython-311.pyc,, +kafka/__pycache__/cluster.cpython-311.pyc,, +kafka/__pycache__/codec.cpython-311.pyc,, +kafka/__pycache__/conn.cpython-311.pyc,, +kafka/__pycache__/errors.cpython-311.pyc,, +kafka/__pycache__/future.cpython-311.pyc,, +kafka/__pycache__/socks5_wrapper.cpython-311.pyc,, +kafka/__pycache__/structs.cpython-311.pyc,, +kafka/__pycache__/util.cpython-311.pyc,, +kafka/__pycache__/version.cpython-311.pyc,, +kafka/admin/__init__.py,sha256=S_XxqyyV480_yXhttK79XZqNAmZyXRjspd3SoqYykE8,720 +kafka/admin/__pycache__/__init__.cpython-311.pyc,, +kafka/admin/__pycache__/acl_resource.cpython-311.pyc,, +kafka/admin/__pycache__/client.cpython-311.pyc,, +kafka/admin/__pycache__/config_resource.cpython-311.pyc,, +kafka/admin/__pycache__/new_partitions.cpython-311.pyc,, +kafka/admin/__pycache__/new_topic.cpython-311.pyc,, +kafka/admin/acl_resource.py,sha256=ak_dUsSni4SyP0ORbSKenZpwTy0Ykxq3FSt_9XgLR8k,8265 +kafka/admin/client.py,sha256=94UpHTsgzvhOoB6_1QLeKxvZKlStKfI96xuWyaY9_Sc,78814 +kafka/admin/config_resource.py,sha256=_JZWN_Q7jbuTtq2kdfHxWyTt_jI1LI-xnVGsf6oYGyY,1039 +kafka/admin/new_partitions.py,sha256=rYSb7S6VL706ZauSmiN5J9GDsep0HYRmkkAZUgT2JIg,757 +kafka/admin/new_topic.py,sha256=fvezLP9JXumqX-nU27Fgo0tj4d85ybcJgKluQImm3-0,1306 +kafka/benchmarks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +kafka/benchmarks/__pycache__/__init__.cpython-311.pyc,, +kafka/benchmarks/__pycache__/consumer_performance.cpython-311.pyc,, +kafka/benchmarks/__pycache__/load_example.cpython-311.pyc,, +kafka/benchmarks/__pycache__/producer_performance.cpython-311.pyc,, +kafka/benchmarks/__pycache__/record_batch_compose.cpython-311.pyc,, +kafka/benchmarks/__pycache__/record_batch_read.cpython-311.pyc,, +kafka/benchmarks/__pycache__/varint_speed.cpython-311.pyc,, +kafka/benchmarks/consumer_performance.py,sha256=UFW2rVHX4rdwLRRQqsoUoMR7FbA9hwYsCNkQA1qNvuQ,4932 +kafka/benchmarks/load_example.py,sha256=feaU2Qic11hZfi3rKTI4Fezxmu-kvNz17m2wJmZMjmw,3491 +kafka/benchmarks/producer_performance.py,sha256=jy1Q4zyamPrluh3SUKxiH3z6wY-8sSFG3yJvJbnUFO0,5210 +kafka/benchmarks/record_batch_compose.py,sha256=CnUreNg1lUT0Qx9enmSr-THmBl9PjVMfaB0tsIFjFr8,2057 +kafka/benchmarks/record_batch_read.py,sha256=vlFaWU2YWI379n_2M8qieb_S2uHUWKV0NquEYy5b-Ho,2184 +kafka/benchmarks/varint_speed.py,sha256=s4CuvKgDZL-_zna5E3vM8RgHjhXuW6pcaO1z1WYZ_0Y,12585 +kafka/client_async.py,sha256=R8q_rRpG3RrYrRmcZo7XgO2oSdpLJATNcq8w-1vIJ_8,56878 +kafka/cluster.py,sha256=B4tOZYhZaYrcGsyAtdA8yejFm9ue7ElJxn_pd6Xhdfk,16775 +kafka/codec.py,sha256=8NZpnehzNrhSBIjzbPVSvyFbSeLAqEntE7BfVHu-_9I,10036 +kafka/conn.py,sha256=_yP-pGwEbkDmeutMOZjVilQXAnF4PWF_CDc60qC3DuE,69488 +kafka/consumer/__init__.py,sha256=NDdvtyuJgFyQZahqL9i5sYXGP6rOMIXWwHQEaZ1fCcs,122 +kafka/consumer/__pycache__/__init__.cpython-311.pyc,, +kafka/consumer/__pycache__/fetcher.cpython-311.pyc,, +kafka/consumer/__pycache__/group.cpython-311.pyc,, +kafka/consumer/__pycache__/subscription_state.cpython-311.pyc,, +kafka/consumer/fetcher.py,sha256=RlQLut54c5nOMl21neTJA2tmdsxIIPIX2Idu5Q-dYKY,69184 +kafka/consumer/group.py,sha256=1_4qES7x3XyAHjVbFZ_E0ilAoueyaeHiGpNgggYLGiQ,58945 +kafka/consumer/subscription_state.py,sha256=bK-YTVbOzhy8OB206QAfXVuo7zPA9YqYXnrRRST369c,24289 +kafka/coordinator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +kafka/coordinator/__pycache__/__init__.cpython-311.pyc,, +kafka/coordinator/__pycache__/base.cpython-311.pyc,, +kafka/coordinator/__pycache__/consumer.cpython-311.pyc,, +kafka/coordinator/__pycache__/heartbeat.cpython-311.pyc,, +kafka/coordinator/__pycache__/protocol.cpython-311.pyc,, +kafka/coordinator/assignors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +kafka/coordinator/assignors/__pycache__/__init__.cpython-311.pyc,, +kafka/coordinator/assignors/__pycache__/abstract.cpython-311.pyc,, +kafka/coordinator/assignors/__pycache__/range.cpython-311.pyc,, +kafka/coordinator/assignors/__pycache__/roundrobin.cpython-311.pyc,, +kafka/coordinator/assignors/abstract.py,sha256=belUnCkuw70HJ8HTWYIgVrT6pJmIBBrTl1vkO-bN1C0,1507 +kafka/coordinator/assignors/range.py,sha256=PXFkkb505pL1uJEQMTvXCOp0Rckm-qkoKqTGyn082qM,2912 +kafka/coordinator/assignors/roundrobin.py,sha256=Xt_TOvCtcdozjZSg1cxixLAPyWz1aTpDL8v1vDhX960,3776 +kafka/coordinator/assignors/sticky/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +kafka/coordinator/assignors/sticky/__pycache__/__init__.cpython-311.pyc,, +kafka/coordinator/assignors/sticky/__pycache__/partition_movements.cpython-311.pyc,, +kafka/coordinator/assignors/sticky/__pycache__/sorted_set.cpython-311.pyc,, +kafka/coordinator/assignors/sticky/__pycache__/sticky_assignor.cpython-311.pyc,, +kafka/coordinator/assignors/sticky/partition_movements.py,sha256=npydNO-YCG_cv--U--9CPTLGTbTWahiw_Ek295ayBjQ,6476 +kafka/coordinator/assignors/sticky/sorted_set.py,sha256=lOckfQ7vcOMNnIx5WjfHhKC_MgToeOxbp9vc_4tPIzs,1904 +kafka/coordinator/assignors/sticky/sticky_assignor.py,sha256=p5gDou3Gom7bUSLF5zpilihNPiT-fqJl1J8QxykqqMw,34216 +kafka/coordinator/base.py,sha256=hXfwtDkrHXHiNqjshCOa19js_2Y6ibLsdzDvJKGmcKc,54419 +kafka/coordinator/consumer.py,sha256=le4bGbHfrDK4pperYXekPKzuZW576uXL324IOwS4Kmw,46348 +kafka/coordinator/heartbeat.py,sha256=LeJJlwz1oUEOfEMIFT-R7ZOHBQ-b-luVKwmKyWxLfDo,3242 +kafka/coordinator/protocol.py,sha256=wTaIOnUVbj0CKXZ82FktZo-zMRvOCk3hdQAoHJ62e3I,1041 +kafka/errors.py,sha256=qX2Fp0qawU_HBNcZCwB7EDCmx3C2PehrETi6qSEJHmk,33290 +kafka/future.py,sha256=ZQStbfUYIPJRrgMfAWxxjrIRVxsw4WCtSR0J0bkyGno,2847 +kafka/metrics/__init__.py,sha256=b82LCjV5BgisjmIc3pn11CqFpme5grtIFHWiH8C_R0U,574 +kafka/metrics/__pycache__/__init__.cpython-311.pyc,, +kafka/metrics/__pycache__/compound_stat.cpython-311.pyc,, +kafka/metrics/__pycache__/dict_reporter.cpython-311.pyc,, +kafka/metrics/__pycache__/kafka_metric.cpython-311.pyc,, +kafka/metrics/__pycache__/measurable.cpython-311.pyc,, +kafka/metrics/__pycache__/measurable_stat.cpython-311.pyc,, +kafka/metrics/__pycache__/metric_config.cpython-311.pyc,, +kafka/metrics/__pycache__/metric_name.cpython-311.pyc,, +kafka/metrics/__pycache__/metrics.cpython-311.pyc,, +kafka/metrics/__pycache__/metrics_reporter.cpython-311.pyc,, +kafka/metrics/__pycache__/quota.cpython-311.pyc,, +kafka/metrics/__pycache__/stat.cpython-311.pyc,, +kafka/metrics/compound_stat.py,sha256=vHypFwcp4wWd-fC3jeMiMX8TwiVnnrn1vNfpZlBTZmg,850 +kafka/metrics/dict_reporter.py,sha256=OvZ6SUFp-Yk3tNaWbC0ul0WXncp42ymg8bHw3O6MITA,2567 +kafka/metrics/kafka_metric.py,sha256=vsLHShdhAjltL1vc51__B3M8lCUldMERub8cIdK3gFk,995 +kafka/metrics/measurable.py,sha256=g5mp1c9816SRgJdgHXklTNqDoDnbeYp-opjoV3DOr7Q,770 +kafka/metrics/measurable_stat.py,sha256=Y4D7yrg07E9HqZlqh_EgeVnEEk4DRoNyKEoteEicssU,542 +kafka/metrics/metric_config.py,sha256=LcHTPumiRscwKvF2Da14oMbHAEZolk-gUKk1sxpDUoI,1235 +kafka/metrics/metric_name.py,sha256=eO9rBbd8sp1tWWu6O9YasbDxsS4QQzq8eD0fz1JRqJ8,3493 +kafka/metrics/metrics.py,sha256=EAuMd-OLeSX3IS16NvC3w2tpIEwvCPedPwQ1gyM0C7E,10383 +kafka/metrics/metrics_reporter.py,sha256=hxAs01C5Gj_orStdgHUOYSs4-kOI4xfu0MOkYyuX28s,1437 +kafka/metrics/quota.py,sha256=xzZH-nVdi4nWNo__LAkRWUyb84DKsYGvBBt_ZzRhpKc,1170 +kafka/metrics/stat.py,sha256=eos8xrmz7vgBnIk-8LyqpbEsBbyqEEdJ_CrDzEVGEaU,667 +kafka/metrics/stats/__init__.py,sha256=sHcT6pvQCt-s_aow5_QRy9Z5bRV4ShBCZlin51f--Ro,629 +kafka/metrics/stats/__pycache__/__init__.cpython-311.pyc,, +kafka/metrics/stats/__pycache__/avg.cpython-311.pyc,, +kafka/metrics/stats/__pycache__/count.cpython-311.pyc,, +kafka/metrics/stats/__pycache__/histogram.cpython-311.pyc,, +kafka/metrics/stats/__pycache__/max_stat.cpython-311.pyc,, +kafka/metrics/stats/__pycache__/min_stat.cpython-311.pyc,, +kafka/metrics/stats/__pycache__/percentile.cpython-311.pyc,, +kafka/metrics/stats/__pycache__/percentiles.cpython-311.pyc,, +kafka/metrics/stats/__pycache__/rate.cpython-311.pyc,, +kafka/metrics/stats/__pycache__/sampled_stat.cpython-311.pyc,, +kafka/metrics/stats/__pycache__/sensor.cpython-311.pyc,, +kafka/metrics/stats/__pycache__/total.cpython-311.pyc,, +kafka/metrics/stats/avg.py,sha256=6YDKXBfr7z0w4_yXBDhdycUcTiPvT8Rw3B_iD-c_Qi0,738 +kafka/metrics/stats/count.py,sha256=2of_mXwfzp9ZCLzEA2VOXr0PWkdLy4TSZL0uH5nF1Dw,547 +kafka/metrics/stats/histogram.py,sha256=5jNlZHOnHvGOpho-Zm0Rna6GcHy-CYjxPe612B5DHIk,3039 +kafka/metrics/stats/max_stat.py,sha256=n_90jTiHCgF193OCu2wtjUlJJxSkldW336OyEAexbv0,606 +kafka/metrics/stats/min_stat.py,sha256=xKzBc3tQjk4ieiGdvs9HqKn885mPV6yaDxCb2ANye8c,628 +kafka/metrics/stats/percentile.py,sha256=RkBL4L1AIBL5Mp74xIOt5lYJol4PSLNYmROcpD9bMb0,391 +kafka/metrics/stats/percentiles.py,sha256=9aYsUwZO6h-uqsYnx8ob9biWwWJ-ztRDwTZ8AXVRI3w,3027 +kafka/metrics/stats/rate.py,sha256=5vvGCUyqZF7QDeUtVu0g37UVRavkwqdRc7DldKlMGn0,4628 +kafka/metrics/stats/sampled_stat.py,sha256=zO9HwoJFZvuuDWj_OdckPeVpxUxhR5dhRXcLTL0-hUQ,3556 +kafka/metrics/stats/sensor.py,sha256=xQsbt3cqcBkJr9ccAkFabWgh9pdeMzggYSjhiStvAdo,5317 +kafka/metrics/stats/total.py,sha256=gS4F4bsSv4gp4R1Et_SQnx2KaoE8wZ5SY9X10xf6bic,446 +kafka/partitioner/__init__.py,sha256=Fks3C5_kokVWYw1Ad5wv0sVVzaaBtOejL-2bIL1yRII,158 +kafka/partitioner/__pycache__/__init__.cpython-311.pyc,, +kafka/partitioner/__pycache__/default.cpython-311.pyc,, +kafka/partitioner/default.py,sha256=tW-RC1PWIPRDEbeEAaPTLn-00oiZnXoVouEk9AnYE4w,2879 +kafka/producer/__init__.py,sha256=i3Wxih0NHjmqCkRNE54ial8fBp9siqabUE6ZGyL6oX8,122 +kafka/producer/__pycache__/__init__.cpython-311.pyc,, +kafka/producer/__pycache__/future.cpython-311.pyc,, +kafka/producer/__pycache__/kafka.cpython-311.pyc,, +kafka/producer/__pycache__/record_accumulator.cpython-311.pyc,, +kafka/producer/__pycache__/sender.cpython-311.pyc,, +kafka/producer/__pycache__/transaction_manager.cpython-311.pyc,, +kafka/producer/future.py,sha256=UC3-g9QlgVFmbitrtMXVpeP0Pbvr7xl2kcw6bAehKG8,2983 +kafka/producer/kafka.py,sha256=oGO-UxoVZEFdBLOQ7zEqeDJWXMxKyUdNV-pCRU3jZmg,53302 +kafka/producer/record_accumulator.py,sha256=xNkHOCmganxDfa3W_Y3iBLT4RaAOZi0Lix-mUzsp2aQ,28170 +kafka/producer/sender.py,sha256=8-TLTw6vQO7AheWSDPI33cQdWMyTDxi1k-pkXuUb9k0,37789 +kafka/producer/transaction_manager.py,sha256=q3e9Lc9o-ofWvjT9FbHdTQH08XQBeRtoQEcQHGcnp7g,41535 +kafka/protocol/__init__.py,sha256=T1RBBlTH3zze0Cr1RqemPD4Z1b3IUDRmLOBfZTsPgLs,1184 +kafka/protocol/__pycache__/__init__.cpython-311.pyc,, +kafka/protocol/__pycache__/abstract.cpython-311.pyc,, +kafka/protocol/__pycache__/add_offsets_to_txn.cpython-311.pyc,, +kafka/protocol/__pycache__/add_partitions_to_txn.cpython-311.pyc,, +kafka/protocol/__pycache__/admin.cpython-311.pyc,, +kafka/protocol/__pycache__/api.cpython-311.pyc,, +kafka/protocol/__pycache__/api_versions.cpython-311.pyc,, +kafka/protocol/__pycache__/broker_api_versions.cpython-311.pyc,, +kafka/protocol/__pycache__/commit.cpython-311.pyc,, +kafka/protocol/__pycache__/end_txn.cpython-311.pyc,, +kafka/protocol/__pycache__/fetch.cpython-311.pyc,, +kafka/protocol/__pycache__/find_coordinator.cpython-311.pyc,, +kafka/protocol/__pycache__/frame.cpython-311.pyc,, +kafka/protocol/__pycache__/group.cpython-311.pyc,, +kafka/protocol/__pycache__/init_producer_id.cpython-311.pyc,, +kafka/protocol/__pycache__/list_offsets.cpython-311.pyc,, +kafka/protocol/__pycache__/message.cpython-311.pyc,, +kafka/protocol/__pycache__/metadata.cpython-311.pyc,, +kafka/protocol/__pycache__/offset_for_leader_epoch.cpython-311.pyc,, +kafka/protocol/__pycache__/parser.cpython-311.pyc,, +kafka/protocol/__pycache__/pickle.cpython-311.pyc,, +kafka/protocol/__pycache__/produce.cpython-311.pyc,, +kafka/protocol/__pycache__/sasl_authenticate.cpython-311.pyc,, +kafka/protocol/__pycache__/sasl_handshake.cpython-311.pyc,, +kafka/protocol/__pycache__/struct.cpython-311.pyc,, +kafka/protocol/__pycache__/txn_offset_commit.cpython-311.pyc,, +kafka/protocol/__pycache__/types.cpython-311.pyc,, +kafka/protocol/abstract.py,sha256=uOnuf6D8OTkL31Tp2QXG3VlzDPHVELGzM_bpSVa-_iw,424 +kafka/protocol/add_offsets_to_txn.py,sha256=Hya7vg6yqsV9XGLKWi8rES_VuN47-H4fdycg6mx8GLY,1486 +kafka/protocol/add_partitions_to_txn.py,sha256=mEz0DTrhY1ZN_GoITCQKRo-DO_HPc7A9r9eo_z1aF10,1766 +kafka/protocol/admin.py,sha256=11zE9sVrb34QY6AwYVvvWiwg4iycnq9aDSONCiuE9bo,30720 +kafka/protocol/api.py,sha256=ZI7DYb85UTL4BuhpwKGAyAKEv4Dl_y69AEW78M233lg,3813 +kafka/protocol/api_versions.py,sha256=VC9pvorLM--BE2uw0SvpeeMQPfWmcOvTgDFigLuGuVM,3546 +kafka/protocol/broker_api_versions.py,sha256=LA_pdbfsJClBxQPi01u5yVRLUIpZRUz6LiqhSsj8cgU,16523 +kafka/protocol/commit.py,sha256=-COlx8lTVCI6Zg4ZebDnsX4Wy_V69Kjw8V85FRd3Ics,8627 +kafka/protocol/end_txn.py,sha256=I0C1cxjkgLR0ri3QbEcmTkNoVT-lh7Bv_KaZO2wZUD0,1293 +kafka/protocol/fetch.py,sha256=G3Hh0AWGbEiWmiC83-b0t2jGlRLBovYz_ecfSp-vMEE,11214 +kafka/protocol/find_coordinator.py,sha256=sROaXxqAje2BSaNunh6QMTdVcR7uil5kz-woZqdg2BY,1697 +kafka/protocol/frame.py,sha256=SejRBK5urTD-2UzcVM2OxTgC73qDxfF3nlBPl9sjsfY,734 +kafka/protocol/group.py,sha256=SClv-Ntrj4IdEEL23L-S8XtCbELYojiue7BYwV8WjPc,7172 +kafka/protocol/init_producer_id.py,sha256=bFiPJTLTFXHNth2lg53mg9_N8znUBvpqR1PO31-RUlw,1117 +kafka/protocol/list_offsets.py,sha256=3kvif8X-B2LBSpR3qwbkGYyJ0GLKbQdENDGpxWV0scQ,4887 +kafka/protocol/message.py,sha256=9wNwJvfl9bsrdk_YcxbmAFjgvwZ5R1EBLSif2KILg9s,7657 +kafka/protocol/metadata.py,sha256=X99gdDTQJZWDrEa0sGWbwVED9cpKZ2zax6s6cMnN4xw,7403 +kafka/protocol/offset_for_leader_epoch.py,sha256=aunp-LMIuwcCsKwvgBZ8OcUhcgb0blaq5d3PAh22JOo,4304 +kafka/protocol/parser.py,sha256=OB3yebOp6JSQpl-5fEpV1_0SdAtYkiqIk6ffDIkHzu0,6859 +kafka/protocol/pickle.py,sha256=FGEv-1l1aXY3TogqzCwOS1gCNpEg6-xNLbrysqNdHcs,920 +kafka/protocol/produce.py,sha256=JDWCRY5B7eSL3vp0N977MIgYMrR2qxgrbUZrqQMlGWk,6540 +kafka/protocol/sasl_authenticate.py,sha256=HaFAHPRhCKgyGEoJ5LwGffcpMUBNCphgBgXCsITLho8,1150 +kafka/protocol/sasl_handshake.py,sha256=WzQh9HBRemXvShrczkN4rd4SM-hNdes1khMzPRvcRQQ,982 +kafka/protocol/struct.py,sha256=DxktwrPp1pj4b7Vne2H5n-xWjgx9jpCmf0ydZkeIjoY,2380 +kafka/protocol/txn_offset_commit.py,sha256=_6Wr-SabUd9q09Tj9oG43AVZcqlW3LYbqXNW1Pvk9vs,2250 +kafka/protocol/types.py,sha256=f-lwfCqsJulYnBT1loek_KbMnZZqItN4YRIONjg3kbE,10244 +kafka/record/__init__.py,sha256=Q20hP_R5XX3AEnAlPkpoWzTLShESvxUT2OLXmI-JYEQ,129 +kafka/record/__pycache__/__init__.cpython-311.pyc,, +kafka/record/__pycache__/_crc32c.cpython-311.pyc,, +kafka/record/__pycache__/abc.cpython-311.pyc,, +kafka/record/__pycache__/default_records.cpython-311.pyc,, +kafka/record/__pycache__/legacy_records.cpython-311.pyc,, +kafka/record/__pycache__/memory_records.cpython-311.pyc,, +kafka/record/__pycache__/util.cpython-311.pyc,, +kafka/record/_crc32c.py,sha256=Ok-P62Yvg6D6rMGM9Z56OMjZWQlnps4xBbakg-sdxvI,5761 +kafka/record/abc.py,sha256=z1UYURHbD2RyyGRpVXKP598jck5eXU9p4M6iUo6ZSFo,4110 +kafka/record/default_records.py,sha256=IuICFp0soETihkp8bUyjjksqTlzU45o-UYmo8joLBmo,25992 +kafka/record/legacy_records.py,sha256=bm1Y24PLVgLKtWqamESKvMk9P01uw3aQ8Z8q2QHxJy8,18858 +kafka/record/memory_records.py,sha256=b7RFxvaQ93drXSk3o3_YB3FQlVoESoBlGj3Z5PD25n8,8874 +kafka/record/util.py,sha256=LDajBWdYVetmXts_t9Q76CxEx7njgC9LnjMgz9yPEMM,3556 +kafka/sasl/__init__.py,sha256=wUUGIKRe52J6Qekj7hSypg44vWTrkYsEdVafQC7cX5s,1106 +kafka/sasl/__pycache__/__init__.cpython-311.pyc,, +kafka/sasl/__pycache__/abc.cpython-311.pyc,, +kafka/sasl/__pycache__/gssapi.cpython-311.pyc,, +kafka/sasl/__pycache__/msk.cpython-311.pyc,, +kafka/sasl/__pycache__/oauth.cpython-311.pyc,, +kafka/sasl/__pycache__/plain.cpython-311.pyc,, +kafka/sasl/__pycache__/scram.cpython-311.pyc,, +kafka/sasl/__pycache__/sspi.cpython-311.pyc,, +kafka/sasl/abc.py,sha256=R0BZOk3AYEGyehiGbbg-LMRvFAlWZsh0fBiESgUpBYw,657 +kafka/sasl/gssapi.py,sha256=pwLxXqcmJJxkuFQUoEfX5PWgZxr-8TziuRCg9K7fO3E,4705 +kafka/sasl/msk.py,sha256=FCv0uUTQKjvR2gIGyiv-dlwIvkpvEtaHvhqhXtC2q8w,8101 +kafka/sasl/oauth.py,sha256=dh87tVi-dlS5lIzgYsC4m7IXUhlLdejaMb9Ua6oYaB0,3425 +kafka/sasl/plain.py,sha256=PMfoWT856wx6nF_LhpfPKEnD7BRNx5l6rDhAqxBnMWU,1317 +kafka/sasl/scram.py,sha256=77If2o9x-QZDBs2fqml17S-wGyR5YkOMr2nZxXrCW9c,5045 +kafka/sasl/sspi.py,sha256=RUIVyWCEdlJPV1oj7bdzG8gORvFyR_9Bt79TzIohwMM,5001 +kafka/serializer/__init__.py,sha256=_I4utl_8nNhcRzLLezFtwYX5akk6QKYmxa1HanRlYPU,103 +kafka/serializer/__pycache__/__init__.cpython-311.pyc,, +kafka/serializer/__pycache__/abstract.cpython-311.pyc,, +kafka/serializer/abstract.py,sha256=doiXDkMYt2SEHRarBdd8xVZKvr5S1qPdNEtl4syWA6Q,486 +kafka/socks5_wrapper.py,sha256=6woOaCTJXJ5e89_zdyW5BjOpyE4rCbYFH-kd-FeuPuk,9827 +kafka/structs.py,sha256=SJGzmLdV21jZyQ7247k0WFy16UiusgTHK3I-e4qzI-E,3058 +kafka/util.py,sha256=WGqI5yT1yWGgHqSuRF9Fi8ejpiB53SurMy7ABkYxJ2g,4584 +kafka/vendor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +kafka/vendor/__pycache__/__init__.cpython-311.pyc,, +kafka/vendor/__pycache__/enum34.cpython-311.pyc,, +kafka/vendor/__pycache__/selectors34.cpython-311.pyc,, +kafka/vendor/__pycache__/six.cpython-311.pyc,, +kafka/vendor/__pycache__/socketpair.cpython-311.pyc,, +kafka/vendor/enum34.py,sha256=-u-lxAiJMt6ru4Do7NUDY9OpeWkYJMksb2xengJawFE,31204 +kafka/vendor/selectors34.py,sha256=gxejLO4eXf8mRSGXaQiknPig3GdX1rtsZiYOQJVuAy8,20594 +kafka/vendor/six.py,sha256=lLBa9_HrANP5BMZ7twEzg1M3wofwPmXyptuWmHX0brY,34826 +kafka/vendor/socketpair.py,sha256=Fi3PoY1Okkppab720wFk1BhHXyjcw7hi5DwhqrYZH2Y,2737 +kafka/version.py,sha256=Vh0q00JWD6pn7UpRKd065A7-8g7Bv7yYCxnqmZMfsFY,23 +kafka_python-2.2.15.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +kafka_python-2.2.15.dist-info/METADATA,sha256=K9jQXj1ujRv2RCbdfjE07NblzS8mIlVycU1q_bMOtUc,9952 +kafka_python-2.2.15.dist-info/RECORD,, +kafka_python-2.2.15.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +kafka_python-2.2.15.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109 +kafka_python-2.2.15.dist-info/top_level.txt,sha256=IivJz7l5WHdLNDT6RIiVAlhjQzYRwGqBBmKHZ7WjPeM,6 diff --git a/venv/lib/python3.11/site-packages/kafka_python-2.2.15.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/kafka_python-2.2.15.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/kafka_python-2.2.15.dist-info/WHEEL b/venv/lib/python3.11/site-packages/kafka_python-2.2.15.dist-info/WHEEL new file mode 100644 index 0000000..5f133db --- /dev/null +++ b/venv/lib/python3.11/site-packages/kafka_python-2.2.15.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/venv/lib/python3.11/site-packages/kafka_python-2.2.15.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/kafka_python-2.2.15.dist-info/top_level.txt new file mode 100644 index 0000000..605f59b --- /dev/null +++ b/venv/lib/python3.11/site-packages/kafka_python-2.2.15.dist-info/top_level.txt @@ -0,0 +1 @@ +kafka diff --git a/venv/lib/python3.11/site-packages/kiwisolver-1.4.9.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/kiwisolver-1.4.9.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/kiwisolver-1.4.9.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/kiwisolver-1.4.9.dist-info/METADATA b/venv/lib/python3.11/site-packages/kiwisolver-1.4.9.dist-info/METADATA new file mode 100644 index 0000000..1f0723f --- /dev/null +++ b/venv/lib/python3.11/site-packages/kiwisolver-1.4.9.dist-info/METADATA @@ -0,0 +1,120 @@ +Metadata-Version: 2.4 +Name: kiwisolver +Version: 1.4.9 +Summary: A fast implementation of the Cassowary constraint solver +Author-email: The Nucleic Development Team +Maintainer-email: "Matthieu C. Dartiailh" +License: ========================= + The Kiwi licensing terms + ========================= + Kiwi is licensed under the terms of the Modified BSD License (also known as + New or Revised BSD), as follows: + + Copyright (c) 2013-2025, Nucleic Development Team + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + + Neither the name of the Nucleic Development Team nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + About Kiwi + ---------- + Chris Colbert began the Kiwi project in December 2013 in an effort to + create a blisteringly fast UI constraint solver. Chris is still the + project lead. + + The Nucleic Development Team is the set of all contributors to the Nucleic + project and its subprojects. + + The core team that coordinates development on GitHub can be found here: + http://github.com/nucleic. The current team consists of: + + * Chris Colbert + + Our Copyright Policy + -------------------- + Nucleic uses a shared copyright model. Each contributor maintains copyright + over their contributions to Nucleic. But, it is important to note that these + contributions are typically only changes to the repositories. Thus, the Nucleic + source code, in its entirety is not the copyright of any single person or + institution. Instead, it is the collective copyright of the entire Nucleic + Development Team. If individual contributors want to maintain a record of what + changes/contributions they have specific copyright on, they should indicate + their copyright in the commit message of the change, when they commit the + change to one of the Nucleic repositories. + + With this in mind, the following banner should be used in any source code file + to indicate the copyright and license terms: + + #------------------------------------------------------------------------------ + # Copyright (c) 2013-2025, Nucleic Development Team. + # + # Distributed under the terms of the Modified BSD License. + # + # The full license is in the file LICENSE, distributed with this software. + #------------------------------------------------------------------------------ + +Project-URL: homepage, https://github.com/nucleic/kiwi +Project-URL: documentation, https://kiwisolver.readthedocs.io/en/latest/ +Project-URL: repository, https://github.com/nucleic/kiwi +Project-URL: changelog, https://github.com/nucleic/kiwi/blob/main/releasenotes.rst +Classifier: License :: OSI Approved :: BSD License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Requires-Python: >=3.10 +Description-Content-Type: text/x-rst +License-File: LICENSE +Dynamic: license-file + +Welcome to Kiwi +=============== + +.. image:: https://github.com/nucleic/kiwi/workflows/Continuous%20Integration/badge.svg + :target: https://github.com/nucleic/kiwi/actions +.. image:: https://github.com/nucleic/kiwi/workflows/Documentation%20building/badge.svg + :target: https://github.com/nucleic/kiwi/actions +.. image:: https://codecov.io/gh/nucleic/kiwi/branch/main/graph/badge.svg + :target: https://codecov.io/gh/nucleic/kiwi +.. image:: https://readthedocs.org/projects/kiwisolver/badge/?version=latest + :target: https://kiwisolver.readthedocs.io/en/latest/?badge=latest + :alt: Documentation Status + +Kiwi is an efficient C++ implementation of the Cassowary constraint solving +algorithm. Kiwi is an implementation of the algorithm based on the +`seminal Cassowary paper `_. +It is *not* a refactoring of the original C++ solver. Kiwi has been designed +from the ground up to be lightweight and fast. Kiwi ranges from 10x to 500x +faster than the original Cassowary solver with typical use cases gaining a 40x +improvement. Memory savings are consistently > 5x. + +In addition to the C++ solver, Kiwi ships with hand-rolled Python bindings for +Python 3.7+. diff --git a/venv/lib/python3.11/site-packages/kiwisolver-1.4.9.dist-info/RECORD b/venv/lib/python3.11/site-packages/kiwisolver-1.4.9.dist-info/RECORD new file mode 100644 index 0000000..530b8ca --- /dev/null +++ b/venv/lib/python3.11/site-packages/kiwisolver-1.4.9.dist-info/RECORD @@ -0,0 +1,13 @@ +kiwisolver-1.4.9.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +kiwisolver-1.4.9.dist-info/METADATA,sha256=ytNKN7XLZs-huWdvM3IQN64thQubDHE3dHih1r8MfUA,6260 +kiwisolver-1.4.9.dist-info/RECORD,, +kiwisolver-1.4.9.dist-info/WHEEL,sha256=_CFvICYDmZlAYHt8L7Zn3n-BGLj8dkZLQPp22Piy5JE,151 +kiwisolver-1.4.9.dist-info/licenses/LICENSE,sha256=zyB5nTLeDu-i6pBOOsUSL0eu1dNSkwdR62FyR2LEnZA,3289 +kiwisolver-1.4.9.dist-info/top_level.txt,sha256=xqwWj7oSHlpIjcw2QMJb8puTFPdjDBO78AZp9gjTh9c,11 +kiwisolver/__init__.py,sha256=4Sa-MNI1lRh3K1n9LEgKBeZXVVI-uJrD-xsk16jYR2c,1013 +kiwisolver/__pycache__/__init__.cpython-311.pyc,, +kiwisolver/__pycache__/exceptions.cpython-311.pyc,, +kiwisolver/_cext.cpython-311-x86_64-linux-gnu.so,sha256=tPEEK3go9i9xHsTExLiXihctrdqN3Q52qDI4W5RXP80,5557080 +kiwisolver/_cext.pyi,sha256=-w7Otijw7d-9Rh_1-EiYtRn2L-STdvjoArh02szr8tA,8657 +kiwisolver/exceptions.py,sha256=haGECAifFjVqwT5esQ1sEiqsajW6Jydip16ieHPeL04,1242 +kiwisolver/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/venv/lib/python3.11/site-packages/kiwisolver-1.4.9.dist-info/WHEEL b/venv/lib/python3.11/site-packages/kiwisolver-1.4.9.dist-info/WHEEL new file mode 100644 index 0000000..7cc1bea --- /dev/null +++ b/venv/lib/python3.11/site-packages/kiwisolver-1.4.9.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: false +Tag: cp311-cp311-manylinux_2_17_x86_64 +Tag: cp311-cp311-manylinux2014_x86_64 + diff --git a/venv/lib/python3.11/site-packages/kiwisolver-1.4.9.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/kiwisolver-1.4.9.dist-info/licenses/LICENSE new file mode 100644 index 0000000..cd42fdb --- /dev/null +++ b/venv/lib/python3.11/site-packages/kiwisolver-1.4.9.dist-info/licenses/LICENSE @@ -0,0 +1,71 @@ +========================= + The Kiwi licensing terms +========================= +Kiwi is licensed under the terms of the Modified BSD License (also known as +New or Revised BSD), as follows: + +Copyright (c) 2013-2025, Nucleic Development Team + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this +list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +Neither the name of the Nucleic Development Team nor the names of its +contributors may be used to endorse or promote products derived from this +software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +About Kiwi +---------- +Chris Colbert began the Kiwi project in December 2013 in an effort to +create a blisteringly fast UI constraint solver. Chris is still the +project lead. + +The Nucleic Development Team is the set of all contributors to the Nucleic +project and its subprojects. + +The core team that coordinates development on GitHub can be found here: +http://github.com/nucleic. The current team consists of: + +* Chris Colbert + +Our Copyright Policy +-------------------- +Nucleic uses a shared copyright model. Each contributor maintains copyright +over their contributions to Nucleic. But, it is important to note that these +contributions are typically only changes to the repositories. Thus, the Nucleic +source code, in its entirety is not the copyright of any single person or +institution. Instead, it is the collective copyright of the entire Nucleic +Development Team. If individual contributors want to maintain a record of what +changes/contributions they have specific copyright on, they should indicate +their copyright in the commit message of the change, when they commit the +change to one of the Nucleic repositories. + +With this in mind, the following banner should be used in any source code file +to indicate the copyright and license terms: + +#------------------------------------------------------------------------------ +# Copyright (c) 2013-2025, Nucleic Development Team. +# +# Distributed under the terms of the Modified BSD License. +# +# The full license is in the file LICENSE, distributed with this software. +#------------------------------------------------------------------------------ diff --git a/venv/lib/python3.11/site-packages/kiwisolver-1.4.9.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/kiwisolver-1.4.9.dist-info/top_level.txt new file mode 100644 index 0000000..9b85884 --- /dev/null +++ b/venv/lib/python3.11/site-packages/kiwisolver-1.4.9.dist-info/top_level.txt @@ -0,0 +1 @@ +kiwisolver diff --git a/venv/lib/python3.11/site-packages/markupsafe-3.0.3.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/markupsafe-3.0.3.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/markupsafe-3.0.3.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/markupsafe-3.0.3.dist-info/METADATA b/venv/lib/python3.11/site-packages/markupsafe-3.0.3.dist-info/METADATA new file mode 100644 index 0000000..0282933 --- /dev/null +++ b/venv/lib/python3.11/site-packages/markupsafe-3.0.3.dist-info/METADATA @@ -0,0 +1,74 @@ +Metadata-Version: 2.4 +Name: MarkupSafe +Version: 3.0.3 +Summary: Safely add untrusted strings to HTML/XML markup. +Maintainer-email: Pallets +License-Expression: BSD-3-Clause +Project-URL: Donate, https://palletsprojects.com/donate +Project-URL: Documentation, https://markupsafe.palletsprojects.com/ +Project-URL: Changes, https://markupsafe.palletsprojects.com/page/changes/ +Project-URL: Source, https://github.com/pallets/markupsafe/ +Project-URL: Chat, https://discord.gg/pallets +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content +Classifier: Topic :: Text Processing :: Markup :: HTML +Classifier: Typing :: Typed +Requires-Python: >=3.9 +Description-Content-Type: text/markdown +License-File: LICENSE.txt +Dynamic: license-file + +
+ +# MarkupSafe + +MarkupSafe implements a text object that escapes characters so it is +safe to use in HTML and XML. Characters that have special meanings are +replaced so that they display as the actual characters. This mitigates +injection attacks, meaning untrusted user input can safely be displayed +on a page. + + +## Examples + +```pycon +>>> from markupsafe import Markup, escape + +>>> # escape replaces special characters and wraps in Markup +>>> escape("") +Markup('<script>alert(document.cookie);</script>') + +>>> # wrap in Markup to mark text "safe" and prevent escaping +>>> Markup("Hello") +Markup('hello') + +>>> escape(Markup("Hello")) +Markup('hello') + +>>> # Markup is a str subclass +>>> # methods and operators escape their arguments +>>> template = Markup("Hello {name}") +>>> template.format(name='"World"') +Markup('Hello "World"') +``` + +## Donate + +The Pallets organization develops and supports MarkupSafe and other +popular packages. In order to grow the community of contributors and +users, and allow the maintainers to devote more time to the projects, +[please donate today][]. + +[please donate today]: https://palletsprojects.com/donate + +## Contributing + +See our [detailed contributing documentation][contrib] for many ways to +contribute, including reporting issues, requesting features, asking or answering +questions, and making PRs. + +[contrib]: https://palletsprojects.com/contributing/ diff --git a/venv/lib/python3.11/site-packages/markupsafe-3.0.3.dist-info/RECORD b/venv/lib/python3.11/site-packages/markupsafe-3.0.3.dist-info/RECORD new file mode 100644 index 0000000..f1c6ef2 --- /dev/null +++ b/venv/lib/python3.11/site-packages/markupsafe-3.0.3.dist-info/RECORD @@ -0,0 +1,14 @@ +markupsafe-3.0.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +markupsafe-3.0.3.dist-info/METADATA,sha256=ErTMYaf6KIz3Zn7j8hN4bZYZ21f7M_9vk0r7y1wS7IE,2690 +markupsafe-3.0.3.dist-info/RECORD,, +markupsafe-3.0.3.dist-info/WHEEL,sha256=BvA_i88wcFUl5ehXLgmhwyDL4XPGrCKn6CTUA9axFDE,190 +markupsafe-3.0.3.dist-info/licenses/LICENSE.txt,sha256=SJqOEQhQntmKN7uYPhHg9-HTHwvY-Zp5yESOf_N9B-o,1475 +markupsafe-3.0.3.dist-info/top_level.txt,sha256=qy0Plje5IJuvsCBjejJyhDCjEAdcDLK_2agVcex8Z6U,11 +markupsafe/__init__.py,sha256=u1fLcNCx0P8E7LT6z3OXf6ipnSmgm6aefne5y-d7o40,13248 +markupsafe/__pycache__/__init__.cpython-311.pyc,, +markupsafe/__pycache__/_native.cpython-311.pyc,, +markupsafe/_native.py,sha256=hSLs8Jmz5aqayuengJJ3kdT5PwNpBWpKrmQSdipndC8,210 +markupsafe/_speedups.c,sha256=t3tC6oVV7-bmKUqvCO5pVSky-G8ACIXpWMaJwkNtJjg,4327 +markupsafe/_speedups.cpython-311-x86_64-linux-gnu.so,sha256=iMZOx1dp9GBnUeqkrvWXCeMDP9Hybj8x-UDRoTJavq8,43936 +markupsafe/_speedups.pyi,sha256=ENd1bYe7gbBUf2ywyYWOGUpnXOHNJ-cgTNqetlW8h5k,41 +markupsafe/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/venv/lib/python3.11/site-packages/markupsafe-3.0.3.dist-info/WHEEL b/venv/lib/python3.11/site-packages/markupsafe-3.0.3.dist-info/WHEEL new file mode 100644 index 0000000..35bcd5d --- /dev/null +++ b/venv/lib/python3.11/site-packages/markupsafe-3.0.3.dist-info/WHEEL @@ -0,0 +1,7 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: false +Tag: cp311-cp311-manylinux_2_17_x86_64 +Tag: cp311-cp311-manylinux2014_x86_64 +Tag: cp311-cp311-manylinux_2_28_x86_64 + diff --git a/venv/lib/python3.11/site-packages/markupsafe-3.0.3.dist-info/licenses/LICENSE.txt b/venv/lib/python3.11/site-packages/markupsafe-3.0.3.dist-info/licenses/LICENSE.txt new file mode 100644 index 0000000..9d227a0 --- /dev/null +++ b/venv/lib/python3.11/site-packages/markupsafe-3.0.3.dist-info/licenses/LICENSE.txt @@ -0,0 +1,28 @@ +Copyright 2010 Pallets + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.11/site-packages/markupsafe-3.0.3.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/markupsafe-3.0.3.dist-info/top_level.txt new file mode 100644 index 0000000..75bf729 --- /dev/null +++ b/venv/lib/python3.11/site-packages/markupsafe-3.0.3.dist-info/top_level.txt @@ -0,0 +1 @@ +markupsafe diff --git a/venv/lib/python3.11/site-packages/matplotlib-3.10.7.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/matplotlib-3.10.7.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/matplotlib-3.10.7.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/matplotlib-3.10.7.dist-info/LICENSE b/venv/lib/python3.11/site-packages/matplotlib-3.10.7.dist-info/LICENSE new file mode 100644 index 0000000..ec51537 --- /dev/null +++ b/venv/lib/python3.11/site-packages/matplotlib-3.10.7.dist-info/LICENSE @@ -0,0 +1,99 @@ +License agreement for matplotlib versions 1.3.0 and later +========================================================= + +1. This LICENSE AGREEMENT is between the Matplotlib Development Team +("MDT"), and the Individual or Organization ("Licensee") accessing and +otherwise using matplotlib software in source or binary form and its +associated documentation. + +2. Subject to the terms and conditions of this License Agreement, MDT +hereby grants Licensee a nonexclusive, royalty-free, world-wide license +to reproduce, analyze, test, perform and/or display publicly, prepare +derivative works, distribute, and otherwise use matplotlib +alone or in any derivative version, provided, however, that MDT's +License Agreement and MDT's notice of copyright, i.e., "Copyright (c) +2012- Matplotlib Development Team; All Rights Reserved" are retained in +matplotlib alone or in any derivative version prepared by +Licensee. + +3. In the event Licensee prepares a derivative work that is based on or +incorporates matplotlib or any part thereof, and wants to +make the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to matplotlib . + +4. MDT is making matplotlib available to Licensee on an "AS +IS" basis. MDT MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, MDT MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF MATPLOTLIB +WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. + +5. MDT SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF MATPLOTLIB + FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR +LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING +MATPLOTLIB , OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF +THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between MDT and +Licensee. This License Agreement does not grant permission to use MDT +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using matplotlib , +Licensee agrees to be bound by the terms and conditions of this License +Agreement. + +License agreement for matplotlib versions prior to 1.3.0 +======================================================== + +1. This LICENSE AGREEMENT is between John D. Hunter ("JDH"), and the +Individual or Organization ("Licensee") accessing and otherwise using +matplotlib software in source or binary form and its associated +documentation. + +2. Subject to the terms and conditions of this License Agreement, JDH +hereby grants Licensee a nonexclusive, royalty-free, world-wide license +to reproduce, analyze, test, perform and/or display publicly, prepare +derivative works, distribute, and otherwise use matplotlib +alone or in any derivative version, provided, however, that JDH's +License Agreement and JDH's notice of copyright, i.e., "Copyright (c) +2002-2011 John D. Hunter; All Rights Reserved" are retained in +matplotlib alone or in any derivative version prepared by +Licensee. + +3. In the event Licensee prepares a derivative work that is based on or +incorporates matplotlib or any part thereof, and wants to +make the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to matplotlib. + +4. JDH is making matplotlib available to Licensee on an "AS +IS" basis. JDH MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, JDH MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF MATPLOTLIB +WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. + +5. JDH SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF MATPLOTLIB + FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR +LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING +MATPLOTLIB , OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF +THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between JDH and +Licensee. This License Agreement does not grant permission to use JDH +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using matplotlib, +Licensee agrees to be bound by the terms and conditions of this License +Agreement. \ No newline at end of file diff --git a/venv/lib/python3.11/site-packages/matplotlib-3.10.7.dist-info/METADATA b/venv/lib/python3.11/site-packages/matplotlib-3.10.7.dist-info/METADATA new file mode 100644 index 0000000..c8608ba --- /dev/null +++ b/venv/lib/python3.11/site-packages/matplotlib-3.10.7.dist-info/METADATA @@ -0,0 +1,215 @@ +Metadata-Version: 2.1 +Name: matplotlib +Version: 3.10.7 +Summary: Python plotting package +Author: John D. Hunter, Michael Droettboom +Author-Email: Unknown +License: License agreement for matplotlib versions 1.3.0 and later + ========================================================= + + 1. This LICENSE AGREEMENT is between the Matplotlib Development Team + ("MDT"), and the Individual or Organization ("Licensee") accessing and + otherwise using matplotlib software in source or binary form and its + associated documentation. + + 2. Subject to the terms and conditions of this License Agreement, MDT + hereby grants Licensee a nonexclusive, royalty-free, world-wide license + to reproduce, analyze, test, perform and/or display publicly, prepare + derivative works, distribute, and otherwise use matplotlib + alone or in any derivative version, provided, however, that MDT's + License Agreement and MDT's notice of copyright, i.e., "Copyright (c) + 2012- Matplotlib Development Team; All Rights Reserved" are retained in + matplotlib alone or in any derivative version prepared by + Licensee. + + 3. In the event Licensee prepares a derivative work that is based on or + incorporates matplotlib or any part thereof, and wants to + make the derivative work available to others as provided herein, then + Licensee hereby agrees to include in any such work a brief summary of + the changes made to matplotlib . + + 4. MDT is making matplotlib available to Licensee on an "AS + IS" basis. MDT MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR + IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, MDT MAKES NO AND + DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS + FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF MATPLOTLIB + WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. + + 5. MDT SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF MATPLOTLIB + FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR + LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING + MATPLOTLIB , OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF + THE POSSIBILITY THEREOF. + + 6. This License Agreement will automatically terminate upon a material + breach of its terms and conditions. + + 7. Nothing in this License Agreement shall be deemed to create any + relationship of agency, partnership, or joint venture between MDT and + Licensee. This License Agreement does not grant permission to use MDT + trademarks or trade name in a trademark sense to endorse or promote + products or services of Licensee, or any third party. + + 8. By copying, installing or otherwise using matplotlib , + Licensee agrees to be bound by the terms and conditions of this License + Agreement. + + License agreement for matplotlib versions prior to 1.3.0 + ======================================================== + + 1. This LICENSE AGREEMENT is between John D. Hunter ("JDH"), and the + Individual or Organization ("Licensee") accessing and otherwise using + matplotlib software in source or binary form and its associated + documentation. + + 2. Subject to the terms and conditions of this License Agreement, JDH + hereby grants Licensee a nonexclusive, royalty-free, world-wide license + to reproduce, analyze, test, perform and/or display publicly, prepare + derivative works, distribute, and otherwise use matplotlib + alone or in any derivative version, provided, however, that JDH's + License Agreement and JDH's notice of copyright, i.e., "Copyright (c) + 2002-2011 John D. Hunter; All Rights Reserved" are retained in + matplotlib alone or in any derivative version prepared by + Licensee. + + 3. In the event Licensee prepares a derivative work that is based on or + incorporates matplotlib or any part thereof, and wants to + make the derivative work available to others as provided herein, then + Licensee hereby agrees to include in any such work a brief summary of + the changes made to matplotlib. + + 4. JDH is making matplotlib available to Licensee on an "AS + IS" basis. JDH MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR + IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, JDH MAKES NO AND + DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS + FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF MATPLOTLIB + WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. + + 5. JDH SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF MATPLOTLIB + FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR + LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING + MATPLOTLIB , OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF + THE POSSIBILITY THEREOF. + + 6. This License Agreement will automatically terminate upon a material + breach of its terms and conditions. + + 7. Nothing in this License Agreement shall be deemed to create any + relationship of agency, partnership, or joint venture between JDH and + Licensee. This License Agreement does not grant permission to use JDH + trademarks or trade name in a trademark sense to endorse or promote + products or services of Licensee, or any third party. + + 8. By copying, installing or otherwise using matplotlib, + Licensee agrees to be bound by the terms and conditions of this License + Agreement. +Classifier: Development Status :: 5 - Production/Stable +Classifier: Framework :: Matplotlib +Classifier: Intended Audience :: Science/Research +Classifier: Intended Audience :: Education +Classifier: License :: OSI Approved :: Python Software Foundation License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Topic :: Scientific/Engineering :: Visualization +Project-URL: Homepage, https://matplotlib.org +Project-URL: Download, https://matplotlib.org/stable/install/index.html +Project-URL: Documentation, https://matplotlib.org +Project-URL: Source Code, https://github.com/matplotlib/matplotlib +Project-URL: Bug Tracker, https://github.com/matplotlib/matplotlib/issues +Project-URL: Forum, https://discourse.matplotlib.org/ +Project-URL: Donate, https://numfocus.org/donate-to-matplotlib +Requires-Python: >=3.10 +Requires-Dist: contourpy>=1.0.1 +Requires-Dist: cycler>=0.10 +Requires-Dist: fonttools>=4.22.0 +Requires-Dist: kiwisolver>=1.3.1 +Requires-Dist: numpy>=1.23 +Requires-Dist: packaging>=20.0 +Requires-Dist: pillow>=8 +Requires-Dist: pyparsing>=3 +Requires-Dist: python-dateutil>=2.7 +Provides-Extra: dev +Requires-Dist: meson-python<0.17.0,>=0.13.1; extra == "dev" +Requires-Dist: pybind11!=2.13.3,>=2.13.2; extra == "dev" +Requires-Dist: setuptools_scm>=7; extra == "dev" +Requires-Dist: setuptools>=64; extra == "dev" +Description-Content-Type: text/markdown + +[![PyPi](https://img.shields.io/pypi/v/matplotlib)](https://pypi.org/project/matplotlib/) +[![Conda](https://img.shields.io/conda/vn/conda-forge/matplotlib)](https://anaconda.org/conda-forge/matplotlib) +[![Downloads](https://img.shields.io/pypi/dm/matplotlib)](https://pypi.org/project/matplotlib) +[![NUMFocus](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A)](https://numfocus.org) + +[![Discourse help forum](https://img.shields.io/badge/help_forum-discourse-blue.svg)](https://discourse.matplotlib.org) +[![Gitter](https://badges.gitter.im/matplotlib/matplotlib.svg)](https://gitter.im/matplotlib/matplotlib) +[![GitHub issues](https://img.shields.io/badge/issue_tracking-github-blue.svg)](https://github.com/matplotlib/matplotlib/issues) +[![Contributing](https://img.shields.io/badge/PR-Welcome-%23FF8300.svg?)](https://matplotlib.org/stable/devel/index.html) + +[![GitHub actions status](https://github.com/matplotlib/matplotlib/workflows/Tests/badge.svg)](https://github.com/matplotlib/matplotlib/actions?query=workflow%3ATests) +[![Azure pipelines status](https://dev.azure.com/matplotlib/matplotlib/_apis/build/status/matplotlib.matplotlib?branchName=main)](https://dev.azure.com/matplotlib/matplotlib/_build/latest?definitionId=1&branchName=main) +[![AppVeyor status](https://ci.appveyor.com/api/projects/status/github/matplotlib/matplotlib?branch=main&svg=true)](https://ci.appveyor.com/project/matplotlib/matplotlib) +[![Codecov status](https://codecov.io/github/matplotlib/matplotlib/badge.svg?branch=main&service=github)](https://app.codecov.io/gh/matplotlib/matplotlib) +[![EffVer Versioning](https://img.shields.io/badge/version_scheme-EffVer-0097a7)](https://jacobtomlinson.dev/effver) + +![Matplotlib logotype](https://matplotlib.org/_static/logo2.svg) + +Matplotlib is a comprehensive library for creating static, animated, and +interactive visualizations in Python. + +Check out our [home page](https://matplotlib.org/) for more information. + +![image](https://matplotlib.org/_static/readme_preview.png) + +Matplotlib produces publication-quality figures in a variety of hardcopy +formats and interactive environments across platforms. Matplotlib can be +used in Python scripts, Python/IPython shells, web application servers, +and various graphical user interface toolkits. + +## Install + +See the [install +documentation](https://matplotlib.org/stable/users/installing/index.html), +which is generated from `/doc/install/index.rst` + +## Contribute + +You've discovered a bug or something else you want to change — excellent! + +You've worked out a way to fix it — even better! + +You want to tell us about it — best of all! + +Start at the [contributing +guide](https://matplotlib.org/devdocs/devel/contribute.html)! + +## Contact + +[Discourse](https://discourse.matplotlib.org/) is the discussion forum +for general questions and discussions and our recommended starting +point. + +Our active mailing lists (which are mirrored on Discourse) are: + +- [Users](https://mail.python.org/mailman/listinfo/matplotlib-users) + mailing list: +- [Announcement](https://mail.python.org/mailman/listinfo/matplotlib-announce) + mailing list: +- [Development](https://mail.python.org/mailman/listinfo/matplotlib-devel) + mailing list: + +[Gitter](https://gitter.im/matplotlib/matplotlib) is for coordinating +development and asking questions directly related to contributing to +matplotlib. + +## Citing Matplotlib + +If Matplotlib contributes to a project that leads to publication, please +acknowledge this by citing Matplotlib. + +[A ready-made citation +entry](https://matplotlib.org/stable/users/project/citing.html) is +available. diff --git a/venv/lib/python3.11/site-packages/matplotlib-3.10.7.dist-info/RECORD b/venv/lib/python3.11/site-packages/matplotlib-3.10.7.dist-info/RECORD new file mode 100644 index 0000000..164e8a6 --- /dev/null +++ b/venv/lib/python3.11/site-packages/matplotlib-3.10.7.dist-info/RECORD @@ -0,0 +1,883 @@ +__pycache__/pylab.cpython-311.pyc,, +matplotlib-3.10.7.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +matplotlib-3.10.7.dist-info/LICENSE,sha256=WhqB6jAXKMi7opM9qDLAzWIina8giToCSrPVMkRGjbw,4830 +matplotlib-3.10.7.dist-info/METADATA,sha256=_Yvvshgf49EfZHfDWdj0UrT7yQ9paaaJPgkEbZNeFnc,11264 +matplotlib-3.10.7.dist-info/RECORD,, +matplotlib-3.10.7.dist-info/WHEEL,sha256=6uXuBuTHKYVHX38njLnDjCYRk1Z5gwaXJtzFqt6LRKw,137 +matplotlib/__init__.py,sha256=xsR9Hs8l15NPOMilXDuOEW1BqgjY7PqC9q6K9Ykhajo,55823 +matplotlib/__init__.pyi,sha256=s0YJ8fkGVioZL9bcBtyYgCq_MbY8LRrQUtmaD3XaIxQ,3439 +matplotlib/__pycache__/__init__.cpython-311.pyc,, +matplotlib/__pycache__/_afm.cpython-311.pyc,, +matplotlib/__pycache__/_animation_data.cpython-311.pyc,, +matplotlib/__pycache__/_blocking_input.cpython-311.pyc,, +matplotlib/__pycache__/_cm.cpython-311.pyc,, +matplotlib/__pycache__/_cm_bivar.cpython-311.pyc,, +matplotlib/__pycache__/_cm_listed.cpython-311.pyc,, +matplotlib/__pycache__/_cm_multivar.cpython-311.pyc,, +matplotlib/__pycache__/_color_data.cpython-311.pyc,, +matplotlib/__pycache__/_constrained_layout.cpython-311.pyc,, +matplotlib/__pycache__/_docstring.cpython-311.pyc,, +matplotlib/__pycache__/_enums.cpython-311.pyc,, +matplotlib/__pycache__/_fontconfig_pattern.cpython-311.pyc,, +matplotlib/__pycache__/_internal_utils.cpython-311.pyc,, +matplotlib/__pycache__/_layoutgrid.cpython-311.pyc,, +matplotlib/__pycache__/_mathtext.cpython-311.pyc,, +matplotlib/__pycache__/_mathtext_data.cpython-311.pyc,, +matplotlib/__pycache__/_pylab_helpers.cpython-311.pyc,, +matplotlib/__pycache__/_text_helpers.cpython-311.pyc,, +matplotlib/__pycache__/_tight_bbox.cpython-311.pyc,, +matplotlib/__pycache__/_tight_layout.cpython-311.pyc,, +matplotlib/__pycache__/_type1font.cpython-311.pyc,, +matplotlib/__pycache__/_version.cpython-311.pyc,, +matplotlib/__pycache__/animation.cpython-311.pyc,, +matplotlib/__pycache__/artist.cpython-311.pyc,, +matplotlib/__pycache__/axis.cpython-311.pyc,, +matplotlib/__pycache__/backend_bases.cpython-311.pyc,, +matplotlib/__pycache__/backend_managers.cpython-311.pyc,, +matplotlib/__pycache__/backend_tools.cpython-311.pyc,, +matplotlib/__pycache__/bezier.cpython-311.pyc,, +matplotlib/__pycache__/category.cpython-311.pyc,, +matplotlib/__pycache__/cbook.cpython-311.pyc,, +matplotlib/__pycache__/cm.cpython-311.pyc,, +matplotlib/__pycache__/collections.cpython-311.pyc,, +matplotlib/__pycache__/colorbar.cpython-311.pyc,, +matplotlib/__pycache__/colorizer.cpython-311.pyc,, +matplotlib/__pycache__/colors.cpython-311.pyc,, +matplotlib/__pycache__/container.cpython-311.pyc,, +matplotlib/__pycache__/contour.cpython-311.pyc,, +matplotlib/__pycache__/dates.cpython-311.pyc,, +matplotlib/__pycache__/dviread.cpython-311.pyc,, +matplotlib/__pycache__/figure.cpython-311.pyc,, +matplotlib/__pycache__/font_manager.cpython-311.pyc,, +matplotlib/__pycache__/gridspec.cpython-311.pyc,, +matplotlib/__pycache__/hatch.cpython-311.pyc,, +matplotlib/__pycache__/image.cpython-311.pyc,, +matplotlib/__pycache__/inset.cpython-311.pyc,, +matplotlib/__pycache__/layout_engine.cpython-311.pyc,, +matplotlib/__pycache__/legend.cpython-311.pyc,, +matplotlib/__pycache__/legend_handler.cpython-311.pyc,, +matplotlib/__pycache__/lines.cpython-311.pyc,, +matplotlib/__pycache__/markers.cpython-311.pyc,, +matplotlib/__pycache__/mathtext.cpython-311.pyc,, +matplotlib/__pycache__/mlab.cpython-311.pyc,, +matplotlib/__pycache__/offsetbox.cpython-311.pyc,, +matplotlib/__pycache__/patches.cpython-311.pyc,, +matplotlib/__pycache__/path.cpython-311.pyc,, +matplotlib/__pycache__/patheffects.cpython-311.pyc,, +matplotlib/__pycache__/pylab.cpython-311.pyc,, +matplotlib/__pycache__/pyplot.cpython-311.pyc,, +matplotlib/__pycache__/quiver.cpython-311.pyc,, +matplotlib/__pycache__/rcsetup.cpython-311.pyc,, +matplotlib/__pycache__/sankey.cpython-311.pyc,, +matplotlib/__pycache__/scale.cpython-311.pyc,, +matplotlib/__pycache__/spines.cpython-311.pyc,, +matplotlib/__pycache__/stackplot.cpython-311.pyc,, +matplotlib/__pycache__/streamplot.cpython-311.pyc,, +matplotlib/__pycache__/table.cpython-311.pyc,, +matplotlib/__pycache__/texmanager.cpython-311.pyc,, +matplotlib/__pycache__/text.cpython-311.pyc,, +matplotlib/__pycache__/textpath.cpython-311.pyc,, +matplotlib/__pycache__/ticker.cpython-311.pyc,, +matplotlib/__pycache__/transforms.cpython-311.pyc,, +matplotlib/__pycache__/typing.cpython-311.pyc,, +matplotlib/__pycache__/units.cpython-311.pyc,, +matplotlib/__pycache__/widgets.cpython-311.pyc,, +matplotlib/_afm.py,sha256=cWe1Ib37T6ZyHbR6_hPuzAjotMmi32y-kDB-i28iyqE,16692 +matplotlib/_animation_data.py,sha256=JJJbbc-fMdPjkbQ7ng9BHL5i91VTDHQVTtEdWOvWBAI,7986 +matplotlib/_api/__init__.py,sha256=7Fs57FtnCmbyr_NwuGWe0EhfXOYrBw22iKMU9onGc_k,13799 +matplotlib/_api/__init__.pyi,sha256=XNL-oGkk1MZPtSXk3rHlC3jLWZxsElmpNpOongKq8qA,2246 +matplotlib/_api/__pycache__/__init__.cpython-311.pyc,, +matplotlib/_api/__pycache__/deprecation.cpython-311.pyc,, +matplotlib/_api/deprecation.py,sha256=XJxksSV8ukS8kSVmsGPS0zgv1ffFa8WNaRLAk31dmOM,20091 +matplotlib/_api/deprecation.pyi,sha256=A8De57amX2GlZSrDYwVYCMxHFb8AsYGrH0k_bCxuJus,2217 +matplotlib/_blocking_input.py,sha256=VHNsxvX2mTx_xBknd30MSicVlRXS4dCDe9hDctbV5rk,1224 +matplotlib/_c_internal_utils.cpython-311-x86_64-linux-gnu.so,sha256=IVjogR0qOUoox0UEkOA7reJIFueo6PtAP13g6gcBu84,271432 +matplotlib/_c_internal_utils.pyi,sha256=Z3bLs9pMGXrmZjt-4_A-x4321bLP-B54xDbr4PIgUfc,377 +matplotlib/_cm.py,sha256=PuYIAkUpz4u4aiUjvdV5njIfG0J_MQY9pM2Yz3j3KXs,68014 +matplotlib/_cm_bivar.py,sha256=gpmKiSxsWoVGWIifseh0goND7Y7zTWJKsznr_QkEtDg,97461 +matplotlib/_cm_listed.py,sha256=3a02mPUSnOsXkqRFNxKGwIvJCAKY5lezBUrqGcllnvk,135004 +matplotlib/_cm_multivar.py,sha256=0UjNFW7Sytj1t31QD99ebfr-al7NmCpWhKUOyq9VzK8,6630 +matplotlib/_color_data.py,sha256=k-wdTi6ArJxksqBfMT-7Uy2qWz8XX4Th5gsjf32CwmM,34780 +matplotlib/_color_data.pyi,sha256=RdBRk01yuf3jYVlCwG351tIBCxehizkZMnKs9c8gnOw,170 +matplotlib/_constrained_layout.py,sha256=XX_2elqHukF3toeEDupwQPlN_8UEv3-yGKlR0A92n74,31485 +matplotlib/_docstring.py,sha256=u9yJorJidI8k1W8S01SIMqNmh5VOMVc-AqyES66EEdk,4435 +matplotlib/_docstring.pyi,sha256=6ze5DoqZaFy6BQ5Z8vtDiJwSOXhBcpZJlkM5enI9cuE,800 +matplotlib/_enums.py,sha256=euD2sj2FIbQMzIPA4rCrII_y8RVzaMyEBKsSdBQaUb4,6175 +matplotlib/_enums.pyi,sha256=K7j_kDwGOnx37CYnXhwfJ9NJBGeet45KvAj0om05RUs,326 +matplotlib/_fontconfig_pattern.py,sha256=hCpupToheqJJpISVEN3FNv6WZZPVaoKOuqGMmD3Wxh4,4365 +matplotlib/_image.cpython-311-x86_64-linux-gnu.so,sha256=D7rHAMjTVrZIEbv3Ljl9KNPAKh8YYuzIhOhQ7hVLdAw,586224 +matplotlib/_image.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +matplotlib/_internal_utils.py,sha256=nhK6LLWYW93fBcsFiO09JmqFj2rgHEsGYFOeaC7HRKw,2140 +matplotlib/_layoutgrid.py,sha256=mFB9asZVol2aV9hLBpdntuG5x1isKUrajF-3TUhCgso,21676 +matplotlib/_mathtext.py,sha256=KnNxS6r_YRzato7XwQ17SMCmVxHPI_91hSAubJJRKow,107636 +matplotlib/_mathtext_data.py,sha256=9y__7jf3bzgOmD2lEYW3QpgsT-z9QDuiwRLVH7Wq8Pw,65067 +matplotlib/_path.cpython-311-x86_64-linux-gnu.so,sha256=dScemM2N1lKfBzrfaXWqqS7ZLIxIxEjp3UZC0I_8y1o,510928 +matplotlib/_path.pyi,sha256=yznyfzoUogH9vvi0vK68ga4Shlbrn5UBhAnLX8Ght1o,325 +matplotlib/_pylab_helpers.py,sha256=pJERytHDmXo2VP3sH9Qw6NwJP0hefNPQMUXCVntnoHI,4307 +matplotlib/_pylab_helpers.pyi,sha256=7OZKr-OL3ipVt1EDZ6e-tRwHASz-ijYfcIdlPczXhvQ,1012 +matplotlib/_qhull.cpython-311-x86_64-linux-gnu.so,sha256=teviyxAlJalAPUGvFmMzHx1FKbtxVutoIYBpMyJqcyU,772992 +matplotlib/_qhull.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +matplotlib/_text_helpers.py,sha256=nz1pvEp8756PCrn6KIY2M6vVA-beYUNODvvf4NnGF0g,2538 +matplotlib/_tight_bbox.py,sha256=ddJ5ViXulbPLocHr-RkWK27WJSuV2WXUx74jZyL0NOg,2787 +matplotlib/_tight_layout.py,sha256=A3vZKBmxci7w35OO9lxgfUqrRKgTr-N_dUza0M05WxE,12675 +matplotlib/_tri.cpython-311-x86_64-linux-gnu.so,sha256=MRFh24r1Bbh68BgoqQQ5_rwOhq4lK4BedYdRoLGO1NE,445408 +matplotlib/_tri.pyi,sha256=bFnu97pIlSboJT3ijQBw4YlZdlR1UzXYtI3DkEPVzeM,1429 +matplotlib/_type1font.py,sha256=c_PXvyOFQ4YCRQJ23snWNkdEhuZ4k0JbLe55zaeoXfQ,28409 +matplotlib/_version.py,sha256=qbaaDQaXfJSjlv6Dopir4jYnWHPR6yfkLYEwTRXzgQs,19 +matplotlib/animation.py,sha256=58vUSy_0M2Ve2GO5JcXsCHxCwr7TqaaMed-KNxN6Nno,73114 +matplotlib/animation.pyi,sha256=C8Fgmswh4um-qYgqPZNBEpXVaefRXi6e026pYjonLHg,6566 +matplotlib/artist.py,sha256=hfCGETRkHLfP-i4PmmNsc7syXyFTZi4HYvzyE8q9ak0,63293 +matplotlib/artist.pyi,sha256=9sR0w8Kvi1GaFV6IbUzOw9LvQkPEB8FP_uRvUcI6_hg,7336 +matplotlib/axes/__init__.py,sha256=aHE_zIjphIJkW4_1fyoFuEWTb7gCRewK5jNZWJHEdgM,351 +matplotlib/axes/__init__.pyi,sha256=HP1z2v-PboHQS4dQjvJ7XjUjX-zw6taZRTTB9oVKwYE,303 +matplotlib/axes/__pycache__/__init__.cpython-311.pyc,, +matplotlib/axes/__pycache__/_axes.cpython-311.pyc,, +matplotlib/axes/__pycache__/_base.cpython-311.pyc,, +matplotlib/axes/__pycache__/_secondary_axes.cpython-311.pyc,, +matplotlib/axes/_axes.py,sha256=CwBUFh4fIlJF4Km80apFeH9sPVBi-3OPTOnxqKveZ5Q,353841 +matplotlib/axes/_axes.pyi,sha256=fvlVj8AnKt52EOCgxJ5N_6_lb9n0gmXlOP7WGf2puNI,26116 +matplotlib/axes/_base.py,sha256=eXarXIkk1SiQRPa7Rdu_R6gDgHdm2l60Hh2RPtPTf7E,186445 +matplotlib/axes/_base.pyi,sha256=EX6xYlHGEMRWXoE85w-UfCkN7m990Gg5VFZJ44D0XmE,17058 +matplotlib/axes/_secondary_axes.py,sha256=Sew-LK57mDndUXb-9_VHzs5dJLQ6fh4nstZtfpZjui0,11887 +matplotlib/axes/_secondary_axes.pyi,sha256=GtU55YzLNN7XHMRQcAmcAxcdcN-FzHw1RAJpOiTcZFk,1414 +matplotlib/axis.py,sha256=bsPEyn4eMAnkTCbW4rxSm8ysPNYH2p_ur7RN_ZfZRps,104714 +matplotlib/axis.pyi,sha256=UO1-oCeHyB7Mrxxnuo0Qys2u_k8e6qTmz4B6-rHrWdw,10181 +matplotlib/backend_bases.py,sha256=5EaIYhLC7LdKrk0SYSNBiYW3G16KbbexndFhoOX7_jY,131953 +matplotlib/backend_bases.pyi,sha256=G6MqvmWf-y2SwhuhNF2qN8hmovxAkV1TJMbg4LzU9cM,16270 +matplotlib/backend_managers.py,sha256=RQheCO_cQBlaWsYMbAmswu0UPKU7bmLTI5LEFgotklA,11795 +matplotlib/backend_managers.pyi,sha256=agnuM0wiZRqSgqti2AgbKJijRLvEPNLOrSY8PEwLjFE,2253 +matplotlib/backend_tools.py,sha256=eCx84l8JBYayju5Ry1LUFyKLIrdgxmGUTJw72VNP1yo,33186 +matplotlib/backend_tools.pyi,sha256=lc3W6FcY0XhTb8Z8XAqQ6MBk_SV7WH41t7zjwAlQfmE,4122 +matplotlib/backends/__init__.py,sha256=JowJe-tDrUBMNJTiJATgiEuACpgdxsKnRCYa-nC255A,206 +matplotlib/backends/__pycache__/__init__.cpython-311.pyc,, +matplotlib/backends/__pycache__/_backend_gtk.cpython-311.pyc,, +matplotlib/backends/__pycache__/_backend_pdf_ps.cpython-311.pyc,, +matplotlib/backends/__pycache__/_backend_tk.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_agg.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_cairo.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_gtk3.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_gtk3agg.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_gtk3cairo.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_gtk4.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_gtk4agg.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_gtk4cairo.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_macosx.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_mixed.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_nbagg.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_pdf.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_pgf.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_ps.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_qt.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_qt5.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_qt5agg.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_qt5cairo.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_qtagg.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_qtcairo.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_svg.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_template.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_tkagg.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_tkcairo.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_webagg.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_webagg_core.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_wx.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_wxagg.cpython-311.pyc,, +matplotlib/backends/__pycache__/backend_wxcairo.cpython-311.pyc,, +matplotlib/backends/__pycache__/qt_compat.cpython-311.pyc,, +matplotlib/backends/__pycache__/registry.cpython-311.pyc,, +matplotlib/backends/_backend_agg.cpython-311-x86_64-linux-gnu.so,sha256=EuLv4ZZTKCUzOB0oSeFCz9q9u-7xuw_IP-BRNY-Vedw,771600 +matplotlib/backends/_backend_agg.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +matplotlib/backends/_backend_gtk.py,sha256=zNCmMOgjgZGfAIlxDU4ph02XMSSn0wIUoPQ4wsaeeAg,11274 +matplotlib/backends/_backend_pdf_ps.py,sha256=M0kjQpMlBoAim6Pdw8u3FqUIoXz4UwRv4mSzXPJPI44,5968 +matplotlib/backends/_backend_tk.py,sha256=zx9GZYgrcmTwDgUT3rPvU7YgW79sUbJIWQ-SJtEsH5s,44581 +matplotlib/backends/_macosx.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +matplotlib/backends/_tkagg.cpython-311-x86_64-linux-gnu.so,sha256=BZ3Ahw_fJQErF1K1jCuB_zpjKx8nUxET_O-cnUIzOqI,302640 +matplotlib/backends/_tkagg.pyi,sha256=1yKnYKSgNFesrb0ZI5RQCyTO4zONgHW5MrJ9vq4HzyI,379 +matplotlib/backends/backend_agg.py,sha256=Py_rXRbDTP0ZSrNB2O5Tmh5V8G5V9ViXH_YV5PTX9xw,19888 +matplotlib/backends/backend_cairo.py,sha256=Ah5M85Ppa8zYGOtLOizW0gzltjs3b4nD56qFeQR795U,18618 +matplotlib/backends/backend_gtk3.py,sha256=ZHf4CKhDGJvl8J3p6Sx_ZJBTgVetZBbaKWfnXKvNe0c,22277 +matplotlib/backends/backend_gtk3agg.py,sha256=aFJw05L5V-FyFSj_20l_FuC5piPf8fhKzft_m1NMhYc,2463 +matplotlib/backends/backend_gtk3cairo.py,sha256=zPsJzVm750if2LiQ9ybzsbX0rBhkP05XVvR9Lhz65so,1392 +matplotlib/backends/backend_gtk4.py,sha256=lkcW3cEKdASQ4vD6VHBUXvZQZEGvj5uenCVg4fHof_g,23541 +matplotlib/backends/backend_gtk4agg.py,sha256=00i3qpIt9Tcf_S74GOWbeckiPlfVJoQ2pBbhXDMthF0,1262 +matplotlib/backends/backend_gtk4cairo.py,sha256=sqWm3WgfNO8EsBjqzsD4U4cAc0f4q5SufYx7ZJacDf0,1125 +matplotlib/backends/backend_macosx.py,sha256=Gjbu1MKXIZpCM_luMG6U7qDgwotcGSegCvYw-NNWxeQ,7397 +matplotlib/backends/backend_mixed.py,sha256=Gf_2BDjy94FZRXALm0X3xRpK_1l8bZGSYCqnrSjrjME,4696 +matplotlib/backends/backend_nbagg.py,sha256=Au9RHfRufpI0ngT4R0K0CUVtAMFi9Bg-YhDunlj_Lko,8000 +matplotlib/backends/backend_pdf.py,sha256=DfFKdD4-wc7PPpfjXh8MAaaDppXUvLwicaMhXKgRhGw,105320 +matplotlib/backends/backend_pgf.py,sha256=GT7UHkAtHtnZcyV0GxHtUL9TTre9dji7Q6qexyi4AUU,39567 +matplotlib/backends/backend_ps.py,sha256=JRZZ6hsPcCfZmb-HczqyBulgow15yvoaHQe3Zcl1Zd4,51991 +matplotlib/backends/backend_qt.py,sha256=FjwUd9E2Fu2gCUhAVcJjXC--sAJsAoLUEHpMpa-IueE,42312 +matplotlib/backends/backend_qt5.py,sha256=kzfoo2ksEGsiWAa2LGtZYzKvfzqJJWyGOohohcRAu1g,787 +matplotlib/backends/backend_qt5agg.py,sha256=Vh7H8kqWH4X8a3VX2XZ2Vze9srwJavkNHAZxdJUz_bk,352 +matplotlib/backends/backend_qt5cairo.py,sha256=Go2Y0GVkXh1xh6x4F255_e5Xbwwws-OiD1Fc0805E78,292 +matplotlib/backends/backend_qtagg.py,sha256=ZjPtp5wR6tZGjbngPXRdVXYRhiPPrc5C0q2DmtdRkpY,3413 +matplotlib/backends/backend_qtcairo.py,sha256=e3SUG50VGqo68eS_8ebTCVQPa4AaxLxuo1JiWX4TIWg,1770 +matplotlib/backends/backend_svg.py,sha256=RQvPE9pR0xSu55NIMajX1WBqmmXbUWWwdWr2qMG-63k,51000 +matplotlib/backends/backend_template.py,sha256=qhWvXGiPeO2jvH61L3NCRYLReo--d4WJrQYanIaEmiE,8012 +matplotlib/backends/backend_tkagg.py,sha256=z9gB16fq2d-DUNpbeSDDLWaYmc0Jz3cDqNlBKhnQg0c,592 +matplotlib/backends/backend_tkcairo.py,sha256=JaGGXh8Y5FwVZtgryIucN941Olf_Pn6f4Re7Vuxl1-c,845 +matplotlib/backends/backend_webagg.py,sha256=jQhB9JA5tXcRwm6_7qlBg2-Q8_y-5hnv2IUNBPpCSbA,11014 +matplotlib/backends/backend_webagg_core.py,sha256=RZisxLS_pocuBRr5_lqBnF91flQA5upI8PiP8-Zitl0,18748 +matplotlib/backends/backend_wx.py,sha256=A4ztnMlVo-p1z77uZvJ-sJiyE21_QrujaTxo5P1glOY,51310 +matplotlib/backends/backend_wxagg.py,sha256=tzcwYyW34j4LPfHm9uhuHwepwZIcspi3y8oPC8FJkdk,1468 +matplotlib/backends/backend_wxcairo.py,sha256=TK-m3S0c1WipfKE2IpIPNeE4hoXPjfMvnWAzHpCXpFs,848 +matplotlib/backends/qt_compat.py,sha256=t_4aD4rg5maItXABLtVG6JIfuQwZnHwhMcjtz6AUwQs,5346 +matplotlib/backends/qt_editor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +matplotlib/backends/qt_editor/__pycache__/__init__.cpython-311.pyc,, +matplotlib/backends/qt_editor/__pycache__/_formlayout.cpython-311.pyc,, +matplotlib/backends/qt_editor/__pycache__/figureoptions.cpython-311.pyc,, +matplotlib/backends/qt_editor/_formlayout.py,sha256=QmqqqLO6waqeSGOKjDNUwjvon53Z7yqil5AfqfftDWY,20953 +matplotlib/backends/qt_editor/figureoptions.py,sha256=ljd7fCBiE0kk2ATNTaB5Dg8U6Gn7Lz4Vhi3XX-VbXeE,9851 +matplotlib/backends/registry.py,sha256=M2BHhBKbUJ8E2B2QExfVf8NbAK4ZFhJtmKRelBZZDh4,15480 +matplotlib/backends/web_backend/all_figures.html,sha256=44Y-GvIJbNlqQaKSW3kwVKpTxBSG1WsdYz3ZmYHlUsA,1753 +matplotlib/backends/web_backend/css/boilerplate.css,sha256=qui16QXRnQFNJDbcMasfH6KtN9hLjv8883U9cJmsVCE,2310 +matplotlib/backends/web_backend/css/fbm.css,sha256=wa4vNkNv7fQ_TufjJjecFZEzPMR6W8x6uXJga_wQILw,1456 +matplotlib/backends/web_backend/css/mpl.css,sha256=ruca_aA5kNnP-MZmLkriu8teVP1nIgwcFEpoB16j8Z4,1611 +matplotlib/backends/web_backend/css/page.css,sha256=ca3nO3TaPw7865PN5SlGJBTc2H3rBXQCMaFPywX29y4,1623 +matplotlib/backends/web_backend/ipython_inline_figure.html,sha256=wgSxUh3xpPAxOnZgSMnrhDM5hYncOfWRGgaCUezvedY,1311 +matplotlib/backends/web_backend/js/mpl.js,sha256=FAFf8huEmvymJbTHFUQ5pbQt48NtXmN_DNACP2dCDMw,24432 +matplotlib/backends/web_backend/js/mpl_tornado.js,sha256=Zs2Uzs7YUilG765nYvanCo-IK8HkHDtIum1KAq6bQ_w,302 +matplotlib/backends/web_backend/js/nbagg_mpl.js,sha256=F-By4ZjOSmwpNAkxUUxUk35qCjGlf0B28Z0aOyfpxDM,9514 +matplotlib/backends/web_backend/single_figure.html,sha256=wEBwF602JLHErBUEXiS6jXqmxYAIzHpa3MMFrnev6rs,1357 +matplotlib/bezier.py,sha256=ahJ1BRJoTbcxJoNmF1mCYc96mWs5jSM4DOK58jYaXkU,19049 +matplotlib/bezier.pyi,sha256=itubQt_U1IKnQ508bhy6J8LSpaspvZIeOmJqg7JvOmU,2586 +matplotlib/category.py,sha256=UsZ8rbADAH96YfpjD-N1DLTcS_cQwlszIIQ2ZRaiWm4,7377 +matplotlib/cbook.py,sha256=nF2hNC_ryiJcec58Cnp_0mAGSD0LfsnjbzUuCH4p-Os,80020 +matplotlib/cbook.pyi,sha256=YkPZz_bsTYQJQ_wKx-qbsJYLhy2t2nCyvLNjJyiRtpw,6037 +matplotlib/cm.py,sha256=5xav-BvJ4pWSVdvGql4oYc4EpA-R6OuUP5xjrZCMKvg,10350 +matplotlib/cm.pyi,sha256=Ot5j2zDHYTra4kKuTwxYp7X5TsNwg_cJuYa7BxmQz-A,939 +matplotlib/collections.py,sha256=5AcX3lTsKD1ObSOkLr-irzYPfdJxsNrgw5dAD886vCE,96311 +matplotlib/collections.pyi,sha256=uZ4fPdq34oghdEtS1UkY7P0oOE2oPUzvS0Cr09yktaQ,10775 +matplotlib/colorbar.py,sha256=-PwV3xkczcyPq9Ki_zfpQdP_1EqOFBzoeUSsMlUF2cE,60687 +matplotlib/colorbar.pyi,sha256=C1NzjMWFKm01rPUUr15Yjz1WB0pGakJQeatJO7G0mNs,4966 +matplotlib/colorizer.py,sha256=RzE0zjqB6elpketKidy6n-RRDbYF98speEIOIMfIFb4,25180 +matplotlib/colorizer.pyi,sha256=B_5-rEvNo4DblSifLodf3OVVEc3bTGsIYqqaQdU_4Tw,3308 +matplotlib/colors.py,sha256=h1YV59y4WvstOPC0x8eZzwHYItal7VjjVcyVS3niaSM,137303 +matplotlib/colors.pyi,sha256=XhCi3MtgSozOY5FATtPUHyKO4xMrvi7TvbCAl714Uxc,14908 +matplotlib/container.py,sha256=Y6v4j79gMk8QDYfrdOqbbJHH0BoOIO9enz4dtlaBSJU,4565 +matplotlib/container.pyi,sha256=DdthHVj1-bQQV3VcpMD1uIPLXVUKyKhWMXy8yCniK1I,1805 +matplotlib/contour.py,sha256=wpMtrMZEiDYPRuFbZ592HvQqn4NOBySfM17detKoenY,68391 +matplotlib/contour.pyi,sha256=X4DSH0u1YFUvKxuoAv8YbmVOJTJ-wbHig4lznzhsI0U,5300 +matplotlib/dates.py,sha256=xfcFY3g3AsW9isnEIKFGj4gXq0Xeoxox_3fxNCDQ01c,66306 +matplotlib/dviread.py,sha256=BqQg0fqXD_TmABJPSWDC-H2azt7B53NfOE1SC6mbXiI,42590 +matplotlib/dviread.pyi,sha256=5fps3GiPf1ibKY1TH6__kNEiJ9xhpVgzgait6jo09Hc,2139 +matplotlib/figure.py,sha256=CNPMl0QCxhr3h3WGcd271pE4Xtv4rapRWuUSFSNJSuc,141862 +matplotlib/figure.pyi,sha256=rROP8wvPmeSwTKoJwFaWsCHFpZjfgDk_7HE0wPfZQRg,14914 +matplotlib/font_manager.py,sha256=tSpOlZqiNUdIn3gQCFN_-nOLZ08WXBqj_unP6o1JyIw,57651 +matplotlib/font_manager.pyi,sha256=Jse1IshOdjhXHdjcvTxtos3rgsuECbRJzc264A-ZGus,5052 +matplotlib/ft2font.cpython-311-x86_64-linux-gnu.so,sha256=VzrNHypXLqZYweegkC-iHpgtQrdZDVVDAF_KZ-NdAUk,1443216 +matplotlib/ft2font.pyi,sha256=yuDEfdw-7VyFuAHts-sMRm4VKV7IxYresBxEQgNOaPM,9253 +matplotlib/gridspec.py,sha256=s6RkXEk4ORWsMHjXkK98ZvosZ5D-qgenVNk0hIvMwOw,29786 +matplotlib/gridspec.pyi,sha256=3IQi_Q5KdwyPT_J_FWcngJ7iUOOCH4PSm42USm16Ofg,5099 +matplotlib/hatch.py,sha256=tfEM0DQxyLkUE87lHduMNlE55GKINtAZo4Y_YsAmSJo,7453 +matplotlib/hatch.pyi,sha256=OEFkNe8TgrBli_MDMW99Tvhr44S4ySPaYQomjVXpUUA,2098 +matplotlib/image.py,sha256=MLFg06J2xllm1tmgDnlLYw8gTy7__NGnkf4SZP-3mSs,69765 +matplotlib/image.pyi,sha256=R88aGGu6wP0lFKRudaM7iNxGgq4kh9uX9QRaZSorTLQ,7066 +matplotlib/inset.py,sha256=fJV8VMMY07_97iJR3_RO892WAKE7myfV_Gqg-qK99vg,10154 +matplotlib/inset.pyi,sha256=c-IVW14bpqb3qu7bz0EabvNXJnZwJAXEXoQoIcrL8ns,968 +matplotlib/layout_engine.py,sha256=mwRNh13mIQ-wpjQVgBaB_LWKN1AiQTWldg-X9nLmVok,11433 +matplotlib/layout_engine.pyi,sha256=9cKFTFPCvwmKIygTUvrvOq1iWnFYme9Shniiv2QbC74,1788 +matplotlib/legend.py,sha256=5NDPbWqkiIkP1FJ3sLNqmew2jkNjawQf2G_BqZNG_u4,55343 +matplotlib/legend.pyi,sha256=hn-MNF3SPHtSUqIhwVXTebU_Nzk_wIh5iKgf7AEAZRg,5364 +matplotlib/legend_handler.py,sha256=ekhZTT1X9yQd7TNIRdu_vui5FR2CTmI0NWTFJTqF1N4,29872 +matplotlib/legend_handler.pyi,sha256=3VEfeioGIAxhd3mhg4PXETZjCKf4OlXL0jz1MAFGtos,7655 +matplotlib/lines.py,sha256=BG3xhTuzYDFjzf-k5CcQc_V7W4HlQl4CL7RCQQz0EC8,57920 +matplotlib/lines.pyi,sha256=3tG7tD8GZ8YPphw4nmkgS9SfdLV8icW36bv61jb9RlU,6081 +matplotlib/markers.py,sha256=g6ukerZ5n_sD_Enk0eJA4kkTvOOp8AfSGBq60PHot-E,33708 +matplotlib/markers.pyi,sha256=FFFBsvilnbd8-5L04U70kfVoyBwc18w_fZ6DysTj9p0,1678 +matplotlib/mathtext.py,sha256=yTlpUfnKxzrFl7XNjyuC-xMBBnxUufU6GVwQyhQAI2o,5104 +matplotlib/mathtext.pyi,sha256=RCVxYGQ_CJ6wC7v_HkqoouU2PhtcvlJ1ffIyxzAC-so,1045 +matplotlib/mlab.py,sha256=T71p4x0KJNVGrwUuoDdgcjWQucIQTuVrocOC98Zdwsc,30210 +matplotlib/mlab.pyi,sha256=mkR7wbJS9eCQfCFsUWoXnqrAy0kcE3cVqpFZCeOGC_Q,3583 +matplotlib/mpl-data/fonts/afm/cmex10.afm,sha256=blR3ERmrVBV5XKkAnDCj4NMeYVgzH7cXtJ3u59u9GuE,12070 +matplotlib/mpl-data/fonts/afm/cmmi10.afm,sha256=5qwEOpedEo76bDUahyuuF1q0cD84tRrX-VQ4p3MlfBo,10416 +matplotlib/mpl-data/fonts/afm/cmr10.afm,sha256=WDvgC_D3UkGJg9u-J0U6RaT02lF4oz3lQxHtg1r3lYw,10101 +matplotlib/mpl-data/fonts/afm/cmsy10.afm,sha256=AbmzvCVWBceHRfmRfeJ9E6xzOQTFLk0U1zDfpf3_MaM,8295 +matplotlib/mpl-data/fonts/afm/cmtt10.afm,sha256=4ji7_mTpeWMa93o_UHBWPKCnqsBfhJJNllat1lJArP4,6501 +matplotlib/mpl-data/fonts/afm/pagd8a.afm,sha256=jjFrigwkTpYLqa26cpzZvKQNBo-PuF4bmDVqaM4pMWw,17183 +matplotlib/mpl-data/fonts/afm/pagdo8a.afm,sha256=sgNQdeYyx8J-itGw9h31y95aMBiTCRvmNSPTXwwS7xg,17255 +matplotlib/mpl-data/fonts/afm/pagk8a.afm,sha256=ZUtfHPloNqcvGMHMxaKDSlshhOcjwheUx143RwpGdIU,17241 +matplotlib/mpl-data/fonts/afm/pagko8a.afm,sha256=Yj1wBg6Jsqqz1KBfhRoJ3ACR-CMQol8Fj_ZM5NZ1gDk,17346 +matplotlib/mpl-data/fonts/afm/pbkd8a.afm,sha256=Zl5o6J_di9Y5j2EpHtjew-_sfg7-WoeVmO9PzOYSTUc,15157 +matplotlib/mpl-data/fonts/afm/pbkdi8a.afm,sha256=JAOno930iTyfZILMf11vWtiaTgrJcPpP6FRTRhEMMD4,15278 +matplotlib/mpl-data/fonts/afm/pbkl8a.afm,sha256=UJqJjOJ6xQDgDBLX157mKpohIJFVmHM-N6x2-DiGv14,15000 +matplotlib/mpl-data/fonts/afm/pbkli8a.afm,sha256=AWislZ2hDbs0ox_qOWREugsbS8_8lpL48LPMR40qpi0,15181 +matplotlib/mpl-data/fonts/afm/pcrb8a.afm,sha256=6j1TS2Uc7DWSc-8l42TGDc1u0Fg8JspeWfxFayjUwi8,15352 +matplotlib/mpl-data/fonts/afm/pcrbo8a.afm,sha256=smg3mjl9QaBDtQIt06ko5GvaxLsO9QtTvYANuE5hfG0,15422 +matplotlib/mpl-data/fonts/afm/pcrr8a.afm,sha256=7nxFr0Ehz4E5KG_zSE5SZOhxRH8MyfnCbw-7x5wu7tw,15339 +matplotlib/mpl-data/fonts/afm/pcrro8a.afm,sha256=NKEz7XtdFkh9cA8MvY-S3UOZlV2Y_J3tMEWFFxj7QSg,15443 +matplotlib/mpl-data/fonts/afm/phvb8a.afm,sha256=NAx4M4HjL7vANCJbc-tk04Vkol-T0oaXeQ3T2h-XUvM,17155 +matplotlib/mpl-data/fonts/afm/phvb8an.afm,sha256=8e_myD-AQkNF7q9XNLb2m76_lX2TUr3a5wog_LIE1sk,17086 +matplotlib/mpl-data/fonts/afm/phvbo8a.afm,sha256=8fkBRmJ-SWY2YrBg8fFyjJyrJp8daQ6JPO6LvhM8xPI,17230 +matplotlib/mpl-data/fonts/afm/phvbo8an.afm,sha256=aeVRvV4r15BBvxuRJ0MG8ZHuH2HViuIiCYkvuapmkmM,17195 +matplotlib/mpl-data/fonts/afm/phvl8a.afm,sha256=IyMYM-bgl-gI6rG0EuZZ2OLzlxJfGeSh8xqsh0t-eJQ,15627 +matplotlib/mpl-data/fonts/afm/phvlo8a.afm,sha256=s12C-eNnIDHJ_UVbuiprjxBjCiHIbS3Y8ORTC-qTpuI,15729 +matplotlib/mpl-data/fonts/afm/phvr8a.afm,sha256=Kt8KaRidts89EBIK29X2JomDUEDxvroeaJz_RNTi6r4,17839 +matplotlib/mpl-data/fonts/afm/phvr8an.afm,sha256=lL5fAHTRwODl-sB5mH7IfsD1tnnea4yRUK-_Ca2bQHM,17781 +matplotlib/mpl-data/fonts/afm/phvro8a.afm,sha256=3KqK3eejiR4hIFBUynuSX_4lMdE2V2T58xOF8lX-fwc,17919 +matplotlib/mpl-data/fonts/afm/phvro8an.afm,sha256=Vx9rRf3YfasMY7tz-njSxz67xHKk-fNkN7yBi0X2IP0,17877 +matplotlib/mpl-data/fonts/afm/pncb8a.afm,sha256=aoXepTcDQtQa_mspflMJkEFKefzXHoyjz6ioJVI0YNc,16028 +matplotlib/mpl-data/fonts/afm/pncbi8a.afm,sha256=pCWW1MYgy0EmvwaYsaYJaAI_LfrsKmDANHu7Pk0RaiU,17496 +matplotlib/mpl-data/fonts/afm/pncr8a.afm,sha256=0CIB2BLe9r-6_Wl5ObRTTf98UOrezmGQ8ZOuBX5kLks,16665 +matplotlib/mpl-data/fonts/afm/pncri8a.afm,sha256=5R-pLZOnaHNG8pjV6MP3Ai-d2OTQYR_cYCb5zQhzfSU,16920 +matplotlib/mpl-data/fonts/afm/pplb8a.afm,sha256=3EzUbNnXr5Ft5eFLY00W9oWu59rHORgDXUuJaOoKN58,15662 +matplotlib/mpl-data/fonts/afm/pplbi8a.afm,sha256=X_9tVspvrcMer3OS8qvdwjFFqpAXYZneyCL2NHA902g,15810 +matplotlib/mpl-data/fonts/afm/pplr8a.afm,sha256=ijMb497FDJ9nVdVMb21F7W3-cu9sb_9nF0oriFpSn8k,15752 +matplotlib/mpl-data/fonts/afm/pplri8a.afm,sha256=8KITbarcUUMi_hdoRLLmNHtlqs0TtOSKqtPFft7X5nY,15733 +matplotlib/mpl-data/fonts/afm/psyr.afm,sha256=Iyt8ajE4B2Tm34oBj2pKtctIf9kPfq05suQefq8p3Ro,9644 +matplotlib/mpl-data/fonts/afm/ptmb8a.afm,sha256=bL1fA1NC4_nW14Zrnxz4nHlXJb4dzELJPvodqKnYeMg,17983 +matplotlib/mpl-data/fonts/afm/ptmbi8a.afm,sha256=-_Ui6XlKaFTHEnkoS_-1GtIr5VtGa3gFQ2ezLOYHs08,18070 +matplotlib/mpl-data/fonts/afm/ptmr8a.afm,sha256=IEcsWcmzJyjCwkgsw4o6hIMmzlyXUglJat9s1PZNnEU,17942 +matplotlib/mpl-data/fonts/afm/ptmri8a.afm,sha256=49fQMg5fIGguZ7rgc_2styMK55Pv5bPTs7wCzqpcGpk,18068 +matplotlib/mpl-data/fonts/afm/putb8a.afm,sha256=qMaHTdpkrNL-m4DWhjpxJCSmgYkCv1qIzLlFfM0rl40,21532 +matplotlib/mpl-data/fonts/afm/putbi8a.afm,sha256=g7AVJyiTxeMpNk_1cSfmYgM09uNUfPlZyWGv3D1vcAk,21931 +matplotlib/mpl-data/fonts/afm/putr8a.afm,sha256=XYmNC5GQgSVAZKTIYdYeNksE6znNm9GF_0SmQlriqx0,22148 +matplotlib/mpl-data/fonts/afm/putri8a.afm,sha256=i7fVe-iLyLtQxCfAa4IxdxH-ufcHmMk7hbCGG5TxAY4,21891 +matplotlib/mpl-data/fonts/afm/pzcmi8a.afm,sha256=wyuoIWEZOcoXrSl1tPzLkEahik7kGi91JJj-tkFRG4A,16250 +matplotlib/mpl-data/fonts/afm/pzdr.afm,sha256=MyjLAnzKYRdQBfof1W3k_hf30MvqOkqL__G22mQ5xww,9467 +matplotlib/mpl-data/fonts/pdfcorefonts/Courier-Bold.afm,sha256=sIDDI-B82VZ3C0mI_mHFITCZ7PVn37AIYMv1CrHX4sE,15333 +matplotlib/mpl-data/fonts/pdfcorefonts/Courier-BoldOblique.afm,sha256=zg61QobD3YU9UBfCXmvmhBNaFKno-xj8sY0b2RpgfLw,15399 +matplotlib/mpl-data/fonts/pdfcorefonts/Courier-Oblique.afm,sha256=vRQm5j1sTUN4hicT1PcVZ9P9DTTUHhEzfPXqUUzVZhE,15441 +matplotlib/mpl-data/fonts/pdfcorefonts/Courier.afm,sha256=Mdcq2teZEBJrIqVXnsnhee7oZnTs6-P8_292kWGTrw4,15335 +matplotlib/mpl-data/fonts/pdfcorefonts/Helvetica-Bold.afm,sha256=i2l4gcjuYXoXf28uK7yIVwuf0rnw6J7PwPVQeHj5iPw,69269 +matplotlib/mpl-data/fonts/pdfcorefonts/Helvetica-BoldOblique.afm,sha256=Um5O6qK11DXLt8uj_0IoWkc84TKqHK3bObSKUswQqvY,69365 +matplotlib/mpl-data/fonts/pdfcorefonts/Helvetica-Oblique.afm,sha256=hVYDg2b52kqtbVeCzmiv25bW1yYdpkZS-LXlGREN2Rs,74392 +matplotlib/mpl-data/fonts/pdfcorefonts/Helvetica.afm,sha256=23cvKDD7bQAJB3kdjSahJSTZaUOppznlIO6FXGslyW8,74292 +matplotlib/mpl-data/fonts/pdfcorefonts/Symbol.afm,sha256=P5UaoXr4y0qh4SiMa5uqijDT6ZDr2-jPmj1ayry593E,9740 +matplotlib/mpl-data/fonts/pdfcorefonts/Times-Bold.afm,sha256=cQTmr2LFPwKQE_sGQageMcmFicjye16mKJslsJLHQyE,64251 +matplotlib/mpl-data/fonts/pdfcorefonts/Times-BoldItalic.afm,sha256=pzWOdycm6RqocBWgAVY5Jq0z3Fp7LuqWgLNMx4q6OFw,59642 +matplotlib/mpl-data/fonts/pdfcorefonts/Times-Italic.afm,sha256=bK5puSMpGT_YUILwyJrXoxjfj7XJOdfv5TQ_iKsJRzw,66328 +matplotlib/mpl-data/fonts/pdfcorefonts/Times-Roman.afm,sha256=hhNrUnpazuDDKD1WpraPxqPWCYLrO7D7bMVOg-zI13o,60460 +matplotlib/mpl-data/fonts/pdfcorefonts/ZapfDingbats.afm,sha256=ZuOmt9GcKofjdOq8kqhPhtAIhOwkL2rTJTmZxAjFakA,9527 +matplotlib/mpl-data/fonts/pdfcorefonts/readme.txt,sha256=MRv8ppSITYYAb7lt5EOw9DWWNZIblfxsFhu5TQE7cpI,828 +matplotlib/mpl-data/fonts/ttf/DejaVuSans-Bold.ttf,sha256=sYS4njwQdfIva3FXW2_CDUlys8_TsjMiym_Vltyu8Wc,704128 +matplotlib/mpl-data/fonts/ttf/DejaVuSans-BoldOblique.ttf,sha256=bt8CgxYBhq9FHL7nHnuEXy5Mq_Jku5ks5mjIPCVGXm8,641720 +matplotlib/mpl-data/fonts/ttf/DejaVuSans-Oblique.ttf,sha256=zN90s1DxH9PdV3TeUOXmNGoaXaH1t9X7g1kGZel6UhM,633840 +matplotlib/mpl-data/fonts/ttf/DejaVuSans.ttf,sha256=P99pyr8GBJ6nCgC1kZNA4s4ebQKwzDxLRPtoAb0eDSI,756072 +matplotlib/mpl-data/fonts/ttf/DejaVuSansDisplay.ttf,sha256=ggmdz7paqGjN_CdFGYlSX-MpL3N_s8ngMozpzvWWUvY,25712 +matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-Bold.ttf,sha256=uq2ppRcv4giGJRr_BDP8OEYZEtXa8HKH577lZiCo2pY,331536 +matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-BoldOblique.ttf,sha256=ppCBwVx2yCfgonpaf1x0thNchDSZlVSV_6jCDTqYKIs,253116 +matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-Oblique.ttf,sha256=KAUoE_enCfyJ9S0ZLcmV708P3Fw9e3OknWhJsZFtDNA,251472 +matplotlib/mpl-data/fonts/ttf/DejaVuSansMono.ttf,sha256=YC7Ia4lIz82VZIL-ZPlMNshndwFJ7y95HUYT9EO87LM,340240 +matplotlib/mpl-data/fonts/ttf/DejaVuSerif-Bold.ttf,sha256=w3U_Lta8Zz8VhG3EWt2-s7nIcvMvsY_VOiHxvvHtdnY,355692 +matplotlib/mpl-data/fonts/ttf/DejaVuSerif-BoldItalic.ttf,sha256=2T7-x6nS6CZ2jRou6VuVhw4V4pWZqE80hK8d4c7C4YE,347064 +matplotlib/mpl-data/fonts/ttf/DejaVuSerif-Italic.ttf,sha256=PnmU-8VPoQzjNSpC1Uj63X2crbacsRCbydlg9trFfwQ,345612 +matplotlib/mpl-data/fonts/ttf/DejaVuSerif.ttf,sha256=EHJElW6ZYrnpb6zNxVGCXgrgiYrhNzcTPhuSGi_TX_o,379740 +matplotlib/mpl-data/fonts/ttf/DejaVuSerifDisplay.ttf,sha256=KRTzLkfHd8J75Wd6-ufbTeefnkXeb8kJfZlJwjwU99U,14300 +matplotlib/mpl-data/fonts/ttf/LICENSE_DEJAVU,sha256=11k43sCY8G8Kw8AIUwZdlPAgvhw8Yu8dwpdboVtNmw4,4816 +matplotlib/mpl-data/fonts/ttf/LICENSE_STIX,sha256=urPTHf7wf0g2JPL2XycR52BluOcnMnixwHHt4QQcmVk,5476 +matplotlib/mpl-data/fonts/ttf/STIXGeneral.ttf,sha256=FnN4Ax4t3cYhbWeBnJJg6aBv_ExHjk4jy5im_USxg8I,448228 +matplotlib/mpl-data/fonts/ttf/STIXGeneralBol.ttf,sha256=6FM9xwg_o0a9oZM9YOpKg7Z9CUW86vGzVB-CtKDixqA,237360 +matplotlib/mpl-data/fonts/ttf/STIXGeneralBolIta.ttf,sha256=mHiP1LpI37sr0CbA4gokeosGxzcoeWKLemuw1bsJc2w,181152 +matplotlib/mpl-data/fonts/ttf/STIXGeneralItalic.ttf,sha256=bPyzM9IrfDxiO9_UAXTxTIXD1nMcphZsHtyAFA6uhSc,175040 +matplotlib/mpl-data/fonts/ttf/STIXNonUni.ttf,sha256=Ulb34CEzWsSFTRgPDovxmJZOwvyCAXYnbhaqvGU3u1c,59108 +matplotlib/mpl-data/fonts/ttf/STIXNonUniBol.ttf,sha256=XRBqW3jR_8MBdFU0ObhiV7-kXwiBIMs7QVClHcT5tgs,30512 +matplotlib/mpl-data/fonts/ttf/STIXNonUniBolIta.ttf,sha256=pb22DnbDf2yQqizotc3wBDqFGC_g27YcCGJivH9-Le8,41272 +matplotlib/mpl-data/fonts/ttf/STIXNonUniIta.ttf,sha256=BMr9pWiBv2YIZdq04X4c3CgL6NPLUPrl64aV1N4w9Ug,46752 +matplotlib/mpl-data/fonts/ttf/STIXSizFiveSymReg.ttf,sha256=wYuH1gYUpCuusqItRH5kf9p_s6mUD-9X3L5RvRtKSxs,13656 +matplotlib/mpl-data/fonts/ttf/STIXSizFourSymBol.ttf,sha256=yNdvjUoSmsZCULmD7SVq9HabndG9P4dPhboL1JpAf0s,12228 +matplotlib/mpl-data/fonts/ttf/STIXSizFourSymReg.ttf,sha256=-9xVMYL4_1rcO8FiCKrCfR4PaSmKtA42ddLGqwtei1w,15972 +matplotlib/mpl-data/fonts/ttf/STIXSizOneSymBol.ttf,sha256=cYexyo8rZcdqMlpa9fNF5a2IoXLUTZuIvh0JD1Qp0i4,12556 +matplotlib/mpl-data/fonts/ttf/STIXSizOneSymReg.ttf,sha256=0lbHzpndzJmO8S42mlkhsz5NbvJLQCaH5Mcc7QZRDzc,19760 +matplotlib/mpl-data/fonts/ttf/STIXSizThreeSymBol.ttf,sha256=3eBc-VtYbhQU3BnxiypfO6eAzEu8BdDvtIJSFbkS2oY,12192 +matplotlib/mpl-data/fonts/ttf/STIXSizThreeSymReg.ttf,sha256=XFSKCptbESM8uxHtUFSAV2cybwxhSjd8dWVByq6f3w0,15836 +matplotlib/mpl-data/fonts/ttf/STIXSizTwoSymBol.ttf,sha256=MUCYHrA0ZqFiSE_PjIGlJZgMuv79aUgQqE7Dtu3kuo0,12116 +matplotlib/mpl-data/fonts/ttf/STIXSizTwoSymReg.ttf,sha256=_sdxDuEwBDtADpu9CyIXQxV7sIqA2TZVBCUiUjq5UCk,15704 +matplotlib/mpl-data/fonts/ttf/cmb10.ttf,sha256=B0SXtQxD6ldZcYFZH5iT04_BKofpUQT1ZX_CSB9hojo,25680 +matplotlib/mpl-data/fonts/ttf/cmex10.ttf,sha256=ryjwwXByOsd2pxv6WVrKCemNFa5cPVTOGa_VYZyWqQU,21092 +matplotlib/mpl-data/fonts/ttf/cmmi10.ttf,sha256=MJKWW4gR_WpnZXmWZIRRgfwd0TMLk3-RWAjEhdMWI00,32560 +matplotlib/mpl-data/fonts/ttf/cmr10.ttf,sha256=Tdl2GwWMAJ25shRfVe5mF9CTwnPdPWxbPkP_YRD6m_Y,26348 +matplotlib/mpl-data/fonts/ttf/cmss10.ttf,sha256=ffkag9BbLkcexjjLC0NaNgo8eSsJ_EKn2mfpHy55EVo,20376 +matplotlib/mpl-data/fonts/ttf/cmsy10.ttf,sha256=uyJu2TLz8QDNDlL15JEu5VO0G2nnv9uNOFTbDrZgUjI,29396 +matplotlib/mpl-data/fonts/ttf/cmtt10.ttf,sha256=YhHwmuk1mZka_alwwkZp2tGnfiU9kVYk-_IS9wLwcdc,28136 +matplotlib/mpl-data/images/back-symbolic.svg,sha256=Okj_ressZkfe6Ewv_o7GF5toc5qWCeFkQ2cHQ25BdVE,1532 +matplotlib/mpl-data/images/back.pdf,sha256=ZR7CJo_dAeCM-KlaGvskgtHQyRtrPIolc8REOmcoqJk,1623 +matplotlib/mpl-data/images/back.png,sha256=E4dGf4Gnz1xJ1v2tMygHV0YNQgShreDeVApaMb-74mU,380 +matplotlib/mpl-data/images/back.svg,sha256=Okj_ressZkfe6Ewv_o7GF5toc5qWCeFkQ2cHQ25BdVE,1532 +matplotlib/mpl-data/images/back_large.png,sha256=9A6hUSQeszhYONE4ZuH3kvOItM0JfDVu6tkfromCbsQ,620 +matplotlib/mpl-data/images/filesave-symbolic.svg,sha256=dMGXvLSOHPu44kiWgZx-B_My_tLWaP6J6GgxJfL4FW0,2049 +matplotlib/mpl-data/images/filesave.pdf,sha256=P1EPPV2g50WTt8UaX-6kFoTZM1xVqo6S2H6FJ6Zd1ec,1734 +matplotlib/mpl-data/images/filesave.png,sha256=b7ctucrM_F2mG-DycTedG_a_y4pHkx3F-zM7l18GLhk,458 +matplotlib/mpl-data/images/filesave.svg,sha256=dMGXvLSOHPu44kiWgZx-B_My_tLWaP6J6GgxJfL4FW0,2049 +matplotlib/mpl-data/images/filesave_large.png,sha256=LNbRD5KZ3Kf7nbp-stx_a1_6XfGBSWUfDdpgmnzoRvk,720 +matplotlib/mpl-data/images/forward-symbolic.svg,sha256=kOiKq3a4mieMRLVCwQBdOMTRrWG2NOX_5-rbAFHpdmQ,1551 +matplotlib/mpl-data/images/forward.pdf,sha256=KIqIL4YId43LkcOxV_TT5uvz1SP8k5iUNUeJmAElMV8,1630 +matplotlib/mpl-data/images/forward.png,sha256=pKbLepgGiGeyY2TCBl8svjvm7Z4CS3iysFxcq4GR-wk,357 +matplotlib/mpl-data/images/forward.svg,sha256=kOiKq3a4mieMRLVCwQBdOMTRrWG2NOX_5-rbAFHpdmQ,1551 +matplotlib/mpl-data/images/forward_large.png,sha256=36h7m7DZDHql6kkdpNPckyi2LKCe_xhhyavWARz_2kQ,593 +matplotlib/mpl-data/images/hand.pdf,sha256=hspwkNY915KPD7AMWnVQs7LFPOtlcj0VUiLu76dMabQ,4172 +matplotlib/mpl-data/images/hand.png,sha256=2cchRETGKa0hYNKUxnJABwkyYXEBPqJy_VqSPlT0W2Q,979 +matplotlib/mpl-data/images/hand.svg,sha256=hxxBtakaVFA7mpZOGakvo0QUcb2x06rojeS5gnVmyuc,4906 +matplotlib/mpl-data/images/help-symbolic.svg,sha256=XVcFcuzcL3SQ3LjfSbtdLYDjoB5YUkj2jk2Gk8vaZF8,1890 +matplotlib/mpl-data/images/help.pdf,sha256=CeE978IMi0YWznWKjIT1R8IrP4KhZ0S7usPUvreSgcA,1813 +matplotlib/mpl-data/images/help.png,sha256=s4pQrqaQ0py8I7vc9hv3BI3DO_tky-7YBMpaHuBDCBY,472 +matplotlib/mpl-data/images/help.svg,sha256=XVcFcuzcL3SQ3LjfSbtdLYDjoB5YUkj2jk2Gk8vaZF8,1890 +matplotlib/mpl-data/images/help_large.png,sha256=1IwEyWfGRgnoCWM-r9CJHEogTJVD5n1c8LXTK4AJ4RE,747 +matplotlib/mpl-data/images/home-symbolic.svg,sha256=ptrus8h5PZTi9ahYfnaz-uZ8MAHCr72aPeMW48TBR9Q,1911 +matplotlib/mpl-data/images/home.pdf,sha256=e0e0pI-XRtPmvUCW2VTKL1DeYu1pvPmUUeRSgEbWmik,1737 +matplotlib/mpl-data/images/home.png,sha256=IcFdAAUa6_A0qt8IO3I8p4rpXpQgAlJ8ndBECCh7C1w,468 +matplotlib/mpl-data/images/home.svg,sha256=ptrus8h5PZTi9ahYfnaz-uZ8MAHCr72aPeMW48TBR9Q,1911 +matplotlib/mpl-data/images/home_large.png,sha256=uxS2O3tWOHh1iau7CaVV4ermIJaZ007ibm5Z3i8kXYg,790 +matplotlib/mpl-data/images/matplotlib.pdf,sha256=BkSUf-2xoij-eXfpV2t7y1JFKG1zD1gtV6aAg3Xi_wE,22852 +matplotlib/mpl-data/images/matplotlib.png,sha256=w8KLRYVa-voUZXa41hgJauQuoois23f3NFfdc72pUYY,1283 +matplotlib/mpl-data/images/matplotlib.svg,sha256=QiTIcqlQwGaVPtHsEk-vtmJk1wxwZSvijhqBe_b9VCI,62087 +matplotlib/mpl-data/images/matplotlib_large.png,sha256=ElRoue9grUqkZXJngk-nvh4GKfpvJ4gE69WryjCbX5U,3088 +matplotlib/mpl-data/images/move-symbolic.svg,sha256=_uamLnjQ20iwSuKbd8JvTXUFaRq4206MrpFWvtErr8I,2529 +matplotlib/mpl-data/images/move.pdf,sha256=CXk3PGK9WL5t-5J-G2X5Tl-nb6lcErTBS5oUj2St6aU,1867 +matplotlib/mpl-data/images/move.png,sha256=TmjR41IzSzxGbhiUcV64X0zx2BjrxbWH3cSKvnG2vzc,481 +matplotlib/mpl-data/images/move.svg,sha256=_uamLnjQ20iwSuKbd8JvTXUFaRq4206MrpFWvtErr8I,2529 +matplotlib/mpl-data/images/move_large.png,sha256=Skjz2nW_RTA5s_0g88gdq2hrVbm6DOcfYW4Fu42Fn9U,767 +matplotlib/mpl-data/images/qt4_editor_options.pdf,sha256=2qu6GVyBrJvVHxychQoJUiXPYxBylbH2j90QnytXs_w,1568 +matplotlib/mpl-data/images/qt4_editor_options.png,sha256=EryQjQ5hh2dwmIxtzCFiMN1U6Tnd11p1CDfgH5ZHjNM,380 +matplotlib/mpl-data/images/qt4_editor_options.svg,sha256=sdrNIxYT-BLvJ30ASnaRQ5PxF3SB41-pgdaIJT0KqBg,1264 +matplotlib/mpl-data/images/qt4_editor_options_large.png,sha256=-Pd-9Vh5aIr3PZa8O6Ge_BLo41kiEnpmkdDj8a11JkY,619 +matplotlib/mpl-data/images/subplots-symbolic.svg,sha256=Gq4fDSS99Rv5rbR8_nenV6jcY5VsKPARWeH-BZBk9CU,2150 +matplotlib/mpl-data/images/subplots.pdf,sha256=Q0syPMI5EvtgM-CE-YXKOkL9eFUAZnj_X2Ihoj6R4p4,1714 +matplotlib/mpl-data/images/subplots.png,sha256=MUfCItq3_yzb9yRieGOglpn0Y74h8IA7m5i70B63iRc,445 +matplotlib/mpl-data/images/subplots.svg,sha256=Gq4fDSS99Rv5rbR8_nenV6jcY5VsKPARWeH-BZBk9CU,2150 +matplotlib/mpl-data/images/subplots_large.png,sha256=Edu9SwVMQEXJZ5ogU5cyW7VLcwXJdhdf-EtxxmxdkIs,662 +matplotlib/mpl-data/images/zoom_to_rect-symbolic.svg,sha256=uMmdGkO43ZHlezkpieR3_MiqlEc5vROffRDOhY4sxm4,1499 +matplotlib/mpl-data/images/zoom_to_rect.pdf,sha256=SEvPc24gfZRpl-dHv7nx8KkxPyU66Kq4zgQTvGFm9KA,1609 +matplotlib/mpl-data/images/zoom_to_rect.png,sha256=aNz3QZBrIgxu9E-fFfaQweCVNitGuDUFoC27e5NU2L4,530 +matplotlib/mpl-data/images/zoom_to_rect.svg,sha256=uMmdGkO43ZHlezkpieR3_MiqlEc5vROffRDOhY4sxm4,1499 +matplotlib/mpl-data/images/zoom_to_rect_large.png,sha256=V6pkxmm6VwFExdg_PEJWdK37HB7k3cE_corLa7RbUMk,1016 +matplotlib/mpl-data/kpsewhich.lua,sha256=RdyYaBnBLy3NsB5c2R5FGrKu-V-WBcZim24NWilsTfw,139 +matplotlib/mpl-data/matplotlibrc,sha256=CXIWz2WeGv3kyoQsMBDOO0m3yF9M_pK1EihXl01w0bw,43413 +matplotlib/mpl-data/plot_directive/plot_directive.css,sha256=utSJ1oETz0UG6AC9hU134J_JY78ENijqMZXN0JMBUfk,318 +matplotlib/mpl-data/sample_data/Minduka_Present_Blue_Pack.png,sha256=XnKGiCanpDKalQ5anvo5NZSAeDP7fyflzQAaivuc0IE,13634 +matplotlib/mpl-data/sample_data/README.txt,sha256=ABz19VBKfGewdY39QInG9Qccgn1MTYV3bT5Ph7TCy2Y,128 +matplotlib/mpl-data/sample_data/Stocks.csv,sha256=72878aZNXGxd5wLvFUw_rnj-nfg4gqtrucZji-w830c,67924 +matplotlib/mpl-data/sample_data/axes_grid/bivariate_normal.npy,sha256=DpWZ9udAh6ospYqneEa27D6EkRgORFwHosacZXVu98U,1880 +matplotlib/mpl-data/sample_data/data_x_x2_x3.csv,sha256=A0SU3buOUGhT-NI_6LQ6p70fFSIU3iLFdgzvzrKR6SE,132 +matplotlib/mpl-data/sample_data/eeg.dat,sha256=KGVjFt8ABKz7p6XZirNfcxSTOpGGNuyA8JYErRKLRBc,25600 +matplotlib/mpl-data/sample_data/embedding_in_wx3.xrc,sha256=cUqVw5vDHNSZoaO4J0ebZUf5SrJP36775abs7R9Bclg,2186 +matplotlib/mpl-data/sample_data/goog.npz,sha256=QAkXzzDmtmT3sNqT18dFhg06qQCNqLfxYNLdEuajGLE,22845 +matplotlib/mpl-data/sample_data/grace_hopper.jpg,sha256=qMptc0dlcDsJcoq0f-WfRz2Trjln_CTHwCiMPHrbcTA,61306 +matplotlib/mpl-data/sample_data/jacksboro_fault_dem.npz,sha256=1JP1CjPoKkQgSUxU0fyhU50Xe9wnqxkLxf5ukvYvtjc,174061 +matplotlib/mpl-data/sample_data/logo2.png,sha256=DXNx4FXeyqxHy26AmvNELpwezQLxweLQY9HP7ktKIdc,22279 +matplotlib/mpl-data/sample_data/membrane.dat,sha256=q3lbQpIBpbtXXGNw1eFwkN_PwxdDGqk4L46IE2b0M1c,48000 +matplotlib/mpl-data/sample_data/msft.csv,sha256=GArKb0O3DgKZRsKdJf6lX3rMSf-PCekIiBoLNdgF7Mk,3211 +matplotlib/mpl-data/sample_data/s1045.ima.gz,sha256=MrQk1k9it-ccsk0p_VOTitVmTWCAVaZ6srKvQ2n4uJ4,33229 +matplotlib/mpl-data/sample_data/topobathy.npz,sha256=AkTgMpFwLfRQJNy1ysvE89TLMNct-n_TccSsYcQrT78,45224 +matplotlib/mpl-data/stylelib/Solarize_Light2.mplstyle,sha256=aytOm4eT_SPvs7HC28ZY4GukeN44q-SE0JEMCR8kVOk,1257 +matplotlib/mpl-data/stylelib/_classic_test_patch.mplstyle,sha256=iopHpMaM3im_AK2aiHGuM2DKM5i9Kc84v6NQEoSb10Q,167 +matplotlib/mpl-data/stylelib/_mpl-gallery-nogrid.mplstyle,sha256=1VOL3USqD6iuGQaSynNg1QhyUwvKLnkLyUKdbBMnnqg,489 +matplotlib/mpl-data/stylelib/_mpl-gallery.mplstyle,sha256=MN-q59CiDqHXB8xFKXxzCbJJbJmNDhBe9lDJJAoMTPA,504 +matplotlib/mpl-data/stylelib/bmh.mplstyle,sha256=-KbhaI859BITHIoyUZIfpQDjfckgLAlDAS_ydKsm6mc,712 +matplotlib/mpl-data/stylelib/classic.mplstyle,sha256=1o5b47VD_RIZv3unnG9Gm2tbprTvOeNGXM8hJCmGuYI,24670 +matplotlib/mpl-data/stylelib/dark_background.mplstyle,sha256=GzSBD06jvlRYOqu7D5Z5a5x25l9JnTgtObn7S4D9zug,607 +matplotlib/mpl-data/stylelib/fast.mplstyle,sha256=yTa2YEIIP9xi5V_G0p2vSlxghuhNwjRi9gPECMxyRiM,288 +matplotlib/mpl-data/stylelib/fivethirtyeight.mplstyle,sha256=IcBt2DSDz9CtuyCis9JZtT3Nqoh6LVO-dB66AxObUcA,780 +matplotlib/mpl-data/stylelib/ggplot.mplstyle,sha256=u2oPHMLWFtZcpIjHk2swi2Nrt4NgnEtof5lxcwM0RD0,956 +matplotlib/mpl-data/stylelib/grayscale.mplstyle,sha256=KCLg-pXpns9cnKDXKN2WH6mV41OH-6cbT-5zKQotSdw,526 +matplotlib/mpl-data/stylelib/petroff10.mplstyle,sha256=Qj7pPbHh3L25kdsPt1ypwvKR3dPzuOrFzzQTP3Mfilg,298 +matplotlib/mpl-data/stylelib/seaborn-v0_8-bright.mplstyle,sha256=pDqn3-NUyVLvlfkYs8n8HzNZvmslVMChkeH-HtZuJIc,144 +matplotlib/mpl-data/stylelib/seaborn-v0_8-colorblind.mplstyle,sha256=eCSzFj5_2vR6n5qu1rHE46wvSVGZcdVqz85ov40ZsH8,148 +matplotlib/mpl-data/stylelib/seaborn-v0_8-dark-palette.mplstyle,sha256=p5ABKNQHRG7bk4HXqMQrRBjDlxGAo3RCXHdQmP7g-Ng,142 +matplotlib/mpl-data/stylelib/seaborn-v0_8-dark.mplstyle,sha256=I4xQ75vE5_9X4k0cNDiqhhnF3OcrZ2xlPX8Ll7OCkoE,667 +matplotlib/mpl-data/stylelib/seaborn-v0_8-darkgrid.mplstyle,sha256=2bXOSzS5gmPzRBrRmzVWyhg_7ZaBRQ6t_-O-cRuyZoA,670 +matplotlib/mpl-data/stylelib/seaborn-v0_8-deep.mplstyle,sha256=44dLcXjjRgR-6yaopgGRInaVgz3jk8VJVQTbBIcxRB0,142 +matplotlib/mpl-data/stylelib/seaborn-v0_8-muted.mplstyle,sha256=T4o3jvqKD_ImXDkp66XFOV_xrBVFUolJU34JDFk1Xkk,143 +matplotlib/mpl-data/stylelib/seaborn-v0_8-notebook.mplstyle,sha256=PcvZQbYrDdducrNlavBPmQ1g2minio_9GkUUFRdgtoM,382 +matplotlib/mpl-data/stylelib/seaborn-v0_8-paper.mplstyle,sha256=n0mboUp2C4Usq2j6tNWcu4TZ_YT4-kKgrYO0t-rz1yw,393 +matplotlib/mpl-data/stylelib/seaborn-v0_8-pastel.mplstyle,sha256=8nV8qRpbUrnFZeyE6VcQ1oRuZPLil2W74M2U37DNMOE,144 +matplotlib/mpl-data/stylelib/seaborn-v0_8-poster.mplstyle,sha256=dUaKqTE4MRfUq2rWVXbbou7kzD7Z9PE9Ko8aXLza8JA,403 +matplotlib/mpl-data/stylelib/seaborn-v0_8-talk.mplstyle,sha256=7FnBaBEdWBbncTm6_ER-EQVa_bZgU7dncgez-ez8R74,403 +matplotlib/mpl-data/stylelib/seaborn-v0_8-ticks.mplstyle,sha256=CITZmZFUFp40MK2Oz8tI8a7WRoCizQU9Z4J172YWfWw,665 +matplotlib/mpl-data/stylelib/seaborn-v0_8-white.mplstyle,sha256=WjJ6LEU6rlCwUugToawciAbKP9oERFHr9rfFlUrdTx0,665 +matplotlib/mpl-data/stylelib/seaborn-v0_8-whitegrid.mplstyle,sha256=ec4BjsNzmOvHptcJ3mdPxULF3S1_U1EUocuqfIpw-Nk,664 +matplotlib/mpl-data/stylelib/seaborn-v0_8.mplstyle,sha256=_Xu6qXKzi4b3GymCOB1b1-ykKTQ8xhDliZ8ezHGTiAs,1130 +matplotlib/mpl-data/stylelib/tableau-colorblind10.mplstyle,sha256=BsirZVd1LmPWT4tBIz6loZPjZcInoQrIGfC7rvzqmJw,190 +matplotlib/offsetbox.py,sha256=hcBN7g2UBFLu_WhBg_bDlnHcIdjc6Pj-kHicfhOpTpI,54490 +matplotlib/offsetbox.pyi,sha256=ISf7gRrOhvefNKfutbHIPh6QYS0kAgtA97bYa6N-82o,9909 +matplotlib/patches.py,sha256=uXew19bSegJ1vxVIhZMhmf8f4XXyB7wKIwgAnFPfwnk,165064 +matplotlib/patches.pyi,sha256=d-sCqVXw_ANsvoUpliH7dllMbTy7TcyRm2IV97Ll0nM,22649 +matplotlib/path.py,sha256=QiQRSMjHbKCBpjWyJ3KPIJgK1Eq07qXUYjULaDHgt5g,43269 +matplotlib/path.pyi,sha256=VfIuc2KpkcB28uzRjLvkC3Hq5HwH4Zp0Uyj9H9bwcWU,4808 +matplotlib/patheffects.py,sha256=4paQgPGKc_xdBz_BZ_MaVhKJ2FxZDGeh5zHwzn3evDY,18387 +matplotlib/patheffects.pyi,sha256=7-FhuxGGrer94GtJ1sZ0YxOmK6Nv4oixTmsKb6-ijOg,3664 +matplotlib/projections/__init__.py,sha256=gICKgNfjJ-tioWEFa75BKKJZG6JJjx46_RpEqt5fk94,4438 +matplotlib/projections/__init__.pyi,sha256=D28dSYmwZcSBFBtNDer-QqE_lqXAhHKersuAlvi89jE,673 +matplotlib/projections/__pycache__/__init__.cpython-311.pyc,, +matplotlib/projections/__pycache__/geo.cpython-311.pyc,, +matplotlib/projections/__pycache__/polar.cpython-311.pyc,, +matplotlib/projections/geo.py,sha256=feR2dybCylhk6xe-MzxBr_e8MdbpVc8tBtCQQJ0V2co,17605 +matplotlib/projections/geo.pyi,sha256=vPfhvj7_e0ZnKjyfDUNC89RGCktycJBPnn5D8w0A7N8,3775 +matplotlib/projections/polar.py,sha256=vEy7FB4FnEu7COWyjZT-zYDt4tbTwkW8BvZCr7kqYiQ,57241 +matplotlib/projections/polar.pyi,sha256=IWNSLQIo5cXFBJur5VFVDQBwAtq5n1XFZMnrj85mCBg,6636 +matplotlib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +matplotlib/pylab.py,sha256=VqUqd2J2-dKtltZtsYP8ePKoX1jsNDpTyqlcmpfC-lo,2369 +matplotlib/pyplot.py,sha256=0-anFye98wVBms7QS-Bd7adPaWVNJWEVRqzKKnor3Uw,149717 +matplotlib/quiver.py,sha256=gx-mX4BE2DV1EjRQMTR_3jqZM8NDh1npUOizdACy4iQ,48676 +matplotlib/quiver.pyi,sha256=Kq1FvQP-DRX1N9Xlp6XF6OJfKkJ7tc4dYq4CEndxEzg,5640 +matplotlib/rcsetup.py,sha256=87KrQeDFg4sRu4obxF4mc0eGSCuClGyuzXsxoZ_kme4,51606 +matplotlib/rcsetup.pyi,sha256=0VTIhzfKgBcKxOeOdoKq1oa7ZubalOj9Ks0efE0-cms,4337 +matplotlib/sankey.py,sha256=eKA9DrX96-bpoWRdeNnvC73aJfPtCnB78WmMPCXQ9rc,36151 +matplotlib/sankey.pyi,sha256=P2AGkhdg3ZLqXaQdf8yodblrBpdgEQZBLKPL1mbxmFc,1451 +matplotlib/scale.py,sha256=n3JqLU_d3dAKrP1uO5lTipVEaxgiLhDR2sSk8TAXE_M,26924 +matplotlib/scale.pyi,sha256=-ptRptcqiAuzfKwrjgSWWOxFmjRUTOKGwIoWtuBXKgY,5057 +matplotlib/sphinxext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +matplotlib/sphinxext/__pycache__/__init__.cpython-311.pyc,, +matplotlib/sphinxext/__pycache__/figmpl_directive.cpython-311.pyc,, +matplotlib/sphinxext/__pycache__/mathmpl.cpython-311.pyc,, +matplotlib/sphinxext/__pycache__/plot_directive.cpython-311.pyc,, +matplotlib/sphinxext/__pycache__/roles.cpython-311.pyc,, +matplotlib/sphinxext/figmpl_directive.py,sha256=rgoJcGRfLdp4jiOlyBIwG83wcyfzbFVfrlrSCmDHL9g,9308 +matplotlib/sphinxext/mathmpl.py,sha256=CKIocBSV4prRMPR50NL6WxBTULBa1zReoqo7ZtbvCsc,7871 +matplotlib/sphinxext/plot_directive.py,sha256=6GEOX2y0K1Izc98Aojt8pCXS21Ucru6E-T_33lRU92s,32542 +matplotlib/sphinxext/roles.py,sha256=U7P4t06foLF2PsZJrTN4mfaspKGRoYwFZ3ijIhIUVyo,4882 +matplotlib/spines.py,sha256=_9Dc4oIAgDs3MA6rZCwr1scPGCSzbAnmYp3PQzpKFeU,21923 +matplotlib/spines.pyi,sha256=eceCS47bOawgkWdLUMIPt6XX_H-EtWS2t-euz5Bgkbg,2951 +matplotlib/stackplot.py,sha256=a6IUAujDjGpaFqiTzGr85eDD8l6baWLPrM5YNvb6g9I,4997 +matplotlib/stackplot.pyi,sha256=BX2g3-6dJ4RhjjIguo-gwWhvKZNYqFCQYVw5SKvpM4c,561 +matplotlib/streamplot.py,sha256=rXVKYEi4MfSg3HnAaWb8w4qFp95mRf6dosMVqtXZEpE,24011 +matplotlib/streamplot.pyi,sha256=fkdkew8u807qd7WXFd_ZjF7FUbx8okOI8A7u4x_ktvg,2690 +matplotlib/style/__init__.py,sha256=fraQtyBC3TY2ZTsLdxL7zNs9tJYZtje7tbiqEf3M56M,140 +matplotlib/style/__pycache__/__init__.cpython-311.pyc,, +matplotlib/style/__pycache__/core.cpython-311.pyc,, +matplotlib/style/core.py,sha256=RSNH2NO0xK_Y37dbpMWyaWMMjvcMa_NHaKXDa5I4_tA,8362 +matplotlib/style/core.pyi,sha256=mIlyz6eChdMjZ_A7S05iJgcWwrWE2NXg2rhm1C1eYlQ,521 +matplotlib/table.py,sha256=MkF9s8u2X-9_Cei9sJixljb2_I_B_4UOqVx0iReKIU0,27744 +matplotlib/table.pyi,sha256=tcR40hoCWCRLlL-8PtFMa7P5sq8qajDSMFxd25Q90z4,3098 +matplotlib/testing/__init__.py,sha256=pTaqH1qgGNBeWCmvK_vjqFJXJ9dvZXCaKQ-8jHSpaEc,6942 +matplotlib/testing/__init__.pyi,sha256=ffqfetWzyCVrSx7BlnoxCmbgIaZg2x57nDrq9eucRk0,1752 +matplotlib/testing/__pycache__/__init__.cpython-311.pyc,, +matplotlib/testing/__pycache__/_markers.cpython-311.pyc,, +matplotlib/testing/__pycache__/compare.cpython-311.pyc,, +matplotlib/testing/__pycache__/conftest.cpython-311.pyc,, +matplotlib/testing/__pycache__/decorators.cpython-311.pyc,, +matplotlib/testing/__pycache__/exceptions.cpython-311.pyc,, +matplotlib/testing/__pycache__/widgets.cpython-311.pyc,, +matplotlib/testing/_markers.py,sha256=0iNyOi25XLv_gTfSUqiRizdSqJzozePPBMRo72H2Je4,1419 +matplotlib/testing/compare.py,sha256=8dVcuP7FauHY1JZQXBD7fNBfQKb4IoXM6pVeq6zJgBs,19780 +matplotlib/testing/compare.pyi,sha256=xlJ4chgXKe567NUavlu-dalyPr4wAQUbd2Fz6aK_JII,1192 +matplotlib/testing/conftest.py,sha256=CcwfUtIkUOgGBlXXNplQE6dg2U_UBKdH6AajROPJ5uw,6683 +matplotlib/testing/conftest.pyi,sha256=zOF_MM2GjCkNi9nZ8vldV9VI41bD67nVhrIgLVuMNsk,416 +matplotlib/testing/decorators.py,sha256=1Xiyb2exeN0nDEO4he8MW_VKwFE34cB7EtRl6bcGRzg,18022 +matplotlib/testing/decorators.pyi,sha256=0fSpdLBtEH7ZP_trVJ7RPxNtOX9sJ_z-MkNsbUxF8nM,872 +matplotlib/testing/exceptions.py,sha256=72QmjiHG7DwxSvlJf8mei-hRit5AH3NKh0-osBo4YbY,138 +matplotlib/testing/jpl_units/Duration.py,sha256=9FMBu9uj6orCWtf23cf6_9HCFUC50xAHrCzaxATwQfM,3966 +matplotlib/testing/jpl_units/Epoch.py,sha256=-FGxeq-VvCS9GVPwOEE5ind_G4Tl9ztD-gYcW9CWzjo,6100 +matplotlib/testing/jpl_units/EpochConverter.py,sha256=fhWjyP567bzcTU_oNuJJpucoolqS88Nt-yEFg1-3yEk,2944 +matplotlib/testing/jpl_units/StrConverter.py,sha256=codGw9b_Zc-MG_YK4CiyMrnMR8ahR9hw836O2SsV8QI,2865 +matplotlib/testing/jpl_units/UnitDbl.py,sha256=EABjyEK4MVouyvlwi_9KdYDg-qbYY3aLHoUjRw37Fb0,5882 +matplotlib/testing/jpl_units/UnitDblConverter.py,sha256=B8DssrQVyC4mwvSFP78cGL0vCnZgVhDaAbZE-jsXLUg,2828 +matplotlib/testing/jpl_units/UnitDblFormatter.py,sha256=246hgA4_pCfJm-P94hEsxqnTS9t0XlvLC8p1v_bw2pU,657 +matplotlib/testing/jpl_units/__init__.py,sha256=p__9RUwrt2LJ2eoT2JPM-42XLxSJrfA4az3rN5uP6d4,2684 +matplotlib/testing/jpl_units/__pycache__/Duration.cpython-311.pyc,, +matplotlib/testing/jpl_units/__pycache__/Epoch.cpython-311.pyc,, +matplotlib/testing/jpl_units/__pycache__/EpochConverter.cpython-311.pyc,, +matplotlib/testing/jpl_units/__pycache__/StrConverter.cpython-311.pyc,, +matplotlib/testing/jpl_units/__pycache__/UnitDbl.cpython-311.pyc,, +matplotlib/testing/jpl_units/__pycache__/UnitDblConverter.cpython-311.pyc,, +matplotlib/testing/jpl_units/__pycache__/UnitDblFormatter.cpython-311.pyc,, +matplotlib/testing/jpl_units/__pycache__/__init__.cpython-311.pyc,, +matplotlib/testing/widgets.py,sha256=IaoPHgDguJSHd7t97kSVWUZvqTQ-Tsr9tU9kfnmJrAM,3480 +matplotlib/testing/widgets.pyi,sha256=Ioau7Q2aPRDZLx8hze2DOe3E1vn7QPxePC74WMR7tFc,831 +matplotlib/tests/__init__.py,sha256=XyXveEAxafB87gnbx0jkC0MggzKO8FvORq_6RtJRwo4,366 +matplotlib/tests/__pycache__/__init__.cpython-311.pyc,, +matplotlib/tests/__pycache__/conftest.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_afm.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_agg.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_agg_filter.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_animation.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_api.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_arrow_patches.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_artist.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_axes.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_axis.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_backend_bases.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_backend_cairo.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_backend_gtk3.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_backend_inline.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_backend_macosx.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_backend_nbagg.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_backend_pdf.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_backend_pgf.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_backend_ps.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_backend_qt.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_backend_registry.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_backend_svg.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_backend_template.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_backend_tk.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_backend_tools.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_backend_webagg.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_backends_interactive.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_basic.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_bbox_tight.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_bezier.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_category.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_cbook.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_collections.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_colorbar.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_colors.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_compare_images.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_constrainedlayout.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_container.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_contour.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_cycles.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_dates.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_datetime.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_determinism.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_doc.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_dviread.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_figure.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_font_manager.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_fontconfig_pattern.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_ft2font.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_getattr.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_gridspec.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_image.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_legend.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_lines.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_marker.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_mathtext.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_matplotlib.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_mlab.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_multivariate_colormaps.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_offsetbox.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_patches.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_path.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_patheffects.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_pickle.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_png.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_polar.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_preprocess_data.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_pyplot.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_quiver.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_rcparams.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_sankey.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_scale.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_simplification.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_skew.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_sphinxext.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_spines.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_streamplot.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_style.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_subplots.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_table.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_testing.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_texmanager.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_text.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_textpath.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_ticker.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_tightlayout.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_transforms.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_triangulation.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_type1font.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_units.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_usetex.cpython-311.pyc,, +matplotlib/tests/__pycache__/test_widgets.cpython-311.pyc,, +matplotlib/tests/conftest.py,sha256=0cKxWVUC25UfQJQcAjFJa73MQE9eSYqKSXGDx7kAq48,138 +matplotlib/tests/test_afm.py,sha256=A7jm2o-QaQH9SSpiFxGtZkbVU0LJZE69jfPv7RczOD4,3701 +matplotlib/tests/test_agg.py,sha256=xAKrTzvT1dNM_49efiWisnGNrJtINOBenYSOtaRXvIg,10884 +matplotlib/tests/test_agg_filter.py,sha256=3c_Smtb4OHEOfdMFCOb2qKhzMXSbNoaUtsJ0pW47Q44,1067 +matplotlib/tests/test_animation.py,sha256=z0FJ0gx15rJB_khEPSg1E-vLGQyTj85Ki-uTjFsMEPE,18357 +matplotlib/tests/test_api.py,sha256=UJU_qoi7Y8Rbz1S89NYKvOkNwv_RBVPNFajrcXixNds,5736 +matplotlib/tests/test_arrow_patches.py,sha256=qgbS9OrlHa4TJihAd2ekW4AupCVgKDd2B5YyF704Pak,6577 +matplotlib/tests/test_artist.py,sha256=oblCTkCPZzufghCp19AKwIJftV69tZwEOjeRLn8soAQ,18599 +matplotlib/tests/test_axes.py,sha256=PbsmnNA9f3GRtSjCEf4HUvZ5onrBEUIASd1bcalhil8,329934 +matplotlib/tests/test_axis.py,sha256=Ljc_Yc7dAFkTuVW0PD0i3vEnjkGOuAehkpcNpWg9A7Y,1446 +matplotlib/tests/test_backend_bases.py,sha256=FwUgearYkC7UgqpRpaKk51o5F62ipDL4kUvFROwGVLo,22775 +matplotlib/tests/test_backend_cairo.py,sha256=O2LTYjsfPn__bKtTz4MGGBodpSshoPkzu0INsc18xmI,1821 +matplotlib/tests/test_backend_gtk3.py,sha256=Zb29s85nbRzwLVmChCA5_LphAeC_yKyP45kCcHxfgPE,2849 +matplotlib/tests/test_backend_inline.py,sha256=b7GrmMCrJfI5kXGJKbxdMM9kWBd-JKUdCkRq-vk8JXo,1608 +matplotlib/tests/test_backend_macosx.py,sha256=s4Kd1fnwYCuamGRLtkOAYtzer7jVOjLaA2LH52hhPqM,2233 +matplotlib/tests/test_backend_nbagg.py,sha256=o6ON7tt_LOW7wzg4StIMYuTgMFSPNWt1FOv2FFMIefk,1459 +matplotlib/tests/test_backend_pdf.py,sha256=CxVYTlz8_AQ7o90yh5cavpSnNBLozIL8UhscRYShUVM,14602 +matplotlib/tests/test_backend_pgf.py,sha256=WlGdZThz5uQ-x8-HqpMcB5IWmYijflNCC-rVNgvz0yw,13028 +matplotlib/tests/test_backend_ps.py,sha256=veHbm4_dpBDcczgomEjQxdz-Sv8wHij3LVSKWST9Bd0,12600 +matplotlib/tests/test_backend_qt.py,sha256=JfHFhQ1WRw6nMFCRBOPBzAvdvHGMXfoxjiwaUm4GS6Q,12928 +matplotlib/tests/test_backend_registry.py,sha256=SiyyRRMT1tIXKxwn7IXq0SaIrYt3DEvBBe8TvNxa644,5950 +matplotlib/tests/test_backend_svg.py,sha256=L73hpBa1P-y978Y3Gpd_eSJAFJMvUvrOqiYaJ-CkQUw,22930 +matplotlib/tests/test_backend_template.py,sha256=uuE7oZ9pSBVDWrPL05B0WgCFsgv6HlXyetuPTfJn6a8,2184 +matplotlib/tests/test_backend_tk.py,sha256=A1h3AfPhEMbG5PLdDr1gbnwt_DlaQOBgFux5QsIpCpM,8850 +matplotlib/tests/test_backend_tools.py,sha256=C-B7NCkyWsQ5KzQEnI5Be16DsAHHZJU9P5v9--wsF-o,501 +matplotlib/tests/test_backend_webagg.py,sha256=4Oc-z7w-mTGETB1x0FQ_gZP9qHfyWh5lwWc9qPkkisc,938 +matplotlib/tests/test_backends_interactive.py,sha256=oo-vRlDTrLQZOm53FfWECF_JSKDDBJ-BKigekZIO8XE,28880 +matplotlib/tests/test_basic.py,sha256=ubAnlE-lFQzMhoBlWYZJKCAsox9Y3jBXS_IMn29Zi84,1141 +matplotlib/tests/test_bbox_tight.py,sha256=5yo6yy3HTUIf2-oGZllieaLynmOupzWcuPpeGmgS5BQ,6314 +matplotlib/tests/test_bezier.py,sha256=IrrDWAV5O6ELMdziaaOeBI7LfyEaTBVsT4B1T9KMzD8,692 +matplotlib/tests/test_category.py,sha256=jWXOAGOR_gpvrjarvJB6Tyot0yOIWaO6d1F9mrNcVPo,12043 +matplotlib/tests/test_cbook.py,sha256=xESpD9VE9dXInGp_QyzRCeGvmsgY2j9IyNMSUBae-WA,33656 +matplotlib/tests/test_collections.py,sha256=C4jbvAq9t7wcsXY-0SH666aP2t8w4dyO8nRnu7TRdYc,48896 +matplotlib/tests/test_colorbar.py,sha256=tDdmWz_LxCbD80ksM6iqrHYqpombyL8QtqpKQSKOS14,46711 +matplotlib/tests/test_colors.py,sha256=-Q5VZfQWI-NSMOa4tusxDgWe705a7uymMHLI8h10C8A,61215 +matplotlib/tests/test_compare_images.py,sha256=NcBoT8HAxtzoR1zZBu0V3MFpGWtdFaDblQ8o3OTO6zM,3260 +matplotlib/tests/test_constrainedlayout.py,sha256=Mx86XCAfw0XEG67dU73GjZZZi38EZMJErwvgrm7-ThU,24270 +matplotlib/tests/test_container.py,sha256=FTewckOd3dJqLOzEUa29Itjqusk7Mx7MK5xPVMhzMmc,694 +matplotlib/tests/test_contour.py,sha256=O_VIhjDgsb0A-brYR-gJ-WUcqzYzH0XLQD4aI_5SocM,30289 +matplotlib/tests/test_cycles.py,sha256=3KyRmWH29WUgvIXUT06tKVDNCfDWqxuxlLueIp-FIl0,5996 +matplotlib/tests/test_dates.py,sha256=jOK-KIAMBRCcnlgpzknpLJb3JvO3xFa5Qe3O5mVTeGM,56533 +matplotlib/tests/test_datetime.py,sha256=n2TYVItNQcUFBLUivuTXBnc0fElIeSmy9hu4ZNMVurc,32635 +matplotlib/tests/test_determinism.py,sha256=harG-hnOpD5HZFKPtHebT0snHu8V6C6BScVFml1Mqyg,7958 +matplotlib/tests/test_doc.py,sha256=K6HhdRcHRUNNC0iIhxBLCq5tOqxqHBSvanHxXg5w5iI,1015 +matplotlib/tests/test_dviread.py,sha256=JeTuA2FMUj1FddxDVBXUtnvZYTgztE-CyRXL_mI20P0,2764 +matplotlib/tests/test_figure.py,sha256=bGyAW9fwJc3gVVul_Vd5f8TEmbrEoDAMWV4Rm5-QXQQ,60289 +matplotlib/tests/test_font_manager.py,sha256=Qkewu4tMylgVciamVwWL8TFoDon8YyzN-9po6usN6Mk,14136 +matplotlib/tests/test_fontconfig_pattern.py,sha256=LSR6lWF_0cVOshkGiflYaTCLcISRIJM6mjXm5QtDjX4,2168 +matplotlib/tests/test_ft2font.py,sha256=lz13lRGmxdQ9eRjQlnigdfQWBwaST1A3_AgEAR5dJA0,40838 +matplotlib/tests/test_getattr.py,sha256=Tl_H1zpwLdSIVutc4vi-QwDCeWPzBGpN31N9ItzTkeQ,1090 +matplotlib/tests/test_gridspec.py,sha256=SYJuJucA_PyQ2Rsov1RaNhadOEWGDcMbQcVFrWIoy3I,1580 +matplotlib/tests/test_image.py,sha256=O9pUxNrGyewPievlC-WDhJ3hkCTsiAq4id6E6hJ22Is,59562 +matplotlib/tests/test_legend.py,sha256=QeMjTc20_IZeVShlxEZQQsv2suFAPqpvD86TBHESyks,55122 +matplotlib/tests/test_lines.py,sha256=KElNi2GlJCtGLhNpf8rl8bkDhMcQ9ittyRdsX4rdSxo,15035 +matplotlib/tests/test_marker.py,sha256=w0WVHoaD-6iybjUSENoVFFdUOOR13943JcE4sgz3qhI,11410 +matplotlib/tests/test_mathtext.py,sha256=2S1i3BLNffEqz1t-mehhWBROBcsdBZsdgrticxW6Xrw,24549 +matplotlib/tests/test_matplotlib.py,sha256=ZQgD9x7UVWFnVDOm9K5iKfobz6BtMtFkgyVRQ5QezYY,3368 +matplotlib/tests/test_mlab.py,sha256=d4qMyogTFMrvlRZEpDs7SjhSmmCnBUMNgSX2bJU6eDk,42269 +matplotlib/tests/test_multivariate_colormaps.py,sha256=wGc08cdUTBDJvhUiwVqTrBS7o19Ei-wQRnWlkny7h5M,20785 +matplotlib/tests/test_offsetbox.py,sha256=VXFfgputVnLodHhK5ofEWqge42trRSvIm2areAbv1ZQ,16656 +matplotlib/tests/test_patches.py,sha256=FeQGNDS0G8DJNWCAQVit2vN4JPN0ARNougGOTCNa3Fk,33592 +matplotlib/tests/test_path.py,sha256=R3oTrr6kS1Nu_q8zeK1uxrrbnQI8NMb5B7yTk8R1eRs,23254 +matplotlib/tests/test_patheffects.py,sha256=q7JA5VbZU5Zsqvc2eGM7YhB9TClkNp3akQCZVsHrNQU,8109 +matplotlib/tests/test_pickle.py,sha256=2VcsJ6QwN9vP4cvkuUCZD7uwKyd1rOCDIaYPEBr3u6E,10014 +matplotlib/tests/test_png.py,sha256=d6u6UkU71T6ULxDVSdMkIT3CUAL46dEuDuNrnjZe5BE,1407 +matplotlib/tests/test_polar.py,sha256=pPXBMmeUIUZhykYyZa5mrrjFL9GJE3vsaTX94cRjstU,18306 +matplotlib/tests/test_preprocess_data.py,sha256=cIVICUi1iahMQS30sqI5IlT2RYJRH2gJ0z60FyuYUFk,11363 +matplotlib/tests/test_pyplot.py,sha256=3sdLSjSnZtXrag2BFH5ah-AjYcrFzzQwgxnLZ-jx7ak,13929 +matplotlib/tests/test_quiver.py,sha256=5zSF_0DpoDXPBvGWD6iu1VfIUna15npLd2UyCG6_Ksg,11953 +matplotlib/tests/test_rcparams.py,sha256=PLos0asOBQMn0hjrVP_itywcbZjT8og_TaB3tqSFHac,26506 +matplotlib/tests/test_sankey.py,sha256=yg4i-qHT5MljFzFGViOnHbMkumM8bhPwRgoQ5M6CUEs,3900 +matplotlib/tests/test_scale.py,sha256=fqLu88lVy7-JZFNslpgiid11_TIivSkM9DxVnHwZJYo,8429 +matplotlib/tests/test_simplification.py,sha256=IJ1yEz2Y58QtKRRHz41NaXVS4kkRipaE_Un0HgM4K2g,21570 +matplotlib/tests/test_skew.py,sha256=_Mjwfgce6WxLH3dafI7irv2Cw0ANifytCtQXdyOStCk,6349 +matplotlib/tests/test_sphinxext.py,sha256=9hzVcUgMhtfo_6A_c-SvCYWDQY45Oq-lD6Os4PnRg3s,9937 +matplotlib/tests/test_spines.py,sha256=g2CeF0S73XoGA-T04NvYFalIyZvcq7CpbTvN-ikVFn0,5274 +matplotlib/tests/test_streamplot.py,sha256=mSLuZ7E2eEtcI5nKHBZZ_30OYte5awqsXWFWROJYtCQ,5731 +matplotlib/tests/test_style.py,sha256=sd6rMLpPBS1hinR2svI1rXZmnXUnMQk1szxSNBUXtzU,6509 +matplotlib/tests/test_subplots.py,sha256=-YVCEob48FyLUmdInE8vQ2E2b1txTbqChFb1tDUu16s,11082 +matplotlib/tests/test_table.py,sha256=QsrDRpe864LP3zkQBtTciKub5raYz3i3Vrt_Ve3kdzQ,8659 +matplotlib/tests/test_testing.py,sha256=eh-1r4PIXcM7hfSKCNTU899QxRYWhZBg6W7x0TDVUxo,1057 +matplotlib/tests/test_texmanager.py,sha256=j_5ZG02ztIO-m0oXzd31a13YFw_G7JR7Ldt3fwf-phI,2647 +matplotlib/tests/test_text.py,sha256=3RxKrfJJBWKFGSrEvxeCG5rxcvlkIivir8wCj1ls5-M,38473 +matplotlib/tests/test_textpath.py,sha256=WLXvT5OzE6Tew4pr87LH-cgioCzM7srgMNRemiMEC5o,271 +matplotlib/tests/test_ticker.py,sha256=Bj3hiEgXMBXzDi0Lmg8k-Qg4ChPZrQVqGU0Qfh7Sv84,74759 +matplotlib/tests/test_tightlayout.py,sha256=KU0m9BnpbKV-jBdaI4EbDLE5Cf_BLtF0Y9hcFfQ4zlQ,13978 +matplotlib/tests/test_transforms.py,sha256=NfWkPWOKAmY1sq_R1T85ct4CYdFmYUjmjtg2uwOYIIY,48671 +matplotlib/tests/test_triangulation.py,sha256=hstVYhH09BoVl8L0n6vHXBabniZLUu2KYl6wqZn2Xac,55289 +matplotlib/tests/test_type1font.py,sha256=gZZDFi0buFus_aAgOrmtwKqbC36-88UkvM8Afbcngs4,6369 +matplotlib/tests/test_units.py,sha256=0v7JNqjkA8MVnvlOeFoYqQ3sW1KjRY_ijp8BGM8ZW_U,11675 +matplotlib/tests/test_usetex.py,sha256=a-Y6NuyROPHDGP2ELsOZNSVwBUoGtAv1xQZfisl9lSE,6405 +matplotlib/tests/test_widgets.py,sha256=U2FMCCJyKD-pcLbzGzEBAL91-3Fx80wsYdinF7eCOrg,66435 +matplotlib/texmanager.py,sha256=k3Ud7vHbtY0CjXmzHP-ZnEAxg6bHVxo2ALve7_e1rKg,15319 +matplotlib/texmanager.pyi,sha256=di3gbC9muXKTo5VCrW5ye-e19A1mrOl8e8lvI3b904A,1116 +matplotlib/text.py,sha256=xYSkLZiOpew4G1jkLA5pUjtF7qUhOs3yp8IEFMqE6Gg,70856 +matplotlib/text.pyi,sha256=EL_-kiqz88kuPs0hss6IucRrOCsLJ4zaKOYRFV5Wbk8,7019 +matplotlib/textpath.py,sha256=QmrZQ2Mtfyao6qWg-wmEGAbTwkuJ54AnAzFf9NzZHg4,13254 +matplotlib/textpath.pyi,sha256=rqOeTAeQYgm2b2NpetrEX0gMF8PzzW43xS5mNfUA98M,2529 +matplotlib/ticker.py,sha256=YoIJyWVlYk3DIZbBl-w6fzkuVES3j1dN4nyf-SHKVDg,107381 +matplotlib/ticker.pyi,sha256=YvnQDHxJT9H-iomDZpvBCoYkfRRYSot2MR0H0pjZM78,10604 +matplotlib/transforms.py,sha256=ctnOTqgPP4dgHCmSkUayQWL9KkjzWSzQEZALcc9oEzA,99763 +matplotlib/transforms.pyi,sha256=0I70FR4ZWmRoo6w5KjbXRrH0dVDmQyPFbGt_sNTYq10,12102 +matplotlib/tri/__init__.py,sha256=asnfefKRpJv7sGbfddCMybnJInVDPwgph7g0mpoh2u4,820 +matplotlib/tri/__pycache__/__init__.cpython-311.pyc,, +matplotlib/tri/__pycache__/_triangulation.cpython-311.pyc,, +matplotlib/tri/__pycache__/_tricontour.cpython-311.pyc,, +matplotlib/tri/__pycache__/_trifinder.cpython-311.pyc,, +matplotlib/tri/__pycache__/_triinterpolate.cpython-311.pyc,, +matplotlib/tri/__pycache__/_tripcolor.cpython-311.pyc,, +matplotlib/tri/__pycache__/_triplot.cpython-311.pyc,, +matplotlib/tri/__pycache__/_trirefine.cpython-311.pyc,, +matplotlib/tri/__pycache__/_tritools.cpython-311.pyc,, +matplotlib/tri/_triangulation.py,sha256=Ur2lKMOx4NrZxwyi0hBeBnVzicuKaCke0NkrZneSklM,9784 +matplotlib/tri/_triangulation.pyi,sha256=pVw1rvpIcl00p7V7E9GcvJSqQWyoxlZXX_p0_VSxTiY,1017 +matplotlib/tri/_tricontour.py,sha256=yxeH8QgBub1nTq9qbO5Iiiz81bcLXDeMcJHUS2Ahmns,10220 +matplotlib/tri/_tricontour.pyi,sha256=jnsAmVRX0-FOUw9ptUgci9J4T4JQRloKeH8fh8aAi-o,1155 +matplotlib/tri/_trifinder.py,sha256=3gUzJZDIwfdsSJUE8hIKso9e1-UGvynUN9HxaqC1EEc,3522 +matplotlib/tri/_trifinder.pyi,sha256=dXcZucacAS3Ch6nrDBPh2e3LYZLfZ7VwqpBUBb-vMPo,405 +matplotlib/tri/_triinterpolate.py,sha256=4FtyJSoJpHcFxkSkZHZ1aNengVNWqVKF4l78PgCH8O0,62445 +matplotlib/tri/_triinterpolate.pyi,sha256=nR0o0Jm0uPH-6l0ft1WRHqYlq-6o84X6M0aX1UJ9IvE,1044 +matplotlib/tri/_tripcolor.py,sha256=Z6urFv-naDM3_rhv_pkgIZI53h88aOo9qWc3MH7GmBA,6705 +matplotlib/tri/_tripcolor.pyi,sha256=QsA-A2ohj3r_tAElt2-9pzi47JiU01tNlRPDIptqnh4,1781 +matplotlib/tri/_triplot.py,sha256=jlHSz36Z5S18zBKc639PlSqdhfl7jHol8ExlddJuDI4,3102 +matplotlib/tri/_triplot.pyi,sha256=9USU-BfitrcdQE8yWOUlBX59QBNoHCWivDon9JbDQ0k,446 +matplotlib/tri/_trirefine.py,sha256=NG8bsDhZ5EOxMT-MsEWzJm11ZR3_8CAYHlG53IGi0ps,13178 +matplotlib/tri/_trirefine.pyi,sha256=J_PmjbeI6UbLaeecgj1OCvGe_sr9UUsNK9NGBSlQ320,1056 +matplotlib/tri/_tritools.py,sha256=wC9KVE6UqkWVHpyW9FU4hQdqRVRVmJlhaBF1EXsaD8U,10575 +matplotlib/tri/_tritools.pyi,sha256=XWwwvH2nIAmH8k59aRjnLBVQbTwKvd_FzdsRNASCJMw,402 +matplotlib/typing.py,sha256=ZxpQ5jAqiprq3UkqWParWJITgIuOi4ZJ6WEM_q3QOis,2439 +matplotlib/units.py,sha256=7O-llc8k3GpdotUs2tWcEGgoUHHX-Y7o0R7f-1Jve3k,6429 +matplotlib/widgets.py,sha256=zUdNQ_unqHLh76ucCxLKFRUGDiFB1Yi8MmEod5Im5H8,152754 +matplotlib/widgets.pyi,sha256=BpbjCZec7n-uOj_cImu-cB1imVC4oeL8rJUwjxbmN4c,15383 +mpl_toolkits/axes_grid1/__init__.py,sha256=wiuUCQo1g20SW5T3mFOmI9dGCJY6aDmglpQw5DfszEU,371 +mpl_toolkits/axes_grid1/__pycache__/__init__.cpython-311.pyc,, +mpl_toolkits/axes_grid1/__pycache__/anchored_artists.cpython-311.pyc,, +mpl_toolkits/axes_grid1/__pycache__/axes_divider.cpython-311.pyc,, +mpl_toolkits/axes_grid1/__pycache__/axes_grid.cpython-311.pyc,, +mpl_toolkits/axes_grid1/__pycache__/axes_rgb.cpython-311.pyc,, +mpl_toolkits/axes_grid1/__pycache__/axes_size.cpython-311.pyc,, +mpl_toolkits/axes_grid1/__pycache__/inset_locator.cpython-311.pyc,, +mpl_toolkits/axes_grid1/__pycache__/mpl_axes.cpython-311.pyc,, +mpl_toolkits/axes_grid1/__pycache__/parasite_axes.cpython-311.pyc,, +mpl_toolkits/axes_grid1/anchored_artists.py,sha256=ZO5bIF_29sWrk-lWocKJ_45OQdluf_gu7nLrCtfKtdY,17161 +mpl_toolkits/axes_grid1/axes_divider.py,sha256=JD3jGBAqRHRYb1jablrpq_RFQvYtYfwtIIPJgQpbKPc,21892 +mpl_toolkits/axes_grid1/axes_grid.py,sha256=sjEbq6hu7YFimoOYVIcaccEGXsSljNPaTLfJjFHWVtM,22344 +mpl_toolkits/axes_grid1/axes_rgb.py,sha256=pabgaWJuLTCPw2FlT6Zfy5d0_95CEvaLeosWRTElR98,5227 +mpl_toolkits/axes_grid1/axes_size.py,sha256=UAEQ-t0qeJlQcwbbrY4tK2NuSWheFyUXIkk4BUCauHc,7713 +mpl_toolkits/axes_grid1/inset_locator.py,sha256=_2U8ZAj_x7gjKhPk40VSbzE7L6wO2VY-OoOMfd6xOJs,19649 +mpl_toolkits/axes_grid1/mpl_axes.py,sha256=vFCttnj9JIgY3Mt2eOi-O_FVvdZ6SW_sBtIBFib6bz4,4251 +mpl_toolkits/axes_grid1/parasite_axes.py,sha256=809Uy3bLgXIDIGztefcvS9EoZcu3KfMV1QwLzX8qVT4,9404 +mpl_toolkits/axes_grid1/tests/__init__.py,sha256=sKLxL9jEJBX7eh5OumtXSOnTriPrJUkujTHFtnJVFrM,365 +mpl_toolkits/axes_grid1/tests/__pycache__/__init__.cpython-311.pyc,, +mpl_toolkits/axes_grid1/tests/__pycache__/conftest.cpython-311.pyc,, +mpl_toolkits/axes_grid1/tests/__pycache__/test_axes_grid1.cpython-311.pyc,, +mpl_toolkits/axes_grid1/tests/conftest.py,sha256=zB61sy90X97YJ16mIGiuaEAaBIjBEzRAK_qfSCichQM,147 +mpl_toolkits/axes_grid1/tests/test_axes_grid1.py,sha256=x-W845Cvl2O-eGGhpxKDayFg7-QQXNA94nODLCFPpJc,29093 +mpl_toolkits/axisartist/__init__.py,sha256=RPaNDl22FbmDP7ZRsku1yCqpoNqcclCk0a3rXj3G7fE,631 +mpl_toolkits/axisartist/__pycache__/__init__.cpython-311.pyc,, +mpl_toolkits/axisartist/__pycache__/angle_helper.cpython-311.pyc,, +mpl_toolkits/axisartist/__pycache__/axes_divider.cpython-311.pyc,, +mpl_toolkits/axisartist/__pycache__/axis_artist.cpython-311.pyc,, +mpl_toolkits/axisartist/__pycache__/axisline_style.cpython-311.pyc,, +mpl_toolkits/axisartist/__pycache__/axislines.cpython-311.pyc,, +mpl_toolkits/axisartist/__pycache__/floating_axes.cpython-311.pyc,, +mpl_toolkits/axisartist/__pycache__/grid_finder.cpython-311.pyc,, +mpl_toolkits/axisartist/__pycache__/grid_helper_curvelinear.cpython-311.pyc,, +mpl_toolkits/axisartist/__pycache__/parasite_axes.cpython-311.pyc,, +mpl_toolkits/axisartist/angle_helper.py,sha256=-mjKpaR1pLMJuoc0sx0_V3bv0iRPMrpS7r_WI0UYrCc,12952 +mpl_toolkits/axisartist/axes_divider.py,sha256=65xSCQ9cHSC3KE7J7HxS4bfsDTAbPmwyz1jJ43BqnBs,122 +mpl_toolkits/axisartist/axis_artist.py,sha256=9FY9yXl8eF5QuBvF8-Vipv_rmdpcOlA3Q48a5v7FoeA,38328 +mpl_toolkits/axisartist/axisline_style.py,sha256=9jbDkXEzMQiDHR-lDYKZEvTADtJwt2qlN1cErVUUdx0,6723 +mpl_toolkits/axisartist/axislines.py,sha256=QxKvChTaRPj0ovvxdrfr3pOzExEIf5svDwxRE7enEXg,16556 +mpl_toolkits/axisartist/floating_axes.py,sha256=kfhWKkmiy8tkXoVHvooTidXIlicU861VncElsUcBhLo,10337 +mpl_toolkits/axisartist/grid_finder.py,sha256=Hi2zwnQilavgrqWKScuSRba_WBPqqrbmErGU0XyAsOo,12265 +mpl_toolkits/axisartist/grid_helper_curvelinear.py,sha256=ofN7pPqEMh3r6bSf9eOHkAZEOrmhiNZV-Yig3jozkC4,12349 +mpl_toolkits/axisartist/parasite_axes.py,sha256=Ydi4-0Lbczr6K7Sz1-fRwK4Tm8KlHrOIumx67Xbo_9c,244 +mpl_toolkits/axisartist/tests/__init__.py,sha256=sKLxL9jEJBX7eh5OumtXSOnTriPrJUkujTHFtnJVFrM,365 +mpl_toolkits/axisartist/tests/__pycache__/__init__.cpython-311.pyc,, +mpl_toolkits/axisartist/tests/__pycache__/conftest.cpython-311.pyc,, +mpl_toolkits/axisartist/tests/__pycache__/test_angle_helper.cpython-311.pyc,, +mpl_toolkits/axisartist/tests/__pycache__/test_axis_artist.cpython-311.pyc,, +mpl_toolkits/axisartist/tests/__pycache__/test_axislines.cpython-311.pyc,, +mpl_toolkits/axisartist/tests/__pycache__/test_floating_axes.cpython-311.pyc,, +mpl_toolkits/axisartist/tests/__pycache__/test_grid_finder.cpython-311.pyc,, +mpl_toolkits/axisartist/tests/__pycache__/test_grid_helper_curvelinear.cpython-311.pyc,, +mpl_toolkits/axisartist/tests/conftest.py,sha256=zB61sy90X97YJ16mIGiuaEAaBIjBEzRAK_qfSCichQM,147 +mpl_toolkits/axisartist/tests/test_angle_helper.py,sha256=PwhJwBm2kk4uMyhdO5arQs8IlqSX2vN0hvUzI7YHqrw,5670 +mpl_toolkits/axisartist/tests/test_axis_artist.py,sha256=wt3bicVgUPnBX48-dH0Z6hboHgutIgwVpaGkcUZDeVU,2980 +mpl_toolkits/axisartist/tests/test_axislines.py,sha256=NXegrvEzVWovshta-qjbUKA2tpQcAbjYbfwkf6tKT6Y,4353 +mpl_toolkits/axisartist/tests/test_floating_axes.py,sha256=l24VB1SLrsJZOMMH2jmBny9ETha4AqAM5KokdGOa5Wk,4083 +mpl_toolkits/axisartist/tests/test_grid_finder.py,sha256=cwQLDOdcJbAY2E7dr8595yzuNh1_Yh80r_O8WGT2hMY,1156 +mpl_toolkits/axisartist/tests/test_grid_helper_curvelinear.py,sha256=OhHej0vCfCjJJknT7yIt4OxZd6OMJCXnFoT3pzqUtTo,7216 +mpl_toolkits/mplot3d/__init__.py,sha256=fH9HdMfFMvjbIWqy2gjQnm2m3ae1CvLiuH6LwKHo0kI,49 +mpl_toolkits/mplot3d/__pycache__/__init__.cpython-311.pyc,, +mpl_toolkits/mplot3d/__pycache__/art3d.cpython-311.pyc,, +mpl_toolkits/mplot3d/__pycache__/axes3d.cpython-311.pyc,, +mpl_toolkits/mplot3d/__pycache__/axis3d.cpython-311.pyc,, +mpl_toolkits/mplot3d/__pycache__/proj3d.cpython-311.pyc,, +mpl_toolkits/mplot3d/art3d.py,sha256=ovygkCV4P7dQ9xIicczbJyyAbaEy2C1HYnzjuV3COus,50548 +mpl_toolkits/mplot3d/axes3d.py,sha256=hCBda2QB6_OYyKEJOG0paPEgDPmLIcrEMkZuKqOUFho,157921 +mpl_toolkits/mplot3d/axis3d.py,sha256=eQPWo2TKbRsPY8JUt5drjBbyRdVKBgeT2EF4HGg51oU,29327 +mpl_toolkits/mplot3d/proj3d.py,sha256=6Hm6WPzeu_wjfeR8afrQ1nCfjS0p3wjvoSIxJWVlS0s,6349 +mpl_toolkits/mplot3d/tests/__init__.py,sha256=sKLxL9jEJBX7eh5OumtXSOnTriPrJUkujTHFtnJVFrM,365 +mpl_toolkits/mplot3d/tests/__pycache__/__init__.cpython-311.pyc,, +mpl_toolkits/mplot3d/tests/__pycache__/conftest.cpython-311.pyc,, +mpl_toolkits/mplot3d/tests/__pycache__/test_art3d.cpython-311.pyc,, +mpl_toolkits/mplot3d/tests/__pycache__/test_axes3d.cpython-311.pyc,, +mpl_toolkits/mplot3d/tests/__pycache__/test_legend3d.cpython-311.pyc,, +mpl_toolkits/mplot3d/tests/conftest.py,sha256=zB61sy90X97YJ16mIGiuaEAaBIjBEzRAK_qfSCichQM,147 +mpl_toolkits/mplot3d/tests/test_art3d.py,sha256=AdFcJf0vz1_b-PIn2cVonPHF1vZw2EOHvmjdgBRa5Yo,3317 +mpl_toolkits/mplot3d/tests/test_axes3d.py,sha256=Xf5M1DipyVfsBBF8dA3AXg5U0Hts194EfAh57VSupE4,92348 +mpl_toolkits/mplot3d/tests/test_legend3d.py,sha256=QGPaoaucJP9KIC68g8zmk4divB_w5PtQc4DMIHMpcA8,4343 +pylab.py,sha256=zUXU0l7e7C5jmDSJbM0GLQxBun3xzuXNf1tuoZYA6Xk,110 diff --git a/venv/lib/python3.11/site-packages/matplotlib-3.10.7.dist-info/WHEEL b/venv/lib/python3.11/site-packages/matplotlib-3.10.7.dist-info/WHEEL new file mode 100644 index 0000000..3d2901c --- /dev/null +++ b/venv/lib/python3.11/site-packages/matplotlib-3.10.7.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: meson +Root-Is-Purelib: false +Tag: cp311-cp311-manylinux_2_17_x86_64 +Tag: cp311-cp311-manylinux2014_x86_64 + diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/__init__.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/__init__.py new file mode 100644 index 0000000..c553024 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/__init__.py @@ -0,0 +1,10 @@ +from . import axes_size as Size +from .axes_divider import Divider, SubplotDivider, make_axes_locatable +from .axes_grid import AxesGrid, Grid, ImageGrid + +from .parasite_axes import host_subplot, host_axes + +__all__ = ["Size", + "Divider", "SubplotDivider", "make_axes_locatable", + "AxesGrid", "Grid", "ImageGrid", + "host_subplot", "host_axes"] diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/anchored_artists.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/anchored_artists.py new file mode 100644 index 0000000..214b158 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/anchored_artists.py @@ -0,0 +1,414 @@ +from matplotlib import transforms +from matplotlib.offsetbox import (AnchoredOffsetbox, AuxTransformBox, + DrawingArea, TextArea, VPacker) +from matplotlib.patches import (Rectangle, ArrowStyle, + FancyArrowPatch, PathPatch) +from matplotlib.text import TextPath + +__all__ = ['AnchoredDrawingArea', 'AnchoredAuxTransformBox', + 'AnchoredSizeBar', 'AnchoredDirectionArrows'] + + +class AnchoredDrawingArea(AnchoredOffsetbox): + def __init__(self, width, height, xdescent, ydescent, + loc, pad=0.4, borderpad=0.5, prop=None, frameon=True, + **kwargs): + """ + An anchored container with a fixed size and fillable `.DrawingArea`. + + Artists added to the *drawing_area* will have their coordinates + interpreted as pixels. Any transformations set on the artists will be + overridden. + + Parameters + ---------- + width, height : float + Width and height of the container, in pixels. + xdescent, ydescent : float + Descent of the container in the x- and y- direction, in pixels. + loc : str + Location of this artist. Valid locations are + 'upper left', 'upper center', 'upper right', + 'center left', 'center', 'center right', + 'lower left', 'lower center', 'lower right'. + For backward compatibility, numeric values are accepted as well. + See the parameter *loc* of `.Legend` for details. + pad : float, default: 0.4 + Padding around the child objects, in fraction of the font size. + borderpad : float, default: 0.5 + Border padding, in fraction of the font size. + prop : `~matplotlib.font_manager.FontProperties`, optional + Font property used as a reference for paddings. + frameon : bool, default: True + If True, draw a box around this artist. + **kwargs + Keyword arguments forwarded to `.AnchoredOffsetbox`. + + Attributes + ---------- + drawing_area : `~matplotlib.offsetbox.DrawingArea` + A container for artists to display. + + Examples + -------- + To display blue and red circles of different sizes in the upper right + of an Axes *ax*: + + >>> ada = AnchoredDrawingArea(20, 20, 0, 0, + ... loc='upper right', frameon=False) + >>> ada.drawing_area.add_artist(Circle((10, 10), 10, fc="b")) + >>> ada.drawing_area.add_artist(Circle((30, 10), 5, fc="r")) + >>> ax.add_artist(ada) + """ + self.da = DrawingArea(width, height, xdescent, ydescent) + self.drawing_area = self.da + + super().__init__( + loc, pad=pad, borderpad=borderpad, child=self.da, prop=None, + frameon=frameon, **kwargs + ) + + +class AnchoredAuxTransformBox(AnchoredOffsetbox): + def __init__(self, transform, loc, + pad=0.4, borderpad=0.5, prop=None, frameon=True, **kwargs): + """ + An anchored container with transformed coordinates. + + Artists added to the *drawing_area* are scaled according to the + coordinates of the transformation used. The dimensions of this artist + will scale to contain the artists added. + + Parameters + ---------- + transform : `~matplotlib.transforms.Transform` + The transformation object for the coordinate system in use, i.e., + :attr:`matplotlib.axes.Axes.transData`. + loc : str + Location of this artist. Valid locations are + 'upper left', 'upper center', 'upper right', + 'center left', 'center', 'center right', + 'lower left', 'lower center', 'lower right'. + For backward compatibility, numeric values are accepted as well. + See the parameter *loc* of `.Legend` for details. + pad : float, default: 0.4 + Padding around the child objects, in fraction of the font size. + borderpad : float, default: 0.5 + Border padding, in fraction of the font size. + prop : `~matplotlib.font_manager.FontProperties`, optional + Font property used as a reference for paddings. + frameon : bool, default: True + If True, draw a box around this artist. + **kwargs + Keyword arguments forwarded to `.AnchoredOffsetbox`. + + Attributes + ---------- + drawing_area : `~matplotlib.offsetbox.AuxTransformBox` + A container for artists to display. + + Examples + -------- + To display an ellipse in the upper left, with a width of 0.1 and + height of 0.4 in data coordinates: + + >>> box = AnchoredAuxTransformBox(ax.transData, loc='upper left') + >>> el = Ellipse((0, 0), width=0.1, height=0.4, angle=30) + >>> box.drawing_area.add_artist(el) + >>> ax.add_artist(box) + """ + self.drawing_area = AuxTransformBox(transform) + + super().__init__(loc, pad=pad, borderpad=borderpad, + child=self.drawing_area, prop=prop, frameon=frameon, + **kwargs) + + +class AnchoredSizeBar(AnchoredOffsetbox): + def __init__(self, transform, size, label, loc, + pad=0.1, borderpad=0.1, sep=2, + frameon=True, size_vertical=0, color='black', + label_top=False, fontproperties=None, fill_bar=None, + **kwargs): + """ + Draw a horizontal scale bar with a center-aligned label underneath. + + Parameters + ---------- + transform : `~matplotlib.transforms.Transform` + The transformation object for the coordinate system in use, i.e., + :attr:`matplotlib.axes.Axes.transData`. + size : float + Horizontal length of the size bar, given in coordinates of + *transform*. + label : str + Label to display. + loc : str + Location of the size bar. Valid locations are + 'upper left', 'upper center', 'upper right', + 'center left', 'center', 'center right', + 'lower left', 'lower center', 'lower right'. + For backward compatibility, numeric values are accepted as well. + See the parameter *loc* of `.Legend` for details. + pad : float, default: 0.1 + Padding around the label and size bar, in fraction of the font + size. + borderpad : float, default: 0.1 + Border padding, in fraction of the font size. + sep : float, default: 2 + Separation between the label and the size bar, in points. + frameon : bool, default: True + If True, draw a box around the horizontal bar and label. + size_vertical : float, default: 0 + Vertical length of the size bar, given in coordinates of + *transform*. + color : str, default: 'black' + Color for the size bar and label. + label_top : bool, default: False + If True, the label will be over the size bar. + fontproperties : `~matplotlib.font_manager.FontProperties`, optional + Font properties for the label text. + fill_bar : bool, optional + If True and if *size_vertical* is nonzero, the size bar will + be filled in with the color specified by the size bar. + Defaults to True if *size_vertical* is greater than + zero and False otherwise. + **kwargs + Keyword arguments forwarded to `.AnchoredOffsetbox`. + + Attributes + ---------- + size_bar : `~matplotlib.offsetbox.AuxTransformBox` + Container for the size bar. + txt_label : `~matplotlib.offsetbox.TextArea` + Container for the label of the size bar. + + Notes + ----- + If *prop* is passed as a keyword argument, but *fontproperties* is + not, then *prop* is assumed to be the intended *fontproperties*. + Using both *prop* and *fontproperties* is not supported. + + Examples + -------- + >>> import matplotlib.pyplot as plt + >>> import numpy as np + >>> from mpl_toolkits.axes_grid1.anchored_artists import ( + ... AnchoredSizeBar) + >>> fig, ax = plt.subplots() + >>> ax.imshow(np.random.random((10, 10))) + >>> bar = AnchoredSizeBar(ax.transData, 3, '3 data units', 4) + >>> ax.add_artist(bar) + >>> fig.show() + + Using all the optional parameters + + >>> import matplotlib.font_manager as fm + >>> fontprops = fm.FontProperties(size=14, family='monospace') + >>> bar = AnchoredSizeBar(ax.transData, 3, '3 units', 4, pad=0.5, + ... sep=5, borderpad=0.5, frameon=False, + ... size_vertical=0.5, color='white', + ... fontproperties=fontprops) + """ + if fill_bar is None: + fill_bar = size_vertical > 0 + + self.size_bar = AuxTransformBox(transform) + self.size_bar.add_artist(Rectangle((0, 0), size, size_vertical, + fill=fill_bar, facecolor=color, + edgecolor=color)) + + if fontproperties is None and 'prop' in kwargs: + fontproperties = kwargs.pop('prop') + + if fontproperties is None: + textprops = {'color': color} + else: + textprops = {'color': color, 'fontproperties': fontproperties} + + self.txt_label = TextArea(label, textprops=textprops) + + if label_top: + _box_children = [self.txt_label, self.size_bar] + else: + _box_children = [self.size_bar, self.txt_label] + + self._box = VPacker(children=_box_children, + align="center", + pad=0, sep=sep) + + super().__init__(loc, pad=pad, borderpad=borderpad, child=self._box, + prop=fontproperties, frameon=frameon, **kwargs) + + +class AnchoredDirectionArrows(AnchoredOffsetbox): + def __init__(self, transform, label_x, label_y, length=0.15, + fontsize=0.08, loc='upper left', angle=0, aspect_ratio=1, + pad=0.4, borderpad=0.4, frameon=False, color='w', alpha=1, + sep_x=0.01, sep_y=0, fontproperties=None, back_length=0.15, + head_width=10, head_length=15, tail_width=2, + text_props=None, arrow_props=None, + **kwargs): + """ + Draw two perpendicular arrows to indicate directions. + + Parameters + ---------- + transform : `~matplotlib.transforms.Transform` + The transformation object for the coordinate system in use, i.e., + :attr:`matplotlib.axes.Axes.transAxes`. + label_x, label_y : str + Label text for the x and y arrows + length : float, default: 0.15 + Length of the arrow, given in coordinates of *transform*. + fontsize : float, default: 0.08 + Size of label strings, given in coordinates of *transform*. + loc : str, default: 'upper left' + Location of the arrow. Valid locations are + 'upper left', 'upper center', 'upper right', + 'center left', 'center', 'center right', + 'lower left', 'lower center', 'lower right'. + For backward compatibility, numeric values are accepted as well. + See the parameter *loc* of `.Legend` for details. + angle : float, default: 0 + The angle of the arrows in degrees. + aspect_ratio : float, default: 1 + The ratio of the length of arrow_x and arrow_y. + Negative numbers can be used to change the direction. + pad : float, default: 0.4 + Padding around the labels and arrows, in fraction of the font size. + borderpad : float, default: 0.4 + Border padding, in fraction of the font size. + frameon : bool, default: False + If True, draw a box around the arrows and labels. + color : str, default: 'white' + Color for the arrows and labels. + alpha : float, default: 1 + Alpha values of the arrows and labels + sep_x, sep_y : float, default: 0.01 and 0 respectively + Separation between the arrows and labels in coordinates of + *transform*. + fontproperties : `~matplotlib.font_manager.FontProperties`, optional + Font properties for the label text. + back_length : float, default: 0.15 + Fraction of the arrow behind the arrow crossing. + head_width : float, default: 10 + Width of arrow head, sent to `.ArrowStyle`. + head_length : float, default: 15 + Length of arrow head, sent to `.ArrowStyle`. + tail_width : float, default: 2 + Width of arrow tail, sent to `.ArrowStyle`. + text_props, arrow_props : dict + Properties of the text and arrows, passed to `.TextPath` and + `.FancyArrowPatch`. + **kwargs + Keyword arguments forwarded to `.AnchoredOffsetbox`. + + Attributes + ---------- + arrow_x, arrow_y : `~matplotlib.patches.FancyArrowPatch` + Arrow x and y + text_path_x, text_path_y : `~matplotlib.text.TextPath` + Path for arrow labels + p_x, p_y : `~matplotlib.patches.PathPatch` + Patch for arrow labels + box : `~matplotlib.offsetbox.AuxTransformBox` + Container for the arrows and labels. + + Notes + ----- + If *prop* is passed as a keyword argument, but *fontproperties* is + not, then *prop* is assumed to be the intended *fontproperties*. + Using both *prop* and *fontproperties* is not supported. + + Examples + -------- + >>> import matplotlib.pyplot as plt + >>> import numpy as np + >>> from mpl_toolkits.axes_grid1.anchored_artists import ( + ... AnchoredDirectionArrows) + >>> fig, ax = plt.subplots() + >>> ax.imshow(np.random.random((10, 10))) + >>> arrows = AnchoredDirectionArrows(ax.transAxes, '111', '110') + >>> ax.add_artist(arrows) + >>> fig.show() + + Using several of the optional parameters, creating downward pointing + arrow and high contrast text labels. + + >>> import matplotlib.font_manager as fm + >>> fontprops = fm.FontProperties(family='monospace') + >>> arrows = AnchoredDirectionArrows(ax.transAxes, 'East', 'South', + ... loc='lower left', color='k', + ... aspect_ratio=-1, sep_x=0.02, + ... sep_y=-0.01, + ... text_props={'ec':'w', 'fc':'k'}, + ... fontproperties=fontprops) + """ + if arrow_props is None: + arrow_props = {} + + if text_props is None: + text_props = {} + + arrowstyle = ArrowStyle("Simple", + head_width=head_width, + head_length=head_length, + tail_width=tail_width) + + if fontproperties is None and 'prop' in kwargs: + fontproperties = kwargs.pop('prop') + + if 'color' not in arrow_props: + arrow_props['color'] = color + + if 'alpha' not in arrow_props: + arrow_props['alpha'] = alpha + + if 'color' not in text_props: + text_props['color'] = color + + if 'alpha' not in text_props: + text_props['alpha'] = alpha + + t_start = transform + t_end = t_start + transforms.Affine2D().rotate_deg(angle) + + self.box = AuxTransformBox(t_end) + + length_x = length + length_y = length*aspect_ratio + + self.arrow_x = FancyArrowPatch( + (0, back_length*length_y), + (length_x, back_length*length_y), + arrowstyle=arrowstyle, + shrinkA=0.0, + shrinkB=0.0, + **arrow_props) + + self.arrow_y = FancyArrowPatch( + (back_length*length_x, 0), + (back_length*length_x, length_y), + arrowstyle=arrowstyle, + shrinkA=0.0, + shrinkB=0.0, + **arrow_props) + + self.box.add_artist(self.arrow_x) + self.box.add_artist(self.arrow_y) + + text_path_x = TextPath(( + length_x+sep_x, back_length*length_y+sep_y), label_x, + size=fontsize, prop=fontproperties) + self.p_x = PathPatch(text_path_x, transform=t_start, **text_props) + self.box.add_artist(self.p_x) + + text_path_y = TextPath(( + length_x*back_length+sep_x, length_y*(1-back_length)+sep_y), + label_y, size=fontsize, prop=fontproperties) + self.p_y = PathPatch(text_path_y, **text_props) + self.box.add_artist(self.p_y) + + super().__init__(loc, pad=pad, borderpad=borderpad, child=self.box, + frameon=frameon, **kwargs) diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/axes_divider.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/axes_divider.py new file mode 100644 index 0000000..50365f4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/axes_divider.py @@ -0,0 +1,618 @@ +""" +Helper classes to adjust the positions of multiple axes at drawing time. +""" + +import functools + +import numpy as np + +import matplotlib as mpl +from matplotlib import _api +from matplotlib.gridspec import SubplotSpec +import matplotlib.transforms as mtransforms +from . import axes_size as Size + + +class Divider: + """ + An Axes positioning class. + + The divider is initialized with lists of horizontal and vertical sizes + (:mod:`mpl_toolkits.axes_grid1.axes_size`) based on which a given + rectangular area will be divided. + + The `new_locator` method then creates a callable object + that can be used as the *axes_locator* of the axes. + """ + + def __init__(self, fig, pos, horizontal, vertical, + aspect=None, anchor="C"): + """ + Parameters + ---------- + fig : Figure + pos : tuple of 4 floats + Position of the rectangle that will be divided. + horizontal : list of :mod:`~mpl_toolkits.axes_grid1.axes_size` + Sizes for horizontal division. + vertical : list of :mod:`~mpl_toolkits.axes_grid1.axes_size` + Sizes for vertical division. + aspect : bool, optional + Whether overall rectangular area is reduced so that the relative + part of the horizontal and vertical scales have the same scale. + anchor : (float, float) or {'C', 'SW', 'S', 'SE', 'E', 'NE', 'N', \ +'NW', 'W'}, default: 'C' + Placement of the reduced rectangle, when *aspect* is True. + """ + + self._fig = fig + self._pos = pos + self._horizontal = horizontal + self._vertical = vertical + self._anchor = anchor + self.set_anchor(anchor) + self._aspect = aspect + self._xrefindex = 0 + self._yrefindex = 0 + self._locator = None + + def get_horizontal_sizes(self, renderer): + return np.array([s.get_size(renderer) for s in self.get_horizontal()]) + + def get_vertical_sizes(self, renderer): + return np.array([s.get_size(renderer) for s in self.get_vertical()]) + + def set_position(self, pos): + """ + Set the position of the rectangle. + + Parameters + ---------- + pos : tuple of 4 floats + position of the rectangle that will be divided + """ + self._pos = pos + + def get_position(self): + """Return the position of the rectangle.""" + return self._pos + + def set_anchor(self, anchor): + """ + Parameters + ---------- + anchor : (float, float) or {'C', 'SW', 'S', 'SE', 'E', 'NE', 'N', \ +'NW', 'W'} + Either an (*x*, *y*) pair of relative coordinates (0 is left or + bottom, 1 is right or top), 'C' (center), or a cardinal direction + ('SW', southwest, is bottom left, etc.). + + See Also + -------- + .Axes.set_anchor + """ + if isinstance(anchor, str): + _api.check_in_list(mtransforms.Bbox.coefs, anchor=anchor) + elif not isinstance(anchor, (tuple, list)) or len(anchor) != 2: + raise TypeError("anchor must be str or 2-tuple") + self._anchor = anchor + + def get_anchor(self): + """Return the anchor.""" + return self._anchor + + def get_subplotspec(self): + return None + + def set_horizontal(self, h): + """ + Parameters + ---------- + h : list of :mod:`~mpl_toolkits.axes_grid1.axes_size` + sizes for horizontal division + """ + self._horizontal = h + + def get_horizontal(self): + """Return horizontal sizes.""" + return self._horizontal + + def set_vertical(self, v): + """ + Parameters + ---------- + v : list of :mod:`~mpl_toolkits.axes_grid1.axes_size` + sizes for vertical division + """ + self._vertical = v + + def get_vertical(self): + """Return vertical sizes.""" + return self._vertical + + def set_aspect(self, aspect=False): + """ + Parameters + ---------- + aspect : bool + """ + self._aspect = aspect + + def get_aspect(self): + """Return aspect.""" + return self._aspect + + def set_locator(self, _locator): + self._locator = _locator + + def get_locator(self): + return self._locator + + def get_position_runtime(self, ax, renderer): + if self._locator is None: + return self.get_position() + else: + return self._locator(ax, renderer).bounds + + @staticmethod + def _calc_k(sizes, total): + # sizes is a (n, 2) array of (rel_size, abs_size); this method finds + # the k factor such that sum(rel_size * k + abs_size) == total. + rel_sum, abs_sum = sizes.sum(0) + return (total - abs_sum) / rel_sum if rel_sum else 0 + + @staticmethod + def _calc_offsets(sizes, k): + # Apply k factors to (n, 2) sizes array of (rel_size, abs_size); return + # the resulting cumulative offset positions. + return np.cumsum([0, *(sizes @ [k, 1])]) + + def new_locator(self, nx, ny, nx1=None, ny1=None): + """ + Return an axes locator callable for the specified cell. + + Parameters + ---------- + nx, nx1 : int + Integers specifying the column-position of the + cell. When *nx1* is None, a single *nx*-th column is + specified. Otherwise, location of columns spanning between *nx* + to *nx1* (but excluding *nx1*-th column) is specified. + ny, ny1 : int + Same as *nx* and *nx1*, but for row positions. + """ + if nx1 is None: + nx1 = nx + 1 + if ny1 is None: + ny1 = ny + 1 + # append_size("left") adds a new size at the beginning of the + # horizontal size lists; this shift transforms e.g. + # new_locator(nx=2, ...) into effectively new_locator(nx=3, ...). To + # take that into account, instead of recording nx, we record + # nx-self._xrefindex, where _xrefindex is shifted by 1 by each + # append_size("left"), and re-add self._xrefindex back to nx in + # _locate, when the actual axes position is computed. Ditto for y. + xref = self._xrefindex + yref = self._yrefindex + locator = functools.partial( + self._locate, nx - xref, ny - yref, nx1 - xref, ny1 - yref) + locator.get_subplotspec = self.get_subplotspec + return locator + + def _locate(self, nx, ny, nx1, ny1, axes, renderer): + """ + Implementation of ``divider.new_locator().__call__``. + + The axes locator callable returned by ``new_locator()`` is created as + a `functools.partial` of this method with *nx*, *ny*, *nx1*, and *ny1* + specifying the requested cell. + """ + nx += self._xrefindex + nx1 += self._xrefindex + ny += self._yrefindex + ny1 += self._yrefindex + + fig_w, fig_h = self._fig.bbox.size / self._fig.dpi + x, y, w, h = self.get_position_runtime(axes, renderer) + + hsizes = self.get_horizontal_sizes(renderer) + vsizes = self.get_vertical_sizes(renderer) + k_h = self._calc_k(hsizes, fig_w * w) + k_v = self._calc_k(vsizes, fig_h * h) + + if self.get_aspect(): + k = min(k_h, k_v) + ox = self._calc_offsets(hsizes, k) + oy = self._calc_offsets(vsizes, k) + + ww = (ox[-1] - ox[0]) / fig_w + hh = (oy[-1] - oy[0]) / fig_h + pb = mtransforms.Bbox.from_bounds(x, y, w, h) + pb1 = mtransforms.Bbox.from_bounds(x, y, ww, hh) + x0, y0 = pb1.anchored(self.get_anchor(), pb).p0 + + else: + ox = self._calc_offsets(hsizes, k_h) + oy = self._calc_offsets(vsizes, k_v) + x0, y0 = x, y + + if nx1 is None: + nx1 = -1 + if ny1 is None: + ny1 = -1 + + x1, w1 = x0 + ox[nx] / fig_w, (ox[nx1] - ox[nx]) / fig_w + y1, h1 = y0 + oy[ny] / fig_h, (oy[ny1] - oy[ny]) / fig_h + + return mtransforms.Bbox.from_bounds(x1, y1, w1, h1) + + def append_size(self, position, size): + _api.check_in_list(["left", "right", "bottom", "top"], + position=position) + if position == "left": + self._horizontal.insert(0, size) + self._xrefindex += 1 + elif position == "right": + self._horizontal.append(size) + elif position == "bottom": + self._vertical.insert(0, size) + self._yrefindex += 1 + else: # 'top' + self._vertical.append(size) + + def add_auto_adjustable_area(self, use_axes, pad=0.1, adjust_dirs=None): + """ + Add auto-adjustable padding around *use_axes* to take their decorations + (title, labels, ticks, ticklabels) into account during layout. + + Parameters + ---------- + use_axes : `~matplotlib.axes.Axes` or list of `~matplotlib.axes.Axes` + The Axes whose decorations are taken into account. + pad : float, default: 0.1 + Additional padding in inches. + adjust_dirs : list of {"left", "right", "bottom", "top"}, optional + The sides where padding is added; defaults to all four sides. + """ + if adjust_dirs is None: + adjust_dirs = ["left", "right", "bottom", "top"] + for d in adjust_dirs: + self.append_size(d, Size._AxesDecorationsSize(use_axes, d) + pad) + + +class SubplotDivider(Divider): + """ + The Divider class whose rectangle area is specified as a subplot geometry. + """ + + def __init__(self, fig, *args, horizontal=None, vertical=None, + aspect=None, anchor='C'): + """ + Parameters + ---------- + fig : `~matplotlib.figure.Figure` + + *args : tuple (*nrows*, *ncols*, *index*) or int + The array of subplots in the figure has dimensions ``(nrows, + ncols)``, and *index* is the index of the subplot being created. + *index* starts at 1 in the upper left corner and increases to the + right. + + If *nrows*, *ncols*, and *index* are all single digit numbers, then + *args* can be passed as a single 3-digit number (e.g. 234 for + (2, 3, 4)). + horizontal : list of :mod:`~mpl_toolkits.axes_grid1.axes_size`, optional + Sizes for horizontal division. + vertical : list of :mod:`~mpl_toolkits.axes_grid1.axes_size`, optional + Sizes for vertical division. + aspect : bool, optional + Whether overall rectangular area is reduced so that the relative + part of the horizontal and vertical scales have the same scale. + anchor : (float, float) or {'C', 'SW', 'S', 'SE', 'E', 'NE', 'N', \ +'NW', 'W'}, default: 'C' + Placement of the reduced rectangle, when *aspect* is True. + """ + self.figure = fig + super().__init__(fig, [0, 0, 1, 1], + horizontal=horizontal or [], vertical=vertical or [], + aspect=aspect, anchor=anchor) + self.set_subplotspec(SubplotSpec._from_subplot_args(fig, args)) + + def get_position(self): + """Return the bounds of the subplot box.""" + return self.get_subplotspec().get_position(self.figure).bounds + + def get_subplotspec(self): + """Get the SubplotSpec instance.""" + return self._subplotspec + + def set_subplotspec(self, subplotspec): + """Set the SubplotSpec instance.""" + self._subplotspec = subplotspec + self.set_position(subplotspec.get_position(self.figure)) + + +class AxesDivider(Divider): + """ + Divider based on the preexisting axes. + """ + + def __init__(self, axes, xref=None, yref=None): + """ + Parameters + ---------- + axes : :class:`~matplotlib.axes.Axes` + xref + yref + """ + self._axes = axes + if xref is None: + self._xref = Size.AxesX(axes) + else: + self._xref = xref + if yref is None: + self._yref = Size.AxesY(axes) + else: + self._yref = yref + + super().__init__(fig=axes.get_figure(), pos=None, + horizontal=[self._xref], vertical=[self._yref], + aspect=None, anchor="C") + + def _get_new_axes(self, *, axes_class=None, **kwargs): + axes = self._axes + if axes_class is None: + axes_class = type(axes) + return axes_class(axes.get_figure(), axes.get_position(original=True), + **kwargs) + + def new_horizontal(self, size, pad=None, pack_start=False, **kwargs): + """ + Helper method for ``append_axes("left")`` and ``append_axes("right")``. + + See the documentation of `append_axes` for more details. + + :meta private: + """ + if pad is None: + pad = mpl.rcParams["figure.subplot.wspace"] * self._xref + pos = "left" if pack_start else "right" + if pad: + if not isinstance(pad, Size._Base): + pad = Size.from_any(pad, fraction_ref=self._xref) + self.append_size(pos, pad) + if not isinstance(size, Size._Base): + size = Size.from_any(size, fraction_ref=self._xref) + self.append_size(pos, size) + locator = self.new_locator( + nx=0 if pack_start else len(self._horizontal) - 1, + ny=self._yrefindex) + ax = self._get_new_axes(**kwargs) + ax.set_axes_locator(locator) + return ax + + def new_vertical(self, size, pad=None, pack_start=False, **kwargs): + """ + Helper method for ``append_axes("top")`` and ``append_axes("bottom")``. + + See the documentation of `append_axes` for more details. + + :meta private: + """ + if pad is None: + pad = mpl.rcParams["figure.subplot.hspace"] * self._yref + pos = "bottom" if pack_start else "top" + if pad: + if not isinstance(pad, Size._Base): + pad = Size.from_any(pad, fraction_ref=self._yref) + self.append_size(pos, pad) + if not isinstance(size, Size._Base): + size = Size.from_any(size, fraction_ref=self._yref) + self.append_size(pos, size) + locator = self.new_locator( + nx=self._xrefindex, + ny=0 if pack_start else len(self._vertical) - 1) + ax = self._get_new_axes(**kwargs) + ax.set_axes_locator(locator) + return ax + + def append_axes(self, position, size, pad=None, *, axes_class=None, + **kwargs): + """ + Add a new axes on a given side of the main axes. + + Parameters + ---------- + position : {"left", "right", "bottom", "top"} + Where the new axes is positioned relative to the main axes. + size : :mod:`~mpl_toolkits.axes_grid1.axes_size` or float or str + The axes width or height. float or str arguments are interpreted + as ``axes_size.from_any(size, AxesX())`` for left or + right axes, and likewise with ``AxesY`` for bottom or top axes. + pad : :mod:`~mpl_toolkits.axes_grid1.axes_size` or float or str + Padding between the axes. float or str arguments are interpreted + as for *size*. Defaults to :rc:`figure.subplot.wspace` times the + main Axes width (left or right axes) or :rc:`figure.subplot.hspace` + times the main Axes height (bottom or top axes). + axes_class : subclass type of `~.axes.Axes`, optional + The type of the new axes. Defaults to the type of the main axes. + **kwargs + All extra keywords arguments are passed to the created axes. + """ + create_axes, pack_start = _api.check_getitem({ + "left": (self.new_horizontal, True), + "right": (self.new_horizontal, False), + "bottom": (self.new_vertical, True), + "top": (self.new_vertical, False), + }, position=position) + ax = create_axes( + size, pad, pack_start=pack_start, axes_class=axes_class, **kwargs) + self._fig.add_axes(ax) + return ax + + def get_aspect(self): + if self._aspect is None: + aspect = self._axes.get_aspect() + if aspect == "auto": + return False + else: + return True + else: + return self._aspect + + def get_position(self): + if self._pos is None: + bbox = self._axes.get_position(original=True) + return bbox.bounds + else: + return self._pos + + def get_anchor(self): + if self._anchor is None: + return self._axes.get_anchor() + else: + return self._anchor + + def get_subplotspec(self): + return self._axes.get_subplotspec() + + +# Helper for HBoxDivider/VBoxDivider. +# The variable names are written for a horizontal layout, but the calculations +# work identically for vertical layouts. +def _locate(x, y, w, h, summed_widths, equal_heights, fig_w, fig_h, anchor): + + total_width = fig_w * w + max_height = fig_h * h + + # Determine the k factors. + n = len(equal_heights) + eq_rels, eq_abss = equal_heights.T + sm_rels, sm_abss = summed_widths.T + A = np.diag([*eq_rels, 0]) + A[:n, -1] = -1 + A[-1, :-1] = sm_rels + B = [*(-eq_abss), total_width - sm_abss.sum()] + # A @ K = B: This finds factors {k_0, ..., k_{N-1}, H} so that + # eq_rel_i * k_i + eq_abs_i = H for all i: all axes have the same height + # sum(sm_rel_i * k_i + sm_abs_i) = total_width: fixed total width + # (foo_rel_i * k_i + foo_abs_i will end up being the size of foo.) + *karray, height = np.linalg.solve(A, B) + if height > max_height: # Additionally, upper-bound the height. + karray = (max_height - eq_abss) / eq_rels + + # Compute the offsets corresponding to these factors. + ox = np.cumsum([0, *(sm_rels * karray + sm_abss)]) + ww = (ox[-1] - ox[0]) / fig_w + h0_rel, h0_abs = equal_heights[0] + hh = (karray[0]*h0_rel + h0_abs) / fig_h + pb = mtransforms.Bbox.from_bounds(x, y, w, h) + pb1 = mtransforms.Bbox.from_bounds(x, y, ww, hh) + x0, y0 = pb1.anchored(anchor, pb).p0 + + return x0, y0, ox, hh + + +class HBoxDivider(SubplotDivider): + """ + A `.SubplotDivider` for laying out axes horizontally, while ensuring that + they have equal heights. + + Examples + -------- + .. plot:: gallery/axes_grid1/demo_axes_hbox_divider.py + """ + + def new_locator(self, nx, nx1=None): + """ + Create an axes locator callable for the specified cell. + + Parameters + ---------- + nx, nx1 : int + Integers specifying the column-position of the + cell. When *nx1* is None, a single *nx*-th column is + specified. Otherwise, location of columns spanning between *nx* + to *nx1* (but excluding *nx1*-th column) is specified. + """ + return super().new_locator(nx, 0, nx1, 0) + + def _locate(self, nx, ny, nx1, ny1, axes, renderer): + # docstring inherited + nx += self._xrefindex + nx1 += self._xrefindex + fig_w, fig_h = self._fig.bbox.size / self._fig.dpi + x, y, w, h = self.get_position_runtime(axes, renderer) + summed_ws = self.get_horizontal_sizes(renderer) + equal_hs = self.get_vertical_sizes(renderer) + x0, y0, ox, hh = _locate( + x, y, w, h, summed_ws, equal_hs, fig_w, fig_h, self.get_anchor()) + if nx1 is None: + nx1 = -1 + x1, w1 = x0 + ox[nx] / fig_w, (ox[nx1] - ox[nx]) / fig_w + y1, h1 = y0, hh + return mtransforms.Bbox.from_bounds(x1, y1, w1, h1) + + +class VBoxDivider(SubplotDivider): + """ + A `.SubplotDivider` for laying out axes vertically, while ensuring that + they have equal widths. + """ + + def new_locator(self, ny, ny1=None): + """ + Create an axes locator callable for the specified cell. + + Parameters + ---------- + ny, ny1 : int + Integers specifying the row-position of the + cell. When *ny1* is None, a single *ny*-th row is + specified. Otherwise, location of rows spanning between *ny* + to *ny1* (but excluding *ny1*-th row) is specified. + """ + return super().new_locator(0, ny, 0, ny1) + + def _locate(self, nx, ny, nx1, ny1, axes, renderer): + # docstring inherited + ny += self._yrefindex + ny1 += self._yrefindex + fig_w, fig_h = self._fig.bbox.size / self._fig.dpi + x, y, w, h = self.get_position_runtime(axes, renderer) + summed_hs = self.get_vertical_sizes(renderer) + equal_ws = self.get_horizontal_sizes(renderer) + y0, x0, oy, ww = _locate( + y, x, h, w, summed_hs, equal_ws, fig_h, fig_w, self.get_anchor()) + if ny1 is None: + ny1 = -1 + x1, w1 = x0, ww + y1, h1 = y0 + oy[ny] / fig_h, (oy[ny1] - oy[ny]) / fig_h + return mtransforms.Bbox.from_bounds(x1, y1, w1, h1) + + +def make_axes_locatable(axes): + divider = AxesDivider(axes) + locator = divider.new_locator(nx=0, ny=0) + axes.set_axes_locator(locator) + + return divider + + +def make_axes_area_auto_adjustable( + ax, use_axes=None, pad=0.1, adjust_dirs=None): + """ + Add auto-adjustable padding around *ax* to take its decorations (title, + labels, ticks, ticklabels) into account during layout, using + `.Divider.add_auto_adjustable_area`. + + By default, padding is determined from the decorations of *ax*. + Pass *use_axes* to consider the decorations of other Axes instead. + """ + if adjust_dirs is None: + adjust_dirs = ["left", "right", "bottom", "top"] + divider = make_axes_locatable(ax) + if use_axes is None: + use_axes = ax + divider.add_auto_adjustable_area(use_axes=use_axes, pad=pad, + adjust_dirs=adjust_dirs) diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/axes_grid.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/axes_grid.py new file mode 100644 index 0000000..20abf18 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/axes_grid.py @@ -0,0 +1,563 @@ +from numbers import Number +import functools +from types import MethodType + +import numpy as np + +from matplotlib import _api, cbook +from matplotlib.gridspec import SubplotSpec + +from .axes_divider import Size, SubplotDivider, Divider +from .mpl_axes import Axes, SimpleAxisArtist + + +class CbarAxesBase: + def __init__(self, *args, orientation, **kwargs): + self.orientation = orientation + super().__init__(*args, **kwargs) + + def colorbar(self, mappable, **kwargs): + return self.get_figure(root=False).colorbar( + mappable, cax=self, location=self.orientation, **kwargs) + + +_cbaraxes_class_factory = cbook._make_class_factory(CbarAxesBase, "Cbar{}") + + +class Grid: + """ + A grid of Axes. + + In Matplotlib, the Axes location (and size) is specified in normalized + figure coordinates. This may not be ideal for images that needs to be + displayed with a given aspect ratio; for example, it is difficult to + display multiple images of a same size with some fixed padding between + them. AxesGrid can be used in such case. + + Attributes + ---------- + axes_all : list of Axes + A flat list of Axes. Note that you can also access this directly + from the grid. The following is equivalent :: + + grid[i] == grid.axes_all[i] + len(grid) == len(grid.axes_all) + + axes_column : list of list of Axes + A 2D list of Axes where the first index is the column. This results + in the usage pattern ``grid.axes_column[col][row]``. + axes_row : list of list of Axes + A 2D list of Axes where the first index is the row. This results + in the usage pattern ``grid.axes_row[row][col]``. + axes_llc : Axes + The Axes in the lower left corner. + ngrids : int + Number of Axes in the grid. + """ + + _defaultAxesClass = Axes + + def __init__(self, fig, + rect, + nrows_ncols, + ngrids=None, + direction="row", + axes_pad=0.02, + *, + share_all=False, + share_x=True, + share_y=True, + label_mode="L", + axes_class=None, + aspect=False, + ): + """ + Parameters + ---------- + fig : `.Figure` + The parent figure. + rect : (float, float, float, float), (int, int, int), int, or \ + `~.SubplotSpec` + The axes position, as a ``(left, bottom, width, height)`` tuple, + as a three-digit subplot position code (e.g., ``(1, 2, 1)`` or + ``121``), or as a `~.SubplotSpec`. + nrows_ncols : (int, int) + Number of rows and columns in the grid. + ngrids : int or None, default: None + If not None, only the first *ngrids* axes in the grid are created. + direction : {"row", "column"}, default: "row" + Whether axes are created in row-major ("row by row") or + column-major order ("column by column"). This also affects the + order in which axes are accessed using indexing (``grid[index]``). + axes_pad : float or (float, float), default: 0.02 + Padding or (horizontal padding, vertical padding) between axes, in + inches. + share_all : bool, default: False + Whether all axes share their x- and y-axis. Overrides *share_x* + and *share_y*. + share_x : bool, default: True + Whether all axes of a column share their x-axis. + share_y : bool, default: True + Whether all axes of a row share their y-axis. + label_mode : {"L", "1", "all", "keep"}, default: "L" + Determines which axes will get tick labels: + + - "L": All axes on the left column get vertical tick labels; + all axes on the bottom row get horizontal tick labels. + - "1": Only the bottom left axes is labelled. + - "all": All axes are labelled. + - "keep": Do not do anything. + + axes_class : subclass of `matplotlib.axes.Axes`, default: `.mpl_axes.Axes` + The type of Axes to create. + aspect : bool, default: False + Whether the axes aspect ratio follows the aspect ratio of the data + limits. + """ + self._nrows, self._ncols = nrows_ncols + + if ngrids is None: + ngrids = self._nrows * self._ncols + else: + if not 0 < ngrids <= self._nrows * self._ncols: + raise ValueError( + "ngrids must be positive and not larger than nrows*ncols") + + self.ngrids = ngrids + + self._horiz_pad_size, self._vert_pad_size = map( + Size.Fixed, np.broadcast_to(axes_pad, 2)) + + _api.check_in_list(["column", "row"], direction=direction) + self._direction = direction + + if axes_class is None: + axes_class = self._defaultAxesClass + elif isinstance(axes_class, (list, tuple)): + cls, kwargs = axes_class + axes_class = functools.partial(cls, **kwargs) + + kw = dict(horizontal=[], vertical=[], aspect=aspect) + if isinstance(rect, (Number, SubplotSpec)): + self._divider = SubplotDivider(fig, rect, **kw) + elif len(rect) == 3: + self._divider = SubplotDivider(fig, *rect, **kw) + elif len(rect) == 4: + self._divider = Divider(fig, rect, **kw) + else: + raise TypeError("Incorrect rect format") + + rect = self._divider.get_position() + + axes_array = np.full((self._nrows, self._ncols), None, dtype=object) + for i in range(self.ngrids): + col, row = self._get_col_row(i) + if share_all: + sharex = sharey = axes_array[0, 0] + else: + sharex = axes_array[0, col] if share_x else None + sharey = axes_array[row, 0] if share_y else None + axes_array[row, col] = axes_class( + fig, rect, sharex=sharex, sharey=sharey) + self.axes_all = axes_array.ravel( + order="C" if self._direction == "row" else "F").tolist() + self.axes_column = axes_array.T.tolist() + self.axes_row = axes_array.tolist() + self.axes_llc = self.axes_column[0][-1] + + self._init_locators() + + for ax in self.axes_all: + fig.add_axes(ax) + + self.set_label_mode(label_mode) + + def _init_locators(self): + self._divider.set_horizontal( + [Size.Scaled(1), self._horiz_pad_size] * (self._ncols-1) + [Size.Scaled(1)]) + self._divider.set_vertical( + [Size.Scaled(1), self._vert_pad_size] * (self._nrows-1) + [Size.Scaled(1)]) + for i in range(self.ngrids): + col, row = self._get_col_row(i) + self.axes_all[i].set_axes_locator( + self._divider.new_locator(nx=2 * col, ny=2 * (self._nrows - 1 - row))) + + def _get_col_row(self, n): + if self._direction == "column": + col, row = divmod(n, self._nrows) + else: + row, col = divmod(n, self._ncols) + + return col, row + + # Good to propagate __len__ if we have __getitem__ + def __len__(self): + return len(self.axes_all) + + def __getitem__(self, i): + return self.axes_all[i] + + def get_geometry(self): + """ + Return the number of rows and columns of the grid as (nrows, ncols). + """ + return self._nrows, self._ncols + + def set_axes_pad(self, axes_pad): + """ + Set the padding between the axes. + + Parameters + ---------- + axes_pad : (float, float) + The padding (horizontal pad, vertical pad) in inches. + """ + self._horiz_pad_size.fixed_size = axes_pad[0] + self._vert_pad_size.fixed_size = axes_pad[1] + + def get_axes_pad(self): + """ + Return the axes padding. + + Returns + ------- + hpad, vpad + Padding (horizontal pad, vertical pad) in inches. + """ + return (self._horiz_pad_size.fixed_size, + self._vert_pad_size.fixed_size) + + def set_aspect(self, aspect): + """Set the aspect of the SubplotDivider.""" + self._divider.set_aspect(aspect) + + def get_aspect(self): + """Return the aspect of the SubplotDivider.""" + return self._divider.get_aspect() + + def set_label_mode(self, mode): + """ + Define which axes have tick labels. + + Parameters + ---------- + mode : {"L", "1", "all", "keep"} + The label mode: + + - "L": All axes on the left column get vertical tick labels; + all axes on the bottom row get horizontal tick labels. + - "1": Only the bottom left axes is labelled. + - "all": All axes are labelled. + - "keep": Do not do anything. + """ + _api.check_in_list(["all", "L", "1", "keep"], mode=mode) + is_last_row, is_first_col = ( + np.mgrid[:self._nrows, :self._ncols] == [[[self._nrows - 1]], [[0]]]) + if mode == "all": + bottom = left = np.full((self._nrows, self._ncols), True) + elif mode == "L": + bottom = is_last_row + left = is_first_col + elif mode == "1": + bottom = left = is_last_row & is_first_col + else: + return + for i in range(self._nrows): + for j in range(self._ncols): + ax = self.axes_row[i][j] + if isinstance(ax.axis, MethodType): + bottom_axis = SimpleAxisArtist(ax.xaxis, 1, ax.spines["bottom"]) + left_axis = SimpleAxisArtist(ax.yaxis, 1, ax.spines["left"]) + else: + bottom_axis = ax.axis["bottom"] + left_axis = ax.axis["left"] + bottom_axis.toggle(ticklabels=bottom[i, j], label=bottom[i, j]) + left_axis.toggle(ticklabels=left[i, j], label=left[i, j]) + + def get_divider(self): + return self._divider + + def set_axes_locator(self, locator): + self._divider.set_locator(locator) + + def get_axes_locator(self): + return self._divider.get_locator() + + +class ImageGrid(Grid): + """ + A grid of Axes for Image display. + + This class is a specialization of `~.axes_grid1.axes_grid.Grid` for displaying a + grid of images. In particular, it forces all axes in a column to share their x-axis + and all axes in a row to share their y-axis. It further provides helpers to add + colorbars to some or all axes. + """ + + def __init__(self, fig, + rect, + nrows_ncols, + ngrids=None, + direction="row", + axes_pad=0.02, + *, + share_all=False, + aspect=True, + label_mode="L", + cbar_mode=None, + cbar_location="right", + cbar_pad=None, + cbar_size="5%", + cbar_set_cax=True, + axes_class=None, + ): + """ + Parameters + ---------- + fig : `.Figure` + The parent figure. + rect : (float, float, float, float) or int + The axes position, as a ``(left, bottom, width, height)`` tuple or + as a three-digit subplot position code (e.g., "121"). + nrows_ncols : (int, int) + Number of rows and columns in the grid. + ngrids : int or None, default: None + If not None, only the first *ngrids* axes in the grid are created. + direction : {"row", "column"}, default: "row" + Whether axes are created in row-major ("row by row") or + column-major order ("column by column"). This also affects the + order in which axes are accessed using indexing (``grid[index]``). + axes_pad : float or (float, float), default: 0.02in + Padding or (horizontal padding, vertical padding) between axes, in + inches. + share_all : bool, default: False + Whether all axes share their x- and y-axis. Note that in any case, + all axes in a column share their x-axis and all axes in a row share + their y-axis. + aspect : bool, default: True + Whether the axes aspect ratio follows the aspect ratio of the data + limits. + label_mode : {"L", "1", "all"}, default: "L" + Determines which axes will get tick labels: + + - "L": All axes on the left column get vertical tick labels; + all axes on the bottom row get horizontal tick labels. + - "1": Only the bottom left axes is labelled. + - "all": all axes are labelled. + + cbar_mode : {"each", "single", "edge", None}, default: None + Whether to create a colorbar for "each" axes, a "single" colorbar + for the entire grid, colorbars only for axes on the "edge" + determined by *cbar_location*, or no colorbars. The colorbars are + stored in the :attr:`cbar_axes` attribute. + cbar_location : {"left", "right", "bottom", "top"}, default: "right" + cbar_pad : float, default: None + Padding between the image axes and the colorbar axes. + + .. versionchanged:: 3.10 + ``cbar_mode="single"`` no longer adds *axes_pad* between the axes + and the colorbar if the *cbar_location* is "left" or "bottom". + + cbar_size : size specification (see `.Size.from_any`), default: "5%" + Colorbar size. + cbar_set_cax : bool, default: True + If True, each axes in the grid has a *cax* attribute that is bound + to associated *cbar_axes*. + axes_class : subclass of `matplotlib.axes.Axes`, default: None + """ + _api.check_in_list(["each", "single", "edge", None], + cbar_mode=cbar_mode) + _api.check_in_list(["left", "right", "bottom", "top"], + cbar_location=cbar_location) + self._colorbar_mode = cbar_mode + self._colorbar_location = cbar_location + self._colorbar_pad = cbar_pad + self._colorbar_size = cbar_size + # The colorbar axes are created in _init_locators(). + + super().__init__( + fig, rect, nrows_ncols, ngrids, + direction=direction, axes_pad=axes_pad, + share_all=share_all, share_x=True, share_y=True, aspect=aspect, + label_mode=label_mode, axes_class=axes_class) + + for ax in self.cbar_axes: + fig.add_axes(ax) + + if cbar_set_cax: + if self._colorbar_mode == "single": + for ax in self.axes_all: + ax.cax = self.cbar_axes[0] + elif self._colorbar_mode == "edge": + for index, ax in enumerate(self.axes_all): + col, row = self._get_col_row(index) + if self._colorbar_location in ("left", "right"): + ax.cax = self.cbar_axes[row] + else: + ax.cax = self.cbar_axes[col] + else: + for ax, cax in zip(self.axes_all, self.cbar_axes): + ax.cax = cax + + def _init_locators(self): + # Slightly abusing this method to inject colorbar creation into init. + + if self._colorbar_pad is None: + # horizontal or vertical arrangement? + if self._colorbar_location in ("left", "right"): + self._colorbar_pad = self._horiz_pad_size.fixed_size + else: + self._colorbar_pad = self._vert_pad_size.fixed_size + self.cbar_axes = [ + _cbaraxes_class_factory(self._defaultAxesClass)( + self.axes_all[0].get_figure(root=False), self._divider.get_position(), + orientation=self._colorbar_location) + for _ in range(self.ngrids)] + + cb_mode = self._colorbar_mode + cb_location = self._colorbar_location + + h = [] + v = [] + + h_ax_pos = [] + h_cb_pos = [] + if cb_mode == "single" and cb_location in ("left", "bottom"): + if cb_location == "left": + sz = self._nrows * Size.AxesX(self.axes_llc) + h.append(Size.from_any(self._colorbar_size, sz)) + h.append(Size.from_any(self._colorbar_pad, sz)) + locator = self._divider.new_locator(nx=0, ny=0, ny1=-1) + elif cb_location == "bottom": + sz = self._ncols * Size.AxesY(self.axes_llc) + v.append(Size.from_any(self._colorbar_size, sz)) + v.append(Size.from_any(self._colorbar_pad, sz)) + locator = self._divider.new_locator(nx=0, nx1=-1, ny=0) + for i in range(self.ngrids): + self.cbar_axes[i].set_visible(False) + self.cbar_axes[0].set_axes_locator(locator) + self.cbar_axes[0].set_visible(True) + + for col, ax in enumerate(self.axes_row[0]): + if col != 0: + h.append(self._horiz_pad_size) + + if ax: + sz = Size.AxesX(ax, aspect="axes", ref_ax=self.axes_all[0]) + else: + sz = Size.AxesX(self.axes_all[0], + aspect="axes", ref_ax=self.axes_all[0]) + + if (cb_location == "left" + and (cb_mode == "each" + or (cb_mode == "edge" and col == 0))): + h_cb_pos.append(len(h)) + h.append(Size.from_any(self._colorbar_size, sz)) + h.append(Size.from_any(self._colorbar_pad, sz)) + + h_ax_pos.append(len(h)) + h.append(sz) + + if (cb_location == "right" + and (cb_mode == "each" + or (cb_mode == "edge" and col == self._ncols - 1))): + h.append(Size.from_any(self._colorbar_pad, sz)) + h_cb_pos.append(len(h)) + h.append(Size.from_any(self._colorbar_size, sz)) + + v_ax_pos = [] + v_cb_pos = [] + for row, ax in enumerate(self.axes_column[0][::-1]): + if row != 0: + v.append(self._vert_pad_size) + + if ax: + sz = Size.AxesY(ax, aspect="axes", ref_ax=self.axes_all[0]) + else: + sz = Size.AxesY(self.axes_all[0], + aspect="axes", ref_ax=self.axes_all[0]) + + if (cb_location == "bottom" + and (cb_mode == "each" + or (cb_mode == "edge" and row == 0))): + v_cb_pos.append(len(v)) + v.append(Size.from_any(self._colorbar_size, sz)) + v.append(Size.from_any(self._colorbar_pad, sz)) + + v_ax_pos.append(len(v)) + v.append(sz) + + if (cb_location == "top" + and (cb_mode == "each" + or (cb_mode == "edge" and row == self._nrows - 1))): + v.append(Size.from_any(self._colorbar_pad, sz)) + v_cb_pos.append(len(v)) + v.append(Size.from_any(self._colorbar_size, sz)) + + for i in range(self.ngrids): + col, row = self._get_col_row(i) + locator = self._divider.new_locator(nx=h_ax_pos[col], + ny=v_ax_pos[self._nrows-1-row]) + self.axes_all[i].set_axes_locator(locator) + + if cb_mode == "each": + if cb_location in ("right", "left"): + locator = self._divider.new_locator( + nx=h_cb_pos[col], ny=v_ax_pos[self._nrows - 1 - row]) + + elif cb_location in ("top", "bottom"): + locator = self._divider.new_locator( + nx=h_ax_pos[col], ny=v_cb_pos[self._nrows - 1 - row]) + + self.cbar_axes[i].set_axes_locator(locator) + elif cb_mode == "edge": + if (cb_location == "left" and col == 0 + or cb_location == "right" and col == self._ncols - 1): + locator = self._divider.new_locator( + nx=h_cb_pos[0], ny=v_ax_pos[self._nrows - 1 - row]) + self.cbar_axes[row].set_axes_locator(locator) + elif (cb_location == "bottom" and row == self._nrows - 1 + or cb_location == "top" and row == 0): + locator = self._divider.new_locator(nx=h_ax_pos[col], + ny=v_cb_pos[0]) + self.cbar_axes[col].set_axes_locator(locator) + + if cb_mode == "single": + if cb_location == "right": + sz = self._nrows * Size.AxesX(self.axes_llc) + h.append(Size.from_any(self._colorbar_pad, sz)) + h.append(Size.from_any(self._colorbar_size, sz)) + locator = self._divider.new_locator(nx=-2, ny=0, ny1=-1) + elif cb_location == "top": + sz = self._ncols * Size.AxesY(self.axes_llc) + v.append(Size.from_any(self._colorbar_pad, sz)) + v.append(Size.from_any(self._colorbar_size, sz)) + locator = self._divider.new_locator(nx=0, nx1=-1, ny=-2) + if cb_location in ("right", "top"): + for i in range(self.ngrids): + self.cbar_axes[i].set_visible(False) + self.cbar_axes[0].set_axes_locator(locator) + self.cbar_axes[0].set_visible(True) + elif cb_mode == "each": + for i in range(self.ngrids): + self.cbar_axes[i].set_visible(True) + elif cb_mode == "edge": + if cb_location in ("right", "left"): + count = self._nrows + else: + count = self._ncols + for i in range(count): + self.cbar_axes[i].set_visible(True) + for j in range(i + 1, self.ngrids): + self.cbar_axes[j].set_visible(False) + else: + for i in range(self.ngrids): + self.cbar_axes[i].set_visible(False) + self.cbar_axes[i].set_position([1., 1., 0.001, 0.001], + which="active") + + self._divider.set_horizontal(h) + self._divider.set_vertical(v) + + +AxesGrid = ImageGrid diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/axes_rgb.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/axes_rgb.py new file mode 100644 index 0000000..52fd707 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/axes_rgb.py @@ -0,0 +1,157 @@ +from types import MethodType + +import numpy as np + +from .axes_divider import make_axes_locatable, Size +from .mpl_axes import Axes, SimpleAxisArtist + + +def make_rgb_axes(ax, pad=0.01, axes_class=None, **kwargs): + """ + Parameters + ---------- + ax : `~matplotlib.axes.Axes` + Axes instance to create the RGB Axes in. + pad : float, optional + Fraction of the Axes height to pad. + axes_class : `matplotlib.axes.Axes` or None, optional + Axes class to use for the R, G, and B Axes. If None, use + the same class as *ax*. + **kwargs + Forwarded to *axes_class* init for the R, G, and B Axes. + """ + + divider = make_axes_locatable(ax) + + pad_size = pad * Size.AxesY(ax) + + xsize = ((1-2*pad)/3) * Size.AxesX(ax) + ysize = ((1-2*pad)/3) * Size.AxesY(ax) + + divider.set_horizontal([Size.AxesX(ax), pad_size, xsize]) + divider.set_vertical([ysize, pad_size, ysize, pad_size, ysize]) + + ax.set_axes_locator(divider.new_locator(0, 0, ny1=-1)) + + ax_rgb = [] + if axes_class is None: + axes_class = type(ax) + + for ny in [4, 2, 0]: + ax1 = axes_class(ax.get_figure(), ax.get_position(original=True), + sharex=ax, sharey=ax, **kwargs) + locator = divider.new_locator(nx=2, ny=ny) + ax1.set_axes_locator(locator) + for t in ax1.yaxis.get_ticklabels() + ax1.xaxis.get_ticklabels(): + t.set_visible(False) + try: + for axis in ax1.axis.values(): + axis.major_ticklabels.set_visible(False) + except AttributeError: + pass + + ax_rgb.append(ax1) + + fig = ax.get_figure() + for ax1 in ax_rgb: + fig.add_axes(ax1) + + return ax_rgb + + +class RGBAxes: + """ + 4-panel `~.Axes.imshow` (RGB, R, G, B). + + Layout:: + + ┌───────────────┬─────┐ + │ │ R │ + │ ├─────┤ + │ RGB │ G │ + │ ├─────┤ + │ │ B │ + └───────────────┴─────┘ + + Subclasses can override the ``_defaultAxesClass`` attribute. + By default RGBAxes uses `.mpl_axes.Axes`. + + Attributes + ---------- + RGB : ``_defaultAxesClass`` + The Axes object for the three-channel `~.Axes.imshow`. + R : ``_defaultAxesClass`` + The Axes object for the red channel `~.Axes.imshow`. + G : ``_defaultAxesClass`` + The Axes object for the green channel `~.Axes.imshow`. + B : ``_defaultAxesClass`` + The Axes object for the blue channel `~.Axes.imshow`. + """ + + _defaultAxesClass = Axes + + def __init__(self, *args, pad=0, **kwargs): + """ + Parameters + ---------- + pad : float, default: 0 + Fraction of the Axes height to put as padding. + axes_class : `~matplotlib.axes.Axes` + Axes class to use. If not provided, ``_defaultAxesClass`` is used. + *args + Forwarded to *axes_class* init for the RGB Axes + **kwargs + Forwarded to *axes_class* init for the RGB, R, G, and B Axes + """ + axes_class = kwargs.pop("axes_class", self._defaultAxesClass) + self.RGB = ax = axes_class(*args, **kwargs) + ax.get_figure().add_axes(ax) + self.R, self.G, self.B = make_rgb_axes( + ax, pad=pad, axes_class=axes_class, **kwargs) + # Set the line color and ticks for the axes. + for ax1 in [self.RGB, self.R, self.G, self.B]: + if isinstance(ax1.axis, MethodType): + ad = Axes.AxisDict(self) + ad.update( + bottom=SimpleAxisArtist(ax1.xaxis, 1, ax1.spines["bottom"]), + top=SimpleAxisArtist(ax1.xaxis, 2, ax1.spines["top"]), + left=SimpleAxisArtist(ax1.yaxis, 1, ax1.spines["left"]), + right=SimpleAxisArtist(ax1.yaxis, 2, ax1.spines["right"])) + else: + ad = ax1.axis + ad[:].line.set_color("w") + ad[:].major_ticks.set_markeredgecolor("w") + + def imshow_rgb(self, r, g, b, **kwargs): + """ + Create the four images {rgb, r, g, b}. + + Parameters + ---------- + r, g, b : array-like + The red, green, and blue arrays. + **kwargs + Forwarded to `~.Axes.imshow` calls for the four images. + + Returns + ------- + rgb : `~matplotlib.image.AxesImage` + r : `~matplotlib.image.AxesImage` + g : `~matplotlib.image.AxesImage` + b : `~matplotlib.image.AxesImage` + """ + if not (r.shape == g.shape == b.shape): + raise ValueError( + f'Input shapes ({r.shape}, {g.shape}, {b.shape}) do not match') + RGB = np.dstack([r, g, b]) + R = np.zeros_like(RGB) + R[:, :, 0] = r + G = np.zeros_like(RGB) + G[:, :, 1] = g + B = np.zeros_like(RGB) + B[:, :, 2] = b + im_rgb = self.RGB.imshow(RGB, **kwargs) + im_r = self.R.imshow(R, **kwargs) + im_g = self.G.imshow(G, **kwargs) + im_b = self.B.imshow(B, **kwargs) + return im_rgb, im_r, im_g, im_b diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/axes_size.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/axes_size.py new file mode 100644 index 0000000..86e5f70 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/axes_size.py @@ -0,0 +1,271 @@ +""" +Provides classes of simple units that will be used with `.AxesDivider` +class (or others) to determine the size of each Axes. The unit +classes define `get_size` method that returns a tuple of two floats, +meaning relative and absolute sizes, respectively. + +Note that this class is nothing more than a simple tuple of two +floats. Take a look at the Divider class to see how these two +values are used. + +Once created, the unit classes can be modified by simple arithmetic +operations: addition /subtraction with another unit type or a real number and scaling +(multiplication or division) by a real number. +""" + +from numbers import Real + +from matplotlib import _api +from matplotlib.axes import Axes + + +class _Base: + def __rmul__(self, other): + return self * other + + def __mul__(self, other): + if not isinstance(other, Real): + return NotImplemented + return Fraction(other, self) + + def __div__(self, other): + return (1 / other) * self + + def __add__(self, other): + if isinstance(other, _Base): + return Add(self, other) + else: + return Add(self, Fixed(other)) + + def __neg__(self): + return -1 * self + + def __radd__(self, other): + # other cannot be a _Base instance, because A + B would trigger + # A.__add__(B) first. + return Add(self, Fixed(other)) + + def __sub__(self, other): + return self + (-other) + + def get_size(self, renderer): + """ + Return two-float tuple with relative and absolute sizes. + """ + raise NotImplementedError("Subclasses must implement") + + +class Add(_Base): + """ + Sum of two sizes. + """ + + def __init__(self, a, b): + self._a = a + self._b = b + + def get_size(self, renderer): + a_rel_size, a_abs_size = self._a.get_size(renderer) + b_rel_size, b_abs_size = self._b.get_size(renderer) + return a_rel_size + b_rel_size, a_abs_size + b_abs_size + + +class Fixed(_Base): + """ + Simple fixed size with absolute part = *fixed_size* and relative part = 0. + """ + + def __init__(self, fixed_size): + _api.check_isinstance(Real, fixed_size=fixed_size) + self.fixed_size = fixed_size + + def get_size(self, renderer): + rel_size = 0. + abs_size = self.fixed_size + return rel_size, abs_size + + +class Scaled(_Base): + """ + Simple scaled(?) size with absolute part = 0 and + relative part = *scalable_size*. + """ + + def __init__(self, scalable_size): + self._scalable_size = scalable_size + + def get_size(self, renderer): + rel_size = self._scalable_size + abs_size = 0. + return rel_size, abs_size + +Scalable = Scaled + + +def _get_axes_aspect(ax): + aspect = ax.get_aspect() + if aspect == "auto": + aspect = 1. + return aspect + + +class AxesX(_Base): + """ + Scaled size whose relative part corresponds to the data width + of the *axes* multiplied by the *aspect*. + """ + + def __init__(self, axes, aspect=1., ref_ax=None): + self._axes = axes + self._aspect = aspect + if aspect == "axes" and ref_ax is None: + raise ValueError("ref_ax must be set when aspect='axes'") + self._ref_ax = ref_ax + + def get_size(self, renderer): + l1, l2 = self._axes.get_xlim() + if self._aspect == "axes": + ref_aspect = _get_axes_aspect(self._ref_ax) + aspect = ref_aspect / _get_axes_aspect(self._axes) + else: + aspect = self._aspect + + rel_size = abs(l2-l1)*aspect + abs_size = 0. + return rel_size, abs_size + + +class AxesY(_Base): + """ + Scaled size whose relative part corresponds to the data height + of the *axes* multiplied by the *aspect*. + """ + + def __init__(self, axes, aspect=1., ref_ax=None): + self._axes = axes + self._aspect = aspect + if aspect == "axes" and ref_ax is None: + raise ValueError("ref_ax must be set when aspect='axes'") + self._ref_ax = ref_ax + + def get_size(self, renderer): + l1, l2 = self._axes.get_ylim() + + if self._aspect == "axes": + ref_aspect = _get_axes_aspect(self._ref_ax) + aspect = _get_axes_aspect(self._axes) + else: + aspect = self._aspect + + rel_size = abs(l2-l1)*aspect + abs_size = 0. + return rel_size, abs_size + + +class MaxExtent(_Base): + """ + Size whose absolute part is either the largest width or the largest height + of the given *artist_list*. + """ + + def __init__(self, artist_list, w_or_h): + self._artist_list = artist_list + _api.check_in_list(["width", "height"], w_or_h=w_or_h) + self._w_or_h = w_or_h + + def add_artist(self, a): + self._artist_list.append(a) + + def get_size(self, renderer): + rel_size = 0. + extent_list = [ + getattr(a.get_window_extent(renderer), self._w_or_h) / a.figure.dpi + for a in self._artist_list] + abs_size = max(extent_list, default=0) + return rel_size, abs_size + + +class MaxWidth(MaxExtent): + """ + Size whose absolute part is the largest width of the given *artist_list*. + """ + + def __init__(self, artist_list): + super().__init__(artist_list, "width") + + +class MaxHeight(MaxExtent): + """ + Size whose absolute part is the largest height of the given *artist_list*. + """ + + def __init__(self, artist_list): + super().__init__(artist_list, "height") + + +class Fraction(_Base): + """ + An instance whose size is a *fraction* of the *ref_size*. + + >>> s = Fraction(0.3, AxesX(ax)) + """ + + def __init__(self, fraction, ref_size): + _api.check_isinstance(Real, fraction=fraction) + self._fraction_ref = ref_size + self._fraction = fraction + + def get_size(self, renderer): + if self._fraction_ref is None: + return self._fraction, 0. + else: + r, a = self._fraction_ref.get_size(renderer) + rel_size = r*self._fraction + abs_size = a*self._fraction + return rel_size, abs_size + + +def from_any(size, fraction_ref=None): + """ + Create a Fixed unit when the first argument is a float, or a + Fraction unit if that is a string that ends with %. The second + argument is only meaningful when Fraction unit is created. + + >>> from mpl_toolkits.axes_grid1.axes_size import from_any + >>> a = from_any(1.2) # => Fixed(1.2) + >>> from_any("50%", a) # => Fraction(0.5, a) + """ + if isinstance(size, Real): + return Fixed(size) + elif isinstance(size, str): + if size[-1] == "%": + return Fraction(float(size[:-1]) / 100, fraction_ref) + raise ValueError("Unknown format") + + +class _AxesDecorationsSize(_Base): + """ + Fixed size, corresponding to the size of decorations on a given Axes side. + """ + + _get_size_map = { + "left": lambda tight_bb, axes_bb: axes_bb.xmin - tight_bb.xmin, + "right": lambda tight_bb, axes_bb: tight_bb.xmax - axes_bb.xmax, + "bottom": lambda tight_bb, axes_bb: axes_bb.ymin - tight_bb.ymin, + "top": lambda tight_bb, axes_bb: tight_bb.ymax - axes_bb.ymax, + } + + def __init__(self, ax, direction): + _api.check_in_list(self._get_size_map, direction=direction) + self._direction = direction + self._ax_list = [ax] if isinstance(ax, Axes) else ax + + def get_size(self, renderer): + sz = max([ + self._get_size_map[self._direction]( + ax.get_tightbbox(renderer, call_axes_locator=False), ax.bbox) + for ax in self._ax_list]) + dpi = renderer.points_to_pixels(72) + abs_size = sz / dpi + rel_size = 0 + return rel_size, abs_size diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/inset_locator.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/inset_locator.py new file mode 100644 index 0000000..52fe6ef --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/inset_locator.py @@ -0,0 +1,519 @@ +""" +A collection of functions and objects for creating or placing inset axes. +""" + +from matplotlib import _api, _docstring +from matplotlib.offsetbox import AnchoredOffsetbox +from matplotlib.patches import Patch, Rectangle +from matplotlib.path import Path +from matplotlib.transforms import Bbox +from matplotlib.transforms import IdentityTransform, TransformedBbox + +from . import axes_size as Size +from .parasite_axes import HostAxes + + +class AnchoredLocatorBase(AnchoredOffsetbox): + def __init__(self, bbox_to_anchor, offsetbox, loc, + borderpad=0.5, bbox_transform=None): + super().__init__( + loc, pad=0., child=None, borderpad=borderpad, + bbox_to_anchor=bbox_to_anchor, bbox_transform=bbox_transform + ) + + def draw(self, renderer): + raise RuntimeError("No draw method should be called") + + def __call__(self, ax, renderer): + fig = ax.get_figure(root=False) + if renderer is None: + renderer = fig._get_renderer() + self.axes = ax + bbox = self.get_window_extent(renderer) + px, py = self.get_offset(bbox.width, bbox.height, 0, 0, renderer) + bbox_canvas = Bbox.from_bounds(px, py, bbox.width, bbox.height) + tr = fig.transSubfigure.inverted() + return TransformedBbox(bbox_canvas, tr) + + +class AnchoredSizeLocator(AnchoredLocatorBase): + def __init__(self, bbox_to_anchor, x_size, y_size, loc, + borderpad=0.5, bbox_transform=None): + super().__init__( + bbox_to_anchor, None, loc, + borderpad=borderpad, bbox_transform=bbox_transform + ) + + self.x_size = Size.from_any(x_size) + self.y_size = Size.from_any(y_size) + + def get_bbox(self, renderer): + bbox = self.get_bbox_to_anchor() + dpi = renderer.points_to_pixels(72.) + + r, a = self.x_size.get_size(renderer) + width = bbox.width * r + a * dpi + r, a = self.y_size.get_size(renderer) + height = bbox.height * r + a * dpi + + fontsize = renderer.points_to_pixels(self.prop.get_size_in_points()) + pad = self.pad * fontsize + + return Bbox.from_bounds(0, 0, width, height).padded(pad) + + +class AnchoredZoomLocator(AnchoredLocatorBase): + def __init__(self, parent_axes, zoom, loc, + borderpad=0.5, + bbox_to_anchor=None, + bbox_transform=None): + self.parent_axes = parent_axes + self.zoom = zoom + if bbox_to_anchor is None: + bbox_to_anchor = parent_axes.bbox + super().__init__( + bbox_to_anchor, None, loc, borderpad=borderpad, + bbox_transform=bbox_transform) + + def get_bbox(self, renderer): + bb = self.parent_axes.transData.transform_bbox(self.axes.viewLim) + fontsize = renderer.points_to_pixels(self.prop.get_size_in_points()) + pad = self.pad * fontsize + return ( + Bbox.from_bounds( + 0, 0, abs(bb.width * self.zoom), abs(bb.height * self.zoom)) + .padded(pad)) + + +class BboxPatch(Patch): + @_docstring.interpd + def __init__(self, bbox, **kwargs): + """ + Patch showing the shape bounded by a Bbox. + + Parameters + ---------- + bbox : `~matplotlib.transforms.Bbox` + Bbox to use for the extents of this patch. + + **kwargs + Patch properties. Valid arguments include: + + %(Patch:kwdoc)s + """ + if "transform" in kwargs: + raise ValueError("transform should not be set") + + kwargs["transform"] = IdentityTransform() + super().__init__(**kwargs) + self.bbox = bbox + + def get_path(self): + # docstring inherited + x0, y0, x1, y1 = self.bbox.extents + return Path._create_closed([(x0, y0), (x1, y0), (x1, y1), (x0, y1)]) + + +class BboxConnector(Patch): + @staticmethod + def get_bbox_edge_pos(bbox, loc): + """ + Return the ``(x, y)`` coordinates of corner *loc* of *bbox*; parameters + behave as documented for the `.BboxConnector` constructor. + """ + x0, y0, x1, y1 = bbox.extents + if loc == 1: + return x1, y1 + elif loc == 2: + return x0, y1 + elif loc == 3: + return x0, y0 + elif loc == 4: + return x1, y0 + + @staticmethod + def connect_bbox(bbox1, bbox2, loc1, loc2=None): + """ + Construct a `.Path` connecting corner *loc1* of *bbox1* to corner + *loc2* of *bbox2*, where parameters behave as documented as for the + `.BboxConnector` constructor. + """ + if isinstance(bbox1, Rectangle): + bbox1 = TransformedBbox(Bbox.unit(), bbox1.get_transform()) + if isinstance(bbox2, Rectangle): + bbox2 = TransformedBbox(Bbox.unit(), bbox2.get_transform()) + if loc2 is None: + loc2 = loc1 + x1, y1 = BboxConnector.get_bbox_edge_pos(bbox1, loc1) + x2, y2 = BboxConnector.get_bbox_edge_pos(bbox2, loc2) + return Path([[x1, y1], [x2, y2]]) + + @_docstring.interpd + def __init__(self, bbox1, bbox2, loc1, loc2=None, **kwargs): + """ + Connect two bboxes with a straight line. + + Parameters + ---------- + bbox1, bbox2 : `~matplotlib.transforms.Bbox` + Bounding boxes to connect. + + loc1, loc2 : {1, 2, 3, 4} + Corner of *bbox1* and *bbox2* to draw the line. Valid values are:: + + 'upper right' : 1, + 'upper left' : 2, + 'lower left' : 3, + 'lower right' : 4 + + *loc2* is optional and defaults to *loc1*. + + **kwargs + Patch properties for the line drawn. Valid arguments include: + + %(Patch:kwdoc)s + """ + if "transform" in kwargs: + raise ValueError("transform should not be set") + + kwargs["transform"] = IdentityTransform() + kwargs.setdefault( + "fill", bool({'fc', 'facecolor', 'color'}.intersection(kwargs))) + super().__init__(**kwargs) + self.bbox1 = bbox1 + self.bbox2 = bbox2 + self.loc1 = loc1 + self.loc2 = loc2 + + def get_path(self): + # docstring inherited + return self.connect_bbox(self.bbox1, self.bbox2, + self.loc1, self.loc2) + + +class BboxConnectorPatch(BboxConnector): + @_docstring.interpd + def __init__(self, bbox1, bbox2, loc1a, loc2a, loc1b, loc2b, **kwargs): + """ + Connect two bboxes with a quadrilateral. + + The quadrilateral is specified by two lines that start and end at + corners of the bboxes. The four sides of the quadrilateral are defined + by the two lines given, the line between the two corners specified in + *bbox1* and the line between the two corners specified in *bbox2*. + + Parameters + ---------- + bbox1, bbox2 : `~matplotlib.transforms.Bbox` + Bounding boxes to connect. + + loc1a, loc2a, loc1b, loc2b : {1, 2, 3, 4} + The first line connects corners *loc1a* of *bbox1* and *loc2a* of + *bbox2*; the second line connects corners *loc1b* of *bbox1* and + *loc2b* of *bbox2*. Valid values are:: + + 'upper right' : 1, + 'upper left' : 2, + 'lower left' : 3, + 'lower right' : 4 + + **kwargs + Patch properties for the line drawn: + + %(Patch:kwdoc)s + """ + if "transform" in kwargs: + raise ValueError("transform should not be set") + super().__init__(bbox1, bbox2, loc1a, loc2a, **kwargs) + self.loc1b = loc1b + self.loc2b = loc2b + + def get_path(self): + # docstring inherited + path1 = self.connect_bbox(self.bbox1, self.bbox2, self.loc1, self.loc2) + path2 = self.connect_bbox(self.bbox2, self.bbox1, + self.loc2b, self.loc1b) + path_merged = [*path1.vertices, *path2.vertices, path1.vertices[0]] + return Path(path_merged) + + +def _add_inset_axes(parent_axes, axes_class, axes_kwargs, axes_locator): + """Helper function to add an inset axes and disable navigation in it.""" + if axes_class is None: + axes_class = HostAxes + if axes_kwargs is None: + axes_kwargs = {} + fig = parent_axes.get_figure(root=False) + inset_axes = axes_class( + fig, parent_axes.get_position(), + **{"navigate": False, **axes_kwargs, "axes_locator": axes_locator}) + return fig.add_axes(inset_axes) + + +@_docstring.interpd +def inset_axes(parent_axes, width, height, loc='upper right', + bbox_to_anchor=None, bbox_transform=None, + axes_class=None, axes_kwargs=None, + borderpad=0.5): + """ + Create an inset axes with a given width and height. + + Both sizes used can be specified either in inches or percentage. + For example,:: + + inset_axes(parent_axes, width='40%%', height='30%%', loc='lower left') + + creates in inset axes in the lower left corner of *parent_axes* which spans + over 30%% in height and 40%% in width of the *parent_axes*. Since the usage + of `.inset_axes` may become slightly tricky when exceeding such standard + cases, it is recommended to read :doc:`the examples + `. + + Notes + ----- + The meaning of *bbox_to_anchor* and *bbox_to_transform* is interpreted + differently from that of legend. The value of bbox_to_anchor + (or the return value of its get_points method; the default is + *parent_axes.bbox*) is transformed by the bbox_transform (the default + is Identity transform) and then interpreted as points in the pixel + coordinate (which is dpi dependent). + + Thus, following three calls are identical and creates an inset axes + with respect to the *parent_axes*:: + + axins = inset_axes(parent_axes, "30%%", "40%%") + axins = inset_axes(parent_axes, "30%%", "40%%", + bbox_to_anchor=parent_axes.bbox) + axins = inset_axes(parent_axes, "30%%", "40%%", + bbox_to_anchor=(0, 0, 1, 1), + bbox_transform=parent_axes.transAxes) + + Parameters + ---------- + parent_axes : `matplotlib.axes.Axes` + Axes to place the inset axes. + + width, height : float or str + Size of the inset axes to create. If a float is provided, it is + the size in inches, e.g. *width=1.3*. If a string is provided, it is + the size in relative units, e.g. *width='40%%'*. By default, i.e. if + neither *bbox_to_anchor* nor *bbox_transform* are specified, those + are relative to the parent_axes. Otherwise, they are to be understood + relative to the bounding box provided via *bbox_to_anchor*. + + loc : str, default: 'upper right' + Location to place the inset axes. Valid locations are + 'upper left', 'upper center', 'upper right', + 'center left', 'center', 'center right', + 'lower left', 'lower center', 'lower right'. + For backward compatibility, numeric values are accepted as well. + See the parameter *loc* of `.Legend` for details. + + bbox_to_anchor : tuple or `~matplotlib.transforms.BboxBase`, optional + Bbox that the inset axes will be anchored to. If None, + a tuple of (0, 0, 1, 1) is used if *bbox_transform* is set + to *parent_axes.transAxes* or *parent_axes.figure.transFigure*. + Otherwise, *parent_axes.bbox* is used. If a tuple, can be either + [left, bottom, width, height], or [left, bottom]. + If the kwargs *width* and/or *height* are specified in relative units, + the 2-tuple [left, bottom] cannot be used. Note that, + unless *bbox_transform* is set, the units of the bounding box + are interpreted in the pixel coordinate. When using *bbox_to_anchor* + with tuple, it almost always makes sense to also specify + a *bbox_transform*. This might often be the axes transform + *parent_axes.transAxes*. + + bbox_transform : `~matplotlib.transforms.Transform`, optional + Transformation for the bbox that contains the inset axes. + If None, a `.transforms.IdentityTransform` is used. The value + of *bbox_to_anchor* (or the return value of its get_points method) + is transformed by the *bbox_transform* and then interpreted + as points in the pixel coordinate (which is dpi dependent). + You may provide *bbox_to_anchor* in some normalized coordinate, + and give an appropriate transform (e.g., *parent_axes.transAxes*). + + axes_class : `~matplotlib.axes.Axes` type, default: `.HostAxes` + The type of the newly created inset axes. + + axes_kwargs : dict, optional + Keyword arguments to pass to the constructor of the inset axes. + Valid arguments include: + + %(Axes:kwdoc)s + + borderpad : float, default: 0.5 + Padding between inset axes and the bbox_to_anchor. + The units are axes font size, i.e. for a default font size of 10 points + *borderpad = 0.5* is equivalent to a padding of 5 points. + + Returns + ------- + inset_axes : *axes_class* + Inset axes object created. + """ + + if (bbox_transform in [parent_axes.transAxes, + parent_axes.get_figure(root=False).transFigure] + and bbox_to_anchor is None): + _api.warn_external("Using the axes or figure transform requires a " + "bounding box in the respective coordinates. " + "Using bbox_to_anchor=(0, 0, 1, 1) now.") + bbox_to_anchor = (0, 0, 1, 1) + if bbox_to_anchor is None: + bbox_to_anchor = parent_axes.bbox + if (isinstance(bbox_to_anchor, tuple) and + (isinstance(width, str) or isinstance(height, str))): + if len(bbox_to_anchor) != 4: + raise ValueError("Using relative units for width or height " + "requires to provide a 4-tuple or a " + "`Bbox` instance to `bbox_to_anchor.") + return _add_inset_axes( + parent_axes, axes_class, axes_kwargs, + AnchoredSizeLocator( + bbox_to_anchor, width, height, loc=loc, + bbox_transform=bbox_transform, borderpad=borderpad)) + + +@_docstring.interpd +def zoomed_inset_axes(parent_axes, zoom, loc='upper right', + bbox_to_anchor=None, bbox_transform=None, + axes_class=None, axes_kwargs=None, + borderpad=0.5): + """ + Create an anchored inset axes by scaling a parent axes. For usage, also see + :doc:`the examples `. + + Parameters + ---------- + parent_axes : `~matplotlib.axes.Axes` + Axes to place the inset axes. + + zoom : float + Scaling factor of the data axes. *zoom* > 1 will enlarge the + coordinates (i.e., "zoomed in"), while *zoom* < 1 will shrink the + coordinates (i.e., "zoomed out"). + + loc : str, default: 'upper right' + Location to place the inset axes. Valid locations are + 'upper left', 'upper center', 'upper right', + 'center left', 'center', 'center right', + 'lower left', 'lower center', 'lower right'. + For backward compatibility, numeric values are accepted as well. + See the parameter *loc* of `.Legend` for details. + + bbox_to_anchor : tuple or `~matplotlib.transforms.BboxBase`, optional + Bbox that the inset axes will be anchored to. If None, + *parent_axes.bbox* is used. If a tuple, can be either + [left, bottom, width, height], or [left, bottom]. + If the kwargs *width* and/or *height* are specified in relative units, + the 2-tuple [left, bottom] cannot be used. Note that + the units of the bounding box are determined through the transform + in use. When using *bbox_to_anchor* it almost always makes sense to + also specify a *bbox_transform*. This might often be the axes transform + *parent_axes.transAxes*. + + bbox_transform : `~matplotlib.transforms.Transform`, optional + Transformation for the bbox that contains the inset axes. + If None, a `.transforms.IdentityTransform` is used (i.e. pixel + coordinates). This is useful when not providing any argument to + *bbox_to_anchor*. When using *bbox_to_anchor* it almost always makes + sense to also specify a *bbox_transform*. This might often be the + axes transform *parent_axes.transAxes*. Inversely, when specifying + the axes- or figure-transform here, be aware that not specifying + *bbox_to_anchor* will use *parent_axes.bbox*, the units of which are + in display (pixel) coordinates. + + axes_class : `~matplotlib.axes.Axes` type, default: `.HostAxes` + The type of the newly created inset axes. + + axes_kwargs : dict, optional + Keyword arguments to pass to the constructor of the inset axes. + Valid arguments include: + + %(Axes:kwdoc)s + + borderpad : float, default: 0.5 + Padding between inset axes and the bbox_to_anchor. + The units are axes font size, i.e. for a default font size of 10 points + *borderpad = 0.5* is equivalent to a padding of 5 points. + + Returns + ------- + inset_axes : *axes_class* + Inset axes object created. + """ + + return _add_inset_axes( + parent_axes, axes_class, axes_kwargs, + AnchoredZoomLocator( + parent_axes, zoom=zoom, loc=loc, + bbox_to_anchor=bbox_to_anchor, bbox_transform=bbox_transform, + borderpad=borderpad)) + + +class _TransformedBboxWithCallback(TransformedBbox): + """ + Variant of `.TransformBbox` which calls *callback* before returning points. + + Used by `.mark_inset` to unstale the parent axes' viewlim as needed. + """ + + def __init__(self, *args, callback, **kwargs): + super().__init__(*args, **kwargs) + self._callback = callback + + def get_points(self): + self._callback() + return super().get_points() + + +@_docstring.interpd +def mark_inset(parent_axes, inset_axes, loc1, loc2, **kwargs): + """ + Draw a box to mark the location of an area represented by an inset axes. + + This function draws a box in *parent_axes* at the bounding box of + *inset_axes*, and shows a connection with the inset axes by drawing lines + at the corners, giving a "zoomed in" effect. + + Parameters + ---------- + parent_axes : `~matplotlib.axes.Axes` + Axes which contains the area of the inset axes. + + inset_axes : `~matplotlib.axes.Axes` + The inset axes. + + loc1, loc2 : {1, 2, 3, 4} + Corners to use for connecting the inset axes and the area in the + parent axes. + + **kwargs + Patch properties for the lines and box drawn: + + %(Patch:kwdoc)s + + Returns + ------- + pp : `~matplotlib.patches.Patch` + The patch drawn to represent the area of the inset axes. + + p1, p2 : `~matplotlib.patches.Patch` + The patches connecting two corners of the inset axes and its area. + """ + rect = _TransformedBboxWithCallback( + inset_axes.viewLim, parent_axes.transData, + callback=parent_axes._unstale_viewLim) + + kwargs.setdefault("fill", bool({'fc', 'facecolor', 'color'}.intersection(kwargs))) + pp = BboxPatch(rect, **kwargs) + parent_axes.add_patch(pp) + + p1 = BboxConnector(inset_axes.bbox, rect, loc1=loc1, **kwargs) + inset_axes.add_patch(p1) + p1.set_clip_on(False) + p2 = BboxConnector(inset_axes.bbox, rect, loc1=loc2, **kwargs) + inset_axes.add_patch(p2) + p2.set_clip_on(False) + + return pp, p1, p2 diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/mpl_axes.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/mpl_axes.py new file mode 100644 index 0000000..51c8748 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/mpl_axes.py @@ -0,0 +1,128 @@ +import matplotlib.axes as maxes +from matplotlib.artist import Artist +from matplotlib.axis import XAxis, YAxis + + +class SimpleChainedObjects: + def __init__(self, objects): + self._objects = objects + + def __getattr__(self, k): + _a = SimpleChainedObjects([getattr(a, k) for a in self._objects]) + return _a + + def __call__(self, *args, **kwargs): + for m in self._objects: + m(*args, **kwargs) + + +class Axes(maxes.Axes): + + class AxisDict(dict): + def __init__(self, axes): + self.axes = axes + super().__init__() + + def __getitem__(self, k): + if isinstance(k, tuple): + r = SimpleChainedObjects( + # super() within a list comprehension needs explicit args. + [super(Axes.AxisDict, self).__getitem__(k1) for k1 in k]) + return r + elif isinstance(k, slice): + if k.start is None and k.stop is None and k.step is None: + return SimpleChainedObjects(list(self.values())) + else: + raise ValueError("Unsupported slice") + else: + return dict.__getitem__(self, k) + + def __call__(self, *v, **kwargs): + return maxes.Axes.axis(self.axes, *v, **kwargs) + + @property + def axis(self): + return self._axislines + + def clear(self): + # docstring inherited + super().clear() + # Init axis artists. + self._axislines = self.AxisDict(self) + self._axislines.update( + bottom=SimpleAxisArtist(self.xaxis, 1, self.spines["bottom"]), + top=SimpleAxisArtist(self.xaxis, 2, self.spines["top"]), + left=SimpleAxisArtist(self.yaxis, 1, self.spines["left"]), + right=SimpleAxisArtist(self.yaxis, 2, self.spines["right"])) + + +class SimpleAxisArtist(Artist): + def __init__(self, axis, axisnum, spine): + self._axis = axis + self._axisnum = axisnum + self.line = spine + + if isinstance(axis, XAxis): + self._axis_direction = ["bottom", "top"][axisnum-1] + elif isinstance(axis, YAxis): + self._axis_direction = ["left", "right"][axisnum-1] + else: + raise ValueError( + f"axis must be instance of XAxis or YAxis, but got {axis}") + super().__init__() + + @property + def major_ticks(self): + tickline = "tick%dline" % self._axisnum + return SimpleChainedObjects([getattr(tick, tickline) + for tick in self._axis.get_major_ticks()]) + + @property + def major_ticklabels(self): + label = "label%d" % self._axisnum + return SimpleChainedObjects([getattr(tick, label) + for tick in self._axis.get_major_ticks()]) + + @property + def label(self): + return self._axis.label + + def set_visible(self, b): + self.toggle(all=b) + self.line.set_visible(b) + self._axis.set_visible(True) + super().set_visible(b) + + def set_label(self, txt): + self._axis.set_label_text(txt) + + def toggle(self, all=None, ticks=None, ticklabels=None, label=None): + + if all: + _ticks, _ticklabels, _label = True, True, True + elif all is not None: + _ticks, _ticklabels, _label = False, False, False + else: + _ticks, _ticklabels, _label = None, None, None + + if ticks is not None: + _ticks = ticks + if ticklabels is not None: + _ticklabels = ticklabels + if label is not None: + _label = label + + if _ticks is not None: + tickparam = {f"tick{self._axisnum}On": _ticks} + self._axis.set_tick_params(**tickparam) + if _ticklabels is not None: + tickparam = {f"label{self._axisnum}On": _ticklabels} + self._axis.set_tick_params(**tickparam) + + if _label is not None: + pos = self._axis.get_label_position() + if (pos == self._axis_direction) and not _label: + self._axis.label.set_visible(False) + elif _label: + self._axis.label.set_visible(True) + self._axis.set_label_position(self._axis_direction) diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/parasite_axes.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/parasite_axes.py new file mode 100644 index 0000000..f7bc2df --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/parasite_axes.py @@ -0,0 +1,257 @@ +from matplotlib import _api, cbook +import matplotlib.artist as martist +import matplotlib.transforms as mtransforms +from matplotlib.transforms import Bbox +from .mpl_axes import Axes + + +class ParasiteAxesBase: + + def __init__(self, parent_axes, aux_transform=None, + *, viewlim_mode=None, **kwargs): + self._parent_axes = parent_axes + self.transAux = aux_transform + self.set_viewlim_mode(viewlim_mode) + kwargs["frameon"] = False + super().__init__(parent_axes.get_figure(root=False), + parent_axes._position, **kwargs) + + def clear(self): + super().clear() + martist.setp(self.get_children(), visible=False) + self._get_lines = self._parent_axes._get_lines + self._parent_axes.callbacks._connect_picklable( + "xlim_changed", self._sync_lims) + self._parent_axes.callbacks._connect_picklable( + "ylim_changed", self._sync_lims) + + def pick(self, mouseevent): + # This most likely goes to Artist.pick (depending on axes_class given + # to the factory), which only handles pick events registered on the + # axes associated with each child: + super().pick(mouseevent) + # But parasite axes are additionally given pick events from their host + # axes (cf. HostAxesBase.pick), which we handle here: + for a in self.get_children(): + if (hasattr(mouseevent.inaxes, "parasites") + and self in mouseevent.inaxes.parasites): + a.pick(mouseevent) + + # aux_transform support + + def _set_lim_and_transforms(self): + if self.transAux is not None: + self.transAxes = self._parent_axes.transAxes + self.transData = self.transAux + self._parent_axes.transData + self._xaxis_transform = mtransforms.blended_transform_factory( + self.transData, self.transAxes) + self._yaxis_transform = mtransforms.blended_transform_factory( + self.transAxes, self.transData) + else: + super()._set_lim_and_transforms() + + def set_viewlim_mode(self, mode): + _api.check_in_list([None, "equal", "transform"], mode=mode) + self._viewlim_mode = mode + + def get_viewlim_mode(self): + return self._viewlim_mode + + def _sync_lims(self, parent): + viewlim = parent.viewLim.frozen() + mode = self.get_viewlim_mode() + if mode is None: + pass + elif mode == "equal": + self.viewLim.set(viewlim) + elif mode == "transform": + self.viewLim.set(viewlim.transformed(self.transAux.inverted())) + else: + _api.check_in_list([None, "equal", "transform"], mode=mode) + + # end of aux_transform support + + +parasite_axes_class_factory = cbook._make_class_factory( + ParasiteAxesBase, "{}Parasite") +ParasiteAxes = parasite_axes_class_factory(Axes) + + +class HostAxesBase: + def __init__(self, *args, **kwargs): + self.parasites = [] + super().__init__(*args, **kwargs) + + def get_aux_axes( + self, tr=None, viewlim_mode="equal", axes_class=None, **kwargs): + """ + Add a parasite axes to this host. + + Despite this method's name, this should actually be thought of as an + ``add_parasite_axes`` method. + + .. versionchanged:: 3.7 + Defaults to same base axes class as host axes. + + Parameters + ---------- + tr : `~matplotlib.transforms.Transform` or None, default: None + If a `.Transform`, the following relation will hold: + ``parasite.transData = tr + host.transData``. + If None, the parasite's and the host's ``transData`` are unrelated. + viewlim_mode : {"equal", "transform", None}, default: "equal" + How the parasite's view limits are set: directly equal to the + parent axes ("equal"), equal after application of *tr* + ("transform"), or independently (None). + axes_class : subclass type of `~matplotlib.axes.Axes`, optional + The `~.axes.Axes` subclass that is instantiated. If None, the base + class of the host axes is used. + **kwargs + Other parameters are forwarded to the parasite axes constructor. + """ + if axes_class is None: + axes_class = self._base_axes_class + parasite_axes_class = parasite_axes_class_factory(axes_class) + ax2 = parasite_axes_class( + self, tr, viewlim_mode=viewlim_mode, **kwargs) + # note that ax2.transData == tr + ax1.transData + # Anything you draw in ax2 will match the ticks and grids of ax1. + self.parasites.append(ax2) + ax2._remove_method = self.parasites.remove + return ax2 + + def draw(self, renderer): + orig_children_len = len(self._children) + + locator = self.get_axes_locator() + if locator: + pos = locator(self, renderer) + self.set_position(pos, which="active") + self.apply_aspect(pos) + else: + self.apply_aspect() + + rect = self.get_position() + for ax in self.parasites: + ax.apply_aspect(rect) + self._children.extend(ax.get_children()) + + super().draw(renderer) + del self._children[orig_children_len:] + + def clear(self): + super().clear() + for ax in self.parasites: + ax.clear() + + def pick(self, mouseevent): + super().pick(mouseevent) + # Also pass pick events on to parasite axes and, in turn, their + # children (cf. ParasiteAxesBase.pick) + for a in self.parasites: + a.pick(mouseevent) + + def twinx(self, axes_class=None): + """ + Create a twin of Axes with a shared x-axis but independent y-axis. + + The y-axis of self will have ticks on the left and the returned axes + will have ticks on the right. + """ + ax = self._add_twin_axes(axes_class, sharex=self) + self.axis["right"].set_visible(False) + ax.axis["right"].set_visible(True) + ax.axis["left", "top", "bottom"].set_visible(False) + return ax + + def twiny(self, axes_class=None): + """ + Create a twin of Axes with a shared y-axis but independent x-axis. + + The x-axis of self will have ticks on the bottom and the returned axes + will have ticks on the top. + """ + ax = self._add_twin_axes(axes_class, sharey=self) + self.axis["top"].set_visible(False) + ax.axis["top"].set_visible(True) + ax.axis["left", "right", "bottom"].set_visible(False) + return ax + + def twin(self, aux_trans=None, axes_class=None): + """ + Create a twin of Axes with no shared axis. + + While self will have ticks on the left and bottom axis, the returned + axes will have ticks on the top and right axis. + """ + if aux_trans is None: + aux_trans = mtransforms.IdentityTransform() + ax = self._add_twin_axes( + axes_class, aux_transform=aux_trans, viewlim_mode="transform") + self.axis["top", "right"].set_visible(False) + ax.axis["top", "right"].set_visible(True) + ax.axis["left", "bottom"].set_visible(False) + return ax + + def _add_twin_axes(self, axes_class, **kwargs): + """ + Helper for `.twinx`/`.twiny`/`.twin`. + + *kwargs* are forwarded to the parasite axes constructor. + """ + if axes_class is None: + axes_class = self._base_axes_class + ax = parasite_axes_class_factory(axes_class)(self, **kwargs) + self.parasites.append(ax) + ax._remove_method = self._remove_any_twin + return ax + + def _remove_any_twin(self, ax): + self.parasites.remove(ax) + restore = ["top", "right"] + if ax._sharex: + restore.remove("top") + if ax._sharey: + restore.remove("right") + self.axis[tuple(restore)].set_visible(True) + self.axis[tuple(restore)].toggle(ticklabels=False, label=False) + + def get_tightbbox(self, renderer=None, *, call_axes_locator=True, + bbox_extra_artists=None): + bbs = [ + *[ax.get_tightbbox(renderer, call_axes_locator=call_axes_locator) + for ax in self.parasites], + super().get_tightbbox(renderer, + call_axes_locator=call_axes_locator, + bbox_extra_artists=bbox_extra_artists)] + return Bbox.union([b for b in bbs if b.width != 0 or b.height != 0]) + + +host_axes_class_factory = host_subplot_class_factory = \ + cbook._make_class_factory(HostAxesBase, "{}HostAxes", "_base_axes_class") +HostAxes = SubplotHost = host_axes_class_factory(Axes) + + +def host_axes(*args, axes_class=Axes, figure=None, **kwargs): + """ + Create axes that can act as a hosts to parasitic axes. + + Parameters + ---------- + figure : `~matplotlib.figure.Figure` + Figure to which the axes will be added. Defaults to the current figure + `.pyplot.gcf()`. + + *args, **kwargs + Will be passed on to the underlying `~.axes.Axes` object creation. + """ + import matplotlib.pyplot as plt + host_axes_class = host_axes_class_factory(axes_class) + if figure is None: + figure = plt.gcf() + ax = host_axes_class(figure, *args, **kwargs) + figure.add_axes(ax) + return ax + + +host_subplot = host_axes diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/tests/__init__.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/tests/__init__.py new file mode 100644 index 0000000..ea4d8ed --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/tests/__init__.py @@ -0,0 +1,10 @@ +from pathlib import Path + + +# Check that the test directories exist +if not (Path(__file__).parent / "baseline_images").exists(): + raise OSError( + 'The baseline image directory does not exist. ' + 'This is most likely because the test data is not installed. ' + 'You may need to install matplotlib from source to get the ' + 'test data.') diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/tests/conftest.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/tests/conftest.py new file mode 100644 index 0000000..61c2de3 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/tests/conftest.py @@ -0,0 +1,2 @@ +from matplotlib.testing.conftest import (mpl_test_settings, # noqa + pytest_configure, pytest_unconfigure) diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/tests/test_axes_grid1.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/tests/test_axes_grid1.py new file mode 100644 index 0000000..b045e8d --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axes_grid1/tests/test_axes_grid1.py @@ -0,0 +1,782 @@ +from itertools import product +import io +import platform + +import matplotlib as mpl +import matplotlib.pyplot as plt +import matplotlib.ticker as mticker +from matplotlib import cbook +from matplotlib.backend_bases import MouseEvent +from matplotlib.colors import LogNorm +from matplotlib.patches import Circle, Ellipse +from matplotlib.transforms import Bbox, TransformedBbox +from matplotlib.testing.decorators import ( + check_figures_equal, image_comparison, remove_ticks_and_titles) + +from mpl_toolkits.axes_grid1 import ( + axes_size as Size, + host_subplot, make_axes_locatable, + Grid, AxesGrid, ImageGrid) +from mpl_toolkits.axes_grid1.anchored_artists import ( + AnchoredAuxTransformBox, AnchoredDrawingArea, + AnchoredDirectionArrows, AnchoredSizeBar) +from mpl_toolkits.axes_grid1.axes_divider import ( + Divider, HBoxDivider, make_axes_area_auto_adjustable, SubplotDivider, + VBoxDivider) +from mpl_toolkits.axes_grid1.axes_rgb import RGBAxes +from mpl_toolkits.axes_grid1.inset_locator import ( + zoomed_inset_axes, mark_inset, inset_axes, BboxConnectorPatch) +import mpl_toolkits.axes_grid1.mpl_axes +import pytest + +import numpy as np +from numpy.testing import assert_array_equal, assert_array_almost_equal + + +def test_divider_append_axes(): + fig, ax = plt.subplots() + divider = make_axes_locatable(ax) + axs = { + "main": ax, + "top": divider.append_axes("top", 1.2, pad=0.1, sharex=ax), + "bottom": divider.append_axes("bottom", 1.2, pad=0.1, sharex=ax), + "left": divider.append_axes("left", 1.2, pad=0.1, sharey=ax), + "right": divider.append_axes("right", 1.2, pad=0.1, sharey=ax), + } + fig.canvas.draw() + bboxes = {k: axs[k].get_window_extent() for k in axs} + dpi = fig.dpi + assert bboxes["top"].height == pytest.approx(1.2 * dpi) + assert bboxes["bottom"].height == pytest.approx(1.2 * dpi) + assert bboxes["left"].width == pytest.approx(1.2 * dpi) + assert bboxes["right"].width == pytest.approx(1.2 * dpi) + assert bboxes["top"].y0 - bboxes["main"].y1 == pytest.approx(0.1 * dpi) + assert bboxes["main"].y0 - bboxes["bottom"].y1 == pytest.approx(0.1 * dpi) + assert bboxes["main"].x0 - bboxes["left"].x1 == pytest.approx(0.1 * dpi) + assert bboxes["right"].x0 - bboxes["main"].x1 == pytest.approx(0.1 * dpi) + assert bboxes["left"].y0 == bboxes["main"].y0 == bboxes["right"].y0 + assert bboxes["left"].y1 == bboxes["main"].y1 == bboxes["right"].y1 + assert bboxes["top"].x0 == bboxes["main"].x0 == bboxes["bottom"].x0 + assert bboxes["top"].x1 == bboxes["main"].x1 == bboxes["bottom"].x1 + + +# Update style when regenerating the test image +@image_comparison(['twin_axes_empty_and_removed'], extensions=["png"], tol=1, + style=('classic', '_classic_test_patch')) +def test_twin_axes_empty_and_removed(): + # Purely cosmetic font changes (avoid overlap) + mpl.rcParams.update( + {"font.size": 8, "xtick.labelsize": 8, "ytick.labelsize": 8}) + generators = ["twinx", "twiny", "twin"] + modifiers = ["", "host invisible", "twin removed", "twin invisible", + "twin removed\nhost invisible"] + # Unmodified host subplot at the beginning for reference + h = host_subplot(len(modifiers)+1, len(generators), 2) + h.text(0.5, 0.5, "host_subplot", + horizontalalignment="center", verticalalignment="center") + # Host subplots with various modifications (twin*, visibility) applied + for i, (mod, gen) in enumerate(product(modifiers, generators), + len(generators) + 1): + h = host_subplot(len(modifiers)+1, len(generators), i) + t = getattr(h, gen)() + if "twin invisible" in mod: + t.axis[:].set_visible(False) + if "twin removed" in mod: + t.remove() + if "host invisible" in mod: + h.axis[:].set_visible(False) + h.text(0.5, 0.5, gen + ("\n" + mod if mod else ""), + horizontalalignment="center", verticalalignment="center") + plt.subplots_adjust(wspace=0.5, hspace=1) + + +def test_twin_axes_both_with_units(): + host = host_subplot(111) + with pytest.warns(mpl.MatplotlibDeprecationWarning): + host.plot_date([0, 1, 2], [0, 1, 2], xdate=False, ydate=True) + twin = host.twinx() + twin.plot(["a", "b", "c"]) + assert host.get_yticklabels()[0].get_text() == "00:00:00" + assert twin.get_yticklabels()[0].get_text() == "a" + + +def test_axesgrid_colorbar_log_smoketest(): + fig = plt.figure() + grid = AxesGrid(fig, 111, # modified to be only subplot + nrows_ncols=(1, 1), + ngrids=1, + label_mode="L", + cbar_location="top", + cbar_mode="single", + ) + + Z = 10000 * np.random.rand(10, 10) + im = grid[0].imshow(Z, interpolation="nearest", norm=LogNorm()) + + grid.cbar_axes[0].colorbar(im) + + +def test_inset_colorbar_tight_layout_smoketest(): + fig, ax = plt.subplots(1, 1) + pts = ax.scatter([0, 1], [0, 1], c=[1, 5]) + + cax = inset_axes(ax, width="3%", height="70%") + plt.colorbar(pts, cax=cax) + + with pytest.warns(UserWarning, match="This figure includes Axes"): + # Will warn, but not raise an error + plt.tight_layout() + + +@image_comparison(['inset_locator.png'], style='default', remove_text=True) +def test_inset_locator(): + fig, ax = plt.subplots(figsize=[5, 4]) + + # prepare the demo image + # Z is a 15x15 array + Z = cbook.get_sample_data("axes_grid/bivariate_normal.npy") + extent = (-3, 4, -4, 3) + Z2 = np.zeros((150, 150)) + ny, nx = Z.shape + Z2[30:30+ny, 30:30+nx] = Z + + ax.imshow(Z2, extent=extent, interpolation="nearest", + origin="lower") + + axins = zoomed_inset_axes(ax, zoom=6, loc='upper right') + axins.imshow(Z2, extent=extent, interpolation="nearest", + origin="lower") + axins.yaxis.get_major_locator().set_params(nbins=7) + axins.xaxis.get_major_locator().set_params(nbins=7) + # sub region of the original image + x1, x2, y1, y2 = -1.5, -0.9, -2.5, -1.9 + axins.set_xlim(x1, x2) + axins.set_ylim(y1, y2) + + plt.xticks(visible=False) + plt.yticks(visible=False) + + # draw a bbox of the region of the inset axes in the parent axes and + # connecting lines between the bbox and the inset axes area + mark_inset(ax, axins, loc1=2, loc2=4, fc="none", ec="0.5") + + asb = AnchoredSizeBar(ax.transData, + 0.5, + '0.5', + loc='lower center', + pad=0.1, borderpad=0.5, sep=5, + frameon=False) + ax.add_artist(asb) + + +@image_comparison(['inset_axes.png'], style='default', remove_text=True) +def test_inset_axes(): + fig, ax = plt.subplots(figsize=[5, 4]) + + # prepare the demo image + # Z is a 15x15 array + Z = cbook.get_sample_data("axes_grid/bivariate_normal.npy") + extent = (-3, 4, -4, 3) + Z2 = np.zeros((150, 150)) + ny, nx = Z.shape + Z2[30:30+ny, 30:30+nx] = Z + + ax.imshow(Z2, extent=extent, interpolation="nearest", + origin="lower") + + # creating our inset axes with a bbox_transform parameter + axins = inset_axes(ax, width=1., height=1., bbox_to_anchor=(1, 1), + bbox_transform=ax.transAxes) + + axins.imshow(Z2, extent=extent, interpolation="nearest", + origin="lower") + axins.yaxis.get_major_locator().set_params(nbins=7) + axins.xaxis.get_major_locator().set_params(nbins=7) + # sub region of the original image + x1, x2, y1, y2 = -1.5, -0.9, -2.5, -1.9 + axins.set_xlim(x1, x2) + axins.set_ylim(y1, y2) + + plt.xticks(visible=False) + plt.yticks(visible=False) + + # draw a bbox of the region of the inset axes in the parent axes and + # connecting lines between the bbox and the inset axes area + mark_inset(ax, axins, loc1=2, loc2=4, fc="none", ec="0.5") + + asb = AnchoredSizeBar(ax.transData, + 0.5, + '0.5', + loc='lower center', + pad=0.1, borderpad=0.5, sep=5, + frameon=False) + ax.add_artist(asb) + + +def test_inset_axes_complete(): + dpi = 100 + figsize = (6, 5) + fig, ax = plt.subplots(figsize=figsize, dpi=dpi) + fig.subplots_adjust(.1, .1, .9, .9) + + ins = inset_axes(ax, width=2., height=2., borderpad=0) + fig.canvas.draw() + assert_array_almost_equal( + ins.get_position().extents, + [(0.9*figsize[0]-2.)/figsize[0], (0.9*figsize[1]-2.)/figsize[1], + 0.9, 0.9]) + + ins = inset_axes(ax, width="40%", height="30%", borderpad=0) + fig.canvas.draw() + assert_array_almost_equal( + ins.get_position().extents, [.9-.8*.4, .9-.8*.3, 0.9, 0.9]) + + ins = inset_axes(ax, width=1., height=1.2, bbox_to_anchor=(200, 100), + loc=3, borderpad=0) + fig.canvas.draw() + assert_array_almost_equal( + ins.get_position().extents, + [200/dpi/figsize[0], 100/dpi/figsize[1], + (200/dpi+1)/figsize[0], (100/dpi+1.2)/figsize[1]]) + + ins1 = inset_axes(ax, width="35%", height="60%", loc=3, borderpad=1) + ins2 = inset_axes(ax, width="100%", height="100%", + bbox_to_anchor=(0, 0, .35, .60), + bbox_transform=ax.transAxes, loc=3, borderpad=1) + fig.canvas.draw() + assert_array_equal(ins1.get_position().extents, + ins2.get_position().extents) + + with pytest.raises(ValueError): + ins = inset_axes(ax, width="40%", height="30%", + bbox_to_anchor=(0.4, 0.5)) + + with pytest.warns(UserWarning): + ins = inset_axes(ax, width="40%", height="30%", + bbox_transform=ax.transAxes) + + +def test_inset_axes_tight(): + # gh-26287 found that inset_axes raised with bbox_inches=tight + fig, ax = plt.subplots() + inset_axes(ax, width=1.3, height=0.9) + + f = io.BytesIO() + fig.savefig(f, bbox_inches="tight") + + +@image_comparison(['fill_facecolor.png'], remove_text=True, style='mpl20') +def test_fill_facecolor(): + fig, ax = plt.subplots(1, 5) + fig.set_size_inches(5, 5) + for i in range(1, 4): + ax[i].yaxis.set_visible(False) + ax[4].yaxis.tick_right() + bbox = Bbox.from_extents(0, 0.4, 1, 0.6) + + # fill with blue by setting 'fc' field + bbox1 = TransformedBbox(bbox, ax[0].transData) + bbox2 = TransformedBbox(bbox, ax[1].transData) + # set color to BboxConnectorPatch + p = BboxConnectorPatch( + bbox1, bbox2, loc1a=1, loc2a=2, loc1b=4, loc2b=3, + ec="r", fc="b") + p.set_clip_on(False) + ax[0].add_patch(p) + # set color to marked area + axins = zoomed_inset_axes(ax[0], 1, loc='upper right') + axins.set_xlim(0, 0.2) + axins.set_ylim(0, 0.2) + plt.gca().axes.xaxis.set_ticks([]) + plt.gca().axes.yaxis.set_ticks([]) + mark_inset(ax[0], axins, loc1=2, loc2=4, fc="b", ec="0.5") + + # fill with yellow by setting 'facecolor' field + bbox3 = TransformedBbox(bbox, ax[1].transData) + bbox4 = TransformedBbox(bbox, ax[2].transData) + # set color to BboxConnectorPatch + p = BboxConnectorPatch( + bbox3, bbox4, loc1a=1, loc2a=2, loc1b=4, loc2b=3, + ec="r", facecolor="y") + p.set_clip_on(False) + ax[1].add_patch(p) + # set color to marked area + axins = zoomed_inset_axes(ax[1], 1, loc='upper right') + axins.set_xlim(0, 0.2) + axins.set_ylim(0, 0.2) + plt.gca().axes.xaxis.set_ticks([]) + plt.gca().axes.yaxis.set_ticks([]) + mark_inset(ax[1], axins, loc1=2, loc2=4, facecolor="y", ec="0.5") + + # fill with green by setting 'color' field + bbox5 = TransformedBbox(bbox, ax[2].transData) + bbox6 = TransformedBbox(bbox, ax[3].transData) + # set color to BboxConnectorPatch + p = BboxConnectorPatch( + bbox5, bbox6, loc1a=1, loc2a=2, loc1b=4, loc2b=3, + ec="r", color="g") + p.set_clip_on(False) + ax[2].add_patch(p) + # set color to marked area + axins = zoomed_inset_axes(ax[2], 1, loc='upper right') + axins.set_xlim(0, 0.2) + axins.set_ylim(0, 0.2) + plt.gca().axes.xaxis.set_ticks([]) + plt.gca().axes.yaxis.set_ticks([]) + mark_inset(ax[2], axins, loc1=2, loc2=4, color="g", ec="0.5") + + # fill with green but color won't show if set fill to False + bbox7 = TransformedBbox(bbox, ax[3].transData) + bbox8 = TransformedBbox(bbox, ax[4].transData) + # BboxConnectorPatch won't show green + p = BboxConnectorPatch( + bbox7, bbox8, loc1a=1, loc2a=2, loc1b=4, loc2b=3, + ec="r", fc="g", fill=False) + p.set_clip_on(False) + ax[3].add_patch(p) + # marked area won't show green + axins = zoomed_inset_axes(ax[3], 1, loc='upper right') + axins.set_xlim(0, 0.2) + axins.set_ylim(0, 0.2) + axins.xaxis.set_ticks([]) + axins.yaxis.set_ticks([]) + mark_inset(ax[3], axins, loc1=2, loc2=4, fc="g", ec="0.5", fill=False) + + +# Update style when regenerating the test image +@image_comparison(['zoomed_axes.png', 'inverted_zoomed_axes.png'], + style=('classic', '_classic_test_patch'), + tol=0 if platform.machine() == 'x86_64' else 0.02) +def test_zooming_with_inverted_axes(): + fig, ax = plt.subplots() + ax.plot([1, 2, 3], [1, 2, 3]) + ax.axis([1, 3, 1, 3]) + inset_ax = zoomed_inset_axes(ax, zoom=2.5, loc='lower right') + inset_ax.axis([1.1, 1.4, 1.1, 1.4]) + + fig, ax = plt.subplots() + ax.plot([1, 2, 3], [1, 2, 3]) + ax.axis([3, 1, 3, 1]) + inset_ax = zoomed_inset_axes(ax, zoom=2.5, loc='lower right') + inset_ax.axis([1.4, 1.1, 1.4, 1.1]) + + +# Update style when regenerating the test image +@image_comparison(['anchored_direction_arrows.png'], + tol=0 if platform.machine() == 'x86_64' else 0.01, + style=('classic', '_classic_test_patch')) +def test_anchored_direction_arrows(): + fig, ax = plt.subplots() + ax.imshow(np.zeros((10, 10)), interpolation='nearest') + + simple_arrow = AnchoredDirectionArrows(ax.transAxes, 'X', 'Y') + ax.add_artist(simple_arrow) + + +# Update style when regenerating the test image +@image_comparison(['anchored_direction_arrows_many_args.png'], + style=('classic', '_classic_test_patch')) +def test_anchored_direction_arrows_many_args(): + fig, ax = plt.subplots() + ax.imshow(np.ones((10, 10))) + + direction_arrows = AnchoredDirectionArrows( + ax.transAxes, 'A', 'B', loc='upper right', color='red', + aspect_ratio=-0.5, pad=0.6, borderpad=2, frameon=True, alpha=0.7, + sep_x=-0.06, sep_y=-0.08, back_length=0.1, head_width=9, + head_length=10, tail_width=5) + ax.add_artist(direction_arrows) + + +def test_axes_locatable_position(): + fig, ax = plt.subplots() + divider = make_axes_locatable(ax) + with mpl.rc_context({"figure.subplot.wspace": 0.02}): + cax = divider.append_axes('right', size='5%') + fig.canvas.draw() + assert np.isclose(cax.get_position(original=False).width, + 0.03621495327102808) + + +@image_comparison(['image_grid_each_left_label_mode_all.png'], style='mpl20', + savefig_kwarg={'bbox_inches': 'tight'}) +def test_image_grid_each_left_label_mode_all(): + imdata = np.arange(100).reshape((10, 10)) + + fig = plt.figure(1, (3, 3)) + grid = ImageGrid(fig, (1, 1, 1), nrows_ncols=(3, 2), axes_pad=(0.5, 0.3), + cbar_mode="each", cbar_location="left", cbar_size="15%", + label_mode="all") + # 3-tuple rect => SubplotDivider + assert isinstance(grid.get_divider(), SubplotDivider) + assert grid.get_axes_pad() == (0.5, 0.3) + assert grid.get_aspect() # True by default for ImageGrid + for ax, cax in zip(grid, grid.cbar_axes): + im = ax.imshow(imdata, interpolation='none') + cax.colorbar(im) + + +@image_comparison(['image_grid_single_bottom_label_mode_1.png'], style='mpl20', + savefig_kwarg={'bbox_inches': 'tight'}) +def test_image_grid_single_bottom(): + imdata = np.arange(100).reshape((10, 10)) + + fig = plt.figure(1, (2.5, 1.5)) + grid = ImageGrid(fig, (0, 0, 1, 1), nrows_ncols=(1, 3), + axes_pad=(0.2, 0.15), cbar_mode="single", cbar_pad=0.3, + cbar_location="bottom", cbar_size="10%", label_mode="1") + # 4-tuple rect => Divider, isinstance will give True for SubplotDivider + assert type(grid.get_divider()) is Divider + for i in range(3): + im = grid[i].imshow(imdata, interpolation='none') + grid.cbar_axes[0].colorbar(im) + + +def test_image_grid_label_mode_invalid(): + fig = plt.figure() + with pytest.raises(ValueError, match="'foo' is not a valid value for mode"): + ImageGrid(fig, (0, 0, 1, 1), (2, 1), label_mode="foo") + + +@image_comparison(['image_grid.png'], + remove_text=True, style='mpl20', + savefig_kwarg={'bbox_inches': 'tight'}) +def test_image_grid(): + # test that image grid works with bbox_inches=tight. + im = np.arange(100).reshape((10, 10)) + + fig = plt.figure(1, (4, 4)) + grid = ImageGrid(fig, 111, nrows_ncols=(2, 2), axes_pad=0.1) + assert grid.get_axes_pad() == (0.1, 0.1) + for i in range(4): + grid[i].imshow(im, interpolation='nearest') + + +def test_gettightbbox(): + fig, ax = plt.subplots(figsize=(8, 6)) + + l, = ax.plot([1, 2, 3], [0, 1, 0]) + + ax_zoom = zoomed_inset_axes(ax, 4) + ax_zoom.plot([1, 2, 3], [0, 1, 0]) + + mark_inset(ax, ax_zoom, loc1=1, loc2=3, fc="none", ec='0.3') + + remove_ticks_and_titles(fig) + bbox = fig.get_tightbbox(fig.canvas.get_renderer()) + np.testing.assert_array_almost_equal(bbox.extents, + [-17.7, -13.9, 7.2, 5.4]) + + +@pytest.mark.parametrize("click_on", ["big", "small"]) +@pytest.mark.parametrize("big_on_axes,small_on_axes", [ + ("gca", "gca"), + ("host", "host"), + ("host", "parasite"), + ("parasite", "host"), + ("parasite", "parasite") +]) +def test_picking_callbacks_overlap(big_on_axes, small_on_axes, click_on): + """Test pick events on normal, host or parasite axes.""" + # Two rectangles are drawn and "clicked on", a small one and a big one + # enclosing the small one. The axis on which they are drawn as well as the + # rectangle that is clicked on are varied. + # In each case we expect that both rectangles are picked if we click on the + # small one and only the big one is picked if we click on the big one. + # Also tests picking on normal axes ("gca") as a control. + big = plt.Rectangle((0.25, 0.25), 0.5, 0.5, picker=5) + small = plt.Rectangle((0.4, 0.4), 0.2, 0.2, facecolor="r", picker=5) + # Machinery for "receiving" events + received_events = [] + def on_pick(event): + received_events.append(event) + plt.gcf().canvas.mpl_connect('pick_event', on_pick) + # Shortcut + rectangles_on_axes = (big_on_axes, small_on_axes) + # Axes setup + axes = {"gca": None, "host": None, "parasite": None} + if "gca" in rectangles_on_axes: + axes["gca"] = plt.gca() + if "host" in rectangles_on_axes or "parasite" in rectangles_on_axes: + axes["host"] = host_subplot(111) + axes["parasite"] = axes["host"].twin() + # Add rectangles to axes + axes[big_on_axes].add_patch(big) + axes[small_on_axes].add_patch(small) + # Simulate picking with click mouse event + if click_on == "big": + click_axes = axes[big_on_axes] + axes_coords = (0.3, 0.3) + else: + click_axes = axes[small_on_axes] + axes_coords = (0.5, 0.5) + # In reality mouse events never happen on parasite axes, only host axes + if click_axes is axes["parasite"]: + click_axes = axes["host"] + (x, y) = click_axes.transAxes.transform(axes_coords) + m = MouseEvent("button_press_event", click_axes.get_figure(root=True).canvas, x, y, + button=1) + click_axes.pick(m) + # Checks + expected_n_events = 2 if click_on == "small" else 1 + assert len(received_events) == expected_n_events + event_rects = [event.artist for event in received_events] + assert big in event_rects + if click_on == "small": + assert small in event_rects + + +@image_comparison(['anchored_artists.png'], remove_text=True, style='mpl20') +def test_anchored_artists(): + fig, ax = plt.subplots(figsize=(3, 3)) + ada = AnchoredDrawingArea(40, 20, 0, 0, loc='upper right', pad=0., + frameon=False) + p1 = Circle((10, 10), 10) + ada.drawing_area.add_artist(p1) + p2 = Circle((30, 10), 5, fc="r") + ada.drawing_area.add_artist(p2) + ax.add_artist(ada) + + box = AnchoredAuxTransformBox(ax.transData, loc='upper left') + el = Ellipse((0, 0), width=0.1, height=0.4, angle=30, color='cyan') + box.drawing_area.add_artist(el) + ax.add_artist(box) + + # This block used to test the AnchoredEllipse class, but that was removed. The block + # remains, though it duplicates the above ellipse, so that the test image doesn't + # need to be regenerated. + box = AnchoredAuxTransformBox(ax.transData, loc='lower left', frameon=True, + pad=0.5, borderpad=0.4) + el = Ellipse((0, 0), width=0.1, height=0.25, angle=-60) + box.drawing_area.add_artist(el) + ax.add_artist(box) + + asb = AnchoredSizeBar(ax.transData, 0.2, r"0.2 units", loc='lower right', + pad=0.3, borderpad=0.4, sep=4, fill_bar=True, + frameon=False, label_top=True, prop={'size': 20}, + size_vertical=0.05, color='green') + ax.add_artist(asb) + + +def test_hbox_divider(): + arr1 = np.arange(20).reshape((4, 5)) + arr2 = np.arange(20).reshape((5, 4)) + + fig, (ax1, ax2) = plt.subplots(1, 2) + ax1.imshow(arr1) + ax2.imshow(arr2) + + pad = 0.5 # inches. + divider = HBoxDivider( + fig, 111, # Position of combined axes. + horizontal=[Size.AxesX(ax1), Size.Fixed(pad), Size.AxesX(ax2)], + vertical=[Size.AxesY(ax1), Size.Scaled(1), Size.AxesY(ax2)]) + ax1.set_axes_locator(divider.new_locator(0)) + ax2.set_axes_locator(divider.new_locator(2)) + + fig.canvas.draw() + p1 = ax1.get_position() + p2 = ax2.get_position() + assert p1.height == p2.height + assert p2.width / p1.width == pytest.approx((4 / 5) ** 2) + + +def test_vbox_divider(): + arr1 = np.arange(20).reshape((4, 5)) + arr2 = np.arange(20).reshape((5, 4)) + + fig, (ax1, ax2) = plt.subplots(1, 2) + ax1.imshow(arr1) + ax2.imshow(arr2) + + pad = 0.5 # inches. + divider = VBoxDivider( + fig, 111, # Position of combined axes. + horizontal=[Size.AxesX(ax1), Size.Scaled(1), Size.AxesX(ax2)], + vertical=[Size.AxesY(ax1), Size.Fixed(pad), Size.AxesY(ax2)]) + ax1.set_axes_locator(divider.new_locator(0)) + ax2.set_axes_locator(divider.new_locator(2)) + + fig.canvas.draw() + p1 = ax1.get_position() + p2 = ax2.get_position() + assert p1.width == p2.width + assert p1.height / p2.height == pytest.approx((4 / 5) ** 2) + + +def test_axes_class_tuple(): + fig = plt.figure() + axes_class = (mpl_toolkits.axes_grid1.mpl_axes.Axes, {}) + gr = AxesGrid(fig, 111, nrows_ncols=(1, 1), axes_class=axes_class) + + +def test_grid_axes_lists(): + """Test Grid axes_all, axes_row and axes_column relationship.""" + fig = plt.figure() + grid = Grid(fig, 111, (2, 3), direction="row") + assert_array_equal(grid, grid.axes_all) + assert_array_equal(grid.axes_row, np.transpose(grid.axes_column)) + assert_array_equal(grid, np.ravel(grid.axes_row), "row") + assert grid.get_geometry() == (2, 3) + grid = Grid(fig, 111, (2, 3), direction="column") + assert_array_equal(grid, np.ravel(grid.axes_column), "column") + + +@pytest.mark.parametrize('direction', ('row', 'column')) +def test_grid_axes_position(direction): + """Test positioning of the axes in Grid.""" + fig = plt.figure() + grid = Grid(fig, 111, (2, 2), direction=direction) + loc = [ax.get_axes_locator() for ax in np.ravel(grid.axes_row)] + # Test nx. + assert loc[1].args[0] > loc[0].args[0] + assert loc[0].args[0] == loc[2].args[0] + assert loc[3].args[0] == loc[1].args[0] + # Test ny. + assert loc[2].args[1] < loc[0].args[1] + assert loc[0].args[1] == loc[1].args[1] + assert loc[3].args[1] == loc[2].args[1] + + +@pytest.mark.parametrize('rect, ngrids, error, message', ( + ((1, 1), None, TypeError, "Incorrect rect format"), + (111, -1, ValueError, "ngrids must be positive"), + (111, 7, ValueError, "ngrids must be positive"), +)) +def test_grid_errors(rect, ngrids, error, message): + fig = plt.figure() + with pytest.raises(error, match=message): + Grid(fig, rect, (2, 3), ngrids=ngrids) + + +@pytest.mark.parametrize('anchor, error, message', ( + (None, TypeError, "anchor must be str"), + ("CC", ValueError, "'CC' is not a valid value for anchor"), + ((1, 1, 1), TypeError, "anchor must be str"), +)) +def test_divider_errors(anchor, error, message): + fig = plt.figure() + with pytest.raises(error, match=message): + Divider(fig, [0, 0, 1, 1], [Size.Fixed(1)], [Size.Fixed(1)], + anchor=anchor) + + +@check_figures_equal(extensions=["png"]) +def test_mark_inset_unstales_viewlim(fig_test, fig_ref): + inset, full = fig_test.subplots(1, 2) + full.plot([0, 5], [0, 5]) + inset.set(xlim=(1, 2), ylim=(1, 2)) + # Check that mark_inset unstales full's viewLim before drawing the marks. + mark_inset(full, inset, 1, 4) + + inset, full = fig_ref.subplots(1, 2) + full.plot([0, 5], [0, 5]) + inset.set(xlim=(1, 2), ylim=(1, 2)) + mark_inset(full, inset, 1, 4) + # Manually unstale the full's viewLim. + fig_ref.canvas.draw() + + +def test_auto_adjustable(): + fig = plt.figure() + ax = fig.add_axes([0, 0, 1, 1]) + pad = 0.1 + make_axes_area_auto_adjustable(ax, pad=pad) + fig.canvas.draw() + tbb = ax.get_tightbbox() + assert tbb.x0 == pytest.approx(pad * fig.dpi) + assert tbb.x1 == pytest.approx(fig.bbox.width - pad * fig.dpi) + assert tbb.y0 == pytest.approx(pad * fig.dpi) + assert tbb.y1 == pytest.approx(fig.bbox.height - pad * fig.dpi) + + +# Update style when regenerating the test image +@image_comparison(['rgb_axes.png'], remove_text=True, + style=('classic', '_classic_test_patch')) +def test_rgb_axes(): + fig = plt.figure() + ax = RGBAxes(fig, (0.1, 0.1, 0.8, 0.8), pad=0.1) + rng = np.random.default_rng(19680801) + r = rng.random((5, 5)) + g = rng.random((5, 5)) + b = rng.random((5, 5)) + ax.imshow_rgb(r, g, b, interpolation='none') + + +# The original version of this test relied on mpl_toolkits's slightly different +# colorbar implementation; moving to matplotlib's own colorbar implementation +# caused the small image comparison error. +@image_comparison(['imagegrid_cbar_mode.png'], + remove_text=True, style='mpl20', tol=0.3) +def test_imagegrid_cbar_mode_edge(): + arr = np.arange(16).reshape((4, 4)) + + fig = plt.figure(figsize=(18, 9)) + + positions = (241, 242, 243, 244, 245, 246, 247, 248) + directions = ['row']*4 + ['column']*4 + cbar_locations = ['left', 'right', 'top', 'bottom']*2 + + for position, direction, location in zip( + positions, directions, cbar_locations): + grid = ImageGrid(fig, position, + nrows_ncols=(2, 2), + direction=direction, + cbar_location=location, + cbar_size='20%', + cbar_mode='edge') + ax1, ax2, ax3, ax4 = grid + + ax1.imshow(arr, cmap='nipy_spectral') + ax2.imshow(arr.T, cmap='hot') + ax3.imshow(np.hypot(arr, arr.T), cmap='jet') + ax4.imshow(np.arctan2(arr, arr.T), cmap='hsv') + + # In each row/column, the "first" colorbars must be overwritten by the + # "second" ones. To achieve this, clear out the axes first. + for ax in grid: + ax.cax.cla() + cb = ax.cax.colorbar(ax.images[0]) + + +def test_imagegrid(): + fig = plt.figure() + grid = ImageGrid(fig, 111, nrows_ncols=(1, 1)) + ax = grid[0] + im = ax.imshow([[1, 2]], norm=mpl.colors.LogNorm()) + cb = ax.cax.colorbar(im) + assert isinstance(cb.locator, mticker.LogLocator) + + +def test_removal(): + import matplotlib.pyplot as plt + import mpl_toolkits.axisartist as AA + fig = plt.figure() + ax = host_subplot(111, axes_class=AA.Axes, figure=fig) + col = ax.fill_between(range(5), 0, range(5)) + fig.canvas.draw() + col.remove() + fig.canvas.draw() + + +@image_comparison(['anchored_locator_base_call.png'], style="mpl20") +def test_anchored_locator_base_call(): + fig = plt.figure(figsize=(3, 3)) + fig1, fig2 = fig.subfigures(nrows=2, ncols=1) + + ax = fig1.subplots() + ax.set(aspect=1, xlim=(-15, 15), ylim=(-20, 5)) + ax.set(xticks=[], yticks=[]) + + Z = cbook.get_sample_data("axes_grid/bivariate_normal.npy") + extent = (-3, 4, -4, 3) + + axins = zoomed_inset_axes(ax, zoom=2, loc="upper left") + axins.set(xticks=[], yticks=[]) + + axins.imshow(Z, extent=extent, origin="lower") + + +def test_grid_with_axes_class_not_overriding_axis(): + Grid(plt.figure(), 111, (2, 2), axes_class=mpl.axes.Axes) + RGBAxes(plt.figure(), 111, axes_class=mpl.axes.Axes) diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/__init__.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/__init__.py new file mode 100644 index 0000000..7b8d8c0 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/__init__.py @@ -0,0 +1,14 @@ +from .axislines import Axes +from .axislines import ( # noqa: F401 + AxesZero, AxisArtistHelper, AxisArtistHelperRectlinear, + GridHelperBase, GridHelperRectlinear, Subplot, SubplotZero) +from .axis_artist import AxisArtist, GridlinesCollection # noqa: F401 +from .grid_helper_curvelinear import GridHelperCurveLinear # noqa: F401 +from .floating_axes import FloatingAxes, FloatingSubplot # noqa: F401 +from mpl_toolkits.axes_grid1.parasite_axes import ( + host_axes_class_factory, parasite_axes_class_factory) + + +ParasiteAxes = parasite_axes_class_factory(Axes) +HostAxes = host_axes_class_factory(Axes) +SubplotHost = HostAxes diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/angle_helper.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/angle_helper.py new file mode 100644 index 0000000..1786cd7 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/angle_helper.py @@ -0,0 +1,394 @@ +import numpy as np +import math + +from mpl_toolkits.axisartist.grid_finder import ExtremeFinderSimple + + +def select_step_degree(dv): + + degree_limits_ = [1.5, 3, 7, 13, 20, 40, 70, 120, 270, 520] + degree_steps_ = [1, 2, 5, 10, 15, 30, 45, 90, 180, 360] + degree_factors = [1.] * len(degree_steps_) + + minsec_limits_ = [1.5, 2.5, 3.5, 8, 11, 18, 25, 45] + minsec_steps_ = [1, 2, 3, 5, 10, 15, 20, 30] + + minute_limits_ = np.array(minsec_limits_) / 60 + minute_factors = [60.] * len(minute_limits_) + + second_limits_ = np.array(minsec_limits_) / 3600 + second_factors = [3600.] * len(second_limits_) + + degree_limits = [*second_limits_, *minute_limits_, *degree_limits_] + degree_steps = [*minsec_steps_, *minsec_steps_, *degree_steps_] + degree_factors = [*second_factors, *minute_factors, *degree_factors] + + n = np.searchsorted(degree_limits, dv) + step = degree_steps[n] + factor = degree_factors[n] + + return step, factor + + +def select_step_hour(dv): + + hour_limits_ = [1.5, 2.5, 3.5, 5, 7, 10, 15, 21, 36] + hour_steps_ = [1, 2, 3, 4, 6, 8, 12, 18, 24] + hour_factors = [1.] * len(hour_steps_) + + minsec_limits_ = [1.5, 2.5, 3.5, 4.5, 5.5, 8, 11, 14, 18, 25, 45] + minsec_steps_ = [1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30] + + minute_limits_ = np.array(minsec_limits_) / 60 + minute_factors = [60.] * len(minute_limits_) + + second_limits_ = np.array(minsec_limits_) / 3600 + second_factors = [3600.] * len(second_limits_) + + hour_limits = [*second_limits_, *minute_limits_, *hour_limits_] + hour_steps = [*minsec_steps_, *minsec_steps_, *hour_steps_] + hour_factors = [*second_factors, *minute_factors, *hour_factors] + + n = np.searchsorted(hour_limits, dv) + step = hour_steps[n] + factor = hour_factors[n] + + return step, factor + + +def select_step_sub(dv): + + # subarcsec or degree + tmp = 10.**(int(math.log10(dv))-1.) + + factor = 1./tmp + + if 1.5*tmp >= dv: + step = 1 + elif 3.*tmp >= dv: + step = 2 + elif 7.*tmp >= dv: + step = 5 + else: + step = 1 + factor = 0.1*factor + + return step, factor + + +def select_step(v1, v2, nv, hour=False, include_last=True, + threshold_factor=3600.): + + if v1 > v2: + v1, v2 = v2, v1 + + dv = (v2 - v1) / nv + + if hour: + _select_step = select_step_hour + cycle = 24. + else: + _select_step = select_step_degree + cycle = 360. + + # for degree + if dv > 1 / threshold_factor: + step, factor = _select_step(dv) + else: + step, factor = select_step_sub(dv*threshold_factor) + + factor = factor * threshold_factor + + levs = np.arange(np.floor(v1 * factor / step), + np.ceil(v2 * factor / step) + 0.5, + dtype=int) * step + + # n : number of valid levels. If there is a cycle, e.g., [0, 90, 180, + # 270, 360], the grid line needs to be extended from 0 to 360, so + # we need to return the whole array. However, the last level (360) + # needs to be ignored often. In this case, so we return n=4. + + n = len(levs) + + # we need to check the range of values + # for example, -90 to 90, 0 to 360, + + if factor == 1. and levs[-1] >= levs[0] + cycle: # check for cycle + nv = int(cycle / step) + if include_last: + levs = levs[0] + np.arange(0, nv+1, 1) * step + else: + levs = levs[0] + np.arange(0, nv, 1) * step + + n = len(levs) + + return np.array(levs), n, factor + + +def select_step24(v1, v2, nv, include_last=True, threshold_factor=3600): + v1, v2 = v1 / 15, v2 / 15 + levs, n, factor = select_step(v1, v2, nv, hour=True, + include_last=include_last, + threshold_factor=threshold_factor) + return levs * 15, n, factor + + +def select_step360(v1, v2, nv, include_last=True, threshold_factor=3600): + return select_step(v1, v2, nv, hour=False, + include_last=include_last, + threshold_factor=threshold_factor) + + +class LocatorBase: + def __init__(self, nbins, include_last=True): + self.nbins = nbins + self._include_last = include_last + + def set_params(self, nbins=None): + if nbins is not None: + self.nbins = int(nbins) + + +class LocatorHMS(LocatorBase): + def __call__(self, v1, v2): + return select_step24(v1, v2, self.nbins, self._include_last) + + +class LocatorHM(LocatorBase): + def __call__(self, v1, v2): + return select_step24(v1, v2, self.nbins, self._include_last, + threshold_factor=60) + + +class LocatorH(LocatorBase): + def __call__(self, v1, v2): + return select_step24(v1, v2, self.nbins, self._include_last, + threshold_factor=1) + + +class LocatorDMS(LocatorBase): + def __call__(self, v1, v2): + return select_step360(v1, v2, self.nbins, self._include_last) + + +class LocatorDM(LocatorBase): + def __call__(self, v1, v2): + return select_step360(v1, v2, self.nbins, self._include_last, + threshold_factor=60) + + +class LocatorD(LocatorBase): + def __call__(self, v1, v2): + return select_step360(v1, v2, self.nbins, self._include_last, + threshold_factor=1) + + +class FormatterDMS: + deg_mark = r"^{\circ}" + min_mark = r"^{\prime}" + sec_mark = r"^{\prime\prime}" + + fmt_d = "$%d" + deg_mark + "$" + fmt_ds = r"$%d.%s" + deg_mark + "$" + + # %s for sign + fmt_d_m = r"$%s%d" + deg_mark + r"\,%02d" + min_mark + "$" + fmt_d_ms = r"$%s%d" + deg_mark + r"\,%02d.%s" + min_mark + "$" + + fmt_d_m_partial = "$%s%d" + deg_mark + r"\,%02d" + min_mark + r"\," + fmt_s_partial = "%02d" + sec_mark + "$" + fmt_ss_partial = "%02d.%s" + sec_mark + "$" + + def _get_number_fraction(self, factor): + ## check for fractional numbers + number_fraction = None + # check for 60 + + for threshold in [1, 60, 3600]: + if factor <= threshold: + break + + d = factor // threshold + int_log_d = int(np.floor(np.log10(d))) + if 10**int_log_d == d and d != 1: + number_fraction = int_log_d + factor = factor // 10**int_log_d + return factor, number_fraction + + return factor, number_fraction + + def __call__(self, direction, factor, values): + if len(values) == 0: + return [] + + ss = np.sign(values) + signs = ["-" if v < 0 else "" for v in values] + + factor, number_fraction = self._get_number_fraction(factor) + + values = np.abs(values) + + if number_fraction is not None: + values, frac_part = divmod(values, 10 ** number_fraction) + frac_fmt = "%%0%dd" % (number_fraction,) + frac_str = [frac_fmt % (f1,) for f1 in frac_part] + + if factor == 1: + if number_fraction is None: + return [self.fmt_d % (s * int(v),) for s, v in zip(ss, values)] + else: + return [self.fmt_ds % (s * int(v), f1) + for s, v, f1 in zip(ss, values, frac_str)] + elif factor == 60: + deg_part, min_part = divmod(values, 60) + if number_fraction is None: + return [self.fmt_d_m % (s1, d1, m1) + for s1, d1, m1 in zip(signs, deg_part, min_part)] + else: + return [self.fmt_d_ms % (s, d1, m1, f1) + for s, d1, m1, f1 + in zip(signs, deg_part, min_part, frac_str)] + + elif factor == 3600: + if ss[-1] == -1: + inverse_order = True + values = values[::-1] + signs = signs[::-1] + else: + inverse_order = False + + l_hm_old = "" + r = [] + + deg_part, min_part_ = divmod(values, 3600) + min_part, sec_part = divmod(min_part_, 60) + + if number_fraction is None: + sec_str = [self.fmt_s_partial % (s1,) for s1 in sec_part] + else: + sec_str = [self.fmt_ss_partial % (s1, f1) + for s1, f1 in zip(sec_part, frac_str)] + + for s, d1, m1, s1 in zip(signs, deg_part, min_part, sec_str): + l_hm = self.fmt_d_m_partial % (s, d1, m1) + if l_hm != l_hm_old: + l_hm_old = l_hm + l = l_hm + s1 + else: + l = "$" + s + s1 + r.append(l) + + if inverse_order: + return r[::-1] + else: + return r + + else: # factor > 3600. + return [r"$%s^{\circ}$" % v for v in ss*values] + + +class FormatterHMS(FormatterDMS): + deg_mark = r"^\mathrm{h}" + min_mark = r"^\mathrm{m}" + sec_mark = r"^\mathrm{s}" + + fmt_d = "$%d" + deg_mark + "$" + fmt_ds = r"$%d.%s" + deg_mark + "$" + + # %s for sign + fmt_d_m = r"$%s%d" + deg_mark + r"\,%02d" + min_mark+"$" + fmt_d_ms = r"$%s%d" + deg_mark + r"\,%02d.%s" + min_mark+"$" + + fmt_d_m_partial = "$%s%d" + deg_mark + r"\,%02d" + min_mark + r"\," + fmt_s_partial = "%02d" + sec_mark + "$" + fmt_ss_partial = "%02d.%s" + sec_mark + "$" + + def __call__(self, direction, factor, values): # hour + return super().__call__(direction, factor, np.asarray(values) / 15) + + +class ExtremeFinderCycle(ExtremeFinderSimple): + # docstring inherited + + def __init__(self, nx, ny, + lon_cycle=360., lat_cycle=None, + lon_minmax=None, lat_minmax=(-90, 90)): + """ + This subclass handles the case where one or both coordinates should be + taken modulo 360, or be restricted to not exceed a specific range. + + Parameters + ---------- + nx, ny : int + The number of samples in each direction. + + lon_cycle, lat_cycle : 360 or None + If not None, values in the corresponding direction are taken modulo + *lon_cycle* or *lat_cycle*; in theory this can be any number but + the implementation actually assumes that it is 360 (if not None); + other values give nonsensical results. + + This is done by "unwrapping" the transformed grid coordinates so + that jumps are less than a half-cycle; then normalizing the span to + no more than a full cycle. + + For example, if values are in the union of the [0, 2] and + [358, 360] intervals (typically, angles measured modulo 360), the + values in the second interval are normalized to [-2, 0] instead so + that the values now cover [-2, 2]. If values are in a range of + [5, 1000], this gets normalized to [5, 365]. + + lon_minmax, lat_minmax : (float, float) or None + If not None, the computed bounding box is clipped to the given + range in the corresponding direction. + """ + self.nx, self.ny = nx, ny + self.lon_cycle, self.lat_cycle = lon_cycle, lat_cycle + self.lon_minmax = lon_minmax + self.lat_minmax = lat_minmax + + def __call__(self, transform_xy, x1, y1, x2, y2): + # docstring inherited + x, y = np.meshgrid( + np.linspace(x1, x2, self.nx), np.linspace(y1, y2, self.ny)) + lon, lat = transform_xy(np.ravel(x), np.ravel(y)) + + # iron out jumps, but algorithm should be improved. + # This is just naive way of doing and my fail for some cases. + # Consider replacing this with numpy.unwrap + # We are ignoring invalid warnings. They are triggered when + # comparing arrays with NaNs using > We are already handling + # that correctly using np.nanmin and np.nanmax + with np.errstate(invalid='ignore'): + if self.lon_cycle is not None: + lon0 = np.nanmin(lon) + lon -= 360. * ((lon - lon0) > 180.) + if self.lat_cycle is not None: + lat0 = np.nanmin(lat) + lat -= 360. * ((lat - lat0) > 180.) + + lon_min, lon_max = np.nanmin(lon), np.nanmax(lon) + lat_min, lat_max = np.nanmin(lat), np.nanmax(lat) + + lon_min, lon_max, lat_min, lat_max = \ + self._add_pad(lon_min, lon_max, lat_min, lat_max) + + # check cycle + if self.lon_cycle: + lon_max = min(lon_max, lon_min + self.lon_cycle) + if self.lat_cycle: + lat_max = min(lat_max, lat_min + self.lat_cycle) + + if self.lon_minmax is not None: + min0 = self.lon_minmax[0] + lon_min = max(min0, lon_min) + max0 = self.lon_minmax[1] + lon_max = min(max0, lon_max) + + if self.lat_minmax is not None: + min0 = self.lat_minmax[0] + lat_min = max(min0, lat_min) + max0 = self.lat_minmax[1] + lat_max = min(max0, lat_max) + + return lon_min, lon_max, lat_min, lat_max diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/axes_divider.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/axes_divider.py new file mode 100644 index 0000000..d0392be --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/axes_divider.py @@ -0,0 +1,2 @@ +from mpl_toolkits.axes_grid1.axes_divider import ( # noqa + Divider, SubplotDivider, AxesDivider, make_axes_locatable) diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/axis_artist.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/axis_artist.py new file mode 100644 index 0000000..725c665 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/axis_artist.py @@ -0,0 +1,1116 @@ +""" +The :mod:`.axis_artist` module implements custom artists to draw axis elements +(axis lines and labels, tick lines and labels, grid lines). + +Axis lines and labels and tick lines and labels are managed by the `AxisArtist` +class; grid lines are managed by the `GridlinesCollection` class. + +There is one `AxisArtist` per Axis; it can be accessed through +the ``axis`` dictionary of the parent Axes (which should be a +`mpl_toolkits.axislines.Axes`), e.g. ``ax.axis["bottom"]``. + +Children of the AxisArtist are accessed as attributes: ``.line`` and ``.label`` +for the axis line and label, ``.major_ticks``, ``.major_ticklabels``, +``.minor_ticks``, ``.minor_ticklabels`` for the tick lines and labels (e.g. +``ax.axis["bottom"].line``). + +Children properties (colors, fonts, line widths, etc.) can be set using +setters, e.g. :: + + # Make the major ticks of the bottom axis red. + ax.axis["bottom"].major_ticks.set_color("red") + +However, things like the locations of ticks, and their ticklabels need to be +changed from the side of the grid_helper. + +axis_direction +-------------- + +`AxisArtist`, `AxisLabel`, `TickLabels` have an *axis_direction* attribute, +which adjusts the location, angle, etc. The *axis_direction* must be one of +"left", "right", "bottom", "top", and follows the Matplotlib convention for +rectangular axis. + +For example, for the *bottom* axis (the left and right is relative to the +direction of the increasing coordinate), + +* ticklabels and axislabel are on the right +* ticklabels and axislabel have text angle of 0 +* ticklabels are baseline, center-aligned +* axislabel is top, center-aligned + +The text angles are actually relative to (90 + angle of the direction to the +ticklabel), which gives 0 for bottom axis. + +=================== ====== ======== ====== ======== +Property left bottom right top +=================== ====== ======== ====== ======== +ticklabel location left right right left +axislabel location left right right left +ticklabel angle 90 0 -90 180 +axislabel angle 180 0 0 180 +ticklabel va center baseline center baseline +axislabel va center top center bottom +ticklabel ha right center right center +axislabel ha right center right center +=================== ====== ======== ====== ======== + +Ticks are by default direct opposite side of the ticklabels. To make ticks to +the same side of the ticklabels, :: + + ax.axis["bottom"].major_ticks.set_tick_out(True) + +The following attributes can be customized (use the ``set_xxx`` methods): + +* `Ticks`: ticksize, tick_out +* `TickLabels`: pad +* `AxisLabel`: pad +""" + +# FIXME : +# angles are given in data coordinate - need to convert it to canvas coordinate + + +from operator import methodcaller + +import numpy as np + +import matplotlib as mpl +from matplotlib import _api, cbook +import matplotlib.artist as martist +import matplotlib.colors as mcolors +import matplotlib.text as mtext +from matplotlib.collections import LineCollection +from matplotlib.lines import Line2D +from matplotlib.patches import PathPatch +from matplotlib.path import Path +from matplotlib.transforms import ( + Affine2D, Bbox, IdentityTransform, ScaledTranslation) + +from .axisline_style import AxislineStyle + + +class AttributeCopier: + def get_ref_artist(self): + """ + Return the underlying artist that actually defines some properties + (e.g., color) of this artist. + """ + raise RuntimeError("get_ref_artist must overridden") + + def get_attribute_from_ref_artist(self, attr_name): + getter = methodcaller("get_" + attr_name) + prop = getter(super()) + return getter(self.get_ref_artist()) if prop == "auto" else prop + + +class Ticks(AttributeCopier, Line2D): + """ + Ticks are derived from `.Line2D`, and note that ticks themselves + are markers. Thus, you should use set_mec, set_mew, etc. + + To change the tick size (length), you need to use + `set_ticksize`. To change the direction of the ticks (ticks are + in opposite direction of ticklabels by default), use + ``set_tick_out(False)`` + """ + + def __init__(self, ticksize, tick_out=False, *, axis=None, **kwargs): + self._ticksize = ticksize + self.locs_angles_labels = [] + + self.set_tick_out(tick_out) + + self._axis = axis + if self._axis is not None: + if "color" not in kwargs: + kwargs["color"] = "auto" + if "mew" not in kwargs and "markeredgewidth" not in kwargs: + kwargs["markeredgewidth"] = "auto" + + Line2D.__init__(self, [0.], [0.], **kwargs) + self.set_snap(True) + + def get_ref_artist(self): + # docstring inherited + return self._axis.majorTicks[0].tick1line + + def set_color(self, color): + # docstring inherited + # Unlike the base Line2D.set_color, this also supports "auto". + if not cbook._str_equal(color, "auto"): + mcolors._check_color_like(color=color) + self._color = color + self.stale = True + + def get_color(self): + return self.get_attribute_from_ref_artist("color") + + def get_markeredgecolor(self): + return self.get_attribute_from_ref_artist("markeredgecolor") + + def get_markeredgewidth(self): + return self.get_attribute_from_ref_artist("markeredgewidth") + + def set_tick_out(self, b): + """Set whether ticks are drawn inside or outside the axes.""" + self._tick_out = b + + def get_tick_out(self): + """Return whether ticks are drawn inside or outside the axes.""" + return self._tick_out + + def set_ticksize(self, ticksize): + """Set length of the ticks in points.""" + self._ticksize = ticksize + + def get_ticksize(self): + """Return length of the ticks in points.""" + return self._ticksize + + def set_locs_angles(self, locs_angles): + self.locs_angles = locs_angles + + _tickvert_path = Path([[0., 0.], [1., 0.]]) + + def draw(self, renderer): + if not self.get_visible(): + return + + gc = renderer.new_gc() + gc.set_foreground(self.get_markeredgecolor()) + gc.set_linewidth(self.get_markeredgewidth()) + gc.set_alpha(self._alpha) + + path_trans = self.get_transform() + marker_transform = (Affine2D() + .scale(renderer.points_to_pixels(self._ticksize))) + if self.get_tick_out(): + marker_transform.rotate_deg(180) + + for loc, angle in self.locs_angles: + locs = path_trans.transform_non_affine(np.array([loc])) + if self.axes and not self.axes.viewLim.contains(*locs[0]): + continue + renderer.draw_markers( + gc, self._tickvert_path, + marker_transform + Affine2D().rotate_deg(angle), + Path(locs), path_trans.get_affine()) + + gc.restore() + + +class LabelBase(mtext.Text): + """ + A base class for `.AxisLabel` and `.TickLabels`. The position and + angle of the text are calculated by the offset_ref_angle, + text_ref_angle, and offset_radius attributes. + """ + + def __init__(self, *args, **kwargs): + self.locs_angles_labels = [] + self._ref_angle = 0 + self._offset_radius = 0. + + super().__init__(*args, **kwargs) + + self.set_rotation_mode("anchor") + self._text_follow_ref_angle = True + + @property + def _text_ref_angle(self): + if self._text_follow_ref_angle: + return self._ref_angle + 90 + else: + return 0 + + @property + def _offset_ref_angle(self): + return self._ref_angle + + _get_opposite_direction = {"left": "right", + "right": "left", + "top": "bottom", + "bottom": "top"}.__getitem__ + + def draw(self, renderer): + if not self.get_visible(): + return + + # save original and adjust some properties + tr = self.get_transform() + angle_orig = self.get_rotation() + theta = np.deg2rad(self._offset_ref_angle) + dd = self._offset_radius + dx, dy = dd * np.cos(theta), dd * np.sin(theta) + + self.set_transform(tr + Affine2D().translate(dx, dy)) + self.set_rotation(self._text_ref_angle + angle_orig) + super().draw(renderer) + # restore original properties + self.set_transform(tr) + self.set_rotation(angle_orig) + + def get_window_extent(self, renderer=None): + if renderer is None: + renderer = self.get_figure(root=True)._get_renderer() + + # save original and adjust some properties + tr = self.get_transform() + angle_orig = self.get_rotation() + theta = np.deg2rad(self._offset_ref_angle) + dd = self._offset_radius + dx, dy = dd * np.cos(theta), dd * np.sin(theta) + + self.set_transform(tr + Affine2D().translate(dx, dy)) + self.set_rotation(self._text_ref_angle + angle_orig) + bbox = super().get_window_extent(renderer).frozen() + # restore original properties + self.set_transform(tr) + self.set_rotation(angle_orig) + + return bbox + + +class AxisLabel(AttributeCopier, LabelBase): + """ + Axis label. Derived from `.Text`. The position of the text is updated + in the fly, so changing text position has no effect. Otherwise, the + properties can be changed as a normal `.Text`. + + To change the pad between tick labels and axis label, use `set_pad`. + """ + + def __init__(self, *args, axis_direction="bottom", axis=None, **kwargs): + self._axis = axis + self._pad = 5 + self._external_pad = 0 # in pixels + LabelBase.__init__(self, *args, **kwargs) + self.set_axis_direction(axis_direction) + + def set_pad(self, pad): + """ + Set the internal pad in points. + + The actual pad will be the sum of the internal pad and the + external pad (the latter is set automatically by the `.AxisArtist`). + + Parameters + ---------- + pad : float + The internal pad in points. + """ + self._pad = pad + + def get_pad(self): + """ + Return the internal pad in points. + + See `.set_pad` for more details. + """ + return self._pad + + def get_ref_artist(self): + # docstring inherited + return self._axis.label + + def get_text(self): + # docstring inherited + t = super().get_text() + if t == "__from_axes__": + return self._axis.label.get_text() + return self._text + + _default_alignments = dict(left=("bottom", "center"), + right=("top", "center"), + bottom=("top", "center"), + top=("bottom", "center")) + + def set_default_alignment(self, d): + """ + Set the default alignment. See `set_axis_direction` for details. + + Parameters + ---------- + d : {"left", "bottom", "right", "top"} + """ + va, ha = _api.check_getitem(self._default_alignments, d=d) + self.set_va(va) + self.set_ha(ha) + + _default_angles = dict(left=180, + right=0, + bottom=0, + top=180) + + def set_default_angle(self, d): + """ + Set the default angle. See `set_axis_direction` for details. + + Parameters + ---------- + d : {"left", "bottom", "right", "top"} + """ + self.set_rotation(_api.check_getitem(self._default_angles, d=d)) + + def set_axis_direction(self, d): + """ + Adjust the text angle and text alignment of axis label + according to the matplotlib convention. + + ===================== ========== ========= ========== ========== + Property left bottom right top + ===================== ========== ========= ========== ========== + axislabel angle 180 0 0 180 + axislabel va center top center bottom + axislabel ha right center right center + ===================== ========== ========= ========== ========== + + Note that the text angles are actually relative to (90 + angle + of the direction to the ticklabel), which gives 0 for bottom + axis. + + Parameters + ---------- + d : {"left", "bottom", "right", "top"} + """ + self.set_default_alignment(d) + self.set_default_angle(d) + + def get_color(self): + return self.get_attribute_from_ref_artist("color") + + def draw(self, renderer): + if not self.get_visible(): + return + + self._offset_radius = \ + self._external_pad + renderer.points_to_pixels(self.get_pad()) + + super().draw(renderer) + + def get_window_extent(self, renderer=None): + if renderer is None: + renderer = self.get_figure(root=True)._get_renderer() + if not self.get_visible(): + return + + r = self._external_pad + renderer.points_to_pixels(self.get_pad()) + self._offset_radius = r + + bb = super().get_window_extent(renderer) + + return bb + + +class TickLabels(AxisLabel): # mtext.Text + """ + Tick labels. While derived from `.Text`, this single artist draws all + ticklabels. As in `.AxisLabel`, the position of the text is updated + in the fly, so changing text position has no effect. Otherwise, + the properties can be changed as a normal `.Text`. Unlike the + ticklabels of the mainline Matplotlib, properties of a single + ticklabel alone cannot be modified. + + To change the pad between ticks and ticklabels, use `~.AxisLabel.set_pad`. + """ + + def __init__(self, *, axis_direction="bottom", **kwargs): + super().__init__(**kwargs) + self.set_axis_direction(axis_direction) + self._axislabel_pad = 0 + + def get_ref_artist(self): + # docstring inherited + return self._axis.get_ticklabels()[0] + + def set_axis_direction(self, label_direction): + """ + Adjust the text angle and text alignment of ticklabels + according to the Matplotlib convention. + + The *label_direction* must be one of [left, right, bottom, top]. + + ===================== ========== ========= ========== ========== + Property left bottom right top + ===================== ========== ========= ========== ========== + ticklabel angle 90 0 -90 180 + ticklabel va center baseline center baseline + ticklabel ha right center right center + ===================== ========== ========= ========== ========== + + Note that the text angles are actually relative to (90 + angle + of the direction to the ticklabel), which gives 0 for bottom + axis. + + Parameters + ---------- + label_direction : {"left", "bottom", "right", "top"} + + """ + self.set_default_alignment(label_direction) + self.set_default_angle(label_direction) + self._axis_direction = label_direction + + def invert_axis_direction(self): + label_direction = self._get_opposite_direction(self._axis_direction) + self.set_axis_direction(label_direction) + + def _get_ticklabels_offsets(self, renderer, label_direction): + """ + Calculate the ticklabel offsets from the tick and their total heights. + + The offset only takes account the offset due to the vertical alignment + of the ticklabels: if axis direction is bottom and va is 'top', it will + return 0; if va is 'baseline', it will return (height-descent). + """ + whd_list = self.get_texts_widths_heights_descents(renderer) + + if not whd_list: + return 0, 0 + + r = 0 + va, ha = self.get_va(), self.get_ha() + + if label_direction == "left": + pad = max(w for w, h, d in whd_list) + if ha == "left": + r = pad + elif ha == "center": + r = .5 * pad + elif label_direction == "right": + pad = max(w for w, h, d in whd_list) + if ha == "right": + r = pad + elif ha == "center": + r = .5 * pad + elif label_direction == "bottom": + pad = max(h for w, h, d in whd_list) + if va == "bottom": + r = pad + elif va == "center": + r = .5 * pad + elif va == "baseline": + max_ascent = max(h - d for w, h, d in whd_list) + max_descent = max(d for w, h, d in whd_list) + r = max_ascent + pad = max_ascent + max_descent + elif label_direction == "top": + pad = max(h for w, h, d in whd_list) + if va == "top": + r = pad + elif va == "center": + r = .5 * pad + elif va == "baseline": + max_ascent = max(h - d for w, h, d in whd_list) + max_descent = max(d for w, h, d in whd_list) + r = max_descent + pad = max_ascent + max_descent + + # r : offset + # pad : total height of the ticklabels. This will be used to + # calculate the pad for the axislabel. + return r, pad + + _default_alignments = dict(left=("center", "right"), + right=("center", "left"), + bottom=("baseline", "center"), + top=("baseline", "center")) + + _default_angles = dict(left=90, + right=-90, + bottom=0, + top=180) + + def draw(self, renderer): + if not self.get_visible(): + self._axislabel_pad = self._external_pad + return + + r, total_width = self._get_ticklabels_offsets(renderer, + self._axis_direction) + + pad = self._external_pad + renderer.points_to_pixels(self.get_pad()) + self._offset_radius = r + pad + + for (x, y), a, l in self._locs_angles_labels: + if not l.strip(): + continue + self._ref_angle = a + self.set_x(x) + self.set_y(y) + self.set_text(l) + LabelBase.draw(self, renderer) + + # the value saved will be used to draw axislabel. + self._axislabel_pad = total_width + pad + + def set_locs_angles_labels(self, locs_angles_labels): + self._locs_angles_labels = locs_angles_labels + + def get_window_extents(self, renderer=None): + if renderer is None: + renderer = self.get_figure(root=True)._get_renderer() + + if not self.get_visible(): + self._axislabel_pad = self._external_pad + return [] + + bboxes = [] + + r, total_width = self._get_ticklabels_offsets(renderer, + self._axis_direction) + + pad = self._external_pad + renderer.points_to_pixels(self.get_pad()) + self._offset_radius = r + pad + + for (x, y), a, l in self._locs_angles_labels: + self._ref_angle = a + self.set_x(x) + self.set_y(y) + self.set_text(l) + bb = LabelBase.get_window_extent(self, renderer) + bboxes.append(bb) + + # the value saved will be used to draw axislabel. + self._axislabel_pad = total_width + pad + + return bboxes + + def get_texts_widths_heights_descents(self, renderer): + """ + Return a list of ``(width, height, descent)`` tuples for ticklabels. + + Empty labels are left out. + """ + whd_list = [] + for _loc, _angle, label in self._locs_angles_labels: + if not label.strip(): + continue + clean_line, ismath = self._preprocess_math(label) + whd = mtext._get_text_metrics_with_cache( + renderer, clean_line, self._fontproperties, ismath=ismath, + dpi=self.get_figure(root=True).dpi) + whd_list.append(whd) + return whd_list + + +class GridlinesCollection(LineCollection): + def __init__(self, *args, which="major", axis="both", **kwargs): + """ + Collection of grid lines. + + Parameters + ---------- + which : {"major", "minor"} + Which grid to consider. + axis : {"both", "x", "y"} + Which axis to consider. + *args, **kwargs + Passed to `.LineCollection`. + """ + self._which = which + self._axis = axis + super().__init__(*args, **kwargs) + self.set_grid_helper(None) + + def set_which(self, which): + """ + Select major or minor grid lines. + + Parameters + ---------- + which : {"major", "minor"} + """ + self._which = which + + def set_axis(self, axis): + """ + Select axis. + + Parameters + ---------- + axis : {"both", "x", "y"} + """ + self._axis = axis + + def set_grid_helper(self, grid_helper): + """ + Set grid helper. + + Parameters + ---------- + grid_helper : `.GridHelperBase` subclass + """ + self._grid_helper = grid_helper + + def draw(self, renderer): + if self._grid_helper is not None: + self._grid_helper.update_lim(self.axes) + gl = self._grid_helper.get_gridlines(self._which, self._axis) + self.set_segments([np.transpose(l) for l in gl]) + super().draw(renderer) + + +class AxisArtist(martist.Artist): + """ + An artist which draws axis (a line along which the n-th axes coord + is constant) line, ticks, tick labels, and axis label. + """ + + zorder = 2.5 + + @property + def LABELPAD(self): + return self.label.get_pad() + + @LABELPAD.setter + def LABELPAD(self, v): + self.label.set_pad(v) + + def __init__(self, axes, + helper, + offset=None, + axis_direction="bottom", + **kwargs): + """ + Parameters + ---------- + axes : `mpl_toolkits.axisartist.axislines.Axes` + helper : `~mpl_toolkits.axisartist.axislines.AxisArtistHelper` + """ + # axes is also used to follow the axis attribute (tick color, etc). + + super().__init__(**kwargs) + + self.axes = axes + + self._axis_artist_helper = helper + + if offset is None: + offset = (0, 0) + self.offset_transform = ScaledTranslation( + *offset, + Affine2D().scale(1 / 72) # points to inches. + + self.axes.get_figure(root=False).dpi_scale_trans) + + if axis_direction in ["left", "right"]: + self.axis = axes.yaxis + else: + self.axis = axes.xaxis + + self._axisline_style = None + self._axis_direction = axis_direction + + self._init_line() + self._init_ticks(**kwargs) + self._init_offsetText(axis_direction) + self._init_label() + + # axis direction + self._ticklabel_add_angle = 0. + self._axislabel_add_angle = 0. + self.set_axis_direction(axis_direction) + + # axis direction + + def set_axis_direction(self, axis_direction): + """ + Adjust the direction, text angle, and text alignment of tick labels + and axis labels following the Matplotlib convention for the rectangle + axes. + + The *axis_direction* must be one of [left, right, bottom, top]. + + ===================== ========== ========= ========== ========== + Property left bottom right top + ===================== ========== ========= ========== ========== + ticklabel direction "-" "+" "+" "-" + axislabel direction "-" "+" "+" "-" + ticklabel angle 90 0 -90 180 + ticklabel va center baseline center baseline + ticklabel ha right center right center + axislabel angle 180 0 0 180 + axislabel va center top center bottom + axislabel ha right center right center + ===================== ========== ========= ========== ========== + + Note that the direction "+" and "-" are relative to the direction of + the increasing coordinate. Also, the text angles are actually + relative to (90 + angle of the direction to the ticklabel), + which gives 0 for bottom axis. + + Parameters + ---------- + axis_direction : {"left", "bottom", "right", "top"} + """ + self.major_ticklabels.set_axis_direction(axis_direction) + self.label.set_axis_direction(axis_direction) + self._axis_direction = axis_direction + if axis_direction in ["left", "top"]: + self.set_ticklabel_direction("-") + self.set_axislabel_direction("-") + else: + self.set_ticklabel_direction("+") + self.set_axislabel_direction("+") + + def set_ticklabel_direction(self, tick_direction): + r""" + Adjust the direction of the tick labels. + + Note that the *tick_direction*\s '+' and '-' are relative to the + direction of the increasing coordinate. + + Parameters + ---------- + tick_direction : {"+", "-"} + """ + self._ticklabel_add_angle = _api.check_getitem( + {"+": 0, "-": 180}, tick_direction=tick_direction) + + def invert_ticklabel_direction(self): + self._ticklabel_add_angle = (self._ticklabel_add_angle + 180) % 360 + self.major_ticklabels.invert_axis_direction() + self.minor_ticklabels.invert_axis_direction() + + def set_axislabel_direction(self, label_direction): + r""" + Adjust the direction of the axis label. + + Note that the *label_direction*\s '+' and '-' are relative to the + direction of the increasing coordinate. + + Parameters + ---------- + label_direction : {"+", "-"} + """ + self._axislabel_add_angle = _api.check_getitem( + {"+": 0, "-": 180}, label_direction=label_direction) + + def get_transform(self): + return self.axes.transAxes + self.offset_transform + + def get_helper(self): + """ + Return axis artist helper instance. + """ + return self._axis_artist_helper + + def set_axisline_style(self, axisline_style=None, **kwargs): + """ + Set the axisline style. + + The new style is completely defined by the passed attributes. Existing + style attributes are forgotten. + + Parameters + ---------- + axisline_style : str or None + The line style, e.g. '->', optionally followed by a comma-separated + list of attributes. Alternatively, the attributes can be provided + as keywords. + + If *None* this returns a string containing the available styles. + + Examples + -------- + The following two commands are equal: + + >>> set_axisline_style("->,size=1.5") + >>> set_axisline_style("->", size=1.5) + """ + if axisline_style is None: + return AxislineStyle.pprint_styles() + + if isinstance(axisline_style, AxislineStyle._Base): + self._axisline_style = axisline_style + else: + self._axisline_style = AxislineStyle(axisline_style, **kwargs) + + self._init_line() + + def get_axisline_style(self): + """Return the current axisline style.""" + return self._axisline_style + + def _init_line(self): + """ + Initialize the *line* artist that is responsible to draw the axis line. + """ + tran = (self._axis_artist_helper.get_line_transform(self.axes) + + self.offset_transform) + + axisline_style = self.get_axisline_style() + if axisline_style is None: + self.line = PathPatch( + self._axis_artist_helper.get_line(self.axes), + color=mpl.rcParams['axes.edgecolor'], + fill=False, + linewidth=mpl.rcParams['axes.linewidth'], + capstyle=mpl.rcParams['lines.solid_capstyle'], + joinstyle=mpl.rcParams['lines.solid_joinstyle'], + transform=tran) + else: + self.line = axisline_style(self, transform=tran) + + def _draw_line(self, renderer): + self.line.set_path(self._axis_artist_helper.get_line(self.axes)) + if self.get_axisline_style() is not None: + self.line.set_line_mutation_scale(self.major_ticklabels.get_size()) + self.line.draw(renderer) + + def _init_ticks(self, **kwargs): + axis_name = self.axis.axis_name + + trans = (self._axis_artist_helper.get_tick_transform(self.axes) + + self.offset_transform) + + self.major_ticks = Ticks( + kwargs.get( + "major_tick_size", + mpl.rcParams[f"{axis_name}tick.major.size"]), + axis=self.axis, transform=trans) + self.minor_ticks = Ticks( + kwargs.get( + "minor_tick_size", + mpl.rcParams[f"{axis_name}tick.minor.size"]), + axis=self.axis, transform=trans) + + size = mpl.rcParams[f"{axis_name}tick.labelsize"] + self.major_ticklabels = TickLabels( + axis=self.axis, + axis_direction=self._axis_direction, + figure=self.axes.get_figure(root=False), + transform=trans, + fontsize=size, + pad=kwargs.get( + "major_tick_pad", mpl.rcParams[f"{axis_name}tick.major.pad"]), + ) + self.minor_ticklabels = TickLabels( + axis=self.axis, + axis_direction=self._axis_direction, + figure=self.axes.get_figure(root=False), + transform=trans, + fontsize=size, + pad=kwargs.get( + "minor_tick_pad", mpl.rcParams[f"{axis_name}tick.minor.pad"]), + ) + + def _get_tick_info(self, tick_iter): + """ + Return a pair of: + + - list of locs and angles for ticks + - list of locs, angles and labels for ticklabels. + """ + ticks_loc_angle = [] + ticklabels_loc_angle_label = [] + + ticklabel_add_angle = self._ticklabel_add_angle + + for loc, angle_normal, angle_tangent, label in tick_iter: + angle_label = angle_tangent - 90 + ticklabel_add_angle + angle_tick = (angle_normal + if 90 <= (angle_label - angle_normal) % 360 <= 270 + else angle_normal + 180) + ticks_loc_angle.append([loc, angle_tick]) + ticklabels_loc_angle_label.append([loc, angle_label, label]) + + return ticks_loc_angle, ticklabels_loc_angle_label + + def _update_ticks(self, renderer=None): + # set extra pad for major and minor ticklabels: use ticksize of + # majorticks even for minor ticks. not clear what is best. + + if renderer is None: + renderer = self.get_figure(root=True)._get_renderer() + + dpi_cor = renderer.points_to_pixels(1.) + if self.major_ticks.get_visible() and self.major_ticks.get_tick_out(): + ticklabel_pad = self.major_ticks._ticksize * dpi_cor + self.major_ticklabels._external_pad = ticklabel_pad + self.minor_ticklabels._external_pad = ticklabel_pad + else: + self.major_ticklabels._external_pad = 0 + self.minor_ticklabels._external_pad = 0 + + majortick_iter, minortick_iter = \ + self._axis_artist_helper.get_tick_iterators(self.axes) + + tick_loc_angle, ticklabel_loc_angle_label = \ + self._get_tick_info(majortick_iter) + self.major_ticks.set_locs_angles(tick_loc_angle) + self.major_ticklabels.set_locs_angles_labels(ticklabel_loc_angle_label) + + tick_loc_angle, ticklabel_loc_angle_label = \ + self._get_tick_info(minortick_iter) + self.minor_ticks.set_locs_angles(tick_loc_angle) + self.minor_ticklabels.set_locs_angles_labels(ticklabel_loc_angle_label) + + def _draw_ticks(self, renderer): + self._update_ticks(renderer) + self.major_ticks.draw(renderer) + self.major_ticklabels.draw(renderer) + self.minor_ticks.draw(renderer) + self.minor_ticklabels.draw(renderer) + if (self.major_ticklabels.get_visible() + or self.minor_ticklabels.get_visible()): + self._draw_offsetText(renderer) + + _offsetText_pos = dict(left=(0, 1, "bottom", "right"), + right=(1, 1, "bottom", "left"), + bottom=(1, 0, "top", "right"), + top=(1, 1, "bottom", "right")) + + def _init_offsetText(self, direction): + x, y, va, ha = self._offsetText_pos[direction] + self.offsetText = mtext.Annotation( + "", + xy=(x, y), xycoords="axes fraction", + xytext=(0, 0), textcoords="offset points", + color=mpl.rcParams['xtick.color'], + horizontalalignment=ha, verticalalignment=va, + ) + self.offsetText.set_transform(IdentityTransform()) + self.axes._set_artist_props(self.offsetText) + + def _update_offsetText(self): + self.offsetText.set_text(self.axis.major.formatter.get_offset()) + self.offsetText.set_size(self.major_ticklabels.get_size()) + offset = (self.major_ticklabels.get_pad() + + self.major_ticklabels.get_size() + + 2) + self.offsetText.xyann = (0, offset) + + def _draw_offsetText(self, renderer): + self._update_offsetText() + self.offsetText.draw(renderer) + + def _init_label(self, **kwargs): + tr = (self._axis_artist_helper.get_axislabel_transform(self.axes) + + self.offset_transform) + self.label = AxisLabel( + 0, 0, "__from_axes__", + color="auto", + fontsize=kwargs.get("labelsize", mpl.rcParams['axes.labelsize']), + fontweight=mpl.rcParams['axes.labelweight'], + axis=self.axis, + transform=tr, + axis_direction=self._axis_direction, + ) + self.label.set_figure(self.axes.get_figure(root=False)) + labelpad = kwargs.get("labelpad", 5) + self.label.set_pad(labelpad) + + def _update_label(self, renderer): + if not self.label.get_visible(): + return + + if self._ticklabel_add_angle != self._axislabel_add_angle: + if ((self.major_ticks.get_visible() + and not self.major_ticks.get_tick_out()) + or (self.minor_ticks.get_visible() + and not self.major_ticks.get_tick_out())): + axislabel_pad = self.major_ticks._ticksize + else: + axislabel_pad = 0 + else: + axislabel_pad = max(self.major_ticklabels._axislabel_pad, + self.minor_ticklabels._axislabel_pad) + + self.label._external_pad = axislabel_pad + + xy, angle_tangent = \ + self._axis_artist_helper.get_axislabel_pos_angle(self.axes) + if xy is None: + return + + angle_label = angle_tangent - 90 + + x, y = xy + self.label._ref_angle = angle_label + self._axislabel_add_angle + self.label.set(x=x, y=y) + + def _draw_label(self, renderer): + self._update_label(renderer) + self.label.draw(renderer) + + def set_label(self, s): + # docstring inherited + self.label.set_text(s) + + def get_tightbbox(self, renderer=None): + if not self.get_visible(): + return + self._axis_artist_helper.update_lim(self.axes) + self._update_ticks(renderer) + self._update_label(renderer) + + self.line.set_path(self._axis_artist_helper.get_line(self.axes)) + if self.get_axisline_style() is not None: + self.line.set_line_mutation_scale(self.major_ticklabels.get_size()) + + bb = [ + *self.major_ticklabels.get_window_extents(renderer), + *self.minor_ticklabels.get_window_extents(renderer), + self.label.get_window_extent(renderer), + self.offsetText.get_window_extent(renderer), + self.line.get_window_extent(renderer), + ] + bb = [b for b in bb if b and (b.width != 0 or b.height != 0)] + if bb: + _bbox = Bbox.union(bb) + return _bbox + else: + return None + + @martist.allow_rasterization + def draw(self, renderer): + # docstring inherited + if not self.get_visible(): + return + renderer.open_group(__name__, gid=self.get_gid()) + self._axis_artist_helper.update_lim(self.axes) + self._draw_ticks(renderer) + self._draw_line(renderer) + self._draw_label(renderer) + renderer.close_group(__name__) + + def toggle(self, all=None, ticks=None, ticklabels=None, label=None): + """ + Toggle visibility of ticks, ticklabels, and (axis) label. + To turn all off, :: + + axis.toggle(all=False) + + To turn all off but ticks on :: + + axis.toggle(all=False, ticks=True) + + To turn all on but (axis) label off :: + + axis.toggle(all=True, label=False) + + """ + if all: + _ticks, _ticklabels, _label = True, True, True + elif all is not None: + _ticks, _ticklabels, _label = False, False, False + else: + _ticks, _ticklabels, _label = None, None, None + + if ticks is not None: + _ticks = ticks + if ticklabels is not None: + _ticklabels = ticklabels + if label is not None: + _label = label + + if _ticks is not None: + self.major_ticks.set_visible(_ticks) + self.minor_ticks.set_visible(_ticks) + if _ticklabels is not None: + self.major_ticklabels.set_visible(_ticklabels) + self.minor_ticklabels.set_visible(_ticklabels) + if _label is not None: + self.label.set_visible(_label) diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/axisline_style.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/axisline_style.py new file mode 100644 index 0000000..7f25b98 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/axisline_style.py @@ -0,0 +1,193 @@ +""" +Provides classes to style the axis lines. +""" +import math + +import numpy as np + +import matplotlib as mpl +from matplotlib.patches import _Style, FancyArrowPatch +from matplotlib.path import Path +from matplotlib.transforms import IdentityTransform + + +class _FancyAxislineStyle: + class SimpleArrow(FancyArrowPatch): + """The artist class that will be returned for SimpleArrow style.""" + _ARROW_STYLE = "->" + + def __init__(self, axis_artist, line_path, transform, + line_mutation_scale): + self._axis_artist = axis_artist + self._line_transform = transform + self._line_path = line_path + self._line_mutation_scale = line_mutation_scale + + FancyArrowPatch.__init__(self, + path=self._line_path, + arrowstyle=self._ARROW_STYLE, + patchA=None, + patchB=None, + shrinkA=0., + shrinkB=0., + mutation_scale=line_mutation_scale, + mutation_aspect=None, + transform=IdentityTransform(), + ) + + def set_line_mutation_scale(self, scale): + self.set_mutation_scale(scale*self._line_mutation_scale) + + def _extend_path(self, path, mutation_size=10): + """ + Extend the path to make a room for drawing arrow. + """ + (x0, y0), (x1, y1) = path.vertices[-2:] + theta = math.atan2(y1 - y0, x1 - x0) + x2 = x1 + math.cos(theta) * mutation_size + y2 = y1 + math.sin(theta) * mutation_size + if path.codes is None: + return Path(np.concatenate([path.vertices, [[x2, y2]]])) + else: + return Path(np.concatenate([path.vertices, [[x2, y2]]]), + np.concatenate([path.codes, [Path.LINETO]])) + + def set_path(self, path): + self._line_path = path + + def draw(self, renderer): + """ + Draw the axis line. + 1) Transform the path to the display coordinate. + 2) Extend the path to make a room for arrow. + 3) Update the path of the FancyArrowPatch. + 4) Draw. + """ + path_in_disp = self._line_transform.transform_path(self._line_path) + mutation_size = self.get_mutation_scale() # line_mutation_scale() + extended_path = self._extend_path(path_in_disp, + mutation_size=mutation_size) + self._path_original = extended_path + FancyArrowPatch.draw(self, renderer) + + def get_window_extent(self, renderer=None): + + path_in_disp = self._line_transform.transform_path(self._line_path) + mutation_size = self.get_mutation_scale() # line_mutation_scale() + extended_path = self._extend_path(path_in_disp, + mutation_size=mutation_size) + self._path_original = extended_path + return FancyArrowPatch.get_window_extent(self, renderer) + + class FilledArrow(SimpleArrow): + """The artist class that will be returned for FilledArrow style.""" + _ARROW_STYLE = "-|>" + + def __init__(self, axis_artist, line_path, transform, + line_mutation_scale, facecolor): + super().__init__(axis_artist, line_path, transform, + line_mutation_scale) + self.set_facecolor(facecolor) + + +class AxislineStyle(_Style): + """ + A container class which defines style classes for AxisArtists. + + An instance of any axisline style class is a callable object, + whose call signature is :: + + __call__(self, axis_artist, path, transform) + + When called, this should return an `.Artist` with the following methods:: + + def set_path(self, path): + # set the path for axisline. + + def set_line_mutation_scale(self, scale): + # set the scale + + def draw(self, renderer): + # draw + """ + + _style_list = {} + + class _Base: + # The derived classes are required to be able to be initialized + # w/o arguments, i.e., all its argument (except self) must have + # the default values. + + def __init__(self): + """ + initialization. + """ + super().__init__() + + def __call__(self, axis_artist, transform): + """ + Given the AxisArtist instance, and transform for the path (set_path + method), return the Matplotlib artist for drawing the axis line. + """ + return self.new_line(axis_artist, transform) + + class SimpleArrow(_Base): + """ + A simple arrow. + """ + + ArrowAxisClass = _FancyAxislineStyle.SimpleArrow + + def __init__(self, size=1): + """ + Parameters + ---------- + size : float + Size of the arrow as a fraction of the ticklabel size. + """ + + self.size = size + super().__init__() + + def new_line(self, axis_artist, transform): + + linepath = Path([(0, 0), (0, 1)]) + axisline = self.ArrowAxisClass(axis_artist, linepath, transform, + line_mutation_scale=self.size) + return axisline + + _style_list["->"] = SimpleArrow + + class FilledArrow(SimpleArrow): + """ + An arrow with a filled head. + """ + + ArrowAxisClass = _FancyAxislineStyle.FilledArrow + + def __init__(self, size=1, facecolor=None): + """ + Parameters + ---------- + size : float + Size of the arrow as a fraction of the ticklabel size. + facecolor : :mpltype:`color`, default: :rc:`axes.edgecolor` + Fill color. + + .. versionadded:: 3.7 + """ + + if facecolor is None: + facecolor = mpl.rcParams['axes.edgecolor'] + self.size = size + self._facecolor = facecolor + super().__init__(size=size) + + def new_line(self, axis_artist, transform): + linepath = Path([(0, 0), (0, 1)]) + axisline = self.ArrowAxisClass(axis_artist, linepath, transform, + line_mutation_scale=self.size, + facecolor=self._facecolor) + return axisline + + _style_list["-|>"] = FilledArrow diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/axislines.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/axislines.py new file mode 100644 index 0000000..8d06cb2 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/axislines.py @@ -0,0 +1,479 @@ +""" +Axislines includes modified implementation of the Axes class. The +biggest difference is that the artists responsible for drawing the axis spine, +ticks, ticklabels and axis labels are separated out from Matplotlib's Axis +class. Originally, this change was motivated to support curvilinear +grid. Here are a few reasons that I came up with a new axes class: + +* "top" and "bottom" x-axis (or "left" and "right" y-axis) can have + different ticks (tick locations and labels). This is not possible + with the current Matplotlib, although some twin axes trick can help. + +* Curvilinear grid. + +* angled ticks. + +In the new axes class, xaxis and yaxis is set to not visible by +default, and new set of artist (AxisArtist) are defined to draw axis +line, ticks, ticklabels and axis label. Axes.axis attribute serves as +a dictionary of these artists, i.e., ax.axis["left"] is a AxisArtist +instance responsible to draw left y-axis. The default Axes.axis contains +"bottom", "left", "top" and "right". + +AxisArtist can be considered as a container artist and has the following +children artists which will draw ticks, labels, etc. + +* line +* major_ticks, major_ticklabels +* minor_ticks, minor_ticklabels +* offsetText +* label + +Note that these are separate artists from `matplotlib.axis.Axis`, thus most +tick-related functions in Matplotlib won't work. For example, color and +markerwidth of the ``ax.axis["bottom"].major_ticks`` will follow those of +Axes.xaxis unless explicitly specified. + +In addition to AxisArtist, the Axes will have *gridlines* attribute, +which obviously draws grid lines. The gridlines needs to be separated +from the axis as some gridlines can never pass any axis. +""" + +import numpy as np + +import matplotlib as mpl +from matplotlib import _api +import matplotlib.axes as maxes +from matplotlib.path import Path +from mpl_toolkits.axes_grid1 import mpl_axes +from .axisline_style import AxislineStyle # noqa +from .axis_artist import AxisArtist, GridlinesCollection + + +class _AxisArtistHelperBase: + """ + Base class for axis helper. + + Subclasses should define the methods listed below. The *axes* + argument will be the ``.axes`` attribute of the caller artist. :: + + # Construct the spine. + + def get_line_transform(self, axes): + return transform + + def get_line(self, axes): + return path + + # Construct the label. + + def get_axislabel_transform(self, axes): + return transform + + def get_axislabel_pos_angle(self, axes): + return (x, y), angle + + # Construct the ticks. + + def get_tick_transform(self, axes): + return transform + + def get_tick_iterators(self, axes): + # A pair of iterables (one for major ticks, one for minor ticks) + # that yield (tick_position, tick_angle, tick_label). + return iter_major, iter_minor + """ + + def __init__(self, nth_coord): + self.nth_coord = nth_coord + + def update_lim(self, axes): + pass + + def get_nth_coord(self): + return self.nth_coord + + def _to_xy(self, values, const): + """ + Create a (*values.shape, 2)-shape array representing (x, y) pairs. + + The other coordinate is filled with the constant *const*. + + Example:: + + >>> self.nth_coord = 0 + >>> self._to_xy([1, 2, 3], const=0) + array([[1, 0], + [2, 0], + [3, 0]]) + """ + if self.nth_coord == 0: + return np.stack(np.broadcast_arrays(values, const), axis=-1) + elif self.nth_coord == 1: + return np.stack(np.broadcast_arrays(const, values), axis=-1) + else: + raise ValueError("Unexpected nth_coord") + + +class _FixedAxisArtistHelperBase(_AxisArtistHelperBase): + """Helper class for a fixed (in the axes coordinate) axis.""" + + @_api.delete_parameter("3.9", "nth_coord") + def __init__(self, loc, nth_coord=None): + """``nth_coord = 0``: x-axis; ``nth_coord = 1``: y-axis.""" + super().__init__(_api.check_getitem( + {"bottom": 0, "top": 0, "left": 1, "right": 1}, loc=loc)) + self._loc = loc + self._pos = {"bottom": 0, "top": 1, "left": 0, "right": 1}[loc] + # axis line in transAxes + self._path = Path(self._to_xy((0, 1), const=self._pos)) + + # LINE + + def get_line(self, axes): + return self._path + + def get_line_transform(self, axes): + return axes.transAxes + + # LABEL + + def get_axislabel_transform(self, axes): + return axes.transAxes + + def get_axislabel_pos_angle(self, axes): + """ + Return the label reference position in transAxes. + + get_label_transform() returns a transform of (transAxes+offset) + """ + return dict(left=((0., 0.5), 90), # (position, angle_tangent) + right=((1., 0.5), 90), + bottom=((0.5, 0.), 0), + top=((0.5, 1.), 0))[self._loc] + + # TICK + + def get_tick_transform(self, axes): + return [axes.get_xaxis_transform(), axes.get_yaxis_transform()][self.nth_coord] + + +class _FloatingAxisArtistHelperBase(_AxisArtistHelperBase): + def __init__(self, nth_coord, value): + self._value = value + super().__init__(nth_coord) + + def get_line(self, axes): + raise RuntimeError("get_line method should be defined by the derived class") + + +class FixedAxisArtistHelperRectilinear(_FixedAxisArtistHelperBase): + + @_api.delete_parameter("3.9", "nth_coord") + def __init__(self, axes, loc, nth_coord=None): + """ + nth_coord = along which coordinate value varies + in 2D, nth_coord = 0 -> x axis, nth_coord = 1 -> y axis + """ + super().__init__(loc) + self.axis = [axes.xaxis, axes.yaxis][self.nth_coord] + + # TICK + + def get_tick_iterators(self, axes): + """tick_loc, tick_angle, tick_label""" + angle_normal, angle_tangent = {0: (90, 0), 1: (0, 90)}[self.nth_coord] + + major = self.axis.major + major_locs = major.locator() + major_labels = major.formatter.format_ticks(major_locs) + + minor = self.axis.minor + minor_locs = minor.locator() + minor_labels = minor.formatter.format_ticks(minor_locs) + + tick_to_axes = self.get_tick_transform(axes) - axes.transAxes + + def _f(locs, labels): + for loc, label in zip(locs, labels): + c = self._to_xy(loc, const=self._pos) + # check if the tick point is inside axes + c2 = tick_to_axes.transform(c) + if mpl.transforms._interval_contains_close((0, 1), c2[self.nth_coord]): + yield c, angle_normal, angle_tangent, label + + return _f(major_locs, major_labels), _f(minor_locs, minor_labels) + + +class FloatingAxisArtistHelperRectilinear(_FloatingAxisArtistHelperBase): + + def __init__(self, axes, nth_coord, + passingthrough_point, axis_direction="bottom"): + super().__init__(nth_coord, passingthrough_point) + self._axis_direction = axis_direction + self.axis = [axes.xaxis, axes.yaxis][self.nth_coord] + + def get_line(self, axes): + fixed_coord = 1 - self.nth_coord + data_to_axes = axes.transData - axes.transAxes + p = data_to_axes.transform([self._value, self._value]) + return Path(self._to_xy((0, 1), const=p[fixed_coord])) + + def get_line_transform(self, axes): + return axes.transAxes + + def get_axislabel_transform(self, axes): + return axes.transAxes + + def get_axislabel_pos_angle(self, axes): + """ + Return the label reference position in transAxes. + + get_label_transform() returns a transform of (transAxes+offset) + """ + angle = [0, 90][self.nth_coord] + fixed_coord = 1 - self.nth_coord + data_to_axes = axes.transData - axes.transAxes + p = data_to_axes.transform([self._value, self._value]) + verts = self._to_xy(0.5, const=p[fixed_coord]) + return (verts, angle) if 0 <= verts[fixed_coord] <= 1 else (None, None) + + def get_tick_transform(self, axes): + return axes.transData + + def get_tick_iterators(self, axes): + """tick_loc, tick_angle, tick_label""" + angle_normal, angle_tangent = {0: (90, 0), 1: (0, 90)}[self.nth_coord] + + major = self.axis.major + major_locs = major.locator() + major_labels = major.formatter.format_ticks(major_locs) + + minor = self.axis.minor + minor_locs = minor.locator() + minor_labels = minor.formatter.format_ticks(minor_locs) + + data_to_axes = axes.transData - axes.transAxes + + def _f(locs, labels): + for loc, label in zip(locs, labels): + c = self._to_xy(loc, const=self._value) + c1, c2 = data_to_axes.transform(c) + if 0 <= c1 <= 1 and 0 <= c2 <= 1: + yield c, angle_normal, angle_tangent, label + + return _f(major_locs, major_labels), _f(minor_locs, minor_labels) + + +class AxisArtistHelper: # Backcompat. + Fixed = _FixedAxisArtistHelperBase + Floating = _FloatingAxisArtistHelperBase + + +class AxisArtistHelperRectlinear: # Backcompat. + Fixed = FixedAxisArtistHelperRectilinear + Floating = FloatingAxisArtistHelperRectilinear + + +class GridHelperBase: + + def __init__(self): + self._old_limits = None + super().__init__() + + def update_lim(self, axes): + x1, x2 = axes.get_xlim() + y1, y2 = axes.get_ylim() + if self._old_limits != (x1, x2, y1, y2): + self._update_grid(x1, y1, x2, y2) + self._old_limits = (x1, x2, y1, y2) + + def _update_grid(self, x1, y1, x2, y2): + """Cache relevant computations when the axes limits have changed.""" + + def get_gridlines(self, which, axis): + """ + Return list of grid lines as a list of paths (list of points). + + Parameters + ---------- + which : {"both", "major", "minor"} + axis : {"both", "x", "y"} + """ + return [] + + +class GridHelperRectlinear(GridHelperBase): + + def __init__(self, axes): + super().__init__() + self.axes = axes + + @_api.delete_parameter( + "3.9", "nth_coord", addendum="'nth_coord' is now inferred from 'loc'.") + def new_fixed_axis( + self, loc, nth_coord=None, axis_direction=None, offset=None, axes=None): + if axes is None: + _api.warn_external( + "'new_fixed_axis' explicitly requires the axes keyword.") + axes = self.axes + if axis_direction is None: + axis_direction = loc + return AxisArtist(axes, FixedAxisArtistHelperRectilinear(axes, loc), + offset=offset, axis_direction=axis_direction) + + def new_floating_axis(self, nth_coord, value, axis_direction="bottom", axes=None): + if axes is None: + _api.warn_external( + "'new_floating_axis' explicitly requires the axes keyword.") + axes = self.axes + helper = FloatingAxisArtistHelperRectilinear( + axes, nth_coord, value, axis_direction) + axisline = AxisArtist(axes, helper, axis_direction=axis_direction) + axisline.line.set_clip_on(True) + axisline.line.set_clip_box(axisline.axes.bbox) + return axisline + + def get_gridlines(self, which="major", axis="both"): + """ + Return list of gridline coordinates in data coordinates. + + Parameters + ---------- + which : {"both", "major", "minor"} + axis : {"both", "x", "y"} + """ + _api.check_in_list(["both", "major", "minor"], which=which) + _api.check_in_list(["both", "x", "y"], axis=axis) + gridlines = [] + + if axis in ("both", "x"): + locs = [] + y1, y2 = self.axes.get_ylim() + if which in ("both", "major"): + locs.extend(self.axes.xaxis.major.locator()) + if which in ("both", "minor"): + locs.extend(self.axes.xaxis.minor.locator()) + gridlines.extend([[x, x], [y1, y2]] for x in locs) + + if axis in ("both", "y"): + x1, x2 = self.axes.get_xlim() + locs = [] + if self.axes.yaxis._major_tick_kw["gridOn"]: + locs.extend(self.axes.yaxis.major.locator()) + if self.axes.yaxis._minor_tick_kw["gridOn"]: + locs.extend(self.axes.yaxis.minor.locator()) + gridlines.extend([[x1, x2], [y, y]] for y in locs) + + return gridlines + + +class Axes(maxes.Axes): + + def __init__(self, *args, grid_helper=None, **kwargs): + self._axisline_on = True + self._grid_helper = grid_helper if grid_helper else GridHelperRectlinear(self) + super().__init__(*args, **kwargs) + self.toggle_axisline(True) + + def toggle_axisline(self, b=None): + if b is None: + b = not self._axisline_on + if b: + self._axisline_on = True + self.spines[:].set_visible(False) + self.xaxis.set_visible(False) + self.yaxis.set_visible(False) + else: + self._axisline_on = False + self.spines[:].set_visible(True) + self.xaxis.set_visible(True) + self.yaxis.set_visible(True) + + @property + def axis(self): + return self._axislines + + def clear(self): + # docstring inherited + + # Init gridlines before clear() as clear() calls grid(). + self.gridlines = gridlines = GridlinesCollection( + [], + colors=mpl.rcParams['grid.color'], + linestyles=mpl.rcParams['grid.linestyle'], + linewidths=mpl.rcParams['grid.linewidth']) + self._set_artist_props(gridlines) + gridlines.set_grid_helper(self.get_grid_helper()) + + super().clear() + + # clip_path is set after Axes.clear(): that's when a patch is created. + gridlines.set_clip_path(self.axes.patch) + + # Init axis artists. + self._axislines = mpl_axes.Axes.AxisDict(self) + new_fixed_axis = self.get_grid_helper().new_fixed_axis + self._axislines.update({ + loc: new_fixed_axis(loc=loc, axes=self, axis_direction=loc) + for loc in ["bottom", "top", "left", "right"]}) + for axisline in [self._axislines["top"], self._axislines["right"]]: + axisline.label.set_visible(False) + axisline.major_ticklabels.set_visible(False) + axisline.minor_ticklabels.set_visible(False) + + def get_grid_helper(self): + return self._grid_helper + + def grid(self, visible=None, which='major', axis="both", **kwargs): + """ + Toggle the gridlines, and optionally set the properties of the lines. + """ + # There are some discrepancies in the behavior of grid() between + # axes_grid and Matplotlib, because axes_grid explicitly sets the + # visibility of the gridlines. + super().grid(visible, which=which, axis=axis, **kwargs) + if not self._axisline_on: + return + if visible is None: + visible = (self.axes.xaxis._minor_tick_kw["gridOn"] + or self.axes.xaxis._major_tick_kw["gridOn"] + or self.axes.yaxis._minor_tick_kw["gridOn"] + or self.axes.yaxis._major_tick_kw["gridOn"]) + self.gridlines.set(which=which, axis=axis, visible=visible) + self.gridlines.set(**kwargs) + + def get_children(self): + if self._axisline_on: + children = [*self._axislines.values(), self.gridlines] + else: + children = [] + children.extend(super().get_children()) + return children + + def new_fixed_axis(self, loc, offset=None): + return self.get_grid_helper().new_fixed_axis(loc, offset=offset, axes=self) + + def new_floating_axis(self, nth_coord, value, axis_direction="bottom"): + return self.get_grid_helper().new_floating_axis( + nth_coord, value, axis_direction=axis_direction, axes=self) + + +class AxesZero(Axes): + + def clear(self): + super().clear() + new_floating_axis = self.get_grid_helper().new_floating_axis + self._axislines.update( + xzero=new_floating_axis( + nth_coord=0, value=0., axis_direction="bottom", axes=self), + yzero=new_floating_axis( + nth_coord=1, value=0., axis_direction="left", axes=self), + ) + for k in ["xzero", "yzero"]: + self._axislines[k].line.set_clip_path(self.patch) + self._axislines[k].set_visible(False) + + +Subplot = Axes +SubplotZero = AxesZero diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/floating_axes.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/floating_axes.py new file mode 100644 index 0000000..74e4c94 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/floating_axes.py @@ -0,0 +1,275 @@ +""" +An experimental support for curvilinear grid. +""" + +# TODO : +# see if tick_iterator method can be simplified by reusing the parent method. + +import functools + +import numpy as np + +import matplotlib as mpl +from matplotlib import _api, cbook +import matplotlib.patches as mpatches +from matplotlib.path import Path + +from mpl_toolkits.axes_grid1.parasite_axes import host_axes_class_factory + +from . import axislines, grid_helper_curvelinear +from .axis_artist import AxisArtist +from .grid_finder import ExtremeFinderSimple + + +class FloatingAxisArtistHelper( + grid_helper_curvelinear.FloatingAxisArtistHelper): + pass + + +class FixedAxisArtistHelper(grid_helper_curvelinear.FloatingAxisArtistHelper): + + def __init__(self, grid_helper, side, nth_coord_ticks=None): + """ + nth_coord = along which coordinate value varies. + nth_coord = 0 -> x axis, nth_coord = 1 -> y axis + """ + lon1, lon2, lat1, lat2 = grid_helper.grid_finder.extreme_finder(*[None] * 5) + value, nth_coord = _api.check_getitem( + dict(left=(lon1, 0), right=(lon2, 0), bottom=(lat1, 1), top=(lat2, 1)), + side=side) + super().__init__(grid_helper, nth_coord, value, axis_direction=side) + if nth_coord_ticks is None: + nth_coord_ticks = nth_coord + self.nth_coord_ticks = nth_coord_ticks + + self.value = value + self.grid_helper = grid_helper + self._side = side + + def update_lim(self, axes): + self.grid_helper.update_lim(axes) + self._grid_info = self.grid_helper._grid_info + + def get_tick_iterators(self, axes): + """tick_loc, tick_angle, tick_label, (optionally) tick_label""" + + grid_finder = self.grid_helper.grid_finder + + lat_levs, lat_n, lat_factor = self._grid_info["lat_info"] + yy0 = lat_levs / lat_factor + + lon_levs, lon_n, lon_factor = self._grid_info["lon_info"] + xx0 = lon_levs / lon_factor + + extremes = self.grid_helper.grid_finder.extreme_finder(*[None] * 5) + xmin, xmax = sorted(extremes[:2]) + ymin, ymax = sorted(extremes[2:]) + + def trf_xy(x, y): + trf = grid_finder.get_transform() + axes.transData + return trf.transform(np.column_stack(np.broadcast_arrays(x, y))).T + + if self.nth_coord == 0: + mask = (ymin <= yy0) & (yy0 <= ymax) + (xx1, yy1), (dxx1, dyy1), (dxx2, dyy2) = \ + grid_helper_curvelinear._value_and_jacobian( + trf_xy, self.value, yy0[mask], (xmin, xmax), (ymin, ymax)) + labels = self._grid_info["lat_labels"] + + elif self.nth_coord == 1: + mask = (xmin <= xx0) & (xx0 <= xmax) + (xx1, yy1), (dxx2, dyy2), (dxx1, dyy1) = \ + grid_helper_curvelinear._value_and_jacobian( + trf_xy, xx0[mask], self.value, (xmin, xmax), (ymin, ymax)) + labels = self._grid_info["lon_labels"] + + labels = [l for l, m in zip(labels, mask) if m] + + angle_normal = np.arctan2(dyy1, dxx1) + angle_tangent = np.arctan2(dyy2, dxx2) + mm = (dyy1 == 0) & (dxx1 == 0) # points with degenerate normal + angle_normal[mm] = angle_tangent[mm] + np.pi / 2 + + tick_to_axes = self.get_tick_transform(axes) - axes.transAxes + in_01 = functools.partial( + mpl.transforms._interval_contains_close, (0, 1)) + + def f1(): + for x, y, normal, tangent, lab \ + in zip(xx1, yy1, angle_normal, angle_tangent, labels): + c2 = tick_to_axes.transform((x, y)) + if in_01(c2[0]) and in_01(c2[1]): + yield [x, y], *np.rad2deg([normal, tangent]), lab + + return f1(), iter([]) + + def get_line(self, axes): + self.update_lim(axes) + k, v = dict(left=("lon_lines0", 0), + right=("lon_lines0", 1), + bottom=("lat_lines0", 0), + top=("lat_lines0", 1))[self._side] + xx, yy = self._grid_info[k][v] + return Path(np.column_stack([xx, yy])) + + +class ExtremeFinderFixed(ExtremeFinderSimple): + # docstring inherited + + def __init__(self, extremes): + """ + This subclass always returns the same bounding box. + + Parameters + ---------- + extremes : (float, float, float, float) + The bounding box that this helper always returns. + """ + self._extremes = extremes + + def __call__(self, transform_xy, x1, y1, x2, y2): + # docstring inherited + return self._extremes + + +class GridHelperCurveLinear(grid_helper_curvelinear.GridHelperCurveLinear): + + def __init__(self, aux_trans, extremes, + grid_locator1=None, + grid_locator2=None, + tick_formatter1=None, + tick_formatter2=None): + # docstring inherited + super().__init__(aux_trans, + extreme_finder=ExtremeFinderFixed(extremes), + grid_locator1=grid_locator1, + grid_locator2=grid_locator2, + tick_formatter1=tick_formatter1, + tick_formatter2=tick_formatter2) + + def new_fixed_axis( + self, loc, nth_coord=None, axis_direction=None, offset=None, axes=None): + if axes is None: + axes = self.axes + if axis_direction is None: + axis_direction = loc + # This is not the same as the FixedAxisArtistHelper class used by + # grid_helper_curvelinear.GridHelperCurveLinear.new_fixed_axis! + helper = FixedAxisArtistHelper( + self, loc, nth_coord_ticks=nth_coord) + axisline = AxisArtist(axes, helper, axis_direction=axis_direction) + # Perhaps should be moved to the base class? + axisline.line.set_clip_on(True) + axisline.line.set_clip_box(axisline.axes.bbox) + return axisline + + # new_floating_axis will inherit the grid_helper's extremes. + + # def new_floating_axis(self, nth_coord, value, axes=None, axis_direction="bottom"): + # axis = super(GridHelperCurveLinear, + # self).new_floating_axis(nth_coord, + # value, axes=axes, + # axis_direction=axis_direction) + # # set extreme values of the axis helper + # if nth_coord == 1: + # axis.get_helper().set_extremes(*self._extremes[:2]) + # elif nth_coord == 0: + # axis.get_helper().set_extremes(*self._extremes[2:]) + # return axis + + def _update_grid(self, x1, y1, x2, y2): + if self._grid_info is None: + self._grid_info = dict() + + grid_info = self._grid_info + + grid_finder = self.grid_finder + extremes = grid_finder.extreme_finder(grid_finder.inv_transform_xy, + x1, y1, x2, y2) + + lon_min, lon_max = sorted(extremes[:2]) + lat_min, lat_max = sorted(extremes[2:]) + grid_info["extremes"] = lon_min, lon_max, lat_min, lat_max # extremes + + lon_levs, lon_n, lon_factor = \ + grid_finder.grid_locator1(lon_min, lon_max) + lon_levs = np.asarray(lon_levs) + lat_levs, lat_n, lat_factor = \ + grid_finder.grid_locator2(lat_min, lat_max) + lat_levs = np.asarray(lat_levs) + + grid_info["lon_info"] = lon_levs, lon_n, lon_factor + grid_info["lat_info"] = lat_levs, lat_n, lat_factor + + grid_info["lon_labels"] = grid_finder._format_ticks( + 1, "bottom", lon_factor, lon_levs) + grid_info["lat_labels"] = grid_finder._format_ticks( + 2, "bottom", lat_factor, lat_levs) + + lon_values = lon_levs[:lon_n] / lon_factor + lat_values = lat_levs[:lat_n] / lat_factor + + lon_lines, lat_lines = grid_finder._get_raw_grid_lines( + lon_values[(lon_min < lon_values) & (lon_values < lon_max)], + lat_values[(lat_min < lat_values) & (lat_values < lat_max)], + lon_min, lon_max, lat_min, lat_max) + + grid_info["lon_lines"] = lon_lines + grid_info["lat_lines"] = lat_lines + + lon_lines, lat_lines = grid_finder._get_raw_grid_lines( + # lon_min, lon_max, lat_min, lat_max) + extremes[:2], extremes[2:], *extremes) + + grid_info["lon_lines0"] = lon_lines + grid_info["lat_lines0"] = lat_lines + + def get_gridlines(self, which="major", axis="both"): + grid_lines = [] + if axis in ["both", "x"]: + grid_lines.extend(self._grid_info["lon_lines"]) + if axis in ["both", "y"]: + grid_lines.extend(self._grid_info["lat_lines"]) + return grid_lines + + +class FloatingAxesBase: + + def __init__(self, *args, grid_helper, **kwargs): + _api.check_isinstance(GridHelperCurveLinear, grid_helper=grid_helper) + super().__init__(*args, grid_helper=grid_helper, **kwargs) + self.set_aspect(1.) + + def _gen_axes_patch(self): + # docstring inherited + x0, x1, y0, y1 = self.get_grid_helper().grid_finder.extreme_finder(*[None] * 5) + patch = mpatches.Polygon([(x0, y0), (x1, y0), (x1, y1), (x0, y1)]) + patch.get_path()._interpolation_steps = 100 + return patch + + def clear(self): + super().clear() + self.patch.set_transform( + self.get_grid_helper().grid_finder.get_transform() + + self.transData) + # The original patch is not in the draw tree; it is only used for + # clipping purposes. + orig_patch = super()._gen_axes_patch() + orig_patch.set_figure(self.get_figure(root=False)) + orig_patch.set_transform(self.transAxes) + self.patch.set_clip_path(orig_patch) + self.gridlines.set_clip_path(orig_patch) + self.adjust_axes_lim() + + def adjust_axes_lim(self): + bbox = self.patch.get_path().get_extents( + # First transform to pixel coords, then to parent data coords. + self.patch.get_transform() - self.transData) + bbox = bbox.expanded(1.02, 1.02) + self.set_xlim(bbox.xmin, bbox.xmax) + self.set_ylim(bbox.ymin, bbox.ymax) + + +floatingaxes_class_factory = cbook._make_class_factory(FloatingAxesBase, "Floating{}") +FloatingAxes = floatingaxes_class_factory(host_axes_class_factory(axislines.Axes)) +FloatingSubplot = FloatingAxes diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/grid_finder.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/grid_finder.py new file mode 100644 index 0000000..ff67aa6 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/grid_finder.py @@ -0,0 +1,326 @@ +import numpy as np + +from matplotlib import ticker as mticker, _api +from matplotlib.transforms import Bbox, Transform + + +def _find_line_box_crossings(xys, bbox): + """ + Find the points where a polyline crosses a bbox, and the crossing angles. + + Parameters + ---------- + xys : (N, 2) array + The polyline coordinates. + bbox : `.Bbox` + The bounding box. + + Returns + ------- + list of ((float, float), float) + Four separate lists of crossings, for the left, right, bottom, and top + sides of the bbox, respectively. For each list, the entries are the + ``((x, y), ccw_angle_in_degrees)`` of the crossing, where an angle of 0 + means that the polyline is moving to the right at the crossing point. + + The entries are computed by linearly interpolating at each crossing + between the nearest points on either side of the bbox edges. + """ + crossings = [] + dxys = xys[1:] - xys[:-1] + for sl in [slice(None), slice(None, None, -1)]: + us, vs = xys.T[sl] # "this" coord, "other" coord + dus, dvs = dxys.T[sl] + umin, vmin = bbox.min[sl] + umax, vmax = bbox.max[sl] + for u0, inside in [(umin, us > umin), (umax, us < umax)]: + cross = [] + idxs, = (inside[:-1] ^ inside[1:]).nonzero() + for idx in idxs: + v = vs[idx] + (u0 - us[idx]) * dvs[idx] / dus[idx] + if not vmin <= v <= vmax: + continue + crossing = (u0, v)[sl] + theta = np.degrees(np.arctan2(*dxys[idx][::-1])) + cross.append((crossing, theta)) + crossings.append(cross) + return crossings + + +class ExtremeFinderSimple: + """ + A helper class to figure out the range of grid lines that need to be drawn. + """ + + def __init__(self, nx, ny): + """ + Parameters + ---------- + nx, ny : int + The number of samples in each direction. + """ + self.nx = nx + self.ny = ny + + def __call__(self, transform_xy, x1, y1, x2, y2): + """ + Compute an approximation of the bounding box obtained by applying + *transform_xy* to the box delimited by ``(x1, y1, x2, y2)``. + + The intended use is to have ``(x1, y1, x2, y2)`` in axes coordinates, + and have *transform_xy* be the transform from axes coordinates to data + coordinates; this method then returns the range of data coordinates + that span the actual axes. + + The computation is done by sampling ``nx * ny`` equispaced points in + the ``(x1, y1, x2, y2)`` box and finding the resulting points with + extremal coordinates; then adding some padding to take into account the + finite sampling. + + As each sampling step covers a relative range of *1/nx* or *1/ny*, + the padding is computed by expanding the span covered by the extremal + coordinates by these fractions. + """ + x, y = np.meshgrid( + np.linspace(x1, x2, self.nx), np.linspace(y1, y2, self.ny)) + xt, yt = transform_xy(np.ravel(x), np.ravel(y)) + return self._add_pad(xt.min(), xt.max(), yt.min(), yt.max()) + + def _add_pad(self, x_min, x_max, y_min, y_max): + """Perform the padding mentioned in `__call__`.""" + dx = (x_max - x_min) / self.nx + dy = (y_max - y_min) / self.ny + return x_min - dx, x_max + dx, y_min - dy, y_max + dy + + +class _User2DTransform(Transform): + """A transform defined by two user-set functions.""" + + input_dims = output_dims = 2 + + def __init__(self, forward, backward): + """ + Parameters + ---------- + forward, backward : callable + The forward and backward transforms, taking ``x`` and ``y`` as + separate arguments and returning ``(tr_x, tr_y)``. + """ + # The normal Matplotlib convention would be to take and return an + # (N, 2) array but axisartist uses the transposed version. + super().__init__() + self._forward = forward + self._backward = backward + + def transform_non_affine(self, values): + # docstring inherited + return np.transpose(self._forward(*np.transpose(values))) + + def inverted(self): + # docstring inherited + return type(self)(self._backward, self._forward) + + +class GridFinder: + """ + Internal helper for `~.grid_helper_curvelinear.GridHelperCurveLinear`, with + the same constructor parameters; should not be directly instantiated. + """ + + def __init__(self, + transform, + extreme_finder=None, + grid_locator1=None, + grid_locator2=None, + tick_formatter1=None, + tick_formatter2=None): + if extreme_finder is None: + extreme_finder = ExtremeFinderSimple(20, 20) + if grid_locator1 is None: + grid_locator1 = MaxNLocator() + if grid_locator2 is None: + grid_locator2 = MaxNLocator() + if tick_formatter1 is None: + tick_formatter1 = FormatterPrettyPrint() + if tick_formatter2 is None: + tick_formatter2 = FormatterPrettyPrint() + self.extreme_finder = extreme_finder + self.grid_locator1 = grid_locator1 + self.grid_locator2 = grid_locator2 + self.tick_formatter1 = tick_formatter1 + self.tick_formatter2 = tick_formatter2 + self.set_transform(transform) + + def _format_ticks(self, idx, direction, factor, levels): + """ + Helper to support both standard formatters (inheriting from + `.mticker.Formatter`) and axisartist-specific ones; should be called instead of + directly calling ``self.tick_formatter1`` and ``self.tick_formatter2``. This + method should be considered as a temporary workaround which will be removed in + the future at the same time as axisartist-specific formatters. + """ + fmt = _api.check_getitem( + {1: self.tick_formatter1, 2: self.tick_formatter2}, idx=idx) + return (fmt.format_ticks(levels) if isinstance(fmt, mticker.Formatter) + else fmt(direction, factor, levels)) + + def get_grid_info(self, x1, y1, x2, y2): + """ + lon_values, lat_values : list of grid values. if integer is given, + rough number of grids in each direction. + """ + + extremes = self.extreme_finder(self.inv_transform_xy, x1, y1, x2, y2) + + # min & max rage of lat (or lon) for each grid line will be drawn. + # i.e., gridline of lon=0 will be drawn from lat_min to lat_max. + + lon_min, lon_max, lat_min, lat_max = extremes + lon_levs, lon_n, lon_factor = self.grid_locator1(lon_min, lon_max) + lon_levs = np.asarray(lon_levs) + lat_levs, lat_n, lat_factor = self.grid_locator2(lat_min, lat_max) + lat_levs = np.asarray(lat_levs) + + lon_values = lon_levs[:lon_n] / lon_factor + lat_values = lat_levs[:lat_n] / lat_factor + + lon_lines, lat_lines = self._get_raw_grid_lines(lon_values, + lat_values, + lon_min, lon_max, + lat_min, lat_max) + + bb = Bbox.from_extents(x1, y1, x2, y2).expanded(1 + 2e-10, 1 + 2e-10) + + grid_info = { + "extremes": extremes, + # "lon", "lat", filled below. + } + + for idx, lon_or_lat, levs, factor, values, lines in [ + (1, "lon", lon_levs, lon_factor, lon_values, lon_lines), + (2, "lat", lat_levs, lat_factor, lat_values, lat_lines), + ]: + grid_info[lon_or_lat] = gi = { + "lines": [[l] for l in lines], + "ticks": {"left": [], "right": [], "bottom": [], "top": []}, + } + for (lx, ly), v, level in zip(lines, values, levs): + all_crossings = _find_line_box_crossings(np.column_stack([lx, ly]), bb) + for side, crossings in zip( + ["left", "right", "bottom", "top"], all_crossings): + for crossing in crossings: + gi["ticks"][side].append({"level": level, "loc": crossing}) + for side in gi["ticks"]: + levs = [tick["level"] for tick in gi["ticks"][side]] + labels = self._format_ticks(idx, side, factor, levs) + for tick, label in zip(gi["ticks"][side], labels): + tick["label"] = label + + return grid_info + + def _get_raw_grid_lines(self, + lon_values, lat_values, + lon_min, lon_max, lat_min, lat_max): + + lons_i = np.linspace(lon_min, lon_max, 100) # for interpolation + lats_i = np.linspace(lat_min, lat_max, 100) + + lon_lines = [self.transform_xy(np.full_like(lats_i, lon), lats_i) + for lon in lon_values] + lat_lines = [self.transform_xy(lons_i, np.full_like(lons_i, lat)) + for lat in lat_values] + + return lon_lines, lat_lines + + def set_transform(self, aux_trans): + if isinstance(aux_trans, Transform): + self._aux_transform = aux_trans + elif len(aux_trans) == 2 and all(map(callable, aux_trans)): + self._aux_transform = _User2DTransform(*aux_trans) + else: + raise TypeError("'aux_trans' must be either a Transform " + "instance or a pair of callables") + + def get_transform(self): + return self._aux_transform + + update_transform = set_transform # backcompat alias. + + def transform_xy(self, x, y): + return self._aux_transform.transform(np.column_stack([x, y])).T + + def inv_transform_xy(self, x, y): + return self._aux_transform.inverted().transform( + np.column_stack([x, y])).T + + def update(self, **kwargs): + for k, v in kwargs.items(): + if k in ["extreme_finder", + "grid_locator1", + "grid_locator2", + "tick_formatter1", + "tick_formatter2"]: + setattr(self, k, v) + else: + raise ValueError(f"Unknown update property {k!r}") + + +class MaxNLocator(mticker.MaxNLocator): + def __init__(self, nbins=10, steps=None, + trim=True, + integer=False, + symmetric=False, + prune=None): + # trim argument has no effect. It has been left for API compatibility + super().__init__(nbins, steps=steps, integer=integer, + symmetric=symmetric, prune=prune) + self.create_dummy_axis() + + def __call__(self, v1, v2): + locs = super().tick_values(v1, v2) + return np.array(locs), len(locs), 1 # 1: factor (see angle_helper) + + +class FixedLocator: + def __init__(self, locs): + self._locs = locs + + def __call__(self, v1, v2): + v1, v2 = sorted([v1, v2]) + locs = np.array([l for l in self._locs if v1 <= l <= v2]) + return locs, len(locs), 1 # 1: factor (see angle_helper) + + +# Tick Formatter + +class FormatterPrettyPrint: + def __init__(self, useMathText=True): + self._fmt = mticker.ScalarFormatter( + useMathText=useMathText, useOffset=False) + self._fmt.create_dummy_axis() + + def __call__(self, direction, factor, values): + return self._fmt.format_ticks(values) + + +class DictFormatter: + def __init__(self, format_dict, formatter=None): + """ + format_dict : dictionary for format strings to be used. + formatter : fall-back formatter + """ + super().__init__() + self._format_dict = format_dict + self._fallback_formatter = formatter + + def __call__(self, direction, factor, values): + """ + factor is ignored if value is found in the dictionary + """ + if self._fallback_formatter: + fallback_strings = self._fallback_formatter( + direction, factor, values) + else: + fallback_strings = [""] * len(values) + return [self._format_dict.get(k, v) + for k, v in zip(values, fallback_strings)] diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.py new file mode 100644 index 0000000..a7eb9d5 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.py @@ -0,0 +1,328 @@ +""" +An experimental support for curvilinear grid. +""" + +import functools + +import numpy as np + +import matplotlib as mpl +from matplotlib import _api +from matplotlib.path import Path +from matplotlib.transforms import Affine2D, IdentityTransform +from .axislines import ( + _FixedAxisArtistHelperBase, _FloatingAxisArtistHelperBase, GridHelperBase) +from .axis_artist import AxisArtist +from .grid_finder import GridFinder + + +def _value_and_jacobian(func, xs, ys, xlims, ylims): + """ + Compute *func* and its derivatives along x and y at positions *xs*, *ys*, + while ensuring that finite difference calculations don't try to evaluate + values outside of *xlims*, *ylims*. + """ + eps = np.finfo(float).eps ** (1/2) # see e.g. scipy.optimize.approx_fprime + val = func(xs, ys) + # Take the finite difference step in the direction where the bound is the + # furthest; the step size is min of epsilon and distance to that bound. + xlo, xhi = sorted(xlims) + dxlo = xs - xlo + dxhi = xhi - xs + xeps = (np.take([-1, 1], dxhi >= dxlo) + * np.minimum(eps, np.maximum(dxlo, dxhi))) + val_dx = func(xs + xeps, ys) + ylo, yhi = sorted(ylims) + dylo = ys - ylo + dyhi = yhi - ys + yeps = (np.take([-1, 1], dyhi >= dylo) + * np.minimum(eps, np.maximum(dylo, dyhi))) + val_dy = func(xs, ys + yeps) + return (val, (val_dx - val) / xeps, (val_dy - val) / yeps) + + +class FixedAxisArtistHelper(_FixedAxisArtistHelperBase): + """ + Helper class for a fixed axis. + """ + + def __init__(self, grid_helper, side, nth_coord_ticks=None): + """ + nth_coord = along which coordinate value varies. + nth_coord = 0 -> x axis, nth_coord = 1 -> y axis + """ + + super().__init__(loc=side) + + self.grid_helper = grid_helper + if nth_coord_ticks is None: + nth_coord_ticks = self.nth_coord + self.nth_coord_ticks = nth_coord_ticks + + self.side = side + + def update_lim(self, axes): + self.grid_helper.update_lim(axes) + + def get_tick_transform(self, axes): + return axes.transData + + def get_tick_iterators(self, axes): + """tick_loc, tick_angle, tick_label""" + v1, v2 = axes.get_ylim() if self.nth_coord == 0 else axes.get_xlim() + if v1 > v2: # Inverted limits. + side = {"left": "right", "right": "left", + "top": "bottom", "bottom": "top"}[self.side] + else: + side = self.side + + angle_tangent = dict(left=90, right=90, bottom=0, top=0)[side] + + def iter_major(): + for nth_coord, show_labels in [ + (self.nth_coord_ticks, True), (1 - self.nth_coord_ticks, False)]: + gi = self.grid_helper._grid_info[["lon", "lat"][nth_coord]] + for tick in gi["ticks"][side]: + yield (*tick["loc"], angle_tangent, + (tick["label"] if show_labels else "")) + + return iter_major(), iter([]) + + +class FloatingAxisArtistHelper(_FloatingAxisArtistHelperBase): + + def __init__(self, grid_helper, nth_coord, value, axis_direction=None): + """ + nth_coord = along which coordinate value varies. + nth_coord = 0 -> x axis, nth_coord = 1 -> y axis + """ + super().__init__(nth_coord, value) + self.value = value + self.grid_helper = grid_helper + self._extremes = -np.inf, np.inf + self._line_num_points = 100 # number of points to create a line + + def set_extremes(self, e1, e2): + if e1 is None: + e1 = -np.inf + if e2 is None: + e2 = np.inf + self._extremes = e1, e2 + + def update_lim(self, axes): + self.grid_helper.update_lim(axes) + + x1, x2 = axes.get_xlim() + y1, y2 = axes.get_ylim() + grid_finder = self.grid_helper.grid_finder + extremes = grid_finder.extreme_finder(grid_finder.inv_transform_xy, + x1, y1, x2, y2) + + lon_min, lon_max, lat_min, lat_max = extremes + e_min, e_max = self._extremes # ranges of other coordinates + if self.nth_coord == 0: + lat_min = max(e_min, lat_min) + lat_max = min(e_max, lat_max) + elif self.nth_coord == 1: + lon_min = max(e_min, lon_min) + lon_max = min(e_max, lon_max) + + lon_levs, lon_n, lon_factor = \ + grid_finder.grid_locator1(lon_min, lon_max) + lat_levs, lat_n, lat_factor = \ + grid_finder.grid_locator2(lat_min, lat_max) + + if self.nth_coord == 0: + xx0 = np.full(self._line_num_points, self.value) + yy0 = np.linspace(lat_min, lat_max, self._line_num_points) + xx, yy = grid_finder.transform_xy(xx0, yy0) + elif self.nth_coord == 1: + xx0 = np.linspace(lon_min, lon_max, self._line_num_points) + yy0 = np.full(self._line_num_points, self.value) + xx, yy = grid_finder.transform_xy(xx0, yy0) + + self._grid_info = { + "extremes": (lon_min, lon_max, lat_min, lat_max), + "lon_info": (lon_levs, lon_n, np.asarray(lon_factor)), + "lat_info": (lat_levs, lat_n, np.asarray(lat_factor)), + "lon_labels": grid_finder._format_ticks( + 1, "bottom", lon_factor, lon_levs), + "lat_labels": grid_finder._format_ticks( + 2, "bottom", lat_factor, lat_levs), + "line_xy": (xx, yy), + } + + def get_axislabel_transform(self, axes): + return Affine2D() # axes.transData + + def get_axislabel_pos_angle(self, axes): + def trf_xy(x, y): + trf = self.grid_helper.grid_finder.get_transform() + axes.transData + return trf.transform([x, y]).T + + xmin, xmax, ymin, ymax = self._grid_info["extremes"] + if self.nth_coord == 0: + xx0 = self.value + yy0 = (ymin + ymax) / 2 + elif self.nth_coord == 1: + xx0 = (xmin + xmax) / 2 + yy0 = self.value + xy1, dxy1_dx, dxy1_dy = _value_and_jacobian( + trf_xy, xx0, yy0, (xmin, xmax), (ymin, ymax)) + p = axes.transAxes.inverted().transform(xy1) + if 0 <= p[0] <= 1 and 0 <= p[1] <= 1: + d = [dxy1_dy, dxy1_dx][self.nth_coord] + return xy1, np.rad2deg(np.arctan2(*d[::-1])) + else: + return None, None + + def get_tick_transform(self, axes): + return IdentityTransform() # axes.transData + + def get_tick_iterators(self, axes): + """tick_loc, tick_angle, tick_label, (optionally) tick_label""" + + lat_levs, lat_n, lat_factor = self._grid_info["lat_info"] + yy0 = lat_levs / lat_factor + + lon_levs, lon_n, lon_factor = self._grid_info["lon_info"] + xx0 = lon_levs / lon_factor + + e0, e1 = self._extremes + + def trf_xy(x, y): + trf = self.grid_helper.grid_finder.get_transform() + axes.transData + return trf.transform(np.column_stack(np.broadcast_arrays(x, y))).T + + # find angles + if self.nth_coord == 0: + mask = (e0 <= yy0) & (yy0 <= e1) + (xx1, yy1), (dxx1, dyy1), (dxx2, dyy2) = _value_and_jacobian( + trf_xy, self.value, yy0[mask], (-np.inf, np.inf), (e0, e1)) + labels = self._grid_info["lat_labels"] + + elif self.nth_coord == 1: + mask = (e0 <= xx0) & (xx0 <= e1) + (xx1, yy1), (dxx2, dyy2), (dxx1, dyy1) = _value_and_jacobian( + trf_xy, xx0[mask], self.value, (-np.inf, np.inf), (e0, e1)) + labels = self._grid_info["lon_labels"] + + labels = [l for l, m in zip(labels, mask) if m] + + angle_normal = np.arctan2(dyy1, dxx1) + angle_tangent = np.arctan2(dyy2, dxx2) + mm = (dyy1 == 0) & (dxx1 == 0) # points with degenerate normal + angle_normal[mm] = angle_tangent[mm] + np.pi / 2 + + tick_to_axes = self.get_tick_transform(axes) - axes.transAxes + in_01 = functools.partial( + mpl.transforms._interval_contains_close, (0, 1)) + + def iter_major(): + for x, y, normal, tangent, lab \ + in zip(xx1, yy1, angle_normal, angle_tangent, labels): + c2 = tick_to_axes.transform((x, y)) + if in_01(c2[0]) and in_01(c2[1]): + yield [x, y], *np.rad2deg([normal, tangent]), lab + + return iter_major(), iter([]) + + def get_line_transform(self, axes): + return axes.transData + + def get_line(self, axes): + self.update_lim(axes) + x, y = self._grid_info["line_xy"] + return Path(np.column_stack([x, y])) + + +class GridHelperCurveLinear(GridHelperBase): + def __init__(self, aux_trans, + extreme_finder=None, + grid_locator1=None, + grid_locator2=None, + tick_formatter1=None, + tick_formatter2=None): + """ + Parameters + ---------- + aux_trans : `.Transform` or tuple[Callable, Callable] + The transform from curved coordinates to rectilinear coordinate: + either a `.Transform` instance (which provides also its inverse), + or a pair of callables ``(trans, inv_trans)`` that define the + transform and its inverse. The callables should have signature:: + + x_rect, y_rect = trans(x_curved, y_curved) + x_curved, y_curved = inv_trans(x_rect, y_rect) + + extreme_finder + + grid_locator1, grid_locator2 + Grid locators for each axis. + + tick_formatter1, tick_formatter2 + Tick formatters for each axis. + """ + super().__init__() + self._grid_info = None + self.grid_finder = GridFinder(aux_trans, + extreme_finder, + grid_locator1, + grid_locator2, + tick_formatter1, + tick_formatter2) + + def update_grid_finder(self, aux_trans=None, **kwargs): + if aux_trans is not None: + self.grid_finder.update_transform(aux_trans) + self.grid_finder.update(**kwargs) + self._old_limits = None # Force revalidation. + + @_api.make_keyword_only("3.9", "nth_coord") + def new_fixed_axis( + self, loc, nth_coord=None, axis_direction=None, offset=None, axes=None): + if axes is None: + axes = self.axes + if axis_direction is None: + axis_direction = loc + helper = FixedAxisArtistHelper(self, loc, nth_coord_ticks=nth_coord) + axisline = AxisArtist(axes, helper, axis_direction=axis_direction) + # Why is clip not set on axisline, unlike in new_floating_axis or in + # the floating_axig.GridHelperCurveLinear subclass? + return axisline + + def new_floating_axis(self, nth_coord, value, axes=None, axis_direction="bottom"): + if axes is None: + axes = self.axes + helper = FloatingAxisArtistHelper( + self, nth_coord, value, axis_direction) + axisline = AxisArtist(axes, helper) + axisline.line.set_clip_on(True) + axisline.line.set_clip_box(axisline.axes.bbox) + # axisline.major_ticklabels.set_visible(True) + # axisline.minor_ticklabels.set_visible(False) + return axisline + + def _update_grid(self, x1, y1, x2, y2): + self._grid_info = self.grid_finder.get_grid_info(x1, y1, x2, y2) + + def get_gridlines(self, which="major", axis="both"): + grid_lines = [] + if axis in ["both", "x"]: + for gl in self._grid_info["lon"]["lines"]: + grid_lines.extend(gl) + if axis in ["both", "y"]: + for gl in self._grid_info["lat"]["lines"]: + grid_lines.extend(gl) + return grid_lines + + @_api.deprecated("3.9") + def get_tick_iterator(self, nth_coord, axis_side, minor=False): + angle_tangent = dict(left=90, right=90, bottom=0, top=0)[axis_side] + lon_or_lat = ["lon", "lat"][nth_coord] + if not minor: # major ticks + for tick in self._grid_info[lon_or_lat]["ticks"][axis_side]: + yield *tick["loc"], angle_tangent, tick["label"] + else: + for tick in self._grid_info[lon_or_lat]["ticks"][axis_side]: + yield *tick["loc"], angle_tangent, "" diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/parasite_axes.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/parasite_axes.py new file mode 100644 index 0000000..4ebd6ac --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/parasite_axes.py @@ -0,0 +1,7 @@ +from mpl_toolkits.axes_grid1.parasite_axes import ( + host_axes_class_factory, parasite_axes_class_factory) +from .axislines import Axes + + +ParasiteAxes = parasite_axes_class_factory(Axes) +HostAxes = SubplotHost = host_axes_class_factory(Axes) diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/__init__.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/__init__.py new file mode 100644 index 0000000..ea4d8ed --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/__init__.py @@ -0,0 +1,10 @@ +from pathlib import Path + + +# Check that the test directories exist +if not (Path(__file__).parent / "baseline_images").exists(): + raise OSError( + 'The baseline image directory does not exist. ' + 'This is most likely because the test data is not installed. ' + 'You may need to install matplotlib from source to get the ' + 'test data.') diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/conftest.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/conftest.py new file mode 100644 index 0000000..61c2de3 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/conftest.py @@ -0,0 +1,2 @@ +from matplotlib.testing.conftest import (mpl_test_settings, # noqa + pytest_configure, pytest_unconfigure) diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/test_angle_helper.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/test_angle_helper.py new file mode 100644 index 0000000..3156b33 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/test_angle_helper.py @@ -0,0 +1,141 @@ +import re + +import numpy as np +import pytest + +from mpl_toolkits.axisartist.angle_helper import ( + FormatterDMS, FormatterHMS, select_step, select_step24, select_step360) + + +_MS_RE = ( + r'''\$ # Mathtext + ( + # The sign sometimes appears on a 0 when a fraction is shown. + # Check later that there's only one. + (?P-)? + (?P[0-9.]+) # Degrees value + {degree} # Degree symbol (to be replaced by format.) + )? + ( + (?(degree)\\,) # Separator if degrees are also visible. + (?P-)? + (?P[0-9.]+) # Minutes value + {minute} # Minute symbol (to be replaced by format.) + )? + ( + (?(minute)\\,) # Separator if minutes are also visible. + (?P-)? + (?P[0-9.]+) # Seconds value + {second} # Second symbol (to be replaced by format.) + )? + \$ # Mathtext + ''' +) +DMS_RE = re.compile(_MS_RE.format(degree=re.escape(FormatterDMS.deg_mark), + minute=re.escape(FormatterDMS.min_mark), + second=re.escape(FormatterDMS.sec_mark)), + re.VERBOSE) +HMS_RE = re.compile(_MS_RE.format(degree=re.escape(FormatterHMS.deg_mark), + minute=re.escape(FormatterHMS.min_mark), + second=re.escape(FormatterHMS.sec_mark)), + re.VERBOSE) + + +def dms2float(degrees, minutes=0, seconds=0): + return degrees + minutes / 60.0 + seconds / 3600.0 + + +@pytest.mark.parametrize('args, kwargs, expected_levels, expected_factor', [ + ((-180, 180, 10), {'hour': False}, np.arange(-180, 181, 30), 1.0), + ((-12, 12, 10), {'hour': True}, np.arange(-12, 13, 2), 1.0) +]) +def test_select_step(args, kwargs, expected_levels, expected_factor): + levels, n, factor = select_step(*args, **kwargs) + + assert n == len(levels) + np.testing.assert_array_equal(levels, expected_levels) + assert factor == expected_factor + + +@pytest.mark.parametrize('args, kwargs, expected_levels, expected_factor', [ + ((-180, 180, 10), {}, np.arange(-180, 181, 30), 1.0), + ((-12, 12, 10), {}, np.arange(-750, 751, 150), 60.0) +]) +def test_select_step24(args, kwargs, expected_levels, expected_factor): + levels, n, factor = select_step24(*args, **kwargs) + + assert n == len(levels) + np.testing.assert_array_equal(levels, expected_levels) + assert factor == expected_factor + + +@pytest.mark.parametrize('args, kwargs, expected_levels, expected_factor', [ + ((dms2float(20, 21.2), dms2float(21, 33.3), 5), {}, + np.arange(1215, 1306, 15), 60.0), + ((dms2float(20.5, seconds=21.2), dms2float(20.5, seconds=33.3), 5), {}, + np.arange(73820, 73835, 2), 3600.0), + ((dms2float(20, 21.2), dms2float(20, 53.3), 5), {}, + np.arange(1220, 1256, 5), 60.0), + ((21.2, 33.3, 5), {}, + np.arange(20, 35, 2), 1.0), + ((dms2float(20, 21.2), dms2float(21, 33.3), 5), {}, + np.arange(1215, 1306, 15), 60.0), + ((dms2float(20.5, seconds=21.2), dms2float(20.5, seconds=33.3), 5), {}, + np.arange(73820, 73835, 2), 3600.0), + ((dms2float(20.5, seconds=21.2), dms2float(20.5, seconds=21.4), 5), {}, + np.arange(7382120, 7382141, 5), 360000.0), + # test threshold factor + ((dms2float(20.5, seconds=11.2), dms2float(20.5, seconds=53.3), 5), + {'threshold_factor': 60}, np.arange(12301, 12310), 600.0), + ((dms2float(20.5, seconds=11.2), dms2float(20.5, seconds=53.3), 5), + {'threshold_factor': 1}, np.arange(20502, 20517, 2), 1000.0), +]) +def test_select_step360(args, kwargs, expected_levels, expected_factor): + levels, n, factor = select_step360(*args, **kwargs) + + assert n == len(levels) + np.testing.assert_array_equal(levels, expected_levels) + assert factor == expected_factor + + +@pytest.mark.parametrize('Formatter, regex', + [(FormatterDMS, DMS_RE), + (FormatterHMS, HMS_RE)], + ids=['Degree/Minute/Second', 'Hour/Minute/Second']) +@pytest.mark.parametrize('direction, factor, values', [ + ("left", 60, [0, -30, -60]), + ("left", 600, [12301, 12302, 12303]), + ("left", 3600, [0, -30, -60]), + ("left", 36000, [738210, 738215, 738220]), + ("left", 360000, [7382120, 7382125, 7382130]), + ("left", 1., [45, 46, 47]), + ("left", 10., [452, 453, 454]), +]) +def test_formatters(Formatter, regex, direction, factor, values): + fmt = Formatter() + result = fmt(direction, factor, values) + + prev_degree = prev_minute = prev_second = None + for tick, value in zip(result, values): + m = regex.match(tick) + assert m is not None, f'{tick!r} is not an expected tick format.' + + sign = sum(m.group(sign + '_sign') is not None + for sign in ('degree', 'minute', 'second')) + assert sign <= 1, f'Only one element of tick {tick!r} may have a sign.' + sign = 1 if sign == 0 else -1 + + degree = float(m.group('degree') or prev_degree or 0) + minute = float(m.group('minute') or prev_minute or 0) + second = float(m.group('second') or prev_second or 0) + if Formatter == FormatterHMS: + # 360 degrees as plot range -> 24 hours as labelled range + expected_value = pytest.approx((value // 15) / factor) + else: + expected_value = pytest.approx(value / factor) + assert sign * dms2float(degree, minute, second) == expected_value, \ + f'{tick!r} does not match expected tick value.' + + prev_degree = degree + prev_minute = minute + prev_second = second diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/test_axis_artist.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/test_axis_artist.py new file mode 100644 index 0000000..d44a61b --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/test_axis_artist.py @@ -0,0 +1,99 @@ +import matplotlib.pyplot as plt +from matplotlib.testing.decorators import image_comparison + +from mpl_toolkits.axisartist import AxisArtistHelperRectlinear +from mpl_toolkits.axisartist.axis_artist import (AxisArtist, AxisLabel, + LabelBase, Ticks, TickLabels) + + +@image_comparison(['axis_artist_ticks.png'], style='default') +def test_ticks(): + fig, ax = plt.subplots() + + ax.xaxis.set_visible(False) + ax.yaxis.set_visible(False) + + locs_angles = [((i / 10, 0.0), i * 30) for i in range(-1, 12)] + + ticks_in = Ticks(ticksize=10, axis=ax.xaxis) + ticks_in.set_locs_angles(locs_angles) + ax.add_artist(ticks_in) + + ticks_out = Ticks(ticksize=10, tick_out=True, color='C3', axis=ax.xaxis) + ticks_out.set_locs_angles(locs_angles) + ax.add_artist(ticks_out) + + +@image_comparison(['axis_artist_labelbase.png'], style='default') +def test_labelbase(): + # Remove this line when this test image is regenerated. + plt.rcParams['text.kerning_factor'] = 6 + + fig, ax = plt.subplots() + + ax.plot([0.5], [0.5], "o") + + label = LabelBase(0.5, 0.5, "Test") + label._ref_angle = -90 + label._offset_radius = 50 + label.set_rotation(-90) + label.set(ha="center", va="top") + ax.add_artist(label) + + +@image_comparison(['axis_artist_ticklabels.png'], style='default') +def test_ticklabels(): + # Remove this line when this test image is regenerated. + plt.rcParams['text.kerning_factor'] = 6 + + fig, ax = plt.subplots() + + ax.xaxis.set_visible(False) + ax.yaxis.set_visible(False) + + ax.plot([0.2, 0.4], [0.5, 0.5], "o") + + ticks = Ticks(ticksize=10, axis=ax.xaxis) + ax.add_artist(ticks) + locs_angles_labels = [((0.2, 0.5), -90, "0.2"), + ((0.4, 0.5), -120, "0.4")] + tick_locs_angles = [(xy, a + 180) for xy, a, l in locs_angles_labels] + ticks.set_locs_angles(tick_locs_angles) + + ticklabels = TickLabels(axis_direction="left") + ticklabels._locs_angles_labels = locs_angles_labels + ticklabels.set_pad(10) + ax.add_artist(ticklabels) + + ax.plot([0.5], [0.5], "s") + axislabel = AxisLabel(0.5, 0.5, "Test") + axislabel._offset_radius = 20 + axislabel._ref_angle = 0 + axislabel.set_axis_direction("bottom") + ax.add_artist(axislabel) + + ax.set_xlim(0, 1) + ax.set_ylim(0, 1) + + +@image_comparison(['axis_artist.png'], style='default') +def test_axis_artist(): + # Remove this line when this test image is regenerated. + plt.rcParams['text.kerning_factor'] = 6 + + fig, ax = plt.subplots() + + ax.xaxis.set_visible(False) + ax.yaxis.set_visible(False) + + for loc in ('left', 'right', 'bottom'): + helper = AxisArtistHelperRectlinear.Fixed(ax, loc=loc) + axisline = AxisArtist(ax, helper, offset=None, axis_direction=loc) + ax.add_artist(axisline) + + # Settings for bottom AxisArtist. + axisline.set_label("TTT") + axisline.major_ticks.set_tick_out(False) + axisline.label.set_pad(5) + + ax.set_ylabel("Test") diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/test_axislines.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/test_axislines.py new file mode 100644 index 0000000..8bc3707 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/test_axislines.py @@ -0,0 +1,145 @@ +import numpy as np +import matplotlib.pyplot as plt +from matplotlib.testing.decorators import image_comparison +from matplotlib.transforms import IdentityTransform + +from mpl_toolkits.axisartist.axislines import AxesZero, SubplotZero, Subplot +from mpl_toolkits.axisartist import Axes, SubplotHost + + +@image_comparison(['SubplotZero.png'], style='default') +def test_SubplotZero(): + # Remove this line when this test image is regenerated. + plt.rcParams['text.kerning_factor'] = 6 + + fig = plt.figure() + + ax = SubplotZero(fig, 1, 1, 1) + fig.add_subplot(ax) + + ax.axis["xzero"].set_visible(True) + ax.axis["xzero"].label.set_text("Axis Zero") + + for n in ["top", "right"]: + ax.axis[n].set_visible(False) + + xx = np.arange(0, 2 * np.pi, 0.01) + ax.plot(xx, np.sin(xx)) + ax.set_ylabel("Test") + + +@image_comparison(['Subplot.png'], style='default') +def test_Subplot(): + # Remove this line when this test image is regenerated. + plt.rcParams['text.kerning_factor'] = 6 + + fig = plt.figure() + + ax = Subplot(fig, 1, 1, 1) + fig.add_subplot(ax) + + xx = np.arange(0, 2 * np.pi, 0.01) + ax.plot(xx, np.sin(xx)) + ax.set_ylabel("Test") + + ax.axis["top"].major_ticks.set_tick_out(True) + ax.axis["bottom"].major_ticks.set_tick_out(True) + + ax.axis["bottom"].set_label("Tk0") + + +def test_Axes(): + fig = plt.figure() + ax = Axes(fig, [0.15, 0.1, 0.65, 0.8]) + fig.add_axes(ax) + ax.plot([1, 2, 3], [0, 1, 2]) + ax.set_xscale('log') + fig.canvas.draw() + + +@image_comparison(['ParasiteAxesAuxTrans_meshplot.png'], + remove_text=True, style='default', tol=0.075) +def test_ParasiteAxesAuxTrans(): + data = np.ones((6, 6)) + data[2, 2] = 2 + data[0, :] = 0 + data[-2, :] = 0 + data[:, 0] = 0 + data[:, -2] = 0 + x = np.arange(6) + y = np.arange(6) + xx, yy = np.meshgrid(x, y) + + funcnames = ['pcolor', 'pcolormesh', 'contourf'] + + fig = plt.figure() + for i, name in enumerate(funcnames): + + ax1 = SubplotHost(fig, 1, 3, i+1) + fig.add_subplot(ax1) + + ax2 = ax1.get_aux_axes(IdentityTransform(), viewlim_mode=None) + if name.startswith('pcolor'): + getattr(ax2, name)(xx, yy, data[:-1, :-1]) + else: + getattr(ax2, name)(xx, yy, data) + ax1.set_xlim((0, 5)) + ax1.set_ylim((0, 5)) + + ax2.contour(xx, yy, data, colors='k') + + +@image_comparison(['axisline_style.png'], remove_text=True, style='mpl20') +def test_axisline_style(): + fig = plt.figure(figsize=(2, 2)) + ax = fig.add_subplot(axes_class=AxesZero) + ax.axis["xzero"].set_axisline_style("-|>") + ax.axis["xzero"].set_visible(True) + ax.axis["yzero"].set_axisline_style("->") + ax.axis["yzero"].set_visible(True) + + for direction in ("left", "right", "bottom", "top"): + ax.axis[direction].set_visible(False) + + +@image_comparison(['axisline_style_size_color.png'], remove_text=True, + style='mpl20') +def test_axisline_style_size_color(): + fig = plt.figure(figsize=(2, 2)) + ax = fig.add_subplot(axes_class=AxesZero) + ax.axis["xzero"].set_axisline_style("-|>", size=2.0, facecolor='r') + ax.axis["xzero"].set_visible(True) + ax.axis["yzero"].set_axisline_style("->, size=1.5") + ax.axis["yzero"].set_visible(True) + + for direction in ("left", "right", "bottom", "top"): + ax.axis[direction].set_visible(False) + + +@image_comparison(['axisline_style_tight.png'], remove_text=True, + style='mpl20') +def test_axisline_style_tight(): + fig = plt.figure(figsize=(2, 2), layout='tight') + ax = fig.add_subplot(axes_class=AxesZero) + ax.axis["xzero"].set_axisline_style("-|>", size=5, facecolor='g') + ax.axis["xzero"].set_visible(True) + ax.axis["yzero"].set_axisline_style("->, size=8") + ax.axis["yzero"].set_visible(True) + + for direction in ("left", "right", "bottom", "top"): + ax.axis[direction].set_visible(False) + + +@image_comparison(['subplotzero_ylabel.png'], style='mpl20') +def test_subplotzero_ylabel(): + fig = plt.figure() + ax = fig.add_subplot(111, axes_class=SubplotZero) + + ax.set(xlim=(-3, 7), ylim=(-3, 7), xlabel="x", ylabel="y") + + zero_axis = ax.axis["xzero", "yzero"] + zero_axis.set_visible(True) # they are hidden by default + + ax.axis["left", "right", "bottom", "top"].set_visible(False) + + zero_axis.set_axisline_style("->") diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/test_floating_axes.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/test_floating_axes.py new file mode 100644 index 0000000..7644fea --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/test_floating_axes.py @@ -0,0 +1,115 @@ +import numpy as np + +import matplotlib.pyplot as plt +import matplotlib.projections as mprojections +import matplotlib.transforms as mtransforms +from matplotlib.testing.decorators import image_comparison +from mpl_toolkits.axisartist.axislines import Subplot +from mpl_toolkits.axisartist.floating_axes import ( + FloatingAxes, GridHelperCurveLinear) +from mpl_toolkits.axisartist.grid_finder import FixedLocator +from mpl_toolkits.axisartist import angle_helper + + +def test_subplot(): + fig = plt.figure(figsize=(5, 5)) + ax = Subplot(fig, 111) + fig.add_subplot(ax) + + +# Rather high tolerance to allow ongoing work with floating axes internals; +# remove when image is regenerated. +@image_comparison(['curvelinear3.png'], style='default', tol=5) +def test_curvelinear3(): + fig = plt.figure(figsize=(5, 5)) + + tr = (mtransforms.Affine2D().scale(np.pi / 180, 1) + + mprojections.PolarAxes.PolarTransform(apply_theta_transforms=False)) + grid_helper = GridHelperCurveLinear( + tr, + extremes=(0, 360, 10, 3), + grid_locator1=angle_helper.LocatorDMS(15), + grid_locator2=FixedLocator([2, 4, 6, 8, 10]), + tick_formatter1=angle_helper.FormatterDMS(), + tick_formatter2=None) + ax1 = fig.add_subplot(axes_class=FloatingAxes, grid_helper=grid_helper) + + r_scale = 10 + tr2 = mtransforms.Affine2D().scale(1, 1 / r_scale) + tr + grid_helper2 = GridHelperCurveLinear( + tr2, + extremes=(0, 360, 10 * r_scale, 3 * r_scale), + grid_locator2=FixedLocator([30, 60, 90])) + + ax1.axis["right"] = axis = grid_helper2.new_fixed_axis("right", axes=ax1) + + ax1.axis["left"].label.set_text("Test 1") + ax1.axis["right"].label.set_text("Test 2") + ax1.axis["left", "right"].set_visible(False) + + axis = grid_helper.new_floating_axis(1, 7, axes=ax1, + axis_direction="bottom") + ax1.axis["z"] = axis + axis.toggle(all=True, label=True) + axis.label.set_text("z = ?") + axis.label.set_visible(True) + axis.line.set_color("0.5") + + ax2 = ax1.get_aux_axes(tr) + + xx, yy = [67, 90, 75, 30], [2, 5, 8, 4] + ax2.scatter(xx, yy) + l, = ax2.plot(xx, yy, "k-") + l.set_clip_path(ax1.patch) + + +# Rather high tolerance to allow ongoing work with floating axes internals; +# remove when image is regenerated. +@image_comparison(['curvelinear4.png'], style='default', tol=0.9) +def test_curvelinear4(): + # Remove this line when this test image is regenerated. + plt.rcParams['text.kerning_factor'] = 6 + + fig = plt.figure(figsize=(5, 5)) + + tr = (mtransforms.Affine2D().scale(np.pi / 180, 1) + + mprojections.PolarAxes.PolarTransform(apply_theta_transforms=False)) + grid_helper = GridHelperCurveLinear( + tr, + extremes=(120, 30, 10, 0), + grid_locator1=angle_helper.LocatorDMS(5), + grid_locator2=FixedLocator([2, 4, 6, 8, 10]), + tick_formatter1=angle_helper.FormatterDMS(), + tick_formatter2=None) + ax1 = fig.add_subplot(axes_class=FloatingAxes, grid_helper=grid_helper) + ax1.clear() # Check that clear() also restores the correct limits on ax1. + + ax1.axis["left"].label.set_text("Test 1") + ax1.axis["right"].label.set_text("Test 2") + ax1.axis["top"].set_visible(False) + + axis = grid_helper.new_floating_axis(1, 70, axes=ax1, + axis_direction="bottom") + ax1.axis["z"] = axis + axis.toggle(all=True, label=True) + axis.label.set_axis_direction("top") + axis.label.set_text("z = ?") + axis.label.set_visible(True) + axis.line.set_color("0.5") + + ax2 = ax1.get_aux_axes(tr) + + xx, yy = [67, 90, 75, 30], [2, 5, 8, 4] + ax2.scatter(xx, yy) + l, = ax2.plot(xx, yy, "k-") + l.set_clip_path(ax1.patch) + + +def test_axis_direction(): + # Check that axis direction is propagated on a floating axis + fig = plt.figure() + ax = Subplot(fig, 111) + fig.add_subplot(ax) + ax.axis['y'] = ax.new_floating_axis(nth_coord=1, value=0, + axis_direction='left') + assert ax.axis['y']._axis_direction == 'left' diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/test_grid_finder.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/test_grid_finder.py new file mode 100644 index 0000000..6b39767 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/test_grid_finder.py @@ -0,0 +1,34 @@ +import numpy as np +import pytest + +from matplotlib.transforms import Bbox +from mpl_toolkits.axisartist.grid_finder import ( + _find_line_box_crossings, FormatterPrettyPrint, MaxNLocator) + + +def test_find_line_box_crossings(): + x = np.array([-3, -2, -1, 0., 1, 2, 3, 2, 1, 0, -1, -2, -3, 5]) + y = np.arange(len(x)) + bbox = Bbox.from_extents(-2, 3, 2, 12.5) + left, right, bottom, top = _find_line_box_crossings( + np.column_stack([x, y]), bbox) + ((lx0, ly0), la0), ((lx1, ly1), la1), = left + ((rx0, ry0), ra0), ((rx1, ry1), ra1), = right + ((bx0, by0), ba0), = bottom + ((tx0, ty0), ta0), = top + assert (lx0, ly0, la0) == (-2, 11, 135) + assert (lx1, ly1, la1) == pytest.approx((-2., 12.125, 7.125016)) + assert (rx0, ry0, ra0) == (2, 5, 45) + assert (rx1, ry1, ra1) == (2, 7, 135) + assert (bx0, by0, ba0) == (0, 3, 45) + assert (tx0, ty0, ta0) == pytest.approx((1., 12.5, 7.125016)) + + +def test_pretty_print_format(): + locator = MaxNLocator() + locs, nloc, factor = locator(0, 100) + + fmt = FormatterPrettyPrint() + + assert fmt("left", None, locs) == \ + [r'$\mathdefault{%d}$' % (l, ) for l in locs] diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/test_grid_helper_curvelinear.py b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/test_grid_helper_curvelinear.py new file mode 100644 index 0000000..1b26604 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/axisartist/tests/test_grid_helper_curvelinear.py @@ -0,0 +1,207 @@ +import numpy as np + +import matplotlib.pyplot as plt +from matplotlib.path import Path +from matplotlib.projections import PolarAxes +from matplotlib.ticker import FuncFormatter +from matplotlib.transforms import Affine2D, Transform +from matplotlib.testing.decorators import image_comparison + +from mpl_toolkits.axisartist import SubplotHost +from mpl_toolkits.axes_grid1.parasite_axes import host_axes_class_factory +from mpl_toolkits.axisartist import angle_helper +from mpl_toolkits.axisartist.axislines import Axes +from mpl_toolkits.axisartist.grid_helper_curvelinear import \ + GridHelperCurveLinear + + +@image_comparison(['custom_transform.png'], style='default', tol=0.2) +def test_custom_transform(): + class MyTransform(Transform): + input_dims = output_dims = 2 + + def __init__(self, resolution): + """ + Resolution is the number of steps to interpolate between each input + line segment to approximate its path in transformed space. + """ + Transform.__init__(self) + self._resolution = resolution + + def transform(self, ll): + x, y = ll.T + return np.column_stack([x, y - x]) + + transform_non_affine = transform + + def transform_path(self, path): + ipath = path.interpolated(self._resolution) + return Path(self.transform(ipath.vertices), ipath.codes) + + transform_path_non_affine = transform_path + + def inverted(self): + return MyTransformInv(self._resolution) + + class MyTransformInv(Transform): + input_dims = output_dims = 2 + + def __init__(self, resolution): + Transform.__init__(self) + self._resolution = resolution + + def transform(self, ll): + x, y = ll.T + return np.column_stack([x, y + x]) + + def inverted(self): + return MyTransform(self._resolution) + + fig = plt.figure() + + SubplotHost = host_axes_class_factory(Axes) + + tr = MyTransform(1) + grid_helper = GridHelperCurveLinear(tr) + ax1 = SubplotHost(fig, 1, 1, 1, grid_helper=grid_helper) + fig.add_subplot(ax1) + + ax2 = ax1.get_aux_axes(tr, viewlim_mode="equal") + ax2.plot([3, 6], [5.0, 10.]) + + ax1.set_aspect(1.) + ax1.set_xlim(0, 10) + ax1.set_ylim(0, 10) + + ax1.grid(True) + + +@image_comparison(['polar_box.png'], style='default', tol=0.04) +def test_polar_box(): + fig = plt.figure(figsize=(5, 5)) + + # PolarAxes.PolarTransform takes radian. However, we want our coordinate + # system in degree + tr = (Affine2D().scale(np.pi / 180., 1.) + + PolarAxes.PolarTransform(apply_theta_transforms=False)) + + # polar projection, which involves cycle, and also has limits in + # its coordinates, needs a special method to find the extremes + # (min, max of the coordinate within the view). + extreme_finder = angle_helper.ExtremeFinderCycle(20, 20, + lon_cycle=360, + lat_cycle=None, + lon_minmax=None, + lat_minmax=(0, np.inf)) + + grid_helper = GridHelperCurveLinear( + tr, + extreme_finder=extreme_finder, + grid_locator1=angle_helper.LocatorDMS(12), + tick_formatter1=angle_helper.FormatterDMS(), + tick_formatter2=FuncFormatter(lambda x, p: "eight" if x == 8 else f"{int(x)}"), + ) + + ax1 = SubplotHost(fig, 1, 1, 1, grid_helper=grid_helper) + + ax1.axis["right"].major_ticklabels.set_visible(True) + ax1.axis["top"].major_ticklabels.set_visible(True) + + # let right axis shows ticklabels for 1st coordinate (angle) + ax1.axis["right"].get_helper().nth_coord_ticks = 0 + # let bottom axis shows ticklabels for 2nd coordinate (radius) + ax1.axis["bottom"].get_helper().nth_coord_ticks = 1 + + fig.add_subplot(ax1) + + ax1.axis["lat"] = axis = grid_helper.new_floating_axis(0, 45, axes=ax1) + axis.label.set_text("Test") + axis.label.set_visible(True) + axis.get_helper().set_extremes(2, 12) + + ax1.axis["lon"] = axis = grid_helper.new_floating_axis(1, 6, axes=ax1) + axis.label.set_text("Test 2") + axis.get_helper().set_extremes(-180, 90) + + # A parasite axes with given transform + ax2 = ax1.get_aux_axes(tr, viewlim_mode="equal") + assert ax2.transData == tr + ax1.transData + # Anything you draw in ax2 will match the ticks and grids of ax1. + ax2.plot(np.linspace(0, 30, 50), np.linspace(10, 10, 50)) + + ax1.set_aspect(1.) + ax1.set_xlim(-5, 12) + ax1.set_ylim(-5, 10) + + ax1.grid(True) + + +# Remove tol & kerning_factor when this test image is regenerated. +@image_comparison(['axis_direction.png'], style='default', tol=0.13) +def test_axis_direction(): + plt.rcParams['text.kerning_factor'] = 6 + + fig = plt.figure(figsize=(5, 5)) + + # PolarAxes.PolarTransform takes radian. However, we want our coordinate + # system in degree + tr = (Affine2D().scale(np.pi / 180., 1.) + + PolarAxes.PolarTransform(apply_theta_transforms=False)) + + # polar projection, which involves cycle, and also has limits in + # its coordinates, needs a special method to find the extremes + # (min, max of the coordinate within the view). + + # 20, 20 : number of sampling points along x, y direction + extreme_finder = angle_helper.ExtremeFinderCycle(20, 20, + lon_cycle=360, + lat_cycle=None, + lon_minmax=None, + lat_minmax=(0, np.inf), + ) + + grid_locator1 = angle_helper.LocatorDMS(12) + tick_formatter1 = angle_helper.FormatterDMS() + + grid_helper = GridHelperCurveLinear(tr, + extreme_finder=extreme_finder, + grid_locator1=grid_locator1, + tick_formatter1=tick_formatter1) + + ax1 = SubplotHost(fig, 1, 1, 1, grid_helper=grid_helper) + + for axis in ax1.axis.values(): + axis.set_visible(False) + + fig.add_subplot(ax1) + + ax1.axis["lat1"] = axis = grid_helper.new_floating_axis( + 0, 130, + axes=ax1, axis_direction="left") + axis.label.set_text("Test") + axis.label.set_visible(True) + axis.get_helper().set_extremes(0.001, 10) + + ax1.axis["lat2"] = axis = grid_helper.new_floating_axis( + 0, 50, + axes=ax1, axis_direction="right") + axis.label.set_text("Test") + axis.label.set_visible(True) + axis.get_helper().set_extremes(0.001, 10) + + ax1.axis["lon"] = axis = grid_helper.new_floating_axis( + 1, 10, + axes=ax1, axis_direction="bottom") + axis.label.set_text("Test 2") + axis.get_helper().set_extremes(50, 130) + axis.major_ticklabels.set_axis_direction("top") + axis.label.set_axis_direction("top") + + grid_helper.grid_finder.grid_locator1.set_params(nbins=5) + grid_helper.grid_finder.grid_locator2.set_params(nbins=5) + + ax1.set_aspect(1.) + ax1.set_xlim(-8, 8) + ax1.set_ylim(-4, 12) + + ax1.grid(True) diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/__init__.py b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/__init__.py new file mode 100644 index 0000000..a089fbd --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/__init__.py @@ -0,0 +1,3 @@ +from .axes3d import Axes3D + +__all__ = ['Axes3D'] diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/art3d.py b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/art3d.py new file mode 100644 index 0000000..deb0ca3 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/art3d.py @@ -0,0 +1,1427 @@ +# art3d.py, original mplot3d version by John Porter +# Parts rewritten by Reinier Heeres +# Minor additions by Ben Axelrod + +""" +Module containing 3D artist code and functions to convert 2D +artists into 3D versions which can be added to an Axes3D. +""" + +import math + +import numpy as np + +from contextlib import contextmanager + +from matplotlib import ( + _api, artist, cbook, colors as mcolors, lines, text as mtext, + path as mpath) +from matplotlib.collections import ( + Collection, LineCollection, PolyCollection, PatchCollection, PathCollection) +from matplotlib.colors import Normalize +from matplotlib.patches import Patch +from . import proj3d + + +def _norm_angle(a): + """Return the given angle normalized to -180 < *a* <= 180 degrees.""" + a = (a + 360) % 360 + if a > 180: + a = a - 360 + return a + + +def _norm_text_angle(a): + """Return the given angle normalized to -90 < *a* <= 90 degrees.""" + a = (a + 180) % 180 + if a > 90: + a = a - 180 + return a + + +def get_dir_vector(zdir): + """ + Return a direction vector. + + Parameters + ---------- + zdir : {'x', 'y', 'z', None, 3-tuple} + The direction. Possible values are: + + - 'x': equivalent to (1, 0, 0) + - 'y': equivalent to (0, 1, 0) + - 'z': equivalent to (0, 0, 1) + - *None*: equivalent to (0, 0, 0) + - an iterable (x, y, z) is converted to an array + + Returns + ------- + x, y, z : array + The direction vector. + """ + if zdir == 'x': + return np.array((1, 0, 0)) + elif zdir == 'y': + return np.array((0, 1, 0)) + elif zdir == 'z': + return np.array((0, 0, 1)) + elif zdir is None: + return np.array((0, 0, 0)) + elif np.iterable(zdir) and len(zdir) == 3: + return np.array(zdir) + else: + raise ValueError("'x', 'y', 'z', None or vector of length 3 expected") + + +def _viewlim_mask(xs, ys, zs, axes): + """ + Return original points with points outside the axes view limits masked. + + Parameters + ---------- + xs, ys, zs : array-like + The points to mask. + axes : Axes3D + The axes to use for the view limits. + + Returns + ------- + xs_masked, ys_masked, zs_masked : np.ma.array + The masked points. + """ + mask = np.logical_or.reduce((xs < axes.xy_viewLim.xmin, + xs > axes.xy_viewLim.xmax, + ys < axes.xy_viewLim.ymin, + ys > axes.xy_viewLim.ymax, + zs < axes.zz_viewLim.xmin, + zs > axes.zz_viewLim.xmax)) + xs_masked = np.ma.array(xs, mask=mask) + ys_masked = np.ma.array(ys, mask=mask) + zs_masked = np.ma.array(zs, mask=mask) + return xs_masked, ys_masked, zs_masked + + +class Text3D(mtext.Text): + """ + Text object with 3D position and direction. + + Parameters + ---------- + x, y, z : float + The position of the text. + text : str + The text string to display. + zdir : {'x', 'y', 'z', None, 3-tuple} + The direction of the text. See `.get_dir_vector` for a description of + the values. + axlim_clip : bool, default: False + Whether to hide text outside the axes view limits. + + Other Parameters + ---------------- + **kwargs + All other parameters are passed on to `~matplotlib.text.Text`. + """ + + def __init__(self, x=0, y=0, z=0, text='', zdir='z', axlim_clip=False, + **kwargs): + mtext.Text.__init__(self, x, y, text, **kwargs) + self.set_3d_properties(z, zdir, axlim_clip) + + def get_position_3d(self): + """Return the (x, y, z) position of the text.""" + return self._x, self._y, self._z + + def set_position_3d(self, xyz, zdir=None): + """ + Set the (*x*, *y*, *z*) position of the text. + + Parameters + ---------- + xyz : (float, float, float) + The position in 3D space. + zdir : {'x', 'y', 'z', None, 3-tuple} + The direction of the text. If unspecified, the *zdir* will not be + changed. See `.get_dir_vector` for a description of the values. + """ + super().set_position(xyz[:2]) + self.set_z(xyz[2]) + if zdir is not None: + self._dir_vec = get_dir_vector(zdir) + + def set_z(self, z): + """ + Set the *z* position of the text. + + Parameters + ---------- + z : float + """ + self._z = z + self.stale = True + + def set_3d_properties(self, z=0, zdir='z', axlim_clip=False): + """ + Set the *z* position and direction of the text. + + Parameters + ---------- + z : float + The z-position in 3D space. + zdir : {'x', 'y', 'z', 3-tuple} + The direction of the text. Default: 'z'. + See `.get_dir_vector` for a description of the values. + axlim_clip : bool, default: False + Whether to hide text outside the axes view limits. + """ + self._z = z + self._dir_vec = get_dir_vector(zdir) + self._axlim_clip = axlim_clip + self.stale = True + + @artist.allow_rasterization + def draw(self, renderer): + if self._axlim_clip: + xs, ys, zs = _viewlim_mask(self._x, self._y, self._z, self.axes) + position3d = np.ma.row_stack((xs, ys, zs)).ravel().filled(np.nan) + else: + xs, ys, zs = self._x, self._y, self._z + position3d = np.asanyarray([xs, ys, zs]) + + proj = proj3d._proj_trans_points( + [position3d, position3d + self._dir_vec], self.axes.M) + dx = proj[0][1] - proj[0][0] + dy = proj[1][1] - proj[1][0] + angle = math.degrees(math.atan2(dy, dx)) + with cbook._setattr_cm(self, _x=proj[0][0], _y=proj[1][0], + _rotation=_norm_text_angle(angle)): + mtext.Text.draw(self, renderer) + self.stale = False + + def get_tightbbox(self, renderer=None): + # Overwriting the 2d Text behavior which is not valid for 3d. + # For now, just return None to exclude from layout calculation. + return None + + +def text_2d_to_3d(obj, z=0, zdir='z', axlim_clip=False): + """ + Convert a `.Text` to a `.Text3D` object. + + Parameters + ---------- + z : float + The z-position in 3D space. + zdir : {'x', 'y', 'z', 3-tuple} + The direction of the text. Default: 'z'. + See `.get_dir_vector` for a description of the values. + axlim_clip : bool, default: False + Whether to hide text outside the axes view limits. + """ + obj.__class__ = Text3D + obj.set_3d_properties(z, zdir, axlim_clip) + + +class Line3D(lines.Line2D): + """ + 3D line object. + + .. note:: Use `get_data_3d` to obtain the data associated with the line. + `~.Line2D.get_data`, `~.Line2D.get_xdata`, and `~.Line2D.get_ydata` return + the x- and y-coordinates of the projected 2D-line, not the x- and y-data of + the 3D-line. Similarly, use `set_data_3d` to set the data, not + `~.Line2D.set_data`, `~.Line2D.set_xdata`, and `~.Line2D.set_ydata`. + """ + + def __init__(self, xs, ys, zs, *args, axlim_clip=False, **kwargs): + """ + + Parameters + ---------- + xs : array-like + The x-data to be plotted. + ys : array-like + The y-data to be plotted. + zs : array-like + The z-data to be plotted. + *args, **kwargs + Additional arguments are passed to `~matplotlib.lines.Line2D`. + """ + super().__init__([], [], *args, **kwargs) + self.set_data_3d(xs, ys, zs) + self._axlim_clip = axlim_clip + + def set_3d_properties(self, zs=0, zdir='z', axlim_clip=False): + """ + Set the *z* position and direction of the line. + + Parameters + ---------- + zs : float or array of floats + The location along the *zdir* axis in 3D space to position the + line. + zdir : {'x', 'y', 'z'} + Plane to plot line orthogonal to. Default: 'z'. + See `.get_dir_vector` for a description of the values. + axlim_clip : bool, default: False + Whether to hide lines with an endpoint outside the axes view limits. + """ + xs = self.get_xdata() + ys = self.get_ydata() + zs = cbook._to_unmasked_float_array(zs).ravel() + zs = np.broadcast_to(zs, len(xs)) + self._verts3d = juggle_axes(xs, ys, zs, zdir) + self._axlim_clip = axlim_clip + self.stale = True + + def set_data_3d(self, *args): + """ + Set the x, y and z data + + Parameters + ---------- + x : array-like + The x-data to be plotted. + y : array-like + The y-data to be plotted. + z : array-like + The z-data to be plotted. + + Notes + ----- + Accepts x, y, z arguments or a single array-like (x, y, z) + """ + if len(args) == 1: + args = args[0] + for name, xyz in zip('xyz', args): + if not np.iterable(xyz): + raise RuntimeError(f'{name} must be a sequence') + self._verts3d = args + self.stale = True + + def get_data_3d(self): + """ + Get the current data + + Returns + ------- + verts3d : length-3 tuple or array-like + The current data as a tuple or array-like. + """ + return self._verts3d + + @artist.allow_rasterization + def draw(self, renderer): + if self._axlim_clip: + xs3d, ys3d, zs3d = _viewlim_mask(*self._verts3d, self.axes) + else: + xs3d, ys3d, zs3d = self._verts3d + xs, ys, zs, tis = proj3d._proj_transform_clip(xs3d, ys3d, zs3d, + self.axes.M, + self.axes._focal_length) + self.set_data(xs, ys) + super().draw(renderer) + self.stale = False + + +def line_2d_to_3d(line, zs=0, zdir='z', axlim_clip=False): + """ + Convert a `.Line2D` to a `.Line3D` object. + + Parameters + ---------- + zs : float + The location along the *zdir* axis in 3D space to position the line. + zdir : {'x', 'y', 'z'} + Plane to plot line orthogonal to. Default: 'z'. + See `.get_dir_vector` for a description of the values. + axlim_clip : bool, default: False + Whether to hide lines with an endpoint outside the axes view limits. + """ + + line.__class__ = Line3D + line.set_3d_properties(zs, zdir, axlim_clip) + + +def _path_to_3d_segment(path, zs=0, zdir='z'): + """Convert a path to a 3D segment.""" + + zs = np.broadcast_to(zs, len(path)) + pathsegs = path.iter_segments(simplify=False, curves=False) + seg = [(x, y, z) for (((x, y), code), z) in zip(pathsegs, zs)] + seg3d = [juggle_axes(x, y, z, zdir) for (x, y, z) in seg] + return seg3d + + +def _paths_to_3d_segments(paths, zs=0, zdir='z'): + """Convert paths from a collection object to 3D segments.""" + + if not np.iterable(zs): + zs = np.broadcast_to(zs, len(paths)) + else: + if len(zs) != len(paths): + raise ValueError('Number of z-coordinates does not match paths.') + + segs = [_path_to_3d_segment(path, pathz, zdir) + for path, pathz in zip(paths, zs)] + return segs + + +def _path_to_3d_segment_with_codes(path, zs=0, zdir='z'): + """Convert a path to a 3D segment with path codes.""" + + zs = np.broadcast_to(zs, len(path)) + pathsegs = path.iter_segments(simplify=False, curves=False) + seg_codes = [((x, y, z), code) for ((x, y), code), z in zip(pathsegs, zs)] + if seg_codes: + seg, codes = zip(*seg_codes) + seg3d = [juggle_axes(x, y, z, zdir) for (x, y, z) in seg] + else: + seg3d = [] + codes = [] + return seg3d, list(codes) + + +def _paths_to_3d_segments_with_codes(paths, zs=0, zdir='z'): + """ + Convert paths from a collection object to 3D segments with path codes. + """ + + zs = np.broadcast_to(zs, len(paths)) + segments_codes = [_path_to_3d_segment_with_codes(path, pathz, zdir) + for path, pathz in zip(paths, zs)] + if segments_codes: + segments, codes = zip(*segments_codes) + else: + segments, codes = [], [] + return list(segments), list(codes) + + +class Collection3D(Collection): + """A collection of 3D paths.""" + + def do_3d_projection(self): + """Project the points according to renderer matrix.""" + vs_list = [vs for vs, _ in self._3dverts_codes] + if self._axlim_clip: + vs_list = [np.ma.row_stack(_viewlim_mask(*vs.T, self.axes)).T + for vs in vs_list] + xyzs_list = [proj3d.proj_transform(*vs.T, self.axes.M) for vs in vs_list] + self._paths = [mpath.Path(np.ma.column_stack([xs, ys]), cs) + for (xs, ys, _), (_, cs) in zip(xyzs_list, self._3dverts_codes)] + zs = np.concatenate([zs for _, _, zs in xyzs_list]) + return zs.min() if len(zs) else 1e9 + + +def collection_2d_to_3d(col, zs=0, zdir='z', axlim_clip=False): + """Convert a `.Collection` to a `.Collection3D` object.""" + zs = np.broadcast_to(zs, len(col.get_paths())) + col._3dverts_codes = [ + (np.column_stack(juggle_axes( + *np.column_stack([p.vertices, np.broadcast_to(z, len(p.vertices))]).T, + zdir)), + p.codes) + for p, z in zip(col.get_paths(), zs)] + col.__class__ = cbook._make_class_factory(Collection3D, "{}3D")(type(col)) + col._axlim_clip = axlim_clip + + +class Line3DCollection(LineCollection): + """ + A collection of 3D lines. + """ + def __init__(self, lines, axlim_clip=False, **kwargs): + super().__init__(lines, **kwargs) + self._axlim_clip = axlim_clip + + def set_sort_zpos(self, val): + """Set the position to use for z-sorting.""" + self._sort_zpos = val + self.stale = True + + def set_segments(self, segments): + """ + Set 3D segments. + """ + self._segments3d = segments + super().set_segments([]) + + def do_3d_projection(self): + """ + Project the points according to renderer matrix. + """ + segments = self._segments3d + if self._axlim_clip: + all_points = np.ma.vstack(segments) + masked_points = np.ma.column_stack([*_viewlim_mask(*all_points.T, + self.axes)]) + segment_lengths = [np.shape(segment)[0] for segment in segments] + segments = np.split(masked_points, np.cumsum(segment_lengths[:-1])) + xyslist = [proj3d._proj_trans_points(points, self.axes.M) + for points in segments] + segments_2d = [np.ma.column_stack([xs, ys]) for xs, ys, zs in xyslist] + LineCollection.set_segments(self, segments_2d) + + # FIXME + minz = 1e9 + for xs, ys, zs in xyslist: + minz = min(minz, min(zs)) + return minz + + +def line_collection_2d_to_3d(col, zs=0, zdir='z', axlim_clip=False): + """Convert a `.LineCollection` to a `.Line3DCollection` object.""" + segments3d = _paths_to_3d_segments(col.get_paths(), zs, zdir) + col.__class__ = Line3DCollection + col.set_segments(segments3d) + col._axlim_clip = axlim_clip + + +class Patch3D(Patch): + """ + 3D patch object. + """ + + def __init__(self, *args, zs=(), zdir='z', axlim_clip=False, **kwargs): + """ + Parameters + ---------- + verts : + zs : float + The location along the *zdir* axis in 3D space to position the + patch. + zdir : {'x', 'y', 'z'} + Plane to plot patch orthogonal to. Default: 'z'. + See `.get_dir_vector` for a description of the values. + axlim_clip : bool, default: False + Whether to hide patches with a vertex outside the axes view limits. + """ + super().__init__(*args, **kwargs) + self.set_3d_properties(zs, zdir, axlim_clip) + + def set_3d_properties(self, verts, zs=0, zdir='z', axlim_clip=False): + """ + Set the *z* position and direction of the patch. + + Parameters + ---------- + verts : + zs : float + The location along the *zdir* axis in 3D space to position the + patch. + zdir : {'x', 'y', 'z'} + Plane to plot patch orthogonal to. Default: 'z'. + See `.get_dir_vector` for a description of the values. + axlim_clip : bool, default: False + Whether to hide patches with a vertex outside the axes view limits. + """ + zs = np.broadcast_to(zs, len(verts)) + self._segment3d = [juggle_axes(x, y, z, zdir) + for ((x, y), z) in zip(verts, zs)] + self._axlim_clip = axlim_clip + + def get_path(self): + # docstring inherited + # self._path2d is not initialized until do_3d_projection + if not hasattr(self, '_path2d'): + self.axes.M = self.axes.get_proj() + self.do_3d_projection() + return self._path2d + + def do_3d_projection(self): + s = self._segment3d + if self._axlim_clip: + xs, ys, zs = _viewlim_mask(*zip(*s), self.axes) + else: + xs, ys, zs = zip(*s) + vxs, vys, vzs, vis = proj3d._proj_transform_clip(xs, ys, zs, + self.axes.M, + self.axes._focal_length) + self._path2d = mpath.Path(np.ma.column_stack([vxs, vys])) + return min(vzs) + + +class PathPatch3D(Patch3D): + """ + 3D PathPatch object. + """ + + def __init__(self, path, *, zs=(), zdir='z', axlim_clip=False, **kwargs): + """ + Parameters + ---------- + path : + zs : float + The location along the *zdir* axis in 3D space to position the + path patch. + zdir : {'x', 'y', 'z', 3-tuple} + Plane to plot path patch orthogonal to. Default: 'z'. + See `.get_dir_vector` for a description of the values. + axlim_clip : bool, default: False + Whether to hide path patches with a point outside the axes view limits. + """ + # Not super().__init__! + Patch.__init__(self, **kwargs) + self.set_3d_properties(path, zs, zdir, axlim_clip) + + def set_3d_properties(self, path, zs=0, zdir='z', axlim_clip=False): + """ + Set the *z* position and direction of the path patch. + + Parameters + ---------- + path : + zs : float + The location along the *zdir* axis in 3D space to position the + path patch. + zdir : {'x', 'y', 'z', 3-tuple} + Plane to plot path patch orthogonal to. Default: 'z'. + See `.get_dir_vector` for a description of the values. + axlim_clip : bool, default: False + Whether to hide path patches with a point outside the axes view limits. + """ + Patch3D.set_3d_properties(self, path.vertices, zs=zs, zdir=zdir, + axlim_clip=axlim_clip) + self._code3d = path.codes + + def do_3d_projection(self): + s = self._segment3d + if self._axlim_clip: + xs, ys, zs = _viewlim_mask(*zip(*s), self.axes) + else: + xs, ys, zs = zip(*s) + vxs, vys, vzs, vis = proj3d._proj_transform_clip(xs, ys, zs, + self.axes.M, + self.axes._focal_length) + self._path2d = mpath.Path(np.ma.column_stack([vxs, vys]), self._code3d) + return min(vzs) + + +def _get_patch_verts(patch): + """Return a list of vertices for the path of a patch.""" + trans = patch.get_patch_transform() + path = patch.get_path() + polygons = path.to_polygons(trans) + return polygons[0] if len(polygons) else np.array([]) + + +def patch_2d_to_3d(patch, z=0, zdir='z', axlim_clip=False): + """Convert a `.Patch` to a `.Patch3D` object.""" + verts = _get_patch_verts(patch) + patch.__class__ = Patch3D + patch.set_3d_properties(verts, z, zdir, axlim_clip) + + +def pathpatch_2d_to_3d(pathpatch, z=0, zdir='z'): + """Convert a `.PathPatch` to a `.PathPatch3D` object.""" + path = pathpatch.get_path() + trans = pathpatch.get_patch_transform() + + mpath = trans.transform_path(path) + pathpatch.__class__ = PathPatch3D + pathpatch.set_3d_properties(mpath, z, zdir) + + +class Patch3DCollection(PatchCollection): + """ + A collection of 3D patches. + """ + + def __init__(self, *args, + zs=0, zdir='z', depthshade=True, axlim_clip=False, **kwargs): + """ + Create a collection of flat 3D patches with its normal vector + pointed in *zdir* direction, and located at *zs* on the *zdir* + axis. 'zs' can be a scalar or an array-like of the same length as + the number of patches in the collection. + + Constructor arguments are the same as for + :class:`~matplotlib.collections.PatchCollection`. In addition, + keywords *zs=0* and *zdir='z'* are available. + + Also, the keyword argument *depthshade* is available to indicate + whether to shade the patches in order to give the appearance of depth + (default is *True*). This is typically desired in scatter plots. + """ + self._depthshade = depthshade + super().__init__(*args, **kwargs) + self.set_3d_properties(zs, zdir, axlim_clip) + + def get_depthshade(self): + return self._depthshade + + def set_depthshade(self, depthshade): + """ + Set whether depth shading is performed on collection members. + + Parameters + ---------- + depthshade : bool + Whether to shade the patches in order to give the appearance of + depth. + """ + self._depthshade = depthshade + self.stale = True + + def set_sort_zpos(self, val): + """Set the position to use for z-sorting.""" + self._sort_zpos = val + self.stale = True + + def set_3d_properties(self, zs, zdir, axlim_clip=False): + """ + Set the *z* positions and direction of the patches. + + Parameters + ---------- + zs : float or array of floats + The location or locations to place the patches in the collection + along the *zdir* axis. + zdir : {'x', 'y', 'z'} + Plane to plot patches orthogonal to. + All patches must have the same direction. + See `.get_dir_vector` for a description of the values. + axlim_clip : bool, default: False + Whether to hide patches with a vertex outside the axes view limits. + """ + # Force the collection to initialize the face and edgecolors + # just in case it is a scalarmappable with a colormap. + self.update_scalarmappable() + offsets = self.get_offsets() + if len(offsets) > 0: + xs, ys = offsets.T + else: + xs = [] + ys = [] + self._offsets3d = juggle_axes(xs, ys, np.atleast_1d(zs), zdir) + self._z_markers_idx = slice(-1) + self._vzs = None + self._axlim_clip = axlim_clip + self.stale = True + + def do_3d_projection(self): + if self._axlim_clip: + xs, ys, zs = _viewlim_mask(*self._offsets3d, self.axes) + else: + xs, ys, zs = self._offsets3d + vxs, vys, vzs, vis = proj3d._proj_transform_clip(xs, ys, zs, + self.axes.M, + self.axes._focal_length) + self._vzs = vzs + super().set_offsets(np.ma.column_stack([vxs, vys])) + + if vzs.size > 0: + return min(vzs) + else: + return np.nan + + def _maybe_depth_shade_and_sort_colors(self, color_array): + color_array = ( + _zalpha(color_array, self._vzs) + if self._vzs is not None and self._depthshade + else color_array + ) + if len(color_array) > 1: + color_array = color_array[self._z_markers_idx] + return mcolors.to_rgba_array(color_array, self._alpha) + + def get_facecolor(self): + return self._maybe_depth_shade_and_sort_colors(super().get_facecolor()) + + def get_edgecolor(self): + # We need this check here to make sure we do not double-apply the depth + # based alpha shading when the edge color is "face" which means the + # edge colour should be identical to the face colour. + if cbook._str_equal(self._edgecolors, 'face'): + return self.get_facecolor() + return self._maybe_depth_shade_and_sort_colors(super().get_edgecolor()) + + +class Path3DCollection(PathCollection): + """ + A collection of 3D paths. + """ + + def __init__(self, *args, + zs=0, zdir='z', depthshade=True, axlim_clip=False, **kwargs): + """ + Create a collection of flat 3D paths with its normal vector + pointed in *zdir* direction, and located at *zs* on the *zdir* + axis. 'zs' can be a scalar or an array-like of the same length as + the number of paths in the collection. + + Constructor arguments are the same as for + :class:`~matplotlib.collections.PathCollection`. In addition, + keywords *zs=0* and *zdir='z'* are available. + + Also, the keyword argument *depthshade* is available to indicate + whether to shade the patches in order to give the appearance of depth + (default is *True*). This is typically desired in scatter plots. + """ + self._depthshade = depthshade + self._in_draw = False + super().__init__(*args, **kwargs) + self.set_3d_properties(zs, zdir, axlim_clip) + self._offset_zordered = None + + def draw(self, renderer): + with self._use_zordered_offset(): + with cbook._setattr_cm(self, _in_draw=True): + super().draw(renderer) + + def set_sort_zpos(self, val): + """Set the position to use for z-sorting.""" + self._sort_zpos = val + self.stale = True + + def set_3d_properties(self, zs, zdir, axlim_clip=False): + """ + Set the *z* positions and direction of the paths. + + Parameters + ---------- + zs : float or array of floats + The location or locations to place the paths in the collection + along the *zdir* axis. + zdir : {'x', 'y', 'z'} + Plane to plot paths orthogonal to. + All paths must have the same direction. + See `.get_dir_vector` for a description of the values. + axlim_clip : bool, default: False + Whether to hide paths with a vertex outside the axes view limits. + """ + # Force the collection to initialize the face and edgecolors + # just in case it is a scalarmappable with a colormap. + self.update_scalarmappable() + offsets = self.get_offsets() + if len(offsets) > 0: + xs, ys = offsets.T + else: + xs = [] + ys = [] + self._zdir = zdir + self._offsets3d = juggle_axes(xs, ys, np.atleast_1d(zs), zdir) + # In the base draw methods we access the attributes directly which + # means we cannot resolve the shuffling in the getter methods like + # we do for the edge and face colors. + # + # This means we need to carry around a cache of the unsorted sizes and + # widths (postfixed with 3d) and in `do_3d_projection` set the + # depth-sorted version of that data into the private state used by the + # base collection class in its draw method. + # + # Grab the current sizes and linewidths to preserve them. + self._sizes3d = self._sizes + self._linewidths3d = np.array(self._linewidths) + xs, ys, zs = self._offsets3d + + # Sort the points based on z coordinates + # Performance optimization: Create a sorted index array and reorder + # points and point properties according to the index array + self._z_markers_idx = slice(-1) + self._vzs = None + + self._axlim_clip = axlim_clip + self.stale = True + + def set_sizes(self, sizes, dpi=72.0): + super().set_sizes(sizes, dpi) + if not self._in_draw: + self._sizes3d = sizes + + def set_linewidth(self, lw): + super().set_linewidth(lw) + if not self._in_draw: + self._linewidths3d = np.array(self._linewidths) + + def get_depthshade(self): + return self._depthshade + + def set_depthshade(self, depthshade): + """ + Set whether depth shading is performed on collection members. + + Parameters + ---------- + depthshade : bool + Whether to shade the patches in order to give the appearance of + depth. + """ + self._depthshade = depthshade + self.stale = True + + def do_3d_projection(self): + if self._axlim_clip: + xs, ys, zs = _viewlim_mask(*self._offsets3d, self.axes) + else: + xs, ys, zs = self._offsets3d + vxs, vys, vzs, vis = proj3d._proj_transform_clip(xs, ys, zs, + self.axes.M, + self.axes._focal_length) + # Sort the points based on z coordinates + # Performance optimization: Create a sorted index array and reorder + # points and point properties according to the index array + z_markers_idx = self._z_markers_idx = np.ma.argsort(vzs)[::-1] + self._vzs = vzs + + # we have to special case the sizes because of code in collections.py + # as the draw method does + # self.set_sizes(self._sizes, self.figure.dpi) + # so we cannot rely on doing the sorting on the way out via get_* + + if len(self._sizes3d) > 1: + self._sizes = self._sizes3d[z_markers_idx] + + if len(self._linewidths3d) > 1: + self._linewidths = self._linewidths3d[z_markers_idx] + + PathCollection.set_offsets(self, np.ma.column_stack((vxs, vys))) + + # Re-order items + vzs = vzs[z_markers_idx] + vxs = vxs[z_markers_idx] + vys = vys[z_markers_idx] + + # Store ordered offset for drawing purpose + self._offset_zordered = np.ma.column_stack((vxs, vys)) + + return np.min(vzs) if vzs.size else np.nan + + @contextmanager + def _use_zordered_offset(self): + if self._offset_zordered is None: + # Do nothing + yield + else: + # Swap offset with z-ordered offset + old_offset = self._offsets + super().set_offsets(self._offset_zordered) + try: + yield + finally: + self._offsets = old_offset + + def _maybe_depth_shade_and_sort_colors(self, color_array): + color_array = ( + _zalpha(color_array, self._vzs) + if self._vzs is not None and self._depthshade + else color_array + ) + if len(color_array) > 1: + color_array = color_array[self._z_markers_idx] + return mcolors.to_rgba_array(color_array, self._alpha) + + def get_facecolor(self): + return self._maybe_depth_shade_and_sort_colors(super().get_facecolor()) + + def get_edgecolor(self): + # We need this check here to make sure we do not double-apply the depth + # based alpha shading when the edge color is "face" which means the + # edge colour should be identical to the face colour. + if cbook._str_equal(self._edgecolors, 'face'): + return self.get_facecolor() + return self._maybe_depth_shade_and_sort_colors(super().get_edgecolor()) + + +def patch_collection_2d_to_3d(col, zs=0, zdir='z', depthshade=True, axlim_clip=False): + """ + Convert a `.PatchCollection` into a `.Patch3DCollection` object + (or a `.PathCollection` into a `.Path3DCollection` object). + + Parameters + ---------- + col : `~matplotlib.collections.PatchCollection` or \ +`~matplotlib.collections.PathCollection` + The collection to convert. + zs : float or array of floats + The location or locations to place the patches in the collection along + the *zdir* axis. Default: 0. + zdir : {'x', 'y', 'z'} + The axis in which to place the patches. Default: "z". + See `.get_dir_vector` for a description of the values. + depthshade : bool, default: True + Whether to shade the patches to give a sense of depth. + axlim_clip : bool, default: False + Whether to hide patches with a vertex outside the axes view limits. + """ + if isinstance(col, PathCollection): + col.__class__ = Path3DCollection + col._offset_zordered = None + elif isinstance(col, PatchCollection): + col.__class__ = Patch3DCollection + col._depthshade = depthshade + col._in_draw = False + col.set_3d_properties(zs, zdir, axlim_clip) + + +class Poly3DCollection(PolyCollection): + """ + A collection of 3D polygons. + + .. note:: + **Filling of 3D polygons** + + There is no simple definition of the enclosed surface of a 3D polygon + unless the polygon is planar. + + In practice, Matplotlib fills the 2D projection of the polygon. This + gives a correct filling appearance only for planar polygons. For all + other polygons, you'll find orientations in which the edges of the + polygon intersect in the projection. This will lead to an incorrect + visualization of the 3D area. + + If you need filled areas, it is recommended to create them via + `~mpl_toolkits.mplot3d.axes3d.Axes3D.plot_trisurf`, which creates a + triangulation and thus generates consistent surfaces. + """ + + def __init__(self, verts, *args, zsort='average', shade=False, + lightsource=None, axlim_clip=False, **kwargs): + """ + Parameters + ---------- + verts : list of (N, 3) array-like + The sequence of polygons [*verts0*, *verts1*, ...] where each + element *verts_i* defines the vertices of polygon *i* as a 2D + array-like of shape (N, 3). + zsort : {'average', 'min', 'max'}, default: 'average' + The calculation method for the z-order. + See `~.Poly3DCollection.set_zsort` for details. + shade : bool, default: False + Whether to shade *facecolors* and *edgecolors*. When activating + *shade*, *facecolors* and/or *edgecolors* must be provided. + + .. versionadded:: 3.7 + + lightsource : `~matplotlib.colors.LightSource`, optional + The lightsource to use when *shade* is True. + + .. versionadded:: 3.7 + + axlim_clip : bool, default: False + Whether to hide polygons with a vertex outside the view limits. + + *args, **kwargs + All other parameters are forwarded to `.PolyCollection`. + + Notes + ----- + Note that this class does a bit of magic with the _facecolors + and _edgecolors properties. + """ + if shade: + normals = _generate_normals(verts) + facecolors = kwargs.get('facecolors', None) + if facecolors is not None: + kwargs['facecolors'] = _shade_colors( + facecolors, normals, lightsource + ) + + edgecolors = kwargs.get('edgecolors', None) + if edgecolors is not None: + kwargs['edgecolors'] = _shade_colors( + edgecolors, normals, lightsource + ) + if facecolors is None and edgecolors is None: + raise ValueError( + "You must provide facecolors, edgecolors, or both for " + "shade to work.") + super().__init__(verts, *args, **kwargs) + if isinstance(verts, np.ndarray): + if verts.ndim != 3: + raise ValueError('verts must be a list of (N, 3) array-like') + else: + if any(len(np.shape(vert)) != 2 for vert in verts): + raise ValueError('verts must be a list of (N, 3) array-like') + self.set_zsort(zsort) + self._codes3d = None + self._axlim_clip = axlim_clip + + _zsort_functions = { + 'average': np.average, + 'min': np.min, + 'max': np.max, + } + + def set_zsort(self, zsort): + """ + Set the calculation method for the z-order. + + Parameters + ---------- + zsort : {'average', 'min', 'max'} + The function applied on the z-coordinates of the vertices in the + viewer's coordinate system, to determine the z-order. + """ + self._zsortfunc = self._zsort_functions[zsort] + self._sort_zpos = None + self.stale = True + + @_api.deprecated("3.10") + def get_vector(self, segments3d): + return self._get_vector(segments3d) + + def _get_vector(self, segments3d): + """Optimize points for projection.""" + if len(segments3d): + xs, ys, zs = np.vstack(segments3d).T + else: # vstack can't stack zero arrays. + xs, ys, zs = [], [], [] + ones = np.ones(len(xs)) + self._vec = np.array([xs, ys, zs, ones]) + + indices = [0, *np.cumsum([len(segment) for segment in segments3d])] + self._segslices = [*map(slice, indices[:-1], indices[1:])] + + def set_verts(self, verts, closed=True): + """ + Set 3D vertices. + + Parameters + ---------- + verts : list of (N, 3) array-like + The sequence of polygons [*verts0*, *verts1*, ...] where each + element *verts_i* defines the vertices of polygon *i* as a 2D + array-like of shape (N, 3). + closed : bool, default: True + Whether the polygon should be closed by adding a CLOSEPOLY + connection at the end. + """ + self._get_vector(verts) + # 2D verts will be updated at draw time + super().set_verts([], False) + self._closed = closed + + def set_verts_and_codes(self, verts, codes): + """Set 3D vertices with path codes.""" + # set vertices with closed=False to prevent PolyCollection from + # setting path codes + self.set_verts(verts, closed=False) + # and set our own codes instead. + self._codes3d = codes + + def set_3d_properties(self, axlim_clip=False): + # Force the collection to initialize the face and edgecolors + # just in case it is a scalarmappable with a colormap. + self.update_scalarmappable() + self._sort_zpos = None + self.set_zsort('average') + self._facecolor3d = PolyCollection.get_facecolor(self) + self._edgecolor3d = PolyCollection.get_edgecolor(self) + self._alpha3d = PolyCollection.get_alpha(self) + self.stale = True + + def set_sort_zpos(self, val): + """Set the position to use for z-sorting.""" + self._sort_zpos = val + self.stale = True + + def do_3d_projection(self): + """ + Perform the 3D projection for this object. + """ + if self._A is not None: + # force update of color mapping because we re-order them + # below. If we do not do this here, the 2D draw will call + # this, but we will never port the color mapped values back + # to the 3D versions. + # + # We hold the 3D versions in a fixed order (the order the user + # passed in) and sort the 2D version by view depth. + self.update_scalarmappable() + if self._face_is_mapped: + self._facecolor3d = self._facecolors + if self._edge_is_mapped: + self._edgecolor3d = self._edgecolors + if self._axlim_clip: + xs, ys, zs = _viewlim_mask(*self._vec[0:3], self.axes) + if self._vec.shape[0] == 4: # Will be 3 (xyz) or 4 (xyzw) + w_masked = np.ma.masked_where(zs.mask, self._vec[3]) + vec = np.ma.array([xs, ys, zs, w_masked]) + else: + vec = np.ma.array([xs, ys, zs]) + else: + vec = self._vec + txs, tys, tzs = proj3d._proj_transform_vec(vec, self.axes.M) + xyzlist = [(txs[sl], tys[sl], tzs[sl]) for sl in self._segslices] + + # This extra fuss is to re-order face / edge colors + cface = self._facecolor3d + cedge = self._edgecolor3d + if len(cface) != len(xyzlist): + cface = cface.repeat(len(xyzlist), axis=0) + if len(cedge) != len(xyzlist): + if len(cedge) == 0: + cedge = cface + else: + cedge = cedge.repeat(len(xyzlist), axis=0) + + if xyzlist: + # sort by depth (furthest drawn first) + z_segments_2d = sorted( + ((self._zsortfunc(zs.data), np.ma.column_stack([xs, ys]), fc, ec, idx) + for idx, ((xs, ys, zs), fc, ec) + in enumerate(zip(xyzlist, cface, cedge))), + key=lambda x: x[0], reverse=True) + + _, segments_2d, self._facecolors2d, self._edgecolors2d, idxs = \ + zip(*z_segments_2d) + else: + segments_2d = [] + self._facecolors2d = np.empty((0, 4)) + self._edgecolors2d = np.empty((0, 4)) + idxs = [] + + if self._codes3d is not None: + codes = [self._codes3d[idx] for idx in idxs] + PolyCollection.set_verts_and_codes(self, segments_2d, codes) + else: + PolyCollection.set_verts(self, segments_2d, self._closed) + + if len(self._edgecolor3d) != len(cface): + self._edgecolors2d = self._edgecolor3d + + # Return zorder value + if self._sort_zpos is not None: + zvec = np.array([[0], [0], [self._sort_zpos], [1]]) + ztrans = proj3d._proj_transform_vec(zvec, self.axes.M) + return ztrans[2][0] + elif tzs.size > 0: + # FIXME: Some results still don't look quite right. + # In particular, examine contourf3d_demo2.py + # with az = -54 and elev = -45. + return np.min(tzs) + else: + return np.nan + + def set_facecolor(self, colors): + # docstring inherited + super().set_facecolor(colors) + self._facecolor3d = PolyCollection.get_facecolor(self) + + def set_edgecolor(self, colors): + # docstring inherited + super().set_edgecolor(colors) + self._edgecolor3d = PolyCollection.get_edgecolor(self) + + def set_alpha(self, alpha): + # docstring inherited + artist.Artist.set_alpha(self, alpha) + try: + self._facecolor3d = mcolors.to_rgba_array( + self._facecolor3d, self._alpha) + except (AttributeError, TypeError, IndexError): + pass + try: + self._edgecolors = mcolors.to_rgba_array( + self._edgecolor3d, self._alpha) + except (AttributeError, TypeError, IndexError): + pass + self.stale = True + + def get_facecolor(self): + # docstring inherited + # self._facecolors2d is not initialized until do_3d_projection + if not hasattr(self, '_facecolors2d'): + self.axes.M = self.axes.get_proj() + self.do_3d_projection() + return np.asarray(self._facecolors2d) + + def get_edgecolor(self): + # docstring inherited + # self._edgecolors2d is not initialized until do_3d_projection + if not hasattr(self, '_edgecolors2d'): + self.axes.M = self.axes.get_proj() + self.do_3d_projection() + return np.asarray(self._edgecolors2d) + + +def poly_collection_2d_to_3d(col, zs=0, zdir='z', axlim_clip=False): + """ + Convert a `.PolyCollection` into a `.Poly3DCollection` object. + + Parameters + ---------- + col : `~matplotlib.collections.PolyCollection` + The collection to convert. + zs : float or array of floats + The location or locations to place the polygons in the collection along + the *zdir* axis. Default: 0. + zdir : {'x', 'y', 'z'} + The axis in which to place the patches. Default: 'z'. + See `.get_dir_vector` for a description of the values. + """ + segments_3d, codes = _paths_to_3d_segments_with_codes( + col.get_paths(), zs, zdir) + col.__class__ = Poly3DCollection + col.set_verts_and_codes(segments_3d, codes) + col.set_3d_properties() + col._axlim_clip = axlim_clip + + +def juggle_axes(xs, ys, zs, zdir): + """ + Reorder coordinates so that 2D *xs*, *ys* can be plotted in the plane + orthogonal to *zdir*. *zdir* is normally 'x', 'y' or 'z'. However, if + *zdir* starts with a '-' it is interpreted as a compensation for + `rotate_axes`. + """ + if zdir == 'x': + return zs, xs, ys + elif zdir == 'y': + return xs, zs, ys + elif zdir[0] == '-': + return rotate_axes(xs, ys, zs, zdir) + else: + return xs, ys, zs + + +def rotate_axes(xs, ys, zs, zdir): + """ + Reorder coordinates so that the axes are rotated with *zdir* along + the original z axis. Prepending the axis with a '-' does the + inverse transform, so *zdir* can be 'x', '-x', 'y', '-y', 'z' or '-z'. + """ + if zdir in ('x', '-y'): + return ys, zs, xs + elif zdir in ('-x', 'y'): + return zs, xs, ys + else: + return xs, ys, zs + + +def _zalpha(colors, zs): + """Modify the alphas of the color list according to depth.""" + # FIXME: This only works well if the points for *zs* are well-spaced + # in all three dimensions. Otherwise, at certain orientations, + # the min and max zs are very close together. + # Should really normalize against the viewing depth. + if len(colors) == 0 or len(zs) == 0: + return np.zeros((0, 4)) + norm = Normalize(min(zs), max(zs)) + sats = 1 - norm(zs) * 0.7 + rgba = np.broadcast_to(mcolors.to_rgba_array(colors), (len(zs), 4)) + return np.column_stack([rgba[:, :3], rgba[:, 3] * sats]) + + +def _all_points_on_plane(xs, ys, zs, atol=1e-8): + """ + Check if all points are on the same plane. Note that NaN values are + ignored. + + Parameters + ---------- + xs, ys, zs : array-like + The x, y, and z coordinates of the points. + atol : float, default: 1e-8 + The tolerance for the equality check. + """ + xs, ys, zs = np.asarray(xs), np.asarray(ys), np.asarray(zs) + points = np.column_stack([xs, ys, zs]) + points = points[~np.isnan(points).any(axis=1)] + # Check for the case where we have less than 3 unique points + points = np.unique(points, axis=0) + if len(points) <= 3: + return True + # Calculate the vectors from the first point to all other points + vs = (points - points[0])[1:] + vs = vs / np.linalg.norm(vs, axis=1)[:, np.newaxis] + # Filter out parallel vectors + vs = np.unique(vs, axis=0) + if len(vs) <= 2: + return True + # Filter out parallel and antiparallel vectors to the first vector + cross_norms = np.linalg.norm(np.cross(vs[0], vs[1:]), axis=1) + zero_cross_norms = np.where(np.isclose(cross_norms, 0, atol=atol))[0] + 1 + vs = np.delete(vs, zero_cross_norms, axis=0) + if len(vs) <= 2: + return True + # Calculate the normal vector from the first three points + n = np.cross(vs[0], vs[1]) + n = n / np.linalg.norm(n) + # If the dot product of the normal vector and all other vectors is zero, + # all points are on the same plane + dots = np.dot(n, vs.transpose()) + return np.allclose(dots, 0, atol=atol) + + +def _generate_normals(polygons): + """ + Compute the normals of a list of polygons, one normal per polygon. + + Normals point towards the viewer for a face with its vertices in + counterclockwise order, following the right hand rule. + + Uses three points equally spaced around the polygon. This method assumes + that the points are in a plane. Otherwise, more than one shade is required, + which is not supported. + + Parameters + ---------- + polygons : list of (M_i, 3) array-like, or (..., M, 3) array-like + A sequence of polygons to compute normals for, which can have + varying numbers of vertices. If the polygons all have the same + number of vertices and array is passed, then the operation will + be vectorized. + + Returns + ------- + normals : (..., 3) array + A normal vector estimated for the polygon. + """ + if isinstance(polygons, np.ndarray): + # optimization: polygons all have the same number of points, so can + # vectorize + n = polygons.shape[-2] + i1, i2, i3 = 0, n//3, 2*n//3 + v1 = polygons[..., i1, :] - polygons[..., i2, :] + v2 = polygons[..., i2, :] - polygons[..., i3, :] + else: + # The subtraction doesn't vectorize because polygons is jagged. + v1 = np.empty((len(polygons), 3)) + v2 = np.empty((len(polygons), 3)) + for poly_i, ps in enumerate(polygons): + n = len(ps) + ps = np.asarray(ps) + i1, i2, i3 = 0, n//3, 2*n//3 + v1[poly_i, :] = ps[i1, :] - ps[i2, :] + v2[poly_i, :] = ps[i2, :] - ps[i3, :] + return np.cross(v1, v2) + + +def _shade_colors(color, normals, lightsource=None): + """ + Shade *color* using normal vectors given by *normals*, + assuming a *lightsource* (using default position if not given). + *color* can also be an array of the same length as *normals*. + """ + if lightsource is None: + # chosen for backwards-compatibility + lightsource = mcolors.LightSource(azdeg=225, altdeg=19.4712) + + with np.errstate(invalid="ignore"): + shade = ((normals / np.linalg.norm(normals, axis=1, keepdims=True)) + @ lightsource.direction) + mask = ~np.isnan(shade) + + if mask.any(): + # convert dot product to allowed shading fractions + in_norm = mcolors.Normalize(-1, 1) + out_norm = mcolors.Normalize(0.3, 1).inverse + + def norm(x): + return out_norm(in_norm(x)) + + shade[~mask] = 0 + + color = mcolors.to_rgba_array(color) + # shape of color should be (M, 4) (where M is number of faces) + # shape of shade should be (M,) + # colors should have final shape of (M, 4) + alpha = color[:, 3] + colors = norm(shade)[:, np.newaxis] * color + colors[:, 3] = alpha + else: + colors = np.asanyarray(color).copy() + + return colors diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/axes3d.py b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/axes3d.py new file mode 100644 index 0000000..d0ba360 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/axes3d.py @@ -0,0 +1,4162 @@ +""" +axes3d.py, original mplot3d version by John Porter +Created: 23 Sep 2005 + +Parts fixed by Reinier Heeres +Minor additions by Ben Axelrod +Significant updates and revisions by Ben Root + +Module containing Axes3D, an object which can plot 3D objects on a +2D matplotlib figure. +""" + +from collections import defaultdict +import itertools +import math +import textwrap +import warnings + +import numpy as np + +import matplotlib as mpl +from matplotlib import _api, cbook, _docstring, _preprocess_data +import matplotlib.artist as martist +import matplotlib.collections as mcoll +import matplotlib.colors as mcolors +import matplotlib.image as mimage +import matplotlib.lines as mlines +import matplotlib.patches as mpatches +import matplotlib.container as mcontainer +import matplotlib.transforms as mtransforms +from matplotlib.axes import Axes +from matplotlib.axes._base import _axis_method_wrapper, _process_plot_format +from matplotlib.transforms import Bbox +from matplotlib.tri._triangulation import Triangulation + +from . import art3d +from . import proj3d +from . import axis3d + + +@_docstring.interpd +@_api.define_aliases({ + "xlim": ["xlim3d"], "ylim": ["ylim3d"], "zlim": ["zlim3d"]}) +class Axes3D(Axes): + """ + 3D Axes object. + + .. note:: + + As a user, you do not instantiate Axes directly, but use Axes creation + methods instead; e.g. from `.pyplot` or `.Figure`: + `~.pyplot.subplots`, `~.pyplot.subplot_mosaic` or `.Figure.add_axes`. + """ + name = '3d' + + _axis_names = ("x", "y", "z") + Axes._shared_axes["z"] = cbook.Grouper() + Axes._shared_axes["view"] = cbook.Grouper() + + def __init__( + self, fig, rect=None, *args, + elev=30, azim=-60, roll=0, shareview=None, sharez=None, + proj_type='persp', focal_length=None, + box_aspect=None, + computed_zorder=True, + **kwargs, + ): + """ + Parameters + ---------- + fig : Figure + The parent figure. + rect : tuple (left, bottom, width, height), default: None. + The ``(left, bottom, width, height)`` Axes position. + elev : float, default: 30 + The elevation angle in degrees rotates the camera above and below + the x-y plane, with a positive angle corresponding to a location + above the plane. + azim : float, default: -60 + The azimuthal angle in degrees rotates the camera about the z axis, + with a positive angle corresponding to a right-handed rotation. In + other words, a positive azimuth rotates the camera about the origin + from its location along the +x axis towards the +y axis. + roll : float, default: 0 + The roll angle in degrees rotates the camera about the viewing + axis. A positive angle spins the camera clockwise, causing the + scene to rotate counter-clockwise. + shareview : Axes3D, optional + Other Axes to share view angles with. Note that it is not possible + to unshare axes. + sharez : Axes3D, optional + Other Axes to share z-limits with. Note that it is not possible to + unshare axes. + proj_type : {'persp', 'ortho'} + The projection type, default 'persp'. + focal_length : float, default: None + For a projection type of 'persp', the focal length of the virtual + camera. Must be > 0. If None, defaults to 1. + For a projection type of 'ortho', must be set to either None + or infinity (numpy.inf). If None, defaults to infinity. + The focal length can be computed from a desired Field Of View via + the equation: focal_length = 1/tan(FOV/2) + box_aspect : 3-tuple of floats, default: None + Changes the physical dimensions of the Axes3D, such that the ratio + of the axis lengths in display units is x:y:z. + If None, defaults to 4:4:3 + computed_zorder : bool, default: True + If True, the draw order is computed based on the average position + of the `.Artist`\\s along the view direction. + Set to False if you want to manually control the order in which + Artists are drawn on top of each other using their *zorder* + attribute. This can be used for fine-tuning if the automatic order + does not produce the desired result. Note however, that a manual + zorder will only be correct for a limited view angle. If the figure + is rotated by the user, it will look wrong from certain angles. + + **kwargs + Other optional keyword arguments: + + %(Axes3D:kwdoc)s + """ + + if rect is None: + rect = [0.0, 0.0, 1.0, 1.0] + + self.initial_azim = azim + self.initial_elev = elev + self.initial_roll = roll + self.set_proj_type(proj_type, focal_length) + self.computed_zorder = computed_zorder + + self.xy_viewLim = Bbox.unit() + self.zz_viewLim = Bbox.unit() + xymargin = 0.05 * 10/11 # match mpl3.8 appearance + self.xy_dataLim = Bbox([[xymargin, xymargin], + [1 - xymargin, 1 - xymargin]]) + # z-limits are encoded in the x-component of the Bbox, y is un-used + self.zz_dataLim = Bbox.unit() + + # inhibit autoscale_view until the axes are defined + # they can't be defined until Axes.__init__ has been called + self.view_init(self.initial_elev, self.initial_azim, self.initial_roll) + + self._sharez = sharez + if sharez is not None: + self._shared_axes["z"].join(self, sharez) + self._adjustable = 'datalim' + + self._shareview = shareview + if shareview is not None: + self._shared_axes["view"].join(self, shareview) + + if kwargs.pop('auto_add_to_figure', False): + raise AttributeError( + 'auto_add_to_figure is no longer supported for Axes3D. ' + 'Use fig.add_axes(ax) instead.' + ) + + super().__init__( + fig, rect, frameon=True, box_aspect=box_aspect, *args, **kwargs + ) + # Disable drawing of axes by base class + super().set_axis_off() + # Enable drawing of axes by Axes3D class + self.set_axis_on() + self.M = None + self.invM = None + + self._view_margin = 1/48 # default value to match mpl3.8 + self.autoscale_view() + + # func used to format z -- fall back on major formatters + self.fmt_zdata = None + + self.mouse_init() + fig = self.get_figure(root=True) + fig.canvas.callbacks._connect_picklable( + 'motion_notify_event', self._on_move) + fig.canvas.callbacks._connect_picklable( + 'button_press_event', self._button_press) + fig.canvas.callbacks._connect_picklable( + 'button_release_event', self._button_release) + self.set_top_view() + + self.patch.set_linewidth(0) + # Calculate the pseudo-data width and height + pseudo_bbox = self.transLimits.inverted().transform([(0, 0), (1, 1)]) + self._pseudo_w, self._pseudo_h = pseudo_bbox[1] - pseudo_bbox[0] + + # mplot3d currently manages its own spines and needs these turned off + # for bounding box calculations + self.spines[:].set_visible(False) + + def set_axis_off(self): + self._axis3don = False + self.stale = True + + def set_axis_on(self): + self._axis3don = True + self.stale = True + + def convert_zunits(self, z): + """ + For artists in an Axes, if the zaxis has units support, + convert *z* using zaxis unit type + """ + return self.zaxis.convert_units(z) + + def set_top_view(self): + # this happens to be the right view for the viewing coordinates + # moved up and to the left slightly to fit labels and axes + xdwl = 0.95 / self._dist + xdw = 0.9 / self._dist + ydwl = 0.95 / self._dist + ydw = 0.9 / self._dist + # Set the viewing pane. + self.viewLim.intervalx = (-xdwl, xdw) + self.viewLim.intervaly = (-ydwl, ydw) + self.stale = True + + def _init_axis(self): + """Init 3D Axes; overrides creation of regular X/Y Axes.""" + self.xaxis = axis3d.XAxis(self) + self.yaxis = axis3d.YAxis(self) + self.zaxis = axis3d.ZAxis(self) + + def get_zaxis(self): + """Return the ``ZAxis`` (`~.axis3d.Axis`) instance.""" + return self.zaxis + + get_zgridlines = _axis_method_wrapper("zaxis", "get_gridlines") + get_zticklines = _axis_method_wrapper("zaxis", "get_ticklines") + + def _transformed_cube(self, vals): + """Return cube with limits from *vals* transformed by self.M.""" + minx, maxx, miny, maxy, minz, maxz = vals + xyzs = [(minx, miny, minz), + (maxx, miny, minz), + (maxx, maxy, minz), + (minx, maxy, minz), + (minx, miny, maxz), + (maxx, miny, maxz), + (maxx, maxy, maxz), + (minx, maxy, maxz)] + return proj3d._proj_points(xyzs, self.M) + + def set_aspect(self, aspect, adjustable=None, anchor=None, share=False): + """ + Set the aspect ratios. + + Parameters + ---------- + aspect : {'auto', 'equal', 'equalxy', 'equalxz', 'equalyz'} + Possible values: + + ========= ================================================== + value description + ========= ================================================== + 'auto' automatic; fill the position rectangle with data. + 'equal' adapt all the axes to have equal aspect ratios. + 'equalxy' adapt the x and y axes to have equal aspect ratios. + 'equalxz' adapt the x and z axes to have equal aspect ratios. + 'equalyz' adapt the y and z axes to have equal aspect ratios. + ========= ================================================== + + adjustable : None or {'box', 'datalim'}, optional + If not *None*, this defines which parameter will be adjusted to + meet the required aspect. See `.set_adjustable` for further + details. + + anchor : None or str or 2-tuple of float, optional + If not *None*, this defines where the Axes will be drawn if there + is extra space due to aspect constraints. The most common way to + specify the anchor are abbreviations of cardinal directions: + + ===== ===================== + value description + ===== ===================== + 'C' centered + 'SW' lower left corner + 'S' middle of bottom edge + 'SE' lower right corner + etc. + ===== ===================== + + See `~.Axes.set_anchor` for further details. + + share : bool, default: False + If ``True``, apply the settings to all shared Axes. + + See Also + -------- + mpl_toolkits.mplot3d.axes3d.Axes3D.set_box_aspect + """ + _api.check_in_list(('auto', 'equal', 'equalxy', 'equalyz', 'equalxz'), + aspect=aspect) + super().set_aspect( + aspect='auto', adjustable=adjustable, anchor=anchor, share=share) + self._aspect = aspect + + if aspect in ('equal', 'equalxy', 'equalxz', 'equalyz'): + ax_indices = self._equal_aspect_axis_indices(aspect) + + view_intervals = np.array([self.xaxis.get_view_interval(), + self.yaxis.get_view_interval(), + self.zaxis.get_view_interval()]) + ptp = np.ptp(view_intervals, axis=1) + if self._adjustable == 'datalim': + mean = np.mean(view_intervals, axis=1) + scale = max(ptp[ax_indices] / self._box_aspect[ax_indices]) + deltas = scale * self._box_aspect + + for i, set_lim in enumerate((self.set_xlim3d, + self.set_ylim3d, + self.set_zlim3d)): + if i in ax_indices: + set_lim(mean[i] - deltas[i]/2., mean[i] + deltas[i]/2., + auto=True, view_margin=None) + else: # 'box' + # Change the box aspect such that the ratio of the length of + # the unmodified axis to the length of the diagonal + # perpendicular to it remains unchanged. + box_aspect = np.array(self._box_aspect) + box_aspect[ax_indices] = ptp[ax_indices] + remaining_ax_indices = {0, 1, 2}.difference(ax_indices) + if remaining_ax_indices: + remaining = remaining_ax_indices.pop() + old_diag = np.linalg.norm(self._box_aspect[ax_indices]) + new_diag = np.linalg.norm(box_aspect[ax_indices]) + box_aspect[remaining] *= new_diag / old_diag + self.set_box_aspect(box_aspect) + + def _equal_aspect_axis_indices(self, aspect): + """ + Get the indices for which of the x, y, z axes are constrained to have + equal aspect ratios. + + Parameters + ---------- + aspect : {'auto', 'equal', 'equalxy', 'equalxz', 'equalyz'} + See descriptions in docstring for `.set_aspect()`. + """ + ax_indices = [] # aspect == 'auto' + if aspect == 'equal': + ax_indices = [0, 1, 2] + elif aspect == 'equalxy': + ax_indices = [0, 1] + elif aspect == 'equalxz': + ax_indices = [0, 2] + elif aspect == 'equalyz': + ax_indices = [1, 2] + return ax_indices + + def set_box_aspect(self, aspect, *, zoom=1): + """ + Set the Axes box aspect. + + The box aspect is the ratio of height to width in display + units for each face of the box when viewed perpendicular to + that face. This is not to be confused with the data aspect (see + `~.Axes3D.set_aspect`). The default ratios are 4:4:3 (x:y:z). + + To simulate having equal aspect in data space, set the box + aspect to match your data range in each dimension. + + *zoom* controls the overall size of the Axes3D in the figure. + + Parameters + ---------- + aspect : 3-tuple of floats or None + Changes the physical dimensions of the Axes3D, such that the ratio + of the axis lengths in display units is x:y:z. + If None, defaults to (4, 4, 3). + + zoom : float, default: 1 + Control overall size of the Axes3D in the figure. Must be > 0. + """ + if zoom <= 0: + raise ValueError(f'Argument zoom = {zoom} must be > 0') + + if aspect is None: + aspect = np.asarray((4, 4, 3), dtype=float) + else: + aspect = np.asarray(aspect, dtype=float) + _api.check_shape((3,), aspect=aspect) + # The scale 1.8294640721620434 is tuned to match the mpl3.2 appearance. + # The 25/24 factor is to compensate for the change in automargin + # behavior in mpl3.9. This comes from the padding of 1/48 on both sides + # of the axes in mpl3.8. + aspect *= 1.8294640721620434 * 25/24 * zoom / np.linalg.norm(aspect) + + self._box_aspect = self._roll_to_vertical(aspect, reverse=True) + self.stale = True + + def apply_aspect(self, position=None): + if position is None: + position = self.get_position(original=True) + + # in the superclass, we would go through and actually deal with axis + # scales and box/datalim. Those are all irrelevant - all we need to do + # is make sure our coordinate system is square. + trans = self.get_figure().transSubfigure + bb = mtransforms.Bbox.unit().transformed(trans) + # this is the physical aspect of the panel (or figure): + fig_aspect = bb.height / bb.width + + box_aspect = 1 + pb = position.frozen() + pb1 = pb.shrunk_to_aspect(box_aspect, pb, fig_aspect) + self._set_position(pb1.anchored(self.get_anchor(), pb), 'active') + + @martist.allow_rasterization + def draw(self, renderer): + if not self.get_visible(): + return + self._unstale_viewLim() + + # draw the background patch + self.patch.draw(renderer) + self._frameon = False + + # first, set the aspect + # this is duplicated from `axes._base._AxesBase.draw` + # but must be called before any of the artist are drawn as + # it adjusts the view limits and the size of the bounding box + # of the Axes + locator = self.get_axes_locator() + self.apply_aspect(locator(self, renderer) if locator else None) + + # add the projection matrix to the renderer + self.M = self.get_proj() + self.invM = np.linalg.inv(self.M) + + collections_and_patches = ( + artist for artist in self._children + if isinstance(artist, (mcoll.Collection, mpatches.Patch)) + and artist.get_visible()) + if self.computed_zorder: + # Calculate projection of collections and patches and zorder + # them. Make sure they are drawn above the grids. + zorder_offset = max(axis.get_zorder() + for axis in self._axis_map.values()) + 1 + collection_zorder = patch_zorder = zorder_offset + + for artist in sorted(collections_and_patches, + key=lambda artist: artist.do_3d_projection(), + reverse=True): + if isinstance(artist, mcoll.Collection): + artist.zorder = collection_zorder + collection_zorder += 1 + elif isinstance(artist, mpatches.Patch): + artist.zorder = patch_zorder + patch_zorder += 1 + else: + for artist in collections_and_patches: + artist.do_3d_projection() + + if self._axis3don: + # Draw panes first + for axis in self._axis_map.values(): + axis.draw_pane(renderer) + # Then gridlines + for axis in self._axis_map.values(): + axis.draw_grid(renderer) + # Then axes, labels, text, and ticks + for axis in self._axis_map.values(): + axis.draw(renderer) + + # Then rest + super().draw(renderer) + + def get_axis_position(self): + tc = self._transformed_cube(self.get_w_lims()) + xhigh = tc[1][2] > tc[2][2] + yhigh = tc[3][2] > tc[2][2] + zhigh = tc[0][2] > tc[2][2] + return xhigh, yhigh, zhigh + + def update_datalim(self, xys, **kwargs): + """ + Not implemented in `~mpl_toolkits.mplot3d.axes3d.Axes3D`. + """ + pass + + get_autoscalez_on = _axis_method_wrapper("zaxis", "_get_autoscale_on") + set_autoscalez_on = _axis_method_wrapper("zaxis", "_set_autoscale_on") + + def get_zmargin(self): + """ + Retrieve autoscaling margin of the z-axis. + + .. versionadded:: 3.9 + + Returns + ------- + zmargin : float + + See Also + -------- + mpl_toolkits.mplot3d.axes3d.Axes3D.set_zmargin + """ + return self._zmargin + + def set_zmargin(self, m): + """ + Set padding of Z data limits prior to autoscaling. + + *m* times the data interval will be added to each end of that interval + before it is used in autoscaling. If *m* is negative, this will clip + the data range instead of expanding it. + + For example, if your data is in the range [0, 2], a margin of 0.1 will + result in a range [-0.2, 2.2]; a margin of -0.1 will result in a range + of [0.2, 1.8]. + + Parameters + ---------- + m : float greater than -0.5 + """ + if m <= -0.5: + raise ValueError("margin must be greater than -0.5") + self._zmargin = m + self._request_autoscale_view("z") + self.stale = True + + def margins(self, *margins, x=None, y=None, z=None, tight=True): + """ + Set or retrieve autoscaling margins. + + See `.Axes.margins` for full documentation. Because this function + applies to 3D Axes, it also takes a *z* argument, and returns + ``(xmargin, ymargin, zmargin)``. + """ + if margins and (x is not None or y is not None or z is not None): + raise TypeError('Cannot pass both positional and keyword ' + 'arguments for x, y, and/or z.') + elif len(margins) == 1: + x = y = z = margins[0] + elif len(margins) == 3: + x, y, z = margins + elif margins: + raise TypeError('Must pass a single positional argument for all ' + 'margins, or one for each margin (x, y, z).') + + if x is None and y is None and z is None: + if tight is not True: + _api.warn_external(f'ignoring tight={tight!r} in get mode') + return self._xmargin, self._ymargin, self._zmargin + + if x is not None: + self.set_xmargin(x) + if y is not None: + self.set_ymargin(y) + if z is not None: + self.set_zmargin(z) + + self.autoscale_view( + tight=tight, scalex=(x is not None), scaley=(y is not None), + scalez=(z is not None) + ) + + def autoscale(self, enable=True, axis='both', tight=None): + """ + Convenience method for simple axis view autoscaling. + + See `.Axes.autoscale` for full documentation. Because this function + applies to 3D Axes, *axis* can also be set to 'z', and setting *axis* + to 'both' autoscales all three axes. + """ + if enable is None: + scalex = True + scaley = True + scalez = True + else: + if axis in ['x', 'both']: + self.set_autoscalex_on(enable) + scalex = self.get_autoscalex_on() + else: + scalex = False + if axis in ['y', 'both']: + self.set_autoscaley_on(enable) + scaley = self.get_autoscaley_on() + else: + scaley = False + if axis in ['z', 'both']: + self.set_autoscalez_on(enable) + scalez = self.get_autoscalez_on() + else: + scalez = False + if scalex: + self._request_autoscale_view("x", tight=tight) + if scaley: + self._request_autoscale_view("y", tight=tight) + if scalez: + self._request_autoscale_view("z", tight=tight) + + def auto_scale_xyz(self, X, Y, Z=None, had_data=None): + # This updates the bounding boxes as to keep a record as to what the + # minimum sized rectangular volume holds the data. + if np.shape(X) == np.shape(Y): + self.xy_dataLim.update_from_data_xy( + np.column_stack([np.ravel(X), np.ravel(Y)]), not had_data) + else: + self.xy_dataLim.update_from_data_x(X, not had_data) + self.xy_dataLim.update_from_data_y(Y, not had_data) + if Z is not None: + self.zz_dataLim.update_from_data_x(Z, not had_data) + # Let autoscale_view figure out how to use this data. + self.autoscale_view() + + def autoscale_view(self, tight=None, + scalex=True, scaley=True, scalez=True): + """ + Autoscale the view limits using the data limits. + + See `.Axes.autoscale_view` for full documentation. Because this + function applies to 3D Axes, it also takes a *scalez* argument. + """ + # This method looks at the rectangular volume (see above) + # of data and decides how to scale the view portal to fit it. + if tight is None: + _tight = self._tight + if not _tight: + # if image data only just use the datalim + for artist in self._children: + if isinstance(artist, mimage.AxesImage): + _tight = True + elif isinstance(artist, (mlines.Line2D, mpatches.Patch)): + _tight = False + break + else: + _tight = self._tight = bool(tight) + + if scalex and self.get_autoscalex_on(): + x0, x1 = self.xy_dataLim.intervalx + xlocator = self.xaxis.get_major_locator() + x0, x1 = xlocator.nonsingular(x0, x1) + if self._xmargin > 0: + delta = (x1 - x0) * self._xmargin + x0 -= delta + x1 += delta + if not _tight: + x0, x1 = xlocator.view_limits(x0, x1) + self.set_xbound(x0, x1, self._view_margin) + + if scaley and self.get_autoscaley_on(): + y0, y1 = self.xy_dataLim.intervaly + ylocator = self.yaxis.get_major_locator() + y0, y1 = ylocator.nonsingular(y0, y1) + if self._ymargin > 0: + delta = (y1 - y0) * self._ymargin + y0 -= delta + y1 += delta + if not _tight: + y0, y1 = ylocator.view_limits(y0, y1) + self.set_ybound(y0, y1, self._view_margin) + + if scalez and self.get_autoscalez_on(): + z0, z1 = self.zz_dataLim.intervalx + zlocator = self.zaxis.get_major_locator() + z0, z1 = zlocator.nonsingular(z0, z1) + if self._zmargin > 0: + delta = (z1 - z0) * self._zmargin + z0 -= delta + z1 += delta + if not _tight: + z0, z1 = zlocator.view_limits(z0, z1) + self.set_zbound(z0, z1, self._view_margin) + + def get_w_lims(self): + """Get 3D world limits.""" + minx, maxx = self.get_xlim3d() + miny, maxy = self.get_ylim3d() + minz, maxz = self.get_zlim3d() + return minx, maxx, miny, maxy, minz, maxz + + def _set_bound3d(self, get_bound, set_lim, axis_inverted, + lower=None, upper=None, view_margin=None): + """ + Set 3D axis bounds. + """ + if upper is None and np.iterable(lower): + lower, upper = lower + + old_lower, old_upper = get_bound() + if lower is None: + lower = old_lower + if upper is None: + upper = old_upper + + set_lim(sorted((lower, upper), reverse=bool(axis_inverted())), + auto=None, view_margin=view_margin) + + def set_xbound(self, lower=None, upper=None, view_margin=None): + """ + Set the lower and upper numerical bounds of the x-axis. + + This method will honor axis inversion regardless of parameter order. + It will not change the autoscaling setting (`.get_autoscalex_on()`). + + Parameters + ---------- + lower, upper : float or None + The lower and upper bounds. If *None*, the respective axis bound + is not modified. + view_margin : float or None + The margin to apply to the bounds. If *None*, the margin is handled + by `.set_xlim`. + + See Also + -------- + get_xbound + get_xlim, set_xlim + invert_xaxis, xaxis_inverted + """ + self._set_bound3d(self.get_xbound, self.set_xlim, self.xaxis_inverted, + lower, upper, view_margin) + + def set_ybound(self, lower=None, upper=None, view_margin=None): + """ + Set the lower and upper numerical bounds of the y-axis. + + This method will honor axis inversion regardless of parameter order. + It will not change the autoscaling setting (`.get_autoscaley_on()`). + + Parameters + ---------- + lower, upper : float or None + The lower and upper bounds. If *None*, the respective axis bound + is not modified. + view_margin : float or None + The margin to apply to the bounds. If *None*, the margin is handled + by `.set_ylim`. + + See Also + -------- + get_ybound + get_ylim, set_ylim + invert_yaxis, yaxis_inverted + """ + self._set_bound3d(self.get_ybound, self.set_ylim, self.yaxis_inverted, + lower, upper, view_margin) + + def set_zbound(self, lower=None, upper=None, view_margin=None): + """ + Set the lower and upper numerical bounds of the z-axis. + This method will honor axis inversion regardless of parameter order. + It will not change the autoscaling setting (`.get_autoscaley_on()`). + + Parameters + ---------- + lower, upper : float or None + The lower and upper bounds. If *None*, the respective axis bound + is not modified. + view_margin : float or None + The margin to apply to the bounds. If *None*, the margin is handled + by `.set_zlim`. + + See Also + -------- + get_zbound + get_zlim, set_zlim + invert_zaxis, zaxis_inverted + """ + self._set_bound3d(self.get_zbound, self.set_zlim, self.zaxis_inverted, + lower, upper, view_margin) + + def _set_lim3d(self, axis, lower=None, upper=None, *, emit=True, + auto=False, view_margin=None, axmin=None, axmax=None): + """ + Set 3D axis limits. + """ + if upper is None: + if np.iterable(lower): + lower, upper = lower + elif axmax is None: + upper = axis.get_view_interval()[1] + if lower is None and axmin is None: + lower = axis.get_view_interval()[0] + if axmin is not None: + if lower is not None: + raise TypeError("Cannot pass both 'lower' and 'min'") + lower = axmin + if axmax is not None: + if upper is not None: + raise TypeError("Cannot pass both 'upper' and 'max'") + upper = axmax + if np.isinf(lower) or np.isinf(upper): + raise ValueError(f"Axis limits {lower}, {upper} cannot be infinite") + if view_margin is None: + if mpl.rcParams['axes3d.automargin']: + view_margin = self._view_margin + else: + view_margin = 0 + delta = (upper - lower) * view_margin + lower -= delta + upper += delta + return axis._set_lim(lower, upper, emit=emit, auto=auto) + + def set_xlim(self, left=None, right=None, *, emit=True, auto=False, + view_margin=None, xmin=None, xmax=None): + """ + Set the 3D x-axis view limits. + + Parameters + ---------- + left : float, optional + The left xlim in data coordinates. Passing *None* leaves the + limit unchanged. + + The left and right xlims may also be passed as the tuple + (*left*, *right*) as the first positional argument (or as + the *left* keyword argument). + + .. ACCEPTS: (left: float, right: float) + + right : float, optional + The right xlim in data coordinates. Passing *None* leaves the + limit unchanged. + + emit : bool, default: True + Whether to notify observers of limit change. + + auto : bool or None, default: False + Whether to turn on autoscaling of the x-axis. *True* turns on, + *False* turns off, *None* leaves unchanged. + + view_margin : float, optional + The additional margin to apply to the limits. + + xmin, xmax : float, optional + They are equivalent to left and right respectively, and it is an + error to pass both *xmin* and *left* or *xmax* and *right*. + + Returns + ------- + left, right : (float, float) + The new x-axis limits in data coordinates. + + See Also + -------- + get_xlim + set_xbound, get_xbound + invert_xaxis, xaxis_inverted + + Notes + ----- + The *left* value may be greater than the *right* value, in which + case the x-axis values will decrease from *left* to *right*. + + Examples + -------- + >>> set_xlim(left, right) + >>> set_xlim((left, right)) + >>> left, right = set_xlim(left, right) + + One limit may be left unchanged. + + >>> set_xlim(right=right_lim) + + Limits may be passed in reverse order to flip the direction of + the x-axis. For example, suppose ``x`` represents depth of the + ocean in m. The x-axis limits might be set like the following + so 5000 m depth is at the left of the plot and the surface, + 0 m, is at the right. + + >>> set_xlim(5000, 0) + """ + return self._set_lim3d(self.xaxis, left, right, emit=emit, auto=auto, + view_margin=view_margin, axmin=xmin, axmax=xmax) + + def set_ylim(self, bottom=None, top=None, *, emit=True, auto=False, + view_margin=None, ymin=None, ymax=None): + """ + Set the 3D y-axis view limits. + + Parameters + ---------- + bottom : float, optional + The bottom ylim in data coordinates. Passing *None* leaves the + limit unchanged. + + The bottom and top ylims may also be passed as the tuple + (*bottom*, *top*) as the first positional argument (or as + the *bottom* keyword argument). + + .. ACCEPTS: (bottom: float, top: float) + + top : float, optional + The top ylim in data coordinates. Passing *None* leaves the + limit unchanged. + + emit : bool, default: True + Whether to notify observers of limit change. + + auto : bool or None, default: False + Whether to turn on autoscaling of the y-axis. *True* turns on, + *False* turns off, *None* leaves unchanged. + + view_margin : float, optional + The additional margin to apply to the limits. + + ymin, ymax : float, optional + They are equivalent to bottom and top respectively, and it is an + error to pass both *ymin* and *bottom* or *ymax* and *top*. + + Returns + ------- + bottom, top : (float, float) + The new y-axis limits in data coordinates. + + See Also + -------- + get_ylim + set_ybound, get_ybound + invert_yaxis, yaxis_inverted + + Notes + ----- + The *bottom* value may be greater than the *top* value, in which + case the y-axis values will decrease from *bottom* to *top*. + + Examples + -------- + >>> set_ylim(bottom, top) + >>> set_ylim((bottom, top)) + >>> bottom, top = set_ylim(bottom, top) + + One limit may be left unchanged. + + >>> set_ylim(top=top_lim) + + Limits may be passed in reverse order to flip the direction of + the y-axis. For example, suppose ``y`` represents depth of the + ocean in m. The y-axis limits might be set like the following + so 5000 m depth is at the bottom of the plot and the surface, + 0 m, is at the top. + + >>> set_ylim(5000, 0) + """ + return self._set_lim3d(self.yaxis, bottom, top, emit=emit, auto=auto, + view_margin=view_margin, axmin=ymin, axmax=ymax) + + def set_zlim(self, bottom=None, top=None, *, emit=True, auto=False, + view_margin=None, zmin=None, zmax=None): + """ + Set the 3D z-axis view limits. + + Parameters + ---------- + bottom : float, optional + The bottom zlim in data coordinates. Passing *None* leaves the + limit unchanged. + + The bottom and top zlims may also be passed as the tuple + (*bottom*, *top*) as the first positional argument (or as + the *bottom* keyword argument). + + .. ACCEPTS: (bottom: float, top: float) + + top : float, optional + The top zlim in data coordinates. Passing *None* leaves the + limit unchanged. + + emit : bool, default: True + Whether to notify observers of limit change. + + auto : bool or None, default: False + Whether to turn on autoscaling of the z-axis. *True* turns on, + *False* turns off, *None* leaves unchanged. + + view_margin : float, optional + The additional margin to apply to the limits. + + zmin, zmax : float, optional + They are equivalent to bottom and top respectively, and it is an + error to pass both *zmin* and *bottom* or *zmax* and *top*. + + Returns + ------- + bottom, top : (float, float) + The new z-axis limits in data coordinates. + + See Also + -------- + get_zlim + set_zbound, get_zbound + invert_zaxis, zaxis_inverted + + Notes + ----- + The *bottom* value may be greater than the *top* value, in which + case the z-axis values will decrease from *bottom* to *top*. + + Examples + -------- + >>> set_zlim(bottom, top) + >>> set_zlim((bottom, top)) + >>> bottom, top = set_zlim(bottom, top) + + One limit may be left unchanged. + + >>> set_zlim(top=top_lim) + + Limits may be passed in reverse order to flip the direction of + the z-axis. For example, suppose ``z`` represents depth of the + ocean in m. The z-axis limits might be set like the following + so 5000 m depth is at the bottom of the plot and the surface, + 0 m, is at the top. + + >>> set_zlim(5000, 0) + """ + return self._set_lim3d(self.zaxis, bottom, top, emit=emit, auto=auto, + view_margin=view_margin, axmin=zmin, axmax=zmax) + + set_xlim3d = set_xlim + set_ylim3d = set_ylim + set_zlim3d = set_zlim + + def get_xlim(self): + # docstring inherited + return tuple(self.xy_viewLim.intervalx) + + def get_ylim(self): + # docstring inherited + return tuple(self.xy_viewLim.intervaly) + + def get_zlim(self): + """ + Return the 3D z-axis view limits. + + Returns + ------- + left, right : (float, float) + The current z-axis limits in data coordinates. + + See Also + -------- + set_zlim + set_zbound, get_zbound + invert_zaxis, zaxis_inverted + + Notes + ----- + The z-axis may be inverted, in which case the *left* value will + be greater than the *right* value. + """ + return tuple(self.zz_viewLim.intervalx) + + get_zscale = _axis_method_wrapper("zaxis", "get_scale") + + # Redefine all three methods to overwrite their docstrings. + set_xscale = _axis_method_wrapper("xaxis", "_set_axes_scale") + set_yscale = _axis_method_wrapper("yaxis", "_set_axes_scale") + set_zscale = _axis_method_wrapper("zaxis", "_set_axes_scale") + set_xscale.__doc__, set_yscale.__doc__, set_zscale.__doc__ = map( + """ + Set the {}-axis scale. + + Parameters + ---------- + value : {{"linear"}} + The axis scale type to apply. 3D Axes currently only support + linear scales; other scales yield nonsensical results. + + **kwargs + Keyword arguments are nominally forwarded to the scale class, but + none of them is applicable for linear scales. + """.format, + ["x", "y", "z"]) + + get_zticks = _axis_method_wrapper("zaxis", "get_ticklocs") + set_zticks = _axis_method_wrapper("zaxis", "set_ticks") + get_zmajorticklabels = _axis_method_wrapper("zaxis", "get_majorticklabels") + get_zminorticklabels = _axis_method_wrapper("zaxis", "get_minorticklabels") + get_zticklabels = _axis_method_wrapper("zaxis", "get_ticklabels") + set_zticklabels = _axis_method_wrapper( + "zaxis", "set_ticklabels", + doc_sub={"Axis.set_ticks": "Axes3D.set_zticks"}) + + zaxis_date = _axis_method_wrapper("zaxis", "axis_date") + if zaxis_date.__doc__: + zaxis_date.__doc__ += textwrap.dedent(""" + + Notes + ----- + This function is merely provided for completeness, but 3D Axes do not + support dates for ticks, and so this may not work as expected. + """) + + def clabel(self, *args, **kwargs): + """Currently not implemented for 3D Axes, and returns *None*.""" + return None + + def view_init(self, elev=None, azim=None, roll=None, vertical_axis="z", + share=False): + """ + Set the elevation and azimuth of the Axes in degrees (not radians). + + This can be used to rotate the Axes programmatically. + + To look normal to the primary planes, the following elevation and + azimuth angles can be used. A roll angle of 0, 90, 180, or 270 deg + will rotate these views while keeping the axes at right angles. + + ========== ==== ==== + view plane elev azim + ========== ==== ==== + XY 90 -90 + XZ 0 -90 + YZ 0 0 + -XY -90 90 + -XZ 0 90 + -YZ 0 180 + ========== ==== ==== + + Parameters + ---------- + elev : float, default: None + The elevation angle in degrees rotates the camera above the plane + pierced by the vertical axis, with a positive angle corresponding + to a location above that plane. For example, with the default + vertical axis of 'z', the elevation defines the angle of the camera + location above the x-y plane. + If None, then the initial value as specified in the `Axes3D` + constructor is used. + azim : float, default: None + The azimuthal angle in degrees rotates the camera about the + vertical axis, with a positive angle corresponding to a + right-handed rotation. For example, with the default vertical axis + of 'z', a positive azimuth rotates the camera about the origin from + its location along the +x axis towards the +y axis. + If None, then the initial value as specified in the `Axes3D` + constructor is used. + roll : float, default: None + The roll angle in degrees rotates the camera about the viewing + axis. A positive angle spins the camera clockwise, causing the + scene to rotate counter-clockwise. + If None, then the initial value as specified in the `Axes3D` + constructor is used. + vertical_axis : {"z", "x", "y"}, default: "z" + The axis to align vertically. *azim* rotates about this axis. + share : bool, default: False + If ``True``, apply the settings to all Axes with shared views. + """ + + self._dist = 10 # The camera distance from origin. Behaves like zoom + + if elev is None: + elev = self.initial_elev + if azim is None: + azim = self.initial_azim + if roll is None: + roll = self.initial_roll + vertical_axis = _api.check_getitem( + {name: idx for idx, name in enumerate(self._axis_names)}, + vertical_axis=vertical_axis, + ) + + if share: + axes = {sibling for sibling + in self._shared_axes['view'].get_siblings(self)} + else: + axes = [self] + + for ax in axes: + ax.elev = elev + ax.azim = azim + ax.roll = roll + ax._vertical_axis = vertical_axis + + def set_proj_type(self, proj_type, focal_length=None): + """ + Set the projection type. + + Parameters + ---------- + proj_type : {'persp', 'ortho'} + The projection type. + focal_length : float, default: None + For a projection type of 'persp', the focal length of the virtual + camera. Must be > 0. If None, defaults to 1. + The focal length can be computed from a desired Field Of View via + the equation: focal_length = 1/tan(FOV/2) + """ + _api.check_in_list(['persp', 'ortho'], proj_type=proj_type) + if proj_type == 'persp': + if focal_length is None: + focal_length = 1 + elif focal_length <= 0: + raise ValueError(f"focal_length = {focal_length} must be " + "greater than 0") + self._focal_length = focal_length + else: # 'ortho': + if focal_length not in (None, np.inf): + raise ValueError(f"focal_length = {focal_length} must be " + f"None for proj_type = {proj_type}") + self._focal_length = np.inf + + def _roll_to_vertical( + self, arr: "np.typing.ArrayLike", reverse: bool = False + ) -> np.ndarray: + """ + Roll arrays to match the different vertical axis. + + Parameters + ---------- + arr : ArrayLike + Array to roll. + reverse : bool, default: False + Reverse the direction of the roll. + """ + if reverse: + return np.roll(arr, (self._vertical_axis - 2) * -1) + else: + return np.roll(arr, (self._vertical_axis - 2)) + + def get_proj(self): + """Create the projection matrix from the current viewing position.""" + + # Transform to uniform world coordinates 0-1, 0-1, 0-1 + box_aspect = self._roll_to_vertical(self._box_aspect) + worldM = proj3d.world_transformation( + *self.get_xlim3d(), + *self.get_ylim3d(), + *self.get_zlim3d(), + pb_aspect=box_aspect, + ) + + # Look into the middle of the world coordinates: + R = 0.5 * box_aspect + + # elev: elevation angle in the z plane. + # azim: azimuth angle in the xy plane. + # Coordinates for a point that rotates around the box of data. + # p0, p1 corresponds to rotating the box only around the vertical axis. + # p2 corresponds to rotating the box only around the horizontal axis. + elev_rad = np.deg2rad(self.elev) + azim_rad = np.deg2rad(self.azim) + p0 = np.cos(elev_rad) * np.cos(azim_rad) + p1 = np.cos(elev_rad) * np.sin(azim_rad) + p2 = np.sin(elev_rad) + + # When changing vertical axis the coordinates changes as well. + # Roll the values to get the same behaviour as the default: + ps = self._roll_to_vertical([p0, p1, p2]) + + # The coordinates for the eye viewing point. The eye is looking + # towards the middle of the box of data from a distance: + eye = R + self._dist * ps + + # Calculate the viewing axes for the eye position + u, v, w = self._calc_view_axes(eye) + self._view_u = u # _view_u is towards the right of the screen + self._view_v = v # _view_v is towards the top of the screen + self._view_w = w # _view_w is out of the screen + + # Generate the view and projection transformation matrices + if self._focal_length == np.inf: + # Orthographic projection + viewM = proj3d._view_transformation_uvw(u, v, w, eye) + projM = proj3d._ortho_transformation(-self._dist, self._dist) + else: + # Perspective projection + # Scale the eye dist to compensate for the focal length zoom effect + eye_focal = R + self._dist * ps * self._focal_length + viewM = proj3d._view_transformation_uvw(u, v, w, eye_focal) + projM = proj3d._persp_transformation(-self._dist, + self._dist, + self._focal_length) + + # Combine all the transformation matrices to get the final projection + M0 = np.dot(viewM, worldM) + M = np.dot(projM, M0) + return M + + def mouse_init(self, rotate_btn=1, pan_btn=2, zoom_btn=3): + """ + Set the mouse buttons for 3D rotation and zooming. + + Parameters + ---------- + rotate_btn : int or list of int, default: 1 + The mouse button or buttons to use for 3D rotation of the Axes. + pan_btn : int or list of int, default: 2 + The mouse button or buttons to use to pan the 3D Axes. + zoom_btn : int or list of int, default: 3 + The mouse button or buttons to use to zoom the 3D Axes. + """ + self.button_pressed = None + # coerce scalars into array-like, then convert into + # a regular list to avoid comparisons against None + # which breaks in recent versions of numpy. + self._rotate_btn = np.atleast_1d(rotate_btn).tolist() + self._pan_btn = np.atleast_1d(pan_btn).tolist() + self._zoom_btn = np.atleast_1d(zoom_btn).tolist() + + def disable_mouse_rotation(self): + """Disable mouse buttons for 3D rotation, panning, and zooming.""" + self.mouse_init(rotate_btn=[], pan_btn=[], zoom_btn=[]) + + def can_zoom(self): + # doc-string inherited + return True + + def can_pan(self): + # doc-string inherited + return True + + def sharez(self, other): + """ + Share the z-axis with *other*. + + This is equivalent to passing ``sharez=other`` when constructing the + Axes, and cannot be used if the z-axis is already being shared with + another Axes. Note that it is not possible to unshare axes. + """ + _api.check_isinstance(Axes3D, other=other) + if self._sharez is not None and other is not self._sharez: + raise ValueError("z-axis is already shared") + self._shared_axes["z"].join(self, other) + self._sharez = other + self.zaxis.major = other.zaxis.major # Ticker instances holding + self.zaxis.minor = other.zaxis.minor # locator and formatter. + z0, z1 = other.get_zlim() + self.set_zlim(z0, z1, emit=False, auto=other.get_autoscalez_on()) + self.zaxis._scale = other.zaxis._scale + + def shareview(self, other): + """ + Share the view angles with *other*. + + This is equivalent to passing ``shareview=other`` when constructing the + Axes, and cannot be used if the view angles are already being shared + with another Axes. Note that it is not possible to unshare axes. + """ + _api.check_isinstance(Axes3D, other=other) + if self._shareview is not None and other is not self._shareview: + raise ValueError("view angles are already shared") + self._shared_axes["view"].join(self, other) + self._shareview = other + vertical_axis = self._axis_names[other._vertical_axis] + self.view_init(elev=other.elev, azim=other.azim, roll=other.roll, + vertical_axis=vertical_axis, share=True) + + def clear(self): + # docstring inherited. + super().clear() + if self._focal_length == np.inf: + self._zmargin = mpl.rcParams['axes.zmargin'] + else: + self._zmargin = 0. + + xymargin = 0.05 * 10/11 # match mpl3.8 appearance + self.xy_dataLim = Bbox([[xymargin, xymargin], + [1 - xymargin, 1 - xymargin]]) + # z-limits are encoded in the x-component of the Bbox, y is un-used + self.zz_dataLim = Bbox.unit() + self._view_margin = 1/48 # default value to match mpl3.8 + self.autoscale_view() + + self.grid(mpl.rcParams['axes3d.grid']) + + def _button_press(self, event): + if event.inaxes == self: + self.button_pressed = event.button + self._sx, self._sy = event.xdata, event.ydata + toolbar = self.get_figure(root=True).canvas.toolbar + if toolbar and toolbar._nav_stack() is None: + toolbar.push_current() + if toolbar: + toolbar.set_message(toolbar._mouse_event_to_message(event)) + + def _button_release(self, event): + self.button_pressed = None + toolbar = self.get_figure(root=True).canvas.toolbar + # backend_bases.release_zoom and backend_bases.release_pan call + # push_current, so check the navigation mode so we don't call it twice + if toolbar and self.get_navigate_mode() is None: + toolbar.push_current() + if toolbar: + toolbar.set_message(toolbar._mouse_event_to_message(event)) + + def _get_view(self): + # docstring inherited + return { + "xlim": self.get_xlim(), "autoscalex_on": self.get_autoscalex_on(), + "ylim": self.get_ylim(), "autoscaley_on": self.get_autoscaley_on(), + "zlim": self.get_zlim(), "autoscalez_on": self.get_autoscalez_on(), + }, (self.elev, self.azim, self.roll) + + def _set_view(self, view): + # docstring inherited + props, (elev, azim, roll) = view + self.set(**props) + self.elev = elev + self.azim = azim + self.roll = roll + + def format_zdata(self, z): + """ + Return *z* string formatted. This function will use the + :attr:`fmt_zdata` attribute if it is callable, else will fall + back on the zaxis major formatter + """ + try: + return self.fmt_zdata(z) + except (AttributeError, TypeError): + func = self.zaxis.get_major_formatter().format_data_short + val = func(z) + return val + + def format_coord(self, xv, yv, renderer=None): + """ + Return a string giving the current view rotation angles, or the x, y, z + coordinates of the point on the nearest axis pane underneath the mouse + cursor, depending on the mouse button pressed. + """ + coords = '' + + if self.button_pressed in self._rotate_btn: + # ignore xv and yv and display angles instead + coords = self._rotation_coords() + + elif self.M is not None: + coords = self._location_coords(xv, yv, renderer) + + return coords + + def _rotation_coords(self): + """ + Return the rotation angles as a string. + """ + norm_elev = art3d._norm_angle(self.elev) + norm_azim = art3d._norm_angle(self.azim) + norm_roll = art3d._norm_angle(self.roll) + coords = (f"elevation={norm_elev:.0f}\N{DEGREE SIGN}, " + f"azimuth={norm_azim:.0f}\N{DEGREE SIGN}, " + f"roll={norm_roll:.0f}\N{DEGREE SIGN}" + ).replace("-", "\N{MINUS SIGN}") + return coords + + def _location_coords(self, xv, yv, renderer): + """ + Return the location on the axis pane underneath the cursor as a string. + """ + p1, pane_idx = self._calc_coord(xv, yv, renderer) + xs = self.format_xdata(p1[0]) + ys = self.format_ydata(p1[1]) + zs = self.format_zdata(p1[2]) + if pane_idx == 0: + coords = f'x pane={xs}, y={ys}, z={zs}' + elif pane_idx == 1: + coords = f'x={xs}, y pane={ys}, z={zs}' + elif pane_idx == 2: + coords = f'x={xs}, y={ys}, z pane={zs}' + return coords + + def _get_camera_loc(self): + """ + Returns the current camera location in data coordinates. + """ + cx, cy, cz, dx, dy, dz = self._get_w_centers_ranges() + c = np.array([cx, cy, cz]) + r = np.array([dx, dy, dz]) + + if self._focal_length == np.inf: # orthographic projection + focal_length = 1e9 # large enough to be effectively infinite + else: # perspective projection + focal_length = self._focal_length + eye = c + self._view_w * self._dist * r / self._box_aspect * focal_length + return eye + + def _calc_coord(self, xv, yv, renderer=None): + """ + Given the 2D view coordinates, find the point on the nearest axis pane + that lies directly below those coordinates. Returns a 3D point in data + coordinates. + """ + if self._focal_length == np.inf: # orthographic projection + zv = 1 + else: # perspective projection + zv = -1 / self._focal_length + + # Convert point on view plane to data coordinates + p1 = np.array(proj3d.inv_transform(xv, yv, zv, self.invM)).ravel() + + # Get the vector from the camera to the point on the view plane + vec = self._get_camera_loc() - p1 + + # Get the pane locations for each of the axes + pane_locs = [] + for axis in self._axis_map.values(): + xys, loc = axis.active_pane() + pane_locs.append(loc) + + # Find the distance to the nearest pane by projecting the view vector + scales = np.zeros(3) + for i in range(3): + if vec[i] == 0: + scales[i] = np.inf + else: + scales[i] = (p1[i] - pane_locs[i]) / vec[i] + pane_idx = np.argmin(abs(scales)) + scale = scales[pane_idx] + + # Calculate the point on the closest pane + p2 = p1 - scale*vec + return p2, pane_idx + + def _arcball(self, x: float, y: float) -> np.ndarray: + """ + Convert a point (x, y) to a point on a virtual trackball. + + This is Ken Shoemake's arcball (a sphere), modified + to soften the abrupt edge (optionally). + See: Ken Shoemake, "ARCBALL: A user interface for specifying + three-dimensional rotation using a mouse." in + Proceedings of Graphics Interface '92, 1992, pp. 151-156, + https://doi.org/10.20380/GI1992.18 + The smoothing of the edge is inspired by Gavin Bell's arcball + (a sphere combined with a hyperbola), but here, the sphere + is combined with a section of a cylinder, so it has finite support. + """ + s = mpl.rcParams['axes3d.trackballsize'] / 2 + b = mpl.rcParams['axes3d.trackballborder'] / s + x /= s + y /= s + r2 = x*x + y*y + r = np.sqrt(r2) + ra = 1 + b + a = b * (1 + b/2) + ri = 2/(ra + 1/ra) + if r < ri: + p = np.array([np.sqrt(1 - r2), x, y]) + elif r < ra: + dr = ra - r + p = np.array([a - np.sqrt((a + dr) * (a - dr)), x, y]) + p /= np.linalg.norm(p) + else: + p = np.array([0, x/r, y/r]) + return p + + def _on_move(self, event): + """ + Mouse moving. + + By default, button-1 rotates, button-2 pans, and button-3 zooms; + these buttons can be modified via `mouse_init`. + """ + + if not self.button_pressed: + return + + if self.get_navigate_mode() is not None: + # we don't want to rotate if we are zooming/panning + # from the toolbar + return + + if self.M is None: + return + + x, y = event.xdata, event.ydata + # In case the mouse is out of bounds. + if x is None or event.inaxes != self: + return + + dx, dy = x - self._sx, y - self._sy + w = self._pseudo_w + h = self._pseudo_h + + # Rotation + if self.button_pressed in self._rotate_btn: + # rotate viewing point + # get the x and y pixel coords + if dx == 0 and dy == 0: + return + + style = mpl.rcParams['axes3d.mouserotationstyle'] + if style == 'azel': + roll = np.deg2rad(self.roll) + delev = -(dy/h)*180*np.cos(roll) + (dx/w)*180*np.sin(roll) + dazim = -(dy/h)*180*np.sin(roll) - (dx/w)*180*np.cos(roll) + elev = self.elev + delev + azim = self.azim + dazim + roll = self.roll + else: + q = _Quaternion.from_cardan_angles( + *np.deg2rad((self.elev, self.azim, self.roll))) + + if style == 'trackball': + k = np.array([0, -dy/h, dx/w]) + nk = np.linalg.norm(k) + th = nk / mpl.rcParams['axes3d.trackballsize'] + dq = _Quaternion(np.cos(th), k*np.sin(th)/nk) + else: # 'sphere', 'arcball' + current_vec = self._arcball(self._sx/w, self._sy/h) + new_vec = self._arcball(x/w, y/h) + if style == 'sphere': + dq = _Quaternion.rotate_from_to(current_vec, new_vec) + else: # 'arcball' + dq = _Quaternion(0, new_vec) * _Quaternion(0, -current_vec) + + q = dq * q + elev, azim, roll = np.rad2deg(q.as_cardan_angles()) + + # update view + vertical_axis = self._axis_names[self._vertical_axis] + self.view_init( + elev=elev, + azim=azim, + roll=roll, + vertical_axis=vertical_axis, + share=True, + ) + self.stale = True + + # Pan + elif self.button_pressed in self._pan_btn: + # Start the pan event with pixel coordinates + px, py = self.transData.transform([self._sx, self._sy]) + self.start_pan(px, py, 2) + # pan view (takes pixel coordinate input) + self.drag_pan(2, None, event.x, event.y) + self.end_pan() + + # Zoom + elif self.button_pressed in self._zoom_btn: + # zoom view (dragging down zooms in) + scale = h/(h - dy) + self._scale_axis_limits(scale, scale, scale) + + # Store the event coordinates for the next time through. + self._sx, self._sy = x, y + # Always request a draw update at the end of interaction + self.get_figure(root=True).canvas.draw_idle() + + def drag_pan(self, button, key, x, y): + # docstring inherited + + # Get the coordinates from the move event + p = self._pan_start + (xdata, ydata), (xdata_start, ydata_start) = p.trans_inverse.transform( + [(x, y), (p.x, p.y)]) + self._sx, self._sy = xdata, ydata + # Calling start_pan() to set the x/y of this event as the starting + # move location for the next event + self.start_pan(x, y, button) + du, dv = xdata - xdata_start, ydata - ydata_start + dw = 0 + if key == 'x': + dv = 0 + elif key == 'y': + du = 0 + if du == 0 and dv == 0: + return + + # Transform the pan from the view axes to the data axes + R = np.array([self._view_u, self._view_v, self._view_w]) + R = -R / self._box_aspect * self._dist + duvw_projected = R.T @ np.array([du, dv, dw]) + + # Calculate pan distance + minx, maxx, miny, maxy, minz, maxz = self.get_w_lims() + dx = (maxx - minx) * duvw_projected[0] + dy = (maxy - miny) * duvw_projected[1] + dz = (maxz - minz) * duvw_projected[2] + + # Set the new axis limits + self.set_xlim3d(minx + dx, maxx + dx, auto=None) + self.set_ylim3d(miny + dy, maxy + dy, auto=None) + self.set_zlim3d(minz + dz, maxz + dz, auto=None) + + def _calc_view_axes(self, eye): + """ + Get the unit vectors for the viewing axes in data coordinates. + `u` is towards the right of the screen + `v` is towards the top of the screen + `w` is out of the screen + """ + elev_rad = np.deg2rad(art3d._norm_angle(self.elev)) + roll_rad = np.deg2rad(art3d._norm_angle(self.roll)) + + # Look into the middle of the world coordinates + R = 0.5 * self._roll_to_vertical(self._box_aspect) + + # Define which axis should be vertical. A negative value + # indicates the plot is upside down and therefore the values + # have been reversed: + V = np.zeros(3) + V[self._vertical_axis] = -1 if abs(elev_rad) > np.pi/2 else 1 + + u, v, w = proj3d._view_axes(eye, R, V, roll_rad) + return u, v, w + + def _set_view_from_bbox(self, bbox, direction='in', + mode=None, twinx=False, twiny=False): + """ + Zoom in or out of the bounding box. + + Will center the view in the center of the bounding box, and zoom by + the ratio of the size of the bounding box to the size of the Axes3D. + """ + (start_x, start_y, stop_x, stop_y) = bbox + if mode == 'x': + start_y = self.bbox.min[1] + stop_y = self.bbox.max[1] + elif mode == 'y': + start_x = self.bbox.min[0] + stop_x = self.bbox.max[0] + + # Clip to bounding box limits + start_x, stop_x = np.clip(sorted([start_x, stop_x]), + self.bbox.min[0], self.bbox.max[0]) + start_y, stop_y = np.clip(sorted([start_y, stop_y]), + self.bbox.min[1], self.bbox.max[1]) + + # Move the center of the view to the center of the bbox + zoom_center_x = (start_x + stop_x)/2 + zoom_center_y = (start_y + stop_y)/2 + + ax_center_x = (self.bbox.max[0] + self.bbox.min[0])/2 + ax_center_y = (self.bbox.max[1] + self.bbox.min[1])/2 + + self.start_pan(zoom_center_x, zoom_center_y, 2) + self.drag_pan(2, None, ax_center_x, ax_center_y) + self.end_pan() + + # Calculate zoom level + dx = abs(start_x - stop_x) + dy = abs(start_y - stop_y) + scale_u = dx / (self.bbox.max[0] - self.bbox.min[0]) + scale_v = dy / (self.bbox.max[1] - self.bbox.min[1]) + + # Keep aspect ratios equal + scale = max(scale_u, scale_v) + + # Zoom out + if direction == 'out': + scale = 1 / scale + + self._zoom_data_limits(scale, scale, scale) + + def _zoom_data_limits(self, scale_u, scale_v, scale_w): + """ + Zoom in or out of a 3D plot. + + Will scale the data limits by the scale factors. These will be + transformed to the x, y, z data axes based on the current view angles. + A scale factor > 1 zooms out and a scale factor < 1 zooms in. + + For an Axes that has had its aspect ratio set to 'equal', 'equalxy', + 'equalyz', or 'equalxz', the relevant axes are constrained to zoom + equally. + + Parameters + ---------- + scale_u : float + Scale factor for the u view axis (view screen horizontal). + scale_v : float + Scale factor for the v view axis (view screen vertical). + scale_w : float + Scale factor for the w view axis (view screen depth). + """ + scale = np.array([scale_u, scale_v, scale_w]) + + # Only perform frame conversion if unequal scale factors + if not np.allclose(scale, scale_u): + # Convert the scale factors from the view frame to the data frame + R = np.array([self._view_u, self._view_v, self._view_w]) + S = scale * np.eye(3) + scale = np.linalg.norm(R.T @ S, axis=1) + + # Set the constrained scale factors to the factor closest to 1 + if self._aspect in ('equal', 'equalxy', 'equalxz', 'equalyz'): + ax_idxs = self._equal_aspect_axis_indices(self._aspect) + min_ax_idxs = np.argmin(np.abs(scale[ax_idxs] - 1)) + scale[ax_idxs] = scale[ax_idxs][min_ax_idxs] + + self._scale_axis_limits(scale[0], scale[1], scale[2]) + + def _scale_axis_limits(self, scale_x, scale_y, scale_z): + """ + Keeping the center of the x, y, and z data axes fixed, scale their + limits by scale factors. A scale factor > 1 zooms out and a scale + factor < 1 zooms in. + + Parameters + ---------- + scale_x : float + Scale factor for the x data axis. + scale_y : float + Scale factor for the y data axis. + scale_z : float + Scale factor for the z data axis. + """ + # Get the axis centers and ranges + cx, cy, cz, dx, dy, dz = self._get_w_centers_ranges() + + # Set the scaled axis limits + self.set_xlim3d(cx - dx*scale_x/2, cx + dx*scale_x/2, auto=None) + self.set_ylim3d(cy - dy*scale_y/2, cy + dy*scale_y/2, auto=None) + self.set_zlim3d(cz - dz*scale_z/2, cz + dz*scale_z/2, auto=None) + + def _get_w_centers_ranges(self): + """Get 3D world centers and axis ranges.""" + # Calculate center of axis limits + minx, maxx, miny, maxy, minz, maxz = self.get_w_lims() + cx = (maxx + minx)/2 + cy = (maxy + miny)/2 + cz = (maxz + minz)/2 + + # Calculate range of axis limits + dx = (maxx - minx) + dy = (maxy - miny) + dz = (maxz - minz) + return cx, cy, cz, dx, dy, dz + + def set_zlabel(self, zlabel, fontdict=None, labelpad=None, **kwargs): + """ + Set zlabel. See doc for `.set_ylabel` for description. + """ + if labelpad is not None: + self.zaxis.labelpad = labelpad + return self.zaxis.set_label_text(zlabel, fontdict, **kwargs) + + def get_zlabel(self): + """ + Get the z-label text string. + """ + label = self.zaxis.label + return label.get_text() + + # Axes rectangle characteristics + + # The frame_on methods are not available for 3D axes. + # Python will raise a TypeError if they are called. + get_frame_on = None + set_frame_on = None + + def grid(self, visible=True, **kwargs): + """ + Set / unset 3D grid. + + .. note:: + + Currently, this function does not behave the same as + `.axes.Axes.grid`, but it is intended to eventually support that + behavior. + """ + # TODO: Operate on each axes separately + if len(kwargs): + visible = True + self._draw_grid = visible + self.stale = True + + def tick_params(self, axis='both', **kwargs): + """ + Convenience method for changing the appearance of ticks and + tick labels. + + See `.Axes.tick_params` for full documentation. Because this function + applies to 3D Axes, *axis* can also be set to 'z', and setting *axis* + to 'both' autoscales all three axes. + + Also, because of how Axes3D objects are drawn very differently + from regular 2D Axes, some of these settings may have + ambiguous meaning. For simplicity, the 'z' axis will + accept settings as if it was like the 'y' axis. + + .. note:: + Axes3D currently ignores some of these settings. + """ + _api.check_in_list(['x', 'y', 'z', 'both'], axis=axis) + if axis in ['x', 'y', 'both']: + super().tick_params(axis, **kwargs) + if axis in ['z', 'both']: + zkw = dict(kwargs) + zkw.pop('top', None) + zkw.pop('bottom', None) + zkw.pop('labeltop', None) + zkw.pop('labelbottom', None) + self.zaxis.set_tick_params(**zkw) + + # data limits, ticks, tick labels, and formatting + + def invert_zaxis(self): + """ + Invert the z-axis. + + See Also + -------- + zaxis_inverted + get_zlim, set_zlim + get_zbound, set_zbound + """ + bottom, top = self.get_zlim() + self.set_zlim(top, bottom, auto=None) + + zaxis_inverted = _axis_method_wrapper("zaxis", "get_inverted") + + def get_zbound(self): + """ + Return the lower and upper z-axis bounds, in increasing order. + + See Also + -------- + set_zbound + get_zlim, set_zlim + invert_zaxis, zaxis_inverted + """ + lower, upper = self.get_zlim() + if lower < upper: + return lower, upper + else: + return upper, lower + + def text(self, x, y, z, s, zdir=None, *, axlim_clip=False, **kwargs): + """ + Add the text *s* to the 3D Axes at location *x*, *y*, *z* in data coordinates. + + Parameters + ---------- + x, y, z : float + The position to place the text. + s : str + The text. + zdir : {'x', 'y', 'z', 3-tuple}, optional + The direction to be used as the z-direction. Default: 'z'. + See `.get_dir_vector` for a description of the values. + axlim_clip : bool, default: False + Whether to hide text that is outside the axes view limits. + + .. versionadded:: 3.10 + **kwargs + Other arguments are forwarded to `matplotlib.axes.Axes.text`. + + Returns + ------- + `.Text3D` + The created `.Text3D` instance. + """ + text = super().text(x, y, s, **kwargs) + art3d.text_2d_to_3d(text, z, zdir, axlim_clip) + return text + + text3D = text + text2D = Axes.text + + def plot(self, xs, ys, *args, zdir='z', axlim_clip=False, **kwargs): + """ + Plot 2D or 3D data. + + Parameters + ---------- + xs : 1D array-like + x coordinates of vertices. + ys : 1D array-like + y coordinates of vertices. + zs : float or 1D array-like + z coordinates of vertices; either one for all points or one for + each point. + zdir : {'x', 'y', 'z'}, default: 'z' + When plotting 2D data, the direction to use as z. + axlim_clip : bool, default: False + Whether to hide data that is outside the axes view limits. + + .. versionadded:: 3.10 + **kwargs + Other arguments are forwarded to `matplotlib.axes.Axes.plot`. + """ + had_data = self.has_data() + + # `zs` can be passed positionally or as keyword; checking whether + # args[0] is a string matches the behavior of 2D `plot` (via + # `_process_plot_var_args`). + if args and not isinstance(args[0], str): + zs, *args = args + if 'zs' in kwargs: + raise TypeError("plot() for multiple values for argument 'zs'") + else: + zs = kwargs.pop('zs', 0) + + xs, ys, zs = cbook._broadcast_with_masks(xs, ys, zs) + + lines = super().plot(xs, ys, *args, **kwargs) + for line in lines: + art3d.line_2d_to_3d(line, zs=zs, zdir=zdir, axlim_clip=axlim_clip) + + xs, ys, zs = art3d.juggle_axes(xs, ys, zs, zdir) + self.auto_scale_xyz(xs, ys, zs, had_data) + return lines + + plot3D = plot + + def fill_between(self, x1, y1, z1, x2, y2, z2, *, + where=None, mode='auto', facecolors=None, shade=None, + axlim_clip=False, **kwargs): + """ + Fill the area between two 3D curves. + + The curves are defined by the points (*x1*, *y1*, *z1*) and + (*x2*, *y2*, *z2*). This creates one or multiple quadrangle + polygons that are filled. All points must be the same length N, or a + single value to be used for all points. + + Parameters + ---------- + x1, y1, z1 : float or 1D array-like + x, y, and z coordinates of vertices for 1st line. + + x2, y2, z2 : float or 1D array-like + x, y, and z coordinates of vertices for 2nd line. + + where : array of bool (length N), optional + Define *where* to exclude some regions from being filled. The + filled regions are defined by the coordinates ``pts[where]``, + for all x, y, and z pts. More precisely, fill between ``pts[i]`` + and ``pts[i+1]`` if ``where[i] and where[i+1]``. Note that this + definition implies that an isolated *True* value between two + *False* values in *where* will not result in filling. Both sides of + the *True* position remain unfilled due to the adjacent *False* + values. + + mode : {'quad', 'polygon', 'auto'}, default: 'auto' + The fill mode. One of: + + - 'quad': A separate quadrilateral polygon is created for each + pair of subsequent points in the two lines. + - 'polygon': The two lines are connected to form a single polygon. + This is faster and can render more cleanly for simple shapes + (e.g. for filling between two lines that lie within a plane). + - 'auto': If the points all lie on the same 3D plane, 'polygon' is + used. Otherwise, 'quad' is used. + + facecolors : list of :mpltype:`color`, default: None + Colors of each individual patch, or a single color to be used for + all patches. + + shade : bool, default: None + Whether to shade the facecolors. If *None*, then defaults to *True* + for 'quad' mode and *False* for 'polygon' mode. + + axlim_clip : bool, default: False + Whether to hide data that is outside the axes view limits. + + .. versionadded:: 3.10 + + **kwargs + All other keyword arguments are passed on to `.Poly3DCollection`. + + Returns + ------- + `.Poly3DCollection` + A `.Poly3DCollection` containing the plotted polygons. + + """ + _api.check_in_list(['auto', 'quad', 'polygon'], mode=mode) + + had_data = self.has_data() + x1, y1, z1, x2, y2, z2 = cbook._broadcast_with_masks(x1, y1, z1, x2, y2, z2) + + if facecolors is None: + facecolors = [self._get_patches_for_fill.get_next_color()] + facecolors = list(mcolors.to_rgba_array(facecolors)) + + if where is None: + where = True + else: + where = np.asarray(where, dtype=bool) + if where.size != x1.size: + raise ValueError(f"where size ({where.size}) does not match " + f"size ({x1.size})") + where = where & ~np.isnan(x1) # NaNs were broadcast in _broadcast_with_masks + + if mode == 'auto': + if art3d._all_points_on_plane(np.concatenate((x1[where], x2[where])), + np.concatenate((y1[where], y2[where])), + np.concatenate((z1[where], z2[where])), + atol=1e-12): + mode = 'polygon' + else: + mode = 'quad' + + if shade is None: + if mode == 'quad': + shade = True + else: + shade = False + + polys = [] + for idx0, idx1 in cbook.contiguous_regions(where): + x1i = x1[idx0:idx1] + y1i = y1[idx0:idx1] + z1i = z1[idx0:idx1] + x2i = x2[idx0:idx1] + y2i = y2[idx0:idx1] + z2i = z2[idx0:idx1] + + if not len(x1i): + continue + + if mode == 'quad': + # Preallocate the array for the region's vertices, and fill it in + n_polys_i = len(x1i) - 1 + polys_i = np.empty((n_polys_i, 4, 3)) + polys_i[:, 0, :] = np.column_stack((x1i[:-1], y1i[:-1], z1i[:-1])) + polys_i[:, 1, :] = np.column_stack((x1i[1:], y1i[1:], z1i[1:])) + polys_i[:, 2, :] = np.column_stack((x2i[1:], y2i[1:], z2i[1:])) + polys_i[:, 3, :] = np.column_stack((x2i[:-1], y2i[:-1], z2i[:-1])) + polys = polys + [*polys_i] + elif mode == 'polygon': + line1 = np.column_stack((x1i, y1i, z1i)) + line2 = np.column_stack((x2i[::-1], y2i[::-1], z2i[::-1])) + poly = np.concatenate((line1, line2), axis=0) + polys.append(poly) + + polyc = art3d.Poly3DCollection(polys, facecolors=facecolors, shade=shade, + axlim_clip=axlim_clip, **kwargs) + self.add_collection(polyc) + + self.auto_scale_xyz([x1, x2], [y1, y2], [z1, z2], had_data) + return polyc + + def plot_surface(self, X, Y, Z, *, norm=None, vmin=None, + vmax=None, lightsource=None, axlim_clip=False, **kwargs): + """ + Create a surface plot. + + By default, it will be colored in shades of a solid color, but it also + supports colormapping by supplying the *cmap* argument. + + .. note:: + + The *rcount* and *ccount* kwargs, which both default to 50, + determine the maximum number of samples used in each direction. If + the input data is larger, it will be downsampled (by slicing) to + these numbers of points. + + .. note:: + + To maximize rendering speed consider setting *rstride* and *cstride* + to divisors of the number of rows minus 1 and columns minus 1 + respectively. For example, given 51 rows rstride can be any of the + divisors of 50. + + Similarly, a setting of *rstride* and *cstride* equal to 1 (or + *rcount* and *ccount* equal the number of rows and columns) can use + the optimized path. + + Parameters + ---------- + X, Y, Z : 2D arrays + Data values. + + rcount, ccount : int + Maximum number of samples used in each direction. If the input + data is larger, it will be downsampled (by slicing) to these + numbers of points. Defaults to 50. + + rstride, cstride : int + Downsampling stride in each direction. These arguments are + mutually exclusive with *rcount* and *ccount*. If only one of + *rstride* or *cstride* is set, the other defaults to 10. + + 'classic' mode uses a default of ``rstride = cstride = 10`` instead + of the new default of ``rcount = ccount = 50``. + + color : :mpltype:`color` + Color of the surface patches. + + cmap : Colormap, optional + Colormap of the surface patches. + + facecolors : list of :mpltype:`color` + Colors of each individual patch. + + norm : `~matplotlib.colors.Normalize`, optional + Normalization for the colormap. + + vmin, vmax : float, optional + Bounds for the normalization. + + shade : bool, default: True + Whether to shade the facecolors. Shading is always disabled when + *cmap* is specified. + + lightsource : `~matplotlib.colors.LightSource`, optional + The lightsource to use when *shade* is True. + + axlim_clip : bool, default: False + Whether to hide patches with a vertex outside the axes view limits. + + .. versionadded:: 3.10 + + **kwargs + Other keyword arguments are forwarded to `.Poly3DCollection`. + """ + + had_data = self.has_data() + + if Z.ndim != 2: + raise ValueError("Argument Z must be 2-dimensional.") + + Z = cbook._to_unmasked_float_array(Z) + X, Y, Z = np.broadcast_arrays(X, Y, Z) + rows, cols = Z.shape + + has_stride = 'rstride' in kwargs or 'cstride' in kwargs + has_count = 'rcount' in kwargs or 'ccount' in kwargs + + if has_stride and has_count: + raise ValueError("Cannot specify both stride and count arguments") + + rstride = kwargs.pop('rstride', 10) + cstride = kwargs.pop('cstride', 10) + rcount = kwargs.pop('rcount', 50) + ccount = kwargs.pop('ccount', 50) + + if mpl.rcParams['_internal.classic_mode']: + # Strides have priority over counts in classic mode. + # So, only compute strides from counts + # if counts were explicitly given + compute_strides = has_count + else: + # If the strides are provided then it has priority. + # Otherwise, compute the strides from the counts. + compute_strides = not has_stride + + if compute_strides: + rstride = int(max(np.ceil(rows / rcount), 1)) + cstride = int(max(np.ceil(cols / ccount), 1)) + + fcolors = kwargs.pop('facecolors', None) + + cmap = kwargs.get('cmap', None) + shade = kwargs.pop('shade', cmap is None) + if shade is None: + raise ValueError("shade cannot be None.") + + colset = [] # the sampled facecolor + if (rows - 1) % rstride == 0 and \ + (cols - 1) % cstride == 0 and \ + fcolors is None: + polys = np.stack( + [cbook._array_patch_perimeters(a, rstride, cstride) + for a in (X, Y, Z)], + axis=-1) + else: + # evenly spaced, and including both endpoints + row_inds = list(range(0, rows-1, rstride)) + [rows-1] + col_inds = list(range(0, cols-1, cstride)) + [cols-1] + + polys = [] + for rs, rs_next in itertools.pairwise(row_inds): + for cs, cs_next in itertools.pairwise(col_inds): + ps = [ + # +1 ensures we share edges between polygons + cbook._array_perimeter(a[rs:rs_next+1, cs:cs_next+1]) + for a in (X, Y, Z) + ] + # ps = np.stack(ps, axis=-1) + ps = np.array(ps).T + polys.append(ps) + + if fcolors is not None: + colset.append(fcolors[rs][cs]) + + # In cases where there are non-finite values in the data (possibly NaNs from + # masked arrays), artifacts can be introduced. Here check whether such values + # are present and remove them. + if not isinstance(polys, np.ndarray) or not np.isfinite(polys).all(): + new_polys = [] + new_colset = [] + + # Depending on fcolors, colset is either an empty list or has as + # many elements as polys. In the former case new_colset results in + # a list with None entries, that is discarded later. + for p, col in itertools.zip_longest(polys, colset): + new_poly = np.array(p)[np.isfinite(p).all(axis=1)] + if len(new_poly): + new_polys.append(new_poly) + new_colset.append(col) + + # Replace previous polys and, if fcolors is not None, colset + polys = new_polys + if fcolors is not None: + colset = new_colset + + # note that the striding causes some polygons to have more coordinates + # than others + + if fcolors is not None: + polyc = art3d.Poly3DCollection( + polys, edgecolors=colset, facecolors=colset, shade=shade, + lightsource=lightsource, axlim_clip=axlim_clip, **kwargs) + elif cmap: + polyc = art3d.Poly3DCollection(polys, axlim_clip=axlim_clip, **kwargs) + # can't always vectorize, because polys might be jagged + if isinstance(polys, np.ndarray): + avg_z = polys[..., 2].mean(axis=-1) + else: + avg_z = np.array([ps[:, 2].mean() for ps in polys]) + polyc.set_array(avg_z) + if vmin is not None or vmax is not None: + polyc.set_clim(vmin, vmax) + if norm is not None: + polyc.set_norm(norm) + else: + color = kwargs.pop('color', None) + if color is None: + color = self._get_lines.get_next_color() + color = np.array(mcolors.to_rgba(color)) + + polyc = art3d.Poly3DCollection( + polys, facecolors=color, shade=shade, lightsource=lightsource, + axlim_clip=axlim_clip, **kwargs) + + self.add_collection(polyc) + self.auto_scale_xyz(X, Y, Z, had_data) + + return polyc + + def plot_wireframe(self, X, Y, Z, *, axlim_clip=False, **kwargs): + """ + Plot a 3D wireframe. + + .. note:: + + The *rcount* and *ccount* kwargs, which both default to 50, + determine the maximum number of samples used in each direction. If + the input data is larger, it will be downsampled (by slicing) to + these numbers of points. + + Parameters + ---------- + X, Y, Z : 2D arrays + Data values. + + axlim_clip : bool, default: False + Whether to hide lines and patches with vertices outside the axes + view limits. + + .. versionadded:: 3.10 + + rcount, ccount : int + Maximum number of samples used in each direction. If the input + data is larger, it will be downsampled (by slicing) to these + numbers of points. Setting a count to zero causes the data to be + not sampled in the corresponding direction, producing a 3D line + plot rather than a wireframe plot. Defaults to 50. + + rstride, cstride : int + Downsampling stride in each direction. These arguments are + mutually exclusive with *rcount* and *ccount*. If only one of + *rstride* or *cstride* is set, the other defaults to 1. Setting a + stride to zero causes the data to be not sampled in the + corresponding direction, producing a 3D line plot rather than a + wireframe plot. + + 'classic' mode uses a default of ``rstride = cstride = 1`` instead + of the new default of ``rcount = ccount = 50``. + + **kwargs + Other keyword arguments are forwarded to `.Line3DCollection`. + """ + + had_data = self.has_data() + if Z.ndim != 2: + raise ValueError("Argument Z must be 2-dimensional.") + # FIXME: Support masked arrays + X, Y, Z = np.broadcast_arrays(X, Y, Z) + rows, cols = Z.shape + + has_stride = 'rstride' in kwargs or 'cstride' in kwargs + has_count = 'rcount' in kwargs or 'ccount' in kwargs + + if has_stride and has_count: + raise ValueError("Cannot specify both stride and count arguments") + + rstride = kwargs.pop('rstride', 1) + cstride = kwargs.pop('cstride', 1) + rcount = kwargs.pop('rcount', 50) + ccount = kwargs.pop('ccount', 50) + + if mpl.rcParams['_internal.classic_mode']: + # Strides have priority over counts in classic mode. + # So, only compute strides from counts + # if counts were explicitly given + if has_count: + rstride = int(max(np.ceil(rows / rcount), 1)) if rcount else 0 + cstride = int(max(np.ceil(cols / ccount), 1)) if ccount else 0 + else: + # If the strides are provided then it has priority. + # Otherwise, compute the strides from the counts. + if not has_stride: + rstride = int(max(np.ceil(rows / rcount), 1)) if rcount else 0 + cstride = int(max(np.ceil(cols / ccount), 1)) if ccount else 0 + + # We want two sets of lines, one running along the "rows" of + # Z and another set of lines running along the "columns" of Z. + # This transpose will make it easy to obtain the columns. + tX, tY, tZ = np.transpose(X), np.transpose(Y), np.transpose(Z) + + if rstride: + rii = list(range(0, rows, rstride)) + # Add the last index only if needed + if rows > 0 and rii[-1] != (rows - 1): + rii += [rows-1] + else: + rii = [] + if cstride: + cii = list(range(0, cols, cstride)) + # Add the last index only if needed + if cols > 0 and cii[-1] != (cols - 1): + cii += [cols-1] + else: + cii = [] + + if rstride == 0 and cstride == 0: + raise ValueError("Either rstride or cstride must be non zero") + + # If the inputs were empty, then just + # reset everything. + if Z.size == 0: + rii = [] + cii = [] + + xlines = [X[i] for i in rii] + ylines = [Y[i] for i in rii] + zlines = [Z[i] for i in rii] + + txlines = [tX[i] for i in cii] + tylines = [tY[i] for i in cii] + tzlines = [tZ[i] for i in cii] + + lines = ([list(zip(xl, yl, zl)) + for xl, yl, zl in zip(xlines, ylines, zlines)] + + [list(zip(xl, yl, zl)) + for xl, yl, zl in zip(txlines, tylines, tzlines)]) + + linec = art3d.Line3DCollection(lines, axlim_clip=axlim_clip, **kwargs) + self.add_collection(linec) + self.auto_scale_xyz(X, Y, Z, had_data) + + return linec + + def plot_trisurf(self, *args, color=None, norm=None, vmin=None, vmax=None, + lightsource=None, axlim_clip=False, **kwargs): + """ + Plot a triangulated surface. + + The (optional) triangulation can be specified in one of two ways; + either:: + + plot_trisurf(triangulation, ...) + + where triangulation is a `~matplotlib.tri.Triangulation` object, or:: + + plot_trisurf(X, Y, ...) + plot_trisurf(X, Y, triangles, ...) + plot_trisurf(X, Y, triangles=triangles, ...) + + in which case a Triangulation object will be created. See + `.Triangulation` for an explanation of these possibilities. + + The remaining arguments are:: + + plot_trisurf(..., Z) + + where *Z* is the array of values to contour, one per point + in the triangulation. + + Parameters + ---------- + X, Y, Z : array-like + Data values as 1D arrays. + color + Color of the surface patches. + cmap + A colormap for the surface patches. + norm : `~matplotlib.colors.Normalize`, optional + An instance of Normalize to map values to colors. + vmin, vmax : float, optional + Minimum and maximum value to map. + shade : bool, default: True + Whether to shade the facecolors. Shading is always disabled when + *cmap* is specified. + lightsource : `~matplotlib.colors.LightSource`, optional + The lightsource to use when *shade* is True. + axlim_clip : bool, default: False + Whether to hide patches with a vertex outside the axes view limits. + + .. versionadded:: 3.10 + **kwargs + All other keyword arguments are passed on to + :class:`~mpl_toolkits.mplot3d.art3d.Poly3DCollection` + + Examples + -------- + .. plot:: gallery/mplot3d/trisurf3d.py + .. plot:: gallery/mplot3d/trisurf3d_2.py + """ + + had_data = self.has_data() + + # TODO: Support custom face colours + if color is None: + color = self._get_lines.get_next_color() + color = np.array(mcolors.to_rgba(color)) + + cmap = kwargs.get('cmap', None) + shade = kwargs.pop('shade', cmap is None) + + tri, args, kwargs = \ + Triangulation.get_from_args_and_kwargs(*args, **kwargs) + try: + z = kwargs.pop('Z') + except KeyError: + # We do this so Z doesn't get passed as an arg to PolyCollection + z, *args = args + z = np.asarray(z) + + triangles = tri.get_masked_triangles() + xt = tri.x[triangles] + yt = tri.y[triangles] + zt = z[triangles] + verts = np.stack((xt, yt, zt), axis=-1) + + if cmap: + polyc = art3d.Poly3DCollection(verts, *args, + axlim_clip=axlim_clip, **kwargs) + # average over the three points of each triangle + avg_z = verts[:, :, 2].mean(axis=1) + polyc.set_array(avg_z) + if vmin is not None or vmax is not None: + polyc.set_clim(vmin, vmax) + if norm is not None: + polyc.set_norm(norm) + else: + polyc = art3d.Poly3DCollection( + verts, *args, shade=shade, lightsource=lightsource, + facecolors=color, axlim_clip=axlim_clip, **kwargs) + + self.add_collection(polyc) + self.auto_scale_xyz(tri.x, tri.y, z, had_data) + + return polyc + + def _3d_extend_contour(self, cset, stride=5): + """ + Extend a contour in 3D by creating + """ + + dz = (cset.levels[1] - cset.levels[0]) / 2 + polyverts = [] + colors = [] + for idx, level in enumerate(cset.levels): + path = cset.get_paths()[idx] + subpaths = [*path._iter_connected_components()] + color = cset.get_edgecolor()[idx] + top = art3d._paths_to_3d_segments(subpaths, level - dz) + bot = art3d._paths_to_3d_segments(subpaths, level + dz) + if not len(top[0]): + continue + nsteps = max(round(len(top[0]) / stride), 2) + stepsize = (len(top[0]) - 1) / (nsteps - 1) + polyverts.extend([ + (top[0][round(i * stepsize)], top[0][round((i + 1) * stepsize)], + bot[0][round((i + 1) * stepsize)], bot[0][round(i * stepsize)]) + for i in range(round(nsteps) - 1)]) + colors.extend([color] * (round(nsteps) - 1)) + self.add_collection3d(art3d.Poly3DCollection( + np.array(polyverts), # All polygons have 4 vertices, so vectorize. + facecolors=colors, edgecolors=colors, shade=True)) + cset.remove() + + def add_contour_set( + self, cset, extend3d=False, stride=5, zdir='z', offset=None, + axlim_clip=False): + zdir = '-' + zdir + if extend3d: + self._3d_extend_contour(cset, stride) + else: + art3d.collection_2d_to_3d( + cset, zs=offset if offset is not None else cset.levels, zdir=zdir, + axlim_clip=axlim_clip) + + def add_contourf_set(self, cset, zdir='z', offset=None, *, axlim_clip=False): + self._add_contourf_set(cset, zdir=zdir, offset=offset, + axlim_clip=axlim_clip) + + def _add_contourf_set(self, cset, zdir='z', offset=None, axlim_clip=False): + """ + Returns + ------- + levels : `numpy.ndarray` + Levels at which the filled contours are added. + """ + zdir = '-' + zdir + + midpoints = cset.levels[:-1] + np.diff(cset.levels) / 2 + # Linearly interpolate to get levels for any extensions + if cset._extend_min: + min_level = cset.levels[0] - np.diff(cset.levels[:2]) / 2 + midpoints = np.insert(midpoints, 0, min_level) + if cset._extend_max: + max_level = cset.levels[-1] + np.diff(cset.levels[-2:]) / 2 + midpoints = np.append(midpoints, max_level) + + art3d.collection_2d_to_3d( + cset, zs=offset if offset is not None else midpoints, zdir=zdir, + axlim_clip=axlim_clip) + return midpoints + + @_preprocess_data() + def contour(self, X, Y, Z, *args, + extend3d=False, stride=5, zdir='z', offset=None, axlim_clip=False, + **kwargs): + """ + Create a 3D contour plot. + + Parameters + ---------- + X, Y, Z : array-like, + Input data. See `.Axes.contour` for supported data shapes. + extend3d : bool, default: False + Whether to extend contour in 3D. + stride : int, default: 5 + Step size for extending contour. + zdir : {'x', 'y', 'z'}, default: 'z' + The direction to use. + offset : float, optional + If specified, plot a projection of the contour lines at this + position in a plane normal to *zdir*. + axlim_clip : bool, default: False + Whether to hide lines with a vertex outside the axes view limits. + + .. versionadded:: 3.10 + data : indexable object, optional + DATA_PARAMETER_PLACEHOLDER + + *args, **kwargs + Other arguments are forwarded to `matplotlib.axes.Axes.contour`. + + Returns + ------- + matplotlib.contour.QuadContourSet + """ + had_data = self.has_data() + + jX, jY, jZ = art3d.rotate_axes(X, Y, Z, zdir) + cset = super().contour(jX, jY, jZ, *args, **kwargs) + self.add_contour_set(cset, extend3d, stride, zdir, offset, axlim_clip) + + self.auto_scale_xyz(X, Y, Z, had_data) + return cset + + contour3D = contour + + @_preprocess_data() + def tricontour(self, *args, + extend3d=False, stride=5, zdir='z', offset=None, axlim_clip=False, + **kwargs): + """ + Create a 3D contour plot. + + .. note:: + This method currently produces incorrect output due to a + longstanding bug in 3D PolyCollection rendering. + + Parameters + ---------- + X, Y, Z : array-like + Input data. See `.Axes.tricontour` for supported data shapes. + extend3d : bool, default: False + Whether to extend contour in 3D. + stride : int, default: 5 + Step size for extending contour. + zdir : {'x', 'y', 'z'}, default: 'z' + The direction to use. + offset : float, optional + If specified, plot a projection of the contour lines at this + position in a plane normal to *zdir*. + axlim_clip : bool, default: False + Whether to hide lines with a vertex outside the axes view limits. + + .. versionadded:: 3.10 + data : indexable object, optional + DATA_PARAMETER_PLACEHOLDER + *args, **kwargs + Other arguments are forwarded to `matplotlib.axes.Axes.tricontour`. + + Returns + ------- + matplotlib.tri._tricontour.TriContourSet + """ + had_data = self.has_data() + + tri, args, kwargs = Triangulation.get_from_args_and_kwargs( + *args, **kwargs) + X = tri.x + Y = tri.y + if 'Z' in kwargs: + Z = kwargs.pop('Z') + else: + # We do this so Z doesn't get passed as an arg to Axes.tricontour + Z, *args = args + + jX, jY, jZ = art3d.rotate_axes(X, Y, Z, zdir) + tri = Triangulation(jX, jY, tri.triangles, tri.mask) + + cset = super().tricontour(tri, jZ, *args, **kwargs) + self.add_contour_set(cset, extend3d, stride, zdir, offset, axlim_clip) + + self.auto_scale_xyz(X, Y, Z, had_data) + return cset + + def _auto_scale_contourf(self, X, Y, Z, zdir, levels, had_data): + # Autoscale in the zdir based on the levels added, which are + # different from data range if any contour extensions are present + dim_vals = {'x': X, 'y': Y, 'z': Z, zdir: levels} + # Input data and levels have different sizes, but auto_scale_xyz + # expected same-size input, so manually take min/max limits + limits = [(np.nanmin(dim_vals[dim]), np.nanmax(dim_vals[dim])) + for dim in ['x', 'y', 'z']] + self.auto_scale_xyz(*limits, had_data) + + @_preprocess_data() + def contourf(self, X, Y, Z, *args, + zdir='z', offset=None, axlim_clip=False, **kwargs): + """ + Create a 3D filled contour plot. + + Parameters + ---------- + X, Y, Z : array-like + Input data. See `.Axes.contourf` for supported data shapes. + zdir : {'x', 'y', 'z'}, default: 'z' + The direction to use. + offset : float, optional + If specified, plot a projection of the contour lines at this + position in a plane normal to *zdir*. + axlim_clip : bool, default: False + Whether to hide lines with a vertex outside the axes view limits. + + .. versionadded:: 3.10 + data : indexable object, optional + DATA_PARAMETER_PLACEHOLDER + *args, **kwargs + Other arguments are forwarded to `matplotlib.axes.Axes.contourf`. + + Returns + ------- + matplotlib.contour.QuadContourSet + """ + had_data = self.has_data() + + jX, jY, jZ = art3d.rotate_axes(X, Y, Z, zdir) + cset = super().contourf(jX, jY, jZ, *args, **kwargs) + levels = self._add_contourf_set(cset, zdir, offset, axlim_clip) + + self._auto_scale_contourf(X, Y, Z, zdir, levels, had_data) + return cset + + contourf3D = contourf + + @_preprocess_data() + def tricontourf(self, *args, zdir='z', offset=None, axlim_clip=False, **kwargs): + """ + Create a 3D filled contour plot. + + .. note:: + This method currently produces incorrect output due to a + longstanding bug in 3D PolyCollection rendering. + + Parameters + ---------- + X, Y, Z : array-like + Input data. See `.Axes.tricontourf` for supported data shapes. + zdir : {'x', 'y', 'z'}, default: 'z' + The direction to use. + offset : float, optional + If specified, plot a projection of the contour lines at this + position in a plane normal to zdir. + axlim_clip : bool, default: False + Whether to hide lines with a vertex outside the axes view limits. + + .. versionadded:: 3.10 + data : indexable object, optional + DATA_PARAMETER_PLACEHOLDER + *args, **kwargs + Other arguments are forwarded to + `matplotlib.axes.Axes.tricontourf`. + + Returns + ------- + matplotlib.tri._tricontour.TriContourSet + """ + had_data = self.has_data() + + tri, args, kwargs = Triangulation.get_from_args_and_kwargs( + *args, **kwargs) + X = tri.x + Y = tri.y + if 'Z' in kwargs: + Z = kwargs.pop('Z') + else: + # We do this so Z doesn't get passed as an arg to Axes.tricontourf + Z, *args = args + + jX, jY, jZ = art3d.rotate_axes(X, Y, Z, zdir) + tri = Triangulation(jX, jY, tri.triangles, tri.mask) + + cset = super().tricontourf(tri, jZ, *args, **kwargs) + levels = self._add_contourf_set(cset, zdir, offset, axlim_clip) + + self._auto_scale_contourf(X, Y, Z, zdir, levels, had_data) + return cset + + def add_collection3d(self, col, zs=0, zdir='z', autolim=True, *, + axlim_clip=False): + """ + Add a 3D collection object to the plot. + + 2D collection types are converted to a 3D version by + modifying the object and adding z coordinate information, + *zs* and *zdir*. + + Supported 2D collection types are: + + - `.PolyCollection` + - `.LineCollection` + - `.PatchCollection` (currently not supporting *autolim*) + + Parameters + ---------- + col : `.Collection` + A 2D collection object. + zs : float or array-like, default: 0 + The z-positions to be used for the 2D objects. + zdir : {'x', 'y', 'z'}, default: 'z' + The direction to use for the z-positions. + autolim : bool, default: True + Whether to update the data limits. + axlim_clip : bool, default: False + Whether to hide the scatter points outside the axes view limits. + + .. versionadded:: 3.10 + """ + had_data = self.has_data() + + zvals = np.atleast_1d(zs) + zsortval = (np.min(zvals) if zvals.size + else 0) # FIXME: arbitrary default + + # FIXME: use issubclass() (although, then a 3D collection + # object would also pass.) Maybe have a collection3d + # abstract class to test for and exclude? + if type(col) is mcoll.PolyCollection: + art3d.poly_collection_2d_to_3d(col, zs=zs, zdir=zdir, + axlim_clip=axlim_clip) + col.set_sort_zpos(zsortval) + elif type(col) is mcoll.LineCollection: + art3d.line_collection_2d_to_3d(col, zs=zs, zdir=zdir, + axlim_clip=axlim_clip) + col.set_sort_zpos(zsortval) + elif type(col) is mcoll.PatchCollection: + art3d.patch_collection_2d_to_3d(col, zs=zs, zdir=zdir, + axlim_clip=axlim_clip) + col.set_sort_zpos(zsortval) + + if autolim: + if isinstance(col, art3d.Line3DCollection): + self.auto_scale_xyz(*np.array(col._segments3d).transpose(), + had_data=had_data) + elif isinstance(col, art3d.Poly3DCollection): + self.auto_scale_xyz(*col._vec[:-1], had_data=had_data) + elif isinstance(col, art3d.Patch3DCollection): + pass + # FIXME: Implement auto-scaling function for Patch3DCollection + # Currently unable to do so due to issues with Patch3DCollection + # See https://github.com/matplotlib/matplotlib/issues/14298 for details + + collection = super().add_collection(col) + return collection + + @_preprocess_data(replace_names=["xs", "ys", "zs", "s", + "edgecolors", "c", "facecolor", + "facecolors", "color"]) + def scatter(self, xs, ys, + zs=0, zdir='z', s=20, c=None, depthshade=True, *args, + axlim_clip=False, **kwargs): + """ + Create a scatter plot. + + Parameters + ---------- + xs, ys : array-like + The data positions. + zs : float or array-like, default: 0 + The z-positions. Either an array of the same length as *xs* and + *ys* or a single value to place all points in the same plane. + zdir : {'x', 'y', 'z', '-x', '-y', '-z'}, default: 'z' + The axis direction for the *zs*. This is useful when plotting 2D + data on a 3D Axes. The data must be passed as *xs*, *ys*. Setting + *zdir* to 'y' then plots the data to the x-z-plane. + + See also :doc:`/gallery/mplot3d/2dcollections3d`. + + s : float or array-like, default: 20 + The marker size in points**2. Either an array of the same length + as *xs* and *ys* or a single value to make all markers the same + size. + c : :mpltype:`color`, sequence, or sequence of colors, optional + The marker color. Possible values: + + - A single color format string. + - A sequence of colors of length n. + - A sequence of n numbers to be mapped to colors using *cmap* and + *norm*. + - A 2D array in which the rows are RGB or RGBA. + + For more details see the *c* argument of `~.axes.Axes.scatter`. + depthshade : bool, default: True + Whether to shade the scatter markers to give the appearance of + depth. Each call to ``scatter()`` will perform its depthshading + independently. + axlim_clip : bool, default: False + Whether to hide the scatter points outside the axes view limits. + + .. versionadded:: 3.10 + data : indexable object, optional + DATA_PARAMETER_PLACEHOLDER + **kwargs + All other keyword arguments are passed on to `~.axes.Axes.scatter`. + + Returns + ------- + paths : `~matplotlib.collections.PathCollection` + """ + + had_data = self.has_data() + zs_orig = zs + + xs, ys, zs = cbook._broadcast_with_masks(xs, ys, zs) + s = np.ma.ravel(s) # This doesn't have to match x, y in size. + + xs, ys, zs, s, c, color = cbook.delete_masked_points( + xs, ys, zs, s, c, kwargs.get('color', None) + ) + if kwargs.get("color") is not None: + kwargs['color'] = color + + # For xs and ys, 2D scatter() will do the copying. + if np.may_share_memory(zs_orig, zs): # Avoid unnecessary copies. + zs = zs.copy() + + patches = super().scatter(xs, ys, s=s, c=c, *args, **kwargs) + art3d.patch_collection_2d_to_3d(patches, zs=zs, zdir=zdir, + depthshade=depthshade, + axlim_clip=axlim_clip) + + if self._zmargin < 0.05 and xs.size > 0: + self.set_zmargin(0.05) + + self.auto_scale_xyz(xs, ys, zs, had_data) + + return patches + + scatter3D = scatter + + @_preprocess_data() + def bar(self, left, height, zs=0, zdir='z', *args, + axlim_clip=False, **kwargs): + """ + Add 2D bar(s). + + Parameters + ---------- + left : 1D array-like + The x coordinates of the left sides of the bars. + height : 1D array-like + The height of the bars. + zs : float or 1D array-like, default: 0 + Z coordinate of bars; if a single value is specified, it will be + used for all bars. + zdir : {'x', 'y', 'z'}, default: 'z' + When plotting 2D data, the direction to use as z ('x', 'y' or 'z'). + axlim_clip : bool, default: False + Whether to hide bars with points outside the axes view limits. + + .. versionadded:: 3.10 + data : indexable object, optional + DATA_PARAMETER_PLACEHOLDER + **kwargs + Other keyword arguments are forwarded to + `matplotlib.axes.Axes.bar`. + + Returns + ------- + mpl_toolkits.mplot3d.art3d.Patch3DCollection + """ + had_data = self.has_data() + + patches = super().bar(left, height, *args, **kwargs) + + zs = np.broadcast_to(zs, len(left), subok=True) + + verts = [] + verts_zs = [] + for p, z in zip(patches, zs): + vs = art3d._get_patch_verts(p) + verts += vs.tolist() + verts_zs += [z] * len(vs) + art3d.patch_2d_to_3d(p, z, zdir, axlim_clip) + if 'alpha' in kwargs: + p.set_alpha(kwargs['alpha']) + + if len(verts) > 0: + # the following has to be skipped if verts is empty + # NOTE: Bugs could still occur if len(verts) > 0, + # but the "2nd dimension" is empty. + xs, ys = zip(*verts) + else: + xs, ys = [], [] + + xs, ys, verts_zs = art3d.juggle_axes(xs, ys, verts_zs, zdir) + self.auto_scale_xyz(xs, ys, verts_zs, had_data) + + return patches + + @_preprocess_data() + def bar3d(self, x, y, z, dx, dy, dz, color=None, + zsort='average', shade=True, lightsource=None, *args, + axlim_clip=False, **kwargs): + """ + Generate a 3D barplot. + + This method creates three-dimensional barplot where the width, + depth, height, and color of the bars can all be uniquely set. + + Parameters + ---------- + x, y, z : array-like + The coordinates of the anchor point of the bars. + + dx, dy, dz : float or array-like + The width, depth, and height of the bars, respectively. + + color : sequence of colors, optional + The color of the bars can be specified globally or + individually. This parameter can be: + + - A single color, to color all bars the same color. + - An array of colors of length N bars, to color each bar + independently. + - An array of colors of length 6, to color the faces of the + bars similarly. + - An array of colors of length 6 * N bars, to color each face + independently. + + When coloring the faces of the boxes specifically, this is + the order of the coloring: + + 1. -Z (bottom of box) + 2. +Z (top of box) + 3. -Y + 4. +Y + 5. -X + 6. +X + + zsort : {'average', 'min', 'max'}, default: 'average' + The z-axis sorting scheme passed onto `~.art3d.Poly3DCollection` + + shade : bool, default: True + When true, this shades the dark sides of the bars (relative + to the plot's source of light). + + lightsource : `~matplotlib.colors.LightSource`, optional + The lightsource to use when *shade* is True. + + axlim_clip : bool, default: False + Whether to hide the bars with points outside the axes view limits. + + .. versionadded:: 3.10 + + data : indexable object, optional + DATA_PARAMETER_PLACEHOLDER + + **kwargs + Any additional keyword arguments are passed onto + `~.art3d.Poly3DCollection`. + + Returns + ------- + collection : `~.art3d.Poly3DCollection` + A collection of three-dimensional polygons representing the bars. + """ + + had_data = self.has_data() + + x, y, z, dx, dy, dz = np.broadcast_arrays( + np.atleast_1d(x), y, z, dx, dy, dz) + minx = np.min(x) + maxx = np.max(x + dx) + miny = np.min(y) + maxy = np.max(y + dy) + minz = np.min(z) + maxz = np.max(z + dz) + + # shape (6, 4, 3) + # All faces are oriented facing outwards - when viewed from the + # outside, their vertices are in a counterclockwise ordering. + cuboid = np.array([ + # -z + ( + (0, 0, 0), + (0, 1, 0), + (1, 1, 0), + (1, 0, 0), + ), + # +z + ( + (0, 0, 1), + (1, 0, 1), + (1, 1, 1), + (0, 1, 1), + ), + # -y + ( + (0, 0, 0), + (1, 0, 0), + (1, 0, 1), + (0, 0, 1), + ), + # +y + ( + (0, 1, 0), + (0, 1, 1), + (1, 1, 1), + (1, 1, 0), + ), + # -x + ( + (0, 0, 0), + (0, 0, 1), + (0, 1, 1), + (0, 1, 0), + ), + # +x + ( + (1, 0, 0), + (1, 1, 0), + (1, 1, 1), + (1, 0, 1), + ), + ]) + + # indexed by [bar, face, vertex, coord] + polys = np.empty(x.shape + cuboid.shape) + + # handle each coordinate separately + for i, p, dp in [(0, x, dx), (1, y, dy), (2, z, dz)]: + p = p[..., np.newaxis, np.newaxis] + dp = dp[..., np.newaxis, np.newaxis] + polys[..., i] = p + dp * cuboid[..., i] + + # collapse the first two axes + polys = polys.reshape((-1,) + polys.shape[2:]) + + facecolors = [] + if color is None: + color = [self._get_patches_for_fill.get_next_color()] + + color = list(mcolors.to_rgba_array(color)) + + if len(color) == len(x): + # bar colors specified, need to expand to number of faces + for c in color: + facecolors.extend([c] * 6) + else: + # a single color specified, or face colors specified explicitly + facecolors = color + if len(facecolors) < len(x): + facecolors *= (6 * len(x)) + + col = art3d.Poly3DCollection(polys, + zsort=zsort, + facecolors=facecolors, + shade=shade, + lightsource=lightsource, + axlim_clip=axlim_clip, + *args, **kwargs) + self.add_collection(col) + + self.auto_scale_xyz((minx, maxx), (miny, maxy), (minz, maxz), had_data) + + return col + + def set_title(self, label, fontdict=None, loc='center', **kwargs): + # docstring inherited + ret = super().set_title(label, fontdict=fontdict, loc=loc, **kwargs) + (x, y) = self.title.get_position() + self.title.set_y(0.92 * y) + return ret + + @_preprocess_data() + def quiver(self, X, Y, Z, U, V, W, *, + length=1, arrow_length_ratio=.3, pivot='tail', normalize=False, + axlim_clip=False, **kwargs): + """ + Plot a 3D field of arrows. + + The arguments can be array-like or scalars, so long as they can be + broadcast together. The arguments can also be masked arrays. If an + element in any of argument is masked, then that corresponding quiver + element will not be plotted. + + Parameters + ---------- + X, Y, Z : array-like + The x, y and z coordinates of the arrow locations (default is + tail of arrow; see *pivot* kwarg). + + U, V, W : array-like + The x, y and z components of the arrow vectors. + + length : float, default: 1 + The length of each quiver. + + arrow_length_ratio : float, default: 0.3 + The ratio of the arrow head with respect to the quiver. + + pivot : {'tail', 'middle', 'tip'}, default: 'tail' + The part of the arrow that is at the grid point; the arrow + rotates about this point, hence the name *pivot*. + + normalize : bool, default: False + Whether all arrows are normalized to have the same length, or keep + the lengths defined by *u*, *v*, and *w*. + + axlim_clip : bool, default: False + Whether to hide arrows with points outside the axes view limits. + + .. versionadded:: 3.10 + + data : indexable object, optional + DATA_PARAMETER_PLACEHOLDER + + **kwargs + Any additional keyword arguments are delegated to + :class:`.Line3DCollection` + """ + + def calc_arrows(UVW): + # get unit direction vector perpendicular to (u, v, w) + x = UVW[:, 0] + y = UVW[:, 1] + norm = np.linalg.norm(UVW[:, :2], axis=1) + x_p = np.divide(y, norm, where=norm != 0, out=np.zeros_like(x)) + y_p = np.divide(-x, norm, where=norm != 0, out=np.ones_like(x)) + # compute the two arrowhead direction unit vectors + rangle = math.radians(15) + c = math.cos(rangle) + s = math.sin(rangle) + # construct the rotation matrices of shape (3, 3, n) + r13 = y_p * s + r32 = x_p * s + r12 = x_p * y_p * (1 - c) + Rpos = np.array( + [[c + (x_p ** 2) * (1 - c), r12, r13], + [r12, c + (y_p ** 2) * (1 - c), -r32], + [-r13, r32, np.full_like(x_p, c)]]) + # opposite rotation negates all the sin terms + Rneg = Rpos.copy() + Rneg[[0, 1, 2, 2], [2, 2, 0, 1]] *= -1 + # Batch n (3, 3) x (3) matrix multiplications ((3, 3, n) x (n, 3)). + Rpos_vecs = np.einsum("ij...,...j->...i", Rpos, UVW) + Rneg_vecs = np.einsum("ij...,...j->...i", Rneg, UVW) + # Stack into (n, 2, 3) result. + return np.stack([Rpos_vecs, Rneg_vecs], axis=1) + + had_data = self.has_data() + + input_args = cbook._broadcast_with_masks(X, Y, Z, U, V, W, + compress=True) + + if any(len(v) == 0 for v in input_args): + # No quivers, so just make an empty collection and return early + linec = art3d.Line3DCollection([], **kwargs) + self.add_collection(linec) + return linec + + shaft_dt = np.array([0., length], dtype=float) + arrow_dt = shaft_dt * arrow_length_ratio + + _api.check_in_list(['tail', 'middle', 'tip'], pivot=pivot) + if pivot == 'tail': + shaft_dt -= length + elif pivot == 'middle': + shaft_dt -= length / 2 + + XYZ = np.column_stack(input_args[:3]) + UVW = np.column_stack(input_args[3:]).astype(float) + + # Normalize rows of UVW + if normalize: + norm = np.linalg.norm(UVW, axis=1) + norm[norm == 0] = 1 + UVW = UVW / norm.reshape((-1, 1)) + + if len(XYZ) > 0: + # compute the shaft lines all at once with an outer product + shafts = (XYZ - np.multiply.outer(shaft_dt, UVW)).swapaxes(0, 1) + # compute head direction vectors, n heads x 2 sides x 3 dimensions + head_dirs = calc_arrows(UVW) + # compute all head lines at once, starting from the shaft ends + heads = shafts[:, :1] - np.multiply.outer(arrow_dt, head_dirs) + # stack left and right head lines together + heads = heads.reshape((len(arrow_dt), -1, 3)) + # transpose to get a list of lines + heads = heads.swapaxes(0, 1) + + lines = [*shafts, *heads[::2], *heads[1::2]] + else: + lines = [] + + linec = art3d.Line3DCollection(lines, axlim_clip=axlim_clip, **kwargs) + self.add_collection(linec) + + self.auto_scale_xyz(XYZ[:, 0], XYZ[:, 1], XYZ[:, 2], had_data) + + return linec + + quiver3D = quiver + + def voxels(self, *args, facecolors=None, edgecolors=None, shade=True, + lightsource=None, axlim_clip=False, **kwargs): + """ + ax.voxels([x, y, z,] /, filled, facecolors=None, edgecolors=None, \ +**kwargs) + + Plot a set of filled voxels + + All voxels are plotted as 1x1x1 cubes on the axis, with + ``filled[0, 0, 0]`` placed with its lower corner at the origin. + Occluded faces are not plotted. + + Parameters + ---------- + filled : 3D np.array of bool + A 3D array of values, with truthy values indicating which voxels + to fill + + x, y, z : 3D np.array, optional + The coordinates of the corners of the voxels. This should broadcast + to a shape one larger in every dimension than the shape of + *filled*. These can be used to plot non-cubic voxels. + + If not specified, defaults to increasing integers along each axis, + like those returned by :func:`~numpy.indices`. + As indicated by the ``/`` in the function signature, these + arguments can only be passed positionally. + + facecolors, edgecolors : array-like, optional + The color to draw the faces and edges of the voxels. Can only be + passed as keyword arguments. + These parameters can be: + + - A single color value, to color all voxels the same color. This + can be either a string, or a 1D RGB/RGBA array + - ``None``, the default, to use a single color for the faces, and + the style default for the edges. + - A 3D `~numpy.ndarray` of color names, with each item the color + for the corresponding voxel. The size must match the voxels. + - A 4D `~numpy.ndarray` of RGB/RGBA data, with the components + along the last axis. + + shade : bool, default: True + Whether to shade the facecolors. + + lightsource : `~matplotlib.colors.LightSource`, optional + The lightsource to use when *shade* is True. + + axlim_clip : bool, default: False + Whether to hide voxels with points outside the axes view limits. + + .. versionadded:: 3.10 + + **kwargs + Additional keyword arguments to pass onto + `~mpl_toolkits.mplot3d.art3d.Poly3DCollection`. + + Returns + ------- + faces : dict + A dictionary indexed by coordinate, where ``faces[i, j, k]`` is a + `.Poly3DCollection` of the faces drawn for the voxel + ``filled[i, j, k]``. If no faces were drawn for a given voxel, + either because it was not asked to be drawn, or it is fully + occluded, then ``(i, j, k) not in faces``. + + Examples + -------- + .. plot:: gallery/mplot3d/voxels.py + .. plot:: gallery/mplot3d/voxels_rgb.py + .. plot:: gallery/mplot3d/voxels_torus.py + .. plot:: gallery/mplot3d/voxels_numpy_logo.py + """ + + # work out which signature we should be using, and use it to parse + # the arguments. Name must be voxels for the correct error message + if len(args) >= 3: + # underscores indicate position only + def voxels(__x, __y, __z, filled, **kwargs): + return (__x, __y, __z), filled, kwargs + else: + def voxels(filled, **kwargs): + return None, filled, kwargs + + xyz, filled, kwargs = voxels(*args, **kwargs) + + # check dimensions + if filled.ndim != 3: + raise ValueError("Argument filled must be 3-dimensional") + size = np.array(filled.shape, dtype=np.intp) + + # check xyz coordinates, which are one larger than the filled shape + coord_shape = tuple(size + 1) + if xyz is None: + x, y, z = np.indices(coord_shape) + else: + x, y, z = (np.broadcast_to(c, coord_shape) for c in xyz) + + def _broadcast_color_arg(color, name): + if np.ndim(color) in (0, 1): + # single color, like "red" or [1, 0, 0] + return np.broadcast_to(color, filled.shape + np.shape(color)) + elif np.ndim(color) in (3, 4): + # 3D array of strings, or 4D array with last axis rgb + if np.shape(color)[:3] != filled.shape: + raise ValueError( + f"When multidimensional, {name} must match the shape " + "of filled") + return color + else: + raise ValueError(f"Invalid {name} argument") + + # broadcast and default on facecolors + if facecolors is None: + facecolors = self._get_patches_for_fill.get_next_color() + facecolors = _broadcast_color_arg(facecolors, 'facecolors') + + # broadcast but no default on edgecolors + edgecolors = _broadcast_color_arg(edgecolors, 'edgecolors') + + # scale to the full array, even if the data is only in the center + self.auto_scale_xyz(x, y, z) + + # points lying on corners of a square + square = np.array([ + [0, 0, 0], + [1, 0, 0], + [1, 1, 0], + [0, 1, 0], + ], dtype=np.intp) + + voxel_faces = defaultdict(list) + + def permutation_matrices(n): + """Generate cyclic permutation matrices.""" + mat = np.eye(n, dtype=np.intp) + for i in range(n): + yield mat + mat = np.roll(mat, 1, axis=0) + + # iterate over each of the YZ, ZX, and XY orientations, finding faces + # to render + for permute in permutation_matrices(3): + # find the set of ranges to iterate over + pc, qc, rc = permute.T.dot(size) + pinds = np.arange(pc) + qinds = np.arange(qc) + rinds = np.arange(rc) + + square_rot_pos = square.dot(permute.T) + square_rot_neg = square_rot_pos[::-1] + + # iterate within the current plane + for p in pinds: + for q in qinds: + # iterate perpendicularly to the current plane, handling + # boundaries. We only draw faces between a voxel and an + # empty space, to avoid drawing internal faces. + + # draw lower faces + p0 = permute.dot([p, q, 0]) + i0 = tuple(p0) + if filled[i0]: + voxel_faces[i0].append(p0 + square_rot_neg) + + # draw middle faces + for r1, r2 in itertools.pairwise(rinds): + p1 = permute.dot([p, q, r1]) + p2 = permute.dot([p, q, r2]) + + i1 = tuple(p1) + i2 = tuple(p2) + + if filled[i1] and not filled[i2]: + voxel_faces[i1].append(p2 + square_rot_pos) + elif not filled[i1] and filled[i2]: + voxel_faces[i2].append(p2 + square_rot_neg) + + # draw upper faces + pk = permute.dot([p, q, rc-1]) + pk2 = permute.dot([p, q, rc]) + ik = tuple(pk) + if filled[ik]: + voxel_faces[ik].append(pk2 + square_rot_pos) + + # iterate over the faces, and generate a Poly3DCollection for each + # voxel + polygons = {} + for coord, faces_inds in voxel_faces.items(): + # convert indices into 3D positions + if xyz is None: + faces = faces_inds + else: + faces = [] + for face_inds in faces_inds: + ind = face_inds[:, 0], face_inds[:, 1], face_inds[:, 2] + face = np.empty(face_inds.shape) + face[:, 0] = x[ind] + face[:, 1] = y[ind] + face[:, 2] = z[ind] + faces.append(face) + + # shade the faces + facecolor = facecolors[coord] + edgecolor = edgecolors[coord] + + poly = art3d.Poly3DCollection( + faces, facecolors=facecolor, edgecolors=edgecolor, + shade=shade, lightsource=lightsource, axlim_clip=axlim_clip, + **kwargs) + self.add_collection3d(poly) + polygons[coord] = poly + + return polygons + + @_preprocess_data(replace_names=["x", "y", "z", "xerr", "yerr", "zerr"]) + def errorbar(self, x, y, z, zerr=None, yerr=None, xerr=None, fmt='', + barsabove=False, errorevery=1, ecolor=None, elinewidth=None, + capsize=None, capthick=None, xlolims=False, xuplims=False, + ylolims=False, yuplims=False, zlolims=False, zuplims=False, + axlim_clip=False, + **kwargs): + """ + Plot lines and/or markers with errorbars around them. + + *x*/*y*/*z* define the data locations, and *xerr*/*yerr*/*zerr* define + the errorbar sizes. By default, this draws the data markers/lines as + well the errorbars. Use fmt='none' to draw errorbars only. + + Parameters + ---------- + x, y, z : float or array-like + The data positions. + + xerr, yerr, zerr : float or array-like, shape (N,) or (2, N), optional + The errorbar sizes: + + - scalar: Symmetric +/- values for all data points. + - shape(N,): Symmetric +/-values for each data point. + - shape(2, N): Separate - and + values for each bar. First row + contains the lower errors, the second row contains the upper + errors. + - *None*: No errorbar. + + Note that all error arrays should have *positive* values. + + fmt : str, default: '' + The format for the data points / data lines. See `.plot` for + details. + + Use 'none' (case-insensitive) to plot errorbars without any data + markers. + + ecolor : :mpltype:`color`, default: None + The color of the errorbar lines. If None, use the color of the + line connecting the markers. + + elinewidth : float, default: None + The linewidth of the errorbar lines. If None, the linewidth of + the current style is used. + + capsize : float, default: :rc:`errorbar.capsize` + The length of the error bar caps in points. + + capthick : float, default: None + An alias to the keyword argument *markeredgewidth* (a.k.a. *mew*). + This setting is a more sensible name for the property that + controls the thickness of the error bar cap in points. For + backwards compatibility, if *mew* or *markeredgewidth* are given, + then they will over-ride *capthick*. This may change in future + releases. + + barsabove : bool, default: False + If True, will plot the errorbars above the plot + symbols. Default is below. + + xlolims, ylolims, zlolims : bool, default: False + These arguments can be used to indicate that a value gives only + lower limits. In that case a caret symbol is used to indicate + this. *lims*-arguments may be scalars, or array-likes of the same + length as the errors. To use limits with inverted axes, + `~.set_xlim`, `~.set_ylim`, or `~.set_zlim` must be + called before `errorbar`. Note the tricky parameter names: setting + e.g. *ylolims* to True means that the y-value is a *lower* limit of + the True value, so, only an *upward*-pointing arrow will be drawn! + + xuplims, yuplims, zuplims : bool, default: False + Same as above, but for controlling the upper limits. + + errorevery : int or (int, int), default: 1 + draws error bars on a subset of the data. *errorevery* =N draws + error bars on the points (x[::N], y[::N], z[::N]). + *errorevery* =(start, N) draws error bars on the points + (x[start::N], y[start::N], z[start::N]). e.g. *errorevery* =(6, 3) + adds error bars to the data at (x[6], x[9], x[12], x[15], ...). + Used to avoid overlapping error bars when two series share x-axis + values. + + axlim_clip : bool, default: False + Whether to hide error bars that are outside the axes limits. + + .. versionadded:: 3.10 + + Returns + ------- + errlines : list + List of `~mpl_toolkits.mplot3d.art3d.Line3DCollection` instances + each containing an errorbar line. + caplines : list + List of `~mpl_toolkits.mplot3d.art3d.Line3D` instances each + containing a capline object. + limmarks : list + List of `~mpl_toolkits.mplot3d.art3d.Line3D` instances each + containing a marker with an upper or lower limit. + + Other Parameters + ---------------- + data : indexable object, optional + DATA_PARAMETER_PLACEHOLDER + + **kwargs + All other keyword arguments for styling errorbar lines are passed + `~mpl_toolkits.mplot3d.art3d.Line3DCollection`. + + Examples + -------- + .. plot:: gallery/mplot3d/errorbar3d.py + """ + had_data = self.has_data() + + kwargs = cbook.normalize_kwargs(kwargs, mlines.Line2D) + # Drop anything that comes in as None to use the default instead. + kwargs = {k: v for k, v in kwargs.items() if v is not None} + kwargs.setdefault('zorder', 2) + + self._process_unit_info([("x", x), ("y", y), ("z", z)], kwargs, + convert=False) + + # make sure all the args are iterable; use lists not arrays to + # preserve units + x = x if np.iterable(x) else [x] + y = y if np.iterable(y) else [y] + z = z if np.iterable(z) else [z] + + if not len(x) == len(y) == len(z): + raise ValueError("'x', 'y', and 'z' must have the same size") + + everymask = self._errorevery_to_mask(x, errorevery) + + label = kwargs.pop("label", None) + kwargs['label'] = '_nolegend_' + + # Create the main line and determine overall kwargs for child artists. + # We avoid calling self.plot() directly, or self._get_lines(), because + # that would call self._process_unit_info again, and do other indirect + # data processing. + (data_line, base_style), = self._get_lines._plot_args( + self, (x, y) if fmt == '' else (x, y, fmt), kwargs, return_kwargs=True) + art3d.line_2d_to_3d(data_line, zs=z, axlim_clip=axlim_clip) + + # Do this after creating `data_line` to avoid modifying `base_style`. + if barsabove: + data_line.set_zorder(kwargs['zorder'] - .1) + else: + data_line.set_zorder(kwargs['zorder'] + .1) + + # Add line to plot, or throw it away and use it to determine kwargs. + if fmt.lower() != 'none': + self.add_line(data_line) + else: + data_line = None + # Remove alpha=0 color that _process_plot_format returns. + base_style.pop('color') + + if 'color' not in base_style: + base_style['color'] = 'C0' + if ecolor is None: + ecolor = base_style['color'] + + # Eject any line-specific information from format string, as it's not + # needed for bars or caps. + for key in ['marker', 'markersize', 'markerfacecolor', + 'markeredgewidth', 'markeredgecolor', 'markevery', + 'linestyle', 'fillstyle', 'drawstyle', 'dash_capstyle', + 'dash_joinstyle', 'solid_capstyle', 'solid_joinstyle']: + base_style.pop(key, None) + + # Make the style dict for the line collections (the bars). + eb_lines_style = {**base_style, 'color': ecolor} + + if elinewidth: + eb_lines_style['linewidth'] = elinewidth + elif 'linewidth' in kwargs: + eb_lines_style['linewidth'] = kwargs['linewidth'] + + for key in ('transform', 'alpha', 'zorder', 'rasterized'): + if key in kwargs: + eb_lines_style[key] = kwargs[key] + + # Make the style dict for caps (the "hats"). + eb_cap_style = {**base_style, 'linestyle': 'None'} + if capsize is None: + capsize = mpl.rcParams["errorbar.capsize"] + if capsize > 0: + eb_cap_style['markersize'] = 2. * capsize + if capthick is not None: + eb_cap_style['markeredgewidth'] = capthick + eb_cap_style['color'] = ecolor + + def _apply_mask(arrays, mask): + # Return, for each array in *arrays*, the elements for which *mask* + # is True, without using fancy indexing. + return [[*itertools.compress(array, mask)] for array in arrays] + + def _extract_errs(err, data, lomask, himask): + # For separate +/- error values we need to unpack err + if len(err.shape) == 2: + low_err, high_err = err + else: + low_err, high_err = err, err + + lows = np.where(lomask | ~everymask, data, data - low_err) + highs = np.where(himask | ~everymask, data, data + high_err) + + return lows, highs + + # collect drawn items while looping over the three coordinates + errlines, caplines, limmarks = [], [], [] + + # list of endpoint coordinates, used for auto-scaling + coorderrs = [] + + # define the markers used for errorbar caps and limits below + # the dictionary key is mapped by the `i_xyz` helper dictionary + capmarker = {0: '|', 1: '|', 2: '_'} + i_xyz = {'x': 0, 'y': 1, 'z': 2} + + # Calculate marker size from points to quiver length. Because these are + # not markers, and 3D Axes do not use the normal transform stack, this + # is a bit involved. Since the quiver arrows will change size as the + # scene is rotated, they are given a standard size based on viewing + # them directly in planar form. + quiversize = eb_cap_style.get('markersize', + mpl.rcParams['lines.markersize']) ** 2 + quiversize *= self.get_figure(root=True).dpi / 72 + quiversize = self.transAxes.inverted().transform([ + (0, 0), (quiversize, quiversize)]) + quiversize = np.mean(np.diff(quiversize, axis=0)) + # quiversize is now in Axes coordinates, and to convert back to data + # coordinates, we need to run it through the inverse 3D transform. For + # consistency, this uses a fixed elevation, azimuth, and roll. + with cbook._setattr_cm(self, elev=0, azim=0, roll=0): + invM = np.linalg.inv(self.get_proj()) + # elev=azim=roll=0 produces the Y-Z plane, so quiversize in 2D 'x' is + # 'y' in 3D, hence the 1 index. + quiversize = np.dot(invM, [quiversize, 0, 0, 0])[1] + # Quivers use a fixed 15-degree arrow head, so scale up the length so + # that the size corresponds to the base. In other words, this constant + # corresponds to the equation tan(15) = (base / 2) / (arrow length). + quiversize *= 1.8660254037844388 + eb_quiver_style = {**eb_cap_style, + 'length': quiversize, 'arrow_length_ratio': 1} + eb_quiver_style.pop('markersize', None) + + # loop over x-, y-, and z-direction and draw relevant elements + for zdir, data, err, lolims, uplims in zip( + ['x', 'y', 'z'], [x, y, z], [xerr, yerr, zerr], + [xlolims, ylolims, zlolims], [xuplims, yuplims, zuplims]): + + dir_vector = art3d.get_dir_vector(zdir) + i_zdir = i_xyz[zdir] + + if err is None: + continue + + if not np.iterable(err): + err = [err] * len(data) + + err = np.atleast_1d(err) + + # arrays fine here, they are booleans and hence not units + lolims = np.broadcast_to(lolims, len(data)).astype(bool) + uplims = np.broadcast_to(uplims, len(data)).astype(bool) + + # a nested list structure that expands to (xl,xh),(yl,yh),(zl,zh), + # where x/y/z and l/h correspond to dimensions and low/high + # positions of errorbars in a dimension we're looping over + coorderr = [ + _extract_errs(err * dir_vector[i], coord, lolims, uplims) + for i, coord in enumerate([x, y, z])] + (xl, xh), (yl, yh), (zl, zh) = coorderr + + # draws capmarkers - flat caps orthogonal to the error bars + nolims = ~(lolims | uplims) + if nolims.any() and capsize > 0: + lo_caps_xyz = _apply_mask([xl, yl, zl], nolims & everymask) + hi_caps_xyz = _apply_mask([xh, yh, zh], nolims & everymask) + + # setting '_' for z-caps and '|' for x- and y-caps; + # these markers will rotate as the viewing angle changes + cap_lo = art3d.Line3D(*lo_caps_xyz, ls='', + marker=capmarker[i_zdir], + axlim_clip=axlim_clip, + **eb_cap_style) + cap_hi = art3d.Line3D(*hi_caps_xyz, ls='', + marker=capmarker[i_zdir], + axlim_clip=axlim_clip, + **eb_cap_style) + self.add_line(cap_lo) + self.add_line(cap_hi) + caplines.append(cap_lo) + caplines.append(cap_hi) + + if lolims.any(): + xh0, yh0, zh0 = _apply_mask([xh, yh, zh], lolims & everymask) + self.quiver(xh0, yh0, zh0, *dir_vector, **eb_quiver_style) + if uplims.any(): + xl0, yl0, zl0 = _apply_mask([xl, yl, zl], uplims & everymask) + self.quiver(xl0, yl0, zl0, *-dir_vector, **eb_quiver_style) + + errline = art3d.Line3DCollection(np.array(coorderr).T, + axlim_clip=axlim_clip, + **eb_lines_style) + self.add_collection(errline) + errlines.append(errline) + coorderrs.append(coorderr) + + coorderrs = np.array(coorderrs) + + def _digout_minmax(err_arr, coord_label): + return (np.nanmin(err_arr[:, i_xyz[coord_label], :, :]), + np.nanmax(err_arr[:, i_xyz[coord_label], :, :])) + + minx, maxx = _digout_minmax(coorderrs, 'x') + miny, maxy = _digout_minmax(coorderrs, 'y') + minz, maxz = _digout_minmax(coorderrs, 'z') + self.auto_scale_xyz((minx, maxx), (miny, maxy), (minz, maxz), had_data) + + # Adapting errorbar containers for 3d case, assuming z-axis points "up" + errorbar_container = mcontainer.ErrorbarContainer( + (data_line, tuple(caplines), tuple(errlines)), + has_xerr=(xerr is not None or yerr is not None), + has_yerr=(zerr is not None), + label=label) + self.containers.append(errorbar_container) + + return errlines, caplines, limmarks + + def get_tightbbox(self, renderer=None, *, call_axes_locator=True, + bbox_extra_artists=None, for_layout_only=False): + ret = super().get_tightbbox(renderer, + call_axes_locator=call_axes_locator, + bbox_extra_artists=bbox_extra_artists, + for_layout_only=for_layout_only) + batch = [ret] + if self._axis3don: + for axis in self._axis_map.values(): + if axis.get_visible(): + axis_bb = martist._get_tightbbox_for_layout_only( + axis, renderer) + if axis_bb: + batch.append(axis_bb) + return mtransforms.Bbox.union(batch) + + @_preprocess_data() + def stem(self, x, y, z, *, linefmt='C0-', markerfmt='C0o', basefmt='C3-', + bottom=0, label=None, orientation='z', axlim_clip=False): + """ + Create a 3D stem plot. + + A stem plot draws lines perpendicular to a baseline, and places markers + at the heads. By default, the baseline is defined by *x* and *y*, and + stems are drawn vertically from *bottom* to *z*. + + Parameters + ---------- + x, y, z : array-like + The positions of the heads of the stems. The stems are drawn along + the *orientation*-direction from the baseline at *bottom* (in the + *orientation*-coordinate) to the heads. By default, the *x* and *y* + positions are used for the baseline and *z* for the head position, + but this can be changed by *orientation*. + + linefmt : str, default: 'C0-' + A string defining the properties of the vertical lines. Usually, + this will be a color or a color and a linestyle: + + ========= ============= + Character Line Style + ========= ============= + ``'-'`` solid line + ``'--'`` dashed line + ``'-.'`` dash-dot line + ``':'`` dotted line + ========= ============= + + Note: While it is technically possible to specify valid formats + other than color or color and linestyle (e.g. 'rx' or '-.'), this + is beyond the intention of the method and will most likely not + result in a reasonable plot. + + markerfmt : str, default: 'C0o' + A string defining the properties of the markers at the stem heads. + + basefmt : str, default: 'C3-' + A format string defining the properties of the baseline. + + bottom : float, default: 0 + The position of the baseline, in *orientation*-coordinates. + + label : str, optional + The label to use for the stems in legends. + + orientation : {'x', 'y', 'z'}, default: 'z' + The direction along which stems are drawn. + + axlim_clip : bool, default: False + Whether to hide stems that are outside the axes limits. + + .. versionadded:: 3.10 + + data : indexable object, optional + DATA_PARAMETER_PLACEHOLDER + + Returns + ------- + `.StemContainer` + The container may be treated like a tuple + (*markerline*, *stemlines*, *baseline*) + + Examples + -------- + .. plot:: gallery/mplot3d/stem3d_demo.py + """ + + from matplotlib.container import StemContainer + + had_data = self.has_data() + + _api.check_in_list(['x', 'y', 'z'], orientation=orientation) + + xlim = (np.min(x), np.max(x)) + ylim = (np.min(y), np.max(y)) + zlim = (np.min(z), np.max(z)) + + # Determine the appropriate plane for the baseline and the direction of + # stemlines based on the value of orientation. + if orientation == 'x': + basex, basexlim = y, ylim + basey, baseylim = z, zlim + lines = [[(bottom, thisy, thisz), (thisx, thisy, thisz)] + for thisx, thisy, thisz in zip(x, y, z)] + elif orientation == 'y': + basex, basexlim = x, xlim + basey, baseylim = z, zlim + lines = [[(thisx, bottom, thisz), (thisx, thisy, thisz)] + for thisx, thisy, thisz in zip(x, y, z)] + else: + basex, basexlim = x, xlim + basey, baseylim = y, ylim + lines = [[(thisx, thisy, bottom), (thisx, thisy, thisz)] + for thisx, thisy, thisz in zip(x, y, z)] + + # Determine style for stem lines. + linestyle, linemarker, linecolor = _process_plot_format(linefmt) + if linestyle is None: + linestyle = mpl.rcParams['lines.linestyle'] + + # Plot everything in required order. + baseline, = self.plot(basex, basey, basefmt, zs=bottom, + zdir=orientation, label='_nolegend_') + stemlines = art3d.Line3DCollection( + lines, linestyles=linestyle, colors=linecolor, label='_nolegend_', + axlim_clip=axlim_clip) + self.add_collection(stemlines) + markerline, = self.plot(x, y, z, markerfmt, label='_nolegend_') + + stem_container = StemContainer((markerline, stemlines, baseline), + label=label) + self.add_container(stem_container) + + jx, jy, jz = art3d.juggle_axes(basexlim, baseylim, [bottom, bottom], + orientation) + self.auto_scale_xyz([*jx, *xlim], [*jy, *ylim], [*jz, *zlim], had_data) + + return stem_container + + stem3D = stem + + +def get_test_data(delta=0.05): + """Return a tuple X, Y, Z with a test data set.""" + x = y = np.arange(-3.0, 3.0, delta) + X, Y = np.meshgrid(x, y) + + Z1 = np.exp(-(X**2 + Y**2) / 2) / (2 * np.pi) + Z2 = (np.exp(-(((X - 1) / 1.5)**2 + ((Y - 1) / 0.5)**2) / 2) / + (2 * np.pi * 0.5 * 1.5)) + Z = Z2 - Z1 + + X = X * 10 + Y = Y * 10 + Z = Z * 500 + return X, Y, Z + + +class _Quaternion: + """ + Quaternions + consisting of scalar, along 1, and vector, with components along i, j, k + """ + + def __init__(self, scalar, vector): + self.scalar = scalar + self.vector = np.array(vector) + + def __neg__(self): + return self.__class__(-self.scalar, -self.vector) + + def __mul__(self, other): + """ + Product of two quaternions + i*i = j*j = k*k = i*j*k = -1 + Quaternion multiplication can be expressed concisely + using scalar and vector parts, + see + """ + return self.__class__( + self.scalar*other.scalar - np.dot(self.vector, other.vector), + self.scalar*other.vector + self.vector*other.scalar + + np.cross(self.vector, other.vector)) + + def conjugate(self): + """The conjugate quaternion -(1/2)*(q+i*q*i+j*q*j+k*q*k)""" + return self.__class__(self.scalar, -self.vector) + + @property + def norm(self): + """The 2-norm, q*q', a scalar""" + return self.scalar*self.scalar + np.dot(self.vector, self.vector) + + def normalize(self): + """Scaling such that norm equals 1""" + n = np.sqrt(self.norm) + return self.__class__(self.scalar/n, self.vector/n) + + def reciprocal(self): + """The reciprocal, 1/q = q'/(q*q') = q' / norm(q)""" + n = self.norm + return self.__class__(self.scalar/n, -self.vector/n) + + def __div__(self, other): + return self*other.reciprocal() + + __truediv__ = __div__ + + def rotate(self, v): + # Rotate the vector v by the quaternion q, i.e., + # calculate (the vector part of) q*v/q + v = self.__class__(0, v) + v = self*v/self + return v.vector + + def __eq__(self, other): + return (self.scalar == other.scalar) and (self.vector == other.vector).all + + def __repr__(self): + return "_Quaternion({}, {})".format(repr(self.scalar), repr(self.vector)) + + @classmethod + def rotate_from_to(cls, r1, r2): + """ + The quaternion for the shortest rotation from vector r1 to vector r2 + i.e., q = sqrt(r2*r1'), normalized. + If r1 and r2 are antiparallel, then the result is ambiguous; + a normal vector will be returned, and a warning will be issued. + """ + k = np.cross(r1, r2) + nk = np.linalg.norm(k) + th = np.arctan2(nk, np.dot(r1, r2)) + th /= 2 + if nk == 0: # r1 and r2 are parallel or anti-parallel + if np.dot(r1, r2) < 0: + warnings.warn("Rotation defined by anti-parallel vectors is ambiguous") + k = np.zeros(3) + k[np.argmin(r1*r1)] = 1 # basis vector most perpendicular to r1-r2 + k = np.cross(r1, k) + k = k / np.linalg.norm(k) # unit vector normal to r1-r2 + q = cls(0, k) + else: + q = cls(1, [0, 0, 0]) # = 1, no rotation + else: + q = cls(np.cos(th), k*np.sin(th)/nk) + return q + + @classmethod + def from_cardan_angles(cls, elev, azim, roll): + """ + Converts the angles to a quaternion + q = exp((roll/2)*e_x)*exp((elev/2)*e_y)*exp((-azim/2)*e_z) + i.e., the angles are a kind of Tait-Bryan angles, -z,y',x". + The angles should be given in radians, not degrees. + """ + ca, sa = np.cos(azim/2), np.sin(azim/2) + ce, se = np.cos(elev/2), np.sin(elev/2) + cr, sr = np.cos(roll/2), np.sin(roll/2) + + qw = ca*ce*cr + sa*se*sr + qx = ca*ce*sr - sa*se*cr + qy = ca*se*cr + sa*ce*sr + qz = ca*se*sr - sa*ce*cr + return cls(qw, [qx, qy, qz]) + + def as_cardan_angles(self): + """ + The inverse of `from_cardan_angles()`. + Note that the angles returned are in radians, not degrees. + The angles are not sensitive to the quaternion's norm(). + """ + qw = self.scalar + qx, qy, qz = self.vector[..., :] + azim = np.arctan2(2*(-qw*qz+qx*qy), qw*qw+qx*qx-qy*qy-qz*qz) + elev = np.arcsin(np.clip(2*(qw*qy+qz*qx)/(qw*qw+qx*qx+qy*qy+qz*qz), -1, 1)) + roll = np.arctan2(2*(qw*qx-qy*qz), qw*qw-qx*qx-qy*qy+qz*qz) + return elev, azim, roll diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/axis3d.py b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/axis3d.py new file mode 100644 index 0000000..4da5031 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/axis3d.py @@ -0,0 +1,750 @@ +# axis3d.py, original mplot3d version by John Porter +# Created: 23 Sep 2005 +# Parts rewritten by Reinier Heeres + +import inspect + +import numpy as np + +import matplotlib as mpl +from matplotlib import ( + _api, artist, lines as mlines, axis as maxis, patches as mpatches, + transforms as mtransforms, colors as mcolors) +from . import art3d, proj3d + + +def _move_from_center(coord, centers, deltas, axmask=(True, True, True)): + """ + For each coordinate where *axmask* is True, move *coord* away from + *centers* by *deltas*. + """ + coord = np.asarray(coord) + return coord + axmask * np.copysign(1, coord - centers) * deltas + + +def _tick_update_position(tick, tickxs, tickys, labelpos): + """Update tick line and label position and style.""" + + tick.label1.set_position(labelpos) + tick.label2.set_position(labelpos) + tick.tick1line.set_visible(True) + tick.tick2line.set_visible(False) + tick.tick1line.set_linestyle('-') + tick.tick1line.set_marker('') + tick.tick1line.set_data(tickxs, tickys) + tick.gridline.set_data([0], [0]) + + +class Axis(maxis.XAxis): + """An Axis class for the 3D plots.""" + # These points from the unit cube make up the x, y and z-planes + _PLANES = ( + (0, 3, 7, 4), (1, 2, 6, 5), # yz planes + (0, 1, 5, 4), (3, 2, 6, 7), # xz planes + (0, 1, 2, 3), (4, 5, 6, 7), # xy planes + ) + + # Some properties for the axes + _AXINFO = { + 'x': {'i': 0, 'tickdir': 1, 'juggled': (1, 0, 2)}, + 'y': {'i': 1, 'tickdir': 0, 'juggled': (0, 1, 2)}, + 'z': {'i': 2, 'tickdir': 0, 'juggled': (0, 2, 1)}, + } + + def _old_init(self, adir, v_intervalx, d_intervalx, axes, *args, + rotate_label=None, **kwargs): + return locals() + + def _new_init(self, axes, *, rotate_label=None, **kwargs): + return locals() + + def __init__(self, *args, **kwargs): + params = _api.select_matching_signature( + [self._old_init, self._new_init], *args, **kwargs) + if "adir" in params: + _api.warn_deprecated( + "3.6", message=f"The signature of 3D Axis constructors has " + f"changed in %(since)s; the new signature is " + f"{inspect.signature(type(self).__init__)}", pending=True) + if params["adir"] != self.axis_name: + raise ValueError(f"Cannot instantiate {type(self).__name__} " + f"with adir={params['adir']!r}") + axes = params["axes"] + rotate_label = params["rotate_label"] + args = params.get("args", ()) + kwargs = params["kwargs"] + + name = self.axis_name + + self._label_position = 'default' + self._tick_position = 'default' + + # This is a temporary member variable. + # Do not depend on this existing in future releases! + self._axinfo = self._AXINFO[name].copy() + # Common parts + self._axinfo.update({ + 'label': {'va': 'center', 'ha': 'center', + 'rotation_mode': 'anchor'}, + 'color': mpl.rcParams[f'axes3d.{name}axis.panecolor'], + 'tick': { + 'inward_factor': 0.2, + 'outward_factor': 0.1, + }, + }) + + if mpl.rcParams['_internal.classic_mode']: + self._axinfo.update({ + 'axisline': {'linewidth': 0.75, 'color': (0, 0, 0, 1)}, + 'grid': { + 'color': (0.9, 0.9, 0.9, 1), + 'linewidth': 1.0, + 'linestyle': '-', + }, + }) + self._axinfo['tick'].update({ + 'linewidth': { + True: mpl.rcParams['lines.linewidth'], # major + False: mpl.rcParams['lines.linewidth'], # minor + } + }) + else: + self._axinfo.update({ + 'axisline': { + 'linewidth': mpl.rcParams['axes.linewidth'], + 'color': mpl.rcParams['axes.edgecolor'], + }, + 'grid': { + 'color': mpl.rcParams['grid.color'], + 'linewidth': mpl.rcParams['grid.linewidth'], + 'linestyle': mpl.rcParams['grid.linestyle'], + }, + }) + self._axinfo['tick'].update({ + 'linewidth': { + True: ( # major + mpl.rcParams['xtick.major.width'] if name in 'xz' + else mpl.rcParams['ytick.major.width']), + False: ( # minor + mpl.rcParams['xtick.minor.width'] if name in 'xz' + else mpl.rcParams['ytick.minor.width']), + } + }) + + super().__init__(axes, *args, **kwargs) + + # data and viewing intervals for this direction + if "d_intervalx" in params: + self.set_data_interval(*params["d_intervalx"]) + if "v_intervalx" in params: + self.set_view_interval(*params["v_intervalx"]) + self.set_rotate_label(rotate_label) + self._init3d() # Inline after init3d deprecation elapses. + + __init__.__signature__ = inspect.signature(_new_init) + adir = _api.deprecated("3.6", pending=True)( + property(lambda self: self.axis_name)) + + def _init3d(self): + self.line = mlines.Line2D( + xdata=(0, 0), ydata=(0, 0), + linewidth=self._axinfo['axisline']['linewidth'], + color=self._axinfo['axisline']['color'], + antialiased=True) + + # Store dummy data in Polygon object + self.pane = mpatches.Polygon([[0, 0], [0, 1]], closed=False) + self.set_pane_color(self._axinfo['color']) + + self.axes._set_artist_props(self.line) + self.axes._set_artist_props(self.pane) + self.gridlines = art3d.Line3DCollection([]) + self.axes._set_artist_props(self.gridlines) + self.axes._set_artist_props(self.label) + self.axes._set_artist_props(self.offsetText) + # Need to be able to place the label at the correct location + self.label._transform = self.axes.transData + self.offsetText._transform = self.axes.transData + + @_api.deprecated("3.6", pending=True) + def init3d(self): # After deprecation elapses, inline _init3d to __init__. + self._init3d() + + def get_major_ticks(self, numticks=None): + ticks = super().get_major_ticks(numticks) + for t in ticks: + for obj in [ + t.tick1line, t.tick2line, t.gridline, t.label1, t.label2]: + obj.set_transform(self.axes.transData) + return ticks + + def get_minor_ticks(self, numticks=None): + ticks = super().get_minor_ticks(numticks) + for t in ticks: + for obj in [ + t.tick1line, t.tick2line, t.gridline, t.label1, t.label2]: + obj.set_transform(self.axes.transData) + return ticks + + def set_ticks_position(self, position): + """ + Set the ticks position. + + Parameters + ---------- + position : {'lower', 'upper', 'both', 'default', 'none'} + The position of the bolded axis lines, ticks, and tick labels. + """ + _api.check_in_list(['lower', 'upper', 'both', 'default', 'none'], + position=position) + self._tick_position = position + + def get_ticks_position(self): + """ + Get the ticks position. + + Returns + ------- + str : {'lower', 'upper', 'both', 'default', 'none'} + The position of the bolded axis lines, ticks, and tick labels. + """ + return self._tick_position + + def set_label_position(self, position): + """ + Set the label position. + + Parameters + ---------- + position : {'lower', 'upper', 'both', 'default', 'none'} + The position of the axis label. + """ + _api.check_in_list(['lower', 'upper', 'both', 'default', 'none'], + position=position) + self._label_position = position + + def get_label_position(self): + """ + Get the label position. + + Returns + ------- + str : {'lower', 'upper', 'both', 'default', 'none'} + The position of the axis label. + """ + return self._label_position + + def set_pane_color(self, color, alpha=None): + """ + Set pane color. + + Parameters + ---------- + color : :mpltype:`color` + Color for axis pane. + alpha : float, optional + Alpha value for axis pane. If None, base it on *color*. + """ + color = mcolors.to_rgba(color, alpha) + self._axinfo['color'] = color + self.pane.set_edgecolor(color) + self.pane.set_facecolor(color) + self.pane.set_alpha(color[-1]) + self.stale = True + + def set_rotate_label(self, val): + """ + Whether to rotate the axis label: True, False or None. + If set to None the label will be rotated if longer than 4 chars. + """ + self._rotate_label = val + self.stale = True + + def get_rotate_label(self, text): + if self._rotate_label is not None: + return self._rotate_label + else: + return len(text) > 4 + + def _get_coord_info(self): + mins, maxs = np.array([ + self.axes.get_xbound(), + self.axes.get_ybound(), + self.axes.get_zbound(), + ]).T + + # Project the bounds along the current position of the cube: + bounds = mins[0], maxs[0], mins[1], maxs[1], mins[2], maxs[2] + bounds_proj = self.axes._transformed_cube(bounds) + + # Determine which one of the parallel planes are higher up: + means_z0 = np.zeros(3) + means_z1 = np.zeros(3) + for i in range(3): + means_z0[i] = np.mean(bounds_proj[self._PLANES[2 * i], 2]) + means_z1[i] = np.mean(bounds_proj[self._PLANES[2 * i + 1], 2]) + highs = means_z0 < means_z1 + + # Special handling for edge-on views + equals = np.abs(means_z0 - means_z1) <= np.finfo(float).eps + if np.sum(equals) == 2: + vertical = np.where(~equals)[0][0] + if vertical == 2: # looking at XY plane + highs = np.array([True, True, highs[2]]) + elif vertical == 1: # looking at XZ plane + highs = np.array([True, highs[1], False]) + elif vertical == 0: # looking at YZ plane + highs = np.array([highs[0], False, False]) + + return mins, maxs, bounds_proj, highs + + def _calc_centers_deltas(self, maxs, mins): + centers = 0.5 * (maxs + mins) + # In mpl3.8, the scale factor was 1/12. mpl3.9 changes this to + # 1/12 * 24/25 = 0.08 to compensate for the change in automargin + # behavior and keep appearance the same. The 24/25 factor is from the + # 1/48 padding added to each side of the axis in mpl3.8. + scale = 0.08 + deltas = (maxs - mins) * scale + return centers, deltas + + def _get_axis_line_edge_points(self, minmax, maxmin, position=None): + """Get the edge points for the black bolded axis line.""" + # When changing vertical axis some of the axes has to be + # moved to the other plane so it looks the same as if the z-axis + # was the vertical axis. + mb = [minmax, maxmin] # line from origin to nearest corner to camera + mb_rev = mb[::-1] + mm = [[mb, mb_rev, mb_rev], [mb_rev, mb_rev, mb], [mb, mb, mb]] + mm = mm[self.axes._vertical_axis][self._axinfo["i"]] + + juggled = self._axinfo["juggled"] + edge_point_0 = mm[0].copy() # origin point + + if ((position == 'lower' and mm[1][juggled[-1]] < mm[0][juggled[-1]]) or + (position == 'upper' and mm[1][juggled[-1]] > mm[0][juggled[-1]])): + edge_point_0[juggled[-1]] = mm[1][juggled[-1]] + else: + edge_point_0[juggled[0]] = mm[1][juggled[0]] + + edge_point_1 = edge_point_0.copy() + edge_point_1[juggled[1]] = mm[1][juggled[1]] + + return edge_point_0, edge_point_1 + + def _get_all_axis_line_edge_points(self, minmax, maxmin, axis_position=None): + # Determine edge points for the axis lines + edgep1s = [] + edgep2s = [] + position = [] + if axis_position in (None, 'default'): + edgep1, edgep2 = self._get_axis_line_edge_points(minmax, maxmin) + edgep1s = [edgep1] + edgep2s = [edgep2] + position = ['default'] + else: + edgep1_l, edgep2_l = self._get_axis_line_edge_points(minmax, maxmin, + position='lower') + edgep1_u, edgep2_u = self._get_axis_line_edge_points(minmax, maxmin, + position='upper') + if axis_position in ('lower', 'both'): + edgep1s.append(edgep1_l) + edgep2s.append(edgep2_l) + position.append('lower') + if axis_position in ('upper', 'both'): + edgep1s.append(edgep1_u) + edgep2s.append(edgep2_u) + position.append('upper') + return edgep1s, edgep2s, position + + def _get_tickdir(self, position): + """ + Get the direction of the tick. + + Parameters + ---------- + position : str, optional : {'upper', 'lower', 'default'} + The position of the axis. + + Returns + ------- + tickdir : int + Index which indicates which coordinate the tick line will + align with. + """ + _api.check_in_list(('upper', 'lower', 'default'), position=position) + + # TODO: Move somewhere else where it's triggered less: + tickdirs_base = [v["tickdir"] for v in self._AXINFO.values()] # default + elev_mod = np.mod(self.axes.elev + 180, 360) - 180 + azim_mod = np.mod(self.axes.azim, 360) + if position == 'upper': + if elev_mod >= 0: + tickdirs_base = [2, 2, 0] + else: + tickdirs_base = [1, 0, 0] + if 0 <= azim_mod < 180: + tickdirs_base[2] = 1 + elif position == 'lower': + if elev_mod >= 0: + tickdirs_base = [1, 0, 1] + else: + tickdirs_base = [2, 2, 1] + if 0 <= azim_mod < 180: + tickdirs_base[2] = 0 + info_i = [v["i"] for v in self._AXINFO.values()] + + i = self._axinfo["i"] + vert_ax = self.axes._vertical_axis + j = vert_ax - 2 + # default: tickdir = [[1, 2, 1], [2, 2, 0], [1, 0, 0]][vert_ax][i] + tickdir = np.roll(info_i, -j)[np.roll(tickdirs_base, j)][i] + return tickdir + + def active_pane(self): + mins, maxs, tc, highs = self._get_coord_info() + info = self._axinfo + index = info['i'] + if not highs[index]: + loc = mins[index] + plane = self._PLANES[2 * index] + else: + loc = maxs[index] + plane = self._PLANES[2 * index + 1] + xys = np.array([tc[p] for p in plane]) + return xys, loc + + def draw_pane(self, renderer): + """ + Draw pane. + + Parameters + ---------- + renderer : `~matplotlib.backend_bases.RendererBase` subclass + """ + renderer.open_group('pane3d', gid=self.get_gid()) + xys, loc = self.active_pane() + self.pane.xy = xys[:, :2] + self.pane.draw(renderer) + renderer.close_group('pane3d') + + def _axmask(self): + axmask = [True, True, True] + axmask[self._axinfo["i"]] = False + return axmask + + def _draw_ticks(self, renderer, edgep1, centers, deltas, highs, + deltas_per_point, pos): + ticks = self._update_ticks() + info = self._axinfo + index = info["i"] + juggled = info["juggled"] + + mins, maxs, tc, highs = self._get_coord_info() + centers, deltas = self._calc_centers_deltas(maxs, mins) + + # Draw ticks: + tickdir = self._get_tickdir(pos) + tickdelta = deltas[tickdir] if highs[tickdir] else -deltas[tickdir] + + tick_info = info['tick'] + tick_out = tick_info['outward_factor'] * tickdelta + tick_in = tick_info['inward_factor'] * tickdelta + tick_lw = tick_info['linewidth'] + edgep1_tickdir = edgep1[tickdir] + out_tickdir = edgep1_tickdir + tick_out + in_tickdir = edgep1_tickdir - tick_in + + default_label_offset = 8. # A rough estimate + points = deltas_per_point * deltas + for tick in ticks: + # Get tick line positions + pos = edgep1.copy() + pos[index] = tick.get_loc() + pos[tickdir] = out_tickdir + x1, y1, z1 = proj3d.proj_transform(*pos, self.axes.M) + pos[tickdir] = in_tickdir + x2, y2, z2 = proj3d.proj_transform(*pos, self.axes.M) + + # Get position of label + labeldeltas = (tick.get_pad() + default_label_offset) * points + + pos[tickdir] = edgep1_tickdir + pos = _move_from_center(pos, centers, labeldeltas, self._axmask()) + lx, ly, lz = proj3d.proj_transform(*pos, self.axes.M) + + _tick_update_position(tick, (x1, x2), (y1, y2), (lx, ly)) + tick.tick1line.set_linewidth(tick_lw[tick._major]) + tick.draw(renderer) + + def _draw_offset_text(self, renderer, edgep1, edgep2, labeldeltas, centers, + highs, pep, dx, dy): + # Get general axis information: + info = self._axinfo + index = info["i"] + juggled = info["juggled"] + tickdir = info["tickdir"] + + # Which of the two edge points do we want to + # use for locating the offset text? + if juggled[2] == 2: + outeredgep = edgep1 + outerindex = 0 + else: + outeredgep = edgep2 + outerindex = 1 + + pos = _move_from_center(outeredgep, centers, labeldeltas, + self._axmask()) + olx, oly, olz = proj3d.proj_transform(*pos, self.axes.M) + self.offsetText.set_text(self.major.formatter.get_offset()) + self.offsetText.set_position((olx, oly)) + angle = art3d._norm_text_angle(np.rad2deg(np.arctan2(dy, dx))) + self.offsetText.set_rotation(angle) + # Must set rotation mode to "anchor" so that + # the alignment point is used as the "fulcrum" for rotation. + self.offsetText.set_rotation_mode('anchor') + + # ---------------------------------------------------------------------- + # Note: the following statement for determining the proper alignment of + # the offset text. This was determined entirely by trial-and-error + # and should not be in any way considered as "the way". There are + # still some edge cases where alignment is not quite right, but this + # seems to be more of a geometry issue (in other words, I might be + # using the wrong reference points). + # + # (TT, FF, TF, FT) are the shorthand for the tuple of + # (centpt[tickdir] <= pep[tickdir, outerindex], + # centpt[index] <= pep[index, outerindex]) + # + # Three-letters (e.g., TFT, FTT) are short-hand for the array of bools + # from the variable 'highs'. + # --------------------------------------------------------------------- + centpt = proj3d.proj_transform(*centers, self.axes.M) + if centpt[tickdir] > pep[tickdir, outerindex]: + # if FT and if highs has an even number of Trues + if (centpt[index] <= pep[index, outerindex] + and np.count_nonzero(highs) % 2 == 0): + # Usually, this means align right, except for the FTT case, + # in which offset for axis 1 and 2 are aligned left. + if highs.tolist() == [False, True, True] and index in (1, 2): + align = 'left' + else: + align = 'right' + else: + # The FF case + align = 'left' + else: + # if TF and if highs has an even number of Trues + if (centpt[index] > pep[index, outerindex] + and np.count_nonzero(highs) % 2 == 0): + # Usually mean align left, except if it is axis 2 + align = 'right' if index == 2 else 'left' + else: + # The TT case + align = 'right' + + self.offsetText.set_va('center') + self.offsetText.set_ha(align) + self.offsetText.draw(renderer) + + def _draw_labels(self, renderer, edgep1, edgep2, labeldeltas, centers, dx, dy): + label = self._axinfo["label"] + + # Draw labels + lxyz = 0.5 * (edgep1 + edgep2) + lxyz = _move_from_center(lxyz, centers, labeldeltas, self._axmask()) + tlx, tly, tlz = proj3d.proj_transform(*lxyz, self.axes.M) + self.label.set_position((tlx, tly)) + if self.get_rotate_label(self.label.get_text()): + angle = art3d._norm_text_angle(np.rad2deg(np.arctan2(dy, dx))) + self.label.set_rotation(angle) + self.label.set_va(label['va']) + self.label.set_ha(label['ha']) + self.label.set_rotation_mode(label['rotation_mode']) + self.label.draw(renderer) + + @artist.allow_rasterization + def draw(self, renderer): + self.label._transform = self.axes.transData + self.offsetText._transform = self.axes.transData + renderer.open_group("axis3d", gid=self.get_gid()) + + # Get general axis information: + mins, maxs, tc, highs = self._get_coord_info() + centers, deltas = self._calc_centers_deltas(maxs, mins) + + # Calculate offset distances + # A rough estimate; points are ambiguous since 3D plots rotate + reltoinches = self.get_figure(root=False).dpi_scale_trans.inverted() + ax_inches = reltoinches.transform(self.axes.bbox.size) + ax_points_estimate = sum(72. * ax_inches) + deltas_per_point = 48 / ax_points_estimate + default_offset = 21. + labeldeltas = (self.labelpad + default_offset) * deltas_per_point * deltas + + # Determine edge points for the axis lines + minmax = np.where(highs, maxs, mins) # "origin" point + maxmin = np.where(~highs, maxs, mins) # "opposite" corner near camera + + for edgep1, edgep2, pos in zip(*self._get_all_axis_line_edge_points( + minmax, maxmin, self._tick_position)): + # Project the edge points along the current position + pep = proj3d._proj_trans_points([edgep1, edgep2], self.axes.M) + pep = np.asarray(pep) + + # The transAxes transform is used because the Text object + # rotates the text relative to the display coordinate system. + # Therefore, if we want the labels to remain parallel to the + # axis regardless of the aspect ratio, we need to convert the + # edge points of the plane to display coordinates and calculate + # an angle from that. + # TODO: Maybe Text objects should handle this themselves? + dx, dy = (self.axes.transAxes.transform([pep[0:2, 1]]) - + self.axes.transAxes.transform([pep[0:2, 0]]))[0] + + # Draw the lines + self.line.set_data(pep[0], pep[1]) + self.line.draw(renderer) + + # Draw ticks + self._draw_ticks(renderer, edgep1, centers, deltas, highs, + deltas_per_point, pos) + + # Draw Offset text + self._draw_offset_text(renderer, edgep1, edgep2, labeldeltas, + centers, highs, pep, dx, dy) + + for edgep1, edgep2, pos in zip(*self._get_all_axis_line_edge_points( + minmax, maxmin, self._label_position)): + # See comments above + pep = proj3d._proj_trans_points([edgep1, edgep2], self.axes.M) + pep = np.asarray(pep) + dx, dy = (self.axes.transAxes.transform([pep[0:2, 1]]) - + self.axes.transAxes.transform([pep[0:2, 0]]))[0] + + # Draw labels + self._draw_labels(renderer, edgep1, edgep2, labeldeltas, centers, dx, dy) + + renderer.close_group('axis3d') + self.stale = False + + @artist.allow_rasterization + def draw_grid(self, renderer): + if not self.axes._draw_grid: + return + + renderer.open_group("grid3d", gid=self.get_gid()) + + ticks = self._update_ticks() + if len(ticks): + # Get general axis information: + info = self._axinfo + index = info["i"] + + mins, maxs, tc, highs = self._get_coord_info() + + minmax = np.where(highs, maxs, mins) + maxmin = np.where(~highs, maxs, mins) + + # Grid points where the planes meet + xyz0 = np.tile(minmax, (len(ticks), 1)) + xyz0[:, index] = [tick.get_loc() for tick in ticks] + + # Grid lines go from the end of one plane through the plane + # intersection (at xyz0) to the end of the other plane. The first + # point (0) differs along dimension index-2 and the last (2) along + # dimension index-1. + lines = np.stack([xyz0, xyz0, xyz0], axis=1) + lines[:, 0, index - 2] = maxmin[index - 2] + lines[:, 2, index - 1] = maxmin[index - 1] + self.gridlines.set_segments(lines) + gridinfo = info['grid'] + self.gridlines.set_color(gridinfo['color']) + self.gridlines.set_linewidth(gridinfo['linewidth']) + self.gridlines.set_linestyle(gridinfo['linestyle']) + self.gridlines.do_3d_projection() + self.gridlines.draw(renderer) + + renderer.close_group('grid3d') + + # TODO: Get this to work (more) properly when mplot3d supports the + # transforms framework. + def get_tightbbox(self, renderer=None, *, for_layout_only=False): + # docstring inherited + if not self.get_visible(): + return + # We have to directly access the internal data structures + # (and hope they are up to date) because at draw time we + # shift the ticks and their labels around in (x, y) space + # based on the projection, the current view port, and their + # position in 3D space. If we extend the transforms framework + # into 3D we would not need to do this different book keeping + # than we do in the normal axis + major_locs = self.get_majorticklocs() + minor_locs = self.get_minorticklocs() + + ticks = [*self.get_minor_ticks(len(minor_locs)), + *self.get_major_ticks(len(major_locs))] + view_low, view_high = self.get_view_interval() + if view_low > view_high: + view_low, view_high = view_high, view_low + interval_t = self.get_transform().transform([view_low, view_high]) + + ticks_to_draw = [] + for tick in ticks: + try: + loc_t = self.get_transform().transform(tick.get_loc()) + except AssertionError: + # Transform.transform doesn't allow masked values but + # some scales might make them, so we need this try/except. + pass + else: + if mtransforms._interval_contains_close(interval_t, loc_t): + ticks_to_draw.append(tick) + + ticks = ticks_to_draw + + bb_1, bb_2 = self._get_ticklabel_bboxes(ticks, renderer) + other = [] + + if self.line.get_visible(): + other.append(self.line.get_window_extent(renderer)) + if (self.label.get_visible() and not for_layout_only and + self.label.get_text()): + other.append(self.label.get_window_extent(renderer)) + + return mtransforms.Bbox.union([*bb_1, *bb_2, *other]) + + d_interval = _api.deprecated( + "3.6", alternative="get_data_interval", pending=True)( + property(lambda self: self.get_data_interval(), + lambda self, minmax: self.set_data_interval(*minmax))) + v_interval = _api.deprecated( + "3.6", alternative="get_view_interval", pending=True)( + property(lambda self: self.get_view_interval(), + lambda self, minmax: self.set_view_interval(*minmax))) + + +class XAxis(Axis): + axis_name = "x" + get_view_interval, set_view_interval = maxis._make_getset_interval( + "view", "xy_viewLim", "intervalx") + get_data_interval, set_data_interval = maxis._make_getset_interval( + "data", "xy_dataLim", "intervalx") + + +class YAxis(Axis): + axis_name = "y" + get_view_interval, set_view_interval = maxis._make_getset_interval( + "view", "xy_viewLim", "intervaly") + get_data_interval, set_data_interval = maxis._make_getset_interval( + "data", "xy_dataLim", "intervaly") + + +class ZAxis(Axis): + axis_name = "z" + get_view_interval, set_view_interval = maxis._make_getset_interval( + "view", "zz_viewLim", "intervalx") + get_data_interval, set_data_interval = maxis._make_getset_interval( + "data", "zz_dataLim", "intervalx") diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/proj3d.py b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/proj3d.py new file mode 100644 index 0000000..923bd32 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/proj3d.py @@ -0,0 +1,219 @@ +""" +Various transforms used for by the 3D code +""" + +import numpy as np + +from matplotlib import _api + + +def world_transformation(xmin, xmax, + ymin, ymax, + zmin, zmax, pb_aspect=None): + """ + Produce a matrix that scales homogeneous coords in the specified ranges + to [0, 1], or [0, pb_aspect[i]] if the plotbox aspect ratio is specified. + """ + dx = xmax - xmin + dy = ymax - ymin + dz = zmax - zmin + if pb_aspect is not None: + ax, ay, az = pb_aspect + dx /= ax + dy /= ay + dz /= az + + return np.array([[1/dx, 0, 0, -xmin/dx], + [ 0, 1/dy, 0, -ymin/dy], + [ 0, 0, 1/dz, -zmin/dz], + [ 0, 0, 0, 1]]) + + +def _rotation_about_vector(v, angle): + """ + Produce a rotation matrix for an angle in radians about a vector. + """ + vx, vy, vz = v / np.linalg.norm(v) + s = np.sin(angle) + c = np.cos(angle) + t = 2*np.sin(angle/2)**2 # more numerically stable than t = 1-c + + R = np.array([ + [t*vx*vx + c, t*vx*vy - vz*s, t*vx*vz + vy*s], + [t*vy*vx + vz*s, t*vy*vy + c, t*vy*vz - vx*s], + [t*vz*vx - vy*s, t*vz*vy + vx*s, t*vz*vz + c]]) + + return R + + +def _view_axes(E, R, V, roll): + """ + Get the unit viewing axes in data coordinates. + + Parameters + ---------- + E : 3-element numpy array + The coordinates of the eye/camera. + R : 3-element numpy array + The coordinates of the center of the view box. + V : 3-element numpy array + Unit vector in the direction of the vertical axis. + roll : float + The roll angle in radians. + + Returns + ------- + u : 3-element numpy array + Unit vector pointing towards the right of the screen. + v : 3-element numpy array + Unit vector pointing towards the top of the screen. + w : 3-element numpy array + Unit vector pointing out of the screen. + """ + w = (E - R) + w = w/np.linalg.norm(w) + u = np.cross(V, w) + u = u/np.linalg.norm(u) + v = np.cross(w, u) # Will be a unit vector + + # Save some computation for the default roll=0 + if roll != 0: + # A positive rotation of the camera is a negative rotation of the world + Rroll = _rotation_about_vector(w, -roll) + u = np.dot(Rroll, u) + v = np.dot(Rroll, v) + return u, v, w + + +def _view_transformation_uvw(u, v, w, E): + """ + Return the view transformation matrix. + + Parameters + ---------- + u : 3-element numpy array + Unit vector pointing towards the right of the screen. + v : 3-element numpy array + Unit vector pointing towards the top of the screen. + w : 3-element numpy array + Unit vector pointing out of the screen. + E : 3-element numpy array + The coordinates of the eye/camera. + """ + Mr = np.eye(4) + Mt = np.eye(4) + Mr[:3, :3] = [u, v, w] + Mt[:3, -1] = -E + M = np.dot(Mr, Mt) + return M + + +def _persp_transformation(zfront, zback, focal_length): + e = focal_length + a = 1 # aspect ratio + b = (zfront+zback)/(zfront-zback) + c = -2*(zfront*zback)/(zfront-zback) + proj_matrix = np.array([[e, 0, 0, 0], + [0, e/a, 0, 0], + [0, 0, b, c], + [0, 0, -1, 0]]) + return proj_matrix + + +def _ortho_transformation(zfront, zback): + # note: w component in the resulting vector will be (zback-zfront), not 1 + a = -(zfront + zback) + b = -(zfront - zback) + proj_matrix = np.array([[2, 0, 0, 0], + [0, 2, 0, 0], + [0, 0, -2, 0], + [0, 0, a, b]]) + return proj_matrix + + +def _proj_transform_vec(vec, M): + vecw = np.dot(M, vec.data) + w = vecw[3] + txs, tys, tzs = vecw[0]/w, vecw[1]/w, vecw[2]/w + if np.ma.isMA(vec[0]): # we check each to protect for scalars + txs = np.ma.array(txs, mask=vec[0].mask) + if np.ma.isMA(vec[1]): + tys = np.ma.array(tys, mask=vec[1].mask) + if np.ma.isMA(vec[2]): + tzs = np.ma.array(tzs, mask=vec[2].mask) + return txs, tys, tzs + + +def _proj_transform_vec_clip(vec, M, focal_length): + vecw = np.dot(M, vec.data) + w = vecw[3] + txs, tys, tzs = vecw[0] / w, vecw[1] / w, vecw[2] / w + if np.isinf(focal_length): # don't clip orthographic projection + tis = np.ones(txs.shape, dtype=bool) + else: + tis = (-1 <= txs) & (txs <= 1) & (-1 <= tys) & (tys <= 1) & (tzs <= 0) + if np.ma.isMA(vec[0]): + tis = tis & ~vec[0].mask + if np.ma.isMA(vec[1]): + tis = tis & ~vec[1].mask + if np.ma.isMA(vec[2]): + tis = tis & ~vec[2].mask + + txs = np.ma.masked_array(txs, ~tis) + tys = np.ma.masked_array(tys, ~tis) + tzs = np.ma.masked_array(tzs, ~tis) + return txs, tys, tzs, tis + + +def inv_transform(xs, ys, zs, invM): + """ + Transform the points by the inverse of the projection matrix, *invM*. + """ + vec = _vec_pad_ones(xs, ys, zs) + vecr = np.dot(invM, vec) + if vecr.shape == (4,): + vecr = vecr.reshape((4, 1)) + for i in range(vecr.shape[1]): + if vecr[3][i] != 0: + vecr[:, i] = vecr[:, i] / vecr[3][i] + return vecr[0], vecr[1], vecr[2] + + +def _vec_pad_ones(xs, ys, zs): + if np.ma.isMA(xs) or np.ma.isMA(ys) or np.ma.isMA(zs): + return np.ma.array([xs, ys, zs, np.ones_like(xs)]) + else: + return np.array([xs, ys, zs, np.ones_like(xs)]) + + +def proj_transform(xs, ys, zs, M): + """ + Transform the points by the projection matrix *M*. + """ + vec = _vec_pad_ones(xs, ys, zs) + return _proj_transform_vec(vec, M) + + +@_api.deprecated("3.10") +def proj_transform_clip(xs, ys, zs, M): + return _proj_transform_clip(xs, ys, zs, M, focal_length=np.inf) + + +def _proj_transform_clip(xs, ys, zs, M, focal_length): + """ + Transform the points by the projection matrix + and return the clipping result + returns txs, tys, tzs, tis + """ + vec = _vec_pad_ones(xs, ys, zs) + return _proj_transform_vec_clip(vec, M, focal_length) + + +def _proj_points(points, M): + return np.column_stack(_proj_trans_points(points, M)) + + +def _proj_trans_points(points, M): + points = np.asanyarray(points) + xs, ys, zs = points[:, 0], points[:, 1], points[:, 2] + return proj_transform(xs, ys, zs, M) diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/tests/__init__.py b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/tests/__init__.py new file mode 100644 index 0000000..ea4d8ed --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/tests/__init__.py @@ -0,0 +1,10 @@ +from pathlib import Path + + +# Check that the test directories exist +if not (Path(__file__).parent / "baseline_images").exists(): + raise OSError( + 'The baseline image directory does not exist. ' + 'This is most likely because the test data is not installed. ' + 'You may need to install matplotlib from source to get the ' + 'test data.') diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/tests/conftest.py b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/tests/conftest.py new file mode 100644 index 0000000..61c2de3 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/tests/conftest.py @@ -0,0 +1,2 @@ +from matplotlib.testing.conftest import (mpl_test_settings, # noqa + pytest_configure, pytest_unconfigure) diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/tests/test_art3d.py b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/tests/test_art3d.py new file mode 100644 index 0000000..174c126 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/tests/test_art3d.py @@ -0,0 +1,102 @@ +import numpy as np + +import matplotlib.pyplot as plt + +from matplotlib.backend_bases import MouseEvent +from mpl_toolkits.mplot3d.art3d import ( + Line3DCollection, + Poly3DCollection, + _all_points_on_plane, +) + + +def test_scatter_3d_projection_conservation(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + # fix axes3d projection + ax.roll = 0 + ax.elev = 0 + ax.azim = -45 + ax.stale = True + + x = [0, 1, 2, 3, 4] + scatter_collection = ax.scatter(x, x, x) + fig.canvas.draw_idle() + + # Get scatter location on canvas and freeze the data + scatter_offset = scatter_collection.get_offsets() + scatter_location = ax.transData.transform(scatter_offset) + + # Yaw -44 and -46 are enough to produce two set of scatter + # with opposite z-order without moving points too far + for azim in (-44, -46): + ax.azim = azim + ax.stale = True + fig.canvas.draw_idle() + + for i in range(5): + # Create a mouse event used to locate and to get index + # from each dots + event = MouseEvent("button_press_event", fig.canvas, + *scatter_location[i, :]) + contains, ind = scatter_collection.contains(event) + assert contains is True + assert len(ind["ind"]) == 1 + assert ind["ind"][0] == i + + +def test_zordered_error(): + # Smoke test for https://github.com/matplotlib/matplotlib/issues/26497 + lc = [(np.fromiter([0.0, 0.0, 0.0], dtype="float"), + np.fromiter([1.0, 1.0, 1.0], dtype="float"))] + pc = [np.fromiter([0.0, 0.0], dtype="float"), + np.fromiter([0.0, 1.0], dtype="float"), + np.fromiter([1.0, 1.0], dtype="float")] + + fig = plt.figure() + ax = fig.add_subplot(projection="3d") + ax.add_collection(Line3DCollection(lc)) + ax.scatter(*pc, visible=False) + plt.draw() + + +def test_all_points_on_plane(): + # Non-coplanar points + points = np.array([[0, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 1]]) + assert not _all_points_on_plane(*points.T) + + # Duplicate points + points = np.array([[0, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 0]]) + assert _all_points_on_plane(*points.T) + + # NaN values + points = np.array([[0, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, np.nan]]) + assert _all_points_on_plane(*points.T) + + # Less than 3 unique points + points = np.array([[0, 0, 0], [0, 0, 0], [0, 0, 0]]) + assert _all_points_on_plane(*points.T) + + # All points lie on a line + points = np.array([[0, 0, 0], [0, 1, 0], [0, 2, 0], [0, 3, 0]]) + assert _all_points_on_plane(*points.T) + + # All points lie on two lines, with antiparallel vectors + points = np.array([[-2, 2, 0], [-1, 1, 0], [1, -1, 0], + [0, 0, 0], [2, 0, 0], [1, 0, 0]]) + assert _all_points_on_plane(*points.T) + + # All points lie on a plane + points = np.array([[0, 0, 0], [0, 1, 0], [1, 0, 0], [1, 1, 0], [1, 2, 0]]) + assert _all_points_on_plane(*points.T) + + +def test_generate_normals(): + # Smoke test for https://github.com/matplotlib/matplotlib/issues/29156 + vertices = ((0, 0, 0), (0, 5, 0), (5, 5, 0), (5, 0, 0)) + shape = Poly3DCollection([vertices], edgecolors='r', shade=True) + + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + ax.add_collection3d(shape) + plt.draw() diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/tests/test_axes3d.py b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/tests/test_axes3d.py new file mode 100644 index 0000000..b30c255 --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/tests/test_axes3d.py @@ -0,0 +1,2688 @@ +import functools +import itertools +import platform +import sys + +import pytest + +from mpl_toolkits.mplot3d import Axes3D, axes3d, proj3d, art3d +from mpl_toolkits.mplot3d.axes3d import _Quaternion as Quaternion +import matplotlib as mpl +from matplotlib.backend_bases import (MouseButton, MouseEvent, + NavigationToolbar2) +from matplotlib import cm +from matplotlib import colors as mcolors, patches as mpatch +from matplotlib.testing.decorators import image_comparison, check_figures_equal +from matplotlib.testing.widgets import mock_event +from matplotlib.collections import LineCollection, PolyCollection +from matplotlib.patches import Circle, PathPatch +from matplotlib.path import Path +from matplotlib.text import Text + +import matplotlib.pyplot as plt +import numpy as np + + +mpl3d_image_comparison = functools.partial( + image_comparison, remove_text=True, style='default') + + +def plot_cuboid(ax, scale): + # plot a rectangular cuboid with side lengths given by scale (x, y, z) + r = [0, 1] + pts = itertools.combinations(np.array(list(itertools.product(r, r, r))), 2) + for start, end in pts: + if np.sum(np.abs(start - end)) == r[1] - r[0]: + ax.plot3D(*zip(start*np.array(scale), end*np.array(scale))) + + +@check_figures_equal(extensions=["png"]) +def test_invisible_axes(fig_test, fig_ref): + ax = fig_test.subplots(subplot_kw=dict(projection='3d')) + ax.set_visible(False) + + +@mpl3d_image_comparison(['grid_off.png'], style='mpl20') +def test_grid_off(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + ax.grid(False) + + +@mpl3d_image_comparison(['invisible_ticks_axis.png'], style='mpl20') +def test_invisible_ticks_axis(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + ax.set_xticks([]) + ax.set_yticks([]) + ax.set_zticks([]) + for axis in [ax.xaxis, ax.yaxis, ax.zaxis]: + axis.line.set_visible(False) + + +@mpl3d_image_comparison(['axis_positions.png'], remove_text=False, style='mpl20') +def test_axis_positions(): + positions = ['upper', 'lower', 'both', 'none'] + fig, axs = plt.subplots(2, 2, subplot_kw={'projection': '3d'}) + for ax, pos in zip(axs.flatten(), positions): + for axis in ax.xaxis, ax.yaxis, ax.zaxis: + axis.set_label_position(pos) + axis.set_ticks_position(pos) + title = f'{pos}' + ax.set(xlabel='x', ylabel='y', zlabel='z', title=title) + + +@mpl3d_image_comparison(['aspects.png'], remove_text=False, style='mpl20') +def test_aspects(): + aspects = ('auto', 'equal', 'equalxy', 'equalyz', 'equalxz', 'equal') + _, axs = plt.subplots(2, 3, subplot_kw={'projection': '3d'}) + + for ax in axs.flatten()[0:-1]: + plot_cuboid(ax, scale=[1, 1, 5]) + # plot a cube as well to cover github #25443 + plot_cuboid(axs[1][2], scale=[1, 1, 1]) + + for i, ax in enumerate(axs.flatten()): + ax.set_title(aspects[i]) + ax.set_box_aspect((3, 4, 5)) + ax.set_aspect(aspects[i], adjustable='datalim') + axs[1][2].set_title('equal (cube)') + + +@mpl3d_image_comparison(['aspects_adjust_box.png'], + remove_text=False, style='mpl20') +def test_aspects_adjust_box(): + aspects = ('auto', 'equal', 'equalxy', 'equalyz', 'equalxz') + fig, axs = plt.subplots(1, len(aspects), subplot_kw={'projection': '3d'}, + figsize=(11, 3)) + + for i, ax in enumerate(axs): + plot_cuboid(ax, scale=[4, 3, 5]) + ax.set_title(aspects[i]) + ax.set_aspect(aspects[i], adjustable='box') + + +def test_axes3d_repr(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + ax.set_label('label') + ax.set_title('title') + ax.set_xlabel('x') + ax.set_ylabel('y') + ax.set_zlabel('z') + assert repr(ax) == ( + "") + + +@mpl3d_image_comparison(['axes3d_primary_views.png'], style='mpl20', + tol=0.05 if sys.platform == "darwin" else 0) +def test_axes3d_primary_views(): + # (elev, azim, roll) + views = [(90, -90, 0), # XY + (0, -90, 0), # XZ + (0, 0, 0), # YZ + (-90, 90, 0), # -XY + (0, 90, 0), # -XZ + (0, 180, 0)] # -YZ + # When viewing primary planes, draw the two visible axes so they intersect + # at their low values + fig, axs = plt.subplots(2, 3, subplot_kw={'projection': '3d'}) + for i, ax in enumerate(axs.flat): + ax.set_xlabel('x') + ax.set_ylabel('y') + ax.set_zlabel('z') + ax.set_proj_type('ortho') + ax.view_init(elev=views[i][0], azim=views[i][1], roll=views[i][2]) + plt.tight_layout() + + +@mpl3d_image_comparison(['bar3d.png'], style='mpl20') +def test_bar3d(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + for c, z in zip(['r', 'g', 'b', 'y'], [30, 20, 10, 0]): + xs = np.arange(20) + ys = np.arange(20) + cs = [c] * len(xs) + cs[0] = 'c' + ax.bar(xs, ys, zs=z, zdir='y', align='edge', color=cs, alpha=0.8) + + +def test_bar3d_colors(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + for c in ['red', 'green', 'blue', 'yellow']: + xs = np.arange(len(c)) + ys = np.zeros_like(xs) + zs = np.zeros_like(ys) + # Color names with same length as xs/ys/zs should not be split into + # individual letters. + ax.bar3d(xs, ys, zs, 1, 1, 1, color=c) + + +@mpl3d_image_comparison(['bar3d_shaded.png'], style='mpl20') +def test_bar3d_shaded(): + x = np.arange(4) + y = np.arange(5) + x2d, y2d = np.meshgrid(x, y) + x2d, y2d = x2d.ravel(), y2d.ravel() + z = x2d + y2d + 1 # Avoid triggering bug with zero-depth boxes. + + views = [(30, -60, 0), (30, 30, 30), (-30, 30, -90), (300, -30, 0)] + fig = plt.figure(figsize=plt.figaspect(1 / len(views))) + axs = fig.subplots( + 1, len(views), + subplot_kw=dict(projection='3d') + ) + for ax, (elev, azim, roll) in zip(axs, views): + ax.bar3d(x2d, y2d, x2d * 0, 1, 1, z, shade=True) + ax.view_init(elev=elev, azim=azim, roll=roll) + fig.canvas.draw() + + +@mpl3d_image_comparison(['bar3d_notshaded.png'], style='mpl20') +def test_bar3d_notshaded(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + x = np.arange(4) + y = np.arange(5) + x2d, y2d = np.meshgrid(x, y) + x2d, y2d = x2d.ravel(), y2d.ravel() + z = x2d + y2d + ax.bar3d(x2d, y2d, x2d * 0, 1, 1, z, shade=False) + fig.canvas.draw() + + +def test_bar3d_lightsource(): + fig = plt.figure() + ax = fig.add_subplot(1, 1, 1, projection="3d") + + ls = mcolors.LightSource(azdeg=0, altdeg=90) + + length, width = 3, 4 + area = length * width + + x, y = np.meshgrid(np.arange(length), np.arange(width)) + x = x.ravel() + y = y.ravel() + dz = x + y + + color = [cm.coolwarm(i/area) for i in range(area)] + + collection = ax.bar3d(x=x, y=y, z=0, + dx=1, dy=1, dz=dz, + color=color, shade=True, lightsource=ls) + + # Testing that the custom 90° lightsource produces different shading on + # the top facecolors compared to the default, and that those colors are + # precisely (within floating point rounding errors of 4 ULP) the colors + # from the colormap, due to the illumination parallel to the z-axis. + np.testing.assert_array_max_ulp(color, collection._facecolor3d[1::6], 4) + + +@mpl3d_image_comparison(['contour3d.png'], style='mpl20', + tol=0 if platform.machine() == 'x86_64' else 0.002) +def test_contour3d(): + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + X, Y, Z = axes3d.get_test_data(0.05) + ax.contour(X, Y, Z, zdir='z', offset=-100, cmap=cm.coolwarm) + ax.contour(X, Y, Z, zdir='x', offset=-40, cmap=cm.coolwarm) + ax.contour(X, Y, Z, zdir='y', offset=40, cmap=cm.coolwarm) + ax.axis(xmin=-40, xmax=40, ymin=-40, ymax=40, zmin=-100, zmax=100) + + +@mpl3d_image_comparison(['contour3d_extend3d.png'], style='mpl20') +def test_contour3d_extend3d(): + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + X, Y, Z = axes3d.get_test_data(0.05) + ax.contour(X, Y, Z, zdir='z', offset=-100, cmap=cm.coolwarm, extend3d=True) + ax.set_xlim(-30, 30) + ax.set_ylim(-20, 40) + ax.set_zlim(-80, 80) + + +@mpl3d_image_comparison(['contourf3d.png'], style='mpl20') +def test_contourf3d(): + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + X, Y, Z = axes3d.get_test_data(0.05) + ax.contourf(X, Y, Z, zdir='z', offset=-100, cmap=cm.coolwarm) + ax.contourf(X, Y, Z, zdir='x', offset=-40, cmap=cm.coolwarm) + ax.contourf(X, Y, Z, zdir='y', offset=40, cmap=cm.coolwarm) + ax.set_xlim(-40, 40) + ax.set_ylim(-40, 40) + ax.set_zlim(-100, 100) + + +@mpl3d_image_comparison(['contourf3d_fill.png'], style='mpl20') +def test_contourf3d_fill(): + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + X, Y = np.meshgrid(np.arange(-2, 2, 0.25), np.arange(-2, 2, 0.25)) + Z = X.clip(0, 0) + # This produces holes in the z=0 surface that causes rendering errors if + # the Poly3DCollection is not aware of path code information (issue #4784) + Z[::5, ::5] = 0.1 + ax.contourf(X, Y, Z, offset=0, levels=[-0.1, 0], cmap=cm.coolwarm) + ax.set_xlim(-2, 2) + ax.set_ylim(-2, 2) + ax.set_zlim(-1, 1) + + +@pytest.mark.parametrize('extend, levels', [['both', [2, 4, 6]], + ['min', [2, 4, 6, 8]], + ['max', [0, 2, 4, 6]]]) +@check_figures_equal(extensions=["png"]) +def test_contourf3d_extend(fig_test, fig_ref, extend, levels): + X, Y = np.meshgrid(np.arange(-2, 2, 0.25), np.arange(-2, 2, 0.25)) + # Z is in the range [0, 8] + Z = X**2 + Y**2 + + # Manually set the over/under colors to be the end of the colormap + cmap = mpl.colormaps['viridis'].copy() + cmap.set_under(cmap(0)) + cmap.set_over(cmap(255)) + # Set vmin/max to be the min/max values plotted on the reference image + kwargs = {'vmin': 1, 'vmax': 7, 'cmap': cmap} + + ax_ref = fig_ref.add_subplot(projection='3d') + ax_ref.contourf(X, Y, Z, levels=[0, 2, 4, 6, 8], **kwargs) + + ax_test = fig_test.add_subplot(projection='3d') + ax_test.contourf(X, Y, Z, levels, extend=extend, **kwargs) + + for ax in [ax_ref, ax_test]: + ax.set_xlim(-2, 2) + ax.set_ylim(-2, 2) + ax.set_zlim(-10, 10) + + +@mpl3d_image_comparison(['tricontour.png'], tol=0.02, style='mpl20') +def test_tricontour(): + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + fig = plt.figure() + + np.random.seed(19680801) + x = np.random.rand(1000) - 0.5 + y = np.random.rand(1000) - 0.5 + z = -(x**2 + y**2) + + ax = fig.add_subplot(1, 2, 1, projection='3d') + ax.tricontour(x, y, z) + ax = fig.add_subplot(1, 2, 2, projection='3d') + ax.tricontourf(x, y, z) + + +def test_contour3d_1d_input(): + # Check that 1D sequences of different length for {x, y} doesn't error + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + nx, ny = 30, 20 + x = np.linspace(-10, 10, nx) + y = np.linspace(-10, 10, ny) + z = np.random.randint(0, 2, [ny, nx]) + ax.contour(x, y, z, [0.5]) + + +@mpl3d_image_comparison(['lines3d.png'], style='mpl20') +def test_lines3d(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + theta = np.linspace(-4 * np.pi, 4 * np.pi, 100) + z = np.linspace(-2, 2, 100) + r = z ** 2 + 1 + x = r * np.sin(theta) + y = r * np.cos(theta) + ax.plot(x, y, z) + + +@check_figures_equal(extensions=["png"]) +def test_plot_scalar(fig_test, fig_ref): + ax1 = fig_test.add_subplot(projection='3d') + ax1.plot([1], [1], "o") + ax2 = fig_ref.add_subplot(projection='3d') + ax2.plot(1, 1, "o") + + +def test_invalid_line_data(): + with pytest.raises(RuntimeError, match='x must be'): + art3d.Line3D(0, [], []) + with pytest.raises(RuntimeError, match='y must be'): + art3d.Line3D([], 0, []) + with pytest.raises(RuntimeError, match='z must be'): + art3d.Line3D([], [], 0) + + line = art3d.Line3D([], [], []) + with pytest.raises(RuntimeError, match='x must be'): + line.set_data_3d(0, [], []) + with pytest.raises(RuntimeError, match='y must be'): + line.set_data_3d([], 0, []) + with pytest.raises(RuntimeError, match='z must be'): + line.set_data_3d([], [], 0) + + +@mpl3d_image_comparison(['mixedsubplot.png'], style='mpl20') +def test_mixedsubplots(): + def f(t): + return np.cos(2*np.pi*t) * np.exp(-t) + + t1 = np.arange(0.0, 5.0, 0.1) + t2 = np.arange(0.0, 5.0, 0.02) + + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + fig = plt.figure(figsize=plt.figaspect(2.)) + ax = fig.add_subplot(2, 1, 1) + ax.plot(t1, f(t1), 'bo', t2, f(t2), 'k--', markerfacecolor='green') + ax.grid(True) + + ax = fig.add_subplot(2, 1, 2, projection='3d') + X, Y = np.meshgrid(np.arange(-5, 5, 0.25), np.arange(-5, 5, 0.25)) + R = np.hypot(X, Y) + Z = np.sin(R) + + ax.plot_surface(X, Y, Z, rcount=40, ccount=40, + linewidth=0, antialiased=False) + + ax.set_zlim3d(-1, 1) + + +@check_figures_equal(extensions=['png']) +def test_tight_layout_text(fig_test, fig_ref): + # text is currently ignored in tight layout. So the order of text() and + # tight_layout() calls should not influence the result. + ax1 = fig_test.add_subplot(projection='3d') + ax1.text(.5, .5, .5, s='some string') + fig_test.tight_layout() + + ax2 = fig_ref.add_subplot(projection='3d') + fig_ref.tight_layout() + ax2.text(.5, .5, .5, s='some string') + + +@mpl3d_image_comparison(['scatter3d.png'], style='mpl20') +def test_scatter3d(): + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + ax.scatter(np.arange(10), np.arange(10), np.arange(10), + c='r', marker='o') + x = y = z = np.arange(10, 20) + ax.scatter(x, y, z, c='b', marker='^') + z[-1] = 0 # Check that scatter() copies the data. + # Ensure empty scatters do not break. + ax.scatter([], [], [], c='r', marker='X') + + +@mpl3d_image_comparison(['scatter3d_color.png'], style='mpl20') +def test_scatter3d_color(): + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + + # Check that 'none' color works; these two should overlay to produce the + # same as setting just `color`. + ax.scatter(np.arange(10), np.arange(10), np.arange(10), + facecolor='r', edgecolor='none', marker='o') + ax.scatter(np.arange(10), np.arange(10), np.arange(10), + facecolor='none', edgecolor='r', marker='o') + + ax.scatter(np.arange(10, 20), np.arange(10, 20), np.arange(10, 20), + color='b', marker='s') + + +@mpl3d_image_comparison(['scatter3d_linewidth.png'], style='mpl20') +def test_scatter3d_linewidth(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + + # Check that array-like linewidth can be set + ax.scatter(np.arange(10), np.arange(10), np.arange(10), + marker='o', linewidth=np.arange(10)) + + +@check_figures_equal(extensions=['png']) +def test_scatter3d_linewidth_modification(fig_ref, fig_test): + # Changing Path3DCollection linewidths with array-like post-creation + # should work correctly. + ax_test = fig_test.add_subplot(projection='3d') + c = ax_test.scatter(np.arange(10), np.arange(10), np.arange(10), + marker='o') + c.set_linewidths(np.arange(10)) + + ax_ref = fig_ref.add_subplot(projection='3d') + ax_ref.scatter(np.arange(10), np.arange(10), np.arange(10), marker='o', + linewidths=np.arange(10)) + + +@check_figures_equal(extensions=['png']) +def test_scatter3d_modification(fig_ref, fig_test): + # Changing Path3DCollection properties post-creation should work correctly. + ax_test = fig_test.add_subplot(projection='3d') + c = ax_test.scatter(np.arange(10), np.arange(10), np.arange(10), + marker='o') + c.set_facecolor('C1') + c.set_edgecolor('C2') + c.set_alpha([0.3, 0.7] * 5) + assert c.get_depthshade() + c.set_depthshade(False) + assert not c.get_depthshade() + c.set_sizes(np.full(10, 75)) + c.set_linewidths(3) + + ax_ref = fig_ref.add_subplot(projection='3d') + ax_ref.scatter(np.arange(10), np.arange(10), np.arange(10), marker='o', + facecolor='C1', edgecolor='C2', alpha=[0.3, 0.7] * 5, + depthshade=False, s=75, linewidths=3) + + +@pytest.mark.parametrize('depthshade', [True, False]) +@check_figures_equal(extensions=['png']) +def test_scatter3d_sorting(fig_ref, fig_test, depthshade): + """Test that marker properties are correctly sorted.""" + + y, x = np.mgrid[:10, :10] + z = np.arange(x.size).reshape(x.shape) + + sizes = np.full(z.shape, 25) + sizes[0::2, 0::2] = 100 + sizes[1::2, 1::2] = 100 + + facecolors = np.full(z.shape, 'C0') + facecolors[:5, :5] = 'C1' + facecolors[6:, :4] = 'C2' + facecolors[6:, 6:] = 'C3' + + edgecolors = np.full(z.shape, 'C4') + edgecolors[1:5, 1:5] = 'C5' + edgecolors[5:9, 1:5] = 'C6' + edgecolors[5:9, 5:9] = 'C7' + + linewidths = np.full(z.shape, 2) + linewidths[0::2, 0::2] = 5 + linewidths[1::2, 1::2] = 5 + + x, y, z, sizes, facecolors, edgecolors, linewidths = ( + a.flatten() + for a in [x, y, z, sizes, facecolors, edgecolors, linewidths] + ) + + ax_ref = fig_ref.add_subplot(projection='3d') + sets = (np.unique(a) for a in [sizes, facecolors, edgecolors, linewidths]) + for s, fc, ec, lw in itertools.product(*sets): + subset = ( + (sizes != s) | + (facecolors != fc) | + (edgecolors != ec) | + (linewidths != lw) + ) + subset = np.ma.masked_array(z, subset, dtype=float) + + # When depth shading is disabled, the colors are passed through as + # single-item lists; this triggers single path optimization. The + # following reshaping is a hack to disable that, since the optimization + # would not occur for the full scatter which has multiple colors. + fc = np.repeat(fc, sum(~subset.mask)) + + ax_ref.scatter(x, y, subset, s=s, fc=fc, ec=ec, lw=lw, alpha=1, + depthshade=depthshade) + + ax_test = fig_test.add_subplot(projection='3d') + ax_test.scatter(x, y, z, s=sizes, fc=facecolors, ec=edgecolors, + lw=linewidths, alpha=1, depthshade=depthshade) + + +@pytest.mark.parametrize('azim', [-50, 130]) # yellow first, blue first +@check_figures_equal(extensions=['png']) +def test_marker_draw_order_data_reversed(fig_test, fig_ref, azim): + """ + Test that the draw order does not depend on the data point order. + + For the given viewing angle at azim=-50, the yellow marker should be in + front. For azim=130, the blue marker should be in front. + """ + x = [-1, 1] + y = [1, -1] + z = [0, 0] + color = ['b', 'y'] + ax = fig_test.add_subplot(projection='3d') + ax.scatter(x, y, z, s=3500, c=color) + ax.view_init(elev=0, azim=azim, roll=0) + ax = fig_ref.add_subplot(projection='3d') + ax.scatter(x[::-1], y[::-1], z[::-1], s=3500, c=color[::-1]) + ax.view_init(elev=0, azim=azim, roll=0) + + +@check_figures_equal(extensions=['png']) +def test_marker_draw_order_view_rotated(fig_test, fig_ref): + """ + Test that the draw order changes with the direction. + + If we rotate *azim* by 180 degrees and exchange the colors, the plot + plot should look the same again. + """ + azim = 130 + x = [-1, 1] + y = [1, -1] + z = [0, 0] + color = ['b', 'y'] + ax = fig_test.add_subplot(projection='3d') + # axis are not exactly invariant under 180 degree rotation -> deactivate + ax.set_axis_off() + ax.scatter(x, y, z, s=3500, c=color) + ax.view_init(elev=0, azim=azim, roll=0) + ax = fig_ref.add_subplot(projection='3d') + ax.set_axis_off() + ax.scatter(x, y, z, s=3500, c=color[::-1]) # color reversed + ax.view_init(elev=0, azim=azim - 180, roll=0) # view rotated by 180 deg + + +@mpl3d_image_comparison(['plot_3d_from_2d.png'], tol=0.019, style='mpl20') +def test_plot_3d_from_2d(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + xs = np.arange(0, 5) + ys = np.arange(5, 10) + ax.plot(xs, ys, zs=0, zdir='x') + ax.plot(xs, ys, zs=0, zdir='y') + + +@mpl3d_image_comparison(['fill_between_quad.png'], style='mpl20') +def test_fill_between_quad(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + + theta = np.linspace(0, 2*np.pi, 50) + + x1 = np.cos(theta) + y1 = np.sin(theta) + z1 = 0.1 * np.sin(6 * theta) + + x2 = 0.6 * np.cos(theta) + y2 = 0.6 * np.sin(theta) + z2 = 2 + + where = (theta < np.pi/2) | (theta > 3*np.pi/2) + + # Since none of x1 == x2, y1 == y2, or z1 == z2 is True, the fill_between + # mode will map to 'quad' + ax.fill_between(x1, y1, z1, x2, y2, z2, + where=where, mode='auto', alpha=0.5, edgecolor='k') + + +@mpl3d_image_comparison(['fill_between_polygon.png'], style='mpl20') +def test_fill_between_polygon(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + + theta = np.linspace(0, 2*np.pi, 50) + + x1 = x2 = theta + y1 = y2 = 0 + z1 = np.cos(theta) + z2 = z1 + 1 + + where = (theta < np.pi/2) | (theta > 3*np.pi/2) + + # Since x1 == x2 and y1 == y2, the fill_between mode will be 'polygon' + ax.fill_between(x1, y1, z1, x2, y2, z2, + where=where, mode='auto', edgecolor='k') + + +@mpl3d_image_comparison(['surface3d.png'], style='mpl20') +def test_surface3d(): + # Remove this line when this test image is regenerated. + plt.rcParams['pcolormesh.snap'] = False + + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + X = np.arange(-5, 5, 0.25) + Y = np.arange(-5, 5, 0.25) + X, Y = np.meshgrid(X, Y) + R = np.hypot(X, Y) + Z = np.sin(R) + surf = ax.plot_surface(X, Y, Z, rcount=40, ccount=40, cmap=cm.coolwarm, + lw=0, antialiased=False) + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + ax.set_zlim(-1.01, 1.01) + fig.colorbar(surf, shrink=0.5, aspect=5) + + +@image_comparison(['surface3d_label_offset_tick_position.png'], style='mpl20') +def test_surface3d_label_offset_tick_position(): + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + ax = plt.figure().add_subplot(projection="3d") + + x, y = np.mgrid[0:6 * np.pi:0.25, 0:4 * np.pi:0.25] + z = np.sqrt(np.abs(np.cos(x) + np.cos(y))) + + ax.plot_surface(x * 1e5, y * 1e6, z * 1e8, cmap='autumn', cstride=2, rstride=2) + ax.set_xlabel("X label") + ax.set_ylabel("Y label") + ax.set_zlabel("Z label") + + +@mpl3d_image_comparison(['surface3d_shaded.png'], style='mpl20') +def test_surface3d_shaded(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + X = np.arange(-5, 5, 0.25) + Y = np.arange(-5, 5, 0.25) + X, Y = np.meshgrid(X, Y) + R = np.sqrt(X ** 2 + Y ** 2) + Z = np.sin(R) + ax.plot_surface(X, Y, Z, rstride=5, cstride=5, + color=[0.25, 1, 0.25], lw=1, antialiased=False) + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + ax.set_zlim(-1.01, 1.01) + + +@mpl3d_image_comparison(['surface3d_masked.png'], style='mpl20') +def test_surface3d_masked(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + y = [1, 2, 3, 4, 5, 6, 7, 8] + + x, y = np.meshgrid(x, y) + matrix = np.array( + [ + [-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [-1, 1, 2, 3, 4, 4, 4, 3, 2, 1, 1], + [-1, -1., 4, 5, 6, 8, 6, 5, 4, 3, -1.], + [-1, -1., 7, 8, 11, 12, 11, 8, 7, -1., -1.], + [-1, -1., 8, 9, 10, 16, 10, 9, 10, 7, -1.], + [-1, -1., -1., 12, 16, 20, 16, 12, 11, -1., -1.], + [-1, -1., -1., -1., 22, 24, 22, 20, 18, -1., -1.], + [-1, -1., -1., -1., -1., 28, 26, 25, -1., -1., -1.], + ] + ) + z = np.ma.masked_less(matrix, 0) + norm = mcolors.Normalize(vmax=z.max(), vmin=z.min()) + colors = mpl.colormaps["plasma"](norm(z)) + ax.plot_surface(x, y, z, facecolors=colors) + ax.view_init(30, -80, 0) + + +@check_figures_equal(extensions=["png"]) +def test_plot_scatter_masks(fig_test, fig_ref): + x = np.linspace(0, 10, 100) + y = np.linspace(0, 10, 100) + z = np.sin(x) * np.cos(y) + mask = z > 0 + + z_masked = np.ma.array(z, mask=mask) + ax_test = fig_test.add_subplot(projection='3d') + ax_test.scatter(x, y, z_masked) + ax_test.plot(x, y, z_masked) + + x[mask] = y[mask] = z[mask] = np.nan + ax_ref = fig_ref.add_subplot(projection='3d') + ax_ref.scatter(x, y, z) + ax_ref.plot(x, y, z) + + +@check_figures_equal(extensions=["png"]) +def test_plot_surface_None_arg(fig_test, fig_ref): + x, y = np.meshgrid(np.arange(5), np.arange(5)) + z = x + y + ax_test = fig_test.add_subplot(projection='3d') + ax_test.plot_surface(x, y, z, facecolors=None) + ax_ref = fig_ref.add_subplot(projection='3d') + ax_ref.plot_surface(x, y, z) + + +@mpl3d_image_comparison(['surface3d_masked_strides.png'], style='mpl20') +def test_surface3d_masked_strides(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + + x, y = np.mgrid[-6:6.1:1, -6:6.1:1] + z = np.ma.masked_less(x * y, 2) + + ax.plot_surface(x, y, z, rstride=4, cstride=4) + ax.view_init(60, -45, 0) + + +@mpl3d_image_comparison(['text3d.png'], remove_text=False, style='mpl20') +def test_text3d(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + + zdirs = (None, 'x', 'y', 'z', (1, 1, 0), (1, 1, 1)) + xs = (2, 6, 4, 9, 7, 2) + ys = (6, 4, 8, 7, 2, 2) + zs = (4, 2, 5, 6, 1, 7) + + for zdir, x, y, z in zip(zdirs, xs, ys, zs): + label = '(%d, %d, %d), dir=%s' % (x, y, z, zdir) + ax.text(x, y, z, label, zdir) + + ax.text(1, 1, 1, "red", color='red') + ax.text2D(0.05, 0.95, "2D Text", transform=ax.transAxes) + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + ax.set_xlim3d(0, 10) + ax.set_ylim3d(0, 10) + ax.set_zlim3d(0, 10) + ax.set_xlabel('X axis') + ax.set_ylabel('Y axis') + ax.set_zlabel('Z axis') + + +@check_figures_equal(extensions=['png']) +def test_text3d_modification(fig_ref, fig_test): + # Modifying the Text position after the fact should work the same as + # setting it directly. + zdirs = (None, 'x', 'y', 'z', (1, 1, 0), (1, 1, 1)) + xs = (2, 6, 4, 9, 7, 2) + ys = (6, 4, 8, 7, 2, 2) + zs = (4, 2, 5, 6, 1, 7) + + ax_test = fig_test.add_subplot(projection='3d') + ax_test.set_xlim3d(0, 10) + ax_test.set_ylim3d(0, 10) + ax_test.set_zlim3d(0, 10) + for zdir, x, y, z in zip(zdirs, xs, ys, zs): + t = ax_test.text(0, 0, 0, f'({x}, {y}, {z}), dir={zdir}') + t.set_position_3d((x, y, z), zdir=zdir) + + ax_ref = fig_ref.add_subplot(projection='3d') + ax_ref.set_xlim3d(0, 10) + ax_ref.set_ylim3d(0, 10) + ax_ref.set_zlim3d(0, 10) + for zdir, x, y, z in zip(zdirs, xs, ys, zs): + ax_ref.text(x, y, z, f'({x}, {y}, {z}), dir={zdir}', zdir=zdir) + + +@mpl3d_image_comparison(['trisurf3d.png'], tol=0.061, style='mpl20') +def test_trisurf3d(): + n_angles = 36 + n_radii = 8 + radii = np.linspace(0.125, 1.0, n_radii) + angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False) + angles = np.repeat(angles[..., np.newaxis], n_radii, axis=1) + angles[:, 1::2] += np.pi/n_angles + + x = np.append(0, (radii*np.cos(angles)).flatten()) + y = np.append(0, (radii*np.sin(angles)).flatten()) + z = np.sin(-x*y) + + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + ax.plot_trisurf(x, y, z, cmap=cm.jet, linewidth=0.2) + + +@mpl3d_image_comparison(['trisurf3d_shaded.png'], tol=0.03, style='mpl20') +def test_trisurf3d_shaded(): + n_angles = 36 + n_radii = 8 + radii = np.linspace(0.125, 1.0, n_radii) + angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False) + angles = np.repeat(angles[..., np.newaxis], n_radii, axis=1) + angles[:, 1::2] += np.pi/n_angles + + x = np.append(0, (radii*np.cos(angles)).flatten()) + y = np.append(0, (radii*np.sin(angles)).flatten()) + z = np.sin(-x*y) + + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + ax.plot_trisurf(x, y, z, color=[1, 0.5, 0], linewidth=0.2) + + +@mpl3d_image_comparison(['wireframe3d.png'], style='mpl20') +def test_wireframe3d(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + X, Y, Z = axes3d.get_test_data(0.05) + ax.plot_wireframe(X, Y, Z, rcount=13, ccount=13) + + +@mpl3d_image_comparison(['wireframe3dzerocstride.png'], style='mpl20') +def test_wireframe3dzerocstride(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + X, Y, Z = axes3d.get_test_data(0.05) + ax.plot_wireframe(X, Y, Z, rcount=13, ccount=0) + + +@mpl3d_image_comparison(['wireframe3dzerorstride.png'], style='mpl20') +def test_wireframe3dzerorstride(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + X, Y, Z = axes3d.get_test_data(0.05) + ax.plot_wireframe(X, Y, Z, rstride=0, cstride=10) + + +def test_wireframe3dzerostrideraises(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + X, Y, Z = axes3d.get_test_data(0.05) + with pytest.raises(ValueError): + ax.plot_wireframe(X, Y, Z, rstride=0, cstride=0) + + +def test_mixedsamplesraises(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + X, Y, Z = axes3d.get_test_data(0.05) + with pytest.raises(ValueError): + ax.plot_wireframe(X, Y, Z, rstride=10, ccount=50) + with pytest.raises(ValueError): + ax.plot_surface(X, Y, Z, cstride=50, rcount=10) + + +# remove tolerance when regenerating the test image +@mpl3d_image_comparison(['quiver3d.png'], style='mpl20', tol=0.003) +def test_quiver3d(): + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + pivots = ['tip', 'middle', 'tail'] + colors = ['tab:blue', 'tab:orange', 'tab:green'] + for i, (pivot, color) in enumerate(zip(pivots, colors)): + x, y, z = np.meshgrid([-0.5, 0.5], [-0.5, 0.5], [-0.5, 0.5]) + u = -x + v = -y + w = -z + # Offset each set in z direction + z += 2 * i + ax.quiver(x, y, z, u, v, w, length=1, pivot=pivot, color=color) + ax.scatter(x, y, z, color=color) + + ax.set_xlim(-3, 3) + ax.set_ylim(-3, 3) + ax.set_zlim(-1, 5) + + +@check_figures_equal(extensions=["png"]) +def test_quiver3d_empty(fig_test, fig_ref): + fig_ref.add_subplot(projection='3d') + x = y = z = u = v = w = [] + ax = fig_test.add_subplot(projection='3d') + ax.quiver(x, y, z, u, v, w, length=0.1, pivot='tip', normalize=True) + + +@mpl3d_image_comparison(['quiver3d_masked.png'], style='mpl20') +def test_quiver3d_masked(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + + # Using mgrid here instead of ogrid because masked_where doesn't + # seem to like broadcasting very much... + x, y, z = np.mgrid[-1:0.8:10j, -1:0.8:10j, -1:0.6:3j] + + u = np.sin(np.pi * x) * np.cos(np.pi * y) * np.cos(np.pi * z) + v = -np.cos(np.pi * x) * np.sin(np.pi * y) * np.cos(np.pi * z) + w = (2/3)**0.5 * np.cos(np.pi * x) * np.cos(np.pi * y) * np.sin(np.pi * z) + u = np.ma.masked_where((-0.4 < x) & (x < 0.1), u, copy=False) + v = np.ma.masked_where((0.1 < y) & (y < 0.7), v, copy=False) + + ax.quiver(x, y, z, u, v, w, length=0.1, pivot='tip', normalize=True) + + +@mpl3d_image_comparison(['quiver3d_colorcoded.png'], style='mpl20') +def test_quiver3d_colorcoded(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + + x = y = dx = dz = np.zeros(10) + z = dy = np.arange(10.) + + color = plt.cm.Reds(dy/dy.max()) + ax.quiver(x, y, z, dx, dy, dz, colors=color) + ax.set_ylim(0, 10) + + +def test_patch_modification(): + fig = plt.figure() + ax = fig.add_subplot(projection="3d") + circle = Circle((0, 0)) + ax.add_patch(circle) + art3d.patch_2d_to_3d(circle) + circle.set_facecolor((1.0, 0.0, 0.0, 1)) + + assert mcolors.same_color(circle.get_facecolor(), (1, 0, 0, 1)) + fig.canvas.draw() + assert mcolors.same_color(circle.get_facecolor(), (1, 0, 0, 1)) + + +@check_figures_equal(extensions=['png']) +def test_patch_collection_modification(fig_test, fig_ref): + # Test that modifying Patch3DCollection properties after creation works. + patch1 = Circle((0, 0), 0.05) + patch2 = Circle((0.1, 0.1), 0.03) + facecolors = np.array([[0., 0.5, 0., 1.], [0.5, 0., 0., 0.5]]) + c = art3d.Patch3DCollection([patch1, patch2], linewidths=3) + + ax_test = fig_test.add_subplot(projection='3d') + ax_test.add_collection3d(c) + c.set_edgecolor('C2') + c.set_facecolor(facecolors) + c.set_alpha(0.7) + assert c.get_depthshade() + c.set_depthshade(False) + assert not c.get_depthshade() + + patch1 = Circle((0, 0), 0.05) + patch2 = Circle((0.1, 0.1), 0.03) + facecolors = np.array([[0., 0.5, 0., 1.], [0.5, 0., 0., 0.5]]) + c = art3d.Patch3DCollection([patch1, patch2], linewidths=3, + edgecolor='C2', facecolor=facecolors, + alpha=0.7, depthshade=False) + + ax_ref = fig_ref.add_subplot(projection='3d') + ax_ref.add_collection3d(c) + + +def test_poly3dcollection_verts_validation(): + poly = [[0, 0, 1], [0, 1, 1], [0, 1, 0], [0, 0, 0]] + with pytest.raises(ValueError, match=r'list of \(N, 3\) array-like'): + art3d.Poly3DCollection(poly) # should be Poly3DCollection([poly]) + + poly = np.array(poly, dtype=float) + with pytest.raises(ValueError, match=r'list of \(N, 3\) array-like'): + art3d.Poly3DCollection(poly) # should be Poly3DCollection([poly]) + + +@mpl3d_image_comparison(['poly3dcollection_closed.png'], style='mpl20') +def test_poly3dcollection_closed(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + + poly1 = np.array([[0, 0, 1], [0, 1, 1], [0, 0, 0]], float) + poly2 = np.array([[0, 1, 1], [1, 1, 1], [1, 1, 0]], float) + c1 = art3d.Poly3DCollection([poly1], linewidths=3, edgecolor='k', + facecolor=(0.5, 0.5, 1, 0.5), closed=True) + c2 = art3d.Poly3DCollection([poly2], linewidths=3, edgecolor='k', + facecolor=(1, 0.5, 0.5, 0.5), closed=False) + ax.add_collection3d(c1, autolim=False) + ax.add_collection3d(c2, autolim=False) + + +def test_poly_collection_2d_to_3d_empty(): + poly = PolyCollection([]) + art3d.poly_collection_2d_to_3d(poly) + assert isinstance(poly, art3d.Poly3DCollection) + assert poly.get_paths() == [] + + fig, ax = plt.subplots(subplot_kw=dict(projection='3d')) + ax.add_artist(poly) + minz = poly.do_3d_projection() + assert np.isnan(minz) + + # Ensure drawing actually works. + fig.canvas.draw() + + +@mpl3d_image_comparison(['poly3dcollection_alpha.png'], style='mpl20') +def test_poly3dcollection_alpha(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + + poly1 = np.array([[0, 0, 1], [0, 1, 1], [0, 0, 0]], float) + poly2 = np.array([[0, 1, 1], [1, 1, 1], [1, 1, 0]], float) + c1 = art3d.Poly3DCollection([poly1], linewidths=3, edgecolor='k', + facecolor=(0.5, 0.5, 1), closed=True) + c1.set_alpha(0.5) + c2 = art3d.Poly3DCollection([poly2], linewidths=3, closed=False) + # Post-creation modification should work. + c2.set_facecolor((1, 0.5, 0.5)) + c2.set_edgecolor('k') + c2.set_alpha(0.5) + ax.add_collection3d(c1, autolim=False) + ax.add_collection3d(c2, autolim=False) + + +@mpl3d_image_comparison(['add_collection3d_zs_array.png'], style='mpl20') +def test_add_collection3d_zs_array(): + theta = np.linspace(-4 * np.pi, 4 * np.pi, 100) + z = np.linspace(-2, 2, 100) + r = z**2 + 1 + x = r * np.sin(theta) + y = r * np.cos(theta) + + points = np.column_stack([x, y, z]).reshape(-1, 1, 3) + segments = np.concatenate([points[:-1], points[1:]], axis=1) + + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + + norm = plt.Normalize(0, 2*np.pi) + # 2D LineCollection from x & y values + lc = LineCollection(segments[:, :, :2], cmap='twilight', norm=norm) + lc.set_array(np.mod(theta, 2*np.pi)) + # Add 2D collection at z values to ax + line = ax.add_collection3d(lc, zs=segments[:, :, 2]) + + assert line is not None + + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + ax.set_xlim(-5, 5) + ax.set_ylim(-4, 6) + ax.set_zlim(-2, 2) + + +@mpl3d_image_comparison(['add_collection3d_zs_scalar.png'], style='mpl20') +def test_add_collection3d_zs_scalar(): + theta = np.linspace(0, 2 * np.pi, 100) + z = 1 + r = z**2 + 1 + x = r * np.sin(theta) + y = r * np.cos(theta) + + points = np.column_stack([x, y]).reshape(-1, 1, 2) + segments = np.concatenate([points[:-1], points[1:]], axis=1) + + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + + norm = plt.Normalize(0, 2*np.pi) + lc = LineCollection(segments, cmap='twilight', norm=norm) + lc.set_array(theta) + line = ax.add_collection3d(lc, zs=z) + + assert line is not None + + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + ax.set_xlim(-5, 5) + ax.set_ylim(-4, 6) + ax.set_zlim(0, 2) + + +def test_line3dCollection_autoscaling(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + + lines = [[(0, 0, 0), (1, 4, 2)], + [(1, 1, 3), (2, 0, 2)], + [(1, 0, 4), (1, 4, 5)]] + + lc = art3d.Line3DCollection(lines) + ax.add_collection3d(lc) + assert np.allclose(ax.get_xlim3d(), (-0.041666666666666664, 2.0416666666666665)) + assert np.allclose(ax.get_ylim3d(), (-0.08333333333333333, 4.083333333333333)) + assert np.allclose(ax.get_zlim3d(), (-0.10416666666666666, 5.104166666666667)) + + +def test_poly3dCollection_autoscaling(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + poly = np.array([[0, 0, 0], [1, 1, 3], [1, 0, 4]]) + col = art3d.Poly3DCollection([poly]) + ax.add_collection3d(col) + assert np.allclose(ax.get_xlim3d(), (-0.020833333333333332, 1.0208333333333333)) + assert np.allclose(ax.get_ylim3d(), (-0.020833333333333332, 1.0208333333333333)) + assert np.allclose(ax.get_zlim3d(), (-0.0833333333333333, 4.083333333333333)) + + +@mpl3d_image_comparison(['axes3d_labelpad.png'], + remove_text=False, style='mpl20') +def test_axes3d_labelpad(): + fig = plt.figure() + ax = fig.add_axes(Axes3D(fig)) + # labelpad respects rcParams + assert ax.xaxis.labelpad == mpl.rcParams['axes.labelpad'] + # labelpad can be set in set_label + ax.set_xlabel('X LABEL', labelpad=10) + assert ax.xaxis.labelpad == 10 + ax.set_ylabel('Y LABEL') + ax.set_zlabel('Z LABEL', labelpad=20) + assert ax.zaxis.labelpad == 20 + assert ax.get_zlabel() == 'Z LABEL' + # or manually + ax.yaxis.labelpad = 20 + ax.zaxis.labelpad = -40 + + # Tick labels also respect tick.pad (also from rcParams) + for i, tick in enumerate(ax.yaxis.get_major_ticks()): + tick.set_pad(tick.get_pad() + 5 - i * 5) + + +@mpl3d_image_comparison(['axes3d_cla.png'], remove_text=False, style='mpl20') +def test_axes3d_cla(): + # fixed in pull request 4553 + fig = plt.figure() + ax = fig.add_subplot(1, 1, 1, projection='3d') + ax.set_axis_off() + ax.cla() # make sure the axis displayed is 3D (not 2D) + + +@mpl3d_image_comparison(['axes3d_rotated.png'], + remove_text=False, style='mpl20') +def test_axes3d_rotated(): + fig = plt.figure() + ax = fig.add_subplot(1, 1, 1, projection='3d') + ax.view_init(90, 45, 0) # look down, rotated. Should be square + + +def test_plotsurface_1d_raises(): + x = np.linspace(0.5, 10, num=100) + y = np.linspace(0.5, 10, num=100) + X, Y = np.meshgrid(x, y) + z = np.random.randn(100) + + fig = plt.figure(figsize=(14, 6)) + ax = fig.add_subplot(1, 2, 1, projection='3d') + with pytest.raises(ValueError): + ax.plot_surface(X, Y, z) + + +def _test_proj_make_M(): + # eye point + E = np.array([1000, -1000, 2000]) + R = np.array([100, 100, 100]) + V = np.array([0, 0, 1]) + roll = 0 + u, v, w = proj3d._view_axes(E, R, V, roll) + viewM = proj3d._view_transformation_uvw(u, v, w, E) + perspM = proj3d._persp_transformation(100, -100, 1) + M = np.dot(perspM, viewM) + return M + + +def test_proj_transform(): + M = _test_proj_make_M() + invM = np.linalg.inv(M) + + xs = np.array([0, 1, 1, 0, 0, 0, 1, 1, 0, 0]) * 300.0 + ys = np.array([0, 0, 1, 1, 0, 0, 0, 1, 1, 0]) * 300.0 + zs = np.array([0, 0, 0, 0, 0, 1, 1, 1, 1, 1]) * 300.0 + + txs, tys, tzs = proj3d.proj_transform(xs, ys, zs, M) + ixs, iys, izs = proj3d.inv_transform(txs, tys, tzs, invM) + + np.testing.assert_almost_equal(ixs, xs) + np.testing.assert_almost_equal(iys, ys) + np.testing.assert_almost_equal(izs, zs) + + +def _test_proj_draw_axes(M, s=1, *args, **kwargs): + xs = [0, s, 0, 0] + ys = [0, 0, s, 0] + zs = [0, 0, 0, s] + txs, tys, tzs = proj3d.proj_transform(xs, ys, zs, M) + o, ax, ay, az = zip(txs, tys) + lines = [(o, ax), (o, ay), (o, az)] + + fig, ax = plt.subplots(*args, **kwargs) + linec = LineCollection(lines) + ax.add_collection(linec) + for x, y, t in zip(txs, tys, ['o', 'x', 'y', 'z']): + ax.text(x, y, t) + + return fig, ax + + +@mpl3d_image_comparison(['proj3d_axes_cube.png'], style='mpl20') +def test_proj_axes_cube(): + M = _test_proj_make_M() + + ts = '0 1 2 3 0 4 5 6 7 4'.split() + xs = np.array([0, 1, 1, 0, 0, 0, 1, 1, 0, 0]) * 300.0 + ys = np.array([0, 0, 1, 1, 0, 0, 0, 1, 1, 0]) * 300.0 + zs = np.array([0, 0, 0, 0, 0, 1, 1, 1, 1, 1]) * 300.0 + + txs, tys, tzs = proj3d.proj_transform(xs, ys, zs, M) + + fig, ax = _test_proj_draw_axes(M, s=400) + + ax.scatter(txs, tys, c=tzs) + ax.plot(txs, tys, c='r') + for x, y, t in zip(txs, tys, ts): + ax.text(x, y, t) + + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + ax.set_xlim(-0.2, 0.2) + ax.set_ylim(-0.2, 0.2) + + +@mpl3d_image_comparison(['proj3d_axes_cube_ortho.png'], style='mpl20') +def test_proj_axes_cube_ortho(): + E = np.array([200, 100, 100]) + R = np.array([0, 0, 0]) + V = np.array([0, 0, 1]) + roll = 0 + u, v, w = proj3d._view_axes(E, R, V, roll) + viewM = proj3d._view_transformation_uvw(u, v, w, E) + orthoM = proj3d._ortho_transformation(-1, 1) + M = np.dot(orthoM, viewM) + + ts = '0 1 2 3 0 4 5 6 7 4'.split() + xs = np.array([0, 1, 1, 0, 0, 0, 1, 1, 0, 0]) * 100 + ys = np.array([0, 0, 1, 1, 0, 0, 0, 1, 1, 0]) * 100 + zs = np.array([0, 0, 0, 0, 0, 1, 1, 1, 1, 1]) * 100 + + txs, tys, tzs = proj3d.proj_transform(xs, ys, zs, M) + + fig, ax = _test_proj_draw_axes(M, s=150) + + ax.scatter(txs, tys, s=300-tzs) + ax.plot(txs, tys, c='r') + for x, y, t in zip(txs, tys, ts): + ax.text(x, y, t) + + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + ax.set_xlim(-200, 200) + ax.set_ylim(-200, 200) + + +def test_world(): + xmin, xmax = 100, 120 + ymin, ymax = -100, 100 + zmin, zmax = 0.1, 0.2 + M = proj3d.world_transformation(xmin, xmax, ymin, ymax, zmin, zmax) + np.testing.assert_allclose(M, + [[5e-2, 0, 0, -5], + [0, 5e-3, 0, 5e-1], + [0, 0, 1e1, -1], + [0, 0, 0, 1]]) + + +def test_autoscale(): + fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) + assert ax.get_zscale() == 'linear' + ax._view_margin = 0 + ax.margins(x=0, y=.1, z=.2) + ax.plot([0, 1], [0, 1], [0, 1]) + assert ax.get_w_lims() == (0, 1, -.1, 1.1, -.2, 1.2) + ax.autoscale(False) + ax.set_autoscalez_on(True) + ax.plot([0, 2], [0, 2], [0, 2]) + assert ax.get_w_lims() == (0, 1, -.1, 1.1, -.4, 2.4) + ax.autoscale(axis='x') + ax.plot([0, 2], [0, 2], [0, 2]) + assert ax.get_w_lims() == (0, 2, -.1, 1.1, -.4, 2.4) + + +@pytest.mark.parametrize('axis', ('x', 'y', 'z')) +@pytest.mark.parametrize('auto', (True, False, None)) +def test_unautoscale(axis, auto): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + + x = np.arange(100) + y = np.linspace(-0.1, 0.1, 100) + ax.scatter(x, y) + + get_autoscale_on = getattr(ax, f'get_autoscale{axis}_on') + set_lim = getattr(ax, f'set_{axis}lim') + get_lim = getattr(ax, f'get_{axis}lim') + + post_auto = get_autoscale_on() if auto is None else auto + + set_lim((-0.5, 0.5), auto=auto) + assert post_auto == get_autoscale_on() + fig.canvas.draw() + np.testing.assert_array_equal(get_lim(), (-0.5, 0.5)) + + +@check_figures_equal(extensions=["png"]) +def test_culling(fig_test, fig_ref): + xmins = (-100, -50) + for fig, xmin in zip((fig_test, fig_ref), xmins): + ax = fig.add_subplot(projection='3d') + n = abs(xmin) + 1 + xs = np.linspace(0, xmin, n) + ys = np.ones(n) + zs = np.zeros(n) + ax.plot(xs, ys, zs, 'k') + + ax.set(xlim=(-5, 5), ylim=(-5, 5), zlim=(-5, 5)) + ax.view_init(5, 180, 0) + + +def test_axes3d_focal_length_checks(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + with pytest.raises(ValueError): + ax.set_proj_type('persp', focal_length=0) + with pytest.raises(ValueError): + ax.set_proj_type('ortho', focal_length=1) + + +@mpl3d_image_comparison(['axes3d_focal_length.png'], + remove_text=False, style='mpl20') +def test_axes3d_focal_length(): + fig, axs = plt.subplots(1, 2, subplot_kw={'projection': '3d'}) + axs[0].set_proj_type('persp', focal_length=np.inf) + axs[1].set_proj_type('persp', focal_length=0.15) + + +@mpl3d_image_comparison(['axes3d_ortho.png'], remove_text=False, style='mpl20') +def test_axes3d_ortho(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + ax.set_proj_type('ortho') + + +@mpl3d_image_comparison(['axes3d_isometric.png'], style='mpl20') +def test_axes3d_isometric(): + from itertools import combinations, product + fig, ax = plt.subplots(subplot_kw=dict( + projection='3d', + proj_type='ortho', + box_aspect=(4, 4, 4) + )) + r = (-1, 1) # stackoverflow.com/a/11156353 + for s, e in combinations(np.array(list(product(r, r, r))), 2): + if abs(s - e).sum() == r[1] - r[0]: + ax.plot3D(*zip(s, e), c='k') + ax.view_init(elev=np.degrees(np.arctan(1. / np.sqrt(2))), azim=-45, roll=0) + ax.grid(True) + + +@check_figures_equal(extensions=["png"]) +def test_axlim_clip(fig_test, fig_ref): + # With axlim clipping + ax = fig_test.add_subplot(projection="3d") + x = np.linspace(0, 1, 11) + y = np.linspace(0, 1, 11) + X, Y = np.meshgrid(x, y) + Z = X + Y + ax.plot_surface(X, Y, Z, facecolor='C1', edgecolors=None, + rcount=50, ccount=50, axlim_clip=True) + # This ax.plot is to cover the extra surface edge which is not clipped out + ax.plot([0.5, 0.5], [0, 1], [0.5, 1.5], + color='k', linewidth=3, zorder=5, axlim_clip=True) + ax.scatter(X.ravel(), Y.ravel(), Z.ravel() + 1, axlim_clip=True) + ax.quiver(X.ravel(), Y.ravel(), Z.ravel() + 2, + 0*X.ravel(), 0*Y.ravel(), 0*Z.ravel() + 1, + arrow_length_ratio=0, axlim_clip=True) + ax.plot(X[0], Y[0], Z[0] + 3, color='C2', axlim_clip=True) + ax.text(1.1, 0.5, 4, 'test', axlim_clip=True) # won't be visible + ax.set(xlim=(0, 0.5), ylim=(0, 1), zlim=(0, 5)) + + # With manual clipping + ax = fig_ref.add_subplot(projection="3d") + idx = (X <= 0.5) + X = X[idx].reshape(11, 6) + Y = Y[idx].reshape(11, 6) + Z = Z[idx].reshape(11, 6) + ax.plot_surface(X, Y, Z, facecolor='C1', edgecolors=None, + rcount=50, ccount=50, axlim_clip=False) + ax.plot([0.5, 0.5], [0, 1], [0.5, 1.5], + color='k', linewidth=3, zorder=5, axlim_clip=False) + ax.scatter(X.ravel(), Y.ravel(), Z.ravel() + 1, axlim_clip=False) + ax.quiver(X.ravel(), Y.ravel(), Z.ravel() + 2, + 0*X.ravel(), 0*Y.ravel(), 0*Z.ravel() + 1, + arrow_length_ratio=0, axlim_clip=False) + ax.plot(X[0], Y[0], Z[0] + 3, color='C2', axlim_clip=False) + ax.set(xlim=(0, 0.5), ylim=(0, 1), zlim=(0, 5)) + + +@pytest.mark.parametrize('value', [np.inf, np.nan]) +@pytest.mark.parametrize(('setter', 'side'), [ + ('set_xlim3d', 'left'), + ('set_xlim3d', 'right'), + ('set_ylim3d', 'bottom'), + ('set_ylim3d', 'top'), + ('set_zlim3d', 'bottom'), + ('set_zlim3d', 'top'), +]) +def test_invalid_axes_limits(setter, side, value): + limit = {side: value} + fig = plt.figure() + obj = fig.add_subplot(projection='3d') + with pytest.raises(ValueError): + getattr(obj, setter)(**limit) + + +class TestVoxels: + @mpl3d_image_comparison(['voxels-simple.png'], style='mpl20') + def test_simple(self): + fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) + + x, y, z = np.indices((5, 4, 3)) + voxels = (x == y) | (y == z) + ax.voxels(voxels) + + @mpl3d_image_comparison(['voxels-edge-style.png'], style='mpl20') + def test_edge_style(self): + fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) + + x, y, z = np.indices((5, 5, 4)) + voxels = ((x - 2)**2 + (y - 2)**2 + (z-1.5)**2) < 2.2**2 + v = ax.voxels(voxels, linewidths=3, edgecolor='C1') + + # change the edge color of one voxel + v[max(v.keys())].set_edgecolor('C2') + + @mpl3d_image_comparison(['voxels-named-colors.png'], style='mpl20') + def test_named_colors(self): + """Test with colors set to a 3D object array of strings.""" + fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) + + x, y, z = np.indices((10, 10, 10)) + voxels = (x == y) | (y == z) + voxels = voxels & ~(x * y * z < 1) + colors = np.full((10, 10, 10), 'C0', dtype=np.object_) + colors[(x < 5) & (y < 5)] = '0.25' + colors[(x + z) < 10] = 'cyan' + ax.voxels(voxels, facecolors=colors) + + @mpl3d_image_comparison(['voxels-rgb-data.png'], style='mpl20') + def test_rgb_data(self): + """Test with colors set to a 4d float array of rgb data.""" + fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) + + x, y, z = np.indices((10, 10, 10)) + voxels = (x == y) | (y == z) + colors = np.zeros((10, 10, 10, 3)) + colors[..., 0] = x / 9 + colors[..., 1] = y / 9 + colors[..., 2] = z / 9 + ax.voxels(voxels, facecolors=colors) + + @mpl3d_image_comparison(['voxels-alpha.png'], style='mpl20') + def test_alpha(self): + fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) + + x, y, z = np.indices((10, 10, 10)) + v1 = x == y + v2 = np.abs(x - y) < 2 + voxels = v1 | v2 + colors = np.zeros((10, 10, 10, 4)) + colors[v2] = [1, 0, 0, 0.5] + colors[v1] = [0, 1, 0, 0.5] + v = ax.voxels(voxels, facecolors=colors) + + assert type(v) is dict + for coord, poly in v.items(): + assert voxels[coord], "faces returned for absent voxel" + assert isinstance(poly, art3d.Poly3DCollection) + + @mpl3d_image_comparison(['voxels-xyz.png'], + tol=0.01, remove_text=False, style='mpl20') + def test_xyz(self): + fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) + + def midpoints(x): + sl = () + for i in range(x.ndim): + x = (x[sl + np.index_exp[:-1]] + + x[sl + np.index_exp[1:]]) / 2.0 + sl += np.index_exp[:] + return x + + # prepare some coordinates, and attach rgb values to each + r, g, b = np.indices((17, 17, 17)) / 16.0 + rc = midpoints(r) + gc = midpoints(g) + bc = midpoints(b) + + # define a sphere about [0.5, 0.5, 0.5] + sphere = (rc - 0.5)**2 + (gc - 0.5)**2 + (bc - 0.5)**2 < 0.5**2 + + # combine the color components + colors = np.zeros(sphere.shape + (3,)) + colors[..., 0] = rc + colors[..., 1] = gc + colors[..., 2] = bc + + # and plot everything + ax.voxels(r, g, b, sphere, + facecolors=colors, + edgecolors=np.clip(2*colors - 0.5, 0, 1), # brighter + linewidth=0.5) + + def test_calling_conventions(self): + x, y, z = np.indices((3, 4, 5)) + filled = np.ones((2, 3, 4)) + + fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) + + # all the valid calling conventions + for kw in (dict(), dict(edgecolor='k')): + ax.voxels(filled, **kw) + ax.voxels(filled=filled, **kw) + ax.voxels(x, y, z, filled, **kw) + ax.voxels(x, y, z, filled=filled, **kw) + + # duplicate argument + with pytest.raises(TypeError, match='voxels'): + ax.voxels(x, y, z, filled, filled=filled) + # missing arguments + with pytest.raises(TypeError, match='voxels'): + ax.voxels(x, y) + # x, y, z are positional only - this passes them on as attributes of + # Poly3DCollection + with pytest.raises(AttributeError, match="keyword argument 'x'") as exec_info: + ax.voxels(filled=filled, x=x, y=y, z=z) + assert exec_info.value.name == 'x' + + +def test_line3d_set_get_data_3d(): + x, y, z = [0, 1], [2, 3], [4, 5] + x2, y2, z2 = [6, 7], [8, 9], [10, 11] + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + lines = ax.plot(x, y, z) + line = lines[0] + np.testing.assert_array_equal((x, y, z), line.get_data_3d()) + line.set_data_3d(x2, y2, z2) + np.testing.assert_array_equal((x2, y2, z2), line.get_data_3d()) + line.set_xdata(x) + line.set_ydata(y) + line.set_3d_properties(zs=z, zdir='z') + np.testing.assert_array_equal((x, y, z), line.get_data_3d()) + line.set_3d_properties(zs=0, zdir='z') + np.testing.assert_array_equal((x, y, np.zeros_like(z)), line.get_data_3d()) + + +@check_figures_equal(extensions=["png"]) +def test_inverted(fig_test, fig_ref): + # Plot then invert. + ax = fig_test.add_subplot(projection="3d") + ax.plot([1, 1, 10, 10], [1, 10, 10, 10], [1, 1, 1, 10]) + ax.invert_yaxis() + # Invert then plot. + ax = fig_ref.add_subplot(projection="3d") + ax.invert_yaxis() + ax.plot([1, 1, 10, 10], [1, 10, 10, 10], [1, 1, 1, 10]) + + +def test_inverted_cla(): + # GitHub PR #5450. Setting autoscale should reset + # axes to be non-inverted. + fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) + # 1. test that a new axis is not inverted per default + assert not ax.xaxis_inverted() + assert not ax.yaxis_inverted() + assert not ax.zaxis_inverted() + ax.set_xlim(1, 0) + ax.set_ylim(1, 0) + ax.set_zlim(1, 0) + assert ax.xaxis_inverted() + assert ax.yaxis_inverted() + assert ax.zaxis_inverted() + ax.cla() + assert not ax.xaxis_inverted() + assert not ax.yaxis_inverted() + assert not ax.zaxis_inverted() + + +def test_ax3d_tickcolour(): + fig = plt.figure() + ax = Axes3D(fig) + + ax.tick_params(axis='x', colors='red') + ax.tick_params(axis='y', colors='red') + ax.tick_params(axis='z', colors='red') + fig.canvas.draw() + + for tick in ax.xaxis.get_major_ticks(): + assert tick.tick1line._color == 'red' + for tick in ax.yaxis.get_major_ticks(): + assert tick.tick1line._color == 'red' + for tick in ax.zaxis.get_major_ticks(): + assert tick.tick1line._color == 'red' + + +@check_figures_equal(extensions=["png"]) +def test_ticklabel_format(fig_test, fig_ref): + axs = fig_test.subplots(4, 5, subplot_kw={"projection": "3d"}) + for ax in axs.flat: + ax.set_xlim(1e7, 1e7 + 10) + for row, name in zip(axs, ["x", "y", "z", "both"]): + row[0].ticklabel_format( + axis=name, style="plain") + row[1].ticklabel_format( + axis=name, scilimits=(-2, 2)) + row[2].ticklabel_format( + axis=name, useOffset=not mpl.rcParams["axes.formatter.useoffset"]) + row[3].ticklabel_format( + axis=name, useLocale=not mpl.rcParams["axes.formatter.use_locale"]) + row[4].ticklabel_format( + axis=name, + useMathText=not mpl.rcParams["axes.formatter.use_mathtext"]) + + def get_formatters(ax, names): + return [getattr(ax, name).get_major_formatter() for name in names] + + axs = fig_ref.subplots(4, 5, subplot_kw={"projection": "3d"}) + for ax in axs.flat: + ax.set_xlim(1e7, 1e7 + 10) + for row, names in zip( + axs, [["xaxis"], ["yaxis"], ["zaxis"], ["xaxis", "yaxis", "zaxis"]] + ): + for fmt in get_formatters(row[0], names): + fmt.set_scientific(False) + for fmt in get_formatters(row[1], names): + fmt.set_powerlimits((-2, 2)) + for fmt in get_formatters(row[2], names): + fmt.set_useOffset(not mpl.rcParams["axes.formatter.useoffset"]) + for fmt in get_formatters(row[3], names): + fmt.set_useLocale(not mpl.rcParams["axes.formatter.use_locale"]) + for fmt in get_formatters(row[4], names): + fmt.set_useMathText( + not mpl.rcParams["axes.formatter.use_mathtext"]) + + +@check_figures_equal(extensions=["png"]) +def test_quiver3D_smoke(fig_test, fig_ref): + pivot = "middle" + # Make the grid + x, y, z = np.meshgrid( + np.arange(-0.8, 1, 0.2), + np.arange(-0.8, 1, 0.2), + np.arange(-0.8, 1, 0.8) + ) + u = v = w = np.ones_like(x) + + for fig, length in zip((fig_ref, fig_test), (1, 1.0)): + ax = fig.add_subplot(projection="3d") + ax.quiver(x, y, z, u, v, w, length=length, pivot=pivot) + + +@image_comparison(["minor_ticks.png"], style="mpl20") +def test_minor_ticks(): + ax = plt.figure().add_subplot(projection="3d") + ax.set_xticks([0.25], minor=True) + ax.set_xticklabels(["quarter"], minor=True) + ax.set_yticks([0.33], minor=True) + ax.set_yticklabels(["third"], minor=True) + ax.set_zticks([0.50], minor=True) + ax.set_zticklabels(["half"], minor=True) + + +# remove tolerance when regenerating the test image +@mpl3d_image_comparison(['errorbar3d_errorevery.png'], style='mpl20', tol=0.003) +def test_errorbar3d_errorevery(): + """Tests errorevery functionality for 3D errorbars.""" + t = np.arange(0, 2*np.pi+.1, 0.01) + x, y, z = np.sin(t), np.cos(3*t), np.sin(5*t) + + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + + estep = 15 + i = np.arange(t.size) + zuplims = (i % estep == 0) & (i // estep % 3 == 0) + zlolims = (i % estep == 0) & (i // estep % 3 == 2) + + ax.errorbar(x, y, z, 0.2, zuplims=zuplims, zlolims=zlolims, + errorevery=estep) + + +@mpl3d_image_comparison(['errorbar3d.png'], style='mpl20', + tol=0 if platform.machine() == 'x86_64' else 0.02) +def test_errorbar3d(): + """Tests limits, color styling, and legend for 3D errorbars.""" + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + + d = [1, 2, 3, 4, 5] + e = [.5, .5, .5, .5, .5] + ax.errorbar(x=d, y=d, z=d, xerr=e, yerr=e, zerr=e, capsize=3, + zuplims=[False, True, False, True, True], + zlolims=[True, False, False, True, False], + yuplims=True, + ecolor='purple', label='Error lines') + ax.legend() + + +@image_comparison(['stem3d.png'], style='mpl20', tol=0.009) +def test_stem3d(): + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + fig, axs = plt.subplots(2, 3, figsize=(8, 6), + constrained_layout=True, + subplot_kw={'projection': '3d'}) + + theta = np.linspace(0, 2*np.pi) + x = np.cos(theta - np.pi/2) + y = np.sin(theta - np.pi/2) + z = theta + + for ax, zdir in zip(axs[0], ['x', 'y', 'z']): + ax.stem(x, y, z, orientation=zdir) + ax.set_title(f'orientation={zdir}') + + x = np.linspace(-np.pi/2, np.pi/2, 20) + y = np.ones_like(x) + z = np.cos(x) + + for ax, zdir in zip(axs[1], ['x', 'y', 'z']): + markerline, stemlines, baseline = ax.stem( + x, y, z, + linefmt='C4-.', markerfmt='C1D', basefmt='C2', + orientation=zdir) + ax.set_title(f'orientation={zdir}') + markerline.set(markerfacecolor='none', markeredgewidth=2) + baseline.set_linewidth(3) + + +@image_comparison(["equal_box_aspect.png"], style="mpl20") +def test_equal_box_aspect(): + from itertools import product, combinations + + fig = plt.figure() + ax = fig.add_subplot(projection="3d") + + # Make data + u = np.linspace(0, 2 * np.pi, 100) + v = np.linspace(0, np.pi, 100) + x = np.outer(np.cos(u), np.sin(v)) + y = np.outer(np.sin(u), np.sin(v)) + z = np.outer(np.ones_like(u), np.cos(v)) + + # Plot the surface + ax.plot_surface(x, y, z) + + # draw cube + r = [-1, 1] + for s, e in combinations(np.array(list(product(r, r, r))), 2): + if np.sum(np.abs(s - e)) == r[1] - r[0]: + ax.plot3D(*zip(s, e), color="b") + + # Make axes limits + xyzlim = np.column_stack( + [ax.get_xlim3d(), ax.get_ylim3d(), ax.get_zlim3d()] + ) + XYZlim = [min(xyzlim[0]), max(xyzlim[1])] + ax.set_xlim3d(XYZlim) + ax.set_ylim3d(XYZlim) + ax.set_zlim3d(XYZlim) + ax.axis('off') + ax.set_box_aspect((1, 1, 1)) + + with pytest.raises(ValueError, match="Argument zoom ="): + ax.set_box_aspect((1, 1, 1), zoom=-1) + + +def test_colorbar_pos(): + num_plots = 2 + fig, axs = plt.subplots(1, num_plots, figsize=(4, 5), + constrained_layout=True, + subplot_kw={'projection': '3d'}) + for ax in axs: + p_tri = ax.plot_trisurf(np.random.randn(5), np.random.randn(5), + np.random.randn(5)) + + cbar = plt.colorbar(p_tri, ax=axs, orientation='horizontal') + + fig.canvas.draw() + # check that actually on the bottom + assert cbar.ax.get_position().extents[1] < 0.2 + + +def test_inverted_zaxis(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + ax.set_zlim(0, 1) + assert not ax.zaxis_inverted() + assert ax.get_zlim() == (0, 1) + assert ax.get_zbound() == (0, 1) + + # Change bound + ax.set_zbound((0, 2)) + assert not ax.zaxis_inverted() + assert ax.get_zlim() == (0, 2) + assert ax.get_zbound() == (0, 2) + + # Change invert + ax.invert_zaxis() + assert ax.zaxis_inverted() + assert ax.get_zlim() == (2, 0) + assert ax.get_zbound() == (0, 2) + + # Set upper bound + ax.set_zbound(upper=1) + assert ax.zaxis_inverted() + assert ax.get_zlim() == (1, 0) + assert ax.get_zbound() == (0, 1) + + # Set lower bound + ax.set_zbound(lower=2) + assert ax.zaxis_inverted() + assert ax.get_zlim() == (2, 1) + assert ax.get_zbound() == (1, 2) + + +def test_set_zlim(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + assert np.allclose(ax.get_zlim(), (-1/48, 49/48)) + ax.set_zlim(zmax=2) + assert np.allclose(ax.get_zlim(), (-1/48, 2)) + ax.set_zlim(zmin=1) + assert ax.get_zlim() == (1, 2) + + with pytest.raises( + TypeError, match="Cannot pass both 'lower' and 'min'"): + ax.set_zlim(bottom=0, zmin=1) + with pytest.raises( + TypeError, match="Cannot pass both 'upper' and 'max'"): + ax.set_zlim(top=0, zmax=1) + + +@check_figures_equal(extensions=["png"]) +def test_shared_view(fig_test, fig_ref): + elev, azim, roll = 5, 20, 30 + ax1 = fig_test.add_subplot(131, projection="3d") + ax2 = fig_test.add_subplot(132, projection="3d", shareview=ax1) + ax3 = fig_test.add_subplot(133, projection="3d") + ax3.shareview(ax1) + ax2.view_init(elev=elev, azim=azim, roll=roll, share=True) + + for subplot_num in (131, 132, 133): + ax = fig_ref.add_subplot(subplot_num, projection="3d") + ax.view_init(elev=elev, azim=azim, roll=roll) + + +def test_shared_axes_retick(): + fig = plt.figure() + ax1 = fig.add_subplot(211, projection="3d") + ax2 = fig.add_subplot(212, projection="3d", sharez=ax1) + ax1.plot([0, 1], [0, 1], [0, 2]) + ax2.plot([0, 1], [0, 1], [0, 2]) + ax1.set_zticks([-0.5, 0, 2, 2.5]) + # check that setting ticks on a shared axis is synchronized + assert ax1.get_zlim() == (-0.5, 2.5) + assert ax2.get_zlim() == (-0.5, 2.5) + + +def test_quaternion(): + # 1: + q1 = Quaternion(1, [0, 0, 0]) + assert q1.scalar == 1 + assert (q1.vector == [0, 0, 0]).all + # __neg__: + assert (-q1).scalar == -1 + assert ((-q1).vector == [0, 0, 0]).all + # i, j, k: + qi = Quaternion(0, [1, 0, 0]) + assert qi.scalar == 0 + assert (qi.vector == [1, 0, 0]).all + qj = Quaternion(0, [0, 1, 0]) + assert qj.scalar == 0 + assert (qj.vector == [0, 1, 0]).all + qk = Quaternion(0, [0, 0, 1]) + assert qk.scalar == 0 + assert (qk.vector == [0, 0, 1]).all + # i^2 = j^2 = k^2 = -1: + assert qi*qi == -q1 + assert qj*qj == -q1 + assert qk*qk == -q1 + # identity: + assert q1*qi == qi + assert q1*qj == qj + assert q1*qk == qk + # i*j=k, j*k=i, k*i=j: + assert qi*qj == qk + assert qj*qk == qi + assert qk*qi == qj + assert qj*qi == -qk + assert qk*qj == -qi + assert qi*qk == -qj + # __mul__: + assert (Quaternion(2, [3, 4, 5]) * Quaternion(6, [7, 8, 9]) + == Quaternion(-86, [28, 48, 44])) + # conjugate(): + for q in [q1, qi, qj, qk]: + assert q.conjugate().scalar == q.scalar + assert (q.conjugate().vector == -q.vector).all + assert q.conjugate().conjugate() == q + assert ((q*q.conjugate()).vector == 0).all + # norm: + q0 = Quaternion(0, [0, 0, 0]) + assert q0.norm == 0 + assert q1.norm == 1 + assert qi.norm == 1 + assert qj.norm == 1 + assert qk.norm == 1 + for q in [q0, q1, qi, qj, qk]: + assert q.norm == (q*q.conjugate()).scalar + # normalize(): + for q in [ + Quaternion(2, [0, 0, 0]), + Quaternion(0, [3, 0, 0]), + Quaternion(0, [0, 4, 0]), + Quaternion(0, [0, 0, 5]), + Quaternion(6, [7, 8, 9]) + ]: + assert q.normalize().norm == 1 + # reciprocal(): + for q in [q1, qi, qj, qk]: + assert q*q.reciprocal() == q1 + assert q.reciprocal()*q == q1 + # rotate(): + assert (qi.rotate([1, 2, 3]) == np.array([1, -2, -3])).all + # rotate_from_to(): + for r1, r2, q in [ + ([1, 0, 0], [0, 1, 0], Quaternion(np.sqrt(1/2), [0, 0, np.sqrt(1/2)])), + ([1, 0, 0], [0, 0, 1], Quaternion(np.sqrt(1/2), [0, -np.sqrt(1/2), 0])), + ([1, 0, 0], [1, 0, 0], Quaternion(1, [0, 0, 0])) + ]: + assert Quaternion.rotate_from_to(r1, r2) == q + # rotate_from_to(), special case: + for r1 in [[1, 0, 0], [0, 1, 0], [0, 0, 1], [1, 1, 1]]: + r1 = np.array(r1) + with pytest.warns(UserWarning): + q = Quaternion.rotate_from_to(r1, -r1) + assert np.isclose(q.norm, 1) + assert np.dot(q.vector, r1) == 0 + # from_cardan_angles(), as_cardan_angles(): + for elev, azim, roll in [(0, 0, 0), + (90, 0, 0), (0, 90, 0), (0, 0, 90), + (0, 30, 30), (30, 0, 30), (30, 30, 0), + (47, 11, -24)]: + for mag in [1, 2]: + q = Quaternion.from_cardan_angles( + np.deg2rad(elev), np.deg2rad(azim), np.deg2rad(roll)) + assert np.isclose(q.norm, 1) + q = Quaternion(mag * q.scalar, mag * q.vector) + np.testing.assert_allclose(np.rad2deg(Quaternion.as_cardan_angles(q)), + (elev, azim, roll), atol=1e-6) + + +@pytest.mark.parametrize('style', + ('azel', 'trackball', 'sphere', 'arcball')) +def test_rotate(style): + """Test rotating using the left mouse button.""" + if style == 'azel': + s = 0.5 + else: + s = mpl.rcParams['axes3d.trackballsize'] / 2 + s *= 0.5 + mpl.rcParams['axes3d.trackballborder'] = 0 + with mpl.rc_context({'axes3d.mouserotationstyle': style}): + for roll, dx, dy in [ + [0, 1, 0], + [30, 1, 0], + [0, 0, 1], + [30, 0, 1], + [0, 0.5, np.sqrt(3)/2], + [30, 0.5, np.sqrt(3)/2], + [0, 2, 0]]: + fig = plt.figure() + ax = fig.add_subplot(1, 1, 1, projection='3d') + ax.view_init(0, 0, roll) + ax.figure.canvas.draw() + + # drag mouse to change orientation + ax._button_press( + mock_event(ax, button=MouseButton.LEFT, xdata=0, ydata=0)) + ax._on_move( + mock_event(ax, button=MouseButton.LEFT, + xdata=s*dx*ax._pseudo_w, ydata=s*dy*ax._pseudo_h)) + ax.figure.canvas.draw() + + c = np.sqrt(3)/2 + expectations = { + ('azel', 0, 1, 0): (0, -45, 0), + ('azel', 0, 0, 1): (-45, 0, 0), + ('azel', 0, 0.5, c): (-38.971143, -22.5, 0), + ('azel', 0, 2, 0): (0, -90, 0), + ('azel', 30, 1, 0): (22.5, -38.971143, 30), + ('azel', 30, 0, 1): (-38.971143, -22.5, 30), + ('azel', 30, 0.5, c): (-22.5, -38.971143, 30), + + ('trackball', 0, 1, 0): (0, -28.64789, 0), + ('trackball', 0, 0, 1): (-28.64789, 0, 0), + ('trackball', 0, 0.5, c): (-24.531578, -15.277726, 3.340403), + ('trackball', 0, 2, 0): (0, -180/np.pi, 0), + ('trackball', 30, 1, 0): (13.869588, -25.319385, 26.87008), + ('trackball', 30, 0, 1): (-24.531578, -15.277726, 33.340403), + ('trackball', 30, 0.5, c): (-13.869588, -25.319385, 33.129920), + + ('sphere', 0, 1, 0): (0, -30, 0), + ('sphere', 0, 0, 1): (-30, 0, 0), + ('sphere', 0, 0.5, c): (-25.658906, -16.102114, 3.690068), + ('sphere', 0, 2, 0): (0, -90, 0), + ('sphere', 30, 1, 0): (14.477512, -26.565051, 26.565051), + ('sphere', 30, 0, 1): (-25.658906, -16.102114, 33.690068), + ('sphere', 30, 0.5, c): (-14.477512, -26.565051, 33.434949), + + ('arcball', 0, 1, 0): (0, -60, 0), + ('arcball', 0, 0, 1): (-60, 0, 0), + ('arcball', 0, 0.5, c): (-48.590378, -40.893395, 19.106605), + ('arcball', 0, 2, 0): (0, 180, 0), + ('arcball', 30, 1, 0): (25.658906, -56.309932, 16.102114), + ('arcball', 30, 0, 1): (-48.590378, -40.893395, 49.106605), + ('arcball', 30, 0.5, c): (-25.658906, -56.309932, 43.897886)} + new_elev, new_azim, new_roll = expectations[(style, roll, dx, dy)] + np.testing.assert_allclose((ax.elev, ax.azim, ax.roll), + (new_elev, new_azim, new_roll), atol=1e-6) + + +def test_pan(): + """Test mouse panning using the middle mouse button.""" + + def convert_lim(dmin, dmax): + """Convert min/max limits to center and range.""" + center = (dmin + dmax) / 2 + range_ = dmax - dmin + return center, range_ + + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + ax.scatter(0, 0, 0) + fig.canvas.draw() + + x_center0, x_range0 = convert_lim(*ax.get_xlim3d()) + y_center0, y_range0 = convert_lim(*ax.get_ylim3d()) + z_center0, z_range0 = convert_lim(*ax.get_zlim3d()) + + # move mouse diagonally to pan along all axis. + ax._button_press( + mock_event(ax, button=MouseButton.MIDDLE, xdata=0, ydata=0)) + ax._on_move( + mock_event(ax, button=MouseButton.MIDDLE, xdata=1, ydata=1)) + + x_center, x_range = convert_lim(*ax.get_xlim3d()) + y_center, y_range = convert_lim(*ax.get_ylim3d()) + z_center, z_range = convert_lim(*ax.get_zlim3d()) + + # Ranges have not changed + assert x_range == pytest.approx(x_range0) + assert y_range == pytest.approx(y_range0) + assert z_range == pytest.approx(z_range0) + + # But center positions have + assert x_center != pytest.approx(x_center0) + assert y_center != pytest.approx(y_center0) + assert z_center != pytest.approx(z_center0) + + +@pytest.mark.parametrize("tool,button,key,expected", + [("zoom", MouseButton.LEFT, None, # zoom in + ((0.00, 0.06), (0.01, 0.07), (0.02, 0.08))), + ("zoom", MouseButton.LEFT, 'x', # zoom in + ((-0.01, 0.10), (-0.03, 0.08), (-0.06, 0.06))), + ("zoom", MouseButton.LEFT, 'y', # zoom in + ((-0.07, 0.05), (-0.04, 0.08), (0.00, 0.12))), + ("zoom", MouseButton.RIGHT, None, # zoom out + ((-0.09, 0.15), (-0.08, 0.17), (-0.07, 0.18))), + ("pan", MouseButton.LEFT, None, + ((-0.70, -0.58), (-1.04, -0.91), (-1.27, -1.15))), + ("pan", MouseButton.LEFT, 'x', + ((-0.97, -0.84), (-0.58, -0.46), (-0.06, 0.06))), + ("pan", MouseButton.LEFT, 'y', + ((0.20, 0.32), (-0.51, -0.39), (-1.27, -1.15)))]) +def test_toolbar_zoom_pan(tool, button, key, expected): + # NOTE: The expected zoom values are rough ballparks of moving in the view + # to make sure we are getting the right direction of motion. + # The specific values can and should change if the zoom movement + # scaling factor gets updated. + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + ax.scatter(0, 0, 0) + fig.canvas.draw() + xlim0, ylim0, zlim0 = ax.get_xlim3d(), ax.get_ylim3d(), ax.get_zlim3d() + + # Mouse from (0, 0) to (1, 1) + d0 = (0, 0) + d1 = (1, 1) + # Convert to screen coordinates ("s"). Events are defined only with pixel + # precision, so round the pixel values, and below, check against the + # corresponding xdata/ydata, which are close but not equal to d0/d1. + s0 = ax.transData.transform(d0).astype(int) + s1 = ax.transData.transform(d1).astype(int) + + # Set up the mouse movements + start_event = MouseEvent( + "button_press_event", fig.canvas, *s0, button, key=key) + stop_event = MouseEvent( + "button_release_event", fig.canvas, *s1, button, key=key) + + tb = NavigationToolbar2(fig.canvas) + if tool == "zoom": + tb.zoom() + tb.press_zoom(start_event) + tb.drag_zoom(stop_event) + tb.release_zoom(stop_event) + else: + tb.pan() + tb.press_pan(start_event) + tb.drag_pan(stop_event) + tb.release_pan(stop_event) + + # Should be close, but won't be exact due to screen integer resolution + xlim, ylim, zlim = expected + assert ax.get_xlim3d() == pytest.approx(xlim, abs=0.01) + assert ax.get_ylim3d() == pytest.approx(ylim, abs=0.01) + assert ax.get_zlim3d() == pytest.approx(zlim, abs=0.01) + + # Ensure that back, forward, and home buttons work + tb.back() + assert ax.get_xlim3d() == pytest.approx(xlim0) + assert ax.get_ylim3d() == pytest.approx(ylim0) + assert ax.get_zlim3d() == pytest.approx(zlim0) + + tb.forward() + assert ax.get_xlim3d() == pytest.approx(xlim, abs=0.01) + assert ax.get_ylim3d() == pytest.approx(ylim, abs=0.01) + assert ax.get_zlim3d() == pytest.approx(zlim, abs=0.01) + + tb.home() + assert ax.get_xlim3d() == pytest.approx(xlim0) + assert ax.get_ylim3d() == pytest.approx(ylim0) + assert ax.get_zlim3d() == pytest.approx(zlim0) + + +@mpl.style.context('default') +@check_figures_equal(extensions=["png"]) +def test_scalarmap_update(fig_test, fig_ref): + + x, y, z = np.array(list(itertools.product(*[np.arange(0, 5, 1), + np.arange(0, 5, 1), + np.arange(0, 5, 1)]))).T + c = x + y + + # test + ax_test = fig_test.add_subplot(111, projection='3d') + sc_test = ax_test.scatter(x, y, z, c=c, s=40, cmap='viridis') + # force a draw + fig_test.canvas.draw() + # mark it as "stale" + sc_test.changed() + + # ref + ax_ref = fig_ref.add_subplot(111, projection='3d') + sc_ref = ax_ref.scatter(x, y, z, c=c, s=40, cmap='viridis') + + +def test_subfigure_simple(): + # smoketest that subfigures can work... + fig = plt.figure() + sf = fig.subfigures(1, 2) + ax = sf[0].add_subplot(1, 1, 1, projection='3d') + ax = sf[1].add_subplot(1, 1, 1, projection='3d', label='other') + + +# Update style when regenerating the test image +@image_comparison(baseline_images=['computed_zorder'], remove_text=True, + extensions=['png'], style=('mpl20')) +def test_computed_zorder(): + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + fig = plt.figure() + ax1 = fig.add_subplot(221, projection='3d') + ax2 = fig.add_subplot(222, projection='3d') + ax2.computed_zorder = False + + # create a horizontal plane + corners = ((0, 0, 0), (0, 5, 0), (5, 5, 0), (5, 0, 0)) + for ax in (ax1, ax2): + tri = art3d.Poly3DCollection([corners], + facecolors='white', + edgecolors='black', + zorder=1) + ax.add_collection3d(tri) + + # plot a vector + ax.plot((2, 2), (2, 2), (0, 4), c='red', zorder=2) + + # plot some points + ax.scatter((3, 3), (1, 3), (1, 3), c='red', zorder=10) + + ax.set_xlim((0, 5.0)) + ax.set_ylim((0, 5.0)) + ax.set_zlim((0, 2.5)) + + ax3 = fig.add_subplot(223, projection='3d') + ax4 = fig.add_subplot(224, projection='3d') + ax4.computed_zorder = False + + dim = 10 + X, Y = np.meshgrid((-dim, dim), (-dim, dim)) + Z = np.zeros((2, 2)) + + angle = 0.5 + X2, Y2 = np.meshgrid((-dim, dim), (0, dim)) + Z2 = Y2 * angle + X3, Y3 = np.meshgrid((-dim, dim), (-dim, 0)) + Z3 = Y3 * angle + + r = 7 + M = 1000 + th = np.linspace(0, 2 * np.pi, M) + x, y, z = r * np.cos(th), r * np.sin(th), angle * r * np.sin(th) + for ax in (ax3, ax4): + ax.plot_surface(X2, Y3, Z3, + color='blue', + alpha=0.5, + linewidth=0, + zorder=-1) + ax.plot(x[y < 0], y[y < 0], z[y < 0], + lw=5, + linestyle='--', + color='green', + zorder=0) + + ax.plot_surface(X, Y, Z, + color='red', + alpha=0.5, + linewidth=0, + zorder=1) + + ax.plot(r * np.sin(th), r * np.cos(th), np.zeros(M), + lw=5, + linestyle='--', + color='black', + zorder=2) + + ax.plot_surface(X2, Y2, Z2, + color='blue', + alpha=0.5, + linewidth=0, + zorder=3) + + ax.plot(x[y > 0], y[y > 0], z[y > 0], lw=5, + linestyle='--', + color='green', + zorder=4) + ax.view_init(elev=20, azim=-20, roll=0) + ax.axis('off') + + +def test_format_coord(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + x = np.arange(10) + ax.plot(x, np.sin(x)) + xv = 0.1 + yv = 0.1 + fig.canvas.draw() + assert ax.format_coord(xv, yv) == 'x=10.5227, y pane=1.0417, z=0.1444' + + # Modify parameters + ax.view_init(roll=30, vertical_axis="y") + fig.canvas.draw() + assert ax.format_coord(xv, yv) == 'x pane=9.1875, y=0.9761, z=0.1291' + + # Reset parameters + ax.view_init() + fig.canvas.draw() + assert ax.format_coord(xv, yv) == 'x=10.5227, y pane=1.0417, z=0.1444' + + # Check orthographic projection + ax.set_proj_type('ortho') + fig.canvas.draw() + assert ax.format_coord(xv, yv) == 'x=10.8869, y pane=1.0417, z=0.1528' + + # Check non-default perspective projection + ax.set_proj_type('persp', focal_length=0.1) + fig.canvas.draw() + assert ax.format_coord(xv, yv) == 'x=9.0620, y pane=1.0417, z=0.1110' + + +def test_get_axis_position(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + x = np.arange(10) + ax.plot(x, np.sin(x)) + fig.canvas.draw() + assert ax.get_axis_position() == (False, True, False) + + +def test_margins(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + ax.margins(0.2) + assert ax.margins() == (0.2, 0.2, 0.2) + ax.margins(0.1, 0.2, 0.3) + assert ax.margins() == (0.1, 0.2, 0.3) + ax.margins(x=0) + assert ax.margins() == (0, 0.2, 0.3) + ax.margins(y=0.1) + assert ax.margins() == (0, 0.1, 0.3) + ax.margins(z=0) + assert ax.margins() == (0, 0.1, 0) + + +def test_margin_getters(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + ax.margins(0.1, 0.2, 0.3) + assert ax.get_xmargin() == 0.1 + assert ax.get_ymargin() == 0.2 + assert ax.get_zmargin() == 0.3 + + +@pytest.mark.parametrize('err, args, kwargs, match', ( + (ValueError, (-1,), {}, r'margin must be greater than -0\.5'), + (ValueError, (1, -1, 1), {}, r'margin must be greater than -0\.5'), + (ValueError, (1, 1, -1), {}, r'margin must be greater than -0\.5'), + (ValueError, tuple(), {'x': -1}, r'margin must be greater than -0\.5'), + (ValueError, tuple(), {'y': -1}, r'margin must be greater than -0\.5'), + (ValueError, tuple(), {'z': -1}, r'margin must be greater than -0\.5'), + (TypeError, (1, ), {'x': 1}, + 'Cannot pass both positional and keyword'), + (TypeError, (1, ), {'x': 1, 'y': 1, 'z': 1}, + 'Cannot pass both positional and keyword'), + (TypeError, (1, ), {'x': 1, 'y': 1}, + 'Cannot pass both positional and keyword'), + (TypeError, (1, 1), {}, 'Must pass a single positional argument for'), +)) +def test_margins_errors(err, args, kwargs, match): + with pytest.raises(err, match=match): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + ax.margins(*args, **kwargs) + + +@check_figures_equal(extensions=["png"]) +def test_text_3d(fig_test, fig_ref): + ax = fig_ref.add_subplot(projection="3d") + txt = Text(0.5, 0.5, r'Foo bar $\int$') + art3d.text_2d_to_3d(txt, z=1) + ax.add_artist(txt) + assert txt.get_position_3d() == (0.5, 0.5, 1) + + ax = fig_test.add_subplot(projection="3d") + t3d = art3d.Text3D(0.5, 0.5, 1, r'Foo bar $\int$') + ax.add_artist(t3d) + assert t3d.get_position_3d() == (0.5, 0.5, 1) + + +def test_draw_single_lines_from_Nx1(): + # Smoke test for GH#23459 + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + ax.plot([[0], [1]], [[0], [1]], [[0], [1]]) + + +@check_figures_equal(extensions=["png"]) +def test_pathpatch_3d(fig_test, fig_ref): + ax = fig_ref.add_subplot(projection="3d") + path = Path.unit_rectangle() + patch = PathPatch(path) + art3d.pathpatch_2d_to_3d(patch, z=(0, 0.5, 0.7, 1, 0), zdir='y') + ax.add_artist(patch) + + ax = fig_test.add_subplot(projection="3d") + pp3d = art3d.PathPatch3D(path, zs=(0, 0.5, 0.7, 1, 0), zdir='y') + ax.add_artist(pp3d) + + +@image_comparison(baseline_images=['scatter_spiral.png'], + remove_text=True, + style='mpl20') +def test_scatter_spiral(): + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + th = np.linspace(0, 2 * np.pi * 6, 256) + sc = ax.scatter(np.sin(th), np.cos(th), th, s=(1 + th * 5), c=th ** 2) + + # force at least 1 draw! + fig.canvas.draw() + + +def test_Poly3DCollection_get_path(): + # Smoke test to see that get_path does not raise + # See GH#27361 + fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) + p = Circle((0, 0), 1.0) + ax.add_patch(p) + art3d.pathpatch_2d_to_3d(p) + p.get_path() + + +def test_Poly3DCollection_get_facecolor(): + # Smoke test to see that get_facecolor does not raise + # See GH#4067 + y, x = np.ogrid[1:10:100j, 1:10:100j] + z2 = np.cos(x) ** 3 - np.sin(y) ** 2 + fig = plt.figure() + ax = fig.add_subplot(111, projection='3d') + r = ax.plot_surface(x, y, z2, cmap='hot') + r.get_facecolor() + + +def test_Poly3DCollection_get_edgecolor(): + # Smoke test to see that get_edgecolor does not raise + # See GH#4067 + y, x = np.ogrid[1:10:100j, 1:10:100j] + z2 = np.cos(x) ** 3 - np.sin(y) ** 2 + fig = plt.figure() + ax = fig.add_subplot(111, projection='3d') + r = ax.plot_surface(x, y, z2, cmap='hot') + r.get_edgecolor() + + +@pytest.mark.parametrize( + "vertical_axis, proj_expected, axis_lines_expected, tickdirs_expected", + [ + ( + "z", + [ + [0.0, 1.142857, 0.0, -0.571429], + [0.0, 0.0, 0.857143, -0.428571], + [0.0, 0.0, 0.0, -10.0], + [-1.142857, 0.0, 0.0, 10.571429], + ], + [ + ([0.05617978, 0.06329114], [-0.04213483, -0.04746835]), + ([-0.06329114, 0.06329114], [-0.04746835, -0.04746835]), + ([-0.06329114, -0.06329114], [-0.04746835, 0.04746835]), + ], + [1, 0, 0], + ), + ( + "y", + [ + [1.142857, 0.0, 0.0, -0.571429], + [0.0, 0.857143, 0.0, -0.428571], + [0.0, 0.0, 0.0, -10.0], + [0.0, 0.0, -1.142857, 10.571429], + ], + [ + ([-0.06329114, 0.06329114], [0.04746835, 0.04746835]), + ([0.06329114, 0.06329114], [-0.04746835, 0.04746835]), + ([-0.05617978, -0.06329114], [0.04213483, 0.04746835]), + ], + [2, 2, 0], + ), + ( + "x", + [ + [0.0, 0.0, 1.142857, -0.571429], + [0.857143, 0.0, 0.0, -0.428571], + [0.0, 0.0, 0.0, -10.0], + [0.0, -1.142857, 0.0, 10.571429], + ], + [ + ([-0.06329114, -0.06329114], [0.04746835, -0.04746835]), + ([0.06329114, 0.05617978], [0.04746835, 0.04213483]), + ([0.06329114, -0.06329114], [0.04746835, 0.04746835]), + ], + [1, 2, 1], + ), + ], +) +def test_view_init_vertical_axis( + vertical_axis, proj_expected, axis_lines_expected, tickdirs_expected +): + """ + Test the actual projection, axis lines and ticks matches expected values. + + Parameters + ---------- + vertical_axis : str + Axis to align vertically. + proj_expected : ndarray + Expected values from ax.get_proj(). + axis_lines_expected : tuple of arrays + Edgepoints of the axis line. Expected values retrieved according + to ``ax.get_[xyz]axis().line.get_data()``. + tickdirs_expected : list of int + indexes indicating which axis to create a tick line along. + """ + rtol = 2e-06 + ax = plt.subplot(1, 1, 1, projection="3d") + ax.view_init(elev=0, azim=0, roll=0, vertical_axis=vertical_axis) + ax.get_figure().canvas.draw() + + # Assert the projection matrix: + proj_actual = ax.get_proj() + np.testing.assert_allclose(proj_expected, proj_actual, rtol=rtol) + + for i, axis in enumerate([ax.get_xaxis(), ax.get_yaxis(), ax.get_zaxis()]): + # Assert black lines are correctly aligned: + axis_line_expected = axis_lines_expected[i] + axis_line_actual = axis.line.get_data() + np.testing.assert_allclose(axis_line_expected, axis_line_actual, + rtol=rtol) + + # Assert ticks are correctly aligned: + tickdir_expected = tickdirs_expected[i] + tickdir_actual = axis._get_tickdir('default') + np.testing.assert_array_equal(tickdir_expected, tickdir_actual) + + +@pytest.mark.parametrize("vertical_axis", ["x", "y", "z"]) +def test_on_move_vertical_axis(vertical_axis: str) -> None: + """ + Test vertical axis is respected when rotating the plot interactively. + """ + ax = plt.subplot(1, 1, 1, projection="3d") + ax.view_init(elev=0, azim=0, roll=0, vertical_axis=vertical_axis) + ax.get_figure().canvas.draw() + + proj_before = ax.get_proj() + event_click = mock_event(ax, button=MouseButton.LEFT, xdata=0, ydata=1) + ax._button_press(event_click) + + event_move = mock_event(ax, button=MouseButton.LEFT, xdata=0.5, ydata=0.8) + ax._on_move(event_move) + + assert ax._axis_names.index(vertical_axis) == ax._vertical_axis + + # Make sure plot has actually moved: + proj_after = ax.get_proj() + np.testing.assert_raises( + AssertionError, np.testing.assert_allclose, proj_before, proj_after + ) + + +@pytest.mark.parametrize( + "vertical_axis, aspect_expected", + [ + ("x", [1.190476, 0.892857, 1.190476]), + ("y", [0.892857, 1.190476, 1.190476]), + ("z", [1.190476, 1.190476, 0.892857]), + ], +) +def test_set_box_aspect_vertical_axis(vertical_axis, aspect_expected): + ax = plt.subplot(1, 1, 1, projection="3d") + ax.view_init(elev=0, azim=0, roll=0, vertical_axis=vertical_axis) + ax.get_figure().canvas.draw() + + ax.set_box_aspect(None) + + np.testing.assert_allclose(aspect_expected, ax._box_aspect, rtol=1e-6) + + +@image_comparison(baseline_images=['arc_pathpatch.png'], + remove_text=True, + style='mpl20') +def test_arc_pathpatch(): + ax = plt.subplot(1, 1, 1, projection="3d") + a = mpatch.Arc((0.5, 0.5), width=0.5, height=0.9, + angle=20, theta1=10, theta2=130) + ax.add_patch(a) + art3d.pathpatch_2d_to_3d(a, z=0, zdir='z') + + +@image_comparison(baseline_images=['panecolor_rcparams.png'], + remove_text=True, + style='mpl20') +def test_panecolor_rcparams(): + with plt.rc_context({'axes3d.xaxis.panecolor': 'r', + 'axes3d.yaxis.panecolor': 'g', + 'axes3d.zaxis.panecolor': 'b'}): + fig = plt.figure(figsize=(1, 1)) + fig.add_subplot(projection='3d') + + +@check_figures_equal(extensions=["png"]) +def test_mutating_input_arrays_y_and_z(fig_test, fig_ref): + """ + Test to see if the `z` axis does not get mutated + after a call to `Axes3D.plot` + + test cases came from GH#8990 + """ + ax1 = fig_test.add_subplot(111, projection='3d') + x = [1, 2, 3] + y = [0.0, 0.0, 0.0] + z = [0.0, 0.0, 0.0] + ax1.plot(x, y, z, 'o-') + + # mutate y,z to get a nontrivial line + y[:] = [1, 2, 3] + z[:] = [1, 2, 3] + + # draw the same plot without mutating x and y + ax2 = fig_ref.add_subplot(111, projection='3d') + x = [1, 2, 3] + y = [0.0, 0.0, 0.0] + z = [0.0, 0.0, 0.0] + ax2.plot(x, y, z, 'o-') + + +def test_scatter_masked_color(): + """ + Test color parameter usage with non-finite coordinate arrays. + + GH#26236 + """ + + x = [np.nan, 1, 2, 1] + y = [0, np.inf, 2, 1] + z = [0, 1, -np.inf, 1] + colors = [ + [0.0, 0.0, 0.0, 1], + [0.0, 0.0, 0.0, 1], + [0.0, 0.0, 0.0, 1], + [0.0, 0.0, 0.0, 1] + ] + + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + path3d = ax.scatter(x, y, z, color=colors) + + # Assert sizes' equality + assert len(path3d.get_offsets()) ==\ + len(super(type(path3d), path3d).get_facecolors()) + + +@mpl3d_image_comparison(['surface3d_zsort_inf.png'], style='mpl20') +def test_surface3d_zsort_inf(): + plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + + x, y = np.mgrid[-2:2:0.1, -2:2:0.1] + z = np.sin(x)**2 + np.cos(y)**2 + z[x.shape[0] // 2:, x.shape[1] // 2:] = np.inf + + ax.plot_surface(x, y, z, cmap='jet') + ax.view_init(elev=45, azim=145) + + +def test_Poly3DCollection_init_value_error(): + # smoke test to ensure the input check works + # GH#26420 + with pytest.raises(ValueError, + match='You must provide facecolors, edgecolors, ' + 'or both for shade to work.'): + poly = np.array([[0, 0, 1], [0, 1, 1], [0, 0, 0]], float) + c = art3d.Poly3DCollection([poly], shade=True) + + +def test_ndarray_color_kwargs_value_error(): + # smoke test + # ensures ndarray can be passed to color in kwargs for 3d projection plot + fig = plt.figure() + ax = fig.add_subplot(111, projection='3d') + ax.scatter(1, 0, 0, color=np.array([0, 0, 0, 1])) + fig.canvas.draw() diff --git a/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/tests/test_legend3d.py b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/tests/test_legend3d.py new file mode 100644 index 0000000..7fd676d --- /dev/null +++ b/venv/lib/python3.11/site-packages/mpl_toolkits/mplot3d/tests/test_legend3d.py @@ -0,0 +1,117 @@ +import platform + +import numpy as np + +import matplotlib as mpl +from matplotlib.colors import same_color +from matplotlib.testing.decorators import image_comparison +import matplotlib.pyplot as plt +from mpl_toolkits.mplot3d import art3d + + +@image_comparison(['legend_plot.png'], remove_text=True, style='mpl20') +def test_legend_plot(): + fig, ax = plt.subplots(subplot_kw=dict(projection='3d')) + x = np.arange(10) + ax.plot(x, 5 - x, 'o', zdir='y', label='z=1') + ax.plot(x, x - 5, 'o', zdir='y', label='z=-1') + ax.legend() + + +@image_comparison(['legend_bar.png'], remove_text=True, style='mpl20') +def test_legend_bar(): + fig, ax = plt.subplots(subplot_kw=dict(projection='3d')) + x = np.arange(10) + b1 = ax.bar(x, x, zdir='y', align='edge', color='m') + b2 = ax.bar(x, x[::-1], zdir='x', align='edge', color='g') + ax.legend([b1[0], b2[0]], ['up', 'down']) + + +@image_comparison(['fancy.png'], remove_text=True, style='mpl20', + tol=0 if platform.machine() == 'x86_64' else 0.011) +def test_fancy(): + fig, ax = plt.subplots(subplot_kw=dict(projection='3d')) + ax.plot(np.arange(10), np.full(10, 5), np.full(10, 5), 'o--', label='line') + ax.scatter(np.arange(10), np.arange(10, 0, -1), label='scatter') + ax.errorbar(np.full(10, 5), np.arange(10), np.full(10, 10), + xerr=0.5, zerr=0.5, label='errorbar') + ax.legend(loc='lower left', ncols=2, title='My legend', numpoints=1) + + +def test_linecollection_scaled_dashes(): + lines1 = [[(0, .5), (.5, 1)], [(.3, .6), (.2, .2)]] + lines2 = [[[0.7, .2], [.8, .4]], [[.5, .7], [.6, .1]]] + lines3 = [[[0.6, .2], [.8, .4]], [[.5, .7], [.1, .1]]] + lc1 = art3d.Line3DCollection(lines1, linestyles="--", lw=3) + lc2 = art3d.Line3DCollection(lines2, linestyles="-.") + lc3 = art3d.Line3DCollection(lines3, linestyles=":", lw=.5) + + fig, ax = plt.subplots(subplot_kw=dict(projection='3d')) + ax.add_collection(lc1) + ax.add_collection(lc2) + ax.add_collection(lc3) + + leg = ax.legend([lc1, lc2, lc3], ['line1', 'line2', 'line 3']) + h1, h2, h3 = leg.legend_handles + + for oh, lh in zip((lc1, lc2, lc3), (h1, h2, h3)): + assert oh.get_linestyles()[0] == lh._dash_pattern + + +def test_handlerline3d(): + # Test marker consistency for monolithic Line3D legend handler. + fig, ax = plt.subplots(subplot_kw=dict(projection='3d')) + ax.scatter([0, 1], [0, 1], marker="v") + handles = [art3d.Line3D([0], [0], [0], marker="v")] + leg = ax.legend(handles, ["Aardvark"], numpoints=1) + assert handles[0].get_marker() == leg.legend_handles[0].get_marker() + + +def test_contour_legend_elements(): + x, y = np.mgrid[1:10, 1:10] + h = x * y + colors = ['blue', '#00FF00', 'red'] + + fig, ax = plt.subplots(subplot_kw=dict(projection='3d')) + cs = ax.contour(x, y, h, levels=[10, 30, 50], colors=colors, extend='both') + + artists, labels = cs.legend_elements() + assert labels == ['$x = 10.0$', '$x = 30.0$', '$x = 50.0$'] + assert all(isinstance(a, mpl.lines.Line2D) for a in artists) + assert all(same_color(a.get_color(), c) + for a, c in zip(artists, colors)) + + +def test_contourf_legend_elements(): + x, y = np.mgrid[1:10, 1:10] + h = x * y + + fig, ax = plt.subplots(subplot_kw=dict(projection='3d')) + cs = ax.contourf(x, y, h, levels=[10, 30, 50], + colors=['#FFFF00', '#FF00FF', '#00FFFF'], + extend='both') + cs.cmap.set_over('red') + cs.cmap.set_under('blue') + cs.changed() + artists, labels = cs.legend_elements() + assert labels == ['$x \\leq -1e+250s$', + '$10.0 < x \\leq 30.0$', + '$30.0 < x \\leq 50.0$', + '$x > 1e+250s$'] + expected_colors = ('blue', '#FFFF00', '#FF00FF', 'red') + assert all(isinstance(a, mpl.patches.Rectangle) for a in artists) + assert all(same_color(a.get_facecolor(), c) + for a, c in zip(artists, expected_colors)) + + +def test_legend_Poly3dCollection(): + + verts = np.asarray([[0, 0, 0], [0, 1, 1], [1, 0, 1]]) + mesh = art3d.Poly3DCollection([verts], label="surface") + + fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) + mesh.set_edgecolor('k') + handle = ax.add_collection3d(mesh) + leg = ax.legend() + assert (leg.legend_handles[0].get_facecolor() + == handle.get_facecolor()).all() diff --git a/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/LICENSE.txt b/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/LICENSE.txt new file mode 100644 index 0000000..284458b --- /dev/null +++ b/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/LICENSE.txt @@ -0,0 +1,971 @@ +Copyright (c) 2005-2025, NumPy Developers. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of the NumPy Developers nor the names of any + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---- + +The NumPy repository and source distributions bundle several libraries that are +compatibly licensed. We list these here. + +Name: lapack-lite +Files: numpy/linalg/lapack_lite/* +License: BSD-3-Clause + For details, see numpy/linalg/lapack_lite/LICENSE.txt + +Name: dragon4 +Files: numpy/_core/src/multiarray/dragon4.c +License: MIT + For license text, see numpy/_core/src/multiarray/dragon4.c + +Name: libdivide +Files: numpy/_core/include/numpy/libdivide/* +License: Zlib + For license text, see numpy/_core/include/numpy/libdivide/LICENSE.txt + + +Note that the following files are vendored in the repository and sdist but not +installed in built numpy packages: + +Name: Meson +Files: vendored-meson/meson/* +License: Apache 2.0 + For license text, see vendored-meson/meson/COPYING + +Name: spin +Files: .spin/cmds.py +License: BSD-3 + For license text, see .spin/LICENSE + +Name: tempita +Files: numpy/_build_utils/tempita/* +License: MIT + For details, see numpy/_build_utils/tempita/LICENCE.txt + +---- + +This binary distribution of NumPy also bundles the following software: + + +Name: OpenBLAS +Files: numpy.libs/libscipy_openblas*.so +Description: bundled as a dynamically linked library +Availability: https://github.com/OpenMathLib/OpenBLAS/ +License: BSD-3-Clause + Copyright (c) 2011-2014, The OpenBLAS Project + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + 3. Neither the name of the OpenBLAS project nor the names of + its contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +Name: LAPACK +Files: numpy.libs/libscipy_openblas*.so +Description: bundled in OpenBLAS +Availability: https://github.com/OpenMathLib/OpenBLAS/ +License: BSD-3-Clause-Open-MPI + Copyright (c) 1992-2013 The University of Tennessee and The University + of Tennessee Research Foundation. All rights + reserved. + Copyright (c) 2000-2013 The University of California Berkeley. All + rights reserved. + Copyright (c) 2006-2013 The University of Colorado Denver. All rights + reserved. + + $COPYRIGHT$ + + Additional copyrights may follow + + $HEADER$ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer listed + in this license in the documentation and/or other materials + provided with the distribution. + + - Neither the name of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + The copyright holders provide no reassurances that the source code + provided does not infringe any patent, copyright, or any other + intellectual property rights of third parties. The copyright holders + disclaim any liability to any recipient for claims brought against + recipient by any third party for infringement of that parties + intellectual property rights. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +Name: GCC runtime library +Files: numpy.libs/libgfortran*.so +Description: dynamically linked to files compiled with gcc +Availability: https://gcc.gnu.org/git/?p=gcc.git;a=tree;f=libgfortran +License: GPL-3.0-or-later WITH GCC-exception-3.1 + Copyright (C) 2002-2017 Free Software Foundation, Inc. + + Libgfortran is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + Libgfortran is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Under Section 7 of GPL version 3, you are granted additional + permissions described in the GCC Runtime Library Exception, version + 3.1, as published by the Free Software Foundation. + + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . + +---- + +Full text of license texts referred to above follows (that they are +listed below does not necessarily imply the conditions apply to the +present binary release): + +---- + +GCC RUNTIME LIBRARY EXCEPTION + +Version 3.1, 31 March 2009 + +Copyright (C) 2009 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +This GCC Runtime Library Exception ("Exception") is an additional +permission under section 7 of the GNU General Public License, version +3 ("GPLv3"). It applies to a given file (the "Runtime Library") that +bears a notice placed by the copyright holder of the file stating that +the file is governed by GPLv3 along with this Exception. + +When you use GCC to compile a program, GCC may combine portions of +certain GCC header files and runtime libraries with the compiled +program. The purpose of this Exception is to allow compilation of +non-GPL (including proprietary) programs to use, in this way, the +header files and runtime libraries covered by this Exception. + +0. Definitions. + +A file is an "Independent Module" if it either requires the Runtime +Library for execution after a Compilation Process, or makes use of an +interface provided by the Runtime Library, but is not otherwise based +on the Runtime Library. + +"GCC" means a version of the GNU Compiler Collection, with or without +modifications, governed by version 3 (or a specified later version) of +the GNU General Public License (GPL) with the option of using any +subsequent versions published by the FSF. + +"GPL-compatible Software" is software whose conditions of propagation, +modification and use would permit combination with GCC in accord with +the license of GCC. + +"Target Code" refers to output from any compiler for a real or virtual +target processor architecture, in executable form or suitable for +input to an assembler, loader, linker and/or execution +phase. Notwithstanding that, Target Code does not include data in any +format that is used as a compiler intermediate representation, or used +for producing a compiler intermediate representation. + +The "Compilation Process" transforms code entirely represented in +non-intermediate languages designed for human-written code, and/or in +Java Virtual Machine byte code, into Target Code. Thus, for example, +use of source code generators and preprocessors need not be considered +part of the Compilation Process, since the Compilation Process can be +understood as starting with the output of the generators or +preprocessors. + +A Compilation Process is "Eligible" if it is done using GCC, alone or +with other GPL-compatible software, or if it is done without using any +work based on GCC. For example, using non-GPL-compatible Software to +optimize any GCC intermediate representations would not qualify as an +Eligible Compilation Process. + +1. Grant of Additional Permission. + +You have permission to propagate a work of Target Code formed by +combining the Runtime Library with Independent Modules, even if such +propagation would otherwise violate the terms of GPLv3, provided that +all Target Code was generated by Eligible Compilation Processes. You +may then convey such a combination under terms of your choice, +consistent with the licensing of the Independent Modules. + +2. No Weakening of GCC Copyleft. + +The availability of this Exception does not imply any general +presumption that third-party software is unaffected by the copyleft +requirements of the license of GCC. + +---- + + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. + +Name: libquadmath +Files: numpy.libs/libquadmath*.so +Description: dynamically linked to files compiled with gcc +Availability: https://gcc.gnu.org/git/?p=gcc.git;a=tree;f=libquadmath +License: LGPL-2.1-or-later + + GCC Quad-Precision Math Library + Copyright (C) 2010-2019 Free Software Foundation, Inc. + Written by Francois-Xavier Coudert + + This file is part of the libquadmath library. + Libquadmath is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + Libquadmath is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html diff --git a/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/METADATA b/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/METADATA new file mode 100644 index 0000000..1b0d287 --- /dev/null +++ b/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/METADATA @@ -0,0 +1,1093 @@ +Metadata-Version: 2.1 +Name: numpy +Version: 2.3.4 +Summary: Fundamental package for array computing in Python +Author: Travis E. Oliphant et al. +Maintainer-Email: NumPy Developers +License: Copyright (c) 2005-2025, NumPy Developers. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of the NumPy Developers nor the names of any + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ---- + + The NumPy repository and source distributions bundle several libraries that are + compatibly licensed. We list these here. + + Name: lapack-lite + Files: numpy/linalg/lapack_lite/* + License: BSD-3-Clause + For details, see numpy/linalg/lapack_lite/LICENSE.txt + + Name: dragon4 + Files: numpy/_core/src/multiarray/dragon4.c + License: MIT + For license text, see numpy/_core/src/multiarray/dragon4.c + + Name: libdivide + Files: numpy/_core/include/numpy/libdivide/* + License: Zlib + For license text, see numpy/_core/include/numpy/libdivide/LICENSE.txt + + + Note that the following files are vendored in the repository and sdist but not + installed in built numpy packages: + + Name: Meson + Files: vendored-meson/meson/* + License: Apache 2.0 + For license text, see vendored-meson/meson/COPYING + + Name: spin + Files: .spin/cmds.py + License: BSD-3 + For license text, see .spin/LICENSE + + Name: tempita + Files: numpy/_build_utils/tempita/* + License: MIT + For details, see numpy/_build_utils/tempita/LICENCE.txt + + ---- + + This binary distribution of NumPy also bundles the following software: + + + Name: OpenBLAS + Files: numpy.libs/libscipy_openblas*.so + Description: bundled as a dynamically linked library + Availability: https://github.com/OpenMathLib/OpenBLAS/ + License: BSD-3-Clause + Copyright (c) 2011-2014, The OpenBLAS Project + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + 3. Neither the name of the OpenBLAS project nor the names of + its contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + Name: LAPACK + Files: numpy.libs/libscipy_openblas*.so + Description: bundled in OpenBLAS + Availability: https://github.com/OpenMathLib/OpenBLAS/ + License: BSD-3-Clause-Open-MPI + Copyright (c) 1992-2013 The University of Tennessee and The University + of Tennessee Research Foundation. All rights + reserved. + Copyright (c) 2000-2013 The University of California Berkeley. All + rights reserved. + Copyright (c) 2006-2013 The University of Colorado Denver. All rights + reserved. + + $COPYRIGHT$ + + Additional copyrights may follow + + $HEADER$ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer listed + in this license in the documentation and/or other materials + provided with the distribution. + + - Neither the name of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + The copyright holders provide no reassurances that the source code + provided does not infringe any patent, copyright, or any other + intellectual property rights of third parties. The copyright holders + disclaim any liability to any recipient for claims brought against + recipient by any third party for infringement of that parties + intellectual property rights. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + Name: GCC runtime library + Files: numpy.libs/libgfortran*.so + Description: dynamically linked to files compiled with gcc + Availability: https://gcc.gnu.org/git/?p=gcc.git;a=tree;f=libgfortran + License: GPL-3.0-or-later WITH GCC-exception-3.1 + Copyright (C) 2002-2017 Free Software Foundation, Inc. + + Libgfortran is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + Libgfortran is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Under Section 7 of GPL version 3, you are granted additional + permissions described in the GCC Runtime Library Exception, version + 3.1, as published by the Free Software Foundation. + + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . + + ---- + + Full text of license texts referred to above follows (that they are + listed below does not necessarily imply the conditions apply to the + present binary release): + + ---- + + GCC RUNTIME LIBRARY EXCEPTION + + Version 3.1, 31 March 2009 + + Copyright (C) 2009 Free Software Foundation, Inc. + + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. + + This GCC Runtime Library Exception ("Exception") is an additional + permission under section 7 of the GNU General Public License, version + 3 ("GPLv3"). It applies to a given file (the "Runtime Library") that + bears a notice placed by the copyright holder of the file stating that + the file is governed by GPLv3 along with this Exception. + + When you use GCC to compile a program, GCC may combine portions of + certain GCC header files and runtime libraries with the compiled + program. The purpose of this Exception is to allow compilation of + non-GPL (including proprietary) programs to use, in this way, the + header files and runtime libraries covered by this Exception. + + 0. Definitions. + + A file is an "Independent Module" if it either requires the Runtime + Library for execution after a Compilation Process, or makes use of an + interface provided by the Runtime Library, but is not otherwise based + on the Runtime Library. + + "GCC" means a version of the GNU Compiler Collection, with or without + modifications, governed by version 3 (or a specified later version) of + the GNU General Public License (GPL) with the option of using any + subsequent versions published by the FSF. + + "GPL-compatible Software" is software whose conditions of propagation, + modification and use would permit combination with GCC in accord with + the license of GCC. + + "Target Code" refers to output from any compiler for a real or virtual + target processor architecture, in executable form or suitable for + input to an assembler, loader, linker and/or execution + phase. Notwithstanding that, Target Code does not include data in any + format that is used as a compiler intermediate representation, or used + for producing a compiler intermediate representation. + + The "Compilation Process" transforms code entirely represented in + non-intermediate languages designed for human-written code, and/or in + Java Virtual Machine byte code, into Target Code. Thus, for example, + use of source code generators and preprocessors need not be considered + part of the Compilation Process, since the Compilation Process can be + understood as starting with the output of the generators or + preprocessors. + + A Compilation Process is "Eligible" if it is done using GCC, alone or + with other GPL-compatible software, or if it is done without using any + work based on GCC. For example, using non-GPL-compatible Software to + optimize any GCC intermediate representations would not qualify as an + Eligible Compilation Process. + + 1. Grant of Additional Permission. + + You have permission to propagate a work of Target Code formed by + combining the Runtime Library with Independent Modules, even if such + propagation would otherwise violate the terms of GPLv3, provided that + all Target Code was generated by Eligible Compilation Processes. You + may then convey such a combination under terms of your choice, + consistent with the licensing of the Independent Modules. + + 2. No Weakening of GCC Copyleft. + + The availability of this Exception does not imply any general + presumption that third-party software is unaffected by the copyleft + requirements of the license of GCC. + + ---- + + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for + software and other kinds of works. + + The licenses for most software and other practical works are designed + to take away your freedom to share and change the works. By contrast, + the GNU General Public License is intended to guarantee your freedom to + share and change all versions of a program--to make sure it remains free + software for all its users. We, the Free Software Foundation, use the + GNU General Public License for most of our software; it applies also to + any other work released this way by its authors. You can apply it to + your programs, too. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + them if you wish), that you receive source code or can get it if you + want it, that you can change the software or use pieces of it in new + free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you + these rights or asking you to surrender the rights. Therefore, you have + certain responsibilities if you distribute copies of the software, or if + you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether + gratis or for a fee, you must pass on to the recipients the same + freedoms that you received. You must make sure that they, too, receive + or can get the source code. And you must show them these terms so they + know their rights. + + Developers that use the GNU GPL protect your rights with two steps: + (1) assert copyright on the software, and (2) offer you this License + giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains + that there is no warranty for this free software. For both users' and + authors' sake, the GPL requires that modified versions be marked as + changed, so that their problems will not be attributed erroneously to + authors of previous versions. + + Some devices are designed to deny users access to install or run + modified versions of the software inside them, although the manufacturer + can do so. This is fundamentally incompatible with the aim of + protecting users' freedom to change the software. The systematic + pattern of such abuse occurs in the area of products for individuals to + use, which is precisely where it is most unacceptable. Therefore, we + have designed this version of the GPL to prohibit the practice for those + products. If such problems arise substantially in other domains, we + stand ready to extend this provision to those domains in future versions + of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. + States should not allow patents to restrict development and use of + software on general-purpose computers, but in those that do, we wish to + avoid the special danger that patents applied to a free program could + make it effectively proprietary. To prevent this, the GPL assures that + patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and + modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of + works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this + License. Each licensee is addressed as "you". "Licensees" and + "recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work + in a fashion requiring copyright permission, other than the making of an + exact copy. The resulting work is called a "modified version" of the + earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based + on the Program. + + To "propagate" a work means to do anything with it that, without + permission, would make you directly or secondarily liable for + infringement under applicable copyright law, except executing it on a + computer or modifying a private copy. Propagation includes copying, + distribution (with or without modification), making available to the + public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other + parties to make or receive copies. Mere interaction with a user through + a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" + to the extent that it includes a convenient and prominently visible + feature that (1) displays an appropriate copyright notice, and (2) + tells the user that there is no warranty for the work (except to the + extent that warranties are provided), that licensees may convey the + work under this License, and how to view a copy of this License. If + the interface presents a list of user commands or options, such as a + menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work + for making modifications to it. "Object code" means any non-source + form of a work. + + A "Standard Interface" means an interface that either is an official + standard defined by a recognized standards body, or, in the case of + interfaces specified for a particular programming language, one that + is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other + than the work as a whole, that (a) is included in the normal form of + packaging a Major Component, but which is not part of that Major + Component, and (b) serves only to enable use of the work with that + Major Component, or to implement a Standard Interface for which an + implementation is available to the public in source code form. A + "Major Component", in this context, means a major essential component + (kernel, window system, and so on) of the specific operating system + (if any) on which the executable work runs, or a compiler used to + produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all + the source code needed to generate, install, and (for an executable + work) run the object code and to modify the work, including scripts to + control those activities. However, it does not include the work's + System Libraries, or general-purpose tools or generally available free + programs which are used unmodified in performing those activities but + which are not part of the work. For example, Corresponding Source + includes interface definition files associated with source files for + the work, and the source code for shared libraries and dynamically + linked subprograms that the work is specifically designed to require, + such as by intimate data communication or control flow between those + subprograms and other parts of the work. + + The Corresponding Source need not include anything that users + can regenerate automatically from other parts of the Corresponding + Source. + + The Corresponding Source for a work in source code form is that + same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of + copyright on the Program, and are irrevocable provided the stated + conditions are met. This License explicitly affirms your unlimited + permission to run the unmodified Program. The output from running a + covered work is covered by this License only if the output, given its + content, constitutes a covered work. This License acknowledges your + rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not + convey, without conditions so long as your license otherwise remains + in force. You may convey covered works to others for the sole purpose + of having them make modifications exclusively for you, or provide you + with facilities for running those works, provided that you comply with + the terms of this License in conveying all material for which you do + not control copyright. Those thus making or running the covered works + for you must do so exclusively on your behalf, under your direction + and control, on terms that prohibit them from making any copies of + your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under + the conditions stated below. Sublicensing is not allowed; section 10 + makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological + measure under any applicable law fulfilling obligations under article + 11 of the WIPO copyright treaty adopted on 20 December 1996, or + similar laws prohibiting or restricting circumvention of such + measures. + + When you convey a covered work, you waive any legal power to forbid + circumvention of technological measures to the extent such circumvention + is effected by exercising rights under this License with respect to + the covered work, and you disclaim any intention to limit operation or + modification of the work as a means of enforcing, against the work's + users, your or third parties' legal rights to forbid circumvention of + technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you + receive it, in any medium, provided that you conspicuously and + appropriately publish on each copy an appropriate copyright notice; + keep intact all notices stating that this License and any + non-permissive terms added in accord with section 7 apply to the code; + keep intact all notices of the absence of any warranty; and give all + recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, + and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to + produce it from the Program, in the form of source code under the + terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent + works, which are not by their nature extensions of the covered work, + and which are not combined with it such as to form a larger program, + in or on a volume of a storage or distribution medium, is called an + "aggregate" if the compilation and its resulting copyright are not + used to limit the access or legal rights of the compilation's users + beyond what the individual works permit. Inclusion of a covered work + in an aggregate does not cause this License to apply to the other + parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms + of sections 4 and 5, provided that you also convey the + machine-readable Corresponding Source under the terms of this License, + in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded + from the Corresponding Source as a System Library, need not be + included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any + tangible personal property which is normally used for personal, family, + or household purposes, or (2) anything designed or sold for incorporation + into a dwelling. In determining whether a product is a consumer product, + doubtful cases shall be resolved in favor of coverage. For a particular + product received by a particular user, "normally used" refers to a + typical or common use of that class of product, regardless of the status + of the particular user or of the way in which the particular user + actually uses, or expects or is expected to use, the product. A product + is a consumer product regardless of whether the product has substantial + commercial, industrial or non-consumer uses, unless such uses represent + the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, + procedures, authorization keys, or other information required to install + and execute modified versions of a covered work in that User Product from + a modified version of its Corresponding Source. The information must + suffice to ensure that the continued functioning of the modified object + code is in no case prevented or interfered with solely because + modification has been made. + + If you convey an object code work under this section in, or with, or + specifically for use in, a User Product, and the conveying occurs as + part of a transaction in which the right of possession and use of the + User Product is transferred to the recipient in perpetuity or for a + fixed term (regardless of how the transaction is characterized), the + Corresponding Source conveyed under this section must be accompanied + by the Installation Information. But this requirement does not apply + if neither you nor any third party retains the ability to install + modified object code on the User Product (for example, the work has + been installed in ROM). + + The requirement to provide Installation Information does not include a + requirement to continue to provide support service, warranty, or updates + for a work that has been modified or installed by the recipient, or for + the User Product in which it has been modified or installed. Access to a + network may be denied when the modification itself materially and + adversely affects the operation of the network or violates the rules and + protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, + in accord with this section must be in a format that is publicly + documented (and with an implementation available to the public in + source code form), and must require no special password or key for + unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this + License by making exceptions from one or more of its conditions. + Additional permissions that are applicable to the entire Program shall + be treated as though they were included in this License, to the extent + that they are valid under applicable law. If additional permissions + apply only to part of the Program, that part may be used separately + under those permissions, but the entire Program remains governed by + this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option + remove any additional permissions from that copy, or from any part of + it. (Additional permissions may be written to require their own + removal in certain cases when you modify the work.) You may place + additional permissions on material, added by you to a covered work, + for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you + add to a covered work, you may (if authorized by the copyright holders of + that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further + restrictions" within the meaning of section 10. If the Program as you + received it, or any part of it, contains a notice stating that it is + governed by this License along with a term that is a further + restriction, you may remove that term. If a license document contains + a further restriction but permits relicensing or conveying under this + License, you may add to a covered work material governed by the terms + of that license document, provided that the further restriction does + not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you + must place, in the relevant source files, a statement of the + additional terms that apply to those files, or a notice indicating + where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the + form of a separately written license, or stated as exceptions; + the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly + provided under this License. Any attempt otherwise to propagate or + modify it is void, and will automatically terminate your rights under + this License (including any patent licenses granted under the third + paragraph of section 11). + + However, if you cease all violation of this License, then your + license from a particular copyright holder is reinstated (a) + provisionally, unless and until the copyright holder explicitly and + finally terminates your license, and (b) permanently, if the copyright + holder fails to notify you of the violation by some reasonable means + prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you have + received notice of violation of this License (for any work) from that + copyright holder, and you cure the violation prior to 30 days after + your receipt of the notice. + + Termination of your rights under this section does not terminate the + licenses of parties who have received copies or rights from you under + this License. If your rights have been terminated and not permanently + reinstated, you do not qualify to receive new licenses for the same + material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or + run a copy of the Program. Ancillary propagation of a covered work + occurring solely as a consequence of using peer-to-peer transmission + to receive a copy likewise does not require acceptance. However, + nothing other than this License grants you permission to propagate or + modify any covered work. These actions infringe copyright if you do + not accept this License. Therefore, by modifying or propagating a + covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically + receives a license from the original licensors, to run, modify and + propagate that work, subject to this License. You are not responsible + for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an + organization, or substantially all assets of one, or subdividing an + organization, or merging organizations. If propagation of a covered + work results from an entity transaction, each party to that + transaction who receives a copy of the work also receives whatever + licenses to the work the party's predecessor in interest had or could + give under the previous paragraph, plus a right to possession of the + Corresponding Source of the work from the predecessor in interest, if + the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the + rights granted or affirmed under this License. For example, you may + not impose a license fee, royalty, or other charge for exercise of + rights granted under this License, and you may not initiate litigation + (including a cross-claim or counterclaim in a lawsuit) alleging that + any patent claim is infringed by making, using, selling, offering for + sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this + License of the Program or a work on which the Program is based. The + work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims + owned or controlled by the contributor, whether already acquired or + hereafter acquired, that would be infringed by some manner, permitted + by this License, of making, using, or selling its contributor version, + but do not include claims that would be infringed only as a + consequence of further modification of the contributor version. For + purposes of this definition, "control" includes the right to grant + patent sublicenses in a manner consistent with the requirements of + this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free + patent license under the contributor's essential patent claims, to + make, use, sell, offer for sale, import and otherwise run, modify and + propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express + agreement or commitment, however denominated, not to enforce a patent + (such as an express permission to practice a patent or covenant not to + sue for patent infringement). To "grant" such a patent license to a + party means to make such an agreement or commitment not to enforce a + patent against the party. + + If you convey a covered work, knowingly relying on a patent license, + and the Corresponding Source of the work is not available for anyone + to copy, free of charge and under the terms of this License, through a + publicly available network server or other readily accessible means, + then you must either (1) cause the Corresponding Source to be so + available, or (2) arrange to deprive yourself of the benefit of the + patent license for this particular work, or (3) arrange, in a manner + consistent with the requirements of this License, to extend the patent + license to downstream recipients. "Knowingly relying" means you have + actual knowledge that, but for the patent license, your conveying the + covered work in a country, or your recipient's use of the covered work + in a country, would infringe one or more identifiable patents in that + country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or + arrangement, you convey, or propagate by procuring conveyance of, a + covered work, and grant a patent license to some of the parties + receiving the covered work authorizing them to use, propagate, modify + or convey a specific copy of the covered work, then the patent license + you grant is automatically extended to all recipients of the covered + work and works based on it. + + A patent license is "discriminatory" if it does not include within + the scope of its coverage, prohibits the exercise of, or is + conditioned on the non-exercise of one or more of the rights that are + specifically granted under this License. You may not convey a covered + work if you are a party to an arrangement with a third party that is + in the business of distributing software, under which you make payment + to the third party based on the extent of your activity of conveying + the work, and under which the third party grants, to any of the + parties who would receive the covered work from you, a discriminatory + patent license (a) in connection with copies of the covered work + conveyed by you (or copies made from those copies), or (b) primarily + for and in connection with specific products or compilations that + contain the covered work, unless you entered into that arrangement, + or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting + any implied license or other defenses to infringement that may + otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot convey a + covered work so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you may + not convey it at all. For example, if you agree to terms that obligate you + to collect a royalty for further conveying from those to whom you convey + the Program, the only way you could satisfy both those terms and this + License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have + permission to link or combine any covered work with a work licensed + under version 3 of the GNU Affero General Public License into a single + combined work, and to convey the resulting work. The terms of this + License will continue to apply to the part which is the covered work, + but the special requirements of the GNU Affero General Public License, + section 13, concerning interaction through a network will apply to the + combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of + the GNU General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the + Program specifies that a certain numbered version of the GNU General + Public License "or any later version" applies to it, you have the + option of following the terms and conditions either of that numbered + version or of any later version published by the Free Software + Foundation. If the Program does not specify a version number of the + GNU General Public License, you may choose any version ever published + by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future + versions of the GNU General Public License can be used, that proxy's + public statement of acceptance of a version permanently authorizes you + to choose that version for the Program. + + Later license versions may give you additional or different + permissions. However, no additional obligations are imposed on any + author or copyright holder as a result of your choosing to follow a + later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY + APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT + HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY + OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM + IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF + ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS + THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY + GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE + USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF + DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD + PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), + EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF + SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided + above cannot be given local legal effect according to their terms, + reviewing courts shall apply local law that most closely approximates + an absolute waiver of all civil liability in connection with the + Program, unless a warranty or assumption of liability accompanies a + copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + state the exclusion of warranty; and each file should have at least + the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + + Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short + notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + + The hypothetical commands `show w' and `show c' should show the appropriate + parts of the General Public License. Of course, your program's commands + might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, + if any, to sign a "copyright disclaimer" for the program, if necessary. + For more information on this, and how to apply and follow the GNU GPL, see + . + + The GNU General Public License does not permit incorporating your program + into proprietary programs. If your program is a subroutine library, you + may consider it more useful to permit linking proprietary applications with + the library. If this is what you want to do, use the GNU Lesser General + Public License instead of this License. But first, please read + . + + Name: libquadmath + Files: numpy.libs/libquadmath*.so + Description: dynamically linked to files compiled with gcc + Availability: https://gcc.gnu.org/git/?p=gcc.git;a=tree;f=libquadmath + License: LGPL-2.1-or-later + + GCC Quad-Precision Math Library + Copyright (C) 2010-2019 Free Software Foundation, Inc. + Written by Francois-Xavier Coudert + + This file is part of the libquadmath library. + Libquadmath is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + Libquadmath is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Science/Research +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Programming Language :: C +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Topic :: Software Development +Classifier: Topic :: Scientific/Engineering +Classifier: Typing :: Typed +Classifier: Operating System :: Microsoft :: Windows +Classifier: Operating System :: POSIX +Classifier: Operating System :: Unix +Classifier: Operating System :: MacOS +Project-URL: homepage, https://numpy.org +Project-URL: documentation, https://numpy.org/doc/ +Project-URL: source, https://github.com/numpy/numpy +Project-URL: download, https://pypi.org/project/numpy/#files +Project-URL: tracker, https://github.com/numpy/numpy/issues +Project-URL: release notes, https://numpy.org/doc/stable/release +Requires-Python: >=3.11 +Description-Content-Type: text/markdown + +

+ +


+ + +[![Powered by NumFOCUS](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A)]( +https://numfocus.org) +[![PyPI Downloads](https://img.shields.io/pypi/dm/numpy.svg?label=PyPI%20downloads)]( +https://pypi.org/project/numpy/) +[![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/numpy.svg?label=Conda%20downloads)]( +https://anaconda.org/conda-forge/numpy) +[![Stack Overflow](https://img.shields.io/badge/stackoverflow-Ask%20questions-blue.svg)]( +https://stackoverflow.com/questions/tagged/numpy) +[![Nature Paper](https://img.shields.io/badge/DOI-10.1038%2Fs41586--020--2649--2-blue)]( +https://doi.org/10.1038/s41586-020-2649-2) +[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/numpy/numpy/badge)](https://securityscorecards.dev/viewer/?uri=github.com/numpy/numpy) +[![Typing](https://img.shields.io/pypi/types/numpy)](https://pypi.org/project/numpy/) + + +NumPy is the fundamental package for scientific computing with Python. + +- **Website:** https://numpy.org +- **Documentation:** https://numpy.org/doc +- **Mailing list:** https://mail.python.org/mailman/listinfo/numpy-discussion +- **Source code:** https://github.com/numpy/numpy +- **Contributing:** https://numpy.org/devdocs/dev/index.html +- **Bug reports:** https://github.com/numpy/numpy/issues +- **Report a security vulnerability:** https://tidelift.com/docs/security + +It provides: + +- a powerful N-dimensional array object +- sophisticated (broadcasting) functions +- tools for integrating C/C++ and Fortran code +- useful linear algebra, Fourier transform, and random number capabilities + +Testing: + +NumPy requires `pytest` and `hypothesis`. Tests can then be run after installation with: + + python -c "import numpy, sys; sys.exit(numpy.test() is False)" + +Code of Conduct +---------------------- + +NumPy is a community-driven open source project developed by a diverse group of +[contributors](https://numpy.org/teams/). The NumPy leadership has made a strong +commitment to creating an open, inclusive, and positive community. Please read the +[NumPy Code of Conduct](https://numpy.org/code-of-conduct/) for guidance on how to interact +with others in a way that makes our community thrive. + +Call for Contributions +---------------------- + +The NumPy project welcomes your expertise and enthusiasm! + +Small improvements or fixes are always appreciated. If you are considering larger contributions +to the source code, please contact us through the [mailing +list](https://mail.python.org/mailman/listinfo/numpy-discussion) first. + +Writing code isn’t the only way to contribute to NumPy. You can also: +- review pull requests +- help us stay on top of new and old issues +- develop tutorials, presentations, and other educational materials +- maintain and improve [our website](https://github.com/numpy/numpy.org) +- develop graphic design for our brand assets and promotional materials +- translate website content +- help with outreach and onboard new contributors +- write grant proposals and help with other fundraising efforts + +For more information about the ways you can contribute to NumPy, visit [our website](https://numpy.org/contribute/). +If you’re unsure where to start or how your skills fit in, reach out! You can +ask on the mailing list or here, on GitHub, by opening a new issue or leaving a +comment on a relevant issue that is already open. + +Our preferred channels of communication are all public, but if you’d like to +speak to us in private first, contact our community coordinators at +numpy-team@googlegroups.com or on Slack (write numpy-team@googlegroups.com for +an invitation). + +We also have a biweekly community call, details of which are announced on the +mailing list. You are very welcome to join. + +If you are new to contributing to open source, [this +guide](https://opensource.guide/how-to-contribute/) helps explain why, what, +and how to successfully get involved. diff --git a/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/RECORD b/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/RECORD new file mode 100644 index 0000000..7006b0a --- /dev/null +++ b/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/RECORD @@ -0,0 +1,1522 @@ +../../../bin/f2py,sha256=Q_4eDoRPg7j_1mdO_C5jrb1l5Cb_9q5t09Z4UGqIJUU,253 +../../../bin/numpy-config,sha256=sdj3QJYfWdoep5rikPobr_zq-PZMn54u7yQEJ1F-428,253 +numpy-2.3.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +numpy-2.3.4.dist-info/LICENSE.txt,sha256=IEajEw5QsRwBZZs6DZY-auC3Q2_46Jy8_Z6HvGES1ZU,47768 +numpy-2.3.4.dist-info/METADATA,sha256=AtBWceHLdf6A_anP2echCHK6NbXVS-bilUk-8iqAgKg,62117 +numpy-2.3.4.dist-info/RECORD,, +numpy-2.3.4.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy-2.3.4.dist-info/WHEEL,sha256=0k-XbnzlIttvoouTVqS5igzC3_g2SiMBxIP-1EBcy-Q,138 +numpy-2.3.4.dist-info/entry_points.txt,sha256=7Cb63gyL2sIRpsHdADpl6xaIW5JTlUI-k_yqEVr0BSw,220 +numpy.libs/libgfortran-040039e1-0352e75f.so.5.0.0,sha256=xgkASOzMdjUiwS7wFvgdprYnyzoET1XPBHmoOcQcCYA,2833617 +numpy.libs/libquadmath-96973f99-934c22de.so.0.0.0,sha256=btUTf0Enga14Y0OftUNhP2ILQ8MrYykqACkkYWL1u8Y,250985 +numpy.libs/libscipy_openblas64_-8fb3d286.so,sha256=N7prNzoi_0KETgFPXcu0KBg_IyX9mTNhtB_M9oJBMz0,25050385 +numpy/__config__.py,sha256=iEURSTHSXDbybcRpDuKEHLDVCckdIkVRz5HZXewHhfI,5281 +numpy/__config__.pyi,sha256=7nE-kUNs2lWPIpofTastbf2PCMgCka7FCiK5jrFkDYE,2367 +numpy/__init__.cython-30.pxd,sha256=qT7d9_TWkj4UsfpY1uaBUmcYflptcjZfDGZsYJth8rU,47123 +numpy/__init__.pxd,sha256=BFYYkcQUcrl0Ee8ReoQiA0wgtxsWeIGovC8jYeEw5qg,43758 +numpy/__init__.py,sha256=gjanU4Bds0wp75zQNpTgr4g7YyXrT9JGzIPSvguEfok,25226 +numpy/__init__.pyi,sha256=oLSfcghlTT1CPfNVeoULyGDJ-jbPBwXqK7ipj_by8Hw,241660 +numpy/__pycache__/__config__.cpython-311.pyc,, +numpy/__pycache__/__init__.cpython-311.pyc,, +numpy/__pycache__/_array_api_info.cpython-311.pyc,, +numpy/__pycache__/_configtool.cpython-311.pyc,, +numpy/__pycache__/_distributor_init.cpython-311.pyc,, +numpy/__pycache__/_expired_attrs_2_0.cpython-311.pyc,, +numpy/__pycache__/_globals.cpython-311.pyc,, +numpy/__pycache__/_pytesttester.cpython-311.pyc,, +numpy/__pycache__/conftest.cpython-311.pyc,, +numpy/__pycache__/dtypes.cpython-311.pyc,, +numpy/__pycache__/exceptions.cpython-311.pyc,, +numpy/__pycache__/matlib.cpython-311.pyc,, +numpy/__pycache__/version.cpython-311.pyc,, +numpy/_array_api_info.py,sha256=NzJSuf8vutjGSqiqahq3jRI3SxMX4X1cva4J6dFv4EU,10354 +numpy/_array_api_info.pyi,sha256=QP_tYDbjtTOPtJECk3ehRXOQ24QM8TZjAfWX8XAsZCM,4864 +numpy/_configtool.py,sha256=EFRJ3pazTxYhE9op-ocWyKTLZrrpFhfmmS_tWrq8Cxo,1007 +numpy/_configtool.pyi,sha256=d4f22QGwpb1ZtDk-1Sn72ftvo4incC5E2JAikmjzfJI,24 +numpy/_core/__init__.py,sha256=yJ0iy1fXk9ogCFnflCWzBBLwlKSS-xlQWCpWCozaT6c,5542 +numpy/_core/__init__.pyi,sha256=Mj2I4BtqBVNUZVs5o1T58Z7wSaWjfhX0nCl-a0ULjgA,86 +numpy/_core/__pycache__/__init__.cpython-311.pyc,, +numpy/_core/__pycache__/_add_newdocs.cpython-311.pyc,, +numpy/_core/__pycache__/_add_newdocs_scalars.cpython-311.pyc,, +numpy/_core/__pycache__/_asarray.cpython-311.pyc,, +numpy/_core/__pycache__/_dtype.cpython-311.pyc,, +numpy/_core/__pycache__/_dtype_ctypes.cpython-311.pyc,, +numpy/_core/__pycache__/_exceptions.cpython-311.pyc,, +numpy/_core/__pycache__/_internal.cpython-311.pyc,, +numpy/_core/__pycache__/_machar.cpython-311.pyc,, +numpy/_core/__pycache__/_methods.cpython-311.pyc,, +numpy/_core/__pycache__/_string_helpers.cpython-311.pyc,, +numpy/_core/__pycache__/_type_aliases.cpython-311.pyc,, +numpy/_core/__pycache__/_ufunc_config.cpython-311.pyc,, +numpy/_core/__pycache__/arrayprint.cpython-311.pyc,, +numpy/_core/__pycache__/cversions.cpython-311.pyc,, +numpy/_core/__pycache__/defchararray.cpython-311.pyc,, +numpy/_core/__pycache__/einsumfunc.cpython-311.pyc,, +numpy/_core/__pycache__/fromnumeric.cpython-311.pyc,, +numpy/_core/__pycache__/function_base.cpython-311.pyc,, +numpy/_core/__pycache__/getlimits.cpython-311.pyc,, +numpy/_core/__pycache__/memmap.cpython-311.pyc,, +numpy/_core/__pycache__/multiarray.cpython-311.pyc,, +numpy/_core/__pycache__/numeric.cpython-311.pyc,, +numpy/_core/__pycache__/numerictypes.cpython-311.pyc,, +numpy/_core/__pycache__/overrides.cpython-311.pyc,, +numpy/_core/__pycache__/printoptions.cpython-311.pyc,, +numpy/_core/__pycache__/records.cpython-311.pyc,, +numpy/_core/__pycache__/shape_base.cpython-311.pyc,, +numpy/_core/__pycache__/strings.cpython-311.pyc,, +numpy/_core/__pycache__/umath.cpython-311.pyc,, +numpy/_core/_add_newdocs.py,sha256=ySKuP_4sVPNLHp1ojgTMhSRWi3d18CcBFHFHkD8Xf-U,208893 +numpy/_core/_add_newdocs.pyi,sha256=r__d_-GHkfjzuZ0qyjDztsKgdc1eIyeN-cBoYVgMBuo,168 +numpy/_core/_add_newdocs_scalars.py,sha256=Z5WcIAXy2Vs8kWLCzgyvxWVH0CAl-O64YFK3ttbU7yc,12600 +numpy/_core/_add_newdocs_scalars.pyi,sha256=ZnIk0TgL0szrv6SPCH-4dF469Q_92UvV5_ek47Oj7HM,573 +numpy/_core/_asarray.py,sha256=fCNHLaaCP-5Ia-RR_bIrHxWY3xklcmvlZiGhJIDiKLM,3911 +numpy/_core/_asarray.pyi,sha256=QHyb8DM_9U0otRugoNIyKjtvTVS3dZLn6DSxGi_ZU4U,1073 +numpy/_core/_dtype.py,sha256=cM6JnjoHLURWCHgN8VmQyjeiiDjcwhB5L_fPMOe1uuM,10547 +numpy/_core/_dtype.pyi,sha256=turm6RyVVEGKm6antqWWnyA0bnS2AuMwmKeFj-9mYHA,1851 +numpy/_core/_dtype_ctypes.py,sha256=KPPlakDsPkuThSOr5qFwW0jJ9VnjbvW4EWhObCHYGIE,3726 +numpy/_core/_dtype_ctypes.pyi,sha256=VwEZFViCPuHlCURv2jpJp9sbHh2hYUpzC_FRZNNGMMw,3682 +numpy/_core/_exceptions.py,sha256=X8Eg1hq1uU8L9wiOwFo2jRq6S0vnjCdgYFHj3hAW9Co,5159 +numpy/_core/_exceptions.pyi,sha256=ESXpijoEK0HrPy0dQYtjO62-Krd0419WLlrDROqwTyU,1900 +numpy/_core/_internal.py,sha256=YZ6nMGVOvfTD1nzk2XqRdz8k05WVnYGiljb1TnHvMq8,28981 +numpy/_core/_internal.pyi,sha256=2V2rXMQocZZHw8z_9HSrUi3LNGxaxA1nm0B0fcofjU8,2654 +numpy/_core/_machar.py,sha256=YUX24XYbxXJ79KrWar27FlDYKfeodr_RCkE7w0bETqs,11569 +numpy/_core/_machar.pyi,sha256=ESXpijoEK0HrPy0dQYtjO62-Krd0419WLlrDROqwTyU,1900 +numpy/_core/_methods.py,sha256=4qiUUES5wnOFeXnPavtqqMVhZ09ZZeSKlwqdPw2eKSI,9430 +numpy/_core/_methods.pyi,sha256=5HzEt2Z0-vxQfS1QJKDlTvNyLXcinNsja-xQiehMGbw,526 +numpy/_core/_multiarray_tests.cpython-311-x86_64-linux-gnu.so,sha256=k10uJ3gIqWJRfE6pk84qEKdxh4XxHyY5R3e7wFORbzQ,137792 +numpy/_core/_multiarray_umath.cpython-311-x86_64-linux-gnu.so,sha256=dJlO3zmHViFGgnHGaC1uZjt1MaqB85XDX1pvKbm34Rc,10800745 +numpy/_core/_operand_flag_tests.cpython-311-x86_64-linux-gnu.so,sha256=k7Pfhe3R1-_vmKQ7rollAHfsZXY3xk-uzXELZBHzvBg,16800 +numpy/_core/_rational_tests.cpython-311-x86_64-linux-gnu.so,sha256=6hwrLTXL7xgEYwEzcRA5tSeWwqVc6IM1Fvhar8cR9Jc,59584 +numpy/_core/_simd.cpython-311-x86_64-linux-gnu.so,sha256=SLqUPBg20Jk5IzWhAMb3ufuoLpLk6jl7F-AmiIdHEG8,2882368 +numpy/_core/_simd.pyi,sha256=2z2sFPgXr3KRzHltbt31HVrhkXM0VwXFp1lUjxaRMAM,669 +numpy/_core/_string_helpers.py,sha256=6Smgoi6oD2CunjwBSr9BZ20HkCnvW6nTPblTOU3pWng,2845 +numpy/_core/_string_helpers.pyi,sha256=xLlLKJHutEYzyKnTG2k7clcWvVUTvD319SjnKmDXuac,358 +numpy/_core/_struct_ufunc_tests.cpython-311-x86_64-linux-gnu.so,sha256=W_JPJWeblAzewrkQP6AVn7TBGf2wE2v1hx7vEn_d8ZY,16936 +numpy/_core/_type_aliases.py,sha256=msFHBkZ2s1wKQyuguK_cF6NBS0_3AOww7j3oh26mo3Q,3489 +numpy/_core/_type_aliases.pyi,sha256=Tn1Ex4bAGQa1HuMx0Vn-tEBl3HDF_uesTzmiSrz81kQ,2388 +numpy/_core/_ufunc_config.py,sha256=9j6R12YmNbaT5-y5rCAOPBbgH4bYGYlnDgFq-vZ5nDs,15130 +numpy/_core/_ufunc_config.pyi,sha256=OuMlO8SLVrBQAGdtULHYs1owM6yQUWu14WK71OQBMpo,1890 +numpy/_core/_umath_tests.cpython-311-x86_64-linux-gnu.so,sha256=4vIlU2kQaznokFx_AAxYFZQSftxaZhLxThHqG_-V1tc,50312 +numpy/_core/arrayprint.py,sha256=AAAvkrI0U6Pa_wZOnpuVZBpdsCCjpYpcWF8sA_SPYbg,65278 +numpy/_core/arrayprint.pyi,sha256=ogMYnp2ipEfagADzRaRK9ySGAfH_oabGNJegiA6LicY,6971 +numpy/_core/cversions.py,sha256=H_iNIpx9-hY1cQNxqjT2d_5SXZhJbMo_caq4_q6LB7I,347 +numpy/_core/defchararray.py,sha256=1tSvLWEeac20DodpDBxapJKwwczpJG1lVy2qjScIVXg,38007 +numpy/_core/defchararray.pyi,sha256=Mq-ytnNliY2jEYAl_0l5ZTRx9IpNMaJpDmkoerRUILE,27985 +numpy/_core/einsumfunc.py,sha256=heFeCiEKji-qfVk8zAZ1b5bKm-MUMLzCETMQ7yyHBhc,52820 +numpy/_core/einsumfunc.pyi,sha256=b10CKdAeLEryabwRMdiW1cKdNyqWLa5kMV7O2_X8g3A,4893 +numpy/_core/fromnumeric.py,sha256=s0f6WfkIRVwFZMlDrdYb3EjyF9vMGr0bms0Pc-VcOAM,143882 +numpy/_core/fromnumeric.pyi,sha256=VoUF-d31OuZYaRIi-duoYAABOADe4KjbBhFFx3Hd_Mc,42034 +numpy/_core/function_base.py,sha256=QT1pbll_8rf_3ZsGtLQoAeQ1OSqCqeAGtMTzPAE1I_w,19683 +numpy/_core/function_base.pyi,sha256=A9BlWQeiX08iIwDQJ6W1FUhy2qrRPVenXtHiEnPkt0k,7064 +numpy/_core/getlimits.py,sha256=32Qe7tlBFdyiDvdSjG1cp2a0NJ0rSMxeDRij3agiPrg,26101 +numpy/_core/getlimits.pyi,sha256=q30hQ3wDenmxoZUSoSOqyVrZZVGlsixXCHe6QUthbp8,61 +numpy/_core/include/numpy/__multiarray_api.c,sha256=ndBF5wbdd7F8_zWvR52MDO0Qm15_PrCCBlSk4dky4F8,12698 +numpy/_core/include/numpy/__multiarray_api.h,sha256=6ep4M4s0Cxoj4DgJGns-0___TdSqDJoUPnZr0BBYwkU,61639 +numpy/_core/include/numpy/__ufunc_api.c,sha256=Fg7WlH4Ow6jETKRArVL_QF11ABKYz1VpOve56_U3E0w,1755 +numpy/_core/include/numpy/__ufunc_api.h,sha256=J5h9KHdntM27XQdq1PwHwI7V2v-sOx6AIbgCwP8mg9M,13175 +numpy/_core/include/numpy/_neighborhood_iterator_imp.h,sha256=s-Hw_l5WRwKtYvsiIghF0bg-mA_CgWnzFFOYVFJ-q4k,1857 +numpy/_core/include/numpy/_numpyconfig.h,sha256=lfgEF_31SixqOweZEHjn19bN5ng62MSwuVWEXS1_p_U,926 +numpy/_core/include/numpy/_public_dtype_api_table.h,sha256=n6_Kb98SyvsR_X7stiNA6VuGp_c5W1e4fMVcJdO0wis,4574 +numpy/_core/include/numpy/arrayobject.h,sha256=mU5vpcQ95PH1j3bp8KYhJOFHB-GxwRjSUsR7nxlTSRk,204 +numpy/_core/include/numpy/arrayscalars.h,sha256=LlyrZIa_5td11BfqfMCv1hYbiG6__zxxGv1MRj8uIVo,4243 +numpy/_core/include/numpy/dtype_api.h,sha256=Gn37RzObmcTsL6YUYY9aG22Ct8F-r4ZaC53NPFqaIso,19238 +numpy/_core/include/numpy/halffloat.h,sha256=TRZfXgipa-dFppX2uNgkrjrPli-1BfJtadWjAembJ4s,1959 +numpy/_core/include/numpy/ndarrayobject.h,sha256=MnykWmchyS05ler_ZyhFIr_0j6c0IcndEi3X3n0ZWDk,12057 +numpy/_core/include/numpy/ndarraytypes.h,sha256=kS9uirBf_ewXdIgsmRQETk3aQXeSPjLPCa6hlX5By-0,65810 +numpy/_core/include/numpy/npy_2_compat.h,sha256=wdjB7_-AtW3op67Xbj3EVH6apSF7cRG6h3c5hBz-YMs,8546 +numpy/_core/include/numpy/npy_2_complexcompat.h,sha256=eE9dV_Iq3jEfGGJFH_pQjJnvC6eQ12WgOB7cZMmHByE,857 +numpy/_core/include/numpy/npy_3kcompat.h,sha256=grN6W1n7benj3F2pSAOpl_s6vn1Y50QfAP-DaleD7cA,9648 +numpy/_core/include/numpy/npy_common.h,sha256=-05bavbk44KUjy5Q-qnM5YzU32VJRv0N8ozfCI_SKcE,32586 +numpy/_core/include/numpy/npy_cpu.h,sha256=Vw8mVPm1fGmLdeLV3RoBZnBMMXA8cghgwRdWhlkDLi4,4225 +numpy/_core/include/numpy/npy_endian.h,sha256=vvK7ZlOt0vgqTVrIyviWzoxQz70S-BvflS4Z_k6X5XE,2834 +numpy/_core/include/numpy/npy_math.h,sha256=aeSFs60QbWPy1gIPyHDPrYExifm5mbDAcjP_mLk_PF0,18858 +numpy/_core/include/numpy/npy_no_deprecated_api.h,sha256=0yZrJcQEJ6MCHJInQk5TP9_qZ4t7EfBuoLOJ34IlJd4,678 +numpy/_core/include/numpy/npy_os.h,sha256=hlQsg_7-RkvS3s8OM8KXy99xxyJbCm-W1AYVcdnO1cw,1256 +numpy/_core/include/numpy/numpyconfig.h,sha256=FGuDPIr0gTFYgUzhVMXqq5BIQL-WqgmXfp003cUwpWE,7333 +numpy/_core/include/numpy/random/LICENSE.txt,sha256=-8U59H0M-DvGE3gID7hz1cFGMBJsrL_nVANcOSbapew,1018 +numpy/_core/include/numpy/random/bitgen.h,sha256=49AwKOR552r-NkhuSOF1usb_URiMSRMvD22JF5pKIng,488 +numpy/_core/include/numpy/random/distributions.h,sha256=W5tOyETd0m1W0GdaZ5dJP8fKlBtsTpG23V2Zlmrlqpg,9861 +numpy/_core/include/numpy/random/libdivide.h,sha256=ew9MNhPQd1LsCZiWiFmj9IZ7yOnA3HKOXffDeR9X1jw,80138 +numpy/_core/include/numpy/ufuncobject.h,sha256=BengvqXqiy4ipzz23KQi1Kldy9ybYUs4Sp5yA73VgiU,11780 +numpy/_core/include/numpy/utils.h,sha256=wMNomSH3Dfj0q78PrjLVtFtN-FPo7UJ4o0ifCUO-6Es,1185 +numpy/_core/lib/libnpymath.a,sha256=oXeSGrMy3L_zDbnj58as1hihfFFftHWb73ah3KPeCT4,54312 +numpy/_core/lib/npy-pkg-config/mlib.ini,sha256=_LsWV1eStNqwhdiYPa2538GL46dnfVwT4MrI1zbsoFw,147 +numpy/_core/lib/npy-pkg-config/npymath.ini,sha256=0iMzarBfkkZ_EXO95_kz-SHZRcNIEwIeOjE_esVBkRQ,361 +numpy/_core/lib/pkgconfig/numpy.pc,sha256=N5asvYyzGZp_uWbdKcWyN6cV2Nq3bNxSotUrI-SqsCI,191 +numpy/_core/memmap.py,sha256=yIsQ6n9kpZulggRJJFkTbjVwnB4leoyizvUpc2iU4n8,12651 +numpy/_core/memmap.pyi,sha256=_LKjb_PuhcQwpqc2lFaL379DYzQ9PtuKdlVV3jXOYEM,47 +numpy/_core/multiarray.py,sha256=zwHBdyOoxiBRcOhG2QB_xBAYm-p8ARSpQbye9EzrrBo,58155 +numpy/_core/multiarray.pyi,sha256=Uy5Unmczfk7Pyz8Ohgh_5g4ASY7aZ0ZYpmhhmPnG6OA,32150 +numpy/_core/numeric.py,sha256=_DcnvXu6oaHXSi9Q-BV9yGzfx7tc9iCx69r9MnJDm5g,82322 +numpy/_core/numeric.pyi,sha256=ZSWTBi2kdP7BPG3KMGJWJIlqM9BLKFmgq_xgK_GnDUo,19042 +numpy/_core/numerictypes.py,sha256=15JLBX0m_MQgaiH_yBBI5glv0vXueU0arnS56RXfUxk,15967 +numpy/_core/numerictypes.pyi,sha256=Kp4_fEg_Wj_Yv8xvI7H1TJXrDVsxb96oIH5EmnQyW1c,3270 +numpy/_core/overrides.py,sha256=MtgzOBavG7wzQYCA7O7ArdCJVV72STIb_cvkWBuDLJE,7241 +numpy/_core/overrides.pyi,sha256=2lHte4EbOTDQvknjVfO71RgiLXnOpGQky5j2meS09JU,1713 +numpy/_core/printoptions.py,sha256=NFpvy5bnjbvqnKeqQt0veEExpAAYAVNoiGXH3pglWAc,1056 +numpy/_core/printoptions.pyi,sha256=eNiliCnDuZBxla6X9kwZ-7YiCn-UtMbT-U_qTnw8l9w,594 +numpy/_core/records.py,sha256=hoXCDswM6hbytiGdYGkhRISzQjnqImXcIdGlNuOUDX4,36767 +numpy/_core/records.pyi,sha256=tob9AxABbCXsO--gWXX-pD5Bo50NgCXKOt4JstVESjY,8935 +numpy/_core/shape_base.py,sha256=7yDPrIXTmmBnZMUStHXsq1iJNiGmIxEAcepxQ9o-JVQ,32738 +numpy/_core/shape_base.pyi,sha256=Qgfi1izbvKgRWAojCMXw3HsONgvsryFCsDhAvNI1dZE,4753 +numpy/_core/strings.py,sha256=yjdeNG2e0wpljpnwGISi7NXVLD4ttCM5vAYSSV1yI8k,50642 +numpy/_core/strings.pyi,sha256=Fyjq70ZP70BzV3Ov490dxX5EOv76sgnxA7qVBxeXuRU,13502 +numpy/_core/tests/__pycache__/_locales.cpython-311.pyc,, +numpy/_core/tests/__pycache__/_natype.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test__exceptions.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_abc.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_api.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_argparse.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_array_api_info.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_array_coercion.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_array_interface.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_arraymethod.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_arrayobject.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_arrayprint.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_casting_floatingpoint_errors.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_casting_unittests.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_conversion_utils.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_cpu_dispatcher.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_cpu_features.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_custom_dtypes.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_cython.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_datetime.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_defchararray.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_deprecations.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_dlpack.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_dtype.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_einsum.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_errstate.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_extint128.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_function_base.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_getlimits.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_half.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_hashtable.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_indexerrors.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_indexing.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_item_selection.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_limited_api.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_longdouble.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_machar.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_mem_overlap.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_mem_policy.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_memmap.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_multiarray.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_multithreading.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_nditer.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_nep50_promotions.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_numeric.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_numerictypes.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_overrides.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_print.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_protocols.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_records.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_regression.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_scalar_ctors.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_scalar_methods.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_scalarbuffer.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_scalarinherit.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_scalarmath.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_scalarprint.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_shape_base.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_simd.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_simd_module.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_stringdtype.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_strings.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_ufunc.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_umath.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_umath_accuracy.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_umath_complex.cpython-311.pyc,, +numpy/_core/tests/__pycache__/test_unicode.cpython-311.pyc,, +numpy/_core/tests/_locales.py,sha256=lvHqUJVMsrE7Jh3N_KpO5fGBZgID-l3Zr4-_RrH1ZNM,2176 +numpy/_core/tests/_natype.py,sha256=YCAkuhvWuMjTjt-C0VjA8zzui-KoioNwOmAYnvf6KR0,6525 +numpy/_core/tests/data/astype_copy.pkl,sha256=lWSzCcvzRB_wpuRGj92spGIw-rNPFcd9hwJaRVvfWdk,716 +numpy/_core/tests/data/generate_umath_validation_data.cpp,sha256=BQakB5o8Mq60zex5ovVO0IatNa7xbF8JvXmtk6373So,5842 +numpy/_core/tests/data/recarray_from_file.fits,sha256=NA0kliz31FlLnYxv3ppzeruONqNYkuEvts5wzXEeIc4,8640 +numpy/_core/tests/data/umath-validation-set-README.txt,sha256=pxWwOaGGahaRd-AlAidDfocLyrAiDp0whf5hC7hYwqM,967 +numpy/_core/tests/data/umath-validation-set-arccos.csv,sha256=yBlz8r6RnnAYhdlobzGGo2FKY-DoSTQaP26y8138a3I,61365 +numpy/_core/tests/data/umath-validation-set-arccosh.csv,sha256=0GXe7XG1Z3jXAcK-OlEot_Df3MetDQSlbm3MJ__iMQk,61365 +numpy/_core/tests/data/umath-validation-set-arcsin.csv,sha256=w_Sv2NDn-mLZSAqb56JT2g4bqBzxYAihedWxHuf82uU,61339 +numpy/_core/tests/data/umath-validation-set-arcsinh.csv,sha256=DZrMYoZZZyM1DDyXNUxSlzx6bOgajnRSLWAzxcPck8k,60289 +numpy/_core/tests/data/umath-validation-set-arctan.csv,sha256=0aosXZ-9DYTop0lj4bfcBNwYVvjZdW13hbMRTRRTmV0,60305 +numpy/_core/tests/data/umath-validation-set-arctanh.csv,sha256=HEK9ePx1OkKrXIKkMUV0IxrmsDqIlgKddiI-LvF2J20,61339 +numpy/_core/tests/data/umath-validation-set-cbrt.csv,sha256=v855MTZih-fZp_GuEDst2qaIsxU4a7vlAbeIJy2xKpc,60846 +numpy/_core/tests/data/umath-validation-set-cos.csv,sha256=0PNnDqKkokZ7ERVDgbes8KNZc-ISJrZUlVZc5LkW18E,59122 +numpy/_core/tests/data/umath-validation-set-cosh.csv,sha256=JKC4nKr3wTzA_XNSiQvVUq9zkYy4djvtu2-j4ZZ_7Oc,60869 +numpy/_core/tests/data/umath-validation-set-exp.csv,sha256=rUAWIbvyeKh9rPfp2n0Zq7AKq_nvHpgbgzLjAllhsek,17491 +numpy/_core/tests/data/umath-validation-set-exp2.csv,sha256=djosT-3fTpiN_f_2WOumgMuuKgC_XhpVO-QsUFwI6uU,58624 +numpy/_core/tests/data/umath-validation-set-expm1.csv,sha256=K7jL6N4KQGX71fj5hvYkzcMXk7MmQes8FwrNfyrPpgU,60299 +numpy/_core/tests/data/umath-validation-set-log.csv,sha256=ynzbVbKxFzxWFwxHnxX7Fpm-va09oI3oK1_lTe19g4w,11692 +numpy/_core/tests/data/umath-validation-set-log10.csv,sha256=NOBD-rOWI_FPG4Vmbzu3JtX9UA838f2AaDFA-waiqGA,68922 +numpy/_core/tests/data/umath-validation-set-log1p.csv,sha256=tdbYWPqWIz8BEbIyklynh_tpQJzo970Edd4ek6DsPb8,60303 +numpy/_core/tests/data/umath-validation-set-log2.csv,sha256=39EUD0vFMbwyoXoOhgCmid6NeEAQU7Ff7QFjPsVObIE,68917 +numpy/_core/tests/data/umath-validation-set-sin.csv,sha256=8PUjnQ_YfmxFb42XJrvpvmkeSpEOlEXSmNvIK4VgfAM,58611 +numpy/_core/tests/data/umath-validation-set-sinh.csv,sha256=XOsBUuPcMjiO_pevMalpmd0iRv2gmnh9u7bV9ZLLg8I,60293 +numpy/_core/tests/data/umath-validation-set-tan.csv,sha256=Hv2WUMIscfvQJ5Y5BipuHk4oE4VY6QKbQp_kNRdCqYQ,60299 +numpy/_core/tests/data/umath-validation-set-tanh.csv,sha256=iolZF_MOyWRgYSa-SsD4df5mnyFK18zrICI740SWoTc,60299 +numpy/_core/tests/examples/cython/__pycache__/setup.cpython-311.pyc,, +numpy/_core/tests/examples/cython/checks.pyx,sha256=nw6o0nlj3SfNQP3McS10zVH9UCZiITBdAi5yO4gm9Qo,10774 +numpy/_core/tests/examples/cython/meson.build,sha256=uuXVPKemNVMQ5MiEDqS4BXhwGHa96JHjS50WxZuJS_8,1268 +numpy/_core/tests/examples/cython/setup.py,sha256=JM6UnDql7LsAnRo6p9G-nRz3dfnoy9fHF6YVKy1OzdA,859 +numpy/_core/tests/examples/limited_api/__pycache__/setup.cpython-311.pyc,, +numpy/_core/tests/examples/limited_api/limited_api1.c,sha256=htSR9ER3S8AJqv4EZMsrxQ-SufTIlXNpuFI6MXQs87w,346 +numpy/_core/tests/examples/limited_api/limited_api2.pyx,sha256=1q4I59pdkCmMhLcYngN_XwQnPoLmDEo1uTGnhrLRjDc,203 +numpy/_core/tests/examples/limited_api/limited_api_latest.c,sha256=ltBLbrl1g9XxD2wvN_-g3NhIizc8mxnh2Z6wCyXo-8E,452 +numpy/_core/tests/examples/limited_api/meson.build,sha256=YM5RwW_waFymlWSHFhCCOHO6KCknooN0jCiqScL0i5M,1627 +numpy/_core/tests/examples/limited_api/setup.py,sha256=Y6tgsOF58qe7eG2QmRQHG2wacZWfpbJLT8u-5OamjqA,437 +numpy/_core/tests/test__exceptions.py,sha256=luMT6vPIdf6LuwFNGyT-xLMZaKZEYYOFzFpMaesojoE,2922 +numpy/_core/tests/test_abc.py,sha256=9y2SsJdkPeV0oW6dsROPZOcQ72_mXie1uU2yPN93wzo,2221 +numpy/_core/tests/test_api.py,sha256=WDiG1oUtTChL0e7sCmoCvo0NnFLl7koAQCeJ5d24VQA,24209 +numpy/_core/tests/test_argparse.py,sha256=pfFfRr0grfOt-6Y7D8q9yPmz8Fcx4UbUxLpe96Tk9Xg,2870 +numpy/_core/tests/test_array_api_info.py,sha256=PZ2EzS9pq4nLZRAvvUSOb2Ke5p7pb4u4P4HKLRZjstw,3063 +numpy/_core/tests/test_array_coercion.py,sha256=PJ3s7psngDM084R2x7luAHVkHoa31TDiH1FiZpUWSfs,34897 +numpy/_core/tests/test_array_interface.py,sha256=l39VuV4nCdIeV1RUvMtjjPohAgIvJP-V3GQ5MaPrVK8,7843 +numpy/_core/tests/test_arraymethod.py,sha256=my4I9YjpVGLwN1GMbuoEhBZEJN0PuH6R2wtvGHcfoWI,3223 +numpy/_core/tests/test_arrayobject.py,sha256=aVv2eGjunCMEDFgmFujxMpk4xb-zo1MQrFcwQLfblx0,2596 +numpy/_core/tests/test_arrayprint.py,sha256=6UmL93wltbIDKdhF_WcdPRH5mztX0wyzuBy6PYW3R_o,50738 +numpy/_core/tests/test_casting_floatingpoint_errors.py,sha256=cER1YCNEwq67uAPX0QhkJonb5oA4Ws1_t0Z2AWJjYJg,5076 +numpy/_core/tests/test_casting_unittests.py,sha256=HH849h4ox1dejLB4aFX2B9tSGf0WhVvPZBPJT4yTOAA,34336 +numpy/_core/tests/test_conversion_utils.py,sha256=HAIdSRUit1lhSQEn-UVPTwyNxKjP9bSr8NGeHXnp6ew,6362 +numpy/_core/tests/test_cpu_dispatcher.py,sha256=26vob-nCPkjtxf9lRlQvwoTR92lqquyDGPgE5DIoii8,1570 +numpy/_core/tests/test_cpu_features.py,sha256=lS9iIWWznKZgR8-G4ABZqznMTJGC343-FBaCG9ZHXmQ,15703 +numpy/_core/tests/test_custom_dtypes.py,sha256=LZCbBeoyCcluhz_drg5neyiAsoTaK-6DjB4l3LaNnTw,11766 +numpy/_core/tests/test_cython.py,sha256=hLdTcd5wbzMXOx_OyQEzNyFWm-rIcWto7LpCl1SNdIU,10186 +numpy/_core/tests/test_datetime.py,sha256=gbArTFwyvmbQSkvTwa7oCv6UXDuvYV3_AbFEvK4ImOo,122685 +numpy/_core/tests/test_defchararray.py,sha256=hmMd5Wv5PjTEIuBXq_DopSqJsnp-qJ8ub5BBGRKIUEw,30629 +numpy/_core/tests/test_deprecations.py,sha256=CayfNUVMMj4BYTIFdYR4xvL2Sy2CTLN7VTABe0HIlxg,17101 +numpy/_core/tests/test_dlpack.py,sha256=Lfi3Xd2umxJ4W8fJht5epHlYWwTKx7MB47i7dcOIpq8,5830 +numpy/_core/tests/test_dtype.py,sha256=e1ZLn0xj8FrlxK3FeHOOsoQ-xV17-FMM7mh7VpuuVhs,78797 +numpy/_core/tests/test_einsum.py,sha256=Sixz-ZogKZmnFz3t49voD6AsCxmxUl_c_DHxT9rdscE,56277 +numpy/_core/tests/test_errstate.py,sha256=czhSWJJ8mdDpkh76pAxU2-d4ebMyopyk2D_CC-2lzI0,4627 +numpy/_core/tests/test_extint128.py,sha256=F6TAH3PlGON3CNz-B4hunClNUTQYQ2R8CkvaX2Zqeo4,5625 +numpy/_core/tests/test_function_base.py,sha256=x6rHdbqXtHj07Oml_5DslnG6y8jm0XfW4RdV0Q_lHHA,17651 +numpy/_core/tests/test_getlimits.py,sha256=CAHTLA8QIYVXTLWCGAISUZaAJ-xd_cBnSdYaOGuLWn8,6976 +numpy/_core/tests/test_half.py,sha256=QSKuHAfa8NWvl0A51-XcV0UOIvk-ooLy6pndq90hr6k,24425 +numpy/_core/tests/test_hashtable.py,sha256=m9-IRALLhU5liPuAk4v-ZQTVQ4s5XtLhL6xRXf5QTOE,1147 +numpy/_core/tests/test_indexerrors.py,sha256=mU2MJbdpbrcvxLZqZR293So4ZJxMH4apAjqXufRyOis,4726 +numpy/_core/tests/test_indexing.py,sha256=lU0jP4UvEe2_MUiAhy4_GD1zvpdIwUrHviu0MJhW_wQ,55421 +numpy/_core/tests/test_item_selection.py,sha256=AoPUe3llYwKjv3dO1PW1qSml4SWrAAL3fNqpwKAku6w,6631 +numpy/_core/tests/test_limited_api.py,sha256=75nz_t-jBdjKim6j-WW7WsD2rPnJ_KQ-zrRUiP3nVic,3463 +numpy/_core/tests/test_longdouble.py,sha256=FjuntHkYe158dwWr7eYe_mlqkj7sQ9lQXKZ93CKF0Pc,12391 +numpy/_core/tests/test_machar.py,sha256=Aw8icmrolAGmbIuXhUIYd4YvqIRR1I8GkcSx0J2c6yM,1067 +numpy/_core/tests/test_mem_overlap.py,sha256=IGpRF2GnkLQxEiIizsVT0eWUtlgCcJQ4w0-BEjSpT_8,29219 +numpy/_core/tests/test_mem_policy.py,sha256=pL6kBK8fgtRDTfMubFGGWnliTPWnS64uZ9l1H5qI8hk,16794 +numpy/_core/tests/test_memmap.py,sha256=LtghbNqt9AOmAalIyZF3lepthcKircyNfb2-5_Tkj1c,8186 +numpy/_core/tests/test_multiarray.py,sha256=au2BIcxXH1rXMVBm4VKNA3aogJu3Qtd8bAwcoZzpDcM,400390 +numpy/_core/tests/test_multithreading.py,sha256=VkvO2311ch8a_EeF7RTmhAQWvtHXuTZhqLVZZH1ovKI,8601 +numpy/_core/tests/test_nditer.py,sha256=7y1wdYzpGdwEbHRc5xppx8FZ45cKxNrm3JKzUPvkhrE,136568 +numpy/_core/tests/test_nep50_promotions.py,sha256=i6KpABBWFB5PWCdEv8kIjNQd7ryAPINS5m_Tnu7sDj4,10068 +numpy/_core/tests/test_numeric.py,sha256=aM2TfTaSVE2fz0Z3nN72XoxSDvZzAdatwWpLYWGBBws,159748 +numpy/_core/tests/test_numerictypes.py,sha256=PIUObIk8qTZKHwqwbc3ib6nTD4-8iCA4VTxqUg9Jg1s,24144 +numpy/_core/tests/test_overrides.py,sha256=0sDSmDWIr88GuCj0gOxdE3l0X_T5Hb5Wj2zfJDkOtvU,27518 +numpy/_core/tests/test_print.py,sha256=_cuM-DIpljOkzErb2ggIgs9HvOYrtpRppaECF6xAo0c,6787 +numpy/_core/tests/test_protocols.py,sha256=pbfumoRNnPhDP6PAPNIgLHUPPlmCdamCo4akkO8afjo,1173 +numpy/_core/tests/test_records.py,sha256=PAMHzIPp2WWDm4JHFQ-cjPBWf4BDuQumIYo7UX-zElk,20547 +numpy/_core/tests/test_regression.py,sha256=fJJnesLRUyPziCbYVM9LfLSS3qAMUz1-mzddhV9Br-U,95565 +numpy/_core/tests/test_scalar_ctors.py,sha256=I3akKp6WdwsTGic8pYQC_c6AxPXPEXStywWOF0n_ivU,6724 +numpy/_core/tests/test_scalar_methods.py,sha256=tx1RoZ03QsWblqg3Dv_JkaBFUOOILKZIqaEsFEs4tfE,9117 +numpy/_core/tests/test_scalarbuffer.py,sha256=2mZblaScwhN8mdlQvUULAKt273B2ia-mjtNmL_2UxfQ,5638 +numpy/_core/tests/test_scalarinherit.py,sha256=OIvSjrltdNSSP2c5HvDQ6pza3aKfmfgtixu1Zbahpcg,2587 +numpy/_core/tests/test_scalarmath.py,sha256=gBHBZ5SQMru1A57FUEaIMk19GFdVLTRXiO9vVh4XVVc,46583 +numpy/_core/tests/test_scalarprint.py,sha256=NS-FQDWICDcuDF5gxTQuG1Td1-EiOXIXufI-dwvKwxU,19705 +numpy/_core/tests/test_shape_base.py,sha256=mRSruY7S84ula25ZoOvbcRg_ea_3C3338e1tmdmv1Uk,31536 +numpy/_core/tests/test_simd.py,sha256=u8xSZ6HNLJ9-siYNIuyd0RA7FbD1BLEmnV5TGUrt1FU,48823 +numpy/_core/tests/test_simd_module.py,sha256=JjXH4Yq-0K-R8FHqVDinNaqY_grb1fQFFyVTHGQ0pBg,3904 +numpy/_core/tests/test_stringdtype.py,sha256=LImhDevH5NtTQNcdx23T2NwWZfHxmeBuMl-sjQXfctA,57052 +numpy/_core/tests/test_strings.py,sha256=TNVER3Wpi-s4Pm252stQC3qv6qJgtiiDsPEWazx_2fw,58506 +numpy/_core/tests/test_ufunc.py,sha256=yO1DbSTyonZWsz8HoXV0E4YN5Xlg-aIHi6xn2gTi928,136356 +numpy/_core/tests/test_umath.py,sha256=piPN7xvcHI-0rcv0Go7YOBjDWRbmG02s896P7a9W4m8,194156 +numpy/_core/tests/test_umath_accuracy.py,sha256=QCFAeiPN6rEO8fwDwJun4J1pCKm0bPsQK6-1pTYCMIY,5478 +numpy/_core/tests/test_umath_complex.py,sha256=LZMd-divBHQQ7dS34obwvmStXa8aNez45VIVTwPg_jM,23627 +numpy/_core/tests/test_unicode.py,sha256=qrQ7UC0yndXFYI7MiJu8y_I5jCK2lxOQcehE289MElk,12967 +numpy/_core/umath.py,sha256=t_SQIHR7dkMF-VRp8dKyroOEd90oqNlzmgGwaH28qW8,2130 +numpy/_core/umath.pyi,sha256=FIqmlQwQIueIrs-_QehV3guNEnJE2LxVs3NPCj38Vdo,2643 +numpy/_distributor_init.py,sha256=FBSJdgVHlQca5BrQEVYPoFm6KSTJhIFnWtWbEkEhTSo,421 +numpy/_distributor_init.pyi,sha256=6IvMzAmr0-Z6oqTkZcgXgrkJrQXVMjBih2AZvLdDgOE,27 +numpy/_expired_attrs_2_0.py,sha256=zP31EXmbwygcOEzyetDEp-RxL9cUfbUUht956zaOSf8,3826 +numpy/_expired_attrs_2_0.pyi,sha256=n2ipDUFTFS4puCD56dlNWGkVkw_b0M6cEyugo4Qh3HM,1253 +numpy/_globals.py,sha256=k5ZVnzUbKNSLPmZ0URYwJN5C_7xIzfMNaaSsBSrPTuI,3091 +numpy/_globals.pyi,sha256=IrHHIXmibXzgK0VUlECQLw4IEkveXSHo_ZWnTkfnLe4,280 +numpy/_pyinstaller/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/_pyinstaller/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/_pyinstaller/__pycache__/__init__.cpython-311.pyc,, +numpy/_pyinstaller/__pycache__/hook-numpy.cpython-311.pyc,, +numpy/_pyinstaller/hook-numpy.py,sha256=MU22pQ4AkUYPQWu5C8pRDpnYXElLJ8R0FGNYJUQpiVE,1362 +numpy/_pyinstaller/hook-numpy.pyi,sha256=tAvtMPovoi-sur0D1NAo3_evSmYKLTh0bgRSC7QrCIk,349 +numpy/_pyinstaller/tests/__init__.py,sha256=pdPbCTRwpCJamlyvIi9HZTlqAvK5HPbGu3oMA0cu2Rs,329 +numpy/_pyinstaller/tests/__pycache__/__init__.cpython-311.pyc,, +numpy/_pyinstaller/tests/__pycache__/pyinstaller-smoke.cpython-311.pyc,, +numpy/_pyinstaller/tests/__pycache__/test_pyinstaller.cpython-311.pyc,, +numpy/_pyinstaller/tests/pyinstaller-smoke.py,sha256=6iL-eHMQaG3rxnS5EgcvrCqElm9aKL07Cjr1FZJSXls,1143 +numpy/_pyinstaller/tests/test_pyinstaller.py,sha256=8K-7QxmfoXCG0NwR0bhIgCNrDjGlrTzWnrR1sR8btgU,1135 +numpy/_pytesttester.py,sha256=DjlYL8uINN2XWa3nnlX6gPGuoLjcx1Bie_PQzbp2cpA,6328 +numpy/_pytesttester.pyi,sha256=VXCuwPYTb9-PF6nxXwibwBbre0hW9jIB4nkzmtm2kls,497 +numpy/_typing/__init__.py,sha256=MG5Wv9dc3ZyOmDfidH5cFtykeyNM77ArC4R3UW7Tn-Y,7188 +numpy/_typing/__pycache__/__init__.cpython-311.pyc,, +numpy/_typing/__pycache__/_add_docstring.cpython-311.pyc,, +numpy/_typing/__pycache__/_array_like.cpython-311.pyc,, +numpy/_typing/__pycache__/_char_codes.cpython-311.pyc,, +numpy/_typing/__pycache__/_dtype_like.cpython-311.pyc,, +numpy/_typing/__pycache__/_extended_precision.cpython-311.pyc,, +numpy/_typing/__pycache__/_nbit.cpython-311.pyc,, +numpy/_typing/__pycache__/_nbit_base.cpython-311.pyc,, +numpy/_typing/__pycache__/_nested_sequence.cpython-311.pyc,, +numpy/_typing/__pycache__/_scalars.cpython-311.pyc,, +numpy/_typing/__pycache__/_shape.cpython-311.pyc,, +numpy/_typing/__pycache__/_ufunc.cpython-311.pyc,, +numpy/_typing/_add_docstring.py,sha256=_3g7D-6HAQ3MT4X6DE07yLua9LqWFhskNVx1TS7X9O4,3999 +numpy/_typing/_array_like.py,sha256=EPZUfJSjamvsWJ6Rs5ZwwA_5FhBpYdoifcVVtVcWPn0,4188 +numpy/_typing/_char_codes.py,sha256=j07npk82Nb7Ira2z7ZTlU3UcOPwt2gM7qZKrPLdjT48,8764 +numpy/_typing/_dtype_like.py,sha256=8M5RekLqdheEjWMIn4RnbkEzsS7jCatCiT0D5hg-53c,3762 +numpy/_typing/_extended_precision.py,sha256=pknUqgak0FBNM-sERPqW-pFGH71_K-iehFSee5oQiqE,434 +numpy/_typing/_nbit.py,sha256=KSbKwOKttob-5ytT5vCVkHrDMn0YHvyptTTyj_6AYcw,632 +numpy/_typing/_nbit_base.py,sha256=nPZpsQltuR5B0iaAYF9qD2he_kXnmssv_RhaUNFsW-s,3058 +numpy/_typing/_nbit_base.pyi,sha256=kHAqTmpYUWbQyTUVRs4NKKcDwiEJgUzWvvT1FQgQ89I,740 +numpy/_typing/_nested_sequence.py,sha256=so1agYGHd5gDo_IBvvHqBB5lsqGbHqN_imyC5UHU-HI,2505 +numpy/_typing/_scalars.py,sha256=LhXY2BTHmeYKzeIZfpjvuMn-5eOLjU2n9z7z1l5bKf8,944 +numpy/_typing/_shape.py,sha256=6cFv-LbSyG9mlfSBOGGyul9Q_GUrlcHQC9JZa-m20cA,275 +numpy/_typing/_ufunc.py,sha256=HOkaE-6wV0fd3rmHZGC39YAHIIf8tyvlzekD4y4GQxA,156 +numpy/_typing/_ufunc.pyi,sha256=1Ni26dsi2fbH2oNvXDNNXaBPQQzdhkwA7VQ8eyuJS_c,26575 +numpy/_utils/__init__.py,sha256=hVnZ7C0MCSNbMw-Zyq-MKCYStaGX6RzqFMnnh7ed4dE,3477 +numpy/_utils/__init__.pyi,sha256=VxEygNvp90alV8zYsUSuDYNdF7BEucXUx3w55Ef7YXI,726 +numpy/_utils/__pycache__/__init__.cpython-311.pyc,, +numpy/_utils/__pycache__/_convertions.cpython-311.pyc,, +numpy/_utils/__pycache__/_inspect.cpython-311.pyc,, +numpy/_utils/__pycache__/_pep440.cpython-311.pyc,, +numpy/_utils/_convertions.py,sha256=0xMxdeLOziDmHsRM_8luEh4S-kQdMoMg6GxNDDas69k,329 +numpy/_utils/_convertions.pyi,sha256=4l-0UmPCyVA70UJ8WAd2A45HrKFSzgC0sFDBSnKcYiQ,118 +numpy/_utils/_inspect.py,sha256=zFuJABH08D1Kgq_eecYkD1Ogg0OXp1t4oqjZxM0kdLk,7436 +numpy/_utils/_inspect.pyi,sha256=wFajmQpCTXpMbJBbdiiyJMb29HkaMW0jEWLMqbQcQ5k,2255 +numpy/_utils/_pep440.py,sha256=it9P4_oHXWw3BxdoVz7JPMuj5kxF5M7_BJ8Z1m9nu0w,13988 +numpy/_utils/_pep440.pyi,sha256=xzYJoZ6DnjvgaKr8OsBwim77fAJ0xeQJI9XAt75gvfI,3870 +numpy/char/__init__.py,sha256=xs6pprMdmNeXVfuTRkU3nF9qdhutWdPu5oaep2AjWmc,93 +numpy/char/__init__.pyi,sha256=siwqDh7X7u4e0HGx3xg8eDaJVqy0_nac5y8UMzz-BcM,1540 +numpy/char/__pycache__/__init__.cpython-311.pyc,, +numpy/conftest.py,sha256=pXdv-CKocoIEpr0DsYstu7TgqvNdzSvfiDNMlMwmqYk,8577 +numpy/core/__init__.py,sha256=wJNaRF1UFOnZKqiBrsshWLjTGiEZ9rvWlcit0xj7Y0w,1290 +numpy/core/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/core/__pycache__/__init__.cpython-311.pyc,, +numpy/core/__pycache__/_dtype.cpython-311.pyc,, +numpy/core/__pycache__/_dtype_ctypes.cpython-311.pyc,, +numpy/core/__pycache__/_internal.cpython-311.pyc,, +numpy/core/__pycache__/_multiarray_umath.cpython-311.pyc,, +numpy/core/__pycache__/_utils.cpython-311.pyc,, +numpy/core/__pycache__/arrayprint.cpython-311.pyc,, +numpy/core/__pycache__/defchararray.cpython-311.pyc,, +numpy/core/__pycache__/einsumfunc.cpython-311.pyc,, +numpy/core/__pycache__/fromnumeric.cpython-311.pyc,, +numpy/core/__pycache__/function_base.cpython-311.pyc,, +numpy/core/__pycache__/getlimits.cpython-311.pyc,, +numpy/core/__pycache__/multiarray.cpython-311.pyc,, +numpy/core/__pycache__/numeric.cpython-311.pyc,, +numpy/core/__pycache__/numerictypes.cpython-311.pyc,, +numpy/core/__pycache__/overrides.cpython-311.pyc,, +numpy/core/__pycache__/records.cpython-311.pyc,, +numpy/core/__pycache__/shape_base.cpython-311.pyc,, +numpy/core/__pycache__/umath.cpython-311.pyc,, +numpy/core/_dtype.py,sha256=GHBhfVtsVrP7v13IujEz9aGIENkYIdbfuRu-New1UnU,323 +numpy/core/_dtype.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/core/_dtype_ctypes.py,sha256=wX4m37b0zQgxlzT5OjE_uj2E5CpiX9E7HLFpO6h_lDY,351 +numpy/core/_dtype_ctypes.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/core/_internal.py,sha256=qxpHJELXNUcYJkJt1LktQuZm4BwYu4bXnMuBEOp6POU,949 +numpy/core/_multiarray_umath.py,sha256=T88HZgFD5VCuXRCSeLbPoj99nKUSdgyw8xWyf6eqhxQ,2098 +numpy/core/_utils.py,sha256=5fk18JN43Rg6YHvan6QjdrOeOuLtRlLVmP6MadBEJVA,923 +numpy/core/arrayprint.py,sha256=Lbe4smWXYFzd9sO9LLJ5PZS4C3bSvLt6HRtwSE56xN8,339 +numpy/core/defchararray.py,sha256=a9luvvni8gRrGVdKO7U_xwsFFvkzlxnVgxL75jLRmCI,347 +numpy/core/einsumfunc.py,sha256=CNucINgUIrpiLQn4xPI_mogwjfKlFA3h7gwAvRVwb5M,339 +numpy/core/fromnumeric.py,sha256=5TaonJVuC110qv3f3cqTtmjayTX0BmqJAgoAJn5H3ZI,343 +numpy/core/function_base.py,sha256=vhjhzsEzDd11RHg6pilfMJO3X6k94an5RAJqj-nlzms,351 +numpy/core/getlimits.py,sha256=6nCk4Tw0LjW7joWsprI5LiMzje1gsOjO2lSQ_OwBB8I,335 +numpy/core/multiarray.py,sha256=bjdPLbvJuj61M6TZkbB5NXOCNmH4QbUq6g3ePkKP6TA,793 +numpy/core/numeric.py,sha256=Ctk_QikyB2mM0xI0lBeB8YTUfTwQSXfVdpIMRtunbMo,360 +numpy/core/numerictypes.py,sha256=bXwTwzUahzbHrFGhS5RkJOvb6TYEsQnQC5ww9mN-1Vw,347 +numpy/core/overrides.py,sha256=1FZyb0U6JJuyojtxFvQ7HSJ2rpfhWec0F-X0mapCjc8,335 +numpy/core/overrides.pyi,sha256=-3xfjHfa4UaCuhTVwwRN4EOM5uz9vZR0gMeTVvEdbYI,525 +numpy/core/records.py,sha256=9yfFDxyOc68lXqfbaosgRNlw1dbWP8CRHzIPEtEtSgc,327 +numpy/core/shape_base.py,sha256=2srdQtF1d8LpUbDjGMXT-Tqz2K2NaTO-ZEC4viCYswY,339 +numpy/core/umath.py,sha256=hMVmNrICdqXRiiRG7UMV0Gr-9xYqJGmkONGQn20iK98,319 +numpy/ctypeslib/__init__.py,sha256=WFwMhpV2LJP-IQOspaInhV8c6XPKZwqppE-cvtIpqvU,193 +numpy/ctypeslib/__init__.pyi,sha256=R0tHAk1P0jw-HLYjjKBqXEjDyXhByrtbjrgOxht9tE4,619 +numpy/ctypeslib/__pycache__/__init__.cpython-311.pyc,, +numpy/ctypeslib/__pycache__/_ctypeslib.cpython-311.pyc,, +numpy/ctypeslib/_ctypeslib.py,sha256=NtEUpisQhDfETBLAkqYf7Ajq0xiNhZurb5SmGGH54pA,19079 +numpy/ctypeslib/_ctypeslib.pyi,sha256=xS-NLEO6xwjUr-AUWfGxz3N7X5jwIGBVl6RhOUUYZ74,8084 +numpy/distutils/__init__.py,sha256=BU1C21439HRo7yH1SsN9me6WCDPpOwRQ37ZpNwDMqCw,2074 +numpy/distutils/__init__.pyi,sha256=D8LRE6BNOmuBGO-oakJGnjT9UJTk9zSR5rxMfZzlX64,119 +numpy/distutils/__pycache__/__init__.cpython-311.pyc,, +numpy/distutils/__pycache__/_shell_utils.cpython-311.pyc,, +numpy/distutils/__pycache__/armccompiler.cpython-311.pyc,, +numpy/distutils/__pycache__/ccompiler.cpython-311.pyc,, +numpy/distutils/__pycache__/ccompiler_opt.cpython-311.pyc,, +numpy/distutils/__pycache__/conv_template.cpython-311.pyc,, +numpy/distutils/__pycache__/conv_template.cpython-311.pyc,sha256=lZd6cysmxjMPyHnHfbbGPfqHqsw0NG4F-kFNkuiHnMA,14213 +numpy/distutils/__pycache__/core.cpython-311.pyc,, +numpy/distutils/__pycache__/cpuinfo.cpython-311.pyc,, +numpy/distutils/__pycache__/exec_command.cpython-311.pyc,, +numpy/distutils/__pycache__/extension.cpython-311.pyc,, +numpy/distutils/__pycache__/from_template.cpython-311.pyc,, +numpy/distutils/__pycache__/fujitsuccompiler.cpython-311.pyc,, +numpy/distutils/__pycache__/intelccompiler.cpython-311.pyc,, +numpy/distutils/__pycache__/lib2def.cpython-311.pyc,, +numpy/distutils/__pycache__/line_endings.cpython-311.pyc,, +numpy/distutils/__pycache__/log.cpython-311.pyc,, +numpy/distutils/__pycache__/mingw32ccompiler.cpython-311.pyc,, +numpy/distutils/__pycache__/misc_util.cpython-311.pyc,, +numpy/distutils/__pycache__/msvc9compiler.cpython-311.pyc,, +numpy/distutils/__pycache__/msvccompiler.cpython-311.pyc,, +numpy/distutils/__pycache__/npy_pkg_config.cpython-311.pyc,, +numpy/distutils/__pycache__/numpy_distribution.cpython-311.pyc,, +numpy/distutils/__pycache__/pathccompiler.cpython-311.pyc,, +numpy/distutils/__pycache__/system_info.cpython-311.pyc,, +numpy/distutils/__pycache__/unixccompiler.cpython-311.pyc,, +numpy/distutils/_shell_utils.py,sha256=3G7QGZXCxJQ6-2l1BTu3G_dRrWe6nT4QLlGYeh5oNZk,2538 +numpy/distutils/armccompiler.py,sha256=8qUaYh8QHOJlz7MNvkuJNyYdCOCivuW0pbmf_2OPZu0,962 +numpy/distutils/ccompiler.py,sha256=TYn7NMYjCdRqeOU3DdrVYgco36ISMUl3xnazfyy6e4Q,28710 +numpy/distutils/ccompiler_opt.py,sha256=jLxPBdY8ouJ7awDHc6Y7Jt3wF7TTI0BKnkkSuVnNMEY,100395 +numpy/distutils/checks/cpu_asimd.c,sha256=nXUsTLrSlhRL-UzDM8zMqn1uqJnR7TRlJi3Ixqw539w,818 +numpy/distutils/checks/cpu_asimddp.c,sha256=E4b9zT1IdSfGR2ACZJiQoR-BqaeDtzFqRNW8lBOXAaY,432 +numpy/distutils/checks/cpu_asimdfhm.c,sha256=6tXINVEpmA-lYRSbL6CrBu2ejNFmd9WONFGgg-JFXZE,529 +numpy/distutils/checks/cpu_asimdhp.c,sha256=SfwrEEA_091tmyI4vN3BNLs7ypUnrF_VbTg6gPl-ocs,379 +numpy/distutils/checks/cpu_avx.c,sha256=LuZW8o93VZZi7cYEP30dvKWTm7Mw1TLmCt5UaXDxCJg,779 +numpy/distutils/checks/cpu_avx2.c,sha256=jlDlea393op0JOiMJgmmPyKmyAXztLcObPOp9F9FaS0,749 +numpy/distutils/checks/cpu_avx512_clx.c,sha256=P-YHjj2XE4SithBkPwDgShOxGWnVSNUXg72h8O3kpbs,842 +numpy/distutils/checks/cpu_avx512_cnl.c,sha256=f_c2Z0xwAKTJeK3RYMIp1dgXYV8QyeOxUgKkMht4qko,948 +numpy/distutils/checks/cpu_avx512_icl.c,sha256=isI35-gm7Hqn2Qink5hP1XHWlh52a5vwKhEdW_CRviE,1004 +numpy/distutils/checks/cpu_avx512_knl.c,sha256=PVTkczTpHlXbTc7IQKlCFU9Cq4VGG-_JhVnT0_n-t1A,959 +numpy/distutils/checks/cpu_avx512_knm.c,sha256=eszPGr3XC9Js7mQUB0gFxlrNjQwfucQFz_UwFyNLjes,1132 +numpy/distutils/checks/cpu_avx512_skx.c,sha256=59VD8ebEJJHLlbY-4dakZV34bmq_lr9mBKz8BAcsdYc,1010 +numpy/distutils/checks/cpu_avx512_spr.c,sha256=i8DpADB8ZhIucKc8lt9JfYbQANRvR67u59oQf5winvg,904 +numpy/distutils/checks/cpu_avx512cd.c,sha256=Qfh5FJUv9ZWd_P5zxkvYYIkvqsPptgaDuKkeX_F8vyA,759 +numpy/distutils/checks/cpu_avx512f.c,sha256=d97NRcbJhqpvURnw7zyG0TOuEijKXvU0g4qOTWHbwxY,755 +numpy/distutils/checks/cpu_f16c.c,sha256=nzZzpUc8AfTtw-INR3KOxcjx9pyzVUM8OhsrdH2dO_w,868 +numpy/distutils/checks/cpu_fma3.c,sha256=YN6IDwuZALJHVVmpQ2tj-14HI_PcxH_giV8-XjzlmkU,817 +numpy/distutils/checks/cpu_fma4.c,sha256=qKdgTNNFg-n8vSB1Txco60HBLCcOi1aH23gZOX7yKqs,301 +numpy/distutils/checks/cpu_lsx.c,sha256=wM7u2mGZIkX1vd-S3xu8DwR4VVo06GyBsI-UfNlF6Is,210 +numpy/distutils/checks/cpu_neon.c,sha256=Y0SjuVLzh3upcbY47igHjmKgjHbXxbvzncwB7acfjxw,600 +numpy/distutils/checks/cpu_neon_fp16.c,sha256=E7YOGyYP41u1sqiCHpCGGqjmo7Cs6yUkmJ46K7LZloc,251 +numpy/distutils/checks/cpu_neon_vfpv4.c,sha256=qFY1C_fQYz7M_a_8j0KTdn7vaE3NNVmWY2JGArDGM3w,609 +numpy/distutils/checks/cpu_popcnt.c,sha256=vRcXHVw2j1F9I_07eIZ_xzDX3fd3mqgiQXL1w3pULJk,1049 +numpy/distutils/checks/cpu_rvv.c,sha256=ADmogrRu7XOOsCfB6PMpF0ES4yv8tXsbYduvZjEMTPA,300 +numpy/distutils/checks/cpu_sse.c,sha256=6MHITtC76UpSR9uh0SiURpnkpPkLzT5tbrcXT4xBFxo,686 +numpy/distutils/checks/cpu_sse2.c,sha256=yUZzdjDtBS-vYlhfP-pEzj3m0UPmgZs-hA99TZAEACU,697 +numpy/distutils/checks/cpu_sse3.c,sha256=j5XRHumUuccgN9XPZyjWUUqkq8Nu8XCSWmvUhmJTJ08,689 +numpy/distutils/checks/cpu_sse41.c,sha256=y_k81P-1b-Hx8OeRVDE9V1O9JakS0zPvlFKJ3VbSmEw,675 +numpy/distutils/checks/cpu_sse42.c,sha256=3PXucdI2mII-txO7zFN99TlVveT_QUAETTGvRk-_hYw,692 +numpy/distutils/checks/cpu_ssse3.c,sha256=X6VWxIXMRpdSCBsHPXvot3yTZ4d5yK9Bi1ScQP3WC-Q,705 +numpy/distutils/checks/cpu_sve.c,sha256=Ixj6TJHCdn7h_xE3MWviXrxlvo0OZkKDTT6sFIwNZPY,287 +numpy/distutils/checks/cpu_vsx.c,sha256=FVmR4iliKjcihzMCwloR1F2JYwSZK9P4f_hvIRLHSDQ,478 +numpy/distutils/checks/cpu_vsx2.c,sha256=yESs25Rt5ztb5-stuYbu3TbiyJKmllMpMLu01GOAHqE,263 +numpy/distutils/checks/cpu_vsx3.c,sha256=omC50tbEZNigsKMFPtE3zGRlIS2VuDTm3vZ9TBZWo4U,250 +numpy/distutils/checks/cpu_vsx4.c,sha256=ngezA1KuINqJkLAcMrZJR7bM0IeA25U6I-a5aISGXJo,305 +numpy/distutils/checks/cpu_vx.c,sha256=OpLU6jIfwvGJR4JPVVZLlUfvo7oAZ0YvsjafM2qtPlk,461 +numpy/distutils/checks/cpu_vxe.c,sha256=rYW_nKwXnlB0b8xCrJEr4TmvrEvS-NToxwyqqOHV8Bk,788 +numpy/distutils/checks/cpu_vxe2.c,sha256=Hv4wO23kwC2G6lqqercq4NE4K0nrvBxR7RIzr5HTXCc,624 +numpy/distutils/checks/cpu_xop.c,sha256=7uabsGeqvmVJQvuSEjs8-Sm8kpmvl6uZ9YHMF5h2opQ,234 +numpy/distutils/checks/extra_avx512bw_mask.c,sha256=pVPOhcu80yJVnIhOcHHXOlZ2proJ1MUf0XgccqhPoNk,636 +numpy/distutils/checks/extra_avx512dq_mask.c,sha256=nMfIvepISGFDexPrMYl5LWtdmt6Uy9TKPzF4BVayw2I,504 +numpy/distutils/checks/extra_avx512f_reduce.c,sha256=_NfbtfSAkm_A67umjR1oEb9yRnBL5EnTA76fvQIuNVk,1595 +numpy/distutils/checks/extra_vsx3_half_double.c,sha256=shHvIQZfR0o-sNefOt49BOh4WCmA0BpJvj4b7F9UdvQ,354 +numpy/distutils/checks/extra_vsx4_mma.c,sha256=GiQGZ9-6wYTgH42bJgSlXhWcTIrkjh5xv4uymj6rglk,499 +numpy/distutils/checks/extra_vsx_asm.c,sha256=BngiMVS9nyr22z6zMrOrHLeCloe_5luXhf5T5mYucgI,945 +numpy/distutils/checks/test_flags.c,sha256=uAIbhfAhyGe4nTdK_mZmoCefj9P0TGHNF9AUv_Cdx5A,16 +numpy/distutils/command/__init__.py,sha256=fW49zUB3syMFsKpf1oRBO0h8tmnTwRP3zUPrsB0R22M,1032 +numpy/distutils/command/__pycache__/__init__.cpython-311.pyc,, +numpy/distutils/command/__pycache__/autodist.cpython-311.pyc,, +numpy/distutils/command/__pycache__/bdist_rpm.cpython-311.pyc,, +numpy/distutils/command/__pycache__/build.cpython-311.pyc,, +numpy/distutils/command/__pycache__/build_clib.cpython-311.pyc,, +numpy/distutils/command/__pycache__/build_ext.cpython-311.pyc,, +numpy/distutils/command/__pycache__/build_py.cpython-311.pyc,, +numpy/distutils/command/__pycache__/build_scripts.cpython-311.pyc,, +numpy/distutils/command/__pycache__/build_src.cpython-311.pyc,, +numpy/distutils/command/__pycache__/config.cpython-311.pyc,, +numpy/distutils/command/__pycache__/config_compiler.cpython-311.pyc,, +numpy/distutils/command/__pycache__/develop.cpython-311.pyc,, +numpy/distutils/command/__pycache__/egg_info.cpython-311.pyc,, +numpy/distutils/command/__pycache__/install.cpython-311.pyc,, +numpy/distutils/command/__pycache__/install_clib.cpython-311.pyc,, +numpy/distutils/command/__pycache__/install_data.cpython-311.pyc,, +numpy/distutils/command/__pycache__/install_headers.cpython-311.pyc,, +numpy/distutils/command/__pycache__/sdist.cpython-311.pyc,, +numpy/distutils/command/autodist.py,sha256=8KWwr5mnjX20UpY4ITRDx-PreApyh9M7B92IwsEtTsQ,3718 +numpy/distutils/command/bdist_rpm.py,sha256=-tkZupIJr_jLqeX7xbRhE8-COXHRI0GoRpAKchVte54,709 +numpy/distutils/command/build.py,sha256=aj1SUGsDUTxs4Tch2ALLcPnuAVhaPjEPIZIobzMajm0,2613 +numpy/distutils/command/build_clib.py,sha256=jl9c9Z1eilrBIg352fOvJG3G_lSTIHQu3uMi_i2cwoA,19313 +numpy/distutils/command/build_ext.py,sha256=Y8HHTedTpzPOnzAVU9i7jKAWj9N4rj9K7rKrAdJYMaU,32979 +numpy/distutils/command/build_py.py,sha256=XiLZ2d_tmCE8uG5VAU5OK2zlzQayBfeY4l8FFEltbig,1144 +numpy/distutils/command/build_scripts.py,sha256=P2ytmZb3UpwfmbMXkFB2iMQk15tNUCynzMATllmp-Gs,1665 +numpy/distutils/command/build_src.py,sha256=KbRrVux_NXA-SNPwf2cFTat4qUi10y3d95RUIYyCp68,31174 +numpy/distutils/command/config.py,sha256=etJCBJusXp-yzPodZnCBW0NJgxPNhv-FRTon6uV761E,20670 +numpy/distutils/command/config_compiler.py,sha256=N6JHVRAwgzkEsHqK8tqziLPlwbfWvdHaEdPv_sklkHc,4371 +numpy/distutils/command/develop.py,sha256=9SbbnFnVbSJVZxTFoV9pwlOcM1D30GnOWm2QonQDvHI,575 +numpy/distutils/command/egg_info.py,sha256=i-Zk4sftK5cMQVQ2jqSxTMpVI-gYyXN16-p5TvmjURc,921 +numpy/distutils/command/install.py,sha256=nkW2fl7OABcE3sUcoNM7iONkF64CBESdVlRjTLg3hVA,3073 +numpy/distutils/command/install_clib.py,sha256=1xv0_lPVu3g16GgICjjlh7T8zQ6PSlevCuq8Bocx5YM,1399 +numpy/distutils/command/install_data.py,sha256=Y59EBG61MWP_5C8XJvSCVfzYpMNVNVcH_Z6c0qgr9KA,848 +numpy/distutils/command/install_headers.py,sha256=LD_b1bRoprrOOErq2V8DvY8ydFa6KALyi5_fnWymCxc,920 +numpy/distutils/command/sdist.py,sha256=8Tsju1RwXNbPyQcjv8GRMFveFQqYlbNdSZh2X1OV-VU,733 +numpy/distutils/conv_template.py,sha256=F-4vkkfAjCb-fN79WYrXX3BMHMoiQO-W2u09q12OPuI,9536 +numpy/distutils/core.py,sha256=QBJNJdIE0a9Rr4lo-3QnmEaWyVV068l6HbVPdJ75iZg,8173 +numpy/distutils/cpuinfo.py,sha256=XuNhsx_-tyrui_AOgn10yfZ9p4YBM68vW2_bGmKj07I,22639 +numpy/distutils/exec_command.py,sha256=pNi8PhDX_BLc6CspovWMkhbeAQ1vQDlsGZNH8uNKptM,10282 +numpy/distutils/extension.py,sha256=g2Dei8GIkhrKpWttKkgQoVD6707pcx93MhhFt85Z89k,3460 +numpy/distutils/fcompiler/__init__.py,sha256=DqfaiKGVagOFuL0v3VZxZZkRnWWvly0_lYHuLjaZTBo,40625 +numpy/distutils/fcompiler/__pycache__/__init__.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/absoft.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/arm.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/compaq.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/environment.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/fujitsu.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/g95.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/gnu.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/hpux.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/ibm.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/intel.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/lahey.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/mips.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/nag.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/none.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/nv.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/pathf95.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/pg.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/sun.cpython-311.pyc,, +numpy/distutils/fcompiler/__pycache__/vast.cpython-311.pyc,, +numpy/distutils/fcompiler/absoft.py,sha256=wnqLEZh6W688rcU4VTK--vvHFiA1eTJGncvRehgW-48,5568 +numpy/distutils/fcompiler/arm.py,sha256=MCri346qo1bYwjlm32xHRyRl-bAINTlfVIubN6HDz68,2090 +numpy/distutils/fcompiler/compaq.py,sha256=sjU2GKHJGuChtRb_MhnouMqvkIOQflmowFE6ErCWZhE,3903 +numpy/distutils/fcompiler/environment.py,sha256=DOD2FtKDk6O9k6U0h9UKWQ-65wU8z1tSPn3gUlRwCso,3080 +numpy/distutils/fcompiler/fujitsu.py,sha256=yK3wdHoF5qq25UcnIM6FzTXsJGJxdfKa_f__t04Ne7M,1333 +numpy/distutils/fcompiler/g95.py,sha256=FH4uww6re50OUT_BfdoWSLCDUqk8LvmQ2_j5RhF5nLQ,1330 +numpy/distutils/fcompiler/gnu.py,sha256=cfweRQRdP-sAdMhS9Ebhk5GE5c6fE-mpvGN20g-j5AQ,20472 +numpy/distutils/fcompiler/hpux.py,sha256=gloUjWGo7MgJmukorDq7ZxDnnUKXx-C6AQfryQshVM4,1353 +numpy/distutils/fcompiler/ibm.py,sha256=Ts2PXg2ocrXtX9eguvcHeQ4JB2ktpd5isXtRTpU9F5Y,3534 +numpy/distutils/fcompiler/intel.py,sha256=XYF0GLVhJWjS8noEx4TJ704Eqt-JGBolRZEOkwgNItE,6570 +numpy/distutils/fcompiler/lahey.py,sha256=U63KMfN8zDAd_jnvMkS2N-dvP4UiSRB9Ces290qLNXw,1327 +numpy/distutils/fcompiler/mips.py,sha256=LAwT0DY5yqlYh20hNMYR1-OKu8A9GNw-TbUfI8pvglM,1714 +numpy/distutils/fcompiler/nag.py,sha256=9pQCMUlwjRVHGKwZxvwd4bW5p-9v7VXcflELEImHg1g,2777 +numpy/distutils/fcompiler/none.py,sha256=6RX2X-mV1HuhJZnVfQmDmLVhIUWseIT4P5wf3rdLq9Y,758 +numpy/distutils/fcompiler/nv.py,sha256=NfU4vbXVBiV5FUG69NQciO61T-dFPB6N0Zd0zD8d4eY,1541 +numpy/distutils/fcompiler/pathf95.py,sha256=MiHVar6-beUEYVEpqXORIX4f8G29I47D36kreltdfoQ,1061 +numpy/distutils/fcompiler/pg.py,sha256=NOB1stzrjvQMZS7bIPTgWTcAFe3cjNveA5-SztUZqD0,3568 +numpy/distutils/fcompiler/sun.py,sha256=mfS3RTj9uYT6K9Ikp8RjmsEPIWAtUTzMhX9sGjEyF6I,1577 +numpy/distutils/fcompiler/vast.py,sha256=Xuxa4sNraUPcQmt45SogAfN0kDHFb6C73uNZNmX3RBE,1667 +numpy/distutils/from_template.py,sha256=hpoFQortsLZdMSr_fJILzXzrIwFlZoFjsDSo6jNtvWs,7913 +numpy/distutils/fujitsuccompiler.py,sha256=JDuUUE-GyPahkNnDZLWNHyAmJ2lJPCnLuIUFfHkjMzA,834 +numpy/distutils/intelccompiler.py,sha256=oBZ6MKmPP-RS-UrDvsxy7PAYgxE3pRykcZfrCpoDoas,4022 +numpy/distutils/lib2def.py,sha256=-3rDf9FXsDik3-Qpp-A6N_cYZKTlmVjVi4Jzyo-pSlY,3630 +numpy/distutils/line_endings.py,sha256=a8ZZECrPRffsbs0UygeR47_fOUlZppnx-QPssrIXtB0,2032 +numpy/distutils/log.py,sha256=m8caNBwPhIG7YTnD9iq9jjc6_yJOeU9FHuau2CSulds,2879 +numpy/distutils/mingw/gfortran_vs2003_hack.c,sha256=cbsN3Lk9Hkwzr9c-yOP2xEBg1_ml1X7nwAMDWxGjzc8,77 +numpy/distutils/mingw32ccompiler.py,sha256=juNt5VdgvbrZqsBJSyefaiKSYKzMaAsxFnRdVg6cIt8,22992 +numpy/distutils/misc_util.py,sha256=pu-AikNhpbmHmGvq5uhcHAdRegvc0jrY5O8JI1M_xj8,89239 +numpy/distutils/msvc9compiler.py,sha256=FCtP7g34AVuMIaqQlH8AV1ZBdIUXbk5G7eBeeTSr1zE,2192 +numpy/distutils/msvccompiler.py,sha256=ILookUifVJF9tAtPJoVCqZ673m5od6MVKuAHuA3Rcfk,2647 +numpy/distutils/npy_pkg_config.py,sha256=LWpcvPQ4ZuGmKO0lrqQHZHAhBe87gTT1Rf6vX0NtZQM,13018 +numpy/distutils/numpy_distribution.py,sha256=10Urolg1aDAG0EHYfcvObzOgqRV0ARh2GhDklEg4vS0,634 +numpy/distutils/pathccompiler.py,sha256=KnJEA5H4cXg7SLrMjwWtidD24VSvOdu72d17votiY9E,713 +numpy/distutils/system_info.py,sha256=8-Z9iZERzZlkYkyw5YmjaETbR1BhQ8L-NktJCBPZzSw,113882 +numpy/distutils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/distutils/tests/__pycache__/__init__.cpython-311.pyc,, +numpy/distutils/tests/__pycache__/test_build_ext.cpython-311.pyc,, +numpy/distutils/tests/__pycache__/test_ccompiler_opt.cpython-311.pyc,, +numpy/distutils/tests/__pycache__/test_ccompiler_opt_conf.cpython-311.pyc,, +numpy/distutils/tests/__pycache__/test_exec_command.cpython-311.pyc,, +numpy/distutils/tests/__pycache__/test_fcompiler.cpython-311.pyc,, +numpy/distutils/tests/__pycache__/test_fcompiler_gnu.cpython-311.pyc,, +numpy/distutils/tests/__pycache__/test_fcompiler_intel.cpython-311.pyc,, +numpy/distutils/tests/__pycache__/test_fcompiler_nagfor.cpython-311.pyc,, +numpy/distutils/tests/__pycache__/test_from_template.cpython-311.pyc,, +numpy/distutils/tests/__pycache__/test_log.cpython-311.pyc,, +numpy/distutils/tests/__pycache__/test_mingw32ccompiler.cpython-311.pyc,, +numpy/distutils/tests/__pycache__/test_misc_util.cpython-311.pyc,, +numpy/distutils/tests/__pycache__/test_npy_pkg_config.cpython-311.pyc,, +numpy/distutils/tests/__pycache__/test_shell_utils.cpython-311.pyc,, +numpy/distutils/tests/__pycache__/test_system_info.cpython-311.pyc,, +numpy/distutils/tests/__pycache__/utilities.cpython-311.pyc,, +numpy/distutils/tests/test_build_ext.py,sha256=kaKh51tQSetUr4ozxICwUUjOasSXHrg1MCzJAVDNbWY,2779 +numpy/distutils/tests/test_ccompiler_opt.py,sha256=N3pN-9gxPY1KvvMEjoXr7kLxTGN8aQOr8qo5gmlrm90,28778 +numpy/distutils/tests/test_ccompiler_opt_conf.py,sha256=maXytv39amuojbQIieIGIXMV4Cv-s0fsPMZeFEh9XyY,6347 +numpy/distutils/tests/test_exec_command.py,sha256=BK-hHfIIrkCep-jNmS5_Cwq5oESvsvX3V_0XDAkT1Ok,7395 +numpy/distutils/tests/test_fcompiler.py,sha256=mJXezTXDUbduhCwVGAfABHpEARWhnj8hLW9EOU3rn84,1277 +numpy/distutils/tests/test_fcompiler_gnu.py,sha256=nmfaFCVzbViIOQ2-MjgXt-bN8Uj674hCgiwr5Iol-_U,2136 +numpy/distutils/tests/test_fcompiler_intel.py,sha256=mxkfFD2rNfg8nn1pp_413S0uCdYXydPWBcz9ilgGkA0,1058 +numpy/distutils/tests/test_fcompiler_nagfor.py,sha256=CKEjik7YVfSJGL4abuctkmlkIUhAhv-x2aUcXiTR9b0,1102 +numpy/distutils/tests/test_from_template.py,sha256=SDYoe0XUpAayyEQDq7ZhrvEEz7U9upJDLYzhcdoVifc,1103 +numpy/distutils/tests/test_log.py,sha256=0tSM4q-00CjbMIRb9QOJzI4A7GHUiRGOG1SOOLz8dnM,868 +numpy/distutils/tests/test_mingw32ccompiler.py,sha256=gOEdQ_LCb7pcDqh3by-OxFHAo_i4aacO6F-F0ehWwvI,1908 +numpy/distutils/tests/test_misc_util.py,sha256=xjNaYJ4Ev5YjokxM8J_T2z2oGTzUSs-wCh9ZqO9RNmg,3364 +numpy/distutils/tests/test_npy_pkg_config.py,sha256=apGrmViPcXoPCEOgDthJgL13C9N0qQMs392QjZDxJd4,2557 +numpy/distutils/tests/test_shell_utils.py,sha256=UKU_t5oIa_kVMv89Ys9KN6Z_Fy5beqPDUsDAWPmcoR8,2114 +numpy/distutils/tests/test_system_info.py,sha256=baZ3Hts0JeyURsdZp0ot_j-lI9FZkG4D5aYeh9EIvWk,11383 +numpy/distutils/tests/utilities.py,sha256=pyfnVJJ7ZprjC2EETB6iFHYMkQeKsZbq1jVQR3cIrws,2287 +numpy/distutils/unixccompiler.py,sha256=fN4-LH6JJp44SLE7JkdG2kKQlK4LC8zuUpVC-RtmJ-U,5426 +numpy/doc/__pycache__/ufuncs.cpython-311.pyc,, +numpy/doc/ufuncs.py,sha256=9xt8H34GhrXrFq9cWFUGvJFePa9YuH9Tq1DzAnm2E2E,5414 +numpy/dtypes.py,sha256=zuPwgC0ijF2oDRAOJ6I9JKhaJuhXFAygByLQaoVtT54,1312 +numpy/dtypes.pyi,sha256=sNN4kzUfhArHuKaMRKofBNZ57trl35UaZ51oDWrMmJ4,15544 +numpy/exceptions.py,sha256=x1z7C2RjrDFW8tLewbZjyMiQok0WBm5kKuRPIxVLUjg,7800 +numpy/exceptions.pyi,sha256=KBZlZTYUZmMhal-TMR9n7GwKfIdi3P4yy8y9uW12VDk,791 +numpy/f2py/__init__.py,sha256=cAgUHWgJQZZsfv8co8KBNr_m8B6fpzdBaUNvJeBf_No,2448 +numpy/f2py/__init__.pyi,sha256=UbgqGZKYnDHGHX9MlwBB3aBZ2T470ojrNREIhkwt6gc,132 +numpy/f2py/__main__.py,sha256=6i2jVH2fPriV1aocTY_dUFvWK18qa-zjpnISA-OpF3w,130 +numpy/f2py/__pycache__/__init__.cpython-311.pyc,, +numpy/f2py/__pycache__/__main__.cpython-311.pyc,, +numpy/f2py/__pycache__/__version__.cpython-311.pyc,, +numpy/f2py/__pycache__/_isocbind.cpython-311.pyc,, +numpy/f2py/__pycache__/_src_pyf.cpython-311.pyc,, +numpy/f2py/__pycache__/auxfuncs.cpython-311.pyc,, +numpy/f2py/__pycache__/capi_maps.cpython-311.pyc,, +numpy/f2py/__pycache__/cb_rules.cpython-311.pyc,, +numpy/f2py/__pycache__/cfuncs.cpython-311.pyc,, +numpy/f2py/__pycache__/common_rules.cpython-311.pyc,, +numpy/f2py/__pycache__/crackfortran.cpython-311.pyc,, +numpy/f2py/__pycache__/diagnose.cpython-311.pyc,, +numpy/f2py/__pycache__/f2py2e.cpython-311.pyc,, +numpy/f2py/__pycache__/f90mod_rules.cpython-311.pyc,, +numpy/f2py/__pycache__/func2subr.cpython-311.pyc,, +numpy/f2py/__pycache__/rules.cpython-311.pyc,, +numpy/f2py/__pycache__/symbolic.cpython-311.pyc,, +numpy/f2py/__pycache__/use_rules.cpython-311.pyc,, +numpy/f2py/__version__.py,sha256=99S6mSevuhwGmO9ku--7VUJekhN0ot4-J0cZKiHcqpw,48 +numpy/f2py/__version__.pyi,sha256=L4V6f6B-wuPi82B0MzeQsgN0NuHUQs9rKYl1jy3tG7s,45 +numpy/f2py/_backends/__init__.py,sha256=7_bA7c_xDpLc4_8vPfH32-Lxn9fcUTgjQ25srdvwvAM,299 +numpy/f2py/_backends/__init__.pyi,sha256=i4XhDRwbrl0ta6QGJPxhYGfSgugNGdtoWf1_27eSd60,136 +numpy/f2py/_backends/__pycache__/__init__.cpython-311.pyc,, +numpy/f2py/_backends/__pycache__/_backend.cpython-311.pyc,, +numpy/f2py/_backends/__pycache__/_distutils.cpython-311.pyc,, +numpy/f2py/_backends/__pycache__/_meson.cpython-311.pyc,, +numpy/f2py/_backends/_backend.py,sha256=oFXZ8-VwcQSbltl8_pgWLPqCOZ8Y_px7oeTk_BlxJTc,1151 +numpy/f2py/_backends/_backend.pyi,sha256=sU4YiHvGfMkzDFbhZqqQPT-kwJZsWpGemkLxDion7ss,1342 +numpy/f2py/_backends/_distutils.py,sha256=hET0WB4qy-D4BznekGAWhk945k5weq2lGUDR6hriXMo,2385 +numpy/f2py/_backends/_distutils.pyi,sha256=-L8K1KQShPGGd1vgr4DlnYf6AshHFaRzAcgGqKv205g,463 +numpy/f2py/_backends/_meson.py,sha256=VouUQkWRUk74WhDtkf6HR79QoK-Wrx8E7qO7gVpyDnk,8107 +numpy/f2py/_backends/_meson.pyi,sha256=wvYtBdippKeiSeLzaYKehql0_3ThS8T8Aqat03hhjQ4,1869 +numpy/f2py/_backends/meson.build.template,sha256=hQeTapAY0xtni5Li-QaEtWx9DH9WDKah2lcEuSZfLLo,1599 +numpy/f2py/_isocbind.py,sha256=zaBgpfPNRmxVG3doUIlbZIiyB990MsXiwDabrSj9HnQ,2360 +numpy/f2py/_isocbind.pyi,sha256=KuzqHJQk0YSQnRnb8xqnyh8T0DGNnDD6bNI880tadCY,339 +numpy/f2py/_src_pyf.py,sha256=PHpo9D28Kq3q_3-KFX8D3sFD9eX8A1c3LuLNzXzByOw,7695 +numpy/f2py/_src_pyf.pyi,sha256=9NKnovhbLibbQkjCrRnyiTPDw3MBqycOHl1--BNrIqw,1012 +numpy/f2py/auxfuncs.py,sha256=dnaUwrdAv4-LbEiHNbS1vrjQNCO0lBuyWkj3Rt_UizE,26920 +numpy/f2py/auxfuncs.pyi,sha256=7RUoWWaHrqSYEmdNd5zCNnmbjUYE5pCe0FCxMXejbhg,8011 +numpy/f2py/capi_maps.py,sha256=7C-NndI2UbStNGXbhgbWOmr9tLAxfQvw1zf7Z7w5SFk,30079 +numpy/f2py/capi_maps.pyi,sha256=pR0pVZhUxaCpctq7FOWFSAGI_gaLdE-NWAyT96cWWZg,1066 +numpy/f2py/cb_rules.py,sha256=6KbPu9yfJ-7pAa24Ij9H34Ll15Qc8CXTqCFiUJI6R8Y,25051 +numpy/f2py/cb_rules.pyi,sha256=X_it8-Q0188EDlXd-QxhRdc3OUoA2t6V_jgM5TiQC88,495 +numpy/f2py/cfuncs.py,sha256=4J4P12oGpyWZHb1AVKAl7YJ3QUgngwGMCnB1IhrJn7U,52660 +numpy/f2py/cfuncs.pyi,sha256=EiAtSQxw4x-UlxsGKIEOJnld1d7dNYrk0bt_rlqLSp0,802 +numpy/f2py/common_rules.py,sha256=_9yzIolJMGgpd3D94LdBsODnfUskMRgt2v03rECIHJQ,5030 +numpy/f2py/common_rules.pyi,sha256=1uzTkcwiin6dVBbWUiOVB1ZppjKBHoRHG_Byvw-1UbI,323 +numpy/f2py/crackfortran.py,sha256=vbAvWj6XszLS-nU0nOedaNNtwtqvkkM8gqZAP9MvPBI,146879 +numpy/f2py/crackfortran.pyi,sha256=AvV_KPeE9jLG9EdmPdb2u7-gPJXc1H2yWVmmihHzCgM,10276 +numpy/f2py/diagnose.py,sha256=YWNj1vM68e47Lb270wlZk5yrcU-yTlzGaYNPBZ7nTAU,5075 +numpy/f2py/diagnose.pyi,sha256=ZFVCWTwf_xzL736p9FcfCYWftOXcNqSMCmq-K27KNN8,23 +numpy/f2py/f2py2e.py,sha256=krSW4RpZPDHNX2IWLdn28KWzj0lzFNSc_6fScbGQMfI,28763 +numpy/f2py/f2py2e.pyi,sha256=Qt6ZeOYBugJLFpAY3F9K_4hcm0sZt_3APTtdKLKObWA,2153 +numpy/f2py/f90mod_rules.py,sha256=7Z5vorU4whX405xML66hr4i1icCUc9gr6an4R-AMh7M,9810 +numpy/f2py/f90mod_rules.pyi,sha256=r6w0DuH2Jdt8wPdDYAnXZAQmytIYUqPOxVz-QaWwt74,451 +numpy/f2py/func2subr.py,sha256=9igCMMDttIgF1MG6kBOagkjI_SF-UlGjACAj3Ncv0-o,10049 +numpy/f2py/func2subr.pyi,sha256=-MDbOrhanuizf3rlcwBQooCF4GnoGprA8ypeFV_m8d0,386 +numpy/f2py/rules.py,sha256=Irj-13oLGowNHYElFV-TZUs0VEd0NQpRsnomnI1NTx8,63091 +numpy/f2py/rules.pyi,sha256=9GfFmNA8Unlg3pxcGwqwFl7yeKyIcTmx7wiPuiBAT-k,1326 +numpy/f2py/setup.cfg,sha256=Fpn4sjqTl5OT5sp8haqKIRnUcTPZNM6MIvUJBU7BIhg,48 +numpy/f2py/src/fortranobject.c,sha256=kLiHOty8fUruzfOmL5MQeVNFJSGHBjn7W6QbPYgQb30,46356 +numpy/f2py/src/fortranobject.h,sha256=7cfRN_tToAQ1Na13VQ2Kzb2ujMHUAgGsbScnfLVOHqs,5823 +numpy/f2py/symbolic.py,sha256=UuFs411WYSqR7JfbsuyNv__IC9wKqxQAWoWRDeKPcdw,53214 +numpy/f2py/symbolic.pyi,sha256=piZrats8SXrOD1qEADo-mbsc5NZOIaZ27Fl3d3cydTc,6083 +numpy/f2py/tests/__init__.py,sha256=pdPbCTRwpCJamlyvIi9HZTlqAvK5HPbGu3oMA0cu2Rs,329 +numpy/f2py/tests/__pycache__/__init__.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_abstract_interface.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_array_from_pyobj.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_assumed_shape.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_block_docstring.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_callback.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_character.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_common.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_crackfortran.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_data.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_docs.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_f2cmap.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_f2py2e.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_isoc.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_kind.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_mixed.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_modules.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_parameter.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_pyf_src.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_quoted_character.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_regression.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_return_character.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_return_complex.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_return_integer.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_return_logical.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_return_real.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_routines.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_semicolon_split.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_size.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_string.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_symbolic.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/test_value_attrspec.cpython-311.pyc,, +numpy/f2py/tests/__pycache__/util.cpython-311.pyc,, +numpy/f2py/tests/src/abstract_interface/foo.f90,sha256=JFU2w98cB_XNwfrqNtI0yDTmpEdxYO_UEl2pgI_rnt8,658 +numpy/f2py/tests/src/abstract_interface/gh18403_mod.f90,sha256=gvQJIzNtvacWE0dhysxn30-iUeI65Hpq7DiE9oRauz8,105 +numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c,sha256=s6XLwujiCr6Xi8yBkvLPBXRmo2WsGVohU7K9ALnKUng,7478 +numpy/f2py/tests/src/assumed_shape/.f2py_f2cmap,sha256=But9r9m4iL7EGq_haMW8IiQ4VivH0TgUozxX4pPvdpE,29 +numpy/f2py/tests/src/assumed_shape/foo_free.f90,sha256=oBwbGSlbr9MkFyhVO2aldjc01dr9GHrMrSiRQek8U64,460 +numpy/f2py/tests/src/assumed_shape/foo_mod.f90,sha256=rfzw3QdI-eaDSl-hslCgGpd5tHftJOVhXvb21Y9Gf6M,499 +numpy/f2py/tests/src/assumed_shape/foo_use.f90,sha256=rmT9k4jP9Ru1PLcGqepw9Jc6P9XNXM0axY7o4hi9lUw,269 +numpy/f2py/tests/src/assumed_shape/precision.f90,sha256=r08JeTVmTTExA-hYZ6HzaxVwBn1GMbPAuuwBhBDtJUk,130 +numpy/f2py/tests/src/block_docstring/foo.f,sha256=y7lPCPu7_Fhs_Tf2hfdpDQo1bhtvNSKRaZAOpM_l3dg,97 +numpy/f2py/tests/src/callback/foo.f,sha256=C1hjfpRCQWiOVVzIHqnsYcnLrqQcixrnHCn8hd9GhVk,1254 +numpy/f2py/tests/src/callback/gh17797.f90,sha256=_Nrl0a2HgUbtymGU0twaJ--7rMa1Uco2A3swbWvHoMo,148 +numpy/f2py/tests/src/callback/gh18335.f90,sha256=NraOyKIXyvv_Y-3xGnmTjtNjW2Znsnlk8AViI8zfovc,506 +numpy/f2py/tests/src/callback/gh25211.f,sha256=a2sxlQhtDVbYn8KOKHUYqwc-aCFt7sDPSnJsXFG35uI,179 +numpy/f2py/tests/src/callback/gh25211.pyf,sha256=FWxo0JWQlw519BpZV8PoYeI_FZ_K6C-3Wk6gLrfBPlw,447 +numpy/f2py/tests/src/callback/gh26681.f90,sha256=-cD69x7omk5wvVsfMHlXiZ-pTcaxs2Bl5G9GHA4UJ2M,566 +numpy/f2py/tests/src/cli/gh_22819.pyf,sha256=5rvOfCv-wSosB354LC9pExJmMoSHnbGZGl_rtA2fogA,142 +numpy/f2py/tests/src/cli/hi77.f,sha256=ttyI6vAP3qLnDqy82V04XmoqrXNM6uhMvvLri2p0dq0,71 +numpy/f2py/tests/src/cli/hiworld.f90,sha256=QWOLPrTxYQu1yrEtyQMbM0fE9M2RmXe7c185KnD5x3o,51 +numpy/f2py/tests/src/common/block.f,sha256=GQ0Pd-VMX3H3a-__f2SuosSdwNXHpBqoGnQDjf8aG9g,224 +numpy/f2py/tests/src/common/gh19161.f90,sha256=BUejyhqpNVfHZHQ-QC7o7ZSo7lQ6YHyX08lSmQqs6YM,193 +numpy/f2py/tests/src/crackfortran/accesstype.f90,sha256=-5Din7YlY1TU7tUHD2p-_DSTxGBpDsWYNeT9WOwGhno,208 +numpy/f2py/tests/src/crackfortran/common_with_division.f,sha256=2LfRa26JEB07_ti-WDmIveq991PxRlL_K6ss28rZDkk,494 +numpy/f2py/tests/src/crackfortran/data_common.f,sha256=ZSUAh3uhn9CCF-cYqK5TNmosBGPfsuHBIEfudgysun4,193 +numpy/f2py/tests/src/crackfortran/data_multiplier.f,sha256=jYrJKZWF_59JF9EMOSALUjn0UupWvp1teuGpcL5s1Sc,197 +numpy/f2py/tests/src/crackfortran/data_stmts.f90,sha256=19YO7OGj0IksyBlmMLZGRBQLjoE3erfkR4tFvhznvvE,693 +numpy/f2py/tests/src/crackfortran/data_with_comments.f,sha256=hoyXw330VHh8duMVmAQZjr1lgLVF4zFCIuEaUIrupv0,175 +numpy/f2py/tests/src/crackfortran/foo_deps.f90,sha256=CaH7mnWTG7FcnJe2vXN_0zDbMadw6NCqK-JJ2HmDjK8,128 +numpy/f2py/tests/src/crackfortran/gh15035.f,sha256=jJly1AzF5L9VxbVQ0vr-sf4LaUo4eQzJguhuemFxnvg,375 +numpy/f2py/tests/src/crackfortran/gh17859.f,sha256=7K5dtOXGuBDAENPNCt-tAGJqTfNKz5OsqVSk16_e7Es,340 +numpy/f2py/tests/src/crackfortran/gh22648.pyf,sha256=qZHPRNQljIeYNwbqPLxREnOrSdVV14f3fnaHqB1M7c0,241 +numpy/f2py/tests/src/crackfortran/gh23533.f,sha256=w3tr_KcY3s7oSWGDmjfMHv5h0RYVGUpyXquNdNFOJQg,126 +numpy/f2py/tests/src/crackfortran/gh23598.f90,sha256=41W6Ire-5wjJTTg6oAo7O1WZfd1Ug9vvNtNgHS5MhEU,101 +numpy/f2py/tests/src/crackfortran/gh23598Warn.f90,sha256=1v-hMCT_K7prhhamoM20nMU9zILam84Hr-imck_dYYk,205 +numpy/f2py/tests/src/crackfortran/gh23879.f90,sha256=LWDJTYR3t9h1IsrKC8dVXZlBfWX7clLeU006X6Ow8oI,332 +numpy/f2py/tests/src/crackfortran/gh27697.f90,sha256=bbnKpDsOuCWluoNodxzCspUQnu169zKTsn4fLTkhwpM,364 +numpy/f2py/tests/src/crackfortran/gh2848.f90,sha256=gPNasx98SIf7Z9ibk_DHiGKCvl7ERtsfoGXiFDT7FbM,282 +numpy/f2py/tests/src/crackfortran/operators.f90,sha256=-Fc-qjW1wBr3Dkvdd5dMTrt0hnjnV-1AYo-NFWcwFSo,1184 +numpy/f2py/tests/src/crackfortran/privatemod.f90,sha256=7bubZGMIn7iD31wDkjF1TlXCUM7naCIK69M9d0e3y-U,174 +numpy/f2py/tests/src/crackfortran/publicmod.f90,sha256=Pnwyf56Qd6W3FUH-ZMgnXEYkb7gn18ptNTdwmGan0Jo,167 +numpy/f2py/tests/src/crackfortran/pubprivmod.f90,sha256=eYpJwBYLKGOxVbKgEqfny1znib-b7uYhxcRXIf7uwXg,165 +numpy/f2py/tests/src/crackfortran/unicode_comment.f90,sha256=aINLh6GlfTwFewxvDoqnMqwuCNb4XAqi5Nj5vXguXYs,98 +numpy/f2py/tests/src/f2cmap/.f2py_f2cmap,sha256=iUOtfHd3OuT1Rz2-yiSgt4uPKGvCt5AzQ1iygJt_yjg,82 +numpy/f2py/tests/src/f2cmap/isoFortranEnvMap.f90,sha256=iJCD8a8MUTmuPuedbcmxW54Nr4alYuLhksBe1sHS4K0,298 +numpy/f2py/tests/src/isocintrin/isoCtests.f90,sha256=jcw-fzrFh0w5U66uJYfeUW4gv94L5MnWQ_NpsV9y0oI,998 +numpy/f2py/tests/src/kind/foo.f90,sha256=zIHpw1KdkWbTzbXb73hPbCg4N2Htj3XL8DIwM7seXpo,347 +numpy/f2py/tests/src/mixed/foo.f,sha256=90zmbSHloY1XQYcPb8B5d9bv9mCZx8Z8AMTtgDwJDz8,85 +numpy/f2py/tests/src/mixed/foo_fixed.f90,sha256=pxKuPzxF3Kn5khyFq9ayCsQiolxB3SaNtcWaK5j6Rv4,179 +numpy/f2py/tests/src/mixed/foo_free.f90,sha256=fIQ71wrBc00JUAVUj_r3QF9SdeNniBiMw6Ly7CGgPWU,139 +numpy/f2py/tests/src/modules/gh25337/data.f90,sha256=9Uz8CHB9i3_mjC3cTOmkTgPAF5tWSwYacG3MUrU-SY0,180 +numpy/f2py/tests/src/modules/gh25337/use_data.f90,sha256=WATiDGAoCKnGgMzm_iMgmfVU0UKOQlk5Fm0iXCmPAkE,179 +numpy/f2py/tests/src/modules/gh26920/two_mods_with_no_public_entities.f90,sha256=c7VU4SbK3yWn-6wksP3tDx_Hxh5u_g8UnlDpjU_-tBg,402 +numpy/f2py/tests/src/modules/gh26920/two_mods_with_one_public_routine.f90,sha256=eEU7RgFPh-TnNXEuJFdtJmTF-wPnpbHLQhG4fEeJnag,403 +numpy/f2py/tests/src/modules/module_data_docstring.f90,sha256=tDZ3fUlazLL8ThJm3VwNGJ75QIlLcW70NnMFv-JA4W0,224 +numpy/f2py/tests/src/modules/use_modules.f90,sha256=UsFfx0B2gu_tS-H-BpLWed_yoMDl1kbydMIOz8fvXWA,398 +numpy/f2py/tests/src/negative_bounds/issue_20853.f90,sha256=fdOPhRi7ipygwYCXcda7p_dlrws5Hd2GlpF9EZ-qnck,157 +numpy/f2py/tests/src/parameter/constant_array.f90,sha256=KRg7Gmq_r3B7t3IEgRkP1FT8ve8AuUFWT0WcTlXoN5U,1468 +numpy/f2py/tests/src/parameter/constant_both.f90,sha256=-bBf2eqHb-uFxgo6Q7iAtVUUQzrGFqzhHDNaxwSICfQ,1939 +numpy/f2py/tests/src/parameter/constant_compound.f90,sha256=re7pfzcuaquiOia53UT7qNNrTYu2euGKOF4IhoLmT6g,469 +numpy/f2py/tests/src/parameter/constant_integer.f90,sha256=nEmMLitKoSAG7gBBEQLWumogN-KS3DBZOAZJWcSDnFw,612 +numpy/f2py/tests/src/parameter/constant_non_compound.f90,sha256=IcxESVLKJUZ1k9uYKoSb8Hfm9-O_4rVnlkiUU2diy8Q,609 +numpy/f2py/tests/src/parameter/constant_real.f90,sha256=quNbDsM1Ts2rN4WtPO67S9Xi_8l2cXabWRO00CPQSSQ,610 +numpy/f2py/tests/src/quoted_character/foo.f,sha256=WjC9D9171fe2f7rkUAZUvik9bkIf9adByfRGzh6V0cM,482 +numpy/f2py/tests/src/regression/AB.inc,sha256=cSNxitwrjTKMiJzhY2AI5FaXJ5y9zDgA27x79jyoI6s,16 +numpy/f2py/tests/src/regression/assignOnlyModule.f90,sha256=c9RvUP1pQ201O_zOXgV0xp_aJF_8llxuA8Uot9z5tr0,608 +numpy/f2py/tests/src/regression/datonly.f90,sha256=9cVvl8zlAuGiqbSHMFzFn6aNWXj2v7sHJdd9A1Oc0qg,392 +numpy/f2py/tests/src/regression/f77comments.f,sha256=bqTsmO8WuSLVFsViIV7Nj7wQbJoZ7IAA3d2tpRDKsnA,626 +numpy/f2py/tests/src/regression/f77fixedform.f95,sha256=hcLZbdozMJ3V9pByVRp3RoeUvZgLMRLFctpZvxK2hTI,139 +numpy/f2py/tests/src/regression/f90continuation.f90,sha256=_W1fj0wXLqT91Q14qpBnM3F7rJKaiSR8upe0mR6_OIE,276 +numpy/f2py/tests/src/regression/incfile.f90,sha256=i7Y1zgMXR9bSxnjeYWSDGeCfsS5jiyn7BLb-wbwjz2U,92 +numpy/f2py/tests/src/regression/inout.f90,sha256=CpHpgMrf0bqA1W3Ozo3vInDz0RP904S7LkpdAH6ODck,277 +numpy/f2py/tests/src/regression/lower_f2py_fortran.f90,sha256=CMQL5RWf9LKnnUDiS-IYa9xc9DGanCYraNq0vGmunOE,100 +numpy/f2py/tests/src/regression/mod_derived_types.f90,sha256=565plqPwWDgnkpSb4-cfZbf3wTM85F2Gocklx5wpGWA,567 +numpy/f2py/tests/src/return_character/foo77.f,sha256=WzDNF3d_hUDSSZjtxd3DtE-bSx1ilOMEviGyYHbcFgM,980 +numpy/f2py/tests/src/return_character/foo90.f90,sha256=ULcETDEt7gXHRzmsMhPsGG4o3lGrcx-FEFaJsPGFKyA,1248 +numpy/f2py/tests/src/return_complex/foo77.f,sha256=8ECRJkfX82oFvGWKbIrCvKjf5QQQClx4sSEvsbkB6A8,973 +numpy/f2py/tests/src/return_complex/foo90.f90,sha256=c1BnrtWwL2dkrTr7wvlEqNDg59SeNMo3gyJuGdRwcDw,1238 +numpy/f2py/tests/src/return_integer/foo77.f,sha256=_8k1evlzBwvgZ047ofpdcbwKdF8Bm3eQ7VYl2Y8b5kA,1178 +numpy/f2py/tests/src/return_integer/foo90.f90,sha256=bzxbYtofivGRYH35Ang9ScnbNsVERN8-6ub5-eI-LGQ,1531 +numpy/f2py/tests/src/return_logical/foo77.f,sha256=FxiF_X0HkyXHzJM2rLyTubZJu4JB-ObLnVqfZwAQFl8,1188 +numpy/f2py/tests/src/return_logical/foo90.f90,sha256=9KmCe7yJYpi4ftkKOM3BCDnPOdBPTbUNrKxY3p37O14,1531 +numpy/f2py/tests/src/return_real/foo77.f,sha256=ZTrzb6oDrIDPlrVWP3Bmtkbz3ffHaaSQoXkfTGtCuFE,933 +numpy/f2py/tests/src/return_real/foo90.f90,sha256=gZuH5lj2lG6gqHlH766KQ3J4-Ero-G4WpOOo2MG3ohU,1194 +numpy/f2py/tests/src/routines/funcfortranname.f,sha256=oGPnHo0zL7kjFnuHw41mWUSXauoeRVPXnYXBb2qljio,123 +numpy/f2py/tests/src/routines/funcfortranname.pyf,sha256=coD8AdLyPK4_cGvQJgE2WJW_jH8EAulZCsMeb-Q1gOk,440 +numpy/f2py/tests/src/routines/subrout.f,sha256=RTexoH7RApv_mhu-RcVwyNiU-DXMTUP8LJAMSn2wQjk,90 +numpy/f2py/tests/src/routines/subrout.pyf,sha256=c9qv4XtIh4wA9avdkDJuXNwojK-VBPldrNhxlh446Ic,322 +numpy/f2py/tests/src/size/foo.f90,sha256=IlFAQazwBRr3zyT7v36-tV0-fXtB1d7WFp6S1JVMstg,815 +numpy/f2py/tests/src/string/char.f90,sha256=ihr_BH9lY7eXcQpHHDQhFoKcbu7VMOX5QP2Tlr7xlaM,618 +numpy/f2py/tests/src/string/fixed_string.f90,sha256=5n6IkuASFKgYICXY9foCVoqndfAY0AQZFEK8L8ARBGM,695 +numpy/f2py/tests/src/string/gh24008.f,sha256=UA8Pr-_yplfOFmc6m4v9ryFQ8W9OulaglulefkFWD68,217 +numpy/f2py/tests/src/string/gh24662.f90,sha256=-Tp9Kd1avvM7AIr8ZukFA9RVr-wusziAnE8AvG9QQI4,197 +numpy/f2py/tests/src/string/gh25286.f90,sha256=2EpxvC-0_dA58MBfGQcLyHzpZgKcMf_W9c73C_Mqnok,304 +numpy/f2py/tests/src/string/gh25286.pyf,sha256=GjgWKh1fHNdPGRiX5ek60i1XSeZsfFalydWqjISPVV8,381 +numpy/f2py/tests/src/string/gh25286_bc.pyf,sha256=6Y9zU66NfcGhTXlFOdFjCSMSwKXpq5ZfAe3FwpkAsm4,384 +numpy/f2py/tests/src/string/scalar_string.f90,sha256=ACxV2i6iPDk-a6L_Bs4jryVKYJMEGUTitEIYTjbJes4,176 +numpy/f2py/tests/src/string/string.f,sha256=shr3fLVZaa6SyUJFYIF1OZuhff8v5lCwsVNBU2B-3pk,248 +numpy/f2py/tests/src/value_attrspec/gh21665.f90,sha256=JC0FfVXsnB2lZHb-nGbySnxv_9VHAyD0mKaLDowczFU,190 +numpy/f2py/tests/test_abstract_interface.py,sha256=PXNQB0DZdmdZyysJkB8f9GY0_hA3hGkmha8aQBXc1Sk,811 +numpy/f2py/tests/test_array_from_pyobj.py,sha256=N1RJ0yFcLs6cFmdxSjizjfLRTEhdKRhrO9Vx8bcG0GU,23696 +numpy/f2py/tests/test_assumed_shape.py,sha256=8kPoQWn6IfMWNMba0al7a5XopKb3JnvZP3V3P6O2F8o,1467 +numpy/f2py/tests/test_block_docstring.py,sha256=P3K0QqnY0UfUQPc3vDrlP_WlZ6gNJ7iokG-D-ZG9tXQ,584 +numpy/f2py/tests/test_callback.py,sha256=P_5qM1xWOYfjeDgd70cIVpV1h0_tA1AP3kxRZDAeqII,7099 +numpy/f2py/tests/test_character.py,sha256=R6FhfIi85E6L1qwlJtsnTCvNgFRriE3kSXefTwIVgLk,21931 +numpy/f2py/tests/test_common.py,sha256=gr4MF659JBWvSY4eQAqgHnOrVbEpq0ZhGM5Cdbye1L4,644 +numpy/f2py/tests/test_crackfortran.py,sha256=x_E4KmEfBX5SFsNkO_-mUi4W_WuzB-ZFsLOfUdHjLVE,16413 +numpy/f2py/tests/test_data.py,sha256=tete-xcIZHZi5VFjy_pyTjr5AjhQzoyJvLsT9QLYU1M,2895 +numpy/f2py/tests/test_docs.py,sha256=wGsRmCJugExEAvj25pANoLr45S6fkpG4kf47dnfg9Ew,1855 +numpy/f2py/tests/test_f2cmap.py,sha256=zM8lksGAoH-cRvEVRkzciZ4oqH28obd-vvMVUObVjt0,387 +numpy/f2py/tests/test_f2py2e.py,sha256=aGZnZH5USd8FJpG5F1L6bWfUzuUqP954lit5-TDPbeE,27834 +numpy/f2py/tests/test_isoc.py,sha256=g5PLyJuAYwF0obaZ55j_e-CNOODJcADsYFSfxcCl5LM,1434 +numpy/f2py/tests/test_kind.py,sha256=ovQVxbtbbnb-Keo8Dh2LpDyPLbIA1uxiZOzMLo5KMX0,1825 +numpy/f2py/tests/test_mixed.py,sha256=DZcTCCle0o4aopFmGi58KtxzP6NFFci4N-pL3_HLb90,862 +numpy/f2py/tests/test_modules.py,sha256=GaOwxLf8KLdNkWIl9fveT9xg_wvCFdDsel9QiFweCAE,2301 +numpy/f2py/tests/test_parameter.py,sha256=P8hDezlxKN_Cm06oWGkS0pwlJvQz5QYwBsyTEA_Y1PQ,4634 +numpy/f2py/tests/test_pyf_src.py,sha256=xV81hRiGeytFFKeVnp-6O2OrGVdzJyecMEalCQSoDoI,1134 +numpy/f2py/tests/test_quoted_character.py,sha256=x19FhD6ZA7JkDuLuiXi48sGd8b42SPRuwwEY8CVRb24,477 +numpy/f2py/tests/test_regression.py,sha256=APQz3e38jz-AbGEBN5n-P1Wuegx4Da1ze7D7nLLpUL8,6197 +numpy/f2py/tests/test_return_character.py,sha256=t8cxO8LatnBXf2EU-HkfmdxvdHMYDk9DLx3kNUTArC4,1534 +numpy/f2py/tests/test_return_complex.py,sha256=_uWrnSh-IDL8men8X__5srP4wM0RkICr4WVJgoNgrzY,2440 +numpy/f2py/tests/test_return_integer.py,sha256=ng_cpFX4nStcpSFoYdD9GiUdCJSXPU0On2MLOA4uOpQ,1813 +numpy/f2py/tests/test_return_logical.py,sha256=OrS11uAw_asDamL7inRKf-S-7SBG0GTS8Vrqlexrkm0,2048 +numpy/f2py/tests/test_return_real.py,sha256=ynInWwkcRfUe981kGJnrkkZeKK7QFlvkiODoIJj6Jg0,3273 +numpy/f2py/tests/test_routines.py,sha256=f9pR8FNJgKuBWtzCjlfniWVHJecpW6gSNkGDb2t693c,795 +numpy/f2py/tests/test_semicolon_split.py,sha256=akc4xJiHI6xOCfpCEtFYPMz8qy2K5jODEPyJHYQvLdE,1627 +numpy/f2py/tests/test_size.py,sha256=SjES727lNcCJFePDnh7uBhncOXWOcqHqVPbZPvBO5js,1155 +numpy/f2py/tests/test_string.py,sha256=47wYPuO1NkjhXSbbyS8vBKsNCju5dA9uMjNhGPx-BGg,2938 +numpy/f2py/tests/test_symbolic.py,sha256=dmuYLhhcv-rT-ux_aVrWaJj_Yxmznezl6Enu8-ediK0,18342 +numpy/f2py/tests/test_value_attrspec.py,sha256=4wY9qPXl0JoPGCG7GyyuMDKLfsHAV8KRWGdEk9-ZZT8,330 +numpy/f2py/tests/util.py,sha256=KIDsCW5uZXe6jSdWpY9Ozlqs5-v-eeDsW3P5TDWKDzo,12112 +numpy/f2py/use_rules.py,sha256=emZhSLPbNDyBHnsfKKXDnGz4P_gwrgL0dfCZcD3n9D4,3376 +numpy/f2py/use_rules.pyi,sha256=gIAAemWfcidclVYZUpa6RRmSdUEDw4FDnGPaCNo93Zw,424 +numpy/fft/__init__.py,sha256=OWE0m6H_blyv1wtqQpiXU5kqxF6O2UxxcV5t11U05RE,8291 +numpy/fft/__init__.pyi,sha256=6XgAsd9coqJ3jBOPD3vn1-8AcbMLhjxzQd21xjeqmlA,514 +numpy/fft/__pycache__/__init__.cpython-311.pyc,, +numpy/fft/__pycache__/_helper.cpython-311.pyc,, +numpy/fft/__pycache__/_pocketfft.cpython-311.pyc,, +numpy/fft/__pycache__/helper.cpython-311.pyc,, +numpy/fft/_helper.py,sha256=hIn2ZyEYG4fLB3MGvCPvpSrLXFfh-xO4zGKljk_TQjY,6787 +numpy/fft/_helper.pyi,sha256=1A1kitc5k62ER6X1XLF7PIQL5FiVxxRKu_iCqiQ1kIU,1394 +numpy/fft/_pocketfft.py,sha256=CfpApR9R0SOucql9gp9vXadm_y5cBM-Xnj5trDpvFSE,62598 +numpy/fft/_pocketfft.pyi,sha256=_RIRwdhtixjN4qszZk-xeYn2jmcW_NNAMEJHeETigv0,3174 +numpy/fft/_pocketfft_umath.cpython-311-x86_64-linux-gnu.so,sha256=bxv3b62deLOFMuGhIdZSeZFZvb_n3V4DJpI9GuUhkyw,539072 +numpy/fft/helper.py,sha256=RoEADsOnoCgSTL1gE5n-36llz8iwxGzn52af3L-9KEY,611 +numpy/fft/helper.pyi,sha256=KsF45bVyZ4_eJbBFpkER9L8MCWmg7dJuhLqY_7uFNZs,891 +numpy/fft/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/fft/tests/__pycache__/__init__.cpython-311.pyc,, +numpy/fft/tests/__pycache__/test_helper.cpython-311.pyc,, +numpy/fft/tests/__pycache__/test_pocketfft.cpython-311.pyc,, +numpy/fft/tests/test_helper.py,sha256=LeVDCCdHzFhmCQ5ByMtVyA22GphgTQS5dupuxrLE8X0,6154 +numpy/fft/tests/test_pocketfft.py,sha256=PCF833rSWsXOMWN8wCluhq0aYHU24_tHbuMl1PuO6dE,24446 +numpy/lib/__init__.py,sha256=zYGuqEfPqq7LDbidpxYs8GgCNAmoJ4xQgFvF3XKJ5Rg,3004 +numpy/lib/__init__.pyi,sha256=Z7OsQAZGURd4cI3xnEF37unbOUqtknwEkT8yQTF-AF8,1651 +numpy/lib/__pycache__/__init__.cpython-311.pyc,, +numpy/lib/__pycache__/_array_utils_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_arraypad_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_arraysetops_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_arrayterator_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_datasource.cpython-311.pyc,, +numpy/lib/__pycache__/_format_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_function_base_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_histograms_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_index_tricks_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_iotools.cpython-311.pyc,, +numpy/lib/__pycache__/_nanfunctions_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_npyio_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_polynomial_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_scimath_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_shape_base_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_stride_tricks_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_twodim_base_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_type_check_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_ufunclike_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_user_array_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_utils_impl.cpython-311.pyc,, +numpy/lib/__pycache__/_version.cpython-311.pyc,, +numpy/lib/__pycache__/array_utils.cpython-311.pyc,, +numpy/lib/__pycache__/format.cpython-311.pyc,, +numpy/lib/__pycache__/introspect.cpython-311.pyc,, +numpy/lib/__pycache__/mixins.cpython-311.pyc,, +numpy/lib/__pycache__/npyio.cpython-311.pyc,, +numpy/lib/__pycache__/recfunctions.cpython-311.pyc,, +numpy/lib/__pycache__/scimath.cpython-311.pyc,, +numpy/lib/__pycache__/stride_tricks.cpython-311.pyc,, +numpy/lib/__pycache__/user_array.cpython-311.pyc,, +numpy/lib/_array_utils_impl.py,sha256=GYWiyNqLQ7DGUSBXz0bbR6AAqZStDIwUe7tsbZ__15M,1697 +numpy/lib/_array_utils_impl.pyi,sha256=AktSeZcFe_XUQ6utYHQyJKG8l8bhM8tQL2Kttj1DjcQ,820 +numpy/lib/_arraypad_impl.py,sha256=z5--XT80TcnDZezHVrdxauJSY3yC4vMDdd7JlO-h3zw,32296 +numpy/lib/_arraypad_impl.pyi,sha256=W98XPsguuf8B924KVVxs6l_EOBM9JKzwTmHL98CKbs0,1837 +numpy/lib/_arraysetops_impl.py,sha256=VFdgpFZJcyJhYFPcTk_LQD_SrqX6poy_shsLKvZigy0,41275 +numpy/lib/_arraysetops_impl.pyi,sha256=Yh-w9l43w6vMBLfwzIKQlxHcE6gFqOsfu5gyKpMgc_s,13403 +numpy/lib/_arrayterator_impl.py,sha256=HtOADIHuG9ADbbMTgmh4P_muke1V-8E-FNEO3bVOGPA,7218 +numpy/lib/_arrayterator_impl.pyi,sha256=8u0nb5NPpWNib-FlWaXlp6BXBPgTv5__NF30FD_1qmM,1876 +numpy/lib/_datasource.py,sha256=zk-Vbn4JlDHEVa3De6A3NgjnnizSJi-HF0ZvvA6YIo4,22731 +numpy/lib/_datasource.pyi,sha256=135RvD3p-3mHdNp_sZV4aN9brwEFvEM49VE1eHlFEfs,996 +numpy/lib/_format_impl.py,sha256=zcQ3xXxPf7epktsYrcdBbIPuOCh9OPV1g3gB6ghf4rE,36865 +numpy/lib/_format_impl.pyi,sha256=_0lEht2hKbTevv0eGChmYMBTAg-2jAfvrfU9p326VHs,869 +numpy/lib/_function_base_impl.py,sha256=AZGyN29Ecw4LRuU1TNUcPC7cVHO9ye4bJ9FQI7n_Gwc,196425 +numpy/lib/_function_base_impl.pyi,sha256=HY21gmJcUIvTsYL2UUZ8l2MYj34cp_7Mdsmck-FjeEE,24116 +numpy/lib/_histograms_impl.py,sha256=Utu7aAQc7ZpsHn_04ogUnZq1ZcdHfipcq9eRq817oVU,38432 +numpy/lib/_histograms_impl.pyi,sha256=N3aGYnQ5y2R7yumhvasZ931tnwaD76eF_RB22ebwkrU,1111 +numpy/lib/_index_tricks_impl.py,sha256=g7Np4E8AG9sgyi9HTUgvOM08pIlAj_cvXw4cc7NrU5I,32186 +numpy/lib/_index_tricks_impl.pyi,sha256=EKFYX2k61rhpDPiK-lM7eSIby8PzKEb9-JL8ngKhI80,6466 +numpy/lib/_iotools.py,sha256=0jtpvpl5L-_1ODI21F-1i19t1e3L-6wJxRd1CSLewL0,30876 +numpy/lib/_iotools.pyi,sha256=69hfBI89W2UP6ozHiSByt-GxTupni-gBRPihFbXSh6Q,3393 +numpy/lib/_nanfunctions_impl.py,sha256=cdOT7dYwjvUpI9iEHTrwzbbtKhP9ZZgOCMirTBeYPUk,71949 +numpy/lib/_nanfunctions_impl.pyi,sha256=j5dyJz_c-SQDxXrL9N2ouKC-DsP_EVDZyLedGXqCpMI,833 +numpy/lib/_npyio_impl.py,sha256=kucazwCufh4mNwECyZxEerxsqa_GxQMz1kYuZURDI8s,99277 +numpy/lib/_npyio_impl.pyi,sha256=WWlGxbobwLgEiD-k58g_Q9K1HW1vDk--AYrBSjjqALE,9388 +numpy/lib/_polynomial_impl.py,sha256=TWiqlG3WDa97tayxQCEltZD9TNhUyFprzL_Umd7Lxso,44134 +numpy/lib/_polynomial_impl.pyi,sha256=1awyY61O9YK-U3P2aVaIi_lslAZIgKzMrdbYzu2y-J8,7009 +numpy/lib/_scimath_impl.py,sha256=QAU4uM_INzVqCTs-ATEyy1JhREl_wDJn_ygU75YtfgE,15692 +numpy/lib/_scimath_impl.pyi,sha256=pXBZjHPB_FbeBfe9M3N8TjrET_oclGuafWjTHC-xjUs,2774 +numpy/lib/_shape_base_impl.py,sha256=5vkU9rPOwKvSc7TzxdfWtM08uV0m15iHPTxbqcY47Oc,39479 +numpy/lib/_shape_base_impl.pyi,sha256=36gmgbFd1cUmSUfUihFtb1brc2gKLYi8NXDAEzLyBmQ,5412 +numpy/lib/_stride_tricks_impl.py,sha256=y3Uxp3jFzDwmIQ137N2zap7-vW_jONUQmXnbfqrs60A,18025 +numpy/lib/_stride_tricks_impl.pyi,sha256=6rR7IO04w1FPCKUM920r9Kf_A_hpZbIABo6Rcl34tFI,1815 +numpy/lib/_twodim_base_impl.py,sha256=3nOLvCD6cfM6MD3o381F48GB8poqsUGDCDOQlOBQXmY,33925 +numpy/lib/_twodim_base_impl.pyi,sha256=nBRqOTSD21ioBkUw6vtzy1-ZyczJcvybkvG3-hvSIkY,11193 +numpy/lib/_type_check_impl.py,sha256=WeVfWz_0Klvb2K_6l0x4nHwHBwPYgfcxeZinV_dp_mw,19221 +numpy/lib/_type_check_impl.pyi,sha256=xpZV5LStVGHbEDAcJUbD7iZFE0onwCPZZuwb01P4o_Q,9713 +numpy/lib/_ufunclike_impl.py,sha256=0eemf_EYlLmSa4inNr3iuJ1eoTMqLyIR0n6dQymga3Y,6309 +numpy/lib/_ufunclike_impl.pyi,sha256=SJ7wbjWFI6WL_rp3CNqbZoKoza4Ou4uDwXvpt4iekys,1288 +numpy/lib/_user_array_impl.py,sha256=t3nnrFuvbBizFV1K3C9NNyIM80LU5spA88MlrYJzEok,7697 +numpy/lib/_user_array_impl.pyi,sha256=AZpI9fHHYpLxyYL9ud5YDHcZhxLl-YpfB23i9f154BQ,9110 +numpy/lib/_utils_impl.py,sha256=7BSreRcHNIsUeMj3U1GbqzVjJYKvyuEWHdG_C4TM46Q,23346 +numpy/lib/_utils_impl.pyi,sha256=ckxdUjdGEaa3JAKVQZHYgZ1R3glZZg-ssh90vkV7dJg,371 +numpy/lib/_version.py,sha256=4dUrc9Js0KPEQ5adoYKR5dnP4ffjCDtJUKPqcMauwY4,4851 +numpy/lib/_version.pyi,sha256=vysY5Vl_nh4si6GkMXEoB6pUDl-jJ5g0LpSDa40F124,641 +numpy/lib/array_utils.py,sha256=XbcyhJ9S0IlNnP9Ny6yygLMEACWWUPNOU8vevj1TEpI,144 +numpy/lib/array_utils.pyi,sha256=LfY_fzfTdtjoLIi5FSCDsC5weYrmAHFh7fxFfniupbg,296 +numpy/lib/format.py,sha256=npJ0eJhT7uKNK5a0lCMGfiJv-R4jyNhiIPeZbJcNXBs,477 +numpy/lib/format.pyi,sha256=fh-5SN4MORvjLliV8LwOb3VqG8tFvOaMeG4Vn5CBusA,1482 +numpy/lib/introspect.py,sha256=u-wgfMuYt8GI3AnRNdXs4j4w9eNTsazlqrazS-P7gKA,2749 +numpy/lib/introspect.pyi,sha256=AWVX6b9mzdwsxizOY0LydWKBEpGatHaeeXGc2txYJEM,152 +numpy/lib/mixins.py,sha256=Kff76ScpgWV3cruicI9A7a4zfBnGVmXtwQzMzu5xDEo,7200 +numpy/lib/mixins.pyi,sha256=f4MwOviD4rssgeombJ9xUH7LgwMlAq8JTGQuf84vMFI,3151 +numpy/lib/npyio.py,sha256=eaPvfHGSzUE70TJHHLOCPIX9G5ihMuBEexy6_PNhJ9Q,68 +numpy/lib/npyio.pyi,sha256=qX68dlgy7M2MtAgNSabTV8rWOTXOXCE1_72XcdJq10Y,192 +numpy/lib/recfunctions.py,sha256=T4aa5xXav9ntfw5YmzPiq_YUkh12wGk40XyBLQPCEzU,59539 +numpy/lib/recfunctions.pyi,sha256=NTf4FyM2Kinx56nNHcyGjKUz_RBSJQr-qtZsLKeIYvQ,13216 +numpy/lib/scimath.py,sha256=qjFaQeq0zEIl7gKqOhaj_vmCC_KaFdyTmHdLUUkSp5I,169 +numpy/lib/scimath.pyi,sha256=Fe7sfleFSY0uCGUj5gATxjEoMnva1nJ53YyP1wP11Nk,512 +numpy/lib/stride_tricks.py,sha256=x0_BfwlycBAlR3BvpxTndeP96dHBT_fASbkTTTzBYgI,88 +numpy/lib/stride_tricks.pyi,sha256=FLo0b8NlLPsS58VzjFFchivpBOjjE_meU0EhWEFPQNY,170 +numpy/lib/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/lib/tests/__pycache__/__init__.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test__datasource.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test__iotools.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test__version.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_array_utils.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_arraypad.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_arraysetops.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_arrayterator.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_format.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_function_base.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_histograms.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_index_tricks.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_io.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_loadtxt.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_mixins.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_nanfunctions.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_packbits.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_polynomial.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_recfunctions.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_regression.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_shape_base.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_stride_tricks.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_twodim_base.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_type_check.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_ufunclike.cpython-311.pyc,, +numpy/lib/tests/__pycache__/test_utils.cpython-311.pyc,, +numpy/lib/tests/data/py2-np0-objarr.npy,sha256=ZLoI7K3iQpXDkuoDF1Ymyc6Jbw4JngbQKC9grauVRsk,258 +numpy/lib/tests/data/py2-objarr.npy,sha256=F4cyUC-_TB9QSFLAo2c7c44rC6NUYIgrfGx9PqWPSKk,258 +numpy/lib/tests/data/py2-objarr.npz,sha256=xo13HBT0FbFZ2qvZz0LWGDb3SuQASSaXh7rKfVcJjx4,366 +numpy/lib/tests/data/py3-objarr.npy,sha256=7mtikKlHXp4unZhM8eBot8Cknlx1BofJdd73Np2PW8o,325 +numpy/lib/tests/data/py3-objarr.npz,sha256=vVRl9_NZ7_q-hjduUr8YWnzRy8ESNlmvMPlaSSC69fk,453 +numpy/lib/tests/data/python3.npy,sha256=X0ad3hAaLGXig9LtSHAo-BgOvLlFfPYMnZuVIxRmj-0,96 +numpy/lib/tests/data/win64python2.npy,sha256=agOcgHVYFJrV-nrRJDbGnUnF4ZTPYXuSeF-Mtg7GMpc,96 +numpy/lib/tests/test__datasource.py,sha256=0vL8l30yb53Wwnt0YbdqvOl2xQf9fc0S-0pRTMAdaYc,10581 +numpy/lib/tests/test__iotools.py,sha256=LTODsFclDQnIbKQb98hEysgVhQ6cs230aj45pA1QYFc,13765 +numpy/lib/tests/test__version.py,sha256=SwXoEqMap603c2jd7ONod0ZOVQeX6T-zArMf03OCHbw,1999 +numpy/lib/tests/test_array_utils.py,sha256=hPXtCjoBKe6MP91sg_04EBpRYg7MITVlCAgD1AScjx8,1118 +numpy/lib/tests/test_arraypad.py,sha256=GzqMIQ0Y8XLYmP5osXzl5W1Pcywy_OK-39STKoCWJc4,56155 +numpy/lib/tests/test_arraysetops.py,sha256=GKotFUbKgEfHybghYP1zIM0RWMqW1pa4cdYlML1seXQ,40445 +numpy/lib/tests/test_arrayterator.py,sha256=1LZmgQQJpndfwh3X2mL4JpaWvKQl9a0WAnQdSpXimhM,1301 +numpy/lib/tests/test_format.py,sha256=BTKd2lUodd8gNznWkh_Hl3mG8Mu8SOFADEqGd5kCw64,41956 +numpy/lib/tests/test_function_base.py,sha256=z2SkeGd9qQjXmaxk6bhoi06qlfxdrDzJEqRsDxIuEoM,171119 +numpy/lib/tests/test_histograms.py,sha256=QkcA46lJ1Y-T3f4-Qn7kn6J9bIid3RLK7NKMrUI3Rpw,33966 +numpy/lib/tests/test_index_tricks.py,sha256=4HVNEIcCbXz45bwo9E7DUzChikgG3_3QtOKtPXGYxmc,20695 +numpy/lib/tests/test_io.py,sha256=8StHTe3-XsyPNBy4IveftRY1Zba2JTW3ALOHg_bEfRw,110989 +numpy/lib/tests/test_loadtxt.py,sha256=1R_xoumDPtPGQYoWh_WWCFKeb3-9WfLIoMHCYQQ0CtQ,40557 +numpy/lib/tests/test_mixins.py,sha256=9r6tgP4Wb6vCDn590PkHmHl-GBAoAL6_-mwp2wbiaO0,7009 +numpy/lib/tests/test_nanfunctions.py,sha256=1GGtPUD8bS5v2FxLr8e0BUgx9k6Iu-8WLZisawPY4Yw,54098 +numpy/lib/tests/test_packbits.py,sha256=REkoSXh9FVVTizyyHWkLqXFLIjt0rynXeixhK8-gBgk,17543 +numpy/lib/tests/test_polynomial.py,sha256=3Z7x5gf2cSb5pN5e0Sb_hZetF3mI5GrTLv-OaN7v0m0,12312 +numpy/lib/tests/test_recfunctions.py,sha256=xYsC_t_tpIpWJvS1pRU2HNxZTO1cJ3QZ1OnXt4ajm0s,43928 +numpy/lib/tests/test_regression.py,sha256=UURtmtwfrxMDF3UY1ZMNbgIJOa38jUzYKCmpYYD8e3Q,7716 +numpy/lib/tests/test_shape_base.py,sha256=ZWHeWCs9x0sD-L03h6kTmUdRHvxHVC-8KOu8KomhyKQ,27406 +numpy/lib/tests/test_stride_tricks.py,sha256=tBErppWSp8jAckkx_zN5ZbAhfKxZJ99cOQxDI9B_xh0,23030 +numpy/lib/tests/test_twodim_base.py,sha256=-djv2iP3W2sB4rAgj9Orl8alGwDFfPvcVu6CNvlKIcg,18925 +numpy/lib/tests/test_type_check.py,sha256=2M6uyLSI-CP13CAylnBn3kbT6nrK6wYWW-Scw13vsAQ,14796 +numpy/lib/tests/test_ufunclike.py,sha256=5a65WfziLpjPJ_yE8zg-A-q08xlyiU8_S1JH8kb-Uyw,3015 +numpy/lib/tests/test_utils.py,sha256=HRZxH8Rs-PxCpMAhgbNOrTfBrsA8B2eTOKypY0Udczw,2374 +numpy/lib/user_array.py,sha256=zs6u6TAXoAySGAZc1qE6fKD4AN-t6urZCaiZaKmHiso,63 +numpy/lib/user_array.pyi,sha256=8C-aTekEYA0bVU7F3turaw1w0j8FfFvDp9xKa9Pfe94,53 +numpy/linalg/__init__.py,sha256=7pVvFwOJFKOArGeUs6MNj3MNqqsx7xx0vt2_7avNAg4,2124 +numpy/linalg/__init__.pyi,sha256=C3fZHKPSa4wpfRqfTjw3DpzE5p-Czjus48OuMLsDckQ,1060 +numpy/linalg/__pycache__/__init__.cpython-311.pyc,, +numpy/linalg/__pycache__/_linalg.cpython-311.pyc,, +numpy/linalg/__pycache__/linalg.cpython-311.pyc,, +numpy/linalg/_linalg.py,sha256=6rC77pyHWNOHk03DKEnwHezrUCYdAuItQfA61v8lYsw,115106 +numpy/linalg/_linalg.pyi,sha256=IJGbQaUsud5McMw9SbYqIogTV-Di_X_Oh0EBWB0T94Y,11548 +numpy/linalg/_umath_linalg.cpython-311-x86_64-linux-gnu.so,sha256=aZ1ZZsUp7TM5Xpjx2t3NSqavRoI2q_e98YgwBG8EJz8,231833 +numpy/linalg/_umath_linalg.pyi,sha256=awvRP1FGuomyfeaR0wzHvrXURAI8tUF3u2RRZ24hkXw,1409 +numpy/linalg/lapack_lite.cpython-311-x86_64-linux-gnu.so,sha256=CWHzBejkGGKvbl2VPw7x3rY5K_fsS3rRR08na2af034,30001 +numpy/linalg/lapack_lite.pyi,sha256=QjaS8R4uu6MiJDcCFNE5EOAYGnFCcrNz873gs2OUXEM,2672 +numpy/linalg/linalg.py,sha256=6NimP68tYa0qBRglWH87_tOh2scshtDpcwfvBvmd6Po,585 +numpy/linalg/linalg.pyi,sha256=8E5sbKeM5Ors7r143mM7A4ui8kFZM0SF7NfUGW1eN-4,932 +numpy/linalg/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/linalg/tests/__pycache__/__init__.cpython-311.pyc,, +numpy/linalg/tests/__pycache__/test_deprecations.cpython-311.pyc,, +numpy/linalg/tests/__pycache__/test_linalg.cpython-311.pyc,, +numpy/linalg/tests/__pycache__/test_regression.cpython-311.pyc,, +numpy/linalg/tests/test_deprecations.py,sha256=9p_SRmtxj2zc1doY9Ie3dyy5JzWy-tCQWFoajcAJUmM,640 +numpy/linalg/tests/test_linalg.py,sha256=VEvQHtAe0o3iVPogcCv9Frx-0HOyNH7WsQHcbkVfgaQ,84998 +numpy/linalg/tests/test_regression.py,sha256=9a96oyeEGQMUxfw_-GUjNWqn51iu4Cf7kllJ0bKp9ws,6704 +numpy/ma/API_CHANGES.txt,sha256=F_4jW8X5cYBbzpcwteymkonTmvzgKKY2kGrHF1AtnrI,3405 +numpy/ma/LICENSE,sha256=BfO4g1GYjs-tEKvpLAxQ5YdcZFLVAJoAhMwpFVH_zKY,1593 +numpy/ma/README.rst,sha256=krf2cvVK_zNQf1d3yVYwg0uDHzTiR4vHbr91zwaAyoI,9874 +numpy/ma/__init__.py,sha256=XpDWYXwauDc49-INsk455D03Uw4p6xFdsdWOn2rt87U,1406 +numpy/ma/__init__.pyi,sha256=QV7F1eN7GQLA2V2vI_bYXC_XhoZl-2IqXHWIqJtXLKU,6946 +numpy/ma/__pycache__/__init__.cpython-311.pyc,, +numpy/ma/__pycache__/core.cpython-311.pyc,, +numpy/ma/__pycache__/extras.cpython-311.pyc,, +numpy/ma/__pycache__/mrecords.cpython-311.pyc,, +numpy/ma/__pycache__/testutils.cpython-311.pyc,, +numpy/ma/core.py,sha256=Te0RIWw8JyG2iJJjeSiG_t1ahKAICDdr7_pl4G6Q1Yc,288881 +numpy/ma/core.pyi,sha256=RxL-vzdzpBB97UqNesAkHjvFxQUom1ARUvKurQgz58I,40459 +numpy/ma/extras.py,sha256=f8qf6t_x9k34OKmHiNIft9PFCyLYMeBSGhiYjhUuIpc,70680 +numpy/ma/extras.pyi,sha256=w6b84rYKp1tJO5aezma1OdF6E5lr6aNXpNAqMVHTI3M,3834 +numpy/ma/mrecords.py,sha256=00gzzy_xxC408pVZIRUSRhbwqc1UHcyhE-tO2FYM8IE,27073 +numpy/ma/mrecords.pyi,sha256=YW81zL9LDzi-L-2WI7135-HxBzj12n4YgARHh2qZ6Bs,1973 +numpy/ma/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/ma/tests/__pycache__/__init__.cpython-311.pyc,, +numpy/ma/tests/__pycache__/test_arrayobject.cpython-311.pyc,, +numpy/ma/tests/__pycache__/test_core.cpython-311.pyc,, +numpy/ma/tests/__pycache__/test_deprecations.cpython-311.pyc,, +numpy/ma/tests/__pycache__/test_extras.cpython-311.pyc,, +numpy/ma/tests/__pycache__/test_mrecords.cpython-311.pyc,, +numpy/ma/tests/__pycache__/test_old_ma.cpython-311.pyc,, +numpy/ma/tests/__pycache__/test_regression.cpython-311.pyc,, +numpy/ma/tests/__pycache__/test_subclassing.cpython-311.pyc,, +numpy/ma/tests/test_arrayobject.py,sha256=MSvEcxlsVt4YZ7mVXU8q_hkwM0I7xsxWejEqnUQx6hE,1099 +numpy/ma/tests/test_core.py,sha256=novMpyqUqf9O7970aVB2HUqTBSiUqMQINMas3PbTgjM,219717 +numpy/ma/tests/test_deprecations.py,sha256=Hye4FMqAdPOOCVnihbs4R8ntLvYJy6WF3LA29876urI,2569 +numpy/ma/tests/test_extras.py,sha256=BnFaTx33kNdLDuLJ74Dt1f7gGsD_noYFmBGA8UelUqI,78435 +numpy/ma/tests/test_mrecords.py,sha256=ZDEv-LbPlx4Qf9NQs8unNXgrdXupRv4IQljf4_vCr34,19894 +numpy/ma/tests/test_old_ma.py,sha256=PMA26SyXJxN0o-pPvyEhl_YF2zRcxuPRMPAXztKCphA,33018 +numpy/ma/tests/test_regression.py,sha256=_eskYMrmSHe-_iODK6mvRD5gN_w6NpAl5agsyIGRRUo,3303 +numpy/ma/tests/test_subclassing.py,sha256=_TQZ4WM2VG-yuITIXeRZbAZrWDHpxtQoLzDKbGRmuHM,16936 +numpy/ma/testutils.py,sha256=vNG1ay689zOktrm-33tyz0bsCLxkJHK6j--2JtHRPq4,10235 +numpy/matlib.py,sha256=_S9N8S2NNsHGQUcloxrxABtJDejHiUyMdMJO7SayPkA,10638 +numpy/matlib.pyi,sha256=d9Tw-ThrWNUgXKGTiQvCjqrkWQSWqHcXUXAxvYENtYk,9602 +numpy/matrixlib/__init__.py,sha256=Ut6IqfjuA-kwwo6HBOYAgFjXXC_h7YV_3HyDsKM72dk,243 +numpy/matrixlib/__init__.pyi,sha256=e9xC6kWhIYoPqa3-tmtxdaq8RLjXrBjpyXLqV-pV9UY,106 +numpy/matrixlib/__pycache__/__init__.cpython-311.pyc,, +numpy/matrixlib/__pycache__/defmatrix.cpython-311.pyc,, +numpy/matrixlib/defmatrix.py,sha256=wpw6lZU9X6qp8wAJokDXt2RBrL1eXqlmBt-ojIwYzlU,30875 +numpy/matrixlib/defmatrix.pyi,sha256=ReQicwbCq4EFGM6paj5KoTeFK3fyiBMC4fJLJcP0SI4,478 +numpy/matrixlib/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/matrixlib/tests/__pycache__/__init__.cpython-311.pyc,, +numpy/matrixlib/tests/__pycache__/test_defmatrix.cpython-311.pyc,, +numpy/matrixlib/tests/__pycache__/test_interaction.cpython-311.pyc,, +numpy/matrixlib/tests/__pycache__/test_masked_matrix.cpython-311.pyc,, +numpy/matrixlib/tests/__pycache__/test_matrix_linalg.cpython-311.pyc,, +numpy/matrixlib/tests/__pycache__/test_multiarray.cpython-311.pyc,, +numpy/matrixlib/tests/__pycache__/test_numeric.cpython-311.pyc,, +numpy/matrixlib/tests/__pycache__/test_regression.cpython-311.pyc,, +numpy/matrixlib/tests/test_defmatrix.py,sha256=G9v4-cGuAbHVVDCJ2rCUnQrSTUChOih_6ZMV-ZlYsNA,14977 +numpy/matrixlib/tests/test_interaction.py,sha256=BMpaAIeGOJ5EEHWuozBifN8l3Av5RO6jGoaPgdzTiqQ,11874 +numpy/matrixlib/tests/test_masked_matrix.py,sha256=UN212xE5e3G9OuwdOWvRMFT5-z3zIfjQQIIpY26a52k,8787 +numpy/matrixlib/tests/test_matrix_linalg.py,sha256=33UxWKz2NwI2Wt3pP0AyaooZ5tCFpbOePWek3XT0a4U,2149 +numpy/matrixlib/tests/test_multiarray.py,sha256=S5kjzsQR2YgT0qIGrNO1lUDl3o-h0EIdg_g3U3CnuRc,555 +numpy/matrixlib/tests/test_numeric.py,sha256=hZ-r921WDG8Ck8KmT6ulgykjHU1QaGY6gprC2OPo-vg,447 +numpy/matrixlib/tests/test_regression.py,sha256=XnfZ4RoTS49XMUyUlHVMc6wcWImNRja7DT1wTdEk428,934 +numpy/polynomial/__init__.py,sha256=gGSwLNpPCpXfPgiJSsgVoVsJ0AS1c-_MWlGOeiG55sI,6726 +numpy/polynomial/__init__.pyi,sha256=tVWqA3_ZzcTyfp5yIr4ca87Tgx4YtY4660UQi3JhfJI,688 +numpy/polynomial/__pycache__/__init__.cpython-311.pyc,, +numpy/polynomial/__pycache__/_polybase.cpython-311.pyc,, +numpy/polynomial/__pycache__/chebyshev.cpython-311.pyc,, +numpy/polynomial/__pycache__/hermite.cpython-311.pyc,, +numpy/polynomial/__pycache__/hermite_e.cpython-311.pyc,, +numpy/polynomial/__pycache__/laguerre.cpython-311.pyc,, +numpy/polynomial/__pycache__/legendre.cpython-311.pyc,, +numpy/polynomial/__pycache__/polynomial.cpython-311.pyc,, +numpy/polynomial/__pycache__/polyutils.cpython-311.pyc,, +numpy/polynomial/_polybase.py,sha256=b0kCiTgUm8D5QC_LWSm6yNvwC79npDAeksK0vQPciCQ,39358 +numpy/polynomial/_polybase.pyi,sha256=mKbxu6z3iC6NnDNXHPrMm6Vo6RQvrvtCel7S5Mi3Q3Q,8187 +numpy/polynomial/_polytypes.pyi,sha256=e-uO5HmbYsWffZtOKCDgrxEqvUm-YKTqQKXj83m8j6s,22382 +numpy/polynomial/chebyshev.py,sha256=T0vrDsOrO8Ntxbzf_-0dv_lPyF5c45OjDoVJDzeGBAI,62322 +numpy/polynomial/chebyshev.pyi,sha256=jn21NMBsc4FYvC_5BM4kOfnYEaUSINdq3RyooS-5rjU,4787 +numpy/polynomial/hermite.py,sha256=IguwJittKDh3y0rF1M9lLuIptFXgq-PhaHNTjfE3CnA,54603 +numpy/polynomial/hermite.pyi,sha256=bNrlxTVHTskFUOKDbyrISXbOsmPxxhnAGmZmOF1mLpc,2463 +numpy/polynomial/hermite_e.py,sha256=fhuui2jLc0I5WEEsRDcyw8FKSFxOl9jr8b4yRIxEZqQ,52305 +numpy/polynomial/hermite_e.pyi,sha256=OyjRyzP7tz5sDP-90D4dpn82zJ4zPUCIzhpXaOCpkCY,2555 +numpy/polynomial/laguerre.py,sha256=XJ5dNqWuZNhqwARb_QW4nfrRHyJv1JMCgsP2W4-KE9M,52474 +numpy/polynomial/laguerre.pyi,sha256=_72JssagROc-vwt8W1i3aOo8s5l2v2G2NzMUm14vZnw,2191 +numpy/polynomial/legendre.py,sha256=sMJTmGdewNhccrK9CyfNIIFRgzmY-AJHhgo6zxtGYvo,51129 +numpy/polynomial/legendre.pyi,sha256=dPizRI4HLqAQ8Jms8Ta_HtsUyHV49fk3hFCZNOid1fo,2191 +numpy/polynomial/polynomial.py,sha256=-IICosb2j8ClsIfXPDWgXqLx6WuhU6olocU4JkxN7kI,52196 +numpy/polynomial/polynomial.pyi,sha256=A3oK3wKteiRkUcNEkzgvZQ11HIqloIRoxG2X9rPVZBE,2021 +numpy/polynomial/polyutils.py,sha256=mQEa3oCz9X-d1HaNdXkpBJzXWGzgY42WDMjJOn988O8,22657 +numpy/polynomial/polyutils.pyi,sha256=gnB7TQZclbMGneVVFE1z5LX5Qgs3GCidRTWL97rja-4,10235 +numpy/polynomial/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/polynomial/tests/__pycache__/__init__.cpython-311.pyc,, +numpy/polynomial/tests/__pycache__/test_chebyshev.cpython-311.pyc,, +numpy/polynomial/tests/__pycache__/test_classes.cpython-311.pyc,, +numpy/polynomial/tests/__pycache__/test_hermite.cpython-311.pyc,, +numpy/polynomial/tests/__pycache__/test_hermite_e.cpython-311.pyc,, +numpy/polynomial/tests/__pycache__/test_laguerre.cpython-311.pyc,, +numpy/polynomial/tests/__pycache__/test_legendre.cpython-311.pyc,, +numpy/polynomial/tests/__pycache__/test_polynomial.cpython-311.pyc,, +numpy/polynomial/tests/__pycache__/test_polyutils.cpython-311.pyc,, +numpy/polynomial/tests/__pycache__/test_printing.cpython-311.pyc,, +numpy/polynomial/tests/__pycache__/test_symbol.cpython-311.pyc,, +numpy/polynomial/tests/test_chebyshev.py,sha256=gcK5jVv1vG3O-VVMkZKpmweR6_4HQAXtzvbJ_ib0-B8,20650 +numpy/polynomial/tests/test_classes.py,sha256=nBsVHcubheo1s7t-jUXY984ptC2x-aWDPkWED1cUZt4,18552 +numpy/polynomial/tests/test_hermite.py,sha256=sexvJUDmac1JKL8qOeQr70KJTD1KdoJ10LKosFfBqm0,18687 +numpy/polynomial/tests/test_hermite_e.py,sha256=r3QQOUVoBBVgZzCjE3qzIl-wMcl_kI1Nuc-KGNy7rIw,19026 +numpy/polynomial/tests/test_laguerre.py,sha256=8c2h7Lj3F2DtuVuOPlS8ZL-dq_IoFxPrzREbuI5iZqQ,17637 +numpy/polynomial/tests/test_legendre.py,sha256=hMdOs_RzkGihUzg7gDmeM1FxkIT2UIgqkDWanucfMHg,18805 +numpy/polynomial/tests/test_polynomial.py,sha256=Pi_X6ThfxgVbgzyAnu3FcyTIUvpL9ENxRSanyUjgon8,22911 +numpy/polynomial/tests/test_polyutils.py,sha256=gO7B1oPBRRClF7WeXFsLjGwqUl9kjVIv7aAoHlhqVsk,3780 +numpy/polynomial/tests/test_printing.py,sha256=qk76AKCvHHqbsDnHIVf5fxIEH9Va4U9jwJkJ1b67k1o,21403 +numpy/polynomial/tests/test_symbol.py,sha256=ShBdNg9cvYy31fQnrn4gprZUSD0shz5r8zlG8CEq7gs,5375 +numpy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/random/LICENSE.md,sha256=EDFmtiuARDr7nrNIjgUuoGvgz_VmuQjxmeVh_eSa8Z8,3511 +numpy/random/__init__.pxd,sha256=9JbnX540aJNSothGs-7e23ozhilG6U8tINOUEp08M_k,431 +numpy/random/__init__.py,sha256=WFzntztUVNaiXCpQln8twyL8HSFNS7XAWJlJsQXgbqk,7480 +numpy/random/__init__.pyi,sha256=5X5UqSDkeruZafGWv9EnYb0RrjRs49r-TlzV3PPQOjs,2109 +numpy/random/__pycache__/__init__.cpython-311.pyc,, +numpy/random/__pycache__/_pickle.cpython-311.pyc,, +numpy/random/_bounded_integers.cpython-311-x86_64-linux-gnu.so,sha256=ou9dpzVVQdBRB8jDD3u-vogGjUVe54OYfgdLeeaa4FM,349688 +numpy/random/_bounded_integers.pxd,sha256=SH_FwJDigFEInhdliSaNH2H2ZIZoX02xYhNQA81g2-g,1678 +numpy/random/_bounded_integers.pyi,sha256=juqd9PbXs4yg45zMJ7BHAOPQjb7sgEbWE9InBtGZhfo,24 +numpy/random/_common.cpython-311-x86_64-linux-gnu.so,sha256=bnTThesodlLpCug91emhpU4MlBjC3K2jDcn_yMvdXwo,272072 +numpy/random/_common.pxd,sha256=7kGArYkBcemrxJcSttwvtDGbimLszdQnZdNvPMgN5xQ,4982 +numpy/random/_common.pyi,sha256=02dQDSAflunmZQFWThDLG3650py_DNqCmxjmkv5_XpA,421 +numpy/random/_examples/cffi/__pycache__/extending.cpython-311.pyc,, +numpy/random/_examples/cffi/__pycache__/parse.cpython-311.pyc,, +numpy/random/_examples/cffi/extending.py,sha256=jpIL1njMhf0nehmlMHkgZkIxns2JC9GEDYgAChX87G8,884 +numpy/random/_examples/cffi/parse.py,sha256=PK9vdUxwmvdnFvH3rOpgnnpISwnid7ri5XOmBrMWpJw,1750 +numpy/random/_examples/cython/extending.pyx,sha256=ePnHDNfMQcTUzAqgFiEqrTFr9BoDmbqgjxzrDLvV8fE,2267 +numpy/random/_examples/cython/extending_distributions.pyx,sha256=ahvbdSuRj35DKJRaNFP5JDuPqveBBp-M9mFfF3Wd_M4,3866 +numpy/random/_examples/cython/meson.build,sha256=GxZZT_Lu3nZsgcqo_7sTR_IdMJaHA1fxyjwrQTcodPs,1694 +numpy/random/_examples/numba/__pycache__/extending.cpython-311.pyc,, +numpy/random/_examples/numba/__pycache__/extending_distributions.cpython-311.pyc,, +numpy/random/_examples/numba/extending.py,sha256=Z7Z_Xp7HPE4K5BZ7AwpZ29qvuftFAkvhMtNX53tlMMw,1959 +numpy/random/_examples/numba/extending_distributions.py,sha256=fdePXeUj46yXK0MK1cszxUHQiOTiNuNsrbZqPw4AdGs,2036 +numpy/random/_generator.cpython-311-x86_64-linux-gnu.so,sha256=GN7i5jK8UjgwfkDuoQ-KHN2-XkBMw8cTb28JfV2Gypk,1015192 +numpy/random/_generator.pyi,sha256=aFPqfOxIpOIOmdY1xBcUpllMCv20iTq4PN7Ad_gd7HY,24009 +numpy/random/_mt19937.cpython-311-x86_64-linux-gnu.so,sha256=n3DokMclxoIV12J1sf0zhT1eocGReUNKV5Hs2LmSOXE,138904 +numpy/random/_mt19937.pyi,sha256=ZjOCfOQb1KLDywy8ZHy8pQb1C-DZvStqYK3OOB6rETo,775 +numpy/random/_pcg64.cpython-311-x86_64-linux-gnu.so,sha256=BCk19zMiQTlQHznr9nvcgR8giuNFZZZuRXpMkqZyk6k,145736 +numpy/random/_pcg64.pyi,sha256=bIlGJyN2X3gtKEzh6qwDdyXX88al_2vVmCzGNpbNifs,1142 +numpy/random/_philox.cpython-311-x86_64-linux-gnu.so,sha256=ppugKVLtH7cII_rinPvivKfEVIQvtK1Mu418GGDMiws,117648 +numpy/random/_philox.pyi,sha256=xFogUASfSHdviqexIf4bGgkzbryir7Tik7z0XQR9xx4,1005 +numpy/random/_pickle.py,sha256=Lt47ma_vnnJHdnQlc5jZ_DqBHsdKi0QiUNaIkMf95qA,2742 +numpy/random/_pickle.pyi,sha256=5obQY7CZRLMDjOgRtNgzV_Bg5O9E8DK_G74j7J7q6qo,1608 +numpy/random/_sfc64.cpython-311-x86_64-linux-gnu.so,sha256=dApUXiz5fQU_izEUJgz4bWn4elamIkKHZptDyUr2ngM,90144 +numpy/random/_sfc64.pyi,sha256=wRrbkEGLNhjXa7-LyGNtO5El9c8B_hNRQqF0Kmv6hQM,682 +numpy/random/bit_generator.cpython-311-x86_64-linux-gnu.so,sha256=Bu_OLwM1olf_zYPkdngAHZSS1vJ7G2kA3igOaRJiLGE,243576 +numpy/random/bit_generator.pxd,sha256=lArpIXSgTwVnJMYc4XX0NGxegXq3h_QsUDK6qeZKbNc,1007 +numpy/random/bit_generator.pyi,sha256=tX5lVJDp6J5bNzflo-1rNylceD30oDBYtbiYVA1cWOY,3604 +numpy/random/c_distributions.pxd,sha256=UCtqx0Nf-vHuJVaqPlLFURWnaI1vH-vJRE01BZDTL9o,6335 +numpy/random/lib/libnpyrandom.a,sha256=DTNTpkzNlmwIAC6xVeNemTNNiEiOSyJwzv26iryg8Qs,71798 +numpy/random/mtrand.cpython-311-x86_64-linux-gnu.so,sha256=VOzlooOCtims_uaSWI-aIjJFDVPqQPbNtc2icTbDF-M,809616 +numpy/random/mtrand.pyi,sha256=Ds2d-DloxUUE2wNNMA1w6oqqPsgBilkaRMCLioBTiJA,22687 +numpy/random/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/random/tests/__pycache__/__init__.cpython-311.pyc,, +numpy/random/tests/__pycache__/test_direct.cpython-311.pyc,, +numpy/random/tests/__pycache__/test_extending.cpython-311.pyc,, +numpy/random/tests/__pycache__/test_generator_mt19937.cpython-311.pyc,, +numpy/random/tests/__pycache__/test_generator_mt19937_regressions.cpython-311.pyc,, +numpy/random/tests/__pycache__/test_random.cpython-311.pyc,, +numpy/random/tests/__pycache__/test_randomstate.cpython-311.pyc,, +numpy/random/tests/__pycache__/test_randomstate_regression.cpython-311.pyc,, +numpy/random/tests/__pycache__/test_regression.cpython-311.pyc,, +numpy/random/tests/__pycache__/test_seed_sequence.cpython-311.pyc,, +numpy/random/tests/__pycache__/test_smoke.cpython-311.pyc,, +numpy/random/tests/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/random/tests/data/__pycache__/__init__.cpython-311.pyc,, +numpy/random/tests/data/generator_pcg64_np121.pkl.gz,sha256=EfQ-X70KkHgBAFX2pIPcCUl4MNP1ZNROaXOU75vdiqM,203 +numpy/random/tests/data/generator_pcg64_np126.pkl.gz,sha256=fN8deNVxX-HELA1eIZ32kdtYvc4hwKya6wv00GJeH0Y,208 +numpy/random/tests/data/mt19937-testset-1.csv,sha256=Xkef402AVB-eZgYQkVtoxERHkxffCA9Jyt_oMbtJGwY,15844 +numpy/random/tests/data/mt19937-testset-2.csv,sha256=nsBEQNnff-aFjHYK4thjvUK4xSXDSfv5aTbcE59pOkE,15825 +numpy/random/tests/data/pcg64-testset-1.csv,sha256=xB00DpknGUTTCxDr9L6aNo9Hs-sfzEMbUSS4t11TTfE,23839 +numpy/random/tests/data/pcg64-testset-2.csv,sha256=NTdzTKvG2U7_WyU_IoQUtMzU3kEvDH39CgnR6VzhTkw,23845 +numpy/random/tests/data/pcg64dxsm-testset-1.csv,sha256=vNSUT-gXS_oEw_awR3O30ziVO4seNPUv1UIZ01SfVnI,23833 +numpy/random/tests/data/pcg64dxsm-testset-2.csv,sha256=uylS8PU2AIKZ185OC04RBr_OePweGRtvn-dE4YN0yYA,23839 +numpy/random/tests/data/philox-testset-1.csv,sha256=SedRaIy5zFadmk71nKrGxCFZ6BwKz8g1A9-OZp3IkkY,23852 +numpy/random/tests/data/philox-testset-2.csv,sha256=dWECt-sbfvaSiK8-Ygp5AqyjoN5i26VEOrXqg01rk3g,23838 +numpy/random/tests/data/sfc64-testset-1.csv,sha256=iHs6iX6KR8bxGwKk-3tedAdMPz6ZW8slDSUECkAqC8Q,23840 +numpy/random/tests/data/sfc64-testset-2.csv,sha256=FIDIDFCaPZfWUSxsJMAe58hPNmMrU27kCd9FhCEYt_k,23833 +numpy/random/tests/data/sfc64_np126.pkl.gz,sha256=MVa1ylFy7DUPgUBK-oIeKSdVl4UYEiN3AZ7G3sdzzaw,290 +numpy/random/tests/test_direct.py,sha256=-ugW0cpuYhFSGVDtAbpEy_uFk-cG0JKFpPpQMDyFJh4,19919 +numpy/random/tests/test_extending.py,sha256=8KgkOAbxrgU9_cj9Qm0F8r9qVEVy438Q-Usp7_HpSLQ,4532 +numpy/random/tests/test_generator_mt19937.py,sha256=AYm340SgiQUWjEBoNHK1G17W75-VT3iZL4HVwQGtw0U,118000 +numpy/random/tests/test_generator_mt19937_regressions.py,sha256=QZVFTSN9gnJXN-ye89JfUoov1Cu65r4e32FMmCYje5U,8107 +numpy/random/tests/test_random.py,sha256=YSlHTwu6t7BAjDLZrBz4e8-ynSuV6eOHP9NwxDoZBvU,70298 +numpy/random/tests/test_randomstate.py,sha256=WbZBpZplBlgmhWKXNsj7d0Zw0BHJ2nxEerMRnuwyYnE,85749 +numpy/random/tests/test_randomstate_regression.py,sha256=1NgkJ60dVg8-UZ-ApepKlZGotqgenW_vZ3jqofMOSlw,8010 +numpy/random/tests/test_regression.py,sha256=DqqLLE3_MW04ltPhSXy44oFx_daO9b4I7NgI-WoMc-s,5471 +numpy/random/tests/test_seed_sequence.py,sha256=0lb4LRofbt_wHO-Cs_d1hwp1WcWjOmxH-OePkXST5bc,3310 +numpy/random/tests/test_smoke.py,sha256=epkUF47HanaSZVz9NVUt6xUmKZhJNolPIB-z4MN67Qw,28141 +numpy/rec/__init__.py,sha256=kNAYYoSAA0izpUVRb-18sJw-iKtFq2Rl2U5SOH3pHRM,83 +numpy/rec/__init__.pyi,sha256=1ZL2SbvFSaoXwOK-378QQ0g0XldOjskx2E2uIerEGUI,347 +numpy/rec/__pycache__/__init__.cpython-311.pyc,, +numpy/strings/__init__.py,sha256=o27wHW8jGaUfbDopSyEmYD6Rjeo33AzkGBBTgWrlGH4,83 +numpy/strings/__init__.pyi,sha256=JP8YQR3xZ_mPMdQax7QSR2cZ-N-V7ZDqvOcWIIUP_54,1319 +numpy/strings/__pycache__/__init__.cpython-311.pyc,, +numpy/testing/__init__.py,sha256=Eqe-Ox-3JSqk6QRnnPPFLCW9Ikqv9OuJDhnm2uGM3zc,581 +numpy/testing/__init__.pyi,sha256=1jr2Gj9BmCdtK4bqNGkwUAuqwC4n2JPOy6lqczK7xpA,2045 +numpy/testing/__pycache__/__init__.cpython-311.pyc,, +numpy/testing/__pycache__/overrides.cpython-311.pyc,, +numpy/testing/__pycache__/print_coercion_tables.cpython-311.pyc,, +numpy/testing/_private/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/testing/_private/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/testing/_private/__pycache__/__init__.cpython-311.pyc,, +numpy/testing/_private/__pycache__/extbuild.cpython-311.pyc,, +numpy/testing/_private/__pycache__/utils.cpython-311.pyc,, +numpy/testing/_private/extbuild.py,sha256=Lg1sqA94Q74Ki5u-sx0PEj7urr3YP470-BCiyvJwExQ,7716 +numpy/testing/_private/extbuild.pyi,sha256=AO2r2DVbl2A9EyytVQLIYAgvuIheYGn1pkdLRL38XY4,653 +numpy/testing/_private/utils.py,sha256=PZFbAxTSOPFQ_VXMaDCgPFBSEk2kcEGh8GRiBJy_yJg,95707 +numpy/testing/_private/utils.pyi,sha256=0-RRq2IemjHalVvA5eh_9zVLqabGHmXe_3oF_oGy_KY,12960 +numpy/testing/overrides.py,sha256=B8Y8PlpvK71IcSuoubXWj4L5NVmLVSn7WMg1L7xZO8k,2134 +numpy/testing/overrides.pyi,sha256=IQvQLxD-dHcbTQOZEO5bnCtCp8Uv3vj51dl0dZ0htjg,397 +numpy/testing/print_coercion_tables.py,sha256=SboNmCLc5FyV-UR8gKjJc2PIojN1XQTvH0WzDq75M2M,6286 +numpy/testing/print_coercion_tables.pyi,sha256=FRNibMYi0OyLIzKD4RUASZyhlsTY8elN0Q3jcBPEdgE,821 +numpy/testing/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/testing/tests/__pycache__/__init__.cpython-311.pyc,, +numpy/testing/tests/__pycache__/test_utils.cpython-311.pyc,, +numpy/testing/tests/test_utils.py,sha256=yb2RpPDZvVagXiwQPFhV2IhwslZRkC-d-Vtb5wbJbbo,69575 +numpy/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/tests/__pycache__/__init__.cpython-311.pyc,, +numpy/tests/__pycache__/test__all__.cpython-311.pyc,, +numpy/tests/__pycache__/test_configtool.cpython-311.pyc,, +numpy/tests/__pycache__/test_ctypeslib.cpython-311.pyc,, +numpy/tests/__pycache__/test_lazyloading.cpython-311.pyc,, +numpy/tests/__pycache__/test_matlib.cpython-311.pyc,, +numpy/tests/__pycache__/test_numpy_config.cpython-311.pyc,, +numpy/tests/__pycache__/test_numpy_version.cpython-311.pyc,, +numpy/tests/__pycache__/test_public_api.cpython-311.pyc,, +numpy/tests/__pycache__/test_reloading.cpython-311.pyc,, +numpy/tests/__pycache__/test_scripts.cpython-311.pyc,, +numpy/tests/__pycache__/test_warnings.cpython-311.pyc,, +numpy/tests/test__all__.py,sha256=AXbT9VmRSTYq9beba4d1Eom_V9SVXXEtpkBdEW2XCqU,222 +numpy/tests/test_configtool.py,sha256=aVO9XZPUq-T0LXFx-sQbtsOcnwKIFnpKtfuWWlnWDFs,1749 +numpy/tests/test_ctypeslib.py,sha256=RNTHi3cYOEPQno5zZQ_WyekW5E_0bVuwmn1AFgkDzY8,12375 +numpy/tests/test_lazyloading.py,sha256=mMbie5VOu7S4uQBu66RNA2ipSsAY4C0lyoJXeHclAvk,1160 +numpy/tests/test_matlib.py,sha256=RMduSGHBJuVFmk__Ug_hVeGD4-Y3f28G0tlDt8F7k7c,1854 +numpy/tests/test_numpy_config.py,sha256=y4U3wnNW0Ags4W_ejhQ4CRCPnBc9p-4-B9OFDcLq9fg,1235 +numpy/tests/test_numpy_version.py,sha256=6PIeISx9_Hglpxc3y6KugeAgB4eBkuZC-DFlXt4LocA,1744 +numpy/tests/test_public_api.py,sha256=KqMtjIjq0_lp2ag4FTtulzypCqyZ43kuUlXgzd_Vkxc,27851 +numpy/tests/test_reloading.py,sha256=T0NTsxAZFPY0LuAzbsy0wV_vSIZON7dwWSNjz_yzpDg,2367 +numpy/tests/test_scripts.py,sha256=QpjsWc0vgi-IFLdMr81horvHAnjRI7RhYyO-edHxzcU,1665 +numpy/tests/test_warnings.py,sha256=ynGuW4FOgjLcwdyi5AYCGCrmAu7jZlIQWPNK-0Yr800,2328 +numpy/typing/__init__.py,sha256=FdaIH47j8uGEA5luTu-DnrOOTFw-3ne2JVHe-yn_7bA,6048 +numpy/typing/__pycache__/__init__.cpython-311.pyc,, +numpy/typing/__pycache__/mypy_plugin.cpython-311.pyc,, +numpy/typing/mypy_plugin.py,sha256=1pcfLxJaYFdCPKQJVwHvdYbZSVdZ7RSIcg1QXHR7nqM,6541 +numpy/typing/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +numpy/typing/tests/__pycache__/__init__.cpython-311.pyc,, +numpy/typing/tests/__pycache__/test_isfile.cpython-311.pyc,, +numpy/typing/tests/__pycache__/test_runtime.cpython-311.pyc,, +numpy/typing/tests/__pycache__/test_typing.cpython-311.pyc,, +numpy/typing/tests/data/fail/arithmetic.pyi,sha256=B1iRvZyWH_beZWBFsUtF6aHtF99VBjWpHQya6IyY1o8,3690 +numpy/typing/tests/data/fail/array_constructors.pyi,sha256=2917vcb59EaV406oGtA9lSQ8n_KDDyfvMrxj1Na6rPM,1200 +numpy/typing/tests/data/fail/array_like.pyi,sha256=klBpaBcONODcPC1LztdVZ3UuIPwXN8kUK_e9s_QnZoo,496 +numpy/typing/tests/data/fail/array_pad.pyi,sha256=mt-nhrs6f4YP7xgXizti7k_AwFAJ50yK97fMrMAAEds,137 +numpy/typing/tests/data/fail/arrayprint.pyi,sha256=i-0R4ExF_gtfXML5qirbsQLmDwJyg6_37HDYsk6g6tI,616 +numpy/typing/tests/data/fail/arrayterator.pyi,sha256=9Y8aD2lkDO7UcLo9ySR0pnVz0p2ofl2Lq4XTHgoMXxA,463 +numpy/typing/tests/data/fail/bitwise_ops.pyi,sha256=4u2NPPwvp3KeK739EXOTFMFTRKdxvpfICpJJ8F-eO-g,384 +numpy/typing/tests/data/fail/char.pyi,sha256=IrAk7rxT3ixBVwNWHzCWEsW9rF_oCXTOtwIG-q_Vx2A,2800 +numpy/typing/tests/data/fail/chararray.pyi,sha256=aTqYSgwQUGUVUDkOly_Dy5SdOiHdKKTEbo6jD68KaH0,2356 +numpy/typing/tests/data/fail/comparisons.pyi,sha256=zscovvsL89W8wrL43k4z8z1DLrjXmxBbu6lAOpiyhp0,750 +numpy/typing/tests/data/fail/constants.pyi,sha256=OHaBJo6GYW94BlUWKQDat5jiit5ZAy_h-5bb1WUJnLU,78 +numpy/typing/tests/data/fail/datasource.pyi,sha256=7om31_WCptsSn_z7E5p-pKFlswZItyZm9GQ-L5fXWqM,419 +numpy/typing/tests/data/fail/dtype.pyi,sha256=crqAVZmBYLYV9N-ihiOnKCY1QK4iTxX7J4Tviac2Vq4,305 +numpy/typing/tests/data/fail/einsumfunc.pyi,sha256=4QWkwE4sr5bKz5-OCjPzeUcr4V-wpaMsqee2PXDwyjw,458 +numpy/typing/tests/data/fail/flatiter.pyi,sha256=3WblzrQewUBZo1mjTRWzwda_rQ0HSVamtz2XwH2CgCc,715 +numpy/typing/tests/data/fail/fromnumeric.pyi,sha256=eWCbs1dcoJraAA3b5qME09sWWvsSdlDO912_OwQ_M7k,5685 +numpy/typing/tests/data/fail/histograms.pyi,sha256=wgI2CG-P0jbDw4KohR_nbJxqa34PT1e6nmnLi9KbPQM,376 +numpy/typing/tests/data/fail/index_tricks.pyi,sha256=RNZLHeMOpSX594Eem4WyJrM_QouqndGRVj2YQakJN-E,517 +numpy/typing/tests/data/fail/lib_function_base.pyi,sha256=JdvdZlgNUNzlOuY74T6Lt_hNOpveU6U1jhFGB9Iu6ZA,2817 +numpy/typing/tests/data/fail/lib_polynomial.pyi,sha256=Y3jlwigvtr5tFEHvr3SgguMVsYZe8cvsdgKcavgfucs,937 +numpy/typing/tests/data/fail/lib_utils.pyi,sha256=6Oc_wYI0mv0l74p4pEiVtKjkWFNg4WmXjGW7_2zEKS4,98 +numpy/typing/tests/data/fail/lib_version.pyi,sha256=BvABs2aeC6ZHUGkrsowu80Ks22pbxUMwSPJ8c5i7H14,154 +numpy/typing/tests/data/fail/linalg.pyi,sha256=h9bcCeP0ARGONB3iYGkdX-BFPsNI-pZq3C-nfKgbbBU,1381 +numpy/typing/tests/data/fail/ma.pyi,sha256=inPaC4jP7hGPqQJn-rBspeJZnxJz7m1nVDYQxuMI8SE,6364 +numpy/typing/tests/data/fail/memmap.pyi,sha256=uXPLcVx726Bbw93E5kdIc7K0ssvLIZoJfNTULMtAa_8,169 +numpy/typing/tests/data/fail/modules.pyi,sha256=mEBLIY6vZAPIf2BuyJcMAR-FarSkT55FRlusrsR0qCo,603 +numpy/typing/tests/data/fail/multiarray.pyi,sha256=lSV5JiLNz-CxHUlNbF1Bq3x7mOftfr1kiiG2DgtXilE,1656 +numpy/typing/tests/data/fail/ndarray.pyi,sha256=65IDiOprlv-sg375SBmmh6_hYOzlucTVLe42GymniGM,381 +numpy/typing/tests/data/fail/ndarray_misc.pyi,sha256=hSdxKyxweyxAH32DGa_ZnZIXqPNh6CafBK90rjbi8cs,1061 +numpy/typing/tests/data/fail/nditer.pyi,sha256=nRbQ66HcoKXDKIacbWD9pTq-523GJOqxzJ3r278lDsc,319 +numpy/typing/tests/data/fail/nested_sequence.pyi,sha256=jGjoQhCLr8dbTCPvWkilJKAW0RRMbrY-iEHf24Happo,463 +numpy/typing/tests/data/fail/npyio.pyi,sha256=vPYmFaPCFbr5V2AC3074w8hTCBUYxpSF4fi1sbbfopw,646 +numpy/typing/tests/data/fail/numerictypes.pyi,sha256=NJxviXTJIaDoz7q56dBrHCBNNG-doTu-oIryzwURxHQ,124 +numpy/typing/tests/data/fail/random.pyi,sha256=IvKXQuxZhuK6M0u2x3Y4PhXvLoC8OFnUdoeneaqDiIE,2903 +numpy/typing/tests/data/fail/rec.pyi,sha256=eeFXVvVg4DherRMA1T8KERtTiRN1ZIbarw4Yokb8WrU,741 +numpy/typing/tests/data/fail/scalars.pyi,sha256=0v-3HqrshCAnAOHfypBc29Y5JGEOwcD1fPTiBO9U3lA,2909 +numpy/typing/tests/data/fail/shape.pyi,sha256=VNucLx9ittp1a0AOyVPd6XKfERm0kq_ND1lOr-LXQ_s,131 +numpy/typing/tests/data/fail/shape_base.pyi,sha256=8366-8mCNii1D0W6YrOhCNxo8rrfqQThO-dIVWNRHvA,157 +numpy/typing/tests/data/fail/stride_tricks.pyi,sha256=g7-DY8Zc8pzTDyOBA-8t6yIFj1FZI9XpvVdbybQN2i0,330 +numpy/typing/tests/data/fail/strings.pyi,sha256=wX9ROrRNhpH9g_ewNGjWuTKU-He4xaNxrtz2Dm3iPo8,2333 +numpy/typing/tests/data/fail/testing.pyi,sha256=m8d2OZZ1DtsHfmnTwvdMRETUfo0lwRzaOXjuyNi08PQ,1399 +numpy/typing/tests/data/fail/twodim_base.pyi,sha256=ROt5iqOp9ENbXlMEG8dzUZxHD3N4lwcbyCffuJ4BLZE,936 +numpy/typing/tests/data/fail/type_check.pyi,sha256=hRXyE4Ywx6zjtSgiHwKRs4k47M4hnPjj7yjVhi91IaU,397 +numpy/typing/tests/data/fail/ufunc_config.pyi,sha256=v5rd68Y2TzLplIOaOXM4h66HqSv8XbapR0b3xaoUOdQ,589 +numpy/typing/tests/data/fail/ufunclike.pyi,sha256=ejCb6kb7mmxPH0QrDsYfdFSLLPFKx0IZ9xSLs3YXOzg,649 +numpy/typing/tests/data/fail/ufuncs.pyi,sha256=XBoxO597ponBkFcCfwCS3s-jKfcnDzC_K5n2uBPrD6E,505 +numpy/typing/tests/data/fail/warnings_and_errors.pyi,sha256=SoFIznFd_xDifIsS0pv0aqS2BvhZaT6xsOA0zJrRJkA,200 +numpy/typing/tests/data/misc/extended_precision.pyi,sha256=n1nzRzRa_oKDdNExxB0qRIQr8MeDIosbLU6Vpgi6ZYo,322 +numpy/typing/tests/data/mypy.ini,sha256=rfUCMP01SsfRLJ-MRGEicI9XW-HJDoTJ_ncaACuKJ0s,245 +numpy/typing/tests/data/pass/__pycache__/arithmetic.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/array_constructors.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/array_like.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/arrayprint.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/arrayterator.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/bitwise_ops.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/comparisons.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/dtype.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/einsumfunc.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/flatiter.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/fromnumeric.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/index_tricks.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/lib_user_array.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/lib_utils.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/lib_version.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/literal.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/ma.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/mod.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/modules.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/multiarray.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/ndarray_conversion.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/ndarray_misc.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/ndarray_shape_manipulation.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/nditer.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/numeric.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/numerictypes.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/random.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/recfunctions.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/scalars.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/shape.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/simple.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/simple_py3.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/ufunc_config.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/ufunclike.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/ufuncs.cpython-311.pyc,, +numpy/typing/tests/data/pass/__pycache__/warnings_and_errors.cpython-311.pyc,, +numpy/typing/tests/data/pass/arithmetic.py,sha256=t4UK-TROh0uYPlUNn5CZHdTysECmDZa04uUOCZO58cY,7762 +numpy/typing/tests/data/pass/array_constructors.py,sha256=rfJ8SRB4raElxRjsHBCsZIkZAfqZMie0VE8sSKMgkHg,2447 +numpy/typing/tests/data/pass/array_like.py,sha256=-wTiw2o_rLw1aeT7FSh60RKguhvxKyr_Vv5XNXTYeS4,1032 +numpy/typing/tests/data/pass/arrayprint.py,sha256=y_KkuLz1uM7pv53qfq7GQOuud4LoXE3apK1wtARdVyM,766 +numpy/typing/tests/data/pass/arrayterator.py,sha256=FqcpKdUQBQ0FazHFxr9MsLEZG-jnJVGKWZX2owRr4DQ,393 +numpy/typing/tests/data/pass/bitwise_ops.py,sha256=FmEs_sKaU9ox-5f0NU3_TRIv0XxLQVEZ8rou9VNehb4,964 +numpy/typing/tests/data/pass/comparisons.py,sha256=5aGrNl3D7Yd1m9WVkHrjJtqi7SricTxrEMtmIV9x0aE,3298 +numpy/typing/tests/data/pass/dtype.py,sha256=YDuYAb0oKoJc9eOnKJuoPfLbIKOgEdE04_CYxRS4U5I,1070 +numpy/typing/tests/data/pass/einsumfunc.py,sha256=eXj5L5MWPtQHgrHPsJ36qqrmBHqct9UoujjJCvHnF1k,1370 +numpy/typing/tests/data/pass/flatiter.py,sha256=tpKL_EAjkJoCZ5C0iuIX0dNCwQ9wUq1XlBMP-n2rjM4,203 +numpy/typing/tests/data/pass/fromnumeric.py,sha256=d_hVLyrVDFPVx33aqLIyAGYYQ8XAJFIzrAsE8QCoof4,3991 +numpy/typing/tests/data/pass/index_tricks.py,sha256=dmonWJMUKsXg23zD_mibEEtd4b5ys-sEfT9Fnnq08x8,1402 +numpy/typing/tests/data/pass/lib_user_array.py,sha256=Za_n84msWtV8dqQZhMhvh7lzu5WZvO8ixTPkEqO2Hms,590 +numpy/typing/tests/data/pass/lib_utils.py,sha256=bj1sEA4gsmezqbYdqKnVtKzY_fb64w7PEoZwNvaaUdA,317 +numpy/typing/tests/data/pass/lib_version.py,sha256=HnuGOx7tQA_bcxFIJ3dRoMAR0fockxg4lGqQ4g7LGIw,299 +numpy/typing/tests/data/pass/literal.py,sha256=HSG-2Gf7J5ax3mjTOeh0pAYUrVOqboTkrt2m6ssfqVY,1508 +numpy/typing/tests/data/pass/ma.py,sha256=ZIi85AwntBX7M1LIvl4yEGixAauHAS2GINBR42Ri4Hw,3362 +numpy/typing/tests/data/pass/mod.py,sha256=owFL1fys3LPTWpAlsjS-IzW4sSu98ncp2BnsIetLSrA,1576 +numpy/typing/tests/data/pass/modules.py,sha256=g9PhyLO6rflYHZtmryx1VWTubphN4TAPUSfoiYriTqE,625 +numpy/typing/tests/data/pass/multiarray.py,sha256=MxHax6l94yqlTVZleAqG77ILEbW6wU5osPcHzxJ85ns,1331 +numpy/typing/tests/data/pass/ndarray_conversion.py,sha256=d7cFNUrofdLXh9T_9RG3Esz1XOihWWQNlz5Lb0yt6dM,1525 +numpy/typing/tests/data/pass/ndarray_misc.py,sha256=wBbQDHcpiIlMl-z5ToVOrFpoxrqXQMBq1dFSWfwGJNE,3699 +numpy/typing/tests/data/pass/ndarray_shape_manipulation.py,sha256=37eYwMNqMLwanIW9-63hrokacnSz2K_qtPUlkdpsTjo,640 +numpy/typing/tests/data/pass/nditer.py,sha256=nYO45Lw3ZNbQq75Vht86zzLZ4cWzP3ml0rxDPlYt8_8,63 +numpy/typing/tests/data/pass/numeric.py,sha256=pOwxnmZmdCtDKh9ih0h5GFIUPJwsi97NBs1y5ZAGyUM,1622 +numpy/typing/tests/data/pass/numerictypes.py,sha256=6x6eN9-5NsSQUSc6rf3fYieS2poYEY0t_ujbwgF9S5Q,331 +numpy/typing/tests/data/pass/random.py,sha256=UJF6epKYGfGq9QlrR9YuA7EK_mI8AQ2osdA4Uhsh1ms,61824 +numpy/typing/tests/data/pass/recfunctions.py,sha256=GwDirrHsL3upfIsAEZakPt95-RLY7BpXqU_KXxi4HhQ,5003 +numpy/typing/tests/data/pass/scalars.py,sha256=pzV3Y20dd6xB9NRsJ0YSdkcvI5XcD8cEWtEo1KTL1SU,3724 +numpy/typing/tests/data/pass/shape.py,sha256=L2iugxTnbm8kmBpaJVYpURKJEAnI7TH2KtuYeqNR9co,445 +numpy/typing/tests/data/pass/simple.py,sha256=lPj620zkTA8Sg893eu2mGuj-Xq2BGZ_1dcmfsVDkz8g,2751 +numpy/typing/tests/data/pass/simple_py3.py,sha256=HuLrc5aphThQkLjU2_19KgGFaXwKOfSzXe0p2xMm8ZI,96 +numpy/typing/tests/data/pass/ufunc_config.py,sha256=uzXOhCl9N4LPV9hV2Iqg_skgkKMbBPBF0GXPU9EMeuE,1205 +numpy/typing/tests/data/pass/ufunclike.py,sha256=U4Aay11VALvm22bWEX0eDWuN5qxJlg_hH5IpOL62M3I,1125 +numpy/typing/tests/data/pass/ufuncs.py,sha256=1Rem_geEm4qyD3XaRA1NAPKwr3YjRq68zbIlC_Xhi9M,422 +numpy/typing/tests/data/pass/warnings_and_errors.py,sha256=ETLZkDTGpZspvwjVYAZlnA1gH4PJ4bSY5PkWyxTjusU,161 +numpy/typing/tests/data/reveal/arithmetic.pyi,sha256=PQtbiDs4NYye_ycCJF4B625-j3iDfgD5GXIp_W0OIM4,26800 +numpy/typing/tests/data/reveal/array_api_info.pyi,sha256=oWKW0yGS9xKcLZnH2QeeixMBcI74dNIcwZr0bwGmDVM,3017 +numpy/typing/tests/data/reveal/array_constructors.pyi,sha256=OkW6r-NkRUDawuZAFpM30Jf_2QGxFPKXPxIjNZWa7k0,12854 +numpy/typing/tests/data/reveal/arraypad.pyi,sha256=Dg5ss1cDS_QiNT4YEheHXMa2beM4qBTUb1mq-REkh6A,653 +numpy/typing/tests/data/reveal/arrayprint.pyi,sha256=iUHzZaUrYFGC9QBCxhiEAIJODeqGwG7VCv875il-9gY,777 +numpy/typing/tests/data/reveal/arraysetops.pyi,sha256=Hhe49rLgj0P8SXElncNvLeCv1OqdI-iryB_673w7vL4,4411 +numpy/typing/tests/data/reveal/arrayterator.pyi,sha256=QPRyZzHFmti4HlrJ315dgzBjaet8LqM9il-8uc9e2P8,1039 +numpy/typing/tests/data/reveal/bitwise_ops.pyi,sha256=tlyf8qGUwuuavvkDDu1oXr5SSPNcE137fFT1jveexg4,4660 +numpy/typing/tests/data/reveal/char.pyi,sha256=9QbiMbkKycnZl4f4eKBoF_rAxIUIv3vBcOQyksHJCug,11470 +numpy/typing/tests/data/reveal/chararray.pyi,sha256=4oqRNZt7jIdfbNVgcsWPDVVFrrEYhqjAExaNzPya_lY,5199 +numpy/typing/tests/data/reveal/comparisons.pyi,sha256=mXRfm3ZUsk8YbSPg9ugPSWLGRwzUVy4BEVN7q4K56tc,7195 +numpy/typing/tests/data/reveal/constants.pyi,sha256=AazwlvF--Te1dt35f8lkDLNuo3jQXqmGvddDQ37jAE0,333 +numpy/typing/tests/data/reveal/ctypeslib.pyi,sha256=U9ZO5GnGHxVyv-OWRYWHSXctH7LGHPWDdyNVl_saQEQ,4134 +numpy/typing/tests/data/reveal/datasource.pyi,sha256=B9nCoOPE4fJvBIeInAgUCg5pIsr8IYOu_iToqt6n-Nc,583 +numpy/typing/tests/data/reveal/dtype.pyi,sha256=IdxNE3NIE0YKpVw4yI9lS-wWPmeFyfGCW2V0oyor4zk,5080 +numpy/typing/tests/data/reveal/einsumfunc.pyi,sha256=qPYk5W3lardDdgsQIGyu356iIGDnb0P38UKQDXWQlrk,1926 +numpy/typing/tests/data/reveal/emath.pyi,sha256=fcf0-GftYRByfJFuZC-MvzHlQU4A-f9-kPnxzQt48E0,2125 +numpy/typing/tests/data/reveal/fft.pyi,sha256=uZOJ0ljmmnejfPEwMsfUGDb52NOuTh7Npl7ONwx-Y2k,1601 +numpy/typing/tests/data/reveal/flatiter.pyi,sha256=ZxgdgbRWYXlyxlPOXJzZSHvALqGsK3aV4lf9RePghdA,1347 +numpy/typing/tests/data/reveal/fromnumeric.pyi,sha256=xweKmm6uKVgJF4-AwtM6hGEI_YHosu-8jXnd8yjSfJ4,15066 +numpy/typing/tests/data/reveal/getlimits.pyi,sha256=mH0kk94VBu-O5ZzA1nki80jttDK_EBGOsLQOZo3Rq18,1547 +numpy/typing/tests/data/reveal/histograms.pyi,sha256=Mr7P7JYMWF9jM6w5othyzh8CN3ygd2A-WRoB4jImnzk,1257 +numpy/typing/tests/data/reveal/index_tricks.pyi,sha256=4dvG8RXY5ktKXo1uC_pfPHXBDd7tatTbjCs8xr8M2os,3241 +numpy/typing/tests/data/reveal/lib_function_base.pyi,sha256=LMCyduuUjX1E7ruBI-B_cEJQ_rUt9ZO21ck22_OLa_c,10112 +numpy/typing/tests/data/reveal/lib_polynomial.pyi,sha256=CrG0zxbY-HddD7D93q5Cow6c_3mx3nVb1ZCcAq5mC4U,5660 +numpy/typing/tests/data/reveal/lib_utils.pyi,sha256=oQCay2NF8pYHD5jNgRZKNjn8uJW4TJqUPIlytOwDSi0,436 +numpy/typing/tests/data/reveal/lib_version.pyi,sha256=y4ZJSLEeS273Zd6fqaE2XNdczTS0-cwIJ2Yn_4Otm44,572 +numpy/typing/tests/data/reveal/linalg.pyi,sha256=UAa92Iwqtj4_5rLC9S-KNVKKE72f4N0Jde6fWHhKHmM,5905 +numpy/typing/tests/data/reveal/ma.pyi,sha256=5FCR2aqUpKOtoQcazro_5C-NE2MrywouDrMHirVyHF0,16223 +numpy/typing/tests/data/reveal/matrix.pyi,sha256=ntknd4qkGbaBMMzPlkTeahyg_H8_TDBJQDbd36a_QfY,3040 +numpy/typing/tests/data/reveal/memmap.pyi,sha256=OCcEhR5mvvXk4UhF6lRqmkxU2NcAqJ4nqAuBpcroQ1g,719 +numpy/typing/tests/data/reveal/mod.pyi,sha256=-hF5jJQYbicLsWPTn0KnwvRN4yb1YFWyCwM-mLD1rqE,7196 +numpy/typing/tests/data/reveal/modules.pyi,sha256=_Gvxgql5KbJFL1Mj5gFAphzyGC44AkuNZLnYkv-3LRA,1858 +numpy/typing/tests/data/reveal/multiarray.pyi,sha256=oz81sV4JUBbd6memodStUpT11TARzqRXWUs4H0cU-YA,7779 +numpy/typing/tests/data/reveal/nbit_base_example.pyi,sha256=9OqWKUGRGCIt-mywzDmZExTOsM7l3JGw0YAPB9rs_8k,687 +numpy/typing/tests/data/reveal/ndarray_assignability.pyi,sha256=KOl5ActvtUx6h1oTQT3c0EiU5eCDbMD1okQVfxpc4j0,2668 +numpy/typing/tests/data/reveal/ndarray_conversion.pyi,sha256=SAI9kxMNl66L8n7kO3jn7-EL_3Ygn46behqD_dVa5Hw,3309 +numpy/typing/tests/data/reveal/ndarray_misc.pyi,sha256=8jwi9O-iGcojU0xSF_GUYMFRpkRdol5hQza0hkziNXc,8663 +numpy/typing/tests/data/reveal/ndarray_shape_manipulation.pyi,sha256=z8SRTWdl6fSj_ENNF-M5jZnujUl1180WaFMAanXqCVw,1394 +numpy/typing/tests/data/reveal/nditer.pyi,sha256=yih7UE0OynR7GuVCGgwhzjTjARwOXikDe6Dr4ymRC2g,1898 +numpy/typing/tests/data/reveal/nested_sequence.pyi,sha256=Z2vwweUjoqxR0zUUldOUXsg6mkDfDP1BMyFV2hje5Z8,612 +numpy/typing/tests/data/reveal/npyio.pyi,sha256=p6jJFmcwXuQhshYC70zhg_itI1kLiDu9saUCNwYpFNo,3493 +numpy/typing/tests/data/reveal/numeric.pyi,sha256=0hvPN803QJoO38lYY68of7M-1KGXqdgHy9RdqcHwO-M,5869 +numpy/typing/tests/data/reveal/numerictypes.pyi,sha256=4lnZQTgVtig8UuDwuETyQ6jRFxsYv6tnni2ZJaDyMM0,1331 +numpy/typing/tests/data/reveal/polynomial_polybase.pyi,sha256=V7ulOvXuAcduWTD_7Jg1yPCLvROq8E-10GobfNlKXD8,7925 +numpy/typing/tests/data/reveal/polynomial_polyutils.pyi,sha256=I_4waxJEeUsp5pjnbBN55kqZ2kycK8akD_XvhsgsCGY,10642 +numpy/typing/tests/data/reveal/polynomial_series.pyi,sha256=YowKiIaDd2Je0PjEmXDINUXe4il0r4KDkpzDbYpwG38,6853 +numpy/typing/tests/data/reveal/random.pyi,sha256=xXJobSp5nVBelmrBO_OTvV8XQnbnZjbAyJfrRwlJshg,104296 +numpy/typing/tests/data/reveal/rec.pyi,sha256=E8lxkOQ4qSwwX20Y4d438s5g-kTnNARsZc4f-Y8OhZo,3378 +numpy/typing/tests/data/reveal/scalars.pyi,sha256=5s5Xm1HoA6bwwqK4gfEWqoNk45dAQvxAZLZc2zUhe3A,6378 +numpy/typing/tests/data/reveal/shape.pyi,sha256=ZT6e5LW4nU90tA-Av5NLiyoaPW9NIX_XkWJ-LOOzh84,262 +numpy/typing/tests/data/reveal/shape_base.pyi,sha256=xbnt0jps1djVxVMn4Lj8bxGl-mGvbhqSKFVWYcFApLg,2006 +numpy/typing/tests/data/reveal/stride_tricks.pyi,sha256=Cm9P_F7promu0zGZmo957SOFCZ6Np8wSv5ecR_hB668,1315 +numpy/typing/tests/data/reveal/strings.pyi,sha256=WvSd8xHIdxQdah3Q0ZJUva79jfVngB3UD9yb6awDW8w,9547 +numpy/typing/tests/data/reveal/testing.pyi,sha256=vP3uEWEdFHrfv_Q4OaJ0Oo5gUqUxkkIRVjvJMsqiHs8,8443 +numpy/typing/tests/data/reveal/twodim_base.pyi,sha256=TiBbWXI0xRCgk0bE-Bd4ZryWaLeJIQ5I-6KBjIVoMuE,4237 +numpy/typing/tests/data/reveal/type_check.pyi,sha256=W7rJUEf_iwI0D1FIVjhCEfzIjw_T04qcBYFxuPwnXAo,2392 +numpy/typing/tests/data/reveal/ufunc_config.pyi,sha256=XoD9fxaMVCGgyMncWKIJssFBO0SmndHsDs0hDXS04A8,1162 +numpy/typing/tests/data/reveal/ufunclike.pyi,sha256=0jwIYSgXn0usVGkzyZz0ttO5tSYfWMYu_U2ByqrzuRQ,1183 +numpy/typing/tests/data/reveal/ufuncs.pyi,sha256=2IYvfPlLCuqgoyNKzbcv3mr-Dva2cyUSWtBWuM77sDk,4789 +numpy/typing/tests/data/reveal/warnings_and_errors.pyi,sha256=5qqRFzPOon1GhU_i5CHDxQLPKVcO2EMhbc851V8Gusc,449 +numpy/typing/tests/test_isfile.py,sha256=yaRIX3JLmwY1cgD-xxKvJjMVVBRmv9QNSXx9kQSoVAc,878 +numpy/typing/tests/test_runtime.py,sha256=YHS0Hgv1v3cip7C14UcsJWLGI37m18MqXrwLmb88Ctc,2919 +numpy/typing/tests/test_typing.py,sha256=VERPf6NJ6gRLoKk0ki-s1wvDS4E--InjNUaj63_Q-00,6289 +numpy/version.py,sha256=tCez68uBjSwQieHbrS--VqpB0-0Hn0sTOP5MtXDEx_g,293 +numpy/version.pyi,sha256=x3oCrDqM_gQhitdDgfgMhJ-UPabIXk5etqBq8HUwUok,358 diff --git a/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/WHEEL b/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/WHEEL new file mode 100644 index 0000000..882a79b --- /dev/null +++ b/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: meson +Root-Is-Purelib: false +Tag: cp311-cp311-manylinux_2_27_x86_64 +Tag: cp311-cp311-manylinux_2_28_x86_64 + diff --git a/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/entry_points.txt b/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/entry_points.txt new file mode 100644 index 0000000..48c4f64 --- /dev/null +++ b/venv/lib/python3.11/site-packages/numpy-2.3.4.dist-info/entry_points.txt @@ -0,0 +1,13 @@ +[pkg_config] +numpy = numpy._core.lib.pkgconfig + +[array_api] +numpy = numpy + +[pyinstaller40] +hook-dirs = numpy:_pyinstaller_hooks_dir + +[console_scripts] +f2py = numpy.f2py.f2py2e:main +numpy-config = numpy._configtool:main + diff --git a/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/METADATA b/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/METADATA new file mode 100644 index 0000000..10b290a --- /dev/null +++ b/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/METADATA @@ -0,0 +1,105 @@ +Metadata-Version: 2.4 +Name: packaging +Version: 25.0 +Summary: Core utilities for Python packages +Author-email: Donald Stufft +Requires-Python: >=3.8 +Description-Content-Type: text/x-rst +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: License :: OSI Approved :: BSD License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Typing :: Typed +License-File: LICENSE +License-File: LICENSE.APACHE +License-File: LICENSE.BSD +Project-URL: Documentation, https://packaging.pypa.io/ +Project-URL: Source, https://github.com/pypa/packaging + +packaging +========= + +.. start-intro + +Reusable core utilities for various Python Packaging +`interoperability specifications `_. + +This library provides utilities that implement the interoperability +specifications which have clearly one correct behaviour (eg: :pep:`440`) +or benefit greatly from having a single shared implementation (eg: :pep:`425`). + +.. end-intro + +The ``packaging`` project includes the following: version handling, specifiers, +markers, requirements, tags, utilities. + +Documentation +------------- + +The `documentation`_ provides information and the API for the following: + +- Version Handling +- Specifiers +- Markers +- Requirements +- Tags +- Utilities + +Installation +------------ + +Use ``pip`` to install these utilities:: + + pip install packaging + +The ``packaging`` library uses calendar-based versioning (``YY.N``). + +Discussion +---------- + +If you run into bugs, you can file them in our `issue tracker`_. + +You can also join ``#pypa`` on Freenode to ask questions or get involved. + + +.. _`documentation`: https://packaging.pypa.io/ +.. _`issue tracker`: https://github.com/pypa/packaging/issues + + +Code of Conduct +--------------- + +Everyone interacting in the packaging project's codebases, issue trackers, chat +rooms, and mailing lists is expected to follow the `PSF Code of Conduct`_. + +.. _PSF Code of Conduct: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md + +Contributing +------------ + +The ``CONTRIBUTING.rst`` file outlines how to contribute to this project as +well as how to report a potential security issue. The documentation for this +project also covers information about `project development`_ and `security`_. + +.. _`project development`: https://packaging.pypa.io/en/latest/development/ +.. _`security`: https://packaging.pypa.io/en/latest/security/ + +Project History +--------------- + +Please review the ``CHANGELOG.rst`` file or the `Changelog documentation`_ for +recent changes and project history. + +.. _`Changelog documentation`: https://packaging.pypa.io/en/latest/changelog/ + diff --git a/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/RECORD b/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/RECORD new file mode 100644 index 0000000..723120f --- /dev/null +++ b/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/RECORD @@ -0,0 +1,40 @@ +packaging-25.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +packaging-25.0.dist-info/METADATA,sha256=W2EaYJw4_vw9YWv0XSCuyY-31T8kXayp4sMPyFx6woI,3281 +packaging-25.0.dist-info/RECORD,, +packaging-25.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82 +packaging-25.0.dist-info/licenses/LICENSE,sha256=ytHvW9NA1z4HS6YU0m996spceUDD2MNIUuZcSQlobEg,197 +packaging-25.0.dist-info/licenses/LICENSE.APACHE,sha256=DVQuDIgE45qn836wDaWnYhSdxoLXgpRRKH4RuTjpRZQ,10174 +packaging-25.0.dist-info/licenses/LICENSE.BSD,sha256=tw5-m3QvHMb5SLNMFqo5_-zpQZY2S8iP8NIYDwAo-sU,1344 +packaging/__init__.py,sha256=_0cDiPVf2S-bNfVmZguxxzmrIYWlyASxpqph4qsJWUc,494 +packaging/__pycache__/__init__.cpython-311.pyc,, +packaging/__pycache__/_elffile.cpython-311.pyc,, +packaging/__pycache__/_manylinux.cpython-311.pyc,, +packaging/__pycache__/_musllinux.cpython-311.pyc,, +packaging/__pycache__/_parser.cpython-311.pyc,, +packaging/__pycache__/_structures.cpython-311.pyc,, +packaging/__pycache__/_tokenizer.cpython-311.pyc,, +packaging/__pycache__/markers.cpython-311.pyc,, +packaging/__pycache__/metadata.cpython-311.pyc,, +packaging/__pycache__/requirements.cpython-311.pyc,, +packaging/__pycache__/specifiers.cpython-311.pyc,, +packaging/__pycache__/tags.cpython-311.pyc,, +packaging/__pycache__/utils.cpython-311.pyc,, +packaging/__pycache__/version.cpython-311.pyc,, +packaging/_elffile.py,sha256=UkrbDtW7aeq3qqoAfU16ojyHZ1xsTvGke_WqMTKAKd0,3286 +packaging/_manylinux.py,sha256=t4y_-dTOcfr36gLY-ztiOpxxJFGO2ikC11HgfysGxiM,9596 +packaging/_musllinux.py,sha256=p9ZqNYiOItGee8KcZFeHF_YcdhVwGHdK6r-8lgixvGQ,2694 +packaging/_parser.py,sha256=gYfnj0pRHflVc4RHZit13KNTyN9iiVcU2RUCGi22BwM,10221 +packaging/_structures.py,sha256=q3eVNmbWJGG_S0Dit_S3Ao8qQqz_5PYTXFAKBZe5yr4,1431 +packaging/_tokenizer.py,sha256=OYzt7qKxylOAJ-q0XyK1qAycyPRYLfMPdGQKRXkZWyI,5310 +packaging/licenses/__init__.py,sha256=VsK4o27CJXWfTi8r2ybJmsBoCdhpnBWuNrskaCVKP7U,5715 +packaging/licenses/__pycache__/__init__.cpython-311.pyc,, +packaging/licenses/__pycache__/_spdx.cpython-311.pyc,, +packaging/licenses/_spdx.py,sha256=oAm1ztPFwlsmCKe7lAAsv_OIOfS1cWDu9bNBkeu-2ns,48398 +packaging/markers.py,sha256=P0we27jm1xUzgGMJxBjtUFCIWeBxTsMeJTOJ6chZmAY,12049 +packaging/metadata.py,sha256=8IZErqQQnNm53dZZuYq4FGU4_dpyinMeH1QFBIWIkfE,34739 +packaging/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +packaging/requirements.py,sha256=gYyRSAdbrIyKDY66ugIDUQjRMvxkH2ALioTmX3tnL6o,2947 +packaging/specifiers.py,sha256=gtPu5DTc-F9baLq3FTGEK6dPhHGCuwwZetaY0PSV2gs,40055 +packaging/tags.py,sha256=41s97W9Zatrq2Ed7Rc3qeBDaHe8pKKvYq2mGjwahfXk,22745 +packaging/utils.py,sha256=0F3Hh9OFuRgrhTgGZUl5K22Fv1YP2tZl1z_2gO6kJiA,5050 +packaging/version.py,sha256=olfyuk_DPbflNkJ4wBWetXQ17c74x3DB501degUv7DY,16676 diff --git a/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/WHEEL b/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/WHEEL new file mode 100644 index 0000000..d8b9936 --- /dev/null +++ b/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: flit 3.12.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/licenses/LICENSE new file mode 100644 index 0000000..6f62d44 --- /dev/null +++ b/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/licenses/LICENSE @@ -0,0 +1,3 @@ +This software is made available under the terms of *either* of the licenses +found in LICENSE.APACHE or LICENSE.BSD. Contributions to this software is made +under the terms of *both* these licenses. diff --git a/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/licenses/LICENSE.APACHE b/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/licenses/LICENSE.APACHE new file mode 100644 index 0000000..f433b1a --- /dev/null +++ b/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/licenses/LICENSE.APACHE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/licenses/LICENSE.BSD b/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/licenses/LICENSE.BSD new file mode 100644 index 0000000..42ce7b7 --- /dev/null +++ b/venv/lib/python3.11/site-packages/packaging-25.0.dist-info/licenses/LICENSE.BSD @@ -0,0 +1,23 @@ +Copyright (c) Donald Stufft and individual contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/METADATA b/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/METADATA new file mode 100644 index 0000000..3d5b261 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/METADATA @@ -0,0 +1,175 @@ +Metadata-Version: 2.4 +Name: pillow +Version: 12.0.0 +Summary: Python Imaging Library (fork) +Author-email: "Jeffrey A. Clark" +License-Expression: MIT-CMU +Project-URL: Changelog, https://github.com/python-pillow/Pillow/releases +Project-URL: Documentation, https://pillow.readthedocs.io +Project-URL: Funding, https://tidelift.com/subscription/pkg/pypi-pillow?utm_source=pypi-pillow&utm_medium=pypi +Project-URL: Homepage, https://python-pillow.github.io +Project-URL: Mastodon, https://fosstodon.org/@pillow +Project-URL: Release notes, https://pillow.readthedocs.io/en/stable/releasenotes/index.html +Project-URL: Source, https://github.com/python-pillow/Pillow +Keywords: Imaging +Classifier: Development Status :: 6 - Mature +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Multimedia :: Graphics +Classifier: Topic :: Multimedia :: Graphics :: Capture :: Digital Camera +Classifier: Topic :: Multimedia :: Graphics :: Capture :: Screen Capture +Classifier: Topic :: Multimedia :: Graphics :: Graphics Conversion +Classifier: Topic :: Multimedia :: Graphics :: Viewers +Classifier: Typing :: Typed +Requires-Python: >=3.10 +Description-Content-Type: text/markdown +License-File: LICENSE +Provides-Extra: docs +Requires-Dist: furo; extra == "docs" +Requires-Dist: olefile; extra == "docs" +Requires-Dist: sphinx>=8.2; extra == "docs" +Requires-Dist: sphinx-autobuild; extra == "docs" +Requires-Dist: sphinx-copybutton; extra == "docs" +Requires-Dist: sphinx-inline-tabs; extra == "docs" +Requires-Dist: sphinxext-opengraph; extra == "docs" +Provides-Extra: fpx +Requires-Dist: olefile; extra == "fpx" +Provides-Extra: mic +Requires-Dist: olefile; extra == "mic" +Provides-Extra: test-arrow +Requires-Dist: arro3-compute; extra == "test-arrow" +Requires-Dist: arro3-core; extra == "test-arrow" +Requires-Dist: nanoarrow; extra == "test-arrow" +Requires-Dist: pyarrow; extra == "test-arrow" +Provides-Extra: tests +Requires-Dist: check-manifest; extra == "tests" +Requires-Dist: coverage>=7.4.2; extra == "tests" +Requires-Dist: defusedxml; extra == "tests" +Requires-Dist: markdown2; extra == "tests" +Requires-Dist: olefile; extra == "tests" +Requires-Dist: packaging; extra == "tests" +Requires-Dist: pyroma>=5; extra == "tests" +Requires-Dist: pytest; extra == "tests" +Requires-Dist: pytest-cov; extra == "tests" +Requires-Dist: pytest-timeout; extra == "tests" +Requires-Dist: pytest-xdist; extra == "tests" +Requires-Dist: trove-classifiers>=2024.10.12; extra == "tests" +Provides-Extra: xmp +Requires-Dist: defusedxml; extra == "xmp" +Dynamic: license-file + +

+ Pillow logo +

+ +# Pillow + +## Python Imaging Library (Fork) + +Pillow is the friendly PIL fork by [Jeffrey A. Clark and +contributors](https://github.com/python-pillow/Pillow/graphs/contributors). +PIL is the Python Imaging Library by Fredrik Lundh and contributors. +As of 2019, Pillow development is +[supported by Tidelift](https://tidelift.com/subscription/pkg/pypi-pillow?utm_source=pypi-pillow&utm_medium=readme&utm_campaign=enterprise). + + + + + + + + + + + + + + + + + + +
docs + Documentation Status +
tests + GitHub Actions build status (Lint) + GitHub Actions build status (Test Linux and macOS) + GitHub Actions build status (Test Windows) + GitHub Actions build status (Test MinGW) + GitHub Actions build status (Test Docker) + GitHub Actions build status (Wheels) + Code coverage + Fuzzing Status +
package + Zenodo + Tidelift + Newest PyPI version + Number of PyPI downloads + OpenSSF Best Practices +
social + Join the chat at https://gitter.im/python-pillow/Pillow + Follow on https://fosstodon.org/@pillow +
+ +## Overview + +The Python Imaging Library adds image processing capabilities to your Python interpreter. + +This library provides extensive file format support, an efficient internal representation, and fairly powerful image processing capabilities. + +The core image library is designed for fast access to data stored in a few basic pixel formats. It should provide a solid foundation for a general image processing tool. + +## More information + +- [Documentation](https://pillow.readthedocs.io/) + - [Installation](https://pillow.readthedocs.io/en/latest/installation/basic-installation.html) + - [Handbook](https://pillow.readthedocs.io/en/latest/handbook/index.html) +- [Contribute](https://github.com/python-pillow/Pillow/blob/main/.github/CONTRIBUTING.md) + - [Issues](https://github.com/python-pillow/Pillow/issues) + - [Pull requests](https://github.com/python-pillow/Pillow/pulls) +- [Release notes](https://pillow.readthedocs.io/en/stable/releasenotes/index.html) +- [Changelog](https://github.com/python-pillow/Pillow/releases) + - [Pre-fork](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst#pre-fork) + +## Report a vulnerability + +To report a security vulnerability, please follow the procedure described in the [Tidelift security policy](https://tidelift.com/docs/security). diff --git a/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/RECORD b/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/RECORD new file mode 100644 index 0000000..a9aec38 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/RECORD @@ -0,0 +1,236 @@ +PIL/AvifImagePlugin.py,sha256=5IiDMvMZQXLnS3t25XJjlwgNWmeVSNaGfReWAp-V5lo,8994 +PIL/BdfFontFile.py,sha256=PhlZfIRmEfmorbhZZeSM5eebGo1Ei7fL-lR9XlfTZZA,3285 +PIL/BlpImagePlugin.py,sha256=Ub4vVKBEniiNBEgNizxScEpO1VKbC1w6iecWUU7T-Vs,16533 +PIL/BmpImagePlugin.py,sha256=-SNdj2godmaKYAc08dEng6z3mRPbYYHezjveIR5e-tU,19855 +PIL/BufrStubImagePlugin.py,sha256=JSqDhkPNPnFw0Qcz-gQJl-D_iSCFdtcLvPynshKJ4WM,1730 +PIL/ContainerIO.py,sha256=wkBqL2GDAb5fh3wrtfTGUfqioJipCl-lg2GxbjQrTZw,4604 +PIL/CurImagePlugin.py,sha256=-WEsgwQbA9rQzXB0HG0LK1V_qbuwHosPZ0T2IjfN8r0,1791 +PIL/DcxImagePlugin.py,sha256=DhqsmW7MjmnUSTGZ-Skv9hz1XeX3XoQQoAl9GWLAEEY,2145 +PIL/DdsImagePlugin.py,sha256=fjdfZK_eQtUp_-bjoRmt-5wgOT5GTmvg6aI-itch4mo,18906 +PIL/EpsImagePlugin.py,sha256=Q91Of8yr6VY12picGSU6k6HvgU9FgnQJvWrJQryiLnU,16552 +PIL/ExifTags.py,sha256=zW6kVikCosiyoCo7J7R62evD3hoxjKPchnVh8po7CZc,9931 +PIL/FitsImagePlugin.py,sha256=-oDJnAH113CK5qPvwz9lL81fkV1gla_tNfqLcq8zKgo,4644 +PIL/FliImagePlugin.py,sha256=4zxH8IXBX9DGi6dJRM6Y5NMdbA1d99x696mcGZHxHzI,4929 +PIL/FontFile.py,sha256=St7MxO5Q-oakCLWn3ZrgrtaT3wSsmAarxm8AU-G8Moc,3577 +PIL/FpxImagePlugin.py,sha256=aXfg0YdvNeJhxqh-f-f22D1NobQ8tSVCj-tpLE2PKfE,7293 +PIL/FtexImagePlugin.py,sha256=v2I5YkdfNA3iW35JzKnWry9v6Rgvr0oezGVOuArREac,3535 +PIL/GbrImagePlugin.py,sha256=ADLgy4hlBcC_3Rr2HsnIuXPoUvof1ddkhbEo5Yw8OMQ,2979 +PIL/GdImageFile.py,sha256=LP4Uxv3Y2ivGZIyOVuGJarDDVS7zK6F1Q6SNl4wyGuQ,2788 +PIL/GifImagePlugin.py,sha256=VNTEgDJRP6OIze8JVt0EXY1gMv3Xx90oECxawggCFAE,42213 +PIL/GimpGradientFile.py,sha256=gqqUkDbKVFCtBxt5VAhPS0HtLZDYFI6KWEaUhhTNNE8,3982 +PIL/GimpPaletteFile.py,sha256=hIHQ9LJ5ri0hy1e_vZYeD-n67UWdhEDlKc4vDxgaUdg,1860 +PIL/GribStubImagePlugin.py,sha256=I-_ZlKsSKANo7adUTnIx7pTUhQt-0B60DacLDOVm_3E,1759 +PIL/Hdf5StubImagePlugin.py,sha256=OuEQijGqVwTTSG4dB2vAyQzmN-NYT22tiuZHFH0Q0Sw,1741 +PIL/IcnsImagePlugin.py,sha256=dr_p68k2ECoONrw3Dqw3ISig39uXo39YY3nTfshUNHw,12405 +PIL/IcoImagePlugin.py,sha256=QCo29Toh08UX8vEcdCAaIeuidSolbPiZlCnQ4rUu2SQ,12491 +PIL/ImImagePlugin.py,sha256=wo5OL2PAcQW2MwRkJnS-N16toZzXWL95jx9FBM7l9ok,11567 +PIL/Image.py,sha256=2naP8UMkmSyU64EFc5crz4t02nV4f8ptFKfZdvbtBHQ,148085 +PIL/ImageChops.py,sha256=GEjlymcoDtA5OOeIxQVIX96BD-s6AXhb7TmSLYn2tUg,7946 +PIL/ImageCms.py,sha256=IuCm3gXKpb5Eu1kn-TB8cD9XJLZEa8fpkEjzVqAIKNk,40676 +PIL/ImageColor.py,sha256=IGA9C2umeED_EzS2Cvj6KsU0VutC9RstWIYPe8uDsVk,9441 +PIL/ImageDraw.py,sha256=FMn0AK_gxxJBYB8afOGF2FUP2KJPFvUf3UZp_KrJz7A,36287 +PIL/ImageDraw2.py,sha256=pdVMW7bVw3KwhXvRZh28Md4y-2xFfuo5fHcDnaYqVK4,7227 +PIL/ImageEnhance.py,sha256=4Elhz_lyyxLmx0GkSHrwOAmNJ2TkqVQPHejzGihZUMI,3627 +PIL/ImageFile.py,sha256=m6Se6q-5zsmnE7Bezp13q-H5F2yt5d4tO7YD06FGHx4,29600 +PIL/ImageFilter.py,sha256=MO1MBrbXDiX2IAGESdGm_0087bwmSZ_14ecAj28ojCY,18729 +PIL/ImageFont.py,sha256=2PGC3YI127GKrXYg4zP7_Tul2KCQ3c4ajU8LONVO9bc,63101 +PIL/ImageGrab.py,sha256=I9PHpsQf2VyNX4T8QL-8awFNotyAzB1mGxTt_I5FbTE,6471 +PIL/ImageMath.py,sha256=RQl6cRXGuszba4KwtbIudin_8U65shpWrajr9gTn1rw,10369 +PIL/ImageMode.py,sha256=aaZVHAiCEanOA2K1jN3DlW3NPKa8Dm5nIXTXErzyFms,2395 +PIL/ImageMorph.py,sha256=dobO2v2w7c8SjH7stFc3TP6HtU9O7JAWQz5Nu6mBxYg,8562 +PIL/ImageOps.py,sha256=bIcQFK_MtovfNSYTcOesp4So9OgsGrwt3cGsB7xlGRM,25567 +PIL/ImagePalette.py,sha256=M5tYUgadWR7mxUEByyVl7IV9QFFzAGiKKmAhCZtdG0w,9009 +PIL/ImagePath.py,sha256=5yUG5XCUil1KKTTA_8PgGhcmg-mnue-GK0FwTBlhjw4,371 +PIL/ImageQt.py,sha256=PTt5TPyngWL-Vuvx_bwnH17EOBe3tE7l4huVmvGQP5Y,6684 +PIL/ImageSequence.py,sha256=Mphgkr79scmYBgmi9ZguhDfVwHvpLSX5uZVHDZlrn0I,2253 +PIL/ImageShow.py,sha256=Ju0_Db2B4_n3yKJV9sDsF7_HAgciEdXlq6I1Eiw1YTo,10106 +PIL/ImageStat.py,sha256=FVTiYWGCciPW1QD61b7DYZlcDqR0dS6hsLjq-gcKcG4,5495 +PIL/ImageText.py,sha256=rkdTrW6pQCquXFOTu_0OoBfvCYiC9zQG__8JjGwnPYE,12103 +PIL/ImageTk.py,sha256=b5SntckGXs0ECsI2MmdJg3CSX6AtELsWh0Ohxu41u_k,8132 +PIL/ImageTransform.py,sha256=-qek7P3lzLddcXt9cWt5w_L11JGp2yY3AJtOfmJAkDc,3916 +PIL/ImageWin.py,sha256=LT05w8_vTfRrC3n9S9pM0TNbXrzZLEJHlCJil7Xv80k,8085 +PIL/ImtImagePlugin.py,sha256=SL5IrsHcblltxtX4v_HVFhYnR6haJ0AOd2NHhZKMImY,2665 +PIL/IptcImagePlugin.py,sha256=cOFy4epsqpMOWNgQ3Gj_dOrt2TPjbO0gjCvp_f1mUxk,6444 +PIL/Jpeg2KImagePlugin.py,sha256=IabyXVrNchWV9oOUU79eNjGSudq5tlvnihFimZH4VAA,13932 +PIL/JpegImagePlugin.py,sha256=ZMvTMZTxi2UHu87NXauQmhLC3tWEMxa2CgUhYcFq7yw,31318 +PIL/JpegPresets.py,sha256=lnqWHo4DLIHIulcdHp0NJ7CWexHt8T3w51kIKlLfkIA,12379 +PIL/McIdasImagePlugin.py,sha256=baOIkD-CIIeCgBFTf8kos928PKBuCUqYYa38u3WES_8,1877 +PIL/MicImagePlugin.py,sha256=aoIwkWVyr_X-dPvB6ldZOJF3a9kd_OeuEW3say5Y0QM,2564 +PIL/MpegImagePlugin.py,sha256=g7BZd93kWpFi41SG_wKFoi0yEPsioI4kj45b2F-3Vrw,2010 +PIL/MpoImagePlugin.py,sha256=S45qt7OcY7rBjYlwEk0nUmEj5IOu5z8KVLo066V1RBE,6722 +PIL/MspImagePlugin.py,sha256=oxk_MLUDvzJ4JDuOZCHkmqOPXniG42PHOyNGwe60slY,5892 +PIL/PSDraw.py,sha256=KMBGj3vXaFpblaIcA9KjFFTpdal41AQggY-UgzqoMkQ,6918 +PIL/PaletteFile.py,sha256=suDdAL6VMljXw4oEn1vhTt4DQ4vbpIHGd3A4oxOgE6s,1216 +PIL/PalmImagePlugin.py,sha256=WJ1b8I1xTSAXYDJhIpkVFCLu2LlpbiBD5d1Hr-m2l08,8748 +PIL/PcdImagePlugin.py,sha256=-gnMUqQH0R-aljsd3nZS9eBI1j75ijWD_HZfadE3RsQ,1774 +PIL/PcfFontFile.py,sha256=DqcyydQgP2vtiPFzj57KYHLuF2v-0oMTB-VkgYYHKhE,7223 +PIL/PcxImagePlugin.py,sha256=1xAq6CdH34cOsOgTPi4Wu2SKQCdQiTLVyqaMkYQZUP4,6245 +PIL/PdfImagePlugin.py,sha256=6lZLoQMVbAE-x1ESrv6PgGSyM9Ueck7e6E6ps-YQ-vI,9321 +PIL/PdfParser.py,sha256=Hr3ImLDSIKwUF6OrQ1GjlAnGi6ZpGVLWhGfKhqQ_DRM,37996 +PIL/PixarImagePlugin.py,sha256=l_4GwBd0mATnIXYJbwmmODU2vP7wewLu6BRviHCB2EI,1758 +PIL/PngImagePlugin.py,sha256=jGtbaGMrt9x0i9c500Nh1ofQ4M6w23Wlu67oTuwYEIA,51144 +PIL/PpmImagePlugin.py,sha256=vb5SP0IjQPzDRDE8jSPtcJv9K3Rh1LczAlt0Pg26i90,12391 +PIL/PsdImagePlugin.py,sha256=ImnNRG4VANs2GATXVEB5Q-yy1Jskc6XRVRtZYi2fALg,8685 +PIL/QoiImagePlugin.py,sha256=RPO63QsgHAsyPpcxh7ymeMYlnjVu5gT5ELolkvJt0vc,8572 +PIL/SgiImagePlugin.py,sha256=3Ql89s8vycNWjcxJwMw28iksV9Yj2xWoKBQ6c5DHXBg,6389 +PIL/SpiderImagePlugin.py,sha256=Bsg6pfZMctas1xYx__oL-ZZseUReZdnLy5a-aKEJhpE,10249 +PIL/SunImagePlugin.py,sha256=Hdxkhk0pxpBGxYhPJfCDLwsYcO1KjxjtplNMFYibIvk,4589 +PIL/TarIO.py,sha256=BqYUChCBb9F7Sh-uZ86iz1Dtoy2D0obNwGm65z1rdc0,1442 +PIL/TgaImagePlugin.py,sha256=2vDsFTcBUBHw1V80wpVv4tgpLDbPr6yVHi6Fvaqf0HY,6980 +PIL/TiffImagePlugin.py,sha256=cIQ48x3zmm5PFSG01wqweC8DJUhJxrX1R62c8Edw1Jg,85002 +PIL/TiffTags.py,sha256=cMmOVPxiq8Yt99J9DEQz4tXu8IZvsJFCSL3zJDGw3fM,17251 +PIL/WalImageFile.py,sha256=4o52MngMxr9dlMmCyIXu-11-QpEN6-MRcJnEfyjdc4M,5687 +PIL/WebPImagePlugin.py,sha256=h8hosK6SWJ5tAuSFFCboKTJ_dQCFthCGT9ooYq6TVCk,10054 +PIL/WmfImagePlugin.py,sha256=y1z3RPYozRQY8AOEs-iark--cv835yF9xENm7b0GNXo,5244 +PIL/XVThumbImagePlugin.py,sha256=cJSapkBasFt11O6XYXxqcyA-njxA5BD3wHhNj6VC7Fk,2115 +PIL/XbmImagePlugin.py,sha256=Fd6GVDEo73nyFICA3Z3w4LjkwoZWvhHB6rKCm5yVrho,2669 +PIL/XpmImagePlugin.py,sha256=jtUKavJCYwIAsJaJwSx8vJsx1oTbCywfDxePENmA93w,4400 +PIL/__init__.py,sha256=Q4KOEpR7S_Xsj30fvOsvR94xEpX4KUsVeUwaVP1fU80,2031 +PIL/__main__.py,sha256=Lpj4vef8mI7jA1sRCUAoVYaeePD_Uc898xF5c7XLx1A,133 +PIL/__pycache__/AvifImagePlugin.cpython-311.pyc,, +PIL/__pycache__/BdfFontFile.cpython-311.pyc,, +PIL/__pycache__/BlpImagePlugin.cpython-311.pyc,, +PIL/__pycache__/BmpImagePlugin.cpython-311.pyc,, +PIL/__pycache__/BufrStubImagePlugin.cpython-311.pyc,, +PIL/__pycache__/ContainerIO.cpython-311.pyc,, +PIL/__pycache__/CurImagePlugin.cpython-311.pyc,, +PIL/__pycache__/DcxImagePlugin.cpython-311.pyc,, +PIL/__pycache__/DdsImagePlugin.cpython-311.pyc,, +PIL/__pycache__/EpsImagePlugin.cpython-311.pyc,, +PIL/__pycache__/ExifTags.cpython-311.pyc,, +PIL/__pycache__/FitsImagePlugin.cpython-311.pyc,, +PIL/__pycache__/FliImagePlugin.cpython-311.pyc,, +PIL/__pycache__/FontFile.cpython-311.pyc,, +PIL/__pycache__/FpxImagePlugin.cpython-311.pyc,, +PIL/__pycache__/FtexImagePlugin.cpython-311.pyc,, +PIL/__pycache__/GbrImagePlugin.cpython-311.pyc,, +PIL/__pycache__/GdImageFile.cpython-311.pyc,, +PIL/__pycache__/GifImagePlugin.cpython-311.pyc,, +PIL/__pycache__/GimpGradientFile.cpython-311.pyc,, +PIL/__pycache__/GimpPaletteFile.cpython-311.pyc,, +PIL/__pycache__/GribStubImagePlugin.cpython-311.pyc,, +PIL/__pycache__/Hdf5StubImagePlugin.cpython-311.pyc,, +PIL/__pycache__/IcnsImagePlugin.cpython-311.pyc,, +PIL/__pycache__/IcoImagePlugin.cpython-311.pyc,, +PIL/__pycache__/ImImagePlugin.cpython-311.pyc,, +PIL/__pycache__/Image.cpython-311.pyc,, +PIL/__pycache__/ImageChops.cpython-311.pyc,, +PIL/__pycache__/ImageCms.cpython-311.pyc,, +PIL/__pycache__/ImageColor.cpython-311.pyc,, +PIL/__pycache__/ImageDraw.cpython-311.pyc,, +PIL/__pycache__/ImageDraw2.cpython-311.pyc,, +PIL/__pycache__/ImageEnhance.cpython-311.pyc,, +PIL/__pycache__/ImageFile.cpython-311.pyc,, +PIL/__pycache__/ImageFilter.cpython-311.pyc,, +PIL/__pycache__/ImageFont.cpython-311.pyc,, +PIL/__pycache__/ImageGrab.cpython-311.pyc,, +PIL/__pycache__/ImageMath.cpython-311.pyc,, +PIL/__pycache__/ImageMode.cpython-311.pyc,, +PIL/__pycache__/ImageMorph.cpython-311.pyc,, +PIL/__pycache__/ImageOps.cpython-311.pyc,, +PIL/__pycache__/ImagePalette.cpython-311.pyc,, +PIL/__pycache__/ImagePath.cpython-311.pyc,, +PIL/__pycache__/ImageQt.cpython-311.pyc,, +PIL/__pycache__/ImageSequence.cpython-311.pyc,, +PIL/__pycache__/ImageShow.cpython-311.pyc,, +PIL/__pycache__/ImageStat.cpython-311.pyc,, +PIL/__pycache__/ImageText.cpython-311.pyc,, +PIL/__pycache__/ImageTk.cpython-311.pyc,, +PIL/__pycache__/ImageTransform.cpython-311.pyc,, +PIL/__pycache__/ImageWin.cpython-311.pyc,, +PIL/__pycache__/ImtImagePlugin.cpython-311.pyc,, +PIL/__pycache__/IptcImagePlugin.cpython-311.pyc,, +PIL/__pycache__/Jpeg2KImagePlugin.cpython-311.pyc,, +PIL/__pycache__/JpegImagePlugin.cpython-311.pyc,, +PIL/__pycache__/JpegPresets.cpython-311.pyc,, +PIL/__pycache__/McIdasImagePlugin.cpython-311.pyc,, +PIL/__pycache__/MicImagePlugin.cpython-311.pyc,, +PIL/__pycache__/MpegImagePlugin.cpython-311.pyc,, +PIL/__pycache__/MpoImagePlugin.cpython-311.pyc,, +PIL/__pycache__/MspImagePlugin.cpython-311.pyc,, +PIL/__pycache__/PSDraw.cpython-311.pyc,, +PIL/__pycache__/PaletteFile.cpython-311.pyc,, +PIL/__pycache__/PalmImagePlugin.cpython-311.pyc,, +PIL/__pycache__/PcdImagePlugin.cpython-311.pyc,, +PIL/__pycache__/PcfFontFile.cpython-311.pyc,, +PIL/__pycache__/PcxImagePlugin.cpython-311.pyc,, +PIL/__pycache__/PdfImagePlugin.cpython-311.pyc,, +PIL/__pycache__/PdfParser.cpython-311.pyc,, +PIL/__pycache__/PixarImagePlugin.cpython-311.pyc,, +PIL/__pycache__/PngImagePlugin.cpython-311.pyc,, +PIL/__pycache__/PpmImagePlugin.cpython-311.pyc,, +PIL/__pycache__/PsdImagePlugin.cpython-311.pyc,, +PIL/__pycache__/QoiImagePlugin.cpython-311.pyc,, +PIL/__pycache__/SgiImagePlugin.cpython-311.pyc,, +PIL/__pycache__/SpiderImagePlugin.cpython-311.pyc,, +PIL/__pycache__/SunImagePlugin.cpython-311.pyc,, +PIL/__pycache__/TarIO.cpython-311.pyc,, +PIL/__pycache__/TgaImagePlugin.cpython-311.pyc,, +PIL/__pycache__/TiffImagePlugin.cpython-311.pyc,, +PIL/__pycache__/TiffTags.cpython-311.pyc,, +PIL/__pycache__/WalImageFile.cpython-311.pyc,, +PIL/__pycache__/WebPImagePlugin.cpython-311.pyc,, +PIL/__pycache__/WmfImagePlugin.cpython-311.pyc,, +PIL/__pycache__/XVThumbImagePlugin.cpython-311.pyc,, +PIL/__pycache__/XbmImagePlugin.cpython-311.pyc,, +PIL/__pycache__/XpmImagePlugin.cpython-311.pyc,, +PIL/__pycache__/__init__.cpython-311.pyc,, +PIL/__pycache__/__main__.cpython-311.pyc,, +PIL/__pycache__/_binary.cpython-311.pyc,, +PIL/__pycache__/_deprecate.cpython-311.pyc,, +PIL/__pycache__/_tkinter_finder.cpython-311.pyc,, +PIL/__pycache__/_typing.cpython-311.pyc,, +PIL/__pycache__/_util.cpython-311.pyc,, +PIL/__pycache__/_version.cpython-311.pyc,, +PIL/__pycache__/features.cpython-311.pyc,, +PIL/__pycache__/report.cpython-311.pyc,, +PIL/_avif.cpython-311-x86_64-linux-gnu.so,sha256=MnIjPyeA2TCPckMuWeGVnxcK1NRpjguMyGM3HKmH0s0,91985 +PIL/_avif.pyi,sha256=3fBxcSppJr6EOEcUojvflG3Eegg7lv2Qp0dNQQILrP4,63 +PIL/_binary.py,sha256=pcM6AL04GxgmGeLfcH1V1BZHENwIrQH0uxhJ7r0HIL0,2550 +PIL/_deprecate.py,sha256=2t747uUfRLL0rYxIEvykqyDaB_1b0eDSnwgpTh5O5fI,1970 +PIL/_imaging.cpython-311-x86_64-linux-gnu.so,sha256=xfwYCejVjcUdnjxlT3Ga_XhyBbCVXJmX0S1Xh3-lBPw,3337065 +PIL/_imaging.pyi,sha256=StMbXUZS32AegATP1sUHfs5P05A3TD_BiQKsDHQBW40,868 +PIL/_imagingcms.cpython-311-x86_64-linux-gnu.so,sha256=qz6eUK77r4Uuqb707QlIv2QPr2VhQ5JZuirNYzcvLi0,161937 +PIL/_imagingcms.pyi,sha256=ZZ8iIoi6EHWLvgAdfm1hPD5CQmxi75LiJl5x8yGxYoU,4433 +PIL/_imagingft.cpython-311-x86_64-linux-gnu.so,sha256=5ppfygswQjzdhwPm2yL-6hnHYogQv-o0XIL6BKQBAoM,318873 +PIL/_imagingft.pyi,sha256=cYySzvcKBCiHPBsvttMie9AdfUcEsqZR-3256YQtz2Q,1833 +PIL/_imagingmath.cpython-311-x86_64-linux-gnu.so,sha256=uyel-ufsApI9-KqWLkr9vjisiTDwKzN2TTUUOX8GJmU,162328 +PIL/_imagingmath.pyi,sha256=3fBxcSppJr6EOEcUojvflG3Eegg7lv2Qp0dNQQILrP4,63 +PIL/_imagingmorph.cpython-311-x86_64-linux-gnu.so,sha256=XBky3UNQ0rcmtZ0hy7pB1BqC1JnUZ4UMxhnrCFocJLI,36472 +PIL/_imagingmorph.pyi,sha256=3fBxcSppJr6EOEcUojvflG3Eegg7lv2Qp0dNQQILrP4,63 +PIL/_imagingtk.cpython-311-x86_64-linux-gnu.so,sha256=JYAoKNh5YjK1JTFWOeKHT3BADGeIhZs2o0lZSDxQ58I,45896 +PIL/_imagingtk.pyi,sha256=3fBxcSppJr6EOEcUojvflG3Eegg7lv2Qp0dNQQILrP4,63 +PIL/_tkinter_finder.py,sha256=GIZ4stmFhUosmHKSrdxcjStiocDNfyJn7RBie2SWxU0,538 +PIL/_typing.py,sha256=2z33ZUp9aQnkSqXzNR3Zn7l04d2W-oAj1OiZhiyFF68,919 +PIL/_util.py,sha256=fxhWdrLARyc2PsMgN3m9_U1dY3oUKbV7mkoHcXgoeeA,684 +PIL/_version.py,sha256=OYLJ24lJylQ6NFpzq3LMRSnDyAJmp1pnFQ_c3PMZR44,87 +PIL/_webp.cpython-311-x86_64-linux-gnu.so,sha256=MFZhyGuNjR_8OEfkkn-4Rf6KUVFB9wiP0-9vb3M55AA,108849 +PIL/_webp.pyi,sha256=3fBxcSppJr6EOEcUojvflG3Eegg7lv2Qp0dNQQILrP4,63 +PIL/features.py,sha256=FPkEhjtBaRSqpkgHNYduwxiFtycu4NjZKwEMWxtemPU,10775 +PIL/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +PIL/report.py,sha256=4JY6-IU7sH1RKuRbOvy1fUt0dAoi79FX4tYJN3p1DT0,100 +pillow-12.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +pillow-12.0.0.dist-info/METADATA,sha256=rWIEUr-lPL-ilNfae2bataCGpU7eDOF4vXTjgOvENMg,8808 +pillow-12.0.0.dist-info/RECORD,, +pillow-12.0.0.dist-info/WHEEL,sha256=3daP3VhxT_uXQ4g9qxjrsHJLh9a9x1Dc522TvcSo1E0,152 +pillow-12.0.0.dist-info/licenses/LICENSE,sha256=MBeL96_5-NyCr-01CGzTeKkGTnf8tDgEhfOLXaM3cFI,68061 +pillow-12.0.0.dist-info/top_level.txt,sha256=riZqrk-hyZqh5f1Z0Zwii3dKfxEsByhu9cU9IODF-NY,4 +pillow-12.0.0.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 +pillow.libs/libXau-154567c4.so.6.0.0,sha256=BUhNJL94y47QMWnxywZyBNgpy3ryHeiCBADSnRFeQyA,22081 +pillow.libs/libavif-01e67780.so.16.3.0,sha256=xCXlA8_rggzsCA_EsWKFzgqPBmT1ihpZCo3iMyvD1P0,5142057 +pillow.libs/libbrotlicommon-c55a5f7a.so.1.1.0,sha256=HaLbMm3YehX759wgF7ZU0kVwhdgX4ukfvQNKytoarw8,144425 +pillow.libs/libbrotlidec-2ced2f3a.so.1.1.0,sha256=BOwekVTiRipkYusnBXmzGGhiPsBwBI6DDWPLkvxAbRE,62337 +pillow.libs/libfreetype-5bb46249.so.6.20.4,sha256=Tg7wTbDEPfL0YvLbadZ40tNwy4fKxjhuxuCsaDHzCrw,1463609 +pillow.libs/libharfbuzz-525aa570.so.0.61210.0,sha256=HyXdr1Fa9eEK7Q3VvhhzDw8DA-kp-BjzV6Ql5oX-lbc,941033 +pillow.libs/libjpeg-a41b0190.so.62.4.0,sha256=nMxHb3xGeNHn_aC68P7_-TP__RdUvJooSl_7JEFa1mU,836273 +pillow.libs/liblcms2-cc10e42f.so.2.0.17,sha256=5JMjEDVKMwxcinhbQl6qhRLaezAiQFYEPSz-KultHe0,519073 +pillow.libs/liblzma-64b7ab39.so.5.8.1,sha256=hN2B2RPEM6wOgvER_g43fNjbNQ_SsrenX2wlAfHW-nA,266369 +pillow.libs/libopenjp2-94e588ba.so.2.5.4,sha256=5ye2mwzPYSo447VzscBGO_ZWXyBgFEPFRY45hlXLIw0,585849 +pillow.libs/libpng16-00127801.so.16.50.0,sha256=KIB4XEQDJkGL2nMIrURzNgiSxMwl87FIyB0em53ffx8,278001 +pillow.libs/libsharpyuv-95d8a097.so.0.1.2,sha256=EtR2hzr_XVKswxcXrVFfDixKeUd1TMu56F0oHwH3Els,46113 +pillow.libs/libtiff-295fd75c.so.6.2.0,sha256=fkRD5oAmt0kNw9iL_CfKz0aqsJ3AgnDyVs1U0CRkEZU,754729 +pillow.libs/libwebp-d8b9687f.so.7.2.0,sha256=k-gbdtoXnzmBItYhvYxdhV11ff08TsQgWSMUUHmMzPs,731209 +pillow.libs/libwebpdemux-747f2b49.so.2.0.17,sha256=jsiJz7rjNfyn9TOqFT2OPydmTYax0iNBCCBQg9st9vw,30217 +pillow.libs/libwebpmux-7f11e5ce.so.3.1.2,sha256=Pes9BQ-MFyCzlQH9n07pWNtt7O0afgVlBsMJ-6kuU_o,58617 +pillow.libs/libxcb-64009ff3.so.1.1.0,sha256=t0N-0WuuesRJgEn9FOENG9HD59FdDl6rHS6tQqg6SdE,251425 +pillow.libs/libzstd-761a17b6.so.1.5.7,sha256=jKEGQObGqZaFbxpkGZX8jzstJVcHhJPh4SShnGgZjB8,1800497 diff --git a/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/WHEEL b/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/WHEEL new file mode 100644 index 0000000..877b63a --- /dev/null +++ b/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: false +Tag: cp311-cp311-manylinux_2_27_x86_64 +Tag: cp311-cp311-manylinux_2_28_x86_64 + diff --git a/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/licenses/LICENSE new file mode 100644 index 0000000..a5ad83b --- /dev/null +++ b/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/licenses/LICENSE @@ -0,0 +1,1523 @@ +The Python Imaging Library (PIL) is + + Copyright © 1997-2011 by Secret Labs AB + Copyright © 1995-2011 by Fredrik Lundh and contributors + +Pillow is the friendly PIL fork. It is + + Copyright © 2010 by Jeffrey A. Clark and contributors + +Like PIL, Pillow is licensed under the open source MIT-CMU License: + +By obtaining, using, and/or copying this software and/or its associated +documentation, you agree that you have read, understood, and will comply +with the following terms and conditions: + +Permission to use, copy, modify and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appears in all copies, and that +both that copyright notice and this permission notice appear in supporting +documentation, and that the name of Secret Labs AB or the author not be +used in advertising or publicity pertaining to distribution of the software +without specific, written prior permission. + +SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS +SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. +IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR BE LIABLE FOR ANY SPECIAL, +INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +---- + +AOM + +Copyright (c) 2016, Alliance for Open Media. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + +---- + +BROTLI + +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +---- + +BZIP2 + + +-------------------------------------------------------------------------- + +This program, "bzip2", the associated library "libbzip2", and all +documentation, are copyright (C) 1996-2019 Julian R Seward. All +rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. The origin of this software must not be misrepresented; you must + not claim that you wrote the original software. If you use this + software in a product, an acknowledgment in the product + documentation would be appreciated but is not required. + +3. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + +4. The name of the author may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Julian Seward, jseward@acm.org +bzip2/libbzip2 version 1.0.8 of 13 July 2019 + +-------------------------------------------------------------------------- + + +---- + +DAV1D + +Copyright © 2018-2019, VideoLAN and dav1d authors +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +---- + +FREETYPE2 + +The FreeType 2 font engine is copyrighted work and cannot be used +legally without a software license. In order to make this project +usable to a vast majority of developers, we distribute it under two +mutually exclusive open-source licenses. + +This means that *you* must choose *one* of the two licenses described +below, then obey all its terms and conditions when using FreeType 2 in +any of your projects or products. + + - The FreeType License, found in the file `docs/FTL.TXT`, which is + similar to the original BSD license *with* an advertising clause + that forces you to explicitly cite the FreeType project in your + product's documentation. All details are in the license file. + This license is suited to products which don't use the GNU General + Public License. + + Note that this license is compatible to the GNU General Public + License version 3, but not version 2. + + - The GNU General Public License version 2, found in + `docs/GPLv2.TXT` (any later version can be used also), for + programs which already use the GPL. Note that the FTL is + incompatible with GPLv2 due to its advertisement clause. + +The contributed BDF and PCF drivers come with a license similar to +that of the X Window System. It is compatible to the above two +licenses (see files `src/bdf/README` and `src/pcf/README`). The same +holds for the source code files `src/base/fthash.c` and +`include/freetype/internal/fthash.h`; they were part of the BDF driver +in earlier FreeType versions. + +The gzip module uses the zlib license (see `src/gzip/zlib.h`) which +too is compatible to the above two licenses. + +The files `src/autofit/ft-hb.c` and `src/autofit/ft-hb.h` contain code +taken almost verbatim from the HarfBuzz file `hb-ft.cc`, which uses +the 'Old MIT' license, compatible to the above two licenses. + +The MD5 checksum support (only used for debugging in development +builds) is in the public domain. + +-------------------------------------------------------------------------- + + The FreeType Project LICENSE + ---------------------------- + + 2006-Jan-27 + + Copyright 1996-2002, 2006 by + David Turner, Robert Wilhelm, and Werner Lemberg + + + +Introduction +============ + + The FreeType Project is distributed in several archive packages; + some of them may contain, in addition to the FreeType font engine, + various tools and contributions which rely on, or relate to, the + FreeType Project. + + This license applies to all files found in such packages, and + which do not fall under their own explicit license. The license + affects thus the FreeType font engine, the test programs, + documentation and makefiles, at the very least. + + This license was inspired by the BSD, Artistic, and IJG + (Independent JPEG Group) licenses, which all encourage inclusion + and use of free software in commercial and freeware products + alike. As a consequence, its main points are that: + + o We don't promise that this software works. However, we will be + interested in any kind of bug reports. (`as is' distribution) + + o You can use this software for whatever you want, in parts or + full form, without having to pay us. (`royalty-free' usage) + + o You may not pretend that you wrote this software. If you use + it, or only parts of it, in a program, you must acknowledge + somewhere in your documentation that you have used the + FreeType code. (`credits') + + We specifically permit and encourage the inclusion of this + software, with or without modifications, in commercial products. + We disclaim all warranties covering The FreeType Project and + assume no liability related to The FreeType Project. + + + Finally, many people asked us for a preferred form for a + credit/disclaimer to use in compliance with this license. We thus + encourage you to use the following text: + + """ + Portions of this software are copyright © The FreeType + Project (www.freetype.org). All rights reserved. + """ + + Please replace with the value from the FreeType version you + actually use. + + +Legal Terms +=========== + +0. Definitions +-------------- + + Throughout this license, the terms `package', `FreeType Project', + and `FreeType archive' refer to the set of files originally + distributed by the authors (David Turner, Robert Wilhelm, and + Werner Lemberg) as the `FreeType Project', be they named as alpha, + beta or final release. + + `You' refers to the licensee, or person using the project, where + `using' is a generic term including compiling the project's source + code as well as linking it to form a `program' or `executable'. + This program is referred to as `a program using the FreeType + engine'. + + This license applies to all files distributed in the original + FreeType Project, including all source code, binaries and + documentation, unless otherwise stated in the file in its + original, unmodified form as distributed in the original archive. + If you are unsure whether or not a particular file is covered by + this license, you must contact us to verify this. + + The FreeType Project is copyright (C) 1996-2000 by David Turner, + Robert Wilhelm, and Werner Lemberg. All rights reserved except as + specified below. + +1. No Warranty +-------------- + + THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO + USE, OF THE FREETYPE PROJECT. + +2. Redistribution +----------------- + + This license grants a worldwide, royalty-free, perpetual and + irrevocable right and license to use, execute, perform, compile, + display, copy, create derivative works of, distribute and + sublicense the FreeType Project (in both source and object code + forms) and derivative works thereof for any purpose; and to + authorize others to exercise some or all of the rights granted + herein, subject to the following conditions: + + o Redistribution of source code must retain this license file + (`FTL.TXT') unaltered; any additions, deletions or changes to + the original files must be clearly indicated in accompanying + documentation. The copyright notices of the unaltered, + original files must be preserved in all copies of source + files. + + o Redistribution in binary form must provide a disclaimer that + states that the software is based in part of the work of the + FreeType Team, in the distribution documentation. We also + encourage you to put an URL to the FreeType web page in your + documentation, though this isn't mandatory. + + These conditions apply to any software derived from or based on + the FreeType Project, not just the unmodified files. If you use + our work, you must acknowledge us. However, no fee need be paid + to us. + +3. Advertising +-------------- + + Neither the FreeType authors and contributors nor you shall use + the name of the other for commercial, advertising, or promotional + purposes without specific prior written permission. + + We suggest, but do not require, that you use one or more of the + following phrases to refer to this software in your documentation + or advertising materials: `FreeType Project', `FreeType Engine', + `FreeType library', or `FreeType Distribution'. + + As you have not signed this license, you are not required to + accept it. However, as the FreeType Project is copyrighted + material, only this license, or another one contracted with the + authors, grants you the right to use, distribute, and modify it. + Therefore, by using, distributing, or modifying the FreeType + Project, you indicate that you understand and accept all the terms + of this license. + +4. Contacts +----------- + + There are two mailing lists related to FreeType: + + o freetype@nongnu.org + + Discusses general use and applications of FreeType, as well as + future and wanted additions to the library and distribution. + If you are looking for support, start in this list if you + haven't found anything to help you in the documentation. + + o freetype-devel@nongnu.org + + Discusses bugs, as well as engine internals, design issues, + specific licenses, porting, etc. + + Our home page can be found at + + https://www.freetype.org + + +--- end of FTL.TXT --- + +The following license details are part of `src/bdf/README`: + +``` +License +******* + +Copyright (C) 2001-2002 by Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +*** Portions of the driver (that is, bdflib.c and bdf.h): + +Copyright 2000 Computing Research Labs, New Mexico State University +Copyright 2001-2002, 2011 Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Credits +******* + +This driver is based on excellent Mark Leisher's bdf library. If you +find something good in this driver you should probably thank him, not +me. +``` + +The following license details are part of `src/pcf/README`: + +``` +License +******* + +Copyright (C) 2000 by Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Credits +******* + +Keith Packard wrote the pcf driver found in XFree86. His work is at +the same time the specification and the sample implementation of the +PCF format. Undoubtedly, this driver is inspired from his work. +``` + + +---- + +HARFBUZZ + +HarfBuzz is licensed under the so-called "Old MIT" license. Details follow. +For parts of HarfBuzz that are licensed under different licenses see individual +files names COPYING in subdirectories where applicable. + +Copyright © 2010-2022 Google, Inc. +Copyright © 2015-2020 Ebrahim Byagowi +Copyright © 2019,2020 Facebook, Inc. +Copyright © 2012,2015 Mozilla Foundation +Copyright © 2011 Codethink Limited +Copyright © 2008,2010 Nokia Corporation and/or its subsidiary(-ies) +Copyright © 2009 Keith Stribley +Copyright © 2011 Martin Hosken and SIL International +Copyright © 2007 Chris Wilson +Copyright © 2005,2006,2020,2021,2022,2023 Behdad Esfahbod +Copyright © 2004,2007,2008,2009,2010,2013,2021,2022,2023 Red Hat, Inc. +Copyright © 1998-2005 David Turner and Werner Lemberg +Copyright © 2016 Igalia S.L. +Copyright © 2022 Matthias Clasen +Copyright © 2018,2021 Khaled Hosny +Copyright © 2018,2019,2020 Adobe, Inc +Copyright © 2013-2015 Alexei Podtelezhnikov + +For full copyright notices consult the individual files in the package. + + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, copy, modify, and distribute this +software and its documentation for any purpose, provided that the +above copyright notice and the following two paragraphs appear in +all copies of this software. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + + +---- + +LCMS2 + +Little CMS +Copyright (c) 1998-2020 Marti Maria Saguer + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +---- + +LIBAVIF + +Copyright 2019 Joe Drago. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +------------------------------------------------------------------------------ + +Files: src/obu.c + +Copyright © 2018-2019, VideoLAN and dav1d authors +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +------------------------------------------------------------------------------ + +Files: third_party/iccjpeg/* + +In plain English: + +1. We don't promise that this software works. (But if you find any bugs, + please let us know!) +2. You can use this software for whatever you want. You don't have to pay us. +3. You may not pretend that you wrote this software. If you use it in a + program, you must acknowledge somewhere in your documentation that + you've used the IJG code. + +In legalese: + +The authors make NO WARRANTY or representation, either express or implied, +with respect to this software, its quality, accuracy, merchantability, or +fitness for a particular purpose. This software is provided "AS IS", and you, +its user, assume the entire risk as to its quality and accuracy. + +This software is copyright (C) 1991-2013, Thomas G. Lane, Guido Vollbeding. +All Rights Reserved except as specified below. + +Permission is hereby granted to use, copy, modify, and distribute this +software (or portions thereof) for any purpose, without fee, subject to these +conditions: +(1) If any part of the source code for this software is distributed, then this +README file must be included, with this copyright and no-warranty notice +unaltered; and any additions, deletions, or changes to the original files +must be clearly indicated in accompanying documentation. +(2) If only executable code is distributed, then the accompanying +documentation must state that "this software is based in part on the work of +the Independent JPEG Group". +(3) Permission for use of this software is granted only if the user accepts +full responsibility for any undesirable consequences; the authors accept +NO LIABILITY for damages of any kind. + +These conditions apply to any software derived from or based on the IJG code, +not just to the unmodified library. If you use our work, you ought to +acknowledge us. + +Permission is NOT granted for the use of any IJG author's name or company name +in advertising or publicity relating to this software or products derived from +it. This software may be referred to only as "the Independent JPEG Group's +software". + +We specifically permit and encourage the use of this software as the basis of +commercial products, provided that all warranty or liability claims are +assumed by the product vendor. + + +The Unix configuration script "configure" was produced with GNU Autoconf. +It is copyright by the Free Software Foundation but is freely distributable. +The same holds for its supporting scripts (config.guess, config.sub, +ltmain.sh). Another support script, install-sh, is copyright by X Consortium +but is also freely distributable. + +The IJG distribution formerly included code to read and write GIF files. +To avoid entanglement with the Unisys LZW patent, GIF reading support has +been removed altogether, and the GIF writer has been simplified to produce +"uncompressed GIFs". This technique does not use the LZW algorithm; the +resulting GIF files are larger than usual, but are readable by all standard +GIF decoders. + +We are required to state that + "The Graphics Interchange Format(c) is the Copyright property of + CompuServe Incorporated. GIF(sm) is a Service Mark property of + CompuServe Incorporated." + +------------------------------------------------------------------------------ + +Files: contrib/gdk-pixbuf/* + +Copyright 2020 Emmanuel Gil Peyrot. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +------------------------------------------------------------------------------ + +Files: android_jni/gradlew* + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +------------------------------------------------------------------------------ + +Files: third_party/libyuv/* + +Copyright 2011 The LibYuv Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +---- + +LIBJPEG + +1. We don't promise that this software works. (But if you find any bugs, + please let us know!) +2. You can use this software for whatever you want. You don't have to pay us. +3. You may not pretend that you wrote this software. If you use it in a + program, you must acknowledge somewhere in your documentation that + you've used the IJG code. + +In legalese: + +The authors make NO WARRANTY or representation, either express or implied, +with respect to this software, its quality, accuracy, merchantability, or +fitness for a particular purpose. This software is provided "AS IS", and you, +its user, assume the entire risk as to its quality and accuracy. + +This software is copyright (C) 1991-2020, Thomas G. Lane, Guido Vollbeding. +All Rights Reserved except as specified below. + +Permission is hereby granted to use, copy, modify, and distribute this +software (or portions thereof) for any purpose, without fee, subject to these +conditions: +(1) If any part of the source code for this software is distributed, then this +README file must be included, with this copyright and no-warranty notice +unaltered; and any additions, deletions, or changes to the original files +must be clearly indicated in accompanying documentation. +(2) If only executable code is distributed, then the accompanying +documentation must state that "this software is based in part on the work of +the Independent JPEG Group". +(3) Permission for use of this software is granted only if the user accepts +full responsibility for any undesirable consequences; the authors accept +NO LIABILITY for damages of any kind. + +These conditions apply to any software derived from or based on the IJG code, +not just to the unmodified library. If you use our work, you ought to +acknowledge us. + +Permission is NOT granted for the use of any IJG author's name or company name +in advertising or publicity relating to this software or products derived from +it. This software may be referred to only as "the Independent JPEG Group's +software". + +We specifically permit and encourage the use of this software as the basis of +commercial products, provided that all warranty or liability claims are +assumed by the product vendor. + + +---- + +LIBLZMA + +XZ Utils Licensing +================== + + Different licenses apply to different files in this package. Here + is a rough summary of which licenses apply to which parts of this + package (but check the individual files to be sure!): + + - liblzma is in the public domain. + + - xz, xzdec, and lzmadec command line tools are in the public + domain unless GNU getopt_long had to be compiled and linked + in from the lib directory. The getopt_long code is under + GNU LGPLv2.1+. + + - The scripts to grep, diff, and view compressed files have been + adapted from gzip. These scripts and their documentation are + under GNU GPLv2+. + + - All the documentation in the doc directory and most of the + XZ Utils specific documentation files in other directories + are in the public domain. + + - Translated messages are in the public domain. + + - The build system contains public domain files, and files that + are under GNU GPLv2+ or GNU GPLv3+. None of these files end up + in the binaries being built. + + - Test files and test code in the tests directory, and debugging + utilities in the debug directory are in the public domain. + + - The extra directory may contain public domain files, and files + that are under various free software licenses. + + You can do whatever you want with the files that have been put into + the public domain. If you find public domain legally problematic, + take the previous sentence as a license grant. If you still find + the lack of copyright legally problematic, you have too many + lawyers. + + As usual, this software is provided "as is", without any warranty. + + If you copy significant amounts of public domain code from XZ Utils + into your project, acknowledging this somewhere in your software is + polite (especially if it is proprietary, non-free software), but + naturally it is not legally required. Here is an example of a good + notice to put into "about box" or into documentation: + + This software includes code from XZ Utils . + + The following license texts are included in the following files: + - COPYING.LGPLv2.1: GNU Lesser General Public License version 2.1 + - COPYING.GPLv2: GNU General Public License version 2 + - COPYING.GPLv3: GNU General Public License version 3 + + Note that the toolchain (compiler, linker etc.) may add some code + pieces that are copyrighted. Thus, it is possible that e.g. liblzma + binary wouldn't actually be in the public domain in its entirety + even though it contains no copyrighted code from the XZ Utils source + package. + + If you have questions, don't hesitate to ask the author(s) for more + information. + + +---- + +LIBPNG + +COPYRIGHT NOTICE, DISCLAIMER, and LICENSE +========================================= + +PNG Reference Library License version 2 +--------------------------------------- + + * Copyright (c) 1995-2022 The PNG Reference Library Authors. + * Copyright (c) 2018-2022 Cosmin Truta. + * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson. + * Copyright (c) 1996-1997 Andreas Dilger. + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. + +The software is supplied "as is", without warranty of any kind, +express or implied, including, without limitation, the warranties +of merchantability, fitness for a particular purpose, title, and +non-infringement. In no event shall the Copyright owners, or +anyone distributing the software, be liable for any damages or +other liability, whether in contract, tort or otherwise, arising +from, out of, or in connection with the software, or the use or +other dealings in the software, even if advised of the possibility +of such damage. + +Permission is hereby granted to use, copy, modify, and distribute +this software, or portions hereof, for any purpose, without fee, +subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you + must not claim that you wrote the original software. If you + use this software in a product, an acknowledgment in the product + documentation would be appreciated, but is not required. + + 2. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + + +PNG Reference Library License version 1 (for libpng 0.5 through 1.6.35) +----------------------------------------------------------------------- + +libpng versions 1.0.7, July 1, 2000, through 1.6.35, July 15, 2018 are +Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are +derived from libpng-1.0.6, and are distributed according to the same +disclaimer and license as libpng-1.0.6 with the following individuals +added to the list of Contributing Authors: + + Simon-Pierre Cadieux + Eric S. Raymond + Mans Rullgard + Cosmin Truta + Gilles Vollant + James Yu + Mandar Sahastrabuddhe + Google Inc. + Vadim Barkov + +and with the following additions to the disclaimer: + + There is no warranty against interference with your enjoyment of + the library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes + or needs. This library is provided with all faults, and the entire + risk of satisfactory quality, performance, accuracy, and effort is + with the user. + +Some files in the "contrib" directory and some configure-generated +files that are distributed with libpng have other copyright owners, and +are released under other open source licenses. + +libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are +Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from +libpng-0.96, and are distributed according to the same disclaimer and +license as libpng-0.96, with the following individuals added to the +list of Contributing Authors: + + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik + +libpng versions 0.89, June 1996, through 0.96, May 1997, are +Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88, +and are distributed according to the same disclaimer and license as +libpng-0.88, with the following individuals added to the list of +Contributing Authors: + + John Bowler + Kevin Bracey + Sam Bushell + Magnus Holmgren + Greg Roelofs + Tom Tanner + +Some files in the "scripts" directory have other copyright owners, +but are released under this license. + +libpng versions 0.5, May 1995, through 0.88, January 1996, are +Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. + +For the purposes of this copyright and license, "Contributing Authors" +is defined as the following set of individuals: + + Andreas Dilger + Dave Martindale + Guy Eric Schalnat + Paul Schmidt + Tim Wegner + +The PNG Reference Library is supplied "AS IS". The Contributing +Authors and Group 42, Inc. disclaim all warranties, expressed or +implied, including, without limitation, the warranties of +merchantability and of fitness for any purpose. The Contributing +Authors and Group 42, Inc. assume no liability for direct, indirect, +incidental, special, exemplary, or consequential damages, which may +result from the use of the PNG Reference Library, even if advised of +the possibility of such damage. + +Permission is hereby granted to use, copy, modify, and distribute this +source code, or portions hereof, for any purpose, without fee, subject +to the following restrictions: + + 1. The origin of this source code must not be misrepresented. + + 2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. + + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + +The Contributing Authors and Group 42, Inc. specifically permit, +without fee, and encourage the use of this source code as a component +to supporting the PNG file format in commercial products. If you use +this source code in a product, acknowledgment is not required but would +be appreciated. + + +---- + +LIBTIFF + +Copyright (c) 1988-1997 Sam Leffler +Copyright (c) 1991-1997 Silicon Graphics, Inc. + +Permission to use, copy, modify, distribute, and sell this software and +its documentation for any purpose is hereby granted without fee, provided +that (i) the above copyright notices and this permission notice appear in +all copies of the software and related documentation, and (ii) the names of +Sam Leffler and Silicon Graphics may not be used in any advertising or +publicity relating to the software without the specific, prior written +permission of Sam Leffler and Silicon Graphics. + +THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +OF THIS SOFTWARE. + + +---- + +LIBWEBP + +Copyright (c) 2010, Google Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +---- + +LIBYUV + +Copyright 2011 The LibYuv Project Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +---- + +OPENJPEG + +* + * The copyright in this software is being made available under the 2-clauses + * BSD License, included below. This software may be subject to other third + * party and contributor rights, including patent rights, and no such rights + * are granted under this license. + * + * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium + * Copyright (c) 2002-2014, Professor Benoit Macq + * Copyright (c) 2003-2014, Antonin Descampe + * Copyright (c) 2003-2009, Francois-Olivier Devaux + * Copyright (c) 2005, Herve Drolon, FreeImage Team + * Copyright (c) 2002-2003, Yannick Verschueren + * Copyright (c) 2001-2003, David Janssens + * Copyright (c) 2011-2012, Centre National d'Etudes Spatiales (CNES), France + * Copyright (c) 2012, CS Systemes d'Information, France + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + + +---- + +RAQM + +The MIT License (MIT) + +Copyright © 2015 Information Technology Authority (ITA) +Copyright © 2016 Khaled Hosny + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +---- + +XAU + +Copyright 1988, 1993, 1994, 1998 The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. + + +---- + +XCB + +Copyright (C) 2001-2006 Bart Massey, Jamey Sharp, and Josh Triplett. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, +sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall +be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the names of the authors +or their institutions shall not be used in advertising or +otherwise to promote the sale, use or other dealings in this +Software without prior written authorization from the +authors. + + +---- + +XDMCP + +Copyright 1989, 1998 The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. + +Author: Keith Packard, MIT X Consortium + + +---- + +ZLIB + + (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +If you use the zlib library in a product, we would appreciate *not* receiving +lengthy legal documents to sign. The sources are provided for free but without +warranty of any kind. The library has been entirely written by Jean-loup +Gailly and Mark Adler; it does not include third-party code. + +If you redistribute modified sources, we would appreciate that you include in +the file ChangeLog history information documenting your changes. Please read +the FAQ for more information on the distribution of modified source versions. + + +---- + +ZSTD + +BSD License + +For Zstandard software + +Copyright (c) Meta Platforms, Inc. and affiliates. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name Facebook, nor Meta, nor the names of its contributors may + be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/top_level.txt new file mode 100644 index 0000000..b338169 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/top_level.txt @@ -0,0 +1 @@ +PIL diff --git a/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/zip-safe b/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/zip-safe new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pillow-12.0.0.dist-info/zip-safe @@ -0,0 +1 @@ + diff --git a/venv/lib/python3.11/site-packages/pillow.libs/libXau-154567c4.so.6.0.0 b/venv/lib/python3.11/site-packages/pillow.libs/libXau-154567c4.so.6.0.0 new file mode 100644 index 0000000..ff06a58 Binary files /dev/null and b/venv/lib/python3.11/site-packages/pillow.libs/libXau-154567c4.so.6.0.0 differ diff --git a/venv/lib/python3.11/site-packages/pillow.libs/libavif-01e67780.so.16.3.0 b/venv/lib/python3.11/site-packages/pillow.libs/libavif-01e67780.so.16.3.0 new file mode 100644 index 0000000..121cc08 Binary files /dev/null and b/venv/lib/python3.11/site-packages/pillow.libs/libavif-01e67780.so.16.3.0 differ diff --git a/venv/lib/python3.11/site-packages/pillow.libs/libbrotlicommon-c55a5f7a.so.1.1.0 b/venv/lib/python3.11/site-packages/pillow.libs/libbrotlicommon-c55a5f7a.so.1.1.0 new file mode 100644 index 0000000..f297663 Binary files /dev/null and b/venv/lib/python3.11/site-packages/pillow.libs/libbrotlicommon-c55a5f7a.so.1.1.0 differ diff --git a/venv/lib/python3.11/site-packages/pillow.libs/libbrotlidec-2ced2f3a.so.1.1.0 b/venv/lib/python3.11/site-packages/pillow.libs/libbrotlidec-2ced2f3a.so.1.1.0 new file mode 100644 index 0000000..2d8d8b9 Binary files /dev/null and b/venv/lib/python3.11/site-packages/pillow.libs/libbrotlidec-2ced2f3a.so.1.1.0 differ diff --git a/venv/lib/python3.11/site-packages/pillow.libs/libfreetype-5bb46249.so.6.20.4 b/venv/lib/python3.11/site-packages/pillow.libs/libfreetype-5bb46249.so.6.20.4 new file mode 100644 index 0000000..7a62ee8 Binary files /dev/null and b/venv/lib/python3.11/site-packages/pillow.libs/libfreetype-5bb46249.so.6.20.4 differ diff --git a/venv/lib/python3.11/site-packages/pillow.libs/libharfbuzz-525aa570.so.0.61210.0 b/venv/lib/python3.11/site-packages/pillow.libs/libharfbuzz-525aa570.so.0.61210.0 new file mode 100644 index 0000000..a759295 Binary files /dev/null and b/venv/lib/python3.11/site-packages/pillow.libs/libharfbuzz-525aa570.so.0.61210.0 differ diff --git a/venv/lib/python3.11/site-packages/pillow.libs/libjpeg-a41b0190.so.62.4.0 b/venv/lib/python3.11/site-packages/pillow.libs/libjpeg-a41b0190.so.62.4.0 new file mode 100644 index 0000000..797f25b Binary files /dev/null and b/venv/lib/python3.11/site-packages/pillow.libs/libjpeg-a41b0190.so.62.4.0 differ diff --git a/venv/lib/python3.11/site-packages/pillow.libs/liblcms2-cc10e42f.so.2.0.17 b/venv/lib/python3.11/site-packages/pillow.libs/liblcms2-cc10e42f.so.2.0.17 new file mode 100644 index 0000000..b71aff4 Binary files /dev/null and b/venv/lib/python3.11/site-packages/pillow.libs/liblcms2-cc10e42f.so.2.0.17 differ diff --git a/venv/lib/python3.11/site-packages/pillow.libs/liblzma-64b7ab39.so.5.8.1 b/venv/lib/python3.11/site-packages/pillow.libs/liblzma-64b7ab39.so.5.8.1 new file mode 100644 index 0000000..4bdb09a Binary files /dev/null and b/venv/lib/python3.11/site-packages/pillow.libs/liblzma-64b7ab39.so.5.8.1 differ diff --git a/venv/lib/python3.11/site-packages/pillow.libs/libopenjp2-94e588ba.so.2.5.4 b/venv/lib/python3.11/site-packages/pillow.libs/libopenjp2-94e588ba.so.2.5.4 new file mode 100644 index 0000000..dd1d919 Binary files /dev/null and b/venv/lib/python3.11/site-packages/pillow.libs/libopenjp2-94e588ba.so.2.5.4 differ diff --git a/venv/lib/python3.11/site-packages/pillow.libs/libpng16-00127801.so.16.50.0 b/venv/lib/python3.11/site-packages/pillow.libs/libpng16-00127801.so.16.50.0 new file mode 100644 index 0000000..9123ab1 Binary files /dev/null and b/venv/lib/python3.11/site-packages/pillow.libs/libpng16-00127801.so.16.50.0 differ diff --git a/venv/lib/python3.11/site-packages/pillow.libs/libsharpyuv-95d8a097.so.0.1.2 b/venv/lib/python3.11/site-packages/pillow.libs/libsharpyuv-95d8a097.so.0.1.2 new file mode 100644 index 0000000..5d17bd4 Binary files /dev/null and b/venv/lib/python3.11/site-packages/pillow.libs/libsharpyuv-95d8a097.so.0.1.2 differ diff --git a/venv/lib/python3.11/site-packages/pillow.libs/libtiff-295fd75c.so.6.2.0 b/venv/lib/python3.11/site-packages/pillow.libs/libtiff-295fd75c.so.6.2.0 new file mode 100644 index 0000000..57d7618 Binary files /dev/null and b/venv/lib/python3.11/site-packages/pillow.libs/libtiff-295fd75c.so.6.2.0 differ diff --git a/venv/lib/python3.11/site-packages/pillow.libs/libwebp-d8b9687f.so.7.2.0 b/venv/lib/python3.11/site-packages/pillow.libs/libwebp-d8b9687f.so.7.2.0 new file mode 100644 index 0000000..3472332 Binary files /dev/null and b/venv/lib/python3.11/site-packages/pillow.libs/libwebp-d8b9687f.so.7.2.0 differ diff --git a/venv/lib/python3.11/site-packages/pillow.libs/libwebpdemux-747f2b49.so.2.0.17 b/venv/lib/python3.11/site-packages/pillow.libs/libwebpdemux-747f2b49.so.2.0.17 new file mode 100644 index 0000000..7a4f0eb Binary files /dev/null and b/venv/lib/python3.11/site-packages/pillow.libs/libwebpdemux-747f2b49.so.2.0.17 differ diff --git a/venv/lib/python3.11/site-packages/pillow.libs/libwebpmux-7f11e5ce.so.3.1.2 b/venv/lib/python3.11/site-packages/pillow.libs/libwebpmux-7f11e5ce.so.3.1.2 new file mode 100644 index 0000000..cc00128 Binary files /dev/null and b/venv/lib/python3.11/site-packages/pillow.libs/libwebpmux-7f11e5ce.so.3.1.2 differ diff --git a/venv/lib/python3.11/site-packages/pillow.libs/libxcb-64009ff3.so.1.1.0 b/venv/lib/python3.11/site-packages/pillow.libs/libxcb-64009ff3.so.1.1.0 new file mode 100644 index 0000000..44689e1 Binary files /dev/null and b/venv/lib/python3.11/site-packages/pillow.libs/libxcb-64009ff3.so.1.1.0 differ diff --git a/venv/lib/python3.11/site-packages/pillow.libs/libzstd-761a17b6.so.1.5.7 b/venv/lib/python3.11/site-packages/pillow.libs/libzstd-761a17b6.so.1.5.7 new file mode 100644 index 0000000..78bb65c Binary files /dev/null and b/venv/lib/python3.11/site-packages/pillow.libs/libzstd-761a17b6.so.1.5.7 differ diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/METADATA b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/METADATA new file mode 100644 index 0000000..c3f7d1d --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/METADATA @@ -0,0 +1,111 @@ +Metadata-Version: 2.4 +Name: pip +Version: 25.3 +Summary: The PyPA recommended tool for installing Python packages. +Author-email: The pip developers +Requires-Python: >=3.9 +Description-Content-Type: text/x-rst +License-Expression: MIT +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Topic :: Software Development :: Build Tools +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +License-File: AUTHORS.txt +License-File: LICENSE.txt +License-File: src/pip/_vendor/cachecontrol/LICENSE.txt +License-File: src/pip/_vendor/certifi/LICENSE +License-File: src/pip/_vendor/dependency_groups/LICENSE.txt +License-File: src/pip/_vendor/distlib/LICENSE.txt +License-File: src/pip/_vendor/distro/LICENSE +License-File: src/pip/_vendor/idna/LICENSE.md +License-File: src/pip/_vendor/msgpack/COPYING +License-File: src/pip/_vendor/packaging/LICENSE +License-File: src/pip/_vendor/packaging/LICENSE.APACHE +License-File: src/pip/_vendor/packaging/LICENSE.BSD +License-File: src/pip/_vendor/pkg_resources/LICENSE +License-File: src/pip/_vendor/platformdirs/LICENSE +License-File: src/pip/_vendor/pygments/LICENSE +License-File: src/pip/_vendor/pyproject_hooks/LICENSE +License-File: src/pip/_vendor/requests/LICENSE +License-File: src/pip/_vendor/resolvelib/LICENSE +License-File: src/pip/_vendor/rich/LICENSE +License-File: src/pip/_vendor/tomli/LICENSE +License-File: src/pip/_vendor/tomli_w/LICENSE +License-File: src/pip/_vendor/truststore/LICENSE +License-File: src/pip/_vendor/urllib3/LICENSE.txt +Project-URL: Changelog, https://pip.pypa.io/en/stable/news/ +Project-URL: Documentation, https://pip.pypa.io +Project-URL: Homepage, https://pip.pypa.io/ +Project-URL: Source, https://github.com/pypa/pip + +pip - The Python Package Installer +================================== + +.. |pypi-version| image:: https://img.shields.io/pypi/v/pip.svg + :target: https://pypi.org/project/pip/ + :alt: PyPI + +.. |python-versions| image:: https://img.shields.io/pypi/pyversions/pip + :target: https://pypi.org/project/pip + :alt: PyPI - Python Version + +.. |docs-badge| image:: https://readthedocs.org/projects/pip/badge/?version=latest + :target: https://pip.pypa.io/en/latest + :alt: Documentation + +|pypi-version| |python-versions| |docs-badge| + +pip is the `package installer`_ for Python. You can use pip to install packages from the `Python Package Index`_ and other indexes. + +Please take a look at our documentation for how to install and use pip: + +* `Installation`_ +* `Usage`_ + +We release updates regularly, with a new version every 3 months. Find more details in our documentation: + +* `Release notes`_ +* `Release process`_ + +If you find bugs, need help, or want to talk to the developers, please use our mailing lists or chat rooms: + +* `Issue tracking`_ +* `Discourse channel`_ +* `User IRC`_ + +If you want to get involved head over to GitHub to get the source code, look at our development documentation and feel free to jump on the developer mailing lists and chat rooms: + +* `GitHub page`_ +* `Development documentation`_ +* `Development IRC`_ + +Code of Conduct +--------------- + +Everyone interacting in the pip project's codebases, issue trackers, chat +rooms, and mailing lists is expected to follow the `PSF Code of Conduct`_. + +.. _package installer: https://packaging.python.org/guides/tool-recommendations/ +.. _Python Package Index: https://pypi.org +.. _Installation: https://pip.pypa.io/en/stable/installation/ +.. _Usage: https://pip.pypa.io/en/stable/ +.. _Release notes: https://pip.pypa.io/en/stable/news.html +.. _Release process: https://pip.pypa.io/en/latest/development/release-process/ +.. _GitHub page: https://github.com/pypa/pip +.. _Development documentation: https://pip.pypa.io/en/latest/development +.. _Issue tracking: https://github.com/pypa/pip/issues +.. _Discourse channel: https://discuss.python.org/c/packaging +.. _User IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa +.. _Development IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa-dev +.. _PSF Code of Conduct: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md + diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/RECORD b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/RECORD new file mode 100644 index 0000000..65c024d --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/RECORD @@ -0,0 +1,872 @@ +../../../bin/pip,sha256=7H9k7jzINEeGWBB3XDXS18nZwcIKTsnkZ3WzKc9Hrxo,258 +../../../bin/pip3,sha256=7H9k7jzINEeGWBB3XDXS18nZwcIKTsnkZ3WzKc9Hrxo,258 +../../../bin/pip3.11,sha256=7H9k7jzINEeGWBB3XDXS18nZwcIKTsnkZ3WzKc9Hrxo,258 +pip-25.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +pip-25.3.dist-info/METADATA,sha256=Khugcl59I2--LVxQpP_5yeP-NMpJTyzr3lxFw3kTedM,4672 +pip-25.3.dist-info/RECORD,, +pip-25.3.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip-25.3.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82 +pip-25.3.dist-info/entry_points.txt,sha256=Vhf8s0IYgX37mtd4vGL73BPcxdKnqeCFPzB5-d30x8o,84 +pip-25.3.dist-info/licenses/AUTHORS.txt,sha256=H32ZhgFn-q5b3BAcDYqsSw0NN7RRVYHpWiNVNHQzzBs,11503 +pip-25.3.dist-info/licenses/LICENSE.txt,sha256=Y0MApmnUmurmWxLGxIySTFGkzfPR_whtw0VtyLyqIQQ,1093 +pip-25.3.dist-info/licenses/src/pip/_vendor/cachecontrol/LICENSE.txt,sha256=hu7uh74qQ_P_H1ZJb0UfaSQ5JvAl_tuwM2ZsMExMFhs,558 +pip-25.3.dist-info/licenses/src/pip/_vendor/certifi/LICENSE,sha256=6TcW2mucDVpKHfYP5pWzcPBpVgPSH2-D8FPkLPwQyvc,989 +pip-25.3.dist-info/licenses/src/pip/_vendor/dependency_groups/LICENSE.txt,sha256=GrNuPipLqGMWJThPh-ngkdsfrtA0xbIzJbMjmr8sxSU,1099 +pip-25.3.dist-info/licenses/src/pip/_vendor/distlib/LICENSE.txt,sha256=gI4QyKarjesUn_mz-xn0R6gICUYG1xKpylf-rTVSWZ0,14531 +pip-25.3.dist-info/licenses/src/pip/_vendor/distro/LICENSE,sha256=y16Ofl9KOYjhBjwULGDcLfdWBfTEZRXnduOspt-XbhQ,11325 +pip-25.3.dist-info/licenses/src/pip/_vendor/idna/LICENSE.md,sha256=pZ8LDvNjWHQQmkRhykT_enDVBpboFHZ7-vch1Mmw2w8,1541 +pip-25.3.dist-info/licenses/src/pip/_vendor/msgpack/COPYING,sha256=SS3tuoXaWHL3jmCRvNH-pHTWYNNay03ulkuKqz8AdCc,614 +pip-25.3.dist-info/licenses/src/pip/_vendor/packaging/LICENSE,sha256=ytHvW9NA1z4HS6YU0m996spceUDD2MNIUuZcSQlobEg,197 +pip-25.3.dist-info/licenses/src/pip/_vendor/packaging/LICENSE.APACHE,sha256=DVQuDIgE45qn836wDaWnYhSdxoLXgpRRKH4RuTjpRZQ,10174 +pip-25.3.dist-info/licenses/src/pip/_vendor/packaging/LICENSE.BSD,sha256=tw5-m3QvHMb5SLNMFqo5_-zpQZY2S8iP8NIYDwAo-sU,1344 +pip-25.3.dist-info/licenses/src/pip/_vendor/pkg_resources/LICENSE,sha256=htoPAa6uRjSKPD1GUZXcHOzN55956HdppkuNoEsqR0E,1023 +pip-25.3.dist-info/licenses/src/pip/_vendor/platformdirs/LICENSE,sha256=KeD9YukphQ6G6yjD_czwzv30-pSHkBHP-z0NS-1tTbY,1089 +pip-25.3.dist-info/licenses/src/pip/_vendor/pygments/LICENSE,sha256=qdZvHVJt8C4p3Oc0NtNOVuhjL0bCdbvf_HBWnogvnxc,1331 +pip-25.3.dist-info/licenses/src/pip/_vendor/pyproject_hooks/LICENSE,sha256=GyKwSbUmfW38I6Z79KhNjsBLn9-xpR02DkK0NCyLQVQ,1081 +pip-25.3.dist-info/licenses/src/pip/_vendor/requests/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142 +pip-25.3.dist-info/licenses/src/pip/_vendor/resolvelib/LICENSE,sha256=84j9OMrRMRLB3A9mm76A5_hFQe26-3LzAw0sp2QsPJ0,751 +pip-25.3.dist-info/licenses/src/pip/_vendor/rich/LICENSE,sha256=3u18F6QxgVgZCj6iOcyHmlpQJxzruYrnAl9I--WNyhU,1056 +pip-25.3.dist-info/licenses/src/pip/_vendor/tomli/LICENSE,sha256=uAgWsNUwuKzLTCIReDeQmEpuO2GSLCte6S8zcqsnQv4,1072 +pip-25.3.dist-info/licenses/src/pip/_vendor/tomli_w/LICENSE,sha256=uAgWsNUwuKzLTCIReDeQmEpuO2GSLCte6S8zcqsnQv4,1072 +pip-25.3.dist-info/licenses/src/pip/_vendor/truststore/LICENSE,sha256=M757fo-k_Rmxdg4ajtimaL2rhSyRtpLdQUJLy3Jan8o,1086 +pip-25.3.dist-info/licenses/src/pip/_vendor/urllib3/LICENSE.txt,sha256=w3vxhuJ8-dvpYZ5V7f486nswCRzrPaY8fay-Dm13kHs,1115 +pip/__init__.py,sha256=vSLqqJJ91-qXOz5tXjaPnwj5TDBz-Ujn8I7ymNmdvtA,353 +pip/__main__.py,sha256=WzbhHXTbSE6gBY19mNN9m4s5o_365LOvTYSgqgbdBhE,854 +pip/__pip-runner__.py,sha256=JOoEZTwrtv7jRaXBkgSQKAE04yNyfFmGHxqpHiGHvL0,1450 +pip/__pycache__/__init__.cpython-311.pyc,, +pip/__pycache__/__main__.cpython-311.pyc,, +pip/__pycache__/__pip-runner__.cpython-311.pyc,, +pip/_internal/__init__.py,sha256=S7i9Dn9aSZS0MG-2Wrve3dV9TImPzvQn5jjhp9t_uf0,511 +pip/_internal/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/__pycache__/build_env.cpython-311.pyc,, +pip/_internal/__pycache__/cache.cpython-311.pyc,, +pip/_internal/__pycache__/configuration.cpython-311.pyc,, +pip/_internal/__pycache__/exceptions.cpython-311.pyc,, +pip/_internal/__pycache__/main.cpython-311.pyc,, +pip/_internal/__pycache__/pyproject.cpython-311.pyc,, +pip/_internal/__pycache__/self_outdated_check.cpython-311.pyc,, +pip/_internal/__pycache__/wheel_builder.cpython-311.pyc,, +pip/_internal/build_env.py,sha256=oMRORdlWoHC591opA21PixmMykfhOfHw7P1MM7JgSrQ,14201 +pip/_internal/cache.py,sha256=nMh48Yv3yu1HS1yCdscouu6B6B5zYBWdV6bhqs7gL-E,10345 +pip/_internal/cli/__init__.py,sha256=Iqg_tKA771XuMO1P4t_sDHnSKPzkUb9D0DqunAmw_ko,131 +pip/_internal/cli/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/cli/__pycache__/autocompletion.cpython-311.pyc,, +pip/_internal/cli/__pycache__/base_command.cpython-311.pyc,, +pip/_internal/cli/__pycache__/cmdoptions.cpython-311.pyc,, +pip/_internal/cli/__pycache__/command_context.cpython-311.pyc,, +pip/_internal/cli/__pycache__/index_command.cpython-311.pyc,, +pip/_internal/cli/__pycache__/main.cpython-311.pyc,, +pip/_internal/cli/__pycache__/main_parser.cpython-311.pyc,, +pip/_internal/cli/__pycache__/parser.cpython-311.pyc,, +pip/_internal/cli/__pycache__/progress_bars.cpython-311.pyc,, +pip/_internal/cli/__pycache__/req_command.cpython-311.pyc,, +pip/_internal/cli/__pycache__/spinners.cpython-311.pyc,, +pip/_internal/cli/__pycache__/status_codes.cpython-311.pyc,, +pip/_internal/cli/autocompletion.py,sha256=ZG2cM03nlcNrs-WG_SFTW46isx9s2Go5lUD_8-iv70o,7193 +pip/_internal/cli/base_command.py,sha256=1Nx919JRFlgURLis9XYJwtbyEEjRJa_NdHwM6iBkZvY,8716 +pip/_internal/cli/cmdoptions.py,sha256=2vOdyIS6NjzycGT5idxKxxOsfw6TgR43CRe2lStYYL0,31025 +pip/_internal/cli/command_context.py,sha256=kmu3EWZbfBega1oDamnGJTA_UaejhIQNuMj2CVmMXu0,817 +pip/_internal/cli/index_command.py,sha256=AHk6eSqboaxTXbG3v9mBrVd0dCK1MtW4w3PVudnj0WE,5717 +pip/_internal/cli/main.py,sha256=K9PtpRdg6uBrVKk8S2VZ14fAN0kP-cnA1o-FtJCN_OQ,2815 +pip/_internal/cli/main_parser.py,sha256=UugPD-hF1WtNQdow_WWduDLUH1DvElpc7EeUWjUkcNo,4329 +pip/_internal/cli/parser.py,sha256=B9PpyPy6iY9LMvkKJygJ-3PwQLG6DoirWa-Mhv3nVlE,10916 +pip/_internal/cli/progress_bars.py,sha256=nRTWNof-FjHfvirvECXIh7T7eAynTUVPTyHENfpbWiU,4668 +pip/_internal/cli/req_command.py,sha256=HNANn7-hDIIFiRTUbudj5oRfPWC9Kf2ukG3feYANx94,13799 +pip/_internal/cli/spinners.py,sha256=EJzZIZNyUtJljp3-WjcsyIrqxW-HUsfWzhuW84n_Tqw,7362 +pip/_internal/cli/status_codes.py,sha256=sEFHUaUJbqv8iArL3HAtcztWZmGOFX01hTesSytDEh0,116 +pip/_internal/commands/__init__.py,sha256=aNeCbQurGWihfhQq7BqaLXHqWDQ0i3I04OS7kxK6plQ,4026 +pip/_internal/commands/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/commands/__pycache__/cache.cpython-311.pyc,, +pip/_internal/commands/__pycache__/check.cpython-311.pyc,, +pip/_internal/commands/__pycache__/completion.cpython-311.pyc,, +pip/_internal/commands/__pycache__/configuration.cpython-311.pyc,, +pip/_internal/commands/__pycache__/debug.cpython-311.pyc,, +pip/_internal/commands/__pycache__/download.cpython-311.pyc,, +pip/_internal/commands/__pycache__/freeze.cpython-311.pyc,, +pip/_internal/commands/__pycache__/hash.cpython-311.pyc,, +pip/_internal/commands/__pycache__/help.cpython-311.pyc,, +pip/_internal/commands/__pycache__/index.cpython-311.pyc,, +pip/_internal/commands/__pycache__/inspect.cpython-311.pyc,, +pip/_internal/commands/__pycache__/install.cpython-311.pyc,, +pip/_internal/commands/__pycache__/list.cpython-311.pyc,, +pip/_internal/commands/__pycache__/lock.cpython-311.pyc,, +pip/_internal/commands/__pycache__/search.cpython-311.pyc,, +pip/_internal/commands/__pycache__/show.cpython-311.pyc,, +pip/_internal/commands/__pycache__/uninstall.cpython-311.pyc,, +pip/_internal/commands/__pycache__/wheel.cpython-311.pyc,, +pip/_internal/commands/cache.py,sha256=OrrLS6EJEha_55yPa9fTaOaonw-VpH4_lVhjxuOTChQ,8230 +pip/_internal/commands/check.py,sha256=hVFBQezQ3zj4EydoWbFQj_afPUppMt7r9JPAlY22U6Y,2244 +pip/_internal/commands/completion.py,sha256=MDwhTOBjlM4WEbOhgbhrWnlDm710i4FMjop3RBXXXCc,4530 +pip/_internal/commands/configuration.py,sha256=6gNOGrVWnOLU15zUnAiNuOMhf76RRIZvCdVD0degPRk,10105 +pip/_internal/commands/debug.py,sha256=_8IqM8Fx1_lY2STu_qspr63tufF7zyFJCyYAXtxz0N4,6805 +pip/_internal/commands/download.py,sha256=pvB7I36z6soLPfv4IMwNRHn1WvY8I7zzM2h5se3nV6s,5075 +pip/_internal/commands/freeze.py,sha256=fxoW8AAc-bAqB_fXdNq2VnZ3JfWkFMg-bR6LcdDVO7A,3099 +pip/_internal/commands/hash.py,sha256=GO9pRN3wXC2kQaovK57TaLYBMc3IltOH92O6QEw6YE0,1679 +pip/_internal/commands/help.py,sha256=Bz3LcjNQXkz4Cu__pL4CZ86o4-HNLZj1NZWdlJhjuu0,1108 +pip/_internal/commands/index.py,sha256=8GMBVI5NvhRRHBSUq27YxDIE02DpvdJ_6qiBFgGd1co,5243 +pip/_internal/commands/inspect.py,sha256=ogm4UT7LRo8bIQcWUS1IiA25QdD4VHLa7JaPAodDttM,3177 +pip/_internal/commands/install.py,sha256=oUlST7YwoeuAE6IzWokkZk8IccSj39HT0ypQBOPj2fM,30472 +pip/_internal/commands/list.py,sha256=I4ZH604E5gpcROxEXA7eyaNEFhXx3VFVqvpscz_Ps_A,13514 +pip/_internal/commands/lock.py,sha256=5m0PskQFMuP1cYQYGfSiBLa81a8MDflUTC-iUsOU1u0,5797 +pip/_internal/commands/search.py,sha256=zbMsX_YASj6kXA6XIBgTDv0bGK51xG-CV3IynZJcE-c,5782 +pip/_internal/commands/show.py,sha256=oLVJIfKWmDKm0SsQGEi3pozNiqrXjTras_fbBSYKpBA,8066 +pip/_internal/commands/uninstall.py,sha256=CsOihqvb6ZA6O67L70oXeoLHeOfNzMM88H9g-9aocgw,3868 +pip/_internal/commands/wheel.py,sha256=-kIyzy98nPejpPic-CpJk37PSFGFVhm5lJ1UO9Zpu2s,6013 +pip/_internal/configuration.py,sha256=WxwwSwY_Bm6QzDgf32BsujEyO8dgRedegCpgbUfDvM8,14568 +pip/_internal/distributions/__init__.py,sha256=Hq6kt6gXBgjNit5hTTWLAzeCNOKoB-N0pGYSqehrli8,858 +pip/_internal/distributions/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/distributions/__pycache__/base.cpython-311.pyc,, +pip/_internal/distributions/__pycache__/installed.cpython-311.pyc,, +pip/_internal/distributions/__pycache__/sdist.cpython-311.pyc,, +pip/_internal/distributions/__pycache__/wheel.cpython-311.pyc,, +pip/_internal/distributions/base.py,sha256=l-OTCAIs25lsapejA6IYpPZxSM5-BET4sdZDkql8jiY,1830 +pip/_internal/distributions/installed.py,sha256=kgIEE_1NzjZxLBSC-v5s64uOFZlVEt3aPrjTtL6x2XY,929 +pip/_internal/distributions/sdist.py,sha256=RYwQIbuxpKy6OjlBZCAefxpMDaoocUQ4dFtheGsiTOQ,6627 +pip/_internal/distributions/wheel.py,sha256=_HbG0OehF8dwj4UX-xV__tXLwgPus9OjMEf2NTRqBbE,1364 +pip/_internal/exceptions.py,sha256=lqnWPeAx3sbetkBbckbEtQ1UHhbWfX68HPCeqILJffU,29592 +pip/_internal/index/__init__.py,sha256=tzwMH_fhQeubwMqHdSivasg1cRgTSbNg2CiMVnzMmyU,29 +pip/_internal/index/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/index/__pycache__/collector.cpython-311.pyc,, +pip/_internal/index/__pycache__/package_finder.cpython-311.pyc,, +pip/_internal/index/__pycache__/sources.cpython-311.pyc,, +pip/_internal/index/collector.py,sha256=PCB3thVWRiSBowGtpv1elIPFc-GvEqhZiNgZD7b0vBc,16185 +pip/_internal/index/package_finder.py,sha256=xjsftTB2JIlsCdxorDInoecJ6afs1O0lsqUg4ExcXI0,38835 +pip/_internal/index/sources.py,sha256=nXJkOjhLy-O2FsrKU9RIqCOqgY2PsoKWybtZjjRgqU0,8639 +pip/_internal/locations/__init__.py,sha256=2SADX0Gr9BIpx19AO7Feq89nOmBQGEbl1IWjBpnaE9E,14185 +pip/_internal/locations/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/locations/__pycache__/_distutils.cpython-311.pyc,, +pip/_internal/locations/__pycache__/_sysconfig.cpython-311.pyc,, +pip/_internal/locations/__pycache__/base.cpython-311.pyc,, +pip/_internal/locations/_distutils.py,sha256=jpFj4V00rD9IR3vA9TqrGkwcdNVFc58LsChZavge9JY,5975 +pip/_internal/locations/_sysconfig.py,sha256=NhcEi1_25w9cTTcH4RyOjD4UHW6Ijks0uKy1PL1_j_8,7716 +pip/_internal/locations/base.py,sha256=AImjYJWxOtDkc0KKc6Y4Gz677cg91caMA4L94B9FZEg,2550 +pip/_internal/main.py,sha256=1cHqjsfFCrMFf3B5twzocxTJUdHMLoXUpy5lJoFqUi8,338 +pip/_internal/metadata/__init__.py,sha256=vp-JAxiWg_-l5F8AT0Jcey72uUnh8CDwwol9-KktHZ8,5824 +pip/_internal/metadata/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/metadata/__pycache__/_json.cpython-311.pyc,, +pip/_internal/metadata/__pycache__/base.cpython-311.pyc,, +pip/_internal/metadata/__pycache__/pkg_resources.cpython-311.pyc,, +pip/_internal/metadata/_json.py,sha256=hNvnMHOXLAyNlzirWhPL9Nx2CvCqa1iRma6Osq1YfV8,2711 +pip/_internal/metadata/base.py,sha256=BGuMenlcQT8i7j9iclrfdC3vSwgvhr8gjn955cCy16s,25420 +pip/_internal/metadata/importlib/__init__.py,sha256=jUUidoxnHcfITHHaAWG1G2i5fdBYklv_uJcjo2x7VYE,135 +pip/_internal/metadata/importlib/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/metadata/importlib/__pycache__/_compat.cpython-311.pyc,, +pip/_internal/metadata/importlib/__pycache__/_dists.cpython-311.pyc,, +pip/_internal/metadata/importlib/__pycache__/_envs.cpython-311.pyc,, +pip/_internal/metadata/importlib/_compat.py,sha256=sneVh4_6WxQZK4ljdl3ylVuP-q0ttSqbgl9mWt0HnOg,2804 +pip/_internal/metadata/importlib/_dists.py,sha256=znZD7MN4RC73-87KXAn6tKZv9lAQRI0AxxK2bubDvPw,8420 +pip/_internal/metadata/importlib/_envs.py,sha256=H3qVLXVh4LWvrPvu_ekXf3dfbtwnlhNJQP2pxXpccfU,5333 +pip/_internal/metadata/pkg_resources.py,sha256=NO76ZrfR2-LKJTyaXrmQoGhmJMArALvacrlZHViSDT8,10544 +pip/_internal/models/__init__.py,sha256=AjmCEBxX_MH9f_jVjIGNCFJKYCYeSEe18yyvNx4uRKQ,62 +pip/_internal/models/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/models/__pycache__/candidate.cpython-311.pyc,, +pip/_internal/models/__pycache__/direct_url.cpython-311.pyc,, +pip/_internal/models/__pycache__/format_control.cpython-311.pyc,, +pip/_internal/models/__pycache__/index.cpython-311.pyc,, +pip/_internal/models/__pycache__/installation_report.cpython-311.pyc,, +pip/_internal/models/__pycache__/link.cpython-311.pyc,, +pip/_internal/models/__pycache__/pylock.cpython-311.pyc,, +pip/_internal/models/__pycache__/scheme.cpython-311.pyc,, +pip/_internal/models/__pycache__/search_scope.cpython-311.pyc,, +pip/_internal/models/__pycache__/selection_prefs.cpython-311.pyc,, +pip/_internal/models/__pycache__/target_python.cpython-311.pyc,, +pip/_internal/models/__pycache__/wheel.cpython-311.pyc,, +pip/_internal/models/candidate.py,sha256=zzgFRuw_kWPjKpGw7LC0ZUMD2CQ2EberUIYs8izjdCA,753 +pip/_internal/models/direct_url.py,sha256=4NMWacu_QzPPWREC1te7v6Wfv-2HkI4tvSJF-CBgLh4,6555 +pip/_internal/models/format_control.py,sha256=PwemYG1L27BM0f1KP61rm24wShENFyxqlD1TWu34alc,2471 +pip/_internal/models/index.py,sha256=tYnL8oxGi4aSNWur0mG8DAP7rC6yuha_MwJO8xw0crI,1030 +pip/_internal/models/installation_report.py,sha256=cqfWJ93ThCxjcacqSWryOCD2XtIn1CZrgzZxAv5FQZ0,2839 +pip/_internal/models/link.py,sha256=DRBzBDJreUy1laeDOrG2aIyZDW_Lhr8zJjvYTi8mGYg,21793 +pip/_internal/models/pylock.py,sha256=Vmaa71gOSV0ZYzRgWiIm4KwVbClaahMcuvKCkP_ZznA,6211 +pip/_internal/models/scheme.py,sha256=PakmHJM3e8OOWSZFtfz1Az7f1meONJnkGuQxFlt3wBE,575 +pip/_internal/models/search_scope.py,sha256=1hxU2IVsAaLZVjp0CbzJbYaYzCxv72_Qbg3JL0qhXo0,4507 +pip/_internal/models/selection_prefs.py,sha256=lgYyo4W8lb22wsYx2ElBBB0cvSNlBVgucwBzL43dfzE,2016 +pip/_internal/models/target_python.py,sha256=I0eFS-eia3kwhrOvgsphFZtNAB2IwXZ9Sr9fp6IjBP4,4243 +pip/_internal/models/wheel.py,sha256=1SdfDvN7ALTsbyZ9EOsNy1GPirP1n6EjHyzPrZyLSh8,2920 +pip/_internal/network/__init__.py,sha256=FMy06P__y6jMjUc8z3ZcQdKF-pmZ2zM14_vBeHPGhUI,49 +pip/_internal/network/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/network/__pycache__/auth.cpython-311.pyc,, +pip/_internal/network/__pycache__/cache.cpython-311.pyc,, +pip/_internal/network/__pycache__/download.cpython-311.pyc,, +pip/_internal/network/__pycache__/lazy_wheel.cpython-311.pyc,, +pip/_internal/network/__pycache__/session.cpython-311.pyc,, +pip/_internal/network/__pycache__/utils.cpython-311.pyc,, +pip/_internal/network/__pycache__/xmlrpc.cpython-311.pyc,, +pip/_internal/network/auth.py,sha256=uAwRGAYnVtgNSZm4HMC3BMACkgA7ku4m8wupiX6LpK8,20681 +pip/_internal/network/cache.py,sha256=kmRXKQrG9E26xQRj211LHeEGpDg_SlYU9Dn1fJ-AMeI,4862 +pip/_internal/network/download.py,sha256=HgsFvTkPDdgg0zUehose_J-542-9R0FpyipRw5BhxAM,12682 +pip/_internal/network/lazy_wheel.py,sha256=y9gVksdJCSjnLfYzs_m3DYUAtl3hc_k-xFPDBd9DgOs,7646 +pip/_internal/network/session.py,sha256=eE-VUIJGU9YeeaVy7tVAvMRWigMsyuAMpxkjlbptbjo,19188 +pip/_internal/network/utils.py,sha256=ACsXd1msqNCidHVXsu7LHUSr8NgaypcOKQ4KG-Z_wJM,4091 +pip/_internal/network/xmlrpc.py,sha256=_-Rnk3vOff8uF9hAGmT6SLALflY1gMBcbGwS12fb_Y4,1830 +pip/_internal/operations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_internal/operations/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/operations/__pycache__/check.cpython-311.pyc,, +pip/_internal/operations/__pycache__/freeze.cpython-311.pyc,, +pip/_internal/operations/__pycache__/prepare.cpython-311.pyc,, +pip/_internal/operations/build/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_internal/operations/build/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/operations/build/__pycache__/build_tracker.cpython-311.pyc,, +pip/_internal/operations/build/__pycache__/metadata.cpython-311.pyc,, +pip/_internal/operations/build/__pycache__/metadata_editable.cpython-311.pyc,, +pip/_internal/operations/build/__pycache__/wheel.cpython-311.pyc,, +pip/_internal/operations/build/__pycache__/wheel_editable.cpython-311.pyc,, +pip/_internal/operations/build/build_tracker.py,sha256=W3b5cmkMWPaE6QIwfzsTayJo7-OlxFHWDxfPuax1KcE,4771 +pip/_internal/operations/build/metadata.py,sha256=INHaeiRfOiLYCXApfDNRo9Cw2xI4VwTc0KItvfdfOjk,1421 +pip/_internal/operations/build/metadata_editable.py,sha256=oWudMsnjy4loO_Jy7g4N9nxsnaEX_iDlVRgCy7pu1rs,1509 +pip/_internal/operations/build/wheel.py,sha256=3bP-nNiJ4S8JvMaBnyessXQUBhxTqt1GBx6DQ1iPJDY,1136 +pip/_internal/operations/build/wheel_editable.py,sha256=q3kfElclM6FutVbFwE87JOTpVWt5ixDf3_UkHAIVfz4,1478 +pip/_internal/operations/check.py,sha256=yC2XWth6iehGGE_fj7XRJLjVKBsTIG3ZoWRkFi3rOwc,5894 +pip/_internal/operations/freeze.py,sha256=PDdY-y_ZtZZJLAKcaWPIGRKAGW7DXR48f0aMRU0j7BA,9854 +pip/_internal/operations/install/__init__.py,sha256=ak-UETcQPKlFZaWoYKWu5QVXbpFBvg0sXc3i0O4vSYY,50 +pip/_internal/operations/install/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/operations/install/__pycache__/wheel.cpython-311.pyc,, +pip/_internal/operations/install/wheel.py,sha256=8aepxxAFmnzZFtcMCv-1I4T_maEkQd4hXZztYWE4yR0,27956 +pip/_internal/operations/prepare.py,sha256=PajSUvp7jMWSEC7sLPaBdKWv7sioYVdoB0JEWEorLsw,28914 +pip/_internal/pyproject.py,sha256=J-sTWqC-XfsKQgz9m1bypMWZPHItsSHzIN_NWeIRmhM,4555 +pip/_internal/req/__init__.py,sha256=WcY9z7D3rlIKX1QY8_tRnAsS_poebiGGdtQ7EJ5JQQo,3041 +pip/_internal/req/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/req/__pycache__/constructors.cpython-311.pyc,, +pip/_internal/req/__pycache__/req_dependency_group.cpython-311.pyc,, +pip/_internal/req/__pycache__/req_file.cpython-311.pyc,, +pip/_internal/req/__pycache__/req_install.cpython-311.pyc,, +pip/_internal/req/__pycache__/req_set.cpython-311.pyc,, +pip/_internal/req/__pycache__/req_uninstall.cpython-311.pyc,, +pip/_internal/req/constructors.py,sha256=Z4C41AHuF7YZFzsqTQXFEgXmUdACeUeakf8hLZEQr-E,18581 +pip/_internal/req/req_dependency_group.py,sha256=0yEQCUaO5Bza66Y3D5o9JRf0qII5QgCRugn1x5aRivA,2618 +pip/_internal/req/req_file.py,sha256=syUNcsC-AlOFofoBwxUI1Vf6FCReyBvZ_AHyvpuGWas,20130 +pip/_internal/req/req_install.py,sha256=vv5cbs3P5gf43e_1v72gwSQ2N_D_qpsfuXOyerMhDuI,31273 +pip/_internal/req/req_set.py,sha256=awkqIXnYA4Prmsj0Qb3zhqdbYUmXd-1o0P-KZ3mvRQs,2828 +pip/_internal/req/req_uninstall.py,sha256=dCmOHt-9RaJBq921L4tMH3PmIBDetGplnbjRKXmGt00,24099 +pip/_internal/resolution/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_internal/resolution/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/resolution/__pycache__/base.cpython-311.pyc,, +pip/_internal/resolution/base.py,sha256=RIsqSP79olPdOgtPKW-oOQ364ICVopehA6RfGkRfe2s,577 +pip/_internal/resolution/legacy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_internal/resolution/legacy/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/resolution/legacy/__pycache__/resolver.cpython-311.pyc,, +pip/_internal/resolution/legacy/resolver.py,sha256=bwUqE66etz2bcPabqxed18-iyqqb-kx3Er2aT6GeUJY,24060 +pip/_internal/resolution/resolvelib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/resolution/resolvelib/__pycache__/base.cpython-311.pyc,, +pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-311.pyc,, +pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-311.pyc,, +pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-311.pyc,, +pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-311.pyc,, +pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-311.pyc,, +pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-311.pyc,, +pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-311.pyc,, +pip/_internal/resolution/resolvelib/base.py,sha256=_AoP0ZWlaSct8CRDn2ol3CbNn4zDtnh_0zQGjXASDKI,5047 +pip/_internal/resolution/resolvelib/candidates.py,sha256=50AN7BfB-pCfEmbKNlFZSXtdC0C8ms1waJrF2arknQE,20454 +pip/_internal/resolution/resolvelib/factory.py,sha256=6rZjvJdcLvsCqNjPfHNAiGVKUzju31Z3OFlhmAjU7As,33628 +pip/_internal/resolution/resolvelib/found_candidates.py,sha256=8bZYDCZLXSdLHy_s1o5f4r15HmKvqFUhzBUQOF21Lr4,6018 +pip/_internal/resolution/resolvelib/provider.py,sha256=tbVPfFv4Vg780yZ2_XGoGFP5LVo0U2bFnZov3jpSAIk,11441 +pip/_internal/resolution/resolvelib/reporter.py,sha256=faSgjqme0k_uzv1fvM5T0ZatPQ2eEktNvKBqfvXeGjc,3909 +pip/_internal/resolution/resolvelib/requirements.py,sha256=z0gXmWfo03ynOnhF8kpj5SycgroerDhQV0VWzmAKAfg,8076 +pip/_internal/resolution/resolvelib/resolver.py,sha256=wQ94Hkep-7kWEHAc-NbMJhmzeEzgEAtxeBxyKVzZoeo,13437 +pip/_internal/self_outdated_check.py,sha256=Ghi_sifu9uf9QNSLto1reWU7bU-aj6i_dxpyfK1ih-k,8471 +pip/_internal/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_internal/utils/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/utils/__pycache__/_jaraco_text.cpython-311.pyc,, +pip/_internal/utils/__pycache__/_log.cpython-311.pyc,, +pip/_internal/utils/__pycache__/appdirs.cpython-311.pyc,, +pip/_internal/utils/__pycache__/compat.cpython-311.pyc,, +pip/_internal/utils/__pycache__/compatibility_tags.cpython-311.pyc,, +pip/_internal/utils/__pycache__/datetime.cpython-311.pyc,, +pip/_internal/utils/__pycache__/deprecation.cpython-311.pyc,, +pip/_internal/utils/__pycache__/direct_url_helpers.cpython-311.pyc,, +pip/_internal/utils/__pycache__/egg_link.cpython-311.pyc,, +pip/_internal/utils/__pycache__/entrypoints.cpython-311.pyc,, +pip/_internal/utils/__pycache__/filesystem.cpython-311.pyc,, +pip/_internal/utils/__pycache__/filetypes.cpython-311.pyc,, +pip/_internal/utils/__pycache__/glibc.cpython-311.pyc,, +pip/_internal/utils/__pycache__/hashes.cpython-311.pyc,, +pip/_internal/utils/__pycache__/logging.cpython-311.pyc,, +pip/_internal/utils/__pycache__/misc.cpython-311.pyc,, +pip/_internal/utils/__pycache__/packaging.cpython-311.pyc,, +pip/_internal/utils/__pycache__/retry.cpython-311.pyc,, +pip/_internal/utils/__pycache__/subprocess.cpython-311.pyc,, +pip/_internal/utils/__pycache__/temp_dir.cpython-311.pyc,, +pip/_internal/utils/__pycache__/unpacking.cpython-311.pyc,, +pip/_internal/utils/__pycache__/urls.cpython-311.pyc,, +pip/_internal/utils/__pycache__/virtualenv.cpython-311.pyc,, +pip/_internal/utils/__pycache__/wheel.cpython-311.pyc,, +pip/_internal/utils/_jaraco_text.py,sha256=M15uUPIh5NpP1tdUGBxRau6q1ZAEtI8-XyLEETscFfE,3350 +pip/_internal/utils/_log.py,sha256=-jHLOE_THaZz5BFcCnoSL9EYAtJ0nXem49s9of4jvKw,1015 +pip/_internal/utils/appdirs.py,sha256=LrzDPZMKVh0rubtCx9vu3XlZbLCSug6VSj4Qsvt66BA,1681 +pip/_internal/utils/compat.py,sha256=C9LHXJAKkwAH8Hn3nPkz9EYK3rqPBeO_IXkOG2zzsdQ,2514 +pip/_internal/utils/compatibility_tags.py,sha256=DiNSLqpuruXUamGQwOJ2WZByDGLTGaXi9O-Xf8fOi34,6630 +pip/_internal/utils/datetime.py,sha256=Gt29Ml4ToPSM88j54iu43WKtrU9A-moP4QmMiiqzedU,241 +pip/_internal/utils/deprecation.py,sha256=HVhvyO5qiRFcG88PhZlp_87qdKQNwPTUIIHWtsTR2yI,3696 +pip/_internal/utils/direct_url_helpers.py,sha256=ttKv4GMUqlRwPPog9_CUopy6SDgoxVILzeBJzgfn2tg,3200 +pip/_internal/utils/egg_link.py,sha256=YWfsrbmfcrfWgqQYy6OuIjsyb9IfL1q_2v4zsms1WjI,2459 +pip/_internal/utils/entrypoints.py,sha256=uPjAyShKObdotjQjJUzprQ6r3xQvDIZwUYfHHqZ7Dok,3324 +pip/_internal/utils/filesystem.py,sha256=csVIpuOQnlOnApQOflj_AQAOSiYm_DUr3VZhv7zhtUM,5497 +pip/_internal/utils/filetypes.py,sha256=sEMa38qaqjvx1Zid3OCAUja31BOBU-USuSMPBvU3yjo,689 +pip/_internal/utils/glibc.py,sha256=sEh8RJJLYSdRvTqAO4THVPPA-YSDVLD4SI9So-bxX1U,3726 +pip/_internal/utils/hashes.py,sha256=d32UI1en8nyqZzdZQvxUVdfeBoe4ADWx7HtrIM4-XQ4,4998 +pip/_internal/utils/logging.py,sha256=RtRe7Vp0COC4UBewYdfKicXjCTmHXpDZHdReTzJvB78,12108 +pip/_internal/utils/misc.py,sha256=1jEpqjfqYmQ6K3D4_O8xXSPn8aEfH2uMOlNM7KPvSrg,23374 +pip/_internal/utils/packaging.py,sha256=s5tpUmFumwV0H9JSTzryrIY4JwQM8paGt7Sm7eNwt2Y,1601 +pip/_internal/utils/retry.py,sha256=83wReEB2rcntMZ5VLd7ascaYSjn_kLdlQCqxILxWkPM,1461 +pip/_internal/utils/subprocess.py,sha256=r4-Ba_Yc3uZXQpi0K4pZFsCT_QqdSvtF3XJ-204QWaA,8983 +pip/_internal/utils/temp_dir.py,sha256=D9c8D7WOProOO8GGDqpBeVSj10NGFmunG0o2TodjjIU,9307 +pip/_internal/utils/unpacking.py,sha256=ab1KcniWQR-K8YyyCL0b_JiPUVh7vOPmLQK5YTGNaLo,12974 +pip/_internal/utils/urls.py,sha256=aF_eg9ul5d8bMCxfSSSxQcfs-OpJdbStYqZHoy2K1RE,1601 +pip/_internal/utils/virtualenv.py,sha256=mX-UPyw1MPxhwUxKhbqWWX70J6PHXAJjVVrRnG0h9mc,3455 +pip/_internal/utils/wheel.py,sha256=YdRuj6MicG-Q9Mg03FbUv1WTLam6Lc7AgijY4voVyis,4468 +pip/_internal/vcs/__init__.py,sha256=UAqvzpbi0VbZo3Ub6skEeZAw-ooIZR-zX_WpCbxyCoU,596 +pip/_internal/vcs/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/vcs/__pycache__/bazaar.cpython-311.pyc,, +pip/_internal/vcs/__pycache__/git.cpython-311.pyc,, +pip/_internal/vcs/__pycache__/mercurial.cpython-311.pyc,, +pip/_internal/vcs/__pycache__/subversion.cpython-311.pyc,, +pip/_internal/vcs/__pycache__/versioncontrol.cpython-311.pyc,, +pip/_internal/vcs/bazaar.py,sha256=3W1eHjkYx2vc6boeb2NBh4I_rlGAXM-vrzfNhLm1Rxg,3734 +pip/_internal/vcs/git.py,sha256=TTeqDuzS-_BFSNuUStVWmE2nGDpKuvUhBBJk_CCQXV0,19144 +pip/_internal/vcs/mercurial.py,sha256=w1ZJWLKqNP1onEjkfjlwBVnMqPZNSIER8ayjQcnTq4w,5575 +pip/_internal/vcs/subversion.py,sha256=uUgdPvxmvEB8Qwtjr0Hc0XgFjbiNi5cbvI4vARLOJXo,11787 +pip/_internal/vcs/versioncontrol.py,sha256=d-v1mcLxofg2FaIqBrV-e-ZcjOgQhS0oxXpki1v1yXs,22502 +pip/_internal/wheel_builder.py,sha256=yvEULStZtty9Kplp89tDis3hGdyKQ-2BUbFLmJ_5ink,9010 +pip/_vendor/README.rst,sha256=pKKBwCWhu3M3qQ9dDnsmxb3KdsRr-nWmMq2srbH_Bi0,9394 +pip/_vendor/__init__.py,sha256=WzusPTGWIMeQQWSVJ0h2rafGkVTa9WKJ2HT-2-EoZrU,4907 +pip/_vendor/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/cachecontrol/LICENSE.txt,sha256=hu7uh74qQ_P_H1ZJb0UfaSQ5JvAl_tuwM2ZsMExMFhs,558 +pip/_vendor/cachecontrol/__init__.py,sha256=BF2n5OeQz1QW2xSey2LxfNCtwbjnTadXdIH2toqJecg,677 +pip/_vendor/cachecontrol/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-311.pyc,, +pip/_vendor/cachecontrol/__pycache__/adapter.cpython-311.pyc,, +pip/_vendor/cachecontrol/__pycache__/cache.cpython-311.pyc,, +pip/_vendor/cachecontrol/__pycache__/controller.cpython-311.pyc,, +pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-311.pyc,, +pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-311.pyc,, +pip/_vendor/cachecontrol/__pycache__/serialize.cpython-311.pyc,, +pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-311.pyc,, +pip/_vendor/cachecontrol/_cmd.py,sha256=iist2EpzJvDVIhMAxXq8iFnTBsiZAd6iplxfmNboNyk,1737 +pip/_vendor/cachecontrol/adapter.py,sha256=8y6rTPXOzVHmDKCW5CR9sivLVuDv-cpdGcZYdRWNaPw,6599 +pip/_vendor/cachecontrol/cache.py,sha256=OXwv7Fn2AwnKNiahJHnjtvaKLndvVLv_-zO-ltlV9qI,1953 +pip/_vendor/cachecontrol/caches/__init__.py,sha256=dtrrroK5BnADR1GWjCZ19aZ0tFsMfvFBtLQQU1sp_ag,303 +pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-311.pyc,, +pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-311.pyc,, +pip/_vendor/cachecontrol/caches/file_cache.py,sha256=d8upFmy_zwaCmlbWEVBlLXFddt8Zw8c5SFpxeOZsdfw,4117 +pip/_vendor/cachecontrol/caches/redis_cache.py,sha256=9rmqwtYu_ljVkW6_oLqbC7EaX_a8YT_yLuna-eS0dgo,1386 +pip/_vendor/cachecontrol/controller.py,sha256=cx0Hl8xLZgUuXuy78Gih9AYjCtqurmYjVJxyA4yWt7w,19101 +pip/_vendor/cachecontrol/filewrapper.py,sha256=2ktXNPE0KqnyzF24aOsKCA58HQq1xeC6l2g6_zwjghc,4291 +pip/_vendor/cachecontrol/heuristics.py,sha256=gqMXU8w0gQuEQiSdu3Yg-0vd9kW7nrWKbLca75rheGE,4881 +pip/_vendor/cachecontrol/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/cachecontrol/serialize.py,sha256=HQd2IllQ05HzPkVLMXTF2uX5mjEQjDBkxCqUJUODpZk,5163 +pip/_vendor/cachecontrol/wrapper.py,sha256=hsGc7g8QGQTT-4f8tgz3AM5qwScg6FO0BSdLSRdEvpU,1417 +pip/_vendor/certifi/LICENSE,sha256=6TcW2mucDVpKHfYP5pWzcPBpVgPSH2-D8FPkLPwQyvc,989 +pip/_vendor/certifi/__init__.py,sha256=jWkaYHMk4oIPSSBEK5bLMbO_qrkyNm_cRFx-D16-3Ks,94 +pip/_vendor/certifi/__main__.py,sha256=1k3Cr95vCxxGRGDljrW3wMdpZdL3Nhf0u1n-k2qdsCY,255 +pip/_vendor/certifi/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/certifi/__pycache__/__main__.cpython-311.pyc,, +pip/_vendor/certifi/__pycache__/core.cpython-311.pyc,, +pip/_vendor/certifi/cacert.pem,sha256=IIn8WiWDZAH67pn3IkYLAbOTmZdGoPuBeUNmbW7MBFg,291366 +pip/_vendor/certifi/core.py,sha256=gu_ECVI1m3Rq0ytpsNE61hgQGcKaOAt9Rs9G8KsTCOI,3442 +pip/_vendor/certifi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/dependency_groups/LICENSE.txt,sha256=GrNuPipLqGMWJThPh-ngkdsfrtA0xbIzJbMjmr8sxSU,1099 +pip/_vendor/dependency_groups/__init__.py,sha256=C3OFu0NGwDzQ4LOmmSOFPsRSvkbBn-mdd4j_5YqJw-s,250 +pip/_vendor/dependency_groups/__main__.py,sha256=UNTM7P5mfVtT7wDi9kOTXWgV3fu3e8bTrt1Qp1jvjKo,1709 +pip/_vendor/dependency_groups/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/dependency_groups/__pycache__/__main__.cpython-311.pyc,, +pip/_vendor/dependency_groups/__pycache__/_implementation.cpython-311.pyc,, +pip/_vendor/dependency_groups/__pycache__/_lint_dependency_groups.cpython-311.pyc,, +pip/_vendor/dependency_groups/__pycache__/_pip_wrapper.cpython-311.pyc,, +pip/_vendor/dependency_groups/__pycache__/_toml_compat.cpython-311.pyc,, +pip/_vendor/dependency_groups/_implementation.py,sha256=Gqb2DlQELRakeHlKf6QtQSW0M-bcEomxHw4JsvID1ls,8041 +pip/_vendor/dependency_groups/_lint_dependency_groups.py,sha256=yp-DDqKXtbkDTNa0ifa-FmOA8ra24lPZEXftW-R5AuI,1710 +pip/_vendor/dependency_groups/_pip_wrapper.py,sha256=nuVW_w_ntVxpE26ELEvngMY0N04sFLsijXRyZZROFG8,1865 +pip/_vendor/dependency_groups/_toml_compat.py,sha256=BHnXnFacm3DeolsA35GjI6qkDApvua-1F20kv3BfZWE,285 +pip/_vendor/dependency_groups/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/distlib/LICENSE.txt,sha256=gI4QyKarjesUn_mz-xn0R6gICUYG1xKpylf-rTVSWZ0,14531 +pip/_vendor/distlib/__init__.py,sha256=Deo3uo98aUyIfdKJNqofeSEFWwDzrV2QeGLXLsgq0Ag,625 +pip/_vendor/distlib/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/distlib/__pycache__/compat.cpython-311.pyc,, +pip/_vendor/distlib/__pycache__/resources.cpython-311.pyc,, +pip/_vendor/distlib/__pycache__/scripts.cpython-311.pyc,, +pip/_vendor/distlib/__pycache__/util.cpython-311.pyc,, +pip/_vendor/distlib/compat.py,sha256=2jRSjRI4o-vlXeTK2BCGIUhkc6e9ZGhSsacRM5oseTw,41467 +pip/_vendor/distlib/resources.py,sha256=LwbPksc0A1JMbi6XnuPdMBUn83X7BPuFNWqPGEKI698,10820 +pip/_vendor/distlib/scripts.py,sha256=Qvp76E9Jc3IgyYubnpqI9fS7eseGOe4FjpeVKqKt9Iw,18612 +pip/_vendor/distlib/t32.exe,sha256=a0GV5kCoWsMutvliiCKmIgV98eRZ33wXoS-XrqvJQVs,97792 +pip/_vendor/distlib/t64-arm.exe,sha256=68TAa32V504xVBnufojh0PcenpR3U4wAqTqf-MZqbPw,182784 +pip/_vendor/distlib/t64.exe,sha256=gaYY8hy4fbkHYTTnA4i26ct8IQZzkBG2pRdy0iyuBrc,108032 +pip/_vendor/distlib/util.py,sha256=vMPGvsS4j9hF6Y9k3Tyom1aaHLb0rFmZAEyzeAdel9w,66682 +pip/_vendor/distlib/w32.exe,sha256=R4csx3-OGM9kL4aPIzQKRo5TfmRSHZo6QWyLhDhNBks,91648 +pip/_vendor/distlib/w64-arm.exe,sha256=xdyYhKj0WDcVUOCb05blQYvzdYIKMbmJn2SZvzkcey4,168448 +pip/_vendor/distlib/w64.exe,sha256=ejGf-rojoBfXseGLpya6bFTFPWRG21X5KvU8J5iU-K0,101888 +pip/_vendor/distro/LICENSE,sha256=y16Ofl9KOYjhBjwULGDcLfdWBfTEZRXnduOspt-XbhQ,11325 +pip/_vendor/distro/__init__.py,sha256=2fHjF-SfgPvjyNZ1iHh_wjqWdR_Yo5ODHwZC0jLBPhc,981 +pip/_vendor/distro/__main__.py,sha256=bu9d3TifoKciZFcqRBuygV3GSuThnVD_m2IK4cz96Vs,64 +pip/_vendor/distro/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/distro/__pycache__/__main__.cpython-311.pyc,, +pip/_vendor/distro/__pycache__/distro.cpython-311.pyc,, +pip/_vendor/distro/distro.py,sha256=XqbefacAhDT4zr_trnbA15eY8vdK4GTghgmvUGrEM_4,49430 +pip/_vendor/distro/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/idna/LICENSE.md,sha256=pZ8LDvNjWHQQmkRhykT_enDVBpboFHZ7-vch1Mmw2w8,1541 +pip/_vendor/idna/__init__.py,sha256=MPqNDLZbXqGaNdXxAFhiqFPKEQXju2jNQhCey6-5eJM,868 +pip/_vendor/idna/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/idna/__pycache__/codec.cpython-311.pyc,, +pip/_vendor/idna/__pycache__/compat.cpython-311.pyc,, +pip/_vendor/idna/__pycache__/core.cpython-311.pyc,, +pip/_vendor/idna/__pycache__/idnadata.cpython-311.pyc,, +pip/_vendor/idna/__pycache__/intranges.cpython-311.pyc,, +pip/_vendor/idna/__pycache__/package_data.cpython-311.pyc,, +pip/_vendor/idna/__pycache__/uts46data.cpython-311.pyc,, +pip/_vendor/idna/codec.py,sha256=PEew3ItwzjW4hymbasnty2N2OXvNcgHB-JjrBuxHPYY,3422 +pip/_vendor/idna/compat.py,sha256=RzLy6QQCdl9784aFhb2EX9EKGCJjg0P3PilGdeXXcx8,316 +pip/_vendor/idna/core.py,sha256=YJYyAMnwiQEPjVC4-Fqu_p4CJ6yKKuDGmppBNQNQpFs,13239 +pip/_vendor/idna/idnadata.py,sha256=W30GcIGvtOWYwAjZj4ZjuouUutC6ffgNuyjJy7fZ-lo,78306 +pip/_vendor/idna/intranges.py,sha256=amUtkdhYcQG8Zr-CoMM_kVRacxkivC1WgxN1b63KKdU,1898 +pip/_vendor/idna/package_data.py,sha256=q59S3OXsc5VI8j6vSD0sGBMyk6zZ4vWFREE88yCJYKs,21 +pip/_vendor/idna/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/idna/uts46data.py,sha256=rt90K9J40gUSwppDPCrhjgi5AA6pWM65dEGRSf6rIhM,239289 +pip/_vendor/msgpack/COPYING,sha256=SS3tuoXaWHL3jmCRvNH-pHTWYNNay03ulkuKqz8AdCc,614 +pip/_vendor/msgpack/__init__.py,sha256=RA8gcqK17YpkxBnNwXJVa1oa2LygWDgfF1nA1NPw3mo,1109 +pip/_vendor/msgpack/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/msgpack/__pycache__/exceptions.cpython-311.pyc,, +pip/_vendor/msgpack/__pycache__/ext.cpython-311.pyc,, +pip/_vendor/msgpack/__pycache__/fallback.cpython-311.pyc,, +pip/_vendor/msgpack/exceptions.py,sha256=dCTWei8dpkrMsQDcjQk74ATl9HsIBH0ybt8zOPNqMYc,1081 +pip/_vendor/msgpack/ext.py,sha256=kteJv03n9tYzd5oo3xYopVTo4vRaAxonBQQJhXohZZo,5726 +pip/_vendor/msgpack/fallback.py,sha256=0g1Pzp0vtmBEmJ5w9F3s_-JMVURP8RS4G1cc5TRaAsI,32390 +pip/_vendor/packaging/LICENSE,sha256=ytHvW9NA1z4HS6YU0m996spceUDD2MNIUuZcSQlobEg,197 +pip/_vendor/packaging/LICENSE.APACHE,sha256=DVQuDIgE45qn836wDaWnYhSdxoLXgpRRKH4RuTjpRZQ,10174 +pip/_vendor/packaging/LICENSE.BSD,sha256=tw5-m3QvHMb5SLNMFqo5_-zpQZY2S8iP8NIYDwAo-sU,1344 +pip/_vendor/packaging/__init__.py,sha256=_0cDiPVf2S-bNfVmZguxxzmrIYWlyASxpqph4qsJWUc,494 +pip/_vendor/packaging/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/_elffile.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/_manylinux.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/_musllinux.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/_parser.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/_structures.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/_tokenizer.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/markers.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/metadata.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/requirements.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/specifiers.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/tags.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/utils.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/version.cpython-311.pyc,, +pip/_vendor/packaging/_elffile.py,sha256=UkrbDtW7aeq3qqoAfU16ojyHZ1xsTvGke_WqMTKAKd0,3286 +pip/_vendor/packaging/_manylinux.py,sha256=t4y_-dTOcfr36gLY-ztiOpxxJFGO2ikC11HgfysGxiM,9596 +pip/_vendor/packaging/_musllinux.py,sha256=p9ZqNYiOItGee8KcZFeHF_YcdhVwGHdK6r-8lgixvGQ,2694 +pip/_vendor/packaging/_parser.py,sha256=gYfnj0pRHflVc4RHZit13KNTyN9iiVcU2RUCGi22BwM,10221 +pip/_vendor/packaging/_structures.py,sha256=q3eVNmbWJGG_S0Dit_S3Ao8qQqz_5PYTXFAKBZe5yr4,1431 +pip/_vendor/packaging/_tokenizer.py,sha256=OYzt7qKxylOAJ-q0XyK1qAycyPRYLfMPdGQKRXkZWyI,5310 +pip/_vendor/packaging/licenses/__init__.py,sha256=3bx-gryo4sRv5LsrwApouy65VIs3u6irSORJzALkrzU,5727 +pip/_vendor/packaging/licenses/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/packaging/licenses/__pycache__/_spdx.cpython-311.pyc,, +pip/_vendor/packaging/licenses/_spdx.py,sha256=oAm1ztPFwlsmCKe7lAAsv_OIOfS1cWDu9bNBkeu-2ns,48398 +pip/_vendor/packaging/markers.py,sha256=P0we27jm1xUzgGMJxBjtUFCIWeBxTsMeJTOJ6chZmAY,12049 +pip/_vendor/packaging/metadata.py,sha256=8IZErqQQnNm53dZZuYq4FGU4_dpyinMeH1QFBIWIkfE,34739 +pip/_vendor/packaging/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/packaging/requirements.py,sha256=gYyRSAdbrIyKDY66ugIDUQjRMvxkH2ALioTmX3tnL6o,2947 +pip/_vendor/packaging/specifiers.py,sha256=yc9D_MycJEmwUpZvcs1OZL9HfiNFmyw0RZaeHRNHkPw,40079 +pip/_vendor/packaging/tags.py,sha256=41s97W9Zatrq2Ed7Rc3qeBDaHe8pKKvYq2mGjwahfXk,22745 +pip/_vendor/packaging/utils.py,sha256=0F3Hh9OFuRgrhTgGZUl5K22Fv1YP2tZl1z_2gO6kJiA,5050 +pip/_vendor/packaging/version.py,sha256=oiHqzTUv_p12hpjgsLDVcaF5hT7pDaSOViUNMD4GTW0,16688 +pip/_vendor/pkg_resources/LICENSE,sha256=htoPAa6uRjSKPD1GUZXcHOzN55956HdppkuNoEsqR0E,1023 +pip/_vendor/pkg_resources/__init__.py,sha256=vbTJ0_ruUgGxQjlEqsruFmiNPVyh2t9q-zyTDT053xI,124451 +pip/_vendor/pkg_resources/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/platformdirs/LICENSE,sha256=KeD9YukphQ6G6yjD_czwzv30-pSHkBHP-z0NS-1tTbY,1089 +pip/_vendor/platformdirs/__init__.py,sha256=UfeSHWl8AeTtbOBOoHAxK4dODOWkZtfy-m_i7cWdJ8c,22344 +pip/_vendor/platformdirs/__main__.py,sha256=jBJ8zb7Mpx5ebcqF83xrpO94MaeCpNGHVf9cvDN2JLg,1505 +pip/_vendor/platformdirs/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/platformdirs/__pycache__/__main__.cpython-311.pyc,, +pip/_vendor/platformdirs/__pycache__/android.cpython-311.pyc,, +pip/_vendor/platformdirs/__pycache__/api.cpython-311.pyc,, +pip/_vendor/platformdirs/__pycache__/macos.cpython-311.pyc,, +pip/_vendor/platformdirs/__pycache__/unix.cpython-311.pyc,, +pip/_vendor/platformdirs/__pycache__/version.cpython-311.pyc,, +pip/_vendor/platformdirs/__pycache__/windows.cpython-311.pyc,, +pip/_vendor/platformdirs/android.py,sha256=r0DshVBf-RO1jXJGX8C4Til7F1XWt-bkdWMgmvEiaYg,9013 +pip/_vendor/platformdirs/api.py,sha256=wPHOlwOsfz2oqQZ6A2FcCu5kEAj-JondzoNOHYFQ0h8,9281 +pip/_vendor/platformdirs/macos.py,sha256=0XoOgin1NK7Qki7iskD-oS8xKxw6bXgoKEgdqpCRAFQ,6322 +pip/_vendor/platformdirs/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/platformdirs/unix.py,sha256=WZmkUA--L3JNRGmz32s35YfoD3ica6xKIPdCV_HhLcs,10458 +pip/_vendor/platformdirs/version.py,sha256=sved76l3nstESjZInsYGzPryR4cPIaf3QHTJuTDYXNM,704 +pip/_vendor/platformdirs/windows.py,sha256=IFpiohUBwxPtCzlyKwNtxyW4Jk8haa6W8o59mfrDXVo,10125 +pip/_vendor/pygments/LICENSE,sha256=qdZvHVJt8C4p3Oc0NtNOVuhjL0bCdbvf_HBWnogvnxc,1331 +pip/_vendor/pygments/__init__.py,sha256=8uNqJCCwXqbEx5aSsBr0FykUQOBDKBihO5mPqiw1aqo,2983 +pip/_vendor/pygments/__main__.py,sha256=WrndpSe6i1ckX_SQ1KaxD9CTKGzD0EuCOFxcbwFpoLU,353 +pip/_vendor/pygments/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/__main__.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/console.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/filter.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/formatter.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/lexer.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/modeline.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/plugin.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/regexopt.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/scanner.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/sphinxext.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/style.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/token.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/unistring.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/util.cpython-311.pyc,, +pip/_vendor/pygments/console.py,sha256=AagDWqwea2yBWf10KC9ptBgMpMjxKp8yABAmh-NQOVk,1718 +pip/_vendor/pygments/filter.py,sha256=YLtpTnZiu07nY3oK9nfR6E9Y1FBHhP5PX8gvkJWcfag,1910 +pip/_vendor/pygments/filters/__init__.py,sha256=4U4jtA0X3iP83uQnB9-TI-HDSw8E8y8zMYHa0UjbbaI,40392 +pip/_vendor/pygments/filters/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/pygments/formatter.py,sha256=KZQMmyo_xkOIkQG8g66LYEkBh1bx7a0HyGCBcvhI9Ew,4390 +pip/_vendor/pygments/formatters/__init__.py,sha256=KTwBmnXlaopJhQDOemVHYHskiDghuq-08YtP6xPNJPg,5385 +pip/_vendor/pygments/formatters/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/pygments/formatters/__pycache__/_mapping.cpython-311.pyc,, +pip/_vendor/pygments/formatters/_mapping.py,sha256=1Cw37FuQlNacnxRKmtlPX4nyLoX9_ttko5ZwscNUZZ4,4176 +pip/_vendor/pygments/lexer.py,sha256=_kBrOJ_NT5Tl0IVM0rA9c8eysP6_yrlGzEQI0eVYB-A,35349 +pip/_vendor/pygments/lexers/__init__.py,sha256=wbIME35GH7bI1B9rNPJFqWT-ij_RApZDYPUlZycaLzA,12115 +pip/_vendor/pygments/lexers/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/pygments/lexers/__pycache__/_mapping.cpython-311.pyc,, +pip/_vendor/pygments/lexers/__pycache__/python.cpython-311.pyc,, +pip/_vendor/pygments/lexers/_mapping.py,sha256=l4tCXM8e9aPC2BD6sjIr0deT-J-z5tHgCwL-p1fS0PE,77602 +pip/_vendor/pygments/lexers/python.py,sha256=vxjn1cOHclIKJKxoyiBsQTY65GHbkZtZRuKQ2AVCKaw,53853 +pip/_vendor/pygments/modeline.py,sha256=K5eSkR8GS1r5OkXXTHOcV0aM_6xpk9eWNEIAW-OOJ2g,1005 +pip/_vendor/pygments/plugin.py,sha256=tPx0rJCTIZ9ioRgLNYG4pifCbAwTRUZddvLw-NfAk2w,1891 +pip/_vendor/pygments/regexopt.py,sha256=wXaP9Gjp_hKAdnICqoDkRxAOQJSc4v3X6mcxx3z-TNs,3072 +pip/_vendor/pygments/scanner.py,sha256=nNcETRR1tRuiTaHmHSTTECVYFPcLf6mDZu1e4u91A9E,3092 +pip/_vendor/pygments/sphinxext.py,sha256=5x7Zh9YlU6ISJ31dMwduiaanb5dWZnKg3MyEQsseNnQ,7981 +pip/_vendor/pygments/style.py,sha256=PlOZqlsnTVd58RGy50vkA2cXQ_lP5bF5EGMEBTno6DA,6420 +pip/_vendor/pygments/styles/__init__.py,sha256=x9ebctfyvCAFpMTlMJ5YxwcNYBzjgq6zJaKkNm78r4M,2042 +pip/_vendor/pygments/styles/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/pygments/styles/__pycache__/_mapping.cpython-311.pyc,, +pip/_vendor/pygments/styles/_mapping.py,sha256=6lovFUE29tz6EsV3XYY4hgozJ7q1JL7cfO3UOlgnS8w,3312 +pip/_vendor/pygments/token.py,sha256=WbdWGhYm_Vosb0DDxW9lHNPgITXfWTsQmHt6cy9RbcM,6226 +pip/_vendor/pygments/unistring.py,sha256=al-_rBemRuGvinsrM6atNsHTmJ6DUbw24q2O2Ru1cBc,63208 +pip/_vendor/pygments/util.py,sha256=oRtSpiAo5jM9ulntkvVbgXUdiAW57jnuYGB7t9fYuhc,10031 +pip/_vendor/pyproject_hooks/LICENSE,sha256=GyKwSbUmfW38I6Z79KhNjsBLn9-xpR02DkK0NCyLQVQ,1081 +pip/_vendor/pyproject_hooks/__init__.py,sha256=cPB_a9LXz5xvsRbX1o2qyAdjLatZJdQ_Lc5McNX-X7Y,691 +pip/_vendor/pyproject_hooks/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/pyproject_hooks/__pycache__/_impl.cpython-311.pyc,, +pip/_vendor/pyproject_hooks/_impl.py,sha256=jY-raxnmyRyB57ruAitrJRUzEexuAhGTpgMygqx67Z4,14936 +pip/_vendor/pyproject_hooks/_in_process/__init__.py,sha256=MJNPpfIxcO-FghxpBbxkG1rFiQf6HOUbV4U5mq0HFns,557 +pip/_vendor/pyproject_hooks/_in_process/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/pyproject_hooks/_in_process/__pycache__/_in_process.cpython-311.pyc,, +pip/_vendor/pyproject_hooks/_in_process/_in_process.py,sha256=qcXMhmx__MIJq10gGHW3mA4Tl8dy8YzHMccwnNoKlw0,12216 +pip/_vendor/pyproject_hooks/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/requests/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142 +pip/_vendor/requests/__init__.py,sha256=HlB_HzhrzGtfD_aaYUwUh1zWXLZ75_YCLyit75d0Vz8,5057 +pip/_vendor/requests/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/__version__.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/_internal_utils.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/adapters.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/api.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/auth.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/certs.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/compat.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/cookies.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/exceptions.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/help.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/hooks.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/models.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/packages.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/sessions.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/status_codes.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/structures.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/utils.cpython-311.pyc,, +pip/_vendor/requests/__version__.py,sha256=QKDceK8K_ujqwDDc3oYrR0odOBYgKVOQQ5vFap_G_cg,435 +pip/_vendor/requests/_internal_utils.py,sha256=nMQymr4hs32TqVo5AbCrmcJEhvPUh7xXlluyqwslLiQ,1495 +pip/_vendor/requests/adapters.py,sha256=2MLFOK9GpYNhiTd6zLDUrAgSkIB-76i6pmSuUJjHC2w,26429 +pip/_vendor/requests/api.py,sha256=_Zb9Oa7tzVIizTKwFrPjDEY9ejtm_OnSRERnADxGsQs,6449 +pip/_vendor/requests/auth.py,sha256=kF75tqnLctZ9Mf_hm9TZIj4cQWnN5uxRz8oWsx5wmR0,10186 +pip/_vendor/requests/certs.py,sha256=kHDlkK_beuHXeMPc5jta2wgl8gdKeUWt5f2nTDVrvt8,441 +pip/_vendor/requests/compat.py,sha256=QfbmdTFiZzjSHMXiMrd4joCRU6RabtQ9zIcPoVaHIus,1822 +pip/_vendor/requests/cookies.py,sha256=bNi-iqEj4NPZ00-ob-rHvzkvObzN3lEpgw3g6paS3Xw,18590 +pip/_vendor/requests/exceptions.py,sha256=D1wqzYWne1mS2rU43tP9CeN1G7QAy7eqL9o1god6Ejw,4272 +pip/_vendor/requests/help.py,sha256=hRKaf9u0G7fdwrqMHtF3oG16RKktRf6KiwtSq2Fo1_0,3813 +pip/_vendor/requests/hooks.py,sha256=CiuysiHA39V5UfcCBXFIx83IrDpuwfN9RcTUgv28ftQ,733 +pip/_vendor/requests/models.py,sha256=taljlg6vJ4b-xMu2TaMNFFkaiwMex_VsEQ6qUTN3wzY,35575 +pip/_vendor/requests/packages.py,sha256=_ZQDCJTJ8SP3kVWunSqBsRZNPzj2c1WFVqbdr08pz3U,1057 +pip/_vendor/requests/sessions.py,sha256=Cl1dpEnOfwrzzPbku-emepNeN4Rt_0_58Iy2x-JGTm8,30503 +pip/_vendor/requests/status_codes.py,sha256=iJUAeA25baTdw-6PfD0eF4qhpINDJRJI-yaMqxs4LEI,4322 +pip/_vendor/requests/structures.py,sha256=-IbmhVz06S-5aPSZuUthZ6-6D9XOjRuTXHOabY041XM,2912 +pip/_vendor/requests/utils.py,sha256=WS3wHSQaaEfceu1syiFo5jf4e_CWKUTep_IabOVI_J0,33225 +pip/_vendor/resolvelib/LICENSE,sha256=84j9OMrRMRLB3A9mm76A5_hFQe26-3LzAw0sp2QsPJ0,751 +pip/_vendor/resolvelib/__init__.py,sha256=yoX-d4STvwGGCiQRE5cJC9Cter69SgVgqClxOCvSP7M,541 +pip/_vendor/resolvelib/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/resolvelib/__pycache__/providers.cpython-311.pyc,, +pip/_vendor/resolvelib/__pycache__/reporters.cpython-311.pyc,, +pip/_vendor/resolvelib/__pycache__/structs.cpython-311.pyc,, +pip/_vendor/resolvelib/providers.py,sha256=pIWJbIdJJ9GFtNbtwTH0Ia43Vj6hYCEJj2DOLue15FM,8914 +pip/_vendor/resolvelib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/resolvelib/reporters.py,sha256=pNJf4nFxLpAeKxlBUi2GEj0a2Ij1nikY0UabTKXesT4,2037 +pip/_vendor/resolvelib/resolvers/__init__.py,sha256=728M3EvmnPbVXS7ExXlv2kMu6b7wEsoPutEfl-uVk_I,640 +pip/_vendor/resolvelib/resolvers/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/resolvelib/resolvers/__pycache__/abstract.cpython-311.pyc,, +pip/_vendor/resolvelib/resolvers/__pycache__/criterion.cpython-311.pyc,, +pip/_vendor/resolvelib/resolvers/__pycache__/exceptions.cpython-311.pyc,, +pip/_vendor/resolvelib/resolvers/__pycache__/resolution.cpython-311.pyc,, +pip/_vendor/resolvelib/resolvers/abstract.py,sha256=CNeQPnpAudY77nmzOkONSmAgRlzIf06X-X9mvRYODms,1543 +pip/_vendor/resolvelib/resolvers/criterion.py,sha256=lcmZGv5sKHOnFD_RzZwvlGSj19MeA-5rCMpdf2Sgw7Y,1768 +pip/_vendor/resolvelib/resolvers/exceptions.py,sha256=ln_jaQtgLlRUSFY627yiHG2gD7AgaXzRKaElFVh7fDQ,1768 +pip/_vendor/resolvelib/resolvers/resolution.py,sha256=3J_zkW-sD3EY-BlNXjyln__njpyH5n0UZJT6uV7CheA,24212 +pip/_vendor/resolvelib/structs.py,sha256=pu-EJiR2IBITr2SQeNPRa0rXhjlStfmO_GEgAhr3004,6420 +pip/_vendor/rich/LICENSE,sha256=3u18F6QxgVgZCj6iOcyHmlpQJxzruYrnAl9I--WNyhU,1056 +pip/_vendor/rich/__init__.py,sha256=dRxjIL-SbFVY0q3IjSMrfgBTHrm1LZDgLOygVBwiYZc,6090 +pip/_vendor/rich/__main__.py,sha256=e_aVC-tDzarWQW9SuZMuCgBr6ODV_iDNV2Wh2xkxOlw,7896 +pip/_vendor/rich/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/__main__.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_cell_widths.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_emoji_codes.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_emoji_replace.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_export_format.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_extension.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_fileno.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_inspect.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_log_render.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_loop.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_null_file.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_palettes.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_pick.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_ratio.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_spinners.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_stack.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_timer.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_win32_console.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_windows.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_windows_renderer.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_wrap.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/abc.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/align.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/ansi.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/bar.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/box.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/cells.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/color.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/color_triplet.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/columns.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/console.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/constrain.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/containers.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/control.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/default_styles.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/diagnose.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/emoji.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/errors.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/file_proxy.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/filesize.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/highlighter.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/json.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/jupyter.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/layout.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/live.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/live_render.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/logging.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/markup.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/measure.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/padding.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/pager.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/palette.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/panel.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/pretty.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/progress.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/progress_bar.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/prompt.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/protocol.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/region.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/repr.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/rule.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/scope.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/screen.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/segment.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/spinner.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/status.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/style.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/styled.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/syntax.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/table.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/terminal_theme.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/text.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/theme.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/themes.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/traceback.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/tree.cpython-311.pyc,, +pip/_vendor/rich/_cell_widths.py,sha256=fbmeyetEdHjzE_Vx2l1uK7tnPOhMs2X1lJfO3vsKDpA,10209 +pip/_vendor/rich/_emoji_codes.py,sha256=hu1VL9nbVdppJrVoijVshRlcRRe_v3dju3Mmd2sKZdY,140235 +pip/_vendor/rich/_emoji_replace.py,sha256=n-kcetsEUx2ZUmhQrfeMNc-teeGhpuSQ5F8VPBsyvDo,1064 +pip/_vendor/rich/_export_format.py,sha256=RI08pSrm5tBSzPMvnbTqbD9WIalaOoN5d4M1RTmLq1Y,2128 +pip/_vendor/rich/_extension.py,sha256=Xt47QacCKwYruzjDi-gOBq724JReDj9Cm9xUi5fr-34,265 +pip/_vendor/rich/_fileno.py,sha256=HWZxP5C2ajMbHryvAQZseflVfQoGzsKOHzKGsLD8ynQ,799 +pip/_vendor/rich/_inspect.py,sha256=ROT0PLC2GMWialWZkqJIjmYq7INRijQQkoSokWTaAiI,9656 +pip/_vendor/rich/_log_render.py,sha256=1ByI0PA1ZpxZY3CGJOK54hjlq4X-Bz_boIjIqCd8Kns,3225 +pip/_vendor/rich/_loop.py,sha256=hV_6CLdoPm0va22Wpw4zKqM0RYsz3TZxXj0PoS-9eDQ,1236 +pip/_vendor/rich/_null_file.py,sha256=ADGKp1yt-k70FMKV6tnqCqecB-rSJzp-WQsD7LPL-kg,1394 +pip/_vendor/rich/_palettes.py,sha256=cdev1JQKZ0JvlguV9ipHgznTdnvlIzUFDBb0It2PzjI,7063 +pip/_vendor/rich/_pick.py,sha256=evDt8QN4lF5CiwrUIXlOJCntitBCOsI3ZLPEIAVRLJU,423 +pip/_vendor/rich/_ratio.py,sha256=IOtl78sQCYZsmHyxhe45krkb68u9xVz7zFsXVJD-b2Y,5325 +pip/_vendor/rich/_spinners.py,sha256=U2r1_g_1zSjsjiUdAESc2iAMc3i4ri_S8PYP6kQ5z1I,19919 +pip/_vendor/rich/_stack.py,sha256=-C8OK7rxn3sIUdVwxZBBpeHhIzX0eI-VM3MemYfaXm0,351 +pip/_vendor/rich/_timer.py,sha256=zelxbT6oPFZnNrwWPpc1ktUeAT-Vc4fuFcRZLQGLtMI,417 +pip/_vendor/rich/_win32_console.py,sha256=BSaDRIMwBLITn_m0mTRLPqME5q-quGdSMuYMpYeYJwc,22755 +pip/_vendor/rich/_windows.py,sha256=aBwaD_S56SbgopIvayVmpk0Y28uwY2C5Bab1wl3Bp-I,1925 +pip/_vendor/rich/_windows_renderer.py,sha256=t74ZL3xuDCP3nmTp9pH1L5LiI2cakJuQRQleHCJerlk,2783 +pip/_vendor/rich/_wrap.py,sha256=FlSsom5EX0LVkA3KWy34yHnCfLtqX-ZIepXKh-70rpc,3404 +pip/_vendor/rich/abc.py,sha256=ON-E-ZqSSheZ88VrKX2M3PXpFbGEUUZPMa_Af0l-4f0,890 +pip/_vendor/rich/align.py,sha256=dg-7uY0ukMLLlUEsBDRLva22_sQgIJD4BK0dmZHFHug,10324 +pip/_vendor/rich/ansi.py,sha256=Avs1LHbSdcyOvDOdpELZUoULcBiYewY76eNBp6uFBhs,6921 +pip/_vendor/rich/bar.py,sha256=ldbVHOzKJOnflVNuv1xS7g6dLX2E3wMnXkdPbpzJTcs,3263 +pip/_vendor/rich/box.py,sha256=kmavBc_dn73L_g_8vxWSwYJD2uzBXOUFTtJOfpbczcM,10686 +pip/_vendor/rich/cells.py,sha256=KrQkj5-LghCCpJLSNQIyAZjndc4bnEqOEmi5YuZ9UCY,5130 +pip/_vendor/rich/color.py,sha256=3HSULVDj7qQkXUdFWv78JOiSZzfy5y1nkcYhna296V0,18211 +pip/_vendor/rich/color_triplet.py,sha256=3lhQkdJbvWPoLDO-AnYImAWmJvV5dlgYNCVZ97ORaN4,1054 +pip/_vendor/rich/columns.py,sha256=HUX0KcMm9dsKNi11fTbiM_h2iDtl8ySCaVcxlalEzq8,7131 +pip/_vendor/rich/console.py,sha256=t9azZpmRMVU5cphVBZSShNsmBxd2-IAWcTTlhor-E1s,100849 +pip/_vendor/rich/constrain.py,sha256=1VIPuC8AgtKWrcncQrjBdYqA3JVWysu6jZo1rrh7c7Q,1288 +pip/_vendor/rich/containers.py,sha256=c_56TxcedGYqDepHBMTuZdUIijitAQgnox-Qde0Z1qo,5502 +pip/_vendor/rich/control.py,sha256=EUTSUFLQbxY6Zmo_sdM-5Ls323vIHTBfN8TPulqeHUY,6487 +pip/_vendor/rich/default_styles.py,sha256=khQFqqaoDs3bprMqWpHw8nO5UpG2DN6QtuTd6LzZwYc,8257 +pip/_vendor/rich/diagnose.py,sha256=fJl1TItRn19gGwouqTg-8zPUW3YqQBqGltrfPQs1H9w,1025 +pip/_vendor/rich/emoji.py,sha256=Wd4bQubZdSy6-PyrRQNuMHtn2VkljK9uPZPVlu2cmx0,2367 +pip/_vendor/rich/errors.py,sha256=5pP3Kc5d4QJ_c0KFsxrfyhjiPVe7J1zOqSFbFAzcV-Y,642 +pip/_vendor/rich/file_proxy.py,sha256=Tl9THMDZ-Pk5Wm8sI1gGg_U5DhusmxD-FZ0fUbcU0W0,1683 +pip/_vendor/rich/filesize.py,sha256=_iz9lIpRgvW7MNSeCZnLg-HwzbP4GETg543WqD8SFs0,2484 +pip/_vendor/rich/highlighter.py,sha256=G_sn-8DKjM1sEjLG_oc4ovkWmiUpWvj8bXi0yed2LnY,9586 +pip/_vendor/rich/json.py,sha256=vVEoKdawoJRjAFayPwXkMBPLy7RSTs-f44wSQDR2nJ0,5031 +pip/_vendor/rich/jupyter.py,sha256=QyoKoE_8IdCbrtiSHp9TsTSNyTHY0FO5whE7jOTd9UE,3252 +pip/_vendor/rich/layout.py,sha256=ajkSFAtEVv9EFTcFs-w4uZfft7nEXhNzL7ZVdgrT5rI,14004 +pip/_vendor/rich/live.py,sha256=tF3ukAAJZ_N2ZbGclqZ-iwLoIoZ8f0HHUz79jAyJqj8,15180 +pip/_vendor/rich/live_render.py,sha256=It_39YdzrBm8o3LL0kaGorPFg-BfZWAcrBjLjFokbx4,3521 +pip/_vendor/rich/logging.py,sha256=5KaPPSMP9FxcXPBcKM4cGd_zW78PMgf-YbMVnvfSw0o,12468 +pip/_vendor/rich/markup.py,sha256=3euGKP5s41NCQwaSjTnJxus5iZMHjxpIM0W6fCxra38,8451 +pip/_vendor/rich/measure.py,sha256=HmrIJX8sWRTHbgh8MxEay_83VkqNW_70s8aKP5ZcYI8,5305 +pip/_vendor/rich/padding.py,sha256=KVEI3tOwo9sgK1YNSuH__M1_jUWmLZwRVV_KmOtVzyM,4908 +pip/_vendor/rich/pager.py,sha256=SO_ETBFKbg3n_AgOzXm41Sv36YxXAyI3_R-KOY2_uSc,828 +pip/_vendor/rich/palette.py,sha256=lInvR1ODDT2f3UZMfL1grq7dY_pDdKHw4bdUgOGaM4Y,3396 +pip/_vendor/rich/panel.py,sha256=9sQl00hPIqH5G2gALQo4NepFwpP0k9wT-s_gOms5pIc,11157 +pip/_vendor/rich/pretty.py,sha256=gy3S72u4FRg2ytoo7N1ZDWDIvB4unbzd5iUGdgm-8fc,36391 +pip/_vendor/rich/progress.py,sha256=CUc2lkU-X59mVdGfjMCBkZeiGPL3uxdONjhNJF2T7wY,60408 +pip/_vendor/rich/progress_bar.py,sha256=mZTPpJUwcfcdgQCTTz3kyY-fc79ddLwtx6Ghhxfo064,8162 +pip/_vendor/rich/prompt.py,sha256=l0RhQU-0UVTV9e08xW1BbIj0Jq2IXyChX4lC0lFNzt4,12447 +pip/_vendor/rich/protocol.py,sha256=5hHHDDNHckdk8iWH5zEbi-zuIVSF5hbU2jIo47R7lTE,1391 +pip/_vendor/rich/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/rich/region.py,sha256=rNT9xZrVZTYIXZC0NYn41CJQwYNbR-KecPOxTgQvB8Y,166 +pip/_vendor/rich/repr.py,sha256=5MZJZmONgC6kud-QW-_m1okXwL2aR6u6y-pUcUCJz28,4431 +pip/_vendor/rich/rule.py,sha256=0fNaS_aERa3UMRc3T5WMpN_sumtDxfaor2y3of1ftBk,4602 +pip/_vendor/rich/scope.py,sha256=TMUU8qo17thyqQCPqjDLYpg_UU1k5qVd-WwiJvnJVas,2843 +pip/_vendor/rich/screen.py,sha256=YoeReESUhx74grqb0mSSb9lghhysWmFHYhsbMVQjXO8,1591 +pip/_vendor/rich/segment.py,sha256=otnKeKGEV-WRlQVosfJVeFDcDxAKHpvJ_hLzSu5lumM,24743 +pip/_vendor/rich/spinner.py,sha256=onIhpKlljRHppTZasxO8kXgtYyCHUkpSgKglRJ3o51g,4214 +pip/_vendor/rich/status.py,sha256=kkPph3YeAZBo-X-4wPp8gTqZyU466NLwZBA4PZTTewo,4424 +pip/_vendor/rich/style.py,sha256=W9Ccy8Py8lNICtlfcp-ryzMTuQaGxAU3av7-g5fHu0s,26990 +pip/_vendor/rich/styled.py,sha256=eZNnzGrI4ki_54pgY3Oj0T-x3lxdXTYh4_ryDB24wBU,1258 +pip/_vendor/rich/syntax.py,sha256=eDKIRwl--eZ0Lwo2da2RRtfutXGavrJO61Cl5OkS59U,36371 +pip/_vendor/rich/table.py,sha256=ZmT7V7MMCOYKw7TGY9SZLyYDf6JdM-WVf07FdVuVhTI,40049 +pip/_vendor/rich/terminal_theme.py,sha256=1j5-ufJfnvlAo5Qsi_ACZiXDmwMXzqgmFByObT9-yJY,3370 +pip/_vendor/rich/text.py,sha256=AO7JPCz6-gaN1thVLXMBntEmDPVYFgFNG1oM61_sanU,47552 +pip/_vendor/rich/theme.py,sha256=oNyhXhGagtDlbDye3tVu3esWOWk0vNkuxFw-_unlaK0,3771 +pip/_vendor/rich/themes.py,sha256=0xgTLozfabebYtcJtDdC5QkX5IVUEaviqDUJJh4YVFk,102 +pip/_vendor/rich/traceback.py,sha256=c0WmB_L04_UfZbLaoH982_U_s7eosxKMUiAVmDPdRYU,35861 +pip/_vendor/rich/tree.py,sha256=yWnQ6rAvRGJ3qZGqBrxS2SW2TKBTNrP0SdY8QxOFPuw,9451 +pip/_vendor/tomli/LICENSE,sha256=uAgWsNUwuKzLTCIReDeQmEpuO2GSLCte6S8zcqsnQv4,1072 +pip/_vendor/tomli/__init__.py,sha256=qzEGl8QHhqgQPCuLzfKyPIuH3KKPspf-UVPbZ0ppBD4,314 +pip/_vendor/tomli/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/tomli/__pycache__/_parser.cpython-311.pyc,, +pip/_vendor/tomli/__pycache__/_re.cpython-311.pyc,, +pip/_vendor/tomli/__pycache__/_types.cpython-311.pyc,, +pip/_vendor/tomli/_parser.py,sha256=bO8tUYmnyA2K6m4TnbQbfUqmIFcDv7mG1KuC9gqRVmA,25778 +pip/_vendor/tomli/_re.py,sha256=n8-Io8ZK1U-F6jzlg7Pabc40hLFJsawE2uNLKH9w7iU,3235 +pip/_vendor/tomli/_types.py,sha256=-GTG2VUqkpxwMqzmVO4F7ybKddIbAnuAHXfmWQcTi3Q,254 +pip/_vendor/tomli/py.typed,sha256=8PjyZ1aVoQpRVvt71muvuq5qE-jTFZkK-GLHkhdebmc,26 +pip/_vendor/tomli_w/LICENSE,sha256=uAgWsNUwuKzLTCIReDeQmEpuO2GSLCte6S8zcqsnQv4,1072 +pip/_vendor/tomli_w/__init__.py,sha256=0F8yDtXx3Uunhm874KrAcP76srsM98y7WyHQwCulZbo,169 +pip/_vendor/tomli_w/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/tomli_w/__pycache__/_writer.cpython-311.pyc,, +pip/_vendor/tomli_w/_writer.py,sha256=dsifFS2xYf1i76mmRyfz9y125xC7Z_HQ845ZKhJsYXs,6961 +pip/_vendor/tomli_w/py.typed,sha256=8PjyZ1aVoQpRVvt71muvuq5qE-jTFZkK-GLHkhdebmc,26 +pip/_vendor/truststore/LICENSE,sha256=M757fo-k_Rmxdg4ajtimaL2rhSyRtpLdQUJLy3Jan8o,1086 +pip/_vendor/truststore/__init__.py,sha256=Bu7kqkmpunhLsj5xCu8gT_25ktoPXcSnwe8VHk1GmJo,1320 +pip/_vendor/truststore/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/truststore/__pycache__/_api.cpython-311.pyc,, +pip/_vendor/truststore/__pycache__/_macos.cpython-311.pyc,, +pip/_vendor/truststore/__pycache__/_openssl.cpython-311.pyc,, +pip/_vendor/truststore/__pycache__/_ssl_constants.cpython-311.pyc,, +pip/_vendor/truststore/__pycache__/_windows.cpython-311.pyc,, +pip/_vendor/truststore/_api.py,sha256=CYJCV5BTfttZYfqY3movdMBE-8az7uhET_LYbKT2Nn4,11413 +pip/_vendor/truststore/_macos.py,sha256=nZlLkOmszUE0g6ryRwBVGY5COzPyudcsiJtDWarM5LQ,20503 +pip/_vendor/truststore/_openssl.py,sha256=zB-SQvJydks7tQ0yIwrP6GD3fQNSSaPiq7zw4yF5T40,2412 +pip/_vendor/truststore/_ssl_constants.py,sha256=NUD4fVKdSD02ri7-db0tnO0VqLP9aHuzmStcW7tAl08,1130 +pip/_vendor/truststore/_windows.py,sha256=rAHyKYD8M7t-bXfG8VgOVa3TpfhVhbt4rZQlO45YuP8,17993 +pip/_vendor/truststore/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/urllib3/LICENSE.txt,sha256=w3vxhuJ8-dvpYZ5V7f486nswCRzrPaY8fay-Dm13kHs,1115 +pip/_vendor/urllib3/__init__.py,sha256=iXLcYiJySn0GNbWOOZDDApgBL1JgP44EZ8i1760S8Mc,3333 +pip/_vendor/urllib3/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/_collections.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/_version.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/connection.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/connectionpool.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/exceptions.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/fields.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/filepost.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/poolmanager.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/request.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/response.cpython-311.pyc,, +pip/_vendor/urllib3/_collections.py,sha256=pyASJJhW7wdOpqJj9QJA8FyGRfr8E8uUUhqUvhF0728,11372 +pip/_vendor/urllib3/_version.py,sha256=t9wGB6ooOTXXgiY66K1m6BZS1CJyXHAU8EoWDTe6Shk,64 +pip/_vendor/urllib3/connection.py,sha256=ttIA909BrbTUzwkqEe_TzZVh4JOOj7g61Ysei2mrwGg,20314 +pip/_vendor/urllib3/connectionpool.py,sha256=e2eiAwNbFNCKxj4bwDKNK-w7HIdSz3OmMxU_TIt-evQ,40408 +pip/_vendor/urllib3/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/_appengine_environ.py,sha256=bDbyOEhW2CKLJcQqAKAyrEHN-aklsyHFKq6vF8ZFsmk,957 +pip/_vendor/urllib3/contrib/_securetransport/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/_securetransport/bindings.py,sha256=4Xk64qIkPBt09A5q-RIFUuDhNc9mXilVapm7WnYnzRw,17632 +pip/_vendor/urllib3/contrib/_securetransport/low_level.py,sha256=B2JBB2_NRP02xK6DCa1Pa9IuxrPwxzDzZbixQkb7U9M,13922 +pip/_vendor/urllib3/contrib/appengine.py,sha256=VR68eAVE137lxTgjBDwCna5UiBZTOKa01Aj_-5BaCz4,11036 +pip/_vendor/urllib3/contrib/ntlmpool.py,sha256=NlfkW7WMdW8ziqudopjHoW299og1BTWi0IeIibquFwk,4528 +pip/_vendor/urllib3/contrib/pyopenssl.py,sha256=hDJh4MhyY_p-oKlFcYcQaVQRDv6GMmBGuW9yjxyeejM,17081 +pip/_vendor/urllib3/contrib/securetransport.py,sha256=Fef1IIUUFHqpevzXiDPbIGkDKchY2FVKeVeLGR1Qq3g,34446 +pip/_vendor/urllib3/contrib/socks.py,sha256=aRi9eWXo9ZEb95XUxef4Z21CFlnnjbEiAo9HOseoMt4,7097 +pip/_vendor/urllib3/exceptions.py,sha256=0Mnno3KHTNfXRfY7638NufOPkUb6mXOm-Lqj-4x2w8A,8217 +pip/_vendor/urllib3/fields.py,sha256=kvLDCg_JmH1lLjUUEY_FLS8UhY7hBvDPuVETbY8mdrM,8579 +pip/_vendor/urllib3/filepost.py,sha256=5b_qqgRHVlL7uLtdAYBzBh-GHmU5AfJVt_2N0XS3PeY,2440 +pip/_vendor/urllib3/packages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/urllib3/packages/__pycache__/six.cpython-311.pyc,, +pip/_vendor/urllib3/packages/backports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-311.pyc,, +pip/_vendor/urllib3/packages/backports/__pycache__/weakref_finalize.cpython-311.pyc,, +pip/_vendor/urllib3/packages/backports/makefile.py,sha256=nbzt3i0agPVP07jqqgjhaYjMmuAi_W5E0EywZivVO8E,1417 +pip/_vendor/urllib3/packages/backports/weakref_finalize.py,sha256=tRCal5OAhNSRyb0DhHp-38AtIlCsRP8BxF3NX-6rqIA,5343 +pip/_vendor/urllib3/packages/six.py,sha256=b9LM0wBXv7E7SrbCjAm4wwN-hrH-iNxv18LgWNMMKPo,34665 +pip/_vendor/urllib3/poolmanager.py,sha256=aWyhXRtNO4JUnCSVVqKTKQd8EXTvUm1VN9pgs2bcONo,19990 +pip/_vendor/urllib3/request.py,sha256=YTWFNr7QIwh7E1W9dde9LM77v2VWTJ5V78XuTTw7D1A,6691 +pip/_vendor/urllib3/response.py,sha256=fmDJAFkG71uFTn-sVSTh2Iw0WmcXQYqkbRjihvwBjU8,30641 +pip/_vendor/urllib3/util/__init__.py,sha256=JEmSmmqqLyaw8P51gUImZh8Gwg9i1zSe-DoqAitn2nc,1155 +pip/_vendor/urllib3/util/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/connection.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/proxy.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/queue.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/request.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/response.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/retry.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/ssl_match_hostname.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/timeout.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/url.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/wait.cpython-311.pyc,, +pip/_vendor/urllib3/util/connection.py,sha256=5Lx2B1PW29KxBn2T0xkN1CBgRBa3gGVJBKoQoRogEVk,4901 +pip/_vendor/urllib3/util/proxy.py,sha256=zUvPPCJrp6dOF0N4GAVbOcl6o-4uXKSrGiTkkr5vUS4,1605 +pip/_vendor/urllib3/util/queue.py,sha256=nRgX8_eX-_VkvxoX096QWoz8Ps0QHUAExILCY_7PncM,498 +pip/_vendor/urllib3/util/request.py,sha256=C0OUt2tcU6LRiQJ7YYNP9GvPrSvl7ziIBekQ-5nlBZk,3997 +pip/_vendor/urllib3/util/response.py,sha256=GJpg3Egi9qaJXRwBh5wv-MNuRWan5BIu40oReoxWP28,3510 +pip/_vendor/urllib3/util/retry.py,sha256=6ENvOZ8PBDzh8kgixpql9lIrb2dxH-k7ZmBanJF2Ng4,22050 +pip/_vendor/urllib3/util/ssl_.py,sha256=QDuuTxPSCj1rYtZ4xpD7Ux-r20TD50aHyqKyhQ7Bq4A,17460 +pip/_vendor/urllib3/util/ssl_match_hostname.py,sha256=Ir4cZVEjmAk8gUAIHWSi7wtOO83UCYABY2xFD1Ql_WA,5758 +pip/_vendor/urllib3/util/ssltransport.py,sha256=NA-u5rMTrDFDFC8QzRKUEKMG0561hOD4qBTr3Z4pv6E,6895 +pip/_vendor/urllib3/util/timeout.py,sha256=cwq4dMk87mJHSBktK1miYJ-85G-3T3RmT20v7SFCpno,10168 +pip/_vendor/urllib3/util/url.py,sha256=lCAE7M5myA8EDdW0sJuyyZhVB9K_j38ljWhHAnFaWoE,14296 +pip/_vendor/urllib3/util/wait.py,sha256=fOX0_faozG2P7iVojQoE1mbydweNyTcm-hXEfFrTtLI,5403 +pip/_vendor/vendor.txt,sha256=vVQNxfrf_nPy_pjSSGklxQVWmH5hvhyDtZgbszGbw7c,343 +pip/py.typed,sha256=EBVvvPRTn_eIpz5e5QztSCdrMX7Qwd7VP93RSoIlZ2I,286 diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/WHEEL b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/WHEEL new file mode 100644 index 0000000..d8b9936 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: flit 3.12.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/entry_points.txt b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/entry_points.txt new file mode 100644 index 0000000..c6436d2 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/entry_points.txt @@ -0,0 +1,4 @@ +[console_scripts] +pip=pip._internal.cli.main:main +pip3=pip._internal.cli.main:main + diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/AUTHORS.txt b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/AUTHORS.txt new file mode 100644 index 0000000..6ce9e40 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/AUTHORS.txt @@ -0,0 +1,842 @@ +@Switch01 +A_Rog +Aakanksha Agrawal +Abhinav Sagar +ABHYUDAY PRATAP SINGH +abs51295 +AceGentile +Adam Chainz +Adam Tse +Adam Turner +Adam Wentz +admin +Adolfo Ochagavía +Adrien Morison +Agus +ahayrapetyan +Ahilya +AinsworthK +Akash Srivastava +Alan Yee +Albert Tugushev +Albert-Guan +albertg +Alberto Sottile +Aleks Bunin +Ales Erjavec +Alessandro Molina +Alethea Flowers +Alex Gaynor +Alex Grönholm +Alex Hedges +Alex Loosley +Alex Morega +Alex Stachowiak +Alexander Regueiro +Alexander Shtyrov +Alexandre Conrad +Alexey Popravka +Aleš Erjavec +Alli +Aman +Ami Fischman +Ananya Maiti +Anatoly Techtonik +Anders Kaseorg +Andre Aguiar +Andreas Lutro +Andrei Geacar +Andrew Gaul +Andrew Shymanel +Andrey Bienkowski +Andrey Bulgakov +Andrés Delfino +Andy Freeland +Andy Kluger +Ani Hayrapetyan +Aniruddha Basak +Anish Tambe +Anrs Hu +Anthony Sottile +Antoine Lambert +Antoine Musso +Anton Ovchinnikov +Anton Patrushev +Anton Zelenov +Antonio Alvarado Hernandez +Antony Lee +Antti Kaihola +Anubhav Patel +Anudit Nagar +Anuj Godase +AQNOUCH Mohammed +AraHaan +arena +arenasys +Arindam Choudhury +Armin Ronacher +Arnon Yaari +Artem +Arun Babu Neelicattu +Ashley Manton +Ashwin Ramaswami +atse +Atsushi Odagiri +Avinash Karhana +Avner Cohen +Awit (Ah-Wit) Ghirmai +Baptiste Mispelon +Barney Gale +barneygale +Bartek Ogryczak +Bastian Venthur +Ben Bodenmiller +Ben Darnell +Ben Hoyt +Ben Mares +Ben Rosser +Bence Nagy +Benjamin Peterson +Benjamin VanEvery +Benoit Pierre +Berker Peksag +Bernard +Bernard Tyers +Bernardo B. Marques +Bernhard M. Wiedemann +Bertil Hatt +Bhavam Vidyarthi +Blazej Michalik +Bogdan Opanchuk +BorisZZZ +Brad Erickson +Bradley Ayers +Bradley Reynolds +Branch Vincent +Brandon L. Reiss +Brandt Bucher +Brannon Dorsey +Brett Randall +Brett Rosen +Brian Cristante +Brian Rosner +briantracy +BrownTruck +Bruno Oliveira +Bruno Renié +Bruno S +Bstrdsmkr +Buck Golemon +burrows +Bussonnier Matthias +bwoodsend +c22 +Caleb Brown +Caleb Martinez +Calvin Smith +Carl Meyer +Carlos Liam +Carol Willing +Carter Thayer +Cass +Chandrasekhar Atina +Charlie Marsh +charwick +Chih-Hsuan Yen +Chris Brinker +Chris Hunt +Chris Jerdonek +Chris Kuehl +Chris Markiewicz +Chris McDonough +Chris Pawley +Chris Pryer +Chris Wolfe +Christian Clauss +Christian Heimes +Christian Oudard +Christoph Reiter +Christopher Hunt +Christopher Snyder +chrysle +cjc7373 +Clark Boylan +Claudio Jolowicz +Clay McClure +Cody +Cody Soyland +Colin Watson +Collin Anderson +Connor Osborn +Cooper Lees +Cooper Ry Lees +Cory Benfield +Cory Wright +Craig Kerstiens +Cristian Sorinel +Cristina +Cristina Muñoz +ctg123 +Curtis Doty +cytolentino +Daan De Meyer +Dale +Damian +Damian Quiroga +Damian Shaw +Dan Black +Dan Savilonis +Dan Sully +Dane Hillard +daniel +Daniel Collins +Daniel Hahler +Daniel Holth +Daniel Jost +Daniel Katz +Daniel Shaulov +Daniele Esposti +Daniele Nicolodi +Daniele Procida +Daniil Konovalenko +Danny Hermes +Danny McClanahan +Darren Kavanagh +Dav Clark +Dave Abrahams +Dave Jones +David Aguilar +David Black +David Bordeynik +David Caro +David D Lowe +David Evans +David Hewitt +David Linke +David Poggi +David Poznik +David Pursehouse +David Runge +David Tucker +David Wales +Davidovich +ddelange +Deepak Sharma +Deepyaman Datta +Denis Roussel (ACSONE) +Denise Yu +dependabot[bot] +derwolfe +Desetude +developer +Devesh Kumar +Devesh Kumar Singh +devsagul +Diego Caraballo +Diego Ramirez +DiegoCaraballo +Dimitri Merejkowsky +Dimitri Papadopoulos +Dimitri Papadopoulos Orfanos +Dirk Stolle +dkjsone +Dmitry Gladkov +Dmitry Volodin +Domen Kožar +Dominic Davis-Foster +Donald Stufft +Dongweiming +doron zarhi +Dos Moonen +Douglas Thor +DrFeathers +Dustin Ingram +Dustin Rodrigues +Dwayne Bailey +Ed Morley +Edgar Ramírez +Edgar Ramírez Mondragón +Ee Durbin +Efflam Lemaillet +efflamlemaillet +Eitan Adler +ekristina +elainechan +Eli Schwartz +Elisha Hollander +Ellen Marie Dash +Emil Burzo +Emil Styrke +Emmanuel Arias +Endoh Takanao +enoch +Erdinc Mutlu +Eric Cousineau +Eric Gillingham +Eric Hanchrow +Eric Hopper +Erik M. Bray +Erik Rose +Erwin Janssen +Eugene Vereshchagin +everdimension +Federico +Felipe Peter +Felix Yan +fiber-space +Filip Kokosiński +Filipe Laíns +Finn Womack +finnagin +Flavio Amurrio +Florian Briand +Florian Rathgeber +Francesco +Francesco Montesano +Fredrik Orderud +Fredrik Roubert +Frost Ming +Gabriel Curio +Gabriel de Perthuis +Garry Polley +gavin +gdanielson +Gene Wood +Geoffrey Sneddon +George Margaritis +George Song +Georgi Valkov +Georgy Pchelkin +ghost +Giftlin Rajaiah +gizmoguy1 +gkdoc +Godefroid Chapelle +Gopinath M +GOTO Hayato +gousaiyang +gpiks +Greg Roodt +Greg Ward +Guilherme Espada +Guillaume Seguin +gutsytechster +Guy Rozendorn +Guy Tuval +gzpan123 +Hanjun Kim +Hari Charan +Harsh Vardhan +harupy +Harutaka Kawamura +hauntsaninja +Henrich Hartzer +Henry Schreiner +Herbert Pfennig +Holly Stotelmyer +Honnix +Hsiaoming Yang +Hugo Lopes Tavares +Hugo van Kemenade +Hugues Bruant +Hynek Schlawack +iamsrp-deshaw +Ian Bicking +Ian Cordasco +Ian Lee +Ian Stapleton Cordasco +Ian Wienand +Igor Kuzmitshov +Igor Sobreira +Ikko Ashimine +Ilan Schnell +Illia Volochii +Ilya Abdolmanafi +Ilya Baryshev +Inada Naoki +Ionel Cristian Mărieș +Ionel Maries Cristian +Itamar Turner-Trauring +iTrooz +Ivan Pozdeev +J. Nick Koston +Jacob Kim +Jacob Walls +Jaime Sanz +Jake Lishman +jakirkham +Jakub Kuczys +Jakub Stasiak +Jakub Vysoky +Jakub Wilk +James Cleveland +James Curtin +James Firth +James Gerity +James Polley +Jan Pokorný +Jannis Leidel +Jarek Potiuk +jarondl +Jason Curtis +Jason R. Coombs +JasonMo +JasonMo1 +Jay Graves +Jean Abou Samra +Jean-Christophe Fillion-Robin +Jeff Barber +Jeff Dairiki +Jeff Widman +Jelmer Vernooij +jenix21 +Jeremy Fleischman +Jeremy Stanley +Jeremy Zafran +Jesse Rittner +Jiashuo Li +Jim Fisher +Jim Garrison +Jinzhe Zeng +Jiun Bae +Jivan Amara +Joa +Joe Bylund +Joe Michelini +Johannes Altmanninger +John Paton +John Sirois +John T. Wodder II +John-Scott Atlakson +johnthagen +Jon Banafato +Jon Dufresne +Jon Parise +Jonas Nockert +Jonathan Herbert +Joonatan Partanen +Joost Molenaar +Jorge Niedbalski +Joseph Bylund +Joseph Long +Josh Bronson +Josh Cannon +Josh Hansen +Josh Schneier +Joshua +JoshuaPerdue +Juan Luis Cano Rodríguez +Juanjo Bazán +Judah Rand +Julian Berman +Julian Gethmann +Julien Demoor +July Tikhonov +Jussi Kukkonen +Justin van Heek +jwg4 +Jyrki Pulliainen +Kai Chen +Kai Mueller +Kamal Bin Mustafa +Karolina Surma +kasium +kaustav haldar +keanemind +Keith Maxwell +Kelsey Hightower +Kenneth Belitzky +Kenneth Reitz +Kevin Burke +Kevin Carter +Kevin Frommelt +Kevin R Patterson +Kexuan Sun +Kit Randel +Klaas van Schelven +KOLANICH +konstin +kpinc +Krishan Bhasin +Krishna Oza +Kumar McMillan +Kuntal Majumder +Kurt McKee +Kyle Persohn +lakshmanaram +Laszlo Kiss-Kollar +Laurent Bristiel +Laurent LAPORTE +Laurie O +Laurie Opperman +layday +Leon Sasson +Lev Givon +Lincoln de Sousa +Lipis +lorddavidiii +Loren Carvalho +Lucas Cimon +Ludovic Gasc +Luis Medel +Lukas Geiger +Lukas Juhrich +Luke Macken +Luo Jiebin +luojiebin +luz.paz +László Kiss Kollár +M00nL1ght +MajorTanya +Malcolm Smith +Marc Abramowitz +Marc Tamlyn +Marcus Smith +Mariatta +Mark Kohler +Mark McLoughlin +Mark Williams +Markus Hametner +Martey Dodoo +Martin Fischer +Martin Häcker +Martin Pavlasek +Masaki +Masklinn +Matej Stuchlik +Mateusz Sokół +Mathew Jennings +Mathieu Bridon +Mathieu Kniewallner +Matt Bacchi +Matt Good +Matt Maker +Matt Robenolt +Matt Wozniski +matthew +Matthew Einhorn +Matthew Feickert +Matthew Gilliard +Matthew Hughes +Matthew Iversen +Matthew Treinish +Matthew Trumbell +Matthew Willson +Matthias Bussonnier +mattip +Maurits van Rees +Max W Chase +Maxim Kurnikov +Maxime Rouyrre +mayeut +mbaluna +Md Sujauddin Sekh +mdebi +Meet Vasita +memoselyk +meowmeowcat +Michael +Michael Aquilina +Michael E. Karpeles +Michael Klich +Michael Mintz +Michael Williamson +michaelpacer +Michał Górny +Mickaël Schoentgen +Miguel Araujo Perez +Mihir Singh +Mike +Mike Hendricks +Min RK +MinRK +Miro Hrončok +Monica Baluna +montefra +Monty Taylor +morotti +mrKazzila +Muha Ajjan +Nadav Wexler +Nahuel Ambrosini +Nate Coraor +Nate Prewitt +Nathan Houghton +Nathaniel J. Smith +Nehal J Wani +Neil Botelho +Nguyễn Gia Phong +Nicholas Serra +Nick Coghlan +Nick Stenning +Nick Timkovich +Nicolas Bock +Nicole Harris +Nikhil Benesch +Nikhil Ladha +Nikita Chepanov +Nikolay Korolev +Nipunn Koorapati +Nitesh Sharma +Niyas Sait +Noah +Noah Gorny +Nowell Strite +NtaleGrey +nucccc +nvdv +OBITORASU +Ofek Lev +ofrinevo +Oleg Burnaev +Oliver Freund +Oliver Jeeves +Oliver Mannion +Oliver Tonnhofer +Olivier Girardot +Olivier Grisel +Ollie Rutherfurd +OMOTO Kenji +Omry Yadan +onlinejudge95 +Oren Held +Oscar Benjamin +Oz N Tiram +Pachwenko +Patrick Dubroy +Patrick Jenkins +Patrick Lawson +patricktokeeffe +Patrik Kopkan +Paul Ganssle +Paul Kehrer +Paul Moore +Paul Nasrat +Paul Oswald +Paul van der Linden +Paulus Schoutsen +Pavel Safronov +Pavithra Eswaramoorthy +Pawel Jasinski +Paweł Szramowski +Pekka Klärck +Peter Gessler +Peter Lisák +Peter Shen +Peter Waller +Petr Viktorin +petr-tik +Phaneendra Chiruvella +Phil Elson +Phil Freo +Phil Pennock +Phil Whelan +Philip Jägenstedt +Philip Molloy +Philippe Ombredanne +Pi Delport +Pierre-Yves Rofes +Pieter Degroote +pip +Prabakaran Kumaresshan +Prabhjyotsing Surjit Singh Sodhi +Prabhu Marappan +Pradyun Gedam +Prashant Sharma +Pratik Mallya +pre-commit-ci[bot] +Preet Thakkar +Preston Holmes +Przemek Wrzos +Pulkit Goyal +q0w +Qiangning Hong +Qiming Xu +qraqras +Quentin Lee +Quentin Pradet +R. David Murray +Rafael Caricio +Ralf Schmitt +Ran Benita +Randy Döring +Razzi Abuissa +rdb +Reece Dunham +Remi Rampin +Rene Dudfield +Riccardo Magliocchetti +Riccardo Schirone +Richard Jones +Richard Si +Ricky Ng-Adam +Rishi +rmorotti +RobberPhex +Robert Collins +Robert McGibbon +Robert Pollak +Robert T. McGibbon +robin elisha robinson +Rodney, Tiara +Roey Berman +Rohan Jain +Roman Bogorodskiy +Roman Donchenko +Romuald Brunet +ronaudinho +Ronny Pfannschmidt +Rory McCann +Ross Brattain +Roy Wellington Ⅳ +Ruairidh MacLeod +Russell Keith-Magee +Ryan Shepherd +Ryan Wooden +ryneeverett +Ryuma Asai +S. Guliaev +Sachi King +Salvatore Rinchiera +sandeepkiran-js +Sander Van Balen +Savio Jomton +schlamar +Scott Kitterman +Sean +seanj +Sebastian Jordan +Sebastian Schaetz +Segev Finer +SeongSoo Cho +Sepehr Rasouli +sepehrrasooli +Sergey Vasilyev +Seth Michael Larson +Seth Woodworth +Shahar Epstein +Shantanu +shenxianpeng +shireenrao +Shivansh-007 +Shixian Sheng +Shlomi Fish +Shovan Maity +Shubham Nagure +Simeon Visser +Simon Cross +Simon Pichugin +sinoroc +sinscary +snook92 +socketubs +Sorin Sbarnea +Srinivas Nyayapati +Srishti Hegde +Stavros Korokithakis +Stefan Scherfke +Stefano Rivera +Stephan Erb +Stephen Payne +Stephen Rosen +stepshal +Steve (Gadget) Barnes +Steve Barnes +Steve Dower +Steve Kowalik +Steven Myint +Steven Silvester +stonebig +studioj +Stéphane Bidoul +Stéphane Bidoul (ACSONE) +Stéphane Klein +Sumana Harihareswara +Surbhi Sharma +Sviatoslav Sydorenko +Sviatoslav Sydorenko (Святослав Сидоренко) +Swat009 +Sylvain +Takayuki SHIMIZUKAWA +Taneli Hukkinen +tbeswick +Thiago +Thijs Triemstra +Thomas Fenzl +Thomas Grainger +Thomas Guettler +Thomas Johansson +Thomas Kluyver +Thomas Smith +Thomas VINCENT +Tim D. Smith +Tim Gates +Tim Harder +Tim Heap +tim smith +tinruufu +Tobias Hermann +Tom Forbes +Tom Freudenheim +Tom V +Tomas Hrnciar +Tomas Orsava +Tomer Chachamu +Tommi Enenkel | AnB +Tomáš Hrnčiar +Tony Beswick +Tony Narlock +Tony Zhaocheng Tan +TonyBeswick +toonarmycaptain +Toshio Kuratomi +toxinu +Travis Swicegood +Tushar Sadhwani +Tzu-ping Chung +Valentin Haenel +Victor Stinner +victorvpaulo +Vikram - Google +Viktor Szépe +Ville Skyttä +Vinay Sajip +Vincent Philippon +Vinicyus Macedo +Vipul Kumar +Vitaly Babiy +Vladimir Fokow +Vladimir Rutsky +W. Trevor King +Wil Tan +Wilfred Hughes +William Edwards +William ML Leslie +William T Olson +William Woodruff +Wilson Mo +wim glenn +Winson Luk +Wolfgang Maier +Wu Zhenyu +XAMES3 +Xavier Fernandez +Xianpeng Shen +xoviat +xtreak +YAMAMOTO Takashi +Yen Chi Hsuan +Yeray Diaz Diaz +Yoval P +Yu Jian +Yuan Jing Vincent Yan +Yuki Kobayashi +Yusuke Hayashi +zackzack38 +Zearin +Zhiping Deng +ziebam +Zvezdan Petkovic +Łukasz Langa +Роман Донченко +Семён Марьясин diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/LICENSE.txt b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/LICENSE.txt new file mode 100644 index 0000000..8e7b65e --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/LICENSE.txt @@ -0,0 +1,20 @@ +Copyright (c) 2008-present The pip developers (see AUTHORS.txt file) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/cachecontrol/LICENSE.txt b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/cachecontrol/LICENSE.txt new file mode 100644 index 0000000..d8b3b56 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/cachecontrol/LICENSE.txt @@ -0,0 +1,13 @@ +Copyright 2012-2021 Eric Larson + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/certifi/LICENSE b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/certifi/LICENSE new file mode 100644 index 0000000..62b076c --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/certifi/LICENSE @@ -0,0 +1,20 @@ +This package contains a modified version of ca-bundle.crt: + +ca-bundle.crt -- Bundle of CA Root Certificates + +This is a bundle of X.509 certificates of public Certificate Authorities +(CA). These were automatically extracted from Mozilla's root certificates +file (certdata.txt). This file can be found in the mozilla source tree: +https://hg.mozilla.org/mozilla-central/file/tip/security/nss/lib/ckfw/builtins/certdata.txt +It contains the certificates in PEM format and therefore +can be directly used with curl / libcurl / php_curl, or with +an Apache+mod_ssl webserver for SSL client authentication. +Just configure this file as the SSLCACertificateFile.# + +***** BEGIN LICENSE BLOCK ***** +This Source Code Form is subject to the terms of the Mozilla Public License, +v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain +one at http://mozilla.org/MPL/2.0/. + +***** END LICENSE BLOCK ***** +@(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $ diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/dependency_groups/LICENSE.txt b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/dependency_groups/LICENSE.txt new file mode 100644 index 0000000..b9723b8 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/dependency_groups/LICENSE.txt @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2024-present Stephen Rosen + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/distlib/LICENSE.txt b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/distlib/LICENSE.txt new file mode 100644 index 0000000..c31ac56 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/distlib/LICENSE.txt @@ -0,0 +1,284 @@ +A. HISTORY OF THE SOFTWARE +========================== + +Python was created in the early 1990s by Guido van Rossum at Stichting +Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands +as a successor of a language called ABC. Guido remains Python's +principal author, although it includes many contributions from others. + +In 1995, Guido continued his work on Python at the Corporation for +National Research Initiatives (CNRI, see http://www.cnri.reston.va.us) +in Reston, Virginia where he released several versions of the +software. + +In May 2000, Guido and the Python core development team moved to +BeOpen.com to form the BeOpen PythonLabs team. In October of the same +year, the PythonLabs team moved to Digital Creations (now Zope +Corporation, see http://www.zope.com). In 2001, the Python Software +Foundation (PSF, see http://www.python.org/psf/) was formed, a +non-profit organization created specifically to own Python-related +Intellectual Property. Zope Corporation is a sponsoring member of +the PSF. + +All Python releases are Open Source (see http://www.opensource.org for +the Open Source Definition). Historically, most, but not all, Python +releases have also been GPL-compatible; the table below summarizes +the various releases. + + Release Derived Year Owner GPL- + from compatible? (1) + + 0.9.0 thru 1.2 1991-1995 CWI yes + 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes + 1.6 1.5.2 2000 CNRI no + 2.0 1.6 2000 BeOpen.com no + 1.6.1 1.6 2001 CNRI yes (2) + 2.1 2.0+1.6.1 2001 PSF no + 2.0.1 2.0+1.6.1 2001 PSF yes + 2.1.1 2.1+2.0.1 2001 PSF yes + 2.2 2.1.1 2001 PSF yes + 2.1.2 2.1.1 2002 PSF yes + 2.1.3 2.1.2 2002 PSF yes + 2.2.1 2.2 2002 PSF yes + 2.2.2 2.2.1 2002 PSF yes + 2.2.3 2.2.2 2003 PSF yes + 2.3 2.2.2 2002-2003 PSF yes + 2.3.1 2.3 2002-2003 PSF yes + 2.3.2 2.3.1 2002-2003 PSF yes + 2.3.3 2.3.2 2002-2003 PSF yes + 2.3.4 2.3.3 2004 PSF yes + 2.3.5 2.3.4 2005 PSF yes + 2.4 2.3 2004 PSF yes + 2.4.1 2.4 2005 PSF yes + 2.4.2 2.4.1 2005 PSF yes + 2.4.3 2.4.2 2006 PSF yes + 2.4.4 2.4.3 2006 PSF yes + 2.5 2.4 2006 PSF yes + 2.5.1 2.5 2007 PSF yes + 2.5.2 2.5.1 2008 PSF yes + 2.5.3 2.5.2 2008 PSF yes + 2.6 2.5 2008 PSF yes + 2.6.1 2.6 2008 PSF yes + 2.6.2 2.6.1 2009 PSF yes + 2.6.3 2.6.2 2009 PSF yes + 2.6.4 2.6.3 2009 PSF yes + 2.6.5 2.6.4 2010 PSF yes + 3.0 2.6 2008 PSF yes + 3.0.1 3.0 2009 PSF yes + 3.1 3.0.1 2009 PSF yes + 3.1.1 3.1 2009 PSF yes + 3.1.2 3.1 2010 PSF yes + 3.2 3.1 2010 PSF yes + +Footnotes: + +(1) GPL-compatible doesn't mean that we're distributing Python under + the GPL. All Python licenses, unlike the GPL, let you distribute + a modified version without making your changes open source. The + GPL-compatible licenses make it possible to combine Python with + other software that is released under the GPL; the others don't. + +(2) According to Richard Stallman, 1.6.1 is not GPL-compatible, + because its license has a choice of law clause. According to + CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1 + is "not incompatible" with the GPL. + +Thanks to the many outside volunteers who have worked under Guido's +direction to make these releases possible. + + +B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON +=============================================================== + +PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 +-------------------------------------------- + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using this software ("Python") in source or binary form and +its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF hereby +grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, +analyze, test, perform and/or display publicly, prepare derivative works, +distribute, and otherwise use Python alone or in any derivative version, +provided, however, that PSF's License Agreement and PSF's notice of copyright, +i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +Python Software Foundation; All Rights Reserved" are retained in Python alone or +in any derivative version prepared by Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python. + +4. PSF is making Python available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 +------------------------------------------- + +BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 + +1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an +office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the +Individual or Organization ("Licensee") accessing and otherwise using +this software in source or binary form and its associated +documentation ("the Software"). + +2. Subject to the terms and conditions of this BeOpen Python License +Agreement, BeOpen hereby grants Licensee a non-exclusive, +royalty-free, world-wide license to reproduce, analyze, test, perform +and/or display publicly, prepare derivative works, distribute, and +otherwise use the Software alone or in any derivative version, +provided, however, that the BeOpen Python License is retained in the +Software, alone or in any derivative version prepared by Licensee. + +3. BeOpen is making the Software available to Licensee on an "AS IS" +basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE +SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS +AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY +DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +5. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +6. This License Agreement shall be governed by and interpreted in all +respects by the law of the State of California, excluding conflict of +law provisions. Nothing in this License Agreement shall be deemed to +create any relationship of agency, partnership, or joint venture +between BeOpen and Licensee. This License Agreement does not grant +permission to use BeOpen trademarks or trade names in a trademark +sense to endorse or promote products or services of Licensee, or any +third party. As an exception, the "BeOpen Python" logos available at +http://www.pythonlabs.com/logos.html may be used according to the +permissions granted on that web page. + +7. By copying, installing or otherwise using the software, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 +--------------------------------------- + +1. This LICENSE AGREEMENT is between the Corporation for National +Research Initiatives, having an office at 1895 Preston White Drive, +Reston, VA 20191 ("CNRI"), and the Individual or Organization +("Licensee") accessing and otherwise using Python 1.6.1 software in +source or binary form and its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, CNRI +hereby grants Licensee a nonexclusive, royalty-free, world-wide +license to reproduce, analyze, test, perform and/or display publicly, +prepare derivative works, distribute, and otherwise use Python 1.6.1 +alone or in any derivative version, provided, however, that CNRI's +License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) +1995-2001 Corporation for National Research Initiatives; All Rights +Reserved" are retained in Python 1.6.1 alone or in any derivative +version prepared by Licensee. Alternately, in lieu of CNRI's License +Agreement, Licensee may substitute the following text (omitting the +quotes): "Python 1.6.1 is made available subject to the terms and +conditions in CNRI's License Agreement. This Agreement together with +Python 1.6.1 may be located on the Internet using the following +unique, persistent identifier (known as a handle): 1895.22/1013. This +Agreement may also be obtained from a proxy server on the Internet +using the following URL: http://hdl.handle.net/1895.22/1013". + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python 1.6.1 or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python 1.6.1. + +4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" +basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. This License Agreement shall be governed by the federal +intellectual property law of the United States, including without +limitation the federal copyright law, and, to the extent such +U.S. federal law does not apply, by the law of the Commonwealth of +Virginia, excluding Virginia's conflict of law provisions. +Notwithstanding the foregoing, with regard to derivative works based +on Python 1.6.1 that incorporate non-separable material that was +previously distributed under the GNU General Public License (GPL), the +law of the Commonwealth of Virginia shall govern this License +Agreement only as to issues arising under or with respect to +Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this +License Agreement shall be deemed to create any relationship of +agency, partnership, or joint venture between CNRI and Licensee. This +License Agreement does not grant permission to use CNRI trademarks or +trade name in a trademark sense to endorse or promote products or +services of Licensee, or any third party. + +8. By clicking on the "ACCEPT" button where indicated, or by copying, +installing or otherwise using Python 1.6.1, Licensee agrees to be +bound by the terms and conditions of this License Agreement. + + ACCEPT + + +CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 +-------------------------------------------------- + +Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, +The Netherlands. All rights reserved. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Stichting Mathematisch +Centrum or CWI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/distro/LICENSE b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/distro/LICENSE new file mode 100644 index 0000000..e06d208 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/distro/LICENSE @@ -0,0 +1,202 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/idna/LICENSE.md b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/idna/LICENSE.md new file mode 100644 index 0000000..19b6b45 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/idna/LICENSE.md @@ -0,0 +1,31 @@ +BSD 3-Clause License + +Copyright (c) 2013-2024, Kim Davies and contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/msgpack/COPYING b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/msgpack/COPYING new file mode 100644 index 0000000..f067af3 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/msgpack/COPYING @@ -0,0 +1,14 @@ +Copyright (C) 2008-2011 INADA Naoki + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/packaging/LICENSE b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/packaging/LICENSE new file mode 100644 index 0000000..6f62d44 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/packaging/LICENSE @@ -0,0 +1,3 @@ +This software is made available under the terms of *either* of the licenses +found in LICENSE.APACHE or LICENSE.BSD. Contributions to this software is made +under the terms of *both* these licenses. diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/packaging/LICENSE.APACHE b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/packaging/LICENSE.APACHE new file mode 100644 index 0000000..f433b1a --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/packaging/LICENSE.APACHE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/packaging/LICENSE.BSD b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/packaging/LICENSE.BSD new file mode 100644 index 0000000..42ce7b7 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/packaging/LICENSE.BSD @@ -0,0 +1,23 @@ +Copyright (c) Donald Stufft and individual contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/pkg_resources/LICENSE b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/pkg_resources/LICENSE new file mode 100644 index 0000000..1bb5a44 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/pkg_resources/LICENSE @@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/platformdirs/LICENSE b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/platformdirs/LICENSE new file mode 100644 index 0000000..f35fed9 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/platformdirs/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2010-202x The platformdirs developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/pygments/LICENSE b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/pygments/LICENSE new file mode 100644 index 0000000..446a1a8 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/pygments/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2006-2022 by the respective authors (see AUTHORS file). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/pyproject_hooks/LICENSE b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/pyproject_hooks/LICENSE new file mode 100644 index 0000000..b0ae9db --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/pyproject_hooks/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017 Thomas Kluyver + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/requests/LICENSE b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/requests/LICENSE new file mode 100644 index 0000000..67db858 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/requests/LICENSE @@ -0,0 +1,175 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/resolvelib/LICENSE b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/resolvelib/LICENSE new file mode 100644 index 0000000..b907776 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/resolvelib/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2018, Tzu-ping Chung + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/rich/LICENSE b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/rich/LICENSE new file mode 100644 index 0000000..4415505 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/rich/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2020 Will McGugan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/tomli/LICENSE b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/tomli/LICENSE new file mode 100644 index 0000000..e859590 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/tomli/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Taneli Hukkinen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/tomli_w/LICENSE b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/tomli_w/LICENSE new file mode 100644 index 0000000..e859590 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/tomli_w/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Taneli Hukkinen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/truststore/LICENSE b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/truststore/LICENSE new file mode 100644 index 0000000..7ec568c --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/truststore/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2022 Seth Michael Larson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/urllib3/LICENSE.txt b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/urllib3/LICENSE.txt new file mode 100644 index 0000000..429a176 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pip-25.3.dist-info/licenses/src/pip/_vendor/urllib3/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2008-2020 Andrey Petrov and contributors (see CONTRIBUTORS.txt) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/pkg_resources/__init__.py b/venv/lib/python3.11/site-packages/pkg_resources/__init__.py new file mode 100644 index 0000000..8a2fbfa --- /dev/null +++ b/venv/lib/python3.11/site-packages/pkg_resources/__init__.py @@ -0,0 +1,3714 @@ +""" +Package resource API +-------------------- + +A resource is a logical file contained within a package, or a logical +subdirectory thereof. The package resource API expects resource names +to have their path parts separated with ``/``, *not* whatever the local +path separator is. Do not use os.path operations to manipulate resource +names being passed into the API. + +The package resource API is designed to work with normal filesystem packages, +.egg files, and unpacked .egg files. It can also work in a limited way with +.zip files and with custom PEP 302 loaders that support the ``get_data()`` +method. + +This module is deprecated. Users are directed to :mod:`importlib.resources`, +:mod:`importlib.metadata` and :pypi:`packaging` instead. +""" + +from __future__ import annotations + +import sys + +if sys.version_info < (3, 9): # noqa: UP036 # Check for unsupported versions + raise RuntimeError("Python 3.9 or later is required") + +import _imp +import collections +import email.parser +import errno +import functools +import importlib +import importlib.abc +import importlib.machinery +import inspect +import io +import ntpath +import operator +import os +import pkgutil +import platform +import plistlib +import posixpath +import re +import stat +import tempfile +import textwrap +import time +import types +import warnings +import zipfile +import zipimport +from collections.abc import Iterable, Iterator, Mapping, MutableSequence +from pkgutil import get_importer +from typing import ( + TYPE_CHECKING, + Any, + BinaryIO, + Callable, + Literal, + NamedTuple, + NoReturn, + Protocol, + TypeVar, + Union, + overload, +) + +sys.path.extend(((vendor_path := os.path.join(os.path.dirname(os.path.dirname(__file__)), 'setuptools', '_vendor')) not in sys.path) * [vendor_path]) # fmt: skip +# workaround for #4476 +sys.modules.pop('backports', None) + +# capture these to bypass sandboxing +from os import open as os_open, utime # isort: skip +from os.path import isdir, split # isort: skip + +try: + from os import mkdir, rename, unlink + + WRITE_SUPPORT = True +except ImportError: + # no write support, probably under GAE + WRITE_SUPPORT = False + +import packaging.markers +import packaging.requirements +import packaging.specifiers +import packaging.utils +import packaging.version +from jaraco.text import drop_comment, join_continuation, yield_lines +from platformdirs import user_cache_dir as _user_cache_dir + +if TYPE_CHECKING: + from _typeshed import BytesPath, StrOrBytesPath, StrPath + from _typeshed.importlib import LoaderProtocol + from typing_extensions import Self, TypeAlias + +warnings.warn( + "pkg_resources is deprecated as an API. " + "See https://setuptools.pypa.io/en/latest/pkg_resources.html", + DeprecationWarning, + stacklevel=2, +) + +_T = TypeVar("_T") +_DistributionT = TypeVar("_DistributionT", bound="Distribution") +# Type aliases +_NestedStr: TypeAlias = Union[str, Iterable[Union[str, Iterable["_NestedStr"]]]] +_StrictInstallerType: TypeAlias = Callable[["Requirement"], "_DistributionT"] +_InstallerType: TypeAlias = Callable[["Requirement"], Union["Distribution", None]] +_PkgReqType: TypeAlias = Union[str, "Requirement"] +_EPDistType: TypeAlias = Union["Distribution", _PkgReqType] +_MetadataType: TypeAlias = Union["IResourceProvider", None] +_ResolvedEntryPoint: TypeAlias = Any # Can be any attribute in the module +_ResourceStream: TypeAlias = Any # TODO / Incomplete: A readable file-like object +# Any object works, but let's indicate we expect something like a module (optionally has __loader__ or __file__) +_ModuleLike: TypeAlias = Union[object, types.ModuleType] +# Any: Should be _ModuleLike but we end up with issues where _ModuleLike doesn't have _ZipLoaderModule's __loader__ +_ProviderFactoryType: TypeAlias = Callable[[Any], "IResourceProvider"] +_DistFinderType: TypeAlias = Callable[[_T, str, bool], Iterable["Distribution"]] +_NSHandlerType: TypeAlias = Callable[[_T, str, str, types.ModuleType], Union[str, None]] +_AdapterT = TypeVar( + "_AdapterT", _DistFinderType[Any], _ProviderFactoryType, _NSHandlerType[Any] +) + + +class _ZipLoaderModule(Protocol): + __loader__: zipimport.zipimporter + + +_PEP440_FALLBACK = re.compile(r"^v?(?P(?:[0-9]+!)?[0-9]+(?:\.[0-9]+)*)", re.I) + + +class PEP440Warning(RuntimeWarning): + """ + Used when there is an issue with a version or specifier not complying with + PEP 440. + """ + + +parse_version = packaging.version.Version + +_state_vars: dict[str, str] = {} + + +def _declare_state(vartype: str, varname: str, initial_value: _T) -> _T: + _state_vars[varname] = vartype + return initial_value + + +def __getstate__() -> dict[str, Any]: + state = {} + g = globals() + for k, v in _state_vars.items(): + state[k] = g['_sget_' + v](g[k]) + return state + + +def __setstate__(state: dict[str, Any]) -> dict[str, Any]: + g = globals() + for k, v in state.items(): + g['_sset_' + _state_vars[k]](k, g[k], v) + return state + + +def _sget_dict(val): + return val.copy() + + +def _sset_dict(key, ob, state) -> None: + ob.clear() + ob.update(state) + + +def _sget_object(val): + return val.__getstate__() + + +def _sset_object(key, ob, state) -> None: + ob.__setstate__(state) + + +_sget_none = _sset_none = lambda *args: None + + +def get_supported_platform(): + """Return this platform's maximum compatible version. + + distutils.util.get_platform() normally reports the minimum version + of macOS that would be required to *use* extensions produced by + distutils. But what we want when checking compatibility is to know the + version of macOS that we are *running*. To allow usage of packages that + explicitly require a newer version of macOS, we must also know the + current version of the OS. + + If this condition occurs for any other platform with a version in its + platform strings, this function should be extended accordingly. + """ + plat = get_build_platform() + m = macosVersionString.match(plat) + if m is not None and sys.platform == "darwin": + try: + major_minor = '.'.join(_macos_vers()[:2]) + build = m.group(3) + plat = f'macosx-{major_minor}-{build}' + except ValueError: + # not macOS + pass + return plat + + +__all__ = [ + # Basic resource access and distribution/entry point discovery + 'require', + 'run_script', + 'get_provider', + 'get_distribution', + 'load_entry_point', + 'get_entry_map', + 'get_entry_info', + 'iter_entry_points', + 'resource_string', + 'resource_stream', + 'resource_filename', + 'resource_listdir', + 'resource_exists', + 'resource_isdir', + # Environmental control + 'declare_namespace', + 'working_set', + 'add_activation_listener', + 'find_distributions', + 'set_extraction_path', + 'cleanup_resources', + 'get_default_cache', + # Primary implementation classes + 'Environment', + 'WorkingSet', + 'ResourceManager', + 'Distribution', + 'Requirement', + 'EntryPoint', + # Exceptions + 'ResolutionError', + 'VersionConflict', + 'DistributionNotFound', + 'UnknownExtra', + 'ExtractionError', + # Warnings + 'PEP440Warning', + # Parsing functions and string utilities + 'parse_requirements', + 'parse_version', + 'safe_name', + 'safe_version', + 'get_platform', + 'compatible_platforms', + 'yield_lines', + 'split_sections', + 'safe_extra', + 'to_filename', + 'invalid_marker', + 'evaluate_marker', + # filesystem utilities + 'ensure_directory', + 'normalize_path', + # Distribution "precedence" constants + 'EGG_DIST', + 'BINARY_DIST', + 'SOURCE_DIST', + 'CHECKOUT_DIST', + 'DEVELOP_DIST', + # "Provider" interfaces, implementations, and registration/lookup APIs + 'IMetadataProvider', + 'IResourceProvider', + 'FileMetadata', + 'PathMetadata', + 'EggMetadata', + 'EmptyProvider', + 'empty_provider', + 'NullProvider', + 'EggProvider', + 'DefaultProvider', + 'ZipProvider', + 'register_finder', + 'register_namespace_handler', + 'register_loader_type', + 'fixup_namespace_packages', + 'get_importer', + # Warnings + 'PkgResourcesDeprecationWarning', + # Deprecated/backward compatibility only + 'run_main', + 'AvailableDistributions', +] + + +class ResolutionError(Exception): + """Abstract base for dependency resolution errors""" + + def __repr__(self) -> str: + return self.__class__.__name__ + repr(self.args) + + +class VersionConflict(ResolutionError): + """ + An already-installed version conflicts with the requested version. + + Should be initialized with the installed Distribution and the requested + Requirement. + """ + + _template = "{self.dist} is installed but {self.req} is required" + + @property + def dist(self) -> Distribution: + return self.args[0] + + @property + def req(self) -> Requirement: + return self.args[1] + + def report(self): + return self._template.format(**locals()) + + def with_context( + self, required_by: set[Distribution | str] + ) -> Self | ContextualVersionConflict: + """ + If required_by is non-empty, return a version of self that is a + ContextualVersionConflict. + """ + if not required_by: + return self + args = self.args + (required_by,) + return ContextualVersionConflict(*args) + + +class ContextualVersionConflict(VersionConflict): + """ + A VersionConflict that accepts a third parameter, the set of the + requirements that required the installed Distribution. + """ + + _template = VersionConflict._template + ' by {self.required_by}' + + @property + def required_by(self) -> set[str]: + return self.args[2] + + +class DistributionNotFound(ResolutionError): + """A requested distribution was not found""" + + _template = ( + "The '{self.req}' distribution was not found " + "and is required by {self.requirers_str}" + ) + + @property + def req(self) -> Requirement: + return self.args[0] + + @property + def requirers(self) -> set[str] | None: + return self.args[1] + + @property + def requirers_str(self): + if not self.requirers: + return 'the application' + return ', '.join(self.requirers) + + def report(self): + return self._template.format(**locals()) + + def __str__(self) -> str: + return self.report() + + +class UnknownExtra(ResolutionError): + """Distribution doesn't have an "extra feature" of the given name""" + + +_provider_factories: dict[type[_ModuleLike], _ProviderFactoryType] = {} + +PY_MAJOR = f'{sys.version_info.major}.{sys.version_info.minor}' +EGG_DIST = 3 +BINARY_DIST = 2 +SOURCE_DIST = 1 +CHECKOUT_DIST = 0 +DEVELOP_DIST = -1 + + +def register_loader_type( + loader_type: type[_ModuleLike], provider_factory: _ProviderFactoryType +) -> None: + """Register `provider_factory` to make providers for `loader_type` + + `loader_type` is the type or class of a PEP 302 ``module.__loader__``, + and `provider_factory` is a function that, passed a *module* object, + returns an ``IResourceProvider`` for that module. + """ + _provider_factories[loader_type] = provider_factory + + +@overload +def get_provider(moduleOrReq: str) -> IResourceProvider: ... +@overload +def get_provider(moduleOrReq: Requirement) -> Distribution: ... +def get_provider(moduleOrReq: str | Requirement) -> IResourceProvider | Distribution: + """Return an IResourceProvider for the named module or requirement""" + if isinstance(moduleOrReq, Requirement): + return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0] + try: + module = sys.modules[moduleOrReq] + except KeyError: + __import__(moduleOrReq) + module = sys.modules[moduleOrReq] + loader = getattr(module, '__loader__', None) + return _find_adapter(_provider_factories, loader)(module) + + +@functools.cache +def _macos_vers(): + version = platform.mac_ver()[0] + # fallback for MacPorts + if version == '': + plist = '/System/Library/CoreServices/SystemVersion.plist' + if os.path.exists(plist): + with open(plist, 'rb') as fh: + plist_content = plistlib.load(fh) + if 'ProductVersion' in plist_content: + version = plist_content['ProductVersion'] + return version.split('.') + + +def _macos_arch(machine): + return {'PowerPC': 'ppc', 'Power_Macintosh': 'ppc'}.get(machine, machine) + + +def get_build_platform(): + """Return this platform's string for platform-specific distributions + + XXX Currently this is the same as ``distutils.util.get_platform()``, but it + needs some hacks for Linux and macOS. + """ + from sysconfig import get_platform + + plat = get_platform() + if sys.platform == "darwin" and not plat.startswith('macosx-'): + try: + version = _macos_vers() + machine = _macos_arch(os.uname()[4].replace(" ", "_")) + return f"macosx-{version[0]}.{version[1]}-{machine}" + except ValueError: + # if someone is running a non-Mac darwin system, this will fall + # through to the default implementation + pass + return plat + + +macosVersionString = re.compile(r"macosx-(\d+)\.(\d+)-(.*)") +darwinVersionString = re.compile(r"darwin-(\d+)\.(\d+)\.(\d+)-(.*)") +# XXX backward compat +get_platform = get_build_platform + + +def compatible_platforms(provided: str | None, required: str | None) -> bool: + """Can code for the `provided` platform run on the `required` platform? + + Returns true if either platform is ``None``, or the platforms are equal. + + XXX Needs compatibility checks for Linux and other unixy OSes. + """ + if provided is None or required is None or provided == required: + # easy case + return True + + # macOS special cases + reqMac = macosVersionString.match(required) + if reqMac: + provMac = macosVersionString.match(provided) + + # is this a Mac package? + if not provMac: + # this is backwards compatibility for packages built before + # setuptools 0.6. All packages built after this point will + # use the new macOS designation. + provDarwin = darwinVersionString.match(provided) + if provDarwin: + dversion = int(provDarwin.group(1)) + macosversion = f"{reqMac.group(1)}.{reqMac.group(2)}" + if ( + dversion == 7 + and macosversion >= "10.3" + or dversion == 8 + and macosversion >= "10.4" + ): + return True + # egg isn't macOS or legacy darwin + return False + + # are they the same major version and machine type? + if provMac.group(1) != reqMac.group(1) or provMac.group(3) != reqMac.group(3): + return False + + # is the required OS major update >= the provided one? + if int(provMac.group(2)) > int(reqMac.group(2)): + return False + + return True + + # XXX Linux and other platforms' special cases should go here + return False + + +@overload +def get_distribution(dist: _DistributionT) -> _DistributionT: ... +@overload +def get_distribution(dist: _PkgReqType) -> Distribution: ... +def get_distribution(dist: Distribution | _PkgReqType) -> Distribution: + """Return a current distribution object for a Requirement or string""" + if isinstance(dist, str): + dist = Requirement.parse(dist) + if isinstance(dist, Requirement): + dist = get_provider(dist) + if not isinstance(dist, Distribution): + raise TypeError("Expected str, Requirement, or Distribution", dist) + return dist + + +def load_entry_point(dist: _EPDistType, group: str, name: str) -> _ResolvedEntryPoint: + """Return `name` entry point of `group` for `dist` or raise ImportError""" + return get_distribution(dist).load_entry_point(group, name) + + +@overload +def get_entry_map( + dist: _EPDistType, group: None = None +) -> dict[str, dict[str, EntryPoint]]: ... +@overload +def get_entry_map(dist: _EPDistType, group: str) -> dict[str, EntryPoint]: ... +def get_entry_map(dist: _EPDistType, group: str | None = None): + """Return the entry point map for `group`, or the full entry map""" + return get_distribution(dist).get_entry_map(group) + + +def get_entry_info(dist: _EPDistType, group: str, name: str) -> EntryPoint | None: + """Return the EntryPoint object for `group`+`name`, or ``None``""" + return get_distribution(dist).get_entry_info(group, name) + + +class IMetadataProvider(Protocol): + def has_metadata(self, name: str) -> bool: + """Does the package's distribution contain the named metadata?""" + ... + + def get_metadata(self, name: str) -> str: + """The named metadata resource as a string""" + ... + + def get_metadata_lines(self, name: str) -> Iterator[str]: + """Yield named metadata resource as list of non-blank non-comment lines + + Leading and trailing whitespace is stripped from each line, and lines + with ``#`` as the first non-blank character are omitted.""" + ... + + def metadata_isdir(self, name: str) -> bool: + """Is the named metadata a directory? (like ``os.path.isdir()``)""" + ... + + def metadata_listdir(self, name: str) -> list[str]: + """List of metadata names in the directory (like ``os.listdir()``)""" + ... + + def run_script(self, script_name: str, namespace: dict[str, Any]) -> None: + """Execute the named script in the supplied namespace dictionary""" + ... + + +class IResourceProvider(IMetadataProvider, Protocol): + """An object that provides access to package resources""" + + def get_resource_filename( + self, manager: ResourceManager, resource_name: str + ) -> str: + """Return a true filesystem path for `resource_name` + + `manager` must be a ``ResourceManager``""" + ... + + def get_resource_stream( + self, manager: ResourceManager, resource_name: str + ) -> _ResourceStream: + """Return a readable file-like object for `resource_name` + + `manager` must be a ``ResourceManager``""" + ... + + def get_resource_string( + self, manager: ResourceManager, resource_name: str + ) -> bytes: + """Return the contents of `resource_name` as :obj:`bytes` + + `manager` must be a ``ResourceManager``""" + ... + + def has_resource(self, resource_name: str) -> bool: + """Does the package contain the named resource?""" + ... + + def resource_isdir(self, resource_name: str) -> bool: + """Is the named resource a directory? (like ``os.path.isdir()``)""" + ... + + def resource_listdir(self, resource_name: str) -> list[str]: + """List of resource names in the directory (like ``os.listdir()``)""" + ... + + +class WorkingSet: + """A collection of active distributions on sys.path (or a similar list)""" + + def __init__(self, entries: Iterable[str] | None = None) -> None: + """Create working set from list of path entries (default=sys.path)""" + self.entries: list[str] = [] + self.entry_keys: dict[str | None, list[str]] = {} + self.by_key: dict[str, Distribution] = {} + self.normalized_to_canonical_keys: dict[str, str] = {} + self.callbacks: list[Callable[[Distribution], object]] = [] + + if entries is None: + entries = sys.path + + for entry in entries: + self.add_entry(entry) + + @classmethod + def _build_master(cls): + """ + Prepare the master working set. + """ + ws = cls() + try: + from __main__ import __requires__ + except ImportError: + # The main program does not list any requirements + return ws + + # ensure the requirements are met + try: + ws.require(__requires__) + except VersionConflict: + return cls._build_from_requirements(__requires__) + + return ws + + @classmethod + def _build_from_requirements(cls, req_spec): + """ + Build a working set from a requirement spec. Rewrites sys.path. + """ + # try it without defaults already on sys.path + # by starting with an empty path + ws = cls([]) + reqs = parse_requirements(req_spec) + dists = ws.resolve(reqs, Environment()) + for dist in dists: + ws.add(dist) + + # add any missing entries from sys.path + for entry in sys.path: + if entry not in ws.entries: + ws.add_entry(entry) + + # then copy back to sys.path + sys.path[:] = ws.entries + return ws + + def add_entry(self, entry: str) -> None: + """Add a path item to ``.entries``, finding any distributions on it + + ``find_distributions(entry, True)`` is used to find distributions + corresponding to the path entry, and they are added. `entry` is + always appended to ``.entries``, even if it is already present. + (This is because ``sys.path`` can contain the same value more than + once, and the ``.entries`` of the ``sys.path`` WorkingSet should always + equal ``sys.path``.) + """ + self.entry_keys.setdefault(entry, []) + self.entries.append(entry) + for dist in find_distributions(entry, True): + self.add(dist, entry, False) + + def __contains__(self, dist: Distribution) -> bool: + """True if `dist` is the active distribution for its project""" + return self.by_key.get(dist.key) == dist + + def find(self, req: Requirement) -> Distribution | None: + """Find a distribution matching requirement `req` + + If there is an active distribution for the requested project, this + returns it as long as it meets the version requirement specified by + `req`. But, if there is an active distribution for the project and it + does *not* meet the `req` requirement, ``VersionConflict`` is raised. + If there is no active distribution for the requested project, ``None`` + is returned. + """ + dist: Distribution | None = None + + candidates = ( + req.key, + self.normalized_to_canonical_keys.get(req.key), + safe_name(req.key).replace(".", "-"), + ) + + for candidate in filter(None, candidates): + dist = self.by_key.get(candidate) + if dist: + req.key = candidate + break + + if dist is not None and dist not in req: + # XXX add more info + raise VersionConflict(dist, req) + return dist + + def iter_entry_points( + self, group: str, name: str | None = None + ) -> Iterator[EntryPoint]: + """Yield entry point objects from `group` matching `name` + + If `name` is None, yields all entry points in `group` from all + distributions in the working set, otherwise only ones matching + both `group` and `name` are yielded (in distribution order). + """ + return ( + entry + for dist in self + for entry in dist.get_entry_map(group).values() + if name is None or name == entry.name + ) + + def run_script(self, requires: str, script_name: str) -> None: + """Locate distribution for `requires` and run `script_name` script""" + ns = sys._getframe(1).f_globals + name = ns['__name__'] + ns.clear() + ns['__name__'] = name + self.require(requires)[0].run_script(script_name, ns) + + def __iter__(self) -> Iterator[Distribution]: + """Yield distributions for non-duplicate projects in the working set + + The yield order is the order in which the items' path entries were + added to the working set. + """ + seen = set() + for item in self.entries: + if item not in self.entry_keys: + # workaround a cache issue + continue + + for key in self.entry_keys[item]: + if key not in seen: + seen.add(key) + yield self.by_key[key] + + def add( + self, + dist: Distribution, + entry: str | None = None, + insert: bool = True, + replace: bool = False, + ) -> None: + """Add `dist` to working set, associated with `entry` + + If `entry` is unspecified, it defaults to the ``.location`` of `dist`. + On exit from this routine, `entry` is added to the end of the working + set's ``.entries`` (if it wasn't already present). + + `dist` is only added to the working set if it's for a project that + doesn't already have a distribution in the set, unless `replace=True`. + If it's added, any callbacks registered with the ``subscribe()`` method + will be called. + """ + if insert: + dist.insert_on(self.entries, entry, replace=replace) + + if entry is None: + entry = dist.location + keys = self.entry_keys.setdefault(entry, []) + keys2 = self.entry_keys.setdefault(dist.location, []) + if not replace and dist.key in self.by_key: + # ignore hidden distros + return + + self.by_key[dist.key] = dist + normalized_name = packaging.utils.canonicalize_name(dist.key) + self.normalized_to_canonical_keys[normalized_name] = dist.key + if dist.key not in keys: + keys.append(dist.key) + if dist.key not in keys2: + keys2.append(dist.key) + self._added_new(dist) + + @overload + def resolve( + self, + requirements: Iterable[Requirement], + env: Environment | None, + installer: _StrictInstallerType[_DistributionT], + replace_conflicting: bool = False, + extras: tuple[str, ...] | None = None, + ) -> list[_DistributionT]: ... + @overload + def resolve( + self, + requirements: Iterable[Requirement], + env: Environment | None = None, + *, + installer: _StrictInstallerType[_DistributionT], + replace_conflicting: bool = False, + extras: tuple[str, ...] | None = None, + ) -> list[_DistributionT]: ... + @overload + def resolve( + self, + requirements: Iterable[Requirement], + env: Environment | None = None, + installer: _InstallerType | None = None, + replace_conflicting: bool = False, + extras: tuple[str, ...] | None = None, + ) -> list[Distribution]: ... + def resolve( + self, + requirements: Iterable[Requirement], + env: Environment | None = None, + installer: _InstallerType | None | _StrictInstallerType[_DistributionT] = None, + replace_conflicting: bool = False, + extras: tuple[str, ...] | None = None, + ) -> list[Distribution] | list[_DistributionT]: + """List all distributions needed to (recursively) meet `requirements` + + `requirements` must be a sequence of ``Requirement`` objects. `env`, + if supplied, should be an ``Environment`` instance. If + not supplied, it defaults to all distributions available within any + entry or distribution in the working set. `installer`, if supplied, + will be invoked with each requirement that cannot be met by an + already-installed distribution; it should return a ``Distribution`` or + ``None``. + + Unless `replace_conflicting=True`, raises a VersionConflict exception + if + any requirements are found on the path that have the correct name but + the wrong version. Otherwise, if an `installer` is supplied it will be + invoked to obtain the correct version of the requirement and activate + it. + + `extras` is a list of the extras to be used with these requirements. + This is important because extra requirements may look like `my_req; + extra = "my_extra"`, which would otherwise be interpreted as a purely + optional requirement. Instead, we want to be able to assert that these + requirements are truly required. + """ + + # set up the stack + requirements = list(requirements)[::-1] + # set of processed requirements + processed = set() + # key -> dist + best: dict[str, Distribution] = {} + to_activate: list[Distribution] = [] + + req_extras = _ReqExtras() + + # Mapping of requirement to set of distributions that required it; + # useful for reporting info about conflicts. + required_by = collections.defaultdict[Requirement, set[str]](set) + + while requirements: + # process dependencies breadth-first + req = requirements.pop(0) + if req in processed: + # Ignore cyclic or redundant dependencies + continue + + if not req_extras.markers_pass(req, extras): + continue + + dist = self._resolve_dist( + req, best, replace_conflicting, env, installer, required_by, to_activate + ) + + # push the new requirements onto the stack + new_requirements = dist.requires(req.extras)[::-1] + requirements.extend(new_requirements) + + # Register the new requirements needed by req + for new_requirement in new_requirements: + required_by[new_requirement].add(req.project_name) + req_extras[new_requirement] = req.extras + + processed.add(req) + + # return list of distros to activate + return to_activate + + def _resolve_dist( + self, req, best, replace_conflicting, env, installer, required_by, to_activate + ) -> Distribution: + dist = best.get(req.key) + if dist is None: + # Find the best distribution and add it to the map + dist = self.by_key.get(req.key) + if dist is None or (dist not in req and replace_conflicting): + ws = self + if env is None: + if dist is None: + env = Environment(self.entries) + else: + # Use an empty environment and workingset to avoid + # any further conflicts with the conflicting + # distribution + env = Environment([]) + ws = WorkingSet([]) + dist = best[req.key] = env.best_match( + req, ws, installer, replace_conflicting=replace_conflicting + ) + if dist is None: + requirers = required_by.get(req, None) + raise DistributionNotFound(req, requirers) + to_activate.append(dist) + if dist not in req: + # Oops, the "best" so far conflicts with a dependency + dependent_req = required_by[req] + raise VersionConflict(dist, req).with_context(dependent_req) + return dist + + @overload + def find_plugins( + self, + plugin_env: Environment, + full_env: Environment | None, + installer: _StrictInstallerType[_DistributionT], + fallback: bool = True, + ) -> tuple[list[_DistributionT], dict[Distribution, Exception]]: ... + @overload + def find_plugins( + self, + plugin_env: Environment, + full_env: Environment | None = None, + *, + installer: _StrictInstallerType[_DistributionT], + fallback: bool = True, + ) -> tuple[list[_DistributionT], dict[Distribution, Exception]]: ... + @overload + def find_plugins( + self, + plugin_env: Environment, + full_env: Environment | None = None, + installer: _InstallerType | None = None, + fallback: bool = True, + ) -> tuple[list[Distribution], dict[Distribution, Exception]]: ... + def find_plugins( + self, + plugin_env: Environment, + full_env: Environment | None = None, + installer: _InstallerType | None | _StrictInstallerType[_DistributionT] = None, + fallback: bool = True, + ) -> tuple[ + list[Distribution] | list[_DistributionT], + dict[Distribution, Exception], + ]: + """Find all activatable distributions in `plugin_env` + + Example usage:: + + distributions, errors = working_set.find_plugins( + Environment(plugin_dirlist) + ) + # add plugins+libs to sys.path + map(working_set.add, distributions) + # display errors + print('Could not load', errors) + + The `plugin_env` should be an ``Environment`` instance that contains + only distributions that are in the project's "plugin directory" or + directories. The `full_env`, if supplied, should be an ``Environment`` + contains all currently-available distributions. If `full_env` is not + supplied, one is created automatically from the ``WorkingSet`` this + method is called on, which will typically mean that every directory on + ``sys.path`` will be scanned for distributions. + + `installer` is a standard installer callback as used by the + ``resolve()`` method. The `fallback` flag indicates whether we should + attempt to resolve older versions of a plugin if the newest version + cannot be resolved. + + This method returns a 2-tuple: (`distributions`, `error_info`), where + `distributions` is a list of the distributions found in `plugin_env` + that were loadable, along with any other distributions that are needed + to resolve their dependencies. `error_info` is a dictionary mapping + unloadable plugin distributions to an exception instance describing the + error that occurred. Usually this will be a ``DistributionNotFound`` or + ``VersionConflict`` instance. + """ + + plugin_projects = list(plugin_env) + # scan project names in alphabetic order + plugin_projects.sort() + + error_info: dict[Distribution, Exception] = {} + distributions: dict[Distribution, Exception | None] = {} + + if full_env is None: + env = Environment(self.entries) + env += plugin_env + else: + env = full_env + plugin_env + + shadow_set = self.__class__([]) + # put all our entries in shadow_set + list(map(shadow_set.add, self)) + + for project_name in plugin_projects: + for dist in plugin_env[project_name]: + req = [dist.as_requirement()] + + try: + resolvees = shadow_set.resolve(req, env, installer) + + except ResolutionError as v: + # save error info + error_info[dist] = v + if fallback: + # try the next older version of project + continue + else: + # give up on this project, keep going + break + + else: + list(map(shadow_set.add, resolvees)) + distributions.update(dict.fromkeys(resolvees)) + + # success, no need to try any more versions of this project + break + + sorted_distributions = list(distributions) + sorted_distributions.sort() + + return sorted_distributions, error_info + + def require(self, *requirements: _NestedStr) -> list[Distribution]: + """Ensure that distributions matching `requirements` are activated + + `requirements` must be a string or a (possibly-nested) sequence + thereof, specifying the distributions and versions required. The + return value is a sequence of the distributions that needed to be + activated to fulfill the requirements; all relevant distributions are + included, even if they were already activated in this working set. + """ + needed = self.resolve(parse_requirements(requirements)) + + for dist in needed: + self.add(dist) + + return needed + + def subscribe( + self, callback: Callable[[Distribution], object], existing: bool = True + ) -> None: + """Invoke `callback` for all distributions + + If `existing=True` (default), + call on all existing ones, as well. + """ + if callback in self.callbacks: + return + self.callbacks.append(callback) + if not existing: + return + for dist in self: + callback(dist) + + def _added_new(self, dist) -> None: + for callback in self.callbacks: + callback(dist) + + def __getstate__( + self, + ) -> tuple[ + list[str], + dict[str | None, list[str]], + dict[str, Distribution], + dict[str, str], + list[Callable[[Distribution], object]], + ]: + return ( + self.entries[:], + self.entry_keys.copy(), + self.by_key.copy(), + self.normalized_to_canonical_keys.copy(), + self.callbacks[:], + ) + + def __setstate__(self, e_k_b_n_c) -> None: + entries, keys, by_key, normalized_to_canonical_keys, callbacks = e_k_b_n_c + self.entries = entries[:] + self.entry_keys = keys.copy() + self.by_key = by_key.copy() + self.normalized_to_canonical_keys = normalized_to_canonical_keys.copy() + self.callbacks = callbacks[:] + + +class _ReqExtras(dict["Requirement", tuple[str, ...]]): + """ + Map each requirement to the extras that demanded it. + """ + + def markers_pass(self, req: Requirement, extras: tuple[str, ...] | None = None): + """ + Evaluate markers for req against each extra that + demanded it. + + Return False if the req has a marker and fails + evaluation. Otherwise, return True. + """ + return not req.marker or any( + req.marker.evaluate({'extra': extra}) + for extra in self.get(req, ()) + (extras or ("",)) + ) + + +class Environment: + """Searchable snapshot of distributions on a search path""" + + def __init__( + self, + search_path: Iterable[str] | None = None, + platform: str | None = get_supported_platform(), + python: str | None = PY_MAJOR, + ) -> None: + """Snapshot distributions available on a search path + + Any distributions found on `search_path` are added to the environment. + `search_path` should be a sequence of ``sys.path`` items. If not + supplied, ``sys.path`` is used. + + `platform` is an optional string specifying the name of the platform + that platform-specific distributions must be compatible with. If + unspecified, it defaults to the current platform. `python` is an + optional string naming the desired version of Python (e.g. ``'3.6'``); + it defaults to the current version. + + You may explicitly set `platform` (and/or `python`) to ``None`` if you + wish to map *all* distributions, not just those compatible with the + running platform or Python version. + """ + self._distmap: dict[str, list[Distribution]] = {} + self.platform = platform + self.python = python + self.scan(search_path) + + def can_add(self, dist: Distribution) -> bool: + """Is distribution `dist` acceptable for this environment? + + The distribution must match the platform and python version + requirements specified when this environment was created, or False + is returned. + """ + py_compat = ( + self.python is None + or dist.py_version is None + or dist.py_version == self.python + ) + return py_compat and compatible_platforms(dist.platform, self.platform) + + def remove(self, dist: Distribution) -> None: + """Remove `dist` from the environment""" + self._distmap[dist.key].remove(dist) + + def scan(self, search_path: Iterable[str] | None = None) -> None: + """Scan `search_path` for distributions usable in this environment + + Any distributions found are added to the environment. + `search_path` should be a sequence of ``sys.path`` items. If not + supplied, ``sys.path`` is used. Only distributions conforming to + the platform/python version defined at initialization are added. + """ + if search_path is None: + search_path = sys.path + + for item in search_path: + for dist in find_distributions(item): + self.add(dist) + + def __getitem__(self, project_name: str) -> list[Distribution]: + """Return a newest-to-oldest list of distributions for `project_name` + + Uses case-insensitive `project_name` comparison, assuming all the + project's distributions use their project's name converted to all + lowercase as their key. + + """ + distribution_key = project_name.lower() + return self._distmap.get(distribution_key, []) + + def add(self, dist: Distribution) -> None: + """Add `dist` if we ``can_add()`` it and it has not already been added""" + if self.can_add(dist) and dist.has_version(): + dists = self._distmap.setdefault(dist.key, []) + if dist not in dists: + dists.append(dist) + dists.sort(key=operator.attrgetter('hashcmp'), reverse=True) + + @overload + def best_match( + self, + req: Requirement, + working_set: WorkingSet, + installer: _StrictInstallerType[_DistributionT], + replace_conflicting: bool = False, + ) -> _DistributionT: ... + @overload + def best_match( + self, + req: Requirement, + working_set: WorkingSet, + installer: _InstallerType | None = None, + replace_conflicting: bool = False, + ) -> Distribution | None: ... + def best_match( + self, + req: Requirement, + working_set: WorkingSet, + installer: _InstallerType | None | _StrictInstallerType[_DistributionT] = None, + replace_conflicting: bool = False, + ) -> Distribution | None: + """Find distribution best matching `req` and usable on `working_set` + + This calls the ``find(req)`` method of the `working_set` to see if a + suitable distribution is already active. (This may raise + ``VersionConflict`` if an unsuitable version of the project is already + active in the specified `working_set`.) If a suitable distribution + isn't active, this method returns the newest distribution in the + environment that meets the ``Requirement`` in `req`. If no suitable + distribution is found, and `installer` is supplied, then the result of + calling the environment's ``obtain(req, installer)`` method will be + returned. + """ + try: + dist = working_set.find(req) + except VersionConflict: + if not replace_conflicting: + raise + dist = None + if dist is not None: + return dist + for dist in self[req.key]: + if dist in req: + return dist + # try to download/install + return self.obtain(req, installer) + + @overload + def obtain( + self, + requirement: Requirement, + installer: _StrictInstallerType[_DistributionT], + ) -> _DistributionT: ... + @overload + def obtain( + self, + requirement: Requirement, + installer: Callable[[Requirement], None] | None = None, + ) -> None: ... + @overload + def obtain( + self, + requirement: Requirement, + installer: _InstallerType | None = None, + ) -> Distribution | None: ... + def obtain( + self, + requirement: Requirement, + installer: Callable[[Requirement], None] + | _InstallerType + | None + | _StrictInstallerType[_DistributionT] = None, + ) -> Distribution | None: + """Obtain a distribution matching `requirement` (e.g. via download) + + Obtain a distro that matches requirement (e.g. via download). In the + base ``Environment`` class, this routine just returns + ``installer(requirement)``, unless `installer` is None, in which case + None is returned instead. This method is a hook that allows subclasses + to attempt other ways of obtaining a distribution before falling back + to the `installer` argument.""" + return installer(requirement) if installer else None + + def __iter__(self) -> Iterator[str]: + """Yield the unique project names of the available distributions""" + for key in self._distmap.keys(): + if self[key]: + yield key + + def __iadd__(self, other: Distribution | Environment) -> Self: + """In-place addition of a distribution or environment""" + if isinstance(other, Distribution): + self.add(other) + elif isinstance(other, Environment): + for project in other: + for dist in other[project]: + self.add(dist) + else: + raise TypeError(f"Can't add {other!r} to environment") + return self + + def __add__(self, other: Distribution | Environment) -> Self: + """Add an environment or distribution to an environment""" + new = self.__class__([], platform=None, python=None) + for env in self, other: + new += env + return new + + +# XXX backward compatibility +AvailableDistributions = Environment + + +class ExtractionError(RuntimeError): + """An error occurred extracting a resource + + The following attributes are available from instances of this exception: + + manager + The resource manager that raised this exception + + cache_path + The base directory for resource extraction + + original_error + The exception instance that caused extraction to fail + """ + + manager: ResourceManager + cache_path: str + original_error: BaseException | None + + +class ResourceManager: + """Manage resource extraction and packages""" + + extraction_path: str | None = None + + def __init__(self) -> None: + # acts like a set + self.cached_files: dict[str, Literal[True]] = {} + + def resource_exists( + self, package_or_requirement: _PkgReqType, resource_name: str + ) -> bool: + """Does the named resource exist?""" + return get_provider(package_or_requirement).has_resource(resource_name) + + def resource_isdir( + self, package_or_requirement: _PkgReqType, resource_name: str + ) -> bool: + """Is the named resource an existing directory?""" + return get_provider(package_or_requirement).resource_isdir(resource_name) + + def resource_filename( + self, package_or_requirement: _PkgReqType, resource_name: str + ) -> str: + """Return a true filesystem path for specified resource""" + return get_provider(package_or_requirement).get_resource_filename( + self, resource_name + ) + + def resource_stream( + self, package_or_requirement: _PkgReqType, resource_name: str + ) -> _ResourceStream: + """Return a readable file-like object for specified resource""" + return get_provider(package_or_requirement).get_resource_stream( + self, resource_name + ) + + def resource_string( + self, package_or_requirement: _PkgReqType, resource_name: str + ) -> bytes: + """Return specified resource as :obj:`bytes`""" + return get_provider(package_or_requirement).get_resource_string( + self, resource_name + ) + + def resource_listdir( + self, package_or_requirement: _PkgReqType, resource_name: str + ) -> list[str]: + """List the contents of the named resource directory""" + return get_provider(package_or_requirement).resource_listdir(resource_name) + + def extraction_error(self) -> NoReturn: + """Give an error message for problems extracting file(s)""" + + old_exc = sys.exc_info()[1] + cache_path = self.extraction_path or get_default_cache() + + tmpl = textwrap.dedent( + """ + Can't extract file(s) to egg cache + + The following error occurred while trying to extract file(s) + to the Python egg cache: + + {old_exc} + + The Python egg cache directory is currently set to: + + {cache_path} + + Perhaps your account does not have write access to this directory? + You can change the cache directory by setting the PYTHON_EGG_CACHE + environment variable to point to an accessible directory. + """ + ).lstrip() + err = ExtractionError(tmpl.format(**locals())) + err.manager = self + err.cache_path = cache_path + err.original_error = old_exc + raise err + + def get_cache_path(self, archive_name: str, names: Iterable[StrPath] = ()) -> str: + """Return absolute location in cache for `archive_name` and `names` + + The parent directory of the resulting path will be created if it does + not already exist. `archive_name` should be the base filename of the + enclosing egg (which may not be the name of the enclosing zipfile!), + including its ".egg" extension. `names`, if provided, should be a + sequence of path name parts "under" the egg's extraction location. + + This method should only be called by resource providers that need to + obtain an extraction location, and only for names they intend to + extract, as it tracks the generated names for possible cleanup later. + """ + extract_path = self.extraction_path or get_default_cache() + target_path = os.path.join(extract_path, archive_name + '-tmp', *names) + try: + _bypass_ensure_directory(target_path) + except Exception: + self.extraction_error() + + self._warn_unsafe_extraction_path(extract_path) + + self.cached_files[target_path] = True + return target_path + + @staticmethod + def _warn_unsafe_extraction_path(path) -> None: + """ + If the default extraction path is overridden and set to an insecure + location, such as /tmp, it opens up an opportunity for an attacker to + replace an extracted file with an unauthorized payload. Warn the user + if a known insecure location is used. + + See Distribute #375 for more details. + """ + if os.name == 'nt' and not path.startswith(os.environ['windir']): + # On Windows, permissions are generally restrictive by default + # and temp directories are not writable by other users, so + # bypass the warning. + return + mode = os.stat(path).st_mode + if mode & stat.S_IWOTH or mode & stat.S_IWGRP: + msg = ( + "Extraction path is writable by group/others " + "and vulnerable to attack when " + "used with get_resource_filename ({path}). " + "Consider a more secure " + "location (set with .set_extraction_path or the " + "PYTHON_EGG_CACHE environment variable)." + ).format(**locals()) + warnings.warn(msg, UserWarning) + + def postprocess(self, tempname: StrOrBytesPath, filename: StrOrBytesPath) -> None: + """Perform any platform-specific postprocessing of `tempname` + + This is where Mac header rewrites should be done; other platforms don't + have anything special they should do. + + Resource providers should call this method ONLY after successfully + extracting a compressed resource. They must NOT call it on resources + that are already in the filesystem. + + `tempname` is the current (temporary) name of the file, and `filename` + is the name it will be renamed to by the caller after this routine + returns. + """ + + if os.name == 'posix': + # Make the resource executable + mode = ((os.stat(tempname).st_mode) | 0o555) & 0o7777 + os.chmod(tempname, mode) + + def set_extraction_path(self, path: str) -> None: + """Set the base path where resources will be extracted to, if needed. + + If you do not call this routine before any extractions take place, the + path defaults to the return value of ``get_default_cache()``. (Which + is based on the ``PYTHON_EGG_CACHE`` environment variable, with various + platform-specific fallbacks. See that routine's documentation for more + details.) + + Resources are extracted to subdirectories of this path based upon + information given by the ``IResourceProvider``. You may set this to a + temporary directory, but then you must call ``cleanup_resources()`` to + delete the extracted files when done. There is no guarantee that + ``cleanup_resources()`` will be able to remove all extracted files. + + (Note: you may not change the extraction path for a given resource + manager once resources have been extracted, unless you first call + ``cleanup_resources()``.) + """ + if self.cached_files: + raise ValueError("Can't change extraction path, files already extracted") + + self.extraction_path = path + + def cleanup_resources(self, force: bool = False) -> list[str]: + """ + Delete all extracted resource files and directories, returning a list + of the file and directory names that could not be successfully removed. + This function does not have any concurrency protection, so it should + generally only be called when the extraction path is a temporary + directory exclusive to a single process. This method is not + automatically called; you must call it explicitly or register it as an + ``atexit`` function if you wish to ensure cleanup of a temporary + directory used for extractions. + """ + # XXX + return [] + + +def get_default_cache() -> str: + """ + Return the ``PYTHON_EGG_CACHE`` environment variable + or a platform-relevant user cache dir for an app + named "Python-Eggs". + """ + return os.environ.get('PYTHON_EGG_CACHE') or _user_cache_dir(appname='Python-Eggs') + + +def safe_name(name: str) -> str: + """Convert an arbitrary string to a standard distribution name + + Any runs of non-alphanumeric/. characters are replaced with a single '-'. + """ + return re.sub('[^A-Za-z0-9.]+', '-', name) + + +def safe_version(version: str) -> str: + """ + Convert an arbitrary string to a standard version string + """ + try: + # normalize the version + return str(packaging.version.Version(version)) + except packaging.version.InvalidVersion: + version = version.replace(' ', '.') + return re.sub('[^A-Za-z0-9.]+', '-', version) + + +def _forgiving_version(version) -> str: + """Fallback when ``safe_version`` is not safe enough + >>> parse_version(_forgiving_version('0.23ubuntu1')) + + >>> parse_version(_forgiving_version('0.23-')) + + >>> parse_version(_forgiving_version('0.-_')) + + >>> parse_version(_forgiving_version('42.+?1')) + + >>> parse_version(_forgiving_version('hello world')) + + """ + version = version.replace(' ', '.') + match = _PEP440_FALLBACK.search(version) + if match: + safe = match["safe"] + rest = version[len(safe) :] + else: + safe = "0" + rest = version + local = f"sanitized.{_safe_segment(rest)}".strip(".") + return f"{safe}.dev0+{local}" + + +def _safe_segment(segment): + """Convert an arbitrary string into a safe segment""" + segment = re.sub('[^A-Za-z0-9.]+', '-', segment) + segment = re.sub('-[^A-Za-z0-9]+', '-', segment) + return re.sub(r'\.[^A-Za-z0-9]+', '.', segment).strip(".-") + + +def safe_extra(extra: str) -> str: + """Convert an arbitrary string to a standard 'extra' name + + Any runs of non-alphanumeric characters are replaced with a single '_', + and the result is always lowercased. + """ + return re.sub('[^A-Za-z0-9.-]+', '_', extra).lower() + + +def to_filename(name: str) -> str: + """Convert a project or version name to its filename-escaped form + + Any '-' characters are currently replaced with '_'. + """ + return name.replace('-', '_') + + +def invalid_marker(text: str) -> SyntaxError | Literal[False]: + """ + Validate text as a PEP 508 environment marker; return an exception + if invalid or False otherwise. + """ + try: + evaluate_marker(text) + except SyntaxError as e: + e.filename = None + e.lineno = None + return e + return False + + +def evaluate_marker(text: str, extra: str | None = None) -> bool: + """ + Evaluate a PEP 508 environment marker. + Return a boolean indicating the marker result in this environment. + Raise SyntaxError if marker is invalid. + + This implementation uses the 'pyparsing' module. + """ + try: + marker = packaging.markers.Marker(text) + return marker.evaluate() + except packaging.markers.InvalidMarker as e: + raise SyntaxError(e) from e + + +class NullProvider: + """Try to implement resources and metadata for arbitrary PEP 302 loaders""" + + egg_name: str | None = None + egg_info: str | None = None + loader: LoaderProtocol | None = None + + def __init__(self, module: _ModuleLike) -> None: + self.loader = getattr(module, '__loader__', None) + self.module_path = os.path.dirname(getattr(module, '__file__', '')) + + def get_resource_filename( + self, manager: ResourceManager, resource_name: str + ) -> str: + return self._fn(self.module_path, resource_name) + + def get_resource_stream( + self, manager: ResourceManager, resource_name: str + ) -> BinaryIO: + return io.BytesIO(self.get_resource_string(manager, resource_name)) + + def get_resource_string( + self, manager: ResourceManager, resource_name: str + ) -> bytes: + return self._get(self._fn(self.module_path, resource_name)) + + def has_resource(self, resource_name: str) -> bool: + return self._has(self._fn(self.module_path, resource_name)) + + def _get_metadata_path(self, name): + return self._fn(self.egg_info, name) + + def has_metadata(self, name: str) -> bool: + if not self.egg_info: + return False + + path = self._get_metadata_path(name) + return self._has(path) + + def get_metadata(self, name: str) -> str: + if not self.egg_info: + return "" + path = self._get_metadata_path(name) + value = self._get(path) + try: + return value.decode('utf-8') + except UnicodeDecodeError as exc: + # Include the path in the error message to simplify + # troubleshooting, and without changing the exception type. + exc.reason += f' in {name} file at path: {path}' + raise + + def get_metadata_lines(self, name: str) -> Iterator[str]: + return yield_lines(self.get_metadata(name)) + + def resource_isdir(self, resource_name: str) -> bool: + return self._isdir(self._fn(self.module_path, resource_name)) + + def metadata_isdir(self, name: str) -> bool: + return bool(self.egg_info and self._isdir(self._fn(self.egg_info, name))) + + def resource_listdir(self, resource_name: str) -> list[str]: + return self._listdir(self._fn(self.module_path, resource_name)) + + def metadata_listdir(self, name: str) -> list[str]: + if self.egg_info: + return self._listdir(self._fn(self.egg_info, name)) + return [] + + def run_script(self, script_name: str, namespace: dict[str, Any]) -> None: + script = 'scripts/' + script_name + if not self.has_metadata(script): + raise ResolutionError( + "Script {script!r} not found in metadata at {self.egg_info!r}".format( + **locals() + ), + ) + + script_text = self.get_metadata(script).replace('\r\n', '\n') + script_text = script_text.replace('\r', '\n') + script_filename = self._fn(self.egg_info, script) + namespace['__file__'] = script_filename + if os.path.exists(script_filename): + source = _read_utf8_with_fallback(script_filename) + code = compile(source, script_filename, 'exec') + exec(code, namespace, namespace) + else: + from linecache import cache + + cache[script_filename] = ( + len(script_text), + 0, + script_text.split('\n'), + script_filename, + ) + script_code = compile(script_text, script_filename, 'exec') + exec(script_code, namespace, namespace) + + def _has(self, path) -> bool: + raise NotImplementedError( + "Can't perform this operation for unregistered loader type" + ) + + def _isdir(self, path) -> bool: + raise NotImplementedError( + "Can't perform this operation for unregistered loader type" + ) + + def _listdir(self, path) -> list[str]: + raise NotImplementedError( + "Can't perform this operation for unregistered loader type" + ) + + def _fn(self, base: str | None, resource_name: str): + if base is None: + raise TypeError( + "`base` parameter in `_fn` is `None`. Either override this method or check the parameter first." + ) + self._validate_resource_path(resource_name) + if resource_name: + return os.path.join(base, *resource_name.split('/')) + return base + + @staticmethod + def _validate_resource_path(path) -> None: + """ + Validate the resource paths according to the docs. + https://setuptools.pypa.io/en/latest/pkg_resources.html#basic-resource-access + + >>> warned = getfixture('recwarn') + >>> warnings.simplefilter('always') + >>> vrp = NullProvider._validate_resource_path + >>> vrp('foo/bar.txt') + >>> bool(warned) + False + >>> vrp('../foo/bar.txt') + >>> bool(warned) + True + >>> warned.clear() + >>> vrp('/foo/bar.txt') + >>> bool(warned) + True + >>> vrp('foo/../../bar.txt') + >>> bool(warned) + True + >>> warned.clear() + >>> vrp('foo/f../bar.txt') + >>> bool(warned) + False + + Windows path separators are straight-up disallowed. + >>> vrp(r'\\foo/bar.txt') + Traceback (most recent call last): + ... + ValueError: Use of .. or absolute path in a resource path \ +is not allowed. + + >>> vrp(r'C:\\foo/bar.txt') + Traceback (most recent call last): + ... + ValueError: Use of .. or absolute path in a resource path \ +is not allowed. + + Blank values are allowed + + >>> vrp('') + >>> bool(warned) + False + + Non-string values are not. + + >>> vrp(None) + Traceback (most recent call last): + ... + AttributeError: ... + """ + invalid = ( + os.path.pardir in path.split(posixpath.sep) + or posixpath.isabs(path) + or ntpath.isabs(path) + or path.startswith("\\") + ) + if not invalid: + return + + msg = "Use of .. or absolute path in a resource path is not allowed." + + # Aggressively disallow Windows absolute paths + if (path.startswith("\\") or ntpath.isabs(path)) and not posixpath.isabs(path): + raise ValueError(msg) + + # for compatibility, warn; in future + # raise ValueError(msg) + issue_warning( + msg[:-1] + " and will raise exceptions in a future release.", + DeprecationWarning, + ) + + def _get(self, path) -> bytes: + if hasattr(self.loader, 'get_data') and self.loader: + # Already checked get_data exists + return self.loader.get_data(path) # type: ignore[attr-defined] + raise NotImplementedError( + "Can't perform this operation for loaders without 'get_data()'" + ) + + +register_loader_type(object, NullProvider) + + +def _parents(path): + """ + yield all parents of path including path + """ + last = None + while path != last: + yield path + last = path + path, _ = os.path.split(path) + + +class EggProvider(NullProvider): + """Provider based on a virtual filesystem""" + + def __init__(self, module: _ModuleLike) -> None: + super().__init__(module) + self._setup_prefix() + + def _setup_prefix(self): + # Assume that metadata may be nested inside a "basket" + # of multiple eggs and use module_path instead of .archive. + eggs = filter(_is_egg_path, _parents(self.module_path)) + egg = next(eggs, None) + egg and self._set_egg(egg) + + def _set_egg(self, path: str) -> None: + self.egg_name = os.path.basename(path) + self.egg_info = os.path.join(path, 'EGG-INFO') + self.egg_root = path + + +class DefaultProvider(EggProvider): + """Provides access to package resources in the filesystem""" + + def _has(self, path) -> bool: + return os.path.exists(path) + + def _isdir(self, path) -> bool: + return os.path.isdir(path) + + def _listdir(self, path): + return os.listdir(path) + + def get_resource_stream( + self, manager: object, resource_name: str + ) -> io.BufferedReader: + return open(self._fn(self.module_path, resource_name), 'rb') + + def _get(self, path) -> bytes: + with open(path, 'rb') as stream: + return stream.read() + + @classmethod + def _register(cls) -> None: + loader_names = ( + 'SourceFileLoader', + 'SourcelessFileLoader', + ) + for name in loader_names: + loader_cls = getattr(importlib.machinery, name, type(None)) + register_loader_type(loader_cls, cls) + + +DefaultProvider._register() + + +class EmptyProvider(NullProvider): + """Provider that returns nothing for all requests""" + + # A special case, we don't want all Providers inheriting from NullProvider to have a potentially None module_path + module_path: str | None = None # type: ignore[assignment] + + _isdir = _has = lambda self, path: False + + def _get(self, path) -> bytes: + return b'' + + def _listdir(self, path): + return [] + + def __init__(self) -> None: + pass + + +empty_provider = EmptyProvider() + + +class ZipManifests(dict[str, "MemoizedZipManifests.manifest_mod"]): + """ + zip manifest builder + """ + + # `path` could be `StrPath | IO[bytes]` but that violates the LSP for `MemoizedZipManifests.load` + @classmethod + def build(cls, path: str) -> dict[str, zipfile.ZipInfo]: + """ + Build a dictionary similar to the zipimport directory + caches, except instead of tuples, store ZipInfo objects. + + Use a platform-specific path separator (os.sep) for the path keys + for compatibility with pypy on Windows. + """ + with zipfile.ZipFile(path) as zfile: + items = ( + ( + name.replace('/', os.sep), + zfile.getinfo(name), + ) + for name in zfile.namelist() + ) + return dict(items) + + load = build + + +class MemoizedZipManifests(ZipManifests): + """ + Memoized zipfile manifests. + """ + + class manifest_mod(NamedTuple): + manifest: dict[str, zipfile.ZipInfo] + mtime: float + + def load(self, path: str) -> dict[str, zipfile.ZipInfo]: # type: ignore[override] # ZipManifests.load is a classmethod + """ + Load a manifest at path or return a suitable manifest already loaded. + """ + path = os.path.normpath(path) + mtime = os.stat(path).st_mtime + + if path not in self or self[path].mtime != mtime: + manifest = self.build(path) + self[path] = self.manifest_mod(manifest, mtime) + + return self[path].manifest + + +class ZipProvider(EggProvider): + """Resource support for zips and eggs""" + + eagers: list[str] | None = None + _zip_manifests = MemoizedZipManifests() + # ZipProvider's loader should always be a zipimporter or equivalent + loader: zipimport.zipimporter + + def __init__(self, module: _ZipLoaderModule) -> None: + super().__init__(module) + self.zip_pre = self.loader.archive + os.sep + + def _zipinfo_name(self, fspath): + # Convert a virtual filename (full path to file) into a zipfile subpath + # usable with the zipimport directory cache for our target archive + fspath = fspath.rstrip(os.sep) + if fspath == self.loader.archive: + return '' + if fspath.startswith(self.zip_pre): + return fspath[len(self.zip_pre) :] + raise AssertionError(f"{fspath} is not a subpath of {self.zip_pre}") + + def _parts(self, zip_path): + # Convert a zipfile subpath into an egg-relative path part list. + # pseudo-fs path + fspath = self.zip_pre + zip_path + if fspath.startswith(self.egg_root + os.sep): + return fspath[len(self.egg_root) + 1 :].split(os.sep) + raise AssertionError(f"{fspath} is not a subpath of {self.egg_root}") + + @property + def zipinfo(self): + return self._zip_manifests.load(self.loader.archive) + + def get_resource_filename( + self, manager: ResourceManager, resource_name: str + ) -> str: + if not self.egg_name: + raise NotImplementedError( + "resource_filename() only supported for .egg, not .zip" + ) + # no need to lock for extraction, since we use temp names + zip_path = self._resource_to_zip(resource_name) + eagers = self._get_eager_resources() + if '/'.join(self._parts(zip_path)) in eagers: + for name in eagers: + self._extract_resource(manager, self._eager_to_zip(name)) + return self._extract_resource(manager, zip_path) + + @staticmethod + def _get_date_and_size(zip_stat): + size = zip_stat.file_size + # ymdhms+wday, yday, dst + date_time = zip_stat.date_time + (0, 0, -1) + # 1980 offset already done + timestamp = time.mktime(date_time) + return timestamp, size + + # FIXME: 'ZipProvider._extract_resource' is too complex (12) + def _extract_resource(self, manager: ResourceManager, zip_path) -> str: # noqa: C901 + if zip_path in self._index(): + for name in self._index()[zip_path]: + last = self._extract_resource(manager, os.path.join(zip_path, name)) + # return the extracted directory name + return os.path.dirname(last) + + timestamp, _size = self._get_date_and_size(self.zipinfo[zip_path]) + + if not WRITE_SUPPORT: + raise OSError( + '"os.rename" and "os.unlink" are not supported on this platform' + ) + try: + if not self.egg_name: + raise OSError( + '"egg_name" is empty. This likely means no egg could be found from the "module_path".' + ) + real_path = manager.get_cache_path(self.egg_name, self._parts(zip_path)) + + if self._is_current(real_path, zip_path): + return real_path + + outf, tmpnam = _mkstemp( + ".$extract", + dir=os.path.dirname(real_path), + ) + os.write(outf, self.loader.get_data(zip_path)) + os.close(outf) + utime(tmpnam, (timestamp, timestamp)) + manager.postprocess(tmpnam, real_path) + + try: + rename(tmpnam, real_path) + + except OSError: + if os.path.isfile(real_path): + if self._is_current(real_path, zip_path): + # the file became current since it was checked above, + # so proceed. + return real_path + # Windows, del old file and retry + elif os.name == 'nt': + unlink(real_path) + rename(tmpnam, real_path) + return real_path + raise + + except OSError: + # report a user-friendly error + manager.extraction_error() + + return real_path + + def _is_current(self, file_path, zip_path): + """ + Return True if the file_path is current for this zip_path + """ + timestamp, size = self._get_date_and_size(self.zipinfo[zip_path]) + if not os.path.isfile(file_path): + return False + stat = os.stat(file_path) + if stat.st_size != size or stat.st_mtime != timestamp: + return False + # check that the contents match + zip_contents = self.loader.get_data(zip_path) + with open(file_path, 'rb') as f: + file_contents = f.read() + return zip_contents == file_contents + + def _get_eager_resources(self): + if self.eagers is None: + eagers = [] + for name in ('native_libs.txt', 'eager_resources.txt'): + if self.has_metadata(name): + eagers.extend(self.get_metadata_lines(name)) + self.eagers = eagers + return self.eagers + + def _index(self): + try: + return self._dirindex + except AttributeError: + ind = {} + for path in self.zipinfo: + parts = path.split(os.sep) + while parts: + parent = os.sep.join(parts[:-1]) + if parent in ind: + ind[parent].append(parts[-1]) + break + else: + ind[parent] = [parts.pop()] + self._dirindex = ind + return ind + + def _has(self, fspath) -> bool: + zip_path = self._zipinfo_name(fspath) + return zip_path in self.zipinfo or zip_path in self._index() + + def _isdir(self, fspath) -> bool: + return self._zipinfo_name(fspath) in self._index() + + def _listdir(self, fspath): + return list(self._index().get(self._zipinfo_name(fspath), ())) + + def _eager_to_zip(self, resource_name: str): + return self._zipinfo_name(self._fn(self.egg_root, resource_name)) + + def _resource_to_zip(self, resource_name: str): + return self._zipinfo_name(self._fn(self.module_path, resource_name)) + + +register_loader_type(zipimport.zipimporter, ZipProvider) + + +class FileMetadata(EmptyProvider): + """Metadata handler for standalone PKG-INFO files + + Usage:: + + metadata = FileMetadata("/path/to/PKG-INFO") + + This provider rejects all data and metadata requests except for PKG-INFO, + which is treated as existing, and will be the contents of the file at + the provided location. + """ + + def __init__(self, path: StrPath) -> None: + self.path = path + + def _get_metadata_path(self, name): + return self.path + + def has_metadata(self, name: str) -> bool: + return name == 'PKG-INFO' and os.path.isfile(self.path) + + def get_metadata(self, name: str) -> str: + if name != 'PKG-INFO': + raise KeyError("No metadata except PKG-INFO is available") + + with open(self.path, encoding='utf-8', errors="replace") as f: + metadata = f.read() + self._warn_on_replacement(metadata) + return metadata + + def _warn_on_replacement(self, metadata) -> None: + replacement_char = '�' + if replacement_char in metadata: + tmpl = "{self.path} could not be properly decoded in UTF-8" + msg = tmpl.format(**locals()) + warnings.warn(msg) + + def get_metadata_lines(self, name: str) -> Iterator[str]: + return yield_lines(self.get_metadata(name)) + + +class PathMetadata(DefaultProvider): + """Metadata provider for egg directories + + Usage:: + + # Development eggs: + + egg_info = "/path/to/PackageName.egg-info" + base_dir = os.path.dirname(egg_info) + metadata = PathMetadata(base_dir, egg_info) + dist_name = os.path.splitext(os.path.basename(egg_info))[0] + dist = Distribution(basedir, project_name=dist_name, metadata=metadata) + + # Unpacked egg directories: + + egg_path = "/path/to/PackageName-ver-pyver-etc.egg" + metadata = PathMetadata(egg_path, os.path.join(egg_path,'EGG-INFO')) + dist = Distribution.from_filename(egg_path, metadata=metadata) + """ + + def __init__(self, path: str, egg_info: str) -> None: + self.module_path = path + self.egg_info = egg_info + + +class EggMetadata(ZipProvider): + """Metadata provider for .egg files""" + + def __init__(self, importer: zipimport.zipimporter) -> None: + """Create a metadata provider from a zipimporter""" + + self.zip_pre = importer.archive + os.sep + self.loader = importer + if importer.prefix: + self.module_path = os.path.join(importer.archive, importer.prefix) + else: + self.module_path = importer.archive + self._setup_prefix() + + +_distribution_finders: dict[type, _DistFinderType[Any]] = _declare_state( + 'dict', '_distribution_finders', {} +) + + +def register_finder( + importer_type: type[_T], distribution_finder: _DistFinderType[_T] +) -> None: + """Register `distribution_finder` to find distributions in sys.path items + + `importer_type` is the type or class of a PEP 302 "Importer" (sys.path item + handler), and `distribution_finder` is a callable that, passed a path + item and the importer instance, yields ``Distribution`` instances found on + that path item. See ``pkg_resources.find_on_path`` for an example.""" + _distribution_finders[importer_type] = distribution_finder + + +def find_distributions(path_item: str, only: bool = False) -> Iterable[Distribution]: + """Yield distributions accessible via `path_item`""" + importer = get_importer(path_item) + finder = _find_adapter(_distribution_finders, importer) + return finder(importer, path_item, only) + + +def find_eggs_in_zip( + importer: zipimport.zipimporter, path_item: str, only: bool = False +) -> Iterator[Distribution]: + """ + Find eggs in zip files; possibly multiple nested eggs. + """ + if importer.archive.endswith('.whl'): + # wheels are not supported with this finder + # they don't have PKG-INFO metadata, and won't ever contain eggs + return + metadata = EggMetadata(importer) + if metadata.has_metadata('PKG-INFO'): + yield Distribution.from_filename(path_item, metadata=metadata) + if only: + # don't yield nested distros + return + for subitem in metadata.resource_listdir(''): + if _is_egg_path(subitem): + subpath = os.path.join(path_item, subitem) + dists = find_eggs_in_zip(zipimport.zipimporter(subpath), subpath) + yield from dists + elif subitem.lower().endswith(('.dist-info', '.egg-info')): + subpath = os.path.join(path_item, subitem) + submeta = EggMetadata(zipimport.zipimporter(subpath)) + submeta.egg_info = subpath + yield Distribution.from_location(path_item, subitem, submeta) + + +register_finder(zipimport.zipimporter, find_eggs_in_zip) + + +def find_nothing( + importer: object | None, path_item: str | None, only: bool | None = False +): + return () + + +register_finder(object, find_nothing) + + +def find_on_path(importer: object | None, path_item, only=False): + """Yield distributions accessible on a sys.path directory""" + path_item = _normalize_cached(path_item) + + if _is_unpacked_egg(path_item): + yield Distribution.from_filename( + path_item, + metadata=PathMetadata(path_item, os.path.join(path_item, 'EGG-INFO')), + ) + return + + entries = (os.path.join(path_item, child) for child in safe_listdir(path_item)) + + # scan for .egg and .egg-info in directory + for entry in sorted(entries): + fullpath = os.path.join(path_item, entry) + factory = dist_factory(path_item, entry, only) + yield from factory(fullpath) + + +def dist_factory(path_item, entry, only): + """Return a dist_factory for the given entry.""" + lower = entry.lower() + is_egg_info = lower.endswith('.egg-info') + is_dist_info = lower.endswith('.dist-info') and os.path.isdir( + os.path.join(path_item, entry) + ) + is_meta = is_egg_info or is_dist_info + return ( + distributions_from_metadata + if is_meta + else find_distributions + if not only and _is_egg_path(entry) + else resolve_egg_link + if not only and lower.endswith('.egg-link') + else NoDists() + ) + + +class NoDists: + """ + >>> bool(NoDists()) + False + + >>> list(NoDists()('anything')) + [] + """ + + def __bool__(self) -> Literal[False]: + return False + + def __call__(self, fullpath: object): + return iter(()) + + +def safe_listdir(path: StrOrBytesPath): + """ + Attempt to list contents of path, but suppress some exceptions. + """ + try: + return os.listdir(path) + except (PermissionError, NotADirectoryError): + pass + except OSError as e: + # Ignore the directory if does not exist, not a directory or + # permission denied + if e.errno not in (errno.ENOTDIR, errno.EACCES, errno.ENOENT): + raise + return () + + +def distributions_from_metadata(path: str): + root = os.path.dirname(path) + if os.path.isdir(path): + if len(os.listdir(path)) == 0: + # empty metadata dir; skip + return + metadata: _MetadataType = PathMetadata(root, path) + else: + metadata = FileMetadata(path) + entry = os.path.basename(path) + yield Distribution.from_location( + root, + entry, + metadata, + precedence=DEVELOP_DIST, + ) + + +def non_empty_lines(path): + """ + Yield non-empty lines from file at path + """ + for line in _read_utf8_with_fallback(path).splitlines(): + line = line.strip() + if line: + yield line + + +def resolve_egg_link(path): + """ + Given a path to an .egg-link, resolve distributions + present in the referenced path. + """ + referenced_paths = non_empty_lines(path) + resolved_paths = ( + os.path.join(os.path.dirname(path), ref) for ref in referenced_paths + ) + dist_groups = map(find_distributions, resolved_paths) + return next(dist_groups, ()) + + +if hasattr(pkgutil, 'ImpImporter'): + register_finder(pkgutil.ImpImporter, find_on_path) + +register_finder(importlib.machinery.FileFinder, find_on_path) + +_namespace_handlers: dict[type, _NSHandlerType[Any]] = _declare_state( + 'dict', '_namespace_handlers', {} +) +_namespace_packages: dict[str | None, list[str]] = _declare_state( + 'dict', '_namespace_packages', {} +) + + +def register_namespace_handler( + importer_type: type[_T], namespace_handler: _NSHandlerType[_T] +) -> None: + """Register `namespace_handler` to declare namespace packages + + `importer_type` is the type or class of a PEP 302 "Importer" (sys.path item + handler), and `namespace_handler` is a callable like this:: + + def namespace_handler(importer, path_entry, moduleName, module): + # return a path_entry to use for child packages + + Namespace handlers are only called if the importer object has already + agreed that it can handle the relevant path item, and they should only + return a subpath if the module __path__ does not already contain an + equivalent subpath. For an example namespace handler, see + ``pkg_resources.file_ns_handler``. + """ + _namespace_handlers[importer_type] = namespace_handler + + +def _handle_ns(packageName, path_item): + """Ensure that named package includes a subpath of path_item (if needed)""" + + importer = get_importer(path_item) + if importer is None: + return None + + # use find_spec (PEP 451) and fall-back to find_module (PEP 302) + try: + spec = importer.find_spec(packageName) + except AttributeError: + # capture warnings due to #1111 + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + loader = importer.find_module(packageName) + else: + loader = spec.loader if spec else None + + if loader is None: + return None + module = sys.modules.get(packageName) + if module is None: + module = sys.modules[packageName] = types.ModuleType(packageName) + module.__path__ = [] + _set_parent_ns(packageName) + elif not hasattr(module, '__path__'): + raise TypeError("Not a package:", packageName) + handler = _find_adapter(_namespace_handlers, importer) + subpath = handler(importer, path_item, packageName, module) + if subpath is not None: + path = module.__path__ + path.append(subpath) + importlib.import_module(packageName) + _rebuild_mod_path(path, packageName, module) + return subpath + + +def _rebuild_mod_path(orig_path, package_name, module: types.ModuleType) -> None: + """ + Rebuild module.__path__ ensuring that all entries are ordered + corresponding to their sys.path order + """ + sys_path = [_normalize_cached(p) for p in sys.path] + + def safe_sys_path_index(entry): + """ + Workaround for #520 and #513. + """ + try: + return sys_path.index(entry) + except ValueError: + return float('inf') + + def position_in_sys_path(path): + """ + Return the ordinal of the path based on its position in sys.path + """ + path_parts = path.split(os.sep) + module_parts = package_name.count('.') + 1 + parts = path_parts[:-module_parts] + return safe_sys_path_index(_normalize_cached(os.sep.join(parts))) + + new_path = sorted(orig_path, key=position_in_sys_path) + new_path = [_normalize_cached(p) for p in new_path] + + if isinstance(module.__path__, list): + module.__path__[:] = new_path + else: + module.__path__ = new_path + + +def declare_namespace(packageName: str) -> None: + """Declare that package 'packageName' is a namespace package""" + + msg = ( + f"Deprecated call to `pkg_resources.declare_namespace({packageName!r})`.\n" + "Implementing implicit namespace packages (as specified in PEP 420) " + "is preferred to `pkg_resources.declare_namespace`. " + "See https://setuptools.pypa.io/en/latest/references/" + "keywords.html#keyword-namespace-packages" + ) + warnings.warn(msg, DeprecationWarning, stacklevel=2) + + _imp.acquire_lock() + try: + if packageName in _namespace_packages: + return + + path: MutableSequence[str] = sys.path + parent, _, _ = packageName.rpartition('.') + + if parent: + declare_namespace(parent) + if parent not in _namespace_packages: + __import__(parent) + try: + path = sys.modules[parent].__path__ + except AttributeError as e: + raise TypeError("Not a package:", parent) from e + + # Track what packages are namespaces, so when new path items are added, + # they can be updated + _namespace_packages.setdefault(parent or None, []).append(packageName) + _namespace_packages.setdefault(packageName, []) + + for path_item in path: + # Ensure all the parent's path items are reflected in the child, + # if they apply + _handle_ns(packageName, path_item) + + finally: + _imp.release_lock() + + +def fixup_namespace_packages(path_item: str, parent: str | None = None) -> None: + """Ensure that previously-declared namespace packages include path_item""" + _imp.acquire_lock() + try: + for package in _namespace_packages.get(parent, ()): + subpath = _handle_ns(package, path_item) + if subpath: + fixup_namespace_packages(subpath, package) + finally: + _imp.release_lock() + + +def file_ns_handler( + importer: object, + path_item: StrPath, + packageName: str, + module: types.ModuleType, +): + """Compute an ns-package subpath for a filesystem or zipfile importer""" + + subpath = os.path.join(path_item, packageName.split('.')[-1]) + normalized = _normalize_cached(subpath) + for item in module.__path__: + if _normalize_cached(item) == normalized: + break + else: + # Only return the path if it's not already there + return subpath + + +if hasattr(pkgutil, 'ImpImporter'): + register_namespace_handler(pkgutil.ImpImporter, file_ns_handler) + +register_namespace_handler(zipimport.zipimporter, file_ns_handler) +register_namespace_handler(importlib.machinery.FileFinder, file_ns_handler) + + +def null_ns_handler( + importer: object, + path_item: str | None, + packageName: str | None, + module: _ModuleLike | None, +) -> None: + return None + + +register_namespace_handler(object, null_ns_handler) + + +@overload +def normalize_path(filename: StrPath) -> str: ... +@overload +def normalize_path(filename: BytesPath) -> bytes: ... +def normalize_path(filename: StrOrBytesPath) -> str | bytes: + """Normalize a file/dir name for comparison purposes""" + return os.path.normcase(os.path.realpath(os.path.normpath(_cygwin_patch(filename)))) + + +def _cygwin_patch(filename: StrOrBytesPath): # pragma: nocover + """ + Contrary to POSIX 2008, on Cygwin, getcwd (3) contains + symlink components. Using + os.path.abspath() works around this limitation. A fix in os.getcwd() + would probably better, in Cygwin even more so, except + that this seems to be by design... + """ + return os.path.abspath(filename) if sys.platform == 'cygwin' else filename + + +if TYPE_CHECKING: + # https://github.com/python/mypy/issues/16261 + # https://github.com/python/typeshed/issues/6347 + @overload + def _normalize_cached(filename: StrPath) -> str: ... + @overload + def _normalize_cached(filename: BytesPath) -> bytes: ... + def _normalize_cached(filename: StrOrBytesPath) -> str | bytes: ... + +else: + + @functools.cache + def _normalize_cached(filename): + return normalize_path(filename) + + +def _is_egg_path(path): + """ + Determine if given path appears to be an egg. + """ + return _is_zip_egg(path) or _is_unpacked_egg(path) + + +def _is_zip_egg(path): + return ( + path.lower().endswith('.egg') + and os.path.isfile(path) + and zipfile.is_zipfile(path) + ) + + +def _is_unpacked_egg(path): + """ + Determine if given path appears to be an unpacked egg. + """ + return path.lower().endswith('.egg') and os.path.isfile( + os.path.join(path, 'EGG-INFO', 'PKG-INFO') + ) + + +def _set_parent_ns(packageName) -> None: + parts = packageName.split('.') + name = parts.pop() + if parts: + parent = '.'.join(parts) + setattr(sys.modules[parent], name, sys.modules[packageName]) + + +MODULE = re.compile(r"\w+(\.\w+)*$").match +EGG_NAME = re.compile( + r""" + (?P[^-]+) ( + -(?P[^-]+) ( + -py(?P[^-]+) ( + -(?P.+) + )? + )? + )? + """, + re.VERBOSE | re.IGNORECASE, +).match + + +class EntryPoint: + """Object representing an advertised importable object""" + + def __init__( + self, + name: str, + module_name: str, + attrs: Iterable[str] = (), + extras: Iterable[str] = (), + dist: Distribution | None = None, + ) -> None: + if not MODULE(module_name): + raise ValueError("Invalid module name", module_name) + self.name = name + self.module_name = module_name + self.attrs = tuple(attrs) + self.extras = tuple(extras) + self.dist = dist + + def __str__(self) -> str: + s = f"{self.name} = {self.module_name}" + if self.attrs: + s += ':' + '.'.join(self.attrs) + if self.extras: + extras = ','.join(self.extras) + s += f' [{extras}]' + return s + + def __repr__(self) -> str: + return f"EntryPoint.parse({str(self)!r})" + + @overload + def load( + self, + require: Literal[True] = True, + env: Environment | None = None, + installer: _InstallerType | None = None, + ) -> _ResolvedEntryPoint: ... + @overload + def load( + self, + require: Literal[False], + *args: Any, + **kwargs: Any, + ) -> _ResolvedEntryPoint: ... + def load( + self, + require: bool = True, + *args: Environment | _InstallerType | None, + **kwargs: Environment | _InstallerType | None, + ) -> _ResolvedEntryPoint: + """ + Require packages for this EntryPoint, then resolve it. + """ + if not require or args or kwargs: + warnings.warn( + "Parameters to load are deprecated. Call .resolve and " + ".require separately.", + PkgResourcesDeprecationWarning, + stacklevel=2, + ) + if require: + # We could pass `env` and `installer` directly, + # but keeping `*args` and `**kwargs` for backwards compatibility + self.require(*args, **kwargs) # type: ignore[arg-type] + return self.resolve() + + def resolve(self) -> _ResolvedEntryPoint: + """ + Resolve the entry point from its module and attrs. + """ + module = __import__(self.module_name, fromlist=['__name__'], level=0) + try: + return functools.reduce(getattr, self.attrs, module) + except AttributeError as exc: + raise ImportError(str(exc)) from exc + + def require( + self, + env: Environment | None = None, + installer: _InstallerType | None = None, + ) -> None: + if not self.dist: + error_cls = UnknownExtra if self.extras else AttributeError + raise error_cls("Can't require() without a distribution", self) + + # Get the requirements for this entry point with all its extras and + # then resolve them. We have to pass `extras` along when resolving so + # that the working set knows what extras we want. Otherwise, for + # dist-info distributions, the working set will assume that the + # requirements for that extra are purely optional and skip over them. + reqs = self.dist.requires(self.extras) + items = working_set.resolve(reqs, env, installer, extras=self.extras) + list(map(working_set.add, items)) + + pattern = re.compile( + r'\s*' + r'(?P.+?)\s*' + r'=\s*' + r'(?P[\w.]+)\s*' + r'(:\s*(?P[\w.]+))?\s*' + r'(?P\[.*\])?\s*$' + ) + + @classmethod + def parse(cls, src: str, dist: Distribution | None = None) -> Self: + """Parse a single entry point from string `src` + + Entry point syntax follows the form:: + + name = some.module:some.attr [extra1, extra2] + + The entry name and module name are required, but the ``:attrs`` and + ``[extras]`` parts are optional + """ + m = cls.pattern.match(src) + if not m: + msg = "EntryPoint must be in 'name=module:attrs [extras]' format" + raise ValueError(msg, src) + res = m.groupdict() + extras = cls._parse_extras(res['extras']) + attrs = res['attr'].split('.') if res['attr'] else () + return cls(res['name'], res['module'], attrs, extras, dist) + + @classmethod + def _parse_extras(cls, extras_spec): + if not extras_spec: + return () + req = Requirement.parse('x' + extras_spec) + if req.specs: + raise ValueError + return req.extras + + @classmethod + def parse_group( + cls, + group: str, + lines: _NestedStr, + dist: Distribution | None = None, + ) -> dict[str, Self]: + """Parse an entry point group""" + if not MODULE(group): + raise ValueError("Invalid group name", group) + this: dict[str, Self] = {} + for line in yield_lines(lines): + ep = cls.parse(line, dist) + if ep.name in this: + raise ValueError("Duplicate entry point", group, ep.name) + this[ep.name] = ep + return this + + @classmethod + def parse_map( + cls, + data: str | Iterable[str] | dict[str, str | Iterable[str]], + dist: Distribution | None = None, + ) -> dict[str, dict[str, Self]]: + """Parse a map of entry point groups""" + _data: Iterable[tuple[str | None, str | Iterable[str]]] + if isinstance(data, dict): + _data = data.items() + else: + _data = split_sections(data) + maps: dict[str, dict[str, Self]] = {} + for group, lines in _data: + if group is None: + if not lines: + continue + raise ValueError("Entry points must be listed in groups") + group = group.strip() + if group in maps: + raise ValueError("Duplicate group name", group) + maps[group] = cls.parse_group(group, lines, dist) + return maps + + +def _version_from_file(lines): + """ + Given an iterable of lines from a Metadata file, return + the value of the Version field, if present, or None otherwise. + """ + + def is_version_line(line): + return line.lower().startswith('version:') + + version_lines = filter(is_version_line, lines) + line = next(iter(version_lines), '') + _, _, value = line.partition(':') + return safe_version(value.strip()) or None + + +class Distribution: + """Wrap an actual or potential sys.path entry w/metadata""" + + PKG_INFO = 'PKG-INFO' + + def __init__( + self, + location: str | None = None, + metadata: _MetadataType = None, + project_name: str | None = None, + version: str | None = None, + py_version: str | None = PY_MAJOR, + platform: str | None = None, + precedence: int = EGG_DIST, + ) -> None: + self.project_name = safe_name(project_name or 'Unknown') + if version is not None: + self._version = safe_version(version) + self.py_version = py_version + self.platform = platform + self.location = location + self.precedence = precedence + self._provider = metadata or empty_provider + + @classmethod + def from_location( + cls, + location: str, + basename: StrPath, + metadata: _MetadataType = None, + **kw: int, # We could set `precedence` explicitly, but keeping this as `**kw` for full backwards and subclassing compatibility + ) -> Distribution: + project_name, version, py_version, platform = [None] * 4 + basename, ext = os.path.splitext(basename) + if ext.lower() in _distributionImpl: + cls = _distributionImpl[ext.lower()] + + match = EGG_NAME(basename) + if match: + project_name, version, py_version, platform = match.group( + 'name', 'ver', 'pyver', 'plat' + ) + return cls( + location, + metadata, + project_name=project_name, + version=version, + py_version=py_version, + platform=platform, + **kw, + )._reload_version() + + def _reload_version(self): + return self + + @property + def hashcmp(self): + return ( + self._forgiving_parsed_version, + self.precedence, + self.key, + self.location, + self.py_version or '', + self.platform or '', + ) + + def __hash__(self) -> int: + return hash(self.hashcmp) + + def __lt__(self, other: Distribution) -> bool: + return self.hashcmp < other.hashcmp + + def __le__(self, other: Distribution) -> bool: + return self.hashcmp <= other.hashcmp + + def __gt__(self, other: Distribution) -> bool: + return self.hashcmp > other.hashcmp + + def __ge__(self, other: Distribution) -> bool: + return self.hashcmp >= other.hashcmp + + def __eq__(self, other: object) -> bool: + if not isinstance(other, self.__class__): + # It's not a Distribution, so they are not equal + return False + return self.hashcmp == other.hashcmp + + def __ne__(self, other: object) -> bool: + return not self == other + + # These properties have to be lazy so that we don't have to load any + # metadata until/unless it's actually needed. (i.e., some distributions + # may not know their name or version without loading PKG-INFO) + + @property + def key(self): + try: + return self._key + except AttributeError: + self._key = key = self.project_name.lower() + return key + + @property + def parsed_version(self): + if not hasattr(self, "_parsed_version"): + try: + self._parsed_version = parse_version(self.version) + except packaging.version.InvalidVersion as ex: + info = f"(package: {self.project_name})" + if hasattr(ex, "add_note"): + ex.add_note(info) # PEP 678 + raise + raise packaging.version.InvalidVersion(f"{str(ex)} {info}") from None + + return self._parsed_version + + @property + def _forgiving_parsed_version(self): + try: + return self.parsed_version + except packaging.version.InvalidVersion as ex: + self._parsed_version = parse_version(_forgiving_version(self.version)) + + notes = "\n".join(getattr(ex, "__notes__", [])) # PEP 678 + msg = f"""!!\n\n + ************************************************************************* + {str(ex)}\n{notes} + + This is a long overdue deprecation. + For the time being, `pkg_resources` will use `{self._parsed_version}` + as a replacement to avoid breaking existing environments, + but no future compatibility is guaranteed. + + If you maintain package {self.project_name} you should implement + the relevant changes to adequate the project to PEP 440 immediately. + ************************************************************************* + \n\n!! + """ + warnings.warn(msg, DeprecationWarning) + + return self._parsed_version + + @property + def version(self): + try: + return self._version + except AttributeError as e: + version = self._get_version() + if version is None: + path = self._get_metadata_path_for_display(self.PKG_INFO) + msg = f"Missing 'Version:' header and/or {self.PKG_INFO} file at path: {path}" + raise ValueError(msg, self) from e + + return version + + @property + def _dep_map(self): + """ + A map of extra to its list of (direct) requirements + for this distribution, including the null extra. + """ + try: + return self.__dep_map + except AttributeError: + self.__dep_map = self._filter_extras(self._build_dep_map()) + return self.__dep_map + + @staticmethod + def _filter_extras( + dm: dict[str | None, list[Requirement]], + ) -> dict[str | None, list[Requirement]]: + """ + Given a mapping of extras to dependencies, strip off + environment markers and filter out any dependencies + not matching the markers. + """ + for extra in list(filter(None, dm)): + new_extra: str | None = extra + reqs = dm.pop(extra) + new_extra, _, marker = extra.partition(':') + fails_marker = marker and ( + invalid_marker(marker) or not evaluate_marker(marker) + ) + if fails_marker: + reqs = [] + new_extra = safe_extra(new_extra) or None + + dm.setdefault(new_extra, []).extend(reqs) + return dm + + def _build_dep_map(self): + dm = {} + for name in 'requires.txt', 'depends.txt': + for extra, reqs in split_sections(self._get_metadata(name)): + dm.setdefault(extra, []).extend(parse_requirements(reqs)) + return dm + + def requires(self, extras: Iterable[str] = ()) -> list[Requirement]: + """List of Requirements needed for this distro if `extras` are used""" + dm = self._dep_map + deps: list[Requirement] = [] + deps.extend(dm.get(None, ())) + for ext in extras: + try: + deps.extend(dm[safe_extra(ext)]) + except KeyError as e: + raise UnknownExtra(f"{self} has no such extra feature {ext!r}") from e + return deps + + def _get_metadata_path_for_display(self, name): + """ + Return the path to the given metadata file, if available. + """ + try: + # We need to access _get_metadata_path() on the provider object + # directly rather than through this class's __getattr__() + # since _get_metadata_path() is marked private. + path = self._provider._get_metadata_path(name) + + # Handle exceptions e.g. in case the distribution's metadata + # provider doesn't support _get_metadata_path(). + except Exception: + return '[could not detect]' + + return path + + def _get_metadata(self, name): + if self.has_metadata(name): + yield from self.get_metadata_lines(name) + + def _get_version(self): + lines = self._get_metadata(self.PKG_INFO) + return _version_from_file(lines) + + def activate(self, path: list[str] | None = None, replace: bool = False) -> None: + """Ensure distribution is importable on `path` (default=sys.path)""" + if path is None: + path = sys.path + self.insert_on(path, replace=replace) + if path is sys.path and self.location is not None: + fixup_namespace_packages(self.location) + for pkg in self._get_metadata('namespace_packages.txt'): + if pkg in sys.modules: + declare_namespace(pkg) + + def egg_name(self): + """Return what this distribution's standard .egg filename should be""" + filename = f"{to_filename(self.project_name)}-{to_filename(self.version)}-py{self.py_version or PY_MAJOR}" + + if self.platform: + filename += '-' + self.platform + return filename + + def __repr__(self) -> str: + if self.location: + return f"{self} ({self.location})" + else: + return str(self) + + def __str__(self) -> str: + try: + version = getattr(self, 'version', None) + except ValueError: + version = None + version = version or "[unknown version]" + return f"{self.project_name} {version}" + + def __getattr__(self, attr: str): + """Delegate all unrecognized public attributes to .metadata provider""" + if attr.startswith('_'): + raise AttributeError(attr) + return getattr(self._provider, attr) + + def __dir__(self): + return list( + set(super().__dir__()) + | set(attr for attr in self._provider.__dir__() if not attr.startswith('_')) + ) + + @classmethod + def from_filename( + cls, + filename: StrPath, + metadata: _MetadataType = None, + **kw: int, # We could set `precedence` explicitly, but keeping this as `**kw` for full backwards and subclassing compatibility + ) -> Distribution: + return cls.from_location( + _normalize_cached(filename), os.path.basename(filename), metadata, **kw + ) + + def as_requirement(self): + """Return a ``Requirement`` that matches this distribution exactly""" + if isinstance(self.parsed_version, packaging.version.Version): + spec = f"{self.project_name}=={self.parsed_version}" + else: + spec = f"{self.project_name}==={self.parsed_version}" + + return Requirement.parse(spec) + + def load_entry_point(self, group: str, name: str) -> _ResolvedEntryPoint: + """Return the `name` entry point of `group` or raise ImportError""" + ep = self.get_entry_info(group, name) + if ep is None: + raise ImportError(f"Entry point {(group, name)!r} not found") + return ep.load() + + @overload + def get_entry_map(self, group: None = None) -> dict[str, dict[str, EntryPoint]]: ... + @overload + def get_entry_map(self, group: str) -> dict[str, EntryPoint]: ... + def get_entry_map(self, group: str | None = None): + """Return the entry point map for `group`, or the full entry map""" + if not hasattr(self, "_ep_map"): + self._ep_map = EntryPoint.parse_map( + self._get_metadata('entry_points.txt'), self + ) + if group is not None: + return self._ep_map.get(group, {}) + return self._ep_map + + def get_entry_info(self, group: str, name: str) -> EntryPoint | None: + """Return the EntryPoint object for `group`+`name`, or ``None``""" + return self.get_entry_map(group).get(name) + + # FIXME: 'Distribution.insert_on' is too complex (13) + def insert_on( # noqa: C901 + self, + path: list[str], + loc=None, + replace: bool = False, + ) -> None: + """Ensure self.location is on path + + If replace=False (default): + - If location is already in path anywhere, do nothing. + - Else: + - If it's an egg and its parent directory is on path, + insert just ahead of the parent. + - Else: add to the end of path. + If replace=True: + - If location is already on path anywhere (not eggs) + or higher priority than its parent (eggs) + do nothing. + - Else: + - If it's an egg and its parent directory is on path, + insert just ahead of the parent, + removing any lower-priority entries. + - Else: add it to the front of path. + """ + + loc = loc or self.location + if not loc: + return + + nloc = _normalize_cached(loc) + bdir = os.path.dirname(nloc) + npath = [(p and _normalize_cached(p) or p) for p in path] + + for p, item in enumerate(npath): + if item == nloc: + if replace: + break + else: + # don't modify path (even removing duplicates) if + # found and not replace + return + elif item == bdir and self.precedence == EGG_DIST: + # if it's an .egg, give it precedence over its directory + # UNLESS it's already been added to sys.path and replace=False + if (not replace) and nloc in npath[p:]: + return + if path is sys.path: + self.check_version_conflict() + path.insert(p, loc) + npath.insert(p, nloc) + break + else: + if path is sys.path: + self.check_version_conflict() + if replace: + path.insert(0, loc) + else: + path.append(loc) + return + + # p is the spot where we found or inserted loc; now remove duplicates + while True: + try: + np = npath.index(nloc, p + 1) + except ValueError: + break + else: + del npath[np], path[np] + # ha! + p = np + + return + + def check_version_conflict(self): + if self.key == 'setuptools': + # ignore the inevitable setuptools self-conflicts :( + return + + nsp = dict.fromkeys(self._get_metadata('namespace_packages.txt')) + loc = normalize_path(self.location) + for modname in self._get_metadata('top_level.txt'): + if ( + modname not in sys.modules + or modname in nsp + or modname in _namespace_packages + ): + continue + if modname in ('pkg_resources', 'setuptools', 'site'): + continue + fn = getattr(sys.modules[modname], '__file__', None) + if fn and ( + normalize_path(fn).startswith(loc) or fn.startswith(self.location) + ): + continue + issue_warning( + f"Module {modname} was already imported from {fn}, " + f"but {self.location} is being added to sys.path", + ) + + def has_version(self) -> bool: + try: + self.version + except ValueError: + issue_warning("Unbuilt egg for " + repr(self)) + return False + except SystemError: + # TODO: remove this except clause when python/cpython#103632 is fixed. + return False + return True + + def clone(self, **kw: str | int | IResourceProvider | None) -> Self: + """Copy this distribution, substituting in any changed keyword args""" + names = 'project_name version py_version platform location precedence' + for attr in names.split(): + kw.setdefault(attr, getattr(self, attr, None)) + kw.setdefault('metadata', self._provider) + # Unsafely unpacking. But keeping **kw for backwards and subclassing compatibility + return self.__class__(**kw) # type:ignore[arg-type] + + @property + def extras(self): + return [dep for dep in self._dep_map if dep] + + +class EggInfoDistribution(Distribution): + def _reload_version(self): + """ + Packages installed by distutils (e.g. numpy or scipy), + which uses an old safe_version, and so + their version numbers can get mangled when + converted to filenames (e.g., 1.11.0.dev0+2329eae to + 1.11.0.dev0_2329eae). These distributions will not be + parsed properly + downstream by Distribution and safe_version, so + take an extra step and try to get the version number from + the metadata file itself instead of the filename. + """ + md_version = self._get_version() + if md_version: + self._version = md_version + return self + + +class DistInfoDistribution(Distribution): + """ + Wrap an actual or potential sys.path entry + w/metadata, .dist-info style. + """ + + PKG_INFO = 'METADATA' + EQEQ = re.compile(r"([\(,])\s*(\d.*?)\s*([,\)])") + + @property + def _parsed_pkg_info(self): + """Parse and cache metadata""" + try: + return self._pkg_info + except AttributeError: + metadata = self.get_metadata(self.PKG_INFO) + self._pkg_info = email.parser.Parser().parsestr(metadata) + return self._pkg_info + + @property + def _dep_map(self): + try: + return self.__dep_map + except AttributeError: + self.__dep_map = self._compute_dependencies() + return self.__dep_map + + def _compute_dependencies(self) -> dict[str | None, list[Requirement]]: + """Recompute this distribution's dependencies.""" + self.__dep_map: dict[str | None, list[Requirement]] = {None: []} + + reqs: list[Requirement] = [] + # Including any condition expressions + for req in self._parsed_pkg_info.get_all('Requires-Dist') or []: + reqs.extend(parse_requirements(req)) + + def reqs_for_extra(extra): + for req in reqs: + if not req.marker or req.marker.evaluate({'extra': extra}): + yield req + + common = types.MappingProxyType(dict.fromkeys(reqs_for_extra(None))) + self.__dep_map[None].extend(common) + + for extra in self._parsed_pkg_info.get_all('Provides-Extra') or []: + s_extra = safe_extra(extra.strip()) + self.__dep_map[s_extra] = [ + r for r in reqs_for_extra(extra) if r not in common + ] + + return self.__dep_map + + +_distributionImpl = { + '.egg': Distribution, + '.egg-info': EggInfoDistribution, + '.dist-info': DistInfoDistribution, +} + + +def issue_warning(*args, **kw): + level = 1 + g = globals() + try: + # find the first stack frame that is *not* code in + # the pkg_resources module, to use for the warning + while sys._getframe(level).f_globals is g: + level += 1 + except ValueError: + pass + warnings.warn(stacklevel=level + 1, *args, **kw) + + +def parse_requirements(strs: _NestedStr) -> map[Requirement]: + """ + Yield ``Requirement`` objects for each specification in `strs`. + + `strs` must be a string, or a (possibly-nested) iterable thereof. + """ + return map(Requirement, join_continuation(map(drop_comment, yield_lines(strs)))) + + +class RequirementParseError(packaging.requirements.InvalidRequirement): + "Compatibility wrapper for InvalidRequirement" + + +class Requirement(packaging.requirements.Requirement): + # prefer variable length tuple to set (as found in + # packaging.requirements.Requirement) + extras: tuple[str, ...] # type: ignore[assignment] + + def __init__(self, requirement_string: str) -> None: + """DO NOT CALL THIS UNDOCUMENTED METHOD; use Requirement.parse()!""" + super().__init__(requirement_string) + self.unsafe_name = self.name + project_name = safe_name(self.name) + self.project_name, self.key = project_name, project_name.lower() + self.specs = [(spec.operator, spec.version) for spec in self.specifier] + self.extras = tuple(map(safe_extra, self.extras)) + self.hashCmp = ( + self.key, + self.url, + self.specifier, + frozenset(self.extras), + str(self.marker) if self.marker else None, + ) + self.__hash = hash(self.hashCmp) + + def __eq__(self, other: object) -> bool: + return isinstance(other, Requirement) and self.hashCmp == other.hashCmp + + def __ne__(self, other: object) -> bool: + return not self == other + + def __contains__( + self, item: Distribution | packaging.specifiers.UnparsedVersion + ) -> bool: + if isinstance(item, Distribution): + if item.key != self.key: + return False + + version = item.version + else: + version = item + + # Allow prereleases always in order to match the previous behavior of + # this method. In the future this should be smarter and follow PEP 440 + # more accurately. + return self.specifier.contains( + version, + prereleases=True, + ) + + def __hash__(self) -> int: + return self.__hash + + def __repr__(self) -> str: + return f"Requirement.parse({str(self)!r})" + + @staticmethod + def parse(s: str | Iterable[str]) -> Requirement: + (req,) = parse_requirements(s) + return req + + +def _always_object(classes): + """ + Ensure object appears in the mro even + for old-style classes. + """ + if object not in classes: + return classes + (object,) + return classes + + +def _find_adapter(registry: Mapping[type, _AdapterT], ob: object) -> _AdapterT: + """Return an adapter factory for `ob` from `registry`""" + types = _always_object(inspect.getmro(getattr(ob, '__class__', type(ob)))) + for t in types: + if t in registry: + return registry[t] + # _find_adapter would previously return None, and immediately be called. + # So we're raising a TypeError to keep backward compatibility if anyone depended on that behaviour. + raise TypeError(f"Could not find adapter for {registry} and {ob}") + + +def ensure_directory(path: StrOrBytesPath) -> None: + """Ensure that the parent directory of `path` exists""" + dirname = os.path.dirname(path) + os.makedirs(dirname, exist_ok=True) + + +def _bypass_ensure_directory(path) -> None: + """Sandbox-bypassing version of ensure_directory()""" + if not WRITE_SUPPORT: + raise OSError('"os.mkdir" not supported on this platform.') + dirname, filename = split(path) + if dirname and filename and not isdir(dirname): + _bypass_ensure_directory(dirname) + try: + mkdir(dirname, 0o755) + except FileExistsError: + pass + + +def split_sections(s: _NestedStr) -> Iterator[tuple[str | None, list[str]]]: + """Split a string or iterable thereof into (section, content) pairs + + Each ``section`` is a stripped version of the section header ("[section]") + and each ``content`` is a list of stripped lines excluding blank lines and + comment-only lines. If there are any such lines before the first section + header, they're returned in a first ``section`` of ``None``. + """ + section = None + content: list[str] = [] + for line in yield_lines(s): + if line.startswith("["): + if line.endswith("]"): + if section or content: + yield section, content + section = line[1:-1].strip() + content = [] + else: + raise ValueError("Invalid section heading", line) + else: + content.append(line) + + # wrap up last segment + yield section, content + + +def _mkstemp(*args, **kw): + old_open = os.open + try: + # temporarily bypass sandboxing + os.open = os_open + return tempfile.mkstemp(*args, **kw) + finally: + # and then put it back + os.open = old_open + + +# Silence the PEP440Warning by default, so that end users don't get hit by it +# randomly just because they use pkg_resources. We want to append the rule +# because we want earlier uses of filterwarnings to take precedence over this +# one. +warnings.filterwarnings("ignore", category=PEP440Warning, append=True) + + +class PkgResourcesDeprecationWarning(Warning): + """ + Base class for warning about deprecations in ``pkg_resources`` + + This class is not derived from ``DeprecationWarning``, and as such is + visible by default. + """ + + +# Ported from ``setuptools`` to avoid introducing an import inter-dependency: +_LOCALE_ENCODING = "locale" if sys.version_info >= (3, 10) else None + + +# This must go before calls to `_call_aside`. See https://github.com/pypa/setuptools/pull/4422 +def _read_utf8_with_fallback(file: str, fallback_encoding=_LOCALE_ENCODING) -> str: + """See setuptools.unicode_utils._read_utf8_with_fallback""" + try: + with open(file, "r", encoding="utf-8") as f: + return f.read() + except UnicodeDecodeError: # pragma: no cover + msg = f"""\ + ******************************************************************************** + `encoding="utf-8"` fails with {file!r}, trying `encoding={fallback_encoding!r}`. + + This fallback behaviour is considered **deprecated** and future versions of + `setuptools/pkg_resources` may not implement it. + + Please encode {file!r} with "utf-8" to ensure future builds will succeed. + + If this file was produced by `setuptools` itself, cleaning up the cached files + and re-building/re-installing the package with a newer version of `setuptools` + (e.g. by updating `build-system.requires` in its `pyproject.toml`) + might solve the problem. + ******************************************************************************** + """ + # TODO: Add a deadline? + # See comment in setuptools.unicode_utils._Utf8EncodingNeeded + warnings.warn(msg, PkgResourcesDeprecationWarning, stacklevel=2) + with open(file, "r", encoding=fallback_encoding) as f: + return f.read() + + +# from jaraco.functools 1.3 +def _call_aside(f, *args, **kwargs): + f(*args, **kwargs) + return f + + +@_call_aside +def _initialize(g=globals()) -> None: + "Set up global resource manager (deliberately not state-saved)" + manager = ResourceManager() + g['_manager'] = manager + g.update( + (name, getattr(manager, name)) + for name in dir(manager) + if not name.startswith('_') + ) + + +@_call_aside +def _initialize_master_working_set() -> None: + """ + Prepare the master working set and make the ``require()`` + API available. + + This function has explicit effects on the global state + of pkg_resources. It is intended to be invoked once at + the initialization of this module. + + Invocation by other packages is unsupported and done + at their own risk. + """ + working_set = _declare_state('object', 'working_set', WorkingSet._build_master()) + + require = working_set.require + iter_entry_points = working_set.iter_entry_points + add_activation_listener = working_set.subscribe + run_script = working_set.run_script + # backward compatibility + run_main = run_script + # Activate all distributions already on sys.path with replace=False and + # ensure that all distributions added to the working set in the future + # (e.g. by calling ``require()``) will get activated as well, + # with higher priority (replace=True). + tuple(dist.activate(replace=False) for dist in working_set) + add_activation_listener( + lambda dist: dist.activate(replace=True), + existing=False, + ) + working_set.entries = [] + # match order + list(map(working_set.add_entry, sys.path)) + globals().update(locals()) + + +if TYPE_CHECKING: + # All of these are set by the @_call_aside methods above + __resource_manager = ResourceManager() # Won't exist at runtime + resource_exists = __resource_manager.resource_exists + resource_isdir = __resource_manager.resource_isdir + resource_filename = __resource_manager.resource_filename + resource_stream = __resource_manager.resource_stream + resource_string = __resource_manager.resource_string + resource_listdir = __resource_manager.resource_listdir + set_extraction_path = __resource_manager.set_extraction_path + cleanup_resources = __resource_manager.cleanup_resources + + working_set = WorkingSet() + require = working_set.require + iter_entry_points = working_set.iter_entry_points + add_activation_listener = working_set.subscribe + run_script = working_set.run_script + run_main = run_script diff --git a/venv/lib/python3.11/site-packages/pkg_resources/api_tests.txt b/venv/lib/python3.11/site-packages/pkg_resources/api_tests.txt new file mode 100644 index 0000000..d72b85a --- /dev/null +++ b/venv/lib/python3.11/site-packages/pkg_resources/api_tests.txt @@ -0,0 +1,424 @@ +Pluggable Distributions of Python Software +========================================== + +Distributions +------------- + +A "Distribution" is a collection of files that represent a "Release" of a +"Project" as of a particular point in time, denoted by a +"Version":: + + >>> import sys, pkg_resources + >>> from pkg_resources import Distribution + >>> Distribution(project_name="Foo", version="1.2") + Foo 1.2 + +Distributions have a location, which can be a filename, URL, or really anything +else you care to use:: + + >>> dist = Distribution( + ... location="http://example.com/something", + ... project_name="Bar", version="0.9" + ... ) + + >>> dist + Bar 0.9 (http://example.com/something) + + +Distributions have various introspectable attributes:: + + >>> dist.location + 'http://example.com/something' + + >>> dist.project_name + 'Bar' + + >>> dist.version + '0.9' + + >>> dist.py_version == '{}.{}'.format(*sys.version_info) + True + + >>> print(dist.platform) + None + +Including various computed attributes:: + + >>> from pkg_resources import parse_version + >>> dist.parsed_version == parse_version(dist.version) + True + + >>> dist.key # case-insensitive form of the project name + 'bar' + +Distributions are compared (and hashed) by version first:: + + >>> Distribution(version='1.0') == Distribution(version='1.0') + True + >>> Distribution(version='1.0') == Distribution(version='1.1') + False + >>> Distribution(version='1.0') < Distribution(version='1.1') + True + +but also by project name (case-insensitive), platform, Python version, +location, etc.:: + + >>> Distribution(project_name="Foo",version="1.0") == \ + ... Distribution(project_name="Foo",version="1.0") + True + + >>> Distribution(project_name="Foo",version="1.0") == \ + ... Distribution(project_name="foo",version="1.0") + True + + >>> Distribution(project_name="Foo",version="1.0") == \ + ... Distribution(project_name="Foo",version="1.1") + False + + >>> Distribution(project_name="Foo",py_version="2.3",version="1.0") == \ + ... Distribution(project_name="Foo",py_version="2.4",version="1.0") + False + + >>> Distribution(location="spam",version="1.0") == \ + ... Distribution(location="spam",version="1.0") + True + + >>> Distribution(location="spam",version="1.0") == \ + ... Distribution(location="baz",version="1.0") + False + + + +Hash and compare distribution by prio/plat + +Get version from metadata +provider capabilities +egg_name() +as_requirement() +from_location, from_filename (w/path normalization) + +Releases may have zero or more "Requirements", which indicate +what releases of another project the release requires in order to +function. A Requirement names the other project, expresses some criteria +as to what releases of that project are acceptable, and lists any "Extras" +that the requiring release may need from that project. (An Extra is an +optional feature of a Release, that can only be used if its additional +Requirements are satisfied.) + + + +The Working Set +--------------- + +A collection of active distributions is called a Working Set. Note that a +Working Set can contain any importable distribution, not just pluggable ones. +For example, the Python standard library is an importable distribution that +will usually be part of the Working Set, even though it is not pluggable. +Similarly, when you are doing development work on a project, the files you are +editing are also a Distribution. (And, with a little attention to the +directory names used, and including some additional metadata, such a +"development distribution" can be made pluggable as well.) + + >>> from pkg_resources import WorkingSet + +A working set's entries are the sys.path entries that correspond to the active +distributions. By default, the working set's entries are the items on +``sys.path``:: + + >>> ws = WorkingSet() + >>> ws.entries == sys.path + True + +But you can also create an empty working set explicitly, and add distributions +to it:: + + >>> ws = WorkingSet([]) + >>> ws.add(dist) + >>> ws.entries + ['http://example.com/something'] + >>> dist in ws + True + >>> Distribution('foo',version="") in ws + False + +And you can iterate over its distributions:: + + >>> list(ws) + [Bar 0.9 (http://example.com/something)] + +Adding the same distribution more than once is a no-op:: + + >>> ws.add(dist) + >>> list(ws) + [Bar 0.9 (http://example.com/something)] + +For that matter, adding multiple distributions for the same project also does +nothing, because a working set can only hold one active distribution per +project -- the first one added to it:: + + >>> ws.add( + ... Distribution( + ... 'http://example.com/something', project_name="Bar", + ... version="7.2" + ... ) + ... ) + >>> list(ws) + [Bar 0.9 (http://example.com/something)] + +You can append a path entry to a working set using ``add_entry()``:: + + >>> ws.entries + ['http://example.com/something'] + >>> ws.add_entry(pkg_resources.__file__) + >>> ws.entries + ['http://example.com/something', '...pkg_resources...'] + +Multiple additions result in multiple entries, even if the entry is already in +the working set (because ``sys.path`` can contain the same entry more than +once):: + + >>> ws.add_entry(pkg_resources.__file__) + >>> ws.entries + ['...example.com...', '...pkg_resources...', '...pkg_resources...'] + +And you can specify the path entry a distribution was found under, using the +optional second parameter to ``add()``:: + + >>> ws = WorkingSet([]) + >>> ws.add(dist,"foo") + >>> ws.entries + ['foo'] + +But even if a distribution is found under multiple path entries, it still only +shows up once when iterating the working set: + + >>> ws.add_entry(ws.entries[0]) + >>> list(ws) + [Bar 0.9 (http://example.com/something)] + +You can ask a WorkingSet to ``find()`` a distribution matching a requirement:: + + >>> from pkg_resources import Requirement + >>> print(ws.find(Requirement.parse("Foo==1.0"))) # no match, return None + None + + >>> ws.find(Requirement.parse("Bar==0.9")) # match, return distribution + Bar 0.9 (http://example.com/something) + +Note that asking for a conflicting version of a distribution already in a +working set triggers a ``pkg_resources.VersionConflict`` error: + + >>> try: + ... ws.find(Requirement.parse("Bar==1.0")) + ... except pkg_resources.VersionConflict as exc: + ... print(str(exc)) + ... else: + ... raise AssertionError("VersionConflict was not raised") + (Bar 0.9 (http://example.com/something), Requirement.parse('Bar==1.0')) + +You can subscribe a callback function to receive notifications whenever a new +distribution is added to a working set. The callback is immediately invoked +once for each existing distribution in the working set, and then is called +again for new distributions added thereafter:: + + >>> def added(dist): print("Added %s" % dist) + >>> ws.subscribe(added) + Added Bar 0.9 + >>> foo12 = Distribution(project_name="Foo", version="1.2", location="f12") + >>> ws.add(foo12) + Added Foo 1.2 + +Note, however, that only the first distribution added for a given project name +will trigger a callback, even during the initial ``subscribe()`` callback:: + + >>> foo14 = Distribution(project_name="Foo", version="1.4", location="f14") + >>> ws.add(foo14) # no callback, because Foo 1.2 is already active + + >>> ws = WorkingSet([]) + >>> ws.add(foo12) + >>> ws.add(foo14) + >>> ws.subscribe(added) + Added Foo 1.2 + +And adding a callback more than once has no effect, either:: + + >>> ws.subscribe(added) # no callbacks + + # and no double-callbacks on subsequent additions, either + >>> just_a_test = Distribution(project_name="JustATest", version="0.99") + >>> ws.add(just_a_test) + Added JustATest 0.99 + + +Finding Plugins +--------------- + +``WorkingSet`` objects can be used to figure out what plugins in an +``Environment`` can be loaded without any resolution errors:: + + >>> from pkg_resources import Environment + + >>> plugins = Environment([]) # normally, a list of plugin directories + >>> plugins.add(foo12) + >>> plugins.add(foo14) + >>> plugins.add(just_a_test) + +In the simplest case, we just get the newest version of each distribution in +the plugin environment:: + + >>> ws = WorkingSet([]) + >>> ws.find_plugins(plugins) + ([JustATest 0.99, Foo 1.4 (f14)], {}) + +But if there's a problem with a version conflict or missing requirements, the +method falls back to older versions, and the error info dict will contain an +exception instance for each unloadable plugin:: + + >>> ws.add(foo12) # this will conflict with Foo 1.4 + >>> ws.find_plugins(plugins) + ([JustATest 0.99, Foo 1.2 (f12)], {Foo 1.4 (f14): VersionConflict(...)}) + +But if you disallow fallbacks, the failed plugin will be skipped instead of +trying older versions:: + + >>> ws.find_plugins(plugins, fallback=False) + ([JustATest 0.99], {Foo 1.4 (f14): VersionConflict(...)}) + + + +Platform Compatibility Rules +---------------------------- + +On the Mac, there are potential compatibility issues for modules compiled +on newer versions of macOS than what the user is running. Additionally, +macOS will soon have two platforms to contend with: Intel and PowerPC. + +Basic equality works as on other platforms:: + + >>> from pkg_resources import compatible_platforms as cp + >>> reqd = 'macosx-10.4-ppc' + >>> cp(reqd, reqd) + True + >>> cp("win32", reqd) + False + +Distributions made on other machine types are not compatible:: + + >>> cp("macosx-10.4-i386", reqd) + False + +Distributions made on earlier versions of the OS are compatible, as +long as they are from the same top-level version. The patchlevel version +number does not matter:: + + >>> cp("macosx-10.4-ppc", reqd) + True + >>> cp("macosx-10.3-ppc", reqd) + True + >>> cp("macosx-10.5-ppc", reqd) + False + >>> cp("macosx-9.5-ppc", reqd) + False + +Backwards compatibility for packages made via earlier versions of +setuptools is provided as well:: + + >>> cp("darwin-8.2.0-Power_Macintosh", reqd) + True + >>> cp("darwin-7.2.0-Power_Macintosh", reqd) + True + >>> cp("darwin-8.2.0-Power_Macintosh", "macosx-10.3-ppc") + False + + +Environment Markers +------------------- + + >>> from pkg_resources import invalid_marker as im, evaluate_marker as em + >>> import os + + >>> print(im("sys_platform")) + Expected marker operator, one of <=, <, !=, ==, >=, >, ~=, ===, in, not in + sys_platform + ^ + + >>> print(im("sys_platform==")) + Expected a marker variable or quoted string + sys_platform== + ^ + + >>> print(im("sys_platform=='win32'")) + False + + >>> print(im("sys=='x'")) + Expected a marker variable or quoted string + sys=='x' + ^ + + >>> print(im("(extra)")) + Expected marker operator, one of <=, <, !=, ==, >=, >, ~=, ===, in, not in + (extra) + ^ + + >>> print(im("(extra")) + Expected marker operator, one of <=, <, !=, ==, >=, >, ~=, ===, in, not in + (extra + ^ + + >>> print(im("os.open('foo')=='y'")) + Expected a marker variable or quoted string + os.open('foo')=='y' + ^ + + >>> print(im("'x'=='y' and os.open('foo')=='y'")) # no short-circuit! + Expected a marker variable or quoted string + 'x'=='y' and os.open('foo')=='y' + ^ + + >>> print(im("'x'=='x' or os.open('foo')=='y'")) # no short-circuit! + Expected a marker variable or quoted string + 'x'=='x' or os.open('foo')=='y' + ^ + + >>> print(im("r'x'=='x'")) + Expected a marker variable or quoted string + r'x'=='x' + ^ + + >>> print(im("'''x'''=='x'")) + Expected marker operator, one of <=, <, !=, ==, >=, >, ~=, ===, in, not in + '''x'''=='x' + ^ + + >>> print(im('"""x"""=="x"')) + Expected marker operator, one of <=, <, !=, ==, >=, >, ~=, ===, in, not in + """x"""=="x" + ^ + + >>> print(im(r"x\n=='x'")) + Expected a marker variable or quoted string + x\n=='x' + ^ + + >>> print(im("os.open=='y'")) + Expected a marker variable or quoted string + os.open=='y' + ^ + + >>> em("sys_platform=='win32'") == (sys.platform=='win32') + True + + >>> em("python_version >= '2.7'") + True + + >>> em("python_version > '2.6'") + True + + >>> im("implementation_name=='cpython'") + False + + >>> im("platform_python_implementation=='CPython'") + False + + >>> im("implementation_version=='3.5.1'") + False diff --git a/venv/lib/python3.11/site-packages/pkg_resources/py.typed b/venv/lib/python3.11/site-packages/pkg_resources/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/pkg_resources/tests/__init__.py b/venv/lib/python3.11/site-packages/pkg_resources/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package-source/setup.cfg b/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package-source/setup.cfg new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py b/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py new file mode 100644 index 0000000..ce90806 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py @@ -0,0 +1,7 @@ +import setuptools + +setuptools.setup( + name="my-test-package", + version="1.0", + zip_safe=True, +) diff --git a/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package-zip/my-test-package.zip b/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package-zip/my-test-package.zip new file mode 100644 index 0000000..81f9a01 Binary files /dev/null and b/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package-zip/my-test-package.zip differ diff --git a/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/PKG-INFO b/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/PKG-INFO new file mode 100644 index 0000000..7328e3f --- /dev/null +++ b/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/PKG-INFO @@ -0,0 +1,10 @@ +Metadata-Version: 1.0 +Name: my-test-package +Version: 1.0 +Summary: UNKNOWN +Home-page: UNKNOWN +Author: UNKNOWN +Author-email: UNKNOWN +License: UNKNOWN +Description: UNKNOWN +Platform: UNKNOWN diff --git a/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/SOURCES.txt b/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/SOURCES.txt new file mode 100644 index 0000000..3c4ee16 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/SOURCES.txt @@ -0,0 +1,7 @@ +setup.cfg +setup.py +my_test_package.egg-info/PKG-INFO +my_test_package.egg-info/SOURCES.txt +my_test_package.egg-info/dependency_links.txt +my_test_package.egg-info/top_level.txt +my_test_package.egg-info/zip-safe \ No newline at end of file diff --git a/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/dependency_links.txt b/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/top_level.txt b/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/top_level.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/top_level.txt @@ -0,0 +1 @@ + diff --git a/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/zip-safe b/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/zip-safe new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/zip-safe @@ -0,0 +1 @@ + diff --git a/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package_zipped-egg/my_test_package-1.0-py3.7.egg b/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package_zipped-egg/my_test_package-1.0-py3.7.egg new file mode 100644 index 0000000..5115b89 Binary files /dev/null and b/venv/lib/python3.11/site-packages/pkg_resources/tests/data/my-test-package_zipped-egg/my_test_package-1.0-py3.7.egg differ diff --git a/venv/lib/python3.11/site-packages/pkg_resources/tests/test_find_distributions.py b/venv/lib/python3.11/site-packages/pkg_resources/tests/test_find_distributions.py new file mode 100644 index 0000000..301b36d --- /dev/null +++ b/venv/lib/python3.11/site-packages/pkg_resources/tests/test_find_distributions.py @@ -0,0 +1,56 @@ +import shutil +from pathlib import Path + +import pytest + +import pkg_resources + +TESTS_DATA_DIR = Path(__file__).parent / 'data' + + +class TestFindDistributions: + @pytest.fixture + def target_dir(self, tmpdir): + target_dir = tmpdir.mkdir('target') + # place a .egg named directory in the target that is not an egg: + target_dir.mkdir('not.an.egg') + return target_dir + + def test_non_egg_dir_named_egg(self, target_dir): + dists = pkg_resources.find_distributions(str(target_dir)) + assert not list(dists) + + def test_standalone_egg_directory(self, target_dir): + shutil.copytree( + TESTS_DATA_DIR / 'my-test-package_unpacked-egg', + target_dir, + dirs_exist_ok=True, + ) + dists = pkg_resources.find_distributions(str(target_dir)) + assert [dist.project_name for dist in dists] == ['my-test-package'] + dists = pkg_resources.find_distributions(str(target_dir), only=True) + assert not list(dists) + + def test_zipped_egg(self, target_dir): + shutil.copytree( + TESTS_DATA_DIR / 'my-test-package_zipped-egg', + target_dir, + dirs_exist_ok=True, + ) + dists = pkg_resources.find_distributions(str(target_dir)) + assert [dist.project_name for dist in dists] == ['my-test-package'] + dists = pkg_resources.find_distributions(str(target_dir), only=True) + assert not list(dists) + + def test_zipped_sdist_one_level_removed(self, target_dir): + shutil.copytree( + TESTS_DATA_DIR / 'my-test-package-zip', target_dir, dirs_exist_ok=True + ) + dists = pkg_resources.find_distributions( + str(target_dir / "my-test-package.zip") + ) + assert [dist.project_name for dist in dists] == ['my-test-package'] + dists = pkg_resources.find_distributions( + str(target_dir / "my-test-package.zip"), only=True + ) + assert not list(dists) diff --git a/venv/lib/python3.11/site-packages/pkg_resources/tests/test_integration_zope_interface.py b/venv/lib/python3.11/site-packages/pkg_resources/tests/test_integration_zope_interface.py new file mode 100644 index 0000000..4e37c34 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pkg_resources/tests/test_integration_zope_interface.py @@ -0,0 +1,54 @@ +import platform +from inspect import cleandoc + +import jaraco.path +import pytest + +pytestmark = pytest.mark.integration + + +# For the sake of simplicity this test uses fixtures defined in +# `setuptools.test.fixtures`, +# and it also exercise conditions considered deprecated... +# So if needed this test can be deleted. +@pytest.mark.skipif( + platform.system() != "Linux", + reason="only demonstrated to fail on Linux in #4399", +) +def test_interop_pkg_resources_iter_entry_points(tmp_path, venv): + """ + Importing pkg_resources.iter_entry_points on console_scripts + seems to cause trouble with zope-interface, when deprecates installation method + is used. See #4399. + """ + project = { + "pkg": { + "foo.py": cleandoc( + """ + from pkg_resources import iter_entry_points + + def bar(): + print("Print me if you can") + """ + ), + "setup.py": cleandoc( + """ + from setuptools import setup, find_packages + + setup( + install_requires=["zope-interface==6.4.post2"], + entry_points={ + "console_scripts": [ + "foo=foo:bar", + ], + }, + ) + """ + ), + } + } + jaraco.path.build(project, prefix=tmp_path) + cmd = ["pip", "install", "-e", ".", "--no-use-pep517"] + venv.run(cmd, cwd=tmp_path / "pkg") # Needs this version of pkg_resources installed + out = venv.run(["foo"]) + assert "Print me if you can" in out diff --git a/venv/lib/python3.11/site-packages/pkg_resources/tests/test_markers.py b/venv/lib/python3.11/site-packages/pkg_resources/tests/test_markers.py new file mode 100644 index 0000000..9306d5b --- /dev/null +++ b/venv/lib/python3.11/site-packages/pkg_resources/tests/test_markers.py @@ -0,0 +1,8 @@ +from unittest import mock + +from pkg_resources import evaluate_marker + + +@mock.patch('platform.python_version', return_value='2.7.10') +def test_ordering(python_version_mock): + assert evaluate_marker("python_full_version > '2.7.3'") is True diff --git a/venv/lib/python3.11/site-packages/pkg_resources/tests/test_pkg_resources.py b/venv/lib/python3.11/site-packages/pkg_resources/tests/test_pkg_resources.py new file mode 100644 index 0000000..cfc9b16 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pkg_resources/tests/test_pkg_resources.py @@ -0,0 +1,485 @@ +from __future__ import annotations + +import builtins +import datetime +import inspect +import os +import plistlib +import stat +import subprocess +import sys +import tempfile +import zipfile +from unittest import mock + +import pytest + +import pkg_resources +from pkg_resources import DistInfoDistribution, Distribution, EggInfoDistribution + +import distutils.command.install_egg_info +import distutils.dist + + +class EggRemover(str): + def __call__(self): + if self in sys.path: + sys.path.remove(self) + if os.path.exists(self): + os.remove(self) + + +class TestZipProvider: + finalizers: list[EggRemover] = [] + + ref_time = datetime.datetime(2013, 5, 12, 13, 25, 0) + "A reference time for a file modification" + + @classmethod + def setup_class(cls): + "create a zip egg and add it to sys.path" + egg = tempfile.NamedTemporaryFile(suffix='.egg', delete=False) + zip_egg = zipfile.ZipFile(egg, 'w') + zip_info = zipfile.ZipInfo() + zip_info.filename = 'mod.py' + zip_info.date_time = cls.ref_time.timetuple() + zip_egg.writestr(zip_info, 'x = 3\n') + zip_info = zipfile.ZipInfo() + zip_info.filename = 'data.dat' + zip_info.date_time = cls.ref_time.timetuple() + zip_egg.writestr(zip_info, 'hello, world!') + zip_info = zipfile.ZipInfo() + zip_info.filename = 'subdir/mod2.py' + zip_info.date_time = cls.ref_time.timetuple() + zip_egg.writestr(zip_info, 'x = 6\n') + zip_info = zipfile.ZipInfo() + zip_info.filename = 'subdir/data2.dat' + zip_info.date_time = cls.ref_time.timetuple() + zip_egg.writestr(zip_info, 'goodbye, world!') + zip_egg.close() + egg.close() + + sys.path.append(egg.name) + subdir = os.path.join(egg.name, 'subdir') + sys.path.append(subdir) + cls.finalizers.append(EggRemover(subdir)) + cls.finalizers.append(EggRemover(egg.name)) + + @classmethod + def teardown_class(cls): + for finalizer in cls.finalizers: + finalizer() + + def test_resource_listdir(self): + import mod # pyright: ignore[reportMissingImports] # Temporary package for test + + zp = pkg_resources.ZipProvider(mod) + + expected_root = ['data.dat', 'mod.py', 'subdir'] + assert sorted(zp.resource_listdir('')) == expected_root + + expected_subdir = ['data2.dat', 'mod2.py'] + assert sorted(zp.resource_listdir('subdir')) == expected_subdir + assert sorted(zp.resource_listdir('subdir/')) == expected_subdir + + assert zp.resource_listdir('nonexistent') == [] + assert zp.resource_listdir('nonexistent/') == [] + + import mod2 # pyright: ignore[reportMissingImports] # Temporary package for test + + zp2 = pkg_resources.ZipProvider(mod2) + + assert sorted(zp2.resource_listdir('')) == expected_subdir + + assert zp2.resource_listdir('subdir') == [] + assert zp2.resource_listdir('subdir/') == [] + + def test_resource_filename_rewrites_on_change(self): + """ + If a previous call to get_resource_filename has saved the file, but + the file has been subsequently mutated with different file of the + same size and modification time, it should not be overwritten on a + subsequent call to get_resource_filename. + """ + import mod # pyright: ignore[reportMissingImports] # Temporary package for test + + manager = pkg_resources.ResourceManager() + zp = pkg_resources.ZipProvider(mod) + filename = zp.get_resource_filename(manager, 'data.dat') + actual = datetime.datetime.fromtimestamp(os.stat(filename).st_mtime) + assert actual == self.ref_time + f = open(filename, 'w', encoding="utf-8") + f.write('hello, world?') + f.close() + ts = self.ref_time.timestamp() + os.utime(filename, (ts, ts)) + filename = zp.get_resource_filename(manager, 'data.dat') + with open(filename, encoding="utf-8") as f: + assert f.read() == 'hello, world!' + manager.cleanup_resources() + + +class TestResourceManager: + def test_get_cache_path(self): + mgr = pkg_resources.ResourceManager() + path = mgr.get_cache_path('foo') + type_ = str(type(path)) + message = "Unexpected type from get_cache_path: " + type_ + assert isinstance(path, str), message + + def test_get_cache_path_race(self, tmpdir): + # Patch to os.path.isdir to create a race condition + def patched_isdir(dirname, unpatched_isdir=pkg_resources.isdir): + patched_isdir.dirnames.append(dirname) + + was_dir = unpatched_isdir(dirname) + if not was_dir: + os.makedirs(dirname) + return was_dir + + patched_isdir.dirnames = [] + + # Get a cache path with a "race condition" + mgr = pkg_resources.ResourceManager() + mgr.set_extraction_path(str(tmpdir)) + + archive_name = os.sep.join(('foo', 'bar', 'baz')) + with mock.patch.object(pkg_resources, 'isdir', new=patched_isdir): + mgr.get_cache_path(archive_name) + + # Because this test relies on the implementation details of this + # function, these assertions are a sentinel to ensure that the + # test suite will not fail silently if the implementation changes. + called_dirnames = patched_isdir.dirnames + assert len(called_dirnames) == 2 + assert called_dirnames[0].split(os.sep)[-2:] == ['foo', 'bar'] + assert called_dirnames[1].split(os.sep)[-1:] == ['foo'] + + """ + Tests to ensure that pkg_resources runs independently from setuptools. + """ + + def test_setuptools_not_imported(self): + """ + In a separate Python environment, import pkg_resources and assert + that action doesn't cause setuptools to be imported. + """ + lines = ( + 'import pkg_resources', + 'import sys', + ('assert "setuptools" not in sys.modules, "setuptools was imported"'), + ) + cmd = [sys.executable, '-c', '; '.join(lines)] + subprocess.check_call(cmd) + + +def make_test_distribution(metadata_path, metadata): + """ + Make a test Distribution object, and return it. + + :param metadata_path: the path to the metadata file that should be + created. This should be inside a distribution directory that should + also be created. For example, an argument value might end with + ".dist-info/METADATA". + :param metadata: the desired contents of the metadata file, as bytes. + """ + dist_dir = os.path.dirname(metadata_path) + os.mkdir(dist_dir) + with open(metadata_path, 'wb') as f: + f.write(metadata) + dists = list(pkg_resources.distributions_from_metadata(dist_dir)) + (dist,) = dists + + return dist + + +def test_get_metadata__bad_utf8(tmpdir): + """ + Test a metadata file with bytes that can't be decoded as utf-8. + """ + filename = 'METADATA' + # Convert the tmpdir LocalPath object to a string before joining. + metadata_path = os.path.join(str(tmpdir), 'foo.dist-info', filename) + # Encode a non-ascii string with the wrong encoding (not utf-8). + metadata = 'née'.encode('iso-8859-1') + dist = make_test_distribution(metadata_path, metadata=metadata) + + with pytest.raises(UnicodeDecodeError) as excinfo: + dist.get_metadata(filename) + + exc = excinfo.value + actual = str(exc) + expected = ( + # The error message starts with "'utf-8' codec ..." However, the + # spelling of "utf-8" can vary (e.g. "utf8") so we don't include it + "codec can't decode byte 0xe9 in position 1: " + 'invalid continuation byte in METADATA file at path: ' + ) + assert expected in actual, f'actual: {actual}' + assert actual.endswith(metadata_path), f'actual: {actual}' + + +def make_distribution_no_version(tmpdir, basename): + """ + Create a distribution directory with no file containing the version. + """ + dist_dir = tmpdir / basename + dist_dir.ensure_dir() + # Make the directory non-empty so distributions_from_metadata() + # will detect it and yield it. + dist_dir.join('temp.txt').ensure() + + dists = list(pkg_resources.distributions_from_metadata(dist_dir)) + assert len(dists) == 1 + (dist,) = dists + + return dist, dist_dir + + +@pytest.mark.parametrize( + ("suffix", "expected_filename", "expected_dist_type"), + [ + ('egg-info', 'PKG-INFO', EggInfoDistribution), + ('dist-info', 'METADATA', DistInfoDistribution), + ], +) +@pytest.mark.xfail( + sys.version_info[:2] == (3, 12) and sys.version_info.releaselevel != 'final', + reason="https://github.com/python/cpython/issues/103632", +) +def test_distribution_version_missing( + tmpdir, suffix, expected_filename, expected_dist_type +): + """ + Test Distribution.version when the "Version" header is missing. + """ + basename = f'foo.{suffix}' + dist, dist_dir = make_distribution_no_version(tmpdir, basename) + + expected_text = ( + f"Missing 'Version:' header and/or {expected_filename} file at path: " + ) + metadata_path = os.path.join(dist_dir, expected_filename) + + # Now check the exception raised when the "version" attribute is accessed. + with pytest.raises(ValueError) as excinfo: + dist.version + + err = str(excinfo.value) + # Include a string expression after the assert so the full strings + # will be visible for inspection on failure. + assert expected_text in err, str((expected_text, err)) + + # Also check the args passed to the ValueError. + msg, dist = excinfo.value.args + assert expected_text in msg + # Check that the message portion contains the path. + assert metadata_path in msg, str((metadata_path, msg)) + assert type(dist) is expected_dist_type + + +@pytest.mark.xfail( + sys.version_info[:2] == (3, 12) and sys.version_info.releaselevel != 'final', + reason="https://github.com/python/cpython/issues/103632", +) +def test_distribution_version_missing_undetected_path(): + """ + Test Distribution.version when the "Version" header is missing and + the path can't be detected. + """ + # Create a Distribution object with no metadata argument, which results + # in an empty metadata provider. + dist = Distribution('/foo') + with pytest.raises(ValueError) as excinfo: + dist.version + + msg, dist = excinfo.value.args + expected = ( + "Missing 'Version:' header and/or PKG-INFO file at path: [could not detect]" + ) + assert msg == expected + + +@pytest.mark.parametrize('only', [False, True]) +def test_dist_info_is_not_dir(tmp_path, only): + """Test path containing a file with dist-info extension.""" + dist_info = tmp_path / 'foobar.dist-info' + dist_info.touch() + assert not pkg_resources.dist_factory(str(tmp_path), str(dist_info), only) + + +def test_macos_vers_fallback(monkeypatch, tmp_path): + """Regression test for pkg_resources._macos_vers""" + orig_open = builtins.open + + # Pretend we need to use the plist file + monkeypatch.setattr('platform.mac_ver', mock.Mock(return_value=('', (), ''))) + + # Create fake content for the fake plist file + with open(tmp_path / 'fake.plist', 'wb') as fake_file: + plistlib.dump({"ProductVersion": "11.4"}, fake_file) + + # Pretend the fake file exists + monkeypatch.setattr('os.path.exists', mock.Mock(return_value=True)) + + def fake_open(file, *args, **kwargs): + return orig_open(tmp_path / 'fake.plist', *args, **kwargs) + + # Ensure that the _macos_vers works correctly + with mock.patch('builtins.open', mock.Mock(side_effect=fake_open)) as m: + pkg_resources._macos_vers.cache_clear() + assert pkg_resources._macos_vers() == ["11", "4"] + pkg_resources._macos_vers.cache_clear() + + m.assert_called() + + +class TestDeepVersionLookupDistutils: + @pytest.fixture + def env(self, tmpdir): + """ + Create a package environment, similar to a virtualenv, + in which packages are installed. + """ + + class Environment(str): + pass + + env = Environment(tmpdir) + tmpdir.chmod(stat.S_IRWXU) + subs = 'home', 'lib', 'scripts', 'data', 'egg-base' + env.paths = dict((dirname, str(tmpdir / dirname)) for dirname in subs) + list(map(os.mkdir, env.paths.values())) + return env + + def create_foo_pkg(self, env, version): + """ + Create a foo package installed (distutils-style) to env.paths['lib'] + as version. + """ + ld = "This package has unicode metadata! ❄" + attrs = dict(name='foo', version=version, long_description=ld) + dist = distutils.dist.Distribution(attrs) + iei_cmd = distutils.command.install_egg_info.install_egg_info(dist) + iei_cmd.initialize_options() + iei_cmd.install_dir = env.paths['lib'] + iei_cmd.finalize_options() + iei_cmd.run() + + def test_version_resolved_from_egg_info(self, env): + version = '1.11.0.dev0+2329eae' + self.create_foo_pkg(env, version) + + # this requirement parsing will raise a VersionConflict unless the + # .egg-info file is parsed (see #419 on BitBucket) + req = pkg_resources.Requirement.parse('foo>=1.9') + dist = pkg_resources.WorkingSet([env.paths['lib']]).find(req) + assert dist.version == version + + @pytest.mark.parametrize( + ("unnormalized", "normalized"), + [ + ('foo', 'foo'), + ('foo/', 'foo'), + ('foo/bar', 'foo/bar'), + ('foo/bar/', 'foo/bar'), + ], + ) + def test_normalize_path_trailing_sep(self, unnormalized, normalized): + """Ensure the trailing slash is cleaned for path comparison. + + See pypa/setuptools#1519. + """ + result_from_unnormalized = pkg_resources.normalize_path(unnormalized) + result_from_normalized = pkg_resources.normalize_path(normalized) + assert result_from_unnormalized == result_from_normalized + + @pytest.mark.skipif( + os.path.normcase('A') != os.path.normcase('a'), + reason='Testing case-insensitive filesystems.', + ) + @pytest.mark.parametrize( + ("unnormalized", "normalized"), + [ + ('MiXeD/CasE', 'mixed/case'), + ], + ) + def test_normalize_path_normcase(self, unnormalized, normalized): + """Ensure mixed case is normalized on case-insensitive filesystems.""" + result_from_unnormalized = pkg_resources.normalize_path(unnormalized) + result_from_normalized = pkg_resources.normalize_path(normalized) + assert result_from_unnormalized == result_from_normalized + + @pytest.mark.skipif( + os.path.sep != '\\', + reason='Testing systems using backslashes as path separators.', + ) + @pytest.mark.parametrize( + ("unnormalized", "expected"), + [ + ('forward/slash', 'forward\\slash'), + ('forward/slash/', 'forward\\slash'), + ('backward\\slash\\', 'backward\\slash'), + ], + ) + def test_normalize_path_backslash_sep(self, unnormalized, expected): + """Ensure path seps are cleaned on backslash path sep systems.""" + result = pkg_resources.normalize_path(unnormalized) + assert result.endswith(expected) + + +class TestWorkdirRequire: + def fake_site_packages(self, tmp_path, monkeypatch, dist_files): + site_packages = tmp_path / "site-packages" + site_packages.mkdir() + for file, content in self.FILES.items(): + path = site_packages / file + path.parent.mkdir(exist_ok=True, parents=True) + path.write_text(inspect.cleandoc(content), encoding="utf-8") + + monkeypatch.setattr(sys, "path", [site_packages]) + return os.fspath(site_packages) + + FILES = { + "pkg1_mod-1.2.3.dist-info/METADATA": """ + Metadata-Version: 2.4 + Name: pkg1.mod + Version: 1.2.3 + """, + "pkg2.mod-0.42.dist-info/METADATA": """ + Metadata-Version: 2.1 + Name: pkg2.mod + Version: 0.42 + """, + "pkg3_mod.egg-info/PKG-INFO": """ + Name: pkg3.mod + Version: 1.2.3.4 + """, + "pkg4.mod.egg-info/PKG-INFO": """ + Name: pkg4.mod + Version: 0.42.1 + """, + } + + @pytest.mark.parametrize( + ("version", "requirement"), + [ + ("1.2.3", "pkg1.mod>=1"), + ("0.42", "pkg2.mod>=0.4"), + ("1.2.3.4", "pkg3.mod<=2"), + ("0.42.1", "pkg4.mod>0.2,<1"), + ], + ) + def test_require_non_normalised_name( + self, tmp_path, monkeypatch, version, requirement + ): + # https://github.com/pypa/setuptools/issues/4853 + site_packages = self.fake_site_packages(tmp_path, monkeypatch, self.FILES) + ws = pkg_resources.WorkingSet([site_packages]) + + for req in [requirement, requirement.replace(".", "-")]: + [dist] = ws.require(req) + assert dist.version == version + assert os.path.samefile( + os.path.commonpath([dist.location, site_packages]), site_packages + ) diff --git a/venv/lib/python3.11/site-packages/pkg_resources/tests/test_resources.py b/venv/lib/python3.11/site-packages/pkg_resources/tests/test_resources.py new file mode 100644 index 0000000..70436c0 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pkg_resources/tests/test_resources.py @@ -0,0 +1,869 @@ +import itertools +import os +import platform +import string +import sys + +import pytest +from packaging.specifiers import SpecifierSet + +import pkg_resources +from pkg_resources import ( + Distribution, + EntryPoint, + Requirement, + VersionConflict, + WorkingSet, + parse_requirements, + parse_version, + safe_name, + safe_version, +) + + +# from Python 3.6 docs. Available from itertools on Python 3.10 +def pairwise(iterable): + "s -> (s0,s1), (s1,s2), (s2, s3), ..." + a, b = itertools.tee(iterable) + next(b, None) + return zip(a, b) + + +class Metadata(pkg_resources.EmptyProvider): + """Mock object to return metadata as if from an on-disk distribution""" + + def __init__(self, *pairs) -> None: + self.metadata = dict(pairs) + + def has_metadata(self, name) -> bool: + return name in self.metadata + + def get_metadata(self, name): + return self.metadata[name] + + def get_metadata_lines(self, name): + return pkg_resources.yield_lines(self.get_metadata(name)) + + +dist_from_fn = pkg_resources.Distribution.from_filename + + +class TestDistro: + def testCollection(self): + # empty path should produce no distributions + ad = pkg_resources.Environment([], platform=None, python=None) + assert list(ad) == [] + assert ad['FooPkg'] == [] + ad.add(dist_from_fn("FooPkg-1.3_1.egg")) + ad.add(dist_from_fn("FooPkg-1.4-py2.4-win32.egg")) + ad.add(dist_from_fn("FooPkg-1.2-py2.4.egg")) + + # Name is in there now + assert ad['FooPkg'] + # But only 1 package + assert list(ad) == ['foopkg'] + + # Distributions sort by version + expected = ['1.4', '1.3-1', '1.2'] + assert [dist.version for dist in ad['FooPkg']] == expected + + # Removing a distribution leaves sequence alone + ad.remove(ad['FooPkg'][1]) + assert [dist.version for dist in ad['FooPkg']] == ['1.4', '1.2'] + + # And inserting adds them in order + ad.add(dist_from_fn("FooPkg-1.9.egg")) + assert [dist.version for dist in ad['FooPkg']] == ['1.9', '1.4', '1.2'] + + ws = WorkingSet([]) + foo12 = dist_from_fn("FooPkg-1.2-py2.4.egg") + foo14 = dist_from_fn("FooPkg-1.4-py2.4-win32.egg") + (req,) = parse_requirements("FooPkg>=1.3") + + # Nominal case: no distros on path, should yield all applicable + assert ad.best_match(req, ws).version == '1.9' + # If a matching distro is already installed, should return only that + ws.add(foo14) + assert ad.best_match(req, ws).version == '1.4' + + # If the first matching distro is unsuitable, it's a version conflict + ws = WorkingSet([]) + ws.add(foo12) + ws.add(foo14) + with pytest.raises(VersionConflict): + ad.best_match(req, ws) + + # If more than one match on the path, the first one takes precedence + ws = WorkingSet([]) + ws.add(foo14) + ws.add(foo12) + ws.add(foo14) + assert ad.best_match(req, ws).version == '1.4' + + def checkFooPkg(self, d): + assert d.project_name == "FooPkg" + assert d.key == "foopkg" + assert d.version == "1.3.post1" + assert d.py_version == "2.4" + assert d.platform == "win32" + assert d.parsed_version == parse_version("1.3-1") + + def testDistroBasics(self): + d = Distribution( + "/some/path", + project_name="FooPkg", + version="1.3-1", + py_version="2.4", + platform="win32", + ) + self.checkFooPkg(d) + + d = Distribution("/some/path") + assert d.py_version == f'{sys.version_info.major}.{sys.version_info.minor}' + assert d.platform is None + + def testDistroParse(self): + d = dist_from_fn("FooPkg-1.3.post1-py2.4-win32.egg") + self.checkFooPkg(d) + d = dist_from_fn("FooPkg-1.3.post1-py2.4-win32.egg-info") + self.checkFooPkg(d) + + def testDistroMetadata(self): + d = Distribution( + "/some/path", + project_name="FooPkg", + py_version="2.4", + platform="win32", + metadata=Metadata(('PKG-INFO', "Metadata-Version: 1.0\nVersion: 1.3-1\n")), + ) + self.checkFooPkg(d) + + def distRequires(self, txt): + return Distribution("/foo", metadata=Metadata(('depends.txt', txt))) + + def checkRequires(self, dist, txt, extras=()): + assert list(dist.requires(extras)) == list(parse_requirements(txt)) + + def testDistroDependsSimple(self): + for v in "Twisted>=1.5", "Twisted>=1.5\nZConfig>=2.0": + self.checkRequires(self.distRequires(v), v) + + needs_object_dir = pytest.mark.skipif( + not hasattr(object, '__dir__'), + reason='object.__dir__ necessary for self.__dir__ implementation', + ) + + def test_distribution_dir(self): + d = pkg_resources.Distribution() + dir(d) + + @needs_object_dir + def test_distribution_dir_includes_provider_dir(self): + d = pkg_resources.Distribution() + before = d.__dir__() + assert 'test_attr' not in before + d._provider.test_attr = None + after = d.__dir__() + assert len(after) == len(before) + 1 + assert 'test_attr' in after + + @needs_object_dir + def test_distribution_dir_ignores_provider_dir_leading_underscore(self): + d = pkg_resources.Distribution() + before = d.__dir__() + assert '_test_attr' not in before + d._provider._test_attr = None + after = d.__dir__() + assert len(after) == len(before) + assert '_test_attr' not in after + + def testResolve(self): + ad = pkg_resources.Environment([]) + ws = WorkingSet([]) + # Resolving no requirements -> nothing to install + assert list(ws.resolve([], ad)) == [] + # Request something not in the collection -> DistributionNotFound + with pytest.raises(pkg_resources.DistributionNotFound): + ws.resolve(parse_requirements("Foo"), ad) + + Foo = Distribution.from_filename( + "/foo_dir/Foo-1.2.egg", + metadata=Metadata(('depends.txt', "[bar]\nBaz>=2.0")), + ) + ad.add(Foo) + ad.add(Distribution.from_filename("Foo-0.9.egg")) + + # Request thing(s) that are available -> list to activate + for i in range(3): + targets = list(ws.resolve(parse_requirements("Foo"), ad)) + assert targets == [Foo] + list(map(ws.add, targets)) + with pytest.raises(VersionConflict): + ws.resolve(parse_requirements("Foo==0.9"), ad) + ws = WorkingSet([]) # reset + + # Request an extra that causes an unresolved dependency for "Baz" + with pytest.raises(pkg_resources.DistributionNotFound): + ws.resolve(parse_requirements("Foo[bar]"), ad) + Baz = Distribution.from_filename( + "/foo_dir/Baz-2.1.egg", metadata=Metadata(('depends.txt', "Foo")) + ) + ad.add(Baz) + + # Activation list now includes resolved dependency + assert list(ws.resolve(parse_requirements("Foo[bar]"), ad)) == [Foo, Baz] + # Requests for conflicting versions produce VersionConflict + with pytest.raises(VersionConflict) as vc: + ws.resolve(parse_requirements("Foo==1.2\nFoo!=1.2"), ad) + + msg = 'Foo 0.9 is installed but Foo==1.2 is required' + assert vc.value.report() == msg + + def test_environment_marker_evaluation_negative(self): + """Environment markers are evaluated at resolution time.""" + ad = pkg_resources.Environment([]) + ws = WorkingSet([]) + res = ws.resolve(parse_requirements("Foo;python_version<'2'"), ad) + assert list(res) == [] + + def test_environment_marker_evaluation_positive(self): + ad = pkg_resources.Environment([]) + ws = WorkingSet([]) + Foo = Distribution.from_filename("/foo_dir/Foo-1.2.dist-info") + ad.add(Foo) + res = ws.resolve(parse_requirements("Foo;python_version>='2'"), ad) + assert list(res) == [Foo] + + def test_environment_marker_evaluation_called(self): + """ + If one package foo requires bar without any extras, + markers should pass for bar without extras. + """ + (parent_req,) = parse_requirements("foo") + (req,) = parse_requirements("bar;python_version>='2'") + req_extras = pkg_resources._ReqExtras({req: parent_req.extras}) + assert req_extras.markers_pass(req) + + (parent_req,) = parse_requirements("foo[]") + (req,) = parse_requirements("bar;python_version>='2'") + req_extras = pkg_resources._ReqExtras({req: parent_req.extras}) + assert req_extras.markers_pass(req) + + def test_marker_evaluation_with_extras(self): + """Extras are also evaluated as markers at resolution time.""" + ad = pkg_resources.Environment([]) + ws = WorkingSet([]) + Foo = Distribution.from_filename( + "/foo_dir/Foo-1.2.dist-info", + metadata=Metadata(( + "METADATA", + "Provides-Extra: baz\nRequires-Dist: quux; extra=='baz'", + )), + ) + ad.add(Foo) + assert list(ws.resolve(parse_requirements("Foo"), ad)) == [Foo] + quux = Distribution.from_filename("/foo_dir/quux-1.0.dist-info") + ad.add(quux) + res = list(ws.resolve(parse_requirements("Foo[baz]"), ad)) + assert res == [Foo, quux] + + def test_marker_evaluation_with_extras_normlized(self): + """Extras are also evaluated as markers at resolution time.""" + ad = pkg_resources.Environment([]) + ws = WorkingSet([]) + Foo = Distribution.from_filename( + "/foo_dir/Foo-1.2.dist-info", + metadata=Metadata(( + "METADATA", + "Provides-Extra: baz-lightyear\n" + "Requires-Dist: quux; extra=='baz-lightyear'", + )), + ) + ad.add(Foo) + assert list(ws.resolve(parse_requirements("Foo"), ad)) == [Foo] + quux = Distribution.from_filename("/foo_dir/quux-1.0.dist-info") + ad.add(quux) + res = list(ws.resolve(parse_requirements("Foo[baz-lightyear]"), ad)) + assert res == [Foo, quux] + + def test_marker_evaluation_with_multiple_extras(self): + ad = pkg_resources.Environment([]) + ws = WorkingSet([]) + Foo = Distribution.from_filename( + "/foo_dir/Foo-1.2.dist-info", + metadata=Metadata(( + "METADATA", + "Provides-Extra: baz\n" + "Requires-Dist: quux; extra=='baz'\n" + "Provides-Extra: bar\n" + "Requires-Dist: fred; extra=='bar'\n", + )), + ) + ad.add(Foo) + quux = Distribution.from_filename("/foo_dir/quux-1.0.dist-info") + ad.add(quux) + fred = Distribution.from_filename("/foo_dir/fred-0.1.dist-info") + ad.add(fred) + res = list(ws.resolve(parse_requirements("Foo[baz,bar]"), ad)) + assert sorted(res) == [fred, quux, Foo] + + def test_marker_evaluation_with_extras_loop(self): + ad = pkg_resources.Environment([]) + ws = WorkingSet([]) + a = Distribution.from_filename( + "/foo_dir/a-0.2.dist-info", + metadata=Metadata(("METADATA", "Requires-Dist: c[a]")), + ) + b = Distribution.from_filename( + "/foo_dir/b-0.3.dist-info", + metadata=Metadata(("METADATA", "Requires-Dist: c[b]")), + ) + c = Distribution.from_filename( + "/foo_dir/c-1.0.dist-info", + metadata=Metadata(( + "METADATA", + "Provides-Extra: a\n" + "Requires-Dist: b;extra=='a'\n" + "Provides-Extra: b\n" + "Requires-Dist: foo;extra=='b'", + )), + ) + foo = Distribution.from_filename("/foo_dir/foo-0.1.dist-info") + for dist in (a, b, c, foo): + ad.add(dist) + res = list(ws.resolve(parse_requirements("a"), ad)) + assert res == [a, c, b, foo] + + @pytest.mark.xfail( + sys.version_info[:2] == (3, 12) and sys.version_info.releaselevel != 'final', + reason="https://github.com/python/cpython/issues/103632", + ) + def testDistroDependsOptions(self): + d = self.distRequires( + """ + Twisted>=1.5 + [docgen] + ZConfig>=2.0 + docutils>=0.3 + [fastcgi] + fcgiapp>=0.1""" + ) + self.checkRequires(d, "Twisted>=1.5") + self.checkRequires( + d, "Twisted>=1.5 ZConfig>=2.0 docutils>=0.3".split(), ["docgen"] + ) + self.checkRequires(d, "Twisted>=1.5 fcgiapp>=0.1".split(), ["fastcgi"]) + self.checkRequires( + d, + "Twisted>=1.5 ZConfig>=2.0 docutils>=0.3 fcgiapp>=0.1".split(), + ["docgen", "fastcgi"], + ) + self.checkRequires( + d, + "Twisted>=1.5 fcgiapp>=0.1 ZConfig>=2.0 docutils>=0.3".split(), + ["fastcgi", "docgen"], + ) + with pytest.raises(pkg_resources.UnknownExtra): + d.requires(["foo"]) + + +class TestWorkingSet: + def test_find_conflicting(self): + ws = WorkingSet([]) + Foo = Distribution.from_filename("/foo_dir/Foo-1.2.egg") + ws.add(Foo) + + # create a requirement that conflicts with Foo 1.2 + req = next(parse_requirements("Foo<1.2")) + + with pytest.raises(VersionConflict) as vc: + ws.find(req) + + msg = 'Foo 1.2 is installed but Foo<1.2 is required' + assert vc.value.report() == msg + + def test_resolve_conflicts_with_prior(self): + """ + A ContextualVersionConflict should be raised when a requirement + conflicts with a prior requirement for a different package. + """ + # Create installation where Foo depends on Baz 1.0 and Bar depends on + # Baz 2.0. + ws = WorkingSet([]) + md = Metadata(('depends.txt', "Baz==1.0")) + Foo = Distribution.from_filename("/foo_dir/Foo-1.0.egg", metadata=md) + ws.add(Foo) + md = Metadata(('depends.txt', "Baz==2.0")) + Bar = Distribution.from_filename("/foo_dir/Bar-1.0.egg", metadata=md) + ws.add(Bar) + Baz = Distribution.from_filename("/foo_dir/Baz-1.0.egg") + ws.add(Baz) + Baz = Distribution.from_filename("/foo_dir/Baz-2.0.egg") + ws.add(Baz) + + with pytest.raises(VersionConflict) as vc: + ws.resolve(parse_requirements("Foo\nBar\n")) + + msg = "Baz 1.0 is installed but Baz==2.0 is required by " + msg += repr(set(['Bar'])) + assert vc.value.report() == msg + + +class TestEntryPoints: + def assertfields(self, ep): + assert ep.name == "foo" + assert ep.module_name == "pkg_resources.tests.test_resources" + assert ep.attrs == ("TestEntryPoints",) + assert ep.extras == ("x",) + assert ep.load() is TestEntryPoints + expect = "foo = pkg_resources.tests.test_resources:TestEntryPoints [x]" + assert str(ep) == expect + + def setup_method(self, method): + self.dist = Distribution.from_filename( + "FooPkg-1.2-py2.4.egg", metadata=Metadata(('requires.txt', '[x]')) + ) + + def testBasics(self): + ep = EntryPoint( + "foo", + "pkg_resources.tests.test_resources", + ["TestEntryPoints"], + ["x"], + self.dist, + ) + self.assertfields(ep) + + def testParse(self): + s = "foo = pkg_resources.tests.test_resources:TestEntryPoints [x]" + ep = EntryPoint.parse(s, self.dist) + self.assertfields(ep) + + ep = EntryPoint.parse("bar baz= spammity[PING]") + assert ep.name == "bar baz" + assert ep.module_name == "spammity" + assert ep.attrs == () + assert ep.extras == ("ping",) + + ep = EntryPoint.parse(" fizzly = wocka:foo") + assert ep.name == "fizzly" + assert ep.module_name == "wocka" + assert ep.attrs == ("foo",) + assert ep.extras == () + + # plus in the name + spec = "html+mako = mako.ext.pygmentplugin:MakoHtmlLexer" + ep = EntryPoint.parse(spec) + assert ep.name == 'html+mako' + + reject_specs = "foo", "x=a:b:c", "q=x/na", "fez=pish:tush-z", "x=f[a]>2" + + @pytest.mark.parametrize("reject_spec", reject_specs) + def test_reject_spec(self, reject_spec): + with pytest.raises(ValueError): + EntryPoint.parse(reject_spec) + + def test_printable_name(self): + """ + Allow any printable character in the name. + """ + # Create a name with all printable characters; strip the whitespace. + name = string.printable.strip() + spec = "{name} = module:attr".format(**locals()) + ep = EntryPoint.parse(spec) + assert ep.name == name + + def checkSubMap(self, m): + assert len(m) == len(self.submap_expect) + for key, ep in self.submap_expect.items(): + assert m.get(key).name == ep.name + assert m.get(key).module_name == ep.module_name + assert sorted(m.get(key).attrs) == sorted(ep.attrs) + assert sorted(m.get(key).extras) == sorted(ep.extras) + + submap_expect = dict( + feature1=EntryPoint('feature1', 'somemodule', ['somefunction']), + feature2=EntryPoint( + 'feature2', 'another.module', ['SomeClass'], ['extra1', 'extra2'] + ), + feature3=EntryPoint('feature3', 'this.module', extras=['something']), + ) + submap_str = """ + # define features for blah blah + feature1 = somemodule:somefunction + feature2 = another.module:SomeClass [extra1,extra2] + feature3 = this.module [something] + """ + + def testParseList(self): + self.checkSubMap(EntryPoint.parse_group("xyz", self.submap_str)) + with pytest.raises(ValueError): + EntryPoint.parse_group("x a", "foo=bar") + with pytest.raises(ValueError): + EntryPoint.parse_group("x", ["foo=baz", "foo=bar"]) + + def testParseMap(self): + m = EntryPoint.parse_map({'xyz': self.submap_str}) + self.checkSubMap(m['xyz']) + assert list(m.keys()) == ['xyz'] + m = EntryPoint.parse_map("[xyz]\n" + self.submap_str) + self.checkSubMap(m['xyz']) + assert list(m.keys()) == ['xyz'] + with pytest.raises(ValueError): + EntryPoint.parse_map(["[xyz]", "[xyz]"]) + with pytest.raises(ValueError): + EntryPoint.parse_map(self.submap_str) + + def testDeprecationWarnings(self): + ep = EntryPoint( + "foo", "pkg_resources.tests.test_resources", ["TestEntryPoints"], ["x"] + ) + with pytest.warns(pkg_resources.PkgResourcesDeprecationWarning): + ep.load(require=False) + + +class TestRequirements: + def testBasics(self): + r = Requirement.parse("Twisted>=1.2") + assert str(r) == "Twisted>=1.2" + assert repr(r) == "Requirement.parse('Twisted>=1.2')" + assert r == Requirement("Twisted>=1.2") + assert r == Requirement("twisTed>=1.2") + assert r != Requirement("Twisted>=2.0") + assert r != Requirement("Zope>=1.2") + assert r != Requirement("Zope>=3.0") + assert r != Requirement("Twisted[extras]>=1.2") + + def testOrdering(self): + r1 = Requirement("Twisted==1.2c1,>=1.2") + r2 = Requirement("Twisted>=1.2,==1.2c1") + assert r1 == r2 + assert str(r1) == str(r2) + assert str(r2) == "Twisted==1.2c1,>=1.2" + assert Requirement("Twisted") != Requirement( + "Twisted @ https://localhost/twisted.zip" + ) + + def testBasicContains(self): + r = Requirement("Twisted>=1.2") + foo_dist = Distribution.from_filename("FooPkg-1.3_1.egg") + twist11 = Distribution.from_filename("Twisted-1.1.egg") + twist12 = Distribution.from_filename("Twisted-1.2.egg") + assert parse_version('1.2') in r + assert parse_version('1.1') not in r + assert '1.2' in r + assert '1.1' not in r + assert foo_dist not in r + assert twist11 not in r + assert twist12 in r + + def testOptionsAndHashing(self): + r1 = Requirement.parse("Twisted[foo,bar]>=1.2") + r2 = Requirement.parse("Twisted[bar,FOO]>=1.2") + assert r1 == r2 + assert set(r1.extras) == set(("foo", "bar")) + assert set(r2.extras) == set(("foo", "bar")) + assert hash(r1) == hash(r2) + assert hash(r1) == hash(( + "twisted", + None, + SpecifierSet(">=1.2"), + frozenset(["foo", "bar"]), + None, + )) + assert hash( + Requirement.parse("Twisted @ https://localhost/twisted.zip") + ) == hash(( + "twisted", + "https://localhost/twisted.zip", + SpecifierSet(), + frozenset(), + None, + )) + + def testVersionEquality(self): + r1 = Requirement.parse("foo==0.3a2") + r2 = Requirement.parse("foo!=0.3a4") + d = Distribution.from_filename + + assert d("foo-0.3a4.egg") not in r1 + assert d("foo-0.3a1.egg") not in r1 + assert d("foo-0.3a4.egg") not in r2 + + assert d("foo-0.3a2.egg") in r1 + assert d("foo-0.3a2.egg") in r2 + assert d("foo-0.3a3.egg") in r2 + assert d("foo-0.3a5.egg") in r2 + + def testSetuptoolsProjectName(self): + """ + The setuptools project should implement the setuptools package. + """ + + assert Requirement.parse('setuptools').project_name == 'setuptools' + # setuptools 0.7 and higher means setuptools. + assert Requirement.parse('setuptools == 0.7').project_name == 'setuptools' + assert Requirement.parse('setuptools == 0.7a1').project_name == 'setuptools' + assert Requirement.parse('setuptools >= 0.7').project_name == 'setuptools' + + +class TestParsing: + def testEmptyParse(self): + assert list(parse_requirements('')) == [] + + def testYielding(self): + for inp, out in [ + ([], []), + ('x', ['x']), + ([[]], []), + (' x\n y', ['x', 'y']), + (['x\n\n', 'y'], ['x', 'y']), + ]: + assert list(pkg_resources.yield_lines(inp)) == out + + def testSplitting(self): + sample = """ + x + [Y] + z + + a + [b ] + # foo + c + [ d] + [q] + v + """ + assert list(pkg_resources.split_sections(sample)) == [ + (None, ["x"]), + ("Y", ["z", "a"]), + ("b", ["c"]), + ("d", []), + ("q", ["v"]), + ] + with pytest.raises(ValueError): + list(pkg_resources.split_sections("[foo")) + + def testSafeName(self): + assert safe_name("adns-python") == "adns-python" + assert safe_name("WSGI Utils") == "WSGI-Utils" + assert safe_name("WSGI Utils") == "WSGI-Utils" + assert safe_name("Money$$$Maker") == "Money-Maker" + assert safe_name("peak.web") != "peak-web" + + def testSafeVersion(self): + assert safe_version("1.2-1") == "1.2.post1" + assert safe_version("1.2 alpha") == "1.2.alpha" + assert safe_version("2.3.4 20050521") == "2.3.4.20050521" + assert safe_version("Money$$$Maker") == "Money-Maker" + assert safe_version("peak.web") == "peak.web" + + def testSimpleRequirements(self): + assert list(parse_requirements('Twis-Ted>=1.2-1')) == [ + Requirement('Twis-Ted>=1.2-1') + ] + assert list(parse_requirements('Twisted >=1.2, \\ # more\n<2.0')) == [ + Requirement('Twisted>=1.2,<2.0') + ] + assert Requirement.parse("FooBar==1.99a3") == Requirement("FooBar==1.99a3") + with pytest.raises(ValueError): + Requirement.parse(">=2.3") + with pytest.raises(ValueError): + Requirement.parse("x\\") + with pytest.raises(ValueError): + Requirement.parse("x==2 q") + with pytest.raises(ValueError): + Requirement.parse("X==1\nY==2") + with pytest.raises(ValueError): + Requirement.parse("#") + + def test_requirements_with_markers(self): + assert Requirement.parse("foobar;os_name=='a'") == Requirement.parse( + "foobar;os_name=='a'" + ) + assert Requirement.parse( + "name==1.1;python_version=='2.7'" + ) != Requirement.parse("name==1.1;python_version=='3.6'") + assert Requirement.parse( + "name==1.0;python_version=='2.7'" + ) != Requirement.parse("name==1.2;python_version=='2.7'") + assert Requirement.parse( + "name[foo]==1.0;python_version=='3.6'" + ) != Requirement.parse("name[foo,bar]==1.0;python_version=='3.6'") + + def test_local_version(self): + parse_requirements('foo==1.0+org1') + + def test_spaces_between_multiple_versions(self): + parse_requirements('foo>=1.0, <3') + parse_requirements('foo >= 1.0, < 3') + + @pytest.mark.parametrize( + ("lower", "upper"), + [ + ('1.2-rc1', '1.2rc1'), + ('0.4', '0.4.0'), + ('0.4.0.0', '0.4.0'), + ('0.4.0-0', '0.4-0'), + ('0post1', '0.0post1'), + ('0pre1', '0.0c1'), + ('0.0.0preview1', '0c1'), + ('0.0c1', '0-rc1'), + ('1.2a1', '1.2.a.1'), + ('1.2.a', '1.2a'), + ], + ) + def testVersionEquality(self, lower, upper): + assert parse_version(lower) == parse_version(upper) + + torture = """ + 0.80.1-3 0.80.1-2 0.80.1-1 0.79.9999+0.80.0pre4-1 + 0.79.9999+0.80.0pre2-3 0.79.9999+0.80.0pre2-2 + 0.77.2-1 0.77.1-1 0.77.0-1 + """ + + @pytest.mark.parametrize( + ("lower", "upper"), + [ + ('2.1', '2.1.1'), + ('2a1', '2b0'), + ('2a1', '2.1'), + ('2.3a1', '2.3'), + ('2.1-1', '2.1-2'), + ('2.1-1', '2.1.1'), + ('2.1', '2.1post4'), + ('2.1a0-20040501', '2.1'), + ('1.1', '02.1'), + ('3.2', '3.2.post0'), + ('3.2post1', '3.2post2'), + ('0.4', '4.0'), + ('0.0.4', '0.4.0'), + ('0post1', '0.4post1'), + ('2.1.0-rc1', '2.1.0'), + ('2.1dev', '2.1a0'), + ] + + list(pairwise(reversed(torture.split()))), + ) + def testVersionOrdering(self, lower, upper): + assert parse_version(lower) < parse_version(upper) + + def testVersionHashable(self): + """ + Ensure that our versions stay hashable even though we've subclassed + them and added some shim code to them. + """ + assert hash(parse_version("1.0")) == hash(parse_version("1.0")) + + +class TestNamespaces: + ns_str = "__import__('pkg_resources').declare_namespace(__name__)\n" + + @pytest.fixture + def symlinked_tmpdir(self, tmpdir): + """ + Where available, return the tempdir as a symlink, + which as revealed in #231 is more fragile than + a natural tempdir. + """ + if not hasattr(os, 'symlink'): + yield str(tmpdir) + return + + link_name = str(tmpdir) + '-linked' + os.symlink(str(tmpdir), link_name) + try: + yield type(tmpdir)(link_name) + finally: + os.unlink(link_name) + + @pytest.fixture(autouse=True) + def patched_path(self, tmpdir): + """ + Patch sys.path to include the 'site-pkgs' dir. Also + restore pkg_resources._namespace_packages to its + former state. + """ + saved_ns_pkgs = pkg_resources._namespace_packages.copy() + saved_sys_path = sys.path[:] + site_pkgs = tmpdir.mkdir('site-pkgs') + sys.path.append(str(site_pkgs)) + try: + yield + finally: + pkg_resources._namespace_packages = saved_ns_pkgs + sys.path = saved_sys_path + + issue591 = pytest.mark.xfail(platform.system() == 'Windows', reason="#591") + + @issue591 + def test_two_levels_deep(self, symlinked_tmpdir): + """ + Test nested namespace packages + Create namespace packages in the following tree : + site-packages-1/pkg1/pkg2 + site-packages-2/pkg1/pkg2 + Check both are in the _namespace_packages dict and that their __path__ + is correct + """ + real_tmpdir = symlinked_tmpdir.realpath() + tmpdir = symlinked_tmpdir + sys.path.append(str(tmpdir / 'site-pkgs2')) + site_dirs = tmpdir / 'site-pkgs', tmpdir / 'site-pkgs2' + for site in site_dirs: + pkg1 = site / 'pkg1' + pkg2 = pkg1 / 'pkg2' + pkg2.ensure_dir() + (pkg1 / '__init__.py').write_text(self.ns_str, encoding='utf-8') + (pkg2 / '__init__.py').write_text(self.ns_str, encoding='utf-8') + with pytest.warns(DeprecationWarning, match="pkg_resources.declare_namespace"): + import pkg1 # pyright: ignore[reportMissingImports] # Temporary package for test + assert "pkg1" in pkg_resources._namespace_packages + # attempt to import pkg2 from site-pkgs2 + with pytest.warns(DeprecationWarning, match="pkg_resources.declare_namespace"): + import pkg1.pkg2 # pyright: ignore[reportMissingImports] # Temporary package for test + # check the _namespace_packages dict + assert "pkg1.pkg2" in pkg_resources._namespace_packages + assert pkg_resources._namespace_packages["pkg1"] == ["pkg1.pkg2"] + # check the __path__ attribute contains both paths + expected = [ + str(real_tmpdir / "site-pkgs" / "pkg1" / "pkg2"), + str(real_tmpdir / "site-pkgs2" / "pkg1" / "pkg2"), + ] + assert pkg1.pkg2.__path__ == expected + + @issue591 + def test_path_order(self, symlinked_tmpdir): + """ + Test that if multiple versions of the same namespace package subpackage + are on different sys.path entries, that only the one earliest on + sys.path is imported, and that the namespace package's __path__ is in + the correct order. + + Regression test for https://github.com/pypa/setuptools/issues/207 + """ + + tmpdir = symlinked_tmpdir + site_dirs = ( + tmpdir / "site-pkgs", + tmpdir / "site-pkgs2", + tmpdir / "site-pkgs3", + ) + + vers_str = "__version__ = %r" + + for number, site in enumerate(site_dirs, 1): + if number > 1: + sys.path.append(str(site)) + nspkg = site / 'nspkg' + subpkg = nspkg / 'subpkg' + subpkg.ensure_dir() + (nspkg / '__init__.py').write_text(self.ns_str, encoding='utf-8') + (subpkg / '__init__.py').write_text(vers_str % number, encoding='utf-8') + + with pytest.warns(DeprecationWarning, match="pkg_resources.declare_namespace"): + import nspkg # pyright: ignore[reportMissingImports] # Temporary package for test + import nspkg.subpkg # pyright: ignore[reportMissingImports] # Temporary package for test + expected = [str(site.realpath() / 'nspkg') for site in site_dirs] + assert nspkg.__path__ == expected + assert nspkg.subpkg.__version__ == 1 diff --git a/venv/lib/python3.11/site-packages/pkg_resources/tests/test_working_set.py b/venv/lib/python3.11/site-packages/pkg_resources/tests/test_working_set.py new file mode 100644 index 0000000..ed20c59 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pkg_resources/tests/test_working_set.py @@ -0,0 +1,505 @@ +import functools +import inspect +import re +import textwrap + +import pytest + +import pkg_resources + +from .test_resources import Metadata + + +def strip_comments(s): + return '\n'.join( + line + for line in s.split('\n') + if line.strip() and not line.strip().startswith('#') + ) + + +def parse_distributions(s): + """ + Parse a series of distribution specs of the form: + {project_name}-{version} + [optional, indented requirements specification] + + Example: + + foo-0.2 + bar-1.0 + foo>=3.0 + [feature] + baz + + yield 2 distributions: + - project_name=foo, version=0.2 + - project_name=bar, version=1.0, + requires=['foo>=3.0', 'baz; extra=="feature"'] + """ + s = s.strip() + for spec in re.split(r'\n(?=[^\s])', s): + if not spec: + continue + fields = spec.split('\n', 1) + assert 1 <= len(fields) <= 2 + name, version = fields.pop(0).rsplit('-', 1) + if fields: + requires = textwrap.dedent(fields.pop(0)) + metadata = Metadata(('requires.txt', requires)) + else: + metadata = None + dist = pkg_resources.Distribution( + project_name=name, version=version, metadata=metadata + ) + yield dist + + +class FakeInstaller: + def __init__(self, installable_dists) -> None: + self._installable_dists = installable_dists + + def __call__(self, req): + return next( + iter(filter(lambda dist: dist in req, self._installable_dists)), None + ) + + +def parametrize_test_working_set_resolve(*test_list): + idlist = [] + argvalues = [] + for test in test_list: + ( + name, + installed_dists, + installable_dists, + requirements, + expected1, + expected2, + ) = ( + strip_comments(s.lstrip()) + for s in textwrap.dedent(test).lstrip().split('\n\n', 5) + ) + installed_dists = list(parse_distributions(installed_dists)) + installable_dists = list(parse_distributions(installable_dists)) + requirements = list(pkg_resources.parse_requirements(requirements)) + for id_, replace_conflicting, expected in ( + (name, False, expected1), + (name + '_replace_conflicting', True, expected2), + ): + idlist.append(id_) + expected = strip_comments(expected.strip()) + if re.match(r'\w+$', expected): + expected = getattr(pkg_resources, expected) + assert issubclass(expected, Exception) + else: + expected = list(parse_distributions(expected)) + argvalues.append( + pytest.param( + installed_dists, + installable_dists, + requirements, + replace_conflicting, + expected, + ) + ) + return pytest.mark.parametrize( + ( + "installed_dists", + "installable_dists", + "requirements", + "replace_conflicting", + "resolved_dists_or_exception", + ), + argvalues, + ids=idlist, + ) + + +@parametrize_test_working_set_resolve( + """ + # id + noop + + # installed + + # installable + + # wanted + + # resolved + + # resolved [replace conflicting] + """, + """ + # id + already_installed + + # installed + foo-3.0 + + # installable + + # wanted + foo>=2.1,!=3.1,<4 + + # resolved + foo-3.0 + + # resolved [replace conflicting] + foo-3.0 + """, + """ + # id + installable_not_installed + + # installed + + # installable + foo-3.0 + foo-4.0 + + # wanted + foo>=2.1,!=3.1,<4 + + # resolved + foo-3.0 + + # resolved [replace conflicting] + foo-3.0 + """, + """ + # id + not_installable + + # installed + + # installable + + # wanted + foo>=2.1,!=3.1,<4 + + # resolved + DistributionNotFound + + # resolved [replace conflicting] + DistributionNotFound + """, + """ + # id + no_matching_version + + # installed + + # installable + foo-3.1 + + # wanted + foo>=2.1,!=3.1,<4 + + # resolved + DistributionNotFound + + # resolved [replace conflicting] + DistributionNotFound + """, + """ + # id + installable_with_installed_conflict + + # installed + foo-3.1 + + # installable + foo-3.5 + + # wanted + foo>=2.1,!=3.1,<4 + + # resolved + VersionConflict + + # resolved [replace conflicting] + foo-3.5 + """, + """ + # id + not_installable_with_installed_conflict + + # installed + foo-3.1 + + # installable + + # wanted + foo>=2.1,!=3.1,<4 + + # resolved + VersionConflict + + # resolved [replace conflicting] + DistributionNotFound + """, + """ + # id + installed_with_installed_require + + # installed + foo-3.9 + baz-0.1 + foo>=2.1,!=3.1,<4 + + # installable + + # wanted + baz + + # resolved + foo-3.9 + baz-0.1 + + # resolved [replace conflicting] + foo-3.9 + baz-0.1 + """, + """ + # id + installed_with_conflicting_installed_require + + # installed + foo-5 + baz-0.1 + foo>=2.1,!=3.1,<4 + + # installable + + # wanted + baz + + # resolved + VersionConflict + + # resolved [replace conflicting] + DistributionNotFound + """, + """ + # id + installed_with_installable_conflicting_require + + # installed + foo-5 + baz-0.1 + foo>=2.1,!=3.1,<4 + + # installable + foo-2.9 + + # wanted + baz + + # resolved + VersionConflict + + # resolved [replace conflicting] + baz-0.1 + foo-2.9 + """, + """ + # id + installed_with_installable_require + + # installed + baz-0.1 + foo>=2.1,!=3.1,<4 + + # installable + foo-3.9 + + # wanted + baz + + # resolved + foo-3.9 + baz-0.1 + + # resolved [replace conflicting] + foo-3.9 + baz-0.1 + """, + """ + # id + installable_with_installed_require + + # installed + foo-3.9 + + # installable + baz-0.1 + foo>=2.1,!=3.1,<4 + + # wanted + baz + + # resolved + foo-3.9 + baz-0.1 + + # resolved [replace conflicting] + foo-3.9 + baz-0.1 + """, + """ + # id + installable_with_installable_require + + # installed + + # installable + foo-3.9 + baz-0.1 + foo>=2.1,!=3.1,<4 + + # wanted + baz + + # resolved + foo-3.9 + baz-0.1 + + # resolved [replace conflicting] + foo-3.9 + baz-0.1 + """, + """ + # id + installable_with_conflicting_installable_require + + # installed + foo-5 + + # installable + foo-2.9 + baz-0.1 + foo>=2.1,!=3.1,<4 + + # wanted + baz + + # resolved + VersionConflict + + # resolved [replace conflicting] + baz-0.1 + foo-2.9 + """, + """ + # id + conflicting_installables + + # installed + + # installable + foo-2.9 + foo-5.0 + + # wanted + foo>=2.1,!=3.1,<4 + foo>=4 + + # resolved + VersionConflict + + # resolved [replace conflicting] + VersionConflict + """, + """ + # id + installables_with_conflicting_requires + + # installed + + # installable + foo-2.9 + dep==1.0 + baz-5.0 + dep==2.0 + dep-1.0 + dep-2.0 + + # wanted + foo + baz + + # resolved + VersionConflict + + # resolved [replace conflicting] + VersionConflict + """, + """ + # id + installables_with_conflicting_nested_requires + + # installed + + # installable + foo-2.9 + dep1 + dep1-1.0 + subdep<1.0 + baz-5.0 + dep2 + dep2-1.0 + subdep>1.0 + subdep-0.9 + subdep-1.1 + + # wanted + foo + baz + + # resolved + VersionConflict + + # resolved [replace conflicting] + VersionConflict + """, + """ + # id + wanted_normalized_name_installed_canonical + + # installed + foo.bar-3.6 + + # installable + + # wanted + foo-bar==3.6 + + # resolved + foo.bar-3.6 + + # resolved [replace conflicting] + foo.bar-3.6 + """, +) +def test_working_set_resolve( + installed_dists, + installable_dists, + requirements, + replace_conflicting, + resolved_dists_or_exception, +): + ws = pkg_resources.WorkingSet([]) + list(map(ws.add, installed_dists)) + resolve_call = functools.partial( + ws.resolve, + requirements, + installer=FakeInstaller(installable_dists), + replace_conflicting=replace_conflicting, + ) + if inspect.isclass(resolved_dists_or_exception): + with pytest.raises(resolved_dists_or_exception): + resolve_call() + else: + assert sorted(resolve_call()) == sorted(resolved_dists_or_exception) diff --git a/venv/lib/python3.11/site-packages/platformdirs-4.5.0.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/platformdirs-4.5.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/platformdirs-4.5.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/platformdirs-4.5.0.dist-info/METADATA b/venv/lib/python3.11/site-packages/platformdirs-4.5.0.dist-info/METADATA new file mode 100644 index 0000000..f39386d --- /dev/null +++ b/venv/lib/python3.11/site-packages/platformdirs-4.5.0.dist-info/METADATA @@ -0,0 +1,350 @@ +Metadata-Version: 2.4 +Name: platformdirs +Version: 4.5.0 +Summary: A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`. +Project-URL: Changelog, https://github.com/tox-dev/platformdirs/releases +Project-URL: Documentation, https://platformdirs.readthedocs.io +Project-URL: Homepage, https://github.com/tox-dev/platformdirs +Project-URL: Source, https://github.com/tox-dev/platformdirs +Project-URL: Tracker, https://github.com/tox-dev/platformdirs/issues +Maintainer-email: Bernát Gábor , Julian Berman , Ofek Lev , Ronny Pfannschmidt +License-Expression: MIT +License-File: LICENSE +Keywords: appdirs,application,cache,directory,log,user +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Requires-Python: >=3.10 +Provides-Extra: docs +Requires-Dist: furo>=2025.9.25; extra == 'docs' +Requires-Dist: proselint>=0.14; extra == 'docs' +Requires-Dist: sphinx-autodoc-typehints>=3.2; extra == 'docs' +Requires-Dist: sphinx>=8.2.3; extra == 'docs' +Provides-Extra: test +Requires-Dist: appdirs==1.4.4; extra == 'test' +Requires-Dist: covdefaults>=2.3; extra == 'test' +Requires-Dist: pytest-cov>=7; extra == 'test' +Requires-Dist: pytest-mock>=3.15.1; extra == 'test' +Requires-Dist: pytest>=8.4.2; extra == 'test' +Provides-Extra: type +Requires-Dist: mypy>=1.18.2; extra == 'type' +Description-Content-Type: text/x-rst + +The problem +=========== + +.. image:: https://badge.fury.io/py/platformdirs.svg + :target: https://badge.fury.io/py/platformdirs +.. image:: https://img.shields.io/pypi/pyversions/platformdirs.svg + :target: https://pypi.python.org/pypi/platformdirs/ +.. image:: https://github.com/tox-dev/platformdirs/actions/workflows/check.yaml/badge.svg + :target: https://github.com/platformdirs/platformdirs/actions +.. image:: https://static.pepy.tech/badge/platformdirs/month + :target: https://pepy.tech/project/platformdirs + +When writing desktop application, finding the right location to store user data +and configuration varies per platform. Even for single-platform apps, there +may by plenty of nuances in figuring out the right location. + +For example, if running on macOS, you should use:: + + ~/Library/Application Support/ + +If on Windows (at least English Win) that should be:: + + C:\Users\\Application Data\Local Settings\\ + +or possibly:: + + C:\Users\\Application Data\\ + +for `roaming profiles `_ but that is another story. + +On Linux (and other Unices), according to the `XDG Basedir Spec`_, it should be:: + + ~/.local/share/ + +.. _XDG Basedir Spec: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html + +``platformdirs`` to the rescue +============================== + +This kind of thing is what the ``platformdirs`` package is for. +``platformdirs`` will help you choose an appropriate: + +- user data dir (``user_data_dir``) +- user config dir (``user_config_dir``) +- user cache dir (``user_cache_dir``) +- site data dir (``site_data_dir``) +- site config dir (``site_config_dir``) +- user log dir (``user_log_dir``) +- user documents dir (``user_documents_dir``) +- user downloads dir (``user_downloads_dir``) +- user pictures dir (``user_pictures_dir``) +- user videos dir (``user_videos_dir``) +- user music dir (``user_music_dir``) +- user desktop dir (``user_desktop_dir``) +- user runtime dir (``user_runtime_dir``) + +And also: + +- Is slightly opinionated on the directory names used. Look for "OPINION" in + documentation and code for when an opinion is being applied. + +Example output +============== + +On macOS: + +.. code-block:: pycon + + >>> from platformdirs import * + >>> appname = "SuperApp" + >>> appauthor = "Acme" + >>> user_data_dir(appname, appauthor) + '/Users/trentm/Library/Application Support/SuperApp' + >>> user_config_dir(appname, appauthor) + '/Users/trentm/Library/Application Support/SuperApp' + >>> user_cache_dir(appname, appauthor) + '/Users/trentm/Library/Caches/SuperApp' + >>> site_data_dir(appname, appauthor) + '/Library/Application Support/SuperApp' + >>> site_config_dir(appname, appauthor) + '/Library/Application Support/SuperApp' + >>> user_log_dir(appname, appauthor) + '/Users/trentm/Library/Logs/SuperApp' + >>> user_documents_dir() + '/Users/trentm/Documents' + >>> user_downloads_dir() + '/Users/trentm/Downloads' + >>> user_pictures_dir() + '/Users/trentm/Pictures' + >>> user_videos_dir() + '/Users/trentm/Movies' + >>> user_music_dir() + '/Users/trentm/Music' + >>> user_desktop_dir() + '/Users/trentm/Desktop' + >>> user_runtime_dir(appname, appauthor) + '/Users/trentm/Library/Caches/TemporaryItems/SuperApp' + +On Windows: + +.. code-block:: pycon + + >>> from platformdirs import * + >>> appname = "SuperApp" + >>> appauthor = "Acme" + >>> user_data_dir(appname, appauthor) + 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp' + >>> user_data_dir(appname, appauthor, roaming=True) + 'C:\\Users\\trentm\\AppData\\Roaming\\Acme\\SuperApp' + >>> user_config_dir(appname, appauthor) + 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp' + >>> user_cache_dir(appname, appauthor) + 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp\\Cache' + >>> site_data_dir(appname, appauthor) + 'C:\\ProgramData\\Acme\\SuperApp' + >>> site_config_dir(appname, appauthor) + 'C:\\ProgramData\\Acme\\SuperApp' + >>> user_log_dir(appname, appauthor) + 'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp\\Logs' + >>> user_documents_dir() + 'C:\\Users\\trentm\\Documents' + >>> user_downloads_dir() + 'C:\\Users\\trentm\\Downloads' + >>> user_pictures_dir() + 'C:\\Users\\trentm\\Pictures' + >>> user_videos_dir() + 'C:\\Users\\trentm\\Videos' + >>> user_music_dir() + 'C:\\Users\\trentm\\Music' + >>> user_desktop_dir() + 'C:\\Users\\trentm\\Desktop' + >>> user_runtime_dir(appname, appauthor) + 'C:\\Users\\trentm\\AppData\\Local\\Temp\\Acme\\SuperApp' + +On Linux: + +.. code-block:: pycon + + >>> from platformdirs import * + >>> appname = "SuperApp" + >>> appauthor = "Acme" + >>> user_data_dir(appname, appauthor) + '/home/trentm/.local/share/SuperApp' + >>> user_config_dir(appname) + '/home/trentm/.config/SuperApp' + >>> user_cache_dir(appname, appauthor) + '/home/trentm/.cache/SuperApp' + >>> site_data_dir(appname, appauthor) + '/usr/local/share/SuperApp' + >>> site_data_dir(appname, appauthor, multipath=True) + '/usr/local/share/SuperApp:/usr/share/SuperApp' + >>> site_config_dir(appname) + '/etc/xdg/SuperApp' + >>> os.environ["XDG_CONFIG_DIRS"] = "/etc:/usr/local/etc" + >>> site_config_dir(appname, multipath=True) + '/etc/SuperApp:/usr/local/etc/SuperApp' + >>> user_log_dir(appname, appauthor) + '/home/trentm/.local/state/SuperApp/log' + >>> user_documents_dir() + '/home/trentm/Documents' + >>> user_downloads_dir() + '/home/trentm/Downloads' + >>> user_pictures_dir() + '/home/trentm/Pictures' + >>> user_videos_dir() + '/home/trentm/Videos' + >>> user_music_dir() + '/home/trentm/Music' + >>> user_desktop_dir() + '/home/trentm/Desktop' + >>> user_runtime_dir(appname, appauthor) + '/run/user/{os.getuid()}/SuperApp' + +On Android:: + + >>> from platformdirs import * + >>> appname = "SuperApp" + >>> appauthor = "Acme" + >>> user_data_dir(appname, appauthor) + '/data/data/com.myApp/files/SuperApp' + >>> user_config_dir(appname) + '/data/data/com.myApp/shared_prefs/SuperApp' + >>> user_cache_dir(appname, appauthor) + '/data/data/com.myApp/cache/SuperApp' + >>> site_data_dir(appname, appauthor) + '/data/data/com.myApp/files/SuperApp' + >>> site_config_dir(appname) + '/data/data/com.myApp/shared_prefs/SuperApp' + >>> user_log_dir(appname, appauthor) + '/data/data/com.myApp/cache/SuperApp/log' + >>> user_documents_dir() + '/storage/emulated/0/Documents' + >>> user_downloads_dir() + '/storage/emulated/0/Downloads' + >>> user_pictures_dir() + '/storage/emulated/0/Pictures' + >>> user_videos_dir() + '/storage/emulated/0/DCIM/Camera' + >>> user_music_dir() + '/storage/emulated/0/Music' + >>> user_desktop_dir() + '/storage/emulated/0/Desktop' + >>> user_runtime_dir(appname, appauthor) + '/data/data/com.myApp/cache/SuperApp/tmp' + +Note: Some android apps like Termux and Pydroid are used as shells. These +apps are used by the end user to emulate Linux environment. Presence of +``SHELL`` environment variable is used by Platformdirs to differentiate +between general android apps and android apps used as shells. Shell android +apps also support ``XDG_*`` environment variables. + + +``PlatformDirs`` for convenience +================================ + +.. code-block:: pycon + + >>> from platformdirs import PlatformDirs + >>> dirs = PlatformDirs("SuperApp", "Acme") + >>> dirs.user_data_dir + '/Users/trentm/Library/Application Support/SuperApp' + >>> dirs.user_config_dir + '/Users/trentm/Library/Application Support/SuperApp' + >>> dirs.user_cache_dir + '/Users/trentm/Library/Caches/SuperApp' + >>> dirs.site_data_dir + '/Library/Application Support/SuperApp' + >>> dirs.site_config_dir + '/Library/Application Support/SuperApp' + >>> dirs.user_cache_dir + '/Users/trentm/Library/Caches/SuperApp' + >>> dirs.user_log_dir + '/Users/trentm/Library/Logs/SuperApp' + >>> dirs.user_documents_dir + '/Users/trentm/Documents' + >>> dirs.user_downloads_dir + '/Users/trentm/Downloads' + >>> dirs.user_pictures_dir + '/Users/trentm/Pictures' + >>> dirs.user_videos_dir + '/Users/trentm/Movies' + >>> dirs.user_music_dir + '/Users/trentm/Music' + >>> dirs.user_desktop_dir + '/Users/trentm/Desktop' + >>> dirs.user_runtime_dir + '/Users/trentm/Library/Caches/TemporaryItems/SuperApp' + +Per-version isolation +===================== + +If you have multiple versions of your app in use that you want to be +able to run side-by-side, then you may want version-isolation for these +dirs:: + + >>> from platformdirs import PlatformDirs + >>> dirs = PlatformDirs("SuperApp", "Acme", version="1.0") + >>> dirs.user_data_dir + '/Users/trentm/Library/Application Support/SuperApp/1.0' + >>> dirs.user_config_dir + '/Users/trentm/Library/Application Support/SuperApp/1.0' + >>> dirs.user_cache_dir + '/Users/trentm/Library/Caches/SuperApp/1.0' + >>> dirs.site_data_dir + '/Library/Application Support/SuperApp/1.0' + >>> dirs.site_config_dir + '/Library/Application Support/SuperApp/1.0' + >>> dirs.user_log_dir + '/Users/trentm/Library/Logs/SuperApp/1.0' + >>> dirs.user_documents_dir + '/Users/trentm/Documents' + >>> dirs.user_downloads_dir + '/Users/trentm/Downloads' + >>> dirs.user_pictures_dir + '/Users/trentm/Pictures' + >>> dirs.user_videos_dir + '/Users/trentm/Movies' + >>> dirs.user_music_dir + '/Users/trentm/Music' + >>> dirs.user_desktop_dir + '/Users/trentm/Desktop' + >>> dirs.user_runtime_dir + '/Users/trentm/Library/Caches/TemporaryItems/SuperApp/1.0' + +Be wary of using this for configuration files though; you'll need to handle +migrating configuration files manually. + +Why this Fork? +============== + +This repository is a friendly fork of the wonderful work started by +`ActiveState `_ who created +``appdirs``, this package's ancestor. + +Maintaining an open source project is no easy task, particularly +from within an organization, and the Python community is indebted +to ``appdirs`` (and to Trent Mick and Jeff Rouse in particular) for +creating an incredibly useful simple module, as evidenced by the wide +number of users it has attracted over the years. + +Nonetheless, given the number of long-standing open issues +and pull requests, and no clear path towards `ensuring +that maintenance of the package would continue or grow +`_, this fork was +created. + +Contributions are most welcome. diff --git a/venv/lib/python3.11/site-packages/platformdirs-4.5.0.dist-info/RECORD b/venv/lib/python3.11/site-packages/platformdirs-4.5.0.dist-info/RECORD new file mode 100644 index 0000000..4b7f68b --- /dev/null +++ b/venv/lib/python3.11/site-packages/platformdirs-4.5.0.dist-info/RECORD @@ -0,0 +1,22 @@ +platformdirs-4.5.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +platformdirs-4.5.0.dist-info/METADATA,sha256=mFxZl6Q-fO2nCdWWCJT4WOr4p7U12jZX4lk26MqGy1o,12804 +platformdirs-4.5.0.dist-info/RECORD,, +platformdirs-4.5.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87 +platformdirs-4.5.0.dist-info/licenses/LICENSE,sha256=KeD9YukphQ6G6yjD_czwzv30-pSHkBHP-z0NS-1tTbY,1089 +platformdirs/__init__.py,sha256=iORRy6_lZ9tXLvO0W6fJPn8QV7F532ivl-f2WGmabBc,22284 +platformdirs/__main__.py,sha256=HnsUQHpiBaiTxwcmwVw-nFaPdVNZtQIdi1eWDtI-MzI,1493 +platformdirs/__pycache__/__init__.cpython-311.pyc,, +platformdirs/__pycache__/__main__.cpython-311.pyc,, +platformdirs/__pycache__/android.cpython-311.pyc,, +platformdirs/__pycache__/api.cpython-311.pyc,, +platformdirs/__pycache__/macos.cpython-311.pyc,, +platformdirs/__pycache__/unix.cpython-311.pyc,, +platformdirs/__pycache__/version.cpython-311.pyc,, +platformdirs/__pycache__/windows.cpython-311.pyc,, +platformdirs/android.py,sha256=r0DshVBf-RO1jXJGX8C4Til7F1XWt-bkdWMgmvEiaYg,9013 +platformdirs/api.py,sha256=wPHOlwOsfz2oqQZ6A2FcCu5kEAj-JondzoNOHYFQ0h8,9281 +platformdirs/macos.py,sha256=0XoOgin1NK7Qki7iskD-oS8xKxw6bXgoKEgdqpCRAFQ,6322 +platformdirs/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +platformdirs/unix.py,sha256=WZmkUA--L3JNRGmz32s35YfoD3ica6xKIPdCV_HhLcs,10458 +platformdirs/version.py,sha256=sved76l3nstESjZInsYGzPryR4cPIaf3QHTJuTDYXNM,704 +platformdirs/windows.py,sha256=IFpiohUBwxPtCzlyKwNtxyW4Jk8haa6W8o59mfrDXVo,10125 diff --git a/venv/lib/python3.11/site-packages/platformdirs-4.5.0.dist-info/WHEEL b/venv/lib/python3.11/site-packages/platformdirs-4.5.0.dist-info/WHEEL new file mode 100644 index 0000000..12228d4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/platformdirs-4.5.0.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: hatchling 1.27.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/platformdirs-4.5.0.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/platformdirs-4.5.0.dist-info/licenses/LICENSE new file mode 100644 index 0000000..f35fed9 --- /dev/null +++ b/venv/lib/python3.11/site-packages/platformdirs-4.5.0.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2010-202x The platformdirs developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/platformdirs/__init__.py b/venv/lib/python3.11/site-packages/platformdirs/__init__.py new file mode 100644 index 0000000..02daa59 --- /dev/null +++ b/venv/lib/python3.11/site-packages/platformdirs/__init__.py @@ -0,0 +1,631 @@ +""" +Utilities for determining application-specific dirs. + +See for details and usage. + +""" + +from __future__ import annotations + +import os +import sys +from typing import TYPE_CHECKING + +from .api import PlatformDirsABC +from .version import __version__ +from .version import __version_tuple__ as __version_info__ + +if TYPE_CHECKING: + from pathlib import Path + from typing import Literal + +if sys.platform == "win32": + from platformdirs.windows import Windows as _Result +elif sys.platform == "darwin": + from platformdirs.macos import MacOS as _Result +else: + from platformdirs.unix import Unix as _Result + + +def _set_platform_dir_class() -> type[PlatformDirsABC]: + if os.getenv("ANDROID_DATA") == "/data" and os.getenv("ANDROID_ROOT") == "/system": + if os.getenv("SHELL") or os.getenv("PREFIX"): + return _Result + + from platformdirs.android import _android_folder # noqa: PLC0415 + + if _android_folder() is not None: + from platformdirs.android import Android # noqa: PLC0415 + + return Android # return to avoid redefinition of a result + + return _Result + + +if TYPE_CHECKING: + # Work around mypy issue: https://github.com/python/mypy/issues/10962 + PlatformDirs = _Result +else: + PlatformDirs = _set_platform_dir_class() #: Currently active platform +AppDirs = PlatformDirs #: Backwards compatibility with appdirs + + +def user_data_dir( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + roaming: bool = False, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> str: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param roaming: See `roaming `. + :param ensure_exists: See `ensure_exists `. + :returns: data directory tied to the user + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + roaming=roaming, + ensure_exists=ensure_exists, + ).user_data_dir + + +def site_data_dir( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + multipath: bool = False, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> str: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param multipath: See `roaming `. + :param ensure_exists: See `ensure_exists `. + :returns: data directory shared by users + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + multipath=multipath, + ensure_exists=ensure_exists, + ).site_data_dir + + +def user_config_dir( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + roaming: bool = False, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> str: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param roaming: See `roaming `. + :param ensure_exists: See `ensure_exists `. + :returns: config directory tied to the user + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + roaming=roaming, + ensure_exists=ensure_exists, + ).user_config_dir + + +def site_config_dir( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + multipath: bool = False, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> str: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param multipath: See `roaming `. + :param ensure_exists: See `ensure_exists `. + :returns: config directory shared by the users + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + multipath=multipath, + ensure_exists=ensure_exists, + ).site_config_dir + + +def user_cache_dir( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + opinion: bool = True, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> str: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param opinion: See `roaming `. + :param ensure_exists: See `ensure_exists `. + :returns: cache directory tied to the user + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + opinion=opinion, + ensure_exists=ensure_exists, + ).user_cache_dir + + +def site_cache_dir( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + opinion: bool = True, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> str: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param opinion: See `opinion `. + :param ensure_exists: See `ensure_exists `. + :returns: cache directory tied to the user + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + opinion=opinion, + ensure_exists=ensure_exists, + ).site_cache_dir + + +def user_state_dir( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + roaming: bool = False, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> str: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param roaming: See `roaming `. + :param ensure_exists: See `ensure_exists `. + :returns: state directory tied to the user + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + roaming=roaming, + ensure_exists=ensure_exists, + ).user_state_dir + + +def user_log_dir( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + opinion: bool = True, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> str: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param opinion: See `roaming `. + :param ensure_exists: See `ensure_exists `. + :returns: log directory tied to the user + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + opinion=opinion, + ensure_exists=ensure_exists, + ).user_log_dir + + +def user_documents_dir() -> str: + """:returns: documents directory tied to the user""" + return PlatformDirs().user_documents_dir + + +def user_downloads_dir() -> str: + """:returns: downloads directory tied to the user""" + return PlatformDirs().user_downloads_dir + + +def user_pictures_dir() -> str: + """:returns: pictures directory tied to the user""" + return PlatformDirs().user_pictures_dir + + +def user_videos_dir() -> str: + """:returns: videos directory tied to the user""" + return PlatformDirs().user_videos_dir + + +def user_music_dir() -> str: + """:returns: music directory tied to the user""" + return PlatformDirs().user_music_dir + + +def user_desktop_dir() -> str: + """:returns: desktop directory tied to the user""" + return PlatformDirs().user_desktop_dir + + +def user_runtime_dir( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + opinion: bool = True, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> str: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param opinion: See `opinion `. + :param ensure_exists: See `ensure_exists `. + :returns: runtime directory tied to the user + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + opinion=opinion, + ensure_exists=ensure_exists, + ).user_runtime_dir + + +def site_runtime_dir( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + opinion: bool = True, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> str: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param opinion: See `opinion `. + :param ensure_exists: See `ensure_exists `. + :returns: runtime directory shared by users + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + opinion=opinion, + ensure_exists=ensure_exists, + ).site_runtime_dir + + +def user_data_path( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + roaming: bool = False, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> Path: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param roaming: See `roaming `. + :param ensure_exists: See `ensure_exists `. + :returns: data path tied to the user + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + roaming=roaming, + ensure_exists=ensure_exists, + ).user_data_path + + +def site_data_path( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + multipath: bool = False, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> Path: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param multipath: See `multipath `. + :param ensure_exists: See `ensure_exists `. + :returns: data path shared by users + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + multipath=multipath, + ensure_exists=ensure_exists, + ).site_data_path + + +def user_config_path( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + roaming: bool = False, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> Path: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param roaming: See `roaming `. + :param ensure_exists: See `ensure_exists `. + :returns: config path tied to the user + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + roaming=roaming, + ensure_exists=ensure_exists, + ).user_config_path + + +def site_config_path( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + multipath: bool = False, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> Path: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param multipath: See `roaming `. + :param ensure_exists: See `ensure_exists `. + :returns: config path shared by the users + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + multipath=multipath, + ensure_exists=ensure_exists, + ).site_config_path + + +def site_cache_path( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + opinion: bool = True, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> Path: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param opinion: See `opinion `. + :param ensure_exists: See `ensure_exists `. + :returns: cache directory tied to the user + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + opinion=opinion, + ensure_exists=ensure_exists, + ).site_cache_path + + +def user_cache_path( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + opinion: bool = True, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> Path: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param opinion: See `roaming `. + :param ensure_exists: See `ensure_exists `. + :returns: cache path tied to the user + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + opinion=opinion, + ensure_exists=ensure_exists, + ).user_cache_path + + +def user_state_path( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + roaming: bool = False, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> Path: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param roaming: See `roaming `. + :param ensure_exists: See `ensure_exists `. + :returns: state path tied to the user + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + roaming=roaming, + ensure_exists=ensure_exists, + ).user_state_path + + +def user_log_path( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + opinion: bool = True, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> Path: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param opinion: See `roaming `. + :param ensure_exists: See `ensure_exists `. + :returns: log path tied to the user + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + opinion=opinion, + ensure_exists=ensure_exists, + ).user_log_path + + +def user_documents_path() -> Path: + """:returns: documents a path tied to the user""" + return PlatformDirs().user_documents_path + + +def user_downloads_path() -> Path: + """:returns: downloads path tied to the user""" + return PlatformDirs().user_downloads_path + + +def user_pictures_path() -> Path: + """:returns: pictures path tied to the user""" + return PlatformDirs().user_pictures_path + + +def user_videos_path() -> Path: + """:returns: videos path tied to the user""" + return PlatformDirs().user_videos_path + + +def user_music_path() -> Path: + """:returns: music path tied to the user""" + return PlatformDirs().user_music_path + + +def user_desktop_path() -> Path: + """:returns: desktop path tied to the user""" + return PlatformDirs().user_desktop_path + + +def user_runtime_path( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + opinion: bool = True, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> Path: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param opinion: See `opinion `. + :param ensure_exists: See `ensure_exists `. + :returns: runtime path tied to the user + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + opinion=opinion, + ensure_exists=ensure_exists, + ).user_runtime_path + + +def site_runtime_path( + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + opinion: bool = True, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 +) -> Path: + """ + :param appname: See `appname `. + :param appauthor: See `appauthor `. + :param version: See `version `. + :param opinion: See `opinion `. + :param ensure_exists: See `ensure_exists `. + :returns: runtime path shared by users + """ + return PlatformDirs( + appname=appname, + appauthor=appauthor, + version=version, + opinion=opinion, + ensure_exists=ensure_exists, + ).site_runtime_path + + +__all__ = [ + "AppDirs", + "PlatformDirs", + "PlatformDirsABC", + "__version__", + "__version_info__", + "site_cache_dir", + "site_cache_path", + "site_config_dir", + "site_config_path", + "site_data_dir", + "site_data_path", + "site_runtime_dir", + "site_runtime_path", + "user_cache_dir", + "user_cache_path", + "user_config_dir", + "user_config_path", + "user_data_dir", + "user_data_path", + "user_desktop_dir", + "user_desktop_path", + "user_documents_dir", + "user_documents_path", + "user_downloads_dir", + "user_downloads_path", + "user_log_dir", + "user_log_path", + "user_music_dir", + "user_music_path", + "user_pictures_dir", + "user_pictures_path", + "user_runtime_dir", + "user_runtime_path", + "user_state_dir", + "user_state_path", + "user_videos_dir", + "user_videos_path", +] diff --git a/venv/lib/python3.11/site-packages/platformdirs/__main__.py b/venv/lib/python3.11/site-packages/platformdirs/__main__.py new file mode 100644 index 0000000..922c521 --- /dev/null +++ b/venv/lib/python3.11/site-packages/platformdirs/__main__.py @@ -0,0 +1,55 @@ +"""Main entry point.""" + +from __future__ import annotations + +from platformdirs import PlatformDirs, __version__ + +PROPS = ( + "user_data_dir", + "user_config_dir", + "user_cache_dir", + "user_state_dir", + "user_log_dir", + "user_documents_dir", + "user_downloads_dir", + "user_pictures_dir", + "user_videos_dir", + "user_music_dir", + "user_runtime_dir", + "site_data_dir", + "site_config_dir", + "site_cache_dir", + "site_runtime_dir", +) + + +def main() -> None: + """Run the main entry point.""" + app_name = "MyApp" + app_author = "MyCompany" + + print(f"-- platformdirs {__version__} --") # noqa: T201 + + print("-- app dirs (with optional 'version')") # noqa: T201 + dirs = PlatformDirs(app_name, app_author, version="1.0") + for prop in PROPS: + print(f"{prop}: {getattr(dirs, prop)}") # noqa: T201 + + print("\n-- app dirs (without optional 'version')") # noqa: T201 + dirs = PlatformDirs(app_name, app_author) + for prop in PROPS: + print(f"{prop}: {getattr(dirs, prop)}") # noqa: T201 + + print("\n-- app dirs (without optional 'appauthor')") # noqa: T201 + dirs = PlatformDirs(app_name) + for prop in PROPS: + print(f"{prop}: {getattr(dirs, prop)}") # noqa: T201 + + print("\n-- app dirs (with disabled 'appauthor')") # noqa: T201 + dirs = PlatformDirs(app_name, appauthor=False) + for prop in PROPS: + print(f"{prop}: {getattr(dirs, prop)}") # noqa: T201 + + +if __name__ == "__main__": + main() diff --git a/venv/lib/python3.11/site-packages/platformdirs/android.py b/venv/lib/python3.11/site-packages/platformdirs/android.py new file mode 100644 index 0000000..92efc85 --- /dev/null +++ b/venv/lib/python3.11/site-packages/platformdirs/android.py @@ -0,0 +1,249 @@ +"""Android.""" + +from __future__ import annotations + +import os +import re +import sys +from functools import lru_cache +from typing import TYPE_CHECKING, cast + +from .api import PlatformDirsABC + + +class Android(PlatformDirsABC): + """ + Follows the guidance `from here `_. + + Makes use of the `appname `, `version + `, `ensure_exists `. + + """ + + @property + def user_data_dir(self) -> str: + """:return: data directory tied to the user, e.g. ``/data/user///files/``""" + return self._append_app_name_and_version(cast("str", _android_folder()), "files") + + @property + def site_data_dir(self) -> str: + """:return: data directory shared by users, same as `user_data_dir`""" + return self.user_data_dir + + @property + def user_config_dir(self) -> str: + """ + :return: config directory tied to the user, e.g. \ + ``/data/user///shared_prefs/`` + """ + return self._append_app_name_and_version(cast("str", _android_folder()), "shared_prefs") + + @property + def site_config_dir(self) -> str: + """:return: config directory shared by the users, same as `user_config_dir`""" + return self.user_config_dir + + @property + def user_cache_dir(self) -> str: + """:return: cache directory tied to the user, e.g.,``/data/user///cache/``""" + return self._append_app_name_and_version(cast("str", _android_folder()), "cache") + + @property + def site_cache_dir(self) -> str: + """:return: cache directory shared by users, same as `user_cache_dir`""" + return self.user_cache_dir + + @property + def user_state_dir(self) -> str: + """:return: state directory tied to the user, same as `user_data_dir`""" + return self.user_data_dir + + @property + def user_log_dir(self) -> str: + """ + :return: log directory tied to the user, same as `user_cache_dir` if not opinionated else ``log`` in it, + e.g. ``/data/user///cache//log`` + """ + path = self.user_cache_dir + if self.opinion: + path = os.path.join(path, "log") # noqa: PTH118 + return path + + @property + def user_documents_dir(self) -> str: + """:return: documents directory tied to the user e.g. ``/storage/emulated/0/Documents``""" + return _android_documents_folder() + + @property + def user_downloads_dir(self) -> str: + """:return: downloads directory tied to the user e.g. ``/storage/emulated/0/Downloads``""" + return _android_downloads_folder() + + @property + def user_pictures_dir(self) -> str: + """:return: pictures directory tied to the user e.g. ``/storage/emulated/0/Pictures``""" + return _android_pictures_folder() + + @property + def user_videos_dir(self) -> str: + """:return: videos directory tied to the user e.g. ``/storage/emulated/0/DCIM/Camera``""" + return _android_videos_folder() + + @property + def user_music_dir(self) -> str: + """:return: music directory tied to the user e.g. ``/storage/emulated/0/Music``""" + return _android_music_folder() + + @property + def user_desktop_dir(self) -> str: + """:return: desktop directory tied to the user e.g. ``/storage/emulated/0/Desktop``""" + return "/storage/emulated/0/Desktop" + + @property + def user_runtime_dir(self) -> str: + """ + :return: runtime directory tied to the user, same as `user_cache_dir` if not opinionated else ``tmp`` in it, + e.g. ``/data/user///cache//tmp`` + """ + path = self.user_cache_dir + if self.opinion: + path = os.path.join(path, "tmp") # noqa: PTH118 + return path + + @property + def site_runtime_dir(self) -> str: + """:return: runtime directory shared by users, same as `user_runtime_dir`""" + return self.user_runtime_dir + + +@lru_cache(maxsize=1) +def _android_folder() -> str | None: # noqa: C901 + """:return: base folder for the Android OS or None if it cannot be found""" + result: str | None = None + # type checker isn't happy with our "import android", just don't do this when type checking see + # https://stackoverflow.com/a/61394121 + if not TYPE_CHECKING: + try: + # First try to get a path to android app using python4android (if available)... + from android import mActivity # noqa: PLC0415 + + context = cast("android.content.Context", mActivity.getApplicationContext()) # noqa: F821 + result = context.getFilesDir().getParentFile().getAbsolutePath() + except Exception: # noqa: BLE001 + result = None + if result is None: + try: + # ...and fall back to using plain pyjnius, if python4android isn't available or doesn't deliver any useful + # result... + from jnius import autoclass # noqa: PLC0415 + + context = autoclass("android.content.Context") + result = context.getFilesDir().getParentFile().getAbsolutePath() + except Exception: # noqa: BLE001 + result = None + if result is None: + # and if that fails, too, find an android folder looking at path on the sys.path + # warning: only works for apps installed under /data, not adopted storage etc. + pattern = re.compile(r"/data/(data|user/\d+)/(.+)/files") + for path in sys.path: + if pattern.match(path): + result = path.split("/files")[0] + break + else: + result = None + if result is None: + # one last try: find an android folder looking at path on the sys.path taking adopted storage paths into + # account + pattern = re.compile(r"/mnt/expand/[a-fA-F0-9-]{36}/(data|user/\d+)/(.+)/files") + for path in sys.path: + if pattern.match(path): + result = path.split("/files")[0] + break + else: + result = None + return result + + +@lru_cache(maxsize=1) +def _android_documents_folder() -> str: + """:return: documents folder for the Android OS""" + # Get directories with pyjnius + try: + from jnius import autoclass # noqa: PLC0415 + + context = autoclass("android.content.Context") + environment = autoclass("android.os.Environment") + documents_dir: str = context.getExternalFilesDir(environment.DIRECTORY_DOCUMENTS).getAbsolutePath() + except Exception: # noqa: BLE001 + documents_dir = "/storage/emulated/0/Documents" + + return documents_dir + + +@lru_cache(maxsize=1) +def _android_downloads_folder() -> str: + """:return: downloads folder for the Android OS""" + # Get directories with pyjnius + try: + from jnius import autoclass # noqa: PLC0415 + + context = autoclass("android.content.Context") + environment = autoclass("android.os.Environment") + downloads_dir: str = context.getExternalFilesDir(environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + except Exception: # noqa: BLE001 + downloads_dir = "/storage/emulated/0/Downloads" + + return downloads_dir + + +@lru_cache(maxsize=1) +def _android_pictures_folder() -> str: + """:return: pictures folder for the Android OS""" + # Get directories with pyjnius + try: + from jnius import autoclass # noqa: PLC0415 + + context = autoclass("android.content.Context") + environment = autoclass("android.os.Environment") + pictures_dir: str = context.getExternalFilesDir(environment.DIRECTORY_PICTURES).getAbsolutePath() + except Exception: # noqa: BLE001 + pictures_dir = "/storage/emulated/0/Pictures" + + return pictures_dir + + +@lru_cache(maxsize=1) +def _android_videos_folder() -> str: + """:return: videos folder for the Android OS""" + # Get directories with pyjnius + try: + from jnius import autoclass # noqa: PLC0415 + + context = autoclass("android.content.Context") + environment = autoclass("android.os.Environment") + videos_dir: str = context.getExternalFilesDir(environment.DIRECTORY_DCIM).getAbsolutePath() + except Exception: # noqa: BLE001 + videos_dir = "/storage/emulated/0/DCIM/Camera" + + return videos_dir + + +@lru_cache(maxsize=1) +def _android_music_folder() -> str: + """:return: music folder for the Android OS""" + # Get directories with pyjnius + try: + from jnius import autoclass # noqa: PLC0415 + + context = autoclass("android.content.Context") + environment = autoclass("android.os.Environment") + music_dir: str = context.getExternalFilesDir(environment.DIRECTORY_MUSIC).getAbsolutePath() + except Exception: # noqa: BLE001 + music_dir = "/storage/emulated/0/Music" + + return music_dir + + +__all__ = [ + "Android", +] diff --git a/venv/lib/python3.11/site-packages/platformdirs/api.py b/venv/lib/python3.11/site-packages/platformdirs/api.py new file mode 100644 index 0000000..251600e --- /dev/null +++ b/venv/lib/python3.11/site-packages/platformdirs/api.py @@ -0,0 +1,299 @@ +"""Base API.""" + +from __future__ import annotations + +import os +from abc import ABC, abstractmethod +from pathlib import Path +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from collections.abc import Iterator + from typing import Literal + + +class PlatformDirsABC(ABC): # noqa: PLR0904 + """Abstract base class for platform directories.""" + + def __init__( # noqa: PLR0913, PLR0917 + self, + appname: str | None = None, + appauthor: str | Literal[False] | None = None, + version: str | None = None, + roaming: bool = False, # noqa: FBT001, FBT002 + multipath: bool = False, # noqa: FBT001, FBT002 + opinion: bool = True, # noqa: FBT001, FBT002 + ensure_exists: bool = False, # noqa: FBT001, FBT002 + ) -> None: + """ + Create a new platform directory. + + :param appname: See `appname`. + :param appauthor: See `appauthor`. + :param version: See `version`. + :param roaming: See `roaming`. + :param multipath: See `multipath`. + :param opinion: See `opinion`. + :param ensure_exists: See `ensure_exists`. + + """ + self.appname = appname #: The name of application. + self.appauthor = appauthor + """ + The name of the app author or distributing body for this application. + + Typically, it is the owning company name. Defaults to `appname`. You may pass ``False`` to disable it. + + """ + self.version = version + """ + An optional version path element to append to the path. + + You might want to use this if you want multiple versions of your app to be able to run independently. If used, + this would typically be ``.``. + + """ + self.roaming = roaming + """ + Whether to use the roaming appdata directory on Windows. + + That means that for users on a Windows network setup for roaming profiles, this user data will be synced on + login (see + `here `_). + + """ + self.multipath = multipath + """ + An optional parameter which indicates that the entire list of data dirs should be returned. + + By default, the first item would only be returned. + + """ + self.opinion = opinion #: A flag to indicating to use opinionated values. + self.ensure_exists = ensure_exists + """ + Optionally create the directory (and any missing parents) upon access if it does not exist. + + By default, no directories are created. + + """ + + def _append_app_name_and_version(self, *base: str) -> str: + params = list(base[1:]) + if self.appname: + params.append(self.appname) + if self.version: + params.append(self.version) + path = os.path.join(base[0], *params) # noqa: PTH118 + self._optionally_create_directory(path) + return path + + def _optionally_create_directory(self, path: str) -> None: + if self.ensure_exists: + Path(path).mkdir(parents=True, exist_ok=True) + + def _first_item_as_path_if_multipath(self, directory: str) -> Path: + if self.multipath: + # If multipath is True, the first path is returned. + directory = directory.partition(os.pathsep)[0] + return Path(directory) + + @property + @abstractmethod + def user_data_dir(self) -> str: + """:return: data directory tied to the user""" + + @property + @abstractmethod + def site_data_dir(self) -> str: + """:return: data directory shared by users""" + + @property + @abstractmethod + def user_config_dir(self) -> str: + """:return: config directory tied to the user""" + + @property + @abstractmethod + def site_config_dir(self) -> str: + """:return: config directory shared by the users""" + + @property + @abstractmethod + def user_cache_dir(self) -> str: + """:return: cache directory tied to the user""" + + @property + @abstractmethod + def site_cache_dir(self) -> str: + """:return: cache directory shared by users""" + + @property + @abstractmethod + def user_state_dir(self) -> str: + """:return: state directory tied to the user""" + + @property + @abstractmethod + def user_log_dir(self) -> str: + """:return: log directory tied to the user""" + + @property + @abstractmethod + def user_documents_dir(self) -> str: + """:return: documents directory tied to the user""" + + @property + @abstractmethod + def user_downloads_dir(self) -> str: + """:return: downloads directory tied to the user""" + + @property + @abstractmethod + def user_pictures_dir(self) -> str: + """:return: pictures directory tied to the user""" + + @property + @abstractmethod + def user_videos_dir(self) -> str: + """:return: videos directory tied to the user""" + + @property + @abstractmethod + def user_music_dir(self) -> str: + """:return: music directory tied to the user""" + + @property + @abstractmethod + def user_desktop_dir(self) -> str: + """:return: desktop directory tied to the user""" + + @property + @abstractmethod + def user_runtime_dir(self) -> str: + """:return: runtime directory tied to the user""" + + @property + @abstractmethod + def site_runtime_dir(self) -> str: + """:return: runtime directory shared by users""" + + @property + def user_data_path(self) -> Path: + """:return: data path tied to the user""" + return Path(self.user_data_dir) + + @property + def site_data_path(self) -> Path: + """:return: data path shared by users""" + return Path(self.site_data_dir) + + @property + def user_config_path(self) -> Path: + """:return: config path tied to the user""" + return Path(self.user_config_dir) + + @property + def site_config_path(self) -> Path: + """:return: config path shared by the users""" + return Path(self.site_config_dir) + + @property + def user_cache_path(self) -> Path: + """:return: cache path tied to the user""" + return Path(self.user_cache_dir) + + @property + def site_cache_path(self) -> Path: + """:return: cache path shared by users""" + return Path(self.site_cache_dir) + + @property + def user_state_path(self) -> Path: + """:return: state path tied to the user""" + return Path(self.user_state_dir) + + @property + def user_log_path(self) -> Path: + """:return: log path tied to the user""" + return Path(self.user_log_dir) + + @property + def user_documents_path(self) -> Path: + """:return: documents a path tied to the user""" + return Path(self.user_documents_dir) + + @property + def user_downloads_path(self) -> Path: + """:return: downloads path tied to the user""" + return Path(self.user_downloads_dir) + + @property + def user_pictures_path(self) -> Path: + """:return: pictures path tied to the user""" + return Path(self.user_pictures_dir) + + @property + def user_videos_path(self) -> Path: + """:return: videos path tied to the user""" + return Path(self.user_videos_dir) + + @property + def user_music_path(self) -> Path: + """:return: music path tied to the user""" + return Path(self.user_music_dir) + + @property + def user_desktop_path(self) -> Path: + """:return: desktop path tied to the user""" + return Path(self.user_desktop_dir) + + @property + def user_runtime_path(self) -> Path: + """:return: runtime path tied to the user""" + return Path(self.user_runtime_dir) + + @property + def site_runtime_path(self) -> Path: + """:return: runtime path shared by users""" + return Path(self.site_runtime_dir) + + def iter_config_dirs(self) -> Iterator[str]: + """:yield: all user and site configuration directories.""" + yield self.user_config_dir + yield self.site_config_dir + + def iter_data_dirs(self) -> Iterator[str]: + """:yield: all user and site data directories.""" + yield self.user_data_dir + yield self.site_data_dir + + def iter_cache_dirs(self) -> Iterator[str]: + """:yield: all user and site cache directories.""" + yield self.user_cache_dir + yield self.site_cache_dir + + def iter_runtime_dirs(self) -> Iterator[str]: + """:yield: all user and site runtime directories.""" + yield self.user_runtime_dir + yield self.site_runtime_dir + + def iter_config_paths(self) -> Iterator[Path]: + """:yield: all user and site configuration paths.""" + for path in self.iter_config_dirs(): + yield Path(path) + + def iter_data_paths(self) -> Iterator[Path]: + """:yield: all user and site data paths.""" + for path in self.iter_data_dirs(): + yield Path(path) + + def iter_cache_paths(self) -> Iterator[Path]: + """:yield: all user and site cache paths.""" + for path in self.iter_cache_dirs(): + yield Path(path) + + def iter_runtime_paths(self) -> Iterator[Path]: + """:yield: all user and site runtime paths.""" + for path in self.iter_runtime_dirs(): + yield Path(path) diff --git a/venv/lib/python3.11/site-packages/platformdirs/macos.py b/venv/lib/python3.11/site-packages/platformdirs/macos.py new file mode 100644 index 0000000..30ab368 --- /dev/null +++ b/venv/lib/python3.11/site-packages/platformdirs/macos.py @@ -0,0 +1,146 @@ +"""macOS.""" + +from __future__ import annotations + +import os.path +import sys +from typing import TYPE_CHECKING + +from .api import PlatformDirsABC + +if TYPE_CHECKING: + from pathlib import Path + + +class MacOS(PlatformDirsABC): + """ + Platform directories for the macOS operating system. + + Follows the guidance from + `Apple documentation `_. + Makes use of the `appname `, + `version `, + `ensure_exists `. + + """ + + @property + def user_data_dir(self) -> str: + """:return: data directory tied to the user, e.g. ``~/Library/Application Support/$appname/$version``""" + return self._append_app_name_and_version(os.path.expanduser("~/Library/Application Support")) # noqa: PTH111 + + @property + def site_data_dir(self) -> str: + """ + :return: data directory shared by users, e.g. ``/Library/Application Support/$appname/$version``. + If we're using a Python binary managed by `Homebrew `_, the directory + will be under the Homebrew prefix, e.g. ``$homebrew_prefix/share/$appname/$version``. + If `multipath ` is enabled, and we're in Homebrew, + the response is a multi-path string separated by ":", e.g. + ``$homebrew_prefix/share/$appname/$version:/Library/Application Support/$appname/$version`` + """ + is_homebrew = "/opt/python" in sys.prefix + homebrew_prefix = sys.prefix.split("/opt/python")[0] if is_homebrew else "" + path_list = [self._append_app_name_and_version(f"{homebrew_prefix}/share")] if is_homebrew else [] + path_list.append(self._append_app_name_and_version("/Library/Application Support")) + if self.multipath: + return os.pathsep.join(path_list) + return path_list[0] + + @property + def site_data_path(self) -> Path: + """:return: data path shared by users. Only return the first item, even if ``multipath`` is set to ``True``""" + return self._first_item_as_path_if_multipath(self.site_data_dir) + + @property + def user_config_dir(self) -> str: + """:return: config directory tied to the user, same as `user_data_dir`""" + return self.user_data_dir + + @property + def site_config_dir(self) -> str: + """:return: config directory shared by the users, same as `site_data_dir`""" + return self.site_data_dir + + @property + def user_cache_dir(self) -> str: + """:return: cache directory tied to the user, e.g. ``~/Library/Caches/$appname/$version``""" + return self._append_app_name_and_version(os.path.expanduser("~/Library/Caches")) # noqa: PTH111 + + @property + def site_cache_dir(self) -> str: + """ + :return: cache directory shared by users, e.g. ``/Library/Caches/$appname/$version``. + If we're using a Python binary managed by `Homebrew `_, the directory + will be under the Homebrew prefix, e.g. ``$homebrew_prefix/var/cache/$appname/$version``. + If `multipath ` is enabled, and we're in Homebrew, + the response is a multi-path string separated by ":", e.g. + ``$homebrew_prefix/var/cache/$appname/$version:/Library/Caches/$appname/$version`` + """ + is_homebrew = "/opt/python" in sys.prefix + homebrew_prefix = sys.prefix.split("/opt/python")[0] if is_homebrew else "" + path_list = [self._append_app_name_and_version(f"{homebrew_prefix}/var/cache")] if is_homebrew else [] + path_list.append(self._append_app_name_and_version("/Library/Caches")) + if self.multipath: + return os.pathsep.join(path_list) + return path_list[0] + + @property + def site_cache_path(self) -> Path: + """:return: cache path shared by users. Only return the first item, even if ``multipath`` is set to ``True``""" + return self._first_item_as_path_if_multipath(self.site_cache_dir) + + @property + def user_state_dir(self) -> str: + """:return: state directory tied to the user, same as `user_data_dir`""" + return self.user_data_dir + + @property + def user_log_dir(self) -> str: + """:return: log directory tied to the user, e.g. ``~/Library/Logs/$appname/$version``""" + return self._append_app_name_and_version(os.path.expanduser("~/Library/Logs")) # noqa: PTH111 + + @property + def user_documents_dir(self) -> str: + """:return: documents directory tied to the user, e.g. ``~/Documents``""" + return os.path.expanduser("~/Documents") # noqa: PTH111 + + @property + def user_downloads_dir(self) -> str: + """:return: downloads directory tied to the user, e.g. ``~/Downloads``""" + return os.path.expanduser("~/Downloads") # noqa: PTH111 + + @property + def user_pictures_dir(self) -> str: + """:return: pictures directory tied to the user, e.g. ``~/Pictures``""" + return os.path.expanduser("~/Pictures") # noqa: PTH111 + + @property + def user_videos_dir(self) -> str: + """:return: videos directory tied to the user, e.g. ``~/Movies``""" + return os.path.expanduser("~/Movies") # noqa: PTH111 + + @property + def user_music_dir(self) -> str: + """:return: music directory tied to the user, e.g. ``~/Music``""" + return os.path.expanduser("~/Music") # noqa: PTH111 + + @property + def user_desktop_dir(self) -> str: + """:return: desktop directory tied to the user, e.g. ``~/Desktop``""" + return os.path.expanduser("~/Desktop") # noqa: PTH111 + + @property + def user_runtime_dir(self) -> str: + """:return: runtime directory tied to the user, e.g. ``~/Library/Caches/TemporaryItems/$appname/$version``""" + return self._append_app_name_and_version(os.path.expanduser("~/Library/Caches/TemporaryItems")) # noqa: PTH111 + + @property + def site_runtime_dir(self) -> str: + """:return: runtime directory shared by users, same as `user_runtime_dir`""" + return self.user_runtime_dir + + +__all__ = [ + "MacOS", +] diff --git a/venv/lib/python3.11/site-packages/platformdirs/py.typed b/venv/lib/python3.11/site-packages/platformdirs/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/platformdirs/unix.py b/venv/lib/python3.11/site-packages/platformdirs/unix.py new file mode 100644 index 0000000..fc75d8d --- /dev/null +++ b/venv/lib/python3.11/site-packages/platformdirs/unix.py @@ -0,0 +1,272 @@ +"""Unix.""" + +from __future__ import annotations + +import os +import sys +from configparser import ConfigParser +from pathlib import Path +from typing import TYPE_CHECKING, NoReturn + +from .api import PlatformDirsABC + +if TYPE_CHECKING: + from collections.abc import Iterator + +if sys.platform == "win32": + + def getuid() -> NoReturn: + msg = "should only be used on Unix" + raise RuntimeError(msg) + +else: + from os import getuid + + +class Unix(PlatformDirsABC): # noqa: PLR0904 + """ + On Unix/Linux, we follow the `XDG Basedir Spec `_. + + The spec allows overriding directories with environment variables. The examples shown are the default values, + alongside the name of the environment variable that overrides them. Makes use of the `appname + `, `version `, `multipath + `, `opinion `, `ensure_exists + `. + + """ + + @property + def user_data_dir(self) -> str: + """ + :return: data directory tied to the user, e.g. ``~/.local/share/$appname/$version`` or + ``$XDG_DATA_HOME/$appname/$version`` + """ + path = os.environ.get("XDG_DATA_HOME", "") + if not path.strip(): + path = os.path.expanduser("~/.local/share") # noqa: PTH111 + return self._append_app_name_and_version(path) + + @property + def _site_data_dirs(self) -> list[str]: + path = os.environ.get("XDG_DATA_DIRS", "") + if not path.strip(): + path = f"/usr/local/share{os.pathsep}/usr/share" + return [self._append_app_name_and_version(p) for p in path.split(os.pathsep)] + + @property + def site_data_dir(self) -> str: + """ + :return: data directories shared by users (if `multipath ` is + enabled and ``XDG_DATA_DIRS`` is set and a multi path the response is also a multi path separated by the + OS path separator), e.g. ``/usr/local/share/$appname/$version`` or ``/usr/share/$appname/$version`` + """ + # XDG default for $XDG_DATA_DIRS; only first, if multipath is False + dirs = self._site_data_dirs + if not self.multipath: + return dirs[0] + return os.pathsep.join(dirs) + + @property + def user_config_dir(self) -> str: + """ + :return: config directory tied to the user, e.g. ``~/.config/$appname/$version`` or + ``$XDG_CONFIG_HOME/$appname/$version`` + """ + path = os.environ.get("XDG_CONFIG_HOME", "") + if not path.strip(): + path = os.path.expanduser("~/.config") # noqa: PTH111 + return self._append_app_name_and_version(path) + + @property + def _site_config_dirs(self) -> list[str]: + path = os.environ.get("XDG_CONFIG_DIRS", "") + if not path.strip(): + path = "/etc/xdg" + return [self._append_app_name_and_version(p) for p in path.split(os.pathsep)] + + @property + def site_config_dir(self) -> str: + """ + :return: config directories shared by users (if `multipath ` + is enabled and ``XDG_CONFIG_DIRS`` is set and a multi path the response is also a multi path separated by + the OS path separator), e.g. ``/etc/xdg/$appname/$version`` + """ + # XDG default for $XDG_CONFIG_DIRS only first, if multipath is False + dirs = self._site_config_dirs + if not self.multipath: + return dirs[0] + return os.pathsep.join(dirs) + + @property + def user_cache_dir(self) -> str: + """ + :return: cache directory tied to the user, e.g. ``~/.cache/$appname/$version`` or + ``~/$XDG_CACHE_HOME/$appname/$version`` + """ + path = os.environ.get("XDG_CACHE_HOME", "") + if not path.strip(): + path = os.path.expanduser("~/.cache") # noqa: PTH111 + return self._append_app_name_and_version(path) + + @property + def site_cache_dir(self) -> str: + """:return: cache directory shared by users, e.g. ``/var/cache/$appname/$version``""" + return self._append_app_name_and_version("/var/cache") + + @property + def user_state_dir(self) -> str: + """ + :return: state directory tied to the user, e.g. ``~/.local/state/$appname/$version`` or + ``$XDG_STATE_HOME/$appname/$version`` + """ + path = os.environ.get("XDG_STATE_HOME", "") + if not path.strip(): + path = os.path.expanduser("~/.local/state") # noqa: PTH111 + return self._append_app_name_and_version(path) + + @property + def user_log_dir(self) -> str: + """:return: log directory tied to the user, same as `user_state_dir` if not opinionated else ``log`` in it""" + path = self.user_state_dir + if self.opinion: + path = os.path.join(path, "log") # noqa: PTH118 + self._optionally_create_directory(path) + return path + + @property + def user_documents_dir(self) -> str: + """:return: documents directory tied to the user, e.g. ``~/Documents``""" + return _get_user_media_dir("XDG_DOCUMENTS_DIR", "~/Documents") + + @property + def user_downloads_dir(self) -> str: + """:return: downloads directory tied to the user, e.g. ``~/Downloads``""" + return _get_user_media_dir("XDG_DOWNLOAD_DIR", "~/Downloads") + + @property + def user_pictures_dir(self) -> str: + """:return: pictures directory tied to the user, e.g. ``~/Pictures``""" + return _get_user_media_dir("XDG_PICTURES_DIR", "~/Pictures") + + @property + def user_videos_dir(self) -> str: + """:return: videos directory tied to the user, e.g. ``~/Videos``""" + return _get_user_media_dir("XDG_VIDEOS_DIR", "~/Videos") + + @property + def user_music_dir(self) -> str: + """:return: music directory tied to the user, e.g. ``~/Music``""" + return _get_user_media_dir("XDG_MUSIC_DIR", "~/Music") + + @property + def user_desktop_dir(self) -> str: + """:return: desktop directory tied to the user, e.g. ``~/Desktop``""" + return _get_user_media_dir("XDG_DESKTOP_DIR", "~/Desktop") + + @property + def user_runtime_dir(self) -> str: + """ + :return: runtime directory tied to the user, e.g. ``/run/user/$(id -u)/$appname/$version`` or + ``$XDG_RUNTIME_DIR/$appname/$version``. + + For FreeBSD/OpenBSD/NetBSD, it would return ``/var/run/user/$(id -u)/$appname/$version`` if + exists, otherwise ``/tmp/runtime-$(id -u)/$appname/$version``, if``$XDG_RUNTIME_DIR`` + is not set. + """ + path = os.environ.get("XDG_RUNTIME_DIR", "") + if not path.strip(): + if sys.platform.startswith(("freebsd", "openbsd", "netbsd")): + path = f"/var/run/user/{getuid()}" + if not Path(path).exists(): + path = f"/tmp/runtime-{getuid()}" # noqa: S108 + else: + path = f"/run/user/{getuid()}" + return self._append_app_name_and_version(path) + + @property + def site_runtime_dir(self) -> str: + """ + :return: runtime directory shared by users, e.g. ``/run/$appname/$version`` or \ + ``$XDG_RUNTIME_DIR/$appname/$version``. + + Note that this behaves almost exactly like `user_runtime_dir` if ``$XDG_RUNTIME_DIR`` is set, but will + fall back to paths associated to the root user instead of a regular logged-in user if it's not set. + + If you wish to ensure that a logged-in root user path is returned e.g. ``/run/user/0``, use `user_runtime_dir` + instead. + + For FreeBSD/OpenBSD/NetBSD, it would return ``/var/run/$appname/$version`` if ``$XDG_RUNTIME_DIR`` is not set. + """ + path = os.environ.get("XDG_RUNTIME_DIR", "") + if not path.strip(): + if sys.platform.startswith(("freebsd", "openbsd", "netbsd")): + path = "/var/run" + else: + path = "/run" + return self._append_app_name_and_version(path) + + @property + def site_data_path(self) -> Path: + """:return: data path shared by users. Only return the first item, even if ``multipath`` is set to ``True``""" + return self._first_item_as_path_if_multipath(self.site_data_dir) + + @property + def site_config_path(self) -> Path: + """:return: config path shared by the users, returns the first item, even if ``multipath`` is set to ``True``""" + return self._first_item_as_path_if_multipath(self.site_config_dir) + + @property + def site_cache_path(self) -> Path: + """:return: cache path shared by users. Only return the first item, even if ``multipath`` is set to ``True``""" + return self._first_item_as_path_if_multipath(self.site_cache_dir) + + def iter_config_dirs(self) -> Iterator[str]: + """:yield: all user and site configuration directories.""" + yield self.user_config_dir + yield from self._site_config_dirs + + def iter_data_dirs(self) -> Iterator[str]: + """:yield: all user and site data directories.""" + yield self.user_data_dir + yield from self._site_data_dirs + + +def _get_user_media_dir(env_var: str, fallback_tilde_path: str) -> str: + media_dir = _get_user_dirs_folder(env_var) + if media_dir is None: + media_dir = os.environ.get(env_var, "").strip() + if not media_dir: + media_dir = os.path.expanduser(fallback_tilde_path) # noqa: PTH111 + + return media_dir + + +def _get_user_dirs_folder(key: str) -> str | None: + """ + Return directory from user-dirs.dirs config file. + + See https://freedesktop.org/wiki/Software/xdg-user-dirs/. + + """ + user_dirs_config_path = Path(Unix().user_config_dir) / "user-dirs.dirs" + if user_dirs_config_path.exists(): + parser = ConfigParser() + + with user_dirs_config_path.open() as stream: + # Add fake section header, so ConfigParser doesn't complain + parser.read_string(f"[top]\n{stream.read()}") + + if key not in parser["top"]: + return None + + path = parser["top"][key].strip('"') + # Handle relative home paths + return path.replace("$HOME", os.path.expanduser("~")) # noqa: PTH111 + + return None + + +__all__ = [ + "Unix", +] diff --git a/venv/lib/python3.11/site-packages/platformdirs/version.py b/venv/lib/python3.11/site-packages/platformdirs/version.py new file mode 100644 index 0000000..3575282 --- /dev/null +++ b/venv/lib/python3.11/site-packages/platformdirs/version.py @@ -0,0 +1,34 @@ +# file generated by setuptools-scm +# don't change, don't track in version control + +__all__ = [ + "__version__", + "__version_tuple__", + "version", + "version_tuple", + "__commit_id__", + "commit_id", +] + +TYPE_CHECKING = False +if TYPE_CHECKING: + from typing import Tuple + from typing import Union + + VERSION_TUPLE = Tuple[Union[int, str], ...] + COMMIT_ID = Union[str, None] +else: + VERSION_TUPLE = object + COMMIT_ID = object + +version: str +__version__: str +__version_tuple__: VERSION_TUPLE +version_tuple: VERSION_TUPLE +commit_id: COMMIT_ID +__commit_id__: COMMIT_ID + +__version__ = version = '4.5.0' +__version_tuple__ = version_tuple = (4, 5, 0) + +__commit_id__ = commit_id = None diff --git a/venv/lib/python3.11/site-packages/platformdirs/windows.py b/venv/lib/python3.11/site-packages/platformdirs/windows.py new file mode 100644 index 0000000..d7bc960 --- /dev/null +++ b/venv/lib/python3.11/site-packages/platformdirs/windows.py @@ -0,0 +1,272 @@ +"""Windows.""" + +from __future__ import annotations + +import os +import sys +from functools import lru_cache +from typing import TYPE_CHECKING + +from .api import PlatformDirsABC + +if TYPE_CHECKING: + from collections.abc import Callable + + +class Windows(PlatformDirsABC): + """ + `MSDN on where to store app data files `_. + + Makes use of the `appname `, `appauthor + `, `version `, `roaming + `, `opinion `, `ensure_exists + `. + + """ + + @property + def user_data_dir(self) -> str: + """ + :return: data directory tied to the user, e.g. + ``%USERPROFILE%\\AppData\\Local\\$appauthor\\$appname`` (not roaming) or + ``%USERPROFILE%\\AppData\\Roaming\\$appauthor\\$appname`` (roaming) + """ + const = "CSIDL_APPDATA" if self.roaming else "CSIDL_LOCAL_APPDATA" + path = os.path.normpath(get_win_folder(const)) + return self._append_parts(path) + + def _append_parts(self, path: str, *, opinion_value: str | None = None) -> str: + params = [] + if self.appname: + if self.appauthor is not False: + author = self.appauthor or self.appname + params.append(author) + params.append(self.appname) + if opinion_value is not None and self.opinion: + params.append(opinion_value) + if self.version: + params.append(self.version) + path = os.path.join(path, *params) # noqa: PTH118 + self._optionally_create_directory(path) + return path + + @property + def site_data_dir(self) -> str: + """:return: data directory shared by users, e.g. ``C:\\ProgramData\\$appauthor\\$appname``""" + path = os.path.normpath(get_win_folder("CSIDL_COMMON_APPDATA")) + return self._append_parts(path) + + @property + def user_config_dir(self) -> str: + """:return: config directory tied to the user, same as `user_data_dir`""" + return self.user_data_dir + + @property + def site_config_dir(self) -> str: + """:return: config directory shared by the users, same as `site_data_dir`""" + return self.site_data_dir + + @property + def user_cache_dir(self) -> str: + """ + :return: cache directory tied to the user (if opinionated with ``Cache`` folder within ``$appname``) e.g. + ``%USERPROFILE%\\AppData\\Local\\$appauthor\\$appname\\Cache\\$version`` + """ + path = os.path.normpath(get_win_folder("CSIDL_LOCAL_APPDATA")) + return self._append_parts(path, opinion_value="Cache") + + @property + def site_cache_dir(self) -> str: + """:return: cache directory shared by users, e.g. ``C:\\ProgramData\\$appauthor\\$appname\\Cache\\$version``""" + path = os.path.normpath(get_win_folder("CSIDL_COMMON_APPDATA")) + return self._append_parts(path, opinion_value="Cache") + + @property + def user_state_dir(self) -> str: + """:return: state directory tied to the user, same as `user_data_dir`""" + return self.user_data_dir + + @property + def user_log_dir(self) -> str: + """:return: log directory tied to the user, same as `user_data_dir` if not opinionated else ``Logs`` in it""" + path = self.user_data_dir + if self.opinion: + path = os.path.join(path, "Logs") # noqa: PTH118 + self._optionally_create_directory(path) + return path + + @property + def user_documents_dir(self) -> str: + """:return: documents directory tied to the user e.g. ``%USERPROFILE%\\Documents``""" + return os.path.normpath(get_win_folder("CSIDL_PERSONAL")) + + @property + def user_downloads_dir(self) -> str: + """:return: downloads directory tied to the user e.g. ``%USERPROFILE%\\Downloads``""" + return os.path.normpath(get_win_folder("CSIDL_DOWNLOADS")) + + @property + def user_pictures_dir(self) -> str: + """:return: pictures directory tied to the user e.g. ``%USERPROFILE%\\Pictures``""" + return os.path.normpath(get_win_folder("CSIDL_MYPICTURES")) + + @property + def user_videos_dir(self) -> str: + """:return: videos directory tied to the user e.g. ``%USERPROFILE%\\Videos``""" + return os.path.normpath(get_win_folder("CSIDL_MYVIDEO")) + + @property + def user_music_dir(self) -> str: + """:return: music directory tied to the user e.g. ``%USERPROFILE%\\Music``""" + return os.path.normpath(get_win_folder("CSIDL_MYMUSIC")) + + @property + def user_desktop_dir(self) -> str: + """:return: desktop directory tied to the user, e.g. ``%USERPROFILE%\\Desktop``""" + return os.path.normpath(get_win_folder("CSIDL_DESKTOPDIRECTORY")) + + @property + def user_runtime_dir(self) -> str: + """ + :return: runtime directory tied to the user, e.g. + ``%USERPROFILE%\\AppData\\Local\\Temp\\$appauthor\\$appname`` + """ + path = os.path.normpath(os.path.join(get_win_folder("CSIDL_LOCAL_APPDATA"), "Temp")) # noqa: PTH118 + return self._append_parts(path) + + @property + def site_runtime_dir(self) -> str: + """:return: runtime directory shared by users, same as `user_runtime_dir`""" + return self.user_runtime_dir + + +def get_win_folder_from_env_vars(csidl_name: str) -> str: + """Get folder from environment variables.""" + result = get_win_folder_if_csidl_name_not_env_var(csidl_name) + if result is not None: + return result + + env_var_name = { + "CSIDL_APPDATA": "APPDATA", + "CSIDL_COMMON_APPDATA": "ALLUSERSPROFILE", + "CSIDL_LOCAL_APPDATA": "LOCALAPPDATA", + }.get(csidl_name) + if env_var_name is None: + msg = f"Unknown CSIDL name: {csidl_name}" + raise ValueError(msg) + result = os.environ.get(env_var_name) + if result is None: + msg = f"Unset environment variable: {env_var_name}" + raise ValueError(msg) + return result + + +def get_win_folder_if_csidl_name_not_env_var(csidl_name: str) -> str | None: + """Get a folder for a CSIDL name that does not exist as an environment variable.""" + if csidl_name == "CSIDL_PERSONAL": + return os.path.join(os.path.normpath(os.environ["USERPROFILE"]), "Documents") # noqa: PTH118 + + if csidl_name == "CSIDL_DOWNLOADS": + return os.path.join(os.path.normpath(os.environ["USERPROFILE"]), "Downloads") # noqa: PTH118 + + if csidl_name == "CSIDL_MYPICTURES": + return os.path.join(os.path.normpath(os.environ["USERPROFILE"]), "Pictures") # noqa: PTH118 + + if csidl_name == "CSIDL_MYVIDEO": + return os.path.join(os.path.normpath(os.environ["USERPROFILE"]), "Videos") # noqa: PTH118 + + if csidl_name == "CSIDL_MYMUSIC": + return os.path.join(os.path.normpath(os.environ["USERPROFILE"]), "Music") # noqa: PTH118 + return None + + +def get_win_folder_from_registry(csidl_name: str) -> str: + """ + Get folder from the registry. + + This is a fallback technique at best. I'm not sure if using the registry for these guarantees us the correct answer + for all CSIDL_* names. + + """ + shell_folder_name = { + "CSIDL_APPDATA": "AppData", + "CSIDL_COMMON_APPDATA": "Common AppData", + "CSIDL_LOCAL_APPDATA": "Local AppData", + "CSIDL_PERSONAL": "Personal", + "CSIDL_DOWNLOADS": "{374DE290-123F-4565-9164-39C4925E467B}", + "CSIDL_MYPICTURES": "My Pictures", + "CSIDL_MYVIDEO": "My Video", + "CSIDL_MYMUSIC": "My Music", + }.get(csidl_name) + if shell_folder_name is None: + msg = f"Unknown CSIDL name: {csidl_name}" + raise ValueError(msg) + if sys.platform != "win32": # only needed for mypy type checker to know that this code runs only on Windows + raise NotImplementedError + import winreg # noqa: PLC0415 + + key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders") + directory, _ = winreg.QueryValueEx(key, shell_folder_name) + return str(directory) + + +def get_win_folder_via_ctypes(csidl_name: str) -> str: + """Get folder with ctypes.""" + # There is no 'CSIDL_DOWNLOADS'. + # Use 'CSIDL_PROFILE' (40) and append the default folder 'Downloads' instead. + # https://learn.microsoft.com/en-us/windows/win32/shell/knownfolderid + + import ctypes # noqa: PLC0415 + + csidl_const = { + "CSIDL_APPDATA": 26, + "CSIDL_COMMON_APPDATA": 35, + "CSIDL_LOCAL_APPDATA": 28, + "CSIDL_PERSONAL": 5, + "CSIDL_MYPICTURES": 39, + "CSIDL_MYVIDEO": 14, + "CSIDL_MYMUSIC": 13, + "CSIDL_DOWNLOADS": 40, + "CSIDL_DESKTOPDIRECTORY": 16, + }.get(csidl_name) + if csidl_const is None: + msg = f"Unknown CSIDL name: {csidl_name}" + raise ValueError(msg) + + buf = ctypes.create_unicode_buffer(1024) + windll = getattr(ctypes, "windll") # noqa: B009 # using getattr to avoid false positive with mypy type checker + windll.shell32.SHGetFolderPathW(None, csidl_const, None, 0, buf) + + # Downgrade to short path name if it has high-bit chars. + if any(ord(c) > 255 for c in buf): # noqa: PLR2004 + buf2 = ctypes.create_unicode_buffer(1024) + if windll.kernel32.GetShortPathNameW(buf.value, buf2, 1024): + buf = buf2 + + if csidl_name == "CSIDL_DOWNLOADS": + return os.path.join(buf.value, "Downloads") # noqa: PTH118 + + return buf.value + + +def _pick_get_win_folder() -> Callable[[str], str]: + try: + import ctypes # noqa: PLC0415 + except ImportError: + pass + else: + if hasattr(ctypes, "windll"): + return get_win_folder_via_ctypes + try: + import winreg # noqa: PLC0415, F401 + except ImportError: + return get_win_folder_from_env_vars + else: + return get_win_folder_from_registry + + +get_win_folder = lru_cache(maxsize=None)(_pick_get_win_folder()) + +__all__ = [ + "Windows", +] diff --git a/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/AUTHORS.md b/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/AUTHORS.md new file mode 100644 index 0000000..e344b82 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/AUTHORS.md @@ -0,0 +1,25 @@ +# Project Authors + +The following people have made contributions to the project (in alphabetical +order by last name) and are considered "The Pooch Developers": + +* [Anderson Banihirwe](https://github.com/andersy005) - The US National Center for Atmospheric Research, USA (ORCID: [0000-0001-6583-571X](https://orcid.org/0000-0001-6583-571X)) +* [Genevieve Buckley](https://github.com/GenevieveBuckley) - Monash University, Australia - (ORCID: [0000-0003-2763-492X](https://orcid.org/0000-0003-2763-492X)) +* [Luke Gregor](https://github.com/lukegre) - Environmental Physics, ETH Zurich, Zurich, Switzerland (ORCID: [0000-0001-6071-1857](https://orcid.org/0000-0001-6071-1857)) +* [Mathias Hauser](https://github.com/mathause) - Institute for Atmospheric and Climate Science, ETH Zurich, Zurich, Switzerland (ORCID: [0000-0002-0057-4878](https://orcid.org/0000-0002-0057-4878)) +* [Mark Harfouche](https://github.com/hmaarrfk) - Ramona Optics Inc. - [0000-0002-4657-4603](https://orcid.org/0000-0002-4657-4603) +* [Danilo Horta](https://github.com/horta) - EMBL-EBI, UK +* [Hugo van Kemenade](https://github.com/hugovk) - Independent (Non-affiliated) (ORCID: [0000-0001-5715-8632](https://www.orcid.org/0000-0001-5715-8632)) +* [Dominic Kempf](https://github.com/dokempf) - Scientific Software Center, Heidelberg University, Germany (ORCID: [0000-0002-6140-2332](https://www.orcid.org/0000-0002-6140-2332)) +* [Kacper Kowalik](https://github.com/Xarthisius) - National Center for Supercomputing Applications, University of Illinois at Urbana-Champaign, USA (ORCID: [0000-0003-1709-3744](https://www.orcid.org/0000-0003-1709-3744)) +* [John Leeman](https://github.com/jrleeman) +* [Björn Ludwig](https://github.com/BjoernLudwigPTB) - Physikalisch-Technische Bundesanstalt, Germany (ORCID: [0000-0002-5910-9137](https://www.orcid.org/0000-0002-5910-9137)) +* [Daniel McCloy](https://github.com/drammock) - University of Washington, USA (ORCID: [0000-0002-7572-3241](https://orcid.org/0000-0002-7572-3241)) +* [Juan Nunez-Iglesias](https://github.com/jni) - Monash University, Australia (ORCID: [0000-0002-7239-5828](https://orcid.org/0000-0002-7239-5828)) +* [Rémi Rampin](https://github.com/remram44) - New York University, USA (ORCID: [0000-0002-0524-2282](https://www.orcid.org/0000-0002-0524-2282)) +* [Clément Robert](https://github.com/neutrinoceros) - Institut de Planétologie et d'Astrophysique de Grenoble, France (ORCID: [0000-0001-8629-7068](https://orcid.org/0000-0001-8629-7068)) +* [Daniel Shapero](https://github.com/danshapero) - Polar Science Center, University of Washington Applied Physics Lab, USA (ORCID: [0000-0002-3651-0649](https://www.orcid.org/0000-0002-3651-0649)) +* [Santiago Soler](https://github.com/santisoler) - CONICET, Argentina; Instituto Geofísico Sismológico Volponi, Universidad Nacional de San Juan, Argentina (ORCID: [0000-0001-9202-5317](https://www.orcid.org/0000-0001-9202-5317)) +* [Matthew Turk](https://github.com/matthewturk) - University of Illinois at Urbana-Champaign, USA (ORCID: [0000-0002-5294-0198](https://www.orcid.org/0000-0002-5294-0198)) +* [Leonardo Uieda](https://github.com/leouieda) - Universidade de São Paulo, Brazil (ORCID: [0000-0001-6123-9515](https://www.orcid.org/0000-0001-6123-9515)) +* [Antonio Valentino](https://github.com/avalentino) diff --git a/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/LICENSE.txt b/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/LICENSE.txt new file mode 100644 index 0000000..1c32418 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/LICENSE.txt @@ -0,0 +1,25 @@ +Copyright (c) 2018 The Pooch Developers +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +* Neither the name of the copyright holders nor the names of any contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/METADATA b/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/METADATA new file mode 100644 index 0000000..c1a873e --- /dev/null +++ b/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/METADATA @@ -0,0 +1,240 @@ +Metadata-Version: 2.1 +Name: pooch +Version: 1.8.2 +Summary: A friend to fetch your data files +Author-email: The Pooch Developers +Maintainer-email: Leonardo Uieda +License: BSD-3-Clause +Project-URL: Documentation, https://www.fatiando.org/pooch +Project-URL: Changelog, https://www.fatiando.org/pooch/latest/changes.html +Project-URL: Bug Tracker, https://github.com/fatiando/pooch/issues +Project-URL: Source Code, https://github.com/fatiando/pooch +Keywords: data,download,caching,http +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Science/Research +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: Education +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Topic :: Scientific/Engineering +Classifier: Topic :: Software Development :: Libraries +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Requires-Python: >=3.7 +Description-Content-Type: text/markdown +License-File: LICENSE.txt +License-File: AUTHORS.md +Requires-Dist: platformdirs >=2.5.0 +Requires-Dist: packaging >=20.0 +Requires-Dist: requests >=2.19.0 +Provides-Extra: progress +Requires-Dist: tqdm <5.0.0,>=4.41.0 ; extra == 'progress' +Provides-Extra: sftp +Requires-Dist: paramiko >=2.7.0 ; extra == 'sftp' +Provides-Extra: xxhash +Requires-Dist: xxhash >=1.4.3 ; extra == 'xxhash' + +Pooch: A friend to fetch your data files + +

+Documentation (latest) • +Documentation (main branch) • +Contributing • +Contact +

+ +

+Part of the Fatiando a Terra project +

+ +

+Latest version on PyPI +Latest version on conda-forge +Test coverage status +Compatible Python versions. +DOI used to cite Pooch +

+ +## About + +> Just want to download a file without messing with `requests` and `urllib`? +> Trying to add sample datasets to your Python package? +> **Pooch is here to help!** + +*Pooch* is a **Python library** that can manage data by **downloading files** +from a server (only when needed) and storing them locally in a data **cache** +(a folder on your computer). + +* Pure Python and minimal dependencies. +* Download files over HTTP, FTP, and from data repositories like Zenodo and figshare. +* Built-in post-processors to unzip/decompress the data after download. +* Designed to be extended: create custom downloaders and post-processors. + +Are you a **scientist** or researcher? Pooch can help you too! + +* Host your data on a repository and download using the DOI. +* Automatically download data using code instead of telling colleagues to do it themselves. +* Make sure everyone running the code has the same version of the data files. + +## Projects using Pooch + +[SciPy](https://github.com/scipy/scipy), +[scikit-image](https://github.com/scikit-image/scikit-image), +[xarray](https://github.com/pydata/xarray), +[Ensaio](https://github.com/fatiando/ensaio), +[GemPy](https://github.com/cgre-aachen/gempy), +[MetPy](https://github.com/Unidata/MetPy), +[napari](https://github.com/napari/napari), +[Satpy](https://github.com/pytroll/satpy), +[yt](https://github.com/yt-project/yt), +[PyVista](https://github.com/pyvista/pyvista), +[icepack](https://github.com/icepack/icepack), +[histolab](https://github.com/histolab/histolab), +[seaborn-image](https://github.com/SarthakJariwala/seaborn-image), +[Open AR-Sandbox](https://github.com/cgre-aachen/open_AR_Sandbox), +[climlab](https://github.com/climlab/climlab), +[mne-python](https://github.com/mne-tools/mne-python), +[GemGIS](https://github.com/cgre-aachen/gemgis), +[SHTOOLS](https://github.com/SHTOOLS/SHTOOLS), +[MOABB](https://github.com/NeuroTechX/moabb), +[GeoViews](https://github.com/holoviz/geoviews), +[ScopeSim](https://github.com/AstarVienna/ScopeSim), +[Brainrender](https://github.com/brainglobe/brainrender), +[pyxem](https://github.com/pyxem/pyxem), +[cellfinder](https://github.com/brainglobe/cellfinder), +[PVGeo](https://github.com/OpenGeoVis/PVGeo), +[geosnap](https://github.com/oturns/geosnap), +[BioCypher](https://github.com/biocypher/biocypher), +[cf-xarray](https://github.com/xarray-contrib/cf-xarray), +[Scirpy](https://github.com/scverse/scirpy), +[rembg](https://github.com/danielgatis/rembg), +[DASCore](https://github.com/DASDAE/dascore), +[scikit-mobility](https://github.com/scikit-mobility/scikit-mobility), +[Py-ART](https://github.com/ARM-DOE/pyart), +[HyperSpy](https://github.com/hyperspy/hyperspy), +[RosettaSciIO](https://github.com/hyperspy/rosettasciio), +[eXSpy](https://github.com/hyperspy/exspy) + + +> If you're using Pooch, **send us a pull request** adding your project to the list. + +## Example + +For a **scientist downloading a data file** for analysis: + +```python +import pooch +import pandas as pd + +# Download a file and save it locally, returning the path to it. +# Running this again will not cause a download. Pooch will check the hash +# (checksum) of the downloaded file against the given value to make sure +# it's the right file (not corrupted or outdated). +fname_bathymetry = pooch.retrieve( + url="https://github.com/fatiando-data/caribbean-bathymetry/releases/download/v1/caribbean-bathymetry.csv.xz", + known_hash="md5:a7332aa6e69c77d49d7fb54b764caa82", +) + +# Pooch can also download based on a DOI from certain providers. +fname_gravity = pooch.retrieve( + url="doi:10.5281/zenodo.5882430/southern-africa-gravity.csv.xz", + known_hash="md5:1dee324a14e647855366d6eb01a1ef35", +) + +# Load the data with Pandas +data_bathymetry = pd.read_csv(fname_bathymetry) +data_gravity = pd.read_csv(fname_gravity) +``` + +For **package developers** including sample data in their projects: + +```python +""" +Module mypackage/datasets.py +""" +import pkg_resources +import pandas +import pooch + +# Get the version string from your project. You have one of these, right? +from . import version + +# Create a new friend to manage your sample data storage +GOODBOY = pooch.create( + # Folder where the data will be stored. For a sensible default, use the + # default cache folder for your OS. + path=pooch.os_cache("mypackage"), + # Base URL of the remote data store. Will call .format on this string + # to insert the version (see below). + base_url="https://github.com/myproject/mypackage/raw/{version}/data/", + # Pooches are versioned so that you can use multiple versions of a + # package simultaneously. Use PEP440 compliant version number. The + # version will be appended to the path. + version=version, + # If a version as a "+XX.XXXXX" suffix, we'll assume that this is a dev + # version and replace the version with this string. + version_dev="main", + # An environment variable that overwrites the path. + env="MYPACKAGE_DATA_DIR", + # The cache file registry. A dictionary with all files managed by this + # pooch. Keys are the file names (relative to *base_url*) and values + # are their respective SHA256 hashes. Files will be downloaded + # automatically when needed (see fetch_gravity_data). + registry={"gravity-data.csv": "89y10phsdwhs09whljwc09whcowsdhcwodcydw"} +) +# You can also load the registry from a file. Each line contains a file +# name and it's sha256 hash separated by a space. This makes it easier to +# manage large numbers of data files. The registry file should be packaged +# and distributed with your software. +GOODBOY.load_registry( + pkg_resources.resource_stream("mypackage", "registry.txt") +) + +# Define functions that your users can call to get back the data in memory +def fetch_gravity_data(): + """ + Load some sample gravity data to use in your docs. + """ + # Fetch the path to a file in the local storage. If it's not there, + # we'll download it. + fname = GOODBOY.fetch("gravity-data.csv") + # Load it with numpy/pandas/etc + data = pandas.read_csv(fname) + return data +``` + +## Getting involved + +🗨️ **Contact us:** +Find out more about how to reach us at +[fatiando.org/contact](https://www.fatiando.org/contact/). + +👩🏾‍💻 **Contributing to project development:** +Please read our +[Contributing Guide](https://github.com/fatiando/pooch/blob/main/CONTRIBUTING.md) +to see how you can help and give feedback. + +🧑🏾‍🤝‍🧑🏼 **Code of conduct:** +This project is released with a +[Code of Conduct](https://github.com/fatiando/community/blob/main/CODE_OF_CONDUCT.md). +By participating in this project you agree to abide by its terms. + +> **Imposter syndrome disclaimer:** +> We want your help. **No, really.** There may be a little voice inside your +> head that is telling you that you're not ready, that you aren't skilled +> enough to contribute. We assure you that the little voice in your head is +> wrong. Most importantly, **there are many valuable ways to contribute besides +> writing code**. +> +> *This disclaimer was adapted from the* +> [MetPy project](https://github.com/Unidata/MetPy). + +## License + +This is free software: you can redistribute it and/or modify it under the terms +of the **BSD 3-clause License**. A copy of this license is provided in +[`LICENSE.txt`](https://github.com/fatiando/pooch/blob/main/LICENSE.txt). diff --git a/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/RECORD b/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/RECORD new file mode 100644 index 0000000..c42d247 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/RECORD @@ -0,0 +1,55 @@ +pooch-1.8.2.dist-info/AUTHORS.md,sha256=pN11NP7NMVy18ETaj-F0rqLm791zr-d7f0Ja7oqvEvs,3293 +pooch-1.8.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +pooch-1.8.2.dist-info/LICENSE.txt,sha256=rwSC1Z_HqdaNn2RoLHTObopGhEBrs6IaGRrjKZUJFrQ,1496 +pooch-1.8.2.dist-info/METADATA,sha256=6KnsYchcfwpwOhLTwm9yQR7Ro1bmO-9fI_Op3KjgUiY,10452 +pooch-1.8.2.dist-info/RECORD,, +pooch-1.8.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92 +pooch-1.8.2.dist-info/top_level.txt,sha256=obom5VVMRubsFhFGNJpD4mAEkAVBqEa-xSVQ5uxNNQU,6 +pooch/__init__.py,sha256=uwCznhBOcue6p5JEhdIQ8vdzLIgn9DcgxwmHAWjUpxY,1882 +pooch/__pycache__/__init__.cpython-311.pyc,, +pooch/__pycache__/_version.cpython-311.pyc,, +pooch/__pycache__/core.cpython-311.pyc,, +pooch/__pycache__/downloaders.cpython-311.pyc,, +pooch/__pycache__/hashes.cpython-311.pyc,, +pooch/__pycache__/processors.cpython-311.pyc,, +pooch/__pycache__/utils.cpython-311.pyc,, +pooch/_version.py,sha256=wyeOGWTUT7rTWqRZmS_XmHAtprBx1jO6L7FxPeYTyMM,411 +pooch/core.py,sha256=oS5r4q8CrI3jBsre81R0p8w1Tn2gFGS-hFOw-ob18R4,32396 +pooch/downloaders.py,sha256=O-6778SvOSW2-HlUBbutsZ6WypB3EbQ1Uwu9jdnvbek,41047 +pooch/hashes.py,sha256=4YlD0iI3MXWOUzOeyrTOodvf34xd74DKCQfZKPlcZ9o,6801 +pooch/processors.py,sha256=jPQ2KX6j02uLPsoVtSANYna3293NGhaTErHDfJFDkk8,15860 +pooch/tests/__init__.py,sha256=MmdJHFLzh7lAd20PxF9YEhEZBQ5dX7sZ8IxaOBCNd3w,225 +pooch/tests/__pycache__/__init__.cpython-311.pyc,, +pooch/tests/__pycache__/test_core.cpython-311.pyc,, +pooch/tests/__pycache__/test_downloaders.cpython-311.pyc,, +pooch/tests/__pycache__/test_hashes.cpython-311.pyc,, +pooch/tests/__pycache__/test_integration.cpython-311.pyc,, +pooch/tests/__pycache__/test_processors.cpython-311.pyc,, +pooch/tests/__pycache__/test_utils.cpython-311.pyc,, +pooch/tests/__pycache__/test_version.cpython-311.pyc,, +pooch/tests/__pycache__/utils.cpython-311.pyc,, +pooch/tests/data/large-data.txt,sha256=mN4XH7Mg2oKYLmvw85lBif_0tCsjModpr84SvdNAREo,102077 +pooch/tests/data/registry-custom-url.txt,sha256=QmwZrr5VL4X_OeDy-nQ1bPcKo4UZyAnjRWb6MMZTsPc,838 +pooch/tests/data/registry-invalid.txt,sha256=RNPHyh7bQn0rCTYK6yHYBm6jonXZhFT6ghAe6czAQHM,136 +pooch/tests/data/registry-spaces.txt,sha256=Ak1fDFRq-LJyrCQbVMveQRU-fmvaCYWNlT5Pk7IcgaQ,177 +pooch/tests/data/registry.txt,sha256=cAYprVgjJwJ-4QlC2l5xtdgL6XNvH7--Jd6OjGkJb5U,808 +pooch/tests/data/registry_comments.txt,sha256=GdAL20h1baBuv2J9TQtbBTm38ys_aEojr7lwv78bjqE,855 +pooch/tests/data/store.tar.gz,sha256=CIx_Tg8YWbHHabtgZd4kN282Y3SBft6GkaasLknylRE,243 +pooch/tests/data/store.zip,sha256=BJjSoAHnEFG70qzSNG842ny9NFpjPLe_D4ogk4cUtRo,780 +pooch/tests/data/store/subdir/tiny-data.txt,sha256=uu4IlNuhSxIIXqyyBChLl-Ni9PPlpYB2k8yQ70FcGy0,59 +pooch/tests/data/store/tiny-data.txt,sha256=uu4IlNuhSxIIXqyyBChLl-Ni9PPlpYB2k8yQ70FcGy0,59 +pooch/tests/data/tiny-data.tar.gz,sha256=QVA_CDgU9DoBqOmjDCjXqf6Wg5qZcnp_3QrPfNW6tjs,176 +pooch/tests/data/tiny-data.txt,sha256=uu4IlNuhSxIIXqyyBChLl-Ni9PPlpYB2k8yQ70FcGy0,59 +pooch/tests/data/tiny-data.txt.bz2,sha256=dTZjaHpAQMkMhXgGGGfR32I-aqgBHIcKXb2I7jyC4wY,91 +pooch/tests/data/tiny-data.txt.gz,sha256=Li2mFhKRZXYXwyGS26lWNXBq-AxuczV1CBKQe1j9S1I,91 +pooch/tests/data/tiny-data.txt.xz,sha256=mdy1wypukWNEustLrcvC8rbuGWl30dgYdhDCHn5gd2U,116 +pooch/tests/data/tiny-data.zip,sha256=DUnpTwe8GGbsV-f9G5OjUfujaELsmxPdUL-U6N-jXLs,235 +pooch/tests/test_core.py,sha256=Eei0ypF1d9-gal16QC0YohbuArgtbHwE5dRepkbZSlM,26419 +pooch/tests/test_downloaders.py,sha256=gI4ruogbcyXh0K9sc54_UdAYSONsLXuRkimjJ8PC8uI,19085 +pooch/tests/test_hashes.py,sha256=oy5jexADMkkBnDnT6yg_1Z1bmx7EZcoj8AjG5lu7PMU,7318 +pooch/tests/test_integration.py,sha256=-aKV8nEbuQZI0AzoF-ujm2w5XZKqvlKRjh8l_oGJzC4,1686 +pooch/tests/test_processors.py,sha256=ExOsUdW1T6qjBvhF4pL_kITJ5WM2zq9CHGioM5nj2pM,11101 +pooch/tests/test_utils.py,sha256=g4ujEul7HhZHNHUZ-riWRuFJVA3di7IGpTN3vYKXF9Q,6452 +pooch/tests/test_version.py,sha256=RVw3MpWw6P6jB1Ap2Shx64zEs1a6NBP2cRFT097XDy8,545 +pooch/tests/utils.py,sha256=llkfzkgmJt12ENIQmpvWLQnrqgFrXdw8TF_XZFZ1bzk,6769 +pooch/utils.py,sha256=iNWkaYV8glNUmnFNy4abH-mpyAqeV5_mEdHyvajIjKI,10535 diff --git a/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/WHEEL b/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/WHEEL new file mode 100644 index 0000000..bab98d6 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.43.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/top_level.txt new file mode 100644 index 0000000..7a47dcc --- /dev/null +++ b/venv/lib/python3.11/site-packages/pooch-1.8.2.dist-info/top_level.txt @@ -0,0 +1 @@ +pooch diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/METADATA b/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/METADATA new file mode 100644 index 0000000..b0dbd66 --- /dev/null +++ b/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/METADATA @@ -0,0 +1,131 @@ +Metadata-Version: 2.4 +Name: psycopg2-binary +Version: 2.9.11 +Summary: psycopg2 - Python-PostgreSQL Database Adapter +Home-page: https://psycopg.org/ +Author: Federico Di Gregorio +Author-email: fog@initd.org +Maintainer: Daniele Varrazzo +Maintainer-email: daniele.varrazzo@gmail.com +License: LGPL with exceptions +Project-URL: Homepage, https://psycopg.org/ +Project-URL: Changes, https://www.psycopg.org/docs/news.html +Project-URL: Documentation, https://www.psycopg.org/docs/ +Project-URL: Code, https://github.com/psycopg/psycopg2 +Project-URL: Issue Tracker, https://github.com/psycopg/psycopg2/issues +Project-URL: Download, https://pypi.org/project/psycopg2/ +Platform: any +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL) +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: C +Classifier: Programming Language :: SQL +Classifier: Topic :: Database +Classifier: Topic :: Database :: Front-Ends +Classifier: Topic :: Software Development +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Operating System :: Microsoft :: Windows +Classifier: Operating System :: Unix +Requires-Python: >=3.9 +License-File: LICENSE +Dynamic: author +Dynamic: author-email +Dynamic: classifier +Dynamic: description +Dynamic: home-page +Dynamic: license +Dynamic: license-file +Dynamic: maintainer +Dynamic: maintainer-email +Dynamic: platform +Dynamic: project-url +Dynamic: requires-python +Dynamic: summary + +Psycopg is the most popular PostgreSQL database adapter for the Python +programming language. Its main features are the complete implementation of +the Python DB API 2.0 specification and the thread safety (several threads can +share the same connection). It was designed for heavily multi-threaded +applications that create and destroy lots of cursors and make a large number +of concurrent "INSERT"s or "UPDATE"s. + +Psycopg 2 is mostly implemented in C as a libpq wrapper, resulting in being +both efficient and secure. It features client-side and server-side cursors, +asynchronous communication and notifications, "COPY TO/COPY FROM" support. +Many Python types are supported out-of-the-box and adapted to matching +PostgreSQL data types; adaptation can be extended and customized thanks to a +flexible objects adaptation system. + +Psycopg 2 is both Unicode and Python 3 friendly. + +.. Note:: + + The psycopg2 package is still widely used and actively maintained, but it + is not expected to receive new features. + + `Psycopg 3`__ is the evolution of psycopg2 and is where `new features are + being developed`__: if you are starting a new project you should probably + start from 3! + + .. __: https://pypi.org/project/psycopg/ + .. __: https://www.psycopg.org/psycopg3/docs/index.html + + +Documentation +------------- + +Documentation is included in the ``doc`` directory and is `available online`__. + +.. __: https://www.psycopg.org/docs/ + +For any other resource (source code repository, bug tracker, mailing list) +please check the `project homepage`__. + +.. __: https://psycopg.org/ + + +Installation +------------ + +Building Psycopg requires a few prerequisites (a C compiler, some development +packages): please check the install_ and the faq_ documents in the ``doc`` dir +or online for the details. + +If prerequisites are met, you can install psycopg like any other Python +package, using ``pip`` to download it from PyPI_:: + + $ pip install psycopg2 + +or using ``setup.py`` if you have downloaded the source package locally:: + + $ python setup.py build + $ sudo python setup.py install + +You can also obtain a stand-alone package, not requiring a compiler or +external libraries, by installing the `psycopg2-binary`_ package from PyPI:: + + $ pip install psycopg2-binary + +The binary package is a practical choice for development and testing but in +production it is advised to use the package built from sources. + +.. _PyPI: https://pypi.org/project/psycopg2/ +.. _psycopg2-binary: https://pypi.org/project/psycopg2-binary/ +.. _install: https://www.psycopg.org/docs/install.html#install-from-source +.. _faq: https://www.psycopg.org/docs/faq.html#faq-compile + +:Build status: |gh-actions| + +.. |gh-actions| image:: https://github.com/psycopg/psycopg2/actions/workflows/tests.yml/badge.svg + :target: https://github.com/psycopg/psycopg2/actions/workflows/tests.yml + :alt: Build status diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/RECORD b/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/RECORD new file mode 100644 index 0000000..3f83db4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/RECORD @@ -0,0 +1,44 @@ +psycopg2/__init__.py,sha256=9mo5Qd0uWHiEBx2CdogGos2kNqtlNNGzbtYlGC0hWS8,4768 +psycopg2/__pycache__/__init__.cpython-311.pyc,, +psycopg2/__pycache__/_ipaddress.cpython-311.pyc,, +psycopg2/__pycache__/_json.cpython-311.pyc,, +psycopg2/__pycache__/_range.cpython-311.pyc,, +psycopg2/__pycache__/errorcodes.cpython-311.pyc,, +psycopg2/__pycache__/errors.cpython-311.pyc,, +psycopg2/__pycache__/extensions.cpython-311.pyc,, +psycopg2/__pycache__/extras.cpython-311.pyc,, +psycopg2/__pycache__/pool.cpython-311.pyc,, +psycopg2/__pycache__/sql.cpython-311.pyc,, +psycopg2/__pycache__/tz.cpython-311.pyc,, +psycopg2/_ipaddress.py,sha256=jkuyhLgqUGRBcLNWDM8QJysV6q1Npc_RYH4_kE7JZPU,2922 +psycopg2/_json.py,sha256=XPn4PnzbTg1Dcqz7n1JMv5dKhB5VFV6834GEtxSawt0,7153 +psycopg2/_psycopg.cpython-311-x86_64-linux-gnu.so,sha256=l7hrNzku7pFJ_E3qxECv51vVCBXqESlWzH5sGPUUf1o,335089 +psycopg2/_range.py,sha256=sXeenGraJEEw2I3mc8RlmNivy2jMg7zWoanDes2Ywp8,18494 +psycopg2/errorcodes.py,sha256=8BE_ZAP7bhsISKyLP0gkrWg_NNj1uj37dR356EDe6yo,14512 +psycopg2/errors.py,sha256=aAS4dJyTg1bsDzJDCRQAMB_s7zv-Q4yB6Yvih26I-0M,1425 +psycopg2/extensions.py,sha256=CG0kG5vL8Ot503UGlDXXJJFdFWLg4HE2_c1-lLOLc8M,6797 +psycopg2/extras.py,sha256=oBfrdvtWn8ITxc3x-h2h6IwHUsWdVqCdf4Gphb0JqY8,44215 +psycopg2/pool.py,sha256=UGEt8IdP3xNc2PGYNlG4sQvg8nhf4aeCnz39hTR0H8I,6316 +psycopg2/sql.py,sha256=OcFEAmpe2aMfrx0MEk4Lx00XvXXJCmvllaOVbJY-yoE,14779 +psycopg2/tz.py,sha256=r95kK7eGSpOYr_luCyYsznHMzjl52sLjsnSPXkXLzRI,4870 +psycopg2_binary-2.9.11.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +psycopg2_binary-2.9.11.dist-info/METADATA,sha256=1tdxRLsi5AoaySIZj6NHg0Ib24mQ7uvG-64QpxNB3fw,4936 +psycopg2_binary-2.9.11.dist-info/RECORD,, +psycopg2_binary-2.9.11.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +psycopg2_binary-2.9.11.dist-info/WHEEL,sha256=_CFvICYDmZlAYHt8L7Zn3n-BGLj8dkZLQPp22Piy5JE,151 +psycopg2_binary-2.9.11.dist-info/licenses/LICENSE,sha256=lhS4XfyacsWyyjMUTB1-HtOxwpdFnZ-yimpXYsLo1xs,2238 +psycopg2_binary-2.9.11.dist-info/top_level.txt,sha256=7dHGpLqQ3w-vGmGEVn-7uK90qU9fyrGdWWi7S-gTcnM,9 +psycopg2_binary.libs/libcom_err-2abe824b.so.2.1,sha256=VCbctU3QHJ7t2gXiF58ORxFOi0ilNP_p6UkW55Rxslc,17497 +psycopg2_binary.libs/libcrypto-6f3ad9f4.so.3,sha256=DL6gr6fEbBo1EA0kUj_96qvoAObHvHPd4KpEjSbahtA,6489873 +psycopg2_binary.libs/libgssapi_krb5-497db0c6.so.2.2,sha256=KnSwMw7pcygbJvjr5KzvDr-e6ZxraEl8-RUf_2xMNOE,345209 +psycopg2_binary.libs/libk5crypto-b1f99d5c.so.3.1,sha256=mETlAJ5wpq0vsitYcwaBD-Knsbn2uZItqhx4ujRm3ic,219953 +psycopg2_binary.libs/libkeyutils-dfe70bd6.so.1.5,sha256=wp5BsDz0st_7-0lglG4rQvgsDKXVPSMdPw_Fl7onRIg,17913 +psycopg2_binary.libs/libkrb5-fcafa220.so.3.3,sha256=sqq1KP9MqyFE5c4BskasCfV0oHKlP_Y-qB1rspsmuPE,1018953 +psycopg2_binary.libs/libkrb5support-d0bcff84.so.0.1,sha256=anH1fXSP73m05zbVNIh1VF0KIk-okotdYqPPJkf8EJ8,76873 +psycopg2_binary.libs/liblber-58fa78db.so.2.0.200,sha256=Nje9l51mjX8OLPXLupyelrAErzieh6_n34gQjmXcl50,60977 +psycopg2_binary.libs/libldap-e27fd66d.so.2.0.200,sha256=jrvpBPnL9DGGHR-b9GZDNDHel7bdQ9HK6AFaMntQwKU,451425 +psycopg2_binary.libs/libpcre-9513aab5.so.1.2.0,sha256=Au2oUOBJMWVtivgfUXG_902L7BVT09hcPTLX_F7-iGQ,406817 +psycopg2_binary.libs/libpq-9b38f5e3.so.5.17,sha256=j7wxV262J08uhC4DoALHoHmTD0V88pavm2OeUDtpAE0,387497 +psycopg2_binary.libs/libsasl2-883649fd.so.3.0.0,sha256=GC8C1eR02yJ82oOrrHQT1DHUh8bAGv0M10HhQM7cDzo,119217 +psycopg2_binary.libs/libselinux-0922c95c.so.1,sha256=1PqOf7Ot2WCmgyWlnJaUJErqMhP9c5pQgVywZ8SWVlQ,178337 +psycopg2_binary.libs/libssl-81ffa89e.so.3,sha256=mERPm2jwTH-mCPxOu8sBu0Lakmpwc3yeXpbzMlCnmMY,1139041 diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/WHEEL b/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/WHEEL new file mode 100644 index 0000000..7cc1bea --- /dev/null +++ b/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: false +Tag: cp311-cp311-manylinux_2_17_x86_64 +Tag: cp311-cp311-manylinux2014_x86_64 + diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/licenses/LICENSE new file mode 100644 index 0000000..9029e70 --- /dev/null +++ b/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/licenses/LICENSE @@ -0,0 +1,49 @@ +psycopg2 and the LGPL +--------------------- + +psycopg2 is free software: you can redistribute it and/or modify it +under the terms of the GNU Lesser General Public License as published +by the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +psycopg2 is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +License for more details. + +In addition, as a special exception, the copyright holders give +permission to link this program with the OpenSSL library (or with +modified versions of OpenSSL that use the same license as OpenSSL), +and distribute linked combinations including the two. + +You must obey the GNU Lesser General Public License in all respects for +all of the code used other than OpenSSL. If you modify file(s) with this +exception, you may extend this exception to your version of the file(s), +but you are not obligated to do so. If you do not wish to do so, delete +this exception statement from your version. If you delete this exception +statement from all source files in the program, then also delete it here. + +You should have received a copy of the GNU Lesser General Public License +along with psycopg2 (see the doc/ directory.) +If not, see . + + +Alternative licenses +-------------------- + +The following BSD-like license applies (at your option) to the files following +the pattern ``psycopg/adapter*.{h,c}`` and ``psycopg/microprotocol*.{h,c}``: + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this + software in a product, an acknowledgment in the product documentation + would be appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source distribution. diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/top_level.txt new file mode 100644 index 0000000..658130b --- /dev/null +++ b/venv/lib/python3.11/site-packages/psycopg2_binary-2.9.11.dist-info/top_level.txt @@ -0,0 +1 @@ +psycopg2 diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libcom_err-2abe824b.so.2.1 b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libcom_err-2abe824b.so.2.1 new file mode 100644 index 0000000..76ea28d Binary files /dev/null and b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libcom_err-2abe824b.so.2.1 differ diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libcrypto-6f3ad9f4.so.3 b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libcrypto-6f3ad9f4.so.3 new file mode 100644 index 0000000..6e9f50f Binary files /dev/null and b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libcrypto-6f3ad9f4.so.3 differ diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libgssapi_krb5-497db0c6.so.2.2 b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libgssapi_krb5-497db0c6.so.2.2 new file mode 100644 index 0000000..8254ea4 Binary files /dev/null and b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libgssapi_krb5-497db0c6.so.2.2 differ diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libk5crypto-b1f99d5c.so.3.1 b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libk5crypto-b1f99d5c.so.3.1 new file mode 100644 index 0000000..cc95502 Binary files /dev/null and b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libk5crypto-b1f99d5c.so.3.1 differ diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libkeyutils-dfe70bd6.so.1.5 b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libkeyutils-dfe70bd6.so.1.5 new file mode 100644 index 0000000..2070ec6 Binary files /dev/null and b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libkeyutils-dfe70bd6.so.1.5 differ diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libkrb5-fcafa220.so.3.3 b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libkrb5-fcafa220.so.3.3 new file mode 100644 index 0000000..8f041a1 Binary files /dev/null and b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libkrb5-fcafa220.so.3.3 differ diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libkrb5support-d0bcff84.so.0.1 b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libkrb5support-d0bcff84.so.0.1 new file mode 100644 index 0000000..da58cde Binary files /dev/null and b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libkrb5support-d0bcff84.so.0.1 differ diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary.libs/liblber-58fa78db.so.2.0.200 b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/liblber-58fa78db.so.2.0.200 new file mode 100644 index 0000000..72ce6ed Binary files /dev/null and b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/liblber-58fa78db.so.2.0.200 differ diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libldap-e27fd66d.so.2.0.200 b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libldap-e27fd66d.so.2.0.200 new file mode 100644 index 0000000..7f7bbd5 Binary files /dev/null and b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libldap-e27fd66d.so.2.0.200 differ diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libpcre-9513aab5.so.1.2.0 b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libpcre-9513aab5.so.1.2.0 new file mode 100644 index 0000000..ffd000a Binary files /dev/null and b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libpcre-9513aab5.so.1.2.0 differ diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libpq-9b38f5e3.so.5.17 b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libpq-9b38f5e3.so.5.17 new file mode 100644 index 0000000..73c3347 Binary files /dev/null and b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libpq-9b38f5e3.so.5.17 differ diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libsasl2-883649fd.so.3.0.0 b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libsasl2-883649fd.so.3.0.0 new file mode 100644 index 0000000..37c3762 Binary files /dev/null and b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libsasl2-883649fd.so.3.0.0 differ diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libselinux-0922c95c.so.1 b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libselinux-0922c95c.so.1 new file mode 100644 index 0000000..366e9a8 Binary files /dev/null and b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libselinux-0922c95c.so.1 differ diff --git a/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libssl-81ffa89e.so.3 b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libssl-81ffa89e.so.3 new file mode 100644 index 0000000..89deac0 Binary files /dev/null and b/venv/lib/python3.11/site-packages/psycopg2_binary.libs/libssl-81ffa89e.so.3 differ diff --git a/venv/lib/python3.11/site-packages/pydantic-2.12.4.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/pydantic-2.12.4.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic-2.12.4.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/pydantic-2.12.4.dist-info/METADATA b/venv/lib/python3.11/site-packages/pydantic-2.12.4.dist-info/METADATA new file mode 100644 index 0000000..b70acf2 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic-2.12.4.dist-info/METADATA @@ -0,0 +1,1017 @@ +Metadata-Version: 2.4 +Name: pydantic +Version: 2.12.4 +Summary: Data validation using Python type hints +Project-URL: Homepage, https://github.com/pydantic/pydantic +Project-URL: Documentation, https://docs.pydantic.dev +Project-URL: Funding, https://github.com/sponsors/samuelcolvin +Project-URL: Source, https://github.com/pydantic/pydantic +Project-URL: Changelog, https://docs.pydantic.dev/latest/changelog/ +Author-email: Samuel Colvin , Eric Jolibois , Hasan Ramezani , Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com>, Terrence Dorsey , David Montague , Serge Matveenko , Marcelo Trylesinski , Sydney Runkle , David Hewitt , Alex Hall , Victorien Plot , Douwe Maan +License-Expression: MIT +License-File: LICENSE +Classifier: Development Status :: 5 - Production/Stable +Classifier: Framework :: Hypothesis +Classifier: Framework :: Pydantic +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: Information Technology +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Internet +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Requires-Python: >=3.9 +Requires-Dist: annotated-types>=0.6.0 +Requires-Dist: pydantic-core==2.41.5 +Requires-Dist: typing-extensions>=4.14.1 +Requires-Dist: typing-inspection>=0.4.2 +Provides-Extra: email +Requires-Dist: email-validator>=2.0.0; extra == 'email' +Provides-Extra: timezone +Requires-Dist: tzdata; (python_version >= '3.9' and platform_system == 'Windows') and extra == 'timezone' +Description-Content-Type: text/markdown + +# Pydantic Validation + +[![CI](https://img.shields.io/github/actions/workflow/status/pydantic/pydantic/ci.yml?branch=main&logo=github&label=CI)](https://github.com/pydantic/pydantic/actions?query=event%3Apush+branch%3Amain+workflow%3ACI) +[![Coverage](https://coverage-badge.samuelcolvin.workers.dev/pydantic/pydantic.svg)](https://coverage-badge.samuelcolvin.workers.dev/redirect/pydantic/pydantic) +[![pypi](https://img.shields.io/pypi/v/pydantic.svg)](https://pypi.python.org/pypi/pydantic) +[![CondaForge](https://img.shields.io/conda/v/conda-forge/pydantic.svg)](https://anaconda.org/conda-forge/pydantic) +[![downloads](https://static.pepy.tech/badge/pydantic/month)](https://pepy.tech/project/pydantic) +[![versions](https://img.shields.io/pypi/pyversions/pydantic.svg)](https://github.com/pydantic/pydantic) +[![license](https://img.shields.io/github/license/pydantic/pydantic.svg)](https://github.com/pydantic/pydantic/blob/main/LICENSE) +[![Pydantic v2](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/pydantic/pydantic/main/docs/badge/v2.json)](https://docs.pydantic.dev/latest/contributing/#badges) +[![llms.txt](https://img.shields.io/badge/llms.txt-green)](https://docs.pydantic.dev/latest/llms.txt) + +Data validation using Python type hints. + +Fast and extensible, Pydantic plays nicely with your linters/IDE/brain. +Define how data should be in pure, canonical Python 3.9+; validate it with Pydantic. + +## Pydantic Logfire :fire: + +We've recently launched Pydantic Logfire to help you monitor your applications. +[Learn more](https://pydantic.dev/articles/logfire-announcement) + +## Pydantic V1.10 vs. V2 + +Pydantic V2 is a ground-up rewrite that offers many new features, performance improvements, and some breaking changes compared to Pydantic V1. + +If you're using Pydantic V1 you may want to look at the +[pydantic V1.10 Documentation](https://docs.pydantic.dev/) or, +[`1.10.X-fixes` git branch](https://github.com/pydantic/pydantic/tree/1.10.X-fixes). Pydantic V2 also ships with the latest version of Pydantic V1 built in so that you can incrementally upgrade your code base and projects: `from pydantic import v1 as pydantic_v1`. + +## Help + +See [documentation](https://docs.pydantic.dev/) for more details. + +## Installation + +Install using `pip install -U pydantic` or `conda install pydantic -c conda-forge`. +For more installation options to make Pydantic even faster, +see the [Install](https://docs.pydantic.dev/install/) section in the documentation. + +## A Simple Example + +```python +from datetime import datetime +from typing import Optional +from pydantic import BaseModel + +class User(BaseModel): + id: int + name: str = 'John Doe' + signup_ts: Optional[datetime] = None + friends: list[int] = [] + +external_data = {'id': '123', 'signup_ts': '2017-06-01 12:22', 'friends': [1, '2', b'3']} +user = User(**external_data) +print(user) +#> User id=123 name='John Doe' signup_ts=datetime.datetime(2017, 6, 1, 12, 22) friends=[1, 2, 3] +print(user.id) +#> 123 +``` + +## Contributing + +For guidance on setting up a development environment and how to make a +contribution to Pydantic, see +[Contributing to Pydantic](https://docs.pydantic.dev/contributing/). + +## Reporting a Security Vulnerability + +See our [security policy](https://github.com/pydantic/pydantic/security/policy). + +## Changelog + + + + + +## v2.12.4 (2025-11-05) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.12.4) + +This is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the `build()` method +of the [`AnyUrl` and Dsn types](https://docs.pydantic.dev/latest/api/networks/). + +This patch release also fixes an issue with the serialization of IP address types, when `serialize_as_any` is used. The next patch release +will try to address the remaining issues with *serialize as any* behavior by introducing a new *polymorphic serialization* feature, that +should be used in most cases in place of *serialize as any*. + +* Fix issue with forward references in parent `TypedDict` classes by [@Viicos](https://github.com/Viicos) in [#12427](https://github.com/pydantic/pydantic/pull/12427). + + This issue is only relevant on Python 3.14 and greater. +* Exclude fields with `exclude_if` from JSON Schema required fields by [@Viicos](https://github.com/Viicos) in [#12430](https://github.com/pydantic/pydantic/pull/12430) +* Revert URL percent-encoding of credentials in the `build()` method + of the [`AnyUrl` and Dsn types](https://docs.pydantic.dev/latest/api/networks/) by [@davidhewitt](https://github.com/davidhewitt) in + [pydantic-core#1833](https://github.com/pydantic/pydantic-core/pull/1833). + + This was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include + an opt-in option to percent-encode components of the URL. +* Add type inference for IP address types by [@davidhewitt](https://github.com/davidhewitt) in [pydantic-core#1868](https://github.com/pydantic/pydantic-core/pull/1868). + + The 2.12 changes to the `serialize_as_any` behavior made it so that IP address types could not properly serialize to JSON. +* Avoid getting default values from defaultdict by [@davidhewitt](https://github.com/davidhewitt) in [pydantic-core#1853](https://github.com/pydantic/pydantic-core/pull/1853). + + This fixes a subtle regression in the validation behavior of the [`collections.defaultdict`](https://docs.python.org/3/library/collections.html#collections.defaultdict) + type. +* Fix issue with field serializers on nested typed dictionaries by [@davidhewitt](https://github.com/davidhewitt) in [pydantic-core#1879](https://github.com/pydantic/pydantic-core/pull/1879). +* Add more `pydantic-core` builds for the three-threaded version of Python 3.14 by [@davidhewitt](https://github.com/davidhewitt) in [pydantic-core#1864](https://github.com/pydantic/pydantic-core/pull/1864). + +## v2.12.3 (2025-10-17) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.12.3) + +### What's Changed + +This is the third 2.12 patch release, fixing issues related to the `FieldInfo` class, and reverting a change to the supported +[*after* model validator](https://docs.pydantic.dev/latest/concepts/validators/#model-validators) function signatures. + +* Raise a warning when an invalid after model validator function signature is raised by [@Viicos](https://github.com/Viicos) in [#12414](https://github.com/pydantic/pydantic/pull/12414). + Starting in 2.12.0, using class methods for *after* model validators raised an error, but the error wasn't raised concistently. We decided + to emit a deprecation warning instead. +* Add [`FieldInfo.asdict()`](https://docs.pydantic.dev/latest/api/fields/#pydantic.fields.FieldInfo.asdict) method, improve documentation around `FieldInfo` by [@Viicos](https://github.com/Viicos) in [#12411](https://github.com/pydantic/pydantic/pull/12411). + This also add back support for mutations on `FieldInfo` classes, that are reused as `Annotated` metadata. **However**, note that this is still + *not* a supported pattern. Instead, please refer to the [added example](https://docs.pydantic.dev/latest/examples/dynamic_models/) in the documentation. + +The [blog post](https://pydantic.dev/articles/pydantic-v2-12-release#changes) section on changes was also updated to document the changes related to `serialize_as_any`. + +## v2.12.2 (2025-10-14) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.12.2) + +### What's Changed + +#### Fixes + +* Release a new `pydantic-core` version, as a corrupted CPython 3.10 `manylinux2014_aarch64` wheel got uploaded ([pydantic-core#1843](https://github.com/pydantic/pydantic-core/pull/1843)). +* Fix issue with recursive generic models with a parent model class by [@Viicos](https://github.com/Viicos) in [#12398](https://github.com/pydantic/pydantic/pull/12398) + +## v2.12.1 (2025-10-13) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.12.1) + +### What's Changed + +This is the first 2.12 patch release, addressing most (but not all yet) regressions from the initial 2.12.0 release. + +#### Fixes + +* Do not evaluate annotations when inspecting validators and serializers by [@Viicos](https://github.com/Viicos) in [#12355](https://github.com/pydantic/pydantic/pull/12355) +* Make sure `None` is converted as `NoneType` in Python 3.14 by [@Viicos](https://github.com/Viicos) in [#12370](https://github.com/pydantic/pydantic/pull/12370) +* Backport V1 runtime warning when using Python 3.14 by [@Viicos](https://github.com/Viicos) in [#12367](https://github.com/pydantic/pydantic/pull/12367) +* Fix error message for invalid validator signatures by [@Viicos](https://github.com/Viicos) in [#12366](https://github.com/pydantic/pydantic/pull/12366) +* Populate field name in `ValidationInfo` for validation of default value by [@Viicos](https://github.com/Viicos) in [pydantic-core#1826](https://github.com/pydantic/pydantic-core/pull/1826) +* Encode credentials in `MultiHostUrl` builder by [@willswire](https://github.com/willswire) in [pydantic-core#1829](https://github.com/pydantic/pydantic-core/pull/1829) +* Respect field serializers when using `serialize_as_any` serialization flag by [@davidhewitt](https://github.com/davidhewitt) in [pydantic-core#1829](https://github.com/pydantic/pydantic-core/pull/1829) +* Fix various `RootModel` serialization issues by [@davidhewitt](https://github.com/davidhewitt) in [pydantic-core#1836](https://github.com/pydantic/pydantic-core/pull/1836) + +### New Contributors + +* [@willswire](https://github.com/willswire) made their first contribution in [pydantic-core#1829](https://github.com/pydantic/pydantic-core/pull/1829) + +## v2.12.0 (2025-10-07) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.12.0) + +### What's Changed + +This is the final 2.12 release. It features the work of 20 external contributors and provides useful new features, along with initial Python 3.14 support. +Several minor changes (considered non-breaking changes according to our [versioning policy](https://docs.pydantic.dev/2.12/version-policy/#pydantic-v2)) +are also included in this release. Make sure to look into them before upgrading. + +**Note that Pydantic V1 is not compatible with Python 3.14 and greater**. + +Changes (see the alpha and beta releases for additional changes since 2.11): + +#### Packaging + +* Update V1 copy to v1.10.24 by [@Viicos](https://github.com/Viicos) in [#12338](https://github.com/pydantic/pydantic/pull/12338) + +#### New Features + +* Add `extra` parameter to the validate functions by [@anvilpete](https://github.com/anvilpete) in [#12233](https://github.com/pydantic/pydantic/pull/12233) +* Add `exclude_computed_fields` serialization option by [@Viicos](https://github.com/Viicos) in [#12334](https://github.com/pydantic/pydantic/pull/12334) +* Add `preverse_empty_path` URL options by [@Viicos](https://github.com/Viicos) in [#12336](https://github.com/pydantic/pydantic/pull/12336) +* Add `union_format` parameter to JSON Schema generation by [@Viicos](https://github.com/Viicos) in [#12147](https://github.com/pydantic/pydantic/pull/12147) +* Add `__qualname__` parameter for `create_model` by [@Atry](https://github.com/Atry) in [#12001](https://github.com/pydantic/pydantic/pull/12001) + +#### Fixes + +* Do not try to infer name from lambda definitions in pipelines API by [@Viicos](https://github.com/Viicos) in [#12289](https://github.com/pydantic/pydantic/pull/12289) +* Use proper namespace for functions in `TypeAdapter` by [@Viicos](https://github.com/Viicos) in [#12324](https://github.com/pydantic/pydantic/pull/12324) +* Use `Any` for context type annotation in `TypeAdapter` by [@inducer](https://github.com/inducer) in [#12279](https://github.com/pydantic/pydantic/pull/12279) +* Expose `FieldInfo` in `pydantic.fields.__all__` by [@Viicos](https://github.com/Viicos) in [#12339](https://github.com/pydantic/pydantic/pull/12339) +* Respect `validation_alias` in `@validate_call` by [@Viicos](https://github.com/Viicos) in [#12340](https://github.com/pydantic/pydantic/pull/12340) +* Use `Any` as context annotation in plugin API by [@Viicos](https://github.com/Viicos) in [#12341](https://github.com/pydantic/pydantic/pull/12341) +* Use proper `stacklevel` in warnings when possible by [@Viicos](https://github.com/Viicos) in [#12342](https://github.com/pydantic/pydantic/pull/12342) + +### New Contributors + +* [@anvilpete](https://github.com/anvilpete) made their first contribution in [#12233](https://github.com/pydantic/pydantic/pull/12233) +* [@JonathanWindell](https://github.com/JonathanWindell) made their first contribution in [#12327](https://github.com/pydantic/pydantic/pull/12327) +* [@inducer](https://github.com/inducer) made their first contribution in [#12279](https://github.com/pydantic/pydantic/pull/12279) +* [@Atry](https://github.com/Atry) made their first contribution in [#12001](https://github.com/pydantic/pydantic/pull/12001) + +## v2.12.0b1 (2025-10-03) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.12.0b1) + +This is the first beta release of the upcoming 2.12 release. + +### What's Changed + +#### Packaging + +* Bump `pydantic-core` to v2.40.1 by [@Viicos](https://github.com/Viicos) in [#12314](https://github.com/pydantic/pydantic/pull/12314) + +#### New Features + +* Add support for `exclude_if` at the field level by [@andresliszt](https://github.com/andresliszt) in [#12141](https://github.com/pydantic/pydantic/pull/12141) +* Add `ValidateAs` annotation helper by [@Viicos](https://github.com/Viicos) in [#11942](https://github.com/pydantic/pydantic/pull/11942) +* Add configuration options for validation and JSON serialization of temporal types by [@ollz272](https://github.com/ollz272) in [#12068](https://github.com/pydantic/pydantic/pull/12068) +* Add support for PEP 728 by [@Viicos](https://github.com/Viicos) in [#12179](https://github.com/pydantic/pydantic/pull/12179) +* Add field name in serialization error by [@NicolasPllr1](https://github.com/NicolasPllr1) in [pydantic-core#1799](https://github.com/pydantic/pydantic-core/pull/1799) +* Add option to preserve empty URL paths by [@davidhewitt](https://github.com/davidhewitt) in [pydantic-core#1789](https://github.com/pydantic/pydantic-core/pull/1789) + +#### Changes + +* Raise error if an incompatible `pydantic-core` version is installed by [@Viicos](https://github.com/Viicos) in [#12196](https://github.com/pydantic/pydantic/pull/12196) +* Remove runtime warning for experimental features by [@Viicos](https://github.com/Viicos) in [#12265](https://github.com/pydantic/pydantic/pull/12265) +* Warn if registering virtual subclasses on Pydantic models by [@Viicos](https://github.com/Viicos) in [#11669](https://github.com/pydantic/pydantic/pull/11669) + +#### Fixes + +* Fix `__getattr__()` behavior on Pydantic models when a property raised an `AttributeError` and extra values are present by [@raspuchin](https://github.com/raspuchin) in [#12106](https://github.com/pydantic/pydantic/pull/12106) +* Add test to prevent regression with Pydantic models used as annotated metadata by [@Viicos](https://github.com/Viicos) in [#12133](https://github.com/pydantic/pydantic/pull/12133) +* Allow to use property setters on Pydantic dataclasses with `validate_assignment` set by [@Viicos](https://github.com/Viicos) in [#12173](https://github.com/pydantic/pydantic/pull/12173) +* Fix mypy v2 plugin for upcoming mypy release by [@cdce8p](https://github.com/cdce8p) in [#12209](https://github.com/pydantic/pydantic/pull/12209) +* Respect custom title in functions JSON Schema by [@Viicos](https://github.com/Viicos) in [#11892](https://github.com/pydantic/pydantic/pull/11892) +* Fix `ImportString` JSON serialization for objects with a `name` attribute by [@chr1sj0nes](https://github.com/chr1sj0nes) in [#12219](https://github.com/pydantic/pydantic/pull/12219) +* Do not error on fields overridden by methods in the mypy plugin by [@Viicos](https://github.com/Viicos) in [#12290](https://github.com/pydantic/pydantic/pull/12290) + +### New Contributors + +* [@raspuchin](https://github.com/raspuchin) made their first contribution in [#12106](https://github.com/pydantic/pydantic/pull/12106) +* [@chr1sj0nes](https://github.com/chr1sj0nes) made their first contribution in [#12219](https://github.com/pydantic/pydantic/pull/12219) + +## v2.12.0a1 (2025-07-26) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.12.0a1) + +This is the first alpha release of the upcoming 2.12 release, which adds initial support for Python 3.14. + +### What's Changed + +#### New Features + +* Add `__pydantic_on_complete__()` hook that is called once model is fully ready to be used by [@DouweM](https://github.com/DouweM) in [#11762](https://github.com/pydantic/pydantic/pull/11762) +* Add initial support for Python 3.14 by [@Viicos](https://github.com/Viicos) in [#11991](https://github.com/pydantic/pydantic/pull/11991) +* Add regex patterns to JSON schema for `Decimal` type by [@Dima-Bulavenko](https://github.com/Dima-Bulavenko) in [#11987](https://github.com/pydantic/pydantic/pull/11987) +* Add support for `doc` attribute on dataclass fields by [@Viicos](https://github.com/Viicos) in [#12077](https://github.com/pydantic/pydantic/pull/12077) +* Add experimental `MISSING` sentinel by [@Viicos](https://github.com/Viicos) in [#11883](https://github.com/pydantic/pydantic/pull/11883) + +#### Changes + +* Allow config and bases to be specified together in `create_model()` by [@Viicos](https://github.com/Viicos) in [#11714](https://github.com/pydantic/pydantic/pull/11714) +* Move some field logic out of the `GenerateSchema` class by [@Viicos](https://github.com/Viicos) in [#11733](https://github.com/pydantic/pydantic/pull/11733) +* Always make use of `inspect.getsourcelines()` for docstring extraction on Python 3.13 and greater by [@Viicos](https://github.com/Viicos) in [#11829](https://github.com/pydantic/pydantic/pull/11829) +* Only support the latest Mypy version by [@Viicos](https://github.com/Viicos) in [#11832](https://github.com/pydantic/pydantic/pull/11832) +* Do not implicitly convert after model validators to class methods by [@Viicos](https://github.com/Viicos) in [#11957](https://github.com/pydantic/pydantic/pull/11957) +* Refactor `FieldInfo` creation implementation by [@Viicos](https://github.com/Viicos) in [#11898](https://github.com/pydantic/pydantic/pull/11898) +* Make `Secret` covariant by [@bluenote10](https://github.com/bluenote10) in [#12008](https://github.com/pydantic/pydantic/pull/12008) +* Emit warning when field-specific metadata is used in invalid contexts by [@Viicos](https://github.com/Viicos) in [#12028](https://github.com/pydantic/pydantic/pull/12028) + +#### Fixes + +* Properly fetch plain serializer function when serializing default value in JSON Schema by [@Viicos](https://github.com/Viicos) in [#11721](https://github.com/pydantic/pydantic/pull/11721) +* Remove generics cache workaround by [@Viicos](https://github.com/Viicos) in [#11755](https://github.com/pydantic/pydantic/pull/11755) +* Remove coercion of decimal constraints by [@Viicos](https://github.com/Viicos) in [#11772](https://github.com/pydantic/pydantic/pull/11772) +* Fix crash when expanding root type in the mypy plugin by [@Viicos](https://github.com/Viicos) in [#11735](https://github.com/pydantic/pydantic/pull/11735) +* Only mark model as complete once all fields are complete by [@DouweM](https://github.com/DouweM) in [#11759](https://github.com/pydantic/pydantic/pull/11759) +* Do not provide `field_name` in validator core schemas by [@DouweM](https://github.com/DouweM) in [#11761](https://github.com/pydantic/pydantic/pull/11761) +* Fix issue with recursive generic models by [@Viicos](https://github.com/Viicos) in [#11775](https://github.com/pydantic/pydantic/pull/11775) +* Fix qualified name comparison of private attributes during namespace inspection by [@karta9821](https://github.com/karta9821) in [#11803](https://github.com/pydantic/pydantic/pull/11803) +* Make sure Pydantic dataclasses with slots and `validate_assignment` can be unpickled by [@Viicos](https://github.com/Viicos) in [#11769](https://github.com/pydantic/pydantic/pull/11769) +* Traverse `function-before` schemas during schema gathering by [@Viicos](https://github.com/Viicos) in [#11801](https://github.com/pydantic/pydantic/pull/11801) +* Fix check for stdlib dataclasses by [@Viicos](https://github.com/Viicos) in [#11822](https://github.com/pydantic/pydantic/pull/11822) +* Check if `FieldInfo` is complete after applying type variable map by [@Viicos](https://github.com/Viicos) in [#11855](https://github.com/pydantic/pydantic/pull/11855) +* Do not delete mock validator/serializer in `model_rebuild()` by [@Viicos](https://github.com/Viicos) in [#11890](https://github.com/pydantic/pydantic/pull/11890) +* Rebuild dataclass fields before schema generation by [@Viicos](https://github.com/Viicos) in [#11949](https://github.com/pydantic/pydantic/pull/11949) +* Always store the original field assignment on `FieldInfo` by [@Viicos](https://github.com/Viicos) in [#11946](https://github.com/pydantic/pydantic/pull/11946) +* Do not use deprecated methods as default field values by [@Viicos](https://github.com/Viicos) in [#11914](https://github.com/pydantic/pydantic/pull/11914) +* Allow callable discriminator to be applied on PEP 695 type aliases by [@Viicos](https://github.com/Viicos) in [#11941](https://github.com/pydantic/pydantic/pull/11941) +* Suppress core schema generation warning when using `SkipValidation` by [@ygsh0816](https://github.com/ygsh0816) in [#12002](https://github.com/pydantic/pydantic/pull/12002) +* Do not emit typechecking error for invalid `Field()` default with `validate_default` set to `True` by [@Viicos](https://github.com/Viicos) in [#11988](https://github.com/pydantic/pydantic/pull/11988) +* Refactor logic to support Pydantic's `Field()` function in dataclasses by [@Viicos](https://github.com/Viicos) in [#12051](https://github.com/pydantic/pydantic/pull/12051) + +#### Packaging + +* Update project metadata to use PEP 639 by [@Viicos](https://github.com/Viicos) in [#11694](https://github.com/pydantic/pydantic/pull/11694) +* Bump `mkdocs-llmstxt` to v0.2.0 by [@Viicos](https://github.com/Viicos) in [#11725](https://github.com/pydantic/pydantic/pull/11725) +* Bump `pydantic-core` to v2.35.1 by [@Viicos](https://github.com/Viicos) in [#11963](https://github.com/pydantic/pydantic/pull/11963) +* Bump dawidd6/action-download-artifact from 10 to 11 by [@dependabot](https://github.com/dependabot)[bot] in [#12033](https://github.com/pydantic/pydantic/pull/12033) +* Bump astral-sh/setup-uv from 5 to 6 by [@dependabot](https://github.com/dependabot)[bot] in [#11826](https://github.com/pydantic/pydantic/pull/11826) +* Update mypy to 1.17.0 by [@Viicos](https://github.com/Viicos) in [#12076](https://github.com/pydantic/pydantic/pull/12076) + +### New Contributors + +* [@parth-paradkar](https://github.com/parth-paradkar) made their first contribution in [#11695](https://github.com/pydantic/pydantic/pull/11695) +* [@dqkqd](https://github.com/dqkqd) made their first contribution in [#11739](https://github.com/pydantic/pydantic/pull/11739) +* [@fhightower](https://github.com/fhightower) made their first contribution in [#11722](https://github.com/pydantic/pydantic/pull/11722) +* [@gbaian10](https://github.com/gbaian10) made their first contribution in [#11766](https://github.com/pydantic/pydantic/pull/11766) +* [@DouweM](https://github.com/DouweM) made their first contribution in [#11759](https://github.com/pydantic/pydantic/pull/11759) +* [@bowenliang123](https://github.com/bowenliang123) made their first contribution in [#11719](https://github.com/pydantic/pydantic/pull/11719) +* [@rawwar](https://github.com/rawwar) made their first contribution in [#11799](https://github.com/pydantic/pydantic/pull/11799) +* [@karta9821](https://github.com/karta9821) made their first contribution in [#11803](https://github.com/pydantic/pydantic/pull/11803) +* [@jinnovation](https://github.com/jinnovation) made their first contribution in [#11834](https://github.com/pydantic/pydantic/pull/11834) +* [@zmievsa](https://github.com/zmievsa) made their first contribution in [#11861](https://github.com/pydantic/pydantic/pull/11861) +* [@Otto-AA](https://github.com/Otto-AA) made their first contribution in [#11860](https://github.com/pydantic/pydantic/pull/11860) +* [@ygsh0816](https://github.com/ygsh0816) made their first contribution in [#12002](https://github.com/pydantic/pydantic/pull/12002) +* [@lukland](https://github.com/lukland) made their first contribution in [#12015](https://github.com/pydantic/pydantic/pull/12015) +* [@Dima-Bulavenko](https://github.com/Dima-Bulavenko) made their first contribution in [#11987](https://github.com/pydantic/pydantic/pull/11987) +* [@GSemikozov](https://github.com/GSemikozov) made their first contribution in [#12050](https://github.com/pydantic/pydantic/pull/12050) +* [@hannah-heywa](https://github.com/hannah-heywa) made their first contribution in [#12082](https://github.com/pydantic/pydantic/pull/12082) + +## v2.11.7 (2025-06-14) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.11.7) + +### What's Changed + +#### Fixes + +* Copy `FieldInfo` instance if necessary during `FieldInfo` build by [@Viicos](https://github.com/Viicos) in [#11898](https://github.com/pydantic/pydantic/pull/11898) + +## v2.11.6 (2025-06-13) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.11.6) + +### What's Changed + +#### Fixes + +* Rebuild dataclass fields before schema generation by [@Viicos](https://github.com/Viicos) in [#11949](https://github.com/pydantic/pydantic/pull/11949) +* Always store the original field assignment on `FieldInfo` by [@Viicos](https://github.com/Viicos) in [#11946](https://github.com/pydantic/pydantic/pull/11946) + +## v2.11.5 (2025-05-22) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.11.5) + +### What's Changed + +#### Fixes + +* Check if `FieldInfo` is complete after applying type variable map by [@Viicos](https://github.com/Viicos) in [#11855](https://github.com/pydantic/pydantic/pull/11855) +* Do not delete mock validator/serializer in `model_rebuild()` by [@Viicos](https://github.com/Viicos) in [#11890](https://github.com/pydantic/pydantic/pull/11890) +* Do not duplicate metadata on model rebuild by [@Viicos](https://github.com/Viicos) in [#11902](https://github.com/pydantic/pydantic/pull/11902) + +## v2.11.4 (2025-04-29) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.11.4) + +### What's Changed + +#### Packaging + +* Bump `mkdocs-llmstxt` to v0.2.0 by [@Viicos](https://github.com/Viicos) in [#11725](https://github.com/pydantic/pydantic/pull/11725) + +#### Changes + +* Allow config and bases to be specified together in `create_model()` by [@Viicos](https://github.com/Viicos) in [#11714](https://github.com/pydantic/pydantic/pull/11714). + This change was backported as it was previously possible (although not meant to be supported) + to provide `model_config` as a field, which would make it possible to provide both configuration + and bases. + +#### Fixes + +* Remove generics cache workaround by [@Viicos](https://github.com/Viicos) in [#11755](https://github.com/pydantic/pydantic/pull/11755) +* Remove coercion of decimal constraints by [@Viicos](https://github.com/Viicos) in [#11772](https://github.com/pydantic/pydantic/pull/11772) +* Fix crash when expanding root type in the mypy plugin by [@Viicos](https://github.com/Viicos) in [#11735](https://github.com/pydantic/pydantic/pull/11735) +* Fix issue with recursive generic models by [@Viicos](https://github.com/Viicos) in [#11775](https://github.com/pydantic/pydantic/pull/11775) +* Traverse `function-before` schemas during schema gathering by [@Viicos](https://github.com/Viicos) in [#11801](https://github.com/pydantic/pydantic/pull/11801) + +## v2.11.3 (2025-04-08) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.11.3) + +### What's Changed + +#### Packaging + +* Update V1 copy to v1.10.21 by [@Viicos](https://github.com/Viicos) in [#11706](https://github.com/pydantic/pydantic/pull/11706) + +#### Fixes + +* Preserve field description when rebuilding model fields by [@Viicos](https://github.com/Viicos) in [#11698](https://github.com/pydantic/pydantic/pull/11698) + +## v2.11.2 (2025-04-03) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.11.2) + +### What's Changed + +#### Fixes + +* Bump `pydantic-core` to v2.33.1 by [@Viicos](https://github.com/Viicos) in [#11678](https://github.com/pydantic/pydantic/pull/11678) +* Make sure `__pydantic_private__` exists before setting private attributes by [@Viicos](https://github.com/Viicos) in [#11666](https://github.com/pydantic/pydantic/pull/11666) +* Do not override `FieldInfo._complete` when using field from parent class by [@Viicos](https://github.com/Viicos) in [#11668](https://github.com/pydantic/pydantic/pull/11668) +* Provide the available definitions when applying discriminated unions by [@Viicos](https://github.com/Viicos) in [#11670](https://github.com/pydantic/pydantic/pull/11670) +* Do not expand root type in the mypy plugin for variables by [@Viicos](https://github.com/Viicos) in [#11676](https://github.com/pydantic/pydantic/pull/11676) +* Mention the attribute name in model fields deprecation message by [@Viicos](https://github.com/Viicos) in [#11674](https://github.com/pydantic/pydantic/pull/11674) +* Properly validate parameterized mappings by [@Viicos](https://github.com/Viicos) in [#11658](https://github.com/pydantic/pydantic/pull/11658) + +## v2.11.1 (2025-03-28) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.11.1) + +### What's Changed + +#### Fixes + +* Do not override `'definitions-ref'` schemas containing serialization schemas or metadata by [@Viicos](https://github.com/Viicos) in [#11644](https://github.com/pydantic/pydantic/pull/11644) + +## v2.11.0 (2025-03-27) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.11.0) + +### What's Changed + +Pydantic v2.11 is a version strongly focused on build time performance of Pydantic models (and core schema generation in general). +See the [blog post](https://pydantic.dev/articles/pydantic-v2-11-release) for more details. + +#### Packaging + +* Bump `pydantic-core` to v2.33.0 by [@Viicos](https://github.com/Viicos) in [#11631](https://github.com/pydantic/pydantic/pull/11631) + +#### New Features + +* Add `encoded_string()` method to the URL types by [@YassinNouh21](https://github.com/YassinNouh21) in [#11580](https://github.com/pydantic/pydantic/pull/11580) +* Add support for `defer_build` with `@validate_call` decorator by [@Viicos](https://github.com/Viicos) in [#11584](https://github.com/pydantic/pydantic/pull/11584) +* Allow `@with_config` decorator to be used with keyword arguments by [@Viicos](https://github.com/Viicos) in [#11608](https://github.com/pydantic/pydantic/pull/11608) +* Simplify customization of default value inclusion in JSON Schema generation by [@Viicos](https://github.com/Viicos) in [#11634](https://github.com/pydantic/pydantic/pull/11634) +* Add `generate_arguments_schema()` function by [@Viicos](https://github.com/Viicos) in [#11572](https://github.com/pydantic/pydantic/pull/11572) + +#### Fixes + +* Allow generic typed dictionaries to be used for unpacked variadic keyword parameters by [@Viicos](https://github.com/Viicos) in [#11571](https://github.com/pydantic/pydantic/pull/11571) +* Fix runtime error when computing model string representation involving cached properties and self-referenced models by [@Viicos](https://github.com/Viicos) in [#11579](https://github.com/pydantic/pydantic/pull/11579) +* Preserve other steps when using the ellipsis in the pipeline API by [@Viicos](https://github.com/Viicos) in [#11626](https://github.com/pydantic/pydantic/pull/11626) +* Fix deferred discriminator application logic by [@Viicos](https://github.com/Viicos) in [#11591](https://github.com/pydantic/pydantic/pull/11591) + +### New Contributors + +* [@cmenon12](https://github.com/cmenon12) made their first contribution in [#11562](https://github.com/pydantic/pydantic/pull/11562) +* [@Jeukoh](https://github.com/Jeukoh) made their first contribution in [#11611](https://github.com/pydantic/pydantic/pull/11611) + +## v2.11.0b2 (2025-03-17) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.11.0b2) + +### What's Changed + +#### Packaging + +* Bump `pydantic-core` to v2.32.0 by [@Viicos](https://github.com/Viicos) in [#11567](https://github.com/pydantic/pydantic/pull/11567) + +#### New Features + +* Add experimental support for free threading by [@Viicos](https://github.com/Viicos) in [#11516](https://github.com/pydantic/pydantic/pull/11516) + +#### Fixes + +* Fix `NotRequired` qualifier not taken into account in stringified annotation by [@Viicos](https://github.com/Viicos) in [#11559](https://github.com/pydantic/pydantic/pull/11559) + +### New Contributors + +* [@joren485](https://github.com/joren485) made their first contribution in [#11547](https://github.com/pydantic/pydantic/pull/11547) + +## v2.11.0b1 (2025-03-06) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.11.0b1) + +### What's Changed + +#### Packaging + +* Add a `check_pydantic_core_version()` function by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11324 +* Remove `greenlet` development dependency by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11351 +* Use the `typing-inspection` library by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11479 +* Bump `pydantic-core` to `v2.31.1` by [@sydney-runkle](https://github.com/sydney-runkle) in https://github.com/pydantic/pydantic/pull/11526 + +#### New Features + +* Support unsubstituted type variables with both a default and a bound or constraints by [@FyZzyss](https://github.com/FyZzyss) in https://github.com/pydantic/pydantic/pull/10789 +* Add a `default_factory_takes_validated_data` property to `FieldInfo` by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11034 +* Raise a better error when a generic alias is used inside `type[]` by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11088 +* Properly support PEP 695 generics syntax by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11189 +* Properly support type variable defaults by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11332 +* Add support for validating v6, v7, v8 UUIDs by [@astei](https://github.com/astei) in https://github.com/pydantic/pydantic/pull/11436 +* Improve alias configuration APIs by [@sydney-runkle](https://github.com/sydney-runkle) in https://github.com/pydantic/pydantic/pull/11468 + +#### Changes + +* Rework `create_model` field definitions format by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11032 +* Raise a deprecation warning when a field is annotated as final with a default value by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11168 +* Deprecate accessing `model_fields` and `model_computed_fields` on instances by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11169 +* **Breaking Change:** Move core schema generation logic for path types inside the `GenerateSchema` class by [@sydney-runkle](https://github.com/sydney-runkle) in https://github.com/pydantic/pydantic/pull/10846 +* Remove Python 3.8 Support by [@sydney-runkle](https://github.com/sydney-runkle) in https://github.com/pydantic/pydantic/pull/11258 +* Optimize calls to `get_type_ref` by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/10863 +* Disable `pydantic-core` core schema validation by [@sydney-runkle](https://github.com/sydney-runkle) in https://github.com/pydantic/pydantic/pull/11271 + +#### Performance + +* Only evaluate `FieldInfo` annotations if required during schema building by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/10769 +* Improve `__setattr__` performance of Pydantic models by caching setter functions by [@MarkusSintonen](https://github.com/MarkusSintonen) in https://github.com/pydantic/pydantic/pull/10868 +* Improve annotation application performance by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11186 +* Improve performance of `_typing_extra` module by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11255 +* Refactor and optimize schema cleaning logic by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11244 +* Create a single dictionary when creating a `CoreConfig` instance by [@sydney-runkle](https://github.com/sydney-runkle) in https://github.com/pydantic/pydantic/pull/11384 +* Bump `pydantic-core` and thus use `SchemaValidator` and `SchemaSerializer` caching by [@sydney-runkle](https://github.com/sydney-runkle) in https://github.com/pydantic/pydantic/pull/11402 +* Reuse cached core schemas for parametrized generic Pydantic models by [@MarkusSintonen](https://github.com/MarkusSintonen) in https://github.com/pydantic/pydantic/pull/11434 + +#### Fixes + +* Improve `TypeAdapter` instance repr by [@sydney-runkle](https://github.com/sydney-runkle) in https://github.com/pydantic/pydantic/pull/10872 +* Use the correct frame when instantiating a parametrized `TypeAdapter` by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/10893 +* Infer final fields with a default value as class variables in the mypy plugin by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11121 +* Recursively unpack `Literal` values if using PEP 695 type aliases by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11114 +* Override `__subclasscheck__` on `ModelMetaclass` to avoid memory leak and performance issues by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11116 +* Remove unused `_extract_get_pydantic_json_schema()` parameter by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11155 +* Improve discriminated union error message for invalid union variants by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11161 +* Unpack PEP 695 type aliases if using the `Annotated` form by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11109 +* Add missing stacklevel in `deprecated_instance_property` warning by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11200 +* Copy `WithJsonSchema` schema to avoid sharing mutated data by [@thejcannon](https://github.com/thejcannon) in https://github.com/pydantic/pydantic/pull/11014 +* Do not cache parametrized models when in the process of parametrizing another model by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/10704 +* Add discriminated union related metadata entries to the `CoreMetadata` definition by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11216 +* Consolidate schema definitions logic in the `_Definitions` class by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11208 +* Support initializing root model fields with values of the `root` type in the mypy plugin by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11212 +* Fix various issues with dataclasses and `use_attribute_docstrings` by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11246 +* Only compute normalized decimal places if necessary in `decimal_places_validator` by [@misrasaurabh1](https://github.com/misrasaurabh1) in https://github.com/pydantic/pydantic/pull/11281 +* Add support for `validation_alias` in the mypy plugin by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11295 +* Fix JSON Schema reference collection with `"examples"` keys by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11305 +* Do not transform model serializer functions as class methods in the mypy plugin by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11298 +* Simplify `GenerateJsonSchema.literal_schema()` implementation by [@misrasaurabh1](https://github.com/misrasaurabh1) in https://github.com/pydantic/pydantic/pull/11321 +* Add additional allowed schemes for `ClickHouseDsn` by [@Maze21127](https://github.com/Maze21127) in https://github.com/pydantic/pydantic/pull/11319 +* Coerce decimal constraints to `Decimal` instances by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11350 +* Use the correct JSON Schema mode when handling function schemas by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11367 +* Improve exception message when encountering recursion errors during type evaluation by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11356 +* Always include `additionalProperties: True` for arbitrary dictionary schemas by [@austinyu](https://github.com/austinyu) in https://github.com/pydantic/pydantic/pull/11392 +* Expose `fallback` parameter in serialization methods by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11398 +* Fix path serialization behavior by [@sydney-runkle](https://github.com/sydney-runkle) in https://github.com/pydantic/pydantic/pull/11416 +* Do not reuse validators and serializers during model rebuild by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11429 +* Collect model fields when rebuilding a model by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11388 +* Allow cached properties to be altered on frozen models by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11432 +* Fix tuple serialization for `Sequence` types by [@sydney-runkle](https://github.com/sydney-runkle) in https://github.com/pydantic/pydantic/pull/11435 +* Fix: do not check for `__get_validators__` on classes where `__get_pydantic_core_schema__` is also defined by [@tlambert03](https://github.com/tlambert03) in https://github.com/pydantic/pydantic/pull/11444 +* Allow callable instances to be used as serializers by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11451 +* Improve error thrown when overriding field with a property by [@sydney-runkle](https://github.com/sydney-runkle) in https://github.com/pydantic/pydantic/pull/11459 +* Fix JSON Schema generation with referenceable core schemas holding JSON metadata by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11475 +* Support strict specification on union member types by [@sydney-runkle](https://github.com/sydney-runkle) in https://github.com/pydantic/pydantic/pull/11481 +* Implicitly set `validate_by_name` to `True` when `validate_by_alias` is `False` by [@sydney-runkle](https://github.com/sydney-runkle) in https://github.com/pydantic/pydantic/pull/11503 +* Change type of `Any` when synthesizing `BaseSettings.__init__` signature in the mypy plugin by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11497 +* Support type variable defaults referencing other type variables by [@Viicos](https://github.com/Viicos) in https://github.com/pydantic/pydantic/pull/11520 +* Fix `ValueError` on year zero by [@davidhewitt](https://github.com/davidhewitt) in https://github.com/pydantic/pydantic-core/pull/1583 +* `dataclass` `InitVar` shouldn't be required on serialization by [@sydney-runkle](https://github.com/sydney-runkle) in https://github.com/pydantic/pydantic-core/pull/1602 + +## New Contributors + +* [@FyZzyss](https://github.com/FyZzyss) made their first contribution in https://github.com/pydantic/pydantic/pull/10789 +* [@tamird](https://github.com/tamird) made their first contribution in https://github.com/pydantic/pydantic/pull/10948 +* [@felixxm](https://github.com/felixxm) made their first contribution in https://github.com/pydantic/pydantic/pull/11077 +* [@alexprabhat99](https://github.com/alexprabhat99) made their first contribution in https://github.com/pydantic/pydantic/pull/11082 +* [@Kharianne](https://github.com/Kharianne) made their first contribution in https://github.com/pydantic/pydantic/pull/11111 +* [@mdaffad](https://github.com/mdaffad) made their first contribution in https://github.com/pydantic/pydantic/pull/11177 +* [@thejcannon](https://github.com/thejcannon) made their first contribution in https://github.com/pydantic/pydantic/pull/11014 +* [@thomasfrimannkoren](https://github.com/thomasfrimannkoren) made their first contribution in https://github.com/pydantic/pydantic/pull/11251 +* [@usernameMAI](https://github.com/usernameMAI) made their first contribution in https://github.com/pydantic/pydantic/pull/11275 +* [@ananiavito](https://github.com/ananiavito) made their first contribution in https://github.com/pydantic/pydantic/pull/11302 +* [@pawamoy](https://github.com/pawamoy) made their first contribution in https://github.com/pydantic/pydantic/pull/11311 +* [@Maze21127](https://github.com/Maze21127) made their first contribution in https://github.com/pydantic/pydantic/pull/11319 +* [@kauabh](https://github.com/kauabh) made their first contribution in https://github.com/pydantic/pydantic/pull/11369 +* [@jaceklaskowski](https://github.com/jaceklaskowski) made their first contribution in https://github.com/pydantic/pydantic/pull/11353 +* [@tmpbeing](https://github.com/tmpbeing) made their first contribution in https://github.com/pydantic/pydantic/pull/11375 +* [@petyosi](https://github.com/petyosi) made their first contribution in https://github.com/pydantic/pydantic/pull/11405 +* [@austinyu](https://github.com/austinyu) made their first contribution in https://github.com/pydantic/pydantic/pull/11392 +* [@mikeedjones](https://github.com/mikeedjones) made their first contribution in https://github.com/pydantic/pydantic/pull/11402 +* [@astei](https://github.com/astei) made their first contribution in https://github.com/pydantic/pydantic/pull/11436 +* [@dsayling](https://github.com/dsayling) made their first contribution in https://github.com/pydantic/pydantic/pull/11522 +* [@sobolevn](https://github.com/sobolevn) made their first contribution in https://github.com/pydantic/pydantic-core/pull/1645 + +## v2.11.0a2 (2025-02-10) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.11.0a2) + +### What's Changed + +Pydantic v2.11 is a version strongly focused on build time performance of Pydantic models (and core schema generation in general). +This is another early alpha release, meant to collect early feedback from users having issues with core schema builds. + +#### Packaging + +* Bump `ruff` from 0.9.2 to 0.9.5 by [@Viicos](https://github.com/Viicos) in [#11407](https://github.com/pydantic/pydantic/pull/11407) +* Bump `pydantic-core` to v2.29.0 by [@mikeedjones](https://github.com/mikeedjones) in [#11402](https://github.com/pydantic/pydantic/pull/11402) +* Use locally-built rust with symbols & pgo by [@davidhewitt](https://github.com/davidhewitt) in [#11403](https://github.com/pydantic/pydantic/pull/11403) + +#### Performance + +* Create a single dictionary when creating a `CoreConfig` instance by [@sydney-runkle](https://github.com/sydney-runkle) in [#11384](https://github.com/pydantic/pydantic/pull/11384) + +#### Fixes + +* Use the correct JSON Schema mode when handling function schemas by [@Viicos](https://github.com/Viicos) in [#11367](https://github.com/pydantic/pydantic/pull/11367) +* Fix JSON Schema reference logic with `examples` keys by [@Viicos](https://github.com/Viicos) in [#11366](https://github.com/pydantic/pydantic/pull/11366) +* Improve exception message when encountering recursion errors during type evaluation by [@Viicos](https://github.com/Viicos) in [#11356](https://github.com/pydantic/pydantic/pull/11356) +* Always include `additionalProperties: True` for arbitrary dictionary schemas by [@austinyu](https://github.com/austinyu) in [#11392](https://github.com/pydantic/pydantic/pull/11392) +* Expose `fallback` parameter in serialization methods by [@Viicos](https://github.com/Viicos) in [#11398](https://github.com/pydantic/pydantic/pull/11398) +* Fix path serialization behavior by [@sydney-runkle](https://github.com/sydney-runkle) in [#11416](https://github.com/pydantic/pydantic/pull/11416) + +### New Contributors + +* [@kauabh](https://github.com/kauabh) made their first contribution in [#11369](https://github.com/pydantic/pydantic/pull/11369) +* [@jaceklaskowski](https://github.com/jaceklaskowski) made their first contribution in [#11353](https://github.com/pydantic/pydantic/pull/11353) +* [@tmpbeing](https://github.com/tmpbeing) made their first contribution in [#11375](https://github.com/pydantic/pydantic/pull/11375) +* [@petyosi](https://github.com/petyosi) made their first contribution in [#11405](https://github.com/pydantic/pydantic/pull/11405) +* [@austinyu](https://github.com/austinyu) made their first contribution in [#11392](https://github.com/pydantic/pydantic/pull/11392) +* [@mikeedjones](https://github.com/mikeedjones) made their first contribution in [#11402](https://github.com/pydantic/pydantic/pull/11402) + +## v2.11.0a1 (2025-01-30) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.11.0a1) + +### What's Changed + +Pydantic v2.11 is a version strongly focused on build time performance of Pydantic models (and core schema generation in general). +This is an early alpha release, meant to collect early feedback from users having issues with core schema builds. + +#### Packaging + +* Bump dawidd6/action-download-artifact from 6 to 7 by [@dependabot](https://github.com/dependabot) in [#11018](https://github.com/pydantic/pydantic/pull/11018) +* Re-enable memray related tests on Python 3.12+ by [@Viicos](https://github.com/Viicos) in [#11191](https://github.com/pydantic/pydantic/pull/11191) +* Bump astral-sh/setup-uv to 5 by [@dependabot](https://github.com/dependabot) in [#11205](https://github.com/pydantic/pydantic/pull/11205) +* Bump `ruff` to v0.9.0 by [@sydney-runkle](https://github.com/sydney-runkle) in [#11254](https://github.com/pydantic/pydantic/pull/11254) +* Regular `uv.lock` deps update by [@sydney-runkle](https://github.com/sydney-runkle) in [#11333](https://github.com/pydantic/pydantic/pull/11333) +* Add a `check_pydantic_core_version()` function by [@Viicos](https://github.com/Viicos) in [#11324](https://github.com/pydantic/pydantic/pull/11324) +* Remove `greenlet` development dependency by [@Viicos](https://github.com/Viicos) in [#11351](https://github.com/pydantic/pydantic/pull/11351) +* Bump `pydantic-core` to v2.28.0 by [@Viicos](https://github.com/Viicos) in [#11364](https://github.com/pydantic/pydantic/pull/11364) + +#### New Features + +* Support unsubstituted type variables with both a default and a bound or constraints by [@FyZzyss](https://github.com/FyZzyss) in [#10789](https://github.com/pydantic/pydantic/pull/10789) +* Add a `default_factory_takes_validated_data` property to `FieldInfo` by [@Viicos](https://github.com/Viicos) in [#11034](https://github.com/pydantic/pydantic/pull/11034) +* Raise a better error when a generic alias is used inside `type[]` by [@Viicos](https://github.com/Viicos) in [#11088](https://github.com/pydantic/pydantic/pull/11088) +* Properly support PEP 695 generics syntax by [@Viicos](https://github.com/Viicos) in [#11189](https://github.com/pydantic/pydantic/pull/11189) +* Properly support type variable defaults by [@Viicos](https://github.com/Viicos) in [#11332](https://github.com/pydantic/pydantic/pull/11332) + +#### Changes + +* Rework `create_model` field definitions format by [@Viicos](https://github.com/Viicos) in [#11032](https://github.com/pydantic/pydantic/pull/11032) +* Raise a deprecation warning when a field is annotated as final with a default value by [@Viicos](https://github.com/Viicos) in [#11168](https://github.com/pydantic/pydantic/pull/11168) +* Deprecate accessing `model_fields` and `model_computed_fields` on instances by [@Viicos](https://github.com/Viicos) in [#11169](https://github.com/pydantic/pydantic/pull/11169) +* Move core schema generation logic for path types inside the `GenerateSchema` class by [@sydney-runkle](https://github.com/sydney-runkle) in [#10846](https://github.com/pydantic/pydantic/pull/10846) +* Move `deque` schema gen to `GenerateSchema` class by [@sydney-runkle](https://github.com/sydney-runkle) in [#11239](https://github.com/pydantic/pydantic/pull/11239) +* Move `Mapping` schema gen to `GenerateSchema` to complete removal of `prepare_annotations_for_known_type` workaround by [@sydney-runkle](https://github.com/sydney-runkle) in [#11247](https://github.com/pydantic/pydantic/pull/11247) +* Remove Python 3.8 Support by [@sydney-runkle](https://github.com/sydney-runkle) in [#11258](https://github.com/pydantic/pydantic/pull/11258) +* Disable `pydantic-core` core schema validation by [@sydney-runkle](https://github.com/sydney-runkle) in [#11271](https://github.com/pydantic/pydantic/pull/11271) + +#### Performance + +* Only evaluate `FieldInfo` annotations if required during schema building by [@Viicos](https://github.com/Viicos) in [#10769](https://github.com/pydantic/pydantic/pull/10769) +* Optimize calls to `get_type_ref` by [@Viicos](https://github.com/Viicos) in [#10863](https://github.com/pydantic/pydantic/pull/10863) +* Improve `__setattr__` performance of Pydantic models by caching setter functions by [@MarkusSintonen](https://github.com/MarkusSintonen) in [#10868](https://github.com/pydantic/pydantic/pull/10868) +* Improve annotation application performance by [@Viicos](https://github.com/Viicos) in [#11186](https://github.com/pydantic/pydantic/pull/11186) +* Improve performance of `_typing_extra` module by [@Viicos](https://github.com/Viicos) in [#11255](https://github.com/pydantic/pydantic/pull/11255) +* Refactor and optimize schema cleaning logic by [@Viicos](https://github.com/Viicos) and [@MarkusSintonen](https://github.com/MarkusSintonen) in [#11244](https://github.com/pydantic/pydantic/pull/11244) + +#### Fixes + +* Add validation tests for `_internal/_validators.py` by [@tkasuz](https://github.com/tkasuz) in [#10763](https://github.com/pydantic/pydantic/pull/10763) +* Improve `TypeAdapter` instance repr by [@sydney-runkle](https://github.com/sydney-runkle) in [#10872](https://github.com/pydantic/pydantic/pull/10872) +* Revert "ci: use locally built pydantic-core with debug symbols by [@sydney-runkle](https://github.com/sydney-runkle) in [#10942](https://github.com/pydantic/pydantic/pull/10942) +* Re-enable all FastAPI tests by [@tamird](https://github.com/tamird) in [#10948](https://github.com/pydantic/pydantic/pull/10948) +* Fix typo in HISTORY.md. by [@felixxm](https://github.com/felixxm) in [#11077](https://github.com/pydantic/pydantic/pull/11077) +* Infer final fields with a default value as class variables in the mypy plugin by [@Viicos](https://github.com/Viicos) in [#11121](https://github.com/pydantic/pydantic/pull/11121) +* Recursively unpack `Literal` values if using PEP 695 type aliases by [@Viicos](https://github.com/Viicos) in [#11114](https://github.com/pydantic/pydantic/pull/11114) +* Override `__subclasscheck__` on `ModelMetaclass` to avoid memory leak and performance issues by [@Viicos](https://github.com/Viicos) in [#11116](https://github.com/pydantic/pydantic/pull/11116) +* Remove unused `_extract_get_pydantic_json_schema()` parameter by [@Viicos](https://github.com/Viicos) in [#11155](https://github.com/pydantic/pydantic/pull/11155) +* Add FastAPI and SQLModel to third-party tests by [@sydney-runkle](https://github.com/sydney-runkle) in [#11044](https://github.com/pydantic/pydantic/pull/11044) +* Fix conditional expressions syntax for third-party tests by [@Viicos](https://github.com/Viicos) in [#11162](https://github.com/pydantic/pydantic/pull/11162) +* Move FastAPI tests to third-party workflow by [@Viicos](https://github.com/Viicos) in [#11164](https://github.com/pydantic/pydantic/pull/11164) +* Improve discriminated union error message for invalid union variants by [@Viicos](https://github.com/Viicos) in [#11161](https://github.com/pydantic/pydantic/pull/11161) +* Unpack PEP 695 type aliases if using the `Annotated` form by [@Viicos](https://github.com/Viicos) in [#11109](https://github.com/pydantic/pydantic/pull/11109) +* Include `openapi-python-client` check in issue creation for third-party failures, use `main` branch by [@sydney-runkle](https://github.com/sydney-runkle) in [#11182](https://github.com/pydantic/pydantic/pull/11182) +* Add pandera third-party tests by [@Viicos](https://github.com/Viicos) in [#11193](https://github.com/pydantic/pydantic/pull/11193) +* Add ODMantic third-party tests by [@sydney-runkle](https://github.com/sydney-runkle) in [#11197](https://github.com/pydantic/pydantic/pull/11197) +* Add missing stacklevel in `deprecated_instance_property` warning by [@Viicos](https://github.com/Viicos) in [#11200](https://github.com/pydantic/pydantic/pull/11200) +* Copy `WithJsonSchema` schema to avoid sharing mutated data by [@thejcannon](https://github.com/thejcannon) in [#11014](https://github.com/pydantic/pydantic/pull/11014) +* Do not cache parametrized models when in the process of parametrizing another model by [@Viicos](https://github.com/Viicos) in [#10704](https://github.com/pydantic/pydantic/pull/10704) +* Re-enable Beanie third-party tests by [@Viicos](https://github.com/Viicos) in [#11214](https://github.com/pydantic/pydantic/pull/11214) +* Add discriminated union related metadata entries to the `CoreMetadata` definition by [@Viicos](https://github.com/Viicos) in [#11216](https://github.com/pydantic/pydantic/pull/11216) +* Consolidate schema definitions logic in the `_Definitions` class by [@Viicos](https://github.com/Viicos) in [#11208](https://github.com/pydantic/pydantic/pull/11208) +* Support initializing root model fields with values of the `root` type in the mypy plugin by [@Viicos](https://github.com/Viicos) in [#11212](https://github.com/pydantic/pydantic/pull/11212) +* Fix various issues with dataclasses and `use_attribute_docstrings` by [@Viicos](https://github.com/Viicos) in [#11246](https://github.com/pydantic/pydantic/pull/11246) +* Only compute normalized decimal places if necessary in `decimal_places_validator` by [@misrasaurabh1](https://github.com/misrasaurabh1) in [#11281](https://github.com/pydantic/pydantic/pull/11281) +* Fix two misplaced sentences in validation errors documentation by [@ananiavito](https://github.com/ananiavito) in [#11302](https://github.com/pydantic/pydantic/pull/11302) +* Fix mkdocstrings inventory example in documentation by [@pawamoy](https://github.com/pawamoy) in [#11311](https://github.com/pydantic/pydantic/pull/11311) +* Add support for `validation_alias` in the mypy plugin by [@Viicos](https://github.com/Viicos) in [#11295](https://github.com/pydantic/pydantic/pull/11295) +* Do not transform model serializer functions as class methods in the mypy plugin by [@Viicos](https://github.com/Viicos) in [#11298](https://github.com/pydantic/pydantic/pull/11298) +* Simplify `GenerateJsonSchema.literal_schema()` implementation by [@misrasaurabh1](https://github.com/misrasaurabh1) in [#11321](https://github.com/pydantic/pydantic/pull/11321) +* Add additional allowed schemes for `ClickHouseDsn` by [@Maze21127](https://github.com/Maze21127) in [#11319](https://github.com/pydantic/pydantic/pull/11319) +* Coerce decimal constraints to `Decimal` instances by [@Viicos](https://github.com/Viicos) in [#11350](https://github.com/pydantic/pydantic/pull/11350) +* Fix `ValueError` on year zero by [@davidhewitt](https://github.com/davidhewitt) in [pydantic-core#1583](https://github.com/pydantic/pydantic-core/pull/1583) + +### New Contributors + +* [@FyZzyss](https://github.com/FyZzyss) made their first contribution in [#10789](https://github.com/pydantic/pydantic/pull/10789) +* [@tamird](https://github.com/tamird) made their first contribution in [#10948](https://github.com/pydantic/pydantic/pull/10948) +* [@felixxm](https://github.com/felixxm) made their first contribution in [#11077](https://github.com/pydantic/pydantic/pull/11077) +* [@alexprabhat99](https://github.com/alexprabhat99) made their first contribution in [#11082](https://github.com/pydantic/pydantic/pull/11082) +* [@Kharianne](https://github.com/Kharianne) made their first contribution in [#11111](https://github.com/pydantic/pydantic/pull/11111) +* [@mdaffad](https://github.com/mdaffad) made their first contribution in [#11177](https://github.com/pydantic/pydantic/pull/11177) +* [@thejcannon](https://github.com/thejcannon) made their first contribution in [#11014](https://github.com/pydantic/pydantic/pull/11014) +* [@thomasfrimannkoren](https://github.com/thomasfrimannkoren) made their first contribution in [#11251](https://github.com/pydantic/pydantic/pull/11251) +* [@usernameMAI](https://github.com/usernameMAI) made their first contribution in [#11275](https://github.com/pydantic/pydantic/pull/11275) +* [@ananiavito](https://github.com/ananiavito) made their first contribution in [#11302](https://github.com/pydantic/pydantic/pull/11302) +* [@pawamoy](https://github.com/pawamoy) made their first contribution in [#11311](https://github.com/pydantic/pydantic/pull/11311) +* [@Maze21127](https://github.com/Maze21127) made their first contribution in [#11319](https://github.com/pydantic/pydantic/pull/11319) + +## v2.10.6 (2025-01-23) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.10.6) + +### What's Changed + +#### Fixes + +* Fix JSON Schema reference collection with `'examples'` keys by [@Viicos](https://github.com/Viicos) in [#11325](https://github.com/pydantic/pydantic/pull/11325) +* Fix url python serialization by [@sydney-runkle](https://github.com/sydney-runkle) in [#11331](https://github.com/pydantic/pydantic/pull/11331) + +## v2.10.5 (2025-01-08) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.10.5) + +### What's Changed + +#### Fixes + +* Remove custom MRO implementation of Pydantic models by [@Viicos](https://github.com/Viicos) in [#11184](https://github.com/pydantic/pydantic/pull/11184) +* Fix URL serialization for unions by [@sydney-runkle](https://github.com/sydney-runkle) in [#11233](https://github.com/pydantic/pydantic/pull/11233) + +## v2.10.4 (2024-12-18) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.10.4) + +### What's Changed + +#### Packaging + +* Bump `pydantic-core` to v2.27.2 by [@davidhewitt](https://github.com/davidhewitt) in [#11138](https://github.com/pydantic/pydantic/pull/11138) + +#### Fixes + +* Fix for comparison of `AnyUrl` objects by [@alexprabhat99](https://github.com/alexprabhat99) in [#11082](https://github.com/pydantic/pydantic/pull/11082) +* Properly fetch PEP 695 type params for functions, do not fetch annotations from signature by [@Viicos](https://github.com/Viicos) in [#11093](https://github.com/pydantic/pydantic/pull/11093) +* Include JSON Schema input core schema in function schemas by [@Viicos](https://github.com/Viicos) in [#11085](https://github.com/pydantic/pydantic/pull/11085) +* Add `len` to `_BaseUrl` to avoid TypeError by [@Kharianne](https://github.com/Kharianne) in [#11111](https://github.com/pydantic/pydantic/pull/11111) +* Make sure the type reference is removed from the seen references by [@Viicos](https://github.com/Viicos) in [#11143](https://github.com/pydantic/pydantic/pull/11143) + +### New Contributors + +* [@FyZzyss](https://github.com/FyZzyss) made their first contribution in [#10789](https://github.com/pydantic/pydantic/pull/10789) +* [@tamird](https://github.com/tamird) made their first contribution in [#10948](https://github.com/pydantic/pydantic/pull/10948) +* [@felixxm](https://github.com/felixxm) made their first contribution in [#11077](https://github.com/pydantic/pydantic/pull/11077) +* [@alexprabhat99](https://github.com/alexprabhat99) made their first contribution in [#11082](https://github.com/pydantic/pydantic/pull/11082) +* [@Kharianne](https://github.com/Kharianne) made their first contribution in [#11111](https://github.com/pydantic/pydantic/pull/11111) + +## v2.10.3 (2024-12-03) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.10.3) + +### What's Changed + +#### Fixes + +* Set fields when `defer_build` is set on Pydantic dataclasses by [@Viicos](https://github.com/Viicos) in [#10984](https://github.com/pydantic/pydantic/pull/10984) +* Do not resolve the JSON Schema reference for `dict` core schema keys by [@Viicos](https://github.com/Viicos) in [#10989](https://github.com/pydantic/pydantic/pull/10989) +* Use the globals of the function when evaluating the return type for `PlainSerializer` and `WrapSerializer` functions by [@Viicos](https://github.com/Viicos) in [#11008](https://github.com/pydantic/pydantic/pull/11008) +* Fix host required enforcement for urls to be compatible with v2.9 behavior by [@sydney-runkle](https://github.com/sydney-runkle) in [#11027](https://github.com/pydantic/pydantic/pull/11027) +* Add a `default_factory_takes_validated_data` property to `FieldInfo` by [@Viicos](https://github.com/Viicos) in [#11034](https://github.com/pydantic/pydantic/pull/11034) +* Fix url json schema in `serialization` mode by [@sydney-runkle](https://github.com/sydney-runkle) in [#11035](https://github.com/pydantic/pydantic/pull/11035) + +## v2.10.2 (2024-11-25) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.10.2) + +### What's Changed + +#### Fixes + +* Only evaluate FieldInfo annotations if required during schema building by [@Viicos](https://github.com/Viicos) in [#10769](https://github.com/pydantic/pydantic/pull/10769) +* Do not evaluate annotations for private fields by [@Viicos](https://github.com/Viicos) in [#10962](https://github.com/pydantic/pydantic/pull/10962) +* Support serialization as any for `Secret` types and `Url` types by [@sydney-runkle](https://github.com/sydney-runkle) in [#10947](https://github.com/pydantic/pydantic/pull/10947) +* Fix type hint of `Field.default` to be compatible with Python 3.8 and 3.9 by [@Viicos](https://github.com/Viicos) in [#10972](https://github.com/pydantic/pydantic/pull/10972) +* Add hashing support for URL types by [@sydney-runkle](https://github.com/sydney-runkle) in [#10975](https://github.com/pydantic/pydantic/pull/10975) +* Hide `BaseModel.__replace__` definition from type checkers by [@Viicos](https://github.com/Viicos) in [#10979](https://github.com/pydantic/pydantic/pull/10979) + +## v2.10.1 (2024-11-21) + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.10.1) + +### What's Changed + +#### Packaging + +* Bump `pydantic-core` version to `v2.27.1` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10938](https://github.com/pydantic/pydantic/pull/10938) + +#### Fixes + +* Use the correct frame when instantiating a parametrized `TypeAdapter` by [@Viicos](https://github.com/Viicos) in [#10893](https://github.com/pydantic/pydantic/pull/10893) +* Relax check for validated data in `default_factory` utils by [@sydney-runkle](https://github.com/sydney-runkle) in [#10909](https://github.com/pydantic/pydantic/pull/10909) +* Fix type checking issue with `model_fields` and `model_computed_fields` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10911](https://github.com/pydantic/pydantic/pull/10911) +* Use the parent configuration during schema generation for stdlib `dataclass`es by [@sydney-runkle](https://github.com/sydney-runkle) in [#10928](https://github.com/pydantic/pydantic/pull/10928) +* Use the `globals` of the function when evaluating the return type of serializers and `computed_field`s by [@Viicos](https://github.com/Viicos) in [#10929](https://github.com/pydantic/pydantic/pull/10929) +* Fix URL constraint application by [@sydney-runkle](https://github.com/sydney-runkle) in [#10922](https://github.com/pydantic/pydantic/pull/10922) +* Fix URL equality with different validation methods by [@sydney-runkle](https://github.com/sydney-runkle) in [#10934](https://github.com/pydantic/pydantic/pull/10934) +* Fix JSON schema title when specified as `''` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10936](https://github.com/pydantic/pydantic/pull/10936) +* Fix `python` mode serialization for `complex` inference by [@sydney-runkle](https://github.com/sydney-runkle) in [pydantic-core#1549](https://github.com/pydantic/pydantic-core/pull/1549) + +### New Contributors + +## v2.10.0 (2024-11-20) + +The code released in v2.10.0 is practically identical to that of v2.10.0b2. + +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.10.0) + +See the [v2.10 release blog post](https://pydantic.dev/articles/pydantic-v2-10-release) for the highlights! + +### What's Changed + +#### Packaging + +* Bump `pydantic-core` to `v2.27.0` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10825](https://github.com/pydantic/pydantic/pull/10825) +* Replaced pdm with uv by [@frfahim](https://github.com/frfahim) in [#10727](https://github.com/pydantic/pydantic/pull/10727) + +#### New Features + +* Support `fractions.Fraction` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10318](https://github.com/pydantic/pydantic/pull/10318) +* Support `Hashable` for json validation by [@sydney-runkle](https://github.com/sydney-runkle) in [#10324](https://github.com/pydantic/pydantic/pull/10324) +* Add a `SocketPath` type for `linux` systems by [@theunkn0wn1](https://github.com/theunkn0wn1) in [#10378](https://github.com/pydantic/pydantic/pull/10378) +* Allow arbitrary refs in JSON schema `examples` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10417](https://github.com/pydantic/pydantic/pull/10417) +* Support `defer_build` for Pydantic dataclasses by [@Viicos](https://github.com/Viicos) in [#10313](https://github.com/pydantic/pydantic/pull/10313) +* Adding v1 / v2 incompatibility warning for nested v1 model by [@sydney-runkle](https://github.com/sydney-runkle) in [#10431](https://github.com/pydantic/pydantic/pull/10431) +* Add support for unpacked `TypedDict` to type hint variadic keyword arguments with `@validate_call` by [@Viicos](https://github.com/Viicos) in [#10416](https://github.com/pydantic/pydantic/pull/10416) +* Support compiled patterns in `protected_namespaces` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10522](https://github.com/pydantic/pydantic/pull/10522) +* Add support for `propertyNames` in JSON schema by [@FlorianSW](https://github.com/FlorianSW) in [#10478](https://github.com/pydantic/pydantic/pull/10478) +* Adding `__replace__` protocol for Python 3.13+ support by [@sydney-runkle](https://github.com/sydney-runkle) in [#10596](https://github.com/pydantic/pydantic/pull/10596) +* Expose public `sort` method for JSON schema generation by [@sydney-runkle](https://github.com/sydney-runkle) in [#10595](https://github.com/pydantic/pydantic/pull/10595) +* Add runtime validation of `@validate_call` callable argument by [@kc0506](https://github.com/kc0506) in [#10627](https://github.com/pydantic/pydantic/pull/10627) +* Add `experimental_allow_partial` support by [@samuelcolvin](https://github.com/samuelcolvin) in [#10748](https://github.com/pydantic/pydantic/pull/10748) +* Support default factories taking validated data as an argument by [@Viicos](https://github.com/Viicos) in [#10678](https://github.com/pydantic/pydantic/pull/10678) +* Allow subclassing `ValidationError` and `PydanticCustomError` by [@Youssefares](https://github.com/Youssefares) in [pydantic/pydantic-core#1413](https://github.com/pydantic/pydantic-core/pull/1413) +* Add `trailing-strings` support to `experimental_allow_partial` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10825](https://github.com/pydantic/pydantic/pull/10825) +* Add `rebuild()` method for `TypeAdapter` and simplify `defer_build` patterns by [@sydney-runkle](https://github.com/sydney-runkle) in [#10537](https://github.com/pydantic/pydantic/pull/10537) +* Improve `TypeAdapter` instance repr by [@sydney-runkle](https://github.com/sydney-runkle) in [#10872](https://github.com/pydantic/pydantic/pull/10872) + +#### Changes + +* Don't allow customization of `SchemaGenerator` until interface is more stable by [@sydney-runkle](https://github.com/sydney-runkle) in [#10303](https://github.com/pydantic/pydantic/pull/10303) +* Cleanly `defer_build` on `TypeAdapters`, removing experimental flag by [@sydney-runkle](https://github.com/sydney-runkle) in [#10329](https://github.com/pydantic/pydantic/pull/10329) +* Fix `mro` of generic subclass by [@kc0506](https://github.com/kc0506) in [#10100](https://github.com/pydantic/pydantic/pull/10100) +* Strip whitespaces on JSON Schema title generation by [@sydney-runkle](https://github.com/sydney-runkle) in [#10404](https://github.com/pydantic/pydantic/pull/10404) +* Use `b64decode` and `b64encode` for `Base64Bytes` type by [@sydney-runkle](https://github.com/sydney-runkle) in [#10486](https://github.com/pydantic/pydantic/pull/10486) +* Relax protected namespace config default by [@sydney-runkle](https://github.com/sydney-runkle) in [#10441](https://github.com/pydantic/pydantic/pull/10441) +* Revalidate parametrized generics if instance's origin is subclass of OG class by [@sydney-runkle](https://github.com/sydney-runkle) in [#10666](https://github.com/pydantic/pydantic/pull/10666) +* Warn if configuration is specified on the `@dataclass` decorator and with the `__pydantic_config__` attribute by [@sydney-runkle](https://github.com/sydney-runkle) in [#10406](https://github.com/pydantic/pydantic/pull/10406) +* Recommend against using `Ellipsis` (...) with `Field` by [@Viicos](https://github.com/Viicos) in [#10661](https://github.com/pydantic/pydantic/pull/10661) +* Migrate to subclassing instead of annotated approach for pydantic url types by [@sydney-runkle](https://github.com/sydney-runkle) in [#10662](https://github.com/pydantic/pydantic/pull/10662) +* Change JSON schema generation of `Literal`s and `Enums` by [@Viicos](https://github.com/Viicos) in [#10692](https://github.com/pydantic/pydantic/pull/10692) +* Simplify unions involving `Any` or `Never` when replacing type variables by [@Viicos](https://github.com/Viicos) in [#10338](https://github.com/pydantic/pydantic/pull/10338) +* Do not require padding when decoding `base64` bytes by [@bschoenmaeckers](https://github.com/bschoenmaeckers) in [pydantic/pydantic-core#1448](https://github.com/pydantic/pydantic-core/pull/1448) +* Support dates all the way to 1BC by [@changhc](https://github.com/changhc) in [pydantic/speedate#77](https://github.com/pydantic/speedate/pull/77) + +#### Performance + +* Schema cleaning: skip unnecessary copies during schema walking by [@Viicos](https://github.com/Viicos) in [#10286](https://github.com/pydantic/pydantic/pull/10286) +* Refactor namespace logic for annotations evaluation by [@Viicos](https://github.com/Viicos) in [#10530](https://github.com/pydantic/pydantic/pull/10530) +* Improve email regexp on edge cases by [@AlekseyLobanov](https://github.com/AlekseyLobanov) in [#10601](https://github.com/pydantic/pydantic/pull/10601) +* `CoreMetadata` refactor with an emphasis on documentation, schema build time performance, and reducing complexity by [@sydney-runkle](https://github.com/sydney-runkle) in [#10675](https://github.com/pydantic/pydantic/pull/10675) + +#### Fixes + +* Remove guarding check on `computed_field` with `field_serializer` by [@nix010](https://github.com/nix010) in [#10390](https://github.com/pydantic/pydantic/pull/10390) +* Fix `Predicate` issue in `v2.9.0` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10321](https://github.com/pydantic/pydantic/pull/10321) +* Fixing `annotated-types` bound by [@sydney-runkle](https://github.com/sydney-runkle) in [#10327](https://github.com/pydantic/pydantic/pull/10327) +* Turn `tzdata` install requirement into optional `timezone` dependency by [@jakob-keller](https://github.com/jakob-keller) in [#10331](https://github.com/pydantic/pydantic/pull/10331) +* Use correct types namespace when building `namedtuple` core schemas by [@Viicos](https://github.com/Viicos) in [#10337](https://github.com/pydantic/pydantic/pull/10337) +* Fix evaluation of stringified annotations during namespace inspection by [@Viicos](https://github.com/Viicos) in [#10347](https://github.com/pydantic/pydantic/pull/10347) +* Fix `IncEx` type alias definition by [@Viicos](https://github.com/Viicos) in [#10339](https://github.com/pydantic/pydantic/pull/10339) +* Do not error when trying to evaluate annotations of private attributes by [@Viicos](https://github.com/Viicos) in [#10358](https://github.com/pydantic/pydantic/pull/10358) +* Fix nested type statement by [@kc0506](https://github.com/kc0506) in [#10369](https://github.com/pydantic/pydantic/pull/10369) +* Improve typing of `ModelMetaclass.mro` by [@Viicos](https://github.com/Viicos) in [#10372](https://github.com/pydantic/pydantic/pull/10372) +* Fix class access of deprecated `computed_field`s by [@Viicos](https://github.com/Viicos) in [#10391](https://github.com/pydantic/pydantic/pull/10391) +* Make sure `inspect.iscoroutinefunction` works on coroutines decorated with `@validate_call` by [@MovisLi](https://github.com/MovisLi) in [#10374](https://github.com/pydantic/pydantic/pull/10374) +* Fix `NameError` when using `validate_call` with PEP 695 on a class by [@kc0506](https://github.com/kc0506) in [#10380](https://github.com/pydantic/pydantic/pull/10380) +* Fix `ZoneInfo` with various invalid types by [@sydney-runkle](https://github.com/sydney-runkle) in [#10408](https://github.com/pydantic/pydantic/pull/10408) +* Fix `PydanticUserError` on empty `model_config` with annotations by [@cdwilson](https://github.com/cdwilson) in [#10412](https://github.com/pydantic/pydantic/pull/10412) +* Fix variance issue in `_IncEx` type alias, only allow `True` by [@Viicos](https://github.com/Viicos) in [#10414](https://github.com/pydantic/pydantic/pull/10414) +* Fix serialization schema generation when using `PlainValidator` by [@Viicos](https://github.com/Viicos) in [#10427](https://github.com/pydantic/pydantic/pull/10427) +* Fix schema generation error when serialization schema holds references by [@Viicos](https://github.com/Viicos) in [#10444](https://github.com/pydantic/pydantic/pull/10444) +* Inline references if possible when generating schema for `json_schema_input_type` by [@Viicos](https://github.com/Viicos) in [#10439](https://github.com/pydantic/pydantic/pull/10439) +* Fix recursive arguments in `Representation` by [@Viicos](https://github.com/Viicos) in [#10480](https://github.com/pydantic/pydantic/pull/10480) +* Fix representation for builtin function types by [@kschwab](https://github.com/kschwab) in [#10479](https://github.com/pydantic/pydantic/pull/10479) +* Add python validators for decimal constraints (`max_digits` and `decimal_places`) by [@sydney-runkle](https://github.com/sydney-runkle) in [#10506](https://github.com/pydantic/pydantic/pull/10506) +* Only fetch `__pydantic_core_schema__` from the current class during schema generation by [@Viicos](https://github.com/Viicos) in [#10518](https://github.com/pydantic/pydantic/pull/10518) +* Fix `stacklevel` on deprecation warnings for `BaseModel` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10520](https://github.com/pydantic/pydantic/pull/10520) +* Fix warning `stacklevel` in `BaseModel.__init__` by [@Viicos](https://github.com/Viicos) in [#10526](https://github.com/pydantic/pydantic/pull/10526) +* Improve error handling for in-evaluable refs for discriminator application by [@sydney-runkle](https://github.com/sydney-runkle) in [#10440](https://github.com/pydantic/pydantic/pull/10440) +* Change the signature of `ConfigWrapper.core_config` to take the title directly by [@Viicos](https://github.com/Viicos) in [#10562](https://github.com/pydantic/pydantic/pull/10562) +* Do not use the previous config from the stack for dataclasses without config by [@Viicos](https://github.com/Viicos) in [#10576](https://github.com/pydantic/pydantic/pull/10576) +* Fix serialization for IP types with `mode='python'` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10594](https://github.com/pydantic/pydantic/pull/10594) +* Support constraint application for `Base64Etc` types by [@sydney-runkle](https://github.com/sydney-runkle) in [#10584](https://github.com/pydantic/pydantic/pull/10584) +* Fix `validate_call` ignoring `Field` in `Annotated` by [@kc0506](https://github.com/kc0506) in [#10610](https://github.com/pydantic/pydantic/pull/10610) +* Raise an error when `Self` is invalid by [@kc0506](https://github.com/kc0506) in [#10609](https://github.com/pydantic/pydantic/pull/10609) +* Using `core_schema.InvalidSchema` instead of metadata injection + checks by [@sydney-runkle](https://github.com/sydney-runkle) in [#10523](https://github.com/pydantic/pydantic/pull/10523) +* Tweak type alias logic by [@kc0506](https://github.com/kc0506) in [#10643](https://github.com/pydantic/pydantic/pull/10643) +* Support usage of `type` with `typing.Self` and type aliases by [@kc0506](https://github.com/kc0506) in [#10621](https://github.com/pydantic/pydantic/pull/10621) +* Use overloads for `Field` and `PrivateAttr` functions by [@Viicos](https://github.com/Viicos) in [#10651](https://github.com/pydantic/pydantic/pull/10651) +* Clean up the `mypy` plugin implementation by [@Viicos](https://github.com/Viicos) in [#10669](https://github.com/pydantic/pydantic/pull/10669) +* Properly check for `typing_extensions` variant of `TypeAliasType` by [@Daraan](https://github.com/Daraan) in [#10713](https://github.com/pydantic/pydantic/pull/10713) +* Allow any mapping in `BaseModel.model_copy()` by [@Viicos](https://github.com/Viicos) in [#10751](https://github.com/pydantic/pydantic/pull/10751) +* Fix `isinstance` behavior for urls by [@sydney-runkle](https://github.com/sydney-runkle) in [#10766](https://github.com/pydantic/pydantic/pull/10766) +* Ensure `cached_property` can be set on Pydantic models by [@Viicos](https://github.com/Viicos) in [#10774](https://github.com/pydantic/pydantic/pull/10774) +* Fix equality checks for primitives in literals by [@sydney-runkle](https://github.com/sydney-runkle) in [pydantic/pydantic-core#1459](https://github.com/pydantic/pydantic-core/pull/1459) +* Properly enforce `host_required` for URLs by [@Viicos](https://github.com/Viicos) in [pydantic/pydantic-core#1488](https://github.com/pydantic/pydantic-core/pull/1488) +* Fix when `coerce_numbers_to_str` enabled and string has invalid Unicode character by [@andrey-berenda](https://github.com/andrey-berenda) in [pydantic/pydantic-core#1515](https://github.com/pydantic/pydantic-core/pull/1515) +* Fix serializing `complex` values in `Enum`s by [@changhc](https://github.com/changhc) in [pydantic/pydantic-core#1524](https://github.com/pydantic/pydantic-core/pull/1524) +* Refactor `_typing_extra` module by [@Viicos](https://github.com/Viicos) in [#10725](https://github.com/pydantic/pydantic/pull/10725) +* Support intuitive equality for urls by [@sydney-runkle](https://github.com/sydney-runkle) in [#10798](https://github.com/pydantic/pydantic/pull/10798) +* Add `bytearray` to `TypeAdapter.validate_json` signature by [@samuelcolvin](https://github.com/samuelcolvin) in [#10802](https://github.com/pydantic/pydantic/pull/10802) +* Ensure class access of method descriptors is performed when used as a default with `Field` by [@Viicos](https://github.com/Viicos) in [#10816](https://github.com/pydantic/pydantic/pull/10816) +* Fix circular import with `validate_call` by [@sydney-runkle](https://github.com/sydney-runkle) in [#10807](https://github.com/pydantic/pydantic/pull/10807) +* Fix error when using type aliases referencing other type aliases by [@Viicos](https://github.com/Viicos) in [#10809](https://github.com/pydantic/pydantic/pull/10809) +* Fix `IncEx` type alias to be compatible with mypy by [@Viicos](https://github.com/Viicos) in [#10813](https://github.com/pydantic/pydantic/pull/10813) +* Make `__signature__` a lazy property, do not deepcopy defaults by [@Viicos](https://github.com/Viicos) in [#10818](https://github.com/pydantic/pydantic/pull/10818) +* Make `__signature__` lazy for dataclasses, too by [@sydney-runkle](https://github.com/sydney-runkle) in [#10832](https://github.com/pydantic/pydantic/pull/10832) +* Subclass all single host url classes from `AnyUrl` to preserve behavior from v2.9 by [@sydney-runkle](https://github.com/sydney-runkle) in [#10856](https://github.com/pydantic/pydantic/pull/10856) + +### New Contributors + +* [@jakob-keller](https://github.com/jakob-keller) made their first contribution in [#10331](https://github.com/pydantic/pydantic/pull/10331) +* [@MovisLi](https://github.com/MovisLi) made their first contribution in [#10374](https://github.com/pydantic/pydantic/pull/10374) +* [@joaopalmeiro](https://github.com/joaopalmeiro) made their first contribution in [#10405](https://github.com/pydantic/pydantic/pull/10405) +* [@theunkn0wn1](https://github.com/theunkn0wn1) made their first contribution in [#10378](https://github.com/pydantic/pydantic/pull/10378) +* [@cdwilson](https://github.com/cdwilson) made their first contribution in [#10412](https://github.com/pydantic/pydantic/pull/10412) +* [@dlax](https://github.com/dlax) made their first contribution in [#10421](https://github.com/pydantic/pydantic/pull/10421) +* [@kschwab](https://github.com/kschwab) made their first contribution in [#10479](https://github.com/pydantic/pydantic/pull/10479) +* [@santibreo](https://github.com/santibreo) made their first contribution in [#10453](https://github.com/pydantic/pydantic/pull/10453) +* [@FlorianSW](https://github.com/FlorianSW) made their first contribution in [#10478](https://github.com/pydantic/pydantic/pull/10478) +* [@tkasuz](https://github.com/tkasuz) made their first contribution in [#10555](https://github.com/pydantic/pydantic/pull/10555) +* [@AlekseyLobanov](https://github.com/AlekseyLobanov) made their first contribution in [#10601](https://github.com/pydantic/pydantic/pull/10601) +* [@NiclasvanEyk](https://github.com/NiclasvanEyk) made their first contribution in [#10667](https://github.com/pydantic/pydantic/pull/10667) +* [@mschoettle](https://github.com/mschoettle) made their first contribution in [#10677](https://github.com/pydantic/pydantic/pull/10677) +* [@Daraan](https://github.com/Daraan) made their first contribution in [#10713](https://github.com/pydantic/pydantic/pull/10713) +* [@k4nar](https://github.com/k4nar) made their first contribution in [#10736](https://github.com/pydantic/pydantic/pull/10736) +* [@UriyaHarpeness](https://github.com/UriyaHarpeness) made their first contribution in [#10740](https://github.com/pydantic/pydantic/pull/10740) +* [@frfahim](https://github.com/frfahim) made their first contribution in [#10727](https://github.com/pydantic/pydantic/pull/10727) + +## v2.10.0b2 (2024-11-13) + +Pre-release, see [the GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.10.0b2) for details. + +## v2.10.0b1 (2024-11-06) + +Pre-release, see [the GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.10.0b1) for details. + + +... see [here](https://docs.pydantic.dev/changelog/#v0322-2019-08-17) for earlier changes. diff --git a/venv/lib/python3.11/site-packages/pydantic-2.12.4.dist-info/RECORD b/venv/lib/python3.11/site-packages/pydantic-2.12.4.dist-info/RECORD new file mode 100644 index 0000000..4c61cea --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic-2.12.4.dist-info/RECORD @@ -0,0 +1,218 @@ +pydantic-2.12.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +pydantic-2.12.4.dist-info/METADATA,sha256=n-oEZ-oPi9CLD6_06tpdKVIAf6HjvpsB6oaOYOo88lQ,89859 +pydantic-2.12.4.dist-info/RECORD,, +pydantic-2.12.4.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pydantic-2.12.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87 +pydantic-2.12.4.dist-info/licenses/LICENSE,sha256=qeGG88oWte74QxjnpwFyE1GgDLe4rjpDlLZ7SeNSnvM,1129 +pydantic/__init__.py,sha256=5iEnJ4wHv1OEzdKQPzaKaZKfO4pSQAC65ODrYI6_S8Y,15812 +pydantic/__pycache__/__init__.cpython-311.pyc,, +pydantic/__pycache__/_migration.cpython-311.pyc,, +pydantic/__pycache__/alias_generators.cpython-311.pyc,, +pydantic/__pycache__/aliases.cpython-311.pyc,, +pydantic/__pycache__/annotated_handlers.cpython-311.pyc,, +pydantic/__pycache__/class_validators.cpython-311.pyc,, +pydantic/__pycache__/color.cpython-311.pyc,, +pydantic/__pycache__/config.cpython-311.pyc,, +pydantic/__pycache__/dataclasses.cpython-311.pyc,, +pydantic/__pycache__/datetime_parse.cpython-311.pyc,, +pydantic/__pycache__/decorator.cpython-311.pyc,, +pydantic/__pycache__/env_settings.cpython-311.pyc,, +pydantic/__pycache__/error_wrappers.cpython-311.pyc,, +pydantic/__pycache__/errors.cpython-311.pyc,, +pydantic/__pycache__/fields.cpython-311.pyc,, +pydantic/__pycache__/functional_serializers.cpython-311.pyc,, +pydantic/__pycache__/functional_validators.cpython-311.pyc,, +pydantic/__pycache__/generics.cpython-311.pyc,, +pydantic/__pycache__/json.cpython-311.pyc,, +pydantic/__pycache__/json_schema.cpython-311.pyc,, +pydantic/__pycache__/main.cpython-311.pyc,, +pydantic/__pycache__/mypy.cpython-311.pyc,, +pydantic/__pycache__/networks.cpython-311.pyc,, +pydantic/__pycache__/parse.cpython-311.pyc,, +pydantic/__pycache__/root_model.cpython-311.pyc,, +pydantic/__pycache__/schema.cpython-311.pyc,, +pydantic/__pycache__/tools.cpython-311.pyc,, +pydantic/__pycache__/type_adapter.cpython-311.pyc,, +pydantic/__pycache__/types.cpython-311.pyc,, +pydantic/__pycache__/typing.cpython-311.pyc,, +pydantic/__pycache__/utils.cpython-311.pyc,, +pydantic/__pycache__/validate_call_decorator.cpython-311.pyc,, +pydantic/__pycache__/validators.cpython-311.pyc,, +pydantic/__pycache__/version.cpython-311.pyc,, +pydantic/__pycache__/warnings.cpython-311.pyc,, +pydantic/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pydantic/_internal/__pycache__/__init__.cpython-311.pyc,, +pydantic/_internal/__pycache__/_config.cpython-311.pyc,, +pydantic/_internal/__pycache__/_core_metadata.cpython-311.pyc,, +pydantic/_internal/__pycache__/_core_utils.cpython-311.pyc,, +pydantic/_internal/__pycache__/_dataclasses.cpython-311.pyc,, +pydantic/_internal/__pycache__/_decorators.cpython-311.pyc,, +pydantic/_internal/__pycache__/_decorators_v1.cpython-311.pyc,, +pydantic/_internal/__pycache__/_discriminated_union.cpython-311.pyc,, +pydantic/_internal/__pycache__/_docs_extraction.cpython-311.pyc,, +pydantic/_internal/__pycache__/_fields.cpython-311.pyc,, +pydantic/_internal/__pycache__/_forward_ref.cpython-311.pyc,, +pydantic/_internal/__pycache__/_generate_schema.cpython-311.pyc,, +pydantic/_internal/__pycache__/_generics.cpython-311.pyc,, +pydantic/_internal/__pycache__/_git.cpython-311.pyc,, +pydantic/_internal/__pycache__/_import_utils.cpython-311.pyc,, +pydantic/_internal/__pycache__/_internal_dataclass.cpython-311.pyc,, +pydantic/_internal/__pycache__/_known_annotated_metadata.cpython-311.pyc,, +pydantic/_internal/__pycache__/_mock_val_ser.cpython-311.pyc,, +pydantic/_internal/__pycache__/_model_construction.cpython-311.pyc,, +pydantic/_internal/__pycache__/_namespace_utils.cpython-311.pyc,, +pydantic/_internal/__pycache__/_repr.cpython-311.pyc,, +pydantic/_internal/__pycache__/_schema_gather.cpython-311.pyc,, +pydantic/_internal/__pycache__/_schema_generation_shared.cpython-311.pyc,, +pydantic/_internal/__pycache__/_serializers.cpython-311.pyc,, +pydantic/_internal/__pycache__/_signature.cpython-311.pyc,, +pydantic/_internal/__pycache__/_typing_extra.cpython-311.pyc,, +pydantic/_internal/__pycache__/_utils.cpython-311.pyc,, +pydantic/_internal/__pycache__/_validate_call.cpython-311.pyc,, +pydantic/_internal/__pycache__/_validators.cpython-311.pyc,, +pydantic/_internal/_config.py,sha256=TWZwg3c0bZHiT3boR5-YYqkouHcwjRdenmyGHofV7E0,14674 +pydantic/_internal/_core_metadata.py,sha256=Y_g2t3i7uluK-wXCZvzJfRFMPUM23aBYLfae4FzBPy0,5162 +pydantic/_internal/_core_utils.py,sha256=1jru4VbJ0x63R6dtVcuOI-dKQTC_d_lSnJWEBQzGNEQ,6487 +pydantic/_internal/_dataclasses.py,sha256=Tk1mEafhad1kV7K5tPX5BwxWSXY7C-MKwf0OLFgIlEA,13158 +pydantic/_internal/_decorators.py,sha256=PnyAoKSg3BNbCVSZnwqw9naEg1UDtYvDT9LluigPiO8,33529 +pydantic/_internal/_decorators_v1.py,sha256=tfdfdpQKY4R2XCOwqHbZeoQMur6VNigRrfhudXBHx38,6185 +pydantic/_internal/_discriminated_union.py,sha256=aMl0SRSyQyHfW4-klnMTHNvwSRoqE3H3PRV_05vRsTg,25478 +pydantic/_internal/_docs_extraction.py,sha256=fyznSAHh5AzohnXZStV0HvH-nRbavNHPyg-knx-S_EE,4127 +pydantic/_internal/_fields.py,sha256=YSfEKq21FgjLJ6YqYXKh0eEEs5nxMPvQ6hp9pA8Nzfw,28093 +pydantic/_internal/_forward_ref.py,sha256=5n3Y7-3AKLn8_FS3Yc7KutLiPUhyXmAtkEZOaFnonwM,611 +pydantic/_internal/_generate_schema.py,sha256=TT49vzYzqH90rWrv5ptNoZgjzOsR0KPlSkqPVFrnrBw,132665 +pydantic/_internal/_generics.py,sha256=ELqjT6LMzQzWAK0EB5_9qke_iAazz0OQ4gunp_uKuYY,23822 +pydantic/_internal/_git.py,sha256=IwPh3DPfa2Xq3rBuB9Nx8luR2A1i69QdeTfWWXIuCVg,809 +pydantic/_internal/_import_utils.py,sha256=TRhxD5OuY6CUosioBdBcJUs0om7IIONiZdYAV7zQ8jM,402 +pydantic/_internal/_internal_dataclass.py,sha256=_bedc1XbuuygRGiLZqkUkwwFpQaoR1hKLlR501nyySY,144 +pydantic/_internal/_known_annotated_metadata.py,sha256=Jc7KTNFZoB3f-0ibP_NgJINOeVvYE3q3OTBQDjVMk3U,16765 +pydantic/_internal/_mock_val_ser.py,sha256=wmRRFSBvqfcLbI41PsFliB4u2AZ3mJpZeiERbD3xKTo,8885 +pydantic/_internal/_model_construction.py,sha256=wk-bNGDAJvduaGvn0U0_8zEl0GERu0shJvN8_ZfkYaw,37783 +pydantic/_internal/_namespace_utils.py,sha256=hl3-TRAr82U2jTyPP3t-QqsvKLirxtkLfNfrN-fp0x8,12878 +pydantic/_internal/_repr.py,sha256=jQfnJuyDxQpSRNhG29II9PX8e4Nv2qWZrEw2lqih3UE,5172 +pydantic/_internal/_schema_gather.py,sha256=VLEv51TYEeeND2czsyrmJq1MVnJqTOmnLan7VG44c8A,9114 +pydantic/_internal/_schema_generation_shared.py,sha256=F_rbQbrkoomgxsskdHpP0jUJ7TCfe0BADAEkq6CJ4nM,4842 +pydantic/_internal/_serializers.py,sha256=YIWvSmAR5fnbGSWCOQduWt1yB4ZQY42eAruc-enrb6c,1491 +pydantic/_internal/_signature.py,sha256=8EljPJe4pSnapuirG5DkBAgD1hggHxEAyzFPH-9H0zE,6779 +pydantic/_internal/_typing_extra.py,sha256=_GRYopNi4a9USi5UQ285ObrlsYmvqKEWTNbBoJFSK2c,30309 +pydantic/_internal/_utils.py,sha256=CHjH-0znUjX9R5sUSjPT8j8--7Pze8yjaiescTAVLiQ,15799 +pydantic/_internal/_validate_call.py,sha256=PfdVnSzhXOrENtaDoDw3PFWPVYD5W_gNYPe8p3Ug6Lg,5321 +pydantic/_internal/_validators.py,sha256=dv0a2Nkc4zcYqv31Gh_QId2lcf-W0kQpV0oSNzgEdfg,20588 +pydantic/_migration.py,sha256=VF73LRCUz3Irb5xVt13jb3NAcXVnEF6T1-J0OLfeZ5A,12160 +pydantic/alias_generators.py,sha256=KM1n3u4JfLSBl1UuYg3hoYHzXJD-yvgrnq8u1ccwh_A,2124 +pydantic/aliases.py,sha256=vhCHyoSWnX-EJ-wWb5qj4xyRssgGWnTQfzQp4GSZ9ug,4937 +pydantic/annotated_handlers.py,sha256=WfyFSqwoEIFXBh7T73PycKloI1DiX45GWi0-JOsCR4Y,4407 +pydantic/class_validators.py,sha256=i_V3j-PYdGLSLmj_IJZekTRjunO8SIVz8LMlquPyP7E,148 +pydantic/color.py,sha256=AzqGfVQHF92_ZctDcue0DM4yTp2P6tekkwRINTWrLIo,21481 +pydantic/config.py,sha256=uDZ2xN-J7CVQNenCaVKcYsJEzIOpKqlgfQvDd001wik,45181 +pydantic/dataclasses.py,sha256=2_jN-51ZWruyIsenjLI1-Vhd4qIGNF3eue9jGcdpqHI,18856 +pydantic/datetime_parse.py,sha256=QC-WgMxMr_wQ_mNXUS7AVf-2hLEhvvsPY1PQyhSGOdk,150 +pydantic/decorator.py,sha256=YX-jUApu5AKaVWKPoaV-n-4l7UbS69GEt9Ra3hszmKI,145 +pydantic/deprecated/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pydantic/deprecated/__pycache__/__init__.cpython-311.pyc,, +pydantic/deprecated/__pycache__/class_validators.cpython-311.pyc,, +pydantic/deprecated/__pycache__/config.cpython-311.pyc,, +pydantic/deprecated/__pycache__/copy_internals.cpython-311.pyc,, +pydantic/deprecated/__pycache__/decorator.cpython-311.pyc,, +pydantic/deprecated/__pycache__/json.cpython-311.pyc,, +pydantic/deprecated/__pycache__/parse.cpython-311.pyc,, +pydantic/deprecated/__pycache__/tools.cpython-311.pyc,, +pydantic/deprecated/class_validators.py,sha256=EAcaVQM5zp2wBml0ybN62CfQfyJvDLx5Qd9Pk4_tb4U,10273 +pydantic/deprecated/config.py,sha256=k_lsVk57paxLJOcBueH07cu1OgEgWdVBxm6lfaC3CCU,2663 +pydantic/deprecated/copy_internals.py,sha256=Ghd-vkMd5EYCCgyCGtPKO58np9cEKBQC6qkBeIEFI2g,7618 +pydantic/deprecated/decorator.py,sha256=TBm6bJ7wJsNih_8Wq5IzDcwP32m9_vfxs96desLuk00,10845 +pydantic/deprecated/json.py,sha256=HlWCG35RRrxyzuTS6LTQiZBwRhmDZWmeqQH8rLW6wA8,4657 +pydantic/deprecated/parse.py,sha256=Gzd6b_g8zJXcuE7QRq5adhx_EMJahXfcpXCF0RgrqqI,2511 +pydantic/deprecated/tools.py,sha256=Nrm9oFRZWp8-jlfvPgJILEsywp4YzZD52XIGPDLxHcI,3330 +pydantic/env_settings.py,sha256=6IHeeWEqlUPRUv3V-AXiF_W91fg2Jw_M3O0l34J_eyA,148 +pydantic/error_wrappers.py,sha256=RK6mqATc9yMD-KBD9IJS9HpKCprWHd8wo84Bnm-3fR8,150 +pydantic/errors.py,sha256=7ctBNCtt57kZFx71Ls2H86IufQARv4wPKf8DhdsVn5w,6002 +pydantic/experimental/__init__.py,sha256=QT7rKYdDsCiTJ9GEjmsQdWHScwpKrrNkGq6vqONP6RQ,104 +pydantic/experimental/__pycache__/__init__.cpython-311.pyc,, +pydantic/experimental/__pycache__/arguments_schema.cpython-311.pyc,, +pydantic/experimental/__pycache__/missing_sentinel.cpython-311.pyc,, +pydantic/experimental/__pycache__/pipeline.cpython-311.pyc,, +pydantic/experimental/arguments_schema.py,sha256=EFnjX_ulp-tPyUjQX5pmQtug1OFL_Acc8bcMbLd-fVY,1866 +pydantic/experimental/missing_sentinel.py,sha256=hQejgtF00wUuQMni9429evg-eXyIwpKvjsD8ofqfj-w,127 +pydantic/experimental/pipeline.py,sha256=Kv_dvcexKumazfRL0y69AayeA6H37SrmsZ3SUl_n0qY,23582 +pydantic/fields.py,sha256=WuDGOvB22KWuuW3fXnS4Wvg4qX_tdp8X7BrAlza4sw8,79194 +pydantic/functional_serializers.py,sha256=rEzH391zqy3o_bWk2QEuvySmcQNZmwXmJQLC3ZGF7QA,17151 +pydantic/functional_validators.py,sha256=c_-7weWpGNcOYfRfVUFu11jrxMVMdfY_c-4istwk95Y,31839 +pydantic/generics.py,sha256=0ZqZ9O9annIj_3mGBRqps4htey3b5lV1-d2tUxPMMnA,144 +pydantic/json.py,sha256=ZH8RkI7h4Bz-zp8OdTAxbJUoVvcoU-jhMdRZ0B-k0xc,140 +pydantic/json_schema.py,sha256=-h8c7vsNGAJCIxR-n52-69Q54w38EM-j0AGC_4VGt30,123653 +pydantic/main.py,sha256=77QUwTtQQdUafor3ir5w2CC1s0vigFtGB0fSlTvF27I,83899 +pydantic/mypy.py,sha256=p6KU1GwPHazF7E5vJq1uLd4tHd6DE6bre4-m5Ln23ms,58986 +pydantic/networks.py,sha256=Smf_RyImQ-F5FZLCgFwHPfROYxW_e-Hz68R_8LW0sZ0,42099 +pydantic/parse.py,sha256=wkd82dgtvWtD895U_I6E1htqMlGhBSYEV39cuBSeo3A,141 +pydantic/plugin/__init__.py,sha256=a7Tw366U6K3kltCCNZY76nc9ss-7uGGQ40TXad9OypQ,7333 +pydantic/plugin/__pycache__/__init__.cpython-311.pyc,, +pydantic/plugin/__pycache__/_loader.cpython-311.pyc,, +pydantic/plugin/__pycache__/_schema_validator.cpython-311.pyc,, +pydantic/plugin/_loader.py,sha256=9QLXneLEmvyhXka_9j4Lrkbme4qPv6qYphlsjF2MGsA,2210 +pydantic/plugin/_schema_validator.py,sha256=QbmqsG33MBmftNQ2nNiuN22LhbrexUA7ipDVv3J02BU,5267 +pydantic/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pydantic/root_model.py,sha256=BvmLtW4i11dJk-dLOM3rl-jnJdQGeeQTFBcmEOq6pMg,6311 +pydantic/schema.py,sha256=Vqqjvq_LnapVknebUd3Bp_J1p2gXZZnZRgL48bVEG7o,142 +pydantic/tools.py,sha256=iHQpd8SJ5DCTtPV5atAV06T89bjSaMFeZZ2LX9lasZY,141 +pydantic/type_adapter.py,sha256=VT--yg4a27shSBzWHBPKz493f3iQ9obdkEkhjZKlE7Q,35653 +pydantic/types.py,sha256=nqdS-J2ZXqTh2qeyJOzBTBtHWyZ5YRFe8gaMV59d9HE,105431 +pydantic/typing.py,sha256=P7feA35MwTcLsR1uL7db0S-oydBxobmXa55YDoBgajQ,138 +pydantic/utils.py,sha256=15nR2QpqTBFlQV4TNtTItMyTJx_fbyV-gPmIEY1Gooc,141 +pydantic/v1/__init__.py,sha256=FLQ8ISp6MVZRfjnS7fQ4m1FxQxFCF2QVikE4DK-4PhE,3164 +pydantic/v1/__pycache__/__init__.cpython-311.pyc,, +pydantic/v1/__pycache__/_hypothesis_plugin.cpython-311.pyc,, +pydantic/v1/__pycache__/annotated_types.cpython-311.pyc,, +pydantic/v1/__pycache__/class_validators.cpython-311.pyc,, +pydantic/v1/__pycache__/color.cpython-311.pyc,, +pydantic/v1/__pycache__/config.cpython-311.pyc,, +pydantic/v1/__pycache__/dataclasses.cpython-311.pyc,, +pydantic/v1/__pycache__/datetime_parse.cpython-311.pyc,, +pydantic/v1/__pycache__/decorator.cpython-311.pyc,, +pydantic/v1/__pycache__/env_settings.cpython-311.pyc,, +pydantic/v1/__pycache__/error_wrappers.cpython-311.pyc,, +pydantic/v1/__pycache__/errors.cpython-311.pyc,, +pydantic/v1/__pycache__/fields.cpython-311.pyc,, +pydantic/v1/__pycache__/generics.cpython-311.pyc,, +pydantic/v1/__pycache__/json.cpython-311.pyc,, +pydantic/v1/__pycache__/main.cpython-311.pyc,, +pydantic/v1/__pycache__/mypy.cpython-311.pyc,, +pydantic/v1/__pycache__/networks.cpython-311.pyc,, +pydantic/v1/__pycache__/parse.cpython-311.pyc,, +pydantic/v1/__pycache__/schema.cpython-311.pyc,, +pydantic/v1/__pycache__/tools.cpython-311.pyc,, +pydantic/v1/__pycache__/types.cpython-311.pyc,, +pydantic/v1/__pycache__/typing.cpython-311.pyc,, +pydantic/v1/__pycache__/utils.cpython-311.pyc,, +pydantic/v1/__pycache__/validators.cpython-311.pyc,, +pydantic/v1/__pycache__/version.cpython-311.pyc,, +pydantic/v1/_hypothesis_plugin.py,sha256=5ES5xWuw1FQAsymLezy8QgnVz0ZpVfU3jkmT74H27VQ,14847 +pydantic/v1/annotated_types.py,sha256=uk2NAAxqiNELKjiHhyhxKaIOh8F1lYW_LzrW3X7oZBc,3157 +pydantic/v1/class_validators.py,sha256=ULOaIUgYUDBsHL7EEVEarcM-UubKUggoN8hSbDonsFE,14672 +pydantic/v1/color.py,sha256=iZABLYp6OVoo2AFkP9Ipri_wSc6-Kklu8YuhSartd5g,16844 +pydantic/v1/config.py,sha256=a6P0Wer9x4cbwKW7Xv8poSUqM4WP-RLWwX6YMpYq9AA,6532 +pydantic/v1/dataclasses.py,sha256=784cqvInbwIPWr9usfpX3ch7z4t3J2tTK6N067_wk1o,18172 +pydantic/v1/datetime_parse.py,sha256=4Qy1kQpq3rNVZJeIHeSPDpuS2Bvhp1KPtzJG1xu-H00,7724 +pydantic/v1/decorator.py,sha256=zaaxxxoWPCm818D1bs0yhapRjXm32V8G0ZHWCdM1uXA,10339 +pydantic/v1/env_settings.py,sha256=A9VXwtRl02AY-jH0C0ouy5VNw3fi6F_pkzuHDjgAAOM,14105 +pydantic/v1/error_wrappers.py,sha256=6625Mfw9qkC2NwitB_JFAWe8B-Xv6zBU7rL9k28tfyo,5196 +pydantic/v1/errors.py,sha256=mIwPED5vGM5Q5v4C4Z1JPldTRH-omvEylH6ksMhOmPw,17726 +pydantic/v1/fields.py,sha256=VqWJCriUNiEyptXroDVJ501JpVA0en2VANcksqXL2b8,50649 +pydantic/v1/generics.py,sha256=VzC9YUV-EbPpQ3aAfk1cNFej79_IzznkQ7WrmTTZS9E,17871 +pydantic/v1/json.py,sha256=WQ5Hy_hIpfdR3YS8k6N2E6KMJzsdbBi_ldWOPJaV81M,3390 +pydantic/v1/main.py,sha256=zuNpdN5Q0V0wG2UUTKt0HUy3XJ4OAvPSZDdiXY-FIzs,44824 +pydantic/v1/mypy.py,sha256=Cl8XRfCmIcVE3j5AEU52C8iDh8lcX__D3hz2jIWxMAs,38860 +pydantic/v1/networks.py,sha256=HYNtKAfOmOnKJpsDg1g6SIkj9WPhU_-i8l5e2JKBpG4,22124 +pydantic/v1/parse.py,sha256=BJtdqiZRtav9VRFCmOxoY-KImQmjPy-A_NoojiFUZxY,1821 +pydantic/v1/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pydantic/v1/schema.py,sha256=aqBuA--cq8gAVkim5BJPFASHzOZ8dFtmFX_fNGr6ip4,47801 +pydantic/v1/tools.py,sha256=1lDdXHk0jL5uP3u5RCYAvUAlGClgAO-45lkq9j7fyBA,2881 +pydantic/v1/types.py,sha256=Bzl-RcnitPBHnqwwj9iv7JjHuN1GpnWH24dKkF3l9e8,35455 +pydantic/v1/typing.py,sha256=7GdBg1YTHULU81thB_9cjRNDfZfn4khoX7nGtw_keCE,19677 +pydantic/v1/utils.py,sha256=M5FRyfNUb1A2mk9laGgCVdfHHb3AtQgrjO5qfyBf4xA,25989 +pydantic/v1/validators.py,sha256=lyUkn1MWhHxlCX5ZfEgFj_CAHojoiPcaQeMdEM9XviU,22187 +pydantic/v1/version.py,sha256=HXnXW-1bMW5qKhlr5RgOEPohrZDCDSuyy8-gi8GCgZo,1039 +pydantic/validate_call_decorator.py,sha256=8jqLlgXTjWEj4dXDg0wI3EGQKkb0JnCsL_JSUjbU5Sg,4389 +pydantic/validators.py,sha256=pwbIJXVb1CV2mAE4w_EGfNj7DwzsKaWw_tTL6cviTus,146 +pydantic/version.py,sha256=9B7oFVZbaIiFWijpcW6oorp9WzX-C54QiLwhqMBTSI4,3985 +pydantic/warnings.py,sha256=Wu1VGzrvFZw4T6yCIKHjH7LSY66HjbtyCFbn5uWoMJ4,4802 diff --git a/venv/lib/python3.11/site-packages/pydantic-2.12.4.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/pydantic-2.12.4.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/pydantic-2.12.4.dist-info/WHEEL b/venv/lib/python3.11/site-packages/pydantic-2.12.4.dist-info/WHEEL new file mode 100644 index 0000000..12228d4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic-2.12.4.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: hatchling 1.27.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/pydantic-2.12.4.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/pydantic-2.12.4.dist-info/licenses/LICENSE new file mode 100644 index 0000000..488c626 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic-2.12.4.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017 to present Pydantic Services Inc. and individual contributors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/pydantic_core-2.41.5.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/pydantic_core-2.41.5.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_core-2.41.5.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/pydantic_core-2.41.5.dist-info/METADATA b/venv/lib/python3.11/site-packages/pydantic_core-2.41.5.dist-info/METADATA new file mode 100644 index 0000000..468d2a5 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_core-2.41.5.dist-info/METADATA @@ -0,0 +1,180 @@ +Metadata-Version: 2.4 +Name: pydantic_core +Version: 2.41.5 +Classifier: Development Status :: 3 - Alpha +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Programming Language :: Python :: Implementation :: GraalPy +Classifier: Programming Language :: Rust +Classifier: Framework :: Pydantic +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: Information Technology +Classifier: Operating System :: POSIX :: Linux +Classifier: Operating System :: Microsoft :: Windows +Classifier: Operating System :: MacOS +Classifier: Typing :: Typed +Requires-Dist: typing-extensions>=4.14.1 +License-File: LICENSE +Summary: Core functionality for Pydantic validation and serialization +Home-Page: https://github.com/pydantic/pydantic-core +Author-email: Samuel Colvin , Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com>, David Montague , David Hewitt , Sydney Runkle , Victorien Plot +License-Expression: MIT +Requires-Python: >=3.9 +Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM +Project-URL: Homepage, https://github.com/pydantic/pydantic-core +Project-URL: Funding, https://github.com/sponsors/samuelcolvin +Project-URL: Source, https://github.com/pydantic/pydantic-core + +# pydantic-core + +[![CI](https://github.com/pydantic/pydantic-core/workflows/ci/badge.svg?event=push)](https://github.com/pydantic/pydantic-core/actions?query=event%3Apush+branch%3Amain+workflow%3Aci) +[![Coverage](https://codecov.io/gh/pydantic/pydantic-core/branch/main/graph/badge.svg)](https://codecov.io/gh/pydantic/pydantic-core) +[![pypi](https://img.shields.io/pypi/v/pydantic-core.svg)](https://pypi.python.org/pypi/pydantic-core) +[![versions](https://img.shields.io/pypi/pyversions/pydantic-core.svg)](https://github.com/pydantic/pydantic-core) +[![license](https://img.shields.io/github/license/pydantic/pydantic-core.svg)](https://github.com/pydantic/pydantic-core/blob/main/LICENSE) + +This package provides the core functionality for [pydantic](https://docs.pydantic.dev) validation and serialization. + +Pydantic-core is currently around 17x faster than pydantic V1. +See [`tests/benchmarks/`](./tests/benchmarks/) for details. + +## Example of direct usage + +_NOTE: You should not need to use pydantic-core directly; instead, use pydantic, which in turn uses pydantic-core._ + +```py +from pydantic_core import SchemaValidator, ValidationError + + +v = SchemaValidator( + { + 'type': 'typed-dict', + 'fields': { + 'name': { + 'type': 'typed-dict-field', + 'schema': { + 'type': 'str', + }, + }, + 'age': { + 'type': 'typed-dict-field', + 'schema': { + 'type': 'int', + 'ge': 18, + }, + }, + 'is_developer': { + 'type': 'typed-dict-field', + 'schema': { + 'type': 'default', + 'schema': {'type': 'bool'}, + 'default': True, + }, + }, + }, + } +) + +r1 = v.validate_python({'name': 'Samuel', 'age': 35}) +assert r1 == {'name': 'Samuel', 'age': 35, 'is_developer': True} + +# pydantic-core can also validate JSON directly +r2 = v.validate_json('{"name": "Samuel", "age": 35}') +assert r1 == r2 + +try: + v.validate_python({'name': 'Samuel', 'age': 11}) +except ValidationError as e: + print(e) + """ + 1 validation error for model + age + Input should be greater than or equal to 18 + [type=greater_than_equal, context={ge: 18}, input_value=11, input_type=int] + """ +``` + +## Getting Started + +### Prerequisites + +You'll need: +1. **[Rust](https://rustup.rs/)** - Rust stable (or nightly for coverage) +2. **[uv](https://docs.astral.sh/uv/getting-started/installation/)** - Fast Python package manager (will install Python 3.9+ automatically) +3. **[git](https://git-scm.com/)** - For version control +4. **[make](https://www.gnu.org/software/make/)** - For running development commands (or use `nmake` on Windows) + +### Quick Start + +```bash +# Clone the repository (or from your fork) +git clone git@github.com:pydantic/pydantic-core.git +cd pydantic-core + +# Install all dependencies using uv, setup pre-commit hooks, and build the development version +make install +``` + +Verify your installation by running: + +```bash +make +``` + +This runs a full development cycle: formatting, building, linting, and testing + +### Development Commands + +Run `make help` to see all available commands, or use these common ones: + +```bash +make build-dev # to build the package during development +make build-prod # to perform an optimised build for benchmarking +make test # to run the tests +make testcov # to run the tests and generate a coverage report +make lint # to run the linter +make format # to format python and rust code +make all # to run to run build-dev + format + lint + test +``` + +### Useful Resources + +* [`python/pydantic_core/_pydantic_core.pyi`](./python/pydantic_core/_pydantic_core.pyi) - Python API types +* [`python/pydantic_core/core_schema.py`](./python/pydantic_core/core_schema.py) - Core schema definitions +* [`tests/`](./tests) - Comprehensive usage examples + +## Profiling + +It's possible to profile the code using the [`flamegraph` utility from `flamegraph-rs`](https://github.com/flamegraph-rs/flamegraph). (Tested on Linux.) You can install this with `cargo install flamegraph`. + +Run `make build-profiling` to install a release build with debugging symbols included (needed for profiling). + +Once that is built, you can profile pytest benchmarks with (e.g.): + +```bash +flamegraph -- pytest tests/benchmarks/test_micro_benchmarks.py -k test_list_of_ints_core_py --benchmark-enable +``` +The `flamegraph` command will produce an interactive SVG at `flamegraph.svg`. + +## Releasing + +1. Bump package version locally. Do not just edit `Cargo.toml` on Github, you need both `Cargo.toml` and `Cargo.lock` to be updated. +2. Make a PR for the version bump and merge it. +3. Go to https://github.com/pydantic/pydantic-core/releases and click "Draft a new release" +4. In the "Choose a tag" dropdown enter the new tag `v` and select "Create new tag on publish" when the option appears. +5. Enter the release title in the form "v " +6. Click Generate release notes button +7. Click Publish release +8. Go to https://github.com/pydantic/pydantic-core/actions and ensure that all build for release are done successfully. +9. Go to https://pypi.org/project/pydantic-core/ and ensure that the latest release is published. +10. Done 🎉 + diff --git a/venv/lib/python3.11/site-packages/pydantic_core-2.41.5.dist-info/RECORD b/venv/lib/python3.11/site-packages/pydantic_core-2.41.5.dist-info/RECORD new file mode 100644 index 0000000..30f16dc --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_core-2.41.5.dist-info/RECORD @@ -0,0 +1,12 @@ +pydantic_core-2.41.5.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +pydantic_core-2.41.5.dist-info/METADATA,sha256=Cfg7qjIC7D2piihKVq_fG6aZduSvcXJIiIflsrIFkak,7277 +pydantic_core-2.41.5.dist-info/RECORD,, +pydantic_core-2.41.5.dist-info/WHEEL,sha256=V-nRmWteMHF99cdHiqNRprMeNvFExwDHdG-6uj8yckI,129 +pydantic_core-2.41.5.dist-info/licenses/LICENSE,sha256=Kv3TDVS01itvSIprzBVG6E7FBh8T9CCcA9ASNIeDeVo,1080 +pydantic_core/__init__.py,sha256=nK1ikrdSVK9gapcKrpv_blrp8LCAic1jrK-jkbYHlNI,5115 +pydantic_core/__pycache__/__init__.cpython-311.pyc,, +pydantic_core/__pycache__/core_schema.cpython-311.pyc,, +pydantic_core/_pydantic_core.cpython-311-x86_64-linux-gnu.so,sha256=GMskf9byd947VyEV_JsO3wrKxahqd11m7RgaF_h6QdQ,4858472 +pydantic_core/_pydantic_core.pyi,sha256=PqHb1BgvCM-TQfJLPFz323egWzU1_-niNSUSejYXoR8,44927 +pydantic_core/core_schema.py,sha256=u9yFC3LWhRM6DiUP7SY7M2kdzfOBNJLzwOMQAePUYAU,154730 +pydantic_core/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/venv/lib/python3.11/site-packages/pydantic_core-2.41.5.dist-info/WHEEL b/venv/lib/python3.11/site-packages/pydantic_core-2.41.5.dist-info/WHEEL new file mode 100644 index 0000000..c082c26 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_core-2.41.5.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: maturin (1.9.6) +Root-Is-Purelib: false +Tag: cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64 diff --git a/venv/lib/python3.11/site-packages/pydantic_core-2.41.5.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/pydantic_core-2.41.5.dist-info/licenses/LICENSE new file mode 100644 index 0000000..0716871 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_core-2.41.5.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2022 Samuel Colvin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/pydantic_core/__init__.py b/venv/lib/python3.11/site-packages/pydantic_core/__init__.py new file mode 100644 index 0000000..d5facd1 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_core/__init__.py @@ -0,0 +1,171 @@ +from __future__ import annotations + +import sys as _sys +from typing import Any as _Any + +from typing_extensions import Sentinel + +from ._pydantic_core import ( + ArgsKwargs, + MultiHostUrl, + PydanticCustomError, + PydanticKnownError, + PydanticOmit, + PydanticSerializationError, + PydanticSerializationUnexpectedValue, + PydanticUndefined, + PydanticUndefinedType, + PydanticUseDefault, + SchemaError, + SchemaSerializer, + SchemaValidator, + Some, + TzInfo, + Url, + ValidationError, + __version__, + from_json, + to_json, + to_jsonable_python, +) +from .core_schema import CoreConfig, CoreSchema, CoreSchemaType, ErrorType + +if _sys.version_info < (3, 11): + from typing_extensions import NotRequired as _NotRequired +else: + from typing import NotRequired as _NotRequired + +if _sys.version_info < (3, 12): + from typing_extensions import TypedDict as _TypedDict +else: + from typing import TypedDict as _TypedDict + +__all__ = [ + '__version__', + 'UNSET', + 'CoreConfig', + 'CoreSchema', + 'CoreSchemaType', + 'SchemaValidator', + 'SchemaSerializer', + 'Some', + 'Url', + 'MultiHostUrl', + 'ArgsKwargs', + 'PydanticUndefined', + 'PydanticUndefinedType', + 'SchemaError', + 'ErrorDetails', + 'InitErrorDetails', + 'ValidationError', + 'PydanticCustomError', + 'PydanticKnownError', + 'PydanticOmit', + 'PydanticUseDefault', + 'PydanticSerializationError', + 'PydanticSerializationUnexpectedValue', + 'TzInfo', + 'to_json', + 'from_json', + 'to_jsonable_python', +] + + +class ErrorDetails(_TypedDict): + type: str + """ + The type of error that occurred, this is an identifier designed for + programmatic use that will change rarely or never. + + `type` is unique for each error message, and can hence be used as an identifier to build custom error messages. + """ + loc: tuple[int | str, ...] + """Tuple of strings and ints identifying where in the schema the error occurred.""" + msg: str + """A human readable error message.""" + input: _Any + """The input data at this `loc` that caused the error.""" + ctx: _NotRequired[dict[str, _Any]] + """ + Values which are required to render the error message, and could hence be useful in rendering custom error messages. + Also useful for passing custom error data forward. + """ + url: _NotRequired[str] + """ + The documentation URL giving information about the error. No URL is available if + a [`PydanticCustomError`][pydantic_core.PydanticCustomError] is used. + """ + + +class InitErrorDetails(_TypedDict): + type: str | PydanticCustomError + """The type of error that occurred, this should be a "slug" identifier that changes rarely or never.""" + loc: _NotRequired[tuple[int | str, ...]] + """Tuple of strings and ints identifying where in the schema the error occurred.""" + input: _Any + """The input data at this `loc` that caused the error.""" + ctx: _NotRequired[dict[str, _Any]] + """ + Values which are required to render the error message, and could hence be useful in rendering custom error messages. + Also useful for passing custom error data forward. + """ + + +class ErrorTypeInfo(_TypedDict): + """ + Gives information about errors. + """ + + type: ErrorType + """The type of error that occurred, this should be a "slug" identifier that changes rarely or never.""" + message_template_python: str + """String template to render a human readable error message from using context, when the input is Python.""" + example_message_python: str + """Example of a human readable error message, when the input is Python.""" + message_template_json: _NotRequired[str] + """String template to render a human readable error message from using context, when the input is JSON data.""" + example_message_json: _NotRequired[str] + """Example of a human readable error message, when the input is JSON data.""" + example_context: dict[str, _Any] | None + """Example of context values.""" + + +class MultiHostHost(_TypedDict): + """ + A host part of a multi-host URL. + """ + + username: str | None + """The username part of this host, or `None`.""" + password: str | None + """The password part of this host, or `None`.""" + host: str | None + """The host part of this host, or `None`.""" + port: int | None + """The port part of this host, or `None`.""" + + +MISSING = Sentinel('MISSING') +"""A singleton indicating a field value was not provided during validation. + +This singleton can be used a default value, as an alternative to `None` when it has +an explicit meaning. During serialization, any field with `MISSING` as a value is excluded +from the output. + +Example: + ```python + from pydantic import BaseModel + + from pydantic_core import MISSING + + + class Configuration(BaseModel): + timeout: int | None | MISSING = MISSING + + + # configuration defaults, stored somewhere else: + defaults = {'timeout': 200} + + conf = Configuration.model_validate({...}) + timeout = conf.timeout if timeout.timeout is not MISSING else defaults['timeout'] +""" diff --git a/venv/lib/python3.11/site-packages/pydantic_core/_pydantic_core.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/pydantic_core/_pydantic_core.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..bc4b2f7 Binary files /dev/null and b/venv/lib/python3.11/site-packages/pydantic_core/_pydantic_core.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/pydantic_core/_pydantic_core.pyi b/venv/lib/python3.11/site-packages/pydantic_core/_pydantic_core.pyi new file mode 100644 index 0000000..8ae631a --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_core/_pydantic_core.pyi @@ -0,0 +1,1046 @@ +import datetime +from collections.abc import Mapping +from typing import Any, Callable, Generic, Literal, TypeVar, final + +from _typeshed import SupportsAllComparisons +from typing_extensions import LiteralString, Self, TypeAlias + +from pydantic_core import ErrorDetails, ErrorTypeInfo, InitErrorDetails, MultiHostHost +from pydantic_core.core_schema import CoreConfig, CoreSchema, ErrorType, ExtraBehavior + +__all__ = [ + '__version__', + 'build_profile', + 'build_info', + '_recursion_limit', + 'ArgsKwargs', + 'SchemaValidator', + 'SchemaSerializer', + 'Url', + 'MultiHostUrl', + 'SchemaError', + 'ValidationError', + 'PydanticCustomError', + 'PydanticKnownError', + 'PydanticOmit', + 'PydanticUseDefault', + 'PydanticSerializationError', + 'PydanticSerializationUnexpectedValue', + 'PydanticUndefined', + 'PydanticUndefinedType', + 'Some', + 'to_json', + 'from_json', + 'to_jsonable_python', + 'list_all_errors', + 'TzInfo', +] +__version__: str +build_profile: str +build_info: str +_recursion_limit: int + +_T = TypeVar('_T', default=Any, covariant=True) + +_StringInput: TypeAlias = 'dict[str, _StringInput]' + +@final +class Some(Generic[_T]): + """ + Similar to Rust's [`Option::Some`](https://doc.rust-lang.org/std/option/enum.Option.html) type, this + identifies a value as being present, and provides a way to access it. + + Generally used in a union with `None` to different between "some value which could be None" and no value. + """ + + __match_args__ = ('value',) + + @property + def value(self) -> _T: + """ + Returns the value wrapped by `Some`. + """ + @classmethod + def __class_getitem__(cls, item: Any, /) -> type[Self]: ... + +@final +class SchemaValidator: + """ + `SchemaValidator` is the Python wrapper for `pydantic-core`'s Rust validation logic, internally it owns one + `CombinedValidator` which may in turn own more `CombinedValidator`s which make up the full schema validator. + """ + + # note: pyo3 currently supports __new__, but not __init__, though we include __init__ stubs + # and docstrings here (and in the following classes) for documentation purposes + + def __init__(self, schema: CoreSchema, config: CoreConfig | None = None) -> None: + """Initializes the `SchemaValidator`. + + Arguments: + schema: The `CoreSchema` to use for validation. + config: Optionally a [`CoreConfig`][pydantic_core.core_schema.CoreConfig] to configure validation. + """ + + def __new__(cls, schema: CoreSchema, config: CoreConfig | None = None) -> Self: ... + @property + def title(self) -> str: + """ + The title of the schema, as used in the heading of [`ValidationError.__str__()`][pydantic_core.ValidationError]. + """ + def validate_python( + self, + input: Any, + *, + strict: bool | None = None, + extra: ExtraBehavior | None = None, + from_attributes: bool | None = None, + context: Any | None = None, + self_instance: Any | None = None, + allow_partial: bool | Literal['off', 'on', 'trailing-strings'] = False, + by_alias: bool | None = None, + by_name: bool | None = None, + ) -> Any: + """ + Validate a Python object against the schema and return the validated object. + + Arguments: + input: The Python object to validate. + strict: Whether to validate the object in strict mode. + If `None`, the value of [`CoreConfig.strict`][pydantic_core.core_schema.CoreConfig] is used. + extra: Whether to ignore, allow, or forbid extra data during model validation. + If `None`, the value of [`CoreConfig.extra_fields_behavior`][pydantic_core.core_schema.CoreConfig] is used. + from_attributes: Whether to validate objects as inputs to models by extracting attributes. + If `None`, the value of [`CoreConfig.from_attributes`][pydantic_core.core_schema.CoreConfig] is used. + context: The context to use for validation, this is passed to functional validators as + [`info.context`][pydantic_core.core_schema.ValidationInfo.context]. + self_instance: An instance of a model set attributes on from validation, this is used when running + validation from the `__init__` method of a model. + allow_partial: Whether to allow partial validation; if `True` errors in the last element of sequences + and mappings are ignored. + `'trailing-strings'` means any final unfinished JSON string is included in the result. + by_alias: Whether to use the field's alias when validating against the provided input data. + by_name: Whether to use the field's name when validating against the provided input data. + + Raises: + ValidationError: If validation fails. + Exception: Other error types maybe raised if internal errors occur. + + Returns: + The validated object. + """ + def isinstance_python( + self, + input: Any, + *, + strict: bool | None = None, + extra: ExtraBehavior | None = None, + from_attributes: bool | None = None, + context: Any | None = None, + self_instance: Any | None = None, + by_alias: bool | None = None, + by_name: bool | None = None, + ) -> bool: + """ + Similar to [`validate_python()`][pydantic_core.SchemaValidator.validate_python] but returns a boolean. + + Arguments match `validate_python()`. This method will not raise `ValidationError`s but will raise internal + errors. + + Returns: + `True` if validation succeeds, `False` if validation fails. + """ + def validate_json( + self, + input: str | bytes | bytearray, + *, + strict: bool | None = None, + extra: ExtraBehavior | None = None, + context: Any | None = None, + self_instance: Any | None = None, + allow_partial: bool | Literal['off', 'on', 'trailing-strings'] = False, + by_alias: bool | None = None, + by_name: bool | None = None, + ) -> Any: + """ + Validate JSON data directly against the schema and return the validated Python object. + + This method should be significantly faster than `validate_python(json.loads(json_data))` as it avoids the + need to create intermediate Python objects + + It also handles constructing the correct Python type even in strict mode, where + `validate_python(json.loads(json_data))` would fail validation. + + Arguments: + input: The JSON data to validate. + strict: Whether to validate the object in strict mode. + If `None`, the value of [`CoreConfig.strict`][pydantic_core.core_schema.CoreConfig] is used. + extra: Whether to ignore, allow, or forbid extra data during model validation. + If `None`, the value of [`CoreConfig.extra_fields_behavior`][pydantic_core.core_schema.CoreConfig] is used. + context: The context to use for validation, this is passed to functional validators as + [`info.context`][pydantic_core.core_schema.ValidationInfo.context]. + self_instance: An instance of a model set attributes on from validation. + allow_partial: Whether to allow partial validation; if `True` incomplete JSON will be parsed successfully + and errors in the last element of sequences and mappings are ignored. + `'trailing-strings'` means any final unfinished JSON string is included in the result. + by_alias: Whether to use the field's alias when validating against the provided input data. + by_name: Whether to use the field's name when validating against the provided input data. + + Raises: + ValidationError: If validation fails or if the JSON data is invalid. + Exception: Other error types maybe raised if internal errors occur. + + Returns: + The validated Python object. + """ + def validate_strings( + self, + input: _StringInput, + *, + strict: bool | None = None, + extra: ExtraBehavior | None = None, + context: Any | None = None, + allow_partial: bool | Literal['off', 'on', 'trailing-strings'] = False, + by_alias: bool | None = None, + by_name: bool | None = None, + ) -> Any: + """ + Validate a string against the schema and return the validated Python object. + + This is similar to `validate_json` but applies to scenarios where the input will be a string but not + JSON data, e.g. URL fragments, query parameters, etc. + + Arguments: + input: The input as a string, or bytes/bytearray if `strict=False`. + strict: Whether to validate the object in strict mode. + If `None`, the value of [`CoreConfig.strict`][pydantic_core.core_schema.CoreConfig] is used. + extra: Whether to ignore, allow, or forbid extra data during model validation. + If `None`, the value of [`CoreConfig.extra_fields_behavior`][pydantic_core.core_schema.CoreConfig] is used. + context: The context to use for validation, this is passed to functional validators as + [`info.context`][pydantic_core.core_schema.ValidationInfo.context]. + allow_partial: Whether to allow partial validation; if `True` errors in the last element of sequences + and mappings are ignored. + `'trailing-strings'` means any final unfinished JSON string is included in the result. + by_alias: Whether to use the field's alias when validating against the provided input data. + by_name: Whether to use the field's name when validating against the provided input data. + + Raises: + ValidationError: If validation fails or if the JSON data is invalid. + Exception: Other error types maybe raised if internal errors occur. + + Returns: + The validated Python object. + """ + def validate_assignment( + self, + obj: Any, + field_name: str, + field_value: Any, + *, + strict: bool | None = None, + extra: ExtraBehavior | None = None, + from_attributes: bool | None = None, + context: Any | None = None, + by_alias: bool | None = None, + by_name: bool | None = None, + ) -> dict[str, Any] | tuple[dict[str, Any], dict[str, Any] | None, set[str]]: + """ + Validate an assignment to a field on a model. + + Arguments: + obj: The model instance being assigned to. + field_name: The name of the field to validate assignment for. + field_value: The value to assign to the field. + strict: Whether to validate the object in strict mode. + If `None`, the value of [`CoreConfig.strict`][pydantic_core.core_schema.CoreConfig] is used. + extra: Whether to ignore, allow, or forbid extra data during model validation. + If `None`, the value of [`CoreConfig.extra_fields_behavior`][pydantic_core.core_schema.CoreConfig] is used. + from_attributes: Whether to validate objects as inputs to models by extracting attributes. + If `None`, the value of [`CoreConfig.from_attributes`][pydantic_core.core_schema.CoreConfig] is used. + context: The context to use for validation, this is passed to functional validators as + [`info.context`][pydantic_core.core_schema.ValidationInfo.context]. + by_alias: Whether to use the field's alias when validating against the provided input data. + by_name: Whether to use the field's name when validating against the provided input data. + + Raises: + ValidationError: If validation fails. + Exception: Other error types maybe raised if internal errors occur. + + Returns: + Either the model dict or a tuple of `(model_data, model_extra, fields_set)` + """ + def get_default_value(self, *, strict: bool | None = None, context: Any = None) -> Some | None: + """ + Get the default value for the schema, including running default value validation. + + Arguments: + strict: Whether to validate the default value in strict mode. + If `None`, the value of [`CoreConfig.strict`][pydantic_core.core_schema.CoreConfig] is used. + context: The context to use for validation, this is passed to functional validators as + [`info.context`][pydantic_core.core_schema.ValidationInfo.context]. + + Raises: + ValidationError: If validation fails. + Exception: Other error types maybe raised if internal errors occur. + + Returns: + `None` if the schema has no default value, otherwise a [`Some`][pydantic_core.Some] containing the default. + """ + +# In reality, `bool` should be replaced by `Literal[True]` but mypy fails to correctly apply bidirectional type inference +# (e.g. when using `{'a': {'b': True}}`). +_IncEx: TypeAlias = set[int] | set[str] | Mapping[int, _IncEx | bool] | Mapping[str, _IncEx | bool] + +@final +class SchemaSerializer: + """ + `SchemaSerializer` is the Python wrapper for `pydantic-core`'s Rust serialization logic, internally it owns one + `CombinedSerializer` which may in turn own more `CombinedSerializer`s which make up the full schema serializer. + """ + + def __init__(self, schema: CoreSchema, config: CoreConfig | None = None) -> None: + """Initializes the `SchemaSerializer`. + + Arguments: + schema: The `CoreSchema` to use for serialization. + config: Optionally a [`CoreConfig`][pydantic_core.core_schema.CoreConfig] to to configure serialization. + """ + + def __new__(cls, schema: CoreSchema, config: CoreConfig | None = None) -> Self: ... + def to_python( + self, + value: Any, + *, + mode: str | None = None, + include: _IncEx | None = None, + exclude: _IncEx | None = None, + by_alias: bool | None = None, + exclude_unset: bool = False, + exclude_defaults: bool = False, + exclude_none: bool = False, + exclude_computed_fields: bool = False, + round_trip: bool = False, + warnings: bool | Literal['none', 'warn', 'error'] = True, + fallback: Callable[[Any], Any] | None = None, + serialize_as_any: bool = False, + context: Any | None = None, + ) -> Any: + """ + Serialize/marshal a Python object to a Python object including transforming and filtering data. + + Arguments: + value: The Python object to serialize. + mode: The serialization mode to use, either `'python'` or `'json'`, defaults to `'python'`. In JSON mode, + all values are converted to JSON compatible types, e.g. `None`, `int`, `float`, `str`, `list`, `dict`. + include: A set of fields to include, if `None` all fields are included. + exclude: A set of fields to exclude, if `None` no fields are excluded. + by_alias: Whether to use the alias names of fields. + exclude_unset: Whether to exclude fields that are not set, + e.g. are not included in `__pydantic_fields_set__`. + exclude_defaults: Whether to exclude fields that are equal to their default value. + exclude_none: Whether to exclude fields that have a value of `None`. + exclude_computed_fields: Whether to exclude computed fields. + round_trip: Whether to enable serialization and validation round-trip support. + warnings: How to handle invalid fields. False/"none" ignores them, True/"warn" logs errors, + "error" raises a [`PydanticSerializationError`][pydantic_core.PydanticSerializationError]. + fallback: A function to call when an unknown value is encountered, + if `None` a [`PydanticSerializationError`][pydantic_core.PydanticSerializationError] error is raised. + serialize_as_any: Whether to serialize fields with duck-typing serialization behavior. + context: The context to use for serialization, this is passed to functional serializers as + [`info.context`][pydantic_core.core_schema.SerializationInfo.context]. + + Raises: + PydanticSerializationError: If serialization fails and no `fallback` function is provided. + + Returns: + The serialized Python object. + """ + def to_json( + self, + value: Any, + *, + indent: int | None = None, + ensure_ascii: bool = False, + include: _IncEx | None = None, + exclude: _IncEx | None = None, + by_alias: bool | None = None, + exclude_unset: bool = False, + exclude_defaults: bool = False, + exclude_none: bool = False, + exclude_computed_fields: bool = False, + round_trip: bool = False, + warnings: bool | Literal['none', 'warn', 'error'] = True, + fallback: Callable[[Any], Any] | None = None, + serialize_as_any: bool = False, + context: Any | None = None, + ) -> bytes: + """ + Serialize a Python object to JSON including transforming and filtering data. + + Arguments: + value: The Python object to serialize. + indent: If `None`, the JSON will be compact, otherwise it will be pretty-printed with the indent provided. + ensure_ascii: If `True`, the output is guaranteed to have all incoming non-ASCII characters escaped. + If `False` (the default), these characters will be output as-is. + include: A set of fields to include, if `None` all fields are included. + exclude: A set of fields to exclude, if `None` no fields are excluded. + by_alias: Whether to use the alias names of fields. + exclude_unset: Whether to exclude fields that are not set, + e.g. are not included in `__pydantic_fields_set__`. + exclude_defaults: Whether to exclude fields that are equal to their default value. + exclude_none: Whether to exclude fields that have a value of `None`. + exclude_computed_fields: Whether to exclude computed fields. + round_trip: Whether to enable serialization and validation round-trip support. + warnings: How to handle invalid fields. False/"none" ignores them, True/"warn" logs errors, + "error" raises a [`PydanticSerializationError`][pydantic_core.PydanticSerializationError]. + fallback: A function to call when an unknown value is encountered, + if `None` a [`PydanticSerializationError`][pydantic_core.PydanticSerializationError] error is raised. + serialize_as_any: Whether to serialize fields with duck-typing serialization behavior. + context: The context to use for serialization, this is passed to functional serializers as + [`info.context`][pydantic_core.core_schema.SerializationInfo.context]. + + Raises: + PydanticSerializationError: If serialization fails and no `fallback` function is provided. + + Returns: + JSON bytes. + """ + +def to_json( + value: Any, + *, + indent: int | None = None, + ensure_ascii: bool = False, + include: _IncEx | None = None, + exclude: _IncEx | None = None, + # Note: In Pydantic 2.11, the default value of `by_alias` on `SchemaSerializer` was changed from `True` to `None`, + # to be consistent with the Pydantic "dump" methods. However, the default of `True` was kept here for + # backwards compatibility. In Pydantic V3, `by_alias` is expected to default to `True` everywhere: + by_alias: bool = True, + exclude_none: bool = False, + round_trip: bool = False, + timedelta_mode: Literal['iso8601', 'float'] = 'iso8601', + temporal_mode: Literal['iso8601', 'seconds', 'milliseconds'] = 'iso8601', + bytes_mode: Literal['utf8', 'base64', 'hex'] = 'utf8', + inf_nan_mode: Literal['null', 'constants', 'strings'] = 'constants', + serialize_unknown: bool = False, + fallback: Callable[[Any], Any] | None = None, + serialize_as_any: bool = False, + context: Any | None = None, +) -> bytes: + """ + Serialize a Python object to JSON including transforming and filtering data. + + This is effectively a standalone version of [`SchemaSerializer.to_json`][pydantic_core.SchemaSerializer.to_json]. + + Arguments: + value: The Python object to serialize. + indent: If `None`, the JSON will be compact, otherwise it will be pretty-printed with the indent provided. + ensure_ascii: If `True`, the output is guaranteed to have all incoming non-ASCII characters escaped. + If `False` (the default), these characters will be output as-is. + include: A set of fields to include, if `None` all fields are included. + exclude: A set of fields to exclude, if `None` no fields are excluded. + by_alias: Whether to use the alias names of fields. + exclude_none: Whether to exclude fields that have a value of `None`. + round_trip: Whether to enable serialization and validation round-trip support. + timedelta_mode: How to serialize `timedelta` objects, either `'iso8601'` or `'float'`. + temporal_mode: How to serialize datetime-like objects (`datetime`, `date`, `time`), either `'iso8601'`, `'seconds'`, or `'milliseconds'`. + `iso8601` returns an ISO 8601 string; `seconds` returns the Unix timestamp in seconds as a float; `milliseconds` returns the Unix timestamp in milliseconds as a float. + + bytes_mode: How to serialize `bytes` objects, either `'utf8'`, `'base64'`, or `'hex'`. + inf_nan_mode: How to serialize `Infinity`, `-Infinity` and `NaN` values, either `'null'`, `'constants'`, or `'strings'`. + serialize_unknown: Attempt to serialize unknown types, `str(value)` will be used, if that fails + `""` will be used. + fallback: A function to call when an unknown value is encountered, + if `None` a [`PydanticSerializationError`][pydantic_core.PydanticSerializationError] error is raised. + serialize_as_any: Whether to serialize fields with duck-typing serialization behavior. + context: The context to use for serialization, this is passed to functional serializers as + [`info.context`][pydantic_core.core_schema.SerializationInfo.context]. + + Raises: + PydanticSerializationError: If serialization fails and no `fallback` function is provided. + + Returns: + JSON bytes. + """ + +def from_json( + data: str | bytes | bytearray, + *, + allow_inf_nan: bool = True, + cache_strings: bool | Literal['all', 'keys', 'none'] = True, + allow_partial: bool | Literal['off', 'on', 'trailing-strings'] = False, +) -> Any: + """ + Deserialize JSON data to a Python object. + + This is effectively a faster version of `json.loads()`, with some extra functionality. + + Arguments: + data: The JSON data to deserialize. + allow_inf_nan: Whether to allow `Infinity`, `-Infinity` and `NaN` values as `json.loads()` does by default. + cache_strings: Whether to cache strings to avoid constructing new Python objects, + this should have a significant impact on performance while increasing memory usage slightly, + `all/True` means cache all strings, `keys` means cache only dict keys, `none/False` means no caching. + allow_partial: Whether to allow partial deserialization, if `True` JSON data is returned if the end of the + input is reached before the full object is deserialized, e.g. `["aa", "bb", "c` would return `['aa', 'bb']`. + `'trailing-strings'` means any final unfinished JSON string is included in the result. + + Raises: + ValueError: If deserialization fails. + + Returns: + The deserialized Python object. + """ + +def to_jsonable_python( + value: Any, + *, + include: _IncEx | None = None, + exclude: _IncEx | None = None, + # Note: In Pydantic 2.11, the default value of `by_alias` on `SchemaSerializer` was changed from `True` to `None`, + # to be consistent with the Pydantic "dump" methods. However, the default of `True` was kept here for + # backwards compatibility. In Pydantic V3, `by_alias` is expected to default to `True` everywhere: + by_alias: bool = True, + exclude_none: bool = False, + round_trip: bool = False, + timedelta_mode: Literal['iso8601', 'float'] = 'iso8601', + temporal_mode: Literal['iso8601', 'seconds', 'milliseconds'] = 'iso8601', + bytes_mode: Literal['utf8', 'base64', 'hex'] = 'utf8', + inf_nan_mode: Literal['null', 'constants', 'strings'] = 'constants', + serialize_unknown: bool = False, + fallback: Callable[[Any], Any] | None = None, + serialize_as_any: bool = False, + context: Any | None = None, +) -> Any: + """ + Serialize/marshal a Python object to a JSON-serializable Python object including transforming and filtering data. + + This is effectively a standalone version of + [`SchemaSerializer.to_python(mode='json')`][pydantic_core.SchemaSerializer.to_python]. + + Args: + value: The Python object to serialize. + include: A set of fields to include, if `None` all fields are included. + exclude: A set of fields to exclude, if `None` no fields are excluded. + by_alias: Whether to use the alias names of fields. + exclude_none: Whether to exclude fields that have a value of `None`. + round_trip: Whether to enable serialization and validation round-trip support. + timedelta_mode: How to serialize `timedelta` objects, either `'iso8601'` or `'float'`. + temporal_mode: How to serialize datetime-like objects (`datetime`, `date`, `time`), either `'iso8601'`, `'seconds'`, or `'milliseconds'`. + `iso8601` returns an ISO 8601 string; `seconds` returns the Unix timestamp in seconds as a float; `milliseconds` returns the Unix timestamp in milliseconds as a float. + + bytes_mode: How to serialize `bytes` objects, either `'utf8'`, `'base64'`, or `'hex'`. + inf_nan_mode: How to serialize `Infinity`, `-Infinity` and `NaN` values, either `'null'`, `'constants'`, or `'strings'`. + serialize_unknown: Attempt to serialize unknown types, `str(value)` will be used, if that fails + `""` will be used. + fallback: A function to call when an unknown value is encountered, + if `None` a [`PydanticSerializationError`][pydantic_core.PydanticSerializationError] error is raised. + serialize_as_any: Whether to serialize fields with duck-typing serialization behavior. + context: The context to use for serialization, this is passed to functional serializers as + [`info.context`][pydantic_core.core_schema.SerializationInfo.context]. + + Raises: + PydanticSerializationError: If serialization fails and no `fallback` function is provided. + + Returns: + The serialized Python object. + """ + +class Url(SupportsAllComparisons): + """ + A URL type, internal logic uses the [url rust crate](https://docs.rs/url/latest/url/) originally developed + by Mozilla. + """ + + def __init__(self, url: str) -> None: ... + def __new__(cls, url: str) -> Self: ... + @property + def scheme(self) -> str: ... + @property + def username(self) -> str | None: ... + @property + def password(self) -> str | None: ... + @property + def host(self) -> str | None: ... + def unicode_host(self) -> str | None: ... + @property + def port(self) -> int | None: ... + @property + def path(self) -> str | None: ... + @property + def query(self) -> str | None: ... + def query_params(self) -> list[tuple[str, str]]: ... + @property + def fragment(self) -> str | None: ... + def unicode_string(self) -> str: ... + def __repr__(self) -> str: ... + def __str__(self) -> str: ... + def __deepcopy__(self, memo: dict) -> str: ... + @classmethod + def build( + cls, + *, + scheme: str, + username: str | None = None, + password: str | None = None, + host: str, + port: int | None = None, + path: str | None = None, + query: str | None = None, + fragment: str | None = None, + ) -> Self: ... + +class MultiHostUrl(SupportsAllComparisons): + """ + A URL type with support for multiple hosts, as used by some databases for DSNs, e.g. `https://foo.com,bar.com/path`. + + Internal URL logic uses the [url rust crate](https://docs.rs/url/latest/url/) originally developed + by Mozilla. + """ + + def __init__(self, url: str) -> None: ... + def __new__(cls, url: str) -> Self: ... + @property + def scheme(self) -> str: ... + @property + def path(self) -> str | None: ... + @property + def query(self) -> str | None: ... + def query_params(self) -> list[tuple[str, str]]: ... + @property + def fragment(self) -> str | None: ... + def hosts(self) -> list[MultiHostHost]: ... + def unicode_string(self) -> str: ... + def __repr__(self) -> str: ... + def __str__(self) -> str: ... + def __deepcopy__(self, memo: dict) -> Self: ... + @classmethod + def build( + cls, + *, + scheme: str, + hosts: list[MultiHostHost] | None = None, + username: str | None = None, + password: str | None = None, + host: str | None = None, + port: int | None = None, + path: str | None = None, + query: str | None = None, + fragment: str | None = None, + ) -> Self: ... + +@final +class SchemaError(Exception): + """ + Information about errors that occur while building a [`SchemaValidator`][pydantic_core.SchemaValidator] + or [`SchemaSerializer`][pydantic_core.SchemaSerializer]. + """ + + def error_count(self) -> int: + """ + Returns: + The number of errors in the schema. + """ + def errors(self) -> list[ErrorDetails]: + """ + Returns: + A list of [`ErrorDetails`][pydantic_core.ErrorDetails] for each error in the schema. + """ + +class ValidationError(ValueError): + """ + `ValidationError` is the exception raised by `pydantic-core` when validation fails, it contains a list of errors + which detail why validation failed. + """ + @classmethod + def from_exception_data( + cls, + title: str, + line_errors: list[InitErrorDetails], + input_type: Literal['python', 'json'] = 'python', + hide_input: bool = False, + ) -> Self: + """ + Python constructor for a Validation Error. + + Arguments: + title: The title of the error, as used in the heading of `str(validation_error)` + line_errors: A list of [`InitErrorDetails`][pydantic_core.InitErrorDetails] which contain information + about errors that occurred during validation. + input_type: Whether the error is for a Python object or JSON. + hide_input: Whether to hide the input value in the error message. + """ + @property + def title(self) -> str: + """ + The title of the error, as used in the heading of `str(validation_error)`. + """ + def error_count(self) -> int: + """ + Returns: + The number of errors in the validation error. + """ + def errors( + self, *, include_url: bool = True, include_context: bool = True, include_input: bool = True + ) -> list[ErrorDetails]: + """ + Details about each error in the validation error. + + Args: + include_url: Whether to include a URL to documentation on the error each error. + include_context: Whether to include the context of each error. + include_input: Whether to include the input value of each error. + + Returns: + A list of [`ErrorDetails`][pydantic_core.ErrorDetails] for each error in the validation error. + """ + def json( + self, + *, + indent: int | None = None, + include_url: bool = True, + include_context: bool = True, + include_input: bool = True, + ) -> str: + """ + Same as [`errors()`][pydantic_core.ValidationError.errors] but returns a JSON string. + + Args: + indent: The number of spaces to indent the JSON by, or `None` for no indentation - compact JSON. + include_url: Whether to include a URL to documentation on the error each error. + include_context: Whether to include the context of each error. + include_input: Whether to include the input value of each error. + + Returns: + a JSON string. + """ + + def __repr__(self) -> str: + """ + A string representation of the validation error. + + Whether or not documentation URLs are included in the repr is controlled by the + environment variable `PYDANTIC_ERRORS_INCLUDE_URL` being set to `1` or + `true`; by default, URLs are shown. + + Due to implementation details, this environment variable can only be set once, + before the first validation error is created. + """ + +class PydanticCustomError(ValueError): + """A custom exception providing flexible error handling for Pydantic validators. + + You can raise this error in custom validators when you'd like flexibility in regards to the error type, message, and context. + + Example: + ```py + from pydantic_core import PydanticCustomError + + def custom_validator(v) -> None: + if v <= 10: + raise PydanticCustomError('custom_value_error', 'Value must be greater than {value}', {'value': 10, 'extra_context': 'extra_data'}) + return v + ``` + + Arguments: + error_type: The error type. + message_template: The message template. + context: The data to inject into the message template. + """ + + def __init__( + self, error_type: LiteralString, message_template: LiteralString, context: dict[str, Any] | None = None, / + ) -> None: ... + @property + def context(self) -> dict[str, Any] | None: + """Values which are required to render the error message, and could hence be useful in passing error data forward.""" + + @property + def type(self) -> str: + """The error type associated with the error. For consistency with Pydantic, this is typically a snake_case string.""" + + @property + def message_template(self) -> str: + """The message template associated with the error. This is a string that can be formatted with context variables in `{curly_braces}`.""" + + def message(self) -> str: + """The formatted message associated with the error. This presents as the message template with context variables appropriately injected.""" + +@final +class PydanticKnownError(ValueError): + """A helper class for raising exceptions that mimic Pydantic's built-in exceptions, with more flexibility in regards to context. + + Unlike [`PydanticCustomError`][pydantic_core.PydanticCustomError], the `error_type` argument must be a known `ErrorType`. + + Example: + ```py + from pydantic_core import PydanticKnownError + + def custom_validator(v) -> None: + if v <= 10: + raise PydanticKnownError('greater_than', {'gt': 10}) + return v + ``` + + Arguments: + error_type: The error type. + context: The data to inject into the message template. + """ + + def __init__(self, error_type: ErrorType, context: dict[str, Any] | None = None, /) -> None: ... + @property + def context(self) -> dict[str, Any] | None: + """Values which are required to render the error message, and could hence be useful in passing error data forward.""" + + @property + def type(self) -> ErrorType: + """The type of the error.""" + + @property + def message_template(self) -> str: + """The message template associated with the provided error type. This is a string that can be formatted with context variables in `{curly_braces}`.""" + + def message(self) -> str: + """The formatted message associated with the error. This presents as the message template with context variables appropriately injected.""" + +@final +class PydanticOmit(Exception): + """An exception to signal that a field should be omitted from a generated result. + + This could span from omitting a field from a JSON Schema to omitting a field from a serialized result. + Upcoming: more robust support for using PydanticOmit in custom serializers is still in development. + Right now, this is primarily used in the JSON Schema generation process. + + Example: + ```py + from typing import Callable + + from pydantic_core import PydanticOmit + + from pydantic import BaseModel + from pydantic.json_schema import GenerateJsonSchema, JsonSchemaValue + + + class MyGenerateJsonSchema(GenerateJsonSchema): + def handle_invalid_for_json_schema(self, schema, error_info) -> JsonSchemaValue: + raise PydanticOmit + + + class Predicate(BaseModel): + name: str = 'no-op' + func: Callable = lambda x: x + + + instance_example = Predicate() + + validation_schema = instance_example.model_json_schema(schema_generator=MyGenerateJsonSchema, mode='validation') + print(validation_schema) + ''' + {'properties': {'name': {'default': 'no-op', 'title': 'Name', 'type': 'string'}}, 'title': 'Predicate', 'type': 'object'} + ''' + ``` + + For a more in depth example / explanation, see the [customizing JSON schema](../concepts/json_schema.md#customizing-the-json-schema-generation-process) docs. + """ + + def __new__(cls) -> Self: ... + +@final +class PydanticUseDefault(Exception): + """An exception to signal that standard validation either failed or should be skipped, and the default value should be used instead. + + This warning can be raised in custom valiation functions to redirect the flow of validation. + + Example: + ```py + from pydantic_core import PydanticUseDefault + from datetime import datetime + from pydantic import BaseModel, field_validator + + + class Event(BaseModel): + name: str = 'meeting' + time: datetime + + @field_validator('name', mode='plain') + def name_must_be_present(cls, v) -> str: + if not v or not isinstance(v, str): + raise PydanticUseDefault() + return v + + + event1 = Event(name='party', time=datetime(2024, 1, 1, 12, 0, 0)) + print(repr(event1)) + # > Event(name='party', time=datetime.datetime(2024, 1, 1, 12, 0)) + event2 = Event(time=datetime(2024, 1, 1, 12, 0, 0)) + print(repr(event2)) + # > Event(name='meeting', time=datetime.datetime(2024, 1, 1, 12, 0)) + ``` + + For an additional example, see the [validating partial json data](../concepts/json.md#partial-json-parsing) section of the Pydantic documentation. + """ + + def __new__(cls) -> Self: ... + +@final +class PydanticSerializationError(ValueError): + """An error raised when an issue occurs during serialization. + + In custom serializers, this error can be used to indicate that serialization has failed. + + Arguments: + message: The message associated with the error. + """ + + def __init__(self, message: str, /) -> None: ... + +@final +class PydanticSerializationUnexpectedValue(ValueError): + """An error raised when an unexpected value is encountered during serialization. + + This error is often caught and coerced into a warning, as `pydantic-core` generally makes a best attempt + at serializing values, in contrast with validation where errors are eagerly raised. + + Example: + ```py + from pydantic import BaseModel, field_serializer + from pydantic_core import PydanticSerializationUnexpectedValue + + class BasicPoint(BaseModel): + x: int + y: int + + @field_serializer('*') + def serialize(self, v): + if not isinstance(v, int): + raise PydanticSerializationUnexpectedValue(f'Expected type `int`, got {type(v)} with value {v}') + return v + + point = BasicPoint(x=1, y=2) + # some sort of mutation + point.x = 'a' + + print(point.model_dump()) + ''' + UserWarning: Pydantic serializer warnings: + PydanticSerializationUnexpectedValue(Expected type `int`, got with value a) + return self.__pydantic_serializer__.to_python( + {'x': 'a', 'y': 2} + ''' + ``` + + This is often used internally in `pydantic-core` when unexpected types are encountered during serialization, + but it can also be used by users in custom serializers, as seen above. + + Arguments: + message: The message associated with the unexpected value. + """ + + def __init__(self, message: str, /) -> None: ... + +@final +class ArgsKwargs: + """A construct used to store arguments and keyword arguments for a function call. + + This data structure is generally used to store information for core schemas associated with functions (like in an arguments schema). + This data structure is also currently used for some validation against dataclasses. + + Example: + ```py + from pydantic.dataclasses import dataclass + from pydantic import model_validator + + + @dataclass + class Model: + a: int + b: int + + @model_validator(mode="before") + @classmethod + def no_op_validator(cls, values): + print(values) + return values + + Model(1, b=2) + #> ArgsKwargs((1,), {"b": 2}) + + Model(1, 2) + #> ArgsKwargs((1, 2), {}) + + Model(a=1, b=2) + #> ArgsKwargs((), {"a": 1, "b": 2}) + ``` + """ + + def __init__(self, args: tuple[Any, ...], kwargs: dict[str, Any] | None = None) -> None: + """Initializes the `ArgsKwargs`. + + Arguments: + args: The arguments (inherently ordered) for a function call. + kwargs: The keyword arguments for a function call + """ + + def __new__(cls, args: tuple[Any, ...], kwargs: dict[str, Any] | None = None) -> Self: ... + @property + def args(self) -> tuple[Any, ...]: + """The arguments (inherently ordered) for a function call.""" + + @property + def kwargs(self) -> dict[str, Any] | None: + """The keyword arguments for a function call.""" + +@final +class PydanticUndefinedType: + """A type used as a sentinel for undefined values.""" + + def __copy__(self) -> Self: ... + def __deepcopy__(self, memo: Any) -> Self: ... + +PydanticUndefined: PydanticUndefinedType + +def list_all_errors() -> list[ErrorTypeInfo]: + """ + Get information about all built-in errors. + + Returns: + A list of `ErrorTypeInfo` typed dicts. + """ +@final +class TzInfo(datetime.tzinfo): + """An `pydantic-core` implementation of the abstract [`datetime.tzinfo`][] class.""" + + def __init__(self, seconds: float = 0.0) -> None: + """Initializes the `TzInfo`. + + Arguments: + seconds: The offset from UTC in seconds. Defaults to 0.0 (UTC). + """ + + def __new__(cls, seconds: float = 0.0) -> Self: ... + + # Docstrings for attributes sourced from the abstract base class, [`datetime.tzinfo`](https://docs.python.org/3/library/datetime.html#datetime.tzinfo). + + def tzname(self, dt: datetime.datetime | None) -> str | None: + """Return the time zone name corresponding to the [`datetime`][datetime.datetime] object _dt_, as a string. + + For more info, see [`tzinfo.tzname`][datetime.tzinfo.tzname]. + """ + + def utcoffset(self, dt: datetime.datetime | None) -> datetime.timedelta | None: + """Return offset of local time from UTC, as a [`timedelta`][datetime.timedelta] object that is positive east of UTC. If local time is west of UTC, this should be negative. + + More info can be found at [`tzinfo.utcoffset`][datetime.tzinfo.utcoffset]. + """ + + def dst(self, dt: datetime.datetime | None) -> datetime.timedelta | None: + """Return the daylight saving time (DST) adjustment, as a [`timedelta`][datetime.timedelta] object or `None` if DST information isn’t known. + + More info can be found at[`tzinfo.dst`][datetime.tzinfo.dst].""" + + def fromutc(self, dt: datetime.datetime) -> datetime.datetime: + """Adjust the date and time data associated datetime object _dt_, returning an equivalent datetime in self’s local time. + + More info can be found at [`tzinfo.fromutc`][datetime.tzinfo.fromutc].""" + + def __deepcopy__(self, _memo: dict[Any, Any]) -> TzInfo: ... diff --git a/venv/lib/python3.11/site-packages/pydantic_core/core_schema.py b/venv/lib/python3.11/site-packages/pydantic_core/core_schema.py new file mode 100644 index 0000000..c8a3b6d --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_core/core_schema.py @@ -0,0 +1,4435 @@ +""" +This module contains definitions to build schemas which `pydantic_core` can +validate and serialize. +""" + +from __future__ import annotations as _annotations + +import sys +import warnings +from collections.abc import Hashable, Mapping +from datetime import date, datetime, time, timedelta +from decimal import Decimal +from re import Pattern +from typing import TYPE_CHECKING, Any, Callable, Literal, Union + +from typing_extensions import TypeVar, deprecated + +if sys.version_info < (3, 12): + from typing_extensions import TypedDict +else: + from typing import TypedDict + +if sys.version_info < (3, 11): + from typing_extensions import Protocol, Required, TypeAlias +else: + from typing import Protocol, Required, TypeAlias + +if TYPE_CHECKING: + from pydantic_core import PydanticUndefined +else: + # The initial build of pydantic_core requires PydanticUndefined to generate + # the core schema; so we need to conditionally skip it. mypy doesn't like + # this at all, hence the TYPE_CHECKING branch above. + try: + from pydantic_core import PydanticUndefined + except ImportError: + PydanticUndefined = object() + + +ExtraBehavior = Literal['allow', 'forbid', 'ignore'] + + +class CoreConfig(TypedDict, total=False): + """ + Base class for schema configuration options. + + Attributes: + title: The name of the configuration. + strict: Whether the configuration should strictly adhere to specified rules. + extra_fields_behavior: The behavior for handling extra fields. + typed_dict_total: Whether the TypedDict should be considered total. Default is `True`. + from_attributes: Whether to use attributes for models, dataclasses, and tagged union keys. + loc_by_alias: Whether to use the used alias (or first alias for "field required" errors) instead of + `field_names` to construct error `loc`s. Default is `True`. + revalidate_instances: Whether instances of models and dataclasses should re-validate. Default is 'never'. + validate_default: Whether to validate default values during validation. Default is `False`. + str_max_length: The maximum length for string fields. + str_min_length: The minimum length for string fields. + str_strip_whitespace: Whether to strip whitespace from string fields. + str_to_lower: Whether to convert string fields to lowercase. + str_to_upper: Whether to convert string fields to uppercase. + allow_inf_nan: Whether to allow infinity and NaN values for float fields. Default is `True`. + ser_json_timedelta: The serialization option for `timedelta` values. Default is 'iso8601'. + Note that if ser_json_temporal is set, then this param will be ignored. + ser_json_temporal: The serialization option for datetime like values. Default is 'iso8601'. + The types this covers are datetime, date, time and timedelta. + If this is set, it will take precedence over ser_json_timedelta + ser_json_bytes: The serialization option for `bytes` values. Default is 'utf8'. + ser_json_inf_nan: The serialization option for infinity and NaN values + in float fields. Default is 'null'. + val_json_bytes: The validation option for `bytes` values, complementing ser_json_bytes. Default is 'utf8'. + hide_input_in_errors: Whether to hide input data from `ValidationError` representation. + validation_error_cause: Whether to add user-python excs to the __cause__ of a ValidationError. + Requires exceptiongroup backport pre Python 3.11. + coerce_numbers_to_str: Whether to enable coercion of any `Number` type to `str` (not applicable in `strict` mode). + regex_engine: The regex engine to use for regex pattern validation. Default is 'rust-regex'. See `StringSchema`. + cache_strings: Whether to cache strings. Default is `True`, `True` or `'all'` is required to cache strings + during general validation since validators don't know if they're in a key or a value. + validate_by_alias: Whether to use the field's alias when validating against the provided input data. Default is `True`. + validate_by_name: Whether to use the field's name when validating against the provided input data. Default is `False`. Replacement for `populate_by_name`. + serialize_by_alias: Whether to serialize by alias. Default is `False`, expected to change to `True` in V3. + url_preserve_empty_path: Whether to preserve empty URL paths when validating values for a URL type. Defaults to `False`. + """ + + title: str + strict: bool + # settings related to typed dicts, model fields, dataclass fields + extra_fields_behavior: ExtraBehavior + typed_dict_total: bool # default: True + # used for models, dataclasses, and tagged union keys + from_attributes: bool + # whether to use the used alias (or first alias for "field required" errors) instead of field_names + # to construct error `loc`s, default True + loc_by_alias: bool + # whether instances of models and dataclasses (including subclass instances) should re-validate, default 'never' + revalidate_instances: Literal['always', 'never', 'subclass-instances'] + # whether to validate default values during validation, default False + validate_default: bool + # used on typed-dicts and arguments + # fields related to string fields only + str_max_length: int + str_min_length: int + str_strip_whitespace: bool + str_to_lower: bool + str_to_upper: bool + # fields related to float fields only + allow_inf_nan: bool # default: True + # the config options are used to customise serialization to JSON + ser_json_timedelta: Literal['iso8601', 'float'] # default: 'iso8601' + ser_json_temporal: Literal['iso8601', 'seconds', 'milliseconds'] # default: 'iso8601' + ser_json_bytes: Literal['utf8', 'base64', 'hex'] # default: 'utf8' + ser_json_inf_nan: Literal['null', 'constants', 'strings'] # default: 'null' + val_json_bytes: Literal['utf8', 'base64', 'hex'] # default: 'utf8' + # used to hide input data from ValidationError repr + hide_input_in_errors: bool + validation_error_cause: bool # default: False + coerce_numbers_to_str: bool # default: False + regex_engine: Literal['rust-regex', 'python-re'] # default: 'rust-regex' + cache_strings: Union[bool, Literal['all', 'keys', 'none']] # default: 'True' + validate_by_alias: bool # default: True + validate_by_name: bool # default: False + serialize_by_alias: bool # default: False + url_preserve_empty_path: bool # default: False + + +IncExCall: TypeAlias = 'set[int | str] | dict[int | str, IncExCall] | None' + +ContextT = TypeVar('ContextT', covariant=True, default='Any | None') + + +class SerializationInfo(Protocol[ContextT]): + """Extra data used during serialization.""" + + @property + def include(self) -> IncExCall: + """The `include` argument set during serialization.""" + ... + + @property + def exclude(self) -> IncExCall: + """The `exclude` argument set during serialization.""" + ... + + @property + def context(self) -> ContextT: + """The current serialization context.""" + ... + + @property + def mode(self) -> Literal['python', 'json'] | str: + """The serialization mode set during serialization.""" + ... + + @property + def by_alias(self) -> bool: + """The `by_alias` argument set during serialization.""" + ... + + @property + def exclude_unset(self) -> bool: + """The `exclude_unset` argument set during serialization.""" + ... + + @property + def exclude_defaults(self) -> bool: + """The `exclude_defaults` argument set during serialization.""" + ... + + @property + def exclude_none(self) -> bool: + """The `exclude_none` argument set during serialization.""" + ... + + @property + def exclude_computed_fields(self) -> bool: + """The `exclude_computed_fields` argument set during serialization.""" + ... + + @property + def serialize_as_any(self) -> bool: + """The `serialize_as_any` argument set during serialization.""" + ... + + @property + def round_trip(self) -> bool: + """The `round_trip` argument set during serialization.""" + ... + + def mode_is_json(self) -> bool: ... + + def __str__(self) -> str: ... + + def __repr__(self) -> str: ... + + +class FieldSerializationInfo(SerializationInfo[ContextT], Protocol): + """Extra data used during field serialization.""" + + @property + def field_name(self) -> str: + """The name of the current field being serialized.""" + ... + + +class ValidationInfo(Protocol[ContextT]): + """Extra data used during validation.""" + + @property + def context(self) -> ContextT: + """The current validation context.""" + ... + + @property + def config(self) -> CoreConfig | None: + """The CoreConfig that applies to this validation.""" + ... + + @property + def mode(self) -> Literal['python', 'json']: + """The type of input data we are currently validating.""" + ... + + @property + def data(self) -> dict[str, Any]: + """The data being validated for this model.""" + ... + + @property + def field_name(self) -> str | None: + """ + The name of the current field being validated if this validator is + attached to a model field. + """ + ... + + +ExpectedSerializationTypes = Literal[ + 'none', + 'int', + 'bool', + 'float', + 'str', + 'bytes', + 'bytearray', + 'list', + 'tuple', + 'set', + 'frozenset', + 'generator', + 'dict', + 'datetime', + 'date', + 'time', + 'timedelta', + 'url', + 'multi-host-url', + 'json', + 'uuid', + 'any', +] + + +class SimpleSerSchema(TypedDict, total=False): + type: Required[ExpectedSerializationTypes] + + +def simple_ser_schema(type: ExpectedSerializationTypes) -> SimpleSerSchema: + """ + Returns a schema for serialization with a custom type. + + Args: + type: The type to use for serialization + """ + return SimpleSerSchema(type=type) + + +# (input_value: Any, /) -> Any +GeneralPlainNoInfoSerializerFunction = Callable[[Any], Any] +# (input_value: Any, info: FieldSerializationInfo, /) -> Any +GeneralPlainInfoSerializerFunction = Callable[[Any, SerializationInfo[Any]], Any] +# (model: Any, input_value: Any, /) -> Any +FieldPlainNoInfoSerializerFunction = Callable[[Any, Any], Any] +# (model: Any, input_value: Any, info: FieldSerializationInfo, /) -> Any +FieldPlainInfoSerializerFunction = Callable[[Any, Any, FieldSerializationInfo[Any]], Any] +SerializerFunction = Union[ + GeneralPlainNoInfoSerializerFunction, + GeneralPlainInfoSerializerFunction, + FieldPlainNoInfoSerializerFunction, + FieldPlainInfoSerializerFunction, +] + +WhenUsed = Literal['always', 'unless-none', 'json', 'json-unless-none'] +""" +Values have the following meanings: + +* `'always'` means always use +* `'unless-none'` means use unless the value is `None` +* `'json'` means use when serializing to JSON +* `'json-unless-none'` means use when serializing to JSON and the value is not `None` +""" + + +class PlainSerializerFunctionSerSchema(TypedDict, total=False): + type: Required[Literal['function-plain']] + function: Required[SerializerFunction] + is_field_serializer: bool # default False + info_arg: bool # default False + return_schema: CoreSchema # if omitted, AnySchema is used + when_used: WhenUsed # default: 'always' + + +def plain_serializer_function_ser_schema( + function: SerializerFunction, + *, + is_field_serializer: bool | None = None, + info_arg: bool | None = None, + return_schema: CoreSchema | None = None, + when_used: WhenUsed = 'always', +) -> PlainSerializerFunctionSerSchema: + """ + Returns a schema for serialization with a function, can be either a "general" or "field" function. + + Args: + function: The function to use for serialization + is_field_serializer: Whether the serializer is for a field, e.g. takes `model` as the first argument, + and `info` includes `field_name` + info_arg: Whether the function takes an `info` argument + return_schema: Schema to use for serializing return value + when_used: When the function should be called + """ + if when_used == 'always': + # just to avoid extra elements in schema, and to use the actual default defined in rust + when_used = None # type: ignore + return _dict_not_none( + type='function-plain', + function=function, + is_field_serializer=is_field_serializer, + info_arg=info_arg, + return_schema=return_schema, + when_used=when_used, + ) + + +class SerializerFunctionWrapHandler(Protocol): # pragma: no cover + def __call__(self, input_value: Any, index_key: int | str | None = None, /) -> Any: ... + + +# (input_value: Any, serializer: SerializerFunctionWrapHandler, /) -> Any +GeneralWrapNoInfoSerializerFunction = Callable[[Any, SerializerFunctionWrapHandler], Any] +# (input_value: Any, serializer: SerializerFunctionWrapHandler, info: SerializationInfo, /) -> Any +GeneralWrapInfoSerializerFunction = Callable[[Any, SerializerFunctionWrapHandler, SerializationInfo[Any]], Any] +# (model: Any, input_value: Any, serializer: SerializerFunctionWrapHandler, /) -> Any +FieldWrapNoInfoSerializerFunction = Callable[[Any, Any, SerializerFunctionWrapHandler], Any] +# (model: Any, input_value: Any, serializer: SerializerFunctionWrapHandler, info: FieldSerializationInfo, /) -> Any +FieldWrapInfoSerializerFunction = Callable[[Any, Any, SerializerFunctionWrapHandler, FieldSerializationInfo[Any]], Any] +WrapSerializerFunction = Union[ + GeneralWrapNoInfoSerializerFunction, + GeneralWrapInfoSerializerFunction, + FieldWrapNoInfoSerializerFunction, + FieldWrapInfoSerializerFunction, +] + + +class WrapSerializerFunctionSerSchema(TypedDict, total=False): + type: Required[Literal['function-wrap']] + function: Required[WrapSerializerFunction] + is_field_serializer: bool # default False + info_arg: bool # default False + schema: CoreSchema # if omitted, the schema on which this serializer is defined is used + return_schema: CoreSchema # if omitted, AnySchema is used + when_used: WhenUsed # default: 'always' + + +def wrap_serializer_function_ser_schema( + function: WrapSerializerFunction, + *, + is_field_serializer: bool | None = None, + info_arg: bool | None = None, + schema: CoreSchema | None = None, + return_schema: CoreSchema | None = None, + when_used: WhenUsed = 'always', +) -> WrapSerializerFunctionSerSchema: + """ + Returns a schema for serialization with a wrap function, can be either a "general" or "field" function. + + Args: + function: The function to use for serialization + is_field_serializer: Whether the serializer is for a field, e.g. takes `model` as the first argument, + and `info` includes `field_name` + info_arg: Whether the function takes an `info` argument + schema: The schema to use for the inner serialization + return_schema: Schema to use for serializing return value + when_used: When the function should be called + """ + if when_used == 'always': + # just to avoid extra elements in schema, and to use the actual default defined in rust + when_used = None # type: ignore + return _dict_not_none( + type='function-wrap', + function=function, + is_field_serializer=is_field_serializer, + info_arg=info_arg, + schema=schema, + return_schema=return_schema, + when_used=when_used, + ) + + +class FormatSerSchema(TypedDict, total=False): + type: Required[Literal['format']] + formatting_string: Required[str] + when_used: WhenUsed # default: 'json-unless-none' + + +def format_ser_schema(formatting_string: str, *, when_used: WhenUsed = 'json-unless-none') -> FormatSerSchema: + """ + Returns a schema for serialization using python's `format` method. + + Args: + formatting_string: String defining the format to use + when_used: Same meaning as for [general_function_plain_ser_schema], but with a different default + """ + if when_used == 'json-unless-none': + # just to avoid extra elements in schema, and to use the actual default defined in rust + when_used = None # type: ignore + return _dict_not_none(type='format', formatting_string=formatting_string, when_used=when_used) + + +class ToStringSerSchema(TypedDict, total=False): + type: Required[Literal['to-string']] + when_used: WhenUsed # default: 'json-unless-none' + + +def to_string_ser_schema(*, when_used: WhenUsed = 'json-unless-none') -> ToStringSerSchema: + """ + Returns a schema for serialization using python's `str()` / `__str__` method. + + Args: + when_used: Same meaning as for [general_function_plain_ser_schema], but with a different default + """ + s = dict(type='to-string') + if when_used != 'json-unless-none': + # just to avoid extra elements in schema, and to use the actual default defined in rust + s['when_used'] = when_used + return s # type: ignore + + +class ModelSerSchema(TypedDict, total=False): + type: Required[Literal['model']] + cls: Required[type[Any]] + schema: Required[CoreSchema] + + +def model_ser_schema(cls: type[Any], schema: CoreSchema) -> ModelSerSchema: + """ + Returns a schema for serialization using a model. + + Args: + cls: The expected class type, used to generate warnings if the wrong type is passed + schema: Internal schema to use to serialize the model dict + """ + return ModelSerSchema(type='model', cls=cls, schema=schema) + + +SerSchema = Union[ + SimpleSerSchema, + PlainSerializerFunctionSerSchema, + WrapSerializerFunctionSerSchema, + FormatSerSchema, + ToStringSerSchema, + ModelSerSchema, +] + + +class InvalidSchema(TypedDict, total=False): + type: Required[Literal['invalid']] + ref: str + metadata: dict[str, Any] + # note, we never plan to use this, but include it for type checking purposes to match + # all other CoreSchema union members + serialization: SerSchema + + +def invalid_schema(ref: str | None = None, metadata: dict[str, Any] | None = None) -> InvalidSchema: + """ + Returns an invalid schema, used to indicate that a schema is invalid. + + Returns a schema that matches any value, e.g.: + + Args: + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + """ + + return _dict_not_none(type='invalid', ref=ref, metadata=metadata) + + +class ComputedField(TypedDict, total=False): + type: Required[Literal['computed-field']] + property_name: Required[str] + return_schema: Required[CoreSchema] + alias: str + metadata: dict[str, Any] + + +def computed_field( + property_name: str, return_schema: CoreSchema, *, alias: str | None = None, metadata: dict[str, Any] | None = None +) -> ComputedField: + """ + ComputedFields are properties of a model or dataclass that are included in serialization. + + Args: + property_name: The name of the property on the model or dataclass + return_schema: The schema used for the type returned by the computed field + alias: The name to use in the serialized output + metadata: Any other information you want to include with the schema, not used by pydantic-core + """ + return _dict_not_none( + type='computed-field', property_name=property_name, return_schema=return_schema, alias=alias, metadata=metadata + ) + + +class AnySchema(TypedDict, total=False): + type: Required[Literal['any']] + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def any_schema( + *, ref: str | None = None, metadata: dict[str, Any] | None = None, serialization: SerSchema | None = None +) -> AnySchema: + """ + Returns a schema that matches any value, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.any_schema() + v = SchemaValidator(schema) + assert v.validate_python(1) == 1 + ``` + + Args: + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none(type='any', ref=ref, metadata=metadata, serialization=serialization) + + +class NoneSchema(TypedDict, total=False): + type: Required[Literal['none']] + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def none_schema( + *, ref: str | None = None, metadata: dict[str, Any] | None = None, serialization: SerSchema | None = None +) -> NoneSchema: + """ + Returns a schema that matches a None value, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.none_schema() + v = SchemaValidator(schema) + assert v.validate_python(None) is None + ``` + + Args: + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none(type='none', ref=ref, metadata=metadata, serialization=serialization) + + +class BoolSchema(TypedDict, total=False): + type: Required[Literal['bool']] + strict: bool + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def bool_schema( + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> BoolSchema: + """ + Returns a schema that matches a bool value, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.bool_schema() + v = SchemaValidator(schema) + assert v.validate_python('True') is True + ``` + + Args: + strict: Whether the value should be a bool or a value that can be converted to a bool + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none(type='bool', strict=strict, ref=ref, metadata=metadata, serialization=serialization) + + +class IntSchema(TypedDict, total=False): + type: Required[Literal['int']] + multiple_of: int + le: int + ge: int + lt: int + gt: int + strict: bool + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def int_schema( + *, + multiple_of: int | None = None, + le: int | None = None, + ge: int | None = None, + lt: int | None = None, + gt: int | None = None, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> IntSchema: + """ + Returns a schema that matches a int value, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.int_schema(multiple_of=2, le=6, ge=2) + v = SchemaValidator(schema) + assert v.validate_python('4') == 4 + ``` + + Args: + multiple_of: The value must be a multiple of this number + le: The value must be less than or equal to this number + ge: The value must be greater than or equal to this number + lt: The value must be strictly less than this number + gt: The value must be strictly greater than this number + strict: Whether the value should be a int or a value that can be converted to a int + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='int', + multiple_of=multiple_of, + le=le, + ge=ge, + lt=lt, + gt=gt, + strict=strict, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class FloatSchema(TypedDict, total=False): + type: Required[Literal['float']] + allow_inf_nan: bool # whether 'NaN', '+inf', '-inf' should be forbidden. default: True + multiple_of: float + le: float + ge: float + lt: float + gt: float + strict: bool + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def float_schema( + *, + allow_inf_nan: bool | None = None, + multiple_of: float | None = None, + le: float | None = None, + ge: float | None = None, + lt: float | None = None, + gt: float | None = None, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> FloatSchema: + """ + Returns a schema that matches a float value, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.float_schema(le=0.8, ge=0.2) + v = SchemaValidator(schema) + assert v.validate_python('0.5') == 0.5 + ``` + + Args: + allow_inf_nan: Whether to allow inf and nan values + multiple_of: The value must be a multiple of this number + le: The value must be less than or equal to this number + ge: The value must be greater than or equal to this number + lt: The value must be strictly less than this number + gt: The value must be strictly greater than this number + strict: Whether the value should be a float or a value that can be converted to a float + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='float', + allow_inf_nan=allow_inf_nan, + multiple_of=multiple_of, + le=le, + ge=ge, + lt=lt, + gt=gt, + strict=strict, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class DecimalSchema(TypedDict, total=False): + type: Required[Literal['decimal']] + allow_inf_nan: bool # whether 'NaN', '+inf', '-inf' should be forbidden. default: False + multiple_of: Decimal + le: Decimal + ge: Decimal + lt: Decimal + gt: Decimal + max_digits: int + decimal_places: int + strict: bool + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def decimal_schema( + *, + allow_inf_nan: bool | None = None, + multiple_of: Decimal | None = None, + le: Decimal | None = None, + ge: Decimal | None = None, + lt: Decimal | None = None, + gt: Decimal | None = None, + max_digits: int | None = None, + decimal_places: int | None = None, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> DecimalSchema: + """ + Returns a schema that matches a decimal value, e.g.: + + ```py + from decimal import Decimal + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.decimal_schema(le=0.8, ge=0.2) + v = SchemaValidator(schema) + assert v.validate_python('0.5') == Decimal('0.5') + ``` + + Args: + allow_inf_nan: Whether to allow inf and nan values + multiple_of: The value must be a multiple of this number + le: The value must be less than or equal to this number + ge: The value must be greater than or equal to this number + lt: The value must be strictly less than this number + gt: The value must be strictly greater than this number + max_digits: The maximum number of decimal digits allowed + decimal_places: The maximum number of decimal places allowed + strict: Whether the value should be a float or a value that can be converted to a float + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='decimal', + gt=gt, + ge=ge, + lt=lt, + le=le, + max_digits=max_digits, + decimal_places=decimal_places, + multiple_of=multiple_of, + allow_inf_nan=allow_inf_nan, + strict=strict, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class ComplexSchema(TypedDict, total=False): + type: Required[Literal['complex']] + strict: bool + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def complex_schema( + *, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> ComplexSchema: + """ + Returns a schema that matches a complex value, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.complex_schema() + v = SchemaValidator(schema) + assert v.validate_python('1+2j') == complex(1, 2) + assert v.validate_python(complex(1, 2)) == complex(1, 2) + ``` + + Args: + strict: Whether the value should be a complex object instance or a value that can be converted to a complex object + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='complex', + strict=strict, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class StringSchema(TypedDict, total=False): + type: Required[Literal['str']] + pattern: Union[str, Pattern[str]] + max_length: int + min_length: int + strip_whitespace: bool + to_lower: bool + to_upper: bool + regex_engine: Literal['rust-regex', 'python-re'] # default: 'rust-regex' + strict: bool + coerce_numbers_to_str: bool + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def str_schema( + *, + pattern: str | Pattern[str] | None = None, + max_length: int | None = None, + min_length: int | None = None, + strip_whitespace: bool | None = None, + to_lower: bool | None = None, + to_upper: bool | None = None, + regex_engine: Literal['rust-regex', 'python-re'] | None = None, + strict: bool | None = None, + coerce_numbers_to_str: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> StringSchema: + """ + Returns a schema that matches a string value, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.str_schema(max_length=10, min_length=2) + v = SchemaValidator(schema) + assert v.validate_python('hello') == 'hello' + ``` + + Args: + pattern: A regex pattern that the value must match + max_length: The value must be at most this length + min_length: The value must be at least this length + strip_whitespace: Whether to strip whitespace from the value + to_lower: Whether to convert the value to lowercase + to_upper: Whether to convert the value to uppercase + regex_engine: The regex engine to use for pattern validation. Default is 'rust-regex'. + - `rust-regex` uses the [`regex`](https://docs.rs/regex) Rust + crate, which is non-backtracking and therefore more DDoS + resistant, but does not support all regex features. + - `python-re` use the [`re`](https://docs.python.org/3/library/re.html) module, + which supports all regex features, but may be slower. + strict: Whether the value should be a string or a value that can be converted to a string + coerce_numbers_to_str: Whether to enable coercion of any `Number` type to `str` (not applicable in `strict` mode). + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='str', + pattern=pattern, + max_length=max_length, + min_length=min_length, + strip_whitespace=strip_whitespace, + to_lower=to_lower, + to_upper=to_upper, + regex_engine=regex_engine, + strict=strict, + coerce_numbers_to_str=coerce_numbers_to_str, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class BytesSchema(TypedDict, total=False): + type: Required[Literal['bytes']] + max_length: int + min_length: int + strict: bool + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def bytes_schema( + *, + max_length: int | None = None, + min_length: int | None = None, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> BytesSchema: + """ + Returns a schema that matches a bytes value, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.bytes_schema(max_length=10, min_length=2) + v = SchemaValidator(schema) + assert v.validate_python(b'hello') == b'hello' + ``` + + Args: + max_length: The value must be at most this length + min_length: The value must be at least this length + strict: Whether the value should be a bytes or a value that can be converted to a bytes + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='bytes', + max_length=max_length, + min_length=min_length, + strict=strict, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class DateSchema(TypedDict, total=False): + type: Required[Literal['date']] + strict: bool + le: date + ge: date + lt: date + gt: date + now_op: Literal['past', 'future'] + # defaults to current local utc offset from `time.localtime().tm_gmtoff` + # value is restricted to -86_400 < offset < 86_400: + now_utc_offset: int + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def date_schema( + *, + strict: bool | None = None, + le: date | None = None, + ge: date | None = None, + lt: date | None = None, + gt: date | None = None, + now_op: Literal['past', 'future'] | None = None, + now_utc_offset: int | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> DateSchema: + """ + Returns a schema that matches a date value, e.g.: + + ```py + from datetime import date + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.date_schema(le=date(2020, 1, 1), ge=date(2019, 1, 1)) + v = SchemaValidator(schema) + assert v.validate_python(date(2019, 6, 1)) == date(2019, 6, 1) + ``` + + Args: + strict: Whether the value should be a date or a value that can be converted to a date + le: The value must be less than or equal to this date + ge: The value must be greater than or equal to this date + lt: The value must be strictly less than this date + gt: The value must be strictly greater than this date + now_op: The value must be in the past or future relative to the current date + now_utc_offset: The value must be in the past or future relative to the current date with this utc offset + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='date', + strict=strict, + le=le, + ge=ge, + lt=lt, + gt=gt, + now_op=now_op, + now_utc_offset=now_utc_offset, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class TimeSchema(TypedDict, total=False): + type: Required[Literal['time']] + strict: bool + le: time + ge: time + lt: time + gt: time + tz_constraint: Union[Literal['aware', 'naive'], int] + microseconds_precision: Literal['truncate', 'error'] + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def time_schema( + *, + strict: bool | None = None, + le: time | None = None, + ge: time | None = None, + lt: time | None = None, + gt: time | None = None, + tz_constraint: Literal['aware', 'naive'] | int | None = None, + microseconds_precision: Literal['truncate', 'error'] = 'truncate', + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> TimeSchema: + """ + Returns a schema that matches a time value, e.g.: + + ```py + from datetime import time + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.time_schema(le=time(12, 0, 0), ge=time(6, 0, 0)) + v = SchemaValidator(schema) + assert v.validate_python(time(9, 0, 0)) == time(9, 0, 0) + ``` + + Args: + strict: Whether the value should be a time or a value that can be converted to a time + le: The value must be less than or equal to this time + ge: The value must be greater than or equal to this time + lt: The value must be strictly less than this time + gt: The value must be strictly greater than this time + tz_constraint: The value must be timezone aware or naive, or an int to indicate required tz offset + microseconds_precision: The behavior when seconds have more than 6 digits or microseconds is too large + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='time', + strict=strict, + le=le, + ge=ge, + lt=lt, + gt=gt, + tz_constraint=tz_constraint, + microseconds_precision=microseconds_precision, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class DatetimeSchema(TypedDict, total=False): + type: Required[Literal['datetime']] + strict: bool + le: datetime + ge: datetime + lt: datetime + gt: datetime + now_op: Literal['past', 'future'] + tz_constraint: Union[Literal['aware', 'naive'], int] + # defaults to current local utc offset from `time.localtime().tm_gmtoff` + # value is restricted to -86_400 < offset < 86_400 by bounds in generate_self_schema.py + now_utc_offset: int + microseconds_precision: Literal['truncate', 'error'] # default: 'truncate' + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def datetime_schema( + *, + strict: bool | None = None, + le: datetime | None = None, + ge: datetime | None = None, + lt: datetime | None = None, + gt: datetime | None = None, + now_op: Literal['past', 'future'] | None = None, + tz_constraint: Literal['aware', 'naive'] | int | None = None, + now_utc_offset: int | None = None, + microseconds_precision: Literal['truncate', 'error'] = 'truncate', + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> DatetimeSchema: + """ + Returns a schema that matches a datetime value, e.g.: + + ```py + from datetime import datetime + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.datetime_schema() + v = SchemaValidator(schema) + now = datetime.now() + assert v.validate_python(str(now)) == now + ``` + + Args: + strict: Whether the value should be a datetime or a value that can be converted to a datetime + le: The value must be less than or equal to this datetime + ge: The value must be greater than or equal to this datetime + lt: The value must be strictly less than this datetime + gt: The value must be strictly greater than this datetime + now_op: The value must be in the past or future relative to the current datetime + tz_constraint: The value must be timezone aware or naive, or an int to indicate required tz offset + TODO: use of a tzinfo where offset changes based on the datetime is not yet supported + now_utc_offset: The value must be in the past or future relative to the current datetime with this utc offset + microseconds_precision: The behavior when seconds have more than 6 digits or microseconds is too large + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='datetime', + strict=strict, + le=le, + ge=ge, + lt=lt, + gt=gt, + now_op=now_op, + tz_constraint=tz_constraint, + now_utc_offset=now_utc_offset, + microseconds_precision=microseconds_precision, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class TimedeltaSchema(TypedDict, total=False): + type: Required[Literal['timedelta']] + strict: bool + le: timedelta + ge: timedelta + lt: timedelta + gt: timedelta + microseconds_precision: Literal['truncate', 'error'] + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def timedelta_schema( + *, + strict: bool | None = None, + le: timedelta | None = None, + ge: timedelta | None = None, + lt: timedelta | None = None, + gt: timedelta | None = None, + microseconds_precision: Literal['truncate', 'error'] = 'truncate', + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> TimedeltaSchema: + """ + Returns a schema that matches a timedelta value, e.g.: + + ```py + from datetime import timedelta + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.timedelta_schema(le=timedelta(days=1), ge=timedelta(days=0)) + v = SchemaValidator(schema) + assert v.validate_python(timedelta(hours=12)) == timedelta(hours=12) + ``` + + Args: + strict: Whether the value should be a timedelta or a value that can be converted to a timedelta + le: The value must be less than or equal to this timedelta + ge: The value must be greater than or equal to this timedelta + lt: The value must be strictly less than this timedelta + gt: The value must be strictly greater than this timedelta + microseconds_precision: The behavior when seconds have more than 6 digits or microseconds is too large + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='timedelta', + strict=strict, + le=le, + ge=ge, + lt=lt, + gt=gt, + microseconds_precision=microseconds_precision, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class LiteralSchema(TypedDict, total=False): + type: Required[Literal['literal']] + expected: Required[list[Any]] + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def literal_schema( + expected: list[Any], + *, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> LiteralSchema: + """ + Returns a schema that matches a literal value, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.literal_schema(['hello', 'world']) + v = SchemaValidator(schema) + assert v.validate_python('hello') == 'hello' + ``` + + Args: + expected: The value must be one of these values + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none(type='literal', expected=expected, ref=ref, metadata=metadata, serialization=serialization) + + +class EnumSchema(TypedDict, total=False): + type: Required[Literal['enum']] + cls: Required[Any] + members: Required[list[Any]] + sub_type: Literal['str', 'int', 'float'] + missing: Callable[[Any], Any] + strict: bool + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def enum_schema( + cls: Any, + members: list[Any], + *, + sub_type: Literal['str', 'int', 'float'] | None = None, + missing: Callable[[Any], Any] | None = None, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> EnumSchema: + """ + Returns a schema that matches an enum value, e.g.: + + ```py + from enum import Enum + from pydantic_core import SchemaValidator, core_schema + + class Color(Enum): + RED = 1 + GREEN = 2 + BLUE = 3 + + schema = core_schema.enum_schema(Color, list(Color.__members__.values())) + v = SchemaValidator(schema) + assert v.validate_python(2) is Color.GREEN + ``` + + Args: + cls: The enum class + members: The members of the enum, generally `list(MyEnum.__members__.values())` + sub_type: The type of the enum, either 'str' or 'int' or None for plain enums + missing: A function to use when the value is not found in the enum, from `_missing_` + strict: Whether to use strict mode, defaults to False + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='enum', + cls=cls, + members=members, + sub_type=sub_type, + missing=missing, + strict=strict, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class MissingSentinelSchema(TypedDict, total=False): + type: Required[Literal['missing-sentinel']] + metadata: dict[str, Any] + serialization: SerSchema + + +def missing_sentinel_schema( + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> MissingSentinelSchema: + """Returns a schema for the `MISSING` sentinel.""" + + return _dict_not_none( + type='missing-sentinel', + metadata=metadata, + serialization=serialization, + ) + + +# must match input/parse_json.rs::JsonType::try_from +JsonType = Literal['null', 'bool', 'int', 'float', 'str', 'list', 'dict'] + + +class IsInstanceSchema(TypedDict, total=False): + type: Required[Literal['is-instance']] + cls: Required[Any] + cls_repr: str + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def is_instance_schema( + cls: Any, + *, + cls_repr: str | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> IsInstanceSchema: + """ + Returns a schema that checks if a value is an instance of a class, equivalent to python's `isinstance` method, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + class A: + pass + + schema = core_schema.is_instance_schema(cls=A) + v = SchemaValidator(schema) + v.validate_python(A()) + ``` + + Args: + cls: The value must be an instance of this class + cls_repr: If provided this string is used in the validator name instead of `repr(cls)` + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='is-instance', cls=cls, cls_repr=cls_repr, ref=ref, metadata=metadata, serialization=serialization + ) + + +class IsSubclassSchema(TypedDict, total=False): + type: Required[Literal['is-subclass']] + cls: Required[type[Any]] + cls_repr: str + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def is_subclass_schema( + cls: type[Any], + *, + cls_repr: str | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> IsInstanceSchema: + """ + Returns a schema that checks if a value is a subtype of a class, equivalent to python's `issubclass` method, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + class A: + pass + + class B(A): + pass + + schema = core_schema.is_subclass_schema(cls=A) + v = SchemaValidator(schema) + v.validate_python(B) + ``` + + Args: + cls: The value must be a subclass of this class + cls_repr: If provided this string is used in the validator name instead of `repr(cls)` + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='is-subclass', cls=cls, cls_repr=cls_repr, ref=ref, metadata=metadata, serialization=serialization + ) + + +class CallableSchema(TypedDict, total=False): + type: Required[Literal['callable']] + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def callable_schema( + *, ref: str | None = None, metadata: dict[str, Any] | None = None, serialization: SerSchema | None = None +) -> CallableSchema: + """ + Returns a schema that checks if a value is callable, equivalent to python's `callable` method, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.callable_schema() + v = SchemaValidator(schema) + v.validate_python(min) + ``` + + Args: + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none(type='callable', ref=ref, metadata=metadata, serialization=serialization) + + +class UuidSchema(TypedDict, total=False): + type: Required[Literal['uuid']] + version: Literal[1, 3, 4, 5, 7] + strict: bool + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def uuid_schema( + *, + version: Literal[1, 3, 4, 5, 6, 7, 8] | None = None, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> UuidSchema: + return _dict_not_none( + type='uuid', version=version, strict=strict, ref=ref, metadata=metadata, serialization=serialization + ) + + +class IncExSeqSerSchema(TypedDict, total=False): + type: Required[Literal['include-exclude-sequence']] + include: set[int] + exclude: set[int] + + +def filter_seq_schema(*, include: set[int] | None = None, exclude: set[int] | None = None) -> IncExSeqSerSchema: + return _dict_not_none(type='include-exclude-sequence', include=include, exclude=exclude) + + +IncExSeqOrElseSerSchema = Union[IncExSeqSerSchema, SerSchema] + + +class ListSchema(TypedDict, total=False): + type: Required[Literal['list']] + items_schema: CoreSchema + min_length: int + max_length: int + fail_fast: bool + strict: bool + ref: str + metadata: dict[str, Any] + serialization: IncExSeqOrElseSerSchema + + +def list_schema( + items_schema: CoreSchema | None = None, + *, + min_length: int | None = None, + max_length: int | None = None, + fail_fast: bool | None = None, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: IncExSeqOrElseSerSchema | None = None, +) -> ListSchema: + """ + Returns a schema that matches a list value, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.list_schema(core_schema.int_schema(), min_length=0, max_length=10) + v = SchemaValidator(schema) + assert v.validate_python(['4']) == [4] + ``` + + Args: + items_schema: The value must be a list of items that match this schema + min_length: The value must be a list with at least this many items + max_length: The value must be a list with at most this many items + fail_fast: Stop validation on the first error + strict: The value must be a list with exactly this many items + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='list', + items_schema=items_schema, + min_length=min_length, + max_length=max_length, + fail_fast=fail_fast, + strict=strict, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +# @deprecated('tuple_positional_schema is deprecated. Use pydantic_core.core_schema.tuple_schema instead.') +def tuple_positional_schema( + items_schema: list[CoreSchema], + *, + extras_schema: CoreSchema | None = None, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: IncExSeqOrElseSerSchema | None = None, +) -> TupleSchema: + """ + Returns a schema that matches a tuple of schemas, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.tuple_positional_schema( + [core_schema.int_schema(), core_schema.str_schema()] + ) + v = SchemaValidator(schema) + assert v.validate_python((1, 'hello')) == (1, 'hello') + ``` + + Args: + items_schema: The value must be a tuple with items that match these schemas + extras_schema: The value must be a tuple with items that match this schema + This was inspired by JSON schema's `prefixItems` and `items` fields. + In python's `typing.Tuple`, you can't specify a type for "extra" items -- they must all be the same type + if the length is variable. So this field won't be set from a `typing.Tuple` annotation on a pydantic model. + strict: The value must be a tuple with exactly this many items + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + if extras_schema is not None: + variadic_item_index = len(items_schema) + items_schema = items_schema + [extras_schema] + else: + variadic_item_index = None + return tuple_schema( + items_schema=items_schema, + variadic_item_index=variadic_item_index, + strict=strict, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +# @deprecated('tuple_variable_schema is deprecated. Use pydantic_core.core_schema.tuple_schema instead.') +def tuple_variable_schema( + items_schema: CoreSchema | None = None, + *, + min_length: int | None = None, + max_length: int | None = None, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: IncExSeqOrElseSerSchema | None = None, +) -> TupleSchema: + """ + Returns a schema that matches a tuple of a given schema, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.tuple_variable_schema( + items_schema=core_schema.int_schema(), min_length=0, max_length=10 + ) + v = SchemaValidator(schema) + assert v.validate_python(('1', 2, 3)) == (1, 2, 3) + ``` + + Args: + items_schema: The value must be a tuple with items that match this schema + min_length: The value must be a tuple with at least this many items + max_length: The value must be a tuple with at most this many items + strict: The value must be a tuple with exactly this many items + ref: Optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return tuple_schema( + items_schema=[items_schema or any_schema()], + variadic_item_index=0, + min_length=min_length, + max_length=max_length, + strict=strict, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class TupleSchema(TypedDict, total=False): + type: Required[Literal['tuple']] + items_schema: Required[list[CoreSchema]] + variadic_item_index: int + min_length: int + max_length: int + fail_fast: bool + strict: bool + ref: str + metadata: dict[str, Any] + serialization: IncExSeqOrElseSerSchema + + +def tuple_schema( + items_schema: list[CoreSchema], + *, + variadic_item_index: int | None = None, + min_length: int | None = None, + max_length: int | None = None, + fail_fast: bool | None = None, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: IncExSeqOrElseSerSchema | None = None, +) -> TupleSchema: + """ + Returns a schema that matches a tuple of schemas, with an optional variadic item, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.tuple_schema( + [core_schema.int_schema(), core_schema.str_schema(), core_schema.float_schema()], + variadic_item_index=1, + ) + v = SchemaValidator(schema) + assert v.validate_python((1, 'hello', 'world', 1.5)) == (1, 'hello', 'world', 1.5) + ``` + + Args: + items_schema: The value must be a tuple with items that match these schemas + variadic_item_index: The index of the schema in `items_schema` to be treated as variadic (following PEP 646) + min_length: The value must be a tuple with at least this many items + max_length: The value must be a tuple with at most this many items + fail_fast: Stop validation on the first error + strict: The value must be a tuple with exactly this many items + ref: Optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='tuple', + items_schema=items_schema, + variadic_item_index=variadic_item_index, + min_length=min_length, + max_length=max_length, + fail_fast=fail_fast, + strict=strict, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class SetSchema(TypedDict, total=False): + type: Required[Literal['set']] + items_schema: CoreSchema + min_length: int + max_length: int + fail_fast: bool + strict: bool + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def set_schema( + items_schema: CoreSchema | None = None, + *, + min_length: int | None = None, + max_length: int | None = None, + fail_fast: bool | None = None, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> SetSchema: + """ + Returns a schema that matches a set of a given schema, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.set_schema( + items_schema=core_schema.int_schema(), min_length=0, max_length=10 + ) + v = SchemaValidator(schema) + assert v.validate_python({1, '2', 3}) == {1, 2, 3} + ``` + + Args: + items_schema: The value must be a set with items that match this schema + min_length: The value must be a set with at least this many items + max_length: The value must be a set with at most this many items + fail_fast: Stop validation on the first error + strict: The value must be a set with exactly this many items + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='set', + items_schema=items_schema, + min_length=min_length, + max_length=max_length, + fail_fast=fail_fast, + strict=strict, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class FrozenSetSchema(TypedDict, total=False): + type: Required[Literal['frozenset']] + items_schema: CoreSchema + min_length: int + max_length: int + fail_fast: bool + strict: bool + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def frozenset_schema( + items_schema: CoreSchema | None = None, + *, + min_length: int | None = None, + max_length: int | None = None, + fail_fast: bool | None = None, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> FrozenSetSchema: + """ + Returns a schema that matches a frozenset of a given schema, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.frozenset_schema( + items_schema=core_schema.int_schema(), min_length=0, max_length=10 + ) + v = SchemaValidator(schema) + assert v.validate_python(frozenset(range(3))) == frozenset({0, 1, 2}) + ``` + + Args: + items_schema: The value must be a frozenset with items that match this schema + min_length: The value must be a frozenset with at least this many items + max_length: The value must be a frozenset with at most this many items + fail_fast: Stop validation on the first error + strict: The value must be a frozenset with exactly this many items + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='frozenset', + items_schema=items_schema, + min_length=min_length, + max_length=max_length, + fail_fast=fail_fast, + strict=strict, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class GeneratorSchema(TypedDict, total=False): + type: Required[Literal['generator']] + items_schema: CoreSchema + min_length: int + max_length: int + ref: str + metadata: dict[str, Any] + serialization: IncExSeqOrElseSerSchema + + +def generator_schema( + items_schema: CoreSchema | None = None, + *, + min_length: int | None = None, + max_length: int | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: IncExSeqOrElseSerSchema | None = None, +) -> GeneratorSchema: + """ + Returns a schema that matches a generator value, e.g.: + + ```py + from typing import Iterator + from pydantic_core import SchemaValidator, core_schema + + def gen() -> Iterator[int]: + yield 1 + + schema = core_schema.generator_schema(items_schema=core_schema.int_schema()) + v = SchemaValidator(schema) + v.validate_python(gen()) + ``` + + Unlike other types, validated generators do not raise ValidationErrors eagerly, + but instead will raise a ValidationError when a violating value is actually read from the generator. + This is to ensure that "validated" generators retain the benefit of lazy evaluation. + + Args: + items_schema: The value must be a generator with items that match this schema + min_length: The value must be a generator that yields at least this many items + max_length: The value must be a generator that yields at most this many items + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='generator', + items_schema=items_schema, + min_length=min_length, + max_length=max_length, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +IncExDict = set[Union[int, str]] + + +class IncExDictSerSchema(TypedDict, total=False): + type: Required[Literal['include-exclude-dict']] + include: IncExDict + exclude: IncExDict + + +def filter_dict_schema(*, include: IncExDict | None = None, exclude: IncExDict | None = None) -> IncExDictSerSchema: + return _dict_not_none(type='include-exclude-dict', include=include, exclude=exclude) + + +IncExDictOrElseSerSchema = Union[IncExDictSerSchema, SerSchema] + + +class DictSchema(TypedDict, total=False): + type: Required[Literal['dict']] + keys_schema: CoreSchema # default: AnySchema + values_schema: CoreSchema # default: AnySchema + min_length: int + max_length: int + fail_fast: bool + strict: bool + ref: str + metadata: dict[str, Any] + serialization: IncExDictOrElseSerSchema + + +def dict_schema( + keys_schema: CoreSchema | None = None, + values_schema: CoreSchema | None = None, + *, + min_length: int | None = None, + max_length: int | None = None, + fail_fast: bool | None = None, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> DictSchema: + """ + Returns a schema that matches a dict value, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.dict_schema( + keys_schema=core_schema.str_schema(), values_schema=core_schema.int_schema() + ) + v = SchemaValidator(schema) + assert v.validate_python({'a': '1', 'b': 2}) == {'a': 1, 'b': 2} + ``` + + Args: + keys_schema: The value must be a dict with keys that match this schema + values_schema: The value must be a dict with values that match this schema + min_length: The value must be a dict with at least this many items + max_length: The value must be a dict with at most this many items + fail_fast: Stop validation on the first error + strict: Whether the keys and values should be validated with strict mode + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='dict', + keys_schema=keys_schema, + values_schema=values_schema, + min_length=min_length, + max_length=max_length, + fail_fast=fail_fast, + strict=strict, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +# (input_value: Any, /) -> Any +NoInfoValidatorFunction = Callable[[Any], Any] + + +class NoInfoValidatorFunctionSchema(TypedDict): + type: Literal['no-info'] + function: NoInfoValidatorFunction + + +# (input_value: Any, info: ValidationInfo, /) -> Any +WithInfoValidatorFunction = Callable[[Any, ValidationInfo[Any]], Any] + + +class WithInfoValidatorFunctionSchema(TypedDict, total=False): + type: Required[Literal['with-info']] + function: Required[WithInfoValidatorFunction] + field_name: str # deprecated + + +ValidationFunction = Union[NoInfoValidatorFunctionSchema, WithInfoValidatorFunctionSchema] + + +class _ValidatorFunctionSchema(TypedDict, total=False): + function: Required[ValidationFunction] + schema: Required[CoreSchema] + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +class BeforeValidatorFunctionSchema(_ValidatorFunctionSchema, total=False): + type: Required[Literal['function-before']] + json_schema_input_schema: CoreSchema + + +def no_info_before_validator_function( + function: NoInfoValidatorFunction, + schema: CoreSchema, + *, + ref: str | None = None, + json_schema_input_schema: CoreSchema | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> BeforeValidatorFunctionSchema: + """ + Returns a schema that calls a validator function before validating, no `info` argument is provided, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + def fn(v: bytes) -> str: + return v.decode() + 'world' + + func_schema = core_schema.no_info_before_validator_function( + function=fn, schema=core_schema.str_schema() + ) + schema = core_schema.typed_dict_schema({'a': core_schema.typed_dict_field(func_schema)}) + + v = SchemaValidator(schema) + assert v.validate_python({'a': b'hello '}) == {'a': 'hello world'} + ``` + + Args: + function: The validator function to call + schema: The schema to validate the output of the validator function + ref: optional unique identifier of the schema, used to reference the schema in other places + json_schema_input_schema: The core schema to be used to generate the corresponding JSON Schema input type + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='function-before', + function={'type': 'no-info', 'function': function}, + schema=schema, + ref=ref, + json_schema_input_schema=json_schema_input_schema, + metadata=metadata, + serialization=serialization, + ) + + +def with_info_before_validator_function( + function: WithInfoValidatorFunction, + schema: CoreSchema, + *, + field_name: str | None = None, + ref: str | None = None, + json_schema_input_schema: CoreSchema | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> BeforeValidatorFunctionSchema: + """ + Returns a schema that calls a validator function before validation, the function is called with + an `info` argument, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + def fn(v: bytes, info: core_schema.ValidationInfo) -> str: + assert info.data is not None + assert info.field_name is not None + return v.decode() + 'world' + + func_schema = core_schema.with_info_before_validator_function( + function=fn, schema=core_schema.str_schema() + ) + schema = core_schema.typed_dict_schema({'a': core_schema.typed_dict_field(func_schema)}) + + v = SchemaValidator(schema) + assert v.validate_python({'a': b'hello '}) == {'a': 'hello world'} + ``` + + Args: + function: The validator function to call + field_name: The name of the field this validator is applied to, if any (deprecated) + schema: The schema to validate the output of the validator function + ref: optional unique identifier of the schema, used to reference the schema in other places + json_schema_input_schema: The core schema to be used to generate the corresponding JSON Schema input type + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + if field_name is not None: + warnings.warn( + 'The `field_name` argument on `with_info_before_validator_function` is deprecated, it will be passed to the function through `ValidationState` instead.', + DeprecationWarning, + stacklevel=2, + ) + + return _dict_not_none( + type='function-before', + function=_dict_not_none(type='with-info', function=function, field_name=field_name), + schema=schema, + ref=ref, + json_schema_input_schema=json_schema_input_schema, + metadata=metadata, + serialization=serialization, + ) + + +class AfterValidatorFunctionSchema(_ValidatorFunctionSchema, total=False): + type: Required[Literal['function-after']] + + +def no_info_after_validator_function( + function: NoInfoValidatorFunction, + schema: CoreSchema, + *, + ref: str | None = None, + json_schema_input_schema: CoreSchema | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> AfterValidatorFunctionSchema: + """ + Returns a schema that calls a validator function after validating, no `info` argument is provided, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + def fn(v: str) -> str: + return v + 'world' + + func_schema = core_schema.no_info_after_validator_function(fn, core_schema.str_schema()) + schema = core_schema.typed_dict_schema({'a': core_schema.typed_dict_field(func_schema)}) + + v = SchemaValidator(schema) + assert v.validate_python({'a': b'hello '}) == {'a': 'hello world'} + ``` + + Args: + function: The validator function to call after the schema is validated + schema: The schema to validate before the validator function + ref: optional unique identifier of the schema, used to reference the schema in other places + json_schema_input_schema: The core schema to be used to generate the corresponding JSON Schema input type + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='function-after', + function={'type': 'no-info', 'function': function}, + schema=schema, + ref=ref, + json_schema_input_schema=json_schema_input_schema, + metadata=metadata, + serialization=serialization, + ) + + +def with_info_after_validator_function( + function: WithInfoValidatorFunction, + schema: CoreSchema, + *, + field_name: str | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> AfterValidatorFunctionSchema: + """ + Returns a schema that calls a validator function after validation, the function is called with + an `info` argument, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + def fn(v: str, info: core_schema.ValidationInfo) -> str: + assert info.data is not None + assert info.field_name is not None + return v + 'world' + + func_schema = core_schema.with_info_after_validator_function( + function=fn, schema=core_schema.str_schema() + ) + schema = core_schema.typed_dict_schema({'a': core_schema.typed_dict_field(func_schema)}) + + v = SchemaValidator(schema) + assert v.validate_python({'a': b'hello '}) == {'a': 'hello world'} + ``` + + Args: + function: The validator function to call after the schema is validated + schema: The schema to validate before the validator function + field_name: The name of the field this validator is applied to, if any (deprecated) + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + if field_name is not None: + warnings.warn( + 'The `field_name` argument on `with_info_after_validator_function` is deprecated, it will be passed to the function through `ValidationState` instead.', + DeprecationWarning, + stacklevel=2, + ) + + return _dict_not_none( + type='function-after', + function=_dict_not_none(type='with-info', function=function, field_name=field_name), + schema=schema, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class ValidatorFunctionWrapHandler(Protocol): + def __call__(self, input_value: Any, outer_location: str | int | None = None, /) -> Any: # pragma: no cover + ... + + +# (input_value: Any, validator: ValidatorFunctionWrapHandler, /) -> Any +NoInfoWrapValidatorFunction = Callable[[Any, ValidatorFunctionWrapHandler], Any] + + +class NoInfoWrapValidatorFunctionSchema(TypedDict): + type: Literal['no-info'] + function: NoInfoWrapValidatorFunction + + +# (input_value: Any, validator: ValidatorFunctionWrapHandler, info: ValidationInfo, /) -> Any +WithInfoWrapValidatorFunction = Callable[[Any, ValidatorFunctionWrapHandler, ValidationInfo[Any]], Any] + + +class WithInfoWrapValidatorFunctionSchema(TypedDict, total=False): + type: Required[Literal['with-info']] + function: Required[WithInfoWrapValidatorFunction] + field_name: str # deprecated + + +WrapValidatorFunction = Union[NoInfoWrapValidatorFunctionSchema, WithInfoWrapValidatorFunctionSchema] + + +class WrapValidatorFunctionSchema(TypedDict, total=False): + type: Required[Literal['function-wrap']] + function: Required[WrapValidatorFunction] + schema: Required[CoreSchema] + ref: str + json_schema_input_schema: CoreSchema + metadata: dict[str, Any] + serialization: SerSchema + + +def no_info_wrap_validator_function( + function: NoInfoWrapValidatorFunction, + schema: CoreSchema, + *, + ref: str | None = None, + json_schema_input_schema: CoreSchema | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> WrapValidatorFunctionSchema: + """ + Returns a schema which calls a function with a `validator` callable argument which can + optionally be used to call inner validation with the function logic, this is much like the + "onion" implementation of middleware in many popular web frameworks, no `info` argument is passed, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + def fn( + v: str, + validator: core_schema.ValidatorFunctionWrapHandler, + ) -> str: + return validator(input_value=v) + 'world' + + schema = core_schema.no_info_wrap_validator_function( + function=fn, schema=core_schema.str_schema() + ) + v = SchemaValidator(schema) + assert v.validate_python('hello ') == 'hello world' + ``` + + Args: + function: The validator function to call + schema: The schema to validate the output of the validator function + ref: optional unique identifier of the schema, used to reference the schema in other places + json_schema_input_schema: The core schema to be used to generate the corresponding JSON Schema input type + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='function-wrap', + function={'type': 'no-info', 'function': function}, + schema=schema, + json_schema_input_schema=json_schema_input_schema, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +def with_info_wrap_validator_function( + function: WithInfoWrapValidatorFunction, + schema: CoreSchema, + *, + field_name: str | None = None, + json_schema_input_schema: CoreSchema | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> WrapValidatorFunctionSchema: + """ + Returns a schema which calls a function with a `validator` callable argument which can + optionally be used to call inner validation with the function logic, this is much like the + "onion" implementation of middleware in many popular web frameworks, an `info` argument is also passed, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + def fn( + v: str, + validator: core_schema.ValidatorFunctionWrapHandler, + info: core_schema.ValidationInfo, + ) -> str: + return validator(input_value=v) + 'world' + + schema = core_schema.with_info_wrap_validator_function( + function=fn, schema=core_schema.str_schema() + ) + v = SchemaValidator(schema) + assert v.validate_python('hello ') == 'hello world' + ``` + + Args: + function: The validator function to call + schema: The schema to validate the output of the validator function + field_name: The name of the field this validator is applied to, if any (deprecated) + json_schema_input_schema: The core schema to be used to generate the corresponding JSON Schema input type + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + if field_name is not None: + warnings.warn( + 'The `field_name` argument on `with_info_wrap_validator_function` is deprecated, it will be passed to the function through `ValidationState` instead.', + DeprecationWarning, + stacklevel=2, + ) + + return _dict_not_none( + type='function-wrap', + function=_dict_not_none(type='with-info', function=function, field_name=field_name), + schema=schema, + json_schema_input_schema=json_schema_input_schema, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class PlainValidatorFunctionSchema(TypedDict, total=False): + type: Required[Literal['function-plain']] + function: Required[ValidationFunction] + ref: str + json_schema_input_schema: CoreSchema + metadata: dict[str, Any] + serialization: SerSchema + + +def no_info_plain_validator_function( + function: NoInfoValidatorFunction, + *, + ref: str | None = None, + json_schema_input_schema: CoreSchema | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> PlainValidatorFunctionSchema: + """ + Returns a schema that uses the provided function for validation, no `info` argument is passed, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + def fn(v: str) -> str: + assert 'hello' in v + return v + 'world' + + schema = core_schema.no_info_plain_validator_function(function=fn) + v = SchemaValidator(schema) + assert v.validate_python('hello ') == 'hello world' + ``` + + Args: + function: The validator function to call + ref: optional unique identifier of the schema, used to reference the schema in other places + json_schema_input_schema: The core schema to be used to generate the corresponding JSON Schema input type + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='function-plain', + function={'type': 'no-info', 'function': function}, + ref=ref, + json_schema_input_schema=json_schema_input_schema, + metadata=metadata, + serialization=serialization, + ) + + +def with_info_plain_validator_function( + function: WithInfoValidatorFunction, + *, + field_name: str | None = None, + ref: str | None = None, + json_schema_input_schema: CoreSchema | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> PlainValidatorFunctionSchema: + """ + Returns a schema that uses the provided function for validation, an `info` argument is passed, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + def fn(v: str, info: core_schema.ValidationInfo) -> str: + assert 'hello' in v + return v + 'world' + + schema = core_schema.with_info_plain_validator_function(function=fn) + v = SchemaValidator(schema) + assert v.validate_python('hello ') == 'hello world' + ``` + + Args: + function: The validator function to call + field_name: The name of the field this validator is applied to, if any (deprecated) + ref: optional unique identifier of the schema, used to reference the schema in other places + json_schema_input_schema: The core schema to be used to generate the corresponding JSON Schema input type + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + if field_name is not None: + warnings.warn( + 'The `field_name` argument on `with_info_plain_validator_function` is deprecated, it will be passed to the function through `ValidationState` instead.', + DeprecationWarning, + stacklevel=2, + ) + + return _dict_not_none( + type='function-plain', + function=_dict_not_none(type='with-info', function=function, field_name=field_name), + ref=ref, + json_schema_input_schema=json_schema_input_schema, + metadata=metadata, + serialization=serialization, + ) + + +class WithDefaultSchema(TypedDict, total=False): + type: Required[Literal['default']] + schema: Required[CoreSchema] + default: Any + default_factory: Union[Callable[[], Any], Callable[[dict[str, Any]], Any]] + default_factory_takes_data: bool + on_error: Literal['raise', 'omit', 'default'] # default: 'raise' + validate_default: bool # default: False + strict: bool + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def with_default_schema( + schema: CoreSchema, + *, + default: Any = PydanticUndefined, + default_factory: Union[Callable[[], Any], Callable[[dict[str, Any]], Any], None] = None, + default_factory_takes_data: bool | None = None, + on_error: Literal['raise', 'omit', 'default'] | None = None, + validate_default: bool | None = None, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> WithDefaultSchema: + """ + Returns a schema that adds a default value to the given schema, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.with_default_schema(core_schema.str_schema(), default='hello') + wrapper_schema = core_schema.typed_dict_schema( + {'a': core_schema.typed_dict_field(schema)} + ) + v = SchemaValidator(wrapper_schema) + assert v.validate_python({}) == v.validate_python({'a': 'hello'}) + ``` + + Args: + schema: The schema to add a default value to + default: The default value to use + default_factory: A callable that returns the default value to use + default_factory_takes_data: Whether the default factory takes a validated data argument + on_error: What to do if the schema validation fails. One of 'raise', 'omit', 'default' + validate_default: Whether the default value should be validated + strict: Whether the underlying schema should be validated with strict mode + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + s = _dict_not_none( + type='default', + schema=schema, + default_factory=default_factory, + default_factory_takes_data=default_factory_takes_data, + on_error=on_error, + validate_default=validate_default, + strict=strict, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + if default is not PydanticUndefined: + s['default'] = default + return s + + +class NullableSchema(TypedDict, total=False): + type: Required[Literal['nullable']] + schema: Required[CoreSchema] + strict: bool + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def nullable_schema( + schema: CoreSchema, + *, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> NullableSchema: + """ + Returns a schema that matches a nullable value, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.nullable_schema(core_schema.str_schema()) + v = SchemaValidator(schema) + assert v.validate_python(None) is None + ``` + + Args: + schema: The schema to wrap + strict: Whether the underlying schema should be validated with strict mode + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='nullable', schema=schema, strict=strict, ref=ref, metadata=metadata, serialization=serialization + ) + + +class UnionSchema(TypedDict, total=False): + type: Required[Literal['union']] + choices: Required[list[Union[CoreSchema, tuple[CoreSchema, str]]]] + # default true, whether to automatically collapse unions with one element to the inner validator + auto_collapse: bool + custom_error_type: str + custom_error_message: str + custom_error_context: dict[str, Union[str, int, float]] + mode: Literal['smart', 'left_to_right'] # default: 'smart' + strict: bool + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def union_schema( + choices: list[CoreSchema | tuple[CoreSchema, str]], + *, + auto_collapse: bool | None = None, + custom_error_type: str | None = None, + custom_error_message: str | None = None, + custom_error_context: dict[str, str | int] | None = None, + mode: Literal['smart', 'left_to_right'] | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> UnionSchema: + """ + Returns a schema that matches a union value, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.union_schema([core_schema.str_schema(), core_schema.int_schema()]) + v = SchemaValidator(schema) + assert v.validate_python('hello') == 'hello' + assert v.validate_python(1) == 1 + ``` + + Args: + choices: The schemas to match. If a tuple, the second item is used as the label for the case. + auto_collapse: whether to automatically collapse unions with one element to the inner validator, default true + custom_error_type: The custom error type to use if the validation fails + custom_error_message: The custom error message to use if the validation fails + custom_error_context: The custom error context to use if the validation fails + mode: How to select which choice to return + * `smart` (default) will try to return the choice which is the closest match to the input value + * `left_to_right` will return the first choice in `choices` which succeeds validation + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='union', + choices=choices, + auto_collapse=auto_collapse, + custom_error_type=custom_error_type, + custom_error_message=custom_error_message, + custom_error_context=custom_error_context, + mode=mode, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class TaggedUnionSchema(TypedDict, total=False): + type: Required[Literal['tagged-union']] + choices: Required[dict[Hashable, CoreSchema]] + discriminator: Required[Union[str, list[Union[str, int]], list[list[Union[str, int]]], Callable[[Any], Hashable]]] + custom_error_type: str + custom_error_message: str + custom_error_context: dict[str, Union[str, int, float]] + strict: bool + from_attributes: bool # default: True + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def tagged_union_schema( + choices: dict[Any, CoreSchema], + discriminator: str | list[str | int] | list[list[str | int]] | Callable[[Any], Any], + *, + custom_error_type: str | None = None, + custom_error_message: str | None = None, + custom_error_context: dict[str, int | str | float] | None = None, + strict: bool | None = None, + from_attributes: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> TaggedUnionSchema: + """ + Returns a schema that matches a tagged union value, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + apple_schema = core_schema.typed_dict_schema( + { + 'foo': core_schema.typed_dict_field(core_schema.str_schema()), + 'bar': core_schema.typed_dict_field(core_schema.int_schema()), + } + ) + banana_schema = core_schema.typed_dict_schema( + { + 'foo': core_schema.typed_dict_field(core_schema.str_schema()), + 'spam': core_schema.typed_dict_field( + core_schema.list_schema(items_schema=core_schema.int_schema()) + ), + } + ) + schema = core_schema.tagged_union_schema( + choices={ + 'apple': apple_schema, + 'banana': banana_schema, + }, + discriminator='foo', + ) + v = SchemaValidator(schema) + assert v.validate_python({'foo': 'apple', 'bar': '123'}) == {'foo': 'apple', 'bar': 123} + assert v.validate_python({'foo': 'banana', 'spam': [1, 2, 3]}) == { + 'foo': 'banana', + 'spam': [1, 2, 3], + } + ``` + + Args: + choices: The schemas to match + When retrieving a schema from `choices` using the discriminator value, if the value is a str, + it should be fed back into the `choices` map until a schema is obtained + (This approach is to prevent multiple ownership of a single schema in Rust) + discriminator: The discriminator to use to determine the schema to use + * If `discriminator` is a str, it is the name of the attribute to use as the discriminator + * If `discriminator` is a list of int/str, it should be used as a "path" to access the discriminator + * If `discriminator` is a list of lists, each inner list is a path, and the first path that exists is used + * If `discriminator` is a callable, it should return the discriminator when called on the value to validate; + the callable can return `None` to indicate that there is no matching discriminator present on the input + custom_error_type: The custom error type to use if the validation fails + custom_error_message: The custom error message to use if the validation fails + custom_error_context: The custom error context to use if the validation fails + strict: Whether the underlying schemas should be validated with strict mode + from_attributes: Whether to use the attributes of the object to retrieve the discriminator value + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='tagged-union', + choices=choices, + discriminator=discriminator, + custom_error_type=custom_error_type, + custom_error_message=custom_error_message, + custom_error_context=custom_error_context, + strict=strict, + from_attributes=from_attributes, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class ChainSchema(TypedDict, total=False): + type: Required[Literal['chain']] + steps: Required[list[CoreSchema]] + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def chain_schema( + steps: list[CoreSchema], + *, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> ChainSchema: + """ + Returns a schema that chains the provided validation schemas, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + def fn(v: str, info: core_schema.ValidationInfo) -> str: + assert 'hello' in v + return v + ' world' + + fn_schema = core_schema.with_info_plain_validator_function(function=fn) + schema = core_schema.chain_schema( + [fn_schema, fn_schema, fn_schema, core_schema.str_schema()] + ) + v = SchemaValidator(schema) + assert v.validate_python('hello') == 'hello world world world' + ``` + + Args: + steps: The schemas to chain + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none(type='chain', steps=steps, ref=ref, metadata=metadata, serialization=serialization) + + +class LaxOrStrictSchema(TypedDict, total=False): + type: Required[Literal['lax-or-strict']] + lax_schema: Required[CoreSchema] + strict_schema: Required[CoreSchema] + strict: bool + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def lax_or_strict_schema( + lax_schema: CoreSchema, + strict_schema: CoreSchema, + *, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> LaxOrStrictSchema: + """ + Returns a schema that uses the lax or strict schema, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + def fn(v: str, info: core_schema.ValidationInfo) -> str: + assert 'hello' in v + return v + ' world' + + lax_schema = core_schema.int_schema(strict=False) + strict_schema = core_schema.int_schema(strict=True) + + schema = core_schema.lax_or_strict_schema( + lax_schema=lax_schema, strict_schema=strict_schema, strict=True + ) + v = SchemaValidator(schema) + assert v.validate_python(123) == 123 + + schema = core_schema.lax_or_strict_schema( + lax_schema=lax_schema, strict_schema=strict_schema, strict=False + ) + v = SchemaValidator(schema) + assert v.validate_python('123') == 123 + ``` + + Args: + lax_schema: The lax schema to use + strict_schema: The strict schema to use + strict: Whether the strict schema should be used + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='lax-or-strict', + lax_schema=lax_schema, + strict_schema=strict_schema, + strict=strict, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class JsonOrPythonSchema(TypedDict, total=False): + type: Required[Literal['json-or-python']] + json_schema: Required[CoreSchema] + python_schema: Required[CoreSchema] + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def json_or_python_schema( + json_schema: CoreSchema, + python_schema: CoreSchema, + *, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> JsonOrPythonSchema: + """ + Returns a schema that uses the Json or Python schema depending on the input: + + ```py + from pydantic_core import SchemaValidator, ValidationError, core_schema + + v = SchemaValidator( + core_schema.json_or_python_schema( + json_schema=core_schema.int_schema(), + python_schema=core_schema.int_schema(strict=True), + ) + ) + + assert v.validate_json('"123"') == 123 + + try: + v.validate_python('123') + except ValidationError: + pass + else: + raise AssertionError('Validation should have failed') + ``` + + Args: + json_schema: The schema to use for Json inputs + python_schema: The schema to use for Python inputs + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='json-or-python', + json_schema=json_schema, + python_schema=python_schema, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class TypedDictField(TypedDict, total=False): + type: Required[Literal['typed-dict-field']] + schema: Required[CoreSchema] + required: bool + validation_alias: Union[str, list[Union[str, int]], list[list[Union[str, int]]]] + serialization_alias: str + serialization_exclude: bool # default: False + metadata: dict[str, Any] + serialization_exclude_if: Callable[[Any], bool] # default None + + +def typed_dict_field( + schema: CoreSchema, + *, + required: bool | None = None, + validation_alias: str | list[str | int] | list[list[str | int]] | None = None, + serialization_alias: str | None = None, + serialization_exclude: bool | None = None, + metadata: dict[str, Any] | None = None, + serialization_exclude_if: Callable[[Any], bool] | None = None, +) -> TypedDictField: + """ + Returns a schema that matches a typed dict field, e.g.: + + ```py + from pydantic_core import core_schema + + field = core_schema.typed_dict_field(schema=core_schema.int_schema(), required=True) + ``` + + Args: + schema: The schema to use for the field + required: Whether the field is required, otherwise uses the value from `total` on the typed dict + validation_alias: The alias(es) to use to find the field in the validation data + serialization_alias: The alias to use as a key when serializing + serialization_exclude: Whether to exclude the field when serializing + serialization_exclude_if: A callable that determines whether to exclude the field when serializing based on its value. + metadata: Any other information you want to include with the schema, not used by pydantic-core + """ + return _dict_not_none( + type='typed-dict-field', + schema=schema, + required=required, + validation_alias=validation_alias, + serialization_alias=serialization_alias, + serialization_exclude=serialization_exclude, + serialization_exclude_if=serialization_exclude_if, + metadata=metadata, + ) + + +class TypedDictSchema(TypedDict, total=False): + type: Required[Literal['typed-dict']] + fields: Required[dict[str, TypedDictField]] + cls: type[Any] + cls_name: str + computed_fields: list[ComputedField] + strict: bool + extras_schema: CoreSchema + # all these values can be set via config, equivalent fields have `typed_dict_` prefix + extra_behavior: ExtraBehavior + total: bool # default: True + ref: str + metadata: dict[str, Any] + serialization: SerSchema + config: CoreConfig + + +def typed_dict_schema( + fields: dict[str, TypedDictField], + *, + cls: type[Any] | None = None, + cls_name: str | None = None, + computed_fields: list[ComputedField] | None = None, + strict: bool | None = None, + extras_schema: CoreSchema | None = None, + extra_behavior: ExtraBehavior | None = None, + total: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, + config: CoreConfig | None = None, +) -> TypedDictSchema: + """ + Returns a schema that matches a typed dict, e.g.: + + ```py + from typing_extensions import TypedDict + + from pydantic_core import SchemaValidator, core_schema + + class MyTypedDict(TypedDict): + a: str + + wrapper_schema = core_schema.typed_dict_schema( + {'a': core_schema.typed_dict_field(core_schema.str_schema())}, cls=MyTypedDict + ) + v = SchemaValidator(wrapper_schema) + assert v.validate_python({'a': 'hello'}) == {'a': 'hello'} + ``` + + Args: + fields: The fields to use for the typed dict + cls: The class to use for the typed dict + cls_name: The name to use in error locations. Falls back to `cls.__name__`, or the validator name if no class + is provided. + computed_fields: Computed fields to use when serializing the model, only applies when directly inside a model + strict: Whether the typed dict is strict + extras_schema: The extra validator to use for the typed dict + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + extra_behavior: The extra behavior to use for the typed dict + total: Whether the typed dict is total, otherwise uses `typed_dict_total` from config + serialization: Custom serialization schema + """ + return _dict_not_none( + type='typed-dict', + fields=fields, + cls=cls, + cls_name=cls_name, + computed_fields=computed_fields, + strict=strict, + extras_schema=extras_schema, + extra_behavior=extra_behavior, + total=total, + ref=ref, + metadata=metadata, + serialization=serialization, + config=config, + ) + + +class ModelField(TypedDict, total=False): + type: Required[Literal['model-field']] + schema: Required[CoreSchema] + validation_alias: Union[str, list[Union[str, int]], list[list[Union[str, int]]]] + serialization_alias: str + serialization_exclude: bool # default: False + serialization_exclude_if: Callable[[Any], bool] # default: None + frozen: bool + metadata: dict[str, Any] + + +def model_field( + schema: CoreSchema, + *, + validation_alias: str | list[str | int] | list[list[str | int]] | None = None, + serialization_alias: str | None = None, + serialization_exclude: bool | None = None, + serialization_exclude_if: Callable[[Any], bool] | None = None, + frozen: bool | None = None, + metadata: dict[str, Any] | None = None, +) -> ModelField: + """ + Returns a schema for a model field, e.g.: + + ```py + from pydantic_core import core_schema + + field = core_schema.model_field(schema=core_schema.int_schema()) + ``` + + Args: + schema: The schema to use for the field + validation_alias: The alias(es) to use to find the field in the validation data + serialization_alias: The alias to use as a key when serializing + serialization_exclude: Whether to exclude the field when serializing + serialization_exclude_if: A Callable that determines whether to exclude a field during serialization based on its value. + frozen: Whether the field is frozen + metadata: Any other information you want to include with the schema, not used by pydantic-core + """ + return _dict_not_none( + type='model-field', + schema=schema, + validation_alias=validation_alias, + serialization_alias=serialization_alias, + serialization_exclude=serialization_exclude, + serialization_exclude_if=serialization_exclude_if, + frozen=frozen, + metadata=metadata, + ) + + +class ModelFieldsSchema(TypedDict, total=False): + type: Required[Literal['model-fields']] + fields: Required[dict[str, ModelField]] + model_name: str + computed_fields: list[ComputedField] + strict: bool + extras_schema: CoreSchema + extras_keys_schema: CoreSchema + extra_behavior: ExtraBehavior + from_attributes: bool + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def model_fields_schema( + fields: dict[str, ModelField], + *, + model_name: str | None = None, + computed_fields: list[ComputedField] | None = None, + strict: bool | None = None, + extras_schema: CoreSchema | None = None, + extras_keys_schema: CoreSchema | None = None, + extra_behavior: ExtraBehavior | None = None, + from_attributes: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> ModelFieldsSchema: + """ + Returns a schema that matches the fields of a Pydantic model, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + wrapper_schema = core_schema.model_fields_schema( + {'a': core_schema.model_field(core_schema.str_schema())} + ) + v = SchemaValidator(wrapper_schema) + print(v.validate_python({'a': 'hello'})) + #> ({'a': 'hello'}, None, {'a'}) + ``` + + Args: + fields: The fields of the model + model_name: The name of the model, used for error messages, defaults to "Model" + computed_fields: Computed fields to use when serializing the model, only applies when directly inside a model + strict: Whether the model is strict + extras_schema: The schema to use when validating extra input data + extras_keys_schema: The schema to use when validating the keys of extra input data + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + extra_behavior: The extra behavior to use for the model fields + from_attributes: Whether the model fields should be populated from attributes + serialization: Custom serialization schema + """ + return _dict_not_none( + type='model-fields', + fields=fields, + model_name=model_name, + computed_fields=computed_fields, + strict=strict, + extras_schema=extras_schema, + extras_keys_schema=extras_keys_schema, + extra_behavior=extra_behavior, + from_attributes=from_attributes, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class ModelSchema(TypedDict, total=False): + type: Required[Literal['model']] + cls: Required[type[Any]] + generic_origin: type[Any] + schema: Required[CoreSchema] + custom_init: bool + root_model: bool + post_init: str + revalidate_instances: Literal['always', 'never', 'subclass-instances'] # default: 'never' + strict: bool + frozen: bool + extra_behavior: ExtraBehavior + config: CoreConfig + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def model_schema( + cls: type[Any], + schema: CoreSchema, + *, + generic_origin: type[Any] | None = None, + custom_init: bool | None = None, + root_model: bool | None = None, + post_init: str | None = None, + revalidate_instances: Literal['always', 'never', 'subclass-instances'] | None = None, + strict: bool | None = None, + frozen: bool | None = None, + extra_behavior: ExtraBehavior | None = None, + config: CoreConfig | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> ModelSchema: + """ + A model schema generally contains a typed-dict schema. + It will run the typed dict validator, then create a new class + and set the dict and fields set returned from the typed dict validator + to `__dict__` and `__pydantic_fields_set__` respectively. + + Example: + + ```py + from pydantic_core import CoreConfig, SchemaValidator, core_schema + + class MyModel: + __slots__ = ( + '__dict__', + '__pydantic_fields_set__', + '__pydantic_extra__', + '__pydantic_private__', + ) + + schema = core_schema.model_schema( + cls=MyModel, + config=CoreConfig(str_max_length=5), + schema=core_schema.model_fields_schema( + fields={'a': core_schema.model_field(core_schema.str_schema())}, + ), + ) + v = SchemaValidator(schema) + assert v.isinstance_python({'a': 'hello'}) is True + assert v.isinstance_python({'a': 'too long'}) is False + ``` + + Args: + cls: The class to use for the model + schema: The schema to use for the model + generic_origin: The origin type used for this model, if it's a parametrized generic. Ex, + if this model schema represents `SomeModel[int]`, generic_origin is `SomeModel` + custom_init: Whether the model has a custom init method + root_model: Whether the model is a `RootModel` + post_init: The call after init to use for the model + revalidate_instances: whether instances of models and dataclasses (including subclass instances) + should re-validate defaults to config.revalidate_instances, else 'never' + strict: Whether the model is strict + frozen: Whether the model is frozen + extra_behavior: The extra behavior to use for the model, used in serialization + config: The config to use for the model + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='model', + cls=cls, + generic_origin=generic_origin, + schema=schema, + custom_init=custom_init, + root_model=root_model, + post_init=post_init, + revalidate_instances=revalidate_instances, + strict=strict, + frozen=frozen, + extra_behavior=extra_behavior, + config=config, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class DataclassField(TypedDict, total=False): + type: Required[Literal['dataclass-field']] + name: Required[str] + schema: Required[CoreSchema] + kw_only: bool # default: True + init: bool # default: True + init_only: bool # default: False + frozen: bool # default: False + validation_alias: Union[str, list[Union[str, int]], list[list[Union[str, int]]]] + serialization_alias: str + serialization_exclude: bool # default: False + metadata: dict[str, Any] + serialization_exclude_if: Callable[[Any], bool] # default: None + + +def dataclass_field( + name: str, + schema: CoreSchema, + *, + kw_only: bool | None = None, + init: bool | None = None, + init_only: bool | None = None, + validation_alias: str | list[str | int] | list[list[str | int]] | None = None, + serialization_alias: str | None = None, + serialization_exclude: bool | None = None, + metadata: dict[str, Any] | None = None, + serialization_exclude_if: Callable[[Any], bool] | None = None, + frozen: bool | None = None, +) -> DataclassField: + """ + Returns a schema for a dataclass field, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + field = core_schema.dataclass_field( + name='a', schema=core_schema.str_schema(), kw_only=False + ) + schema = core_schema.dataclass_args_schema('Foobar', [field]) + v = SchemaValidator(schema) + assert v.validate_python({'a': 'hello'}) == ({'a': 'hello'}, None) + ``` + + Args: + name: The name to use for the argument parameter + schema: The schema to use for the argument parameter + kw_only: Whether the field can be set with a positional argument as well as a keyword argument + init: Whether the field should be validated during initialization + init_only: Whether the field should be omitted from `__dict__` and passed to `__post_init__` + validation_alias: The alias(es) to use to find the field in the validation data + serialization_alias: The alias to use as a key when serializing + serialization_exclude: Whether to exclude the field when serializing + serialization_exclude_if: A callable that determines whether to exclude the field when serializing based on its value. + metadata: Any other information you want to include with the schema, not used by pydantic-core + frozen: Whether the field is frozen + """ + return _dict_not_none( + type='dataclass-field', + name=name, + schema=schema, + kw_only=kw_only, + init=init, + init_only=init_only, + validation_alias=validation_alias, + serialization_alias=serialization_alias, + serialization_exclude=serialization_exclude, + serialization_exclude_if=serialization_exclude_if, + metadata=metadata, + frozen=frozen, + ) + + +class DataclassArgsSchema(TypedDict, total=False): + type: Required[Literal['dataclass-args']] + dataclass_name: Required[str] + fields: Required[list[DataclassField]] + computed_fields: list[ComputedField] + collect_init_only: bool # default: False + ref: str + metadata: dict[str, Any] + serialization: SerSchema + extra_behavior: ExtraBehavior + + +def dataclass_args_schema( + dataclass_name: str, + fields: list[DataclassField], + *, + computed_fields: list[ComputedField] | None = None, + collect_init_only: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, + extra_behavior: ExtraBehavior | None = None, +) -> DataclassArgsSchema: + """ + Returns a schema for validating dataclass arguments, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + field_a = core_schema.dataclass_field( + name='a', schema=core_schema.str_schema(), kw_only=False + ) + field_b = core_schema.dataclass_field( + name='b', schema=core_schema.bool_schema(), kw_only=False + ) + schema = core_schema.dataclass_args_schema('Foobar', [field_a, field_b]) + v = SchemaValidator(schema) + assert v.validate_python({'a': 'hello', 'b': True}) == ({'a': 'hello', 'b': True}, None) + ``` + + Args: + dataclass_name: The name of the dataclass being validated + fields: The fields to use for the dataclass + computed_fields: Computed fields to use when serializing the dataclass + collect_init_only: Whether to collect init only fields into a dict to pass to `__post_init__` + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + extra_behavior: How to handle extra fields + """ + return _dict_not_none( + type='dataclass-args', + dataclass_name=dataclass_name, + fields=fields, + computed_fields=computed_fields, + collect_init_only=collect_init_only, + ref=ref, + metadata=metadata, + serialization=serialization, + extra_behavior=extra_behavior, + ) + + +class DataclassSchema(TypedDict, total=False): + type: Required[Literal['dataclass']] + cls: Required[type[Any]] + generic_origin: type[Any] + schema: Required[CoreSchema] + fields: Required[list[str]] + cls_name: str + post_init: bool # default: False + revalidate_instances: Literal['always', 'never', 'subclass-instances'] # default: 'never' + strict: bool # default: False + frozen: bool # default False + ref: str + metadata: dict[str, Any] + serialization: SerSchema + slots: bool + config: CoreConfig + + +def dataclass_schema( + cls: type[Any], + schema: CoreSchema, + fields: list[str], + *, + generic_origin: type[Any] | None = None, + cls_name: str | None = None, + post_init: bool | None = None, + revalidate_instances: Literal['always', 'never', 'subclass-instances'] | None = None, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, + frozen: bool | None = None, + slots: bool | None = None, + config: CoreConfig | None = None, +) -> DataclassSchema: + """ + Returns a schema for a dataclass. As with `ModelSchema`, this schema can only be used as a field within + another schema, not as the root type. + + Args: + cls: The dataclass type, used to perform subclass checks + schema: The schema to use for the dataclass fields + fields: Fields of the dataclass, this is used in serialization and in validation during re-validation + and while validating assignment + generic_origin: The origin type used for this dataclass, if it's a parametrized generic. Ex, + if this model schema represents `SomeDataclass[int]`, generic_origin is `SomeDataclass` + cls_name: The name to use in error locs, etc; this is useful for generics (default: `cls.__name__`) + post_init: Whether to call `__post_init__` after validation + revalidate_instances: whether instances of models and dataclasses (including subclass instances) + should re-validate defaults to config.revalidate_instances, else 'never' + strict: Whether to require an exact instance of `cls` + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + frozen: Whether the dataclass is frozen + slots: Whether `slots=True` on the dataclass, means each field is assigned independently, rather than + simply setting `__dict__`, default false + """ + return _dict_not_none( + type='dataclass', + cls=cls, + generic_origin=generic_origin, + fields=fields, + cls_name=cls_name, + schema=schema, + post_init=post_init, + revalidate_instances=revalidate_instances, + strict=strict, + ref=ref, + metadata=metadata, + serialization=serialization, + frozen=frozen, + slots=slots, + config=config, + ) + + +class ArgumentsParameter(TypedDict, total=False): + name: Required[str] + schema: Required[CoreSchema] + mode: Literal['positional_only', 'positional_or_keyword', 'keyword_only'] # default positional_or_keyword + alias: Union[str, list[Union[str, int]], list[list[Union[str, int]]]] + + +def arguments_parameter( + name: str, + schema: CoreSchema, + *, + mode: Literal['positional_only', 'positional_or_keyword', 'keyword_only'] | None = None, + alias: str | list[str | int] | list[list[str | int]] | None = None, +) -> ArgumentsParameter: + """ + Returns a schema that matches an argument parameter, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + param = core_schema.arguments_parameter( + name='a', schema=core_schema.str_schema(), mode='positional_only' + ) + schema = core_schema.arguments_schema([param]) + v = SchemaValidator(schema) + assert v.validate_python(('hello',)) == (('hello',), {}) + ``` + + Args: + name: The name to use for the argument parameter + schema: The schema to use for the argument parameter + mode: The mode to use for the argument parameter + alias: The alias to use for the argument parameter + """ + return _dict_not_none(name=name, schema=schema, mode=mode, alias=alias) + + +VarKwargsMode: TypeAlias = Literal['uniform', 'unpacked-typed-dict'] + + +class ArgumentsSchema(TypedDict, total=False): + type: Required[Literal['arguments']] + arguments_schema: Required[list[ArgumentsParameter]] + validate_by_name: bool + validate_by_alias: bool + var_args_schema: CoreSchema + var_kwargs_mode: VarKwargsMode + var_kwargs_schema: CoreSchema + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def arguments_schema( + arguments: list[ArgumentsParameter], + *, + validate_by_name: bool | None = None, + validate_by_alias: bool | None = None, + var_args_schema: CoreSchema | None = None, + var_kwargs_mode: VarKwargsMode | None = None, + var_kwargs_schema: CoreSchema | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> ArgumentsSchema: + """ + Returns a schema that matches an arguments schema, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + param_a = core_schema.arguments_parameter( + name='a', schema=core_schema.str_schema(), mode='positional_only' + ) + param_b = core_schema.arguments_parameter( + name='b', schema=core_schema.bool_schema(), mode='positional_only' + ) + schema = core_schema.arguments_schema([param_a, param_b]) + v = SchemaValidator(schema) + assert v.validate_python(('hello', True)) == (('hello', True), {}) + ``` + + Args: + arguments: The arguments to use for the arguments schema + validate_by_name: Whether to populate by the parameter names, defaults to `False`. + validate_by_alias: Whether to populate by the parameter aliases, defaults to `True`. + var_args_schema: The variable args schema to use for the arguments schema + var_kwargs_mode: The validation mode to use for variadic keyword arguments. If `'uniform'`, every value of the + keyword arguments will be validated against the `var_kwargs_schema` schema. If `'unpacked-typed-dict'`, + the `var_kwargs_schema` argument must be a [`typed_dict_schema`][pydantic_core.core_schema.typed_dict_schema] + var_kwargs_schema: The variable kwargs schema to use for the arguments schema + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='arguments', + arguments_schema=arguments, + validate_by_name=validate_by_name, + validate_by_alias=validate_by_alias, + var_args_schema=var_args_schema, + var_kwargs_mode=var_kwargs_mode, + var_kwargs_schema=var_kwargs_schema, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class ArgumentsV3Parameter(TypedDict, total=False): + name: Required[str] + schema: Required[CoreSchema] + mode: Literal[ + 'positional_only', + 'positional_or_keyword', + 'keyword_only', + 'var_args', + 'var_kwargs_uniform', + 'var_kwargs_unpacked_typed_dict', + ] # default positional_or_keyword + alias: Union[str, list[Union[str, int]], list[list[Union[str, int]]]] + + +def arguments_v3_parameter( + name: str, + schema: CoreSchema, + *, + mode: Literal[ + 'positional_only', + 'positional_or_keyword', + 'keyword_only', + 'var_args', + 'var_kwargs_uniform', + 'var_kwargs_unpacked_typed_dict', + ] + | None = None, + alias: str | list[str | int] | list[list[str | int]] | None = None, +) -> ArgumentsV3Parameter: + """ + Returns a schema that matches an argument parameter, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + param = core_schema.arguments_v3_parameter( + name='a', schema=core_schema.str_schema(), mode='positional_only' + ) + schema = core_schema.arguments_v3_schema([param]) + v = SchemaValidator(schema) + assert v.validate_python({'a': 'hello'}) == (('hello',), {}) + ``` + + Args: + name: The name to use for the argument parameter + schema: The schema to use for the argument parameter + mode: The mode to use for the argument parameter + alias: The alias to use for the argument parameter + """ + return _dict_not_none(name=name, schema=schema, mode=mode, alias=alias) + + +class ArgumentsV3Schema(TypedDict, total=False): + type: Required[Literal['arguments-v3']] + arguments_schema: Required[list[ArgumentsV3Parameter]] + validate_by_name: bool + validate_by_alias: bool + extra_behavior: Literal['forbid', 'ignore'] # 'allow' doesn't make sense here. + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def arguments_v3_schema( + arguments: list[ArgumentsV3Parameter], + *, + validate_by_name: bool | None = None, + validate_by_alias: bool | None = None, + extra_behavior: Literal['forbid', 'ignore'] | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> ArgumentsV3Schema: + """ + Returns a schema that matches an arguments schema, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + param_a = core_schema.arguments_v3_parameter( + name='a', schema=core_schema.str_schema(), mode='positional_only' + ) + param_b = core_schema.arguments_v3_parameter( + name='kwargs', schema=core_schema.bool_schema(), mode='var_kwargs_uniform' + ) + schema = core_schema.arguments_v3_schema([param_a, param_b]) + v = SchemaValidator(schema) + assert v.validate_python({'a': 'hi', 'kwargs': {'b': True}}) == (('hi',), {'b': True}) + ``` + + This schema is currently not used by other Pydantic components. In V3, it will most likely + become the default arguments schema for the `'call'` schema. + + Args: + arguments: The arguments to use for the arguments schema. + validate_by_name: Whether to populate by the parameter names, defaults to `False`. + validate_by_alias: Whether to populate by the parameter aliases, defaults to `True`. + extra_behavior: The extra behavior to use. + ref: optional unique identifier of the schema, used to reference the schema in other places. + metadata: Any other information you want to include with the schema, not used by pydantic-core. + serialization: Custom serialization schema. + """ + return _dict_not_none( + type='arguments-v3', + arguments_schema=arguments, + validate_by_name=validate_by_name, + validate_by_alias=validate_by_alias, + extra_behavior=extra_behavior, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class CallSchema(TypedDict, total=False): + type: Required[Literal['call']] + arguments_schema: Required[CoreSchema] + function: Required[Callable[..., Any]] + function_name: str # default function.__name__ + return_schema: CoreSchema + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def call_schema( + arguments: CoreSchema, + function: Callable[..., Any], + *, + function_name: str | None = None, + return_schema: CoreSchema | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> CallSchema: + """ + Returns a schema that matches an arguments schema, then calls a function, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + param_a = core_schema.arguments_parameter( + name='a', schema=core_schema.str_schema(), mode='positional_only' + ) + param_b = core_schema.arguments_parameter( + name='b', schema=core_schema.bool_schema(), mode='positional_only' + ) + args_schema = core_schema.arguments_schema([param_a, param_b]) + + schema = core_schema.call_schema( + arguments=args_schema, + function=lambda a, b: a + str(not b), + return_schema=core_schema.str_schema(), + ) + v = SchemaValidator(schema) + assert v.validate_python((('hello', True))) == 'helloFalse' + ``` + + Args: + arguments: The arguments to use for the arguments schema + function: The function to use for the call schema + function_name: The function name to use for the call schema, if not provided `function.__name__` is used + return_schema: The return schema to use for the call schema + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='call', + arguments_schema=arguments, + function=function, + function_name=function_name, + return_schema=return_schema, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class CustomErrorSchema(TypedDict, total=False): + type: Required[Literal['custom-error']] + schema: Required[CoreSchema] + custom_error_type: Required[str] + custom_error_message: str + custom_error_context: dict[str, Union[str, int, float]] + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def custom_error_schema( + schema: CoreSchema, + custom_error_type: str, + *, + custom_error_message: str | None = None, + custom_error_context: dict[str, Any] | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> CustomErrorSchema: + """ + Returns a schema that matches a custom error value, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.custom_error_schema( + schema=core_schema.int_schema(), + custom_error_type='MyError', + custom_error_message='Error msg', + ) + v = SchemaValidator(schema) + v.validate_python(1) + ``` + + Args: + schema: The schema to use for the custom error schema + custom_error_type: The custom error type to use for the custom error schema + custom_error_message: The custom error message to use for the custom error schema + custom_error_context: The custom error context to use for the custom error schema + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='custom-error', + schema=schema, + custom_error_type=custom_error_type, + custom_error_message=custom_error_message, + custom_error_context=custom_error_context, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class JsonSchema(TypedDict, total=False): + type: Required[Literal['json']] + schema: CoreSchema + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def json_schema( + schema: CoreSchema | None = None, + *, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> JsonSchema: + """ + Returns a schema that matches a JSON value, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + dict_schema = core_schema.model_fields_schema( + { + 'field_a': core_schema.model_field(core_schema.str_schema()), + 'field_b': core_schema.model_field(core_schema.bool_schema()), + }, + ) + + class MyModel: + __slots__ = ( + '__dict__', + '__pydantic_fields_set__', + '__pydantic_extra__', + '__pydantic_private__', + ) + field_a: str + field_b: bool + + json_schema = core_schema.json_schema(schema=dict_schema) + schema = core_schema.model_schema(cls=MyModel, schema=json_schema) + v = SchemaValidator(schema) + m = v.validate_python('{"field_a": "hello", "field_b": true}') + assert isinstance(m, MyModel) + ``` + + Args: + schema: The schema to use for the JSON schema + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none(type='json', schema=schema, ref=ref, metadata=metadata, serialization=serialization) + + +class UrlSchema(TypedDict, total=False): + type: Required[Literal['url']] + max_length: int + allowed_schemes: list[str] + host_required: bool # default False + default_host: str + default_port: int + default_path: str + strict: bool + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def url_schema( + *, + max_length: int | None = None, + allowed_schemes: list[str] | None = None, + host_required: bool | None = None, + default_host: str | None = None, + default_port: int | None = None, + default_path: str | None = None, + preserve_empty_path: bool | None = None, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> UrlSchema: + """ + Returns a schema that matches a URL value, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.url_schema() + v = SchemaValidator(schema) + print(v.validate_python('https://example.com')) + #> https://example.com/ + ``` + + Args: + max_length: The maximum length of the URL + allowed_schemes: The allowed URL schemes + host_required: Whether the URL must have a host + default_host: The default host to use if the URL does not have a host + default_port: The default port to use if the URL does not have a port + default_path: The default path to use if the URL does not have a path + preserve_empty_path: Whether to preserve an empty path or convert it to '/', default False + strict: Whether to use strict URL parsing + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='url', + max_length=max_length, + allowed_schemes=allowed_schemes, + host_required=host_required, + default_host=default_host, + default_port=default_port, + default_path=default_path, + preserve_empty_path=preserve_empty_path, + strict=strict, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class MultiHostUrlSchema(TypedDict, total=False): + type: Required[Literal['multi-host-url']] + max_length: int + allowed_schemes: list[str] + host_required: bool # default False + default_host: str + default_port: int + default_path: str + strict: bool + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def multi_host_url_schema( + *, + max_length: int | None = None, + allowed_schemes: list[str] | None = None, + host_required: bool | None = None, + default_host: str | None = None, + default_port: int | None = None, + default_path: str | None = None, + preserve_empty_path: bool | None = None, + strict: bool | None = None, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> MultiHostUrlSchema: + """ + Returns a schema that matches a URL value with possibly multiple hosts, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.multi_host_url_schema() + v = SchemaValidator(schema) + print(v.validate_python('redis://localhost,0.0.0.0,127.0.0.1')) + #> redis://localhost,0.0.0.0,127.0.0.1 + ``` + + Args: + max_length: The maximum length of the URL + allowed_schemes: The allowed URL schemes + host_required: Whether the URL must have a host + default_host: The default host to use if the URL does not have a host + default_port: The default port to use if the URL does not have a port + default_path: The default path to use if the URL does not have a path + preserve_empty_path: Whether to preserve an empty path or convert it to '/', default False + strict: Whether to use strict URL parsing + ref: optional unique identifier of the schema, used to reference the schema in other places + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='multi-host-url', + max_length=max_length, + allowed_schemes=allowed_schemes, + host_required=host_required, + default_host=default_host, + default_port=default_port, + default_path=default_path, + preserve_empty_path=preserve_empty_path, + strict=strict, + ref=ref, + metadata=metadata, + serialization=serialization, + ) + + +class DefinitionsSchema(TypedDict, total=False): + type: Required[Literal['definitions']] + schema: Required[CoreSchema] + definitions: Required[list[CoreSchema]] + metadata: dict[str, Any] + serialization: SerSchema + + +def definitions_schema(schema: CoreSchema, definitions: list[CoreSchema]) -> DefinitionsSchema: + """ + Build a schema that contains both an inner schema and a list of definitions which can be used + within the inner schema. + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema = core_schema.definitions_schema( + core_schema.list_schema(core_schema.definition_reference_schema('foobar')), + [core_schema.int_schema(ref='foobar')], + ) + v = SchemaValidator(schema) + assert v.validate_python([1, 2, '3']) == [1, 2, 3] + ``` + + Args: + schema: The inner schema + definitions: List of definitions which can be referenced within inner schema + """ + return DefinitionsSchema(type='definitions', schema=schema, definitions=definitions) + + +class DefinitionReferenceSchema(TypedDict, total=False): + type: Required[Literal['definition-ref']] + schema_ref: Required[str] + ref: str + metadata: dict[str, Any] + serialization: SerSchema + + +def definition_reference_schema( + schema_ref: str, + ref: str | None = None, + metadata: dict[str, Any] | None = None, + serialization: SerSchema | None = None, +) -> DefinitionReferenceSchema: + """ + Returns a schema that points to a schema stored in "definitions", this is useful for nested recursive + models and also when you want to define validators separately from the main schema, e.g.: + + ```py + from pydantic_core import SchemaValidator, core_schema + + schema_definition = core_schema.definition_reference_schema('list-schema') + schema = core_schema.definitions_schema( + schema=schema_definition, + definitions=[ + core_schema.list_schema(items_schema=schema_definition, ref='list-schema'), + ], + ) + v = SchemaValidator(schema) + assert v.validate_python([()]) == [[]] + ``` + + Args: + schema_ref: The schema ref to use for the definition reference schema + metadata: Any other information you want to include with the schema, not used by pydantic-core + serialization: Custom serialization schema + """ + return _dict_not_none( + type='definition-ref', schema_ref=schema_ref, ref=ref, metadata=metadata, serialization=serialization + ) + + +MYPY = False +# See https://github.com/python/mypy/issues/14034 for details, in summary mypy is extremely slow to process this +# union which kills performance not just for pydantic, but even for code using pydantic +if not MYPY: + CoreSchema = Union[ + InvalidSchema, + AnySchema, + NoneSchema, + BoolSchema, + IntSchema, + FloatSchema, + DecimalSchema, + StringSchema, + BytesSchema, + DateSchema, + TimeSchema, + DatetimeSchema, + TimedeltaSchema, + LiteralSchema, + MissingSentinelSchema, + EnumSchema, + IsInstanceSchema, + IsSubclassSchema, + CallableSchema, + ListSchema, + TupleSchema, + SetSchema, + FrozenSetSchema, + GeneratorSchema, + DictSchema, + AfterValidatorFunctionSchema, + BeforeValidatorFunctionSchema, + WrapValidatorFunctionSchema, + PlainValidatorFunctionSchema, + WithDefaultSchema, + NullableSchema, + UnionSchema, + TaggedUnionSchema, + ChainSchema, + LaxOrStrictSchema, + JsonOrPythonSchema, + TypedDictSchema, + ModelFieldsSchema, + ModelSchema, + DataclassArgsSchema, + DataclassSchema, + ArgumentsSchema, + ArgumentsV3Schema, + CallSchema, + CustomErrorSchema, + JsonSchema, + UrlSchema, + MultiHostUrlSchema, + DefinitionsSchema, + DefinitionReferenceSchema, + UuidSchema, + ComplexSchema, + ] +elif False: + CoreSchema: TypeAlias = Mapping[str, Any] + + +# to update this, call `pytest -k test_core_schema_type_literal` and copy the output +CoreSchemaType = Literal[ + 'invalid', + 'any', + 'none', + 'bool', + 'int', + 'float', + 'decimal', + 'str', + 'bytes', + 'date', + 'time', + 'datetime', + 'timedelta', + 'literal', + 'missing-sentinel', + 'enum', + 'is-instance', + 'is-subclass', + 'callable', + 'list', + 'tuple', + 'set', + 'frozenset', + 'generator', + 'dict', + 'function-after', + 'function-before', + 'function-wrap', + 'function-plain', + 'default', + 'nullable', + 'union', + 'tagged-union', + 'chain', + 'lax-or-strict', + 'json-or-python', + 'typed-dict', + 'model-fields', + 'model', + 'dataclass-args', + 'dataclass', + 'arguments', + 'arguments-v3', + 'call', + 'custom-error', + 'json', + 'url', + 'multi-host-url', + 'definitions', + 'definition-ref', + 'uuid', + 'complex', +] + +CoreSchemaFieldType = Literal['model-field', 'dataclass-field', 'typed-dict-field', 'computed-field'] + + +# used in _pydantic_core.pyi::PydanticKnownError +# to update this, call `pytest -k test_all_errors` and copy the output +ErrorType = Literal[ + 'no_such_attribute', + 'json_invalid', + 'json_type', + 'needs_python_object', + 'recursion_loop', + 'missing', + 'frozen_field', + 'frozen_instance', + 'extra_forbidden', + 'invalid_key', + 'get_attribute_error', + 'model_type', + 'model_attributes_type', + 'dataclass_type', + 'dataclass_exact_type', + 'default_factory_not_called', + 'none_required', + 'greater_than', + 'greater_than_equal', + 'less_than', + 'less_than_equal', + 'multiple_of', + 'finite_number', + 'too_short', + 'too_long', + 'iterable_type', + 'iteration_error', + 'string_type', + 'string_sub_type', + 'string_unicode', + 'string_too_short', + 'string_too_long', + 'string_pattern_mismatch', + 'enum', + 'dict_type', + 'mapping_type', + 'list_type', + 'tuple_type', + 'set_type', + 'set_item_not_hashable', + 'bool_type', + 'bool_parsing', + 'int_type', + 'int_parsing', + 'int_parsing_size', + 'int_from_float', + 'float_type', + 'float_parsing', + 'bytes_type', + 'bytes_too_short', + 'bytes_too_long', + 'bytes_invalid_encoding', + 'value_error', + 'assertion_error', + 'literal_error', + 'missing_sentinel_error', + 'date_type', + 'date_parsing', + 'date_from_datetime_parsing', + 'date_from_datetime_inexact', + 'date_past', + 'date_future', + 'time_type', + 'time_parsing', + 'datetime_type', + 'datetime_parsing', + 'datetime_object_invalid', + 'datetime_from_date_parsing', + 'datetime_past', + 'datetime_future', + 'timezone_naive', + 'timezone_aware', + 'timezone_offset', + 'time_delta_type', + 'time_delta_parsing', + 'frozen_set_type', + 'is_instance_of', + 'is_subclass_of', + 'callable_type', + 'union_tag_invalid', + 'union_tag_not_found', + 'arguments_type', + 'missing_argument', + 'unexpected_keyword_argument', + 'missing_keyword_only_argument', + 'unexpected_positional_argument', + 'missing_positional_only_argument', + 'multiple_argument_values', + 'url_type', + 'url_parsing', + 'url_syntax_violation', + 'url_too_long', + 'url_scheme', + 'uuid_type', + 'uuid_parsing', + 'uuid_version', + 'decimal_type', + 'decimal_parsing', + 'decimal_max_digits', + 'decimal_max_places', + 'decimal_whole_digits', + 'complex_type', + 'complex_str_parsing', +] + + +def _dict_not_none(**kwargs: Any) -> Any: + return {k: v for k, v in kwargs.items() if v is not None} + + +############################################################################### +# All this stuff is deprecated by #980 and will be removed eventually +# They're kept because some code external code will be using them + + +@deprecated('`field_before_validator_function` is deprecated, use `with_info_before_validator_function` instead.') +def field_before_validator_function(function: WithInfoValidatorFunction, field_name: str, schema: CoreSchema, **kwargs): + warnings.warn( + '`field_before_validator_function` is deprecated, use `with_info_before_validator_function` instead.', + DeprecationWarning, + ) + return with_info_before_validator_function(function, schema, field_name=field_name, **kwargs) + + +@deprecated('`general_before_validator_function` is deprecated, use `with_info_before_validator_function` instead.') +def general_before_validator_function(*args, **kwargs): + warnings.warn( + '`general_before_validator_function` is deprecated, use `with_info_before_validator_function` instead.', + DeprecationWarning, + ) + return with_info_before_validator_function(*args, **kwargs) + + +@deprecated('`field_after_validator_function` is deprecated, use `with_info_after_validator_function` instead.') +def field_after_validator_function(function: WithInfoValidatorFunction, field_name: str, schema: CoreSchema, **kwargs): + warnings.warn( + '`field_after_validator_function` is deprecated, use `with_info_after_validator_function` instead.', + DeprecationWarning, + ) + return with_info_after_validator_function(function, schema, field_name=field_name, **kwargs) + + +@deprecated('`general_after_validator_function` is deprecated, use `with_info_after_validator_function` instead.') +def general_after_validator_function(*args, **kwargs): + warnings.warn( + '`general_after_validator_function` is deprecated, use `with_info_after_validator_function` instead.', + DeprecationWarning, + ) + return with_info_after_validator_function(*args, **kwargs) + + +@deprecated('`field_wrap_validator_function` is deprecated, use `with_info_wrap_validator_function` instead.') +def field_wrap_validator_function( + function: WithInfoWrapValidatorFunction, field_name: str, schema: CoreSchema, **kwargs +): + warnings.warn( + '`field_wrap_validator_function` is deprecated, use `with_info_wrap_validator_function` instead.', + DeprecationWarning, + ) + return with_info_wrap_validator_function(function, schema, field_name=field_name, **kwargs) + + +@deprecated('`general_wrap_validator_function` is deprecated, use `with_info_wrap_validator_function` instead.') +def general_wrap_validator_function(*args, **kwargs): + warnings.warn( + '`general_wrap_validator_function` is deprecated, use `with_info_wrap_validator_function` instead.', + DeprecationWarning, + ) + return with_info_wrap_validator_function(*args, **kwargs) + + +@deprecated('`field_plain_validator_function` is deprecated, use `with_info_plain_validator_function` instead.') +def field_plain_validator_function(function: WithInfoValidatorFunction, field_name: str, **kwargs): + warnings.warn( + '`field_plain_validator_function` is deprecated, use `with_info_plain_validator_function` instead.', + DeprecationWarning, + ) + return with_info_plain_validator_function(function, field_name=field_name, **kwargs) + + +@deprecated('`general_plain_validator_function` is deprecated, use `with_info_plain_validator_function` instead.') +def general_plain_validator_function(*args, **kwargs): + warnings.warn( + '`general_plain_validator_function` is deprecated, use `with_info_plain_validator_function` instead.', + DeprecationWarning, + ) + return with_info_plain_validator_function(*args, **kwargs) + + +_deprecated_import_lookup = { + 'FieldValidationInfo': ValidationInfo, + 'FieldValidatorFunction': WithInfoValidatorFunction, + 'GeneralValidatorFunction': WithInfoValidatorFunction, + 'FieldWrapValidatorFunction': WithInfoWrapValidatorFunction, +} + +if TYPE_CHECKING: + FieldValidationInfo = ValidationInfo + + +def __getattr__(attr_name: str) -> object: + new_attr = _deprecated_import_lookup.get(attr_name) + if new_attr is None: + raise AttributeError(f"module 'pydantic_core' has no attribute '{attr_name}'") + else: + import warnings + + msg = f'`{attr_name}` is deprecated, use `{new_attr.__name__}` instead.' + warnings.warn(msg, DeprecationWarning, stacklevel=1) + return new_attr diff --git a/venv/lib/python3.11/site-packages/pydantic_core/py.typed b/venv/lib/python3.11/site-packages/pydantic_core/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/pydantic_settings-2.12.0.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/pydantic_settings-2.12.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings-2.12.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/pydantic_settings-2.12.0.dist-info/METADATA b/venv/lib/python3.11/site-packages/pydantic_settings-2.12.0.dist-info/METADATA new file mode 100644 index 0000000..c4cc523 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings-2.12.0.dist-info/METADATA @@ -0,0 +1,63 @@ +Metadata-Version: 2.4 +Name: pydantic-settings +Version: 2.12.0 +Summary: Settings management using Pydantic +Project-URL: Homepage, https://github.com/pydantic/pydantic-settings +Project-URL: Funding, https://github.com/sponsors/samuelcolvin +Project-URL: Source, https://github.com/pydantic/pydantic-settings +Project-URL: Changelog, https://github.com/pydantic/pydantic-settings/releases +Project-URL: Documentation, https://docs.pydantic.dev/dev-v2/concepts/pydantic_settings/ +Author-email: Samuel Colvin , Eric Jolibois , Hasan Ramezani +License-Expression: MIT +License-File: LICENSE +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Console +Classifier: Environment :: MacOS X +Classifier: Framework :: Pydantic +Classifier: Framework :: Pydantic :: 2 +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: Information Technology +Classifier: Intended Audience :: System Administrators +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: POSIX :: Linux +Classifier: Operating System :: Unix +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Topic :: Internet +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Requires-Python: >=3.10 +Requires-Dist: pydantic>=2.7.0 +Requires-Dist: python-dotenv>=0.21.0 +Requires-Dist: typing-inspection>=0.4.0 +Provides-Extra: aws-secrets-manager +Requires-Dist: boto3-stubs[secretsmanager]; extra == 'aws-secrets-manager' +Requires-Dist: boto3>=1.35.0; extra == 'aws-secrets-manager' +Provides-Extra: azure-key-vault +Requires-Dist: azure-identity>=1.16.0; extra == 'azure-key-vault' +Requires-Dist: azure-keyvault-secrets>=4.8.0; extra == 'azure-key-vault' +Provides-Extra: gcp-secret-manager +Requires-Dist: google-cloud-secret-manager>=2.23.1; extra == 'gcp-secret-manager' +Provides-Extra: toml +Requires-Dist: tomli>=2.0.1; extra == 'toml' +Provides-Extra: yaml +Requires-Dist: pyyaml>=6.0.1; extra == 'yaml' +Description-Content-Type: text/markdown + +# pydantic-settings + +[![CI](https://github.com/pydantic/pydantic-settings/actions/workflows/ci.yml/badge.svg?event=push)](https://github.com/pydantic/pydantic-settings/actions/workflows/ci.yml?query=branch%3Amain) +[![Coverage](https://codecov.io/gh/pydantic/pydantic-settings/branch/main/graph/badge.svg)](https://codecov.io/gh/pydantic/pydantic-settings) +[![pypi](https://img.shields.io/pypi/v/pydantic-settings.svg)](https://pypi.python.org/pypi/pydantic-settings) +[![license](https://img.shields.io/github/license/pydantic/pydantic-settings.svg)](https://github.com/pydantic/pydantic-settings/blob/main/LICENSE) +[![downloads](https://static.pepy.tech/badge/pydantic-settings/month)](https://pepy.tech/project/pydantic-settings) +[![versions](https://img.shields.io/pypi/pyversions/pydantic-settings.svg)](https://github.com/pydantic/pydantic-settings) + +Settings management using Pydantic. + +See [documentation](https://docs.pydantic.dev/latest/concepts/pydantic_settings/) for more details. diff --git a/venv/lib/python3.11/site-packages/pydantic_settings-2.12.0.dist-info/RECORD b/venv/lib/python3.11/site-packages/pydantic_settings-2.12.0.dist-info/RECORD new file mode 100644 index 0000000..c5134a3 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings-2.12.0.dist-info/RECORD @@ -0,0 +1,51 @@ +pydantic_settings-2.12.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +pydantic_settings-2.12.0.dist-info/METADATA,sha256=ZwA7n37dcacBKfB6O9UKO8GQndB-KiwNnPjDiEVfa5g,3395 +pydantic_settings-2.12.0.dist-info/RECORD,, +pydantic_settings-2.12.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pydantic_settings-2.12.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87 +pydantic_settings-2.12.0.dist-info/licenses/LICENSE,sha256=6zVadT4CA0bTPYO_l2kTW4n8YQVorFMaAcKVvO5_2Zg,1103 +pydantic_settings/__init__.py,sha256=bQEKG1eYCAoonAdGnFAGFQ_cLCI2zktBN4r-5Q7cWWo,1631 +pydantic_settings/__pycache__/__init__.cpython-311.pyc,, +pydantic_settings/__pycache__/exceptions.cpython-311.pyc,, +pydantic_settings/__pycache__/main.cpython-311.pyc,, +pydantic_settings/__pycache__/utils.cpython-311.pyc,, +pydantic_settings/__pycache__/version.cpython-311.pyc,, +pydantic_settings/exceptions.py,sha256=SHLrIBHeFltPMc8abiQxw-MGqEadlYI-VdLELiZtWPU,97 +pydantic_settings/main.py,sha256=Q797RSMLnH9lKIj6KrCjdUuISO7pDBWk5HSV3utOmqY,33800 +pydantic_settings/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pydantic_settings/sources/__init__.py,sha256=DygxTx9U023ZcP6bHQUruZATcoQ_GfdwciAxLeKzWso,2153 +pydantic_settings/sources/__pycache__/__init__.cpython-311.pyc,, +pydantic_settings/sources/__pycache__/base.cpython-311.pyc,, +pydantic_settings/sources/__pycache__/types.cpython-311.pyc,, +pydantic_settings/sources/__pycache__/utils.cpython-311.pyc,, +pydantic_settings/sources/base.py,sha256=q0yhgT056eWo_oi3gclum0XrYclfk9tPYmPOwAQiNtE,21985 +pydantic_settings/sources/providers/__init__.py,sha256=jBTurqBXeJvMfTl2lvHr2iDVDOvHfO-8PVNJiKt7MBk,1205 +pydantic_settings/sources/providers/__pycache__/__init__.cpython-311.pyc,, +pydantic_settings/sources/providers/__pycache__/aws.cpython-311.pyc,, +pydantic_settings/sources/providers/__pycache__/azure.cpython-311.pyc,, +pydantic_settings/sources/providers/__pycache__/cli.cpython-311.pyc,, +pydantic_settings/sources/providers/__pycache__/dotenv.cpython-311.pyc,, +pydantic_settings/sources/providers/__pycache__/env.cpython-311.pyc,, +pydantic_settings/sources/providers/__pycache__/gcp.cpython-311.pyc,, +pydantic_settings/sources/providers/__pycache__/json.cpython-311.pyc,, +pydantic_settings/sources/providers/__pycache__/nested_secrets.cpython-311.pyc,, +pydantic_settings/sources/providers/__pycache__/pyproject.cpython-311.pyc,, +pydantic_settings/sources/providers/__pycache__/secrets.cpython-311.pyc,, +pydantic_settings/sources/providers/__pycache__/toml.cpython-311.pyc,, +pydantic_settings/sources/providers/__pycache__/yaml.cpython-311.pyc,, +pydantic_settings/sources/providers/aws.py,sha256=dVHN1B1K1nzZGsnN6-YlFltnJFfyEil7w8Ywk3ro5po,2536 +pydantic_settings/sources/providers/azure.py,sha256=n1FCkokGe6wjJ3mIxbc64wUwa-njmmjDEgQkhRgN0Vo,4988 +pydantic_settings/sources/providers/cli.py,sha256=-2g9YUbK_kUjvDnhVwShJKosoxrQHFFXqIca8l-wM2Q,63290 +pydantic_settings/sources/providers/dotenv.py,sha256=X4fkql4sEyaEaK9WV1xUpxRAiJhMFvgj4DMODdUV_bA,5956 +pydantic_settings/sources/providers/env.py,sha256=m-CBaTaqDlKwvF5NqOeKXgCgFh_VROrGCGbLXVBVs3E,11758 +pydantic_settings/sources/providers/gcp.py,sha256=joyWpUJ8DKcwbp0StRJDiGCp28vS4qjABH0OfkhBpck,5628 +pydantic_settings/sources/providers/json.py,sha256=k0hWDu0fNLrI5z3zWTGtlKyR0xx-2pOPu-oWjwqmVXo,1436 +pydantic_settings/sources/providers/nested_secrets.py,sha256=9vpesWyl4fssfbcalPqjjoiCr1hvi1ikexFwH2UqgPo,6622 +pydantic_settings/sources/providers/pyproject.py,sha256=zSQsV3-jtZhiLm3YlrlYoE2__tZBazp0KjQyKLNyLr0,2052 +pydantic_settings/sources/providers/secrets.py,sha256=JLMIj3VVwp86foGTP8fb6zWddmYpELBu95Ldzobnsw8,4303 +pydantic_settings/sources/providers/toml.py,sha256=5k9wMJbKrUqXNiCM5G1hYnCOEZNUJJBTAzFw6Pv2K6A,1827 +pydantic_settings/sources/providers/yaml.py,sha256=mhjmOkrwLT16AEGNDuYoex2PYHejusn7Y0J4KL6SVbw,2305 +pydantic_settings/sources/types.py,sha256=O4AKfQMaHKkKvhf77p-1U2Nar0xfFtLRieTmGwG1bwQ,1478 +pydantic_settings/sources/utils.py,sha256=wrta6QxWMzENmly0lKqmgWUaUJnqCcIe2ff0bAiHJEs,7867 +pydantic_settings/utils.py,sha256=y2u_eIMdFy_RnvhRfNEcd9WS0fXpEqxfo6MAjHnkZCc,1271 +pydantic_settings/version.py,sha256=Vn5aHdUNWxrynfZZQ3eIDG8J73h_WTOAc7pkAbNV9oE,19 diff --git a/venv/lib/python3.11/site-packages/pydantic_settings-2.12.0.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/pydantic_settings-2.12.0.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/pydantic_settings-2.12.0.dist-info/WHEEL b/venv/lib/python3.11/site-packages/pydantic_settings-2.12.0.dist-info/WHEEL new file mode 100644 index 0000000..12228d4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings-2.12.0.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: hatchling 1.27.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/pydantic_settings-2.12.0.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/pydantic_settings-2.12.0.dist-info/licenses/LICENSE new file mode 100644 index 0000000..d90598f --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings-2.12.0.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2022 Samuel Colvin and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/__init__.py b/venv/lib/python3.11/site-packages/pydantic_settings/__init__.py new file mode 100644 index 0000000..9df7a63 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/__init__.py @@ -0,0 +1,65 @@ +from .exceptions import SettingsError +from .main import BaseSettings, CliApp, SettingsConfigDict +from .sources import ( + CLI_SUPPRESS, + AWSSecretsManagerSettingsSource, + AzureKeyVaultSettingsSource, + CliExplicitFlag, + CliImplicitFlag, + CliMutuallyExclusiveGroup, + CliPositionalArg, + CliSettingsSource, + CliSubCommand, + CliSuppress, + CliUnknownArgs, + DotEnvSettingsSource, + EnvSettingsSource, + ForceDecode, + GoogleSecretManagerSettingsSource, + InitSettingsSource, + JsonConfigSettingsSource, + NestedSecretsSettingsSource, + NoDecode, + PydanticBaseSettingsSource, + PyprojectTomlConfigSettingsSource, + SecretsSettingsSource, + TomlConfigSettingsSource, + YamlConfigSettingsSource, + get_subcommand, +) +from .version import VERSION + +__all__ = ( + 'CLI_SUPPRESS', + 'AWSSecretsManagerSettingsSource', + 'AzureKeyVaultSettingsSource', + 'BaseSettings', + 'CliApp', + 'CliExplicitFlag', + 'CliImplicitFlag', + 'CliMutuallyExclusiveGroup', + 'CliPositionalArg', + 'CliSettingsSource', + 'CliSubCommand', + 'CliSuppress', + 'CliUnknownArgs', + 'DotEnvSettingsSource', + 'EnvSettingsSource', + 'ForceDecode', + 'GoogleSecretManagerSettingsSource', + 'InitSettingsSource', + 'JsonConfigSettingsSource', + 'NestedSecretsSettingsSource', + 'NoDecode', + 'PydanticBaseSettingsSource', + 'PyprojectTomlConfigSettingsSource', + 'SecretsSettingsSource', + 'SettingsConfigDict', + 'SettingsError', + 'TomlConfigSettingsSource', + 'YamlConfigSettingsSource', + '__version__', + 'get_subcommand', +) + +__version__ = VERSION diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/exceptions.py b/venv/lib/python3.11/site-packages/pydantic_settings/exceptions.py new file mode 100644 index 0000000..90806c6 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/exceptions.py @@ -0,0 +1,4 @@ +class SettingsError(ValueError): + """Base exception for settings-related errors.""" + + pass diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/main.py b/venv/lib/python3.11/site-packages/pydantic_settings/main.py new file mode 100644 index 0000000..6085b90 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/main.py @@ -0,0 +1,717 @@ +from __future__ import annotations as _annotations + +import asyncio +import inspect +import threading +import warnings +from argparse import Namespace +from collections.abc import Mapping +from types import SimpleNamespace +from typing import Any, ClassVar, Literal, TypeVar + +from pydantic import ConfigDict +from pydantic._internal._config import config_keys +from pydantic._internal._signature import _field_name_for_signature +from pydantic._internal._utils import deep_update, is_model_class +from pydantic.dataclasses import is_pydantic_dataclass +from pydantic.main import BaseModel + +from .exceptions import SettingsError +from .sources import ( + ENV_FILE_SENTINEL, + CliSettingsSource, + DefaultSettingsSource, + DotEnvSettingsSource, + DotenvType, + EnvSettingsSource, + InitSettingsSource, + JsonConfigSettingsSource, + PathType, + PydanticBaseSettingsSource, + PydanticModel, + PyprojectTomlConfigSettingsSource, + SecretsSettingsSource, + TomlConfigSettingsSource, + YamlConfigSettingsSource, + get_subcommand, +) +from .sources.utils import _get_alias_names + +T = TypeVar('T') + + +class SettingsConfigDict(ConfigDict, total=False): + case_sensitive: bool + nested_model_default_partial_update: bool | None + env_prefix: str + env_file: DotenvType | None + env_file_encoding: str | None + env_ignore_empty: bool + env_nested_delimiter: str | None + env_nested_max_split: int | None + env_parse_none_str: str | None + env_parse_enums: bool | None + cli_prog_name: str | None + cli_parse_args: bool | list[str] | tuple[str, ...] | None + cli_parse_none_str: str | None + cli_hide_none_type: bool + cli_avoid_json: bool + cli_enforce_required: bool + cli_use_class_docs_for_groups: bool + cli_exit_on_error: bool + cli_prefix: str + cli_flag_prefix_char: str + cli_implicit_flags: bool | None + cli_ignore_unknown_args: bool | None + cli_kebab_case: bool | Literal['all', 'no_enums'] | None + cli_shortcuts: Mapping[str, str | list[str]] | None + secrets_dir: PathType | None + json_file: PathType | None + json_file_encoding: str | None + yaml_file: PathType | None + yaml_file_encoding: str | None + yaml_config_section: str | None + """ + Specifies the top-level key in a YAML file from which to load the settings. + If provided, the settings will be loaded from the nested section under this key. + This is useful when the YAML file contains multiple configuration sections + and you only want to load a specific subset into your settings model. + """ + + pyproject_toml_depth: int + """ + Number of levels **up** from the current working directory to attempt to find a pyproject.toml + file. + + This is only used when a pyproject.toml file is not found in the current working directory. + """ + + pyproject_toml_table_header: tuple[str, ...] + """ + Header of the TOML table within a pyproject.toml file to use when filling variables. + This is supplied as a `tuple[str, ...]` instead of a `str` to accommodate for headers + containing a `.`. + + For example, `toml_table_header = ("tool", "my.tool", "foo")` can be used to fill variable + values from a table with header `[tool."my.tool".foo]`. + + To use the root table, exclude this config setting or provide an empty tuple. + """ + + toml_file: PathType | None + enable_decoding: bool + + +# Extend `config_keys` by pydantic settings config keys to +# support setting config through class kwargs. +# Pydantic uses `config_keys` in `pydantic._internal._config.ConfigWrapper.for_model` +# to extract config keys from model kwargs, So, by adding pydantic settings keys to +# `config_keys`, they will be considered as valid config keys and will be collected +# by Pydantic. +config_keys |= set(SettingsConfigDict.__annotations__.keys()) + + +class BaseSettings(BaseModel): + """ + Base class for settings, allowing values to be overridden by environment variables. + + This is useful in production for secrets you do not wish to save in code, it plays nicely with docker(-compose), + Heroku and any 12 factor app design. + + All the below attributes can be set via `model_config`. + + Args: + _case_sensitive: Whether environment and CLI variable names should be read with case-sensitivity. + Defaults to `None`. + _nested_model_default_partial_update: Whether to allow partial updates on nested model default object fields. + Defaults to `False`. + _env_prefix: Prefix for all environment variables. Defaults to `None`. + _env_file: The env file(s) to load settings values from. Defaults to `Path('')`, which + means that the value from `model_config['env_file']` should be used. You can also pass + `None` to indicate that environment variables should not be loaded from an env file. + _env_file_encoding: The env file encoding, e.g. `'latin-1'`. Defaults to `None`. + _env_ignore_empty: Ignore environment variables where the value is an empty string. Default to `False`. + _env_nested_delimiter: The nested env values delimiter. Defaults to `None`. + _env_nested_max_split: The nested env values maximum nesting. Defaults to `None`, which means no limit. + _env_parse_none_str: The env string value that should be parsed (e.g. "null", "void", "None", etc.) + into `None` type(None). Defaults to `None` type(None), which means no parsing should occur. + _env_parse_enums: Parse enum field names to values. Defaults to `None.`, which means no parsing should occur. + _cli_prog_name: The CLI program name to display in help text. Defaults to `None` if _cli_parse_args is `None`. + Otherwise, defaults to sys.argv[0]. + _cli_parse_args: The list of CLI arguments to parse. Defaults to None. + If set to `True`, defaults to sys.argv[1:]. + _cli_settings_source: Override the default CLI settings source with a user defined instance. Defaults to None. + _cli_parse_none_str: The CLI string value that should be parsed (e.g. "null", "void", "None", etc.) into + `None` type(None). Defaults to _env_parse_none_str value if set. Otherwise, defaults to "null" if + _cli_avoid_json is `False`, and "None" if _cli_avoid_json is `True`. + _cli_hide_none_type: Hide `None` values in CLI help text. Defaults to `False`. + _cli_avoid_json: Avoid complex JSON objects in CLI help text. Defaults to `False`. + _cli_enforce_required: Enforce required fields at the CLI. Defaults to `False`. + _cli_use_class_docs_for_groups: Use class docstrings in CLI group help text instead of field descriptions. + Defaults to `False`. + _cli_exit_on_error: Determines whether or not the internal parser exits with error info when an error occurs. + Defaults to `True`. + _cli_prefix: The root parser command line arguments prefix. Defaults to "". + _cli_flag_prefix_char: The flag prefix character to use for CLI optional arguments. Defaults to '-'. + _cli_implicit_flags: Whether `bool` fields should be implicitly converted into CLI boolean flags. + (e.g. --flag, --no-flag). Defaults to `False`. + _cli_ignore_unknown_args: Whether to ignore unknown CLI args and parse only known ones. Defaults to `False`. + _cli_kebab_case: CLI args use kebab case. Defaults to `False`. + _cli_shortcuts: Mapping of target field name to alias names. Defaults to `None`. + _secrets_dir: The secret files directory or a sequence of directories. Defaults to `None`. + """ + + def __init__( + __pydantic_self__, + _case_sensitive: bool | None = None, + _nested_model_default_partial_update: bool | None = None, + _env_prefix: str | None = None, + _env_file: DotenvType | None = ENV_FILE_SENTINEL, + _env_file_encoding: str | None = None, + _env_ignore_empty: bool | None = None, + _env_nested_delimiter: str | None = None, + _env_nested_max_split: int | None = None, + _env_parse_none_str: str | None = None, + _env_parse_enums: bool | None = None, + _cli_prog_name: str | None = None, + _cli_parse_args: bool | list[str] | tuple[str, ...] | None = None, + _cli_settings_source: CliSettingsSource[Any] | None = None, + _cli_parse_none_str: str | None = None, + _cli_hide_none_type: bool | None = None, + _cli_avoid_json: bool | None = None, + _cli_enforce_required: bool | None = None, + _cli_use_class_docs_for_groups: bool | None = None, + _cli_exit_on_error: bool | None = None, + _cli_prefix: str | None = None, + _cli_flag_prefix_char: str | None = None, + _cli_implicit_flags: bool | None = None, + _cli_ignore_unknown_args: bool | None = None, + _cli_kebab_case: bool | Literal['all', 'no_enums'] | None = None, + _cli_shortcuts: Mapping[str, str | list[str]] | None = None, + _secrets_dir: PathType | None = None, + **values: Any, + ) -> None: + super().__init__( + **__pydantic_self__._settings_build_values( + values, + _case_sensitive=_case_sensitive, + _nested_model_default_partial_update=_nested_model_default_partial_update, + _env_prefix=_env_prefix, + _env_file=_env_file, + _env_file_encoding=_env_file_encoding, + _env_ignore_empty=_env_ignore_empty, + _env_nested_delimiter=_env_nested_delimiter, + _env_nested_max_split=_env_nested_max_split, + _env_parse_none_str=_env_parse_none_str, + _env_parse_enums=_env_parse_enums, + _cli_prog_name=_cli_prog_name, + _cli_parse_args=_cli_parse_args, + _cli_settings_source=_cli_settings_source, + _cli_parse_none_str=_cli_parse_none_str, + _cli_hide_none_type=_cli_hide_none_type, + _cli_avoid_json=_cli_avoid_json, + _cli_enforce_required=_cli_enforce_required, + _cli_use_class_docs_for_groups=_cli_use_class_docs_for_groups, + _cli_exit_on_error=_cli_exit_on_error, + _cli_prefix=_cli_prefix, + _cli_flag_prefix_char=_cli_flag_prefix_char, + _cli_implicit_flags=_cli_implicit_flags, + _cli_ignore_unknown_args=_cli_ignore_unknown_args, + _cli_kebab_case=_cli_kebab_case, + _cli_shortcuts=_cli_shortcuts, + _secrets_dir=_secrets_dir, + ) + ) + + @classmethod + def settings_customise_sources( + cls, + settings_cls: type[BaseSettings], + init_settings: PydanticBaseSettingsSource, + env_settings: PydanticBaseSettingsSource, + dotenv_settings: PydanticBaseSettingsSource, + file_secret_settings: PydanticBaseSettingsSource, + ) -> tuple[PydanticBaseSettingsSource, ...]: + """ + Define the sources and their order for loading the settings values. + + Args: + settings_cls: The Settings class. + init_settings: The `InitSettingsSource` instance. + env_settings: The `EnvSettingsSource` instance. + dotenv_settings: The `DotEnvSettingsSource` instance. + file_secret_settings: The `SecretsSettingsSource` instance. + + Returns: + A tuple containing the sources and their order for loading the settings values. + """ + return init_settings, env_settings, dotenv_settings, file_secret_settings + + def _settings_build_values( + self, + init_kwargs: dict[str, Any], + _case_sensitive: bool | None = None, + _nested_model_default_partial_update: bool | None = None, + _env_prefix: str | None = None, + _env_file: DotenvType | None = None, + _env_file_encoding: str | None = None, + _env_ignore_empty: bool | None = None, + _env_nested_delimiter: str | None = None, + _env_nested_max_split: int | None = None, + _env_parse_none_str: str | None = None, + _env_parse_enums: bool | None = None, + _cli_prog_name: str | None = None, + _cli_parse_args: bool | list[str] | tuple[str, ...] | None = None, + _cli_settings_source: CliSettingsSource[Any] | None = None, + _cli_parse_none_str: str | None = None, + _cli_hide_none_type: bool | None = None, + _cli_avoid_json: bool | None = None, + _cli_enforce_required: bool | None = None, + _cli_use_class_docs_for_groups: bool | None = None, + _cli_exit_on_error: bool | None = None, + _cli_prefix: str | None = None, + _cli_flag_prefix_char: str | None = None, + _cli_implicit_flags: bool | None = None, + _cli_ignore_unknown_args: bool | None = None, + _cli_kebab_case: bool | Literal['all', 'no_enums'] | None = None, + _cli_shortcuts: Mapping[str, str | list[str]] | None = None, + _secrets_dir: PathType | None = None, + ) -> dict[str, Any]: + # Determine settings config values + case_sensitive = _case_sensitive if _case_sensitive is not None else self.model_config.get('case_sensitive') + env_prefix = _env_prefix if _env_prefix is not None else self.model_config.get('env_prefix') + nested_model_default_partial_update = ( + _nested_model_default_partial_update + if _nested_model_default_partial_update is not None + else self.model_config.get('nested_model_default_partial_update') + ) + env_file = _env_file if _env_file != ENV_FILE_SENTINEL else self.model_config.get('env_file') + env_file_encoding = ( + _env_file_encoding if _env_file_encoding is not None else self.model_config.get('env_file_encoding') + ) + env_ignore_empty = ( + _env_ignore_empty if _env_ignore_empty is not None else self.model_config.get('env_ignore_empty') + ) + env_nested_delimiter = ( + _env_nested_delimiter + if _env_nested_delimiter is not None + else self.model_config.get('env_nested_delimiter') + ) + env_nested_max_split = ( + _env_nested_max_split + if _env_nested_max_split is not None + else self.model_config.get('env_nested_max_split') + ) + env_parse_none_str = ( + _env_parse_none_str if _env_parse_none_str is not None else self.model_config.get('env_parse_none_str') + ) + env_parse_enums = _env_parse_enums if _env_parse_enums is not None else self.model_config.get('env_parse_enums') + + cli_prog_name = _cli_prog_name if _cli_prog_name is not None else self.model_config.get('cli_prog_name') + cli_parse_args = _cli_parse_args if _cli_parse_args is not None else self.model_config.get('cli_parse_args') + cli_settings_source = ( + _cli_settings_source if _cli_settings_source is not None else self.model_config.get('cli_settings_source') + ) + cli_parse_none_str = ( + _cli_parse_none_str if _cli_parse_none_str is not None else self.model_config.get('cli_parse_none_str') + ) + cli_parse_none_str = cli_parse_none_str if not env_parse_none_str else env_parse_none_str + cli_hide_none_type = ( + _cli_hide_none_type if _cli_hide_none_type is not None else self.model_config.get('cli_hide_none_type') + ) + cli_avoid_json = _cli_avoid_json if _cli_avoid_json is not None else self.model_config.get('cli_avoid_json') + cli_enforce_required = ( + _cli_enforce_required + if _cli_enforce_required is not None + else self.model_config.get('cli_enforce_required') + ) + cli_use_class_docs_for_groups = ( + _cli_use_class_docs_for_groups + if _cli_use_class_docs_for_groups is not None + else self.model_config.get('cli_use_class_docs_for_groups') + ) + cli_exit_on_error = ( + _cli_exit_on_error if _cli_exit_on_error is not None else self.model_config.get('cli_exit_on_error') + ) + cli_prefix = _cli_prefix if _cli_prefix is not None else self.model_config.get('cli_prefix') + cli_flag_prefix_char = ( + _cli_flag_prefix_char + if _cli_flag_prefix_char is not None + else self.model_config.get('cli_flag_prefix_char') + ) + cli_implicit_flags = ( + _cli_implicit_flags if _cli_implicit_flags is not None else self.model_config.get('cli_implicit_flags') + ) + cli_ignore_unknown_args = ( + _cli_ignore_unknown_args + if _cli_ignore_unknown_args is not None + else self.model_config.get('cli_ignore_unknown_args') + ) + cli_kebab_case = _cli_kebab_case if _cli_kebab_case is not None else self.model_config.get('cli_kebab_case') + cli_shortcuts = _cli_shortcuts if _cli_shortcuts is not None else self.model_config.get('cli_shortcuts') + + secrets_dir = _secrets_dir if _secrets_dir is not None else self.model_config.get('secrets_dir') + + # Configure built-in sources + default_settings = DefaultSettingsSource( + self.__class__, nested_model_default_partial_update=nested_model_default_partial_update + ) + init_settings = InitSettingsSource( + self.__class__, + init_kwargs=init_kwargs, + nested_model_default_partial_update=nested_model_default_partial_update, + ) + env_settings = EnvSettingsSource( + self.__class__, + case_sensitive=case_sensitive, + env_prefix=env_prefix, + env_nested_delimiter=env_nested_delimiter, + env_nested_max_split=env_nested_max_split, + env_ignore_empty=env_ignore_empty, + env_parse_none_str=env_parse_none_str, + env_parse_enums=env_parse_enums, + ) + dotenv_settings = DotEnvSettingsSource( + self.__class__, + env_file=env_file, + env_file_encoding=env_file_encoding, + case_sensitive=case_sensitive, + env_prefix=env_prefix, + env_nested_delimiter=env_nested_delimiter, + env_nested_max_split=env_nested_max_split, + env_ignore_empty=env_ignore_empty, + env_parse_none_str=env_parse_none_str, + env_parse_enums=env_parse_enums, + ) + + file_secret_settings = SecretsSettingsSource( + self.__class__, secrets_dir=secrets_dir, case_sensitive=case_sensitive, env_prefix=env_prefix + ) + # Provide a hook to set built-in sources priority and add / remove sources + sources = self.settings_customise_sources( + self.__class__, + init_settings=init_settings, + env_settings=env_settings, + dotenv_settings=dotenv_settings, + file_secret_settings=file_secret_settings, + ) + (default_settings,) + custom_cli_sources = [source for source in sources if isinstance(source, CliSettingsSource)] + if not any(custom_cli_sources): + if isinstance(cli_settings_source, CliSettingsSource): + sources = (cli_settings_source,) + sources + elif cli_parse_args is not None: + cli_settings = CliSettingsSource[Any]( + self.__class__, + cli_prog_name=cli_prog_name, + cli_parse_args=cli_parse_args, + cli_parse_none_str=cli_parse_none_str, + cli_hide_none_type=cli_hide_none_type, + cli_avoid_json=cli_avoid_json, + cli_enforce_required=cli_enforce_required, + cli_use_class_docs_for_groups=cli_use_class_docs_for_groups, + cli_exit_on_error=cli_exit_on_error, + cli_prefix=cli_prefix, + cli_flag_prefix_char=cli_flag_prefix_char, + cli_implicit_flags=cli_implicit_flags, + cli_ignore_unknown_args=cli_ignore_unknown_args, + cli_kebab_case=cli_kebab_case, + cli_shortcuts=cli_shortcuts, + case_sensitive=case_sensitive, + ) + sources = (cli_settings,) + sources + # We ensure that if command line arguments haven't been parsed yet, we do so. + elif cli_parse_args not in (None, False) and not custom_cli_sources[0].env_vars: + custom_cli_sources[0](args=cli_parse_args) # type: ignore + + self._settings_warn_unused_config_keys(sources, self.model_config) + + if sources: + state: dict[str, Any] = {} + defaults: dict[str, Any] = {} + states: dict[str, dict[str, Any]] = {} + for source in sources: + if isinstance(source, PydanticBaseSettingsSource): + source._set_current_state(state) + source._set_settings_sources_data(states) + + source_name = source.__name__ if hasattr(source, '__name__') else type(source).__name__ + source_state = source() + + if isinstance(source, DefaultSettingsSource): + defaults = source_state + + states[source_name] = source_state + state = deep_update(source_state, state) + + # Strip any default values not explicity set before returning final state + state = {key: val for key, val in state.items() if key not in defaults or defaults[key] != val} + self._settings_restore_init_kwarg_names(self.__class__, init_kwargs, state) + + return state + else: + # no one should mean to do this, but I think returning an empty dict is marginally preferable + # to an informative error and much better than a confusing error + return {} + + @staticmethod + def _settings_restore_init_kwarg_names( + settings_cls: type[BaseSettings], init_kwargs: dict[str, Any], state: dict[str, Any] + ) -> None: + """ + Restore the init_kwarg key names to the final merged state dictionary. + """ + if init_kwargs and state: + state_kwarg_names = set(state.keys()) + init_kwarg_names = set(init_kwargs.keys()) + for field_name, field_info in settings_cls.model_fields.items(): + alias_names, *_ = _get_alias_names(field_name, field_info) + matchable_names = set(alias_names) + include_name = settings_cls.model_config.get('populate_by_name', False) + if include_name: + matchable_names.add(field_name) + init_kwarg_name = init_kwarg_names & matchable_names + state_kwarg_name = state_kwarg_names & matchable_names + if init_kwarg_name and state_kwarg_name: + state[init_kwarg_name.pop()] = state.pop(state_kwarg_name.pop()) + + @staticmethod + def _settings_warn_unused_config_keys(sources: tuple[object, ...], model_config: SettingsConfigDict) -> None: + """ + Warns if any values in model_config were set but the corresponding settings source has not been initialised. + + The list alternative sources and their config keys can be found here: + https://docs.pydantic.dev/latest/concepts/pydantic_settings/#other-settings-source + + Args: + sources: The tuple of configured sources + model_config: The model config to check for unused config keys + """ + + def warn_if_not_used(source_type: type[PydanticBaseSettingsSource], keys: tuple[str, ...]) -> None: + if not any(isinstance(source, source_type) for source in sources): + for key in keys: + if model_config.get(key) is not None: + warnings.warn( + f'Config key `{key}` is set in model_config but will be ignored because no ' + f'{source_type.__name__} source is configured. To use this config key, add a ' + f'{source_type.__name__} source to the settings sources via the ' + 'settings_customise_sources hook.', + UserWarning, + stacklevel=3, + ) + + warn_if_not_used(JsonConfigSettingsSource, ('json_file', 'json_file_encoding')) + warn_if_not_used(PyprojectTomlConfigSettingsSource, ('pyproject_toml_depth', 'pyproject_toml_table_header')) + warn_if_not_used(TomlConfigSettingsSource, ('toml_file',)) + warn_if_not_used(YamlConfigSettingsSource, ('yaml_file', 'yaml_file_encoding', 'yaml_config_section')) + + model_config: ClassVar[SettingsConfigDict] = SettingsConfigDict( + extra='forbid', + arbitrary_types_allowed=True, + validate_default=True, + case_sensitive=False, + env_prefix='', + nested_model_default_partial_update=False, + env_file=None, + env_file_encoding=None, + env_ignore_empty=False, + env_nested_delimiter=None, + env_nested_max_split=None, + env_parse_none_str=None, + env_parse_enums=None, + cli_prog_name=None, + cli_parse_args=None, + cli_parse_none_str=None, + cli_hide_none_type=False, + cli_avoid_json=False, + cli_enforce_required=False, + cli_use_class_docs_for_groups=False, + cli_exit_on_error=True, + cli_prefix='', + cli_flag_prefix_char='-', + cli_implicit_flags=False, + cli_ignore_unknown_args=False, + cli_kebab_case=False, + cli_shortcuts=None, + json_file=None, + json_file_encoding=None, + yaml_file=None, + yaml_file_encoding=None, + yaml_config_section=None, + toml_file=None, + secrets_dir=None, + protected_namespaces=('model_validate', 'model_dump', 'settings_customise_sources'), + enable_decoding=True, + ) + + +class CliApp: + """ + A utility class for running Pydantic `BaseSettings`, `BaseModel`, or `pydantic.dataclasses.dataclass` as + CLI applications. + """ + + @staticmethod + def _get_base_settings_cls(model_cls: type[Any]) -> type[BaseSettings]: + if issubclass(model_cls, BaseSettings): + return model_cls + + class CliAppBaseSettings(BaseSettings, model_cls): # type: ignore + __doc__ = model_cls.__doc__ + model_config = SettingsConfigDict( + nested_model_default_partial_update=True, + case_sensitive=True, + cli_hide_none_type=True, + cli_avoid_json=True, + cli_enforce_required=True, + cli_implicit_flags=True, + cli_kebab_case=True, + ) + + return CliAppBaseSettings + + @staticmethod + def _run_cli_cmd(model: Any, cli_cmd_method_name: str, is_required: bool) -> Any: + command = getattr(type(model), cli_cmd_method_name, None) + if command is None: + if is_required: + raise SettingsError(f'Error: {type(model).__name__} class is missing {cli_cmd_method_name} entrypoint') + return model + + # If the method is asynchronous, we handle its execution based on the current event loop status. + if inspect.iscoroutinefunction(command): + # For asynchronous methods, we have two execution scenarios: + # 1. If no event loop is running in the current thread, run the coroutine directly with asyncio.run(). + # 2. If an event loop is already running in the current thread, run the coroutine in a separate thread to avoid conflicts. + try: + # Check if an event loop is currently running in this thread. + loop = asyncio.get_running_loop() + except RuntimeError: + loop = None + + if loop and loop.is_running(): + # We're in a context with an active event loop (e.g., Jupyter Notebook). + # Running asyncio.run() here would cause conflicts, so we use a separate thread. + exception_container = [] + + def run_coro() -> None: + try: + # Execute the coroutine in a new event loop in this separate thread. + asyncio.run(command(model)) + except Exception as e: + exception_container.append(e) + + thread = threading.Thread(target=run_coro) + thread.start() + thread.join() + if exception_container: + # Propagate exceptions from the separate thread. + raise exception_container[0] + else: + # No event loop is running; safe to run the coroutine directly. + asyncio.run(command(model)) + else: + # For synchronous methods, call them directly. + command(model) + + return model + + @staticmethod + def run( + model_cls: type[T], + cli_args: list[str] | Namespace | SimpleNamespace | dict[str, Any] | None = None, + cli_settings_source: CliSettingsSource[Any] | None = None, + cli_exit_on_error: bool | None = None, + cli_cmd_method_name: str = 'cli_cmd', + **model_init_data: Any, + ) -> T: + """ + Runs a Pydantic `BaseSettings`, `BaseModel`, or `pydantic.dataclasses.dataclass` as a CLI application. + Running a model as a CLI application requires the `cli_cmd` method to be defined in the model class. + + Args: + model_cls: The model class to run as a CLI application. + cli_args: The list of CLI arguments to parse. If `cli_settings_source` is specified, this may + also be a namespace or dictionary of pre-parsed CLI arguments. Defaults to `sys.argv[1:]`. + cli_settings_source: Override the default CLI settings source with a user defined instance. + Defaults to `None`. + cli_exit_on_error: Determines whether this function exits on error. If model is subclass of + `BaseSettings`, defaults to BaseSettings `cli_exit_on_error` value. Otherwise, defaults to + `True`. + cli_cmd_method_name: The CLI command method name to run. Defaults to "cli_cmd". + model_init_data: The model init data. + + Returns: + The ran instance of model. + + Raises: + SettingsError: If model_cls is not subclass of `BaseModel` or `pydantic.dataclasses.dataclass`. + SettingsError: If model_cls does not have a `cli_cmd` entrypoint defined. + """ + + if not (is_pydantic_dataclass(model_cls) or is_model_class(model_cls)): + raise SettingsError( + f'Error: {model_cls.__name__} is not subclass of BaseModel or pydantic.dataclasses.dataclass' + ) + + cli_settings = None + cli_parse_args = True if cli_args is None else cli_args + if cli_settings_source is not None: + if isinstance(cli_parse_args, (Namespace, SimpleNamespace, dict)): + cli_settings = cli_settings_source(parsed_args=cli_parse_args) + else: + cli_settings = cli_settings_source(args=cli_parse_args) + elif isinstance(cli_parse_args, (Namespace, SimpleNamespace, dict)): + raise SettingsError('Error: `cli_args` must be list[str] or None when `cli_settings_source` is not used') + + model_init_data['_cli_parse_args'] = cli_parse_args + model_init_data['_cli_exit_on_error'] = cli_exit_on_error + model_init_data['_cli_settings_source'] = cli_settings + if not issubclass(model_cls, BaseSettings): + base_settings_cls = CliApp._get_base_settings_cls(model_cls) + model = base_settings_cls(**model_init_data) + model_init_data = {} + for field_name, field_info in base_settings_cls.model_fields.items(): + model_init_data[_field_name_for_signature(field_name, field_info)] = getattr(model, field_name) + + return CliApp._run_cli_cmd(model_cls(**model_init_data), cli_cmd_method_name, is_required=False) + + @staticmethod + def run_subcommand( + model: PydanticModel, cli_exit_on_error: bool | None = None, cli_cmd_method_name: str = 'cli_cmd' + ) -> PydanticModel: + """ + Runs the model subcommand. Running a model subcommand requires the `cli_cmd` method to be defined in + the nested model subcommand class. + + Args: + model: The model to run the subcommand from. + cli_exit_on_error: Determines whether this function exits with error if no subcommand is found. + Defaults to model_config `cli_exit_on_error` value if set. Otherwise, defaults to `True`. + cli_cmd_method_name: The CLI command method name to run. Defaults to "cli_cmd". + + Returns: + The ran subcommand model. + + Raises: + SystemExit: When no subcommand is found and cli_exit_on_error=`True` (the default). + SettingsError: When no subcommand is found and cli_exit_on_error=`False`. + """ + + subcommand = get_subcommand(model, is_required=True, cli_exit_on_error=cli_exit_on_error) + return CliApp._run_cli_cmd(subcommand, cli_cmd_method_name, is_required=True) + + @staticmethod + def serialize(model: PydanticModel) -> list[str]: + """ + Serializes the CLI arguments for a Pydantic data model. + + Args: + model: The data model to serialize. + + Returns: + The serialized CLI arguments for the data model. + """ + + base_settings_cls = CliApp._get_base_settings_cls(type(model)) + return CliSettingsSource[Any](base_settings_cls)._serialized_args(model) diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/py.typed b/venv/lib/python3.11/site-packages/pydantic_settings/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/sources/__init__.py b/venv/lib/python3.11/site-packages/pydantic_settings/sources/__init__.py new file mode 100644 index 0000000..44e3bce --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/sources/__init__.py @@ -0,0 +1,70 @@ +"""Package for handling configuration sources in pydantic-settings.""" + +from .base import ( + ConfigFileSourceMixin, + DefaultSettingsSource, + InitSettingsSource, + PydanticBaseEnvSettingsSource, + PydanticBaseSettingsSource, + get_subcommand, +) +from .providers.aws import AWSSecretsManagerSettingsSource +from .providers.azure import AzureKeyVaultSettingsSource +from .providers.cli import ( + CLI_SUPPRESS, + CliExplicitFlag, + CliImplicitFlag, + CliMutuallyExclusiveGroup, + CliPositionalArg, + CliSettingsSource, + CliSubCommand, + CliSuppress, + CliUnknownArgs, +) +from .providers.dotenv import DotEnvSettingsSource, read_env_file +from .providers.env import EnvSettingsSource +from .providers.gcp import GoogleSecretManagerSettingsSource +from .providers.json import JsonConfigSettingsSource +from .providers.nested_secrets import NestedSecretsSettingsSource +from .providers.pyproject import PyprojectTomlConfigSettingsSource +from .providers.secrets import SecretsSettingsSource +from .providers.toml import TomlConfigSettingsSource +from .providers.yaml import YamlConfigSettingsSource +from .types import DEFAULT_PATH, ENV_FILE_SENTINEL, DotenvType, ForceDecode, NoDecode, PathType, PydanticModel + +__all__ = [ + 'CLI_SUPPRESS', + 'ENV_FILE_SENTINEL', + 'DEFAULT_PATH', + 'AWSSecretsManagerSettingsSource', + 'AzureKeyVaultSettingsSource', + 'CliExplicitFlag', + 'CliImplicitFlag', + 'CliMutuallyExclusiveGroup', + 'CliPositionalArg', + 'CliSettingsSource', + 'CliSubCommand', + 'CliSuppress', + 'CliUnknownArgs', + 'DefaultSettingsSource', + 'DotEnvSettingsSource', + 'DotenvType', + 'EnvSettingsSource', + 'ForceDecode', + 'GoogleSecretManagerSettingsSource', + 'InitSettingsSource', + 'JsonConfigSettingsSource', + 'NestedSecretsSettingsSource', + 'NoDecode', + 'PathType', + 'PydanticBaseEnvSettingsSource', + 'PydanticBaseSettingsSource', + 'ConfigFileSourceMixin', + 'PydanticModel', + 'PyprojectTomlConfigSettingsSource', + 'SecretsSettingsSource', + 'TomlConfigSettingsSource', + 'YamlConfigSettingsSource', + 'get_subcommand', + 'read_env_file', +] diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/sources/base.py b/venv/lib/python3.11/site-packages/pydantic_settings/sources/base.py new file mode 100644 index 0000000..2a0f872 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/sources/base.py @@ -0,0 +1,541 @@ +"""Base classes and core functionality for pydantic-settings sources.""" + +from __future__ import annotations as _annotations + +import json +import os +from abc import ABC, abstractmethod +from dataclasses import asdict, is_dataclass +from pathlib import Path +from typing import TYPE_CHECKING, Any, cast, get_args + +from pydantic import AliasChoices, AliasPath, BaseModel, TypeAdapter +from pydantic._internal._typing_extra import ( # type: ignore[attr-defined] + get_origin, +) +from pydantic._internal._utils import is_model_class +from pydantic.fields import FieldInfo +from typing_inspection import typing_objects +from typing_inspection.introspection import is_union_origin + +from ..exceptions import SettingsError +from ..utils import _lenient_issubclass +from .types import EnvNoneType, ForceDecode, NoDecode, PathType, PydanticModel, _CliSubCommand +from .utils import ( + _annotation_is_complex, + _get_alias_names, + _get_model_fields, + _strip_annotated, + _union_is_complex, +) + +if TYPE_CHECKING: + from pydantic_settings.main import BaseSettings + + +def get_subcommand( + model: PydanticModel, is_required: bool = True, cli_exit_on_error: bool | None = None +) -> PydanticModel | None: + """ + Get the subcommand from a model. + + Args: + model: The model to get the subcommand from. + is_required: Determines whether a model must have subcommand set and raises error if not + found. Defaults to `True`. + cli_exit_on_error: Determines whether this function exits with error if no subcommand is found. + Defaults to model_config `cli_exit_on_error` value if set. Otherwise, defaults to `True`. + + Returns: + The subcommand model if found, otherwise `None`. + + Raises: + SystemExit: When no subcommand is found and is_required=`True` and cli_exit_on_error=`True` + (the default). + SettingsError: When no subcommand is found and is_required=`True` and + cli_exit_on_error=`False`. + """ + + model_cls = type(model) + if cli_exit_on_error is None and is_model_class(model_cls): + model_default = model_cls.model_config.get('cli_exit_on_error') + if isinstance(model_default, bool): + cli_exit_on_error = model_default + if cli_exit_on_error is None: + cli_exit_on_error = True + + subcommands: list[str] = [] + for field_name, field_info in _get_model_fields(model_cls).items(): + if _CliSubCommand in field_info.metadata: + if getattr(model, field_name) is not None: + return getattr(model, field_name) + subcommands.append(field_name) + + if is_required: + error_message = ( + f'Error: CLI subcommand is required {{{", ".join(subcommands)}}}' + if subcommands + else 'Error: CLI subcommand is required but no subcommands were found.' + ) + raise SystemExit(error_message) if cli_exit_on_error else SettingsError(error_message) + + return None + + +class PydanticBaseSettingsSource(ABC): + """ + Abstract base class for settings sources, every settings source classes should inherit from it. + """ + + def __init__(self, settings_cls: type[BaseSettings]): + self.settings_cls = settings_cls + self.config = settings_cls.model_config + self._current_state: dict[str, Any] = {} + self._settings_sources_data: dict[str, dict[str, Any]] = {} + + def _set_current_state(self, state: dict[str, Any]) -> None: + """ + Record the state of settings from the previous settings sources. This should + be called right before __call__. + """ + self._current_state = state + + def _set_settings_sources_data(self, states: dict[str, dict[str, Any]]) -> None: + """ + Record the state of settings from all previous settings sources. This should + be called right before __call__. + """ + self._settings_sources_data = states + + @property + def current_state(self) -> dict[str, Any]: + """ + The current state of the settings, populated by the previous settings sources. + """ + return self._current_state + + @property + def settings_sources_data(self) -> dict[str, dict[str, Any]]: + """ + The state of all previous settings sources. + """ + return self._settings_sources_data + + @abstractmethod + def get_field_value(self, field: FieldInfo, field_name: str) -> tuple[Any, str, bool]: + """ + Gets the value, the key for model creation, and a flag to determine whether value is complex. + + This is an abstract method that should be overridden in every settings source classes. + + Args: + field: The field. + field_name: The field name. + + Returns: + A tuple that contains the value, key and a flag to determine whether value is complex. + """ + pass + + def field_is_complex(self, field: FieldInfo) -> bool: + """ + Checks whether a field is complex, in which case it will attempt to be parsed as JSON. + + Args: + field: The field. + + Returns: + Whether the field is complex. + """ + return _annotation_is_complex(field.annotation, field.metadata) + + def prepare_field_value(self, field_name: str, field: FieldInfo, value: Any, value_is_complex: bool) -> Any: + """ + Prepares the value of a field. + + Args: + field_name: The field name. + field: The field. + value: The value of the field that has to be prepared. + value_is_complex: A flag to determine whether value is complex. + + Returns: + The prepared value. + """ + if value is not None and (self.field_is_complex(field) or value_is_complex): + return self.decode_complex_value(field_name, field, value) + return value + + def decode_complex_value(self, field_name: str, field: FieldInfo, value: Any) -> Any: + """ + Decode the value for a complex field + + Args: + field_name: The field name. + field: The field. + value: The value of the field that has to be prepared. + + Returns: + The decoded value for further preparation + """ + if field and ( + NoDecode in field.metadata + or (self.config.get('enable_decoding') is False and ForceDecode not in field.metadata) + ): + return value + + return json.loads(value) + + @abstractmethod + def __call__(self) -> dict[str, Any]: + pass + + +class ConfigFileSourceMixin(ABC): + def _read_files(self, files: PathType | None) -> dict[str, Any]: + if files is None: + return {} + if isinstance(files, (str, os.PathLike)): + files = [files] + vars: dict[str, Any] = {} + for file in files: + file_path = Path(file).expanduser() + if file_path.is_file(): + vars.update(self._read_file(file_path)) + return vars + + @abstractmethod + def _read_file(self, path: Path) -> dict[str, Any]: + pass + + +class DefaultSettingsSource(PydanticBaseSettingsSource): + """ + Source class for loading default object values. + + Args: + settings_cls: The Settings class. + nested_model_default_partial_update: Whether to allow partial updates on nested model default object fields. + Defaults to `False`. + """ + + def __init__(self, settings_cls: type[BaseSettings], nested_model_default_partial_update: bool | None = None): + super().__init__(settings_cls) + self.defaults: dict[str, Any] = {} + self.nested_model_default_partial_update = ( + nested_model_default_partial_update + if nested_model_default_partial_update is not None + else self.config.get('nested_model_default_partial_update', False) + ) + if self.nested_model_default_partial_update: + for field_name, field_info in settings_cls.model_fields.items(): + alias_names, *_ = _get_alias_names(field_name, field_info) + preferred_alias = alias_names[0] + if is_dataclass(type(field_info.default)): + self.defaults[preferred_alias] = asdict(field_info.default) + elif is_model_class(type(field_info.default)): + self.defaults[preferred_alias] = field_info.default.model_dump() + + def get_field_value(self, field: FieldInfo, field_name: str) -> tuple[Any, str, bool]: + # Nothing to do here. Only implement the return statement to make mypy happy + return None, '', False + + def __call__(self) -> dict[str, Any]: + return self.defaults + + def __repr__(self) -> str: + return ( + f'{self.__class__.__name__}(nested_model_default_partial_update={self.nested_model_default_partial_update})' + ) + + +class InitSettingsSource(PydanticBaseSettingsSource): + """ + Source class for loading values provided during settings class initialization. + """ + + def __init__( + self, + settings_cls: type[BaseSettings], + init_kwargs: dict[str, Any], + nested_model_default_partial_update: bool | None = None, + ): + self.init_kwargs = {} + init_kwarg_names = set(init_kwargs.keys()) + for field_name, field_info in settings_cls.model_fields.items(): + alias_names, *_ = _get_alias_names(field_name, field_info) + # When populate_by_name is True, allow using the field name as an input key, + # but normalize to the preferred alias to keep keys consistent across sources. + matchable_names = set(alias_names) + include_name = settings_cls.model_config.get('populate_by_name', False) + if include_name: + matchable_names.add(field_name) + init_kwarg_name = init_kwarg_names & matchable_names + if init_kwarg_name: + preferred_alias = alias_names[0] if alias_names else field_name + # Choose provided key deterministically: prefer the first alias in alias_names order; + # fall back to field_name if allowed and provided. + provided_key = next((alias for alias in alias_names if alias in init_kwarg_names), None) + if provided_key is None and include_name and field_name in init_kwarg_names: + provided_key = field_name + # provided_key should not be None here because init_kwarg_name is non-empty + assert provided_key is not None + init_kwarg_names -= init_kwarg_name + self.init_kwargs[preferred_alias] = init_kwargs[provided_key] + # Include any remaining init kwargs (e.g., extras) unchanged + # Note: If populate_by_name is True and the provided key is the field name, but + # no alias exists, we keep it as-is so it can be processed as extra if allowed. + self.init_kwargs.update({key: val for key, val in init_kwargs.items() if key in init_kwarg_names}) + + super().__init__(settings_cls) + self.nested_model_default_partial_update = ( + nested_model_default_partial_update + if nested_model_default_partial_update is not None + else self.config.get('nested_model_default_partial_update', False) + ) + + def get_field_value(self, field: FieldInfo, field_name: str) -> tuple[Any, str, bool]: + # Nothing to do here. Only implement the return statement to make mypy happy + return None, '', False + + def __call__(self) -> dict[str, Any]: + return ( + TypeAdapter(dict[str, Any]).dump_python(self.init_kwargs) + if self.nested_model_default_partial_update + else self.init_kwargs + ) + + def __repr__(self) -> str: + return f'{self.__class__.__name__}(init_kwargs={self.init_kwargs!r})' + + +class PydanticBaseEnvSettingsSource(PydanticBaseSettingsSource): + def __init__( + self, + settings_cls: type[BaseSettings], + case_sensitive: bool | None = None, + env_prefix: str | None = None, + env_ignore_empty: bool | None = None, + env_parse_none_str: str | None = None, + env_parse_enums: bool | None = None, + ) -> None: + super().__init__(settings_cls) + self.case_sensitive = case_sensitive if case_sensitive is not None else self.config.get('case_sensitive', False) + self.env_prefix = env_prefix if env_prefix is not None else self.config.get('env_prefix', '') + self.env_ignore_empty = ( + env_ignore_empty if env_ignore_empty is not None else self.config.get('env_ignore_empty', False) + ) + self.env_parse_none_str = ( + env_parse_none_str if env_parse_none_str is not None else self.config.get('env_parse_none_str') + ) + self.env_parse_enums = env_parse_enums if env_parse_enums is not None else self.config.get('env_parse_enums') + + def _apply_case_sensitive(self, value: str) -> str: + return value.lower() if not self.case_sensitive else value + + def _extract_field_info(self, field: FieldInfo, field_name: str) -> list[tuple[str, str, bool]]: + """ + Extracts field info. This info is used to get the value of field from environment variables. + + It returns a list of tuples, each tuple contains: + * field_key: The key of field that has to be used in model creation. + * env_name: The environment variable name of the field. + * value_is_complex: A flag to determine whether the value from environment variable + is complex and has to be parsed. + + Args: + field (FieldInfo): The field. + field_name (str): The field name. + + Returns: + list[tuple[str, str, bool]]: List of tuples, each tuple contains field_key, env_name, and value_is_complex. + """ + field_info: list[tuple[str, str, bool]] = [] + if isinstance(field.validation_alias, (AliasChoices, AliasPath)): + v_alias: str | list[str | int] | list[list[str | int]] | None = field.validation_alias.convert_to_aliases() + else: + v_alias = field.validation_alias + + if v_alias: + if isinstance(v_alias, list): # AliasChoices, AliasPath + for alias in v_alias: + if isinstance(alias, str): # AliasPath + field_info.append((alias, self._apply_case_sensitive(alias), True if len(alias) > 1 else False)) + elif isinstance(alias, list): # AliasChoices + first_arg = cast(str, alias[0]) # first item of an AliasChoices must be a str + field_info.append( + (first_arg, self._apply_case_sensitive(first_arg), True if len(alias) > 1 else False) + ) + else: # string validation alias + field_info.append((v_alias, self._apply_case_sensitive(v_alias), False)) + + if not v_alias or self.config.get('populate_by_name', False): + annotation = field.annotation + if typing_objects.is_typealiastype(annotation) or typing_objects.is_typealiastype(get_origin(annotation)): + annotation = _strip_annotated(annotation.__value__) # type: ignore[union-attr] + if is_union_origin(get_origin(annotation)) and _union_is_complex(annotation, field.metadata): + field_info.append((field_name, self._apply_case_sensitive(self.env_prefix + field_name), True)) + else: + field_info.append((field_name, self._apply_case_sensitive(self.env_prefix + field_name), False)) + + return field_info + + def _replace_field_names_case_insensitively(self, field: FieldInfo, field_values: dict[str, Any]) -> dict[str, Any]: + """ + Replace field names in values dict by looking in models fields insensitively. + + By having the following models: + + ```py + class SubSubSub(BaseModel): + VaL3: str + + class SubSub(BaseModel): + Val2: str + SUB_sub_SuB: SubSubSub + + class Sub(BaseModel): + VAL1: str + SUB_sub: SubSub + + class Settings(BaseSettings): + nested: Sub + + model_config = SettingsConfigDict(env_nested_delimiter='__') + ``` + + Then: + _replace_field_names_case_insensitively( + field, + {"val1": "v1", "sub_SUB": {"VAL2": "v2", "sub_SUB_sUb": {"vAl3": "v3"}}} + ) + Returns {'VAL1': 'v1', 'SUB_sub': {'Val2': 'v2', 'SUB_sub_SuB': {'VaL3': 'v3'}}} + """ + values: dict[str, Any] = {} + + for name, value in field_values.items(): + sub_model_field: FieldInfo | None = None + + annotation = field.annotation + + # If field is Optional, we need to find the actual type + if is_union_origin(get_origin(field.annotation)): + args = get_args(annotation) + if len(args) == 2 and type(None) in args: + for arg in args: + if arg is not None: + annotation = arg + break + + # This is here to make mypy happy + # Item "None" of "Optional[Type[Any]]" has no attribute "model_fields" + if not annotation or not hasattr(annotation, 'model_fields'): + values[name] = value + continue + else: + model_fields: dict[str, FieldInfo] = annotation.model_fields + + # Find field in sub model by looking in fields case insensitively + field_key: str | None = None + for sub_model_field_name, sub_model_field in model_fields.items(): + aliases, _ = _get_alias_names(sub_model_field_name, sub_model_field) + _search = (alias for alias in aliases if alias.lower() == name.lower()) + if field_key := next(_search, None): + break + + if not field_key: + values[name] = value + continue + + if ( + sub_model_field is not None + and _lenient_issubclass(sub_model_field.annotation, BaseModel) + and isinstance(value, dict) + ): + values[field_key] = self._replace_field_names_case_insensitively(sub_model_field, value) + else: + values[field_key] = value + + return values + + def _replace_env_none_type_values(self, field_value: dict[str, Any]) -> dict[str, Any]: + """ + Recursively parse values that are of "None" type(EnvNoneType) to `None` type(None). + """ + values: dict[str, Any] = {} + + for key, value in field_value.items(): + if not isinstance(value, EnvNoneType): + values[key] = value if not isinstance(value, dict) else self._replace_env_none_type_values(value) + else: + values[key] = None + + return values + + def _get_resolved_field_value(self, field: FieldInfo, field_name: str) -> tuple[Any, str, bool]: + """ + Gets the value, the preferred alias key for model creation, and a flag to determine whether value + is complex. + + Note: + In V3, this method should either be made public, or, this method should be removed and the + abstract method get_field_value should be updated to include a "use_preferred_alias" flag. + + Args: + field: The field. + field_name: The field name. + + Returns: + A tuple that contains the value, preferred key and a flag to determine whether value is complex. + """ + field_value, field_key, value_is_complex = self.get_field_value(field, field_name) + if not (value_is_complex or (self.config.get('populate_by_name', False) and (field_key == field_name))): + field_infos = self._extract_field_info(field, field_name) + preferred_key, *_ = field_infos[0] + return field_value, preferred_key, value_is_complex + return field_value, field_key, value_is_complex + + def __call__(self) -> dict[str, Any]: + data: dict[str, Any] = {} + + for field_name, field in self.settings_cls.model_fields.items(): + try: + field_value, field_key, value_is_complex = self._get_resolved_field_value(field, field_name) + except Exception as e: + raise SettingsError( + f'error getting value for field "{field_name}" from source "{self.__class__.__name__}"' + ) from e + + try: + field_value = self.prepare_field_value(field_name, field, field_value, value_is_complex) + except ValueError as e: + raise SettingsError( + f'error parsing value for field "{field_name}" from source "{self.__class__.__name__}"' + ) from e + + if field_value is not None: + if self.env_parse_none_str is not None: + if isinstance(field_value, dict): + field_value = self._replace_env_none_type_values(field_value) + elif isinstance(field_value, EnvNoneType): + field_value = None + if ( + not self.case_sensitive + # and _lenient_issubclass(field.annotation, BaseModel) + and isinstance(field_value, dict) + ): + data[field_key] = self._replace_field_names_case_insensitively(field, field_value) + else: + data[field_key] = field_value + + return data + + +__all__ = [ + 'ConfigFileSourceMixin', + 'DefaultSettingsSource', + 'InitSettingsSource', + 'PydanticBaseEnvSettingsSource', + 'PydanticBaseSettingsSource', + 'SettingsError', +] diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/__init__.py b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/__init__.py new file mode 100644 index 0000000..31759f3 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/__init__.py @@ -0,0 +1,41 @@ +"""Package containing individual source implementations.""" + +from .aws import AWSSecretsManagerSettingsSource +from .azure import AzureKeyVaultSettingsSource +from .cli import ( + CliExplicitFlag, + CliImplicitFlag, + CliMutuallyExclusiveGroup, + CliPositionalArg, + CliSettingsSource, + CliSubCommand, + CliSuppress, +) +from .dotenv import DotEnvSettingsSource +from .env import EnvSettingsSource +from .gcp import GoogleSecretManagerSettingsSource +from .json import JsonConfigSettingsSource +from .pyproject import PyprojectTomlConfigSettingsSource +from .secrets import SecretsSettingsSource +from .toml import TomlConfigSettingsSource +from .yaml import YamlConfigSettingsSource + +__all__ = [ + 'AWSSecretsManagerSettingsSource', + 'AzureKeyVaultSettingsSource', + 'CliExplicitFlag', + 'CliImplicitFlag', + 'CliMutuallyExclusiveGroup', + 'CliPositionalArg', + 'CliSettingsSource', + 'CliSubCommand', + 'CliSuppress', + 'DotEnvSettingsSource', + 'EnvSettingsSource', + 'GoogleSecretManagerSettingsSource', + 'JsonConfigSettingsSource', + 'PyprojectTomlConfigSettingsSource', + 'SecretsSettingsSource', + 'TomlConfigSettingsSource', + 'YamlConfigSettingsSource', +] diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/aws.py b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/aws.py new file mode 100644 index 0000000..a0e9e35 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/aws.py @@ -0,0 +1,79 @@ +from __future__ import annotations as _annotations # important for BaseSettings import to work + +import json +from collections.abc import Mapping +from typing import TYPE_CHECKING + +from ..utils import parse_env_vars +from .env import EnvSettingsSource + +if TYPE_CHECKING: + from pydantic_settings.main import BaseSettings + + +boto3_client = None +SecretsManagerClient = None + + +def import_aws_secrets_manager() -> None: + global boto3_client + global SecretsManagerClient + + try: + from boto3 import client as boto3_client + from mypy_boto3_secretsmanager.client import SecretsManagerClient + except ImportError as e: # pragma: no cover + raise ImportError( + 'AWS Secrets Manager dependencies are not installed, run `pip install pydantic-settings[aws-secrets-manager]`' + ) from e + + +class AWSSecretsManagerSettingsSource(EnvSettingsSource): + _secret_id: str + _secretsmanager_client: SecretsManagerClient # type: ignore + + def __init__( + self, + settings_cls: type[BaseSettings], + secret_id: str, + region_name: str | None = None, + endpoint_url: str | None = None, + case_sensitive: bool | None = True, + env_prefix: str | None = None, + env_nested_delimiter: str | None = '--', + env_parse_none_str: str | None = None, + env_parse_enums: bool | None = None, + ) -> None: + import_aws_secrets_manager() + self._secretsmanager_client = boto3_client('secretsmanager', region_name=region_name, endpoint_url=endpoint_url) # type: ignore + self._secret_id = secret_id + super().__init__( + settings_cls, + case_sensitive=case_sensitive, + env_prefix=env_prefix, + env_nested_delimiter=env_nested_delimiter, + env_ignore_empty=False, + env_parse_none_str=env_parse_none_str, + env_parse_enums=env_parse_enums, + ) + + def _load_env_vars(self) -> Mapping[str, str | None]: + response = self._secretsmanager_client.get_secret_value(SecretId=self._secret_id) # type: ignore + + return parse_env_vars( + json.loads(response['SecretString']), + self.case_sensitive, + self.env_ignore_empty, + self.env_parse_none_str, + ) + + def __repr__(self) -> str: + return ( + f'{self.__class__.__name__}(secret_id={self._secret_id!r}, ' + f'env_nested_delimiter={self.env_nested_delimiter!r})' + ) + + +__all__ = [ + 'AWSSecretsManagerSettingsSource', +] diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/azure.py b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/azure.py new file mode 100644 index 0000000..640b006 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/azure.py @@ -0,0 +1,145 @@ +"""Azure Key Vault settings source.""" + +from __future__ import annotations as _annotations + +from collections.abc import Iterator, Mapping +from typing import TYPE_CHECKING + +from pydantic.alias_generators import to_snake +from pydantic.fields import FieldInfo + +from .env import EnvSettingsSource + +if TYPE_CHECKING: + from azure.core.credentials import TokenCredential + from azure.core.exceptions import ResourceNotFoundError + from azure.keyvault.secrets import SecretClient + + from pydantic_settings.main import BaseSettings +else: + TokenCredential = None + ResourceNotFoundError = None + SecretClient = None + + +def import_azure_key_vault() -> None: + global TokenCredential + global SecretClient + global ResourceNotFoundError + + try: + from azure.core.credentials import TokenCredential + from azure.core.exceptions import ResourceNotFoundError + from azure.keyvault.secrets import SecretClient + except ImportError as e: # pragma: no cover + raise ImportError( + 'Azure Key Vault dependencies are not installed, run `pip install pydantic-settings[azure-key-vault]`' + ) from e + + +class AzureKeyVaultMapping(Mapping[str, str | None]): + _loaded_secrets: dict[str, str | None] + _secret_client: SecretClient + _secret_names: list[str] + + def __init__( + self, + secret_client: SecretClient, + case_sensitive: bool, + snake_case_conversion: bool, + ) -> None: + self._loaded_secrets = {} + self._secret_client = secret_client + self._case_sensitive = case_sensitive + self._snake_case_conversion = snake_case_conversion + self._secret_map: dict[str, str] = self._load_remote() + + def _load_remote(self) -> dict[str, str]: + secret_names: Iterator[str] = ( + secret.name for secret in self._secret_client.list_properties_of_secrets() if secret.name and secret.enabled + ) + + if self._snake_case_conversion: + return {to_snake(name): name for name in secret_names} + + if self._case_sensitive: + return {name: name for name in secret_names} + + return {name.lower(): name for name in secret_names} + + def __getitem__(self, key: str) -> str | None: + new_key = key + + if self._snake_case_conversion: + new_key = to_snake(key) + elif not self._case_sensitive: + new_key = key.lower() + + if new_key not in self._loaded_secrets: + if new_key in self._secret_map: + self._loaded_secrets[new_key] = self._secret_client.get_secret(self._secret_map[new_key]).value + else: + raise KeyError(key) + + return self._loaded_secrets[new_key] + + def __len__(self) -> int: + return len(self._secret_map) + + def __iter__(self) -> Iterator[str]: + return iter(self._secret_map.keys()) + + +class AzureKeyVaultSettingsSource(EnvSettingsSource): + _url: str + _credential: TokenCredential + + def __init__( + self, + settings_cls: type[BaseSettings], + url: str, + credential: TokenCredential, + dash_to_underscore: bool = False, + case_sensitive: bool | None = None, + snake_case_conversion: bool = False, + env_prefix: str | None = None, + env_parse_none_str: str | None = None, + env_parse_enums: bool | None = None, + ) -> None: + import_azure_key_vault() + self._url = url + self._credential = credential + self._dash_to_underscore = dash_to_underscore + self._snake_case_conversion = snake_case_conversion + super().__init__( + settings_cls, + case_sensitive=False if snake_case_conversion else case_sensitive, + env_prefix=env_prefix, + env_nested_delimiter='__' if snake_case_conversion else '--', + env_ignore_empty=False, + env_parse_none_str=env_parse_none_str, + env_parse_enums=env_parse_enums, + ) + + def _load_env_vars(self) -> Mapping[str, str | None]: + secret_client = SecretClient(vault_url=self._url, credential=self._credential) + return AzureKeyVaultMapping( + secret_client=secret_client, + case_sensitive=self.case_sensitive, + snake_case_conversion=self._snake_case_conversion, + ) + + def _extract_field_info(self, field: FieldInfo, field_name: str) -> list[tuple[str, str, bool]]: + if self._snake_case_conversion: + return list((x[0], x[0], x[2]) for x in super()._extract_field_info(field, field_name)) + + if self._dash_to_underscore: + return list((x[0], x[1].replace('_', '-'), x[2]) for x in super()._extract_field_info(field, field_name)) + + return super()._extract_field_info(field, field_name) + + def __repr__(self) -> str: + return f'{self.__class__.__name__}(url={self._url!r}, env_nested_delimiter={self.env_nested_delimiter!r})' + + +__all__ = ['AzureKeyVaultMapping', 'AzureKeyVaultSettingsSource'] diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/cli.py b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/cli.py new file mode 100644 index 0000000..7f05ce4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/cli.py @@ -0,0 +1,1357 @@ +"""Command-line interface settings source.""" + +from __future__ import annotations as _annotations + +import json +import re +import shlex +import sys +import typing +from argparse import ( + SUPPRESS, + ArgumentParser, + BooleanOptionalAction, + Namespace, + RawDescriptionHelpFormatter, + _SubParsersAction, +) +from collections import defaultdict +from collections.abc import Callable, Mapping, Sequence +from enum import Enum +from functools import cached_property +from textwrap import dedent +from types import SimpleNamespace +from typing import ( + TYPE_CHECKING, + Annotated, + Any, + Generic, + Literal, + NoReturn, + TypeVar, + cast, + get_args, + get_origin, + overload, +) + +import typing_extensions +from pydantic import AliasChoices, AliasPath, BaseModel, Field, PrivateAttr +from pydantic._internal._repr import Representation +from pydantic._internal._utils import is_model_class +from pydantic.dataclasses import is_pydantic_dataclass +from pydantic.fields import FieldInfo +from pydantic_core import PydanticUndefined +from typing_inspection import typing_objects +from typing_inspection.introspection import is_union_origin + +from ...exceptions import SettingsError +from ...utils import _lenient_issubclass, _WithArgsTypes +from ..types import ( + ForceDecode, + NoDecode, + PydanticModel, + _CliExplicitFlag, + _CliImplicitFlag, + _CliPositionalArg, + _CliSubCommand, + _CliUnknownArgs, +) +from ..utils import ( + _annotation_contains_types, + _annotation_enum_val_to_name, + _get_alias_names, + _get_model_fields, + _is_function, + _strip_annotated, + parse_env_vars, +) +from .env import EnvSettingsSource + +if TYPE_CHECKING: + from pydantic_settings.main import BaseSettings + + +class _CliInternalArgParser(ArgumentParser): + def __init__(self, cli_exit_on_error: bool = True, **kwargs: Any) -> None: + super().__init__(**kwargs) + self._cli_exit_on_error = cli_exit_on_error + + def error(self, message: str) -> NoReturn: + if not self._cli_exit_on_error: + raise SettingsError(f'error parsing CLI: {message}') + super().error(message) + + +class CliMutuallyExclusiveGroup(BaseModel): + pass + + +class _CliArg(BaseModel): + model: Any + field_name: str + arg_prefix: str + case_sensitive: bool + hide_none_type: bool + kebab_case: bool | Literal['all', 'no_enums'] | None + enable_decoding: bool | None + env_prefix_len: int + args: list[str] = [] + kwargs: dict[str, Any] = {} + + _alias_names: tuple[str, ...] = PrivateAttr(()) + _alias_paths: dict[str, int | None] = PrivateAttr({}) + _is_alias_path_only: bool = PrivateAttr(False) + _field_info: FieldInfo = PrivateAttr() + + def __init__( + self, + field_info: FieldInfo, + parser_map: defaultdict[str | FieldInfo, dict[int | None | str, _CliArg]], + **values: Any, + ) -> None: + super().__init__(**values) + self._field_info = field_info + self._alias_names, self._is_alias_path_only = _get_alias_names( + self.field_name, self.field_info, alias_path_args=self._alias_paths, case_sensitive=self.case_sensitive + ) + + alias_path_dests = {f'{self.arg_prefix}{name}': index for name, index in self._alias_paths.items()} + if self.subcommand_dest: + for sub_model in self.sub_models: + subcommand_alias = self.subcommand_alias(sub_model) + parser_map[self.subcommand_dest][subcommand_alias] = self.model_copy(update={'args': [], 'kwargs': {}}) + parser_map[self.field_info][subcommand_alias] = parser_map[self.subcommand_dest][subcommand_alias] + elif self.dest not in alias_path_dests: + parser_map[self.dest][None] = self + parser_map[self.field_info][None] = parser_map[self.dest][None] + for alias_path_dest, index in alias_path_dests.items(): + parser_map[alias_path_dest][index] = self.model_copy(update={'args': [], 'kwargs': {}}) + parser_map[self.field_info][index] = parser_map[alias_path_dest][index] + + @classmethod + def get_kebab_case(cls, name: str, kebab_case: bool | Literal['all', 'no_enums'] | None) -> str: + return name.replace('_', '-') if kebab_case not in (None, False) else name + + @classmethod + def get_enum_names( + cls, annotation: type[Any], kebab_case: bool | Literal['all', 'no_enums'] | None + ) -> tuple[str, ...]: + enum_names: tuple[str, ...] = () + annotation = _strip_annotated(annotation) + for type_ in get_args(annotation): + enum_names += cls.get_enum_names(type_, kebab_case) + if annotation and _lenient_issubclass(annotation, Enum): + enum_names += tuple(cls.get_kebab_case(val.name, kebab_case == 'all') for val in annotation) + return enum_names + + def subcommand_alias(self, sub_model: type[BaseModel]) -> str: + return self.get_kebab_case( + sub_model.__name__ if len(self.sub_models) > 1 else self.preferred_alias, self.kebab_case + ) + + @cached_property + def field_info(self) -> FieldInfo: + return self._field_info + + @cached_property + def subcommand_dest(self) -> str | None: + return f'{self.arg_prefix}:subcommand' if _CliSubCommand in self.field_info.metadata else None + + @cached_property + def dest(self) -> str: + if ( + not self.subcommand_dest + and self.arg_prefix + and self.field_info.validation_alias is not None + and not self.is_parser_submodel + ): + # Strip prefix if validation alias is set and value is not complex. + # Related https://github.com/pydantic/pydantic-settings/pull/25 + return f'{self.arg_prefix}{self.preferred_alias}'[self.env_prefix_len :] + return f'{self.arg_prefix}{self.preferred_alias}' + + @cached_property + def preferred_arg_name(self) -> str: + return self.args[0].replace('_', '-') if self.kebab_case else self.args[0] + + @cached_property + def sub_models(self) -> list[type[BaseModel]]: + field_types: tuple[Any, ...] = ( + (self.field_info.annotation,) + if not get_args(self.field_info.annotation) + else get_args(self.field_info.annotation) + ) + if self.hide_none_type: + field_types = tuple([type_ for type_ in field_types if type_ is not type(None)]) + + sub_models: list[type[BaseModel]] = [] + for type_ in field_types: + if _annotation_contains_types(type_, (_CliSubCommand,), is_include_origin=False): + raise SettingsError( + f'CliSubCommand is not outermost annotation for {self.model.__name__}.{self.field_name}' + ) + elif _annotation_contains_types(type_, (_CliPositionalArg,), is_include_origin=False): + raise SettingsError( + f'CliPositionalArg is not outermost annotation for {self.model.__name__}.{self.field_name}' + ) + if is_model_class(_strip_annotated(type_)) or is_pydantic_dataclass(_strip_annotated(type_)): + sub_models.append(_strip_annotated(type_)) + return sub_models + + @cached_property + def alias_names(self) -> tuple[str, ...]: + return self._alias_names + + @cached_property + def alias_paths(self) -> dict[str, int | None]: + return self._alias_paths + + @cached_property + def preferred_alias(self) -> str: + return self._alias_names[0] + + @cached_property + def is_alias_path_only(self) -> bool: + return self._is_alias_path_only + + @cached_property + def is_append_action(self) -> bool: + return not self.subcommand_dest and _annotation_contains_types( + self.field_info.annotation, (list, set, dict, Sequence, Mapping), is_strip_annotated=True + ) + + @cached_property + def is_parser_submodel(self) -> bool: + return not self.subcommand_dest and bool(self.sub_models) and not self.is_append_action + + @cached_property + def is_no_decode(self) -> bool: + return self.field_info is not None and ( + NoDecode in self.field_info.metadata + or (self.enable_decoding is False and ForceDecode not in self.field_info.metadata) + ) + + +T = TypeVar('T') +CliSubCommand = Annotated[T | None, _CliSubCommand] +CliPositionalArg = Annotated[T, _CliPositionalArg] +_CliBoolFlag = TypeVar('_CliBoolFlag', bound=bool) +CliImplicitFlag = Annotated[_CliBoolFlag, _CliImplicitFlag] +CliExplicitFlag = Annotated[_CliBoolFlag, _CliExplicitFlag] +CLI_SUPPRESS = SUPPRESS +CliSuppress = Annotated[T, CLI_SUPPRESS] +CliUnknownArgs = Annotated[list[str], Field(default=[]), _CliUnknownArgs, NoDecode] + + +class CliSettingsSource(EnvSettingsSource, Generic[T]): + """ + Source class for loading settings values from CLI. + + Note: + A `CliSettingsSource` connects with a `root_parser` object by using the parser methods to add + `settings_cls` fields as command line arguments. The `CliSettingsSource` internal parser representation + is based upon the `argparse` parsing library, and therefore, requires the parser methods to support + the same attributes as their `argparse` library counterparts. + + Args: + cli_prog_name: The CLI program name to display in help text. Defaults to `None` if cli_parse_args is `None`. + Otherwise, defaults to sys.argv[0]. + cli_parse_args: The list of CLI arguments to parse. Defaults to None. + If set to `True`, defaults to sys.argv[1:]. + cli_parse_none_str: The CLI string value that should be parsed (e.g. "null", "void", "None", etc.) into `None` + type(None). Defaults to "null" if cli_avoid_json is `False`, and "None" if cli_avoid_json is `True`. + cli_hide_none_type: Hide `None` values in CLI help text. Defaults to `False`. + cli_avoid_json: Avoid complex JSON objects in CLI help text. Defaults to `False`. + cli_enforce_required: Enforce required fields at the CLI. Defaults to `False`. + cli_use_class_docs_for_groups: Use class docstrings in CLI group help text instead of field descriptions. + Defaults to `False`. + cli_exit_on_error: Determines whether or not the internal parser exits with error info when an error occurs. + Defaults to `True`. + cli_prefix: Prefix for command line arguments added under the root parser. Defaults to "". + cli_flag_prefix_char: The flag prefix character to use for CLI optional arguments. Defaults to '-'. + cli_implicit_flags: Whether `bool` fields should be implicitly converted into CLI boolean flags. + (e.g. --flag, --no-flag). Defaults to `False`. + cli_ignore_unknown_args: Whether to ignore unknown CLI args and parse only known ones. Defaults to `False`. + cli_kebab_case: CLI args use kebab case. Defaults to `False`. + cli_shortcuts: Mapping of target field name to alias names. Defaults to `None`. + case_sensitive: Whether CLI "--arg" names should be read with case-sensitivity. Defaults to `True`. + Note: Case-insensitive matching is only supported on the internal root parser and does not apply to CLI + subcommands. + root_parser: The root parser object. + parse_args_method: The root parser parse args method. Defaults to `argparse.ArgumentParser.parse_args`. + add_argument_method: The root parser add argument method. Defaults to `argparse.ArgumentParser.add_argument`. + add_argument_group_method: The root parser add argument group method. + Defaults to `argparse.ArgumentParser.add_argument_group`. + add_parser_method: The root parser add new parser (sub-command) method. + Defaults to `argparse._SubParsersAction.add_parser`. + add_subparsers_method: The root parser add subparsers (sub-commands) method. + Defaults to `argparse.ArgumentParser.add_subparsers`. + formatter_class: A class for customizing the root parser help text. Defaults to `argparse.RawDescriptionHelpFormatter`. + """ + + def __init__( + self, + settings_cls: type[BaseSettings], + cli_prog_name: str | None = None, + cli_parse_args: bool | list[str] | tuple[str, ...] | None = None, + cli_parse_none_str: str | None = None, + cli_hide_none_type: bool | None = None, + cli_avoid_json: bool | None = None, + cli_enforce_required: bool | None = None, + cli_use_class_docs_for_groups: bool | None = None, + cli_exit_on_error: bool | None = None, + cli_prefix: str | None = None, + cli_flag_prefix_char: str | None = None, + cli_implicit_flags: bool | None = None, + cli_ignore_unknown_args: bool | None = None, + cli_kebab_case: bool | Literal['all', 'no_enums'] | None = None, + cli_shortcuts: Mapping[str, str | list[str]] | None = None, + case_sensitive: bool | None = True, + root_parser: Any = None, + parse_args_method: Callable[..., Any] | None = None, + add_argument_method: Callable[..., Any] | None = ArgumentParser.add_argument, + add_argument_group_method: Callable[..., Any] | None = ArgumentParser.add_argument_group, + add_parser_method: Callable[..., Any] | None = _SubParsersAction.add_parser, + add_subparsers_method: Callable[..., Any] | None = ArgumentParser.add_subparsers, + formatter_class: Any = RawDescriptionHelpFormatter, + ) -> None: + self.cli_prog_name = ( + cli_prog_name if cli_prog_name is not None else settings_cls.model_config.get('cli_prog_name', sys.argv[0]) + ) + self.cli_hide_none_type = ( + cli_hide_none_type + if cli_hide_none_type is not None + else settings_cls.model_config.get('cli_hide_none_type', False) + ) + self.cli_avoid_json = ( + cli_avoid_json if cli_avoid_json is not None else settings_cls.model_config.get('cli_avoid_json', False) + ) + if not cli_parse_none_str: + cli_parse_none_str = 'None' if self.cli_avoid_json is True else 'null' + self.cli_parse_none_str = cli_parse_none_str + self.cli_enforce_required = ( + cli_enforce_required + if cli_enforce_required is not None + else settings_cls.model_config.get('cli_enforce_required', False) + ) + self.cli_use_class_docs_for_groups = ( + cli_use_class_docs_for_groups + if cli_use_class_docs_for_groups is not None + else settings_cls.model_config.get('cli_use_class_docs_for_groups', False) + ) + self.cli_exit_on_error = ( + cli_exit_on_error + if cli_exit_on_error is not None + else settings_cls.model_config.get('cli_exit_on_error', True) + ) + self.cli_prefix = cli_prefix if cli_prefix is not None else settings_cls.model_config.get('cli_prefix', '') + self.cli_flag_prefix_char = ( + cli_flag_prefix_char + if cli_flag_prefix_char is not None + else settings_cls.model_config.get('cli_flag_prefix_char', '-') + ) + self._cli_flag_prefix = self.cli_flag_prefix_char * 2 + if self.cli_prefix: + if cli_prefix.startswith('.') or cli_prefix.endswith('.') or not cli_prefix.replace('.', '').isidentifier(): # type: ignore + raise SettingsError(f'CLI settings source prefix is invalid: {cli_prefix}') + self.cli_prefix += '.' + self.cli_implicit_flags = ( + cli_implicit_flags + if cli_implicit_flags is not None + else settings_cls.model_config.get('cli_implicit_flags', False) + ) + self.cli_ignore_unknown_args = ( + cli_ignore_unknown_args + if cli_ignore_unknown_args is not None + else settings_cls.model_config.get('cli_ignore_unknown_args', False) + ) + self.cli_kebab_case = ( + cli_kebab_case if cli_kebab_case is not None else settings_cls.model_config.get('cli_kebab_case', False) + ) + self.cli_shortcuts = ( + cli_shortcuts if cli_shortcuts is not None else settings_cls.model_config.get('cli_shortcuts', None) + ) + + case_sensitive = case_sensitive if case_sensitive is not None else True + if not case_sensitive and root_parser is not None: + raise SettingsError('Case-insensitive matching is only supported on the internal root parser') + + super().__init__( + settings_cls, + env_nested_delimiter='.', + env_parse_none_str=self.cli_parse_none_str, + env_parse_enums=True, + env_prefix=self.cli_prefix, + case_sensitive=case_sensitive, + ) + + root_parser = ( + _CliInternalArgParser( + cli_exit_on_error=self.cli_exit_on_error, + prog=self.cli_prog_name, + description=None if settings_cls.__doc__ is None else dedent(settings_cls.__doc__), + formatter_class=formatter_class, + prefix_chars=self.cli_flag_prefix_char, + allow_abbrev=False, + ) + if root_parser is None + else root_parser + ) + self._connect_root_parser( + root_parser=root_parser, + parse_args_method=parse_args_method, + add_argument_method=add_argument_method, + add_argument_group_method=add_argument_group_method, + add_parser_method=add_parser_method, + add_subparsers_method=add_subparsers_method, + formatter_class=formatter_class, + ) + + if cli_parse_args not in (None, False): + if cli_parse_args is True: + cli_parse_args = sys.argv[1:] + elif not isinstance(cli_parse_args, (list, tuple)): + raise SettingsError( + f'cli_parse_args must be a list or tuple of strings, received {type(cli_parse_args)}' + ) + self._load_env_vars(parsed_args=self._parse_args(self.root_parser, cli_parse_args)) + + @overload + def __call__(self) -> dict[str, Any]: ... + + @overload + def __call__(self, *, args: list[str] | tuple[str, ...] | bool) -> CliSettingsSource[T]: + """ + Parse and load the command line arguments list into the CLI settings source. + + Args: + args: + The command line arguments to parse and load. Defaults to `None`, which means do not parse + command line arguments. If set to `True`, defaults to sys.argv[1:]. If set to `False`, does + not parse command line arguments. + + Returns: + CliSettingsSource: The object instance itself. + """ + ... + + @overload + def __call__(self, *, parsed_args: Namespace | SimpleNamespace | dict[str, Any]) -> CliSettingsSource[T]: + """ + Loads parsed command line arguments into the CLI settings source. + + Note: + The parsed args must be in `argparse.Namespace`, `SimpleNamespace`, or vars dictionary + (e.g., vars(argparse.Namespace)) format. + + Args: + parsed_args: The parsed args to load. + + Returns: + CliSettingsSource: The object instance itself. + """ + ... + + def __call__( + self, + *, + args: list[str] | tuple[str, ...] | bool | None = None, + parsed_args: Namespace | SimpleNamespace | dict[str, list[str] | str] | None = None, + ) -> dict[str, Any] | CliSettingsSource[T]: + if args is not None and parsed_args is not None: + raise SettingsError('`args` and `parsed_args` are mutually exclusive') + elif args is not None: + if args is False: + return self._load_env_vars(parsed_args={}) + if args is True: + args = sys.argv[1:] + return self._load_env_vars(parsed_args=self._parse_args(self.root_parser, args)) + elif parsed_args is not None: + return self._load_env_vars(parsed_args=parsed_args) + else: + return super().__call__() + + @overload + def _load_env_vars(self) -> Mapping[str, str | None]: ... + + @overload + def _load_env_vars(self, *, parsed_args: Namespace | SimpleNamespace | dict[str, Any]) -> CliSettingsSource[T]: + """ + Loads the parsed command line arguments into the CLI environment settings variables. + + Note: + The parsed args must be in `argparse.Namespace`, `SimpleNamespace`, or vars dictionary + (e.g., vars(argparse.Namespace)) format. + + Args: + parsed_args: The parsed args to load. + + Returns: + CliSettingsSource: The object instance itself. + """ + ... + + def _load_env_vars( + self, *, parsed_args: Namespace | SimpleNamespace | dict[str, list[str] | str] | None = None + ) -> Mapping[str, str | None] | CliSettingsSource[T]: + if parsed_args is None: + return {} + + if isinstance(parsed_args, (Namespace, SimpleNamespace)): + parsed_args = vars(parsed_args) + + selected_subcommands = self._resolve_parsed_args(parsed_args) + for arg_dest, arg_map in self._parser_map.items(): + if isinstance(arg_dest, str) and arg_dest.endswith(':subcommand'): + for subcommand_dest in [arg.dest for arg in arg_map.values()]: + if subcommand_dest not in selected_subcommands: + parsed_args[subcommand_dest] = self.cli_parse_none_str + + parsed_args = { + key: val + for key, val in parsed_args.items() + if not key.endswith(':subcommand') and val is not PydanticUndefined + } + if selected_subcommands: + last_selected_subcommand = max(selected_subcommands, key=len) + if not any(field_name for field_name in parsed_args.keys() if f'{last_selected_subcommand}.' in field_name): + parsed_args[last_selected_subcommand] = '{}' + + parsed_args.update(self._cli_unknown_args) + + self.env_vars = parse_env_vars( + cast(Mapping[str, str], parsed_args), + self.case_sensitive, + self.env_ignore_empty, + self.cli_parse_none_str, + ) + + return self + + def _resolve_parsed_args(self, parsed_args: dict[str, list[str] | str]) -> list[str]: + selected_subcommands: list[str] = [] + for field_name, val in list(parsed_args.items()): + if isinstance(val, list): + if self._is_nested_alias_path_only_workaround(parsed_args, field_name, val): + # Workaround for nested alias path environment variables not being handled. + # See https://github.com/pydantic/pydantic-settings/issues/670 + continue + + cli_arg = self._parser_map.get(field_name, {}).get(None) + if cli_arg and cli_arg.is_no_decode: + parsed_args[field_name] = ','.join(val) + continue + + parsed_args[field_name] = self._merge_parsed_list(val, field_name) + elif field_name.endswith(':subcommand') and val is not None: + selected_subcommands.append(self._parser_map[field_name][val].dest) + elif self.cli_kebab_case == 'all': + snake_val = val.replace('-', '_') + cli_arg = self._parser_map.get(field_name, {}).get(None) + if ( + cli_arg + and cli_arg.field_info.annotation + and (snake_val in cli_arg.get_enum_names(cli_arg.field_info.annotation, False)) + ): + if '_' in val: + raise ValueError(f'Input should be kebab-case "{val.replace("_", "-")}", not "{val}"') + parsed_args[field_name] = snake_val + + return selected_subcommands + + def _is_nested_alias_path_only_workaround( + self, parsed_args: dict[str, list[str] | str], field_name: str, val: list[str] + ) -> bool: + """ + Workaround for nested alias path environment variables not being handled. + See https://github.com/pydantic/pydantic-settings/issues/670 + """ + known_arg = self._parser_map.get(field_name, {}).values() + if not known_arg: + return False + arg = next(iter(known_arg)) + if arg.is_alias_path_only and arg.arg_prefix.endswith('.'): + del parsed_args[field_name] + nested_dest = arg.arg_prefix[:-1] + nested_val = f'"{arg.preferred_alias}": {self._merge_parsed_list(val, field_name)}' + parsed_args[nested_dest] = ( + f'{{{nested_val}}}' + if nested_dest not in parsed_args + else f'{parsed_args[nested_dest][:-1]}, {nested_val}}}' + ) + return True + return False + + def _get_merge_parsed_list_types(self, parsed_list: list[str], field_name: str) -> tuple[type | None, type | None]: + merge_type = self._cli_dict_args.get(field_name, list) + if ( + merge_type is list + or not is_union_origin(get_origin(merge_type)) + or not any( + type_ + for type_ in get_args(merge_type) + if type_ is not type(None) and get_origin(type_) not in (dict, Mapping) + ) + ): + inferred_type = merge_type + else: + inferred_type = list if parsed_list and (len(parsed_list) > 1 or parsed_list[0].startswith('[')) else str + + return merge_type, inferred_type + + def _merged_list_to_str(self, merged_list: list[str], field_name: str) -> str: + decode_list: list[str] = [] + is_use_decode: bool | None = None + cli_arg_map = self._parser_map.get(field_name, {}) + for index, item in enumerate(merged_list): + cli_arg = cli_arg_map.get(index) + is_decode = cli_arg is None or not cli_arg.is_no_decode + if is_use_decode is None: + is_use_decode = is_decode + elif is_use_decode != is_decode: + raise SettingsError('Mixing Decode and NoDecode across different AliasPath fields is not allowed') + if is_use_decode: + item = item.replace('\\', '\\\\') + elif item.startswith('"') and item.endswith('"'): + item = item[1:-1] + decode_list.append(item) + merged_list_str = ','.join(decode_list) + return f'[{merged_list_str}]' if is_use_decode else merged_list_str + + def _merge_parsed_list(self, parsed_list: list[str], field_name: str) -> str: + try: + merged_list: list[str] = [] + is_last_consumed_a_value = False + merge_type, inferred_type = self._get_merge_parsed_list_types(parsed_list, field_name) + for val in parsed_list: + if not isinstance(val, str): + # If val is not a string, it's from an external parser and we can ignore parsing the rest of the + # list. + break + val = val.strip() + if val.startswith('[') and val.endswith(']'): + val = val[1:-1].strip() + while val: + val = val.strip() + if val.startswith(','): + val = self._consume_comma(val, merged_list, is_last_consumed_a_value) + is_last_consumed_a_value = False + else: + if val.startswith('{') or val.startswith('['): + val = self._consume_object_or_array(val, merged_list) + else: + try: + val = self._consume_string_or_number(val, merged_list, merge_type) + except ValueError as e: + if merge_type is inferred_type: + raise e + merge_type = inferred_type + val = self._consume_string_or_number(val, merged_list, merge_type) + is_last_consumed_a_value = True + if not is_last_consumed_a_value: + val = self._consume_comma(val, merged_list, is_last_consumed_a_value) + + if merge_type is str: + return merged_list[0] + elif merge_type is list: + return self._merged_list_to_str(merged_list, field_name) + else: + merged_dict: dict[str, str] = {} + for item in merged_list: + merged_dict.update(json.loads(item)) + return json.dumps(merged_dict) + except Exception as e: + raise SettingsError(f'Parsing error encountered for {field_name}: {e}') + + def _consume_comma(self, item: str, merged_list: list[str], is_last_consumed_a_value: bool) -> str: + if not is_last_consumed_a_value: + merged_list.append('""') + return item[1:] + + def _consume_object_or_array(self, item: str, merged_list: list[str]) -> str: + count = 1 + close_delim = '}' if item.startswith('{') else ']' + in_str = False + for consumed in range(1, len(item)): + if item[consumed] == '"' and item[consumed - 1] != '\\': + in_str = not in_str + elif in_str: + continue + elif item[consumed] in ('{', '['): + count += 1 + elif item[consumed] in ('}', ']'): + count -= 1 + if item[consumed] == close_delim and count == 0: + merged_list.append(item[: consumed + 1]) + return item[consumed + 1 :] + raise SettingsError(f'Missing end delimiter "{close_delim}"') + + def _consume_string_or_number(self, item: str, merged_list: list[str], merge_type: type[Any] | None) -> str: + consumed = 0 if merge_type is not str else len(item) + is_find_end_quote = False + while consumed < len(item): + if item[consumed] == '"' and (consumed == 0 or item[consumed - 1] != '\\'): + is_find_end_quote = not is_find_end_quote + if not is_find_end_quote and item[consumed] == ',': + break + consumed += 1 + if is_find_end_quote: + raise SettingsError('Mismatched quotes') + val_string = item[:consumed].strip() + if merge_type in (list, str): + try: + float(val_string) + except ValueError: + if val_string == self.cli_parse_none_str: + val_string = 'null' + if val_string not in ('true', 'false', 'null') and not val_string.startswith('"'): + val_string = f'"{val_string}"' + merged_list.append(val_string) + else: + key, val = (kv for kv in val_string.split('=', 1)) + if key.startswith('"') and not key.endswith('"') and not val.startswith('"') and val.endswith('"'): + raise ValueError(f'Dictionary key=val parameter is a quoted string: {val_string}') + key, val = key.strip('"'), val.strip('"') + merged_list.append(json.dumps({key: val})) + return item[consumed:] + + def _verify_cli_flag_annotations(self, model: type[BaseModel], field_name: str, field_info: FieldInfo) -> None: + if _CliImplicitFlag in field_info.metadata: + cli_flag_name = 'CliImplicitFlag' + elif _CliExplicitFlag in field_info.metadata: + cli_flag_name = 'CliExplicitFlag' + else: + return + + if field_info.annotation is not bool: + raise SettingsError(f'{cli_flag_name} argument {model.__name__}.{field_name} is not of type bool') + + def _sort_arg_fields(self, model: type[BaseModel]) -> list[tuple[str, FieldInfo]]: + positional_variadic_arg = [] + positional_args, subcommand_args, optional_args = [], [], [] + for field_name, field_info in _get_model_fields(model).items(): + if _CliSubCommand in field_info.metadata: + if not field_info.is_required(): + raise SettingsError(f'subcommand argument {model.__name__}.{field_name} has a default value') + else: + alias_names, *_ = _get_alias_names(field_name, field_info) + if len(alias_names) > 1: + raise SettingsError(f'subcommand argument {model.__name__}.{field_name} has multiple aliases') + field_types = [type_ for type_ in get_args(field_info.annotation) if type_ is not type(None)] + for field_type in field_types: + if not (is_model_class(field_type) or is_pydantic_dataclass(field_type)): + raise SettingsError( + f'subcommand argument {model.__name__}.{field_name} has type not derived from BaseModel' + ) + subcommand_args.append((field_name, field_info)) + elif _CliPositionalArg in field_info.metadata: + alias_names, *_ = _get_alias_names(field_name, field_info) + if len(alias_names) > 1: + raise SettingsError(f'positional argument {model.__name__}.{field_name} has multiple aliases') + is_append_action = _annotation_contains_types( + field_info.annotation, (list, set, dict, Sequence, Mapping), is_strip_annotated=True + ) + if not is_append_action: + positional_args.append((field_name, field_info)) + else: + positional_variadic_arg.append((field_name, field_info)) + else: + self._verify_cli_flag_annotations(model, field_name, field_info) + optional_args.append((field_name, field_info)) + + if positional_variadic_arg: + if len(positional_variadic_arg) > 1: + field_names = ', '.join([name for name, info in positional_variadic_arg]) + raise SettingsError(f'{model.__name__} has multiple variadic positional arguments: {field_names}') + elif subcommand_args: + field_names = ', '.join([name for name, info in positional_variadic_arg + subcommand_args]) + raise SettingsError( + f'{model.__name__} has variadic positional arguments and subcommand arguments: {field_names}' + ) + + return positional_args + positional_variadic_arg + subcommand_args + optional_args + + @property + def root_parser(self) -> T: + """The connected root parser instance.""" + return self._root_parser + + def _connect_parser_method( + self, parser_method: Callable[..., Any] | None, method_name: str, *args: Any, **kwargs: Any + ) -> Callable[..., Any]: + if ( + parser_method is not None + and self.case_sensitive is False + and method_name == 'parse_args_method' + and isinstance(self._root_parser, _CliInternalArgParser) + ): + + def parse_args_insensitive_method( + root_parser: _CliInternalArgParser, + args: list[str] | tuple[str, ...] | None = None, + namespace: Namespace | None = None, + ) -> Any: + insensitive_args = [] + for arg in shlex.split(shlex.join(args)) if args else []: + flag_prefix = rf'\{self.cli_flag_prefix_char}{{1,2}}' + matched = re.match(rf'^({flag_prefix}[^\s=]+)(.*)', arg) + if matched: + arg = matched.group(1).lower() + matched.group(2) + insensitive_args.append(arg) + return parser_method(root_parser, insensitive_args, namespace) + + return parse_args_insensitive_method + + elif parser_method is None: + + def none_parser_method(*args: Any, **kwargs: Any) -> Any: + raise SettingsError( + f'cannot connect CLI settings source root parser: {method_name} is set to `None` but is needed for connecting' + ) + + return none_parser_method + + else: + return parser_method + + def _connect_group_method(self, add_argument_group_method: Callable[..., Any] | None) -> Callable[..., Any]: + add_argument_group = self._connect_parser_method(add_argument_group_method, 'add_argument_group_method') + + def add_group_method(parser: Any, **kwargs: Any) -> Any: + if not kwargs.pop('_is_cli_mutually_exclusive_group'): + kwargs.pop('required') + return add_argument_group(parser, **kwargs) + else: + main_group_kwargs = {arg: kwargs.pop(arg) for arg in ['title', 'description'] if arg in kwargs} + main_group_kwargs['title'] += ' (mutually exclusive)' + group = add_argument_group(parser, **main_group_kwargs) + if not hasattr(group, 'add_mutually_exclusive_group'): + raise SettingsError( + 'cannot connect CLI settings source root parser: ' + 'group object is missing add_mutually_exclusive_group but is needed for connecting' + ) + return group.add_mutually_exclusive_group(**kwargs) + + return add_group_method + + def _connect_root_parser( + self, + root_parser: T, + parse_args_method: Callable[..., Any] | None, + add_argument_method: Callable[..., Any] | None = ArgumentParser.add_argument, + add_argument_group_method: Callable[..., Any] | None = ArgumentParser.add_argument_group, + add_parser_method: Callable[..., Any] | None = _SubParsersAction.add_parser, + add_subparsers_method: Callable[..., Any] | None = ArgumentParser.add_subparsers, + formatter_class: Any = RawDescriptionHelpFormatter, + ) -> None: + self._cli_unknown_args: dict[str, list[str]] = {} + + def _parse_known_args(*args: Any, **kwargs: Any) -> Namespace: + args, unknown_args = ArgumentParser.parse_known_args(*args, **kwargs) + for dest in self._cli_unknown_args: + self._cli_unknown_args[dest] = unknown_args + return cast(Namespace, args) + + self._root_parser = root_parser + if parse_args_method is None: + parse_args_method = _parse_known_args if self.cli_ignore_unknown_args else ArgumentParser.parse_args + self._parse_args = self._connect_parser_method(parse_args_method, 'parse_args_method') + self._add_argument = self._connect_parser_method(add_argument_method, 'add_argument_method') + self._add_group = self._connect_group_method(add_argument_group_method) + self._add_parser = self._connect_parser_method(add_parser_method, 'add_parser_method') + self._add_subparsers = self._connect_parser_method(add_subparsers_method, 'add_subparsers_method') + self._formatter_class = formatter_class + self._cli_dict_args: dict[str, type[Any] | None] = {} + self._parser_map: defaultdict[str | FieldInfo, dict[int | None | str, _CliArg]] = defaultdict(dict) + self._add_parser_args( + parser=self.root_parser, + model=self.settings_cls, + added_args=[], + arg_prefix=self.env_prefix, + subcommand_prefix=self.env_prefix, + group=None, + alias_prefixes=[], + model_default=PydanticUndefined, + ) + + def _add_parser_args( + self, + parser: Any, + model: type[BaseModel], + added_args: list[str], + arg_prefix: str, + subcommand_prefix: str, + group: Any, + alias_prefixes: list[str], + model_default: Any, + is_model_suppressed: bool = False, + ) -> ArgumentParser: + subparsers: Any = None + alias_path_args: dict[str, int | None] = {} + # Ignore model default if the default is a model and not a subclass of the current model. + model_default = ( + None + if ( + (is_model_class(type(model_default)) or is_pydantic_dataclass(type(model_default))) + and not issubclass(type(model_default), model) + ) + else model_default + ) + for field_name, field_info in self._sort_arg_fields(model): + arg = _CliArg( + field_info=field_info, + parser_map=self._parser_map, + model=model, + field_name=field_name, + arg_prefix=arg_prefix, + case_sensitive=self.case_sensitive, + hide_none_type=self.cli_hide_none_type, + kebab_case=self.cli_kebab_case, + enable_decoding=self.config.get('enable_decoding'), + env_prefix_len=self.env_prefix_len, + ) + alias_path_args.update(arg.alias_paths) + + if arg.subcommand_dest: + for sub_model in arg.sub_models: + subcommand_alias = arg.subcommand_alias(sub_model) + subcommand_arg = self._parser_map[arg.subcommand_dest][subcommand_alias] + subcommand_arg.args = [subcommand_alias] + subcommand_arg.kwargs['allow_abbrev'] = False + subcommand_arg.kwargs['formatter_class'] = self._formatter_class + subcommand_arg.kwargs['description'] = ( + None if sub_model.__doc__ is None else dedent(sub_model.__doc__) + ) + subcommand_arg.kwargs['help'] = None if len(arg.sub_models) > 1 else field_info.description + if self.cli_use_class_docs_for_groups: + subcommand_arg.kwargs['help'] = None if sub_model.__doc__ is None else dedent(sub_model.__doc__) + + subparsers = ( + self._add_subparsers( + parser, + title='subcommands', + dest=f'{arg_prefix}:subcommand', + description=field_info.description if len(arg.sub_models) > 1 else None, + ) + if subparsers is None + else subparsers + ) + + if hasattr(subparsers, 'metavar'): + subparsers.metavar = ( + f'{subparsers.metavar[:-1]},{subcommand_alias}}}' + if subparsers.metavar + else f'{{{subcommand_alias}}}' + ) + + self._add_parser_args( + parser=self._add_parser(subparsers, *subcommand_arg.args, **subcommand_arg.kwargs), + model=sub_model, + added_args=[], + arg_prefix=f'{arg.dest}.', + subcommand_prefix=f'{subcommand_prefix}{arg.preferred_alias}.', + group=None, + alias_prefixes=[], + model_default=PydanticUndefined, + ) + else: + flag_prefix: str = self._cli_flag_prefix + arg.kwargs['dest'] = arg.dest + arg.kwargs['default'] = CLI_SUPPRESS + arg.kwargs['help'] = self._help_format(field_name, field_info, model_default, is_model_suppressed) + arg.kwargs['metavar'] = self._metavar_format(field_info.annotation) + arg.kwargs['required'] = ( + self.cli_enforce_required and field_info.is_required() and model_default is PydanticUndefined + ) + + arg_names = self._get_arg_names( + arg_prefix, subcommand_prefix, alias_prefixes, arg.alias_names, added_args + ) + if not arg_names or (arg.kwargs['dest'] in added_args): + continue + + self._convert_append_action(arg.kwargs, field_info, arg.is_append_action) + + if _CliPositionalArg in field_info.metadata: + arg_names, flag_prefix = self._convert_positional_arg( + arg.kwargs, field_info, arg.preferred_alias, model_default + ) + + self._convert_bool_flag(arg.kwargs, field_info, model_default) + + if arg.is_parser_submodel and not getattr(field_info.annotation, '__pydantic_root_model__', False): + self._add_parser_submodels( + parser, + model, + arg.sub_models, + added_args, + arg_prefix, + subcommand_prefix, + flag_prefix, + arg_names, + arg.kwargs, + field_name, + field_info, + arg.alias_names, + model_default=model_default, + is_model_suppressed=is_model_suppressed, + ) + elif _CliUnknownArgs in field_info.metadata: + self._cli_unknown_args[arg.kwargs['dest']] = [] + elif not arg.is_alias_path_only: + if isinstance(group, dict): + group = self._add_group(parser, **group) + context = parser if group is None else group + arg.args = [f'{flag_prefix[: len(name)]}{name}' for name in arg_names] + self._add_argument(context, *arg.args, **arg.kwargs) + added_args += list(arg_names) + + self._add_parser_alias_paths(parser, alias_path_args, added_args, arg_prefix, subcommand_prefix, group) + return parser + + def _convert_append_action(self, kwargs: dict[str, Any], field_info: FieldInfo, is_append_action: bool) -> None: + if is_append_action: + kwargs['action'] = 'append' + if _annotation_contains_types(field_info.annotation, (dict, Mapping), is_strip_annotated=True): + self._cli_dict_args[kwargs['dest']] = field_info.annotation + + def _convert_bool_flag(self, kwargs: dict[str, Any], field_info: FieldInfo, model_default: Any) -> None: + if kwargs['metavar'] == 'bool': + if (self.cli_implicit_flags or _CliImplicitFlag in field_info.metadata) and ( + _CliExplicitFlag not in field_info.metadata + ): + del kwargs['metavar'] + kwargs['action'] = BooleanOptionalAction + + def _convert_positional_arg( + self, kwargs: dict[str, Any], field_info: FieldInfo, preferred_alias: str, model_default: Any + ) -> tuple[list[str], str]: + flag_prefix = '' + arg_names = [kwargs['dest']] + kwargs['default'] = PydanticUndefined + kwargs['metavar'] = _CliArg.get_kebab_case(preferred_alias.upper(), self.cli_kebab_case) + + # Note: CLI positional args are always strictly required at the CLI. Therefore, use field_info.is_required in + # conjunction with model_default instead of the derived kwargs['required']. + is_required = field_info.is_required() and model_default is PydanticUndefined + if kwargs.get('action') == 'append': + del kwargs['action'] + kwargs['nargs'] = '+' if is_required else '*' + elif not is_required: + kwargs['nargs'] = '?' + + del kwargs['dest'] + del kwargs['required'] + return arg_names, flag_prefix + + def _get_arg_names( + self, + arg_prefix: str, + subcommand_prefix: str, + alias_prefixes: list[str], + alias_names: tuple[str, ...], + added_args: list[str], + ) -> list[str]: + arg_names: list[str] = [] + for prefix in [arg_prefix] + alias_prefixes: + for name in alias_names: + arg_name = _CliArg.get_kebab_case( + f'{prefix}{name}' + if subcommand_prefix == self.env_prefix + else f'{prefix.replace(subcommand_prefix, "", 1)}{name}', + self.cli_kebab_case, + ) + if arg_name not in added_args: + arg_names.append(arg_name) + + if self.cli_shortcuts: + for target, aliases in self.cli_shortcuts.items(): + if target in arg_names: + alias_list = [aliases] if isinstance(aliases, str) else aliases + arg_names.extend(alias for alias in alias_list if alias not in added_args) + + return arg_names + + def _add_parser_submodels( + self, + parser: Any, + model: type[BaseModel], + sub_models: list[type[BaseModel]], + added_args: list[str], + arg_prefix: str, + subcommand_prefix: str, + flag_prefix: str, + arg_names: list[str], + kwargs: dict[str, Any], + field_name: str, + field_info: FieldInfo, + alias_names: tuple[str, ...], + model_default: Any, + is_model_suppressed: bool, + ) -> None: + if issubclass(model, CliMutuallyExclusiveGroup): + # Argparse has deprecated "calling add_argument_group() or add_mutually_exclusive_group() on a + # mutually exclusive group" (https://docs.python.org/3/library/argparse.html#mutual-exclusion). + # Since nested models result in a group add, raise an exception for nested models in a mutually + # exclusive group. + raise SettingsError('cannot have nested models in a CliMutuallyExclusiveGroup') + + model_group: Any = None + model_group_kwargs: dict[str, Any] = {} + model_group_kwargs['title'] = f'{arg_names[0]} options' + model_group_kwargs['description'] = field_info.description + model_group_kwargs['required'] = kwargs['required'] + model_group_kwargs['_is_cli_mutually_exclusive_group'] = any( + issubclass(model, CliMutuallyExclusiveGroup) for model in sub_models + ) + if model_group_kwargs['_is_cli_mutually_exclusive_group'] and len(sub_models) > 1: + raise SettingsError('cannot use union with CliMutuallyExclusiveGroup') + if self.cli_use_class_docs_for_groups and len(sub_models) == 1: + model_group_kwargs['description'] = None if sub_models[0].__doc__ is None else dedent(sub_models[0].__doc__) + + if model_default is not PydanticUndefined: + if is_model_class(type(model_default)) or is_pydantic_dataclass(type(model_default)): + model_default = getattr(model_default, field_name) + else: + if field_info.default is not PydanticUndefined: + model_default = field_info.default + elif field_info.default_factory is not None: + model_default = field_info.default_factory + if model_default is None: + desc_header = f'default: {self.cli_parse_none_str} (undefined)' + if model_group_kwargs['description'] is not None: + model_group_kwargs['description'] = dedent(f'{desc_header}\n{model_group_kwargs["description"]}') + else: + model_group_kwargs['description'] = desc_header + + preferred_alias = alias_names[0] + is_model_suppressed = self._is_field_suppressed(field_info) or is_model_suppressed + if is_model_suppressed: + model_group_kwargs['description'] = CLI_SUPPRESS + if not self.cli_avoid_json: + added_args.append(arg_names[0]) + kwargs['required'] = False + kwargs['nargs'] = '?' + kwargs['const'] = '{}' + kwargs['help'] = ( + CLI_SUPPRESS if is_model_suppressed else f'set {arg_names[0]} from JSON string (default: {{}})' + ) + model_group = self._add_group(parser, **model_group_kwargs) + self._add_argument(model_group, *(f'{flag_prefix}{name}' for name in arg_names), **kwargs) + for model in sub_models: + self._add_parser_args( + parser=parser, + model=model, + added_args=added_args, + arg_prefix=f'{arg_prefix}{preferred_alias}.', + subcommand_prefix=subcommand_prefix, + group=model_group if model_group else model_group_kwargs, + alias_prefixes=[f'{arg_prefix}{name}.' for name in alias_names[1:]], + model_default=model_default, + is_model_suppressed=is_model_suppressed, + ) + + def _add_parser_alias_paths( + self, + parser: Any, + alias_path_args: dict[str, int | None], + added_args: list[str], + arg_prefix: str, + subcommand_prefix: str, + group: Any, + ) -> None: + if alias_path_args: + context = parser + if group is not None: + context = self._add_group(parser, **group) if isinstance(group, dict) else group + for name, index in alias_path_args.items(): + arg_name = ( + f'{arg_prefix}{name}' + if subcommand_prefix == self.env_prefix + else f'{arg_prefix.replace(subcommand_prefix, "", 1)}{name}' + ) + kwargs: dict[str, Any] = {} + kwargs['default'] = CLI_SUPPRESS + kwargs['help'] = 'pydantic alias path' + kwargs['action'] = 'append' + kwargs['metavar'] = 'list' + if index is None: + kwargs['metavar'] = 'dict' + self._cli_dict_args[arg_name] = dict + args = [f'{self._cli_flag_prefix}{arg_name}'] + for key, arg in self._parser_map[arg_name].items(): + arg.args, arg.kwargs = args, kwargs + self._add_argument(context, *args, **kwargs) + added_args.append(arg_name) + + def _get_modified_args(self, obj: Any) -> tuple[str, ...]: + if not self.cli_hide_none_type: + return get_args(obj) + else: + return tuple([type_ for type_ in get_args(obj) if type_ is not type(None)]) + + def _metavar_format_choices(self, args: list[str], obj_qualname: str | None = None) -> str: + if 'JSON' in args: + args = args[: args.index('JSON') + 1] + [arg for arg in args[args.index('JSON') + 1 :] if arg != 'JSON'] + metavar = ','.join(args) + if obj_qualname: + return f'{obj_qualname}[{metavar}]' + else: + return metavar if len(args) == 1 else f'{{{metavar}}}' + + def _metavar_format_recurse(self, obj: Any) -> str: + """Pretty metavar representation of a type. Adapts logic from `pydantic._repr.display_as_type`.""" + obj = _strip_annotated(obj) + if _is_function(obj): + # If function is locally defined use __name__ instead of __qualname__ + return obj.__name__ if '' in obj.__qualname__ else obj.__qualname__ + elif obj is ...: + return '...' + elif isinstance(obj, Representation): + return repr(obj) + elif typing_objects.is_typealiastype(obj): + return str(obj) + + origin = get_origin(obj) + if origin is None and not isinstance(obj, (type, typing.ForwardRef, typing_extensions.ForwardRef)): + obj = obj.__class__ + + if is_union_origin(origin): + return self._metavar_format_choices(list(map(self._metavar_format_recurse, self._get_modified_args(obj)))) + elif typing_objects.is_literal(origin): + return self._metavar_format_choices(list(map(str, self._get_modified_args(obj)))) + elif _lenient_issubclass(obj, Enum): + return self._metavar_format_choices( + [_CliArg.get_kebab_case(val.name, self.cli_kebab_case == 'all') for val in obj] + ) + elif isinstance(obj, _WithArgsTypes): + return self._metavar_format_choices( + list(map(self._metavar_format_recurse, self._get_modified_args(obj))), + obj_qualname=obj.__qualname__ if hasattr(obj, '__qualname__') else str(obj), + ) + elif obj is type(None): + return self.cli_parse_none_str + elif is_model_class(obj) or is_pydantic_dataclass(obj): + return ( + self._metavar_format_recurse(_get_model_fields(obj)['root'].annotation) + if getattr(obj, '__pydantic_root_model__', False) + else 'JSON' + ) + elif isinstance(obj, type): + return obj.__qualname__ + else: + return repr(obj).replace('typing.', '').replace('typing_extensions.', '') + + def _metavar_format(self, obj: Any) -> str: + return self._metavar_format_recurse(obj).replace(', ', ',') + + def _help_format( + self, field_name: str, field_info: FieldInfo, model_default: Any, is_model_suppressed: bool + ) -> str: + _help = field_info.description if field_info.description else '' + if is_model_suppressed or self._is_field_suppressed(field_info): + return CLI_SUPPRESS + + if field_info.is_required() and model_default in (PydanticUndefined, None): + if _CliPositionalArg not in field_info.metadata: + ifdef = 'ifdef: ' if model_default is None else '' + _help += f' ({ifdef}required)' if _help else f'({ifdef}required)' + else: + default = f'(default: {self.cli_parse_none_str})' + if is_model_class(type(model_default)) or is_pydantic_dataclass(type(model_default)): + default = f'(default: {getattr(model_default, field_name)})' + elif model_default not in (PydanticUndefined, None) and _is_function(model_default): + default = f'(default factory: {self._metavar_format(model_default)})' + elif field_info.default not in (PydanticUndefined, None): + enum_name = _annotation_enum_val_to_name(field_info.annotation, field_info.default) + default = f'(default: {field_info.default if enum_name is None else enum_name})' + elif field_info.default_factory is not None: + default = f'(default factory: {self._metavar_format(field_info.default_factory)})' + _help += f' {default}' if _help else default + return _help.replace('%', '%%') if issubclass(type(self._root_parser), ArgumentParser) else _help + + def _is_field_suppressed(self, field_info: FieldInfo) -> bool: + _help = field_info.description if field_info.description else '' + return _help == CLI_SUPPRESS or CLI_SUPPRESS in field_info.metadata + + def _update_alias_path_only_default( + self, arg_name: str, value: Any, field_info: FieldInfo, alias_path_only_defaults: dict[str, Any] + ) -> list[Any] | dict[str, Any]: + alias_path: AliasPath = [ + alias if isinstance(alias, AliasPath) else cast(AliasPath, alias.choices[0]) + for alias in (field_info.alias, field_info.validation_alias) + if isinstance(alias, (AliasPath, AliasChoices)) + ][0] + + alias_nested_paths: list[str] = alias_path.path[1:-1] # type: ignore + if not alias_nested_paths: + alias_path_only_defaults.setdefault(arg_name, []) + alias_default = alias_path_only_defaults[arg_name] + else: + alias_path_only_defaults.setdefault(arg_name, {}) + current_path = alias_path_only_defaults[arg_name] + + for nested_path in alias_nested_paths[:-1]: + current_path.setdefault(nested_path, {}) + current_path = current_path[nested_path] + current_path.setdefault(alias_nested_paths[-1], []) + alias_default = current_path[alias_nested_paths[-1]] + + alias_path_index = cast(int, alias_path.path[-1]) + alias_default.extend([''] * max(alias_path_index + 1 - len(alias_default), 0)) + alias_default[alias_path_index] = value + return alias_path_only_defaults[arg_name] + + def _serialized_args(self, model: PydanticModel, _is_submodel: bool = False) -> list[str]: + alias_path_only_defaults: dict[str, Any] = {} + optional_args: list[str | list[Any] | dict[str, Any]] = [] + positional_args: list[str | list[Any] | dict[str, Any]] = [] + subcommand_args: list[str] = [] + for field_name, field_info in _get_model_fields(type(model) if _is_submodel else self.settings_cls).items(): + model_default = getattr(model, field_name) + if field_info.default == model_default: + continue + if _CliSubCommand in field_info.metadata and model_default is None: + continue + arg = next(iter(self._parser_map[field_info].values())) + if arg.subcommand_dest: + subcommand_args.append(arg.subcommand_alias(type(model_default))) + subcommand_args += self._serialized_args(model_default, _is_submodel=True) + continue + if is_model_class(type(model_default)) or is_pydantic_dataclass(type(model_default)): + positional_args += self._serialized_args(model_default, _is_submodel=True) + continue + + matched = re.match(r'(-*)(.+)', arg.preferred_arg_name) + flag_chars, arg_name = matched.groups() if matched else ('', '') + value: str | list[Any] | dict[str, Any] = ( + json.dumps(model_default) if isinstance(model_default, (dict, list, set)) else str(model_default) + ) + + if arg.is_alias_path_only: + # For alias path only, we wont know the complete value until we've finished parsing the entire class. In + # this case, insert value as a non-string reference pointing to the relevant alias_path_only_defaults + # entry and convert into completed string value later. + value = self._update_alias_path_only_default(arg_name, value, field_info, alias_path_only_defaults) + + if _CliPositionalArg in field_info.metadata: + for value in model_default if isinstance(model_default, list) else [model_default]: + value = json.dumps(value) if isinstance(value, (dict, list, set)) else str(value) + positional_args.append(value) + continue + + # Note: prepend 'no-' for boolean optional action flag if model_default value is False and flag is not a short option + if arg.kwargs.get('action') == BooleanOptionalAction and model_default is False and flag_chars == '--': + flag_chars += 'no-' + + optional_args.append(f'{flag_chars}{arg_name}') + + # If implicit bool flag, do not add a value + if arg.kwargs.get('action') != BooleanOptionalAction: + optional_args.append(value) + + serialized_args: list[str] = [] + serialized_args += [json.dumps(value) if not isinstance(value, str) else value for value in optional_args] + serialized_args += [json.dumps(value) if not isinstance(value, str) else value for value in positional_args] + return serialized_args + subcommand_args diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/dotenv.py b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/dotenv.py new file mode 100644 index 0000000..9816588 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/dotenv.py @@ -0,0 +1,168 @@ +"""Dotenv file settings source.""" + +from __future__ import annotations as _annotations + +import os +import warnings +from collections.abc import Mapping +from pathlib import Path +from typing import TYPE_CHECKING, Any + +from dotenv import dotenv_values +from pydantic._internal._typing_extra import ( # type: ignore[attr-defined] + get_origin, +) +from typing_inspection.introspection import is_union_origin + +from ..types import ENV_FILE_SENTINEL, DotenvType +from ..utils import ( + _annotation_is_complex, + _union_is_complex, + parse_env_vars, +) +from .env import EnvSettingsSource + +if TYPE_CHECKING: + from pydantic_settings.main import BaseSettings + + +class DotEnvSettingsSource(EnvSettingsSource): + """ + Source class for loading settings values from env files. + """ + + def __init__( + self, + settings_cls: type[BaseSettings], + env_file: DotenvType | None = ENV_FILE_SENTINEL, + env_file_encoding: str | None = None, + case_sensitive: bool | None = None, + env_prefix: str | None = None, + env_nested_delimiter: str | None = None, + env_nested_max_split: int | None = None, + env_ignore_empty: bool | None = None, + env_parse_none_str: str | None = None, + env_parse_enums: bool | None = None, + ) -> None: + self.env_file = env_file if env_file != ENV_FILE_SENTINEL else settings_cls.model_config.get('env_file') + self.env_file_encoding = ( + env_file_encoding if env_file_encoding is not None else settings_cls.model_config.get('env_file_encoding') + ) + super().__init__( + settings_cls, + case_sensitive, + env_prefix, + env_nested_delimiter, + env_nested_max_split, + env_ignore_empty, + env_parse_none_str, + env_parse_enums, + ) + + def _load_env_vars(self) -> Mapping[str, str | None]: + return self._read_env_files() + + @staticmethod + def _static_read_env_file( + file_path: Path, + *, + encoding: str | None = None, + case_sensitive: bool = False, + ignore_empty: bool = False, + parse_none_str: str | None = None, + ) -> Mapping[str, str | None]: + file_vars: dict[str, str | None] = dotenv_values(file_path, encoding=encoding or 'utf8') + return parse_env_vars(file_vars, case_sensitive, ignore_empty, parse_none_str) + + def _read_env_file( + self, + file_path: Path, + ) -> Mapping[str, str | None]: + return self._static_read_env_file( + file_path, + encoding=self.env_file_encoding, + case_sensitive=self.case_sensitive, + ignore_empty=self.env_ignore_empty, + parse_none_str=self.env_parse_none_str, + ) + + def _read_env_files(self) -> Mapping[str, str | None]: + env_files = self.env_file + if env_files is None: + return {} + + if isinstance(env_files, (str, os.PathLike)): + env_files = [env_files] + + dotenv_vars: dict[str, str | None] = {} + for env_file in env_files: + env_path = Path(env_file).expanduser() + if env_path.is_file(): + dotenv_vars.update(self._read_env_file(env_path)) + + return dotenv_vars + + def __call__(self) -> dict[str, Any]: + data: dict[str, Any] = super().__call__() + is_extra_allowed = self.config.get('extra') != 'forbid' + + # As `extra` config is allowed in dotenv settings source, We have to + # update data with extra env variables from dotenv file. + for env_name, env_value in self.env_vars.items(): + if not env_value or env_name in data or (self.env_prefix and env_name in self.settings_cls.model_fields): + continue + env_used = False + for field_name, field in self.settings_cls.model_fields.items(): + for _, field_env_name, _ in self._extract_field_info(field, field_name): + if env_name == field_env_name or ( + ( + _annotation_is_complex(field.annotation, field.metadata) + or ( + is_union_origin(get_origin(field.annotation)) + and _union_is_complex(field.annotation, field.metadata) + ) + ) + and env_name.startswith(field_env_name) + ): + env_used = True + break + if env_used: + break + if not env_used: + if is_extra_allowed and env_name.startswith(self.env_prefix): + # env_prefix should be respected and removed from the env_name + normalized_env_name = env_name[len(self.env_prefix) :] + data[normalized_env_name] = env_value + else: + data[env_name] = env_value + return data + + def __repr__(self) -> str: + return ( + f'{self.__class__.__name__}(env_file={self.env_file!r}, env_file_encoding={self.env_file_encoding!r}, ' + f'env_nested_delimiter={self.env_nested_delimiter!r}, env_prefix_len={self.env_prefix_len!r})' + ) + + +def read_env_file( + file_path: Path, + *, + encoding: str | None = None, + case_sensitive: bool = False, + ignore_empty: bool = False, + parse_none_str: str | None = None, +) -> Mapping[str, str | None]: + warnings.warn( + 'read_env_file will be removed in the next version, use DotEnvSettingsSource._static_read_env_file if you must', + DeprecationWarning, + ) + return DotEnvSettingsSource._static_read_env_file( + file_path, + encoding=encoding, + case_sensitive=case_sensitive, + ignore_empty=ignore_empty, + parse_none_str=parse_none_str, + ) + + +__all__ = ['DotEnvSettingsSource', 'read_env_file'] diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/env.py b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/env.py new file mode 100644 index 0000000..f165825 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/env.py @@ -0,0 +1,294 @@ +from __future__ import annotations as _annotations + +import os +from collections.abc import Mapping +from typing import ( + TYPE_CHECKING, + Any, + get_args, + get_origin, +) + +from pydantic import Json, TypeAdapter, ValidationError +from pydantic._internal._utils import deep_update, is_model_class +from pydantic.dataclasses import is_pydantic_dataclass +from pydantic.fields import FieldInfo +from typing_inspection.introspection import is_union_origin + +from ...utils import _lenient_issubclass +from ..base import PydanticBaseEnvSettingsSource +from ..types import EnvNoneType +from ..utils import ( + _annotation_contains_types, + _annotation_enum_name_to_val, + _get_model_fields, + _union_is_complex, + parse_env_vars, +) + +if TYPE_CHECKING: + from pydantic_settings.main import BaseSettings + + +class EnvSettingsSource(PydanticBaseEnvSettingsSource): + """ + Source class for loading settings values from environment variables. + """ + + def __init__( + self, + settings_cls: type[BaseSettings], + case_sensitive: bool | None = None, + env_prefix: str | None = None, + env_nested_delimiter: str | None = None, + env_nested_max_split: int | None = None, + env_ignore_empty: bool | None = None, + env_parse_none_str: str | None = None, + env_parse_enums: bool | None = None, + ) -> None: + super().__init__( + settings_cls, case_sensitive, env_prefix, env_ignore_empty, env_parse_none_str, env_parse_enums + ) + self.env_nested_delimiter = ( + env_nested_delimiter if env_nested_delimiter is not None else self.config.get('env_nested_delimiter') + ) + self.env_nested_max_split = ( + env_nested_max_split if env_nested_max_split is not None else self.config.get('env_nested_max_split') + ) + self.maxsplit = (self.env_nested_max_split or 0) - 1 + self.env_prefix_len = len(self.env_prefix) + + self.env_vars = self._load_env_vars() + + def _load_env_vars(self) -> Mapping[str, str | None]: + return parse_env_vars(os.environ, self.case_sensitive, self.env_ignore_empty, self.env_parse_none_str) + + def get_field_value(self, field: FieldInfo, field_name: str) -> tuple[Any, str, bool]: + """ + Gets the value for field from environment variables and a flag to determine whether value is complex. + + Args: + field: The field. + field_name: The field name. + + Returns: + A tuple that contains the value (`None` if not found), key, and + a flag to determine whether value is complex. + """ + + env_val: str | None = None + for field_key, env_name, value_is_complex in self._extract_field_info(field, field_name): + env_val = self.env_vars.get(env_name) + if env_val is not None: + break + + return env_val, field_key, value_is_complex + + def prepare_field_value(self, field_name: str, field: FieldInfo, value: Any, value_is_complex: bool) -> Any: + """ + Prepare value for the field. + + * Extract value for nested field. + * Deserialize value to python object for complex field. + + Args: + field: The field. + field_name: The field name. + + Returns: + A tuple contains prepared value for the field. + + Raises: + ValuesError: When There is an error in deserializing value for complex field. + """ + is_complex, allow_parse_failure = self._field_is_complex(field) + if self.env_parse_enums: + enum_val = _annotation_enum_name_to_val(field.annotation, value) + value = value if enum_val is None else enum_val + + if is_complex or value_is_complex: + if isinstance(value, EnvNoneType): + return value + elif value is None: + # field is complex but no value found so far, try explode_env_vars + env_val_built = self.explode_env_vars(field_name, field, self.env_vars) + if env_val_built: + return env_val_built + else: + # field is complex and there's a value, decode that as JSON, then add explode_env_vars + try: + value = self.decode_complex_value(field_name, field, value) + except ValueError as e: + if not allow_parse_failure: + raise e + + if isinstance(value, dict): + return deep_update(value, self.explode_env_vars(field_name, field, self.env_vars)) + else: + return value + elif value is not None: + # simplest case, field is not complex, we only need to add the value if it was found + return self._coerce_env_val_strict(field, value) + + def _field_is_complex(self, field: FieldInfo) -> tuple[bool, bool]: + """ + Find out if a field is complex, and if so whether JSON errors should be ignored + """ + if self.field_is_complex(field): + allow_parse_failure = False + elif is_union_origin(get_origin(field.annotation)) and _union_is_complex(field.annotation, field.metadata): + allow_parse_failure = True + else: + return False, False + + return True, allow_parse_failure + + # Default value of `case_sensitive` is `None`, because we don't want to break existing behavior. + # We have to change the method to a non-static method and use + # `self.case_sensitive` instead in V3. + def next_field( + self, field: FieldInfo | Any | None, key: str, case_sensitive: bool | None = None + ) -> FieldInfo | None: + """ + Find the field in a sub model by key(env name) + + By having the following models: + + ```py + class SubSubModel(BaseSettings): + dvals: Dict + + class SubModel(BaseSettings): + vals: list[str] + sub_sub_model: SubSubModel + + class Cfg(BaseSettings): + sub_model: SubModel + ``` + + Then: + next_field(sub_model, 'vals') Returns the `vals` field of `SubModel` class + next_field(sub_model, 'sub_sub_model') Returns `sub_sub_model` field of `SubModel` class + + Args: + field: The field. + key: The key (env name). + case_sensitive: Whether to search for key case sensitively. + + Returns: + Field if it finds the next field otherwise `None`. + """ + if not field: + return None + + annotation = field.annotation if isinstance(field, FieldInfo) else field + for type_ in get_args(annotation): + type_has_key = self.next_field(type_, key, case_sensitive) + if type_has_key: + return type_has_key + if is_model_class(annotation) or is_pydantic_dataclass(annotation): # type: ignore[arg-type] + fields = _get_model_fields(annotation) + # `case_sensitive is None` is here to be compatible with the old behavior. + # Has to be removed in V3. + for field_name, f in fields.items(): + for _, env_name, _ in self._extract_field_info(f, field_name): + if case_sensitive is None or case_sensitive: + if field_name == key or env_name == key: + return f + elif field_name.lower() == key.lower() or env_name.lower() == key.lower(): + return f + return None + + def explode_env_vars(self, field_name: str, field: FieldInfo, env_vars: Mapping[str, str | None]) -> dict[str, Any]: + """ + Process env_vars and extract the values of keys containing env_nested_delimiter into nested dictionaries. + + This is applied to a single field, hence filtering by env_var prefix. + + Args: + field_name: The field name. + field: The field. + env_vars: Environment variables. + + Returns: + A dictionary contains extracted values from nested env values. + """ + if not self.env_nested_delimiter: + return {} + + ann = field.annotation + is_dict = ann is dict or _lenient_issubclass(get_origin(ann), dict) + + prefixes = [ + f'{env_name}{self.env_nested_delimiter}' for _, env_name, _ in self._extract_field_info(field, field_name) + ] + result: dict[str, Any] = {} + for env_name, env_val in env_vars.items(): + try: + prefix = next(prefix for prefix in prefixes if env_name.startswith(prefix)) + except StopIteration: + continue + # we remove the prefix before splitting in case the prefix has characters in common with the delimiter + env_name_without_prefix = env_name[len(prefix) :] + *keys, last_key = env_name_without_prefix.split(self.env_nested_delimiter, self.maxsplit) + env_var = result + target_field: FieldInfo | None = field + for key in keys: + target_field = self.next_field(target_field, key, self.case_sensitive) + if isinstance(env_var, dict): + env_var = env_var.setdefault(key, {}) + + # get proper field with last_key + target_field = self.next_field(target_field, last_key, self.case_sensitive) + + # check if env_val maps to a complex field and if so, parse the env_val + if (target_field or is_dict) and env_val: + if target_field: + is_complex, allow_json_failure = self._field_is_complex(target_field) + if self.env_parse_enums: + enum_val = _annotation_enum_name_to_val(target_field.annotation, env_val) + env_val = env_val if enum_val is None else enum_val + else: + # nested field type is dict + is_complex, allow_json_failure = True, True + if is_complex: + try: + env_val = self.decode_complex_value(last_key, target_field, env_val) # type: ignore + except ValueError as e: + if not allow_json_failure: + raise e + if isinstance(env_var, dict): + if last_key not in env_var or not isinstance(env_val, EnvNoneType) or env_var[last_key] == {}: + env_var[last_key] = self._coerce_env_val_strict(target_field, env_val) + return result + + def _coerce_env_val_strict(self, field: FieldInfo | None, value: Any) -> Any: + """ + Coerce environment string values based on field annotation if model config is `strict=True`. + + Args: + field: The field. + value: The value to coerce. + + Returns: + The coerced value if successful, otherwise the original value. + """ + try: + if self.config.get('strict') and isinstance(value, str) and field is not None: + if value == self.env_parse_none_str: + return value + if not _annotation_contains_types(field.annotation, (Json,), is_instance=True): + return TypeAdapter(field.annotation).validate_python(value) + except ValidationError: + # Allow validation error to be raised at time of instatiation + pass + return value + + def __repr__(self) -> str: + return ( + f'{self.__class__.__name__}(env_nested_delimiter={self.env_nested_delimiter!r}, ' + f'env_prefix_len={self.env_prefix_len!r})' + ) + + +__all__ = ['EnvSettingsSource'] diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/gcp.py b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/gcp.py new file mode 100644 index 0000000..b40117e --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/gcp.py @@ -0,0 +1,152 @@ +from __future__ import annotations as _annotations + +from collections.abc import Iterator, Mapping +from functools import cached_property +from typing import TYPE_CHECKING + +from .env import EnvSettingsSource + +if TYPE_CHECKING: + from google.auth import default as google_auth_default + from google.auth.credentials import Credentials + from google.cloud.secretmanager import SecretManagerServiceClient + + from pydantic_settings.main import BaseSettings +else: + Credentials = None + SecretManagerServiceClient = None + google_auth_default = None + + +def import_gcp_secret_manager() -> None: + global Credentials + global SecretManagerServiceClient + global google_auth_default + + try: + from google.auth import default as google_auth_default + from google.auth.credentials import Credentials + from google.cloud.secretmanager import SecretManagerServiceClient + except ImportError as e: # pragma: no cover + raise ImportError( + 'GCP Secret Manager dependencies are not installed, run `pip install pydantic-settings[gcp-secret-manager]`' + ) from e + + +class GoogleSecretManagerMapping(Mapping[str, str | None]): + _loaded_secrets: dict[str, str | None] + _secret_client: SecretManagerServiceClient + + def __init__(self, secret_client: SecretManagerServiceClient, project_id: str, case_sensitive: bool) -> None: + self._loaded_secrets = {} + self._secret_client = secret_client + self._project_id = project_id + self._case_sensitive = case_sensitive + + @property + def _gcp_project_path(self) -> str: + return self._secret_client.common_project_path(self._project_id) + + @cached_property + def _secret_names(self) -> list[str]: + rv: list[str] = [] + + secrets = self._secret_client.list_secrets(parent=self._gcp_project_path) + for secret in secrets: + name = self._secret_client.parse_secret_path(secret.name).get('secret', '') + if not self._case_sensitive: + name = name.lower() + rv.append(name) + return rv + + def _secret_version_path(self, key: str, version: str = 'latest') -> str: + return self._secret_client.secret_version_path(self._project_id, key, version) + + def __getitem__(self, key: str) -> str | None: + if not self._case_sensitive: + key = key.lower() + if key not in self._loaded_secrets: + # If we know the key isn't available in secret manager, raise a key error + if key not in self._secret_names: + raise KeyError(key) + + try: + self._loaded_secrets[key] = self._secret_client.access_secret_version( + name=self._secret_version_path(key) + ).payload.data.decode('UTF-8') + except Exception: + raise KeyError(key) + + return self._loaded_secrets[key] + + def __len__(self) -> int: + return len(self._secret_names) + + def __iter__(self) -> Iterator[str]: + return iter(self._secret_names) + + +class GoogleSecretManagerSettingsSource(EnvSettingsSource): + _credentials: Credentials + _secret_client: SecretManagerServiceClient + _project_id: str + + def __init__( + self, + settings_cls: type[BaseSettings], + credentials: Credentials | None = None, + project_id: str | None = None, + env_prefix: str | None = None, + env_parse_none_str: str | None = None, + env_parse_enums: bool | None = None, + secret_client: SecretManagerServiceClient | None = None, + case_sensitive: bool | None = True, + ) -> None: + # Import Google Packages if they haven't already been imported + if SecretManagerServiceClient is None or Credentials is None or google_auth_default is None: + import_gcp_secret_manager() + + # If credentials or project_id are not passed, then + # try to get them from the default function + if not credentials or not project_id: + _creds, _project_id = google_auth_default() # type: ignore[no-untyped-call] + + # Set the credentials and/or project id if they weren't specified + if credentials is None: + credentials = _creds + + if project_id is None: + if isinstance(_project_id, str): + project_id = _project_id + else: + raise AttributeError( + 'project_id is required to be specified either as an argument or from the google.auth.default. See https://google-auth.readthedocs.io/en/master/reference/google.auth.html#google.auth.default' + ) + + self._credentials: Credentials = credentials + self._project_id: str = project_id + + if secret_client: + self._secret_client = secret_client + else: + self._secret_client = SecretManagerServiceClient(credentials=self._credentials) + + super().__init__( + settings_cls, + case_sensitive=case_sensitive, + env_prefix=env_prefix, + env_ignore_empty=False, + env_parse_none_str=env_parse_none_str, + env_parse_enums=env_parse_enums, + ) + + def _load_env_vars(self) -> Mapping[str, str | None]: + return GoogleSecretManagerMapping( + self._secret_client, project_id=self._project_id, case_sensitive=self.case_sensitive + ) + + def __repr__(self) -> str: + return f'{self.__class__.__name__}(project_id={self._project_id!r}, env_nested_delimiter={self.env_nested_delimiter!r})' + + +__all__ = ['GoogleSecretManagerSettingsSource', 'GoogleSecretManagerMapping'] diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/json.py b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/json.py new file mode 100644 index 0000000..837601c --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/json.py @@ -0,0 +1,47 @@ +"""JSON file settings source.""" + +from __future__ import annotations as _annotations + +import json +from pathlib import Path +from typing import ( + TYPE_CHECKING, + Any, +) + +from ..base import ConfigFileSourceMixin, InitSettingsSource +from ..types import DEFAULT_PATH, PathType + +if TYPE_CHECKING: + from pydantic_settings.main import BaseSettings + + +class JsonConfigSettingsSource(InitSettingsSource, ConfigFileSourceMixin): + """ + A source class that loads variables from a JSON file + """ + + def __init__( + self, + settings_cls: type[BaseSettings], + json_file: PathType | None = DEFAULT_PATH, + json_file_encoding: str | None = None, + ): + self.json_file_path = json_file if json_file != DEFAULT_PATH else settings_cls.model_config.get('json_file') + self.json_file_encoding = ( + json_file_encoding + if json_file_encoding is not None + else settings_cls.model_config.get('json_file_encoding') + ) + self.json_data = self._read_files(self.json_file_path) + super().__init__(settings_cls, self.json_data) + + def _read_file(self, file_path: Path) -> dict[str, Any]: + with open(file_path, encoding=self.json_file_encoding) as json_file: + return json.load(json_file) + + def __repr__(self) -> str: + return f'{self.__class__.__name__}(json_file={self.json_file_path})' + + +__all__ = ['JsonConfigSettingsSource'] diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/nested_secrets.py b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/nested_secrets.py new file mode 100644 index 0000000..cc9039c --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/nested_secrets.py @@ -0,0 +1,166 @@ +import os +import warnings +from functools import reduce +from glob import iglob +from pathlib import Path +from typing import TYPE_CHECKING, Any, Literal, Optional + +from ...exceptions import SettingsError +from ...utils import path_type_label +from ..base import PydanticBaseSettingsSource +from ..utils import parse_env_vars +from .env import EnvSettingsSource +from .secrets import SecretsSettingsSource + +if TYPE_CHECKING: + from ...main import BaseSettings + from ...sources import PathType + + +SECRETS_DIR_MAX_SIZE = 16 * 2**20 # 16 MiB seems to be a reasonable default + + +class NestedSecretsSettingsSource(EnvSettingsSource): + def __init__( + self, + file_secret_settings: PydanticBaseSettingsSource | SecretsSettingsSource, + secrets_dir: Optional['PathType'] = None, + secrets_dir_missing: Literal['ok', 'warn', 'error'] | None = None, + secrets_dir_max_size: int | None = None, + secrets_case_sensitive: bool | None = None, + secrets_prefix: str | None = None, + secrets_nested_delimiter: str | None = None, + secrets_nested_subdir: bool | None = None, + # args for compatibility with SecretsSettingsSource, don't use directly + case_sensitive: bool | None = None, + env_prefix: str | None = None, + ) -> None: + # We allow the first argument to be settings_cls like original + # SecretsSettingsSource. However, it is recommended to pass + # SecretsSettingsSource instance instead (as it is shown in usage examples), + # otherwise `_secrets_dir` arg passed to Settings() constructor will be ignored. + settings_cls: type[BaseSettings] = getattr( + file_secret_settings, + 'settings_cls', + file_secret_settings, # type: ignore[arg-type] + ) + # config options + conf = settings_cls.model_config + self.secrets_dir: PathType | None = first_not_none( + getattr(file_secret_settings, 'secrets_dir', None), + secrets_dir, + conf.get('secrets_dir'), + ) + self.secrets_dir_missing: Literal['ok', 'warn', 'error'] = first_not_none( + secrets_dir_missing, + conf.get('secrets_dir_missing'), + 'warn', + ) + if self.secrets_dir_missing not in ('ok', 'warn', 'error'): + raise SettingsError(f'invalid secrets_dir_missing value: {self.secrets_dir_missing}') + self.secrets_dir_max_size: int = first_not_none( + secrets_dir_max_size, + conf.get('secrets_dir_max_size'), + SECRETS_DIR_MAX_SIZE, + ) + self.case_sensitive: bool = first_not_none( + secrets_case_sensitive, + conf.get('secrets_case_sensitive'), + case_sensitive, + conf.get('case_sensitive'), + False, + ) + self.secrets_prefix: str = first_not_none( + secrets_prefix, + conf.get('secrets_prefix'), + env_prefix, + conf.get('env_prefix'), + '', + ) + + # nested options + self.secrets_nested_delimiter: str | None = first_not_none( + secrets_nested_delimiter, + conf.get('secrets_nested_delimiter'), + conf.get('env_nested_delimiter'), + ) + self.secrets_nested_subdir: bool = first_not_none( + secrets_nested_subdir, + conf.get('secrets_nested_subdir'), + False, + ) + if self.secrets_nested_subdir: + if secrets_nested_delimiter or conf.get('secrets_nested_delimiter'): + raise SettingsError('Options secrets_nested_delimiter and secrets_nested_subdir are mutually exclusive') + else: + self.secrets_nested_delimiter = os.sep + + # ensure valid secrets_path + if self.secrets_dir is None: + paths = [] + elif isinstance(self.secrets_dir, (Path, str)): + paths = [self.secrets_dir] + else: + paths = list(self.secrets_dir) + self.secrets_paths: list[Path] = [Path(p).expanduser().resolve() for p in paths] + for path in self.secrets_paths: + self.validate_secrets_path(path) + + # construct parent + super().__init__( + settings_cls, + case_sensitive=self.case_sensitive, + env_prefix=self.secrets_prefix, + env_nested_delimiter=self.secrets_nested_delimiter, + env_ignore_empty=False, # match SecretsSettingsSource behaviour + env_parse_enums=True, # we can pass everything here, it will still behave as "True" + env_parse_none_str=None, # match SecretsSettingsSource behaviour + ) + self.env_parse_none_str = None # update manually because of None + + # update parent members + if not len(self.secrets_paths): + self.env_vars = {} + else: + secrets = reduce( + lambda d1, d2: dict((*d1.items(), *d2.items())), + (self.load_secrets(p) for p in self.secrets_paths), + ) + self.env_vars = parse_env_vars( + secrets, + self.case_sensitive, + self.env_ignore_empty, + self.env_parse_none_str, + ) + + def validate_secrets_path(self, path: Path) -> None: + if not path.exists(): + if self.secrets_dir_missing == 'ok': + pass + elif self.secrets_dir_missing == 'warn': + warnings.warn(f'directory "{path}" does not exist', stacklevel=2) + elif self.secrets_dir_missing == 'error': + raise SettingsError(f'directory "{path}" does not exist') + else: + raise ValueError # unreachable, checked before + else: + if not path.is_dir(): + raise SettingsError(f'secrets_dir must reference a directory, not a {path_type_label(path)}') + secrets_dir_size = sum(f.stat().st_size for f in path.glob('**/*') if f.is_file()) + if secrets_dir_size > self.secrets_dir_max_size: + raise SettingsError(f'secrets_dir size is above {self.secrets_dir_max_size} bytes') + + @staticmethod + def load_secrets(path: Path) -> dict[str, str]: + return { + str(p.relative_to(path)): p.read_text().strip() + for p in map(Path, iglob(f'{path}/**/*', recursive=True)) + if p.is_file() + } + + def __repr__(self) -> str: + return f'NestedSecretsSettingsSource(secrets_dir={self.secrets_dir!r})' + + +def first_not_none(*objs: Any) -> Any: + return next(filter(lambda o: o is not None, objs), None) diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/pyproject.py b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/pyproject.py new file mode 100644 index 0000000..bb02cbb --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/pyproject.py @@ -0,0 +1,62 @@ +"""Pyproject TOML file settings source.""" + +from __future__ import annotations as _annotations + +from pathlib import Path +from typing import ( + TYPE_CHECKING, +) + +from .toml import TomlConfigSettingsSource + +if TYPE_CHECKING: + from pydantic_settings.main import BaseSettings + + +class PyprojectTomlConfigSettingsSource(TomlConfigSettingsSource): + """ + A source class that loads variables from a `pyproject.toml` file. + """ + + def __init__( + self, + settings_cls: type[BaseSettings], + toml_file: Path | None = None, + ) -> None: + self.toml_file_path = self._pick_pyproject_toml_file( + toml_file, settings_cls.model_config.get('pyproject_toml_depth', 0) + ) + self.toml_table_header: tuple[str, ...] = settings_cls.model_config.get( + 'pyproject_toml_table_header', ('tool', 'pydantic-settings') + ) + self.toml_data = self._read_files(self.toml_file_path) + for key in self.toml_table_header: + self.toml_data = self.toml_data.get(key, {}) + super(TomlConfigSettingsSource, self).__init__(settings_cls, self.toml_data) + + @staticmethod + def _pick_pyproject_toml_file(provided: Path | None, depth: int) -> Path: + """Pick a `pyproject.toml` file path to use. + + Args: + provided: Explicit path provided when instantiating this class. + depth: Number of directories up the tree to check of a pyproject.toml. + + """ + if provided: + return provided.resolve() + rv = Path.cwd() / 'pyproject.toml' + count = 0 + if not rv.is_file(): + child = rv.parent.parent / 'pyproject.toml' + while count < depth: + if child.is_file(): + return child + if str(child.parent) == rv.root: + break # end discovery after checking system root once + child = child.parent.parent / 'pyproject.toml' + count += 1 + return rv + + +__all__ = ['PyprojectTomlConfigSettingsSource'] diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/secrets.py b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/secrets.py new file mode 100644 index 0000000..00a8f47 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/secrets.py @@ -0,0 +1,125 @@ +"""Secrets file settings source.""" + +from __future__ import annotations as _annotations + +import os +import warnings +from pathlib import Path +from typing import ( + TYPE_CHECKING, + Any, +) + +from pydantic.fields import FieldInfo + +from pydantic_settings.utils import path_type_label + +from ...exceptions import SettingsError +from ..base import PydanticBaseEnvSettingsSource +from ..types import PathType + +if TYPE_CHECKING: + from pydantic_settings.main import BaseSettings + + +class SecretsSettingsSource(PydanticBaseEnvSettingsSource): + """ + Source class for loading settings values from secret files. + """ + + def __init__( + self, + settings_cls: type[BaseSettings], + secrets_dir: PathType | None = None, + case_sensitive: bool | None = None, + env_prefix: str | None = None, + env_ignore_empty: bool | None = None, + env_parse_none_str: str | None = None, + env_parse_enums: bool | None = None, + ) -> None: + super().__init__( + settings_cls, case_sensitive, env_prefix, env_ignore_empty, env_parse_none_str, env_parse_enums + ) + self.secrets_dir = secrets_dir if secrets_dir is not None else self.config.get('secrets_dir') + + def __call__(self) -> dict[str, Any]: + """ + Build fields from "secrets" files. + """ + secrets: dict[str, str | None] = {} + + if self.secrets_dir is None: + return secrets + + secrets_dirs = [self.secrets_dir] if isinstance(self.secrets_dir, (str, os.PathLike)) else self.secrets_dir + secrets_paths = [Path(p).expanduser() for p in secrets_dirs] + self.secrets_paths = [] + + for path in secrets_paths: + if not path.exists(): + warnings.warn(f'directory "{path}" does not exist') + else: + self.secrets_paths.append(path) + + if not len(self.secrets_paths): + return secrets + + for path in self.secrets_paths: + if not path.is_dir(): + raise SettingsError(f'secrets_dir must reference a directory, not a {path_type_label(path)}') + + return super().__call__() + + @classmethod + def find_case_path(cls, dir_path: Path, file_name: str, case_sensitive: bool) -> Path | None: + """ + Find a file within path's directory matching filename, optionally ignoring case. + + Args: + dir_path: Directory path. + file_name: File name. + case_sensitive: Whether to search for file name case sensitively. + + Returns: + Whether file path or `None` if file does not exist in directory. + """ + for f in dir_path.iterdir(): + if f.name == file_name: + return f + elif not case_sensitive and f.name.lower() == file_name.lower(): + return f + return None + + def get_field_value(self, field: FieldInfo, field_name: str) -> tuple[Any, str, bool]: + """ + Gets the value for field from secret file and a flag to determine whether value is complex. + + Args: + field: The field. + field_name: The field name. + + Returns: + A tuple that contains the value (`None` if the file does not exist), key, and + a flag to determine whether value is complex. + """ + + for field_key, env_name, value_is_complex in self._extract_field_info(field, field_name): + # paths reversed to match the last-wins behaviour of `env_file` + for secrets_path in reversed(self.secrets_paths): + path = self.find_case_path(secrets_path, env_name, self.case_sensitive) + if not path: + # path does not exist, we currently don't return a warning for this + continue + + if path.is_file(): + return path.read_text().strip(), field_key, value_is_complex + else: + warnings.warn( + f'attempted to load secret file "{path}" but found a {path_type_label(path)} instead.', + stacklevel=4, + ) + + return None, field_key, value_is_complex + + def __repr__(self) -> str: + return f'{self.__class__.__name__}(secrets_dir={self.secrets_dir!r})' diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/toml.py b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/toml.py new file mode 100644 index 0000000..eaff41d --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/toml.py @@ -0,0 +1,66 @@ +"""TOML file settings source.""" + +from __future__ import annotations as _annotations + +import sys +from pathlib import Path +from typing import ( + TYPE_CHECKING, + Any, +) + +from ..base import ConfigFileSourceMixin, InitSettingsSource +from ..types import DEFAULT_PATH, PathType + +if TYPE_CHECKING: + from pydantic_settings.main import BaseSettings + + if sys.version_info >= (3, 11): + import tomllib + else: + tomllib = None + import tomli +else: + tomllib = None + tomli = None + + +def import_toml() -> None: + global tomli + global tomllib + if sys.version_info < (3, 11): + if tomli is not None: + return + try: + import tomli + except ImportError as e: # pragma: no cover + raise ImportError('tomli is not installed, run `pip install pydantic-settings[toml]`') from e + else: + if tomllib is not None: + return + import tomllib + + +class TomlConfigSettingsSource(InitSettingsSource, ConfigFileSourceMixin): + """ + A source class that loads variables from a TOML file + """ + + def __init__( + self, + settings_cls: type[BaseSettings], + toml_file: PathType | None = DEFAULT_PATH, + ): + self.toml_file_path = toml_file if toml_file != DEFAULT_PATH else settings_cls.model_config.get('toml_file') + self.toml_data = self._read_files(self.toml_file_path) + super().__init__(settings_cls, self.toml_data) + + def _read_file(self, file_path: Path) -> dict[str, Any]: + import_toml() + with open(file_path, mode='rb') as toml_file: + if sys.version_info < (3, 11): + return tomli.load(toml_file) + return tomllib.load(toml_file) + + def __repr__(self) -> str: + return f'{self.__class__.__name__}(toml_file={self.toml_file_path})' diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/yaml.py b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/yaml.py new file mode 100644 index 0000000..82778b4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/yaml.py @@ -0,0 +1,75 @@ +"""YAML file settings source.""" + +from __future__ import annotations as _annotations + +from pathlib import Path +from typing import ( + TYPE_CHECKING, + Any, +) + +from ..base import ConfigFileSourceMixin, InitSettingsSource +from ..types import DEFAULT_PATH, PathType + +if TYPE_CHECKING: + import yaml + + from pydantic_settings.main import BaseSettings +else: + yaml = None + + +def import_yaml() -> None: + global yaml + if yaml is not None: + return + try: + import yaml + except ImportError as e: + raise ImportError('PyYAML is not installed, run `pip install pydantic-settings[yaml]`') from e + + +class YamlConfigSettingsSource(InitSettingsSource, ConfigFileSourceMixin): + """ + A source class that loads variables from a yaml file + """ + + def __init__( + self, + settings_cls: type[BaseSettings], + yaml_file: PathType | None = DEFAULT_PATH, + yaml_file_encoding: str | None = None, + yaml_config_section: str | None = None, + ): + self.yaml_file_path = yaml_file if yaml_file != DEFAULT_PATH else settings_cls.model_config.get('yaml_file') + self.yaml_file_encoding = ( + yaml_file_encoding + if yaml_file_encoding is not None + else settings_cls.model_config.get('yaml_file_encoding') + ) + self.yaml_config_section = ( + yaml_config_section + if yaml_config_section is not None + else settings_cls.model_config.get('yaml_config_section') + ) + self.yaml_data = self._read_files(self.yaml_file_path) + + if self.yaml_config_section: + try: + self.yaml_data = self.yaml_data[self.yaml_config_section] + except KeyError: + raise KeyError( + f'yaml_config_section key "{self.yaml_config_section}" not found in {self.yaml_file_path}' + ) + super().__init__(settings_cls, self.yaml_data) + + def _read_file(self, file_path: Path) -> dict[str, Any]: + import_yaml() + with open(file_path, encoding=self.yaml_file_encoding) as yaml_file: + return yaml.safe_load(yaml_file) or {} + + def __repr__(self) -> str: + return f'{self.__class__.__name__}(yaml_file={self.yaml_file_path})' + + +__all__ = ['YamlConfigSettingsSource'] diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/sources/types.py b/venv/lib/python3.11/site-packages/pydantic_settings/sources/types.py new file mode 100644 index 0000000..c4c97a1 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/sources/types.py @@ -0,0 +1,78 @@ +"""Type definitions for pydantic-settings sources.""" + +from __future__ import annotations as _annotations + +from collections.abc import Sequence +from pathlib import Path +from typing import TYPE_CHECKING, Any + +if TYPE_CHECKING: + from pydantic._internal._dataclasses import PydanticDataclass + from pydantic.main import BaseModel + + PydanticModel = PydanticDataclass | BaseModel +else: + PydanticModel = Any + + +class EnvNoneType(str): + pass + + +class NoDecode: + """Annotation to prevent decoding of a field value.""" + + pass + + +class ForceDecode: + """Annotation to force decoding of a field value.""" + + pass + + +DotenvType = Path | str | Sequence[Path | str] +PathType = Path | str | Sequence[Path | str] +DEFAULT_PATH: PathType = Path('') + +# This is used as default value for `_env_file` in the `BaseSettings` class and +# `env_file` in `DotEnvSettingsSource` so the default can be distinguished from `None`. +# See the docstring of `BaseSettings` for more details. +ENV_FILE_SENTINEL: DotenvType = Path('') + + +class _CliSubCommand: + pass + + +class _CliPositionalArg: + pass + + +class _CliImplicitFlag: + pass + + +class _CliExplicitFlag: + pass + + +class _CliUnknownArgs: + pass + + +__all__ = [ + 'DEFAULT_PATH', + 'ENV_FILE_SENTINEL', + 'DotenvType', + 'EnvNoneType', + 'ForceDecode', + 'NoDecode', + 'PathType', + 'PydanticModel', + '_CliExplicitFlag', + '_CliImplicitFlag', + '_CliPositionalArg', + '_CliSubCommand', + '_CliUnknownArgs', +] diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/sources/utils.py b/venv/lib/python3.11/site-packages/pydantic_settings/sources/utils.py new file mode 100644 index 0000000..9d00472 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/sources/utils.py @@ -0,0 +1,214 @@ +"""Utility functions for pydantic-settings sources.""" + +from __future__ import annotations as _annotations + +from collections import deque +from collections.abc import Mapping, Sequence +from dataclasses import is_dataclass +from enum import Enum +from typing import Any, cast, get_args, get_origin + +from pydantic import BaseModel, Json, RootModel, Secret +from pydantic._internal._utils import is_model_class +from pydantic.dataclasses import is_pydantic_dataclass +from typing_inspection import typing_objects + +from ..exceptions import SettingsError +from ..utils import _lenient_issubclass +from .types import EnvNoneType + + +def _get_env_var_key(key: str, case_sensitive: bool = False) -> str: + return key if case_sensitive else key.lower() + + +def _parse_env_none_str(value: str | None, parse_none_str: str | None = None) -> str | None | EnvNoneType: + return value if not (value == parse_none_str and parse_none_str is not None) else EnvNoneType(value) + + +def parse_env_vars( + env_vars: Mapping[str, str | None], + case_sensitive: bool = False, + ignore_empty: bool = False, + parse_none_str: str | None = None, +) -> Mapping[str, str | None]: + return { + _get_env_var_key(k, case_sensitive): _parse_env_none_str(v, parse_none_str) + for k, v in env_vars.items() + if not (ignore_empty and v == '') + } + + +def _annotation_is_complex(annotation: Any, metadata: list[Any]) -> bool: + # If the model is a root model, the root annotation should be used to + # evaluate the complexity. + if typing_objects.is_typealiastype(annotation) or typing_objects.is_typealiastype(get_origin(annotation)): + annotation = annotation.__value__ + if annotation is not None and _lenient_issubclass(annotation, RootModel) and annotation is not RootModel: + annotation = cast('type[RootModel[Any]]', annotation) + root_annotation = annotation.model_fields['root'].annotation + if root_annotation is not None: # pragma: no branch + annotation = root_annotation + + if any(isinstance(md, Json) for md in metadata): # type: ignore[misc] + return False + + origin = get_origin(annotation) + + # Check if annotation is of the form Annotated[type, metadata]. + if typing_objects.is_annotated(origin): + # Return result of recursive call on inner type. + inner, *meta = get_args(annotation) + return _annotation_is_complex(inner, meta) + + if origin is Secret: + return False + + return ( + _annotation_is_complex_inner(annotation) + or _annotation_is_complex_inner(origin) + or hasattr(origin, '__pydantic_core_schema__') + or hasattr(origin, '__get_pydantic_core_schema__') + ) + + +def _annotation_is_complex_inner(annotation: type[Any] | None) -> bool: + if _lenient_issubclass(annotation, (str, bytes)): + return False + + return _lenient_issubclass( + annotation, (BaseModel, Mapping, Sequence, tuple, set, frozenset, deque) + ) or is_dataclass(annotation) + + +def _union_is_complex(annotation: type[Any] | None, metadata: list[Any]) -> bool: + """Check if a union type contains any complex types.""" + return any(_annotation_is_complex(arg, metadata) for arg in get_args(annotation)) + + +def _annotation_contains_types( + annotation: type[Any] | None, + types: tuple[Any, ...], + is_include_origin: bool = True, + is_strip_annotated: bool = False, + is_instance: bool = False, +) -> bool: + """Check if a type annotation contains any of the specified types.""" + if is_strip_annotated: + annotation = _strip_annotated(annotation) + if is_include_origin is True: + origin = get_origin(annotation) + if origin in types: + return True + if is_instance and any(isinstance(origin, type_) for type_ in types): + return True + for type_ in get_args(annotation): + if _annotation_contains_types( + type_, types, is_include_origin=True, is_strip_annotated=is_strip_annotated, is_instance=is_instance + ): + return True + if is_instance and any(isinstance(annotation, type_) for type_ in types): + return True + return annotation in types + + +def _strip_annotated(annotation: Any) -> Any: + if typing_objects.is_annotated(get_origin(annotation)): + return annotation.__origin__ + else: + return annotation + + +def _annotation_enum_val_to_name(annotation: type[Any] | None, value: Any) -> str | None: + for type_ in (annotation, get_origin(annotation), *get_args(annotation)): + if _lenient_issubclass(type_, Enum): + if value in tuple(val.value for val in type_): + return type_(value).name + return None + + +def _annotation_enum_name_to_val(annotation: type[Any] | None, name: Any) -> Any: + for type_ in (annotation, get_origin(annotation), *get_args(annotation)): + if _lenient_issubclass(type_, Enum): + if name in tuple(val.name for val in type_): + return type_[name] + return None + + +def _get_model_fields(model_cls: type[Any]) -> dict[str, Any]: + """Get fields from a pydantic model or dataclass.""" + + if is_pydantic_dataclass(model_cls) and hasattr(model_cls, '__pydantic_fields__'): + return model_cls.__pydantic_fields__ + if is_model_class(model_cls): + return model_cls.model_fields + raise SettingsError(f'Error: {model_cls.__name__} is not subclass of BaseModel or pydantic.dataclasses.dataclass') + + +def _get_alias_names( + field_name: str, + field_info: Any, + alias_path_args: dict[str, int | None] | None = None, + case_sensitive: bool = True, +) -> tuple[tuple[str, ...], bool]: + """Get alias names for a field, handling alias paths and case sensitivity.""" + from pydantic import AliasChoices, AliasPath + + alias_names: list[str] = [] + is_alias_path_only: bool = True + if not any((field_info.alias, field_info.validation_alias)): + alias_names += [field_name] + is_alias_path_only = False + else: + new_alias_paths: list[AliasPath] = [] + for alias in (field_info.alias, field_info.validation_alias): + if alias is None: + continue + elif isinstance(alias, str): + alias_names.append(alias) + is_alias_path_only = False + elif isinstance(alias, AliasChoices): + for name in alias.choices: + if isinstance(name, str): + alias_names.append(name) + is_alias_path_only = False + else: + new_alias_paths.append(name) + else: + new_alias_paths.append(alias) + for alias_path in new_alias_paths: + name = cast(str, alias_path.path[0]) + name = name.lower() if not case_sensitive else name + if alias_path_args is not None: + alias_path_args[name] = ( + alias_path.path[1] if len(alias_path.path) > 1 and isinstance(alias_path.path[1], int) else None + ) + if not alias_names and is_alias_path_only: + alias_names.append(name) + if not case_sensitive: + alias_names = [alias_name.lower() for alias_name in alias_names] + return tuple(dict.fromkeys(alias_names)), is_alias_path_only + + +def _is_function(obj: Any) -> bool: + """Check if an object is a function.""" + from types import BuiltinFunctionType, FunctionType + + return isinstance(obj, (FunctionType, BuiltinFunctionType)) + + +__all__ = [ + '_annotation_contains_types', + '_annotation_enum_name_to_val', + '_annotation_enum_val_to_name', + '_annotation_is_complex', + '_annotation_is_complex_inner', + '_get_alias_names', + '_get_env_var_key', + '_get_model_fields', + '_is_function', + '_parse_env_none_str', + '_strip_annotated', + '_union_is_complex', + 'parse_env_vars', +] diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/utils.py b/venv/lib/python3.11/site-packages/pydantic_settings/utils.py new file mode 100644 index 0000000..1e61452 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/utils.py @@ -0,0 +1,42 @@ +import types +from pathlib import Path +from typing import Any, _GenericAlias, get_origin # type: ignore [attr-defined] + +_PATH_TYPE_LABELS = { + Path.is_dir: 'directory', + Path.is_file: 'file', + Path.is_mount: 'mount point', + Path.is_symlink: 'symlink', + Path.is_block_device: 'block device', + Path.is_char_device: 'char device', + Path.is_fifo: 'FIFO', + Path.is_socket: 'socket', +} + + +def path_type_label(p: Path) -> str: + """ + Find out what sort of thing a path is. + """ + assert p.exists(), 'path does not exist' + for method, name in _PATH_TYPE_LABELS.items(): + if method(p): + return name + + return 'unknown' # pragma: no cover + + +# TODO remove and replace usage by `isinstance(cls, type) and issubclass(cls, class_or_tuple)` +# once we drop support for Python 3.10. +def _lenient_issubclass(cls: Any, class_or_tuple: Any) -> bool: # pragma: no cover + try: + return isinstance(cls, type) and issubclass(cls, class_or_tuple) + except TypeError: + if get_origin(cls) is not None: + # Up until Python 3.10, isinstance(, type) is True + # (e.g. list[int]) + return False + raise + + +_WithArgsTypes = (_GenericAlias, types.GenericAlias, types.UnionType) diff --git a/venv/lib/python3.11/site-packages/pydantic_settings/version.py b/venv/lib/python3.11/site-packages/pydantic_settings/version.py new file mode 100644 index 0000000..2622af9 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pydantic_settings/version.py @@ -0,0 +1 @@ +VERSION = '2.12.0' diff --git a/venv/lib/python3.11/site-packages/pyparsing-3.2.5.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/pyparsing-3.2.5.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/pyparsing-3.2.5.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/pyparsing-3.2.5.dist-info/METADATA b/venv/lib/python3.11/site-packages/pyparsing-3.2.5.dist-info/METADATA new file mode 100644 index 0000000..0c6093f --- /dev/null +++ b/venv/lib/python3.11/site-packages/pyparsing-3.2.5.dist-info/METADATA @@ -0,0 +1,126 @@ +Metadata-Version: 2.4 +Name: pyparsing +Version: 3.2.5 +Summary: pyparsing - Classes and methods to define and execute parsing grammars +Author-email: Paul McGuire +Requires-Python: >=3.9 +Description-Content-Type: text/x-rst +License-Expression: MIT +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: Information Technology +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Software Development :: Compilers +Classifier: Topic :: Text Processing +Classifier: Typing :: Typed +License-File: LICENSE +Requires-Dist: railroad-diagrams ; extra == "diagrams" +Requires-Dist: jinja2 ; extra == "diagrams" +Project-URL: Homepage, https://github.com/pyparsing/pyparsing/ +Provides-Extra: diagrams + +PyParsing -- A Python Parsing Module +==================================== + +|Version| |Build Status| |Coverage| |License| |Python Versions| |Snyk Score| + +Introduction +============ + +The pyparsing module is an alternative approach to creating and +executing simple grammars, vs. the traditional lex/yacc approach, or the +use of regular expressions. The pyparsing module provides a library of +classes that client code uses to construct the grammar directly in +Python code. + +*[Since first writing this description of pyparsing in late 2003, this +technique for developing parsers has become more widespread, under the +name Parsing Expression Grammars - PEGs. See more information on PEGs* +`here `__ +*.]* + +Here is a program to parse ``"Hello, World!"`` (or any greeting of the form +``"salutation, addressee!"``): + +.. code:: python + + from pyparsing import Word, alphas + greet = Word(alphas) + "," + Word(alphas) + "!" + hello = "Hello, World!" + print(hello, "->", greet.parse_string(hello)) + +The program outputs the following:: + + Hello, World! -> ['Hello', ',', 'World', '!'] + +The Python representation of the grammar is quite readable, owing to the +self-explanatory class names, and the use of '+', '|' and '^' operator +definitions. + +The parsed results returned from ``parse_string()`` is a collection of type +``ParseResults``, which can be accessed as a +nested list, a dictionary, or an object with named attributes. + +The pyparsing module handles some of the problems that are typically +vexing when writing text parsers: + +- extra or missing whitespace (the above program will also handle ``"Hello,World!"``, ``"Hello , World !"``, etc.) +- quoted strings +- embedded comments + +The examples directory includes a simple SQL parser, simple CORBA IDL +parser, a config file parser, a chemical formula parser, and a four- +function algebraic notation parser, among many others. + +Documentation +============= + +There are many examples in the online docstrings of the classes +and methods in pyparsing. You can find them compiled into `online docs `__. Additional +documentation resources and project info are listed in the online +`GitHub wiki `__. An +entire directory of examples can be found `here `__. + +License +======= + +MIT License. See header of the `pyparsing __init__.py `__ file. + +History +======= + +See `CHANGES `__ file. + +.. |Build Status| image:: https://github.com/pyparsing/pyparsing/actions/workflows/ci.yml/badge.svg + :target: https://github.com/pyparsing/pyparsing/actions/workflows/ci.yml + +.. |Coverage| image:: https://codecov.io/gh/pyparsing/pyparsing/branch/master/graph/badge.svg + :target: https://codecov.io/gh/pyparsing/pyparsing + +.. |Version| image:: https://img.shields.io/pypi/v/pyparsing?style=flat-square + :target: https://pypi.org/project/pyparsing/ + :alt: Version + +.. |License| image:: https://img.shields.io/pypi/l/pyparsing.svg?style=flat-square + :target: https://pypi.org/project/pyparsing/ + :alt: License + +.. |Python Versions| image:: https://img.shields.io/pypi/pyversions/pyparsing.svg?style=flat-square + :target: https://pypi.org/project/python-liquid/ + :alt: Python versions + +.. |Snyk Score| image:: https://snyk.io//advisor/python/pyparsing/badge.svg + :target: https://snyk.io//advisor/python/pyparsing + :alt: pyparsing + diff --git a/venv/lib/python3.11/site-packages/pyparsing-3.2.5.dist-info/RECORD b/venv/lib/python3.11/site-packages/pyparsing-3.2.5.dist-info/RECORD new file mode 100644 index 0000000..f224053 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pyparsing-3.2.5.dist-info/RECORD @@ -0,0 +1,32 @@ +pyparsing-3.2.5.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +pyparsing-3.2.5.dist-info/METADATA,sha256=zVQ_JvD1mse0RvV8yR6N73o-tzX91ekcTkArhyVpbro,5030 +pyparsing-3.2.5.dist-info/RECORD,, +pyparsing-3.2.5.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82 +pyparsing-3.2.5.dist-info/licenses/LICENSE,sha256=ENUSChaAWAT_2otojCIL-06POXQbVzIGBNRVowngGXI,1023 +pyparsing/__init__.py,sha256=XWEnyiMcU8fuGrip59dp39lD1wBHs777EKv_GsdzD80,9039 +pyparsing/__pycache__/__init__.cpython-311.pyc,, +pyparsing/__pycache__/actions.cpython-311.pyc,, +pyparsing/__pycache__/common.cpython-311.pyc,, +pyparsing/__pycache__/core.cpython-311.pyc,, +pyparsing/__pycache__/exceptions.cpython-311.pyc,, +pyparsing/__pycache__/helpers.cpython-311.pyc,, +pyparsing/__pycache__/results.cpython-311.pyc,, +pyparsing/__pycache__/testing.cpython-311.pyc,, +pyparsing/__pycache__/unicode.cpython-311.pyc,, +pyparsing/__pycache__/util.cpython-311.pyc,, +pyparsing/actions.py,sha256=cOLnBFvRC1wq0hW4JeuGX0fyjYutBGCyR6cqsLUMHLo,7988 +pyparsing/common.py,sha256=c-vrUsZfNjYZQPwOKbmW2LcWj5Qisl6vZroP2LwAtpo,14377 +pyparsing/core.py,sha256=wDq6vxh4c8VyN8AbNURPER9JNZCTCSxSrxsUw6DYg0c,244142 +pyparsing/diagram/__init__.py,sha256=-zzvPNh4FtVM0e36CdCppP4z_tSiNoUq6bbnIKezM-I,27100 +pyparsing/diagram/__pycache__/__init__.cpython-311.pyc,, +pyparsing/exceptions.py,sha256=8rwsFciFgkDDlfVk_zoos_hbtJefuny7oB9UUh2GMqk,10304 +pyparsing/helpers.py,sha256=qcYZ5LWWXxIg7GNmllfFja8ZNPvWhqyTffuRFnfns74,41011 +pyparsing/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pyparsing/results.py,sha256=vHcLxutQcOmSYO-5oUB07LEokdPpkoAc0wA7KJ8bBMI,27849 +pyparsing/testing.py,sha256=P4yyp8-6WiEu72fTVA1AQ6KrXpjbzG2c78adVwI-TvA,15217 +pyparsing/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pyparsing/tools/__pycache__/__init__.cpython-311.pyc,, +pyparsing/tools/__pycache__/cvt_pyparsing_pep8_names.cpython-311.pyc,, +pyparsing/tools/cvt_pyparsing_pep8_names.py,sha256=CKvxIBiDJLvmbnVv3mK0tyNUZN3ub3eQ4Z1eO54x8_U,5369 +pyparsing/unicode.py,sha256=doanv7BYQB4EdQRfdXigaiV_SDhZyyaBSwgvVEz6eXc,10614 +pyparsing/util.py,sha256=SoY1U5nAsztXqKbLPVA7wXmOPQ8Ct6NcF5UnIxuuXmE,14573 diff --git a/venv/lib/python3.11/site-packages/pyparsing-3.2.5.dist-info/WHEEL b/venv/lib/python3.11/site-packages/pyparsing-3.2.5.dist-info/WHEEL new file mode 100644 index 0000000..d8b9936 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pyparsing-3.2.5.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: flit 3.12.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/pyparsing-3.2.5.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/pyparsing-3.2.5.dist-info/licenses/LICENSE new file mode 100644 index 0000000..1bf9852 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pyparsing-3.2.5.dist-info/licenses/LICENSE @@ -0,0 +1,18 @@ +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/LICENSE b/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/LICENSE new file mode 100644 index 0000000..1e65815 --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/LICENSE @@ -0,0 +1,54 @@ +Copyright 2017- Paul Ganssle +Copyright 2017- dateutil contributors (see AUTHORS file) + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +The above license applies to all contributions after 2017-12-01, as well as +all contributions that have been re-licensed (see AUTHORS file for the list of +contributors who have re-licensed their code). +-------------------------------------------------------------------------------- +dateutil - Extensions to the standard Python datetime module. + +Copyright (c) 2003-2011 - Gustavo Niemeyer +Copyright (c) 2012-2014 - Tomi Pieviläinen +Copyright (c) 2014-2016 - Yaron de Leeuw +Copyright (c) 2015- - Paul Ganssle +Copyright (c) 2015- - dateutil contributors (see AUTHORS file) + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +The above BSD License Applies to all code, even that also covered by Apache 2.0. \ No newline at end of file diff --git a/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/METADATA b/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/METADATA new file mode 100644 index 0000000..577f2bf --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/METADATA @@ -0,0 +1,204 @@ +Metadata-Version: 2.1 +Name: python-dateutil +Version: 2.9.0.post0 +Summary: Extensions to the standard Python datetime module +Home-page: https://github.com/dateutil/dateutil +Author: Gustavo Niemeyer +Author-email: gustavo@niemeyer.net +Maintainer: Paul Ganssle +Maintainer-email: dateutil@python.org +License: Dual License +Project-URL: Documentation, https://dateutil.readthedocs.io/en/stable/ +Project-URL: Source, https://github.com/dateutil/dateutil +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Topic :: Software Development :: Libraries +Requires-Python: !=3.0.*,!=3.1.*,!=3.2.*,>=2.7 +Description-Content-Type: text/x-rst +License-File: LICENSE +Requires-Dist: six >=1.5 + +dateutil - powerful extensions to datetime +========================================== + +|pypi| |support| |licence| + +|gitter| |readthedocs| + +|travis| |appveyor| |pipelines| |coverage| + +.. |pypi| image:: https://img.shields.io/pypi/v/python-dateutil.svg?style=flat-square + :target: https://pypi.org/project/python-dateutil/ + :alt: pypi version + +.. |support| image:: https://img.shields.io/pypi/pyversions/python-dateutil.svg?style=flat-square + :target: https://pypi.org/project/python-dateutil/ + :alt: supported Python version + +.. |travis| image:: https://img.shields.io/travis/dateutil/dateutil/master.svg?style=flat-square&label=Travis%20Build + :target: https://travis-ci.org/dateutil/dateutil + :alt: travis build status + +.. |appveyor| image:: https://img.shields.io/appveyor/ci/dateutil/dateutil/master.svg?style=flat-square&logo=appveyor + :target: https://ci.appveyor.com/project/dateutil/dateutil + :alt: appveyor build status + +.. |pipelines| image:: https://dev.azure.com/pythondateutilazure/dateutil/_apis/build/status/dateutil.dateutil?branchName=master + :target: https://dev.azure.com/pythondateutilazure/dateutil/_build/latest?definitionId=1&branchName=master + :alt: azure pipelines build status + +.. |coverage| image:: https://codecov.io/gh/dateutil/dateutil/branch/master/graphs/badge.svg?branch=master + :target: https://codecov.io/gh/dateutil/dateutil?branch=master + :alt: Code coverage + +.. |gitter| image:: https://badges.gitter.im/dateutil/dateutil.svg + :alt: Join the chat at https://gitter.im/dateutil/dateutil + :target: https://gitter.im/dateutil/dateutil + +.. |licence| image:: https://img.shields.io/pypi/l/python-dateutil.svg?style=flat-square + :target: https://pypi.org/project/python-dateutil/ + :alt: licence + +.. |readthedocs| image:: https://img.shields.io/readthedocs/dateutil/latest.svg?style=flat-square&label=Read%20the%20Docs + :alt: Read the documentation at https://dateutil.readthedocs.io/en/latest/ + :target: https://dateutil.readthedocs.io/en/latest/ + +The `dateutil` module provides powerful extensions to +the standard `datetime` module, available in Python. + +Installation +============ +`dateutil` can be installed from PyPI using `pip` (note that the package name is +different from the importable name):: + + pip install python-dateutil + +Download +======== +dateutil is available on PyPI +https://pypi.org/project/python-dateutil/ + +The documentation is hosted at: +https://dateutil.readthedocs.io/en/stable/ + +Code +==== +The code and issue tracker are hosted on GitHub: +https://github.com/dateutil/dateutil/ + +Features +======== + +* Computing of relative deltas (next month, next year, + next Monday, last week of month, etc); +* Computing of relative deltas between two given + date and/or datetime objects; +* Computing of dates based on very flexible recurrence rules, + using a superset of the `iCalendar `_ + specification. Parsing of RFC strings is supported as well. +* Generic parsing of dates in almost any string format; +* Timezone (tzinfo) implementations for tzfile(5) format + files (/etc/localtime, /usr/share/zoneinfo, etc), TZ + environment string (in all known formats), iCalendar + format files, given ranges (with help from relative deltas), + local machine timezone, fixed offset timezone, UTC timezone, + and Windows registry-based time zones. +* Internal up-to-date world timezone information based on + Olson's database. +* Computing of Easter Sunday dates for any given year, + using Western, Orthodox or Julian algorithms; +* A comprehensive test suite. + +Quick example +============= +Here's a snapshot, just to give an idea about the power of the +package. For more examples, look at the documentation. + +Suppose you want to know how much time is left, in +years/months/days/etc, before the next easter happening on a +year with a Friday 13th in August, and you want to get today's +date out of the "date" unix system command. Here is the code: + +.. code-block:: python3 + + >>> from dateutil.relativedelta import * + >>> from dateutil.easter import * + >>> from dateutil.rrule import * + >>> from dateutil.parser import * + >>> from datetime import * + >>> now = parse("Sat Oct 11 17:13:46 UTC 2003") + >>> today = now.date() + >>> year = rrule(YEARLY,dtstart=now,bymonth=8,bymonthday=13,byweekday=FR)[0].year + >>> rdelta = relativedelta(easter(year), today) + >>> print("Today is: %s" % today) + Today is: 2003-10-11 + >>> print("Year with next Aug 13th on a Friday is: %s" % year) + Year with next Aug 13th on a Friday is: 2004 + >>> print("How far is the Easter of that year: %s" % rdelta) + How far is the Easter of that year: relativedelta(months=+6) + >>> print("And the Easter of that year is: %s" % (today+rdelta)) + And the Easter of that year is: 2004-04-11 + +Being exactly 6 months ahead was **really** a coincidence :) + +Contributing +============ + +We welcome many types of contributions - bug reports, pull requests (code, infrastructure or documentation fixes). For more information about how to contribute to the project, see the ``CONTRIBUTING.md`` file in the repository. + + +Author +====== +The dateutil module was written by Gustavo Niemeyer +in 2003. + +It is maintained by: + +* Gustavo Niemeyer 2003-2011 +* Tomi Pieviläinen 2012-2014 +* Yaron de Leeuw 2014-2016 +* Paul Ganssle 2015- + +Starting with version 2.4.1 and running until 2.8.2, all source and binary +distributions will be signed by a PGP key that has, at the very least, been +signed by the key which made the previous release. A table of release signing +keys can be found below: + +=========== ============================ +Releases Signing key fingerprint +=========== ============================ +2.4.1-2.8.2 `6B49 ACBA DCF6 BD1C A206 67AB CD54 FCE3 D964 BEFB`_ +=========== ============================ + +New releases *may* have signed tags, but binary and source distributions +uploaded to PyPI will no longer have GPG signatures attached. + +Contact +======= +Our mailing list is available at `dateutil@python.org `_. As it is hosted by the PSF, it is subject to the `PSF code of +conduct `_. + +License +======= + +All contributions after December 1, 2017 released under dual license - either `Apache 2.0 License `_ or the `BSD 3-Clause License `_. Contributions before December 1, 2017 - except those those explicitly relicensed - are released only under the BSD 3-Clause License. + + +.. _6B49 ACBA DCF6 BD1C A206 67AB CD54 FCE3 D964 BEFB: + https://pgp.mit.edu/pks/lookup?op=vindex&search=0xCD54FCE3D964BEFB diff --git a/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/RECORD b/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/RECORD new file mode 100644 index 0000000..4f653de --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/RECORD @@ -0,0 +1,44 @@ +dateutil/__init__.py,sha256=Mqam67WO9IkTmUFyI66vS6IoSXTp9G388DadH2LCMLY,620 +dateutil/__pycache__/__init__.cpython-311.pyc,, +dateutil/__pycache__/_common.cpython-311.pyc,, +dateutil/__pycache__/_version.cpython-311.pyc,, +dateutil/__pycache__/easter.cpython-311.pyc,, +dateutil/__pycache__/relativedelta.cpython-311.pyc,, +dateutil/__pycache__/rrule.cpython-311.pyc,, +dateutil/__pycache__/tzwin.cpython-311.pyc,, +dateutil/__pycache__/utils.cpython-311.pyc,, +dateutil/_common.py,sha256=77w0yytkrxlYbSn--lDVPUMabUXRR9I3lBv_vQRUqUY,932 +dateutil/_version.py,sha256=BV031OxDDAmy58neUg5yyqLkLaqIw7ibK9As3jiMib0,166 +dateutil/easter.py,sha256=dyBi-lKvimH1u_k6p7Z0JJK72QhqVtVBsqByvpEPKvc,2678 +dateutil/parser/__init__.py,sha256=wWk6GFuxTpjoggCGtgkceJoti4pVjl4_fHQXpNOaSYg,1766 +dateutil/parser/__pycache__/__init__.cpython-311.pyc,, +dateutil/parser/__pycache__/_parser.cpython-311.pyc,, +dateutil/parser/__pycache__/isoparser.cpython-311.pyc,, +dateutil/parser/_parser.py,sha256=7klDdyicksQB_Xgl-3UAmBwzCYor1AIZqklIcT6dH_8,58796 +dateutil/parser/isoparser.py,sha256=8Fy999bnCd1frSdOYuOraWfJTtd5W7qQ51NwNuH_hXM,13233 +dateutil/relativedelta.py,sha256=IY_mglMjoZbYfrvloTY2ce02aiVjPIkiZfqgNTZRfuA,24903 +dateutil/rrule.py,sha256=KJzKlaCd1jEbu4A38ZltslaoAUh9nSbdbOFdjp70Kew,66557 +dateutil/tz/__init__.py,sha256=F-Mz13v6jYseklQf9Te9J6nzcLDmq47gORa61K35_FA,444 +dateutil/tz/__pycache__/__init__.cpython-311.pyc,, +dateutil/tz/__pycache__/_common.cpython-311.pyc,, +dateutil/tz/__pycache__/_factories.cpython-311.pyc,, +dateutil/tz/__pycache__/tz.cpython-311.pyc,, +dateutil/tz/__pycache__/win.cpython-311.pyc,, +dateutil/tz/_common.py,sha256=cgzDTANsOXvEc86cYF77EsliuSab8Puwpsl5-bX3_S4,12977 +dateutil/tz/_factories.py,sha256=unb6XQNXrPMveksTCU-Ag8jmVZs4SojoPUcAHpWnrvU,2569 +dateutil/tz/tz.py,sha256=EUnEdMfeThXiY6l4sh9yBabZ63_POzy01zSsh9thn1o,62855 +dateutil/tz/win.py,sha256=xJszWgSwE1xPx_HJj4ZkepyukC_hNy016WMcXhbRaB8,12935 +dateutil/tzwin.py,sha256=7Ar4vdQCnnM0mKR3MUjbIKsZrBVfHgdwsJZc_mGYRew,59 +dateutil/utils.py,sha256=dKCchEw8eObi0loGTx91unBxm_7UGlU3v_FjFMdqwYM,1965 +dateutil/zoneinfo/__init__.py,sha256=KYg0pthCMjcp5MXSEiBJn3nMjZeNZav7rlJw5-tz1S4,5889 +dateutil/zoneinfo/__pycache__/__init__.cpython-311.pyc,, +dateutil/zoneinfo/__pycache__/rebuild.cpython-311.pyc,, +dateutil/zoneinfo/dateutil-zoneinfo.tar.gz,sha256=0-pS57bpaN4NiE3xKIGTWW-pW4A9tPkqGCeac5gARHU,156400 +dateutil/zoneinfo/rebuild.py,sha256=MiqYzCIHvNbMH-LdRYLv-4T0EIA7hDKt5GLR0IRTLdI,2392 +python_dateutil-2.9.0.post0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +python_dateutil-2.9.0.post0.dist-info/LICENSE,sha256=ugD1Gg2SgjtaHN4n2LW50jIeZ-2NqbwWPv-W1eF-V34,2889 +python_dateutil-2.9.0.post0.dist-info/METADATA,sha256=qdQ22jIr6AgzL5jYgyWZjofLaTpniplp_rTPrXKabpM,8354 +python_dateutil-2.9.0.post0.dist-info/RECORD,, +python_dateutil-2.9.0.post0.dist-info/WHEEL,sha256=-G_t0oGuE7UD0DrSpVZnq1hHMBV9DD2XkS5v7XpmTnk,110 +python_dateutil-2.9.0.post0.dist-info/top_level.txt,sha256=4tjdWkhRZvF7LA_BYe_L9gB2w_p2a-z5y6ArjaRkot8,9 +python_dateutil-2.9.0.post0.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 diff --git a/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/WHEEL b/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/WHEEL new file mode 100644 index 0000000..4724c45 --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.42.0) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/top_level.txt new file mode 100644 index 0000000..6650148 --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/top_level.txt @@ -0,0 +1 @@ +dateutil diff --git a/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/zip-safe b/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/zip-safe new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_dateutil-2.9.0.post0.dist-info/zip-safe @@ -0,0 +1 @@ + diff --git a/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/METADATA b/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/METADATA new file mode 100644 index 0000000..ee29876 --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/METADATA @@ -0,0 +1,749 @@ +Metadata-Version: 2.4 +Name: python-dotenv +Version: 1.2.1 +Summary: Read key-value pairs from a .env file and set them as environment variables +Author-email: Saurabh Kumar +License-Expression: BSD-3-Clause +Project-URL: Source, https://github.com/theskumar/python-dotenv +Keywords: environment variables,deployments,settings,env,dotenv,configurations,python +Classifier: Development Status :: 5 - Production/Stable +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: System Administrators +Classifier: Operating System :: OS Independent +Classifier: Topic :: System :: Systems Administration +Classifier: Topic :: Utilities +Classifier: Environment :: Web Environment +Requires-Python: >=3.9 +Description-Content-Type: text/markdown +License-File: LICENSE +Provides-Extra: cli +Requires-Dist: click>=5.0; extra == "cli" +Dynamic: license-file + +# python-dotenv + +[![Build Status][build_status_badge]][build_status_link] +[![PyPI version][pypi_badge]][pypi_link] + +python-dotenv reads key-value pairs from a `.env` file and can set them as environment +variables. It helps in the development of applications following the +[12-factor](https://12factor.net/) principles. + +- [Getting Started](#getting-started) +- [Other Use Cases](#other-use-cases) + * [Load configuration without altering the environment](#load-configuration-without-altering-the-environment) + * [Parse configuration as a stream](#parse-configuration-as-a-stream) + * [Load .env files in IPython](#load-env-files-in-ipython) +- [Command-line Interface](#command-line-interface) +- [File format](#file-format) + * [Multiline values](#multiline-values) + * [Variable expansion](#variable-expansion) +- [Related Projects](#related-projects) +- [Acknowledgements](#acknowledgements) + +## Getting Started + +```shell +pip install python-dotenv +``` + +If your application takes its configuration from environment variables, like a 12-factor +application, launching it in development is not very practical because you have to set +those environment variables yourself. + +To help you with that, you can add python-dotenv to your application to make it load the +configuration from a `.env` file when it is present (e.g. in development) while remaining +configurable via the environment: + +```python +from dotenv import load_dotenv + +load_dotenv() # reads variables from a .env file and sets them in os.environ + +# Code of your application, which uses environment variables (e.g. from `os.environ` or +# `os.getenv`) as if they came from the actual environment. +``` + +By default, `load_dotenv()` will: + +- Look for a `.env` file in the same directory as the Python script (or higher up the directory tree). +- Read each key-value pair and add it to `os.environ`. +- **Not override** an environment variable that is already set, unless you explicitly pass `override=True`. + +To configure the development environment, add a `.env` in the root directory of your +project: + +``` +. +├── .env +└── foo.py +``` + +The syntax of `.env` files supported by python-dotenv is similar to that of Bash: + +```bash +# Development settings +DOMAIN=example.org +ADMIN_EMAIL=admin@${DOMAIN} +ROOT_URL=${DOMAIN}/app +``` + +If you use variables in values, ensure they are surrounded with `{` and `}`, like +`${DOMAIN}`, as bare variables such as `$DOMAIN` are not expanded. + +You will probably want to add `.env` to your `.gitignore`, especially if it contains +secrets like a password. + +See the section "File format" below for more information about what you can write in a +`.env` file. + +## Other Use Cases + +### Load configuration without altering the environment + +The function `dotenv_values` works more or less the same way as `load_dotenv`, except it +doesn't touch the environment, it just returns a `dict` with the values parsed from the +`.env` file. + +```python +from dotenv import dotenv_values + +config = dotenv_values(".env") # config = {"USER": "foo", "EMAIL": "foo@example.org"} +``` + +This notably enables advanced configuration management: + +```python +import os +from dotenv import dotenv_values + +config = { + **dotenv_values(".env.shared"), # load shared development variables + **dotenv_values(".env.secret"), # load sensitive variables + **os.environ, # override loaded values with environment variables +} +``` + +### Parse configuration as a stream + +`load_dotenv` and `dotenv_values` accept [streams][python_streams] via their `stream` +argument. It is thus possible to load the variables from sources other than the +filesystem (e.g. the network). + +```python +from io import StringIO + +from dotenv import load_dotenv + +config = StringIO("USER=foo\nEMAIL=foo@example.org") +load_dotenv(stream=config) +``` + +### Load .env files in IPython + +You can use dotenv in IPython. By default, it will use `find_dotenv` to search for a +`.env` file: + +```python +%load_ext dotenv +%dotenv +``` + +You can also specify a path: + +```python +%dotenv relative/or/absolute/path/to/.env +``` + +Optional flags: + +- `-o` to override existing variables. +- `-v` for increased verbosity. + +### Disable load_dotenv + +Set `PYTHON_DOTENV_DISABLED=1` to disable `load_dotenv()` from loading .env files or streams. Useful when you can't modify third-party package calls or in production. + +## Command-line Interface + +A CLI interface `dotenv` is also included, which helps you manipulate the `.env` file +without manually opening it. + +```shell +$ pip install "python-dotenv[cli]" +$ dotenv set USER foo +$ dotenv set EMAIL foo@example.org +$ dotenv list +USER=foo +EMAIL=foo@example.org +$ dotenv list --format=json +{ + "USER": "foo", + "EMAIL": "foo@example.org" +} +$ dotenv run -- python foo.py +``` + +Run `dotenv --help` for more information about the options and subcommands. + +## File format + +The format is not formally specified and still improves over time. That being said, +`.env` files should mostly look like Bash files. + +Keys can be unquoted or single-quoted. Values can be unquoted, single- or double-quoted. +Spaces before and after keys, equal signs, and values are ignored. Values can be followed +by a comment. Lines can start with the `export` directive, which does not affect their +interpretation. + +Allowed escape sequences: + +- in single-quoted values: `\\`, `\'` +- in double-quoted values: `\\`, `\'`, `\"`, `\a`, `\b`, `\f`, `\n`, `\r`, `\t`, `\v` + +### Multiline values + +It is possible for single- or double-quoted values to span multiple lines. The following +examples are equivalent: + +```bash +FOO="first line +second line" +``` + +```bash +FOO="first line\nsecond line" +``` + +### Variable without a value + +A variable can have no value: + +```bash +FOO +``` + +It results in `dotenv_values` associating that variable name with the value `None` (e.g. +`{"FOO": None}`. `load_dotenv`, on the other hand, simply ignores such variables. + +This shouldn't be confused with `FOO=`, in which case the variable is associated with the +empty string. + +### Variable expansion + +python-dotenv can interpolate variables using POSIX variable expansion. + +With `load_dotenv(override=True)` or `dotenv_values()`, the value of a variable is the +first of the values defined in the following list: + +- Value of that variable in the `.env` file. +- Value of that variable in the environment. +- Default value, if provided. +- Empty string. + +With `load_dotenv(override=False)`, the value of a variable is the first of the values +defined in the following list: + +- Value of that variable in the environment. +- Value of that variable in the `.env` file. +- Default value, if provided. +- Empty string. + +## Related Projects + +- [Honcho](https://github.com/nickstenning/honcho) - For managing + Procfile-based applications. +- [django-dotenv](https://github.com/jpadilla/django-dotenv) +- [django-environ](https://github.com/joke2k/django-environ) +- [django-environ-2](https://github.com/sergeyklay/django-environ-2) +- [django-configuration](https://github.com/jezdez/django-configurations) +- [dump-env](https://github.com/sobolevn/dump-env) +- [environs](https://github.com/sloria/environs) +- [dynaconf](https://github.com/rochacbruno/dynaconf) +- [parse_it](https://github.com/naorlivne/parse_it) +- [python-decouple](https://github.com/HBNetwork/python-decouple) + +## Acknowledgements + +This project is currently maintained by [Saurabh Kumar](https://saurabh-kumar.com) and +[Bertrand Bonnefoy-Claudet](https://github.com/bbc2) and would not have been possible +without the support of these [awesome +people](https://github.com/theskumar/python-dotenv/graphs/contributors). + +[build_status_badge]: https://github.com/theskumar/python-dotenv/actions/workflows/test.yml/badge.svg +[build_status_link]: https://github.com/theskumar/python-dotenv/actions/workflows/test.yml +[pypi_badge]: https://badge.fury.io/py/python-dotenv.svg +[pypi_link]: https://badge.fury.io/py/python-dotenv +[python_streams]: https://docs.python.org/3/library/io.html + +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this +project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [1.2.1] - 2025-10-26 + +- Move more config to `pyproject.toml`, removed `setup.cfg` +- Add support for reading `.env` from FIFOs (Unix) by [@sidharth-sudhir] in [#586] + +## [1.2.0] - 2025-10-26 + +- Upgrade build system to use PEP 517 & PEP 518 to use `build` and `pyproject.toml` by [@EpicWink] in [#583] +- Add support for Python 3.14 by [@23f3001135] in [#579](https://github.com/theskumar/python-dotenv/pull/563) +- Add support for disabling of `load_dotenv()` using `PYTHON_DOTENV_DISABLED` env var. by [@matthewfranglen] in [#569] + +## [1.1.1] - 2025-06-24 + +### Fixed + +* CLI: Ensure `find_dotenv` work reliably on python 3.13 by [@theskumar] in [#563](https://github.com/theskumar/python-dotenv/pull/563) +* CLI: revert the use of execvpe on Windows by [@wrongontheinternet] in [#566](https://github.com/theskumar/python-dotenv/pull/566) + + +## [1.1.0] - 2025-03-25 + +**Feature** + +- Add support for python 3.13 +- Enhance `dotenv run`, switch to `execvpe` for better resource management and signal handling ([#523]) by [@eekstunt] + +**Fixed** + +- `find_dotenv` and `load_dotenv` now correctly looks up at the current directory when running in debugger or pdb ([#553] by [@randomseed42]) + +**Misc** + +- Drop support for Python 3.8 + +## [1.0.1] - 2024-01-23 + +**Fixed** + +* Gracefully handle code which has been imported from a zipfile ([#456] by [@samwyma]) +* Allow modules using `load_dotenv` to be reloaded when launched in a separate thread ([#497] by [@freddyaboulton]) +* Fix file not closed after deletion, handle error in the rewrite function ([#469] by [@Qwerty-133]) + +**Misc** +* Use pathlib.Path in tests ([#466] by [@eumiro]) +* Fix year in release date in changelog.md ([#454] by [@jankislinger]) +* Use https in README links ([#474] by [@Nicals]) + +## [1.0.0] - 2023-02-24 + +**Fixed** + +* Drop support for python 3.7, add python 3.12-dev (#449 by [@theskumar]) +* Handle situations where the cwd does not exist. (#446 by [@jctanner]) + +## [0.21.1] - 2023-01-21 + +**Added** + +* Use Python 3.11 non-beta in CI (#438 by [@bbc2]) +* Modernize variables code (#434 by [@Nougat-Waffle]) +* Modernize main.py and parser.py code (#435 by [@Nougat-Waffle]) +* Improve conciseness of cli.py and __init__.py (#439 by [@Nougat-Waffle]) +* Improve error message for `get` and `list` commands when env file can't be opened (#441 by [@bbc2]) +* Updated License to align with BSD OSI template (#433 by [@lsmith77]) + + +**Fixed** + +* Fix Out-of-scope error when "dest" variable is undefined (#413 by [@theGOTOguy]) +* Fix IPython test warning about deprecated `magic` (#440 by [@bbc2]) +* Fix type hint for dotenv_path var, add StrPath alias (#432 by [@eaf]) + +## [0.21.0] - 2022-09-03 + +**Added** + +* CLI: add support for invocations via 'python -m'. (#395 by [@theskumar]) +* `load_dotenv` function now returns `False`. (#388 by [@larsks]) +* CLI: add --format= option to list command. (#407 by [@sammck]) + +**Fixed** + +* Drop Python 3.5 and 3.6 and upgrade GA (#393 by [@eggplants]) +* Use `open` instead of `io.open`. (#389 by [@rabinadk1]) +* Improve documentation for variables without a value (#390 by [@bbc2]) +* Add `parse_it` to Related Projects (#410 by [@naorlivne]) +* Update README.md (#415 by [@harveer07]) +* Improve documentation with direct use of MkDocs (#398 by [@bbc2]) + +## [0.20.0] - 2022-03-24 + +**Added** + +- Add `encoding` (`Optional[str]`) parameter to `get_key`, `set_key` and `unset_key`. + (#379 by [@bbc2]) + +**Fixed** + +- Use dict to specify the `entry_points` parameter of `setuptools.setup` (#376 by + [@mgorny]). +- Don't build universal wheels (#387 by [@bbc2]). + +## [0.19.2] - 2021-11-11 + +**Fixed** + +- In `set_key`, add missing newline character before new entry if necessary. (#361 by + [@bbc2]) + +## [0.19.1] - 2021-08-09 + +**Added** + +- Add support for Python 3.10. (#359 by [@theskumar]) + +## [0.19.0] - 2021-07-24 + +**Changed** + +- Require Python 3.5 or a later version. Python 2 and 3.4 are no longer supported. (#341 + by [@bbc2]). + +**Added** + +- The `dotenv_path` argument of `set_key` and `unset_key` now has a type of `Union[str, + os.PathLike]` instead of just `os.PathLike` (#347 by [@bbc2]). +- The `stream` argument of `load_dotenv` and `dotenv_values` can now be a text stream + (`IO[str]`), which includes values like `io.StringIO("foo")` and `open("file.env", + "r")` (#348 by [@bbc2]). + +## [0.18.0] - 2021-06-20 + +**Changed** + +- Raise `ValueError` if `quote_mode` isn't one of `always`, `auto` or `never` in + `set_key` (#330 by [@bbc2]). +- When writing a value to a .env file with `set_key` or `dotenv set ` (#330 + by [@bbc2]): + - Use single quotes instead of double quotes. + - Don't strip surrounding quotes. + - In `auto` mode, don't add quotes if the value is only made of alphanumeric characters + (as determined by `string.isalnum`). + +## [0.17.1] - 2021-04-29 + +**Fixed** + +- Fixed tests for build environments relying on `PYTHONPATH` (#318 by [@befeleme]). + +## [0.17.0] - 2021-04-02 + +**Changed** + +- Make `dotenv get ` only show the value, not `key=value` (#313 by [@bbc2]). + +**Added** + +- Add `--override`/`--no-override` option to `dotenv run` (#312 by [@zueve] and [@bbc2]). + +## [0.16.0] - 2021-03-27 + +**Changed** + +- The default value of the `encoding` parameter for `load_dotenv` and `dotenv_values` is + now `"utf-8"` instead of `None` (#306 by [@bbc2]). +- Fix resolution order in variable expansion with `override=False` (#287 by [@bbc2]). + +## [0.15.0] - 2020-10-28 + +**Added** + +- Add `--export` option to `set` to make it prepend the binding with `export` (#270 by + [@jadutter]). + +**Changed** + +- Make `set` command create the `.env` file in the current directory if no `.env` file was + found (#270 by [@jadutter]). + +**Fixed** + +- Fix potentially empty expanded value for duplicate key (#260 by [@bbc2]). +- Fix import error on Python 3.5.0 and 3.5.1 (#267 by [@gongqingkui]). +- Fix parsing of unquoted values containing several adjacent space or tab characters + (#277 by [@bbc2], review by [@x-yuri]). + +## [0.14.0] - 2020-07-03 + +**Changed** + +- Privilege definition in file over the environment in variable expansion (#256 by + [@elbehery95]). + +**Fixed** + +- Improve error message for when file isn't found (#245 by [@snobu]). +- Use HTTPS URL in package meta data (#251 by [@ekohl]). + +## [0.13.0] - 2020-04-16 + +**Added** + +- Add support for a Bash-like default value in variable expansion (#248 by [@bbc2]). + +## [0.12.0] - 2020-02-28 + +**Changed** + +- Use current working directory to find `.env` when bundled by PyInstaller (#213 by + [@gergelyk]). + +**Fixed** + +- Fix escaping of quoted values written by `set_key` (#236 by [@bbc2]). +- Fix `dotenv run` crashing on environment variables without values (#237 by [@yannham]). +- Remove warning when last line is empty (#238 by [@bbc2]). + +## [0.11.0] - 2020-02-07 + +**Added** + +- Add `interpolate` argument to `load_dotenv` and `dotenv_values` to disable interpolation + (#232 by [@ulyssessouza]). + +**Changed** + +- Use logging instead of warnings (#231 by [@bbc2]). + +**Fixed** + +- Fix installation in non-UTF-8 environments (#225 by [@altendky]). +- Fix PyPI classifiers (#228 by [@bbc2]). + +## [0.10.5] - 2020-01-19 + +**Fixed** + +- Fix handling of malformed lines and lines without a value (#222 by [@bbc2]): + - Don't print warning when key has no value. + - Reject more malformed lines (e.g. "A: B", "a='b',c"). +- Fix handling of lines with just a comment (#224 by [@bbc2]). + +## [0.10.4] - 2020-01-17 + +**Added** + +- Make typing optional (#179 by [@techalchemy]). +- Print a warning on malformed line (#211 by [@bbc2]). +- Support keys without a value (#220 by [@ulyssessouza]). + +## 0.10.3 + +- Improve interactive mode detection ([@andrewsmith])([#183]). +- Refactor parser to fix parsing inconsistencies ([@bbc2])([#170]). + - Interpret escapes as control characters only in double-quoted strings. + - Interpret `#` as start of comment only if preceded by whitespace. + +## 0.10.2 + +- Add type hints and expose them to users ([@qnighy])([#172]) +- `load_dotenv` and `dotenv_values` now accept an `encoding` parameter, defaults to `None` + ([@theskumar])([@earlbread])([#161]) +- Fix `str`/`unicode` inconsistency in Python 2: values are always `str` now. ([@bbc2])([#121]) +- Fix Unicode error in Python 2, introduced in 0.10.0. ([@bbc2])([#176]) + +## 0.10.1 +- Fix parsing of variable without a value ([@asyncee])([@bbc2])([#158]) + +## 0.10.0 + +- Add support for UTF-8 in unquoted values ([@bbc2])([#148]) +- Add support for trailing comments ([@bbc2])([#148]) +- Add backslashes support in values ([@bbc2])([#148]) +- Add support for newlines in values ([@bbc2])([#148]) +- Force environment variables to str with Python2 on Windows ([@greyli]) +- Drop Python 3.3 support ([@greyli]) +- Fix stderr/-out/-in redirection ([@venthur]) + + +## 0.9.0 + +- Add `--version` parameter to cli ([@venthur]) +- Enable loading from current directory ([@cjauvin]) +- Add 'dotenv run' command for calling arbitrary shell script with .env ([@venthur]) + +## 0.8.1 + +- Add tests for docs ([@Flimm]) +- Make 'cli' support optional. Use `pip install python-dotenv[cli]`. ([@theskumar]) + +## 0.8.0 + +- `set_key` and `unset_key` only modified the affected file instead of + parsing and re-writing file, this causes comments and other file + entact as it is. +- Add support for `export` prefix in the line. +- Internal refractoring ([@theskumar]) +- Allow `load_dotenv` and `dotenv_values` to work with `StringIO())` ([@alanjds])([@theskumar])([#78]) + +## 0.7.1 + +- Remove hard dependency on iPython ([@theskumar]) + +## 0.7.0 + +- Add support to override system environment variable via .env. + ([@milonimrod](https://github.com/milonimrod)) + ([\#63](https://github.com/theskumar/python-dotenv/issues/63)) +- Disable ".env not found" warning by default + ([@maxkoryukov](https://github.com/maxkoryukov)) + ([\#57](https://github.com/theskumar/python-dotenv/issues/57)) + +## 0.6.5 + +- Add support for special characters `\`. + ([@pjona](https://github.com/pjona)) + ([\#60](https://github.com/theskumar/python-dotenv/issues/60)) + +## 0.6.4 + +- Fix issue with single quotes ([@Flimm]) + ([\#52](https://github.com/theskumar/python-dotenv/issues/52)) + +## 0.6.3 + +- Handle unicode exception in setup.py + ([\#46](https://github.com/theskumar/python-dotenv/issues/46)) + +## 0.6.2 + +- Fix dotenv list command ([@ticosax](https://github.com/ticosax)) +- Add iPython Support + ([@tillahoffmann](https://github.com/tillahoffmann)) + +## 0.6.0 + +- Drop support for Python 2.6 +- Handle escaped characters and newlines in quoted values. (Thanks + [@iameugenejo](https://github.com/iameugenejo)) +- Remove any spaces around unquoted key/value. (Thanks + [@paulochf](https://github.com/paulochf)) +- Added POSIX variable expansion. (Thanks + [@hugochinchilla](https://github.com/hugochinchilla)) + +## 0.5.1 + +- Fix `find_dotenv` - it now start search from the file where this + function is called from. + +## 0.5.0 + +- Add `find_dotenv` method that will try to find a `.env` file. + (Thanks [@isms](https://github.com/isms)) + +## 0.4.0 + +- cli: Added `-q/--quote` option to control the behaviour of quotes + around values in `.env`. (Thanks + [@hugochinchilla](https://github.com/hugochinchilla)). +- Improved test coverage. + + +[#78]: https://github.com/theskumar/python-dotenv/issues/78 +[#121]: https://github.com/theskumar/python-dotenv/issues/121 +[#148]: https://github.com/theskumar/python-dotenv/issues/148 +[#158]: https://github.com/theskumar/python-dotenv/issues/158 +[#170]: https://github.com/theskumar/python-dotenv/issues/170 +[#172]: https://github.com/theskumar/python-dotenv/issues/172 +[#176]: https://github.com/theskumar/python-dotenv/issues/176 +[#183]: https://github.com/theskumar/python-dotenv/issues/183 +[#359]: https://github.com/theskumar/python-dotenv/issues/359 +[#469]: https://github.com/theskumar/python-dotenv/issues/469 +[#456]: https://github.com/theskumar/python-dotenv/issues/456 +[#466]: https://github.com/theskumar/python-dotenv/issues/466 +[#454]: https://github.com/theskumar/python-dotenv/issues/454 +[#474]: https://github.com/theskumar/python-dotenv/issues/474 +[#523]: https://github.com/theskumar/python-dotenv/issues/523 +[#553]: https://github.com/theskumar/python-dotenv/issues/553 +[#569]: https://github.com/theskumar/python-dotenv/issues/569 +[#583]: https://github.com/theskumar/python-dotenv/issues/583 +[#586]: https://github.com/theskumar/python-dotenv/issues/586 + + +[@23f3001135]: https://github.com/23f3001135 +[@EpicWink]: https://github.com/EpicWink +[@Flimm]: https://github.com/Flimm +[@Nicals]: https://github.com/Nicals +[@Nougat-Waffle]: https://github.com/Nougat-Waffle +[@Qwerty-133]: https://github.com/Qwerty-133 +[@alanjds]: https://github.com/alanjds +[@altendky]: https://github.com/altendky +[@andrewsmith]: https://github.com/andrewsmith +[@asyncee]: https://github.com/asyncee +[@bbc2]: https://github.com/bbc2 +[@befeleme]: https://github.com/befeleme +[@cjauvin]: https://github.com/cjauvin +[@eaf]: https://github.com/eaf +[@earlbread]: https://github.com/earlbread +[@eekstunt]: https://github.com/eekstunt +[@eggplants]: https://github.com/@eggplants +[@ekohl]: https://github.com/ekohl +[@elbehery95]: https://github.com/elbehery95 +[@eumiro]: https://github.com/eumiro +[@freddyaboulton]: https://github.com/freddyaboulton +[@gergelyk]: https://github.com/gergelyk +[@gongqingkui]: https://github.com/gongqingkui +[@greyli]: https://github.com/greyli +[@harveer07]: https://github.com/@harveer07 +[@jadutter]: https://github.com/jadutter +[@jankislinger]: https://github.com/jankislinger +[@jctanner]: https://github.com/jctanner +[@larsks]: https://github.com/@larsks +[@lsmith77]: https://github.com/lsmith77 +[@matthewfranglen]: https://github.com/matthewfranglen +[@mgorny]: https://github.com/mgorny +[@naorlivne]: https://github.com/@naorlivne +[@qnighy]: https://github.com/qnighy +[@rabinadk1]: https://github.com/@rabinadk1 +[@randomseed42]: https://github.com/zueve +[@sammck]: https://github.com/@sammck +[@samwyma]: https://github.com/samwyma +[@sidharth-sudhir]: https://github.com/sidharth-sudhir +[@snobu]: https://github.com/snobu +[@techalchemy]: https://github.com/techalchemy +[@theGOTOguy]: https://github.com/theGOTOguy +[@theskumar]: https://github.com/theskumar +[@ulyssessouza]: https://github.com/ulyssessouza +[@venthur]: https://github.com/venthur +[@wrongontheinternet]: https://github.com/wrongontheinternet +[@x-yuri]: https://github.com/x-yuri +[@yannham]: https://github.com/yannham +[@zueve]: https://github.com/zueve + +[Unreleased]: https://github.com/theskumar/python-dotenv/compare/v1.2.0...HEAD +[1.2.0]: https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0 +[1.1.1]: https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1 +[1.1.0]: https://github.com/theskumar/python-dotenv/compare/v1.0.1...v1.1.0 +[1.0.1]: https://github.com/theskumar/python-dotenv/compare/v1.0.0...v1.0.1 +[1.0.0]: https://github.com/theskumar/python-dotenv/compare/v0.21.0...v1.0.0 +[0.21.1]: https://github.com/theskumar/python-dotenv/compare/v0.21.0...v0.21.1 +[0.21.0]: https://github.com/theskumar/python-dotenv/compare/v0.20.0...v0.21.0 +[0.20.0]: https://github.com/theskumar/python-dotenv/compare/v0.19.2...v0.20.0 +[0.19.2]: https://github.com/theskumar/python-dotenv/compare/v0.19.1...v0.19.2 +[0.19.1]: https://github.com/theskumar/python-dotenv/compare/v0.19.0...v0.19.1 +[0.19.0]: https://github.com/theskumar/python-dotenv/compare/v0.18.0...v0.19.0 +[0.18.0]: https://github.com/theskumar/python-dotenv/compare/v0.17.1...v0.18.0 +[0.17.1]: https://github.com/theskumar/python-dotenv/compare/v0.17.0...v0.17.1 +[0.17.0]: https://github.com/theskumar/python-dotenv/compare/v0.16.0...v0.17.0 +[0.16.0]: https://github.com/theskumar/python-dotenv/compare/v0.15.0...v0.16.0 +[0.15.0]: https://github.com/theskumar/python-dotenv/compare/v0.14.0...v0.15.0 +[0.14.0]: https://github.com/theskumar/python-dotenv/compare/v0.13.0...v0.14.0 +[0.13.0]: https://github.com/theskumar/python-dotenv/compare/v0.12.0...v0.13.0 +[0.12.0]: https://github.com/theskumar/python-dotenv/compare/v0.11.0...v0.12.0 +[0.11.0]: https://github.com/theskumar/python-dotenv/compare/v0.10.5...v0.11.0 +[0.10.5]: https://github.com/theskumar/python-dotenv/compare/v0.10.4...v0.10.5 +[0.10.4]: https://github.com/theskumar/python-dotenv/compare/v0.10.3...v0.10.4 diff --git a/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/RECORD b/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/RECORD new file mode 100644 index 0000000..bdfd99e --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/RECORD @@ -0,0 +1,26 @@ +../../../bin/dotenv,sha256=-quxqFGgaI3g8Tht9Oo_mdKV_VbsNu2Wg81Clk_sSNI,249 +dotenv/__init__.py,sha256=bhY-iK6wwHZamWII6eSCuCAWXUNdn2TQFmEOuXSU7SM,1230 +dotenv/__main__.py,sha256=N0RhLG7nHIqtlJHwwepIo-zbJPNx9sewCCRGY528h_4,129 +dotenv/__pycache__/__init__.cpython-311.pyc,, +dotenv/__pycache__/__main__.cpython-311.pyc,, +dotenv/__pycache__/cli.cpython-311.pyc,, +dotenv/__pycache__/ipython.cpython-311.pyc,, +dotenv/__pycache__/main.cpython-311.pyc,, +dotenv/__pycache__/parser.cpython-311.pyc,, +dotenv/__pycache__/variables.cpython-311.pyc,, +dotenv/__pycache__/version.cpython-311.pyc,, +dotenv/cli.py,sha256=hB-zMdXUekkSD1iR9tkhOdri5FGMA-mS7JGayLHDP-A,6181 +dotenv/ipython.py,sha256=dHQBd9PcdCUphGb67Xwy3GkUqMSdf9XUUiNYxTZ3tYU,1326 +dotenv/main.py,sha256=ouJgpR_KGJl9F09vwig1wzuK0NsJ2iD3TWC1GZaSRlw,13392 +dotenv/parser.py,sha256=JSJpd94tGhvnzOv4PL3DreU1Lt5v6rTK7pp8G6RnfL4,5179 +dotenv/py.typed,sha256=8PjyZ1aVoQpRVvt71muvuq5qE-jTFZkK-GLHkhdebmc,26 +dotenv/variables.py,sha256=CD0qXOvvpB3q5RpBQMD9qX6vHX7SyW-SuiwGMFSlt08,2348 +dotenv/version.py,sha256=Mlm4Gvmb_6yQxwUbv2Ksc-BJFXLPg9H1Vt2iV7wXrA4,22 +python_dotenv-1.2.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +python_dotenv-1.2.1.dist-info/METADATA,sha256=TI2O0cl4uPUaPS7cfzjxnUGSAWndS_qKLoBTP3b9CqA,25739 +python_dotenv-1.2.1.dist-info/RECORD,, +python_dotenv-1.2.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +python_dotenv-1.2.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91 +python_dotenv-1.2.1.dist-info/entry_points.txt,sha256=yRl1rCbswb1nQTQ_gZRlCw5QfabztUGnfGWLhlXFNdI,47 +python_dotenv-1.2.1.dist-info/licenses/LICENSE,sha256=gGGbcEnwjIFoOtDgHwjyV6hAZS3XHugxRtNmWMfSwrk,1556 +python_dotenv-1.2.1.dist-info/top_level.txt,sha256=eyqUH4SHJNr6ahOYlxIunTr4XinE8Z5ajWLdrK3r0D8,7 diff --git a/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/WHEEL b/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/WHEEL new file mode 100644 index 0000000..e7fa31b --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/entry_points.txt b/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/entry_points.txt new file mode 100644 index 0000000..0a86823 --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +dotenv = dotenv.__main__:cli diff --git a/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/licenses/LICENSE new file mode 100644 index 0000000..3a97119 --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/licenses/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2014, Saurabh Kumar (python-dotenv), 2013, Ted Tieken (django-dotenv-rw), 2013, Jacob Kaplan-Moss (django-dotenv) + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +- Neither the name of django-dotenv nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/top_level.txt new file mode 100644 index 0000000..fe7c01a --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_dotenv-1.2.1.dist-info/top_level.txt @@ -0,0 +1 @@ +dotenv diff --git a/venv/lib/python3.11/site-packages/python_multipart-0.0.20.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/python_multipart-0.0.20.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_multipart-0.0.20.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/python_multipart-0.0.20.dist-info/METADATA b/venv/lib/python3.11/site-packages/python_multipart-0.0.20.dist-info/METADATA new file mode 100644 index 0000000..155ce8b --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_multipart-0.0.20.dist-info/METADATA @@ -0,0 +1,40 @@ +Metadata-Version: 2.4 +Name: python-multipart +Version: 0.0.20 +Summary: A streaming multipart parser for Python +Project-URL: Homepage, https://github.com/Kludex/python-multipart +Project-URL: Documentation, https://kludex.github.io/python-multipart/ +Project-URL: Changelog, https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md +Project-URL: Source, https://github.com/Kludex/python-multipart +Author-email: Andrew Dunham , Marcelo Trylesinski +License-Expression: Apache-2.0 +License-File: LICENSE.txt +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Requires-Python: >=3.8 +Description-Content-Type: text/markdown + +# [Python-Multipart](https://kludex.github.io/python-multipart/) + +[![Package version](https://badge.fury.io/py/python-multipart.svg)](https://pypi.python.org/pypi/python-multipart) +[![Supported Python Version](https://img.shields.io/pypi/pyversions/python-multipart.svg?color=%2334D058)](https://pypi.org/project/python-multipart) + +--- + +`python-multipart` is an Apache2-licensed streaming multipart parser for Python. +Test coverage is currently 100%. + +## Why? + +Because streaming uploads are awesome for large files. diff --git a/venv/lib/python3.11/site-packages/python_multipart-0.0.20.dist-info/RECORD b/venv/lib/python3.11/site-packages/python_multipart-0.0.20.dist-info/RECORD new file mode 100644 index 0000000..e699635 --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_multipart-0.0.20.dist-info/RECORD @@ -0,0 +1,23 @@ +multipart/__init__.py,sha256=_ttxOAFnTN4jeac-_8NeXpaXYYo0PPEIp8Ogo4YFNHE,935 +multipart/__pycache__/__init__.cpython-311.pyc,, +multipart/__pycache__/decoders.cpython-311.pyc,, +multipart/__pycache__/exceptions.cpython-311.pyc,, +multipart/__pycache__/multipart.cpython-311.pyc,, +multipart/decoders.py,sha256=XvkAwTU9UFPiXkc0hkvovHf0W6H3vK-2ieWlhav02hQ,40 +multipart/exceptions.py,sha256=6D_X-seiOmMAlIeiGlPGUs8-vpcvIGJeQycFMDb1f7A,42 +multipart/multipart.py,sha256=8fDH14j_VMbrch_58wlzi63XNARGv80kOZAyN72aG7A,41 +python_multipart-0.0.20.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +python_multipart-0.0.20.dist-info/METADATA,sha256=h2GtPOVShbVkpBUrjp5KE3t6eiJJhd0_WCaCXrb5TgU,1817 +python_multipart-0.0.20.dist-info/RECORD,, +python_multipart-0.0.20.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +python_multipart-0.0.20.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87 +python_multipart-0.0.20.dist-info/licenses/LICENSE.txt,sha256=qOgzF2zWF9rwC51tOfoVyo7evG0WQwec0vSJPAwom-I,556 +python_multipart/__init__.py,sha256=Nlw6Yrc__qXnCZLo17OzbJR2w2mwiSFk69IG4Wl35EU,512 +python_multipart/__pycache__/__init__.cpython-311.pyc,, +python_multipart/__pycache__/decoders.cpython-311.pyc,, +python_multipart/__pycache__/exceptions.cpython-311.pyc,, +python_multipart/__pycache__/multipart.cpython-311.pyc,, +python_multipart/decoders.py,sha256=JM43FMNn_EKP0MI2ZkuZHhNa0MOASoIR0U5TvdG585k,6669 +python_multipart/exceptions.py,sha256=a9buSOv_eiHZoukEJhdWX9LJYSJ6t7XOK3ZEaWoQZlk,992 +python_multipart/multipart.py,sha256=pk3o3eB3KXbNxzOBxbEjCdz-1ESEZIMXVIfl12grG-o,76427 +python_multipart/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/venv/lib/python3.11/site-packages/python_multipart-0.0.20.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/python_multipart-0.0.20.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/python_multipart-0.0.20.dist-info/WHEEL b/venv/lib/python3.11/site-packages/python_multipart-0.0.20.dist-info/WHEEL new file mode 100644 index 0000000..12228d4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_multipart-0.0.20.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: hatchling 1.27.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/python_multipart-0.0.20.dist-info/licenses/LICENSE.txt b/venv/lib/python3.11/site-packages/python_multipart-0.0.20.dist-info/licenses/LICENSE.txt new file mode 100644 index 0000000..303a1bf --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_multipart-0.0.20.dist-info/licenses/LICENSE.txt @@ -0,0 +1,14 @@ +Copyright 2012, Andrew Dunham + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + diff --git a/venv/lib/python3.11/site-packages/python_multipart/__init__.py b/venv/lib/python3.11/site-packages/python_multipart/__init__.py new file mode 100644 index 0000000..e426526 --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_multipart/__init__.py @@ -0,0 +1,25 @@ +# This is the canonical package information. +__author__ = "Andrew Dunham" +__license__ = "Apache" +__copyright__ = "Copyright (c) 2012-2013, Andrew Dunham" +__version__ = "0.0.20" + +from .multipart import ( + BaseParser, + FormParser, + MultipartParser, + OctetStreamParser, + QuerystringParser, + create_form_parser, + parse_form, +) + +__all__ = ( + "BaseParser", + "FormParser", + "MultipartParser", + "OctetStreamParser", + "QuerystringParser", + "create_form_parser", + "parse_form", +) diff --git a/venv/lib/python3.11/site-packages/python_multipart/decoders.py b/venv/lib/python3.11/site-packages/python_multipart/decoders.py new file mode 100644 index 0000000..82b56a1 --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_multipart/decoders.py @@ -0,0 +1,185 @@ +import base64 +import binascii +from typing import TYPE_CHECKING + +from .exceptions import DecodeError + +if TYPE_CHECKING: # pragma: no cover + from typing import Protocol, TypeVar + + _T_contra = TypeVar("_T_contra", contravariant=True) + + class SupportsWrite(Protocol[_T_contra]): + def write(self, __b: _T_contra) -> object: ... + + # No way to specify optional methods. See + # https://github.com/python/typing/issues/601 + # close() [Optional] + # finalize() [Optional] + + +class Base64Decoder: + """This object provides an interface to decode a stream of Base64 data. It + is instantiated with an "underlying object", and whenever a write() + operation is performed, it will decode the incoming data as Base64, and + call write() on the underlying object. This is primarily used for decoding + form data encoded as Base64, but can be used for other purposes:: + + from python_multipart.decoders import Base64Decoder + fd = open("notb64.txt", "wb") + decoder = Base64Decoder(fd) + try: + decoder.write("Zm9vYmFy") # "foobar" in Base64 + decoder.finalize() + finally: + decoder.close() + + # The contents of "notb64.txt" should be "foobar". + + This object will also pass all finalize() and close() calls to the + underlying object, if the underlying object supports them. + + Note that this class maintains a cache of base64 chunks, so that a write of + arbitrary size can be performed. You must call :meth:`finalize` on this + object after all writes are completed to ensure that all data is flushed + to the underlying object. + + :param underlying: the underlying object to pass writes to + """ + + def __init__(self, underlying: "SupportsWrite[bytes]") -> None: + self.cache = bytearray() + self.underlying = underlying + + def write(self, data: bytes) -> int: + """Takes any input data provided, decodes it as base64, and passes it + on to the underlying object. If the data provided is invalid base64 + data, then this method will raise + a :class:`python_multipart.exceptions.DecodeError` + + :param data: base64 data to decode + """ + + # Prepend any cache info to our data. + if len(self.cache) > 0: + data = self.cache + data + + # Slice off a string that's a multiple of 4. + decode_len = (len(data) // 4) * 4 + val = data[:decode_len] + + # Decode and write, if we have any. + if len(val) > 0: + try: + decoded = base64.b64decode(val) + except binascii.Error: + raise DecodeError("There was an error raised while decoding base64-encoded data.") + + self.underlying.write(decoded) + + # Get the remaining bytes and save in our cache. + remaining_len = len(data) % 4 + if remaining_len > 0: + self.cache[:] = data[-remaining_len:] + else: + self.cache[:] = b"" + + # Return the length of the data to indicate no error. + return len(data) + + def close(self) -> None: + """Close this decoder. If the underlying object has a `close()` + method, this function will call it. + """ + if hasattr(self.underlying, "close"): + self.underlying.close() + + def finalize(self) -> None: + """Finalize this object. This should be called when no more data + should be written to the stream. This function can raise a + :class:`python_multipart.exceptions.DecodeError` if there is some remaining + data in the cache. + + If the underlying object has a `finalize()` method, this function will + call it. + """ + if len(self.cache) > 0: + raise DecodeError( + "There are %d bytes remaining in the Base64Decoder cache when finalize() is called" % len(self.cache) + ) + + if hasattr(self.underlying, "finalize"): + self.underlying.finalize() + + def __repr__(self) -> str: + return f"{self.__class__.__name__}(underlying={self.underlying!r})" + + +class QuotedPrintableDecoder: + """This object provides an interface to decode a stream of quoted-printable + data. It is instantiated with an "underlying object", in the same manner + as the :class:`python_multipart.decoders.Base64Decoder` class. This class behaves + in exactly the same way, including maintaining a cache of quoted-printable + chunks. + + :param underlying: the underlying object to pass writes to + """ + + def __init__(self, underlying: "SupportsWrite[bytes]") -> None: + self.cache = b"" + self.underlying = underlying + + def write(self, data: bytes) -> int: + """Takes any input data provided, decodes it as quoted-printable, and + passes it on to the underlying object. + + :param data: quoted-printable data to decode + """ + # Prepend any cache info to our data. + if len(self.cache) > 0: + data = self.cache + data + + # If the last 2 characters have an '=' sign in it, then we won't be + # able to decode the encoded value and we'll need to save it for the + # next decoding step. + if data[-2:].find(b"=") != -1: + enc, rest = data[:-2], data[-2:] + else: + enc = data + rest = b"" + + # Encode and write, if we have data. + if len(enc) > 0: + self.underlying.write(binascii.a2b_qp(enc)) + + # Save remaining in cache. + self.cache = rest + return len(data) + + def close(self) -> None: + """Close this decoder. If the underlying object has a `close()` + method, this function will call it. + """ + if hasattr(self.underlying, "close"): + self.underlying.close() + + def finalize(self) -> None: + """Finalize this object. This should be called when no more data + should be written to the stream. This function will not raise any + exceptions, but it may write more data to the underlying object if + there is data remaining in the cache. + + If the underlying object has a `finalize()` method, this function will + call it. + """ + # If we have a cache, write and then remove it. + if len(self.cache) > 0: # pragma: no cover + self.underlying.write(binascii.a2b_qp(self.cache)) + self.cache = b"" + + # Finalize our underlying stream. + if hasattr(self.underlying, "finalize"): + self.underlying.finalize() + + def __repr__(self) -> str: + return f"{self.__class__.__name__}(underlying={self.underlying!r})" diff --git a/venv/lib/python3.11/site-packages/python_multipart/exceptions.py b/venv/lib/python3.11/site-packages/python_multipart/exceptions.py new file mode 100644 index 0000000..cc3671f --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_multipart/exceptions.py @@ -0,0 +1,34 @@ +class FormParserError(ValueError): + """Base error class for our form parser.""" + + +class ParseError(FormParserError): + """This exception (or a subclass) is raised when there is an error while + parsing something. + """ + + #: This is the offset in the input data chunk (*NOT* the overall stream) in + #: which the parse error occurred. It will be -1 if not specified. + offset = -1 + + +class MultipartParseError(ParseError): + """This is a specific error that is raised when the MultipartParser detects + an error while parsing. + """ + + +class QuerystringParseError(ParseError): + """This is a specific error that is raised when the QuerystringParser + detects an error while parsing. + """ + + +class DecodeError(ParseError): + """This exception is raised when there is a decoding error - for example + with the Base64Decoder or QuotedPrintableDecoder. + """ + + +class FileError(FormParserError, OSError): + """Exception class for problems with the File class.""" diff --git a/venv/lib/python3.11/site-packages/python_multipart/multipart.py b/venv/lib/python3.11/site-packages/python_multipart/multipart.py new file mode 100644 index 0000000..f26a815 --- /dev/null +++ b/venv/lib/python3.11/site-packages/python_multipart/multipart.py @@ -0,0 +1,1873 @@ +from __future__ import annotations + +import logging +import os +import shutil +import sys +import tempfile +from email.message import Message +from enum import IntEnum +from io import BufferedRandom, BytesIO +from numbers import Number +from typing import TYPE_CHECKING, cast + +from .decoders import Base64Decoder, QuotedPrintableDecoder +from .exceptions import FileError, FormParserError, MultipartParseError, QuerystringParseError + +if TYPE_CHECKING: # pragma: no cover + from typing import Any, Callable, Literal, Protocol, TypedDict + + from typing_extensions import TypeAlias + + class SupportsRead(Protocol): + def read(self, __n: int) -> bytes: ... + + class QuerystringCallbacks(TypedDict, total=False): + on_field_start: Callable[[], None] + on_field_name: Callable[[bytes, int, int], None] + on_field_data: Callable[[bytes, int, int], None] + on_field_end: Callable[[], None] + on_end: Callable[[], None] + + class OctetStreamCallbacks(TypedDict, total=False): + on_start: Callable[[], None] + on_data: Callable[[bytes, int, int], None] + on_end: Callable[[], None] + + class MultipartCallbacks(TypedDict, total=False): + on_part_begin: Callable[[], None] + on_part_data: Callable[[bytes, int, int], None] + on_part_end: Callable[[], None] + on_header_begin: Callable[[], None] + on_header_field: Callable[[bytes, int, int], None] + on_header_value: Callable[[bytes, int, int], None] + on_header_end: Callable[[], None] + on_headers_finished: Callable[[], None] + on_end: Callable[[], None] + + class FormParserConfig(TypedDict): + UPLOAD_DIR: str | None + UPLOAD_KEEP_FILENAME: bool + UPLOAD_KEEP_EXTENSIONS: bool + UPLOAD_ERROR_ON_BAD_CTE: bool + MAX_MEMORY_FILE_SIZE: int + MAX_BODY_SIZE: float + + class FileConfig(TypedDict, total=False): + UPLOAD_DIR: str | bytes | None + UPLOAD_DELETE_TMP: bool + UPLOAD_KEEP_FILENAME: bool + UPLOAD_KEEP_EXTENSIONS: bool + MAX_MEMORY_FILE_SIZE: int + + class _FormProtocol(Protocol): + def write(self, data: bytes) -> int: ... + + def finalize(self) -> None: ... + + def close(self) -> None: ... + + class FieldProtocol(_FormProtocol, Protocol): + def __init__(self, name: bytes | None) -> None: ... + + def set_none(self) -> None: ... + + class FileProtocol(_FormProtocol, Protocol): + def __init__(self, file_name: bytes | None, field_name: bytes | None, config: FileConfig) -> None: ... + + OnFieldCallback = Callable[[FieldProtocol], None] + OnFileCallback = Callable[[FileProtocol], None] + + CallbackName: TypeAlias = Literal[ + "start", + "data", + "end", + "field_start", + "field_name", + "field_data", + "field_end", + "part_begin", + "part_data", + "part_end", + "header_begin", + "header_field", + "header_value", + "header_end", + "headers_finished", + ] + +# Unique missing object. +_missing = object() + + +class QuerystringState(IntEnum): + """Querystring parser states. + + These are used to keep track of the state of the parser, and are used to determine + what to do when new data is encountered. + """ + + BEFORE_FIELD = 0 + FIELD_NAME = 1 + FIELD_DATA = 2 + + +class MultipartState(IntEnum): + """Multipart parser states. + + These are used to keep track of the state of the parser, and are used to determine + what to do when new data is encountered. + """ + + START = 0 + START_BOUNDARY = 1 + HEADER_FIELD_START = 2 + HEADER_FIELD = 3 + HEADER_VALUE_START = 4 + HEADER_VALUE = 5 + HEADER_VALUE_ALMOST_DONE = 6 + HEADERS_ALMOST_DONE = 7 + PART_DATA_START = 8 + PART_DATA = 9 + PART_DATA_END = 10 + END_BOUNDARY = 11 + END = 12 + + +# Flags for the multipart parser. +FLAG_PART_BOUNDARY = 1 +FLAG_LAST_BOUNDARY = 2 + +# Get constants. Since iterating over a str on Python 2 gives you a 1-length +# string, but iterating over a bytes object on Python 3 gives you an integer, +# we need to save these constants. +CR = b"\r"[0] +LF = b"\n"[0] +COLON = b":"[0] +SPACE = b" "[0] +HYPHEN = b"-"[0] +AMPERSAND = b"&"[0] +SEMICOLON = b";"[0] +LOWER_A = b"a"[0] +LOWER_Z = b"z"[0] +NULL = b"\x00"[0] + +# fmt: off +# Mask for ASCII characters that can be http tokens. +# Per RFC7230 - 3.2.6, this is all alpha-numeric characters +# and these: !#$%&'*+-.^_`|~ +TOKEN_CHARS_SET = frozenset( + b"ABCDEFGHIJKLMNOPQRSTUVWXYZ" + b"abcdefghijklmnopqrstuvwxyz" + b"0123456789" + b"!#$%&'*+-.^_`|~") +# fmt: on + + +def parse_options_header(value: str | bytes | None) -> tuple[bytes, dict[bytes, bytes]]: + """Parses a Content-Type header into a value in the following format: (content_type, {parameters}).""" + # Uses email.message.Message to parse the header as described in PEP 594. + # Ref: https://peps.python.org/pep-0594/#cgi + if not value: + return (b"", {}) + + # If we are passed bytes, we assume that it conforms to WSGI, encoding in latin-1. + if isinstance(value, bytes): # pragma: no cover + value = value.decode("latin-1") + + # For types + assert isinstance(value, str), "Value should be a string by now" + + # If we have no options, return the string as-is. + if ";" not in value: + return (value.lower().strip().encode("latin-1"), {}) + + # Split at the first semicolon, to get our value and then options. + # ctype, rest = value.split(b';', 1) + message = Message() + message["content-type"] = value + params = message.get_params() + # If there were no parameters, this would have already returned above + assert params, "At least the content type value should be present" + ctype = params.pop(0)[0].encode("latin-1") + options: dict[bytes, bytes] = {} + for param in params: + key, value = param + # If the value returned from get_params() is a 3-tuple, the last + # element corresponds to the value. + # See: https://docs.python.org/3/library/email.compat32-message.html + if isinstance(value, tuple): + value = value[-1] + # If the value is a filename, we need to fix a bug on IE6 that sends + # the full file path instead of the filename. + if key == "filename": + if value[1:3] == ":\\" or value[:2] == "\\\\": + value = value.split("\\")[-1] + options[key.encode("latin-1")] = value.encode("latin-1") + return ctype, options + + +class Field: + """A Field object represents a (parsed) form field. It represents a single + field with a corresponding name and value. + + The name that a :class:`Field` will be instantiated with is the same name + that would be found in the following HTML:: + + + + This class defines two methods, :meth:`on_data` and :meth:`on_end`, that + will be called when data is written to the Field, and when the Field is + finalized, respectively. + + Args: + name: The name of the form field. + """ + + def __init__(self, name: bytes | None) -> None: + self._name = name + self._value: list[bytes] = [] + + # We cache the joined version of _value for speed. + self._cache = _missing + + @classmethod + def from_value(cls, name: bytes, value: bytes | None) -> Field: + """Create an instance of a :class:`Field`, and set the corresponding + value - either None or an actual value. This method will also + finalize the Field itself. + + Args: + name: the name of the form field. + value: the value of the form field - either a bytestring or None. + + Returns: + A new instance of a [`Field`][python_multipart.Field]. + """ + + f = cls(name) + if value is None: + f.set_none() + else: + f.write(value) + f.finalize() + return f + + def write(self, data: bytes) -> int: + """Write some data into the form field. + + Args: + data: The data to write to the field. + + Returns: + The number of bytes written. + """ + return self.on_data(data) + + def on_data(self, data: bytes) -> int: + """This method is a callback that will be called whenever data is + written to the Field. + + Args: + data: The data to write to the field. + + Returns: + The number of bytes written. + """ + self._value.append(data) + self._cache = _missing + return len(data) + + def on_end(self) -> None: + """This method is called whenever the Field is finalized.""" + if self._cache is _missing: + self._cache = b"".join(self._value) + + def finalize(self) -> None: + """Finalize the form field.""" + self.on_end() + + def close(self) -> None: + """Close the Field object. This will free any underlying cache.""" + # Free our value array. + if self._cache is _missing: + self._cache = b"".join(self._value) + + del self._value + + def set_none(self) -> None: + """Some fields in a querystring can possibly have a value of None - for + example, the string "foo&bar=&baz=asdf" will have a field with the + name "foo" and value None, one with name "bar" and value "", and one + with name "baz" and value "asdf". Since the write() interface doesn't + support writing None, this function will set the field value to None. + """ + self._cache = None + + @property + def field_name(self) -> bytes | None: + """This property returns the name of the field.""" + return self._name + + @property + def value(self) -> bytes | None: + """This property returns the value of the form field.""" + if self._cache is _missing: + self._cache = b"".join(self._value) + + assert isinstance(self._cache, bytes) or self._cache is None + return self._cache + + def __eq__(self, other: object) -> bool: + if isinstance(other, Field): + return self.field_name == other.field_name and self.value == other.value + else: + return NotImplemented + + def __repr__(self) -> str: + if self.value is not None and len(self.value) > 97: + # We get the repr, and then insert three dots before the final + # quote. + v = repr(self.value[:97])[:-1] + "...'" + else: + v = repr(self.value) + + return "{}(field_name={!r}, value={})".format(self.__class__.__name__, self.field_name, v) + + +class File: + """This class represents an uploaded file. It handles writing file data to + either an in-memory file or a temporary file on-disk, if the optional + threshold is passed. + + There are some options that can be passed to the File to change behavior + of the class. Valid options are as follows: + + | Name | Type | Default | Description | + |-----------------------|-------|---------|-------------| + | UPLOAD_DIR | `str` | None | The directory to store uploaded files in. If this is None, a temporary file will be created in the system's standard location. | + | UPLOAD_DELETE_TMP | `bool`| True | Delete automatically created TMP file | + | UPLOAD_KEEP_FILENAME | `bool`| False | Whether or not to keep the filename of the uploaded file. If True, then the filename will be converted to a safe representation (e.g. by removing any invalid path segments), and then saved with the same name). Otherwise, a temporary name will be used. | + | UPLOAD_KEEP_EXTENSIONS| `bool`| False | Whether or not to keep the uploaded file's extension. If False, the file will be saved with the default temporary extension (usually ".tmp"). Otherwise, the file's extension will be maintained. Note that this will properly combine with the UPLOAD_KEEP_FILENAME setting. | + | MAX_MEMORY_FILE_SIZE | `int` | 1 MiB | The maximum number of bytes of a File to keep in memory. By default, the contents of a File are kept into memory until a certain limit is reached, after which the contents of the File are written to a temporary file. This behavior can be disabled by setting this value to an appropriately large value (or, for example, infinity, such as `float('inf')`. | + + Args: + file_name: The name of the file that this [`File`][python_multipart.File] represents. + field_name: The name of the form field that this file was uploaded with. This can be None, if, for example, + the file was uploaded with Content-Type application/octet-stream. + config: The configuration for this File. See above for valid configuration keys and their corresponding values. + """ # noqa: E501 + + def __init__(self, file_name: bytes | None, field_name: bytes | None = None, config: FileConfig = {}) -> None: + # Save configuration, set other variables default. + self.logger = logging.getLogger(__name__) + self._config = config + self._in_memory = True + self._bytes_written = 0 + self._fileobj: BytesIO | BufferedRandom = BytesIO() + + # Save the provided field/file name. + self._field_name = field_name + self._file_name = file_name + + # Our actual file name is None by default, since, depending on our + # config, we may not actually use the provided name. + self._actual_file_name: bytes | None = None + + # Split the extension from the filename. + if file_name is not None: + base, ext = os.path.splitext(file_name) + self._file_base = base + self._ext = ext + + @property + def field_name(self) -> bytes | None: + """The form field associated with this file. May be None if there isn't + one, for example when we have an application/octet-stream upload. + """ + return self._field_name + + @property + def file_name(self) -> bytes | None: + """The file name given in the upload request.""" + return self._file_name + + @property + def actual_file_name(self) -> bytes | None: + """The file name that this file is saved as. Will be None if it's not + currently saved on disk. + """ + return self._actual_file_name + + @property + def file_object(self) -> BytesIO | BufferedRandom: + """The file object that we're currently writing to. Note that this + will either be an instance of a :class:`io.BytesIO`, or a regular file + object. + """ + return self._fileobj + + @property + def size(self) -> int: + """The total size of this file, counted as the number of bytes that + currently have been written to the file. + """ + return self._bytes_written + + @property + def in_memory(self) -> bool: + """A boolean representing whether or not this file object is currently + stored in-memory or on-disk. + """ + return self._in_memory + + def flush_to_disk(self) -> None: + """If the file is already on-disk, do nothing. Otherwise, copy from + the in-memory buffer to a disk file, and then reassign our internal + file object to this new disk file. + + Note that if you attempt to flush a file that is already on-disk, a + warning will be logged to this module's logger. + """ + if not self._in_memory: + self.logger.warning("Trying to flush to disk when we're not in memory") + return + + # Go back to the start of our file. + self._fileobj.seek(0) + + # Open a new file. + new_file = self._get_disk_file() + + # Copy the file objects. + shutil.copyfileobj(self._fileobj, new_file) + + # Seek to the new position in our new file. + new_file.seek(self._bytes_written) + + # Reassign the fileobject. + old_fileobj = self._fileobj + self._fileobj = new_file + + # We're no longer in memory. + self._in_memory = False + + # Close the old file object. + old_fileobj.close() + + def _get_disk_file(self) -> BufferedRandom: + """This function is responsible for getting a file object on-disk for us.""" + self.logger.info("Opening a file on disk") + + file_dir = self._config.get("UPLOAD_DIR") + keep_filename = self._config.get("UPLOAD_KEEP_FILENAME", False) + keep_extensions = self._config.get("UPLOAD_KEEP_EXTENSIONS", False) + delete_tmp = self._config.get("UPLOAD_DELETE_TMP", True) + tmp_file: None | BufferedRandom = None + + # If we have a directory and are to keep the filename... + if file_dir is not None and keep_filename: + self.logger.info("Saving with filename in: %r", file_dir) + + # Build our filename. + # TODO: what happens if we don't have a filename? + fname = self._file_base + self._ext if keep_extensions else self._file_base + + path = os.path.join(file_dir, fname) # type: ignore[arg-type] + try: + self.logger.info("Opening file: %r", path) + tmp_file = open(path, "w+b") + except OSError: + tmp_file = None + + self.logger.exception("Error opening temporary file") + raise FileError("Error opening temporary file: %r" % path) + else: + # Build options array. + # Note that on Python 3, tempfile doesn't support byte names. We + # encode our paths using the default filesystem encoding. + suffix = self._ext.decode(sys.getfilesystemencoding()) if keep_extensions else None + + if file_dir is None: + dir = None + elif isinstance(file_dir, bytes): + dir = file_dir.decode(sys.getfilesystemencoding()) + else: + dir = file_dir # pragma: no cover + + # Create a temporary (named) file with the appropriate settings. + self.logger.info( + "Creating a temporary file with options: %r", {"suffix": suffix, "delete": delete_tmp, "dir": dir} + ) + try: + tmp_file = cast(BufferedRandom, tempfile.NamedTemporaryFile(suffix=suffix, delete=delete_tmp, dir=dir)) + except OSError: + self.logger.exception("Error creating named temporary file") + raise FileError("Error creating named temporary file") + + assert tmp_file is not None + # Encode filename as bytes. + if isinstance(tmp_file.name, str): + fname = tmp_file.name.encode(sys.getfilesystemencoding()) + else: + fname = cast(bytes, tmp_file.name) # pragma: no cover + + self._actual_file_name = fname + return tmp_file + + def write(self, data: bytes) -> int: + """Write some data to the File. + + :param data: a bytestring + """ + return self.on_data(data) + + def on_data(self, data: bytes) -> int: + """This method is a callback that will be called whenever data is + written to the File. + + Args: + data: The data to write to the file. + + Returns: + The number of bytes written. + """ + bwritten = self._fileobj.write(data) + + # If the bytes written isn't the same as the length, just return. + if bwritten != len(data): + self.logger.warning("bwritten != len(data) (%d != %d)", bwritten, len(data)) + return bwritten + + # Keep track of how many bytes we've written. + self._bytes_written += bwritten + + # If we're in-memory and are over our limit, we create a file. + max_memory_file_size = self._config.get("MAX_MEMORY_FILE_SIZE") + if self._in_memory and max_memory_file_size is not None and (self._bytes_written > max_memory_file_size): + self.logger.info("Flushing to disk") + self.flush_to_disk() + + # Return the number of bytes written. + return bwritten + + def on_end(self) -> None: + """This method is called whenever the Field is finalized.""" + # Flush the underlying file object + self._fileobj.flush() + + def finalize(self) -> None: + """Finalize the form file. This will not close the underlying file, + but simply signal that we are finished writing to the File. + """ + self.on_end() + + def close(self) -> None: + """Close the File object. This will actually close the underlying + file object (whether it's a :class:`io.BytesIO` or an actual file + object). + """ + self._fileobj.close() + + def __repr__(self) -> str: + return "{}(file_name={!r}, field_name={!r})".format(self.__class__.__name__, self.file_name, self.field_name) + + +class BaseParser: + """This class is the base class for all parsers. It contains the logic for + calling and adding callbacks. + + A callback can be one of two different forms. "Notification callbacks" are + callbacks that are called when something happens - for example, when a new + part of a multipart message is encountered by the parser. "Data callbacks" + are called when we get some sort of data - for example, part of the body of + a multipart chunk. Notification callbacks are called with no parameters, + whereas data callbacks are called with three, as follows:: + + data_callback(data, start, end) + + The "data" parameter is a bytestring (i.e. "foo" on Python 2, or b"foo" on + Python 3). "start" and "end" are integer indexes into the "data" string + that represent the data of interest. Thus, in a data callback, the slice + `data[start:end]` represents the data that the callback is "interested in". + The callback is not passed a copy of the data, since copying severely hurts + performance. + """ + + def __init__(self) -> None: + self.logger = logging.getLogger(__name__) + self.callbacks: QuerystringCallbacks | OctetStreamCallbacks | MultipartCallbacks = {} + + def callback( + self, name: CallbackName, data: bytes | None = None, start: int | None = None, end: int | None = None + ) -> None: + """This function calls a provided callback with some data. If the + callback is not set, will do nothing. + + Args: + name: The name of the callback to call (as a string). + data: Data to pass to the callback. If None, then it is assumed that the callback is a notification + callback, and no parameters are given. + end: An integer that is passed to the data callback. + start: An integer that is passed to the data callback. + """ + on_name = "on_" + name + func = self.callbacks.get(on_name) + if func is None: + return + func = cast("Callable[..., Any]", func) + # Depending on whether we're given a buffer... + if data is not None: + # Don't do anything if we have start == end. + if start is not None and start == end: + return + + self.logger.debug("Calling %s with data[%d:%d]", on_name, start, end) + func(data, start, end) + else: + self.logger.debug("Calling %s with no data", on_name) + func() + + def set_callback(self, name: CallbackName, new_func: Callable[..., Any] | None) -> None: + """Update the function for a callback. Removes from the callbacks dict + if new_func is None. + + :param name: The name of the callback to call (as a string). + + :param new_func: The new function for the callback. If None, then the + callback will be removed (with no error if it does not + exist). + """ + if new_func is None: + self.callbacks.pop("on_" + name, None) # type: ignore[misc] + else: + self.callbacks["on_" + name] = new_func # type: ignore[literal-required] + + def close(self) -> None: + pass # pragma: no cover + + def finalize(self) -> None: + pass # pragma: no cover + + def __repr__(self) -> str: + return "%s()" % self.__class__.__name__ + + +class OctetStreamParser(BaseParser): + """This parser parses an octet-stream request body and calls callbacks when + incoming data is received. Callbacks are as follows: + + | Callback Name | Parameters | Description | + |----------------|-----------------|-----------------------------------------------------| + | on_start | None | Called when the first data is parsed. | + | on_data | data, start, end| Called for each data chunk that is parsed. | + | on_end | None | Called when the parser is finished parsing all data.| + + Args: + callbacks: A dictionary of callbacks. See the documentation for [`BaseParser`][python_multipart.BaseParser]. + max_size: The maximum size of body to parse. Defaults to infinity - i.e. unbounded. + """ + + def __init__(self, callbacks: OctetStreamCallbacks = {}, max_size: float = float("inf")): + super().__init__() + self.callbacks = callbacks + self._started = False + + if not isinstance(max_size, Number) or max_size < 1: + raise ValueError("max_size must be a positive number, not %r" % max_size) + self.max_size: int | float = max_size + self._current_size = 0 + + def write(self, data: bytes) -> int: + """Write some data to the parser, which will perform size verification, + and then pass the data to the underlying callback. + + Args: + data: The data to write to the parser. + + Returns: + The number of bytes written. + """ + if not self._started: + self.callback("start") + self._started = True + + # Truncate data length. + data_len = len(data) + if (self._current_size + data_len) > self.max_size: + # We truncate the length of data that we are to process. + new_size = int(self.max_size - self._current_size) + self.logger.warning( + "Current size is %d (max %d), so truncating data length from %d to %d", + self._current_size, + self.max_size, + data_len, + new_size, + ) + data_len = new_size + + # Increment size, then callback, in case there's an exception. + self._current_size += data_len + self.callback("data", data, 0, data_len) + return data_len + + def finalize(self) -> None: + """Finalize this parser, which signals to that we are finished parsing, + and sends the on_end callback. + """ + self.callback("end") + + def __repr__(self) -> str: + return "%s()" % self.__class__.__name__ + + +class QuerystringParser(BaseParser): + """This is a streaming querystring parser. It will consume data, and call + the callbacks given when it has data. + + | Callback Name | Parameters | Description | + |----------------|-----------------|-----------------------------------------------------| + | on_field_start | None | Called when a new field is encountered. | + | on_field_name | data, start, end| Called when a portion of a field's name is encountered. | + | on_field_data | data, start, end| Called when a portion of a field's data is encountered. | + | on_field_end | None | Called when the end of a field is encountered. | + | on_end | None | Called when the parser is finished parsing all data.| + + Args: + callbacks: A dictionary of callbacks. See the documentation for [`BaseParser`][python_multipart.BaseParser]. + strict_parsing: Whether or not to parse the body strictly. Defaults to False. If this is set to True, then the + behavior of the parser changes as the following: if a field has a value with an equal sign + (e.g. "foo=bar", or "foo="), it is always included. If a field has no equals sign (e.g. "...&name&..."), + it will be treated as an error if 'strict_parsing' is True, otherwise included. If an error is encountered, + then a [`QuerystringParseError`][python_multipart.exceptions.QuerystringParseError] will be raised. + max_size: The maximum size of body to parse. Defaults to infinity - i.e. unbounded. + """ # noqa: E501 + + state: QuerystringState + + def __init__( + self, callbacks: QuerystringCallbacks = {}, strict_parsing: bool = False, max_size: float = float("inf") + ) -> None: + super().__init__() + self.state = QuerystringState.BEFORE_FIELD + self._found_sep = False + + self.callbacks = callbacks + + # Max-size stuff + if not isinstance(max_size, Number) or max_size < 1: + raise ValueError("max_size must be a positive number, not %r" % max_size) + self.max_size: int | float = max_size + self._current_size = 0 + + # Should parsing be strict? + self.strict_parsing = strict_parsing + + def write(self, data: bytes) -> int: + """Write some data to the parser, which will perform size verification, + parse into either a field name or value, and then pass the + corresponding data to the underlying callback. If an error is + encountered while parsing, a QuerystringParseError will be raised. The + "offset" attribute of the raised exception will be set to the offset in + the input data chunk (NOT the overall stream) that caused the error. + + Args: + data: The data to write to the parser. + + Returns: + The number of bytes written. + """ + # Handle sizing. + data_len = len(data) + if (self._current_size + data_len) > self.max_size: + # We truncate the length of data that we are to process. + new_size = int(self.max_size - self._current_size) + self.logger.warning( + "Current size is %d (max %d), so truncating data length from %d to %d", + self._current_size, + self.max_size, + data_len, + new_size, + ) + data_len = new_size + + l = 0 + try: + l = self._internal_write(data, data_len) + finally: + self._current_size += l + + return l + + def _internal_write(self, data: bytes, length: int) -> int: + state = self.state + strict_parsing = self.strict_parsing + found_sep = self._found_sep + + i = 0 + while i < length: + ch = data[i] + + # Depending on our state... + if state == QuerystringState.BEFORE_FIELD: + # If the 'found_sep' flag is set, we've already encountered + # and skipped a single separator. If so, we check our strict + # parsing flag and decide what to do. Otherwise, we haven't + # yet reached a separator, and thus, if we do, we need to skip + # it as it will be the boundary between fields that's supposed + # to be there. + if ch == AMPERSAND or ch == SEMICOLON: + if found_sep: + # If we're parsing strictly, we disallow blank chunks. + if strict_parsing: + e = QuerystringParseError("Skipping duplicate ampersand/semicolon at %d" % i) + e.offset = i + raise e + else: + self.logger.debug("Skipping duplicate ampersand/semicolon at %d", i) + else: + # This case is when we're skipping the (first) + # separator between fields, so we just set our flag + # and continue on. + found_sep = True + else: + # Emit a field-start event, and go to that state. Also, + # reset the "found_sep" flag, for the next time we get to + # this state. + self.callback("field_start") + i -= 1 + state = QuerystringState.FIELD_NAME + found_sep = False + + elif state == QuerystringState.FIELD_NAME: + # Try and find a separator - we ensure that, if we do, we only + # look for the equal sign before it. + sep_pos = data.find(b"&", i) + if sep_pos == -1: + sep_pos = data.find(b";", i) + + # See if we can find an equals sign in the remaining data. If + # so, we can immediately emit the field name and jump to the + # data state. + if sep_pos != -1: + equals_pos = data.find(b"=", i, sep_pos) + else: + equals_pos = data.find(b"=", i) + + if equals_pos != -1: + # Emit this name. + self.callback("field_name", data, i, equals_pos) + + # Jump i to this position. Note that it will then have 1 + # added to it below, which means the next iteration of this + # loop will inspect the character after the equals sign. + i = equals_pos + state = QuerystringState.FIELD_DATA + else: + # No equals sign found. + if not strict_parsing: + # See also comments in the QuerystringState.FIELD_DATA case below. + # If we found the separator, we emit the name and just + # end - there's no data callback at all (not even with + # a blank value). + if sep_pos != -1: + self.callback("field_name", data, i, sep_pos) + self.callback("field_end") + + i = sep_pos - 1 + state = QuerystringState.BEFORE_FIELD + else: + # Otherwise, no separator in this block, so the + # rest of this chunk must be a name. + self.callback("field_name", data, i, length) + i = length + + else: + # We're parsing strictly. If we find a separator, + # this is an error - we require an equals sign. + if sep_pos != -1: + e = QuerystringParseError( + "When strict_parsing is True, we require an " + "equals sign in all field chunks. Did not " + "find one in the chunk that starts at %d" % (i,) + ) + e.offset = i + raise e + + # No separator in the rest of this chunk, so it's just + # a field name. + self.callback("field_name", data, i, length) + i = length + + elif state == QuerystringState.FIELD_DATA: + # Try finding either an ampersand or a semicolon after this + # position. + sep_pos = data.find(b"&", i) + if sep_pos == -1: + sep_pos = data.find(b";", i) + + # If we found it, callback this bit as data and then go back + # to expecting to find a field. + if sep_pos != -1: + self.callback("field_data", data, i, sep_pos) + self.callback("field_end") + + # Note that we go to the separator, which brings us to the + # "before field" state. This allows us to properly emit + # "field_start" events only when we actually have data for + # a field of some sort. + i = sep_pos - 1 + state = QuerystringState.BEFORE_FIELD + + # Otherwise, emit the rest as data and finish. + else: + self.callback("field_data", data, i, length) + i = length + + else: # pragma: no cover (error case) + msg = "Reached an unknown state %d at %d" % (state, i) + self.logger.warning(msg) + e = QuerystringParseError(msg) + e.offset = i + raise e + + i += 1 + + self.state = state + self._found_sep = found_sep + return len(data) + + def finalize(self) -> None: + """Finalize this parser, which signals to that we are finished parsing, + if we're still in the middle of a field, an on_field_end callback, and + then the on_end callback. + """ + # If we're currently in the middle of a field, we finish it. + if self.state == QuerystringState.FIELD_DATA: + self.callback("field_end") + self.callback("end") + + def __repr__(self) -> str: + return "{}(strict_parsing={!r}, max_size={!r})".format( + self.__class__.__name__, self.strict_parsing, self.max_size + ) + + +class MultipartParser(BaseParser): + """This class is a streaming multipart/form-data parser. + + | Callback Name | Parameters | Description | + |--------------------|-----------------|-------------| + | on_part_begin | None | Called when a new part of the multipart message is encountered. | + | on_part_data | data, start, end| Called when a portion of a part's data is encountered. | + | on_part_end | None | Called when the end of a part is reached. | + | on_header_begin | None | Called when we've found a new header in a part of a multipart message | + | on_header_field | data, start, end| Called each time an additional portion of a header is read (i.e. the part of the header that is before the colon; the "Foo" in "Foo: Bar"). | + | on_header_value | data, start, end| Called when we get data for a header. | + | on_header_end | None | Called when the current header is finished - i.e. we've reached the newline at the end of the header. | + | on_headers_finished| None | Called when all headers are finished, and before the part data starts. | + | on_end | None | Called when the parser is finished parsing all data. | + + Args: + boundary: The multipart boundary. This is required, and must match what is given in the HTTP request - usually in the Content-Type header. + callbacks: A dictionary of callbacks. See the documentation for [`BaseParser`][python_multipart.BaseParser]. + max_size: The maximum size of body to parse. Defaults to infinity - i.e. unbounded. + """ # noqa: E501 + + def __init__( + self, boundary: bytes | str, callbacks: MultipartCallbacks = {}, max_size: float = float("inf") + ) -> None: + # Initialize parser state. + super().__init__() + self.state = MultipartState.START + self.index = self.flags = 0 + + self.callbacks = callbacks + + if not isinstance(max_size, Number) or max_size < 1: + raise ValueError("max_size must be a positive number, not %r" % max_size) + self.max_size = max_size + self._current_size = 0 + + # Setup marks. These are used to track the state of data received. + self.marks: dict[str, int] = {} + + # Save our boundary. + if isinstance(boundary, str): # pragma: no cover + boundary = boundary.encode("latin-1") + self.boundary = b"\r\n--" + boundary + + def write(self, data: bytes) -> int: + """Write some data to the parser, which will perform size verification, + and then parse the data into the appropriate location (e.g. header, + data, etc.), and pass this on to the underlying callback. If an error + is encountered, a MultipartParseError will be raised. The "offset" + attribute on the raised exception will be set to the offset of the byte + in the input chunk that caused the error. + + Args: + data: The data to write to the parser. + + Returns: + The number of bytes written. + """ + # Handle sizing. + data_len = len(data) + if (self._current_size + data_len) > self.max_size: + # We truncate the length of data that we are to process. + new_size = int(self.max_size - self._current_size) + self.logger.warning( + "Current size is %d (max %d), so truncating data length from %d to %d", + self._current_size, + self.max_size, + data_len, + new_size, + ) + data_len = new_size + + l = 0 + try: + l = self._internal_write(data, data_len) + finally: + self._current_size += l + + return l + + def _internal_write(self, data: bytes, length: int) -> int: + # Get values from locals. + boundary = self.boundary + + # Get our state, flags and index. These are persisted between calls to + # this function. + state = self.state + index = self.index + flags = self.flags + + # Our index defaults to 0. + i = 0 + + # Set a mark. + def set_mark(name: str) -> None: + self.marks[name] = i + + # Remove a mark. + def delete_mark(name: str, reset: bool = False) -> None: + self.marks.pop(name, None) + + # Helper function that makes calling a callback with data easier. The + # 'remaining' parameter will callback from the marked value until the + # end of the buffer, and reset the mark, instead of deleting it. This + # is used at the end of the function to call our callbacks with any + # remaining data in this chunk. + def data_callback(name: CallbackName, end_i: int, remaining: bool = False) -> None: + marked_index = self.marks.get(name) + if marked_index is None: + return + + # Otherwise, we call it from the mark to the current byte we're + # processing. + if end_i <= marked_index: + # There is no additional data to send. + pass + elif marked_index >= 0: + # We are emitting data from the local buffer. + self.callback(name, data, marked_index, end_i) + else: + # Some of the data comes from a partial boundary match. + # and requires look-behind. + # We need to use self.flags (and not flags) because we care about + # the state when we entered the loop. + lookbehind_len = -marked_index + if lookbehind_len <= len(boundary): + self.callback(name, boundary, 0, lookbehind_len) + elif self.flags & FLAG_PART_BOUNDARY: + lookback = boundary + b"\r\n" + self.callback(name, lookback, 0, lookbehind_len) + elif self.flags & FLAG_LAST_BOUNDARY: + lookback = boundary + b"--\r\n" + self.callback(name, lookback, 0, lookbehind_len) + else: # pragma: no cover (error case) + self.logger.warning("Look-back buffer error") + + if end_i > 0: + self.callback(name, data, 0, end_i) + # If we're getting remaining data, we have got all the data we + # can be certain is not a boundary, leaving only a partial boundary match. + if remaining: + self.marks[name] = end_i - length + else: + self.marks.pop(name, None) + + # For each byte... + while i < length: + c = data[i] + + if state == MultipartState.START: + # Skip leading newlines + if c == CR or c == LF: + i += 1 + continue + + # index is used as in index into our boundary. Set to 0. + index = 0 + + # Move to the next state, but decrement i so that we re-process + # this character. + state = MultipartState.START_BOUNDARY + i -= 1 + + elif state == MultipartState.START_BOUNDARY: + # Check to ensure that the last 2 characters in our boundary + # are CRLF. + if index == len(boundary) - 2: + if c == HYPHEN: + # Potential empty message. + state = MultipartState.END_BOUNDARY + elif c != CR: + # Error! + msg = "Did not find CR at end of boundary (%d)" % (i,) + self.logger.warning(msg) + e = MultipartParseError(msg) + e.offset = i + raise e + + index += 1 + + elif index == len(boundary) - 2 + 1: + if c != LF: + msg = "Did not find LF at end of boundary (%d)" % (i,) + self.logger.warning(msg) + e = MultipartParseError(msg) + e.offset = i + raise e + + # The index is now used for indexing into our boundary. + index = 0 + + # Callback for the start of a part. + self.callback("part_begin") + + # Move to the next character and state. + state = MultipartState.HEADER_FIELD_START + + else: + # Check to ensure our boundary matches + if c != boundary[index + 2]: + msg = "Expected boundary character %r, got %r at index %d" % (boundary[index + 2], c, index + 2) + self.logger.warning(msg) + e = MultipartParseError(msg) + e.offset = i + raise e + + # Increment index into boundary and continue. + index += 1 + + elif state == MultipartState.HEADER_FIELD_START: + # Mark the start of a header field here, reset the index, and + # continue parsing our header field. + index = 0 + + # Set a mark of our header field. + set_mark("header_field") + + # Notify that we're starting a header if the next character is + # not a CR; a CR at the beginning of the header will cause us + # to stop parsing headers in the MultipartState.HEADER_FIELD state, + # below. + if c != CR: + self.callback("header_begin") + + # Move to parsing header fields. + state = MultipartState.HEADER_FIELD + i -= 1 + + elif state == MultipartState.HEADER_FIELD: + # If we've reached a CR at the beginning of a header, it means + # that we've reached the second of 2 newlines, and so there are + # no more headers to parse. + if c == CR and index == 0: + delete_mark("header_field") + state = MultipartState.HEADERS_ALMOST_DONE + i += 1 + continue + + # Increment our index in the header. + index += 1 + + # If we've reached a colon, we're done with this header. + if c == COLON: + # A 0-length header is an error. + if index == 1: + msg = "Found 0-length header at %d" % (i,) + self.logger.warning(msg) + e = MultipartParseError(msg) + e.offset = i + raise e + + # Call our callback with the header field. + data_callback("header_field", i) + + # Move to parsing the header value. + state = MultipartState.HEADER_VALUE_START + + elif c not in TOKEN_CHARS_SET: + msg = "Found invalid character %r in header at %d" % (c, i) + self.logger.warning(msg) + e = MultipartParseError(msg) + e.offset = i + raise e + + elif state == MultipartState.HEADER_VALUE_START: + # Skip leading spaces. + if c == SPACE: + i += 1 + continue + + # Mark the start of the header value. + set_mark("header_value") + + # Move to the header-value state, reprocessing this character. + state = MultipartState.HEADER_VALUE + i -= 1 + + elif state == MultipartState.HEADER_VALUE: + # If we've got a CR, we're nearly done our headers. Otherwise, + # we do nothing and just move past this character. + if c == CR: + data_callback("header_value", i) + self.callback("header_end") + state = MultipartState.HEADER_VALUE_ALMOST_DONE + + elif state == MultipartState.HEADER_VALUE_ALMOST_DONE: + # The last character should be a LF. If not, it's an error. + if c != LF: + msg = "Did not find LF character at end of header " "(found %r)" % (c,) + self.logger.warning(msg) + e = MultipartParseError(msg) + e.offset = i + raise e + + # Move back to the start of another header. Note that if that + # state detects ANOTHER newline, it'll trigger the end of our + # headers. + state = MultipartState.HEADER_FIELD_START + + elif state == MultipartState.HEADERS_ALMOST_DONE: + # We're almost done our headers. This is reached when we parse + # a CR at the beginning of a header, so our next character + # should be a LF, or it's an error. + if c != LF: + msg = f"Did not find LF at end of headers (found {c!r})" + self.logger.warning(msg) + e = MultipartParseError(msg) + e.offset = i + raise e + + self.callback("headers_finished") + state = MultipartState.PART_DATA_START + + elif state == MultipartState.PART_DATA_START: + # Mark the start of our part data. + set_mark("part_data") + + # Start processing part data, including this character. + state = MultipartState.PART_DATA + i -= 1 + + elif state == MultipartState.PART_DATA: + # We're processing our part data right now. During this, we + # need to efficiently search for our boundary, since any data + # on any number of lines can be a part of the current data. + + # Save the current value of our index. We use this in case we + # find part of a boundary, but it doesn't match fully. + prev_index = index + + # Set up variables. + boundary_length = len(boundary) + data_length = length + + # If our index is 0, we're starting a new part, so start our + # search. + if index == 0: + # The most common case is likely to be that the whole + # boundary is present in the buffer. + # Calling `find` is much faster than iterating here. + i0 = data.find(boundary, i, data_length) + if i0 >= 0: + # We matched the whole boundary string. + index = boundary_length - 1 + i = i0 + boundary_length - 1 + else: + # No match found for whole string. + # There may be a partial boundary at the end of the + # data, which the find will not match. + # Since the length should to be searched is limited to + # the boundary length, just perform a naive search. + i = max(i, data_length - boundary_length) + + # Search forward until we either hit the end of our buffer, + # or reach a potential start of the boundary. + while i < data_length - 1 and data[i] != boundary[0]: + i += 1 + + c = data[i] + + # Now, we have a couple of cases here. If our index is before + # the end of the boundary... + if index < boundary_length: + # If the character matches... + if boundary[index] == c: + # The current character matches, so continue! + index += 1 + else: + index = 0 + + # Our index is equal to the length of our boundary! + elif index == boundary_length: + # First we increment it. + index += 1 + + # Now, if we've reached a newline, we need to set this as + # the potential end of our boundary. + if c == CR: + flags |= FLAG_PART_BOUNDARY + + # Otherwise, if this is a hyphen, we might be at the last + # of all boundaries. + elif c == HYPHEN: + flags |= FLAG_LAST_BOUNDARY + + # Otherwise, we reset our index, since this isn't either a + # newline or a hyphen. + else: + index = 0 + + # Our index is right after the part boundary, which should be + # a LF. + elif index == boundary_length + 1: + # If we're at a part boundary (i.e. we've seen a CR + # character already)... + if flags & FLAG_PART_BOUNDARY: + # We need a LF character next. + if c == LF: + # Unset the part boundary flag. + flags &= ~FLAG_PART_BOUNDARY + + # We have identified a boundary, callback for any data before it. + data_callback("part_data", i - index) + # Callback indicating that we've reached the end of + # a part, and are starting a new one. + self.callback("part_end") + self.callback("part_begin") + + # Move to parsing new headers. + index = 0 + state = MultipartState.HEADER_FIELD_START + i += 1 + continue + + # We didn't find an LF character, so no match. Reset + # our index and clear our flag. + index = 0 + flags &= ~FLAG_PART_BOUNDARY + + # Otherwise, if we're at the last boundary (i.e. we've + # seen a hyphen already)... + elif flags & FLAG_LAST_BOUNDARY: + # We need a second hyphen here. + if c == HYPHEN: + # We have identified a boundary, callback for any data before it. + data_callback("part_data", i - index) + # Callback to end the current part, and then the + # message. + self.callback("part_end") + self.callback("end") + state = MultipartState.END + else: + # No match, so reset index. + index = 0 + + # Otherwise, our index is 0. If the previous index is not, it + # means we reset something, and we need to take the data we + # thought was part of our boundary and send it along as actual + # data. + if index == 0 and prev_index > 0: + # Overwrite our previous index. + prev_index = 0 + + # Re-consider the current character, since this could be + # the start of the boundary itself. + i -= 1 + + elif state == MultipartState.END_BOUNDARY: + if index == len(boundary) - 2 + 1: + if c != HYPHEN: + msg = "Did not find - at end of boundary (%d)" % (i,) + self.logger.warning(msg) + e = MultipartParseError(msg) + e.offset = i + raise e + index += 1 + self.callback("end") + state = MultipartState.END + + elif state == MultipartState.END: + # Don't do anything if chunk ends with CRLF. + if c == CR and i + 1 < length and data[i + 1] == LF: + i += 2 + continue + # Skip data after the last boundary. + self.logger.warning("Skipping data after last boundary") + i = length + break + + else: # pragma: no cover (error case) + # We got into a strange state somehow! Just stop processing. + msg = "Reached an unknown state %d at %d" % (state, i) + self.logger.warning(msg) + e = MultipartParseError(msg) + e.offset = i + raise e + + # Move to the next byte. + i += 1 + + # We call our callbacks with any remaining data. Note that we pass + # the 'remaining' flag, which sets the mark back to 0 instead of + # deleting it, if it's found. This is because, if the mark is found + # at this point, we assume that there's data for one of these things + # that has been parsed, but not yet emitted. And, as such, it implies + # that we haven't yet reached the end of this 'thing'. So, by setting + # the mark to 0, we cause any data callbacks that take place in future + # calls to this function to start from the beginning of that buffer. + data_callback("header_field", length, True) + data_callback("header_value", length, True) + data_callback("part_data", length - index, True) + + # Save values to locals. + self.state = state + self.index = index + self.flags = flags + + # Return our data length to indicate no errors, and that we processed + # all of it. + return length + + def finalize(self) -> None: + """Finalize this parser, which signals to that we are finished parsing. + + Note: It does not currently, but in the future, it will verify that we + are in the final state of the parser (i.e. the end of the multipart + message is well-formed), and, if not, throw an error. + """ + # TODO: verify that we're in the state MultipartState.END, otherwise throw an + # error or otherwise state that we're not finished parsing. + pass + + def __repr__(self) -> str: + return f"{self.__class__.__name__}(boundary={self.boundary!r})" + + +class FormParser: + """This class is the all-in-one form parser. Given all the information + necessary to parse a form, it will instantiate the correct parser, create + the proper :class:`Field` and :class:`File` classes to store the data that + is parsed, and call the two given callbacks with each field and file as + they become available. + + Args: + content_type: The Content-Type of the incoming request. This is used to select the appropriate parser. + on_field: The callback to call when a field has been parsed and is ready for usage. See above for parameters. + on_file: The callback to call when a file has been parsed and is ready for usage. See above for parameters. + on_end: An optional callback to call when all fields and files in a request has been parsed. Can be None. + boundary: If the request is a multipart/form-data request, this should be the boundary of the request, as given + in the Content-Type header, as a bytestring. + file_name: If the request is of type application/octet-stream, then the body of the request will not contain any + information about the uploaded file. In such cases, you can provide the file name of the uploaded file + manually. + FileClass: The class to use for uploaded files. Defaults to :class:`File`, but you can provide your own class + if you wish to customize behaviour. The class will be instantiated as FileClass(file_name, field_name), and + it must provide the following functions:: + - file_instance.write(data) + - file_instance.finalize() + - file_instance.close() + FieldClass: The class to use for uploaded fields. Defaults to :class:`Field`, but you can provide your own + class if you wish to customize behaviour. The class will be instantiated as FieldClass(field_name), and it + must provide the following functions:: + - field_instance.write(data) + - field_instance.finalize() + - field_instance.close() + - field_instance.set_none() + config: Configuration to use for this FormParser. The default values are taken from the DEFAULT_CONFIG value, + and then any keys present in this dictionary will overwrite the default values. + """ + + #: This is the default configuration for our form parser. + #: Note: all file sizes should be in bytes. + DEFAULT_CONFIG: FormParserConfig = { + "MAX_BODY_SIZE": float("inf"), + "MAX_MEMORY_FILE_SIZE": 1 * 1024 * 1024, + "UPLOAD_DIR": None, + "UPLOAD_KEEP_FILENAME": False, + "UPLOAD_KEEP_EXTENSIONS": False, + # Error on invalid Content-Transfer-Encoding? + "UPLOAD_ERROR_ON_BAD_CTE": False, + } + + def __init__( + self, + content_type: str, + on_field: OnFieldCallback | None, + on_file: OnFileCallback | None, + on_end: Callable[[], None] | None = None, + boundary: bytes | str | None = None, + file_name: bytes | None = None, + FileClass: type[FileProtocol] = File, + FieldClass: type[FieldProtocol] = Field, + config: dict[Any, Any] = {}, + ) -> None: + self.logger = logging.getLogger(__name__) + + # Save variables. + self.content_type = content_type + self.boundary = boundary + self.bytes_received = 0 + self.parser = None + + # Save callbacks. + self.on_field = on_field + self.on_file = on_file + self.on_end = on_end + + # Save classes. + self.FileClass = File + self.FieldClass = Field + + # Set configuration options. + self.config: FormParserConfig = self.DEFAULT_CONFIG.copy() + self.config.update(config) # type: ignore[typeddict-item] + + parser: OctetStreamParser | MultipartParser | QuerystringParser | None = None + + # Depending on the Content-Type, we instantiate the correct parser. + if content_type == "application/octet-stream": + file: FileProtocol = None # type: ignore + + def on_start() -> None: + nonlocal file + file = FileClass(file_name, None, config=cast("FileConfig", self.config)) + + def on_data(data: bytes, start: int, end: int) -> None: + nonlocal file + file.write(data[start:end]) + + def _on_end() -> None: + nonlocal file + # Finalize the file itself. + file.finalize() + + # Call our callback. + if on_file: + on_file(file) + + # Call the on-end callback. + if self.on_end is not None: + self.on_end() + + # Instantiate an octet-stream parser + parser = OctetStreamParser( + callbacks={"on_start": on_start, "on_data": on_data, "on_end": _on_end}, + max_size=self.config["MAX_BODY_SIZE"], + ) + + elif content_type == "application/x-www-form-urlencoded" or content_type == "application/x-url-encoded": + name_buffer: list[bytes] = [] + + f: FieldProtocol | None = None + + def on_field_start() -> None: + pass + + def on_field_name(data: bytes, start: int, end: int) -> None: + name_buffer.append(data[start:end]) + + def on_field_data(data: bytes, start: int, end: int) -> None: + nonlocal f + if f is None: + f = FieldClass(b"".join(name_buffer)) + del name_buffer[:] + f.write(data[start:end]) + + def on_field_end() -> None: + nonlocal f + # Finalize and call callback. + if f is None: + # If we get here, it's because there was no field data. + # We create a field, set it to None, and then continue. + f = FieldClass(b"".join(name_buffer)) + del name_buffer[:] + f.set_none() + + f.finalize() + if on_field: + on_field(f) + f = None + + def _on_end() -> None: + if self.on_end is not None: + self.on_end() + + # Instantiate parser. + parser = QuerystringParser( + callbacks={ + "on_field_start": on_field_start, + "on_field_name": on_field_name, + "on_field_data": on_field_data, + "on_field_end": on_field_end, + "on_end": _on_end, + }, + max_size=self.config["MAX_BODY_SIZE"], + ) + + elif content_type == "multipart/form-data": + if boundary is None: + self.logger.error("No boundary given") + raise FormParserError("No boundary given") + + header_name: list[bytes] = [] + header_value: list[bytes] = [] + headers: dict[bytes, bytes] = {} + + f_multi: FileProtocol | FieldProtocol | None = None + writer = None + is_file = False + + def on_part_begin() -> None: + # Reset headers in case this isn't the first part. + nonlocal headers + headers = {} + + def on_part_data(data: bytes, start: int, end: int) -> None: + nonlocal writer + assert writer is not None + writer.write(data[start:end]) + # TODO: check for error here. + + def on_part_end() -> None: + nonlocal f_multi, is_file + assert f_multi is not None + f_multi.finalize() + if is_file: + if on_file: + on_file(f_multi) + else: + if on_field: + on_field(cast("FieldProtocol", f_multi)) + + def on_header_field(data: bytes, start: int, end: int) -> None: + header_name.append(data[start:end]) + + def on_header_value(data: bytes, start: int, end: int) -> None: + header_value.append(data[start:end]) + + def on_header_end() -> None: + headers[b"".join(header_name)] = b"".join(header_value) + del header_name[:] + del header_value[:] + + def on_headers_finished() -> None: + nonlocal is_file, f_multi, writer + # Reset the 'is file' flag. + is_file = False + + # Parse the content-disposition header. + # TODO: handle mixed case + content_disp = headers.get(b"Content-Disposition") + disp, options = parse_options_header(content_disp) + + # Get the field and filename. + field_name = options.get(b"name") + file_name = options.get(b"filename") + # TODO: check for errors + + # Create the proper class. + if file_name is None: + f_multi = FieldClass(field_name) + else: + f_multi = FileClass(file_name, field_name, config=cast("FileConfig", self.config)) + is_file = True + + # Parse the given Content-Transfer-Encoding to determine what + # we need to do with the incoming data. + # TODO: check that we properly handle 8bit / 7bit encoding. + transfer_encoding = headers.get(b"Content-Transfer-Encoding", b"7bit") + + if transfer_encoding in (b"binary", b"8bit", b"7bit"): + writer = f_multi + + elif transfer_encoding == b"base64": + writer = Base64Decoder(f_multi) + + elif transfer_encoding == b"quoted-printable": + writer = QuotedPrintableDecoder(f_multi) + + else: + self.logger.warning("Unknown Content-Transfer-Encoding: %r", transfer_encoding) + if self.config["UPLOAD_ERROR_ON_BAD_CTE"]: + raise FormParserError('Unknown Content-Transfer-Encoding "{!r}"'.format(transfer_encoding)) + else: + # If we aren't erroring, then we just treat this as an + # unencoded Content-Transfer-Encoding. + writer = f_multi + + def _on_end() -> None: + nonlocal writer + if writer is not None: + writer.finalize() + if self.on_end is not None: + self.on_end() + + # Instantiate a multipart parser. + parser = MultipartParser( + boundary, + callbacks={ + "on_part_begin": on_part_begin, + "on_part_data": on_part_data, + "on_part_end": on_part_end, + "on_header_field": on_header_field, + "on_header_value": on_header_value, + "on_header_end": on_header_end, + "on_headers_finished": on_headers_finished, + "on_end": _on_end, + }, + max_size=self.config["MAX_BODY_SIZE"], + ) + + else: + self.logger.warning("Unknown Content-Type: %r", content_type) + raise FormParserError("Unknown Content-Type: {}".format(content_type)) + + self.parser = parser + + def write(self, data: bytes) -> int: + """Write some data. The parser will forward this to the appropriate + underlying parser. + + Args: + data: The data to write. + + Returns: + The number of bytes processed. + """ + self.bytes_received += len(data) + # TODO: check the parser's return value for errors? + assert self.parser is not None + return self.parser.write(data) + + def finalize(self) -> None: + """Finalize the parser.""" + if self.parser is not None and hasattr(self.parser, "finalize"): + self.parser.finalize() + + def close(self) -> None: + """Close the parser.""" + if self.parser is not None and hasattr(self.parser, "close"): + self.parser.close() + + def __repr__(self) -> str: + return "{}(content_type={!r}, parser={!r})".format(self.__class__.__name__, self.content_type, self.parser) + + +def create_form_parser( + headers: dict[str, bytes], + on_field: OnFieldCallback | None, + on_file: OnFileCallback | None, + trust_x_headers: bool = False, + config: dict[Any, Any] = {}, +) -> FormParser: + """This function is a helper function to aid in creating a FormParser + instances. Given a dictionary-like headers object, it will determine + the correct information needed, instantiate a FormParser with the + appropriate values and given callbacks, and then return the corresponding + parser. + + Args: + headers: A dictionary-like object of HTTP headers. The only required header is Content-Type. + on_field: Callback to call with each parsed field. + on_file: Callback to call with each parsed file. + trust_x_headers: Whether or not to trust information received from certain X-Headers - for example, the file + name from X-File-Name. + config: Configuration variables to pass to the FormParser. + """ + content_type: str | bytes | None = headers.get("Content-Type") + if content_type is None: + logging.getLogger(__name__).warning("No Content-Type header given") + raise ValueError("No Content-Type header given!") + + # Boundaries are optional (the FormParser will raise if one is needed + # but not given). + content_type, params = parse_options_header(content_type) + boundary = params.get(b"boundary") + + # We need content_type to be a string, not a bytes object. + content_type = content_type.decode("latin-1") + + # File names are optional. + file_name = headers.get("X-File-Name") + + # Instantiate a form parser. + form_parser = FormParser(content_type, on_field, on_file, boundary=boundary, file_name=file_name, config=config) + + # Return our parser. + return form_parser + + +def parse_form( + headers: dict[str, bytes], + input_stream: SupportsRead, + on_field: OnFieldCallback | None, + on_file: OnFileCallback | None, + chunk_size: int = 1048576, +) -> None: + """This function is useful if you just want to parse a request body, + without too much work. Pass it a dictionary-like object of the request's + headers, and a file-like object for the input stream, along with two + callbacks that will get called whenever a field or file is parsed. + + Args: + headers: A dictionary-like object of HTTP headers. The only required header is Content-Type. + input_stream: A file-like object that represents the request body. The read() method must return bytestrings. + on_field: Callback to call with each parsed field. + on_file: Callback to call with each parsed file. + chunk_size: The maximum size to read from the input stream and write to the parser at one time. + Defaults to 1 MiB. + """ + # Create our form parser. + parser = create_form_parser(headers, on_field, on_file) + + # Read chunks of 1MiB and write to the parser, but never read more than + # the given Content-Length, if any. + content_length: int | float | bytes | None = headers.get("Content-Length") + if content_length is not None: + content_length = int(content_length) + else: + content_length = float("inf") + bytes_read = 0 + + while True: + # Read only up to the Content-Length given. + max_readable = int(min(content_length - bytes_read, chunk_size)) + buff = input_stream.read(max_readable) + + # Write to the parser and update our length. + parser.write(buff) + bytes_read += len(buff) + + # If we get a buffer that's smaller than the size requested, or if we + # have read up to our content length, we're done. + if len(buff) != max_readable or bytes_read == content_length: + break + + # Tell our parser that we're done writing data. + parser.finalize() diff --git a/venv/lib/python3.11/site-packages/python_multipart/py.typed b/venv/lib/python3.11/site-packages/python_multipart/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/METADATA b/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/METADATA new file mode 100644 index 0000000..34ba67f --- /dev/null +++ b/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/METADATA @@ -0,0 +1,371 @@ +Metadata-Version: 2.4 +Name: pyvista +Version: 0.46.4 +Summary: Easier Pythonic interface to VTK +Author-email: PyVista Developers +License-Expression: MIT +Project-URL: Bug Reports, https://github.com/pyvista/pyvista/issues +Project-URL: Documentation, https://docs.pyvista.org/ +Project-URL: Homepage, https://github.com/pyvista/pyvista +Project-URL: Source Code, https://github.com/pyvista/pyvista +Keywords: mesh,numpy,plotting,vtk +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Science/Research +Classifier: Operating System :: MacOS +Classifier: Operating System :: Microsoft :: Windows +Classifier: Operating System :: POSIX +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Topic :: Scientific/Engineering :: Information Analysis +Requires-Python: >=3.9 +Description-Content-Type: text/x-rst +License-File: LICENSE +License-File: AUTHORS.rst +Requires-Dist: matplotlib>=3.0.1 +Requires-Dist: numpy>=1.21.0 +Requires-Dist: pillow +Requires-Dist: pooch +Requires-Dist: scooby>=0.5.1 +Requires-Dist: typing-extensions>=4.10 +Requires-Dist: vtk!=9.4.0 +Requires-Dist: vtk!=9.4.1 +Requires-Dist: vtk<9.6.0 +Provides-Extra: all +Requires-Dist: pyvista[colormaps,io,jupyter]; extra == "all" +Provides-Extra: colormaps +Requires-Dist: cmcrameri; extra == "colormaps" +Requires-Dist: cmocean; extra == "colormaps" +Requires-Dist: colorcet; extra == "colormaps" +Provides-Extra: io +Requires-Dist: imageio; extra == "io" +Requires-Dist: meshio>=5.2; extra == "io" +Provides-Extra: jupyter +Requires-Dist: ipywidgets; extra == "jupyter" +Requires-Dist: jupyter-server-proxy; extra == "jupyter" +Requires-Dist: nest_asyncio; extra == "jupyter" +Requires-Dist: trame-client>=2.12.7; extra == "jupyter" +Requires-Dist: trame-server>=2.11.7; extra == "jupyter" +Requires-Dist: trame-vtk>=2.5.8; extra == "jupyter" +Requires-Dist: trame-vuetify>=2.3.1; extra == "jupyter" +Requires-Dist: trame>=2.5.2; extra == "jupyter" +Dynamic: license-file + +####### +PyVista +####### + + 3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK) + +.. image:: https://github.com/pyvista/pyvista/raw/main/doc/source/_static/pyvista_banner_small.png + :target: https://docs.pyvista.org/examples/index.html + :alt: pyvista + +PyVista is: + +* *Pythonic VTK*: a high-level API to the `Visualization Toolkit`_ (VTK) +* mesh data structures and filtering methods for spatial datasets +* 3D plotting made simple and built for large/complex data geometries + +.. _Visualization Toolkit: https://vtk.org + +.. image:: https://github.com/pyvista/pyvista/raw/main/assets/pyvista_ipython_demo.gif + :alt: pyvista ipython demo + +PyVista is a helper module for the Visualization Toolkit (VTK) that wraps the VTK library +through NumPy and direct array access through a variety of methods and classes. +This package provides a Pythonic, well-documented interface exposing +VTK's powerful visualization backend to facilitate rapid prototyping, analysis, +and visual integration of spatially referenced datasets. + +This module can be used for scientific plotting for presentations and research +papers as well as a supporting module for other mesh 3D rendering dependent +Python modules; see Connections for a list of projects that leverage +PyVista. + +PyVista is a NumFOCUS affiliated project + +.. image:: https://raw.githubusercontent.com/numfocus/templates/master/images/numfocus-logo.png + :target: https://numfocus.org/sponsored-projects/affiliated-projects + :alt: NumFOCUS affiliated projects + :height: 60px + +Status badges +============= + +.. |zenodo| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.8415866.svg + :target: https://zenodo.org/records/8415866 + +.. |joss| image:: http://joss.theoj.org/papers/10.21105/joss.01450/status.svg + :target: https://doi.org/10.21105/joss.01450 + +.. |pypi| image:: https://img.shields.io/pypi/v/pyvista.svg?logo=python&logoColor=white + :target: https://pypi.org/project/pyvista/ + +.. |conda| image:: https://img.shields.io/conda/vn/conda-forge/pyvista.svg?logo=conda-forge&logoColor=white + :target: https://anaconda.org/conda-forge/pyvista + +.. |GH-CI| image:: https://github.com/pyvista/pyvista/actions/workflows/testing-and-deployment.yml/badge.svg + :target: https://github.com/pyvista/pyvista/actions/workflows/testing-and-deployment.yml + +.. |codecov| image:: https://codecov.io/gh/pyvista/pyvista/branch/main/graph/badge.svg + :target: https://app.codecov.io/gh/pyvista/pyvista + +.. |codacy| image:: https://app.codacy.com/project/badge/Grade/779ac6aed37548839384acfc0c1aab44 + :target: https://app.codacy.com/gh/pyvista/pyvista/dashboard + +.. |MIT| image:: https://img.shields.io/badge/License-MIT-yellow.svg + :target: https://opensource.org/license/mit/ + +.. |slack| image:: https://img.shields.io/badge/Slack-pyvista-green.svg?logo=slack + :target: https://communityinviter.com/apps/pyvista/pyvista + +.. |PyPIact| image:: https://img.shields.io/pypi/dm/pyvista.svg?label=PyPI%20downloads + :target: https://pypi.org/project/pyvista/ + +.. |condaact| image:: https://img.shields.io/conda/dn/conda-forge/pyvista.svg?label=Conda%20downloads + :target: https://anaconda.org/conda-forge/pyvista + +.. |discuss| image:: https://img.shields.io/badge/GitHub-Discussions-green?logo=github + :target: https://github.com/pyvista/pyvista/discussions + +.. |prettier| image:: https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat + :target: https://github.com/prettier/prettier + :alt: prettier + +.. |python| image:: https://img.shields.io/badge/python-3.9+-blue.svg + :target: https://www.python.org/downloads/ + +.. |NumFOCUS Affiliated| image:: https://img.shields.io/badge/affiliated-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A + :target: https://numfocus.org/sponsored-projects/affiliated-projects + +.. |pre-commit.ci status| image:: https://results.pre-commit.ci/badge/github/pyvista/pyvista/main.svg + :target: https://results.pre-commit.ci/latest/github/pyvista/pyvista/main + +.. |Ruff| image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json + :target: https://github.com/astral-sh/ruff + :alt: Ruff + +.. |Awesome Scientific Computing| image:: https://awesome.re/mentioned-badge.svg + :target: https://github.com/nschloe/awesome-scientific-computing + +.. |Packaging status| image:: https://repology.org/badge/tiny-repos/python:pyvista.svg + :target: https://repology.org/project/python:pyvista/versions + +.. |Good first issue| image:: https://img.shields.io/github/issues/pyvista/pyvista/good%20first%20issue + :target: https://github.com/pyvista/pyvista/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22 + +.. |GitHub Repo stars| image:: https://img.shields.io/github/stars/pyvista/pyvista + :target: https://github.com/pyvista/pyvista/stargazers + +.. |pyversions| image:: https://img.shields.io/pypi/pyversions/pyvista.svg?color=orange&logo=python&label=python&logoColor=white + :target: https://pypi.org/project/pyvista + :alt: Python versions + ++----------------------+------------------------------------------------+ +| Deployment | |pypi| |pyversions| |conda| |Packaging status| | ++----------------------+------------------------------------------------+ +| Build Status | |GH-CI| |python| |pre-commit.ci status| | ++----------------------+------------------------------------------------+ +| Metrics | |codacy| |codecov| | ++----------------------+------------------------------------------------+ +| Activity | |PyPIact| |condaact| | ++----------------------+------------------------------------------------+ +| Citation | |joss| |zenodo| | ++----------------------+------------------------------------------------+ +| License | |MIT| | ++----------------------+------------------------------------------------+ +| Community | |slack| |discuss| |Good first issue| | +| | |GitHub Repo stars| | ++----------------------+------------------------------------------------+ +| Formatter | |prettier| | ++----------------------+------------------------------------------------+ +| Linter | |Ruff| | ++----------------------+------------------------------------------------+ +| Affiliated | |NumFOCUS Affiliated| | ++----------------------+------------------------------------------------+ +| Mentioned | |Awesome Scientific Computing| | ++----------------------+------------------------------------------------+ + + +Highlights +========== + +.. |binder| image:: https://static.mybinder.org/badge_logo.svg + :target: https://mybinder.org/v2/gh/pyvista/pyvista-examples/master + :alt: Launch on Binder + +Head over to the `Quick Examples`_ page in the docs to explore our gallery of +examples showcasing what PyVista can do. Want to test-drive PyVista? +All of the examples from the gallery are live on MyBinder for you to test +drive without installing anything locally: |binder| + +.. _Quick Examples: http://docs.pyvista.org/examples/index.html + + +Overview of Features +-------------------- + +* Extensive gallery of examples (see `Quick Examples`_) +* Interactive plotting in Jupyter Notebooks with server-side and client-side + rendering with `trame`_. +* Filtering/plotting tools built for interactivity (see `Widgets`_) +* Direct access to mesh analysis and transformation routines (see Filters_) +* Intuitive plotting routines with ``matplotlib`` similar syntax (see Plotting_) +* Import meshes from many common formats (use ``pyvista.read()``). Support for all formats handled by `meshio`_ is built-in. +* Export meshes as VTK, STL, OBJ, or PLY (``mesh.save()``) file types or any formats supported by meshio_ (``pyvista.save_meshio()``) + +.. _trame: https://github.com/Kitware/trame +.. _Widgets: https://docs.pyvista.org/api/plotting/index.html#widget-api +.. _Filters: https://docs.pyvista.org/api/core/filters.html +.. _Plotting: https://docs.pyvista.org/api/plotting/index.html +.. _meshio: https://github.com/nschloe/meshio + + +Documentation +============= + +Refer to the `documentation `_ for detailed +installation and usage details. + +For general questions about the project, its applications, or about software +usage, please create a discussion in `pyvista/discussions`_ +where the community can collectively address your questions. You are also +welcome to join us on Slack_. + +.. _pyvista/discussions: https://github.com/pyvista/pyvista/discussions +.. _Slack: https://communityinviter.com/apps/pyvista/pyvista + + +Installation +============ + +PyVista can be installed from `PyPI `_ +using ``pip`` on Python >= 3.9:: + + pip install pyvista + +You can also visit `PyPI `_, +`Anaconda `_, or +`GitHub `_ to download the source. + +See the `Installation `_ +for more details regarding optional dependencies or if the installation through pip doesn't work out. + + +Connections +=========== + +PyVista is a powerful tool that researchers can harness to create compelling, +integrated visualizations of large datasets in an intuitive, Pythonic manner. + +Learn more about how PyVista is used across science and engineering disciplines +by a diverse community of users on our `Connections page`_. + +.. _Connections page: https://docs.pyvista.org/getting-started/connections.html + + +Authors +======= + +.. |contrib.rocks| image:: https://contrib.rocks/image?repo=pyvista/pyvista + :target: https://github.com/pyvista/pyvista/graphs/contributors + :alt: contrib.rocks + +Please take a look at the `contributors page`_ and the active `list of authors`_ +to learn more about the developers of PyVista. + +|contrib.rocks| + +Made with `contrib rocks`_. + +.. _contributors page: https://github.com/pyvista/pyvista/graphs/contributors/ +.. _list of authors: https://docs.pyvista.org/getting-started/authors.html#authors +.. _contrib rocks: https://contrib.rocks + + +Contributing +============ + +.. |Contributor Covenant| image:: https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg + :target: CODE_OF_CONDUCT.md + +.. |codetriage| image:: https://www.codetriage.com/pyvista/pyvista/badges/users.svg + :target: https://www.codetriage.com/pyvista/pyvista + :alt: Code Triage + +.. |Open in GitHub Codespaces| image:: https://github.com/codespaces/badge.svg + :target: https://codespaces.new/pyvista/pyvista + :alt: Open in GitHub Codespaces + +|Contributor Covenant| +|codetriage| +|Open in GitHub Codespaces| + +We absolutely welcome contributions and we hope that our `Contributing Guide`_ +will facilitate your ability to make PyVista better. PyVista is mostly +maintained on a volunteer basis and thus we need to foster a community that can +support user questions and develop new features to make this software a useful +tool for all users while encouraging every member of the community to share +their ideas. To learn more about contributing to PyVista, please see the +`Contributing Guide`_ and our `Code of Conduct`_. + +.. _Contributing Guide: https://github.com/pyvista/pyvista/blob/main/CONTRIBUTING.rst +.. _Code of Conduct: https://github.com/pyvista/pyvista/blob/main/CODE_OF_CONDUCT.md + +Star History +============ + +.. image:: https://api.star-history.com/svg?repos=pyvista/pyvista&type=Date + :alt: Star History Chart + :target: https://star-history.com/#pyvista/pyvista&Date + +Citing PyVista +============== + +There is a `paper about PyVista `_. + +If you are using PyVista in your scientific research, please help our scientific +visibility by citing our work. + + + Sullivan and Kaszynski, (2019). PyVista: 3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK). Journal of Open Source Software, 4(37), 1450, https://doi.org/10.21105/joss.01450 + + +BibTex: + +.. code:: latex + + @article{sullivan2019pyvista, + doi = {10.21105/joss.01450}, + url = {https://doi.org/10.21105/joss.01450}, + year = {2019}, + month = {May}, + publisher = {The Open Journal}, + volume = {4}, + number = {37}, + pages = {1450}, + author = {Bane Sullivan and Alexander Kaszynski}, + title = {{PyVista}: {3D} plotting and mesh analysis through a streamlined interface for the {Visualization Toolkit} ({VTK})}, + journal = {Journal of Open Source Software} + } + +Professional Support +==================== + +While PyVista is an Open Source project with a big community, you might be looking for professional support. +This section aims to list companies with VTK/PyVista expertise who can help you with your software project. + ++---------------+-----------------------------------------+ +| Company Name | Kitware Inc. | ++---------------+-----------------------------------------+ +| Description | Kitware is dedicated to build solutions | +| | for our customers based on our | +| | well-established open source platforms. | ++---------------+-----------------------------------------+ +| Expertise | CMake, VTK, PyVista, ParaView, Trame | ++---------------+-----------------------------------------+ +| Contact | https://www.kitware.com/contact/ | ++---------------+-----------------------------------------+ diff --git a/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/RECORD b/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/RECORD new file mode 100644 index 0000000..9ad5e6e --- /dev/null +++ b/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/RECORD @@ -0,0 +1,327 @@ +pyvista-0.46.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +pyvista-0.46.4.dist-info/METADATA,sha256=1wrvNh5vTi1KXdN8uFkZCb-WYjGmyqQBY6r8Du1Fh5I,15865 +pyvista-0.46.4.dist-info/RECORD,, +pyvista-0.46.4.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pyvista-0.46.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91 +pyvista-0.46.4.dist-info/licenses/AUTHORS.rst,sha256=_zx5eP3m3AekMha3Laja_gWS50iASr4tcxF75uSgI9Y,1979 +pyvista-0.46.4.dist-info/licenses/LICENSE,sha256=ga67B8SQ8ecuJO2mvHE95VkUEiXCQHIoUT0l2AtYd5g,1088 +pyvista-0.46.4.dist-info/top_level.txt,sha256=FOU-jx15mXEebaa-NHzrs0iYzSolooxtzDR3UeCHVDI,8 +pyvista/__init__.py,sha256=hJBmA5NMBGMIP3Gv4cvcb0I_zZVnjEviOK8gx_Vh-aY,4325 +pyvista/__pycache__/__init__.cpython-311.pyc,, +pyvista/__pycache__/_deprecate_positional_args.cpython-311.pyc,, +pyvista/__pycache__/_plot.cpython-311.pyc,, +pyvista/__pycache__/_version.cpython-311.pyc,, +pyvista/__pycache__/conftest.cpython-311.pyc,, +pyvista/__pycache__/errors.cpython-311.pyc,, +pyvista/__pycache__/report.cpython-311.pyc,, +pyvista/_deprecate_positional_args.py,sha256=ss023nzf1MdLVBkUp_bnBF2Kck4C7T4cEtrGSxhnTeU,10060 +pyvista/_plot.py,sha256=Oe2P8_Als_24Grl9VhmTQR007PR2M6Nisaf0O9H4gIw,10591 +pyvista/_version.py,sha256=InFOK86Q7_c0mPi6Yp58CUbCd23DCa1V0cjezSbPtdQ,437 +pyvista/conftest.py,sha256=fhZE750IiLRn2TE-Z851u-ubguKZeB1OLPW-rH_Odqg,561 +pyvista/core/__init__.py,sha256=J4l3fpmJgxl1D3MZDmBBdWYUL71cw3HOnvLwVPtDMaQ,2349 +pyvista/core/__pycache__/__init__.cpython-311.pyc,, +pyvista/core/__pycache__/_vtk_core.cpython-311.pyc,, +pyvista/core/__pycache__/cell.cpython-311.pyc,, +pyvista/core/__pycache__/celltype.cpython-311.pyc,, +pyvista/core/__pycache__/composite.cpython-311.pyc,, +pyvista/core/__pycache__/dataobject.cpython-311.pyc,, +pyvista/core/__pycache__/dataset.cpython-311.pyc,, +pyvista/core/__pycache__/datasetattributes.cpython-311.pyc,, +pyvista/core/__pycache__/errors.cpython-311.pyc,, +pyvista/core/__pycache__/grid.cpython-311.pyc,, +pyvista/core/__pycache__/objects.cpython-311.pyc,, +pyvista/core/__pycache__/partitioned.cpython-311.pyc,, +pyvista/core/__pycache__/pointset.cpython-311.pyc,, +pyvista/core/__pycache__/pyvista_ndarray.cpython-311.pyc,, +pyvista/core/__pycache__/wrappers.cpython-311.pyc,, +pyvista/core/_typing_core/__init__.py,sha256=aciSCZ2LJLzoxCyUuMl-0zACjgKeJXREejgcpwSEcLk,1040 +pyvista/core/_typing_core/__pycache__/__init__.cpython-311.pyc,, +pyvista/core/_typing_core/__pycache__/_aliases.cpython-311.pyc,, +pyvista/core/_typing_core/__pycache__/_array_like.cpython-311.pyc,, +pyvista/core/_typing_core/__pycache__/_dataset_types.cpython-311.pyc,, +pyvista/core/_typing_core/_aliases.py,sha256=VPb4ABugTT_iUkRiZdDp5c6qWu7cryASq8KTiDJHV5c,4122 +pyvista/core/_typing_core/_array_like.py,sha256=jhzvL-U2RVL8Q2xANx48XD4a9sFuDy3eYY1QT2yhkCw,2556 +pyvista/core/_typing_core/_dataset_types.py,sha256=hRJncMIPfELR4Zu_e1jie7R7-5f4IwX-ugFbJ03lzdg,1572 +pyvista/core/_validation/__init__.py,sha256=-5-Axkqig5iiesVOZNgdY8UrdvvpUyfzP37UiiZx0nc,1833 +pyvista/core/_validation/__pycache__/__init__.cpython-311.pyc,, +pyvista/core/_validation/__pycache__/_cast_array.cpython-311.pyc,, +pyvista/core/_validation/__pycache__/check.cpython-311.pyc,, +pyvista/core/_validation/__pycache__/validate.cpython-311.pyc,, +pyvista/core/_validation/_cast_array.py,sha256=ZPjAamd_0D8yWXB_LHt5t7_IKTuD444OLrDpjZuUcmo,4228 +pyvista/core/_validation/check.py,sha256=74YRWq2VuuVuM9G4IcCQCFUk8SSc4u2KWiVnzdEa4hA,34819 +pyvista/core/_validation/validate.py,sha256=eVPeqRmh4Immcj1XnhuxCpjSFOJ-CZWt5x08JPeB7k4,43041 +pyvista/core/_vtk_core.py,sha256=3KIIWEcK3b5AqeFN4hS92H-hiI-is-E9SRAvfBW9JXc,43679 +pyvista/core/cell.py,sha256=2wgO_NiDhYxZznSE8KOgvEBUvuY_ZESixK_v1sZuqVs,27422 +pyvista/core/celltype.py,sha256=5iUcASNWj6vsK5hSdKnCFZNw6JdQA-2LNP3M9wpyjk0,45084 +pyvista/core/composite.py,sha256=ik9M1GYcikRhUARURY3z4QAFXVmXPsqmMFgI7CoQfLM,100585 +pyvista/core/dataobject.py,sha256=o8ns9Y4lZxzoYkGg6tkq5LLFkbOJwbDmn55qpgQUot4,38009 +pyvista/core/dataset.py,sha256=W4fhtRDU5Rrvio39yHXjORDVMBG9bxEQMouFP11XMTY,95965 +pyvista/core/datasetattributes.py,sha256=clp8ldmRjmotyT-Ez636Re3RJ7_QCtVFPY8RhQaH7zg,53085 +pyvista/core/errors.py,sha256=p-sVtlkPO74AyXUU45d7sRJwFt4VqIKVOocbo3FZmLc,5099 +pyvista/core/filters/__init__.py,sha256=QWFlTVQockSsBWvUifXkJYCvk6tP-fMmi2ZByGFBd8E,2668 +pyvista/core/filters/__pycache__/__init__.cpython-311.pyc,, +pyvista/core/filters/__pycache__/composite.cpython-311.pyc,, +pyvista/core/filters/__pycache__/data_object.cpython-311.pyc,, +pyvista/core/filters/__pycache__/data_set.cpython-311.pyc,, +pyvista/core/filters/__pycache__/image_data.cpython-311.pyc,, +pyvista/core/filters/__pycache__/poly_data.cpython-311.pyc,, +pyvista/core/filters/__pycache__/rectilinear_grid.cpython-311.pyc,, +pyvista/core/filters/__pycache__/structured_grid.cpython-311.pyc,, +pyvista/core/filters/__pycache__/unstructured_grid.cpython-311.pyc,, +pyvista/core/filters/composite.py,sha256=eCHsrM-k1kGs7XeMoKfe19zTdogyG59G6H7ZUfDZVO0,15197 +pyvista/core/filters/data_object.py,sha256=dSJ7I7iN-EnUnmwI8q-g8QrENhv07KzMU8xZfvqDl4k,112948 +pyvista/core/filters/data_set.py,sha256=TtXg_l-2raK3KmowtTypKpnzxu76FFIkcgyPgrQ6Ark,329545 +pyvista/core/filters/image_data.py,sha256=EXCPz3XSku97Nz019eYlEXfXmknhlKRU5OxV8K1ZRHg,196413 +pyvista/core/filters/poly_data.py,sha256=kA3Jpnhmx8nc4_LmVFc2tCIl3XOrJ2PJKTuFTYP_5Wg,169321 +pyvista/core/filters/rectilinear_grid.py,sha256=0vTljnEAUicS3H4kaMnZGJKMFHJbKjUu2Peq7jFDqWc,6318 +pyvista/core/filters/structured_grid.py,sha256=d6a9FTjR98evO03WRaR09AL-uQAYYzFPoi_E5GuCTuE,8006 +pyvista/core/filters/unstructured_grid.py,sha256=ghhtnwYp1lQ4sQ-hXTV4SIe858Doe4834cn-lP6JXrg,9586 +pyvista/core/grid.py,sha256=abcV3in6g5PCgMUyK8Kp8j30MURdNpb6AxPD_6XGj1c,40494 +pyvista/core/objects.py,sha256=Svxu4D3fUQTdQHJlE7MJMGeDZh7tGHfYRKqoXhiSLw8,11623 +pyvista/core/partitioned.py,sha256=RwCyFF0Ny44vNV3FDX9ttbJii9-cQWcXzRm1Lh4932Q,9326 +pyvista/core/pointset.py,sha256=LGV-jsGysM-Pi-qj5ri7uk1t5V3nf9oACtAiNe7MOq0,134045 +pyvista/core/pyvista_ndarray.py,sha256=UmSqXFDdv15vlgx5_K8V3tD6cbHYtKxM1PzEP_JJDTA,5007 +pyvista/core/utilities/__init__.py,sha256=D-DjXKuii2lq0lt2h4nYjUR1619laDKoQaj67T_USVs,13077 +pyvista/core/utilities/__pycache__/__init__.cpython-311.pyc,, +pyvista/core/utilities/__pycache__/arrays.cpython-311.pyc,, +pyvista/core/utilities/__pycache__/cell_quality.cpython-311.pyc,, +pyvista/core/utilities/__pycache__/cells.cpython-311.pyc,, +pyvista/core/utilities/__pycache__/docs.cpython-311.pyc,, +pyvista/core/utilities/__pycache__/features.cpython-311.pyc,, +pyvista/core/utilities/__pycache__/fileio.cpython-311.pyc,, +pyvista/core/utilities/__pycache__/geometric_objects.cpython-311.pyc,, +pyvista/core/utilities/__pycache__/geometric_sources.cpython-311.pyc,, +pyvista/core/utilities/__pycache__/helpers.cpython-311.pyc,, +pyvista/core/utilities/__pycache__/image_sources.cpython-311.pyc,, +pyvista/core/utilities/__pycache__/misc.cpython-311.pyc,, +pyvista/core/utilities/__pycache__/observers.cpython-311.pyc,, +pyvista/core/utilities/__pycache__/parametric_objects.cpython-311.pyc,, +pyvista/core/utilities/__pycache__/points.cpython-311.pyc,, +pyvista/core/utilities/__pycache__/reader.cpython-311.pyc,, +pyvista/core/utilities/__pycache__/state_manager.cpython-311.pyc,, +pyvista/core/utilities/__pycache__/transform.cpython-311.pyc,, +pyvista/core/utilities/__pycache__/transformations.cpython-311.pyc,, +pyvista/core/utilities/arrays.py,sha256=5eYT4oF6SMnHXhC8d3jMJ2S9WztnJB9b6ZmtdZiF9mA,34521 +pyvista/core/utilities/cell_quality.py,sha256=3RV5twBKnV76e11Bvcli7tnKTrygtajLjfhxBDDuP1o,13179 +pyvista/core/utilities/cells.py,sha256=_evNLApNy4fibIE5bYoqTGllAzQmWoOb2Xe3-RY0M7c,10652 +pyvista/core/utilities/docs.py,sha256=JKA7yEDNUglL6vxlY-4MVQgyRZeVLK6On4s3Ohzm8zU,4472 +pyvista/core/utilities/features.py,sha256=LLn87pEYs5bZGRnYzzWeUFvvRVdDytUqc04FvPqPRYQ,32941 +pyvista/core/utilities/fileio.py,sha256=BtEfL5t7TNKrSE_a2BFlEQFdppIeaXMGA77i2hSCyy4,39399 +pyvista/core/utilities/geometric_objects.py,sha256=uprXj8OEzpkn2rWH9UO3KeVfjpDWaFe43BmKoimhPqw,76224 +pyvista/core/utilities/geometric_sources.py,sha256=XdDAJM2Go3zc9Bh1BJi6jaHrOHDS5jok8AdDfVW9_Fc,134596 +pyvista/core/utilities/helpers.py,sha256=WrcFiymeooaaC656OFqmhk4YxMiQtrJDMHoVQ9PKlQ4,12149 +pyvista/core/utilities/image_sources.py,sha256=ORvbgqn6jEnQ0SGgJ3e1HNLIUF-wtwCA0VOeN9NcenE,20525 +pyvista/core/utilities/misc.py,sha256=sVKyheKf4xkNzY3baN7iA0ktpMwydvMRBkqOmMTu4AM,13868 +pyvista/core/utilities/observers.py,sha256=Jqdhvk1VGVleTJM2z1fdRclnCnLGQfroipJg82iLpUo,9829 +pyvista/core/utilities/parametric_objects.py,sha256=F0akRJ0uQL38JdhdSGKDZ0nJKCWlG-8kbHGkgNUJCGw,39154 +pyvista/core/utilities/points.py,sha256=TE0PkcoMXLBPumMOn6LzB4xSv38FEf0Mv9UhdGhHuzE,27932 +pyvista/core/utilities/reader.py,sha256=3kZ_p02tSVGzx8x0JeqrckaVYIet12Ep5jLc-8OsPD4,109321 +pyvista/core/utilities/state_manager.py,sha256=KjTTbvXM9sRtRNxgMUKJWf-pb2-xPI6IOGteLgkn5xo,9256 +pyvista/core/utilities/transform.py,sha256=BfurWQ2IrCyGE2yyqCXCkma0QfpAsdkKVAoVqYBlyIs,87972 +pyvista/core/utilities/transformations.py,sha256=kUAdrBY27yYbqfLs7XooqapcOMKIdg15SyvaA_Cl_XI,16942 +pyvista/core/wrappers.py,sha256=54K72_8liXJxNvwjs0ApWB4_uWeYpygUmSDucaugdck,2094 +pyvista/demos/__init__.py,sha256=ebuNk16XAm4kmas_FjG6gLx523Hv9Sezu-4FRTsfaZk,838 +pyvista/demos/__pycache__/__init__.cpython-311.pyc,, +pyvista/demos/__pycache__/demos.cpython-311.pyc,, +pyvista/demos/__pycache__/logo.cpython-311.pyc,, +pyvista/demos/demos.py,sha256=QPM02MgDlHClLAgrx5LY_pYcan3drhVnJ8ye6xS6qaU,16073 +pyvista/demos/logo.py,sha256=tLzSQw9xDGvckWF7EhSavm03HkxO-ecO1Cvg1zAtFGA,10449 +pyvista/errors.py,sha256=SUHEUGqgrA9_nUx22xIHQ6VH88zV1twmHGCLhkB_zX0,2065 +pyvista/examples/2k_earth_daymap.jpg,sha256=dn7h3G6zgCaZv8z28mSID4rNC4DeMZHNJJhP4nmwe3w,463087 +pyvista/examples/__init__.py,sha256=w5cX4YwrhtNnC6Plb002D6uEm6x0kMR_on3GJRlPsbM,281 +pyvista/examples/__pycache__/__init__.cpython-311.pyc,, +pyvista/examples/__pycache__/_dataset_loader.cpython-311.pyc,, +pyvista/examples/__pycache__/cells.cpython-311.pyc,, +pyvista/examples/__pycache__/download_3ds.cpython-311.pyc,, +pyvista/examples/__pycache__/downloads.cpython-311.pyc,, +pyvista/examples/__pycache__/examples.cpython-311.pyc,, +pyvista/examples/__pycache__/gltf.cpython-311.pyc,, +pyvista/examples/__pycache__/planets.cpython-311.pyc,, +pyvista/examples/__pycache__/vrml.cpython-311.pyc,, +pyvista/examples/_dataset_loader.py,sha256=Csx3tSNQ0MH17xI5S8Kl8MIMN8iI67qz2UD4Zfokk_g,30536 +pyvista/examples/airplane.ply,sha256=NwhGQWstDZxXTjVqW0PHqsLbdIdh2qsnD90TMflzBag,74547 +pyvista/examples/ant.ply,sha256=HoJcI8hViMnqjTG1Pgl5GmzSD6n4NemNTGE4nkIJpzs,17941 +pyvista/examples/cells.py,sha256=0DJmMAT-HdJoFdeqp326iJtaTBwV52tpCrVazIP9dwA,48800 +pyvista/examples/channels.vti,sha256=IbeHPMm1VShlZcWahMZcG7-LO35jMgJ-gtgb9RJo9B0,522284 +pyvista/examples/download_3ds.py,sha256=3SAfFO59pkxWb200NL0Hrldqsvu_VjBGILanfo-72k4,579 +pyvista/examples/downloads.py,sha256=ksWo1gn3qaAf47JZm13TVzS-hnfQqCEbEJ7WBYO8aVY,247361 +pyvista/examples/examples.py,sha256=tLmwCtSy0SToYFHTJGeMn5DB-TTsyYWkdiwRZfsp34M,19664 +pyvista/examples/frog_tissues.vti,sha256=hE4-MkVI_OurThT6ML4UANNPr6egoUAwtkOzjbidpmw,380427 +pyvista/examples/globe.vtk,sha256=-uIXZDDqNv1efKJ3D4D_neAcg8LkZ_EzYsmtBRfu7Ng,37447 +pyvista/examples/gltf.py,sha256=RYprWCDZNlus8jjTg8WEkdCtDXQTCJYH9NSBhv1bdN8,3563 +pyvista/examples/hexbeam.vtk,sha256=JhYruI-HPoi8-uSh0ucTecGrUqDr1t8NCBJ3GxeXZqk,3091 +pyvista/examples/nut.ply,sha256=Ud9cpC3brJEj5ZZ41TJVcnixHe6RUnTJjqiJesxgTAo,20128 +pyvista/examples/planets.py,sha256=BJSj_LWyR0FoH1rkLiuNtbadSjq42sKd3jiLuQTLw38,36718 +pyvista/examples/pyvista_logo.png,sha256=LZ82WIqvzW1sd93qyuyRkyuQb1MqS9zMncbpDS5wW-U,257078 +pyvista/examples/rectilinear.vtk,sha256=jmtzUA0jIRREYEsUuUSH48QuGuexZIeqUVdlxBZWexM,228473 +pyvista/examples/sphere.ply,sha256=xLx_Ux8i9iAyPMFGUrGXwPWFcgYCTo04AWweK5f1FyM,16237 +pyvista/examples/uniform.vtk,sha256=5HrRIN_m6wDWXDAKCM7s5uFapghyPHmNCoYlBgQP8A8,14094 +pyvista/examples/vrml.py,sha256=UWQHRQgxF-PMs-WRzZ9DQ0YCBvHdppDQK_EN_9vYkTQ,1631 +pyvista/ext/__init__.py,sha256=hXWDqoUsNNQvaGd8eUGUuZ9yaiVKzjK_gOL8usflJL0,45 +pyvista/ext/__pycache__/__init__.cpython-311.pyc,, +pyvista/ext/__pycache__/plot_directive.cpython-311.pyc,, +pyvista/ext/__pycache__/viewer_directive.cpython-311.pyc,, +pyvista/ext/plot_directive.py,sha256=F5csRAWwGZKDu0ghi3RgIMaEX5EOW860_iR-qP1Sre4,24259 +pyvista/ext/viewer_directive.py,sha256=8aDetj7JDD1PmN2IX7sjLJIFkRqC0c4PzDOUJHQbPUI,4324 +pyvista/jupyter/__init__.py,sha256=QPesvhFBIqTlqc5G5WLa6VEwldQzFGdq6T3mhDzPImY,4225 +pyvista/jupyter/__pycache__/__init__.cpython-311.pyc,, +pyvista/jupyter/__pycache__/notebook.cpython-311.pyc,, +pyvista/jupyter/notebook.py,sha256=2CgZEpRN6CA2zRzuBZ3lw1WHOldCj2sk8cP1VRJeFPo,1991 +pyvista/plotting/__init__.py,sha256=sYH0EZuB21PeEQYGzVQl27f7ZHiV2a2E9rvhqqa5C5c,5448 +pyvista/plotting/__pycache__/__init__.cpython-311.pyc,, +pyvista/plotting/__pycache__/_plotting.cpython-311.pyc,, +pyvista/plotting/__pycache__/_property.cpython-311.pyc,, +pyvista/plotting/__pycache__/_typing.cpython-311.pyc,, +pyvista/plotting/__pycache__/_vtk.cpython-311.pyc,, +pyvista/plotting/__pycache__/_vtk_gl.cpython-311.pyc,, +pyvista/plotting/__pycache__/actor.cpython-311.pyc,, +pyvista/plotting/__pycache__/actor_properties.cpython-311.pyc,, +pyvista/plotting/__pycache__/affine_widget.cpython-311.pyc,, +pyvista/plotting/__pycache__/axes.cpython-311.pyc,, +pyvista/plotting/__pycache__/axes_actor.cpython-311.pyc,, +pyvista/plotting/__pycache__/axes_assembly.cpython-311.pyc,, +pyvista/plotting/__pycache__/background_renderer.cpython-311.pyc,, +pyvista/plotting/__pycache__/camera.cpython-311.pyc,, +pyvista/plotting/__pycache__/charts.cpython-311.pyc,, +pyvista/plotting/__pycache__/colors.cpython-311.pyc,, +pyvista/plotting/__pycache__/composite_mapper.cpython-311.pyc,, +pyvista/plotting/__pycache__/cube_axes_actor.cpython-311.pyc,, +pyvista/plotting/__pycache__/errors.cpython-311.pyc,, +pyvista/plotting/__pycache__/follower.cpython-311.pyc,, +pyvista/plotting/__pycache__/helpers.cpython-311.pyc,, +pyvista/plotting/__pycache__/lights.cpython-311.pyc,, +pyvista/plotting/__pycache__/lookup_table.cpython-311.pyc,, +pyvista/plotting/__pycache__/mapper.cpython-311.pyc,, +pyvista/plotting/__pycache__/opts.cpython-311.pyc,, +pyvista/plotting/__pycache__/picking.cpython-311.pyc,, +pyvista/plotting/__pycache__/plotter.cpython-311.pyc,, +pyvista/plotting/__pycache__/prop3d.cpython-311.pyc,, +pyvista/plotting/__pycache__/prop_collection.cpython-311.pyc,, +pyvista/plotting/__pycache__/render_passes.cpython-311.pyc,, +pyvista/plotting/__pycache__/render_window_interactor.cpython-311.pyc,, +pyvista/plotting/__pycache__/renderer.cpython-311.pyc,, +pyvista/plotting/__pycache__/renderers.cpython-311.pyc,, +pyvista/plotting/__pycache__/scalar_bars.cpython-311.pyc,, +pyvista/plotting/__pycache__/text.cpython-311.pyc,, +pyvista/plotting/__pycache__/texture.cpython-311.pyc,, +pyvista/plotting/__pycache__/themes.cpython-311.pyc,, +pyvista/plotting/__pycache__/tools.cpython-311.pyc,, +pyvista/plotting/__pycache__/volume.cpython-311.pyc,, +pyvista/plotting/__pycache__/volume_property.cpython-311.pyc,, +pyvista/plotting/__pycache__/widgets.cpython-311.pyc,, +pyvista/plotting/_plotting.py,sha256=pJGMOHC-gAyB1Ol3gl42g2Zv-r29ZgHCTBRZLTP7BrA,9438 +pyvista/plotting/_property.py,sha256=DrZyKcT2ZzU4Y2Pg08A8hNuzk9QPg27p-FgsJoOIOEI,37970 +pyvista/plotting/_typing.py,sha256=q6uxXHiXc2wsEHHsZQuEcjixNSls5Zad_QVCScxRcrM,3953 +pyvista/plotting/_vtk.py,sha256=uSFnPCVfTz2DPLeeFsH6tsiBmXO5x3qYgcUQeDDwej0,10125 +pyvista/plotting/_vtk_gl.py,sha256=Md2BBTciuk1ux5JJFLFv8PYo1kyn-5pvoF6SDr2Up8w,2214 +pyvista/plotting/actor.py,sha256=m53ahj6PLLq_F0ZzqfUz9jKhS4gcpclzVVdAV6F6yvE,13709 +pyvista/plotting/actor_properties.py,sha256=olobp68i09esqvTsDFf3UChgcqKHRaGR5vkObG1Uf0M,4697 +pyvista/plotting/affine_widget.py,sha256=Y7_EhzV6WI96njV-8lpvHWW-xbAD-fd5TQi11sdN_ho,19404 +pyvista/plotting/axes.py,sha256=RwK1iUdx5FdUy_6HKpCbhMqFXrJLe7tqY10317Ht_sk,3469 +pyvista/plotting/axes_actor.py,sha256=-5qu3IX7EaFZeWyb7-spaGC-3rMIKu4GsaAiSyklIpc,21072 +pyvista/plotting/axes_assembly.py,sha256=evLySwZBwukcGjw0XiuGqTAK2fzH0APQ95AGaH7ajN4,73496 +pyvista/plotting/background_renderer.py,sha256=YeUn1-5AKyxmufBAY5Muy4p5b4kWQysmcF-7UbsXYd0,3259 +pyvista/plotting/camera.py,sha256=ZeWjf2Orz84ktJW9QUS1kKAyAzPv5KDBtf58YSddCCM,27535 +pyvista/plotting/charts.py,sha256=Ptg6GHZP-K619SJTuQ86GlIrzSDGI9stR2S0twEnc6g,157407 +pyvista/plotting/colors.py,sha256=Lll8r3yF881FTheFhciRICA6lV6ks2OvCOaR-yRDgcY,62532 +pyvista/plotting/composite_mapper.py,sha256=2nv_JjntWhcrTCY-sw7P7TDNIVemOEW97D8da2Ost3I,30094 +pyvista/plotting/cube_axes_actor.py,sha256=43s4ogJ0aGRd0pGmKpJGMmR3UsirP86pe2t7-LoZuwk,21179 +pyvista/plotting/errors.py,sha256=1zgcvii_tQqNULojtqEXvXC_BiafYdXXg4ToeB3aI0A,1119 +pyvista/plotting/follower.py,sha256=n6loUFdSnWcSG94F97hu3XHQd4lruB_FvrxX4eLpAwo,2519 +pyvista/plotting/helpers.py,sha256=6LI3n7ZgHUJJt1MlTQMLwtldadr0kLrUpc5PIJbtGms,5860 +pyvista/plotting/lights.py,sha256=FA5anUGg2s_zcFeqUP8HIs4phgtg81lvftwKTcSWdsk,41909 +pyvista/plotting/lookup_table.py,sha256=tNMyEhePSPewE022wtTdjxKb-PvS5SuBob3c33-qC54,38337 +pyvista/plotting/mapper.py,sha256=pBVDUUvbv5Z7POp1g2hzzkx5Gzpz9_ZwMkxmAtMsXT8,43704 +pyvista/plotting/opts.py,sha256=Su-lLl2AZd0QP4fS4pk28hegkZbSnMuGr_aOWc_IBkM,2052 +pyvista/plotting/picking.py,sha256=nJj3BfAJFi1gxY1elvmmfSBiK7zNACqo-gDeTiL5yYc,76525 +pyvista/plotting/plotter.py,sha256=CLn-OBCO2b3KkQxYWOy3UKvMad7qUlH1wX9ImoIQYNA,286562 +pyvista/plotting/plotting/__init__.py,sha256=n9jXSN7sCzx81ntstjD5vZjHyfdPyVK-nRYSoUl7PAw,1060 +pyvista/plotting/plotting/__pycache__/__init__.cpython-311.pyc,, +pyvista/plotting/prop3d.py,sha256=nCVZb02V86QclE3Tg_GFe5RAMW6uI7HiZvJx30rHMYg,22574 +pyvista/plotting/prop_collection.py,sha256=po4x92nPU1TpAZIKahmPh3gCqh-WfZeEMR2mli3Jdqs,3955 +pyvista/plotting/render_passes.py,sha256=RY4vyBdUBZk0c6DKl9Wbm-j3AFSRm8PDHq0RsF8oCB4,11086 +pyvista/plotting/render_window_interactor.py,sha256=HTRW8oRfiA4FNgG6pI1R1IwOqELLp6DXU_SB-KXTRAE,62686 +pyvista/plotting/renderer.py,sha256=-dr732Y2vlTT0g9web9eJB9ha8858GK5qRW7FdEw-MA,154194 +pyvista/plotting/renderers.py,sha256=x8qVOaaFwS0m2BGBb8caMqYFA4fgOKurTdlF6YVSBXg,26692 +pyvista/plotting/scalar_bars.py,sha256=qiUQn-GmdKEE7pcKFPKg1RRRZE5onDBSjc801_xaBOk,21266 +pyvista/plotting/text.py,sha256=BmAArkg3qV6b7quVrKzLbiCI5yPauvxvIkszSiWBMo4,24876 +pyvista/plotting/texture.py,sha256=7E1W4dlbhSd-sJKehmee70uGJREBfCwmVtautUl-5GQ,21282 +pyvista/plotting/themes.py,sha256=49aKDk6fmMtIcBmFzS-h_AssFom0j02NUrxTb0UfEfc,102486 +pyvista/plotting/tools.py,sha256=JQ5N4s5viGZl3FxkdnY6EL9dS81idc3_pNZzArD08Jc,24693 +pyvista/plotting/utilities/__init__.py,sha256=i73eBaOO6kv0CCiBL6GWNEPlxrPYwm3BgV-5fO-8w6U,1653 +pyvista/plotting/utilities/__pycache__/__init__.cpython-311.pyc,, +pyvista/plotting/utilities/__pycache__/algorithms.cpython-311.pyc,, +pyvista/plotting/utilities/__pycache__/cubemap.cpython-311.pyc,, +pyvista/plotting/utilities/__pycache__/gl_checks.cpython-311.pyc,, +pyvista/plotting/utilities/__pycache__/regression.cpython-311.pyc,, +pyvista/plotting/utilities/__pycache__/sphinx_gallery.cpython-311.pyc,, +pyvista/plotting/utilities/__pycache__/xvfb.cpython-311.pyc,, +pyvista/plotting/utilities/algorithms.py,sha256=kUmv3a12g8q0SiZ7Lh0Er4Bl3SAZJ0akPRuYgw7g8rc,19236 +pyvista/plotting/utilities/cubemap.py,sha256=DvYogBxiEH4YHVCaRoan1qUPadN6g4oSIEAP8wMPco8,3310 +pyvista/plotting/utilities/gl_checks.py,sha256=V0SnLeiIUifWii8h6QUPOnzsx6UZw15PBryGLJl_NvQ,1862 +pyvista/plotting/utilities/regression.py,sha256=NEdx-R9TgKRhfJCeEHwlzEV79RPCuHrCMhg8klP41-Y,8671 +pyvista/plotting/utilities/sphinx_gallery.py,sha256=JFn8AJTwxrUelvOYfMaCaSCY9CJ7p4HMCvShjIOQw3Q,7985 +pyvista/plotting/utilities/xvfb.py,sha256=9Ie83Rdn-usur7KuO1M68Rq_xjAsRG9iWyYHfJ3qkZI,1858 +pyvista/plotting/volume.py,sha256=50XDlEg7TNHCOTcTBSHyieuaftwxOpGaR3lOSVxBcnI,3479 +pyvista/plotting/volume_property.py,sha256=6yMj7QIU4wjU1rFrSi0q94xL4bW2u6Se-izWMft_hg0,14968 +pyvista/plotting/widgets.py,sha256=k91PHSn18z5WyTsxGv-EM5TtZys_i8FLxuUYdw0m6Ag,116792 +pyvista/py.typed,sha256=la67KBlbjXN-_-DfGNcdOcjYumVpKG_Tkw-8n5dnGB4,8 +pyvista/report.py,sha256=YUMWuU3TqqQkWnoo3YCRBQLuQq7_FOt3P1emgy0FDzA,6782 +pyvista/trame/__init__.py,sha256=AY2xCL7var0wrMadBi8cJ4Ywa1UmYFp77KywGzizPHQ,782 +pyvista/trame/__pycache__/__init__.cpython-311.pyc,, +pyvista/trame/__pycache__/jupyter.cpython-311.pyc,, +pyvista/trame/__pycache__/views.cpython-311.pyc,, +pyvista/trame/jupyter.py,sha256=g46t-x_2SWBgueLBiHgwcFeYSj2ham70uDTSPfwfryk,16062 +pyvista/trame/ui/__init__.py,sha256=xUPBHOaTJDg4QNTzdlw0pXLG9ED4LtjWzxn1Dzd4Y1s,3449 +pyvista/trame/ui/__pycache__/__init__.cpython-311.pyc,, +pyvista/trame/ui/__pycache__/base_viewer.cpython-311.pyc,, +pyvista/trame/ui/__pycache__/vuetify2.cpython-311.pyc,, +pyvista/trame/ui/__pycache__/vuetify3.cpython-311.pyc,, +pyvista/trame/ui/base_viewer.py,sha256=iIU-8XtKyPU38n5vLercBRyeO0i8kWhV89_7DlANK_4,8735 +pyvista/trame/ui/vuetify2.py,sha256=t432WW-FH41sM2231Gn8UbkBKFouByNVH20qnd2xEns,13230 +pyvista/trame/ui/vuetify3.py,sha256=sTjO5OaEVaI1Hgey50SKnPKwZAfTYWjecQ9c3Vlgx8A,13582 +pyvista/trame/views.py,sha256=Hk0gUGKuSMoArYibNNNBppN0Magz2Ava0JriNnD4Fmw,10062 +pyvista/typing/__init__.py,sha256=LJZAmGbC53XZZ7_q36LCdQFNjf6mEuTtrx7ZAjt-uQ8,57 +pyvista/typing/__pycache__/__init__.cpython-311.pyc,, +pyvista/typing/__pycache__/mypy_plugin.cpython-311.pyc,, +pyvista/typing/mypy_plugin.py,sha256=vRaPoYk6m1lLxk_VEIP6UiZ-JkeV-wlu2ZlJPEhlTHw,2860 +pyvista/utilities/__init__.py,sha256=6htF48mk-lmhsdLUUDOtmRj9q3CSMTrIDmpqpkQVqwA,2295 +pyvista/utilities/__pycache__/__init__.cpython-311.pyc,, +pyvista/utilities/__pycache__/algorithms.cpython-311.pyc,, +pyvista/utilities/__pycache__/arrays.cpython-311.pyc,, +pyvista/utilities/__pycache__/cell_type_helper.cpython-311.pyc,, +pyvista/utilities/__pycache__/cells.cpython-311.pyc,, +pyvista/utilities/__pycache__/common.cpython-311.pyc,, +pyvista/utilities/__pycache__/docs.cpython-311.pyc,, +pyvista/utilities/__pycache__/errors.cpython-311.pyc,, +pyvista/utilities/__pycache__/features.cpython-311.pyc,, +pyvista/utilities/__pycache__/fileio.cpython-311.pyc,, +pyvista/utilities/__pycache__/geometric_objects.cpython-311.pyc,, +pyvista/utilities/__pycache__/helpers.cpython-311.pyc,, +pyvista/utilities/__pycache__/misc.cpython-311.pyc,, +pyvista/utilities/__pycache__/parametric_objects.cpython-311.pyc,, +pyvista/utilities/__pycache__/reader.cpython-311.pyc,, +pyvista/utilities/__pycache__/regression.cpython-311.pyc,, +pyvista/utilities/__pycache__/sphinx_gallery.cpython-311.pyc,, +pyvista/utilities/__pycache__/transformations.cpython-311.pyc,, +pyvista/utilities/__pycache__/wrappers.cpython-311.pyc,, +pyvista/utilities/__pycache__/xvfb.cpython-311.pyc,, +pyvista/utilities/algorithms.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 +pyvista/utilities/arrays.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 +pyvista/utilities/cell_type_helper.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 +pyvista/utilities/cells.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 +pyvista/utilities/common.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 +pyvista/utilities/docs.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 +pyvista/utilities/errors.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 +pyvista/utilities/features.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 +pyvista/utilities/fileio.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 +pyvista/utilities/geometric_objects.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 +pyvista/utilities/helpers.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 +pyvista/utilities/misc.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 +pyvista/utilities/parametric_objects.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 +pyvista/utilities/reader.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 +pyvista/utilities/regression.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 +pyvista/utilities/sphinx_gallery.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 +pyvista/utilities/transformations.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 +pyvista/utilities/wrappers.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 +pyvista/utilities/xvfb.py,sha256=JSSACDu1u_KN4y7zbM4W8kkb8Oh_UhEdlqbDApMM0vo,88 diff --git a/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/WHEEL b/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/WHEEL new file mode 100644 index 0000000..e7fa31b --- /dev/null +++ b/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/licenses/AUTHORS.rst b/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/licenses/AUTHORS.rst new file mode 100644 index 0000000..3476907 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/licenses/AUTHORS.rst @@ -0,0 +1,45 @@ +.. _authors: + +Authors +------- + +.. image:: https://img.shields.io/github/contributors/pyvista/pyvista.svg?logo=github&logoColor=white + :target: https://github.com/pyvista/pyvista/graphs/contributors/ + + +The following is a list of authors who have made substantial contributions to +the conception or design of this software; or the creation of new code used in +this software; or have drafted the work or substantively revised it and are +considered "The PyVista Developers": + +- Alex Kaszynski, (`@akaszynski `_) +- Bane Sullivan, (`@banesullivan `_) +- Henrik Åhl, (`@supersubscript `_) +- Guillaume Favelier, (`@GuillaumeFavelier `_) +- Jevin Jones, (`@JevinJ `_) +- András Deák, (`@adeak `_) +- Tetsuo Koyama, (`@tkoyama010 `_) +- Rodrigo Mologni, (`@rodrigomologni `_) +- Phil Chiu, (`@whophil `_) +- Thomas G., (`@thomgrand `_) +- Eric Larson, (`@larsoner `_) +- Matthew Flamm, (`@MatthewFlamm `_) +- Darik Gamble, (`@darikg `_) +- Bram De Cooman, (`@dcbr `_) +- `@user27182 `_ + + +.. |contrib.rocks| image:: https://contrib.rocks/image?repo=pyvista/pyvista + :target: https://github.com/pyvista/pyvista/graphs/contributors + :alt: contrib.rocks + +Please take a look at the `contributors page`_ and the active `list of authors`_ +to learn more about the developers of PyVista. + +|contrib.rocks| + +Made with `contrib rocks`_. + +.. _contributors page: https://github.com/pyvista/pyvista/graphs/contributors/ +.. _list of authors: https://docs.pyvista.org/getting-started/authors.html#authors +.. _contrib rocks: https://contrib.rocks diff --git a/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/licenses/LICENSE new file mode 100644 index 0000000..39e14fd --- /dev/null +++ b/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2017-2025 The PyVista Developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/top_level.txt new file mode 100644 index 0000000..a3443ad --- /dev/null +++ b/venv/lib/python3.11/site-packages/pyvista-0.46.4.dist-info/top_level.txt @@ -0,0 +1 @@ +pyvista diff --git a/venv/lib/python3.11/site-packages/redis-7.0.1.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/redis-7.0.1.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/redis-7.0.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/redis-7.0.1.dist-info/METADATA b/venv/lib/python3.11/site-packages/redis-7.0.1.dist-info/METADATA new file mode 100644 index 0000000..6c442c9 --- /dev/null +++ b/venv/lib/python3.11/site-packages/redis-7.0.1.dist-info/METADATA @@ -0,0 +1,265 @@ +Metadata-Version: 2.4 +Name: redis +Version: 7.0.1 +Summary: Python client for Redis database and key-value store +Project-URL: Changes, https://github.com/redis/redis-py/releases +Project-URL: Code, https://github.com/redis/redis-py +Project-URL: Documentation, https://redis.readthedocs.io/en/latest/ +Project-URL: Homepage, https://github.com/redis/redis-py +Project-URL: Issue tracker, https://github.com/redis/redis-py/issues +Author-email: "Redis Inc." +License-Expression: MIT +License-File: LICENSE +Keywords: Redis,database,key-value-store +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Console +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Requires-Python: >=3.9 +Requires-Dist: async-timeout>=4.0.3; python_full_version < '3.11.3' +Provides-Extra: circuit-breaker +Requires-Dist: pybreaker>=1.4.0; extra == 'circuit-breaker' +Provides-Extra: hiredis +Requires-Dist: hiredis>=3.2.0; extra == 'hiredis' +Provides-Extra: jwt +Requires-Dist: pyjwt>=2.9.0; extra == 'jwt' +Provides-Extra: ocsp +Requires-Dist: cryptography>=36.0.1; extra == 'ocsp' +Requires-Dist: pyopenssl>=20.0.1; extra == 'ocsp' +Requires-Dist: requests>=2.31.0; extra == 'ocsp' +Description-Content-Type: text/markdown + +# redis-py + +The Python interface to the Redis key-value store. + +[![CI](https://github.com/redis/redis-py/workflows/CI/badge.svg?branch=master)](https://github.com/redis/redis-py/actions?query=workflow%3ACI+branch%3Amaster) +[![docs](https://readthedocs.org/projects/redis/badge/?version=stable&style=flat)](https://redis.readthedocs.io/en/stable/) +[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE) +[![pypi](https://badge.fury.io/py/redis.svg)](https://pypi.org/project/redis/) +[![pre-release](https://img.shields.io/github/v/release/redis/redis-py?include_prereleases&label=latest-prerelease)](https://github.com/redis/redis-py/releases) +[![codecov](https://codecov.io/gh/redis/redis-py/branch/master/graph/badge.svg?token=yenl5fzxxr)](https://codecov.io/gh/redis/redis-py) + +[Installation](#installation) | [Usage](#usage) | [Advanced Topics](#advanced-topics) | [Contributing](https://github.com/redis/redis-py/blob/master/CONTRIBUTING.md) + +--------------------------------------------- + +**Note:** redis-py 5.0 is the last version of redis-py that supports Python 3.7, as it has reached [end of life](https://devguide.python.org/versions/). redis-py 5.1 supports Python 3.8+.
+**Note:** redis-py 6.1.0 is the last version of redis-py that supports Python 3.8, as it has reached [end of life](https://devguide.python.org/versions/). redis-py 6.2.0 supports Python 3.9+. + +--------------------------------------------- + +## How do I Redis? + +[Learn for free at Redis University](https://redis.io/learn/university) + +[Try the Redis Cloud](https://redis.io/try-free/) + +[Dive in developer tutorials](https://redis.io/learn) + +[Join the Redis community](https://redis.io/community/) + +[Work at Redis](https://redis.io/careers/) + +## Installation + +Start a redis via docker (for Redis versions >= 8.0): + +``` bash +docker run -p 6379:6379 -it redis:latest +``` + +Start a redis via docker (for Redis versions < 8.0): + +``` bash +docker run -p 6379:6379 -it redis/redis-stack:latest +``` +To install redis-py, simply: + +``` bash +$ pip install redis +``` + +For faster performance, install redis with hiredis support, this provides a compiled response parser, and *for most cases* requires zero code changes. +By default, if hiredis >= 1.0 is available, redis-py will attempt to use it for response parsing. + +``` bash +$ pip install "redis[hiredis]" +``` + +Looking for a high-level library to handle object mapping? See [redis-om-python](https://github.com/redis/redis-om-python)! + +## Supported Redis Versions + +The most recent version of this library supports Redis version [7.2](https://github.com/redis/redis/blob/7.2/00-RELEASENOTES), [7.4](https://github.com/redis/redis/blob/7.4/00-RELEASENOTES), [8.0](https://github.com/redis/redis/blob/8.0/00-RELEASENOTES) and [8.2](https://github.com/redis/redis/blob/8.2/00-RELEASENOTES). + +The table below highlights version compatibility of the most-recent library versions and redis versions. + +| Library version | Supported redis versions | +|-----------------|-------------------| +| 3.5.3 | <= 6.2 Family of releases | +| >= 4.5.0 | Version 5.0 to 7.0 | +| >= 5.0.0 | Version 5.0 to 7.4 | +| >= 6.0.0 | Version 7.2 to current | + + +## Usage + +### Basic Example + +``` python +>>> import redis +>>> r = redis.Redis(host='localhost', port=6379, db=0) +>>> r.set('foo', 'bar') +True +>>> r.get('foo') +b'bar' +``` + +The above code connects to localhost on port 6379, sets a value in Redis, and retrieves it. All responses are returned as bytes in Python, to receive decoded strings, set *decode_responses=True*. For this, and more connection options, see [these examples](https://redis.readthedocs.io/en/stable/examples.html). + + +#### RESP3 Support +To enable support for RESP3, ensure you have at least version 5.0 of the client, and change your connection object to include *protocol=3* + +``` python +>>> import redis +>>> r = redis.Redis(host='localhost', port=6379, db=0, protocol=3) +``` + +### Connection Pools + +By default, redis-py uses a connection pool to manage connections. Each instance of a Redis class receives its own connection pool. You can however define your own [redis.ConnectionPool](https://redis.readthedocs.io/en/stable/connections.html#connection-pools). + +``` python +>>> pool = redis.ConnectionPool(host='localhost', port=6379, db=0) +>>> r = redis.Redis(connection_pool=pool) +``` + +Alternatively, you might want to look at [Async connections](https://redis.readthedocs.io/en/stable/examples/asyncio_examples.html), or [Cluster connections](https://redis.readthedocs.io/en/stable/connections.html#cluster-client), or even [Async Cluster connections](https://redis.readthedocs.io/en/stable/connections.html#async-cluster-client). + +### Redis Commands + +There is built-in support for all of the [out-of-the-box Redis commands](https://redis.io/commands). They are exposed using the raw Redis command names (`HSET`, `HGETALL`, etc.) except where a word (i.e. del) is reserved by the language. The complete set of commands can be found [here](https://github.com/redis/redis-py/tree/master/redis/commands), or [the documentation](https://redis.readthedocs.io/en/stable/commands.html). + +## Advanced Topics + +The [official Redis command documentation](https://redis.io/commands) +does a great job of explaining each command in detail. redis-py attempts +to adhere to the official command syntax. There are a few exceptions: + +- **MULTI/EXEC**: These are implemented as part of the Pipeline class. + The pipeline is wrapped with the MULTI and EXEC statements by + default when it is executed, which can be disabled by specifying + transaction=False. See more about Pipelines below. + +- **SUBSCRIBE/LISTEN**: Similar to pipelines, PubSub is implemented as + a separate class as it places the underlying connection in a state + where it can\'t execute non-pubsub commands. Calling the pubsub + method from the Redis client will return a PubSub instance where you + can subscribe to channels and listen for messages. You can only call + PUBLISH from the Redis client (see [this comment on issue + #151](https://github.com/redis/redis-py/issues/151#issuecomment-1545015) + for details). + +For more details, please see the documentation on [advanced topics page](https://redis.readthedocs.io/en/stable/advanced_features.html). + +### Pipelines + +The following is a basic example of a [Redis pipeline](https://redis.io/docs/manual/pipelining/), a method to optimize round-trip calls, by batching Redis commands, and receiving their results as a list. + + +``` python +>>> pipe = r.pipeline() +>>> pipe.set('foo', 5) +>>> pipe.set('bar', 18.5) +>>> pipe.set('blee', "hello world!") +>>> pipe.execute() +[True, True, True] +``` + +### PubSub + +The following example shows how to utilize [Redis Pub/Sub](https://redis.io/docs/manual/pubsub/) to subscribe to specific channels. + +``` python +>>> r = redis.Redis(...) +>>> p = r.pubsub() +>>> p.subscribe('my-first-channel', 'my-second-channel', ...) +>>> p.get_message() +{'pattern': None, 'type': 'subscribe', 'channel': b'my-second-channel', 'data': 1} +``` + +### Redis’ search and query capabilities default dialect + +Release 6.0.0 introduces a client-side default dialect for Redis’ search and query capabilities. +By default, the client now overrides the server-side dialect with version 2, automatically appending *DIALECT 2* to commands like *FT.AGGREGATE* and *FT.SEARCH*. + +**Important**: Be aware that the query dialect may impact the results returned. If needed, you can revert to a different dialect version by configuring the client accordingly. + +``` python +>>> from redis.commands.search.field import TextField +>>> from redis.commands.search.query import Query +>>> from redis.commands.search.index_definition import IndexDefinition +>>> import redis + +>>> r = redis.Redis(host='localhost', port=6379, db=0) +>>> r.ft().create_index( +>>> (TextField("name"), TextField("lastname")), +>>> definition=IndexDefinition(prefix=["test:"]), +>>> ) + +>>> r.hset("test:1", "name", "James") +>>> r.hset("test:1", "lastname", "Brown") + +>>> # Query with default DIALECT 2 +>>> query = "@name: James Brown" +>>> q = Query(query) +>>> res = r.ft().search(q) + +>>> # Query with explicit DIALECT 1 +>>> query = "@name: James Brown" +>>> q = Query(query).dialect(1) +>>> res = r.ft().search(q) +``` + +You can find further details in the [query dialect documentation](https://redis.io/docs/latest/develop/interact/search-and-query/advanced-concepts/dialects/). + +### Multi-database client (Active-Active) + +The multi-database client allows your application to connect to multiple Redis databases, which are typically replicas of each other. It is designed to work with Redis Software and Redis Cloud Active-Active setups. The client continuously monitors database health, detects failures, and automatically fails over to the next healthy database using a configurable strategy. When the original database becomes healthy again, the client can automatically switch back to it.
+This is useful when: + +1. You have more than one Redis deployment. This might include two independent Redis servers or two or more Redis databases replicated across multiple [active-active Redis Enterprise](https://redis.io/docs/latest/operate/rs/databases/active-active/) clusters. +2. You want your application to connect to one deployment at a time and to fail over to the next available deployment if the first deployment becomes unavailable. + +For the complete failover configuration options and examples, see the [Multi-database client docs](https://redis.readthedocs.io/en/latest/multi_database.html). + +--------------------------------------------- + +### Author + +redis-py is developed and maintained by [Redis Inc](https://redis.io). It can be found [here]( +https://github.com/redis/redis-py), or downloaded from [pypi](https://pypi.org/project/redis/). + +Special thanks to: + +- Andy McCurdy () the original author of redis-py. +- Ludovico Magnocavallo, author of the original Python Redis client, + from which some of the socket code is still used. +- Alexander Solovyov for ideas on the generic response callback + system. +- Paul Hubbard for initial packaging support. + +[![Redis](./docs/_static/logo-redis.svg)](https://redis.io) diff --git a/venv/lib/python3.11/site-packages/redis-7.0.1.dist-info/RECORD b/venv/lib/python3.11/site-packages/redis-7.0.1.dist-info/RECORD new file mode 100644 index 0000000..6883ded --- /dev/null +++ b/venv/lib/python3.11/site-packages/redis-7.0.1.dist-info/RECORD @@ -0,0 +1,207 @@ +redis-7.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +redis-7.0.1.dist-info/METADATA,sha256=ZOL_QJvzypyTVOlShWq14UMi8LTxHGn_Out_sWbAEic,12057 +redis-7.0.1.dist-info/RECORD,, +redis-7.0.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +redis-7.0.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87 +redis-7.0.1.dist-info/licenses/LICENSE,sha256=pXslClvwPXr-VbdAYzE_Ktt7ANVGwKsUmok5gzP-PMg,1074 +redis/__init__.py,sha256=eq5gTrj1McuOdwkto3_KucClbaNQqiFiYkuwW3ZPWYY,2048 +redis/__pycache__/__init__.cpython-311.pyc,, +redis/__pycache__/background.cpython-311.pyc,, +redis/__pycache__/backoff.cpython-311.pyc,, +redis/__pycache__/cache.cpython-311.pyc,, +redis/__pycache__/client.cpython-311.pyc,, +redis/__pycache__/cluster.cpython-311.pyc,, +redis/__pycache__/connection.cpython-311.pyc,, +redis/__pycache__/crc.cpython-311.pyc,, +redis/__pycache__/credentials.cpython-311.pyc,, +redis/__pycache__/data_structure.cpython-311.pyc,, +redis/__pycache__/event.cpython-311.pyc,, +redis/__pycache__/exceptions.cpython-311.pyc,, +redis/__pycache__/lock.cpython-311.pyc,, +redis/__pycache__/maint_notifications.cpython-311.pyc,, +redis/__pycache__/ocsp.cpython-311.pyc,, +redis/__pycache__/retry.cpython-311.pyc,, +redis/__pycache__/sentinel.cpython-311.pyc,, +redis/__pycache__/typing.cpython-311.pyc,, +redis/__pycache__/utils.cpython-311.pyc,, +redis/_parsers/__init__.py,sha256=gyf5dp918NuJAkWFl8sX1Z-qAvbX_40-_7YCTM6Rvjc,693 +redis/_parsers/__pycache__/__init__.cpython-311.pyc,, +redis/_parsers/__pycache__/base.cpython-311.pyc,, +redis/_parsers/__pycache__/commands.cpython-311.pyc,, +redis/_parsers/__pycache__/encoders.cpython-311.pyc,, +redis/_parsers/__pycache__/helpers.cpython-311.pyc,, +redis/_parsers/__pycache__/hiredis.cpython-311.pyc,, +redis/_parsers/__pycache__/resp2.cpython-311.pyc,, +redis/_parsers/__pycache__/resp3.cpython-311.pyc,, +redis/_parsers/__pycache__/socket.cpython-311.pyc,, +redis/_parsers/base.py,sha256=dQfNEvP-8P12juBwDMo7Ro8-Z3kbyz2FsSOXR7IBI90,16332 +redis/_parsers/commands.py,sha256=pmR4hl4u93UvCmeDgePHFc6pWDr4slrKEvCsdMmtj_M,11052 +redis/_parsers/encoders.py,sha256=X0jvTp-E4TZUlZxV5LJJ88TuVrF1vly5tuC0xjxGaSc,1734 +redis/_parsers/helpers.py,sha256=oTkQMuBh7QF4ZoPKV1LHcJtud771jnZQroGYjiVzNiE,31098 +redis/_parsers/hiredis.py,sha256=4UP0CCwG3QAgFQrvR0D2q7WFM5Fbr6y7gU_2KwjbZcA,11031 +redis/_parsers/resp2.py,sha256=f22kH-_ZP2iNtOn6xOe65MSy_fJpu8OEn1u_hgeeojI,4813 +redis/_parsers/resp3.py,sha256=xI_eswa5LdoR9gZzLhOP_B5Xp-bIJuvcE7ycA3XFrhk,10034 +redis/_parsers/socket.py,sha256=CKD8QW_wFSNlIZzxlbNduaGpiv0I8wBcsGuAIojDfJg,5403 +redis/asyncio/__init__.py,sha256=uoDD8XYVi0Kj6mcufYwLDUTQXmBRx7a0bhKF9stZr7I,1489 +redis/asyncio/__pycache__/__init__.cpython-311.pyc,, +redis/asyncio/__pycache__/client.cpython-311.pyc,, +redis/asyncio/__pycache__/cluster.cpython-311.pyc,, +redis/asyncio/__pycache__/connection.cpython-311.pyc,, +redis/asyncio/__pycache__/lock.cpython-311.pyc,, +redis/asyncio/__pycache__/retry.cpython-311.pyc,, +redis/asyncio/__pycache__/sentinel.cpython-311.pyc,, +redis/asyncio/__pycache__/utils.cpython-311.pyc,, +redis/asyncio/client.py,sha256=_-04JvnKtH3JFlj5wE3-XFEkqF4okJDFiu_j4NtTKqQ,64385 +redis/asyncio/cluster.py,sha256=5FfCQzAvMlkF3jgeXFEwpY5hvb9cHaQqJFxb9LbEK1c,92351 +redis/asyncio/connection.py,sha256=QBqR-doqZhfMbFQOZDY0iS6n6F7_lu0MJk9kTrmDGnQ,51482 +redis/asyncio/http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +redis/asyncio/http/__pycache__/__init__.cpython-311.pyc,, +redis/asyncio/http/__pycache__/http_client.cpython-311.pyc,, +redis/asyncio/http/http_client.py,sha256=wftF-Yl4LAcBNkxy62HM2x5OSmpfEz6qxBFM-zft9rU,7947 +redis/asyncio/lock.py,sha256=GxgV6EsyKpMjh74KtaOPxh4fNPuwApz6Th46qhvrAws,12801 +redis/asyncio/multidb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +redis/asyncio/multidb/__pycache__/__init__.cpython-311.pyc,, +redis/asyncio/multidb/__pycache__/client.cpython-311.pyc,, +redis/asyncio/multidb/__pycache__/command_executor.cpython-311.pyc,, +redis/asyncio/multidb/__pycache__/config.cpython-311.pyc,, +redis/asyncio/multidb/__pycache__/database.cpython-311.pyc,, +redis/asyncio/multidb/__pycache__/event.cpython-311.pyc,, +redis/asyncio/multidb/__pycache__/failover.cpython-311.pyc,, +redis/asyncio/multidb/__pycache__/failure_detector.cpython-311.pyc,, +redis/asyncio/multidb/__pycache__/healthcheck.cpython-311.pyc,, +redis/asyncio/multidb/client.py,sha256=V0emN-BKrOjlDL7VGybWP2Ygkw2cG1iYcAyjnsMMmpg,18530 +redis/asyncio/multidb/command_executor.py,sha256=c1H43SisdIAUB1gxcd8hkBZPB77kkbehr4924rKWw-8,11886 +redis/asyncio/multidb/config.py,sha256=jPCUYU1Mvz3w-7fO4O_rCys5kULxEVSkaeEqE_d2_E8,8732 +redis/asyncio/multidb/database.py,sha256=aytyHEhHMJ1BUquMd-Ry1YTer3eEnsIlM02e5hs2tso,1835 +redis/asyncio/multidb/event.py,sha256=76GS22NwkeMVwtjr13UMeYD0pAB9KoPDvKWUin4DwHs,2788 +redis/asyncio/multidb/failover.py,sha256=SEhlG2rA50Mz-Rk-W5l_wOREHmKQMDyxSRiSAt1NmMI,3635 +redis/asyncio/multidb/failure_detector.py,sha256=1nipBfcjtLH8XprTQvOBE9y0kRC_YsPszEPzLKbiSU8,1263 +redis/asyncio/multidb/healthcheck.py,sha256=Ku_npw6pcbPpVBL7joUTBTsywUofdUyZDwlKcaMrBmg,10320 +redis/asyncio/retry.py,sha256=Ikm0rsvnFItracA89DdPcejLqb_Sr4QBz73Ow_LUmwU,1880 +redis/asyncio/sentinel.py,sha256=Ppk-jlTubcHpa0lvinZ1pPTtQ5rFHXZkkaCZ7G_TCQs,14868 +redis/asyncio/utils.py,sha256=31xFzXczDgSRyf6hSjiwue1eDQ_XlP_OJdp5dKxW_aE,718 +redis/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +redis/auth/__pycache__/__init__.cpython-311.pyc,, +redis/auth/__pycache__/err.cpython-311.pyc,, +redis/auth/__pycache__/idp.cpython-311.pyc,, +redis/auth/__pycache__/token.cpython-311.pyc,, +redis/auth/__pycache__/token_manager.cpython-311.pyc,, +redis/auth/err.py,sha256=WYkbuDIzwp1S-eAvsya6QMlO6g9QIXbzMITOsTWX0xk,694 +redis/auth/idp.py,sha256=IMDIIb9q72vbIwtFN8vPdaAKZVTdh0HuC5uj5ufqmw4,631 +redis/auth/token.py,sha256=qYwAgxFW3S93QDUqp1BTsj7Pj9ZohnixGeOX0s7AsjY,3317 +redis/auth/token_manager.py,sha256=ShBsYXiBZBJBOMB_Y-pXfLwEOAmc9s1okaCECinNZ7g,12018 +redis/background.py,sha256=Mm2yTCTW2yugDMKx8JCvyIKgiIhAh5WLdl4P-Hdd7_Q,5927 +redis/backoff.py,sha256=tQM6Lh2g2FjMH8iXg94br2sU9eri4mEW9FbOrMt0azs,5285 +redis/cache.py,sha256=d5zyX_DfXnrDIjFGs1nFMOLEl8pIvLF2kHcZchFAPGU,9569 +redis/client.py,sha256=JzyOFcf_fdU5To0S9S2bCT7BX0KuYZ143Fk-NrYZvVg,65451 +redis/cluster.py,sha256=IwXWDqPvUbDX9hgbw6JqWZN8G4u3667egquFk7RPMeY,124565 +redis/commands/__init__.py,sha256=cTUH-MGvaLYS0WuoytyqtN1wniw2A1KbkUXcpvOSY3I,576 +redis/commands/__pycache__/__init__.cpython-311.pyc,, +redis/commands/__pycache__/cluster.cpython-311.pyc,, +redis/commands/__pycache__/core.cpython-311.pyc,, +redis/commands/__pycache__/helpers.cpython-311.pyc,, +redis/commands/__pycache__/redismodules.cpython-311.pyc,, +redis/commands/__pycache__/sentinel.cpython-311.pyc,, +redis/commands/bf/__init__.py,sha256=qk4DA9KsMiP4WYqYeP1T5ScBwctsVtlLyMhrYIyq1Zc,8019 +redis/commands/bf/__pycache__/__init__.cpython-311.pyc,, +redis/commands/bf/__pycache__/commands.cpython-311.pyc,, +redis/commands/bf/__pycache__/info.cpython-311.pyc,, +redis/commands/bf/commands.py,sha256=xeKt8E7G8HB-l922J0DLg07CEIZTVNGx_2Lfyw1gIck,21283 +redis/commands/bf/info.py,sha256=_OB2v_hAPI9mdVNiBx8jUtH2MhMoct9ZRm-e8In6wQo,3355 +redis/commands/cluster.py,sha256=vdWdpl4mP51oqfYBZHg5CUXt6jPaNp7aCLHyTieDrt8,31248 +redis/commands/core.py,sha256=hBDWjmgtzX9qTRNTl6lkofXuSZd90bRn2CEDYWK878g,242489 +redis/commands/helpers.py,sha256=lon89DLjTGCJZJoV-5CfN_-NiUItG9R8CstZ8Ei8PzI,2579 +redis/commands/json/__init__.py,sha256=bznXhLYR652rfLfLp8cz0ZN0Yr8IRx4FgON_tq9_2Io,4845 +redis/commands/json/__pycache__/__init__.cpython-311.pyc,, +redis/commands/json/__pycache__/_util.cpython-311.pyc,, +redis/commands/json/__pycache__/commands.cpython-311.pyc,, +redis/commands/json/__pycache__/decoders.cpython-311.pyc,, +redis/commands/json/__pycache__/path.cpython-311.pyc,, +redis/commands/json/_util.py,sha256=hIBQ1TLCTgUifcLsg0x8kJlecxmXhA9I0zMnHlQk0Ho,137 +redis/commands/json/commands.py,sha256=oeVUhjSAoKEXqKV_JDYHp5xLND073U3HQfyZdaNTzqc,15711 +redis/commands/json/decoders.py,sha256=a_IoMV_wgeJyUifD4P6HTcM9s6FhricwmzQcZRmc-Gw,1411 +redis/commands/json/path.py,sha256=0zaO6_q_FVMk1Bkhkb7Wcr8AF2Tfr69VhkKy1IBVhpA,393 +redis/commands/redismodules.py,sha256=-kLM4RBklDhNh-MXCra81ZTSstIQ-ulRab6v0dYUTdA,2573 +redis/commands/search/__init__.py,sha256=SBN4kDgS8cUW9b8xvAycrKtsfzx3oMbHnYMmARW37e8,5774 +redis/commands/search/__pycache__/__init__.cpython-311.pyc,, +redis/commands/search/__pycache__/_util.cpython-311.pyc,, +redis/commands/search/__pycache__/aggregation.cpython-311.pyc,, +redis/commands/search/__pycache__/commands.cpython-311.pyc,, +redis/commands/search/__pycache__/dialect.cpython-311.pyc,, +redis/commands/search/__pycache__/document.cpython-311.pyc,, +redis/commands/search/__pycache__/field.cpython-311.pyc,, +redis/commands/search/__pycache__/index_definition.cpython-311.pyc,, +redis/commands/search/__pycache__/profile_information.cpython-311.pyc,, +redis/commands/search/__pycache__/query.cpython-311.pyc,, +redis/commands/search/__pycache__/querystring.cpython-311.pyc,, +redis/commands/search/__pycache__/reducers.cpython-311.pyc,, +redis/commands/search/__pycache__/result.cpython-311.pyc,, +redis/commands/search/__pycache__/suggestion.cpython-311.pyc,, +redis/commands/search/_util.py,sha256=9Mp72OO5Ib5UbfN7uXb-iB7hQCm1jQLV90ms2P9XSGU,219 +redis/commands/search/aggregation.py,sha256=fPIpcUj_z1u6rsulGgFpgMDA0EhWUVjIJW0j466GH6I,11578 +redis/commands/search/commands.py,sha256=5pBc5efqD0_O0A83zOhfoHAfLDgWvmNprWdAy6wCqG4,38532 +redis/commands/search/dialect.py,sha256=-7M6kkr33x0FkMtKmUsbeRAE6qxLUbqdJCqIo0UKIXo,105 +redis/commands/search/document.py,sha256=g2R-PRgq-jN33_GLXzavvse4cpIHBMfjPfPK7tnE9Gc,413 +redis/commands/search/field.py,sha256=KQFKCGVaABn9vDYnAcB0jaMwGxJqiZ8fEJHP_VieBR8,5935 +redis/commands/search/index_definition.py,sha256=VL2CMzjxN0HEIaTn88evnHX1fCEmytbik4vAmiiYSC8,2489 +redis/commands/search/profile_information.py,sha256=w9SbMiHbcZ1TpsZMe8cMIyO1hGkm5GhnZ_Gqg1feLtc,249 +redis/commands/search/query.py,sha256=9-CCxjakf53BowKLRgLdAhZIZXlWZRjT3bfVyudkGFw,12361 +redis/commands/search/querystring.py,sha256=dE577kOqkCErNgO-IXI4xFVHI8kQE-JiH5ZRI_CKjHE,7597 +redis/commands/search/reducers.py,sha256=Scceylx8BjyqS-TJOdhNW63n6tecL9ojt4U5Sqho5UY,4220 +redis/commands/search/result.py,sha256=iuqmwOeCNo_7N4a_YxxDzVdOTpbwfF1T2uuq5sTqzMo,2624 +redis/commands/search/suggestion.py,sha256=V_re6suDCoNc0ETn_P1t51FeK4pCamPwxZRxCY8jscE,1612 +redis/commands/sentinel.py,sha256=Q1Xuw7qXA0YRZXGlIKsuOtah8UfF0QnkLywOTRvjiMY,5299 +redis/commands/timeseries/__init__.py,sha256=k492_xE_lBD0cVSX82TWBiNxOWuDDrrVZUjINi3LZSc,3450 +redis/commands/timeseries/__pycache__/__init__.cpython-311.pyc,, +redis/commands/timeseries/__pycache__/commands.cpython-311.pyc,, +redis/commands/timeseries/__pycache__/info.cpython-311.pyc,, +redis/commands/timeseries/__pycache__/utils.cpython-311.pyc,, +redis/commands/timeseries/commands.py,sha256=8Z2BEyP23qTYCJR_e9zdG11yWmIDwGBMO2PJNLtK2BA,47147 +redis/commands/timeseries/info.py,sha256=meZYdu7IV9KaUWMKZs9qW4vo3Q9MwhdY-EBtKQzls5o,3223 +redis/commands/timeseries/utils.py,sha256=NLwSOS5Dz9N8dYQSzEyBIvrItOWwfQ0xgDj8un6x3dU,1319 +redis/commands/vectorset/__init__.py,sha256=w2TWc5lCb674jZv8GP9dxYSTGP1yq15ZkF9075nJiIs,1322 +redis/commands/vectorset/__pycache__/__init__.cpython-311.pyc,, +redis/commands/vectorset/__pycache__/commands.cpython-311.pyc,, +redis/commands/vectorset/__pycache__/utils.cpython-311.pyc,, +redis/commands/vectorset/commands.py,sha256=Ja2dybLBDdd0M47H4dCvmXFM0_hOQ6rNMP8kHPNVjWc,13399 +redis/commands/vectorset/utils.py,sha256=kApyWTzG_HEgTj6wSzBuMVz-qWMhPSgr-Do_5cHSS6E,4472 +redis/connection.py,sha256=ACAu1YJcW9gkn3Iuh0dN3teTw_ixZCBbe8q9wpVNzxQ,111157 +redis/crc.py,sha256=Z3kXFtkY2LdgefnQMud1xr4vG5UYvA9LCMqNMX1ywu4,729 +redis/credentials.py,sha256=GOnO3-LSW34efHaIrUbS742Mw8l70mRzF6UrKiKZsMY,1828 +redis/data_structure.py,sha256=qTZq3s7gEmZVwyFBNfKnkKnm9q3-HHxnZfMH9sBIyD4,2527 +redis/event.py,sha256=P4UkD_8gn25w3iO8_3oNnj4ZtgbARQaFCtuMH_JUbZ8,14140 +redis/exceptions.py,sha256=-VYXehEhnng4muOw1ys00MkR9sF5GOsdN4vCeM2KqX0,5937 +redis/http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +redis/http/__pycache__/__init__.cpython-311.pyc,, +redis/http/__pycache__/http_client.cpython-311.pyc,, +redis/http/http_client.py,sha256=7pjty24rIlrnSfedHx4X89JTL6xZtOHjDCvLjUkNq4Q,15179 +redis/lock.py,sha256=GrvPSxaOqKo7iAL2oi5ZUEPsOkxAXHVE_Tp1ejgO2fY,12760 +redis/maint_notifications.py,sha256=PV72lwQ2MKVQ6-7DjejuLu0Fh6gZUVOjCwQsQdP8NQ4,29846 +redis/multidb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +redis/multidb/__pycache__/__init__.cpython-311.pyc,, +redis/multidb/__pycache__/circuit.cpython-311.pyc,, +redis/multidb/__pycache__/client.cpython-311.pyc,, +redis/multidb/__pycache__/command_executor.cpython-311.pyc,, +redis/multidb/__pycache__/config.cpython-311.pyc,, +redis/multidb/__pycache__/database.cpython-311.pyc,, +redis/multidb/__pycache__/event.cpython-311.pyc,, +redis/multidb/__pycache__/exception.cpython-311.pyc,, +redis/multidb/__pycache__/failover.cpython-311.pyc,, +redis/multidb/__pycache__/failure_detector.cpython-311.pyc,, +redis/multidb/__pycache__/healthcheck.cpython-311.pyc,, +redis/multidb/circuit.py,sha256=M3VHfRfIzIIDrrYURi-qy4d-IgK44mBq8E03aWhTXtM,3856 +redis/multidb/client.py,sha256=zyBmrqTfKstiAdgdNLjObR9fL-svDsSFF-qCDTT1mOI,18270 +redis/multidb/command_executor.py,sha256=PBD4jyeHaaXuNhqTGmPX4r-Hew8GuOFhXylZUXEuop8,11840 +redis/multidb/config.py,sha256=OiLj0ypmRhe7U2U7kB9_Zw2VSEhxUMYTQSlC7f5hHco,8634 +redis/multidb/database.py,sha256=QIVvGtUy4j1_Ruq5iLl1tCEF1EnA4InlyZVcvBh3yQY,3569 +redis/multidb/event.py,sha256=91-8eBGXM5vD_YpQg4lqVHQBf4ZnPnHj-xdZmxft5LI,2978 +redis/multidb/exception.py,sha256=7HeVb1S_guotBW2CXEhCP_dBa6ETAnOVrbMEy0EQ6NE,513 +redis/multidb/failover.py,sha256=gpbfojRrUiHEedyeJpfruU3qTS01PUSqrVx8ACCDduU,3575 +redis/multidb/failure_detector.py,sha256=rhssP3V9ptn0fuhM-HwNguKcMYABEHex9LRueoDIIok,3818 +redis/multidb/healthcheck.py,sha256=WskDIR-iJNk5GW2jL4ppOr0lnIP_GAzB5jk9iKn232k,10025 +redis/ocsp.py,sha256=teYSmKnCtk6B3jJLdNYbZN4OE0mxgspt2zUPbkIQzio,11452 +redis/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +redis/retry.py,sha256=jPpy1bZteOtfScsiXT9DBjxPSdtxdQQNZsuPfWClDFA,3611 +redis/sentinel.py,sha256=DP1XtO1HRemZMamC1TFHg_hBJRv9eoQgTMlZfPYRUo8,15013 +redis/typing.py,sha256=z5JQjGkNzejEzb2y7TXct7tS5yzAfLQod9o37Mh1_Ug,1953 +redis/utils.py,sha256=pQRIgPrfNU3za2A5sBYtkW8CrMv9Q-eZclavmX0D5q8,9247 diff --git a/venv/lib/python3.11/site-packages/redis-7.0.1.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/redis-7.0.1.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/redis-7.0.1.dist-info/WHEEL b/venv/lib/python3.11/site-packages/redis-7.0.1.dist-info/WHEEL new file mode 100644 index 0000000..12228d4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/redis-7.0.1.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: hatchling 1.27.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/redis-7.0.1.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/redis-7.0.1.dist-info/licenses/LICENSE new file mode 100644 index 0000000..8509ccd --- /dev/null +++ b/venv/lib/python3.11/site-packages/redis-7.0.1.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022-2023, Redis, inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/requests-2.32.5.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/requests-2.32.5.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/requests-2.32.5.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/requests-2.32.5.dist-info/METADATA b/venv/lib/python3.11/site-packages/requests-2.32.5.dist-info/METADATA new file mode 100644 index 0000000..b31773e --- /dev/null +++ b/venv/lib/python3.11/site-packages/requests-2.32.5.dist-info/METADATA @@ -0,0 +1,133 @@ +Metadata-Version: 2.4 +Name: requests +Version: 2.32.5 +Summary: Python HTTP for Humans. +Home-page: https://requests.readthedocs.io +Author: Kenneth Reitz +Author-email: me@kennethreitz.org +License: Apache-2.0 +Project-URL: Documentation, https://requests.readthedocs.io +Project-URL: Source, https://github.com/psf/requests +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Natural Language :: English +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Internet :: WWW/HTTP +Classifier: Topic :: Software Development :: Libraries +Requires-Python: >=3.9 +Description-Content-Type: text/markdown +License-File: LICENSE +Requires-Dist: charset_normalizer<4,>=2 +Requires-Dist: idna<4,>=2.5 +Requires-Dist: urllib3<3,>=1.21.1 +Requires-Dist: certifi>=2017.4.17 +Provides-Extra: security +Provides-Extra: socks +Requires-Dist: PySocks!=1.5.7,>=1.5.6; extra == "socks" +Provides-Extra: use-chardet-on-py3 +Requires-Dist: chardet<6,>=3.0.2; extra == "use-chardet-on-py3" +Dynamic: author +Dynamic: author-email +Dynamic: classifier +Dynamic: description +Dynamic: description-content-type +Dynamic: home-page +Dynamic: license +Dynamic: license-file +Dynamic: project-url +Dynamic: provides-extra +Dynamic: requires-dist +Dynamic: requires-python +Dynamic: summary + +# Requests + +**Requests** is a simple, yet elegant, HTTP library. + +```python +>>> import requests +>>> r = requests.get('https://httpbin.org/basic-auth/user/pass', auth=('user', 'pass')) +>>> r.status_code +200 +>>> r.headers['content-type'] +'application/json; charset=utf8' +>>> r.encoding +'utf-8' +>>> r.text +'{"authenticated": true, ...' +>>> r.json() +{'authenticated': True, ...} +``` + +Requests allows you to send HTTP/1.1 requests extremely easily. There’s no need to manually add query strings to your URLs, or to form-encode your `PUT` & `POST` data — but nowadays, just use the `json` method! + +Requests is one of the most downloaded Python packages today, pulling in around `30M downloads / week`— according to GitHub, Requests is currently [depended upon](https://github.com/psf/requests/network/dependents?package_id=UGFja2FnZS01NzA4OTExNg%3D%3D) by `1,000,000+` repositories. You may certainly put your trust in this code. + +[![Downloads](https://static.pepy.tech/badge/requests/month)](https://pepy.tech/project/requests) +[![Supported Versions](https://img.shields.io/pypi/pyversions/requests.svg)](https://pypi.org/project/requests) +[![Contributors](https://img.shields.io/github/contributors/psf/requests.svg)](https://github.com/psf/requests/graphs/contributors) + +## Installing Requests and Supported Versions + +Requests is available on PyPI: + +```console +$ python -m pip install requests +``` + +Requests officially supports Python 3.9+. + +## Supported Features & Best–Practices + +Requests is ready for the demands of building robust and reliable HTTP–speaking applications, for the needs of today. + +- Keep-Alive & Connection Pooling +- International Domains and URLs +- Sessions with Cookie Persistence +- Browser-style TLS/SSL Verification +- Basic & Digest Authentication +- Familiar `dict`–like Cookies +- Automatic Content Decompression and Decoding +- Multi-part File Uploads +- SOCKS Proxy Support +- Connection Timeouts +- Streaming Downloads +- Automatic honoring of `.netrc` +- Chunked HTTP Requests + +## API Reference and User Guide available on [Read the Docs](https://requests.readthedocs.io) + +[![Read the Docs](https://raw.githubusercontent.com/psf/requests/main/ext/ss.png)](https://requests.readthedocs.io) + +## Cloning the repository + +When cloning the Requests repository, you may need to add the `-c +fetch.fsck.badTimezone=ignore` flag to avoid an error about a bad commit timestamp (see +[this issue](https://github.com/psf/requests/issues/2690) for more background): + +```shell +git clone -c fetch.fsck.badTimezone=ignore https://github.com/psf/requests.git +``` + +You can also apply this setting to your global Git config: + +```shell +git config --global fetch.fsck.badTimezone ignore +``` + +--- + +[![Kenneth Reitz](https://raw.githubusercontent.com/psf/requests/main/ext/kr.png)](https://kennethreitz.org) [![Python Software Foundation](https://raw.githubusercontent.com/psf/requests/main/ext/psf.png)](https://www.python.org/psf) diff --git a/venv/lib/python3.11/site-packages/requests-2.32.5.dist-info/RECORD b/venv/lib/python3.11/site-packages/requests-2.32.5.dist-info/RECORD new file mode 100644 index 0000000..3fb38f4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/requests-2.32.5.dist-info/RECORD @@ -0,0 +1,42 @@ +requests-2.32.5.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +requests-2.32.5.dist-info/METADATA,sha256=ZbWgjagfSRVRPnYJZf8Ut1GPZbe7Pv4NqzZLvMTUDLA,4945 +requests-2.32.5.dist-info/RECORD,, +requests-2.32.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91 +requests-2.32.5.dist-info/licenses/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142 +requests-2.32.5.dist-info/top_level.txt,sha256=fMSVmHfb5rbGOo6xv-O_tUX6j-WyixssE-SnwcDRxNQ,9 +requests/__init__.py,sha256=4xaAERmPDIBPsa2PsjpU9r06yooK-2mZKHTZAhWRWts,5072 +requests/__pycache__/__init__.cpython-311.pyc,, +requests/__pycache__/__version__.cpython-311.pyc,, +requests/__pycache__/_internal_utils.cpython-311.pyc,, +requests/__pycache__/adapters.cpython-311.pyc,, +requests/__pycache__/api.cpython-311.pyc,, +requests/__pycache__/auth.cpython-311.pyc,, +requests/__pycache__/certs.cpython-311.pyc,, +requests/__pycache__/compat.cpython-311.pyc,, +requests/__pycache__/cookies.cpython-311.pyc,, +requests/__pycache__/exceptions.cpython-311.pyc,, +requests/__pycache__/help.cpython-311.pyc,, +requests/__pycache__/hooks.cpython-311.pyc,, +requests/__pycache__/models.cpython-311.pyc,, +requests/__pycache__/packages.cpython-311.pyc,, +requests/__pycache__/sessions.cpython-311.pyc,, +requests/__pycache__/status_codes.cpython-311.pyc,, +requests/__pycache__/structures.cpython-311.pyc,, +requests/__pycache__/utils.cpython-311.pyc,, +requests/__version__.py,sha256=QKDceK8K_ujqwDDc3oYrR0odOBYgKVOQQ5vFap_G_cg,435 +requests/_internal_utils.py,sha256=nMQymr4hs32TqVo5AbCrmcJEhvPUh7xXlluyqwslLiQ,1495 +requests/adapters.py,sha256=8nX113gbb123aUtx2ETkAN_6IsYX-M2fRoLGluTEcRk,26285 +requests/api.py,sha256=_Zb9Oa7tzVIizTKwFrPjDEY9ejtm_OnSRERnADxGsQs,6449 +requests/auth.py,sha256=kF75tqnLctZ9Mf_hm9TZIj4cQWnN5uxRz8oWsx5wmR0,10186 +requests/certs.py,sha256=Z9Sb410Anv6jUFTyss0jFFhU6xst8ctELqfy8Ev23gw,429 +requests/compat.py,sha256=J7sIjR6XoDGp5JTVzOxkK5fSoUVUa_Pjc7iRZhAWGmI,2142 +requests/cookies.py,sha256=bNi-iqEj4NPZ00-ob-rHvzkvObzN3lEpgw3g6paS3Xw,18590 +requests/exceptions.py,sha256=jJPS1UWATs86ShVUaLorTiJb1SaGuoNEWgICJep-VkY,4260 +requests/help.py,sha256=gPX5d_H7Xd88aDABejhqGgl9B1VFRTt5BmiYvL3PzIQ,3875 +requests/hooks.py,sha256=CiuysiHA39V5UfcCBXFIx83IrDpuwfN9RcTUgv28ftQ,733 +requests/models.py,sha256=MjZdZ4k7tnw-1nz5PKShjmPmqyk0L6DciwnFngb_Vk4,35510 +requests/packages.py,sha256=_g0gZ681UyAlKHRjH6kanbaoxx2eAb6qzcXiODyTIoc,904 +requests/sessions.py,sha256=Cl1dpEnOfwrzzPbku-emepNeN4Rt_0_58Iy2x-JGTm8,30503 +requests/status_codes.py,sha256=iJUAeA25baTdw-6PfD0eF4qhpINDJRJI-yaMqxs4LEI,4322 +requests/structures.py,sha256=-IbmhVz06S-5aPSZuUthZ6-6D9XOjRuTXHOabY041XM,2912 +requests/utils.py,sha256=WqU86rZ3wvhC-tQjWcjtH_HEKZwWB3iWCZV6SW5DEdQ,33213 diff --git a/venv/lib/python3.11/site-packages/requests-2.32.5.dist-info/WHEEL b/venv/lib/python3.11/site-packages/requests-2.32.5.dist-info/WHEEL new file mode 100644 index 0000000..e7fa31b --- /dev/null +++ b/venv/lib/python3.11/site-packages/requests-2.32.5.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.11/site-packages/requests-2.32.5.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/requests-2.32.5.dist-info/licenses/LICENSE new file mode 100644 index 0000000..67db858 --- /dev/null +++ b/venv/lib/python3.11/site-packages/requests-2.32.5.dist-info/licenses/LICENSE @@ -0,0 +1,175 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. diff --git a/venv/lib/python3.11/site-packages/requests-2.32.5.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/requests-2.32.5.dist-info/top_level.txt new file mode 100644 index 0000000..f229360 --- /dev/null +++ b/venv/lib/python3.11/site-packages/requests-2.32.5.dist-info/top_level.txt @@ -0,0 +1 @@ +requests diff --git a/venv/lib/python3.11/site-packages/scipy-1.16.3.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/scipy-1.16.3.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/scipy-1.16.3.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/scipy-1.16.3.dist-info/LICENSE.txt b/venv/lib/python3.11/site-packages/scipy-1.16.3.dist-info/LICENSE.txt new file mode 100644 index 0000000..189ca42 --- /dev/null +++ b/venv/lib/python3.11/site-packages/scipy-1.16.3.dist-info/LICENSE.txt @@ -0,0 +1,934 @@ +Copyright (c) 2001-2002 Enthought, Inc. 2003, SciPy Developers. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---- + +This binary distribution of SciPy can also bundle the following software +(depending on the build): + + +Name: OpenBLAS +Files: scipy.libs/libscipy_openblas*.so +Description: bundled as a dynamically linked library +Availability: https://github.com/OpenMathLib/OpenBLAS/ +License: BSD-3-Clause + Copyright (c) 2011-2014, The OpenBLAS Project + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + 3. Neither the name of the OpenBLAS project nor the names of + its contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +Name: LAPACK +Files: scipy.libs/libscipy_openblas*.so +Description: bundled in OpenBLAS +Availability: https://github.com/OpenMathLib/OpenBLAS/ +License: BSD-3-Clause-Open-MPI + Copyright (c) 1992-2013 The University of Tennessee and The University + of Tennessee Research Foundation. All rights + reserved. + Copyright (c) 2000-2013 The University of California Berkeley. All + rights reserved. + Copyright (c) 2006-2013 The University of Colorado Denver. All rights + reserved. + + $COPYRIGHT$ + + Additional copyrights may follow + + $HEADER$ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer listed + in this license in the documentation and/or other materials + provided with the distribution. + + - Neither the name of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + The copyright holders provide no reassurances that the source code + provided does not infringe any patent, copyright, or any other + intellectual property rights of third parties. The copyright holders + disclaim any liability to any recipient for claims brought against + recipient by any third party for infringement of that parties + intellectual property rights. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +Name: GCC runtime library +Files: scipy.libs/libgfortran*.so +Description: dynamically linked to files compiled with gcc +Availability: https://gcc.gnu.org/git/?p=gcc.git;a=tree;f=libgfortran +License: GPL-3.0-or-later WITH GCC-exception-3.1 + Copyright (C) 2002-2017 Free Software Foundation, Inc. + + Libgfortran is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + Libgfortran is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Under Section 7 of GPL version 3, you are granted additional + permissions described in the GCC Runtime Library Exception, version + 3.1, as published by the Free Software Foundation. + + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . + +---- + +Full text of license texts referred to above follows (that they are +listed below does not necessarily imply the conditions apply to the +present binary release): + +---- + +GCC RUNTIME LIBRARY EXCEPTION + +Version 3.1, 31 March 2009 + +Copyright (C) 2009 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +This GCC Runtime Library Exception ("Exception") is an additional +permission under section 7 of the GNU General Public License, version +3 ("GPLv3"). It applies to a given file (the "Runtime Library") that +bears a notice placed by the copyright holder of the file stating that +the file is governed by GPLv3 along with this Exception. + +When you use GCC to compile a program, GCC may combine portions of +certain GCC header files and runtime libraries with the compiled +program. The purpose of this Exception is to allow compilation of +non-GPL (including proprietary) programs to use, in this way, the +header files and runtime libraries covered by this Exception. + +0. Definitions. + +A file is an "Independent Module" if it either requires the Runtime +Library for execution after a Compilation Process, or makes use of an +interface provided by the Runtime Library, but is not otherwise based +on the Runtime Library. + +"GCC" means a version of the GNU Compiler Collection, with or without +modifications, governed by version 3 (or a specified later version) of +the GNU General Public License (GPL) with the option of using any +subsequent versions published by the FSF. + +"GPL-compatible Software" is software whose conditions of propagation, +modification and use would permit combination with GCC in accord with +the license of GCC. + +"Target Code" refers to output from any compiler for a real or virtual +target processor architecture, in executable form or suitable for +input to an assembler, loader, linker and/or execution +phase. Notwithstanding that, Target Code does not include data in any +format that is used as a compiler intermediate representation, or used +for producing a compiler intermediate representation. + +The "Compilation Process" transforms code entirely represented in +non-intermediate languages designed for human-written code, and/or in +Java Virtual Machine byte code, into Target Code. Thus, for example, +use of source code generators and preprocessors need not be considered +part of the Compilation Process, since the Compilation Process can be +understood as starting with the output of the generators or +preprocessors. + +A Compilation Process is "Eligible" if it is done using GCC, alone or +with other GPL-compatible software, or if it is done without using any +work based on GCC. For example, using non-GPL-compatible Software to +optimize any GCC intermediate representations would not qualify as an +Eligible Compilation Process. + +1. Grant of Additional Permission. + +You have permission to propagate a work of Target Code formed by +combining the Runtime Library with Independent Modules, even if such +propagation would otherwise violate the terms of GPLv3, provided that +all Target Code was generated by Eligible Compilation Processes. You +may then convey such a combination under terms of your choice, +consistent with the licensing of the Independent Modules. + +2. No Weakening of GCC Copyleft. + +The availability of this Exception does not imply any general +presumption that third-party software is unaffected by the copyleft +requirements of the license of GCC. + +---- + + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. + + +Name: libquadmath +Files: scipy.libs/libquadmath*.so +Description: dynamically linked to files compiled with gcc +Availability: https://gcc.gnu.org/git/?p=gcc.git;a=tree;f=libquadmath +License: LGPL-2.1-or-later + + GCC Quad-Precision Math Library + Copyright (C) 2010-2019 Free Software Foundation, Inc. + Written by Francois-Xavier Coudert + + This file is part of the libquadmath library. + Libquadmath is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + Libquadmath is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html diff --git a/venv/lib/python3.11/site-packages/scipy-1.16.3.dist-info/METADATA b/venv/lib/python3.11/site-packages/scipy-1.16.3.dist-info/METADATA new file mode 100644 index 0000000..bf2d7f7 --- /dev/null +++ b/venv/lib/python3.11/site-packages/scipy-1.16.3.dist-info/METADATA @@ -0,0 +1,1083 @@ +Metadata-Version: 2.1 +Name: scipy +Version: 1.16.3 +Summary: Fundamental algorithms for scientific computing in Python +Maintainer-Email: SciPy Developers +License: Copyright (c) 2001-2002 Enthought, Inc. 2003, SciPy Developers. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + 3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ---- + + This binary distribution of SciPy can also bundle the following software + (depending on the build): + + + Name: OpenBLAS + Files: scipy.libs/libscipy_openblas*.so + Description: bundled as a dynamically linked library + Availability: https://github.com/OpenMathLib/OpenBLAS/ + License: BSD-3-Clause + Copyright (c) 2011-2014, The OpenBLAS Project + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + 3. Neither the name of the OpenBLAS project nor the names of + its contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + Name: LAPACK + Files: scipy.libs/libscipy_openblas*.so + Description: bundled in OpenBLAS + Availability: https://github.com/OpenMathLib/OpenBLAS/ + License: BSD-3-Clause-Open-MPI + Copyright (c) 1992-2013 The University of Tennessee and The University + of Tennessee Research Foundation. All rights + reserved. + Copyright (c) 2000-2013 The University of California Berkeley. All + rights reserved. + Copyright (c) 2006-2013 The University of Colorado Denver. All rights + reserved. + + $COPYRIGHT$ + + Additional copyrights may follow + + $HEADER$ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer listed + in this license in the documentation and/or other materials + provided with the distribution. + + - Neither the name of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + The copyright holders provide no reassurances that the source code + provided does not infringe any patent, copyright, or any other + intellectual property rights of third parties. The copyright holders + disclaim any liability to any recipient for claims brought against + recipient by any third party for infringement of that parties + intellectual property rights. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + Name: GCC runtime library + Files: scipy.libs/libgfortran*.so + Description: dynamically linked to files compiled with gcc + Availability: https://gcc.gnu.org/git/?p=gcc.git;a=tree;f=libgfortran + License: GPL-3.0-or-later WITH GCC-exception-3.1 + Copyright (C) 2002-2017 Free Software Foundation, Inc. + + Libgfortran is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + Libgfortran is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Under Section 7 of GPL version 3, you are granted additional + permissions described in the GCC Runtime Library Exception, version + 3.1, as published by the Free Software Foundation. + + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . + + ---- + + Full text of license texts referred to above follows (that they are + listed below does not necessarily imply the conditions apply to the + present binary release): + + ---- + + GCC RUNTIME LIBRARY EXCEPTION + + Version 3.1, 31 March 2009 + + Copyright (C) 2009 Free Software Foundation, Inc. + + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. + + This GCC Runtime Library Exception ("Exception") is an additional + permission under section 7 of the GNU General Public License, version + 3 ("GPLv3"). It applies to a given file (the "Runtime Library") that + bears a notice placed by the copyright holder of the file stating that + the file is governed by GPLv3 along with this Exception. + + When you use GCC to compile a program, GCC may combine portions of + certain GCC header files and runtime libraries with the compiled + program. The purpose of this Exception is to allow compilation of + non-GPL (including proprietary) programs to use, in this way, the + header files and runtime libraries covered by this Exception. + + 0. Definitions. + + A file is an "Independent Module" if it either requires the Runtime + Library for execution after a Compilation Process, or makes use of an + interface provided by the Runtime Library, but is not otherwise based + on the Runtime Library. + + "GCC" means a version of the GNU Compiler Collection, with or without + modifications, governed by version 3 (or a specified later version) of + the GNU General Public License (GPL) with the option of using any + subsequent versions published by the FSF. + + "GPL-compatible Software" is software whose conditions of propagation, + modification and use would permit combination with GCC in accord with + the license of GCC. + + "Target Code" refers to output from any compiler for a real or virtual + target processor architecture, in executable form or suitable for + input to an assembler, loader, linker and/or execution + phase. Notwithstanding that, Target Code does not include data in any + format that is used as a compiler intermediate representation, or used + for producing a compiler intermediate representation. + + The "Compilation Process" transforms code entirely represented in + non-intermediate languages designed for human-written code, and/or in + Java Virtual Machine byte code, into Target Code. Thus, for example, + use of source code generators and preprocessors need not be considered + part of the Compilation Process, since the Compilation Process can be + understood as starting with the output of the generators or + preprocessors. + + A Compilation Process is "Eligible" if it is done using GCC, alone or + with other GPL-compatible software, or if it is done without using any + work based on GCC. For example, using non-GPL-compatible Software to + optimize any GCC intermediate representations would not qualify as an + Eligible Compilation Process. + + 1. Grant of Additional Permission. + + You have permission to propagate a work of Target Code formed by + combining the Runtime Library with Independent Modules, even if such + propagation would otherwise violate the terms of GPLv3, provided that + all Target Code was generated by Eligible Compilation Processes. You + may then convey such a combination under terms of your choice, + consistent with the licensing of the Independent Modules. + + 2. No Weakening of GCC Copyleft. + + The availability of this Exception does not imply any general + presumption that third-party software is unaffected by the copyleft + requirements of the license of GCC. + + ---- + + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for + software and other kinds of works. + + The licenses for most software and other practical works are designed + to take away your freedom to share and change the works. By contrast, + the GNU General Public License is intended to guarantee your freedom to + share and change all versions of a program--to make sure it remains free + software for all its users. We, the Free Software Foundation, use the + GNU General Public License for most of our software; it applies also to + any other work released this way by its authors. You can apply it to + your programs, too. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + them if you wish), that you receive source code or can get it if you + want it, that you can change the software or use pieces of it in new + free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you + these rights or asking you to surrender the rights. Therefore, you have + certain responsibilities if you distribute copies of the software, or if + you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether + gratis or for a fee, you must pass on to the recipients the same + freedoms that you received. You must make sure that they, too, receive + or can get the source code. And you must show them these terms so they + know their rights. + + Developers that use the GNU GPL protect your rights with two steps: + (1) assert copyright on the software, and (2) offer you this License + giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains + that there is no warranty for this free software. For both users' and + authors' sake, the GPL requires that modified versions be marked as + changed, so that their problems will not be attributed erroneously to + authors of previous versions. + + Some devices are designed to deny users access to install or run + modified versions of the software inside them, although the manufacturer + can do so. This is fundamentally incompatible with the aim of + protecting users' freedom to change the software. The systematic + pattern of such abuse occurs in the area of products for individuals to + use, which is precisely where it is most unacceptable. Therefore, we + have designed this version of the GPL to prohibit the practice for those + products. If such problems arise substantially in other domains, we + stand ready to extend this provision to those domains in future versions + of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. + States should not allow patents to restrict development and use of + software on general-purpose computers, but in those that do, we wish to + avoid the special danger that patents applied to a free program could + make it effectively proprietary. To prevent this, the GPL assures that + patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and + modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of + works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this + License. Each licensee is addressed as "you". "Licensees" and + "recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work + in a fashion requiring copyright permission, other than the making of an + exact copy. The resulting work is called a "modified version" of the + earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based + on the Program. + + To "propagate" a work means to do anything with it that, without + permission, would make you directly or secondarily liable for + infringement under applicable copyright law, except executing it on a + computer or modifying a private copy. Propagation includes copying, + distribution (with or without modification), making available to the + public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other + parties to make or receive copies. Mere interaction with a user through + a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" + to the extent that it includes a convenient and prominently visible + feature that (1) displays an appropriate copyright notice, and (2) + tells the user that there is no warranty for the work (except to the + extent that warranties are provided), that licensees may convey the + work under this License, and how to view a copy of this License. If + the interface presents a list of user commands or options, such as a + menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work + for making modifications to it. "Object code" means any non-source + form of a work. + + A "Standard Interface" means an interface that either is an official + standard defined by a recognized standards body, or, in the case of + interfaces specified for a particular programming language, one that + is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other + than the work as a whole, that (a) is included in the normal form of + packaging a Major Component, but which is not part of that Major + Component, and (b) serves only to enable use of the work with that + Major Component, or to implement a Standard Interface for which an + implementation is available to the public in source code form. A + "Major Component", in this context, means a major essential component + (kernel, window system, and so on) of the specific operating system + (if any) on which the executable work runs, or a compiler used to + produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all + the source code needed to generate, install, and (for an executable + work) run the object code and to modify the work, including scripts to + control those activities. However, it does not include the work's + System Libraries, or general-purpose tools or generally available free + programs which are used unmodified in performing those activities but + which are not part of the work. For example, Corresponding Source + includes interface definition files associated with source files for + the work, and the source code for shared libraries and dynamically + linked subprograms that the work is specifically designed to require, + such as by intimate data communication or control flow between those + subprograms and other parts of the work. + + The Corresponding Source need not include anything that users + can regenerate automatically from other parts of the Corresponding + Source. + + The Corresponding Source for a work in source code form is that + same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of + copyright on the Program, and are irrevocable provided the stated + conditions are met. This License explicitly affirms your unlimited + permission to run the unmodified Program. The output from running a + covered work is covered by this License only if the output, given its + content, constitutes a covered work. This License acknowledges your + rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not + convey, without conditions so long as your license otherwise remains + in force. You may convey covered works to others for the sole purpose + of having them make modifications exclusively for you, or provide you + with facilities for running those works, provided that you comply with + the terms of this License in conveying all material for which you do + not control copyright. Those thus making or running the covered works + for you must do so exclusively on your behalf, under your direction + and control, on terms that prohibit them from making any copies of + your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under + the conditions stated below. Sublicensing is not allowed; section 10 + makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological + measure under any applicable law fulfilling obligations under article + 11 of the WIPO copyright treaty adopted on 20 December 1996, or + similar laws prohibiting or restricting circumvention of such + measures. + + When you convey a covered work, you waive any legal power to forbid + circumvention of technological measures to the extent such circumvention + is effected by exercising rights under this License with respect to + the covered work, and you disclaim any intention to limit operation or + modification of the work as a means of enforcing, against the work's + users, your or third parties' legal rights to forbid circumvention of + technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you + receive it, in any medium, provided that you conspicuously and + appropriately publish on each copy an appropriate copyright notice; + keep intact all notices stating that this License and any + non-permissive terms added in accord with section 7 apply to the code; + keep intact all notices of the absence of any warranty; and give all + recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, + and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to + produce it from the Program, in the form of source code under the + terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent + works, which are not by their nature extensions of the covered work, + and which are not combined with it such as to form a larger program, + in or on a volume of a storage or distribution medium, is called an + "aggregate" if the compilation and its resulting copyright are not + used to limit the access or legal rights of the compilation's users + beyond what the individual works permit. Inclusion of a covered work + in an aggregate does not cause this License to apply to the other + parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms + of sections 4 and 5, provided that you also convey the + machine-readable Corresponding Source under the terms of this License, + in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded + from the Corresponding Source as a System Library, need not be + included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any + tangible personal property which is normally used for personal, family, + or household purposes, or (2) anything designed or sold for incorporation + into a dwelling. In determining whether a product is a consumer product, + doubtful cases shall be resolved in favor of coverage. For a particular + product received by a particular user, "normally used" refers to a + typical or common use of that class of product, regardless of the status + of the particular user or of the way in which the particular user + actually uses, or expects or is expected to use, the product. A product + is a consumer product regardless of whether the product has substantial + commercial, industrial or non-consumer uses, unless such uses represent + the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, + procedures, authorization keys, or other information required to install + and execute modified versions of a covered work in that User Product from + a modified version of its Corresponding Source. The information must + suffice to ensure that the continued functioning of the modified object + code is in no case prevented or interfered with solely because + modification has been made. + + If you convey an object code work under this section in, or with, or + specifically for use in, a User Product, and the conveying occurs as + part of a transaction in which the right of possession and use of the + User Product is transferred to the recipient in perpetuity or for a + fixed term (regardless of how the transaction is characterized), the + Corresponding Source conveyed under this section must be accompanied + by the Installation Information. But this requirement does not apply + if neither you nor any third party retains the ability to install + modified object code on the User Product (for example, the work has + been installed in ROM). + + The requirement to provide Installation Information does not include a + requirement to continue to provide support service, warranty, or updates + for a work that has been modified or installed by the recipient, or for + the User Product in which it has been modified or installed. Access to a + network may be denied when the modification itself materially and + adversely affects the operation of the network or violates the rules and + protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, + in accord with this section must be in a format that is publicly + documented (and with an implementation available to the public in + source code form), and must require no special password or key for + unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this + License by making exceptions from one or more of its conditions. + Additional permissions that are applicable to the entire Program shall + be treated as though they were included in this License, to the extent + that they are valid under applicable law. If additional permissions + apply only to part of the Program, that part may be used separately + under those permissions, but the entire Program remains governed by + this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option + remove any additional permissions from that copy, or from any part of + it. (Additional permissions may be written to require their own + removal in certain cases when you modify the work.) You may place + additional permissions on material, added by you to a covered work, + for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you + add to a covered work, you may (if authorized by the copyright holders of + that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further + restrictions" within the meaning of section 10. If the Program as you + received it, or any part of it, contains a notice stating that it is + governed by this License along with a term that is a further + restriction, you may remove that term. If a license document contains + a further restriction but permits relicensing or conveying under this + License, you may add to a covered work material governed by the terms + of that license document, provided that the further restriction does + not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you + must place, in the relevant source files, a statement of the + additional terms that apply to those files, or a notice indicating + where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the + form of a separately written license, or stated as exceptions; + the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly + provided under this License. Any attempt otherwise to propagate or + modify it is void, and will automatically terminate your rights under + this License (including any patent licenses granted under the third + paragraph of section 11). + + However, if you cease all violation of this License, then your + license from a particular copyright holder is reinstated (a) + provisionally, unless and until the copyright holder explicitly and + finally terminates your license, and (b) permanently, if the copyright + holder fails to notify you of the violation by some reasonable means + prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you have + received notice of violation of this License (for any work) from that + copyright holder, and you cure the violation prior to 30 days after + your receipt of the notice. + + Termination of your rights under this section does not terminate the + licenses of parties who have received copies or rights from you under + this License. If your rights have been terminated and not permanently + reinstated, you do not qualify to receive new licenses for the same + material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or + run a copy of the Program. Ancillary propagation of a covered work + occurring solely as a consequence of using peer-to-peer transmission + to receive a copy likewise does not require acceptance. However, + nothing other than this License grants you permission to propagate or + modify any covered work. These actions infringe copyright if you do + not accept this License. Therefore, by modifying or propagating a + covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically + receives a license from the original licensors, to run, modify and + propagate that work, subject to this License. You are not responsible + for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an + organization, or substantially all assets of one, or subdividing an + organization, or merging organizations. If propagation of a covered + work results from an entity transaction, each party to that + transaction who receives a copy of the work also receives whatever + licenses to the work the party's predecessor in interest had or could + give under the previous paragraph, plus a right to possession of the + Corresponding Source of the work from the predecessor in interest, if + the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the + rights granted or affirmed under this License. For example, you may + not impose a license fee, royalty, or other charge for exercise of + rights granted under this License, and you may not initiate litigation + (including a cross-claim or counterclaim in a lawsuit) alleging that + any patent claim is infringed by making, using, selling, offering for + sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this + License of the Program or a work on which the Program is based. The + work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims + owned or controlled by the contributor, whether already acquired or + hereafter acquired, that would be infringed by some manner, permitted + by this License, of making, using, or selling its contributor version, + but do not include claims that would be infringed only as a + consequence of further modification of the contributor version. For + purposes of this definition, "control" includes the right to grant + patent sublicenses in a manner consistent with the requirements of + this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free + patent license under the contributor's essential patent claims, to + make, use, sell, offer for sale, import and otherwise run, modify and + propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express + agreement or commitment, however denominated, not to enforce a patent + (such as an express permission to practice a patent or covenant not to + sue for patent infringement). To "grant" such a patent license to a + party means to make such an agreement or commitment not to enforce a + patent against the party. + + If you convey a covered work, knowingly relying on a patent license, + and the Corresponding Source of the work is not available for anyone + to copy, free of charge and under the terms of this License, through a + publicly available network server or other readily accessible means, + then you must either (1) cause the Corresponding Source to be so + available, or (2) arrange to deprive yourself of the benefit of the + patent license for this particular work, or (3) arrange, in a manner + consistent with the requirements of this License, to extend the patent + license to downstream recipients. "Knowingly relying" means you have + actual knowledge that, but for the patent license, your conveying the + covered work in a country, or your recipient's use of the covered work + in a country, would infringe one or more identifiable patents in that + country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or + arrangement, you convey, or propagate by procuring conveyance of, a + covered work, and grant a patent license to some of the parties + receiving the covered work authorizing them to use, propagate, modify + or convey a specific copy of the covered work, then the patent license + you grant is automatically extended to all recipients of the covered + work and works based on it. + + A patent license is "discriminatory" if it does not include within + the scope of its coverage, prohibits the exercise of, or is + conditioned on the non-exercise of one or more of the rights that are + specifically granted under this License. You may not convey a covered + work if you are a party to an arrangement with a third party that is + in the business of distributing software, under which you make payment + to the third party based on the extent of your activity of conveying + the work, and under which the third party grants, to any of the + parties who would receive the covered work from you, a discriminatory + patent license (a) in connection with copies of the covered work + conveyed by you (or copies made from those copies), or (b) primarily + for and in connection with specific products or compilations that + contain the covered work, unless you entered into that arrangement, + or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting + any implied license or other defenses to infringement that may + otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot convey a + covered work so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you may + not convey it at all. For example, if you agree to terms that obligate you + to collect a royalty for further conveying from those to whom you convey + the Program, the only way you could satisfy both those terms and this + License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have + permission to link or combine any covered work with a work licensed + under version 3 of the GNU Affero General Public License into a single + combined work, and to convey the resulting work. The terms of this + License will continue to apply to the part which is the covered work, + but the special requirements of the GNU Affero General Public License, + section 13, concerning interaction through a network will apply to the + combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of + the GNU General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the + Program specifies that a certain numbered version of the GNU General + Public License "or any later version" applies to it, you have the + option of following the terms and conditions either of that numbered + version or of any later version published by the Free Software + Foundation. If the Program does not specify a version number of the + GNU General Public License, you may choose any version ever published + by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future + versions of the GNU General Public License can be used, that proxy's + public statement of acceptance of a version permanently authorizes you + to choose that version for the Program. + + Later license versions may give you additional or different + permissions. However, no additional obligations are imposed on any + author or copyright holder as a result of your choosing to follow a + later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY + APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT + HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY + OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM + IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF + ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS + THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY + GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE + USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF + DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD + PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), + EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF + SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided + above cannot be given local legal effect according to their terms, + reviewing courts shall apply local law that most closely approximates + an absolute waiver of all civil liability in connection with the + Program, unless a warranty or assumption of liability accompanies a + copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + state the exclusion of warranty; and each file should have at least + the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + + Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short + notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + + The hypothetical commands `show w' and `show c' should show the appropriate + parts of the General Public License. Of course, your program's commands + might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, + if any, to sign a "copyright disclaimer" for the program, if necessary. + For more information on this, and how to apply and follow the GNU GPL, see + . + + The GNU General Public License does not permit incorporating your program + into proprietary programs. If your program is a subroutine library, you + may consider it more useful to permit linking proprietary applications with + the library. If this is what you want to do, use the GNU Lesser General + Public License instead of this License. But first, please read + . + + + Name: libquadmath + Files: scipy.libs/libquadmath*.so + Description: dynamically linked to files compiled with gcc + Availability: https://gcc.gnu.org/git/?p=gcc.git;a=tree;f=libquadmath + License: LGPL-2.1-or-later + + GCC Quad-Precision Math Library + Copyright (C) 2010-2019 Free Software Foundation, Inc. + Written by Francois-Xavier Coudert + + This file is part of the libquadmath library. + Libquadmath is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + Libquadmath is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Science/Research +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Programming Language :: C +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Topic :: Software Development :: Libraries +Classifier: Topic :: Scientific/Engineering +Classifier: Operating System :: Microsoft :: Windows +Classifier: Operating System :: POSIX :: Linux +Classifier: Operating System :: POSIX +Classifier: Operating System :: Unix +Classifier: Operating System :: MacOS +Project-URL: homepage, https://scipy.org/ +Project-URL: documentation, https://docs.scipy.org/doc/scipy/ +Project-URL: source, https://github.com/scipy/scipy +Project-URL: download, https://github.com/scipy/scipy/releases +Project-URL: tracker, https://github.com/scipy/scipy/issues +Requires-Python: >=3.11 +Requires-Dist: numpy<2.6,>=1.25.2 +Provides-Extra: test +Requires-Dist: pytest>=8.0.0; extra == "test" +Requires-Dist: pytest-cov; extra == "test" +Requires-Dist: pytest-timeout; extra == "test" +Requires-Dist: pytest-xdist; extra == "test" +Requires-Dist: asv; extra == "test" +Requires-Dist: mpmath; extra == "test" +Requires-Dist: gmpy2; extra == "test" +Requires-Dist: threadpoolctl; extra == "test" +Requires-Dist: scikit-umfpack; extra == "test" +Requires-Dist: pooch; extra == "test" +Requires-Dist: hypothesis>=6.30; extra == "test" +Requires-Dist: array-api-strict>=2.3.1; extra == "test" +Requires-Dist: Cython; extra == "test" +Requires-Dist: meson; extra == "test" +Requires-Dist: ninja; sys_platform != "emscripten" and extra == "test" +Provides-Extra: doc +Requires-Dist: sphinx<8.2.0,>=5.0.0; extra == "doc" +Requires-Dist: intersphinx_registry; extra == "doc" +Requires-Dist: pydata-sphinx-theme>=0.15.2; extra == "doc" +Requires-Dist: sphinx-copybutton; extra == "doc" +Requires-Dist: sphinx-design>=0.4.0; extra == "doc" +Requires-Dist: matplotlib>=3.5; extra == "doc" +Requires-Dist: numpydoc; extra == "doc" +Requires-Dist: jupytext; extra == "doc" +Requires-Dist: myst-nb>=1.2.0; extra == "doc" +Requires-Dist: pooch; extra == "doc" +Requires-Dist: jupyterlite-sphinx>=0.19.1; extra == "doc" +Requires-Dist: jupyterlite-pyodide-kernel; extra == "doc" +Requires-Dist: linkify-it-py; extra == "doc" +Provides-Extra: dev +Requires-Dist: mypy==1.10.0; extra == "dev" +Requires-Dist: typing_extensions; extra == "dev" +Requires-Dist: types-psutil; extra == "dev" +Requires-Dist: pycodestyle; extra == "dev" +Requires-Dist: ruff>=0.0.292; extra == "dev" +Requires-Dist: cython-lint>=0.12.2; extra == "dev" +Requires-Dist: rich-click; extra == "dev" +Requires-Dist: doit>=0.36.0; extra == "dev" +Requires-Dist: pydevtool; extra == "dev" +Description-Content-Type: text/x-rst + +.. image:: https://raw.githubusercontent.com/scipy/scipy/main/doc/source/_static/logo.svg + :target: https://scipy.org + :width: 110 + :height: 110 + :align: left + +.. image:: https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A + :target: https://numfocus.org + +.. image:: https://img.shields.io/pypi/dm/scipy.svg?label=Pypi%20downloads + :target: https://pypi.org/project/scipy/ + +.. image:: https://img.shields.io/conda/dn/conda-forge/scipy.svg?label=Conda%20downloads + :target: https://anaconda.org/conda-forge/scipy + +.. image:: https://img.shields.io/badge/stackoverflow-Ask%20questions-blue.svg + :target: https://stackoverflow.com/questions/tagged/scipy + +.. image:: https://img.shields.io/badge/DOI-10.1038%2Fs41592--019--0686--2-blue.svg + :target: https://www.nature.com/articles/s41592-019-0686-2 + +SciPy (pronounced "Sigh Pie") is an open-source software for mathematics, +science, and engineering. It includes modules for statistics, optimization, +integration, linear algebra, Fourier transforms, signal and image processing, +ODE solvers, and more. + +- **Website:** https://scipy.org +- **Documentation:** https://docs.scipy.org/doc/scipy/ +- **Development version of the documentation:** https://scipy.github.io/devdocs +- **SciPy development forum:** https://discuss.scientific-python.org/c/contributor/scipy +- **Stack Overflow:** https://stackoverflow.com/questions/tagged/scipy +- **Source code:** https://github.com/scipy/scipy +- **Contributing:** https://scipy.github.io/devdocs/dev/index.html +- **Bug reports:** https://github.com/scipy/scipy/issues +- **Code of Conduct:** https://docs.scipy.org/doc/scipy/dev/conduct/code_of_conduct.html +- **Report a security vulnerability:** https://tidelift.com/docs/security +- **Citing in your work:** https://www.scipy.org/citing-scipy/ + +SciPy is built to work with +NumPy arrays, and provides many user-friendly and efficient numerical routines, +such as routines for numerical integration and optimization. Together, they +run on all popular operating systems, are quick to install, and are free of +charge. NumPy and SciPy are easy to use, but powerful enough to be depended +upon by some of the world's leading scientists and engineers. If you need to +manipulate numbers on a computer and display or publish the results, give +SciPy a try! + +For the installation instructions, see `our install +guide `__. + + +Call for Contributions +---------------------- + +We appreciate and welcome contributions. Small improvements or fixes are always appreciated; issues labeled as "good +first issue" may be a good starting point. Have a look at `our contributing +guide `__. + +Writing code isn’t the only way to contribute to SciPy. You can also: + +- review pull requests +- triage issues +- develop tutorials, presentations, and other educational materials +- maintain and improve `our website `__ +- develop graphic design for our brand assets and promotional materials +- help with outreach and onboard new contributors +- write grant proposals and help with other fundraising efforts + +If you’re unsure where to start or how your skills fit in, reach out! You can +ask on the `forum `__ +or here, on GitHub, by leaving a comment on a relevant issue that is already +open. + +If you are new to contributing to open source, `this +guide `__ helps explain why, what, +and how to get involved. diff --git a/venv/lib/python3.11/site-packages/scipy-1.16.3.dist-info/RECORD b/venv/lib/python3.11/site-packages/scipy-1.16.3.dist-info/RECORD new file mode 100644 index 0000000..a92db1a --- /dev/null +++ b/venv/lib/python3.11/site-packages/scipy-1.16.3.dist-info/RECORD @@ -0,0 +1,2381 @@ +scipy-1.16.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +scipy-1.16.3.dist-info/LICENSE.txt,sha256=Ta8U43Qy5wJhZZeey3o5kwcHo-ib70h2z6-drTbtNko,46838 +scipy-1.16.3.dist-info/METADATA,sha256=pUYC0Kph-yWsAwsdew-vDIz-xQgpDU2CQZjWtDZH7Bs,62003 +scipy-1.16.3.dist-info/RECORD,, +scipy-1.16.3.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy-1.16.3.dist-info/WHEEL,sha256=6uXuBuTHKYVHX38njLnDjCYRk1Z5gwaXJtzFqt6LRKw,137 +scipy.libs/libgfortran-040039e1-0352e75f.so.5.0.0,sha256=xgkASOzMdjUiwS7wFvgdprYnyzoET1XPBHmoOcQcCYA,2833617 +scipy.libs/libgfortran-040039e1.so.5.0.0,sha256=FK-zEpsai1C8QKOwggx_EVLqm8EBIaqxUpQ_cFdHKIY,2686065 +scipy.libs/libquadmath-96973f99-934c22de.so.0.0.0,sha256=btUTf0Enga14Y0OftUNhP2ILQ8MrYykqACkkYWL1u8Y,250985 +scipy.libs/libquadmath-96973f99.so.0.0.0,sha256=k0wi3tDn0WnE1GeIdslgUa3z2UVF2pYvYLQWWbB12js,247609 +scipy.libs/libscipy_openblas-b75cc656.so,sha256=-nXJgAh8CBieMMDYEQqrlng-NmRCW6W_Mqc9c0X8jT0,24817849 +scipy/__config__.py,sha256=Ka6MZbIqqs6ulmelLJNDtt5AH-4HvL2BTEDZthrAmmg,5209 +scipy/__init__.py,sha256=pyQSpcYkQoduBzoB2hkQyEtyFNE4I4C3Goc7RwQg3Wg,4063 +scipy/__pycache__/__config__.cpython-311.pyc,, +scipy/__pycache__/__init__.cpython-311.pyc,, +scipy/__pycache__/_distributor_init.cpython-311.pyc,, +scipy/__pycache__/conftest.cpython-311.pyc,, +scipy/__pycache__/version.cpython-311.pyc,, +scipy/_cyutility.cpython-311-x86_64-linux-gnu.so,sha256=wANc4XHDkB6SR720CBj6yn-kM5zix_BDcjzeWQLWeWI,199536 +scipy/_distributor_init.py,sha256=zJThN3Fvof09h24804pNDPd2iN-lCHV3yPlZylSefgQ,611 +scipy/_lib/__init__.py,sha256=CXrH_YBpZ-HImHHrqXIhQt_vevp4P5NXClp7hnFMVLM,353 +scipy/_lib/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/__pycache__/_array_api.cpython-311.pyc,, +scipy/_lib/__pycache__/_array_api_compat_vendor.cpython-311.pyc,, +scipy/_lib/__pycache__/_array_api_no_0d.cpython-311.pyc,, +scipy/_lib/__pycache__/_bunch.cpython-311.pyc,, +scipy/_lib/__pycache__/_ccallback.cpython-311.pyc,, +scipy/_lib/__pycache__/_disjoint_set.cpython-311.pyc,, +scipy/_lib/__pycache__/_docscrape.cpython-311.pyc,, +scipy/_lib/__pycache__/_elementwise_iterative_method.cpython-311.pyc,, +scipy/_lib/__pycache__/_gcutils.cpython-311.pyc,, +scipy/_lib/__pycache__/_pep440.cpython-311.pyc,, +scipy/_lib/__pycache__/_sparse.cpython-311.pyc,, +scipy/_lib/__pycache__/_testutils.cpython-311.pyc,, +scipy/_lib/__pycache__/_threadsafety.cpython-311.pyc,, +scipy/_lib/__pycache__/_tmpdirs.cpython-311.pyc,, +scipy/_lib/__pycache__/_util.cpython-311.pyc,, +scipy/_lib/__pycache__/decorator.cpython-311.pyc,, +scipy/_lib/__pycache__/deprecation.cpython-311.pyc,, +scipy/_lib/__pycache__/doccer.cpython-311.pyc,, +scipy/_lib/__pycache__/uarray.cpython-311.pyc,, +scipy/_lib/_array_api.py,sha256=oG1O6R_3DoFSaA2ZevUGoSaNtDXJMLVijiZ-KZn2LHQ,34594 +scipy/_lib/_array_api_compat_vendor.py,sha256=H8MxZuHSs4TtWXgfEUs0_y0BQy57j6rX330DVashpZ4,393 +scipy/_lib/_array_api_no_0d.py,sha256=zVB7D070dZ9Rc-7mXvlkqpv75TgcvCy_7PL0q6yZsbg,4453 +scipy/_lib/_bunch.py,sha256=KV-kCN6lXFOp7HSiiVGSmDSwzKUITtuy8WWnO_rWLRo,8305 +scipy/_lib/_ccallback.py,sha256=N9CO7kJYzk6IWQR5LHf_YA1-Oq48R38UIhJFIlJ2Qyc,7087 +scipy/_lib/_ccallback_c.cpython-311-x86_64-linux-gnu.so,sha256=FAMaMmT-dWW6HbQTmNkQWdcRZGYxRxnAOWZDbWUsYv8,103160 +scipy/_lib/_disjoint_set.py,sha256=o_EUHZwnnI1m8nitEf8bSkF7TWZ65RSiklBN4daFruA,6160 +scipy/_lib/_docscrape.py,sha256=Jm2QPPIqNiAgKqoR5fX0P-bsBofYAtJhHbX2h1A63j0,23807 +scipy/_lib/_elementwise_iterative_method.py,sha256=fC1ou8u6XHCpMnTRKsqwyP5_zW0gDu0TzGqw-nqWEAU,15023 +scipy/_lib/_fpumode.cpython-311-x86_64-linux-gnu.so,sha256=Kk1mpVY1lns4OpLjvNrW4B9W-nLAOgt6nH-0O5oSRTg,16400 +scipy/_lib/_gcutils.py,sha256=hajQd-HUw9ckK7QeBaqXVRpmnxPgyXO3QqqniEh7tRk,2669 +scipy/_lib/_pep440.py,sha256=vo3nxbfjtMfGq1ektYzHIzRbj8W-NHOMp5WBRjPlDTg,14005 +scipy/_lib/_sparse.py,sha256=Ifbhhdja4dpNNpsaO0VcjgRPcw2hqqHXOBF9eXRGsbE,875 +scipy/_lib/_test_ccallback.cpython-311-x86_64-linux-gnu.so,sha256=eVlhBo8MscWcnGS1WVQPtb6AsCXBqJhfY90wuHv2XTM,23232 +scipy/_lib/_test_deprecation_call.cpython-311-x86_64-linux-gnu.so,sha256=AzaRSxlaChOY25agIK2St1_sipmjGelcFqOBq10K-tQ,45720 +scipy/_lib/_test_deprecation_def.cpython-311-x86_64-linux-gnu.so,sha256=d8DYyhFmsc9esIKHIlYtQfGRRkKyC3DwjKafvVk200k,29920 +scipy/_lib/_testutils.py,sha256=qIz1sYnGCQfIDumEHDYDoQdMTHXlY40-DqVfI9hg7qk,12279 +scipy/_lib/_threadsafety.py,sha256=ttPEh64SKLjhQGZIYSm_9d5bW4cjAXoRZCA_a5-nK9M,1453 +scipy/_lib/_tmpdirs.py,sha256=z3IYpzACnWdN_BMjOvqYbkTvYyUbfbQvfehq7idENSo,2374 +scipy/_lib/_uarray/LICENSE,sha256=yAw5tfzga6SJfhTgsKiLVEWDNNlR6xNhQC_60s-4Y7Q,1514 +scipy/_lib/_uarray/__init__.py,sha256=Rww7wLA7FH6Yong7oMgl_sHPpjcRslRaTjh61W_xVg4,4493 +scipy/_lib/_uarray/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/_uarray/__pycache__/_backend.cpython-311.pyc,, +scipy/_lib/_uarray/_backend.py,sha256=LZnSLJ2UK209jrMtocOMoc5grlNoob3tbb1HbW0XlAQ,20531 +scipy/_lib/_uarray/_uarray.cpython-311-x86_64-linux-gnu.so,sha256=0ygxBShnJ6oQAimzAdOcnpUTI4p6oDIvEBAkQatJjqs,178064 +scipy/_lib/_util.py,sha256=qrQ-N06dMtI8ezp6SpCcsB5G2Lqmxdn7aZ55AA6q388,49070 +scipy/_lib/array_api_compat/__init__.py,sha256=zk6TZdJLBzT7Td3TKbCkYA1KIxKOsa-CKqDn0JCUq2I,992 +scipy/_lib/array_api_compat/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/array_api_compat/__pycache__/_internal.cpython-311.pyc,, +scipy/_lib/array_api_compat/_internal.py,sha256=pfbMacXgxBaLmhueWE54mtXrbBdxyLd2Gc7dHrxYtGk,1412 +scipy/_lib/array_api_compat/common/__init__.py,sha256=4IcMWP5rARLYe2_pgXDWEuj2YpM0c1G6Pb5pkbQ0QS8,38 +scipy/_lib/array_api_compat/common/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/array_api_compat/common/__pycache__/_aliases.cpython-311.pyc,, +scipy/_lib/array_api_compat/common/__pycache__/_fft.cpython-311.pyc,, +scipy/_lib/array_api_compat/common/__pycache__/_helpers.cpython-311.pyc,, +scipy/_lib/array_api_compat/common/__pycache__/_linalg.cpython-311.pyc,, +scipy/_lib/array_api_compat/common/__pycache__/_typing.cpython-311.pyc,, +scipy/_lib/array_api_compat/common/_aliases.py,sha256=xvZcAGCBbbujmjh76EvaYDzgPfQhaHK8QH--CQI906U,19644 +scipy/_lib/array_api_compat/common/_fft.py,sha256=ckCR2uHtz0iaOkcuvqVunhz1khIdxQNKuVU0x1bfrq8,4669 +scipy/_lib/array_api_compat/common/_helpers.py,sha256=zIz2QmS4LEI-aT05xMzXTgZ6Y6aULKbxlZxWa_R-lb4,31586 +scipy/_lib/array_api_compat/common/_linalg.py,sha256=Wdf0FzzxJNEiGhOOsQKg8PnMusM3fVeN5CA4RBItF_Y,6856 +scipy/_lib/array_api_compat/common/_typing.py,sha256=Z5N8fYR_54UorD4IXFdOOigqYRDp6mNa-iA7703PKf4,4358 +scipy/_lib/array_api_compat/cupy/__init__.py,sha256=8KfEs6ULcXuZ4AUKBD_7L3XZfW8TOQayZPerR_YLeSI,390 +scipy/_lib/array_api_compat/cupy/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/array_api_compat/cupy/__pycache__/_aliases.cpython-311.pyc,, +scipy/_lib/array_api_compat/cupy/__pycache__/_info.cpython-311.pyc,, +scipy/_lib/array_api_compat/cupy/__pycache__/_typing.cpython-311.pyc,, +scipy/_lib/array_api_compat/cupy/__pycache__/fft.cpython-311.pyc,, +scipy/_lib/array_api_compat/cupy/__pycache__/linalg.cpython-311.pyc,, +scipy/_lib/array_api_compat/cupy/_aliases.py,sha256=OgOoVRk-TI9t0hCsI82VLkebkZRdN7aXjamWMRw0yYQ,4842 +scipy/_lib/array_api_compat/cupy/_info.py,sha256=g3DwO5ps4bSlFU2pc_f4XTaLrkCYuSDlCw0Ql2wuqM8,10125 +scipy/_lib/array_api_compat/cupy/_typing.py,sha256=dkA_sAAgU1Zb1PNopuOsywbLeFK-rLWAY4V4Vj3-x0I,628 +scipy/_lib/array_api_compat/cupy/fft.py,sha256=xCAC42CNAwAyVW7uCREsSoAV23R3rL2dqrT7w877zuE,842 +scipy/_lib/array_api_compat/cupy/linalg.py,sha256=nKOM-_wcOHzHhEeV9KBzcMVNlviJK4nP1nFBUtvnjTM,1444 +scipy/_lib/array_api_compat/dask/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/_lib/array_api_compat/dask/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/array_api_compat/dask/array/__init__.py,sha256=OkadrcCZUdp3KsB5q2fhTyAACW12gDXxW_A4ANGcAqY,320 +scipy/_lib/array_api_compat/dask/array/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/array_api_compat/dask/array/__pycache__/_aliases.cpython-311.pyc,, +scipy/_lib/array_api_compat/dask/array/__pycache__/_info.cpython-311.pyc,, +scipy/_lib/array_api_compat/dask/array/__pycache__/fft.cpython-311.pyc,, +scipy/_lib/array_api_compat/dask/array/__pycache__/linalg.cpython-311.pyc,, +scipy/_lib/array_api_compat/dask/array/_aliases.py,sha256=ZmoAVGbsj04gcfE7R0V6N_7AXCZrhYSFXXfzJfJ5O4Y,10668 +scipy/_lib/array_api_compat/dask/array/_info.py,sha256=rpfvNrS4ZaZMEcaomlRFxx7Dqb_tohhDFvI6qYoaivI,12618 +scipy/_lib/array_api_compat/dask/array/fft.py,sha256=OZxTcLBCXKgVpbMo7Oqn9NH_7_9ZUHQdB6iP8WSYVfY,589 +scipy/_lib/array_api_compat/dask/array/linalg.py,sha256=AtkHftJ3hufuuSlZhRxR0RH9IureEet387rpn1h38XU,2451 +scipy/_lib/array_api_compat/numpy/__init__.py,sha256=7SOguTm7-yJgJPnFTlbk_4bPTltsgKLbkO59ZmoCODg,853 +scipy/_lib/array_api_compat/numpy/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/array_api_compat/numpy/__pycache__/_aliases.cpython-311.pyc,, +scipy/_lib/array_api_compat/numpy/__pycache__/_info.cpython-311.pyc,, +scipy/_lib/array_api_compat/numpy/__pycache__/_typing.cpython-311.pyc,, +scipy/_lib/array_api_compat/numpy/__pycache__/fft.cpython-311.pyc,, +scipy/_lib/array_api_compat/numpy/__pycache__/linalg.cpython-311.pyc,, +scipy/_lib/array_api_compat/numpy/_aliases.py,sha256=SKaCfzc2eY1eAu3Yzm3JVuR3uUqL7PoXf6GyYyXpcw4,5715 +scipy/_lib/array_api_compat/numpy/_info.py,sha256=8KNJ09jKFfMH20wff67GJVPyoZ-e8-OUHF88THx-1Cs,10782 +scipy/_lib/array_api_compat/numpy/_typing.py,sha256=O03YoguInLXMcL5Q0JKHxRXSREgE0DCusVAZKAv-l10,626 +scipy/_lib/array_api_compat/numpy/fft.py,sha256=7oxAzAnFwsAH0J43eXFKRkJ_GKCVEC-7G_lz56pVBz8,779 +scipy/_lib/array_api_compat/numpy/linalg.py,sha256=ORu4MhuN6F5EXOy-lYHxfMHkRpVRx2VEC29rRwB8Bws,4039 +scipy/_lib/array_api_compat/torch/__init__.py,sha256=o351abwQmNWcX00GBnGYHrpfM8pFiieFWRaf0NI-KFg,549 +scipy/_lib/array_api_compat/torch/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/array_api_compat/torch/__pycache__/_aliases.cpython-311.pyc,, +scipy/_lib/array_api_compat/torch/__pycache__/_info.cpython-311.pyc,, +scipy/_lib/array_api_compat/torch/__pycache__/_typing.cpython-311.pyc,, +scipy/_lib/array_api_compat/torch/__pycache__/fft.cpython-311.pyc,, +scipy/_lib/array_api_compat/torch/__pycache__/linalg.cpython-311.pyc,, +scipy/_lib/array_api_compat/torch/_aliases.py,sha256=w_exCqFcAuB3TXtiqk_NpSHJ8D3ZawulLdjFxTvujQc,30261 +scipy/_lib/array_api_compat/torch/_info.py,sha256=-H2xD9z9SMf3GjIOW0jeRTUOvh4s8E9p9u_4LqawRZM,11889 +scipy/_lib/array_api_compat/torch/_typing.py,sha256=-uCkuTie1g9hb4vwPLK9eEnir9Zp67wAhrfaI_o-35E,108 +scipy/_lib/array_api_compat/torch/fft.py,sha256=9YO23YEbQr49gq_DrfJ7V0G41G7WlJC6rJAeqqOP7dw,1738 +scipy/_lib/array_api_compat/torch/linalg.py,sha256=acbcg80CjamMQ0JDAkrWL7FkyEW5MfmGVzQsrRT00jM,4799 +scipy/_lib/array_api_extra/__init__.py,sha256=hDYzsy3XZ6AWPDGdqMsubxTun_z-VTG_DNN1PIHvjlQ,665 +scipy/_lib/array_api_extra/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/array_api_extra/__pycache__/_delegation.cpython-311.pyc,, +scipy/_lib/array_api_extra/__pycache__/testing.cpython-311.pyc,, +scipy/_lib/array_api_extra/_delegation.py,sha256=LCYXvd7a8dvQMxGt6Gd0tANEmPGG-g_AfTKkDW3bKtU,6111 +scipy/_lib/array_api_extra/_lib/__init__.py,sha256=Mht4YV9Rpkzg5kORPlgjOOXk4y7bvdngowS6KGSHqNE,36 +scipy/_lib/array_api_extra/_lib/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/array_api_extra/_lib/__pycache__/_at.cpython-311.pyc,, +scipy/_lib/array_api_extra/_lib/__pycache__/_backends.cpython-311.pyc,, +scipy/_lib/array_api_extra/_lib/__pycache__/_funcs.cpython-311.pyc,, +scipy/_lib/array_api_extra/_lib/__pycache__/_lazy.cpython-311.pyc,, +scipy/_lib/array_api_extra/_lib/__pycache__/_testing.cpython-311.pyc,, +scipy/_lib/array_api_extra/_lib/_at.py,sha256=AgmWvHzhGnCY09BGTIMDBj6PiN0JFWdxl89Lpm-leC0,15362 +scipy/_lib/array_api_extra/_lib/_backends.py,sha256=ZgwBySjeewhZQrUrAhp9ahgEYKdXAffQ4qm7QDwNZOM,1468 +scipy/_lib/array_api_extra/_lib/_funcs.py,sha256=NEXw26WeyygBOoMzDSljVcto1IDN2C9y5QwTW76mP6k,29771 +scipy/_lib/array_api_extra/_lib/_lazy.py,sha256=UrtSnariXoJO-9Efhci8grpqw5lQ9wyD5uQ9U6V5ZTU,13934 +scipy/_lib/array_api_extra/_lib/_testing.py,sha256=kzNdLylEFOJJSKPw9dUBn-kHy5TDa_5DqpbAEOxA0Lg,9170 +scipy/_lib/array_api_extra/_lib/_utils/__init__.py,sha256=8ICffM2MprXpWZd8ia0-5ZTnKtDfeZD0gExLveDrXZs,49 +scipy/_lib/array_api_extra/_lib/_utils/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/array_api_extra/_lib/_utils/__pycache__/_compat.cpython-311.pyc,, +scipy/_lib/array_api_extra/_lib/_utils/__pycache__/_helpers.cpython-311.pyc,, +scipy/_lib/array_api_extra/_lib/_utils/__pycache__/_typing.cpython-311.pyc,, +scipy/_lib/array_api_extra/_lib/_utils/_compat.py,sha256=4A5a_S4qo88_H8LKmQal2e_1PVQAY1eInKDZsCgPNYU,1812 +scipy/_lib/array_api_extra/_lib/_utils/_compat.pyi,sha256=AsYR_QCjWx7cd8VWDu5_PzbiYGSEJZKeEmgB6JRNUdE,1750 +scipy/_lib/array_api_extra/_lib/_utils/_helpers.py,sha256=LrMpnfqTfjBwPav_pZYT3OBpPLAeoGkxAhhZunvTm0Y,17509 +scipy/_lib/array_api_extra/_lib/_utils/_typing.py,sha256=0NSYWpdXH58Dx9T7HsNPM0NW2iPlTZS6xOrR-5tFOYc,228 +scipy/_lib/array_api_extra/_lib/_utils/_typing.pyi,sha256=-XcCOYxOoKjgPeo3w9Pqg1KyYm6JTKm6aO_jD22CGoU,4725 +scipy/_lib/array_api_extra/testing.py,sha256=PQVnuC3WuEVYryNU8CsGfpLW4VBIPJVh0nuix1pSr-o,12908 +scipy/_lib/cobyqa/__init__.py,sha256=9Gj-EtpYGRmh0-ADiX0t0psItcvMgzIMwFDzlvOzcE8,578 +scipy/_lib/cobyqa/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/cobyqa/__pycache__/framework.cpython-311.pyc,, +scipy/_lib/cobyqa/__pycache__/main.cpython-311.pyc,, +scipy/_lib/cobyqa/__pycache__/models.cpython-311.pyc,, +scipy/_lib/cobyqa/__pycache__/problem.cpython-311.pyc,, +scipy/_lib/cobyqa/__pycache__/settings.cpython-311.pyc,, +scipy/_lib/cobyqa/framework.py,sha256=lIeKCkDLxHbMmSTiMcyasvVe77jVvh_YTOYX0HnK4Qk,38900 +scipy/_lib/cobyqa/main.py,sha256=wz0M2iqFfzeTaZUq_j1TkF_9V_SJ1t73A-0fdH0eSs4,57527 +scipy/_lib/cobyqa/models.py,sha256=cAM8_np_xFSRwKsjaMRZu9Dc9xQOQPAZVWxsvR_7qjE,50656 +scipy/_lib/cobyqa/problem.py,sha256=SiPgmiFTxiW5yJ_FVf37Z9GQGo6Gx_fJ3RXMzhsrn40,40203 +scipy/_lib/cobyqa/settings.py,sha256=ogfiShxuPHsMfW16OGSwB9-mIPRiuWZSGXBOCO2HDvw,3826 +scipy/_lib/cobyqa/subsolvers/__init__.py,sha256=VmFBpi-_tNa8yzNmu_fufewmPTnCU6ycNCGcN34UBcc,341 +scipy/_lib/cobyqa/subsolvers/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/cobyqa/subsolvers/__pycache__/geometry.cpython-311.pyc,, +scipy/_lib/cobyqa/subsolvers/__pycache__/optim.cpython-311.pyc,, +scipy/_lib/cobyqa/subsolvers/geometry.py,sha256=dgS-C0QBUhkzPhHULFIRbnbFOIEB005GyPYE-i-cuFY,14173 +scipy/_lib/cobyqa/subsolvers/optim.py,sha256=hIseVqrPyI3ezICGNXkCtKlpqvAO2W6ZQe0n7sxfkss,45512 +scipy/_lib/cobyqa/utils/__init__.py,sha256=sw6g402vXaXwX7rMhxrNl5PD5OBs89l5f3XNcYApRHs,359 +scipy/_lib/cobyqa/utils/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/cobyqa/utils/__pycache__/exceptions.cpython-311.pyc,, +scipy/_lib/cobyqa/utils/__pycache__/math.cpython-311.pyc,, +scipy/_lib/cobyqa/utils/__pycache__/versions.cpython-311.pyc,, +scipy/_lib/cobyqa/utils/exceptions.py,sha256=N1JdmUxHnME95wEZHyeeF_M6GXPEqH5t3qzuXig49YE,483 +scipy/_lib/cobyqa/utils/math.py,sha256=beT-Tib41TJWZecjnKhSfu4foOLLaHlWj5CcyRhdSl4,1611 +scipy/_lib/cobyqa/utils/versions.py,sha256=eBOlEGAKFCfjFqVprdali3M1G7l0k_kxb7ku-Lz2bU0,1465 +scipy/_lib/decorator.py,sha256=_g2s5lG2XHGWPG6csfC3ZhN_JNWP6gH7qU8HkHI6Zrk,15014 +scipy/_lib/deprecation.py,sha256=2xwTeh_7Uc71zmnJW264zxjvh0LUWQqZsH6s95dQDyo,9840 +scipy/_lib/doccer.py,sha256=W1HgV3SpTFpZJ0oyiN9Yn4vuX5pwxx27anH-sGNv19Y,10721 +scipy/_lib/messagestream.cpython-311-x86_64-linux-gnu.so,sha256=iSE-GMP_c4wK5q2qO55ERcDEsFFdLyDJO2HWhA76p1Y,82912 +scipy/_lib/pyprima/__init__.py,sha256=YakFMfftDrq3fBu2-_O3FWjeu41511VEPDTtzJ0IKX0,8461 +scipy/_lib/pyprima/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/pyprima/cobyla/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/_lib/pyprima/cobyla/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/pyprima/cobyla/__pycache__/cobyla.cpython-311.pyc,, +scipy/_lib/pyprima/cobyla/__pycache__/cobylb.cpython-311.pyc,, +scipy/_lib/pyprima/cobyla/__pycache__/geometry.cpython-311.pyc,, +scipy/_lib/pyprima/cobyla/__pycache__/initialize.cpython-311.pyc,, +scipy/_lib/pyprima/cobyla/__pycache__/trustregion.cpython-311.pyc,, +scipy/_lib/pyprima/cobyla/__pycache__/update.cpython-311.pyc,, +scipy/_lib/pyprima/cobyla/cobyla.py,sha256=YiuAhtZ5u13uDciL7sc0qxVVpH5t5IKJ2R0X7qTFMwo,22146 +scipy/_lib/pyprima/cobyla/cobylb.py,sha256=T9ZRYBYZdAYvRLJ9sjAYyQb3vdcRxMmj3AukIidw9L0,40764 +scipy/_lib/pyprima/cobyla/geometry.py,sha256=84zrSvKNCr-WnXqFrnnb-nE11yVAI_CME79nhVc4ZvM,10645 +scipy/_lib/pyprima/cobyla/initialize.py,sha256=ft98aJ03PvUUvIXluk-4IUZLbDQPF3ZLdFUhfpRh5Zg,9409 +scipy/_lib/pyprima/cobyla/trustregion.py,sha256=6UNiTytfEyxW1-qHpqBGzcegRyrnx0A82XwLS5b9N_U,25200 +scipy/_lib/pyprima/cobyla/update.py,sha256=PwDRKMY_VAhBKVSOkMUCOSMhGezpfiafIansW1vqI4I,13882 +scipy/_lib/pyprima/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/_lib/pyprima/common/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/pyprima/common/__pycache__/_bounds.cpython-311.pyc,, +scipy/_lib/pyprima/common/__pycache__/_linear_constraints.cpython-311.pyc,, +scipy/_lib/pyprima/common/__pycache__/_nonlinear_constraints.cpython-311.pyc,, +scipy/_lib/pyprima/common/__pycache__/_project.cpython-311.pyc,, +scipy/_lib/pyprima/common/__pycache__/checkbreak.cpython-311.pyc,, +scipy/_lib/pyprima/common/__pycache__/consts.cpython-311.pyc,, +scipy/_lib/pyprima/common/__pycache__/evaluate.cpython-311.pyc,, +scipy/_lib/pyprima/common/__pycache__/history.cpython-311.pyc,, +scipy/_lib/pyprima/common/__pycache__/infos.cpython-311.pyc,, +scipy/_lib/pyprima/common/__pycache__/linalg.cpython-311.pyc,, +scipy/_lib/pyprima/common/__pycache__/message.cpython-311.pyc,, +scipy/_lib/pyprima/common/__pycache__/powalg.cpython-311.pyc,, +scipy/_lib/pyprima/common/__pycache__/preproc.cpython-311.pyc,, +scipy/_lib/pyprima/common/__pycache__/present.cpython-311.pyc,, +scipy/_lib/pyprima/common/__pycache__/ratio.cpython-311.pyc,, +scipy/_lib/pyprima/common/__pycache__/redrho.cpython-311.pyc,, +scipy/_lib/pyprima/common/__pycache__/selectx.cpython-311.pyc,, +scipy/_lib/pyprima/common/_bounds.py,sha256=ZzvGVDJigjFkxb4Qkct89SRta7VPS7C_XFm0qKSy090,1636 +scipy/_lib/pyprima/common/_linear_constraints.py,sha256=SZHsoLLWFVtJ1TPPamd0CPXmKmVlnrgT-qCyYZo2CkQ,2162 +scipy/_lib/pyprima/common/_nonlinear_constraints.py,sha256=0OGZwFpa8JqtTm4rZKb2LL8oxx1Sld4ANwfH-00Qy4A,2150 +scipy/_lib/pyprima/common/_project.py,sha256=oX1l_vGwYod1knQ08t_j2MZ1hBOT_szT621GXfk67nE,7863 +scipy/_lib/pyprima/common/checkbreak.py,sha256=kDbwy_CG-0ZUlrfrQ_SKwlxyPjqZHH1-z0HTvXJq7G0,3451 +scipy/_lib/pyprima/common/consts.py,sha256=gw-JKckLhBHPXZLLp1qMrVsqNP9PJ-kcgtBvfCajk-g,1310 +scipy/_lib/pyprima/common/evaluate.py,sha256=aKVctlTqacdI_n329ipEH-ZTpQNwAX-01UavdsXlUeY,3150 +scipy/_lib/pyprima/common/history.py,sha256=c6vWe7XJ5JMzRm7TzaPfYhmHlaZGoUDZzEvLdfZNbAA,1361 +scipy/_lib/pyprima/common/infos.py,sha256=fcIk6zFWQrtUhtvOHYcYUzZCDmgEAY39fjRshjOb9M4,704 +scipy/_lib/pyprima/common/linalg.py,sha256=QwbXquUpao34qwFoQreJ7ocxacCs5pO_7p9Gn9TbB78,14280 +scipy/_lib/pyprima/common/message.py,sha256=D1UwykQhQ16hekF4-wxC1Xw1Qs9gsm_0hXG-yf3VK20,9663 +scipy/_lib/pyprima/common/powalg.py,sha256=BWD8urM3sF_T0e47iHZCKvjIZgcDxsDrLHMtDMcQoUE,6785 +scipy/_lib/pyprima/common/preproc.py,sha256=Ge0SyRxy3f47uf1anX8WmFjfkOdw82czkMgC8FlDiJs,13820 +scipy/_lib/pyprima/common/present.py,sha256=TvFOVG53WvXwjsTqz2tfZzgmV0Uv7dlX0DQ1e2IO92M,146 +scipy/_lib/pyprima/common/ratio.py,sha256=ePcZVLwu4NB29FgVx-qYr3Yvgf_9Wx16Lyz9qbjJDyM,1823 +scipy/_lib/pyprima/common/redrho.py,sha256=ES_D2yucGa_uMGcvlSL8-z4ZxPv2BKoK8mCMw1DZqvE,1258 +scipy/_lib/pyprima/common/selectx.py,sha256=8IYf6BB-OnOOnuxn8_9YsrllaLFLtIKQY5NqTHRc61Q,14120 +scipy/_lib/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/_lib/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/_lib/tests/__pycache__/test__gcutils.cpython-311.pyc,, +scipy/_lib/tests/__pycache__/test__pep440.cpython-311.pyc,, +scipy/_lib/tests/__pycache__/test__testutils.cpython-311.pyc,, +scipy/_lib/tests/__pycache__/test__threadsafety.cpython-311.pyc,, +scipy/_lib/tests/__pycache__/test__util.cpython-311.pyc,, +scipy/_lib/tests/__pycache__/test_array_api.cpython-311.pyc,, +scipy/_lib/tests/__pycache__/test_bunch.cpython-311.pyc,, +scipy/_lib/tests/__pycache__/test_ccallback.cpython-311.pyc,, +scipy/_lib/tests/__pycache__/test_config.cpython-311.pyc,, +scipy/_lib/tests/__pycache__/test_deprecation.cpython-311.pyc,, +scipy/_lib/tests/__pycache__/test_doccer.cpython-311.pyc,, +scipy/_lib/tests/__pycache__/test_import_cycles.cpython-311.pyc,, +scipy/_lib/tests/__pycache__/test_public_api.cpython-311.pyc,, +scipy/_lib/tests/__pycache__/test_scipy_version.cpython-311.pyc,, +scipy/_lib/tests/__pycache__/test_tmpdirs.cpython-311.pyc,, +scipy/_lib/tests/__pycache__/test_warnings.cpython-311.pyc,, +scipy/_lib/tests/test__gcutils.py,sha256=Uadt4yXwuLDMCSbf4cpMszR_5NOeVQC1E_v4NZAeJR4,3729 +scipy/_lib/tests/test__pep440.py,sha256=u9hPoolK4AoIIS-Rq74Du5SJu5og2RxMwgaAvGgWvRo,2277 +scipy/_lib/tests/test__testutils.py,sha256=P4WDJpUgy19wD9tknQSjIivuQvZF7YUBGSBWlur2QRA,800 +scipy/_lib/tests/test__threadsafety.py,sha256=qSfCF5OG_5lbnSl-grmDN_QCU4QLe-fS3sqnwL04pf8,1322 +scipy/_lib/tests/test__util.py,sha256=g9C1pPrJCgh0fE16yULUlVLdGhZDn2ph9HVYatqsscM,23922 +scipy/_lib/tests/test_array_api.py,sha256=a33zHgh03F8yUqbIuxI2zct9ppFo3mP-B0oBYjtWDMw,13383 +scipy/_lib/tests/test_bunch.py,sha256=USL2wl6PT4gAuuNk5CipnNrG45GZPZ8y1B7BqtIDqKM,6389 +scipy/_lib/tests/test_ccallback.py,sha256=wQ0Bwewx7KWJWspmdTYTPjRgm8A3A5mZ1ssLIig5wfE,6040 +scipy/_lib/tests/test_config.py,sha256=ekM39jzkDFcuk3ahIMn-j4JUz3kZeSDxxB_2WRRxULM,1275 +scipy/_lib/tests/test_deprecation.py,sha256=pIia1qGES_ABOfbqLSSlXzmLmeBjpziyvh9J2mUUcMA,390 +scipy/_lib/tests/test_doccer.py,sha256=2HGlzqu7dgJ7collFy6SunjKc4lKMFo4TZIUQCHlVoU,4053 +scipy/_lib/tests/test_import_cycles.py,sha256=K4LfxIHzFRIj4XGGmpRhYj4Kij8GXYxKGbIX8WfjUWQ,586 +scipy/_lib/tests/test_public_api.py,sha256=tsHTY1YqVRxjZXYucDE_gpRfwUlKWaG6q0CIt1UxNXw,18800 +scipy/_lib/tests/test_scipy_version.py,sha256=kVoxuBUidCHsVpvybRPoVJzkv2hUixRwuDAEAqPgpaA,918 +scipy/_lib/tests/test_tmpdirs.py,sha256=DiSY_ReQtD9Ou01pJ49MVY1aT6L62W2Odbbr-zEm3zI,1337 +scipy/_lib/tests/test_warnings.py,sha256=ZQ_4o16m2b--0v8erteoUd2pA134GzMRZhTV9vfuhqI,4949 +scipy/_lib/uarray.py,sha256=4X0D3FBQR6HOYcwMftjH-38Kt1nkrS-eD4c5lWL5DGo,815 +scipy/cluster/__init__.py,sha256=pgzWiWR5smQ3rwud2dhnLn6dpkD5lju_moElQp_zhoE,880 +scipy/cluster/__pycache__/__init__.cpython-311.pyc,, +scipy/cluster/__pycache__/hierarchy.cpython-311.pyc,, +scipy/cluster/__pycache__/vq.cpython-311.pyc,, +scipy/cluster/_hierarchy.cpython-311-x86_64-linux-gnu.so,sha256=kho3KZQc0qO4OwsorSZxtdDSAnQpL0RVUVW0NWo55UU,288552 +scipy/cluster/_optimal_leaf_ordering.cpython-311-x86_64-linux-gnu.so,sha256=UtldUxtawqgf1FtZb2eP8GuxGOHw7NDUBy66mJCZzUs,201472 +scipy/cluster/_vq.cpython-311-x86_64-linux-gnu.so,sha256=XXW44i2oKfuvE9s5SE31ct_3BKdhaZOgycpXQ-Dv2LY,128720 +scipy/cluster/hierarchy.py,sha256=j9LKlUFqn1Nv8rAxRZYZbf9zW42YPA8xtEvojqmrKr4,156811 +scipy/cluster/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/cluster/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/cluster/tests/__pycache__/hierarchy_test_data.cpython-311.pyc,, +scipy/cluster/tests/__pycache__/test_disjoint_set.cpython-311.pyc,, +scipy/cluster/tests/__pycache__/test_hierarchy.cpython-311.pyc,, +scipy/cluster/tests/__pycache__/test_vq.cpython-311.pyc,, +scipy/cluster/tests/hierarchy_test_data.py,sha256=7syUYdIaDVr7hgvMliX0CW4386utjBJn1DOgX0USXls,6850 +scipy/cluster/tests/test_disjoint_set.py,sha256=EuHGBE3ZVEMnWFbCn8tjI-_6CWrNXfpnv5bUBa9qhWI,5525 +scipy/cluster/tests/test_hierarchy.py,sha256=j5B3V67-0Ws4U5M9MuGqMbBK7IZXc1lubntMVlm-YTA,50282 +scipy/cluster/tests/test_vq.py,sha256=JMavr2NlWjz-EUpus9B2AXhSNFAnl1mhrqHrkMUBqr0,18212 +scipy/cluster/vq.py,sha256=HKFZDBazq35WOj8_1Ofg875dG2mHioCDmQAB82sR6GY,30899 +scipy/conftest.py,sha256=KrV2IrSaXIkaHQNKomD0TuyJ2S5FLylvOxaS6RzkECw,27502 +scipy/constants/__init__.py,sha256=1Iqylk8TvAxegNKIcFIUVXwiH5ItKpdKtCcVPhEBvPQ,14839 +scipy/constants/__pycache__/__init__.cpython-311.pyc,, +scipy/constants/__pycache__/_codata.cpython-311.pyc,, +scipy/constants/__pycache__/_constants.cpython-311.pyc,, +scipy/constants/__pycache__/codata.cpython-311.pyc,, +scipy/constants/__pycache__/constants.cpython-311.pyc,, +scipy/constants/_codata.py,sha256=fIhZGWMCGLGSwO3rnNmDEisAN1rGLwkNbSlwdZDpowQ,202354 +scipy/constants/_constants.py,sha256=1BiP8rT7BdaAwCpLbpXQzrCVCcIJPmmc4oh1fg5WHOo,10571 +scipy/constants/codata.py,sha256=ThmW8ohzndi-4-WtyVXxSrW40MnLIz1XoqRcm2RgSHw,614 +scipy/constants/constants.py,sha256=w7sGxSidD2Q9Ged0Sn1pnL-qqD1ssEP1A8sZWeLWBeI,2250 +scipy/constants/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/constants/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/constants/tests/__pycache__/test_codata.cpython-311.pyc,, +scipy/constants/tests/__pycache__/test_constants.cpython-311.pyc,, +scipy/constants/tests/test_codata.py,sha256=gxakBdJjXuXFPPgJvJAj50s4IXCJH3whaeXZjEcso-g,2854 +scipy/constants/tests/test_constants.py,sha256=Gz5YfzcqFnZsHuuZDZ4QOcegWL-2IGIZwZ9cNp-ubTM,4247 +scipy/datasets/__init__.py,sha256=X_9AbefPK1_pg-eG7g3nn--JhoHeDsrEFbJfbI5Hyak,2802 +scipy/datasets/__pycache__/__init__.cpython-311.pyc,, +scipy/datasets/__pycache__/_download_all.cpython-311.pyc,, +scipy/datasets/__pycache__/_fetchers.cpython-311.pyc,, +scipy/datasets/__pycache__/_registry.cpython-311.pyc,, +scipy/datasets/__pycache__/_utils.cpython-311.pyc,, +scipy/datasets/_download_all.py,sha256=08-F2A9IaCzAYHy5yzsiHkEK_9zDA4ISDmgy2OanZbY,2095 +scipy/datasets/_fetchers.py,sha256=xlLSxIhtysobPe3kYFL717t31qRspTwoqe31iGtevvA,6941 +scipy/datasets/_registry.py,sha256=br0KfyalEbh5yrQLznQ_QvBtmN4rMsm0UxOjnsJp4OQ,1072 +scipy/datasets/_utils.py,sha256=o-3PNQwKjZS8Rx8p3VrwHFkDKXRD5cETvV_m9vaQRv8,2966 +scipy/datasets/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/datasets/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/datasets/tests/__pycache__/test_data.cpython-311.pyc,, +scipy/datasets/tests/test_data.py,sha256=6DJtyMDmwi_ghOrDuryVakZQExFq-MIKiuJi_Cr7kdM,4213 +scipy/differentiate/__init__.py,sha256=nZ3imDWtf1QzImE-xsrYHE4kuOa8tEuc99Hl0zAFqzI,621 +scipy/differentiate/__pycache__/__init__.cpython-311.pyc,, +scipy/differentiate/__pycache__/_differentiate.cpython-311.pyc,, +scipy/differentiate/_differentiate.py,sha256=vB0JAJgv486JpJAoqUOSN7sOebAC8w5mE-mRy6c4BKI,50815 +scipy/differentiate/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/differentiate/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/differentiate/tests/__pycache__/test_differentiate.cpython-311.pyc,, +scipy/differentiate/tests/test_differentiate.py,sha256=VCfZq-SyAm5LP9CI1cplRQRptRgCOWpoYU2UjbhLU1o,28153 +scipy/fft/__init__.py,sha256=0cjHIwyHnjoz1XUUe3OB70vrQR0-pFp8Uv34-U-FGRg,3632 +scipy/fft/__pycache__/__init__.cpython-311.pyc,, +scipy/fft/__pycache__/_backend.cpython-311.pyc,, +scipy/fft/__pycache__/_basic.cpython-311.pyc,, +scipy/fft/__pycache__/_basic_backend.cpython-311.pyc,, +scipy/fft/__pycache__/_debug_backends.cpython-311.pyc,, +scipy/fft/__pycache__/_fftlog.cpython-311.pyc,, +scipy/fft/__pycache__/_fftlog_backend.cpython-311.pyc,, +scipy/fft/__pycache__/_helper.cpython-311.pyc,, +scipy/fft/__pycache__/_realtransforms.cpython-311.pyc,, +scipy/fft/__pycache__/_realtransforms_backend.cpython-311.pyc,, +scipy/fft/_backend.py,sha256=5rBxK8GQtCMnuPHc-lNQdpH4uFFZ9_5vBukkDv6jRRA,6544 +scipy/fft/_basic.py,sha256=W5Wv4_JQJNsCiKRKZcfLtdxKDvFOd27Sls-hM1Wc_ao,63546 +scipy/fft/_basic_backend.py,sha256=Qms-BE7DCJYNSq9Vd5utnKiwVTqRIUzLYYEiMyTdpfE,7447 +scipy/fft/_debug_backends.py,sha256=RlvyunZNqaDDsI3-I6QH6GSBz_faT6EN4OONWsvMtR8,598 +scipy/fft/_fftlog.py,sha256=JeLVCAgfB99brT2Ez9tzdapmhWrTfYCUYEi2KTvPzIQ,7864 +scipy/fft/_fftlog_backend.py,sha256=UgoePwhoMoLxvQ5soSUZkVWvWWTP7y1xWVAD9BlrdJY,5304 +scipy/fft/_helper.py,sha256=JVsmPX1tMXJywsVf_SEIdy64qs5feZcJ2pQXXPJbIzE,11261 +scipy/fft/_pocketfft/LICENSE.md,sha256=wlSytf0wrjyJ02ugYXMFY7l2D8oE8bdGobLDFX2ix4k,1498 +scipy/fft/_pocketfft/__init__.py,sha256=dROVDi9kRvkbSdynd3L09tp9_exzQ4QqG3xnNx78JeU,207 +scipy/fft/_pocketfft/__pycache__/__init__.cpython-311.pyc,, +scipy/fft/_pocketfft/__pycache__/basic.cpython-311.pyc,, +scipy/fft/_pocketfft/__pycache__/helper.cpython-311.pyc,, +scipy/fft/_pocketfft/__pycache__/realtransforms.cpython-311.pyc,, +scipy/fft/_pocketfft/basic.py,sha256=4HR-eRDb6j4YR4sqKnTikFmG0tnUIXxa0uImnB6_JVs,8138 +scipy/fft/_pocketfft/helper.py,sha256=Iifq1BGj7IQIHPhBNTaaP2_Rry_7TbINjx1rkntCKjY,6837 +scipy/fft/_pocketfft/pypocketfft.cpython-311-x86_64-linux-gnu.so,sha256=-iF1rHMDzuGKbbHq2HtGj2Per6USQgYxKSfn_UhHdRw,1227184 +scipy/fft/_pocketfft/realtransforms.py,sha256=4TmqAkCDQK3gs1ddxXY4rOrVfvQqO8NyVtOzziUGw6E,3344 +scipy/fft/_pocketfft/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/fft/_pocketfft/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/fft/_pocketfft/tests/__pycache__/test_basic.cpython-311.pyc,, +scipy/fft/_pocketfft/tests/__pycache__/test_real_transforms.cpython-311.pyc,, +scipy/fft/_pocketfft/tests/test_basic.py,sha256=jsqSZLy8m3mJsFT39EonX7a0iKMjDzApyZTvowcKAuw,35633 +scipy/fft/_pocketfft/tests/test_real_transforms.py,sha256=YKGdhXrDJ-xcTjRSCzW2xm1IXBtn35NQe38bebkiVAQ,16863 +scipy/fft/_realtransforms.py,sha256=roow-1oLm3nQNOm6Xgpl7N9bB3wo9NGvFISTQNaV8g4,25780 +scipy/fft/_realtransforms_backend.py,sha256=u4y4nBGCxpTLVqxK1J7xV6tcpeC3-8iiSEXLOcRM9wI,2389 +scipy/fft/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/fft/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/fft/tests/__pycache__/mock_backend.cpython-311.pyc,, +scipy/fft/tests/__pycache__/test_backend.cpython-311.pyc,, +scipy/fft/tests/__pycache__/test_basic.cpython-311.pyc,, +scipy/fft/tests/__pycache__/test_fftlog.cpython-311.pyc,, +scipy/fft/tests/__pycache__/test_helper.cpython-311.pyc,, +scipy/fft/tests/__pycache__/test_multithreading.cpython-311.pyc,, +scipy/fft/tests/__pycache__/test_real_transforms.cpython-311.pyc,, +scipy/fft/tests/mock_backend.py,sha256=p17Hfg6xuoF6Ldxwe1PZ-79Lf_r9FyJUR00N4TokM8k,2685 +scipy/fft/tests/test_backend.py,sha256=DFJ6OKV6gRw4p9OuVfy1ENTeLJCbYS2GuppwpJnwQGQ,4285 +scipy/fft/tests/test_basic.py,sha256=0v7XObukDi4-LQlxrhG784cbFHt9K_6ZIjFyEMwEmSQ,20415 +scipy/fft/tests/test_fftlog.py,sha256=S1Lz3N0L_5Gmb8Ny8zXTuatJrmXUacuE58A1I0BK25M,7643 +scipy/fft/tests/test_helper.py,sha256=Sh9E59ey3v0vGqu94VMYH8iX7Ck2XqgcC83sKHQm5gQ,19522 +scipy/fft/tests/test_multithreading.py,sha256=JMSXQocScFghpsy47zov03R5MbEY0Z3ROGt6GxFeWzo,2150 +scipy/fft/tests/test_real_transforms.py,sha256=S_EXMcrOByjTmzBXH2jXCFpQQwE-NJgSGbG_njoS1i0,9166 +scipy/fftpack/__init__.py,sha256=rLCBFC5Dx5ij_wmL7ChiGmScYlgu0mhaWtrJaz_rBt0,3155 +scipy/fftpack/__pycache__/__init__.cpython-311.pyc,, +scipy/fftpack/__pycache__/_basic.cpython-311.pyc,, +scipy/fftpack/__pycache__/_helper.cpython-311.pyc,, +scipy/fftpack/__pycache__/_pseudo_diffs.cpython-311.pyc,, +scipy/fftpack/__pycache__/_realtransforms.cpython-311.pyc,, +scipy/fftpack/__pycache__/basic.cpython-311.pyc,, +scipy/fftpack/__pycache__/helper.cpython-311.pyc,, +scipy/fftpack/__pycache__/pseudo_diffs.cpython-311.pyc,, +scipy/fftpack/__pycache__/realtransforms.cpython-311.pyc,, +scipy/fftpack/_basic.py,sha256=Sk_gfswmWKb3za6wrU_mIrRVBl69qjzAu9ltznbDCKs,13098 +scipy/fftpack/_helper.py,sha256=8r6Hh2FA5qTzYyn8y4jfaG41FXMfqQyK6SN8x1dIbaE,3348 +scipy/fftpack/_pseudo_diffs.py,sha256=T39Owz8EgL4oqmViBT0ggen9DXOtNHWRxh-n6I7pLyw,15936 +scipy/fftpack/_realtransforms.py,sha256=2k91B3tSnFm6gKsQn-hRGx4J238CKvqwvQevKgDMuaQ,19222 +scipy/fftpack/basic.py,sha256=i2CMMS__L3UtFFqe57E0cs7AZ4U6VO-Ted1KhU7_wNc,577 +scipy/fftpack/convolve.cpython-311-x86_64-linux-gnu.so,sha256=s3r3jsW0_3Rv-F3l8STaN3X8o6dZAMSmGdNS3jgnzwI,130216 +scipy/fftpack/helper.py,sha256=M7jTN4gQIRWpkArQR13bI7WN6WcW-AabxKgrOHRvfeQ,580 +scipy/fftpack/pseudo_diffs.py,sha256=h0vkjsSqAThy7OdTkYWVxQqZ3rILohg7MXJqf5CGMTE,658 +scipy/fftpack/realtransforms.py,sha256=9-mR-VV3W14oTaD6pB5-RIDV3vkTBQmGCcxfbA8GYH0,595 +scipy/fftpack/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/fftpack/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/fftpack/tests/__pycache__/test_basic.cpython-311.pyc,, +scipy/fftpack/tests/__pycache__/test_helper.cpython-311.pyc,, +scipy/fftpack/tests/__pycache__/test_import.cpython-311.pyc,, +scipy/fftpack/tests/__pycache__/test_pseudo_diffs.cpython-311.pyc,, +scipy/fftpack/tests/__pycache__/test_real_transforms.cpython-311.pyc,, +scipy/fftpack/tests/fftw_double_ref.npz,sha256=pgxklBW2RSI5JNg0LMxcCXgByGkBKHo2nlP8kln17E4,162120 +scipy/fftpack/tests/fftw_longdouble_ref.npz,sha256=pAbL1NrQTQxZ3Tj1RBb7SUJMgiKcGgdLakTsDN4gAOM,296072 +scipy/fftpack/tests/fftw_single_ref.npz,sha256=J2qRQTGOb8NuSrb_VKYbZAVO-ISbZg8XNZ5fVBtDxSY,95144 +scipy/fftpack/tests/test.npz,sha256=Nt6ASiLY_eoFRZDOSd3zyFmDi32JGTxWs7y2YMv0N5c,11968 +scipy/fftpack/tests/test_basic.py,sha256=xq92TCdPbZbh6DStQ2dTc958GYSe453goeijDJoDGrQ,30472 +scipy/fftpack/tests/test_helper.py,sha256=8JaPSJOwsk5XXOf1zFahJ_ktUTfNGSk2-k3R6e420XI,1675 +scipy/fftpack/tests/test_import.py,sha256=dzyXQHtsdW2WL5ruVp_-MsqSQd_n-tuyq22okrzXlGw,1156 +scipy/fftpack/tests/test_pseudo_diffs.py,sha256=ZJU6AkkH6jKjebu_-Ant-dT6tUGwo1Jx9c5kou1floU,13733 +scipy/fftpack/tests/test_real_transforms.py,sha256=KxSsIxsMzdeif5Jej3MuERF3lC8Cyv_UZnJhLPuKpIU,24460 +scipy/integrate/__init__.py,sha256=CmPLfkF66jXhHsKyQPOsvFEc9nxicRYwl6WDAa7cfJk,4373 +scipy/integrate/__pycache__/__init__.cpython-311.pyc,, +scipy/integrate/__pycache__/_bvp.cpython-311.pyc,, +scipy/integrate/__pycache__/_cubature.cpython-311.pyc,, +scipy/integrate/__pycache__/_lebedev.cpython-311.pyc,, +scipy/integrate/__pycache__/_ode.cpython-311.pyc,, +scipy/integrate/__pycache__/_odepack_py.cpython-311.pyc,, +scipy/integrate/__pycache__/_quad_vec.cpython-311.pyc,, +scipy/integrate/__pycache__/_quadpack_py.cpython-311.pyc,, +scipy/integrate/__pycache__/_quadrature.cpython-311.pyc,, +scipy/integrate/__pycache__/_tanhsinh.cpython-311.pyc,, +scipy/integrate/__pycache__/dop.cpython-311.pyc,, +scipy/integrate/__pycache__/lsoda.cpython-311.pyc,, +scipy/integrate/__pycache__/odepack.cpython-311.pyc,, +scipy/integrate/__pycache__/quadpack.cpython-311.pyc,, +scipy/integrate/__pycache__/vode.cpython-311.pyc,, +scipy/integrate/_bvp.py,sha256=Ot2q657UUVaYYlFHe8bWFR_mrRgkienJG6YO3EB2__o,41213 +scipy/integrate/_cubature.py,sha256=AaGqpXw3IpqGTyxNIH13ID0_9A_oqdvVUBq7fKSR1eU,25705 +scipy/integrate/_dop.cpython-311-x86_64-linux-gnu.so,sha256=GNXM9wdOuyzcG8U2klSKRI7WbzCEZgugDeMkme3g5dk,116993 +scipy/integrate/_ivp/__init__.py,sha256=gKFR_pPjr8fRLgAGY5sOzYKGUFu2nGX8x1RrXT-GZZc,256 +scipy/integrate/_ivp/__pycache__/__init__.cpython-311.pyc,, +scipy/integrate/_ivp/__pycache__/base.cpython-311.pyc,, +scipy/integrate/_ivp/__pycache__/bdf.cpython-311.pyc,, +scipy/integrate/_ivp/__pycache__/common.cpython-311.pyc,, +scipy/integrate/_ivp/__pycache__/dop853_coefficients.cpython-311.pyc,, +scipy/integrate/_ivp/__pycache__/ivp.cpython-311.pyc,, +scipy/integrate/_ivp/__pycache__/lsoda.cpython-311.pyc,, +scipy/integrate/_ivp/__pycache__/radau.cpython-311.pyc,, +scipy/integrate/_ivp/__pycache__/rk.cpython-311.pyc,, +scipy/integrate/_ivp/base.py,sha256=Mlef_dgmn0wzjFxZA3oBbtHrQgrfdZw_8k1mLYNZP4A,10295 +scipy/integrate/_ivp/bdf.py,sha256=tTN2OiFRjGlIT-PkrCLi-mBfUmcAZ8NEprFSjwR_K5U,17501 +scipy/integrate/_ivp/common.py,sha256=GVKTcx-QO7WPr2ejNAi94aEdMv03zFVOr24Q1w2rZ2I,15745 +scipy/integrate/_ivp/dop853_coefficients.py,sha256=OrYvW0Hu6X7sOh37FU58gNkgC77KVpYclewv_ARGMAE,7237 +scipy/integrate/_ivp/ivp.py,sha256=DGmLGk4TbhkGhBiJvnbeNScZzLdnm-6nJoWt83hrz-s,31743 +scipy/integrate/_ivp/lsoda.py,sha256=t5t2jZBgBPt0G20TOI4SVXuGFAZYAhfDlJZhfCzeeDo,9927 +scipy/integrate/_ivp/radau.py,sha256=0KpFk0Me857geCXbbvAyTkqbrO8OI_2kLTdzGLpqYlY,19676 +scipy/integrate/_ivp/rk.py,sha256=-l1jAJF_T5SeaZsRb1muFHFZ1cYUfVXZQNydMwOJEFY,22800 +scipy/integrate/_ivp/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/integrate/_ivp/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/integrate/_ivp/tests/__pycache__/test_ivp.cpython-311.pyc,, +scipy/integrate/_ivp/tests/__pycache__/test_rk.cpython-311.pyc,, +scipy/integrate/_ivp/tests/test_ivp.py,sha256=A0hw3AqENXeTFp1Rcb_4ayEsLYLuMVFz9s7UrglatLQ,42823 +scipy/integrate/_ivp/tests/test_rk.py,sha256=K9UxZghBzSL2BzmgLndPJcWOWV4Nr530TGKWakpsoeM,1326 +scipy/integrate/_lebedev.py,sha256=Tj3I_tnQ3_mfARK_scDsd9aM5dLe9To-GeaCda5OMKw,262024 +scipy/integrate/_lsoda.cpython-311-x86_64-linux-gnu.so,sha256=RUiqQZRn-TUYehglZOStfzMPGWP7nvl5SYNn_hISLsg,516881 +scipy/integrate/_ode.py,sha256=_4luseJWv01Zj_Avdk6xtNprZ_HoyXm1PPNiGsQmq4c,48622 +scipy/integrate/_odepack.cpython-311-x86_64-linux-gnu.so,sha256=2gFaQM72ZOSvnfe5LKin5uaQ5mZISzKXsHibz6dtjJY,479121 +scipy/integrate/_odepack_py.py,sha256=DhHLB7rx0p6TrQQzQQlwzqcb8oMuFRDra0nIFryb0M8,11231 +scipy/integrate/_quad_vec.py,sha256=Sk-HNGPWTfw8fALxl7vLaDSxEOWeqb6LlJJOILlBHsc,21582 +scipy/integrate/_quadpack.cpython-311-x86_64-linux-gnu.so,sha256=cFBbhfWhAg2ssSViO6DXFNDQAA60Rwn11a8RO_Ktqrs,112024 +scipy/integrate/_quadpack_py.py,sha256=H4ftrZKqWLvH4St-FYf56D_fvCcxl2vkGpkBK9DQxDg,53704 +scipy/integrate/_quadrature.py,sha256=mvcABe0R7Tffe1NIgDXJsFS0cxhr2ca2oMYyv9h40ao,47879 +scipy/integrate/_rules/__init__.py,sha256=JNlDLTPYR-FVDeWbm9BHOot47OA8tvOj22g2iJlEsBg,328 +scipy/integrate/_rules/__pycache__/__init__.cpython-311.pyc,, +scipy/integrate/_rules/__pycache__/_base.cpython-311.pyc,, +scipy/integrate/_rules/__pycache__/_gauss_kronrod.cpython-311.pyc,, +scipy/integrate/_rules/__pycache__/_gauss_legendre.cpython-311.pyc,, +scipy/integrate/_rules/__pycache__/_genz_malik.cpython-311.pyc,, +scipy/integrate/_rules/_base.py,sha256=iwb872yqwq2Y9LbCTujUKI1CvwZurApCeJAlOR4wrnE,17927 +scipy/integrate/_rules/_gauss_kronrod.py,sha256=ULpHMJRd0J99IFwNufur9BYG8EQhxlGj-OdCBgnE8yk,8473 +scipy/integrate/_rules/_gauss_legendre.py,sha256=KJSMmztXRqTvpmkB-ky-WSVIqAMg_GcWoewTcRxJ1Cw,1733 +scipy/integrate/_rules/_genz_malik.py,sha256=104fosqAnmCI992oY-Z9V_QiuG2ruWLmGS2U_EdshEw,7308 +scipy/integrate/_tanhsinh.py,sha256=ec5BwtdswWRLDrX6__hNfL3OwUBn2DKj9tbP_sAyuAI,61339 +scipy/integrate/_test_multivariate.cpython-311-x86_64-linux-gnu.so,sha256=oCO9DKyKPy4ERYj4rP5sVzsJ2V1Goc521tLC5k-WlzE,16896 +scipy/integrate/_test_odeint_banded.cpython-311-x86_64-linux-gnu.so,sha256=t5Iw6YBliub_NW191-5tFt2iuHX0lRTUWO5IppozFaw,516585 +scipy/integrate/_vode.cpython-311-x86_64-linux-gnu.so,sha256=aaaEBrByq1VxFPjB3zdpOpu9eKp0IwLgZ_hY1IqUa-4,565985 +scipy/integrate/dop.py,sha256=Kx5Ed_Te81X09bvGmBUq3-_kQNdTIsOdO7ykjEpEG9c,422 +scipy/integrate/lsoda.py,sha256=hUg4-tJcW3MjhLjLBsD88kzP7qGp_zLGw1AH2ZClHmw,436 +scipy/integrate/odepack.py,sha256=G5KiKninKFyYgF756_LtDGB68BGk7IwPidUOywFpLQo,545 +scipy/integrate/quadpack.py,sha256=vQNE5jQ-dFpH26er1i8LJSkylFVbeSgVGLwSRQawfYg,604 +scipy/integrate/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/integrate/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/integrate/tests/__pycache__/test__quad_vec.cpython-311.pyc,, +scipy/integrate/tests/__pycache__/test_banded_ode_solvers.cpython-311.pyc,, +scipy/integrate/tests/__pycache__/test_bvp.cpython-311.pyc,, +scipy/integrate/tests/__pycache__/test_cubature.cpython-311.pyc,, +scipy/integrate/tests/__pycache__/test_integrate.cpython-311.pyc,, +scipy/integrate/tests/__pycache__/test_odeint_jac.cpython-311.pyc,, +scipy/integrate/tests/__pycache__/test_quadpack.cpython-311.pyc,, +scipy/integrate/tests/__pycache__/test_quadrature.cpython-311.pyc,, +scipy/integrate/tests/__pycache__/test_tanhsinh.cpython-311.pyc,, +scipy/integrate/tests/test__quad_vec.py,sha256=Rzhy0XsKdy5MSfo9wOjJjgueNkYa3Rujujxn9D8-zkw,6338 +scipy/integrate/tests/test_banded_ode_solvers.py,sha256=a6QODlYQLpm9m43K3Ocz320cFQrP0P3_nlMB44txMGk,9109 +scipy/integrate/tests/test_bvp.py,sha256=tNSp-4YyIQNyLVykDU77i0-4zzkY0sEwVVaT2uoOvz4,20223 +scipy/integrate/tests/test_cubature.py,sha256=dsavI9md0pxBbFmJECaLk4SH--2ECTlTYshHWCe6sYc,37061 +scipy/integrate/tests/test_integrate.py,sha256=KiyXeJ7ThQUpL8_XQKfOTZ8i_LBVwgC7ykzF6Yg574I,24611 +scipy/integrate/tests/test_odeint_jac.py,sha256=enXGyQQ4m-9kMPDaWvipIt3buYZ5jNjaxITP8GoS86s,1816 +scipy/integrate/tests/test_quadpack.py,sha256=8EM7IsCLJxswnWAd8S5xyvWX9dWjudycdvDDq1ci7v4,28066 +scipy/integrate/tests/test_quadrature.py,sha256=FGjWORDvDwPJaN0AJospoOAQHIF_m66Yiqs9LyQFQsI,28110 +scipy/integrate/tests/test_tanhsinh.py,sha256=kGntXLF3wLfBMYA_PUtgczEpKZwqQ5eJWM7MTouczms,44884 +scipy/integrate/vode.py,sha256=DPRqm2oBQx6KKi5tl9dDVpXEdAO--W0WpRQEyLeQpf4,424 +scipy/interpolate/__init__.py,sha256=i0mcQWXv0KbAn44vld8w-9NrRy-z_w0xf5_kQnBTtK8,4073 +scipy/interpolate/__pycache__/__init__.cpython-311.pyc,, +scipy/interpolate/__pycache__/_bary_rational.cpython-311.pyc,, +scipy/interpolate/__pycache__/_bsplines.cpython-311.pyc,, +scipy/interpolate/__pycache__/_cubic.cpython-311.pyc,, +scipy/interpolate/__pycache__/_fitpack2.cpython-311.pyc,, +scipy/interpolate/__pycache__/_fitpack_impl.cpython-311.pyc,, +scipy/interpolate/__pycache__/_fitpack_py.cpython-311.pyc,, +scipy/interpolate/__pycache__/_fitpack_repro.cpython-311.pyc,, +scipy/interpolate/__pycache__/_interpolate.cpython-311.pyc,, +scipy/interpolate/__pycache__/_ndbspline.cpython-311.pyc,, +scipy/interpolate/__pycache__/_ndgriddata.cpython-311.pyc,, +scipy/interpolate/__pycache__/_pade.cpython-311.pyc,, +scipy/interpolate/__pycache__/_polyint.cpython-311.pyc,, +scipy/interpolate/__pycache__/_rbf.cpython-311.pyc,, +scipy/interpolate/__pycache__/_rbfinterp.cpython-311.pyc,, +scipy/interpolate/__pycache__/_rgi.cpython-311.pyc,, +scipy/interpolate/__pycache__/dfitpack.cpython-311.pyc,, +scipy/interpolate/__pycache__/fitpack.cpython-311.pyc,, +scipy/interpolate/__pycache__/fitpack2.cpython-311.pyc,, +scipy/interpolate/__pycache__/interpnd.cpython-311.pyc,, +scipy/interpolate/__pycache__/interpolate.cpython-311.pyc,, +scipy/interpolate/__pycache__/ndgriddata.cpython-311.pyc,, +scipy/interpolate/__pycache__/polyint.cpython-311.pyc,, +scipy/interpolate/__pycache__/rbf.cpython-311.pyc,, +scipy/interpolate/_bary_rational.py,sha256=X7qtKb8vxJfXHQ0QXnuwJvWKcgppY98cGiwB5VrHDwI,27972 +scipy/interpolate/_bsplines.py,sha256=Ef0Q2BqFck84UidLUNJhCYPCEI3vXa1Ln9rzUAgTl1Q,84775 +scipy/interpolate/_cubic.py,sha256=EYu03F-l4oie0sgibENi-KhYJv0clr7ELcneDLJtc3k,38395 +scipy/interpolate/_dfitpack.cpython-311-x86_64-linux-gnu.so,sha256=Fq30rsYZeWxJ2g41whZ6sXAZtTIrinXlC3E1GKmYJRI,350473 +scipy/interpolate/_dierckx.cpython-311-x86_64-linux-gnu.so,sha256=gsfSHRyZU25stT2ohmP79beicrE_7qkfvnvzXKUepnI,154209 +scipy/interpolate/_fitpack.cpython-311-x86_64-linux-gnu.so,sha256=A351_72JrLMiAQ4SKeXKvIsrSIYlb0CA5jIEkIjZZlM,91409 +scipy/interpolate/_fitpack2.py,sha256=2a-qgUvVsixP8x0T8aBGZD0eEFCzNCsgxUau92ZOy14,89921 +scipy/interpolate/_fitpack_impl.py,sha256=iKPcMTFmZweOwMWzQdlG83Vv1khAOvETza3lO3z2jC8,28510 +scipy/interpolate/_fitpack_py.py,sha256=sCzWA-X8ulb0bn-YcaBq9Zo1fpHD0nAoKmURIMbqGek,32157 +scipy/interpolate/_fitpack_repro.py,sha256=RB7_I76197ICXGjs8vKmGj-EzotRrcfNPtNhTO_mjhw,36981 +scipy/interpolate/_interpnd.cpython-311-x86_64-linux-gnu.so,sha256=8BgAW_OJxgkZKGDwzTuEZdUx7qX8Bsq-3gGaGkFO14E,310792 +scipy/interpolate/_interpolate.py,sha256=TDf2XjoWURScQ80orCECwlxlR8Ya3WnhB_z2mGHXmaA,80439 +scipy/interpolate/_ndbspline.py,sha256=HiT3tLo3zoHdnWMN33hb-NAV0mMYd6prytC9Tz1EnKY,14597 +scipy/interpolate/_ndgriddata.py,sha256=aSJ5uzoA_Sqznb-NtJpOlxe6Y9NewMg9PGccSXbT42w,12068 +scipy/interpolate/_pade.py,sha256=OBorKWc3vCSGlsWrajoF1_7WeNd9QtdbX0wOHLdRI2A,1827 +scipy/interpolate/_polyint.py,sha256=K0o8FcReHeZi2oIUTngYZDVugfm-iVWTZ5c-FdvzuDw,38957 +scipy/interpolate/_ppoly.cpython-311-x86_64-linux-gnu.so,sha256=88LbtVf7y63xTgRslGtEGaAaAJfvflFK_-xPIhmPIAs,309856 +scipy/interpolate/_rbf.py,sha256=qGujX6VsA5xH5E0wILEvn2S4AVkqQisXZBDmqZsYhhQ,11681 +scipy/interpolate/_rbfinterp.py,sha256=OekCXOlPAI4TvSSbAHcJPiJjAICp4bZQVzJFC0Tj5co,19722 +scipy/interpolate/_rbfinterp_pythran.cpython-311-x86_64-linux-gnu.so,sha256=wuuEuFy4eagHFSRKgbF9EJ55qmz5Cf-zUsltoF4PCOo,256504 +scipy/interpolate/_rgi.py,sha256=YC8WOY-TenR5W9BNn1am32CS9DVeO3-OAwcKE5Nluyk,30774 +scipy/interpolate/_rgi_cython.cpython-311-x86_64-linux-gnu.so,sha256=V3Tm9fT_3v90wIVghQ8PB_WCooGgxMvJImstDUf5i2o,145720 +scipy/interpolate/dfitpack.py,sha256=lRSKk1GcuWHJCyBXjRlg5lupLzugQHrR47tWL0vYvzc,594 +scipy/interpolate/fitpack.py,sha256=aCH6A3dRouuXW47tK5lEdd2pJa39LCkewY-1zTlI8Hc,702 +scipy/interpolate/fitpack2.py,sha256=P15_3gM5eZQYb_-K3c70xKdeIGM81u5WAkVhY8ei4N0,817 +scipy/interpolate/interpnd.py,sha256=3AQP8UZsQD0lNLmEJzKflA5k22eGuiVUlUjedHgvFZE,704 +scipy/interpolate/interpolate.py,sha256=Aiu_dJ_oxq-Y1VXns5N5u5K1Wng2hzCgRgRiDhTAiVI,754 +scipy/interpolate/ndgriddata.py,sha256=VbvvoDPdWmrk8871y5olPS9StX0S_B27j_oGMAyj8QQ,636 +scipy/interpolate/polyint.py,sha256=ek1EtbIbLLwehb8XDSKeNvIdjTfDQoQ9CSu4TbY8Vbo,672 +scipy/interpolate/rbf.py,sha256=6oBxdpsKY8bH36nQnRNiLB9C1bNri8b2PHz9IsUIr-w,519 +scipy/interpolate/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/interpolate/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/interpolate/tests/__pycache__/test_bary_rational.cpython-311.pyc,, +scipy/interpolate/tests/__pycache__/test_bsplines.cpython-311.pyc,, +scipy/interpolate/tests/__pycache__/test_fitpack.cpython-311.pyc,, +scipy/interpolate/tests/__pycache__/test_fitpack2.cpython-311.pyc,, +scipy/interpolate/tests/__pycache__/test_gil.cpython-311.pyc,, +scipy/interpolate/tests/__pycache__/test_interpnd.cpython-311.pyc,, +scipy/interpolate/tests/__pycache__/test_interpolate.cpython-311.pyc,, +scipy/interpolate/tests/__pycache__/test_ndgriddata.cpython-311.pyc,, +scipy/interpolate/tests/__pycache__/test_pade.cpython-311.pyc,, +scipy/interpolate/tests/__pycache__/test_polyint.cpython-311.pyc,, +scipy/interpolate/tests/__pycache__/test_rbf.cpython-311.pyc,, +scipy/interpolate/tests/__pycache__/test_rbfinterp.cpython-311.pyc,, +scipy/interpolate/tests/__pycache__/test_rgi.cpython-311.pyc,, +scipy/interpolate/tests/data/bug-1310.npz,sha256=jWgDwLOY8nBMI28dG56OXt4GvRZaCrsPIoKBq71FWuk,2648 +scipy/interpolate/tests/data/estimate_gradients_hang.npy,sha256=QGwQhXQX_16pjYzSiUXJ0OT1wk-SpIrQ6Pq5Vb8kd_E,35680 +scipy/interpolate/tests/data/gcvspl.npz,sha256=A86BVabLoMG_CiRBoQwigZH5Ft7DbLggcjQpgRKWu6g,3138 +scipy/interpolate/tests/test_bary_rational.py,sha256=GU9goarqzTWEpyFsGbvz4RH5xWFkZR_jFdnmE3AHuoI,15448 +scipy/interpolate/tests/test_bsplines.py,sha256=raPe2TjQih9OBRu_hnPrpFCujwvHfU-2SMcrhHTLriI,131879 +scipy/interpolate/tests/test_fitpack.py,sha256=cFJmwsWhdysO-BEpZ5pMHo6sXSGO1TYWWg_12omcvvk,16589 +scipy/interpolate/tests/test_fitpack2.py,sha256=AqDBy1CbtRVUNrFjPtq1FH1HgKkCTQIBqlCfEFnPQBM,61289 +scipy/interpolate/tests/test_gil.py,sha256=BPC_Ig9lRg28mVHIqdSqWnwBKLukTXFkbrdqUYuskq4,1831 +scipy/interpolate/tests/test_interpnd.py,sha256=tLWoXApHQW800JfRk-hn5KyH1ViOvuZXtTGrtTvtKLQ,15525 +scipy/interpolate/tests/test_interpolate.py,sha256=YrBZtU7FrQnjkpDsazDdieuuijONIGvDCGQtpfMLT70,99203 +scipy/interpolate/tests/test_ndgriddata.py,sha256=b_AMpiIj3mlslZXHMnwOqDdI6ORXnO4McbpjGh51dL0,11025 +scipy/interpolate/tests/test_pade.py,sha256=5gmdgTBoJGsY-d813it9JP5Uh8Wc88dz3vPQ2pRZdNk,3868 +scipy/interpolate/tests/test_polyint.py,sha256=wUZqVdoSRbXm_n7rfcLQ3C_dGCkPxEG-MdpjmBPR7vQ,37296 +scipy/interpolate/tests/test_rbf.py,sha256=eoFUrp861RWX4SDbe6VJfDd9_vh9a-f6xwoOrfn7JtA,7021 +scipy/interpolate/tests/test_rbfinterp.py,sha256=Sk_e-H18y97dZ1dgCjMxr9bywAUseLBbou7PwlWQ16k,19094 +scipy/interpolate/tests/test_rgi.py,sha256=-SbdMuFMYgbqoRA6iQJrqEq5-WBTxgJpB8EQOx46NQs,46278 +scipy/io/__init__.py,sha256=XegFIpTjKz9NXsHPLcvnYXT-mzUrMqPJUD7a8dhUK_0,2735 +scipy/io/__pycache__/__init__.cpython-311.pyc,, +scipy/io/__pycache__/_fortran.cpython-311.pyc,, +scipy/io/__pycache__/_idl.cpython-311.pyc,, +scipy/io/__pycache__/_mmio.cpython-311.pyc,, +scipy/io/__pycache__/_netcdf.cpython-311.pyc,, +scipy/io/__pycache__/harwell_boeing.cpython-311.pyc,, +scipy/io/__pycache__/idl.cpython-311.pyc,, +scipy/io/__pycache__/mmio.cpython-311.pyc,, +scipy/io/__pycache__/netcdf.cpython-311.pyc,, +scipy/io/__pycache__/wavfile.cpython-311.pyc,, +scipy/io/_fast_matrix_market/__init__.py,sha256=pCuwuPJgkxc3DmXf9N1LR8BRPW1h80Zg8628MUJJqiM,17247 +scipy/io/_fast_matrix_market/__pycache__/__init__.cpython-311.pyc,, +scipy/io/_fast_matrix_market/_fmm_core.cpython-311-x86_64-linux-gnu.so,sha256=4xYmD1mZxbXzvJVer1enA8jVSaBY8qRszfSJ67Jlwag,3908456 +scipy/io/_fortran.py,sha256=pgbB0LbOKEfPk07y-9IQXUyT7Kx_wHP0AyGPLtC53yM,10893 +scipy/io/_harwell_boeing/__init__.py,sha256=90qYbBzDEoTMG8ouVLGnTU2GMsY4BYOOtwJdoKT3Zz8,164 +scipy/io/_harwell_boeing/__pycache__/__init__.cpython-311.pyc,, +scipy/io/_harwell_boeing/__pycache__/_fortran_format_parser.cpython-311.pyc,, +scipy/io/_harwell_boeing/__pycache__/hb.cpython-311.pyc,, +scipy/io/_harwell_boeing/_fortran_format_parser.py,sha256=qvHmXonHRYMYTc-sV7TxRwxdrt4WRZk4rgawnwcleQ0,9003 +scipy/io/_harwell_boeing/hb.py,sha256=qOZJxT-bhlpCjADyv3GGu7rBIoHs2w3y5L6-OOHq6Qw,19404 +scipy/io/_harwell_boeing/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/io/_harwell_boeing/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/io/_harwell_boeing/tests/__pycache__/test_fortran_format.cpython-311.pyc,, +scipy/io/_harwell_boeing/tests/__pycache__/test_hb.cpython-311.pyc,, +scipy/io/_harwell_boeing/tests/test_fortran_format.py,sha256=hPH4AmfUmyBrDU3C_Rx3j7yaGEjefQJOai4rfxMHuV0,2383 +scipy/io/_harwell_boeing/tests/test_hb.py,sha256=jYbRWktqO5bgXDh8i9O_u_KDTpYQcMx_blw7Pn66Nd0,2516 +scipy/io/_idl.py,sha256=sgL0II6EcAe6Mtp_SdqmAIvvMGq9UFsWeH7M8RTGvIY,27000 +scipy/io/_mmio.py,sha256=Pk9Qmf4r-g7-ZQE9cCsu9_BaqiQJDRcnYlJL840WeQo,32094 +scipy/io/_netcdf.py,sha256=Bz6ywNgaX1hYWDpa2tCjAqvKi17k0DpNfc4VCuchIqA,39634 +scipy/io/_test_fortran.cpython-311-x86_64-linux-gnu.so,sha256=dkmjWtAbbHPsuSNVMMZEkceM0EFfpcKFdBwH9ATaKUA,63529 +scipy/io/arff/__init__.py,sha256=czaV8hvY6JnmEn2qyU3_fzcy_P55aXVT09OzGnhJT9I,805 +scipy/io/arff/__pycache__/__init__.cpython-311.pyc,, +scipy/io/arff/__pycache__/_arffread.cpython-311.pyc,, +scipy/io/arff/__pycache__/arffread.cpython-311.pyc,, +scipy/io/arff/_arffread.py,sha256=uOomT89u1pVrDdGKujArTE_e6Xz3Cw2f2ACPTPS6DlY,25752 +scipy/io/arff/arffread.py,sha256=KW6mASZrW2J1wmC3GYucy1EO7y-rg5MgcGDMyMTpfw4,575 +scipy/io/arff/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/io/arff/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/io/arff/tests/__pycache__/test_arffread.cpython-311.pyc,, +scipy/io/arff/tests/data/iris.arff,sha256=fTS6VWSX6dwoM16mYoo30dvLoJChriDcLenHAy0ZkVM,7486 +scipy/io/arff/tests/data/missing.arff,sha256=ga__Te95i1Yf-yu2kmYDBVTz0xpSTemz7jS74_OfI4I,120 +scipy/io/arff/tests/data/nodata.arff,sha256=DBXdnIe28vrbf4C-ar7ZgeFIa0kGD4pDBJ4YP-z4QHQ,229 +scipy/io/arff/tests/data/quoted_nominal.arff,sha256=01mPSc-_OpcjXFy3EoIzKdHCmzWSag4oK1Ek2tUc6_U,286 +scipy/io/arff/tests/data/quoted_nominal_spaces.arff,sha256=bcMOl-E0I5uTT27E7bDTbW2mYOp9jS8Yrj0NfFjQdKU,292 +scipy/io/arff/tests/data/test1.arff,sha256=nUFDXUbV3sIkur55rL4qvvBdqUTbzSRrTiIPwmtmG8I,191 +scipy/io/arff/tests/data/test10.arff,sha256=va7cXiWX_AnHf-_yz25ychD8hOgf7-sEMJITGwQla30,199009 +scipy/io/arff/tests/data/test11.arff,sha256=G-cbOUUxuc3859vVkRDNjcLRSnUu8-T-Y8n0dSpvweo,241 +scipy/io/arff/tests/data/test2.arff,sha256=COGWCYV9peOGLqlYWhqG4ANT2UqlAtoVehbJLW6fxHw,300 +scipy/io/arff/tests/data/test3.arff,sha256=jUTWGaZbzoeGBneCmKu6V6RwsRPp9_0sJaSCdBg6tyI,72 +scipy/io/arff/tests/data/test4.arff,sha256=mtyuSFKUeiRR2o3mNlwvDCxWq4DsHEBHj_8IthNzp-M,238 +scipy/io/arff/tests/data/test5.arff,sha256=2Q_prOBCfM_ggsGRavlOaJ_qnWPFf2akFXJFz0NtTIE,365 +scipy/io/arff/tests/data/test6.arff,sha256=V8FNv-WUdurutFXKTOq8DADtNDrzfW65gyOlv-lquOU,195 +scipy/io/arff/tests/data/test7.arff,sha256=rxsqdev8WeqC_nKJNwetjVYXA1-qCzWmaHlMvSaVRGk,559 +scipy/io/arff/tests/data/test8.arff,sha256=c34srlkU8hkXYpdKXVozEutiPryR8bf_5qEmiGQBoG4,429 +scipy/io/arff/tests/data/test9.arff,sha256=ZuXQQzprgmTXxENW7we3wBJTpByBlpakrvRgG8n7fUk,311 +scipy/io/arff/tests/test_arffread.py,sha256=bWB6uAqr6Iadm3fWhhlo6M2fM0WTKrLTC1BmXYKidJ4,13094 +scipy/io/harwell_boeing.py,sha256=BzISbfgVnrO3vYx-mP2xkLqh9r3oq64NNPbEY03P6v0,538 +scipy/io/idl.py,sha256=A1QV5h6xBa1cTIejjsc1NfjG0MqMbxqFqXicC2OLNrM,504 +scipy/io/matlab/__init__.py,sha256=PMqq8WBOEOPH_v5IVpuxrBTqXOFBJVuegOCml76pr1s,2247 +scipy/io/matlab/__pycache__/__init__.cpython-311.pyc,, +scipy/io/matlab/__pycache__/_byteordercodes.cpython-311.pyc,, +scipy/io/matlab/__pycache__/_mio.cpython-311.pyc,, +scipy/io/matlab/__pycache__/_mio4.cpython-311.pyc,, +scipy/io/matlab/__pycache__/_mio5.cpython-311.pyc,, +scipy/io/matlab/__pycache__/_mio5_params.cpython-311.pyc,, +scipy/io/matlab/__pycache__/_miobase.cpython-311.pyc,, +scipy/io/matlab/__pycache__/byteordercodes.cpython-311.pyc,, +scipy/io/matlab/__pycache__/mio.cpython-311.pyc,, +scipy/io/matlab/__pycache__/mio4.cpython-311.pyc,, +scipy/io/matlab/__pycache__/mio5.cpython-311.pyc,, +scipy/io/matlab/__pycache__/mio5_params.cpython-311.pyc,, +scipy/io/matlab/__pycache__/mio5_utils.cpython-311.pyc,, +scipy/io/matlab/__pycache__/mio_utils.cpython-311.pyc,, +scipy/io/matlab/__pycache__/miobase.cpython-311.pyc,, +scipy/io/matlab/__pycache__/streams.cpython-311.pyc,, +scipy/io/matlab/_byteordercodes.py,sha256=AUMjfdIARtCGqyMgDDJBGa_EncP5ioYrEzyZqXOLRxU,1983 +scipy/io/matlab/_mio.py,sha256=HON1CysjlVZms7kymAQO-m5q-34BJ9tI225clKkgZbM,13810 +scipy/io/matlab/_mio4.py,sha256=W9FaF7ryhbT10TEgHcuovZkm7w2zIU3tDtnb5gIlYlQ,20993 +scipy/io/matlab/_mio5.py,sha256=hBvVcnAUZX2hLZzQDfSnlUQVWtQlD53ur8w7VkpT9Qs,33989 +scipy/io/matlab/_mio5_params.py,sha256=skRcKG70vOlVMSb1TO67LB5312zuOUSrcOK7mOCcUss,8201 +scipy/io/matlab/_mio5_utils.cpython-311-x86_64-linux-gnu.so,sha256=mFKziI16_hxQPU4Ah-hkxENGiDKazIUu7hSuWl7fhUE,254864 +scipy/io/matlab/_mio_utils.cpython-311-x86_64-linux-gnu.so,sha256=hpOwJZ8ME_UrxkoygcUja2uvpUBXY66cAmG_n6JxNsA,70504 +scipy/io/matlab/_miobase.py,sha256=AmMxD5puIqxYYv8MCSdF2wUDqwOTSoyo9I6hh51myaQ,13102 +scipy/io/matlab/_streams.cpython-311-x86_64-linux-gnu.so,sha256=Ag8KZA_BAhNU1rCIinn2mZL_7yBttYYgXFUec0iU5e4,141568 +scipy/io/matlab/byteordercodes.py,sha256=fHZVESDgIeYzGYtRlknPQ2nUqscQQ_4FhQc_ClkjBvQ,528 +scipy/io/matlab/mio.py,sha256=2b0WwgQ0rBkoJ4X0hgPl889PpR7Q0i7ibSLtTQVuTto,539 +scipy/io/matlab/mio4.py,sha256=hkhpBa4p0euf2rUjJviBWJ4TJs1wkUads3mX1fgDYMc,508 +scipy/io/matlab/mio5.py,sha256=jEFeEEkXWOhziPreDt0SqfAtOo9JMauxoODAbbXHmoQ,638 +scipy/io/matlab/mio5_params.py,sha256=2RWROlfc8RmXmcXGyM-be107Tm55ibc_U7DztJ2b4fc,593 +scipy/io/matlab/mio5_utils.py,sha256=DYiQfx5BkyDVnK4nZ3xPa-5tbpZE7WRx4SIdBmPVfSI,520 +scipy/io/matlab/mio_utils.py,sha256=VZPx03BNFbrQjB1CNbDCvvXUuP0_VoNRFV1R0YoB2iw,518 +scipy/io/matlab/miobase.py,sha256=3qQoq8Y7ZQpHIufUCzg6RAeaLqU3qTAozmuYbaOd7BI,565 +scipy/io/matlab/streams.py,sha256=0Aww9GRGGnRmiAMBAzIAXsFGySu5YCUNG-cHP1omYjI,513 +scipy/io/matlab/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/io/matlab/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/io/matlab/tests/__pycache__/test_byteordercodes.cpython-311.pyc,, +scipy/io/matlab/tests/__pycache__/test_mio.cpython-311.pyc,, +scipy/io/matlab/tests/__pycache__/test_mio5_utils.cpython-311.pyc,, +scipy/io/matlab/tests/__pycache__/test_mio_funcs.cpython-311.pyc,, +scipy/io/matlab/tests/__pycache__/test_mio_utils.cpython-311.pyc,, +scipy/io/matlab/tests/__pycache__/test_miobase.cpython-311.pyc,, +scipy/io/matlab/tests/__pycache__/test_pathological.cpython-311.pyc,, +scipy/io/matlab/tests/__pycache__/test_streams.cpython-311.pyc,, +scipy/io/matlab/tests/data/bad_miuint32.mat,sha256=CVkYHp_U4jxYKRRHSuZ5fREop4tJjnZcQ02DKfObkRA,272 +scipy/io/matlab/tests/data/bad_miutf8_array_name.mat,sha256=V-jfVMkYyy8qRGcOIsNGcoO0GCgTxchrsQUBGBnfWHE,208 +scipy/io/matlab/tests/data/big_endian.mat,sha256=2ttpiaH2B6nmHnq-gsFeMvZ2ZSLOlpzt0IJiqBTcc8M,273 +scipy/io/matlab/tests/data/broken_utf8.mat,sha256=nm8aotRl6NIxlM3IgPegKR3EeevYZoJCrYpV4Sa1T5I,216 +scipy/io/matlab/tests/data/corrupted_zlib_checksum.mat,sha256=X4dvE7K9DmGEF3D6I-48hC86W41jB54H7bD8KTXjtYA,276 +scipy/io/matlab/tests/data/corrupted_zlib_data.mat,sha256=DfE1YBH-pYw-dAaEeKA6wZcyKeo9GlEfrzZtql-fO_w,3451 +scipy/io/matlab/tests/data/debigged_m4.mat,sha256=8QbD-LzoYbKSfOYPRRw-oelDJscwufYp5cqLfZ1hB0c,1024 +scipy/io/matlab/tests/data/japanese_utf8.txt,sha256=rgxiBH7xmEKF91ZkB3oMLrqABBXINEMHPXDKdZXNBEY,270 +scipy/io/matlab/tests/data/little_endian.mat,sha256=FQP_2MNod-FFF-JefN7ZxovQ6QLCdHQ0DPL_qBCP44Y,265 +scipy/io/matlab/tests/data/logical_sparse.mat,sha256=qujUUpYewaNsFKAwGpYS05z7kdUv9TQZTHV5_lWhRrs,208 +scipy/io/matlab/tests/data/malformed1.mat,sha256=DTuTr1-IzpLMBf8u5DPb3HXmw9xJo1aWfayA5S_3zUI,2208 +scipy/io/matlab/tests/data/miuint32_for_miint32.mat,sha256=romrBP_BS46Sl2-pKWsUnxYDad2wehyjq4wwLaVqums,272 +scipy/io/matlab/tests/data/miutf8_array_name.mat,sha256=Vo8JptFr-Kg2f2cEoDg8LtELSjVNyccdJY74WP_kqtc,208 +scipy/io/matlab/tests/data/nasty_duplicate_fieldnames.mat,sha256=bvdmj6zDDUIpOfIP8J4Klo107RYCDd5VK5gtOYx3GsU,8168 +scipy/io/matlab/tests/data/one_by_zero_char.mat,sha256=Z3QdZjTlOojjUpS0cfBP4XfNQI3GTjqU0n_pnAzgQhU,184 +scipy/io/matlab/tests/data/parabola.mat,sha256=ENWuWX_uwo4Av16dIGOwnbMReAMrShDhalkq8QUI8Rg,729 +scipy/io/matlab/tests/data/single_empty_string.mat,sha256=4uTmX0oydTjmtnhxqi9SyPWCG2I24gj_5LarS80bPik,171 +scipy/io/matlab/tests/data/some_functions.mat,sha256=JA736oG3s8PPdKhdsYK-BndLUsGrJCJAIRBseSIEZtM,1397 +scipy/io/matlab/tests/data/sqr.mat,sha256=3DtGl_V4wABKCDQ0P3He5qfOzpUTC-mINdK73MKS7AM,679 +scipy/io/matlab/tests/data/test3dmatrix_6.1_SOL2.mat,sha256=-odiBIQAbOLERg0Vg682QHGfs7C8MaA_gY77OWR8x78,232 +scipy/io/matlab/tests/data/test3dmatrix_6.5.1_GLNX86.mat,sha256=G5siwvZ-7Uv5KJ6h7AA3OHL6eiFsd8Lnjx4IcoByzCU,232 +scipy/io/matlab/tests/data/test3dmatrix_7.1_GLNX86.mat,sha256=EVj1wPnoyWGIdTpkSj3YAwqzTAm27eqZNxCaJAs3pwU,213 +scipy/io/matlab/tests/data/test3dmatrix_7.4_GLNX86.mat,sha256=S_Sd3sxorDd8tZ5CxD5_J8vXbfcksLWzhUQY5b82L9g,213 +scipy/io/matlab/tests/data/test_empty_struct.mat,sha256=WoC7g7TyXqNr2T0d5xE3IUq5PRzatE0mxXjqoHX5Xec,173 +scipy/io/matlab/tests/data/test_mat4_le_floats.mat,sha256=2xvn3Cg4039shJl62T-bH-VeVP_bKtwdqvGfIxv8FJ4,38 +scipy/io/matlab/tests/data/test_skip_variable.mat,sha256=pJLVpdrdEb-9SMZxaDu-uryShlIi90l5LfXhvpVipJ0,20225 +scipy/io/matlab/tests/data/testbool_8_WIN64.mat,sha256=_xBw_2oZA7u9Xs6GJItUpSIEV4jVdfdcwzmLNFWM6ow,185 +scipy/io/matlab/tests/data/testcell_6.1_SOL2.mat,sha256=OWOBzNpWTyAHIcZABRytVMcABiRYgEoMyF9gDaIkFe4,536 +scipy/io/matlab/tests/data/testcell_6.5.1_GLNX86.mat,sha256=7111TN_sh1uMHmYx-bjd_v9uaAnWhJMhrQFAtAw6Nvk,536 +scipy/io/matlab/tests/data/testcell_7.1_GLNX86.mat,sha256=62p6LRW6PbM-Y16aUeGVhclTVqS5IxPUtsohe7MjrYo,283 +scipy/io/matlab/tests/data/testcell_7.4_GLNX86.mat,sha256=NkTA8UW98hIQ0t5hGx_leG-MzNroDelYwqx8MPnO63Q,283 +scipy/io/matlab/tests/data/testcellnest_6.1_SOL2.mat,sha256=AeNaog8HUDCVrIuGICAXYu9SGDsvV6qeGjgvWHrVQho,568 +scipy/io/matlab/tests/data/testcellnest_6.5.1_GLNX86.mat,sha256=Gl4QA0yYwGxjiajjgWS939WVAM-W2ahNIm9wwMaT5oc,568 +scipy/io/matlab/tests/data/testcellnest_7.1_GLNX86.mat,sha256=CUGtkwIU9CBa0Slx13mbaM67_ec0p-unZdu8Z4YYM3c,228 +scipy/io/matlab/tests/data/testcellnest_7.4_GLNX86.mat,sha256=TeTk5yjl5j_bcnmIkpzuYHxGGQXNu-rK6xOsN4t6lX8,228 +scipy/io/matlab/tests/data/testcomplex_4.2c_SOL2.mat,sha256=WOwauWInSVUFBuOJ1Bo3spmUQ3UWUIlsIe4tYGlrU7o,176 +scipy/io/matlab/tests/data/testcomplex_6.1_SOL2.mat,sha256=GpAEccizI8WvlrBPdvlKUv6uKbZOo_cjUK3WVVb2lo4,352 +scipy/io/matlab/tests/data/testcomplex_6.5.1_GLNX86.mat,sha256=3MEbf0zJdQGAO7x-pzFCup2QptfYJHQG59z0vVOdxl4,352 +scipy/io/matlab/tests/data/testcomplex_7.1_GLNX86.mat,sha256=VNHV2AIEkvPuhae1kKIqt5t8AMgUyr0L_CAp-ykLxt4,247 +scipy/io/matlab/tests/data/testcomplex_7.4_GLNX86.mat,sha256=8rWGf5bqY7_2mcd5w5gTYgMkXVePlLL8qT7lh8kApn0,247 +scipy/io/matlab/tests/data/testdouble_4.2c_SOL2.mat,sha256=MzT7OYPEUXHYNPBrVkyKEaG5Cas2aOA0xvrO7l4YTrQ,103 +scipy/io/matlab/tests/data/testdouble_6.1_SOL2.mat,sha256=DpB-mVKx1gsjl-3IbxfxHNuzU5dnuku-MDQCA8kALVI,272 +scipy/io/matlab/tests/data/testdouble_6.5.1_GLNX86.mat,sha256=4hY5VEubavNEv5KvcqQnd7MWWvFUzHXXpYIqUuUt-50,272 +scipy/io/matlab/tests/data/testdouble_7.1_GLNX86.mat,sha256=N2QOOIXPyy0zPZZ_qY7xIDaodMGrTq3oXNBEHZEscw0,232 +scipy/io/matlab/tests/data/testdouble_7.4_GLNX86.mat,sha256=TrkJ4Xx_dC9YrPdewlsOvYs_xag7gT3cN4HkDsJmT8I,232 +scipy/io/matlab/tests/data/testemptycell_5.3_SOL2.mat,sha256=g96Vh9FpNhkiWKsRm4U6KqeKd1hNAEyYSD7IVzdzwsU,472 +scipy/io/matlab/tests/data/testemptycell_6.5.1_GLNX86.mat,sha256=2Zw-cMv-Mjbs2HkSl0ubmh_htFUEpkn7XVHG8iM32o0,472 +scipy/io/matlab/tests/data/testemptycell_7.1_GLNX86.mat,sha256=t5Ar8EgjZ7fkTUHIVpdXg-yYWo_MBaigMDJUGWEIrmU,218 +scipy/io/matlab/tests/data/testemptycell_7.4_GLNX86.mat,sha256=5PPvfOoL-_Q5ou_2nIzIrHgeaOZGFXGxAFdYzCQuwEQ,218 +scipy/io/matlab/tests/data/testfunc_7.4_GLNX86.mat,sha256=ScTKftENe78imbMc0I5ouBlIMcEEmZgu8HVKWAMNr58,381 +scipy/io/matlab/tests/data/testhdf5_7.4_GLNX86.mat,sha256=ZoVbGk38_MCppZ0LRr6OE07HL8ZB4rHXgMj9LwUBgGg,4168 +scipy/io/matlab/tests/data/testmatrix_4.2c_SOL2.mat,sha256=14YMiKAN9JCPTqSDXxa58BK6Un7EM4hEoSGAUuwKWGQ,151 +scipy/io/matlab/tests/data/testmatrix_6.1_SOL2.mat,sha256=ZdjNbcIE75V5Aht5EVBvJX26aabvNqbUH0Q9VBnxBS4,216 +scipy/io/matlab/tests/data/testmatrix_6.5.1_GLNX86.mat,sha256=OB82QgB6SwtsxT4t453OVSj-B777XrHGEGOMgMD1XGc,216 +scipy/io/matlab/tests/data/testmatrix_7.1_GLNX86.mat,sha256=-TYB0kREY7i7gt5x15fOYjXi410pXuDWUFxPYuMwywI,193 +scipy/io/matlab/tests/data/testmatrix_7.4_GLNX86.mat,sha256=l9psDc5K1bpxNeuFlyYIYauswLnOB6dTX6-jvelW0kU,193 +scipy/io/matlab/tests/data/testminus_4.2c_SOL2.mat,sha256=2914WYQajPc9-Guy3jDOLU3YkuE4OXC_63FUSDzJzX0,38 +scipy/io/matlab/tests/data/testminus_6.1_SOL2.mat,sha256=2X2fZKomz0ktBvibj7jvHbEvt2HRA8D6hN9qA1IDicw,200 +scipy/io/matlab/tests/data/testminus_6.5.1_GLNX86.mat,sha256=i364SgUCLSYRjQsyygvY1ArjEaO5uLip3HyU-R7zaLo,200 +scipy/io/matlab/tests/data/testminus_7.1_GLNX86.mat,sha256=gtYNC9_TciYdq8X9IwyGEjiw2f1uCVTGgiOPFOiQbJc,184 +scipy/io/matlab/tests/data/testminus_7.4_GLNX86.mat,sha256=eXcoTM8vKuh4tQnl92lwdDaqssGB6G9boSHh3FOCkng,184 +scipy/io/matlab/tests/data/testmulti_4.2c_SOL2.mat,sha256=Zhyu2KCsseSJ5NARdS00uwddCs4wmjcWNP2LJFns2-Q,240 +scipy/io/matlab/tests/data/testmulti_7.1_GLNX86.mat,sha256=KI3H58BVj6k6MFsj8icSbjy_0Z-jOesWN5cafStLPG8,276 +scipy/io/matlab/tests/data/testmulti_7.4_GLNX86.mat,sha256=Yr4YKCP27yMWlK5UOK3BAEOAyMr-m0yYGcj8v1tCx-I,276 +scipy/io/matlab/tests/data/testobject_6.1_SOL2.mat,sha256=kzLxy_1o1HclPXWyA-SX5gl6LsG1ioHuN4eS6x5iZio,800 +scipy/io/matlab/tests/data/testobject_6.5.1_GLNX86.mat,sha256=dq_6_n0v7cUz9YziXn-gZFNc9xYtNxZ8exTsziWIM7s,672 +scipy/io/matlab/tests/data/testobject_7.1_GLNX86.mat,sha256=3z-boFw0SC5142YPOLo2JqdusPItVzjCFMhXAQNaQUQ,306 +scipy/io/matlab/tests/data/testobject_7.4_GLNX86.mat,sha256=5OwLTMgCBlxsDfiEUzlVjqcSbVQG-X5mIw5JfW3wQXA,306 +scipy/io/matlab/tests/data/testonechar_4.2c_SOL2.mat,sha256=BCvppGhO19-j-vxAvbdsORIiyuJqzCuQog9Ao8V1lvA,40 +scipy/io/matlab/tests/data/testonechar_6.1_SOL2.mat,sha256=ThppTHGJFrUfal5tewS70DL00dSwk1otazuVdJrTioE,200 +scipy/io/matlab/tests/data/testonechar_6.5.1_GLNX86.mat,sha256=SBfN6e7Vz1rAdi8HLguYXcHUHk1viaXTYccdEyhhob4,200 +scipy/io/matlab/tests/data/testonechar_7.1_GLNX86.mat,sha256=m8W9GqvflfAsizkhgAfT0lLcxuegZIWCLNuHVX69Jac,184 +scipy/io/matlab/tests/data/testonechar_7.4_GLNX86.mat,sha256=t9ObKZOLy3vufnER8TlvQcUkd_wmXbJSdQoG4f3rVKY,184 +scipy/io/matlab/tests/data/testscalarcell_7.4_GLNX86.mat,sha256=5LX9sLH7Y6h_N_a1XRN2GuMgp_P7ECpPsXGDOypAJg0,194 +scipy/io/matlab/tests/data/testsimplecell.mat,sha256=Aoeh0PX2yiLDTwkxMEyZ_CNX2mJHZvyfuFJl817pA1c,220 +scipy/io/matlab/tests/data/testsparse_4.2c_SOL2.mat,sha256=dFUcB1gunfWqexgR4YDZ_Ec0w0HffM1DUE1C5PVfDDc,223 +scipy/io/matlab/tests/data/testsparse_6.1_SOL2.mat,sha256=9Sgd_SPkGNim7ZL0xgD71qml3DK0yDHYC7VSNLNQEXA,280 +scipy/io/matlab/tests/data/testsparse_6.5.1_GLNX86.mat,sha256=jp1ILNxLyV6XmCCGxAz529XoZ9dhCqGEO-ExPH70_Pg,328 +scipy/io/matlab/tests/data/testsparse_7.1_GLNX86.mat,sha256=k8QuQ_4Zu7FWTzHjRnHCVZ9Yu5vwNP0WyNzu6TuiY-4,229 +scipy/io/matlab/tests/data/testsparse_7.4_GLNX86.mat,sha256=QbZOCqIvnaK0XOH3kaSXBe-m_1_Rb33psq8E-WMSBTU,229 +scipy/io/matlab/tests/data/testsparsecomplex_4.2c_SOL2.mat,sha256=QMVoBXVyl9RBGvAjLoiW85kAXYJ-hHprUMegEG69A5w,294 +scipy/io/matlab/tests/data/testsparsecomplex_6.1_SOL2.mat,sha256=WfEroAT5YF4HGAKq3jTJxlFrKaTCh3rwlSlKu__VjwA,304 +scipy/io/matlab/tests/data/testsparsecomplex_6.5.1_GLNX86.mat,sha256=e0s6cyoKJeYMArdceHpnKDvtCVcw7XuB44OBDHpoa6U,400 +scipy/io/matlab/tests/data/testsparsecomplex_7.1_GLNX86.mat,sha256=kgHcuq-deI2y8hfkGwlMOkW7lntexdPHfuz0ar6b3jo,241 +scipy/io/matlab/tests/data/testsparsecomplex_7.4_GLNX86.mat,sha256=rYCaWNLXK7f_jjMc6_UvZz6ZDuMCuVRmJV5RyeXiDm8,241 +scipy/io/matlab/tests/data/testsparsefloat_7.4_GLNX86.mat,sha256=hnNV6GZazEeqTXuA9vcOUo4xam_UnKRYGYH9PUGTLv8,219 +scipy/io/matlab/tests/data/teststring_4.2c_SOL2.mat,sha256=cAhec51DlqIYfDXXGaumOE3Hqb3cFWM1UsUK3K_lDP8,375 +scipy/io/matlab/tests/data/teststring_6.1_SOL2.mat,sha256=ciFzNGMO7gjYecony-E8vtOwBY4vXIUhyug6Euaz3Kg,288 +scipy/io/matlab/tests/data/teststring_6.5.1_GLNX86.mat,sha256=yrJrpLiwLvU_LI1D6rw1Pk1qJK1YlC7Cmw7lwyJVLtw,288 +scipy/io/matlab/tests/data/teststring_7.1_GLNX86.mat,sha256=zo7sh-8dMpGqhoNxLEnfz3Oc7RonxiY5j0B3lxk0e8o,224 +scipy/io/matlab/tests/data/teststring_7.4_GLNX86.mat,sha256=igL_CvtAcNEa1nxunDjQZY5wS0rJOlzsUkBiDreJssk,224 +scipy/io/matlab/tests/data/teststringarray_4.2c_SOL2.mat,sha256=pRldk-R0ig1k3ouvaR9oVtBwZsQcDW_b4RBEDYu1-Vk,156 +scipy/io/matlab/tests/data/teststringarray_6.1_SOL2.mat,sha256=B9IdaSsyb0wxjyYyHOj_GDO0laAeWDEJhoEhC9xdm1E,232 +scipy/io/matlab/tests/data/teststringarray_6.5.1_GLNX86.mat,sha256=t4tKGJg2NEg_Ar5MkOjCoQb2hVL8Q_Jdh9FF4TPL_4g,232 +scipy/io/matlab/tests/data/teststringarray_7.1_GLNX86.mat,sha256=lpYkBZX8K-c4FO5z0P9DMfYc7Y-yzyg11J6m-19uYTU,203 +scipy/io/matlab/tests/data/teststringarray_7.4_GLNX86.mat,sha256=lG-c7U-5Bo8j8xZLpd0JAsMYwewT6cAw4eJCZH5xf6E,203 +scipy/io/matlab/tests/data/teststruct_6.1_SOL2.mat,sha256=3GJbA4O7LP57J6IYzmJqTPeSJrEaiNSk-rg7h0ANR1w,608 +scipy/io/matlab/tests/data/teststruct_6.5.1_GLNX86.mat,sha256=fRbqAnzTeOU3dTQx7O24MfMVFr6pM5u594FRrPPkYJE,552 +scipy/io/matlab/tests/data/teststruct_7.1_GLNX86.mat,sha256=mCtI_Yot08NazvWHvehOZbTV4bW_I4-D5jBgJ6T9EbI,314 +scipy/io/matlab/tests/data/teststruct_7.4_GLNX86.mat,sha256=52qaF4HRCtPl1jE6ljbkEl2mofZVAPpmBxrm-J5OTTI,314 +scipy/io/matlab/tests/data/teststructarr_6.1_SOL2.mat,sha256=vneCpWBwApBGfeKzdZcybyajxjR-ZYf64j0l08_hU84,528 +scipy/io/matlab/tests/data/teststructarr_6.5.1_GLNX86.mat,sha256=gqhRpSfNNB5SR9sCp-wWrvokr5VV_heGnvco6dmfOvY,472 +scipy/io/matlab/tests/data/teststructarr_7.1_GLNX86.mat,sha256=6VDU0mtTBEG0bBHqKP1p8xq846eMhSZ_WvBZv8MzE7M,246 +scipy/io/matlab/tests/data/teststructarr_7.4_GLNX86.mat,sha256=ejtyxeeX_W1a2rNrEUUiG9txPW8_UtSgt8IaDOxE2pg,246 +scipy/io/matlab/tests/data/teststructnest_6.1_SOL2.mat,sha256=sbi0wUwOrbU-gBq3lyDwhAbvchdtOJkflOR_MU7uGKA,496 +scipy/io/matlab/tests/data/teststructnest_6.5.1_GLNX86.mat,sha256=uTkKtrYBTuz4kICVisEaG7V5C2nJDKjy92mPDswTLPE,416 +scipy/io/matlab/tests/data/teststructnest_7.1_GLNX86.mat,sha256=o4F2jOhYyNpJCo-BMg6v_ITZQvjenXfXHLq94e7iwRo,252 +scipy/io/matlab/tests/data/teststructnest_7.4_GLNX86.mat,sha256=CNXO12O6tedEuMG0jNma4qfbTgCswAbHwh49a3uE3Yk,252 +scipy/io/matlab/tests/data/testunicode_7.1_GLNX86.mat,sha256=KV97FCW-1XZiXrwXJoZPbgyAht79oIFHa917W1KFLwE,357 +scipy/io/matlab/tests/data/testunicode_7.4_GLNX86.mat,sha256=9-8xzACZleBkMjZnbr8t4Ncs9B6mbzrONDblPnteBPU,357 +scipy/io/matlab/tests/data/testvec_4_GLNX86.mat,sha256=GQzR3mBVS266_NBfrRC9X0dLgmeu8Jl4r4ZYMOrn1V0,93 +scipy/io/matlab/tests/test_byteordercodes.py,sha256=FCHBAxeQZlhvTXw-AO-ukwTWvpN7NzmncBEDJ1P4de4,938 +scipy/io/matlab/tests/test_mio.py,sha256=d39L1re_SLGXLoN1arqS8THjZmWUjZNWUi-ft0UwvQU,47168 +scipy/io/matlab/tests/test_mio5_utils.py,sha256=eacgGg0TaQXOkG7iaeYovtWyjPgYCY50mHPoPjnHMTI,5389 +scipy/io/matlab/tests/test_mio_funcs.py,sha256=2BgaB9bSwy2M-4gUBrgKsD290UxjLmyuiI3gW4SbVyo,1390 +scipy/io/matlab/tests/test_mio_utils.py,sha256=GX85RuLqr2HxS5_f7ZgrxbhswJy2GPQQoQbiQYg0s14,1594 +scipy/io/matlab/tests/test_miobase.py,sha256=CGefrU6m_GpOwaKr_Q93Z5zKp5nuv791kjxcNNP8iiE,1460 +scipy/io/matlab/tests/test_pathological.py,sha256=-Efeq2x2yAaLK28EKpai1vh4HsZTCteF_hY_vEGWndA,1055 +scipy/io/matlab/tests/test_streams.py,sha256=jgwUF4PyXfKtw24A5VsfTJNCeLd9os8mKeMMf-nLS28,7715 +scipy/io/mmio.py,sha256=Dc5HqR8BXOD0wir63VTVczuZcLjSxEjbSbeZd4y27po,526 +scipy/io/netcdf.py,sha256=RKhmlybZwbFNKA4US6xLX6O2IUDCmdkToosPt4bAUX0,533 +scipy/io/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/io/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/io/tests/__pycache__/test_fortran.cpython-311.pyc,, +scipy/io/tests/__pycache__/test_idl.cpython-311.pyc,, +scipy/io/tests/__pycache__/test_mmio.cpython-311.pyc,, +scipy/io/tests/__pycache__/test_netcdf.cpython-311.pyc,, +scipy/io/tests/__pycache__/test_paths.cpython-311.pyc,, +scipy/io/tests/__pycache__/test_wavfile.cpython-311.pyc,, +scipy/io/tests/data/Transparent Busy.ani,sha256=vwoK3ysYo87-TwzvjerHjFjSPIGpw83jjiMDXcHPWjA,4362 +scipy/io/tests/data/array_float32_1d.sav,sha256=A_xXWkfS1sQCxP4ONezeEZvlKEXwZ1TPG2rCCFdmBNM,2628 +scipy/io/tests/data/array_float32_2d.sav,sha256=qJmN94pywXznXMHzt-L6DJgaIq_FfruVKJl_LMaI8UU,3192 +scipy/io/tests/data/array_float32_3d.sav,sha256=U7P6As7Nw6LdBY1pTOaW9C-O_NlXLXZwSgbT3H8Z8uk,13752 +scipy/io/tests/data/array_float32_4d.sav,sha256=Tl6erEw_Zq3dwVbVyPXRWqB83u_o4wkIVFOe3wQrSro,6616 +scipy/io/tests/data/array_float32_5d.sav,sha256=VmaBgCD854swYyLouDMHJf4LL6iUNgajEOQf0pUjHjg,7896 +scipy/io/tests/data/array_float32_6d.sav,sha256=lb7modI0OQDweJWbDxEV2OddffKgMgq1tvCy5EK6sOU,19416 +scipy/io/tests/data/array_float32_7d.sav,sha256=pqLWIoxev9sLCs9LLwxFlM4RCFwxHC4Q0dEEz578mpI,3288 +scipy/io/tests/data/array_float32_8d.sav,sha256=R8A004f9XLWvF6eKMNEqIrC6PGP1vLZr9sFqawqM8ZA,13656 +scipy/io/tests/data/array_float32_pointer_1d.sav,sha256=sV7qFNwHK-prG5vODa7m5HYK7HlH_lqdfsI5Y1RWDyg,2692 +scipy/io/tests/data/array_float32_pointer_2d.sav,sha256=b0brvK6xQeezoRuujmEcJNw2v6bfASLM3FSY9u5dMSg,3256 +scipy/io/tests/data/array_float32_pointer_3d.sav,sha256=a_Iyg1YjPBRh6B-N_n_BGIVjFje4K-EPibKV-bPbF7E,13816 +scipy/io/tests/data/array_float32_pointer_4d.sav,sha256=cXrkHHlPyoYstDL_OJ15-55sZOOeDNW2OJ3KWhBv-Kk,6680 +scipy/io/tests/data/array_float32_pointer_5d.sav,sha256=gRVAZ6jeqFZyIQI9JVBHed9Y0sjS-W4bLseb01rIcGs,7960 +scipy/io/tests/data/array_float32_pointer_6d.sav,sha256=9yic-CQiS0YR_ow2yUA2Nix0Nb_YCKMUsIgPhgcJT1c,19480 +scipy/io/tests/data/array_float32_pointer_7d.sav,sha256=Rp1s8RbW8eoEIRTqxba4opAyY0uhTuyy3YkwRlNspQU,3352 +scipy/io/tests/data/array_float32_pointer_8d.sav,sha256=Wk3Dd2ClAwWprXLKZon3blY7aMvMrJqz_NXzK0J5MFY,13720 +scipy/io/tests/data/example_1.nc,sha256=EkfC57dWXeljgXy5sidrJHJG12D1gmQUyPDK18WzlT4,1736 +scipy/io/tests/data/example_2.nc,sha256=wywMDspJ2QT431_sJUr_5DHqG3pt9VTvDJzfR9jeWCk,272 +scipy/io/tests/data/example_3_maskedvals.nc,sha256=P9N92jCJgKJo9VmNd7FeeJSvl4yUUFwBy6JpR4MeuME,1424 +scipy/io/tests/data/fortran-3x3d-2i.dat,sha256=oYCXgtY6qqIqLAhoh_46ob_RVQRcV4uu333pOiLKgRM,451 +scipy/io/tests/data/fortran-mixed.dat,sha256=zTi7RLEnyAat_DdC3iSEcSbyDtAu0aTKwUT-tExjasw,40 +scipy/io/tests/data/fortran-sf8-11x1x10.dat,sha256=KwaOrZOAe-wRhuxvmHIK-Wr59us40MmiA9QyWtIAUaA,888 +scipy/io/tests/data/fortran-sf8-15x10x22.dat,sha256=5ohvjjOUcIsGimSqDhpUUKwflyhVsfwKL5ElQe_SU0I,26408 +scipy/io/tests/data/fortran-sf8-1x1x1.dat,sha256=Djmoip8zn-UcxWGUPKV5wzKOYOf7pbU5L7HaR3BYlec,16 +scipy/io/tests/data/fortran-sf8-1x1x5.dat,sha256=Btgavm3w3c9md_5yFfq6Veo_5IK9KtlLF1JEPeHhZoU,48 +scipy/io/tests/data/fortran-sf8-1x1x7.dat,sha256=L0r9yAEMbfMwYQytzYsS45COqaVk-o_hi6zRY3yIiO4,64 +scipy/io/tests/data/fortran-sf8-1x3x5.dat,sha256=c2LTocHclwTIeaR1Pm3mVMyf5Pl_imfjIFwi4Lpv0Xs,128 +scipy/io/tests/data/fortran-si4-11x1x10.dat,sha256=OesvSIGsZjpKZlZsV74PNwy0Co0KH8-3gxL9-DWoa08,448 +scipy/io/tests/data/fortran-si4-15x10x22.dat,sha256=OJcKyw-GZmhHb8REXMsHDn7W5VP5bhmxgVPIAYG-Fj4,13208 +scipy/io/tests/data/fortran-si4-1x1x1.dat,sha256=1Lbx01wZPCOJHwg99MBDuc6QZKdMnccxNgICt4omfFM,12 +scipy/io/tests/data/fortran-si4-1x1x5.dat,sha256=L1St4yiHTA3v91JjnndYfUrdKfT1bWxckwnnrscEZXc,28 +scipy/io/tests/data/fortran-si4-1x1x7.dat,sha256=Dmqt-tD1v2DiPZkghGGZ9Ss-nJGfei-3yFXPO5Acpk4,36 +scipy/io/tests/data/fortran-si4-1x3x5.dat,sha256=3vl6q93m25jEcZVKD0CuKNHmhZwZKp-rv0tfHoPVP88,68 +scipy/io/tests/data/invalid_pointer.sav,sha256=JmgoISXC4r5fSmI5FqyapvmzQ4qpYLf-9N7_Et1p1HQ,1280 +scipy/io/tests/data/null_pointer.sav,sha256=P_3a_sU614F3InwM82jSMtWycSZkvqRn1apwd8XxbtE,2180 +scipy/io/tests/data/scalar_byte.sav,sha256=dNJbcE5OVDY_wHwN_UBUtfIRd13Oqu-RBEO74g5SsBA,2076 +scipy/io/tests/data/scalar_byte_descr.sav,sha256=DNTmDgDWOuzlQnrceER6YJ0NutUUwZ9tozVMBWQmuuY,2124 +scipy/io/tests/data/scalar_complex32.sav,sha256=NGd-EvmFZgt8Ko5MP3T_TLwyby6yS0BXM_OW8197hpU,2076 +scipy/io/tests/data/scalar_complex64.sav,sha256=gFBWtxuAajazupGFSbvlWUPDYK-JdWgZcEWih2-7IYU,2084 +scipy/io/tests/data/scalar_float32.sav,sha256=EwWQw2JTwq99CHVpDAh4R20R0jWaynXABaE2aTRmXrs,2072 +scipy/io/tests/data/scalar_float64.sav,sha256=iPcDlgF1t0HoabvNLWCbSiTPIa9rvVEbOGGmE_3Ilsk,2076 +scipy/io/tests/data/scalar_heap_pointer.sav,sha256=JXZbPmntXILsNOuLIKL8qdu8gDJekYrlN9DQxAWve0E,2204 +scipy/io/tests/data/scalar_int16.sav,sha256=kDBLbPYGo2pzmZDhyl8rlDv0l6TMEWLIoLtmgJXDMkk,2072 +scipy/io/tests/data/scalar_int32.sav,sha256=IzJwLvEoqWLO5JRaHp8qChfptlauU-ll3rb0TfDDM8Y,2072 +scipy/io/tests/data/scalar_int64.sav,sha256=-aSHQRiaE3wjAxINwuLX33_8qmWl4GUkTH45elTkA-8,2076 +scipy/io/tests/data/scalar_string.sav,sha256=AQ7iZ8dKk9QfnLdP9idKv1ojz0M_SwpL7XAUmbHodDQ,2124 +scipy/io/tests/data/scalar_uint16.sav,sha256=928fmxLsQM83ue4eUS3IEnsLSEzmHBklDA59JAUvGK8,2072 +scipy/io/tests/data/scalar_uint32.sav,sha256=X3RbPhS6_e-u-1S1gMyF7s9ys7oV6ZNwPrJqJ6zIJsk,2072 +scipy/io/tests/data/scalar_uint64.sav,sha256=ffVyS2oKn9PDtWjJdOjSRT2KZzy6Mscgd4u540MPHC4,2076 +scipy/io/tests/data/struct_arrays.sav,sha256=TzH-Gf0JgbP_OgeKYbV8ZbJXvWt1VetdUr6C_ziUlzg,2580 +scipy/io/tests/data/struct_arrays_byte_idl80.sav,sha256=oOmhTnmKlE60-JMJRRMv_zfFs4zqioMN8QA0ldlgQZo,1388 +scipy/io/tests/data/struct_arrays_replicated.sav,sha256=kXU8j9QI2Q8D22DVboH9fwwDQSLVvuWMJl3iIOhUAH8,2936 +scipy/io/tests/data/struct_arrays_replicated_3d.sav,sha256=s3ZUwhT6TfiVfk4AGBSyxYR4FRzo4sZQkTxFCJbIQMI,4608 +scipy/io/tests/data/struct_inherit.sav,sha256=4YajBZcIjqMQ4CI0lRUjXpYDY3rI5vzJJzOYpjWqOJk,2404 +scipy/io/tests/data/struct_pointer_arrays.sav,sha256=fkldO6-RO2uAN_AI9hM6SEaBPrBf8TfiodFGJpViaqg,2408 +scipy/io/tests/data/struct_pointer_arrays_replicated.sav,sha256=eKVerR0LoD9CuNlpwoBcn7BIdj3-8x56VNg--Qn7Hgc,2492 +scipy/io/tests/data/struct_pointer_arrays_replicated_3d.sav,sha256=vsqhGpn3YkZEYjQuI-GoX8Jg5Dv8A2uRtP0kzQkq4lg,2872 +scipy/io/tests/data/struct_pointers.sav,sha256=Zq6d5V9ZijpocxJpimrdFTQG827GADBkMB_-6AweDYI,2268 +scipy/io/tests/data/struct_pointers_replicated.sav,sha256=aIXPBIXTfPmd4IaLpYD5W_HUoIOdL5Y3Hj7WOeRM2sA,2304 +scipy/io/tests/data/struct_pointers_replicated_3d.sav,sha256=t1jhVXmhW6VotQMNZ0fv0sDO2pkN4EutGsx5No4VJQs,2456 +scipy/io/tests/data/struct_scalars.sav,sha256=LYICjERzGJ_VvYgtwJ_Up2svQTv8wBzNcVD3nsd_OPg,2316 +scipy/io/tests/data/struct_scalars_replicated.sav,sha256=lw3fC4kppi6BUWAd4n81h8_KgoUdiJl5UIt3CvJIuBs,2480 +scipy/io/tests/data/struct_scalars_replicated_3d.sav,sha256=xVAup6f1dSV_IsSwBQC3KVs0eLEZ6-o5EaZT9yUoDZI,3240 +scipy/io/tests/data/test-1234Hz-le-1ch-10S-20bit-extra.wav,sha256=h8CXsW5_ShKR197t_d-TUTlgDqOZ-7wK_EcVGucR-aY,74 +scipy/io/tests/data/test-44100Hz-2ch-32bit-float-be.wav,sha256=gjv__ng9xH_sm34hyxCbCgO4AP--PZAfDOArH5omkjM,3586 +scipy/io/tests/data/test-44100Hz-2ch-32bit-float-le.wav,sha256=H0LLyv2lc2guzYGnx4DWXU6vB57JrRX-G9Dd4qGh0hM,3586 +scipy/io/tests/data/test-44100Hz-be-1ch-4bytes.wav,sha256=KKz9SXv_R3gX_AVeED2vyhYnj4BvD1uyDiKpCT3ulZ0,17720 +scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-early-eof-no-data.wav,sha256=YX1g8qdCOAG16vX9G6q4SsfCj2ZVk199jzDQ8S0zWYI,72 +scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-early-eof.wav,sha256=bFrsRqw0QXmsaDtjD6TFP8hZ5jEYMyaCmt-ka_C6GNk,1024 +scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-incomplete-chunk.wav,sha256=zMnhvZvrP4kyOWKVKfbBneyv03xvzgqXYhHNxsAxDJ4,13 +scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-rf64.wav,sha256=GSJpCuezlvHbhP3Cr4jNWmz4zG46XZ6jci2fWtiMN0k,17756 +scipy/io/tests/data/test-44100Hz-le-1ch-4bytes.wav,sha256=9qTCvpgdz3raecVN1ViggHPnQjBf47xmXod9iCDsEik,17720 +scipy/io/tests/data/test-48000Hz-2ch-64bit-float-le-wavex.wav,sha256=EqYBnEgTxTKvaTAtdA5HIl47CCFIje93y4hawR6Pyu0,7792 +scipy/io/tests/data/test-8000Hz-be-3ch-5S-24bit.wav,sha256=hGYchxQFjrtvZCBo0ULi-xdZ8krqXcKdTl3NSUfqe8k,90 +scipy/io/tests/data/test-8000Hz-le-1ch-1byte-ulaw.wav,sha256=BoUCDct3GiY_JJV_HoghF3mzAebT18j02c-MOn19KxU,70 +scipy/io/tests/data/test-8000Hz-le-2ch-1byteu.wav,sha256=R6EJshvQp5YVR4GB9u4Khn5HM1VMfJUj082i8tkBIJ8,1644 +scipy/io/tests/data/test-8000Hz-le-3ch-5S-24bit-inconsistent.wav,sha256=t2Mgri3h6JLQDekrwIhDBOaG46OUzHynUz0pKbvOpNU,90 +scipy/io/tests/data/test-8000Hz-le-3ch-5S-24bit-rf64.wav,sha256=iSGyqouX53NaEB33tzKXa11NRIY97GG40_pqWF_k5LQ,126 +scipy/io/tests/data/test-8000Hz-le-3ch-5S-24bit.wav,sha256=yCv0uh-ux_skJsxeOjzog0YBk3ZQO_kw5HJHMqtVyI0,90 +scipy/io/tests/data/test-8000Hz-le-3ch-5S-36bit.wav,sha256=oiMVsQV9-qGBz_ZwsfAkgA9BZXNjXbH4zxCGvvdT0RY,120 +scipy/io/tests/data/test-8000Hz-le-3ch-5S-45bit.wav,sha256=e97XoPrPGJDIh8nO6mii__ViY5yVlmt4OnPQoDN1djs,134 +scipy/io/tests/data/test-8000Hz-le-3ch-5S-53bit.wav,sha256=wbonKlzvzQ_bQYyBsj-GwnihZOhn0uxfKhL_nENCGNc,150 +scipy/io/tests/data/test-8000Hz-le-3ch-5S-64bit.wav,sha256=Uu5QPQcbtnFlnxOd4zFGxpiTC4wgdp6JOoYJ2VMZIU0,164 +scipy/io/tests/data/test-8000Hz-le-4ch-9S-12bit.wav,sha256=1F67h8tr2xz0C5K21T9y9gspcGA0qnSOzsl2vjArAMs,116 +scipy/io/tests/data/test-8000Hz-le-5ch-9S-5bit.wav,sha256=TJvGU7GpgXdCrdrjzMlDtpieDMnDK-lWMMqlWjT23BY,89 +scipy/io/tests/data/various_compressed.sav,sha256=H-7pc-RCQx5y6_IbHk1hB6OfnhvuPyW6EJq4EwI9iMc,1015 +scipy/io/tests/test_fortran.py,sha256=0cUeyIczUhtaRMFPTqHwH1U_Rm1djCaD1vDbi-6DRBo,8609 +scipy/io/tests/test_idl.py,sha256=2QpZGBWoSCwH5jchc9wvot2L03p0qqeqzjqux5KP-bM,20569 +scipy/io/tests/test_mmio.py,sha256=Di_-QKmcX3EoTc-j2a7PwrNFcpZSYkfHStvArw_gj0Y,29250 +scipy/io/tests/test_netcdf.py,sha256=0OR5kfTlx9SonwZPT9P8gRz7p0HEZy_6Jwr7PkfXrpY,19459 +scipy/io/tests/test_paths.py,sha256=3f12UO-N11JJjkw8jBgVAhz5KVrkokJbHrnvfklDhNA,3190 +scipy/io/tests/test_wavfile.py,sha256=oiNewKAmFkCvX0wlH-jCBpJ8HJWt-tVMdA6byrfYm7w,18412 +scipy/io/wavfile.py,sha256=Lp2pYttpWPhHvO41mRR-kUFD4NRn8JXN_oBG67WHV2E,30465 +scipy/linalg/__init__.pxd,sha256=0MlO-o_Kr8gg--_ipXEHFGtB8pZdHX8VX4wLYe_UzPg,53 +scipy/linalg/__init__.py,sha256=UOFZX4GCusrQjcaPB6NNNerhsVDe707BvlfE7XB8KzU,7517 +scipy/linalg/__pycache__/__init__.cpython-311.pyc,, +scipy/linalg/__pycache__/_basic.cpython-311.pyc,, +scipy/linalg/__pycache__/_decomp.cpython-311.pyc,, +scipy/linalg/__pycache__/_decomp_cholesky.cpython-311.pyc,, +scipy/linalg/__pycache__/_decomp_cossin.cpython-311.pyc,, +scipy/linalg/__pycache__/_decomp_ldl.cpython-311.pyc,, +scipy/linalg/__pycache__/_decomp_lu.cpython-311.pyc,, +scipy/linalg/__pycache__/_decomp_polar.cpython-311.pyc,, +scipy/linalg/__pycache__/_decomp_qr.cpython-311.pyc,, +scipy/linalg/__pycache__/_decomp_qz.cpython-311.pyc,, +scipy/linalg/__pycache__/_decomp_schur.cpython-311.pyc,, +scipy/linalg/__pycache__/_decomp_svd.cpython-311.pyc,, +scipy/linalg/__pycache__/_expm_frechet.cpython-311.pyc,, +scipy/linalg/__pycache__/_matfuncs.cpython-311.pyc,, +scipy/linalg/__pycache__/_matfuncs_inv_ssq.cpython-311.pyc,, +scipy/linalg/__pycache__/_matfuncs_sqrtm.cpython-311.pyc,, +scipy/linalg/__pycache__/_misc.cpython-311.pyc,, +scipy/linalg/__pycache__/_procrustes.cpython-311.pyc,, +scipy/linalg/__pycache__/_sketches.cpython-311.pyc,, +scipy/linalg/__pycache__/_solvers.cpython-311.pyc,, +scipy/linalg/__pycache__/_special_matrices.cpython-311.pyc,, +scipy/linalg/__pycache__/_testutils.cpython-311.pyc,, +scipy/linalg/__pycache__/basic.cpython-311.pyc,, +scipy/linalg/__pycache__/blas.cpython-311.pyc,, +scipy/linalg/__pycache__/decomp.cpython-311.pyc,, +scipy/linalg/__pycache__/decomp_cholesky.cpython-311.pyc,, +scipy/linalg/__pycache__/decomp_lu.cpython-311.pyc,, +scipy/linalg/__pycache__/decomp_qr.cpython-311.pyc,, +scipy/linalg/__pycache__/decomp_schur.cpython-311.pyc,, +scipy/linalg/__pycache__/decomp_svd.cpython-311.pyc,, +scipy/linalg/__pycache__/interpolative.cpython-311.pyc,, +scipy/linalg/__pycache__/lapack.cpython-311.pyc,, +scipy/linalg/__pycache__/matfuncs.cpython-311.pyc,, +scipy/linalg/__pycache__/misc.cpython-311.pyc,, +scipy/linalg/__pycache__/special_matrices.cpython-311.pyc,, +scipy/linalg/_basic.py,sha256=zxHeSh1_k3HGyQl8bbW1Q4zAgg_QPlsCczYFXxSEZtY,77637 +scipy/linalg/_blas_subroutines.h,sha256=v5j0yyW_pBFpkeccHLk4ZooAehksxRstV_A-ZlgGFy4,18190 +scipy/linalg/_cythonized_array_utils.cpython-311-x86_64-linux-gnu.so,sha256=aZNHkodg7MmxKqYpBhWeBLcdGd9IHA724djsjRnWT0U,460768 +scipy/linalg/_cythonized_array_utils.pxd,sha256=OlWTbJt3gmdrfRFyx_Vz7GTmDTjr8dids5HA4TfC6R0,890 +scipy/linalg/_cythonized_array_utils.pyi,sha256=HZWXvJdpXGcydTEjkaL_kXIcxpcMqBBfFz7ZhscsRNo,340 +scipy/linalg/_decomp.py,sha256=zN2sxfJn3TTa9Y5pQa4FPRsL2s0CFutJ7IuCy0iuz4w,62432 +scipy/linalg/_decomp_cholesky.py,sha256=eby_d0hZymPNsouiFEFeQ1Am8e3WFQAzKsXePmqhkjs,14192 +scipy/linalg/_decomp_cossin.py,sha256=JBkbZQPgvi5WiZm5h6ZB7cgsr-XV2vjib6p6sZgtah4,9625 +scipy/linalg/_decomp_interpolative.cpython-311-x86_64-linux-gnu.so,sha256=tXzswc1F-DnyEqWNvYXw02mKNsyB78gPM0tE0wENzb8,829792 +scipy/linalg/_decomp_ldl.py,sha256=d5w6AAyDwxNwvV8EZOs144ZGUdF8II77NphA_f2k8Nc,12612 +scipy/linalg/_decomp_lu.py,sha256=1nqF2fw1Erf_04narGazcptmY_58lE38KO2r99l-sbY,13256 +scipy/linalg/_decomp_lu_cython.cpython-311-x86_64-linux-gnu.so,sha256=5CJPl1tbPKbnh5NiO3RjVQSOeqmvR1IehZRs19D4KLs,123064 +scipy/linalg/_decomp_lu_cython.pyi,sha256=EASCkhrbJcBHo4zMYCUl1qRJDvPrvCqxd1TfqMWEd_U,291 +scipy/linalg/_decomp_polar.py,sha256=yrlXNtJv3pLWvvgnLkrWTXBOeRXNGKNFS-t71BqIyK0,3654 +scipy/linalg/_decomp_qr.py,sha256=xD7J3UqwN3a9gyF9l_Za9t0ErP_1kmEA8gFiTK8Mofk,15506 +scipy/linalg/_decomp_qz.py,sha256=ajCygb5S4kLsNbtcKcKDIBEj8UPr-LPW5WEt1mdA3JA,16455 +scipy/linalg/_decomp_schur.py,sha256=XjrQQGCiLoLu5xSXkTyB8eYXAxJFzakbDn5WsmpF9hA,12173 +scipy/linalg/_decomp_svd.py,sha256=gd6OX3KlZfXuMUOxtEUMjpIKOOByAdOXEP0Jp8OHAo8,17139 +scipy/linalg/_decomp_update.cpython-311-x86_64-linux-gnu.so,sha256=Z5Hx8gRR-zUyKFv9hozUPhwoFgrWRzyotZ1s70mmBSs,349880 +scipy/linalg/_expm_frechet.py,sha256=_RvX6m1ntUhLlbeTUrbvv48a80UW4kCM4gFBBedxx58,12442 +scipy/linalg/_fblas.cpython-311-x86_64-linux-gnu.so,sha256=yr5lrcrRCimKoY-gb5lrsYPbNbxBMPKJIGA8r6HqBUo,1040737 +scipy/linalg/_flapack.cpython-311-x86_64-linux-gnu.so,sha256=--KJvNgUtllvSL9odxa5WN3iQjU9s2yoZ4k92tfaVA8,2576945 +scipy/linalg/_lapack_subroutines.h,sha256=Wk88h_VA1tkF168pjCl8E8UVFbUTm8jWbI2hH8NZ12c,239333 +scipy/linalg/_linalg_pythran.cpython-311-x86_64-linux-gnu.so,sha256=Wy2MxJionPsxTZlLeNqYVrb-VzcusKhz-WEwr5qK9U0,140520 +scipy/linalg/_matfuncs.py,sha256=kYjDgbyfefqeop_C18cC2B9kObbLOpv51_bpndAJqGI,31788 +scipy/linalg/_matfuncs_expm.cpython-311-x86_64-linux-gnu.so,sha256=xCUHgbaRDNC4tnH-NavRAYFm3ZR3uQto9X6_rsc1UYQ,511433 +scipy/linalg/_matfuncs_expm.pyi,sha256=wZAZfVtEbB78ljXgQoiL0I4yaPhmHOqIpGBYGQPvS6k,178 +scipy/linalg/_matfuncs_inv_ssq.py,sha256=8dL7xD6DU8D4h2YyHcYjRhZQvv1pSOEzMuKlGP6zonw,28095 +scipy/linalg/_matfuncs_schur_sqrtm.cpython-311-x86_64-linux-gnu.so,sha256=WIDBUsKfPvTxQnw14KU_8xYTtdYkygeI1tNKrHo59V0,495089 +scipy/linalg/_matfuncs_sqrtm.py,sha256=p7iyvXyiSXXRi2AKRK0EstG4FQi34uS4KCc0VKoYnPE,3423 +scipy/linalg/_matfuncs_sqrtm_triu.cpython-311-x86_64-linux-gnu.so,sha256=rmFhXwDNmzOn_majb35Z2VuNia6cp9XFUF6a8qoQ-Vw,130864 +scipy/linalg/_misc.py,sha256=udhvxGfEHxhS3ecQBuwQ65W9ezVQIaVBw8JOmfqH_oE,6301 +scipy/linalg/_procrustes.py,sha256=OC_ywJ_PbwElGsX_86jdqYzw-RyGrUp3ZB5whUOhGtc,3606 +scipy/linalg/_sketches.py,sha256=SeWX12sWtw-Eifr9Q2phyrsZVzc_snefbtTj_ICQgik,6609 +scipy/linalg/_solve_toeplitz.cpython-311-x86_64-linux-gnu.so,sha256=n_RhcLKcbX6-lDNVw9r6ZldMFOd7LitvH2TfiSqOE2w,150392 +scipy/linalg/_solvers.py,sha256=hhDUzv2taY3a52L8HkVbMsZ2ab5akqhiyhf7uUHi_cA,30154 +scipy/linalg/_special_matrices.py,sha256=0cnCnBD4qP8p9Rx5dNPUGoRQlfrqpLT056-LWep56Uo,40390 +scipy/linalg/_testutils.py,sha256=IWA5vvdZ8yaHeXo2IxpQLqG9q54YIomHscYs85q9pd0,1807 +scipy/linalg/basic.py,sha256=AuNvDlH8mnAJScycj4mV-Iq1M0bXxidpY4Vud_lRJlM,753 +scipy/linalg/blas.py,sha256=hnF8nO00t9OrP_AP4QzfAOXO9KojtDemq9Br1gCbw80,11782 +scipy/linalg/cython_blas.cpython-311-x86_64-linux-gnu.so,sha256=naKbR0YNz03pC34hS5LeR_LkNz0CSyNJBiGYy8UhZxc,201329 +scipy/linalg/cython_blas.pxd,sha256=DCPBxNWP-BvdT_REj6_a4TjUrNaf6sCq_XoxU3pEbfc,15592 +scipy/linalg/cython_blas.pyx,sha256=9iUdRoyiHzu6mFbMUEQnhCqkpqD6bDo_QPnVwIOy-3g,65304 +scipy/linalg/cython_lapack.cpython-311-x86_64-linux-gnu.so,sha256=WgxFknWwH02sKBBNsOqfVDzphxX9LpsECf__mElfES0,879585 +scipy/linalg/cython_lapack.pxd,sha256=Ld5hPwcYxpOPahFNsfNomsp0_DY8BfG-W8TmZxh-iYM,204556 +scipy/linalg/cython_lapack.pyx,sha256=odVC_GknEWmSo9tDA7wucppRlFV8fbO9KBaw94iD_2M,707012 +scipy/linalg/decomp.py,sha256=w9HTI1OxXpX_rL72qcmykc5dUWal7lTlAU8k-9Eq7Dg,708 +scipy/linalg/decomp_cholesky.py,sha256=1g45oc115ZZR3CfMW1bCPseF5ATz4Xf6Ih26NRqyjfs,649 +scipy/linalg/decomp_lu.py,sha256=FPo9NHe9wg1FhCaoVV1_4mdfNj0S4plT4dHr4vMl1U8,593 +scipy/linalg/decomp_qr.py,sha256=EJNpu6lSa36Eo-e4rbYu5kDlRTMse2mmGul_PLRFXHs,567 +scipy/linalg/decomp_schur.py,sha256=vkVK3y-055523Q__ptxVNatDebPBE1HD-DFBe7kEh3w,602 +scipy/linalg/decomp_svd.py,sha256=HrJqbmgde7d7EWxCsa9XkS9QuWgPYMFOHiF4NcAL_Qg,631 +scipy/linalg/interpolative.py,sha256=8kCZv1z3UtzBuPvompAUUjHToLta4ffvOjVVLSaRLeQ,32757 +scipy/linalg/lapack.py,sha256=xZW5TCKcgVZccUFc5vXEit8PirMlBMFUHm_MgcQZdpc,15937 +scipy/linalg/matfuncs.py,sha256=vYw39D2LukCRCFJpx0qx8tgHlRZEDZI2wZfZwhh-Ubo,744 +scipy/linalg/misc.py,sha256=uxpR80jJ5w5mslplWlL6tIathas8mEXvRIwDXYMcTOk,592 +scipy/linalg/special_matrices.py,sha256=OXkkDj-ypZHiC17RUerraAzO8dC9aDuVujzb3Ft3GDY,757 +scipy/linalg/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/linalg/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_basic.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_batch.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_blas.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_cython_blas.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_cython_lapack.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_cythonized_array_utils.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_decomp.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_decomp_cholesky.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_decomp_cossin.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_decomp_ldl.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_decomp_lu.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_decomp_polar.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_decomp_update.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_extending.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_fblas.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_interpolative.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_lapack.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_matfuncs.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_matmul_toeplitz.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_procrustes.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_sketches.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_solve_toeplitz.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_solvers.cpython-311.pyc,, +scipy/linalg/tests/__pycache__/test_special_matrices.cpython-311.pyc,, +scipy/linalg/tests/_cython_examples/extending.pyx,sha256=scunPSonBTtsidhd2hLtg-DPWoFkvzWcXDMYEO9iygo,887 +scipy/linalg/tests/_cython_examples/meson.build,sha256=DzG1UVjBrYOrtvgnaOVL0amQulrI8HTyYgryw2AhiKI,846 +scipy/linalg/tests/data/carex_15_data.npz,sha256=E_PhSRqHa79Z1-oQrSnB-bWZaiq5khbzHVv81lkBLB4,34462 +scipy/linalg/tests/data/carex_18_data.npz,sha256=Wfg5Rn8nUrffb7bUCUOW7dMqWSm3ZPf_oeZmZDHmysY,161487 +scipy/linalg/tests/data/carex_19_data.npz,sha256=OOj8ewQd8LI9flyhXq0aBl5kZ2Ee-ahIzH25P4Ct_Yc,34050 +scipy/linalg/tests/data/carex_20_data.npz,sha256=FOIi00pxGMcoShZ1xv7O7ne4TflRpca6Kl7p_zBU-h0,31231 +scipy/linalg/tests/data/carex_6_data.npz,sha256=GyoHNrVB6_XEubTADW2rKB5zyfuZE8biWBp4Gze2Avk,15878 +scipy/linalg/tests/data/gendare_20170120_data.npz,sha256=o9-rRR2dXCAkPg7YXNi2yWV2afuaD4O1vhZVhXg9VbU,2164 +scipy/linalg/tests/test_basic.py,sha256=GsiliR8bd55rDVVznN6t4UEqDtJ3msO4nBSPrApmPqs,79690 +scipy/linalg/tests/test_batch.py,sha256=ynDbxbmaFXbWSOJOBq0yQEpW-FAmvv_bu6RWHl2vC5Y,27873 +scipy/linalg/tests/test_blas.py,sha256=8w_6r4CBrif9MH69v15Iil5rEcyRDlUhgbbZnC8_Bck,41729 +scipy/linalg/tests/test_cython_blas.py,sha256=0Y2w1Btw6iatfodZE7z0lisJJLVCr70DAW-62he_sz4,4087 +scipy/linalg/tests/test_cython_lapack.py,sha256=McSFDUU4kgCavU1u3-uqBGlzUZiLGxM5qPfBFgPTqdE,796 +scipy/linalg/tests/test_cythonized_array_utils.py,sha256=IFvsqTaiq09K6p50gc1S2zndWyq8WcVn0770_Cd_j1g,4092 +scipy/linalg/tests/test_decomp.py,sha256=EPhA9NGXm1SJ27amvsXSIzaDOH6fnAwGDMKLqcgf06U,120247 +scipy/linalg/tests/test_decomp_cholesky.py,sha256=5WxQbSxK6134NztaoNu-d4OmudQRfhgeyf2LmyJdx1w,9743 +scipy/linalg/tests/test_decomp_cossin.py,sha256=b10EQSJzYwGwgEHj_s71tDPr59e3lZmid7M8G9qgv3A,12560 +scipy/linalg/tests/test_decomp_ldl.py,sha256=kJkYphaal2EUlRNd8XiaTTuTJF9B4TUH5oD793Fe8L8,4971 +scipy/linalg/tests/test_decomp_lu.py,sha256=spCYelU_CXmHAaKrJM4V5djLKq5MCeX4wN1SBCFkSOo,12629 +scipy/linalg/tests/test_decomp_polar.py,sha256=fGKl3Skqz6IpHBeFcq6bdqvS8M53rXx2Wh6Kx4f5T3Y,3287 +scipy/linalg/tests/test_decomp_update.py,sha256=MCSzhUD-bcCs1Ll5pHJqCdRTgEpimCglZ3lb8bzwZqs,68502 +scipy/linalg/tests/test_extending.py,sha256=eirY2TQ2IwWje-5hW_kqvS0SnA2xEzLeG5sE0P3zuvI,1751 +scipy/linalg/tests/test_fblas.py,sha256=Ykb7LKjbxPXAdJD-IkXMAsbUmXMAkku2FQCr-jlDTUE,18687 +scipy/linalg/tests/test_interpolative.py,sha256=EVmkopJjhzDOs6h6NoSkQ-d7qRZDsys58mt4sp8yOoE,8577 +scipy/linalg/tests/test_lapack.py,sha256=Gh3FQskUWIgyRJc1XQUjaDcAj9I__8yOpE0vBO5wI6w,138620 +scipy/linalg/tests/test_matfuncs.py,sha256=RCBaohm9PPoY7ybyH_TecFGy7IpeUlLqtHAFfulvdHM,43881 +scipy/linalg/tests/test_matmul_toeplitz.py,sha256=73Qe51lCXEWZGpxk8GYv0owDSlN0IpnLJPlI0nsCdhY,4088 +scipy/linalg/tests/test_procrustes.py,sha256=ZbCK1ULDF8DFXac1sxA6SmJgZSOv5fhuzStQp5wT0uc,7458 +scipy/linalg/tests/test_sketches.py,sha256=FLqc8wn9esU8LbSsWS7_OC0sZ-BcGPROqPurBM8BZXc,3954 +scipy/linalg/tests/test_solve_toeplitz.py,sha256=Msi6-fH0p1l85s5EHv8U9m7XhiywTha_g1On_WrbQcc,5111 +scipy/linalg/tests/test_solvers.py,sha256=vha9VtachDaJu50oFIj_Iwsf7Dz8IHeSQqxgAvpicGA,34526 +scipy/linalg/tests/test_special_matrices.py,sha256=5KkQSu3aFmnIa3m3eupNp2-f-L_KRYgWDFMSoD5fBM4,24940 +scipy/misc/__init__.py,sha256=dVfULY959nFwpl5NCxyCpiHyNcSNaR7HYOg7QU21a5s,135 +scipy/misc/__pycache__/__init__.cpython-311.pyc,, +scipy/misc/__pycache__/common.cpython-311.pyc,, +scipy/misc/__pycache__/doccer.cpython-311.pyc,, +scipy/misc/common.py,sha256=nAGQOVR9ZEAb703uhOVQZqf-z0iCM4EDhbHK4_h_Tdc,142 +scipy/misc/doccer.py,sha256=wHbpGV8todadz6MIzJHalDfRjiKI164qs6iMcHgsVu0,142 +scipy/ndimage/__init__.py,sha256=KUbDfnLPN7B-U650Nh-XVf7fQ0bW8vkEDPssG8oZsi4,5175 +scipy/ndimage/__pycache__/__init__.cpython-311.pyc,, +scipy/ndimage/__pycache__/_delegators.cpython-311.pyc,, +scipy/ndimage/__pycache__/_filters.cpython-311.pyc,, +scipy/ndimage/__pycache__/_fourier.cpython-311.pyc,, +scipy/ndimage/__pycache__/_interpolation.cpython-311.pyc,, +scipy/ndimage/__pycache__/_measurements.cpython-311.pyc,, +scipy/ndimage/__pycache__/_morphology.cpython-311.pyc,, +scipy/ndimage/__pycache__/_ndimage_api.cpython-311.pyc,, +scipy/ndimage/__pycache__/_ni_docstrings.cpython-311.pyc,, +scipy/ndimage/__pycache__/_ni_support.cpython-311.pyc,, +scipy/ndimage/__pycache__/_support_alternative_backends.cpython-311.pyc,, +scipy/ndimage/__pycache__/filters.cpython-311.pyc,, +scipy/ndimage/__pycache__/fourier.cpython-311.pyc,, +scipy/ndimage/__pycache__/interpolation.cpython-311.pyc,, +scipy/ndimage/__pycache__/measurements.cpython-311.pyc,, +scipy/ndimage/__pycache__/morphology.cpython-311.pyc,, +scipy/ndimage/_ctest.cpython-311-x86_64-linux-gnu.so,sha256=h98uh-F0_Ywmq7sQkE-zVgPCuj5JX3uZqeFVBgpYS0A,17008 +scipy/ndimage/_cytest.cpython-311-x86_64-linux-gnu.so,sha256=q3xZFBiOC1BU1gBdZ243PdQWDb7eEy4HCHzD0Se4rl0,92232 +scipy/ndimage/_delegators.py,sha256=EI2Xsmw6GDL8MnLeQYZ6uK9dVkMv01WOd1fZTLS_BrU,9410 +scipy/ndimage/_filters.py,sha256=OuVuvfxY7ibLGzR3qiEcE7V_6Sqz69AE3amxOPExu4s,92349 +scipy/ndimage/_fourier.py,sha256=SoAYRx7ax7Tv51MyYzDlZ3fN682x4T6N8yReX2La4-I,11266 +scipy/ndimage/_interpolation.py,sha256=KKQMixU4VgfEprLNPUeLWNvzfBBJ_nhr9bnJYT3o7Nc,37740 +scipy/ndimage/_measurements.py,sha256=MCdbyKlILgfmne0qFFOAFCKv-oWqqnEmb83iG8Tlwuk,56248 +scipy/ndimage/_morphology.py,sha256=HlgR6X8edYsjOSNyCvmg1RqThVJeKhtxuqUALSCUVCU,100964 +scipy/ndimage/_nd_image.cpython-311-x86_64-linux-gnu.so,sha256=h4-OpcIqDpXqr_MJYRij_ZLEEnndlnwIwGdghUAgoWg,147184 +scipy/ndimage/_ndimage_api.py,sha256=S8DBRWydSRfAz-ZlHSMeCSbjYGgCLioa9_Q2VXGeC_g,586 +scipy/ndimage/_ni_docstrings.py,sha256=EhrW-Q_R2fO9pDXYhc8xKS1QY5nXFxQtEXd2aLWG5GM,8727 +scipy/ndimage/_ni_label.cpython-311-x86_64-linux-gnu.so,sha256=8uEFFQhIA-aCItKTPxjvWtJi-lqTEXNCY2Iy-9vA4Ng,275544 +scipy/ndimage/_ni_support.py,sha256=1JpV6XSyvMP6-rqKHHEBrc83RaVkDzynBHlO672sczY,5216 +scipy/ndimage/_rank_filter_1d.cpython-311-x86_64-linux-gnu.so,sha256=ClIXguaQzxmefSHfqmSVmK6AkxK7cfuUlqvr-NsBg00,27448 +scipy/ndimage/_support_alternative_backends.py,sha256=cv4Q_RH5yQZ37QetD3ig3PW5uzLizimLgq287FdX_Tw,2977 +scipy/ndimage/filters.py,sha256=cAv2zezrTJEm9JzKPV_pmXzZcgczCK_VaYJ4mdNW3FM,976 +scipy/ndimage/fourier.py,sha256=gnifi4S_Epyu4DpNsebz4A5BKzBWoGf11FkXWeXsoqY,599 +scipy/ndimage/interpolation.py,sha256=GHYvxCyQsLfKtNUc8AUN_vqmBhmAPwNnxm2-VpFMayk,664 +scipy/ndimage/measurements.py,sha256=xdSs52Y5RjURLP710iGURXWQFeS3ok4WjoYufKh9OeA,788 +scipy/ndimage/morphology.py,sha256=yFWSo7o_7PuYq61WGQOCIgMppneNLxqhJocyN0bMsVA,965 +scipy/ndimage/tests/__init__.py,sha256=GbIXCsLtZxgmuisjxfFsd3pj6-RQhmauc6AVy6sybDc,314 +scipy/ndimage/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/ndimage/tests/__pycache__/test_c_api.cpython-311.pyc,, +scipy/ndimage/tests/__pycache__/test_datatypes.cpython-311.pyc,, +scipy/ndimage/tests/__pycache__/test_filters.cpython-311.pyc,, +scipy/ndimage/tests/__pycache__/test_fourier.cpython-311.pyc,, +scipy/ndimage/tests/__pycache__/test_interpolation.cpython-311.pyc,, +scipy/ndimage/tests/__pycache__/test_measurements.cpython-311.pyc,, +scipy/ndimage/tests/__pycache__/test_morphology.cpython-311.pyc,, +scipy/ndimage/tests/__pycache__/test_ni_support.cpython-311.pyc,, +scipy/ndimage/tests/__pycache__/test_splines.cpython-311.pyc,, +scipy/ndimage/tests/data/label_inputs.txt,sha256=JPbEnncwUyhlAAv6grN8ysQW9w9M7ZSIn_NPopqU7z4,294 +scipy/ndimage/tests/data/label_results.txt,sha256=Cf2_l7FCWNjIkyi-XU1MaGzmLnf2J7NK2SZ_10O-8d0,4309 +scipy/ndimage/tests/data/label_strels.txt,sha256=AU2FUAg0WghfvnPDW6lhMB1kpNdfv3coCR8blcRNBJ8,252 +scipy/ndimage/tests/dots.png,sha256=sgtW-tx0ccBpTT6BSNniioPXlnusFr-IUglK_qOVBBQ,2114 +scipy/ndimage/tests/test_c_api.py,sha256=7Gv-hR91MWpiGQ32yjXIBjFytuaYLqz3wYiCXcC8ZSk,3738 +scipy/ndimage/tests/test_datatypes.py,sha256=TYMiGyBcdOq3KVLzvjZPjerD1EXonyHFQYBLTWDwN7o,2819 +scipy/ndimage/tests/test_filters.py,sha256=es1emfCozdAG_WqoUK3cByCLz5AKKkkCAwNqR4VQpSM,133192 +scipy/ndimage/tests/test_fourier.py,sha256=BDKXgdV5wCnd7MIkvQ_Fnk8fQ7163mJBtFv5Zod16f4,7618 +scipy/ndimage/tests/test_interpolation.py,sha256=mEq534rYzoVdfZ4fbiErDTWkzc_ntQDk7QVp7S_Ds0M,61116 +scipy/ndimage/tests/test_measurements.py,sha256=LYERZh0uIM3HRkYoK1Njq_h-nAByW2NrFxjayH0UCP0,58418 +scipy/ndimage/tests/test_morphology.py,sha256=wzZE4AzqfGTyY-gTLLSgqacMRRGYQDhoGMRispbiCY0,131280 +scipy/ndimage/tests/test_ni_support.py,sha256=fcMPR9wmtOePd9eKg1ksGgolmKqVO2xboHsYOd4mC1I,2511 +scipy/ndimage/tests/test_splines.py,sha256=vBVm4fKQI828BT5LYMK4tNm_k2jnfhsvaIvo5VzY5WQ,2427 +scipy/odr/__init__.py,sha256=CErxMJ0yBfu_cvCoKJMu9WjqUaohLIqqf228Gm9XWJI,4325 +scipy/odr/__odrpack.cpython-311-x86_64-linux-gnu.so,sha256=0-RPvuN-ftCWmvFPLra6WedFm1IShuYE8OyxfdGHkfc,622553 +scipy/odr/__pycache__/__init__.cpython-311.pyc,, +scipy/odr/__pycache__/_add_newdocs.cpython-311.pyc,, +scipy/odr/__pycache__/_models.cpython-311.pyc,, +scipy/odr/__pycache__/_odrpack.cpython-311.pyc,, +scipy/odr/__pycache__/models.cpython-311.pyc,, +scipy/odr/__pycache__/odrpack.cpython-311.pyc,, +scipy/odr/_add_newdocs.py,sha256=GeWL4oIb2ydph_K3qCjiIbPCM3QvpwP5EZwEJVOzJrQ,1128 +scipy/odr/_models.py,sha256=tfOLgqnV4LR3VKi7NAg1g1Jp_Zw8lG_PA5BHwU_pTH0,7800 +scipy/odr/_odrpack.py,sha256=n30DVx78Oh0zDItjKdqDaJpiXSyVPqHYGk63a1-5NZg,42496 +scipy/odr/models.py,sha256=Fcdj-P9rJ_B-Ct8bh3RrusnapeHLysVaDsM26Q8fHFo,590 +scipy/odr/odrpack.py,sha256=OlRlBxKlzp5VDi2fnnA-Jdl6G0chDt95JNCvJYg2czs,632 +scipy/odr/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/odr/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/odr/tests/__pycache__/test_odr.cpython-311.pyc,, +scipy/odr/tests/test_odr.py,sha256=MkCfBdQvbCtiLgDFaIAp0jclwj2mIhwgL3J0Asvq31Q,22079 +scipy/optimize/__init__.pxd,sha256=kFYBK9tveJXql1KXuOkKGvj4Fu67GmuyRP5kMVkMbyk,39 +scipy/optimize/__init__.py,sha256=7ZzePqFF1X1377f_s3dpVdeg51I3YwManuh8Pl4M1mE,13279 +scipy/optimize/__pycache__/__init__.cpython-311.pyc,, +scipy/optimize/__pycache__/_basinhopping.cpython-311.pyc,, +scipy/optimize/__pycache__/_bracket.cpython-311.pyc,, +scipy/optimize/__pycache__/_chandrupatla.cpython-311.pyc,, +scipy/optimize/__pycache__/_cobyla_py.cpython-311.pyc,, +scipy/optimize/__pycache__/_cobyqa_py.cpython-311.pyc,, +scipy/optimize/__pycache__/_constraints.cpython-311.pyc,, +scipy/optimize/__pycache__/_dcsrch.cpython-311.pyc,, +scipy/optimize/__pycache__/_differentiable_functions.cpython-311.pyc,, +scipy/optimize/__pycache__/_differentialevolution.cpython-311.pyc,, +scipy/optimize/__pycache__/_direct_py.cpython-311.pyc,, +scipy/optimize/__pycache__/_dual_annealing.cpython-311.pyc,, +scipy/optimize/__pycache__/_elementwise.cpython-311.pyc,, +scipy/optimize/__pycache__/_hessian_update_strategy.cpython-311.pyc,, +scipy/optimize/__pycache__/_isotonic.cpython-311.pyc,, +scipy/optimize/__pycache__/_lbfgsb_py.cpython-311.pyc,, +scipy/optimize/__pycache__/_linesearch.cpython-311.pyc,, +scipy/optimize/__pycache__/_linprog.cpython-311.pyc,, +scipy/optimize/__pycache__/_linprog_doc.cpython-311.pyc,, +scipy/optimize/__pycache__/_linprog_highs.cpython-311.pyc,, +scipy/optimize/__pycache__/_linprog_ip.cpython-311.pyc,, +scipy/optimize/__pycache__/_linprog_rs.cpython-311.pyc,, +scipy/optimize/__pycache__/_linprog_simplex.cpython-311.pyc,, +scipy/optimize/__pycache__/_linprog_util.cpython-311.pyc,, +scipy/optimize/__pycache__/_milp.cpython-311.pyc,, +scipy/optimize/__pycache__/_minimize.cpython-311.pyc,, +scipy/optimize/__pycache__/_minpack_py.cpython-311.pyc,, +scipy/optimize/__pycache__/_nnls.cpython-311.pyc,, +scipy/optimize/__pycache__/_nonlin.cpython-311.pyc,, +scipy/optimize/__pycache__/_numdiff.cpython-311.pyc,, +scipy/optimize/__pycache__/_optimize.cpython-311.pyc,, +scipy/optimize/__pycache__/_qap.cpython-311.pyc,, +scipy/optimize/__pycache__/_remove_redundancy.cpython-311.pyc,, +scipy/optimize/__pycache__/_root.cpython-311.pyc,, +scipy/optimize/__pycache__/_root_scalar.cpython-311.pyc,, +scipy/optimize/__pycache__/_shgo.cpython-311.pyc,, +scipy/optimize/__pycache__/_slsqp_py.cpython-311.pyc,, +scipy/optimize/__pycache__/_spectral.cpython-311.pyc,, +scipy/optimize/__pycache__/_tnc.cpython-311.pyc,, +scipy/optimize/__pycache__/_trustregion.cpython-311.pyc,, +scipy/optimize/__pycache__/_trustregion_dogleg.cpython-311.pyc,, +scipy/optimize/__pycache__/_trustregion_exact.cpython-311.pyc,, +scipy/optimize/__pycache__/_trustregion_krylov.cpython-311.pyc,, +scipy/optimize/__pycache__/_trustregion_ncg.cpython-311.pyc,, +scipy/optimize/__pycache__/_tstutils.cpython-311.pyc,, +scipy/optimize/__pycache__/_zeros_py.cpython-311.pyc,, +scipy/optimize/__pycache__/cobyla.cpython-311.pyc,, +scipy/optimize/__pycache__/elementwise.cpython-311.pyc,, +scipy/optimize/__pycache__/lbfgsb.cpython-311.pyc,, +scipy/optimize/__pycache__/linesearch.cpython-311.pyc,, +scipy/optimize/__pycache__/minpack.cpython-311.pyc,, +scipy/optimize/__pycache__/minpack2.cpython-311.pyc,, +scipy/optimize/__pycache__/moduleTNC.cpython-311.pyc,, +scipy/optimize/__pycache__/nonlin.cpython-311.pyc,, +scipy/optimize/__pycache__/optimize.cpython-311.pyc,, +scipy/optimize/__pycache__/slsqp.cpython-311.pyc,, +scipy/optimize/__pycache__/tnc.cpython-311.pyc,, +scipy/optimize/__pycache__/zeros.cpython-311.pyc,, +scipy/optimize/_basinhopping.py,sha256=IsHcv3i1MuYyBdgKzPm8oDjmqjIs8enX_15gXDvpXow,29922 +scipy/optimize/_bglu_dense.cpython-311-x86_64-linux-gnu.so,sha256=5fjCk_bV3GSHMalermHHkPusnX0wOp4unIZQTY9fQg8,220864 +scipy/optimize/_bracket.py,sha256=RWZNYU3t8qsNVhW4TcP7etHTyoocZiPGCxzC1uKkPbA,30939 +scipy/optimize/_chandrupatla.py,sha256=yfdxwFZNBb1SToOqkbheYr0rabz0T9LGsBzKV1kI4Rk,24548 +scipy/optimize/_cobyla_py.py,sha256=szkLcnUBs0jIoiw9qOLATN4zWv0iHnfjGr8ua9VFTHo,10969 +scipy/optimize/_cobyqa_py.py,sha256=_zejgs3XKkieGiMlRVn1x12cyWoulaPP2SpvxA4zK3k,2971 +scipy/optimize/_constraints.py,sha256=wike0Rd2M6nm1V-hK3_st23lXmVD3OOYgt98XKZYxog,22897 +scipy/optimize/_dcsrch.py,sha256=D5I9G4oH5kFD2Rrb61gppXFMwwz6JiQBYPvW3vbR5Gs,25235 +scipy/optimize/_differentiable_functions.py,sha256=rw0YYafjP-w1kTOS63AI6wn5RmJXqx8AGaG0AAh4eBE,29644 +scipy/optimize/_differentialevolution.py,sha256=gyOu7MY1cAyrk-SuRRm2lfgIyciAcrtSPb_6R4AwHwo,86513 +scipy/optimize/_direct.cpython-311-x86_64-linux-gnu.so,sha256=jLS0d-hWgxM4KH2vVOV7TPPHkHC9k7tKZsSPzr0jLxs,43480 +scipy/optimize/_direct_py.py,sha256=-tEx51_9jg63zmDcSmmqeMtTlxXpci8fSh9TR_dFD4M,11849 +scipy/optimize/_dual_annealing.py,sha256=YU79aERoQuVZWEOfDyzdmj7O8V8tg3VMLX341wByNCI,31121 +scipy/optimize/_elementwise.py,sha256=ejydwc2JUjpkCkbHs0h6BWICQPPDT8iJd3lGdY9YJyQ,33050 +scipy/optimize/_group_columns.cpython-311-x86_64-linux-gnu.so,sha256=SUfzWb-GVMfiBrJpI9ljKaOLaby5TgzBZuBgc_iyS78,99840 +scipy/optimize/_hessian_update_strategy.py,sha256=xmtREKGlLgVvlBynjb5eCnPbsH-xbPcprS-ZoziG80M,18423 +scipy/optimize/_highspy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/optimize/_highspy/__pycache__/__init__.cpython-311.pyc,, +scipy/optimize/_highspy/__pycache__/_highs_wrapper.cpython-311.pyc,, +scipy/optimize/_highspy/_core.cpython-311-x86_64-linux-gnu.so,sha256=EZ_ajdz51CvWrpL06sVwQ0aHScEijHqx9O1zuyw3KW8,5956880 +scipy/optimize/_highspy/_highs_options.cpython-311-x86_64-linux-gnu.so,sha256=q8QeCF8juvbud5aJRl9WhmII_aK4REL4H1q-39GJgXI,440872 +scipy/optimize/_highspy/_highs_wrapper.py,sha256=wVqUOgmFv3FthLk3GdCy9XLmmDc2VasCWGFLSyq2cwM,11294 +scipy/optimize/_isotonic.py,sha256=WY-9jtT5VVafVALYIp6lJPQnBfYVNDP9oJpg-kErYYI,6077 +scipy/optimize/_lbfgsb.cpython-311-x86_64-linux-gnu.so,sha256=aEnZjCsqgGjbvkLuwL16zhdaNlccST4Bx38QU7lruWw,462225 +scipy/optimize/_lbfgsb_py.py,sha256=skrkTC1jzYijSzqVsTgKIZ0nT4e7mbhPq6K0T2ttbdk,23093 +scipy/optimize/_linesearch.py,sha256=sZ45z0K3l6LLURdAfzO5CI5DctDlXqD92PCaz9mKzYE,27215 +scipy/optimize/_linprog.py,sha256=TGl9k9Ioh-hgHYgtndN5BNcU4vqfpZm8whRK2f4ehQQ,30262 +scipy/optimize/_linprog_doc.py,sha256=AqRggJEqncrthBW0iCG2zhg-3Ks4-ZR_B3wTQSOfslE,61931 +scipy/optimize/_linprog_highs.py,sha256=491Jt7-YCQGKM0YQnWgdMpYYVKZ8tBAPDFCdX9-1vGM,17142 +scipy/optimize/_linprog_ip.py,sha256=QBlUjw6jl3mEZnouExtuac2dlIn9Gtki5yJVzkSffSU,46651 +scipy/optimize/_linprog_rs.py,sha256=wRVGZxCSpo4ttw4CPpmXozSvM9WRXD179fGiGh8gOQ4,23146 +scipy/optimize/_linprog_simplex.py,sha256=9_nxcVl-ofHN9p_dDyC1C6jHlPttSfO9kp8WF1ST4JM,24748 +scipy/optimize/_linprog_util.py,sha256=try6j91fBidx3pTP3riueOMQWqXja9SO80SqQIgYhS0,62762 +scipy/optimize/_lsap.cpython-311-x86_64-linux-gnu.so,sha256=vCbl4MhE-f2G3bd3FZ5oBChxU9Jr2E8CMiH-jbOmdb0,27072 +scipy/optimize/_lsq/__init__.py,sha256=Yk4FSVEqe1h-qPqVX7XSkQNBYDtZO2veTmMAebCxhIQ,172 +scipy/optimize/_lsq/__pycache__/__init__.cpython-311.pyc,, +scipy/optimize/_lsq/__pycache__/bvls.cpython-311.pyc,, +scipy/optimize/_lsq/__pycache__/common.cpython-311.pyc,, +scipy/optimize/_lsq/__pycache__/dogbox.cpython-311.pyc,, +scipy/optimize/_lsq/__pycache__/least_squares.cpython-311.pyc,, +scipy/optimize/_lsq/__pycache__/lsq_linear.cpython-311.pyc,, +scipy/optimize/_lsq/__pycache__/trf.cpython-311.pyc,, +scipy/optimize/_lsq/__pycache__/trf_linear.cpython-311.pyc,, +scipy/optimize/_lsq/bvls.py,sha256=7u5B8LfUbv3ZRZ8DAZKuDTSNRfDEBmTsn25VZtMMsKk,5195 +scipy/optimize/_lsq/common.py,sha256=h_VsfPQM3fy-MWYY2WbPDvfzZssBOsZl3xmaEWxfsMc,20480 +scipy/optimize/_lsq/dogbox.py,sha256=A-Q6_1XV3TbN7wUGS8vT2JFeZfSz-GuS8h9HKKRJUMU,12177 +scipy/optimize/_lsq/givens_elimination.cpython-311-x86_64-linux-gnu.so,sha256=TZFzjsqQ_XB-cwt2wthhYYWamyj3ExOluWiyhKTLo-4,74960 +scipy/optimize/_lsq/least_squares.py,sha256=7bJeypmMILnMELOyL6-bCGH5vlJRIJSBtzn1bYV7G3w,42812 +scipy/optimize/_lsq/lsq_linear.py,sha256=rsTDitLCK475gzp7X0vQ07KjHnZ899KV12kC3kRNoMI,15052 +scipy/optimize/_lsq/trf.py,sha256=DHwp1dP9aRVyDpVH8FHUfhTKWoIeeHJoaqjPHRxOSJM,20516 +scipy/optimize/_lsq/trf_linear.py,sha256=jIs7WviOu_8Kpb7sTln8W7YLgkcndv0eGIP15g_mC4g,7642 +scipy/optimize/_milp.py,sha256=-K4uoM_i9pj9GfzVvS5w4X_EoazDEXBU9SyrWE57BoM,15229 +scipy/optimize/_minimize.py,sha256=1He2Jy2mLnbOC-PFg3bkHcUC0bNTPchfHJMdCxOtDxs,53003 +scipy/optimize/_minpack.cpython-311-x86_64-linux-gnu.so,sha256=SMAZZsHBiDI_o-8EYoGcoqEb-Rk16gDGc5w-gRTPubs,98312 +scipy/optimize/_minpack_py.py,sha256=zDy2mNhZxfcSdrvt8qPEmkiNJuzx07vi23gSyTdL3EY,45387 +scipy/optimize/_moduleTNC.cpython-311-x86_64-linux-gnu.so,sha256=4b8DrvpXYPz_NnqSo1Hp_B6r0S0a66jF7pqCz-YRxjY,148616 +scipy/optimize/_nnls.py,sha256=GhcsSqShKONxTxP43I5unwvy8E5saDN2uMRn6DjiKno,2913 +scipy/optimize/_nonlin.py,sha256=SwTWcznrvlfmJ-74i79xC_ixrnuDJGI0pslvfTBDrI4,51698 +scipy/optimize/_numdiff.py,sha256=q5LoLQ-T8sejXroKKAC3DPgBXZfM8JSr9VYgYhG-sAs,35825 +scipy/optimize/_optimize.py,sha256=JJ2MBM14DxS8YBUMNjqK_7l2-j1CWyqLh8bmOSXEK3A,149770 +scipy/optimize/_pava_pybind.cpython-311-x86_64-linux-gnu.so,sha256=x5uucLtWUiR1gorouK8DFLGS9o9xx9WFhlWCCAnNH7k,248672 +scipy/optimize/_qap.py,sha256=6bIzIiLwD4V2MCJrqQBOJ2h7uycy0qx01mkl-CR1U3I,29390 +scipy/optimize/_remove_redundancy.py,sha256=00_Zc8_5uY6q2pBr8gu2_AYk7kX9YBjF8LqaxgqTKUY,18757 +scipy/optimize/_root.py,sha256=Zh-WttrslloClCDg7VKhrVbRkDHBRkS4-ijJkI-_twg,28714 +scipy/optimize/_root_scalar.py,sha256=XSwjKAXVZRJrGwSc7hIpQTucDwJv84cWZpcYlLDLF3U,20391 +scipy/optimize/_shgo.py,sha256=44fC7R7kSYyEVOb50r9c75r0dAVLPE1-FekuIm79GJQ,62622 +scipy/optimize/_shgo_lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/optimize/_shgo_lib/__pycache__/__init__.cpython-311.pyc,, +scipy/optimize/_shgo_lib/__pycache__/_complex.cpython-311.pyc,, +scipy/optimize/_shgo_lib/__pycache__/_vertex.cpython-311.pyc,, +scipy/optimize/_shgo_lib/_complex.py,sha256=my2yyCrPKpLbmz0onA-Y-xLTw20KuwEiKbOrQ-fpe6E,50263 +scipy/optimize/_shgo_lib/_vertex.py,sha256=I2TAqEEdTK66Km6UIkrDm2-tKpeJUuFX7DAfTk3XvUg,13996 +scipy/optimize/_slsqp_py.py,sha256=5MfG7G-Be9z3ivtTcPWKmI0Ou_3XWPi8LxV0KZSd01U,23902 +scipy/optimize/_slsqplib.cpython-311-x86_64-linux-gnu.so,sha256=XgtoixGYwRCvxKT3W0PsWvYjjtp5opYuO8SwHzZDYX0,458321 +scipy/optimize/_spectral.py,sha256=uV4DgfWAKcEpB7CC1CUgtWJjIGfIbpk8SH1ZwUyGFXo,8128 +scipy/optimize/_tnc.py,sha256=htQhspgXo-P0jt7TmynmAPzqq8qZaM4yVmI8O1cImGU,17339 +scipy/optimize/_trlib/__init__.py,sha256=cNGWE1VffijqhPtSaqwagtBJvjJK-XrJ6K80RURLd48,524 +scipy/optimize/_trlib/__pycache__/__init__.cpython-311.pyc,, +scipy/optimize/_trlib/_trlib.cpython-311-x86_64-linux-gnu.so,sha256=XpYkeMXcKzJTQktVBr-zUxOp4IRoaJgQHx8gmrcfHQM,228809 +scipy/optimize/_trustregion.py,sha256=Mcp96gvsrtBqXRJju2KHfCT-xGxaNa-88erFu2Fdo30,11458 +scipy/optimize/_trustregion_constr/__init__.py,sha256=c8J2wYGQZr9WpLIT4zE4MUgEj4YNbHEWYYYsFmxAeXI,180 +scipy/optimize/_trustregion_constr/__pycache__/__init__.cpython-311.pyc,, +scipy/optimize/_trustregion_constr/__pycache__/canonical_constraint.cpython-311.pyc,, +scipy/optimize/_trustregion_constr/__pycache__/equality_constrained_sqp.cpython-311.pyc,, +scipy/optimize/_trustregion_constr/__pycache__/minimize_trustregion_constr.cpython-311.pyc,, +scipy/optimize/_trustregion_constr/__pycache__/projections.cpython-311.pyc,, +scipy/optimize/_trustregion_constr/__pycache__/qp_subproblem.cpython-311.pyc,, +scipy/optimize/_trustregion_constr/__pycache__/report.cpython-311.pyc,, +scipy/optimize/_trustregion_constr/__pycache__/tr_interior_point.cpython-311.pyc,, +scipy/optimize/_trustregion_constr/canonical_constraint.py,sha256=gc5KucHwFCz_-w2IYWd_C1X1E0TFy_sey-_0KBY_djE,12542 +scipy/optimize/_trustregion_constr/equality_constrained_sqp.py,sha256=mNbnrNvKAkj7AzHTUpQQGgAfiUQ5ZSY0uzjk45B91Cs,9160 +scipy/optimize/_trustregion_constr/minimize_trustregion_constr.py,sha256=0Kb6f9hNayn5LqMjvKCPW0rUw7lTZ_00gXWSRDbFack,26610 +scipy/optimize/_trustregion_constr/projections.py,sha256=Q7zBucAd44hxj_KwusacAAnAuLSavr3T3qLUk4bwN_k,13517 +scipy/optimize/_trustregion_constr/qp_subproblem.py,sha256=AoLwMIDUMROleMGAldXH3gItoyzJ6qRTpNhDrijyvNA,22587 +scipy/optimize/_trustregion_constr/report.py,sha256=_L-HrO5C1lzvKvaijgkOYD210dvM4PkrhBSEQrMhVlw,1782 +scipy/optimize/_trustregion_constr/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/optimize/_trustregion_constr/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/optimize/_trustregion_constr/tests/__pycache__/test_canonical_constraint.cpython-311.pyc,, +scipy/optimize/_trustregion_constr/tests/__pycache__/test_nested_minimize.cpython-311.pyc,, +scipy/optimize/_trustregion_constr/tests/__pycache__/test_projections.cpython-311.pyc,, +scipy/optimize/_trustregion_constr/tests/__pycache__/test_qp_subproblem.cpython-311.pyc,, +scipy/optimize/_trustregion_constr/tests/__pycache__/test_report.cpython-311.pyc,, +scipy/optimize/_trustregion_constr/tests/test_canonical_constraint.py,sha256=zVPxZDa0WkG_tw9Fm_eo_JzsQ8rQrUJyQicq4J12Nd4,9869 +scipy/optimize/_trustregion_constr/tests/test_nested_minimize.py,sha256=tgBVQe97RwVu_GJACARyg0s9zHiFGVHSPNrXLCjlX7w,1216 +scipy/optimize/_trustregion_constr/tests/test_projections.py,sha256=LXshMEt2_l1yCkhTHUDxoO11P9qT1_gWv5KleSATA_A,8827 +scipy/optimize/_trustregion_constr/tests/test_qp_subproblem.py,sha256=5nNaAOTP4Pox6ZIqQ9b9gpOBHALaPY3m4IS--7PX4a0,27642 +scipy/optimize/_trustregion_constr/tests/test_report.py,sha256=hyRnUGBhDhKHR5SKD66ZME4zzCIViIh3_-700p0afXY,1104 +scipy/optimize/_trustregion_constr/tr_interior_point.py,sha256=Kt3jEh7tPo9cp3PaQd675ofg7JVk-84sYzaZS7UA6Uo,14395 +scipy/optimize/_trustregion_dogleg.py,sha256=HS783IZYHE-EEuF82c4rkFp9u3MNKUdCeynZ6ap8y8s,4389 +scipy/optimize/_trustregion_exact.py,sha256=TnUAmdymkfjCvzybOn-RCtGOoHpSO6Mg1rfeu516FGw,15557 +scipy/optimize/_trustregion_krylov.py,sha256=KGdudJsoXXROXAc82aZ8ACojD3rimvyx5PYitbo4UzQ,3030 +scipy/optimize/_trustregion_ncg.py,sha256=y7b7QjFBfnB1wDtbwnvKD9DYpz7y7NqVrJ9RhNPcipw,4580 +scipy/optimize/_tstutils.py,sha256=BBaThpZNuwIQBqtVMOEB4bUHk3QdG2NpuLJBum8P6ak,34047 +scipy/optimize/_zeros.cpython-311-x86_64-linux-gnu.so,sha256=NEtP00WjHhnxvb7v-6OYso3TKfdNj0i45UflefiqlbU,21648 +scipy/optimize/_zeros_py.py,sha256=6NN_vJD-QncMghnvDIpho9Rxf2QITQuU2EGIi_87J9w,56659 +scipy/optimize/cobyla.py,sha256=k2io8SM0vahYT5Zu4nS4yfa05_gyH0y-jVVxdWkC4dU,557 +scipy/optimize/cython_optimize.pxd,sha256=ecYJEpT0CXN-2vtaZfGCChD-oiIaJyRDIsTHE8eUG5M,442 +scipy/optimize/cython_optimize/__init__.py,sha256=eehEQNmLGy3e_XjNh6t5vQIC9l_OREeE4tYRRaFZdNs,4887 +scipy/optimize/cython_optimize/__pycache__/__init__.cpython-311.pyc,, +scipy/optimize/cython_optimize/_zeros.cpython-311-x86_64-linux-gnu.so,sha256=63y7GXaP16evsOpN_i6d2TzFEpTtBejW0Gni7PSlOxE,99744 +scipy/optimize/cython_optimize/_zeros.pxd,sha256=anyu-MgWhq24f1bywI4TlohvJjOnpNpkCtSzpKBJSSo,1239 +scipy/optimize/cython_optimize/c_zeros.pxd,sha256=6Gc0l1q-1nlCO9uKrYeXFiHsbimRZzU3t6EoTa8MVvA,1118 +scipy/optimize/elementwise.py,sha256=8eEQW_PeNkr49YBTROr5xWDLgeJd7rxtdQk3tVuEECQ,1190 +scipy/optimize/lbfgsb.py,sha256=XT7kclUTtom8JASPYyAScx-5irlBd9s9yEnZzRwFqu8,601 +scipy/optimize/linesearch.py,sha256=w5OhOofynUbz7IzHAGEc6huLKV_rMR5eUq77VcskA9o,535 +scipy/optimize/minpack.py,sha256=2S9tkmBI670qqeDN7k_1-ZLYsFZV1yXaDMkrCvMETiQ,664 +scipy/optimize/minpack2.py,sha256=IPIduBcu0LRo75GJ9SiMa_GjfdKCOYzsWUs61_d1HR8,514 +scipy/optimize/moduleTNC.py,sha256=qTEQ4IWtv_LT6fH3-iYmYNwrtrjG1gS4KFbZ73iDcd0,507 +scipy/optimize/nonlin.py,sha256=uoKIYAdmhwNrC6zFbUIBCNdM1a59nn7hb5jxSOuK3rs,710 +scipy/optimize/optimize.py,sha256=SivH06ZYrbIwJLTQj3ZShU4FXft7w2y1a2uYE9ILIMo,877 +scipy/optimize/slsqp.py,sha256=Xei2XAZBNcz8cQdLdK8tTHeyIgpLEElP2ENdTH2QEi8,569 +scipy/optimize/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/optimize/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test__basinhopping.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test__differential_evolution.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test__dual_annealing.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test__linprog_clean_inputs.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test__numdiff.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test__remove_redundancy.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test__root.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test__shgo.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test__spectral.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_bracket.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_chandrupatla.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_cobyla.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_cobyqa.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_constraint_conversion.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_constraints.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_cython_optimize.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_differentiable_functions.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_direct.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_extending.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_hessian_update_strategy.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_isotonic_regression.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_lbfgsb_hessinv.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_lbfgsb_setulb.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_least_squares.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_linear_assignment.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_linesearch.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_linprog.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_lsq_common.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_lsq_linear.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_milp.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_minimize_constrained.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_minpack.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_nnls.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_nonlin.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_optimize.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_quadratic_assignment.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_regression.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_slsqp.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_tnc.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_trustregion.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_trustregion_exact.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_trustregion_krylov.cpython-311.pyc,, +scipy/optimize/tests/__pycache__/test_zeros.cpython-311.pyc,, +scipy/optimize/tests/_cython_examples/extending.pyx,sha256=5TCYF9hvIYu8S9Y7PIql-xdJfcn_LI50yDrf4uh7i2M,1314 +scipy/optimize/tests/_cython_examples/meson.build,sha256=GCeweHtWXjvk73tZN3HqsMTw7F1St0JuIhGyxmEiPv0,703 +scipy/optimize/tests/test__basinhopping.py,sha256=nOlSqfngq5v3KxjVDmtgsV3NnrDIIwfjH3p6VO6I2Cg,19210 +scipy/optimize/tests/test__differential_evolution.py,sha256=sRNjlVPwJFM7vmiRYX5oYXwQgec7tmtHtc9TkcuMTRM,69518 +scipy/optimize/tests/test__dual_annealing.py,sha256=8qzPbCQwqmNRJ2GYk1X02qNvmF3TAgJxzUG_x0c07o4,16640 +scipy/optimize/tests/test__linprog_clean_inputs.py,sha256=DsZjTGfPJow5w1TrAMSVoq2IJFM_dMcPFBToBdef01A,11680 +scipy/optimize/tests/test__numdiff.py,sha256=fF_03UqDQ7b8uCKTAhhwQ7jyacbx8fTA2Ce9gieNwEk,34511 +scipy/optimize/tests/test__remove_redundancy.py,sha256=lEivoPtGzK-My4EMhQ8DZSKiuJH-R4XbZ4NW6tUX4jw,6797 +scipy/optimize/tests/test__root.py,sha256=yBSibeODBJwOqjTJHWXP9qWqh_D9XBnMjn5hFuTVQpo,4230 +scipy/optimize/tests/test__shgo.py,sha256=ZUnpdjXzSFl0wvIsrWQDZzz1NEPMagfX_aTVqT__8xY,40141 +scipy/optimize/tests/test__spectral.py,sha256=xh-4SMIAWkx_ND2nt7rGACy3ckfw_votfyfxMpQ8m2I,6664 +scipy/optimize/tests/test_bracket.py,sha256=hZMo6d5G-SJSr45OaBGyHt6UffLeUJt15x9HxaZY8RQ,36797 +scipy/optimize/tests/test_chandrupatla.py,sha256=84VtfQddVDb-kt5LA_3pUKXBN6LIfpsSVIxsHjD4ySw,39191 +scipy/optimize/tests/test_cobyla.py,sha256=gLCVj8xmmSoIx5oikBMr9PVpgyGsoyAG5JdcNAZJmmU,6822 +scipy/optimize/tests/test_cobyqa.py,sha256=5sHRoBc4ZVfjZZAYMGObwSAtWq2A53L9KSwHuUUhQLk,8143 +scipy/optimize/tests/test_constraint_conversion.py,sha256=7uRZeOxVD6KFbyVi6h-PSts3BxBPFiFZPVczhiVd5b4,12563 +scipy/optimize/tests/test_constraints.py,sha256=X3Y31naHyXBgyI03UowHOPY_qxhRrL2I9fJtCvZ2kGo,9407 +scipy/optimize/tests/test_cython_optimize.py,sha256=n-HccBWoUmmBWq_OsNrAVnt4QrdssIYm4PWG29Ocias,2638 +scipy/optimize/tests/test_differentiable_functions.py,sha256=5NgNUwcioIRbPvpLQ_tfcTbnOrghdX56lJwI89fN8U4,38499 +scipy/optimize/tests/test_direct.py,sha256=_R4_VkYkIJcS7X9a7n9rxwnZClK5i9nXSiYYkX0aRiA,13267 +scipy/optimize/tests/test_extending.py,sha256=r9Phn1PUn0U3U6QJeMiPreKG6jKmnWFqwpf1Al7w7K0,1104 +scipy/optimize/tests/test_hessian_update_strategy.py,sha256=EiL5ImqkGFmUTjgZjv0FGpGBjTzWXqT3w6eCrzQtPmo,14337 +scipy/optimize/tests/test_isotonic_regression.py,sha256=aJakW5zYcILN3wa--CYFBoZ3MB6n5Rzwd4WfNs_SFQk,7113 +scipy/optimize/tests/test_lbfgsb_hessinv.py,sha256=XnInFBGl9BQZS-wndHuPhNFDkb4kIsd02QMdVsg3Iy4,1934 +scipy/optimize/tests/test_lbfgsb_setulb.py,sha256=6Aqn26aKUJp75unFqCAzesLq_tWPsQpp2rCftauSOS8,3582 +scipy/optimize/tests/test_least_squares.py,sha256=4OvuFxmToFbOQ2vWEVi7uaCN6i6_Lt9e4xzuXl4imKU,37671 +scipy/optimize/tests/test_linear_assignment.py,sha256=-IGbiBidLNWAgMo3LBsa1ak8v_IH-MT6nn44MhTPfUs,4109 +scipy/optimize/tests/test_linesearch.py,sha256=xmK2zvgIbLMOWkb2B1ALBWiPHQyGGxzDG0MXaHjNlqA,11400 +scipy/optimize/tests/test_linprog.py,sha256=VWOkH9vfeXFBSAzDYaaGQ-0BMpY6x15uHb-Bc-So0UQ,102695 +scipy/optimize/tests/test_lsq_common.py,sha256=alCLPPQB4mrxLIAo_rn7eg9xrCEH7DerNBozSimOQRA,9500 +scipy/optimize/tests/test_lsq_linear.py,sha256=uVFSH6MFBg6JfqfA2Mrl3_Wzr2Aiyc6i0Y3kmnxrQyg,10974 +scipy/optimize/tests/test_milp.py,sha256=V4KeW9Z3CfCvCk_NT88yqvw9E_t2r-aIq-yJFwVIaWY,18302 +scipy/optimize/tests/test_minimize_constrained.py,sha256=avT1wMWHBXQnezIGrhq96k4R41qSXaJRB2dObeb5QAI,27940 +scipy/optimize/tests/test_minpack.py,sha256=H73NNF83gZBBX18Iw6uEev2GCnXFNafSCfwLoZhWamg,44845 +scipy/optimize/tests/test_nnls.py,sha256=ib5rfMaFlDIq28Ir8H5ZJfvYuVd5ZzPjrXtqKJ7BtM0,27195 +scipy/optimize/tests/test_nonlin.py,sha256=cbSdWAV_k4imavhDDaa9u7EAvBq8Uc7zV405bDni7ps,20244 +scipy/optimize/tests/test_optimize.py,sha256=y34yJrdYqJjJMdLVzkDZrQphB9MsnBEw1pfloX9EK1s,130630 +scipy/optimize/tests/test_quadratic_assignment.py,sha256=4BKOjpEPgSi0YATody23JUjzZ749rh-F7sMWlpuvy4g,17598 +scipy/optimize/tests/test_regression.py,sha256=CSg8X-hq6-6jW8vki6aVfEFYRUGTWOg58silM1XNXbU,1077 +scipy/optimize/tests/test_slsqp.py,sha256=wi90g6b5s8WxFswZbsTAClaxqSNT-6K12V8oql_1lWs,24616 +scipy/optimize/tests/test_tnc.py,sha256=ahSwu8F1tUcPV09l1MsbacUXXi1avQHzQNniYhZRf4s,12700 +scipy/optimize/tests/test_trustregion.py,sha256=y49k3H03wdf21FFrUBJpJP7-sqvbxRdvk63cMHkKO3Y,4669 +scipy/optimize/tests/test_trustregion_exact.py,sha256=pPY_GRZZ0dwXqUboObatYMpRuwVSwRScCfuu4WkuSbw,12933 +scipy/optimize/tests/test_trustregion_krylov.py,sha256=otFMoHYcJZzPdyv7UKOgerehGJXpOB8YWP0-lYHYhUk,6616 +scipy/optimize/tests/test_zeros.py,sha256=Wmhadazb1qPcZnzy6WsL1vGy2g1ZyOTlgGrn1QS0-4A,38076 +scipy/optimize/tnc.py,sha256=aEKhka8wryg4mVlbrGFwzTJF_KYB49joMkSxKgh1KnA,560 +scipy/optimize/zeros.py,sha256=Sc06-J8JUazdfR36UamHhPndJoPK0FkOzHR-unHWoBw,620 +scipy/signal/__init__.py,sha256=NWDXthQALmuHicLFhPWnAUFArOyIwV3znFYWImOou9Q,13500 +scipy/signal/__pycache__/__init__.cpython-311.pyc,, +scipy/signal/__pycache__/_arraytools.cpython-311.pyc,, +scipy/signal/__pycache__/_czt.cpython-311.pyc,, +scipy/signal/__pycache__/_delegators.cpython-311.pyc,, +scipy/signal/__pycache__/_filter_design.cpython-311.pyc,, +scipy/signal/__pycache__/_fir_filter_design.cpython-311.pyc,, +scipy/signal/__pycache__/_lti_conversion.cpython-311.pyc,, +scipy/signal/__pycache__/_ltisys.cpython-311.pyc,, +scipy/signal/__pycache__/_max_len_seq.cpython-311.pyc,, +scipy/signal/__pycache__/_peak_finding.cpython-311.pyc,, +scipy/signal/__pycache__/_polyutils.cpython-311.pyc,, +scipy/signal/__pycache__/_savitzky_golay.cpython-311.pyc,, +scipy/signal/__pycache__/_short_time_fft.cpython-311.pyc,, +scipy/signal/__pycache__/_signal_api.cpython-311.pyc,, +scipy/signal/__pycache__/_signaltools.cpython-311.pyc,, +scipy/signal/__pycache__/_spectral_py.cpython-311.pyc,, +scipy/signal/__pycache__/_spline_filters.cpython-311.pyc,, +scipy/signal/__pycache__/_support_alternative_backends.cpython-311.pyc,, +scipy/signal/__pycache__/_upfirdn.cpython-311.pyc,, +scipy/signal/__pycache__/_waveforms.cpython-311.pyc,, +scipy/signal/__pycache__/_wavelets.cpython-311.pyc,, +scipy/signal/__pycache__/bsplines.cpython-311.pyc,, +scipy/signal/__pycache__/filter_design.cpython-311.pyc,, +scipy/signal/__pycache__/fir_filter_design.cpython-311.pyc,, +scipy/signal/__pycache__/lti_conversion.cpython-311.pyc,, +scipy/signal/__pycache__/ltisys.cpython-311.pyc,, +scipy/signal/__pycache__/signaltools.cpython-311.pyc,, +scipy/signal/__pycache__/spectral.cpython-311.pyc,, +scipy/signal/__pycache__/spline.cpython-311.pyc,, +scipy/signal/__pycache__/waveforms.cpython-311.pyc,, +scipy/signal/__pycache__/wavelets.cpython-311.pyc,, +scipy/signal/_arraytools.py,sha256=k3kHbl9RzcqsyftIYSFJZvJFL4zlcMAHyaRFUkFxOXY,8294 +scipy/signal/_czt.py,sha256=t5P1kRCM3iw3eCaL9hTgctMfQKezkqnjbghLjCkffQE,19445 +scipy/signal/_delegators.py,sha256=HXAb5GhW-yeNd8BSoxLtk6iMjQndBJNzgaCjcW9WsV0,13943 +scipy/signal/_filter_design.py,sha256=K3fo2w0o1oGqYMOTca_gUdV4_auMsQG6GwdAENRYdjk,197028 +scipy/signal/_fir_filter_design.py,sha256=uSH2PHCxLOzODCmcTpbLu19rboorpe4foVByu_TPPx8,57266 +scipy/signal/_lti_conversion.py,sha256=eYW0yxUFV_pnKJZMOmBII6kjJgI5QvqcQGdbEFFeWdg,16138 +scipy/signal/_ltisys.py,sha256=a_cBi71vXzryPQvknlkHb06jiwp63mSGRWGmHmdXkoM,121028 +scipy/signal/_max_len_seq.py,sha256=8QkMWoYY3qy3bCKfsuXaS93Bnb2zd-ue6j5i5-3_hi0,5060 +scipy/signal/_max_len_seq_inner.cpython-311-x86_64-linux-gnu.so,sha256=noB8ti1_UZqIXXVupOhvgeIEHny8OhufTQq4Bfp-lIQ,77496 +scipy/signal/_peak_finding.py,sha256=e9vpWL98OQ9Ik1f7gwLl4d5feTAiyLwPm_yarJq3T_8,48856 +scipy/signal/_peak_finding_utils.cpython-311-x86_64-linux-gnu.so,sha256=zkDqvMSeP6gxatzz5JNUwj-zExxgdmx3gH7sKmvXivQ,162352 +scipy/signal/_polyutils.py,sha256=4_1_Y38PYfMEWgjbOQh024DbBP1_Nnngp-8PLFcJGtA,5368 +scipy/signal/_savitzky_golay.py,sha256=AahANBsLy8d6FKmVgteGiAw1l_4wWWItZYSyOVnj_nk,13447 +scipy/signal/_short_time_fft.py,sha256=VSgkms7pg7f7GOxhrRi_ZbTqt2pZXr48u5Fe8sjNrTc,101342 +scipy/signal/_signal_api.py,sha256=wp3qv0vBhANNCCq1S--VUWmHRdEDy5u5obbNDNUk_Cw,1237 +scipy/signal/_signaltools.py,sha256=TWX2tIdmEsYdXE5oUFysM62jUKy20uNFZavWsdeCEuw,192737 +scipy/signal/_sigtools.cpython-311-x86_64-linux-gnu.so,sha256=9cZXsbj96mQOgz4wO_DwVSFeeAxtCM2m354s5z0SVSY,108992 +scipy/signal/_sosfilt.cpython-311-x86_64-linux-gnu.so,sha256=aUz6AGqZLOFOwa8-WOl1zxSkucnW4YF1Az83gLcH1MA,153208 +scipy/signal/_spectral_py.py,sha256=93xuYT8jrjF5H3cEMtMOYbGpfVAERTFctxQ-t4C9hVE,96067 +scipy/signal/_spline.cpython-311-x86_64-linux-gnu.so,sha256=MZkBstinLLZ1KN0wcAGXALpkb3lv-uoXajImRbfd8hk,55864 +scipy/signal/_spline.pyi,sha256=9tWZQCI7D84ONLwICZG6psBGtwKxAvLF7JaZ1tQUKoY,948 +scipy/signal/_spline_filters.py,sha256=meTSSe0pIRnutEufLvxJNWPpxbLEFhLnv8cenALplnI,25528 +scipy/signal/_support_alternative_backends.py,sha256=T6wGDT97cIl8iZjuJSqVrBb4ivOvPD3RVZHUbCW8Nzo,2504 +scipy/signal/_upfirdn.py,sha256=bE78hIj-iGh7wCXcMh-3Tus9WM_pptNoGLHKXHLFvu0,7976 +scipy/signal/_upfirdn_apply.cpython-311-x86_64-linux-gnu.so,sha256=aeV0-AgLq4KF9aiazlUp2DBtxI9ErtvdnjwfXJ6sCMQ,251312 +scipy/signal/_waveforms.py,sha256=0Gembo6HsY--mZJ82tFCEw5RYzfhxeDY-gFHOHdJXBk,22912 +scipy/signal/_wavelets.py,sha256=K7wj6hMQgJrJ1sb3b2SB4LRc7JlZx5ej9tX6v7E1YCw,886 +scipy/signal/bsplines.py,sha256=G1sa6en1z_41sU7ckRY8-flJjUKSqJJihaxBlwzUd3s,651 +scipy/signal/filter_design.py,sha256=EyHs8OX4mdeUi6e3Zf7IWuz6r5Re2eR_t0Bi10JuntM,1112 +scipy/signal/fir_filter_design.py,sha256=mJr3FG_K_4qbzLOUasIJmXSycuFmotHkEMCAn812v6I,657 +scipy/signal/lti_conversion.py,sha256=6uQ1qaT7XI75DoFmtRqRS94Hkpm-Qvy66CRNhmQ-Lbw,639 +scipy/signal/ltisys.py,sha256=TFul9jyL0ujEIchiOnDdIiJKIXZ8SSgOV066DvmX_QA,869 +scipy/signal/signaltools.py,sha256=I7U_hMuMf02zpdNi0LcPogucTDf0nUVUSkMZ1eAoq3E,1038 +scipy/signal/spectral.py,sha256=RA3jj6AWV6ptNwXfpVrbuyxxed8P7nWw8bLsD0iZIgw,662 +scipy/signal/spline.py,sha256=rC_E8HwcpDqwIGdaDF0Cb5uC6kPoAQP57jeQNq-aCmI,536 +scipy/signal/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/signal/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/signal/tests/__pycache__/_scipy_spectral_test_shim.cpython-311.pyc,, +scipy/signal/tests/__pycache__/mpsig.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_array_tools.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_bsplines.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_cont2discrete.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_czt.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_dltisys.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_filter_design.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_fir_filter_design.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_ltisys.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_max_len_seq.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_peak_finding.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_result_type.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_savitzky_golay.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_short_time_fft.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_signaltools.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_spectral.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_splines.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_upfirdn.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_waveforms.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_wavelets.cpython-311.pyc,, +scipy/signal/tests/__pycache__/test_windows.cpython-311.pyc,, +scipy/signal/tests/_scipy_spectral_test_shim.py,sha256=ioVfbdXOV77dDef-hcpuwqnDES1ZaQg29ZjYTd_ts1g,12748 +scipy/signal/tests/mpsig.py,sha256=DHB3eHB0KYA-E0SBebKG36YLk-T5egbwwryne3RwIHM,3308 +scipy/signal/tests/test_array_tools.py,sha256=QN4SGbtxDSP2MFvyYl00RasYYyNF4A1g8Y6_1Sij7YQ,3589 +scipy/signal/tests/test_bsplines.py,sha256=EHM_-hhG43QD0W4v2gnp3shHohVeLu7LUP7PxVVs4sI,17835 +scipy/signal/tests/test_cont2discrete.py,sha256=kIzbS38tcUe2mvIhYHcqDX98Pk5a8DaAZdCoq2hWhBg,14843 +scipy/signal/tests/test_czt.py,sha256=2-kcWyadICVl_mF0vbq1KYii-rYMtZiuiOSb6HkYn7w,7156 +scipy/signal/tests/test_dltisys.py,sha256=WEs5DsDSKQDm4H7deYr6lCUvm8TkiFd9S4SJIluRWfg,21483 +scipy/signal/tests/test_filter_design.py,sha256=BNl2jMiLA-3WdyNvW8Lh1rZkhI-9GH6iKtz0fHS4WcU,209611 +scipy/signal/tests/test_fir_filter_design.py,sha256=_FGH3Cyyr3ZE0s8nqngytSc1LPO6o4BhzBJh1nx_yfo,35817 +scipy/signal/tests/test_ltisys.py,sha256=wU2ZC7E-lKDQ23_1Uvbem3PA_oNayRvzyccIaUqJbnc,45070 +scipy/signal/tests/test_max_len_seq.py,sha256=JzfWWN4n6FO9Axw6H6xWrWyc21LlkqMwkGl23f-V664,3318 +scipy/signal/tests/test_peak_finding.py,sha256=ZSybjXxgtO3Go-l9S8d3NMdCR_wgKMllEivr8NDjyRo,36076 +scipy/signal/tests/test_result_type.py,sha256=F48EQGbFfQfMwcnt-sMofHGNHVTbHntbMlgoeS2vYcY,1573 +scipy/signal/tests/test_savitzky_golay.py,sha256=afOF6B97cKQVR68D_u3NZdF6D0IvUFgmd_EzVZdk-C8,12470 +scipy/signal/tests/test_short_time_fft.py,sha256=Xhg3x39QftwNsLwFcirWDa3q-hYtFVlMYu4HCwFGsTM,47868 +scipy/signal/tests/test_signaltools.py,sha256=Vd4qx4SjiJc9rroxF5SJUAX_e5jln9INIPpU-3Z3m4c,190816 +scipy/signal/tests/test_spectral.py,sha256=yy105yO-aqU0Y851If51ojX8fLGWT8E5AiqXN2BYKWQ,81685 +scipy/signal/tests/test_splines.py,sha256=dP9Ua8FGgw_z_GUxGd_AxKAbH62Y0rvrGabVJwH9SMA,17078 +scipy/signal/tests/test_upfirdn.py,sha256=utXj0C32iwg_N3XPs32EGLEuQp4_YPCCUKB6_AzMQQQ,12602 +scipy/signal/tests/test_waveforms.py,sha256=HfyUh2X65Qfv0qNLGOk99XAtwy8ELEcIDJnCCoHR6WY,13554 +scipy/signal/tests/test_wavelets.py,sha256=42yMux80J-K7Ue9QLnzN84U9K3j2GRdywMxGpbLldeM,2145 +scipy/signal/tests/test_windows.py,sha256=NbBbheU4_0HSbL71eMVuEMhquTtocZkUhVABz8Y4hSk,50589 +scipy/signal/waveforms.py,sha256=jfOXW7kgtGdh1nrMo1YLAh79W_Ln3WgzEN2esrp70wE,599 +scipy/signal/wavelets.py,sha256=7pA7HVMiXwG4fZZ0Q4nzz47hWWALMTYtxwGrIqV3bNE,510 +scipy/signal/windows/__init__.py,sha256=BUSXzc_D5Agp59RacDdG6EE9QjkXXtlcfQrTop_IJwo,2119 +scipy/signal/windows/__pycache__/__init__.cpython-311.pyc,, +scipy/signal/windows/__pycache__/_windows.cpython-311.pyc,, +scipy/signal/windows/__pycache__/windows.cpython-311.pyc,, +scipy/signal/windows/_windows.py,sha256=2Tw5gwXH5wp6RSj8bBbfLJc3zl6PBPTWZgCv0Oxu48Q,89501 +scipy/signal/windows/windows.py,sha256=FI6w8mt0V1221Rqv3Do3LuWRWrtKo3hYYTvpB_5UB1c,839 +scipy/sparse/__init__.py,sha256=7sYqDxLcEsW7lw3H19wOGn6m1KAysKQ8gn-l9oPyL7M,9950 +scipy/sparse/__pycache__/__init__.cpython-311.pyc,, +scipy/sparse/__pycache__/_base.cpython-311.pyc,, +scipy/sparse/__pycache__/_bsr.cpython-311.pyc,, +scipy/sparse/__pycache__/_compressed.cpython-311.pyc,, +scipy/sparse/__pycache__/_construct.cpython-311.pyc,, +scipy/sparse/__pycache__/_coo.cpython-311.pyc,, +scipy/sparse/__pycache__/_csc.cpython-311.pyc,, +scipy/sparse/__pycache__/_csr.cpython-311.pyc,, +scipy/sparse/__pycache__/_data.cpython-311.pyc,, +scipy/sparse/__pycache__/_dia.cpython-311.pyc,, +scipy/sparse/__pycache__/_dok.cpython-311.pyc,, +scipy/sparse/__pycache__/_extract.cpython-311.pyc,, +scipy/sparse/__pycache__/_index.cpython-311.pyc,, +scipy/sparse/__pycache__/_lil.cpython-311.pyc,, +scipy/sparse/__pycache__/_matrix.cpython-311.pyc,, +scipy/sparse/__pycache__/_matrix_io.cpython-311.pyc,, +scipy/sparse/__pycache__/_spfuncs.cpython-311.pyc,, +scipy/sparse/__pycache__/_sputils.cpython-311.pyc,, +scipy/sparse/__pycache__/base.cpython-311.pyc,, +scipy/sparse/__pycache__/bsr.cpython-311.pyc,, +scipy/sparse/__pycache__/compressed.cpython-311.pyc,, +scipy/sparse/__pycache__/construct.cpython-311.pyc,, +scipy/sparse/__pycache__/coo.cpython-311.pyc,, +scipy/sparse/__pycache__/csc.cpython-311.pyc,, +scipy/sparse/__pycache__/csr.cpython-311.pyc,, +scipy/sparse/__pycache__/data.cpython-311.pyc,, +scipy/sparse/__pycache__/dia.cpython-311.pyc,, +scipy/sparse/__pycache__/dok.cpython-311.pyc,, +scipy/sparse/__pycache__/extract.cpython-311.pyc,, +scipy/sparse/__pycache__/lil.cpython-311.pyc,, +scipy/sparse/__pycache__/sparsetools.cpython-311.pyc,, +scipy/sparse/__pycache__/spfuncs.cpython-311.pyc,, +scipy/sparse/__pycache__/sputils.cpython-311.pyc,, +scipy/sparse/_base.py,sha256=N16G_kB0bnOdqY7oXbr_S7-gR1AEhGXrf46_KZegZdw,58568 +scipy/sparse/_bsr.py,sha256=0OruL9evP-j9W_fKIkRM3zcc390c98iaUOI_mNsQzN8,30957 +scipy/sparse/_compressed.py,sha256=JJn2BE_li1dkeo5PtOR7GRd5c6JWcAw5UmxN9mlAgK4,51673 +scipy/sparse/_construct.py,sha256=iZSnx2FCeeJCOG98FULiMRt1rreane8b7hoXzpF9TA0,49620 +scipy/sparse/_coo.py,sha256=w0rN8r3k3828VLEi8eJps6lMDulPA4UWC2g9_h0ONVk,61518 +scipy/sparse/_csc.py,sha256=A-2ur15at5JLILa9-W02bomBiNuaU5t66pVI5Utum48,11138 +scipy/sparse/_csparsetools.cpython-311-x86_64-linux-gnu.so,sha256=nWyQ9AwxxbrjL0z6gi6tHeR0LsfmEoUCwQE0T2Z13Bg,609984 +scipy/sparse/_csr.py,sha256=VQG6ThO-oG9YAUkZHyde5r2fgzyei8O8IewoBBSLlqo,18152 +scipy/sparse/_data.py,sha256=nWd86zJkqpe7fa9JWMKmlRzhjTCm7dPGCbPiqN5Nt5o,20970 +scipy/sparse/_dia.py,sha256=9sGeRhnVUSuO2i1AM3XCh_-r7nSylmkpySDp8d7lxLU,23914 +scipy/sparse/_dok.py,sha256=jCXwW8xPXw9JUyj36Ict8SCCE4bpfymvFCERb_LZSVc,22251 +scipy/sparse/_extract.py,sha256=0NWW00hxjk5gl4CjNRHtvcqsx54yNei2VVbqARMOlAo,5058 +scipy/sparse/_index.py,sha256=-tcFrFk_YAJ3YGjV7DDqjZm_Bnthx-mcbr-1ytUMtRk,16368 +scipy/sparse/_lil.py,sha256=uS3i5M_yhLjTDk9xySG_4COGgJA2QcwIpKphuwhcCV4,21125 +scipy/sparse/_matrix.py,sha256=e57TxL-4_ZNCWWwW4GdwYmY2fplQQCQqhpBheJn-XRk,5022 +scipy/sparse/_matrix_io.py,sha256=0ZEoczSQq59zOGd_eWk6sfACt62vdQmth3ia7uqWFTM,5960 +scipy/sparse/_sparsetools.cpython-311-x86_64-linux-gnu.so,sha256=RLDyFJIJnUDM0gha7pBP-GLnFMgUvJg4n87M7I-b0K8,4314496 +scipy/sparse/_spfuncs.py,sha256=lDVTp6CiQIuMxTfSzOi3-k6p97ayXJxdKPTf7j_4GWc,1987 +scipy/sparse/_sputils.py,sha256=sc3DLX5J-rWt1-wU8IWDISdRhuCDNi5swmKPb-9aZB8,21095 +scipy/sparse/base.py,sha256=Kyn-S8HXKVlf_mHMGhcxbnLYqFyZpx5ydS707bnOhDM,609 +scipy/sparse/bsr.py,sha256=M_uhxnBwHnh0p4C7xE8tj82PiXATa4_gHIfOvLyh3gg,561 +scipy/sparse/compressed.py,sha256=lyEi-UD6ygcufeIqRBHpGfjVckp-vIlojYBjfnLc7Us,550 +scipy/sparse/construct.py,sha256=vfz2WK4r2bviiKZSUiIsfdDFDu9osyFlXF8ZsxSAn3E,812 +scipy/sparse/coo.py,sha256=ui1P-vcbPnLArYHxLWO06N1KFsCfw-CD6TWz_YSQ8-k,592 +scipy/sparse/csc.py,sha256=X9TL9GN1YtbJluM0Iq9_cDyDQBACYlJ7MToGQomvKOA,561 +scipy/sparse/csgraph/__init__.py,sha256=znrEd48JFLdlcevl8IFDSM104Yl1YvXC0O_f8OUWATs,7842 +scipy/sparse/csgraph/__pycache__/__init__.cpython-311.pyc,, +scipy/sparse/csgraph/__pycache__/_laplacian.cpython-311.pyc,, +scipy/sparse/csgraph/__pycache__/_validation.cpython-311.pyc,, +scipy/sparse/csgraph/_flow.cpython-311-x86_64-linux-gnu.so,sha256=_OSmm_ENyVPM1aFMm2TbiXuDYQqKql-Xg4DYk2wrHX0,208208 +scipy/sparse/csgraph/_laplacian.py,sha256=bpCduRWjIhcDpclvPbftx74PExTiW0P3EE6_Ztiop1Y,18273 +scipy/sparse/csgraph/_matching.cpython-311-x86_64-linux-gnu.so,sha256=j0dxVNkC-1t4KNWut_zPDPZF7qtZGAk1ckFsPyD9RO4,214816 +scipy/sparse/csgraph/_min_spanning_tree.cpython-311-x86_64-linux-gnu.so,sha256=_2i6p_L_6RVe90fTyWNHURA_emdFegDvy6kTcJzH0PM,121024 +scipy/sparse/csgraph/_reordering.cpython-311-x86_64-linux-gnu.so,sha256=LQeiUS3T2QZM2Tcy4EAiGklOAzPDWK4zmw1G9mg87KE,191000 +scipy/sparse/csgraph/_shortest_path.cpython-311-x86_64-linux-gnu.so,sha256=M3OjmUzxVhKI3DgmLjyGmZgWhKWFkgkOEn7H6HoEp1w,519824 +scipy/sparse/csgraph/_tools.cpython-311-x86_64-linux-gnu.so,sha256=MMxgW0jtxQTgierQTJUHy9i-pI0cCbHbMokY9t5YevQ,213344 +scipy/sparse/csgraph/_traversal.cpython-311-x86_64-linux-gnu.so,sha256=s72VlXd2EiYGzXWpDhTqoT2et-jLJfRb1cZrAP31Ak0,474912 +scipy/sparse/csgraph/_validation.py,sha256=SxINtd4jYyH0YWdzspr8JR0syZfO3nMj7C60GWBUr6k,2629 +scipy/sparse/csgraph/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/sparse/csgraph/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/sparse/csgraph/tests/__pycache__/test_connected_components.cpython-311.pyc,, +scipy/sparse/csgraph/tests/__pycache__/test_conversions.cpython-311.pyc,, +scipy/sparse/csgraph/tests/__pycache__/test_flow.cpython-311.pyc,, +scipy/sparse/csgraph/tests/__pycache__/test_graph_laplacian.cpython-311.pyc,, +scipy/sparse/csgraph/tests/__pycache__/test_matching.cpython-311.pyc,, +scipy/sparse/csgraph/tests/__pycache__/test_pydata_sparse.cpython-311.pyc,, +scipy/sparse/csgraph/tests/__pycache__/test_reordering.cpython-311.pyc,, +scipy/sparse/csgraph/tests/__pycache__/test_shortest_path.cpython-311.pyc,, +scipy/sparse/csgraph/tests/__pycache__/test_spanning_tree.cpython-311.pyc,, +scipy/sparse/csgraph/tests/__pycache__/test_traversal.cpython-311.pyc,, +scipy/sparse/csgraph/tests/test_connected_components.py,sha256=a2HZjm7HsC0STqiDnhN6OJL4yIMcM28VNVtMXDI2BqE,3948 +scipy/sparse/csgraph/tests/test_conversions.py,sha256=3n2UJ_rwdcTkD8NfwDrk-8UBplJkqMFw12yPIwX9-R8,1854 +scipy/sparse/csgraph/tests/test_flow.py,sha256=I7csygtef5f6Uv67t2y3UZsln8Gg4eS1RE5zr7Xm-Eg,7718 +scipy/sparse/csgraph/tests/test_graph_laplacian.py,sha256=9nQDRj5_oVK0CXM-DW2Xb2jofW3YCiI0QBezdBUl_60,10936 +scipy/sparse/csgraph/tests/test_matching.py,sha256=AjWHeuMYy6qE8m2RCHPmcVektmM5nTbGl44ic9a2lLU,12394 +scipy/sparse/csgraph/tests/test_pydata_sparse.py,sha256=GSv9fe0hPROU8yynAf2m6WO9JC2yyY1aLSXxd7_eiR8,4967 +scipy/sparse/csgraph/tests/test_reordering.py,sha256=_WNqdGcU-WNhQRpjCq4Nhp8YY6cmVKb13au5sJPpzig,2569 +scipy/sparse/csgraph/tests/test_shortest_path.py,sha256=DNpHp6-6ekXx-_O4xXhh3PF-35HjWW20bp2_Z3zpYGw,18484 +scipy/sparse/csgraph/tests/test_spanning_tree.py,sha256=q4LYiXxfwWUc1io4vRVBr9uxMacfdefPvcRlb3TOEnw,2164 +scipy/sparse/csgraph/tests/test_traversal.py,sha256=PD1EJ8XD3xyCWU7SF9-Qw-skhEAI3tiNDxrabsXgU2I,6149 +scipy/sparse/csr.py,sha256=MaN7K1B7ejJdKlpOZhrkP5YcBVxVPYk_io4okYc_koQ,561 +scipy/sparse/data.py,sha256=R-tvadwaAxifKWzzxhz0awKv2OA89AduDenjz1B2Z1A,504 +scipy/sparse/dia.py,sha256=KsOmYg5wsX-kOKM_vaarB_3LpeZo0eo1qC1UdsiBEnE,561 +scipy/sparse/dok.py,sha256=ki_m850wPAbA8w3qxkXqAWIDo5p2h5cU14c7Pg9PNos,561 +scipy/sparse/extract.py,sha256=6qT2PNOilsEhDWl6MhmgpveIuQr4QCs3LATwIrBroOQ,567 +scipy/sparse/lil.py,sha256=Gve3XHYPYZavcUPJz1TSOhjv6AtPpkKBHTzCK6FG8ek,562 +scipy/sparse/linalg/__init__.py,sha256=KL54k4eDwEf7mHbL21uZe87S2rnSPIFcEI-pT3UpLIw,4111 +scipy/sparse/linalg/__pycache__/__init__.cpython-311.pyc,, +scipy/sparse/linalg/__pycache__/_expm_multiply.cpython-311.pyc,, +scipy/sparse/linalg/__pycache__/_interface.cpython-311.pyc,, +scipy/sparse/linalg/__pycache__/_matfuncs.cpython-311.pyc,, +scipy/sparse/linalg/__pycache__/_norm.cpython-311.pyc,, +scipy/sparse/linalg/__pycache__/_onenormest.cpython-311.pyc,, +scipy/sparse/linalg/__pycache__/_special_sparse_arrays.cpython-311.pyc,, +scipy/sparse/linalg/__pycache__/_svdp.cpython-311.pyc,, +scipy/sparse/linalg/__pycache__/dsolve.cpython-311.pyc,, +scipy/sparse/linalg/__pycache__/eigen.cpython-311.pyc,, +scipy/sparse/linalg/__pycache__/interface.cpython-311.pyc,, +scipy/sparse/linalg/__pycache__/isolve.cpython-311.pyc,, +scipy/sparse/linalg/__pycache__/matfuncs.cpython-311.pyc,, +scipy/sparse/linalg/_dsolve/__init__.py,sha256=PIX7n_d0LOMZZZ65Dz4Mgz9trjKGB2kLaF16PQLkAIs,2039 +scipy/sparse/linalg/_dsolve/__pycache__/__init__.cpython-311.pyc,, +scipy/sparse/linalg/_dsolve/__pycache__/_add_newdocs.cpython-311.pyc,, +scipy/sparse/linalg/_dsolve/__pycache__/linsolve.cpython-311.pyc,, +scipy/sparse/linalg/_dsolve/_add_newdocs.py,sha256=4Nm6RAKQlKI4lQt4z20v0D6m0Vk8eqp0mIzEk5gfztA,3743 +scipy/sparse/linalg/_dsolve/_superlu.cpython-311-x86_64-linux-gnu.so,sha256=FYynIQhhAMgfxEIxTi6uFGpgBELRXWDzx3zE0JiP5R4,811113 +scipy/sparse/linalg/_dsolve/linsolve.py,sha256=NA8YTVL5KcrwjRItpilR1cyQTIidpuU4LhLE8f8CZe4,31177 +scipy/sparse/linalg/_dsolve/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/sparse/linalg/_dsolve/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/sparse/linalg/_dsolve/tests/__pycache__/test_linsolve.cpython-311.pyc,, +scipy/sparse/linalg/_dsolve/tests/test_linsolve.py,sha256=wW-zv9L5PvPHJa94uR6nZqOqYS-T2cj8HoVpxDNPw8M,33213 +scipy/sparse/linalg/_eigen/__init__.py,sha256=SwNho3iWZu_lJvcdSomA5cQdcDU8gocKbmRnm6Bf9-0,460 +scipy/sparse/linalg/_eigen/__pycache__/__init__.cpython-311.pyc,, +scipy/sparse/linalg/_eigen/__pycache__/_svds.cpython-311.pyc,, +scipy/sparse/linalg/_eigen/__pycache__/_svds_doc.cpython-311.pyc,, +scipy/sparse/linalg/_eigen/_svds.py,sha256=niV8PR0Aonw85rbiSPpL-RswAn9TltpUwcni3Qu_kl8,19908 +scipy/sparse/linalg/_eigen/_svds_doc.py,sha256=0_sC8kKbu3b5BYpGl16sPLrZu6mDxiFhj8xkbG2w5-U,15003 +scipy/sparse/linalg/_eigen/arpack/COPYING,sha256=CSZWb59AYXjRIU-Mx5bhZrEhPdfAXgxbRhqLisnlC74,1892 +scipy/sparse/linalg/_eigen/arpack/__init__.py,sha256=zDxf9LokyPitn3_0d-PUXoBCh6tWK0eUSvsAj6nkXI0,562 +scipy/sparse/linalg/_eigen/arpack/__pycache__/__init__.cpython-311.pyc,, +scipy/sparse/linalg/_eigen/arpack/__pycache__/arpack.cpython-311.pyc,, +scipy/sparse/linalg/_eigen/arpack/_arpack.cpython-311-x86_64-linux-gnu.so,sha256=F3l7nYnveM4A3jxyhYDum9LhLWdivqiiMg5p8IL1hWc,885369 +scipy/sparse/linalg/_eigen/arpack/arpack.py,sha256=E1QLSJxqJ8E7hx0ZziQvY-__gjHbJ99cCEl2jBhjJEE,67286 +scipy/sparse/linalg/_eigen/arpack/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/sparse/linalg/_eigen/arpack/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/sparse/linalg/_eigen/arpack/tests/__pycache__/test_arpack.cpython-311.pyc,, +scipy/sparse/linalg/_eigen/arpack/tests/test_arpack.py,sha256=yiL2zpB7ti0rwEP5DYXRZD-7JE3m6Wer07MJ4O65e5s,23735 +scipy/sparse/linalg/_eigen/lobpcg/__init__.py,sha256=E5JEPRoVz-TaLrj_rPm5LP3jCwei4XD-RxbcxYwf5lM,420 +scipy/sparse/linalg/_eigen/lobpcg/__pycache__/__init__.cpython-311.pyc,, +scipy/sparse/linalg/_eigen/lobpcg/__pycache__/lobpcg.cpython-311.pyc,, +scipy/sparse/linalg/_eigen/lobpcg/lobpcg.py,sha256=CdM3hIe0Rm7pfdXAIlt-ddAmhJjTLJGx4FT2mgJTuIs,41967 +scipy/sparse/linalg/_eigen/lobpcg/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/sparse/linalg/_eigen/lobpcg/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/sparse/linalg/_eigen/lobpcg/tests/__pycache__/test_lobpcg.cpython-311.pyc,, +scipy/sparse/linalg/_eigen/lobpcg/tests/test_lobpcg.py,sha256=15uXmcxi0BwPYtuD5kaoddsLE9-bN7QvHJimqFGmtOE,27421 +scipy/sparse/linalg/_eigen/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/sparse/linalg/_eigen/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/sparse/linalg/_eigen/tests/__pycache__/test_svds.cpython-311.pyc,, +scipy/sparse/linalg/_eigen/tests/test_svds.py,sha256=3rQz_qRbkEpu9tFNK98MfRDYMDVv5ZyPaALTzWhBW54,36794 +scipy/sparse/linalg/_expm_multiply.py,sha256=KOSuV2qF4OSKrLGSwUAFT1ibnv4bhU9JBFJkvy9AVXY,26491 +scipy/sparse/linalg/_interface.py,sha256=L_MLquiNwSIXqCtKcrmxtVdFn6F6H7mZifKjJAwUglY,29463 +scipy/sparse/linalg/_isolve/__init__.py,sha256=Z_eQUYbe6RWMSNi09T9TfPEWm8RsVxcIKYAlihM-U-c,479 +scipy/sparse/linalg/_isolve/__pycache__/__init__.cpython-311.pyc,, +scipy/sparse/linalg/_isolve/__pycache__/_gcrotmk.cpython-311.pyc,, +scipy/sparse/linalg/_isolve/__pycache__/iterative.cpython-311.pyc,, +scipy/sparse/linalg/_isolve/__pycache__/lgmres.cpython-311.pyc,, +scipy/sparse/linalg/_isolve/__pycache__/lsmr.cpython-311.pyc,, +scipy/sparse/linalg/_isolve/__pycache__/lsqr.cpython-311.pyc,, +scipy/sparse/linalg/_isolve/__pycache__/minres.cpython-311.pyc,, +scipy/sparse/linalg/_isolve/__pycache__/tfqmr.cpython-311.pyc,, +scipy/sparse/linalg/_isolve/__pycache__/utils.cpython-311.pyc,, +scipy/sparse/linalg/_isolve/_gcrotmk.py,sha256=C6CIO3qXgmCod_AmV3ErdIDrymYCx5_tbqhb0ZwdDa8,15746 +scipy/sparse/linalg/_isolve/iterative.py,sha256=-des4DKVAA17GnbdEiKSCJCKWRQLdBZp6WG2lzMRDo8,33423 +scipy/sparse/linalg/_isolve/lgmres.py,sha256=4o_BMPrhyjXHH6HABhkU8jpEjVDQPaAzdLrdAFZZTxw,8623 +scipy/sparse/linalg/_isolve/lsmr.py,sha256=8MRtv-FJa7nOHlJ7MZ4TsQiWAkZwntD0r55SOQuRqvI,15650 +scipy/sparse/linalg/_isolve/lsqr.py,sha256=Ca2SjyNwMFXSckUTW_LqYFkFc5CWOaZ1yiYB0tK2uB8,21322 +scipy/sparse/linalg/_isolve/minres.py,sha256=akSoJYFPE5no3XPZrkIpdY8DEVLKdf8XCmmN_6zceCE,10862 +scipy/sparse/linalg/_isolve/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/sparse/linalg/_isolve/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/sparse/linalg/_isolve/tests/__pycache__/test_gcrotmk.cpython-311.pyc,, +scipy/sparse/linalg/_isolve/tests/__pycache__/test_iterative.cpython-311.pyc,, +scipy/sparse/linalg/_isolve/tests/__pycache__/test_lgmres.cpython-311.pyc,, +scipy/sparse/linalg/_isolve/tests/__pycache__/test_lsmr.cpython-311.pyc,, +scipy/sparse/linalg/_isolve/tests/__pycache__/test_lsqr.cpython-311.pyc,, +scipy/sparse/linalg/_isolve/tests/__pycache__/test_minres.cpython-311.pyc,, +scipy/sparse/linalg/_isolve/tests/__pycache__/test_utils.cpython-311.pyc,, +scipy/sparse/linalg/_isolve/tests/test_gcrotmk.py,sha256=QiLhe-Z9KRv1TMfe5cbCLO9Nm4vhpNtJEXPChaP_4Lg,5861 +scipy/sparse/linalg/_isolve/tests/test_iterative.py,sha256=cDCvcVc_a3aPzDNWKX_3CHUADQ0SpAFeyNsejbQEdE8,26181 +scipy/sparse/linalg/_isolve/tests/test_lgmres.py,sha256=9J0oq4KEg4UkIOwPQnp7z7U9bJMpCV9NslHCDANCccI,7448 +scipy/sparse/linalg/_isolve/tests/test_lsmr.py,sha256=6D3aZELcgJrp3Qf_HisAIowcwxnCzAiCfTf77YNsbrg,6362 +scipy/sparse/linalg/_isolve/tests/test_lsqr.py,sha256=tYKtlTuXMYYHvfpmrhdCqlzk0BIyohl2b-4b0SA6nBg,3759 +scipy/sparse/linalg/_isolve/tests/test_minres.py,sha256=d_rLkqdObBDD4FBpTOYgzwysTqBtYjgV5v1IDLhyr-8,2434 +scipy/sparse/linalg/_isolve/tests/test_utils.py,sha256=VlmvctRaQtjuYvQuoe2t2ufib74Tua_7qsiVrs3j-p0,265 +scipy/sparse/linalg/_isolve/tfqmr.py,sha256=c8zWhLGlxrY2fUhZReBTqz-Bm274ds97nES19sylkXs,6161 +scipy/sparse/linalg/_isolve/utils.py,sha256=o3T9hbZOk0XXz36AfmTM1KLFHry29atMCldJ1WoZx_k,3387 +scipy/sparse/linalg/_matfuncs.py,sha256=O5I5AmSCVoPzdhBMNzmjxoeCOmO8dN57zTfJbbV5GWo,29338 +scipy/sparse/linalg/_norm.py,sha256=fr4AgQTg1c5nSB5sFKSmL8-oQKut96ASJRGjWe68v5U,6171 +scipy/sparse/linalg/_onenormest.py,sha256=BkWu89ffmifkBdLH--IQ7DiW0hvDkVEiudUx4HRVmcI,15480 +scipy/sparse/linalg/_propack/_cpropack.cpython-311-x86_64-linux-gnu.so,sha256=LzQvRCAaAs7Vdq8niE-AMo5oimKN24B0v5yArdII4VE,570145 +scipy/sparse/linalg/_propack/_dpropack.cpython-311-x86_64-linux-gnu.so,sha256=Mxv7Z3hoIpD1xVzrnl7Xy7h911YMwVdjCuxq8h60eZI,533201 +scipy/sparse/linalg/_propack/_spropack.cpython-311-x86_64-linux-gnu.so,sha256=8x6FefzBBN777MqDogyarBAfzCUmKEAtm5rnTx11WFk,533201 +scipy/sparse/linalg/_propack/_zpropack.cpython-311-x86_64-linux-gnu.so,sha256=Ku95JKKOo7BrKuCmwHRw_1F-5bkoC7SYDa-imFpOfCs,557857 +scipy/sparse/linalg/_special_sparse_arrays.py,sha256=1Sqwuz1qoxehANvNjW2sSffmWjLLxZ7imU4kaAu1fwk,34239 +scipy/sparse/linalg/_svdp.py,sha256=dUr5v53cR5S40r71QCAVy0qUdKMxOviaWAT0ptrcjTQ,11200 +scipy/sparse/linalg/dsolve.py,sha256=fvCzVUda-h-WzwGWDss4FVuv6TVE-OKHzARBlUCDIJw,654 +scipy/sparse/linalg/eigen.py,sha256=4BTo8Tc9SNQaruyrF4gRdFE5NstiA0XH9I44IyikZQ4,626 +scipy/sparse/linalg/interface.py,sha256=_KXBkGhZWvY_ZmGixqWMZe6J64bCPdjtrqr63HvicUI,573 +scipy/sparse/linalg/isolve.py,sha256=diSAxpbYg8PeH75QOEE-CREO8p39f4BZK2dGynJDKIc,649 +scipy/sparse/linalg/matfuncs.py,sha256=H2qJl4ZZqZ4bI-E9NCbu1oFfto0EdFxCTKTugMPHRHg,570 +scipy/sparse/linalg/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/sparse/linalg/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/sparse/linalg/tests/__pycache__/test_expm_multiply.cpython-311.pyc,, +scipy/sparse/linalg/tests/__pycache__/test_interface.cpython-311.pyc,, +scipy/sparse/linalg/tests/__pycache__/test_matfuncs.cpython-311.pyc,, +scipy/sparse/linalg/tests/__pycache__/test_norm.cpython-311.pyc,, +scipy/sparse/linalg/tests/__pycache__/test_onenormest.cpython-311.pyc,, +scipy/sparse/linalg/tests/__pycache__/test_propack.cpython-311.pyc,, +scipy/sparse/linalg/tests/__pycache__/test_pydata_sparse.cpython-311.pyc,, +scipy/sparse/linalg/tests/__pycache__/test_special_sparse_arrays.cpython-311.pyc,, +scipy/sparse/linalg/tests/propack_test_data.npz,sha256=v-NNmpI1Pgj0APODcTblU6jpHUQRhpE9ObWb-KYnu6M,600350 +scipy/sparse/linalg/tests/test_expm_multiply.py,sha256=K7tSwySHF0sMxq06391fhzBwn-eRskwVn74QussqerE,14845 +scipy/sparse/linalg/tests/test_interface.py,sha256=q5rZwUzJBIwiW__n-IzztR6HkZEkv8oePzfG0f1j8K8,21086 +scipy/sparse/linalg/tests/test_matfuncs.py,sha256=TqDnJFHiKdiwXP0Gb6yaXNAeiReV6TdBe4wMQXmXTI4,21740 +scipy/sparse/linalg/tests/test_norm.py,sha256=dJp4VNGpnL5xET60-b1epJqIBZ4g-zDALZWS5Wg60cQ,6716 +scipy/sparse/linalg/tests/test_onenormest.py,sha256=Tzn0FcVcKmbjYoseUkkxjq4mCOhG2cPfDyo9fQCYVPI,9252 +scipy/sparse/linalg/tests/test_propack.py,sha256=--SIFSXDGzyBOTdGwOhgrYhSkbVy1RiyL_Dt_Yonp_4,5567 +scipy/sparse/linalg/tests/test_pydata_sparse.py,sha256=eawVssB3pRqxRmfzoHAVY7xvJU-Flo7JYsnoxhr76Mw,7302 +scipy/sparse/linalg/tests/test_special_sparse_arrays.py,sha256=2Z7r1LPx7QTekuXNTLcspGOdJ9riRwioGIpxzIa0Kh4,12854 +scipy/sparse/sparsetools.py,sha256=pCcuyQYvIahrvr43V398XHyqwcGtWCPLFH6n1uSYmB8,516 +scipy/sparse/spfuncs.py,sha256=TWpfkZk3JErNajVFUH5B85d3r6UuSv0Rsx0lMtUSac0,508 +scipy/sparse/sputils.py,sha256=PsqT7RUmiO8ph5jG8GHYmPbacDQFljjc0SL7RMxweJU,508 +scipy/sparse/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/sparse/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/sparse/tests/__pycache__/test_arithmetic1d.cpython-311.pyc,, +scipy/sparse/tests/__pycache__/test_array_api.cpython-311.pyc,, +scipy/sparse/tests/__pycache__/test_base.cpython-311.pyc,, +scipy/sparse/tests/__pycache__/test_common1d.cpython-311.pyc,, +scipy/sparse/tests/__pycache__/test_construct.cpython-311.pyc,, +scipy/sparse/tests/__pycache__/test_coo.cpython-311.pyc,, +scipy/sparse/tests/__pycache__/test_csc.cpython-311.pyc,, +scipy/sparse/tests/__pycache__/test_csr.cpython-311.pyc,, +scipy/sparse/tests/__pycache__/test_dok.cpython-311.pyc,, +scipy/sparse/tests/__pycache__/test_extract.cpython-311.pyc,, +scipy/sparse/tests/__pycache__/test_indexing1d.cpython-311.pyc,, +scipy/sparse/tests/__pycache__/test_matrix_io.cpython-311.pyc,, +scipy/sparse/tests/__pycache__/test_minmax1d.cpython-311.pyc,, +scipy/sparse/tests/__pycache__/test_sparsetools.cpython-311.pyc,, +scipy/sparse/tests/__pycache__/test_spfuncs.cpython-311.pyc,, +scipy/sparse/tests/__pycache__/test_sputils.cpython-311.pyc,, +scipy/sparse/tests/data/csc_py2.npz,sha256=usJ_Gj6x_dEC2uObfdYc6D6C8JY4jjROFChQcZhNAfo,846 +scipy/sparse/tests/data/csc_py3.npz,sha256=axuEMVxwd0F-cgUS0IalpiF8KHW4GNJ3BK6bcjfGnf4,851 +scipy/sparse/tests/test_arithmetic1d.py,sha256=4woi2qefAsFXR94Tjj_rlvOfdI-e_Vl6wGAFFw01HkI,11984 +scipy/sparse/tests/test_array_api.py,sha256=U8TBj4ZJ5Bc6sOsJ6Q8HgnGBhGJK-sLXS1QD_9pK-4c,14201 +scipy/sparse/tests/test_base.py,sha256=zFb_GsXr6dSwOU90PrSPxtdPHNWHcmD9MTuSjvnEIGU,220477 +scipy/sparse/tests/test_common1d.py,sha256=q1LHzO7HzGulvFrJCren3Vy3RMPXZNxO8aSxq68MUb8,15471 +scipy/sparse/tests/test_construct.py,sha256=lX0Yo17OkR2AwAYvlJvbjpHHOHdXNlLOCaPPJs_EcpE,38434 +scipy/sparse/tests/test_coo.py,sha256=v6mdl7NCT-hOm_ouIbWchdz13V5ssP40LuHCSVgHCzw,39632 +scipy/sparse/tests/test_csc.py,sha256=rB2cBXznxPdQbMZpdQyQitUdCdEeO6bWt7tQ_LBGGDw,2958 +scipy/sparse/tests/test_csr.py,sha256=J8q7e22jt0mGv0OdhdRX5xxcAkVWRclHAOmWwWMeauA,7623 +scipy/sparse/tests/test_dok.py,sha256=25jxMgYsQ_q-aN5uDvALRX6PuV83LVktQeEF3gVINm8,5959 +scipy/sparse/tests/test_extract.py,sha256=4qUPrtCv9H7xd-c9Xs51seQCiIlK45n-9ZEVTDuPiv8,1685 +scipy/sparse/tests/test_indexing1d.py,sha256=r6G8k9GNGfMcVgDg13N2kvmaDkl9FL2CzYYfbLfKXQU,20754 +scipy/sparse/tests/test_matrix_io.py,sha256=sLyFQeZ8QpiSoTM1A735j-LK4K0MV-L7VnWtNaBJhw4,3305 +scipy/sparse/tests/test_minmax1d.py,sha256=UBeHcN4Pw_VAPXtgsyDev5pK3eXvisiiLjibeaiA8S0,4269 +scipy/sparse/tests/test_sparsetools.py,sha256=mryRJI-L7sC_eURqSsYk4oQAC-ygwwB3YABAbZsQxk4,10769 +scipy/sparse/tests/test_spfuncs.py,sha256=ECs34sgYYhTBWe4hIkx357obH2lLsnJWkh7TfacjThw,3258 +scipy/sparse/tests/test_sputils.py,sha256=RXx_xjrYf0xOUyd6AeeKy4UoeHS3kHxna_2ZXiHGYQs,16486 +scipy/spatial/__init__.py,sha256=-FVg_WjbK0J0U2kyei6Fz6NgqEso5cipWZ5gHnqjErs,3731 +scipy/spatial/__pycache__/__init__.cpython-311.pyc,, +scipy/spatial/__pycache__/_geometric_slerp.cpython-311.pyc,, +scipy/spatial/__pycache__/_kdtree.cpython-311.pyc,, +scipy/spatial/__pycache__/_plotutils.cpython-311.pyc,, +scipy/spatial/__pycache__/_procrustes.cpython-311.pyc,, +scipy/spatial/__pycache__/_spherical_voronoi.cpython-311.pyc,, +scipy/spatial/__pycache__/ckdtree.cpython-311.pyc,, +scipy/spatial/__pycache__/distance.cpython-311.pyc,, +scipy/spatial/__pycache__/kdtree.cpython-311.pyc,, +scipy/spatial/__pycache__/qhull.cpython-311.pyc,, +scipy/spatial/_ckdtree.cpython-311-x86_64-linux-gnu.so,sha256=QDVhXVEIUACWvZCpz6wYp4MQzUcTkhlJsBDHr7czKBw,890536 +scipy/spatial/_distance_pybind.cpython-311-x86_64-linux-gnu.so,sha256=f5Z6vdyqUbAnlqa66yuzCNV2XcnKhzN1xHvmciLrfPQ,661864 +scipy/spatial/_distance_wrap.cpython-311-x86_64-linux-gnu.so,sha256=NgqGpBUqoObdAHRvVLOf3uO73vGlg2mFJh0H8dFtw3s,113256 +scipy/spatial/_geometric_slerp.py,sha256=d3pavtaMuIIKjupWLwFLt7WrfqvtT18u7wcsBdnuOTs,7951 +scipy/spatial/_hausdorff.cpython-311-x86_64-linux-gnu.so,sha256=qk4CO35Dx76mz3AJm6vwV3aoA3SnNLXPuy43gDrssys,102496 +scipy/spatial/_kdtree.py,sha256=ImDiR14DOAhwK--x9VhMjAlH_uhumsKuMin1Np63O7Q,33479 +scipy/spatial/_plotutils.py,sha256=cp94kSvt1QzWV6YWjeTrLh0lbWoVQu_0-iagVpoIgMo,7557 +scipy/spatial/_procrustes.py,sha256=qvhHPHt_OIKo-ge_k19S4VWqbP6ZgMXLVnNey0JxTb8,4427 +scipy/spatial/_qhull.cpython-311-x86_64-linux-gnu.so,sha256=AmKLzrMR9FZ9UqOLfgntV38s2UvRX-8XjadpFe_DMNo,994848 +scipy/spatial/_qhull.pyi,sha256=dmvze3QcaoA_Be6H8zswajVatOPwtJFIFxoZFE9qR-A,5969 +scipy/spatial/_spherical_voronoi.py,sha256=v1XkbWI7yoXQ6EJmJHs185vl0qHV8yfRrm3c_gBGyzg,13577 +scipy/spatial/_voronoi.cpython-311-x86_64-linux-gnu.so,sha256=Yqa1cY36AEl5ehzGOnjJjsS9xrMXVGRkT0qFbTFKkeQ,93312 +scipy/spatial/_voronoi.pyi,sha256=aAOiF4fvHz18hmuSjieKkRItssD443p2_w1ggXOIs1g,126 +scipy/spatial/ckdtree.py,sha256=0IssUT415ieBOJuvfZJxIra-TeYyd0KxDGLrXDZ_GGw,523 +scipy/spatial/distance.py,sha256=QRyRa9OLuD16euqNFSBcUnhEPMGEE0H387Hg5iKprKU,98245 +scipy/spatial/distance.pyi,sha256=rVZpbHbTPWeqYN7aBSDBDIt3MLQWbUIYmgwzWJiODjE,5238 +scipy/spatial/kdtree.py,sha256=ZYJL8A_WpLyEH29aFQGLbxd9ttFdGBgdglbgAfsvhz8,636 +scipy/spatial/qhull.py,sha256=aFE-KscuINt6QIhFC2dqhwFCYu3HSBkVXDH5exHH71s,622 +scipy/spatial/qhull_src/COPYING_QHULL.txt,sha256=EG1VyTH9aoSCLlNF2QAnPQWfHCcxDQJWfMsxPF0YxV0,1720 +scipy/spatial/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/spatial/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/spatial/tests/__pycache__/test__plotutils.cpython-311.pyc,, +scipy/spatial/tests/__pycache__/test__procrustes.cpython-311.pyc,, +scipy/spatial/tests/__pycache__/test_distance.cpython-311.pyc,, +scipy/spatial/tests/__pycache__/test_hausdorff.cpython-311.pyc,, +scipy/spatial/tests/__pycache__/test_kdtree.cpython-311.pyc,, +scipy/spatial/tests/__pycache__/test_qhull.cpython-311.pyc,, +scipy/spatial/tests/__pycache__/test_slerp.cpython-311.pyc,, +scipy/spatial/tests/__pycache__/test_spherical_voronoi.cpython-311.pyc,, +scipy/spatial/tests/data/cdist-X1.txt,sha256=ULnYAgX2_AwOVF-VE7XfnW5S0pzhx7UAoocxSnXMaWs,5750 +scipy/spatial/tests/data/cdist-X2.txt,sha256=_IJVjXsp3pvd8NNPNTLmVbHOrzl_RiEXz7cb86NfvZ4,11500 +scipy/spatial/tests/data/degenerate_pointset.npz,sha256=BIq8Hd2SS_LU0fIWAVVS7ZQx-emVRvvzgnaO2lh4gXU,22548 +scipy/spatial/tests/data/iris.txt,sha256=k19QSfkqhMmByqNMzwWDmM6wf5dt6whdGyfAyUO3AW0,15000 +scipy/spatial/tests/data/pdist-boolean-inp.txt,sha256=5Z9SMsXrtmzeUwJlVmGkrPDC_Km7nVpZIbBl7p3Hdc0,50000 +scipy/spatial/tests/data/pdist-chebyshev-ml-iris.txt,sha256=Yerj1wqIzcdyULlha-q02WBNGyS2Q5o2wAr0XVEkzis,178801 +scipy/spatial/tests/data/pdist-chebyshev-ml.txt,sha256=NEd2b-DONqUMV9f8gJ2yod17C_5fXGHHZ38PeFsXkyw,3041 +scipy/spatial/tests/data/pdist-cityblock-ml-iris.txt,sha256=UCWZJeMkMajbpjeG0FW60b0q-4r1geAyguNY6Chx5bM,178801 +scipy/spatial/tests/data/pdist-cityblock-ml.txt,sha256=8Iq7cF8oMJjpqd6qsDt_mKPQK0T8Ldot2P8C5rgbGIU,3041 +scipy/spatial/tests/data/pdist-correlation-ml-iris.txt,sha256=l2kEAu0Pm3OsFJsQtHf9Qdy5jnnoOu1v3MooBISnjP0,178801 +scipy/spatial/tests/data/pdist-correlation-ml.txt,sha256=S4GY3z-rf_BGuHmsnColMvR8KwYDyE9lqEbYT_a3Qag,3041 +scipy/spatial/tests/data/pdist-cosine-ml-iris.txt,sha256=hQzzoZrmw9OXAbqkxC8eTFXtJZrbFzMgcWMLbJlOv7U,178801 +scipy/spatial/tests/data/pdist-cosine-ml.txt,sha256=P92Tm6Ie8xg4jGSP7k7bmFRAP5MfxtVR_KacS73a6PI,3041 +scipy/spatial/tests/data/pdist-double-inp.txt,sha256=0Sx5yL8D8pyYDXTIBZAoTiSsRpG_eJz8uD2ttVrklhU,50000 +scipy/spatial/tests/data/pdist-euclidean-ml-iris.txt,sha256=3-UwBM7WZa4aCgmW_ZAdRSq8KYMq2gnkIUqU73Z0OLI,178801 +scipy/spatial/tests/data/pdist-euclidean-ml.txt,sha256=rkQA2-_d7uByKmw003lFXbXNDjHrUGBplZ8nB_TU5pk,3041 +scipy/spatial/tests/data/pdist-hamming-ml.txt,sha256=IAYroplsdz6n7PZ-vIMIJ4FjG9jC1OSxc3-oVJdSFDM,3041 +scipy/spatial/tests/data/pdist-jaccard-ml.txt,sha256=Zb42SoVEnlTj_N_ndnym3_d4RNZWeHm290hTtpp_zO8,3041 +scipy/spatial/tests/data/pdist-jensenshannon-ml-iris.txt,sha256=L7STTmlRX-z-YvksmiAxEe1UoTmDnQ_lnAjZH53Szp0,172738 +scipy/spatial/tests/data/pdist-jensenshannon-ml.txt,sha256=-sZUikGMWskONojs6fJIMX8VEWpviYYg4u1vipY6Bak,2818 +scipy/spatial/tests/data/pdist-minkowski-3.2-ml-iris.txt,sha256=N5L5CxRT5yf_vq6pFjorJ09Sr-RcnrAlH-_F3kEsyUU,178801 +scipy/spatial/tests/data/pdist-minkowski-3.2-ml.txt,sha256=DRgzqxRtvQVzFnpFAjNC9TDNgRtk2ZRkWPyAaeOx3q4,3041 +scipy/spatial/tests/data/pdist-minkowski-5.8-ml-iris.txt,sha256=jz7SGKU8GuJWASH2u428QL9c-G_-8nZvOFSOUlMdCyA,178801 +scipy/spatial/tests/data/pdist-seuclidean-ml-iris.txt,sha256=37H01o6GibccR_hKIwwbWxGX0Tuxnb-4Qc6rmDxwwUI,178801 +scipy/spatial/tests/data/pdist-seuclidean-ml.txt,sha256=YmcI7LZ6i-Wg1wjAkLVX7fmxzCj621Pc5itO3PvCm_k,3041 +scipy/spatial/tests/data/pdist-spearman-ml.txt,sha256=IrtJmDQliv4lDZ_UUjkZNso3EZyu7pMACxMB-rvHUj0,3041 +scipy/spatial/tests/data/random-bool-data.txt,sha256=MHAQdE4hPVzgu-csVVbm1DNJ80dP7XthJ1kb2In8ImM,6000 +scipy/spatial/tests/data/random-double-data.txt,sha256=GA8hYrHsTBeS864GJf0X6JRTvGlbpM8P8sJairmfnBU,75000 +scipy/spatial/tests/data/random-int-data.txt,sha256=xTUbCgoT4X8nll3kXu7S9lv-eJzZtwewwm5lFepxkdQ,10266 +scipy/spatial/tests/data/random-uint-data.txt,sha256=8IPpXhwglxzinL5PcK-PEqleZRlNKdx3zCVMoDklyrY,8711 +scipy/spatial/tests/data/selfdual-4d-polytope.txt,sha256=rkVhIL1mupGuqDrw1a5QFaODzZkdoaLMbGI_DbLLTzM,480 +scipy/spatial/tests/test__plotutils.py,sha256=fASbg0i7iLiJIEj5vIkiDuTq3wU0z3mKJY019kzKrFk,3814 +scipy/spatial/tests/test__procrustes.py,sha256=wmmnUHRdw_oID0YLi404IEWPH6vEGhvHXSeGPY_idHo,4974 +scipy/spatial/tests/test_distance.py,sha256=NRcJaORboRlM-NWLGjwVRVRfbeHK0p8Vs38J6bhcfXU,88434 +scipy/spatial/tests/test_hausdorff.py,sha256=XcDEzwFuOR9BaLegIj-DPp5GrAi_RsvcW8oGqJf0xkg,8217 +scipy/spatial/tests/test_kdtree.py,sha256=dlSaXMAIXFS73SMM2Vl9UPEe8Vtbyyiz69zmdb8ddYA,49340 +scipy/spatial/tests/test_qhull.py,sha256=wf_jw289-0zv-fJmD8nk7cd68yoG8VE95My336NTovU,50183 +scipy/spatial/tests/test_slerp.py,sha256=gjBdGVUbaPctmw05Z297dUjq5a1lH3erm1meMQoVzeo,16427 +scipy/spatial/tests/test_spherical_voronoi.py,sha256=YCVSpO7-RrmKaAivwrLh5rZJ6CTTNKuIJ9iyhXsi178,14500 +scipy/spatial/transform/__init__.py,sha256=n5D6QjY20YvFBXGvDbC7SfgAkSpuaGVIt5tgwTpGOaI,826 +scipy/spatial/transform/__pycache__/__init__.cpython-311.pyc,, +scipy/spatial/transform/__pycache__/_rotation_groups.cpython-311.pyc,, +scipy/spatial/transform/__pycache__/_rotation_spline.cpython-311.pyc,, +scipy/spatial/transform/__pycache__/rotation.cpython-311.pyc,, +scipy/spatial/transform/_rigid_transform.cpython-311-x86_64-linux-gnu.so,sha256=Vu9HbfLJnws4YlsvuxaEJfoDMI05uPph1fIG8gyEPNM,422808 +scipy/spatial/transform/_rotation.cpython-311-x86_64-linux-gnu.so,sha256=yVV-EpzpWJtoRGUI_4Xbj71wcRzTXPUtDKbr3O8gD5A,857624 +scipy/spatial/transform/_rotation_groups.py,sha256=XS-9K6xYnnwWywMMYMVznBYc1-0DPhADHQp_FIT3_f8,4422 +scipy/spatial/transform/_rotation_spline.py,sha256=B1wmFTqR34W-CMAggNFvFgZwVrgP2v2iFVIzjnAxnA8,14076 +scipy/spatial/transform/rotation.py,sha256=co5Bpny89EfCywilEeeLDvJPESBLrSXTCCJqRlfdYzg,556 +scipy/spatial/transform/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/spatial/transform/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/spatial/transform/tests/__pycache__/test_rigid_transform.cpython-311.pyc,, +scipy/spatial/transform/tests/__pycache__/test_rotation.cpython-311.pyc,, +scipy/spatial/transform/tests/__pycache__/test_rotation_groups.cpython-311.pyc,, +scipy/spatial/transform/tests/__pycache__/test_rotation_spline.cpython-311.pyc,, +scipy/spatial/transform/tests/test_rigid_transform.py,sha256=EzCh8BV6at4hR--x_mh2U0uVN73olOQS485PNcjTvqY,44978 +scipy/spatial/transform/tests/test_rotation.py,sha256=Mfg5YsU7I2lAUYbDp8Hu4bUb5mKu3mN_y7AsYamfIiQ,87126 +scipy/spatial/transform/tests/test_rotation_groups.py,sha256=qnG7kfzs5jDe0_nYxVycziOED3zSABZhxoInxNNCfr0,5552 +scipy/spatial/transform/tests/test_rotation_spline.py,sha256=Q9foNO0YWoGEzjy3hou8BgMr5HXhqFTp-rtq_3F5P80,5702 +scipy/special/__init__.pxd,sha256=l9Y21wnx5fZLvrxCeCMUWQvBI5gHx7LBhimDWptxke8,42 +scipy/special/__init__.py,sha256=PD6E0AAQtr-DpS1Z-g2eaqNfk7YZT8KKPyO_LZPRe6Q,32121 +scipy/special/__pycache__/__init__.cpython-311.pyc,, +scipy/special/__pycache__/_add_newdocs.cpython-311.pyc,, +scipy/special/__pycache__/_basic.cpython-311.pyc,, +scipy/special/__pycache__/_ellip_harm.cpython-311.pyc,, +scipy/special/__pycache__/_input_validation.cpython-311.pyc,, +scipy/special/__pycache__/_lambertw.cpython-311.pyc,, +scipy/special/__pycache__/_logsumexp.cpython-311.pyc,, +scipy/special/__pycache__/_mptestutils.cpython-311.pyc,, +scipy/special/__pycache__/_multiufuncs.cpython-311.pyc,, +scipy/special/__pycache__/_orthogonal.cpython-311.pyc,, +scipy/special/__pycache__/_sf_error.cpython-311.pyc,, +scipy/special/__pycache__/_spfun_stats.cpython-311.pyc,, +scipy/special/__pycache__/_spherical_bessel.cpython-311.pyc,, +scipy/special/__pycache__/_support_alternative_backends.cpython-311.pyc,, +scipy/special/__pycache__/_testutils.cpython-311.pyc,, +scipy/special/__pycache__/add_newdocs.cpython-311.pyc,, +scipy/special/__pycache__/basic.cpython-311.pyc,, +scipy/special/__pycache__/orthogonal.cpython-311.pyc,, +scipy/special/__pycache__/sf_error.cpython-311.pyc,, +scipy/special/__pycache__/specfun.cpython-311.pyc,, +scipy/special/__pycache__/spfun_stats.cpython-311.pyc,, +scipy/special/_add_newdocs.py,sha256=j5Zad94PJo1JFqnTHiGgVoRbZisGjhTvHjCCik6Oh14,272716 +scipy/special/_basic.py,sha256=hEjDUV3jGTSxKuHB2oF8QAZXEu-cqM08hPzqbTWLM0Y,111830 +scipy/special/_comb.cpython-311-x86_64-linux-gnu.so,sha256=FRwzHfYWvAJPYX3m14GxdNOWtVTucHMl8veD24kvBis,60000 +scipy/special/_ellip_harm.py,sha256=YHHFZXMtzdJxyjZXKsy3ocIsV-eg6ne3Up79BuFl9P8,5382 +scipy/special/_ellip_harm_2.cpython-311-x86_64-linux-gnu.so,sha256=u17iMHLzi9BhdT9i6c_64sXCqRZYSRtb-qFBLV-VSK8,142441 +scipy/special/_gufuncs.cpython-311-x86_64-linux-gnu.so,sha256=59jeoRS7BmHCpLWtD0EP7PRic5-0OE1SHbKukIGgpTQ,753744 +scipy/special/_input_validation.py,sha256=ZEwg_sZaesaqzaVA_btZQAi_uPXtIViL_u3Zms6UnyQ,474 +scipy/special/_lambertw.py,sha256=-oSEnHFQWZiUZXMamxPWjfntWq5tt0rzHmI13DxGHBY,3962 +scipy/special/_logsumexp.py,sha256=zn-8NdTWebijsz8NVXoToHKs13nlG3k4F6HbiRQ9Sok,14635 +scipy/special/_mptestutils.py,sha256=ocy_wBXqHGIg311jfjATEA8O29ICl4qPnvTgsmTm5qg,14441 +scipy/special/_multiufuncs.py,sha256=z9UQsy0fwHF-f6tUZOFAjmhw6EXx3njzA2mkyRk-Zho,18522 +scipy/special/_orthogonal.py,sha256=9RcRoMBby-UMRN8bBqK_m34b9gcAhvP3i630SzAnKJk,74230 +scipy/special/_orthogonal.pyi,sha256=13Ta8dtK-pe7Jqa9fqhiQm-eeWE7gMNP4kHCnftcbtQ,8265 +scipy/special/_precompute/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/special/_precompute/__pycache__/__init__.cpython-311.pyc,, +scipy/special/_precompute/__pycache__/cosine_cdf.cpython-311.pyc,, +scipy/special/_precompute/__pycache__/expn_asy.cpython-311.pyc,, +scipy/special/_precompute/__pycache__/gammainc_asy.cpython-311.pyc,, +scipy/special/_precompute/__pycache__/gammainc_data.cpython-311.pyc,, +scipy/special/_precompute/__pycache__/hyp2f1_data.cpython-311.pyc,, +scipy/special/_precompute/__pycache__/lambertw.cpython-311.pyc,, +scipy/special/_precompute/__pycache__/loggamma.cpython-311.pyc,, +scipy/special/_precompute/__pycache__/struve_convergence.cpython-311.pyc,, +scipy/special/_precompute/__pycache__/utils.cpython-311.pyc,, +scipy/special/_precompute/__pycache__/wright_bessel.cpython-311.pyc,, +scipy/special/_precompute/__pycache__/wright_bessel_data.cpython-311.pyc,, +scipy/special/_precompute/__pycache__/wrightomega.cpython-311.pyc,, +scipy/special/_precompute/__pycache__/zetac.cpython-311.pyc,, +scipy/special/_precompute/cosine_cdf.py,sha256=ZGSeDDpLRsapyx2GbIrqqYR98fvaEQrLn7IE-fuodhE,354 +scipy/special/_precompute/expn_asy.py,sha256=JAz0hY1gBJu3Q_dvscQrSJdgKuwpjqFZVwz-sOQQ21w,1265 +scipy/special/_precompute/gammainc_asy.py,sha256=P5OFRcPkkpjGQeYCaMZ8SFSUmZG_CjrEHv8OLwgcGFc,2502 +scipy/special/_precompute/gammainc_data.py,sha256=jogxBuXLr3uEpMBvpqScDz5TzEEalksH8f-cRGzasck,4077 +scipy/special/_precompute/hyp2f1_data.py,sha256=STSBybQ2pCAu6sh8c9tiHsoDOgnisnSp4tkP2cK4MuI,14707 +scipy/special/_precompute/lambertw.py,sha256=7f4F3ivouVNZwuvVX8TAi2lPB7LirPS8IfN5lEw9zI0,1961 +scipy/special/_precompute/loggamma.py,sha256=iq7ZBrUmk8pXYZwO_wINI4u8ENsLbL9VUShGjGO0Pt0,1094 +scipy/special/_precompute/struve_convergence.py,sha256=z7R0Q5_Ye-EqLI9g-yARdl_j5FooofXMRXPLVrIFJQQ,3624 +scipy/special/_precompute/utils.py,sha256=JXJuI07Jlm4bDHJFVtj0jHq05p-V1ofeXZB16Y05kzI,887 +scipy/special/_precompute/wright_bessel.py,sha256=7z2W3spGANZO31r_xauMA6hIQ0eseRlXx-zJW6du5tU,12868 +scipy/special/_precompute/wright_bessel_data.py,sha256=f1id2Gk5TPyUmSt-Evhoq2_hfRgLUU7Qu_mELKtaXGg,5647 +scipy/special/_precompute/wrightomega.py,sha256=YpmLwtGJ4qazMDY0RXjhnQiuRAISI-Pr9MwKc7pZlhc,955 +scipy/special/_precompute/zetac.py,sha256=LmhJP7JFg7XktHvfm-DgzuiWZFtVdpvYzzLOB1ePG1Q,591 +scipy/special/_sf_error.py,sha256=q_Rbfkws1ttgTQKYLt6zFTdY6DFX2HajJe_lXiNWC0c,375 +scipy/special/_specfun.cpython-311-x86_64-linux-gnu.so,sha256=uici1rOfX8MQNXEl8hPlgiDo6CwjgZ69E_3srR-Dcek,236248 +scipy/special/_special_ufuncs.cpython-311-x86_64-linux-gnu.so,sha256=1Rm-RZ0XOyC5o6f46BHtzjWmkIMxTFMUEZs2PSqMge0,1569144 +scipy/special/_spfun_stats.py,sha256=IjK325nhaTa7koQyvlVaeCo01TN9QWRpK6mDzkuuAq0,3779 +scipy/special/_spherical_bessel.py,sha256=Qh8ihvfYZfcyRuk54tGR77o78gkwhVHWKgG2EARuH5g,12457 +scipy/special/_support_alternative_backends.py,sha256=nXxQ0ThCDsOrm6jjVHE_VY6KsBSd2JUcFMFNvkhISEc,10720 +scipy/special/_test_internal.cpython-311-x86_64-linux-gnu.so,sha256=chI-g3LF-kH52VbmqQpP0QqT7dddeDyTd5bswsK91pU,108560 +scipy/special/_test_internal.pyi,sha256=cye6-VI7Jxvb4JDfa1R_f7slEDjYUUfM4edFZ_e0XiE,394 +scipy/special/_testutils.py,sha256=cvlrivMgy18oJqQKzEe3AdZbm4nRTACkC9kqg7wwgqw,11971 +scipy/special/_ufuncs.cpython-311-x86_64-linux-gnu.so,sha256=4bLqoAm9NuGV2JeHVBG-ar68LSL-glK6jcGo6R6xjbM,1630361 +scipy/special/_ufuncs.pyi,sha256=K8yYsK_0QQ9SDas_8uEI8RWDJv5N_0jAnMjXywUEzOg,8859 +scipy/special/_ufuncs.pyx,sha256=aKP5hjCNHxTShDb-blqLsEQgj1vw9FWFGVy1r1Aq5xg,559551 +scipy/special/_ufuncs_cxx.cpython-311-x86_64-linux-gnu.so,sha256=ExyWhBAsBZYr5Wnkmsx9kOKa5LegRu0JESqEroHaboE,1811184 +scipy/special/_ufuncs_cxx.pxd,sha256=-HoYy0THaVlF6C2UuWIDmBhRKFARS_FBG3GA0AL9R3s,5158 +scipy/special/_ufuncs_cxx.pyx,sha256=1JKw03Wdkk4sSnupTS6wNdslp6JZY-J5E6Vd8i4eRDc,28797 +scipy/special/_ufuncs_cxx_defs.h,sha256=Mc8MRnYwRZO8UH70zfEiicDzW-DQy8LQ95MNRLYeliI,8995 +scipy/special/_ufuncs_defs.h,sha256=G5TQaBgvI1PhE7StGCIB7xpcQ3YcHD70wR8CcaGMcP8,2876 +scipy/special/add_newdocs.py,sha256=Wnd-5R0wQAVxSolD4QY2CamTSbe1k48Aie3XaBWRKKc,436 +scipy/special/basic.py,sha256=LRU8rIxXx42O4eVZv21nFwswAu7JFtQ42_4xT5BwYpE,1582 +scipy/special/cython_special.cpython-311-x86_64-linux-gnu.so,sha256=ADqDD8qSXnLRhrQo-_fTX8pAxFUqw9yVySsdOhG2LEI,3309640 +scipy/special/cython_special.pxd,sha256=Zc5_uVRpnzwF-SoJzvjZ37TpxDtObWfIkGSaQ1irbl4,16382 +scipy/special/cython_special.pyi,sha256=BQVUCzV8lCylnmLCtnN0Yz_ttlqyzcLc-BZx2KPXPzM,58 +scipy/special/orthogonal.py,sha256=aLzv7PzJgsdLpyTrV6Cu-rpHNHWlUAEqOImiW4fuzuE,1724 +scipy/special/sf_error.py,sha256=wOZqzX7iipkH39hOHqBlkmretJRbYy-K7PsnZPyaJFU,573 +scipy/special/specfun.py,sha256=V1ZaKH1FFHPvzgkFa-UBVaVTLJRO4fodr7NAW_1jExo,588 +scipy/special/spfun_stats.py,sha256=ESJXGUwH7iijUk6aXZQVI1pnaWiVZ6_l0hVpC4bBSIw,535 +scipy/special/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/special/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_basic.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_bdtr.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_boost_ufuncs.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_boxcox.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_cdflib.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_cdft_asymptotic.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_cephes_intp_cast.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_cosine_distr.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_cython_special.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_data.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_dd.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_digamma.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_ellip_harm.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_erfinv.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_exponential_integrals.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_extending.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_faddeeva.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_gamma.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_gammainc.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_hyp2f1.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_hypergeometric.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_iv_ratio.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_kolmogorov.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_lambertw.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_legendre.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_log1mexp.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_loggamma.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_logit.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_logsumexp.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_mpmath.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_nan_inputs.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_ndtr.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_ndtri_exp.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_orthogonal.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_orthogonal_eval.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_owens_t.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_pcf.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_pdtr.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_powm1.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_precompute_expn_asy.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_precompute_gammainc.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_precompute_utils.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_round.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_sf_error.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_sici.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_specfun.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_spence.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_spfun_stats.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_sph_harm.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_spherical_bessel.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_support_alternative_backends.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_trig.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_ufunc_signatures.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_wright_bessel.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_wrightomega.cpython-311.pyc,, +scipy/special/tests/__pycache__/test_zeta.cpython-311.pyc,, +scipy/special/tests/_cython_examples/extending.pyx,sha256=0ISFhXHFnwuWXg5m9VIYdWGjP_W7hxUE8SwFNkvAM_s,292 +scipy/special/tests/_cython_examples/meson.build,sha256=7WUABNMPYujt2fmD4YNKqihhwaT9AaOs942x7ah0MWw,810 +scipy/special/tests/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/special/tests/data/__pycache__/__init__.cpython-311.pyc,, +scipy/special/tests/data/boost.npz,sha256=V7XCtn7gHHQVNqrmrZ-PEoEGt_3_FSr889j3dLBkWEQ,1270643 +scipy/special/tests/data/gsl.npz,sha256=y_Gv3SeZmAanECeZEKLrL59_VZAzx-y3lt6qEMRP6zE,51433 +scipy/special/tests/data/local.npz,sha256=bCnljOgnCE-E258bupYEWmHOafHT6j18gop5wTPPiPI,203438 +scipy/special/tests/test_basic.py,sha256=yvOjImn5WgPYKARyQQoPL_uNX65k78K81ngnsIj-KLY,194874 +scipy/special/tests/test_bdtr.py,sha256=QwGyt0tnutuou25mS0u2LjRgDTYI6ohM2cbZ-He6Os4,3231 +scipy/special/tests/test_boost_ufuncs.py,sha256=sU0fS2zduaR_mkCn2J8nbN3VlmmRQ9ZzbUQ2h_v7R8I,2303 +scipy/special/tests/test_boxcox.py,sha256=KK6Ti9TMWKbVaxPVfycrUnM09Th1J2ARhVnI7t7y098,3114 +scipy/special/tests/test_cdflib.py,sha256=YW4q4l56i9wbchxMS6wytRQlwFt4sVTRILHwDjWi6JY,24533 +scipy/special/tests/test_cdft_asymptotic.py,sha256=DBVVLaduZUHSWlKJ5aBXmxgdNm_YjLvWgyiTTcQq04c,1441 +scipy/special/tests/test_cephes_intp_cast.py,sha256=yllVoacRDDS_mH7E_pvDux_Jpf7_Fdt3F9Jsgj3_BaY,1129 +scipy/special/tests/test_cosine_distr.py,sha256=zL7aWLisIEy1oNKjcynqncgsCxcPKvPb9Odr-J5Xa1M,2690 +scipy/special/tests/test_cython_special.py,sha256=Y79hvQdFnT3w62Lhg8lFDN34hRpDf7vfV3DyNoCqNEY,19128 +scipy/special/tests/test_data.py,sha256=n6p4MFRXEejYCe_b0Q7CfIu3OXng4jn1nHnMPT9gCOA,30180 +scipy/special/tests/test_dd.py,sha256=I7xSqxTD-GYaO0ol25ZjsGZgqCVt13vbcQlUN7teeG4,1564 +scipy/special/tests/test_digamma.py,sha256=Bm7Hh_aETx6MTN3Wu7Sijy4rYGR_1haNGsi3xfzrAKM,1382 +scipy/special/tests/test_ellip_harm.py,sha256=0Kooy3pTFwWqmDT33sjxQZ1S8qjNe-MqO4gJhgcPrrI,9635 +scipy/special/tests/test_erfinv.py,sha256=fzdEHd6MxfSyzQDO93qndXukG2jWj-XNY2X4BJRIdBI,3059 +scipy/special/tests/test_exponential_integrals.py,sha256=wMPTu9dK32cbtJWOouF1Dw2e0hjZSNxYtcQbVaWlDTk,3863 +scipy/special/tests/test_extending.py,sha256=7Q8NRxp-QBASTY9y0b8xOcAJmrMKhLaruE_MX7nmJ0M,1184 +scipy/special/tests/test_faddeeva.py,sha256=YLY3Ylp4u_8zxTGxOb5kxNfXXEW0ld_GP2ceOR2ev_Y,2568 +scipy/special/tests/test_gamma.py,sha256=hb-ZlA2ZNz6gUGvVtMBgXFl_w30HPmthuUEAmNcz0sw,258 +scipy/special/tests/test_gammainc.py,sha256=QdOylOmN2CY5cFw0BihCP-05x_d8q0Pitb7-a4DgSic,4441 +scipy/special/tests/test_hyp2f1.py,sha256=lvERrDZuLSA7tzVo8rzFuHSNCijGjBuDCDTktJVAcKE,92261 +scipy/special/tests/test_hypergeometric.py,sha256=DUDe1YvIXt4IocGlJuqDO5swZ-QOyR2Etj2rwkF-NqQ,9996 +scipy/special/tests/test_iv_ratio.py,sha256=6Wa4PDSboT1srHiGUOR78_cTvStWgct31cGkLFvDT5A,10108 +scipy/special/tests/test_kolmogorov.py,sha256=-Ika_ORUwxDuaCXATLb489T9lDWoPkJR7r7PNRAE0mE,19280 +scipy/special/tests/test_lambertw.py,sha256=vd5G_70CQz3N_U15mcyE0-2KZ_8QYLKmrJ4ZL-RwFXY,4560 +scipy/special/tests/test_legendre.py,sha256=ndelP3mnTsONEs2TBKC_y1SBK9oCnYV2o8fTgRslFwU,57925 +scipy/special/tests/test_log1mexp.py,sha256=Spw_PfKgjer3aNUEnYiZUaC-dpDwg0cqwsfFxNgYG1U,3142 +scipy/special/tests/test_loggamma.py,sha256=x6kuJf-bEnn5ECdkDSgvk3An_A-9UxVsZpqa49IwAq8,1992 +scipy/special/tests/test_logit.py,sha256=8tkUtuoxbu42WZ2LWMrHA2aW_IuB3M0Iqe9FZ0VrJbI,6503 +scipy/special/tests/test_logsumexp.py,sha256=8euJFCJ8ptFLbHHz85h_XDTQh-hK5zHyLZx6yaz1sZI,18800 +scipy/special/tests/test_mpmath.py,sha256=jxxqNVhzhc0ruRNSAES6jEBx-S3_pRwI-nb7AItGrLA,73789 +scipy/special/tests/test_nan_inputs.py,sha256=4hBxWwgTIeR2mdjhk-B6CBBC4xNNzEfqXtQcGGP-Ad4,1867 +scipy/special/tests/test_ndtr.py,sha256=-UMxTIi4CaaLoJ5-SGW9THChPIM3e1_fTY0L877ioNA,2680 +scipy/special/tests/test_ndtri_exp.py,sha256=13eabgdbfcL37RReiUH7g9amT9XMsTLOfwxFJXR_2Ww,3708 +scipy/special/tests/test_orthogonal.py,sha256=MPGmoiOWWWcH-auAo2RQN-MpVouFmvZcaoZzbTibDac,32154 +scipy/special/tests/test_orthogonal_eval.py,sha256=OPW5OeQWVFHyY7SMG2tY8Ar85StXyz0zfsZe9y9ne14,9571 +scipy/special/tests/test_owens_t.py,sha256=zRbiKje7KrYJ25f1ZuIBfiFSyNtK_bnkIW7dRETIqME,1792 +scipy/special/tests/test_pcf.py,sha256=RNjEWZGFS99DOGZkkPJ8HNqLULko8UkX0nEWFYX26NE,664 +scipy/special/tests/test_pdtr.py,sha256=VmupC2ezUR3p5tgZx0rqXEHAtzsikBW2YgaIxuGwO5A,1284 +scipy/special/tests/test_powm1.py,sha256=9hZeiQVKqV63J5oguYXv_vqolpnJX2XRO1JN0ouLWAM,2276 +scipy/special/tests/test_precompute_expn_asy.py,sha256=bCQikPkWbxVUeimvo79ToVPgwaudzxGC7Av-hPBgIU4,583 +scipy/special/tests/test_precompute_gammainc.py,sha256=6XSz0LTbFRT-k0SlnPhYtpzrlxKHaL_CZbPyDhhfT5E,4459 +scipy/special/tests/test_precompute_utils.py,sha256=MOvdbLbzjN5Z1JQQgtIyjwjuIMPX4s2bTc_kxaX67wc,1165 +scipy/special/tests/test_round.py,sha256=Zv32kFQrDdOPawfGDeZo1PfBG4UsOyKfd3zjbCWLii0,511 +scipy/special/tests/test_sf_error.py,sha256=3-AkADhpVfeaykSORfw7NA6As2QdBNPtrex-IhK8QDg,4240 +scipy/special/tests/test_sici.py,sha256=w4anBf8fiq2fmkwMSz3MX0uy35NLXVqfuW3Fwt2Nqek,1227 +scipy/special/tests/test_specfun.py,sha256=q2JYEnqmUq78rO8no9hXQZ3fc3RuxPrRCcpsLruovDg,1687 +scipy/special/tests/test_spence.py,sha256=fChPw7xncNCTPMUGb0C8BC-lDKHWoEXSz8Rb4Wv8vNo,1099 +scipy/special/tests/test_spfun_stats.py,sha256=mKJZ2-kLmVK3ZqX3UlDi9Mx4bRQZ9YoXQW2fxrW2kZs,1997 +scipy/special/tests/test_sph_harm.py,sha256=LJjXq4JTKHhEGSHk5GonqLrTTiVRPHbfQZ6lkq4b8PM,3002 +scipy/special/tests/test_spherical_bessel.py,sha256=yvwnfjt-eCOChCOi48LsPOEhxCLppo1fA8Qcnp8Hzcg,15027 +scipy/special/tests/test_support_alternative_backends.py,sha256=Xiq5FYNFITG16ClZctdmlEtPvM-Bs3HrsDxnhO2C-T4,9732 +scipy/special/tests/test_trig.py,sha256=ZlzoL1qKvw2ZCbIYTNYm6QkeKqYUSeE7kUghELXZwzU,2332 +scipy/special/tests/test_ufunc_signatures.py,sha256=5tsAbc-QwVe_7YbjbjjYNM1Phiwf51YYqqRx0Hk9EmE,1838 +scipy/special/tests/test_wright_bessel.py,sha256=6WHuXB97skPSsoMgXwRlO7bHydFLnl9iDfctEpZE0uE,7694 +scipy/special/tests/test_wrightomega.py,sha256=BW8TS_CuDjR7exA4l6ADnKhXwgFWUYaN1UIopMBJUZY,3560 +scipy/special/tests/test_zeta.py,sha256=IEPRUdSX5kerDYPmhLWYkYixmUg1ErqHSprQpfkZTP0,11549 +scipy/stats/__init__.py,sha256=mUrEnW9fiJ4memdw1jH_gSuar39XNq4IztecOF64a6g,18746 +scipy/stats/__pycache__/__init__.cpython-311.pyc,, +scipy/stats/__pycache__/_axis_nan_policy.cpython-311.pyc,, +scipy/stats/__pycache__/_binned_statistic.cpython-311.pyc,, +scipy/stats/__pycache__/_binomtest.cpython-311.pyc,, +scipy/stats/__pycache__/_bws_test.cpython-311.pyc,, +scipy/stats/__pycache__/_censored_data.cpython-311.pyc,, +scipy/stats/__pycache__/_common.cpython-311.pyc,, +scipy/stats/__pycache__/_constants.cpython-311.pyc,, +scipy/stats/__pycache__/_continued_fraction.cpython-311.pyc,, +scipy/stats/__pycache__/_continuous_distns.cpython-311.pyc,, +scipy/stats/__pycache__/_correlation.cpython-311.pyc,, +scipy/stats/__pycache__/_covariance.cpython-311.pyc,, +scipy/stats/__pycache__/_crosstab.cpython-311.pyc,, +scipy/stats/__pycache__/_discrete_distns.cpython-311.pyc,, +scipy/stats/__pycache__/_distn_infrastructure.cpython-311.pyc,, +scipy/stats/__pycache__/_distr_params.cpython-311.pyc,, +scipy/stats/__pycache__/_distribution_infrastructure.cpython-311.pyc,, +scipy/stats/__pycache__/_entropy.cpython-311.pyc,, +scipy/stats/__pycache__/_finite_differences.cpython-311.pyc,, +scipy/stats/__pycache__/_fit.cpython-311.pyc,, +scipy/stats/__pycache__/_hypotests.cpython-311.pyc,, +scipy/stats/__pycache__/_kde.cpython-311.pyc,, +scipy/stats/__pycache__/_ksstats.cpython-311.pyc,, +scipy/stats/__pycache__/_mannwhitneyu.cpython-311.pyc,, +scipy/stats/__pycache__/_mgc.cpython-311.pyc,, +scipy/stats/__pycache__/_morestats.cpython-311.pyc,, +scipy/stats/__pycache__/_mstats_basic.cpython-311.pyc,, +scipy/stats/__pycache__/_mstats_extras.cpython-311.pyc,, +scipy/stats/__pycache__/_multicomp.cpython-311.pyc,, +scipy/stats/__pycache__/_multivariate.cpython-311.pyc,, +scipy/stats/__pycache__/_new_distributions.cpython-311.pyc,, +scipy/stats/__pycache__/_odds_ratio.cpython-311.pyc,, +scipy/stats/__pycache__/_page_trend_test.cpython-311.pyc,, +scipy/stats/__pycache__/_probability_distribution.cpython-311.pyc,, +scipy/stats/__pycache__/_qmc.cpython-311.pyc,, +scipy/stats/__pycache__/_qmvnt.cpython-311.pyc,, +scipy/stats/__pycache__/_quantile.cpython-311.pyc,, +scipy/stats/__pycache__/_relative_risk.cpython-311.pyc,, +scipy/stats/__pycache__/_resampling.cpython-311.pyc,, +scipy/stats/__pycache__/_result_classes.cpython-311.pyc,, +scipy/stats/__pycache__/_sampling.cpython-311.pyc,, +scipy/stats/__pycache__/_sensitivity_analysis.cpython-311.pyc,, +scipy/stats/__pycache__/_stats_mstats_common.cpython-311.pyc,, +scipy/stats/__pycache__/_stats_py.cpython-311.pyc,, +scipy/stats/__pycache__/_survival.cpython-311.pyc,, +scipy/stats/__pycache__/_tukeylambda_stats.cpython-311.pyc,, +scipy/stats/__pycache__/_variation.cpython-311.pyc,, +scipy/stats/__pycache__/_warnings_errors.cpython-311.pyc,, +scipy/stats/__pycache__/_wilcoxon.cpython-311.pyc,, +scipy/stats/__pycache__/biasedurn.cpython-311.pyc,, +scipy/stats/__pycache__/contingency.cpython-311.pyc,, +scipy/stats/__pycache__/distributions.cpython-311.pyc,, +scipy/stats/__pycache__/kde.cpython-311.pyc,, +scipy/stats/__pycache__/morestats.cpython-311.pyc,, +scipy/stats/__pycache__/mstats.cpython-311.pyc,, +scipy/stats/__pycache__/mstats_basic.cpython-311.pyc,, +scipy/stats/__pycache__/mstats_extras.cpython-311.pyc,, +scipy/stats/__pycache__/mvn.cpython-311.pyc,, +scipy/stats/__pycache__/qmc.cpython-311.pyc,, +scipy/stats/__pycache__/sampling.cpython-311.pyc,, +scipy/stats/__pycache__/stats.cpython-311.pyc,, +scipy/stats/_ansari_swilk_statistics.cpython-311-x86_64-linux-gnu.so,sha256=R_EV_XFKGRVFD5ReozVufb8vwbCDSGHsLPacpbHwtyg,126232 +scipy/stats/_axis_nan_policy.py,sha256=Iy98OVtoOmzhF3f4mFFcz1AbUomigpifHv47pUM8Sz8,31382 +scipy/stats/_biasedurn.cpython-311-x86_64-linux-gnu.so,sha256=VJLSd25n9eFWmTRBoaKOky2R5Y8b7NJ-pUaOYeQHBGw,320528 +scipy/stats/_biasedurn.pxd,sha256=bQC6xG4RH1E5h2jCKXRMADfgGctiO5TgNlJegKrR7DY,1046 +scipy/stats/_binned_statistic.py,sha256=ATvrikTtX6zW8FKbjpV7O7IvAKSCBBLQSH1JKFR9R7Q,32702 +scipy/stats/_binomtest.py,sha256=aW6p-vRkv3pSB8_0nTfT3kNAhV8Ip44A39EEPyl9Wlc,13118 +scipy/stats/_bws_test.py,sha256=XQMGiLMPKFN3b6O4nD5tkZdcI8D8vggSx8B7XLJ5EGs,7062 +scipy/stats/_censored_data.py,sha256=Ts7GSYYti2z-8yoOJTedj6aCLnGhugLlDRdxZc4rPxs,18306 +scipy/stats/_common.py,sha256=4RqXT04Knp1CoOJuSBV6Uy_XmcmtVr0bImAbSk_VHlQ,172 +scipy/stats/_constants.py,sha256=mBeJgvWcDZBmPFStDNEjlzeZY3aMDMCHWoj7dCmgugQ,1002 +scipy/stats/_continued_fraction.py,sha256=2WyLuQWsx9aIHkYvTE4_VlepAfSKG4otiu_Y5wYbzKA,15508 +scipy/stats/_continuous_distns.py,sha256=sktJ4sY37OLvvymZKfeMKghjxWH64CsOYld3LEoHRzQ,406584 +scipy/stats/_correlation.py,sha256=kj9EhgPYOnqwQkEgTwdj67iYEwDsntKgcUtQElgQpk0,7914 +scipy/stats/_covariance.py,sha256=SLFFrCly5UPu0d-nn2P_U-jdI71qa3w6AGVMnDsxvi0,22660 +scipy/stats/_crosstab.py,sha256=djdU7xCQ-513VlxFEOvLN8oaY4QyUPHDJHWlilhyEVA,7351 +scipy/stats/_discrete_distns.py,sha256=LZ_MakDbm14ygu24l-BqWT9k41lSptVu9OVq91bQ2K0,65473 +scipy/stats/_distn_infrastructure.py,sha256=AjUhOgqm-_R_3leAsqowo_hs0GZvvGg0jaLc7LbICC4,152345 +scipy/stats/_distr_params.py,sha256=bD2Sdq0etEh0NYfi3-vFM-C7PevQfH0dRLbNnXeOtYY,9052 +scipy/stats/_distribution_infrastructure.py,sha256=UoCMUslqepEtGz_YsrYjlAlj3JkqcoXgITFScmI89UU,233676 +scipy/stats/_entropy.py,sha256=lT10WPcnWF23Z9hsiY6cC82aC0MPMXFGu27dfsan5Tc,15768 +scipy/stats/_finite_differences.py,sha256=QaA5p36T0oDt4e_oMOE3QGBT8gB2C3E3ziZSWkkBF9g,4168 +scipy/stats/_fit.py,sha256=PmLg5oE25gnOIHVV-4U-nfUEsKdfgac4M9OaBSjKrow,59747 +scipy/stats/_hypotests.py,sha256=8wEEnCrNIs9Mroff0cCdbgzaUat4-kcPxOAGqLJ2rN0,81346 +scipy/stats/_kde.py,sha256=eLh5TP8UDJyKqQlx3-q27UyLvSibimDooZNPpcKLhDI,25678 +scipy/stats/_ksstats.py,sha256=8Oo_0BAAZnDkLgckkySAFGxUo51ksnDADzkBe4RdkmU,20140 +scipy/stats/_levy_stable/__init__.py,sha256=4JyBm_fpz41F34NSRk-CyZjGeLoovBlyCR7RmMgQ-2M,45903 +scipy/stats/_levy_stable/__pycache__/__init__.cpython-311.pyc,, +scipy/stats/_levy_stable/levyst.cpython-311-x86_64-linux-gnu.so,sha256=kJvrSCmZLpgRDVtnKb5TrCiemwmVd5ha4quPv_36Nqs,67480 +scipy/stats/_mannwhitneyu.py,sha256=LQII0f5CF4-OfWXqBuP4uPjNJ8IuVgPp04itqacy1EA,19330 +scipy/stats/_mgc.py,sha256=iImSUbFmYh_7Ouap70PFP6O6CVpUylf5y44z33j3obg,21359 +scipy/stats/_morestats.py,sha256=kJp4WGWU7Nkrk_96-ZW8c5hbu0FfFih2DWk95d_MnMQ,172445 +scipy/stats/_mstats_basic.py,sha256=Thh1IkZUX3HwIumwUvN4SSLIsEGYTkv3hWysLufoEE4,122909 +scipy/stats/_mstats_extras.py,sha256=0LL3I-tOG17fI5CKPBK7a8e5-yrgX4XLjfsHOs5MMQs,16362 +scipy/stats/_multicomp.py,sha256=x9XBSCbTWl4V-hUZ_YaMYZ5smpE95qBCUic6yYygnpA,16836 +scipy/stats/_multivariate.py,sha256=G85Nc9ZyxDjiRe2RMbmpt2Ov9Sv2e9RWAHVgDFlUQNg,248624 +scipy/stats/_new_distributions.py,sha256=VgLUIBsFZF07H9D6fMwIQfUGLgw_qVJx6JqJrgX7fAc,16192 +scipy/stats/_odds_ratio.py,sha256=zZvZsD7ftKeWUrypXeUapcNoq006XldVAkMMC3RLbWE,17005 +scipy/stats/_page_trend_test.py,sha256=7wOh2MFavBQm2bJkn-myMqG9AjWPIDLcGsXJ_J9DVlA,19234 +scipy/stats/_probability_distribution.py,sha256=lR63klqPgCI787OqH5hqcKsLRe_7R5t_If1SreGQ9G8,69914 +scipy/stats/_qmc.py,sha256=zwIRp5hyRaysWg1y2f5G-LYHWCIoAEqMCa4esi8hbUM,107807 +scipy/stats/_qmc_cy.cpython-311-x86_64-linux-gnu.so,sha256=Sptel5Trr7l7zrePJ5REmQrUVfp48bczd94EMVAcK8g,152448 +scipy/stats/_qmc_cy.pyi,sha256=xOpTSlaG_1YDZhkJjQQtukbcgOTAR9FpcRMkU5g9mXc,1134 +scipy/stats/_qmvnt.py,sha256=y3SLZ70XHw8ks7n9jxxjTP9aOT2deMrUAj69r_H2mD0,16447 +scipy/stats/_qmvnt_cy.cpython-311-x86_64-linux-gnu.so,sha256=jvHjot46msUrTXD-vd0_q6n5qQmfLICYixpAtT8n7ys,144656 +scipy/stats/_quantile.py,sha256=tJodJ0k_aVGw0NpFe_0JkScq_4Rubbj8-XUWXVHT8dA,13418 +scipy/stats/_rcont/__init__.py,sha256=dUzWdRuJNAxnGYVFjDqUB8DMYti3by1WziKEfBDOlB4,84 +scipy/stats/_rcont/__pycache__/__init__.cpython-311.pyc,, +scipy/stats/_rcont/rcont.cpython-311-x86_64-linux-gnu.so,sha256=M19gIyfY_QYGQszDroob08AytUfAtVQH04Xk-ZusZ70,115440 +scipy/stats/_relative_risk.py,sha256=5zeYBMshYwtomiLTkaXc1nmWYD0FsaQNjf0iuDadtSc,9571 +scipy/stats/_resampling.py,sha256=rYM1J5KBxp1KO79ESRAOOsXh9bx682CWMTOXPtKmTX4,103004 +scipy/stats/_result_classes.py,sha256=_ghuGdpFsCMuEmnfHg1AeorR-fASc77ACXYWEmQzXjI,1085 +scipy/stats/_sampling.py,sha256=jVdGtsHyII1GPTwHFKba_aUQAEUIYnaPKz_3v0yKGfI,46407 +scipy/stats/_sensitivity_analysis.py,sha256=rSzMU4dmjN_zL-bt8tcxTTQbpRxNZuKrKn46zQtJyJc,25041 +scipy/stats/_sobol.cpython-311-x86_64-linux-gnu.so,sha256=1uuyOxI0LsdKQWjw8tiysJ94M2gvP8L7ateZOcg0-eM,246832 +scipy/stats/_sobol.pyi,sha256=TAywylI75AF9th9QZY8TYfHvIQ1cyM5QZi7eBOAkrbg,971 +scipy/stats/_sobol_direction_numbers.npz,sha256=SFmTEUfULORluGBcsnf5V9mLg50DGU_fBleTV5BtGTs,589334 +scipy/stats/_stats.cpython-311-x86_64-linux-gnu.so,sha256=8JmjtKyqFtk_Qc6rUa-QTa6wxTZM-dnskA40N6nJ1lY,593400 +scipy/stats/_stats.pxd,sha256=T_7IrDqgIahKMECV5WAtxtsoV91XBVRM359kAXPIhww,709 +scipy/stats/_stats_mstats_common.py,sha256=f9B_XmuN2OTZei2CpWQnrvHO_rcdfdBXsvQgByISY4o,12472 +scipy/stats/_stats_py.py,sha256=wfmIZ7zkoL2zNrbDO9kwvPUPi5quamVOH5ptIGS9o7Q,422794 +scipy/stats/_stats_pythran.cpython-311-x86_64-linux-gnu.so,sha256=FKsQPtHutf3td3jkwuldPT_Ac_hOeYT7DNp1mUI6D-E,202688 +scipy/stats/_survival.py,sha256=JexV_eUz0H_2QSwpido_M_LJr4mkODmhHVwjzFXjgj8,25939 +scipy/stats/_tukeylambda_stats.py,sha256=eodvo09rCVfcYa1Uh6BKHKvXyY8K5Zg2uGQX1phQ6Ew,6871 +scipy/stats/_unuran/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/stats/_unuran/__pycache__/__init__.cpython-311.pyc,, +scipy/stats/_unuran/unuran_wrapper.cpython-311-x86_64-linux-gnu.so,sha256=l7FlPmhPO9QEkT_OZZBxK_bt5JAfsERl31xcHniukuE,1406592 +scipy/stats/_unuran/unuran_wrapper.pyi,sha256=KFcmefkNMDwGB6BDttAzcvi7vZrU6XuD23BcYFdsyBQ,5615 +scipy/stats/_variation.py,sha256=qUg6GOwwPytwDjpK5av_t-71U2UijPfST1J-QLbGgi4,4565 +scipy/stats/_warnings_errors.py,sha256=MpucxNFYEDytXh7vrZCMqTkRfuXTvvMpQ2W_Ak2OnPk,1196 +scipy/stats/_wilcoxon.py,sha256=1Biio5qRv9hhxE9cC6_2luBwCcaMS31tN5fJgAOtxQ8,9507 +scipy/stats/biasedurn.py,sha256=ECfilE4KrIhU2sK-KWtr8yxqthfVsyz_-o4F2TnMXU4,431 +scipy/stats/contingency.py,sha256=psNLzIB1A00rE4U9LwdYyt6XpYZlPRBCqQSMOEjHH04,18649 +scipy/stats/distributions.py,sha256=9Kt2fyTohorJcf6a7M9DYH8Nu4jEU66nKP01cRhKmuE,859 +scipy/stats/kde.py,sha256=8ZThSc3lz-l1Gb2jzIvy1J87_HTd7eXzxuPLClVpo7c,516 +scipy/stats/morestats.py,sha256=GdMXz4MSuPp7hsff_DoijVtFsCEyy6J3_M7BITKGiP4,973 +scipy/stats/mstats.py,sha256=aRbrykjrvl-qOBkmGjlFMH4rbWYSqBBQHReanSAomFg,2466 +scipy/stats/mstats_basic.py,sha256=PjgL37PCPwiDx_ptqnmKXc1W3QGlRjjPrG0nI5FA4So,1394 +scipy/stats/mstats_extras.py,sha256=925lNnnf_NTRoyAnXql-k9syzhv7MF6T2kPGsdE2FHc,721 +scipy/stats/mvn.py,sha256=pOcB_Dd_DHpfbYnuJKq-wqmNNGCun1M0294xK1bX0KQ,498 +scipy/stats/qmc.py,sha256=b6gLkc_FSm11Ssb9uIai4XxLk4XL_qqK6Jc2k4RSeN0,11703 +scipy/stats/sampling.py,sha256=VYwxxGosFs-T3qdCmdw4tJYEFLlegwj-JgDin7iwndE,1939 +scipy/stats/stats.py,sha256=EgWjDdnlfCRKJymUcBDvMvPn0ZLO3G_ml1XJ7wvMbCI,1512 +scipy/stats/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scipy/stats/tests/__pycache__/__init__.cpython-311.pyc,, +scipy/stats/tests/__pycache__/common_tests.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_axis_nan_policy.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_binned_statistic.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_censored_data.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_contingency.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_continued_fraction.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_continuous.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_continuous_basic.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_continuous_fit_censored.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_correlation.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_crosstab.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_discrete_basic.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_discrete_distns.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_distributions.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_entropy.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_fast_gen_inversion.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_fit.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_hypotests.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_kdeoth.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_marray.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_mgc.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_morestats.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_mstats_basic.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_mstats_extras.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_multicomp.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_multivariate.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_odds_ratio.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_qmc.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_quantile.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_rank.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_relative_risk.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_resampling.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_sampling.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_sensitivity_analysis.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_stats.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_survival.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_tukeylambda_stats.cpython-311.pyc,, +scipy/stats/tests/__pycache__/test_variation.cpython-311.pyc,, +scipy/stats/tests/common_tests.py,sha256=RgrKEEuoxKRmoPyxvjJR2RIKQ9AeKh8qHlQUSKOft-g,12521 +scipy/stats/tests/data/__pycache__/_mvt.cpython-311.pyc,, +scipy/stats/tests/data/__pycache__/fisher_exact_results_from_r.cpython-311.pyc,, +scipy/stats/tests/data/_mvt.py,sha256=OvFCmMqI74DWIgo32UV55dP1nzvFvYBSyYcmKJes9pI,6905 +scipy/stats/tests/data/fisher_exact_results_from_r.py,sha256=BKxPAi4h3IOebcZYGxCbutYuAX0tlb40P0DEkfEi918,27349 +scipy/stats/tests/data/jf_skew_t_gamlss_pdf_data.npy,sha256=JU0t7kpNVHuTMcYCQ8b8_K_9JsixBNCNT2BFp2RbO7o,4064 +scipy/stats/tests/data/levy_stable/stable-Z1-cdf-sample-data.npy,sha256=zxjB8tZaIyvyxxISgt8xvyqL6Cevr8TtgQ7TdFfuiYo,183728 +scipy/stats/tests/data/levy_stable/stable-Z1-pdf-sample-data.npy,sha256=_umVErq0zMZWm0e5JOSwNOHNurViT6_H4SBki9X3oSg,183688 +scipy/stats/tests/data/levy_stable/stable-loc-scale-sample-data.npy,sha256=88cZ7dVDH7nnuey20Z48p6kJUpi9GfImaFsPykDwwHM,9328 +scipy/stats/tests/data/nist_anova/AtmWtAg.dat,sha256=Qdd0i7H4cNhAABfFOZPuplhi_9SCquFpO-hNkyRcMD8,3063 +scipy/stats/tests/data/nist_anova/SiRstv.dat,sha256=x9wJ2g1qnzf4DK_w9F_WiOiDMDEg4td2z6uU77G07xM,1947 +scipy/stats/tests/data/nist_anova/SmLs01.dat,sha256=KdnJedRthF7XLA-w7XkIPIMTgzu89yBAMmZA2H4uQOQ,6055 +scipy/stats/tests/data/nist_anova/SmLs02.dat,sha256=nCPyxRk1dAoSPWiC7kG4dLaXs2GL3-KRXRt2NwgXoIA,46561 +scipy/stats/tests/data/nist_anova/SmLs03.dat,sha256=6yPHiQSk0KI4oURQOk99t-uEm-IZN-8eIPHb_y0mQ1U,451566 +scipy/stats/tests/data/nist_anova/SmLs04.dat,sha256=fI-HpgJF9cdGdBinclhVzOcWCCc5ZJZuXalUwirV-lc,6815 +scipy/stats/tests/data/nist_anova/SmLs05.dat,sha256=iJTaAWUFn7DPLTd9bQh_EMKEK1DPG0fnN8xk7BQlPRE,53799 +scipy/stats/tests/data/nist_anova/SmLs06.dat,sha256=riOkYT-LRgmJhPpCK32x7xYnD38gwnh_Eo1X8OK3eN8,523605 +scipy/stats/tests/data/nist_anova/SmLs07.dat,sha256=QtSS11d-vkVvqaIEeJ6oNwyET1CKoyQqjlfBl2sTOJA,7381 +scipy/stats/tests/data/nist_anova/SmLs08.dat,sha256=qrxQQ0I6gnhrefygKwT48x-bz-8laD8Vpn7c81nITRg,59228 +scipy/stats/tests/data/nist_anova/SmLs09.dat,sha256=qmELOQyNlH7CWOMt8PQ0Z_yxgg9Hxc4lqZOuHZxxWuc,577633 +scipy/stats/tests/data/nist_linregress/Norris.dat,sha256=zD_RTRxfqJHVZTAAyddzLDDbhCzKSfwFGr3hwZ1nq30,2591 +scipy/stats/tests/data/rel_breitwigner_pdf_sample_data_ROOT.npy,sha256=7vTccC3YxuMcGMdOH4EoTD6coqtQKC3jnJrTC3u4520,38624 +scipy/stats/tests/data/studentized_range_mpmath_ref.json,sha256=icZGNBodwmJNzOyEki9MreI2lS6nQJNWfnVJiHRNRNM,29239 +scipy/stats/tests/test_axis_nan_policy.py,sha256=nZP8G4zxsErmPPhpjwU6e8woipAziIOlldzzczslTEU,60712 +scipy/stats/tests/test_binned_statistic.py,sha256=WE5KdJq4zJxZ1LuYp8lv-RMcTEyjuSkjvFHWsGMujkM,18814 +scipy/stats/tests/test_censored_data.py,sha256=pAQfSHhmcetcxoS1ZgIHVm1pEbapW7az7I-y_8phb5w,6935 +scipy/stats/tests/test_contingency.py,sha256=00QIN99yybM_HhrLf8kck85gWPUAQmYIKI7XnVzPF94,10937 +scipy/stats/tests/test_continued_fraction.py,sha256=GGRwIZ6zhsVNaR0Kbc7x2GFpOxSV48URXKz7B5_kEBQ,6709 +scipy/stats/tests/test_continuous.py,sha256=mN2XHmS98MKhxu7SMsVyviR4pAxdPx-m_bB7CMxx8Ac,93168 +scipy/stats/tests/test_continuous_basic.py,sha256=TTpHRJHoQOS-2KJYLdXHUDtHi8e0hNDe3WKvKVHHhs0,43201 +scipy/stats/tests/test_continuous_fit_censored.py,sha256=7hu1sSo9hhh0g9pmPMmjj2BI2rkxvA1h20XdMYZeyog,24188 +scipy/stats/tests/test_correlation.py,sha256=I_iO0q5jqRa7yWMexR5hDdoeSuJS73HIUjOzzZUpBxE,3507 +scipy/stats/tests/test_crosstab.py,sha256=2zqnoWW70MkvFjxAQlpW4vzWI624rcYLAlAVf7vZ9DU,3906 +scipy/stats/tests/test_discrete_basic.py,sha256=6xd7X5VxwxRMD9dWOEX37gcm7gRzLRISxz_HkfI9Qpc,21339 +scipy/stats/tests/test_discrete_distns.py,sha256=_O6vUQ7TBJpZMegZb50gVwHgxymhNQUsYUQ_8ZGuhXI,25332 +scipy/stats/tests/test_distributions.py,sha256=IXavxGdVNF4ASaR-gasGil7F2SeuTAQCngOA2avcsXE,413903 +scipy/stats/tests/test_entropy.py,sha256=frDNKbgk4kxYfh6_xQWxSQ41M1Rkbk1nHcKba_TnbD4,12967 +scipy/stats/tests/test_fast_gen_inversion.py,sha256=B_I5i2YClc_UK6FDDiDyZI5-dgOcVD9BlQhgaHfMKNY,16050 +scipy/stats/tests/test_fit.py,sha256=hE9oIZOhdq8DOFrAGDn-8A58QhGVgmkpaI4TN0CzNEQ,48931 +scipy/stats/tests/test_hypotests.py,sha256=Zy8LAp9el7IUSyWRKsfxz8zEmhrCMlFkaWxoSzh9rx4,85240 +scipy/stats/tests/test_kdeoth.py,sha256=37Eq00PueMwWZpgxG5F-V3pcNUco2goxb-hJzAT-7WE,22823 +scipy/stats/tests/test_marray.py,sha256=drm1QfSibMZ9ucfvKoizVyxMBFXpjtUAFR23MpBOXMw,12454 +scipy/stats/tests/test_mgc.py,sha256=x8e8Y1xmBeYZSc9IXoJVSJWudUD8CCbFPe5lmCghfrw,7961 +scipy/stats/tests/test_morestats.py,sha256=la9MSEkO89KWreKV7rFsi_9-07qPWhLFCFfsXSJxyrI,143066 +scipy/stats/tests/test_mstats_basic.py,sha256=TRfasSXMbimxDmInGPKgBkRrilEpdbqyPHG46P2WdGk,87311 +scipy/stats/tests/test_mstats_extras.py,sha256=CCexzT1lksTG_WvGvHn6-CuWd_ZXoFviNGnBZd_hE7Y,7297 +scipy/stats/tests/test_multicomp.py,sha256=s5mL9NQMvD4khQ12n2_maXKX9Q5pI0HFjcaYMZyhcJ0,17826 +scipy/stats/tests/test_multivariate.py,sha256=abTdEra7PHhGluCzjq5Mbk8CdW3AvPCzZXY9XYJXZlw,173335 +scipy/stats/tests/test_odds_ratio.py,sha256=ZII-yvP_vhuaNa3qPB0Q5lh9yzRF-08ZcdkAwuu5E94,6727 +scipy/stats/tests/test_qmc.py,sha256=a-mYEibkr1iLSoh6bBCENVaNrRqYctsl1yOywlAGP4Y,57605 +scipy/stats/tests/test_quantile.py,sha256=HAcgUpP4lWWjy9LZ2oyMEWkR7HwBeafhnkDjRQh_IxQ,8512 +scipy/stats/tests/test_rank.py,sha256=5fBUqumr2xySlHlFyvWFePy__GVpgOJPGSxR6bxSzJs,12648 +scipy/stats/tests/test_relative_risk.py,sha256=jzOGNQ2y9_YfFnXiGAiRDrgahy66qQkw6ZkHgygCJMA,3646 +scipy/stats/tests/test_resampling.py,sha256=AS3H9i30YLeL_3Cu6VrdOnfQMjZE2PutzfSSaGX-m_8,82080 +scipy/stats/tests/test_sampling.py,sha256=d1hAHT4c950eqbKo3zmOzmBKM54qfLvqHIhXh8t6fOg,54757 +scipy/stats/tests/test_sensitivity_analysis.py,sha256=nNF_B6Zl5YxmvppI8TEPOGroDsbgyLTF6jBmdJH2AUw,10678 +scipy/stats/tests/test_stats.py,sha256=Ou9n6V3a82j2R9kKt383V7TCTQ8VtoY1YpBrt8g8TXk,408623 +scipy/stats/tests/test_survival.py,sha256=Wmig-n93Y2wCuye9btK4QqXwUAdzF0xR_MO9iYZARjU,21958 +scipy/stats/tests/test_tukeylambda_stats.py,sha256=6WUBNVoTseVjfrHfWXtU11gTgmRcdnwAPLQOI0y_5U8,3231 +scipy/stats/tests/test_variation.py,sha256=1KLkgmYwVLzRIZWFJ5b-nrh4tx9qhw13NVPrKMXpTMo,9393 +scipy/version.py,sha256=-ah8C-o6QPIp1JZQYRAfeeXkM7phN4yw2caeNQsJUlc,318 diff --git a/venv/lib/python3.11/site-packages/scipy-1.16.3.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/scipy-1.16.3.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/scipy-1.16.3.dist-info/WHEEL b/venv/lib/python3.11/site-packages/scipy-1.16.3.dist-info/WHEEL new file mode 100644 index 0000000..3d2901c --- /dev/null +++ b/venv/lib/python3.11/site-packages/scipy-1.16.3.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: meson +Root-Is-Purelib: false +Tag: cp311-cp311-manylinux_2_17_x86_64 +Tag: cp311-cp311-manylinux2014_x86_64 + diff --git a/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/METADATA b/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/METADATA new file mode 100644 index 0000000..8195e98 --- /dev/null +++ b/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/METADATA @@ -0,0 +1,491 @@ +Metadata-Version: 2.4 +Name: scooby +Version: 0.11.0 +Summary: A Great Dane turned Python environment detective +Home-page: https://github.com/banesullivan/scooby +Author: Dieter Werthmüller, Bane Sullivan, Alex Kaszynski, and contributors +Author-email: info@pyvista.org +Classifier: Programming Language :: Python +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Intended Audience :: Science/Research +Classifier: Natural Language :: English +Requires-Python: >=3.8 +Description-Content-Type: text/markdown +License-File: LICENSE +Provides-Extra: cpu +Requires-Dist: psutil; extra == "cpu" +Requires-Dist: mkl; extra == "cpu" +Dynamic: author +Dynamic: author-email +Dynamic: classifier +Dynamic: description +Dynamic: description-content-type +Dynamic: home-page +Dynamic: license-file +Dynamic: provides-extra +Dynamic: requires-python +Dynamic: summary + +# 🐶🕵️ Scooby + +[![Downloads](https://img.shields.io/pypi/dm/scooby.svg?label=PyPI%20downloads)](https://pypi.org/project/scooby/) +[![Tests](https://github.com/banesullivan/scooby/actions/workflows/pythonpackage.yml/badge.svg)](https://github.com/banesullivan/scooby/actions/workflows/pythonpackage.yml) +[![PyPI Status](https://img.shields.io/pypi/v/scooby.svg?logo=python&logoColor=white)](https://pypi.org/project/scooby/) +[![Conda Status](https://img.shields.io/conda/vn/conda-forge/scooby.svg)](https://anaconda.org/conda-forge/scooby) +[![codecov](https://codecov.io/gh/banesullivan/scooby/branch/main/graph/badge.svg?token=eJqZ700tqH)](https://codecov.io/gh/banesullivan/scooby) + +*Great Dane turned Python environment detective* + +This is a lightweight tool for easily reporting your Python environment's +package versions and hardware resources. + + +Install from [PyPI](https://pypi.org/project/scooby/) + +```bash +pip install scooby +``` + +or from [conda-forge](https://anaconda.org/conda-forge/scooby/) + +```bash +conda install -c conda-forge scooby +``` + +![Jupyter Notebook Formatting](https://github.com/banesullivan/scooby/raw/main/assets/jupyter.png) + +Scooby has HTML formatting for Jupyter notebooks and rich text formatting for +just about every other environment. We designed this module to be lightweight +such that it could easily be added as a dependency to Python projects for +environment reporting when debugging. Simply add scooby to your dependencies +and implement a function to have scooby report on the aspects of the +environment you care most about. + +If scooby is unable to detect aspects of an environment that you'd like to +know, please share this with us as a feature requests or pull requests. + +The scooby reporting is derived from the versioning-scripts created by [Dieter +Werthmüller](https://github.com/prisae) for +[empymod](https://empymod.github.io), [emg3d](https://empymod.github.io), and +the [SimPEG](https://github.com/simpeg/) framework. It was heavily inspired by +`ipynbtools.py` from [qutip](https://github.com/qutip) and +[`watermark.py`](https://github.com/rasbt/watermark). This package has been +altered to create a lightweight implementation so that it can easily be used as +an environment reporting tool in any Python library with minimal impact. + +## Usage + +### Generating Reports + +Reports are rendered as html-tables in Jupyter notebooks as shown in the +screenshot above, and otherwise as plain text lists. If you do not output the +`Report` object either at the end of a notebook cell or it is generated +somewhere in a vanilla Python script, you may have to print the `Report` +object: `print(scooby.Report())`, but note that this will only output the plain +text representation of the script. + +```py +>>> import scooby +>>> scooby.Report() +``` +``` +-------------------------------------------------------------------------------- + Date: Wed Feb 12 15:35:43 2020 W. Europe Standard Time + + OS : Windows + CPU(s) : 16 + Machine : AMD64 + Architecture : 64bit + RAM : 31.9 GiB + Environment : IPython + + Python 3.7.6 | packaged by conda-forge | (default, Jan 7 2020, 21:48:41) + [MSC v.1916 64 bit (AMD64)] + + numpy : 1.18.1 + scipy : 1.3.1 + IPython : 7.12.0 + matplotlib : 3.0.3 + scooby : 0.5.0 + + Intel(R) Math Kernel Library Version 2019.0.4 Product Build 20190411 for + Intel(R) 64 architecture applications +-------------------------------------------------------------------------------- +``` + +For all the Scooby-Doo fans out there, `doo` is an alias for `Report` so you +can oh-so satisfyingly do: + +```py +>>> import scooby +>>> scooby.doo() +``` +``` +-------------------------------------------------------------------------------- + Date: Thu Nov 25 09:47:50 2021 MST + + OS : Darwin + CPU(s) : 12 + Machine : x86_64 + Architecture : 64bit + RAM : 32.0 GiB + Environment : Python + File system : apfs + + Python 3.8.12 | packaged by conda-forge | (default, Oct 12 2021, 21:50:38) + [Clang 11.1.0 ] + + numpy : 1.21.4 + scipy : 1.7.3 + IPython : 7.29.0 + matplotlib : 3.5.0 + scooby : 0.5.8 +-------------------------------------------------------------------------------- +``` + +Or better yet: + +```py +from scooby import doo as doobiedoo +``` + +On top of the default (optional) packages you can provide additional packages, +either as strings or give already imported packages: +```py +>>> import pyvista +>>> import scooby +>>> scooby.Report(additional=[pyvista, 'vtk', 'no_version', 'does_not_exist']) +``` +``` +-------------------------------------------------------------------------------- + Date: Wed Feb 12 16:15:15 2020 W. Europe Standard Time + + OS : Windows + CPU(s) : 16 + Machine : AMD64 + Architecture : 64bit + RAM : 31.9 GiB + Environment : IPython + + Python 3.7.6 | packaged by conda-forge | (default, Jan 7 2020, 21:48:41) + [MSC v.1916 64 bit (AMD64)] + + pyvista : 0.23.1 + vtk : 8.1.2 + no_version : Version unknown + does_not_exist : Could not import + numpy : 1.18.1 + scipy : 1.3.1 + IPython : 7.12.0 + matplotlib : 3.0.3 + scooby : 0.5.0 + + Intel(R) Math Kernel Library Version 2019.0.4 Product Build 20190411 for + Intel(R) 64 architecture applications +-------------------------------------------------------------------------------- +``` + +Furthermore, scooby reports if a package could not be imported or if the +version of a package could not be determined. + +Other useful parameters are + +- `ncol`: number of columns in the html-table; +- `text_width`: text width of the plain-text version; +- `sort`: list is sorted alphabetically if True. + +Besides `additional` there are two more lists, `core` and `optional`, which +can be used to provide package names. However, they are mostly useful for +package maintainers wanting to use scooby to create their reporting system +(see below). + + +### Implementing scooby in your project + +You can easily generate a custom `Report` instance using scooby within your +project: + +```py +class Report(scooby.Report): + def __init__(self, additional=None, ncol=3, text_width=80, sort=False): + """Initiate a scooby.Report instance.""" + + # Mandatory packages. + core = ['yourpackage', 'your_core_packages', 'e.g.', 'numpy', 'scooby'] + + # Optional packages. + optional = ['your_optional_packages', 'e.g.', 'matplotlib'] + + scooby.Report.__init__(self, additional=additional, core=core, + optional=optional, ncol=ncol, + text_width=text_width, sort=sort) +``` + +This makes it particularly easy for a user of your project to quickly generate +a report on all of the relevant package versions and environment details when +submitting a bug. + +```py +>>> import your_package +>>> your_package.Report() +``` + +The packages on the `core`-list are the mandatory ones for your project, while +the `optional`-list can be used for optional packages. Keep the +`additional`-list free to allow your users to add packages to the list. + +#### Implementing as a soft dependency + +If you would like to implement scooby, but are hesitant to add another +dependency to your package, here is an easy way how you can use scooby as a +soft dependency. Instead of `import scooby` use the following snippet: + +```py +# Make scooby a soft dependency: +try: + from scooby import Report as ScoobyReport +except ImportError: + class ScoobyReport: + def __init__(self, *args, **kwargs): + message = ( + '\n *ERROR*: `Report` requires `scooby`.' + '\n Install it via `pip install scooby` or' + '\n `conda install -c conda-forge scooby`.\n' + ) + raise ImportError(message) +``` + +and then create your own `Report` class same as above, + +```py +class Report(ScoobyReport): + def __init__(self, additional=None, ncol=3, text_width=80, sort=False): + """Initiate a scooby.Report instance.""" + + # Mandatory packages. + core = ['yourpackage', 'your_core_packages', 'e.g.', 'numpy', 'scooby'] + + # Optional packages. + optional = ['your_optional_packages', 'e.g.', 'matplotlib'] + + scooby.Report.__init__(self, additional=additional, core=core, + optional=optional, ncol=ncol, + text_width=text_width, sort=sort) + +``` +If a user has scooby installed, all works as expected. If scooby is not +installed, it will raise the following exception: + +```py +>>> import your_package +>>> your_package.Report() + + *ERROR*: `Report` requires `scooby` + Install it via `pip install scooby` or + `conda install -c conda-forge scooby`. +``` + +### Autogenerate Reports for any Packages + +Scooby can automatically generate a Report for any package and its +distribution requirements with the `AutoReport` class: + +```py +>>> import scooby +>>> scooby.AutoReport('matplotlib') +``` +``` +-------------------------------------------------------------------------------- + Date: Fri Oct 20 16:49:34 2023 PDT + + OS : Darwin + CPU(s) : 8 + Machine : arm64 + Architecture : 64bit + RAM : 16.0 GiB + Environment : Python + File system : apfs + + Python 3.11.3 | packaged by conda-forge | (main, Apr 6 2023, 08:58:31) + [Clang 14.0.6 ] + + matplotlib : 3.7.1 + contourpy : 1.0.7 + cycler : 0.11.0 + fonttools : 4.39.4 + kiwisolver : 1.4.4 + numpy : 1.24.3 + packaging : 23.1 + pillow : 9.5.0 + pyparsing : 3.0.9 + python-dateutil : 2.8.2 +-------------------------------------------------------------------------------- +``` + +### Solving Mysteries + +Are you struggling with the mystery of whether or not code is being executed in +IPython, Jupyter, or normal Python? Try using some of scooby's investigative +functions to solve these kinds of mysteries: + +```py +import scooby + +if scooby.in_ipykernel(): + # Do Jupyter/IPyKernel stuff +elif scooby.in_ipython(): + # Do IPython stuff +else: + # Do normal, boring Python stuff +``` + +### How does scooby get version numbers? + +A couple of locations are checked, and we are happy to implement more if +needed, just open an issue! + +Currently, it looks in the following places: +- `__version__` +- `version` +- lookup `VERSION_ATTRIBUTES` in the scooby knowledge base +- lookup `VERSION_METHODS` in the scooby knowledge base + +`VERSION_ATTRIBUTES` is a dictionary of attributes for known python packages +with a non-standard place for the version. You can add other known places via: + +```py +scooby.knowledge.VERSION_ATTRIBUTES['a_module'] = 'Awesome_version_location' +``` + +Similarly, `VERSION_METHODS` is a dictionary for methods to retrieve the +version, and you can similarly add your methods which will get the version +of a package. + +### Using scooby to get version information. + +If you are only interested in the version of a single package then you can use +scooby as well. A few examples: + +```py +>>> import scooby, numpy +>>> scooby.get_version(numpy) +('numpy', '1.16.4') +>>> scooby.get_version('no_version') +('no_version', 'Version unknown') +>>> scooby.get_version('does_not_exist') +('does_not_exist', 'Could not import') +``` + +Note that modules can be provided as already loaded ones or as strings. + + +### Tracking Imports in a Session + +Scooby has the ability to track all imported modules during a Python session +such that *any* imported, non-standard lib package that is used in the session +is reported by a `TrackedReport`. For instance, start a session by importing +scooby and enabling tracking with the `track_imports()` function. +Then *all* subsequent packages that are imported during the session will be +tracked and scooby can report their versions. +Once you are ready to generate a `Report`, instantiate a `TrackedReport` object. + +In the following example, we import a constant from `scipy` which will report +the versions of `scipy` and `numpy` as both packages are loaded in the session +(note that `numpy` is internally loaded by `scipy`). + +```py +>>> import scooby +>>> scooby.track_imports() + +>>> from scipy.constants import mu_0 # a float value + +>>> scooby.TrackedReport() +``` +``` +-------------------------------------------------------------------------------- + Date: Thu Apr 16 15:33:11 2020 MDT + + OS : Linux + CPU(s) : 8 + Machine : x86_64 + Architecture : 64bit + RAM : 62.7 GiB + Environment : IPython + + Python 3.7.7 (default, Mar 10 2020, 15:16:38) [GCC 7.5.0] + + scooby : 0.5.2 + numpy : 1.18.1 + scipy : 1.4.1 +-------------------------------------------------------------------------------- +``` + +## Command-Line Interface + +Scooby comes with a command-line interface. Simply typing + +```bash +scooby +``` + +in a terminal will display the default report. You can also use the CLI to show +the scooby Report of another package if that package has implemented a Report +class as suggested above, using `packagename.Report()`. + +As an example, to print the report of pyvista you can run + +```bash +scooby -r pyvista +``` + +which will show the Report implemented in PyVista. + +The CLI can also generate a report based on the dependencies of a package's +distribution where that package hasn't implemented a Report class. For example, +we can generate a Report for `matplotlib` and its dependencies: + +```bash +$ scooby -r matplotlib +-------------------------------------------------------------------------------- + Date: Fri Oct 20 17:03:45 2023 PDT + + OS : Darwin + CPU(s) : 8 + Machine : arm64 + Architecture : 64bit + RAM : 16.0 GiB + Environment : Python + File system : apfs + + Python 3.11.3 | packaged by conda-forge | (main, Apr 6 2023, 08:58:31) + [Clang 14.0.6 ] + + matplotlib : 3.7.1 + contourpy : 1.0.7 + cycler : 0.11.0 + fonttools : 4.39.4 + kiwisolver : 1.4.4 + numpy : 1.24.3 + packaging : 23.1 + pillow : 9.5.0 + pyparsing : 3.0.9 + python-dateutil : 2.8.2 +importlib-resources : 5.12.0 +-------------------------------------------------------------------------------- +``` + +Simply type + +```bash +scooby --help +``` + +to see all the possibilities. + +## Optional Requirements + +The following is a list of optional requirements and their purpose: + +- `psutil`: report total RAM in GiB +- `mkl-services`: report Intel(R) Math Kernel Library version diff --git a/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/RECORD b/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/RECORD new file mode 100644 index 0000000..7dd4819 --- /dev/null +++ b/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/RECORD @@ -0,0 +1,21 @@ +../../../bin/scooby,sha256=a9alVTggT59hEovqpxdU0IkU71saacy3WCfW-Xt9RYQ,251 +scooby-0.11.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +scooby-0.11.0.dist-info/METADATA,sha256=fCugJsgnz1X82RsZflH9_6Y-hU1jwA3mf28CjhLuGfs,15584 +scooby-0.11.0.dist-info/RECORD,, +scooby-0.11.0.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91 +scooby-0.11.0.dist-info/entry_points.txt,sha256=KTlv6YaLyS76PTLmf7py7YHiXZWFCAJuBXUrHzZMl5k,48 +scooby-0.11.0.dist-info/licenses/LICENSE,sha256=giCLEb5xJN5Ubh6o1_2LxHj_stYr5G2CIQB5eNJIOls,1092 +scooby-0.11.0.dist-info/top_level.txt,sha256=oX_VE1nOf9VcU-P6aNVxYzjrCkhow6VGyw1PbLKkUUU,7 +scooby/__init__.py,sha256=ENoc9d78q5G-0rOrdws-k4eLnoexThvp_6gOF9TlMqU,1547 +scooby/__main__.py,sha256=AVlit0iwZl2WZQnFS4nwtGStUfn_QO1J2oOXwt7l4SM,3092 +scooby/__pycache__/__init__.cpython-311.pyc,, +scooby/__pycache__/__main__.cpython-311.pyc,, +scooby/__pycache__/knowledge.cpython-311.pyc,, +scooby/__pycache__/report.cpython-311.pyc,, +scooby/__pycache__/tracker.cpython-311.pyc,, +scooby/__pycache__/version.cpython-311.pyc,, +scooby/knowledge.py,sha256=ZLzdzBfiZ1QbHoo-HEiG8vvHL_EDAsbnB_-M_7Yz_Dg,5654 +scooby/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +scooby/report.py,sha256=DHtl6B9w1NZzyp13Dlp-Sugu2qaA8HpSjzpizWH_1ac,22784 +scooby/tracker.py,sha256=l1HdJ1L6GtX-1dOD_npQsFrnqR7B7c75L8JmwYspgZY,3212 +scooby/version.py,sha256=s2jGo7uCz_aS8K-Ws-a3B3OLScVZ3UYo93BodD0DVEU,714 diff --git a/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/WHEEL b/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/WHEEL new file mode 100644 index 0000000..8acb955 --- /dev/null +++ b/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (79.0.1) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/entry_points.txt b/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/entry_points.txt new file mode 100644 index 0000000..bca6026 --- /dev/null +++ b/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +scooby = scooby.__main__:main diff --git a/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/licenses/LICENSE new file mode 100644 index 0000000..e5d2199 --- /dev/null +++ b/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Dieter Werthmüller & Bane Sullivan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/top_level.txt new file mode 100644 index 0000000..3b87dfa --- /dev/null +++ b/venv/lib/python3.11/site-packages/scooby-0.11.0.dist-info/top_level.txt @@ -0,0 +1 @@ +scooby diff --git a/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/METADATA b/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/METADATA new file mode 100644 index 0000000..8d42d12 --- /dev/null +++ b/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/METADATA @@ -0,0 +1,140 @@ +Metadata-Version: 2.4 +Name: setuptools +Version: 79.0.1 +Summary: Easily download, build, install, upgrade, and uninstall Python packages +Author-email: Python Packaging Authority +Project-URL: Source, https://github.com/pypa/setuptools +Project-URL: Documentation, https://setuptools.pypa.io/ +Project-URL: Changelog, https://setuptools.pypa.io/en/stable/history.html +Keywords: CPAN PyPI distutils eggs package management +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: System :: Archiving :: Packaging +Classifier: Topic :: System :: Systems Administration +Classifier: Topic :: Utilities +Requires-Python: >=3.9 +Description-Content-Type: text/x-rst +License-File: LICENSE +Provides-Extra: test +Requires-Dist: pytest!=8.1.*,>=6; extra == "test" +Requires-Dist: virtualenv>=13.0.0; extra == "test" +Requires-Dist: wheel>=0.44.0; extra == "test" +Requires-Dist: pip>=19.1; extra == "test" +Requires-Dist: packaging>=24.2; extra == "test" +Requires-Dist: jaraco.envs>=2.2; extra == "test" +Requires-Dist: pytest-xdist>=3; extra == "test" +Requires-Dist: jaraco.path>=3.7.2; extra == "test" +Requires-Dist: build[virtualenv]>=1.0.3; extra == "test" +Requires-Dist: filelock>=3.4.0; extra == "test" +Requires-Dist: ini2toml[lite]>=0.14; extra == "test" +Requires-Dist: tomli-w>=1.0.0; extra == "test" +Requires-Dist: pytest-timeout; extra == "test" +Requires-Dist: pytest-perf; sys_platform != "cygwin" and extra == "test" +Requires-Dist: jaraco.develop>=7.21; (python_version >= "3.9" and sys_platform != "cygwin") and extra == "test" +Requires-Dist: pytest-home>=0.5; extra == "test" +Requires-Dist: pytest-subprocess; extra == "test" +Requires-Dist: pyproject-hooks!=1.1; extra == "test" +Requires-Dist: jaraco.test>=5.5; extra == "test" +Provides-Extra: doc +Requires-Dist: sphinx>=3.5; extra == "doc" +Requires-Dist: jaraco.packaging>=9.3; extra == "doc" +Requires-Dist: rst.linker>=1.9; extra == "doc" +Requires-Dist: furo; extra == "doc" +Requires-Dist: sphinx-lint; extra == "doc" +Requires-Dist: jaraco.tidelift>=1.4; extra == "doc" +Requires-Dist: pygments-github-lexers==0.0.5; extra == "doc" +Requires-Dist: sphinx-favicon; extra == "doc" +Requires-Dist: sphinx-inline-tabs; extra == "doc" +Requires-Dist: sphinx-reredirects; extra == "doc" +Requires-Dist: sphinxcontrib-towncrier; extra == "doc" +Requires-Dist: sphinx-notfound-page<2,>=1; extra == "doc" +Requires-Dist: pyproject-hooks!=1.1; extra == "doc" +Requires-Dist: towncrier<24.7; extra == "doc" +Provides-Extra: ssl +Provides-Extra: certs +Provides-Extra: core +Requires-Dist: packaging>=24.2; extra == "core" +Requires-Dist: more_itertools>=8.8; extra == "core" +Requires-Dist: jaraco.text>=3.7; extra == "core" +Requires-Dist: importlib_metadata>=6; python_version < "3.10" and extra == "core" +Requires-Dist: tomli>=2.0.1; python_version < "3.11" and extra == "core" +Requires-Dist: wheel>=0.43.0; extra == "core" +Requires-Dist: platformdirs>=4.2.2; extra == "core" +Requires-Dist: jaraco.functools>=4; extra == "core" +Requires-Dist: more_itertools; extra == "core" +Provides-Extra: check +Requires-Dist: pytest-checkdocs>=2.4; extra == "check" +Requires-Dist: pytest-ruff>=0.2.1; sys_platform != "cygwin" and extra == "check" +Requires-Dist: ruff>=0.8.0; sys_platform != "cygwin" and extra == "check" +Provides-Extra: cover +Requires-Dist: pytest-cov; extra == "cover" +Provides-Extra: enabler +Requires-Dist: pytest-enabler>=2.2; extra == "enabler" +Provides-Extra: type +Requires-Dist: pytest-mypy; extra == "type" +Requires-Dist: mypy==1.14.*; extra == "type" +Requires-Dist: importlib_metadata>=7.0.2; python_version < "3.10" and extra == "type" +Requires-Dist: jaraco.develop>=7.21; sys_platform != "cygwin" and extra == "type" +Dynamic: license-file + +.. |pypi-version| image:: https://img.shields.io/pypi/v/setuptools.svg + :target: https://pypi.org/project/setuptools + +.. |py-version| image:: https://img.shields.io/pypi/pyversions/setuptools.svg + +.. |test-badge| image:: https://github.com/pypa/setuptools/actions/workflows/main.yml/badge.svg + :target: https://github.com/pypa/setuptools/actions?query=workflow%3A%22tests%22 + :alt: tests + +.. |ruff-badge| image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json + :target: https://github.com/astral-sh/ruff + :alt: Ruff + +.. |docs-badge| image:: https://img.shields.io/readthedocs/setuptools/latest.svg + :target: https://setuptools.pypa.io + +.. |skeleton-badge| image:: https://img.shields.io/badge/skeleton-2025-informational + :target: https://blog.jaraco.com/skeleton + +.. |codecov-badge| image:: https://img.shields.io/codecov/c/github/pypa/setuptools/master.svg?logo=codecov&logoColor=white + :target: https://codecov.io/gh/pypa/setuptools + +.. |tidelift-badge| image:: https://tidelift.com/badges/github/pypa/setuptools?style=flat + :target: https://tidelift.com/subscription/pkg/pypi-setuptools?utm_source=pypi-setuptools&utm_medium=readme + +.. |discord-badge| image:: https://img.shields.io/discord/803025117553754132 + :target: https://discord.com/channels/803025117553754132/815945031150993468 + :alt: Discord + +|pypi-version| |py-version| |test-badge| |ruff-badge| |docs-badge| |skeleton-badge| |codecov-badge| |discord-badge| + +See the `Quickstart `_ +and the `User's Guide `_ for +instructions on how to use Setuptools. + +Questions and comments should be directed to `GitHub Discussions +`_. +Bug reports and especially tested patches may be +submitted directly to the `bug tracker +`_. + + +Code of Conduct +=============== + +Everyone interacting in the setuptools project's codebases, issue trackers, +chat rooms, and fora is expected to follow the +`PSF Code of Conduct `_. + + +For Enterprise +============== + +Available as part of the Tidelift Subscription. + +Setuptools and the maintainers of thousands of other packages are working with Tidelift to deliver one enterprise subscription that covers all of the open source you use. + +`Learn more `_. diff --git a/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/RECORD b/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/RECORD new file mode 100644 index 0000000..dddda75 --- /dev/null +++ b/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/RECORD @@ -0,0 +1,873 @@ +_distutils_hack/__init__.py,sha256=34HmvLo07j45Uvd2VR-2aRQ7lJD91sTK6zJgn5fphbQ,6755 +_distutils_hack/__pycache__/__init__.cpython-311.pyc,, +_distutils_hack/__pycache__/override.cpython-311.pyc,, +_distutils_hack/override.py,sha256=Eu_s-NF6VIZ4Cqd0tbbA5wtWky2IZPNd8et6GLt1mzo,44 +distutils-precedence.pth,sha256=JjjOniUA5XKl4N5_rtZmHrVp0baW_LoHsN0iPaX10iQ,151 +pkg_resources/__init__.py,sha256=-rh7XOnTxdGuC-_9FAyu5D6s8BL1UsBehxUtj7a-IVo,126203 +pkg_resources/__pycache__/__init__.cpython-311.pyc,, +pkg_resources/api_tests.txt,sha256=XEdvy4igHHrq2qNHNMHnlfO6XSQKNqOyLHbl6QcpfAI,12595 +pkg_resources/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pkg_resources/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pkg_resources/tests/__pycache__/__init__.cpython-311.pyc,, +pkg_resources/tests/__pycache__/test_find_distributions.cpython-311.pyc,, +pkg_resources/tests/__pycache__/test_integration_zope_interface.cpython-311.pyc,, +pkg_resources/tests/__pycache__/test_markers.cpython-311.pyc,, +pkg_resources/tests/__pycache__/test_pkg_resources.cpython-311.pyc,, +pkg_resources/tests/__pycache__/test_resources.cpython-311.pyc,, +pkg_resources/tests/__pycache__/test_working_set.cpython-311.pyc,, +pkg_resources/tests/data/my-test-package-source/__pycache__/setup.cpython-311.pyc,, +pkg_resources/tests/data/my-test-package-source/setup.cfg,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pkg_resources/tests/data/my-test-package-source/setup.py,sha256=1VobhAZbMb7M9mfhb_NE8PwDsvukoWLs9aUAS0pYhe8,105 +pkg_resources/tests/data/my-test-package-zip/my-test-package.zip,sha256=AYRcQ39GVePPnMT8TknP1gdDHyJnXhthESmpAjnzSCI,1809 +pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/PKG-INFO,sha256=JvWv9Io2PAuYwEEw2fBW4Qc5YvdbkscpKX1kmLzsoHk,187 +pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/SOURCES.txt,sha256=4ClkH8eTovZrdVrJFsVuxdbMEF--lBVSuKonDAPE5Jc,208 +pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/dependency_links.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 +pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 +pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 +pkg_resources/tests/data/my-test-package_zipped-egg/my_test_package-1.0-py3.7.egg,sha256=ZTlMGxjRGiKDNkiA2c75jbQH2TWIteP00irF9gvczbo,843 +pkg_resources/tests/test_find_distributions.py,sha256=U91cov5L1COAIWLNq3Xy4plU7_MnOE1WtXMu6iV2waM,1972 +pkg_resources/tests/test_integration_zope_interface.py,sha256=nzVoK557KZQN0V3DIQ1sVeaCOgt4Kpl-CODAWsO7pmc,1652 +pkg_resources/tests/test_markers.py,sha256=0orKg7UMDf7fnuNQvRMOc-EF9EAP_JTQnk4mtGgbW50,241 +pkg_resources/tests/test_pkg_resources.py,sha256=5Mt4bJQhLCL8j8cC46Uv32Np2Xc1TTxLGawIfET55Fk,17111 +pkg_resources/tests/test_resources.py,sha256=K0LqMAUGpRQ9pUb9K0vyI7GesvtlQvTH074m-E2VQlo,31252 +pkg_resources/tests/test_working_set.py,sha256=lRtGJWIixSwSMSbjHgRxeJEQiLMRXcz3xzJL2qL7eXY,8602 +setuptools-79.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +setuptools-79.0.1.dist-info/METADATA,sha256=0xUsrrFIbRQ7MLHUH_-q3bfqlf3JVHrhE1zml7GkILU,6548 +setuptools-79.0.1.dist-info/RECORD,, +setuptools-79.0.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools-79.0.1.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91 +setuptools-79.0.1.dist-info/entry_points.txt,sha256=zkgthpf_Fa9NVE9p6FKT3Xk9DR1faAcRU4coggsV7jA,2449 +setuptools-79.0.1.dist-info/licenses/LICENSE,sha256=htoPAa6uRjSKPD1GUZXcHOzN55956HdppkuNoEsqR0E,1023 +setuptools-79.0.1.dist-info/top_level.txt,sha256=d9yL39v_W7qmKDDSH6sT4bE0j_Ls1M3P161OGgdsm4g,41 +setuptools/__init__.py,sha256=AQsMeRFWz9CQ9aBtcSkbB4Dn8t2w86-GPriklpoAjew,10406 +setuptools/__pycache__/__init__.cpython-311.pyc,, +setuptools/__pycache__/_core_metadata.cpython-311.pyc,, +setuptools/__pycache__/_entry_points.cpython-311.pyc,, +setuptools/__pycache__/_imp.cpython-311.pyc,, +setuptools/__pycache__/_importlib.cpython-311.pyc,, +setuptools/__pycache__/_itertools.cpython-311.pyc,, +setuptools/__pycache__/_normalization.cpython-311.pyc,, +setuptools/__pycache__/_path.cpython-311.pyc,, +setuptools/__pycache__/_reqs.cpython-311.pyc,, +setuptools/__pycache__/_shutil.cpython-311.pyc,, +setuptools/__pycache__/_static.cpython-311.pyc,, +setuptools/__pycache__/archive_util.cpython-311.pyc,, +setuptools/__pycache__/build_meta.cpython-311.pyc,, +setuptools/__pycache__/depends.cpython-311.pyc,, +setuptools/__pycache__/discovery.cpython-311.pyc,, +setuptools/__pycache__/dist.cpython-311.pyc,, +setuptools/__pycache__/errors.cpython-311.pyc,, +setuptools/__pycache__/extension.cpython-311.pyc,, +setuptools/__pycache__/glob.cpython-311.pyc,, +setuptools/__pycache__/installer.cpython-311.pyc,, +setuptools/__pycache__/launch.cpython-311.pyc,, +setuptools/__pycache__/logging.cpython-311.pyc,, +setuptools/__pycache__/modified.cpython-311.pyc,, +setuptools/__pycache__/monkey.cpython-311.pyc,, +setuptools/__pycache__/msvc.cpython-311.pyc,, +setuptools/__pycache__/namespaces.cpython-311.pyc,, +setuptools/__pycache__/package_index.cpython-311.pyc,, +setuptools/__pycache__/sandbox.cpython-311.pyc,, +setuptools/__pycache__/unicode_utils.cpython-311.pyc,, +setuptools/__pycache__/version.cpython-311.pyc,, +setuptools/__pycache__/warnings.cpython-311.pyc,, +setuptools/__pycache__/wheel.cpython-311.pyc,, +setuptools/__pycache__/windows_support.cpython-311.pyc,, +setuptools/_core_metadata.py,sha256=T7Tjp-WSoN881adev3R1wzXCPnkDHqbC2MgylN1yjS8,11978 +setuptools/_distutils/__init__.py,sha256=xGYuhWwLG07J0Q49BVnEjPy6wyDcd6veJMDJX7ljlyM,359 +setuptools/_distutils/__pycache__/__init__.cpython-311.pyc,, +setuptools/_distutils/__pycache__/_log.cpython-311.pyc,, +setuptools/_distutils/__pycache__/_macos_compat.cpython-311.pyc,, +setuptools/_distutils/__pycache__/_modified.cpython-311.pyc,, +setuptools/_distutils/__pycache__/_msvccompiler.cpython-311.pyc,, +setuptools/_distutils/__pycache__/archive_util.cpython-311.pyc,, +setuptools/_distutils/__pycache__/ccompiler.cpython-311.pyc,, +setuptools/_distutils/__pycache__/cmd.cpython-311.pyc,, +setuptools/_distutils/__pycache__/core.cpython-311.pyc,, +setuptools/_distutils/__pycache__/cygwinccompiler.cpython-311.pyc,, +setuptools/_distutils/__pycache__/debug.cpython-311.pyc,, +setuptools/_distutils/__pycache__/dep_util.cpython-311.pyc,, +setuptools/_distutils/__pycache__/dir_util.cpython-311.pyc,, +setuptools/_distutils/__pycache__/dist.cpython-311.pyc,, +setuptools/_distutils/__pycache__/errors.cpython-311.pyc,, +setuptools/_distutils/__pycache__/extension.cpython-311.pyc,, +setuptools/_distutils/__pycache__/fancy_getopt.cpython-311.pyc,, +setuptools/_distutils/__pycache__/file_util.cpython-311.pyc,, +setuptools/_distutils/__pycache__/filelist.cpython-311.pyc,, +setuptools/_distutils/__pycache__/log.cpython-311.pyc,, +setuptools/_distutils/__pycache__/spawn.cpython-311.pyc,, +setuptools/_distutils/__pycache__/sysconfig.cpython-311.pyc,, +setuptools/_distutils/__pycache__/text_file.cpython-311.pyc,, +setuptools/_distutils/__pycache__/unixccompiler.cpython-311.pyc,, +setuptools/_distutils/__pycache__/util.cpython-311.pyc,, +setuptools/_distutils/__pycache__/version.cpython-311.pyc,, +setuptools/_distutils/__pycache__/versionpredicate.cpython-311.pyc,, +setuptools/_distutils/__pycache__/zosccompiler.cpython-311.pyc,, +setuptools/_distutils/_log.py,sha256=i-lNTTcXS8TmWITJ6DODGvtW5z5tMattJQ76h8rZxQU,42 +setuptools/_distutils/_macos_compat.py,sha256=JzUGhF4E5yIITHbUaPobZEWjGHdrrcNV63z86S4RjBc,239 +setuptools/_distutils/_modified.py,sha256=RF1n1CexyDYV3lvGbeXS0s-XCJVboDOIUbA8wEQqYTY,3211 +setuptools/_distutils/_msvccompiler.py,sha256=9PSfSHxvJnHnQL6Sqz4Xcz7iaBIT62p6BheQzGsSlwo,335 +setuptools/_distutils/archive_util.py,sha256=Qw2z-Pt-NV8lNUQrzjs3XDGWCWHMPnqHLyt8TiD2XEA,8884 +setuptools/_distutils/ccompiler.py,sha256=FKVjqzGJ7c-FtouNjhLiaMPm5LKMZHHAruXf8LU216c,524 +setuptools/_distutils/cmd.py,sha256=hXtaRaH7QBnfNOIqEvCt47iwZzD9MVvBdhhdQctHsxM,22186 +setuptools/_distutils/command/__init__.py,sha256=GfFAzbBqk1qxSH4BdaKioKS4hRRnD44BAmwEN85C4u8,386 +setuptools/_distutils/command/__pycache__/__init__.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/_framework_compat.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/bdist.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/bdist_dumb.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/bdist_rpm.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/build.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/build_clib.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/build_ext.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/build_py.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/build_scripts.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/check.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/clean.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/config.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/install.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/install_data.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/install_egg_info.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/install_headers.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/install_lib.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/install_scripts.cpython-311.pyc,, +setuptools/_distutils/command/__pycache__/sdist.cpython-311.pyc,, +setuptools/_distutils/command/_framework_compat.py,sha256=0iZdSJYzGRWCCvzRDKE-R0-_yaAYvFMd1ylXb2eYXug,1609 +setuptools/_distutils/command/bdist.py,sha256=jWtk61R7fWNUUNxJV0thTZzU5n80L3Ay1waSiP9kiLA,5854 +setuptools/_distutils/command/bdist_dumb.py,sha256=Hx1jAqoZNxYIy4N5TLzUp6J5fi8Ls18py7UlLNFhO2E,4631 +setuptools/_distutils/command/bdist_rpm.py,sha256=nxcXXv5a7B-1ntWu4DbGmCtES4EBINrJaBQcRNAYCJI,21785 +setuptools/_distutils/command/build.py,sha256=SpHlagf0iNaKVyIhxDfhPFZ8X1-LAWOCQACy-yt2K0w,5923 +setuptools/_distutils/command/build_clib.py,sha256=aMqZcUfCbOAu_xr-A9iW-Q9YZHzpDGLRTezOgMQJmSQ,7777 +setuptools/_distutils/command/build_ext.py,sha256=zrrsu9HXnzV6bXYbJuZCK4SwVZMjKnl4pG1o3bNcxtc,32710 +setuptools/_distutils/command/build_py.py,sha256=Vfq-INemoMbg6f003BTy_Ufp8bjOZhmFIhpKMcfXLgs,16696 +setuptools/_distutils/command/build_scripts.py,sha256=tUpEzwTsnrP8qrNory3ldPB240QDCFkMp-pdYPs2wTk,5118 +setuptools/_distutils/command/check.py,sha256=yoNe2MPY4JcTM7rwoIQdfZ75q5Ri058I2coi-Gq9CjM,4946 +setuptools/_distutils/command/clean.py,sha256=dQAacOabwBXU9JoZ-1GFusq3eFltDaeXJFSYncqGbvE,2644 +setuptools/_distutils/command/config.py,sha256=qrrfz6NEQORmbqiY2XlvCDWYhsbLyxZXJsURKfYN_kw,12724 +setuptools/_distutils/command/install.py,sha256=-JenB-mua4hc2RI_-W8F9PnP_J-OaFO7E0PJGKxLo1o,30072 +setuptools/_distutils/command/install_data.py,sha256=GzBlUWWKubTYJlP-L0auUriq9cL-5RKOcoyHTttKj0Q,2875 +setuptools/_distutils/command/install_egg_info.py,sha256=ffiLoU1ivQJ8q2_WL7ZygZbUcOsgdFLKL7otEIJWWkI,2868 +setuptools/_distutils/command/install_headers.py,sha256=5ciKCj8c3XKsYNKdkdMvnypaUCKcoWCDeeZij3fD-Z4,1272 +setuptools/_distutils/command/install_lib.py,sha256=2s9-m5-b1qKm51F28lB5L39Z6vv_GHMlv9dNBSupok0,8588 +setuptools/_distutils/command/install_scripts.py,sha256=M0pPdiaqB7TGmqTMujpGGeiL0Iq_CTeGjMFtrmDmwzM,2002 +setuptools/_distutils/command/sdist.py,sha256=cRIF6Ht1hJ6ayOOFVycMFBUNxjo94e_rFYPx4Hi8Ahc,19151 +setuptools/_distutils/compat/__init__.py,sha256=J20aXGjJ86Rg41xFLIWlcWCgZ9edMdJ9vvdNEQ87vPQ,522 +setuptools/_distutils/compat/__pycache__/__init__.cpython-311.pyc,, +setuptools/_distutils/compat/__pycache__/numpy.cpython-311.pyc,, +setuptools/_distutils/compat/__pycache__/py39.cpython-311.pyc,, +setuptools/_distutils/compat/numpy.py,sha256=UFgneZw9w97g4c-yGoAIOyLxUOWQ-fPRIhhfMs7_Ouc,167 +setuptools/_distutils/compat/py39.py,sha256=hOsD6lwZLqZoMnacNJ3P6nUA-LJQhEpVtYTzVH0o96M,1964 +setuptools/_distutils/compilers/C/__pycache__/base.cpython-311.pyc,, +setuptools/_distutils/compilers/C/__pycache__/cygwin.cpython-311.pyc,, +setuptools/_distutils/compilers/C/__pycache__/errors.cpython-311.pyc,, +setuptools/_distutils/compilers/C/__pycache__/msvc.cpython-311.pyc,, +setuptools/_distutils/compilers/C/__pycache__/unix.cpython-311.pyc,, +setuptools/_distutils/compilers/C/__pycache__/zos.cpython-311.pyc,, +setuptools/_distutils/compilers/C/base.py,sha256=XR1rBCStCquqm7QOYXD41-LfvsFcPpGxrwxeXzJyn_w,54876 +setuptools/_distutils/compilers/C/cygwin.py,sha256=DUlwQSb55aj7OdcmcddrmCmVEjEaxIiJ5hHUO3GBPNs,11844 +setuptools/_distutils/compilers/C/errors.py,sha256=sKOVzJajMUmNdfywo9UM_QQGsKFcclDhtI5TlCiXMLc,573 +setuptools/_distutils/compilers/C/msvc.py,sha256=elzG8v9jN5QytLMwLCdUdSuZ3eZ3R98VUvnm9Y2PBCA,21404 +setuptools/_distutils/compilers/C/tests/__pycache__/test_base.cpython-311.pyc,, +setuptools/_distutils/compilers/C/tests/__pycache__/test_cygwin.cpython-311.pyc,, +setuptools/_distutils/compilers/C/tests/__pycache__/test_mingw.cpython-311.pyc,, +setuptools/_distutils/compilers/C/tests/__pycache__/test_msvc.cpython-311.pyc,, +setuptools/_distutils/compilers/C/tests/__pycache__/test_unix.cpython-311.pyc,, +setuptools/_distutils/compilers/C/tests/test_base.py,sha256=rdhHc56bhXtm5NnN9BSHwr6c69UqzMItZQzlw2AsdMc,2706 +setuptools/_distutils/compilers/C/tests/test_cygwin.py,sha256=UgV2VgUXj3VulcbDc0UBWfEyJDx42tgSwS4LzHix3mY,2701 +setuptools/_distutils/compilers/C/tests/test_mingw.py,sha256=hCmwyywISpRoyOySbFHBL4TprWRV0mUWDKmOLO8XBXE,1900 +setuptools/_distutils/compilers/C/tests/test_msvc.py,sha256=DlGjmZ1mBSMXIgmlu80BKc7V-EJOZuYucwJwFh5dn28,4151 +setuptools/_distutils/compilers/C/tests/test_unix.py,sha256=AyadWw1fR-UeDl2TvIbYBzOJVHkpE_oRRQ3JTJWqaEA,14642 +setuptools/_distutils/compilers/C/unix.py,sha256=YH-y9g_pjBFjaJyHJQkDEBQ7q4D20I2-cWJNdgw-Yho,16531 +setuptools/_distutils/compilers/C/zos.py,sha256=vnNeWLRZkdIkdZ-YyBnL8idTUfcCOn0tLMW5OBJ0ScU,6586 +setuptools/_distutils/core.py,sha256=GEHKaFC48T3o-_SmH4864GvKyx1IgbVC6ISIPVlx7a4,9364 +setuptools/_distutils/cygwinccompiler.py,sha256=mG_cU8SVZ4amD_VtF5vH6BXP0-kghGsDPbDSXrQ963c,594 +setuptools/_distutils/debug.py,sha256=N6MrTAqK6l9SVk6tWweR108PM8Ol7qNlfyV-nHcLhsY,139 +setuptools/_distutils/dep_util.py,sha256=xN75p6ZpHhMiHEc-rpL2XilJQynHnDNiafHteaZ4tjU,349 +setuptools/_distutils/dir_util.py,sha256=DXPUlfVVGsg9B-Jgg4At_j9T7vM60OgwNXkQHqTo7-I,7236 +setuptools/_distutils/dist.py,sha256=gW598UE0WMkzXQQ31Nr-8L7MPw0oIOz5OSSRzYZlwrM,55794 +setuptools/_distutils/errors.py,sha256=PPE2oDRh5y9Q1beKK9rhdvDaCzQhi4HCXs4KcqfqgZY,3092 +setuptools/_distutils/extension.py,sha256=Foyu4gULcPqm1_U9zrYYHxNk4NqglXv1rbsOk_QrSds,11155 +setuptools/_distutils/fancy_getopt.py,sha256=PjdO-bWCW0imV_UN-MGEw9R2GP2OiE8pHjITgmTAY3Q,17895 +setuptools/_distutils/file_util.py,sha256=YFQL_pD3hLuER9II_H6-hDC_YIGEookdd4wedLuiTW0,7978 +setuptools/_distutils/filelist.py,sha256=MBeSRJmPcKmDv8ooZgSU4BiQPZ0Khwv8l_jhD50XycI,15337 +setuptools/_distutils/log.py,sha256=VyBs5j7z4-K6XTEEBThUc9HyMpoPLGtQpERqbz5ylww,1200 +setuptools/_distutils/spawn.py,sha256=zseCh9sEifyp0I5Vg719JNIASlROJ2ehXqQnHlpt89Q,4086 +setuptools/_distutils/sysconfig.py,sha256=KeI8OHbMuEzHJ8Q0cBez9KZny8iRy6Z6Y0AkMz1jlsU,19728 +setuptools/_distutils/tests/__init__.py,sha256=j-IoPZEtQv3EOPuqNTwalr6GLyRjzCC-OOaNvZzmHsI,1485 +setuptools/_distutils/tests/__pycache__/__init__.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/support.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_archive_util.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_bdist.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_bdist_dumb.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_bdist_rpm.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_build.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_build_clib.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_build_ext.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_build_py.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_build_scripts.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_check.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_clean.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_cmd.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_config_cmd.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_core.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_dir_util.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_dist.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_extension.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_file_util.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_filelist.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_install.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_install_data.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_install_headers.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_install_lib.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_install_scripts.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_log.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_modified.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_sdist.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_spawn.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_sysconfig.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_text_file.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_util.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_version.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/test_versionpredicate.cpython-311.pyc,, +setuptools/_distutils/tests/__pycache__/unix_compat.cpython-311.pyc,, +setuptools/_distutils/tests/compat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_distutils/tests/compat/__pycache__/__init__.cpython-311.pyc,, +setuptools/_distutils/tests/compat/__pycache__/py39.cpython-311.pyc,, +setuptools/_distutils/tests/compat/py39.py,sha256=t0GBTM-30jX-9zCfkwlNBFtzzabemx6065mJ0d9_VRw,1026 +setuptools/_distutils/tests/support.py,sha256=tjsYsyxvpTK4NrkCseh2ujvDIGV0Mf_b5SI5fP2T0yM,4099 +setuptools/_distutils/tests/test_archive_util.py,sha256=jozimSwPBF-JoJfN_vDaiVGZp66BNcWZGh34FlW57DQ,11787 +setuptools/_distutils/tests/test_bdist.py,sha256=xNHxUsLlHsZQRwkzLb_iSD24s-9Mk-NX2ffBWwOyPyc,1396 +setuptools/_distutils/tests/test_bdist_dumb.py,sha256=QF05MHNhPOdZyh88Xpw8KsO64s7pRFkl8KL-RoV4XK0,2247 +setuptools/_distutils/tests/test_bdist_rpm.py,sha256=Hdm-pwWgyaoGdGbEcGZa8cRhGU45y8gHK8umOanTjik,3932 +setuptools/_distutils/tests/test_build.py,sha256=JJY5XpOZco25ZY0pstxl-iI8mHsWP0ujf5o8aOtuZYY,1742 +setuptools/_distutils/tests/test_build_clib.py,sha256=Mo1ZFb4C1VXBYOGvnallwN7YCnTtr24akLDO8Zi4CsY,4331 +setuptools/_distutils/tests/test_build_ext.py,sha256=QFO9qYVhWWdJu17HXc4x9RMnLZlhk0lAHi9HVppbuX4,22545 +setuptools/_distutils/tests/test_build_py.py,sha256=NsfmRrojOHBXNMqWR_mp5g4PLTgjhD7iZFUffGZFIdw,6882 +setuptools/_distutils/tests/test_build_scripts.py,sha256=cD-FRy-oX55sXRX5Ez5xQCaeHrWajyKc4Xuwv2fe48w,2880 +setuptools/_distutils/tests/test_check.py,sha256=hHSV07qf7YoSxGsTbbsUQ9tssZz5RRNdbrY1s2SwaFI,6226 +setuptools/_distutils/tests/test_clean.py,sha256=hPH6jfIpGFUrvWbF1txkiNVSNaAxt2wq5XjV499zO4E,1240 +setuptools/_distutils/tests/test_cmd.py,sha256=bgRB79mitoOKR1OiyZHnCogvGxt3pWkxeTqIC04lQWQ,3254 +setuptools/_distutils/tests/test_config_cmd.py,sha256=Zs6WX0IfxDvmuC19XzuVNnYCnTr9Y-hl73TAmDSBN4Y,2664 +setuptools/_distutils/tests/test_core.py,sha256=L7XKVAxa-MGoAZeANopnuK9fRKneYhkSQpgw8XQvcF8,3829 +setuptools/_distutils/tests/test_dir_util.py,sha256=E84lC-k4riVUwURyWaQ0Jqx2ui2-io-0RuJa3M7qkJs,4500 +setuptools/_distutils/tests/test_dist.py,sha256=a6wlc5fQJd5qQ6HOndzcupNhjTxvj6-_JLtpuYvaP1M,18793 +setuptools/_distutils/tests/test_extension.py,sha256=-YejLgZCuycFrOBd64pVH0JvwMc9NwhzHvQxvvjXHqk,3670 +setuptools/_distutils/tests/test_file_util.py,sha256=livjnl3FkilQlrB2rFdFQq9nvjEVZHynNya0bfzv_b4,3522 +setuptools/_distutils/tests/test_filelist.py,sha256=rJwkqCUfkGDgWlD22TozsT8ycbupMHB8DXqThzwT1T4,10766 +setuptools/_distutils/tests/test_install.py,sha256=TfCB0ykhIxydIC2Q4SuTAZzSHvteMHgrBL9whoSgK9Q,8618 +setuptools/_distutils/tests/test_install_data.py,sha256=vKq3K97k0hBAnOg38nmwEdf7cEDVr9rTVyCeJolgb4A,2464 +setuptools/_distutils/tests/test_install_headers.py,sha256=PVAYpo_tYl980Qf64DPOmmSvyefIHdU06f7VsJeZykE,936 +setuptools/_distutils/tests/test_install_lib.py,sha256=qri6Rl-maNTQrNDV8DbeXNl0hjsfRIKiI4rfZLrmWBI,3612 +setuptools/_distutils/tests/test_install_scripts.py,sha256=KE3v0cDkFW-90IOID-OmZZGM2mhy-ZkEuuW7UXS2SHw,1600 +setuptools/_distutils/tests/test_log.py,sha256=isFtOufloCyEdZaQOV7cVUr46GwtdVMj43mGBB5XH7k,323 +setuptools/_distutils/tests/test_modified.py,sha256=h1--bOWmtJo1bpVV6uRhdnS9br71CBiNDM1MDwSGpug,4221 +setuptools/_distutils/tests/test_sdist.py,sha256=cfzUhlCA418-1vH9ta3IBs26c_jUBbkJoFOK5GnAyNk,15062 +setuptools/_distutils/tests/test_spawn.py,sha256=eS8w9D7bTxyFLSyRahJWeuh8Kc1F8RWWiY_dSG5B5Bc,4803 +setuptools/_distutils/tests/test_sysconfig.py,sha256=lxM8LsUi1TomjDV4HoYK8u5nUoBkeNL60Uq8PY1DcwU,11986 +setuptools/_distutils/tests/test_text_file.py,sha256=WQWSB5AfdBDZaMA8BFgipJPnsJb_2SKMfL90fSkRVtw,3460 +setuptools/_distutils/tests/test_util.py,sha256=H9zlZ4z4Vh4TfjNYDBsxP7wguQLpxCfJYyOcm1yZU3c,7988 +setuptools/_distutils/tests/test_version.py,sha256=ahfg_mP8wRy1sgwY-_Px5hrjgf6_upTIpnCgpR4yWRk,2750 +setuptools/_distutils/tests/test_versionpredicate.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_distutils/tests/unix_compat.py,sha256=z-op6C2iVdX1aq5BIBR7cqOxijKE97alNwJqHNdLpoI,386 +setuptools/_distutils/text_file.py,sha256=z4dkOJBr9Bo2LG0TNqm8sD63LEEaKSSP0J0bWBrFG3c,12101 +setuptools/_distutils/unixccompiler.py,sha256=1bXJWH4fiu_A2WfriHzf88xjllQTXnnjUkZdRKs9cWU,212 +setuptools/_distutils/util.py,sha256=Njfnqk60zMdkiAjRnGcTWX3t49-obHapOlbNvyIl02I,18094 +setuptools/_distutils/version.py,sha256=vImT5-ECXkQ21oKL0XYFiTqK6NyM09cpzBNoA_34CQU,12619 +setuptools/_distutils/versionpredicate.py,sha256=qBWQ6wTj12ODytoTmIydefIY2jb4uY1sdbgbuLn-IJM,5205 +setuptools/_distutils/zosccompiler.py,sha256=svdiXZ2kdcwKrJKfhUhib03y8gz7aGZKukXH3I7YkBc,58 +setuptools/_entry_points.py,sha256=Y3QUE9JKFW_YyquDnpffNWSs6f3jKEt1e-dnx--9-Kw,2310 +setuptools/_imp.py,sha256=YY1EjZEN-0zYci1cxO10B_adAEOr7i8eK8JoCc9Ierc,2435 +setuptools/_importlib.py,sha256=aKIjcK0HKXNz2D-XTrxaixGn_juTkONwmu3dcheMOF0,223 +setuptools/_itertools.py,sha256=jWRfsIrpC7myooz3hDURj9GtvpswZeKXg2HakmEhNjo,657 +setuptools/_normalization.py,sha256=kAmGfrwjF5djydEfLLyKgjkXCbL_0_ZxUPO-DlLlmIY,5824 +setuptools/_path.py,sha256=cPv41v03HD7uEYqCIo-E_cGRfpPVr4lywBCiK-HSrCg,2685 +setuptools/_reqs.py,sha256=QI3C9uOBSNRccu208qPnixHx51nxCry7_nPTIJaSYxM,1438 +setuptools/_shutil.py,sha256=cAOllcoyMTXs5JLoybQi29yI5gABk82hepJyOBv2bMw,1496 +setuptools/_static.py,sha256=GTR79gESF1_JaK4trLkpDrEuCeEtPlwQW0MRv7VNQX4,4855 +setuptools/_vendor/__pycache__/typing_extensions.cpython-311.pyc,, +setuptools/_vendor/autocommand-2.2.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +setuptools/_vendor/autocommand-2.2.2.dist-info/LICENSE,sha256=reeNBJgtaZctREqOFKlPh6IzTdOFXMgDSOqOJAqg3y0,7634 +setuptools/_vendor/autocommand-2.2.2.dist-info/METADATA,sha256=OADZuR3O6iBlpu1ieTgzYul6w4uOVrk0P0BO5TGGAJk,15006 +setuptools/_vendor/autocommand-2.2.2.dist-info/RECORD,sha256=giu6ZrQVJvpUcYa4AiH4XaUNZSvuVJPb_l0UCFES8MM,1308 +setuptools/_vendor/autocommand-2.2.2.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92 +setuptools/_vendor/autocommand-2.2.2.dist-info/top_level.txt,sha256=AzfhgKKS8EdAwWUTSF8mgeVQbXOY9kokHB6kSqwwqu0,12 +setuptools/_vendor/autocommand/__init__.py,sha256=zko5Rnvolvb-UXjCx_2ArPTGBWwUK5QY4LIQIKYR7As,1037 +setuptools/_vendor/autocommand/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/autocommand/__pycache__/autoasync.cpython-311.pyc,, +setuptools/_vendor/autocommand/__pycache__/autocommand.cpython-311.pyc,, +setuptools/_vendor/autocommand/__pycache__/automain.cpython-311.pyc,, +setuptools/_vendor/autocommand/__pycache__/autoparse.cpython-311.pyc,, +setuptools/_vendor/autocommand/__pycache__/errors.cpython-311.pyc,, +setuptools/_vendor/autocommand/autoasync.py,sha256=AMdyrxNS4pqWJfP_xuoOcImOHWD-qT7x06wmKN1Vp-U,5680 +setuptools/_vendor/autocommand/autocommand.py,sha256=hmkEmQ72HtL55gnURVjDOnsfYlGd5lLXbvT4KG496Qw,2505 +setuptools/_vendor/autocommand/automain.py,sha256=A2b8i754Mxc_DjU9WFr6vqYDWlhz0cn8miu8d8EsxV8,2076 +setuptools/_vendor/autocommand/autoparse.py,sha256=WVWmZJPcbzUKXP40raQw_0HD8qPJ2V9VG1eFFmmnFxw,11642 +setuptools/_vendor/autocommand/errors.py,sha256=7aa3roh9Herd6nIKpQHNWEslWE8oq7GiHYVUuRqORnA,886 +setuptools/_vendor/backports.tarfile-1.2.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +setuptools/_vendor/backports.tarfile-1.2.0.dist-info/LICENSE,sha256=htoPAa6uRjSKPD1GUZXcHOzN55956HdppkuNoEsqR0E,1023 +setuptools/_vendor/backports.tarfile-1.2.0.dist-info/METADATA,sha256=ghXFTq132dxaEIolxr3HK1mZqm9iyUmaRANZQSr6WlE,2020 +setuptools/_vendor/backports.tarfile-1.2.0.dist-info/RECORD,sha256=JYofHISeEXUGmlWl1s41ev3QTjTNXeJwk-Ss7HqdLOE,1360 +setuptools/_vendor/backports.tarfile-1.2.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/backports.tarfile-1.2.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92 +setuptools/_vendor/backports.tarfile-1.2.0.dist-info/top_level.txt,sha256=cGjaLMOoBR1FK0ApojtzWVmViTtJ7JGIK_HwXiEsvtU,10 +setuptools/_vendor/backports/__init__.py,sha256=iOEMwnlORWezdO8-2vxBIPSR37D7JGjluZ8f55vzxls,81 +setuptools/_vendor/backports/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/backports/tarfile/__init__.py,sha256=Pwf2qUIfB0SolJPCKcx3vz3UEu_aids4g4sAfxy94qg,108491 +setuptools/_vendor/backports/tarfile/__main__.py,sha256=Yw2oGT1afrz2eBskzdPYL8ReB_3liApmhFkN2EbDmc4,59 +setuptools/_vendor/backports/tarfile/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/backports/tarfile/__pycache__/__main__.cpython-311.pyc,, +setuptools/_vendor/backports/tarfile/compat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/backports/tarfile/compat/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/backports/tarfile/compat/__pycache__/py38.cpython-311.pyc,, +setuptools/_vendor/backports/tarfile/compat/py38.py,sha256=iYkyt_gvWjLzGUTJD9TuTfMMjOk-ersXZmRlvQYN2qE,568 +setuptools/_vendor/importlib_metadata-8.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +setuptools/_vendor/importlib_metadata-8.0.0.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358 +setuptools/_vendor/importlib_metadata-8.0.0.dist-info/METADATA,sha256=anuQ7_7h4J1bSEzfcjIBakPi2cyVQ7y7jklLHsBeH1k,4648 +setuptools/_vendor/importlib_metadata-8.0.0.dist-info/RECORD,sha256=DY08buueu-hsrH1ghhVSQzwynanqUSSLYdAr4uXmQDA,2518 +setuptools/_vendor/importlib_metadata-8.0.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/importlib_metadata-8.0.0.dist-info/WHEEL,sha256=mguMlWGMX-VHnMpKOjjQidIo1ssRlCFu4a4mBpz1s2M,91 +setuptools/_vendor/importlib_metadata-8.0.0.dist-info/top_level.txt,sha256=CO3fD9yylANiXkrMo4qHLV_mqXL2sC5JFKgt1yWAT-A,19 +setuptools/_vendor/importlib_metadata/__init__.py,sha256=tZNB-23h8Bixi9uCrQqj9Yf0aeC--Josdy3IZRIQeB0,33798 +setuptools/_vendor/importlib_metadata/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/importlib_metadata/__pycache__/_adapters.cpython-311.pyc,, +setuptools/_vendor/importlib_metadata/__pycache__/_collections.cpython-311.pyc,, +setuptools/_vendor/importlib_metadata/__pycache__/_compat.cpython-311.pyc,, +setuptools/_vendor/importlib_metadata/__pycache__/_functools.cpython-311.pyc,, +setuptools/_vendor/importlib_metadata/__pycache__/_itertools.cpython-311.pyc,, +setuptools/_vendor/importlib_metadata/__pycache__/_meta.cpython-311.pyc,, +setuptools/_vendor/importlib_metadata/__pycache__/_text.cpython-311.pyc,, +setuptools/_vendor/importlib_metadata/__pycache__/diagnose.cpython-311.pyc,, +setuptools/_vendor/importlib_metadata/_adapters.py,sha256=rIhWTwBvYA1bV7i-5FfVX38qEXDTXFeS5cb5xJtP3ks,2317 +setuptools/_vendor/importlib_metadata/_collections.py,sha256=CJ0OTCHIjWA0ZIVS4voORAsn2R4R2cQBEtPsZEJpASY,743 +setuptools/_vendor/importlib_metadata/_compat.py,sha256=73QKrN9KNoaZzhbX5yPCCZa-FaALwXe8TPlDR72JgBU,1314 +setuptools/_vendor/importlib_metadata/_functools.py,sha256=PsY2-4rrKX4RVeRC1oGp1lB1pmC9eKN88_f-bD9uOoA,2895 +setuptools/_vendor/importlib_metadata/_itertools.py,sha256=cvr_2v8BRbxcIl5x5ldfqdHjhI8Yi8s8yk50G_nm6jQ,2068 +setuptools/_vendor/importlib_metadata/_meta.py,sha256=nxZ7C8GVlcBFAKWyVOn_dn7ot_twBcbm1NmvjIetBHI,1801 +setuptools/_vendor/importlib_metadata/_text.py,sha256=HCsFksZpJLeTP3NEk_ngrAeXVRRtTrtyh9eOABoRP4A,2166 +setuptools/_vendor/importlib_metadata/compat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/importlib_metadata/compat/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/importlib_metadata/compat/__pycache__/py311.cpython-311.pyc,, +setuptools/_vendor/importlib_metadata/compat/__pycache__/py39.cpython-311.pyc,, +setuptools/_vendor/importlib_metadata/compat/py311.py,sha256=uqm-K-uohyj1042TH4a9Er_I5o7667DvulcD-gC_fSA,608 +setuptools/_vendor/importlib_metadata/compat/py39.py,sha256=cPkMv6-0ilK-0Jw_Tkn0xYbOKJZc4WJKQHow0c2T44w,1102 +setuptools/_vendor/importlib_metadata/diagnose.py,sha256=nkSRMiowlmkhLYhKhvCg9glmt_11Cox-EmLzEbqYTa8,379 +setuptools/_vendor/importlib_metadata/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/inflect-7.3.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +setuptools/_vendor/inflect-7.3.1.dist-info/LICENSE,sha256=htoPAa6uRjSKPD1GUZXcHOzN55956HdppkuNoEsqR0E,1023 +setuptools/_vendor/inflect-7.3.1.dist-info/METADATA,sha256=ZgMNY0WAZRs-U8wZiV2SMfjSKqBrMngXyDMs_CAwMwg,21079 +setuptools/_vendor/inflect-7.3.1.dist-info/RECORD,sha256=XXg0rBuiYSxoAQUP3lenuYsPNqz4jDwtTzdv2JEbMJE,943 +setuptools/_vendor/inflect-7.3.1.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91 +setuptools/_vendor/inflect-7.3.1.dist-info/top_level.txt,sha256=m52ujdp10CqT6jh1XQxZT6kEntcnv-7Tl7UiGNTzWZA,8 +setuptools/_vendor/inflect/__init__.py,sha256=Jxy1HJXZiZ85kHeLAhkmvz6EMTdFqBe-duvt34R6IOc,103796 +setuptools/_vendor/inflect/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/inflect/compat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/inflect/compat/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/inflect/compat/__pycache__/py38.cpython-311.pyc,, +setuptools/_vendor/inflect/compat/py38.py,sha256=oObVfVnWX9_OpnOuEJn1mFbJxVhwyR5epbiTNXDDaso,160 +setuptools/_vendor/inflect/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/jaraco.collections-5.1.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +setuptools/_vendor/jaraco.collections-5.1.0.dist-info/LICENSE,sha256=htoPAa6uRjSKPD1GUZXcHOzN55956HdppkuNoEsqR0E,1023 +setuptools/_vendor/jaraco.collections-5.1.0.dist-info/METADATA,sha256=IMUaliNsA5X1Ox9MXUWOagch5R4Wwb_3M7erp29dBtg,3933 +setuptools/_vendor/jaraco.collections-5.1.0.dist-info/RECORD,sha256=HptivXDkpfom6VlMu4CGD_7KPev-6Hc9rvp3TNJZygY,873 +setuptools/_vendor/jaraco.collections-5.1.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/jaraco.collections-5.1.0.dist-info/WHEEL,sha256=Mdi9PDNwEZptOjTlUcAth7XJDFtKrHYaQMPulZeBCiQ,91 +setuptools/_vendor/jaraco.collections-5.1.0.dist-info/top_level.txt,sha256=0JnN3LfXH4LIRfXL-QFOGCJzQWZO3ELx4R1d_louoQM,7 +setuptools/_vendor/jaraco.context-5.3.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +setuptools/_vendor/jaraco.context-5.3.0.dist-info/LICENSE,sha256=htoPAa6uRjSKPD1GUZXcHOzN55956HdppkuNoEsqR0E,1023 +setuptools/_vendor/jaraco.context-5.3.0.dist-info/METADATA,sha256=xDtguJej0tN9iEXCUvxEJh2a7xceIRVBEakBLSr__tY,4020 +setuptools/_vendor/jaraco.context-5.3.0.dist-info/RECORD,sha256=VRl7iKeEQyl7stgnp1uq50CzOJYlHYcoNdS0x17C9X4,641 +setuptools/_vendor/jaraco.context-5.3.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92 +setuptools/_vendor/jaraco.context-5.3.0.dist-info/top_level.txt,sha256=0JnN3LfXH4LIRfXL-QFOGCJzQWZO3ELx4R1d_louoQM,7 +setuptools/_vendor/jaraco.functools-4.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +setuptools/_vendor/jaraco.functools-4.0.1.dist-info/LICENSE,sha256=htoPAa6uRjSKPD1GUZXcHOzN55956HdppkuNoEsqR0E,1023 +setuptools/_vendor/jaraco.functools-4.0.1.dist-info/METADATA,sha256=i4aUaQDX-jjdEQK5wevhegyx8JyLfin2HyvaSk3FHso,2891 +setuptools/_vendor/jaraco.functools-4.0.1.dist-info/RECORD,sha256=YyqnwE98S8wBwCevW5vHb-iVj0oYEDW5V6O9MBS6JIs,843 +setuptools/_vendor/jaraco.functools-4.0.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92 +setuptools/_vendor/jaraco.functools-4.0.1.dist-info/top_level.txt,sha256=0JnN3LfXH4LIRfXL-QFOGCJzQWZO3ELx4R1d_louoQM,7 +setuptools/_vendor/jaraco.text-3.12.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +setuptools/_vendor/jaraco.text-3.12.1.dist-info/LICENSE,sha256=htoPAa6uRjSKPD1GUZXcHOzN55956HdppkuNoEsqR0E,1023 +setuptools/_vendor/jaraco.text-3.12.1.dist-info/METADATA,sha256=AzWdm6ViMfDOPoQMfLWn2zgBQSGJScyqeN29TcuWXVI,3658 +setuptools/_vendor/jaraco.text-3.12.1.dist-info/RECORD,sha256=gW2UV0HcokYJk4jKPu10_AZnrLqjb3C1WbJJTDl5sfY,1500 +setuptools/_vendor/jaraco.text-3.12.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/jaraco.text-3.12.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92 +setuptools/_vendor/jaraco.text-3.12.1.dist-info/top_level.txt,sha256=0JnN3LfXH4LIRfXL-QFOGCJzQWZO3ELx4R1d_louoQM,7 +setuptools/_vendor/jaraco/__pycache__/context.cpython-311.pyc,, +setuptools/_vendor/jaraco/collections/__init__.py,sha256=Pc1-SqjWm81ad1P0-GttpkwO_LWlnaY6gUq8gcKh2v0,26640 +setuptools/_vendor/jaraco/collections/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/jaraco/collections/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/jaraco/context.py,sha256=REoLIxDkO5MfEYowt_WoupNCRoxBS5v7YX2PbW8lIcs,9552 +setuptools/_vendor/jaraco/functools/__init__.py,sha256=hEAJaS2uSZRuF_JY4CxCHIYh79ZpxaPp9OiHyr9EJ1w,16642 +setuptools/_vendor/jaraco/functools/__init__.pyi,sha256=gk3dsgHzo5F_U74HzAvpNivFAPCkPJ1b2-yCd62dfnw,3878 +setuptools/_vendor/jaraco/functools/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/jaraco/functools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/jaraco/text/Lorem ipsum.txt,sha256=N_7c_79zxOufBY9HZ3yzMgOkNv-TkOTTio4BydrSjgs,1335 +setuptools/_vendor/jaraco/text/__init__.py,sha256=Y2YUqXR_orUoDaY4SkPRe6ZZhb5HUHB_Ah9RCNsVyho,16250 +setuptools/_vendor/jaraco/text/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/jaraco/text/__pycache__/layouts.cpython-311.pyc,, +setuptools/_vendor/jaraco/text/__pycache__/show-newlines.cpython-311.pyc,, +setuptools/_vendor/jaraco/text/__pycache__/strip-prefix.cpython-311.pyc,, +setuptools/_vendor/jaraco/text/__pycache__/to-dvorak.cpython-311.pyc,, +setuptools/_vendor/jaraco/text/__pycache__/to-qwerty.cpython-311.pyc,, +setuptools/_vendor/jaraco/text/layouts.py,sha256=HTC8aSTLZ7uXipyOXapRMC158juecjK6RVwitfmZ9_w,643 +setuptools/_vendor/jaraco/text/show-newlines.py,sha256=WGQa65e8lyhb92LUOLqVn6KaCtoeVgVws6WtSRmLk6w,904 +setuptools/_vendor/jaraco/text/strip-prefix.py,sha256=NfVXV8JVNo6nqcuYASfMV7_y4Eo8zMQqlCOGvAnRIVw,412 +setuptools/_vendor/jaraco/text/to-dvorak.py,sha256=1SNcbSsvISpXXg-LnybIHHY-RUFOQr36zcHkY1pWFqw,119 +setuptools/_vendor/jaraco/text/to-qwerty.py,sha256=s4UMQUnPwFn_dB5uZC27BurHOQcYondBfzIpVL5pEzw,119 +setuptools/_vendor/more_itertools-10.3.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +setuptools/_vendor/more_itertools-10.3.0.dist-info/LICENSE,sha256=CfHIyelBrz5YTVlkHqm4fYPAyw_QB-te85Gn4mQ8GkY,1053 +setuptools/_vendor/more_itertools-10.3.0.dist-info/METADATA,sha256=BFO90O-fLNiVQMpj7oIS5ztzgJUUQZ3TA32P5HH3N-A,36293 +setuptools/_vendor/more_itertools-10.3.0.dist-info/RECORD,sha256=d8jnPgGNwP1-ntbICwWkQEVF9kH7CFIgzkKzaLWao9M,1259 +setuptools/_vendor/more_itertools-10.3.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/more_itertools-10.3.0.dist-info/WHEEL,sha256=rSgq_JpHF9fHR1lx53qwg_1-2LypZE_qmcuXbVUq948,81 +setuptools/_vendor/more_itertools/__init__.py,sha256=dtAbGjTDmn_ghiU5YXfhyDy0phAlXVdt5klZA5fUa-Q,149 +setuptools/_vendor/more_itertools/__init__.pyi,sha256=5B3eTzON1BBuOLob1vCflyEb2lSd6usXQQ-Cv-hXkeA,43 +setuptools/_vendor/more_itertools/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/more_itertools/__pycache__/more.cpython-311.pyc,, +setuptools/_vendor/more_itertools/__pycache__/recipes.cpython-311.pyc,, +setuptools/_vendor/more_itertools/more.py,sha256=1E5kzFncRKTDw0cYv1yRXMgDdunstLQd1QStcnL6U90,148370 +setuptools/_vendor/more_itertools/more.pyi,sha256=iXXeqt48Nxe8VGmIWpkVXuKpR2FYNuu2DU8nQLWCCu0,21484 +setuptools/_vendor/more_itertools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/more_itertools/recipes.py,sha256=WedhhfhGVgr6zii8fIbGJVmRTw0ZKRiLKnYBDGJv4nY,28591 +setuptools/_vendor/more_itertools/recipes.pyi,sha256=T_mdGpcFdfrP3JSWbwzYP9JyNV-Go-7RPfpxfftAWlA,4617 +setuptools/_vendor/packaging-24.2.dist-info/INSTALLER,sha256=5hhM4Q4mYTT9z6QB6PGpUAW81PGNFrYrdXMj4oM_6ak,2 +setuptools/_vendor/packaging-24.2.dist-info/LICENSE,sha256=ytHvW9NA1z4HS6YU0m996spceUDD2MNIUuZcSQlobEg,197 +setuptools/_vendor/packaging-24.2.dist-info/LICENSE.APACHE,sha256=DVQuDIgE45qn836wDaWnYhSdxoLXgpRRKH4RuTjpRZQ,10174 +setuptools/_vendor/packaging-24.2.dist-info/LICENSE.BSD,sha256=tw5-m3QvHMb5SLNMFqo5_-zpQZY2S8iP8NIYDwAo-sU,1344 +setuptools/_vendor/packaging-24.2.dist-info/METADATA,sha256=ohH86s6k5mIfQxY2TS0LcSfADeOFa4BiCC-bxZV-pNs,3204 +setuptools/_vendor/packaging-24.2.dist-info/RECORD,sha256=Y4DrXM0KY0ArfzhbAEa1LYFPwW3WEgEeL4iCqXe-A-M,2009 +setuptools/_vendor/packaging-24.2.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/packaging-24.2.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82 +setuptools/_vendor/packaging/__init__.py,sha256=dk4Ta_vmdVJxYHDcfyhvQNw8V3PgSBomKNXqg-D2JDY,494 +setuptools/_vendor/packaging/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/packaging/__pycache__/_elffile.cpython-311.pyc,, +setuptools/_vendor/packaging/__pycache__/_manylinux.cpython-311.pyc,, +setuptools/_vendor/packaging/__pycache__/_musllinux.cpython-311.pyc,, +setuptools/_vendor/packaging/__pycache__/_parser.cpython-311.pyc,, +setuptools/_vendor/packaging/__pycache__/_structures.cpython-311.pyc,, +setuptools/_vendor/packaging/__pycache__/_tokenizer.cpython-311.pyc,, +setuptools/_vendor/packaging/__pycache__/markers.cpython-311.pyc,, +setuptools/_vendor/packaging/__pycache__/metadata.cpython-311.pyc,, +setuptools/_vendor/packaging/__pycache__/requirements.cpython-311.pyc,, +setuptools/_vendor/packaging/__pycache__/specifiers.cpython-311.pyc,, +setuptools/_vendor/packaging/__pycache__/tags.cpython-311.pyc,, +setuptools/_vendor/packaging/__pycache__/utils.cpython-311.pyc,, +setuptools/_vendor/packaging/__pycache__/version.cpython-311.pyc,, +setuptools/_vendor/packaging/_elffile.py,sha256=cflAQAkE25tzhYmq_aCi72QfbT_tn891tPzfpbeHOwE,3306 +setuptools/_vendor/packaging/_manylinux.py,sha256=vl5OCoz4kx80H5rwXKeXWjl9WNISGmr4ZgTpTP9lU9c,9612 +setuptools/_vendor/packaging/_musllinux.py,sha256=p9ZqNYiOItGee8KcZFeHF_YcdhVwGHdK6r-8lgixvGQ,2694 +setuptools/_vendor/packaging/_parser.py,sha256=s_TvTvDNK0NrM2QB3VKThdWFM4Nc0P6JnkObkl3MjpM,10236 +setuptools/_vendor/packaging/_structures.py,sha256=q3eVNmbWJGG_S0Dit_S3Ao8qQqz_5PYTXFAKBZe5yr4,1431 +setuptools/_vendor/packaging/_tokenizer.py,sha256=J6v5H7Jzvb-g81xp_2QACKwO7LxHQA6ikryMU7zXwN8,5273 +setuptools/_vendor/packaging/licenses/__init__.py,sha256=1x5M1nEYjcgwEbLt0dXwz2ukjr18DiCzC0sraQqJ-Ww,5715 +setuptools/_vendor/packaging/licenses/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/packaging/licenses/__pycache__/_spdx.cpython-311.pyc,, +setuptools/_vendor/packaging/licenses/_spdx.py,sha256=oAm1ztPFwlsmCKe7lAAsv_OIOfS1cWDu9bNBkeu-2ns,48398 +setuptools/_vendor/packaging/markers.py,sha256=c89TNzB7ZdGYhkovm6PYmqGyHxXlYVaLW591PHUNKD8,10561 +setuptools/_vendor/packaging/metadata.py,sha256=YJibM7GYe4re8-0a3OlXmGS-XDgTEoO4tlBt2q25Bng,34762 +setuptools/_vendor/packaging/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/packaging/requirements.py,sha256=gYyRSAdbrIyKDY66ugIDUQjRMvxkH2ALioTmX3tnL6o,2947 +setuptools/_vendor/packaging/specifiers.py,sha256=GG1wPNMcL0fMJO68vF53wKMdwnfehDcaI-r9NpTfilA,40074 +setuptools/_vendor/packaging/tags.py,sha256=CFqrJzAzc2XNGexerH__T-Y5Iwq7WbsYXsiLERLWxY0,21014 +setuptools/_vendor/packaging/utils.py,sha256=0F3Hh9OFuRgrhTgGZUl5K22Fv1YP2tZl1z_2gO6kJiA,5050 +setuptools/_vendor/packaging/version.py,sha256=olfyuk_DPbflNkJ4wBWetXQ17c74x3DB501degUv7DY,16676 +setuptools/_vendor/platformdirs-4.2.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +setuptools/_vendor/platformdirs-4.2.2.dist-info/METADATA,sha256=zmsie01G1MtXR0wgIv5XpVeTO7idr0WWvfmxKsKWuGk,11429 +setuptools/_vendor/platformdirs-4.2.2.dist-info/RECORD,sha256=TCEddtQu1A78Os_Mhm2JEqcYr7yit-UYSUQjZtbpn-g,1642 +setuptools/_vendor/platformdirs-4.2.2.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/platformdirs-4.2.2.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87 +setuptools/_vendor/platformdirs-4.2.2.dist-info/licenses/LICENSE,sha256=KeD9YukphQ6G6yjD_czwzv30-pSHkBHP-z0NS-1tTbY,1089 +setuptools/_vendor/platformdirs/__init__.py,sha256=EMGE8qeHRR9CzDFr8kL3tA8hdZZniYjXBVZd0UGTWK0,22225 +setuptools/_vendor/platformdirs/__main__.py,sha256=HnsUQHpiBaiTxwcmwVw-nFaPdVNZtQIdi1eWDtI-MzI,1493 +setuptools/_vendor/platformdirs/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/platformdirs/__pycache__/__main__.cpython-311.pyc,, +setuptools/_vendor/platformdirs/__pycache__/android.cpython-311.pyc,, +setuptools/_vendor/platformdirs/__pycache__/api.cpython-311.pyc,, +setuptools/_vendor/platformdirs/__pycache__/macos.cpython-311.pyc,, +setuptools/_vendor/platformdirs/__pycache__/unix.cpython-311.pyc,, +setuptools/_vendor/platformdirs/__pycache__/version.cpython-311.pyc,, +setuptools/_vendor/platformdirs/__pycache__/windows.cpython-311.pyc,, +setuptools/_vendor/platformdirs/android.py,sha256=xZXY9Jd46WOsxT2U6-5HsNtDZ-IQqxcEUrBLl3hYk4o,9016 +setuptools/_vendor/platformdirs/api.py,sha256=QBYdUac2eC521ek_y53uD1Dcq-lJX8IgSRVd4InC6uc,8996 +setuptools/_vendor/platformdirs/macos.py,sha256=wftsbsvq6nZ0WORXSiCrZNkRHz_WKuktl0a6mC7MFkI,5580 +setuptools/_vendor/platformdirs/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/platformdirs/unix.py,sha256=Cci9Wqt35dAMsg6HT9nRGHSBW5obb0pR3AE1JJnsCXg,10643 +setuptools/_vendor/platformdirs/version.py,sha256=r7F76tZRjgQKzrpx_I0_ZMQOMU-PS7eGnHD7zEK3KB0,411 +setuptools/_vendor/platformdirs/windows.py,sha256=IFpiohUBwxPtCzlyKwNtxyW4Jk8haa6W8o59mfrDXVo,10125 +setuptools/_vendor/tomli-2.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +setuptools/_vendor/tomli-2.0.1.dist-info/LICENSE,sha256=uAgWsNUwuKzLTCIReDeQmEpuO2GSLCte6S8zcqsnQv4,1072 +setuptools/_vendor/tomli-2.0.1.dist-info/METADATA,sha256=zPDceKmPwJGLWtZykrHixL7WVXWmJGzZ1jyRT5lCoPI,8875 +setuptools/_vendor/tomli-2.0.1.dist-info/RECORD,sha256=DLn5pFGh42WsVLTIhmLh2gy1SnLRalJY-wq_-dPhwCI,999 +setuptools/_vendor/tomli-2.0.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/tomli-2.0.1.dist-info/WHEEL,sha256=jPMR_Dzkc4X4icQtmz81lnNY_kAsfog7ry7qoRvYLXw,81 +setuptools/_vendor/tomli/__init__.py,sha256=JhUwV66DB1g4Hvt1UQCVMdfCu-IgAV8FXmvDU9onxd4,396 +setuptools/_vendor/tomli/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/tomli/__pycache__/_parser.cpython-311.pyc,, +setuptools/_vendor/tomli/__pycache__/_re.cpython-311.pyc,, +setuptools/_vendor/tomli/__pycache__/_types.cpython-311.pyc,, +setuptools/_vendor/tomli/_parser.py,sha256=g9-ENaALS-B8dokYpCuzUFalWlog7T-SIYMjLZSWrtM,22633 +setuptools/_vendor/tomli/_re.py,sha256=dbjg5ChZT23Ka9z9DHOXfdtSpPwUfdgMXnj8NOoly-w,2943 +setuptools/_vendor/tomli/_types.py,sha256=-GTG2VUqkpxwMqzmVO4F7ybKddIbAnuAHXfmWQcTi3Q,254 +setuptools/_vendor/tomli/py.typed,sha256=8PjyZ1aVoQpRVvt71muvuq5qE-jTFZkK-GLHkhdebmc,26 +setuptools/_vendor/typeguard-4.3.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +setuptools/_vendor/typeguard-4.3.0.dist-info/LICENSE,sha256=YWP3mH37ONa8MgzitwsvArhivEESZRbVUu8c1DJH51g,1130 +setuptools/_vendor/typeguard-4.3.0.dist-info/METADATA,sha256=z2dcHAp0TwhYCFU5Deh8x31nazElgujUz9tbuP0pjSE,3717 +setuptools/_vendor/typeguard-4.3.0.dist-info/RECORD,sha256=SKUZWVgkeDUidUKM7s1473fXmsna55bjmi6vJUAoJVI,2402 +setuptools/_vendor/typeguard-4.3.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92 +setuptools/_vendor/typeguard-4.3.0.dist-info/entry_points.txt,sha256=qp7NQ1aLtiSgMQqo6gWlfGpy0IIXzoMJmeQTLpzqFZQ,48 +setuptools/_vendor/typeguard-4.3.0.dist-info/top_level.txt,sha256=4z28AhuDodwRS_c1J_l8H51t5QuwfTseskYzlxp6grs,10 +setuptools/_vendor/typeguard/__init__.py,sha256=Onh4w38elPCjtlcU3JY9k3h70NjsxXIkAflmQn-Z0FY,2071 +setuptools/_vendor/typeguard/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/typeguard/__pycache__/_checkers.cpython-311.pyc,, +setuptools/_vendor/typeguard/__pycache__/_config.cpython-311.pyc,, +setuptools/_vendor/typeguard/__pycache__/_decorators.cpython-311.pyc,, +setuptools/_vendor/typeguard/__pycache__/_exceptions.cpython-311.pyc,, +setuptools/_vendor/typeguard/__pycache__/_functions.cpython-311.pyc,, +setuptools/_vendor/typeguard/__pycache__/_importhook.cpython-311.pyc,, +setuptools/_vendor/typeguard/__pycache__/_memo.cpython-311.pyc,, +setuptools/_vendor/typeguard/__pycache__/_pytest_plugin.cpython-311.pyc,, +setuptools/_vendor/typeguard/__pycache__/_suppression.cpython-311.pyc,, +setuptools/_vendor/typeguard/__pycache__/_transformer.cpython-311.pyc,, +setuptools/_vendor/typeguard/__pycache__/_union_transformer.cpython-311.pyc,, +setuptools/_vendor/typeguard/__pycache__/_utils.cpython-311.pyc,, +setuptools/_vendor/typeguard/_checkers.py,sha256=JRrgKicdOEfIBoNEtegYCEIlhpad-a1u1Em7GCj0WCI,31360 +setuptools/_vendor/typeguard/_config.py,sha256=nIz8QwDa-oFO3L9O8_6srzlmd99pSby2wOM4Wb7F_B0,2846 +setuptools/_vendor/typeguard/_decorators.py,sha256=v6dsIeWvPhExGLP_wXF-RmDUyjZf_Ak28g7gBJ_v0-0,9033 +setuptools/_vendor/typeguard/_exceptions.py,sha256=ZIPeiV-FBd5Emw2EaWd2Fvlsrwi4ocwT2fVGBIAtHcQ,1121 +setuptools/_vendor/typeguard/_functions.py,sha256=ibgSAKa5ptIm1eR9ARG0BSozAFJPFNASZqhPVyQeqig,10393 +setuptools/_vendor/typeguard/_importhook.py,sha256=ugjCDvFcdWMU7UugqlJG91IpVNpEIxtRr-99s0h1k7M,6389 +setuptools/_vendor/typeguard/_memo.py,sha256=1juQV_vxnD2JYKbSrebiQuj4oKHz6n67v9pYA-CCISg,1303 +setuptools/_vendor/typeguard/_pytest_plugin.py,sha256=-fcSqkv54rIfIF8pDavY5YQPkj4OX8GMt_lL7CQSD4I,4416 +setuptools/_vendor/typeguard/_suppression.py,sha256=VQfzxcwIbu3if0f7VBkKM7hkYOA7tNFw9a7jMBsmMg4,2266 +setuptools/_vendor/typeguard/_transformer.py,sha256=9Ha7_QhdwoUni_6hvdY-hZbuEergowHrNL2vzHIakFY,44937 +setuptools/_vendor/typeguard/_union_transformer.py,sha256=v_42r7-6HuRX2SoFwnyJ-E5PlxXpVeUJPJR1-HU9qSo,1354 +setuptools/_vendor/typeguard/_utils.py,sha256=5HhO1rPn5f1M6ymkVAEv7Xmlz1cX-j0OnTMlyHqqrR8,5270 +setuptools/_vendor/typeguard/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/typing_extensions-4.12.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +setuptools/_vendor/typing_extensions-4.12.2.dist-info/LICENSE,sha256=Oy-B_iHRgcSZxZolbI4ZaEVdZonSaaqFNzv7avQdo78,13936 +setuptools/_vendor/typing_extensions-4.12.2.dist-info/METADATA,sha256=BeUQIa8cnYbrjWx-N8TOznM9UGW5Gm2DicVpDtRA8W0,3018 +setuptools/_vendor/typing_extensions-4.12.2.dist-info/RECORD,sha256=dxAALYGXHmMqpqL8M9xddKr118quIgQKZdPjFQOwXuk,571 +setuptools/_vendor/typing_extensions-4.12.2.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81 +setuptools/_vendor/typing_extensions.py,sha256=gwekpyG9DVG3lxWKX4ni8u7nk3We5slG98mA9F3DJQw,134451 +setuptools/_vendor/wheel-0.45.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +setuptools/_vendor/wheel-0.45.1.dist-info/LICENSE.txt,sha256=MMI2GGeRCPPo6h0qZYx8pBe9_IkcmO8aifpP8MmChlQ,1107 +setuptools/_vendor/wheel-0.45.1.dist-info/METADATA,sha256=mKz84H7m7jsxJyzeIcTVORiTb0NPMV39KvOIYhGgmjA,2313 +setuptools/_vendor/wheel-0.45.1.dist-info/RECORD,sha256=1jnxrHyZPDcVvULyfGFhiba4Z5L9_RsXr9dxcNbhaYQ,4900 +setuptools/_vendor/wheel-0.45.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/wheel-0.45.1.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82 +setuptools/_vendor/wheel-0.45.1.dist-info/entry_points.txt,sha256=rTY1BbkPHhkGMm4Q3F0pIzJBzW2kMxoG1oriffvGdA0,104 +setuptools/_vendor/wheel/__init__.py,sha256=mrxMnvdXACur_LWegbUfh5g5ysWZrd63UJn890wvGNk,59 +setuptools/_vendor/wheel/__main__.py,sha256=NkMUnuTCGcOkgY0IBLgBCVC_BGGcWORx2K8jYGS12UE,455 +setuptools/_vendor/wheel/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/wheel/__pycache__/__main__.cpython-311.pyc,, +setuptools/_vendor/wheel/__pycache__/_bdist_wheel.cpython-311.pyc,, +setuptools/_vendor/wheel/__pycache__/_setuptools_logging.cpython-311.pyc,, +setuptools/_vendor/wheel/__pycache__/bdist_wheel.cpython-311.pyc,, +setuptools/_vendor/wheel/__pycache__/macosx_libfile.cpython-311.pyc,, +setuptools/_vendor/wheel/__pycache__/metadata.cpython-311.pyc,, +setuptools/_vendor/wheel/__pycache__/util.cpython-311.pyc,, +setuptools/_vendor/wheel/__pycache__/wheelfile.cpython-311.pyc,, +setuptools/_vendor/wheel/_bdist_wheel.py,sha256=UghCQjSH_pVfcZh6oRjzSw_TQhcf3anSx1OkiLSL82M,21694 +setuptools/_vendor/wheel/_setuptools_logging.py,sha256=-5KC-lne0ilOUWIDfOkqapUWGMFZhuKYDIavIZiB5kM,781 +setuptools/_vendor/wheel/bdist_wheel.py,sha256=tpf9WufiSO1RuEMg5oPhIfSG8DMziCZ_4muCKF69Cqo,1107 +setuptools/_vendor/wheel/cli/__init__.py,sha256=Npq6_jKi03dhIcRnmbuFhwviVJxwO0tYEnEhWMv9cJo,4402 +setuptools/_vendor/wheel/cli/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/wheel/cli/__pycache__/convert.cpython-311.pyc,, +setuptools/_vendor/wheel/cli/__pycache__/pack.cpython-311.pyc,, +setuptools/_vendor/wheel/cli/__pycache__/tags.cpython-311.pyc,, +setuptools/_vendor/wheel/cli/__pycache__/unpack.cpython-311.pyc,, +setuptools/_vendor/wheel/cli/convert.py,sha256=Bi0ntEXb9nTllCxWeTRQ4j-nPs3szWSEKipG_GgnMkQ,12634 +setuptools/_vendor/wheel/cli/pack.py,sha256=CAFcHdBVulvsHYJlndKVO7KMI9JqBTZz5ii0PKxxCOs,3103 +setuptools/_vendor/wheel/cli/tags.py,sha256=lHw-LaWrkS5Jy_qWcw-6pSjeNM6yAjDnqKI3E5JTTCU,4760 +setuptools/_vendor/wheel/cli/unpack.py,sha256=Y_J7ynxPSoFFTT7H0fMgbBlVErwyDGcObgme5MBuz58,1021 +setuptools/_vendor/wheel/macosx_libfile.py,sha256=k1x7CE3LPtOVGqj6NXQ1nTGYVPaeRrhVzUG_KPq3zDs,16572 +setuptools/_vendor/wheel/metadata.py,sha256=JC4p7jlQZu2bUTAQ2fevkqLjg_X6gnNyRhLn6OUO1tc,6171 +setuptools/_vendor/wheel/util.py,sha256=aL7aibHwYUgfc8WlolL5tXdkV4DatbJxZHb1kwHFJAU,423 +setuptools/_vendor/wheel/vendored/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/wheel/vendored/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/wheel/vendored/packaging/LICENSE,sha256=ytHvW9NA1z4HS6YU0m996spceUDD2MNIUuZcSQlobEg,197 +setuptools/_vendor/wheel/vendored/packaging/LICENSE.APACHE,sha256=DVQuDIgE45qn836wDaWnYhSdxoLXgpRRKH4RuTjpRZQ,10174 +setuptools/_vendor/wheel/vendored/packaging/LICENSE.BSD,sha256=tw5-m3QvHMb5SLNMFqo5_-zpQZY2S8iP8NIYDwAo-sU,1344 +setuptools/_vendor/wheel/vendored/packaging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/wheel/vendored/packaging/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/wheel/vendored/packaging/__pycache__/_elffile.cpython-311.pyc,, +setuptools/_vendor/wheel/vendored/packaging/__pycache__/_manylinux.cpython-311.pyc,, +setuptools/_vendor/wheel/vendored/packaging/__pycache__/_musllinux.cpython-311.pyc,, +setuptools/_vendor/wheel/vendored/packaging/__pycache__/_parser.cpython-311.pyc,, +setuptools/_vendor/wheel/vendored/packaging/__pycache__/_structures.cpython-311.pyc,, +setuptools/_vendor/wheel/vendored/packaging/__pycache__/_tokenizer.cpython-311.pyc,, +setuptools/_vendor/wheel/vendored/packaging/__pycache__/markers.cpython-311.pyc,, +setuptools/_vendor/wheel/vendored/packaging/__pycache__/requirements.cpython-311.pyc,, +setuptools/_vendor/wheel/vendored/packaging/__pycache__/specifiers.cpython-311.pyc,, +setuptools/_vendor/wheel/vendored/packaging/__pycache__/tags.cpython-311.pyc,, +setuptools/_vendor/wheel/vendored/packaging/__pycache__/utils.cpython-311.pyc,, +setuptools/_vendor/wheel/vendored/packaging/__pycache__/version.cpython-311.pyc,, +setuptools/_vendor/wheel/vendored/packaging/_elffile.py,sha256=hbmK8OD6Z7fY6hwinHEUcD1by7czkGiNYu7ShnFEk2k,3266 +setuptools/_vendor/wheel/vendored/packaging/_manylinux.py,sha256=P7sdR5_7XBY09LVYYPhHmydMJIIwPXWsh4olk74Uuj4,9588 +setuptools/_vendor/wheel/vendored/packaging/_musllinux.py,sha256=z1s8To2hQ0vpn_d-O2i5qxGwEK8WmGlLt3d_26V7NeY,2674 +setuptools/_vendor/wheel/vendored/packaging/_parser.py,sha256=4tT4emSl2qTaU7VTQE1Xa9o1jMPCsBezsYBxyNMUN-s,10347 +setuptools/_vendor/wheel/vendored/packaging/_structures.py,sha256=q3eVNmbWJGG_S0Dit_S3Ao8qQqz_5PYTXFAKBZe5yr4,1431 +setuptools/_vendor/wheel/vendored/packaging/_tokenizer.py,sha256=alCtbwXhOFAmFGZ6BQ-wCTSFoRAJ2z-ysIf7__MTJ_k,5292 +setuptools/_vendor/wheel/vendored/packaging/markers.py,sha256=_TSPI1BhJYO7Bp9AzTmHQxIqHEVXaTjmDh9G-w8qzPA,8232 +setuptools/_vendor/wheel/vendored/packaging/requirements.py,sha256=dgoBeVprPu2YE6Q8nGfwOPTjATHbRa_ZGLyXhFEln6Q,2933 +setuptools/_vendor/wheel/vendored/packaging/specifiers.py,sha256=IWSt0SrLSP72heWhAC8UL0eGvas7XIQHjqiViVfmPKE,39778 +setuptools/_vendor/wheel/vendored/packaging/tags.py,sha256=fedHXiOHkBxNZTXotXv8uXPmMFU9ae-TKBujgYHigcA,18950 +setuptools/_vendor/wheel/vendored/packaging/utils.py,sha256=XgdmP3yx9-wQEFjO7OvMj9RjEf5JlR5HFFR69v7SQ9E,5268 +setuptools/_vendor/wheel/vendored/packaging/version.py,sha256=PFJaYZDxBgyxkfYhH3SQw4qfE9ICCWrTmitvq14y3bs,16234 +setuptools/_vendor/wheel/vendored/vendor.txt,sha256=Z2ENjB1i5prfez8CdM1Sdr3c6Zxv2rRRolMpLmBncAE,16 +setuptools/_vendor/wheel/wheelfile.py,sha256=USCttNlJwafxt51YYFFKG7jnxz8dfhbyqAZL6jMTA9s,8411 +setuptools/_vendor/zipp-3.19.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +setuptools/_vendor/zipp-3.19.2.dist-info/LICENSE,sha256=htoPAa6uRjSKPD1GUZXcHOzN55956HdppkuNoEsqR0E,1023 +setuptools/_vendor/zipp-3.19.2.dist-info/METADATA,sha256=UIrk_kMIHGSwsKKChYizqMw0MMZpPRZ2ZiVpQAsN_bE,3575 +setuptools/_vendor/zipp-3.19.2.dist-info/RECORD,sha256=8xby4D_ZrefrvAsVRwaEjiu4_VaLkJNRCfDY484rm_4,1039 +setuptools/_vendor/zipp-3.19.2.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/zipp-3.19.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92 +setuptools/_vendor/zipp-3.19.2.dist-info/top_level.txt,sha256=iAbdoSHfaGqBfVb2XuR9JqSQHCoOsOtG6y9C_LSpqFw,5 +setuptools/_vendor/zipp/__init__.py,sha256=QuI1g00G4fRAcGt-HqbV0oWIkmSgedCGGYsHHYzNa8A,13412 +setuptools/_vendor/zipp/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/zipp/__pycache__/glob.cpython-311.pyc,, +setuptools/_vendor/zipp/compat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/_vendor/zipp/compat/__pycache__/__init__.cpython-311.pyc,, +setuptools/_vendor/zipp/compat/__pycache__/py310.cpython-311.pyc,, +setuptools/_vendor/zipp/compat/py310.py,sha256=eZpkW0zRtunkhEh8jjX3gCGe22emoKCBJw72Zt4RkhA,219 +setuptools/_vendor/zipp/glob.py,sha256=etWpnfEoRyfUvrUsi6sTiGmErvPwe6HzY6pT8jg_lUI,3082 +setuptools/archive_util.py,sha256=Tl_64hSTtc4y8x7xa98rFVUbG24oArpjzLAYGYP2_sI,7356 +setuptools/build_meta.py,sha256=3cHAWucJaLA9DU5OfCbKkkteTDiQ5bB4LokfTRMgJT4,19968 +setuptools/cli-32.exe,sha256=MqzBvFQxFsviz_EMuGd3LfLyVP8mNMhwrvC0bEtpb9s,11776 +setuptools/cli-64.exe,sha256=u7PeVwdinmpgoMI4zUd7KPB_AGaYL9qVP6b87DkHOko,14336 +setuptools/cli-arm64.exe,sha256=uafQjaiA36yLz1SOuksG-1m28JsX0zFIoPZhgyiSbGE,13824 +setuptools/cli.exe,sha256=MqzBvFQxFsviz_EMuGd3LfLyVP8mNMhwrvC0bEtpb9s,11776 +setuptools/command/__init__.py,sha256=wdSrlNR0P6nCz9_oFtCAiAkeFJMsZa1jPcpXT53f0SM,803 +setuptools/command/__pycache__/__init__.cpython-311.pyc,, +setuptools/command/__pycache__/_requirestxt.cpython-311.pyc,, +setuptools/command/__pycache__/alias.cpython-311.pyc,, +setuptools/command/__pycache__/bdist_egg.cpython-311.pyc,, +setuptools/command/__pycache__/bdist_rpm.cpython-311.pyc,, +setuptools/command/__pycache__/bdist_wheel.cpython-311.pyc,, +setuptools/command/__pycache__/build.cpython-311.pyc,, +setuptools/command/__pycache__/build_clib.cpython-311.pyc,, +setuptools/command/__pycache__/build_ext.cpython-311.pyc,, +setuptools/command/__pycache__/build_py.cpython-311.pyc,, +setuptools/command/__pycache__/develop.cpython-311.pyc,, +setuptools/command/__pycache__/dist_info.cpython-311.pyc,, +setuptools/command/__pycache__/easy_install.cpython-311.pyc,, +setuptools/command/__pycache__/editable_wheel.cpython-311.pyc,, +setuptools/command/__pycache__/egg_info.cpython-311.pyc,, +setuptools/command/__pycache__/install.cpython-311.pyc,, +setuptools/command/__pycache__/install_egg_info.cpython-311.pyc,, +setuptools/command/__pycache__/install_lib.cpython-311.pyc,, +setuptools/command/__pycache__/install_scripts.cpython-311.pyc,, +setuptools/command/__pycache__/rotate.cpython-311.pyc,, +setuptools/command/__pycache__/saveopts.cpython-311.pyc,, +setuptools/command/__pycache__/sdist.cpython-311.pyc,, +setuptools/command/__pycache__/setopt.cpython-311.pyc,, +setuptools/command/__pycache__/test.cpython-311.pyc,, +setuptools/command/_requirestxt.py,sha256=ItYMTJGh_i5TlQstX_nFopqEhkC4PJFadBL2Zd3V670,4228 +setuptools/command/alias.py,sha256=rDdrMt32DS6qf3K7tjZZyHD_dMKrm77AXcAtx-nBQ0I,2380 +setuptools/command/bdist_egg.py,sha256=3eDucQ4fdeYMsLO9PhBfY1JkcMLhZXgnAI_9FdFNsEE,16972 +setuptools/command/bdist_rpm.py,sha256=LyqI49w48SKk0FmuHsE9MLzX1SuXjL7YMNbZMFZqFII,1435 +setuptools/command/bdist_wheel.py,sha256=_LfGHB7CV_uyncqlOTSETEi2gjVCoPKuAXcyRFoq7Cs,22246 +setuptools/command/build.py,sha256=eI7STMERGGZEpzk1tvJN8p9IOjAAXMcGLzljv2mwI3M,6052 +setuptools/command/build_clib.py,sha256=AbgpPIF_3qL8fZr3JIebI-WHTMTBiMfrFkVQz8K40G4,4528 +setuptools/command/build_ext.py,sha256=bUH4M0NizaJJrv10wK-ZD3uY0TxCSZlYQDhiwwzHslM,18377 +setuptools/command/build_py.py,sha256=DCbjvB18kkL-xUK5rvlzm0C6twTeOxNhyvJDxxa7fII,15539 +setuptools/command/develop.py,sha256=zX22119sI1G1gfJ1gNCE4hkg2zbLKx0uUwvNmC5bIu8,6886 +setuptools/command/dist_info.py,sha256=HU752iLLmmYMHbsDBgz2ubRjkgJobugOp8H71LzzDys,3450 +setuptools/command/easy_install.py,sha256=0Z4kFlE78Ae2AfHXYTxZFUa2t3qlNqXCtQu4J1Nx8iA,87870 +setuptools/command/editable_wheel.py,sha256=3bBipRZA3E4poQ8LEWhMYEjHjCzqU_pIdO86C3t7oNY,35624 +setuptools/command/egg_info.py,sha256=WWUozR3DZCrWsTQhHXOygMiEUcrjLWphET0-Zsocsm4,25982 +setuptools/command/install.py,sha256=MmTGb8m1R8fJ0cc5FTWCF6uq-s1ZJmvpYm-N_CtqEaI,7046 +setuptools/command/install_egg_info.py,sha256=3I9IPCH7D59Sh-6aVYz-h6wwyxq-wkxrKwKg3nDdJqs,2075 +setuptools/command/install_lib.py,sha256=9n1_U83eHcERL_a_rv_LhHCkhXlLdqyZ4SdBow-9qcE,4319 +setuptools/command/install_scripts.py,sha256=tVOCj3e8OTIrkoL_bGbT5pOksdxZfQblH_bdI4DtVV4,2637 +setuptools/command/launcher manifest.xml,sha256=xlLbjWrB01tKC0-hlVkOKkiSPbzMml2eOPtJ_ucCnbE,628 +setuptools/command/rotate.py,sha256=XNd_BEEOWAJHW1FcLTMUWWl4QB6zAuk7b8VWQg3FHos,2187 +setuptools/command/saveopts.py,sha256=Np0PVb7SD7oTbu9Z9sosS7D-CkkIkU7x4glu5Es1tjA,692 +setuptools/command/sdist.py,sha256=JaQm2-ebXI2kvyrBjJKP8yNLPa5eMbMeis88CXBMYlk,7374 +setuptools/command/setopt.py,sha256=xZF2RCc4ABvE9eHHAzF50-fkQg3au8fcRUVVGd58k3U,5100 +setuptools/command/test.py,sha256=k7xcq7D7bEehgxarbw-dW3AtmGZORqz8HjKR6FGJ3jk,1343 +setuptools/compat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/compat/__pycache__/__init__.cpython-311.pyc,, +setuptools/compat/__pycache__/py310.cpython-311.pyc,, +setuptools/compat/__pycache__/py311.cpython-311.pyc,, +setuptools/compat/__pycache__/py312.cpython-311.pyc,, +setuptools/compat/__pycache__/py39.cpython-311.pyc,, +setuptools/compat/py310.py,sha256=8sqwWczIcrkzeAbhaim4pKVd4tXZdcqmebgdvzji0rc,141 +setuptools/compat/py311.py,sha256=e6tJAFwZEP82hmMBl10HYeSypelo_Ti2wTjKZVKLwOE,790 +setuptools/compat/py312.py,sha256=vYKVtdrdOTsO_R90dJkEXsFwfMJFuIFJflhIgHrjJ-Y,366 +setuptools/compat/py39.py,sha256=BJMtnkfcqyTfccqjYQxfoRtU2nTnWaEESBVkshTiXqY,493 +setuptools/config/NOTICE,sha256=Ld3wiBgpejuJ1D2V_2WdjahXQRCMkTbfo6TYVsBiO9g,493 +setuptools/config/__init__.py,sha256=aiPnL9BJn1O6MfmuNXyn8W2Lp8u9qizRVqwPiOdPIjY,1499 +setuptools/config/__pycache__/__init__.cpython-311.pyc,, +setuptools/config/__pycache__/_apply_pyprojecttoml.cpython-311.pyc,, +setuptools/config/__pycache__/expand.cpython-311.pyc,, +setuptools/config/__pycache__/pyprojecttoml.cpython-311.pyc,, +setuptools/config/__pycache__/setupcfg.cpython-311.pyc,, +setuptools/config/_apply_pyprojecttoml.py,sha256=SUyTw7A2btZ1lBuWKN5o42-Diyv95eGTiYJ3rZOnGSc,19120 +setuptools/config/_validate_pyproject/NOTICE,sha256=XTANv6ZDE4sBO3WsnK7uWR-VG4sO4kKIw0zNkmxHgMg,18737 +setuptools/config/_validate_pyproject/__init__.py,sha256=dnp6T7ePP1R5z4OuC7Fd2dkFlIrtIfizUfvpGJP6nz0,1042 +setuptools/config/_validate_pyproject/__pycache__/__init__.cpython-311.pyc,, +setuptools/config/_validate_pyproject/__pycache__/error_reporting.cpython-311.pyc,, +setuptools/config/_validate_pyproject/__pycache__/extra_validations.cpython-311.pyc,, +setuptools/config/_validate_pyproject/__pycache__/fastjsonschema_exceptions.cpython-311.pyc,, +setuptools/config/_validate_pyproject/__pycache__/fastjsonschema_validations.cpython-311.pyc,, +setuptools/config/_validate_pyproject/__pycache__/formats.cpython-311.pyc,, +setuptools/config/_validate_pyproject/error_reporting.py,sha256=meldD7nBQdolQhvG-43r1Ue-gU1n7ORAJR86vh3Rrvk,11813 +setuptools/config/_validate_pyproject/extra_validations.py,sha256=-GUG5S--ijY8WfXbdXPoHl6ywGsyEF9dtDpenSoJPHg,2858 +setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py,sha256=w749JgqKi8clBFcObdcbZVqsmF4oJ_QByhZ1SGbUFNw,1612 +setuptools/config/_validate_pyproject/fastjsonschema_validations.py,sha256=FihD5ZcM6p77BPZ04CGqh3BEwVNoPMKJZJAyuJpkAU0,354682 +setuptools/config/_validate_pyproject/formats.py,sha256=TETokJBK9hjl-cVg1olsojkJwLxfP7_chgJQNmzAB98,13564 +setuptools/config/distutils.schema.json,sha256=Tcp32kRnhwORGw_9p6GEi08lj2h15tQRzOYBbzGmcBU,972 +setuptools/config/expand.py,sha256=JNAktRCsyyRB-rQodbPnCucmLWqcYvzCDC8Ebn2Z7xM,16041 +setuptools/config/pyprojecttoml.py,sha256=YMu5PdbJJI5azp6kR_boM1mflf5nqOA-InF4s6LnLgw,18320 +setuptools/config/setupcfg.py,sha256=VZDkwE7DYv45SbadJD8CwKrDtiXvjgllL8PYSvoRCyg,26575 +setuptools/config/setuptools.schema.json,sha256=dZBRuSEnZkatoVlt1kVwG8ocTeRdO7BD0xvOWKH54PY,16071 +setuptools/depends.py,sha256=jKYfjmt_2ZQYVghb8L9bU7LJ6erHJ5ze-K_fKV1BMXk,5965 +setuptools/discovery.py,sha256=-42c3XhwzkfodDKKP50C2YBzr11fncAgmUzBdBRb0-Q,21258 +setuptools/dist.py,sha256=RZz7aj9RxqSYriqgFoZOu-7KIV82cmlaMFx9owZrApQ,44897 +setuptools/errors.py,sha256=gY2x2PIaIgy01yRANRC-zcCwxDCqCScgJoCOZFe0yio,3024 +setuptools/extension.py,sha256=KCnv9p3tgm0ZVqtgE451fyILsm4hCyvOiUtOu787D-4,6683 +setuptools/glob.py,sha256=AC_B33DY8g-CHELxDsJrtwFrpiucSAZsakPFdSOQzhc,6062 +setuptools/gui-32.exe,sha256=hdrh6V13hF8stZvKw9Sv50u-TJGpvMW_SnHNQxBNvnw,11776 +setuptools/gui-64.exe,sha256=NHG2FA6txkEid9u-_j_vjDRaDxpZd2CGuAo2GMOoPjs,14336 +setuptools/gui-arm64.exe,sha256=5pT0dDQFyLWSb_RX22_n8aEt7HwWqcOGR4TT9OB64Jc,13824 +setuptools/gui.exe,sha256=hdrh6V13hF8stZvKw9Sv50u-TJGpvMW_SnHNQxBNvnw,11776 +setuptools/installer.py,sha256=_4Wegx4r3L05sMo3-IlqFp-OuxnWyBqjyMZ7LWQXmh8,5110 +setuptools/launch.py,sha256=IBb5lEv69CyuZ9ewIrmKlXh154kdLmP29LKfTMkximE,820 +setuptools/logging.py,sha256=W16iHJ1HcCXYQ0RxyrEfJ83FT4175tCtoYg-E6uSpVI,1261 +setuptools/modified.py,sha256=ZwbfBfCFP88ltvbv_dJDz-t1LsQjnM-JUpgZnnQZjjM,568 +setuptools/monkey.py,sha256=FwMWl2n1v2bHbeqBy-o9g8yUNaAkYFbszCbXe9d5Za8,3717 +setuptools/msvc.py,sha256=vmM0qL4rIzrtD9pia9ZEwtqZ4LbbrgL0dU0EANVYRm8,41631 +setuptools/namespaces.py,sha256=2GGqYY1BNDEhMtBc1rHTv7klgmNVRdksJeW-L1f--ys,3171 +setuptools/package_index.py,sha256=V5hnQtbDy1R6l3dSBNTuMUBvtrQxNPxgmYyXfpSq79U,40299 +setuptools/sandbox.py,sha256=fMqtcOuipHO6RKPh1YB5o7d985dLKo76Whp3vrIei2E,14906 +setuptools/script (dev).tmpl,sha256=RUzQzCQUaXtwdLtYHWYbIQmOaES5Brqq1FvUA_tu-5I,218 +setuptools/script.tmpl,sha256=WGTt5piezO27c-Dbx6l5Q4T3Ff20A5z7872hv3aAhYY,138 +setuptools/tests/__init__.py,sha256=AnBfls2iJbTDQzmMKeLRt-9lxhaOHUVOZEgXv89Uwvs,335 +setuptools/tests/__pycache__/__init__.cpython-311.pyc,, +setuptools/tests/__pycache__/contexts.cpython-311.pyc,, +setuptools/tests/__pycache__/environment.cpython-311.pyc,, +setuptools/tests/__pycache__/fixtures.cpython-311.pyc,, +setuptools/tests/__pycache__/mod_with_constant.cpython-311.pyc,, +setuptools/tests/__pycache__/namespaces.cpython-311.pyc,, +setuptools/tests/__pycache__/script-with-bom.cpython-311.pyc,, +setuptools/tests/__pycache__/server.cpython-311.pyc,, +setuptools/tests/__pycache__/test_archive_util.cpython-311.pyc,, +setuptools/tests/__pycache__/test_bdist_deprecations.cpython-311.pyc,, +setuptools/tests/__pycache__/test_bdist_egg.cpython-311.pyc,, +setuptools/tests/__pycache__/test_bdist_wheel.cpython-311.pyc,, +setuptools/tests/__pycache__/test_build.cpython-311.pyc,, +setuptools/tests/__pycache__/test_build_clib.cpython-311.pyc,, +setuptools/tests/__pycache__/test_build_ext.cpython-311.pyc,, +setuptools/tests/__pycache__/test_build_meta.cpython-311.pyc,, +setuptools/tests/__pycache__/test_build_py.cpython-311.pyc,, +setuptools/tests/__pycache__/test_config_discovery.cpython-311.pyc,, +setuptools/tests/__pycache__/test_core_metadata.cpython-311.pyc,, +setuptools/tests/__pycache__/test_depends.cpython-311.pyc,, +setuptools/tests/__pycache__/test_develop.cpython-311.pyc,, +setuptools/tests/__pycache__/test_dist.cpython-311.pyc,, +setuptools/tests/__pycache__/test_dist_info.cpython-311.pyc,, +setuptools/tests/__pycache__/test_distutils_adoption.cpython-311.pyc,, +setuptools/tests/__pycache__/test_easy_install.cpython-311.pyc,, +setuptools/tests/__pycache__/test_editable_install.cpython-311.pyc,, +setuptools/tests/__pycache__/test_egg_info.cpython-311.pyc,, +setuptools/tests/__pycache__/test_extern.cpython-311.pyc,, +setuptools/tests/__pycache__/test_find_packages.cpython-311.pyc,, +setuptools/tests/__pycache__/test_find_py_modules.cpython-311.pyc,, +setuptools/tests/__pycache__/test_glob.cpython-311.pyc,, +setuptools/tests/__pycache__/test_install_scripts.cpython-311.pyc,, +setuptools/tests/__pycache__/test_logging.cpython-311.pyc,, +setuptools/tests/__pycache__/test_manifest.cpython-311.pyc,, +setuptools/tests/__pycache__/test_namespaces.cpython-311.pyc,, +setuptools/tests/__pycache__/test_packageindex.cpython-311.pyc,, +setuptools/tests/__pycache__/test_sandbox.cpython-311.pyc,, +setuptools/tests/__pycache__/test_sdist.cpython-311.pyc,, +setuptools/tests/__pycache__/test_setopt.cpython-311.pyc,, +setuptools/tests/__pycache__/test_setuptools.cpython-311.pyc,, +setuptools/tests/__pycache__/test_shutil_wrapper.cpython-311.pyc,, +setuptools/tests/__pycache__/test_unicode_utils.cpython-311.pyc,, +setuptools/tests/__pycache__/test_virtualenv.cpython-311.pyc,, +setuptools/tests/__pycache__/test_warnings.cpython-311.pyc,, +setuptools/tests/__pycache__/test_wheel.cpython-311.pyc,, +setuptools/tests/__pycache__/test_windows_wrappers.cpython-311.pyc,, +setuptools/tests/__pycache__/text.cpython-311.pyc,, +setuptools/tests/__pycache__/textwrap.cpython-311.pyc,, +setuptools/tests/compat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/tests/compat/__pycache__/__init__.cpython-311.pyc,, +setuptools/tests/compat/__pycache__/py39.cpython-311.pyc,, +setuptools/tests/compat/py39.py,sha256=eUy7_F-6KRTOIKl-veshUu6I0EdTSdBZMh0EV0lZ1-g,135 +setuptools/tests/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/tests/config/__pycache__/__init__.cpython-311.pyc,, +setuptools/tests/config/__pycache__/test_apply_pyprojecttoml.cpython-311.pyc,, +setuptools/tests/config/__pycache__/test_expand.cpython-311.pyc,, +setuptools/tests/config/__pycache__/test_pyprojecttoml.cpython-311.pyc,, +setuptools/tests/config/__pycache__/test_pyprojecttoml_dynamic_deps.cpython-311.pyc,, +setuptools/tests/config/__pycache__/test_setupcfg.cpython-311.pyc,, +setuptools/tests/config/downloads/__init__.py,sha256=9ixnDEdyL_arKbUzfuiJftAj9bGxKz8M9alOFZMjx9Y,1827 +setuptools/tests/config/downloads/__pycache__/__init__.cpython-311.pyc,, +setuptools/tests/config/downloads/__pycache__/preload.cpython-311.pyc,, +setuptools/tests/config/downloads/preload.py,sha256=sIGGZpY3cmMpMwiJYYYYHG2ifZJkvJgEotRFtiulV1I,450 +setuptools/tests/config/setupcfg_examples.txt,sha256=cAbVvCbkFZuTUL6xRRzRgqyB0rLvJTfvw3D30glo2OE,1912 +setuptools/tests/config/test_apply_pyprojecttoml.py,sha256=l6nE4d8WLU_eSWRic7VSoqeKv9Bi7CZGHcEuB2ehk2w,28807 +setuptools/tests/config/test_expand.py,sha256=S0oT6JvgA_oujR4YS4RUuf5gmOt1CTQV66RQDzV8xd4,8933 +setuptools/tests/config/test_pyprojecttoml.py,sha256=0LefSljUhA6MqtJ5AVzLhomqZcYiFKdu_1ckDeMT1LY,12406 +setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py,sha256=9W73-yLhZJmvCiO4rTiQoBpZT5wNA90Xbd5n2HCshd4,3271 +setuptools/tests/config/test_setupcfg.py,sha256=ZvN-O-2Dgon1adp6oM6il8JWdgT9y196fRvqESU5ELI,33427 +setuptools/tests/contexts.py,sha256=TAdZKxmmodx1ExMVo01o4QpRjpIpo4X3IWKq_BnjxpU,3480 +setuptools/tests/environment.py,sha256=95_UtTaRiuvwYC9eXKEHbn02kDtZysvZq3UZJmPUj1I,3102 +setuptools/tests/fixtures.py,sha256=-V7iD6BeE2E0Rw6dVvTOCm36JG8ZTTnrXhN0GISlgrg,5197 +setuptools/tests/indexes/test_links_priority/external.html,sha256=eL9euOuE93JKZdqlXxBOlHbKwIuNuIdq7GBRpsaPMcU,92 +setuptools/tests/indexes/test_links_priority/simple/foobar/index.html,sha256=DD-TKr7UU4zAjHHz4VexYDNSAzR27levSh1c-k3ZdLE,174 +setuptools/tests/integration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +setuptools/tests/integration/__pycache__/__init__.cpython-311.pyc,, +setuptools/tests/integration/__pycache__/helpers.cpython-311.pyc,, +setuptools/tests/integration/__pycache__/test_pip_install_sdist.cpython-311.pyc,, +setuptools/tests/integration/helpers.py,sha256=3PHcS9SCA-fwVJmUP2ad5NQOttJAETI5Nnoc_xroO5k,2522 +setuptools/tests/integration/test_pip_install_sdist.py,sha256=SFbvuYF_hDzt6OtsQ5GjFNnxmoJ_eElfvpYsiyyGJ-g,8256 +setuptools/tests/mod_with_constant.py,sha256=X_Kj80M55w1tmQ4f7uZY91ZTALo4hKVT6EHxgYocUMQ,22 +setuptools/tests/namespaces.py,sha256=HPcI3nR5MCFWXpaADIJ1fwKxymcQgBkuw87Ic5PUSAQ,2774 +setuptools/tests/script-with-bom.py,sha256=hRRgIizEULGiG_ZTNoMY46HhKhxpWfy5FGcD6Qbh5fc,18 +setuptools/tests/server.py,sha256=0FDZf0cSInCP5n1haK7AxHo3jD261RK7D3-RjP-F53k,2397 +setuptools/tests/test_archive_util.py,sha256=buuKdY8XkW26Pe3IKAoBRGHG0MDumnuNoPg2WsAQzIg,845 +setuptools/tests/test_bdist_deprecations.py,sha256=75Xq3gYn79LIIyusEltbHan0bEgAt2e_CaL7KLS8-KQ,775 +setuptools/tests/test_bdist_egg.py,sha256=6PaYN1F3JDbIh1uK0urv7yJFcx98z5dn9SOJ8Mv91l8,1957 +setuptools/tests/test_bdist_wheel.py,sha256=dZ9a7OT_UyRvLnoCi2KGEIbtzhEQjM3YutYMA6ZCezs,23083 +setuptools/tests/test_build.py,sha256=wJgMz2hwHADcLFg-nXrwRVhus7hjmAeEGgrpIQwCGnA,798 +setuptools/tests/test_build_clib.py,sha256=bX51XRAf4uO7IuHFpjePnoK8mE74N2gsoeEqF-ofgws,3123 +setuptools/tests/test_build_ext.py,sha256=e4ZSxsYPB5zq1KSqGEuATZ0t0PJQzMhjjkKJ-hIjcgc,10099 +setuptools/tests/test_build_meta.py,sha256=kvi0Bn4p9DBVme3zyWQsn3QgB9oPdq8S15agj1m69L0,33289 +setuptools/tests/test_build_py.py,sha256=gobME_Cvzf6Ugxq70iWfXekb_xyyT61khwjFq8zkwfw,14186 +setuptools/tests/test_config_discovery.py,sha256=FqV-lOtkqaI-ayzU2zocSdD5TaRAgCZnixNDilKA6FQ,22580 +setuptools/tests/test_core_metadata.py,sha256=vbVJ5_Lsx_hsO_GdB6nQEXJRjA2ydx6_qSbr5LpheAA,20881 +setuptools/tests/test_depends.py,sha256=yQBXoQbNQlJit6mbRVoz6Bb553f3sNrq02lZimNz5XY,424 +setuptools/tests/test_develop.py,sha256=CLzXZ8-b5-VFTuau4P4yXEdLx1UdyTFcOfrV0qyUIdE,5142 +setuptools/tests/test_dist.py,sha256=GFjyL2etAxvVM3q7NhFEGcXS5gyKj8VzbqcbKzpqbOk,8901 +setuptools/tests/test_dist_info.py,sha256=5kBRj9tuBsVreBsY22H2feMO_JQZsSoOZMU_MJfUevY,7077 +setuptools/tests/test_distutils_adoption.py,sha256=_eynrOfyEqXFEmjUJhzpe8GXPyTUPvNSObs4qAAmBy8,5987 +setuptools/tests/test_easy_install.py,sha256=jx4lpFyee0G432cdnwBow3AkL4ibw-0QILwldwv5SCI,53534 +setuptools/tests/test_editable_install.py,sha256=7eTEtpT0k7QeVyZg64eh3kZn-SjckuB9LcokOuV37DI,43383 +setuptools/tests/test_egg_info.py,sha256=QCzoUOkFocmbkwS6XU7F8WNzKE8CGEMRxYBqKLgfUrc,44866 +setuptools/tests/test_extern.py,sha256=rpKU6oCcksumLwf5TeKlDluFQ0TUfbPwTLQbpxcFrCU,296 +setuptools/tests/test_find_packages.py,sha256=CTLAcTzWGWBLCcd2aAsUVkvO3ibrlqexFBdDKOWPoq8,7819 +setuptools/tests/test_find_py_modules.py,sha256=zQjuhIG5TQN2SJPix9ARo4DL_w84Ln8QsHDUjjbrtAQ,2404 +setuptools/tests/test_glob.py,sha256=P3JvpH-kXQ4BZ3zvRF-zKxOgwyWzwIaQIz0WHdxS0kk,887 +setuptools/tests/test_install_scripts.py,sha256=scIrJ6a_ssKqg4vIBNaUjmAKHEYLUUZ9WKnPeKnE6gc,3433 +setuptools/tests/test_logging.py,sha256=zlE5DlldukC7Jc54FNvDV_7ux3ErAkrfrN5CSsnNOUQ,2099 +setuptools/tests/test_manifest.py,sha256=eMg65pIA52DizB6mpktSU-b8CjwaNCS5MSgL_V1LrFI,18562 +setuptools/tests/test_namespaces.py,sha256=Y6utoe5PHHqL_DlgawqB9F8XpsUDPvvw1sQMenK04e0,4515 +setuptools/tests/test_packageindex.py,sha256=qEjLHpSu2gAkegwEstzHQT-Om1uQIYjA8zeNzEX79uo,8775 +setuptools/tests/test_sandbox.py,sha256=shUWE7fLTWe7Jzdfi6NheBWauG3oUukbUV46cArD0u0,4330 +setuptools/tests/test_sdist.py,sha256=RYLvPa_nfyC1ZmoinzqMzJynTDG4RtPYC19_0LU6pvs,32872 +setuptools/tests/test_setopt.py,sha256=3VxxM4ATfP-P4AGnDjoWCnHr5-i9CSEQTFYU1-FTnvI,1365 +setuptools/tests/test_setuptools.py,sha256=_eIhqKf45-OtHqxRf20KndOZJlJdS0PuFLXBO3M-LN8,9008 +setuptools/tests/test_shutil_wrapper.py,sha256=g15E11PtZxG-InB2BWNFyH-svObXx2XcMhgMLJPuFnc,641 +setuptools/tests/test_unicode_utils.py,sha256=xWfEEl8jkQCt9othUTXJfFmdyATAFggJs2tTxjbumbw,316 +setuptools/tests/test_virtualenv.py,sha256=g-njC_9JTAs1YVx_1dGJ_Q6RlInO4qKVu9-XAgNb6TY,3730 +setuptools/tests/test_warnings.py,sha256=zwR2zcnCeCeDqILZlJOPAcuyPHoDvGu1OtOVYiLMk74,3347 +setuptools/tests/test_wheel.py,sha256=J-83W1KdXTgAjFZE3H-ytohhvDE1iqdbE5YF5jLQlGQ,19370 +setuptools/tests/test_windows_wrappers.py,sha256=aF6UTowN3yzCgdBh9nDQVvYIfSYogrTK776TEyXEBqg,7881 +setuptools/tests/text.py,sha256=a12197pMVTvB6FAWQ0ujT8fIQiLIWJlFAl1UCaDUDfg,123 +setuptools/tests/textwrap.py,sha256=FNNNq_MiaEJx88PnsbJQIRxmj1qmgcAOCXXRsODPJN4,98 +setuptools/unicode_utils.py,sha256=ukMGh8pEAw6F_Ezb-K5D3c-078RgA_GcF0oW6lg4lSs,3189 +setuptools/version.py,sha256=WJCeUuyq74Aok2TeK9-OexZOu8XrlQy7-y0BEuWNovQ,161 +setuptools/warnings.py,sha256=oY0Se5eOqje_FEyjTgonUc0XGwgsrI5cgm1kkwulz_w,3796 +setuptools/wheel.py,sha256=xkAtvgm7uPTyYV2zqVmQ0wA8kLwOyRT2Jes1zAy07Ks,8624 +setuptools/windows_support.py,sha256=wW4IYLM1Bv7Z1MaauP2xmPjyy-wkmQnXdyvXscAf9fw,726 diff --git a/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/WHEEL b/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/WHEEL new file mode 100644 index 0000000..8acb955 --- /dev/null +++ b/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (79.0.1) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/entry_points.txt b/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/entry_points.txt new file mode 100644 index 0000000..0db0a6c --- /dev/null +++ b/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/entry_points.txt @@ -0,0 +1,51 @@ +[distutils.commands] +alias = setuptools.command.alias:alias +bdist_egg = setuptools.command.bdist_egg:bdist_egg +bdist_rpm = setuptools.command.bdist_rpm:bdist_rpm +bdist_wheel = setuptools.command.bdist_wheel:bdist_wheel +build = setuptools.command.build:build +build_clib = setuptools.command.build_clib:build_clib +build_ext = setuptools.command.build_ext:build_ext +build_py = setuptools.command.build_py:build_py +develop = setuptools.command.develop:develop +dist_info = setuptools.command.dist_info:dist_info +easy_install = setuptools.command.easy_install:easy_install +editable_wheel = setuptools.command.editable_wheel:editable_wheel +egg_info = setuptools.command.egg_info:egg_info +install = setuptools.command.install:install +install_egg_info = setuptools.command.install_egg_info:install_egg_info +install_lib = setuptools.command.install_lib:install_lib +install_scripts = setuptools.command.install_scripts:install_scripts +rotate = setuptools.command.rotate:rotate +saveopts = setuptools.command.saveopts:saveopts +sdist = setuptools.command.sdist:sdist +setopt = setuptools.command.setopt:setopt + +[distutils.setup_keywords] +dependency_links = setuptools.dist:assert_string_list +eager_resources = setuptools.dist:assert_string_list +entry_points = setuptools.dist:check_entry_points +exclude_package_data = setuptools.dist:check_package_data +extras_require = setuptools.dist:check_extras +include_package_data = setuptools.dist:assert_bool +install_requires = setuptools.dist:check_requirements +namespace_packages = setuptools.dist:check_nsp +package_data = setuptools.dist:check_package_data +packages = setuptools.dist:check_packages +python_requires = setuptools.dist:check_specifier +setup_requires = setuptools.dist:check_requirements +use_2to3 = setuptools.dist:invalid_unless_false +zip_safe = setuptools.dist:assert_bool + +[egg_info.writers] +PKG-INFO = setuptools.command.egg_info:write_pkg_info +dependency_links.txt = setuptools.command.egg_info:overwrite_arg +eager_resources.txt = setuptools.command.egg_info:overwrite_arg +entry_points.txt = setuptools.command.egg_info:write_entries +namespace_packages.txt = setuptools.command.egg_info:overwrite_arg +requires.txt = setuptools.command.egg_info:write_requirements +top_level.txt = setuptools.command.egg_info:write_toplevel_names + +[setuptools.finalize_distribution_options] +keywords = setuptools.dist:Distribution._finalize_setup_keywords +parent_finalize = setuptools.dist:_Distribution.finalize_options diff --git a/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/licenses/LICENSE new file mode 100644 index 0000000..1bb5a44 --- /dev/null +++ b/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/licenses/LICENSE @@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/top_level.txt new file mode 100644 index 0000000..b5ac107 --- /dev/null +++ b/venv/lib/python3.11/site-packages/setuptools-79.0.1.dist-info/top_level.txt @@ -0,0 +1,3 @@ +_distutils_hack +pkg_resources +setuptools diff --git a/venv/lib/python3.11/site-packages/six-1.17.0.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/six-1.17.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/six-1.17.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/six-1.17.0.dist-info/LICENSE b/venv/lib/python3.11/site-packages/six-1.17.0.dist-info/LICENSE new file mode 100644 index 0000000..1cc22a5 --- /dev/null +++ b/venv/lib/python3.11/site-packages/six-1.17.0.dist-info/LICENSE @@ -0,0 +1,18 @@ +Copyright (c) 2010-2024 Benjamin Peterson + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/six-1.17.0.dist-info/METADATA b/venv/lib/python3.11/site-packages/six-1.17.0.dist-info/METADATA new file mode 100644 index 0000000..cfde03c --- /dev/null +++ b/venv/lib/python3.11/site-packages/six-1.17.0.dist-info/METADATA @@ -0,0 +1,43 @@ +Metadata-Version: 2.1 +Name: six +Version: 1.17.0 +Summary: Python 2 and 3 compatibility utilities +Home-page: https://github.com/benjaminp/six +Author: Benjamin Peterson +Author-email: benjamin@python.org +License: MIT +Classifier: Development Status :: 5 - Production/Stable +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 3 +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Topic :: Software Development :: Libraries +Classifier: Topic :: Utilities +Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.* +License-File: LICENSE + +.. image:: https://img.shields.io/pypi/v/six.svg + :target: https://pypi.org/project/six/ + :alt: six on PyPI + +.. image:: https://readthedocs.org/projects/six/badge/?version=latest + :target: https://six.readthedocs.io/ + :alt: six's documentation on Read the Docs + +.. image:: https://img.shields.io/badge/license-MIT-green.svg + :target: https://github.com/benjaminp/six/blob/master/LICENSE + :alt: MIT License badge + +Six is a Python 2 and 3 compatibility library. It provides utility functions +for smoothing over the differences between the Python versions with the goal of +writing Python code that is compatible on both Python versions. See the +documentation for more information on what is provided. + +Six supports Python 2.7 and 3.3+. It is contained in only one Python +file, so it can be easily copied into your project. (The copyright and license +notice must be retained.) + +Online documentation is at https://six.readthedocs.io/. + +Bugs can be reported to https://github.com/benjaminp/six. The code can also +be found there. diff --git a/venv/lib/python3.11/site-packages/six-1.17.0.dist-info/RECORD b/venv/lib/python3.11/site-packages/six-1.17.0.dist-info/RECORD new file mode 100644 index 0000000..487bc07 --- /dev/null +++ b/venv/lib/python3.11/site-packages/six-1.17.0.dist-info/RECORD @@ -0,0 +1,8 @@ +__pycache__/six.cpython-311.pyc,, +six-1.17.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +six-1.17.0.dist-info/LICENSE,sha256=Q3W6IOK5xsTnytKUCmKP2Q6VzD1Q7pKq51VxXYuh-9A,1066 +six-1.17.0.dist-info/METADATA,sha256=ViBCB4wnUlSfbYp8htvF3XCAiKe-bYBnLsewcQC3JGg,1658 +six-1.17.0.dist-info/RECORD,, +six-1.17.0.dist-info/WHEEL,sha256=pxeNX5JdtCe58PUSYP9upmc7jdRPgvT0Gm9kb1SHlVw,109 +six-1.17.0.dist-info/top_level.txt,sha256=_iVH_iYEtEXnD8nYGQYpYFUvkUW9sEO1GYbkeKSAais,4 +six.py,sha256=xRyR9wPT1LNpbJI8tf7CE-BeddkhU5O--sfy-mo5BN8,34703 diff --git a/venv/lib/python3.11/site-packages/six-1.17.0.dist-info/WHEEL b/venv/lib/python3.11/site-packages/six-1.17.0.dist-info/WHEEL new file mode 100644 index 0000000..104f387 --- /dev/null +++ b/venv/lib/python3.11/site-packages/six-1.17.0.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: setuptools (75.6.0) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/venv/lib/python3.11/site-packages/six-1.17.0.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/six-1.17.0.dist-info/top_level.txt new file mode 100644 index 0000000..ffe2fce --- /dev/null +++ b/venv/lib/python3.11/site-packages/six-1.17.0.dist-info/top_level.txt @@ -0,0 +1 @@ +six diff --git a/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/LICENSE b/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/LICENSE new file mode 100644 index 0000000..51f3442 --- /dev/null +++ b/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/LICENSE @@ -0,0 +1,3 @@ +This software is made available under the terms of *either* of the +licenses found in LICENSE.APACHE2 or LICENSE.MIT. Contributions to are +made under the terms of *both* these licenses. diff --git a/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/LICENSE.APACHE2 b/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/LICENSE.APACHE2 new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/LICENSE.APACHE2 @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/LICENSE.MIT b/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/LICENSE.MIT new file mode 100644 index 0000000..b8bb971 --- /dev/null +++ b/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/LICENSE.MIT @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/METADATA b/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/METADATA new file mode 100644 index 0000000..88968ae --- /dev/null +++ b/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/METADATA @@ -0,0 +1,104 @@ +Metadata-Version: 2.1 +Name: sniffio +Version: 1.3.1 +Summary: Sniff out which async library your code is running under +Author-email: "Nathaniel J. Smith" +License: MIT OR Apache-2.0 +Project-URL: Homepage, https://github.com/python-trio/sniffio +Project-URL: Documentation, https://sniffio.readthedocs.io/ +Project-URL: Changelog, https://sniffio.readthedocs.io/en/latest/history.html +Keywords: async,trio,asyncio +Classifier: License :: OSI Approved :: MIT License +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Framework :: Trio +Classifier: Framework :: AsyncIO +Classifier: Operating System :: POSIX :: Linux +Classifier: Operating System :: MacOS :: MacOS X +Classifier: Operating System :: Microsoft :: Windows +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Intended Audience :: Developers +Classifier: Development Status :: 5 - Production/Stable +Requires-Python: >=3.7 +Description-Content-Type: text/x-rst +License-File: LICENSE +License-File: LICENSE.APACHE2 +License-File: LICENSE.MIT + +.. image:: https://img.shields.io/badge/chat-join%20now-blue.svg + :target: https://gitter.im/python-trio/general + :alt: Join chatroom + +.. image:: https://img.shields.io/badge/docs-read%20now-blue.svg + :target: https://sniffio.readthedocs.io/en/latest/?badge=latest + :alt: Documentation Status + +.. image:: https://img.shields.io/pypi/v/sniffio.svg + :target: https://pypi.org/project/sniffio + :alt: Latest PyPi version + +.. image:: https://img.shields.io/conda/vn/conda-forge/sniffio.svg + :target: https://anaconda.org/conda-forge/sniffio + :alt: Latest conda-forge version + +.. image:: https://travis-ci.org/python-trio/sniffio.svg?branch=master + :target: https://travis-ci.org/python-trio/sniffio + :alt: Automated test status + +.. image:: https://codecov.io/gh/python-trio/sniffio/branch/master/graph/badge.svg + :target: https://codecov.io/gh/python-trio/sniffio + :alt: Test coverage + +================================================================= +sniffio: Sniff out which async library your code is running under +================================================================= + +You're writing a library. You've decided to be ambitious, and support +multiple async I/O packages, like `Trio +`__, and `asyncio +`__, and ... You've +written a bunch of clever code to handle all the differences. But... +how do you know *which* piece of clever code to run? + +This is a tiny package whose only purpose is to let you detect which +async library your code is running under. + +* Documentation: https://sniffio.readthedocs.io + +* Bug tracker and source code: https://github.com/python-trio/sniffio + +* License: MIT or Apache License 2.0, your choice + +* Contributor guide: https://trio.readthedocs.io/en/latest/contributing.html + +* Code of conduct: Contributors are requested to follow our `code of + conduct + `_ + in all project spaces. + +This library is maintained by the Trio project, as a service to the +async Python community as a whole. + + +Quickstart +---------- + +.. code-block:: python3 + + from sniffio import current_async_library + import trio + import asyncio + + async def print_library(): + library = current_async_library() + print("This is:", library) + + # Prints "This is trio" + trio.run(print_library) + + # Prints "This is asyncio" + asyncio.run(print_library()) + +For more details, including how to add support to new async libraries, +`please peruse our fine manual `__. diff --git a/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/RECORD b/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/RECORD new file mode 100644 index 0000000..5347d56 --- /dev/null +++ b/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/RECORD @@ -0,0 +1,19 @@ +sniffio-1.3.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +sniffio-1.3.1.dist-info/LICENSE,sha256=ZSyHhIjRRWNh4Iw_hgf9e6WYkqFBA9Fczk_5PIW1zIs,185 +sniffio-1.3.1.dist-info/LICENSE.APACHE2,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358 +sniffio-1.3.1.dist-info/LICENSE.MIT,sha256=Pm2uVV65J4f8gtHUg1Vnf0VMf2Wus40_nnK_mj2vA0s,1046 +sniffio-1.3.1.dist-info/METADATA,sha256=CzGLVwmO3sz1heYKiJprantcQIbzqapi7_dqHTzuEtk,3875 +sniffio-1.3.1.dist-info/RECORD,, +sniffio-1.3.1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92 +sniffio-1.3.1.dist-info/top_level.txt,sha256=v9UJXGs5CyddCVeAqXkQiWOrpp6Wtx6GeRrPt9-jjHg,8 +sniffio/__init__.py,sha256=9WJEJlXu7yluP0YtI5SQ9M9OTQfbNHkadarK1vXGDPM,335 +sniffio/__pycache__/__init__.cpython-311.pyc,, +sniffio/__pycache__/_impl.cpython-311.pyc,, +sniffio/__pycache__/_version.cpython-311.pyc,, +sniffio/_impl.py,sha256=UmUFMZpiuOrcjnuHhuYiYMxeCNWfqu9kBlaPf0xk6X8,2843 +sniffio/_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +sniffio/_tests/__pycache__/__init__.cpython-311.pyc,, +sniffio/_tests/__pycache__/test_sniffio.cpython-311.pyc,, +sniffio/_tests/test_sniffio.py,sha256=MMJZZJjQrUi95RANNM-a_55BZquA_gv4rHU1pevcTCM,2058 +sniffio/_version.py,sha256=iVes5xwsHeRzQDexBaAhyx_taNt2ucfA7CWAo4QDt6Q,89 +sniffio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/WHEEL b/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/WHEEL new file mode 100644 index 0000000..98c0d20 --- /dev/null +++ b/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.42.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/top_level.txt new file mode 100644 index 0000000..01c6502 --- /dev/null +++ b/venv/lib/python3.11/site-packages/sniffio-1.3.1.dist-info/top_level.txt @@ -0,0 +1 @@ +sniffio diff --git a/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/METADATA b/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/METADATA new file mode 100644 index 0000000..a11c62a --- /dev/null +++ b/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/METADATA @@ -0,0 +1,243 @@ +Metadata-Version: 2.4 +Name: SQLAlchemy +Version: 2.0.44 +Summary: Database Abstraction Library +Home-page: https://www.sqlalchemy.org +Author: Mike Bayer +Author-email: mike_mp@zzzcomputing.com +License: MIT +Project-URL: Documentation, https://docs.sqlalchemy.org +Project-URL: Issue Tracker, https://github.com/sqlalchemy/sqlalchemy/ +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Database :: Front-Ends +Requires-Python: >=3.7 +Description-Content-Type: text/x-rst +License-File: LICENSE +Requires-Dist: importlib-metadata; python_version < "3.8" +Requires-Dist: greenlet>=1; platform_machine == "aarch64" or (platform_machine == "ppc64le" or (platform_machine == "x86_64" or (platform_machine == "amd64" or (platform_machine == "AMD64" or (platform_machine == "win32" or platform_machine == "WIN32"))))) +Requires-Dist: typing-extensions>=4.6.0 +Provides-Extra: asyncio +Requires-Dist: greenlet>=1; extra == "asyncio" +Provides-Extra: mypy +Requires-Dist: mypy>=0.910; extra == "mypy" +Provides-Extra: mssql +Requires-Dist: pyodbc; extra == "mssql" +Provides-Extra: mssql-pymssql +Requires-Dist: pymssql; extra == "mssql-pymssql" +Provides-Extra: mssql-pyodbc +Requires-Dist: pyodbc; extra == "mssql-pyodbc" +Provides-Extra: mysql +Requires-Dist: mysqlclient>=1.4.0; extra == "mysql" +Provides-Extra: mysql-connector +Requires-Dist: mysql-connector-python; extra == "mysql-connector" +Provides-Extra: mariadb-connector +Requires-Dist: mariadb!=1.1.10,!=1.1.2,!=1.1.5,>=1.0.1; extra == "mariadb-connector" +Provides-Extra: oracle +Requires-Dist: cx_oracle>=8; extra == "oracle" +Provides-Extra: oracle-oracledb +Requires-Dist: oracledb>=1.0.1; extra == "oracle-oracledb" +Provides-Extra: postgresql +Requires-Dist: psycopg2>=2.7; extra == "postgresql" +Provides-Extra: postgresql-pg8000 +Requires-Dist: pg8000>=1.29.1; extra == "postgresql-pg8000" +Provides-Extra: postgresql-asyncpg +Requires-Dist: greenlet>=1; extra == "postgresql-asyncpg" +Requires-Dist: asyncpg; extra == "postgresql-asyncpg" +Provides-Extra: postgresql-psycopg2binary +Requires-Dist: psycopg2-binary; extra == "postgresql-psycopg2binary" +Provides-Extra: postgresql-psycopg2cffi +Requires-Dist: psycopg2cffi; extra == "postgresql-psycopg2cffi" +Provides-Extra: postgresql-psycopg +Requires-Dist: psycopg>=3.0.7; extra == "postgresql-psycopg" +Provides-Extra: postgresql-psycopgbinary +Requires-Dist: psycopg[binary]>=3.0.7; extra == "postgresql-psycopgbinary" +Provides-Extra: pymysql +Requires-Dist: pymysql; extra == "pymysql" +Provides-Extra: aiomysql +Requires-Dist: greenlet>=1; extra == "aiomysql" +Requires-Dist: aiomysql>=0.2.0; extra == "aiomysql" +Provides-Extra: aioodbc +Requires-Dist: greenlet>=1; extra == "aioodbc" +Requires-Dist: aioodbc; extra == "aioodbc" +Provides-Extra: asyncmy +Requires-Dist: greenlet>=1; extra == "asyncmy" +Requires-Dist: asyncmy!=0.2.4,!=0.2.6,>=0.2.3; extra == "asyncmy" +Provides-Extra: aiosqlite +Requires-Dist: greenlet>=1; extra == "aiosqlite" +Requires-Dist: aiosqlite; extra == "aiosqlite" +Requires-Dist: typing_extensions!=3.10.0.1; extra == "aiosqlite" +Provides-Extra: sqlcipher +Requires-Dist: sqlcipher3_binary; extra == "sqlcipher" +Dynamic: license-file + +SQLAlchemy +========== + +|PyPI| |Python| |Downloads| + +.. |PyPI| image:: https://img.shields.io/pypi/v/sqlalchemy + :target: https://pypi.org/project/sqlalchemy + :alt: PyPI + +.. |Python| image:: https://img.shields.io/pypi/pyversions/sqlalchemy + :target: https://pypi.org/project/sqlalchemy + :alt: PyPI - Python Version + +.. |Downloads| image:: https://static.pepy.tech/badge/sqlalchemy/month + :target: https://pepy.tech/project/sqlalchemy + :alt: PyPI - Downloads + + +The Python SQL Toolkit and Object Relational Mapper + +Introduction +------------- + +SQLAlchemy is the Python SQL toolkit and Object Relational Mapper +that gives application developers the full power and +flexibility of SQL. SQLAlchemy provides a full suite +of well known enterprise-level persistence patterns, +designed for efficient and high-performing database +access, adapted into a simple and Pythonic domain +language. + +Major SQLAlchemy features include: + +* An industrial strength ORM, built + from the core on the identity map, unit of work, + and data mapper patterns. These patterns + allow transparent persistence of objects + using a declarative configuration system. + Domain models + can be constructed and manipulated naturally, + and changes are synchronized with the + current transaction automatically. +* A relationally-oriented query system, exposing + the full range of SQL's capabilities + explicitly, including joins, subqueries, + correlation, and most everything else, + in terms of the object model. + Writing queries with the ORM uses the same + techniques of relational composition you use + when writing SQL. While you can drop into + literal SQL at any time, it's virtually never + needed. +* A comprehensive and flexible system + of eager loading for related collections and objects. + Collections are cached within a session, + and can be loaded on individual access, all + at once using joins, or by query per collection + across the full result set. +* A Core SQL construction system and DBAPI + interaction layer. The SQLAlchemy Core is + separate from the ORM and is a full database + abstraction layer in its own right, and includes + an extensible Python-based SQL expression + language, schema metadata, connection pooling, + type coercion, and custom types. +* All primary and foreign key constraints are + assumed to be composite and natural. Surrogate + integer primary keys are of course still the + norm, but SQLAlchemy never assumes or hardcodes + to this model. +* Database introspection and generation. Database + schemas can be "reflected" in one step into + Python structures representing database metadata; + those same structures can then generate + CREATE statements right back out - all within + the Core, independent of the ORM. + +SQLAlchemy's philosophy: + +* SQL databases behave less and less like object + collections the more size and performance start to + matter; object collections behave less and less like + tables and rows the more abstraction starts to matter. + SQLAlchemy aims to accommodate both of these + principles. +* An ORM doesn't need to hide the "R". A relational + database provides rich, set-based functionality + that should be fully exposed. SQLAlchemy's + ORM provides an open-ended set of patterns + that allow a developer to construct a custom + mediation layer between a domain model and + a relational schema, turning the so-called + "object relational impedance" issue into + a distant memory. +* The developer, in all cases, makes all decisions + regarding the design, structure, and naming conventions + of both the object model as well as the relational + schema. SQLAlchemy only provides the means + to automate the execution of these decisions. +* With SQLAlchemy, there's no such thing as + "the ORM generated a bad query" - you + retain full control over the structure of + queries, including how joins are organized, + how subqueries and correlation is used, what + columns are requested. Everything SQLAlchemy + does is ultimately the result of a developer-initiated + decision. +* Don't use an ORM if the problem doesn't need one. + SQLAlchemy consists of a Core and separate ORM + component. The Core offers a full SQL expression + language that allows Pythonic construction + of SQL constructs that render directly to SQL + strings for a target database, returning + result sets that are essentially enhanced DBAPI + cursors. +* Transactions should be the norm. With SQLAlchemy's + ORM, nothing goes to permanent storage until + commit() is called. SQLAlchemy encourages applications + to create a consistent means of delineating + the start and end of a series of operations. +* Never render a literal value in a SQL statement. + Bound parameters are used to the greatest degree + possible, allowing query optimizers to cache + query plans effectively and making SQL injection + attacks a non-issue. + +Documentation +------------- + +Latest documentation is at: + +https://www.sqlalchemy.org/docs/ + +Installation / Requirements +--------------------------- + +Full documentation for installation is at +`Installation `_. + +Getting Help / Development / Bug reporting +------------------------------------------ + +Please refer to the `SQLAlchemy Community Guide `_. + +Code of Conduct +--------------- + +Above all, SQLAlchemy places great emphasis on polite, thoughtful, and +constructive communication between users and developers. +Please see our current Code of Conduct at +`Code of Conduct `_. + +License +------- + +SQLAlchemy is distributed under the `MIT license +`_. + diff --git a/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/RECORD b/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/RECORD new file mode 100644 index 0000000..f2cf590 --- /dev/null +++ b/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/RECORD @@ -0,0 +1,532 @@ +sqlalchemy-2.0.44.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +sqlalchemy-2.0.44.dist-info/METADATA,sha256=5i0Vw08ZPOOu7xrG_G4uSM62FgSenaiV3JAn1J2_lR8,9547 +sqlalchemy-2.0.44.dist-info/RECORD,, +sqlalchemy-2.0.44.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +sqlalchemy-2.0.44.dist-info/WHEEL,sha256=_CFvICYDmZlAYHt8L7Zn3n-BGLj8dkZLQPp22Piy5JE,151 +sqlalchemy-2.0.44.dist-info/licenses/LICENSE,sha256=mCFyC1jUpWW2EyEAeorUOraZGjlZ5mzV203Z6uacffw,1100 +sqlalchemy-2.0.44.dist-info/top_level.txt,sha256=rp-ZgB7D8G11ivXON5VGPjupT1voYmWqkciDt5Uaw_Q,11 +sqlalchemy/__init__.py,sha256=wmYjlHig7rjeBp7HFRCxNNBOkHIbeM_wZWQUdfB66Z0,12659 +sqlalchemy/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/__pycache__/events.cpython-311.pyc,, +sqlalchemy/__pycache__/exc.cpython-311.pyc,, +sqlalchemy/__pycache__/inspection.cpython-311.pyc,, +sqlalchemy/__pycache__/log.cpython-311.pyc,, +sqlalchemy/__pycache__/schema.cpython-311.pyc,, +sqlalchemy/__pycache__/types.cpython-311.pyc,, +sqlalchemy/connectors/__init__.py,sha256=YeSHsOB0YhdM6jZUvHFQFwKqNXO02MlklmGW0yCywjI,476 +sqlalchemy/connectors/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/connectors/__pycache__/aioodbc.cpython-311.pyc,, +sqlalchemy/connectors/__pycache__/asyncio.cpython-311.pyc,, +sqlalchemy/connectors/__pycache__/pyodbc.cpython-311.pyc,, +sqlalchemy/connectors/aioodbc.py,sha256=-OKbnvR-kLCKHyrOIBkAZwTASAbQZ5qmrozm0dwbtNE,5577 +sqlalchemy/connectors/asyncio.py,sha256=tcjJ-azCTrizebEzSsEQK7Qm_OpUHyGw94k9Vin7Yy0,13058 +sqlalchemy/connectors/pyodbc.py,sha256=ZGWBmYYYVgqUHjex3d_lYHZyAhQJGowp9cWGYnj1200,8618 +sqlalchemy/cyextension/__init__.py,sha256=4npVIjitKfUs0NQ6f3UdQBDq4ipJ0_ZNB2mpKqtc5ik,244 +sqlalchemy/cyextension/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/cyextension/collections.cpython-311-x86_64-linux-gnu.so,sha256=jnVKRK1HgMcq4oPdXUynk10W27u5QN3OsNzy17T_K04,2164464 +sqlalchemy/cyextension/collections.pyx,sha256=L7DZ3DGKpgw2MT2ZZRRxCnrcyE5pU1NAFowWgAzQPEc,12571 +sqlalchemy/cyextension/immutabledict.cpython-311-x86_64-linux-gnu.so,sha256=ehL16PbgU6iTaRPjLP1NhbkU-jJmKyIz3VDT7n5qLVA,729744 +sqlalchemy/cyextension/immutabledict.pxd,sha256=3x3-rXG5eRQ7bBnktZ-OJ9-6ft8zToPmTDOd92iXpB0,291 +sqlalchemy/cyextension/immutabledict.pyx,sha256=KfDTYbTfebstE8xuqAtuXsHNAK0_b5q_ymUiinUe_xs,3535 +sqlalchemy/cyextension/processors.cpython-311-x86_64-linux-gnu.so,sha256=v8iFAkJwG8YkrR9YVbJC7cJVcPyjUXfmRBFw4ahSyqM,590120 +sqlalchemy/cyextension/processors.pyx,sha256=R1rHsGLEaGeBq5VeCydjClzYlivERIJ9B-XLOJlf2MQ,1792 +sqlalchemy/cyextension/resultproxy.cpython-311-x86_64-linux-gnu.so,sha256=OCtfUBhMV9gn9foWYnKRt6Naf5zQhzEJEJ6xFsKZKbc,595784 +sqlalchemy/cyextension/resultproxy.pyx,sha256=eWLdyBXiBy_CLQrF5ScfWJm7X0NeelscSXedtj1zv9Q,2725 +sqlalchemy/cyextension/util.cpython-311-x86_64-linux-gnu.so,sha256=KwANvZLyRc0JjHSyOqdWITsIWhedEsglbdBDhwyKb9Q,906624 +sqlalchemy/cyextension/util.pyx,sha256=Tt5VwTUtO3YKQK2PHfYOLhV2Jr5GMRJcp2DzH4fjGOs,2569 +sqlalchemy/dialects/__init__.py,sha256=oOkVOr98g-6jxaUXld8szIgxkXMBae5IPfAzBrcpLaw,1798 +sqlalchemy/dialects/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/dialects/__pycache__/_typing.cpython-311.pyc,, +sqlalchemy/dialects/_typing.py,sha256=8YwrkOa8IvmBojwwegbL5mL_0UAuzdqYiKHKANpvHMw,971 +sqlalchemy/dialects/mssql/__init__.py,sha256=6t_aNpgbMLdPE9gpHYTf9o6QfVavncztRLbr21l2NaY,1880 +sqlalchemy/dialects/mssql/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/dialects/mssql/__pycache__/aioodbc.cpython-311.pyc,, +sqlalchemy/dialects/mssql/__pycache__/base.cpython-311.pyc,, +sqlalchemy/dialects/mssql/__pycache__/information_schema.cpython-311.pyc,, +sqlalchemy/dialects/mssql/__pycache__/json.cpython-311.pyc,, +sqlalchemy/dialects/mssql/__pycache__/provision.cpython-311.pyc,, +sqlalchemy/dialects/mssql/__pycache__/pymssql.cpython-311.pyc,, +sqlalchemy/dialects/mssql/__pycache__/pyodbc.cpython-311.pyc,, +sqlalchemy/dialects/mssql/aioodbc.py,sha256=4CmhwIkZrabpG-r7_ogRVajD-nhRZSFJ0Swz2d0jIHM,2021 +sqlalchemy/dialects/mssql/base.py,sha256=u0auYPbr60eRK3ZWdo2whp4XWNOMV5HWcKmh2bHX2WQ,134119 +sqlalchemy/dialects/mssql/information_schema.py,sha256=CDNPC1ZDjj-DumMgzZdm1oNY6FiO-_Fn2DWJuPVnni0,8963 +sqlalchemy/dialects/mssql/json.py,sha256=F53pibuOVRzgDtjoclOI7LnkKXNVsaVfJyBH1XAhyDo,4756 +sqlalchemy/dialects/mssql/provision.py,sha256=P1tqxZ4f6Oeqn2gNi7dXl82LRLCg1-OB4eWiZc6CHek,5593 +sqlalchemy/dialects/mssql/pymssql.py,sha256=C7yAs3Pw81W1KTVNc6_0sHQuYlJ5iH82vKByY4TkB1g,4097 +sqlalchemy/dialects/mssql/pyodbc.py,sha256=CnO7KDWxbxb7AoZhp_PMDBvVSMuzwq1h4Cav2IWFWDo,27173 +sqlalchemy/dialects/mysql/__init__.py,sha256=ropOMUWrAcL-Q7h-9jQ_tb3ISAFIsNRQ8YVXvn0URl0,2206 +sqlalchemy/dialects/mysql/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/dialects/mysql/__pycache__/aiomysql.cpython-311.pyc,, +sqlalchemy/dialects/mysql/__pycache__/asyncmy.cpython-311.pyc,, +sqlalchemy/dialects/mysql/__pycache__/base.cpython-311.pyc,, +sqlalchemy/dialects/mysql/__pycache__/cymysql.cpython-311.pyc,, +sqlalchemy/dialects/mysql/__pycache__/dml.cpython-311.pyc,, +sqlalchemy/dialects/mysql/__pycache__/enumerated.cpython-311.pyc,, +sqlalchemy/dialects/mysql/__pycache__/expression.cpython-311.pyc,, +sqlalchemy/dialects/mysql/__pycache__/json.cpython-311.pyc,, +sqlalchemy/dialects/mysql/__pycache__/mariadb.cpython-311.pyc,, +sqlalchemy/dialects/mysql/__pycache__/mariadbconnector.cpython-311.pyc,, +sqlalchemy/dialects/mysql/__pycache__/mysqlconnector.cpython-311.pyc,, +sqlalchemy/dialects/mysql/__pycache__/mysqldb.cpython-311.pyc,, +sqlalchemy/dialects/mysql/__pycache__/provision.cpython-311.pyc,, +sqlalchemy/dialects/mysql/__pycache__/pymysql.cpython-311.pyc,, +sqlalchemy/dialects/mysql/__pycache__/pyodbc.cpython-311.pyc,, +sqlalchemy/dialects/mysql/__pycache__/reflection.cpython-311.pyc,, +sqlalchemy/dialects/mysql/__pycache__/reserved_words.cpython-311.pyc,, +sqlalchemy/dialects/mysql/__pycache__/types.cpython-311.pyc,, +sqlalchemy/dialects/mysql/aiomysql.py,sha256=b33sq1MLkxt7PX2v_6grpYXGchfFlbkfeOL7JmFTe5k,7927 +sqlalchemy/dialects/mysql/asyncmy.py,sha256=y_4RpvbVitLOAKgEkdnLUcRP1NjWNA0G7dwlawLCwbw,7292 +sqlalchemy/dialects/mysql/base.py,sha256=V2CE2XB6eiFG3doNdzH3NZPhgXgt3OL7QN8F3dg_9Pg,137763 +sqlalchemy/dialects/mysql/cymysql.py,sha256=ihH4kZ273nvf0R0p8keD71ZIaTXRHyZePXMlobwgbpI,3215 +sqlalchemy/dialects/mysql/dml.py,sha256=VjnTobe_SBNF2RN6tvqa5LOn-9x4teVUyzUedZkOmdc,7768 +sqlalchemy/dialects/mysql/enumerated.py,sha256=si2hGv5jMNGS78n_JDgswIhbBZuTqjwbxjiWg5ZUdy4,10292 +sqlalchemy/dialects/mysql/expression.py,sha256=C8LhU-CM6agqKCS1tl1_ChSqwZbqt3zP_dSGBqgBgLg,4241 +sqlalchemy/dialects/mysql/json.py,sha256=ckYT_lihvqr28iHJTUUwvPPUIoYVLL_wUXWFDTCna_M,2806 +sqlalchemy/dialects/mysql/mariadb.py,sha256=yaiZnnbjfrBqHm1ykaRSFYKrrYUqu-GBYvt97EGYSzs,1886 +sqlalchemy/dialects/mysql/mariadbconnector.py,sha256=lJuS3euMlVBbJDJ10ntqe3TnrjzneLEUlE8sLZl6Qoc,10385 +sqlalchemy/dialects/mysql/mysqlconnector.py,sha256=aaAiF32rQVoLNVIdgGKHMsnMei--0ig3OqmhWq45MrA,10097 +sqlalchemy/dialects/mysql/mysqldb.py,sha256=8wIxcxQxT-X6nywLJkjg9_JdIKGYOhlrtVL8lP_WFcM,9943 +sqlalchemy/dialects/mysql/provision.py,sha256=MaQ9eeHnRL4EXAebIInwarCIiDbYcz_sMCss3wyV12Q,3717 +sqlalchemy/dialects/mysql/pymysql.py,sha256=Qlc9XToIqAfHz0c_ODs97uk1TlV1ZrEl_TidTjoeByU,4886 +sqlalchemy/dialects/mysql/pyodbc.py,sha256=v-Zo4M7blxdff--KJiIantCwbPO6H-GBkNCTN4nBgU4,5111 +sqlalchemy/dialects/mysql/reflection.py,sha256=CBxBiv1mCLLNHz-I8hgJKACTF3K0eYEpWd0ndCBCq5I,24690 +sqlalchemy/dialects/mysql/reserved_words.py,sha256=iG6zb78sn-RdqWQRk2F_Tuufk5tUodkcoHbxTdgZYkw,9236 +sqlalchemy/dialects/mysql/types.py,sha256=lAkkNRVPBHP8H7AQQ7NykfJ8YxgdUDAHkfd7qD-Lwvo,26459 +sqlalchemy/dialects/oracle/__init__.py,sha256=5qrJcFTF3vgB9B4PkwBJj3iXE7P57LdaHNkxMa1NXug,1898 +sqlalchemy/dialects/oracle/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/dialects/oracle/__pycache__/base.cpython-311.pyc,, +sqlalchemy/dialects/oracle/__pycache__/cx_oracle.cpython-311.pyc,, +sqlalchemy/dialects/oracle/__pycache__/dictionary.cpython-311.pyc,, +sqlalchemy/dialects/oracle/__pycache__/oracledb.cpython-311.pyc,, +sqlalchemy/dialects/oracle/__pycache__/provision.cpython-311.pyc,, +sqlalchemy/dialects/oracle/__pycache__/types.cpython-311.pyc,, +sqlalchemy/dialects/oracle/__pycache__/vector.cpython-311.pyc,, +sqlalchemy/dialects/oracle/base.py,sha256=zEl885-lRs07FGdWFuSzBfa1FqrUPT7l2wpcBr9joIs,139156 +sqlalchemy/dialects/oracle/cx_oracle.py,sha256=mYrXD0nJzuTY1h878b50fNXIUBgjc9Q1LJjjY1VHx3w,56717 +sqlalchemy/dialects/oracle/dictionary.py,sha256=J7tGVE0KyUPZKpPLOary3HdDq1DWd29arF5udLgv8_o,19519 +sqlalchemy/dialects/oracle/oracledb.py,sha256=Akoz130NxGzIrxGAsuuRl8QnmvIineoytHvTXDE2vP0,33736 +sqlalchemy/dialects/oracle/provision.py,sha256=ga1gNQZlXZKk7DYuYegllUejJxZXRKDGa7dbi_S_poc,8313 +sqlalchemy/dialects/oracle/types.py,sha256=axN6Yidx9tGRIUAbDpBrhMWXE-C8jSllFpTghpGOOzU,9058 +sqlalchemy/dialects/oracle/vector.py,sha256=YtN7E5TbDIQR2FCICaSeeaOnvzHP_O0mXNq1gk02S4Q,10874 +sqlalchemy/dialects/postgresql/__init__.py,sha256=kD8W-SV5e2CesvWg2MQAtncXuZFwGPfR_UODvmRXE08,3892 +sqlalchemy/dialects/postgresql/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/__pycache__/_psycopg_common.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/__pycache__/array.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/__pycache__/asyncpg.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/__pycache__/base.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/__pycache__/dml.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/__pycache__/ext.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/__pycache__/hstore.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/__pycache__/json.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/__pycache__/named_types.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/__pycache__/operators.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/__pycache__/pg8000.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/__pycache__/pg_catalog.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/__pycache__/provision.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/__pycache__/psycopg.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/__pycache__/psycopg2.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/__pycache__/psycopg2cffi.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/__pycache__/ranges.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/__pycache__/types.cpython-311.pyc,, +sqlalchemy/dialects/postgresql/_psycopg_common.py,sha256=h4JmkHWxy_Nspn6Bi9YKpa9l0OkwInwQzYKue-fJnVA,5783 +sqlalchemy/dialects/postgresql/array.py,sha256=l2_KCBnf7ZALwEGsMfhhVUYVe1FlIufc0optdv97pO0,17279 +sqlalchemy/dialects/postgresql/asyncpg.py,sha256=SEalnEBX2gpqTWOuHZ0VABuW9kCiNwPo7mJdJxlLH1E,40977 +sqlalchemy/dialects/postgresql/base.py,sha256=RDuehOZL3hLPhq4_7G-91BgAM9LeToHiiIU-RjFGVmU,186421 +sqlalchemy/dialects/postgresql/dml.py,sha256=2SmyMeYveAgm7OnT_CJvwad2nh8BP37yT6gFs8dBYN8,12126 +sqlalchemy/dialects/postgresql/ext.py,sha256=voxpAz-zoCOO-fjpCzrw7UASzNIvdz2u4kFSuGcshlI,17347 +sqlalchemy/dialects/postgresql/hstore.py,sha256=wR4gmvfQWPssHwYTXEsPJTb4LkBS6x4e4XXE6smtDH4,11934 +sqlalchemy/dialects/postgresql/json.py,sha256=PtDqxFkMleCnm5zVxsQKBvR2J7stPUpf7reirtU2O0s,14315 +sqlalchemy/dialects/postgresql/named_types.py,sha256=D1WFTcxE-PKYRaB75gWvnAvpgGJRTcFkW9nSGpC4WCo,17812 +sqlalchemy/dialects/postgresql/operators.py,sha256=ay3ckNsWtqDjxDseTdKMGGqYVzST6lmfhbbYHG_bxCw,2808 +sqlalchemy/dialects/postgresql/pg8000.py,sha256=r6Lg5tgwuf4FE_RA_kHcfHPW5GXUdNWWr3E846Z4aI0,18743 +sqlalchemy/dialects/postgresql/pg_catalog.py,sha256=wnzFm9S0JFag1TBdySDJH3VOFSkJWmwAjVcIAQ25jHg,9999 +sqlalchemy/dialects/postgresql/provision.py,sha256=7pg9-nOnaK5XBzqByXNPuvi3rxtnRa3dJxdSPVq4eeA,5770 +sqlalchemy/dialects/postgresql/psycopg.py,sha256=XHE6sA_neg-PLZqXWSnlAEQ1mrX8y909Cb0YS3ZOxzw,23389 +sqlalchemy/dialects/postgresql/psycopg2.py,sha256=1KXw9RzsQEAXJazCBywdP5CwLu-HsCSDAD_Khc_rPTM,32032 +sqlalchemy/dialects/postgresql/psycopg2cffi.py,sha256=nKilJfvO9mJwk5NRw5iZDekKY5vi379tvdUJ2vn5eyQ,1756 +sqlalchemy/dialects/postgresql/ranges.py,sha256=rsvhfZ63OVtHHeBDXb_6hULg0HkVx18hkChfoznlhcg,32946 +sqlalchemy/dialects/postgresql/types.py,sha256=oKhDsFiITKbZcCP66L3dhif54pmsFvVfv-MZQWA3sYo,7629 +sqlalchemy/dialects/sqlite/__init__.py,sha256=6Xcz3nPsl8lqCcZ4-VzPRmkMrkKgAp2buKsClZelU7c,1182 +sqlalchemy/dialects/sqlite/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/dialects/sqlite/__pycache__/aiosqlite.cpython-311.pyc,, +sqlalchemy/dialects/sqlite/__pycache__/base.cpython-311.pyc,, +sqlalchemy/dialects/sqlite/__pycache__/dml.cpython-311.pyc,, +sqlalchemy/dialects/sqlite/__pycache__/json.cpython-311.pyc,, +sqlalchemy/dialects/sqlite/__pycache__/provision.cpython-311.pyc,, +sqlalchemy/dialects/sqlite/__pycache__/pysqlcipher.cpython-311.pyc,, +sqlalchemy/dialects/sqlite/__pycache__/pysqlite.cpython-311.pyc,, +sqlalchemy/dialects/sqlite/aiosqlite.py,sha256=vvpx1KsFEcygAMi6esNxTp5VVqaKKeY4rIo1lM_EqKU,14682 +sqlalchemy/dialects/sqlite/base.py,sha256=OLpQu2q77KsOLXu7msnVc4TzwGsn2OczjZ9PEvMedFA,103795 +sqlalchemy/dialects/sqlite/dml.py,sha256=4N8qh06RuMphLoQgWw7wv5nXIrka57jIFvK2x9xTZqg,9138 +sqlalchemy/dialects/sqlite/json.py,sha256=A62xPyLRZxl2hvgTMM92jd_7jlw9UE_4Y6Udqt-8g04,2777 +sqlalchemy/dialects/sqlite/provision.py,sha256=VhqDjDALqxKQY_3Z3hjzkmPQJ-vtk2Dkk1A4qLTs-G8,5596 +sqlalchemy/dialects/sqlite/pysqlcipher.py,sha256=di8rYryfL0KAn3pRGepmunHyIRGy-4Hhr-2q_ehPzss,5371 +sqlalchemy/dialects/sqlite/pysqlite.py,sha256=AJl9z7zCoz59FxQm2_a3PANNlW4fen9gmnogNB77XKc,27792 +sqlalchemy/dialects/type_migration_guidelines.txt,sha256=-uHNdmYFGB7bzUNT6i8M5nb4j6j9YUKAtW4lcBZqsMg,8239 +sqlalchemy/engine/__init__.py,sha256=EF4haWCPu95WtWx1GzcHRJ_bBmtJMznno3I2TQ-ZIHE,2818 +sqlalchemy/engine/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/engine/__pycache__/_py_processors.cpython-311.pyc,, +sqlalchemy/engine/__pycache__/_py_row.cpython-311.pyc,, +sqlalchemy/engine/__pycache__/_py_util.cpython-311.pyc,, +sqlalchemy/engine/__pycache__/base.cpython-311.pyc,, +sqlalchemy/engine/__pycache__/characteristics.cpython-311.pyc,, +sqlalchemy/engine/__pycache__/create.cpython-311.pyc,, +sqlalchemy/engine/__pycache__/cursor.cpython-311.pyc,, +sqlalchemy/engine/__pycache__/default.cpython-311.pyc,, +sqlalchemy/engine/__pycache__/events.cpython-311.pyc,, +sqlalchemy/engine/__pycache__/interfaces.cpython-311.pyc,, +sqlalchemy/engine/__pycache__/mock.cpython-311.pyc,, +sqlalchemy/engine/__pycache__/processors.cpython-311.pyc,, +sqlalchemy/engine/__pycache__/reflection.cpython-311.pyc,, +sqlalchemy/engine/__pycache__/result.cpython-311.pyc,, +sqlalchemy/engine/__pycache__/row.cpython-311.pyc,, +sqlalchemy/engine/__pycache__/strategies.cpython-311.pyc,, +sqlalchemy/engine/__pycache__/url.cpython-311.pyc,, +sqlalchemy/engine/__pycache__/util.cpython-311.pyc,, +sqlalchemy/engine/_py_processors.py,sha256=7QxgkVOd5h1Qd22qFh-pPZdM7RBRzNjj8lWAMWrilcI,3744 +sqlalchemy/engine/_py_row.py,sha256=yNdrZe36yw6mO7x0OEbG0dGojH7CQkNReIwn9LMUPUs,3787 +sqlalchemy/engine/_py_util.py,sha256=Nvd4pVdXRs89khRevK-Ux4Y9p2f2vnALboNrSwhqS1U,2465 +sqlalchemy/engine/base.py,sha256=aNp2tGNBWlBz2pHiOveJ3PeaJRDJlLknekUQ50MJDjU,123090 +sqlalchemy/engine/characteristics.py,sha256=PepmGApo1sL01dS1qtSbmHplu9ZCdtuSegiGI7L7NZY,4765 +sqlalchemy/engine/create.py,sha256=uIAiU-ANj7fk_6A3dbJw_SEU8Qfd0_YF8yEHGxD0r1g,33847 +sqlalchemy/engine/cursor.py,sha256=63KLS-IKKAYh2uADJytpT1i9-qpG9E0iVBIcKTtKkwI,76567 +sqlalchemy/engine/default.py,sha256=PpySUqbAliGjw80ZxhDdZwyiFEMCpNPcC1XmyJynyEE,85721 +sqlalchemy/engine/events.py,sha256=4_e6Ip32ar2Eb27R4ipamiKC-7Tpg4lVz3txabhT5Rc,37400 +sqlalchemy/engine/interfaces.py,sha256=fNGMov1byIOkPxh7dJervp-UUNyHHm3jpIB0HrCMucc,115119 +sqlalchemy/engine/mock.py,sha256=L07bSIkgEbIkih-pYvFWh7k7adHVp5tBFBekKlD7GHs,4156 +sqlalchemy/engine/processors.py,sha256=XK32bULBkuVVRa703u4-SrTCDi_a18Dxq1M09QFBEPw,2379 +sqlalchemy/engine/reflection.py,sha256=QNOAXvKtdzVddpbkMOyM380y3olKdJKQkmF0Bfwia-Q,75565 +sqlalchemy/engine/result.py,sha256=46J3rP0ZwDwsqU-4CAaEHXTpx8OqCEP9Dy4LQwtHUEg,77805 +sqlalchemy/engine/row.py,sha256=BPtAwsceiRxB9ANpDNM24uQ1M_Zs0xFkSXoKR_I8xyY,12031 +sqlalchemy/engine/strategies.py,sha256=3DixBdeTa824XjuID2o7UxIyg7GyNwdBI8hOOT0SQnc,439 +sqlalchemy/engine/url.py,sha256=GJfZo0KtbMtkOIHBPI_KcKASsyrI5UYkX-UoN62FQxc,31067 +sqlalchemy/engine/util.py,sha256=4OmXwFlmnq6_vBlfUBHnz5LrI_8bT3TwgynX4wcJfnw,5682 +sqlalchemy/event/__init__.py,sha256=WpEdt3ZLP23p1ufl0TyV0GN9TP9w9thIEWBpBZbBTNQ,1066 +sqlalchemy/event/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/event/__pycache__/api.cpython-311.pyc,, +sqlalchemy/event/__pycache__/attr.cpython-311.pyc,, +sqlalchemy/event/__pycache__/base.cpython-311.pyc,, +sqlalchemy/event/__pycache__/legacy.cpython-311.pyc,, +sqlalchemy/event/__pycache__/registry.cpython-311.pyc,, +sqlalchemy/event/api.py,sha256=x-VlMFJXzubD6fuB4VRTTeAJeeQNUZ5jHZXD1aL0Qkg,8109 +sqlalchemy/event/attr.py,sha256=WeGlNUKsCuEPbxq8cPMbLGnwzHhaILIsL9hy55ErW6g,21589 +sqlalchemy/event/base.py,sha256=g5eRGX4e949srBK2gUxLYM0RrDUdtUEPS2FT_9IKZeI,15254 +sqlalchemy/event/legacy.py,sha256=mAOrlQ7PrGZhdbj1Im9xRBAepFe5IzscbRCwD27ld_Q,8457 +sqlalchemy/event/registry.py,sha256=MNEMyR8HZhzQFgxk4Jk_Em6nXTihmGXiSIwPdUnalPM,11144 +sqlalchemy/events.py,sha256=VBRvtckn9JS3tfUfi6UstqUrvQ15J2xamcDByFysIrI,525 +sqlalchemy/exc.py,sha256=AjFBCrOl_V4vQdGegn72Y951RSRMPL6T5qjxnFTGFbM,23978 +sqlalchemy/ext/__init__.py,sha256=BkTNuOg454MpCY9QA3FLK8td7KQhD1W74fOEXxnWibE,322 +sqlalchemy/ext/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/ext/__pycache__/associationproxy.cpython-311.pyc,, +sqlalchemy/ext/__pycache__/automap.cpython-311.pyc,, +sqlalchemy/ext/__pycache__/baked.cpython-311.pyc,, +sqlalchemy/ext/__pycache__/compiler.cpython-311.pyc,, +sqlalchemy/ext/__pycache__/horizontal_shard.cpython-311.pyc,, +sqlalchemy/ext/__pycache__/hybrid.cpython-311.pyc,, +sqlalchemy/ext/__pycache__/indexable.cpython-311.pyc,, +sqlalchemy/ext/__pycache__/instrumentation.cpython-311.pyc,, +sqlalchemy/ext/__pycache__/mutable.cpython-311.pyc,, +sqlalchemy/ext/__pycache__/orderinglist.cpython-311.pyc,, +sqlalchemy/ext/__pycache__/serializer.cpython-311.pyc,, +sqlalchemy/ext/associationproxy.py,sha256=QAo0GssILBua9wRNT3gajwZMEct3KCCu-gWVtAG-MA0,66442 +sqlalchemy/ext/asyncio/__init__.py,sha256=kTIfpwsHWhqZ-VMOBZFBq66kt1XeF0hNuwOToEDe4_Y,1317 +sqlalchemy/ext/asyncio/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/ext/asyncio/__pycache__/base.cpython-311.pyc,, +sqlalchemy/ext/asyncio/__pycache__/engine.cpython-311.pyc,, +sqlalchemy/ext/asyncio/__pycache__/exc.cpython-311.pyc,, +sqlalchemy/ext/asyncio/__pycache__/result.cpython-311.pyc,, +sqlalchemy/ext/asyncio/__pycache__/scoping.cpython-311.pyc,, +sqlalchemy/ext/asyncio/__pycache__/session.cpython-311.pyc,, +sqlalchemy/ext/asyncio/base.py,sha256=40VvRDZqVW_WQ1o-CRaB4c8Zx37rmiLGfQm4PNXWwdQ,9033 +sqlalchemy/ext/asyncio/engine.py,sha256=694-TJEy6jwGUOd7GFIvHfmlihvVvC_Ah3_k2o1BTiw,48481 +sqlalchemy/ext/asyncio/exc.py,sha256=npijuILDXH2p4Q5RzhHzutKwZ5CjtqTcP-U0h9TZUmk,639 +sqlalchemy/ext/asyncio/result.py,sha256=SOK74V-CEUA6ahn-zUCYsLLCYaGZaJiSvO4R2gz0_S8,30659 +sqlalchemy/ext/asyncio/scoping.py,sha256=wcOE6tUNKDIdHZb3INwke2L4OJvilcUft0q-2M4Bag8,52086 +sqlalchemy/ext/asyncio/session.py,sha256=Ge0rzdSK9V9RddRQc2bSjAhuxX8T2zv0GUdbURgMpRo,63259 +sqlalchemy/ext/automap.py,sha256=n88mktqvExwjqfsDu3yLIA4wbOIWUpQ1S35Uw3X6ffQ,61675 +sqlalchemy/ext/baked.py,sha256=w3SeRoqnPkIhPL2nRAxfVhyir2ypsiW4kmtmUGKs8qo,17753 +sqlalchemy/ext/compiler.py,sha256=f7o4qhUUldpsx4F1sQoUvdVaT2BhiemqNBCF4r_uQUo,20889 +sqlalchemy/ext/declarative/__init__.py,sha256=SuVflXOGDxx2sB2QSTqNEvqS0fyhOkh3-sy2lRsSOLA,1818 +sqlalchemy/ext/declarative/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/ext/declarative/__pycache__/extensions.cpython-311.pyc,, +sqlalchemy/ext/declarative/extensions.py,sha256=yHUPcztU-5E1JrNyELDFWKchAnaYK6Y9-dLcqyc1nUI,19531 +sqlalchemy/ext/horizontal_shard.py,sha256=vouIehpQAuwT0HXyWyynTL3m_gcBuLcB-X8lDB0uQ8U,16691 +sqlalchemy/ext/hybrid.py,sha256=CB96yxx1deII38FSsLczwq6Q9e0dKb51iyGVm9Xr6hI,52608 +sqlalchemy/ext/indexable.py,sha256=M12hFg8_OT8-Xt7vEskAJZqAgRA-VLl3cEYw8pHtHpA,11762 +sqlalchemy/ext/instrumentation.py,sha256=iCp89rvfK7buW0jJyzKTBDKyMsd06oTRJDItOk4OVSw,15707 +sqlalchemy/ext/mutable.py,sha256=MFpPDag1EL3iytawmawBJ8tBnXcnfR_wGlsduA61d9k,37164 +sqlalchemy/ext/mypy/__init__.py,sha256=yVNtoBDNeTl1sqRoA_fSY3o1g6M8NxqUVvAHPRLmFTw,241 +sqlalchemy/ext/mypy/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/ext/mypy/__pycache__/apply.cpython-311.pyc,, +sqlalchemy/ext/mypy/__pycache__/decl_class.cpython-311.pyc,, +sqlalchemy/ext/mypy/__pycache__/infer.cpython-311.pyc,, +sqlalchemy/ext/mypy/__pycache__/names.cpython-311.pyc,, +sqlalchemy/ext/mypy/__pycache__/plugin.cpython-311.pyc,, +sqlalchemy/ext/mypy/__pycache__/util.cpython-311.pyc,, +sqlalchemy/ext/mypy/apply.py,sha256=v_Svc1WiBz9yBXqBVBKoCuPGN286TfVmuuCVZPlbyzo,10591 +sqlalchemy/ext/mypy/decl_class.py,sha256=Nuca4ofHkASAkdqEQlULYB7iLm_KID7Mp384seDhVGg,17384 +sqlalchemy/ext/mypy/infer.py,sha256=29vgn22Hi8E8oIZL6UJCBl6oipiPSAQjxccCEkVb410,19367 +sqlalchemy/ext/mypy/names.py,sha256=_Q7J_F8KBSMHcVRw746fsosSJ3RAdDL6RpGAuGa-XJA,10480 +sqlalchemy/ext/mypy/plugin.py,sha256=9YHBp0Bwo92DbDZIUWwIr0hwXPcE4XvHs0-xshvSwUw,9750 +sqlalchemy/ext/mypy/util.py,sha256=CuW2fJ-g9YtkjcypzmrPRaFc-rAvQTzW5A2-w5VTANg,9960 +sqlalchemy/ext/orderinglist.py,sha256=LDHIRpMbl8w0mjDuz6phjnWhApmLRU0PrqouVUDTu-I,15163 +sqlalchemy/ext/serializer.py,sha256=_z95wZMTn3G3sCGN52gwzD4CuKjrhGMr5Eu8g9MxQNg,6169 +sqlalchemy/future/__init__.py,sha256=R1h8VBwMiIUdP3QHv_tFNby557425FJOAGhUoXGvCmc,512 +sqlalchemy/future/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/future/__pycache__/engine.cpython-311.pyc,, +sqlalchemy/future/engine.py,sha256=2nJFBQAXAE8pqe1cs-D3JjC6wUX2ya2h2e_tniuaBq0,495 +sqlalchemy/inspection.py,sha256=qKEKG37N1OjxpQeVzob1q9VwWjBbjI1x0movJG7fYJ4,5063 +sqlalchemy/log.py,sha256=e_ztNUfZM08FmTWeXN9-doD5YKW44nXxgKCUxxNs6Ow,8607 +sqlalchemy/orm/__init__.py,sha256=Ahl2jG0r90eYkZ12lKYlcD84kUVam3lGN7SpRDGlEG4,8528 +sqlalchemy/orm/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/_orm_constructors.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/_typing.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/attributes.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/base.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/bulk_persistence.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/clsregistry.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/collections.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/context.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/decl_api.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/decl_base.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/dependency.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/descriptor_props.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/dynamic.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/evaluator.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/events.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/exc.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/identity.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/instrumentation.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/interfaces.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/loading.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/mapped_collection.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/mapper.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/path_registry.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/persistence.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/properties.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/query.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/relationships.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/scoping.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/session.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/state.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/state_changes.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/strategies.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/strategy_options.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/sync.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/unitofwork.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/util.cpython-311.pyc,, +sqlalchemy/orm/__pycache__/writeonly.cpython-311.pyc,, +sqlalchemy/orm/_orm_constructors.py,sha256=0pVhF06N8RHm3P418xpkZOBwKtrUsY7sQI2xz0f8zT4,105600 +sqlalchemy/orm/_typing.py,sha256=vaYRl4_K3n-sjc9u0Rb4eWWpBOoOi92--OHqaGogRvA,4973 +sqlalchemy/orm/attributes.py,sha256=oh9lKob8z-wChCQuAnW6MokQcaah6x9mNQI9_jbAX7Q,93117 +sqlalchemy/orm/base.py,sha256=J8rTiYm2xTyjTCJdSzaZRh8zasOiIK9FVXtFUits8AU,27501 +sqlalchemy/orm/bulk_persistence.py,sha256=evxOQKnfLRaByNXkudFyH8uFPmtVlCjP80CiIT4Lyb8,72984 +sqlalchemy/orm/clsregistry.py,sha256=-ZD3iO6qXropVH3gSf1nouKWG_xwMl_z5SE6sqOaYOA,17952 +sqlalchemy/orm/collections.py,sha256=cIoXIagPBv4B-TQN7BJssGwQcU0SgEhnKa6wLWsitys,52281 +sqlalchemy/orm/context.py,sha256=9OOJxvXJ_01Sd5-wny-WqVGtak4IA78TyLG_zMOHYmA,115082 +sqlalchemy/orm/decl_api.py,sha256=sSnBuMLYRntCYUnW4AEt61bQ22ZhWo6tMFBOFtCmdyQ,67842 +sqlalchemy/orm/decl_base.py,sha256=N13zJJ0Yejcwu0yOWz8WI38ab56WTeHioYr2PlRCal0,83486 +sqlalchemy/orm/dependency.py,sha256=eiYTsSnW94uGXEFQWj6-KFn25ivz_a2dPN3P6_nMou4,47619 +sqlalchemy/orm/descriptor_props.py,sha256=dh97zKu5-OHDNEhHA3H2YHwdpT8wVT06faeHDzED4pk,37795 +sqlalchemy/orm/dynamic.py,sha256=Z4GpcVL8rM8gi0bytQOZXw-_kKi-sExbRWGjU30dK3g,9816 +sqlalchemy/orm/evaluator.py,sha256=PKrUW1zEOvmv1XEgc_hBdYqNcyk4zjWr_rJhCEQBFIc,12353 +sqlalchemy/orm/events.py,sha256=lj0e8i9BD_xBJzkSMaJy7X3xAWSmTUpm8YEak13usBY,127231 +sqlalchemy/orm/exc.py,sha256=V7cUPl9Kw4qZHLyjOvU1C5WMJ-0MKpNN10qM0C0YG5Y,7636 +sqlalchemy/orm/identity.py,sha256=5NFtF9ZPZWAOmtOqCPyVX2-_pQq9A5XeN2ns3Wirpv8,9249 +sqlalchemy/orm/instrumentation.py,sha256=WhElvvOWOn3Fuc-Asc5HmcKDX6EzFtBleLJKPZEc5A0,24321 +sqlalchemy/orm/interfaces.py,sha256=C0RL0aOVB7E14EVp7MD9C55F2yrOfuOMZ0X-oZg3FCg,49072 +sqlalchemy/orm/loading.py,sha256=SMv9Q5bC-kdvsBpOqBNGqNWlL3I75fxByUeEpLC3qtg,58488 +sqlalchemy/orm/mapped_collection.py,sha256=FAqaTlOUCYqdws2KR_fW0T8mMWIrLuAxJGU5f4W1aGs,19682 +sqlalchemy/orm/mapper.py,sha256=-7q3rHqj3x_acv6prq3sDEXZmHx7kGSV9G-gW_JwaX4,171834 +sqlalchemy/orm/path_registry.py,sha256=tRk3osC5BmU7kkcKJCeeibpg2witjyVzO0rX0pu8vmc,25914 +sqlalchemy/orm/persistence.py,sha256=laKaHW7XsVDYhXfDLnxqAJ5lPB8vhUZ0lEhLvtx-fb4,61812 +sqlalchemy/orm/properties.py,sha256=V3Ega0yY-ypw-n5nbKxXN2KF6xtsixV4wFuUk4LKACU,31233 +sqlalchemy/orm/query.py,sha256=6WjzKAmAcmM8Wmk4NMM-tL25xikDvkNJZ9V8PHfFmYo,118858 +sqlalchemy/orm/relationships.py,sha256=t3yqixZ41chMVOnmelNaps7jwj5vwN9dZFSB0gKK9Pw,128763 +sqlalchemy/orm/scoping.py,sha256=67ww7tkd-GGrv42kzDXSJjPhkQr9nnNWM4t5igs1DyY,78124 +sqlalchemy/orm/session.py,sha256=pTa6xTK5cMTy0XBPJu4zmv4CK7MtUERXkCM9PA5XCxI,195401 +sqlalchemy/orm/state.py,sha256=1vtlz674sGFmwZ8Ih9TdrslA-0nhU2G52WgV-FoG2j0,37670 +sqlalchemy/orm/state_changes.py,sha256=al74Ymt3vqqtWfzZUHQhIKmBZXbT1ovLxgfDurW6XRc,6813 +sqlalchemy/orm/strategies.py,sha256=zk2sg-5D05dBJlzEzpLD5Sfnd5WcCH6dDm4-bxZdMKI,119803 +sqlalchemy/orm/strategy_options.py,sha256=6QFEsOoOsyP2yNJHiJ4j9urfwQxfHFuSVJpoD9TxHcA,85627 +sqlalchemy/orm/sync.py,sha256=RdoxnhvgNjn3Lhtoq4QjvXpj8qfOz__wyibh0FMON0A,5779 +sqlalchemy/orm/unitofwork.py,sha256=hkSIcVonoSt0WWHk019bCDEw0g2o2fg4m4yqoTGyAoo,27033 +sqlalchemy/orm/util.py,sha256=t7lHq0-2FdSpPT558v674-6j9j4DTCmWTOI9xbDy3nY,80889 +sqlalchemy/orm/writeonly.py,sha256=x-eX7QcXUVpadeLldxzNGwDGCOIZHtYBvwP-4kFjZ_I,22297 +sqlalchemy/pool/__init__.py,sha256=niqzCv2uOZT07DOiV2inlmjrW3lZyqDXGCjnOl1IqJ4,1804 +sqlalchemy/pool/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/pool/__pycache__/base.cpython-311.pyc,, +sqlalchemy/pool/__pycache__/events.cpython-311.pyc,, +sqlalchemy/pool/__pycache__/impl.cpython-311.pyc,, +sqlalchemy/pool/base.py,sha256=_UnrUVppwH0gBkiqPWPcxh1FgU4rjEsCDuCBBw73uAg,52383 +sqlalchemy/pool/events.py,sha256=wdFfvat0fSrVF84Zzsz5E3HnVY0bhL7MPsGME-b2qa8,13149 +sqlalchemy/pool/impl.py,sha256=2cg6RVfaXHOH-JPvJx0ITN-xDvjNP-eokhmqpDjsBgE,18899 +sqlalchemy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +sqlalchemy/schema.py,sha256=huwl6-8J9j8ZkMiV3ISminNA7BPa8GrYmdX-q4Lvy9M,3251 +sqlalchemy/sql/__init__.py,sha256=Y-bZ25Zf-bxqsF2zUkpRGTjFuozNNVQHxUJV3Qmaq2M,5820 +sqlalchemy/sql/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/_dml_constructors.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/_elements_constructors.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/_orm_types.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/_py_util.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/_selectable_constructors.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/_typing.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/annotation.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/base.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/cache_key.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/coercions.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/compiler.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/crud.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/ddl.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/default_comparator.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/dml.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/elements.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/events.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/expression.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/functions.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/lambdas.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/naming.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/operators.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/roles.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/schema.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/selectable.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/sqltypes.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/traversals.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/type_api.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/util.cpython-311.pyc,, +sqlalchemy/sql/__pycache__/visitors.cpython-311.pyc,, +sqlalchemy/sql/_dml_constructors.py,sha256=JF_XucNTfAk6Vz9fYiPWOgpIGtUkDj6VPILysLcrVhk,3795 +sqlalchemy/sql/_elements_constructors.py,sha256=0fOsjr_UVUnpJJyP7FL0dd1-tqcqIU5uc0vsNfPNApo,63096 +sqlalchemy/sql/_orm_types.py,sha256=0zeMit-V4rYZe-bB9X3xugnjFnPXH0gmeqkJou9Fows,625 +sqlalchemy/sql/_py_util.py,sha256=4KFXNvBq3hhfrr-A1J1uBml3b3CGguIf1dat9gsEHqE,2173 +sqlalchemy/sql/_selectable_constructors.py,sha256=2xSSQEkjhsOim8nvuzQgSN_jpfKdJM9_jVNR91n-wuM,22171 +sqlalchemy/sql/_typing.py,sha256=lV12dX4kWMC1IIEyD3fgOJo_plMq0-qfE5h_oiQzTuQ,13029 +sqlalchemy/sql/annotation.py,sha256=qHUEwbdmMD3Ybr0ez-Dyiw9l9UB_RUMHWAUIeO_r3gE,18245 +sqlalchemy/sql/base.py,sha256=lwxhzQumtS7GA0Hb7v3TgUT9pbwELEkGoyj9XqRcS2Y,75859 +sqlalchemy/sql/cache_key.py,sha256=hnOYFbU_vmtpqorW-dE1Z9h_CK_Yi_3YXZpOAp30ZbM,33653 +sqlalchemy/sql/coercions.py,sha256=8jZUTu7NqukXTVvz9jqJ7Pr3u762qrP2AUVgmOgoUTc,40705 +sqlalchemy/sql/compiler.py,sha256=63-a8RYtgbU-UKDLerrMidaZvRUqmsT7H_4fS0PZ4qc,283319 +sqlalchemy/sql/crud.py,sha256=zfJdQsRZgAwxcxmo4-WjhgxJKpJ7FRoAAuZ7NgNNUx0,59455 +sqlalchemy/sql/ddl.py,sha256=6Za5sdcpC2D0rJ7_tPSnyp6XR-B0zaDR6MCn032g0eE,47993 +sqlalchemy/sql/default_comparator.py,sha256=YL0lb3TGlmfoUfcMWEo5FkvBQVPa1ZnDcYxoUq97f_4,16706 +sqlalchemy/sql/dml.py,sha256=Z2htAxiHuQ57gW1XXDjcJNvwiUru_Y0-PTQndkZPbXg,66573 +sqlalchemy/sql/elements.py,sha256=1CLfFLnDITZzc5aqUn4XOc9Gi23InafpgYt7qf8MlY0,179606 +sqlalchemy/sql/events.py,sha256=iWjc_nm1vClDBLg4ZhDnY75CkBdnlDPSPe0MGBSmbiM,18312 +sqlalchemy/sql/expression.py,sha256=CsOkmAQgaB-Rnwe7eK60FdBC5R9kY5pczCGrVw2BwGs,7583 +sqlalchemy/sql/functions.py,sha256=Q3PEokUPHy4oai3XxvOvPoC84Sby5-D3YbeC_3eeuU8,64870 +sqlalchemy/sql/lambdas.py,sha256=W5b75ojie3EOm7poR27qsnQHQYdz-NxfSrgb5ATT2H0,49401 +sqlalchemy/sql/naming.py,sha256=5Tk6nm4xqy8d9gzXzDvdiqqS7IptUaf1d7IuVdslplU,6855 +sqlalchemy/sql/operators.py,sha256=h5bgu31gukGdsYsN_0-1C7IGAdSCFpBxuRjOUnu1Two,76792 +sqlalchemy/sql/roles.py,sha256=drAeWbevjgFAKNcMrH_EuJ-9sSvcq4aeXwAqMXXZGYw,7662 +sqlalchemy/sql/schema.py,sha256=f8Ebxr3sd7Iuxk0vnE8Os3icrQOdCgo72NMGTOzSrwo,230555 +sqlalchemy/sql/selectable.py,sha256=vuKf1dn9jv3q5CESxPFu6uHeVFjUA-dYuZbJYHPuJWU,243231 +sqlalchemy/sql/sqltypes.py,sha256=RvB6ytf6vSXxZdEY2zh0a3G4LXD9IoFSIZQPyZV6RrU,132159 +sqlalchemy/sql/traversals.py,sha256=7GALHt5mFceUv2SMUikIdAb9SUcSbACqhwoei5rPkxc,33664 +sqlalchemy/sql/type_api.py,sha256=ZaRtirCvkY2-LOv2TeRFX8r8aVOl5fZhplLWBqexctE,85425 +sqlalchemy/sql/util.py,sha256=NSyop8VMFspSPhnUeTc6-ffWEnBgS12FasZKSo-e1-w,48110 +sqlalchemy/sql/visitors.py,sha256=nMK_ddPg4NvEhEgKorD0rGoy-jqs-dT-uou-S8HAEyY,36316 +sqlalchemy/testing/__init__.py,sha256=GgUEqxUNCxg-92_GgBDnljUHsdCxaGPMG1TWy5tjwgk,3160 +sqlalchemy/testing/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/testing/__pycache__/assertions.cpython-311.pyc,, +sqlalchemy/testing/__pycache__/assertsql.cpython-311.pyc,, +sqlalchemy/testing/__pycache__/asyncio.cpython-311.pyc,, +sqlalchemy/testing/__pycache__/config.cpython-311.pyc,, +sqlalchemy/testing/__pycache__/engines.cpython-311.pyc,, +sqlalchemy/testing/__pycache__/entities.cpython-311.pyc,, +sqlalchemy/testing/__pycache__/exclusions.cpython-311.pyc,, +sqlalchemy/testing/__pycache__/pickleable.cpython-311.pyc,, +sqlalchemy/testing/__pycache__/profiling.cpython-311.pyc,, +sqlalchemy/testing/__pycache__/provision.cpython-311.pyc,, +sqlalchemy/testing/__pycache__/requirements.cpython-311.pyc,, +sqlalchemy/testing/__pycache__/schema.cpython-311.pyc,, +sqlalchemy/testing/__pycache__/util.cpython-311.pyc,, +sqlalchemy/testing/__pycache__/warnings.cpython-311.pyc,, +sqlalchemy/testing/assertions.py,sha256=9FLeP4Q5nPCP-NAVutOse9ej0SD1uEGtW5YKIy8s5dA,31564 +sqlalchemy/testing/assertsql.py,sha256=cmhtZrgPBjrqIfzFz3VBWxVNvxWoRllvmoWcUCoqsio,16817 +sqlalchemy/testing/asyncio.py,sha256=QsMzDWARFRrpLoWhuYqzYQPTUZ80fymlKrqOoDkmCmQ,3830 +sqlalchemy/testing/config.py,sha256=HySdB5_FgCW1iHAJVxYo-4wq5gUAEi0N8E93IC6M86Q,12058 +sqlalchemy/testing/engines.py,sha256=c1gFXfpo5S1dvNjGIL03mbW2eVYtUD_9M_ZEfQO2ArM,13414 +sqlalchemy/testing/entities.py,sha256=KdgTVPSALhi9KkAXj2giOYl62ld-1yZziIDBSV8E3vw,3354 +sqlalchemy/testing/exclusions.py,sha256=0Byf3DIMQXN0-HOS6M2MPJ-fOm_n5MzE1yIfHgE0nLs,12473 +sqlalchemy/testing/fixtures/__init__.py,sha256=e5YtfSlkKDRuyIZhEKBCycMX5BOO4MZ-0d97l1JDhJE,1198 +sqlalchemy/testing/fixtures/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/testing/fixtures/__pycache__/base.cpython-311.pyc,, +sqlalchemy/testing/fixtures/__pycache__/mypy.cpython-311.pyc,, +sqlalchemy/testing/fixtures/__pycache__/orm.cpython-311.pyc,, +sqlalchemy/testing/fixtures/__pycache__/sql.cpython-311.pyc,, +sqlalchemy/testing/fixtures/base.py,sha256=n1wws2ziMfP5CcmKx1R-1bFitUDvIAjJH0atWKMI5Oc,12385 +sqlalchemy/testing/fixtures/mypy.py,sha256=tzCaKeO6SX_6uhdBFrKo6iBB7abdZxhyj7SFUlRQINc,12755 +sqlalchemy/testing/fixtures/orm.py,sha256=3JJoYdI2tj5-LL7AN8bVa79NV3Guo4d9p6IgheHkWGc,6095 +sqlalchemy/testing/fixtures/sql.py,sha256=ht-OD6fMZ0inxucRzRZG4kEMNicqY8oJdlKbZzHhAJc,15900 +sqlalchemy/testing/pickleable.py,sha256=G3L0xL9OtbX7wThfreRjWd0GW7q0kUKcTUuCN5ETGno,2833 +sqlalchemy/testing/plugin/__init__.py,sha256=vRfF7M763cGm9tLQDWK6TyBNHc80J1nX2fmGGxN14wY,247 +sqlalchemy/testing/plugin/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/testing/plugin/__pycache__/bootstrap.cpython-311.pyc,, +sqlalchemy/testing/plugin/__pycache__/plugin_base.cpython-311.pyc,, +sqlalchemy/testing/plugin/__pycache__/pytestplugin.cpython-311.pyc,, +sqlalchemy/testing/plugin/bootstrap.py,sha256=VYnVSMb-u30hGY6xGn6iG-LqiF0CubT90AJPFY_6UiY,1685 +sqlalchemy/testing/plugin/plugin_base.py,sha256=TBWdg2XgXB6QgUUFdKLv1O9-SXMitjHLm2rNNIzXZhQ,21578 +sqlalchemy/testing/plugin/pytestplugin.py,sha256=e0sdvPAQEZsWXfUcqTE1sFEk_1nJbkn5ynuhNyq9Ix4,27779 +sqlalchemy/testing/profiling.py,sha256=w-oNJcOwCiYyVv8fN8DDZ1vut8m0i0iAM66x_GhxTcM,10237 +sqlalchemy/testing/provision.py,sha256=6r2FTnm-t7u8MMbWo7eMhAH3qkL0w0WlmE29MUSEIu4,14702 +sqlalchemy/testing/requirements.py,sha256=rCvPgm5MbIar_gYeHkdTUQ8QgXJcftZmygW48aXrTM0,56103 +sqlalchemy/testing/schema.py,sha256=IImFumAdpzOyoKAs0WnaGakq8D3sSU4snD9W4LVOV3s,6513 +sqlalchemy/testing/suite/__init__.py,sha256=S8TLwTiif8xX67qlZUo5I9fl9UjZAFGSzvlptp2WoWc,722 +sqlalchemy/testing/suite/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/testing/suite/__pycache__/test_cte.cpython-311.pyc,, +sqlalchemy/testing/suite/__pycache__/test_ddl.cpython-311.pyc,, +sqlalchemy/testing/suite/__pycache__/test_deprecations.cpython-311.pyc,, +sqlalchemy/testing/suite/__pycache__/test_dialect.cpython-311.pyc,, +sqlalchemy/testing/suite/__pycache__/test_insert.cpython-311.pyc,, +sqlalchemy/testing/suite/__pycache__/test_reflection.cpython-311.pyc,, +sqlalchemy/testing/suite/__pycache__/test_results.cpython-311.pyc,, +sqlalchemy/testing/suite/__pycache__/test_rowcount.cpython-311.pyc,, +sqlalchemy/testing/suite/__pycache__/test_select.cpython-311.pyc,, +sqlalchemy/testing/suite/__pycache__/test_sequence.cpython-311.pyc,, +sqlalchemy/testing/suite/__pycache__/test_types.cpython-311.pyc,, +sqlalchemy/testing/suite/__pycache__/test_unicode_ddl.cpython-311.pyc,, +sqlalchemy/testing/suite/__pycache__/test_update_delete.cpython-311.pyc,, +sqlalchemy/testing/suite/test_cte.py,sha256=_GnADXRnhm37RdSRBR5SthQenTeb5VVo3HoCuO0Vifw,7262 +sqlalchemy/testing/suite/test_ddl.py,sha256=MItp-votCzvahlRqHRagte2Omyq9XUOFdFsgzCb6_-g,12031 +sqlalchemy/testing/suite/test_deprecations.py,sha256=7C6IbxRmq7wg_DLq56f1V5RCS9iVrAv3epJZQTB-dOo,5337 +sqlalchemy/testing/suite/test_dialect.py,sha256=j3srr7k2aUd_kPtJPgqI1g1aYD6ko4MvuGu1a1HQgS8,24215 +sqlalchemy/testing/suite/test_insert.py,sha256=pR0VWMQ9JJPbnANE6634PzR0VFmWMF8im6OTahc4vsQ,18824 +sqlalchemy/testing/suite/test_reflection.py,sha256=nrCSSyukfIcMEGtL8LyX3pz6N3wJCPmPlXvdCbtlKGg,114891 +sqlalchemy/testing/suite/test_results.py,sha256=S7Vqqh_Wuqf7uhM8h0cBVeV1GS5GJRO_ZTVYmT7kwuc,17042 +sqlalchemy/testing/suite/test_rowcount.py,sha256=UVyHHQsU0TxkzV_dqCOKR1aROvIq7frKYMVjwUqLWfE,7900 +sqlalchemy/testing/suite/test_select.py,sha256=U6WHUBzko_x6dK32PCXY7-5xN9j0VuAS5z3C-zjDE8I,62041 +sqlalchemy/testing/suite/test_sequence.py,sha256=DMqyJkL1o4GClrNjzoy7GDn_jPNPTZNvk9t5e-MVXeo,9923 +sqlalchemy/testing/suite/test_types.py,sha256=C3wJn3DGlGf58eNr02SoYR3iFAl-vnnHPJS_SSWIu80,68013 +sqlalchemy/testing/suite/test_unicode_ddl.py,sha256=0zVc2e3zbCQag_xL4b0i7F062HblHwV46JHLMweYtcE,6141 +sqlalchemy/testing/suite/test_update_delete.py,sha256=_OxH0wggHUqPImalGEPI48RiRx6mO985Om1PtRYOCzA,3994 +sqlalchemy/testing/util.py,sha256=BuA4q-8cmNhrUVqPP35Rr15MnYGSjmW0hmUdS1SI0_I,14526 +sqlalchemy/testing/warnings.py,sha256=sj4vfTtjodcfoX6FPH_Zykb4fomjmgqIYj81QPpSwH8,1546 +sqlalchemy/types.py,sha256=Iq_rKisaj_zhHtzD2R2cxvg3jkug5frikbkcKG0S4Lg,3166 +sqlalchemy/util/__init__.py,sha256=5fNLIdnv3Rh8esnbffLSY3y5bHq8HhkzaAgHv94208w,8406 +sqlalchemy/util/__pycache__/__init__.cpython-311.pyc,, +sqlalchemy/util/__pycache__/_collections.cpython-311.pyc,, +sqlalchemy/util/__pycache__/_concurrency_py3k.cpython-311.pyc,, +sqlalchemy/util/__pycache__/_has_cy.cpython-311.pyc,, +sqlalchemy/util/__pycache__/_py_collections.cpython-311.pyc,, +sqlalchemy/util/__pycache__/compat.cpython-311.pyc,, +sqlalchemy/util/__pycache__/concurrency.cpython-311.pyc,, +sqlalchemy/util/__pycache__/deprecations.cpython-311.pyc,, +sqlalchemy/util/__pycache__/langhelpers.cpython-311.pyc,, +sqlalchemy/util/__pycache__/preloaded.cpython-311.pyc,, +sqlalchemy/util/__pycache__/queue.cpython-311.pyc,, +sqlalchemy/util/__pycache__/tool_support.cpython-311.pyc,, +sqlalchemy/util/__pycache__/topological.cpython-311.pyc,, +sqlalchemy/util/__pycache__/typing.cpython-311.pyc,, +sqlalchemy/util/_collections.py,sha256=JQkGm3MBq3RWr5WKG1-SwocPK3PwQHNslW8QqT7CAq0,20151 +sqlalchemy/util/_concurrency_py3k.py,sha256=UtPDkb67OOVWYvBqYaQgENg0k_jOA2mQOE04XmrbYq0,9170 +sqlalchemy/util/_has_cy.py,sha256=3oh7s5iQtW9qcI8zYunCfGAKG6fzo2DIpzP5p1BnE8Q,1247 +sqlalchemy/util/_py_collections.py,sha256=nxdOFQkO05ijXw-0u_InaH19pPj4VsFcat7tZNoIjt8,16650 +sqlalchemy/util/compat.py,sha256=PCHrgM1JG-RN5GwBRHsPC07wTOU3--q1FJABKXYkC2s,9173 +sqlalchemy/util/concurrency.py,sha256=GycODl5vsbDH8G_1Y_Edk1anLpqDmS9-YzzzVleDw48,3350 +sqlalchemy/util/deprecations.py,sha256=L7D4GqeIozpjO8iVybf7jL9dDlgfTbAaQH4TQAX74qE,12012 +sqlalchemy/util/langhelpers.py,sha256=lxiXhjMI6esHpcBXy_9mf6YDREDH6GB5RNMGrj3wmo4,68522 +sqlalchemy/util/preloaded.py,sha256=RMarsuhtMW8ZuvqLSuR0kwbp45VRlzKpJMLUe7p__qY,5904 +sqlalchemy/util/queue.py,sha256=w1ufhuiC7lzyiZDhciRtRz1uyxU72jRI7SWhhL-p600,10185 +sqlalchemy/util/tool_support.py,sha256=e7lWu6o1QlKq4e6c9PyDsuyFyiWe79vO72UQ_YX2pUA,6135 +sqlalchemy/util/topological.py,sha256=tbkMRY0TTgNiq44NUJpnazXR4xb9v4Q4mQ8BygMp0vY,3451 +sqlalchemy/util/typing.py,sha256=EB7YXmW8kQ25HfN6vmdfKQD2paDNcX9TQn5KojTBb-Q,22493 diff --git a/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/WHEEL b/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/WHEEL new file mode 100644 index 0000000..7cc1bea --- /dev/null +++ b/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: false +Tag: cp311-cp311-manylinux_2_17_x86_64 +Tag: cp311-cp311-manylinux2014_x86_64 + diff --git a/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/licenses/LICENSE new file mode 100644 index 0000000..dfe1a4d --- /dev/null +++ b/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/licenses/LICENSE @@ -0,0 +1,19 @@ +Copyright 2005-2025 SQLAlchemy authors and contributors . + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/top_level.txt new file mode 100644 index 0000000..39fb2be --- /dev/null +++ b/venv/lib/python3.11/site-packages/sqlalchemy-2.0.44.dist-info/top_level.txt @@ -0,0 +1 @@ +sqlalchemy diff --git a/venv/lib/python3.11/site-packages/starlette-0.49.3.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/starlette-0.49.3.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/starlette-0.49.3.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/starlette-0.49.3.dist-info/METADATA b/venv/lib/python3.11/site-packages/starlette-0.49.3.dist-info/METADATA new file mode 100644 index 0000000..6489add --- /dev/null +++ b/venv/lib/python3.11/site-packages/starlette-0.49.3.dist-info/METADATA @@ -0,0 +1,178 @@ +Metadata-Version: 2.4 +Name: starlette +Version: 0.49.3 +Summary: The little ASGI library that shines. +Project-URL: Homepage, https://github.com/Kludex/starlette +Project-URL: Documentation, https://starlette.dev/ +Project-URL: Changelog, https://starlette.dev/release-notes/ +Project-URL: Funding, https://github.com/sponsors/Kludex +Project-URL: Source, https://github.com/Kludex/starlette +Author-email: Tom Christie +Maintainer-email: Marcelo Trylesinski +License-Expression: BSD-3-Clause +License-File: LICENSE.md +Classifier: Development Status :: 3 - Alpha +Classifier: Environment :: Web Environment +Classifier: Framework :: AnyIO +Classifier: Intended Audience :: Developers +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Topic :: Internet :: WWW/HTTP +Requires-Python: >=3.9 +Requires-Dist: anyio<5,>=3.6.2 +Requires-Dist: typing-extensions>=4.10.0; python_version < '3.13' +Provides-Extra: full +Requires-Dist: httpx<0.29.0,>=0.27.0; extra == 'full' +Requires-Dist: itsdangerous; extra == 'full' +Requires-Dist: jinja2; extra == 'full' +Requires-Dist: python-multipart>=0.0.18; extra == 'full' +Requires-Dist: pyyaml; extra == 'full' +Description-Content-Type: text/markdown + +

+ + + + starlette-logo + +

+ +

+ ✨ The little ASGI framework that shines. ✨ +

+ +--- + +[![Build Status](https://github.com/Kludex/starlette/workflows/Test%20Suite/badge.svg)](https://github.com/Kludex/starlette/actions) +[![Package version](https://badge.fury.io/py/starlette.svg)](https://pypi.python.org/pypi/starlette) +[![Supported Python Version](https://img.shields.io/pypi/pyversions/starlette.svg?color=%2334D058)](https://pypi.org/project/starlette) +[![Discord](https://img.shields.io/discord/1051468649518616576?logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/RxKUF5JuHs) + +--- + +**Documentation**: https://starlette.dev + +**Source Code**: https://github.com/Kludex/starlette + +--- + +# Starlette + +Starlette is a lightweight [ASGI][asgi] framework/toolkit, +which is ideal for building async web services in Python. + +It is production-ready, and gives you the following: + +* A lightweight, low-complexity HTTP web framework. +* WebSocket support. +* In-process background tasks. +* Startup and shutdown events. +* Test client built on `httpx`. +* CORS, GZip, Static Files, Streaming responses. +* Session and Cookie support. +* 100% test coverage. +* 100% type annotated codebase. +* Few hard dependencies. +* Compatible with `asyncio` and `trio` backends. +* Great overall performance [against independent benchmarks][techempower]. + +## Installation + +```shell +$ pip install starlette +``` + +You'll also want to install an ASGI server, such as [uvicorn](https://www.uvicorn.org/), [daphne](https://github.com/django/daphne/), or [hypercorn](https://hypercorn.readthedocs.io/en/latest/). + +```shell +$ pip install uvicorn +``` + +## Example + +```python title="main.py" +from starlette.applications import Starlette +from starlette.responses import JSONResponse +from starlette.routing import Route + + +async def homepage(request): + return JSONResponse({'hello': 'world'}) + +routes = [ + Route("/", endpoint=homepage) +] + +app = Starlette(debug=True, routes=routes) +``` + +Then run the application using Uvicorn: + +```shell +$ uvicorn main:app +``` + +## Dependencies + +Starlette only requires `anyio`, and the following are optional: + +* [`httpx`][httpx] - Required if you want to use the `TestClient`. +* [`jinja2`][jinja2] - Required if you want to use `Jinja2Templates`. +* [`python-multipart`][python-multipart] - Required if you want to support form parsing, with `request.form()`. +* [`itsdangerous`][itsdangerous] - Required for `SessionMiddleware` support. +* [`pyyaml`][pyyaml] - Required for `SchemaGenerator` support. + +You can install all of these with `pip install starlette[full]`. + +## Framework or Toolkit + +Starlette is designed to be used either as a complete framework, or as +an ASGI toolkit. You can use any of its components independently. + +```python +from starlette.responses import PlainTextResponse + + +async def app(scope, receive, send): + assert scope['type'] == 'http' + response = PlainTextResponse('Hello, world!') + await response(scope, receive, send) +``` + +Run the `app` application in `example.py`: + +```shell +$ uvicorn example:app +INFO: Started server process [11509] +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +Run uvicorn with `--reload` to enable auto-reloading on code changes. + +## Modularity + +The modularity that Starlette is designed on promotes building re-usable +components that can be shared between any ASGI framework. This should enable +an ecosystem of shared middleware and mountable applications. + +The clean API separation also means it's easier to understand each component +in isolation. + +--- + +

Starlette is BSD licensed code.
Designed & crafted with care.

— ⭐️ —

+ +[asgi]: https://asgi.readthedocs.io/en/latest/ +[httpx]: https://www.python-httpx.org/ +[jinja2]: https://jinja.palletsprojects.com/ +[python-multipart]: https://multipart.fastapiexpert.com/ +[itsdangerous]: https://itsdangerous.palletsprojects.com/ +[sqlalchemy]: https://www.sqlalchemy.org +[pyyaml]: https://pyyaml.org/wiki/PyYAMLDocumentation +[techempower]: https://www.techempower.com/benchmarks/#hw=ph&test=fortune&l=zijzen-sf diff --git a/venv/lib/python3.11/site-packages/starlette-0.49.3.dist-info/RECORD b/venv/lib/python3.11/site-packages/starlette-0.49.3.dist-info/RECORD new file mode 100644 index 0000000..eb06c1b --- /dev/null +++ b/venv/lib/python3.11/site-packages/starlette-0.49.3.dist-info/RECORD @@ -0,0 +1,74 @@ +starlette-0.49.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +starlette-0.49.3.dist-info/METADATA,sha256=j29OYcz46VEFRAEMlU37BSDQSv85q4r4_TxD-FACE70,6367 +starlette-0.49.3.dist-info/RECORD,, +starlette-0.49.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87 +starlette-0.49.3.dist-info/licenses/LICENSE.md,sha256=3LlWd6AiQCQxh-lk-UGEfRmxeCHPmeWvrmhPqzKMGb8,1518 +starlette/__init__.py,sha256=up1HUz41xLEcNPEk2bBs3BiGR8YmWLkp9VV2U_R2gdk,23 +starlette/__pycache__/__init__.cpython-311.pyc,, +starlette/__pycache__/_exception_handler.cpython-311.pyc,, +starlette/__pycache__/_utils.cpython-311.pyc,, +starlette/__pycache__/applications.cpython-311.pyc,, +starlette/__pycache__/authentication.cpython-311.pyc,, +starlette/__pycache__/background.cpython-311.pyc,, +starlette/__pycache__/concurrency.cpython-311.pyc,, +starlette/__pycache__/config.cpython-311.pyc,, +starlette/__pycache__/convertors.cpython-311.pyc,, +starlette/__pycache__/datastructures.cpython-311.pyc,, +starlette/__pycache__/endpoints.cpython-311.pyc,, +starlette/__pycache__/exceptions.cpython-311.pyc,, +starlette/__pycache__/formparsers.cpython-311.pyc,, +starlette/__pycache__/requests.cpython-311.pyc,, +starlette/__pycache__/responses.cpython-311.pyc,, +starlette/__pycache__/routing.cpython-311.pyc,, +starlette/__pycache__/schemas.cpython-311.pyc,, +starlette/__pycache__/staticfiles.cpython-311.pyc,, +starlette/__pycache__/status.cpython-311.pyc,, +starlette/__pycache__/templating.cpython-311.pyc,, +starlette/__pycache__/testclient.cpython-311.pyc,, +starlette/__pycache__/types.cpython-311.pyc,, +starlette/__pycache__/websockets.cpython-311.pyc,, +starlette/_exception_handler.py,sha256=izcMiP2VuVbIvwTUQjhMlchcaA5795-Ra1SCn5KWPTM,2205 +starlette/_utils.py,sha256=3Igm-Hd_NXRYmiwkiFngslrXHvPWTB3is1ZkP5CQXoM,2806 +starlette/applications.py,sha256=XTZSzDnQcUHYGDcqIY48CFMTmM_9MwlBBhTgjJt_7IU,10503 +starlette/authentication.py,sha256=By_wHye1Ok3ntrMmzfznHwgeffGmjDvA7eg6rOQrFK4,4906 +starlette/background.py,sha256=0xdn_QTncyx9vX6MFdPcYbv87X-bhZjcAWy2OLdVnOU,1278 +starlette/concurrency.py,sha256=wWoZThL3krwtqWckvjqWSHIJ_E66qwa2l1G7y2oLllM,1786 +starlette/config.py,sha256=PS0crKWtRqkLFJoyWgNrY7E1vqQ8h7ls9zhXK08Ey4w,4426 +starlette/convertors.py,sha256=F1rse3AacN9rsfJnTeuDnjbN51r_ouHc3WLyYkjkX_o,2304 +starlette/datastructures.py,sha256=zhbGGcmeRVB6Ouvt9HwoB8gSK9k5biH3zUhjb5cV-ow,22465 +starlette/endpoints.py,sha256=s9IKEBcHNQgrUtBgIKdcTJGsBaqkSFUq4YpouxPmSRI,5099 +starlette/exceptions.py,sha256=tIphlZa8EsQfKw3-xw5J3ZN1GjaR4UcxfJK69Ad2hG8,1066 +starlette/formparsers.py,sha256=Ndl5dGXZtopzJUjM04M5zYhS8sT33e_5JwK2T7Md4zA,11086 +starlette/middleware/__init__.py,sha256=xRxczwQra6wi7ESQwaDwdpCyntngGJ-7vtKEO-2Wv8k,1506 +starlette/middleware/__pycache__/__init__.cpython-311.pyc,, +starlette/middleware/__pycache__/authentication.cpython-311.pyc,, +starlette/middleware/__pycache__/base.cpython-311.pyc,, +starlette/middleware/__pycache__/cors.cpython-311.pyc,, +starlette/middleware/__pycache__/errors.cpython-311.pyc,, +starlette/middleware/__pycache__/exceptions.cpython-311.pyc,, +starlette/middleware/__pycache__/gzip.cpython-311.pyc,, +starlette/middleware/__pycache__/httpsredirect.cpython-311.pyc,, +starlette/middleware/__pycache__/sessions.cpython-311.pyc,, +starlette/middleware/__pycache__/trustedhost.cpython-311.pyc,, +starlette/middleware/__pycache__/wsgi.cpython-311.pyc,, +starlette/middleware/authentication.py,sha256=d6CbLD_IP19bAH7-WpAgM8qaEJmW4s8tJ3QznSshGNs,1791 +starlette/middleware/base.py,sha256=7oz5n5uRJKByEWA0ecmsQvFAodP22ohzGiYBDeThfjs,10350 +starlette/middleware/cors.py,sha256=Hp1OBFB1OQbYGRa6hfTzBqkkJHOhUpjrsRryrHItHFQ,7046 +starlette/middleware/errors.py,sha256=h76TfVDrdYSvpBAEWgZ91VvPZQe3vRpAl6ChoiXG-Tk,8037 +starlette/middleware/exceptions.py,sha256=7OgSUiBgwHS4VMmpaWlw21uDKNDmOMzLVZrWDLDUqWo,2784 +starlette/middleware/gzip.py,sha256=_thpCRctguw0tMM6J2iDlAj5vZlol9T673IHtfvfxQE,5899 +starlette/middleware/httpsredirect.py,sha256=SNTleaYALGoITV7xwbic4gB6VYdM8Ylea_ykciUz31g,848 +starlette/middleware/sessions.py,sha256=IgZkTkgbOhU9tQceQV0KjLAiNp-dKhngcHpu4VYaDXQ,3572 +starlette/middleware/trustedhost.py,sha256=byKCUyPge54Z4MznyunD_2DsMfJc2UsfV4b2Du-WYTc,2219 +starlette/middleware/wsgi.py,sha256=yNQho3FVK0BcDTVT2NGmYLOxtrxPFUox9aU3cUqGDgc,5350 +starlette/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +starlette/requests.py,sha256=ZmUgUFwzRaBfvRuFRGIcEHihxN8jj33pxY2J21lMrfM,11700 +starlette/responses.py,sha256=vAZ91pmcoQWQ-OydbCJR0hpJ-iiOyc9Bt1jRUgmo8nk,21451 +starlette/routing.py,sha256=uLO9Q3Pz3AJWys6cS1zr-d9pdgCdeDbNCi5Mr-t8ND4,34201 +starlette/schemas.py,sha256=AxKqw3Q-XL2fU1ryUPn-ye1j1VVeWpgSukJ_8EPJwkg,5142 +starlette/staticfiles.py,sha256=CDUeXRaKsqojKArSTijvsPsRPWZnmZdEy2EqfrGTdw0,8485 +starlette/status.py,sha256=P5SxON3aKW3rwUpJ7cxxD3vvEULMpO-aIzzJRmLwwVs,6359 +starlette/templating.py,sha256=k0R875jbaR9vXlCg-5kGYkYr6UJHxyFeiRgt6m2kZp8,8293 +starlette/testclient.py,sha256=BVT1HspIPA4tgptnarMnlo41LeRJEglCGk9MnPv5bCE,28011 +starlette/types.py,sha256=vLpBwFPqy_q87U8eX5R0nJP67kYImNyvcsjOI7KN7NM,1060 +starlette/websockets.py,sha256=phsWgpXclYreVhg-wAyUWpgBWJTibNF5Pi-tNxbmQFY,8336 diff --git a/venv/lib/python3.11/site-packages/starlette-0.49.3.dist-info/WHEEL b/venv/lib/python3.11/site-packages/starlette-0.49.3.dist-info/WHEEL new file mode 100644 index 0000000..12228d4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/starlette-0.49.3.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: hatchling 1.27.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/starlette-0.49.3.dist-info/licenses/LICENSE.md b/venv/lib/python3.11/site-packages/starlette-0.49.3.dist-info/licenses/LICENSE.md new file mode 100644 index 0000000..d16a60e --- /dev/null +++ b/venv/lib/python3.11/site-packages/starlette-0.49.3.dist-info/licenses/LICENSE.md @@ -0,0 +1,27 @@ +Copyright © 2018, [Encode OSS Ltd](https://www.encode.io/). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/METADATA b/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/METADATA new file mode 100644 index 0000000..1e5974f --- /dev/null +++ b/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/METADATA @@ -0,0 +1,318 @@ +Metadata-Version: 2.4 +Name: trimesh +Version: 4.9.0 +Summary: Import, export, process, analyze and view triangular meshes. +Author-email: Michael Dawson-Haggerty +License: The MIT License (MIT) + + Copyright (c) 2023 Michael Dawson-Haggerty + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +Project-URL: homepage, https://github.com/mikedh/trimesh +Project-URL: documentation, https://trimesh.org +Keywords: graphics,mesh,geometry,3D +Classifier: Development Status :: 4 - Beta +Classifier: License :: OSI Approved :: MIT License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Natural Language :: English +Classifier: Topic :: Scientific/Engineering +Classifier: Topic :: Multimedia :: Graphics +Classifier: Topic :: Multimedia :: Graphics :: 3D Modeling +Requires-Python: >=3.8 +Description-Content-Type: text/markdown +License-File: LICENSE.md +Requires-Dist: numpy>=1.20 +Provides-Extra: easy +Requires-Dist: colorlog; extra == "easy" +Requires-Dist: manifold3d>=2.3.0; extra == "easy" +Requires-Dist: charset-normalizer; extra == "easy" +Requires-Dist: lxml; extra == "easy" +Requires-Dist: jsonschema; extra == "easy" +Requires-Dist: networkx; extra == "easy" +Requires-Dist: svg.path; extra == "easy" +Requires-Dist: pycollada<=0.9.0; python_version < "3.9" and extra == "easy" +Requires-Dist: pycollada; python_version >= "3.9" and extra == "easy" +Requires-Dist: shapely; extra == "easy" +Requires-Dist: xxhash; extra == "easy" +Requires-Dist: rtree; extra == "easy" +Requires-Dist: httpx; extra == "easy" +Requires-Dist: scipy; extra == "easy" +Requires-Dist: embreex; platform_machine == "x86_64" and extra == "easy" +Requires-Dist: pillow; extra == "easy" +Requires-Dist: vhacdx; python_version >= "3.9" and extra == "easy" +Requires-Dist: mapbox_earcut>=1.0.2; python_version >= "3.9" and extra == "easy" +Provides-Extra: recommend +Requires-Dist: sympy; extra == "recommend" +Requires-Dist: meshio; extra == "recommend" +Requires-Dist: pyglet<2; extra == "recommend" +Requires-Dist: psutil; extra == "recommend" +Requires-Dist: scikit-image; extra == "recommend" +Requires-Dist: fast-simplification; extra == "recommend" +Requires-Dist: python-fcl; extra == "recommend" +Requires-Dist: cascadio; extra == "recommend" +Provides-Extra: test +Requires-Dist: pytest-cov; extra == "test" +Requires-Dist: pytest; extra == "test" +Requires-Dist: pyinstrument; extra == "test" +Requires-Dist: ruff; extra == "test" +Provides-Extra: test-more +Requires-Dist: coveralls; extra == "test-more" +Requires-Dist: ezdxf; extra == "test-more" +Requires-Dist: xatlas; extra == "test-more" +Requires-Dist: pytest-beartype; python_version >= "3.10" and extra == "test-more" +Requires-Dist: matplotlib; extra == "test-more" +Requires-Dist: pymeshlab; extra == "test-more" +Requires-Dist: triangle; extra == "test-more" +Requires-Dist: ipython; extra == "test-more" +Requires-Dist: marimo; extra == "test-more" +Provides-Extra: deprecated +Requires-Dist: openctm; extra == "deprecated" +Provides-Extra: all +Requires-Dist: trimesh[deprecated,easy,recommend,test,test_more]; extra == "all" +Dynamic: license-file + +[![trimesh](https://trimesh.org/_static/images/logotype-a.svg)](http://trimesh.org) + +----------- +[![Github Actions](https://github.com/mikedh/trimesh/workflows/Release%20Trimesh/badge.svg)](https://github.com/mikedh/trimesh/actions) [![codecov](https://codecov.io/gh/mikedh/trimesh/branch/main/graph/badge.svg?token=4PVRQXyl2h)](https://codecov.io/gh/mikedh/trimesh) [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/trimesh/trimesh?label=docker&sort=semver)](https://hub.docker.com/r/trimesh/trimesh/tags) [![PyPI version](https://badge.fury.io/py/trimesh.svg)](https://badge.fury.io/py/trimesh) + + +Trimesh is a pure Python 3.8+ library for loading and using [triangular meshes](https://en.wikipedia.org/wiki/Triangle_mesh) with an emphasis on watertight surfaces. The goal of the library is to provide a full featured and well tested Trimesh object which allows for easy manipulation and analysis, in the style of the Polygon object in the [Shapely library](https://github.com/Toblerity/Shapely). + +The API is mostly stable, but this should not be relied on and is not guaranteed: install a specific version if you plan on deploying something using trimesh. + +Pull requests are appreciated and responded to promptly! If you'd like to contribute, here is an [up to date list of potential enhancements](https://github.com/mikedh/trimesh/issues/1557) although things not on that list are also welcome. Here's a quick [development and contributing guide.](https://trimesh.org/contributing.html) + + +## Basic Installation + +Keeping `trimesh` easy to install is a core goal, thus the *only* hard dependency is [numpy](http://www.numpy.org/). Installing other packages adds functionality but is not required. For the easiest install with just numpy, `pip` can generally install `trimesh` cleanly on Windows, Linux, and OSX: + +```bash +pip install trimesh +``` + +The minimal install can load many supported formats (STL, PLY, GLTF/GLB) into numpy arrays. More functionality is available when soft dependencies are installed. This includes things like convex hulls (`scipy`), graph operations (`networkx`), faster ray queries (`embreex`), vector path handling (`shapely` and `rtree`), XML formats like 3DXML/XAML/3MF (`lxml`), preview windows (`pyglet`), faster cache checks (`xxhash`), etc. To install `trimesh` with the soft dependencies that generally install cleanly on Linux (x86_64), MacOS (ARM), and Windows (x86_64) using `pip`: +```bash +pip install trimesh[easy] +``` + +If you are supporting a different platform or are freezing your dependencies we recommend you do not use the extras (i.e. depend on `trimesh scipy` versus `trimesh[easy]`.) Further information is available in the [advanced installation documentation](https://trimesh.org/install.html). + +## Quick Start + +Here is an example of loading a mesh from file and colorizing its faces. Here is a nicely formatted +[ipython notebook version](https://trimesh.org/quick_start.html) of this example. Also check out the [cross section example](https://trimesh.org/section.html). + +```python +import numpy as np +import trimesh + +# attach to logger so trimesh messages will be printed to console +trimesh.util.attach_to_log() + +# mesh objects can be created from existing faces and vertex data +mesh = trimesh.Trimesh(vertices=[[0, 0, 0], [0, 0, 1], [0, 1, 0]], + faces=[[0, 1, 2]]) + +# by default, Trimesh will do a light processing, which will +# remove any NaN values and merge vertices that share position +# if you want to not do this on load, you can pass `process=False` +mesh = trimesh.Trimesh(vertices=[[0, 0, 0], [0, 0, 1], [0, 1, 0]], + faces=[[0, 1, 2]], + process=False) + +# some formats represent multiple meshes with multiple instances +# the loader tries to return the datatype which makes the most sense +# which will for scene-like files will return a `trimesh.Scene` object. +# if you *always* want a straight `trimesh.Trimesh` you can ask the +# loader to "force" the result into a mesh through concatenation +mesh = trimesh.load('models/CesiumMilkTruck.glb', force='mesh') + +# mesh objects can be loaded from a file name or from a buffer +# you can pass any of the kwargs for the `Trimesh` constructor +# to `trimesh.load`, including `process=False` if you would like +# to preserve the original loaded data without merging vertices +# STL files will be a soup of disconnected triangles without +# merging vertices however and will not register as watertight +mesh = trimesh.load('../models/featuretype.STL') + +# is the current mesh watertight? +mesh.is_watertight + +# what's the euler number for the mesh? +mesh.euler_number + +# the convex hull is another Trimesh object that is available as a property +# lets compare the volume of our mesh with the volume of its convex hull +print(mesh.volume / mesh.convex_hull.volume) + +# since the mesh is watertight, it means there is a +# volumetric center of mass which we can set as the origin for our mesh +mesh.vertices -= mesh.center_mass + +# what's the moment of inertia for the mesh? +mesh.moment_inertia + +# if there are multiple bodies in the mesh we can split the mesh by +# connected components of face adjacency +# since this example mesh is a single watertight body we get a list of one mesh +mesh.split() + +# facets are groups of coplanar adjacent faces +# set each facet to a random color +# colors are 8 bit RGBA by default (n, 4) np.uint8 +for facet in mesh.facets: + mesh.visual.face_colors[facet] = trimesh.visual.random_color() + +# preview mesh in an opengl window if you installed pyglet and scipy with pip +mesh.show() + +# transform method can be passed a (4, 4) matrix and will cleanly apply the transform +mesh.apply_transform(trimesh.transformations.random_rotation_matrix()) + +# axis aligned bounding box is available +mesh.bounding_box.extents + +# a minimum volume oriented bounding box also available +# primitives are subclasses of Trimesh objects which automatically generate +# faces and vertices from data stored in the 'primitive' attribute +mesh.bounding_box_oriented.primitive.extents +mesh.bounding_box_oriented.primitive.transform + +# show the mesh appended with its oriented bounding box +# the bounding box is a trimesh.primitives.Box object, which subclasses +# Trimesh and lazily evaluates to fill in vertices and faces when requested +# (press w in viewer to see triangles) +(mesh + mesh.bounding_box_oriented).show() + +# bounding spheres and bounding cylinders of meshes are also +# available, and will be the minimum volume version of each +# except in certain degenerate cases, where they will be no worse +# than a least squares fit version of the primitive. +print(mesh.bounding_box_oriented.volume, + mesh.bounding_cylinder.volume, + mesh.bounding_sphere.volume) + +``` + +## Features + +* Import meshes from binary/ASCII STL, Wavefront OBJ, ASCII OFF, binary/ASCII PLY, GLTF/GLB 2.0, 3MF, XAML, 3DXML, etc. +* Import and export 2D or 3D vector paths from/to DXF or SVG files +* Import geometry files using the GMSH SDK if installed (BREP, STEP, IGES, INP, BDF, etc) +* Export meshes as binary STL, binary PLY, ASCII OFF, OBJ, GLTF/GLB 2.0, COLLADA, etc. +* Export meshes using the GMSH SDK if installed (Abaqus INP, Nastran BDF, etc) +* Preview meshes using pyglet or in- line in jupyter/marimo notebooks using three.js +* Automatic hashing of numpy arrays for change tracking using MD5, zlib CRC, or xxhash +* Internal caching of computed values validated from hashes +* Calculate face adjacencies, face angles, vertex defects, etc. +* Calculate cross sections, i.e. the slicing operation used in 3D printing +* Slice meshes with one or multiple arbitrary planes and return the resulting surface +* Split mesh based on face connectivity using networkx, graph-tool, or scipy.sparse +* Calculate mass properties, including volume, center of mass, moment of inertia, principal components of inertia vectors and components +* Repair simple problems with triangle winding, normals, and quad/tri holes +* Convex hulls of meshes +* Compute rotation/translation/tessellation invariant identifier and find duplicate meshes +* Determine if a mesh is watertight, convex, etc. +* Uniformly sample the surface of a mesh +* Ray-mesh queries including location, triangle index, etc. +* Boolean operations on meshes (intersection, union, difference) using Manifold3D or Blender Note that mesh booleans in general are usually slow and unreliable +* Voxelize watertight meshes +* Volume mesh generation (TETgen) using Gmsh SDK +* Smooth watertight meshes using laplacian smoothing algorithms (Classic, Taubin, Humphrey) +* Subdivide faces of a mesh +* Approximate minimum volume oriented bounding boxes for meshes +* Approximate minimum volume bounding spheres +* Calculate nearest point on mesh surface and signed distance +* Determine if a point lies inside or outside of a well constructed mesh using signed distance +* Primitive objects (Box, Cylinder, Sphere, Extrusion) which are subclassed Trimesh objects and have all the same features (inertia, viewers, etc) +* Simple scene graph and transform tree which can be rendered (pyglet window, three.js in a jupyter/marimo notebook, [pyrender](https://github.com/mmatl/pyrender)) or exported. +* Many utility functions, like transforming points, unitizing vectors, aligning vectors, tracking numpy arrays for changes, grouping rows, etc. + + +## Viewer + +Trimesh includes an optional `pyglet` based viewer for debugging and inspecting. In the mesh view window, opened with `mesh.show()`, the following commands can be used: + +* `mouse click + drag` rotates the view +* `ctl + mouse click + drag` pans the view +* `mouse wheel` zooms +* `z` returns to the base view +* `w` toggles wireframe mode +* `c` toggles backface culling +* `g` toggles an XY grid with Z set to lowest point +* `a` toggles an XYZ-RGB axis marker between: off, at world frame, or at every frame and world, and at every frame +* `f` toggles between fullscreen and windowed mode +* `m` maximizes the window +* `q` closes the window + +If called from inside a `jupyter` or `marimo` notebook, `mesh.show()` displays an in-line preview using `three.js` to display the mesh or scene. For more complete rendering (PBR, better lighting, shaders, better off-screen support, etc) [pyrender](https://github.com/mmatl/pyrender) is designed to interoperate with `trimesh` objects. + +## Projects Using Trimesh + +You can check out the [Github network](https://github.com/mikedh/trimesh/network/dependents) for things using trimesh. A select few: +- Nvidia's [kaolin](https://github.com/NVIDIAGameWorks/kaolin) for deep learning on 3D geometry. +- [Cura](https://github.com/Ultimaker/Cura), a popular slicer for 3D printing. +- Berkeley's [DexNet4](https://www.youtube.com/watch?v=GBiAxoWBNho&feature=emb_logo) and related [ambidextrous.ai](https://www.ambidextrous.ai/) work with robotic grasp planning and manipulation. +- Kerfed's [Kerfed's Engine](https://kerfed.com/technology) for analyzing assembly geometry for manufacturing. +- [MyMiniFactory's](https://www.myminifactory.com/) P2Slice for preparing models for 3D printing. +- [pyrender](https://github.com/mmatl/pyrender) A library to render scenes from Python using nice looking PBR materials. +- [urdfpy](https://github.com/mmatl/urdfpy) Load URDF robot descriptions in Python. +- [moderngl-window](https://github.com/moderngl/moderngl-window) A helper to create GL contexts and load meshes. +- [vedo](https://github.com/marcomusy/vedo) Visualize meshes interactively (see example [gallery](https://github.com/marcomusy/vedo/tree/master/examples/other/trimesh/)). +- [FSLeyes](https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FSLeyes) View MRI images and brain data. + +## Which Mesh Format Should I Use? + +Quick recommendation: `GLB` or `PLY`. Every time you replace `OBJ` with `GLB` an angel gets its wings. + +If you want things like by-index faces, instancing, colors, textures, etc, `GLB` is a terrific choice. GLTF/GLB is an [extremely well specified](https://github.com/KhronosGroup/glTF/tree/master/specification/2.0) modern format that is easy and fast to parse: it has a JSON header describing data in a binary blob. It has a simple hierarchical scene graph, a great looking modern physically based material system, support in [dozens-to-hundreds of libraries](https://github.com/KhronosGroup/glTF/issues/1058), and a [John Carmack endorsment](https://www.khronos.org/news/press/significant-gltf-momentum-for-efficient-transmission-of-3d-scenes-models). Note that GLTF is a large specification, and `trimesh` only supports a subset of features: loading basic geometry is supported, NOT supported are fancier things like animations, skeletons, etc. + +In the wild, `STL` is perhaps the most common format. `STL` files are extremely simple: it is basically just a list of triangles. They are robust and are a good choice for basic geometry. Binary `PLY` files are a good step up, as they support indexed faces and colors. + +Wavefront `OBJ` is also pretty common: unfortunately OBJ doesn't have a widely accepted specification so every importer and exporter implements things slightly differently, making it tough to support. It also allows unfortunate things like arbitrary sized polygons, has a face representation which is easy to mess up, references other files for materials and textures, arbitrarily interleaves data, and is slow to parse. Give `GLB` or `PLY` a try as an alternative! + +## How can I cite this library? + +A question that comes up pretty frequently is [how to cite the library.](https://github.com/mikedh/trimesh/issues?utf8=1&q=cite) A quick BibTex recommendation: +``` +@software{trimesh, + author = {{Dawson-Haggerty et al.}}, + title = {trimesh}, + url = {https://trimesh.org/}, + version = {3.2.0}, + date = {2019-12-8}, +} +``` + +## Containers + +If you want to deploy something in a container that uses trimesh automated `debian:slim-bullseye` based builds with trimesh and most dependencies are available on [Docker Hub](https://hub.docker.com/repository/docker/trimesh/trimesh) with image tags for `latest`, git short hash for the commit in `main` (i.e. `trimesh/trimesh:0c1298d`), and version (i.e. `trimesh/trimesh:3.5.27`): + +`docker pull trimesh/trimesh` + +[Here's an example](https://github.com/mikedh/trimesh/tree/main/examples/docker/render) of how to render meshes using LLVMpipe and XVFB inside a container. + diff --git a/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/RECORD b/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/RECORD new file mode 100644 index 0000000..6207fab --- /dev/null +++ b/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/RECORD @@ -0,0 +1,259 @@ +../../../bin/trimesh,sha256=tKE6NjUc8qqZmcro2dtXqYeLgydCr7KCOJzv8cnnB6s,256 +trimesh-4.9.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +trimesh-4.9.0.dist-info/METADATA,sha256=sAdzvwJUAzphbx9uJi6u-7Ay9XyclrlmTBVQY_gyGmw,18758 +trimesh-4.9.0.dist-info/RECORD,, +trimesh-4.9.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +trimesh-4.9.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91 +trimesh-4.9.0.dist-info/entry_points.txt,sha256=E8JnT07gjUrdCQjuWPKNykjis4Aa2QWCFN6gVFWNNh0,50 +trimesh-4.9.0.dist-info/licenses/LICENSE.md,sha256=_ie174cQZ2zIUlXaKKMvOU4u8_TORwdaHHMqnqHXvQM,1090 +trimesh-4.9.0.dist-info/top_level.txt,sha256=bHXSeALt9l4__maYNLp93GRZSOJ5iApS2fe3jibIV1U,8 +trimesh/__init__.py,sha256=gqsMZ4ZnG3psDqHW_9qW-d9jMLcs-JCsT8TNzlAKa0s,2433 +trimesh/__main__.py,sha256=-GxWDnuZ5pZfo1jqc0euaWoJOJ5r2340EQYAbctp2_c,1447 +trimesh/__pycache__/__init__.cpython-311.pyc,, +trimesh/__pycache__/__main__.cpython-311.pyc,, +trimesh/__pycache__/base.cpython-311.pyc,, +trimesh/__pycache__/boolean.cpython-311.pyc,, +trimesh/__pycache__/bounds.cpython-311.pyc,, +trimesh/__pycache__/caching.cpython-311.pyc,, +trimesh/__pycache__/collision.cpython-311.pyc,, +trimesh/__pycache__/comparison.cpython-311.pyc,, +trimesh/__pycache__/constants.cpython-311.pyc,, +trimesh/__pycache__/convex.cpython-311.pyc,, +trimesh/__pycache__/creation.cpython-311.pyc,, +trimesh/__pycache__/curvature.cpython-311.pyc,, +trimesh/__pycache__/decomposition.cpython-311.pyc,, +trimesh/__pycache__/exceptions.cpython-311.pyc,, +trimesh/__pycache__/geometry.cpython-311.pyc,, +trimesh/__pycache__/graph.cpython-311.pyc,, +trimesh/__pycache__/grouping.cpython-311.pyc,, +trimesh/__pycache__/inertia.cpython-311.pyc,, +trimesh/__pycache__/intersections.cpython-311.pyc,, +trimesh/__pycache__/interval.cpython-311.pyc,, +trimesh/__pycache__/iteration.cpython-311.pyc,, +trimesh/__pycache__/nsphere.cpython-311.pyc,, +trimesh/__pycache__/parent.cpython-311.pyc,, +trimesh/__pycache__/permutate.cpython-311.pyc,, +trimesh/__pycache__/points.cpython-311.pyc,, +trimesh/__pycache__/poses.cpython-311.pyc,, +trimesh/__pycache__/primitives.cpython-311.pyc,, +trimesh/__pycache__/proximity.cpython-311.pyc,, +trimesh/__pycache__/registration.cpython-311.pyc,, +trimesh/__pycache__/remesh.cpython-311.pyc,, +trimesh/__pycache__/rendering.cpython-311.pyc,, +trimesh/__pycache__/repair.cpython-311.pyc,, +trimesh/__pycache__/resolvers.cpython-311.pyc,, +trimesh/__pycache__/sample.cpython-311.pyc,, +trimesh/__pycache__/schemas.cpython-311.pyc,, +trimesh/__pycache__/smoothing.cpython-311.pyc,, +trimesh/__pycache__/transformations.cpython-311.pyc,, +trimesh/__pycache__/triangles.cpython-311.pyc,, +trimesh/__pycache__/typed.cpython-311.pyc,, +trimesh/__pycache__/units.cpython-311.pyc,, +trimesh/__pycache__/util.cpython-311.pyc,, +trimesh/__pycache__/version.cpython-311.pyc,, +trimesh/base.py,sha256=EUgHguZa1LtBBFRW6FNDfsi7Ge8s3uU5pJn8S_JTBms,106508 +trimesh/boolean.py,sha256=p0zCS8_7td5LeZxP9cJmWfpuaHG7lySjcgQj2FnY0F8,5904 +trimesh/bounds.py,sha256=e6FJj3AhbGb6baXMyLJkHekdvZGFpjacTNeVrp1NZhk,20977 +trimesh/caching.py,sha256=r1HIwxvVCziPkvJ9cAxZyDtasvw9WZg8OvaBG3J-7xI,20121 +trimesh/collision.py,sha256=3GAnGG0tC7FxAAuKtWNT8smiEotnoz9OlOkmnW_hxYc,22582 +trimesh/comparison.py,sha256=mQM24IEeq6lFdarFRtGSWzcDnadgK2KUFFA_TAxUQUE,5233 +trimesh/constants.py,sha256=xJ1ln2A1outZwxiniEgY7eaKheZCsJGvn6S-ro36y3g,4937 +trimesh/convex.py,sha256=1qr1sBuWNWwnzlZGNn5Y6NBuAT8uXhz8OH67B5H3nxI,11475 +trimesh/creation.py,sha256=llrnQhqaITWbiw5F4mDWTzIKTKTCZRVgQbwqGYTfDoY,49097 +trimesh/curvature.py,sha256=NAmQRUsq-c2XmXD4AJBcUdBFEgbdz3rrz5YprkMcxqs,5639 +trimesh/decomposition.py,sha256=vxUb1HR3X34IJ8mZRjPCj7kk-MBXM_ti3HyjCgAzEIk,1503 +trimesh/exceptions.py,sha256=GzU9xHcbuTuMMw1_AmcgPaSB8Q7FmCUfKa3x1Xvxb3A,1464 +trimesh/exchange/__init__.py,sha256=mM-22o0bUVOJdj3EMUGdN3d1cvRI1JD_2TQs57jugIw,297 +trimesh/exchange/__pycache__/__init__.cpython-311.pyc,, +trimesh/exchange/__pycache__/binvox.cpython-311.pyc,, +trimesh/exchange/__pycache__/cascade.cpython-311.pyc,, +trimesh/exchange/__pycache__/dae.cpython-311.pyc,, +trimesh/exchange/__pycache__/export.cpython-311.pyc,, +trimesh/exchange/__pycache__/gltf.cpython-311.pyc,, +trimesh/exchange/__pycache__/load.cpython-311.pyc,, +trimesh/exchange/__pycache__/misc.cpython-311.pyc,, +trimesh/exchange/__pycache__/obj.cpython-311.pyc,, +trimesh/exchange/__pycache__/off.cpython-311.pyc,, +trimesh/exchange/__pycache__/ply.cpython-311.pyc,, +trimesh/exchange/__pycache__/stl.cpython-311.pyc,, +trimesh/exchange/__pycache__/threedxml.cpython-311.pyc,, +trimesh/exchange/__pycache__/threemf.cpython-311.pyc,, +trimesh/exchange/__pycache__/urdf.cpython-311.pyc,, +trimesh/exchange/__pycache__/xaml.cpython-311.pyc,, +trimesh/exchange/__pycache__/xyz.cpython-311.pyc,, +trimesh/exchange/binvox.py,sha256=JSoa6LgEoPA56vt-S9BTqMXg-XHof9zFXuSHQSIVKtM,17629 +trimesh/exchange/cascade.py,sha256=3VTa4uP04gtXMtby5-0_-5PsLEVM-YxHRRwYnig1Ivw,2122 +trimesh/exchange/dae.py,sha256=jYDDo4NcjHrKlMFJYk8bTQ_L7CgAy074V8yIXOh8pFM,14910 +trimesh/exchange/export.py,sha256=9zgkbp05jsK-PLi4kVb6ldVG4tJWFgsf8_pN-zU0874,10460 +trimesh/exchange/gltf.py,sha256=qBMGIPrZfCIxcndf0_kRyoYXWdQHtV6u3Dp2QwykYIc,74044 +trimesh/exchange/load.py,sha256=VuxCB9Phr5bJZOJcyGCX9-VywF4ZRcA79aUoa0gXgzE,21236 +trimesh/exchange/misc.py,sha256=YM_eZh8jKbMlWMNUNfcQftpMob-vuG9OyJWoZ2Mk_Ok,4515 +trimesh/exchange/obj.py,sha256=FtW9QtGfjpPh4SMpdVeQsvUXGWQc58NjZKcT-vEdUU8,35621 +trimesh/exchange/off.py,sha256=JjUaWfQDzJyEpZdQ0FROCBvQtx-uxQ76iCZpknz749E,2764 +trimesh/exchange/ply.py,sha256=FR1ET8MzWYNUlPPekUwshQYVeIZgr4Olr2sBxYfnasw,37458 +trimesh/exchange/stl.py,sha256=1fJ6syQzOSzsKzK9qsK-dC4pimKOHIUtdo2Qu_F1Lgw,10151 +trimesh/exchange/threedxml.py,sha256=83pX2euRRoPcgpwR4kTMNmh4TbDT4Zxg2pzxvsXQ0Yc,15868 +trimesh/exchange/threemf.py,sha256=8J6A1hrnx54OViAhmHQDhajWZ-CaKySec5Wq2g5Qq9Q,18991 +trimesh/exchange/urdf.py,sha256=3Uz9TvL3k9e3mdOlZAF50EfAEcSqsjr_MG0inBScchw,5361 +trimesh/exchange/xaml.py,sha256=zsLTJ3nvjsXeLRfs2HV1fIy1ILOcslDB8sba4eOqmsg,5339 +trimesh/exchange/xyz.py,sha256=aiQqenP2jJnGIONYyZUL27DeBj0ZAzvf4BRQBA5BUXY,2961 +trimesh/geometry.py,sha256=XZfFFEBin5lp6_lsk9WwF5sfjoVPTIRvXzJiF1pI2bg,14393 +trimesh/graph.py,sha256=n3Q7QIuc0MQIU7IRniH1s7TxNsrT3edn47rwrDNw9XM,30671 +trimesh/grouping.py,sha256=jPCr0UilV2do69G9KsvPmaCJ0tc_axgH20FjqNQs3yA,26791 +trimesh/inertia.py,sha256=zsU1s6Bw19cY5zOmTGRs6S_6OM5T0faH4CtgtMBvmIw,10962 +trimesh/interfaces/__init__.py,sha256=17dhVVvYQG-0ynilMhw2HX1X8vTByVksjwASnNtwoN4,45 +trimesh/interfaces/__pycache__/__init__.cpython-311.pyc,, +trimesh/interfaces/__pycache__/blender.cpython-311.pyc,, +trimesh/interfaces/__pycache__/generic.cpython-311.pyc,, +trimesh/interfaces/blender.py,sha256=6jMWjAjc54eq5hj6IFxvlvxMYn6sWtdpCmn_XfwoFCU,4704 +trimesh/interfaces/generic.py,sha256=Rhh3alOSGl6kZtBVvqQyg6mBtC1TW6-8eZF_R3OXK3k,3523 +trimesh/intersections.py,sha256=zbrAvNgmi-MTsxKxwP38aRGzGb0mCjIGbrfJgxT_csY,28549 +trimesh/interval.py,sha256=mi0Gny6nfzSZBVBQVSowIMhntlXj0FTdv4V5BAF4iuA,2746 +trimesh/iteration.py,sha256=XFogHL5FwCK19Hwv4YUg_g92vipoHUEVZuK1oCdvRJo,3551 +trimesh/nsphere.py,sha256=EzcMZ1i7c1_zEnd5vmuhrxNA4_diX8yWju1ronsh7bc,6028 +trimesh/parent.py,sha256=v_1S30ZK-JXelzS0xGthYr_QHUAHcq6B61BiitLFTaM,12024 +trimesh/path/__init__.py,sha256=Sfnb4j9VssDXhC45phbrFtcR5lw4k3MXQJg0UDz1y58,378 +trimesh/path/__pycache__/__init__.cpython-311.pyc,, +trimesh/path/__pycache__/arc.cpython-311.pyc,, +trimesh/path/__pycache__/creation.cpython-311.pyc,, +trimesh/path/__pycache__/curve.cpython-311.pyc,, +trimesh/path/__pycache__/entities.cpython-311.pyc,, +trimesh/path/__pycache__/intersections.cpython-311.pyc,, +trimesh/path/__pycache__/packing.cpython-311.pyc,, +trimesh/path/__pycache__/path.cpython-311.pyc,, +trimesh/path/__pycache__/polygons.cpython-311.pyc,, +trimesh/path/__pycache__/raster.cpython-311.pyc,, +trimesh/path/__pycache__/repair.cpython-311.pyc,, +trimesh/path/__pycache__/segments.cpython-311.pyc,, +trimesh/path/__pycache__/simplify.cpython-311.pyc,, +trimesh/path/__pycache__/traversal.cpython-311.pyc,, +trimesh/path/__pycache__/util.cpython-311.pyc,, +trimesh/path/arc.py,sha256=xrDsJXEPVqSv518ZcLyu46qxsVCYu7TJoOq4pVg0-w8,8315 +trimesh/path/creation.py,sha256=bP5_piTXXdEWwlBod7tKXs-anAgVwsqanNR8JsoJE_c,8553 +trimesh/path/curve.py,sha256=ONBUGaFYzjyyPduOJC6HKca4KO38jOf1Fx3eKuxnGZc,3887 +trimesh/path/entities.py,sha256=hq60FbS-bKTlSRwpN7STbdAe3FetZt_CHaijgERxN8w,21896 +trimesh/path/exchange/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +trimesh/path/exchange/__pycache__/__init__.cpython-311.pyc,, +trimesh/path/exchange/__pycache__/dxf.cpython-311.pyc,, +trimesh/path/exchange/__pycache__/export.cpython-311.pyc,, +trimesh/path/exchange/__pycache__/load.cpython-311.pyc,, +trimesh/path/exchange/__pycache__/misc.cpython-311.pyc,, +trimesh/path/exchange/__pycache__/svg_io.cpython-311.pyc,, +trimesh/path/exchange/dxf.py,sha256=0_VFx8RZ786WewD4KHNMma8iIb8cT3o-1VtdqmiWS80,33130 +trimesh/path/exchange/export.py,sha256=i0hHHk87-xzJo-aftc7O6yp57zN6yppr-eGIh4-hT54,2004 +trimesh/path/exchange/load.py,sha256=Ob6X2on00zL3EfYKTwiYfovSiajChS9kJ95GqpoV_tw,2919 +trimesh/path/exchange/misc.py,sha256=K5BGEL5nlrje2FjI5CagEOR1GEAFxHGfxcPCYACpxIo,6559 +trimesh/path/exchange/svg_io.py,sha256=5DSxwxzgp5pjjf2McGXAtWevkwO_Igxr_DHkb0joVoM,26291 +trimesh/path/intersections.py,sha256=G5AGVQxKxmpgHO4JQg44D-Ldfg6IkxtgzEePee_WGC4,2238 +trimesh/path/packing.py,sha256=OoHw0twh4uN3dZDP30do1iutzzv3dtgh-mToVKDwDmw,26203 +trimesh/path/path.py,sha256=8-Ba9RGHh4wibGGwHXEpHeU6IQK58nJ67_Jnmrk1sJ4,47954 +trimesh/path/polygons.py,sha256=3M7-UbvfQsPzXvgPT0quH8ujsr_wLPrUaH4yNgVqsyk,31328 +trimesh/path/raster.py,sha256=ivo1Yx7_JSBD9a-gEsQ49a7Cb_Uf6Rv7caOGeXMm9-o,3200 +trimesh/path/repair.py,sha256=nxreZyvWvRB3v1LimbgNEAww-ZoNkr5A-CaklyBFrk8,3237 +trimesh/path/segments.py,sha256=avAOJqKLxpmycpr95NoIT3qKWLawkjQ6cbZrq7VwUbA,16350 +trimesh/path/simplify.py,sha256=zJfUxCRbCnsetjHsltp-bHr8SnhhSo2StK_AsIAXzSw,12553 +trimesh/path/traversal.py,sha256=9RzByoxSc0zw2QGL3u-f_r9R76iUQIPCQiI0lXh0Y54,16264 +trimesh/path/util.py,sha256=aoHsefWw6TFfNCfbjTNLJc4V5ePTL1JTziu2-3MPJwI,1767 +trimesh/permutate.py,sha256=oisg7IXbLH44ydS03pw51gdN-6-w7q6_uODQdjeMtUw,4506 +trimesh/points.py,sha256=Z2VGq26znWtpI8BvBJqvIL6QNHTtVn_iid5ybTcH7IU,21568 +trimesh/poses.py,sha256=L75slLjInJ740YA_Ecsle5u1JYpZ8eM-NWgCUD8zXZA,10267 +trimesh/primitives.py,sha256=z1BkdWsPXFADSHBuicNQKBMURI1Tna-7Nj1X7p24MeI,34062 +trimesh/proximity.py,sha256=w4qwZ5BHoKFwUlriiacNgHa81XUFXLf1U61FKkx__IQ,19118 +trimesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +trimesh/ray/__init__.py,sha256=5lNzMoKlQygP28tnIQgXNuoB9sjWdO92ZSdE44l_EI0,346 +trimesh/ray/__pycache__/__init__.cpython-311.pyc,, +trimesh/ray/__pycache__/ray_pyembree.cpython-311.pyc,, +trimesh/ray/__pycache__/ray_triangle.cpython-311.pyc,, +trimesh/ray/__pycache__/ray_util.cpython-311.pyc,, +trimesh/ray/ray_pyembree.py,sha256=t7BGV2jPqjGWShowflNpg9H9_A3iD9Ra6I4M4J1oSaU,11955 +trimesh/ray/ray_triangle.py,sha256=Dz5qOH7FXGKsmULoGZ3LpHDQ90P-y-M1-urNC4UjIQE,12741 +trimesh/ray/ray_util.py,sha256=BvzozaZ6in8ez0v4Fodsw-bkBsZwUPMeLi3znfz0mmY,4271 +trimesh/registration.py,sha256=QJN4AFN8APfNnVA7X20N6fzz83cmohiqxhMmH5iOcz4,41289 +trimesh/remesh.py,sha256=rl5cwR0M9NrZMFT5dikG9puz_eFx4UvsMxGoVfslJog,14728 +trimesh/rendering.py,sha256=gww6NqyK9tE5o4VKUcqStief6sOYLfgip9I-uCIgyuM,12296 +trimesh/repair.py,sha256=T81IQwhRPbbTTUV0jQsTYLIWZhx_KqV0gNG2SkyH6fY,15065 +trimesh/resolvers.py,sha256=gcec7wCNpYauyntQMclsypqqLAki_vkMNnP_Uo8-KJo,17218 +trimesh/resources/__init__.py,sha256=iKFtE_RbMiA0Eup-tga5KZavBjPogkeAKDVKbRUPg-M,2623 +trimesh/resources/__pycache__/__init__.cpython-311.pyc,, +trimesh/resources/color_map.json.gzip,sha256=0Edta1aXREyLNZ_ZM-fv_eEAIzKa7dvr8TLYA-wDFzU,16762 +trimesh/resources/creation.json,sha256=i72dHuxNOk2gbnSjYhWGTEL-WzeWdWR1e3t_3iDP0Ys,1084 +trimesh/resources/schema/README.md,sha256=ZwcnLfRg6Qd1eRMm3Kt9S-oi2yYh2RZT8pllnbYe0J0,443 +trimesh/resources/schema/gltf2.schema.zip,sha256=y9Fpkpfke71DmIXJO2gH5X4_gws7LXBvw6lEiOswjKg,24785 +trimesh/resources/schema/primitive/box.schema.json,sha256=STE93MwWVDyIbBTltXkVTXh6RmcALWO3JKAPrW5BpGQ,814 +trimesh/resources/schema/primitive/capsule.schema.json,sha256=347KHrkcRoGmwbTRxmOTDOTNFuf0pGRlOwGMGxOAeJc,774 +trimesh/resources/schema/primitive/cylinder.schema.json,sha256=Qvc2GhCsFDPLLx0PpD_zZE3I09lAjRbK7ZMDvyY7S34,785 +trimesh/resources/schema/primitive/extrusion.schema.json,sha256=HtKJPxN8DYFXDzVocthjZazbyx94TZlumVu_eRSKm0U,688 +trimesh/resources/schema/primitive/primitive.schema.json,sha256=GlsChe96ci2ptVzAn4_VU52xrvNdBewq77qzQQVWtEg,479 +trimesh/resources/schema/primitive/scenegraph.schema.json,sha256=Gn8inknthqkoXDyWjtVZdgO0nvC6aqWP58ESttGPDAU,791 +trimesh/resources/schema/primitive/sphere.schema.json,sha256=VvCqHrhVMSSyTBowtjBnUkeh6SX-pAK66_t6XfMLLvk,522 +trimesh/resources/schema/primitive/transform.schema.json,sha256=y4UBFIkUQ56ZUHcezFKLLnr68-ZQbWRtAGPKQsxSAlw,469 +trimesh/resources/schema/primitive/trimesh.schema.json,sha256=ioYYpvcrxKQirkbyHxKxh2plBtRXaV9fQU0Oq3WYt8U,859 +trimesh/resources/schema/primitive/wkt.polygon.schema.json,sha256=Jer6wgmVPZfnWGpbL-2rnUjq_HDc4OjUtytrzfX1loE,377 +trimesh/resources/schema/urdf.xsd,sha256=qiA_TEiCkEc8JOL91auwwSpa8xPy49OF0eWAtn1BEkE,11705 +trimesh/resources/templates/base.svg,sha256=MYfPqEHyr5ik4RVyHhludqVaPFJ5Wxjd_Pd32XK6y8c,190 +trimesh/resources/templates/blender_boolean.py.tmpl,sha256=uJ8W5QN-Alq-sRpA7MaJ1Xm3BxiIsEWbsUmTlHRPwIg,2012 +trimesh/resources/templates/blender_unwrap.py.template,sha256=GJOEzRKEtskHwD9PfyvNdEgA3umFeKlURrS0m0kp1As,1147 +trimesh/resources/templates/dxf.json,sha256=E3CfXHa_S5NIyt3FPd4WhLBrhJCQqFSdq9LCUtmLxlo,15667 +trimesh/resources/templates/path.svg,sha256=JPEKKh2lPcwuM0JrOl6iCUIjci-yrlUqq8T-AWUYyX0,36 +trimesh/resources/templates/ply.json,sha256=MxeHS5AqDqw4eQb_frkAoywxpkJxjSdcHu9DyPXpNkA,559 +trimesh/resources/templates/viewer.zip,sha256=chvLtgz_KYjO3-VHWSmU3tdAo0W6QJDhft3jgZMHScU,173435 +trimesh/resources/units_to_inches.json,sha256=vE68-GZL-EdUsDdFaSSBfyeqS8VwsSaWKL9W0TMXUaU,1261 +trimesh/sample.py,sha256=1ugaczSxzuu3_UrdUXBLBjGkFby2JhZdhPUrQTMeR60,7651 +trimesh/scene/__init__.py,sha256=vLW7-tLswsCiiANiRFeZ8LZpCyiEbeBXw9ZzDC64bTg,141 +trimesh/scene/__pycache__/__init__.cpython-311.pyc,, +trimesh/scene/__pycache__/cameras.cpython-311.pyc,, +trimesh/scene/__pycache__/lighting.cpython-311.pyc,, +trimesh/scene/__pycache__/scene.cpython-311.pyc,, +trimesh/scene/__pycache__/transforms.cpython-311.pyc,, +trimesh/scene/cameras.py,sha256=NpkKA6lc5feW8RvO6QvdEjro3ZZ3ScVNx-lsOeaCmi0,12166 +trimesh/scene/lighting.py,sha256=DjSvP08q2HMlZtxwO7MMJDORcW_J0QBxLFqbwsMbCnw,8736 +trimesh/scene/scene.py,sha256=rW4dCE3YZuFcWUzstknVf5DSjd1QpFpvXW6D75S9Lcc,54443 +trimesh/scene/transforms.py,sha256=oocyg0B7_X3Vu-PkH7oX7YEkn8HhtAc2BaBTUvkqk7s,27970 +trimesh/schemas.py,sha256=EKTwX16mVeQ5IPRQhXCoiDIIet_9DaYVNKnUx0MoMKo,1287 +trimesh/smoothing.py,sha256=p8Z4xKGl5nJW4sMFemc3qUZaxhzTFIBRGcxfjwCMhJM,12211 +trimesh/transformations.py,sha256=7RqrL88Uj9H-uZt_vOAXvSI-KdVR6Ci2VU3EHaUd0X0,74740 +trimesh/triangles.py,sha256=Np9NqpTO6CfoPOW-m86m4n1QLtyDF3HMJ0t5IkkrM0Y,22050 +trimesh/typed.py,sha256=egOvVRIU8NsiHXj0f0pFRuSKucS4fCG_Aw_Hhb7_Q64,2733 +trimesh/units.py,sha256=xwNz3uY3iwg-JPASrzAxs2Xv-LA8znPzjRCPZhs4Y2w,4600 +trimesh/util.py,sha256=cUuWfn5xYAxoIhliU3siPhcmJeMlEQNZP5EY0scu0fI,69551 +trimesh/version.py,sha256=iynR6kNp38O21qUq5c6xpLMbbYNhc2WfesdtT-Oq8Kk,1618 +trimesh/viewer/__init__.py,sha256=r44AIUtVX22NixYyIKwXA_wEoGRItByzTDfhc_EGqFk,861 +trimesh/viewer/__pycache__/__init__.cpython-311.pyc,, +trimesh/viewer/__pycache__/notebook.cpython-311.pyc,, +trimesh/viewer/__pycache__/trackball.cpython-311.pyc,, +trimesh/viewer/__pycache__/widget.cpython-311.pyc,, +trimesh/viewer/__pycache__/windowed.cpython-311.pyc,, +trimesh/viewer/notebook.py,sha256=yQieeH6aP0T2VrfxhZXUxJfZwmR8PThTJWaY43KU-Xk,4652 +trimesh/viewer/trackball.py,sha256=Ac223FA8TuI5NqtylRjsbwIrKOvohy5k2m3FyFSOXW4,8233 +trimesh/viewer/widget.py,sha256=h7wkc_-P2XrTZdGjvMY4F3gl8tlKCZAoBNzFfIMRlNk,9561 +trimesh/viewer/windowed.py,sha256=U2ACdVSU37QKlN_LmHV6Hi3THnmj1IYWI-MQHUVHv3M,31760 +trimesh/visual/__init__.py,sha256=dGTdTpHWt66Rt7IvzqQivdlWNgH-ofHUD9iTfRm78_E,828 +trimesh/visual/__pycache__/__init__.cpython-311.pyc,, +trimesh/visual/__pycache__/base.cpython-311.pyc,, +trimesh/visual/__pycache__/color.cpython-311.pyc,, +trimesh/visual/__pycache__/gloss.cpython-311.pyc,, +trimesh/visual/__pycache__/material.cpython-311.pyc,, +trimesh/visual/__pycache__/objects.cpython-311.pyc,, +trimesh/visual/__pycache__/texture.cpython-311.pyc,, +trimesh/visual/base.py,sha256=rLBIbRocEqx_NNgh-YK1Hgd5tY1V5PIEOTLKrd4Bajk,1014 +trimesh/visual/color.py,sha256=oNLuQE54_2mLGgth9l_PMwex0gGDuPJcsAcQBt1XmEk,36450 +trimesh/visual/gloss.py,sha256=zHJ72dZ1qH8-W28odZ3oFQ_Yw-J2uJerjaoan0OEr6s,14601 +trimesh/visual/material.py,sha256=fQQ9WAtNeHPlwALKVQ28b4OY73mILZFX1TR-nX9wK4w,36111 +trimesh/visual/objects.py,sha256=zqoB_BEBoMM06_8IlcEZmJCudN7-I6oIYelO2fXZNzs,2554 +trimesh/visual/texture.py,sha256=SiNtJFo_nW3YohFwDqTo14tkT6vx_BK5u5ZyF3BwnFU,10677 +trimesh/voxel/__init__.py,sha256=cRHtVx79ffVWI7GDV9YURMYzuRYqgcGQ4MKBXTFiLjk,88 +trimesh/voxel/__pycache__/__init__.cpython-311.pyc,, +trimesh/voxel/__pycache__/base.cpython-311.pyc,, +trimesh/voxel/__pycache__/creation.cpython-311.pyc,, +trimesh/voxel/__pycache__/encoding.cpython-311.pyc,, +trimesh/voxel/__pycache__/morphology.cpython-311.pyc,, +trimesh/voxel/__pycache__/ops.cpython-311.pyc,, +trimesh/voxel/__pycache__/runlength.cpython-311.pyc,, +trimesh/voxel/__pycache__/transforms.cpython-311.pyc,, +trimesh/voxel/base.py,sha256=XXvxPQ9bFEsCfyQobpiXfg1omJoMdprGfPRSo6VOW0s,12663 +trimesh/voxel/creation.py,sha256=TB8FMWdnaWN4VDJtaJKGNXHLQuiT7qvUhPWV-GJFuh8,9687 +trimesh/voxel/encoding.py,sha256=6pvX8fAHmWtKC6HyHdEOoxLkJqIXmL3qjDnHb2Dm4Is,27740 +trimesh/voxel/morphology.py,sha256=Pv1uqH3NVfGi1oUtt8alywmiAsqVOBGJDlvYpS5qj20,5455 +trimesh/voxel/ops.py,sha256=f_EpMe_68Bg25PH3cToKwXQv_zpdjmfa8riYweQAyQI,13645 +trimesh/voxel/runlength.py,sha256=AH3UJnjtQQrPt81u2kqfxHcXxlh9uAzqUzDvFSiCw5U,20297 +trimesh/voxel/transforms.py,sha256=1e80QD3343LuTwyqANPTuS-ZZiAaiCCayU03byt2p9U,5291 diff --git a/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/WHEEL b/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/WHEEL new file mode 100644 index 0000000..e7fa31b --- /dev/null +++ b/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/entry_points.txt b/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/entry_points.txt new file mode 100644 index 0000000..0e2a43f --- /dev/null +++ b/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +trimesh = trimesh:__main__.main diff --git a/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/licenses/LICENSE.md b/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/licenses/LICENSE.md new file mode 100644 index 0000000..d057112 --- /dev/null +++ b/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/licenses/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2023 Michael Dawson-Haggerty + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/top_level.txt new file mode 100644 index 0000000..f0bbb9c --- /dev/null +++ b/venv/lib/python3.11/site-packages/trimesh-4.9.0.dist-info/top_level.txt @@ -0,0 +1 @@ +trimesh diff --git a/venv/lib/python3.11/site-packages/typing_extensions-4.15.0.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/typing_extensions-4.15.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/typing_extensions-4.15.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/typing_extensions-4.15.0.dist-info/METADATA b/venv/lib/python3.11/site-packages/typing_extensions-4.15.0.dist-info/METADATA new file mode 100644 index 0000000..b09cb50 --- /dev/null +++ b/venv/lib/python3.11/site-packages/typing_extensions-4.15.0.dist-info/METADATA @@ -0,0 +1,72 @@ +Metadata-Version: 2.4 +Name: typing_extensions +Version: 4.15.0 +Summary: Backported and Experimental Type Hints for Python 3.9+ +Keywords: annotations,backport,checker,checking,function,hinting,hints,type,typechecking,typehinting,typehints,typing +Author-email: "Guido van Rossum, Jukka Lehtosalo, Łukasz Langa, Michael Lee" +Requires-Python: >=3.9 +Description-Content-Type: text/markdown +License-Expression: PSF-2.0 +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Console +Classifier: Intended Audience :: Developers +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Topic :: Software Development +License-File: LICENSE +Project-URL: Bug Tracker, https://github.com/python/typing_extensions/issues +Project-URL: Changes, https://github.com/python/typing_extensions/blob/main/CHANGELOG.md +Project-URL: Documentation, https://typing-extensions.readthedocs.io/ +Project-URL: Home, https://github.com/python/typing_extensions +Project-URL: Q & A, https://github.com/python/typing/discussions +Project-URL: Repository, https://github.com/python/typing_extensions + +# Typing Extensions + +[![Chat at https://gitter.im/python/typing](https://badges.gitter.im/python/typing.svg)](https://gitter.im/python/typing) + +[Documentation](https://typing-extensions.readthedocs.io/en/latest/#) – +[PyPI](https://pypi.org/project/typing-extensions/) + +## Overview + +The `typing_extensions` module serves two related purposes: + +- Enable use of new type system features on older Python versions. For example, + `typing.TypeGuard` is new in Python 3.10, but `typing_extensions` allows + users on previous Python versions to use it too. +- Enable experimentation with new type system PEPs before they are accepted and + added to the `typing` module. + +`typing_extensions` is treated specially by static type checkers such as +mypy and pyright. Objects defined in `typing_extensions` are treated the same +way as equivalent forms in `typing`. + +`typing_extensions` uses +[Semantic Versioning](https://semver.org/). The +major version will be incremented only for backwards-incompatible changes. +Therefore, it's safe to depend +on `typing_extensions` like this: `typing_extensions ~=x.y`, +where `x.y` is the first version that includes all features you need. +[This](https://packaging.python.org/en/latest/specifications/version-specifiers/#compatible-release) +is equivalent to `typing_extensions >=x.y, <(x+1)`. Do not depend on `~= x.y.z` +unless you really know what you're doing; that defeats the purpose of +semantic versioning. + +## Included items + +See [the documentation](https://typing-extensions.readthedocs.io/en/latest/#) for a +complete listing of module contents. + +## Contributing + +See [CONTRIBUTING.md](https://github.com/python/typing_extensions/blob/main/CONTRIBUTING.md) +for how to contribute to `typing_extensions`. + diff --git a/venv/lib/python3.11/site-packages/typing_extensions-4.15.0.dist-info/RECORD b/venv/lib/python3.11/site-packages/typing_extensions-4.15.0.dist-info/RECORD new file mode 100644 index 0000000..97a3a50 --- /dev/null +++ b/venv/lib/python3.11/site-packages/typing_extensions-4.15.0.dist-info/RECORD @@ -0,0 +1,7 @@ +__pycache__/typing_extensions.cpython-311.pyc,, +typing_extensions-4.15.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +typing_extensions-4.15.0.dist-info/METADATA,sha256=wTg3j-jxiTSsmd4GBTXFPsbBOu7WXpTDJkHafuMZKnI,3259 +typing_extensions-4.15.0.dist-info/RECORD,, +typing_extensions-4.15.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82 +typing_extensions-4.15.0.dist-info/licenses/LICENSE,sha256=Oy-B_iHRgcSZxZolbI4ZaEVdZonSaaqFNzv7avQdo78,13936 +typing_extensions.py,sha256=Qz0R0XDTok0usGXrwb_oSM6n49fOaFZ6tSvqLUwvftg,160429 diff --git a/venv/lib/python3.11/site-packages/typing_extensions-4.15.0.dist-info/WHEEL b/venv/lib/python3.11/site-packages/typing_extensions-4.15.0.dist-info/WHEEL new file mode 100644 index 0000000..d8b9936 --- /dev/null +++ b/venv/lib/python3.11/site-packages/typing_extensions-4.15.0.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: flit 3.12.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/typing_extensions-4.15.0.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/typing_extensions-4.15.0.dist-info/licenses/LICENSE new file mode 100644 index 0000000..f26bcf4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/typing_extensions-4.15.0.dist-info/licenses/LICENSE @@ -0,0 +1,279 @@ +A. HISTORY OF THE SOFTWARE +========================== + +Python was created in the early 1990s by Guido van Rossum at Stichting +Mathematisch Centrum (CWI, see https://www.cwi.nl) in the Netherlands +as a successor of a language called ABC. Guido remains Python's +principal author, although it includes many contributions from others. + +In 1995, Guido continued his work on Python at the Corporation for +National Research Initiatives (CNRI, see https://www.cnri.reston.va.us) +in Reston, Virginia where he released several versions of the +software. + +In May 2000, Guido and the Python core development team moved to +BeOpen.com to form the BeOpen PythonLabs team. In October of the same +year, the PythonLabs team moved to Digital Creations, which became +Zope Corporation. In 2001, the Python Software Foundation (PSF, see +https://www.python.org/psf/) was formed, a non-profit organization +created specifically to own Python-related Intellectual Property. +Zope Corporation was a sponsoring member of the PSF. + +All Python releases are Open Source (see https://opensource.org for +the Open Source Definition). Historically, most, but not all, Python +releases have also been GPL-compatible; the table below summarizes +the various releases. + + Release Derived Year Owner GPL- + from compatible? (1) + + 0.9.0 thru 1.2 1991-1995 CWI yes + 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes + 1.6 1.5.2 2000 CNRI no + 2.0 1.6 2000 BeOpen.com no + 1.6.1 1.6 2001 CNRI yes (2) + 2.1 2.0+1.6.1 2001 PSF no + 2.0.1 2.0+1.6.1 2001 PSF yes + 2.1.1 2.1+2.0.1 2001 PSF yes + 2.1.2 2.1.1 2002 PSF yes + 2.1.3 2.1.2 2002 PSF yes + 2.2 and above 2.1.1 2001-now PSF yes + +Footnotes: + +(1) GPL-compatible doesn't mean that we're distributing Python under + the GPL. All Python licenses, unlike the GPL, let you distribute + a modified version without making your changes open source. The + GPL-compatible licenses make it possible to combine Python with + other software that is released under the GPL; the others don't. + +(2) According to Richard Stallman, 1.6.1 is not GPL-compatible, + because its license has a choice of law clause. According to + CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1 + is "not incompatible" with the GPL. + +Thanks to the many outside volunteers who have worked under Guido's +direction to make these releases possible. + + +B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON +=============================================================== + +Python software and documentation are licensed under the +Python Software Foundation License Version 2. + +Starting with Python 3.8.6, examples, recipes, and other code in +the documentation are dual licensed under the PSF License Version 2 +and the Zero-Clause BSD license. + +Some software incorporated into Python is under different licenses. +The licenses are listed with code falling under that license. + + +PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 +-------------------------------------------- + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using this software ("Python") in source or binary form and +its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF hereby +grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, +analyze, test, perform and/or display publicly, prepare derivative works, +distribute, and otherwise use Python alone or in any derivative version, +provided, however, that PSF's License Agreement and PSF's notice of copyright, +i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Python Software Foundation; +All Rights Reserved" are retained in Python alone or in any derivative version +prepared by Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python. + +4. PSF is making Python available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 +------------------------------------------- + +BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 + +1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an +office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the +Individual or Organization ("Licensee") accessing and otherwise using +this software in source or binary form and its associated +documentation ("the Software"). + +2. Subject to the terms and conditions of this BeOpen Python License +Agreement, BeOpen hereby grants Licensee a non-exclusive, +royalty-free, world-wide license to reproduce, analyze, test, perform +and/or display publicly, prepare derivative works, distribute, and +otherwise use the Software alone or in any derivative version, +provided, however, that the BeOpen Python License is retained in the +Software, alone or in any derivative version prepared by Licensee. + +3. BeOpen is making the Software available to Licensee on an "AS IS" +basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE +SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS +AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY +DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +5. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +6. This License Agreement shall be governed by and interpreted in all +respects by the law of the State of California, excluding conflict of +law provisions. Nothing in this License Agreement shall be deemed to +create any relationship of agency, partnership, or joint venture +between BeOpen and Licensee. This License Agreement does not grant +permission to use BeOpen trademarks or trade names in a trademark +sense to endorse or promote products or services of Licensee, or any +third party. As an exception, the "BeOpen Python" logos available at +http://www.pythonlabs.com/logos.html may be used according to the +permissions granted on that web page. + +7. By copying, installing or otherwise using the software, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 +--------------------------------------- + +1. This LICENSE AGREEMENT is between the Corporation for National +Research Initiatives, having an office at 1895 Preston White Drive, +Reston, VA 20191 ("CNRI"), and the Individual or Organization +("Licensee") accessing and otherwise using Python 1.6.1 software in +source or binary form and its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, CNRI +hereby grants Licensee a nonexclusive, royalty-free, world-wide +license to reproduce, analyze, test, perform and/or display publicly, +prepare derivative works, distribute, and otherwise use Python 1.6.1 +alone or in any derivative version, provided, however, that CNRI's +License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) +1995-2001 Corporation for National Research Initiatives; All Rights +Reserved" are retained in Python 1.6.1 alone or in any derivative +version prepared by Licensee. Alternately, in lieu of CNRI's License +Agreement, Licensee may substitute the following text (omitting the +quotes): "Python 1.6.1 is made available subject to the terms and +conditions in CNRI's License Agreement. This Agreement together with +Python 1.6.1 may be located on the internet using the following +unique, persistent identifier (known as a handle): 1895.22/1013. This +Agreement may also be obtained from a proxy server on the internet +using the following URL: http://hdl.handle.net/1895.22/1013". + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python 1.6.1 or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python 1.6.1. + +4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" +basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. This License Agreement shall be governed by the federal +intellectual property law of the United States, including without +limitation the federal copyright law, and, to the extent such +U.S. federal law does not apply, by the law of the Commonwealth of +Virginia, excluding Virginia's conflict of law provisions. +Notwithstanding the foregoing, with regard to derivative works based +on Python 1.6.1 that incorporate non-separable material that was +previously distributed under the GNU General Public License (GPL), the +law of the Commonwealth of Virginia shall govern this License +Agreement only as to issues arising under or with respect to +Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this +License Agreement shall be deemed to create any relationship of +agency, partnership, or joint venture between CNRI and Licensee. This +License Agreement does not grant permission to use CNRI trademarks or +trade name in a trademark sense to endorse or promote products or +services of Licensee, or any third party. + +8. By clicking on the "ACCEPT" button where indicated, or by copying, +installing or otherwise using Python 1.6.1, Licensee agrees to be +bound by the terms and conditions of this License Agreement. + + ACCEPT + + +CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 +-------------------------------------------------- + +Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, +The Netherlands. All rights reserved. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Stichting Mathematisch +Centrum or CWI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON DOCUMENTATION +---------------------------------------------------------------------- + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/typing_extensions.py b/venv/lib/python3.11/site-packages/typing_extensions.py new file mode 100644 index 0000000..77f33e1 --- /dev/null +++ b/venv/lib/python3.11/site-packages/typing_extensions.py @@ -0,0 +1,4317 @@ +import abc +import builtins +import collections +import collections.abc +import contextlib +import enum +import functools +import inspect +import io +import keyword +import operator +import sys +import types as _types +import typing +import warnings + +# Breakpoint: https://github.com/python/cpython/pull/119891 +if sys.version_info >= (3, 14): + import annotationlib + +__all__ = [ + # Super-special typing primitives. + 'Any', + 'ClassVar', + 'Concatenate', + 'Final', + 'LiteralString', + 'ParamSpec', + 'ParamSpecArgs', + 'ParamSpecKwargs', + 'Self', + 'Type', + 'TypeVar', + 'TypeVarTuple', + 'Unpack', + + # ABCs (from collections.abc). + 'Awaitable', + 'AsyncIterator', + 'AsyncIterable', + 'Coroutine', + 'AsyncGenerator', + 'AsyncContextManager', + 'Buffer', + 'ChainMap', + + # Concrete collection types. + 'ContextManager', + 'Counter', + 'Deque', + 'DefaultDict', + 'NamedTuple', + 'OrderedDict', + 'TypedDict', + + # Structural checks, a.k.a. protocols. + 'SupportsAbs', + 'SupportsBytes', + 'SupportsComplex', + 'SupportsFloat', + 'SupportsIndex', + 'SupportsInt', + 'SupportsRound', + 'Reader', + 'Writer', + + # One-off things. + 'Annotated', + 'assert_never', + 'assert_type', + 'clear_overloads', + 'dataclass_transform', + 'deprecated', + 'disjoint_base', + 'Doc', + 'evaluate_forward_ref', + 'get_overloads', + 'final', + 'Format', + 'get_annotations', + 'get_args', + 'get_origin', + 'get_original_bases', + 'get_protocol_members', + 'get_type_hints', + 'IntVar', + 'is_protocol', + 'is_typeddict', + 'Literal', + 'NewType', + 'overload', + 'override', + 'Protocol', + 'Sentinel', + 'reveal_type', + 'runtime', + 'runtime_checkable', + 'Text', + 'TypeAlias', + 'TypeAliasType', + 'TypeForm', + 'TypeGuard', + 'TypeIs', + 'TYPE_CHECKING', + 'type_repr', + 'Never', + 'NoReturn', + 'ReadOnly', + 'Required', + 'NotRequired', + 'NoDefault', + 'NoExtraItems', + + # Pure aliases, have always been in typing + 'AbstractSet', + 'AnyStr', + 'BinaryIO', + 'Callable', + 'Collection', + 'Container', + 'Dict', + 'ForwardRef', + 'FrozenSet', + 'Generator', + 'Generic', + 'Hashable', + 'IO', + 'ItemsView', + 'Iterable', + 'Iterator', + 'KeysView', + 'List', + 'Mapping', + 'MappingView', + 'Match', + 'MutableMapping', + 'MutableSequence', + 'MutableSet', + 'Optional', + 'Pattern', + 'Reversible', + 'Sequence', + 'Set', + 'Sized', + 'TextIO', + 'Tuple', + 'Union', + 'ValuesView', + 'cast', + 'no_type_check', + 'no_type_check_decorator', +] + +# for backward compatibility +PEP_560 = True +GenericMeta = type +# Breakpoint: https://github.com/python/cpython/pull/116129 +_PEP_696_IMPLEMENTED = sys.version_info >= (3, 13, 0, "beta") + +# Added with bpo-45166 to 3.10.1+ and some 3.9 versions +_FORWARD_REF_HAS_CLASS = "__forward_is_class__" in typing.ForwardRef.__slots__ + +# The functions below are modified copies of typing internal helpers. +# They are needed by _ProtocolMeta and they provide support for PEP 646. + + +class _Sentinel: + def __repr__(self): + return "" + + +_marker = _Sentinel() + + +# Breakpoint: https://github.com/python/cpython/pull/27342 +if sys.version_info >= (3, 10): + def _should_collect_from_parameters(t): + return isinstance( + t, (typing._GenericAlias, _types.GenericAlias, _types.UnionType) + ) +else: + def _should_collect_from_parameters(t): + return isinstance(t, (typing._GenericAlias, _types.GenericAlias)) + + +NoReturn = typing.NoReturn + +# Some unconstrained type variables. These are used by the container types. +# (These are not for export.) +T = typing.TypeVar('T') # Any type. +KT = typing.TypeVar('KT') # Key type. +VT = typing.TypeVar('VT') # Value type. +T_co = typing.TypeVar('T_co', covariant=True) # Any type covariant containers. +T_contra = typing.TypeVar('T_contra', contravariant=True) # Ditto contravariant. + + +# Breakpoint: https://github.com/python/cpython/pull/31841 +if sys.version_info >= (3, 11): + from typing import Any +else: + + class _AnyMeta(type): + def __instancecheck__(self, obj): + if self is Any: + raise TypeError("typing_extensions.Any cannot be used with isinstance()") + return super().__instancecheck__(obj) + + def __repr__(self): + if self is Any: + return "typing_extensions.Any" + return super().__repr__() + + class Any(metaclass=_AnyMeta): + """Special type indicating an unconstrained type. + - Any is compatible with every type. + - Any assumed to have all methods. + - All values assumed to be instances of Any. + Note that all the above statements are true from the point of view of + static type checkers. At runtime, Any should not be used with instance + checks. + """ + def __new__(cls, *args, **kwargs): + if cls is Any: + raise TypeError("Any cannot be instantiated") + return super().__new__(cls, *args, **kwargs) + + +ClassVar = typing.ClassVar + +# Vendored from cpython typing._SpecialFrom +# Having a separate class means that instances will not be rejected by +# typing._type_check. +class _SpecialForm(typing._Final, _root=True): + __slots__ = ('_name', '__doc__', '_getitem') + + def __init__(self, getitem): + self._getitem = getitem + self._name = getitem.__name__ + self.__doc__ = getitem.__doc__ + + def __getattr__(self, item): + if item in {'__name__', '__qualname__'}: + return self._name + + raise AttributeError(item) + + def __mro_entries__(self, bases): + raise TypeError(f"Cannot subclass {self!r}") + + def __repr__(self): + return f'typing_extensions.{self._name}' + + def __reduce__(self): + return self._name + + def __call__(self, *args, **kwds): + raise TypeError(f"Cannot instantiate {self!r}") + + def __or__(self, other): + return typing.Union[self, other] + + def __ror__(self, other): + return typing.Union[other, self] + + def __instancecheck__(self, obj): + raise TypeError(f"{self} cannot be used with isinstance()") + + def __subclasscheck__(self, cls): + raise TypeError(f"{self} cannot be used with issubclass()") + + @typing._tp_cache + def __getitem__(self, parameters): + return self._getitem(self, parameters) + + +# Note that inheriting from this class means that the object will be +# rejected by typing._type_check, so do not use it if the special form +# is arguably valid as a type by itself. +class _ExtensionsSpecialForm(typing._SpecialForm, _root=True): + def __repr__(self): + return 'typing_extensions.' + self._name + + +Final = typing.Final + +# Breakpoint: https://github.com/python/cpython/pull/30530 +if sys.version_info >= (3, 11): + final = typing.final +else: + # @final exists in 3.8+, but we backport it for all versions + # before 3.11 to keep support for the __final__ attribute. + # See https://bugs.python.org/issue46342 + def final(f): + """This decorator can be used to indicate to type checkers that + the decorated method cannot be overridden, and decorated class + cannot be subclassed. For example: + + class Base: + @final + def done(self) -> None: + ... + class Sub(Base): + def done(self) -> None: # Error reported by type checker + ... + @final + class Leaf: + ... + class Other(Leaf): # Error reported by type checker + ... + + There is no runtime checking of these properties. The decorator + sets the ``__final__`` attribute to ``True`` on the decorated object + to allow runtime introspection. + """ + try: + f.__final__ = True + except (AttributeError, TypeError): + # Skip the attribute silently if it is not writable. + # AttributeError happens if the object has __slots__ or a + # read-only property, TypeError if it's a builtin class. + pass + return f + + +if hasattr(typing, "disjoint_base"): # 3.15 + disjoint_base = typing.disjoint_base +else: + def disjoint_base(cls): + """This decorator marks a class as a disjoint base. + + Child classes of a disjoint base cannot inherit from other disjoint bases that are + not parent classes of the disjoint base. + + For example: + + @disjoint_base + class Disjoint1: pass + + @disjoint_base + class Disjoint2: pass + + class Disjoint3(Disjoint1, Disjoint2): pass # Type checker error + + Type checkers can use knowledge of disjoint bases to detect unreachable code + and determine when two types can overlap. + + See PEP 800.""" + cls.__disjoint_base__ = True + return cls + + +def IntVar(name): + return typing.TypeVar(name) + + +# A Literal bug was fixed in 3.11.0, 3.10.1 and 3.9.8 +# Breakpoint: https://github.com/python/cpython/pull/29334 +if sys.version_info >= (3, 10, 1): + Literal = typing.Literal +else: + def _flatten_literal_params(parameters): + """An internal helper for Literal creation: flatten Literals among parameters""" + params = [] + for p in parameters: + if isinstance(p, _LiteralGenericAlias): + params.extend(p.__args__) + else: + params.append(p) + return tuple(params) + + def _value_and_type_iter(params): + for p in params: + yield p, type(p) + + class _LiteralGenericAlias(typing._GenericAlias, _root=True): + def __eq__(self, other): + if not isinstance(other, _LiteralGenericAlias): + return NotImplemented + these_args_deduped = set(_value_and_type_iter(self.__args__)) + other_args_deduped = set(_value_and_type_iter(other.__args__)) + return these_args_deduped == other_args_deduped + + def __hash__(self): + return hash(frozenset(_value_and_type_iter(self.__args__))) + + class _LiteralForm(_ExtensionsSpecialForm, _root=True): + def __init__(self, doc: str): + self._name = 'Literal' + self._doc = self.__doc__ = doc + + def __getitem__(self, parameters): + if not isinstance(parameters, tuple): + parameters = (parameters,) + + parameters = _flatten_literal_params(parameters) + + val_type_pairs = list(_value_and_type_iter(parameters)) + try: + deduped_pairs = set(val_type_pairs) + except TypeError: + # unhashable parameters + pass + else: + # similar logic to typing._deduplicate on Python 3.9+ + if len(deduped_pairs) < len(val_type_pairs): + new_parameters = [] + for pair in val_type_pairs: + if pair in deduped_pairs: + new_parameters.append(pair[0]) + deduped_pairs.remove(pair) + assert not deduped_pairs, deduped_pairs + parameters = tuple(new_parameters) + + return _LiteralGenericAlias(self, parameters) + + Literal = _LiteralForm(doc="""\ + A type that can be used to indicate to type checkers + that the corresponding value has a value literally equivalent + to the provided parameter. For example: + + var: Literal[4] = 4 + + The type checker understands that 'var' is literally equal to + the value 4 and no other value. + + Literal[...] cannot be subclassed. There is no runtime + checking verifying that the parameter is actually a value + instead of a type.""") + + +_overload_dummy = typing._overload_dummy + + +if hasattr(typing, "get_overloads"): # 3.11+ + overload = typing.overload + get_overloads = typing.get_overloads + clear_overloads = typing.clear_overloads +else: + # {module: {qualname: {firstlineno: func}}} + _overload_registry = collections.defaultdict( + functools.partial(collections.defaultdict, dict) + ) + + def overload(func): + """Decorator for overloaded functions/methods. + + In a stub file, place two or more stub definitions for the same + function in a row, each decorated with @overload. For example: + + @overload + def utf8(value: None) -> None: ... + @overload + def utf8(value: bytes) -> bytes: ... + @overload + def utf8(value: str) -> bytes: ... + + In a non-stub file (i.e. a regular .py file), do the same but + follow it with an implementation. The implementation should *not* + be decorated with @overload. For example: + + @overload + def utf8(value: None) -> None: ... + @overload + def utf8(value: bytes) -> bytes: ... + @overload + def utf8(value: str) -> bytes: ... + def utf8(value): + # implementation goes here + + The overloads for a function can be retrieved at runtime using the + get_overloads() function. + """ + # classmethod and staticmethod + f = getattr(func, "__func__", func) + try: + _overload_registry[f.__module__][f.__qualname__][ + f.__code__.co_firstlineno + ] = func + except AttributeError: + # Not a normal function; ignore. + pass + return _overload_dummy + + def get_overloads(func): + """Return all defined overloads for *func* as a sequence.""" + # classmethod and staticmethod + f = getattr(func, "__func__", func) + if f.__module__ not in _overload_registry: + return [] + mod_dict = _overload_registry[f.__module__] + if f.__qualname__ not in mod_dict: + return [] + return list(mod_dict[f.__qualname__].values()) + + def clear_overloads(): + """Clear all overloads in the registry.""" + _overload_registry.clear() + + +# This is not a real generic class. Don't use outside annotations. +Type = typing.Type + +# Various ABCs mimicking those in collections.abc. +# A few are simply re-exported for completeness. +Awaitable = typing.Awaitable +Coroutine = typing.Coroutine +AsyncIterable = typing.AsyncIterable +AsyncIterator = typing.AsyncIterator +Deque = typing.Deque +DefaultDict = typing.DefaultDict +OrderedDict = typing.OrderedDict +Counter = typing.Counter +ChainMap = typing.ChainMap +Text = typing.Text +TYPE_CHECKING = typing.TYPE_CHECKING + + +# Breakpoint: https://github.com/python/cpython/pull/118681 +if sys.version_info >= (3, 13, 0, "beta"): + from typing import AsyncContextManager, AsyncGenerator, ContextManager, Generator +else: + def _is_dunder(attr): + return attr.startswith('__') and attr.endswith('__') + + + class _SpecialGenericAlias(typing._SpecialGenericAlias, _root=True): + def __init__(self, origin, nparams, *, inst=True, name=None, defaults=()): + super().__init__(origin, nparams, inst=inst, name=name) + self._defaults = defaults + + def __setattr__(self, attr, val): + allowed_attrs = {'_name', '_inst', '_nparams', '_defaults'} + if _is_dunder(attr) or attr in allowed_attrs: + object.__setattr__(self, attr, val) + else: + setattr(self.__origin__, attr, val) + + @typing._tp_cache + def __getitem__(self, params): + if not isinstance(params, tuple): + params = (params,) + msg = "Parameters to generic types must be types." + params = tuple(typing._type_check(p, msg) for p in params) + if ( + self._defaults + and len(params) < self._nparams + and len(params) + len(self._defaults) >= self._nparams + ): + params = (*params, *self._defaults[len(params) - self._nparams:]) + actual_len = len(params) + + if actual_len != self._nparams: + if self._defaults: + expected = f"at least {self._nparams - len(self._defaults)}" + else: + expected = str(self._nparams) + if not self._nparams: + raise TypeError(f"{self} is not a generic class") + raise TypeError( + f"Too {'many' if actual_len > self._nparams else 'few'}" + f" arguments for {self};" + f" actual {actual_len}, expected {expected}" + ) + return self.copy_with(params) + + _NoneType = type(None) + Generator = _SpecialGenericAlias( + collections.abc.Generator, 3, defaults=(_NoneType, _NoneType) + ) + AsyncGenerator = _SpecialGenericAlias( + collections.abc.AsyncGenerator, 2, defaults=(_NoneType,) + ) + ContextManager = _SpecialGenericAlias( + contextlib.AbstractContextManager, + 2, + name="ContextManager", + defaults=(typing.Optional[bool],) + ) + AsyncContextManager = _SpecialGenericAlias( + contextlib.AbstractAsyncContextManager, + 2, + name="AsyncContextManager", + defaults=(typing.Optional[bool],) + ) + + +_PROTO_ALLOWLIST = { + 'collections.abc': [ + 'Callable', 'Awaitable', 'Iterable', 'Iterator', 'AsyncIterable', + 'Hashable', 'Sized', 'Container', 'Collection', 'Reversible', 'Buffer', + ], + 'contextlib': ['AbstractContextManager', 'AbstractAsyncContextManager'], + 'typing_extensions': ['Buffer'], +} + + +_EXCLUDED_ATTRS = frozenset(typing.EXCLUDED_ATTRIBUTES) | { + "__match_args__", "__protocol_attrs__", "__non_callable_proto_members__", + "__final__", +} + + +def _get_protocol_attrs(cls): + attrs = set() + for base in cls.__mro__[:-1]: # without object + if base.__name__ in {'Protocol', 'Generic'}: + continue + annotations = getattr(base, '__annotations__', {}) + for attr in (*base.__dict__, *annotations): + if (not attr.startswith('_abc_') and attr not in _EXCLUDED_ATTRS): + attrs.add(attr) + return attrs + + +def _caller(depth=1, default='__main__'): + try: + return sys._getframemodulename(depth + 1) or default + except AttributeError: # For platforms without _getframemodulename() + pass + try: + return sys._getframe(depth + 1).f_globals.get('__name__', default) + except (AttributeError, ValueError): # For platforms without _getframe() + pass + return None + + +# `__match_args__` attribute was removed from protocol members in 3.13, +# we want to backport this change to older Python versions. +# Breakpoint: https://github.com/python/cpython/pull/110683 +if sys.version_info >= (3, 13): + Protocol = typing.Protocol +else: + def _allow_reckless_class_checks(depth=2): + """Allow instance and class checks for special stdlib modules. + The abc and functools modules indiscriminately call isinstance() and + issubclass() on the whole MRO of a user class, which may contain protocols. + """ + return _caller(depth) in {'abc', 'functools', None} + + def _no_init(self, *args, **kwargs): + if type(self)._is_protocol: + raise TypeError('Protocols cannot be instantiated') + + def _type_check_issubclass_arg_1(arg): + """Raise TypeError if `arg` is not an instance of `type` + in `issubclass(arg, )`. + + In most cases, this is verified by type.__subclasscheck__. + Checking it again unnecessarily would slow down issubclass() checks, + so, we don't perform this check unless we absolutely have to. + + For various error paths, however, + we want to ensure that *this* error message is shown to the user + where relevant, rather than a typing.py-specific error message. + """ + if not isinstance(arg, type): + # Same error message as for issubclass(1, int). + raise TypeError('issubclass() arg 1 must be a class') + + # Inheriting from typing._ProtocolMeta isn't actually desirable, + # but is necessary to allow typing.Protocol and typing_extensions.Protocol + # to mix without getting TypeErrors about "metaclass conflict" + class _ProtocolMeta(type(typing.Protocol)): + # This metaclass is somewhat unfortunate, + # but is necessary for several reasons... + # + # NOTE: DO NOT call super() in any methods in this class + # That would call the methods on typing._ProtocolMeta on Python <=3.11 + # and those are slow + def __new__(mcls, name, bases, namespace, **kwargs): + if name == "Protocol" and len(bases) < 2: + pass + elif {Protocol, typing.Protocol} & set(bases): + for base in bases: + if not ( + base in {object, typing.Generic, Protocol, typing.Protocol} + or base.__name__ in _PROTO_ALLOWLIST.get(base.__module__, []) + or is_protocol(base) + ): + raise TypeError( + f"Protocols can only inherit from other protocols, " + f"got {base!r}" + ) + return abc.ABCMeta.__new__(mcls, name, bases, namespace, **kwargs) + + def __init__(cls, *args, **kwargs): + abc.ABCMeta.__init__(cls, *args, **kwargs) + if getattr(cls, "_is_protocol", False): + cls.__protocol_attrs__ = _get_protocol_attrs(cls) + + def __subclasscheck__(cls, other): + if cls is Protocol: + return type.__subclasscheck__(cls, other) + if ( + getattr(cls, '_is_protocol', False) + and not _allow_reckless_class_checks() + ): + if not getattr(cls, '_is_runtime_protocol', False): + _type_check_issubclass_arg_1(other) + raise TypeError( + "Instance and class checks can only be used with " + "@runtime_checkable protocols" + ) + if ( + # this attribute is set by @runtime_checkable: + cls.__non_callable_proto_members__ + and cls.__dict__.get("__subclasshook__") is _proto_hook + ): + _type_check_issubclass_arg_1(other) + non_method_attrs = sorted(cls.__non_callable_proto_members__) + raise TypeError( + "Protocols with non-method members don't support issubclass()." + f" Non-method members: {str(non_method_attrs)[1:-1]}." + ) + return abc.ABCMeta.__subclasscheck__(cls, other) + + def __instancecheck__(cls, instance): + # We need this method for situations where attributes are + # assigned in __init__. + if cls is Protocol: + return type.__instancecheck__(cls, instance) + if not getattr(cls, "_is_protocol", False): + # i.e., it's a concrete subclass of a protocol + return abc.ABCMeta.__instancecheck__(cls, instance) + + if ( + not getattr(cls, '_is_runtime_protocol', False) and + not _allow_reckless_class_checks() + ): + raise TypeError("Instance and class checks can only be used with" + " @runtime_checkable protocols") + + if abc.ABCMeta.__instancecheck__(cls, instance): + return True + + for attr in cls.__protocol_attrs__: + try: + val = inspect.getattr_static(instance, attr) + except AttributeError: + break + # this attribute is set by @runtime_checkable: + if val is None and attr not in cls.__non_callable_proto_members__: + break + else: + return True + + return False + + def __eq__(cls, other): + # Hack so that typing.Generic.__class_getitem__ + # treats typing_extensions.Protocol + # as equivalent to typing.Protocol + if abc.ABCMeta.__eq__(cls, other) is True: + return True + return cls is Protocol and other is typing.Protocol + + # This has to be defined, or the abc-module cache + # complains about classes with this metaclass being unhashable, + # if we define only __eq__! + def __hash__(cls) -> int: + return type.__hash__(cls) + + @classmethod + def _proto_hook(cls, other): + if not cls.__dict__.get('_is_protocol', False): + return NotImplemented + + for attr in cls.__protocol_attrs__: + for base in other.__mro__: + # Check if the members appears in the class dictionary... + if attr in base.__dict__: + if base.__dict__[attr] is None: + return NotImplemented + break + + # ...or in annotations, if it is a sub-protocol. + annotations = getattr(base, '__annotations__', {}) + if ( + isinstance(annotations, collections.abc.Mapping) + and attr in annotations + and is_protocol(other) + ): + break + else: + return NotImplemented + return True + + class Protocol(typing.Generic, metaclass=_ProtocolMeta): + __doc__ = typing.Protocol.__doc__ + __slots__ = () + _is_protocol = True + _is_runtime_protocol = False + + def __init_subclass__(cls, *args, **kwargs): + super().__init_subclass__(*args, **kwargs) + + # Determine if this is a protocol or a concrete subclass. + if not cls.__dict__.get('_is_protocol', False): + cls._is_protocol = any(b is Protocol for b in cls.__bases__) + + # Set (or override) the protocol subclass hook. + if '__subclasshook__' not in cls.__dict__: + cls.__subclasshook__ = _proto_hook + + # Prohibit instantiation for protocol classes + if cls._is_protocol and cls.__init__ is Protocol.__init__: + cls.__init__ = _no_init + + +# Breakpoint: https://github.com/python/cpython/pull/113401 +if sys.version_info >= (3, 13): + runtime_checkable = typing.runtime_checkable +else: + def runtime_checkable(cls): + """Mark a protocol class as a runtime protocol. + + Such protocol can be used with isinstance() and issubclass(). + Raise TypeError if applied to a non-protocol class. + This allows a simple-minded structural check very similar to + one trick ponies in collections.abc such as Iterable. + + For example:: + + @runtime_checkable + class Closable(Protocol): + def close(self): ... + + assert isinstance(open('/some/file'), Closable) + + Warning: this will check only the presence of the required methods, + not their type signatures! + """ + if not issubclass(cls, typing.Generic) or not getattr(cls, '_is_protocol', False): + raise TypeError(f'@runtime_checkable can be only applied to protocol classes,' + f' got {cls!r}') + cls._is_runtime_protocol = True + + # typing.Protocol classes on <=3.11 break if we execute this block, + # because typing.Protocol classes on <=3.11 don't have a + # `__protocol_attrs__` attribute, and this block relies on the + # `__protocol_attrs__` attribute. Meanwhile, typing.Protocol classes on 3.12.2+ + # break if we *don't* execute this block, because *they* assume that all + # protocol classes have a `__non_callable_proto_members__` attribute + # (which this block sets) + if isinstance(cls, _ProtocolMeta) or sys.version_info >= (3, 12, 2): + # PEP 544 prohibits using issubclass() + # with protocols that have non-method members. + # See gh-113320 for why we compute this attribute here, + # rather than in `_ProtocolMeta.__init__` + cls.__non_callable_proto_members__ = set() + for attr in cls.__protocol_attrs__: + try: + is_callable = callable(getattr(cls, attr, None)) + except Exception as e: + raise TypeError( + f"Failed to determine whether protocol member {attr!r} " + "is a method member" + ) from e + else: + if not is_callable: + cls.__non_callable_proto_members__.add(attr) + + return cls + + +# The "runtime" alias exists for backwards compatibility. +runtime = runtime_checkable + + +# Our version of runtime-checkable protocols is faster on Python <=3.11 +# Breakpoint: https://github.com/python/cpython/pull/112717 +if sys.version_info >= (3, 12): + SupportsInt = typing.SupportsInt + SupportsFloat = typing.SupportsFloat + SupportsComplex = typing.SupportsComplex + SupportsBytes = typing.SupportsBytes + SupportsIndex = typing.SupportsIndex + SupportsAbs = typing.SupportsAbs + SupportsRound = typing.SupportsRound +else: + @runtime_checkable + class SupportsInt(Protocol): + """An ABC with one abstract method __int__.""" + __slots__ = () + + @abc.abstractmethod + def __int__(self) -> int: + pass + + @runtime_checkable + class SupportsFloat(Protocol): + """An ABC with one abstract method __float__.""" + __slots__ = () + + @abc.abstractmethod + def __float__(self) -> float: + pass + + @runtime_checkable + class SupportsComplex(Protocol): + """An ABC with one abstract method __complex__.""" + __slots__ = () + + @abc.abstractmethod + def __complex__(self) -> complex: + pass + + @runtime_checkable + class SupportsBytes(Protocol): + """An ABC with one abstract method __bytes__.""" + __slots__ = () + + @abc.abstractmethod + def __bytes__(self) -> bytes: + pass + + @runtime_checkable + class SupportsIndex(Protocol): + __slots__ = () + + @abc.abstractmethod + def __index__(self) -> int: + pass + + @runtime_checkable + class SupportsAbs(Protocol[T_co]): + """ + An ABC with one abstract method __abs__ that is covariant in its return type. + """ + __slots__ = () + + @abc.abstractmethod + def __abs__(self) -> T_co: + pass + + @runtime_checkable + class SupportsRound(Protocol[T_co]): + """ + An ABC with one abstract method __round__ that is covariant in its return type. + """ + __slots__ = () + + @abc.abstractmethod + def __round__(self, ndigits: int = 0) -> T_co: + pass + + +if hasattr(io, "Reader") and hasattr(io, "Writer"): + Reader = io.Reader + Writer = io.Writer +else: + @runtime_checkable + class Reader(Protocol[T_co]): + """Protocol for simple I/O reader instances. + + This protocol only supports blocking I/O. + """ + + __slots__ = () + + @abc.abstractmethod + def read(self, size: int = ..., /) -> T_co: + """Read data from the input stream and return it. + + If *size* is specified, at most *size* items (bytes/characters) will be + read. + """ + + @runtime_checkable + class Writer(Protocol[T_contra]): + """Protocol for simple I/O writer instances. + + This protocol only supports blocking I/O. + """ + + __slots__ = () + + @abc.abstractmethod + def write(self, data: T_contra, /) -> int: + """Write *data* to the output stream and return the number of items written.""" # noqa: E501 + + +_NEEDS_SINGLETONMETA = ( + not hasattr(typing, "NoDefault") or not hasattr(typing, "NoExtraItems") +) + +if _NEEDS_SINGLETONMETA: + class SingletonMeta(type): + def __setattr__(cls, attr, value): + # TypeError is consistent with the behavior of NoneType + raise TypeError( + f"cannot set {attr!r} attribute of immutable type {cls.__name__!r}" + ) + + +if hasattr(typing, "NoDefault"): + NoDefault = typing.NoDefault +else: + class NoDefaultType(metaclass=SingletonMeta): + """The type of the NoDefault singleton.""" + + __slots__ = () + + def __new__(cls): + return globals().get("NoDefault") or object.__new__(cls) + + def __repr__(self): + return "typing_extensions.NoDefault" + + def __reduce__(self): + return "NoDefault" + + NoDefault = NoDefaultType() + del NoDefaultType + +if hasattr(typing, "NoExtraItems"): + NoExtraItems = typing.NoExtraItems +else: + class NoExtraItemsType(metaclass=SingletonMeta): + """The type of the NoExtraItems singleton.""" + + __slots__ = () + + def __new__(cls): + return globals().get("NoExtraItems") or object.__new__(cls) + + def __repr__(self): + return "typing_extensions.NoExtraItems" + + def __reduce__(self): + return "NoExtraItems" + + NoExtraItems = NoExtraItemsType() + del NoExtraItemsType + +if _NEEDS_SINGLETONMETA: + del SingletonMeta + + +# Update this to something like >=3.13.0b1 if and when +# PEP 728 is implemented in CPython +_PEP_728_IMPLEMENTED = False + +if _PEP_728_IMPLEMENTED: + # The standard library TypedDict in Python 3.9.0/1 does not honour the "total" + # keyword with old-style TypedDict(). See https://bugs.python.org/issue42059 + # The standard library TypedDict below Python 3.11 does not store runtime + # information about optional and required keys when using Required or NotRequired. + # Generic TypedDicts are also impossible using typing.TypedDict on Python <3.11. + # Aaaand on 3.12 we add __orig_bases__ to TypedDict + # to enable better runtime introspection. + # On 3.13 we deprecate some odd ways of creating TypedDicts. + # Also on 3.13, PEP 705 adds the ReadOnly[] qualifier. + # PEP 728 (still pending) makes more changes. + TypedDict = typing.TypedDict + _TypedDictMeta = typing._TypedDictMeta + is_typeddict = typing.is_typeddict +else: + # 3.10.0 and later + _TAKES_MODULE = "module" in inspect.signature(typing._type_check).parameters + + def _get_typeddict_qualifiers(annotation_type): + while True: + annotation_origin = get_origin(annotation_type) + if annotation_origin is Annotated: + annotation_args = get_args(annotation_type) + if annotation_args: + annotation_type = annotation_args[0] + else: + break + elif annotation_origin is Required: + yield Required + annotation_type, = get_args(annotation_type) + elif annotation_origin is NotRequired: + yield NotRequired + annotation_type, = get_args(annotation_type) + elif annotation_origin is ReadOnly: + yield ReadOnly + annotation_type, = get_args(annotation_type) + else: + break + + class _TypedDictMeta(type): + + def __new__(cls, name, bases, ns, *, total=True, closed=None, + extra_items=NoExtraItems): + """Create new typed dict class object. + + This method is called when TypedDict is subclassed, + or when TypedDict is instantiated. This way + TypedDict supports all three syntax forms described in its docstring. + Subclasses and instances of TypedDict return actual dictionaries. + """ + for base in bases: + if type(base) is not _TypedDictMeta and base is not typing.Generic: + raise TypeError('cannot inherit from both a TypedDict type ' + 'and a non-TypedDict base class') + if closed is not None and extra_items is not NoExtraItems: + raise TypeError(f"Cannot combine closed={closed!r} and extra_items") + + if any(issubclass(b, typing.Generic) for b in bases): + generic_base = (typing.Generic,) + else: + generic_base = () + + ns_annotations = ns.pop('__annotations__', None) + + # typing.py generally doesn't let you inherit from plain Generic, unless + # the name of the class happens to be "Protocol" + tp_dict = type.__new__(_TypedDictMeta, "Protocol", (*generic_base, dict), ns) + tp_dict.__name__ = name + if tp_dict.__qualname__ == "Protocol": + tp_dict.__qualname__ = name + + if not hasattr(tp_dict, '__orig_bases__'): + tp_dict.__orig_bases__ = bases + + annotations = {} + own_annotate = None + if ns_annotations is not None: + own_annotations = ns_annotations + elif sys.version_info >= (3, 14): + if hasattr(annotationlib, "get_annotate_from_class_namespace"): + own_annotate = annotationlib.get_annotate_from_class_namespace(ns) + else: + # 3.14.0a7 and earlier + own_annotate = ns.get("__annotate__") + if own_annotate is not None: + own_annotations = annotationlib.call_annotate_function( + own_annotate, Format.FORWARDREF, owner=tp_dict + ) + else: + own_annotations = {} + else: + own_annotations = {} + msg = "TypedDict('Name', {f0: t0, f1: t1, ...}); each t must be a type" + if _TAKES_MODULE: + own_checked_annotations = { + n: typing._type_check(tp, msg, module=tp_dict.__module__) + for n, tp in own_annotations.items() + } + else: + own_checked_annotations = { + n: typing._type_check(tp, msg) + for n, tp in own_annotations.items() + } + required_keys = set() + optional_keys = set() + readonly_keys = set() + mutable_keys = set() + extra_items_type = extra_items + + for base in bases: + base_dict = base.__dict__ + + if sys.version_info <= (3, 14): + annotations.update(base_dict.get('__annotations__', {})) + required_keys.update(base_dict.get('__required_keys__', ())) + optional_keys.update(base_dict.get('__optional_keys__', ())) + readonly_keys.update(base_dict.get('__readonly_keys__', ())) + mutable_keys.update(base_dict.get('__mutable_keys__', ())) + + # This was specified in an earlier version of PEP 728. Support + # is retained for backwards compatibility, but only for Python + # 3.13 and lower. + if (closed and sys.version_info < (3, 14) + and "__extra_items__" in own_checked_annotations): + annotation_type = own_checked_annotations.pop("__extra_items__") + qualifiers = set(_get_typeddict_qualifiers(annotation_type)) + if Required in qualifiers: + raise TypeError( + "Special key __extra_items__ does not support " + "Required" + ) + if NotRequired in qualifiers: + raise TypeError( + "Special key __extra_items__ does not support " + "NotRequired" + ) + extra_items_type = annotation_type + + annotations.update(own_checked_annotations) + for annotation_key, annotation_type in own_checked_annotations.items(): + qualifiers = set(_get_typeddict_qualifiers(annotation_type)) + + if Required in qualifiers: + required_keys.add(annotation_key) + elif NotRequired in qualifiers: + optional_keys.add(annotation_key) + elif total: + required_keys.add(annotation_key) + else: + optional_keys.add(annotation_key) + if ReadOnly in qualifiers: + mutable_keys.discard(annotation_key) + readonly_keys.add(annotation_key) + else: + mutable_keys.add(annotation_key) + readonly_keys.discard(annotation_key) + + # Breakpoint: https://github.com/python/cpython/pull/119891 + if sys.version_info >= (3, 14): + def __annotate__(format): + annos = {} + for base in bases: + if base is Generic: + continue + base_annotate = base.__annotate__ + if base_annotate is None: + continue + base_annos = annotationlib.call_annotate_function( + base_annotate, format, owner=base) + annos.update(base_annos) + if own_annotate is not None: + own = annotationlib.call_annotate_function( + own_annotate, format, owner=tp_dict) + if format != Format.STRING: + own = { + n: typing._type_check(tp, msg, module=tp_dict.__module__) + for n, tp in own.items() + } + elif format == Format.STRING: + own = annotationlib.annotations_to_string(own_annotations) + elif format in (Format.FORWARDREF, Format.VALUE): + own = own_checked_annotations + else: + raise NotImplementedError(format) + annos.update(own) + return annos + + tp_dict.__annotate__ = __annotate__ + else: + tp_dict.__annotations__ = annotations + tp_dict.__required_keys__ = frozenset(required_keys) + tp_dict.__optional_keys__ = frozenset(optional_keys) + tp_dict.__readonly_keys__ = frozenset(readonly_keys) + tp_dict.__mutable_keys__ = frozenset(mutable_keys) + tp_dict.__total__ = total + tp_dict.__closed__ = closed + tp_dict.__extra_items__ = extra_items_type + return tp_dict + + __call__ = dict # static method + + def __subclasscheck__(cls, other): + # Typed dicts are only for static structural subtyping. + raise TypeError('TypedDict does not support instance and class checks') + + __instancecheck__ = __subclasscheck__ + + _TypedDict = type.__new__(_TypedDictMeta, 'TypedDict', (), {}) + + def _create_typeddict( + typename, + fields, + /, + *, + typing_is_inline, + total, + closed, + extra_items, + **kwargs, + ): + if fields is _marker or fields is None: + if fields is _marker: + deprecated_thing = ( + "Failing to pass a value for the 'fields' parameter" + ) + else: + deprecated_thing = "Passing `None` as the 'fields' parameter" + + example = f"`{typename} = TypedDict({typename!r}, {{}})`" + deprecation_msg = ( + f"{deprecated_thing} is deprecated and will be disallowed in " + "Python 3.15. To create a TypedDict class with 0 fields " + "using the functional syntax, pass an empty dictionary, e.g. " + ) + example + "." + warnings.warn(deprecation_msg, DeprecationWarning, stacklevel=2) + # Support a field called "closed" + if closed is not False and closed is not True and closed is not None: + kwargs["closed"] = closed + closed = None + # Or "extra_items" + if extra_items is not NoExtraItems: + kwargs["extra_items"] = extra_items + extra_items = NoExtraItems + fields = kwargs + elif kwargs: + raise TypeError("TypedDict takes either a dict or keyword arguments," + " but not both") + if kwargs: + # Breakpoint: https://github.com/python/cpython/pull/104891 + if sys.version_info >= (3, 13): + raise TypeError("TypedDict takes no keyword arguments") + warnings.warn( + "The kwargs-based syntax for TypedDict definitions is deprecated " + "in Python 3.11, will be removed in Python 3.13, and may not be " + "understood by third-party type checkers.", + DeprecationWarning, + stacklevel=2, + ) + + ns = {'__annotations__': dict(fields)} + module = _caller(depth=4 if typing_is_inline else 2) + if module is not None: + # Setting correct module is necessary to make typed dict classes + # pickleable. + ns['__module__'] = module + + td = _TypedDictMeta(typename, (), ns, total=total, closed=closed, + extra_items=extra_items) + td.__orig_bases__ = (TypedDict,) + return td + + class _TypedDictSpecialForm(_SpecialForm, _root=True): + def __call__( + self, + typename, + fields=_marker, + /, + *, + total=True, + closed=None, + extra_items=NoExtraItems, + **kwargs + ): + return _create_typeddict( + typename, + fields, + typing_is_inline=False, + total=total, + closed=closed, + extra_items=extra_items, + **kwargs, + ) + + def __mro_entries__(self, bases): + return (_TypedDict,) + + @_TypedDictSpecialForm + def TypedDict(self, args): + """A simple typed namespace. At runtime it is equivalent to a plain dict. + + TypedDict creates a dictionary type such that a type checker will expect all + instances to have a certain set of keys, where each key is + associated with a value of a consistent type. This expectation + is not checked at runtime. + + Usage:: + + class Point2D(TypedDict): + x: int + y: int + label: str + + a: Point2D = {'x': 1, 'y': 2, 'label': 'good'} # OK + b: Point2D = {'z': 3, 'label': 'bad'} # Fails type check + + assert Point2D(x=1, y=2, label='first') == dict(x=1, y=2, label='first') + + The type info can be accessed via the Point2D.__annotations__ dict, and + the Point2D.__required_keys__ and Point2D.__optional_keys__ frozensets. + TypedDict supports an additional equivalent form:: + + Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': str}) + + By default, all keys must be present in a TypedDict. It is possible + to override this by specifying totality:: + + class Point2D(TypedDict, total=False): + x: int + y: int + + This means that a Point2D TypedDict can have any of the keys omitted. A type + checker is only expected to support a literal False or True as the value of + the total argument. True is the default, and makes all items defined in the + class body be required. + + The Required and NotRequired special forms can also be used to mark + individual keys as being required or not required:: + + class Point2D(TypedDict): + x: int # the "x" key must always be present (Required is the default) + y: NotRequired[int] # the "y" key can be omitted + + See PEP 655 for more details on Required and NotRequired. + """ + # This runs when creating inline TypedDicts: + if not isinstance(args, dict): + raise TypeError( + "TypedDict[...] should be used with a single dict argument" + ) + + return _create_typeddict( + "", + args, + typing_is_inline=True, + total=True, + closed=True, + extra_items=NoExtraItems, + ) + + _TYPEDDICT_TYPES = (typing._TypedDictMeta, _TypedDictMeta) + + def is_typeddict(tp): + """Check if an annotation is a TypedDict class + + For example:: + class Film(TypedDict): + title: str + year: int + + is_typeddict(Film) # => True + is_typeddict(Union[list, str]) # => False + """ + return isinstance(tp, _TYPEDDICT_TYPES) + + +if hasattr(typing, "assert_type"): + assert_type = typing.assert_type + +else: + def assert_type(val, typ, /): + """Assert (to the type checker) that the value is of the given type. + + When the type checker encounters a call to assert_type(), it + emits an error if the value is not of the specified type:: + + def greet(name: str) -> None: + assert_type(name, str) # ok + assert_type(name, int) # type checker error + + At runtime this returns the first argument unchanged and otherwise + does nothing. + """ + return val + + +if hasattr(typing, "ReadOnly"): # 3.13+ + get_type_hints = typing.get_type_hints +else: # <=3.13 + # replaces _strip_annotations() + def _strip_extras(t): + """Strips Annotated, Required and NotRequired from a given type.""" + if isinstance(t, typing._AnnotatedAlias): + return _strip_extras(t.__origin__) + if hasattr(t, "__origin__") and t.__origin__ in (Required, NotRequired, ReadOnly): + return _strip_extras(t.__args__[0]) + if isinstance(t, typing._GenericAlias): + stripped_args = tuple(_strip_extras(a) for a in t.__args__) + if stripped_args == t.__args__: + return t + return t.copy_with(stripped_args) + if hasattr(_types, "GenericAlias") and isinstance(t, _types.GenericAlias): + stripped_args = tuple(_strip_extras(a) for a in t.__args__) + if stripped_args == t.__args__: + return t + return _types.GenericAlias(t.__origin__, stripped_args) + if hasattr(_types, "UnionType") and isinstance(t, _types.UnionType): + stripped_args = tuple(_strip_extras(a) for a in t.__args__) + if stripped_args == t.__args__: + return t + return functools.reduce(operator.or_, stripped_args) + + return t + + def get_type_hints(obj, globalns=None, localns=None, include_extras=False): + """Return type hints for an object. + + This is often the same as obj.__annotations__, but it handles + forward references encoded as string literals, adds Optional[t] if a + default value equal to None is set and recursively replaces all + 'Annotated[T, ...]', 'Required[T]' or 'NotRequired[T]' with 'T' + (unless 'include_extras=True'). + + The argument may be a module, class, method, or function. The annotations + are returned as a dictionary. For classes, annotations include also + inherited members. + + TypeError is raised if the argument is not of a type that can contain + annotations, and an empty dictionary is returned if no annotations are + present. + + BEWARE -- the behavior of globalns and localns is counterintuitive + (unless you are familiar with how eval() and exec() work). The + search order is locals first, then globals. + + - If no dict arguments are passed, an attempt is made to use the + globals from obj (or the respective module's globals for classes), + and these are also used as the locals. If the object does not appear + to have globals, an empty dictionary is used. + + - If one dict argument is passed, it is used for both globals and + locals. + + - If two dict arguments are passed, they specify globals and + locals, respectively. + """ + hint = typing.get_type_hints( + obj, globalns=globalns, localns=localns, include_extras=True + ) + # Breakpoint: https://github.com/python/cpython/pull/30304 + if sys.version_info < (3, 11): + _clean_optional(obj, hint, globalns, localns) + if include_extras: + return hint + return {k: _strip_extras(t) for k, t in hint.items()} + + _NoneType = type(None) + + def _could_be_inserted_optional(t): + """detects Union[..., None] pattern""" + if not isinstance(t, typing._UnionGenericAlias): + return False + # Assume if last argument is not None they are user defined + if t.__args__[-1] is not _NoneType: + return False + return True + + # < 3.11 + def _clean_optional(obj, hints, globalns=None, localns=None): + # reverts injected Union[..., None] cases from typing.get_type_hints + # when a None default value is used. + # see https://github.com/python/typing_extensions/issues/310 + if not hints or isinstance(obj, type): + return + defaults = typing._get_defaults(obj) # avoid accessing __annotations___ + if not defaults: + return + original_hints = obj.__annotations__ + for name, value in hints.items(): + # Not a Union[..., None] or replacement conditions not fullfilled + if (not _could_be_inserted_optional(value) + or name not in defaults + or defaults[name] is not None + ): + continue + original_value = original_hints[name] + # value=NoneType should have caused a skip above but check for safety + if original_value is None: + original_value = _NoneType + # Forward reference + if isinstance(original_value, str): + if globalns is None: + if isinstance(obj, _types.ModuleType): + globalns = obj.__dict__ + else: + nsobj = obj + # Find globalns for the unwrapped object. + while hasattr(nsobj, '__wrapped__'): + nsobj = nsobj.__wrapped__ + globalns = getattr(nsobj, '__globals__', {}) + if localns is None: + localns = globalns + elif localns is None: + localns = globalns + + original_value = ForwardRef( + original_value, + is_argument=not isinstance(obj, _types.ModuleType) + ) + original_evaluated = typing._eval_type(original_value, globalns, localns) + # Compare if values differ. Note that even if equal + # value might be cached by typing._tp_cache contrary to original_evaluated + if original_evaluated != value or ( + # 3.10: ForwardRefs of UnionType might be turned into _UnionGenericAlias + hasattr(_types, "UnionType") + and isinstance(original_evaluated, _types.UnionType) + and not isinstance(value, _types.UnionType) + ): + hints[name] = original_evaluated + +# Python 3.9 has get_origin() and get_args() but those implementations don't support +# ParamSpecArgs and ParamSpecKwargs, so only Python 3.10's versions will do. +# Breakpoint: https://github.com/python/cpython/pull/25298 +if sys.version_info >= (3, 10): + get_origin = typing.get_origin + get_args = typing.get_args +# 3.9 +else: + def get_origin(tp): + """Get the unsubscripted version of a type. + + This supports generic types, Callable, Tuple, Union, Literal, Final, ClassVar + and Annotated. Return None for unsupported types. Examples:: + + get_origin(Literal[42]) is Literal + get_origin(int) is None + get_origin(ClassVar[int]) is ClassVar + get_origin(Generic) is Generic + get_origin(Generic[T]) is Generic + get_origin(Union[T, int]) is Union + get_origin(List[Tuple[T, T]][int]) == list + get_origin(P.args) is P + """ + if isinstance(tp, typing._AnnotatedAlias): + return Annotated + if isinstance(tp, (typing._BaseGenericAlias, _types.GenericAlias, + ParamSpecArgs, ParamSpecKwargs)): + return tp.__origin__ + if tp is typing.Generic: + return typing.Generic + return None + + def get_args(tp): + """Get type arguments with all substitutions performed. + + For unions, basic simplifications used by Union constructor are performed. + Examples:: + get_args(Dict[str, int]) == (str, int) + get_args(int) == () + get_args(Union[int, Union[T, int], str][int]) == (int, str) + get_args(Union[int, Tuple[T, int]][str]) == (int, Tuple[str, int]) + get_args(Callable[[], T][int]) == ([], int) + """ + if isinstance(tp, typing._AnnotatedAlias): + return (tp.__origin__, *tp.__metadata__) + if isinstance(tp, (typing._GenericAlias, _types.GenericAlias)): + res = tp.__args__ + if get_origin(tp) is collections.abc.Callable and res[0] is not Ellipsis: + res = (list(res[:-1]), res[-1]) + return res + return () + + +# 3.10+ +if hasattr(typing, 'TypeAlias'): + TypeAlias = typing.TypeAlias +# 3.9 +else: + @_ExtensionsSpecialForm + def TypeAlias(self, parameters): + """Special marker indicating that an assignment should + be recognized as a proper type alias definition by type + checkers. + + For example:: + + Predicate: TypeAlias = Callable[..., bool] + + It's invalid when used anywhere except as in the example above. + """ + raise TypeError(f"{self} is not subscriptable") + + +def _set_default(type_param, default): + type_param.has_default = lambda: default is not NoDefault + type_param.__default__ = default + + +def _set_module(typevarlike): + # for pickling: + def_mod = _caller(depth=2) + if def_mod != 'typing_extensions': + typevarlike.__module__ = def_mod + + +class _DefaultMixin: + """Mixin for TypeVarLike defaults.""" + + __slots__ = () + __init__ = _set_default + + +# Classes using this metaclass must provide a _backported_typevarlike ClassVar +class _TypeVarLikeMeta(type): + def __instancecheck__(cls, __instance: Any) -> bool: + return isinstance(__instance, cls._backported_typevarlike) + + +if _PEP_696_IMPLEMENTED: + from typing import TypeVar +else: + # Add default and infer_variance parameters from PEP 696 and 695 + class TypeVar(metaclass=_TypeVarLikeMeta): + """Type variable.""" + + _backported_typevarlike = typing.TypeVar + + def __new__(cls, name, *constraints, bound=None, + covariant=False, contravariant=False, + default=NoDefault, infer_variance=False): + if hasattr(typing, "TypeAliasType"): + # PEP 695 implemented (3.12+), can pass infer_variance to typing.TypeVar + typevar = typing.TypeVar(name, *constraints, bound=bound, + covariant=covariant, contravariant=contravariant, + infer_variance=infer_variance) + else: + typevar = typing.TypeVar(name, *constraints, bound=bound, + covariant=covariant, contravariant=contravariant) + if infer_variance and (covariant or contravariant): + raise ValueError("Variance cannot be specified with infer_variance.") + typevar.__infer_variance__ = infer_variance + + _set_default(typevar, default) + _set_module(typevar) + + def _tvar_prepare_subst(alias, args): + if ( + typevar.has_default() + and alias.__parameters__.index(typevar) == len(args) + ): + args += (typevar.__default__,) + return args + + typevar.__typing_prepare_subst__ = _tvar_prepare_subst + return typevar + + def __init_subclass__(cls) -> None: + raise TypeError(f"type '{__name__}.TypeVar' is not an acceptable base type") + + +# Python 3.10+ has PEP 612 +if hasattr(typing, 'ParamSpecArgs'): + ParamSpecArgs = typing.ParamSpecArgs + ParamSpecKwargs = typing.ParamSpecKwargs +# 3.9 +else: + class _Immutable: + """Mixin to indicate that object should not be copied.""" + __slots__ = () + + def __copy__(self): + return self + + def __deepcopy__(self, memo): + return self + + class ParamSpecArgs(_Immutable): + """The args for a ParamSpec object. + + Given a ParamSpec object P, P.args is an instance of ParamSpecArgs. + + ParamSpecArgs objects have a reference back to their ParamSpec: + + P.args.__origin__ is P + + This type is meant for runtime introspection and has no special meaning to + static type checkers. + """ + def __init__(self, origin): + self.__origin__ = origin + + def __repr__(self): + return f"{self.__origin__.__name__}.args" + + def __eq__(self, other): + if not isinstance(other, ParamSpecArgs): + return NotImplemented + return self.__origin__ == other.__origin__ + + class ParamSpecKwargs(_Immutable): + """The kwargs for a ParamSpec object. + + Given a ParamSpec object P, P.kwargs is an instance of ParamSpecKwargs. + + ParamSpecKwargs objects have a reference back to their ParamSpec: + + P.kwargs.__origin__ is P + + This type is meant for runtime introspection and has no special meaning to + static type checkers. + """ + def __init__(self, origin): + self.__origin__ = origin + + def __repr__(self): + return f"{self.__origin__.__name__}.kwargs" + + def __eq__(self, other): + if not isinstance(other, ParamSpecKwargs): + return NotImplemented + return self.__origin__ == other.__origin__ + + +if _PEP_696_IMPLEMENTED: + from typing import ParamSpec + +# 3.10+ +elif hasattr(typing, 'ParamSpec'): + + # Add default parameter - PEP 696 + class ParamSpec(metaclass=_TypeVarLikeMeta): + """Parameter specification.""" + + _backported_typevarlike = typing.ParamSpec + + def __new__(cls, name, *, bound=None, + covariant=False, contravariant=False, + infer_variance=False, default=NoDefault): + if hasattr(typing, "TypeAliasType"): + # PEP 695 implemented, can pass infer_variance to typing.TypeVar + paramspec = typing.ParamSpec(name, bound=bound, + covariant=covariant, + contravariant=contravariant, + infer_variance=infer_variance) + else: + paramspec = typing.ParamSpec(name, bound=bound, + covariant=covariant, + contravariant=contravariant) + paramspec.__infer_variance__ = infer_variance + + _set_default(paramspec, default) + _set_module(paramspec) + + def _paramspec_prepare_subst(alias, args): + params = alias.__parameters__ + i = params.index(paramspec) + if i == len(args) and paramspec.has_default(): + args = [*args, paramspec.__default__] + if i >= len(args): + raise TypeError(f"Too few arguments for {alias}") + # Special case where Z[[int, str, bool]] == Z[int, str, bool] in PEP 612. + if len(params) == 1 and not typing._is_param_expr(args[0]): + assert i == 0 + args = (args,) + # Convert lists to tuples to help other libraries cache the results. + elif isinstance(args[i], list): + args = (*args[:i], tuple(args[i]), *args[i + 1:]) + return args + + paramspec.__typing_prepare_subst__ = _paramspec_prepare_subst + return paramspec + + def __init_subclass__(cls) -> None: + raise TypeError(f"type '{__name__}.ParamSpec' is not an acceptable base type") + +# 3.9 +else: + + # Inherits from list as a workaround for Callable checks in Python < 3.9.2. + class ParamSpec(list, _DefaultMixin): + """Parameter specification variable. + + Usage:: + + P = ParamSpec('P') + + Parameter specification variables exist primarily for the benefit of static + type checkers. They are used to forward the parameter types of one + callable to another callable, a pattern commonly found in higher order + functions and decorators. They are only valid when used in ``Concatenate``, + or s the first argument to ``Callable``. In Python 3.10 and higher, + they are also supported in user-defined Generics at runtime. + See class Generic for more information on generic types. An + example for annotating a decorator:: + + T = TypeVar('T') + P = ParamSpec('P') + + def add_logging(f: Callable[P, T]) -> Callable[P, T]: + '''A type-safe decorator to add logging to a function.''' + def inner(*args: P.args, **kwargs: P.kwargs) -> T: + logging.info(f'{f.__name__} was called') + return f(*args, **kwargs) + return inner + + @add_logging + def add_two(x: float, y: float) -> float: + '''Add two numbers together.''' + return x + y + + Parameter specification variables defined with covariant=True or + contravariant=True can be used to declare covariant or contravariant + generic types. These keyword arguments are valid, but their actual semantics + are yet to be decided. See PEP 612 for details. + + Parameter specification variables can be introspected. e.g.: + + P.__name__ == 'T' + P.__bound__ == None + P.__covariant__ == False + P.__contravariant__ == False + + Note that only parameter specification variables defined in global scope can + be pickled. + """ + + # Trick Generic __parameters__. + __class__ = typing.TypeVar + + @property + def args(self): + return ParamSpecArgs(self) + + @property + def kwargs(self): + return ParamSpecKwargs(self) + + def __init__(self, name, *, bound=None, covariant=False, contravariant=False, + infer_variance=False, default=NoDefault): + list.__init__(self, [self]) + self.__name__ = name + self.__covariant__ = bool(covariant) + self.__contravariant__ = bool(contravariant) + self.__infer_variance__ = bool(infer_variance) + if bound: + self.__bound__ = typing._type_check(bound, 'Bound must be a type.') + else: + self.__bound__ = None + _DefaultMixin.__init__(self, default) + + # for pickling: + def_mod = _caller() + if def_mod != 'typing_extensions': + self.__module__ = def_mod + + def __repr__(self): + if self.__infer_variance__: + prefix = '' + elif self.__covariant__: + prefix = '+' + elif self.__contravariant__: + prefix = '-' + else: + prefix = '~' + return prefix + self.__name__ + + def __hash__(self): + return object.__hash__(self) + + def __eq__(self, other): + return self is other + + def __reduce__(self): + return self.__name__ + + # Hack to get typing._type_check to pass. + def __call__(self, *args, **kwargs): + pass + + +# 3.9 +if not hasattr(typing, 'Concatenate'): + # Inherits from list as a workaround for Callable checks in Python < 3.9.2. + + # 3.9.0-1 + if not hasattr(typing, '_type_convert'): + def _type_convert(arg, module=None, *, allow_special_forms=False): + """For converting None to type(None), and strings to ForwardRef.""" + if arg is None: + return type(None) + if isinstance(arg, str): + if sys.version_info <= (3, 9, 6): + return ForwardRef(arg) + if sys.version_info <= (3, 9, 7): + return ForwardRef(arg, module=module) + return ForwardRef(arg, module=module, is_class=allow_special_forms) + return arg + else: + _type_convert = typing._type_convert + + class _ConcatenateGenericAlias(list): + + # Trick Generic into looking into this for __parameters__. + __class__ = typing._GenericAlias + + def __init__(self, origin, args): + super().__init__(args) + self.__origin__ = origin + self.__args__ = args + + def __repr__(self): + _type_repr = typing._type_repr + return (f'{_type_repr(self.__origin__)}' + f'[{", ".join(_type_repr(arg) for arg in self.__args__)}]') + + def __hash__(self): + return hash((self.__origin__, self.__args__)) + + # Hack to get typing._type_check to pass in Generic. + def __call__(self, *args, **kwargs): + pass + + @property + def __parameters__(self): + return tuple( + tp for tp in self.__args__ if isinstance(tp, (typing.TypeVar, ParamSpec)) + ) + + # 3.9 used by __getitem__ below + def copy_with(self, params): + if isinstance(params[-1], _ConcatenateGenericAlias): + params = (*params[:-1], *params[-1].__args__) + elif isinstance(params[-1], (list, tuple)): + return (*params[:-1], *params[-1]) + elif (not (params[-1] is ... or isinstance(params[-1], ParamSpec))): + raise TypeError("The last parameter to Concatenate should be a " + "ParamSpec variable or ellipsis.") + return self.__class__(self.__origin__, params) + + # 3.9; accessed during GenericAlias.__getitem__ when substituting + def __getitem__(self, args): + if self.__origin__ in (Generic, Protocol): + # Can't subscript Generic[...] or Protocol[...]. + raise TypeError(f"Cannot subscript already-subscripted {self}") + if not self.__parameters__: + raise TypeError(f"{self} is not a generic class") + + if not isinstance(args, tuple): + args = (args,) + args = _unpack_args(*(_type_convert(p) for p in args)) + params = self.__parameters__ + for param in params: + prepare = getattr(param, "__typing_prepare_subst__", None) + if prepare is not None: + args = prepare(self, args) + # 3.9 & typing.ParamSpec + elif isinstance(param, ParamSpec): + i = params.index(param) + if ( + i == len(args) + and getattr(param, '__default__', NoDefault) is not NoDefault + ): + args = [*args, param.__default__] + if i >= len(args): + raise TypeError(f"Too few arguments for {self}") + # Special case for Z[[int, str, bool]] == Z[int, str, bool] + if len(params) == 1 and not _is_param_expr(args[0]): + assert i == 0 + args = (args,) + elif ( + isinstance(args[i], list) + # 3.9 + # This class inherits from list do not convert + and not isinstance(args[i], _ConcatenateGenericAlias) + ): + args = (*args[:i], tuple(args[i]), *args[i + 1:]) + + alen = len(args) + plen = len(params) + if alen != plen: + raise TypeError( + f"Too {'many' if alen > plen else 'few'} arguments for {self};" + f" actual {alen}, expected {plen}" + ) + + subst = dict(zip(self.__parameters__, args)) + # determine new args + new_args = [] + for arg in self.__args__: + if isinstance(arg, type): + new_args.append(arg) + continue + if isinstance(arg, TypeVar): + arg = subst[arg] + if ( + (isinstance(arg, typing._GenericAlias) and _is_unpack(arg)) + or ( + hasattr(_types, "GenericAlias") + and isinstance(arg, _types.GenericAlias) + and getattr(arg, "__unpacked__", False) + ) + ): + raise TypeError(f"{arg} is not valid as type argument") + + elif isinstance(arg, + typing._GenericAlias + if not hasattr(_types, "GenericAlias") else + (typing._GenericAlias, _types.GenericAlias) + ): + subparams = arg.__parameters__ + if subparams: + subargs = tuple(subst[x] for x in subparams) + arg = arg[subargs] + new_args.append(arg) + return self.copy_with(tuple(new_args)) + +# 3.10+ +else: + _ConcatenateGenericAlias = typing._ConcatenateGenericAlias + + # 3.10 + if sys.version_info < (3, 11): + + class _ConcatenateGenericAlias(typing._ConcatenateGenericAlias, _root=True): + # needed for checks in collections.abc.Callable to accept this class + __module__ = "typing" + + def copy_with(self, params): + if isinstance(params[-1], (list, tuple)): + return (*params[:-1], *params[-1]) + if isinstance(params[-1], typing._ConcatenateGenericAlias): + params = (*params[:-1], *params[-1].__args__) + elif not (params[-1] is ... or isinstance(params[-1], ParamSpec)): + raise TypeError("The last parameter to Concatenate should be a " + "ParamSpec variable or ellipsis.") + return super(typing._ConcatenateGenericAlias, self).copy_with(params) + + def __getitem__(self, args): + value = super().__getitem__(args) + if isinstance(value, tuple) and any(_is_unpack(t) for t in value): + return tuple(_unpack_args(*(n for n in value))) + return value + + +# 3.9.2 +class _EllipsisDummy: ... + + +# <=3.10 +def _create_concatenate_alias(origin, parameters): + if parameters[-1] is ... and sys.version_info < (3, 9, 2): + # Hack: Arguments must be types, replace it with one. + parameters = (*parameters[:-1], _EllipsisDummy) + if sys.version_info >= (3, 10, 3): + concatenate = _ConcatenateGenericAlias(origin, parameters, + _typevar_types=(TypeVar, ParamSpec), + _paramspec_tvars=True) + else: + concatenate = _ConcatenateGenericAlias(origin, parameters) + if parameters[-1] is not _EllipsisDummy: + return concatenate + # Remove dummy again + concatenate.__args__ = tuple(p if p is not _EllipsisDummy else ... + for p in concatenate.__args__) + if sys.version_info < (3, 10): + # backport needs __args__ adjustment only + return concatenate + concatenate.__parameters__ = tuple(p for p in concatenate.__parameters__ + if p is not _EllipsisDummy) + return concatenate + + +# <=3.10 +@typing._tp_cache +def _concatenate_getitem(self, parameters): + if parameters == (): + raise TypeError("Cannot take a Concatenate of no types.") + if not isinstance(parameters, tuple): + parameters = (parameters,) + if not (parameters[-1] is ... or isinstance(parameters[-1], ParamSpec)): + raise TypeError("The last parameter to Concatenate should be a " + "ParamSpec variable or ellipsis.") + msg = "Concatenate[arg, ...]: each arg must be a type." + parameters = (*(typing._type_check(p, msg) for p in parameters[:-1]), + parameters[-1]) + return _create_concatenate_alias(self, parameters) + + +# 3.11+; Concatenate does not accept ellipsis in 3.10 +# Breakpoint: https://github.com/python/cpython/pull/30969 +if sys.version_info >= (3, 11): + Concatenate = typing.Concatenate +# <=3.10 +else: + @_ExtensionsSpecialForm + def Concatenate(self, parameters): + """Used in conjunction with ``ParamSpec`` and ``Callable`` to represent a + higher order function which adds, removes or transforms parameters of a + callable. + + For example:: + + Callable[Concatenate[int, P], int] + + See PEP 612 for detailed information. + """ + return _concatenate_getitem(self, parameters) + + +# 3.10+ +if hasattr(typing, 'TypeGuard'): + TypeGuard = typing.TypeGuard +# 3.9 +else: + @_ExtensionsSpecialForm + def TypeGuard(self, parameters): + """Special typing form used to annotate the return type of a user-defined + type guard function. ``TypeGuard`` only accepts a single type argument. + At runtime, functions marked this way should return a boolean. + + ``TypeGuard`` aims to benefit *type narrowing* -- a technique used by static + type checkers to determine a more precise type of an expression within a + program's code flow. Usually type narrowing is done by analyzing + conditional code flow and applying the narrowing to a block of code. The + conditional expression here is sometimes referred to as a "type guard". + + Sometimes it would be convenient to use a user-defined boolean function + as a type guard. Such a function should use ``TypeGuard[...]`` as its + return type to alert static type checkers to this intention. + + Using ``-> TypeGuard`` tells the static type checker that for a given + function: + + 1. The return value is a boolean. + 2. If the return value is ``True``, the type of its argument + is the type inside ``TypeGuard``. + + For example:: + + def is_str(val: Union[str, float]): + # "isinstance" type guard + if isinstance(val, str): + # Type of ``val`` is narrowed to ``str`` + ... + else: + # Else, type of ``val`` is narrowed to ``float``. + ... + + Strict type narrowing is not enforced -- ``TypeB`` need not be a narrower + form of ``TypeA`` (it can even be a wider form) and this may lead to + type-unsafe results. The main reason is to allow for things like + narrowing ``List[object]`` to ``List[str]`` even though the latter is not + a subtype of the former, since ``List`` is invariant. The responsibility of + writing type-safe type guards is left to the user. + + ``TypeGuard`` also works with type variables. For more information, see + PEP 647 (User-Defined Type Guards). + """ + item = typing._type_check(parameters, f'{self} accepts only a single type.') + return typing._GenericAlias(self, (item,)) + + +# 3.13+ +if hasattr(typing, 'TypeIs'): + TypeIs = typing.TypeIs +# <=3.12 +else: + @_ExtensionsSpecialForm + def TypeIs(self, parameters): + """Special typing form used to annotate the return type of a user-defined + type narrower function. ``TypeIs`` only accepts a single type argument. + At runtime, functions marked this way should return a boolean. + + ``TypeIs`` aims to benefit *type narrowing* -- a technique used by static + type checkers to determine a more precise type of an expression within a + program's code flow. Usually type narrowing is done by analyzing + conditional code flow and applying the narrowing to a block of code. The + conditional expression here is sometimes referred to as a "type guard". + + Sometimes it would be convenient to use a user-defined boolean function + as a type guard. Such a function should use ``TypeIs[...]`` as its + return type to alert static type checkers to this intention. + + Using ``-> TypeIs`` tells the static type checker that for a given + function: + + 1. The return value is a boolean. + 2. If the return value is ``True``, the type of its argument + is the intersection of the type inside ``TypeIs`` and the argument's + previously known type. + + For example:: + + def is_awaitable(val: object) -> TypeIs[Awaitable[Any]]: + return hasattr(val, '__await__') + + def f(val: Union[int, Awaitable[int]]) -> int: + if is_awaitable(val): + assert_type(val, Awaitable[int]) + else: + assert_type(val, int) + + ``TypeIs`` also works with type variables. For more information, see + PEP 742 (Narrowing types with TypeIs). + """ + item = typing._type_check(parameters, f'{self} accepts only a single type.') + return typing._GenericAlias(self, (item,)) + + +# 3.14+? +if hasattr(typing, 'TypeForm'): + TypeForm = typing.TypeForm +# <=3.13 +else: + class _TypeFormForm(_ExtensionsSpecialForm, _root=True): + # TypeForm(X) is equivalent to X but indicates to the type checker + # that the object is a TypeForm. + def __call__(self, obj, /): + return obj + + @_TypeFormForm + def TypeForm(self, parameters): + """A special form representing the value that results from the evaluation + of a type expression. This value encodes the information supplied in the + type expression, and it represents the type described by that type expression. + + When used in a type expression, TypeForm describes a set of type form objects. + It accepts a single type argument, which must be a valid type expression. + ``TypeForm[T]`` describes the set of all type form objects that represent + the type T or types that are assignable to T. + + Usage: + + def cast[T](typ: TypeForm[T], value: Any) -> T: ... + + reveal_type(cast(int, "x")) # int + + See PEP 747 for more information. + """ + item = typing._type_check(parameters, f'{self} accepts only a single type.') + return typing._GenericAlias(self, (item,)) + + + + +if hasattr(typing, "LiteralString"): # 3.11+ + LiteralString = typing.LiteralString +else: + @_SpecialForm + def LiteralString(self, params): + """Represents an arbitrary literal string. + + Example:: + + from typing_extensions import LiteralString + + def query(sql: LiteralString) -> ...: + ... + + query("SELECT * FROM table") # ok + query(f"SELECT * FROM {input()}") # not ok + + See PEP 675 for details. + + """ + raise TypeError(f"{self} is not subscriptable") + + +if hasattr(typing, "Self"): # 3.11+ + Self = typing.Self +else: + @_SpecialForm + def Self(self, params): + """Used to spell the type of "self" in classes. + + Example:: + + from typing import Self + + class ReturnsSelf: + def parse(self, data: bytes) -> Self: + ... + return self + + """ + + raise TypeError(f"{self} is not subscriptable") + + +if hasattr(typing, "Never"): # 3.11+ + Never = typing.Never +else: + @_SpecialForm + def Never(self, params): + """The bottom type, a type that has no members. + + This can be used to define a function that should never be + called, or a function that never returns:: + + from typing_extensions import Never + + def never_call_me(arg: Never) -> None: + pass + + def int_or_str(arg: int | str) -> None: + never_call_me(arg) # type checker error + match arg: + case int(): + print("It's an int") + case str(): + print("It's a str") + case _: + never_call_me(arg) # ok, arg is of type Never + + """ + + raise TypeError(f"{self} is not subscriptable") + + +if hasattr(typing, 'Required'): # 3.11+ + Required = typing.Required + NotRequired = typing.NotRequired +else: # <=3.10 + @_ExtensionsSpecialForm + def Required(self, parameters): + """A special typing construct to mark a key of a total=False TypedDict + as required. For example: + + class Movie(TypedDict, total=False): + title: Required[str] + year: int + + m = Movie( + title='The Matrix', # typechecker error if key is omitted + year=1999, + ) + + There is no runtime checking that a required key is actually provided + when instantiating a related TypedDict. + """ + item = typing._type_check(parameters, f'{self._name} accepts only a single type.') + return typing._GenericAlias(self, (item,)) + + @_ExtensionsSpecialForm + def NotRequired(self, parameters): + """A special typing construct to mark a key of a TypedDict as + potentially missing. For example: + + class Movie(TypedDict): + title: str + year: NotRequired[int] + + m = Movie( + title='The Matrix', # typechecker error if key is omitted + year=1999, + ) + """ + item = typing._type_check(parameters, f'{self._name} accepts only a single type.') + return typing._GenericAlias(self, (item,)) + + +if hasattr(typing, 'ReadOnly'): + ReadOnly = typing.ReadOnly +else: # <=3.12 + @_ExtensionsSpecialForm + def ReadOnly(self, parameters): + """A special typing construct to mark an item of a TypedDict as read-only. + + For example: + + class Movie(TypedDict): + title: ReadOnly[str] + year: int + + def mutate_movie(m: Movie) -> None: + m["year"] = 1992 # allowed + m["title"] = "The Matrix" # typechecker error + + There is no runtime checking for this property. + """ + item = typing._type_check(parameters, f'{self._name} accepts only a single type.') + return typing._GenericAlias(self, (item,)) + + +_UNPACK_DOC = """\ +Type unpack operator. + +The type unpack operator takes the child types from some container type, +such as `tuple[int, str]` or a `TypeVarTuple`, and 'pulls them out'. For +example: + + # For some generic class `Foo`: + Foo[Unpack[tuple[int, str]]] # Equivalent to Foo[int, str] + + Ts = TypeVarTuple('Ts') + # Specifies that `Bar` is generic in an arbitrary number of types. + # (Think of `Ts` as a tuple of an arbitrary number of individual + # `TypeVar`s, which the `Unpack` is 'pulling out' directly into the + # `Generic[]`.) + class Bar(Generic[Unpack[Ts]]): ... + Bar[int] # Valid + Bar[int, str] # Also valid + +From Python 3.11, this can also be done using the `*` operator: + + Foo[*tuple[int, str]] + class Bar(Generic[*Ts]): ... + +The operator can also be used along with a `TypedDict` to annotate +`**kwargs` in a function signature. For instance: + + class Movie(TypedDict): + name: str + year: int + + # This function expects two keyword arguments - *name* of type `str` and + # *year* of type `int`. + def foo(**kwargs: Unpack[Movie]): ... + +Note that there is only some runtime checking of this operator. Not +everything the runtime allows may be accepted by static type checkers. + +For more information, see PEP 646 and PEP 692. +""" + + +# PEP 692 changed the repr of Unpack[] +# Breakpoint: https://github.com/python/cpython/pull/104048 +if sys.version_info >= (3, 12): + Unpack = typing.Unpack + + def _is_unpack(obj): + return get_origin(obj) is Unpack + +else: # <=3.11 + class _UnpackSpecialForm(_ExtensionsSpecialForm, _root=True): + def __init__(self, getitem): + super().__init__(getitem) + self.__doc__ = _UNPACK_DOC + + class _UnpackAlias(typing._GenericAlias, _root=True): + if sys.version_info < (3, 11): + # needed for compatibility with Generic[Unpack[Ts]] + __class__ = typing.TypeVar + + @property + def __typing_unpacked_tuple_args__(self): + assert self.__origin__ is Unpack + assert len(self.__args__) == 1 + arg, = self.__args__ + if isinstance(arg, (typing._GenericAlias, _types.GenericAlias)): + if arg.__origin__ is not tuple: + raise TypeError("Unpack[...] must be used with a tuple type") + return arg.__args__ + return None + + @property + def __typing_is_unpacked_typevartuple__(self): + assert self.__origin__ is Unpack + assert len(self.__args__) == 1 + return isinstance(self.__args__[0], TypeVarTuple) + + def __getitem__(self, args): + if self.__typing_is_unpacked_typevartuple__: + return args + return super().__getitem__(args) + + @_UnpackSpecialForm + def Unpack(self, parameters): + item = typing._type_check(parameters, f'{self._name} accepts only a single type.') + return _UnpackAlias(self, (item,)) + + def _is_unpack(obj): + return isinstance(obj, _UnpackAlias) + + +def _unpack_args(*args): + newargs = [] + for arg in args: + subargs = getattr(arg, '__typing_unpacked_tuple_args__', None) + if subargs is not None and (not (subargs and subargs[-1] is ...)): + newargs.extend(subargs) + else: + newargs.append(arg) + return newargs + + +if _PEP_696_IMPLEMENTED: + from typing import TypeVarTuple + +elif hasattr(typing, "TypeVarTuple"): # 3.11+ + + # Add default parameter - PEP 696 + class TypeVarTuple(metaclass=_TypeVarLikeMeta): + """Type variable tuple.""" + + _backported_typevarlike = typing.TypeVarTuple + + def __new__(cls, name, *, default=NoDefault): + tvt = typing.TypeVarTuple(name) + _set_default(tvt, default) + _set_module(tvt) + + def _typevartuple_prepare_subst(alias, args): + params = alias.__parameters__ + typevartuple_index = params.index(tvt) + for param in params[typevartuple_index + 1:]: + if isinstance(param, TypeVarTuple): + raise TypeError( + f"More than one TypeVarTuple parameter in {alias}" + ) + + alen = len(args) + plen = len(params) + left = typevartuple_index + right = plen - typevartuple_index - 1 + var_tuple_index = None + fillarg = None + for k, arg in enumerate(args): + if not isinstance(arg, type): + subargs = getattr(arg, '__typing_unpacked_tuple_args__', None) + if subargs and len(subargs) == 2 and subargs[-1] is ...: + if var_tuple_index is not None: + raise TypeError( + "More than one unpacked " + "arbitrary-length tuple argument" + ) + var_tuple_index = k + fillarg = subargs[0] + if var_tuple_index is not None: + left = min(left, var_tuple_index) + right = min(right, alen - var_tuple_index - 1) + elif left + right > alen: + raise TypeError(f"Too few arguments for {alias};" + f" actual {alen}, expected at least {plen - 1}") + if left == alen - right and tvt.has_default(): + replacement = _unpack_args(tvt.__default__) + else: + replacement = args[left: alen - right] + + return ( + *args[:left], + *([fillarg] * (typevartuple_index - left)), + replacement, + *([fillarg] * (plen - right - left - typevartuple_index - 1)), + *args[alen - right:], + ) + + tvt.__typing_prepare_subst__ = _typevartuple_prepare_subst + return tvt + + def __init_subclass__(self, *args, **kwds): + raise TypeError("Cannot subclass special typing classes") + +else: # <=3.10 + class TypeVarTuple(_DefaultMixin): + """Type variable tuple. + + Usage:: + + Ts = TypeVarTuple('Ts') + + In the same way that a normal type variable is a stand-in for a single + type such as ``int``, a type variable *tuple* is a stand-in for a *tuple* + type such as ``Tuple[int, str]``. + + Type variable tuples can be used in ``Generic`` declarations. + Consider the following example:: + + class Array(Generic[*Ts]): ... + + The ``Ts`` type variable tuple here behaves like ``tuple[T1, T2]``, + where ``T1`` and ``T2`` are type variables. To use these type variables + as type parameters of ``Array``, we must *unpack* the type variable tuple using + the star operator: ``*Ts``. The signature of ``Array`` then behaves + as if we had simply written ``class Array(Generic[T1, T2]): ...``. + In contrast to ``Generic[T1, T2]``, however, ``Generic[*Shape]`` allows + us to parameterise the class with an *arbitrary* number of type parameters. + + Type variable tuples can be used anywhere a normal ``TypeVar`` can. + This includes class definitions, as shown above, as well as function + signatures and variable annotations:: + + class Array(Generic[*Ts]): + + def __init__(self, shape: Tuple[*Ts]): + self._shape: Tuple[*Ts] = shape + + def get_shape(self) -> Tuple[*Ts]: + return self._shape + + shape = (Height(480), Width(640)) + x: Array[Height, Width] = Array(shape) + y = abs(x) # Inferred type is Array[Height, Width] + z = x + x # ... is Array[Height, Width] + x.get_shape() # ... is tuple[Height, Width] + + """ + + # Trick Generic __parameters__. + __class__ = typing.TypeVar + + def __iter__(self): + yield self.__unpacked__ + + def __init__(self, name, *, default=NoDefault): + self.__name__ = name + _DefaultMixin.__init__(self, default) + + # for pickling: + def_mod = _caller() + if def_mod != 'typing_extensions': + self.__module__ = def_mod + + self.__unpacked__ = Unpack[self] + + def __repr__(self): + return self.__name__ + + def __hash__(self): + return object.__hash__(self) + + def __eq__(self, other): + return self is other + + def __reduce__(self): + return self.__name__ + + def __init_subclass__(self, *args, **kwds): + if '_root' not in kwds: + raise TypeError("Cannot subclass special typing classes") + + +if hasattr(typing, "reveal_type"): # 3.11+ + reveal_type = typing.reveal_type +else: # <=3.10 + def reveal_type(obj: T, /) -> T: + """Reveal the inferred type of a variable. + + When a static type checker encounters a call to ``reveal_type()``, + it will emit the inferred type of the argument:: + + x: int = 1 + reveal_type(x) + + Running a static type checker (e.g., ``mypy``) on this example + will produce output similar to 'Revealed type is "builtins.int"'. + + At runtime, the function prints the runtime type of the + argument and returns it unchanged. + + """ + print(f"Runtime type is {type(obj).__name__!r}", file=sys.stderr) + return obj + + +if hasattr(typing, "_ASSERT_NEVER_REPR_MAX_LENGTH"): # 3.11+ + _ASSERT_NEVER_REPR_MAX_LENGTH = typing._ASSERT_NEVER_REPR_MAX_LENGTH +else: # <=3.10 + _ASSERT_NEVER_REPR_MAX_LENGTH = 100 + + +if hasattr(typing, "assert_never"): # 3.11+ + assert_never = typing.assert_never +else: # <=3.10 + def assert_never(arg: Never, /) -> Never: + """Assert to the type checker that a line of code is unreachable. + + Example:: + + def int_or_str(arg: int | str) -> None: + match arg: + case int(): + print("It's an int") + case str(): + print("It's a str") + case _: + assert_never(arg) + + If a type checker finds that a call to assert_never() is + reachable, it will emit an error. + + At runtime, this throws an exception when called. + + """ + value = repr(arg) + if len(value) > _ASSERT_NEVER_REPR_MAX_LENGTH: + value = value[:_ASSERT_NEVER_REPR_MAX_LENGTH] + '...' + raise AssertionError(f"Expected code to be unreachable, but got: {value}") + + +# dataclass_transform exists in 3.11 but lacks the frozen_default parameter +# Breakpoint: https://github.com/python/cpython/pull/99958 +if sys.version_info >= (3, 12): # 3.12+ + dataclass_transform = typing.dataclass_transform +else: # <=3.11 + def dataclass_transform( + *, + eq_default: bool = True, + order_default: bool = False, + kw_only_default: bool = False, + frozen_default: bool = False, + field_specifiers: typing.Tuple[ + typing.Union[typing.Type[typing.Any], typing.Callable[..., typing.Any]], + ... + ] = (), + **kwargs: typing.Any, + ) -> typing.Callable[[T], T]: + """Decorator that marks a function, class, or metaclass as providing + dataclass-like behavior. + + Example: + + from typing_extensions import dataclass_transform + + _T = TypeVar("_T") + + # Used on a decorator function + @dataclass_transform() + def create_model(cls: type[_T]) -> type[_T]: + ... + return cls + + @create_model + class CustomerModel: + id: int + name: str + + # Used on a base class + @dataclass_transform() + class ModelBase: ... + + class CustomerModel(ModelBase): + id: int + name: str + + # Used on a metaclass + @dataclass_transform() + class ModelMeta(type): ... + + class ModelBase(metaclass=ModelMeta): ... + + class CustomerModel(ModelBase): + id: int + name: str + + Each of the ``CustomerModel`` classes defined in this example will now + behave similarly to a dataclass created with the ``@dataclasses.dataclass`` + decorator. For example, the type checker will synthesize an ``__init__`` + method. + + The arguments to this decorator can be used to customize this behavior: + - ``eq_default`` indicates whether the ``eq`` parameter is assumed to be + True or False if it is omitted by the caller. + - ``order_default`` indicates whether the ``order`` parameter is + assumed to be True or False if it is omitted by the caller. + - ``kw_only_default`` indicates whether the ``kw_only`` parameter is + assumed to be True or False if it is omitted by the caller. + - ``frozen_default`` indicates whether the ``frozen`` parameter is + assumed to be True or False if it is omitted by the caller. + - ``field_specifiers`` specifies a static list of supported classes + or functions that describe fields, similar to ``dataclasses.field()``. + + At runtime, this decorator records its arguments in the + ``__dataclass_transform__`` attribute on the decorated object. + + See PEP 681 for details. + + """ + def decorator(cls_or_fn): + cls_or_fn.__dataclass_transform__ = { + "eq_default": eq_default, + "order_default": order_default, + "kw_only_default": kw_only_default, + "frozen_default": frozen_default, + "field_specifiers": field_specifiers, + "kwargs": kwargs, + } + return cls_or_fn + return decorator + + +if hasattr(typing, "override"): # 3.12+ + override = typing.override +else: # <=3.11 + _F = typing.TypeVar("_F", bound=typing.Callable[..., typing.Any]) + + def override(arg: _F, /) -> _F: + """Indicate that a method is intended to override a method in a base class. + + Usage: + + class Base: + def method(self) -> None: + pass + + class Child(Base): + @override + def method(self) -> None: + super().method() + + When this decorator is applied to a method, the type checker will + validate that it overrides a method with the same name on a base class. + This helps prevent bugs that may occur when a base class is changed + without an equivalent change to a child class. + + There is no runtime checking of these properties. The decorator + sets the ``__override__`` attribute to ``True`` on the decorated object + to allow runtime introspection. + + See PEP 698 for details. + + """ + try: + arg.__override__ = True + except (AttributeError, TypeError): + # Skip the attribute silently if it is not writable. + # AttributeError happens if the object has __slots__ or a + # read-only property, TypeError if it's a builtin class. + pass + return arg + + +# Python 3.13.3+ contains a fix for the wrapped __new__ +# Breakpoint: https://github.com/python/cpython/pull/132160 +if sys.version_info >= (3, 13, 3): + deprecated = warnings.deprecated +else: + _T = typing.TypeVar("_T") + + class deprecated: + """Indicate that a class, function or overload is deprecated. + + When this decorator is applied to an object, the type checker + will generate a diagnostic on usage of the deprecated object. + + Usage: + + @deprecated("Use B instead") + class A: + pass + + @deprecated("Use g instead") + def f(): + pass + + @overload + @deprecated("int support is deprecated") + def g(x: int) -> int: ... + @overload + def g(x: str) -> int: ... + + The warning specified by *category* will be emitted at runtime + on use of deprecated objects. For functions, that happens on calls; + for classes, on instantiation and on creation of subclasses. + If the *category* is ``None``, no warning is emitted at runtime. + The *stacklevel* determines where the + warning is emitted. If it is ``1`` (the default), the warning + is emitted at the direct caller of the deprecated object; if it + is higher, it is emitted further up the stack. + Static type checker behavior is not affected by the *category* + and *stacklevel* arguments. + + The deprecation message passed to the decorator is saved in the + ``__deprecated__`` attribute on the decorated object. + If applied to an overload, the decorator + must be after the ``@overload`` decorator for the attribute to + exist on the overload as returned by ``get_overloads()``. + + See PEP 702 for details. + + """ + def __init__( + self, + message: str, + /, + *, + category: typing.Optional[typing.Type[Warning]] = DeprecationWarning, + stacklevel: int = 1, + ) -> None: + if not isinstance(message, str): + raise TypeError( + "Expected an object of type str for 'message', not " + f"{type(message).__name__!r}" + ) + self.message = message + self.category = category + self.stacklevel = stacklevel + + def __call__(self, arg: _T, /) -> _T: + # Make sure the inner functions created below don't + # retain a reference to self. + msg = self.message + category = self.category + stacklevel = self.stacklevel + if category is None: + arg.__deprecated__ = msg + return arg + elif isinstance(arg, type): + import functools + from types import MethodType + + original_new = arg.__new__ + + @functools.wraps(original_new) + def __new__(cls, /, *args, **kwargs): + if cls is arg: + warnings.warn(msg, category=category, stacklevel=stacklevel + 1) + if original_new is not object.__new__: + return original_new(cls, *args, **kwargs) + # Mirrors a similar check in object.__new__. + elif cls.__init__ is object.__init__ and (args or kwargs): + raise TypeError(f"{cls.__name__}() takes no arguments") + else: + return original_new(cls) + + arg.__new__ = staticmethod(__new__) + + original_init_subclass = arg.__init_subclass__ + # We need slightly different behavior if __init_subclass__ + # is a bound method (likely if it was implemented in Python) + if isinstance(original_init_subclass, MethodType): + original_init_subclass = original_init_subclass.__func__ + + @functools.wraps(original_init_subclass) + def __init_subclass__(*args, **kwargs): + warnings.warn(msg, category=category, stacklevel=stacklevel + 1) + return original_init_subclass(*args, **kwargs) + + arg.__init_subclass__ = classmethod(__init_subclass__) + # Or otherwise, which likely means it's a builtin such as + # object's implementation of __init_subclass__. + else: + @functools.wraps(original_init_subclass) + def __init_subclass__(*args, **kwargs): + warnings.warn(msg, category=category, stacklevel=stacklevel + 1) + return original_init_subclass(*args, **kwargs) + + arg.__init_subclass__ = __init_subclass__ + + arg.__deprecated__ = __new__.__deprecated__ = msg + __init_subclass__.__deprecated__ = msg + return arg + elif callable(arg): + import asyncio.coroutines + import functools + import inspect + + @functools.wraps(arg) + def wrapper(*args, **kwargs): + warnings.warn(msg, category=category, stacklevel=stacklevel + 1) + return arg(*args, **kwargs) + + if asyncio.coroutines.iscoroutinefunction(arg): + # Breakpoint: https://github.com/python/cpython/pull/99247 + if sys.version_info >= (3, 12): + wrapper = inspect.markcoroutinefunction(wrapper) + else: + wrapper._is_coroutine = asyncio.coroutines._is_coroutine + + arg.__deprecated__ = wrapper.__deprecated__ = msg + return wrapper + else: + raise TypeError( + "@deprecated decorator with non-None category must be applied to " + f"a class or callable, not {arg!r}" + ) + +# Breakpoint: https://github.com/python/cpython/pull/23702 +if sys.version_info < (3, 10): + def _is_param_expr(arg): + return arg is ... or isinstance( + arg, (tuple, list, ParamSpec, _ConcatenateGenericAlias) + ) +else: + def _is_param_expr(arg): + return arg is ... or isinstance( + arg, + ( + tuple, + list, + ParamSpec, + _ConcatenateGenericAlias, + typing._ConcatenateGenericAlias, + ), + ) + + +# We have to do some monkey patching to deal with the dual nature of +# Unpack/TypeVarTuple: +# - We want Unpack to be a kind of TypeVar so it gets accepted in +# Generic[Unpack[Ts]] +# - We want it to *not* be treated as a TypeVar for the purposes of +# counting generic parameters, so that when we subscript a generic, +# the runtime doesn't try to substitute the Unpack with the subscripted type. +if not hasattr(typing, "TypeVarTuple"): + def _check_generic(cls, parameters, elen=_marker): + """Check correct count for parameters of a generic cls (internal helper). + + This gives a nice error message in case of count mismatch. + """ + # If substituting a single ParamSpec with multiple arguments + # we do not check the count + if (inspect.isclass(cls) and issubclass(cls, typing.Generic) + and len(cls.__parameters__) == 1 + and isinstance(cls.__parameters__[0], ParamSpec) + and parameters + and not _is_param_expr(parameters[0]) + ): + # Generic modifies parameters variable, but here we cannot do this + return + + if not elen: + raise TypeError(f"{cls} is not a generic class") + if elen is _marker: + if not hasattr(cls, "__parameters__") or not cls.__parameters__: + raise TypeError(f"{cls} is not a generic class") + elen = len(cls.__parameters__) + alen = len(parameters) + if alen != elen: + expect_val = elen + if hasattr(cls, "__parameters__"): + parameters = [p for p in cls.__parameters__ if not _is_unpack(p)] + num_tv_tuples = sum(isinstance(p, TypeVarTuple) for p in parameters) + if (num_tv_tuples > 0) and (alen >= elen - num_tv_tuples): + return + + # deal with TypeVarLike defaults + # required TypeVarLikes cannot appear after a defaulted one. + if alen < elen: + # since we validate TypeVarLike default in _collect_type_vars + # or _collect_parameters we can safely check parameters[alen] + if ( + getattr(parameters[alen], '__default__', NoDefault) + is not NoDefault + ): + return + + num_default_tv = sum(getattr(p, '__default__', NoDefault) + is not NoDefault for p in parameters) + + elen -= num_default_tv + + expect_val = f"at least {elen}" + + # Breakpoint: https://github.com/python/cpython/pull/27515 + things = "arguments" if sys.version_info >= (3, 10) else "parameters" + raise TypeError(f"Too {'many' if alen > elen else 'few'} {things}" + f" for {cls}; actual {alen}, expected {expect_val}") +else: + # Python 3.11+ + + def _check_generic(cls, parameters, elen): + """Check correct count for parameters of a generic cls (internal helper). + + This gives a nice error message in case of count mismatch. + """ + if not elen: + raise TypeError(f"{cls} is not a generic class") + alen = len(parameters) + if alen != elen: + expect_val = elen + if hasattr(cls, "__parameters__"): + parameters = [p for p in cls.__parameters__ if not _is_unpack(p)] + + # deal with TypeVarLike defaults + # required TypeVarLikes cannot appear after a defaulted one. + if alen < elen: + # since we validate TypeVarLike default in _collect_type_vars + # or _collect_parameters we can safely check parameters[alen] + if ( + getattr(parameters[alen], '__default__', NoDefault) + is not NoDefault + ): + return + + num_default_tv = sum(getattr(p, '__default__', NoDefault) + is not NoDefault for p in parameters) + + elen -= num_default_tv + + expect_val = f"at least {elen}" + + raise TypeError(f"Too {'many' if alen > elen else 'few'} arguments" + f" for {cls}; actual {alen}, expected {expect_val}") + +if not _PEP_696_IMPLEMENTED: + typing._check_generic = _check_generic + + +def _has_generic_or_protocol_as_origin() -> bool: + try: + frame = sys._getframe(2) + # - Catch AttributeError: not all Python implementations have sys._getframe() + # - Catch ValueError: maybe we're called from an unexpected module + # and the call stack isn't deep enough + except (AttributeError, ValueError): + return False # err on the side of leniency + else: + # If we somehow get invoked from outside typing.py, + # also err on the side of leniency + if frame.f_globals.get("__name__") != "typing": + return False + origin = frame.f_locals.get("origin") + # Cannot use "in" because origin may be an object with a buggy __eq__ that + # throws an error. + return origin is typing.Generic or origin is Protocol or origin is typing.Protocol + + +_TYPEVARTUPLE_TYPES = {TypeVarTuple, getattr(typing, "TypeVarTuple", None)} + + +def _is_unpacked_typevartuple(x) -> bool: + if get_origin(x) is not Unpack: + return False + args = get_args(x) + return ( + bool(args) + and len(args) == 1 + and type(args[0]) in _TYPEVARTUPLE_TYPES + ) + + +# Python 3.11+ _collect_type_vars was renamed to _collect_parameters +if hasattr(typing, '_collect_type_vars'): + def _collect_type_vars(types, typevar_types=None): + """Collect all type variable contained in types in order of + first appearance (lexicographic order). For example:: + + _collect_type_vars((T, List[S, T])) == (T, S) + """ + if typevar_types is None: + typevar_types = typing.TypeVar + tvars = [] + + # A required TypeVarLike cannot appear after a TypeVarLike with a default + # if it was a direct call to `Generic[]` or `Protocol[]` + enforce_default_ordering = _has_generic_or_protocol_as_origin() + default_encountered = False + + # Also, a TypeVarLike with a default cannot appear after a TypeVarTuple + type_var_tuple_encountered = False + + for t in types: + if _is_unpacked_typevartuple(t): + type_var_tuple_encountered = True + elif ( + isinstance(t, typevar_types) and not isinstance(t, _UnpackAlias) + and t not in tvars + ): + if enforce_default_ordering: + has_default = getattr(t, '__default__', NoDefault) is not NoDefault + if has_default: + if type_var_tuple_encountered: + raise TypeError('Type parameter with a default' + ' follows TypeVarTuple') + default_encountered = True + elif default_encountered: + raise TypeError(f'Type parameter {t!r} without a default' + ' follows type parameter with a default') + + tvars.append(t) + if _should_collect_from_parameters(t): + tvars.extend([t for t in t.__parameters__ if t not in tvars]) + elif isinstance(t, tuple): + # Collect nested type_vars + # tuple wrapped by _prepare_paramspec_params(cls, params) + for x in t: + for collected in _collect_type_vars([x]): + if collected not in tvars: + tvars.append(collected) + return tuple(tvars) + + typing._collect_type_vars = _collect_type_vars +else: + def _collect_parameters(args): + """Collect all type variables and parameter specifications in args + in order of first appearance (lexicographic order). + + For example:: + + assert _collect_parameters((T, Callable[P, T])) == (T, P) + """ + parameters = [] + + # A required TypeVarLike cannot appear after a TypeVarLike with default + # if it was a direct call to `Generic[]` or `Protocol[]` + enforce_default_ordering = _has_generic_or_protocol_as_origin() + default_encountered = False + + # Also, a TypeVarLike with a default cannot appear after a TypeVarTuple + type_var_tuple_encountered = False + + for t in args: + if isinstance(t, type): + # We don't want __parameters__ descriptor of a bare Python class. + pass + elif isinstance(t, tuple): + # `t` might be a tuple, when `ParamSpec` is substituted with + # `[T, int]`, or `[int, *Ts]`, etc. + for x in t: + for collected in _collect_parameters([x]): + if collected not in parameters: + parameters.append(collected) + elif hasattr(t, '__typing_subst__'): + if t not in parameters: + if enforce_default_ordering: + has_default = ( + getattr(t, '__default__', NoDefault) is not NoDefault + ) + + if type_var_tuple_encountered and has_default: + raise TypeError('Type parameter with a default' + ' follows TypeVarTuple') + + if has_default: + default_encountered = True + elif default_encountered: + raise TypeError(f'Type parameter {t!r} without a default' + ' follows type parameter with a default') + + parameters.append(t) + else: + if _is_unpacked_typevartuple(t): + type_var_tuple_encountered = True + for x in getattr(t, '__parameters__', ()): + if x not in parameters: + parameters.append(x) + + return tuple(parameters) + + if not _PEP_696_IMPLEMENTED: + typing._collect_parameters = _collect_parameters + +# Backport typing.NamedTuple as it exists in Python 3.13. +# In 3.11, the ability to define generic `NamedTuple`s was supported. +# This was explicitly disallowed in 3.9-3.10, and only half-worked in <=3.8. +# On 3.12, we added __orig_bases__ to call-based NamedTuples +# On 3.13, we deprecated kwargs-based NamedTuples +# Breakpoint: https://github.com/python/cpython/pull/105609 +if sys.version_info >= (3, 13): + NamedTuple = typing.NamedTuple +else: + def _make_nmtuple(name, types, module, defaults=()): + fields = [n for n, t in types] + annotations = {n: typing._type_check(t, f"field {n} annotation must be a type") + for n, t in types} + nm_tpl = collections.namedtuple(name, fields, + defaults=defaults, module=module) + nm_tpl.__annotations__ = nm_tpl.__new__.__annotations__ = annotations + return nm_tpl + + _prohibited_namedtuple_fields = typing._prohibited + _special_namedtuple_fields = frozenset({'__module__', '__name__', '__annotations__'}) + + class _NamedTupleMeta(type): + def __new__(cls, typename, bases, ns): + assert _NamedTuple in bases + for base in bases: + if base is not _NamedTuple and base is not typing.Generic: + raise TypeError( + 'can only inherit from a NamedTuple type and Generic') + bases = tuple(tuple if base is _NamedTuple else base for base in bases) + if "__annotations__" in ns: + types = ns["__annotations__"] + elif "__annotate__" in ns: + # TODO: Use inspect.VALUE here, and make the annotations lazily evaluated + types = ns["__annotate__"](1) + else: + types = {} + default_names = [] + for field_name in types: + if field_name in ns: + default_names.append(field_name) + elif default_names: + raise TypeError(f"Non-default namedtuple field {field_name} " + f"cannot follow default field" + f"{'s' if len(default_names) > 1 else ''} " + f"{', '.join(default_names)}") + nm_tpl = _make_nmtuple( + typename, types.items(), + defaults=[ns[n] for n in default_names], + module=ns['__module__'] + ) + nm_tpl.__bases__ = bases + if typing.Generic in bases: + if hasattr(typing, '_generic_class_getitem'): # 3.12+ + nm_tpl.__class_getitem__ = classmethod(typing._generic_class_getitem) + else: + class_getitem = typing.Generic.__class_getitem__.__func__ + nm_tpl.__class_getitem__ = classmethod(class_getitem) + # update from user namespace without overriding special namedtuple attributes + for key, val in ns.items(): + if key in _prohibited_namedtuple_fields: + raise AttributeError("Cannot overwrite NamedTuple attribute " + key) + elif key not in _special_namedtuple_fields: + if key not in nm_tpl._fields: + setattr(nm_tpl, key, ns[key]) + try: + set_name = type(val).__set_name__ + except AttributeError: + pass + else: + try: + set_name(val, nm_tpl, key) + except BaseException as e: + msg = ( + f"Error calling __set_name__ on {type(val).__name__!r} " + f"instance {key!r} in {typename!r}" + ) + # BaseException.add_note() existed on py311, + # but the __set_name__ machinery didn't start + # using add_note() until py312. + # Making sure exceptions are raised in the same way + # as in "normal" classes seems most important here. + # Breakpoint: https://github.com/python/cpython/pull/95915 + if sys.version_info >= (3, 12): + e.add_note(msg) + raise + else: + raise RuntimeError(msg) from e + + if typing.Generic in bases: + nm_tpl.__init_subclass__() + return nm_tpl + + _NamedTuple = type.__new__(_NamedTupleMeta, 'NamedTuple', (), {}) + + def _namedtuple_mro_entries(bases): + assert NamedTuple in bases + return (_NamedTuple,) + + def NamedTuple(typename, fields=_marker, /, **kwargs): + """Typed version of namedtuple. + + Usage:: + + class Employee(NamedTuple): + name: str + id: int + + This is equivalent to:: + + Employee = collections.namedtuple('Employee', ['name', 'id']) + + The resulting class has an extra __annotations__ attribute, giving a + dict that maps field names to types. (The field names are also in + the _fields attribute, which is part of the namedtuple API.) + An alternative equivalent functional syntax is also accepted:: + + Employee = NamedTuple('Employee', [('name', str), ('id', int)]) + """ + if fields is _marker: + if kwargs: + deprecated_thing = "Creating NamedTuple classes using keyword arguments" + deprecation_msg = ( + "{name} is deprecated and will be disallowed in Python {remove}. " + "Use the class-based or functional syntax instead." + ) + else: + deprecated_thing = "Failing to pass a value for the 'fields' parameter" + example = f"`{typename} = NamedTuple({typename!r}, [])`" + deprecation_msg = ( + "{name} is deprecated and will be disallowed in Python {remove}. " + "To create a NamedTuple class with 0 fields " + "using the functional syntax, " + "pass an empty list, e.g. " + ) + example + "." + elif fields is None: + if kwargs: + raise TypeError( + "Cannot pass `None` as the 'fields' parameter " + "and also specify fields using keyword arguments" + ) + else: + deprecated_thing = "Passing `None` as the 'fields' parameter" + example = f"`{typename} = NamedTuple({typename!r}, [])`" + deprecation_msg = ( + "{name} is deprecated and will be disallowed in Python {remove}. " + "To create a NamedTuple class with 0 fields " + "using the functional syntax, " + "pass an empty list, e.g. " + ) + example + "." + elif kwargs: + raise TypeError("Either list of fields or keywords" + " can be provided to NamedTuple, not both") + if fields is _marker or fields is None: + warnings.warn( + deprecation_msg.format(name=deprecated_thing, remove="3.15"), + DeprecationWarning, + stacklevel=2, + ) + fields = kwargs.items() + nt = _make_nmtuple(typename, fields, module=_caller()) + nt.__orig_bases__ = (NamedTuple,) + return nt + + NamedTuple.__mro_entries__ = _namedtuple_mro_entries + + +if hasattr(collections.abc, "Buffer"): + Buffer = collections.abc.Buffer +else: + class Buffer(abc.ABC): # noqa: B024 + """Base class for classes that implement the buffer protocol. + + The buffer protocol allows Python objects to expose a low-level + memory buffer interface. Before Python 3.12, it is not possible + to implement the buffer protocol in pure Python code, or even + to check whether a class implements the buffer protocol. In + Python 3.12 and higher, the ``__buffer__`` method allows access + to the buffer protocol from Python code, and the + ``collections.abc.Buffer`` ABC allows checking whether a class + implements the buffer protocol. + + To indicate support for the buffer protocol in earlier versions, + inherit from this ABC, either in a stub file or at runtime, + or use ABC registration. This ABC provides no methods, because + there is no Python-accessible methods shared by pre-3.12 buffer + classes. It is useful primarily for static checks. + + """ + + # As a courtesy, register the most common stdlib buffer classes. + Buffer.register(memoryview) + Buffer.register(bytearray) + Buffer.register(bytes) + + +# Backport of types.get_original_bases, available on 3.12+ in CPython +if hasattr(_types, "get_original_bases"): + get_original_bases = _types.get_original_bases +else: + def get_original_bases(cls, /): + """Return the class's "original" bases prior to modification by `__mro_entries__`. + + Examples:: + + from typing import TypeVar, Generic + from typing_extensions import NamedTuple, TypedDict + + T = TypeVar("T") + class Foo(Generic[T]): ... + class Bar(Foo[int], float): ... + class Baz(list[str]): ... + Eggs = NamedTuple("Eggs", [("a", int), ("b", str)]) + Spam = TypedDict("Spam", {"a": int, "b": str}) + + assert get_original_bases(Bar) == (Foo[int], float) + assert get_original_bases(Baz) == (list[str],) + assert get_original_bases(Eggs) == (NamedTuple,) + assert get_original_bases(Spam) == (TypedDict,) + assert get_original_bases(int) == (object,) + """ + try: + return cls.__dict__.get("__orig_bases__", cls.__bases__) + except AttributeError: + raise TypeError( + f'Expected an instance of type, not {type(cls).__name__!r}' + ) from None + + +# NewType is a class on Python 3.10+, making it pickleable +# The error message for subclassing instances of NewType was improved on 3.11+ +# Breakpoint: https://github.com/python/cpython/pull/30268 +if sys.version_info >= (3, 11): + NewType = typing.NewType +else: + class NewType: + """NewType creates simple unique types with almost zero + runtime overhead. NewType(name, tp) is considered a subtype of tp + by static type checkers. At runtime, NewType(name, tp) returns + a dummy callable that simply returns its argument. Usage:: + UserId = NewType('UserId', int) + def name_by_id(user_id: UserId) -> str: + ... + UserId('user') # Fails type check + name_by_id(42) # Fails type check + name_by_id(UserId(42)) # OK + num = UserId(5) + 1 # type: int + """ + + def __call__(self, obj, /): + return obj + + def __init__(self, name, tp): + self.__qualname__ = name + if '.' in name: + name = name.rpartition('.')[-1] + self.__name__ = name + self.__supertype__ = tp + def_mod = _caller() + if def_mod != 'typing_extensions': + self.__module__ = def_mod + + def __mro_entries__(self, bases): + # We defined __mro_entries__ to get a better error message + # if a user attempts to subclass a NewType instance. bpo-46170 + supercls_name = self.__name__ + + class Dummy: + def __init_subclass__(cls): + subcls_name = cls.__name__ + raise TypeError( + f"Cannot subclass an instance of NewType. " + f"Perhaps you were looking for: " + f"`{subcls_name} = NewType({subcls_name!r}, {supercls_name})`" + ) + + return (Dummy,) + + def __repr__(self): + return f'{self.__module__}.{self.__qualname__}' + + def __reduce__(self): + return self.__qualname__ + + # Breakpoint: https://github.com/python/cpython/pull/21515 + if sys.version_info >= (3, 10): + # PEP 604 methods + # It doesn't make sense to have these methods on Python <3.10 + + def __or__(self, other): + return typing.Union[self, other] + + def __ror__(self, other): + return typing.Union[other, self] + + +# Breakpoint: https://github.com/python/cpython/pull/124795 +if sys.version_info >= (3, 14): + TypeAliasType = typing.TypeAliasType +# <=3.13 +else: + # Breakpoint: https://github.com/python/cpython/pull/103764 + if sys.version_info >= (3, 12): + # 3.12-3.13 + def _is_unionable(obj): + """Corresponds to is_unionable() in unionobject.c in CPython.""" + return obj is None or isinstance(obj, ( + type, + _types.GenericAlias, + _types.UnionType, + typing.TypeAliasType, + TypeAliasType, + )) + else: + # <=3.11 + def _is_unionable(obj): + """Corresponds to is_unionable() in unionobject.c in CPython.""" + return obj is None or isinstance(obj, ( + type, + _types.GenericAlias, + _types.UnionType, + TypeAliasType, + )) + + if sys.version_info < (3, 10): + # Copied and pasted from https://github.com/python/cpython/blob/986a4e1b6fcae7fe7a1d0a26aea446107dd58dd2/Objects/genericaliasobject.c#L568-L582, + # so that we emulate the behaviour of `types.GenericAlias` + # on the latest versions of CPython + _ATTRIBUTE_DELEGATION_EXCLUSIONS = frozenset({ + "__class__", + "__bases__", + "__origin__", + "__args__", + "__unpacked__", + "__parameters__", + "__typing_unpacked_tuple_args__", + "__mro_entries__", + "__reduce_ex__", + "__reduce__", + "__copy__", + "__deepcopy__", + }) + + class _TypeAliasGenericAlias(typing._GenericAlias, _root=True): + def __getattr__(self, attr): + if attr in _ATTRIBUTE_DELEGATION_EXCLUSIONS: + return object.__getattr__(self, attr) + return getattr(self.__origin__, attr) + + + class TypeAliasType: + """Create named, parameterized type aliases. + + This provides a backport of the new `type` statement in Python 3.12: + + type ListOrSet[T] = list[T] | set[T] + + is equivalent to: + + T = TypeVar("T") + ListOrSet = TypeAliasType("ListOrSet", list[T] | set[T], type_params=(T,)) + + The name ListOrSet can then be used as an alias for the type it refers to. + + The type_params argument should contain all the type parameters used + in the value of the type alias. If the alias is not generic, this + argument is omitted. + + Static type checkers should only support type aliases declared using + TypeAliasType that follow these rules: + + - The first argument (the name) must be a string literal. + - The TypeAliasType instance must be immediately assigned to a variable + of the same name. (For example, 'X = TypeAliasType("Y", int)' is invalid, + as is 'X, Y = TypeAliasType("X", int), TypeAliasType("Y", int)'). + + """ + + def __init__(self, name: str, value, *, type_params=()): + if not isinstance(name, str): + raise TypeError("TypeAliasType name must be a string") + if not isinstance(type_params, tuple): + raise TypeError("type_params must be a tuple") + self.__value__ = value + self.__type_params__ = type_params + + default_value_encountered = False + parameters = [] + for type_param in type_params: + if ( + not isinstance(type_param, (TypeVar, TypeVarTuple, ParamSpec)) + # <=3.11 + # Unpack Backport passes isinstance(type_param, TypeVar) + or _is_unpack(type_param) + ): + raise TypeError(f"Expected a type param, got {type_param!r}") + has_default = ( + getattr(type_param, '__default__', NoDefault) is not NoDefault + ) + if default_value_encountered and not has_default: + raise TypeError(f"non-default type parameter '{type_param!r}'" + " follows default type parameter") + if has_default: + default_value_encountered = True + if isinstance(type_param, TypeVarTuple): + parameters.extend(type_param) + else: + parameters.append(type_param) + self.__parameters__ = tuple(parameters) + def_mod = _caller() + if def_mod != 'typing_extensions': + self.__module__ = def_mod + # Setting this attribute closes the TypeAliasType from further modification + self.__name__ = name + + def __setattr__(self, name: str, value: object, /) -> None: + if hasattr(self, "__name__"): + self._raise_attribute_error(name) + super().__setattr__(name, value) + + def __delattr__(self, name: str, /) -> Never: + self._raise_attribute_error(name) + + def _raise_attribute_error(self, name: str) -> Never: + # Match the Python 3.12 error messages exactly + if name == "__name__": + raise AttributeError("readonly attribute") + elif name in {"__value__", "__type_params__", "__parameters__", "__module__"}: + raise AttributeError( + f"attribute '{name}' of 'typing.TypeAliasType' objects " + "is not writable" + ) + else: + raise AttributeError( + f"'typing.TypeAliasType' object has no attribute '{name}'" + ) + + def __repr__(self) -> str: + return self.__name__ + + if sys.version_info < (3, 11): + def _check_single_param(self, param, recursion=0): + # Allow [], [int], [int, str], [int, ...], [int, T] + if param is ...: + return ... + if param is None: + return None + # Note in <= 3.9 _ConcatenateGenericAlias inherits from list + if isinstance(param, list) and recursion == 0: + return [self._check_single_param(arg, recursion+1) + for arg in param] + return typing._type_check( + param, f'Subscripting {self.__name__} requires a type.' + ) + + def _check_parameters(self, parameters): + if sys.version_info < (3, 11): + return tuple( + self._check_single_param(item) + for item in parameters + ) + return tuple(typing._type_check( + item, f'Subscripting {self.__name__} requires a type.' + ) + for item in parameters + ) + + def __getitem__(self, parameters): + if not self.__type_params__: + raise TypeError("Only generic type aliases are subscriptable") + if not isinstance(parameters, tuple): + parameters = (parameters,) + # Using 3.9 here will create problems with Concatenate + if sys.version_info >= (3, 10): + return _types.GenericAlias(self, parameters) + type_vars = _collect_type_vars(parameters) + parameters = self._check_parameters(parameters) + alias = _TypeAliasGenericAlias(self, parameters) + # alias.__parameters__ is not complete if Concatenate is present + # as it is converted to a list from which no parameters are extracted. + if alias.__parameters__ != type_vars: + alias.__parameters__ = type_vars + return alias + + def __reduce__(self): + return self.__name__ + + def __init_subclass__(cls, *args, **kwargs): + raise TypeError( + "type 'typing_extensions.TypeAliasType' is not an acceptable base type" + ) + + # The presence of this method convinces typing._type_check + # that TypeAliasTypes are types. + def __call__(self): + raise TypeError("Type alias is not callable") + + # Breakpoint: https://github.com/python/cpython/pull/21515 + if sys.version_info >= (3, 10): + def __or__(self, right): + # For forward compatibility with 3.12, reject Unions + # that are not accepted by the built-in Union. + if not _is_unionable(right): + return NotImplemented + return typing.Union[self, right] + + def __ror__(self, left): + if not _is_unionable(left): + return NotImplemented + return typing.Union[left, self] + + +if hasattr(typing, "is_protocol"): + is_protocol = typing.is_protocol + get_protocol_members = typing.get_protocol_members +else: + def is_protocol(tp: type, /) -> bool: + """Return True if the given type is a Protocol. + + Example:: + + >>> from typing_extensions import Protocol, is_protocol + >>> class P(Protocol): + ... def a(self) -> str: ... + ... b: int + >>> is_protocol(P) + True + >>> is_protocol(int) + False + """ + return ( + isinstance(tp, type) + and getattr(tp, '_is_protocol', False) + and tp is not Protocol + and tp is not typing.Protocol + ) + + def get_protocol_members(tp: type, /) -> typing.FrozenSet[str]: + """Return the set of members defined in a Protocol. + + Example:: + + >>> from typing_extensions import Protocol, get_protocol_members + >>> class P(Protocol): + ... def a(self) -> str: ... + ... b: int + >>> get_protocol_members(P) + frozenset({'a', 'b'}) + + Raise a TypeError for arguments that are not Protocols. + """ + if not is_protocol(tp): + raise TypeError(f'{tp!r} is not a Protocol') + if hasattr(tp, '__protocol_attrs__'): + return frozenset(tp.__protocol_attrs__) + return frozenset(_get_protocol_attrs(tp)) + + +if hasattr(typing, "Doc"): + Doc = typing.Doc +else: + class Doc: + """Define the documentation of a type annotation using ``Annotated``, to be + used in class attributes, function and method parameters, return values, + and variables. + + The value should be a positional-only string literal to allow static tools + like editors and documentation generators to use it. + + This complements docstrings. + + The string value passed is available in the attribute ``documentation``. + + Example:: + + >>> from typing_extensions import Annotated, Doc + >>> def hi(to: Annotated[str, Doc("Who to say hi to")]) -> None: ... + """ + def __init__(self, documentation: str, /) -> None: + self.documentation = documentation + + def __repr__(self) -> str: + return f"Doc({self.documentation!r})" + + def __hash__(self) -> int: + return hash(self.documentation) + + def __eq__(self, other: object) -> bool: + if not isinstance(other, Doc): + return NotImplemented + return self.documentation == other.documentation + + +_CapsuleType = getattr(_types, "CapsuleType", None) + +if _CapsuleType is None: + try: + import _socket + except ImportError: + pass + else: + _CAPI = getattr(_socket, "CAPI", None) + if _CAPI is not None: + _CapsuleType = type(_CAPI) + +if _CapsuleType is not None: + CapsuleType = _CapsuleType + __all__.append("CapsuleType") + + +if sys.version_info >= (3, 14): + from annotationlib import Format, get_annotations +else: + # Available since Python 3.14.0a3 + # PR: https://github.com/python/cpython/pull/124415 + class Format(enum.IntEnum): + VALUE = 1 + VALUE_WITH_FAKE_GLOBALS = 2 + FORWARDREF = 3 + STRING = 4 + + # Available since Python 3.14.0a1 + # PR: https://github.com/python/cpython/pull/119891 + def get_annotations(obj, *, globals=None, locals=None, eval_str=False, + format=Format.VALUE): + """Compute the annotations dict for an object. + + obj may be a callable, class, or module. + Passing in an object of any other type raises TypeError. + + Returns a dict. get_annotations() returns a new dict every time + it's called; calling it twice on the same object will return two + different but equivalent dicts. + + This is a backport of `inspect.get_annotations`, which has been + in the standard library since Python 3.10. See the standard library + documentation for more: + + https://docs.python.org/3/library/inspect.html#inspect.get_annotations + + This backport adds the *format* argument introduced by PEP 649. The + three formats supported are: + * VALUE: the annotations are returned as-is. This is the default and + it is compatible with the behavior on previous Python versions. + * FORWARDREF: return annotations as-is if possible, but replace any + undefined names with ForwardRef objects. The implementation proposed by + PEP 649 relies on language changes that cannot be backported; the + typing-extensions implementation simply returns the same result as VALUE. + * STRING: return annotations as strings, in a format close to the original + source. Again, this behavior cannot be replicated directly in a backport. + As an approximation, typing-extensions retrieves the annotations under + VALUE semantics and then stringifies them. + + The purpose of this backport is to allow users who would like to use + FORWARDREF or STRING semantics once PEP 649 is implemented, but who also + want to support earlier Python versions, to simply write: + + typing_extensions.get_annotations(obj, format=Format.FORWARDREF) + + """ + format = Format(format) + if format is Format.VALUE_WITH_FAKE_GLOBALS: + raise ValueError( + "The VALUE_WITH_FAKE_GLOBALS format is for internal use only" + ) + + if eval_str and format is not Format.VALUE: + raise ValueError("eval_str=True is only supported with format=Format.VALUE") + + if isinstance(obj, type): + # class + obj_dict = getattr(obj, '__dict__', None) + if obj_dict and hasattr(obj_dict, 'get'): + ann = obj_dict.get('__annotations__', None) + if isinstance(ann, _types.GetSetDescriptorType): + ann = None + else: + ann = None + + obj_globals = None + module_name = getattr(obj, '__module__', None) + if module_name: + module = sys.modules.get(module_name, None) + if module: + obj_globals = getattr(module, '__dict__', None) + obj_locals = dict(vars(obj)) + unwrap = obj + elif isinstance(obj, _types.ModuleType): + # module + ann = getattr(obj, '__annotations__', None) + obj_globals = obj.__dict__ + obj_locals = None + unwrap = None + elif callable(obj): + # this includes types.Function, types.BuiltinFunctionType, + # types.BuiltinMethodType, functools.partial, functools.singledispatch, + # "class funclike" from Lib/test/test_inspect... on and on it goes. + ann = getattr(obj, '__annotations__', None) + obj_globals = getattr(obj, '__globals__', None) + obj_locals = None + unwrap = obj + elif hasattr(obj, '__annotations__'): + ann = obj.__annotations__ + obj_globals = obj_locals = unwrap = None + else: + raise TypeError(f"{obj!r} is not a module, class, or callable.") + + if ann is None: + return {} + + if not isinstance(ann, dict): + raise ValueError(f"{obj!r}.__annotations__ is neither a dict nor None") + + if not ann: + return {} + + if not eval_str: + if format is Format.STRING: + return { + key: value if isinstance(value, str) else typing._type_repr(value) + for key, value in ann.items() + } + return dict(ann) + + if unwrap is not None: + while True: + if hasattr(unwrap, '__wrapped__'): + unwrap = unwrap.__wrapped__ + continue + if isinstance(unwrap, functools.partial): + unwrap = unwrap.func + continue + break + if hasattr(unwrap, "__globals__"): + obj_globals = unwrap.__globals__ + + if globals is None: + globals = obj_globals + if locals is None: + locals = obj_locals or {} + + # "Inject" type parameters into the local namespace + # (unless they are shadowed by assignments *in* the local namespace), + # as a way of emulating annotation scopes when calling `eval()` + if type_params := getattr(obj, "__type_params__", ()): + locals = {param.__name__: param for param in type_params} | locals + + return_value = {key: + value if not isinstance(value, str) else eval(value, globals, locals) + for key, value in ann.items() } + return return_value + + +if hasattr(typing, "evaluate_forward_ref"): + evaluate_forward_ref = typing.evaluate_forward_ref +else: + # Implements annotationlib.ForwardRef.evaluate + def _eval_with_owner( + forward_ref, *, owner=None, globals=None, locals=None, type_params=None + ): + if forward_ref.__forward_evaluated__: + return forward_ref.__forward_value__ + if getattr(forward_ref, "__cell__", None) is not None: + try: + value = forward_ref.__cell__.cell_contents + except ValueError: + pass + else: + forward_ref.__forward_evaluated__ = True + forward_ref.__forward_value__ = value + return value + if owner is None: + owner = getattr(forward_ref, "__owner__", None) + + if ( + globals is None + and getattr(forward_ref, "__forward_module__", None) is not None + ): + globals = getattr( + sys.modules.get(forward_ref.__forward_module__, None), "__dict__", None + ) + if globals is None: + globals = getattr(forward_ref, "__globals__", None) + if globals is None: + if isinstance(owner, type): + module_name = getattr(owner, "__module__", None) + if module_name: + module = sys.modules.get(module_name, None) + if module: + globals = getattr(module, "__dict__", None) + elif isinstance(owner, _types.ModuleType): + globals = getattr(owner, "__dict__", None) + elif callable(owner): + globals = getattr(owner, "__globals__", None) + + # If we pass None to eval() below, the globals of this module are used. + if globals is None: + globals = {} + + if locals is None: + locals = {} + if isinstance(owner, type): + locals.update(vars(owner)) + + if type_params is None and owner is not None: + # "Inject" type parameters into the local namespace + # (unless they are shadowed by assignments *in* the local namespace), + # as a way of emulating annotation scopes when calling `eval()` + type_params = getattr(owner, "__type_params__", None) + + # Type parameters exist in their own scope, which is logically + # between the locals and the globals. We simulate this by adding + # them to the globals. + if type_params is not None: + globals = dict(globals) + for param in type_params: + globals[param.__name__] = param + + arg = forward_ref.__forward_arg__ + if arg.isidentifier() and not keyword.iskeyword(arg): + if arg in locals: + value = locals[arg] + elif arg in globals: + value = globals[arg] + elif hasattr(builtins, arg): + return getattr(builtins, arg) + else: + raise NameError(arg) + else: + code = forward_ref.__forward_code__ + value = eval(code, globals, locals) + forward_ref.__forward_evaluated__ = True + forward_ref.__forward_value__ = value + return value + + def evaluate_forward_ref( + forward_ref, + *, + owner=None, + globals=None, + locals=None, + type_params=None, + format=None, + _recursive_guard=frozenset(), + ): + """Evaluate a forward reference as a type hint. + + This is similar to calling the ForwardRef.evaluate() method, + but unlike that method, evaluate_forward_ref() also: + + * Recursively evaluates forward references nested within the type hint. + * Rejects certain objects that are not valid type hints. + * Replaces type hints that evaluate to None with types.NoneType. + * Supports the *FORWARDREF* and *STRING* formats. + + *forward_ref* must be an instance of ForwardRef. *owner*, if given, + should be the object that holds the annotations that the forward reference + derived from, such as a module, class object, or function. It is used to + infer the namespaces to use for looking up names. *globals* and *locals* + can also be explicitly given to provide the global and local namespaces. + *type_params* is a tuple of type parameters that are in scope when + evaluating the forward reference. This parameter must be provided (though + it may be an empty tuple) if *owner* is not given and the forward reference + does not already have an owner set. *format* specifies the format of the + annotation and is a member of the annotationlib.Format enum. + + """ + if format == Format.STRING: + return forward_ref.__forward_arg__ + if forward_ref.__forward_arg__ in _recursive_guard: + return forward_ref + + # Evaluate the forward reference + try: + value = _eval_with_owner( + forward_ref, + owner=owner, + globals=globals, + locals=locals, + type_params=type_params, + ) + except NameError: + if format == Format.FORWARDREF: + return forward_ref + else: + raise + + if isinstance(value, str): + value = ForwardRef(value) + + # Recursively evaluate the type + if isinstance(value, ForwardRef): + if getattr(value, "__forward_module__", True) is not None: + globals = None + return evaluate_forward_ref( + value, + globals=globals, + locals=locals, + type_params=type_params, owner=owner, + _recursive_guard=_recursive_guard, format=format + ) + if sys.version_info < (3, 12, 5) and type_params: + # Make use of type_params + locals = dict(locals) if locals else {} + for tvar in type_params: + if tvar.__name__ not in locals: # lets not overwrite something present + locals[tvar.__name__] = tvar + if sys.version_info < (3, 12, 5): + return typing._eval_type( + value, + globals, + locals, + recursive_guard=_recursive_guard | {forward_ref.__forward_arg__}, + ) + else: + return typing._eval_type( + value, + globals, + locals, + type_params, + recursive_guard=_recursive_guard | {forward_ref.__forward_arg__}, + ) + + +class Sentinel: + """Create a unique sentinel object. + + *name* should be the name of the variable to which the return value shall be assigned. + + *repr*, if supplied, will be used for the repr of the sentinel object. + If not provided, "" will be used. + """ + + def __init__( + self, + name: str, + repr: typing.Optional[str] = None, + ): + self._name = name + self._repr = repr if repr is not None else f'<{name}>' + + def __repr__(self): + return self._repr + + if sys.version_info < (3, 11): + # The presence of this method convinces typing._type_check + # that Sentinels are types. + def __call__(self, *args, **kwargs): + raise TypeError(f"{type(self).__name__!r} object is not callable") + + # Breakpoint: https://github.com/python/cpython/pull/21515 + if sys.version_info >= (3, 10): + def __or__(self, other): + return typing.Union[self, other] + + def __ror__(self, other): + return typing.Union[other, self] + + def __getstate__(self): + raise TypeError(f"Cannot pickle {type(self).__name__!r} object") + + +if sys.version_info >= (3, 14, 0, "beta"): + type_repr = annotationlib.type_repr +else: + def type_repr(value): + """Convert a Python value to a format suitable for use with the STRING format. + + This is intended as a helper for tools that support the STRING format but do + not have access to the code that originally produced the annotations. It uses + repr() for most objects. + + """ + if isinstance(value, (type, _types.FunctionType, _types.BuiltinFunctionType)): + if value.__module__ == "builtins": + return value.__qualname__ + return f"{value.__module__}.{value.__qualname__}" + if value is ...: + return "..." + return repr(value) + + +# Aliases for items that are in typing in all supported versions. +# We use hasattr() checks so this library will continue to import on +# future versions of Python that may remove these names. +_typing_names = [ + "AbstractSet", + "AnyStr", + "BinaryIO", + "Callable", + "Collection", + "Container", + "Dict", + "FrozenSet", + "Hashable", + "IO", + "ItemsView", + "Iterable", + "Iterator", + "KeysView", + "List", + "Mapping", + "MappingView", + "Match", + "MutableMapping", + "MutableSequence", + "MutableSet", + "Optional", + "Pattern", + "Reversible", + "Sequence", + "Set", + "Sized", + "TextIO", + "Tuple", + "Union", + "ValuesView", + "cast", + "no_type_check", + "no_type_check_decorator", + # This is private, but it was defined by typing_extensions for a long time + # and some users rely on it. + "_AnnotatedAlias", +] +globals().update( + {name: getattr(typing, name) for name in _typing_names if hasattr(typing, name)} +) +# These are defined unconditionally because they are used in +# typing-extensions itself. +Generic = typing.Generic +ForwardRef = typing.ForwardRef +Annotated = typing.Annotated diff --git a/venv/lib/python3.11/site-packages/typing_inspection-0.4.2.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/typing_inspection-0.4.2.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/typing_inspection-0.4.2.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/typing_inspection-0.4.2.dist-info/METADATA b/venv/lib/python3.11/site-packages/typing_inspection-0.4.2.dist-info/METADATA new file mode 100644 index 0000000..b0eba85 --- /dev/null +++ b/venv/lib/python3.11/site-packages/typing_inspection-0.4.2.dist-info/METADATA @@ -0,0 +1,49 @@ +Metadata-Version: 2.4 +Name: typing-inspection +Version: 0.4.2 +Summary: Runtime typing introspection tools +Project-URL: Homepage, https://github.com/pydantic/typing-inspection +Project-URL: Documentation, https://pydantic.github.io/typing-inspection/dev/ +Project-URL: Source, https://github.com/pydantic/typing-inspection +Project-URL: Changelog, https://github.com/pydantic/typing-inspection/blob/main/HISTORY.md +Author-email: Victorien Plot +License-Expression: MIT +License-File: LICENSE +Classifier: Development Status :: 3 - Alpha +Classifier: Intended Audience :: Developers +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Typing :: Typed +Requires-Python: >=3.9 +Requires-Dist: typing-extensions>=4.12.0 +Description-Content-Type: text/markdown + +# typing-inspection + +[![CI](https://img.shields.io/github/actions/workflow/status/pydantic/typing-inspection/ci.yml?branch=main&logo=github&label=CI)](https://github.com/pydantic/typing-inspection/actions?query=event%3Apush+branch%3Amain+workflow%3ACI) +[![Coverage](https://coverage-badge.samuelcolvin.workers.dev/pydantic/typing-inspection.svg)](https://coverage-badge.samuelcolvin.workers.dev/redirect/pydantic/typing-inspection) +[![PyPI](https://img.shields.io/pypi/v/typing-inspection.svg)](https://pypi.org/project/typing-inspection/) +[![Versions](https://img.shields.io/pypi/pyversions/typing-inspection.svg)](https://github.com/pydantic/typing-inspection) +[![License](https://img.shields.io/github/license/pydantic/typing-inspection.svg)](https://github.com/pydantic/typing-inspection/blob/main/LICENSE) +[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) + +`typing-inspection` provides tools to inspect type annotations at runtime. + +## Installation + +From [PyPI](https://pypi.org/project/typing-inspection/): + +```bash +pip install typing-inspection +``` + +The library can be imported from the `typing_inspection` module. diff --git a/venv/lib/python3.11/site-packages/typing_inspection-0.4.2.dist-info/RECORD b/venv/lib/python3.11/site-packages/typing_inspection-0.4.2.dist-info/RECORD new file mode 100644 index 0000000..4fc4de0 --- /dev/null +++ b/venv/lib/python3.11/site-packages/typing_inspection-0.4.2.dist-info/RECORD @@ -0,0 +1,13 @@ +typing_inspection-0.4.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +typing_inspection-0.4.2.dist-info/METADATA,sha256=YQls0L_jxwQLb5jCKwLRkP4Bk20P92FsUTT-0CiRlTo,2552 +typing_inspection-0.4.2.dist-info/RECORD,, +typing_inspection-0.4.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87 +typing_inspection-0.4.2.dist-info/licenses/LICENSE,sha256=gEtZsl8sMb0nj5ICoZrkmjlFqiZkOH4tChKMfKzGHsM,1090 +typing_inspection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +typing_inspection/__pycache__/__init__.cpython-311.pyc,, +typing_inspection/__pycache__/introspection.cpython-311.pyc,, +typing_inspection/__pycache__/typing_objects.cpython-311.pyc,, +typing_inspection/introspection.py,sha256=dD5Ad4J6hAfF6UBzBO4sqSs1h2ybQVThkQofLWWVBP0,22534 +typing_inspection/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +typing_inspection/typing_objects.py,sha256=kajVgh8J7UZ7wTidVxzFMpjwSnFGBoDoTqfVAAvOHZ8,17166 +typing_inspection/typing_objects.pyi,sha256=u1NDpl_RJFnAUMAMx-WBd0SBKwVG7luLEc8ukSvRnZs,9401 diff --git a/venv/lib/python3.11/site-packages/typing_inspection-0.4.2.dist-info/WHEEL b/venv/lib/python3.11/site-packages/typing_inspection-0.4.2.dist-info/WHEEL new file mode 100644 index 0000000..12228d4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/typing_inspection-0.4.2.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: hatchling 1.27.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/typing_inspection-0.4.2.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/typing_inspection-0.4.2.dist-info/licenses/LICENSE new file mode 100644 index 0000000..e825ad5 --- /dev/null +++ b/venv/lib/python3.11/site-packages/typing_inspection-0.4.2.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Pydantic Services Inc. 2025 to present + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/typing_inspection/__init__.py b/venv/lib/python3.11/site-packages/typing_inspection/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/typing_inspection/introspection.py b/venv/lib/python3.11/site-packages/typing_inspection/introspection.py new file mode 100644 index 0000000..d6c083e --- /dev/null +++ b/venv/lib/python3.11/site-packages/typing_inspection/introspection.py @@ -0,0 +1,587 @@ +"""High-level introspection utilities, used to inspect type annotations.""" + +from __future__ import annotations + +import sys +import types +from collections.abc import Generator +from dataclasses import InitVar +from enum import Enum, IntEnum, auto +from typing import Any, Literal, NamedTuple, cast + +from typing_extensions import TypeAlias, assert_never, get_args, get_origin + +from . import typing_objects + +__all__ = ( + 'AnnotationSource', + 'ForbiddenQualifier', + 'InspectedAnnotation', + 'Qualifier', + 'get_literal_values', + 'inspect_annotation', + 'is_union_origin', +) + +if sys.version_info >= (3, 14) or sys.version_info < (3, 10): + + def is_union_origin(obj: Any, /) -> bool: + """Return whether the provided origin is the union form. + + ```pycon + >>> is_union_origin(typing.Union) + True + >>> is_union_origin(get_origin(int | str)) + True + >>> is_union_origin(types.UnionType) + True + ``` + + !!! note + Since Python 3.14, both `Union[, , ...]` and ` | | ...` forms create instances + of the same [`typing.Union`][] class. As such, it is recommended to not use this function + anymore (provided that you only support Python 3.14 or greater), and instead use the + [`typing_objects.is_union()`][typing_inspection.typing_objects.is_union] function directly: + + ```python + from typing import Union, get_origin + + from typing_inspection import typing_objects + + typ = int | str # Or Union[int, str] + origin = get_origin(typ) + if typing_objects.is_union(origin): + ... + ``` + """ + return typing_objects.is_union(obj) + + +else: + + def is_union_origin(obj: Any, /) -> bool: + """Return whether the provided origin is the union form. + + ```pycon + >>> is_union_origin(typing.Union) + True + >>> is_union_origin(get_origin(int | str)) + True + >>> is_union_origin(types.UnionType) + True + ``` + + !!! note + Since Python 3.14, both `Union[, , ...]` and ` | | ...` forms create instances + of the same [`typing.Union`][] class. As such, it is recommended to not use this function + anymore (provided that you only support Python 3.14 or greater), and instead use the + [`typing_objects.is_union()`][typing_inspection.typing_objects.is_union] function directly: + + ```python + from typing import Union, get_origin + + from typing_inspection import typing_objects + + typ = int | str # Or Union[int, str] + origin = get_origin(typ) + if typing_objects.is_union(origin): + ... + ``` + """ + return typing_objects.is_union(obj) or obj is types.UnionType + + +def _literal_type_check(value: Any, /) -> None: + """Type check the provided literal value against the legal parameters.""" + if ( + not isinstance(value, (int, bytes, str, bool, Enum, typing_objects.NoneType)) + and value is not typing_objects.NoneType + ): + raise TypeError(f'{value} is not a valid literal value, must be one of: int, bytes, str, Enum, None.') + + +def get_literal_values( + annotation: Any, + /, + *, + type_check: bool = False, + unpack_type_aliases: Literal['skip', 'lenient', 'eager'] = 'eager', +) -> Generator[Any]: + """Yield the values contained in the provided [`Literal`][typing.Literal] [special form][]. + + Args: + annotation: The [`Literal`][typing.Literal] [special form][] to unpack. + type_check: Whether to check if the literal values are [legal parameters][literal-legal-parameters]. + Raises a [`TypeError`][] otherwise. + unpack_type_aliases: What to do when encountering [PEP 695](https://peps.python.org/pep-0695/) + [type aliases][type-aliases]. Can be one of: + + - `'skip'`: Do not try to parse type aliases. Note that this can lead to incorrect results: + ```pycon + >>> type MyAlias = Literal[1, 2] + >>> list(get_literal_values(Literal[MyAlias, 3], unpack_type_aliases="skip")) + [MyAlias, 3] + ``` + + - `'lenient'`: Try to parse type aliases, and fallback to `'skip'` if the type alias can't be inspected + (because of an undefined forward reference). + + - `'eager'`: Parse type aliases and raise any encountered [`NameError`][] exceptions (the default): + ```pycon + >>> type MyAlias = Literal[1, 2] + >>> list(get_literal_values(Literal[MyAlias, 3], unpack_type_aliases="eager")) + [1, 2, 3] + ``` + + Note: + While `None` is [equivalent to][none] `type(None)`, the runtime implementation of [`Literal`][typing.Literal] + does not de-duplicate them. This function makes sure this de-duplication is applied: + + ```pycon + >>> list(get_literal_values(Literal[NoneType, None])) + [None] + ``` + + Example: + ```pycon + >>> type Ints = Literal[1, 2] + >>> list(get_literal_values(Literal[1, Ints], unpack_type_alias="skip")) + ["a", Ints] + >>> list(get_literal_values(Literal[1, Ints])) + [1, 2] + >>> list(get_literal_values(Literal[1.0], type_check=True)) + Traceback (most recent call last): + ... + TypeError: 1.0 is not a valid literal value, must be one of: int, bytes, str, Enum, None. + ``` + """ + # `literal` is guaranteed to be a `Literal[...]` special form, so use + # `__args__` directly instead of calling `get_args()`. + + if unpack_type_aliases == 'skip': + _has_none = False + # `Literal` parameters are already deduplicated, no need to do it ourselves. + # (we only check for `None` and `NoneType`, which should be considered as duplicates). + for arg in annotation.__args__: + if type_check: + _literal_type_check(arg) + if arg is None or arg is typing_objects.NoneType: + if not _has_none: + yield None + _has_none = True + else: + yield arg + else: + # We'll need to manually deduplicate parameters, see the `Literal` implementation in `typing`. + values_and_type: list[tuple[Any, type[Any]]] = [] + + for arg in annotation.__args__: + # Note: we could also check for generic aliases with a type alias as an origin. + # However, it is very unlikely that this happens as type variables can't appear in + # `Literal` forms, so the only valid (but unnecessary) use case would be something like: + # `type Test[T] = Literal['a']` (and then use `Test[SomeType]`). + if typing_objects.is_typealiastype(arg): + try: + alias_value = arg.__value__ + except NameError: + if unpack_type_aliases == 'eager': + raise + # unpack_type_aliases == "lenient": + if type_check: + _literal_type_check(arg) + values_and_type.append((arg, type(arg))) + else: + sub_args = get_literal_values( + alias_value, type_check=type_check, unpack_type_aliases=unpack_type_aliases + ) + values_and_type.extend((a, type(a)) for a in sub_args) # pyright: ignore[reportUnknownArgumentType] + else: + if type_check: + _literal_type_check(arg) + if arg is typing_objects.NoneType: + values_and_type.append((None, typing_objects.NoneType)) + else: + values_and_type.append((arg, type(arg))) # pyright: ignore[reportUnknownArgumentType] + + try: + dct = dict.fromkeys(values_and_type) + except TypeError: + # Unhashable parameters, the Python implementation allows them + yield from (p for p, _ in values_and_type) + else: + yield from (p for p, _ in dct) + + +Qualifier: TypeAlias = Literal['required', 'not_required', 'read_only', 'class_var', 'init_var', 'final'] +"""A [type qualifier][].""" + +_all_qualifiers: set[Qualifier] = set(get_args(Qualifier)) + + +# TODO at some point, we could switch to an enum flag, so that multiple sources +# can be combined. However, is there a need for this? +class AnnotationSource(IntEnum): + # TODO if/when https://peps.python.org/pep-0767/ is accepted, add 'read_only' + # to CLASS and NAMED_TUPLE (even though for named tuples it is redundant). + + """The source of an annotation, e.g. a class or a function. + + Depending on the source, different [type qualifiers][type qualifier] may be (dis)allowed. + """ + + ASSIGNMENT_OR_VARIABLE = auto() + """An annotation used in an assignment or variable annotation: + + ```python + x: Final[int] = 1 + y: Final[str] + ``` + + **Allowed type qualifiers:** [`Final`][typing.Final]. + """ + + CLASS = auto() + """An annotation used in the body of a class: + + ```python + class Test: + x: Final[int] = 1 + y: ClassVar[str] + ``` + + **Allowed type qualifiers:** [`ClassVar`][typing.ClassVar], [`Final`][typing.Final]. + """ + + DATACLASS = auto() + """An annotation used in the body of a dataclass: + + ```python + @dataclass + class Test: + x: Final[int] = 1 + y: InitVar[str] = 'test' + ``` + + **Allowed type qualifiers:** [`ClassVar`][typing.ClassVar], [`Final`][typing.Final], [`InitVar`][dataclasses.InitVar]. + """ # noqa: E501 + + TYPED_DICT = auto() + """An annotation used in the body of a [`TypedDict`][typing.TypedDict]: + + ```python + class TD(TypedDict): + x: Required[ReadOnly[int]] + y: ReadOnly[NotRequired[str]] + ``` + + **Allowed type qualifiers:** [`ReadOnly`][typing.ReadOnly], [`Required`][typing.Required], + [`NotRequired`][typing.NotRequired]. + """ + + NAMED_TUPLE = auto() + """An annotation used in the body of a [`NamedTuple`][typing.NamedTuple]. + + ```python + class NT(NamedTuple): + x: int + y: str + ``` + + **Allowed type qualifiers:** none. + """ + + FUNCTION = auto() + """An annotation used in a function, either for a parameter or the return value. + + ```python + def func(a: int) -> str: + ... + ``` + + **Allowed type qualifiers:** none. + """ + + ANY = auto() + """An annotation that might come from any source. + + **Allowed type qualifiers:** all. + """ + + BARE = auto() + """An annotation that is inspected as is. + + **Allowed type qualifiers:** none. + """ + + @property + def allowed_qualifiers(self) -> set[Qualifier]: + """The allowed [type qualifiers][type qualifier] for this annotation source.""" + # TODO use a match statement when Python 3.9 support is dropped. + if self is AnnotationSource.ASSIGNMENT_OR_VARIABLE: + return {'final'} + elif self is AnnotationSource.CLASS: + return {'final', 'class_var'} + elif self is AnnotationSource.DATACLASS: + return {'final', 'class_var', 'init_var'} + elif self is AnnotationSource.TYPED_DICT: + return {'required', 'not_required', 'read_only'} + elif self in (AnnotationSource.NAMED_TUPLE, AnnotationSource.FUNCTION, AnnotationSource.BARE): + return set() + elif self is AnnotationSource.ANY: + return _all_qualifiers + else: # pragma: no cover + assert_never(self) + + +class ForbiddenQualifier(Exception): + """The provided [type qualifier][] is forbidden.""" + + qualifier: Qualifier + """The forbidden qualifier.""" + + def __init__(self, qualifier: Qualifier, /) -> None: + self.qualifier = qualifier + + +class _UnknownTypeEnum(Enum): + UNKNOWN = auto() + + def __str__(self) -> str: + return 'UNKNOWN' + + def __repr__(self) -> str: + return '' + + +UNKNOWN = _UnknownTypeEnum.UNKNOWN +"""A sentinel value used when no [type expression][] is present.""" + +_UnkownType: TypeAlias = Literal[_UnknownTypeEnum.UNKNOWN] +"""The type of the [`UNKNOWN`][typing_inspection.introspection.UNKNOWN] sentinel value.""" + + +class InspectedAnnotation(NamedTuple): + """The result of the inspected annotation.""" + + type: Any | _UnkownType + """The final [type expression][], with [type qualifiers][type qualifier] and annotated metadata stripped. + + If no type expression is available, the [`UNKNOWN`][typing_inspection.introspection.UNKNOWN] sentinel + value is used instead. This is the case when a [type qualifier][] is used with no type annotation: + + ```python + ID: Final = 1 + + class C: + x: ClassVar = 'test' + ``` + """ + + qualifiers: set[Qualifier] + """The [type qualifiers][type qualifier] present on the annotation.""" + + metadata: list[Any] + """The annotated metadata.""" + + +def inspect_annotation( # noqa: PLR0915 + annotation: Any, + /, + *, + annotation_source: AnnotationSource, + unpack_type_aliases: Literal['skip', 'lenient', 'eager'] = 'skip', +) -> InspectedAnnotation: + """Inspect an [annotation expression][], extracting any [type qualifier][] and metadata. + + An [annotation expression][] is a [type expression][] optionally surrounded by one or more + [type qualifiers][type qualifier] or by [`Annotated`][typing.Annotated]. This function will: + + - Unwrap the type expression, keeping track of the type qualifiers. + - Unwrap [`Annotated`][typing.Annotated] forms, keeping track of the annotated metadata. + + Args: + annotation: The annotation expression to be inspected. + annotation_source: The source of the annotation. Depending on the source (e.g. a class), different type + qualifiers may be (dis)allowed. To allow any type qualifier, use + [`AnnotationSource.ANY`][typing_inspection.introspection.AnnotationSource.ANY]. + unpack_type_aliases: What to do when encountering [PEP 695](https://peps.python.org/pep-0695/) + [type aliases][type-aliases]. Can be one of: + + - `'skip'`: Do not try to parse type aliases (the default): + ```pycon + >>> type MyInt = Annotated[int, 'meta'] + >>> inspect_annotation(MyInt, annotation_source=AnnotationSource.BARE, unpack_type_aliases='skip') + InspectedAnnotation(type=MyInt, qualifiers={}, metadata=[]) + ``` + + - `'lenient'`: Try to parse type aliases, and fallback to `'skip'` if the type alias + can't be inspected (because of an undefined forward reference): + ```pycon + >>> type MyInt = Annotated[Undefined, 'meta'] + >>> inspect_annotation(MyInt, annotation_source=AnnotationSource.BARE, unpack_type_aliases='lenient') + InspectedAnnotation(type=MyInt, qualifiers={}, metadata=[]) + >>> Undefined = int + >>> inspect_annotation(MyInt, annotation_source=AnnotationSource.BARE, unpack_type_aliases='lenient') + InspectedAnnotation(type=int, qualifiers={}, metadata=['meta']) + ``` + + - `'eager'`: Parse type aliases and raise any encountered [`NameError`][] exceptions. + + Returns: + The result of the inspected annotation, where the type expression, used qualifiers and metadata is stored. + + Example: + ```pycon + >>> inspect_annotation( + ... Final[Annotated[ClassVar[Annotated[int, 'meta_1']], 'meta_2']], + ... annotation_source=AnnotationSource.CLASS, + ... ) + ... + InspectedAnnotation(type=int, qualifiers={'class_var', 'final'}, metadata=['meta_1', 'meta_2']) + ``` + """ + allowed_qualifiers = annotation_source.allowed_qualifiers + qualifiers: set[Qualifier] = set() + metadata: list[Any] = [] + + while True: + annotation, _meta = _unpack_annotated(annotation, unpack_type_aliases=unpack_type_aliases) + if _meta: + metadata = _meta + metadata + continue + + origin = get_origin(annotation) + if origin is not None: + if typing_objects.is_classvar(origin): + if 'class_var' not in allowed_qualifiers: + raise ForbiddenQualifier('class_var') + qualifiers.add('class_var') + annotation = annotation.__args__[0] + elif typing_objects.is_final(origin): + if 'final' not in allowed_qualifiers: + raise ForbiddenQualifier('final') + qualifiers.add('final') + annotation = annotation.__args__[0] + elif typing_objects.is_required(origin): + if 'required' not in allowed_qualifiers: + raise ForbiddenQualifier('required') + qualifiers.add('required') + annotation = annotation.__args__[0] + elif typing_objects.is_notrequired(origin): + if 'not_required' not in allowed_qualifiers: + raise ForbiddenQualifier('not_required') + qualifiers.add('not_required') + annotation = annotation.__args__[0] + elif typing_objects.is_readonly(origin): + if 'read_only' not in allowed_qualifiers: + raise ForbiddenQualifier('not_required') + qualifiers.add('read_only') + annotation = annotation.__args__[0] + else: + # origin is not None but not a type qualifier nor `Annotated` (e.g. `list[int]`): + break + elif isinstance(annotation, InitVar): + if 'init_var' not in allowed_qualifiers: + raise ForbiddenQualifier('init_var') + qualifiers.add('init_var') + annotation = cast(Any, annotation.type) + else: + break + + # `Final`, `ClassVar` and `InitVar` are type qualifiers allowed to be used as a bare annotation: + if typing_objects.is_final(annotation): + if 'final' not in allowed_qualifiers: + raise ForbiddenQualifier('final') + qualifiers.add('final') + annotation = UNKNOWN + elif typing_objects.is_classvar(annotation): + if 'class_var' not in allowed_qualifiers: + raise ForbiddenQualifier('class_var') + qualifiers.add('class_var') + annotation = UNKNOWN + elif annotation is InitVar: + if 'init_var' not in allowed_qualifiers: + raise ForbiddenQualifier('init_var') + qualifiers.add('init_var') + annotation = UNKNOWN + + return InspectedAnnotation(annotation, qualifiers, metadata) + + +def _unpack_annotated_inner( + annotation: Any, unpack_type_aliases: Literal['lenient', 'eager'], check_annotated: bool +) -> tuple[Any, list[Any]]: + origin = get_origin(annotation) + if check_annotated and typing_objects.is_annotated(origin): + annotated_type = annotation.__origin__ + metadata = list(annotation.__metadata__) + + # The annotated type might be a PEP 695 type alias, so we need to recursively + # unpack it. Because Python already flattens `Annotated[Annotated[, ...], ...]` forms, + # we can skip the `is_annotated()` check in the next call: + annotated_type, sub_meta = _unpack_annotated_inner( + annotated_type, unpack_type_aliases=unpack_type_aliases, check_annotated=False + ) + metadata = sub_meta + metadata + return annotated_type, metadata + elif typing_objects.is_typealiastype(annotation): + try: + value = annotation.__value__ + except NameError: + if unpack_type_aliases == 'eager': + raise + else: + typ, metadata = _unpack_annotated_inner( + value, unpack_type_aliases=unpack_type_aliases, check_annotated=True + ) + if metadata: + # Having metadata means the type alias' `__value__` was an `Annotated` form + # (or, recursively, a type alias to an `Annotated` form). It is important to check + # for this, as we don't want to unpack other type aliases (e.g. `type MyInt = int`). + return typ, metadata + return annotation, [] + elif typing_objects.is_typealiastype(origin): + # When parameterized, PEP 695 type aliases become generic aliases + # (e.g. with `type MyList[T] = Annotated[list[T], ...]`, `MyList[int]` + # is a generic alias). + try: + value = origin.__value__ + except NameError: + if unpack_type_aliases == 'eager': + raise + else: + # While Python already handles type variable replacement for simple `Annotated` forms, + # we need to manually apply the same logic for PEP 695 type aliases: + # - With `MyList = Annotated[list[T], ...]`, `MyList[int] == Annotated[list[int], ...]` + # - With `type MyList[T] = Annotated[list[T], ...]`, `MyList[int].__value__ == Annotated[list[T], ...]`. + + try: + # To do so, we emulate the parameterization of the value with the arguments: + # with `type MyList[T] = Annotated[list[T], ...]`, to emulate `MyList[int]`, + # we do `Annotated[list[T], ...][int]` (which gives `Annotated[list[T], ...]`): + value = value[annotation.__args__] + except TypeError: + # Might happen if the type alias is parameterized, but its value doesn't have any + # type variables, e.g. `type MyInt[T] = int`. + pass + typ, metadata = _unpack_annotated_inner( + value, unpack_type_aliases=unpack_type_aliases, check_annotated=True + ) + if metadata: + return typ, metadata + return annotation, [] + + return annotation, [] + + +# This could eventually be made public: +def _unpack_annotated( + annotation: Any, /, *, unpack_type_aliases: Literal['skip', 'lenient', 'eager'] = 'eager' +) -> tuple[Any, list[Any]]: + if unpack_type_aliases == 'skip': + if typing_objects.is_annotated(get_origin(annotation)): + return annotation.__origin__, list(annotation.__metadata__) + else: + return annotation, [] + + return _unpack_annotated_inner(annotation, unpack_type_aliases=unpack_type_aliases, check_annotated=True) diff --git a/venv/lib/python3.11/site-packages/typing_inspection/py.typed b/venv/lib/python3.11/site-packages/typing_inspection/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/typing_inspection/typing_objects.py b/venv/lib/python3.11/site-packages/typing_inspection/typing_objects.py new file mode 100644 index 0000000..dc44ba9 --- /dev/null +++ b/venv/lib/python3.11/site-packages/typing_inspection/typing_objects.py @@ -0,0 +1,607 @@ +"""Low-level introspection utilities for [`typing`][] members. + +The provided functions in this module check against both the [`typing`][] and [`typing_extensions`][] +variants, if they exists and are different. +""" +# ruff: noqa: UP006 + +import collections.abc +import contextlib +import re +import sys +import typing +import warnings +from textwrap import dedent +from types import FunctionType, GenericAlias +from typing import Any, Final + +import typing_extensions +from typing_extensions import LiteralString, TypeAliasType, TypeIs, deprecated + +__all__ = ( + 'DEPRECATED_ALIASES', + 'NoneType', + 'is_annotated', + 'is_any', + 'is_classvar', + 'is_concatenate', + 'is_deprecated', + 'is_final', + 'is_forwardref', + 'is_generic', + 'is_literal', + 'is_literalstring', + 'is_namedtuple', + 'is_never', + 'is_newtype', + 'is_nodefault', + 'is_noextraitems', + 'is_noreturn', + 'is_notrequired', + 'is_paramspec', + 'is_paramspecargs', + 'is_paramspeckwargs', + 'is_readonly', + 'is_required', + 'is_self', + 'is_typealias', + 'is_typealiastype', + 'is_typeguard', + 'is_typeis', + 'is_typevar', + 'is_typevartuple', + 'is_union', + 'is_unpack', +) + +_IS_PY310 = sys.version_info[:2] == (3, 10) + + +def _compile_identity_check_function(member: LiteralString, function_name: LiteralString) -> FunctionType: + """Create a function checking that the function argument is the (unparameterized) typing `member`. + + The function will make sure to check against both the `typing` and `typing_extensions` + variants as depending on the Python version, the `typing_extensions` variant might be different. + For instance, on Python 3.9: + + ```pycon + >>> from typing import Literal as t_Literal + >>> from typing_extensions import Literal as te_Literal, get_origin + + >>> t_Literal is te_Literal + False + >>> get_origin(t_Literal[1]) + typing.Literal + >>> get_origin(te_Literal[1]) + typing_extensions.Literal + ``` + """ + in_typing = hasattr(typing, member) + in_typing_extensions = hasattr(typing_extensions, member) + + if in_typing and in_typing_extensions: + if getattr(typing, member) is getattr(typing_extensions, member): + check_code = f'obj is typing.{member}' + else: + check_code = f'obj is typing.{member} or obj is typing_extensions.{member}' + elif in_typing and not in_typing_extensions: + check_code = f'obj is typing.{member}' + elif not in_typing and in_typing_extensions: + check_code = f'obj is typing_extensions.{member}' + else: + check_code = 'False' + + func_code = dedent(f""" + def {function_name}(obj: Any, /) -> bool: + return {check_code} + """) + + locals_: dict[str, Any] = {} + globals_: dict[str, Any] = {'Any': Any, 'typing': typing, 'typing_extensions': typing_extensions} + exec(func_code, globals_, locals_) + return locals_[function_name] + + +def _compile_isinstance_check_function(member: LiteralString, function_name: LiteralString) -> FunctionType: + """Create a function checking that the function is an instance of the typing `member`. + + The function will make sure to check against both the `typing` and `typing_extensions` + variants as depending on the Python version, the `typing_extensions` variant might be different. + """ + in_typing = hasattr(typing, member) + in_typing_extensions = hasattr(typing_extensions, member) + + if in_typing and in_typing_extensions: + if getattr(typing, member) is getattr(typing_extensions, member): + check_code = f'isinstance(obj, typing.{member})' + else: + check_code = f'isinstance(obj, (typing.{member}, typing_extensions.{member}))' + elif in_typing and not in_typing_extensions: + check_code = f'isinstance(obj, typing.{member})' + elif not in_typing and in_typing_extensions: + check_code = f'isinstance(obj, typing_extensions.{member})' + else: + check_code = 'False' + + func_code = dedent(f""" + def {function_name}(obj: Any, /) -> 'TypeIs[{member}]': + return {check_code} + """) + + locals_: dict[str, Any] = {} + globals_: dict[str, Any] = {'Any': Any, 'typing': typing, 'typing_extensions': typing_extensions} + exec(func_code, globals_, locals_) + return locals_[function_name] + + +if sys.version_info >= (3, 10): + from types import NoneType +else: + NoneType = type(None) + +# Keep this ordered, as per `typing.__all__`: + +is_annotated = _compile_identity_check_function('Annotated', 'is_annotated') +is_annotated.__doc__ = """ +Return whether the argument is the [`Annotated`][typing.Annotated] [special form][]. + +```pycon +>>> is_annotated(Annotated) +True +>>> is_annotated(Annotated[int, ...]) +False +``` +""" + +is_any = _compile_identity_check_function('Any', 'is_any') +is_any.__doc__ = """ +Return whether the argument is the [`Any`][typing.Any] [special form][]. + +```pycon +>>> is_any(Any) +True +``` +""" + +is_classvar = _compile_identity_check_function('ClassVar', 'is_classvar') +is_classvar.__doc__ = """ +Return whether the argument is the [`ClassVar`][typing.ClassVar] [type qualifier][]. + +```pycon +>>> is_classvar(ClassVar) +True +>>> is_classvar(ClassVar[int]) +>>> False +``` +""" + +is_concatenate = _compile_identity_check_function('Concatenate', 'is_concatenate') +is_concatenate.__doc__ = """ +Return whether the argument is the [`Concatenate`][typing.Concatenate] [special form][]. + +```pycon +>>> is_concatenate(Concatenate) +True +>>> is_concatenate(Concatenate[int, P]) +False +``` +""" + +is_final = _compile_identity_check_function('Final', 'is_final') +is_final.__doc__ = """ +Return whether the argument is the [`Final`][typing.Final] [type qualifier][]. + +```pycon +>>> is_final(Final) +True +>>> is_final(Final[int]) +False +``` +""" + + +# Unlikely to have a different version in `typing-extensions`, but keep it consistent. +# Also note that starting in 3.14, this is an alias to `annotationlib.ForwardRef`, but +# accessing it from `typing` doesn't seem to be deprecated. +is_forwardref = _compile_isinstance_check_function('ForwardRef', 'is_forwardref') +is_forwardref.__doc__ = """ +Return whether the argument is an instance of [`ForwardRef`][typing.ForwardRef]. + +```pycon +>>> is_forwardref(ForwardRef('T')) +True +``` +""" + + +is_generic = _compile_identity_check_function('Generic', 'is_generic') +is_generic.__doc__ = """ +Return whether the argument is the [`Generic`][typing.Generic] [special form][]. + +```pycon +>>> is_generic(Generic) +True +>>> is_generic(Generic[T]) +False +``` +""" + +is_literal = _compile_identity_check_function('Literal', 'is_literal') +is_literal.__doc__ = """ +Return whether the argument is the [`Literal`][typing.Literal] [special form][]. + +```pycon +>>> is_literal(Literal) +True +>>> is_literal(Literal["a"]) +False +``` +""" + + +# `get_origin(Optional[int]) is Union`, so `is_optional()` isn't implemented. + +is_paramspec = _compile_isinstance_check_function('ParamSpec', 'is_paramspec') +is_paramspec.__doc__ = """ +Return whether the argument is an instance of [`ParamSpec`][typing.ParamSpec]. + +```pycon +>>> P = ParamSpec('P') +>>> is_paramspec(P) +True +``` +""" + +# Protocol? + +is_typevar = _compile_isinstance_check_function('TypeVar', 'is_typevar') +is_typevar.__doc__ = """ +Return whether the argument is an instance of [`TypeVar`][typing.TypeVar]. + +```pycon +>>> T = TypeVar('T') +>>> is_typevar(T) +True +``` +""" + +is_typevartuple = _compile_isinstance_check_function('TypeVarTuple', 'is_typevartuple') +is_typevartuple.__doc__ = """ +Return whether the argument is an instance of [`TypeVarTuple`][typing.TypeVarTuple]. + +```pycon +>>> Ts = TypeVarTuple('Ts') +>>> is_typevartuple(Ts) +True +``` +""" + +is_union = _compile_identity_check_function('Union', 'is_union') +is_union.__doc__ = """ +Return whether the argument is the [`Union`][typing.Union] [special form][]. + +This function can also be used to check for the [`Optional`][typing.Optional] [special form][], +as at runtime, `Optional[int]` is equivalent to `Union[int, None]`. + +```pycon +>>> is_union(Union) +True +>>> is_union(Union[int, str]) +False +``` + +!!! warning + This does not check for unions using the [new syntax][types-union] (e.g. `int | str`). +""" + + +def is_namedtuple(obj: Any, /) -> bool: + """Return whether the argument is a named tuple type. + + This includes [`NamedTuple`][typing.NamedTuple] subclasses and classes created from the + [`collections.namedtuple`][] factory function. + + ```pycon + >>> class User(NamedTuple): + ... name: str + ... + >>> is_namedtuple(User) + True + >>> City = collections.namedtuple('City', []) + >>> is_namedtuple(City) + True + >>> is_namedtuple(NamedTuple) + False + ``` + """ + return isinstance(obj, type) and issubclass(obj, tuple) and hasattr(obj, '_fields') # pyright: ignore[reportUnknownArgumentType] + + +# TypedDict? + +# BinaryIO? IO? TextIO? + +is_literalstring = _compile_identity_check_function('LiteralString', 'is_literalstring') +is_literalstring.__doc__ = """ +Return whether the argument is the [`LiteralString`][typing.LiteralString] [special form][]. + +```pycon +>>> is_literalstring(LiteralString) +True +``` +""" + +is_never = _compile_identity_check_function('Never', 'is_never') +is_never.__doc__ = """ +Return whether the argument is the [`Never`][typing.Never] [special form][]. + +```pycon +>>> is_never(Never) +True +``` +""" + +if sys.version_info >= (3, 10): + is_newtype = _compile_isinstance_check_function('NewType', 'is_newtype') +else: # On Python 3.10, `NewType` is a function. + + def is_newtype(obj: Any, /) -> bool: + return hasattr(obj, '__supertype__') + + +is_newtype.__doc__ = """ +Return whether the argument is a [`NewType`][typing.NewType]. + +```pycon +>>> UserId = NewType("UserId", int) +>>> is_newtype(UserId) +True +``` +""" + +is_nodefault = _compile_identity_check_function('NoDefault', 'is_nodefault') +is_nodefault.__doc__ = """ +Return whether the argument is the [`NoDefault`][typing.NoDefault] sentinel object. + +```pycon +>>> is_nodefault(NoDefault) +True +``` +""" + +is_noextraitems = _compile_identity_check_function('NoExtraItems', 'is_noextraitems') +is_noextraitems.__doc__ = """ +Return whether the argument is the `NoExtraItems` sentinel object. + +```pycon +>>> is_noextraitems(NoExtraItems) +True +``` +""" + +is_noreturn = _compile_identity_check_function('NoReturn', 'is_noreturn') +is_noreturn.__doc__ = """ +Return whether the argument is the [`NoReturn`][typing.NoReturn] [special form][]. + +```pycon +>>> is_noreturn(NoReturn) +True +>>> is_noreturn(Never) +False +``` +""" + +is_notrequired = _compile_identity_check_function('NotRequired', 'is_notrequired') +is_notrequired.__doc__ = """ +Return whether the argument is the [`NotRequired`][typing.NotRequired] [special form][]. + +```pycon +>>> is_notrequired(NotRequired) +True +``` +""" + +is_paramspecargs = _compile_isinstance_check_function('ParamSpecArgs', 'is_paramspecargs') +is_paramspecargs.__doc__ = """ +Return whether the argument is an instance of [`ParamSpecArgs`][typing.ParamSpecArgs]. + +```pycon +>>> P = ParamSpec('P') +>>> is_paramspecargs(P.args) +True +``` +""" + +is_paramspeckwargs = _compile_isinstance_check_function('ParamSpecKwargs', 'is_paramspeckwargs') +is_paramspeckwargs.__doc__ = """ +Return whether the argument is an instance of [`ParamSpecKwargs`][typing.ParamSpecKwargs]. + +```pycon +>>> P = ParamSpec('P') +>>> is_paramspeckwargs(P.kwargs) +True +``` +""" + +is_readonly = _compile_identity_check_function('ReadOnly', 'is_readonly') +is_readonly.__doc__ = """ +Return whether the argument is the [`ReadOnly`][typing.ReadOnly] [special form][]. + +```pycon +>>> is_readonly(ReadOnly) +True +``` +""" + +is_required = _compile_identity_check_function('Required', 'is_required') +is_required.__doc__ = """ +Return whether the argument is the [`Required`][typing.Required] [special form][]. + +```pycon +>>> is_required(Required) +True +``` +""" + +is_self = _compile_identity_check_function('Self', 'is_self') +is_self.__doc__ = """ +Return whether the argument is the [`Self`][typing.Self] [special form][]. + +```pycon +>>> is_self(Self) +True +``` +""" + +# TYPE_CHECKING? + +is_typealias = _compile_identity_check_function('TypeAlias', 'is_typealias') +is_typealias.__doc__ = """ +Return whether the argument is the [`TypeAlias`][typing.TypeAlias] [special form][]. + +```pycon +>>> is_typealias(TypeAlias) +True +``` +""" + +is_typeguard = _compile_identity_check_function('TypeGuard', 'is_typeguard') +is_typeguard.__doc__ = """ +Return whether the argument is the [`TypeGuard`][typing.TypeGuard] [special form][]. + +```pycon +>>> is_typeguard(TypeGuard) +True +``` +""" + +is_typeis = _compile_identity_check_function('TypeIs', 'is_typeis') +is_typeis.__doc__ = """ +Return whether the argument is the [`TypeIs`][typing.TypeIs] [special form][]. + +```pycon +>>> is_typeis(TypeIs) +True +``` +""" + +_is_typealiastype_inner = _compile_isinstance_check_function('TypeAliasType', '_is_typealiastype_inner') + + +if _IS_PY310: + # Parameterized PEP 695 type aliases are instances of `types.GenericAlias` in typing_extensions>=4.13.0. + # On Python 3.10, with `Alias[int]` being such an instance of `GenericAlias`, + # `isinstance(Alias[int], TypeAliasType)` returns `True`. + # See https://github.com/python/cpython/issues/89828. + def is_typealiastype(obj: Any, /) -> 'TypeIs[TypeAliasType]': + return type(obj) is not GenericAlias and _is_typealiastype_inner(obj) +else: + is_typealiastype = _compile_isinstance_check_function('TypeAliasType', 'is_typealiastype') + +is_typealiastype.__doc__ = """ +Return whether the argument is a [`TypeAliasType`][typing.TypeAliasType] instance. + +```pycon +>>> type MyInt = int +>>> is_typealiastype(MyInt) +True +>>> MyStr = TypeAliasType("MyStr", str) +>>> is_typealiastype(MyStr): +True +>>> type MyList[T] = list[T] +>>> is_typealiastype(MyList[int]) +False +``` +""" + +is_unpack = _compile_identity_check_function('Unpack', 'is_unpack') +is_unpack.__doc__ = """ +Return whether the argument is the [`Unpack`][typing.Unpack] [special form][]. + +```pycon +>>> is_unpack(Unpack) +True +>>> is_unpack(Unpack[Ts]) +False +``` +""" + + +if sys.version_info >= (3, 13): + + def is_deprecated(obj: Any, /) -> 'TypeIs[deprecated]': + return isinstance(obj, (warnings.deprecated, typing_extensions.deprecated)) + +else: + + def is_deprecated(obj: Any, /) -> 'TypeIs[deprecated]': + return isinstance(obj, typing_extensions.deprecated) + + +is_deprecated.__doc__ = """ +Return whether the argument is a [`deprecated`][warnings.deprecated] instance. + +This also includes the [`typing_extensions` backport][typing_extensions.deprecated]. + +```pycon +>>> is_deprecated(warnings.deprecated('message')) +True +>>> is_deprecated(typing_extensions.deprecated('message')) +True +``` +""" + + +# Aliases defined in the `typing` module using `typing._SpecialGenericAlias` (itself aliased as `alias()`): +DEPRECATED_ALIASES: Final[dict[Any, type[Any]]] = { + typing.Hashable: collections.abc.Hashable, + typing.Awaitable: collections.abc.Awaitable, + typing.Coroutine: collections.abc.Coroutine, + typing.AsyncIterable: collections.abc.AsyncIterable, + typing.AsyncIterator: collections.abc.AsyncIterator, + typing.Iterable: collections.abc.Iterable, + typing.Iterator: collections.abc.Iterator, + typing.Reversible: collections.abc.Reversible, + typing.Sized: collections.abc.Sized, + typing.Container: collections.abc.Container, + typing.Collection: collections.abc.Collection, + # type ignore reason: https://github.com/python/typeshed/issues/6257: + typing.Callable: collections.abc.Callable, # pyright: ignore[reportAssignmentType, reportUnknownMemberType] + typing.AbstractSet: collections.abc.Set, + typing.MutableSet: collections.abc.MutableSet, + typing.Mapping: collections.abc.Mapping, + typing.MutableMapping: collections.abc.MutableMapping, + typing.Sequence: collections.abc.Sequence, + typing.MutableSequence: collections.abc.MutableSequence, + typing.Tuple: tuple, + typing.List: list, + typing.Deque: collections.deque, + typing.Set: set, + typing.FrozenSet: frozenset, + typing.MappingView: collections.abc.MappingView, + typing.KeysView: collections.abc.KeysView, + typing.ItemsView: collections.abc.ItemsView, + typing.ValuesView: collections.abc.ValuesView, + typing.Dict: dict, + typing.DefaultDict: collections.defaultdict, + typing.OrderedDict: collections.OrderedDict, + typing.Counter: collections.Counter, + typing.ChainMap: collections.ChainMap, + typing.Generator: collections.abc.Generator, + typing.AsyncGenerator: collections.abc.AsyncGenerator, + typing.Type: type, + # Defined in `typing.__getattr__`: + typing.Pattern: re.Pattern, + typing.Match: re.Match, + typing.ContextManager: contextlib.AbstractContextManager, + typing.AsyncContextManager: contextlib.AbstractAsyncContextManager, + # Skipped: `ByteString` (deprecated, removed in 3.14) +} +"""A mapping between the deprecated typing aliases to their replacement, as per [PEP 585](https://peps.python.org/pep-0585/).""" + + +# Add the `typing_extensions` aliases: +for alias, target in list(DEPRECATED_ALIASES.items()): + # Use `alias.__name__` when we drop support for Python 3.9 + if (te_alias := getattr(typing_extensions, alias._name, None)) is not None: + DEPRECATED_ALIASES[te_alias] = target diff --git a/venv/lib/python3.11/site-packages/typing_inspection/typing_objects.pyi b/venv/lib/python3.11/site-packages/typing_inspection/typing_objects.pyi new file mode 100644 index 0000000..5071598 --- /dev/null +++ b/venv/lib/python3.11/site-packages/typing_inspection/typing_objects.pyi @@ -0,0 +1,417 @@ +# Stub file generated using: +# `stubgen --inspect-mode --include-docstrings -m typing_inspection.typing_objects` +# (manual edits need to be applied). +"""Low-level introspection utilities for [`typing`][] members. + +The provided functions in this module check against both the [`typing`][] and [`typing_extensions`][] +variants, if they exists and are different. +""" + +import sys +from typing import Any, Final, ForwardRef, NewType, TypeVar + +from typing_extensions import ParamSpec, ParamSpecArgs, ParamSpecKwargs, TypeAliasType, TypeIs, TypeVarTuple, deprecated + +__all__ = [ + 'DEPRECATED_ALIASES', + 'NoneType', + 'is_annotated', + 'is_any', + 'is_classvar', + 'is_concatenate', + 'is_deprecated', + 'is_final', + 'is_generic', + 'is_literal', + 'is_literalstring', + 'is_namedtuple', + 'is_never', + 'is_newtype', + 'is_nodefault', + 'is_noextraitems', + 'is_noreturn', + 'is_notrequired', + 'is_paramspec', + 'is_paramspecargs', + 'is_paramspeckwargs', + 'is_readonly', + 'is_required', + 'is_self', + 'is_typealias', + 'is_typealiastype', + 'is_typeguard', + 'is_typeis', + 'is_typevar', + 'is_typevartuple', + 'is_union', + 'is_unpack', +] + +if sys.version_info >= (3, 10): + from types import NoneType +else: + NoneType = type(None) + +def is_annotated(obj: Any, /) -> bool: + """ + Return whether the argument is the [`Annotated`][typing.Annotated] [special form][]. + + ```pycon + >>> is_annotated(Annotated) + True + >>> is_annotated(Annotated[int, ...]) + False + ``` + """ + +def is_any(obj: Any, /) -> bool: + """ + Return whether the argument is the [`Any`][typing.Any] [special form][]. + + ```pycon + >>> is_any(Any) + True + ``` + """ + +def is_classvar(obj: Any, /) -> bool: + """ + Return whether the argument is the [`ClassVar`][typing.ClassVar] [type qualifier][]. + + ```pycon + >>> is_classvar(ClassVar) + True + >>> is_classvar(ClassVar[int]) + >>> False + ``` + """ + +def is_concatenate(obj: Any, /) -> bool: + """ + Return whether the argument is the [`Concatenate`][typing.Concatenate] [special form][]. + + ```pycon + >>> is_concatenate(Concatenate) + True + >>> is_concatenate(Concatenate[int, P]) + False + ``` + """ + +def is_final(obj: Any, /) -> bool: + """ + Return whether the argument is the [`Final`][typing.Final] [type qualifier][]. + + ```pycon + >>> is_final(Final) + True + >>> is_final(Final[int]) + False + ``` + """ + +def is_forwardref(obj: Any, /) -> TypeIs[ForwardRef]: + """ + Return whether the argument is an instance of [`ForwardRef`][typing.ForwardRef]. + + ```pycon + >>> is_forwardref(ForwardRef('T')) + True + ``` + """ + +def is_generic(obj: Any, /) -> bool: + """ + Return whether the argument is the [`Generic`][typing.Generic] [special form][]. + + ```pycon + >>> is_generic(Generic) + True + >>> is_generic(Generic[T]) + False + ``` + """ + +def is_literal(obj: Any, /) -> bool: + """ + Return whether the argument is the [`Literal`][typing.Literal] [special form][]. + + ```pycon + >>> is_literal(Literal) + True + >>> is_literal(Literal["a"]) + False + ``` + """ + +def is_paramspec(obj: Any, /) -> TypeIs[ParamSpec]: + """ + Return whether the argument is an instance of [`ParamSpec`][typing.ParamSpec]. + + ```pycon + >>> P = ParamSpec('P') + >>> is_paramspec(P) + True + ``` + """ + +def is_typevar(obj: Any, /) -> TypeIs[TypeVar]: + """ + Return whether the argument is an instance of [`TypeVar`][typing.TypeVar]. + + ```pycon + >>> T = TypeVar('T') + >>> is_typevar(T) + True + ``` + """ + +def is_typevartuple(obj: Any, /) -> TypeIs[TypeVarTuple]: + """ + Return whether the argument is an instance of [`TypeVarTuple`][typing.TypeVarTuple]. + + ```pycon + >>> Ts = TypeVarTuple('Ts') + >>> is_typevartuple(Ts) + True + ``` + """ + +def is_union(obj: Any, /) -> bool: + """ + Return whether the argument is the [`Union`][typing.Union] [special form][]. + + This function can also be used to check for the [`Optional`][typing.Optional] [special form][], + as at runtime, `Optional[int]` is equivalent to `Union[int, None]`. + + ```pycon + >>> is_union(Union) + True + >>> is_union(Union[int, str]) + False + ``` + + !!! warning + This does not check for unions using the [new syntax][types-union] (e.g. `int | str`). + """ + +def is_namedtuple(obj: Any, /) -> bool: + """Return whether the argument is a named tuple type. + + This includes [`NamedTuple`][typing.NamedTuple] subclasses and classes created from the + [`collections.namedtuple`][] factory function. + + ```pycon + >>> class User(NamedTuple): + ... name: str + ... + >>> is_namedtuple(User) + True + >>> City = collections.namedtuple('City', []) + >>> is_namedtuple(City) + True + >>> is_namedtuple(NamedTuple) + False + ``` + """ + +def is_literalstring(obj: Any, /) -> bool: + """ + Return whether the argument is the [`LiteralString`][typing.LiteralString] [special form][]. + + ```pycon + >>> is_literalstring(LiteralString) + True + ``` + """ + +def is_never(obj: Any, /) -> bool: + """ + Return whether the argument is the [`Never`][typing.Never] [special form][]. + + ```pycon + >>> is_never(Never) + True + ``` + """ + +def is_newtype(obj: Any, /) -> TypeIs[NewType]: + """ + Return whether the argument is a [`NewType`][typing.NewType]. + + ```pycon + >>> UserId = NewType("UserId", int) + >>> is_newtype(UserId) + True + ``` + """ + +def is_nodefault(obj: Any, /) -> bool: + """ + Return whether the argument is the [`NoDefault`][typing.NoDefault] sentinel object. + + ```pycon + >>> is_nodefault(NoDefault) + True + ``` + """ + +def is_noextraitems(obj: Any, /) -> bool: + """ + Return whether the argument is the `NoExtraItems` sentinel object. + + ```pycon + >>> is_noextraitems(NoExtraItems) + True + ``` + """ + +def is_noreturn(obj: Any, /) -> bool: + """ + Return whether the argument is the [`NoReturn`][typing.NoReturn] [special form][]. + + ```pycon + >>> is_noreturn(NoReturn) + True + >>> is_noreturn(Never) + False + ``` + """ + +def is_notrequired(obj: Any, /) -> bool: + """ + Return whether the argument is the [`NotRequired`][typing.NotRequired] [special form][]. + + ```pycon + >>> is_notrequired(NotRequired) + True + ``` + """ + +def is_paramspecargs(obj: Any, /) -> TypeIs[ParamSpecArgs]: + """ + Return whether the argument is an instance of [`ParamSpecArgs`][typing.ParamSpecArgs]. + + ```pycon + >>> P = ParamSpec('P') + >>> is_paramspecargs(P.args) + True + ``` + """ + +def is_paramspeckwargs(obj: Any, /) -> TypeIs[ParamSpecKwargs]: + """ + Return whether the argument is an instance of [`ParamSpecKwargs`][typing.ParamSpecKwargs]. + + ```pycon + >>> P = ParamSpec('P') + >>> is_paramspeckwargs(P.kwargs) + True + ``` + """ + +def is_readonly(obj: Any, /) -> bool: + """ + Return whether the argument is the [`ReadOnly`][typing.ReadOnly] [special form][]. + + ```pycon + >>> is_readonly(ReadOnly) + True + ``` + """ + +def is_required(obj: Any, /) -> bool: + """ + Return whether the argument is the [`Required`][typing.Required] [special form][]. + + ```pycon + >>> is_required(Required) + True + ``` + """ + +def is_self(obj: Any, /) -> bool: + """ + Return whether the argument is the [`Self`][typing.Self] [special form][]. + + ```pycon + >>> is_self(Self) + True + ``` + """ + +def is_typealias(obj: Any, /) -> bool: + """ + Return whether the argument is the [`TypeAlias`][typing.TypeAlias] [special form][]. + + ```pycon + >>> is_typealias(TypeAlias) + True + ``` + """ + +def is_typeguard(obj: Any, /) -> bool: + """ + Return whether the argument is the [`TypeGuard`][typing.TypeGuard] [special form][]. + + ```pycon + >>> is_typeguard(TypeGuard) + True + ``` + """ + +def is_typeis(obj: Any, /) -> bool: + """ + Return whether the argument is the [`TypeIs`][typing.TypeIs] [special form][]. + + ```pycon + >>> is_typeis(TypeIs) + True + ``` + """ + +def is_typealiastype(obj: Any, /) -> TypeIs[TypeAliasType]: + """ + Return whether the argument is a [`TypeAliasType`][typing.TypeAliasType] instance. + + ```pycon + >>> type MyInt = int + >>> is_typealiastype(MyInt) + True + >>> MyStr = TypeAliasType("MyStr", str) + >>> is_typealiastype(MyStr): + True + >>> type MyList[T] = list[T] + >>> is_typealiastype(MyList[int]) + False + ``` + """ + +def is_unpack(obj: Any, /) -> bool: + """ + Return whether the argument is the [`Unpack`][typing.Unpack] [special form][]. + + ```pycon + >>> is_unpack(Unpack) + True + >>> is_unpack(Unpack[Ts]) + False + ``` + """ + +def is_deprecated(obj: Any, /) -> TypeIs[deprecated]: + """ + Return whether the argument is a [`deprecated`][warnings.deprecated] instance. + + This also includes the [`typing_extensions` backport][typing_extensions.deprecated]. + + ```pycon + >>> is_deprecated(warnings.deprecated('message')) + True + >>> is_deprecated(typing_extensions.deprecated('deprecated')) + True + ``` + """ + +DEPRECATED_ALIASES: Final[dict[Any, type[Any]]] +"""A mapping between the deprecated typing aliases to their replacement, as per [PEP 585](https://peps.python.org/pep-0585/).""" diff --git a/venv/lib/python3.11/site-packages/urllib3-2.5.0.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/urllib3-2.5.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/urllib3-2.5.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/urllib3-2.5.0.dist-info/METADATA b/venv/lib/python3.11/site-packages/urllib3-2.5.0.dist-info/METADATA new file mode 100644 index 0000000..15116c7 --- /dev/null +++ b/venv/lib/python3.11/site-packages/urllib3-2.5.0.dist-info/METADATA @@ -0,0 +1,154 @@ +Metadata-Version: 2.4 +Name: urllib3 +Version: 2.5.0 +Summary: HTTP library with thread-safe connection pooling, file post, and more. +Project-URL: Changelog, https://github.com/urllib3/urllib3/blob/main/CHANGES.rst +Project-URL: Documentation, https://urllib3.readthedocs.io +Project-URL: Code, https://github.com/urllib3/urllib3 +Project-URL: Issue tracker, https://github.com/urllib3/urllib3/issues +Author-email: Andrey Petrov +Maintainer-email: Seth Michael Larson , Quentin Pradet , Illia Volochii +License-Expression: MIT +License-File: LICENSE.txt +Keywords: filepost,http,httplib,https,pooling,ssl,threadsafe,urllib +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Internet :: WWW/HTTP +Classifier: Topic :: Software Development :: Libraries +Requires-Python: >=3.9 +Provides-Extra: brotli +Requires-Dist: brotli>=1.0.9; (platform_python_implementation == 'CPython') and extra == 'brotli' +Requires-Dist: brotlicffi>=0.8.0; (platform_python_implementation != 'CPython') and extra == 'brotli' +Provides-Extra: h2 +Requires-Dist: h2<5,>=4; extra == 'h2' +Provides-Extra: socks +Requires-Dist: pysocks!=1.5.7,<2.0,>=1.5.6; extra == 'socks' +Provides-Extra: zstd +Requires-Dist: zstandard>=0.18.0; extra == 'zstd' +Description-Content-Type: text/markdown + +

+ +![urllib3](https://github.com/urllib3/urllib3/raw/main/docs/_static/banner_github.svg) + +

+ +

+ PyPI Version + Python Versions + Join our Discord + Coverage Status + Build Status on GitHub + Documentation Status
+ OpenSSF Scorecard + SLSA 3 + CII Best Practices +

+ +urllib3 is a powerful, *user-friendly* HTTP client for Python. Much of the +Python ecosystem already uses urllib3 and you should too. +urllib3 brings many critical features that are missing from the Python +standard libraries: + +- Thread safety. +- Connection pooling. +- Client-side SSL/TLS verification. +- File uploads with multipart encoding. +- Helpers for retrying requests and dealing with HTTP redirects. +- Support for gzip, deflate, brotli, and zstd encoding. +- Proxy support for HTTP and SOCKS. +- 100% test coverage. + +urllib3 is powerful and easy to use: + +```python3 +>>> import urllib3 +>>> resp = urllib3.request("GET", "http://httpbin.org/robots.txt") +>>> resp.status +200 +>>> resp.data +b"User-agent: *\nDisallow: /deny\n" +``` + +## Installing + +urllib3 can be installed with [pip](https://pip.pypa.io): + +```bash +$ python -m pip install urllib3 +``` + +Alternatively, you can grab the latest source code from [GitHub](https://github.com/urllib3/urllib3): + +```bash +$ git clone https://github.com/urllib3/urllib3.git +$ cd urllib3 +$ pip install . +``` + + +## Documentation + +urllib3 has usage and reference documentation at [urllib3.readthedocs.io](https://urllib3.readthedocs.io). + + +## Community + +urllib3 has a [community Discord channel](https://discord.gg/urllib3) for asking questions and +collaborating with other contributors. Drop by and say hello 👋 + + +## Contributing + +urllib3 happily accepts contributions. Please see our +[contributing documentation](https://urllib3.readthedocs.io/en/latest/contributing.html) +for some tips on getting started. + + +## Security Disclosures + +To report a security vulnerability, please use the +[Tidelift security contact](https://tidelift.com/security). +Tidelift will coordinate the fix and disclosure with maintainers. + + +## Maintainers + +- [@sethmlarson](https://github.com/sethmlarson) (Seth M. Larson) +- [@pquentin](https://github.com/pquentin) (Quentin Pradet) +- [@illia-v](https://github.com/illia-v) (Illia Volochii) +- [@theacodes](https://github.com/theacodes) (Thea Flowers) +- [@haikuginger](https://github.com/haikuginger) (Jess Shapiro) +- [@lukasa](https://github.com/lukasa) (Cory Benfield) +- [@sigmavirus24](https://github.com/sigmavirus24) (Ian Stapleton Cordasco) +- [@shazow](https://github.com/shazow) (Andrey Petrov) + +👋 + + +## Sponsorship + +If your company benefits from this library, please consider [sponsoring its +development](https://urllib3.readthedocs.io/en/latest/sponsors.html). + + +## For Enterprise + +Professional support for urllib3 is available as part of the [Tidelift +Subscription][1]. Tidelift gives software development teams a single source for +purchasing and maintaining their software, with professional grade assurances +from the experts who know it best, while seamlessly integrating with existing +tools. + +[1]: https://tidelift.com/subscription/pkg/pypi-urllib3?utm_source=pypi-urllib3&utm_medium=referral&utm_campaign=readme diff --git a/venv/lib/python3.11/site-packages/urllib3-2.5.0.dist-info/RECORD b/venv/lib/python3.11/site-packages/urllib3-2.5.0.dist-info/RECORD new file mode 100644 index 0000000..f4aaa63 --- /dev/null +++ b/venv/lib/python3.11/site-packages/urllib3-2.5.0.dist-info/RECORD @@ -0,0 +1,79 @@ +urllib3-2.5.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +urllib3-2.5.0.dist-info/METADATA,sha256=maYkTIZt0a-lkEC-hMZWbCBmcGZyJcYOeRk4_nuTrNc,6461 +urllib3-2.5.0.dist-info/RECORD,, +urllib3-2.5.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87 +urllib3-2.5.0.dist-info/licenses/LICENSE.txt,sha256=Ew46ZNX91dCWp1JpRjSn2d8oRGnehuVzIQAmgEHj1oY,1093 +urllib3/__init__.py,sha256=JMo1tg1nIV1AeJ2vENC_Txfl0e5h6Gzl9DGVk1rWRbo,6979 +urllib3/__pycache__/__init__.cpython-311.pyc,, +urllib3/__pycache__/_base_connection.cpython-311.pyc,, +urllib3/__pycache__/_collections.cpython-311.pyc,, +urllib3/__pycache__/_request_methods.cpython-311.pyc,, +urllib3/__pycache__/_version.cpython-311.pyc,, +urllib3/__pycache__/connection.cpython-311.pyc,, +urllib3/__pycache__/connectionpool.cpython-311.pyc,, +urllib3/__pycache__/exceptions.cpython-311.pyc,, +urllib3/__pycache__/fields.cpython-311.pyc,, +urllib3/__pycache__/filepost.cpython-311.pyc,, +urllib3/__pycache__/poolmanager.cpython-311.pyc,, +urllib3/__pycache__/response.cpython-311.pyc,, +urllib3/_base_connection.py,sha256=T1cwH3RhzsrBh6Bz3AOGVDboRsE7veijqZPXXQTR2Rg,5568 +urllib3/_collections.py,sha256=tM7c6J1iKtWZYV_QGYb8-r7Nr1524Dehnsa0Ufh6_mU,17295 +urllib3/_request_methods.py,sha256=gCeF85SO_UU4WoPwYHIoz_tw-eM_EVOkLFp8OFsC7DA,9931 +urllib3/_version.py,sha256=ZlSUkBo_Pd90B6pM0GDO7l2vitQD3QCK3xPR_K0zFJA,511 +urllib3/connection.py,sha256=iP4pgSJtpusXyYlejzNn-gih_wWCxMU-qy6OU1kaapc,42613 +urllib3/connectionpool.py,sha256=ZEhudsa8BIubD2M0XoxBBsjxbsXwMgUScH7oQ9i-j1Y,43371 +urllib3/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +urllib3/contrib/__pycache__/__init__.cpython-311.pyc,, +urllib3/contrib/__pycache__/pyopenssl.cpython-311.pyc,, +urllib3/contrib/__pycache__/socks.cpython-311.pyc,, +urllib3/contrib/emscripten/__init__.py,sha256=u6KNgzjlFZbuAAXa_ybCR7gQ71VJESnF-IIdDA73brw,733 +urllib3/contrib/emscripten/__pycache__/__init__.cpython-311.pyc,, +urllib3/contrib/emscripten/__pycache__/connection.cpython-311.pyc,, +urllib3/contrib/emscripten/__pycache__/fetch.cpython-311.pyc,, +urllib3/contrib/emscripten/__pycache__/request.cpython-311.pyc,, +urllib3/contrib/emscripten/__pycache__/response.cpython-311.pyc,, +urllib3/contrib/emscripten/connection.py,sha256=j8DR_flE7hsoFhNfiqHLiaPaCsVbzG44jgahwvsQ52A,8771 +urllib3/contrib/emscripten/emscripten_fetch_worker.js,sha256=CDfYF_9CDobtx2lGidyJ1zjDEvwNT5F-dchmVWXDh0E,3655 +urllib3/contrib/emscripten/fetch.py,sha256=kco06lWoQ-fdFfN51-nzeTywPVBEHg89WIst33H3xcg,23484 +urllib3/contrib/emscripten/request.py,sha256=mL28szy1KvE3NJhWor5jNmarp8gwplDU-7gwGZY5g0Q,566 +urllib3/contrib/emscripten/response.py,sha256=7oVPENYZHuzEGRtG40HonpH5tAIYHsGcHPbJt2Z0U-Y,9507 +urllib3/contrib/pyopenssl.py,sha256=Xp5Ym05VgXGhHa0C4wlutvHxY8SnKSS6WLb2t5Miu0s,19720 +urllib3/contrib/socks.py,sha256=-iardc61GypsJzD6W6yuRS7KVCyfowcQrl_719H7lIM,7549 +urllib3/exceptions.py,sha256=pziumHf0Vwx3z4gvUy7ou8nlM2yIYX0N3l3znEdeF5U,9938 +urllib3/fields.py,sha256=FCf7UULSkf10cuTRUWTQESzxgl1WT8e2aCy3kfyZins,10829 +urllib3/filepost.py,sha256=U8eNZ-mpKKHhrlbHEEiTxxgK16IejhEa7uz42yqA_dI,2388 +urllib3/http2/__init__.py,sha256=xzrASH7R5ANRkPJOot5lGnATOq3KKuyXzI42rcnwmqs,1741 +urllib3/http2/__pycache__/__init__.cpython-311.pyc,, +urllib3/http2/__pycache__/connection.cpython-311.pyc,, +urllib3/http2/__pycache__/probe.cpython-311.pyc,, +urllib3/http2/connection.py,sha256=4DB0DkZEC3yIkhGjUDIHB17wrYCLaL0Ag5bDW2_mGPI,12694 +urllib3/http2/probe.py,sha256=nnAkqbhAakOiF75rz7W0udZ38Eeh_uD8fjV74N73FEI,3014 +urllib3/poolmanager.py,sha256=oKsgP1EsAI4OVgK9-9D3AYXZS5HYV8yKUSog-QbJ8Ts,23866 +urllib3/py.typed,sha256=UaCuPFa3H8UAakbt-5G8SPacldTOGvJv18pPjUJ5gDY,93 +urllib3/response.py,sha256=TVTSu6Q1U0U7hoHYMIRxxuh4zroeMo8b5EI4DOA13Eo,46480 +urllib3/util/__init__.py,sha256=-qeS0QceivazvBEKDNFCAI-6ACcdDOE4TMvo7SLNlAQ,1001 +urllib3/util/__pycache__/__init__.cpython-311.pyc,, +urllib3/util/__pycache__/connection.cpython-311.pyc,, +urllib3/util/__pycache__/proxy.cpython-311.pyc,, +urllib3/util/__pycache__/request.cpython-311.pyc,, +urllib3/util/__pycache__/response.cpython-311.pyc,, +urllib3/util/__pycache__/retry.cpython-311.pyc,, +urllib3/util/__pycache__/ssl_.cpython-311.pyc,, +urllib3/util/__pycache__/ssl_match_hostname.cpython-311.pyc,, +urllib3/util/__pycache__/ssltransport.cpython-311.pyc,, +urllib3/util/__pycache__/timeout.cpython-311.pyc,, +urllib3/util/__pycache__/url.cpython-311.pyc,, +urllib3/util/__pycache__/util.cpython-311.pyc,, +urllib3/util/__pycache__/wait.cpython-311.pyc,, +urllib3/util/connection.py,sha256=JjO722lzHlzLXPTkr9ZWBdhseXnMVjMSb1DJLVrXSnQ,4444 +urllib3/util/proxy.py,sha256=seP8-Q5B6bB0dMtwPj-YcZZQ30vHuLqRu-tI0JZ2fzs,1148 +urllib3/util/request.py,sha256=XuAsEBT58DAZYUTwpMH5Hr3A1OPoMNvNIYIunbIqbc8,8411 +urllib3/util/response.py,sha256=vQE639uoEhj1vpjEdxu5lNIhJCSUZkd7pqllUI0BZOA,3374 +urllib3/util/retry.py,sha256=bj-2YUqblxLlv8THg5fxww-DM54XCbjgZXIQ71XioCY,18459 +urllib3/util/ssl_.py,sha256=jxnQ3msYkVaokJVWqHNnAVdVtDdidrTHDeyk50gwqaQ,19786 +urllib3/util/ssl_match_hostname.py,sha256=Di7DU7zokoltapT_F0Sj21ffYxwaS_cE5apOtwueeyA,5845 +urllib3/util/ssltransport.py,sha256=Ez4O8pR_vT8dan_FvqBYS6dgDfBXEMfVfrzcdUoWfi4,8847 +urllib3/util/timeout.py,sha256=4eT1FVeZZU7h7mYD1Jq2OXNe4fxekdNvhoWUkZusRpA,10346 +urllib3/util/url.py,sha256=WRh-TMYXosmgp8m8lT4H5spoHw5yUjlcMCfU53AkoAs,15205 +urllib3/util/util.py,sha256=j3lbZK1jPyiwD34T8IgJzdWEZVT-4E-0vYIJi9UjeNA,1146 +urllib3/util/wait.py,sha256=_ph8IrUR3sqPqi0OopQgJUlH4wzkGeM5CiyA7XGGtmI,4423 diff --git a/venv/lib/python3.11/site-packages/urllib3-2.5.0.dist-info/WHEEL b/venv/lib/python3.11/site-packages/urllib3-2.5.0.dist-info/WHEEL new file mode 100644 index 0000000..12228d4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/urllib3-2.5.0.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: hatchling 1.27.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/urllib3-2.5.0.dist-info/licenses/LICENSE.txt b/venv/lib/python3.11/site-packages/urllib3-2.5.0.dist-info/licenses/LICENSE.txt new file mode 100644 index 0000000..e6183d0 --- /dev/null +++ b/venv/lib/python3.11/site-packages/urllib3-2.5.0.dist-info/licenses/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2008-2020 Andrey Petrov and contributors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/METADATA b/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/METADATA new file mode 100644 index 0000000..6afcff5 --- /dev/null +++ b/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/METADATA @@ -0,0 +1,192 @@ +Metadata-Version: 2.4 +Name: uvicorn +Version: 0.38.0 +Summary: The lightning-fast ASGI server. +Project-URL: Changelog, https://uvicorn.dev/release-notes +Project-URL: Funding, https://github.com/sponsors/encode +Project-URL: Homepage, https://uvicorn.dev/ +Project-URL: Source, https://github.com/Kludex/uvicorn +Author-email: Tom Christie +Maintainer-email: Marcelo Trylesinski +License-Expression: BSD-3-Clause +License-File: LICENSE.md +Classifier: Development Status :: 4 - Beta +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Internet :: WWW/HTTP +Requires-Python: >=3.9 +Requires-Dist: click>=7.0 +Requires-Dist: h11>=0.8 +Requires-Dist: typing-extensions>=4.0; python_version < '3.11' +Provides-Extra: standard +Requires-Dist: colorama>=0.4; (sys_platform == 'win32') and extra == 'standard' +Requires-Dist: httptools>=0.6.3; extra == 'standard' +Requires-Dist: python-dotenv>=0.13; extra == 'standard' +Requires-Dist: pyyaml>=5.1; extra == 'standard' +Requires-Dist: uvloop>=0.15.1; (sys_platform != 'win32' and (sys_platform != 'cygwin' and platform_python_implementation != 'PyPy')) and extra == 'standard' +Requires-Dist: watchfiles>=0.13; extra == 'standard' +Requires-Dist: websockets>=10.4; extra == 'standard' +Description-Content-Type: text/markdown + +

+ uvicorn +

+ +

+An ASGI web server, for Python. +

+ +--- + +[![Build Status](https://github.com/Kludex/uvicorn/workflows/Test%20Suite/badge.svg)](https://github.com/Kludex/uvicorn/actions) +[![Package version](https://badge.fury.io/py/uvicorn.svg)](https://pypi.python.org/pypi/uvicorn) +[![Supported Python Version](https://img.shields.io/pypi/pyversions/uvicorn.svg?color=%2334D058)](https://pypi.org/project/uvicorn) +[![Discord](https://img.shields.io/discord/1051468649518616576?logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/RxKUF5JuHs) + +--- + +**Documentation**: [https://uvicorn.dev](https://uvicorn.dev) + +**Source Code**: [https://www.github.com/Kludex/uvicorn](https://www.github.com/Kludex/uvicorn) + +--- + +Uvicorn is an ASGI web server implementation for Python. + +Until recently Python has lacked a minimal low-level server/application interface for +async frameworks. The [ASGI specification][asgi] fills this gap, and means we're now able to +start building a common set of tooling usable across all async frameworks. + +Uvicorn supports HTTP/1.1 and WebSockets. + +## Quickstart + +Install using `pip`: + +```shell +$ pip install uvicorn +``` + +This will install uvicorn with minimal (pure Python) dependencies. + +```shell +$ pip install 'uvicorn[standard]' +``` + +This will install uvicorn with "Cython-based" dependencies (where possible) and other "optional extras". + +In this context, "Cython-based" means the following: + +- the event loop `uvloop` will be installed and used if possible. +- the http protocol will be handled by `httptools` if possible. + +Moreover, "optional extras" means that: + +- the websocket protocol will be handled by `websockets` (should you want to use `wsproto` you'd need to install it manually) if possible. +- the `--reload` flag in development mode will use `watchfiles`. +- windows users will have `colorama` installed for the colored logs. +- `python-dotenv` will be installed should you want to use the `--env-file` option. +- `PyYAML` will be installed to allow you to provide a `.yaml` file to `--log-config`, if desired. + +Create an application, in `example.py`: + +```python +async def app(scope, receive, send): + assert scope['type'] == 'http' + + await send({ + 'type': 'http.response.start', + 'status': 200, + 'headers': [ + (b'content-type', b'text/plain'), + ], + }) + await send({ + 'type': 'http.response.body', + 'body': b'Hello, world!', + }) +``` + +Run the server: + +```shell +$ uvicorn example:app +``` + +--- + +## Why ASGI? + +Most well established Python Web frameworks started out as WSGI-based frameworks. + +WSGI applications are a single, synchronous callable that takes a request and returns a response. +This doesn’t allow for long-lived connections, like you get with long-poll HTTP or WebSocket connections, +which WSGI doesn't support well. + +Having an async concurrency model also allows for options such as lightweight background tasks, +and can be less of a limiting factor for endpoints that have long periods being blocked on network +I/O such as dealing with slow HTTP requests. + +--- + +## Alternative ASGI servers + +A strength of the ASGI protocol is that it decouples the server implementation +from the application framework. This allows for an ecosystem of interoperating +webservers and application frameworks. + +### Daphne + +The first ASGI server implementation, originally developed to power Django Channels, is [the Daphne webserver][daphne]. + +It is run widely in production, and supports HTTP/1.1, HTTP/2, and WebSockets. + +Any of the example applications given here can equally well be run using `daphne` instead. + +``` +$ pip install daphne +$ daphne app:App +``` + +### Hypercorn + +[Hypercorn][hypercorn] was initially part of the Quart web framework, before +being separated out into a standalone ASGI server. + +Hypercorn supports HTTP/1.1, HTTP/2, and WebSockets. + +It also supports [the excellent `trio` async framework][trio], as an alternative to `asyncio`. + +``` +$ pip install hypercorn +$ hypercorn app:App +``` + +### Mangum + +[Mangum][mangum] is an adapter for using ASGI applications with AWS Lambda & API Gateway. + +### Granian + +[Granian][granian] is an ASGI compatible Rust HTTP server which supports HTTP/2, TLS and WebSockets. + +--- + +

Uvicorn is BSD licensed code.
Designed & crafted with care.

— 🦄 —

+ +[asgi]: https://asgi.readthedocs.io/en/latest/ +[daphne]: https://github.com/django/daphne +[hypercorn]: https://github.com/pgjones/hypercorn +[trio]: https://trio.readthedocs.io +[mangum]: https://github.com/jordaneremieff/mangum +[granian]: https://github.com/emmett-framework/granian diff --git a/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/RECORD b/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/RECORD new file mode 100644 index 0000000..3935db3 --- /dev/null +++ b/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/RECORD @@ -0,0 +1,89 @@ +../../../bin/uvicorn,sha256=Po7Tg2c9O7bZck37hCMK1TCronCh8Cny9KcBwErDgTU,248 +uvicorn-0.38.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +uvicorn-0.38.0.dist-info/METADATA,sha256=GmMMliyGon6rhUHM6QYtwzOYthpaOSxAUhBzyRkSULQ,6787 +uvicorn-0.38.0.dist-info/RECORD,, +uvicorn-0.38.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +uvicorn-0.38.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87 +uvicorn-0.38.0.dist-info/entry_points.txt,sha256=FW1w-hkc9QgwaGoovMvm0ZY73w_NcycWdGAUfDsNGxw,46 +uvicorn-0.38.0.dist-info/licenses/LICENSE.md,sha256=7-Gs8-YvuZwoiw7HPlp3O3Jo70Mg_nV-qZQhTktjw3E,1526 +uvicorn/__init__.py,sha256=6Y8paoAxLOyKIVO7QSuLxSeQKRZWhvA9MNA_P3JD1yY,147 +uvicorn/__main__.py,sha256=DQizy6nKP0ywhPpnCHgmRDYIMfcqZKVEzNIWQZjqtVQ,62 +uvicorn/__pycache__/__init__.cpython-311.pyc,, +uvicorn/__pycache__/__main__.cpython-311.pyc,, +uvicorn/__pycache__/_compat.cpython-311.pyc,, +uvicorn/__pycache__/_subprocess.cpython-311.pyc,, +uvicorn/__pycache__/_types.cpython-311.pyc,, +uvicorn/__pycache__/config.cpython-311.pyc,, +uvicorn/__pycache__/importer.cpython-311.pyc,, +uvicorn/__pycache__/logging.cpython-311.pyc,, +uvicorn/__pycache__/main.cpython-311.pyc,, +uvicorn/__pycache__/server.cpython-311.pyc,, +uvicorn/__pycache__/workers.cpython-311.pyc,, +uvicorn/_compat.py,sha256=6X49c9ovzmMHir2S3syinOQMzSPBcp8MNuI9ZQrbYiU,2916 +uvicorn/_subprocess.py,sha256=HbfRnsCkXyg7xCWVAWWzXQTeWlvLKfTlIF5wevFBkR4,2766 +uvicorn/_types.py,sha256=5FcPvvIfeKsJDjGhTrceDv8TmwzYI8yPF7mXsXTWOUM,7775 +uvicorn/config.py,sha256=MOUP5xta6Yq1ByQ1_W7a9Cd6WX0WQW-icpJrIQbBb2U,21984 +uvicorn/importer.py,sha256=nRt0QQ3qpi264-n_mR0l55C2ddM8nowTNzT1jsWaam8,1128 +uvicorn/lifespan/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +uvicorn/lifespan/__pycache__/__init__.cpython-311.pyc,, +uvicorn/lifespan/__pycache__/off.cpython-311.pyc,, +uvicorn/lifespan/__pycache__/on.cpython-311.pyc,, +uvicorn/lifespan/off.py,sha256=nfI6qHAUo_8-BEXMBKoHQ9wUbsXrPaXLCbDSS0vKSr8,332 +uvicorn/lifespan/on.py,sha256=WeSTqGsKrnWEJgbO-l-A8966OboWcR93vzdr8-CXKv4,5184 +uvicorn/logging.py,sha256=-eCE4nOJmFbtB9qfNJuEVNF0Y13LGUHqvFzemYT0PaQ,4235 +uvicorn/loops/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +uvicorn/loops/__pycache__/__init__.cpython-311.pyc,, +uvicorn/loops/__pycache__/asyncio.cpython-311.pyc,, +uvicorn/loops/__pycache__/auto.cpython-311.pyc,, +uvicorn/loops/__pycache__/uvloop.cpython-311.pyc,, +uvicorn/loops/asyncio.py,sha256=a8wO4fB4pCk-RLICq7CnGr_cxQI7MBLJj-Go4UQldD8,333 +uvicorn/loops/auto.py,sha256=pdTsMcqkbE8fvdNgLs1y4c6hsuN598mZOSOlC0a23S4,566 +uvicorn/loops/uvloop.py,sha256=Ca-TL-W8tbdEW5uvL_GrMih7G8e_t_vhNevi2NKYjEU,236 +uvicorn/main.py,sha256=Rbll6QuWx0gNdeLL3DGZSu_L-EJo4ruQKsQD3ZACV_w,17717 +uvicorn/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +uvicorn/middleware/__pycache__/__init__.cpython-311.pyc,, +uvicorn/middleware/__pycache__/asgi2.cpython-311.pyc,, +uvicorn/middleware/__pycache__/message_logger.cpython-311.pyc,, +uvicorn/middleware/__pycache__/proxy_headers.cpython-311.pyc,, +uvicorn/middleware/__pycache__/wsgi.cpython-311.pyc,, +uvicorn/middleware/asgi2.py,sha256=YQrQNm3RehFts3mzk3k4yw8aD8Egtj0tRS3N45YkQa0,394 +uvicorn/middleware/message_logger.py,sha256=IHEZUSnFNaMFUFdwtZO3AuFATnYcSor-gVtOjbCzt8M,2859 +uvicorn/middleware/proxy_headers.py,sha256=yQG3ThmZhRh9jp-AId7DQhb5WVl6to0hD1G0DPrtLow,5790 +uvicorn/middleware/wsgi.py,sha256=N6fWyOnHoeHbUevX0mDYFNmI4lsMv7Y0qnd7Y3fJVL4,7105 +uvicorn/protocols/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +uvicorn/protocols/__pycache__/__init__.cpython-311.pyc,, +uvicorn/protocols/__pycache__/utils.cpython-311.pyc,, +uvicorn/protocols/http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +uvicorn/protocols/http/__pycache__/__init__.cpython-311.pyc,, +uvicorn/protocols/http/__pycache__/auto.cpython-311.pyc,, +uvicorn/protocols/http/__pycache__/flow_control.cpython-311.pyc,, +uvicorn/protocols/http/__pycache__/h11_impl.cpython-311.pyc,, +uvicorn/protocols/http/__pycache__/httptools_impl.cpython-311.pyc,, +uvicorn/protocols/http/auto.py,sha256=YfXGyzWTaaE2p_jkTPWrJCXsxEaQnC3NK0-G7Wgmnls,403 +uvicorn/protocols/http/flow_control.py,sha256=050WVg31EvPOkHwynCoMP1zXFl_vO3U4durlc5vyp4U,1701 +uvicorn/protocols/http/h11_impl.py,sha256=4b-KswK57FBaRPeHXlK_oy8pKM6vG1haALCIeRH-1bA,20694 +uvicorn/protocols/http/httptools_impl.py,sha256=tuQBCiD6rf5DQeyQwHVc45rxH9ouojMpkXi9KG6NRBk,21805 +uvicorn/protocols/utils.py,sha256=rCjYLd4_uwPeZkbRXQ6beCfxyI_oYpvJCwz3jEGNOiE,1849 +uvicorn/protocols/websockets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +uvicorn/protocols/websockets/__pycache__/__init__.cpython-311.pyc,, +uvicorn/protocols/websockets/__pycache__/auto.cpython-311.pyc,, +uvicorn/protocols/websockets/__pycache__/websockets_impl.cpython-311.pyc,, +uvicorn/protocols/websockets/__pycache__/websockets_sansio_impl.cpython-311.pyc,, +uvicorn/protocols/websockets/__pycache__/wsproto_impl.cpython-311.pyc,, +uvicorn/protocols/websockets/auto.py,sha256=SH_KV_3vwR8_oGda2GrHFt38VG-IwY0ufjvHOu4VA0o,581 +uvicorn/protocols/websockets/websockets_impl.py,sha256=Apl3sr0BYpWgbViTAZiFIA2G0VYCxYNf8Ckk92BqXqg,15546 +uvicorn/protocols/websockets/websockets_sansio_impl.py,sha256=TxpjkbuhaTd0UXYc1VMe4UgBr6kn_JwJV-hqegHHmxs,17145 +uvicorn/protocols/websockets/wsproto_impl.py,sha256=u2TKyzRUCmQpS1e4E_X6Uou9QIuoKZNNNmHU1IzkWPU,15366 +uvicorn/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 +uvicorn/server.py,sha256=o738bQZNEcuaGse9EOR4EYOxzPm1kOaAKupRLjsfuI0,13044 +uvicorn/supervisors/__init__.py,sha256=wT8eOEIqT1yWQgytZtv5taWMul7xoTIY0xm1m4oyPTw,507 +uvicorn/supervisors/__pycache__/__init__.cpython-311.pyc,, +uvicorn/supervisors/__pycache__/basereload.cpython-311.pyc,, +uvicorn/supervisors/__pycache__/multiprocess.cpython-311.pyc,, +uvicorn/supervisors/__pycache__/statreload.cpython-311.pyc,, +uvicorn/supervisors/__pycache__/watchfilesreload.cpython-311.pyc,, +uvicorn/supervisors/basereload.py,sha256=MAXSQ3ckZPwqzJ8Un9yDhk3W0yyAArQtZLuOE0OInSc,4036 +uvicorn/supervisors/multiprocess.py,sha256=nmkIrD3YsLoRIJrBIdbXHdfq2kbYlNW6wjgEMuyjoJk,7553 +uvicorn/supervisors/statreload.py,sha256=uYblmoxM3IbPbvMDzr5Abw2-WykQl8NxTTzeLfVyvnU,1566 +uvicorn/supervisors/watchfilesreload.py,sha256=W86Ybb0E5SdMYYuWHJ3bpAFXdw5ZurvLRdFcvLnYEIA,2859 +uvicorn/workers.py,sha256=lMCubn1Wi-4h2jxrXNMmhOJZy7ZP8QxbZbP3_2O1iHE,3873 diff --git a/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/REQUESTED b/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/WHEEL b/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/WHEEL new file mode 100644 index 0000000..12228d4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: hatchling 1.27.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/entry_points.txt b/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/entry_points.txt new file mode 100644 index 0000000..4b00fcb --- /dev/null +++ b/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +uvicorn = uvicorn.main:main diff --git a/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/licenses/LICENSE.md b/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/licenses/LICENSE.md new file mode 100644 index 0000000..a6bba14 --- /dev/null +++ b/venv/lib/python3.11/site-packages/uvicorn-0.38.0.dist-info/licenses/LICENSE.md @@ -0,0 +1,27 @@ +Copyright © 2017-present, [Encode OSS Ltd](https://www.encode.io/). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/venv/lib/python3.11/site-packages/vtk-9.5.2.dist-info/INSTALLER b/venv/lib/python3.11/site-packages/vtk-9.5.2.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtk-9.5.2.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.11/site-packages/vtk-9.5.2.dist-info/METADATA b/venv/lib/python3.11/site-packages/vtk-9.5.2.dist-info/METADATA new file mode 100644 index 0000000..6117213 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtk-9.5.2.dist-info/METADATA @@ -0,0 +1,160 @@ +Metadata-Version: 2.4 +Name: vtk +Version: 9.5.2 +Summary: VTK is an open-source toolkit for 3D computer graphics, image processing, and visualization +Home-page: https://vtk.org +Download-URL: https://vtk.org/download/ +Author: VTK developers +License: BSD +Classifier: License :: OSI Approved :: BSD License +Classifier: Programming Language :: Python +Classifier: Programming Language :: C++ +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: Education +Classifier: Intended Audience :: Healthcare Industry +Classifier: Intended Audience :: Science/Research +Classifier: Topic :: Multimedia :: Graphics +Classifier: Topic :: Multimedia :: Graphics :: 3D Modeling +Classifier: Topic :: Multimedia :: Graphics :: 3D Rendering +Classifier: Topic :: Scientific/Engineering +Classifier: Topic :: Scientific/Engineering :: Chemistry +Classifier: Topic :: Scientific/Engineering :: Information Analysis +Classifier: Topic :: Scientific/Engineering :: Medical Science Apps. +Classifier: Topic :: Scientific/Engineering :: Physics +Classifier: Topic :: Scientific/Engineering :: Visualization +Classifier: Topic :: Software Development :: Libraries +Classifier: Operating System :: Microsoft :: Windows +Classifier: Operating System :: POSIX +Classifier: Operating System :: Unix +Classifier: Operating System :: MacOS +Description-Content-Type: text/markdown +License-File: LICENSE +Requires-Dist: matplotlib>=2.0.0 +Provides-Extra: gtk +Provides-Extra: numpy +Requires-Dist: numpy>=1.9; extra == "numpy" +Provides-Extra: qt +Provides-Extra: tk +Provides-Extra: wx +Provides-Extra: web +Requires-Dist: wslink>=1.0.4; extra == "web" +Provides-Extra: rendering +Provides-Extra: rendering-offscreen-osmesa +Provides-Extra: rendering-onscreen-x11 +Provides-Extra: rendering-onscreen +Provides-Extra: rendering-offscreen +Provides-Extra: rendering-backend-gl +Provides-Extra: rendering-backend-egl +Dynamic: author +Dynamic: classifier +Dynamic: description +Dynamic: description-content-type +Dynamic: download-url +Dynamic: home-page +Dynamic: license +Dynamic: license-file +Dynamic: provides-extra +Dynamic: requires-dist +Dynamic: summary + +![VTK - The Visualization Toolkit][vtk-banner] + +Introduction +============ + +VTK is an open-source software system for image processing, 3D +graphics, volume rendering and visualization. VTK includes many +advanced algorithms (e.g., surface reconstruction, implicit modeling, +decimation) and rendering techniques (e.g., hardware-accelerated +volume rendering, LOD control). + +VTK is used by academicians for teaching and research; by government +research institutions such as Los Alamos National Lab in the US or +CINECA in Italy; and by many commercial firms who use VTK to build or +extend products. + +The origin of VTK is with the textbook "The Visualization Toolkit, an +Object-Oriented Approach to 3D Graphics" originally published by +Prentice Hall and now published by Kitware, Inc. (Third Edition ISBN +1-930934-07-6). VTK has grown (since its initial release in 1994) to a +world-wide user base in the commercial, academic, and research +communities. + +Learning Resources +================== + +* General information is available at the [VTK Homepage][vtk-homepage]. + +* Community discussion takes place on the [VTK Discourse][vtk-discourse] forum. + +* Commercial [support and training][kitware-support] + are available from [Kitware][]. + +* Doxygen-generated nightly reference documentation is + available [online][vtk-doxygen]. + +* There is now a large collection of [VTK Examples][vtk-examples] that + showcase VTK features and provide a useful learning resource. + +Reporting Bugs +============== + +If you have found a bug: + +1. If you have a patch, please read the [CONTRIBUTING.md][vtk-contributing] document. + +2. Otherwise, please join the [VTK Discourse][vtk-discourse] forum and ask + about the expected and observed behaviors to determine if it is + really a bug. + +3. Finally, if the issue is not resolved by the above steps, open + an entry in the [VTK Issue Tracker][vtk-issues]. + +Requirements +============ + +In general VTK tries to be as portable as possible; the specific configurations below are known to work and tested. + +VTK supports the following compilers: + + +1. GCC 8.0 or newer +2. Clang 5.0 or newer +3. Apple Clang 10.0 or newer +4. Microsoft Visual Studio 2017 or newer +5. Intel 19.0 or newer + +VTK supports the following operating systems: + +1. Windows Vista or newer +2. Mac OS X 10.7 or newer +3. Linux (ex: Ubuntu 12.04 or newer, Debian 4 or newer) + +Building +======== + +See [build.md][vtk-build] (in Documentation/dev/) for build instructions. + +Contributing +============ + +See [CONTRIBUTING.md][vtk-contributing] for instructions to contribute. + +License +======= + +VTK is distributed under the OSI-approved BSD 3-clause License. +See [Copyright.txt][vtk-copyright] for details. + + +[kitware]: https://www.kitware.com/ +[kitware-support]: https://www.kitware.com/support/ +[vtk-banner]: https://gitlab.kitware.com/vtk/vtk/-/raw/master/vtkBanner.gif +[vtk-build]: https://gitlab.kitware.com/vtk/vtk/-/blob/master/Documentation/docs/build_instructions/build.md +[vtk-contributing]: https://gitlab.kitware.com/vtk/vtk/-/blob/master/CONTRIBUTING.md#contributing-to-vtk +[vtk-copyright]: https://gitlab.kitware.com/vtk/vtk/-/raw/master/Copyright.txt +[vtk-discourse]: https://discourse.vtk.org/ +[vtk-doxygen]: https://www.vtk.org/doc/nightly/html +[vtk-examples]: https://kitware.github.io/vtk-examples/site/ +[vtk-homepage]: https://www.vtk.org/ +[vtk-issues]: https://gitlab.kitware.com/vtk/vtk/-/issues diff --git a/venv/lib/python3.11/site-packages/vtk-9.5.2.dist-info/RECORD b/venv/lib/python3.11/site-packages/vtk-9.5.2.dist-info/RECORD new file mode 100644 index 0000000..12ac981 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtk-9.5.2.dist-info/RECORD @@ -0,0 +1,642 @@ +__pycache__/vtk.cpython-311.pyc,, +vtk-9.5.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +vtk-9.5.2.dist-info/METADATA,sha256=lPNapoeshPtWCQKi1bzC042KsA877yoYKVAU2AjV70g,5560 +vtk-9.5.2.dist-info/RECORD,, +vtk-9.5.2.dist-info/WHEEL,sha256=_CFvICYDmZlAYHt8L7Zn3n-BGLj8dkZLQPp22Piy5JE,151 +vtk-9.5.2.dist-info/licenses/LICENSE,sha256=ESMkSL6C4OosLGYhnC42OJ9CJJiUBw7hDFSf8YL8CLY,1761 +vtk-9.5.2.dist-info/top_level.txt,sha256=Gxq0Of-stJSS1j-cdyLA3fmFOYIbRoIMsW36VfDQMVA,35 +vtk.libs/libXcursor-1a09904e.so.1.0.2,sha256=zYPWKX0u5JPWCaJV-IVkajAb7DVShaHMWoac2jx78hk,55585 +vtk.libs/libXfixes-d274cb03.so.3.1.0,sha256=OQOO-MxGKhvT791Br8e4Yi1CMmYJ6OXSGm0AhCctB8o,26345 +vtk.py,sha256=WXRv7ya35adPMgog2iQzuzGhd6uUm7yBn8CZDIqHmSo,6897 +vtkmodules/__init__.py,sha256=oBCwPlaBRSq_ox4NUYkduHJLJVjku4PLjbPP9GxkL10,9211 +vtkmodules/__pycache__/__init__.cpython-311.pyc,, +vtkmodules/__pycache__/all.cpython-311.pyc,, +vtkmodules/__pycache__/generate_pyi.cpython-311.pyc,, +vtkmodules/all.py,sha256=DFPJ3Eey59J70bQZojGat9JAumr6yEaZBhnzKQkrvOw,5310 +vtkmodules/generate_pyi.py,sha256=78EzM-bKyCTCAqooxFqUj20CZX1DFnl9sLyUxv53_EI,22109 +vtkmodules/gtk/GtkGLExtVTKRenderWindow.py,sha256=JNzkH-yWqPz4cgFGRk2rx3NguLjcTbFg-8QqQE9pjaY,18145 +vtkmodules/gtk/GtkGLExtVTKRenderWindowInteractor.py,sha256=3tgE525xNGPmGgSz5qjppfWrHf4ee1xus8RSLT0gAwI,10249 +vtkmodules/gtk/GtkVTKRenderWindow.py,sha256=lrf9-2Xqb7CNmfIK4oTX14CASsAzhnpzZjawbBVsBBE,17951 +vtkmodules/gtk/GtkVTKRenderWindowInteractor.py,sha256=Sx7z4EoDi5dRmpjrPdob0BfroJeYu7EOsk7S-VXrwIY,10208 +vtkmodules/gtk/__init__.py,sha256=8ounXAz9WUNqlTvYc6ToiQ5ZTz4VJN-glVsZgJq95wQ,170 +vtkmodules/gtk/__pycache__/GtkGLExtVTKRenderWindow.cpython-311.pyc,, +vtkmodules/gtk/__pycache__/GtkGLExtVTKRenderWindowInteractor.cpython-311.pyc,, +vtkmodules/gtk/__pycache__/GtkVTKRenderWindow.cpython-311.pyc,, +vtkmodules/gtk/__pycache__/GtkVTKRenderWindowInteractor.cpython-311.pyc,, +vtkmodules/gtk/__pycache__/__init__.cpython-311.pyc,, +vtkmodules/libviskores_cont-1.0.so,sha256=XHnFbkLMjCyYowOHoq73ATPeWX9vVc1rdHPRzJspcBE,16167192 +vtkmodules/libviskores_cont_testing-1.0.so,sha256=0vTYuVQUZkVhHFmkMb5ExTjVBWCIf-_wPVnSrrBvmdQ,742104 +vtkmodules/libviskores_filter_clean_grid-1.0.so,sha256=XncdTUUqWawnO2ACHl-yuDR2WwiKmOqtmdj5oGOT8xg,412328 +vtkmodules/libviskores_filter_connected_components-1.0.so,sha256=Zu7WtBTFpWHKAlwaX150t30keqZtmI_gEio4Oz6CalQ,410840 +vtkmodules/libviskores_filter_contour-1.0.so,sha256=am9_m9DiGKtj3MDfnQ64osknbqFlet-IBgIDW_FsSNk,11083560 +vtkmodules/libviskores_filter_core-1.0.so,sha256=ejY7AjdR2UcBR9ytMuuSke68S2gUvL1KTDTNLhDrqIo,476504 +vtkmodules/libviskores_filter_density_estimate-1.0.so,sha256=4nS2zGyjGmvuyjhcUDeW_2_IX_oP5hKiPvoIjIISi2A,1336760 +vtkmodules/libviskores_filter_entity_extraction-1.0.so,sha256=yAQZfY3HJ3f2qO0rtgwPrl5XPFSCcaJ1oMxHq1bMa5g,3276176 +vtkmodules/libviskores_filter_field_conversion-1.0.so,sha256=tWtqpEG0EwMtSlVcorPOMahDoCUphdMMsME7f1Hg45o,1242296 +vtkmodules/libviskores_filter_field_transform-1.0.so,sha256=4sBEgoP6E7GKXrdW_XN8HNRuWqWvPMTDLDjL9sUBgNc,1506752 +vtkmodules/libviskores_filter_flow-1.0.so,sha256=cYRL5g2pBq80wj7ooxrcN4J0aUdXx7N9Io2ZX2teBZ8,1442712 +vtkmodules/libviskores_filter_geometry_refinement-1.0.so,sha256=r1Fq7pJIEK8F5NjcikPkWjNDIefAEfDdjnvyYWrWn9Q,8496304 +vtkmodules/libviskores_filter_image_processing-1.0.so,sha256=5jwQ-Ll0jGJXUuf6k14LuLLhkaIUlvRzLuMc_Ctu4hc,588424 +vtkmodules/libviskores_filter_mesh_info-1.0.so,sha256=YdC6dl3dWPJLR5EbBeALa6xoMHikhkj4h4PkBckq6FY,10391888 +vtkmodules/libviskores_filter_multi_block-1.0.so,sha256=RDXuLkPemA8XTMxxszWMOVVNyE5uhwoGq9UVrnkkz14,185704 +vtkmodules/libviskores_filter_resampling-1.0.so,sha256=y_HTD53d22zlBhtICSwpOQnb6ON_84fcXegSLBVaWeo,2240936 +vtkmodules/libviskores_filter_uncertainty-1.0.so,sha256=9mIZ_EFBXwXb4lzdqeWVjKZJN15UyRog-9DhdG8yrHw,195872 +vtkmodules/libviskores_filter_vector_analysis-1.0.so,sha256=Opa45F5Vo_QI76eFzigqVe9x4trx0Ont7WKrOkD8WVk,15360248 +vtkmodules/libviskores_filter_zfp-1.0.so,sha256=BPVZJBS3JHaCW_yP6rUoNCDCDzyEceRa0GxVO4f9lGM,340272 +vtkmodules/libviskores_io-1.0.so,sha256=wnUR0eo0WjarfSZH1B0CKOAWVbzGKRXLNrv4y4Hc_0Y,931280 +vtkmodules/libviskores_source-1.0.so,sha256=QxGUlLk0hdUQAvgONGM6fOK441GM9H1gYe_ZGpwrckI,726712 +vtkmodules/libviskores_worklet-1.0.so,sha256=HD2Gd34GXbPg86fgCTUQM5c9MTTww1TlQfY5td1zQZc,463336 +vtkmodules/libviskoresdiympi_nompi.so,sha256=CJ3LavEqRhvvoh_gDlK97ucrn0QoDwk273hPkFmgJTM,136104 +vtkmodules/libvtkAcceleratorsVTKmCore.so,sha256=fUGIfGE6WrGIAjuzRStdtZR6exE_OJHnhz4mu2KF2tE,1735864 +vtkmodules/libvtkAcceleratorsVTKmDataModel.so,sha256=sdpriex-1QjfWGBfjIwiJam8LN-OwRAhYzzjl1tXY1E,1106872 +vtkmodules/libvtkAcceleratorsVTKmFilters.so,sha256=0GUqWtDmGHAix55acv7RCDewXYgA5ovRWyKUCwOIFiI,1160256 +vtkmodules/libvtkChartsCore.so,sha256=4Wa72LuLDVqjKmcpjkLDCjheoTA4EIZEHINuNH5MaKY,4620008 +vtkmodules/libvtkCommonColor.so,sha256=IP7WQm9T1IV2kwe0fCP5gvRL0c_YkCtKMM5zpJVSk-E,333816 +vtkmodules/libvtkCommonComputationalGeometry.so,sha256=ZjT0XmWEtlUjXV7rSMaljudXkNvrVvFX-lB5gbIpgGI,276056 +vtkmodules/libvtkCommonCore.so,sha256=IAdMHpz70vE9S1EuJ2UfERSpecwdZZksf7GPICWKvk8,66530808 +vtkmodules/libvtkCommonDataModel.so,sha256=8DDh9BXJ_XD-eQcqfbU3jzBoQsE1gXev2JXd-j8oNh4,10087896 +vtkmodules/libvtkCommonExecutionModel.so,sha256=3SBhaeUTUkvgGfWjY2A5ZhucI6inJKsHceUd63q_wH8,2046424 +vtkmodules/libvtkCommonMath.so,sha256=oM8K_jZ8k7oAyvdTzDGWFeW6Mu2N19H08vyBXeNOzjY,360280 +vtkmodules/libvtkCommonMisc.so,sha256=YferCr0PsEJlgDi3BQq0LViMHBELw2KHjJkp2Hkb6-Q,7990424 +vtkmodules/libvtkCommonPython.so,sha256=srNlTZ-UD_Xa4FtVJQzAGp2cCGWSMLfp9WfhWNkx6t8,36360 +vtkmodules/libvtkCommonSystem.so,sha256=cDiu_dPYrrPDQMzENkk7s0PIB_zE_lvC4DJAETX7Y0I,156584 +vtkmodules/libvtkCommonTransforms.so,sha256=xFswfjT5Wwj6eN-fmdQZ0JinwKVO0rsbviu2mCDaRdg,724824 +vtkmodules/libvtkDICOMParser.so,sha256=Y3kesnnyJFidMesmegGnoDcXeuNpIX9shPSKNgUUr1w,119960 +vtkmodules/libvtkDomainsChemistry.so,sha256=TxP4tE7-KuPpHj9IgfRYImm1ounnIHA9_XRzZv2HAY8,356440 +vtkmodules/libvtkDomainsChemistryOpenGL2.so,sha256=VML6tTl0kPrFwBlZRmTUrmFpznlTMF7SwZW1kFPAD9M,78401 +vtkmodules/libvtkFiltersAMR.so,sha256=wjSsw3Bdi-C5hGf4_a19ZguyqfEy89Z-6EIplQOH6qs,220648 +vtkmodules/libvtkFiltersCellGrid.so,sha256=SG-cvJep-73vUjD28N-lcOqNUSNgXJsYJh8D8UppL_U,1562896 +vtkmodules/libvtkFiltersCore.so,sha256=OcusbS4PI2Mwkj-1tGuMKvIgbgf26VshBdiLFLOSRJ0,21702376 +vtkmodules/libvtkFiltersExtraction.so,sha256=IyyOwiny3vZHYOt59ue23Z9zIbd_egqtCgri8k92eXg,2140824 +vtkmodules/libvtkFiltersFlowPaths.so,sha256=fGFD1flospsUt4f4vRAEq2eXktyN1MmCV-apJuFm9jQ,2541928 +vtkmodules/libvtkFiltersGeneral.so,sha256=EIDosY7tvAe2tnmOhYKKhLOcyd_T2D3HpEh74HZR2iY,10262264 +vtkmodules/libvtkFiltersGeneric.so,sha256=IB8OZsnMP5Q9FRGV6bq3Ab1Sgszh7EFC4b7Os-zvYPM,251472 +vtkmodules/libvtkFiltersGeometry.so,sha256=h9_fkuUQcL71qgBUVYaXyxYKhIgut9iOZDe9NFtD_AY,2125648 +vtkmodules/libvtkFiltersGeometryPreview.so,sha256=7t71M0sTBZQq45BGC4XY26p2rJGwioa0GnqUfz1pi-w,415392 +vtkmodules/libvtkFiltersHybrid.so,sha256=rR-W8IcHZ4UbBJuZOt6BAv0nwQkfq_uAl_5ZBuHedws,1411264 +vtkmodules/libvtkFiltersHyperTree.so,sha256=1ayob1R5FJ-feLmyXlxWJ7enTxzKnll2vDhdmNqHqbI,819472 +vtkmodules/libvtkFiltersImaging.so,sha256=Cgjhq9Str8mzGnEQjQxtJRlymD3AfAglAtsj1GKgUks,146080 +vtkmodules/libvtkFiltersModeling.so,sha256=vZT9Dvj594f6TYZedioNWKhxwnw3X9ejK_sUm4FmP1g,1324696 +vtkmodules/libvtkFiltersParallel.so,sha256=AWyAE75dtlAJdUCD1b2FQZ1ecduo3CDSU-ETl6E5FG4,1588936 +vtkmodules/libvtkFiltersParallelDIY2.so,sha256=WRHVBjZOGTBlupFUOAsR3mgvUVU1Vpkkn427SIpquH4,1760928 +vtkmodules/libvtkFiltersParallelImaging.so,sha256=Lt0Xw763kID5ZN9DrNhV8GJgmr-kR3aXaGKZog-ETPI,136792 +vtkmodules/libvtkFiltersParallelStatistics.so,sha256=ZxzJnC_iXhT8CfnspyE3eK1-iBd9qpi9sOBr7dioOzA,269472 +vtkmodules/libvtkFiltersPoints.so,sha256=DE8r9K1gXCmV676Drnu6bFlDHGwHkIX7dyLhLazpK1E,2831712 +vtkmodules/libvtkFiltersProgrammable.so,sha256=OreIounYdGrjOwE6BqvDjtXaNEgAhAMEX-YG06uCxls,82784 +vtkmodules/libvtkFiltersPython.so,sha256=xxvQALRmRnVZa8CCXgCnjTLMWVkVExXt1k4M3vbggXI,48080 +vtkmodules/libvtkFiltersReduction.so,sha256=rseEVoWKSPzJbIVa9iA83OkewFmsFNbl68Kh5pWyKmc,3188992 +vtkmodules/libvtkFiltersSMP.so,sha256=3NuK7degE08jlXUQUdcAKNhKbL4n_A4RwWohZqmQ7ZE,200272 +vtkmodules/libvtkFiltersSelection.so,sha256=5vIY6PYiSEyeRqiwO-zixDo2QZolTXlMsL4GrTiI75I,104048 +vtkmodules/libvtkFiltersSources.so,sha256=bKgES-i9CwNg8yXbLADl4CNwSGNcHGP2foxokYUp76E,1175408 +vtkmodules/libvtkFiltersStatistics.so,sha256=89uagAYbz6WLS2yaxzRo8bycm0bp7g-xBmcj-DLaRpk,1294816 +vtkmodules/libvtkFiltersTemporal.so,sha256=QzJjK6FdxBV1cnAPp8MzMG-ygDC9JslGtC_DsWYewyg,510240 +vtkmodules/libvtkFiltersTensor.so,sha256=-bxTSxElf35SptpR9cfQb6b8Yd2MfRhc-vfKsjiZCWg,100216 +vtkmodules/libvtkFiltersTexture.so,sha256=La3UzlX5MIEErumhOwpioXVw4r9L69GRTYdf-SBXuh4,162168 +vtkmodules/libvtkFiltersTopology.so,sha256=P1grENlzd8VLAJRRO55-OQNBAe-nE0aE9bYRU7kT1WU,56184 +vtkmodules/libvtkFiltersVerdict.so,sha256=SMCalZBvQaBeiTODT4q8ojaXe-UyARWee8khhqHaHmI,321088 +vtkmodules/libvtkGeovisCore.so,sha256=-4ztHDxtOCQLLF8xr35B8kcJvR4e4pOs5NP_fX7yyTg,71528 +vtkmodules/libvtkIOAMR.so,sha256=02HWaRcpbKw2Q-8Lyxgf1p1l-3QTTfQwhKvMMgODIXs,554768 +vtkmodules/libvtkIOAsynchronous.so,sha256=BVzGm7laQ1WeXgw0Mk2tTGsIeXXqprTB_fGUT66Fe0o,59816 +vtkmodules/libvtkIOAvmesh.so,sha256=QqZMrf2rLaqc3WQmptRMk3o-mfyXGug8HkvWTIkVRPk,91744 +vtkmodules/libvtkIOCGNSReader.so,sha256=QkWdSk9Uf_0OsaVGKyhvyat6O_T_uJ-q0-dik4K1z1A,776672 +vtkmodules/libvtkIOCONVERGECFD.so,sha256=x-qcu6ou2ToAIre_8rJLEIBf6ldS1F_RaiQwFCC6EOI,174432 +vtkmodules/libvtkIOCellGrid.so,sha256=tAiNQr-KkHdiEeJ_sSDV3i9wSf_JNmN1hXftk-KKHsU,579896 +vtkmodules/libvtkIOCesium3DTiles.so,sha256=ysXip8n5H6PN6e-KzTolnNvBlGZjnEp5LOwPl3qwV-Q,451408 +vtkmodules/libvtkIOChemistry.so,sha256=44lPYq16sVYZH_UYsbhLZsNSq6ipOu3ILs3ujBsNUew,318984 +vtkmodules/libvtkIOCityGML.so,sha256=93ujDStGFP3XVDL9ufJQwrRN0LNdMAFxmg-8sPnVIc8,151320 +vtkmodules/libvtkIOCore.so,sha256=-vdh8e9OGfJVapmzJ1_NHwdzCXbNd2E-liF_PCgDYqc,663832 +vtkmodules/libvtkIOERF.so,sha256=YRurCalsg1ZVLcN-ohNLhHjPEk4SQVpLmW6kbdxPuWE,156616 +vtkmodules/libvtkIOEnSight.so,sha256=L0S_gQk3AcYm1ROXEWqxCfZcG3aFlu5-KLUHeNztcQw,1181544 +vtkmodules/libvtkIOEngys.so,sha256=NroLICC_h_F1HE0eJ1p0LaZe3904-IzrU0iX2Mw3tDo,68952 +vtkmodules/libvtkIOExodus.so,sha256=jOHy64xK20KS0g5PpRQ_GdEfxaIhRmd20dYmFSe9Ph8,770624 +vtkmodules/libvtkIOExport.so,sha256=F7AC2CqyXXlqHN9ho33R3fec6v4oy1IkZ4wKBHo72gA,932200 +vtkmodules/libvtkIOExportGL2PS.so,sha256=vF12EuOh5RyZqAiA301qvAGd7XOpUjIjlvmlS0UMlkM,89929 +vtkmodules/libvtkIOExportPDF.so,sha256=9YgonyDMj4SxtSb9_iVMfXSN_J_bYnPKgqBPN8b0CYY,142608 +vtkmodules/libvtkIOFDS.so,sha256=gIqdsfwmcjbP6cDsrkPv8tHX8DhIefwHLDbQA3ccEgY,212992 +vtkmodules/libvtkIOFLUENTCFF.so,sha256=W5Af2sLIYvX7dmhMjM5oGs38DHj6raYeP2Try-K6hsk,252560 +vtkmodules/libvtkIOGeoJSON.so,sha256=7A5RaKrd_OKbGiiNVhjWnp8e6hRYoa5T0Tk6xaLrxmw,168416 +vtkmodules/libvtkIOGeometry.so,sha256=0LT_-bq3viFvbKOoxWMJBCS3Pb54tzZMs88Vz0kEHDM,2704984 +vtkmodules/libvtkIOH5Rage.so,sha256=MgzlHDT7ar46ORFK9vr2knHH7e3yjMHDeMNWBi7ejSg,124184 +vtkmodules/libvtkIOH5part.so,sha256=JNWWanPdZxP3Mhl8SBFQJmkrH02B56TtWh10RPlGoG8,85296 +vtkmodules/libvtkIOHDF.so,sha256=mVL8kzwHudLNSgoABotIdP8zOGuA3cocD7-OY-FLYyY,705536 +vtkmodules/libvtkIOIOSS.so,sha256=GJ4XBkB46rsZeuYU9esS-81Etll9UD-9q9Gm1w246QQ,1344992 +vtkmodules/libvtkIOImage.so,sha256=tOoiFC_F1eTCVJikpcCwSWIuQ4kZZDkqPjPjEdRsY1E,2182872 +vtkmodules/libvtkIOImport.so,sha256=8iHs0ChcsADxc7cdnz-nJNC2PHX1ZCvAbNKrJVl1wTs,482304 +vtkmodules/libvtkIOInfovis.so,sha256=k_ZN9iGCatbwm7bn27j3EGo89ljOKOZZgi-72TCKb8A,601584 +vtkmodules/libvtkIOLANLX3D.so,sha256=6Xs0Ex9LdOMa1f-pZh0Jai2DdvoBXcZBmfYIgMuJNaU,187264 +vtkmodules/libvtkIOLSDyna.so,sha256=l7Q5tSFEyIvkcO-Y0DCvPKr48u4A4ws3zziYvj2L5vE,410928 +vtkmodules/libvtkIOLegacy.so,sha256=H40_086MVsecPnfgRWTMxGN5qC0bcHTd5hzYqrJc8yQ,1028344 +vtkmodules/libvtkIOMINC.so,sha256=5V6-xuZFga5HkkdFy057IfREOXH_xfHJUrD_reCwxzM,590744 +vtkmodules/libvtkIOMotionFX.so,sha256=UH5mL-dhAVYzSL2OeVStqexEDcgpt2-vOM831pK27wU,251624 +vtkmodules/libvtkIOMovie.so,sha256=PShvKbNvn2UU4DLfhwCNRtxKgcsI8-y6OphnYtGc9zQ,37960 +vtkmodules/libvtkIONetCDF.so,sha256=QXdbkW5XARcrlk408tbNhGwhyXIEVnxCbkvOhpYp35s,967512 +vtkmodules/libvtkIOOMF.so,sha256=5CFOPBUVZlLk5uJOZOBIp_c93uiCcFxf4_bQDouSJfU,227936 +vtkmodules/libvtkIOOggTheora.so,sha256=pf_c_8DIf5lgOlZ1Evi8llE8IwTCCVTCMq8ngAfvH1c,67608 +vtkmodules/libvtkIOPIO.so,sha256=Shi-I6JXGAI0h8XouRjzzhu5tc60FHP-pFQEi_SHjhI,323408 +vtkmodules/libvtkIOPLY.so,sha256=wzbPW2e9KUqqTYX8LrFnFiaPP3d7bBL8YiHqBqMuMhU,155864 +vtkmodules/libvtkIOParallel.so,sha256=gPPYbrfR08XD3tkPEm_jRtHNAVa0unZB_H28UCQogwo,668952 +vtkmodules/libvtkIOParallelExodus.so,sha256=rcMx8ZW07ol-kKcDXy0-MVT6Cr-lc6tf_Duj38gHe8g,170240 +vtkmodules/libvtkIOParallelLSDyna.so,sha256=tRNhGAAwiIQ4JpycCK-ipP56bzyrcDsO8mJ329mmP-M,70616 +vtkmodules/libvtkIOParallelXML.so,sha256=fb-tlG0E9-Ju4iFDuh4SxyPkg-_ipak4lxkJNTmnsZs,362408 +vtkmodules/libvtkIOSQL.so,sha256=13SLCn4bVfXWmoSwiBHU1HIeihZ_SPN84-eJlriQ0To,380144 +vtkmodules/libvtkIOSegY.so,sha256=sqJY34PipaLz-1Y0I1ONR_ejGlxT8ESM1yG3eXkUI60,80552 +vtkmodules/libvtkIOTRUCHAS.so,sha256=aUDYYVykSlgmSP-b5FE_VqLIuacye3q1drOIoNagiH0,114104 +vtkmodules/libvtkIOTecplotTable.so,sha256=mwwCPbQ4H1XjvyzH5lCxLCYdF6o0vASdjBFxnmdbWCc,76112 +vtkmodules/libvtkIOVPIC.so,sha256=jx6t6GnyrAedlCIy1dibFl1FECUnOYKytSiT1qRqiJY,74984 +vtkmodules/libvtkIOVeraOut.so,sha256=pKwhZWuBUAZiL7VkkvWOqvGLWJl6qhXz-qRh5xu8VGQ,97928 +vtkmodules/libvtkIOVideo.so,sha256=g2pSySRAeDtnV9KozithhdaEuIZR03fiuw8WxooBXFA,74328 +vtkmodules/libvtkIOXML.so,sha256=Dqx0Aed_FwpdjYaabmKlGwSRgES3Kd1gT9RMvbik1uQ,1570680 +vtkmodules/libvtkIOXMLParser.so,sha256=HOCBq3bIHO0FamcLBr6G7P3RXA0wFWJPIg0KSQH0dGA,133096 +vtkmodules/libvtkIOXdmf2.so,sha256=afrchjs2WGiXNaeVLdEBLvZNqtFN-VejcMoD91imU0I,336808 +vtkmodules/libvtkImagingColor.so,sha256=X3UmPKXAd-D7mTr1BZ6yLtHhCQpPfKSmVFvLRi3QIKw,442464 +vtkmodules/libvtkImagingCore.so,sha256=EjrQ1_3wXT8wrYVfFnL-hklSl9TZLyynUcJJs5kpHjY,3480688 +vtkmodules/libvtkImagingFourier.so,sha256=omAFNXYScjdirJiAeihJdDwas3sHf2QtYuzGWp06o4k,198112 +vtkmodules/libvtkImagingGeneral.so,sha256=nWEK0dfOiz9xgUgYTsNDhfLlEOrEho3KWezNS4Tyi9s,1083080 +vtkmodules/libvtkImagingHybrid.so,sha256=jE1_dRbXLAhT4COKvGwWyBH012TpT4kiYIYlPo-lZM8,726336 +vtkmodules/libvtkImagingMath.so,sha256=BU9dBzcxc4KeiGAqr6pAOfTqGFV91Z9EpeenEbx91ec,334064 +vtkmodules/libvtkImagingMorphological.so,sha256=YpxOicuED8T26_O3imsQEBVAuhucexTkv7VS44-bjog,667512 +vtkmodules/libvtkImagingOpenGL2.so,sha256=56fKvFwjExCwZd92FDuEo-jT3OWjnHZpAc2PLQ9KCUY,65473 +vtkmodules/libvtkImagingSources.so,sha256=gcbu76FV4dXPKag_YlGOdMewDB3ngA1on69QO-sUQZU,353232 +vtkmodules/libvtkImagingStatistics.so,sha256=ou8ZfUIHEhmeSglFOYhvjlPrJa5Gb2oJl_v-kfBNkTg,198776 +vtkmodules/libvtkImagingStencil.so,sha256=vEpdz-vVC6GfWm6BxrBvDjjqAO4AQLRjV2rN-jK6n-o,240824 +vtkmodules/libvtkInfovisCore.so,sha256=qETlguZi1jLqrhYDSca_-DFNzXhCA8DniZQV-DW9lzk,1370440 +vtkmodules/libvtkInfovisLayout.so,sha256=CWonwfRXlCn7uidh-RVmuxe3RB7LRB3IiHc_Jmvx-WM,649872 +vtkmodules/libvtkInteractionImage.so,sha256=zIVbOa5119G7wYcKr3o56uLDFu2yFbvSCHIE5pxnTNs,125256 +vtkmodules/libvtkInteractionStyle.so,sha256=J7epkkjbclDlV_jy7fDv34-L4jtqbNcfmQK_u1GQXpI,1070016 +vtkmodules/libvtkInteractionWidgets.so,sha256=4GYOGPXsPSF5lgb4547-HFOp-rP18HfPAzZrkSgXOXU,8958080 +vtkmodules/libvtkParallelCore.so,sha256=eE27uKG1A4xzF8xfQhgRKpvoNsMWt4nKuqD6gbb2apo,472464 +vtkmodules/libvtkParallelDIY.so,sha256=IwRdIJcZlw2RdFQPdsCCAccBoMn7_AWrc9Q-NMV26nY,1489840 +vtkmodules/libvtkPythonContext2D.so,sha256=PAzB84bpIIuqsrVk1T551lak8l7PWibR-1o_roPhjtY,42024 +vtkmodules/libvtkRenderingAnnotation.so,sha256=_k4S0O4NpxVQrIRsOnagqFTo8uS8wbjy0QMtR9sRBJ8,4317256 +vtkmodules/libvtkRenderingCellGrid.so,sha256=zug_p_KL6v--2mTPSoMs6cYDdsGYYlsywa5rAbDhNW0,249673 +vtkmodules/libvtkRenderingContext2D.so,sha256=DHVQ80-gLXswZnQ40qeWSOy-eXyLwKmk8os2Z3IuJOM,1104208 +vtkmodules/libvtkRenderingContextOpenGL2.so,sha256=0UXKZVkjNDUAaW8hy6ea9IX5i9RQD3PircAJ_moFuFk,429281 +vtkmodules/libvtkRenderingCore.so,sha256=ofCwRJWcP0rTVWL5T0XG-kVpBe8oysWDp5nRL1Q-Glg,8644424 +vtkmodules/libvtkRenderingExternal.so,sha256=VBU6f1nPR5n8HO0QvljHIgRA9Cy2IaL4oUDHM46tak4,210617 +vtkmodules/libvtkRenderingFreeType.so,sha256=QhNUwkvSUVDRdHOKwgzB4Of0IVK5vZbnYJKzXh58Yv4,745496 +vtkmodules/libvtkRenderingGL2PSOpenGL2.so,sha256=8hbtUzFaUFfse88fRqhCNWloNBcH54xEJoU1XbQvMBE,107145 +vtkmodules/libvtkRenderingGridAxes.so,sha256=PjuWOvD4VE7LgGFJb8yz6fQm-YwdltsDyAudy7DFy38,160408 +vtkmodules/libvtkRenderingHyperTreeGrid.so,sha256=z0Y0YQvQzmAk--pTcmA5ctRnGPvru1M-j86yEUP32Ws,62952 +vtkmodules/libvtkRenderingImage.so,sha256=rCdPStkm9yf8LNHxy30klDJjr6ZEnXQllTXI_VAssV0,473848 +vtkmodules/libvtkRenderingLICOpenGL2.so,sha256=is46sXyFTZlwHGlyglg8m1atp2wytL0hF4C-KHef8bM,849569 +vtkmodules/libvtkRenderingLOD.so,sha256=yXm6v-ibz9DH8vR8I5PAXulODlgKMrb2-LoBEHV23Ak,76064 +vtkmodules/libvtkRenderingLabel.so,sha256=uaWtR4QaxJLxqcxpo-d8GknBhwJKMtDVTihFv4xFIkw,1093904 +vtkmodules/libvtkRenderingMatplotlib.so,sha256=2lAIIVOCjtz1t-Sa_Pw2G4j3cp7rEeX2ojxYhc2FD7o,132464 +vtkmodules/libvtkRenderingOpenGL2.so,sha256=VZsf--XFz-jOlQOdQO5J_Icm7PVNo7Cphg8YcoLwrJw,6627753 +vtkmodules/libvtkRenderingParallel.so,sha256=QyriGszqM_-ov5Sdf1yfkF4gDhd2-KQen3HtXA6AIlk,393409 +vtkmodules/libvtkRenderingSceneGraph.so,sha256=tXzCv0VlpnOcaHZANd0mJU7cGE-WCQw6Neeb_92UM3E,109600 +vtkmodules/libvtkRenderingUI.so,sha256=W-j6sw3tRf59A4IZV1XI3yNO_WJt6iyPwjwIo9yD0sA,228552 +vtkmodules/libvtkRenderingVR.so,sha256=581dU1ljYo_ZnNKz1lXiF9C5YXJtSS6gHK3Yk-qAcP4,570185 +vtkmodules/libvtkRenderingVRModels.so,sha256=2iBT57zjwqszHHRAJadI_cUe7H39-SaCTAj6z_5BSKA,333145 +vtkmodules/libvtkRenderingVolume.so,sha256=tBoUe1yDGw0vpzPFL2MLUhyeLjcy32Nxx7VmduJ4lYU,6496480 +vtkmodules/libvtkRenderingVolumeAMR.so,sha256=5ao1PKnL5alnhB0u6cXNMQgmsRArzOlMOPyInTqMVpY,96105 +vtkmodules/libvtkRenderingVolumeOpenGL2.so,sha256=rFwrQs_5hqw3nan39WzdljzIKRb8TFraprml3HqD2Ws,1145985 +vtkmodules/libvtkRenderingVtkJS.so,sha256=CPXfBl5_BKmmGLZvbSBHM0Q51Ea5X4YXuX3_Na4u4ec,190688 +vtkmodules/libvtkSerializationManager.so,sha256=ewrLuxifsBEpC8UTctDq5uAeHEnJgLJVHqqFKZmiTS4,299905 +vtkmodules/libvtkTestingCore.so,sha256=isLLXlVvskgHkD4W7CEYSzwtHcid5Xsn6xkfkS0yTJY,5956584 +vtkmodules/libvtkTestingDataModel.so,sha256=oqQKiS_v86QrW8rpnLzHotld15lV8PBMd0MiPGMK-EU,82256 +vtkmodules/libvtkTestingGenericBridge.so,sha256=qXpPn3AV72HcFLylkU3XADOnZcN0fjCW3sVMO523-18,144960 +vtkmodules/libvtkTestingIOSQL.so,sha256=ZC9kxLxE3wv0MEYYCXbYLSm0HDwCjxjyuj3GfP9O2hU,18400 +vtkmodules/libvtkTestingRendering.so,sha256=SLyjiBhNTcgX8-GAY_bneUH2i1eWxSFkM98pNLZgpHc,163688 +vtkmodules/libvtkTestingSerialization.so,sha256=SllO_U5Pz1Ua0r2T8ev1sKry7IphpXnRe5ofuZ5XBCU,278633 +vtkmodules/libvtkUtilitiesBenchmarks.so,sha256=Vr1vsn69oCjhsp2knco8TBOSaG9QCl7rvK8zbpwJU8w,68233 +vtkmodules/libvtkViewsContext2D.so,sha256=ejzXo_lX_t_b4klhXY7xfP2gOEsvMqFQlB3PSK7ElP0,205232 +vtkmodules/libvtkViewsCore.so,sha256=4xzpXfyfPSfXLDGmz2jQ646oj6a2fxNK3s4fvyH_q54,662352 +vtkmodules/libvtkViewsInfovis.so,sha256=i2hgyCdkOiOFb6QbV39uZXioAcJWXFLySHwk1bZKn5M,1013672 +vtkmodules/libvtkWebCore.so,sha256=N6a5_RZOQW7GUuboZtqfSBrVgrChQsE4F3tLwUb0b34,329072 +vtkmodules/libvtkWebGLExporter.so,sha256=QyPpKWSdYfP3uIdGiukjb70FvNqg_qbKGau5c-DEx1Y,248456 +vtkmodules/libvtkWrappingPythonCore3.11.so,sha256=RX7RZaLyu8ZicaYiTG5eRWUQ5W1tQU70jQLssQKDzi8,334536 +vtkmodules/libvtkWrappingTools.so,sha256=npltxuoTNdJEK-n3WZRWBRqk-0lV9Z5KS5lfP_9Ly9I,388880 +vtkmodules/libvtkcgns.so,sha256=2Tbk_yK0SZQHc5BJIWTUJoc0L-cEGxovWPkvILcxfYY,878680 +vtkmodules/libvtkdoubleconversion.so,sha256=3NrJVQwxBzFZ7qtgYtW6P2yGDoBiJKiNy6Ol83uJdPo,82808 +vtkmodules/libvtkexodusII.so,sha256=PASF9q7aHmvo_stuXuaOCn1WWLFJHNf2_KgfgCRAd_8,597848 +vtkmodules/libvtkexpat.so,sha256=2AEoYNy5TiCOJ5Q-Ibiek_1baXPPK71fEZXDLUqLPkQ,224376 +vtkmodules/libvtkfmt.so,sha256=Ca1cL9Xv44Yi99Nbl4lQu4OACz28X4JA6i9EpWdHq_g,272416 +vtkmodules/libvtkfreetype.so,sha256=Nea_vqUDdykBOZPZ4NbOf8J16MEkQXicybEBSS8O6P0,794936 +vtkmodules/libvtkgl2ps.so,sha256=zOh4alU2ienDwMboVt9xUh9WuOmpsUu1OQtouMGWRf8,118848 +vtkmodules/libvtkglad.so,sha256=QRl3-CnFeas2QvddTRlU7D_695j-l3uJIRXFotIAquI,894856 +vtkmodules/libvtkh5part.so,sha256=MqcTE_sFqZl_VZdb_nYz80aAGyG_YtAx21aSY0kwav0,124160 +vtkmodules/libvtkhdf5.so,sha256=hS48ff6OGoqEFBJm4-nD2VbvZak0y1953rLlF5qd6Po,4729232 +vtkmodules/libvtkhdf5_hl.so,sha256=AvBaB3VD5t8BTlkb3j_Qf2TfjOPYAMK9lvqvgYyGaB8,168256 +vtkmodules/libvtkioss.so,sha256=wS5EVMHGs2FoLHe7x69MjfUCur88yQI_eZzVljLiQ24,4143872 +vtkmodules/libvtkjpeg.so,sha256=xxYg8kEp5EeaZTUL069YKlYn-qSsUxIqkvZAL_Tyv6E,526336 +vtkmodules/libvtkjsoncpp.so,sha256=3wCGW6Jj20FvBIHkBHtD-Zt6r3-UzN8LXsP2O38nbLA,426928 +vtkmodules/libvtkkissfft.so,sha256=2IXezr_1K0OEsEswSIkvdA676sVfoDhTOBMmC3HoF7g,29576 +vtkmodules/libvtklibharu.so,sha256=4HpcHui3s1rPimaB02ZsOMj_ulOYChwpJxdyYXBlQek,873704 +vtkmodules/libvtklibproj.so,sha256=1IzuxeJGPlTke7WDZj_ForpGrATo4y3E7K_EKXDd3Ro,4927192 +vtkmodules/libvtklibxml2.so,sha256=FCUNB2k6UMfTdF6UFITmcIlaLMJhStcoraMCOl78ZDc,1611016 +vtkmodules/libvtkloguru.so,sha256=U8wGboqzz-H3ImeR45sPk7mETSz51NqISOPdSf_9_0A,91880 +vtkmodules/libvtklz4.so,sha256=lLPsyT_q5mwoqcgeLHqZIINULpk5HLlITDRO014C-Eg,230072 +vtkmodules/libvtklzma.so,sha256=PO2_Kibtl2MBtX9S5hDsvFAPgMRCYlTxFZRJvrpXlQ0,208224 +vtkmodules/libvtkmetaio.so,sha256=O2HZgK6tcLxUJ7legtdz5HpUMk-u3DwFCH11zJUMskw,822496 +vtkmodules/libvtknetcdf.so,sha256=3oBp8L6Dmor7EUXScvOxcG2puy1Baputf9d3mLLio60,1243088 +vtkmodules/libvtkogg.so,sha256=7o1QZ94e3Mfl9hV-vEv4G9Y_Y-LZ6PRjzlv094Uj43k,52784 +vtkmodules/libvtkpng.so,sha256=MEi0Eyds15G88Q1ql06k58RvkRnKUgWlq6ELs1T10R8,305936 +vtkmodules/libvtkpugixml.so,sha256=Vg-AORikejYqj2MOCcZCMiA80MZo1Wr7h7Nn9HnBvq8,288864 +vtkmodules/libvtkscn.so,sha256=0hyp-utltyWRG6OxiwLENo9tfs72B1tVYGEKlAuenoI,2310000 +vtkmodules/libvtksqlite.so,sha256=uDTcFKWcvorVVmay4ldQhHZXF4AorzC_wXTgbYjC0Vg,1414888 +vtkmodules/libvtksys.so,sha256=oyLbD6DY5ujGlj7VTYpVYClLhYzce1bBt2owYXLbCbY,514616 +vtkmodules/libvtktheora.so,sha256=KVj3tSNiHZBC6gfdXYBNRXQ2X0NZQnm5CwhFhUBUE4U,264096 +vtkmodules/libvtktiff.so,sha256=LeD2hh0ZktF0XA2g8AQt5dOQGyf-Y1lJ2oQjUeN7SRc,577768 +vtkmodules/libvtktoken.so,sha256=K43vcaggQ17yz05xA_n92g1I9PiqEqzJe0t-9v7zZUw,230072 +vtkmodules/libvtkverdict.so,sha256=_oU-oHn46--MYx9U_auxhLKqerspL3FXVj1SMYzAqr4,271232 +vtkmodules/libvtkvpic.so,sha256=Mn3tOTxl-FsEqlQ0-UdaXAtj2fH8YphzJYMHi_iOMmE,126784 +vtkmodules/libvtkxdmf2.so,sha256=m8XtvwYr4uNVqHWRNVMv_4Z1sALPcYkHaVeRh-T_dV8,520016 +vtkmodules/libvtkzlib.so,sha256=WUkbur0bqZ9qwMw5U87Lm7na9Q2LFkzjqGvJTYB8_2E,125992 +vtkmodules/numpy_interface/__init__.py,sha256=sHIu_fMj5u6jEXFKt4LnQuo2-82pzHAcZJntQL0QQho,96 +vtkmodules/numpy_interface/__pycache__/__init__.cpython-311.pyc,, +vtkmodules/numpy_interface/__pycache__/algorithms.cpython-311.pyc,, +vtkmodules/numpy_interface/__pycache__/dataset_adapter.cpython-311.pyc,, +vtkmodules/numpy_interface/__pycache__/internal_algorithms.cpython-311.pyc,, +vtkmodules/numpy_interface/algorithms.py,sha256=WJvwURheWKeNm5jEXHHcPkytDap27eMgNIDKsA-J890,47160 +vtkmodules/numpy_interface/dataset_adapter.py,sha256=FQq8pLE714NYxdVftAACJZmmkpu7F1RClLoWGq8GSIY,48647 +vtkmodules/numpy_interface/internal_algorithms.py,sha256=9pSPUWqB1C0Smyz7I9gl4V6YiNt0KIiy_j3r4jmEplw,21466 +vtkmodules/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +vtkmodules/qt/QVTKRenderWindowInteractor.py,sha256=6KXiSB0tHUpGATWvA-QiNRC_ZOlVLrZblJi24MLLzMk,27254 +vtkmodules/qt/__init__.py,sha256=5n4JnNjwGPO0V-sO3erAj9YL7gRBPBrWUaU7CK3n-ko,1292 +vtkmodules/qt/__pycache__/QVTKRenderWindowInteractor.cpython-311.pyc,, +vtkmodules/qt/__pycache__/__init__.cpython-311.pyc,, +vtkmodules/test/BlackBox.py,sha256=aw_3c_amva8XBQjqvF68Tg8ijlHIATY-Fv1klFZYHn4,2964 +vtkmodules/test/ErrorObserver.py,sha256=7kjc89ppl9WB8eSHAj0KEs0BzsLXk53xsx1VKQKmqfU,1575 +vtkmodules/test/Testing.py,sha256=0G_0lOfD1H4VJCIDzAoydTh68QsaGCKo1MT00qcCkmo,20490 +vtkmodules/test/__init__.py,sha256=C_EscWyqKIX-6c0UI6PSQ9PzJ9_Y4vraP21GN0NjKTE,158 +vtkmodules/test/__pycache__/BlackBox.cpython-311.pyc,, +vtkmodules/test/__pycache__/ErrorObserver.cpython-311.pyc,, +vtkmodules/test/__pycache__/Testing.cpython-311.pyc,, +vtkmodules/test/__pycache__/__init__.cpython-311.pyc,, +vtkmodules/test/__pycache__/rtImageTest.cpython-311.pyc,, +vtkmodules/test/rtImageTest.py,sha256=KoTYbX9rfzWoVDSNRyZnTMfMFbPEKCY2BtzVhDXTK9c,4949 +vtkmodules/tk/__init__.py,sha256=a_BFtVElNOaY813StQU0RZ-80x91iIueEjxDwK9d9nw,151 +vtkmodules/tk/__pycache__/__init__.cpython-311.pyc,, +vtkmodules/tk/__pycache__/vtkLoadPythonTkWidgets.cpython-311.pyc,, +vtkmodules/tk/__pycache__/vtkTkImageViewerWidget.cpython-311.pyc,, +vtkmodules/tk/__pycache__/vtkTkPhotoImage.cpython-311.pyc,, +vtkmodules/tk/__pycache__/vtkTkRenderWidget.cpython-311.pyc,, +vtkmodules/tk/__pycache__/vtkTkRenderWindowInteractor.cpython-311.pyc,, +vtkmodules/tk/vtkLoadPythonTkWidgets.py,sha256=R93o1UDfSu0MOnC4OZPTZS7HbXmnADhTtCygf5FZxr8,3512 +vtkmodules/tk/vtkTkImageViewerWidget.py,sha256=k8qzEsk4HPLfw4qv3dvL2hiioOmqiL8cROjBo4_LRGo,11403 +vtkmodules/tk/vtkTkPhotoImage.py,sha256=EkIZjK-opsioZ3nisesxE90hr1WZ-4WW-JqpUiww5l4,816 +vtkmodules/tk/vtkTkRenderWidget.py,sha256=bvsPB5R9JkqtXFcB7mwXACaPe3ZwgNpUkWHU2GStkYg,16427 +vtkmodules/tk/vtkTkRenderWindowInteractor.py,sha256=TSS2T7byqd78_596R12OjiQnrXIFR5z3RWld2E2uims,16425 +vtkmodules/util/__init__.py,sha256=I2O0Q61M2hzLXKQ8cP79l0eZm8_bPQufxvkI4vCBBiU,239 +vtkmodules/util/__pycache__/__init__.cpython-311.pyc,, +vtkmodules/util/__pycache__/colors.cpython-311.pyc,, +vtkmodules/util/__pycache__/data_model.cpython-311.pyc,, +vtkmodules/util/__pycache__/execution_model.cpython-311.pyc,, +vtkmodules/util/__pycache__/keys.cpython-311.pyc,, +vtkmodules/util/__pycache__/misc.cpython-311.pyc,, +vtkmodules/util/__pycache__/numpy_support.cpython-311.pyc,, +vtkmodules/util/__pycache__/pickle_support.cpython-311.pyc,, +vtkmodules/util/__pycache__/vtkAlgorithm.cpython-311.pyc,, +vtkmodules/util/__pycache__/vtkConstants.cpython-311.pyc,, +vtkmodules/util/__pycache__/vtkImageExportToArray.cpython-311.pyc,, +vtkmodules/util/__pycache__/vtkImageImportFromArray.cpython-311.pyc,, +vtkmodules/util/__pycache__/vtkMethodParser.cpython-311.pyc,, +vtkmodules/util/__pycache__/vtkVariant.cpython-311.pyc,, +vtkmodules/util/__pycache__/xarray_support.cpython-311.pyc,, +vtkmodules/util/colors.py,sha256=SEP7tMJKiESz-XEH7VaKt2r1l5J32LKK3u6_EzUsGwE,7601 +vtkmodules/util/data_model.py,sha256=z2WIdrutYqpMLuKdD-AfrSD5kvZo5ngSohnrOaqAQ0g,27122 +vtkmodules/util/execution_model.py,sha256=g38bzB0sYNM2fRjtTv8B0UyuDDuJ7wpJpWxmuGFLDTU,10764 +vtkmodules/util/keys.py,sha256=LNDDDiys5ggRkUdGPC7IE4TSwSNclaIhdcgPkUAB1Oc,2053 +vtkmodules/util/misc.py,sha256=APUVZ4KhjSGO9O0WVpIBOOOordsPAIjae2wDnQb8ai0,4415 +vtkmodules/util/numpy_support.py,sha256=cTrHFT9Gv71EnRqGMf-p_s-1qYA9P5eAN3VH-n1bjPY,9321 +vtkmodules/util/pickle_support.py,sha256=6sDXspWmWeY9dwF1Ccws3uPENjaom7f7Fbeq23Sgw_w,5027 +vtkmodules/util/vtkAlgorithm.py,sha256=0euDIgxBlFif2RVLysyXznQ9cXlxENx5W0G9bimuI6w,9364 +vtkmodules/util/vtkConstants.py,sha256=ZXEqkvhHBRpteZIWnV-1yrgFcYBYWCM-LRSuGhEhM9w,5888 +vtkmodules/util/vtkImageExportToArray.py,sha256=2eDyfH9YyNx8Pd_RRNHQEqTdnLLRls0Dv_zDbPT_rOY,3702 +vtkmodules/util/vtkImageImportFromArray.py,sha256=KFfubSpt8ntEvWlFu3f8rwb9sryhnyttelmxff7czrE,4917 +vtkmodules/util/vtkMethodParser.py,sha256=6hz8AjEiiaaKgf0yW4G0NbJ-ISDenpRlUjP4vezy1Y0,7855 +vtkmodules/util/vtkVariant.py,sha256=5HT9jj_oQ__oJTKRabvV6VFLJYnH70ZnqaNdc0mdq5k,6055 +vtkmodules/util/xarray_support.py,sha256=Sj1ONUzZnnjieVdy2OJnNtSaNyBKuIZCDZ5LEidXMA0,15334 +vtkmodules/vtkAcceleratorsVTKmCore.cpython-311-x86_64-linux-gnu.so,sha256=1yFpAEXLoXFmtPqSmYdU4R1WobkN2ydGh82AhM43T9k,17328 +vtkmodules/vtkAcceleratorsVTKmCore.pyi,sha256=mF1pZXSlEBrR7AowSQhfIjF4DlYJQ7Tv4P5FJgMJtK0,283 +vtkmodules/vtkAcceleratorsVTKmDataModel.cpython-311-x86_64-linux-gnu.so,sha256=5uzkx1NsuguileNxFY6wm_1u2E2afFNZy7Vnf0nBKeQ,69016 +vtkmodules/vtkAcceleratorsVTKmDataModel.pyi,sha256=f9mv9apG1FKnEP-FT3VbxgqCxpCQ7H88eodqYL-EzrQ,2787 +vtkmodules/vtkAcceleratorsVTKmFilters.cpython-311-x86_64-linux-gnu.so,sha256=d3287C4qTayjYwTf-tN4mUk4j4M3EIA2fpJwECVLIXA,294224 +vtkmodules/vtkAcceleratorsVTKmFilters.pyi,sha256=0Q5p-VFSYoUkQgKMRT85c-HQ1z5sCXSnxUIRW-bwnp4,18459 +vtkmodules/vtkChartsCore.cpython-311-x86_64-linux-gnu.so,sha256=6dGVJ7sfB1FM9hw--0YE-OFq9vEoI1cXq3Ea55YF3p4,1569496 +vtkmodules/vtkChartsCore.pyi,sha256=eEHY7citBqzDoI2Fqi16QdkXILWbPIOE9Jxa9YxAtiM,102160 +vtkmodules/vtkCommonColor.cpython-311-x86_64-linux-gnu.so,sha256=18V5w-yh7bl-OUM234UkwD0nH557punX3u2wYHMgix0,113056 +vtkmodules/vtkCommonColor.pyi,sha256=Xztqge3S_6keH4b9lcBzCp9XaV-bfL4htm1wQhnowHw,8099 +vtkmodules/vtkCommonComputationalGeometry.cpython-311-x86_64-linux-gnu.so,sha256=bQR2EskVxrLLzDVV9QddpmqltALT31LUHdyJXihw5QI,516944 +vtkmodules/vtkCommonComputationalGeometry.pyi,sha256=iJHb4KOJRxLeDXnYv4vtFCA726xKiX4lHx6uzT4k8AM,32030 +vtkmodules/vtkCommonCore.cpython-311-x86_64-linux-gnu.so,sha256=ZgsHm2-pVkqgpWLV55JtEBeqtr_8PLFuKHsCQJEuJDk,7731680 +vtkmodules/vtkCommonCore.pyi,sha256=8jxBeLk1ReJE2Art5Ug9cTMaFRmhvovs-DklpuacQaQ,509116 +vtkmodules/vtkCommonDataModel.cpython-311-x86_64-linux-gnu.so,sha256=Qow1S9DdReQ8hG-lcT0a2T8AVmePKa-e9VMPab-l3xo,8424384 +vtkmodules/vtkCommonDataModel.pyi,sha256=94N660dZ20OdIh29c7QBUwvZZnsTbO-0hsDVDPFXlgA,642090 +vtkmodules/vtkCommonExecutionModel.cpython-311-x86_64-linux-gnu.so,sha256=vGwvRQE5TUC_pL4_62JQ4bn5_XTYsZNA4qI8ptpcw8M,1242560 +vtkmodules/vtkCommonExecutionModel.pyi,sha256=mZfizz5hVRB4kstTDNxAYTYnmDAyq_iGuNkFuYnqrtc,92690 +vtkmodules/vtkCommonMath.cpython-311-x86_64-linux-gnu.so,sha256=dzb7oUcE4sGsjS4tZVGNNKw7Jw2301eZRbJF7Dz3QBc,536056 +vtkmodules/vtkCommonMath.pyi,sha256=dNyN3uAHH-YkzoiKmYuI-Z-eev54qtTPH4RwvgnCC3c,33152 +vtkmodules/vtkCommonMisc.cpython-311-x86_64-linux-gnu.so,sha256=T2n2xVGr3GJaHdZrx1LQGffDMaVon6RDNXTWq8TlTNY,209824 +vtkmodules/vtkCommonMisc.pyi,sha256=SXWfqSMUkKGiHrn4-lhSxNng2PLNw6Nir_YqXXMfP2E,13074 +vtkmodules/vtkCommonPython.cpython-311-x86_64-linux-gnu.so,sha256=qjz3TjF2-DeyPJbwFnuIDNAPnDjD2_bS8ugyGuPv514,35288 +vtkmodules/vtkCommonPython.pyi,sha256=x2lRakR32xKfk9oD-pMoJBOX7wTARcVo7EIhH0812qE,1101 +vtkmodules/vtkCommonSystem.cpython-311-x86_64-linux-gnu.so,sha256=XkwP_1DQIl4EFdaorpQcctEuixHcjU-kxQ8PswNl_94,153552 +vtkmodules/vtkCommonSystem.pyi,sha256=j9Izx9au6SDETok97R7eGWf10_eRmxvp4vbpRME4lUI,8840 +vtkmodules/vtkCommonTransforms.cpython-311-x86_64-linux-gnu.so,sha256=wiIlmoziUmHBbT1U1oAmobWNe3kQisTkCJ4BuT1T9FM,394552 +vtkmodules/vtkCommonTransforms.pyi,sha256=i2EqqTH0hVen_3Hc65fDmAMTGKafMG5IM-39uAGSTs8,29413 +vtkmodules/vtkDomainsChemistry.cpython-311-x86_64-linux-gnu.so,sha256=dh4WqeLp4stXqTZRvwYYitNPx5kEhFEBCN2z4Vght00,270576 +vtkmodules/vtkDomainsChemistry.pyi,sha256=zDwVUgSDr8VFuJYxOa_Mlw84cdjb_BwOT_C50UNPXTM,17199 +vtkmodules/vtkDomainsChemistryOpenGL2.cpython-311-x86_64-linux-gnu.so,sha256=gJrLedt8jx5By4NJv9Na7H7Ydm3tXnbfascB_Bh4lLw,46929 +vtkmodules/vtkDomainsChemistryOpenGL2.pyi,sha256=GtvxHnL5Y0FDaWo2CwS_sH43jd7eugB00fqkrnJaaUk,1319 +vtkmodules/vtkFiltersAMR.cpython-311-x86_64-linux-gnu.so,sha256=GmVaXqdjS2Z9xMhBTN9awgT7SZAaEBYAEHQqWO5LBpY,171696 +vtkmodules/vtkFiltersAMR.pyi,sha256=XKVf6z4Pdv6MuExAYniPA5K-YYO4MPKc7jj-0slQoRE,11387 +vtkmodules/vtkFiltersCellGrid.cpython-311-x86_64-linux-gnu.so,sha256=7QYdV4Im7SMrl9OQW257hddgse1unhclBh9VXlafFuE,563408 +vtkmodules/vtkFiltersCellGrid.pyi,sha256=fbzUmuYJiar5nqVFhkgBU5XjJVMjHyX7ZSXE-yyL-Tg,37887 +vtkmodules/vtkFiltersCore.cpython-311-x86_64-linux-gnu.so,sha256=3BqxDMY1TZV3Ce-ENLYxJw1InT_V762jDbZnvc9H24M,4094808 +vtkmodules/vtkFiltersCore.pyi,sha256=Tn8GtNB8AyrcaKm6VQKJDqq3K_GB6Y0-wSRNfR-iMQ0,270138 +vtkmodules/vtkFiltersExtraction.cpython-311-x86_64-linux-gnu.so,sha256=aaZord1S4ns4wraM4P0JK0mWZItlOmX5FfRT3NMvN50,592800 +vtkmodules/vtkFiltersExtraction.pyi,sha256=sWNq_OhHGPb0Q-vVtmmRhKxtaNzjapAzO_IggITF-gI,38668 +vtkmodules/vtkFiltersFlowPaths.cpython-311-x86_64-linux-gnu.so,sha256=GIkUfDqp_v0rJXaihYVfkKdPccUVAJu7xhxH9xPmYcc,751736 +vtkmodules/vtkFiltersFlowPaths.pyi,sha256=RHGniWDXao2F_uIedQpAB6cPVrvIlENRqnp6-CfmXsE,51291 +vtkmodules/vtkFiltersGeneral.cpython-311-x86_64-linux-gnu.so,sha256=FiOMizs7L57SNCfv-hGxhNYUiX09CpkAAXqGno9a4iQ,2860768 +vtkmodules/vtkFiltersGeneral.pyi,sha256=U6zu6evnHGGZZ1RmdvltWqyC28flgN3s-qd_riRvmt8,189397 +vtkmodules/vtkFiltersGeneric.cpython-311-x86_64-linux-gnu.so,sha256=3HzWSII9Ij9oS6Jy8lONDZFizavuIvX14_vmhqEydLg,378128 +vtkmodules/vtkFiltersGeneric.pyi,sha256=FPe5pea3uBS4NEsWmvbax9T-nBw35H_4T30i51zYxP0,23491 +vtkmodules/vtkFiltersGeometry.cpython-311-x86_64-linux-gnu.so,sha256=sQ6_rWuPX7TdQh-r5hRP15gVJ6IkMs3VlI2jsNFIQ1g,658096 +vtkmodules/vtkFiltersGeometry.pyi,sha256=6I4WRisgvNfOo2Gn6DcNG8vMYvNz-FZU3IOaMRCO6VA,40259 +vtkmodules/vtkFiltersGeometryPreview.cpython-311-x86_64-linux-gnu.so,sha256=R3YceF4EzUcv8oR-K_kdsE7L2u-bo2zYWtwXJe8wjT0,106984 +vtkmodules/vtkFiltersGeometryPreview.pyi,sha256=zEyPMIYTquCHcZsDjA90ix2A5f_nhShiI-OLrFIyGrc,5526 +vtkmodules/vtkFiltersHybrid.cpython-311-x86_64-linux-gnu.so,sha256=SYk7h32PKgLsVW_XMBw6fJpdXT-rFPxx1SxejMUe0-g,714968 +vtkmodules/vtkFiltersHybrid.pyi,sha256=N2nb1NbunJzIOeEhCb7VAo4HN-ngNkd-QCZ3OUUCNbI,44842 +vtkmodules/vtkFiltersHyperTree.cpython-311-x86_64-linux-gnu.so,sha256=TymCiVC-dqOsTegt2HXtrAFg6Rp0iGQIR00q-LK0gbc,436440 +vtkmodules/vtkFiltersHyperTree.pyi,sha256=Lh4EOyn0BEBZwLxpWNXbi2hahfEMN3mkkuzav9PyEHQ,27797 +vtkmodules/vtkFiltersImaging.cpython-311-x86_64-linux-gnu.so,sha256=mIEk6zXe7JT6LAhICmO637w2lxKnLhK35GuwszwnQyU,120376 +vtkmodules/vtkFiltersImaging.pyi,sha256=8d_dXPoKiLc9L_cKjXeCph1rWm9u6t5QK4PBBCNcid4,7502 +vtkmodules/vtkFiltersModeling.cpython-311-x86_64-linux-gnu.so,sha256=L5YRcWSwWXIUImGtLkLopexHeYZCQhXa4Zj8kI-HYJs,991688 +vtkmodules/vtkFiltersModeling.pyi,sha256=GL9fnxRInsNY9CSF4d62QjRxBG9MbQEkzJjB_CS_xrY,64182 +vtkmodules/vtkFiltersParallel.cpython-311-x86_64-linux-gnu.so,sha256=syTDADZ7NvkHR0Fj7uim_TtSeJ5f_zP9HH_5hd4NJ7g,843888 +vtkmodules/vtkFiltersParallel.pyi,sha256=4opwoo3XOVu7h4ZdG23ULPX57qW6UKDtMxBpshbKVn8,57916 +vtkmodules/vtkFiltersParallelDIY2.cpython-311-x86_64-linux-gnu.so,sha256=EKriS2PnPkrLU1NVyo9VcVBs1TDGgYVm6ReGUwnyAK0,309256 +vtkmodules/vtkFiltersParallelDIY2.pyi,sha256=6D5MX2NzvpH42_NVEs-NQPqOxaOvi6Lw29QKBtjH5no,19100 +vtkmodules/vtkFiltersParallelImaging.cpython-311-x86_64-linux-gnu.so,sha256=wD8hulcc07E0oKAluIgzBZmb2WwQ3pLeEbwYhjh0lqY,75192 +vtkmodules/vtkFiltersParallelImaging.pyi,sha256=WRlquzvjNOYSJuF5ZgRQJUV499q5sE_Et5n6w4ZQzPs,4382 +vtkmodules/vtkFiltersParallelStatistics.cpython-311-x86_64-linux-gnu.so,sha256=YSZtPwWWpJl1B7rV24ma05Uw3ukk8ZzM7r3mnhpts2o,145704 +vtkmodules/vtkFiltersParallelStatistics.pyi,sha256=v4kjgzrO2aS9zEbXsNmQBoNdwML9aG7cmvd_nCCy9Vg,9594 +vtkmodules/vtkFiltersPoints.cpython-311-x86_64-linux-gnu.so,sha256=rmS8z39zXjQ7yzKAMIkQGHjGNIV33iE7wM1aUlQxpTg,1153832 +vtkmodules/vtkFiltersPoints.pyi,sha256=jvX6ieL7fHE9MMf17oS20g14RQOXD8xcndIeqhYLfzo,72215 +vtkmodules/vtkFiltersProgrammable.cpython-311-x86_64-linux-gnu.so,sha256=W_snMhd3xzzmMDGxXc_Jm4czYKmIBI4oHNvG8xgIEM8,88416 +vtkmodules/vtkFiltersProgrammable.pyi,sha256=vcB1qVxDbENfNRtpn7wjRotnoYPv5zpMKTxOdYUQy1k,4355 +vtkmodules/vtkFiltersPython.cpython-311-x86_64-linux-gnu.so,sha256=O5lfA8URD8RLZURwRtBIxZsOT5G6M-cCiPW4EY1-VpM,34416 +vtkmodules/vtkFiltersPython.pyi,sha256=mAfGlIk5Pr1y8hHd3Dpaz9h4NMKi4igdMhlStzWbFyw,1147 +vtkmodules/vtkFiltersReduction.cpython-311-x86_64-linux-gnu.so,sha256=Iwe9AzOS4BLkrjsSo5qAh491EYQCXjDUEDbaS0heC6A,92728 +vtkmodules/vtkFiltersReduction.pyi,sha256=MzYe_jU--H5k-oRNkbBwzDqId0jjskm3UyMhA4uR-rw,5802 +vtkmodules/vtkFiltersSMP.cpython-311-x86_64-linux-gnu.so,sha256=1ACWEPk1ybGJBj6DBPnPqDpVaYJcUelvwaYcVjpbNEc,55800 +vtkmodules/vtkFiltersSMP.pyi,sha256=awJbvJHGAJH5jVnum3dg1zbCFBPdNXgp28S4jpxuMLE,2071 +vtkmodules/vtkFiltersSelection.cpython-311-x86_64-linux-gnu.so,sha256=DoujbKbZOr4v8f7FRSZRuU5PM14_EbSvjfqMEbR8qy0,104664 +vtkmodules/vtkFiltersSelection.pyi,sha256=KsaGRTktdcrBaiyhswKdZttbJFv5RCkBrbDjP-lWoA8,5625 +vtkmodules/vtkFiltersSources.cpython-311-x86_64-linux-gnu.so,sha256=TrSZl1LqQFvJ6bZ9wY5r8r5nzgVLRoqK8hCC42lGtnk,1381616 +vtkmodules/vtkFiltersSources.pyi,sha256=c_phf57yl3g0pLk6KvoaBsVj7M3l8Qza4EP-frN5uAA,91564 +vtkmodules/vtkFiltersStatistics.cpython-311-x86_64-linux-gnu.so,sha256=hLk0HBkXA6uERJU7-qs6l39ck6m0RYE1uABAismzKrA,451384 +vtkmodules/vtkFiltersStatistics.pyi,sha256=Z_IVcCg7sAwg3oAMsA1Da39kcBpEvZKF34mxSy2UEdk,28081 +vtkmodules/vtkFiltersTemporal.cpython-311-x86_64-linux-gnu.so,sha256=yzKVyc4KtK3VlTb6NUhj5gT6kDPiVbVKK00FqqkEnQc,100728 +vtkmodules/vtkFiltersTemporal.pyi,sha256=JVsWn2CaJ489d01mOGnYoKsrpEykQ2RRyGpmINUKUV8,5389 +vtkmodules/vtkFiltersTensor.cpython-311-x86_64-linux-gnu.so,sha256=xFDA3bxXSLHRxatYYNGRyjoaBTtFpU8ofqS68jraYFI,57120 +vtkmodules/vtkFiltersTensor.pyi,sha256=EzV8aTgBq8SpQ61QYpIg2kIhlntgw9M1jy0JENDoxj8,2564 +vtkmodules/vtkFiltersTexture.cpython-311-x86_64-linux-gnu.so,sha256=uB5_2y99DMcujEHN3ae9IGjNQwZqXkP9kEJZwsCua40,200824 +vtkmodules/vtkFiltersTexture.pyi,sha256=oKTAq6sfAOxAK_K5gB7LaFHUL8DB833wpSF7T4UHB84,12312 +vtkmodules/vtkFiltersTopology.cpython-311-x86_64-linux-gnu.so,sha256=gysVs9oGS176GWNkG9A2uKfEx2aKsysBigifKvODVOk,47832 +vtkmodules/vtkFiltersTopology.pyi,sha256=MIJNmzowJ-lznkk78ldkeVB9aSNy3GqXlDVFAO8YNgk,1766 +vtkmodules/vtkFiltersVerdict.cpython-311-x86_64-linux-gnu.so,sha256=yAtpPmqZwwq-mgWO-Wq1AZdMfIrbYI8KM2q-xr0djmc,337424 +vtkmodules/vtkFiltersVerdict.pyi,sha256=o_yI7_7NKgADg_1-TTEiAd84ro_sd11eg1wJn95ra_E,25261 +vtkmodules/vtkGeovisCore.cpython-311-x86_64-linux-gnu.so,sha256=nb1Dri8D_-TUzzbBTmszBdIrDZDmScOghaEzPxJSobo,82248 +vtkmodules/vtkGeovisCore.pyi,sha256=OFyL-fCP7nOGw2zNMwfqvBNZvSc6UeJzVMt6PPYdQ0Y,3849 +vtkmodules/vtkIOAMR.cpython-311-x86_64-linux-gnu.so,sha256=hHQv74PFF3ZNhYCYoHnk76BT57GYuTAh2xtDzqprzgo,179904 +vtkmodules/vtkIOAMR.pyi,sha256=TPtTEn82BDSFxrxJ9WJ3IMglbR-mjc7vacxZiLI1fKM,11558 +vtkmodules/vtkIOAsynchronous.cpython-311-x86_64-linux-gnu.so,sha256=VPTgVro8ZaUYQLozoB14AoOce1l7xurUc19VLbXSyZA,34752 +vtkmodules/vtkIOAsynchronous.pyi,sha256=rNdPuK9LCzq5bA8dKr_V4JMoOPtkSyZnhpZ7_27zx7M,1079 +vtkmodules/vtkIOAvmesh.cpython-311-x86_64-linux-gnu.so,sha256=ObG23KFwtggJ-6RLoex9C4xlAN02N5qsPMWzL1u2aAg,40720 +vtkmodules/vtkIOAvmesh.pyi,sha256=NC3p0DYq8jMG0e9iwegEmPTbVSECzOZ8ZEJOh7Eut5c,1551 +vtkmodules/vtkIOCGNSReader.cpython-311-x86_64-linux-gnu.so,sha256=AVovld02BFLOzEIpCdElALF9tyoXP881F6IgpPyq_eA,164000 +vtkmodules/vtkIOCGNSReader.pyi,sha256=D7CI6kSCWK-vTHqYT0ATxSFs_tYCTQCPGbeDw6OyBRM,9374 +vtkmodules/vtkIOCONVERGECFD.cpython-311-x86_64-linux-gnu.so,sha256=Wt-7R-splRduDwO47hh9ME5G2kGyV0e2kPGlds5T8VU,35320 +vtkmodules/vtkIOCONVERGECFD.pyi,sha256=-x86CgwoQLhl2svzbo9VCnPpZCRmk9YiEuCTM4WcJYk,1296 +vtkmodules/vtkIOCellGrid.cpython-311-x86_64-linux-gnu.so,sha256=mohv-FXpkL3Ewhx-iC8yRBld7E7BdPpuIZ0VfJL6aFg,86064 +vtkmodules/vtkIOCellGrid.pyi,sha256=EsPKQZRpXo3cfFaZw7qMmKdiBdzU2Wdgd8IVdeTW3Z4,4850 +vtkmodules/vtkIOCesium3DTiles.cpython-311-x86_64-linux-gnu.so,sha256=JOgrTkTwxNko9Pz3W6xi679APlTUw5rsp-31S2ys-TI,120936 +vtkmodules/vtkIOCesium3DTiles.pyi,sha256=ppp_hi9Ckl3ioGEEuMky3UinJpJpXu_eAww_hMETT04,5789 +vtkmodules/vtkIOChemistry.cpython-311-x86_64-linux-gnu.so,sha256=srrO8ovUprclTQst9GNddaQhi-z0rnR-cl4e3GR6EDk,129488 +vtkmodules/vtkIOChemistry.pyi,sha256=8_eG0aqSsVM0TbA19ZtbdCOstWtIOko131934acVWyg,7041 +vtkmodules/vtkIOCityGML.cpython-311-x86_64-linux-gnu.so,sha256=jr5zu1H0dQEvCfgnpUClYdntybcrVfg4mJxghwVyoIc,55496 +vtkmodules/vtkIOCityGML.pyi,sha256=_FvWE__CS2tEP1AOOg9ZadaOTkGjEnIxDUCJzxZixBs,2141 +vtkmodules/vtkIOCore.cpython-311-x86_64-linux-gnu.so,sha256=5rpprVvFbbDTapNZvYPrB0SenP5lcFc18in9BGinB3c,495008 +vtkmodules/vtkIOCore.pyi,sha256=JodPrgNl9K3NDs-_8Qv-Ou146FxlYBARv5ejIz_aDiI,30055 +vtkmodules/vtkIOERF.cpython-311-x86_64-linux-gnu.so,sha256=D5caVsAYrx-ehiCcwy1M4xJxCqPT1XU2aui-2suQZGc,50832 +vtkmodules/vtkIOERF.pyi,sha256=IM-SPIcd-wMBv5hdgdYCQHKFimtF6EDmIJp41oyOup0,1685 +vtkmodules/vtkIOEnSight.cpython-311-x86_64-linux-gnu.so,sha256=vcYI02XbpQG2JFmMSSMcFx30kBel68zeZa7szvFZtaY,222960 +vtkmodules/vtkIOEnSight.pyi,sha256=zu-CMlaOUtWG4BefyuLBgsASM24g2reR5ChdSX-Gq5A,15042 +vtkmodules/vtkIOEngys.cpython-311-x86_64-linux-gnu.so,sha256=_O3RUsw9stEbGogPN46wPsgiXdD5RzYxP3lJvU1mg9s,35096 +vtkmodules/vtkIOEngys.pyi,sha256=w_NQ_TPGp4rGotTQ_w6xqVA52_cF1U77X_ZEqeZ4Ak8,1201 +vtkmodules/vtkIOExodus.cpython-311-x86_64-linux-gnu.so,sha256=V5jXsqHFG4dV29n9uEJweaNmwUazs5IY19zyq46aYz0,576056 +vtkmodules/vtkIOExodus.pyi,sha256=lmC5A0AGsu4qJA_KQJiTeSqZBrMcKXjTkyy36-WCwZQ,41346 +vtkmodules/vtkIOExport.cpython-311-x86_64-linux-gnu.so,sha256=K-pgWFMEKK3TIn6XQxAAkzDaD94JN1K0QbThKRi_xrs,519688 +vtkmodules/vtkIOExport.pyi,sha256=XB5R5uL-jzYLj_w3-o0F02zGn_8aK0FD650wWsam5l0,45018 +vtkmodules/vtkIOExportGL2PS.cpython-311-x86_64-linux-gnu.so,sha256=QftCBM10r6fORBpUIwkVz1JPHQ9aEaDiypmWmy10DYA,133089 +vtkmodules/vtkIOExportGL2PS.pyi,sha256=1IX_PHaekvTT6kPOct5YByCjo6FSPvpFjkiSetrcU4k,5690 +vtkmodules/vtkIOExportPDF.cpython-311-x86_64-linux-gnu.so,sha256=nKzcq5GV9up4JivR22hA-GxfV1IjOkt-lqoSV115M_8,100368 +vtkmodules/vtkIOExportPDF.pyi,sha256=QBbg4o5IcuH_mV4GR0z6Z7-75_fhLt7dsWacHO9tmEQ,4638 +vtkmodules/vtkIOFDS.cpython-311-x86_64-linux-gnu.so,sha256=VaIl1906gEI3ychi6II97S29ZCvgSx2Jt7p5FnNt_Hs,49376 +vtkmodules/vtkIOFDS.pyi,sha256=nf97M27246F8UHj5fHrVLo8E2BvSGWKRy-5KH3n6q4A,1521 +vtkmodules/vtkIOFLUENTCFF.cpython-311-x86_64-linux-gnu.so,sha256=rmMkea2pHm67XWB_osgkH3E6qWWCv5Fv4Oo-jqQu5qI,45056 +vtkmodules/vtkIOFLUENTCFF.pyi,sha256=p1AgwnkCCMSoLM3pVo4Ga1lxt_QdbXsu181_jPg0UHY,1431 +vtkmodules/vtkIOGeoJSON.cpython-311-x86_64-linux-gnu.so,sha256=-goLkE94V6Shv2K6OHt8ynzJ78UkfP_S2Cqrww4LjDE,94368 +vtkmodules/vtkIOGeoJSON.pyi,sha256=G5OU-24gsk6YDH1qOPsukLacWCfV7aMOpwwm6zuz85s,4568 +vtkmodules/vtkIOGeometry.cpython-311-x86_64-linux-gnu.so,sha256=Haa1kR6Av_xeJfcUeKjxhG7OAO4VrD4gmv_Iju-Irdc,801928 +vtkmodules/vtkIOGeometry.pyi,sha256=zxH5Ql-91oEk-XREBkP_eywAE0RanYtVmT7GvwTQ2ug,49307 +vtkmodules/vtkIOH5Rage.cpython-311-x86_64-linux-gnu.so,sha256=qclAtVrGoMXVanE6Oul5IMsMD6q0BhgAXYwoak8HkbY,44968 +vtkmodules/vtkIOH5Rage.pyi,sha256=NugB2DeaqODUOvSt9uQgTuJ5mauVUJnnyX3poAu8UXk,1641 +vtkmodules/vtkIOH5part.cpython-311-x86_64-linux-gnu.so,sha256=OZWQBPcOoE_Ruvqc0srysp80zqAKbzlPlJVZmMD_F4Q,71528 +vtkmodules/vtkIOH5part.pyi,sha256=hTNv705euW6q7KO0Vgs68e8wfrXEUL9FbnXsRM8hFCg,3194 +vtkmodules/vtkIOHDF.cpython-311-x86_64-linux-gnu.so,sha256=9w9pL0sU9Rd2hb4rm5CA0hu6ptrah_W0-XVs0HDO0pY,102864 +vtkmodules/vtkIOHDF.pyi,sha256=Nr5_Sbpxepj-tL1HEL2MxT9QUKKTjcquKjVIqTAVK7I,4975 +vtkmodules/vtkIOIOSS.cpython-311-x86_64-linux-gnu.so,sha256=S8FPxoA_9Pj1MMSoTh3AxvQQCYekSTT4qQFzHKV34sQ,273880 +vtkmodules/vtkIOIOSS.pyi,sha256=DnU2lzlqVutUHPs2Tqs1RloSrE7Ob9CfNhV92xjADN4,18853 +vtkmodules/vtkIOImage.cpython-311-x86_64-linux-gnu.so,sha256=iJYwACD3QeYxhIdtf7w_n4clQ80UgAciYDxkMEiCmNI,1093360 +vtkmodules/vtkIOImage.pyi,sha256=URgjAj5I_uv0r9hQDG0RRegkF1dP3_3iwE6qlGtN-bk,69035 +vtkmodules/vtkIOImport.cpython-311-x86_64-linux-gnu.so,sha256=IuKRlZX-dVGsUbj2ihKZgPz-T93M8uUNR7GusNj51hA,186048 +vtkmodules/vtkIOImport.pyi,sha256=o3tXJmPXx-JfaxwWhel0EAlo6Ti7rz8ew7QCbWn3z1Q,9610 +vtkmodules/vtkIOInfovis.cpython-311-x86_64-linux-gnu.so,sha256=iW6cYkwNztho8aCAZCyPRY3Pi5Emjg4DdYfQvsgmETQ,388488 +vtkmodules/vtkIOInfovis.pyi,sha256=BPP5iaS3_cjZFq29tR73Hq5HPZx_sgSC5tGBC9tAF14,21527 +vtkmodules/vtkIOLANLX3D.cpython-311-x86_64-linux-gnu.so,sha256=0Nxx9xHKtAQt81LCk6aKjMz-bVz3xPsMWXukcl8kFME,35016 +vtkmodules/vtkIOLANLX3D.pyi,sha256=-CuNrSBcGq5-apwRKIxnKcxU-_xXNGggl3FEclG5XAA,1115 +vtkmodules/vtkIOLSDyna.cpython-311-x86_64-linux-gnu.so,sha256=eILYtrKFOG5FnnUu6MKAC5UBAK0c4PEfaXrjMjxkLu0,203520 +vtkmodules/vtkIOLSDyna.pyi,sha256=AWlwN5hKvRWxB8D2lEGfPLAJGepklztcinxzU5Inq98,11040 +vtkmodules/vtkIOLegacy.cpython-311-x86_64-linux-gnu.so,sha256=irTZgio-NfRNdUxl6gr--46B_HgnzUTzSqjnVmiopes,592568 +vtkmodules/vtkIOLegacy.pyi,sha256=lXsrVwTAySBb1XTT7ArSG5EPsKbaPTP7HYJgh3LGXfs,35994 +vtkmodules/vtkIOMINC.cpython-311-x86_64-linux-gnu.so,sha256=LrPEeqXko2ZEXd8gEtP5ucS9I2Bqcc48KnmSATVs0DI,274272 +vtkmodules/vtkIOMINC.pyi,sha256=Z86-YVdjaBtlGKYPvbHFUydkFbfR3KvsmdQncNFVZt8,15681 +vtkmodules/vtkIOMotionFX.cpython-311-x86_64-linux-gnu.so,sha256=oaVIVUSlnnArxMxWbKpeM6oKjJw3GMmui0_DwmXX1lk,35232 +vtkmodules/vtkIOMotionFX.pyi,sha256=TC2z3c-sHAOBtcX8WpsGloZgMqRXeFQlReX6_jy9Tls,1232 +vtkmodules/vtkIOMovie.cpython-311-x86_64-linux-gnu.so,sha256=b_sC1todeqP5kN9IMmfeOErMrs_OMTtBeDhD6ETxwkM,36232 +vtkmodules/vtkIOMovie.pyi,sha256=KqlYqrrQ0n8dpVg73fYKy7C4esZd8N1E6jGac8gazz0,1493 +vtkmodules/vtkIONetCDF.cpython-311-x86_64-linux-gnu.so,sha256=BFHbgVTpRRdpAuBJXnWYGk10UH8GK4y2f9NvuAlC0fA,398896 +vtkmodules/vtkIONetCDF.pyi,sha256=-efMX1OIPCDNinN_spQBrYOumWalihF7ac0s6tTft5U,24148 +vtkmodules/vtkIOOMF.cpython-311-x86_64-linux-gnu.so,sha256=L96O0Rp5eiZ8ikCm1yUsuT06VhxmU_OK1tfDErBeZVw,45272 +vtkmodules/vtkIOOMF.pyi,sha256=dfYrPkYq6F3gUJnABhMtPy3dy3jupzjoSMTT-q7k8ME,1764 +vtkmodules/vtkIOOggTheora.cpython-311-x86_64-linux-gnu.so,sha256=N9dXktNenEvOZRvp5r6hYo57pQ4Z7qQXGKAQBIKVwbM,40704 +vtkmodules/vtkIOOggTheora.pyi,sha256=2-jGaAM5yLgN8d0z-7PbcJQrxe04MCOxWHni5SOl8Bs,1535 +vtkmodules/vtkIOPIO.cpython-311-x86_64-linux-gnu.so,sha256=jRYqVUEofSobi8aUKZdwbj1UApnqEDfapbD3uQ6wAeU,56112 +vtkmodules/vtkIOPIO.pyi,sha256=GAr4FXgeLey5NlBIXh9NH_TMp51PNaKsxLhuhUO02fc,2534 +vtkmodules/vtkIOPLY.cpython-311-x86_64-linux-gnu.so,sha256=Kf_K9sJiIDCoANwMRS1ltOcU6MoUSOtuh8zH-LKWYzA,135056 +vtkmodules/vtkIOPLY.pyi,sha256=8bCtsEXHMlLIXjSVhEE63puXKGX7vAFoPbE0SZK7qDw,6950 +vtkmodules/vtkIOParallel.cpython-311-x86_64-linux-gnu.so,sha256=_fa8SrBkZDuYWxy1zsvBcViarnBr29yub84kAILV3j4,291512 +vtkmodules/vtkIOParallel.pyi,sha256=zX3zsymZjJR8fsn6E-3s8IlGO-Myih8fCDcE6GDixsU,15806 +vtkmodules/vtkIOParallelExodus.cpython-311-x86_64-linux-gnu.so,sha256=liVAmoS7AmwcuB6GhRTgORvysMXpuHQ8-Znpvz-MhwE,66360 +vtkmodules/vtkIOParallelExodus.pyi,sha256=4fEb5509inF4xDzck24daa0O1BpgPPpVZ569jbDw7LY,2677 +vtkmodules/vtkIOParallelLSDyna.cpython-311-x86_64-linux-gnu.so,sha256=2LLGdmd18y5iQXhQNqZ66yyqb8iC6JgSKb4_TZS-wRk,38232 +vtkmodules/vtkIOParallelLSDyna.pyi,sha256=vZCrjKrNyyu9-KuIlAJFEQPq1pyqnWmgFkt-OyT9d2w,1037 +vtkmodules/vtkIOParallelXML.cpython-311-x86_64-linux-gnu.so,sha256=1UP5-ul-Hj_96oO7qOg27VftTQzdk25vDoN9KoSavcs,257280 +vtkmodules/vtkIOParallelXML.pyi,sha256=VzRgsJuoPoniNeaOjLh-c_dAHepUbwDRSSk95GVTpmo,15814 +vtkmodules/vtkIOSQL.cpython-311-x86_64-linux-gnu.so,sha256=Wa1gX-y-CpT9f5eFa3aKll90CpPQeLARSKeWEV7ZXRA,292080 +vtkmodules/vtkIOSQL.pyi,sha256=AEnzVNrySdajQKhOpIbwF-f4AsbBglUyNTtbwG-Fzy8,18866 +vtkmodules/vtkIOSegY.cpython-311-x86_64-linux-gnu.so,sha256=FaC-nHqa5LI-DnNcu9TN1eATS1KGNfi046_1WYK1vN0,56840 +vtkmodules/vtkIOSegY.pyi,sha256=ETYExLVhcUjV-uhoO02CiSbQm-2y5ieNZzCjjAW4ywQ,2456 +vtkmodules/vtkIOTRUCHAS.cpython-311-x86_64-linux-gnu.so,sha256=hHNcFInZIu6ilq-kAyeFGGi65WWzh7Clzvd9Wolteuo,45408 +vtkmodules/vtkIOTRUCHAS.pyi,sha256=R5o8limSTe2mbfr8qy-pB-TNBgot5z23I8BwxMz4HuY,1871 +vtkmodules/vtkIOTecplotTable.cpython-311-x86_64-linux-gnu.so,sha256=VQm_6jaFIaXf4NxbvnPOnRDSuNjUuf-k34R5XZ2VcQ4,57112 +vtkmodules/vtkIOTecplotTable.pyi,sha256=6XqCBD44BDMhZhOdLEwGd_St6ez25053KK3ci7c9Zi4,2261 +vtkmodules/vtkIOVPIC.cpython-311-x86_64-linux-gnu.so,sha256=t3hqhu_r8k6qMoKVAcjkP8ES1uGFIM5UYLoegCjf878,54784 +vtkmodules/vtkIOVPIC.pyi,sha256=mi6u7U5QlIdiddTEewX2zX4Pu49DB8ltwH-grtD0taQ,2514 +vtkmodules/vtkIOVeraOut.cpython-311-x86_64-linux-gnu.so,sha256=lWjzzcOTDH_JkOClxyeYA8beyARv4_WER5gIc_MTSFQ,35368 +vtkmodules/vtkIOVeraOut.pyi,sha256=n_WjX9e7T9c1D2VCNU8k-g7bbOcUU6We1D6cTGwEZQg,1286 +vtkmodules/vtkIOVideo.cpython-311-x86_64-linux-gnu.so,sha256=wdXw2_Jbq8By3bsQM6OxlspDodGExZBWyd4YPURagVI,90328 +vtkmodules/vtkIOVideo.pyi,sha256=mzYcvQV0gLP4SkOkzNELw9rIUS1YNf8oAGwxq_J3gIg,4416 +vtkmodules/vtkIOXML.cpython-311-x86_64-linux-gnu.so,sha256=UYN1j3PebFAznrHg7OkvJnMGZQSuEIpGE0T2Yj2XUZk,691688 +vtkmodules/vtkIOXML.pyi,sha256=HoN_Thb1kkH7eBZW9WNjd7H9Z7U9Zqc3Mvki-jMdvnE,46513 +vtkmodules/vtkIOXMLParser.cpython-311-x86_64-linux-gnu.so,sha256=EORpuYmL7kDFgGyNGByeiGqDd1KFdbdH16hHBzEZHoU,88184 +vtkmodules/vtkIOXMLParser.pyi,sha256=5rIjbXHFdQ-R9xmNLzQfD5gjT8SE8QhExJPTzrsAmts,4756 +vtkmodules/vtkIOXdmf2.cpython-311-x86_64-linux-gnu.so,sha256=abs1S7bhUx7GNfDZjEzN4PZuCvNWkm-BehnFoDqloe4,140552 +vtkmodules/vtkIOXdmf2.pyi,sha256=TlFUCs-fm9rrv9H0NirxJDv4EHaMH3gr1rPc79S574k,7572 +vtkmodules/vtkImagingColor.cpython-311-x86_64-linux-gnu.so,sha256=FmoXPPlxVEgB4F35aAXvc0L0tLvizrxMS1NiDVkYz3w,147216 +vtkmodules/vtkImagingColor.pyi,sha256=4wA2dvh5lXASFj8MioiXL5RhkjqWGqOqmaamVbe0hBQ,9203 +vtkmodules/vtkImagingCore.cpython-311-x86_64-linux-gnu.so,sha256=3NIZSl6_pHEBa6F5U3JtdIExBqCRp-gsDyDA0tpsMyE,1059728 +vtkmodules/vtkImagingCore.pyi,sha256=7wxW338zq75OWQbKm4FoS08a3plCE6b3EX0MgsV012g,71970 +vtkmodules/vtkImagingFourier.cpython-311-x86_64-linux-gnu.so,sha256=h2XTdFhej2LEkF8xrvck0anMOTnIqQH3GuzVT6ThwhQ,134832 +vtkmodules/vtkImagingFourier.pyi,sha256=UhOnUEliKoENfiOdTJyC12f0rcUor2cO3JHMqTAzVw8,7696 +vtkmodules/vtkImagingGeneral.cpython-311-x86_64-linux-gnu.so,sha256=TngQU8HFjEyLEbEjcs1rd-Ty2rdlY2OeCuyWCoQ8L0c,388280 +vtkmodules/vtkImagingGeneral.pyi,sha256=ZaoF-L1t0ua56yIDBTBER0o5BuGy8cmfBm1DmA72vjY,25878 +vtkmodules/vtkImagingHybrid.cpython-311-x86_64-linux-gnu.so,sha256=on5I2-hbHMhLZ_xB5YZfS9mFJlBhJG6uKIS4VnEbECo,463840 +vtkmodules/vtkImagingHybrid.pyi,sha256=_DOZohD9LSuVfhF4t4YGVh8nds0sCtQf-FwNjQ59edc,29291 +vtkmodules/vtkImagingMath.cpython-311-x86_64-linux-gnu.so,sha256=TNY-h8kHAUHtJkdXjiJHTo1Z1vX6mk1Ot5C3cN6iFTM,156984 +vtkmodules/vtkImagingMath.pyi,sha256=UkZs86zS_NzW586J07YkLpJoRCxJmpiWYvLs6xX-1Rw,10022 +vtkmodules/vtkImagingMorphological.cpython-311-x86_64-linux-gnu.so,sha256=4WDjFTX3fwvMcMEKtkZ16Likrls3s0TGw-euKX4vb64,283632 +vtkmodules/vtkImagingMorphological.pyi,sha256=3nFkO_CtBbOxqdZeAa-X2b6wldaYH7o3ksKWNAcXU14,17604 +vtkmodules/vtkImagingOpenGL2.cpython-311-x86_64-linux-gnu.so,sha256=tvObpFuMIpV7HzuSe14t0A8denSYPoFTupVfbS7njiA,41545 +vtkmodules/vtkImagingOpenGL2.pyi,sha256=HvtEH_4wFGsmKwpQ4EiiKyNR6BDxttPXDC3aDG6-TbU,952 +vtkmodules/vtkImagingSources.cpython-311-x86_64-linux-gnu.so,sha256=nJkO39cFDS16QdhXc_gE-kLXF4i52sIuKUS9baryEKM,230432 +vtkmodules/vtkImagingSources.pyi,sha256=YjmUWqPrwhCKijgOjMxYvHZA0L53ICdUhmkipoVs7Ts,15163 +vtkmodules/vtkImagingStatistics.cpython-311-x86_64-linux-gnu.so,sha256=8g6DPQ_FmDsF1S4BDIp_yCleEV0-u4ncDknBoeAyFHo,130280 +vtkmodules/vtkImagingStatistics.pyi,sha256=UXLLwXxz8XS5OUqfmgTjVgp_D_E-vcxnXfn0-pzmPF8,7722 +vtkmodules/vtkImagingStencil.cpython-311-x86_64-linux-gnu.so,sha256=R9fNH_zmHni8K7gPmt7nMHPuBDUGLnt2dteMOUKjvbA,159928 +vtkmodules/vtkImagingStencil.pyi,sha256=MLKULLzC_kGlb9G51JBlpo0r3pnlecTYsDSWd-VNQrs,9660 +vtkmodules/vtkInfovisCore.cpython-311-x86_64-linux-gnu.so,sha256=jB537N8TAPXfLqtkP2wAMuH4Se1YdkSCYrcioppbYlM,849040 +vtkmodules/vtkInfovisCore.pyi,sha256=jSag7h6nbXKTXPbLw2bmx-8LhT6SZF3gSZu6n-Skz7A,49937 +vtkmodules/vtkInfovisLayout.cpython-311-x86_64-linux-gnu.so,sha256=unbU1hE9KBUJJlTxtecZCDlNuapIKPOGxVdCYTT0k3o,891064 +vtkmodules/vtkInfovisLayout.pyi,sha256=Vl1MscovnfVPxgdySrZQKj67Wlap4dTjoONpVeR1fWg,56914 +vtkmodules/vtkInteractionImage.cpython-311-x86_64-linux-gnu.so,sha256=GgcTR0kwe5W7aVs8Ryng1S_Ht5RSXH9q_fBphX1JhgE,181448 +vtkmodules/vtkInteractionImage.pyi,sha256=LyIsDtGtK5whhnpqEiYsoMgAGMnVKq5ORi7TFW_si1M,10871 +vtkmodules/vtkInteractionStyle.cpython-311-x86_64-linux-gnu.so,sha256=WGNqWJeKyS_RxcAzhHQOMZUmLizsmlacIY4FvKHSTKs,420528 +vtkmodules/vtkInteractionStyle.pyi,sha256=117Zgn8fYbC_n36tMcN6JXVZCBnzyf23RBvc5GTTns0,26873 +vtkmodules/vtkInteractionWidgets.cpython-311-x86_64-linux-gnu.so,sha256=HtPpBRyzi14MMA8MgzHNzX0eFFQ7UvFl1iZGrYkIVIY,5852496 +vtkmodules/vtkInteractionWidgets.pyi,sha256=3FuH5_1wxrjTiPC5w44Cjr8Hj5yFFB75ANKhPkScxg8,415636 +vtkmodules/vtkParallelCore.cpython-311-x86_64-linux-gnu.so,sha256=03czlk9BjvBg5k0xHS9IXPuLbAtW1AOA5kVm26Fhuk4,601016 +vtkmodules/vtkParallelCore.pyi,sha256=SOR82WJXOAxyzky_vA08axWBOAXKa3P87J6F5ycMa7Q,39112 +vtkmodules/vtkPythonContext2D.cpython-311-x86_64-linux-gnu.so,sha256=mwQv0la-6hKACbb4GQuCBHpuxlF2cdJ1dyMYjLX33sE,33808 +vtkmodules/vtkPythonContext2D.pyi,sha256=hAndbBOITdVRbADy7qy0Zolq3Ub44bjob7l1WZ1HFyQ,981 +vtkmodules/vtkRenderingAnnotation.cpython-311-x86_64-linux-gnu.so,sha256=NCsRya4phm5moHbKYm6u4lU7vPt5_fDhgQunl-DdjDc,2373352 +vtkmodules/vtkRenderingAnnotation.pyi,sha256=bz_pKAPU8kEpqRSEZ-u5PfrXiUUJ9m-NKh9HHuoQTq0,154368 +vtkmodules/vtkRenderingCellGrid.cpython-311-x86_64-linux-gnu.so,sha256=JMMoHNOaHz4HP9RXJ6WTRMvaf3en7lJ1GRkFHmG-Qaw,72681 +vtkmodules/vtkRenderingCellGrid.pyi,sha256=pLhfQBmgbquRUhRuWWX2SGaJqcWZKvpV9Wf36ollN_U,3217 +vtkmodules/vtkRenderingContext2D.cpython-311-x86_64-linux-gnu.so,sha256=4RdWhvPDchmuWg_UI2VQQaMRSe-vp0yKXAQjZVelllM,675872 +vtkmodules/vtkRenderingContext2D.pyi,sha256=C1GkvS-zIkD7SOqLTtLjSaoHET35D-49Yd2QbIJ1Itw,45384 +vtkmodules/vtkRenderingContextOpenGL2.cpython-311-x86_64-linux-gnu.so,sha256=MqJFx1g_GP7x7yKMIABHGKROpCFN3arOQPU4QKi0kEY,167673 +vtkmodules/vtkRenderingContextOpenGL2.pyi,sha256=UrpX0sMYV0ZWpFVSzsmnAII76Rq4cz7hVO7IHy-7XGE,8707 +vtkmodules/vtkRenderingCore.cpython-311-x86_64-linux-gnu.so,sha256=BKacuKm54_F4amUsZ6cV6zLL2uxE7XsN5C8dRApsTII,5390440 +vtkmodules/vtkRenderingCore.pyi,sha256=m-EWKJD5zhboJBNI3KB_OA3s4TYchqPy-4TaKt_U4TY,367437 +vtkmodules/vtkRenderingExternal.cpython-311-x86_64-linux-gnu.so,sha256=0mYyTh2Mv8LYc8u5fTMZTcZPS5A5cH06nOtae1y7J6Q,137961 +vtkmodules/vtkRenderingExternal.pyi,sha256=4h7krc8rK1pOuu5N_sPwOfMWnOOgGDk7UX3XjRbp1ec,7727 +vtkmodules/vtkRenderingFreeType.cpython-311-x86_64-linux-gnu.so,sha256=JvKyeQnM87kczCQN0ZOIV_h_wF6iN-4ZWEXLDTnjN1I,146624 +vtkmodules/vtkRenderingFreeType.pyi,sha256=tK9WH5h-2juhehzMJkQn9QcUI9hWclQT08Bz-LEfGuU,8622 +vtkmodules/vtkRenderingGL2PSOpenGL2.cpython-311-x86_64-linux-gnu.so,sha256=5HkDbfuYG0q7Kr0PCH17-OT11CehIoQdwjLqLaJ5t54,59721 +vtkmodules/vtkRenderingGL2PSOpenGL2.pyi,sha256=F6f3egR6JRu1tij0Hnw5Tp0CMMdEplhZhq4HYgLicG8,1924 +vtkmodules/vtkRenderingGridAxes.cpython-311-x86_64-linux-gnu.so,sha256=KQfVNRH6Xz7kjeKEGpb09k6d5EbejVbHKFWAV7-TpJo,254168 +vtkmodules/vtkRenderingGridAxes.pyi,sha256=fF8AF3ldY_wuFBjyrMj-6wqC2GCJcRc7YrS-M3V7uvY,16333 +vtkmodules/vtkRenderingHyperTreeGrid.cpython-311-x86_64-linux-gnu.so,sha256=1pA2MBBT7Knn-_78OUQbr8qZtN9sCdYsWJkDSNUT-xk,54816 +vtkmodules/vtkRenderingHyperTreeGrid.pyi,sha256=VM4jH9ZWeWRxijaVLSLkQUUnpys0qVGumu4aDJPKpas,2485 +vtkmodules/vtkRenderingImage.cpython-311-x86_64-linux-gnu.so,sha256=YMCyBinBe8yyPjTDMiYPXZ2NtQ-KeUynbRVuHHR-vlo,157608 +vtkmodules/vtkRenderingImage.pyi,sha256=x1kVayYysoXmGXi8U2luaathX6_EBkf_p7faC91KyWo,8822 +vtkmodules/vtkRenderingLICOpenGL2.cpython-311-x86_64-linux-gnu.so,sha256=_kLcqAjaaLOeMlzsJFaPJTaLvF4E1JygBB7Ic9eILko,353169 +vtkmodules/vtkRenderingLICOpenGL2.pyi,sha256=VCe8Lmv-jorINdvvUtXhBn3XEVvMAeS3-b8b14SYnF0,20010 +vtkmodules/vtkRenderingLOD.cpython-311-x86_64-linux-gnu.so,sha256=MIICncFdaE1KX1N9tIPYGGrifQ-7NzRpVbmamxtaq1Y,92360 +vtkmodules/vtkRenderingLOD.pyi,sha256=Ia65IiVBJRxxOcM6rgJU52iCKZ55UbYrrDjnknVPdxw,4862 +vtkmodules/vtkRenderingLabel.cpython-311-x86_64-linux-gnu.so,sha256=d4CNnapNwcMJoUFQ0wzWZ6lYM4tQ74VmpR9nHlLlHzQ,449872 +vtkmodules/vtkRenderingLabel.pyi,sha256=cqJinZp_ZNVgmLfVY2yMi7MzQDM9xWtmMUBcqis1lJc,28231 +vtkmodules/vtkRenderingMatplotlib.cpython-311-x86_64-linux-gnu.so,sha256=tu3BY_F0145_54M_Ng6GHBYhWYDWgru7RJcwGX4aJR4,44032 +vtkmodules/vtkRenderingMatplotlib.pyi,sha256=qD2MmjXgWtEAhtmTrpMbQl5-2eGLv0zZ8V7PLMFfX-Q,1424 +vtkmodules/vtkRenderingOpenGL2.cpython-311-x86_64-linux-gnu.so,sha256=JToM3at6Ep-StwAKJqrqu20NELMt6RCatP-lackImlY,2680737 +vtkmodules/vtkRenderingOpenGL2.pyi,sha256=NGo5w8fjJFD9Z3m4yYn_038KW4fcTuXlTtfoCOisAQo,180057 +vtkmodules/vtkRenderingParallel.cpython-311-x86_64-linux-gnu.so,sha256=hoaXXqr4GAxjRsXZl9AjsKwl3mLs0uM5m9S76XvjbSE,365561 +vtkmodules/vtkRenderingParallel.pyi,sha256=iboEnzJhACB-Kp1HVuRgTIR4jcyFUkOGi7G4dkZjp08,23847 +vtkmodules/vtkRenderingSceneGraph.cpython-311-x86_64-linux-gnu.so,sha256=bxerqWOCnWxqv3596culax-iQWt3ydIxb7MbE34dv-Q,125120 +vtkmodules/vtkRenderingSceneGraph.pyi,sha256=bzKnbcHB83pgh-rNeWTBADneds9ejtjaEDCYeA3fAeY,7893 +vtkmodules/vtkRenderingUI.cpython-311-x86_64-linux-gnu.so,sha256=jVLiKkY8PbFkrFeBBRWhexIOl2HXCgYRuLfmI2r2_gQ,52344 +vtkmodules/vtkRenderingUI.pyi,sha256=nbtMLmgiSaKq6DhPlLuQUeEUoxn8qmMZn-r1unYDgM4,2212 +vtkmodules/vtkRenderingVR.cpython-311-x86_64-linux-gnu.so,sha256=v7q09GaTyLgYKOg8gLhlsUQNOx2pgE40I0kIZFLTDZk,376513 +vtkmodules/vtkRenderingVR.pyi,sha256=s-4CyqGUydlP5zp95m3PhQkjEz_leDDQlas4W17aciU,23594 +vtkmodules/vtkRenderingVRModels.cpython-311-x86_64-linux-gnu.so,sha256=-m2zsjjVF_iTzVvVmLhpxkjVjBTBk7a3q2wwsKOj0Qw,67833 +vtkmodules/vtkRenderingVRModels.pyi,sha256=jRe0A5V_O0G_C37DZOLLFexTauSyB4Cli5ZZRR6XnXk,2917 +vtkmodules/vtkRenderingVolume.cpython-311-x86_64-linux-gnu.so,sha256=z-R5MFY21taZ-a-grltqfArVADb5aZ93Ph6pyie0tkw,957504 +vtkmodules/vtkRenderingVolume.pyi,sha256=igXorybiBC5Gk4XKwu8XGbQ3wSksD0_LrSMMcYyf_6Q,67691 +vtkmodules/vtkRenderingVolumeAMR.cpython-311-x86_64-linux-gnu.so,sha256=p9_--e_TUK8IvFaH5huhhlzjUTqisQbM06ndNplE7G0,110441 +vtkmodules/vtkRenderingVolumeAMR.pyi,sha256=lw8IUG2zs2l3a8zQtC1SThUtZCGOU0_6_sIsOyfplnM,5402 +vtkmodules/vtkRenderingVolumeOpenGL2.cpython-311-x86_64-linux-gnu.so,sha256=hjMJz_gdOqWY5NH4iQXmiyTXGaHze31okMLR4Io1zMQ,304969 +vtkmodules/vtkRenderingVolumeOpenGL2.pyi,sha256=vyGPpspJVM3dPCOGDf90qBYI2w2jTq3V-sN-GIu198w,17558 +vtkmodules/vtkRenderingVtkJS.cpython-311-x86_64-linux-gnu.so,sha256=_sZ3UVAyHpxp7HLCvHugY7BnrbplTRcs2CTENeZDyMo,52488 +vtkmodules/vtkRenderingVtkJS.pyi,sha256=_1eHXDwH7mY9RvogAi-ojfwCfZWLz20NRyGKMKZaC08,2488 +vtkmodules/vtkSerializationManager.cpython-311-x86_64-linux-gnu.so,sha256=4Sxqs31BbaLfjxQu3jJVzk5ao2E3AKvYhYmlT-4DKfM,85825 +vtkmodules/vtkSerializationManager.pyi,sha256=Uait5Gt-9_TWt9Yxk3iT8lpJBXc5gLWNr_HX9jV3JjY,3074 +vtkmodules/vtkTestingRendering.cpython-311-x86_64-linux-gnu.so,sha256=pecU-dXWo6exLo2Ae-ozzsWxVcDWMElQh2sXf_upOxc,103352 +vtkmodules/vtkTestingRendering.pyi,sha256=uxGFEwISr4KicwrUgfsLOc0zHO_JLnLwFSlsoD2kG2U,4882 +vtkmodules/vtkTestingSerialization.cpython-311-x86_64-linux-gnu.so,sha256=7rxP0gYj9qPqQKer0-CDrY6MuXo_7t-gveR1mMjzBdQ,67169 +vtkmodules/vtkTestingSerialization.pyi,sha256=VHW-Ahj54aYWjihT_90g09bC6zTU3XZsyc9HWjzGkcM,3231 +vtkmodules/vtkViewsContext2D.cpython-311-x86_64-linux-gnu.so,sha256=8s-CBCGnPqQYGp8K7yWZgYJJamueI-XHR0GJRg1EmMM,57192 +vtkmodules/vtkViewsContext2D.pyi,sha256=Cr6kFzxh0JJinuZHy0rLgUpAMz6jl9VFEy--r9OZd5k,2586 +vtkmodules/vtkViewsCore.cpython-311-x86_64-linux-gnu.so,sha256=-AyPCJkPSuLpDaV3HKu7q1B8nghlLxwFSImbg_sO74I,240680 +vtkmodules/vtkViewsCore.pyi,sha256=dQOcMbm2ZpO3pGIDvEmGM3iYtQ9jTpNihHefzFhL01o,17465 +vtkmodules/vtkViewsInfovis.cpython-311-x86_64-linux-gnu.so,sha256=SUSEy3YDytCAIRRzbAFT16cPSDHmWjY2fn7Q2nFI09U,1208712 +vtkmodules/vtkViewsInfovis.pyi,sha256=9kpNle_DRt1TqewFtytBRCB2kEaJ4KeZKnVMoYIja3E,78095 +vtkmodules/vtkWebCore.cpython-311-x86_64-linux-gnu.so,sha256=uCMNCw1HU0nsi9j25VXj079wnBDCR3ox3n7RTre4RVE,139392 +vtkmodules/vtkWebCore.pyi,sha256=zl-CQlpcn-3IllvxY71L4u2Xt5QRJX3QlrcaURVzBZg,8334 +vtkmodules/vtkWebGLExporter.cpython-311-x86_64-linux-gnu.so,sha256=H6mpicivmNDI-JSB39cO1a8xF2SDOwLrAHSnAJJt1vk,151128 +vtkmodules/vtkWebGLExporter.pyi,sha256=BAhRwyYCIqUPg_5m7b2nLIdtMVsMp5yAns7cmEz1B-w,9123 +vtkmodules/web/__init__.py,sha256=xg1wgB3b2bbIrIgxd3y0r0RdMMxv427qAUIqXr9HT7I,1563 +vtkmodules/web/__pycache__/__init__.cpython-311.pyc,, +vtkmodules/web/__pycache__/camera.cpython-311.pyc,, +vtkmodules/web/__pycache__/dataset_builder.cpython-311.pyc,, +vtkmodules/web/__pycache__/errors.cpython-311.pyc,, +vtkmodules/web/__pycache__/protocols.cpython-311.pyc,, +vtkmodules/web/__pycache__/query_data_model.cpython-311.pyc,, +vtkmodules/web/__pycache__/render_window_serializer.cpython-311.pyc,, +vtkmodules/web/__pycache__/testing.cpython-311.pyc,, +vtkmodules/web/__pycache__/utils.cpython-311.pyc,, +vtkmodules/web/__pycache__/venv.cpython-311.pyc,, +vtkmodules/web/__pycache__/vtkjs_helper.cpython-311.pyc,, +vtkmodules/web/__pycache__/wslink.cpython-311.pyc,, +vtkmodules/web/camera.py,sha256=tFXEa0DOtUX0mfjkKohwwiGhbHPiRBxpfpvo4IahmWY,22759 +vtkmodules/web/dataset_builder.py,sha256=TsFi983SfTuVNMQJ1mcOdNfRnAxr9J9ftAIraTbGHug,23980 +vtkmodules/web/errors.py,sha256=7KQlWwgaZSALkcsAEuMer5tJBe1Ae6noUd6DwGRhyH4,379 +vtkmodules/web/protocols.py,sha256=i0cgaEZX0R-iVk3DG9i68eqHVpTSqbPZF63qndzW9m0,30431 +vtkmodules/web/query_data_model.py,sha256=xXA3S59Mt8Tbi0OVgJboHvEGGtFcLs7NVz_2vwvmbh0,5585 +vtkmodules/web/render_window_serializer.py,sha256=mrc0Yoi5i12edO8FQiQuuAY7zQXB8i2NxNg8ktiYAcs,50028 +vtkmodules/web/testing.py,sha256=o_85B3lZ8E-Slr2LseqepnM72dB-yUzBZxb5qZJcG_s,30265 +vtkmodules/web/utils.py,sha256=BEimTrMRWSCg7dVl1HHcutt2Pg8Vniq67Eaj95vCOB8,6187 +vtkmodules/web/venv.py,sha256=ElljDR3Fy2sCY-xo4C2dvwVrD1uCQUJtJi2T4roSBDw,1269 +vtkmodules/web/vtkjs_helper.py,sha256=TnmWh2x0c5koptZcZdC3bTFQ3ugfBsQO2flHTOvNtCM,11273 +vtkmodules/web/wslink.py,sha256=FzniJjNK_LZ40kIkL_4SZC7NF58kRdT6weyiU01pnz4,2063 +vtkmodules/wx/__init__.py,sha256=07-QjIQcFl3XaY6cpmXdmm0PYHGwUtg4DlixWR8KxC8,96 +vtkmodules/wx/__pycache__/__init__.cpython-311.pyc,, +vtkmodules/wx/__pycache__/wxVTKRenderWindow.cpython-311.pyc,, +vtkmodules/wx/__pycache__/wxVTKRenderWindowInteractor.cpython-311.pyc,, +vtkmodules/wx/wxVTKRenderWindow.py,sha256=09UQ0AGY1tPaAT8FzniHpQ3peXDJ_Bpuoby_9f8CB0E,23797 +vtkmodules/wx/wxVTKRenderWindowInteractor.py,sha256=0gyDlQs9TgWMoa8fHjKMNQOgQNuFAVO5CPDQ5aFq824,24912 diff --git a/venv/lib/python3.11/site-packages/vtk-9.5.2.dist-info/WHEEL b/venv/lib/python3.11/site-packages/vtk-9.5.2.dist-info/WHEEL new file mode 100644 index 0000000..7cc1bea --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtk-9.5.2.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: false +Tag: cp311-cp311-manylinux_2_17_x86_64 +Tag: cp311-cp311-manylinux2014_x86_64 + diff --git a/venv/lib/python3.11/site-packages/vtk-9.5.2.dist-info/licenses/LICENSE b/venv/lib/python3.11/site-packages/vtk-9.5.2.dist-info/licenses/LICENSE new file mode 100644 index 0000000..42f1028 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtk-9.5.2.dist-info/licenses/LICENSE @@ -0,0 +1,34 @@ +/*========================================================================= + + Program: Visualization Toolkit + Module: Copyright.txt + +Copyright (c) 1993-2015 Ken Martin, Will Schroeder, Bill Lorensen +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither name of Ken Martin, Will Schroeder, or Bill Lorensen nor the names + of any contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +=========================================================================*/ diff --git a/venv/lib/python3.11/site-packages/vtk-9.5.2.dist-info/top_level.txt b/venv/lib/python3.11/site-packages/vtk-9.5.2.dist-info/top_level.txt new file mode 100644 index 0000000..5e7ea5e --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtk-9.5.2.dist-info/top_level.txt @@ -0,0 +1,3 @@ +vtk +vtkCommonCorePython +vtkmodules diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_cont-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_cont-1.0.so new file mode 100644 index 0000000..a1e769b Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_cont-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_cont_testing-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_cont_testing-1.0.so new file mode 100644 index 0000000..2640669 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_cont_testing-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_clean_grid-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_clean_grid-1.0.so new file mode 100644 index 0000000..99fcb3c Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_clean_grid-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_connected_components-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_connected_components-1.0.so new file mode 100644 index 0000000..4ecfec9 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_connected_components-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_contour-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_contour-1.0.so new file mode 100644 index 0000000..0e1d46a Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_contour-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_core-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_core-1.0.so new file mode 100644 index 0000000..97b4cbf Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_core-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_density_estimate-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_density_estimate-1.0.so new file mode 100644 index 0000000..112f61d Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_density_estimate-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_entity_extraction-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_entity_extraction-1.0.so new file mode 100644 index 0000000..3a981e2 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_entity_extraction-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_field_conversion-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_field_conversion-1.0.so new file mode 100644 index 0000000..5887767 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_field_conversion-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_field_transform-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_field_transform-1.0.so new file mode 100644 index 0000000..6031dd3 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_field_transform-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_flow-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_flow-1.0.so new file mode 100644 index 0000000..f2a6a4e Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_flow-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_geometry_refinement-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_geometry_refinement-1.0.so new file mode 100644 index 0000000..157b3e9 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_geometry_refinement-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_image_processing-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_image_processing-1.0.so new file mode 100644 index 0000000..d7952dd Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_image_processing-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_mesh_info-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_mesh_info-1.0.so new file mode 100644 index 0000000..1540153 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_mesh_info-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_multi_block-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_multi_block-1.0.so new file mode 100644 index 0000000..270467d Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_multi_block-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_resampling-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_resampling-1.0.so new file mode 100644 index 0000000..8fd505d Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_resampling-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_uncertainty-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_uncertainty-1.0.so new file mode 100644 index 0000000..2636075 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_uncertainty-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_vector_analysis-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_vector_analysis-1.0.so new file mode 100644 index 0000000..9527eb3 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_vector_analysis-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_zfp-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_zfp-1.0.so new file mode 100644 index 0000000..a5403ec Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_filter_zfp-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_io-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_io-1.0.so new file mode 100644 index 0000000..d73a59f Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_io-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_source-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_source-1.0.so new file mode 100644 index 0000000..9e9fc1f Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_source-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskores_worklet-1.0.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_worklet-1.0.so new file mode 100644 index 0000000..cb03bd0 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskores_worklet-1.0.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libviskoresdiympi_nompi.so b/venv/lib/python3.11/site-packages/vtkmodules/libviskoresdiympi_nompi.so new file mode 100644 index 0000000..8bc789c Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libviskoresdiympi_nompi.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkAcceleratorsVTKmCore.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkAcceleratorsVTKmCore.so new file mode 100644 index 0000000..b67e76e Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkAcceleratorsVTKmCore.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkAcceleratorsVTKmDataModel.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkAcceleratorsVTKmDataModel.so new file mode 100644 index 0000000..dd94bdb Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkAcceleratorsVTKmDataModel.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkAcceleratorsVTKmFilters.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkAcceleratorsVTKmFilters.so new file mode 100644 index 0000000..9a86d25 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkAcceleratorsVTKmFilters.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkChartsCore.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkChartsCore.so new file mode 100644 index 0000000..caa1006 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkChartsCore.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonColor.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonColor.so new file mode 100644 index 0000000..b469069 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonColor.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonComputationalGeometry.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonComputationalGeometry.so new file mode 100644 index 0000000..8954e96 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonComputationalGeometry.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonCore.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonCore.so new file mode 100644 index 0000000..2636895 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonCore.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonDataModel.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonDataModel.so new file mode 100644 index 0000000..9d63cfe Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonDataModel.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonExecutionModel.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonExecutionModel.so new file mode 100644 index 0000000..556d9e6 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonExecutionModel.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonMath.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonMath.so new file mode 100644 index 0000000..8d06c70 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonMath.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonMisc.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonMisc.so new file mode 100644 index 0000000..7fa15f6 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonMisc.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonPython.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonPython.so new file mode 100644 index 0000000..55bebb8 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonPython.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonSystem.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonSystem.so new file mode 100644 index 0000000..ed79735 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonSystem.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonTransforms.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonTransforms.so new file mode 100644 index 0000000..8ae1d26 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkCommonTransforms.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkDICOMParser.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkDICOMParser.so new file mode 100644 index 0000000..331012b Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkDICOMParser.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkDomainsChemistry.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkDomainsChemistry.so new file mode 100644 index 0000000..a9b5539 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkDomainsChemistry.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkDomainsChemistryOpenGL2.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkDomainsChemistryOpenGL2.so new file mode 100644 index 0000000..8028afc Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkDomainsChemistryOpenGL2.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersAMR.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersAMR.so new file mode 100644 index 0000000..c3e517c Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersAMR.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersCellGrid.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersCellGrid.so new file mode 100644 index 0000000..b18ee34 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersCellGrid.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersCore.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersCore.so new file mode 100644 index 0000000..e2b3c1c Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersCore.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersExtraction.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersExtraction.so new file mode 100644 index 0000000..89aca37 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersExtraction.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersFlowPaths.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersFlowPaths.so new file mode 100644 index 0000000..5352167 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersFlowPaths.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersGeneral.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersGeneral.so new file mode 100644 index 0000000..c53e6bf Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersGeneral.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersGeneric.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersGeneric.so new file mode 100644 index 0000000..c28c568 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersGeneric.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersGeometry.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersGeometry.so new file mode 100644 index 0000000..13a59e3 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersGeometry.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersGeometryPreview.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersGeometryPreview.so new file mode 100644 index 0000000..d296374 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersGeometryPreview.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersHybrid.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersHybrid.so new file mode 100644 index 0000000..0621afd Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersHybrid.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersHyperTree.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersHyperTree.so new file mode 100644 index 0000000..8502fa2 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersHyperTree.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersImaging.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersImaging.so new file mode 100644 index 0000000..fb12539 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersImaging.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersModeling.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersModeling.so new file mode 100644 index 0000000..c56c62f Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersModeling.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersParallel.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersParallel.so new file mode 100644 index 0000000..2779902 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersParallel.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersParallelDIY2.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersParallelDIY2.so new file mode 100644 index 0000000..9658cc0 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersParallelDIY2.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersParallelImaging.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersParallelImaging.so new file mode 100644 index 0000000..592b5f1 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersParallelImaging.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersParallelStatistics.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersParallelStatistics.so new file mode 100644 index 0000000..1544741 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersParallelStatistics.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersPoints.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersPoints.so new file mode 100644 index 0000000..459d579 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersPoints.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersProgrammable.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersProgrammable.so new file mode 100644 index 0000000..6b361f5 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersProgrammable.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersPython.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersPython.so new file mode 100644 index 0000000..3ffd5af Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersPython.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersReduction.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersReduction.so new file mode 100644 index 0000000..c569835 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersReduction.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersSMP.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersSMP.so new file mode 100644 index 0000000..50a1659 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersSMP.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersSelection.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersSelection.so new file mode 100644 index 0000000..e76423a Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersSelection.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersSources.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersSources.so new file mode 100644 index 0000000..d2a56f6 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersSources.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersStatistics.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersStatistics.so new file mode 100644 index 0000000..e3b99b6 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersStatistics.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersTemporal.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersTemporal.so new file mode 100644 index 0000000..1264ebb Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersTemporal.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersTensor.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersTensor.so new file mode 100644 index 0000000..462b3a9 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersTensor.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersTexture.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersTexture.so new file mode 100644 index 0000000..48ebee2 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersTexture.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersTopology.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersTopology.so new file mode 100644 index 0000000..9861db4 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersTopology.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersVerdict.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersVerdict.so new file mode 100644 index 0000000..fd07936 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkFiltersVerdict.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkGeovisCore.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkGeovisCore.so new file mode 100644 index 0000000..f5f1c29 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkGeovisCore.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOAsynchronous.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOAsynchronous.so new file mode 100644 index 0000000..5e916ec Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOAsynchronous.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOAvmesh.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOAvmesh.so new file mode 100644 index 0000000..0814d49 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOAvmesh.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOCGNSReader.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOCGNSReader.so new file mode 100644 index 0000000..35e3f5d Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOCGNSReader.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOCONVERGECFD.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOCONVERGECFD.so new file mode 100644 index 0000000..efd862e Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOCONVERGECFD.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOCellGrid.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOCellGrid.so new file mode 100644 index 0000000..da67fe0 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOCellGrid.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOCesium3DTiles.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOCesium3DTiles.so new file mode 100644 index 0000000..7a8e83c Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOCesium3DTiles.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOChemistry.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOChemistry.so new file mode 100644 index 0000000..db8d108 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOChemistry.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOCityGML.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOCityGML.so new file mode 100644 index 0000000..8dc5f1c Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOCityGML.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOEnSight.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOEnSight.so new file mode 100644 index 0000000..6dcec23 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOEnSight.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOExodus.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOExodus.so new file mode 100644 index 0000000..390d7a6 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOExodus.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOExport.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOExport.so new file mode 100644 index 0000000..6ef5c33 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOExport.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOExportGL2PS.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOExportGL2PS.so new file mode 100644 index 0000000..b84f169 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOExportGL2PS.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOExportPDF.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOExportPDF.so new file mode 100644 index 0000000..74f0885 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOExportPDF.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOFLUENTCFF.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOFLUENTCFF.so new file mode 100644 index 0000000..c0578db Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOFLUENTCFF.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOGeoJSON.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOGeoJSON.so new file mode 100644 index 0000000..238c770 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOGeoJSON.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOGeometry.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOGeometry.so new file mode 100644 index 0000000..4ee0a33 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOGeometry.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOH5Rage.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOH5Rage.so new file mode 100644 index 0000000..93da4de Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOH5Rage.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOH5part.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOH5part.so new file mode 100644 index 0000000..599cc36 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOH5part.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOImport.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOImport.so new file mode 100644 index 0000000..595c4ae Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOImport.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOInfovis.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOInfovis.so new file mode 100644 index 0000000..96d1db9 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOInfovis.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOLANLX3D.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOLANLX3D.so new file mode 100644 index 0000000..91f4893 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOLANLX3D.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOLSDyna.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOLSDyna.so new file mode 100644 index 0000000..c431afa Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOLSDyna.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOLegacy.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOLegacy.so new file mode 100644 index 0000000..50c7975 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOLegacy.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOMotionFX.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOMotionFX.so new file mode 100644 index 0000000..42860d6 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOMotionFX.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIONetCDF.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIONetCDF.so new file mode 100644 index 0000000..f16347d Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIONetCDF.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOOggTheora.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOOggTheora.so new file mode 100644 index 0000000..5fa5476 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOOggTheora.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOParallel.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOParallel.so new file mode 100644 index 0000000..9e81456 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOParallel.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOParallelExodus.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOParallelExodus.so new file mode 100644 index 0000000..5c5f50b Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOParallelExodus.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOParallelLSDyna.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOParallelLSDyna.so new file mode 100644 index 0000000..45c5dac Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOParallelLSDyna.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOParallelXML.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOParallelXML.so new file mode 100644 index 0000000..3fd0b0d Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOParallelXML.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOTRUCHAS.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOTRUCHAS.so new file mode 100644 index 0000000..0b3b466 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOTRUCHAS.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOTecplotTable.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOTecplotTable.so new file mode 100644 index 0000000..d2ae26b Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOTecplotTable.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOVeraOut.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOVeraOut.so new file mode 100644 index 0000000..577078e Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOVeraOut.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOXMLParser.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOXMLParser.so new file mode 100644 index 0000000..986c9f8 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkIOXMLParser.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingColor.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingColor.so new file mode 100644 index 0000000..27a9eab Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingColor.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingCore.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingCore.so new file mode 100644 index 0000000..7a3efdb Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingCore.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingFourier.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingFourier.so new file mode 100644 index 0000000..2858a68 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingFourier.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingGeneral.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingGeneral.so new file mode 100644 index 0000000..9a7107e Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingGeneral.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingHybrid.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingHybrid.so new file mode 100644 index 0000000..3f9e05c Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingHybrid.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingMath.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingMath.so new file mode 100644 index 0000000..eed39c3 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingMath.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingMorphological.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingMorphological.so new file mode 100644 index 0000000..c875e7e Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingMorphological.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingOpenGL2.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingOpenGL2.so new file mode 100644 index 0000000..8891299 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingOpenGL2.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingSources.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingSources.so new file mode 100644 index 0000000..70eed23 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingSources.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingStatistics.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingStatistics.so new file mode 100644 index 0000000..0a49f72 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingStatistics.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingStencil.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingStencil.so new file mode 100644 index 0000000..65a0166 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkImagingStencil.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkInfovisCore.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkInfovisCore.so new file mode 100644 index 0000000..44d32e1 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkInfovisCore.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkInfovisLayout.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkInfovisLayout.so new file mode 100644 index 0000000..93952cc Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkInfovisLayout.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkInteractionImage.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkInteractionImage.so new file mode 100644 index 0000000..5f7896c Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkInteractionImage.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkInteractionStyle.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkInteractionStyle.so new file mode 100644 index 0000000..5342542 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkInteractionStyle.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkInteractionWidgets.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkInteractionWidgets.so new file mode 100644 index 0000000..9b4f946 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkInteractionWidgets.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkParallelCore.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkParallelCore.so new file mode 100644 index 0000000..f2cabf5 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkParallelCore.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkParallelDIY.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkParallelDIY.so new file mode 100644 index 0000000..b24b3eb Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkParallelDIY.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkPythonContext2D.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkPythonContext2D.so new file mode 100644 index 0000000..f1cb098 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkPythonContext2D.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingAnnotation.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingAnnotation.so new file mode 100644 index 0000000..6c98498 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingAnnotation.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingCellGrid.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingCellGrid.so new file mode 100644 index 0000000..8a92c19 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingCellGrid.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingContext2D.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingContext2D.so new file mode 100644 index 0000000..ce37c2a Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingContext2D.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingContextOpenGL2.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingContextOpenGL2.so new file mode 100644 index 0000000..a2875b9 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingContextOpenGL2.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingCore.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingCore.so new file mode 100644 index 0000000..d7e5893 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingCore.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingExternal.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingExternal.so new file mode 100644 index 0000000..2538857 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingExternal.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingFreeType.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingFreeType.so new file mode 100644 index 0000000..e0ae181 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingFreeType.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingGL2PSOpenGL2.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingGL2PSOpenGL2.so new file mode 100644 index 0000000..987061d Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingGL2PSOpenGL2.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingGridAxes.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingGridAxes.so new file mode 100644 index 0000000..85d5a82 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingGridAxes.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingHyperTreeGrid.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingHyperTreeGrid.so new file mode 100644 index 0000000..3c265c5 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingHyperTreeGrid.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingImage.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingImage.so new file mode 100644 index 0000000..d3a5b34 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingImage.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingLICOpenGL2.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingLICOpenGL2.so new file mode 100644 index 0000000..2a76d38 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingLICOpenGL2.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingLOD.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingLOD.so new file mode 100644 index 0000000..2a2cdcf Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingLOD.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingLabel.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingLabel.so new file mode 100644 index 0000000..b12e5de Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingLabel.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingMatplotlib.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingMatplotlib.so new file mode 100644 index 0000000..e6476aa Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingMatplotlib.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingOpenGL2.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingOpenGL2.so new file mode 100644 index 0000000..d6ca8dc Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingOpenGL2.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingParallel.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingParallel.so new file mode 100644 index 0000000..04f3c7b Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingParallel.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingSceneGraph.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingSceneGraph.so new file mode 100644 index 0000000..6715805 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingSceneGraph.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingUI.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingUI.so new file mode 100644 index 0000000..0c0e27d Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingUI.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingVR.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingVR.so new file mode 100644 index 0000000..06c9de9 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingVR.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingVRModels.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingVRModels.so new file mode 100644 index 0000000..a1b5c08 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingVRModels.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingVolume.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingVolume.so new file mode 100644 index 0000000..50028c7 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingVolume.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingVolumeAMR.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingVolumeAMR.so new file mode 100644 index 0000000..a849e43 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingVolumeAMR.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingVolumeOpenGL2.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingVolumeOpenGL2.so new file mode 100644 index 0000000..f3aa69e Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingVolumeOpenGL2.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingVtkJS.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingVtkJS.so new file mode 100644 index 0000000..0235597 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkRenderingVtkJS.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkSerializationManager.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkSerializationManager.so new file mode 100644 index 0000000..b25e24a Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkSerializationManager.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkTestingCore.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkTestingCore.so new file mode 100644 index 0000000..b95b00f Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkTestingCore.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkTestingDataModel.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkTestingDataModel.so new file mode 100644 index 0000000..835aafc Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkTestingDataModel.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkTestingGenericBridge.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkTestingGenericBridge.so new file mode 100644 index 0000000..331bd4c Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkTestingGenericBridge.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkTestingIOSQL.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkTestingIOSQL.so new file mode 100644 index 0000000..d7be89b Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkTestingIOSQL.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkTestingRendering.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkTestingRendering.so new file mode 100644 index 0000000..001bb30 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkTestingRendering.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkTestingSerialization.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkTestingSerialization.so new file mode 100644 index 0000000..d90bf7c Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkTestingSerialization.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkUtilitiesBenchmarks.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkUtilitiesBenchmarks.so new file mode 100644 index 0000000..28e48bc Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkUtilitiesBenchmarks.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkViewsContext2D.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkViewsContext2D.so new file mode 100644 index 0000000..0f4e3a5 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkViewsContext2D.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkViewsCore.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkViewsCore.so new file mode 100644 index 0000000..d00ec41 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkViewsCore.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkViewsInfovis.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkViewsInfovis.so new file mode 100644 index 0000000..afcd172 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkViewsInfovis.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkWebCore.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkWebCore.so new file mode 100644 index 0000000..d888113 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkWebCore.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkWebGLExporter.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkWebGLExporter.so new file mode 100644 index 0000000..ba9efb0 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkWebGLExporter.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkWrappingPythonCore3.11.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkWrappingPythonCore3.11.so new file mode 100644 index 0000000..5ab05b1 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkWrappingPythonCore3.11.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkWrappingTools.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkWrappingTools.so new file mode 100644 index 0000000..a775756 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkWrappingTools.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkdoubleconversion.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkdoubleconversion.so new file mode 100644 index 0000000..49cf877 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkdoubleconversion.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkexodusII.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkexodusII.so new file mode 100644 index 0000000..ab01fd4 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkexodusII.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkfreetype.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkfreetype.so new file mode 100644 index 0000000..1efc3a9 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkfreetype.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkpugixml.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkpugixml.so new file mode 100644 index 0000000..e8ebd3f Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkpugixml.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/libvtkverdict.so b/venv/lib/python3.11/site-packages/vtkmodules/libvtkverdict.so new file mode 100644 index 0000000..a1ed2b5 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/libvtkverdict.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkAcceleratorsVTKmCore.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkAcceleratorsVTKmCore.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..a7a5887 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkAcceleratorsVTKmCore.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkAcceleratorsVTKmCore.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkAcceleratorsVTKmCore.pyi new file mode 100644 index 0000000..6e21d36 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkAcceleratorsVTKmCore.pyi @@ -0,0 +1,10 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkAcceleratorsVTKmDataModel.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkAcceleratorsVTKmDataModel.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..83ef3aa Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkAcceleratorsVTKmDataModel.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkAcceleratorsVTKmDataModel.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkAcceleratorsVTKmDataModel.pyi new file mode 100644 index 0000000..d12095f --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkAcceleratorsVTKmDataModel.pyi @@ -0,0 +1,61 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonDataModel + +class vtkmDataSet(vtkmodules.vtkCommonDataModel.vtkDataSet): + actual_memory_size:'getset_descriptor' + data_object_type:'getset_descriptor' + max_cell_size:'getset_descriptor' + number_of_cells:'getset_descriptor' + number_of_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeBounds(self) -> None: ... + def CopyStructure(self, ds:'vtkDataSet') -> None: ... + def DeepCopy(self, src:'vtkDataObject') -> None: ... + @overload + def FindCell(self, x:MutableSequence[float], cell:'vtkCell', cellId:int, tol2:float, subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + @overload + def FindCell(self, x:MutableSequence[float], cell:'vtkCell', gencell:'vtkGenericCell', cellId:int, tol2:float, subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + def FindPoint(self, x:MutableSequence[float]) -> int: ... + def GetActualMemorySize(self) -> int: ... + @overload + def GetCell(self, cellId:int) -> 'vtkCell': ... + @overload + def GetCell(self, cellId:int, cell:'vtkGenericCell') -> None: ... + @overload + def GetCell(self, i:int, j:int, k:int) -> 'vtkCell': ... + def GetCellBounds(self, cellId:int, bounds:MutableSequence[float]) -> None: ... + @overload + def GetCellPoints(self, cellId:int, ptIds:'vtkIdList') -> None: ... + @overload + def GetCellPoints(self, cellId:int, npts:int, pts:Sequence[int], ptIds:'vtkIdList') -> None: ... + def GetCellType(self, cellId:int) -> int: ... + def GetDataObjectType(self) -> int: ... + def GetMaxCellSize(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + @overload + def GetPoint(self, ptId:int) -> Tuple[float, float, float]: ... + @overload + def GetPoint(self, id:int, x:MutableSequence[float]) -> None: ... + def GetPointCells(self, ptId:int, cellIds:'vtkIdList') -> None: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmDataSet': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmDataSet': ... + def ShallowCopy(self, src:'vtkDataObject') -> None: ... + def Squeeze(self) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkAcceleratorsVTKmFilters.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkAcceleratorsVTKmFilters.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..8b11d31 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkAcceleratorsVTKmFilters.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkAcceleratorsVTKmFilters.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkAcceleratorsVTKmFilters.pyi new file mode 100644 index 0000000..3c693db --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkAcceleratorsVTKmFilters.pyi @@ -0,0 +1,427 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkFiltersCore +import vtkmodules.vtkFiltersGeneral +import vtkmodules.vtkImagingCore + +class vtkmAverageToCells(vtkmodules.vtkFiltersCore.vtkPointDataToCellData): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmAverageToCells': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmAverageToCells': ... + +class vtkmAverageToPoints(vtkmodules.vtkFiltersCore.vtkCellDataToPointData): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmAverageToPoints': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmAverageToPoints': ... + +class vtkmCleanGrid(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + compact_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CompactPointsOff(self) -> None: ... + def CompactPointsOn(self) -> None: ... + def GetCompactPoints(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmCleanGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmCleanGrid': ... + def SetCompactPoints(self, _arg:bool) -> None: ... + +class vtkmClip(vtkmodules.vtkFiltersGeneral.vtkTableBasedClipDataSet): + compute_scalars:'getset_descriptor' + force_vt_km:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeScalarsOff(self) -> None: ... + def ComputeScalarsOn(self) -> None: ... + def ForceVTKmOff(self) -> None: ... + def ForceVTKmOn(self) -> None: ... + def GetComputeScalars(self) -> bool: ... + def GetForceVTKm(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmClip': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmClip': ... + def SetComputeScalars(self, _arg:bool) -> None: ... + def SetForceVTKm(self, _arg:int) -> None: ... + +class vtkmContour(vtkmodules.vtkFiltersCore.vtkContourFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmContour': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmContour': ... + +class vtkmCoordinateSystemTransform(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmCoordinateSystemTransform': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmCoordinateSystemTransform': ... + def SetCartesianToCylindrical(self) -> None: ... + def SetCartesianToSpherical(self) -> None: ... + def SetCylindricalToCartesian(self) -> None: ... + def SetSphericalToCartesian(self) -> None: ... + +class vtkmExternalFaces(vtkmodules.vtkCommonExecutionModel.vtkAlgorithm): + compact_points:'getset_descriptor' + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CompactPointsOff(self) -> None: ... + def CompactPointsOn(self) -> None: ... + def GetCompactPoints(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutput(self) -> 'vtkUnstructuredGrid': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmExternalFaces': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmExternalFaces': ... + def SetCompactPoints(self, _arg:bool) -> None: ... + def SetInputData(self, ds:'vtkUnstructuredGrid') -> None: ... + +class vtkmExtractVOI(vtkmodules.vtkImagingCore.vtkExtractVOI): + force_vt_km:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ForceVTKmOff(self) -> None: ... + def ForceVTKmOn(self) -> None: ... + def GetForceVTKm(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmExtractVOI': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmExtractVOI': ... + def SetForceVTKm(self, _arg:int) -> None: ... + +class vtkmFilterOverrides(object): + enabled:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkmFilterOverrides') -> None: ... + @staticmethod + def EnabledOff() -> None: ... + @staticmethod + def EnabledOn() -> None: ... + @staticmethod + def GetEnabled() -> bool: ... + @staticmethod + def SetEnabled(value:bool) -> None: ... + +class vtkmGradient(vtkmodules.vtkFiltersGeneral.vtkGradientFilter): + force_vt_km:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ForceVTKmOff(self) -> None: ... + def ForceVTKmOn(self) -> None: ... + def GetForceVTKm(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmGradient': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmGradient': ... + def SetForceVTKm(self, _arg:int) -> None: ... + +class vtkmHistogram(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + bin_delta:'getset_descriptor' + center_bins_around_min_and_max:'getset_descriptor' + computed_range:'getset_descriptor' + custom_bin_range:'getset_descriptor' + number_of_bins:'getset_descriptor' + use_custom_bin_ranges:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CenterBinsAroundMinAndMaxOff(self) -> None: ... + def CenterBinsAroundMinAndMaxOn(self) -> None: ... + def GetBinDelta(self) -> float: ... + def GetCenterBinsAroundMinAndMax(self) -> bool: ... + def GetComputedRange(self) -> Tuple[float, float]: ... + def GetCustomBinRange(self) -> Tuple[float, float]: ... + def GetNumberOfBins(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseCustomBinRanges(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmHistogram': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmHistogram': ... + def SetCenterBinsAroundMinAndMax(self, _arg:bool) -> None: ... + @overload + def SetCustomBinRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetCustomBinRange(self, _arg:Sequence[float]) -> None: ... + def SetNumberOfBins(self, _arg:int) -> None: ... + def SetUseCustomBinRanges(self, _arg:bool) -> None: ... + def UseCustomBinRangesOff(self) -> None: ... + def UseCustomBinRangesOn(self) -> None: ... + +class vtkmImageConnectivity(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmImageConnectivity': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmImageConnectivity': ... + +class vtkmLevelOfDetail(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + number_of_divisions:'getset_descriptor' + number_of_x_divisions:'getset_descriptor' + number_of_y_divisions:'getset_descriptor' + number_of_z_divisions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetNumberOfDivisions(self) -> Pointer: ... + @overload + def GetNumberOfDivisions(self, div:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfXDivisions(self) -> int: ... + def GetNumberOfYDivisions(self) -> int: ... + def GetNumberOfZDivisions(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmLevelOfDetail': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmLevelOfDetail': ... + @overload + def SetNumberOfDivisions(self, div:MutableSequence[int]) -> None: ... + @overload + def SetNumberOfDivisions(self, div0:int, div1:int, div2:int) -> None: ... + def SetNumberOfXDivisions(self, num:int) -> None: ... + def SetNumberOfYDivisions(self, num:int) -> None: ... + def SetNumberOfZDivisions(self, num:int) -> None: ... + +class vtkmNDHistogram(vtkmodules.vtkCommonExecutionModel.vtkArrayDataAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def AddFieldAndBin(self, fieldName:str, numberOfBins:int) -> None: ... + def GetBinDelta(self, fieldIndex:int) -> float: ... + def GetFieldIndexFromFieldName(self, fieldName:str) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmNDHistogram': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmNDHistogram': ... + +class vtkmPointElevation(vtkmodules.vtkFiltersCore.vtkElevationFilter): + force_vt_km:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ForceVTKmOff(self) -> None: ... + def ForceVTKmOn(self) -> None: ... + def GetForceVTKm(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmPointElevation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmPointElevation': ... + def SetForceVTKm(self, _arg:int) -> None: ... + +class vtkmPointTransform(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + transform:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTransform(self) -> 'vtkHomogeneousTransform': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmPointTransform': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmPointTransform': ... + def SetTransform(self, tf:'vtkHomogeneousTransform') -> None: ... + +class vtkmPolyDataNormals(vtkmodules.vtkFiltersCore.vtkPolyDataNormals): + force_vt_km:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ForceVTKmOff(self) -> None: ... + def ForceVTKmOn(self) -> None: ... + def GetForceVTKm(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmPolyDataNormals': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmPolyDataNormals': ... + def SetForceVTKm(self, _arg:int) -> None: ... + +class vtkmProbe(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + pass_cell_arrays:'getset_descriptor' + pass_field_arrays:'getset_descriptor' + pass_point_arrays:'getset_descriptor' + source:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + valid_cell_mask_array_name:'getset_descriptor' + valid_point_mask_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassCellArrays(self) -> int: ... + def GetPassFieldArrays(self) -> int: ... + def GetPassPointArrays(self) -> int: ... + def GetSource(self) -> 'vtkDataObject': ... + def GetValidCellMaskArrayName(self) -> str: ... + def GetValidPointMaskArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmProbe': ... + def PassCellArraysOff(self) -> None: ... + def PassCellArraysOn(self) -> None: ... + def PassFieldArraysOff(self) -> None: ... + def PassFieldArraysOn(self) -> None: ... + def PassPointArraysOff(self) -> None: ... + def PassPointArraysOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmProbe': ... + def SetPassCellArrays(self, _arg:int) -> None: ... + def SetPassFieldArrays(self, _arg:int) -> None: ... + def SetPassPointArrays(self, _arg:int) -> None: ... + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, source:'vtkDataObject') -> None: ... + def SetValidCellMaskArrayName(self, _arg:str) -> None: ... + def SetValidPointMaskArrayName(self, _arg:str) -> None: ... + +class vtkmSlice(vtkmodules.vtkFiltersCore.vtkCutter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmSlice': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmSlice': ... + +class vtkmThreshold(vtkmodules.vtkFiltersCore.vtkThreshold): + force_vt_km:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ForceVTKmOff(self) -> None: ... + def ForceVTKmOn(self) -> None: ... + def GetForceVTKm(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmThreshold': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmThreshold': ... + def SetForceVTKm(self, _arg:int) -> None: ... + +class vtkmTriangleMeshPointNormals(vtkmodules.vtkFiltersCore.vtkTriangleMeshPointNormals): + force_vt_km:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ForceVTKmOff(self) -> None: ... + def ForceVTKmOn(self) -> None: ... + def GetForceVTKm(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmTriangleMeshPointNormals': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmTriangleMeshPointNormals': ... + def SetForceVTKm(self, _arg:int) -> None: ... + +class vtkmWarpScalar(vtkmodules.vtkFiltersGeneral.vtkWarpScalar): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmWarpScalar': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmWarpScalar': ... + +class vtkmWarpVector(vtkmodules.vtkFiltersGeneral.vtkWarpVector): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkmWarpVector': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkmWarpVector': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkChartsCore.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkChartsCore.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..dfc6e54 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkChartsCore.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkChartsCore.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkChartsCore.pyi new file mode 100644 index 0000000..6ff9915 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkChartsCore.pyi @@ -0,0 +1,2199 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingContext2D + +class vtkAxis(vtkmodules.vtkRenderingContext2D.vtkContextItem): + class Location(int): ... + AUTO:int + BOTTOM:'Location' + CUSTOM:int + FIXED:int + FIXED_NOTATION:int + LEFT:'Location' + PARALLEL:'Location' + PRINTF_NOTATION:int + RIGHT:'Location' + SCIENTIFIC_NOTATION:int + STANDARD_NOTATION:int + TICK_SIMPLE:int + TICK_WILKINSON_EXTENDED:int + TOP:'Location' + axis_visible:'getset_descriptor' + behavior:'getset_descriptor' + grid_pen:'getset_descriptor' + grid_visible:'getset_descriptor' + label_format:'getset_descriptor' + label_offset:'getset_descriptor' + label_properties:'getset_descriptor' + labels_visible:'getset_descriptor' + log_scale:'getset_descriptor' + log_scale_active:'getset_descriptor' + margins:'getset_descriptor' + maximum:'getset_descriptor' + maximum_limit:'getset_descriptor' + minimum:'getset_descriptor' + minimum_limit:'getset_descriptor' + notation:'getset_descriptor' + number_of_ticks:'getset_descriptor' + pen:'getset_descriptor' + point1:'getset_descriptor' + point2:'getset_descriptor' + position:'getset_descriptor' + position1:'getset_descriptor' + position2:'getset_descriptor' + precision:'getset_descriptor' + range:'getset_descriptor' + range_label_format:'getset_descriptor' + range_labels_visible:'getset_descriptor' + scaling_factor:'getset_descriptor' + shift:'getset_descriptor' + tick_label_algorithm:'getset_descriptor' + tick_labels:'getset_descriptor' + tick_length:'getset_descriptor' + tick_positions:'getset_descriptor' + tick_scene_positions:'getset_descriptor' + ticks_visible:'getset_descriptor' + title:'getset_descriptor' + title_properties:'getset_descriptor' + title_visible:'getset_descriptor' + unscaled_maximum:'getset_descriptor' + unscaled_maximum_limit:'getset_descriptor' + unscaled_minimum:'getset_descriptor' + unscaled_minimum_limit:'getset_descriptor' + unscaled_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutoScale(self) -> None: ... + def GenerateSimpleLabel(self, val:float) -> str: ... + def GetAxisVisible(self) -> bool: ... + def GetBehavior(self) -> int: ... + def GetBoundingRect(self, painter:'vtkContext2D') -> 'vtkRectf': ... + def GetGridPen(self) -> 'vtkPen': ... + def GetGridVisible(self) -> bool: ... + def GetLabelFormat(self) -> str: ... + def GetLabelOffset(self) -> float: ... + def GetLabelProperties(self) -> 'vtkTextProperty': ... + def GetLabelsVisible(self) -> bool: ... + def GetLogScale(self) -> bool: ... + def GetLogScaleActive(self) -> bool: ... + def GetMargins(self) -> Tuple[int, int]: ... + def GetMaximum(self) -> float: ... + def GetMaximumLimit(self) -> float: ... + def GetMinimum(self) -> float: ... + def GetMinimumLimit(self) -> float: ... + def GetNotation(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTicks(self) -> int: ... + def GetPen(self) -> 'vtkPen': ... + def GetPoint1(self) -> Tuple[float, float]: ... + def GetPoint2(self) -> Tuple[float, float]: ... + def GetPosition(self) -> int: ... + def GetPosition1(self) -> 'vtkVector2f': ... + def GetPosition2(self) -> 'vtkVector2f': ... + def GetPrecision(self) -> int: ... + def GetRange(self, range:MutableSequence[float]) -> None: ... + def GetRangeLabelFormat(self) -> str: ... + def GetRangeLabelsVisible(self) -> bool: ... + def GetScalingFactor(self) -> float: ... + def GetShift(self) -> float: ... + def GetTickLabelAlgorithm(self) -> int: ... + def GetTickLabels(self) -> 'vtkStringArray': ... + def GetTickLength(self) -> float: ... + def GetTickPositions(self) -> 'vtkDoubleArray': ... + def GetTickScenePositions(self) -> 'vtkFloatArray': ... + def GetTicksVisible(self) -> bool: ... + def GetTitle(self) -> str: ... + def GetTitleProperties(self) -> 'vtkTextProperty': ... + def GetTitleVisible(self) -> bool: ... + def GetUnscaledMaximum(self) -> float: ... + def GetUnscaledMaximumLimit(self) -> float: ... + def GetUnscaledMinimum(self) -> float: ... + def GetUnscaledMinimumLimit(self) -> float: ... + def GetUnscaledRange(self, range:MutableSequence[float]) -> None: ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LogScaleOff(self) -> None: ... + def LogScaleOn(self) -> None: ... + def NewInstance(self) -> 'vtkAxis': ... + @staticmethod + def NiceMinMax(min:float, max:float, pixelRange:float, tickPixelSpacing:float) -> float: ... + @staticmethod + def NiceNumber(number:float, roundUp:bool) -> float: ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def RecalculateTickSpacing(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAxis': ... + def SetAxisVisible(self, _arg:bool) -> None: ... + def SetBehavior(self, _arg:int) -> None: ... + def SetCustomTickPositions(self, positions:'vtkDoubleArray', labels:'vtkStringArray'=...) -> bool: ... + def SetGridPen(self, _arg:'vtkPen') -> None: ... + def SetGridVisible(self, _arg:bool) -> None: ... + def SetLabelFormat(self, fmt:str) -> None: ... + def SetLabelOffset(self, _arg:float) -> None: ... + def SetLabelsVisible(self, _arg:bool) -> None: ... + def SetLogScale(self, logScale:bool) -> None: ... + @overload + def SetMargins(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetMargins(self, _arg:Sequence[int]) -> None: ... + def SetMaximum(self, maximum:float) -> None: ... + def SetMaximumLimit(self, highest:float) -> None: ... + def SetMinimum(self, minimum:float) -> None: ... + def SetMinimumLimit(self, lowest:float) -> None: ... + def SetNotation(self, notation:int) -> None: ... + def SetNumberOfTicks(self, numberOfTicks:int) -> None: ... + def SetPen(self, _arg:'vtkPen') -> None: ... + @overload + def SetPoint1(self, pos:'vtkVector2f') -> None: ... + @overload + def SetPoint1(self, x:float, y:float) -> None: ... + @overload + def SetPoint2(self, pos:'vtkVector2f') -> None: ... + @overload + def SetPoint2(self, x:float, y:float) -> None: ... + def SetPosition(self, position:int) -> None: ... + def SetPrecision(self, precision:int) -> None: ... + @overload + def SetRange(self, minimum:float, maximum:float) -> None: ... + @overload + def SetRange(self, range:MutableSequence[float]) -> None: ... + def SetRangeLabelFormat(self, _arg:str) -> None: ... + def SetRangeLabelsVisible(self, _arg:bool) -> None: ... + def SetScalingFactor(self, _arg:float) -> None: ... + def SetShift(self, _arg:float) -> None: ... + def SetTickLabelAlgorithm(self, _arg:int) -> None: ... + def SetTickLength(self, _arg:float) -> None: ... + def SetTicksVisible(self, _arg:bool) -> None: ... + def SetTitle(self, title:str) -> None: ... + def SetTitleVisible(self, _arg:bool) -> None: ... + def SetUnscaledMaximum(self, maximum:float) -> None: ... + def SetUnscaledMaximumLimit(self, highest:float) -> None: ... + def SetUnscaledMinimum(self, minimum:float) -> None: ... + def SetUnscaledMinimumLimit(self, lowest:float) -> None: ... + @overload + def SetUnscaledRange(self, minimum:float, maximum:float) -> None: ... + @overload + def SetUnscaledRange(self, range:MutableSequence[float]) -> None: ... + def Update(self) -> None: ... + +class vtkAxisExtended(vtkmodules.vtkCommonCore.vtkObject): + desired_font_size:'getset_descriptor' + font_size:'getset_descriptor' + is_axis_vertical:'getset_descriptor' + label_format:'getset_descriptor' + orientation:'getset_descriptor' + precision:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def Coverage(dmin:float, dmax:float, lmin:float, lmax:float) -> float: ... + @staticmethod + def CoverageMax(dmin:float, dmax:float, span:float) -> float: ... + @staticmethod + def Density(k:int, m:float, dmin:float, dmax:float, lmin:float, lmax:float) -> float: ... + @staticmethod + def DensityMax(k:int, m:float) -> float: ... + @staticmethod + def FormatLegibilityScore(n:float, format:int) -> float: ... + @staticmethod + def FormatStringLength(format:int, n:float, precision:int) -> int: ... + def GenerateExtendedTickLabels(self, dmin:float, dmax:float, m:float, scaling:float) -> 'vtkVector3d': ... + def GetDesiredFontSize(self) -> int: ... + def GetFontSize(self) -> int: ... + def GetIsAxisVertical(self) -> bool: ... + def GetLabelFormat(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientation(self) -> int: ... + def GetPrecision(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAxisExtended': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAxisExtended': ... + def SetDesiredFontSize(self, _arg:int) -> None: ... + def SetFontSize(self, _arg:int) -> None: ... + def SetIsAxisVertical(self, _arg:bool) -> None: ... + def SetLabelFormat(self, _arg:int) -> None: ... + def SetOrientation(self, _arg:int) -> None: ... + def SetPrecision(self, _arg:int) -> None: ... + @staticmethod + def Simplicity(qIndex:int, qLength:int, j:int, lmin:float, lmax:float, lstep:float) -> float: ... + @staticmethod + def SimplicityMax(qIndex:int, qLength:int, j:int) -> float: ... + +class vtkChartLegend(vtkmodules.vtkRenderingContext2D.vtkContextItem): + BOTTOM:int + CENTER:int + CUSTOM:int + LEFT:int + RIGHT:int + TOP:int + brush:'getset_descriptor' + cache_bounds:'getset_descriptor' + chart:'getset_descriptor' + drag_enabled:'getset_descriptor' + horizontal_alignment:'getset_descriptor' + inline:'getset_descriptor' + label_properties:'getset_descriptor' + label_size:'getset_descriptor' + padding:'getset_descriptor' + pen:'getset_descriptor' + point:'getset_descriptor' + point_is_normalized:'getset_descriptor' + point_vector:'getset_descriptor' + symbol_width:'getset_descriptor' + vertical_alignment:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CacheBoundsOff(self) -> None: ... + def CacheBoundsOn(self) -> None: ... + def GetBoundingRect(self, painter:'vtkContext2D') -> 'vtkRectf': ... + def GetBrush(self) -> 'vtkBrush': ... + def GetCacheBounds(self) -> bool: ... + def GetChart(self) -> 'vtkChart': ... + def GetDragEnabled(self) -> bool: ... + def GetHorizontalAlignment(self) -> int: ... + def GetInline(self) -> bool: ... + def GetLabelProperties(self) -> 'vtkTextProperty': ... + def GetLabelSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPadding(self) -> int: ... + def GetPen(self) -> 'vtkPen': ... + def GetPoint(self) -> Tuple[float, float]: ... + def GetPointIsNormalized(self) -> bool: ... + def GetPointVector(self) -> 'vtkVector2f': ... + def GetSymbolWidth(self) -> int: ... + def GetVerticalAlignment(self) -> int: ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MouseButtonPressEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseButtonReleaseEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseMoveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def NewInstance(self) -> 'vtkChartLegend': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def PointIsNormalizedOff(self) -> None: ... + def PointIsNormalizedOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkChartLegend': ... + def SetCacheBounds(self, _arg:bool) -> None: ... + def SetChart(self, chart:'vtkChart') -> None: ... + def SetDragEnabled(self, _arg:bool) -> None: ... + def SetHorizontalAlignment(self, _arg:int) -> None: ... + def SetInline(self, _arg:bool) -> None: ... + def SetLabelSize(self, size:int) -> None: ... + def SetPadding(self, _arg:int) -> None: ... + @overload + def SetPoint(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetPoint(self, _arg:Sequence[float]) -> None: ... + @overload + def SetPoint(self, point:'vtkVector2f') -> None: ... + def SetPointIsNormalized(self, _arg:bool) -> None: ... + def SetSymbolWidth(self, _arg:int) -> None: ... + def SetVerticalAlignment(self, _arg:int) -> None: ... + def Update(self) -> None: ... + +class vtkCategoryLegend(vtkChartLegend): + HORIZONTAL:int + VERTICAL:int + outlier_label:'getset_descriptor' + scalars_to_colors:'getset_descriptor' + title:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBoundingRect(self, painter:'vtkContext2D') -> 'vtkRectf': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutlierLabel(self) -> str: ... + def GetScalarsToColors(self) -> 'vtkScalarsToColors': ... + def GetTitle(self) -> str: ... + def GetValues(self) -> 'vtkVariantArray': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCategoryLegend': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCategoryLegend': ... + def SetOutlierLabel(self, _arg:str) -> None: ... + def SetScalarsToColors(self, __a:'vtkScalarsToColors') -> None: ... + def SetTitle(self, title:str) -> None: ... + def SetValues(self, __a:'vtkVariantArray') -> None: ... + +class vtkChart(vtkmodules.vtkRenderingContext2D.vtkContextItem): + class EventIds(int): ... + ACTION_TYPES_COUNT:int + AREA:int + AXES_TO_RECT:int + BAG:int + BAR:int + CLICK_AND_DRAG:int + FILL_RECT:int + FILL_SCENE:int + FUNCTIONALBAG:int + LINE:int + NOTIFY:int + PAN:int + POINTS:int + SELECT:int + SELECTION_COLUMNS:int + SELECTION_PLOTS:int + SELECTION_ROWS:int + SELECT_POLYGON:int + SELECT_RECTANGLE:int + STACKED:int + UpdateRange:'EventIds' + ZOOM:int + ZOOM_AXIS:int + action_to_button:'getset_descriptor' + annotation_link:'getset_descriptor' + auto_size:'getset_descriptor' + background_brush:'getset_descriptor' + borders:'getset_descriptor' + bottom_border:'getset_descriptor' + click_action_to_button:'getset_descriptor' + geometry:'getset_descriptor' + layout_strategy:'getset_descriptor' + left_border:'getset_descriptor' + legend:'getset_descriptor' + number_of_axes:'getset_descriptor' + number_of_plots:'getset_descriptor' + point1:'getset_descriptor' + point2:'getset_descriptor' + render_empty:'getset_descriptor' + right_border:'getset_descriptor' + selection_method:'getset_descriptor' + selection_mode:'getset_descriptor' + show_legend:'getset_descriptor' + size:'getset_descriptor' + title:'getset_descriptor' + title_properties:'getset_descriptor' + top_border:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddPlot(self, type:int) -> 'vtkPlot': ... + @overload + def AddPlot(self, plot:'vtkPlot') -> int: ... + def ClearPlots(self) -> None: ... + def GetActionToButton(self, action:int) -> int: ... + def GetAnnotationLink(self) -> 'vtkAnnotationLink': ... + def GetAutoSize(self) -> bool: ... + def GetAxis(self, axisIndex:int) -> 'vtkAxis': ... + def GetBackgroundBrush(self) -> 'vtkBrush': ... + def GetClickActionToButton(self, action:int) -> int: ... + def GetGeometry(self) -> Tuple[int, int]: ... + def GetLayoutStrategy(self) -> int: ... + def GetLegend(self) -> 'vtkChartLegend': ... + def GetNumberOfAxes(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPlots(self) -> int: ... + def GetPlot(self, index:int) -> 'vtkPlot': ... + def GetPoint1(self) -> Tuple[int, int]: ... + def GetPoint2(self) -> Tuple[int, int]: ... + def GetRenderEmpty(self) -> bool: ... + def GetSelectionMethod(self) -> int: ... + def GetSelectionMode(self) -> int: ... + def GetSelectionModeMaxValue(self) -> int: ... + def GetSelectionModeMinValue(self) -> int: ... + def GetShowLegend(self) -> bool: ... + def GetSize(self) -> 'vtkRectf': ... + def GetTitle(self) -> str: ... + def GetTitleProperties(self) -> 'vtkTextProperty': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkChart': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def RecalculateBounds(self) -> None: ... + def RemoveAllPlots(self) -> None: ... + @overload + def RemovePlot(self, index:int) -> bool: ... + @overload + def RemovePlot(self, plot:'vtkPlot') -> bool: ... + def RemovePlotInstance(self, plot:'vtkPlot') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkChart': ... + def SetActionToButton(self, action:int, button:int) -> None: ... + def SetAnnotationLink(self, link:'vtkAnnotationLink') -> None: ... + def SetAutoSize(self, isAutoSized:bool) -> None: ... + def SetAxis(self, axisIndex:int, __b:'vtkAxis') -> None: ... + def SetBackgroundBrush(self, brush:'vtkBrush') -> None: ... + def SetBorders(self, left:int, bottom:int, right:int, top:int) -> None: ... + def SetBottomBorder(self, border:int) -> None: ... + def SetClickActionToButton(self, action:int, button:int) -> None: ... + @overload + def SetGeometry(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetGeometry(self, _arg:Sequence[int]) -> None: ... + def SetLayoutStrategy(self, _arg:int) -> None: ... + def SetLeftBorder(self, border:int) -> None: ... + @overload + def SetPoint1(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetPoint1(self, _arg:Sequence[int]) -> None: ... + @overload + def SetPoint2(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetPoint2(self, _arg:Sequence[int]) -> None: ... + def SetRenderEmpty(self, _arg:bool) -> None: ... + def SetRightBorder(self, border:int) -> None: ... + def SetSelectionMethod(self, method:int) -> None: ... + def SetSelectionMode(self, _arg:int) -> None: ... + def SetShowLegend(self, visible:bool) -> None: ... + def SetSize(self, rect:'vtkRectf') -> None: ... + def SetTitle(self, title:str) -> None: ... + def SetTopBorder(self, border:int) -> None: ... + +class vtkChartBox(vtkChart): + column_visibility_all:'getset_descriptor' + geometry:'getset_descriptor' + layout_strategy:'getset_descriptor' + number_of_plots:'getset_descriptor' + number_of_visible_columns:'getset_descriptor' + plot:'getset_descriptor' + selected_column:'getset_descriptor' + size:'getset_descriptor' + tooltip:'getset_descriptor' + visible_columns:'getset_descriptor' + y_axis:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetColumnId(self, name:str) -> int: ... + @overload + def GetColumnVisibility(self, name:str) -> bool: ... + @overload + def GetColumnVisibility(self, column:int) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPlots(self) -> int: ... + def GetNumberOfVisibleColumns(self) -> int: ... + def GetPlot(self, index:int) -> 'vtkPlot': ... + def GetSelectedColumn(self) -> int: ... + def GetTooltip(self) -> 'vtkTooltipItem': ... + def GetVisibleColumns(self) -> 'vtkStringArray': ... + def GetXPosition(self, index:int) -> float: ... + def GetYAxis(self) -> 'vtkAxis': ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MouseButtonPressEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseButtonReleaseEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseMoveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def NewInstance(self) -> 'vtkChartBox': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkChartBox': ... + @overload + def SetColumnVisibility(self, name:str, visible:bool) -> None: ... + @overload + def SetColumnVisibility(self, column:int, visible:bool) -> None: ... + def SetColumnVisibilityAll(self, visible:bool) -> None: ... + def SetGeometry(self, arg1:int, arg2:int) -> None: ... + def SetLayoutStrategy(self, strategy:int) -> None: ... + def SetPlot(self, plot:'vtkPlotBox') -> None: ... + def SetSelectedColumn(self, _arg:int) -> None: ... + def SetSize(self, rect:'vtkRectf') -> None: ... + def SetTooltip(self, tooltip:'vtkTooltipItem') -> None: ... + def SetTooltipInfo(self, __a:'vtkContextMouseEvent', __b:'vtkVector2d', __c:int, __d:'vtkPlot', segmentIndex:int=-1) -> None: ... + def Update(self) -> None: ... + +class vtkChartBoxData(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkChartBoxData') -> None: ... + +class vtkChartXY(vtkChart): + adjust_lower_bound_for_log_plot:'getset_descriptor' + auto_axes:'getset_descriptor' + bar_width_fraction:'getset_descriptor' + drag_point_along_x:'getset_descriptor' + drag_point_along_y:'getset_descriptor' + draw_axes_at_origin:'getset_descriptor' + force_axes_to_bounds:'getset_descriptor' + hidden_axis_border:'getset_descriptor' + ignore_nan_in_bounds:'getset_descriptor' + legend:'getset_descriptor' + number_of_axes:'getset_descriptor' + number_of_plots:'getset_descriptor' + selection_method:'getset_descriptor' + show_legend:'getset_descriptor' + tooltip:'getset_descriptor' + zoom_with_mouse_wheel:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddPlot(self, type:int) -> 'vtkPlot': ... + @overload + def AddPlot(self, type:int, blockIndex:int) -> 'vtkPlot': ... + @overload + def AddPlot(self, plot:'vtkPlot') -> int: ... + @overload + def AddPlot(self, plot:'vtkPlot', blockIndex:int) -> int: ... + @staticmethod + def AddSelection(selection:'vtkIdTypeArray', oldSelection:'vtkIdTypeArray') -> None: ... + def AdjustLowerBoundForLogPlotOff(self) -> None: ... + def AdjustLowerBoundForLogPlotOn(self) -> None: ... + def AutoAxesOff(self) -> None: ... + def AutoAxesOn(self) -> None: ... + @staticmethod + def BuildSelection(link:'vtkAnnotationLink', selectionMode:int, plotSelection:'vtkIdTypeArray', oldSelection:'vtkIdTypeArray', plot:'vtkPlot') -> None: ... + def ClearPlots(self) -> None: ... + def DragPointAlongXOff(self) -> None: ... + def DragPointAlongXOn(self) -> None: ... + def DragPointAlongYOff(self) -> None: ... + def DragPointAlongYOn(self) -> None: ... + def DrawAxesAtOriginOff(self) -> None: ... + def DrawAxesAtOriginOn(self) -> None: ... + def ForceAxesToBoundsOff(self) -> None: ... + def ForceAxesToBoundsOn(self) -> None: ... + def GetAdjustLowerBoundForLogPlot(self) -> bool: ... + def GetAutoAxes(self) -> bool: ... + def GetAxis(self, axisIndex:int) -> 'vtkAxis': ... + def GetAxisZoom(self, index:int) -> bool: ... + def GetBarWidthFraction(self) -> float: ... + def GetDragPointAlongX(self) -> bool: ... + def GetDragPointAlongY(self) -> bool: ... + def GetDrawAxesAtOrigin(self) -> bool: ... + def GetForceAxesToBounds(self) -> bool: ... + def GetHiddenAxisBorder(self) -> int: ... + def GetIgnoreNanInBounds(self) -> bool: ... + def GetLegend(self) -> 'vtkChartLegend': ... + @staticmethod + def GetMouseSelectionMode(mouse:'vtkContextMouseEvent', selectionMode:int) -> int: ... + def GetNumberOfAxes(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPlots(self) -> int: ... + def GetPlot(self, index:int) -> 'vtkPlot': ... + def GetPlotCorner(self, plot:'vtkPlot') -> int: ... + def GetPlotIndex(self, __a:'vtkPlot') -> int: ... + def GetTooltip(self) -> 'vtkTooltipItem': ... + def GetZoomWithMouseWheel(self) -> bool: ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def IgnoreNanInBoundsOff(self) -> None: ... + def IgnoreNanInBoundsOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def KeyPressEvent(self, key:'vtkContextKeyEvent') -> bool: ... + def LowerPlot(self, plot:'vtkPlot') -> int: ... + @staticmethod + def MakeSelection(link:'vtkAnnotationLink', selectionIds:'vtkIdTypeArray', plot:'vtkPlot') -> None: ... + @staticmethod + def MinusSelection(selection:'vtkIdTypeArray', oldSelection:'vtkIdTypeArray') -> None: ... + def MouseButtonPressEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseButtonReleaseEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseEnterEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseLeaveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseMoveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseWheelEvent(self, mouse:'vtkContextMouseEvent', delta:int) -> bool: ... + def NewInstance(self) -> 'vtkChartXY': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def RaisePlot(self, plot:'vtkPlot') -> int: ... + def RecalculateBounds(self) -> None: ... + def RemovePlot(self, index:int) -> bool: ... + def RemovePlotSelections(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkChartXY': ... + def SetAdjustLowerBoundForLogPlot(self, _arg:bool) -> None: ... + def SetAutoAxes(self, _arg:bool) -> None: ... + def SetAxis(self, axisIndex:int, __b:'vtkAxis') -> None: ... + def SetAxisZoom(self, index:int, v:bool) -> None: ... + def SetBarWidthFraction(self, _arg:float) -> None: ... + def SetDragPointAlongX(self, _arg:bool) -> None: ... + def SetDragPointAlongY(self, _arg:bool) -> None: ... + def SetDrawAxesAtOrigin(self, _arg:bool) -> None: ... + def SetForceAxesToBounds(self, _arg:bool) -> None: ... + def SetHiddenAxisBorder(self, _arg:int) -> None: ... + def SetIgnoreNanInBounds(self, _arg:bool) -> None: ... + def SetPlotCorner(self, plot:'vtkPlot', corner:int) -> None: ... + def SetSelectionMethod(self, method:int) -> None: ... + def SetShowLegend(self, visible:bool) -> None: ... + def SetTooltip(self, tooltip:'vtkTooltipItem') -> None: ... + def SetTooltipInfo(self, __a:'vtkContextMouseEvent', __b:'vtkVector2d', __c:int, __d:'vtkPlot', segmentIndex:int=-1) -> None: ... + def SetZoomWithMouseWheel(self, _arg:bool) -> None: ... + def StackPlotAbove(self, plot:'vtkPlot', under:'vtkPlot') -> int: ... + def StackPlotUnder(self, plot:'vtkPlot', above:'vtkPlot') -> int: ... + @staticmethod + def ToggleSelection(selection:'vtkIdTypeArray', oldSelection:'vtkIdTypeArray') -> None: ... + def Update(self) -> None: ... + def ZoomWithMouseWheelOff(self) -> None: ... + def ZoomWithMouseWheelOn(self) -> None: ... + +class vtkChartHistogram2D(vtkChartXY): + transfer_function:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPlot(self, index:int) -> 'vtkPlot': ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkChartHistogram2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkChartHistogram2D': ... + def SetInputData(self, data:'vtkImageData', z:int=0) -> None: ... + def SetTransferFunction(self, function:'vtkScalarsToColors') -> None: ... + def Update(self) -> None: ... + +class vtkChartMatrix(vtkmodules.vtkRenderingContext2D.vtkAbstractContextItem): + class StretchType(int): + CUSTOM:'StretchType' + SCENE:'StretchType' + border_bottom:'getset_descriptor' + border_left:'getset_descriptor' + border_right:'getset_descriptor' + border_top:'getset_descriptor' + borders:'getset_descriptor' + fill_strategy:'getset_descriptor' + gutter:'getset_descriptor' + gutter_x:'getset_descriptor' + gutter_y:'getset_descriptor' + number_of_charts:'getset_descriptor' + padding:'getset_descriptor' + rect:'getset_descriptor' + size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self) -> None: ... + def ClearSpecificResizes(self) -> None: ... + def ComputeCurrentElementSceneRect(self, index:'vtkVector2i', offset:'vtkVector2f', increment:'vtkVector2f') -> 'vtkRectf': ... + def GetBorders(self, borders:MutableSequence[int]) -> None: ... + def GetChart(self, position:'vtkVector2i') -> 'vtkChart': ... + def GetChartIndex(self, position:'vtkVector2f') -> 'vtkVector2i': ... + def GetChartMatrix(self, position:'vtkVector2i') -> 'vtkChartMatrix': ... + def GetChartSpan(self, position:'vtkVector2i') -> 'vtkVector2i': ... + def GetFillStrategy(self) -> 'StretchType': ... + def GetFlatIndex(self, index:'vtkVector2i') -> int: ... + def GetGutter(self) -> 'vtkVector2f': ... + def GetNumberOfCharts(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRect(self) -> 'vtkRecti': ... + def GetSize(self) -> 'vtkVector2i': ... + def GoToNextElement(self, index:'vtkVector2i', offset:'vtkVector2f') -> None: ... + def InitLayoutTraversal(self, index:'vtkVector2i', offset:'vtkVector2f', increment:'vtkVector2f') -> None: ... + def IsA(self, type:str) -> int: ... + def IsDoneWithTraversal(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LabelOuter(self, leftBottomIdx:'vtkVector2i', rightTopIdx:'vtkVector2i') -> None: ... + @overload + def Link(self, index1:'vtkVector2i', index2:'vtkVector2i', axis:int=1) -> None: ... + @overload + def Link(self, flatIndex1:int, flatIndex2:int, axis:int=1) -> None: ... + @overload + def LinkAll(self, index:'vtkVector2i', axis:int=1) -> None: ... + @overload + def LinkAll(self, flatIndex:int, axis:int=1) -> None: ... + def NewInstance(self) -> 'vtkChartMatrix': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def ResetLinkedLayout(self) -> None: ... + def ResetLinks(self, axis:int=1) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkChartMatrix': ... + def SetBorderBottom(self, value:int) -> None: ... + def SetBorderLeft(self, value:int) -> None: ... + def SetBorderRight(self, value:int) -> None: ... + def SetBorderTop(self, value:int) -> None: ... + def SetBorders(self, left:int, bottom:int, right:int, top:int) -> None: ... + def SetChart(self, position:'vtkVector2i', chart:'vtkChart') -> bool: ... + def SetChartMatrix(self, position:'vtkVector2i', chartMatrix:'vtkChartMatrix') -> bool: ... + def SetChartSpan(self, position:'vtkVector2i', span:'vtkVector2i') -> bool: ... + def SetFillStrategy(self, _arg:'StretchType') -> None: ... + def SetGutter(self, gutter:'vtkVector2f') -> None: ... + def SetGutterX(self, value:float) -> None: ... + def SetGutterY(self, value:float) -> None: ... + def SetPadding(self, padding:float) -> None: ... + def SetRect(self, rect:'vtkRecti') -> None: ... + def SetSize(self, size:'vtkVector2i') -> None: ... + def SetSpecificResize(self, index:'vtkVector2i', resize:'vtkVector2f') -> None: ... + @overload + def Unlink(self, index1:'vtkVector2i', index2:'vtkVector2i', axis:int=1) -> None: ... + @overload + def Unlink(self, flatIndex1:int, flatIndex2:int, axis:int=1) -> None: ... + @overload + def UnlinkAll(self, index:'vtkVector2i', axis:int=1) -> None: ... + @overload + def UnlinkAll(self, flatIndex:int, axis:int=1) -> None: ... + def Update(self) -> None: ... + +class vtkChartParallelCoordinates(vtkChart): + column_visibility_all:'getset_descriptor' + legend:'getset_descriptor' + number_of_axes:'getset_descriptor' + number_of_plots:'getset_descriptor' + plot:'getset_descriptor' + show_legend:'getset_descriptor' + visible_columns:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAxis(self, axisIndex:int) -> 'vtkAxis': ... + def GetColumnVisibility(self, name:str) -> bool: ... + def GetLegend(self) -> 'vtkChartLegend': ... + def GetNumberOfAxes(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPlots(self) -> int: ... + def GetPlot(self, index:int) -> 'vtkPlot': ... + def GetVisibleColumns(self) -> 'vtkStringArray': ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MouseButtonPressEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseButtonReleaseEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseEnterEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseLeaveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseMoveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseWheelEvent(self, mouse:'vtkContextMouseEvent', delta:int) -> bool: ... + def NewInstance(self) -> 'vtkChartParallelCoordinates': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def PaintRect(self, painter:'vtkContext2D', axis:int, min:float, max:float) -> bool: ... + def RecalculateBounds(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkChartParallelCoordinates': ... + def SetColumnVisibility(self, name:str, visible:bool) -> None: ... + def SetColumnVisibilityAll(self, visible:bool) -> None: ... + def SetPlot(self, plot:'vtkPlotParallelCoordinates') -> None: ... + def SetShowLegend(self, visible:bool) -> None: ... + def SetVisibleColumns(self, visColumns:'vtkStringArray') -> None: ... + def Update(self) -> None: ... + def UpdateCurrentAxisSelection(self, axisId:int) -> None: ... + +class vtkChartPie(vtkChart): + legend:'getset_descriptor' + number_of_plots:'getset_descriptor' + plot:'getset_descriptor' + scene:'getset_descriptor' + show_legend:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddPlot(self, type:int) -> 'vtkPlot': ... + @overload + def AddPlot(self, plot:'vtkPlot') -> int: ... + def GetLegend(self) -> 'vtkChartLegend': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPlots(self) -> int: ... + def GetPlot(self, index:int) -> 'vtkPlot': ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MouseButtonPressEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseButtonReleaseEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseEnterEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseLeaveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseMoveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseWheelEvent(self, mouse:'vtkContextMouseEvent', delta:int) -> bool: ... + def NewInstance(self) -> 'vtkChartPie': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkChartPie': ... + def SetPlot(self, plot:'vtkPlotPie') -> None: ... + def SetScene(self, scene:'vtkContextScene') -> None: ... + def SetShowLegend(self, visible:bool) -> None: ... + def Update(self) -> None: ... + +class vtkChartPlotData(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkChartPlotData') -> None: ... + +class vtkChartXYZ(vtkmodules.vtkRenderingContext2D.vtkContextItem): + angle:'getset_descriptor' + annotation_link:'getset_descriptor' + around_x:'getset_descriptor' + auto_rotate:'getset_descriptor' + axes_text_property:'getset_descriptor' + axis_color:'getset_descriptor' + clipping_planes_enabled:'getset_descriptor' + decorate_axes:'getset_descriptor' + ensure_outer_edge_axis_labelling:'getset_descriptor' + fit_to_scene:'getset_descriptor' + geometry:'getset_descriptor' + margins:'getset_descriptor' + scale_box_with_plot:'getset_descriptor' + x_axis_label:'getset_descriptor' + y_axis_label:'getset_descriptor' + z_axis_label:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddPlot(self, plot:'vtkPlot3D') -> int: ... + def ClearPlots(self) -> None: ... + def GetAxesTextProperty(self) -> 'vtkTextProperty': ... + def GetAxis(self, axis:int) -> 'vtkAxis': ... + def GetAxisColor(self) -> 'vtkColor4ub': ... + def GetClippingPlanesEnabled(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScaleBoxWithPlot(self) -> bool: ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def KeyPressEvent(self, key:'vtkContextKeyEvent') -> bool: ... + def MouseButtonPressEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseMoveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseWheelEvent(self, mouse:'vtkContextMouseEvent', delta:int) -> bool: ... + def NewInstance(self) -> 'vtkChartXYZ': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def RecalculateBounds(self) -> None: ... + def RecalculateTransform(self) -> None: ... + def RemovePlot(self, plot:'vtkPlot3D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkChartXYZ': ... + def SetAngle(self, _arg:float) -> None: ... + def SetAnnotationLink(self, link:'vtkAnnotationLink') -> None: ... + def SetAroundX(self, isX:bool) -> None: ... + def SetAutoRotate(self, _arg:bool) -> None: ... + def SetAxis(self, axisIndex:int, axis:'vtkAxis') -> None: ... + def SetAxisColor(self, color:'vtkColor4ub') -> None: ... + def SetClippingPlanesEnabled(self, __a:bool) -> None: ... + def SetDecorateAxes(self, b:bool) -> None: ... + def SetEnsureOuterEdgeAxisLabelling(self, _arg:bool) -> None: ... + def SetFitToScene(self, b:bool) -> None: ... + def SetGeometry(self, bounds:'vtkRectf') -> None: ... + def SetMargins(self, margins:'vtkVector4i') -> None: ... + def SetScaleBoxWithPlot(self, _arg:bool) -> None: ... + def SetXAxisLabel(self, _arg:str) -> None: ... + def SetYAxisLabel(self, _arg:str) -> None: ... + def SetZAxisLabel(self, _arg:str) -> None: ... + def Update(self) -> None: ... + +class vtkColorLegend(vtkChartLegend): + HORIZONTAL:int + VERTICAL:int + draw_border:'getset_descriptor' + orientation:'getset_descriptor' + point:'getset_descriptor' + position:'getset_descriptor' + texture_size:'getset_descriptor' + title:'getset_descriptor' + transfer_function:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DrawBorderOff(self) -> None: ... + def DrawBorderOn(self) -> None: ... + def GetBoundingRect(self, painter:'vtkContext2D') -> 'vtkRectf': ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetDrawBorder(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientation(self) -> int: ... + def GetPosition(self) -> 'vtkRectf': ... + def GetTitle(self) -> str: ... + def GetTransferFunction(self) -> 'vtkScalarsToColors': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MouseMoveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def NewInstance(self) -> 'vtkColorLegend': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkColorLegend': ... + def SetDrawBorder(self, _arg:bool) -> None: ... + def SetOrientation(self, orientation:int) -> None: ... + def SetPoint(self, x:float, y:float) -> None: ... + def SetPosition(self, pos:'vtkRectf') -> None: ... + def SetTextureSize(self, w:float, h:float) -> None: ... + def SetTitle(self, title:str) -> None: ... + def SetTransferFunction(self, transfer:'vtkScalarsToColors') -> None: ... + def Update(self) -> None: ... + +class vtkPlot(vtkmodules.vtkRenderingContext2D.vtkContextItem): + brush:'getset_descriptor' + color:'getset_descriptor' + color_f:'getset_descriptor' + data:'getset_descriptor' + indexed_labels:'getset_descriptor' + input:'getset_descriptor' + input_connection:'getset_descriptor' + input_data:'getset_descriptor' + label:'getset_descriptor' + labels:'getset_descriptor' + legend_visibility:'getset_descriptor' + pen:'getset_descriptor' + selectable:'getset_descriptor' + selection:'getset_descriptor' + selection_brush:'getset_descriptor' + selection_pen:'getset_descriptor' + shift_scale:'getset_descriptor' + tooltip_label_format:'getset_descriptor' + tooltip_notation:'getset_descriptor' + tooltip_precision:'getset_descriptor' + use_index_for_x_series:'getset_descriptor' + width:'getset_descriptor' + x_axis:'getset_descriptor' + x_axis_input_array_to_process:'getset_descriptor' + y_axis:'getset_descriptor' + y_axis_input_array_to_process:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + @staticmethod + def ClampPos(pos:MutableSequence[float], bounds:MutableSequence[float]) -> bool: ... + @overload + def ClampPos(self, pos:MutableSequence[float]) -> bool: ... + @staticmethod + def FilterSelectedPoints(points:'vtkDataArray', selectedPoints:'vtkDataArray', selectedIds:'vtkIdTypeArray') -> None: ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetBrush(self) -> 'vtkBrush': ... + def GetColor(self, rgb:MutableSequence[int]) -> None: ... + def GetColorF(self, rgb:MutableSequence[float]) -> None: ... + def GetColorRGBA(self, rgba:MutableSequence[int]) -> None: ... + def GetData(self) -> 'vtkContextMapper2D': ... + def GetIndexedLabels(self) -> 'vtkStringArray': ... + def GetInput(self) -> 'vtkTable': ... + def GetInputConnection(self) -> 'vtkAlgorithmOutput': ... + @overload + def GetLabel(self) -> str: ... + @overload + def GetLabel(self, index:int) -> str: ... + def GetLabels(self) -> 'vtkStringArray': ... + def GetLegendVisibility(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLabels(self) -> int: ... + def GetPen(self) -> 'vtkPen': ... + def GetProperty(self, property:str) -> 'vtkVariant': ... + def GetSelectable(self) -> bool: ... + def GetSelection(self) -> 'vtkIdTypeArray': ... + def GetSelectionBrush(self) -> 'vtkBrush': ... + def GetSelectionPen(self) -> 'vtkPen': ... + def GetShiftScale(self) -> 'vtkRectd': ... + def GetTooltipLabel(self, plotPos:'vtkVector2d', seriesIndex:int, segmentIndex:int) -> str: ... + def GetTooltipLabelFormat(self) -> str: ... + def GetTooltipNotation(self) -> int: ... + def GetTooltipPrecision(self) -> int: ... + def GetUnscaledInputBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetUseIndexForXSeries(self) -> bool: ... + def GetWidth(self) -> float: ... + def GetXAxis(self) -> 'vtkAxis': ... + def GetXAxisInputArrayToProcess(self) -> str: ... + def GetYAxis(self) -> 'vtkAxis': ... + def GetYAxisInputArrayToProcess(self) -> str: ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LegendVisibilityOff(self) -> None: ... + def LegendVisibilityOn(self) -> None: ... + def NewInstance(self) -> 'vtkPlot': ... + def PaintLegend(self, painter:'vtkContext2D', rect:'vtkRectf', legendIndex:int) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlot': ... + def SelectPoints(self, min:'vtkVector2f', max:'vtkVector2f') -> bool: ... + def SelectPointsInPolygon(self, polygon:'vtkContextPolygon') -> bool: ... + def SelectableOff(self) -> None: ... + def SelectableOn(self) -> None: ... + def SetBrush(self, brush:'vtkBrush') -> None: ... + @overload + def SetColor(self, r:int, g:int, b:int, a:int) -> None: ... + @overload + def SetColor(self, r:int, g:int, b:int) -> None: ... + @overload + def SetColorF(self, r:float, g:float, b:float, a:float) -> None: ... + @overload + def SetColorF(self, r:float, g:float, b:float) -> None: ... + def SetIndexedLabels(self, labels:'vtkStringArray') -> None: ... + def SetInputArray(self, index:int, name:str) -> None: ... + def SetInputConnection(self, input:'vtkAlgorithmOutput') -> None: ... + @overload + def SetInputData(self, table:'vtkTable') -> None: ... + @overload + def SetInputData(self, table:'vtkTable', xColumn:str, yColumn:str) -> None: ... + @overload + def SetInputData(self, table:'vtkTable', xColumn:int, yColumn:int) -> None: ... + def SetLabel(self, label:str) -> None: ... + def SetLabels(self, labels:'vtkStringArray') -> None: ... + def SetLegendVisibility(self, _arg:bool) -> None: ... + def SetPen(self, pen:'vtkPen') -> None: ... + def SetProperty(self, property:str, var:'vtkVariant') -> None: ... + def SetSelectable(self, _arg:bool) -> None: ... + def SetSelection(self, id:'vtkIdTypeArray') -> None: ... + def SetSelectionBrush(self, brush:'vtkBrush') -> None: ... + def SetSelectionPen(self, pen:'vtkPen') -> None: ... + def SetShiftScale(self, shiftScale:'vtkRectd') -> None: ... + def SetTooltipLabelFormat(self, label:str) -> None: ... + def SetTooltipNotation(self, notation:int) -> None: ... + def SetTooltipPrecision(self, precision:int) -> None: ... + def SetUseIndexForXSeries(self, _arg:bool) -> None: ... + def SetWidth(self, width:float) -> None: ... + def SetXAxis(self, axis:'vtkAxis') -> None: ... + def SetXAxisInputArrayToProcess(self, name:str) -> None: ... + def SetYAxis(self, axis:'vtkAxis') -> None: ... + def SetYAxisInputArrayToProcess(self, name:str) -> None: ... + def Update(self) -> None: ... + def UpdateCache(self) -> bool: ... + +class vtkControlPointsItem(vtkPlot): + CurrentPointChangedEvent:int + CurrentPointEditEvent:int + add_point_item:'getset_descriptor' + current_point:'getset_descriptor' + draw_points:'getset_descriptor' + end_points_movable:'getset_descriptor' + end_points_removable:'getset_descriptor' + end_points_x_movable:'getset_descriptor' + end_points_y_movable:'getset_descriptor' + label_format:'getset_descriptor' + number_of_points:'getset_descriptor' + number_of_selected_points:'getset_descriptor' + screen_point_radius:'getset_descriptor' + selected_point_brush:'getset_descriptor' + selected_point_pen:'getset_descriptor' + show_labels:'getset_descriptor' + stroke_mode:'getset_descriptor' + switch_points_mode:'getset_descriptor' + use_add_point_item:'getset_descriptor' + user_bounds:'getset_descriptor' + valid_bounds:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddPoint(self, newPos:MutableSequence[float]) -> int: ... + def DeselectAllPoints(self) -> None: ... + @overload + def DeselectPoint(self, pointId:int) -> None: ... + @overload + def DeselectPoint(self, currentPoint:MutableSequence[float]) -> None: ... + def DrawPointsOff(self) -> None: ... + def DrawPointsOn(self) -> None: ... + def FindPoint(self, pos:MutableSequence[float]) -> int: ... + def GetAddPointItem(self) -> 'vtkPlot': ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetControlPoint(self, index:int, point:MutableSequence[float]) -> None: ... + def GetControlPointId(self, pos:MutableSequence[float]) -> int: ... + def GetControlPointsIds(self, ids:'vtkIdTypeArray', excludeFirstAndLast:bool=False) -> None: ... + def GetCurrentPoint(self) -> int: ... + def GetDrawPoints(self) -> bool: ... + def GetEndPointsMovable(self) -> bool: ... + def GetEndPointsRemovable(self) -> bool: ... + def GetEndPointsXMovable(self) -> bool: ... + def GetEndPointsYMovable(self) -> bool: ... + def GetLabelFormat(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def GetNumberOfSelectedPoints(self) -> int: ... + def GetScreenPointRadius(self) -> float: ... + def GetSelectedPointBrush(self) -> 'vtkBrush': ... + def GetSelectedPointPen(self) -> 'vtkPen': ... + def GetShowLabels(self) -> bool: ... + def GetStrokeMode(self) -> bool: ... + def GetSwitchPointsMode(self) -> bool: ... + def GetUseAddPointItem(self) -> bool: ... + def GetUserBounds(self) -> Tuple[float, float, float, float]: ... + def GetValidBounds(self) -> Tuple[float, float, float, float]: ... + def IsA(self, type:str) -> int: ... + def IsOverPoint(self, pos:MutableSequence[float], pointId:int) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def KeyPressEvent(self, key:'vtkContextKeyEvent') -> bool: ... + def KeyReleaseEvent(self, key:'vtkContextKeyEvent') -> bool: ... + def MouseButtonPressEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseButtonReleaseEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseDoubleClickEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseMoveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + @overload + def MovePoints(self, translation:'vtkVector2f', pointIds:'vtkIdTypeArray') -> None: ... + @overload + def MovePoints(self, translation:'vtkVector2f', dontMoveFirstAndLast:bool=False) -> None: ... + def NewInstance(self) -> 'vtkControlPointsItem': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def RemoveCurrentPoint(self) -> None: ... + @overload + def RemovePoint(self, pos:MutableSequence[float]) -> int: ... + @overload + def RemovePoint(self, pointId:int) -> int: ... + def ResetBounds(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkControlPointsItem': ... + def SelectAllPoints(self) -> None: ... + @overload + def SelectPoint(self, pointId:int) -> None: ... + @overload + def SelectPoint(self, currentPoint:MutableSequence[float]) -> None: ... + def SelectPoints(self, min:'vtkVector2f', max:'vtkVector2f') -> bool: ... + def SetControlPoint(self, index:int, point:MutableSequence[float]) -> None: ... + def SetCurrentPoint(self, index:int) -> None: ... + def SetDrawPoints(self, _arg:bool) -> None: ... + def SetEndPointsRemovable(self, _arg:bool) -> None: ... + def SetEndPointsXMovable(self, _arg:bool) -> None: ... + def SetEndPointsYMovable(self, _arg:bool) -> None: ... + def SetLabelFormat(self, _arg:str) -> None: ... + def SetScreenPointRadius(self, _arg:float) -> None: ... + def SetShowLabels(self, _arg:bool) -> None: ... + def SetStrokeMode(self, _arg:bool) -> None: ... + def SetSwitchPointsMode(self, _arg:bool) -> None: ... + def SetUseAddPointItem(self, _arg:bool) -> None: ... + @overload + def SetUserBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetUserBounds(self, _arg:Sequence[float]) -> None: ... + @overload + def SetValidBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetValidBounds(self, _arg:Sequence[float]) -> None: ... + @overload + def SpreadPoints(self, factor:float, pointIds:'vtkIdTypeArray') -> None: ... + @overload + def SpreadPoints(self, factor:float, dontSpreadFirstAndLast:bool=False) -> None: ... + @overload + def ToggleSelectPoint(self, pointId:int) -> None: ... + @overload + def ToggleSelectPoint(self, currentPoint:MutableSequence[float]) -> None: ... + def UseAddPointItemOff(self) -> None: ... + def UseAddPointItemOn(self) -> None: ... + +class vtkColorTransferControlPointsItem(vtkControlPointsItem): + color_fill:'getset_descriptor' + color_transfer_function:'getset_descriptor' + number_of_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddPoint(self, newPos:MutableSequence[float]) -> int: ... + def GetColorFill(self) -> bool: ... + def GetColorTransferFunction(self) -> 'vtkColorTransferFunction': ... + def GetControlPoint(self, index:int, point:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkColorTransferControlPointsItem': ... + @overload + def RemovePoint(self, pos:MutableSequence[float]) -> int: ... + @overload + def RemovePoint(self, pointId:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkColorTransferControlPointsItem': ... + def SetColorFill(self, _arg:bool) -> None: ... + def SetColorTransferFunction(self, function:'vtkColorTransferFunction') -> None: ... + def SetControlPoint(self, index:int, point:MutableSequence[float]) -> None: ... + +class vtkScalarsToColorsItem(vtkPlot): + histogram_table:'getset_descriptor' + mask_above_curve:'getset_descriptor' + poly_line_pen:'getset_descriptor' + user_bounds:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetHistogramTable(self) -> 'vtkTable': ... + def GetMaskAboveCurve(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPolyLinePen(self) -> 'vtkPen': ... + def GetTooltipLabel(self, plotPos:'vtkVector2d', seriesIndex:int, segmentIndex:int) -> str: ... + def GetUserBounds(self) -> Tuple[float, float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkScalarsToColorsItem': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkScalarsToColorsItem': ... + def SetHistogramTable(self, histogramTable:'vtkTable') -> None: ... + def SetMaskAboveCurve(self, _arg:bool) -> None: ... + @overload + def SetUserBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetUserBounds(self, _arg:Sequence[float]) -> None: ... + +class vtkColorTransferFunctionItem(vtkScalarsToColorsItem): + color_transfer_function:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetColorTransferFunction(self) -> 'vtkColorTransferFunction': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkColorTransferFunctionItem': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkColorTransferFunctionItem': ... + def SetColorTransferFunction(self, t:'vtkColorTransferFunction') -> None: ... + +class vtkCompositeControlPointsItem(vtkColorTransferControlPointsItem): + class PointsFunctionType(int): ... + ColorAndOpacityPointsFunction:'PointsFunctionType' + ColorPointsFunction:'PointsFunctionType' + OpacityPointsFunction:'PointsFunctionType' + color_transfer_function:'getset_descriptor' + number_of_points:'getset_descriptor' + opacity_function:'getset_descriptor' + points_function:'getset_descriptor' + use_opacity_point_handles:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddPoint(self, newPos:MutableSequence[float]) -> int: ... + def GetControlPoint(self, index:int, point:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def GetOpacityFunction(self) -> 'vtkPiecewiseFunction': ... + def GetPointsFunction(self) -> int: ... + def GetUseOpacityPointHandles(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MouseButtonPressEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseDoubleClickEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseMoveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def NewInstance(self) -> 'vtkCompositeControlPointsItem': ... + @overload + def RemovePoint(self, pos:MutableSequence[float]) -> int: ... + @overload + def RemovePoint(self, pointId:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeControlPointsItem': ... + def SetColorTransferFunction(self, function:'vtkColorTransferFunction') -> None: ... + def SetControlPoint(self, index:int, point:MutableSequence[float]) -> None: ... + def SetOpacityFunction(self, opacity:'vtkPiecewiseFunction') -> None: ... + def SetPointsFunction(self, _arg:int) -> None: ... + def SetUseOpacityPointHandles(self, _arg:bool) -> None: ... + +class vtkCompositeTransferFunctionItem(vtkColorTransferFunctionItem): + opacity_function:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOpacityFunction(self) -> 'vtkPiecewiseFunction': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositeTransferFunctionItem': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeTransferFunctionItem': ... + def SetOpacityFunction(self, opacity:'vtkPiecewiseFunction') -> None: ... + +class vtkContextArea(vtkmodules.vtkRenderingContext2D.vtkAbstractContextItem): + class DrawAreaResizeBehaviorType(int): ... + DARB_Expand:'DrawAreaResizeBehaviorType' + DARB_FixedAspect:'DrawAreaResizeBehaviorType' + DARB_FixedMargins:'DrawAreaResizeBehaviorType' + DARB_FixedRect:'DrawAreaResizeBehaviorType' + draw_area_bounds:'getset_descriptor' + draw_area_item:'getset_descriptor' + draw_area_resize_behavior:'getset_descriptor' + fill_viewport:'getset_descriptor' + fixed_aspect:'getset_descriptor' + fixed_margins:'getset_descriptor' + fixed_rect:'getset_descriptor' + geometry:'getset_descriptor' + show_grid:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillViewportOff(self) -> None: ... + def FillViewportOn(self) -> None: ... + def GetAxis(self, location:vtkAxis.Location) -> 'vtkAxis': ... + def GetDrawAreaBounds(self) -> 'vtkRectd': ... + def GetDrawAreaItem(self) -> 'vtkAbstractContextItem': ... + def GetDrawAreaResizeBehavior(self) -> 'DrawAreaResizeBehaviorType': ... + def GetFillViewport(self) -> bool: ... + def GetFixedAspect(self) -> float: ... + def GetFixedMargins(self) -> 'vtkTuple_IiLi4EE': ... + @overload + def GetFixedMarginsArray(self, margins:MutableSequence[int]) -> None: ... + @overload + def GetFixedMarginsArray(self) -> Pointer: ... + def GetFixedRect(self) -> 'vtkRecti': ... + def GetGeometry(self) -> 'vtkRecti': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShowGrid(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContextArea': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContextArea': ... + def SetDrawAreaBounds(self, _arg:'vtkRectd') -> None: ... + def SetDrawAreaResizeBehavior(self, _arg:'DrawAreaResizeBehaviorType') -> None: ... + def SetFillViewport(self, _arg:bool) -> None: ... + def SetFixedAspect(self, aspect:float) -> None: ... + @overload + def SetFixedMargins(self, margins:'vtkTuple_IiLi4EE') -> None: ... + @overload + def SetFixedMargins(self, margins:MutableSequence[int]) -> None: ... + @overload + def SetFixedMargins(self, left:int, right:int, bottom:int, top:int) -> None: ... + @overload + def SetFixedRect(self, rect:'vtkRecti') -> None: ... + @overload + def SetFixedRect(self, x:int, y:int, width:int, height:int) -> None: ... + def SetGeometry(self, _arg:'vtkRecti') -> None: ... + def SetShowGrid(self, show:bool) -> None: ... + def ShowGridOff(self) -> None: ... + def ShowGridOn(self) -> None: ... + +class vtkContextPolygon(object): + number_of_points:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, polygon:'vtkContextPolygon') -> None: ... + @overload + def AddPoint(self, point:'vtkVector2f') -> None: ... + @overload + def AddPoint(self, x:float, y:float) -> None: ... + def Clear(self) -> None: ... + def Contains(self, point:'vtkVector2f') -> bool: ... + def GetNumberOfPoints(self) -> int: ... + def GetPoint(self, index:int) -> 'vtkVector2f': ... + def Transformed(self, transform:'vtkTransform2D') -> 'vtkContextPolygon': ... + +class vtkInteractiveArea(vtkContextArea): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MouseButtonPressEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseMoveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseWheelEvent(self, mouse:'vtkContextMouseEvent', delta:int) -> bool: ... + def NewInstance(self) -> 'vtkInteractiveArea': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractiveArea': ... + +class vtkLookupTableItem(vtkScalarsToColorsItem): + lookup_table:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLookupTable(self) -> 'vtkLookupTable': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLookupTableItem': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLookupTableItem': ... + def SetLookupTable(self, t:'vtkLookupTable') -> None: ... + +class vtkPiecewiseControlPointsItem(vtkControlPointsItem): + piecewise_function:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddPoint(self, newPos:MutableSequence[float]) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPiecewiseFunction(self) -> 'vtkPiecewiseFunction': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPiecewiseControlPointsItem': ... + def RemovePoint(self, pos:MutableSequence[float]) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPiecewiseControlPointsItem': ... + def SetPiecewiseFunction(self, function:'vtkPiecewiseFunction') -> None: ... + +class vtkPiecewiseFunctionItem(vtkScalarsToColorsItem): + piecewise_function:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPiecewiseFunction(self) -> 'vtkPiecewiseFunction': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPiecewiseFunctionItem': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPiecewiseFunctionItem': ... + def SetPiecewiseFunction(self, t:'vtkPiecewiseFunction') -> None: ... + +class vtkPiecewisePointHandleItem(vtkmodules.vtkRenderingContext2D.vtkContextItem): + current_point_index:'getset_descriptor' + parent:'getset_descriptor' + piecewise_function:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def CallRedraw(sender:'vtkObject', event:int, receiver:Pointer, params:Pointer) -> None: ... + def GetCurrentPointIndex(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPiecewiseFunction(self) -> 'vtkWeakPointer_I20vtkPiecewiseFunctionE': ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def IsA(self, type:str) -> int: ... + def IsOverHandle(self, pos:MutableSequence[float]) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MouseButtonPressEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseButtonReleaseEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseMoveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def NewInstance(self) -> 'vtkPiecewisePointHandleItem': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPiecewisePointHandleItem': ... + def SetCurrentPointIndex(self, _arg:int) -> None: ... + def SetParent(self, parent:'vtkAbstractContextItem') -> None: ... + def SetPiecewiseFunction(self, piecewiseFunc:'vtkPiecewiseFunction') -> None: ... + +class vtkPlot3D(vtkmodules.vtkRenderingContext2D.vtkContextItem): + chart:'getset_descriptor' + colors:'getset_descriptor' + input_data:'getset_descriptor' + pen:'getset_descriptor' + selection:'getset_descriptor' + selection_pen:'getset_descriptor' + vtk_points:'getset_descriptor' + x_axis_label:'getset_descriptor' + y_axis_label:'getset_descriptor' + z_axis_label:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetChart(self) -> 'vtkChartXYZ': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPen(self) -> 'vtkPen': ... + def GetSelection(self) -> 'vtkIdTypeArray': ... + def GetSelectionPen(self) -> 'vtkPen': ... + def GetVTKPoints(self) -> 'vtkPoints': ... + def GetXAxisLabel(self) -> str: ... + def GetYAxisLabel(self) -> str: ... + def GetZAxisLabel(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlot3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlot3D': ... + def SetChart(self, chart:'vtkChartXYZ') -> None: ... + def SetColors(self, colorArr:'vtkDataArray') -> None: ... + @overload + def SetInputData(self, input:'vtkTable') -> None: ... + @overload + def SetInputData(self, input:'vtkTable', xName:str, yName:str, zName:str) -> None: ... + @overload + def SetInputData(self, input:'vtkTable', xName:str, yName:str, zName:str, colorName:str) -> None: ... + @overload + def SetInputData(self, input:'vtkTable', xColumn:int, yColumn:int, zColumn:int) -> None: ... + def SetPen(self, pen:'vtkPen') -> None: ... + def SetSelection(self, id:'vtkIdTypeArray') -> None: ... + def SetSelectionPen(self, pen:'vtkPen') -> None: ... + +class vtkPlotArea(vtkPlot): + color:'getset_descriptor' + color_f:'getset_descriptor' + valid_point_mask_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTooltipLabel(self, plotPos:'vtkVector2d', seriesIndex:int, segmentIndex:int) -> str: ... + def GetValidPointMaskName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlotArea': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def PaintLegend(self, painter:'vtkContext2D', rect:'vtkRectf', legendIndex:int) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlotArea': ... + @overload + def SetColor(self, r:int, g:int, b:int, a:int) -> None: ... + @overload + def SetColor(self, r:int, g:int, b:int) -> None: ... + @overload + def SetColorF(self, r:float, g:float, b:float, a:float) -> None: ... + @overload + def SetColorF(self, r:float, g:float, b:float) -> None: ... + def SetInputArray(self, index:int, name:str) -> None: ... + def SetValidPointMaskName(self, _arg:str) -> None: ... + def UpdateCache(self) -> bool: ... + +class vtkPlotPoints(vtkPlot): + CIRCLE:int + CROSS:int + DIAMOND:int + NONE:int + PLUS:int + SQUARE:int + color_array_name:'getset_descriptor' + lookup_table:'getset_descriptor' + marker_size:'getset_descriptor' + marker_style:'getset_descriptor' + scalar_visibility:'getset_descriptor' + valid_point_mask_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLookupTable(self) -> None: ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetColorArrayName(self) -> str: ... + def GetLookupTable(self) -> 'vtkScalarsToColors': ... + def GetMarkerSize(self) -> float: ... + def GetMarkerStyle(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScalarVisibility(self) -> int: ... + def GetUnscaledInputBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetValidPointMaskName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlotPoints': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def PaintLegend(self, painter:'vtkContext2D', rect:'vtkRectf', legendIndex:int) -> bool: ... + def ReleaseGraphicsCache(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlotPoints': ... + def ScalarVisibilityOff(self) -> None: ... + def ScalarVisibilityOn(self) -> None: ... + @overload + def SelectColorArray(self, arrayNum:int) -> None: ... + @overload + def SelectColorArray(self, arrayName:str) -> None: ... + def SelectPoints(self, min:'vtkVector2f', max:'vtkVector2f') -> bool: ... + def SelectPointsInPolygon(self, polygon:'vtkContextPolygon') -> bool: ... + def SetLookupTable(self, lut:'vtkScalarsToColors') -> None: ... + def SetMarkerSize(self, _arg:float) -> None: ... + def SetMarkerStyle(self, _arg:int) -> None: ... + def SetScalarVisibility(self, _arg:int) -> None: ... + def SetValidPointMaskName(self, _arg:str) -> None: ... + def UpdateCache(self) -> bool: ... + +class vtkPlotBag(vtkPlotPoints): + bag_visible:'getset_descriptor' + input_data:'getset_descriptor' + labels:'getset_descriptor' + line_pen:'getset_descriptor' + point_pen:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBagVisible(self) -> bool: ... + def GetLabels(self) -> 'vtkStringArray': ... + def GetLinePen(self) -> 'vtkPen': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointPen(self) -> 'vtkPen': ... + def GetTooltipLabel(self, plotPos:'vtkVector2d', seriesIndex:int, segmentIndex:int) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlotBag': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def PaintLegend(self, painter:'vtkContext2D', rect:'vtkRectf', legendIndex:int) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlotBag': ... + def SetBagVisible(self, _arg:bool) -> None: ... + @overload + def SetInputData(self, table:'vtkTable') -> None: ... + @overload + def SetInputData(self, table:'vtkTable', yColumn:str, densityColumn:str) -> None: ... + @overload + def SetInputData(self, table:'vtkTable', xColumn:str, yColumn:str, densityColumn:str) -> None: ... + @overload + def SetInputData(self, table:'vtkTable', xColumn:int, yColumn:int, densityColumn:int) -> None: ... + def SetLinePen(self, pen:'vtkPen') -> None: ... + def SetPointPen(self, pen:'vtkPen') -> None: ... + def UpdateCache(self) -> bool: ... + +class vtkPlotBar(vtkPlot): + HORIZONTAL:int + VERTICAL:int + bars_count:'getset_descriptor' + color:'getset_descriptor' + color_array_name:'getset_descriptor' + color_f:'getset_descriptor' + color_series:'getset_descriptor' + enable_opacity_mapping:'getset_descriptor' + group_name:'getset_descriptor' + labels:'getset_descriptor' + lookup_table:'getset_descriptor' + offset:'getset_descriptor' + orientation:'getset_descriptor' + scalar_visibility:'getset_descriptor' + width:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLookupTable(self) -> None: ... + def EnableOpacityMappingOff(self) -> None: ... + def EnableOpacityMappingOn(self) -> None: ... + def GetBarsCount(self) -> int: ... + @overload + def GetBounds(self, bounds:MutableSequence[float], unscaled:bool) -> None: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetColorArrayName(self) -> str: ... + def GetColorF(self, rgb:MutableSequence[float]) -> None: ... + def GetColorSeries(self) -> 'vtkColorSeries': ... + def GetDataBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetEnableOpacityMapping(self) -> bool: ... + def GetGroupName(self) -> str: ... + def GetLabels(self) -> 'vtkStringArray': ... + def GetLookupTable(self) -> 'vtkScalarsToColors': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffset(self) -> float: ... + def GetOrientation(self) -> int: ... + def GetScalarVisibility(self) -> bool: ... + def GetTooltipLabel(self, plotPos:'vtkVector2d', seriesIndex:int, segmentIndex:int) -> str: ... + def GetUnscaledInputBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetWidth(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlotBar': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def PaintLegend(self, painter:'vtkContext2D', rect:'vtkRectf', legendIndex:int) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlotBar': ... + def ScalarVisibilityOff(self) -> None: ... + def ScalarVisibilityOn(self) -> None: ... + @overload + def SelectColorArray(self, arrayNum:int) -> None: ... + @overload + def SelectColorArray(self, arrayName:str) -> None: ... + def SelectPoints(self, min:'vtkVector2f', max:'vtkVector2f') -> bool: ... + @overload + def SetColor(self, r:int, g:int, b:int, a:int) -> None: ... + @overload + def SetColor(self, r:int, g:int, b:int) -> None: ... + @overload + def SetColorF(self, r:float, g:float, b:float, a:float) -> None: ... + @overload + def SetColorF(self, r:float, g:float, b:float) -> None: ... + def SetColorSeries(self, colorSeries:'vtkColorSeries') -> None: ... + def SetEnableOpacityMapping(self, _arg:bool) -> None: ... + def SetGroupName(self, name:str) -> None: ... + def SetInputArray(self, index:int, name:str) -> None: ... + def SetLookupTable(self, lut:'vtkScalarsToColors') -> None: ... + def SetOffset(self, _arg:float) -> None: ... + def SetOrientation(self, orientation:int) -> None: ... + def SetScalarVisibility(self, _arg:bool) -> None: ... + def SetWidth(self, _arg:float) -> None: ... + def UpdateCache(self) -> bool: ... + +class vtkPlotRangeHandlesItem(vtkPlot): + class Orientation(int): ... + class Handle(int): ... + HORIZONTAL:'Orientation' + LEFT_HANDLE:'Handle' + NO_HANDLE:'Handle' + RIGHT_HANDLE:'Handle' + VERTICAL:'Orientation' + extent:'getset_descriptor' + extent_to_axis_range:'getset_descriptor' + handle_orientation:'getset_descriptor' + handle_width:'getset_descriptor' + highlight_brush:'getset_descriptor' + lock_tooltip_to_mouse:'getset_descriptor' + synchronize_range_handles:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeHandlesDrawRange(self) -> None: ... + def ExtentToAxisRangeOff(self) -> None: ... + def ExtentToAxisRangeOn(self) -> None: ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetExtent(self) -> Tuple[float, float, float, float]: ... + def GetExtentToAxisRange(self) -> int: ... + def GetHandleOrientation(self) -> int: ... + def GetHandleOrientationMaxValue(self) -> int: ... + def GetHandleOrientationMinValue(self) -> int: ... + def GetHandleWidth(self) -> float: ... + def GetHandlesRange(self, range:MutableSequence[float]) -> None: ... + def GetHighlightBrush(self) -> 'vtkBrush': ... + def GetLockTooltipToMouse(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSynchronizeRangeHandles(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LockTooltipToMouseOff(self) -> None: ... + def LockTooltipToMouseOn(self) -> None: ... + def NewInstance(self) -> 'vtkPlotRangeHandlesItem': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlotRangeHandlesItem': ... + @overload + def SetExtent(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetExtent(self, _arg:Sequence[float]) -> None: ... + def SetExtentToAxisRange(self, _arg:int) -> None: ... + def SetHandleOrientation(self, _arg:int) -> None: ... + def SetHandleOrientationToHorizontal(self) -> None: ... + def SetHandleOrientationToVertical(self) -> None: ... + def SetHandleWidth(self, _arg:float) -> None: ... + def SetLockTooltipToMouse(self, _arg:int) -> None: ... + def SetSynchronizeRangeHandles(self, _arg:int) -> None: ... + def SynchronizeRangeHandlesOff(self) -> None: ... + def SynchronizeRangeHandlesOn(self) -> None: ... + +class vtkPlotBarRangeHandlesItem(vtkPlotRangeHandlesItem): + plot_bar:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPlotBar(self) -> 'vtkPlotBar': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlotBarRangeHandlesItem': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlotBarRangeHandlesItem': ... + def SetPlotBar(self, _arg:'vtkPlotBar') -> None: ... + +class vtkPlotBox(vtkPlot): + box_width:'getset_descriptor' + input_data:'getset_descriptor' + labels:'getset_descriptor' + lookup_table:'getset_descriptor' + title_properties:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLookupTable(self) -> None: ... + def GetBoxWidth(self) -> float: ... + def GetLabels(self) -> 'vtkStringArray': ... + def GetLookupTable(self) -> 'vtkScalarsToColors': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTitleProperties(self) -> 'vtkTextProperty': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlotBox': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def PaintLegend(self, painter:'vtkContext2D', rect:'vtkRectf', legendIndex:int) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlotBox': ... + def SetBoxWidth(self, _arg:float) -> None: ... + def SetColumnColor(self, colName:str, rgb:MutableSequence[float]) -> None: ... + @overload + def SetInputData(self, table:'vtkTable') -> None: ... + @overload + def SetInputData(self, table:'vtkTable', __b:str, __c:str) -> None: ... + def SetLookupTable(self, lut:'vtkScalarsToColors') -> None: ... + def UpdateCache(self) -> bool: ... + +class vtkPlotFunctionalBag(vtkPlot): + lookup_table:'getset_descriptor' + visible:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLookupTable(self) -> None: ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetLookupTable(self) -> 'vtkScalarsToColors': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUnscaledInputBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetVisible(self) -> bool: ... + def IsA(self, type:str) -> int: ... + def IsBag(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlotFunctionalBag': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def PaintLegend(self, painter:'vtkContext2D', rect:'vtkRectf', legendIndex:int) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlotFunctionalBag': ... + def SelectPoints(self, min:'vtkVector2f', max:'vtkVector2f') -> bool: ... + def SelectPointsInPolygon(self, polygon:'vtkContextPolygon') -> bool: ... + def SetLookupTable(self, lut:'vtkScalarsToColors') -> None: ... + def UpdateCache(self) -> bool: ... + +class vtkPlotGrid(vtkmodules.vtkRenderingContext2D.vtkContextItem): + x_axis:'getset_descriptor' + y_axis:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlotGrid': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlotGrid': ... + def SetXAxis(self, axis:'vtkAxis') -> None: ... + def SetYAxis(self, axis:'vtkAxis') -> None: ... + +class vtkPlotHistogram2D(vtkPlot): + array_name:'getset_descriptor' + input_data:'getset_descriptor' + input_image_data:'getset_descriptor' + position:'getset_descriptor' + transfer_function:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArrayName(self) -> str: ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetInputImageData(self) -> 'vtkImageData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPosition(self) -> 'vtkRectf': ... + def GetTooltipLabel(self, plotPos:'vtkVector2d', seriesIndex:int, segmentIndex:int) -> str: ... + def GetTransferFunction(self) -> 'vtkScalarsToColors': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlotHistogram2D': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlotHistogram2D': ... + def SetArrayName(self, _arg:str) -> None: ... + @overload + def SetInputData(self, data:'vtkImageData', z:int=0) -> None: ... + @overload + def SetInputData(self, __a:'vtkTable') -> None: ... + @overload + def SetInputData(self, __a:'vtkTable', __b:str, __c:str) -> None: ... + def SetPosition(self, pos:'vtkRectf') -> None: ... + def SetTransferFunction(self, transfer:'vtkScalarsToColors') -> None: ... + def Update(self) -> None: ... + def UpdateCache(self) -> bool: ... + +class vtkPlotLine(vtkPlotPoints): + poly_line:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPolyLine(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlotLine': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def PaintLegend(self, painter:'vtkContext2D', rect:'vtkRectf', legendIndex:int) -> bool: ... + def PolyLineOff(self) -> None: ... + def PolyLineOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlotLine': ... + def SetPolyLine(self, _arg:bool) -> None: ... + +class vtkPlotPoints3D(vtkPlot3D): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlotPoints3D': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlotPoints3D': ... + +class vtkPlotLine3D(vtkPlotPoints3D): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlotLine3D': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlotLine3D': ... + +class vtkPlotParallelCoordinates(vtkPlot): + color_array_name:'getset_descriptor' + color_mode:'getset_descriptor' + input_data:'getset_descriptor' + lookup_table:'getset_descriptor' + scalar_visibility:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLookupTable(self) -> None: ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetColorArrayName(self) -> str: ... + def GetColorMode(self) -> int: ... + def GetLookupTable(self) -> 'vtkScalarsToColors': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScalarVisibility(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlotParallelCoordinates': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def PaintLegend(self, painter:'vtkContext2D', rect:'vtkRectf', legendIndex:int) -> bool: ... + def ResetSelectionRange(self) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlotParallelCoordinates': ... + def ScalarVisibilityOff(self) -> None: ... + def ScalarVisibilityOn(self) -> None: ... + @overload + def SelectColorArray(self, arrayNum:int) -> None: ... + @overload + def SelectColorArray(self, arrayName:str) -> None: ... + def SetColorMode(self, _arg:int) -> None: ... + def SetColorModeToDefault(self) -> None: ... + def SetColorModeToDirectScalars(self) -> None: ... + def SetColorModeToMapScalars(self) -> None: ... + @overload + def SetInputData(self, table:'vtkTable') -> None: ... + @overload + def SetInputData(self, table:'vtkTable', __b:str, __c:str) -> None: ... + def SetLookupTable(self, lut:'vtkScalarsToColors') -> None: ... + def SetScalarVisibility(self, _arg:int) -> None: ... + @overload + def SetSelectionRange(self, axis:int, low:float, high:float) -> bool: ... + @overload + def SetSelectionRange(self, axis:int, axisSelection:MutableSequence[float]) -> bool: ... + def UpdateCache(self) -> bool: ... + +class vtkPlotPie(vtkPlot): + color_series:'getset_descriptor' + dimensions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetColorSeries(self) -> 'vtkColorSeries': ... + def GetDimensions(self) -> Tuple[int, int, int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlotPie': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def PaintLegend(self, painter:'vtkContext2D', rect:'vtkRectf', legendIndex:int) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlotPie': ... + def SetColorSeries(self, colorSeries:'vtkColorSeries') -> None: ... + @overload + def SetDimensions(self, arg1:int, arg2:int, arg3:int, arg4:int) -> None: ... + @overload + def SetDimensions(self, arg:Sequence[int]) -> None: ... + def UpdateCache(self) -> bool: ... + +class vtkPlotStacked(vtkPlot): + color:'getset_descriptor' + color_f:'getset_descriptor' + color_series:'getset_descriptor' + labels:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetColorF(self, rgb:MutableSequence[float]) -> None: ... + def GetColorSeries(self) -> 'vtkColorSeries': ... + def GetLabels(self) -> 'vtkStringArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUnscaledInputBounds(self, bounds:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlotStacked': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def PaintLegend(self, painter:'vtkContext2D', rect:'vtkRectf', legendIndex:int) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlotStacked': ... + def SelectPoints(self, min:'vtkVector2f', max:'vtkVector2f') -> bool: ... + @overload + def SetColor(self, r:int, g:int, b:int, a:int) -> None: ... + @overload + def SetColor(self, r:int, g:int, b:int) -> None: ... + @overload + def SetColorF(self, r:float, g:float, b:float, a:float) -> None: ... + @overload + def SetColorF(self, r:float, g:float, b:float) -> None: ... + def SetColorSeries(self, colorSeries:'vtkColorSeries') -> None: ... + def SetInputArray(self, index:int, name:str) -> None: ... + def UpdateCache(self) -> bool: ... + +class vtkPlotSurface(vtkPlot3D): + input_data:'getset_descriptor' + x_range:'getset_descriptor' + y_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlotSurface': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlotSurface': ... + @overload + def SetInputData(self, input:'vtkTable') -> None: ... + @overload + def SetInputData(self, input:'vtkTable', xName:str, yName:str, zName:str) -> None: ... + @overload + def SetInputData(self, input:'vtkTable', xName:str, yName:str, zName:str, colorName:str) -> None: ... + @overload + def SetInputData(self, input:'vtkTable', xColumn:int, yColumn:int, zColumn:int) -> None: ... + def SetXRange(self, min:float, max:float) -> None: ... + def SetYRange(self, min:float, max:float) -> None: ... + +class vtkRangeHandlesItem(vtkPlotRangeHandlesItem): + color_transfer_function:'getset_descriptor' + handle_orientation:'getset_descriptor' + synchronize_range_handles:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeHandlesDrawRange(self) -> None: ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetColorTransferFunction(self) -> 'vtkColorTransferFunction': ... + def GetHandlesRange(self, range:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRangeHandlesItem': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRangeHandlesItem': ... + def SetColorTransferFunction(self, ctf:'vtkColorTransferFunction') -> None: ... + def SetHandleOrientation(self, orientation:int) -> None: ... + def SetSynchronizeRangeHandles(self, synchronize:int) -> None: ... + def SynchronizeRangeHandlesOn(self) -> None: ... + +class vtkScatterPlotMatrix(vtkChartMatrix): + ACTIVEPLOT:int + HISTOGRAM:int + NOPLOT:int + SCATTERPLOT:int + active_plot:'getset_descriptor' + annotation_link:'getset_descriptor' + axis_label_notation:'getset_descriptor' + axis_label_precision:'getset_descriptor' + column_visibility_all:'getset_descriptor' + indexed_labels:'getset_descriptor' + input:'getset_descriptor' + main_chart:'getset_descriptor' + number_of_animation_path_elements:'getset_descriptor' + number_of_bins:'getset_descriptor' + number_of_frames:'getset_descriptor' + plot_marker_style:'getset_descriptor' + scatter_plot_selected_active_color:'getset_descriptor' + scatter_plot_selected_row_column_color:'getset_descriptor' + scene:'getset_descriptor' + selection_mode:'getset_descriptor' + size:'getset_descriptor' + title:'getset_descriptor' + title_properties:'getset_descriptor' + tooltip:'getset_descriptor' + tooltip_notation:'getset_descriptor' + tooltip_precision:'getset_descriptor' + visible_columns:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddAnimationPath(self, move:'vtkVector2i') -> bool: ... + def AdvanceAnimation(self) -> None: ... + def BeginAnimationPath(self, interactor:'vtkRenderWindowInteractor') -> bool: ... + def ClearAnimationPath(self) -> None: ... + def GetActivePlot(self) -> 'vtkVector2i': ... + def GetAnimationPathElement(self, i:int) -> 'vtkVector2i': ... + def GetAnnotationLink(self) -> 'vtkAnnotationLink': ... + def GetAxisColor(self, plotType:int) -> 'vtkColor4ub': ... + def GetAxisLabelNotation(self, plotType:int) -> int: ... + def GetAxisLabelPrecision(self, plotType:int) -> int: ... + def GetAxisLabelProperties(self, plotType:int) -> 'vtkTextProperty': ... + def GetAxisLabelVisibility(self, plotType:int) -> bool: ... + def GetBackgroundColor(self, plotType:int) -> 'vtkColor4ub': ... + def GetColumnName(self, column:int) -> str: ... + def GetColumnVisibility(self, name:str) -> bool: ... + def GetGridColor(self, plotType:int) -> 'vtkColor4ub': ... + def GetGridVisibility(self, plotType:int) -> bool: ... + def GetIndexedLabels(self) -> 'vtkStringArray': ... + def GetMainChart(self) -> 'vtkChart': ... + def GetNumberOfAnimationPathElements(self) -> int: ... + def GetNumberOfBins(self) -> int: ... + def GetNumberOfFrames(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetPlotType(self, pos:'vtkVector2i') -> int: ... + @overload + def GetPlotType(self, row:int, column:int) -> int: ... + def GetRowName(self, row:int) -> str: ... + def GetScatterPlotSelectedActiveColor(self) -> 'vtkColor4ub': ... + def GetScatterPlotSelectedRowColumnColor(self) -> 'vtkColor4ub': ... + def GetSelectionMode(self) -> int: ... + def GetTitle(self) -> str: ... + def GetTitleProperties(self) -> 'vtkTextProperty': ... + def GetTooltip(self) -> 'vtkTooltipItem': ... + def GetTooltipNotation(self, plotType:int) -> int: ... + def GetTooltipPrecision(self, plotType:int) -> int: ... + def GetVisibleColumns(self) -> 'vtkStringArray': ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def InsertVisibleColumn(self, name:str, index:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MouseButtonPressEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseButtonReleaseEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseMoveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def NewInstance(self) -> 'vtkScatterPlotMatrix': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkScatterPlotMatrix': ... + def SetActivePlot(self, position:'vtkVector2i') -> bool: ... + def SetAxisColor(self, plotType:int, color:'vtkColor4ub') -> None: ... + def SetAxisLabelNotation(self, plotType:int, notation:int) -> None: ... + def SetAxisLabelPrecision(self, plotType:int, precision:int) -> None: ... + def SetAxisLabelProperties(self, plotType:int, prop:'vtkTextProperty') -> None: ... + def SetAxisLabelVisibility(self, plotType:int, visible:bool) -> None: ... + def SetBackgroundColor(self, plotType:int, color:'vtkColor4ub') -> None: ... + def SetColumnVisibility(self, name:str, visible:bool) -> None: ... + def SetColumnVisibilityAll(self, visible:bool) -> None: ... + def SetGridColor(self, plotType:int, color:'vtkColor4ub') -> None: ... + def SetGridVisibility(self, plotType:int, visible:bool) -> None: ... + def SetIndexedLabels(self, labels:'vtkStringArray') -> None: ... + def SetInput(self, table:'vtkTable') -> None: ... + def SetNumberOfBins(self, numberOfBins:int) -> None: ... + def SetNumberOfFrames(self, frames:int) -> None: ... + def SetPlotColor(self, plotType:int, color:'vtkColor4ub') -> None: ... + def SetPlotMarkerSize(self, plotType:int, size:float) -> None: ... + def SetPlotMarkerStyle(self, plotType:int, style:int) -> None: ... + def SetScatterPlotSelectedActiveColor(self, color:'vtkColor4ub') -> None: ... + def SetScatterPlotSelectedRowColumnColor(self, color:'vtkColor4ub') -> None: ... + def SetScene(self, scene:'vtkContextScene') -> None: ... + def SetSelectionMode(self, __a:int) -> None: ... + def SetSize(self, size:'vtkVector2i') -> None: ... + def SetTitle(self, title:str) -> None: ... + def SetTitleProperties(self, prop:'vtkTextProperty') -> None: ... + def SetTooltip(self, tooltip:'vtkTooltipItem') -> None: ... + def SetTooltipNotation(self, plotType:int, notation:int) -> None: ... + def SetTooltipPrecision(self, plotType:int, precision:int) -> None: ... + def SetVisibleColumns(self, visColumns:'vtkStringArray') -> None: ... + def Update(self) -> None: ... + def UpdateChartSettings(self, plotType:int) -> None: ... + def UpdateSettings(self) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonColor.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonColor.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..e13faa1 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonColor.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonColor.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonColor.pyi new file mode 100644 index 0000000..8f46e8c --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonColor.pyi @@ -0,0 +1,178 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore + +class vtkColorSeries(vtkmodules.vtkCommonCore.vtkObject): + class ColorSchemes(int): ... + class LUTMode(int): ... + BLUES:'ColorSchemes' + BREWER_DIVERGING_BROWN_BLUE_GREEN_10:'ColorSchemes' + BREWER_DIVERGING_BROWN_BLUE_GREEN_11:'ColorSchemes' + BREWER_DIVERGING_BROWN_BLUE_GREEN_3:'ColorSchemes' + BREWER_DIVERGING_BROWN_BLUE_GREEN_4:'ColorSchemes' + BREWER_DIVERGING_BROWN_BLUE_GREEN_5:'ColorSchemes' + BREWER_DIVERGING_BROWN_BLUE_GREEN_6:'ColorSchemes' + BREWER_DIVERGING_BROWN_BLUE_GREEN_7:'ColorSchemes' + BREWER_DIVERGING_BROWN_BLUE_GREEN_8:'ColorSchemes' + BREWER_DIVERGING_BROWN_BLUE_GREEN_9:'ColorSchemes' + BREWER_DIVERGING_PURPLE_ORANGE_10:'ColorSchemes' + BREWER_DIVERGING_PURPLE_ORANGE_11:'ColorSchemes' + BREWER_DIVERGING_PURPLE_ORANGE_3:'ColorSchemes' + BREWER_DIVERGING_PURPLE_ORANGE_4:'ColorSchemes' + BREWER_DIVERGING_PURPLE_ORANGE_5:'ColorSchemes' + BREWER_DIVERGING_PURPLE_ORANGE_6:'ColorSchemes' + BREWER_DIVERGING_PURPLE_ORANGE_7:'ColorSchemes' + BREWER_DIVERGING_PURPLE_ORANGE_8:'ColorSchemes' + BREWER_DIVERGING_PURPLE_ORANGE_9:'ColorSchemes' + BREWER_DIVERGING_SPECTRAL_10:'ColorSchemes' + BREWER_DIVERGING_SPECTRAL_11:'ColorSchemes' + BREWER_DIVERGING_SPECTRAL_3:'ColorSchemes' + BREWER_DIVERGING_SPECTRAL_4:'ColorSchemes' + BREWER_DIVERGING_SPECTRAL_5:'ColorSchemes' + BREWER_DIVERGING_SPECTRAL_6:'ColorSchemes' + BREWER_DIVERGING_SPECTRAL_7:'ColorSchemes' + BREWER_DIVERGING_SPECTRAL_8:'ColorSchemes' + BREWER_DIVERGING_SPECTRAL_9:'ColorSchemes' + BREWER_QUALITATIVE_ACCENT:'ColorSchemes' + BREWER_QUALITATIVE_DARK2:'ColorSchemes' + BREWER_QUALITATIVE_PAIRED:'ColorSchemes' + BREWER_QUALITATIVE_PASTEL1:'ColorSchemes' + BREWER_QUALITATIVE_PASTEL2:'ColorSchemes' + BREWER_QUALITATIVE_SET1:'ColorSchemes' + BREWER_QUALITATIVE_SET2:'ColorSchemes' + BREWER_QUALITATIVE_SET3:'ColorSchemes' + BREWER_SEQUENTIAL_BLUE_GREEN_3:'ColorSchemes' + BREWER_SEQUENTIAL_BLUE_GREEN_4:'ColorSchemes' + BREWER_SEQUENTIAL_BLUE_GREEN_5:'ColorSchemes' + BREWER_SEQUENTIAL_BLUE_GREEN_6:'ColorSchemes' + BREWER_SEQUENTIAL_BLUE_GREEN_7:'ColorSchemes' + BREWER_SEQUENTIAL_BLUE_GREEN_8:'ColorSchemes' + BREWER_SEQUENTIAL_BLUE_GREEN_9:'ColorSchemes' + BREWER_SEQUENTIAL_BLUE_PURPLE_3:'ColorSchemes' + BREWER_SEQUENTIAL_BLUE_PURPLE_4:'ColorSchemes' + BREWER_SEQUENTIAL_BLUE_PURPLE_5:'ColorSchemes' + BREWER_SEQUENTIAL_BLUE_PURPLE_6:'ColorSchemes' + BREWER_SEQUENTIAL_BLUE_PURPLE_7:'ColorSchemes' + BREWER_SEQUENTIAL_BLUE_PURPLE_8:'ColorSchemes' + BREWER_SEQUENTIAL_BLUE_PURPLE_9:'ColorSchemes' + BREWER_SEQUENTIAL_YELLOW_ORANGE_BROWN_3:'ColorSchemes' + BREWER_SEQUENTIAL_YELLOW_ORANGE_BROWN_4:'ColorSchemes' + BREWER_SEQUENTIAL_YELLOW_ORANGE_BROWN_5:'ColorSchemes' + BREWER_SEQUENTIAL_YELLOW_ORANGE_BROWN_6:'ColorSchemes' + BREWER_SEQUENTIAL_YELLOW_ORANGE_BROWN_7:'ColorSchemes' + BREWER_SEQUENTIAL_YELLOW_ORANGE_BROWN_8:'ColorSchemes' + BREWER_SEQUENTIAL_YELLOW_ORANGE_BROWN_9:'ColorSchemes' + CATEGORICAL:'LUTMode' + CITRUS:'ColorSchemes' + COOL:'ColorSchemes' + CUSTOM:'ColorSchemes' + ORDINAL:'LUTMode' + SPECTRUM:'ColorSchemes' + WARM:'ColorSchemes' + WILD_FLOWER:'ColorSchemes' + color_scheme:'getset_descriptor' + color_scheme_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddColor(self, color:'vtkColor3ub') -> None: ... + def BuildLookupTable(self, lkup:'vtkLookupTable', lutIndexing:int=...) -> None: ... + def ClearColors(self) -> None: ... + def CreateLookupTable(self, lutIndexing:int=...) -> 'vtkLookupTable': ... + def DeepCopy(self, chartColors:'vtkColorSeries') -> None: ... + def GetColor(self, index:int) -> 'vtkColor3ub': ... + def GetColorRepeating(self, index:int) -> 'vtkColor3ub': ... + def GetColorScheme(self) -> int: ... + def GetColorSchemeName(self) -> str: ... + def GetNumberOfColorSchemes(self) -> int: ... + def GetNumberOfColors(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InsertColor(self, index:int, color:'vtkColor3ub') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkColorSeries': ... + def RemoveColor(self, index:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkColorSeries': ... + def SetColor(self, index:int, color:'vtkColor3ub') -> None: ... + def SetColorScheme(self, scheme:int) -> None: ... + def SetColorSchemeByName(self, schemeName:str) -> int: ... + def SetColorSchemeName(self, name:str) -> None: ... + def SetNumberOfColors(self, numColors:int) -> None: ... + +class vtkNamedColors(vtkmodules.vtkCommonCore.vtkObject): + color_names:'getset_descriptor' + number_of_colors:'getset_descriptor' + synonyms:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ColorExists(self, name:str) -> bool: ... + @overload + def GetColor(self, name:str, r:int, g:int, b:int, a:int) -> None: ... + @overload + def GetColor(self, name:str, rgba:MutableSequence[int]) -> None: ... + @overload + def GetColor(self, name:str, rgba:'vtkColor4ub') -> None: ... + @overload + def GetColor(self, name:str, r:float, g:float, b:float, a:float) -> None: ... + @overload + def GetColor(self, name:str, rgba:MutableSequence[float]) -> None: ... + @overload + def GetColor(self, name:str, rgba:'vtkColor4d') -> None: ... + @overload + def GetColor(self, name:str, r:float, g:float, b:float) -> None: ... + @overload + def GetColor(self, name:str, rgb:'vtkColor3ub') -> None: ... + @overload + def GetColor(self, name:str, rgb:'vtkColor3d') -> None: ... + def GetColor3d(self, name:str) -> 'vtkColor3d': ... + def GetColor3ub(self, name:str) -> 'vtkColor3ub': ... + def GetColor4d(self, name:str) -> 'vtkColor4d': ... + def GetColor4ub(self, name:str) -> 'vtkColor4ub': ... + @overload + def GetColorNames(self) -> str: ... + @overload + def GetColorNames(self, colorNames:'vtkStringArray') -> None: ... + def GetColorRGB(self, name:str, rgb:MutableSequence[float]) -> None: ... + def GetNumberOfColors(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSynonyms(self) -> str: ... + def HTMLColorToRGB(self, colorString:str) -> 'vtkColor3ub': ... + def HTMLColorToRGBA(self, colorString:str) -> 'vtkColor4ub': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkNamedColors': ... + def RGBAToHTMLColor(self, rgba:'vtkColor4ub') -> str: ... + def RGBToHTMLColor(self, rgb:'vtkColor3ub') -> str: ... + def RemoveColor(self, name:str) -> None: ... + def ResetColors(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkNamedColors': ... + @overload + def SetColor(self, name:str, r:int, g:int, b:int, a:int=255) -> None: ... + @overload + def SetColor(self, name:str, r:float, g:float, b:float, a:float=1) -> None: ... + @overload + def SetColor(self, name:str, rgba:Sequence[int]) -> None: ... + @overload + def SetColor(self, name:str, rgba:'vtkColor4ub') -> None: ... + @overload + def SetColor(self, name:str, rgb:'vtkColor3ub') -> None: ... + @overload + def SetColor(self, name:str, rgba:Sequence[float]) -> None: ... + @overload + def SetColor(self, name:str, rgba:'vtkColor4d') -> None: ... + @overload + def SetColor(self, name:str, rgb:'vtkColor3d') -> None: ... + @overload + def SetColor(self, name:str, htmlString:str) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonComputationalGeometry.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonComputationalGeometry.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..61346f3 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonComputationalGeometry.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonComputationalGeometry.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonComputationalGeometry.pyi new file mode 100644 index 0000000..9b1f0f9 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonComputationalGeometry.pyi @@ -0,0 +1,678 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonDataModel + +class vtkBilinearQuadIntersection(object): + p00_data:'getset_descriptor' + p01_data:'getset_descriptor' + p10_data:'getset_descriptor' + p11_data:'getset_descriptor' + @overload + def __init__(self, pt00:'vtkVector3d', Pt01:'vtkVector3d', Pt10:'vtkVector3d', Pt11:'vtkVector3d') -> None: ... + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkBilinearQuadIntersection') -> None: ... + def ComputeCartesianCoordinates(self, u:float, v:float) -> 'vtkVector3d': ... + def GetP00Data(self) -> Pointer: ... + def GetP01Data(self) -> Pointer: ... + def GetP10Data(self) -> Pointer: ... + def GetP11Data(self) -> Pointer: ... + def RayIntersection(self, r:'vtkVector3d', q:'vtkVector3d', uv:'vtkVector3d') -> bool: ... + +class vtkCardinalSpline(vtkmodules.vtkCommonDataModel.vtkSpline): + def __init__(self, **properties:Any) -> None: ... + def Compute(self) -> None: ... + def DeepCopy(self, s:'vtkSpline') -> None: ... + def Evaluate(self, t:float) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCardinalSpline': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCardinalSpline': ... + +class vtkKochanekSpline(vtkmodules.vtkCommonDataModel.vtkSpline): + default_bias:'getset_descriptor' + default_continuity:'getset_descriptor' + default_tension:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Compute(self) -> None: ... + def DeepCopy(self, s:'vtkSpline') -> None: ... + def Evaluate(self, t:float) -> float: ... + def GetDefaultBias(self) -> float: ... + def GetDefaultContinuity(self) -> float: ... + def GetDefaultTension(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkKochanekSpline': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkKochanekSpline': ... + def SetDefaultBias(self, _arg:float) -> None: ... + def SetDefaultContinuity(self, _arg:float) -> None: ... + def SetDefaultTension(self, _arg:float) -> None: ... + +class vtkParametricFunction(vtkmodules.vtkCommonCore.vtkObject): + clockwise_ordering:'getset_descriptor' + derivatives_available:'getset_descriptor' + dimension:'getset_descriptor' + join_u:'getset_descriptor' + join_v:'getset_descriptor' + join_w:'getset_descriptor' + maximum_u:'getset_descriptor' + maximum_v:'getset_descriptor' + maximum_w:'getset_descriptor' + minimum_u:'getset_descriptor' + minimum_v:'getset_descriptor' + minimum_w:'getset_descriptor' + twist_u:'getset_descriptor' + twist_v:'getset_descriptor' + twist_w:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClockwiseOrderingOff(self) -> None: ... + def ClockwiseOrderingOn(self) -> None: ... + def DerivativesAvailableOff(self) -> None: ... + def DerivativesAvailableOn(self) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetClockwiseOrdering(self) -> int: ... + def GetClockwiseOrderingMaxValue(self) -> int: ... + def GetClockwiseOrderingMinValue(self) -> int: ... + def GetDerivativesAvailable(self) -> int: ... + def GetDerivativesAvailableMaxValue(self) -> int: ... + def GetDerivativesAvailableMinValue(self) -> int: ... + def GetDimension(self) -> int: ... + def GetJoinU(self) -> int: ... + def GetJoinUMaxValue(self) -> int: ... + def GetJoinUMinValue(self) -> int: ... + def GetJoinV(self) -> int: ... + def GetJoinVMaxValue(self) -> int: ... + def GetJoinVMinValue(self) -> int: ... + def GetJoinW(self) -> int: ... + def GetJoinWMaxValue(self) -> int: ... + def GetJoinWMinValue(self) -> int: ... + def GetMaximumU(self) -> float: ... + def GetMaximumV(self) -> float: ... + def GetMaximumW(self) -> float: ... + def GetMinimumU(self) -> float: ... + def GetMinimumV(self) -> float: ... + def GetMinimumW(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTwistU(self) -> int: ... + def GetTwistUMaxValue(self) -> int: ... + def GetTwistUMinValue(self) -> int: ... + def GetTwistV(self) -> int: ... + def GetTwistVMaxValue(self) -> int: ... + def GetTwistVMinValue(self) -> int: ... + def GetTwistW(self) -> int: ... + def GetTwistWMaxValue(self) -> int: ... + def GetTwistWMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def JoinUOff(self) -> None: ... + def JoinUOn(self) -> None: ... + def JoinVOff(self) -> None: ... + def JoinVOn(self) -> None: ... + def JoinWOff(self) -> None: ... + def JoinWOn(self) -> None: ... + def NewInstance(self) -> 'vtkParametricFunction': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricFunction': ... + def SetClockwiseOrdering(self, _arg:int) -> None: ... + def SetDerivativesAvailable(self, _arg:int) -> None: ... + def SetJoinU(self, _arg:int) -> None: ... + def SetJoinV(self, _arg:int) -> None: ... + def SetJoinW(self, _arg:int) -> None: ... + def SetMaximumU(self, _arg:float) -> None: ... + def SetMaximumV(self, _arg:float) -> None: ... + def SetMaximumW(self, _arg:float) -> None: ... + def SetMinimumU(self, _arg:float) -> None: ... + def SetMinimumV(self, _arg:float) -> None: ... + def SetMinimumW(self, _arg:float) -> None: ... + def SetTwistU(self, _arg:int) -> None: ... + def SetTwistV(self, _arg:int) -> None: ... + def SetTwistW(self, _arg:int) -> None: ... + def TwistUOff(self) -> None: ... + def TwistUOn(self) -> None: ... + def TwistVOff(self) -> None: ... + def TwistVOn(self) -> None: ... + def TwistWOff(self) -> None: ... + def TwistWOn(self) -> None: ... + +class vtkParametricBohemianDome(vtkParametricFunction): + a:'getset_descriptor' + b:'getset_descriptor' + c:'getset_descriptor' + dimension:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetA(self) -> float: ... + def GetB(self) -> float: ... + def GetC(self) -> float: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricBohemianDome': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricBohemianDome': ... + def SetA(self, _arg:float) -> None: ... + def SetB(self, _arg:float) -> None: ... + def SetC(self, _arg:float) -> None: ... + +class vtkParametricBour(vtkParametricFunction): + dimension:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricBour': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricBour': ... + +class vtkParametricBoy(vtkParametricFunction): + dimension:'getset_descriptor' + z_scale:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetZScale(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricBoy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricBoy': ... + def SetZScale(self, _arg:float) -> None: ... + +class vtkParametricCatalanMinimal(vtkParametricFunction): + dimension:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricCatalanMinimal': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricCatalanMinimal': ... + +class vtkParametricConicSpiral(vtkParametricFunction): + a:'getset_descriptor' + b:'getset_descriptor' + c:'getset_descriptor' + dimension:'getset_descriptor' + n:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetA(self) -> float: ... + def GetB(self) -> float: ... + def GetC(self) -> float: ... + def GetDimension(self) -> int: ... + def GetN(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricConicSpiral': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricConicSpiral': ... + def SetA(self, _arg:float) -> None: ... + def SetB(self, _arg:float) -> None: ... + def SetC(self, _arg:float) -> None: ... + def SetN(self, _arg:float) -> None: ... + +class vtkParametricCrossCap(vtkParametricFunction): + dimension:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricCrossCap': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricCrossCap': ... + +class vtkParametricDini(vtkParametricFunction): + a:'getset_descriptor' + b:'getset_descriptor' + dimension:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetA(self) -> float: ... + def GetB(self) -> float: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricDini': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricDini': ... + def SetA(self, _arg:float) -> None: ... + def SetB(self, _arg:float) -> None: ... + +class vtkParametricEllipsoid(vtkParametricFunction): + dimension:'getset_descriptor' + x_radius:'getset_descriptor' + y_radius:'getset_descriptor' + z_radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetXRadius(self) -> float: ... + def GetYRadius(self) -> float: ... + def GetZRadius(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricEllipsoid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricEllipsoid': ... + def SetXRadius(self, _arg:float) -> None: ... + def SetYRadius(self, _arg:float) -> None: ... + def SetZRadius(self, _arg:float) -> None: ... + +class vtkParametricEnneper(vtkParametricFunction): + dimension:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricEnneper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricEnneper': ... + +class vtkParametricFigure8Klein(vtkParametricFunction): + dimension:'getset_descriptor' + radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadius(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricFigure8Klein': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricFigure8Klein': ... + def SetRadius(self, _arg:float) -> None: ... + +class vtkParametricHenneberg(vtkParametricFunction): + dimension:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricHenneberg': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricHenneberg': ... + +class vtkParametricKlein(vtkParametricFunction): + dimension:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricKlein': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricKlein': ... + +class vtkParametricKuen(vtkParametricFunction): + delta_v0:'getset_descriptor' + dimension:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetDeltaV0(self) -> float: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricKuen': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricKuen': ... + def SetDeltaV0(self, _arg:float) -> None: ... + +class vtkParametricMobius(vtkParametricFunction): + dimension:'getset_descriptor' + radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadius(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricMobius': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricMobius': ... + def SetRadius(self, _arg:float) -> None: ... + +class vtkParametricPluckerConoid(vtkParametricFunction): + dimension:'getset_descriptor' + n:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetDimension(self) -> int: ... + def GetN(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricPluckerConoid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricPluckerConoid': ... + def SetN(self, _arg:int) -> None: ... + +class vtkParametricPseudosphere(vtkParametricFunction): + dimension:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricPseudosphere': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricPseudosphere': ... + +class vtkParametricRandomHills(vtkParametricFunction): + allow_random_generation:'getset_descriptor' + amplitude_scale_factor:'getset_descriptor' + dimension:'getset_descriptor' + hill_amplitude:'getset_descriptor' + hill_x_variance:'getset_descriptor' + hill_y_variance:'getset_descriptor' + number_of_hills:'getset_descriptor' + random_seed:'getset_descriptor' + x_variance_scale_factor:'getset_descriptor' + y_variance_scale_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllowRandomGenerationOff(self) -> None: ... + def AllowRandomGenerationOn(self) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetAllowRandomGeneration(self) -> int: ... + def GetAllowRandomGenerationMaxValue(self) -> int: ... + def GetAllowRandomGenerationMinValue(self) -> int: ... + def GetAmplitudeScaleFactor(self) -> float: ... + def GetDimension(self) -> int: ... + def GetHillAmplitude(self) -> float: ... + def GetHillXVariance(self) -> float: ... + def GetHillYVariance(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfHills(self) -> int: ... + def GetRandomSeed(self) -> int: ... + def GetXVarianceScaleFactor(self) -> float: ... + def GetYVarianceScaleFactor(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricRandomHills': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricRandomHills': ... + def SetAllowRandomGeneration(self, _arg:int) -> None: ... + def SetAmplitudeScaleFactor(self, _arg:float) -> None: ... + def SetHillAmplitude(self, _arg:float) -> None: ... + def SetHillXVariance(self, _arg:float) -> None: ... + def SetHillYVariance(self, _arg:float) -> None: ... + def SetNumberOfHills(self, _arg:int) -> None: ... + def SetRandomSeed(self, _arg:int) -> None: ... + def SetXVarianceScaleFactor(self, _arg:float) -> None: ... + def SetYVarianceScaleFactor(self, _arg:float) -> None: ... + +class vtkParametricRoman(vtkParametricFunction): + dimension:'getset_descriptor' + radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadius(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricRoman': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricRoman': ... + def SetRadius(self, _arg:float) -> None: ... + +class vtkParametricSpline(vtkParametricFunction): + closed:'getset_descriptor' + dimension:'getset_descriptor' + left_constraint:'getset_descriptor' + left_value:'getset_descriptor' + number_of_points:'getset_descriptor' + parameterize_by_length:'getset_descriptor' + points:'getset_descriptor' + right_constraint:'getset_descriptor' + right_value:'getset_descriptor' + x_spline:'getset_descriptor' + y_spline:'getset_descriptor' + z_spline:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClosedOff(self) -> None: ... + def ClosedOn(self) -> None: ... + def Evaluate(self, u:MutableSequence[float], Pt:MutableSequence[float], Du:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, u:MutableSequence[float], Pt:MutableSequence[float], Du:MutableSequence[float]) -> float: ... + def GetClosed(self) -> int: ... + def GetDimension(self) -> int: ... + def GetLeftConstraint(self) -> int: ... + def GetLeftConstraintMaxValue(self) -> int: ... + def GetLeftConstraintMinValue(self) -> int: ... + def GetLeftValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParameterizeByLength(self) -> int: ... + def GetPoints(self) -> 'vtkPoints': ... + def GetRightConstraint(self) -> int: ... + def GetRightConstraintMaxValue(self) -> int: ... + def GetRightConstraintMinValue(self) -> int: ... + def GetRightValue(self) -> float: ... + def GetXSpline(self) -> 'vtkSpline': ... + def GetYSpline(self) -> 'vtkSpline': ... + def GetZSpline(self) -> 'vtkSpline': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricSpline': ... + def ParameterizeByLengthOff(self) -> None: ... + def ParameterizeByLengthOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricSpline': ... + def SetClosed(self, _arg:int) -> None: ... + def SetLeftConstraint(self, _arg:int) -> None: ... + def SetLeftValue(self, _arg:float) -> None: ... + def SetNumberOfPoints(self, numPts:int) -> None: ... + def SetParameterizeByLength(self, _arg:int) -> None: ... + def SetPoint(self, index:int, x:float, y:float, z:float) -> None: ... + def SetPoints(self, __a:'vtkPoints') -> None: ... + def SetRightConstraint(self, _arg:int) -> None: ... + def SetRightValue(self, _arg:float) -> None: ... + def SetXSpline(self, __a:'vtkSpline') -> None: ... + def SetYSpline(self, __a:'vtkSpline') -> None: ... + def SetZSpline(self, __a:'vtkSpline') -> None: ... + +class vtkParametricSuperEllipsoid(vtkParametricFunction): + dimension:'getset_descriptor' + n1:'getset_descriptor' + n2:'getset_descriptor' + x_radius:'getset_descriptor' + y_radius:'getset_descriptor' + z_radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetDimension(self) -> int: ... + def GetN1(self) -> float: ... + def GetN2(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetXRadius(self) -> float: ... + def GetYRadius(self) -> float: ... + def GetZRadius(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricSuperEllipsoid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricSuperEllipsoid': ... + def SetN1(self, _arg:float) -> None: ... + def SetN2(self, _arg:float) -> None: ... + def SetXRadius(self, _arg:float) -> None: ... + def SetYRadius(self, _arg:float) -> None: ... + def SetZRadius(self, _arg:float) -> None: ... + +class vtkParametricSuperToroid(vtkParametricFunction): + cross_section_radius:'getset_descriptor' + dimension:'getset_descriptor' + n1:'getset_descriptor' + n2:'getset_descriptor' + ring_radius:'getset_descriptor' + x_radius:'getset_descriptor' + y_radius:'getset_descriptor' + z_radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetCrossSectionRadius(self) -> float: ... + def GetDimension(self) -> int: ... + def GetN1(self) -> float: ... + def GetN2(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRingRadius(self) -> float: ... + def GetXRadius(self) -> float: ... + def GetYRadius(self) -> float: ... + def GetZRadius(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricSuperToroid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricSuperToroid': ... + def SetCrossSectionRadius(self, _arg:float) -> None: ... + def SetN1(self, _arg:float) -> None: ... + def SetN2(self, _arg:float) -> None: ... + def SetRingRadius(self, _arg:float) -> None: ... + def SetXRadius(self, _arg:float) -> None: ... + def SetYRadius(self, _arg:float) -> None: ... + def SetZRadius(self, _arg:float) -> None: ... + +class vtkParametricTorus(vtkParametricFunction): + cross_section_radius:'getset_descriptor' + dimension:'getset_descriptor' + ring_radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Evaluate(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> None: ... + def EvaluateScalar(self, uvw:MutableSequence[float], Pt:MutableSequence[float], Duvw:MutableSequence[float]) -> float: ... + def GetCrossSectionRadius(self) -> float: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRingRadius(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricTorus': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricTorus': ... + def SetCrossSectionRadius(self, _arg:float) -> None: ... + def SetRingRadius(self, _arg:float) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonCore.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonCore.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..f1f8e7b Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonCore.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonCore.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonCore.pyi new file mode 100644 index 0000000..693020e --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonCore.pyi @@ -0,0 +1,11353 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +class namespace: pass + +class vtkTypesDataObject(int): ... + +class vtkEventDataAction(int): + Any:'vtkEventDataAction' + NumberOfActions:'vtkEventDataAction' + Press:'vtkEventDataAction' + Release:'vtkEventDataAction' + Touch:'vtkEventDataAction' + Unknown:'vtkEventDataAction' + Untouch:'vtkEventDataAction' + +class vtkEventDataDevice(int): + Any:'vtkEventDataDevice' + GenericTracker:'vtkEventDataDevice' + HeadMountedDisplay:'vtkEventDataDevice' + LeftController:'vtkEventDataDevice' + NumberOfDevices:'vtkEventDataDevice' + RightController:'vtkEventDataDevice' + Unknown:'vtkEventDataDevice' + +class vtkEventDataDeviceInput(int): + Any:'vtkEventDataDeviceInput' + ApplicationMenu:'vtkEventDataDeviceInput' + Grip:'vtkEventDataDeviceInput' + Joystick:'vtkEventDataDeviceInput' + NumberOfInputs:'vtkEventDataDeviceInput' + TrackPad:'vtkEventDataDeviceInput' + Trigger:'vtkEventDataDeviceInput' + Unknown:'vtkEventDataDeviceInput' + +VTK_ABSTRACT_ELECTRONIC_DATA:'vtkTypesDataObject' +VTK_ANNOTATION:'vtkTypesDataObject' +VTK_ANNOTATION_LAYERS:'vtkTypesDataObject' +VTK_ARIAL:int +VTK_ARRAY_DATA:'vtkTypesDataObject' +VTK_BIT:int +VTK_BIT_MAX:int +VTK_BIT_MIN:int +VTK_BSP_CUTS:'vtkTypesDataObject' +VTK_BUILD_VERSION:int +VTK_CELL_GRID:'vtkTypesDataObject' +VTK_CHAR:int +VTK_CHAR_MAX:int +VTK_CHAR_MIN:int +VTK_COLOR_MODE_DEFAULT:int +VTK_COLOR_MODE_DIRECT_SCALARS:int +VTK_COLOR_MODE_MAP_SCALARS:int +VTK_COMPILER_GCC_VERSION:int +VTK_COMPOSITE_DATA_SET:'vtkTypesDataObject' +VTK_COURIER:int +VTK_CUBIC_INTERPOLATION:int +VTK_DATA_OBJECT:'vtkTypesDataObject' +VTK_DATA_OBJECT_TREE:'vtkTypesDataObject' +VTK_DATA_SET:'vtkTypesDataObject' +VTK_DBL_EPSILON:float +VTK_DBL_MIN:float +VTK_DEPRECATION_LEVEL:int +VTK_DIRECTED_ACYCLIC_GRAPH:'vtkTypesDataObject' +VTK_DIRECTED_GRAPH:'vtkTypesDataObject' +VTK_DOUBLE:int +VTK_DOUBLE_MAX:float +VTK_DOUBLE_MIN:float +VTK_ENCODING_ISO_8859_1:int +VTK_ENCODING_ISO_8859_10:int +VTK_ENCODING_ISO_8859_11:int +VTK_ENCODING_ISO_8859_12:int +VTK_ENCODING_ISO_8859_13:int +VTK_ENCODING_ISO_8859_14:int +VTK_ENCODING_ISO_8859_15:int +VTK_ENCODING_ISO_8859_16:int +VTK_ENCODING_ISO_8859_2:int +VTK_ENCODING_ISO_8859_3:int +VTK_ENCODING_ISO_8859_4:int +VTK_ENCODING_ISO_8859_5:int +VTK_ENCODING_ISO_8859_6:int +VTK_ENCODING_ISO_8859_7:int +VTK_ENCODING_ISO_8859_8:int +VTK_ENCODING_ISO_8859_9:int +VTK_ENCODING_NONE:int +VTK_ENCODING_UNICODE:int +VTK_ENCODING_UNKNOWN:int +VTK_ENCODING_US_ASCII:int +VTK_ENCODING_UTF_8:int +VTK_EPOCH_VERSION:int +VTK_ERROR:int +VTK_EXPLICIT_STRUCTURED_GRID:'vtkTypesDataObject' +VTK_FLOAT:int +VTK_FLOAT_MAX:float +VTK_FLOAT_MIN:float +VTK_FONT_FILE:int +VTK_GENERIC_DATA_SET:'vtkTypesDataObject' +VTK_GEO_JSON_FEATURE:'vtkTypesDataObject' +VTK_GRAPH:'vtkTypesDataObject' +VTK_HAS_ABI_NAMESPACE:int +VTK_HIERARCHICAL_BOX_DATA_SET:'vtkTypesDataObject' +VTK_HIERARCHICAL_DATA_SET:'vtkTypesDataObject' +VTK_HYPER_OCTREE:'vtkTypesDataObject' +VTK_HYPER_TREE_GRID:'vtkTypesDataObject' +VTK_ID_MAX:int +VTK_ID_MIN:int +VTK_ID_TYPE:int +VTK_ID_TYPE_IMPL:int +VTK_ID_TYPE_PRId:str +VTK_IMAGE_DATA:'vtkTypesDataObject' +VTK_IMAGE_SLAB_MAX:int +VTK_IMAGE_SLAB_MEAN:int +VTK_IMAGE_SLAB_MIN:int +VTK_IMAGE_SLAB_SUM:int +VTK_IMAGE_STENCIL_DATA:'vtkTypesDataObject' +VTK_INT:int +VTK_INT_MAX:int +VTK_INT_MIN:int +VTK_LINEAR_INTERPOLATION:int +VTK_LONG:int +VTK_LONG_LONG:int +VTK_LONG_LONG_MAX:int +VTK_LONG_LONG_MIN:int +VTK_LONG_MAX:int +VTK_LONG_MIN:int +VTK_LUMINANCE:int +VTK_LUMINANCE_ALPHA:int +VTK_MAJOR_VERSION:int +VTK_MARSHAL_EXCLUDE_REASON_IS_INTERNAL:str +VTK_MARSHAL_EXCLUDE_REASON_IS_REDUNDANT:str +VTK_MARSHAL_EXCLUDE_REASON_NOT_SUPPORTED:str +VTK_MAXPATH:int +VTK_MAX_THREADS:int +VTK_MAX_VRCOMP:int +VTK_MINIMUM_DEPRECATION_LEVEL:int +VTK_MINOR_VERSION:int +VTK_MOLECULE:'vtkTypesDataObject' +VTK_MTIME_MAX:int +VTK_MTIME_MIN:int +VTK_MTIME_TYPE_IMPL:int +VTK_MULTIBLOCK_DATA_SET:'vtkTypesDataObject' +VTK_MULTIGROUP_DATA_SET:'vtkTypesDataObject' +VTK_MULTIPIECE_DATA_SET:'vtkTypesDataObject' +VTK_NEAREST_INTERPOLATION:int +VTK_NON_OVERLAPPING_AMR:'vtkTypesDataObject' +VTK_OBJECT:int +VTK_OK:int +VTK_OPAQUE:int +VTK_OPEN_QUBE_ELECTRONIC_DATA:'vtkTypesDataObject' +VTK_OVERLAPPING_AMR:'vtkTypesDataObject' +VTK_PARTITIONED_DATA_SET:'vtkTypesDataObject' +VTK_PARTITIONED_DATA_SET_COLLECTION:'vtkTypesDataObject' +VTK_PATH:'vtkTypesDataObject' +VTK_PIECEWISE_FUNCTION:'vtkTypesDataObject' +VTK_PISTON_DATA_OBJECT:'vtkTypesDataObject' +VTK_POINT_SET:'vtkTypesDataObject' +VTK_POLY_DATA:'vtkTypesDataObject' +VTK_RAMP_LINEAR:int +VTK_RAMP_SCURVE:int +VTK_RAMP_SQRT:int +VTK_RECTILINEAR_GRID:'vtkTypesDataObject' +VTK_REEB_GRAPH:'vtkTypesDataObject' +VTK_RGB:int +VTK_RGBA:int +VTK_SCALE_LINEAR:int +VTK_SCALE_LOG10:int +VTK_SELECTION:'vtkTypesDataObject' +VTK_SHORT:int +VTK_SHORT_MAX:int +VTK_SHORT_MIN:int +VTK_SIGNED_CHAR:int +VTK_SIGNED_CHAR_MAX:int +VTK_SIGNED_CHAR_MIN:int +VTK_SIZEOF_CHAR:int +VTK_SIZEOF_DOUBLE:int +VTK_SIZEOF_FLOAT:int +VTK_SIZEOF_ID_TYPE:int +VTK_SIZEOF_INT:int +VTK_SIZEOF_LONG:int +VTK_SIZEOF_LONG_LONG:int +VTK_SIZEOF_SHORT:int +VTK_SIZEOF_VOID_P:int +VTK_SMP_BACKEND:str +VTK_SMP_DEFAULT_IMPLEMENTATION_OPENMP:int +VTK_SMP_DEFAULT_IMPLEMENTATION_SEQUENTIAL:int +VTK_SMP_DEFAULT_IMPLEMENTATION_STDTHREAD:int +VTK_SMP_DEFAULT_IMPLEMENTATION_TBB:int +VTK_SMP_ENABLE_OPENMP:int +VTK_SMP_ENABLE_SEQUENTIAL:int +VTK_SMP_ENABLE_STDTHREAD:int +VTK_SMP_ENABLE_TBB:int +VTK_SOURCE_VERSION:str +VTK_STRING:int +VTK_STRUCTURED_GRID:'vtkTypesDataObject' +VTK_STRUCTURED_POINTS:'vtkTypesDataObject' +VTK_TABLE:'vtkTypesDataObject' +VTK_TEMPORAL_DATA_SET:'vtkTypesDataObject' +VTK_TEXT_BOTTOM:int +VTK_TEXT_CENTERED:int +VTK_TEXT_GLOBAL_ANTIALIASING_ALL:int +VTK_TEXT_GLOBAL_ANTIALIASING_NONE:int +VTK_TEXT_GLOBAL_ANTIALIASING_SOME:int +VTK_TEXT_LEFT:int +VTK_TEXT_RIGHT:int +VTK_TEXT_TOP:int +VTK_THREAD_RETURN_VALUE:None +VTK_TIMES:int +VTK_TREE:'vtkTypesDataObject' +VTK_TYPE_CHAR_IS_SIGNED:int +VTK_TYPE_FLOAT32:int +VTK_TYPE_FLOAT64:int +VTK_TYPE_INT16:int +VTK_TYPE_INT16_MAX:int +VTK_TYPE_INT16_MIN:int +VTK_TYPE_INT32:int +VTK_TYPE_INT32_MAX:int +VTK_TYPE_INT32_MIN:int +VTK_TYPE_INT64:int +VTK_TYPE_INT64_MAX:int +VTK_TYPE_INT64_MIN:int +VTK_TYPE_INT8:int +VTK_TYPE_INT8_MAX:int +VTK_TYPE_INT8_MIN:int +VTK_TYPE_LONG_LONG_FORMAT:str +VTK_TYPE_UINT16:int +VTK_TYPE_UINT16_MAX:int +VTK_TYPE_UINT16_MIN:int +VTK_TYPE_UINT32:int +VTK_TYPE_UINT32_MAX:int +VTK_TYPE_UINT32_MIN:int +VTK_TYPE_UINT64:int +VTK_TYPE_UINT64_MAX:int +VTK_TYPE_UINT64_MIN:int +VTK_TYPE_UINT8:int +VTK_TYPE_UINT8_MAX:int +VTK_TYPE_UINT8_MIN:int +VTK_UNDIRECTED_GRAPH:'vtkTypesDataObject' +VTK_UNIFORM_GRID:'vtkTypesDataObject' +VTK_UNIFORM_GRID_AMR:'vtkTypesDataObject' +VTK_UNIFORM_HYPER_TREE_GRID:'vtkTypesDataObject' +VTK_UNKNOWN_FONT:int +VTK_UNSIGNED_CHAR:int +VTK_UNSIGNED_CHAR_MAX:int +VTK_UNSIGNED_CHAR_MIN:int +VTK_UNSIGNED_INT:int +VTK_UNSIGNED_INT_MAX:int +VTK_UNSIGNED_INT_MIN:int +VTK_UNSIGNED_LONG:int +VTK_UNSIGNED_LONG_LONG:int +VTK_UNSIGNED_LONG_LONG_MAX:int +VTK_UNSIGNED_LONG_LONG_MIN:int +VTK_UNSIGNED_LONG_MAX:int +VTK_UNSIGNED_LONG_MIN:int +VTK_UNSIGNED_SHORT:int +VTK_UNSIGNED_SHORT_MAX:int +VTK_UNSIGNED_SHORT_MIN:int +VTK_UNSTRUCTURED_GRID:'vtkTypesDataObject' +VTK_UNSTRUCTURED_GRID_BASE:'vtkTypesDataObject' +VTK_USE_FLOAT32:int +VTK_USE_FLOAT64:int +VTK_USE_FUTURE_BOOL:int +VTK_USE_FUTURE_CONST:int +VTK_USE_INT16:int +VTK_USE_INT32:int +VTK_USE_INT64:int +VTK_USE_INT8:int +VTK_USE_UINT16:int +VTK_USE_UINT32:int +VTK_USE_UINT64:int +VTK_USE_UINT8:int +VTK_VARIANT:int +VTK_VERSION:str +VTK_VERSION_FULL:str +VTK_VERSION_NUMBER:int +VTK_VERSION_NUMBER_QUICK:int +VTK_VOID:int +vtkArrayIteratorTemplate:Template +vtkDenseArray:Template +vtkEventDataNumberOfDevices:int +vtkEventDataNumberOfInputs:int +vtkGenericDataArray:Template +vtkSOADataArrayTemplate:Template +vtkSparseArray:Template +vtkTypedArray:Template + +class reference(object): + @overload + def __init__(self, value:int) -> None: ... + @overload + def __init__(self, value:float) -> None: ... + @overload + def __init__(self, value:str) -> None: ... + @overload + def __init__(self, value:Sequence[int]) -> None: ... + def __round__() -> int: ... + def __trunc__() -> int: ... + def get() -> object: ... + def set(value:object) -> None: ... + +class vtkObjectBase(object): + class_name:'getset_descriptor' + is_in_memkind:'getset_descriptor' + memkind_directory:'getset_descriptor' + object_description:'getset_descriptor' + reference_count:'getset_descriptor' + using_memkind:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FastDelete(self) -> None: ... + def GetAddressAsString(self, classname:str) -> str: ... + def GetClassName(self) -> str: ... + def GetIsInMemkind(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, name:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(name:str) -> int: ... + def GetObjectDescription(self) -> str: ... + def GetReferenceCount(self) -> int: ... + @staticmethod + def GetUsingMemkind() -> bool: ... + def InitializeObjectBase(self) -> None: ... + def IsA(self, name:str) -> int: ... + @staticmethod + def IsTypeOf(name:str) -> int: ... + def Register(self, o:'vtkObjectBase'): ... + @staticmethod + def SetMemkindDirectory(directoryname:str) -> None: ... + def SetReferenceCount(self, __a:int) -> None: ... + def UnRegister(self, o:'vtkObjectBase'): ... + def UsesGarbageCollector(self) -> bool: ... + +class vtkObject(vtkObjectBase): + debug:'getset_descriptor' + global_warning_display:'getset_descriptor' + m_time:'getset_descriptor' + object_description:'getset_descriptor' + object_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddObserver(self, event:int, command:Callback, priority:float=0.0) -> int: ... + @staticmethod + def BreakOnError() -> None: ... + def DebugOff(self) -> None: ... + def DebugOn(self) -> None: ... + def GetCommand(self, tag:int) -> 'vtkCommand': ... + def GetDebug(self) -> bool: ... + @staticmethod + def GetGlobalWarningDisplay() -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetObjectDescription(self) -> str: ... + def GetObjectName(self) -> str: ... + @staticmethod + def GlobalWarningDisplayOff() -> None: ... + @staticmethod + def GlobalWarningDisplayOn() -> None: ... + @overload + def HasObserver(self, event:int, __b:'vtkCommand') -> int: ... + @overload + def HasObserver(self, event:str, __b:'vtkCommand') -> int: ... + @overload + def HasObserver(self, event:int) -> int: ... + @overload + def HasObserver(self, event:str) -> int: ... + @overload + def InvokeEvent(self, event:int, callData:Any) -> int: ... + @overload + def InvokeEvent(self, event:str, callData:Any) -> int: ... + @overload + def InvokeEvent(self, event:int) -> int: ... + @overload + def InvokeEvent(self, event:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Modified(self) -> None: ... + def NewInstance(self) -> 'vtkObject': ... + def RemoveAllObservers(self) -> None: ... + @overload + def RemoveObserver(self, __a:'vtkCommand') -> None: ... + @overload + def RemoveObserver(self, tag:int) -> None: ... + @overload + def RemoveObservers(self, event:int, __b:'vtkCommand') -> None: ... + @overload + def RemoveObservers(self, event:str, __b:'vtkCommand') -> None: ... + @overload + def RemoveObservers(self, event:int) -> None: ... + @overload + def RemoveObservers(self, event:str) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkObject': ... + def SetDebug(self, debugFlag:bool) -> None: ... + @staticmethod + def SetGlobalWarningDisplay(val:int) -> None: ... + def SetObjectName(self, objectName:str) -> None: ... + +class vtkAbstractArray(vtkObject): + class DeleteMethod(int): ... + AbstractArray:int + AoSDataArrayTemplate:int + DataArray:int + DataArrayTemplate:int + ImplicitArray:int + MAX_DISCRETE_VALUES:int + MappedDataArray:int + ScaleSoADataArrayTemplate:int + SoADataArrayTemplate:int + TypedDataArray:int + VTK_DATA_ARRAY_ALIGNED_FREE:'DeleteMethod' + VTK_DATA_ARRAY_DELETE:'DeleteMethod' + VTK_DATA_ARRAY_FREE:'DeleteMethod' + VTK_DATA_ARRAY_USER_DEFINED:'DeleteMethod' + actual_memory_size:'getset_descriptor' + array_type:'getset_descriptor' + data_size:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + element_component_size:'getset_descriptor' + information:'getset_descriptor' + max_discrete_values:'getset_descriptor' + max_id:'getset_descriptor' + name:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_components_max_value:'getset_descriptor' + number_of_components_min_value:'getset_descriptor' + number_of_tuples:'getset_descriptor' + number_of_values:'getset_descriptor' + size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, numValues:int, ext:int=1000) -> int: ... + def ClearLookup(self) -> None: ... + def CopyComponentNames(self, da:'vtkAbstractArray') -> int: ... + def CopyInformation(self, infoFrom:'vtkInformation', deep:int=1) -> int: ... + @staticmethod + def CreateArray(dataType:int) -> 'vtkAbstractArray': ... + @staticmethod + def DISCRETE_VALUES() -> 'vtkInformationVariantVectorKey': ... + @staticmethod + def DISCRETE_VALUE_SAMPLE_PARAMETERS() -> 'vtkInformationDoubleVectorKey': ... + def DataChanged(self) -> None: ... + def DeepCopy(self, da:'vtkAbstractArray') -> None: ... + def ExportToVoidPointer(self, out_ptr:Pointer) -> None: ... + @staticmethod + def GUI_HIDE() -> 'vtkInformationIntegerKey': ... + def GetActualMemorySize(self) -> int: ... + def GetArrayType(self) -> int: ... + def GetArrayTypeAsString(self) -> str: ... + def GetComponentName(self, component:int) -> str: ... + def GetDataSize(self) -> int: ... + def GetDataType(self) -> int: ... + def GetDataTypeAsString(self) -> str: ... + @overload + def GetDataTypeSize(self) -> int: ... + @overload + @staticmethod + def GetDataTypeSize(type:int) -> int: ... + def GetElementComponentSize(self) -> int: ... + def GetInformation(self) -> 'vtkInformation': ... + def GetMaxDiscreteValues(self) -> int: ... + def GetMaxId(self) -> int: ... + def GetName(self) -> str: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfComponentsMaxValue(self) -> int: ... + def GetNumberOfComponentsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetProminentComponentValues(self, comp:int, values:'vtkVariantArray', uncertainty:float=1.e-6, minimumProminence:float=1.e-3) -> None: ... + def GetSize(self) -> int: ... + @overload + def GetTuples(self, tupleIds:'vtkIdList', output:'vtkAbstractArray') -> None: ... + @overload + def GetTuples(self, p1:int, p2:int, output:'vtkAbstractArray') -> None: ... + def GetVariantValue(self, valueIdx:int) -> 'vtkVariant': ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + def HasAComponentName(self) -> bool: ... + def HasInformation(self) -> bool: ... + def HasStandardMemoryLayout(self) -> bool: ... + def Initialize(self) -> None: ... + def InsertNextTuple(self, srcTupleIdx:int, source:'vtkAbstractArray') -> int: ... + def InsertTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, ptIndices:'vtkIdList', source:'vtkAbstractArray', weights:MutableSequence[float]) -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, srcTupleIdx1:int, source1:'vtkAbstractArray', srcTupleIdx2:int, source2:'vtkAbstractArray', t:float) -> None: ... + def IsA(self, type:str) -> int: ... + def IsIntegral(self) -> bool: ... + def IsNumeric(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LookupValue(self, value:'vtkVariant') -> int: ... + @overload + def LookupValue(self, value:'vtkVariant', valueIds:'vtkIdList') -> None: ... + def Modified(self) -> None: ... + def NewInstance(self) -> 'vtkAbstractArray': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + @staticmethod + def PER_COMPONENT() -> 'vtkInformationInformationVectorKey': ... + @staticmethod + def PER_FINITE_COMPONENT() -> 'vtkInformationInformationVectorKey': ... + def Reset(self) -> None: ... + def Resize(self, numTuples:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractArray': ... + def SetComponentName(self, component:int, name:str) -> None: ... + def SetMaxDiscreteValues(self, _arg:int) -> None: ... + def SetName(self, _arg:str) -> None: ... + def SetNumberOfComponents(self, _arg:int) -> None: ... + def SetNumberOfTuples(self, numTuples:int) -> None: ... + def SetNumberOfValues(self, numValues:int) -> bool: ... + def SetTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + def SetVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def SetVoidArray(self, array:Pointer, size:int, save:int) -> None: ... + @overload + def SetVoidArray(self, array:Pointer, size:int, save:int, deleteMethod:int) -> None: ... + def Squeeze(self) -> None: ... + +class vtkDataArray(vtkAbstractArray): + actual_memory_size:'getset_descriptor' + array_type:'getset_descriptor' + data_type_max:'getset_descriptor' + data_type_min:'getset_descriptor' + element_component_size:'getset_descriptor' + finite_range:'getset_descriptor' + lookup_table:'getset_descriptor' + max_norm:'getset_descriptor' + range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def COMPONENT_RANGE() -> 'vtkInformationDoubleVectorKey': ... + def CopyComponent(self, dstComponent:int, src:'vtkDataArray', srcComponent:int) -> None: ... + def CopyInformation(self, infoFrom:'vtkInformation', deep:int=1) -> int: ... + @staticmethod + def CreateDataArray(dataType:int) -> 'vtkDataArray': ... + def CreateDefaultLookupTable(self) -> None: ... + @overload + def DeepCopy(self, aa:'vtkAbstractArray') -> None: ... + @overload + def DeepCopy(self, da:'vtkDataArray') -> None: ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkDataArray': ... + def Fill(self, value:float) -> None: ... + def FillComponent(self, compIdx:int, value:float) -> None: ... + def GetActualMemorySize(self) -> int: ... + def GetArrayType(self) -> int: ... + def GetComponent(self, tupleIdx:int, compIdx:int) -> float: ... + def GetData(self, tupleMin:int, tupleMax:int, compMin:int, compMax:int, data:'vtkDoubleArray') -> None: ... + @overload + def GetDataTypeMax(self) -> float: ... + @overload + @staticmethod + def GetDataTypeMax(type:int) -> float: ... + @overload + def GetDataTypeMin(self) -> float: ... + @overload + @staticmethod + def GetDataTypeMin(type:int) -> float: ... + @overload + def GetDataTypeRange(self, range:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def GetDataTypeRange(type:int, range:MutableSequence[float]) -> None: ... + def GetElementComponentSize(self) -> int: ... + @overload + def GetFiniteRange(self, range:MutableSequence[float], comp:int) -> None: ... + @overload + def GetFiniteRange(self, range:MutableSequence[float], comp:int, ghosts:Sequence[int], ghostsToSkip:int) -> None: ... + @overload + def GetFiniteRange(self, comp:int) -> Tuple[float, float]: ... + @overload + def GetFiniteRange(self) -> Tuple[float, float]: ... + @overload + def GetFiniteRange(self, range:MutableSequence[float]) -> None: ... + def GetIntegerTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetLookupTable(self) -> 'vtkLookupTable': ... + def GetMaxNorm(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetRange(self, range:MutableSequence[float], comp:int) -> None: ... + @overload + def GetRange(self, range:MutableSequence[float], comp:int, ghosts:Sequence[int], ghostsToSkip:int) -> None: ... + @overload + def GetRange(self, comp:int) -> Tuple[float, float]: ... + @overload + def GetRange(self) -> Tuple[float, float]: ... + @overload + def GetRange(self, range:MutableSequence[float]) -> None: ... + @overload + def GetTuple(self, tupleIdx:int) -> Tuple[float, float]: ... + @overload + def GetTuple(self, tupleIdx:int, tuple:MutableSequence[float]) -> None: ... + def GetTuple1(self, tupleIdx:int) -> float: ... + def GetTuple2(self, tupleIdx:int) -> Tuple[float, float]: ... + def GetTuple3(self, tupleIdx:int) -> Tuple[float, float, float]: ... + def GetTuple4(self, tupleIdx:int) -> Tuple[float, float, float, float]: ... + def GetTuple6(self, tupleIdx:int) -> Tuple[float, float, float, float, float, float]: ... + def GetTuple9(self, tupleIdx:int) -> Tuple[float, float, float, float, float, float, float, float, float]: ... + @overload + def GetTuples(self, tupleIds:'vtkIdList', output:'vtkAbstractArray') -> None: ... + @overload + def GetTuples(self, p1:int, p2:int, output:'vtkAbstractArray') -> None: ... + def GetUnsignedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def InsertComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + @overload + def InsertNextTuple(self, srcTupleIdx:int, source:'vtkAbstractArray') -> int: ... + @overload + def InsertNextTuple(self, tuple:Sequence[float]) -> int: ... + def InsertNextTuple1(self, value:float) -> None: ... + def InsertNextTuple2(self, val0:float, val1:float) -> None: ... + def InsertNextTuple3(self, val0:float, val1:float, val2:float) -> None: ... + def InsertNextTuple4(self, val0:float, val1:float, val2:float, val3:float) -> None: ... + def InsertNextTuple6(self, val0:float, val1:float, val2:float, val3:float, val4:float, val5:float) -> None: ... + def InsertNextTuple9(self, val0:float, val1:float, val2:float, val3:float, val4:float, val5:float, val6:float, val7:float, val8:float) -> None: ... + @overload + def InsertTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def InsertTuple1(self, tupleIdx:int, value:float) -> None: ... + def InsertTuple2(self, tupleIdx:int, val0:float, val1:float) -> None: ... + def InsertTuple3(self, tupleIdx:int, val0:float, val1:float, val2:float) -> None: ... + def InsertTuple4(self, tupleIdx:int, val0:float, val1:float, val2:float, val3:float) -> None: ... + def InsertTuple6(self, tupleIdx:int, val0:float, val1:float, val2:float, val3:float, val4:float, val5:float) -> None: ... + def InsertTuple9(self, tupleIdx:int, val0:float, val1:float, val2:float, val3:float, val4:float, val5:float, val6:float, val7:float, val8:float) -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, ptIndices:'vtkIdList', source:'vtkAbstractArray', weights:MutableSequence[float]) -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, srcTupleIdx1:int, source1:'vtkAbstractArray', srcTupleIdx2:int, source2:'vtkAbstractArray', t:float) -> None: ... + def IsA(self, type:str) -> int: ... + def IsNumeric(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def L2_NORM_FINITE_RANGE() -> 'vtkInformationDoubleVectorKey': ... + @staticmethod + def L2_NORM_RANGE() -> 'vtkInformationDoubleVectorKey': ... + def Modified(self) -> None: ... + def NewInstance(self) -> 'vtkDataArray': ... + def RemoveFirstTuple(self) -> None: ... + def RemoveLastTuple(self) -> None: ... + def RemoveTuple(self, tupleIdx:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataArray': ... + def SetComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + def SetIntegerTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def SetLookupTable(self, lut:'vtkLookupTable') -> None: ... + @overload + def SetTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def SetTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def SetTuple1(self, tupleIdx:int, value:float) -> None: ... + def SetTuple2(self, tupleIdx:int, val0:float, val1:float) -> None: ... + def SetTuple3(self, tupleIdx:int, val0:float, val1:float, val2:float) -> None: ... + def SetTuple4(self, tupleIdx:int, val0:float, val1:float, val2:float, val3:float) -> None: ... + def SetTuple6(self, tupleIdx:int, val0:float, val1:float, val2:float, val3:float, val4:float, val5:float) -> None: ... + def SetTuple9(self, tupleIdx:int, val0:float, val1:float, val2:float, val3:float, val4:float, val5:float, val6:float, val7:float, val8:float) -> None: ... + def SetUnsignedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def ShallowCopy(self, other:'vtkDataArray') -> None: ... + @staticmethod + def UNITS_LABEL() -> 'vtkInformationStringKey': ... + def WriteVoidPointer(self, valueIdx:int, numValues:int) -> Pointer: ... + +class vtkAffineCharArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, slope:str, intercept:str) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkAffineCharArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkAffineCharArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[str]) -> None: ... + def GetValue(self, id:int) -> str: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[str, str]: ... + @overload + def GetValueRange(self) -> Tuple[str, str]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAffineCharArray': ... + +class vtkAffineDoubleArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, slope:float, intercept:float) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkAffineDoubleArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkAffineDoubleArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[float]) -> None: ... + def GetValue(self, id:int) -> float: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[float, float]: ... + @overload + def GetValueRange(self) -> Tuple[float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAffineDoubleArray': ... + +class vtkAffineFloatArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, slope:float, intercept:float) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkAffineFloatArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkAffineFloatArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[float]) -> None: ... + def GetValue(self, id:int) -> float: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[float, float]: ... + @overload + def GetValueRange(self) -> Tuple[float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAffineFloatArray': ... + +class vtkAffineIdTypeArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, slope:int, intercept:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkAffineIdTypeArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkAffineIdTypeArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAffineIdTypeArray': ... + +class vtkAffineIntArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, slope:int, intercept:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkAffineIntArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkAffineIntArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAffineIntArray': ... + +class vtkAffineLongArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, slope:int, intercept:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkAffineLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkAffineLongArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAffineLongArray': ... + +class vtkAffineLongLongArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, slope:int, intercept:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkAffineLongLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkAffineLongLongArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAffineLongLongArray': ... + +class vtkAffineShortArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, slope:int, intercept:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkAffineShortArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkAffineShortArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAffineShortArray': ... + +class vtkAffineSignedCharArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, slope:int, intercept:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkAffineSignedCharArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkAffineSignedCharArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAffineSignedCharArray': ... + +class vtkAffineUnsignedCharArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, slope:int, intercept:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkAffineUnsignedCharArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkAffineUnsignedCharArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAffineUnsignedCharArray': ... + +class vtkAffineUnsignedIntArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, slope:int, intercept:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkAffineUnsignedIntArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkAffineUnsignedIntArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAffineUnsignedIntArray': ... + +class vtkAffineUnsignedLongArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, slope:int, intercept:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkAffineUnsignedLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkAffineUnsignedLongArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAffineUnsignedLongArray': ... + +class vtkAffineUnsignedLongLongArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, slope:int, intercept:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkAffineUnsignedLongLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkAffineUnsignedLongLongArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAffineUnsignedLongLongArray': ... + +class vtkAffineUnsignedShortArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, slope:int, intercept:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkAffineUnsignedShortArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkAffineUnsignedShortArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAffineUnsignedShortArray': ... + +class vtkAnimationCue(vtkObject): + class PlayDirection(int): + BACKWARD:'PlayDirection' + FORWARD:'PlayDirection' + class TimeCodes(int): ... + TIMEMODE_NORMALIZED:'TimeCodes' + TIMEMODE_RELATIVE:'TimeCodes' + animation_time:'getset_descriptor' + clock_time:'getset_descriptor' + delta_time:'getset_descriptor' + direction:'getset_descriptor' + end_time:'getset_descriptor' + start_time:'getset_descriptor' + time_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Finalize(self) -> None: ... + def GetAnimationTime(self) -> float: ... + def GetClockTime(self) -> float: ... + def GetDeltaTime(self) -> float: ... + def GetDirection(self) -> 'PlayDirection': ... + def GetEndTime(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStartTime(self) -> float: ... + def GetTimeMode(self) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAnimationCue': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAnimationCue': ... + def SetDirection(self, _arg:'PlayDirection') -> None: ... + def SetEndTime(self, _arg:float) -> None: ... + def SetStartTime(self, _arg:float) -> None: ... + def SetTimeMode(self, mode:int) -> None: ... + def SetTimeModeToNormalized(self) -> None: ... + def SetTimeModeToRelative(self) -> None: ... + def Tick(self, currenttime:float, deltatime:float, clocktime:float) -> None: ... + +class vtkArchiver(vtkObject): + archive_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CloseArchive(self) -> None: ... + def Contains(self, relativePath:str) -> bool: ... + def GetArchiveName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InsertIntoArchive(self, relativePath:str, data:str, size:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArchiver': ... + def OpenArchive(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArchiver': ... + def SetArchiveName(self, _arg:str) -> None: ... + +class vtkArray(vtkObject): + DENSE:int + SPARSE:int + dimensions:'getset_descriptor' + extents:'getset_descriptor' + name:'getset_descriptor' + non_null_size:'getset_descriptor' + size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_index:int, target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_index:int) -> None: ... + @staticmethod + def CreateArray(StorageType:int, ValueType:int) -> 'vtkArray': ... + def DeepCopy(self) -> 'vtkArray': ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetDimensionLabel(self, i:int) -> str: ... + def GetDimensions(self) -> int: ... + def GetExtent(self, dimension:int) -> 'vtkArrayRange': ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetName(self) -> str: ... + def GetNonNullSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSize(self) -> int: ... + @overload + def GetVariantValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + def GetVariantValueN(self, n:int) -> 'vtkVariant': ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArray': ... + @overload + def Resize(self, i:int) -> None: ... + @overload + def Resize(self, i:int, j:int) -> None: ... + @overload + def Resize(self, i:int, j:int, k:int) -> None: ... + @overload + def Resize(self, i:'vtkArrayRange') -> None: ... + @overload + def Resize(self, i:'vtkArrayRange', j:'vtkArrayRange') -> None: ... + @overload + def Resize(self, i:'vtkArrayRange', j:'vtkArrayRange', k:'vtkArrayRange') -> None: ... + @overload + def Resize(self, extents:'vtkArrayExtents') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArray': ... + def SetDimensionLabel(self, i:int, label:str) -> None: ... + def SetName(self, name:str) -> None: ... + @overload + def SetVariantValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + def SetVariantValueN(self, n:int, value:'vtkVariant') -> None: ... + +class vtkArrayCoordinates(object): + dimensions:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, i:int) -> None: ... + @overload + def __init__(self, i:int, j:int) -> None: ... + @overload + def __init__(self, i:int, j:int, k:int) -> None: ... + @overload + def __init__(self, __a:'vtkArrayCoordinates') -> None: ... + def GetCoordinate(self, i:int) -> int: ... + def GetDimensions(self) -> int: ... + def SetCoordinate(self, i:int, __b:int) -> None: ... + def SetDimensions(self, dimensions:int) -> None: ... + +class vtkArrayExtents(object): + dimensions:'getset_descriptor' + size:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, i:int) -> None: ... + @overload + def __init__(self, i:'vtkArrayRange') -> None: ... + @overload + def __init__(self, i:int, j:int) -> None: ... + @overload + def __init__(self, i:'vtkArrayRange', j:'vtkArrayRange') -> None: ... + @overload + def __init__(self, i:int, j:int, k:int) -> None: ... + @overload + def __init__(self, i:'vtkArrayRange', j:'vtkArrayRange', k:'vtkArrayRange') -> None: ... + @overload + def __init__(self, __a:'vtkArrayExtents') -> None: ... + def Append(self, extent:'vtkArrayRange') -> None: ... + def Contains(self, coordinates:'vtkArrayCoordinates') -> bool: ... + def GetDimensions(self) -> int: ... + def GetExtent(self, i:int) -> 'vtkArrayRange': ... + def GetLeftToRightCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetRightToLeftCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetSize(self) -> int: ... + def SameShape(self, rhs:'vtkArrayExtents') -> bool: ... + def SetDimensions(self, dimensions:int) -> None: ... + def SetExtent(self, i:int, __b:'vtkArrayRange') -> None: ... + @staticmethod + def Uniform(n:int, m:int) -> 'vtkArrayExtents': ... + def ZeroBased(self) -> bool: ... + +class vtkArrayExtentsList(object): + count:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, i:'vtkArrayExtents') -> None: ... + @overload + def __init__(self, i:'vtkArrayExtents', j:'vtkArrayExtents') -> None: ... + @overload + def __init__(self, i:'vtkArrayExtents', j:'vtkArrayExtents', k:'vtkArrayExtents') -> None: ... + @overload + def __init__(self, i:'vtkArrayExtents', j:'vtkArrayExtents', k:'vtkArrayExtents', l:'vtkArrayExtents') -> None: ... + @overload + def __init__(self, __a:'vtkArrayExtentsList') -> None: ... + def GetCount(self) -> int: ... + def SetCount(self, count:int) -> None: ... + +class vtkArrayIterator(vtkObject): + data_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, array:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayIterator': ... + +class vtkArrayIteratorTemplate_I10vtkVariantE(vtkArrayIterator): + array:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + number_of_values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArray(self) -> 'vtkAbstractArray': ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetValue(self, id:int) -> 'vtkVariant': ... + def Initialize(self, array:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayIteratorTemplate_I10vtkVariantE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayIteratorTemplate_I10vtkVariantE': ... + def SetValue(self, id:int, value:'vtkVariant') -> None: ... + +class vtkArrayIteratorTemplate_I12vtkStdStringE(vtkArrayIterator): + array:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + number_of_values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArray(self) -> 'vtkAbstractArray': ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetValue(self, id:int) -> str: ... + def Initialize(self, array:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayIteratorTemplate_I12vtkStdStringE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayIteratorTemplate_I12vtkStdStringE': ... + def SetValue(self, id:int, value:str) -> None: ... + +class vtkArrayIteratorTemplate_IaE(vtkArrayIterator): + array:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + number_of_values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArray(self) -> 'vtkAbstractArray': ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetTuple(self, id:int) -> Tuple[int, int]: ... + def GetValue(self, id:int) -> int: ... + def Initialize(self, array:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayIteratorTemplate_IaE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayIteratorTemplate_IaE': ... + def SetValue(self, id:int, value:int) -> None: ... + +class vtkArrayIteratorTemplate_IcE(vtkArrayIterator): + array:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + number_of_values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArray(self) -> 'vtkAbstractArray': ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetTuple(self, id:int) -> Tuple[str, str]: ... + def GetValue(self, id:int) -> str: ... + def Initialize(self, array:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayIteratorTemplate_IcE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayIteratorTemplate_IcE': ... + def SetValue(self, id:int, value:str) -> None: ... + +class vtkArrayIteratorTemplate_IdE(vtkArrayIterator): + array:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + number_of_values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArray(self) -> 'vtkAbstractArray': ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetTuple(self, id:int) -> Tuple[float, float]: ... + def GetValue(self, id:int) -> float: ... + def Initialize(self, array:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayIteratorTemplate_IdE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayIteratorTemplate_IdE': ... + def SetValue(self, id:int, value:float) -> None: ... + +class vtkArrayIteratorTemplate_IfE(vtkArrayIterator): + array:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + number_of_values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArray(self) -> 'vtkAbstractArray': ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetTuple(self, id:int) -> Tuple[float, float]: ... + def GetValue(self, id:int) -> float: ... + def Initialize(self, array:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayIteratorTemplate_IfE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayIteratorTemplate_IfE': ... + def SetValue(self, id:int, value:float) -> None: ... + +class vtkArrayIteratorTemplate_IhE(vtkArrayIterator): + array:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + number_of_values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArray(self) -> 'vtkAbstractArray': ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetTuple(self, id:int) -> Tuple[int, int]: ... + def GetValue(self, id:int) -> int: ... + def Initialize(self, array:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayIteratorTemplate_IhE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayIteratorTemplate_IhE': ... + def SetValue(self, id:int, value:int) -> None: ... + +class vtkArrayIteratorTemplate_IiE(vtkArrayIterator): + array:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + number_of_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArray(self) -> 'vtkAbstractArray': ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetTuple(self, id:int) -> Tuple[int, int]: ... + def GetValue(self, id:int) -> int: ... + def Initialize(self, array:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayIteratorTemplate_IiE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayIteratorTemplate_IiE': ... + def SetValue(self, id:int, value:int) -> None: ... + +class vtkArrayIteratorTemplate_IjE(vtkArrayIterator): + array:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + number_of_values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArray(self) -> 'vtkAbstractArray': ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetTuple(self, id:int) -> Tuple[int, int]: ... + def GetValue(self, id:int) -> int: ... + def Initialize(self, array:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayIteratorTemplate_IjE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayIteratorTemplate_IjE': ... + def SetValue(self, id:int, value:int) -> None: ... + +class vtkArrayIteratorTemplate_IlE(vtkArrayIterator): + array:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + number_of_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArray(self) -> 'vtkAbstractArray': ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetTuple(self, id:int) -> Tuple[int, int]: ... + def GetValue(self, id:int) -> int: ... + def Initialize(self, array:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayIteratorTemplate_IlE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayIteratorTemplate_IlE': ... + def SetValue(self, id:int, value:int) -> None: ... + +class vtkArrayIteratorTemplate_ImE(vtkArrayIterator): + array:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + number_of_values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArray(self) -> 'vtkAbstractArray': ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetTuple(self, id:int) -> Tuple[int, int]: ... + def GetValue(self, id:int) -> int: ... + def Initialize(self, array:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayIteratorTemplate_ImE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayIteratorTemplate_ImE': ... + def SetValue(self, id:int, value:int) -> None: ... + +class vtkArrayIteratorTemplate_IsE(vtkArrayIterator): + array:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + number_of_values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArray(self) -> 'vtkAbstractArray': ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetTuple(self, id:int) -> Tuple[int, int]: ... + def GetValue(self, id:int) -> int: ... + def Initialize(self, array:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayIteratorTemplate_IsE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayIteratorTemplate_IsE': ... + def SetValue(self, id:int, value:int) -> None: ... + +class vtkArrayIteratorTemplate_ItE(vtkArrayIterator): + array:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + number_of_values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArray(self) -> 'vtkAbstractArray': ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetTuple(self, id:int) -> Tuple[int, int]: ... + def GetValue(self, id:int) -> int: ... + def Initialize(self, array:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayIteratorTemplate_ItE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayIteratorTemplate_ItE': ... + def SetValue(self, id:int, value:int) -> None: ... + +class vtkArrayIteratorTemplate_IxE(vtkArrayIterator): + array:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArray(self) -> 'vtkAbstractArray': ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetTuple(self, id:int) -> Tuple[int, int]: ... + def GetValue(self, id:int) -> int: ... + def Initialize(self, array:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayIteratorTemplate_IxE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayIteratorTemplate_IxE': ... + def SetValue(self, id:int, value:int) -> None: ... + +class vtkArrayIteratorTemplate_IyE(vtkArrayIterator): + array:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + number_of_values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArray(self) -> 'vtkAbstractArray': ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetTuple(self, id:int) -> Tuple[int, int]: ... + def GetValue(self, id:int) -> int: ... + def Initialize(self, array:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayIteratorTemplate_IyE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayIteratorTemplate_IyE': ... + def SetValue(self, id:int, value:int) -> None: ... + +class vtkArrayRange(object): + begin:'getset_descriptor' + end:'getset_descriptor' + size:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, begin:int, end:int) -> None: ... + @overload + def __init__(self, __a:'vtkArrayRange') -> None: ... + @overload + def Contains(self, range:'vtkArrayRange') -> bool: ... + @overload + def Contains(self, coordinate:int) -> bool: ... + def GetBegin(self) -> int: ... + def GetEnd(self) -> int: ... + def GetSize(self) -> int: ... + +class vtkArraySort(object): + dimensions:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, i:int) -> None: ... + @overload + def __init__(self, i:int, j:int) -> None: ... + @overload + def __init__(self, i:int, j:int, k:int) -> None: ... + @overload + def __init__(self, __a:'vtkArraySort') -> None: ... + def GetDimensions(self) -> int: ... + def SetDimensions(self, dimensions:int) -> None: ... + +class vtkArrayWeights(object): + count:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, other:'vtkArrayWeights') -> None: ... + @overload + def __init__(self, i:float) -> None: ... + @overload + def __init__(self, i:float, j:float) -> None: ... + @overload + def __init__(self, i:float, j:float, k:float) -> None: ... + @overload + def __init__(self, i:float, j:float, k:float, l:float) -> None: ... + def GetCount(self) -> int: ... + def SetCount(self, count:int) -> None: ... + +class vtkAtomicMutex(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, other:'vtkAtomicMutex') -> None: ... + def lock(self) -> None: ... + def unlock(self) -> None: ... + +class vtkBitArray(vtkDataArray): + class DeleteMethod(int): ... + VTK_DATA_ARRAY_ALIGNED_FREE:'DeleteMethod' + VTK_DATA_ARRAY_DELETE:'DeleteMethod' + VTK_DATA_ARRAY_FREE:'DeleteMethod' + VTK_DATA_ARRAY_USER_DEFINED:'DeleteMethod' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + number_of_tuples:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, sz:int, ext:int=1000) -> int: ... + def ClearLookup(self) -> None: ... + def DataChanged(self) -> None: ... + @overload + def DeepCopy(self, da:'vtkDataArray') -> None: ... + @overload + def DeepCopy(self, aa:'vtkAbstractArray') -> None: ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, id:int) -> Pointer: ... + @overload + def GetTuple(self, i:int) -> Tuple[float, float]: ... + @overload + def GetTuple(self, i:int, tuple:MutableSequence[float]) -> None: ... + def GetValue(self, id:int) -> int: ... + def GetVoidPointer(self, id:int) -> Pointer: ... + def Initialize(self) -> None: ... + def InsertComponent(self, i:int, j:int, c:float) -> None: ... + @overload + def InsertNextTuple(self, j:int, source:'vtkAbstractArray') -> int: ... + @overload + def InsertNextTuple(self, tuple:Sequence[float]) -> int: ... + def InsertNextValue(self, i:int) -> int: ... + @overload + def InsertTuple(self, i:int, j:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuple(self, i:int, tuple:Sequence[float]) -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertValue(self, id:int, i:int) -> None: ... + def InsertVariantValue(self, idx:int, value:'vtkVariant') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LookupValue(self, value:'vtkVariant') -> int: ... + @overload + def LookupValue(self, value:'vtkVariant', ids:'vtkIdList') -> None: ... + @overload + def LookupValue(self, value:int) -> int: ... + @overload + def LookupValue(self, value:int, ids:'vtkIdList') -> None: ... + def NewInstance(self) -> 'vtkBitArray': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + def RemoveFirstTuple(self) -> None: ... + def RemoveLastTuple(self) -> None: ... + def RemoveTuple(self, id:int) -> None: ... + def Resize(self, numTuples:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBitArray': ... + def SetComponent(self, i:int, j:int, c:float) -> None: ... + def SetNumberOfTuples(self, number:int) -> None: ... + def SetNumberOfValues(self, number:int) -> bool: ... + @overload + def SetTuple(self, i:int, j:int, source:'vtkAbstractArray') -> None: ... + @overload + def SetTuple(self, i:int, tuple:Sequence[float]) -> None: ... + def SetValue(self, id:int, value:int) -> None: ... + def SetVariantValue(self, idx:int, value:'vtkVariant') -> None: ... + @overload + def SetVoidArray(self, array:Pointer, size:int, save:int) -> None: ... + @overload + def SetVoidArray(self, array:Pointer, size:int, save:int, deleteMethod:int) -> None: ... + def Squeeze(self) -> None: ... + def WritePointer(self, id:int, number:int) -> Pointer: ... + def WriteVoidPointer(self, id:int, number:int) -> Pointer: ... + +class vtkBitArrayIterator(vtkArrayIterator): + array:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + number_of_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArray(self) -> 'vtkAbstractArray': ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetTuple(self, id:int) -> Tuple[int, int]: ... + def GetValue(self, id:int) -> int: ... + def Initialize(self, array:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBitArrayIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBitArrayIterator': ... + def SetValue(self, id:int, value:int) -> None: ... + +class vtkRandomSequence(vtkObject): + next_value:'getset_descriptor' + value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNextValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self) -> float: ... + def Initialize(self, seed:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRandomSequence': ... + def Next(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRandomSequence': ... + +class vtkGaussianRandomSequence(vtkRandomSequence): + def __init__(self, **properties:Any) -> None: ... + def GetNextScaledValue(self, mean:float, standardDeviation:float) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScaledValue(self, mean:float, standardDeviation:float) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGaussianRandomSequence': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGaussianRandomSequence': ... + +class vtkBoxMuellerRandomSequence(vtkGaussianRandomSequence): + uniform_sequence:'getset_descriptor' + value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUniformSequence(self) -> 'vtkRandomSequence': ... + def GetValue(self) -> float: ... + def Initialize(self, seed:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBoxMuellerRandomSequence': ... + def Next(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBoxMuellerRandomSequence': ... + def SetUniformSequence(self, uniformSequence:'vtkRandomSequence') -> None: ... + +class vtkBreakPoint(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkBreakPoint') -> None: ... + @staticmethod + def Break() -> None: ... + +class vtkByteSwap(vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkByteSwap': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkByteSwap': ... + @staticmethod + def Swap2BE(p:Pointer) -> None: ... + @staticmethod + def Swap2BERange(p:Pointer, num:int) -> None: ... + @staticmethod + def Swap2LE(p:Pointer) -> None: ... + @staticmethod + def Swap2LERange(p:Pointer, num:int) -> None: ... + @staticmethod + def Swap4BE(p:Pointer) -> None: ... + @staticmethod + def Swap4BERange(p:Pointer, num:int) -> None: ... + @staticmethod + def Swap4LE(p:Pointer) -> None: ... + @staticmethod + def Swap4LERange(p:Pointer, num:int) -> None: ... + @staticmethod + def Swap8BE(p:Pointer) -> None: ... + @staticmethod + def Swap8BERange(p:Pointer, num:int) -> None: ... + @staticmethod + def Swap8LE(p:Pointer) -> None: ... + @staticmethod + def Swap8LERange(p:Pointer, num:int) -> None: ... + @overload + @staticmethod + def SwapBE(p:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def SwapBE(p:str) -> None: ... + @overload + @staticmethod + def SwapBE(p:MutableSequence[int]) -> None: ... + @overload + @staticmethod + def SwapBERange(p:MutableSequence[float], num:int) -> None: ... + @overload + @staticmethod + def SwapBERange(p:str, num:int) -> None: ... + @overload + @staticmethod + def SwapBERange(p:MutableSequence[int], num:int) -> None: ... + @overload + @staticmethod + def SwapLE(p:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def SwapLE(p:str) -> None: ... + @overload + @staticmethod + def SwapLE(p:MutableSequence[int]) -> None: ... + @overload + @staticmethod + def SwapLERange(p:MutableSequence[float], num:int) -> None: ... + @overload + @staticmethod + def SwapLERange(p:str, num:int) -> None: ... + @overload + @staticmethod + def SwapLERange(p:MutableSequence[int], num:int) -> None: ... + @staticmethod + def SwapVoidRange(buffer:Pointer, numWords:int, wordSize:int) -> None: ... + +class vtkCommand(vtkObjectBase): + class EventIds(int): ... + AbortCheckEvent:'EventIds' + ActiveCameraEvent:'EventIds' + AnimationCueTickEvent:'EventIds' + AnnotationChangedEvent:'EventIds' + AnyEvent:'EventIds' + Button3DEvent:'EventIds' + CharEvent:'EventIds' + Clip3DEvent:'EventIds' + ComputeVisiblePropBoundsEvent:'EventIds' + ConfigureEvent:'EventIds' + ConnectionClosedEvent:'EventIds' + ConnectionCreatedEvent:'EventIds' + CreateCameraEvent:'EventIds' + CreateTimerEvent:'EventIds' + CurrentChangedEvent:'EventIds' + CursorChangedEvent:'EventIds' + DeleteEvent:'EventIds' + DeletePointEvent:'EventIds' + DestroyTimerEvent:'EventIds' + DisableEvent:'EventIds' + DomainModifiedEvent:'EventIds' + DropFilesEvent:'EventIds' + Elevation3DEvent:'EventIds' + EnableEvent:'EventIds' + EndAnimationCueEvent:'EventIds' + EndEvent:'EventIds' + EndInteractionEvent:'EventIds' + EndPanEvent:'EventIds' + EndPickEvent:'EventIds' + EndPinchEvent:'EventIds' + EndRotateEvent:'EventIds' + EndSwipeEvent:'EventIds' + EndWindowLevelEvent:'EventIds' + EnterEvent:'EventIds' + ErrorEvent:'EventIds' + ExecuteInformationEvent:'EventIds' + ExitEvent:'EventIds' + ExposeEvent:'EventIds' + FifthButtonPressEvent:'EventIds' + FifthButtonReleaseEvent:'EventIds' + FourthButtonPressEvent:'EventIds' + FourthButtonReleaseEvent:'EventIds' + HighlightEvent:'EventIds' + HoverEvent:'EventIds' + InteractionEvent:'EventIds' + KeyPressEvent:'EventIds' + KeyReleaseEvent:'EventIds' + LeaveEvent:'EventIds' + LeftButtonDoubleClickEvent:'EventIds' + LeftButtonPressEvent:'EventIds' + LeftButtonReleaseEvent:'EventIds' + LoadStateEvent:'EventIds' + LongTapEvent:'EventIds' + Menu3DEvent:'EventIds' + MessageEvent:'EventIds' + MiddleButtonDoubleClickEvent:'EventIds' + MiddleButtonPressEvent:'EventIds' + MiddleButtonReleaseEvent:'EventIds' + ModifiedEvent:'EventIds' + MouseMoveEvent:'EventIds' + MouseWheelBackwardEvent:'EventIds' + MouseWheelForwardEvent:'EventIds' + MouseWheelLeftEvent:'EventIds' + MouseWheelRightEvent:'EventIds' + Move3DEvent:'EventIds' + NextPose3DEvent:'EventIds' + NoEvent:'EventIds' + PanEvent:'EventIds' + Pick3DEvent:'EventIds' + PickEvent:'EventIds' + PinchEvent:'EventIds' + PlacePointEvent:'EventIds' + PlaceWidgetEvent:'EventIds' + PositionProp3DEvent:'EventIds' + ProgressEvent:'EventIds' + PropertyModifiedEvent:'EventIds' + RegisterEvent:'EventIds' + RenderEvent:'EventIds' + RenderWindowMessageEvent:'EventIds' + ResetCameraClippingRangeEvent:'EventIds' + ResetCameraEvent:'EventIds' + ResetWindowLevelEvent:'EventIds' + ResliceAxesChangedEvent:'EventIds' + RightButtonDoubleClickEvent:'EventIds' + RightButtonPressEvent:'EventIds' + RightButtonReleaseEvent:'EventIds' + RotateEvent:'EventIds' + SaveStateEvent:'EventIds' + Select3DEvent:'EventIds' + SelectionChangedEvent:'EventIds' + SetOutputEvent:'EventIds' + StartAnimationCueEvent:'EventIds' + StartEvent:'EventIds' + StartInteractionEvent:'EventIds' + StartPanEvent:'EventIds' + StartPickEvent:'EventIds' + StartPinchEvent:'EventIds' + StartRotateEvent:'EventIds' + StartSwipeEvent:'EventIds' + StartWindowLevelEvent:'EventIds' + StateChangedEvent:'EventIds' + SwipeEvent:'EventIds' + TDxButtonPressEvent:'EventIds' + TDxButtonReleaseEvent:'EventIds' + TDxMotionEvent:'EventIds' + TapEvent:'EventIds' + TextEvent:'EventIds' + TimerEvent:'EventIds' + UnRegisterEvent:'EventIds' + UncheckedPropertyModifiedEvent:'EventIds' + UpdateDataEvent:'EventIds' + UpdateDropLocationEvent:'EventIds' + UpdateEvent:'EventIds' + UpdateInformationEvent:'EventIds' + UpdatePropertyEvent:'EventIds' + UpdateShaderEvent:'EventIds' + UserEvent:'EventIds' + ViewProgressEvent:'EventIds' + ViewerMovement3DEvent:'EventIds' + VolumeMapperComputeGradientsEndEvent:'EventIds' + VolumeMapperComputeGradientsProgressEvent:'EventIds' + VolumeMapperComputeGradientsStartEvent:'EventIds' + VolumeMapperRenderEndEvent:'EventIds' + VolumeMapperRenderProgressEvent:'EventIds' + VolumeMapperRenderStartEvent:'EventIds' + WarningEvent:'EventIds' + WidgetActivateEvent:'EventIds' + WidgetModifiedEvent:'EventIds' + WidgetValueChangedEvent:'EventIds' + WindowFrameEvent:'EventIds' + WindowIsCurrentEvent:'EventIds' + WindowIsDirectEvent:'EventIds' + WindowLevelEvent:'EventIds' + WindowMakeCurrentEvent:'EventIds' + WindowResizeEvent:'EventIds' + WindowStereoTypeChangedEvent:'EventIds' + WindowSupportsOpenGLEvent:'EventIds' + WrongTagEvent:'EventIds' + abort_flag:'getset_descriptor' + passive_observer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AbortFlagOff(self) -> None: ... + def AbortFlagOn(self) -> None: ... + @staticmethod + def EventHasData(event:int) -> bool: ... + def Execute(self, caller:'vtkObject', eventId:int, callData:Pointer) -> None: ... + def GetAbortFlag(self) -> int: ... + @staticmethod + def GetEventIdFromString(event:str) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassiveObserver(self) -> int: ... + @staticmethod + def GetStringFromEventId(event:int) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCommand': ... + def PassiveObserverOff(self) -> None: ... + def PassiveObserverOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCommand': ... + def SetAbortFlag(self, f:int) -> None: ... + def SetPassiveObserver(self, f:int) -> None: ... + +class vtkCallbackCommand(vtkCommand): + abort_flag_on_execute:'getset_descriptor' + client_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AbortFlagOnExecuteOff(self) -> None: ... + def AbortFlagOnExecuteOn(self) -> None: ... + def Execute(self, caller:'vtkObject', eid:int, callData:Pointer) -> None: ... + def GetAbortFlagOnExecute(self) -> int: ... + def GetClientData(self) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCallbackCommand': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCallbackCommand': ... + def SetAbortFlagOnExecute(self, f:int) -> None: ... + def SetClientData(self, cd:Pointer) -> None: ... + +class vtkCharArray(vtkDataArray): + data_type:'getset_descriptor' + data_type_value_max:'getset_descriptor' + data_type_value_min:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkCharArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkCharArray': ... + def GetDataType(self) -> int: ... + @staticmethod + def GetDataTypeValueMax() -> str: ... + @staticmethod + def GetDataTypeValueMin() -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, id:int) -> str: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[str]) -> None: ... + def GetValue(self, id:int) -> str: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[str, str]: ... + @overload + def GetValueRange(self) -> Tuple[str, str]: ... + def InsertNextTypedTuple(self, tuple:Sequence[str]) -> int: ... + def InsertNextValue(self, f:str) -> int: ... + def InsertTypedTuple(self, i:int, tuple:Sequence[str]) -> None: ... + def InsertValue(self, id:int, f:str) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCharArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCharArray': ... + @overload + def SetArray(self, array:Buffer, size:int, save:int) -> None: ... + @overload + def SetArray(self, array:Buffer, size:int, save:int, deleteMethod:int) -> None: ... + def SetNumberOfValues(self, number:int) -> bool: ... + def SetTypedTuple(self, i:int, tuple:Sequence[str]) -> None: ... + def SetValue(self, id:int, value:str) -> None: ... + def WritePointer(self, id:int, number:int) -> str: ... + +class vtkCollection(vtkObject): + next_item_as_object:'getset_descriptor' + number_of_items:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, __a:'vtkObject') -> None: ... + def GetItemAsObject(self, i:int) -> 'vtkObject': ... + def GetNextItemAsObject(self) -> 'vtkObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfItems(self) -> int: ... + def IndexOfFirstOccurence(self, a:'vtkObject') -> int: ... + def InitTraversal(self) -> None: ... + def InsertItem(self, i:int, __b:'vtkObject') -> None: ... + def IsA(self, type:str) -> int: ... + def IsItemPresent(self, a:'vtkObject') -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCollection': ... + def NewIterator(self) -> 'vtkCollectionIterator': ... + def RemoveAllItems(self) -> None: ... + @overload + def RemoveItem(self, i:int) -> None: ... + @overload + def RemoveItem(self, __a:'vtkObject') -> None: ... + def ReplaceItem(self, i:int, __b:'vtkObject') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCollection': ... + def UsesGarbageCollector(self) -> bool: ... + +class vtkCollectionElement(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkCollectionElement') -> None: ... + +class vtkCollectionIterator(vtkObject): + collection:'getset_descriptor' + current_object:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCollection(self) -> 'vtkCollection': ... + def GetCurrentObject(self) -> 'vtkObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GoToFirstItem(self) -> None: ... + def GoToNextItem(self) -> None: ... + def InitTraversal(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsDoneWithTraversal(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCollectionIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCollectionIterator': ... + def SetCollection(self, __a:'vtkCollection') -> None: ... + +class vtkCommonInformationKeyManager(object): + def __init__(self) -> None: ... + +class vtkCompositeCharArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, arrays:'vtkDataArrayCollection') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkCompositeCharArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkCompositeCharArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[str]) -> None: ... + def GetValue(self, id:int) -> str: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[str, str]: ... + @overload + def GetValueRange(self) -> Tuple[str, str]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeCharArray': ... + +class vtkCompositeDoubleArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, arrays:'vtkDataArrayCollection') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkCompositeDoubleArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkCompositeDoubleArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[float]) -> None: ... + def GetValue(self, id:int) -> float: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[float, float]: ... + @overload + def GetValueRange(self) -> Tuple[float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeDoubleArray': ... + +class vtkCompositeFloatArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, arrays:'vtkDataArrayCollection') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkCompositeFloatArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkCompositeFloatArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[float]) -> None: ... + def GetValue(self, id:int) -> float: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[float, float]: ... + @overload + def GetValueRange(self) -> Tuple[float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeFloatArray': ... + +class vtkCompositeIdTypeArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, arrays:'vtkDataArrayCollection') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkCompositeIdTypeArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkCompositeIdTypeArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeIdTypeArray': ... + +class vtkCompositeIntArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, arrays:'vtkDataArrayCollection') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkCompositeIntArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkCompositeIntArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeIntArray': ... + +class vtkCompositeLongArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, arrays:'vtkDataArrayCollection') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkCompositeLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkCompositeLongArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeLongArray': ... + +class vtkCompositeLongLongArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, arrays:'vtkDataArrayCollection') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkCompositeLongLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkCompositeLongLongArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeLongLongArray': ... + +class vtkCompositeShortArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, arrays:'vtkDataArrayCollection') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkCompositeShortArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkCompositeShortArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeShortArray': ... + +class vtkCompositeSignedCharArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, arrays:'vtkDataArrayCollection') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkCompositeSignedCharArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkCompositeSignedCharArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeSignedCharArray': ... + +class vtkCompositeUnsignedCharArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, arrays:'vtkDataArrayCollection') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkCompositeUnsignedCharArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkCompositeUnsignedCharArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeUnsignedCharArray': ... + +class vtkCompositeUnsignedIntArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, arrays:'vtkDataArrayCollection') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkCompositeUnsignedIntArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkCompositeUnsignedIntArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeUnsignedIntArray': ... + +class vtkCompositeUnsignedLongArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, arrays:'vtkDataArrayCollection') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkCompositeUnsignedLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkCompositeUnsignedLongArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeUnsignedLongArray': ... + +class vtkCompositeUnsignedLongLongArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, arrays:'vtkDataArrayCollection') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkCompositeUnsignedLongLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkCompositeUnsignedLongLongArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeUnsignedLongLongArray': ... + +class vtkCompositeUnsignedShortArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, arrays:'vtkDataArrayCollection') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkCompositeUnsignedShortArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkCompositeUnsignedShortArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeUnsignedShortArray': ... + +class vtkConstantCharArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, value:str) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkConstantCharArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkConstantCharArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[str]) -> None: ... + def GetValue(self, id:int) -> str: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[str, str]: ... + @overload + def GetValueRange(self) -> Tuple[str, str]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConstantCharArray': ... + +class vtkConstantDoubleArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, value:float) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkConstantDoubleArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkConstantDoubleArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[float]) -> None: ... + def GetValue(self, id:int) -> float: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[float, float]: ... + @overload + def GetValueRange(self) -> Tuple[float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConstantDoubleArray': ... + +class vtkConstantFloatArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, value:float) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkConstantFloatArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkConstantFloatArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[float]) -> None: ... + def GetValue(self, id:int) -> float: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[float, float]: ... + @overload + def GetValueRange(self) -> Tuple[float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConstantFloatArray': ... + +class vtkConstantIdTypeArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, value:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkConstantIdTypeArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkConstantIdTypeArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConstantIdTypeArray': ... + +class vtkConstantIntArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, value:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkConstantIntArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkConstantIntArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConstantIntArray': ... + +class vtkConstantLongArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, value:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkConstantLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkConstantLongArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConstantLongArray': ... + +class vtkConstantLongLongArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, value:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkConstantLongLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkConstantLongLongArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConstantLongLongArray': ... + +class vtkConstantShortArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, value:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkConstantShortArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkConstantShortArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConstantShortArray': ... + +class vtkConstantSignedCharArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, value:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkConstantSignedCharArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkConstantSignedCharArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConstantSignedCharArray': ... + +class vtkConstantUnsignedCharArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, value:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkConstantUnsignedCharArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkConstantUnsignedCharArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConstantUnsignedCharArray': ... + +class vtkConstantUnsignedIntArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, value:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkConstantUnsignedIntArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkConstantUnsignedIntArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConstantUnsignedIntArray': ... + +class vtkConstantUnsignedLongArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, value:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkConstantUnsignedLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkConstantUnsignedLongArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConstantUnsignedLongArray': ... + +class vtkConstantUnsignedLongLongArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, value:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkConstantUnsignedLongLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkConstantUnsignedLongLongArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConstantUnsignedLongLongArray': ... + +class vtkConstantUnsignedShortArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructBackend(self, value:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkConstantUnsignedShortArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkConstantUnsignedShortArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConstantUnsignedShortArray': ... + +class vtkDataArrayCollection(vtkCollection): + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, ds:'vtkDataArray') -> None: ... + def GetItem(self, i:int) -> 'vtkDataArray': ... + def GetNextItem(self) -> 'vtkDataArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataArrayCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataArrayCollection': ... + +class vtkDataArrayCollectionIterator(vtkCollectionIterator): + collection:'getset_descriptor' + data_array:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDataArray(self) -> 'vtkDataArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataArrayCollectionIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataArrayCollectionIterator': ... + @overload + def SetCollection(self, __a:'vtkCollection') -> None: ... + @overload + def SetCollection(self, __a:'vtkDataArrayCollection') -> None: ... + +class vtkDataArraySelection(vtkObject): + number_of_arrays:'getset_descriptor' + number_of_arrays_enabled:'getset_descriptor' + unknown_array_setting:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddArray(self, name:str, state:bool=True) -> int: ... + def ArrayExists(self, name:str) -> int: ... + def ArrayIsEnabled(self, name:str) -> int: ... + def CopySelections(self, selections:'vtkDataArraySelection') -> None: ... + def DeepCopy(self, other:'vtkDataArraySelection') -> None: ... + def DisableAllArrays(self) -> None: ... + def DisableArray(self, name:str) -> None: ... + def EnableAllArrays(self) -> None: ... + def EnableArray(self, name:str) -> None: ... + def GetArrayIndex(self, name:str) -> int: ... + def GetArrayName(self, index:int) -> str: ... + @overload + def GetArraySetting(self, index:int) -> int: ... + @overload + def GetArraySetting(self, name:str) -> int: ... + def GetEnabledArrayIndex(self, name:str) -> int: ... + def GetNumberOfArrays(self) -> int: ... + def GetNumberOfArraysEnabled(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUnknownArraySetting(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsEqual(self, other:'vtkDataArraySelection') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataArraySelection': ... + def RemoveAllArrays(self) -> None: ... + def RemoveArrayByIndex(self, index:int) -> None: ... + def RemoveArrayByName(self, name:str) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataArraySelection': ... + def SetArraySetting(self, name:str, setting:int) -> None: ... + def SetUnknownArraySetting(self, _arg:int) -> None: ... + @overload + def Union(self, other:'vtkDataArraySelection') -> None: ... + @overload + def Union(self, other:'vtkDataArraySelection', skipModified:bool) -> None: ... + +class vtkDebugLeaks(vtkObject): + exit_error:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + @staticmethod + def ConstructClass(object:'vtkObjectBase') -> None: ... + @overload + @staticmethod + def ConstructClass(className:str) -> None: ... + @overload + @staticmethod + def DestructClass(object:'vtkObjectBase') -> None: ... + @overload + @staticmethod + def DestructClass(className:str) -> None: ... + @staticmethod + def GetExitError() -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDebugLeaks': ... + @staticmethod + def PrintCurrentLeaks() -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDebugLeaks': ... + @staticmethod + def SetExitError(__a:int) -> None: ... + +class vtkDebugLeaksManager(object): + def __init__(self) -> None: ... + +class vtkDebugLeaksObserver(object): + def ConstructingObject(self, __a:'vtkObjectBase') -> None: ... + def DestructingObject(self, __a:'vtkObjectBase') -> None: ... + +class vtkTypedArray_I10vtkVariantE(vtkArray): + def __init__(self, **properties:Any) -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_index:int, target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_index:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + def GetValueN(self, n:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + def GetVariantValueN(self, n:int) -> 'vtkVariant': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypedArray_I10vtkVariantE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypedArray_I10vtkVariantE': ... + @overload + def SetValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + def SetValueN(self, n:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + def SetVariantValueN(self, n:int, value:'vtkVariant') -> None: ... + +class vtkDenseArray_I10vtkVariantE(vtkTypedArray_I10vtkVariantE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def Fill(self, value:'vtkVariant') -> None: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + def GetValueN(self, n:int) -> 'vtkVariant': ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDenseArray_I10vtkVariantE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDenseArray_I10vtkVariantE': ... + @overload + def SetValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + def SetValueN(self, n:int, value:'vtkVariant') -> None: ... + +class vtkTypedArray_I12vtkStdStringE(vtkArray): + def __init__(self, **properties:Any) -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_index:int, target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_index:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetValue(self, i:int) -> str: ... + @overload + def GetValue(self, i:int, j:int) -> str: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> str: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> str: ... + def GetValueN(self, n:int) -> str: ... + @overload + def GetVariantValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + def GetVariantValueN(self, n:int) -> 'vtkVariant': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypedArray_I12vtkStdStringE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypedArray_I12vtkStdStringE': ... + @overload + def SetValue(self, i:int, value:str) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:str) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:str) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:str) -> None: ... + def SetValueN(self, n:int, value:str) -> None: ... + @overload + def SetVariantValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + def SetVariantValueN(self, n:int, value:'vtkVariant') -> None: ... + +class vtkDenseArray_I12vtkStdStringE(vtkTypedArray_I12vtkStdStringE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def Fill(self, value:str) -> None: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetValue(self, i:int) -> str: ... + @overload + def GetValue(self, i:int, j:int) -> str: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> str: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> str: ... + def GetValueN(self, n:int) -> str: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDenseArray_I12vtkStdStringE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDenseArray_I12vtkStdStringE': ... + @overload + def SetValue(self, i:int, value:str) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:str) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:str) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:str) -> None: ... + def SetValueN(self, n:int, value:str) -> None: ... + +class vtkTypedArray_IaE(vtkArray): + def __init__(self, **properties:Any) -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_index:int, target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_index:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + @overload + def GetVariantValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + def GetVariantValueN(self, n:int) -> 'vtkVariant': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypedArray_IaE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypedArray_IaE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + @overload + def SetVariantValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + def SetVariantValueN(self, n:int, value:'vtkVariant') -> None: ... + +class vtkDenseArray_IaE(vtkTypedArray_IaE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def Fill(self, value:int) -> None: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStorage(self) -> Pointer: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDenseArray_IaE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDenseArray_IaE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + +class vtkTypedArray_IcE(vtkArray): + def __init__(self, **properties:Any) -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_index:int, target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_index:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetValue(self, i:int) -> str: ... + @overload + def GetValue(self, i:int, j:int) -> str: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> str: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> str: ... + def GetValueN(self, n:int) -> str: ... + @overload + def GetVariantValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + def GetVariantValueN(self, n:int) -> 'vtkVariant': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypedArray_IcE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypedArray_IcE': ... + @overload + def SetValue(self, i:int, value:str) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:str) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:str) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:str) -> None: ... + def SetValueN(self, n:int, value:str) -> None: ... + @overload + def SetVariantValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + def SetVariantValueN(self, n:int, value:'vtkVariant') -> None: ... + +class vtkDenseArray_IcE(vtkTypedArray_IcE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def Fill(self, value:str) -> None: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStorage(self) -> str: ... + @overload + def GetValue(self, i:int) -> str: ... + @overload + def GetValue(self, i:int, j:int) -> str: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> str: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> str: ... + def GetValueN(self, n:int) -> str: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDenseArray_IcE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDenseArray_IcE': ... + @overload + def SetValue(self, i:int, value:str) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:str) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:str) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:str) -> None: ... + def SetValueN(self, n:int, value:str) -> None: ... + +class vtkTypedArray_IdE(vtkArray): + def __init__(self, **properties:Any) -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_index:int, target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_index:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetValue(self, i:int) -> float: ... + @overload + def GetValue(self, i:int, j:int) -> float: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> float: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> float: ... + def GetValueN(self, n:int) -> float: ... + @overload + def GetVariantValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + def GetVariantValueN(self, n:int) -> 'vtkVariant': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypedArray_IdE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypedArray_IdE': ... + @overload + def SetValue(self, i:int, value:float) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:float) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:float) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:float) -> None: ... + def SetValueN(self, n:int, value:float) -> None: ... + @overload + def SetVariantValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + def SetVariantValueN(self, n:int, value:'vtkVariant') -> None: ... + +class vtkDenseArray_IdE(vtkTypedArray_IdE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def Fill(self, value:float) -> None: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStorage(self) -> Pointer: ... + @overload + def GetValue(self, i:int) -> float: ... + @overload + def GetValue(self, i:int, j:int) -> float: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> float: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> float: ... + def GetValueN(self, n:int) -> float: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDenseArray_IdE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDenseArray_IdE': ... + @overload + def SetValue(self, i:int, value:float) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:float) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:float) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:float) -> None: ... + def SetValueN(self, n:int, value:float) -> None: ... + +class vtkTypedArray_IfE(vtkArray): + def __init__(self, **properties:Any) -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_index:int, target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_index:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetValue(self, i:int) -> float: ... + @overload + def GetValue(self, i:int, j:int) -> float: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> float: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> float: ... + def GetValueN(self, n:int) -> float: ... + @overload + def GetVariantValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + def GetVariantValueN(self, n:int) -> 'vtkVariant': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypedArray_IfE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypedArray_IfE': ... + @overload + def SetValue(self, i:int, value:float) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:float) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:float) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:float) -> None: ... + def SetValueN(self, n:int, value:float) -> None: ... + @overload + def SetVariantValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + def SetVariantValueN(self, n:int, value:'vtkVariant') -> None: ... + +class vtkDenseArray_IfE(vtkTypedArray_IfE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def Fill(self, value:float) -> None: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStorage(self) -> Pointer: ... + @overload + def GetValue(self, i:int) -> float: ... + @overload + def GetValue(self, i:int, j:int) -> float: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> float: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> float: ... + def GetValueN(self, n:int) -> float: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDenseArray_IfE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDenseArray_IfE': ... + @overload + def SetValue(self, i:int, value:float) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:float) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:float) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:float) -> None: ... + def SetValueN(self, n:int, value:float) -> None: ... + +class vtkTypedArray_IhE(vtkArray): + def __init__(self, **properties:Any) -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_index:int, target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_index:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + @overload + def GetVariantValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + def GetVariantValueN(self, n:int) -> 'vtkVariant': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypedArray_IhE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypedArray_IhE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + @overload + def SetVariantValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + def SetVariantValueN(self, n:int, value:'vtkVariant') -> None: ... + +class vtkDenseArray_IhE(vtkTypedArray_IhE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def Fill(self, value:int) -> None: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStorage(self) -> Pointer: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDenseArray_IhE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDenseArray_IhE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + +class vtkTypedArray_IiE(vtkArray): + def __init__(self, **properties:Any) -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_index:int, target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_index:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + @overload + def GetVariantValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + def GetVariantValueN(self, n:int) -> 'vtkVariant': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypedArray_IiE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypedArray_IiE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + @overload + def SetVariantValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + def SetVariantValueN(self, n:int, value:'vtkVariant') -> None: ... + +class vtkDenseArray_IiE(vtkTypedArray_IiE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def Fill(self, value:int) -> None: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStorage(self) -> Pointer: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDenseArray_IiE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDenseArray_IiE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + +class vtkTypedArray_IjE(vtkArray): + def __init__(self, **properties:Any) -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_index:int, target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_index:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + @overload + def GetVariantValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + def GetVariantValueN(self, n:int) -> 'vtkVariant': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypedArray_IjE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypedArray_IjE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + @overload + def SetVariantValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + def SetVariantValueN(self, n:int, value:'vtkVariant') -> None: ... + +class vtkDenseArray_IjE(vtkTypedArray_IjE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def Fill(self, value:int) -> None: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStorage(self) -> Pointer: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDenseArray_IjE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDenseArray_IjE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + +class vtkTypedArray_IlE(vtkArray): + def __init__(self, **properties:Any) -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_index:int, target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_index:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + @overload + def GetVariantValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + def GetVariantValueN(self, n:int) -> 'vtkVariant': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypedArray_IlE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypedArray_IlE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + @overload + def SetVariantValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + def SetVariantValueN(self, n:int, value:'vtkVariant') -> None: ... + +class vtkDenseArray_IlE(vtkTypedArray_IlE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def Fill(self, value:int) -> None: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStorage(self) -> Pointer: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDenseArray_IlE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDenseArray_IlE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + +class vtkTypedArray_ImE(vtkArray): + def __init__(self, **properties:Any) -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_index:int, target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_index:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + @overload + def GetVariantValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + def GetVariantValueN(self, n:int) -> 'vtkVariant': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypedArray_ImE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypedArray_ImE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + @overload + def SetVariantValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + def SetVariantValueN(self, n:int, value:'vtkVariant') -> None: ... + +class vtkDenseArray_ImE(vtkTypedArray_ImE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def Fill(self, value:int) -> None: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStorage(self) -> Pointer: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDenseArray_ImE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDenseArray_ImE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + +class vtkTypedArray_IsE(vtkArray): + def __init__(self, **properties:Any) -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_index:int, target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_index:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + @overload + def GetVariantValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + def GetVariantValueN(self, n:int) -> 'vtkVariant': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypedArray_IsE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypedArray_IsE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + @overload + def SetVariantValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + def SetVariantValueN(self, n:int, value:'vtkVariant') -> None: ... + +class vtkDenseArray_IsE(vtkTypedArray_IsE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def Fill(self, value:int) -> None: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStorage(self) -> Pointer: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDenseArray_IsE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDenseArray_IsE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + +class vtkTypedArray_ItE(vtkArray): + def __init__(self, **properties:Any) -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_index:int, target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_index:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + @overload + def GetVariantValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + def GetVariantValueN(self, n:int) -> 'vtkVariant': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypedArray_ItE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypedArray_ItE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + @overload + def SetVariantValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + def SetVariantValueN(self, n:int, value:'vtkVariant') -> None: ... + +class vtkDenseArray_ItE(vtkTypedArray_ItE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def Fill(self, value:int) -> None: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStorage(self) -> Pointer: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDenseArray_ItE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDenseArray_ItE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + +class vtkTypedArray_IxE(vtkArray): + def __init__(self, **properties:Any) -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_index:int, target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_index:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + @overload + def GetVariantValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + def GetVariantValueN(self, n:int) -> 'vtkVariant': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypedArray_IxE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypedArray_IxE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + @overload + def SetVariantValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + def SetVariantValueN(self, n:int, value:'vtkVariant') -> None: ... + +class vtkDenseArray_IxE(vtkTypedArray_IxE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def Fill(self, value:int) -> None: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStorage(self) -> Pointer: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDenseArray_IxE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDenseArray_IxE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + +class vtkTypedArray_IyE(vtkArray): + def __init__(self, **properties:Any) -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_index:int, target_coordinates:'vtkArrayCoordinates') -> None: ... + @overload + def CopyValue(self, source:'vtkArray', source_coordinates:'vtkArrayCoordinates', target_index:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + @overload + def GetVariantValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetVariantValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + def GetVariantValueN(self, n:int) -> 'vtkVariant': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypedArray_IyE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypedArray_IyE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + @overload + def SetVariantValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetVariantValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + def SetVariantValueN(self, n:int, value:'vtkVariant') -> None: ... + +class vtkDenseArray_IyE(vtkTypedArray_IyE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def Fill(self, value:int) -> None: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStorage(self) -> Pointer: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDenseArray_IyE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDenseArray_IyE': ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + +class vtkDeserializer(vtkObject): + context:'getset_descriptor' + deserializer_log_verbosity:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstructObject(self, className:str, superClassNames:Sequence[str]) -> 'vtkObjectBase': ... + def DeserializeJSON(self, identifier:int, objectBase:'vtkObjectBase') -> bool: ... + def GetContext(self) -> 'vtkMarshalContext': ... + def GetDeserializerLogVerbosity(self) -> vtkLogger.Verbosity: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDeserializer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDeserializer': ... + def SetContext(self, _arg:'vtkMarshalContext') -> None: ... + def SetDeserializerLogVerbosity(self, verbosity:vtkLogger.Verbosity) -> None: ... + def UnRegisterConstructor(self, className:str) -> None: ... + +class vtkDoubleArray(vtkDataArray): + data_type:'getset_descriptor' + data_type_value_max:'getset_descriptor' + data_type_value_min:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkDoubleArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkDoubleArray': ... + def GetDataType(self) -> int: ... + @staticmethod + def GetDataTypeValueMax() -> float: ... + @staticmethod + def GetDataTypeValueMin() -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, id:int) -> Pointer: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[float]) -> None: ... + def GetValue(self, id:int) -> float: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[float, float]: ... + @overload + def GetValueRange(self) -> Tuple[float, float]: ... + def InsertNextTypedTuple(self, tuple:Sequence[float]) -> int: ... + def InsertNextValue(self, f:float) -> int: ... + def InsertTypedTuple(self, i:int, tuple:Sequence[float]) -> None: ... + def InsertValue(self, id:int, f:float) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDoubleArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDoubleArray': ... + @overload + def SetArray(self, array:Buffer, size:int, save:int) -> None: ... + @overload + def SetArray(self, array:Buffer, size:int, save:int, deleteMethod:int) -> None: ... + def SetNumberOfValues(self, number:int) -> bool: ... + def SetTypedTuple(self, i:int, tuple:Sequence[float]) -> None: ... + def SetValue(self, id:int, value:float) -> None: ... + def WritePointer(self, id:int, number:int) -> Pointer: ... + +class vtkDynamicLoader(vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def LastError() -> str: ... + @staticmethod + def LibExtension() -> str: ... + @staticmethod + def LibPrefix() -> str: ... + def NewInstance(self) -> 'vtkDynamicLoader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDynamicLoader': ... + +class vtkEventData(vtkObjectBase): + as_event_data_device3d:'getset_descriptor' + as_event_data_for_device:'getset_descriptor' + type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAsEventDataDevice3D(self) -> 'vtkEventDataDevice3D': ... + def GetAsEventDataForDevice(self) -> 'vtkEventDataForDevice': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetType(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEventData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEventData': ... + def SetType(self, val:int) -> None: ... + +class vtkEventDataForDevice(vtkEventData): + action:'getset_descriptor' + as_event_data_for_device:'getset_descriptor' + device:'getset_descriptor' + input:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeviceMatches(self, val:'vtkEventDataDevice') -> bool: ... + def GetAction(self) -> 'vtkEventDataAction': ... + def GetAsEventDataForDevice(self) -> 'vtkEventDataForDevice': ... + def GetDevice(self) -> 'vtkEventDataDevice': ... + def GetInput(self) -> 'vtkEventDataDeviceInput': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEventDataForDevice': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEventDataForDevice': ... + def SetAction(self, v:'vtkEventDataAction') -> None: ... + def SetDevice(self, v:'vtkEventDataDevice') -> None: ... + def SetInput(self, v:'vtkEventDataDeviceInput') -> None: ... + +class vtkEventDataDevice3D(vtkEventDataForDevice): + as_event_data_device3d:'getset_descriptor' + track_pad_position:'getset_descriptor' + world_direction:'getset_descriptor' + world_orientation:'getset_descriptor' + world_position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAsEventDataDevice3D(self) -> 'vtkEventDataDevice3D': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetTrackPadPosition(self, v:MutableSequence[float]) -> None: ... + @overload + def GetTrackPadPosition(self) -> Tuple[float, float]: ... + @overload + def GetWorldDirection(self, v:MutableSequence[float]) -> None: ... + @overload + def GetWorldDirection(self) -> Tuple[float, float, float]: ... + @overload + def GetWorldOrientation(self, v:MutableSequence[float]) -> None: ... + @overload + def GetWorldOrientation(self) -> Tuple[float, float, float, float]: ... + @overload + def GetWorldPosition(self, v:MutableSequence[float]) -> None: ... + @overload + def GetWorldPosition(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEventDataDevice3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEventDataDevice3D': ... + @overload + def SetTrackPadPosition(self, p:Sequence[float]) -> None: ... + @overload + def SetTrackPadPosition(self, x:float, y:float) -> None: ... + def SetWorldDirection(self, p:Sequence[float]) -> None: ... + def SetWorldOrientation(self, p:Sequence[float]) -> None: ... + def SetWorldPosition(self, p:Sequence[float]) -> None: ... + +class vtkEventForwarderCommand(vtkCommand): + target:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Execute(self, caller:'vtkObject', eid:int, callData:Pointer) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTarget(self) -> Pointer: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEventForwarderCommand': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEventForwarderCommand': ... + def SetTarget(self, obj:'vtkObject') -> None: ... + +class vtkOutputWindow(vtkObject): + class DisplayModes(int): ... + ALWAYS:'DisplayModes' + ALWAYS_STDERR:'DisplayModes' + DEFAULT:'DisplayModes' + NEVER:'DisplayModes' + display_mode:'getset_descriptor' + instance:'getset_descriptor' + prompt_user:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DisplayDebugText(self, __a:str) -> None: ... + def DisplayErrorText(self, __a:str) -> None: ... + def DisplayGenericWarningText(self, __a:str) -> None: ... + def DisplayText(self, __a:str) -> None: ... + def DisplayWarningText(self, __a:str) -> None: ... + def GetDisplayMode(self) -> int: ... + def GetDisplayModeMaxValue(self) -> int: ... + def GetDisplayModeMinValue(self) -> int: ... + @staticmethod + def GetInstance() -> 'vtkOutputWindow': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOutputWindow': ... + def PromptUserOff(self) -> None: ... + def PromptUserOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOutputWindow': ... + def SetDisplayMode(self, _arg:int) -> None: ... + def SetDisplayModeToAlways(self) -> None: ... + def SetDisplayModeToAlwaysStdErr(self) -> None: ... + def SetDisplayModeToDefault(self) -> None: ... + def SetDisplayModeToNever(self) -> None: ... + @staticmethod + def SetInstance(instance:'vtkOutputWindow') -> None: ... + def SetPromptUser(self, _arg:bool) -> None: ... + +class vtkFileOutputWindow(vtkOutputWindow): + append:'getset_descriptor' + file_name:'getset_descriptor' + flush:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AppendOff(self) -> None: ... + def AppendOn(self) -> None: ... + def DisplayText(self, __a:str) -> None: ... + def FlushOff(self) -> None: ... + def FlushOn(self) -> None: ... + def GetAppend(self) -> int: ... + def GetFileName(self) -> str: ... + def GetFlush(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFileOutputWindow': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFileOutputWindow': ... + def SetAppend(self, _arg:int) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetFlush(self, _arg:int) -> None: ... + +class vtkFloatArray(vtkDataArray): + data_type:'getset_descriptor' + data_type_value_max:'getset_descriptor' + data_type_value_min:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkFloatArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkFloatArray': ... + def GetDataType(self) -> int: ... + @staticmethod + def GetDataTypeValueMax() -> float: ... + @staticmethod + def GetDataTypeValueMin() -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, id:int) -> Pointer: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[float]) -> None: ... + def GetValue(self, id:int) -> float: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[float, float]: ... + @overload + def GetValueRange(self) -> Tuple[float, float]: ... + def InsertNextTypedTuple(self, tuple:Sequence[float]) -> int: ... + def InsertNextValue(self, f:float) -> int: ... + def InsertTypedTuple(self, i:int, tuple:Sequence[float]) -> None: ... + def InsertValue(self, id:int, f:float) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFloatArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFloatArray': ... + @overload + def SetArray(self, array:Buffer, size:int, save:int) -> None: ... + @overload + def SetArray(self, array:Buffer, size:int, save:int, deleteMethod:int) -> None: ... + def SetNumberOfValues(self, number:int) -> bool: ... + def SetTypedTuple(self, i:int, tuple:Sequence[float]) -> None: ... + def SetValue(self, id:int, value:float) -> None: ... + def WritePointer(self, id:int, number:int) -> Pointer: ... + +class vtkFloatingPointExceptions(object): + @staticmethod + def Disable() -> None: ... + @staticmethod + def Enable() -> None: ... + +class vtkGarbageCollector(vtkObject): + global_debug_flag:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + @staticmethod + def Collect() -> None: ... + @overload + @staticmethod + def Collect(root:'vtkObjectBase') -> None: ... + @staticmethod + def DeferredCollectionPop() -> None: ... + @staticmethod + def DeferredCollectionPush() -> None: ... + @staticmethod + def GetGlobalDebugFlag() -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGarbageCollector': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGarbageCollector': ... + @staticmethod + def SetGlobalDebugFlag(flag:bool) -> None: ... + +class vtkGarbageCollectorManager(object): + def __init__(self) -> None: ... + +class vtkGenericDataArray_I23vtkSOADataArrayTemplateIaEaE(vtkDataArray): + VTK_DATA_TYPE:int + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + finite_value_range:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, size:int, ext:int=1000) -> int: ... + def Capacity(self) -> int: ... + def ClearLookup(self) -> None: ... + def DataChanged(self) -> None: ... + def FillComponent(self, compIdx:int, value:float) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def FillValue(self, value:int) -> None: ... + def GetComponent(self, tupleIdx:int, compIdx:int) -> float: ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetFiniteValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, valueIdx:int) -> Pointer: ... + @overload + def GetTuple(self, tupleIdx:int) -> Tuple[float, float]: ... + @overload + def GetTuple(self, tupleIdx:int, tuple:MutableSequence[float]) -> None: ... + @overload + def GetTuples(self, tupleIds:'vtkIdList', output:'vtkAbstractArray') -> None: ... + @overload + def GetTuples(self, p1:int, p2:int, output:'vtkAbstractArray') -> None: ... + def GetTypedComponent(self, tupleIdx:int, compIdx:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + @overload + def GetValueRange(self, range:MutableSequence[int]) -> None: ... + def GetVariantValue(self, valueIdx:int) -> 'vtkVariant': ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + def HasStandardMemoryLayout(self) -> bool: ... + def Initialize(self) -> None: ... + def InsertComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + @overload + def InsertNextTuple(self, srcTupleIdx:int, source:'vtkAbstractArray') -> int: ... + @overload + def InsertNextTuple(self, tuple:Sequence[float]) -> int: ... + def InsertNextTypedTuple(self, t:Sequence[int]) -> int: ... + def InsertNextValue(self, value:int) -> int: ... + @overload + def InsertTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuple(self, tupleIdx:int, source:Sequence[float]) -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTypedComponent(self, tupleIdx:int, compIdx:int, val:int) -> None: ... + def InsertTypedTuple(self, tupleIdx:int, t:Sequence[int]) -> None: ... + def InsertValue(self, valueIdx:int, value:int) -> None: ... + def InsertVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, ptIndices:'vtkIdList', source:'vtkAbstractArray', weights:MutableSequence[float]) -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, srcTupleIdx1:int, source1:'vtkAbstractArray', srcTupleIdx2:int, source2:'vtkAbstractArray', t:float) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LookupTypedValue(self, value:int) -> int: ... + @overload + def LookupTypedValue(self, value:int, valueIds:'vtkIdList') -> None: ... + @overload + def LookupValue(self, value:'vtkVariant') -> int: ... + @overload + def LookupValue(self, value:'vtkVariant', valueIds:'vtkIdList') -> None: ... + def NewInstance(self) -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIaEaE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + def RemoveTuple(self, tupleIdx:int) -> None: ... + def Resize(self, numTuples:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIaEaE': ... + def SetComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + def SetNumberOfComponents(self, num:int) -> None: ... + def SetNumberOfTuples(self, number:int) -> None: ... + @overload + def SetTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def SetTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def SetTypedComponent(self, tupleIdx:int, compIdx:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def SetVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int) -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int, __d:int) -> None: ... + def Squeeze(self) -> None: ... + def WritePointer(self, valueIdx:int, numValues:int) -> Pointer: ... + def WriteVoidPointer(self, valueIdx:int, numValues:int) -> Pointer: ... + +class vtkGenericDataArray_I23vtkSOADataArrayTemplateIcEcE(vtkDataArray): + VTK_DATA_TYPE:int + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + finite_value_range:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, size:int, ext:int=1000) -> int: ... + def Capacity(self) -> int: ... + def ClearLookup(self) -> None: ... + def DataChanged(self) -> None: ... + def FillComponent(self, compIdx:int, value:float) -> None: ... + def FillTypedComponent(self, compIdx:int, value:str) -> None: ... + def FillValue(self, value:str) -> None: ... + def GetComponent(self, tupleIdx:int, compIdx:int) -> float: ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[str], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[str], comp:int) -> None: ... + @overload + def GetFiniteValueRange(self, comp:int) -> Tuple[str, str]: ... + @overload + def GetFiniteValueRange(self) -> Tuple[str, str]: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[str]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, valueIdx:int) -> str: ... + @overload + def GetTuple(self, tupleIdx:int) -> Tuple[float, float]: ... + @overload + def GetTuple(self, tupleIdx:int, tuple:MutableSequence[float]) -> None: ... + @overload + def GetTuples(self, tupleIds:'vtkIdList', output:'vtkAbstractArray') -> None: ... + @overload + def GetTuples(self, p1:int, p2:int, output:'vtkAbstractArray') -> None: ... + def GetTypedComponent(self, tupleIdx:int, compIdx:int) -> str: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[str]) -> None: ... + def GetValue(self, valueIdx:int) -> str: ... + @overload + def GetValueRange(self, range:MutableSequence[str], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetValueRange(self, range:MutableSequence[str], comp:int) -> None: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[str, str]: ... + @overload + def GetValueRange(self) -> Tuple[str, str]: ... + @overload + def GetValueRange(self, range:MutableSequence[str]) -> None: ... + def GetVariantValue(self, valueIdx:int) -> 'vtkVariant': ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + def HasStandardMemoryLayout(self) -> bool: ... + def Initialize(self) -> None: ... + def InsertComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + @overload + def InsertNextTuple(self, srcTupleIdx:int, source:'vtkAbstractArray') -> int: ... + @overload + def InsertNextTuple(self, tuple:Sequence[float]) -> int: ... + def InsertNextTypedTuple(self, t:Sequence[str]) -> int: ... + def InsertNextValue(self, value:str) -> int: ... + @overload + def InsertTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuple(self, tupleIdx:int, source:Sequence[float]) -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTypedComponent(self, tupleIdx:int, compIdx:int, val:str) -> None: ... + def InsertTypedTuple(self, tupleIdx:int, t:Sequence[str]) -> None: ... + def InsertValue(self, valueIdx:int, value:str) -> None: ... + def InsertVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, ptIndices:'vtkIdList', source:'vtkAbstractArray', weights:MutableSequence[float]) -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, srcTupleIdx1:int, source1:'vtkAbstractArray', srcTupleIdx2:int, source2:'vtkAbstractArray', t:float) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LookupTypedValue(self, value:str) -> int: ... + @overload + def LookupTypedValue(self, value:str, valueIds:'vtkIdList') -> None: ... + @overload + def LookupValue(self, value:'vtkVariant') -> int: ... + @overload + def LookupValue(self, value:'vtkVariant', valueIds:'vtkIdList') -> None: ... + def NewInstance(self) -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIcEcE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + def RemoveTuple(self, tupleIdx:int) -> None: ... + def Resize(self, numTuples:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIcEcE': ... + def SetComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + def SetNumberOfComponents(self, num:int) -> None: ... + def SetNumberOfTuples(self, number:int) -> None: ... + @overload + def SetTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def SetTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def SetTypedComponent(self, tupleIdx:int, compIdx:int, value:str) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[str]) -> None: ... + def SetValue(self, valueIdx:int, value:str) -> None: ... + def SetVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int) -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int, __d:int) -> None: ... + def Squeeze(self) -> None: ... + def WritePointer(self, valueIdx:int, numValues:int) -> str: ... + def WriteVoidPointer(self, valueIdx:int, numValues:int) -> Pointer: ... + +class vtkGenericDataArray_I23vtkSOADataArrayTemplateIdEdE(vtkDataArray): + VTK_DATA_TYPE:int + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + finite_value_range:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, size:int, ext:int=1000) -> int: ... + def Capacity(self) -> int: ... + def ClearLookup(self) -> None: ... + def DataChanged(self) -> None: ... + def FillComponent(self, compIdx:int, value:float) -> None: ... + def FillTypedComponent(self, compIdx:int, value:float) -> None: ... + def FillValue(self, value:float) -> None: ... + def GetComponent(self, tupleIdx:int, compIdx:int) -> float: ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[float], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[float], comp:int) -> None: ... + @overload + def GetFiniteValueRange(self, comp:int) -> Tuple[float, float]: ... + @overload + def GetFiniteValueRange(self) -> Tuple[float, float]: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, valueIdx:int) -> Pointer: ... + @overload + def GetTuple(self, tupleIdx:int) -> Tuple[float, float]: ... + @overload + def GetTuple(self, tupleIdx:int, tuple:MutableSequence[float]) -> None: ... + @overload + def GetTuples(self, tupleIds:'vtkIdList', output:'vtkAbstractArray') -> None: ... + @overload + def GetTuples(self, p1:int, p2:int, output:'vtkAbstractArray') -> None: ... + def GetTypedComponent(self, tupleIdx:int, compIdx:int) -> float: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[float]) -> None: ... + def GetValue(self, valueIdx:int) -> float: ... + @overload + def GetValueRange(self, range:MutableSequence[float], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetValueRange(self, range:MutableSequence[float], comp:int) -> None: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[float, float]: ... + @overload + def GetValueRange(self) -> Tuple[float, float]: ... + @overload + def GetValueRange(self, range:MutableSequence[float]) -> None: ... + def GetVariantValue(self, valueIdx:int) -> 'vtkVariant': ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + def HasStandardMemoryLayout(self) -> bool: ... + def Initialize(self) -> None: ... + def InsertComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + @overload + def InsertNextTuple(self, srcTupleIdx:int, source:'vtkAbstractArray') -> int: ... + @overload + def InsertNextTuple(self, tuple:Sequence[float]) -> int: ... + def InsertNextTypedTuple(self, t:Sequence[float]) -> int: ... + def InsertNextValue(self, value:float) -> int: ... + @overload + def InsertTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuple(self, tupleIdx:int, source:Sequence[float]) -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTypedComponent(self, tupleIdx:int, compIdx:int, val:float) -> None: ... + def InsertTypedTuple(self, tupleIdx:int, t:Sequence[float]) -> None: ... + def InsertValue(self, valueIdx:int, value:float) -> None: ... + def InsertVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, ptIndices:'vtkIdList', source:'vtkAbstractArray', weights:MutableSequence[float]) -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, srcTupleIdx1:int, source1:'vtkAbstractArray', srcTupleIdx2:int, source2:'vtkAbstractArray', t:float) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LookupTypedValue(self, value:float) -> int: ... + @overload + def LookupTypedValue(self, value:float, valueIds:'vtkIdList') -> None: ... + @overload + def LookupValue(self, value:'vtkVariant') -> int: ... + @overload + def LookupValue(self, value:'vtkVariant', valueIds:'vtkIdList') -> None: ... + def NewInstance(self) -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIdEdE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + def RemoveTuple(self, tupleIdx:int) -> None: ... + def Resize(self, numTuples:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIdEdE': ... + def SetComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + def SetNumberOfComponents(self, num:int) -> None: ... + def SetNumberOfTuples(self, number:int) -> None: ... + @overload + def SetTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def SetTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def SetTypedComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def SetValue(self, valueIdx:int, value:float) -> None: ... + def SetVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int) -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int, __d:int) -> None: ... + def Squeeze(self) -> None: ... + def WritePointer(self, valueIdx:int, numValues:int) -> Pointer: ... + def WriteVoidPointer(self, valueIdx:int, numValues:int) -> Pointer: ... + +class vtkGenericDataArray_I23vtkSOADataArrayTemplateIfEfE(vtkDataArray): + VTK_DATA_TYPE:int + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + finite_value_range:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, size:int, ext:int=1000) -> int: ... + def Capacity(self) -> int: ... + def ClearLookup(self) -> None: ... + def DataChanged(self) -> None: ... + def FillComponent(self, compIdx:int, value:float) -> None: ... + def FillTypedComponent(self, compIdx:int, value:float) -> None: ... + def FillValue(self, value:float) -> None: ... + def GetComponent(self, tupleIdx:int, compIdx:int) -> float: ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[float], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[float], comp:int) -> None: ... + @overload + def GetFiniteValueRange(self, comp:int) -> Tuple[float, float]: ... + @overload + def GetFiniteValueRange(self) -> Tuple[float, float]: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, valueIdx:int) -> Pointer: ... + @overload + def GetTuple(self, tupleIdx:int) -> Tuple[float, float]: ... + @overload + def GetTuple(self, tupleIdx:int, tuple:MutableSequence[float]) -> None: ... + @overload + def GetTuples(self, tupleIds:'vtkIdList', output:'vtkAbstractArray') -> None: ... + @overload + def GetTuples(self, p1:int, p2:int, output:'vtkAbstractArray') -> None: ... + def GetTypedComponent(self, tupleIdx:int, compIdx:int) -> float: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[float]) -> None: ... + def GetValue(self, valueIdx:int) -> float: ... + @overload + def GetValueRange(self, range:MutableSequence[float], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetValueRange(self, range:MutableSequence[float], comp:int) -> None: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[float, float]: ... + @overload + def GetValueRange(self) -> Tuple[float, float]: ... + @overload + def GetValueRange(self, range:MutableSequence[float]) -> None: ... + def GetVariantValue(self, valueIdx:int) -> 'vtkVariant': ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + def HasStandardMemoryLayout(self) -> bool: ... + def Initialize(self) -> None: ... + def InsertComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + @overload + def InsertNextTuple(self, srcTupleIdx:int, source:'vtkAbstractArray') -> int: ... + @overload + def InsertNextTuple(self, tuple:Sequence[float]) -> int: ... + def InsertNextTypedTuple(self, t:Sequence[float]) -> int: ... + def InsertNextValue(self, value:float) -> int: ... + @overload + def InsertTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuple(self, tupleIdx:int, source:Sequence[float]) -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTypedComponent(self, tupleIdx:int, compIdx:int, val:float) -> None: ... + def InsertTypedTuple(self, tupleIdx:int, t:Sequence[float]) -> None: ... + def InsertValue(self, valueIdx:int, value:float) -> None: ... + def InsertVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, ptIndices:'vtkIdList', source:'vtkAbstractArray', weights:MutableSequence[float]) -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, srcTupleIdx1:int, source1:'vtkAbstractArray', srcTupleIdx2:int, source2:'vtkAbstractArray', t:float) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LookupTypedValue(self, value:float) -> int: ... + @overload + def LookupTypedValue(self, value:float, valueIds:'vtkIdList') -> None: ... + @overload + def LookupValue(self, value:'vtkVariant') -> int: ... + @overload + def LookupValue(self, value:'vtkVariant', valueIds:'vtkIdList') -> None: ... + def NewInstance(self) -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIfEfE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + def RemoveTuple(self, tupleIdx:int) -> None: ... + def Resize(self, numTuples:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIfEfE': ... + def SetComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + def SetNumberOfComponents(self, num:int) -> None: ... + def SetNumberOfTuples(self, number:int) -> None: ... + @overload + def SetTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def SetTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def SetTypedComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def SetValue(self, valueIdx:int, value:float) -> None: ... + def SetVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int) -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int, __d:int) -> None: ... + def Squeeze(self) -> None: ... + def WritePointer(self, valueIdx:int, numValues:int) -> Pointer: ... + def WriteVoidPointer(self, valueIdx:int, numValues:int) -> Pointer: ... + +class vtkGenericDataArray_I23vtkSOADataArrayTemplateIhEhE(vtkDataArray): + VTK_DATA_TYPE:int + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + finite_value_range:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, size:int, ext:int=1000) -> int: ... + def Capacity(self) -> int: ... + def ClearLookup(self) -> None: ... + def DataChanged(self) -> None: ... + def FillComponent(self, compIdx:int, value:float) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def FillValue(self, value:int) -> None: ... + def GetComponent(self, tupleIdx:int, compIdx:int) -> float: ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetFiniteValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, valueIdx:int) -> Pointer: ... + @overload + def GetTuple(self, tupleIdx:int) -> Tuple[float, float]: ... + @overload + def GetTuple(self, tupleIdx:int, tuple:MutableSequence[float]) -> None: ... + @overload + def GetTuples(self, tupleIds:'vtkIdList', output:'vtkAbstractArray') -> None: ... + @overload + def GetTuples(self, p1:int, p2:int, output:'vtkAbstractArray') -> None: ... + def GetTypedComponent(self, tupleIdx:int, compIdx:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + @overload + def GetValueRange(self, range:MutableSequence[int]) -> None: ... + def GetVariantValue(self, valueIdx:int) -> 'vtkVariant': ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + def HasStandardMemoryLayout(self) -> bool: ... + def Initialize(self) -> None: ... + def InsertComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + @overload + def InsertNextTuple(self, srcTupleIdx:int, source:'vtkAbstractArray') -> int: ... + @overload + def InsertNextTuple(self, tuple:Sequence[float]) -> int: ... + def InsertNextTypedTuple(self, t:Sequence[int]) -> int: ... + def InsertNextValue(self, value:int) -> int: ... + @overload + def InsertTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuple(self, tupleIdx:int, source:Sequence[float]) -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTypedComponent(self, tupleIdx:int, compIdx:int, val:int) -> None: ... + def InsertTypedTuple(self, tupleIdx:int, t:Sequence[int]) -> None: ... + def InsertValue(self, valueIdx:int, value:int) -> None: ... + def InsertVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, ptIndices:'vtkIdList', source:'vtkAbstractArray', weights:MutableSequence[float]) -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, srcTupleIdx1:int, source1:'vtkAbstractArray', srcTupleIdx2:int, source2:'vtkAbstractArray', t:float) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LookupTypedValue(self, value:int) -> int: ... + @overload + def LookupTypedValue(self, value:int, valueIds:'vtkIdList') -> None: ... + @overload + def LookupValue(self, value:'vtkVariant') -> int: ... + @overload + def LookupValue(self, value:'vtkVariant', valueIds:'vtkIdList') -> None: ... + def NewInstance(self) -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIhEhE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + def RemoveTuple(self, tupleIdx:int) -> None: ... + def Resize(self, numTuples:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIhEhE': ... + def SetComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + def SetNumberOfComponents(self, num:int) -> None: ... + def SetNumberOfTuples(self, number:int) -> None: ... + @overload + def SetTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def SetTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def SetTypedComponent(self, tupleIdx:int, compIdx:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def SetVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int) -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int, __d:int) -> None: ... + def Squeeze(self) -> None: ... + def WritePointer(self, valueIdx:int, numValues:int) -> Pointer: ... + def WriteVoidPointer(self, valueIdx:int, numValues:int) -> Pointer: ... + +class vtkGenericDataArray_I23vtkSOADataArrayTemplateIiEiE(vtkDataArray): + VTK_DATA_TYPE:int + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + finite_value_range:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, size:int, ext:int=1000) -> int: ... + def Capacity(self) -> int: ... + def ClearLookup(self) -> None: ... + def DataChanged(self) -> None: ... + def FillComponent(self, compIdx:int, value:float) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def FillValue(self, value:int) -> None: ... + def GetComponent(self, tupleIdx:int, compIdx:int) -> float: ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetFiniteValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, valueIdx:int) -> Pointer: ... + @overload + def GetTuple(self, tupleIdx:int) -> Tuple[float, float]: ... + @overload + def GetTuple(self, tupleIdx:int, tuple:MutableSequence[float]) -> None: ... + @overload + def GetTuples(self, tupleIds:'vtkIdList', output:'vtkAbstractArray') -> None: ... + @overload + def GetTuples(self, p1:int, p2:int, output:'vtkAbstractArray') -> None: ... + def GetTypedComponent(self, tupleIdx:int, compIdx:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + @overload + def GetValueRange(self, range:MutableSequence[int]) -> None: ... + def GetVariantValue(self, valueIdx:int) -> 'vtkVariant': ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + def HasStandardMemoryLayout(self) -> bool: ... + def Initialize(self) -> None: ... + def InsertComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + @overload + def InsertNextTuple(self, srcTupleIdx:int, source:'vtkAbstractArray') -> int: ... + @overload + def InsertNextTuple(self, tuple:Sequence[float]) -> int: ... + def InsertNextTypedTuple(self, t:Sequence[int]) -> int: ... + def InsertNextValue(self, value:int) -> int: ... + @overload + def InsertTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuple(self, tupleIdx:int, source:Sequence[float]) -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTypedComponent(self, tupleIdx:int, compIdx:int, val:int) -> None: ... + def InsertTypedTuple(self, tupleIdx:int, t:Sequence[int]) -> None: ... + def InsertValue(self, valueIdx:int, value:int) -> None: ... + def InsertVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, ptIndices:'vtkIdList', source:'vtkAbstractArray', weights:MutableSequence[float]) -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, srcTupleIdx1:int, source1:'vtkAbstractArray', srcTupleIdx2:int, source2:'vtkAbstractArray', t:float) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LookupTypedValue(self, value:int) -> int: ... + @overload + def LookupTypedValue(self, value:int, valueIds:'vtkIdList') -> None: ... + @overload + def LookupValue(self, value:'vtkVariant') -> int: ... + @overload + def LookupValue(self, value:'vtkVariant', valueIds:'vtkIdList') -> None: ... + def NewInstance(self) -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIiEiE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + def RemoveTuple(self, tupleIdx:int) -> None: ... + def Resize(self, numTuples:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIiEiE': ... + def SetComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + def SetNumberOfComponents(self, num:int) -> None: ... + def SetNumberOfTuples(self, number:int) -> None: ... + @overload + def SetTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def SetTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def SetTypedComponent(self, tupleIdx:int, compIdx:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def SetVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int) -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int, __d:int) -> None: ... + def Squeeze(self) -> None: ... + def WritePointer(self, valueIdx:int, numValues:int) -> Pointer: ... + def WriteVoidPointer(self, valueIdx:int, numValues:int) -> Pointer: ... + +class vtkGenericDataArray_I23vtkSOADataArrayTemplateIjEjE(vtkDataArray): + VTK_DATA_TYPE:int + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + finite_value_range:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, size:int, ext:int=1000) -> int: ... + def Capacity(self) -> int: ... + def ClearLookup(self) -> None: ... + def DataChanged(self) -> None: ... + def FillComponent(self, compIdx:int, value:float) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def FillValue(self, value:int) -> None: ... + def GetComponent(self, tupleIdx:int, compIdx:int) -> float: ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetFiniteValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, valueIdx:int) -> Pointer: ... + @overload + def GetTuple(self, tupleIdx:int) -> Tuple[float, float]: ... + @overload + def GetTuple(self, tupleIdx:int, tuple:MutableSequence[float]) -> None: ... + @overload + def GetTuples(self, tupleIds:'vtkIdList', output:'vtkAbstractArray') -> None: ... + @overload + def GetTuples(self, p1:int, p2:int, output:'vtkAbstractArray') -> None: ... + def GetTypedComponent(self, tupleIdx:int, compIdx:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + @overload + def GetValueRange(self, range:MutableSequence[int]) -> None: ... + def GetVariantValue(self, valueIdx:int) -> 'vtkVariant': ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + def HasStandardMemoryLayout(self) -> bool: ... + def Initialize(self) -> None: ... + def InsertComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + @overload + def InsertNextTuple(self, srcTupleIdx:int, source:'vtkAbstractArray') -> int: ... + @overload + def InsertNextTuple(self, tuple:Sequence[float]) -> int: ... + def InsertNextTypedTuple(self, t:Sequence[int]) -> int: ... + def InsertNextValue(self, value:int) -> int: ... + @overload + def InsertTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuple(self, tupleIdx:int, source:Sequence[float]) -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTypedComponent(self, tupleIdx:int, compIdx:int, val:int) -> None: ... + def InsertTypedTuple(self, tupleIdx:int, t:Sequence[int]) -> None: ... + def InsertValue(self, valueIdx:int, value:int) -> None: ... + def InsertVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, ptIndices:'vtkIdList', source:'vtkAbstractArray', weights:MutableSequence[float]) -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, srcTupleIdx1:int, source1:'vtkAbstractArray', srcTupleIdx2:int, source2:'vtkAbstractArray', t:float) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LookupTypedValue(self, value:int) -> int: ... + @overload + def LookupTypedValue(self, value:int, valueIds:'vtkIdList') -> None: ... + @overload + def LookupValue(self, value:'vtkVariant') -> int: ... + @overload + def LookupValue(self, value:'vtkVariant', valueIds:'vtkIdList') -> None: ... + def NewInstance(self) -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIjEjE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + def RemoveTuple(self, tupleIdx:int) -> None: ... + def Resize(self, numTuples:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIjEjE': ... + def SetComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + def SetNumberOfComponents(self, num:int) -> None: ... + def SetNumberOfTuples(self, number:int) -> None: ... + @overload + def SetTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def SetTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def SetTypedComponent(self, tupleIdx:int, compIdx:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def SetVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int) -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int, __d:int) -> None: ... + def Squeeze(self) -> None: ... + def WritePointer(self, valueIdx:int, numValues:int) -> Pointer: ... + def WriteVoidPointer(self, valueIdx:int, numValues:int) -> Pointer: ... + +class vtkGenericDataArray_I23vtkSOADataArrayTemplateIlElE(vtkDataArray): + VTK_DATA_TYPE:int + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + finite_value_range:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, size:int, ext:int=1000) -> int: ... + def Capacity(self) -> int: ... + def ClearLookup(self) -> None: ... + def DataChanged(self) -> None: ... + def FillComponent(self, compIdx:int, value:float) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def FillValue(self, value:int) -> None: ... + def GetComponent(self, tupleIdx:int, compIdx:int) -> float: ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetFiniteValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, valueIdx:int) -> Pointer: ... + @overload + def GetTuple(self, tupleIdx:int) -> Tuple[float, float]: ... + @overload + def GetTuple(self, tupleIdx:int, tuple:MutableSequence[float]) -> None: ... + @overload + def GetTuples(self, tupleIds:'vtkIdList', output:'vtkAbstractArray') -> None: ... + @overload + def GetTuples(self, p1:int, p2:int, output:'vtkAbstractArray') -> None: ... + def GetTypedComponent(self, tupleIdx:int, compIdx:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + @overload + def GetValueRange(self, range:MutableSequence[int]) -> None: ... + def GetVariantValue(self, valueIdx:int) -> 'vtkVariant': ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + def HasStandardMemoryLayout(self) -> bool: ... + def Initialize(self) -> None: ... + def InsertComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + @overload + def InsertNextTuple(self, srcTupleIdx:int, source:'vtkAbstractArray') -> int: ... + @overload + def InsertNextTuple(self, tuple:Sequence[float]) -> int: ... + def InsertNextTypedTuple(self, t:Sequence[int]) -> int: ... + def InsertNextValue(self, value:int) -> int: ... + @overload + def InsertTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuple(self, tupleIdx:int, source:Sequence[float]) -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTypedComponent(self, tupleIdx:int, compIdx:int, val:int) -> None: ... + def InsertTypedTuple(self, tupleIdx:int, t:Sequence[int]) -> None: ... + def InsertValue(self, valueIdx:int, value:int) -> None: ... + def InsertVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, ptIndices:'vtkIdList', source:'vtkAbstractArray', weights:MutableSequence[float]) -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, srcTupleIdx1:int, source1:'vtkAbstractArray', srcTupleIdx2:int, source2:'vtkAbstractArray', t:float) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LookupTypedValue(self, value:int) -> int: ... + @overload + def LookupTypedValue(self, value:int, valueIds:'vtkIdList') -> None: ... + @overload + def LookupValue(self, value:'vtkVariant') -> int: ... + @overload + def LookupValue(self, value:'vtkVariant', valueIds:'vtkIdList') -> None: ... + def NewInstance(self) -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIlElE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + def RemoveTuple(self, tupleIdx:int) -> None: ... + def Resize(self, numTuples:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIlElE': ... + def SetComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + def SetNumberOfComponents(self, num:int) -> None: ... + def SetNumberOfTuples(self, number:int) -> None: ... + @overload + def SetTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def SetTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def SetTypedComponent(self, tupleIdx:int, compIdx:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def SetVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int) -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int, __d:int) -> None: ... + def Squeeze(self) -> None: ... + def WritePointer(self, valueIdx:int, numValues:int) -> Pointer: ... + def WriteVoidPointer(self, valueIdx:int, numValues:int) -> Pointer: ... + +class vtkGenericDataArray_I23vtkSOADataArrayTemplateImEmE(vtkDataArray): + VTK_DATA_TYPE:int + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + finite_value_range:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, size:int, ext:int=1000) -> int: ... + def Capacity(self) -> int: ... + def ClearLookup(self) -> None: ... + def DataChanged(self) -> None: ... + def FillComponent(self, compIdx:int, value:float) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def FillValue(self, value:int) -> None: ... + def GetComponent(self, tupleIdx:int, compIdx:int) -> float: ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetFiniteValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, valueIdx:int) -> Pointer: ... + @overload + def GetTuple(self, tupleIdx:int) -> Tuple[float, float]: ... + @overload + def GetTuple(self, tupleIdx:int, tuple:MutableSequence[float]) -> None: ... + @overload + def GetTuples(self, tupleIds:'vtkIdList', output:'vtkAbstractArray') -> None: ... + @overload + def GetTuples(self, p1:int, p2:int, output:'vtkAbstractArray') -> None: ... + def GetTypedComponent(self, tupleIdx:int, compIdx:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + @overload + def GetValueRange(self, range:MutableSequence[int]) -> None: ... + def GetVariantValue(self, valueIdx:int) -> 'vtkVariant': ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + def HasStandardMemoryLayout(self) -> bool: ... + def Initialize(self) -> None: ... + def InsertComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + @overload + def InsertNextTuple(self, srcTupleIdx:int, source:'vtkAbstractArray') -> int: ... + @overload + def InsertNextTuple(self, tuple:Sequence[float]) -> int: ... + def InsertNextTypedTuple(self, t:Sequence[int]) -> int: ... + def InsertNextValue(self, value:int) -> int: ... + @overload + def InsertTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuple(self, tupleIdx:int, source:Sequence[float]) -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTypedComponent(self, tupleIdx:int, compIdx:int, val:int) -> None: ... + def InsertTypedTuple(self, tupleIdx:int, t:Sequence[int]) -> None: ... + def InsertValue(self, valueIdx:int, value:int) -> None: ... + def InsertVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, ptIndices:'vtkIdList', source:'vtkAbstractArray', weights:MutableSequence[float]) -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, srcTupleIdx1:int, source1:'vtkAbstractArray', srcTupleIdx2:int, source2:'vtkAbstractArray', t:float) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LookupTypedValue(self, value:int) -> int: ... + @overload + def LookupTypedValue(self, value:int, valueIds:'vtkIdList') -> None: ... + @overload + def LookupValue(self, value:'vtkVariant') -> int: ... + @overload + def LookupValue(self, value:'vtkVariant', valueIds:'vtkIdList') -> None: ... + def NewInstance(self) -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateImEmE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + def RemoveTuple(self, tupleIdx:int) -> None: ... + def Resize(self, numTuples:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateImEmE': ... + def SetComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + def SetNumberOfComponents(self, num:int) -> None: ... + def SetNumberOfTuples(self, number:int) -> None: ... + @overload + def SetTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def SetTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def SetTypedComponent(self, tupleIdx:int, compIdx:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def SetVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int) -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int, __d:int) -> None: ... + def Squeeze(self) -> None: ... + def WritePointer(self, valueIdx:int, numValues:int) -> Pointer: ... + def WriteVoidPointer(self, valueIdx:int, numValues:int) -> Pointer: ... + +class vtkGenericDataArray_I23vtkSOADataArrayTemplateIsEsE(vtkDataArray): + VTK_DATA_TYPE:int + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + finite_value_range:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, size:int, ext:int=1000) -> int: ... + def Capacity(self) -> int: ... + def ClearLookup(self) -> None: ... + def DataChanged(self) -> None: ... + def FillComponent(self, compIdx:int, value:float) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def FillValue(self, value:int) -> None: ... + def GetComponent(self, tupleIdx:int, compIdx:int) -> float: ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetFiniteValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, valueIdx:int) -> Pointer: ... + @overload + def GetTuple(self, tupleIdx:int) -> Tuple[float, float]: ... + @overload + def GetTuple(self, tupleIdx:int, tuple:MutableSequence[float]) -> None: ... + @overload + def GetTuples(self, tupleIds:'vtkIdList', output:'vtkAbstractArray') -> None: ... + @overload + def GetTuples(self, p1:int, p2:int, output:'vtkAbstractArray') -> None: ... + def GetTypedComponent(self, tupleIdx:int, compIdx:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + @overload + def GetValueRange(self, range:MutableSequence[int]) -> None: ... + def GetVariantValue(self, valueIdx:int) -> 'vtkVariant': ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + def HasStandardMemoryLayout(self) -> bool: ... + def Initialize(self) -> None: ... + def InsertComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + @overload + def InsertNextTuple(self, srcTupleIdx:int, source:'vtkAbstractArray') -> int: ... + @overload + def InsertNextTuple(self, tuple:Sequence[float]) -> int: ... + def InsertNextTypedTuple(self, t:Sequence[int]) -> int: ... + def InsertNextValue(self, value:int) -> int: ... + @overload + def InsertTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuple(self, tupleIdx:int, source:Sequence[float]) -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTypedComponent(self, tupleIdx:int, compIdx:int, val:int) -> None: ... + def InsertTypedTuple(self, tupleIdx:int, t:Sequence[int]) -> None: ... + def InsertValue(self, valueIdx:int, value:int) -> None: ... + def InsertVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, ptIndices:'vtkIdList', source:'vtkAbstractArray', weights:MutableSequence[float]) -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, srcTupleIdx1:int, source1:'vtkAbstractArray', srcTupleIdx2:int, source2:'vtkAbstractArray', t:float) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LookupTypedValue(self, value:int) -> int: ... + @overload + def LookupTypedValue(self, value:int, valueIds:'vtkIdList') -> None: ... + @overload + def LookupValue(self, value:'vtkVariant') -> int: ... + @overload + def LookupValue(self, value:'vtkVariant', valueIds:'vtkIdList') -> None: ... + def NewInstance(self) -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIsEsE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + def RemoveTuple(self, tupleIdx:int) -> None: ... + def Resize(self, numTuples:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIsEsE': ... + def SetComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + def SetNumberOfComponents(self, num:int) -> None: ... + def SetNumberOfTuples(self, number:int) -> None: ... + @overload + def SetTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def SetTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def SetTypedComponent(self, tupleIdx:int, compIdx:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def SetVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int) -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int, __d:int) -> None: ... + def Squeeze(self) -> None: ... + def WritePointer(self, valueIdx:int, numValues:int) -> Pointer: ... + def WriteVoidPointer(self, valueIdx:int, numValues:int) -> Pointer: ... + +class vtkGenericDataArray_I23vtkSOADataArrayTemplateItEtE(vtkDataArray): + VTK_DATA_TYPE:int + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + finite_value_range:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, size:int, ext:int=1000) -> int: ... + def Capacity(self) -> int: ... + def ClearLookup(self) -> None: ... + def DataChanged(self) -> None: ... + def FillComponent(self, compIdx:int, value:float) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def FillValue(self, value:int) -> None: ... + def GetComponent(self, tupleIdx:int, compIdx:int) -> float: ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetFiniteValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, valueIdx:int) -> Pointer: ... + @overload + def GetTuple(self, tupleIdx:int) -> Tuple[float, float]: ... + @overload + def GetTuple(self, tupleIdx:int, tuple:MutableSequence[float]) -> None: ... + @overload + def GetTuples(self, tupleIds:'vtkIdList', output:'vtkAbstractArray') -> None: ... + @overload + def GetTuples(self, p1:int, p2:int, output:'vtkAbstractArray') -> None: ... + def GetTypedComponent(self, tupleIdx:int, compIdx:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + @overload + def GetValueRange(self, range:MutableSequence[int]) -> None: ... + def GetVariantValue(self, valueIdx:int) -> 'vtkVariant': ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + def HasStandardMemoryLayout(self) -> bool: ... + def Initialize(self) -> None: ... + def InsertComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + @overload + def InsertNextTuple(self, srcTupleIdx:int, source:'vtkAbstractArray') -> int: ... + @overload + def InsertNextTuple(self, tuple:Sequence[float]) -> int: ... + def InsertNextTypedTuple(self, t:Sequence[int]) -> int: ... + def InsertNextValue(self, value:int) -> int: ... + @overload + def InsertTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuple(self, tupleIdx:int, source:Sequence[float]) -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTypedComponent(self, tupleIdx:int, compIdx:int, val:int) -> None: ... + def InsertTypedTuple(self, tupleIdx:int, t:Sequence[int]) -> None: ... + def InsertValue(self, valueIdx:int, value:int) -> None: ... + def InsertVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, ptIndices:'vtkIdList', source:'vtkAbstractArray', weights:MutableSequence[float]) -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, srcTupleIdx1:int, source1:'vtkAbstractArray', srcTupleIdx2:int, source2:'vtkAbstractArray', t:float) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LookupTypedValue(self, value:int) -> int: ... + @overload + def LookupTypedValue(self, value:int, valueIds:'vtkIdList') -> None: ... + @overload + def LookupValue(self, value:'vtkVariant') -> int: ... + @overload + def LookupValue(self, value:'vtkVariant', valueIds:'vtkIdList') -> None: ... + def NewInstance(self) -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateItEtE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + def RemoveTuple(self, tupleIdx:int) -> None: ... + def Resize(self, numTuples:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateItEtE': ... + def SetComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + def SetNumberOfComponents(self, num:int) -> None: ... + def SetNumberOfTuples(self, number:int) -> None: ... + @overload + def SetTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def SetTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def SetTypedComponent(self, tupleIdx:int, compIdx:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def SetVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int) -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int, __d:int) -> None: ... + def Squeeze(self) -> None: ... + def WritePointer(self, valueIdx:int, numValues:int) -> Pointer: ... + def WriteVoidPointer(self, valueIdx:int, numValues:int) -> Pointer: ... + +class vtkGenericDataArray_I23vtkSOADataArrayTemplateIxExE(vtkDataArray): + VTK_DATA_TYPE:int + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + finite_value_range:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + value:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, size:int, ext:int=1000) -> int: ... + def Capacity(self) -> int: ... + def ClearLookup(self) -> None: ... + def DataChanged(self) -> None: ... + def FillComponent(self, compIdx:int, value:float) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def FillValue(self, value:int) -> None: ... + def GetComponent(self, tupleIdx:int, compIdx:int) -> float: ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetFiniteValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, valueIdx:int) -> Pointer: ... + @overload + def GetTuple(self, tupleIdx:int) -> Tuple[float, float]: ... + @overload + def GetTuple(self, tupleIdx:int, tuple:MutableSequence[float]) -> None: ... + @overload + def GetTuples(self, tupleIds:'vtkIdList', output:'vtkAbstractArray') -> None: ... + @overload + def GetTuples(self, p1:int, p2:int, output:'vtkAbstractArray') -> None: ... + def GetTypedComponent(self, tupleIdx:int, compIdx:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + @overload + def GetValueRange(self, range:MutableSequence[int]) -> None: ... + def GetVariantValue(self, valueIdx:int) -> 'vtkVariant': ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + def HasStandardMemoryLayout(self) -> bool: ... + def Initialize(self) -> None: ... + def InsertComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + @overload + def InsertNextTuple(self, srcTupleIdx:int, source:'vtkAbstractArray') -> int: ... + @overload + def InsertNextTuple(self, tuple:Sequence[float]) -> int: ... + def InsertNextTypedTuple(self, t:Sequence[int]) -> int: ... + def InsertNextValue(self, value:int) -> int: ... + @overload + def InsertTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuple(self, tupleIdx:int, source:Sequence[float]) -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTypedComponent(self, tupleIdx:int, compIdx:int, val:int) -> None: ... + def InsertTypedTuple(self, tupleIdx:int, t:Sequence[int]) -> None: ... + def InsertValue(self, valueIdx:int, value:int) -> None: ... + def InsertVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, ptIndices:'vtkIdList', source:'vtkAbstractArray', weights:MutableSequence[float]) -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, srcTupleIdx1:int, source1:'vtkAbstractArray', srcTupleIdx2:int, source2:'vtkAbstractArray', t:float) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LookupTypedValue(self, value:int) -> int: ... + @overload + def LookupTypedValue(self, value:int, valueIds:'vtkIdList') -> None: ... + @overload + def LookupValue(self, value:'vtkVariant') -> int: ... + @overload + def LookupValue(self, value:'vtkVariant', valueIds:'vtkIdList') -> None: ... + def NewInstance(self) -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIxExE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + def RemoveTuple(self, tupleIdx:int) -> None: ... + def Resize(self, numTuples:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIxExE': ... + def SetComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + def SetNumberOfComponents(self, num:int) -> None: ... + def SetNumberOfTuples(self, number:int) -> None: ... + @overload + def SetTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def SetTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def SetTypedComponent(self, tupleIdx:int, compIdx:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def SetVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int) -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int, __d:int) -> None: ... + def Squeeze(self) -> None: ... + def WritePointer(self, valueIdx:int, numValues:int) -> Pointer: ... + def WriteVoidPointer(self, valueIdx:int, numValues:int) -> Pointer: ... + +class vtkGenericDataArray_I23vtkSOADataArrayTemplateIyEyE(vtkDataArray): + VTK_DATA_TYPE:int + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + finite_value_range:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, size:int, ext:int=1000) -> int: ... + def Capacity(self) -> int: ... + def ClearLookup(self) -> None: ... + def DataChanged(self) -> None: ... + def FillComponent(self, compIdx:int, value:float) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def FillValue(self, value:int) -> None: ... + def GetComponent(self, tupleIdx:int, compIdx:int) -> float: ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetFiniteValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self) -> Tuple[int, int]: ... + @overload + def GetFiniteValueRange(self, range:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, valueIdx:int) -> Pointer: ... + @overload + def GetTuple(self, tupleIdx:int) -> Tuple[float, float]: ... + @overload + def GetTuple(self, tupleIdx:int, tuple:MutableSequence[float]) -> None: ... + @overload + def GetTuples(self, tupleIds:'vtkIdList', output:'vtkAbstractArray') -> None: ... + @overload + def GetTuples(self, p1:int, p2:int, output:'vtkAbstractArray') -> None: ... + def GetTypedComponent(self, tupleIdx:int, compIdx:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int, ghosts:Sequence[int], ghostsToSkip:int=0xff) -> None: ... + @overload + def GetValueRange(self, range:MutableSequence[int], comp:int) -> None: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + @overload + def GetValueRange(self, range:MutableSequence[int]) -> None: ... + def GetVariantValue(self, valueIdx:int) -> 'vtkVariant': ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + def HasStandardMemoryLayout(self) -> bool: ... + def Initialize(self) -> None: ... + def InsertComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + @overload + def InsertNextTuple(self, srcTupleIdx:int, source:'vtkAbstractArray') -> int: ... + @overload + def InsertNextTuple(self, tuple:Sequence[float]) -> int: ... + def InsertNextTypedTuple(self, t:Sequence[int]) -> int: ... + def InsertNextValue(self, value:int) -> int: ... + @overload + def InsertTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuple(self, tupleIdx:int, source:Sequence[float]) -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTypedComponent(self, tupleIdx:int, compIdx:int, val:int) -> None: ... + def InsertTypedTuple(self, tupleIdx:int, t:Sequence[int]) -> None: ... + def InsertValue(self, valueIdx:int, value:int) -> None: ... + def InsertVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, ptIndices:'vtkIdList', source:'vtkAbstractArray', weights:MutableSequence[float]) -> None: ... + @overload + def InterpolateTuple(self, dstTupleIdx:int, srcTupleIdx1:int, source1:'vtkAbstractArray', srcTupleIdx2:int, source2:'vtkAbstractArray', t:float) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LookupTypedValue(self, value:int) -> int: ... + @overload + def LookupTypedValue(self, value:int, valueIds:'vtkIdList') -> None: ... + @overload + def LookupValue(self, value:'vtkVariant') -> int: ... + @overload + def LookupValue(self, value:'vtkVariant', valueIds:'vtkIdList') -> None: ... + def NewInstance(self) -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIyEyE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + def RemoveTuple(self, tupleIdx:int) -> None: ... + def Resize(self, numTuples:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericDataArray_I23vtkSOADataArrayTemplateIyEyE': ... + def SetComponent(self, tupleIdx:int, compIdx:int, value:float) -> None: ... + def SetNumberOfComponents(self, num:int) -> None: ... + def SetNumberOfTuples(self, number:int) -> None: ... + @overload + def SetTuple(self, dstTupleIdx:int, srcTupleIdx:int, source:'vtkAbstractArray') -> None: ... + @overload + def SetTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def SetTypedComponent(self, tupleIdx:int, compIdx:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def SetVariantValue(self, valueIdx:int, value:'vtkVariant') -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int) -> None: ... + @overload + def SetVoidArray(self, __a:Pointer, __b:int, __c:int, __d:int) -> None: ... + def Squeeze(self) -> None: ... + def WritePointer(self, valueIdx:int, numValues:int) -> Pointer: ... + def WriteVoidPointer(self, valueIdx:int, numValues:int) -> Pointer: ... + +class vtkIdList(vtkObject): + id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, sz:int, strategy:int=0) -> int: ... + def DeepCopy(self, ids:'vtkIdList') -> None: ... + def DeleteId(self, vtkid:int) -> None: ... + def Fill(self, value:int) -> None: ... + def FindIdLocation(self, id:int) -> int: ... + def GetId(self, i:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIds(self) -> int: ... + def GetPointer(self, i:int) -> Pointer: ... + def Initialize(self) -> None: ... + def InsertId(self, i:int, vtkid:int) -> None: ... + def InsertNextId(self, vtkid:int) -> int: ... + def InsertUniqueId(self, vtkid:int) -> int: ... + def IntersectWith(self, otherIds:'vtkIdList') -> None: ... + def IsA(self, type:str) -> int: ... + def IsId(self, vtkid:int) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkIdList': ... + def Reset(self) -> None: ... + def Resize(self, sz:int) -> Pointer: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIdList': ... + def SetArray(self, array:MutableSequence[int], size:int, save:bool=True) -> None: ... + def SetId(self, i:int, vtkid:int) -> None: ... + def SetNumberOfIds(self, number:int) -> None: ... + def Sort(self) -> None: ... + def Squeeze(self) -> None: ... + def WritePointer(self, i:int, number:int) -> Pointer: ... + def begin(self) -> Pointer: ... + def end(self) -> Pointer: ... + +class vtkIdListCollection(vtkCollection): + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, ds:'vtkIdList') -> None: ... + def GetItem(self, i:int) -> 'vtkIdList': ... + def GetNextItem(self) -> 'vtkIdList': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkIdListCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIdListCollection': ... + +class vtkIdTypeArray(vtkDataArray): + data_type:'getset_descriptor' + data_type_value_max:'getset_descriptor' + data_type_value_min:'getset_descriptor' + value:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkIdTypeArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkIdTypeArray': ... + def GetDataType(self) -> int: ... + @staticmethod + def GetDataTypeValueMax() -> int: ... + @staticmethod + def GetDataTypeValueMin() -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, id:int) -> Pointer: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def InsertNextTypedTuple(self, tuple:Sequence[int]) -> int: ... + def InsertNextValue(self, f:int) -> int: ... + def InsertTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def InsertValue(self, id:int, f:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkIdTypeArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIdTypeArray': ... + @overload + def SetArray(self, array:Buffer, size:int, save:int) -> None: ... + @overload + def SetArray(self, array:Buffer, size:int, save:int, deleteMethod:int) -> None: ... + def SetNumberOfValues(self, number:int) -> bool: ... + def SetTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, id:int, value:int) -> None: ... + def WritePointer(self, id:int, number:int) -> Pointer: ... + +class vtkIndent(object): + next_indent:'getset_descriptor' + @overload + def __init__(self, ind:int=0) -> None: ... + @overload + def __init__(self, __a:'vtkIndent') -> None: ... + def GetNextIndent(self) -> 'vtkIndent': ... + +class vtkIndexedCharArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkIdList', array:'vtkDataArray') -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkDataArray', array:'vtkDataArray') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkIndexedCharArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkIndexedCharArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[str]) -> None: ... + def GetValue(self, id:int) -> str: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[str, str]: ... + @overload + def GetValueRange(self) -> Tuple[str, str]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIndexedCharArray': ... + +class vtkIndexedDoubleArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkIdList', array:'vtkDataArray') -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkDataArray', array:'vtkDataArray') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkIndexedDoubleArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkIndexedDoubleArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[float]) -> None: ... + def GetValue(self, id:int) -> float: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[float, float]: ... + @overload + def GetValueRange(self) -> Tuple[float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIndexedDoubleArray': ... + +class vtkIndexedFloatArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkIdList', array:'vtkDataArray') -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkDataArray', array:'vtkDataArray') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkIndexedFloatArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkIndexedFloatArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[float]) -> None: ... + def GetValue(self, id:int) -> float: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[float, float]: ... + @overload + def GetValueRange(self) -> Tuple[float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIndexedFloatArray': ... + +class vtkIndexedIdTypeArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkIdList', array:'vtkDataArray') -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkDataArray', array:'vtkDataArray') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkIndexedIdTypeArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkIndexedIdTypeArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIndexedIdTypeArray': ... + +class vtkIndexedIntArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkIdList', array:'vtkDataArray') -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkDataArray', array:'vtkDataArray') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkIndexedIntArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkIndexedIntArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIndexedIntArray': ... + +class vtkIndexedLongArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkIdList', array:'vtkDataArray') -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkDataArray', array:'vtkDataArray') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkIndexedLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkIndexedLongArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIndexedLongArray': ... + +class vtkIndexedLongLongArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkIdList', array:'vtkDataArray') -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkDataArray', array:'vtkDataArray') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkIndexedLongLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkIndexedLongLongArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIndexedLongLongArray': ... + +class vtkIndexedShortArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkIdList', array:'vtkDataArray') -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkDataArray', array:'vtkDataArray') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkIndexedShortArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkIndexedShortArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIndexedShortArray': ... + +class vtkIndexedSignedCharArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkIdList', array:'vtkDataArray') -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkDataArray', array:'vtkDataArray') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkIndexedSignedCharArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkIndexedSignedCharArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIndexedSignedCharArray': ... + +class vtkIndexedUnsignedCharArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkIdList', array:'vtkDataArray') -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkDataArray', array:'vtkDataArray') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkIndexedUnsignedCharArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkIndexedUnsignedCharArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIndexedUnsignedCharArray': ... + +class vtkIndexedUnsignedIntArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkIdList', array:'vtkDataArray') -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkDataArray', array:'vtkDataArray') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkIndexedUnsignedIntArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkIndexedUnsignedIntArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIndexedUnsignedIntArray': ... + +class vtkIndexedUnsignedLongArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkIdList', array:'vtkDataArray') -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkDataArray', array:'vtkDataArray') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkIndexedUnsignedLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkIndexedUnsignedLongArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIndexedUnsignedLongArray': ... + +class vtkIndexedUnsignedLongLongArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkIdList', array:'vtkDataArray') -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkDataArray', array:'vtkDataArray') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkIndexedUnsignedLongLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkIndexedUnsignedLongLongArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIndexedUnsignedLongLongArray': ... + +class vtkIndexedUnsignedShortArray(vtkDataArray): + data_type:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkIdList', array:'vtkDataArray') -> None: ... + @overload + def ConstructBackend(self, indexes:'vtkDataArray', array:'vtkDataArray') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkIndexedUnsignedShortArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkIndexedUnsignedShortArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAOSDataArrayTemplate_I8typenameE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIndexedUnsignedShortArray': ... + +class vtkInformation(vtkObject): + number_of_keys:'getset_descriptor' + request:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def Append(self, from_:'vtkInformation', deep:int=0) -> None: ... + @overload + def Append(self, key:'vtkInformationIntegerVectorKey', value:int) -> None: ... + @overload + def Append(self, key:'vtkInformationStringVectorKey', value:str) -> None: ... + @overload + def Append(self, key:'vtkInformationDoubleVectorKey', value:float) -> None: ... + @overload + def Append(self, key:'vtkInformationVariantVectorKey', value:'vtkVariant') -> None: ... + @overload + def Append(self, key:'vtkInformationKeyVectorKey', value:'vtkInformationKey') -> None: ... + @overload + def Append(self, key:'vtkInformationKeyVectorKey', value:'vtkInformationDataObjectKey') -> None: ... + @overload + def Append(self, key:'vtkInformationKeyVectorKey', value:'vtkInformationDoubleKey') -> None: ... + @overload + def Append(self, key:'vtkInformationKeyVectorKey', value:'vtkInformationDoubleVectorKey') -> None: ... + @overload + def Append(self, key:'vtkInformationKeyVectorKey', value:'vtkInformationInformationKey') -> None: ... + @overload + def Append(self, key:'vtkInformationKeyVectorKey', value:'vtkInformationInformationVectorKey') -> None: ... + @overload + def Append(self, key:'vtkInformationKeyVectorKey', value:'vtkInformationIntegerKey') -> None: ... + @overload + def AppendUnique(self, key:'vtkInformationKeyVectorKey', value:'vtkInformationKey') -> None: ... + @overload + def AppendUnique(self, key:'vtkInformationKeyVectorKey', value:'vtkInformationDataObjectKey') -> None: ... + @overload + def AppendUnique(self, key:'vtkInformationKeyVectorKey', value:'vtkInformationDoubleKey') -> None: ... + @overload + def AppendUnique(self, key:'vtkInformationKeyVectorKey', value:'vtkInformationDoubleVectorKey') -> None: ... + @overload + def AppendUnique(self, key:'vtkInformationKeyVectorKey', value:'vtkInformationInformationKey') -> None: ... + @overload + def AppendUnique(self, key:'vtkInformationKeyVectorKey', value:'vtkInformationInformationVectorKey') -> None: ... + @overload + def AppendUnique(self, key:'vtkInformationKeyVectorKey', value:'vtkInformationIntegerKey') -> None: ... + @overload + def AppendUnique(self, key:'vtkInformationKeyVectorKey', value:'vtkInformationIntegerVectorKey') -> None: ... + @overload + def AppendUnique(self, key:'vtkInformationKeyVectorKey', value:'vtkInformationStringKey') -> None: ... + @overload + def AppendUnique(self, key:'vtkInformationKeyVectorKey', value:'vtkInformationStringVectorKey') -> None: ... + def Clear(self) -> None: ... + def Copy(self, from_:'vtkInformation', deep:int=0) -> None: ... + def CopyEntries(self, from_:'vtkInformation', key:'vtkInformationKeyVectorKey', deep:int=0) -> None: ... + @overload + def CopyEntry(self, from_:'vtkInformation', key:'vtkInformationKey', deep:int=0) -> None: ... + @overload + def CopyEntry(self, from_:'vtkInformation', key:'vtkInformationDataObjectKey', deep:int=0) -> None: ... + @overload + def CopyEntry(self, from_:'vtkInformation', key:'vtkInformationDoubleVectorKey', deep:int=0) -> None: ... + @overload + def CopyEntry(self, from_:'vtkInformation', key:'vtkInformationVariantKey', deep:int=0) -> None: ... + @overload + def CopyEntry(self, from_:'vtkInformation', key:'vtkInformationVariantVectorKey', deep:int=0) -> None: ... + @overload + def CopyEntry(self, from_:'vtkInformation', key:'vtkInformationInformationKey', deep:int=0) -> None: ... + @overload + def CopyEntry(self, from_:'vtkInformation', key:'vtkInformationInformationVectorKey', deep:int=0) -> None: ... + @overload + def CopyEntry(self, from_:'vtkInformation', key:'vtkInformationIntegerKey', deep:int=0) -> None: ... + @overload + def CopyEntry(self, from_:'vtkInformation', key:'vtkInformationIntegerVectorKey', deep:int=0) -> None: ... + @overload + def CopyEntry(self, from_:'vtkInformation', key:'vtkInformationObjectBaseVectorKey', deep:int=0) -> None: ... + @overload + def Get(self, key:'vtkInformationIntegerKey') -> int: ... + @overload + def Get(self, key:'vtkInformationIdTypeKey') -> int: ... + @overload + def Get(self, key:'vtkInformationDoubleKey') -> float: ... + @overload + def Get(self, key:'vtkInformationVariantKey') -> 'vtkVariant': ... + @overload + def Get(self, key:'vtkInformationIntegerVectorKey') -> Tuple[int, int]: ... + @overload + def Get(self, key:'vtkInformationIntegerVectorKey', idx:int) -> int: ... + @overload + def Get(self, key:'vtkInformationIntegerVectorKey', value:MutableSequence[int]) -> None: ... + @overload + def Get(self, key:'vtkInformationStringVectorKey', idx:int=0) -> str: ... + @overload + def Get(self, key:'vtkInformationIntegerPointerKey') -> Pointer: ... + @overload + def Get(self, key:'vtkInformationIntegerPointerKey', value:MutableSequence[int]) -> None: ... + @overload + def Get(self, key:'vtkInformationUnsignedLongKey') -> int: ... + @overload + def Get(self, key:'vtkInformationDoubleVectorKey') -> Tuple[float, float]: ... + @overload + def Get(self, key:'vtkInformationDoubleVectorKey', idx:int) -> float: ... + @overload + def Get(self, key:'vtkInformationDoubleVectorKey', value:MutableSequence[float]) -> None: ... + @overload + def Get(self, key:'vtkInformationVariantVectorKey', idx:int) -> 'vtkVariant': ... + @overload + def Get(self, key:'vtkInformationKeyVectorKey', idx:int) -> 'vtkInformationKey': ... + @overload + @staticmethod + def GetKey(key:'vtkInformationDataObjectKey') -> 'vtkInformationKey': ... + @overload + @staticmethod + def GetKey(key:'vtkInformationDoubleKey') -> 'vtkInformationKey': ... + @overload + @staticmethod + def GetKey(key:'vtkInformationDoubleVectorKey') -> 'vtkInformationKey': ... + @overload + @staticmethod + def GetKey(key:'vtkInformationInformationKey') -> 'vtkInformationKey': ... + @overload + @staticmethod + def GetKey(key:'vtkInformationInformationVectorKey') -> 'vtkInformationKey': ... + @overload + @staticmethod + def GetKey(key:'vtkInformationIntegerKey') -> 'vtkInformationKey': ... + @overload + @staticmethod + def GetKey(key:'vtkInformationIntegerVectorKey') -> 'vtkInformationKey': ... + @overload + @staticmethod + def GetKey(key:'vtkInformationRequestKey') -> 'vtkInformationKey': ... + @overload + @staticmethod + def GetKey(key:'vtkInformationStringKey') -> 'vtkInformationKey': ... + @overload + @staticmethod + def GetKey(key:'vtkInformationStringVectorKey') -> 'vtkInformationKey': ... + @overload + @staticmethod + def GetKey(key:'vtkInformationKey') -> 'vtkInformationKey': ... + @overload + @staticmethod + def GetKey(key:'vtkInformationUnsignedLongKey') -> 'vtkInformationKey': ... + @overload + @staticmethod + def GetKey(key:'vtkInformationVariantKey') -> 'vtkInformationKey': ... + @overload + @staticmethod + def GetKey(key:'vtkInformationVariantVectorKey') -> 'vtkInformationKey': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfKeys(self) -> int: ... + def GetRequest(self) -> 'vtkInformationRequestKey': ... + @overload + def Has(self, key:'vtkInformationKey') -> int: ... + @overload + def Has(self, key:'vtkInformationRequestKey') -> int: ... + @overload + def Has(self, key:'vtkInformationIntegerKey') -> int: ... + @overload + def Has(self, key:'vtkInformationIdTypeKey') -> int: ... + @overload + def Has(self, key:'vtkInformationDoubleKey') -> int: ... + @overload + def Has(self, key:'vtkInformationVariantKey') -> int: ... + @overload + def Has(self, key:'vtkInformationIntegerVectorKey') -> int: ... + @overload + def Has(self, key:'vtkInformationStringVectorKey') -> int: ... + @overload + def Has(self, key:'vtkInformationIntegerPointerKey') -> int: ... + @overload + def Has(self, key:'vtkInformationUnsignedLongKey') -> int: ... + @overload + def Has(self, key:'vtkInformationDoubleVectorKey') -> int: ... + @overload + def Has(self, key:'vtkInformationVariantVectorKey') -> int: ... + @overload + def Has(self, key:'vtkInformationKeyVectorKey') -> int: ... + @overload + def Has(self, key:'vtkInformationStringKey') -> int: ... + @overload + def Has(self, key:'vtkInformationInformationKey') -> int: ... + @overload + def Has(self, key:'vtkInformationInformationVectorKey') -> int: ... + @overload + def Has(self, key:'vtkInformationObjectBaseKey') -> int: ... + @overload + def Has(self, key:'vtkInformationObjectBaseVectorKey') -> int: ... + @overload + def Has(self, key:'vtkInformationDataObjectKey') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def Length(self, key:'vtkInformationIntegerVectorKey') -> int: ... + @overload + def Length(self, key:'vtkInformationStringVectorKey') -> int: ... + @overload + def Length(self, key:'vtkInformationIntegerPointerKey') -> int: ... + @overload + def Length(self, key:'vtkInformationDoubleVectorKey') -> int: ... + @overload + def Length(self, key:'vtkInformationVariantVectorKey') -> int: ... + @overload + def Length(self, key:'vtkInformationKeyVectorKey') -> int: ... + @overload + def Length(self, key:'vtkInformationObjectBaseVectorKey') -> int: ... + @overload + def Modified(self) -> None: ... + @overload + def Modified(self, key:'vtkInformationKey') -> None: ... + def NewInstance(self) -> 'vtkInformation': ... + @overload + def Remove(self, key:'vtkInformationKey') -> None: ... + @overload + def Remove(self, key:'vtkInformationRequestKey') -> None: ... + @overload + def Remove(self, key:'vtkInformationIntegerKey') -> None: ... + @overload + def Remove(self, key:'vtkInformationIdTypeKey') -> None: ... + @overload + def Remove(self, key:'vtkInformationDoubleKey') -> None: ... + @overload + def Remove(self, key:'vtkInformationVariantKey') -> None: ... + @overload + def Remove(self, key:'vtkInformationIntegerVectorKey') -> None: ... + @overload + def Remove(self, key:'vtkInformationStringVectorKey') -> None: ... + @overload + def Remove(self, key:'vtkInformationIntegerPointerKey') -> None: ... + @overload + def Remove(self, key:'vtkInformationUnsignedLongKey') -> None: ... + @overload + def Remove(self, key:'vtkInformationDoubleVectorKey') -> None: ... + @overload + def Remove(self, key:'vtkInformationVariantVectorKey') -> None: ... + @overload + def Remove(self, key:'vtkInformationKeyVectorKey', value:'vtkInformationKey') -> None: ... + @overload + def Remove(self, key:'vtkInformationKeyVectorKey') -> None: ... + @overload + def Remove(self, key:'vtkInformationStringKey') -> None: ... + @overload + def Remove(self, key:'vtkInformationInformationKey') -> None: ... + @overload + def Remove(self, key:'vtkInformationInformationVectorKey') -> None: ... + @overload + def Remove(self, key:'vtkInformationObjectBaseKey') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformation': ... + @overload + def Set(self, key:'vtkInformationRequestKey') -> None: ... + @overload + def Set(self, key:'vtkInformationIntegerKey', value:int) -> None: ... + @overload + def Set(self, key:'vtkInformationIdTypeKey', value:int) -> None: ... + @overload + def Set(self, key:'vtkInformationDoubleKey', value:float) -> None: ... + @overload + def Set(self, key:'vtkInformationVariantKey', value:'vtkVariant') -> None: ... + @overload + def Set(self, key:'vtkInformationIntegerVectorKey', value:Sequence[int], length:int) -> None: ... + @overload + def Set(self, key:'vtkInformationIntegerVectorKey', value1:int, value2:int, value3:int) -> None: ... + @overload + def Set(self, key:'vtkInformationIntegerVectorKey', value1:int, value2:int, value3:int, value4:int, value5:int, value6:int) -> None: ... + @overload + def Set(self, key:'vtkInformationStringVectorKey', value:str, idx:int=0) -> None: ... + @overload + def Set(self, key:'vtkInformationIntegerPointerKey', value:MutableSequence[int], length:int) -> None: ... + @overload + def Set(self, key:'vtkInformationUnsignedLongKey', value:int) -> None: ... + @overload + def Set(self, key:'vtkInformationDoubleVectorKey', value:Sequence[float], length:int) -> None: ... + def SetRequest(self, request:'vtkInformationRequestKey') -> None: ... + def UsesGarbageCollector(self) -> bool: ... + +class vtkInformationKey(vtkObjectBase): + location:'getset_descriptor' + name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CopyDefaultInformation(self, request:'vtkInformation', fromInfo:'vtkInformation', toInfo:'vtkInformation') -> None: ... + def DeepCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + def GetLocation(self) -> str: ... + def GetName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Has(self, info:'vtkInformation') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NeedToExecute(self, pipelineInfo:'vtkInformation', dobjInfo:'vtkInformation') -> bool: ... + def NewInstance(self) -> 'vtkInformationKey': ... + def Print(self, info:'vtkInformation') -> None: ... + def Remove(self, info:'vtkInformation') -> None: ... + def Report(self, info:'vtkInformation', collector:'vtkGarbageCollector') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationKey': ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + def StoreMetaData(self, request:'vtkInformation', pipelineInfo:'vtkInformation', dobjInfo:'vtkInformation') -> None: ... + +class vtkInformationDataObjectKey(vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def Get(self, info:'vtkInformation') -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MakeKey(name:str, location:str) -> 'vtkInformationDataObjectKey': ... + def NewInstance(self) -> 'vtkInformationDataObjectKey': ... + def Report(self, info:'vtkInformation', collector:'vtkGarbageCollector') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationDataObjectKey': ... + def Set(self, info:'vtkInformation', __b:'vtkDataObject') -> None: ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationDoubleKey(vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def Get(self, info:'vtkInformation') -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MakeKey(name:str, location:str) -> 'vtkInformationDoubleKey': ... + def NewInstance(self) -> 'vtkInformationDoubleKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationDoubleKey': ... + def Set(self, info:'vtkInformation', __b:float) -> None: ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationDoubleVectorKey(vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def Append(self, info:'vtkInformation', value:float) -> None: ... + @overload + def Get(self, info:'vtkInformation') -> Pointer: ... + @overload + def Get(self, info:'vtkInformation', idx:int) -> float: ... + @overload + def Get(self, info:'vtkInformation', value:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Length(self, info:'vtkInformation') -> int: ... + @staticmethod + def MakeKey(name:str, location:str, length:int=-1) -> 'vtkInformationDoubleVectorKey': ... + def NewInstance(self) -> 'vtkInformationDoubleVectorKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationDoubleVectorKey': ... + def Set(self, info:'vtkInformation', value:Sequence[float], length:int) -> None: ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationIdTypeKey(vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def Get(self, info:'vtkInformation') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MakeKey(name:str, location:str) -> 'vtkInformationIdTypeKey': ... + def NewInstance(self) -> 'vtkInformationIdTypeKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationIdTypeKey': ... + def Set(self, info:'vtkInformation', __b:int) -> None: ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationInformationKey(vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + def Get(self, info:'vtkInformation') -> 'vtkInformation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MakeKey(name:str, location:str) -> 'vtkInformationInformationKey': ... + def NewInstance(self) -> 'vtkInformationInformationKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationInformationKey': ... + def Set(self, info:'vtkInformation', __b:'vtkInformation') -> None: ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationInformationVectorKey(vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + def Get(self, info:'vtkInformation') -> 'vtkInformationVector': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInformationInformationVectorKey': ... + def Report(self, info:'vtkInformation', collector:'vtkGarbageCollector') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationInformationVectorKey': ... + def Set(self, info:'vtkInformation', __b:'vtkInformationVector') -> None: ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationIntegerKey(vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def Get(self, info:'vtkInformation') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MakeKey(name:str, location:str) -> 'vtkInformationIntegerKey': ... + def NewInstance(self) -> 'vtkInformationIntegerKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationIntegerKey': ... + def Set(self, info:'vtkInformation', __b:int) -> None: ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationIntegerPointerKey(vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + @overload + def Get(self, info:'vtkInformation') -> Pointer: ... + @overload + def Get(self, info:'vtkInformation', value:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Length(self, info:'vtkInformation') -> int: ... + def NewInstance(self) -> 'vtkInformationIntegerPointerKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationIntegerPointerKey': ... + def Set(self, info:'vtkInformation', value:MutableSequence[int], length:int) -> None: ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationIntegerVectorKey(vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def Append(self, info:'vtkInformation', value:int) -> None: ... + @overload + def Get(self, info:'vtkInformation') -> Pointer: ... + @overload + def Get(self, info:'vtkInformation', idx:int) -> int: ... + @overload + def Get(self, info:'vtkInformation', value:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Length(self, info:'vtkInformation') -> int: ... + @staticmethod + def MakeKey(name:str, location:str, length:int=-1) -> 'vtkInformationIntegerVectorKey': ... + def NewInstance(self) -> 'vtkInformationIntegerVectorKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationIntegerVectorKey': ... + @overload + def Set(self, info:'vtkInformation', value:Sequence[int], length:int) -> None: ... + @overload + def Set(self, info:'vtkInformation') -> None: ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationInternals(object): + def __init__(self) -> None: ... + +class vtkInformationIterator(vtkObject): + current_key:'getset_descriptor' + information:'getset_descriptor' + information_weak:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCurrentKey(self) -> 'vtkInformationKey': ... + def GetInformation(self) -> 'vtkInformation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GoToFirstItem(self) -> None: ... + def GoToNextItem(self) -> None: ... + def InitTraversal(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsDoneWithTraversal(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInformationIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationIterator': ... + def SetInformation(self, __a:'vtkInformation') -> None: ... + def SetInformationWeak(self, __a:'vtkInformation') -> None: ... + +class vtkInformationKeyLookup(vtkObject): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def Find(name:str, location:str) -> 'vtkInformationKey': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInformationKeyLookup': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationKeyLookup': ... + +class vtkInformationKeyVectorKey(vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def Append(self, info:'vtkInformation', value:'vtkInformationKey') -> None: ... + def AppendUnique(self, info:'vtkInformation', value:'vtkInformationKey') -> None: ... + def Get(self, info:'vtkInformation', idx:int) -> 'vtkInformationKey': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Length(self, info:'vtkInformation') -> int: ... + @staticmethod + def MakeKey(name:str, location:str) -> 'vtkInformationKeyVectorKey': ... + def NewInstance(self) -> 'vtkInformationKeyVectorKey': ... + def RemoveItem(self, info:'vtkInformation', value:'vtkInformationKey') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationKeyVectorKey': ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationObjectBaseKey(vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def Get(self, info:'vtkInformation') -> 'vtkObjectBase': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MakeKey(name:str, location:str, requiredClass:str=...) -> 'vtkInformationObjectBaseKey': ... + def NewInstance(self) -> 'vtkInformationObjectBaseKey': ... + def Report(self, info:'vtkInformation', collector:'vtkGarbageCollector') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationObjectBaseKey': ... + def Set(self, info:'vtkInformation', __b:'vtkObjectBase') -> None: ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationObjectBaseVectorKey(vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def Append(self, info:'vtkInformation', value:'vtkObjectBase') -> None: ... + def Clear(self, info:'vtkInformation') -> None: ... + def Get(self, info:'vtkInformation', idx:int) -> 'vtkObjectBase': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Length(self, info:'vtkInformation') -> int: ... + @staticmethod + def MakeKey(name:str, location:str, requiredClass:str=...) -> 'vtkInformationObjectBaseVectorKey': ... + def NewInstance(self) -> 'vtkInformationObjectBaseVectorKey': ... + @overload + def Remove(self, info:'vtkInformation', val:'vtkObjectBase') -> None: ... + @overload + def Remove(self, info:'vtkInformation', idx:int) -> None: ... + @overload + def Remove(self, info:'vtkInformation') -> None: ... + def Resize(self, info:'vtkInformation', size:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationObjectBaseVectorKey': ... + def Set(self, info:'vtkInformation', value:'vtkObjectBase', i:int) -> None: ... + def ShallowCopy(self, source:'vtkInformation', dest:'vtkInformation') -> None: ... + def Size(self, info:'vtkInformation') -> int: ... + +class vtkInformationRequestKey(vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Has(self, info:'vtkInformation') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MakeKey(name:str, location:str) -> 'vtkInformationRequestKey': ... + def NewInstance(self) -> 'vtkInformationRequestKey': ... + def Remove(self, info:'vtkInformation') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationRequestKey': ... + def Set(self, info:'vtkInformation') -> None: ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationStringKey(vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def Get(self, info:'vtkInformation') -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MakeKey(name:str, location:str) -> 'vtkInformationStringKey': ... + def NewInstance(self) -> 'vtkInformationStringKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationStringKey': ... + def Set(self, info:'vtkInformation', str:str) -> None: ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationStringVectorKey(vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def Append(self, info:'vtkInformation', value:str) -> None: ... + def Get(self, info:'vtkInformation', idx:int=0) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Length(self, info:'vtkInformation') -> int: ... + @staticmethod + def MakeKey(name:str, location:str, length:int=-1) -> 'vtkInformationStringVectorKey': ... + def NewInstance(self) -> 'vtkInformationStringVectorKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationStringVectorKey': ... + def Set(self, info:'vtkInformation', value:str, idx:int=0) -> None: ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationUnsignedLongKey(vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def Get(self, info:'vtkInformation') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MakeKey(name:str, location:str) -> 'vtkInformationUnsignedLongKey': ... + def NewInstance(self) -> 'vtkInformationUnsignedLongKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationUnsignedLongKey': ... + def Set(self, info:'vtkInformation', __b:int) -> None: ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationVariantKey(vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def Get(self, info:'vtkInformation') -> 'vtkVariant': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MakeKey(name:str, location:str) -> 'vtkInformationVariantKey': ... + def NewInstance(self) -> 'vtkInformationVariantKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationVariantKey': ... + def Set(self, info:'vtkInformation', __b:'vtkVariant') -> None: ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationVariantVectorKey(vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def Append(self, info:'vtkInformation', value:'vtkVariant') -> None: ... + def Get(self, info:'vtkInformation', idx:int) -> 'vtkVariant': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Length(self, info:'vtkInformation') -> int: ... + @staticmethod + def MakeKey(name:str, location:str, length:int=-1) -> 'vtkInformationVariantVectorKey': ... + def NewInstance(self) -> 'vtkInformationVariantVectorKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationVariantVectorKey': ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationVector(vtkObject): + def __init__(self, **properties:Any) -> None: ... + def Append(self, info:'vtkInformation') -> None: ... + def Copy(self, from_:'vtkInformationVector', deep:int=0) -> None: ... + def GetInformationObject(self, index:int) -> 'vtkInformation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfInformationObjects(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInformationVector': ... + @overload + def Remove(self, info:'vtkInformation') -> None: ... + @overload + def Remove(self, idx:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationVector': ... + def SetInformationObject(self, index:int, info:'vtkInformation') -> None: ... + def SetNumberOfInformationObjects(self, n:int) -> None: ... + def UsesGarbageCollector(self) -> bool: ... + +class vtkIntArray(vtkDataArray): + data_type:'getset_descriptor' + data_type_value_max:'getset_descriptor' + data_type_value_min:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkIntArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkIntArray': ... + def GetDataType(self) -> int: ... + @staticmethod + def GetDataTypeValueMax() -> int: ... + @staticmethod + def GetDataTypeValueMin() -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, id:int) -> Pointer: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def InsertNextTypedTuple(self, tuple:Sequence[int]) -> int: ... + def InsertNextValue(self, f:int) -> int: ... + def InsertTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def InsertValue(self, id:int, f:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkIntArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIntArray': ... + @overload + def SetArray(self, array:Buffer, size:int, save:int) -> None: ... + @overload + def SetArray(self, array:Buffer, size:int, save:int, deleteMethod:int) -> None: ... + def SetNumberOfValues(self, number:int) -> bool: ... + def SetTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, id:int, value:int) -> None: ... + def WritePointer(self, id:int, number:int) -> Pointer: ... + +class vtkInvoker(vtkObject): + context:'getset_descriptor' + invoker_log_verbosity:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetContext(self) -> 'vtkMarshalContext': ... + def GetInvokerLogVerbosity(self) -> vtkLogger.Verbosity: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInvoker': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInvoker': ... + def SetContext(self, _arg:'vtkMarshalContext') -> None: ... + def SetInvokerLogVerbosity(self, verbosity:vtkLogger.Verbosity) -> None: ... + +class vtkLogger(vtkObjectBase): + class FileMode(int): ... + class Verbosity(int): ... + APPEND:'FileMode' + TRUNCATE:'FileMode' + VERBOSITY_0:'Verbosity' + VERBOSITY_1:'Verbosity' + VERBOSITY_2:'Verbosity' + VERBOSITY_3:'Verbosity' + VERBOSITY_4:'Verbosity' + VERBOSITY_5:'Verbosity' + VERBOSITY_6:'Verbosity' + VERBOSITY_7:'Verbosity' + VERBOSITY_8:'Verbosity' + VERBOSITY_9:'Verbosity' + VERBOSITY_ERROR:'Verbosity' + VERBOSITY_INFO:'Verbosity' + VERBOSITY_INVALID:'Verbosity' + VERBOSITY_MAX:'Verbosity' + VERBOSITY_OFF:'Verbosity' + VERBOSITY_TRACE:'Verbosity' + VERBOSITY_WARNING:'Verbosity' + current_verbosity_cutoff:'getset_descriptor' + internal_verbosity_level:'getset_descriptor' + stderr_verbosity:'getset_descriptor' + thread_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + @staticmethod + def ConvertToVerbosity(value:int) -> 'Verbosity': ... + @overload + @staticmethod + def ConvertToVerbosity(text:str) -> 'Verbosity': ... + @staticmethod + def EndLogToFile(path:str) -> None: ... + @staticmethod + def EndScope(id:str) -> None: ... + @staticmethod + def GetCurrentVerbosityCutoff() -> 'Verbosity': ... + @staticmethod + def GetIdentifier(obj:'vtkObjectBase') -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GetThreadName() -> str: ... + @staticmethod + def Init() -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsEnabled() -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def Log(verbosity:'Verbosity', fname:str, lineno:int, txt:str) -> None: ... + @staticmethod + def LogToFile(path:str, filemode:'FileMode', verbosity:'Verbosity') -> None: ... + def NewInstance(self) -> 'vtkLogger': ... + @staticmethod + def RemoveCallback(id:str) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLogger': ... + @staticmethod + def SetInternalVerbosityLevel(level:'Verbosity') -> None: ... + @staticmethod + def SetStderrVerbosity(level:'Verbosity') -> None: ... + @staticmethod + def SetThreadName(name:str) -> None: ... + @staticmethod + def StartScope(verbosity:'Verbosity', id:str, fname:str, lineno:int) -> None: ... + +class vtkLongArray(vtkDataArray): + data_type:'getset_descriptor' + data_type_value_max:'getset_descriptor' + data_type_value_min:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkLongArray': ... + def GetDataType(self) -> int: ... + @staticmethod + def GetDataTypeValueMax() -> int: ... + @staticmethod + def GetDataTypeValueMin() -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, id:int) -> Pointer: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def InsertNextTypedTuple(self, tuple:Sequence[int]) -> int: ... + def InsertNextValue(self, f:int) -> int: ... + def InsertTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def InsertValue(self, id:int, f:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLongArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLongArray': ... + @overload + def SetArray(self, array:Buffer, size:int, save:int) -> None: ... + @overload + def SetArray(self, array:Buffer, size:int, save:int, deleteMethod:int) -> None: ... + def SetNumberOfValues(self, number:int) -> bool: ... + def SetTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, id:int, value:int) -> None: ... + def WritePointer(self, id:int, number:int) -> Pointer: ... + +class vtkLongLongArray(vtkDataArray): + data_type:'getset_descriptor' + data_type_value_max:'getset_descriptor' + data_type_value_min:'getset_descriptor' + value:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkLongLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkLongLongArray': ... + def GetDataType(self) -> int: ... + @staticmethod + def GetDataTypeValueMax() -> int: ... + @staticmethod + def GetDataTypeValueMin() -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, id:int) -> Pointer: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def InsertNextTypedTuple(self, tuple:Sequence[int]) -> int: ... + def InsertNextValue(self, f:int) -> int: ... + def InsertTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def InsertValue(self, id:int, f:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLongLongArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLongLongArray': ... + @overload + def SetArray(self, array:Buffer, size:int, save:int) -> None: ... + @overload + def SetArray(self, array:Buffer, size:int, save:int, deleteMethod:int) -> None: ... + def SetNumberOfValues(self, number:int) -> bool: ... + def SetTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, id:int, value:int) -> None: ... + def WritePointer(self, id:int, number:int) -> Pointer: ... + +class vtkScalarsToColors(vtkObject): + class VectorModes(int): ... + COMPONENT:'VectorModes' + MAGNITUDE:'VectorModes' + RGBCOLORS:'VectorModes' + alpha:'getset_descriptor' + annotated_values:'getset_descriptor' + annotations:'getset_descriptor' + indexed_lookup:'getset_descriptor' + number_of_annotated_values:'getset_descriptor' + number_of_available_colors:'getset_descriptor' + range:'getset_descriptor' + vector_component:'getset_descriptor' + vector_mode:'getset_descriptor' + vector_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Build(self) -> None: ... + def DeepCopy(self, o:'vtkScalarsToColors') -> None: ... + def GetAlpha(self) -> float: ... + def GetAnnotatedValue(self, idx:int) -> 'vtkVariant': ... + def GetAnnotatedValueIndex(self, val:'vtkVariant') -> int: ... + def GetAnnotatedValueIndexInternal(self, val:'vtkVariant') -> int: ... + def GetAnnotatedValues(self) -> 'vtkAbstractArray': ... + def GetAnnotation(self, idx:int) -> str: ... + def GetAnnotationColor(self, val:'vtkVariant', rgba:MutableSequence[float]) -> None: ... + def GetAnnotations(self) -> 'vtkStringArray': ... + @overload + def GetColor(self, v:float, rgb:MutableSequence[float]) -> None: ... + @overload + def GetColor(self, v:float) -> Tuple[float, float, float]: ... + def GetIndexedColor(self, i:int, rgba:MutableSequence[float]) -> None: ... + def GetIndexedLookup(self) -> int: ... + def GetLuminance(self, x:float) -> float: ... + def GetNumberOfAnnotatedValues(self) -> int: ... + def GetNumberOfAvailableColors(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOpacity(self, v:float) -> float: ... + def GetRange(self) -> Tuple[float, float]: ... + def GetVectorComponent(self) -> int: ... + def GetVectorMode(self) -> int: ... + def GetVectorSize(self) -> int: ... + def IndexedLookupOff(self) -> None: ... + def IndexedLookupOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @overload + def IsOpaque(self) -> int: ... + @overload + def IsOpaque(self, scalars:'vtkAbstractArray', colorMode:int, component:int) -> int: ... + @overload + def IsOpaque(self, scalars:'vtkAbstractArray', colorMode:int, component:int, ghosts:'vtkUnsignedCharArray', ghostsToSkip:int=0xff) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def MapScalars(self, scalars:'vtkDataArray', colorMode:int, component:int, outputFormat:int=...) -> 'vtkUnsignedCharArray': ... + @overload + def MapScalars(self, scalars:'vtkAbstractArray', colorMode:int, component:int, outputFormat:int=...) -> 'vtkUnsignedCharArray': ... + @overload + def MapScalarsThroughTable(self, scalars:'vtkDataArray', output:MutableSequence[int], outputFormat:int) -> None: ... + @overload + def MapScalarsThroughTable(self, scalars:'vtkDataArray', output:MutableSequence[int]) -> None: ... + @overload + def MapScalarsThroughTable(self, input:Pointer, output:MutableSequence[int], inputDataType:int, numberOfValues:int, inputIncrement:int, outputFormat:int) -> None: ... + def MapScalarsThroughTable2(self, input:Pointer, output:MutableSequence[int], inputDataType:int, numberOfValues:int, inputIncrement:int, outputFormat:int) -> None: ... + def MapValue(self, v:float) -> Pointer: ... + @overload + def MapVectorsThroughTable(self, input:Pointer, output:MutableSequence[int], inputDataType:int, numberOfValues:int, inputIncrement:int, outputFormat:int, vectorComponent:int, vectorSize:int) -> None: ... + @overload + def MapVectorsThroughTable(self, input:Pointer, output:MutableSequence[int], inputDataType:int, numberOfValues:int, inputIncrement:int, outputFormat:int) -> None: ... + def NewInstance(self) -> 'vtkScalarsToColors': ... + def RemoveAnnotation(self, value:'vtkVariant') -> bool: ... + def ResetAnnotations(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkScalarsToColors': ... + def SetAlpha(self, alpha:float) -> None: ... + @overload + def SetAnnotation(self, value:'vtkVariant', annotation:str) -> int: ... + @overload + def SetAnnotation(self, value:str, annotation:str) -> int: ... + def SetAnnotations(self, values:'vtkAbstractArray', annotations:'vtkStringArray') -> None: ... + def SetIndexedLookup(self, _arg:int) -> None: ... + @overload + def SetRange(self, min:float, max:float) -> None: ... + @overload + def SetRange(self, rng:Sequence[float]) -> None: ... + def SetVectorComponent(self, _arg:int) -> None: ... + def SetVectorMode(self, _arg:int) -> None: ... + def SetVectorModeToComponent(self) -> None: ... + def SetVectorModeToMagnitude(self) -> None: ... + def SetVectorModeToRGBColors(self) -> None: ... + def SetVectorSize(self, _arg:int) -> None: ... + def UsingLogScale(self) -> int: ... + +class vtkLookupTable(vtkScalarsToColors): + above_range_color:'getset_descriptor' + alpha_range:'getset_descriptor' + below_range_color:'getset_descriptor' + hue_range:'getset_descriptor' + nan_color:'getset_descriptor' + nan_color_as_unsigned_chars:'getset_descriptor' + number_of_available_colors:'getset_descriptor' + number_of_colors:'getset_descriptor' + number_of_colors_max_value:'getset_descriptor' + number_of_colors_min_value:'getset_descriptor' + number_of_table_values:'getset_descriptor' + ramp:'getset_descriptor' + range:'getset_descriptor' + saturation_range:'getset_descriptor' + scale:'getset_descriptor' + table:'getset_descriptor' + table_range:'getset_descriptor' + use_above_range_color:'getset_descriptor' + use_below_range_color:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, sz:int=256, ext:int=256) -> int: ... + @staticmethod + def ApplyLogScale(v:float, range:Sequence[float], log_range:Sequence[float]) -> float: ... + def Build(self) -> None: ... + def BuildSpecialColors(self) -> None: ... + def DeepCopy(self, obj:'vtkScalarsToColors') -> None: ... + def ForceBuild(self) -> None: ... + def GetAboveRangeColor(self) -> Tuple[float, float, float, float]: ... + def GetAlphaRange(self) -> Tuple[float, float]: ... + def GetBelowRangeColor(self) -> Tuple[float, float, float, float]: ... + def GetColor(self, v:float, rgb:MutableSequence[float]) -> None: ... + @staticmethod + def GetColorAsUnsignedChars(colorIn:Sequence[float], colorOut:MutableSequence[int]) -> None: ... + def GetHueRange(self) -> Tuple[float, float]: ... + def GetIndex(self, v:float) -> int: ... + def GetIndexedColor(self, idx:int, rgba:MutableSequence[float]) -> None: ... + @staticmethod + def GetLogRange(range:Sequence[float], log_range:MutableSequence[float]) -> None: ... + def GetNanColor(self) -> Tuple[float, float, float, float]: ... + def GetNanColorAsUnsignedChars(self) -> Pointer: ... + def GetNumberOfAvailableColors(self) -> int: ... + def GetNumberOfColors(self) -> int: ... + def GetNumberOfColorsMaxValue(self) -> int: ... + def GetNumberOfColorsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTableValues(self) -> int: ... + def GetOpacity(self, v:float) -> float: ... + def GetPointer(self, id:int) -> Pointer: ... + def GetRamp(self) -> int: ... + def GetRange(self) -> Tuple[float, float]: ... + def GetSaturationRange(self) -> Tuple[float, float]: ... + def GetScale(self) -> int: ... + def GetTable(self) -> 'vtkUnsignedCharArray': ... + def GetTableRange(self) -> Tuple[float, float]: ... + @overload + def GetTableValue(self, indx:int) -> Tuple[float, float, float, float]: ... + @overload + def GetTableValue(self, indx:int, rgba:MutableSequence[float]) -> None: ... + def GetUseAboveRangeColor(self) -> int: ... + def GetUseBelowRangeColor(self) -> int: ... + def GetValueRange(self) -> Tuple[float, float]: ... + def IsA(self, type:str) -> int: ... + @overload + def IsOpaque(self) -> int: ... + @overload + def IsOpaque(self, scalars:'vtkAbstractArray', colorMode:int, component:int) -> int: ... + @overload + def IsOpaque(self, scalars:'vtkAbstractArray', colorMode:int, component:int, ghosts:'vtkUnsignedCharArray', ghostsToSkip:int=0xff) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MapScalarsThroughTable2(self, input:Pointer, output:MutableSequence[int], inputDataType:int, numberOfValues:int, inputIncrement:int, outputFormat:int) -> None: ... + def MapValue(self, v:float) -> Pointer: ... + def NewInstance(self) -> 'vtkLookupTable': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLookupTable': ... + @overload + def SetAboveRangeColor(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetAboveRangeColor(self, _arg:Sequence[float]) -> None: ... + @overload + def SetAlphaRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetAlphaRange(self, _arg:Sequence[float]) -> None: ... + @overload + def SetBelowRangeColor(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetBelowRangeColor(self, _arg:Sequence[float]) -> None: ... + @overload + def SetHueRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetHueRange(self, _arg:Sequence[float]) -> None: ... + @overload + def SetNanColor(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetNanColor(self, _arg:Sequence[float]) -> None: ... + def SetNumberOfColors(self, _arg:int) -> None: ... + def SetNumberOfTableValues(self, number:int) -> None: ... + def SetRamp(self, _arg:int) -> None: ... + def SetRampToLinear(self) -> None: ... + def SetRampToSCurve(self) -> None: ... + def SetRampToSQRT(self) -> None: ... + @overload + def SetRange(self, min:float, max:float) -> None: ... + @overload + def SetRange(self, rng:Sequence[float]) -> None: ... + @overload + def SetSaturationRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetSaturationRange(self, _arg:Sequence[float]) -> None: ... + def SetScale(self, scale:int) -> None: ... + def SetScaleToLinear(self) -> None: ... + def SetScaleToLog10(self) -> None: ... + def SetTable(self, __a:'vtkUnsignedCharArray') -> None: ... + @overload + def SetTableRange(self, r:Sequence[float]) -> None: ... + @overload + def SetTableRange(self, min:float, max:float) -> None: ... + @overload + def SetTableValue(self, indx:int, rgba:Sequence[float]) -> None: ... + @overload + def SetTableValue(self, indx:int, r:float, g:float, b:float, a:float=1.0) -> None: ... + def SetUseAboveRangeColor(self, _arg:int) -> None: ... + def SetUseBelowRangeColor(self, _arg:int) -> None: ... + @overload + def SetValueRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetValueRange(self, _arg:Sequence[float]) -> None: ... + def UseAboveRangeColorOff(self) -> None: ... + def UseAboveRangeColorOn(self) -> None: ... + def UseBelowRangeColorOff(self) -> None: ... + def UseBelowRangeColorOn(self) -> None: ... + def UsingLogScale(self) -> int: ... + def WritePointer(self, id:int, number:int) -> Pointer: ... + +class vtkMarshalContext(vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetBlob(self, hash:str) -> 'vtkTypeUInt8Array': ... + def GetDirectDependencies(self, identifier:int) -> Tuple[int, int]: ... + def GetId(self, objectBase:'vtkObjectBase') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetObjectAtId(self, identifier:int) -> 'vtkObjectBase': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def KeepAlive(self, owner:str, objectBase:'vtkObjectBase') -> None: ... + def MakeId(self) -> int: ... + def NewInstance(self) -> 'vtkMarshalContext': ... + def PopParent(self) -> None: ... + def PushParent(self, identifier:int) -> None: ... + def RegisterBlob(self, blob:'vtkTypeUInt8Array', hash:str) -> bool: ... + def RegisterObject(self, objectBase:'vtkObjectBase', identifier:int) -> bool: ... + def ResetDirectDependencies(self) -> None: ... + def ResetDirectDependenciesForNode(self, identifier:int) -> None: ... + def Retire(self, owner:str, objectBase:'vtkObjectBase') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMarshalContext': ... + def UnRegisterBlob(self, hash:str) -> bool: ... + def UnRegisterObject(self, identifier:int) -> bool: ... + def UnRegisterState(self, identifier:int) -> bool: ... + +class vtkMath(vtkObject): + class ConvolutionMode(int): + FULL:'ConvolutionMode' + SAME:'ConvolutionMode' + VALID:'ConvolutionMode' + seed:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def Add(a:Sequence[float], b:Sequence[float], c:MutableSequence[float]) -> None: ... + @staticmethod + def AngleBetweenVectors(v1:Sequence[float], v2:Sequence[float]) -> float: ... + @staticmethod + def AreBoundsInitialized(bounds:Sequence[float]) -> int: ... + @staticmethod + def Assign(a:Sequence[float], b:MutableSequence[float]) -> None: ... + @staticmethod + def BeginCombination(m:int, n:int) -> Pointer: ... + @staticmethod + def Binomial(m:int, n:int) -> int: ... + @staticmethod + def BoundsIsWithinOtherBounds(bounds1:Sequence[float], bounds2:Sequence[float], delta:Sequence[float]) -> int: ... + @staticmethod + def Ceil(x:float) -> int: ... + @staticmethod + def CeilLog2(x:int) -> int: ... + @staticmethod + def ClampAndNormalizeValue(value:float, range:Sequence[float]) -> float: ... + @overload + @staticmethod + def ClampValue(value:MutableSequence[float], range:Sequence[float]) -> None: ... + @overload + @staticmethod + def ClampValue(value:float, range:Sequence[float], clamped_value:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def ClampValues(values:MutableSequence[float], nb_values:int, range:Sequence[float]) -> None: ... + @overload + @staticmethod + def ClampValues(values:Sequence[float], nb_values:int, range:Sequence[float], clamped_values:MutableSequence[float]) -> None: ... + @staticmethod + def ComputeGCD(m:int, n:int) -> int: ... + @staticmethod + def Cross(a:Sequence[float], b:Sequence[float], c:MutableSequence[float]) -> None: ... + @staticmethod + def DYNAMIC_VECTOR_SIZE() -> int: ... + @staticmethod + def DegreesFromRadians(radians:float) -> float: ... + @overload + @staticmethod + def Determinant2x2(a:float, b:float, c:float, d:float) -> float: ... + @overload + @staticmethod + def Determinant2x2(c1:Sequence[float], c2:Sequence[float]) -> float: ... + @overload + @staticmethod + def Determinant3x3(A:Sequence[Sequence[float]]) -> float: ... + @overload + @staticmethod + def Determinant3x3(c1:Sequence[float], c2:Sequence[float], c3:Sequence[float]) -> float: ... + @overload + @staticmethod + def Determinant3x3(a1:float, a2:float, a3:float, b1:float, b2:float, b3:float, c1:float, c2:float, c3:float) -> float: ... + @staticmethod + def Diagonalize3x3(A:Sequence[Sequence[float]], w:MutableSequence[float], V:MutableSequence[MutableSequence[float]]) -> None: ... + @staticmethod + def Distance2BetweenPoints(p1:Sequence[float], p2:Sequence[float]) -> float: ... + @staticmethod + def Dot(a:Sequence[float], b:Sequence[float]) -> float: ... + @staticmethod + def Dot2D(x:Sequence[float], y:Sequence[float]) -> float: ... + @staticmethod + def ExtentIsWithinOtherExtent(extent1:Sequence[int], extent2:Sequence[int]) -> int: ... + @staticmethod + def Factorial(N:int) -> int: ... + @staticmethod + def Floor(x:float) -> int: ... + @staticmethod + def FreeCombination(combination:MutableSequence[int]) -> None: ... + @overload + @staticmethod + def Gaussian() -> float: ... + @overload + @staticmethod + def Gaussian(mean:float, std:float) -> float: ... + @overload + @staticmethod + def GaussianAmplitude(variance:float, distanceFromMean:float) -> float: ... + @overload + @staticmethod + def GaussianAmplitude(mean:float, variance:float, position:float) -> float: ... + @overload + @staticmethod + def GaussianWeight(variance:float, distanceFromMean:float) -> float: ... + @overload + @staticmethod + def GaussianWeight(mean:float, variance:float, position:float) -> float: ... + @staticmethod + def GetAdjustedScalarRange(array:'vtkDataArray', comp:int, range:MutableSequence[float]) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GetPointAlongLine(result:MutableSequence[float], p1:MutableSequence[float], p2:MutableSequence[float], offset:float) -> None: ... + @staticmethod + def GetScalarTypeFittingRange(range_min:float, range_max:float, scale:float=1.0, shift:float=0.0) -> int: ... + @staticmethod + def GetSeed() -> int: ... + @overload + @staticmethod + def HSVToRGB(hsv:Sequence[float], rgb:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def HSVToRGB(h:float, s:float, v:float, r:MutableSequence[float], g:MutableSequence[float], b:MutableSequence[float]) -> None: ... + @staticmethod + def Identity3x3(A:MutableSequence[MutableSequence[float]]) -> None: ... + @staticmethod + def Inf() -> float: ... + @staticmethod + def Invert3x3(A:Sequence[Sequence[float]], AI:MutableSequence[MutableSequence[float]]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsFinite(x:float) -> bool: ... + @staticmethod + def IsInf(x:float) -> int: ... + @staticmethod + def IsNan(x:float) -> int: ... + @staticmethod + def IsPowerOfTwo(x:int) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def LUFactor3x3(A:MutableSequence[MutableSequence[float]], index:MutableSequence[int]) -> None: ... + @staticmethod + def LUSolve3x3(A:Sequence[Sequence[float]], index:Sequence[int], x:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def LabToRGB(lab:Sequence[float], rgb:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def LabToRGB(L:float, a:float, b:float, red:MutableSequence[float], green:MutableSequence[float], blue:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def LabToXYZ(lab:Sequence[float], xyz:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def LabToXYZ(L:float, a:float, b:float, x:MutableSequence[float], y:MutableSequence[float], z:MutableSequence[float]) -> None: ... + @staticmethod + def LinearSolve3x3(A:Sequence[Sequence[float]], x:Sequence[float], y:MutableSequence[float]) -> None: ... + @staticmethod + def Matrix3x3ToQuaternion(A:Sequence[Sequence[float]], quat:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def Multiply3x3(A:Sequence[Sequence[float]], v:Sequence[float], u:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def Multiply3x3(A:Sequence[Sequence[float]], B:Sequence[Sequence[float]], C:MutableSequence[MutableSequence[float]]) -> None: ... + @staticmethod + def MultiplyQuaternion(q1:Sequence[float], q2:Sequence[float], q:MutableSequence[float]) -> None: ... + @staticmethod + def MultiplyScalar(a:MutableSequence[float], s:float) -> None: ... + @staticmethod + def MultiplyScalar2D(a:MutableSequence[float], s:float) -> None: ... + @staticmethod + def Nan() -> float: ... + @staticmethod + def NearestPowerOfTwo(x:int) -> int: ... + @staticmethod + def NegInf() -> float: ... + def NewInstance(self) -> 'vtkMath': ... + @staticmethod + def NextCombination(m:int, n:int, combination:MutableSequence[int]) -> int: ... + @overload + @staticmethod + def Norm(x:Sequence[float], n:int) -> float: ... + @overload + @staticmethod + def Norm(v:Sequence[float]) -> float: ... + @staticmethod + def Norm2D(x:Sequence[float]) -> float: ... + @staticmethod + def Normalize(v:MutableSequence[float]) -> float: ... + @staticmethod + def Normalize2D(v:MutableSequence[float]) -> float: ... + @staticmethod + def Orthogonalize3x3(A:Sequence[Sequence[float]], B:MutableSequence[MutableSequence[float]]) -> None: ... + @staticmethod + def Outer(a:Sequence[float], b:Sequence[float], c:MutableSequence[MutableSequence[float]]) -> None: ... + @staticmethod + def Outer2D(x:Sequence[float], y:Sequence[float], A:MutableSequence[MutableSequence[float]]) -> None: ... + @staticmethod + def Perpendiculars(v1:Sequence[float], v2:MutableSequence[float], v3:MutableSequence[float], theta:float) -> None: ... + @staticmethod + def Pi() -> float: ... + @staticmethod + def PlaneIntersectsAABB(bounds:Sequence[float], normal:Sequence[float], point:Sequence[float]) -> int: ... + @staticmethod + def PointIsWithinBounds(point:Sequence[float], bounds:Sequence[float], delta:Sequence[float]) -> int: ... + @overload + @staticmethod + def ProLabToRGB(prolab:Sequence[float], rgb:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def ProLabToRGB(L:float, a:float, b:float, red:MutableSequence[float], green:MutableSequence[float], blue:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def ProLabToXYZ(prolab:Sequence[float], xyz:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def ProLabToXYZ(L:float, a:float, b:float, x:MutableSequence[float], y:MutableSequence[float], z:MutableSequence[float]) -> None: ... + @staticmethod + def ProjectVector(a:Sequence[float], b:Sequence[float], projection:MutableSequence[float]) -> bool: ... + @staticmethod + def ProjectVector2D(a:Sequence[float], b:Sequence[float], projection:MutableSequence[float]) -> bool: ... + @staticmethod + def QuadraticRoot(a:float, b:float, c:float, min:float, max:float, u:MutableSequence[float]) -> int: ... + @staticmethod + def QuaternionToMatrix3x3(quat:Sequence[float], A:MutableSequence[MutableSequence[float]]) -> None: ... + @overload + @staticmethod + def RGBToHSV(rgb:Sequence[float], hsv:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def RGBToHSV(r:float, g:float, b:float, h:MutableSequence[float], s:MutableSequence[float], v:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def RGBToLab(rgb:Sequence[float], lab:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def RGBToLab(red:float, green:float, blue:float, L:MutableSequence[float], a:MutableSequence[float], b:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def RGBToProLab(rgb:Sequence[float], prolab:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def RGBToProLab(red:float, green:float, blue:float, L:MutableSequence[float], a:MutableSequence[float], b:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def RGBToXYZ(rgb:Sequence[float], xyz:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def RGBToXYZ(r:float, g:float, b:float, x:MutableSequence[float], y:MutableSequence[float], z:MutableSequence[float]) -> None: ... + @staticmethod + def RadiansFromDegrees(degrees:float) -> float: ... + @overload + @staticmethod + def Random() -> float: ... + @overload + @staticmethod + def Random(min:float, max:float) -> float: ... + @staticmethod + def RandomSeed(s:int) -> None: ... + @staticmethod + def RotateVectorByNormalizedQuaternion(v:Sequence[float], q:Sequence[float], r:MutableSequence[float]) -> None: ... + @staticmethod + def RotateVectorByWXYZ(v:Sequence[float], q:Sequence[float], r:MutableSequence[float]) -> None: ... + @staticmethod + def Round(f:float) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMath': ... + @staticmethod + def SignedAngleBetweenVectors(v1:Sequence[float], v2:Sequence[float], vn:Sequence[float]) -> float: ... + @staticmethod + def SingularValueDecomposition3x3(A:Sequence[Sequence[float]], U:MutableSequence[MutableSequence[float]], w:MutableSequence[float], VT:MutableSequence[MutableSequence[float]]) -> None: ... + @staticmethod + def Solve3PointCircle(p1:Sequence[float], p2:Sequence[float], p3:Sequence[float], center:MutableSequence[float]) -> float: ... + @staticmethod + def SolveLinearSystemGEPP2x2(a00:float, a01:float, a10:float, a11:float, b0:float, b1:float, x0:float, x1:float) -> int: ... + @staticmethod + def Subtract(a:Sequence[float], b:Sequence[float], c:MutableSequence[float]) -> None: ... + @staticmethod + def Transpose3x3(A:Sequence[Sequence[float]], AT:MutableSequence[MutableSequence[float]]) -> None: ... + @staticmethod + def UninitializeBounds(bounds:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def XYZToLab(xyz:Sequence[float], lab:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def XYZToLab(x:float, y:float, z:float, L:MutableSequence[float], a:MutableSequence[float], b:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def XYZToProLab(xyz:Sequence[float], prolab:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def XYZToProLab(x:float, y:float, z:float, L:MutableSequence[float], a:MutableSequence[float], b:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def XYZToRGB(xyz:Sequence[float], rgb:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def XYZToRGB(x:float, y:float, z:float, r:MutableSequence[float], g:MutableSequence[float], b:MutableSequence[float]) -> None: ... + +class vtkMersenneTwister(vtkRandomSequence): + value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetValue(self, id:int) -> float: ... + @overload + def GetValue(self) -> float: ... + def Initialize(self, seed:int) -> None: ... + def InitializeNewSequence(self, seed:int, p:int=521) -> int: ... + def InitializeSequence(self, id:int, seed:int, p:int=521) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMersenneTwister': ... + @overload + def Next(self, id:int) -> None: ... + @overload + def Next(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMersenneTwister': ... + +class vtkMinimalStandardRandomSequence(vtkRandomSequence): + seed:'getset_descriptor' + value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNextRangeValue(self, rangeMin:float, rangeMax:float) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRangeValue(self, rangeMin:float, rangeMax:float) -> float: ... + def GetSeed(self) -> int: ... + def GetValue(self) -> float: ... + def Initialize(self, seed:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMinimalStandardRandomSequence': ... + def Next(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMinimalStandardRandomSequence': ... + def SetSeed(self, value:int) -> None: ... + def SetSeedOnly(self, value:int) -> None: ... + +class vtkMultiThreader(vtkObject): + global_default_number_of_threads:'getset_descriptor' + global_maximum_number_of_threads:'getset_descriptor' + global_static_maximum_number_of_threads:'getset_descriptor' + number_of_threads:'getset_descriptor' + number_of_threads_max_value:'getset_descriptor' + number_of_threads_min_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def GetGlobalDefaultNumberOfThreads() -> int: ... + @staticmethod + def GetGlobalMaximumNumberOfThreads() -> int: ... + @staticmethod + def GetGlobalStaticMaximumNumberOfThreads() -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfThreads(self) -> int: ... + def GetNumberOfThreadsMaxValue(self) -> int: ... + def GetNumberOfThreadsMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsThreadActive(self, threadId:int) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MultipleMethodExecute(self) -> None: ... + def NewInstance(self) -> 'vtkMultiThreader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMultiThreader': ... + @staticmethod + def SetGlobalDefaultNumberOfThreads(val:int) -> None: ... + @staticmethod + def SetGlobalMaximumNumberOfThreads(val:int) -> None: ... + def SetNumberOfThreads(self, _arg:int) -> None: ... + def SingleMethodExecute(self) -> None: ... + def TerminateThread(self, threadId:int) -> None: ... + +class vtkNumberToString(object): + class Notation(int): ... + Fixed:'Notation' + Mixed:'Notation' + Scientific:'Notation' + high_exponent:'getset_descriptor' + low_exponent:'getset_descriptor' + notation:'getset_descriptor' + precision:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkNumberToString') -> None: ... + def Convert(self, val:float) -> str: ... + def GetHighExponent(self) -> int: ... + def GetLowExponent(self) -> int: ... + def GetNotation(self) -> int: ... + def GetPrecision(self) -> int: ... + def SetHighExponent(self, highExponent:int) -> None: ... + def SetLowExponent(self, lowExponent:int) -> None: ... + def SetNotation(self, notation:int) -> None: ... + def SetPrecision(self, precision:int) -> None: ... + +class vtkOStrStreamWrapper(object): + def __init__(self) -> None: ... + def str(self) -> str: ... + @overload + def freeze(self) -> None: ... + @overload + def freeze(self, __a:int) -> None: ... + +class vtkObjectFactory(vtkObject): + description:'getset_descriptor' + library_path:'getset_descriptor' + number_of_overrides:'getset_descriptor' + registered_factories:'getset_descriptor' + vtk_source_version:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def CreateAllInstance(vtkclassname:str, retList:'vtkCollection') -> None: ... + @staticmethod + def CreateInstance(vtkclassname:str, isAbstract:bool=False) -> 'vtkObject': ... + def Disable(self, className:str) -> None: ... + def GetClassOverrideName(self, index:int) -> str: ... + def GetClassOverrideWithName(self, index:int) -> str: ... + def GetDescription(self) -> str: ... + @overload + def GetEnableFlag(self, index:int) -> int: ... + @overload + def GetEnableFlag(self, className:str, subclassName:str) -> int: ... + def GetLibraryPath(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfOverrides(self) -> int: ... + def GetOverrideDescription(self, index:int) -> str: ... + @staticmethod + def GetOverrideInformation(name:str, __b:'vtkOverrideInformationCollection') -> None: ... + @staticmethod + def GetRegisteredFactories() -> 'vtkObjectFactoryCollection': ... + def GetVTKSourceVersion(self) -> str: ... + @overload + def HasOverride(self, className:str) -> int: ... + @overload + def HasOverride(self, className:str, subclassName:str) -> int: ... + @staticmethod + def HasOverrideAny(className:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkObjectFactory': ... + @staticmethod + def ReHash() -> None: ... + @staticmethod + def RegisterFactory(__a:'vtkObjectFactory') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkObjectFactory': ... + @overload + @staticmethod + def SetAllEnableFlags(flag:int, className:str) -> None: ... + @overload + @staticmethod + def SetAllEnableFlags(flag:int, className:str, subclassName:str) -> None: ... + def SetEnableFlag(self, flag:int, className:str, subclassName:str) -> None: ... + @staticmethod + def UnRegisterAllFactories() -> None: ... + @staticmethod + def UnRegisterFactory(__a:'vtkObjectFactory') -> None: ... + +class vtkObjectFactoryCollection(vtkCollection): + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, t:'vtkObjectFactory') -> None: ... + def GetNextItem(self) -> 'vtkObjectFactory': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkObjectFactoryCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkObjectFactoryCollection': ... + +class vtkObjectFactoryRegistryCleanup(object): + def __init__(self) -> None: ... + +class vtkOldStyleCallbackCommand(vtkCommand): + client_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Execute(self, invoker:'vtkObject', eid:int, calldata:Pointer) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOldStyleCallbackCommand': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOldStyleCallbackCommand': ... + def SetClientData(self, cd:Pointer) -> None: ... + +class vtkOverrideInformation(vtkObject): + class_override_name:'getset_descriptor' + class_override_with_name:'getset_descriptor' + description:'getset_descriptor' + object_factory:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetClassOverrideName(self) -> str: ... + def GetClassOverrideWithName(self) -> str: ... + def GetDescription(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetObjectFactory(self) -> 'vtkObjectFactory': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOverrideInformation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOverrideInformation': ... + def SetClassOverrideName(self, _arg:str) -> None: ... + def SetClassOverrideWithName(self, _arg:str) -> None: ... + def SetDescription(self, _arg:str) -> None: ... + +class vtkOverrideInformationCollection(vtkCollection): + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, __a:'vtkOverrideInformation') -> None: ... + def GetNextItem(self) -> 'vtkOverrideInformation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOverrideInformationCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOverrideInformationCollection': ... + +class vtkPoints(vtkObject): + actual_memory_size:'getset_descriptor' + bounds:'getset_descriptor' + data:'getset_descriptor' + data_type:'getset_descriptor' + m_time:'getset_descriptor' + number_of_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, sz:int, ext:int=1000) -> int: ... + def ComputeBounds(self) -> None: ... + def DeepCopy(self, ad:'vtkPoints') -> None: ... + def GetActualMemorySize(self) -> int: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetData(self) -> 'vtkDataArray': ... + def GetDataType(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + @overload + def GetPoint(self, id:int) -> Tuple[float, float, float]: ... + @overload + def GetPoint(self, id:int, x:MutableSequence[float]) -> None: ... + def GetPoints(self, ptId:'vtkIdList', outPoints:'vtkPoints') -> None: ... + def GetVoidPointer(self, id:int) -> Pointer: ... + def Initialize(self) -> None: ... + @overload + def InsertNextPoint(self, x:Sequence[float]) -> int: ... + @overload + def InsertNextPoint(self, x:float, y:float, z:float) -> int: ... + @overload + def InsertPoint(self, id:int, x:Sequence[float]) -> None: ... + @overload + def InsertPoint(self, id:int, x:float, y:float, z:float) -> None: ... + @overload + def InsertPoints(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkPoints') -> None: ... + @overload + def InsertPoints(self, dstStart:int, n:int, srcStart:int, source:'vtkPoints') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Modified(self) -> None: ... + def NewInstance(self) -> 'vtkPoints': ... + def Reset(self) -> None: ... + def Resize(self, numPoints:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPoints': ... + def SetData(self, __a:'vtkDataArray') -> None: ... + def SetDataType(self, dataType:int) -> None: ... + def SetDataTypeToBit(self) -> None: ... + def SetDataTypeToChar(self) -> None: ... + def SetDataTypeToDouble(self) -> None: ... + def SetDataTypeToFloat(self) -> None: ... + def SetDataTypeToInt(self) -> None: ... + def SetDataTypeToLong(self) -> None: ... + def SetDataTypeToShort(self) -> None: ... + def SetDataTypeToUnsignedChar(self) -> None: ... + def SetDataTypeToUnsignedInt(self) -> None: ... + def SetDataTypeToUnsignedLong(self) -> None: ... + def SetDataTypeToUnsignedShort(self) -> None: ... + def SetNumberOfPoints(self, numPoints:int) -> None: ... + @overload + def SetPoint(self, id:int, x:Sequence[float]) -> None: ... + @overload + def SetPoint(self, id:int, x:float, y:float, z:float) -> None: ... + def ShallowCopy(self, ad:'vtkPoints') -> None: ... + def Squeeze(self) -> None: ... + +class vtkPoints2D(vtkObject): + actual_memory_size:'getset_descriptor' + bounds:'getset_descriptor' + data:'getset_descriptor' + data_type:'getset_descriptor' + number_of_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, sz:int, ext:int=1000) -> int: ... + def ComputeBounds(self) -> None: ... + def DeepCopy(self, ad:'vtkPoints2D') -> None: ... + def GetActualMemorySize(self) -> int: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetData(self) -> 'vtkDataArray': ... + def GetDataType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + @overload + def GetPoint(self, id:int) -> Tuple[float, float]: ... + @overload + def GetPoint(self, id:int, x:MutableSequence[float]) -> None: ... + def GetPoints(self, ptId:'vtkIdList', fp:'vtkPoints2D') -> None: ... + def GetVoidPointer(self, id:int) -> Pointer: ... + def Initialize(self) -> None: ... + @overload + def InsertNextPoint(self, x:Sequence[float]) -> int: ... + @overload + def InsertNextPoint(self, x:float, y:float) -> int: ... + @overload + def InsertPoint(self, id:int, x:Sequence[float]) -> None: ... + @overload + def InsertPoint(self, id:int, x:float, y:float) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPoints2D': ... + def RemovePoint(self, id:int) -> None: ... + def Reset(self) -> None: ... + def Resize(self, numPoints:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPoints2D': ... + def SetData(self, __a:'vtkDataArray') -> None: ... + def SetDataType(self, dataType:int) -> None: ... + def SetDataTypeToBit(self) -> None: ... + def SetDataTypeToChar(self) -> None: ... + def SetDataTypeToDouble(self) -> None: ... + def SetDataTypeToFloat(self) -> None: ... + def SetDataTypeToInt(self) -> None: ... + def SetDataTypeToLong(self) -> None: ... + def SetDataTypeToShort(self) -> None: ... + def SetDataTypeToUnsignedChar(self) -> None: ... + def SetDataTypeToUnsignedInt(self) -> None: ... + def SetDataTypeToUnsignedLong(self) -> None: ... + def SetDataTypeToUnsignedShort(self) -> None: ... + def SetNumberOfPoints(self, numPoints:int) -> None: ... + @overload + def SetPoint(self, id:int, x:Sequence[float]) -> None: ... + @overload + def SetPoint(self, id:int, x:float, y:float) -> None: ... + def ShallowCopy(self, ad:'vtkPoints2D') -> None: ... + def Squeeze(self) -> None: ... + +class vtkPriorityQueue(vtkObject): + number_of_items:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, sz:int, ext:int=1000) -> None: ... + def DeleteId(self, id:int) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfItems(self) -> int: ... + def GetPriority(self, id:int) -> float: ... + def Insert(self, priority:float, id:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPriorityQueue': ... + @overload + def Peek(self, location:int, priority:float) -> int: ... + @overload + def Peek(self, location:int=0) -> int: ... + @overload + def Pop(self, location:int, priority:float) -> int: ... + @overload + def Pop(self, location:int=0) -> int: ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPriorityQueue': ... + +class vtkRandomPool(vtkObject): + chunk_size:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_components_max_value:'getset_descriptor' + number_of_components_min_value:'getset_descriptor' + pool:'getset_descriptor' + sequence:'getset_descriptor' + size:'getset_descriptor' + total_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GeneratePool(self) -> Pointer: ... + def GetChunkSize(self) -> int: ... + def GetChunkSizeMaxValue(self) -> int: ... + def GetChunkSizeMinValue(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfComponentsMaxValue(self) -> int: ... + def GetNumberOfComponentsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPool(self) -> Pointer: ... + def GetSequence(self) -> 'vtkRandomSequence': ... + def GetSize(self) -> int: ... + def GetSizeMaxValue(self) -> int: ... + def GetSizeMinValue(self) -> int: ... + def GetTotalSize(self) -> int: ... + @overload + def GetValue(self, i:int) -> float: ... + @overload + def GetValue(self, i:int, compNum:int) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRandomPool': ... + @overload + def PopulateDataArray(self, da:'vtkDataArray', minRange:float, maxRange:float) -> None: ... + @overload + def PopulateDataArray(self, da:'vtkDataArray', compNumber:int, minRange:float, maxRange:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRandomPool': ... + def SetChunkSize(self, _arg:int) -> None: ... + def SetNumberOfComponents(self, _arg:int) -> None: ... + def SetSequence(self, seq:'vtkRandomSequence') -> None: ... + def SetSize(self, _arg:int) -> None: ... + +class vtkReferenceCount(vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkReferenceCount': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkReferenceCount': ... + +class vtkSMPTools(object): + backend:'getset_descriptor' + estimated_default_number_of_threads:'getset_descriptor' + estimated_number_of_threads:'getset_descriptor' + nested_parallelism:'getset_descriptor' + single_thread:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkSMPTools') -> None: ... + @staticmethod + def GetBackend() -> str: ... + @staticmethod + def GetEstimatedDefaultNumberOfThreads() -> int: ... + @staticmethod + def GetEstimatedNumberOfThreads() -> int: ... + @staticmethod + def GetNestedParallelism() -> bool: ... + @staticmethod + def GetSingleThread() -> bool: ... + @staticmethod + def Initialize(numThreads:int=0) -> None: ... + @staticmethod + def IsParallelScope() -> bool: ... + @staticmethod + def SetBackend(backend:str) -> bool: ... + @staticmethod + def SetNestedParallelism(isNested:bool) -> None: ... + +class vtkSOADataArrayTemplate_IaE(vtkGenericDataArray_I23vtkSOADataArrayTemplateIaEaE): + class DeleteMethod(int): ... + VTK_DATA_ARRAY_ALIGNED_FREE:'DeleteMethod' + VTK_DATA_ARRAY_DELETE:'DeleteMethod' + VTK_DATA_ARRAY_FREE:'DeleteMethod' + VTK_DATA_ARRAY_USER_DEFINED:'DeleteMethod' + array_type:'getset_descriptor' + number_of_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExportToVoidPointer(self, ptr:Pointer) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def GetArrayType(self) -> int: ... + def GetComponentArrayPointer(self, comp:int) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedComponent(self, tupleIdx:int, comp:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSOADataArrayTemplate_IaE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSOADataArrayTemplate_IaE': ... + def SetArray(self, comp:int, array:Buffer, size:int, updateMaxId:bool=False, save:bool=False, deleteMethod:int=...) -> None: ... + def SetNumberOfComponents(self, numComps:int) -> None: ... + def SetTypedComponent(self, tupleIdx:int, comp:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def ShallowCopy(self, other:'vtkDataArray') -> None: ... + +class vtkSOADataArrayTemplate_IcE(vtkGenericDataArray_I23vtkSOADataArrayTemplateIcEcE): + class DeleteMethod(int): ... + VTK_DATA_ARRAY_ALIGNED_FREE:'DeleteMethod' + VTK_DATA_ARRAY_DELETE:'DeleteMethod' + VTK_DATA_ARRAY_FREE:'DeleteMethod' + VTK_DATA_ARRAY_USER_DEFINED:'DeleteMethod' + array_type:'getset_descriptor' + number_of_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExportToVoidPointer(self, ptr:Pointer) -> None: ... + def FillTypedComponent(self, compIdx:int, value:str) -> None: ... + def GetArrayType(self) -> int: ... + def GetComponentArrayPointer(self, comp:int) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedComponent(self, tupleIdx:int, comp:int) -> str: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[str]) -> None: ... + def GetValue(self, valueIdx:int) -> str: ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSOADataArrayTemplate_IcE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSOADataArrayTemplate_IcE': ... + def SetArray(self, comp:int, array:Buffer, size:int, updateMaxId:bool=False, save:bool=False, deleteMethod:int=...) -> None: ... + def SetNumberOfComponents(self, numComps:int) -> None: ... + def SetTypedComponent(self, tupleIdx:int, comp:int, value:str) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[str]) -> None: ... + def SetValue(self, valueIdx:int, value:str) -> None: ... + def ShallowCopy(self, other:'vtkDataArray') -> None: ... + +class vtkSOADataArrayTemplate_IdE(vtkGenericDataArray_I23vtkSOADataArrayTemplateIdEdE): + class DeleteMethod(int): ... + VTK_DATA_ARRAY_ALIGNED_FREE:'DeleteMethod' + VTK_DATA_ARRAY_DELETE:'DeleteMethod' + VTK_DATA_ARRAY_FREE:'DeleteMethod' + VTK_DATA_ARRAY_USER_DEFINED:'DeleteMethod' + array_type:'getset_descriptor' + number_of_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExportToVoidPointer(self, ptr:Pointer) -> None: ... + def FillTypedComponent(self, compIdx:int, value:float) -> None: ... + def GetArrayType(self) -> int: ... + def GetComponentArrayPointer(self, comp:int) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedComponent(self, tupleIdx:int, comp:int) -> float: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[float]) -> None: ... + def GetValue(self, valueIdx:int) -> float: ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSOADataArrayTemplate_IdE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSOADataArrayTemplate_IdE': ... + def SetArray(self, comp:int, array:Buffer, size:int, updateMaxId:bool=False, save:bool=False, deleteMethod:int=...) -> None: ... + def SetNumberOfComponents(self, numComps:int) -> None: ... + def SetTypedComponent(self, tupleIdx:int, comp:int, value:float) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def SetValue(self, valueIdx:int, value:float) -> None: ... + def ShallowCopy(self, other:'vtkDataArray') -> None: ... + +class vtkSOADataArrayTemplate_IfE(vtkGenericDataArray_I23vtkSOADataArrayTemplateIfEfE): + class DeleteMethod(int): ... + VTK_DATA_ARRAY_ALIGNED_FREE:'DeleteMethod' + VTK_DATA_ARRAY_DELETE:'DeleteMethod' + VTK_DATA_ARRAY_FREE:'DeleteMethod' + VTK_DATA_ARRAY_USER_DEFINED:'DeleteMethod' + array_type:'getset_descriptor' + number_of_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExportToVoidPointer(self, ptr:Pointer) -> None: ... + def FillTypedComponent(self, compIdx:int, value:float) -> None: ... + def GetArrayType(self) -> int: ... + def GetComponentArrayPointer(self, comp:int) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedComponent(self, tupleIdx:int, comp:int) -> float: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[float]) -> None: ... + def GetValue(self, valueIdx:int) -> float: ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSOADataArrayTemplate_IfE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSOADataArrayTemplate_IfE': ... + def SetArray(self, comp:int, array:Buffer, size:int, updateMaxId:bool=False, save:bool=False, deleteMethod:int=...) -> None: ... + def SetNumberOfComponents(self, numComps:int) -> None: ... + def SetTypedComponent(self, tupleIdx:int, comp:int, value:float) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[float]) -> None: ... + def SetValue(self, valueIdx:int, value:float) -> None: ... + def ShallowCopy(self, other:'vtkDataArray') -> None: ... + +class vtkSOADataArrayTemplate_IhE(vtkGenericDataArray_I23vtkSOADataArrayTemplateIhEhE): + class DeleteMethod(int): ... + VTK_DATA_ARRAY_ALIGNED_FREE:'DeleteMethod' + VTK_DATA_ARRAY_DELETE:'DeleteMethod' + VTK_DATA_ARRAY_FREE:'DeleteMethod' + VTK_DATA_ARRAY_USER_DEFINED:'DeleteMethod' + array_type:'getset_descriptor' + number_of_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExportToVoidPointer(self, ptr:Pointer) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def GetArrayType(self) -> int: ... + def GetComponentArrayPointer(self, comp:int) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedComponent(self, tupleIdx:int, comp:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSOADataArrayTemplate_IhE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSOADataArrayTemplate_IhE': ... + def SetArray(self, comp:int, array:Buffer, size:int, updateMaxId:bool=False, save:bool=False, deleteMethod:int=...) -> None: ... + def SetNumberOfComponents(self, numComps:int) -> None: ... + def SetTypedComponent(self, tupleIdx:int, comp:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def ShallowCopy(self, other:'vtkDataArray') -> None: ... + +class vtkSOADataArrayTemplate_IiE(vtkGenericDataArray_I23vtkSOADataArrayTemplateIiEiE): + class DeleteMethod(int): ... + VTK_DATA_ARRAY_ALIGNED_FREE:'DeleteMethod' + VTK_DATA_ARRAY_DELETE:'DeleteMethod' + VTK_DATA_ARRAY_FREE:'DeleteMethod' + VTK_DATA_ARRAY_USER_DEFINED:'DeleteMethod' + array_type:'getset_descriptor' + number_of_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExportToVoidPointer(self, ptr:Pointer) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def GetArrayType(self) -> int: ... + def GetComponentArrayPointer(self, comp:int) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedComponent(self, tupleIdx:int, comp:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSOADataArrayTemplate_IiE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSOADataArrayTemplate_IiE': ... + def SetArray(self, comp:int, array:Buffer, size:int, updateMaxId:bool=False, save:bool=False, deleteMethod:int=...) -> None: ... + def SetNumberOfComponents(self, numComps:int) -> None: ... + def SetTypedComponent(self, tupleIdx:int, comp:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def ShallowCopy(self, other:'vtkDataArray') -> None: ... + +class vtkSOADataArrayTemplate_IjE(vtkGenericDataArray_I23vtkSOADataArrayTemplateIjEjE): + class DeleteMethod(int): ... + VTK_DATA_ARRAY_ALIGNED_FREE:'DeleteMethod' + VTK_DATA_ARRAY_DELETE:'DeleteMethod' + VTK_DATA_ARRAY_FREE:'DeleteMethod' + VTK_DATA_ARRAY_USER_DEFINED:'DeleteMethod' + array_type:'getset_descriptor' + number_of_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExportToVoidPointer(self, ptr:Pointer) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def GetArrayType(self) -> int: ... + def GetComponentArrayPointer(self, comp:int) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedComponent(self, tupleIdx:int, comp:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSOADataArrayTemplate_IjE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSOADataArrayTemplate_IjE': ... + def SetArray(self, comp:int, array:Buffer, size:int, updateMaxId:bool=False, save:bool=False, deleteMethod:int=...) -> None: ... + def SetNumberOfComponents(self, numComps:int) -> None: ... + def SetTypedComponent(self, tupleIdx:int, comp:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def ShallowCopy(self, other:'vtkDataArray') -> None: ... + +class vtkSOADataArrayTemplate_IlE(vtkGenericDataArray_I23vtkSOADataArrayTemplateIlElE): + class DeleteMethod(int): ... + VTK_DATA_ARRAY_ALIGNED_FREE:'DeleteMethod' + VTK_DATA_ARRAY_DELETE:'DeleteMethod' + VTK_DATA_ARRAY_FREE:'DeleteMethod' + VTK_DATA_ARRAY_USER_DEFINED:'DeleteMethod' + array_type:'getset_descriptor' + number_of_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExportToVoidPointer(self, ptr:Pointer) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def GetArrayType(self) -> int: ... + def GetComponentArrayPointer(self, comp:int) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedComponent(self, tupleIdx:int, comp:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSOADataArrayTemplate_IlE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSOADataArrayTemplate_IlE': ... + def SetArray(self, comp:int, array:Buffer, size:int, updateMaxId:bool=False, save:bool=False, deleteMethod:int=...) -> None: ... + def SetNumberOfComponents(self, numComps:int) -> None: ... + def SetTypedComponent(self, tupleIdx:int, comp:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def ShallowCopy(self, other:'vtkDataArray') -> None: ... + +class vtkSOADataArrayTemplate_ImE(vtkGenericDataArray_I23vtkSOADataArrayTemplateImEmE): + class DeleteMethod(int): ... + VTK_DATA_ARRAY_ALIGNED_FREE:'DeleteMethod' + VTK_DATA_ARRAY_DELETE:'DeleteMethod' + VTK_DATA_ARRAY_FREE:'DeleteMethod' + VTK_DATA_ARRAY_USER_DEFINED:'DeleteMethod' + array_type:'getset_descriptor' + number_of_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExportToVoidPointer(self, ptr:Pointer) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def GetArrayType(self) -> int: ... + def GetComponentArrayPointer(self, comp:int) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedComponent(self, tupleIdx:int, comp:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSOADataArrayTemplate_ImE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSOADataArrayTemplate_ImE': ... + def SetArray(self, comp:int, array:Buffer, size:int, updateMaxId:bool=False, save:bool=False, deleteMethod:int=...) -> None: ... + def SetNumberOfComponents(self, numComps:int) -> None: ... + def SetTypedComponent(self, tupleIdx:int, comp:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def ShallowCopy(self, other:'vtkDataArray') -> None: ... + +class vtkSOADataArrayTemplate_IsE(vtkGenericDataArray_I23vtkSOADataArrayTemplateIsEsE): + class DeleteMethod(int): ... + VTK_DATA_ARRAY_ALIGNED_FREE:'DeleteMethod' + VTK_DATA_ARRAY_DELETE:'DeleteMethod' + VTK_DATA_ARRAY_FREE:'DeleteMethod' + VTK_DATA_ARRAY_USER_DEFINED:'DeleteMethod' + array_type:'getset_descriptor' + number_of_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExportToVoidPointer(self, ptr:Pointer) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def GetArrayType(self) -> int: ... + def GetComponentArrayPointer(self, comp:int) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedComponent(self, tupleIdx:int, comp:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSOADataArrayTemplate_IsE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSOADataArrayTemplate_IsE': ... + def SetArray(self, comp:int, array:Buffer, size:int, updateMaxId:bool=False, save:bool=False, deleteMethod:int=...) -> None: ... + def SetNumberOfComponents(self, numComps:int) -> None: ... + def SetTypedComponent(self, tupleIdx:int, comp:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def ShallowCopy(self, other:'vtkDataArray') -> None: ... + +class vtkSOADataArrayTemplate_ItE(vtkGenericDataArray_I23vtkSOADataArrayTemplateItEtE): + class DeleteMethod(int): ... + VTK_DATA_ARRAY_ALIGNED_FREE:'DeleteMethod' + VTK_DATA_ARRAY_DELETE:'DeleteMethod' + VTK_DATA_ARRAY_FREE:'DeleteMethod' + VTK_DATA_ARRAY_USER_DEFINED:'DeleteMethod' + array_type:'getset_descriptor' + number_of_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExportToVoidPointer(self, ptr:Pointer) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def GetArrayType(self) -> int: ... + def GetComponentArrayPointer(self, comp:int) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedComponent(self, tupleIdx:int, comp:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSOADataArrayTemplate_ItE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSOADataArrayTemplate_ItE': ... + def SetArray(self, comp:int, array:Buffer, size:int, updateMaxId:bool=False, save:bool=False, deleteMethod:int=...) -> None: ... + def SetNumberOfComponents(self, numComps:int) -> None: ... + def SetTypedComponent(self, tupleIdx:int, comp:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def ShallowCopy(self, other:'vtkDataArray') -> None: ... + +class vtkSOADataArrayTemplate_IxE(vtkGenericDataArray_I23vtkSOADataArrayTemplateIxExE): + class DeleteMethod(int): ... + VTK_DATA_ARRAY_ALIGNED_FREE:'DeleteMethod' + VTK_DATA_ARRAY_DELETE:'DeleteMethod' + VTK_DATA_ARRAY_FREE:'DeleteMethod' + VTK_DATA_ARRAY_USER_DEFINED:'DeleteMethod' + array_type:'getset_descriptor' + number_of_components:'getset_descriptor' + value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExportToVoidPointer(self, ptr:Pointer) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def GetArrayType(self) -> int: ... + def GetComponentArrayPointer(self, comp:int) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedComponent(self, tupleIdx:int, comp:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSOADataArrayTemplate_IxE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSOADataArrayTemplate_IxE': ... + def SetArray(self, comp:int, array:Buffer, size:int, updateMaxId:bool=False, save:bool=False, deleteMethod:int=...) -> None: ... + def SetNumberOfComponents(self, numComps:int) -> None: ... + def SetTypedComponent(self, tupleIdx:int, comp:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def ShallowCopy(self, other:'vtkDataArray') -> None: ... + +class vtkSOADataArrayTemplate_IyE(vtkGenericDataArray_I23vtkSOADataArrayTemplateIyEyE): + class DeleteMethod(int): ... + VTK_DATA_ARRAY_ALIGNED_FREE:'DeleteMethod' + VTK_DATA_ARRAY_DELETE:'DeleteMethod' + VTK_DATA_ARRAY_FREE:'DeleteMethod' + VTK_DATA_ARRAY_USER_DEFINED:'DeleteMethod' + array_type:'getset_descriptor' + number_of_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExportToVoidPointer(self, ptr:Pointer) -> None: ... + def FillTypedComponent(self, compIdx:int, value:int) -> None: ... + def GetArrayType(self) -> int: ... + def GetComponentArrayPointer(self, comp:int) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTypedComponent(self, tupleIdx:int, comp:int) -> int: ... + def GetTypedTuple(self, tupleIdx:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, valueIdx:int) -> int: ... + def GetVoidPointer(self, valueIdx:int) -> Pointer: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSOADataArrayTemplate_IyE': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSOADataArrayTemplate_IyE': ... + def SetArray(self, comp:int, array:Buffer, size:int, updateMaxId:bool=False, save:bool=False, deleteMethod:int=...) -> None: ... + def SetNumberOfComponents(self, numComps:int) -> None: ... + def SetTypedComponent(self, tupleIdx:int, comp:int, value:int) -> None: ... + def SetTypedTuple(self, tupleIdx:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, valueIdx:int, value:int) -> None: ... + def ShallowCopy(self, other:'vtkDataArray') -> None: ... + +class vtkSerializer(vtkObject): + context:'getset_descriptor' + serializer_log_verbosity:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetContext(self) -> 'vtkMarshalContext': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSerializerLogVerbosity(self) -> vtkLogger.Verbosity: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSerializer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSerializer': ... + def SetContext(self, _arg:'vtkMarshalContext') -> None: ... + def SetSerializerLogVerbosity(self, verbosity:vtkLogger.Verbosity) -> None: ... + +class vtkShortArray(vtkDataArray): + data_type:'getset_descriptor' + data_type_value_max:'getset_descriptor' + data_type_value_min:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkShortArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkShortArray': ... + def GetDataType(self) -> int: ... + @staticmethod + def GetDataTypeValueMax() -> int: ... + @staticmethod + def GetDataTypeValueMin() -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, id:int) -> Pointer: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def InsertNextTypedTuple(self, tuple:Sequence[int]) -> int: ... + def InsertNextValue(self, f:int) -> int: ... + def InsertTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def InsertValue(self, id:int, f:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkShortArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkShortArray': ... + @overload + def SetArray(self, array:Buffer, size:int, save:int) -> None: ... + @overload + def SetArray(self, array:Buffer, size:int, save:int, deleteMethod:int) -> None: ... + def SetNumberOfValues(self, number:int) -> bool: ... + def SetTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, id:int, value:int) -> None: ... + def WritePointer(self, id:int, number:int) -> Pointer: ... + +class vtkSignedCharArray(vtkDataArray): + data_type:'getset_descriptor' + data_type_value_max:'getset_descriptor' + data_type_value_min:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkSignedCharArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkSignedCharArray': ... + def GetDataType(self) -> int: ... + @staticmethod + def GetDataTypeValueMax() -> int: ... + @staticmethod + def GetDataTypeValueMin() -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, id:int) -> Pointer: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def InsertNextTypedTuple(self, tuple:Sequence[int]) -> int: ... + def InsertNextValue(self, f:int) -> int: ... + def InsertTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def InsertValue(self, id:int, f:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSignedCharArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSignedCharArray': ... + @overload + def SetArray(self, array:Buffer, size:int, save:int) -> None: ... + @overload + def SetArray(self, array:Buffer, size:int, save:int, deleteMethod:int) -> None: ... + def SetNumberOfValues(self, number:int) -> bool: ... + def SetTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, id:int, value:int) -> None: ... + def WritePointer(self, id:int, number:int) -> Pointer: ... + +class vtkSmartPointerBase(object): + pointer:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, r:'vtkObjectBase') -> None: ... + @overload + def __init__(self, r:'vtkSmartPointerBase') -> None: ... + def GetPointer(self) -> 'vtkObjectBase': ... + def Report(self, collector:'vtkGarbageCollector', desc:str) -> None: ... + +class vtkSortDataArray(vtkObject): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def GenerateSortIndices(dataType:int, dataIn:Pointer, numKeys:int, numComp:int, k:int, idx:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def InitializeSortIndices(numKeys:int) -> Pointer: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSortDataArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSortDataArray': ... + @staticmethod + def ShuffleArray(idx:MutableSequence[int], dataType:int, numKeys:int, numComp:int, arr:'vtkAbstractArray', dataIn:Pointer, dir:int) -> None: ... + @staticmethod + def ShuffleIdList(idx:MutableSequence[int], sze:int, arrayIn:'vtkIdList', dataIn:MutableSequence[int], dir:int) -> None: ... + @overload + @staticmethod + def Sort(keys:'vtkIdList') -> None: ... + @overload + @staticmethod + def Sort(keys:'vtkAbstractArray') -> None: ... + @overload + @staticmethod + def Sort(keys:'vtkIdList', dir:int) -> None: ... + @overload + @staticmethod + def Sort(keys:'vtkAbstractArray', dir:int) -> None: ... + @overload + @staticmethod + def Sort(keys:'vtkAbstractArray', values:'vtkAbstractArray') -> None: ... + @overload + @staticmethod + def Sort(keys:'vtkAbstractArray', values:'vtkIdList') -> None: ... + @overload + @staticmethod + def Sort(keys:'vtkAbstractArray', values:'vtkAbstractArray', dir:int) -> None: ... + @overload + @staticmethod + def Sort(keys:'vtkAbstractArray', values:'vtkIdList', dir:int) -> None: ... + @overload + @staticmethod + def SortArrayByComponent(arr:'vtkAbstractArray', k:int) -> None: ... + @overload + @staticmethod + def SortArrayByComponent(arr:'vtkAbstractArray', k:int, dir:int) -> None: ... + +class vtkSparseArray_I10vtkVariantE(vtkTypedArray_I10vtkVariantE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + null_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def AddValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def AddValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + @overload + def AddValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + def Clear(self) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def GetCoordinateStorage(self, dimension:int) -> Pointer: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNullValue(self) -> 'vtkVariant': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUniqueCoordinates(self, dimension:int) -> Tuple[int, int]: ... + @overload + def GetValue(self, i:int) -> 'vtkVariant': ... + @overload + def GetValue(self, i:int, j:int) -> 'vtkVariant': ... + @overload + def GetValue(self, i:int, j:int, k:int) -> 'vtkVariant': ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> 'vtkVariant': ... + def GetValueN(self, n:int) -> 'vtkVariant': ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSparseArray_I10vtkVariantE': ... + def ReserveStorage(self, value_count:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSparseArray_I10vtkVariantE': ... + def SetExtents(self, extents:'vtkArrayExtents') -> None: ... + def SetExtentsFromContents(self) -> None: ... + def SetNullValue(self, value:'vtkVariant') -> None: ... + @overload + def SetValue(self, i:int, value:'vtkVariant') -> None: ... + @overload + def SetValue(self, i:int, j:int, value:'vtkVariant') -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:'vtkVariant') -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:'vtkVariant') -> None: ... + def SetValueN(self, n:int, value:'vtkVariant') -> None: ... + def Sort(self, sort:'vtkArraySort') -> None: ... + def Validate(self) -> bool: ... + +class vtkSparseArray_I12vtkStdStringE(vtkTypedArray_I12vtkStdStringE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + null_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddValue(self, i:int, value:str) -> None: ... + @overload + def AddValue(self, i:int, j:int, value:str) -> None: ... + @overload + def AddValue(self, i:int, j:int, k:int, value:str) -> None: ... + @overload + def AddValue(self, coordinates:'vtkArrayCoordinates', value:str) -> None: ... + def Clear(self) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def GetCoordinateStorage(self, dimension:int) -> Pointer: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNullValue(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUniqueCoordinates(self, dimension:int) -> Tuple[int, int]: ... + @overload + def GetValue(self, i:int) -> str: ... + @overload + def GetValue(self, i:int, j:int) -> str: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> str: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> str: ... + def GetValueN(self, n:int) -> str: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSparseArray_I12vtkStdStringE': ... + def ReserveStorage(self, value_count:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSparseArray_I12vtkStdStringE': ... + def SetExtents(self, extents:'vtkArrayExtents') -> None: ... + def SetExtentsFromContents(self) -> None: ... + def SetNullValue(self, value:str) -> None: ... + @overload + def SetValue(self, i:int, value:str) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:str) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:str) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:str) -> None: ... + def SetValueN(self, n:int, value:str) -> None: ... + def Sort(self, sort:'vtkArraySort') -> None: ... + def Validate(self) -> bool: ... + +class vtkSparseArray_IaE(vtkTypedArray_IaE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + null_value:'getset_descriptor' + value_storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddValue(self, i:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def AddValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def Clear(self) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def GetCoordinateStorage(self, dimension:int) -> Pointer: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNullValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUniqueCoordinates(self, dimension:int) -> Tuple[int, int]: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def GetValueStorage(self) -> Pointer: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSparseArray_IaE': ... + def ReserveStorage(self, value_count:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSparseArray_IaE': ... + def SetExtents(self, extents:'vtkArrayExtents') -> None: ... + def SetExtentsFromContents(self) -> None: ... + def SetNullValue(self, value:int) -> None: ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + def Sort(self, sort:'vtkArraySort') -> None: ... + def Validate(self) -> bool: ... + +class vtkSparseArray_IcE(vtkTypedArray_IcE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + null_value:'getset_descriptor' + value_storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddValue(self, i:int, value:str) -> None: ... + @overload + def AddValue(self, i:int, j:int, value:str) -> None: ... + @overload + def AddValue(self, i:int, j:int, k:int, value:str) -> None: ... + @overload + def AddValue(self, coordinates:'vtkArrayCoordinates', value:str) -> None: ... + def Clear(self) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def GetCoordinateStorage(self, dimension:int) -> Pointer: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNullValue(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUniqueCoordinates(self, dimension:int) -> Tuple[int, int]: ... + @overload + def GetValue(self, i:int) -> str: ... + @overload + def GetValue(self, i:int, j:int) -> str: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> str: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> str: ... + def GetValueN(self, n:int) -> str: ... + def GetValueStorage(self) -> str: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSparseArray_IcE': ... + def ReserveStorage(self, value_count:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSparseArray_IcE': ... + def SetExtents(self, extents:'vtkArrayExtents') -> None: ... + def SetExtentsFromContents(self) -> None: ... + def SetNullValue(self, value:str) -> None: ... + @overload + def SetValue(self, i:int, value:str) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:str) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:str) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:str) -> None: ... + def SetValueN(self, n:int, value:str) -> None: ... + def Sort(self, sort:'vtkArraySort') -> None: ... + def Validate(self) -> bool: ... + +class vtkSparseArray_IdE(vtkTypedArray_IdE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + null_value:'getset_descriptor' + value_storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddValue(self, i:int, value:float) -> None: ... + @overload + def AddValue(self, i:int, j:int, value:float) -> None: ... + @overload + def AddValue(self, i:int, j:int, k:int, value:float) -> None: ... + @overload + def AddValue(self, coordinates:'vtkArrayCoordinates', value:float) -> None: ... + def Clear(self) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def GetCoordinateStorage(self, dimension:int) -> Pointer: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNullValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUniqueCoordinates(self, dimension:int) -> Tuple[int, int]: ... + @overload + def GetValue(self, i:int) -> float: ... + @overload + def GetValue(self, i:int, j:int) -> float: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> float: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> float: ... + def GetValueN(self, n:int) -> float: ... + def GetValueStorage(self) -> Pointer: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSparseArray_IdE': ... + def ReserveStorage(self, value_count:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSparseArray_IdE': ... + def SetExtents(self, extents:'vtkArrayExtents') -> None: ... + def SetExtentsFromContents(self) -> None: ... + def SetNullValue(self, value:float) -> None: ... + @overload + def SetValue(self, i:int, value:float) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:float) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:float) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:float) -> None: ... + def SetValueN(self, n:int, value:float) -> None: ... + def Sort(self, sort:'vtkArraySort') -> None: ... + def Validate(self) -> bool: ... + +class vtkSparseArray_IfE(vtkTypedArray_IfE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + null_value:'getset_descriptor' + value_storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddValue(self, i:int, value:float) -> None: ... + @overload + def AddValue(self, i:int, j:int, value:float) -> None: ... + @overload + def AddValue(self, i:int, j:int, k:int, value:float) -> None: ... + @overload + def AddValue(self, coordinates:'vtkArrayCoordinates', value:float) -> None: ... + def Clear(self) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def GetCoordinateStorage(self, dimension:int) -> Pointer: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNullValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUniqueCoordinates(self, dimension:int) -> Tuple[int, int]: ... + @overload + def GetValue(self, i:int) -> float: ... + @overload + def GetValue(self, i:int, j:int) -> float: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> float: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> float: ... + def GetValueN(self, n:int) -> float: ... + def GetValueStorage(self) -> Pointer: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSparseArray_IfE': ... + def ReserveStorage(self, value_count:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSparseArray_IfE': ... + def SetExtents(self, extents:'vtkArrayExtents') -> None: ... + def SetExtentsFromContents(self) -> None: ... + def SetNullValue(self, value:float) -> None: ... + @overload + def SetValue(self, i:int, value:float) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:float) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:float) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:float) -> None: ... + def SetValueN(self, n:int, value:float) -> None: ... + def Sort(self, sort:'vtkArraySort') -> None: ... + def Validate(self) -> bool: ... + +class vtkSparseArray_IhE(vtkTypedArray_IhE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + null_value:'getset_descriptor' + value_storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddValue(self, i:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def AddValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def Clear(self) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def GetCoordinateStorage(self, dimension:int) -> Pointer: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNullValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUniqueCoordinates(self, dimension:int) -> Tuple[int, int]: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def GetValueStorage(self) -> Pointer: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSparseArray_IhE': ... + def ReserveStorage(self, value_count:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSparseArray_IhE': ... + def SetExtents(self, extents:'vtkArrayExtents') -> None: ... + def SetExtentsFromContents(self) -> None: ... + def SetNullValue(self, value:int) -> None: ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + def Sort(self, sort:'vtkArraySort') -> None: ... + def Validate(self) -> bool: ... + +class vtkSparseArray_IiE(vtkTypedArray_IiE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + null_value:'getset_descriptor' + value_storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddValue(self, i:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def AddValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def Clear(self) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def GetCoordinateStorage(self, dimension:int) -> Pointer: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNullValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUniqueCoordinates(self, dimension:int) -> Tuple[int, int]: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def GetValueStorage(self) -> Pointer: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSparseArray_IiE': ... + def ReserveStorage(self, value_count:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSparseArray_IiE': ... + def SetExtents(self, extents:'vtkArrayExtents') -> None: ... + def SetExtentsFromContents(self) -> None: ... + def SetNullValue(self, value:int) -> None: ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + def Sort(self, sort:'vtkArraySort') -> None: ... + def Validate(self) -> bool: ... + +class vtkSparseArray_IjE(vtkTypedArray_IjE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + null_value:'getset_descriptor' + value_storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddValue(self, i:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def AddValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def Clear(self) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def GetCoordinateStorage(self, dimension:int) -> Pointer: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNullValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUniqueCoordinates(self, dimension:int) -> Tuple[int, int]: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def GetValueStorage(self) -> Pointer: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSparseArray_IjE': ... + def ReserveStorage(self, value_count:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSparseArray_IjE': ... + def SetExtents(self, extents:'vtkArrayExtents') -> None: ... + def SetExtentsFromContents(self) -> None: ... + def SetNullValue(self, value:int) -> None: ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + def Sort(self, sort:'vtkArraySort') -> None: ... + def Validate(self) -> bool: ... + +class vtkSparseArray_IlE(vtkTypedArray_IlE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + null_value:'getset_descriptor' + value_storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddValue(self, i:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def AddValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def Clear(self) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def GetCoordinateStorage(self, dimension:int) -> Pointer: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNullValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUniqueCoordinates(self, dimension:int) -> Tuple[int, int]: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def GetValueStorage(self) -> Pointer: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSparseArray_IlE': ... + def ReserveStorage(self, value_count:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSparseArray_IlE': ... + def SetExtents(self, extents:'vtkArrayExtents') -> None: ... + def SetExtentsFromContents(self) -> None: ... + def SetNullValue(self, value:int) -> None: ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + def Sort(self, sort:'vtkArraySort') -> None: ... + def Validate(self) -> bool: ... + +class vtkSparseArray_ImE(vtkTypedArray_ImE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + null_value:'getset_descriptor' + value_storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddValue(self, i:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def AddValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def Clear(self) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def GetCoordinateStorage(self, dimension:int) -> Pointer: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNullValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUniqueCoordinates(self, dimension:int) -> Tuple[int, int]: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def GetValueStorage(self) -> Pointer: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSparseArray_ImE': ... + def ReserveStorage(self, value_count:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSparseArray_ImE': ... + def SetExtents(self, extents:'vtkArrayExtents') -> None: ... + def SetExtentsFromContents(self) -> None: ... + def SetNullValue(self, value:int) -> None: ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + def Sort(self, sort:'vtkArraySort') -> None: ... + def Validate(self) -> bool: ... + +class vtkSparseArray_IsE(vtkTypedArray_IsE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + null_value:'getset_descriptor' + value_storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddValue(self, i:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def AddValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def Clear(self) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def GetCoordinateStorage(self, dimension:int) -> Pointer: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNullValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUniqueCoordinates(self, dimension:int) -> Tuple[int, int]: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def GetValueStorage(self) -> Pointer: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSparseArray_IsE': ... + def ReserveStorage(self, value_count:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSparseArray_IsE': ... + def SetExtents(self, extents:'vtkArrayExtents') -> None: ... + def SetExtentsFromContents(self) -> None: ... + def SetNullValue(self, value:int) -> None: ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + def Sort(self, sort:'vtkArraySort') -> None: ... + def Validate(self) -> bool: ... + +class vtkSparseArray_ItE(vtkTypedArray_ItE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + null_value:'getset_descriptor' + value_storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddValue(self, i:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def AddValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def Clear(self) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def GetCoordinateStorage(self, dimension:int) -> Pointer: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNullValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUniqueCoordinates(self, dimension:int) -> Tuple[int, int]: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def GetValueStorage(self) -> Pointer: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSparseArray_ItE': ... + def ReserveStorage(self, value_count:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSparseArray_ItE': ... + def SetExtents(self, extents:'vtkArrayExtents') -> None: ... + def SetExtentsFromContents(self) -> None: ... + def SetNullValue(self, value:int) -> None: ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + def Sort(self, sort:'vtkArraySort') -> None: ... + def Validate(self) -> bool: ... + +class vtkSparseArray_IxE(vtkTypedArray_IxE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + null_value:'getset_descriptor' + value_storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddValue(self, i:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def AddValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def Clear(self) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def GetCoordinateStorage(self, dimension:int) -> Pointer: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNullValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUniqueCoordinates(self, dimension:int) -> Tuple[int, int]: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def GetValueStorage(self) -> Pointer: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSparseArray_IxE': ... + def ReserveStorage(self, value_count:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSparseArray_IxE': ... + def SetExtents(self, extents:'vtkArrayExtents') -> None: ... + def SetExtentsFromContents(self) -> None: ... + def SetNullValue(self, value:int) -> None: ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + def Sort(self, sort:'vtkArraySort') -> None: ... + def Validate(self) -> bool: ... + +class vtkSparseArray_IyE(vtkTypedArray_IyE): + extents:'getset_descriptor' + non_null_size:'getset_descriptor' + null_value:'getset_descriptor' + value_storage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddValue(self, i:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, value:int) -> None: ... + @overload + def AddValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def AddValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def Clear(self) -> None: ... + def DeepCopy(self) -> 'vtkArray': ... + def GetCoordinateStorage(self, dimension:int) -> Pointer: ... + def GetCoordinatesN(self, n:int, coordinates:'vtkArrayCoordinates') -> None: ... + def GetExtents(self) -> 'vtkArrayExtents': ... + def GetNonNullSize(self) -> int: ... + def GetNullValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUniqueCoordinates(self, dimension:int) -> Tuple[int, int]: ... + @overload + def GetValue(self, i:int) -> int: ... + @overload + def GetValue(self, i:int, j:int) -> int: ... + @overload + def GetValue(self, i:int, j:int, k:int) -> int: ... + @overload + def GetValue(self, coordinates:'vtkArrayCoordinates') -> int: ... + def GetValueN(self, n:int) -> int: ... + def GetValueStorage(self) -> Pointer: ... + def IsA(self, type:str) -> int: ... + def IsDense(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSparseArray_IyE': ... + def ReserveStorage(self, value_count:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSparseArray_IyE': ... + def SetExtents(self, extents:'vtkArrayExtents') -> None: ... + def SetExtentsFromContents(self) -> None: ... + def SetNullValue(self, value:int) -> None: ... + @overload + def SetValue(self, i:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, value:int) -> None: ... + @overload + def SetValue(self, i:int, j:int, k:int, value:int) -> None: ... + @overload + def SetValue(self, coordinates:'vtkArrayCoordinates', value:int) -> None: ... + def SetValueN(self, n:int, value:int) -> None: ... + def Sort(self, sort:'vtkArraySort') -> None: ... + def Validate(self) -> bool: ... + +class vtkStdString(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, s:str) -> None: ... + @overload + def __init__(self, __a:'vtkStdString') -> None: ... + +class vtkStringArray(vtkAbstractArray): + class DeleteMethod(int): ... + VTK_DATA_ARRAY_ALIGNED_FREE:'DeleteMethod' + VTK_DATA_ARRAY_DELETE:'DeleteMethod' + VTK_DATA_ARRAY_FREE:'DeleteMethod' + VTK_DATA_ARRAY_USER_DEFINED:'DeleteMethod' + actual_memory_size:'getset_descriptor' + data_size:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + element_component_size:'getset_descriptor' + number_of_element_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + number_of_values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, sz:int, ext:int=1000) -> int: ... + def ClearLookup(self) -> None: ... + def DataChanged(self) -> None: ... + def DataElementChanged(self, id:int) -> None: ... + def DeepCopy(self, aa:'vtkAbstractArray') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkStringArray': ... + def GetActualMemorySize(self) -> int: ... + def GetDataSize(self) -> int: ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetElementComponentSize(self) -> int: ... + def GetNumberOfElementComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfValues(self) -> int: ... + @overload + def GetTuples(self, ptIds:'vtkIdList', output:'vtkAbstractArray') -> None: ... + @overload + def GetTuples(self, p1:int, p2:int, output:'vtkAbstractArray') -> None: ... + def GetValue(self, id:int) -> str: ... + def GetVoidPointer(self, id:int) -> Pointer: ... + def Initialize(self) -> None: ... + def InsertNextTuple(self, j:int, source:'vtkAbstractArray') -> int: ... + def InsertNextValue(self, f:str) -> int: ... + def InsertTuple(self, i:int, j:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertValue(self, id:int, f:str) -> None: ... + def InsertVariantValue(self, idx:int, value:'vtkVariant') -> None: ... + @overload + def InterpolateTuple(self, i:int, ptIndices:'vtkIdList', source:'vtkAbstractArray', weights:MutableSequence[float]) -> None: ... + @overload + def InterpolateTuple(self, i:int, id1:int, source1:'vtkAbstractArray', id2:int, source2:'vtkAbstractArray', t:float) -> None: ... + def IsA(self, type:str) -> int: ... + def IsNumeric(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LookupValue(self, value:'vtkVariant') -> int: ... + @overload + def LookupValue(self, value:'vtkVariant', ids:'vtkIdList') -> None: ... + @overload + def LookupValue(self, value:str) -> int: ... + @overload + def LookupValue(self, value:str, ids:'vtkIdList') -> None: ... + def NewInstance(self) -> 'vtkStringArray': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + def Resize(self, numTuples:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStringArray': ... + def SetNumberOfTuples(self, number:int) -> None: ... + def SetTuple(self, i:int, j:int, source:'vtkAbstractArray') -> None: ... + def SetValue(self, id:int, value:str) -> None: ... + def SetVariantValue(self, idx:int, value:'vtkVariant') -> None: ... + @overload + def SetVoidArray(self, array:Pointer, size:int, save:int) -> None: ... + @overload + def SetVoidArray(self, array:Pointer, size:int, save:int, deleteMethod:int) -> None: ... + def Squeeze(self) -> None: ... + +class vtkStringOutputWindow(vtkOutputWindow): + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DisplayText(self, __a:str) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutput(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStringOutputWindow': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStringOutputWindow': ... + +class vtkStringToken(object): + hash:'getset_descriptor' + @overload + def __init__(self, data:str) -> None: ... + @overload + def __init__(self, __a:'vtkStringToken') -> None: ... + def AddChild(self, member:'vtkStringToken') -> bool: ... + def Data(self) -> str: ... + def GetHash(self) -> int: ... + def HasData(self) -> bool: ... + def IsValid(self) -> bool: ... + def RemoveChild(self, member:'vtkStringToken') -> bool: ... + +class vtkTimePointUtility(vtkObject): + ISO8601_DATE:int + ISO8601_DATETIME:int + ISO8601_DATETIME_MILLIS:int + ISO8601_TIME:int + ISO8601_TIME_MILLIS:int + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def DateTimeToTimePoint(year:int, month:int, day:int, hour:int, minute:int, sec:int, millis:int=0) -> int: ... + @staticmethod + def DateToTimePoint(year:int, month:int, day:int) -> int: ... + @staticmethod + def GetDate(time:int, year:int, month:int, day:int) -> None: ... + @staticmethod + def GetDateTime(time:int, year:int, month:int, day:int, hour:int, minute:int, second:int, millis:int) -> None: ... + @staticmethod + def GetDay(time:int) -> int: ... + @staticmethod + def GetHour(time:int) -> int: ... + @staticmethod + def GetMillisecond(time:int) -> int: ... + @staticmethod + def GetMinute(time:int) -> int: ... + @staticmethod + def GetMonth(time:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GetSecond(time:int) -> int: ... + @staticmethod + def GetTime(time:int, hour:int, minute:int, second:int, millis:int) -> None: ... + @staticmethod + def GetYear(time:int) -> int: ... + @staticmethod + def ISO8601ToTimePoint(str:str, ok:MutableSequence[bool]=...) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTimePointUtility': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTimePointUtility': ... + @staticmethod + def TimePointToISO8601(__a:int, format:int=...) -> str: ... + @staticmethod + def TimeToTimePoint(hour:int, minute:int, second:int, millis:int=0) -> int: ... + +class vtkTimeStamp(object): + m_time:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkTimeStamp') -> None: ... + def GetMTime(self) -> int: ... + def Modified(self) -> None: ... + +class vtkTypeFloat32Array(vtkFloatArray): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkTypeFloat32Array': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypeFloat32Array': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypeFloat32Array': ... + +class vtkTypeFloat64Array(vtkDoubleArray): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkTypeFloat64Array': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypeFloat64Array': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypeFloat64Array': ... + +class vtkTypeInt16Array(vtkShortArray): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkTypeInt16Array': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypeInt16Array': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypeInt16Array': ... + +class vtkTypeInt32Array(vtkIntArray): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkTypeInt32Array': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypeInt32Array': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypeInt32Array': ... + +class vtkTypeInt64Array(vtkLongLongArray): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkTypeInt64Array': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypeInt64Array': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypeInt64Array': ... + +class vtkTypeInt8Array(vtkSignedCharArray): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkTypeInt8Array': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypeInt8Array': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypeInt8Array': ... + +class vtkUnsignedShortArray(vtkDataArray): + data_type:'getset_descriptor' + data_type_value_max:'getset_descriptor' + data_type_value_min:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkUnsignedShortArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkUnsignedShortArray': ... + def GetDataType(self) -> int: ... + @staticmethod + def GetDataTypeValueMax() -> int: ... + @staticmethod + def GetDataTypeValueMin() -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, id:int) -> Pointer: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def InsertNextTypedTuple(self, tuple:Sequence[int]) -> int: ... + def InsertNextValue(self, f:int) -> int: ... + def InsertTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def InsertValue(self, id:int, f:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnsignedShortArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnsignedShortArray': ... + @overload + def SetArray(self, array:Buffer, size:int, save:int) -> None: ... + @overload + def SetArray(self, array:Buffer, size:int, save:int, deleteMethod:int) -> None: ... + def SetNumberOfValues(self, number:int) -> bool: ... + def SetTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, id:int, value:int) -> None: ... + def WritePointer(self, id:int, number:int) -> Pointer: ... + +class vtkTypeUInt16Array(vtkUnsignedShortArray): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkTypeUInt16Array': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypeUInt16Array': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypeUInt16Array': ... + +class vtkUnsignedIntArray(vtkDataArray): + data_type:'getset_descriptor' + data_type_value_max:'getset_descriptor' + data_type_value_min:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkUnsignedIntArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkUnsignedIntArray': ... + def GetDataType(self) -> int: ... + @staticmethod + def GetDataTypeValueMax() -> int: ... + @staticmethod + def GetDataTypeValueMin() -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, id:int) -> Pointer: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def InsertNextTypedTuple(self, tuple:Sequence[int]) -> int: ... + def InsertNextValue(self, f:int) -> int: ... + def InsertTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def InsertValue(self, id:int, f:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnsignedIntArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnsignedIntArray': ... + @overload + def SetArray(self, array:Buffer, size:int, save:int) -> None: ... + @overload + def SetArray(self, array:Buffer, size:int, save:int, deleteMethod:int) -> None: ... + def SetNumberOfValues(self, number:int) -> bool: ... + def SetTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, id:int, value:int) -> None: ... + def WritePointer(self, id:int, number:int) -> Pointer: ... + +class vtkTypeUInt32Array(vtkUnsignedIntArray): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkTypeUInt32Array': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypeUInt32Array': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypeUInt32Array': ... + +class vtkUnsignedLongLongArray(vtkDataArray): + data_type:'getset_descriptor' + data_type_value_max:'getset_descriptor' + data_type_value_min:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkUnsignedLongLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkUnsignedLongLongArray': ... + def GetDataType(self) -> int: ... + @staticmethod + def GetDataTypeValueMax() -> int: ... + @staticmethod + def GetDataTypeValueMin() -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, id:int) -> Pointer: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def InsertNextTypedTuple(self, tuple:Sequence[int]) -> int: ... + def InsertNextValue(self, f:int) -> int: ... + def InsertTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def InsertValue(self, id:int, f:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnsignedLongLongArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnsignedLongLongArray': ... + @overload + def SetArray(self, array:Buffer, size:int, save:int) -> None: ... + @overload + def SetArray(self, array:Buffer, size:int, save:int, deleteMethod:int) -> None: ... + def SetNumberOfValues(self, number:int) -> bool: ... + def SetTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, id:int, value:int) -> None: ... + def WritePointer(self, id:int, number:int) -> Pointer: ... + +class vtkTypeUInt64Array(vtkUnsignedLongLongArray): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkTypeUInt64Array': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypeUInt64Array': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypeUInt64Array': ... + +class vtkUnsignedCharArray(vtkDataArray): + data_type:'getset_descriptor' + data_type_value_max:'getset_descriptor' + data_type_value_min:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkUnsignedCharArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkUnsignedCharArray': ... + def GetDataType(self) -> int: ... + @staticmethod + def GetDataTypeValueMax() -> int: ... + @staticmethod + def GetDataTypeValueMin() -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, id:int) -> Pointer: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def InsertNextTypedTuple(self, tuple:Sequence[int]) -> int: ... + def InsertNextValue(self, f:int) -> int: ... + def InsertTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def InsertValue(self, id:int, f:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnsignedCharArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnsignedCharArray': ... + @overload + def SetArray(self, array:Buffer, size:int, save:int) -> None: ... + @overload + def SetArray(self, array:Buffer, size:int, save:int, deleteMethod:int) -> None: ... + def SetNumberOfValues(self, number:int) -> bool: ... + def SetTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, id:int, value:int) -> None: ... + def WritePointer(self, id:int, number:int) -> Pointer: ... + +class vtkTypeUInt8Array(vtkUnsignedCharArray): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkTypeUInt8Array': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTypeUInt8Array': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTypeUInt8Array': ... + +class vtkUnsignedLongArray(vtkDataArray): + data_type:'getset_descriptor' + data_type_value_max:'getset_descriptor' + data_type_value_min:'getset_descriptor' + value_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkUnsignedLongArray': ... + @staticmethod + def FastDownCast(source:'vtkAbstractArray') -> 'vtkUnsignedLongArray': ... + def GetDataType(self) -> int: ... + @staticmethod + def GetDataTypeValueMax() -> int: ... + @staticmethod + def GetDataTypeValueMin() -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointer(self, id:int) -> Pointer: ... + def GetTypedTuple(self, i:int, tuple:MutableSequence[int]) -> None: ... + def GetValue(self, id:int) -> int: ... + @overload + def GetValueRange(self, comp:int) -> Tuple[int, int]: ... + @overload + def GetValueRange(self) -> Tuple[int, int]: ... + def InsertNextTypedTuple(self, tuple:Sequence[int]) -> int: ... + def InsertNextValue(self, f:int) -> int: ... + def InsertTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def InsertValue(self, id:int, f:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnsignedLongArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnsignedLongArray': ... + @overload + def SetArray(self, array:Buffer, size:int, save:int) -> None: ... + @overload + def SetArray(self, array:Buffer, size:int, save:int, deleteMethod:int) -> None: ... + def SetNumberOfValues(self, number:int) -> bool: ... + def SetTypedTuple(self, i:int, tuple:Sequence[int]) -> None: ... + def SetValue(self, id:int, value:int) -> None: ... + def WritePointer(self, id:int, number:int) -> Pointer: ... + +class vtkVariant(object): + class StringFormatting(int): ... + DEFAULT_FORMATTING:'StringFormatting' + FIXED_FORMATTING:'StringFormatting' + SCIENTIFIC_FORMATTING:'StringFormatting' + type:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, other:'vtkVariant') -> None: ... + @overload + def __init__(self, value:bool) -> None: ... + @overload + def __init__(self, value:str) -> None: ... + @overload + def __init__(self, value:int) -> None: ... + @overload + def __init__(self, value:float) -> None: ... + @overload + def __init__(self, value:'vtkObjectBase') -> None: ... + @overload + def __init__(self, other:'vtkVariant', type:int) -> None: ... + def GetType(self) -> int: ... + def GetTypeAsString(self) -> str: ... + def IsArray(self) -> bool: ... + def IsChar(self) -> bool: ... + def IsDouble(self) -> bool: ... + def IsEqual(self, other:'vtkVariant') -> bool: ... + def IsFloat(self) -> bool: ... + def IsInt(self) -> bool: ... + def IsLong(self) -> bool: ... + def IsLongLong(self) -> bool: ... + def IsNumeric(self) -> bool: ... + def IsShort(self) -> bool: ... + def IsSignedChar(self) -> bool: ... + def IsString(self) -> bool: ... + def IsUnsignedChar(self) -> bool: ... + def IsUnsignedInt(self) -> bool: ... + def IsUnsignedLong(self) -> bool: ... + def IsUnsignedLongLong(self) -> bool: ... + def IsUnsignedShort(self) -> bool: ... + def IsVTKObject(self) -> bool: ... + def IsValid(self) -> bool: ... + def ToArray(self) -> 'vtkAbstractArray': ... + @overload + def ToChar(self, valid:MutableSequence[bool]) -> str: ... + @overload + def ToChar(self) -> str: ... + @overload + def ToDouble(self, valid:MutableSequence[bool]) -> float: ... + @overload + def ToDouble(self) -> float: ... + @overload + def ToFloat(self, valid:MutableSequence[bool]) -> float: ... + @overload + def ToFloat(self) -> float: ... + @overload + def ToInt(self, valid:MutableSequence[bool]) -> int: ... + @overload + def ToInt(self) -> int: ... + @overload + def ToLong(self, valid:MutableSequence[bool]) -> int: ... + @overload + def ToLong(self) -> int: ... + @overload + def ToLongLong(self, valid:MutableSequence[bool]) -> int: ... + @overload + def ToLongLong(self) -> int: ... + @overload + def ToShort(self, valid:MutableSequence[bool]) -> int: ... + @overload + def ToShort(self) -> int: ... + @overload + def ToSignedChar(self, valid:MutableSequence[bool]) -> int: ... + @overload + def ToSignedChar(self) -> int: ... + def ToString(self, formatting:int=..., precision:int=6) -> str: ... + @overload + def ToTypeInt64(self, valid:MutableSequence[bool]) -> int: ... + @overload + def ToTypeInt64(self) -> int: ... + @overload + def ToTypeUInt64(self, valid:MutableSequence[bool]) -> int: ... + @overload + def ToTypeUInt64(self) -> int: ... + @overload + def ToUnsignedChar(self, valid:MutableSequence[bool]) -> int: ... + @overload + def ToUnsignedChar(self) -> int: ... + @overload + def ToUnsignedInt(self, valid:MutableSequence[bool]) -> int: ... + @overload + def ToUnsignedInt(self) -> int: ... + @overload + def ToUnsignedLong(self, valid:MutableSequence[bool]) -> int: ... + @overload + def ToUnsignedLong(self) -> int: ... + @overload + def ToUnsignedLongLong(self, valid:MutableSequence[bool]) -> int: ... + @overload + def ToUnsignedLongLong(self) -> int: ... + @overload + def ToUnsignedShort(self, valid:MutableSequence[bool]) -> int: ... + @overload + def ToUnsignedShort(self) -> int: ... + def ToVTKObject(self) -> 'vtkObjectBase': ... + +class vtkVariantArray(vtkAbstractArray): + class DeleteMethod(int): ... + VTK_DATA_ARRAY_ALIGNED_FREE:'DeleteMethod' + VTK_DATA_ARRAY_DELETE:'DeleteMethod' + VTK_DATA_ARRAY_FREE:'DeleteMethod' + VTK_DATA_ARRAY_USER_DEFINED:'DeleteMethod' + actual_memory_size:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + element_component_size:'getset_descriptor' + number_of_tuples:'getset_descriptor' + number_of_values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, sz:int, ext:int=1000) -> int: ... + def ClearLookup(self) -> None: ... + def DataChanged(self) -> None: ... + def DataElementChanged(self, id:int) -> None: ... + def DeepCopy(self, da:'vtkAbstractArray') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkVariantArray': ... + def GetActualMemorySize(self) -> int: ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetElementComponentSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetValue(self, id:int) -> 'vtkVariant': ... + def GetVoidPointer(self, id:int) -> Pointer: ... + def Initialize(self) -> None: ... + def InsertNextTuple(self, j:int, source:'vtkAbstractArray') -> int: ... + def InsertNextValue(self, value:'vtkVariant') -> int: ... + def InsertTuple(self, i:int, j:int, source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstIds:'vtkIdList', srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + @overload + def InsertTuples(self, dstStart:int, n:int, srcStart:int, source:'vtkAbstractArray') -> None: ... + def InsertTuplesStartingAt(self, dstStart:int, srcIds:'vtkIdList', source:'vtkAbstractArray') -> None: ... + def InsertValue(self, id:int, value:'vtkVariant') -> None: ... + def InsertVariantValue(self, idx:int, value:'vtkVariant') -> None: ... + @overload + def InterpolateTuple(self, i:int, ptIndices:'vtkIdList', source:'vtkAbstractArray', weights:MutableSequence[float]) -> None: ... + @overload + def InterpolateTuple(self, i:int, id1:int, source1:'vtkAbstractArray', id2:int, source2:'vtkAbstractArray', t:float) -> None: ... + def IsA(self, type:str) -> int: ... + def IsNumeric(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LookupValue(self, value:'vtkVariant') -> int: ... + @overload + def LookupValue(self, value:'vtkVariant', ids:'vtkIdList') -> None: ... + def NewInstance(self) -> 'vtkVariantArray': ... + def NewIterator(self) -> 'vtkArrayIterator': ... + def Resize(self, numTuples:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVariantArray': ... + def SetNumberOfTuples(self, number:int) -> None: ... + def SetTuple(self, i:int, j:int, source:'vtkAbstractArray') -> None: ... + def SetValue(self, id:int, value:'vtkVariant') -> None: ... + def SetVariantValue(self, idx:int, value:'vtkVariant') -> None: ... + @overload + def SetVoidArray(self, arr:Pointer, size:int, save:int) -> None: ... + @overload + def SetVoidArray(self, arr:Pointer, size:int, save:int, deleteM:int) -> None: ... + def Squeeze(self) -> None: ... + +class vtkVariantEqual(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkVariantEqual') -> None: ... + +class vtkVariantLessThan(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkVariantLessThan') -> None: ... + +class vtkVariantStrictEquality(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkVariantStrictEquality') -> None: ... + +class vtkVariantStrictWeakOrder(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkVariantStrictWeakOrder') -> None: ... + +class vtkVersion(vtkObject): + vtk_build_version:'getset_descriptor' + vtk_major_version:'getset_descriptor' + vtk_minor_version:'getset_descriptor' + vtk_source_version:'getset_descriptor' + vtk_version:'getset_descriptor' + vtk_version_full:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GetVTKBuildVersion() -> int: ... + @staticmethod + def GetVTKMajorVersion() -> int: ... + @staticmethod + def GetVTKMinorVersion() -> int: ... + @staticmethod + def GetVTKSourceVersion() -> str: ... + @staticmethod + def GetVTKVersion() -> str: ... + @staticmethod + def GetVTKVersionFull() -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVersion': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVersion': ... + +class vtkVoidArray(vtkObject): + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + number_of_pointers:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, sz:int, ext:int=1000) -> int: ... + def DeepCopy(self, va:'vtkVoidArray') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkVoidArray': ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPointers(self) -> int: ... + def GetVoidPointer(self, id:int) -> Pointer: ... + def Initialize(self) -> None: ... + def InsertNextVoidPointer(self, tuple:Pointer) -> int: ... + def InsertVoidPointer(self, i:int, ptr:Pointer) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVoidArray': ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVoidArray': ... + def SetNumberOfPointers(self, number:int) -> None: ... + def SetVoidPointer(self, id:int, ptr:Pointer) -> None: ... + def Squeeze(self) -> None: ... + +class vtkWeakPointerBase(object): + pointer:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, r:'vtkObjectBase') -> None: ... + @overload + def __init__(self, r:'vtkWeakPointerBase') -> None: ... + def GetPointer(self) -> 'vtkObjectBase': ... + +class vtkWeakReference(vtkObject): + def __init__(self, **properties:Any) -> None: ... + def Get(self) -> 'vtkObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWeakReference': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWeakReference': ... + def Set(self, object:'vtkObject') -> None: ... + +class vtkWindow(vtkObject): + actual_size:'getset_descriptor' + display_id:'getset_descriptor' + double_buffer:'getset_descriptor' + dpi:'getset_descriptor' + erase:'getset_descriptor' + generic_context:'getset_descriptor' + generic_display_id:'getset_descriptor' + generic_drawable:'getset_descriptor' + generic_parent_id:'getset_descriptor' + generic_window_id:'getset_descriptor' + icon:'getset_descriptor' + mapped:'getset_descriptor' + off_screen_rendering:'getset_descriptor' + parent_id:'getset_descriptor' + parent_info:'getset_descriptor' + position:'getset_descriptor' + screen_size:'getset_descriptor' + show_window:'getset_descriptor' + size:'getset_descriptor' + tile_scale:'getset_descriptor' + tile_viewport:'getset_descriptor' + use_off_screen_buffers:'getset_descriptor' + window_id:'getset_descriptor' + window_info:'getset_descriptor' + window_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DetectDPI(self) -> bool: ... + def DoubleBufferOff(self) -> None: ... + def DoubleBufferOn(self) -> None: ... + def EnsureDisplay(self) -> bool: ... + def EraseOff(self) -> None: ... + def EraseOn(self) -> None: ... + def GetActualSize(self) -> Tuple[int, int]: ... + def GetDPI(self) -> int: ... + def GetDPIMaxValue(self) -> int: ... + def GetDPIMinValue(self) -> int: ... + def GetDoubleBuffer(self) -> int: ... + def GetErase(self) -> int: ... + def GetGenericContext(self) -> Pointer: ... + def GetGenericDisplayId(self) -> Pointer: ... + def GetGenericDrawable(self) -> Pointer: ... + def GetGenericParentId(self) -> Pointer: ... + def GetGenericWindowId(self) -> Pointer: ... + def GetMapped(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffScreenRendering(self) -> int: ... + @overload + def GetPixelData(self, __a:int, __b:int, __c:int, __d:int, __e:int, __f:int) -> Pointer: ... + @overload + def GetPixelData(self, __a:int, __b:int, __c:int, __d:int, __e:int, __f:'vtkUnsignedCharArray', __g:int) -> int: ... + def GetPosition(self) -> Tuple[int, int]: ... + def GetScreenSize(self) -> Tuple[int, int]: ... + def GetShowWindow(self) -> bool: ... + def GetSize(self) -> Tuple[int, int]: ... + def GetTileScale(self) -> Tuple[int, int]: ... + def GetTileViewport(self) -> Tuple[float, float, float, float]: ... + def GetUseOffScreenBuffers(self) -> bool: ... + def GetWindowName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeCurrent(self) -> None: ... + def NewInstance(self) -> 'vtkWindow': ... + def OffScreenRenderingOff(self) -> None: ... + def OffScreenRenderingOn(self) -> None: ... + def ReleaseCurrent(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWindow': ... + def SetDPI(self, _arg:int) -> None: ... + def SetDisplayId(self, __a:Pointer) -> None: ... + def SetDoubleBuffer(self, _arg:int) -> None: ... + def SetErase(self, _arg:int) -> None: ... + def SetIcon(self, __a:'vtkImageData') -> None: ... + def SetOffScreenRendering(self, val:int) -> None: ... + def SetParentId(self, __a:Pointer) -> None: ... + def SetParentInfo(self, __a:str) -> None: ... + @overload + def SetPosition(self, x:int, y:int) -> None: ... + @overload + def SetPosition(self, a:MutableSequence[int]) -> None: ... + def SetShowWindow(self, _arg:bool) -> None: ... + @overload + def SetSize(self, width:int, height:int) -> None: ... + @overload + def SetSize(self, a:MutableSequence[int]) -> None: ... + @overload + def SetTileScale(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetTileScale(self, _arg:Sequence[int]) -> None: ... + @overload + def SetTileScale(self, s:int) -> None: ... + @overload + def SetTileViewport(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetTileViewport(self, _arg:Sequence[float]) -> None: ... + def SetUseOffScreenBuffers(self, _arg:bool) -> None: ... + def SetWindowId(self, __a:Pointer) -> None: ... + def SetWindowInfo(self, __a:str) -> None: ... + def SetWindowName(self, _arg:str) -> None: ... + def ShowWindowOff(self) -> None: ... + def ShowWindowOn(self) -> None: ... + def UseOffScreenBuffersOff(self) -> None: ... + def UseOffScreenBuffersOn(self) -> None: ... + +class vtkXMLFileOutputWindow(vtkFileOutputWindow): + def __init__(self, **properties:Any) -> None: ... + def DisplayDebugText(self, __a:str) -> None: ... + def DisplayErrorText(self, __a:str) -> None: ... + def DisplayGenericWarningText(self, __a:str) -> None: ... + def DisplayTag(self, __a:str) -> None: ... + def DisplayText(self, __a:str) -> None: ... + def DisplayWarningText(self, __a:str) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLFileOutputWindow': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLFileOutputWindow': ... + +mutable = reference diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonDataModel.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonDataModel.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..f7ea815 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonDataModel.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonDataModel.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonDataModel.pyi new file mode 100644 index 0000000..b887356 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonDataModel.pyi @@ -0,0 +1,12580 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonMath +import vtkmodules.vtkCommonTransforms + +VTK_21_POINT_WEDGE:bool +VTK_3D_EXTENT:int +VTK_BEZIER_CURVE:int +VTK_BEZIER_HEXAHEDRON:int +VTK_BEZIER_PYRAMID:int +VTK_BEZIER_QUADRILATERAL:int +VTK_BEZIER_TETRAHEDRON:int +VTK_BEZIER_TRIANGLE:int +VTK_BEZIER_WEDGE:int +VTK_BIQUADRATIC_QUAD:int +VTK_BIQUADRATIC_QUADRATIC_HEXAHEDRON:int +VTK_BIQUADRATIC_QUADRATIC_WEDGE:int +VTK_BIQUADRATIC_TRIANGLE:int +VTK_CELL_SIZE:int +VTK_CONVEX_POINT_SET:int +VTK_CUBIC_LINE:int +VTK_EMPTY:int +VTK_EMPTY_CELL:int +VTK_HEXAGONAL_PRISM:int +VTK_HEXAHEDRON:int +VTK_HIGHER_ORDER_EDGE:int +VTK_HIGHER_ORDER_HEXAHEDRON:int +VTK_HIGHER_ORDER_POLYGON:int +VTK_HIGHER_ORDER_PYRAMID:int +VTK_HIGHER_ORDER_QUAD:int +VTK_HIGHER_ORDER_TETRAHEDRON:int +VTK_HIGHER_ORDER_TRIANGLE:int +VTK_HIGHER_ORDER_WEDGE:int +VTK_ICP_MODE_AV:int +VTK_ICP_MODE_RMS:int +VTK_LAGRANGE_CURVE:int +VTK_LAGRANGE_HEXAHEDRON:int +VTK_LAGRANGE_PYRAMID:int +VTK_LAGRANGE_QUADRILATERAL:int +VTK_LAGRANGE_TETRAHEDRON:int +VTK_LAGRANGE_TRIANGLE:int +VTK_LAGRANGE_WEDGE:int +VTK_LINE:int +VTK_MIN_SUPERQUADRIC_THICKNESS:float +VTK_NUMBER_OF_CELL_TYPES:int +VTK_PARAMETRIC_CURVE:int +VTK_PARAMETRIC_HEX_REGION:int +VTK_PARAMETRIC_QUAD_SURFACE:int +VTK_PARAMETRIC_SURFACE:int +VTK_PARAMETRIC_TETRA_REGION:int +VTK_PARAMETRIC_TRI_SURFACE:int +VTK_PENTAGONAL_PRISM:int +VTK_PERIODIC_ARRAY_AXIS_X:int +VTK_PERIODIC_ARRAY_AXIS_Y:int +VTK_PERIODIC_ARRAY_AXIS_Z:int +VTK_PIECES_EXTENT:int +VTK_PIXEL:int +VTK_POLYGON:int +VTK_POLYHEDRON:int +VTK_POLY_LINE:int +VTK_POLY_VERTEX:int +VTK_PYRAMID:int +VTK_QUAD:int +VTK_QUADRATIC_EDGE:int +VTK_QUADRATIC_HEXAHEDRON:int +VTK_QUADRATIC_LINEAR_QUAD:int +VTK_QUADRATIC_LINEAR_WEDGE:int +VTK_QUADRATIC_POLYGON:int +VTK_QUADRATIC_PYRAMID:int +VTK_QUADRATIC_QUAD:int +VTK_QUADRATIC_TETRA:int +VTK_QUADRATIC_TRIANGLE:int +VTK_QUADRATIC_WEDGE:int +VTK_SINGLE_POINT:int +VTK_TETRA:int +VTK_TIME_EXTENT:int +VTK_TOL:float +VTK_TRIANGLE:int +VTK_TRIANGLE_STRIP:int +VTK_TRIQUADRATIC_HEXAHEDRON:int +VTK_TRIQUADRATIC_PYRAMID:int +VTK_UNCHANGED:int +VTK_VERTEX:int +VTK_VOXEL:int +VTK_WEDGE:int +VTK_XYZ_GRID:int +VTK_XY_PLANE:int +VTK_XZ_PLANE:int +VTK_X_LINE:int +VTK_YZ_PLANE:int +VTK_Y_LINE:int +VTK_Z_LINE:int +vtkBoundaryCentered:int +vtkCellCentered:int +vtkColor3:Template +vtkColor4:Template +vtkPointCentered:int +vtkRect:Template +vtkVector:Template +vtkVector2:Template +vtkVector3:Template +vtkVector4:Template + +class vtkAMRBox(object): + bytesize:'getset_descriptor' + dimensions:'getset_descriptor' + hi_corner:'getset_descriptor' + lo_corner:'getset_descriptor' + number_of_cells:'getset_descriptor' + number_of_nodes:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, other:'vtkAMRBox') -> None: ... + @overload + def __init__(self, ilo:int, jlo:int, klo:int, ihi:int, jhi:int, khi:int) -> None: ... + @overload + def __init__(self, origin:Sequence[float], dimensions:Sequence[int], spacing:Sequence[float], globalOrigin:Sequence[float], gridDescription:int=...) -> None: ... + @overload + def __init__(self, lo:Sequence[int], hi:Sequence[int]) -> None: ... + @overload + def __init__(self, dims:Sequence[int]) -> None: ... + def Coarsen(self, r:int) -> None: ... + def ComputeDimension(self) -> int: ... + @staticmethod + def ComputeStructuredCoordinates(box:'vtkAMRBox', dataOrigin:Sequence[float], h:Sequence[float], x:Sequence[float], ijk:MutableSequence[int], pcoords:MutableSequence[float]) -> int: ... + @overload + def Contains(self, i:int, j:int, k:int) -> bool: ... + @overload + def Contains(self, I:Sequence[int]) -> bool: ... + @overload + def Contains(self, __a:'vtkAMRBox') -> bool: ... + def Deserialize(self, buffer:MutableSequence[int], bytesize:int) -> None: ... + def DoesBoxIntersectAlongDimension(self, other:'vtkAMRBox', q:int) -> bool: ... + def DoesIntersect(self, other:'vtkAMRBox') -> bool: ... + def Empty(self) -> bool: ... + def EmptyDimension(self, i:int) -> bool: ... + @staticmethod + def GetBounds(box:'vtkAMRBox', origin:Sequence[float], spacing:Sequence[float], bounds:MutableSequence[float]) -> None: ... + @staticmethod + def GetBoxOrigin(box:'vtkAMRBox', X0:Sequence[float], spacing:Sequence[float], x0:MutableSequence[float]) -> None: ... + @staticmethod + def GetBytesize() -> int: ... + @staticmethod + def GetCellLinearIndex(box:'vtkAMRBox', i:int, j:int, k:int, imageDimension:MutableSequence[int]) -> int: ... + @overload + def GetDimensions(self, lo:MutableSequence[int], hi:MutableSequence[int]) -> None: ... + @overload + def GetDimensions(self, dims:MutableSequence[int]) -> None: ... + def GetGhostVector(self, r:int, nghost:MutableSequence[int]) -> None: ... + def GetHiCorner(self) -> Pointer: ... + def GetLoCorner(self) -> Pointer: ... + @overload + def GetNumberOfCells(self) -> int: ... + @overload + def GetNumberOfCells(self, num:MutableSequence[int]) -> None: ... + @overload + def GetNumberOfNodes(self, ext:MutableSequence[int]) -> None: ... + @overload + def GetNumberOfNodes(self) -> int: ... + def GetValidHiCorner(self, hi:MutableSequence[int]) -> None: ... + def Grow(self, byN:int) -> None: ... + @staticmethod + def HasPoint(box:'vtkAMRBox', origin:Sequence[float], spacing:Sequence[float], x:float, y:float, z:float) -> bool: ... + def Intersect(self, other:'vtkAMRBox') -> bool: ... + def Invalidate(self) -> None: ... + def IsInvalid(self) -> bool: ... + def Refine(self, r:int) -> None: ... + def RemoveGhosts(self, r:int) -> None: ... + @overload + def Serialize(self, buffer:MutableSequence[int], bytesize:int) -> None: ... + @overload + def Serialize(self, buffer:MutableSequence[int]) -> None: ... + @overload + def SetDimensions(self, ilo:int, jlo:int, klo:int, ihi:int, jhi:int, khi:int, desc:int=...) -> None: ... + @overload + def SetDimensions(self, lo:Sequence[int], hi:Sequence[int], desc:int=...) -> None: ... + @overload + def SetDimensions(self, dims:Sequence[int], desc:int=...) -> None: ... + @overload + def Shift(self, i:int, j:int, k:int) -> None: ... + @overload + def Shift(self, I:Sequence[int]) -> None: ... + def Shrink(self, byN:int) -> None: ... + +class vtkAMRDataInternals(vtkmodules.vtkCommonCore.vtkObject): + number_of_blocks:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CompositeShallowCopy(self, src:'vtkObject') -> None: ... + def DeepCopy(self, src:'vtkObject') -> None: ... + def Empty(self) -> bool: ... + def GetDataSet(self, compositeIndex:int) -> 'vtkUniformGrid': ... + def GetNumberOfBlocks(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self) -> None: ... + def Insert(self, index:int, grid:'vtkUniformGrid') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAMRDataInternals': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAMRDataInternals': ... + def ShallowCopy(self, src:'vtkObject') -> None: ... + +class vtkAMRInformation(vtkmodules.vtkCommonCore.vtkObject): + amr_block_source_index:'getset_descriptor' + bounds:'getset_descriptor' + grid_description:'getset_descriptor' + num_blocks:'getset_descriptor' + number_of_levels:'getset_descriptor' + origin:'getset_descriptor' + total_number_of_blocks:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Audit(self) -> bool: ... + def ComputeIndexPair(self, index:int, level:int, id:int) -> None: ... + def DeepCopy(self, other:'vtkAMRInformation') -> None: ... + def FindCell(self, q:MutableSequence[float], level:int, index:int, cellIdx:int) -> bool: ... + def FindGrid(self, q:MutableSequence[float], level:int, gridId:int) -> bool: ... + def GenerateParentChildInformation(self) -> None: ... + def GenerateRefinementRatio(self) -> None: ... + def GetAMRBlockSourceIndex(self, index:int) -> int: ... + def GetAMRBox(self, level:int, id:int) -> 'vtkAMRBox': ... + @overload + def GetBounds(self) -> Pointer: ... + @overload + def GetBounds(self, level:int, id:int, bb:MutableSequence[float]) -> None: ... + def GetChildren(self, level:int, index:int, numChildren:int) -> Pointer: ... + def GetCoarsenedAMRBox(self, level:int, id:int, box:'vtkAMRBox') -> bool: ... + def GetGridDescription(self) -> int: ... + def GetIndex(self, level:int, id:int) -> int: ... + def GetNumBlocks(self) -> Tuple[int, int]: ... + def GetNumberOfDataSets(self, level:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLevels(self) -> int: ... + @overload + def GetOrigin(self, origin:MutableSequence[float]) -> None: ... + @overload + def GetOrigin(self) -> Pointer: ... + @overload + def GetOrigin(self, level:int, id:int, origin:MutableSequence[float]) -> bool: ... + def GetParents(self, level:int, index:int, numParents:int) -> Pointer: ... + def GetRefinementRatio(self, level:int) -> int: ... + def GetSpacing(self, level:int, spacing:MutableSequence[float]) -> None: ... + def GetTotalNumberOfBlocks(self) -> int: ... + def HasChildrenInformation(self) -> bool: ... + def HasRefinementRatio(self) -> bool: ... + def HasSpacing(self, level:int) -> bool: ... + def Initialize(self, numLevels:int, blocksPerLevel:Sequence[int]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAMRInformation': ... + def PrintParentChildInfo(self, level:int, index:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAMRInformation': ... + def SetAMRBlockSourceIndex(self, index:int, sourceId:int) -> None: ... + def SetAMRBox(self, level:int, id:int, box:'vtkAMRBox') -> None: ... + def SetGridDescription(self, description:int) -> None: ... + def SetOrigin(self, origin:Sequence[float]) -> None: ... + def SetRefinementRatio(self, level:int, ratio:int) -> None: ... + def SetSpacing(self, level:int, h:Sequence[float]) -> None: ... + +class vtkAMRUtilities(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def BlankCells(amr:'vtkOverlappingAMR') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def HasPartiallyOverlappingGhostCells(amr:'vtkOverlappingAMR') -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAMRUtilities': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAMRUtilities': ... + @staticmethod + def StripGhostLayers(ghostedAMRData:'vtkOverlappingAMR', strippedAMRData:'vtkOverlappingAMR') -> None: ... + +class vtkAbstractCellArray(vtkmodules.vtkCommonCore.vtkObject): + max_cell_size:'getset_descriptor' + number_of_cells:'getset_descriptor' + number_of_connectivity_ids:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self, ca:'vtkAbstractCellArray') -> None: ... + @overload + def GetCellAtId(self, cellId:int, cellSize:int, cellPoints:Sequence[int]) -> None: ... + @overload + def GetCellAtId(self, cellId:int, cellSize:int, cellPoints:Sequence[int], ptIds:'vtkIdList') -> None: ... + @overload + def GetCellAtId(self, cellId:int, pts:'vtkIdList') -> None: ... + @overload + def GetCellAtId(self, cellId:int, cellSize:int, cellPoints:MutableSequence[int]) -> None: ... + def GetCellSize(self, cellId:int) -> int: ... + def GetMaxCellSize(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfConnectivityIds(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfOffsets(self) -> int: ... + def GetOffset(self, cellId:int) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsHomogeneous(self) -> int: ... + def IsStorageShareable(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAbstractCellArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractCellArray': ... + def ShallowCopy(self, ca:'vtkAbstractCellArray') -> None: ... + +class vtkAbstractCellLinks(vtkmodules.vtkCommonCore.vtkObject): + class CellLinksTypes(int): ... + CELL_LINKS:'CellLinksTypes' + LINKS_NOT_DEFINED:'CellLinksTypes' + STATIC_CELL_LINKS_IDTYPE:'CellLinksTypes' + STATIC_CELL_LINKS_SPECIALIZED:'CellLinksTypes' + STATIC_CELL_LINKS_UINT:'CellLinksTypes' + STATIC_CELL_LINKS_USHORT:'CellLinksTypes' + actual_memory_size:'getset_descriptor' + build_time:'getset_descriptor' + data_set:'getset_descriptor' + sequential_processing:'getset_descriptor' + type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildLinks(self) -> None: ... + @overload + @staticmethod + def ComputeType(maxPtId:int, maxCellId:int, ca:'vtkCellArray') -> int: ... + @overload + @staticmethod + def ComputeType(maxPtId:int, maxCellId:int, connectivitySize:int) -> int: ... + def DeepCopy(self, src:'vtkAbstractCellLinks') -> None: ... + def GetActualMemorySize(self) -> int: ... + def GetBuildTime(self) -> int: ... + def GetDataSet(self) -> 'vtkDataSet': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSequentialProcessing(self) -> bool: ... + def GetType(self) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAbstractCellLinks': ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractCellLinks': ... + def SelectCells(self, minMaxDegree:MutableSequence[int], cellSelection:MutableSequence[int]) -> None: ... + def SequentialProcessingOff(self) -> None: ... + def SequentialProcessingOn(self) -> None: ... + def SetDataSet(self, __a:'vtkDataSet') -> None: ... + def SetSequentialProcessing(self, _arg:bool) -> None: ... + def ShallowCopy(self, src:'vtkAbstractCellLinks') -> None: ... + def Squeeze(self) -> None: ... + def UsesGarbageCollector(self) -> bool: ... + +class vtkLocator(vtkmodules.vtkCommonCore.vtkObject): + automatic:'getset_descriptor' + build_time:'getset_descriptor' + data_set:'getset_descriptor' + level:'getset_descriptor' + max_level:'getset_descriptor' + tolerance:'getset_descriptor' + use_existing_search_structure:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutomaticOff(self) -> None: ... + def AutomaticOn(self) -> None: ... + def BuildLocator(self) -> None: ... + def ForceBuildLocator(self) -> None: ... + def FreeSearchStructure(self) -> None: ... + def GenerateRepresentation(self, level:int, pd:'vtkPolyData') -> None: ... + def GetAutomatic(self) -> int: ... + def GetBuildTime(self) -> int: ... + def GetDataSet(self) -> 'vtkDataSet': ... + def GetLevel(self) -> int: ... + def GetMaxLevel(self) -> int: ... + def GetMaxLevelMaxValue(self) -> int: ... + def GetMaxLevelMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTolerance(self) -> float: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def GetUseExistingSearchStructure(self) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLocator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLocator': ... + def SetAutomatic(self, _arg:int) -> None: ... + def SetDataSet(self, __a:'vtkDataSet') -> None: ... + def SetMaxLevel(self, _arg:int) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def SetUseExistingSearchStructure(self, _arg:int) -> None: ... + def Update(self) -> None: ... + def UseExistingSearchStructureOff(self) -> None: ... + def UseExistingSearchStructureOn(self) -> None: ... + def UsesGarbageCollector(self) -> bool: ... + +class vtkAbstractCellLocator(vtkLocator): + cache_cell_bounds:'getset_descriptor' + number_of_cells_per_node:'getset_descriptor' + retain_cell_lists:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CacheCellBoundsOff(self) -> None: ... + def CacheCellBoundsOn(self) -> None: ... + def ComputeCellBounds(self) -> None: ... + @overload + def FindCell(self, x:MutableSequence[float]) -> int: ... + @overload + def FindCell(self, x:MutableSequence[float], tol2:float, GenCell:'vtkGenericCell', pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + @overload + def FindCell(self, x:MutableSequence[float], tol2:float, GenCell:'vtkGenericCell', subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + def FindCellsAlongLine(self, p1:Sequence[float], p2:Sequence[float], tolerance:float, cells:'vtkIdList') -> None: ... + def FindCellsAlongPlane(self, o:Sequence[float], n:Sequence[float], tolerance:float, cells:'vtkIdList') -> None: ... + def FindCellsWithinBounds(self, bbox:MutableSequence[float], cells:'vtkIdList') -> None: ... + @overload + def FindClosestPoint(self, x:Sequence[float], closestPoint:MutableSequence[float], cellId:int, subId:int, dist2:float) -> None: ... + @overload + def FindClosestPoint(self, x:Sequence[float], closestPoint:MutableSequence[float], cell:'vtkGenericCell', cellId:int, subId:int, dist2:float) -> None: ... + @overload + def FindClosestPointWithinRadius(self, x:MutableSequence[float], radius:float, closestPoint:MutableSequence[float], cellId:int, subId:int, dist2:float) -> int: ... + @overload + def FindClosestPointWithinRadius(self, x:MutableSequence[float], radius:float, closestPoint:MutableSequence[float], cell:'vtkGenericCell', cellId:int, subId:int, dist2:float) -> int: ... + @overload + def FindClosestPointWithinRadius(self, x:MutableSequence[float], radius:float, closestPoint:MutableSequence[float], cell:'vtkGenericCell', cellId:int, subId:int, dist2:float, inside:int) -> int: ... + def GetCacheCellBounds(self) -> int: ... + def GetNumberOfCellsPerNode(self) -> int: ... + def GetNumberOfCellsPerNodeMaxValue(self) -> int: ... + def GetNumberOfCellsPerNodeMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRetainCellLists(self) -> int: ... + def InsideCellBounds(self, x:MutableSequence[float], cell_ID:int) -> bool: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int, cellId:int) -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int, cellId:int, cell:'vtkGenericCell') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], points:'vtkPoints', cellIds:'vtkIdList') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, points:'vtkPoints', cellIds:'vtkIdList') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, points:'vtkPoints', cellIds:'vtkIdList', cell:'vtkGenericCell') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAbstractCellLocator': ... + def RetainCellListsOff(self) -> None: ... + def RetainCellListsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractCellLocator': ... + def SetCacheCellBounds(self, _arg:int) -> None: ... + def SetNumberOfCellsPerNode(self, _arg:int) -> None: ... + def SetRetainCellLists(self, _arg:int) -> None: ... + def ShallowCopy(self, __a:'vtkAbstractCellLocator') -> None: ... + +class vtkDataObject(vtkmodules.vtkCommonCore.vtkObject): + class AttributeTypes(int): ... + class FieldAssociations(int): ... + class FieldOperations(int): ... + CELL:'AttributeTypes' + EDGE:'AttributeTypes' + FIELD:'AttributeTypes' + FIELD_ASSOCIATION_CELLS:'FieldAssociations' + FIELD_ASSOCIATION_EDGES:'FieldAssociations' + FIELD_ASSOCIATION_NONE:'FieldAssociations' + FIELD_ASSOCIATION_POINTS:'FieldAssociations' + FIELD_ASSOCIATION_POINTS_THEN_CELLS:'FieldAssociations' + FIELD_ASSOCIATION_ROWS:'FieldAssociations' + FIELD_ASSOCIATION_VERTICES:'FieldAssociations' + FIELD_OPERATION_MODIFIED:'FieldOperations' + FIELD_OPERATION_PRESERVED:'FieldOperations' + FIELD_OPERATION_REINTERPOLATED:'FieldOperations' + FIELD_OPERATION_REMOVED:'FieldOperations' + NUMBER_OF_ASSOCIATIONS:'FieldAssociations' + NUMBER_OF_ATTRIBUTE_TYPES:'AttributeTypes' + POINT:'AttributeTypes' + POINT_THEN_CELL:'AttributeTypes' + ROW:'AttributeTypes' + VERTEX:'AttributeTypes' + actual_memory_size:'getset_descriptor' + data_object_type:'getset_descriptor' + data_released:'getset_descriptor' + extent_type:'getset_descriptor' + field_data:'getset_descriptor' + global_release_data_flag:'getset_descriptor' + information:'getset_descriptor' + m_time:'getset_descriptor' + update_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ALL_PIECES_EXTENT() -> 'vtkInformationIntegerVectorKey': ... + @staticmethod + def BOUNDING_BOX() -> 'vtkInformationDoubleVectorKey': ... + @staticmethod + def CELL_DATA_VECTOR() -> 'vtkInformationInformationVectorKey': ... + def CopyInformationFromPipeline(self, info:'vtkInformation') -> None: ... + def CopyInformationToPipeline(self, info:'vtkInformation') -> None: ... + def Crop(self, updateExtent:Sequence[int]) -> None: ... + @staticmethod + def DATA_EXTENT() -> 'vtkInformationIntegerPointerKey': ... + @staticmethod + def DATA_EXTENT_TYPE() -> 'vtkInformationIntegerKey': ... + @staticmethod + def DATA_NUMBER_OF_GHOST_LEVELS() -> 'vtkInformationIntegerKey': ... + @staticmethod + def DATA_NUMBER_OF_PIECES() -> 'vtkInformationIntegerKey': ... + @staticmethod + def DATA_OBJECT() -> 'vtkInformationDataObjectKey': ... + @staticmethod + def DATA_PIECE_NUMBER() -> 'vtkInformationIntegerKey': ... + @staticmethod + def DATA_TIME_STEP() -> 'vtkInformationDoubleKey': ... + @staticmethod + def DATA_TYPE_NAME() -> 'vtkInformationStringKey': ... + @staticmethod + def DIRECTION() -> 'vtkInformationDoubleVectorKey': ... + def DataHasBeenGenerated(self) -> None: ... + def DeepCopy(self, src:'vtkDataObject') -> None: ... + @staticmethod + def EDGE_DATA_VECTOR() -> 'vtkInformationInformationVectorKey': ... + @staticmethod + def FIELD_ACTIVE_ATTRIBUTE() -> 'vtkInformationIntegerKey': ... + @staticmethod + def FIELD_ARRAY_TYPE() -> 'vtkInformationIntegerKey': ... + @staticmethod + def FIELD_ASSOCIATION() -> 'vtkInformationIntegerKey': ... + @staticmethod + def FIELD_ATTRIBUTE_TYPE() -> 'vtkInformationIntegerKey': ... + @staticmethod + def FIELD_NAME() -> 'vtkInformationStringKey': ... + @staticmethod + def FIELD_NUMBER_OF_COMPONENTS() -> 'vtkInformationIntegerKey': ... + @staticmethod + def FIELD_NUMBER_OF_TUPLES() -> 'vtkInformationIntegerKey': ... + @staticmethod + def FIELD_OPERATION() -> 'vtkInformationIntegerKey': ... + @staticmethod + def FIELD_RANGE() -> 'vtkInformationDoubleVectorKey': ... + @staticmethod + def GetActiveFieldInformation(info:'vtkInformation', fieldAssociation:int, attributeType:int) -> 'vtkInformation': ... + def GetActualMemorySize(self) -> int: ... + @staticmethod + def GetAssociationTypeAsString(associationType:int) -> str: ... + @staticmethod + def GetAssociationTypeFromString(associationName:str) -> int: ... + def GetAttributeTypeForArray(self, arr:'vtkAbstractArray') -> int: ... + def GetAttributes(self, type:int) -> 'vtkDataSetAttributes': ... + def GetAttributesAsFieldData(self, type:int) -> 'vtkFieldData': ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkDataObject': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkDataObject': ... + def GetDataObjectType(self) -> int: ... + def GetDataReleased(self) -> int: ... + def GetExtentType(self) -> int: ... + def GetFieldData(self) -> 'vtkFieldData': ... + def GetGhostArray(self, type:int) -> 'vtkUnsignedCharArray': ... + @staticmethod + def GetGlobalReleaseDataFlag() -> int: ... + def GetInformation(self) -> 'vtkInformation': ... + def GetMTime(self) -> int: ... + @staticmethod + def GetNamedFieldInformation(info:'vtkInformation', fieldAssociation:int, name:str) -> 'vtkInformation': ... + def GetNumberOfElements(self, type:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUpdateTime(self) -> int: ... + def GlobalReleaseDataFlagOff(self) -> None: ... + def GlobalReleaseDataFlagOn(self) -> None: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataObject': ... + @staticmethod + def ORIGIN() -> 'vtkInformationDoubleVectorKey': ... + @staticmethod + def PIECE_EXTENT() -> 'vtkInformationIntegerVectorKey': ... + @staticmethod + def POINT_DATA_VECTOR() -> 'vtkInformationInformationVectorKey': ... + def PrepareForNewData(self) -> None: ... + def ReleaseData(self) -> None: ... + @staticmethod + def RemoveNamedFieldInformation(info:'vtkInformation', fieldAssociation:int, name:str) -> None: ... + @staticmethod + def SIL() -> 'vtkInformationDataObjectKey': ... + @staticmethod + def SPACING() -> 'vtkInformationDoubleVectorKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataObject': ... + @staticmethod + def SetActiveAttribute(info:'vtkInformation', fieldAssociation:int, attributeName:str, attributeType:int) -> 'vtkInformation': ... + @staticmethod + def SetActiveAttributeInfo(info:'vtkInformation', fieldAssociation:int, attributeType:int, name:str, arrayType:int, numComponents:int, numTuples:int) -> None: ... + def SetFieldData(self, __a:'vtkFieldData') -> None: ... + @staticmethod + def SetGlobalReleaseDataFlag(val:int) -> None: ... + def SetInformation(self, __a:'vtkInformation') -> None: ... + @staticmethod + def SetPointDataActiveScalarInfo(info:'vtkInformation', arrayType:int, numComponents:int) -> None: ... + def ShallowCopy(self, src:'vtkDataObject') -> None: ... + def SupportsGhostArray(self, type:int) -> bool: ... + @staticmethod + def VERTEX_DATA_VECTOR() -> 'vtkInformationInformationVectorKey': ... + +class vtkAbstractElectronicData(vtkDataObject): + data_object_type:'getset_descriptor' + electron_density:'getset_descriptor' + homo:'getset_descriptor' + homo_orbital_number:'getset_descriptor' + lumo:'getset_descriptor' + lumo_orbital_number:'getset_descriptor' + number_of_electrons:'getset_descriptor' + number_of_m_os:'getset_descriptor' + padding:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self, obj:'vtkDataObject') -> None: ... + def GetDataObjectType(self) -> int: ... + def GetElectronDensity(self) -> 'vtkImageData': ... + def GetHOMO(self) -> 'vtkImageData': ... + def GetHOMOOrbitalNumber(self) -> int: ... + def GetLUMO(self) -> 'vtkImageData': ... + def GetLUMOOrbitalNumber(self) -> int: ... + def GetMO(self, orbitalNumber:int) -> 'vtkImageData': ... + def GetNumberOfElectrons(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfMOs(self) -> int: ... + def GetPadding(self) -> float: ... + def IsA(self, type:str) -> int: ... + def IsHOMO(self, orbitalNumber:int) -> bool: ... + def IsLUMO(self, orbitalNumber:int) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAbstractElectronicData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractElectronicData': ... + +class vtkAbstractPointLocator(vtkLocator): + bounds:'getset_descriptor' + number_of_buckets:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def FindClosestNPoints(self, N:int, x:Sequence[float], result:'vtkIdList') -> None: ... + @overload + def FindClosestNPoints(self, N:int, x:float, y:float, z:float, result:'vtkIdList') -> None: ... + @overload + def FindClosestPoint(self, x:Sequence[float]) -> int: ... + @overload + def FindClosestPoint(self, x:float, y:float, z:float) -> int: ... + def FindClosestPointWithinRadius(self, radius:float, x:Sequence[float], dist2:float) -> int: ... + @overload + def FindPointsWithinRadius(self, R:float, x:Sequence[float], result:'vtkIdList') -> None: ... + @overload + def FindPointsWithinRadius(self, R:float, x:float, y:float, z:float, result:'vtkIdList') -> None: ... + @overload + def GetBounds(self) -> Pointer: ... + @overload + def GetBounds(self, __a:MutableSequence[float]) -> None: ... + def GetNumberOfBuckets(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAbstractPointLocator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractPointLocator': ... + +class vtkAdjacentVertexIterator(vtkmodules.vtkCommonCore.vtkObject): + graph:'getset_descriptor' + vertex:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetGraph(self) -> 'vtkGraph': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVertex(self) -> int: ... + def HasNext(self) -> bool: ... + def Initialize(self, g:'vtkGraph', v:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAdjacentVertexIterator': ... + def Next(self) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAdjacentVertexIterator': ... + +class vtkAnimationScene(vtkmodules.vtkCommonCore.vtkAnimationCue): + class PlayModes(int): ... + PLAYMODE_REALTIME:'PlayModes' + PLAYMODE_SEQUENCE:'PlayModes' + animation_time:'getset_descriptor' + frame_rate:'getset_descriptor' + loop:'getset_descriptor' + number_of_cues:'getset_descriptor' + play_mode:'getset_descriptor' + time_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddCue(self, cue:'vtkAnimationCue') -> None: ... + def GetFrameRate(self) -> float: ... + def GetLoop(self) -> int: ... + def GetNumberOfCues(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPlayMode(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsInPlay(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAnimationScene': ... + def Play(self) -> None: ... + def RemoveAllCues(self) -> None: ... + def RemoveCue(self, cue:'vtkAnimationCue') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAnimationScene': ... + def SetAnimationTime(self, time:float) -> None: ... + def SetFrameRate(self, _arg:float) -> None: ... + def SetLoop(self, _arg:int) -> None: ... + def SetModeToRealTime(self) -> None: ... + def SetModeToSequence(self) -> None: ... + def SetPlayMode(self, _arg:int) -> None: ... + def SetTimeMode(self, mode:int) -> None: ... + def Stop(self) -> None: ... + +class vtkAnnotation(vtkDataObject): + data_object_type:'getset_descriptor' + m_time:'getset_descriptor' + selection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def COLOR() -> 'vtkInformationDoubleVectorKey': ... + @staticmethod + def DATA() -> 'vtkInformationDataObjectKey': ... + def DeepCopy(self, other:'vtkDataObject') -> None: ... + @staticmethod + def ENABLE() -> 'vtkInformationIntegerKey': ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkAnnotation': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkAnnotation': ... + def GetDataObjectType(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSelection(self) -> 'vtkSelection': ... + @staticmethod + def HIDE() -> 'vtkInformationIntegerKey': ... + @staticmethod + def ICON_INDEX() -> 'vtkInformationIntegerKey': ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def LABEL() -> 'vtkInformationStringKey': ... + def NewInstance(self) -> 'vtkAnnotation': ... + @staticmethod + def OPACITY() -> 'vtkInformationDoubleKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAnnotation': ... + def SetSelection(self, selection:'vtkSelection') -> None: ... + def ShallowCopy(self, other:'vtkDataObject') -> None: ... + +class vtkAnnotationLayers(vtkDataObject): + current_annotation:'getset_descriptor' + current_selection:'getset_descriptor' + data_object_type:'getset_descriptor' + m_time:'getset_descriptor' + number_of_annotations:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddAnnotation(self, ann:'vtkAnnotation') -> None: ... + def DeepCopy(self, other:'vtkDataObject') -> None: ... + def GetAnnotation(self, idx:int) -> 'vtkAnnotation': ... + def GetCurrentAnnotation(self) -> 'vtkAnnotation': ... + def GetCurrentSelection(self) -> 'vtkSelection': ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkAnnotationLayers': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkAnnotationLayers': ... + def GetDataObjectType(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfAnnotations(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAnnotationLayers': ... + def RemoveAnnotation(self, ann:'vtkAnnotation') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAnnotationLayers': ... + def SetCurrentAnnotation(self, ann:'vtkAnnotation') -> None: ... + def SetCurrentSelection(self, sel:'vtkSelection') -> None: ... + def ShallowCopy(self, other:'vtkDataObject') -> None: ... + +class vtkImplicitFunction(vtkmodules.vtkCommonCore.vtkObject): + m_time:'getset_descriptor' + transform:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], g:MutableSequence[float]) -> None: ... + @overload + def FunctionGradient(self, x:Sequence[float], g:MutableSequence[float]) -> None: ... + @overload + def FunctionGradient(self, x:Sequence[float]) -> Tuple[float, float, float]: ... + @overload + def FunctionGradient(self, x:float, y:float, z:float) -> Tuple[float, float, float]: ... + @overload + def FunctionValue(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def FunctionValue(self, x:Sequence[float]) -> float: ... + @overload + def FunctionValue(self, x:float, y:float, z:float) -> float: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTransform(self) -> 'vtkAbstractTransform': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitFunction': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitFunction': ... + @overload + def SetTransform(self, __a:'vtkAbstractTransform') -> None: ... + @overload + def SetTransform(self, elements:Sequence[float]) -> None: ... + +class vtkAnnulus(vtkImplicitFunction): + axis:'getset_descriptor' + center:'getset_descriptor' + inner_radius:'getset_descriptor' + outer_radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], g:MutableSequence[float]) -> None: ... + @overload + def GetAxis(self, x:float, y:float, z:float) -> None: ... + @overload + def GetAxis(self, xyz:MutableSequence[float]) -> None: ... + @overload + def GetAxis(self) -> Tuple[float, float, float]: ... + @overload + def GetCenter(self, x:float, y:float, z:float) -> None: ... + @overload + def GetCenter(self, xyz:MutableSequence[float]) -> None: ... + @overload + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetInnerRadius(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOuterRadius(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAnnulus': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAnnulus': ... + @overload + def SetAxis(self, x:float, y:float, z:float) -> None: ... + @overload + def SetAxis(self, axis:MutableSequence[float]) -> None: ... + @overload + def SetAxis(self, axis:'vtkVector3d') -> None: ... + @overload + def SetCenter(self, x:float, y:float, z:float) -> None: ... + @overload + def SetCenter(self, xyz:Sequence[float]) -> None: ... + @overload + def SetCenter(self, xyz:'vtkVector3d') -> None: ... + def SetInnerRadius(self, radius:float) -> None: ... + def SetOuterRadius(self, radius:float) -> None: ... + +class vtkArrayData(vtkDataObject): + data_object_type:'getset_descriptor' + number_of_arrays:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddArray(self, __a:'vtkArray') -> None: ... + def ClearArrays(self) -> None: ... + def DeepCopy(self, other:'vtkDataObject') -> None: ... + def GetArray(self, index:int) -> 'vtkArray': ... + def GetArrayByName(self, name:str) -> 'vtkArray': ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkArrayData': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkArrayData': ... + def GetDataObjectType(self) -> int: ... + def GetNumberOfArrays(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayData': ... + def ShallowCopy(self, other:'vtkDataObject') -> None: ... + +class vtkAtom(object): + atomic_number:'getset_descriptor' + id:'getset_descriptor' + molecule:'getset_descriptor' + position:'getset_descriptor' + def __init__(self, __a:'vtkAtom') -> None: ... + def GetAtomicNumber(self) -> int: ... + def GetId(self) -> int: ... + def GetMolecule(self) -> 'vtkMolecule': ... + @overload + def GetPosition(self, pos:MutableSequence[float]) -> None: ... + @overload + def GetPosition(self) -> 'vtkVector3f': ... + def SetAtomicNumber(self, atomicNum:int) -> None: ... + @overload + def SetPosition(self, pos:Sequence[float]) -> None: ... + @overload + def SetPosition(self, x:float, y:float, z:float) -> None: ... + @overload + def SetPosition(self, pos:'vtkVector3f') -> None: ... + +class vtkGenericSubdivisionErrorMetric(vtkmodules.vtkCommonCore.vtkObject): + data_set:'getset_descriptor' + generic_cell:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDataSet(self) -> 'vtkGenericDataSet': ... + def GetError(self, leftPoint:MutableSequence[float], midPoint:MutableSequence[float], rightPoint:MutableSequence[float], alpha:float) -> float: ... + def GetGenericCell(self) -> 'vtkGenericAdaptorCell': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenericSubdivisionErrorMetric': ... + def RequiresEdgeSubdivision(self, leftPoint:MutableSequence[float], midPoint:MutableSequence[float], rightPoint:MutableSequence[float], alpha:float) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericSubdivisionErrorMetric': ... + def SetDataSet(self, ds:'vtkGenericDataSet') -> None: ... + def SetGenericCell(self, cell:'vtkGenericAdaptorCell') -> None: ... + +class vtkAttributesErrorMetric(vtkGenericSubdivisionErrorMetric): + absolute_attribute_tolerance:'getset_descriptor' + attribute_tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAbsoluteAttributeTolerance(self) -> float: ... + def GetAttributeTolerance(self) -> float: ... + def GetError(self, leftPoint:MutableSequence[float], midPoint:MutableSequence[float], rightPoint:MutableSequence[float], alpha:float) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAttributesErrorMetric': ... + def RequiresEdgeSubdivision(self, leftPoint:MutableSequence[float], midPoint:MutableSequence[float], rightPoint:MutableSequence[float], alpha:float) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAttributesErrorMetric': ... + def SetAbsoluteAttributeTolerance(self, value:float) -> None: ... + def SetAttributeTolerance(self, value:float) -> None: ... + +class vtkBSPCuts(vtkDataObject): + data_object_type:'getset_descriptor' + kd_node_tree:'getset_descriptor' + number_of_cuts:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def CreateCuts(self, bounds:MutableSequence[float], ncuts:int, dim:MutableSequence[int], coord:MutableSequence[float], lower:MutableSequence[int], upper:MutableSequence[int], lowerDataCoord:MutableSequence[float], upperDataCoord:MutableSequence[float], npoints:MutableSequence[int]) -> None: ... + @overload + def CreateCuts(self, kd:'vtkKdNode') -> None: ... + def DeepCopy(self, src:'vtkDataObject') -> None: ... + def Equals(self, other:'vtkBSPCuts', tolerance:float=0.0) -> int: ... + def GetArrays(self, len:int, dim:MutableSequence[int], coord:MutableSequence[float], lower:MutableSequence[int], upper:MutableSequence[int], lowerDataCoord:MutableSequence[float], upperDataCoord:MutableSequence[float], npoints:MutableSequence[int]) -> int: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkBSPCuts': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkBSPCuts': ... + def GetDataObjectType(self) -> int: ... + def GetKdNodeTree(self) -> 'vtkKdNode': ... + def GetNumberOfCuts(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBSPCuts': ... + def PrintArrays(self) -> None: ... + def PrintTree(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBSPCuts': ... + def ShallowCopy(self, src:'vtkDataObject') -> None: ... + +class vtkBSPIntersections(vtkmodules.vtkCommonCore.vtkObject): + compute_intersections_using_data_bounds:'getset_descriptor' + cuts:'getset_descriptor' + number_of_regions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeIntersectionsUsingDataBoundsOff(self) -> None: ... + def ComputeIntersectionsUsingDataBoundsOn(self) -> None: ... + def GetBounds(self, bounds:MutableSequence[float]) -> int: ... + def GetComputeIntersectionsUsingDataBounds(self) -> int: ... + def GetCuts(self) -> 'vtkBSPCuts': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfRegions(self) -> int: ... + def GetRegionBounds(self, regionID:int, bounds:MutableSequence[float]) -> int: ... + def GetRegionDataBounds(self, regionID:int, bounds:MutableSequence[float]) -> int: ... + @overload + def IntersectsBox(self, regionId:int, x:MutableSequence[float]) -> int: ... + @overload + def IntersectsBox(self, regionId:int, x0:float, x1:float, y0:float, y1:float, z0:float, z1:float) -> int: ... + @overload + def IntersectsBox(self, ids:MutableSequence[int], len:int, x:MutableSequence[float]) -> int: ... + @overload + def IntersectsBox(self, ids:MutableSequence[int], len:int, x0:float, x1:float, y0:float, y1:float, z0:float, z1:float) -> int: ... + @overload + def IntersectsCell(self, regionId:int, cell:'vtkCell', cellRegion:int=-1) -> int: ... + @overload + def IntersectsCell(self, ids:MutableSequence[int], len:int, cell:'vtkCell', cellRegion:int=-1) -> int: ... + @overload + def IntersectsSphere2(self, regionId:int, x:float, y:float, z:float, rSquared:float) -> int: ... + @overload + def IntersectsSphere2(self, ids:MutableSequence[int], len:int, x:float, y:float, z:float, rSquared:float) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBSPIntersections': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBSPIntersections': ... + def SetComputeIntersectionsUsingDataBounds(self, c:int) -> None: ... + def SetCuts(self, cuts:'vtkBSPCuts') -> None: ... + +class vtkCell(vtkmodules.vtkCommonCore.vtkObject): + bounds:'getset_descriptor' + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + faces:'getset_descriptor' + length2:'getset_descriptor' + number_of_points:'getset_descriptor' + parametric_coords:'getset_descriptor' + point_ids:'getset_descriptor' + points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', connectivity:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def ComputeBoundingSphere(self, center:MutableSequence[float]) -> float: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def DeepCopy(self, c:'vtkCell') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + def GetFaces(self) -> Pointer: ... + def GetLength2(self) -> float: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetParametricDistance(self, pcoords:Sequence[float]) -> float: ... + def GetPointId(self, ptId:int) -> int: ... + def GetPointIds(self) -> 'vtkIdList': ... + def GetPoints(self) -> 'vtkPoints': ... + def Inflate(self, dist:float) -> int: ... + @overload + def Initialize(self, npts:int, pts:Sequence[int], p:'vtkPoints') -> None: ... + @overload + def Initialize(self, npts:int, p:'vtkPoints') -> None: ... + @overload + def Initialize(self) -> None: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weight:MutableSequence[float]) -> None: ... + @overload + def IntersectWithCell(self, other:'vtkCell', tol:float=0.0) -> int: ... + @overload + def IntersectWithCell(self, other:'vtkCell', boudingBox:'vtkBoundingBox', otherBoundingBox:'vtkBoundingBox', tol:float=0.0) -> int: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsExplicitCell(self) -> int: ... + def IsLinear(self) -> int: ... + def IsPrimaryCell(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCell': ... + def RequiresExplicitFaceRepresentation(self) -> int: ... + def RequiresInitialization(self) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCell': ... + def SetFaces(self, faces:MutableSequence[int]) -> None: ... + def ShallowCopy(self, c:'vtkCell') -> None: ... + def Triangulate(self, index:int, ptIds:'vtkIdList', pts:'vtkPoints') -> int: ... + def TriangulateIds(self, index:int, ptIds:'vtkIdList') -> int: ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkNonLinearCell(vtkCell): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsLinear(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkNonLinearCell': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkNonLinearCell': ... + def StableClip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', connectivity:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> bool: ... + +class vtkHigherOrderCurve(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + order:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, __a:int) -> 'vtkCell': ... + def GetFace(self, __a:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOrder(self) -> Pointer: ... + @overload + def GetOrder(self, i:int) -> int: ... + def GetParametricCenter(self, center:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetParametricDistance(self, pcoords:Sequence[float]) -> float: ... + def Initialize(self) -> None: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHigherOrderCurve': ... + @staticmethod + def PointCountSupportsUniformOrder(pointsPerCell:int) -> bool: ... + def PointIndexFromIJK(self, i:int, __b:int, __c:int) -> int: ... + def RequiresInitialization(self) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHigherOrderCurve': ... + def SetParametricCoords(self) -> None: ... + @overload + def SubCellCoordinatesFromId(self, ijk:'vtkVector3i', subId:int) -> bool: ... + @overload + def SubCellCoordinatesFromId(self, i:int, subId:int) -> bool: ... + def TransformApproxToCellParams(self, subCell:int, pcoords:MutableSequence[float]) -> bool: ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkBezierCurve(vtkHigherOrderCurve): + cell_type:'getset_descriptor' + rational_weights:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRationalWeights(self) -> 'vtkDoubleArray': ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBezierCurve': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBezierCurve': ... + def SetRationalWeightsFromPointData(self, point_data:'vtkPointData', numPts:int) -> None: ... + +class vtkHigherOrderHexahedron(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + edge_cell:'getset_descriptor' + face_cell:'getset_descriptor' + interpolation:'getset_descriptor' + order:'getset_descriptor' + parametric_coords:'getset_descriptor' + uniform_order_from_num_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetEdgeCell(self) -> 'vtkHigherOrderCurve': ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + def GetFaceCell(self) -> 'vtkHigherOrderQuadrilateral': ... + def GetInterpolation(self) -> 'vtkHigherOrderInterpolation': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOrder(self) -> Pointer: ... + @overload + def GetOrder(self, i:int) -> int: ... + def GetParametricCenter(self, center:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetParametricDistance(self, pcoords:Sequence[float]) -> float: ... + def Initialize(self) -> None: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHigherOrderHexahedron': ... + @staticmethod + def NodeNumberingMappingFromVTK8To9(order:Sequence[int], node_id_vtk8:int) -> int: ... + @staticmethod + def PointCountSupportsUniformOrder(pointsPerCell:int) -> bool: ... + @overload + @staticmethod + def PointIndexFromIJK(i:int, j:int, k:int, order:Sequence[int]) -> int: ... + @overload + def PointIndexFromIJK(self, i:int, j:int, k:int) -> int: ... + def RequiresInitialization(self) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHigherOrderHexahedron': ... + def SetOrder(self, s:int, t:int, u:int) -> None: ... + @overload + def SetOrderFromCellData(self, cell_data:'vtkCellData', numPts:int, cell_id:int) -> None: ... + @overload + @staticmethod + def SetOrderFromCellData(cell_data:'vtkCellData', numPts:int, cell_id:int, order:MutableSequence[int]) -> None: ... + def SetParametricCoords(self) -> None: ... + def SetUniformOrderFromNumPoints(self, numPts:int) -> None: ... + @overload + def SubCellCoordinatesFromId(self, ijk:'vtkVector3i', subId:int) -> bool: ... + @overload + def SubCellCoordinatesFromId(self, i:int, j:int, k:int, subId:int) -> bool: ... + def TransformApproxToCellParams(self, subCell:int, pcoords:MutableSequence[float]) -> bool: ... + def TransformFaceToCellParams(self, bdyFace:int, pcoords:MutableSequence[float]) -> bool: ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkBezierHexahedron(vtkHigherOrderHexahedron): + cell_type:'getset_descriptor' + edge_cell:'getset_descriptor' + face_cell:'getset_descriptor' + interpolation:'getset_descriptor' + rational_weights:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetEdgeCell(self) -> 'vtkHigherOrderCurve': ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + def GetFaceCell(self) -> 'vtkHigherOrderQuadrilateral': ... + def GetInterpolation(self) -> 'vtkHigherOrderInterpolation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRationalWeights(self) -> 'vtkDoubleArray': ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBezierHexahedron': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBezierHexahedron': ... + def SetRationalWeightsFromPointData(self, point_data:'vtkPointData', numPts:int) -> None: ... + +class vtkHigherOrderInterpolation(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def AppendCurveCollocationPoints(pts:'vtkPoints', order:(int)) -> None: ... + @staticmethod + def AppendHexahedronCollocationPoints(pts:'vtkPoints', order:Sequence[int]) -> None: ... + @staticmethod + def AppendQuadrilateralCollocationPoints(pts:'vtkPoints', order:Sequence[int]) -> None: ... + @staticmethod + def AppendWedgeCollocationPoints(pts:'vtkPoints', order:Sequence[int]) -> None: ... + @staticmethod + def GetEdgeIndicesBoundingHexFace(faceId:int) -> Tuple[int, int, int, int]: ... + @staticmethod + def GetEdgeIndicesBoundingWedgeFace(faceId:int) -> Tuple[int, int, int, int]: ... + @staticmethod + def GetFixedParameterOfHexFace(faceId:int) -> int: ... + @staticmethod + def GetFixedParameterOfWedgeFace(faceId:int) -> int: ... + @staticmethod + def GetFixedParametersOfHexEdge(edgeId:int) -> 'vtkVector2i': ... + @staticmethod + def GetFixedParametersOfWedgeEdge(edgeId:int) -> 'vtkVector2i': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GetParametricHexCoordinates(vertexId:int) -> 'vtkVector3d': ... + @staticmethod + def GetParametricWedgeCoordinates(vertexId:int) -> 'vtkVector3d': ... + @staticmethod + def GetPointIndicesBoundingHexEdge(edgeId:int) -> 'vtkVector2i': ... + @staticmethod + def GetPointIndicesBoundingHexFace(faceId:int) -> Tuple[int, int, int, int]: ... + @staticmethod + def GetPointIndicesBoundingWedgeEdge(edgeId:int) -> 'vtkVector2i': ... + @staticmethod + def GetPointIndicesBoundingWedgeFace(faceId:int) -> Tuple[int, int, int, int]: ... + @staticmethod + def GetVaryingParameterOfHexEdge(edgeId:int) -> int: ... + @staticmethod + def GetVaryingParameterOfWedgeEdge(edgeId:int) -> int: ... + @staticmethod + def GetVaryingParametersOfHexFace(faceId:int) -> 'vtkVector2i': ... + @staticmethod + def GetVaryingParametersOfWedgeFace(faceId:int) -> 'vtkVector2i': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHigherOrderInterpolation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHigherOrderInterpolation': ... + def Tensor3EvaluateDerivative(self, order:Sequence[int], pcoords:Sequence[float], points:'vtkPoints', fieldVals:Sequence[float], fieldDim:int, fieldDerivs:MutableSequence[float]) -> None: ... + def WedgeEvaluate(self, order:Sequence[int], numberOfPoints:int, pcoords:Sequence[float], fieldVals:MutableSequence[float], fieldDim:int, fieldAtPCoords:MutableSequence[float]) -> None: ... + def WedgeEvaluateDerivative(self, order:Sequence[int], pcoords:Sequence[float], points:'vtkPoints', fieldVals:Sequence[float], fieldDim:int, fieldDerivs:MutableSequence[float]) -> None: ... + +class vtkBezierInterpolation(vtkHigherOrderInterpolation): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def DeCasteljauSimplex(dim:int, deg:int, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def DeCasteljauSimplexDeriv(dim:int, deg:int, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def EvaluateShapeAndGradient(order:int, pcoord:float, shape:MutableSequence[float], grad:MutableSequence[float]) -> None: ... + @staticmethod + def EvaluateShapeFunctions(order:int, pcoord:float, shape:MutableSequence[float]) -> None: ... + @staticmethod + def FlattenSimplex(dim:int, deg:int, coord:'vtkVector3i') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBezierInterpolation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBezierInterpolation': ... + @staticmethod + def Tensor1ShapeDerivatives(order:(int), pcoords:Sequence[float], derivs:MutableSequence[float]) -> int: ... + @staticmethod + def Tensor1ShapeFunctions(order:(int), pcoords:Sequence[float], shape:MutableSequence[float]) -> int: ... + @staticmethod + def Tensor2ShapeDerivatives(order:Sequence[int], pcoords:Sequence[float], derivs:MutableSequence[float]) -> int: ... + @staticmethod + def Tensor2ShapeFunctions(order:Sequence[int], pcoords:Sequence[float], shape:MutableSequence[float]) -> int: ... + def Tensor3EvaluateDerivative(self, order:Sequence[int], pcoords:Sequence[float], points:'vtkPoints', fieldVals:Sequence[float], fieldDim:int, fieldDerivs:MutableSequence[float]) -> None: ... + @staticmethod + def Tensor3ShapeDerivatives(order:Sequence[int], pcoords:Sequence[float], derivs:MutableSequence[float]) -> int: ... + @staticmethod + def Tensor3ShapeFunctions(order:Sequence[int], pcoords:Sequence[float], shape:MutableSequence[float]) -> int: ... + @staticmethod + def UnFlattenSimplex(dim:int, deg:int, flat:int) -> 'vtkVector3i': ... + def WedgeEvaluate(self, order:Sequence[int], numberOfPoints:int, pcoords:Sequence[float], fieldVals:MutableSequence[float], fieldDim:int, fieldAtPCoords:MutableSequence[float]) -> None: ... + def WedgeEvaluateDerivative(self, order:Sequence[int], pcoords:Sequence[float], points:'vtkPoints', fieldVals:Sequence[float], fieldDim:int, fieldDerivs:MutableSequence[float]) -> None: ... + @staticmethod + def WedgeShapeDerivatives(order:Sequence[int], numberOfPoints:int, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def WedgeShapeFunctions(order:Sequence[int], numberOfPoints:int, pcoords:Sequence[float], shape:MutableSequence[float]) -> None: ... + +class vtkHigherOrderQuadrilateral(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + edge_cell:'getset_descriptor' + order:'getset_descriptor' + parametric_coords:'getset_descriptor' + uniform_order_from_num_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetEdgeCell(self) -> 'vtkHigherOrderCurve': ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOrder(self) -> Pointer: ... + @overload + def GetOrder(self, i:int) -> int: ... + def GetParametricCenter(self, center:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetParametricDistance(self, pcoords:Sequence[float]) -> float: ... + def Initialize(self) -> None: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHigherOrderQuadrilateral': ... + @staticmethod + def PointCountSupportsUniformOrder(pointsPerCell:int) -> bool: ... + @overload + def PointIndexFromIJK(self, i:int, j:int, k:int) -> int: ... + @overload + @staticmethod + def PointIndexFromIJK(i:int, j:int, order:Sequence[int]) -> int: ... + def RequiresInitialization(self) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHigherOrderQuadrilateral': ... + def SetOrder(self, s:int, t:int) -> None: ... + @overload + def SetOrderFromCellData(self, cell_data:'vtkCellData', numPts:int, cell_id:int) -> None: ... + @overload + @staticmethod + def SetOrderFromCellData(cell_data:'vtkCellData', numPts:int, cell_id:int, order:MutableSequence[int]) -> None: ... + def SetParametricCoords(self) -> None: ... + def SetUniformOrderFromNumPoints(self, numPts:int) -> None: ... + @overload + def SubCellCoordinatesFromId(self, ijk:'vtkVector3i', subId:int) -> bool: ... + @overload + def SubCellCoordinatesFromId(self, i:int, j:int, k:int, subId:int) -> bool: ... + def TransformApproxToCellParams(self, subCell:int, pcoords:MutableSequence[float]) -> bool: ... + def TriangulateLocalIds(self, index:int, ptId:'vtkIdList') -> int: ... + +class vtkBezierQuadrilateral(vtkHigherOrderQuadrilateral): + cell_type:'getset_descriptor' + edge_cell:'getset_descriptor' + rational_weights:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetEdgeCell(self) -> 'vtkHigherOrderCurve': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRationalWeights(self) -> 'vtkDoubleArray': ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBezierQuadrilateral': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBezierQuadrilateral': ... + def SetRationalWeightsFromPointData(self, point_data:'vtkPointData', numPts:int) -> None: ... + +class vtkHigherOrderTetra(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + edge_cell:'getset_descriptor' + face_cell:'getset_descriptor' + order:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def BarycentricIndex(index:int, bindex:MutableSequence[int], order:int) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + @overload + def ComputeOrder(self) -> int: ... + @overload + @staticmethod + def ComputeOrder(nPoints:int) -> int: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetEdgeCell(self) -> 'vtkHigherOrderCurve': ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + def GetFaceCell(self) -> 'vtkHigherOrderTriangle': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrder(self) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetParametricDistance(self, pcoords:Sequence[float]) -> float: ... + @staticmethod + def Index(bindex:Sequence[int], order:int) -> int: ... + def Initialize(self) -> None: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHigherOrderTetra': ... + @staticmethod + def PointCountSupportsUniformOrder(pointsPerCell:int) -> bool: ... + def RequiresInitialization(self) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHigherOrderTetra': ... + def SetParametricCoords(self) -> None: ... + def ToBarycentricIndex(self, index:int, bindex:MutableSequence[int]) -> None: ... + def ToIndex(self, bindex:Sequence[int]) -> int: ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkBezierTetra(vtkHigherOrderTetra): + cell_type:'getset_descriptor' + edge_cell:'getset_descriptor' + face_cell:'getset_descriptor' + rational_weights:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetEdgeCell(self) -> 'vtkHigherOrderCurve': ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + def GetFaceCell(self) -> 'vtkHigherOrderTriangle': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRationalWeights(self) -> 'vtkDoubleArray': ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBezierTetra': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBezierTetra': ... + def SetRationalWeightsFromPointData(self, point_data:'vtkPointData', numPts:int) -> None: ... + +class vtkHigherOrderTriangle(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + edge_cell:'getset_descriptor' + order:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def BarycentricIndex(index:int, bindex:MutableSequence[int], order:int) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def ComputeOrder(self) -> int: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + @staticmethod + def Deta(n:int, chi:int, sigma:float) -> float: ... + @staticmethod + def Eta(n:int, chi:int, sigma:float) -> float: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetEdgeCell(self) -> 'vtkHigherOrderCurve': ... + def GetFace(self, __a:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrder(self) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetParametricDistance(self, pcoords:Sequence[float]) -> float: ... + @staticmethod + def Index(bindex:Sequence[int], order:int) -> int: ... + def Initialize(self) -> None: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHigherOrderTriangle': ... + @staticmethod + def PointCountSupportsUniformOrder(pointsPerTri:int) -> bool: ... + def RequiresInitialization(self) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHigherOrderTriangle': ... + def SetParametricCoords(self) -> None: ... + def ToBarycentricIndex(self, index:int, bindex:MutableSequence[int]) -> None: ... + def ToIndex(self, bindex:Sequence[int]) -> int: ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkBezierTriangle(vtkHigherOrderTriangle): + cell_type:'getset_descriptor' + edge_cell:'getset_descriptor' + rational_weights:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetEdgeCell(self) -> 'vtkHigherOrderCurve': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRationalWeights(self) -> 'vtkDoubleArray': ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBezierTriangle': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBezierTriangle': ... + def SetRationalWeightsFromPointData(self, point_data:'vtkPointData', numPts:int) -> None: ... + +class vtkHigherOrderWedge(vtkNonLinearCell): + boundary_quad:'getset_descriptor' + boundary_tri:'getset_descriptor' + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + edge_cell:'getset_descriptor' + interpolation:'getset_descriptor' + number_of_approximating_wedges:'getset_descriptor' + order:'getset_descriptor' + parametric_coords:'getset_descriptor' + uniform_order_from_num_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetBoundaryQuad(self) -> 'vtkHigherOrderQuadrilateral': ... + def GetBoundaryTri(self) -> 'vtkHigherOrderTriangle': ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetEdgeCell(self) -> 'vtkHigherOrderCurve': ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + def GetInterpolation(self) -> 'vtkHigherOrderInterpolation': ... + @overload + @staticmethod + def GetNumberOfApproximatingWedges(order:Sequence[int]) -> int: ... + @overload + def GetNumberOfApproximatingWedges(self) -> int: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOrder(self) -> Pointer: ... + @overload + def GetOrder(self, i:int) -> int: ... + def GetParametricCenter(self, center:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetParametricDistance(self, pcoords:Sequence[float]) -> float: ... + def Initialize(self) -> None: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHigherOrderWedge': ... + @staticmethod + def PointCountSupportsUniformOrder(pointsPerCell:int) -> bool: ... + @overload + @staticmethod + def PointIndexFromIJK(i:int, j:int, k:int, order:Sequence[int]) -> int: ... + @overload + def PointIndexFromIJK(self, i:int, j:int, k:int) -> int: ... + def RequiresInitialization(self) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHigherOrderWedge': ... + def SetOrder(self, s:int, t:int, u:int, numPts:int) -> None: ... + @overload + def SetOrderFromCellData(self, cell_data:'vtkCellData', numPts:int, cell_id:int) -> None: ... + @overload + @staticmethod + def SetOrderFromCellData(cell_data:'vtkCellData', numPts:int, cell_id:int, order:MutableSequence[int]) -> None: ... + def SetParametricCoords(self) -> None: ... + def SetUniformOrderFromNumPoints(self, numPts:int) -> None: ... + @overload + def SubCellCoordinatesFromId(self, ijk:'vtkVector3i', subId:int) -> bool: ... + @overload + def SubCellCoordinatesFromId(self, i:int, j:int, k:int, subId:int) -> bool: ... + def TransformApproxToCellParams(self, subCell:int, pcoords:MutableSequence[float]) -> bool: ... + def TransformFaceToCellParams(self, bdyFace:int, pcoords:MutableSequence[float]) -> bool: ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkBezierWedge(vtkHigherOrderWedge): + boundary_quad:'getset_descriptor' + boundary_tri:'getset_descriptor' + cell_type:'getset_descriptor' + edge_cell:'getset_descriptor' + interpolation:'getset_descriptor' + rational_weights:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBoundaryQuad(self) -> 'vtkHigherOrderQuadrilateral': ... + def GetBoundaryTri(self) -> 'vtkHigherOrderTriangle': ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetEdgeCell(self) -> 'vtkHigherOrderCurve': ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + def GetInterpolation(self) -> 'vtkHigherOrderInterpolation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRationalWeights(self) -> 'vtkDoubleArray': ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBezierWedge': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBezierWedge': ... + def SetRationalWeightsFromPointData(self, point_data:'vtkPointData', numPts:int) -> None: ... + +class vtkBiQuadraticQuad(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, __a:int) -> 'vtkCell': ... + def GetFace(self, __a:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBiQuadraticQuad': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBiQuadraticQuad': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkBiQuadraticQuadraticHexahedron(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', tetras:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, __a:int) -> 'vtkCell': ... + @staticmethod + def GetEdgeArray(edgeId:int) -> Pointer: ... + def GetFace(self, __a:int) -> 'vtkCell': ... + @staticmethod + def GetFaceArray(faceId:int) -> Pointer: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBiQuadraticQuadraticHexahedron': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBiQuadraticQuadraticHexahedron': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkBiQuadraticQuadraticWedge(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', tetras:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + @staticmethod + def GetEdgeArray(edgeId:int) -> Pointer: ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + @staticmethod + def GetFaceArray(faceId:int) -> Pointer: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBiQuadraticQuadraticWedge': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBiQuadraticQuadraticWedge': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkBiQuadraticTriangle(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetFace(self, __a:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetParametricDistance(self, pcoords:Sequence[float]) -> float: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBiQuadraticTriangle': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBiQuadraticTriangle': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkBond(object): + begin_atom:'getset_descriptor' + begin_atom_id:'getset_descriptor' + end_atom:'getset_descriptor' + end_atom_id:'getset_descriptor' + id:'getset_descriptor' + length:'getset_descriptor' + molecule:'getset_descriptor' + order:'getset_descriptor' + def __init__(self, __a:'vtkBond') -> None: ... + def GetBeginAtom(self) -> 'vtkAtom': ... + def GetBeginAtomId(self) -> int: ... + def GetEndAtom(self) -> 'vtkAtom': ... + def GetEndAtomId(self) -> int: ... + def GetId(self) -> int: ... + def GetLength(self) -> float: ... + def GetMolecule(self) -> 'vtkMolecule': ... + def GetOrder(self) -> int: ... + +class vtkBoundingBox(object): + bounds:'getset_descriptor' + diagonal_length:'getset_descriptor' + diagonal_length2:'getset_descriptor' + max_length:'getset_descriptor' + max_point:'getset_descriptor' + min_point:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, bounds:Sequence[float]) -> None: ... + @overload + def __init__(self, xMin:float, xMax:float, yMin:float, yMax:float, zMin:float, zMax:float) -> None: ... + @overload + def __init__(self, center:MutableSequence[float], delta:float) -> None: ... + @overload + def __init__(self, bbox:'vtkBoundingBox') -> None: ... + def AddBounds(self, bounds:Sequence[float]) -> None: ... + def AddBox(self, bbox:'vtkBoundingBox') -> None: ... + @overload + def AddPoint(self, p:MutableSequence[float]) -> None: ... + @overload + def AddPoint(self, px:float, py:float, pz:float) -> None: ... + @staticmethod + def ClampDivisions(targetBins:int, divs:MutableSequence[int]) -> None: ... + def ClampPoint(self, point:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def ComputeBounds(pts:'vtkPoints', bounds:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def ComputeBounds(pts:'vtkPoints', ptUses:Sequence[int], bounds:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def ComputeBounds(pts:'vtkPoints', ptIds:Sequence[int], numPointIds:int, bounds:MutableSequence[float]) -> None: ... + @overload + def ComputeBounds(self, pts:'vtkPoints') -> None: ... + @overload + def ComputeBounds(self, pts:'vtkPoints', ptUses:MutableSequence[int]) -> None: ... + def ComputeDivisions(self, totalBins:int, bounds:MutableSequence[float], divs:MutableSequence[int]) -> int: ... + def ComputeInnerDimension(self) -> int: ... + @staticmethod + def ComputeLocalBounds(points:'vtkPoints', u:MutableSequence[float], v:MutableSequence[float], w:MutableSequence[float], outputBounds:MutableSequence[float]) -> None: ... + def Contains(self, bbox:'vtkBoundingBox') -> int: ... + @staticmethod + def ContainsLine(x:Sequence[float], s:Sequence[float], lineEnd:Sequence[float], t:float, xInt:MutableSequence[float], plane:int) -> bool: ... + @overload + def ContainsPoint(self, p:Sequence[float]) -> int: ... + @overload + def ContainsPoint(self, px:float, py:float, pz:float) -> int: ... + def GetBound(self, i:int) -> float: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetBounds(self, xMin:float, xMax:float, yMin:float, yMax:float, zMin:float, zMax:float) -> None: ... + def GetCenter(self, center:MutableSequence[float]) -> None: ... + def GetCorner(self, corner:int, p:MutableSequence[float]) -> None: ... + def GetDiagonalLength(self) -> float: ... + def GetDiagonalLength2(self) -> float: ... + def GetDistance(self, point:MutableSequence[float], distance:MutableSequence[float]) -> None: ... + def GetLength(self, i:int) -> float: ... + def GetLengths(self, lengths:MutableSequence[float]) -> None: ... + def GetMaxLength(self) -> float: ... + @overload + def GetMaxPoint(self) -> Tuple[float, float, float]: ... + @overload + def GetMaxPoint(self, x:float, y:float, z:float) -> None: ... + @overload + def GetMaxPoint(self, x:MutableSequence[float]) -> None: ... + @overload + def GetMinPoint(self) -> Tuple[float, float, float]: ... + @overload + def GetMinPoint(self, x:float, y:float, z:float) -> None: ... + @overload + def GetMinPoint(self, x:MutableSequence[float]) -> None: ... + @overload + def Inflate(self, delta:float) -> None: ... + @overload + def Inflate(self, deltaX:float, deltaY:float, deltaZ:float) -> None: ... + @overload + def Inflate(self) -> None: ... + def InflateSlice(self, delta:float) -> None: ... + def IntersectBox(self, bbox:'vtkBoundingBox') -> int: ... + def IntersectPlane(self, origin:MutableSequence[float], normal:MutableSequence[float]) -> bool: ... + def Intersects(self, bbox:'vtkBoundingBox') -> int: ... + def IntersectsLine(self, p1:Sequence[float], p2:Sequence[float]) -> bool: ... + def IntersectsSphere(self, center:MutableSequence[float], squaredRadius:float) -> bool: ... + def IsSubsetOf(self, bbox:'vtkBoundingBox') -> bool: ... + @overload + def IsValid(self) -> int: ... + @overload + @staticmethod + def IsValid(bounds:Sequence[float]) -> int: ... + def Reset(self) -> None: ... + @overload + def Scale(self, s:MutableSequence[float]) -> None: ... + @overload + def Scale(self, sx:float, sy:float, sz:float) -> None: ... + @overload + def ScaleAboutCenter(self, s:float) -> None: ... + @overload + def ScaleAboutCenter(self, s:MutableSequence[float]) -> None: ... + @overload + def ScaleAboutCenter(self, sx:float, sy:float, sz:float) -> None: ... + @overload + def SetBounds(self, bounds:Sequence[float]) -> None: ... + @overload + def SetBounds(self, xMin:float, xMax:float, yMin:float, yMax:float, zMin:float, zMax:float) -> None: ... + @overload + def SetMaxPoint(self, x:float, y:float, z:float) -> None: ... + @overload + def SetMaxPoint(self, p:MutableSequence[float]) -> None: ... + @overload + def SetMinPoint(self, x:float, y:float, z:float) -> None: ... + @overload + def SetMinPoint(self, p:MutableSequence[float]) -> None: ... + def Translate(self, motion:MutableSequence[float]) -> None: ... + +class vtkBox(vtkImplicitFunction): + bounds:'getset_descriptor' + x_max:'getset_descriptor' + x_min:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddBounds(self, bounds:Sequence[float]) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], n:MutableSequence[float]) -> None: ... + @overload + def GetBounds(self, xMin:float, xMax:float, yMin:float, yMax:float, zMin:float, zMax:float) -> None: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetXMax(self, p:MutableSequence[float]) -> None: ... + @overload + def GetXMax(self, x:float, y:float, z:float) -> None: ... + @overload + def GetXMin(self, p:MutableSequence[float]) -> None: ... + @overload + def GetXMin(self, x:float, y:float, z:float) -> None: ... + @staticmethod + def IntersectBox(bounds:Sequence[float], origin:Sequence[float], dir:Sequence[float], coord:MutableSequence[float], t:float, tolerance:float=0.0) -> str: ... + @staticmethod + def IntersectWithInfiniteLine(bounds:Sequence[float], p1:Sequence[float], p2:Sequence[float], t1:float, t2:float, x1:MutableSequence[float], x2:MutableSequence[float], plane1:int, plane2:int) -> bool: ... + @staticmethod + def IntersectWithLine(bounds:Sequence[float], p1:Sequence[float], p2:Sequence[float], t1:float, t2:float, x1:MutableSequence[float], x2:MutableSequence[float], plane1:int, plane2:int) -> int: ... + @overload + @staticmethod + def IntersectWithPlane(bounds:MutableSequence[float], origin:MutableSequence[float], normal:MutableSequence[float]) -> int: ... + @overload + @staticmethod + def IntersectWithPlane(bounds:MutableSequence[float], origin:MutableSequence[float], normal:MutableSequence[float], xout:MutableSequence[float]) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsBoxInFrustum(planes:MutableSequence[float], bounds:MutableSequence[float]) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBox': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBox': ... + @overload + def SetBounds(self, xMin:float, xMax:float, yMin:float, yMax:float, zMin:float, zMax:float) -> None: ... + @overload + def SetBounds(self, bounds:Sequence[float]) -> None: ... + @overload + def SetXMax(self, p:MutableSequence[float]) -> None: ... + @overload + def SetXMax(self, x:float, y:float, z:float) -> None: ... + @overload + def SetXMin(self, p:MutableSequence[float]) -> None: ... + @overload + def SetXMin(self, x:float, y:float, z:float) -> None: ... + +class vtkCell3D(vtkCell): + cell_dimension:'getset_descriptor' + merge_tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', connectivity:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def GetCellDimension(self) -> int: ... + def GetCentroid(self, centroid:MutableSequence[float]) -> bool: ... + def GetEdgePoints(self, edgeId:int, pts:Sequence[int]) -> None: ... + def GetEdgeToAdjacentFaces(self, edgeId:int, faceIds:Sequence[int]) -> None: ... + def GetFacePoints(self, faceId:int, pts:Sequence[int]) -> int: ... + def GetFaceToAdjacentFaces(self, faceId:int, faceIds:Sequence[int]) -> int: ... + def GetMergeTolerance(self) -> float: ... + def GetMergeToleranceMaxValue(self) -> float: ... + def GetMergeToleranceMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointToIncidentEdges(self, pointId:int, edgeIds:Sequence[int]) -> int: ... + def GetPointToIncidentFaces(self, pointId:int, faceIds:Sequence[int]) -> int: ... + def GetPointToOneRingPoints(self, pointId:int, pts:Sequence[int]) -> int: ... + def Inflate(self, dist:float) -> int: ... + def IsA(self, type:str) -> int: ... + def IsInsideOut(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCell3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCell3D': ... + def SetMergeTolerance(self, _arg:float) -> None: ... + +class vtkCellArray(vtkAbstractCellArray): + actual_memory_size:'getset_descriptor' + connectivity_array:'getset_descriptor' + connectivity_array32:'getset_descriptor' + connectivity_array64:'getset_descriptor' + data:'getset_descriptor' + default_storage_is64_bit:'getset_descriptor' + max_cell_size:'getset_descriptor' + number_of_cells:'getset_descriptor' + number_of_connectivity_entries:'getset_descriptor' + number_of_connectivity_ids:'getset_descriptor' + offset:'getset_descriptor' + offsets_array:'getset_descriptor' + offsets_array32:'getset_descriptor' + offsets_array64:'getset_descriptor' + size:'getset_descriptor' + traversal_cell_id:'getset_descriptor' + traversal_location:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, sz:int, ext:int=1000) -> int: ... + def AllocateCopy(self, other:'vtkCellArray') -> bool: ... + def AllocateEstimate(self, numCells:int, maxCellSize:int) -> bool: ... + def AllocateExact(self, numCells:int, connectivitySize:int) -> bool: ... + def Append(self, src:'vtkCellArray', pointOffset:int=0) -> None: ... + @overload + def AppendLegacyFormat(self, data:'vtkIdTypeArray', ptOffset:int=0) -> None: ... + @overload + def AppendLegacyFormat(self, data:Sequence[int], len:int, ptOffset:int=0) -> None: ... + def CanConvertTo32BitStorage(self) -> bool: ... + def CanConvertTo64BitStorage(self) -> bool: ... + def CanConvertToDefaultStorage(self) -> bool: ... + def ConvertTo32BitStorage(self) -> bool: ... + def ConvertTo64BitStorage(self) -> bool: ... + def ConvertToDefaultStorage(self) -> bool: ... + def ConvertToSmallestStorage(self) -> bool: ... + def DeepCopy(self, ca:'vtkAbstractCellArray') -> None: ... + def EstimateSize(self, numCells:int, maxPtsPerCell:int) -> int: ... + def ExportLegacyFormat(self, data:'vtkIdTypeArray') -> None: ... + def GetActualMemorySize(self) -> int: ... + @overload + def GetCell(self, loc:int, npts:int, pts:Sequence[int]) -> None: ... + @overload + def GetCell(self, loc:int, pts:'vtkIdList') -> None: ... + @overload + def GetCellAtId(self, cellId:int, cellSize:int, cellPoints:Sequence[int], ptIds:'vtkIdList') -> None: ... + @overload + def GetCellAtId(self, cellId:int, pts:'vtkIdList') -> None: ... + @overload + def GetCellAtId(self, cellId:int, cellSize:int, cellPoints:MutableSequence[int]) -> None: ... + @overload + def GetCellAtId(self, cellId:int, cellSize:int, cellPoints:Sequence[int]) -> None: ... + def GetCellPointAtId(self, cellId:int, cellPointIndex:int) -> int: ... + def GetCellSize(self, cellId:int) -> int: ... + def GetConnectivityArray(self) -> 'vtkDataArray': ... + def GetConnectivityArray32(self) -> 'vtkTypeInt32Array': ... + def GetConnectivityArray64(self) -> 'vtkTypeInt64Array': ... + def GetData(self) -> 'vtkIdTypeArray': ... + @staticmethod + def GetDefaultStorageIs64Bit() -> bool: ... + def GetInsertLocation(self, npts:int) -> int: ... + def GetMaxCellSize(self) -> int: ... + @overload + def GetNextCell(self, npts:int, pts:Sequence[int]) -> int: ... + @overload + def GetNextCell(self, pts:'vtkIdList') -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfConnectivityEntries(self) -> int: ... + def GetNumberOfConnectivityIds(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfOffsets(self) -> int: ... + def GetOffset(self, cellId:int) -> int: ... + def GetOffsetsArray(self) -> 'vtkDataArray': ... + def GetOffsetsArray32(self) -> 'vtkTypeInt32Array': ... + def GetOffsetsArray64(self) -> 'vtkTypeInt64Array': ... + def GetSize(self) -> int: ... + def GetTraversalCellId(self) -> int: ... + @overload + def GetTraversalLocation(self) -> int: ... + @overload + def GetTraversalLocation(self, npts:int) -> int: ... + @overload + def ImportLegacyFormat(self, data:'vtkIdTypeArray') -> None: ... + @overload + def ImportLegacyFormat(self, data:Sequence[int], len:int) -> None: ... + def InitTraversal(self) -> None: ... + def Initialize(self) -> None: ... + def InsertCellPoint(self, id:int) -> None: ... + @overload + def InsertNextCell(self, cell:'vtkCell') -> int: ... + @overload + def InsertNextCell(self, npts:int, pts:Sequence[int]) -> int: ... + @overload + def InsertNextCell(self, pts:'vtkIdList') -> int: ... + @overload + def InsertNextCell(self, npts:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsHomogeneous(self) -> int: ... + def IsStorage64Bit(self) -> bool: ... + def IsStorageShareable(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def IsValid(self) -> bool: ... + def NewInstance(self) -> 'vtkCellArray': ... + def NewIterator(self) -> 'vtkCellArrayIterator': ... + def ReplaceCell(self, loc:int, npts:int, pts:Sequence[int]) -> None: ... + @overload + def ReplaceCellAtId(self, cellId:int, list:'vtkIdList') -> None: ... + @overload + def ReplaceCellAtId(self, cellId:int, cellSize:int, cellPoints:Sequence[int]) -> None: ... + def ReplaceCellPointAtId(self, cellId:int, cellPointIndex:int, newPointId:int) -> None: ... + def Reset(self) -> None: ... + def ResizeExact(self, numCells:int, connectivitySize:int) -> bool: ... + def ReverseCell(self, loc:int) -> None: ... + def ReverseCellAtId(self, cellId:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellArray': ... + def SetCells(self, ncells:int, cells:'vtkIdTypeArray') -> None: ... + @overload + def SetData(self, offsets:'vtkIdTypeArray', connectivity:'vtkIdTypeArray') -> None: ... + @overload + def SetData(self, offsets:'vtkAOSDataArrayTemplate_IiE', connectivity:'vtkAOSDataArrayTemplate_IiE') -> None: ... + @overload + def SetData(self, offsets:'vtkAOSDataArrayTemplate_IlE', connectivity:'vtkAOSDataArrayTemplate_IlE') -> None: ... + @overload + def SetData(self, offsets:'vtkAOSDataArrayTemplate_IxE', connectivity:'vtkAOSDataArrayTemplate_IxE') -> None: ... + @overload + def SetData(self, offsets:'vtkTypeInt32Array', connectivity:'vtkTypeInt32Array') -> None: ... + @overload + def SetData(self, offsets:'vtkTypeInt64Array', connectivity:'vtkTypeInt64Array') -> None: ... + @overload + def SetData(self, offsets:'vtkDataArray', connectivity:'vtkDataArray') -> bool: ... + @overload + def SetData(self, cellSize:int, connectivity:'vtkDataArray') -> bool: ... + @staticmethod + def SetDefaultStorageIs64Bit(val:bool) -> None: ... + def SetNumberOfCells(self, __a:int) -> None: ... + def SetOffset(self, cellId:int, offset:int) -> None: ... + def SetTraversalCellId(self, cellId:int) -> None: ... + def SetTraversalLocation(self, loc:int) -> None: ... + def ShallowCopy(self, ca:'vtkAbstractCellArray') -> None: ... + def Squeeze(self) -> None: ... + def UpdateCellCount(self, npts:int) -> None: ... + def Use32BitStorage(self) -> None: ... + def Use64BitStorage(self) -> None: ... + def UseDefaultStorage(self) -> None: ... + +class vtkCellArrayIterator(vtkmodules.vtkCommonCore.vtkObject): + cell_array:'getset_descriptor' + current_cell:'getset_descriptor' + current_cell_id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellArray(self) -> 'vtkCellArray': ... + @overload + def GetCellAtId(self, cellId:int, numCellPts:int, cellPts:Sequence[int]) -> None: ... + @overload + def GetCellAtId(self, cellId:int, cellIds:'vtkIdList') -> None: ... + @overload + def GetCellAtId(self, cellId:int) -> 'vtkIdList': ... + @overload + def GetCurrentCell(self, cellSize:int, cellPoints:Sequence[int]) -> None: ... + @overload + def GetCurrentCell(self, ids:'vtkIdList') -> None: ... + @overload + def GetCurrentCell(self) -> 'vtkIdList': ... + def GetCurrentCellId(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GoToCell(self, cellId:int) -> None: ... + def GoToFirstCell(self) -> None: ... + def GoToNextCell(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsDoneWithTraversal(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellArrayIterator': ... + @overload + def ReplaceCurrentCell(self, list:'vtkIdList') -> None: ... + @overload + def ReplaceCurrentCell(self, npts:int, pts:Sequence[int]) -> None: ... + def ReverseCurrentCell(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellArrayIterator': ... + +class vtkCellAttribute(vtkmodules.vtkCommonCore.vtkObject): + colormap:'getset_descriptor' + id:'getset_descriptor' + name:'getset_descriptor' + number_of_components:'getset_descriptor' + space:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def DecodeSpace(space:str, base:str, exp:float, halfspace:int, quiet:bool=False) -> bool: ... + @staticmethod + def EncodeSpace(base:str, __b:int, halfspace:int=0) -> str: ... + def GetArrayForCellTypeAndRole(self, cellType:'vtkStringToken', arrayRole:'vtkStringToken') -> 'vtkAbstractArray': ... + def GetColormap(self) -> 'vtkScalarsToColors': ... + def GetId(self) -> int: ... + def GetName(self) -> 'vtkStringToken': ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSpace(self) -> 'vtkStringToken': ... + def Initialize(self, name:'vtkStringToken', space:'vtkStringToken', numberOfComponents:int) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellAttribute': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellAttribute': ... + def SetColormap(self, colormap:'vtkScalarsToColors') -> bool: ... + def SetId(self, _arg:int) -> None: ... + def ShallowCopy(self, other:'vtkCellAttribute', copyArrays:bool=True) -> None: ... + +class vtkCellAttributeCalculator(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellAttributeCalculator': ... + def PrepareForGrid(self, cell:'vtkCellMetadata', field:'vtkCellAttribute') -> 'vtkCellAttributeCalculator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellAttributeCalculator': ... + +class vtkFieldData(vtkmodules.vtkCommonCore.vtkObject): + actual_memory_size:'getset_descriptor' + ghost_array:'getset_descriptor' + ghosts_to_skip:'getset_descriptor' + m_time:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddArray(self, array:'vtkAbstractArray') -> int: ... + def Allocate(self, sz:int, ext:int=1000) -> int: ... + def AllocateArrays(self, num:int) -> None: ... + def CopyAllOff(self, unused:int=0) -> None: ... + def CopyAllOn(self, unused:int=0) -> None: ... + def CopyFieldOff(self, name:str) -> None: ... + def CopyFieldOn(self, name:str) -> None: ... + def CopyStructure(self, __a:'vtkFieldData') -> None: ... + def DeepCopy(self, da:'vtkFieldData') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkFieldData': ... + @overload + def GetAbstractArray(self, i:int) -> 'vtkAbstractArray': ... + @overload + def GetAbstractArray(self, arrayName:str, index:int) -> 'vtkAbstractArray': ... + @overload + def GetAbstractArray(self, arrayName:str) -> 'vtkAbstractArray': ... + def GetActualMemorySize(self) -> int: ... + @overload + def GetArray(self, i:int) -> 'vtkDataArray': ... + @overload + def GetArray(self, arrayName:str, index:int) -> 'vtkDataArray': ... + @overload + def GetArray(self, arrayName:str) -> 'vtkDataArray': ... + def GetArrayContainingComponent(self, i:int, arrayComp:int) -> int: ... + def GetArrayName(self, i:int) -> str: ... + def GetField(self, ptId:'vtkIdList', f:'vtkFieldData') -> None: ... + @overload + def GetFiniteRange(self, name:str, range:MutableSequence[float], comp:int=0) -> bool: ... + @overload + def GetFiniteRange(self, index:int, range:MutableSequence[float], comp:int=0) -> bool: ... + def GetGhostArray(self) -> 'vtkUnsignedCharArray': ... + def GetGhostsToSkip(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfArrays(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + @overload + def GetRange(self, name:str, range:MutableSequence[float], comp:int=0) -> bool: ... + @overload + def GetRange(self, index:int, range:MutableSequence[float], comp:int=0) -> bool: ... + def HasAnyGhostBitSet(self, bitFlag:int) -> bool: ... + def HasArray(self, name:str) -> int: ... + def Initialize(self) -> None: ... + def InsertNextTuple(self, j:int, source:'vtkFieldData') -> int: ... + def InsertTuple(self, i:int, j:int, source:'vtkFieldData') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFieldData': ... + def NullData(self, id:int) -> None: ... + def PassData(self, fd:'vtkFieldData') -> None: ... + @overload + def RemoveArray(self, name:str) -> None: ... + @overload + def RemoveArray(self, index:int) -> None: ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFieldData': ... + def SetGhostsToSkip(self, __a:int) -> None: ... + def SetNumberOfTuples(self, number:int) -> None: ... + def SetTuple(self, i:int, j:int, source:'vtkFieldData') -> None: ... + def ShallowCopy(self, da:'vtkFieldData') -> None: ... + def Squeeze(self) -> None: ... + +class vtkDataSetAttributes(vtkFieldData): + class AttributeCopyOperations(int): ... + class AttributeLimitTypes(int): ... + class AttributeTypes(int): ... + class CellGhostTypes(int): ... + class PointGhostTypes(int): ... + ALLCOPY:'AttributeCopyOperations' + COPYTUPLE:'AttributeCopyOperations' + DUPLICATECELL:'CellGhostTypes' + DUPLICATEPOINT:'PointGhostTypes' + EDGEFLAG:'AttributeTypes' + EXACT:'AttributeLimitTypes' + EXTERIORCELL:'CellGhostTypes' + GLOBALIDS:'AttributeTypes' + HIDDENCELL:'CellGhostTypes' + HIDDENPOINT:'PointGhostTypes' + HIGHCONNECTIVITYCELL:'CellGhostTypes' + HIGHERORDERDEGREES:'AttributeTypes' + INTERPOLATE:'AttributeCopyOperations' + LOWCONNECTIVITYCELL:'CellGhostTypes' + MAX:'AttributeLimitTypes' + NOLIMIT:'AttributeLimitTypes' + NORMALS:'AttributeTypes' + NUM_ATTRIBUTES:'AttributeTypes' + PASSDATA:'AttributeCopyOperations' + PEDIGREEIDS:'AttributeTypes' + PROCESSIDS:'AttributeTypes' + RATIONALWEIGHTS:'AttributeTypes' + REFINEDCELL:'CellGhostTypes' + SCALARS:'AttributeTypes' + TANGENTS:'AttributeTypes' + TCOORDS:'AttributeTypes' + TENSORS:'AttributeTypes' + VECTORS:'AttributeTypes' + copy_attribute:'getset_descriptor' + copy_global_ids:'getset_descriptor' + copy_higher_order_degrees:'getset_descriptor' + copy_normals:'getset_descriptor' + copy_pedigree_ids:'getset_descriptor' + copy_process_ids:'getset_descriptor' + copy_rational_weights:'getset_descriptor' + copy_scalars:'getset_descriptor' + copy_t_coords:'getset_descriptor' + copy_tangents:'getset_descriptor' + copy_tensors:'getset_descriptor' + copy_vectors:'getset_descriptor' + global_ids:'getset_descriptor' + higher_order_degrees:'getset_descriptor' + normals:'getset_descriptor' + pedigree_ids:'getset_descriptor' + process_ids:'getset_descriptor' + rational_weights:'getset_descriptor' + scalars:'getset_descriptor' + t_coords:'getset_descriptor' + tangents:'getset_descriptor' + tensors:'getset_descriptor' + vectors:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CopyAllOff(self, ctype:int=...) -> None: ... + def CopyAllOn(self, ctype:int=...) -> None: ... + @overload + def CopyAllocate(self, pd:'vtkDataSetAttributes', sze:int=0, ext:int=1000) -> None: ... + @overload + def CopyAllocate(self, pd:'vtkDataSetAttributes', sze:int, ext:int, shallowCopyArrays:int) -> None: ... + @overload + def CopyAllocate(self, list:'vtkDataSetAttributesFieldList', sze:int=0, ext:int=1000) -> None: ... + @overload + def CopyData(self, fromPd:'vtkDataSetAttributes', fromId:int, toId:int) -> None: ... + @overload + def CopyData(self, fromPd:'vtkDataSetAttributes', fromIds:'vtkIdList', toIds:'vtkIdList') -> None: ... + @overload + def CopyData(self, fromPd:'vtkDataSetAttributes', fromIds:'vtkIdList', destStartId:int=0) -> None: ... + @overload + def CopyData(self, fromPd:'vtkDataSetAttributes', dstStart:int, n:int, srcStart:int) -> None: ... + @overload + def CopyData(self, list:'vtkDataSetAttributesFieldList', dsa:'vtkDataSetAttributes', idx:int, fromId:int, toId:int) -> None: ... + @overload + def CopyData(self, list:'vtkDataSetAttributesFieldList', dsa:'vtkDataSetAttributes', idx:int, dstStart:int, n:int, srcStart:int) -> None: ... + def CopyGlobalIdsOff(self) -> None: ... + def CopyGlobalIdsOn(self) -> None: ... + def CopyHigherOrderDegreesOff(self) -> None: ... + def CopyHigherOrderDegreesOn(self) -> None: ... + def CopyNormalsOff(self) -> None: ... + def CopyNormalsOn(self) -> None: ... + def CopyPedigreeIdsOff(self) -> None: ... + def CopyPedigreeIdsOn(self) -> None: ... + def CopyProcessIdsOff(self) -> None: ... + def CopyProcessIdsOn(self) -> None: ... + def CopyRationalWeightsOff(self) -> None: ... + def CopyRationalWeightsOn(self) -> None: ... + def CopyScalarsOff(self) -> None: ... + def CopyScalarsOn(self) -> None: ... + def CopyStructuredData(self, inDsa:'vtkDataSetAttributes', inExt:Sequence[int], outExt:Sequence[int], setSize:bool=True) -> None: ... + def CopyTCoordsOff(self) -> None: ... + def CopyTCoordsOn(self) -> None: ... + def CopyTangentsOff(self) -> None: ... + def CopyTangentsOn(self) -> None: ... + def CopyTensorsOff(self) -> None: ... + def CopyTensorsOn(self) -> None: ... + def CopyTuple(self, fromData:'vtkAbstractArray', toData:'vtkAbstractArray', fromId:int, toId:int) -> None: ... + @overload + def CopyTuples(self, fromData:'vtkAbstractArray', toData:'vtkAbstractArray', fromIds:'vtkIdList', toIds:'vtkIdList') -> None: ... + @overload + def CopyTuples(self, fromData:'vtkAbstractArray', toData:'vtkAbstractArray', dstStart:int, n:int, srcStart:int) -> None: ... + def CopyVectorsOff(self) -> None: ... + def CopyVectorsOn(self) -> None: ... + def DeepCopy(self, pd:'vtkFieldData') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkDataSetAttributes': ... + def GetAbstractAttribute(self, attributeType:int) -> 'vtkAbstractArray': ... + def GetAttribute(self, attributeType:int) -> 'vtkDataArray': ... + def GetAttributeIndices(self, indexArray:MutableSequence[int]) -> None: ... + @staticmethod + def GetAttributeTypeAsString(attributeType:int) -> str: ... + def GetCopyAttribute(self, index:int, ctype:int) -> int: ... + def GetCopyGlobalIds(self, ctype:int=...) -> int: ... + def GetCopyHigherOrderDegrees(self, ctype:int=...) -> int: ... + def GetCopyNormals(self, ctype:int=...) -> int: ... + def GetCopyPedigreeIds(self, ctype:int=...) -> int: ... + def GetCopyProcessIds(self, ctype:int=...) -> int: ... + def GetCopyRationalWeights(self, ctype:int=...) -> int: ... + def GetCopyScalars(self, ctype:int=...) -> int: ... + def GetCopyTCoords(self, ctype:int=...) -> int: ... + def GetCopyTangents(self, ctype:int=...) -> int: ... + def GetCopyTensors(self, ctype:int=...) -> int: ... + def GetCopyVectors(self, ctype:int=...) -> int: ... + @overload + def GetGlobalIds(self) -> 'vtkDataArray': ... + @overload + def GetGlobalIds(self, name:str) -> 'vtkDataArray': ... + @overload + def GetHigherOrderDegrees(self) -> 'vtkDataArray': ... + @overload + def GetHigherOrderDegrees(self, name:str) -> 'vtkDataArray': ... + @staticmethod + def GetLongAttributeTypeAsString(attributeType:int) -> str: ... + @overload + def GetNormals(self) -> 'vtkDataArray': ... + @overload + def GetNormals(self, name:str) -> 'vtkDataArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetPedigreeIds(self) -> 'vtkAbstractArray': ... + @overload + def GetPedigreeIds(self, name:str) -> 'vtkAbstractArray': ... + @overload + def GetProcessIds(self) -> 'vtkDataArray': ... + @overload + def GetProcessIds(self, name:str) -> 'vtkDataArray': ... + @overload + def GetRationalWeights(self) -> 'vtkDataArray': ... + @overload + def GetRationalWeights(self, name:str) -> 'vtkDataArray': ... + @overload + def GetScalars(self) -> 'vtkDataArray': ... + @overload + def GetScalars(self, name:str) -> 'vtkDataArray': ... + @overload + def GetTCoords(self) -> 'vtkDataArray': ... + @overload + def GetTCoords(self, name:str) -> 'vtkDataArray': ... + @overload + def GetTangents(self) -> 'vtkDataArray': ... + @overload + def GetTangents(self, name:str) -> 'vtkDataArray': ... + @overload + def GetTensors(self) -> 'vtkDataArray': ... + @overload + def GetTensors(self, name:str) -> 'vtkDataArray': ... + @overload + def GetVectors(self) -> 'vtkDataArray': ... + @overload + def GetVectors(self, name:str) -> 'vtkDataArray': ... + @staticmethod + def GhostArrayName() -> str: ... + def Initialize(self) -> None: ... + @overload + def InterpolateAllocate(self, pd:'vtkDataSetAttributes', sze:int=0, ext:int=1000) -> None: ... + @overload + def InterpolateAllocate(self, pd:'vtkDataSetAttributes', sze:int, ext:int, shallowCopyArrays:int) -> None: ... + @overload + def InterpolateAllocate(self, list:'vtkDataSetAttributesFieldList', sze:int=0, ext:int=1000) -> None: ... + def InterpolateEdge(self, fromPd:'vtkDataSetAttributes', toId:int, p1:int, p2:int, t:float) -> None: ... + @overload + def InterpolatePoint(self, fromPd:'vtkDataSetAttributes', toId:int, ids:'vtkIdList', weights:MutableSequence[float]) -> None: ... + @overload + def InterpolatePoint(self, list:'vtkDataSetAttributesFieldList', fromPd:'vtkDataSetAttributes', idx:int, toId:int, ids:'vtkIdList', weights:MutableSequence[float]) -> None: ... + def InterpolateTime(self, from1:'vtkDataSetAttributes', from2:'vtkDataSetAttributes', id:int, t:float) -> None: ... + def IsA(self, type:str) -> int: ... + def IsArrayAnAttribute(self, idx:int) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataSetAttributes': ... + def PassData(self, fd:'vtkFieldData') -> None: ... + @overload + def RemoveArray(self, index:int) -> None: ... + @overload + def RemoveArray(self, name:str) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataSetAttributes': ... + @overload + def SetActiveAttribute(self, name:str, attributeType:int) -> int: ... + @overload + def SetActiveAttribute(self, index:int, attributeType:int) -> int: ... + def SetActiveGlobalIds(self, name:str) -> int: ... + def SetActiveHigherOrderDegrees(self, name:str) -> int: ... + def SetActiveNormals(self, name:str) -> int: ... + def SetActivePedigreeIds(self, name:str) -> int: ... + def SetActiveProcessIds(self, name:str) -> int: ... + def SetActiveRationalWeights(self, name:str) -> int: ... + def SetActiveScalars(self, name:str) -> int: ... + def SetActiveTCoords(self, name:str) -> int: ... + def SetActiveTangents(self, name:str) -> int: ... + def SetActiveTensors(self, name:str) -> int: ... + def SetActiveVectors(self, name:str) -> int: ... + def SetAttribute(self, aa:'vtkAbstractArray', attributeType:int) -> int: ... + def SetCopyAttribute(self, index:int, value:int, ctype:int=...) -> None: ... + def SetCopyGlobalIds(self, i:int, ctype:int=...) -> None: ... + def SetCopyHigherOrderDegrees(self, i:int, ctype:int=...) -> None: ... + def SetCopyNormals(self, i:int, ctype:int=...) -> None: ... + def SetCopyPedigreeIds(self, i:int, ctype:int=...) -> None: ... + def SetCopyProcessIds(self, i:int, ctype:int=...) -> None: ... + def SetCopyRationalWeights(self, i:int, ctype:int=...) -> None: ... + def SetCopyScalars(self, i:int, ctype:int=...) -> None: ... + def SetCopyTCoords(self, i:int, ctype:int=...) -> None: ... + def SetCopyTangents(self, i:int, ctype:int=...) -> None: ... + def SetCopyTensors(self, i:int, ctype:int=...) -> None: ... + def SetCopyVectors(self, i:int, ctype:int=...) -> None: ... + def SetGlobalIds(self, da:'vtkDataArray') -> int: ... + def SetHigherOrderDegrees(self, da:'vtkDataArray') -> int: ... + def SetNormals(self, da:'vtkDataArray') -> int: ... + def SetPedigreeIds(self, da:'vtkAbstractArray') -> int: ... + def SetProcessIds(self, da:'vtkDataArray') -> int: ... + def SetRationalWeights(self, da:'vtkDataArray') -> int: ... + def SetScalars(self, da:'vtkDataArray') -> int: ... + def SetTCoords(self, da:'vtkDataArray') -> int: ... + def SetTangents(self, da:'vtkDataArray') -> int: ... + def SetTensors(self, da:'vtkDataArray') -> int: ... + def SetVectors(self, da:'vtkDataArray') -> int: ... + def SetupForCopy(self, pd:'vtkDataSetAttributes') -> None: ... + def ShallowCopy(self, pd:'vtkFieldData') -> None: ... + def Update(self) -> None: ... + +class vtkCellData(vtkDataSetAttributes): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkCellData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellData': ... + +class vtkCellGrid(vtkDataObject): + actual_memory_size:'getset_descriptor' + cell_attribute_list:'getset_descriptor' + cell_types:'getset_descriptor' + content_version:'getset_descriptor' + data_object_type:'getset_descriptor' + number_of_cells:'getset_descriptor' + schema_name:'getset_descriptor' + schema_version:'getset_descriptor' + shape_attribute:'getset_descriptor' + unordered_cell_attribute_ids:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ARRAY_GROUP_IDS() -> 'vtkInformationIntegerVectorKey': ... + def AddAllCellMetadata(self) -> int: ... + def AddCellAttribute(self, attribute:'vtkCellAttribute') -> bool: ... + @overload + def AddCellMetadata(self, cellType:'vtkCellMetadata') -> 'vtkCellMetadata': ... + @overload + def AddCellMetadata(self, cellTypeName:'vtkStringToken') -> 'vtkCellMetadata': ... + def ClearRangeCache(self, attributeName:str=...) -> None: ... + def CopyStructure(self, other:'vtkCellGrid', byReference:bool=True) -> bool: ... + @staticmethod + def CorrespondingArray(gridA:'vtkCellGrid', arrayA:'vtkDataArray', gridB:'vtkCellGrid') -> 'vtkDataArray': ... + def DeepCopy(self, baseSrc:'vtkDataObject') -> None: ... + @overload + def FindAttributes(self, type:int) -> 'vtkDataSetAttributes': ... + @overload + def FindAttributes(self, type:'vtkStringToken') -> 'vtkDataSetAttributes': ... + def GetActualMemorySize(self) -> int: ... + def GetAttributeTypeForArray(self, arr:'vtkAbstractArray') -> int: ... + @overload + def GetAttributes(self, type:int) -> 'vtkDataSetAttributes': ... + @overload + def GetAttributes(self, type:'vtkStringToken') -> 'vtkDataSetAttributes': ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetCellAttributeById(self, attributeId:int) -> 'vtkCellAttribute': ... + def GetCellAttributeByName(self, name:str) -> 'vtkCellAttribute': ... + def GetCellAttributeList(self) -> Tuple['vtkCellAttribute', 'vtkCellAttribute']: ... + def GetCellAttributeRange(self, attribute:'vtkCellAttribute', componentIndex:int, range:MutableSequence[float], finiteRange:bool=False) -> bool: ... + def GetCellType(self, cellTypeName:'vtkStringToken') -> 'vtkCellMetadata': ... + def GetCellTypes(self) -> Tuple[str, str]: ... + def GetContentVersion(self) -> int: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkCellGrid': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkCellGrid': ... + def GetDataObjectType(self) -> int: ... + def GetGhostArray(self, type:int) -> 'vtkUnsignedCharArray': ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfElements(self, type:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSchemaName(self) -> 'vtkStringToken': ... + def GetSchemaVersion(self) -> int: ... + def GetShapeAttribute(self) -> 'vtkCellAttribute': ... + def GetUnorderedCellAttributeIds(self) -> Tuple[int, int]: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGrid': ... + def Query(self, query:'vtkCellGridQuery') -> bool: ... + def RemoveCellAttribute(self, attribute:'vtkCellAttribute') -> bool: ... + def RemoveCellMetadata(self, meta:'vtkCellMetadata') -> bool: ... + def RemoveUnusedCellMetadata(self) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGrid': ... + def SetContentVersion(self, _arg:int) -> None: ... + def SetSchema(self, name:'vtkStringToken', version:int) -> None: ... + def SetShapeAttribute(self, shape:'vtkCellAttribute') -> bool: ... + def ShallowCopy(self, baseSrc:'vtkDataObject') -> None: ... + def SupportsGhostArray(self, type:int) -> bool: ... + +class vtkCellGridQuery(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def Finalize(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPass(self) -> int: ... + def Initialize(self) -> bool: ... + def IsA(self, type:str) -> int: ... + def IsAnotherPassRequired(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridQuery': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridQuery': ... + def StartPass(self) -> None: ... + +class vtkCellGridBoundsQuery(vtkCellGridQuery): + def __init__(self, **properties:Any) -> None: ... + def AddBounds(self, bbox:'vtkBoundingBox') -> None: ... + def GetBounds(self, bds:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridBoundsQuery': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridBoundsQuery': ... + +class vtkCellGridCopyQuery(vtkCellGridQuery): + copy_array_values:'getset_descriptor' + copy_arrays:'getset_descriptor' + copy_cell_types:'getset_descriptor' + copy_cells:'getset_descriptor' + copy_only_shape:'getset_descriptor' + copy_schema:'getset_descriptor' + deep_copy_arrays:'getset_descriptor' + source:'getset_descriptor' + target:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddAllSourceCellAttributeIds(self) -> bool: ... + def AddSourceCellAttributeId(self, attributeId:int) -> bool: ... + def CopyArrayValuesOff(self) -> None: ... + def CopyArrayValuesOn(self) -> None: ... + def CopyArraysOff(self) -> None: ... + def CopyArraysOn(self) -> None: ... + def CopyAttributeArrays(self, srcAtt:'vtkCellAttribute', cellType:'vtkStringToken') -> None: ... + def CopyCellTypesOff(self) -> None: ... + def CopyCellTypesOn(self) -> None: ... + def CopyCellsOff(self) -> None: ... + def CopyCellsOn(self) -> None: ... + def CopyOnlyShapeOff(self) -> None: ... + def CopyOnlyShapeOn(self) -> None: ... + def CopyOrUpdateAttributeRecord(self, srcAtt:'vtkCellAttribute', cellType:'vtkStringToken') -> 'vtkCellAttribute': ... + def CopySchemaOff(self) -> None: ... + def CopySchemaOn(self) -> None: ... + def DeepCopyArraysOff(self) -> None: ... + def DeepCopyArraysOn(self) -> None: ... + def Finalize(self) -> bool: ... + def GetCellAttributeIds(self, ids:'vtkIdList') -> None: ... + def GetCopyArrayValues(self) -> int: ... + def GetCopyArrays(self) -> int: ... + def GetCopyCellTypes(self) -> int: ... + def GetCopyCells(self) -> int: ... + def GetCopyOnlyShape(self) -> int: ... + def GetCopySchema(self) -> int: ... + def GetDeepCopyArrays(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSource(self) -> 'vtkCellGrid': ... + def GetTarget(self) -> 'vtkCellGrid': ... + def Initialize(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridCopyQuery': ... + def RemoveSourceCellAttributeId(self, attributeId:int) -> bool: ... + def ResetCellAttributeIds(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridCopyQuery': ... + def SetCopyArrayValues(self, _arg:int) -> None: ... + def SetCopyArrays(self, _arg:int) -> None: ... + def SetCopyCellTypes(self, _arg:int) -> None: ... + def SetCopyCells(self, _arg:int) -> None: ... + def SetCopyOnlyShape(self, _arg:int) -> None: ... + def SetCopySchema(self, _arg:int) -> None: ... + def SetDeepCopyArrays(self, _arg:int) -> None: ... + def SetSource(self, source:'vtkCellGrid') -> None: ... + def SetTarget(self, target:'vtkCellGrid') -> None: ... + +class vtkCellGridEvaluator(vtkCellGridQuery): + class Phases(int): ... + Classify:'Phases' + ClassifyAndInterpolate:'Phases' + Interpolate:'Phases' + None_:'Phases' + cell_attribute:'getset_descriptor' + classifier_cell_indices:'getset_descriptor' + classifier_cell_offsets:'getset_descriptor' + classifier_cell_types:'getset_descriptor' + classifier_point_i_ds:'getset_descriptor' + classifier_point_parameters:'getset_descriptor' + input_points:'getset_descriptor' + interpolated_values:'getset_descriptor' + locator:'getset_descriptor' + phases_to_perform:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClassifyPoints(self, points:'vtkDataArray') -> None: ... + def Finalize(self) -> bool: ... + def GetCellAttribute(self) -> 'vtkCellAttribute': ... + def GetClassifierCellIndices(self) -> 'vtkTypeUInt64Array': ... + def GetClassifierCellOffsets(self) -> 'vtkTypeUInt64Array': ... + def GetClassifierCellTypes(self) -> 'vtkTypeUInt32Array': ... + def GetClassifierPointIDs(self) -> 'vtkTypeUInt64Array': ... + def GetClassifierPointParameters(self) -> 'vtkDataArray': ... + def GetInputPoints(self) -> 'vtkDataArray': ... + def GetInterpolatedValues(self) -> 'vtkDataArray': ... + def GetLocator(self) -> 'vtkStaticPointLocator': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPhasesToPerform(self) -> vtkCellGridEvaluator.Phases: ... + def Initialize(self) -> bool: ... + def InterpolateCellParameters(self, cellTypes:'vtkTypeUInt32Array', cellOffsets:'vtkTypeUInt64Array', cellIndices:'vtkTypeUInt64Array', pointParameters:'vtkDataArray') -> None: ... + def InterpolatePoints(self, points:'vtkDataArray') -> None: ... + def IsA(self, type:str) -> int: ... + def IsAnotherPassRequired(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridEvaluator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridEvaluator': ... + def SetCellAttribute(self, _arg:'vtkCellAttribute') -> None: ... + def StartPass(self) -> None: ... + +class vtkCellGridRangeQuery(vtkCellGridQuery): + cell_attribute:'getset_descriptor' + cell_grid:'getset_descriptor' + component:'getset_descriptor' + finite_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Finalize(self) -> bool: ... + def GetCellAttribute(self) -> 'vtkCellAttribute': ... + def GetCellGrid(self) -> 'vtkCellGrid': ... + def GetComponent(self) -> int: ... + def GetFiniteRange(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetRange(self, component:int, range:MutableSequence[float]) -> None: ... + @overload + def GetRange(self, range:MutableSequence[float]) -> None: ... + def Initialize(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridRangeQuery': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridRangeQuery': ... + def SetCellAttribute(self, _arg:'vtkCellAttribute') -> None: ... + def SetCellGrid(self, grid:'vtkCellGrid') -> None: ... + def SetComponent(self, _arg:int) -> None: ... + def SetFiniteRange(self, _arg:int) -> None: ... + +class vtkCellGridResponderBase(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def EvaluateQuery(self, query:'vtkCellGridQuery', cellType:'vtkCellMetadata', caches:'vtkCellGridResponders') -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridResponderBase': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridResponderBase': ... + +class vtkCellGridResponders(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetCacheData(self, key:int) -> 'vtkObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridResponders': ... + def Query(self, cellType:'vtkCellMetadata', query:'vtkCellGridQuery') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridResponders': ... + def SetCacheData(self, key:int, value:'vtkObject', overwrite:bool=False) -> bool: ... + +class vtkCellGridSidesCache(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridSidesCache': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridSidesCache': ... + +class vtkCellGridSidesQuery(vtkCellGridQuery): + class SideFlags(int): ... + class SummaryStrategy(int): ... + class PassWork(int): ... + class SelectionMode(int): ... + AllSides:'SideFlags' + AnyOccurrence:'SummaryStrategy' + Boundary:'SummaryStrategy' + EdgesOfInputs:'SideFlags' + EdgesOfSurfaces:'SideFlags' + EdgesOfVolumes:'SideFlags' + GenerateSideSets:'PassWork' + HashSides:'PassWork' + Input:'SelectionMode' + NextLowestDimension:'SideFlags' + Output:'SelectionMode' + Summarize:'PassWork' + SurfacesOfInputs:'SideFlags' + SurfacesOfVolumes:'SideFlags' + VerticesOfEdges:'SideFlags' + VerticesOfInputs:'SideFlags' + VerticesOfSurfaces:'SideFlags' + VerticesOfVolumes:'SideFlags' + Winding:'SummaryStrategy' + omit_sides_for_renderable_inputs:'getset_descriptor' + output_dimension_control:'getset_descriptor' + preserve_renderable_inputs:'getset_descriptor' + selection_type:'getset_descriptor' + side_cache:'getset_descriptor' + strategy:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Finalize(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOmitSidesForRenderableInputs(self) -> int: ... + def GetOutputDimensionControl(self) -> int: ... + def GetPreserveRenderableInputs(self) -> int: ... + def GetSelectionType(self) -> 'SelectionMode': ... + def GetSideCache(self) -> 'vtkCellGridSidesCache': ... + def GetStrategy(self) -> 'SummaryStrategy': ... + def Initialize(self) -> bool: ... + def IsA(self, type:str) -> int: ... + def IsAnotherPassRequired(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridSidesQuery': ... + def OmitSidesForRenderableInputsOff(self) -> None: ... + def OmitSidesForRenderableInputsOn(self) -> None: ... + def OutputDimensionControlOff(self) -> None: ... + def OutputDimensionControlOn(self) -> None: ... + def PreserveRenderableInputsOff(self) -> None: ... + def PreserveRenderableInputsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridSidesQuery': ... + @staticmethod + def SelectionModeFromLabel(token:'vtkStringToken') -> 'SelectionMode': ... + @staticmethod + def SelectionModeToLabel(mode:'SelectionMode') -> 'vtkStringToken': ... + def SetOmitSidesForRenderableInputs(self, _arg:int) -> None: ... + def SetOutputDimensionControl(self, _arg:int) -> None: ... + def SetPreserveRenderableInputs(self, _arg:int) -> None: ... + @overload + def SetSelectionType(self, _arg:'SelectionMode') -> None: ... + @overload + def SetSelectionType(self, selnType:int) -> None: ... + def SetSideCache(self, cache:'vtkCellGridSidesCache') -> None: ... + @overload + def SetStrategy(self, _arg:'SummaryStrategy') -> None: ... + @overload + def SetStrategy(self, strategy:int) -> None: ... + def SetStrategyToAnyOccurrence(self) -> None: ... + def SetStrategyToBoundary(self) -> None: ... + def SetStrategyToWinding(self) -> None: ... + def StartPass(self) -> None: ... + @staticmethod + def SummaryStrategyFromLabel(token:'vtkStringToken') -> 'SummaryStrategy': ... + @staticmethod + def SummaryStrategyToLabel(strategy:'SummaryStrategy') -> 'vtkStringToken': ... + +class vtkCellIterator(vtkmodules.vtkCommonCore.vtkObject): + cell_dimension:'getset_descriptor' + cell_faces:'getset_descriptor' + cell_id:'getset_descriptor' + cell_type:'getset_descriptor' + faces:'getset_descriptor' + number_of_faces:'getset_descriptor' + number_of_points:'getset_descriptor' + point_ids:'getset_descriptor' + points:'getset_descriptor' + serialized_cell_faces:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCell(self, cell:'vtkGenericCell') -> None: ... + def GetCellDimension(self) -> int: ... + def GetCellFaces(self) -> 'vtkCellArray': ... + def GetCellId(self) -> int: ... + def GetCellType(self) -> int: ... + def GetFaces(self) -> 'vtkIdList': ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def GetPointIds(self) -> 'vtkIdList': ... + def GetPoints(self) -> 'vtkPoints': ... + def GetSerializedCellFaces(self) -> 'vtkIdList': ... + def GoToNextCell(self) -> None: ... + def InitTraversal(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsDoneWithTraversal(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellIterator': ... + +class vtkCellLinks(vtkAbstractCellLinks): + actual_memory_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddCellReference(self, cellId:int, ptId:int) -> None: ... + def Allocate(self, numLinks:int, ext:int=1000) -> None: ... + def BuildLinks(self) -> None: ... + def DeepCopy(self, src:'vtkAbstractCellLinks') -> None: ... + def DeletePoint(self, ptId:int) -> None: ... + def GetActualMemorySize(self) -> int: ... + def GetCells(self, ptId:int) -> Pointer: ... + def GetNcells(self, ptId:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self) -> None: ... + def InsertNextCellReference(self, ptId:int, cellId:int) -> None: ... + def InsertNextPoint(self, numLinks:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellLinks': ... + def RemoveCellReference(self, cellId:int, ptId:int) -> None: ... + def Reset(self) -> None: ... + def ResizeCellList(self, ptId:int, size:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellLinks': ... + def SelectCells(self, minMaxDegree:MutableSequence[int], cellSelection:MutableSequence[int]) -> None: ... + def ShallowCopy(self, src:'vtkAbstractCellLinks') -> None: ... + def Squeeze(self) -> None: ... + +class vtkCellLocator(vtkAbstractCellLocator): + number_of_buckets:'getset_descriptor' + number_of_cells_per_bucket:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildLocator(self) -> None: ... + @overload + def FindCell(self, x:MutableSequence[float], tol2:float, GenCell:'vtkGenericCell', subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + @overload + def FindCell(self, x:MutableSequence[float]) -> int: ... + @overload + def FindCell(self, x:MutableSequence[float], tol2:float, GenCell:'vtkGenericCell', pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + def FindCellsAlongLine(self, p1:Sequence[float], p2:Sequence[float], tolerance:float, cellsIds:'vtkIdList') -> None: ... + def FindCellsWithinBounds(self, bbox:MutableSequence[float], cells:'vtkIdList') -> None: ... + @overload + def FindClosestPoint(self, x:Sequence[float], closestPoint:MutableSequence[float], cell:'vtkGenericCell', cellId:int, subId:int, dist2:float) -> None: ... + @overload + def FindClosestPoint(self, x:Sequence[float], closestPoint:MutableSequence[float], cellId:int, subId:int, dist2:float) -> None: ... + @overload + def FindClosestPointWithinRadius(self, x:MutableSequence[float], radius:float, closestPoint:MutableSequence[float], cell:'vtkGenericCell', cellId:int, subId:int, dist2:float, inside:int) -> int: ... + @overload + def FindClosestPointWithinRadius(self, x:MutableSequence[float], radius:float, closestPoint:MutableSequence[float], cellId:int, subId:int, dist2:float) -> int: ... + @overload + def FindClosestPointWithinRadius(self, x:MutableSequence[float], radius:float, closestPoint:MutableSequence[float], cell:'vtkGenericCell', cellId:int, subId:int, dist2:float) -> int: ... + def ForceBuildLocator(self) -> None: ... + def FreeSearchStructure(self) -> None: ... + def GenerateRepresentation(self, level:int, pd:'vtkPolyData') -> None: ... + def GetCells(self, bucket:int) -> 'vtkIdList': ... + def GetNumberOfBuckets(self) -> int: ... + def GetNumberOfCellsPerBucket(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int, cellId:int, cell:'vtkGenericCell') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, points:'vtkPoints', cellIds:'vtkIdList', cell:'vtkGenericCell') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int, cellId:int) -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], points:'vtkPoints', cellIds:'vtkIdList') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, points:'vtkPoints', cellIds:'vtkIdList') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellLocator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellLocator': ... + def SetNumberOfCellsPerBucket(self, N:int) -> None: ... + def ShallowCopy(self, locator:'vtkAbstractCellLocator') -> None: ... + +class vtkFindCellStrategy(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def CopyParameters(self, from_:'vtkFindCellStrategy') -> None: ... + def FindCell(self, x:MutableSequence[float], cell:'vtkCell', gencell:'vtkGenericCell', cellId:int, tol2:float, subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + def FindClosestPointWithinRadius(self, x:MutableSequence[float], radius:float, closestPoint:MutableSequence[float], cell:'vtkGenericCell', cellId:int, subId:int, dist2:float, inside:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, ps:'vtkPointSet') -> int: ... + def InsideCellBounds(self, x:MutableSequence[float], cellId:int) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFindCellStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFindCellStrategy': ... + +class vtkCellLocatorStrategy(vtkFindCellStrategy): + cell_locator:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CopyParameters(self, from_:'vtkFindCellStrategy') -> None: ... + def FindCell(self, x:MutableSequence[float], cell:'vtkCell', gencell:'vtkGenericCell', cellId:int, tol2:float, subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + def FindClosestPointWithinRadius(self, x:MutableSequence[float], radius:float, closestPoint:MutableSequence[float], cell:'vtkGenericCell', cellId:int, subId:int, dist2:float, inside:int) -> int: ... + def GetCellLocator(self) -> 'vtkAbstractCellLocator': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, ps:'vtkPointSet') -> int: ... + def InsideCellBounds(self, x:MutableSequence[float], cellId:int) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellLocatorStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellLocatorStrategy': ... + def SetCellLocator(self, __a:'vtkAbstractCellLocator') -> None: ... + +class vtkCellMetadata(vtkmodules.vtkCommonCore.vtkObject): + caches:'getset_descriptor' + cell_grid:'getset_descriptor' + number_of_cells:'getset_descriptor' + responders:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ClearResponders() -> None: ... + def DeepCopy(self, other:'vtkCellMetadata') -> None: ... + def GetCaches(self) -> 'vtkCellGridResponders': ... + def GetCellGrid(self) -> 'vtkCellGrid': ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GetResponders() -> 'vtkCellGridResponders': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def NewInstance(self) -> 'vtkCellMetadata': ... + @overload + @staticmethod + def NewInstance(className:'vtkStringToken', grid:'vtkCellGrid'=...) -> 'vtkCellMetadata': ... + def Query(self, query:'vtkCellGridQuery') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellMetadata': ... + def SetCellGrid(self, parent:'vtkCellGrid') -> bool: ... + def ShallowCopy(self, other:'vtkCellMetadata') -> None: ... + +class vtkCellTreeLocator(vtkAbstractCellLocator): + large_ids:'getset_descriptor' + number_of_buckets:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildLocator(self) -> None: ... + @overload + def FindCell(self, pos:MutableSequence[float], tol2:float, cell:'vtkGenericCell', subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + @overload + def FindCell(self, x:MutableSequence[float]) -> int: ... + @overload + def FindCell(self, x:MutableSequence[float], tol2:float, GenCell:'vtkGenericCell', pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + def FindCellsAlongLine(self, p1:Sequence[float], p2:Sequence[float], tolerance:float, cellsIds:'vtkIdList') -> None: ... + def FindCellsWithinBounds(self, bbox:MutableSequence[float], cells:'vtkIdList') -> None: ... + def ForceBuildLocator(self) -> None: ... + def FreeSearchStructure(self) -> None: ... + def GenerateRepresentation(self, level:int, pd:'vtkPolyData') -> None: ... + def GetLargeIds(self) -> bool: ... + def GetNumberOfBuckets(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def IntersectWithLine(self, a0:Sequence[float], a1:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int, cellId:int, cell:'vtkGenericCell') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, points:'vtkPoints', cellIds:'vtkIdList', cell:'vtkGenericCell') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int, cellId:int) -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], points:'vtkPoints', cellIds:'vtkIdList') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, points:'vtkPoints', cellIds:'vtkIdList') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellTreeLocator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellTreeLocator': ... + def SetNumberOfBuckets(self, _arg:int) -> None: ... + def ShallowCopy(self, locator:'vtkAbstractCellLocator') -> None: ... + +class vtkCellTypes(vtkmodules.vtkCommonCore.vtkObject): + actual_memory_size:'getset_descriptor' + cell_locations_array:'getset_descriptor' + cell_types_array:'getset_descriptor' + number_of_types:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, sz:int=512, ext:int=1000) -> int: ... + def DeepCopy(self, src:'vtkCellTypes') -> None: ... + def DeleteCell(self, cellId:int) -> None: ... + def GetActualMemorySize(self) -> int: ... + def GetCellLocationsArray(self) -> 'vtkIdTypeArray': ... + def GetCellType(self, cellId:int) -> int: ... + def GetCellTypesArray(self) -> 'vtkUnsignedCharArray': ... + @staticmethod + def GetClassNameFromTypeId(typeId:int) -> str: ... + @staticmethod + def GetDimension(type:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTypes(self) -> int: ... + @staticmethod + def GetTypeIdFromClassName(classname:str) -> int: ... + def InsertCell(self, id:int, type:int, loc:int) -> None: ... + def InsertNextCell(self, type:int, loc:int) -> int: ... + def InsertNextType(self, type:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsLinear(type:int) -> int: ... + def IsType(self, type:int) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellTypes': ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellTypes': ... + def SetCellTypes(self, ncells:int, cellTypes:'vtkUnsignedCharArray') -> None: ... + def Squeeze(self) -> None: ... + +class vtkClosestPointStrategy(vtkFindCellStrategy): + point_locator:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CopyParameters(self, from_:'vtkFindCellStrategy') -> None: ... + def FindCell(self, x:MutableSequence[float], cell:'vtkCell', gencell:'vtkGenericCell', cellId:int, tol2:float, subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + def FindClosestPointWithinRadius(self, x:MutableSequence[float], radius:float, closestPoint:MutableSequence[float], cell:'vtkGenericCell', cellId:int, subId:int, dist2:float, inside:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointLocator(self) -> 'vtkAbstractPointLocator': ... + def Initialize(self, ps:'vtkPointSet') -> int: ... + def InsideCellBounds(self, x:MutableSequence[float], cellId:int) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkClosestPointStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkClosestPointStrategy': ... + def SelectCell(self, self_:'vtkPointSet', cellId:int, cell:'vtkCell', gencell:'vtkGenericCell') -> 'vtkCell': ... + def SetPointLocator(self, __a:'vtkAbstractPointLocator') -> None: ... + +class vtkClosestNPointsStrategy(vtkClosestPointStrategy): + closest_n_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CopyParameters(self, from_:'vtkFindCellStrategy') -> None: ... + def FindCell(self, x:MutableSequence[float], cell:'vtkCell', gencell:'vtkGenericCell', cellId:int, tol2:float, subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + def GetClosestNPoints(self) -> int: ... + def GetClosestNPointsMaxValue(self) -> int: ... + def GetClosestNPointsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, ps:'vtkPointSet') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkClosestNPointsStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkClosestNPointsStrategy': ... + def SetClosestNPoints(self, _arg:int) -> None: ... + +class vtkColor3_IdE(vtkmodules.vtkCommonMath.vtkTuple_IdLi3EE): + blue:'getset_descriptor' + green:'getset_descriptor' + red:'getset_descriptor' + def GetBlue(self) -> float: ... + def GetGreen(self) -> float: ... + def GetRed(self) -> float: ... + def Set(self, red:float, green:float, blue:float) -> None: ... + def SetBlue(self, blue:float) -> None: ... + def SetGreen(self, green:float) -> None: ... + def SetRed(self, red:float) -> None: ... + +class vtkColor3_IfE(vtkmodules.vtkCommonMath.vtkTuple_IfLi3EE): + blue:'getset_descriptor' + green:'getset_descriptor' + red:'getset_descriptor' + def GetBlue(self) -> float: ... + def GetGreen(self) -> float: ... + def GetRed(self) -> float: ... + def Set(self, red:float, green:float, blue:float) -> None: ... + def SetBlue(self, blue:float) -> None: ... + def SetGreen(self, green:float) -> None: ... + def SetRed(self, red:float) -> None: ... + +class vtkColor3_IhE(vtkmodules.vtkCommonMath.vtkTuple_IhLi3EE): + blue:'getset_descriptor' + green:'getset_descriptor' + red:'getset_descriptor' + def GetBlue(self) -> int: ... + def GetGreen(self) -> int: ... + def GetRed(self) -> int: ... + def Set(self, red:int, green:int, blue:int) -> None: ... + def SetBlue(self, blue:int) -> None: ... + def SetGreen(self, green:int) -> None: ... + def SetRed(self, red:int) -> None: ... + +class vtkColor3d(vtkColor3_IdE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, scalar:float) -> None: ... + @overload + def __init__(self, init:Sequence[float]) -> None: ... + @overload + def __init__(self, r:float, g:float, b:float) -> None: ... + @overload + def __init__(self, __a:'vtkColor3d') -> None: ... + +class vtkColor3f(vtkColor3_IfE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, scalar:float) -> None: ... + @overload + def __init__(self, init:Sequence[float]) -> None: ... + @overload + def __init__(self, r:float, g:float, b:float) -> None: ... + @overload + def __init__(self, __a:'vtkColor3f') -> None: ... + +class vtkColor3ub(vtkColor3_IhE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, init:Sequence[int]) -> None: ... + @overload + def __init__(self, hexSigned:int) -> None: ... + @overload + def __init__(self, r:int, g:int, b:int) -> None: ... + @overload + def __init__(self, __a:'vtkColor3ub') -> None: ... + +class vtkColor4_IdE(vtkmodules.vtkCommonMath.vtkTuple_IdLi4EE): + alpha:'getset_descriptor' + blue:'getset_descriptor' + green:'getset_descriptor' + red:'getset_descriptor' + def GetAlpha(self) -> float: ... + def GetBlue(self) -> float: ... + def GetGreen(self) -> float: ... + def GetRed(self) -> float: ... + @overload + def Set(self, red:float, green:float, blue:float) -> None: ... + @overload + def Set(self, red:float, green:float, blue:float, alpha:float) -> None: ... + def SetAlpha(self, alpha:float) -> None: ... + def SetBlue(self, blue:float) -> None: ... + def SetGreen(self, green:float) -> None: ... + def SetRed(self, red:float) -> None: ... + +class vtkColor4_IfE(vtkmodules.vtkCommonMath.vtkTuple_IfLi4EE): + alpha:'getset_descriptor' + blue:'getset_descriptor' + green:'getset_descriptor' + red:'getset_descriptor' + def GetAlpha(self) -> float: ... + def GetBlue(self) -> float: ... + def GetGreen(self) -> float: ... + def GetRed(self) -> float: ... + @overload + def Set(self, red:float, green:float, blue:float) -> None: ... + @overload + def Set(self, red:float, green:float, blue:float, alpha:float) -> None: ... + def SetAlpha(self, alpha:float) -> None: ... + def SetBlue(self, blue:float) -> None: ... + def SetGreen(self, green:float) -> None: ... + def SetRed(self, red:float) -> None: ... + +class vtkColor4_IhE(vtkmodules.vtkCommonMath.vtkTuple_IhLi4EE): + alpha:'getset_descriptor' + blue:'getset_descriptor' + green:'getset_descriptor' + red:'getset_descriptor' + def GetAlpha(self) -> int: ... + def GetBlue(self) -> int: ... + def GetGreen(self) -> int: ... + def GetRed(self) -> int: ... + @overload + def Set(self, red:int, green:int, blue:int) -> None: ... + @overload + def Set(self, red:int, green:int, blue:int, alpha:int) -> None: ... + def SetAlpha(self, alpha:int) -> None: ... + def SetBlue(self, blue:int) -> None: ... + def SetGreen(self, green:int) -> None: ... + def SetRed(self, red:int) -> None: ... + +class vtkColor4d(vtkColor4_IdE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, scalar:float) -> None: ... + @overload + def __init__(self, init:Sequence[float]) -> None: ... + @overload + def __init__(self, r:float, g:float, b:float, a:float=1.0) -> None: ... + @overload + def __init__(self, __a:'vtkColor4d') -> None: ... + +class vtkColor4f(vtkColor4_IfE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, scalar:float) -> None: ... + @overload + def __init__(self, init:Sequence[float]) -> None: ... + @overload + def __init__(self, r:float, g:float, b:float, a:float=1.0) -> None: ... + @overload + def __init__(self, __a:'vtkColor4f') -> None: ... + +class vtkColor4ub(vtkColor4_IhE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, init:Sequence[int]) -> None: ... + @overload + def __init__(self, hexSigned:int) -> None: ... + @overload + def __init__(self, r:int, g:int, b:int, a:int=255) -> None: ... + @overload + def __init__(self, c:'vtkColor3ub') -> None: ... + @overload + def __init__(self, __a:'vtkColor4ub') -> None: ... + +class vtkCompositeDataIterator(vtkmodules.vtkCommonCore.vtkObject): + current_data_object:'getset_descriptor' + current_flat_index:'getset_descriptor' + current_meta_data:'getset_descriptor' + data_set:'getset_descriptor' + reverse:'getset_descriptor' + skip_empty_nodes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCurrentDataObject(self) -> 'vtkDataObject': ... + def GetCurrentFlatIndex(self) -> int: ... + def GetCurrentMetaData(self) -> 'vtkInformation': ... + def GetDataSet(self) -> 'vtkCompositeDataSet': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReverse(self) -> int: ... + def GetSkipEmptyNodes(self) -> int: ... + def GoToFirstItem(self) -> None: ... + def GoToNextItem(self) -> None: ... + def HasCurrentMetaData(self) -> int: ... + def InitReverseTraversal(self) -> None: ... + def InitTraversal(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsDoneWithTraversal(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositeDataIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeDataIterator': ... + def SetDataSet(self, ds:'vtkCompositeDataSet') -> None: ... + def SetSkipEmptyNodes(self, _arg:int) -> None: ... + def SkipEmptyNodesOff(self) -> None: ... + def SkipEmptyNodesOn(self) -> None: ... + +class vtkCompositeDataSet(vtkDataObject): + actual_memory_size:'getset_descriptor' + data_object_type:'getset_descriptor' + number_of_cells:'getset_descriptor' + number_of_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def CURRENT_PROCESS_CAN_LOAD_BLOCK() -> 'vtkInformationIntegerKey': ... + def CompositeShallowCopy(self, src:'vtkCompositeDataSet') -> None: ... + def CopyStructure(self, input:'vtkCompositeDataSet') -> None: ... + def GetActualMemorySize(self) -> int: ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkCompositeDataSet': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkCompositeDataSet': ... + def GetDataObjectType(self) -> int: ... + @overload + def GetDataSet(self, iter:'vtkCompositeDataIterator') -> 'vtkDataObject': ... + @overload + def GetDataSet(self, flatIndex:int) -> 'vtkDataObject': ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfElements(self, type:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def NAME() -> 'vtkInformationStringKey': ... + def NewInstance(self) -> 'vtkCompositeDataSet': ... + def NewIterator(self) -> 'vtkCompositeDataIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeDataSet': ... + def SetDataSet(self, iter:'vtkCompositeDataIterator', dataObj:'vtkDataObject') -> None: ... + def SupportsGhostArray(self, type:int) -> bool: ... + +class vtkCone(vtkImplicitFunction): + angle:'getset_descriptor' + axis:'getset_descriptor' + is_double_cone:'getset_descriptor' + origin:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], g:MutableSequence[float]) -> None: ... + def GetAngle(self) -> float: ... + def GetAngleMaxValue(self) -> float: ... + def GetAngleMinValue(self) -> float: ... + def GetAxis(self) -> Tuple[float, float, float]: ... + def GetIsDoubleCone(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + def IsDoubleConeOff(self) -> None: ... + def IsDoubleConeOn(self) -> None: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCone': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCone': ... + def SetAngle(self, _arg:float) -> None: ... + @overload + def SetAxis(self, x:float, y:float, z:float) -> None: ... + @overload + def SetAxis(self, axis:MutableSequence[float]) -> None: ... + def SetIsDoubleCone(self, _arg:bool) -> None: ... + @overload + def SetOrigin(self, x:float, y:float, z:float) -> None: ... + @overload + def SetOrigin(self, xyz:Sequence[float]) -> None: ... + +class vtkConvexPointSet(vtkCell3D): + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', connectivity:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellType(self) -> int: ... + def GetCentroid(self, centroid:MutableSequence[float]) -> bool: ... + def GetEdge(self, __a:int) -> 'vtkCell': ... + def GetEdgePoints(self, edgeId:int, pts:Sequence[int]) -> None: ... + def GetEdgeToAdjacentFaces(self, edgeId:int, pts:Sequence[int]) -> None: ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + def GetFacePoints(self, faceId:int, pts:Sequence[int]) -> int: ... + def GetFaceToAdjacentFaces(self, faceId:int, faceIds:Sequence[int]) -> int: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetPointToIncidentEdges(self, pointId:int, edgeIds:Sequence[int]) -> int: ... + def GetPointToIncidentFaces(self, pointId:int, faceIds:Sequence[int]) -> int: ... + def GetPointToOneRingPoints(self, pointId:int, pts:Sequence[int]) -> int: ... + def HasFixedTopology(self) -> int: ... + def Initialize(self) -> None: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], sf:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsPrimaryCell(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkConvexPointSet': ... + def RequiresInitialization(self) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConvexPointSet': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkCoordinateFrame(vtkImplicitFunction): + origin:'getset_descriptor' + x_axis:'getset_descriptor' + y_axis:'getset_descriptor' + z_axis:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], n:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetXAxis(self) -> Tuple[float, float, float]: ... + def GetYAxis(self) -> Tuple[float, float, float]: ... + def GetZAxis(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCoordinateFrame': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCoordinateFrame': ... + @overload + def SetOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOrigin(self, _arg:Sequence[float]) -> None: ... + @overload + def SetXAxis(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetXAxis(self, _arg:Sequence[float]) -> None: ... + @overload + def SetYAxis(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetYAxis(self, _arg:Sequence[float]) -> None: ... + @overload + def SetZAxis(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetZAxis(self, _arg:Sequence[float]) -> None: ... + +class vtkCubicLine(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', lines:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, __a:int) -> 'vtkCell': ... + def GetFace(self, __a:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetParametricDistance(self, pcoords:Sequence[float]) -> float: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCubicLine': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCubicLine': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkCylinder(vtkImplicitFunction): + axis:'getset_descriptor' + center:'getset_descriptor' + radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], g:MutableSequence[float]) -> None: ... + def GetAxis(self) -> Tuple[float, float, float]: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCylinder': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCylinder': ... + @overload + def SetAxis(self, ax:float, ay:float, az:float) -> None: ... + @overload + def SetAxis(self, a:MutableSequence[float]) -> None: ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + +class vtkDataAssembly(vtkmodules.vtkCommonCore.vtkObject): + class TraversalOrder(int): ... + BreadthFirst:'TraversalOrder' + DepthFirst:'TraversalOrder' + root_node:'getset_descriptor' + root_node_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddDataSetIndex(self, id:int, dataset_index:int) -> bool: ... + def AddDataSetIndexRange(self, id:int, index_start:int, count:int) -> bool: ... + def AddDataSetIndices(self, id:int, dataset_indices:Sequence[int]) -> bool: ... + def AddNode(self, name:str, parent:int=0) -> int: ... + def AddNodes(self, names:Sequence[str], parent:int=0) -> Tuple[int, int]: ... + def AddSubtree(self, parent:int, other:'vtkDataAssembly', otherParent:int=0) -> int: ... + def DeepCopy(self, other:'vtkDataAssembly') -> None: ... + def FindFirstNodeWithName(self, name:str, traversal_order:int=...) -> int: ... + def FindNodesWithName(self, name:str, sort_order:int=...) -> Tuple[int, int]: ... + def GetAttribute(self, id:int, name:str, value:int) -> bool: ... + @overload + def GetAttributeOrDefault(self, id:int, name:str, default_value:str) -> str: ... + @overload + def GetAttributeOrDefault(self, id:int, name:str, default_value:int) -> int: ... + def GetChild(self, parent:int, index:int) -> int: ... + def GetChildIndex(self, parent:int, child:int) -> int: ... + def GetChildNodes(self, parent:int, traverse_subtree:bool=True, traversal_order:int=...) -> Tuple[int, int]: ... + @overload + def GetDataSetIndices(self, id:int, traverse_subtree:bool=True, traversal_order:int=...) -> Tuple[int, int]: ... + @overload + def GetDataSetIndices(self, ids:Sequence[int], traverse_subtree:bool=True, traversal_order:int=...) -> Tuple[int, int]: ... + def GetFirstNodeByPath(self, path:str) -> int: ... + def GetNodeName(self, id:int) -> str: ... + def GetNodePath(self, id:int) -> str: ... + def GetNumberOfChildren(self, parent:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParent(self, id:int) -> int: ... + @staticmethod + def GetRootNode() -> int: ... + def GetRootNodeName(self) -> str: ... + def HasAttribute(self, id:int, name:str) -> bool: ... + def Initialize(self) -> None: ... + def InitializeFromXML(self, xmlcontents:str) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsNodeNameReserved(name:str) -> bool: ... + @staticmethod + def IsNodeNameValid(name:str) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MakeValidNodeName(name:str) -> str: ... + def NewInstance(self) -> 'vtkDataAssembly': ... + def RemoveAllDataSetIndices(self, id:int, traverse_subtree:bool=True) -> bool: ... + def RemoveDataSetIndex(self, id:int, dataset_index:int) -> bool: ... + def RemoveNode(self, id:int) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataAssembly': ... + def SelectNodes(self, path_queries:Sequence[str], traversal_order:int=...) -> Tuple[int, int]: ... + def SerializeToXML(self, indent:'vtkIndent') -> str: ... + @overload + def SetAttribute(self, id:int, name:str, value:str) -> None: ... + @overload + def SetAttribute(self, id:int, name:str, value:int) -> None: ... + def SetNodeName(self, id:int, name:str) -> None: ... + def SetRootNodeName(self, name:str) -> None: ... + def SubsetCopy(self, other:'vtkDataAssembly', selected_branches:Sequence[int]) -> None: ... + @overload + def Visit(self, visitor:'vtkDataAssemblyVisitor', traversal_order:int=...) -> None: ... + @overload + def Visit(self, id:int, visitor:'vtkDataAssemblyVisitor', traversal_order:int=...) -> None: ... + +class vtkDataAssemblyUtilities(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def GenerateCompositeDataSetFromHierarchy(input:'vtkPartitionedDataSetCollection', hierarchy:'vtkDataAssembly') -> 'vtkCompositeDataSet': ... + @staticmethod + def GenerateHierarchy(input:'vtkCompositeDataSet', hierarchy:'vtkDataAssembly', output:'vtkPartitionedDataSetCollection'=...) -> bool: ... + @staticmethod + def GetDataAssembly(name:str, cd:'vtkCompositeDataSet') -> 'vtkDataAssembly': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GetSelectedCompositeIds(selectors:Sequence[str], hierarchyOrAssembly:'vtkDataAssembly', data:'vtkPartitionedDataSetCollection'=..., leaf_nodes_only:bool=False) -> Tuple[int, int]: ... + @staticmethod + def GetSelectorForCompositeId(id:int, hierarchy:'vtkDataAssembly') -> str: ... + @staticmethod + def GetSelectorsCompositeIdsForCompositeIds(ids:Sequence[int], hierarchy:'vtkDataAssembly') -> Tuple[int, int]: ... + @overload + @staticmethod + def GetSelectorsForCompositeIds(ids:Sequence[int], hierarchy:'vtkDataAssembly') -> Tuple[str, str]: ... + @overload + @staticmethod + def GetSelectorsForCompositeIds(ids:Sequence[int], hierarchy:'vtkDataAssembly', assembly:'vtkDataAssembly') -> Tuple[str, str]: ... + @staticmethod + def HierarchyName() -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataAssemblyUtilities': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataAssemblyUtilities': ... + +class vtkDataAssemblyVisitor(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataAssemblyVisitor': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataAssemblyVisitor': ... + +class vtkDataObjectCollection(vtkmodules.vtkCommonCore.vtkCollection): + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, ds:'vtkDataObject') -> None: ... + def GetItem(self, i:int) -> 'vtkDataObject': ... + def GetNextItem(self) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataObjectCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataObjectCollection': ... + +class vtkDataObjectTree(vtkCompositeDataSet): + actual_memory_size:'getset_descriptor' + data_object_type:'getset_descriptor' + number_of_cells:'getset_descriptor' + number_of_children:'getset_descriptor' + number_of_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CompositeShallowCopy(self, src:'vtkCompositeDataSet') -> None: ... + def CopyStructure(self, input:'vtkCompositeDataSet') -> None: ... + def DeepCopy(self, src:'vtkDataObject') -> None: ... + def GetActualMemorySize(self) -> int: ... + def GetChild(self, index:int) -> 'vtkDataObject': ... + def GetChildMetaData(self, index:int) -> 'vtkInformation': ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkDataObjectTree': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkDataObjectTree': ... + def GetDataObjectType(self) -> int: ... + @overload + def GetDataSet(self, iter:'vtkCompositeDataIterator') -> 'vtkDataObject': ... + @overload + def GetDataSet(self, flatIndex:int) -> 'vtkDataObject': ... + def GetMetaData(self, iter:'vtkCompositeDataIterator') -> 'vtkInformation': ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfChildren(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def HasChildMetaData(self, index:int) -> int: ... + def HasMetaData(self, iter:'vtkCompositeDataIterator') -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataObjectTree': ... + def NewIterator(self) -> 'vtkCompositeDataIterator': ... + def NewTreeIterator(self) -> 'vtkDataObjectTreeIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataObjectTree': ... + def SetDataSet(self, iter:'vtkCompositeDataIterator', dataObj:'vtkDataObject') -> None: ... + def SetDataSetFrom(self, iter:'vtkDataObjectTreeIterator', dataObj:'vtkDataObject') -> None: ... + def ShallowCopy(self, src:'vtkDataObject') -> None: ... + +class vtkDataObjectTreeIndex(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkDataObjectTreeIndex') -> None: ... + +class vtkDataObjectTreeInternals(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkDataObjectTreeInternals') -> None: ... + +class vtkDataObjectTreeItem(object): + @overload + def __init__(self, dobj:'vtkDataObject'=..., info:'vtkInformation'=...) -> None: ... + @overload + def __init__(self, __a:'vtkDataObjectTreeItem') -> None: ... + +class vtkDataObjectTreeIterator(vtkCompositeDataIterator): + current_data_object:'getset_descriptor' + current_flat_index:'getset_descriptor' + current_meta_data:'getset_descriptor' + traverse_sub_tree:'getset_descriptor' + visit_only_leaves:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCurrentDataObject(self) -> 'vtkDataObject': ... + def GetCurrentFlatIndex(self) -> int: ... + def GetCurrentMetaData(self) -> 'vtkInformation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTraverseSubTree(self) -> int: ... + def GetVisitOnlyLeaves(self) -> int: ... + def GoToFirstItem(self) -> None: ... + def GoToNextItem(self) -> None: ... + def HasCurrentMetaData(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsDoneWithTraversal(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataObjectTreeIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataObjectTreeIterator': ... + def SetTraverseSubTree(self, _arg:int) -> None: ... + def SetVisitOnlyLeaves(self, _arg:int) -> None: ... + def TraverseSubTreeOff(self) -> None: ... + def TraverseSubTreeOn(self) -> None: ... + def VisitOnlyLeavesOff(self) -> None: ... + def VisitOnlyLeavesOn(self) -> None: ... + +class vtkDataObjectTypes(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def GetClassNameFromTypeId(typeId:int) -> str: ... + @staticmethod + def GetCommonBaseTypeId(typeA:int, typeB:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GetTypeIdFromClassName(classname:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + @staticmethod + def NewDataObject(classname:str) -> 'vtkDataObject': ... + @overload + @staticmethod + def NewDataObject(typeId:int) -> 'vtkDataObject': ... + def NewInstance(self) -> 'vtkDataObjectTypes': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataObjectTypes': ... + @staticmethod + def TypeIdIsA(typeId:int, targetTypeId:int) -> bool: ... + +class vtkDataSet(vtkDataObject): + class FieldDataType(int): ... + CELL_DATA_FIELD:'FieldDataType' + DATA_OBJECT_FIELD:'FieldDataType' + POINT_DATA_FIELD:'FieldDataType' + actual_memory_size:'getset_descriptor' + bounds:'getset_descriptor' + cell_data:'getset_descriptor' + cell_ghost_array:'getset_descriptor' + center:'getset_descriptor' + data_object_type:'getset_descriptor' + length:'getset_descriptor' + length2:'getset_descriptor' + m_time:'getset_descriptor' + max_cell_size:'getset_descriptor' + max_spatial_dimension:'getset_descriptor' + mesh_m_time:'getset_descriptor' + min_spatial_dimension:'getset_descriptor' + number_of_cells:'getset_descriptor' + number_of_points:'getset_descriptor' + point_data:'getset_descriptor' + point_ghost_array:'getset_descriptor' + points:'getset_descriptor' + scalar_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllocateCellGhostArray(self) -> 'vtkUnsignedCharArray': ... + def AllocatePointGhostArray(self) -> 'vtkUnsignedCharArray': ... + def CheckAttributes(self) -> int: ... + def ComputeBounds(self) -> None: ... + def CopyAttributes(self, ds:'vtkDataSet') -> None: ... + def CopyStructure(self, ds:'vtkDataSet') -> None: ... + def DeepCopy(self, src:'vtkDataObject') -> None: ... + def FindAndGetCell(self, x:MutableSequence[float], cell:'vtkCell', cellId:int, tol2:float, subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> 'vtkCell': ... + @overload + def FindCell(self, x:MutableSequence[float], cell:'vtkCell', cellId:int, tol2:float, subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + @overload + def FindCell(self, x:MutableSequence[float], cell:'vtkCell', gencell:'vtkGenericCell', cellId:int, tol2:float, subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + @overload + def FindPoint(self, x:float, y:float, z:float) -> int: ... + @overload + def FindPoint(self, x:MutableSequence[float]) -> int: ... + @overload + def GenerateGhostArray(self, zeroExt:MutableSequence[int]) -> None: ... + @overload + def GenerateGhostArray(self, zeroExt:MutableSequence[int], cellOnly:bool) -> None: ... + def GetActualMemorySize(self) -> int: ... + def GetAttributesAsFieldData(self, type:int) -> 'vtkFieldData': ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetCell(self, cellId:int) -> 'vtkCell': ... + @overload + def GetCell(self, i:int, j:int, k:int) -> 'vtkCell': ... + @overload + def GetCell(self, cellId:int, cell:'vtkGenericCell') -> None: ... + def GetCellBounds(self, cellId:int, bounds:MutableSequence[float]) -> None: ... + def GetCellData(self) -> 'vtkCellData': ... + def GetCellGhostArray(self) -> 'vtkUnsignedCharArray': ... + def GetCellNeighbors(self, cellId:int, ptIds:'vtkIdList', cellIds:'vtkIdList') -> None: ... + def GetCellNumberOfFaces(self, cellId:int, cellType:int, cell:'vtkGenericCell') -> int: ... + @overload + def GetCellPoints(self, cellId:int, ptIds:'vtkIdList') -> None: ... + @overload + def GetCellPoints(self, cellId:int, npts:int, pts:Sequence[int], ptIds:'vtkIdList') -> None: ... + def GetCellSize(self, cellId:int) -> int: ... + def GetCellType(self, cellId:int) -> int: ... + def GetCellTypes(self, types:'vtkCellTypes') -> None: ... + @overload + def GetCenter(self) -> Tuple[float, float, float]: ... + @overload + def GetCenter(self, center:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkDataSet': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkDataSet': ... + def GetDataObjectType(self) -> int: ... + def GetGhostArray(self, type:int) -> 'vtkUnsignedCharArray': ... + def GetLength(self) -> float: ... + def GetLength2(self) -> float: ... + def GetMTime(self) -> int: ... + def GetMaxCellSize(self) -> int: ... + def GetMaxSpatialDimension(self) -> int: ... + def GetMeshMTime(self) -> int: ... + def GetMinSpatialDimension(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfElements(self, type:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + @overload + def GetPoint(self, ptId:int) -> Tuple[float, float, float]: ... + @overload + def GetPoint(self, id:int, x:MutableSequence[float]) -> None: ... + def GetPointCells(self, ptId:int, cellIds:'vtkIdList') -> None: ... + def GetPointData(self) -> 'vtkPointData': ... + def GetPointGhostArray(self) -> 'vtkUnsignedCharArray': ... + def GetPoints(self) -> 'vtkPoints': ... + @overload + def GetScalarRange(self, range:MutableSequence[float]) -> None: ... + @overload + def GetScalarRange(self) -> Tuple[float, float]: ... + def HasAnyBlankCells(self) -> bool: ... + def HasAnyBlankPoints(self) -> bool: ... + def HasAnyGhostCells(self) -> bool: ... + def HasAnyGhostPoints(self) -> bool: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewCellIterator(self) -> 'vtkCellIterator': ... + def NewInstance(self) -> 'vtkDataSet': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataSet': ... + def SetCellOrderAndRationalWeights(self, cellId:int, cell:'vtkGenericCell') -> None: ... + def ShallowCopy(self, src:'vtkDataObject') -> None: ... + def Squeeze(self) -> None: ... + def SupportsGhostArray(self, type:int) -> bool: ... + +class vtkDataSetAttributesFieldList(object): + number_of_arrays:'getset_descriptor' + def __init__(self, number_of_inputs:int=0) -> None: ... + def BuildPrototype(self, protoDSA:'vtkDataSetAttributes', ordering:'vtkDataSetAttributes'=...) -> None: ... + def CopyAllocate(self, output:'vtkDataSetAttributes', ctype:int, sz:int, ext:int) -> None: ... + @overload + def CopyData(self, inputIndex:int, input:'vtkDataSetAttributes', fromId:int, output:'vtkDataSetAttributes', toId:int) -> None: ... + @overload + def CopyData(self, inputIndex:int, input:'vtkDataSetAttributes', inputStart:int, numValues:int, output:'vtkDataSetAttributes', outStart:int) -> None: ... + def GetNumberOfArrays(self) -> int: ... + def InitializeFieldList(self, dsa:'vtkDataSetAttributes') -> None: ... + def InterpolatePoint(self, inputIndex:int, input:'vtkDataSetAttributes', inputIds:'vtkIdList', weights:MutableSequence[float], output:'vtkDataSetAttributes', toId:int) -> None: ... + def IntersectFieldList(self, dsa:'vtkDataSetAttributes') -> None: ... + def Reset(self) -> None: ... + def UnionFieldList(self, dsa:'vtkDataSetAttributes') -> None: ... + +class vtkDataSetCellIterator(vtkCellIterator): + cell_id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellId(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsDoneWithTraversal(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataSetCellIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataSetCellIterator': ... + +class vtkDataSetCollection(vtkmodules.vtkCommonCore.vtkCollection): + next_data_set:'getset_descriptor' + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, ds:'vtkDataSet') -> None: ... + def GetDataSet(self, i:int) -> 'vtkDataSet': ... + def GetItem(self, i:int) -> 'vtkDataSet': ... + def GetNextDataSet(self) -> 'vtkDataSet': ... + def GetNextItem(self) -> 'vtkDataSet': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataSetCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataSetCollection': ... + +class vtkGraph(vtkDataObject): + actual_memory_size:'getset_descriptor' + data_object_type:'getset_descriptor' + distributed_graph_helper:'getset_descriptor' + edge_data:'getset_descriptor' + m_time:'getset_descriptor' + number_of_edges:'getset_descriptor' + number_of_vertices:'getset_descriptor' + points:'getset_descriptor' + vertex_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddEdgePoint(self, e:int, x:Sequence[float]) -> None: ... + @overload + def AddEdgePoint(self, e:int, x:float, y:float, z:float) -> None: ... + def CheckedDeepCopy(self, g:'vtkGraph') -> bool: ... + def CheckedShallowCopy(self, g:'vtkGraph') -> bool: ... + def ClearEdgePoints(self, e:int) -> None: ... + def ComputeBounds(self) -> None: ... + def CopyStructure(self, g:'vtkGraph') -> None: ... + def DeepCopy(self, obj:'vtkDataObject') -> None: ... + def DeepCopyEdgePoints(self, g:'vtkGraph') -> None: ... + def Dump(self) -> None: ... + def FindVertex(self, pedigreeID:'vtkVariant') -> int: ... + def GetActualMemorySize(self) -> int: ... + def GetAdjacentVertices(self, v:int, it:'vtkAdjacentVertexIterator') -> None: ... + def GetAttributesAsFieldData(self, type:int) -> 'vtkFieldData': ... + @overload + def GetBounds(self) -> Pointer: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkGraph': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkGraph': ... + def GetDataObjectType(self) -> int: ... + def GetDegree(self, v:int) -> int: ... + def GetDistributedGraphHelper(self) -> 'vtkDistributedGraphHelper': ... + def GetEdgeData(self) -> 'vtkDataSetAttributes': ... + def GetEdgeId(self, a:int, b:int) -> int: ... + def GetEdgePoint(self, e:int, i:int) -> Tuple[float, float, float]: ... + def GetEdgePoints(self, e:int, npts:int, pts:MutableSequence[float]) -> None: ... + def GetEdges(self, it:'vtkEdgeListIterator') -> None: ... + def GetGraphInternals(self, modifying:bool) -> 'vtkGraphInternals': ... + def GetInDegree(self, v:int) -> int: ... + @overload + def GetInEdge(self, v:int, index:int) -> 'vtkInEdgeType': ... + @overload + def GetInEdge(self, v:int, index:int, e:'vtkGraphEdge') -> None: ... + def GetInEdges(self, v:int, it:'vtkInEdgeIterator') -> None: ... + def GetInducedEdges(self, verts:'vtkIdTypeArray', edges:'vtkIdTypeArray') -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfEdgePoints(self, e:int) -> int: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfElements(self, type:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfVertices(self) -> int: ... + def GetOutDegree(self, v:int) -> int: ... + @overload + def GetOutEdge(self, v:int, index:int) -> 'vtkOutEdgeType': ... + @overload + def GetOutEdge(self, v:int, index:int, e:'vtkGraphEdge') -> None: ... + def GetOutEdges(self, v:int, it:'vtkOutEdgeIterator') -> None: ... + @overload + def GetPoint(self, ptId:int) -> Pointer: ... + @overload + def GetPoint(self, ptId:int, x:MutableSequence[float]) -> None: ... + def GetPoints(self) -> 'vtkPoints': ... + def GetSourceVertex(self, e:int) -> int: ... + def GetTargetVertex(self, e:int) -> int: ... + def GetVertexData(self) -> 'vtkDataSetAttributes': ... + def GetVertices(self, it:'vtkVertexListIterator') -> None: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsSameStructure(self, other:'vtkGraph') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGraph': ... + def ReorderOutVertices(self, v:int, vertices:'vtkIdTypeArray') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraph': ... + def SetDistributedGraphHelper(self, helper:'vtkDistributedGraphHelper') -> None: ... + @overload + def SetEdgePoint(self, e:int, i:int, x:Sequence[float]) -> None: ... + @overload + def SetEdgePoint(self, e:int, i:int, x:float, y:float, z:float) -> None: ... + def SetEdgePoints(self, e:int, npts:int, pts:Sequence[float]) -> None: ... + def SetPoints(self, points:'vtkPoints') -> None: ... + def ShallowCopy(self, obj:'vtkDataObject') -> None: ... + def ShallowCopyEdgePoints(self, g:'vtkGraph') -> None: ... + def Squeeze(self) -> None: ... + def ToDirectedGraph(self, g:'vtkDirectedGraph') -> bool: ... + def ToUndirectedGraph(self, g:'vtkUndirectedGraph') -> bool: ... + +class vtkDirectedGraph(vtkGraph): + data_object_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkDirectedGraph': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkDirectedGraph': ... + def GetDataObjectType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsStructureValid(self, g:'vtkGraph') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDirectedGraph': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDirectedGraph': ... + +class vtkDirectedAcyclicGraph(vtkDirectedGraph): + data_object_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkDirectedAcyclicGraph': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkDirectedAcyclicGraph': ... + def GetDataObjectType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDirectedAcyclicGraph': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDirectedAcyclicGraph': ... + +class vtkDistributedGraphHelper(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def Clone(self) -> 'vtkDistributedGraphHelper': ... + @staticmethod + def DISTRIBUTEDEDGEIDS() -> 'vtkInformationIntegerKey': ... + @staticmethod + def DISTRIBUTEDVERTEXIDS() -> 'vtkInformationIntegerKey': ... + def GetEdgeIndex(self, e_id:int) -> int: ... + def GetEdgeOwner(self, e_id:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVertexIndex(self, v:int) -> int: ... + def GetVertexOwner(self, v:int) -> int: ... + def GetVertexOwnerByPedigreeId(self, pedigreeId:'vtkVariant') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeDistributedId(self, owner:int, local:int) -> int: ... + def NewInstance(self) -> 'vtkDistributedGraphHelper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDistributedGraphHelper': ... + def Synchronize(self) -> None: ... + +class vtkEdgeBase(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, id:int) -> None: ... + @overload + def __init__(self, __a:'vtkEdgeBase') -> None: ... + +class vtkEdgeListIterator(vtkmodules.vtkCommonCore.vtkObject): + graph:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetGraph(self) -> 'vtkGraph': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def HasNext(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEdgeListIterator': ... + def Next(self) -> 'vtkEdgeType': ... + def NextGraphEdge(self) -> 'vtkGraphEdge': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEdgeListIterator': ... + def SetGraph(self, graph:'vtkGraph') -> None: ... + +class vtkEdgeTable(vtkmodules.vtkCommonCore.vtkObject): + number_of_edges:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNextEdge(self, p1:int, p2:int) -> int: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InitEdgeInsertion(self, numPoints:int, storeAttributes:int=0) -> int: ... + def InitPointInsertion(self, newPts:'vtkPoints', estSize:int) -> int: ... + def InitTraversal(self) -> None: ... + def Initialize(self) -> None: ... + @overload + def InsertEdge(self, p1:int, p2:int) -> int: ... + @overload + def InsertEdge(self, p1:int, p2:int, attributeId:int) -> None: ... + @overload + def InsertEdge(self, p1:int, p2:int, ptr:Pointer) -> None: ... + def InsertUniquePoint(self, p1:int, p2:int, x:MutableSequence[float], ptId:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsEdge(self, p1:int, p2:int) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEdgeTable': ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEdgeTable': ... + +class vtkEdgeType(vtkEdgeBase): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, s:int, t:int, id:int) -> None: ... + @overload + def __init__(self, __a:'vtkEdgeType') -> None: ... + +class vtkEmptyCell(vtkCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', pts:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts1:'vtkCellArray', lines:'vtkCellArray', verts2:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, __a:int) -> 'vtkCell': ... + def GetFace(self, __a:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEmptyCell': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEmptyCell': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkPointSet(vtkDataSet): + actual_memory_size:'getset_descriptor' + cell_locator:'getset_descriptor' + data_object_type:'getset_descriptor' + editable:'getset_descriptor' + m_time:'getset_descriptor' + max_cell_size:'getset_descriptor' + number_of_cells:'getset_descriptor' + number_of_points:'getset_descriptor' + point_locator:'getset_descriptor' + points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildCellLocator(self) -> None: ... + def BuildLocator(self) -> None: ... + def BuildPointLocator(self) -> None: ... + def ComputeBounds(self) -> None: ... + def CopyStructure(self, pd:'vtkDataSet') -> None: ... + def DeepCopy(self, src:'vtkDataObject') -> None: ... + def EditableOff(self) -> None: ... + def EditableOn(self) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkPointSet': ... + @overload + def FindCell(self, x:MutableSequence[float], cell:'vtkCell', cellId:int, tol2:float, subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + @overload + def FindCell(self, x:MutableSequence[float], cell:'vtkCell', gencell:'vtkGenericCell', cellId:int, tol2:float, subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + def FindPoint(self, x:MutableSequence[float]) -> int: ... + def GetActualMemorySize(self) -> int: ... + @overload + def GetCell(self, __a:int) -> 'vtkCell': ... + @overload + def GetCell(self, __a:int, cell:'vtkGenericCell') -> None: ... + @overload + def GetCell(self, i:int, j:int, k:int) -> 'vtkCell': ... + def GetCellLocator(self) -> 'vtkAbstractCellLocator': ... + @overload + def GetCellPoints(self, __a:int, idList:'vtkIdList') -> None: ... + @overload + def GetCellPoints(self, cellId:int, npts:int, pts:Sequence[int], ptIds:'vtkIdList') -> None: ... + def GetCellSize(self, __a:int) -> int: ... + def GetCellType(self, __a:int) -> int: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkPointSet': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkPointSet': ... + def GetDataObjectType(self) -> int: ... + def GetEditable(self) -> bool: ... + def GetMTime(self) -> int: ... + def GetMaxCellSize(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + @overload + def GetPoint(self, ptId:int, x:MutableSequence[float]) -> None: ... + @overload + def GetPoint(self, ptId:int) -> Tuple[float, float, float]: ... + def GetPointCells(self, __a:int, idList:'vtkIdList') -> None: ... + def GetPointLocator(self) -> 'vtkAbstractPointLocator': ... + def GetPoints(self) -> 'vtkPoints': ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewCellIterator(self) -> 'vtkCellIterator': ... + def NewInstance(self) -> 'vtkPointSet': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointSet': ... + def SetCellLocator(self, __a:'vtkAbstractCellLocator') -> None: ... + def SetEditable(self, _arg:bool) -> None: ... + def SetPointLocator(self, __a:'vtkAbstractPointLocator') -> None: ... + def SetPoints(self, __a:'vtkPoints') -> None: ... + def ShallowCopy(self, src:'vtkDataObject') -> None: ... + def Squeeze(self) -> None: ... + def UsesGarbageCollector(self) -> bool: ... + +class vtkExplicitStructuredGrid(vtkPointSet): + actual_memory_size:'getset_descriptor' + cells:'getset_descriptor' + data_dimension:'getset_descriptor' + data_object_type:'getset_descriptor' + dimensions:'getset_descriptor' + extent:'getset_descriptor' + extent_type:'getset_descriptor' + faces_connectivity_flags_array_name:'getset_descriptor' + links:'getset_descriptor' + max_cell_size:'getset_descriptor' + max_spatial_dimension:'getset_descriptor' + min_spatial_dimension:'getset_descriptor' + number_of_cells:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BlankCell(self, cellId:int) -> None: ... + def BuildLinks(self) -> None: ... + def CheckAndReorderFaces(self) -> None: ... + def ComputeCellId(self, i:int, j:int, k:int, adjustForExtent:bool=True) -> int: ... + def ComputeCellStructuredCoords(self, cellId:int, i:int, j:int, k:int, adjustForExtent:bool=True) -> None: ... + def ComputeFacesConnectivityFlagsArray(self) -> None: ... + def CopyStructure(self, ds:'vtkDataSet') -> None: ... + @overload + def Crop(self, updateExtent:Sequence[int]) -> None: ... + @overload + def Crop(self, input:'vtkExplicitStructuredGrid', updateExtent:Sequence[int], generateOriginalCellIds:bool) -> None: ... + def DeepCopy(self, src:'vtkDataObject') -> None: ... + @overload + def GenerateGhostArray(self, zeroExt:MutableSequence[int], cellOnly:bool) -> None: ... + @overload + def GenerateGhostArray(self, zeroExt:MutableSequence[int]) -> None: ... + def GetActualMemorySize(self) -> int: ... + @overload + def GetCell(self, cellId:int) -> 'vtkCell': ... + @overload + def GetCell(self, cellId:int, cell:'vtkGenericCell') -> None: ... + @overload + def GetCell(self, i:int, j:int, k:int) -> 'vtkCell': ... + def GetCellBounds(self, cellId:int, bounds:MutableSequence[float]) -> None: ... + def GetCellDims(self, cellDims:MutableSequence[int]) -> None: ... + @overload + def GetCellNeighbors(self, cellId:int, ptIds:'vtkIdList', cellIds:'vtkIdList') -> None: ... + @overload + def GetCellNeighbors(self, cellId:int, neighbors:MutableSequence[int], wholeExtent:MutableSequence[int]=...) -> None: ... + @overload + def GetCellPoints(self, cellId:int, ptIds:'vtkIdList') -> None: ... + @overload + def GetCellPoints(self, cellId:int) -> Pointer: ... + @overload + def GetCellPoints(self, cellId:int, npts:int, pts:MutableSequence[int]) -> None: ... + @overload + def GetCellPoints(self, cellId:int, npts:int, pts:Sequence[int], ptIds:'vtkIdList') -> None: ... + def GetCellSize(self, cellId:int) -> int: ... + def GetCellType(self, cellId:int) -> int: ... + def GetCells(self) -> 'vtkCellArray': ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkExplicitStructuredGrid': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkExplicitStructuredGrid': ... + def GetDataDimension(self) -> int: ... + def GetDataObjectType(self) -> int: ... + def GetDimensions(self, dim:MutableSequence[int]) -> None: ... + def GetExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetExtentType(self) -> int: ... + def GetFacesConnectivityFlagsArrayName(self) -> str: ... + def GetLinks(self) -> 'vtkAbstractCellLinks': ... + def GetMaxCellSize(self) -> int: ... + def GetMaxSpatialDimension(self) -> int: ... + def GetMinSpatialDimension(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointCells(self, ptId:int, cellIds:'vtkIdList') -> None: ... + def HasAnyBlankCells(self) -> bool: ... + def HasAnyGhostCells(self) -> bool: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsCellGhost(self, cellId:int) -> int: ... + def IsCellVisible(self, cellId:int) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExplicitStructuredGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExplicitStructuredGrid': ... + def SetCells(self, _arg:'vtkCellArray') -> None: ... + @overload + def SetDimensions(self, i:int, j:int, k:int) -> None: ... + @overload + def SetDimensions(self, dim:MutableSequence[int]) -> None: ... + @overload + def SetExtent(self, x0:int, x1:int, y0:int, y1:int, z0:int, z1:int) -> None: ... + @overload + def SetExtent(self, extent:MutableSequence[int]) -> None: ... + def SetFacesConnectivityFlagsArrayName(self, _arg:str) -> None: ... + def SetLinks(self, _arg:'vtkAbstractCellLinks') -> None: ... + def ShallowCopy(self, src:'vtkDataObject') -> None: ... + def UnBlankCell(self, cellId:int) -> None: ... + +class vtkExtractStructuredGridHelper(vtkmodules.vtkCommonCore.vtkObject): + output_whole_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeBeginAndEnd(self, inExt:MutableSequence[int], voi:MutableSequence[int], begin:MutableSequence[int], end:MutableSequence[int]) -> None: ... + def CopyCellData(self, inExt:MutableSequence[int], outExt:MutableSequence[int], cd:'vtkCellData', outCD:'vtkCellData') -> None: ... + def CopyPointsAndPointData(self, inExt:MutableSequence[int], outExt:MutableSequence[int], pd:'vtkPointData', inpnts:'vtkPoints', outPD:'vtkPointData', outpnts:'vtkPoints') -> None: ... + def GetMappedExtentValue(self, dim:int, outExtVal:int) -> int: ... + def GetMappedExtentValueFromIndex(self, dim:int, outIdx:int) -> int: ... + def GetMappedIndex(self, dim:int, outIdx:int) -> int: ... + def GetMappedIndexFromExtentValue(self, dim:int, outExtVal:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputWholeExtent(self) -> Tuple[int, int, int, int, int, int]: ... + @staticmethod + def GetPartitionedOutputExtent(globalVOI:Sequence[int], partitionedVOI:Sequence[int], outputWholeExtent:Sequence[int], sampleRate:Sequence[int], includeBoundary:bool, partitionedOutputExtent:MutableSequence[int]) -> None: ... + @staticmethod + def GetPartitionedVOI(globalVOI:Sequence[int], partitionedExtent:Sequence[int], sampleRate:Sequence[int], includeBoundary:bool, partitionedVOI:MutableSequence[int]) -> None: ... + def GetSize(self, dim:int) -> int: ... + def Initialize(self, voi:MutableSequence[int], wholeExt:MutableSequence[int], sampleRate:MutableSequence[int], includeBoundary:bool) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def IsValid(self) -> bool: ... + def NewInstance(self) -> 'vtkExtractStructuredGridHelper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractStructuredGridHelper': ... + +class vtkFrustum(vtkImplicitFunction): + bottom_plane:'getset_descriptor' + horizontal_angle:'getset_descriptor' + left_plane:'getset_descriptor' + near_plane:'getset_descriptor' + near_plane_distance:'getset_descriptor' + right_plane:'getset_descriptor' + top_plane:'getset_descriptor' + vertical_angle:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], g:MutableSequence[float]) -> None: ... + def GetBottomPlane(self) -> 'vtkPlane': ... + def GetHorizontalAngle(self) -> float: ... + def GetLeftPlane(self) -> 'vtkPlane': ... + def GetNearPlane(self) -> 'vtkPlane': ... + def GetNearPlaneDistance(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRightPlane(self) -> 'vtkPlane': ... + def GetTopPlane(self) -> 'vtkPlane': ... + def GetVerticalAngle(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFrustum': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFrustum': ... + def SetHorizontalAngle(self, angleInDegrees:float) -> None: ... + def SetNearPlaneDistance(self, distance:float) -> None: ... + def SetVerticalAngle(self, angleInDegrees:float) -> None: ... + +class vtkGenericAdaptorCell(vtkmodules.vtkCommonCore.vtkObject): + dimension:'getset_descriptor' + geometry_order:'getset_descriptor' + id:'getset_descriptor' + length2:'getset_descriptor' + number_of_dof_nodes:'getset_descriptor' + number_of_points:'getset_descriptor' + parametric_coords:'getset_descriptor' + type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Clip(self, value:float, f:'vtkImplicitFunction', attributes:'vtkGenericAttributeCollection', tess:'vtkGenericCellTessellator', insideOut:int, locator:'vtkIncrementalPointLocator', connectivity:'vtkCellArray', outPd:'vtkPointData', outCd:'vtkCellData', internalPd:'vtkPointData', secondaryPd:'vtkPointData', secondaryCd:'vtkCellData') -> None: ... + def Contour(self, values:'vtkContourValues', f:'vtkImplicitFunction', attributes:'vtkGenericAttributeCollection', tess:'vtkGenericCellTessellator', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', outPd:'vtkPointData', outCd:'vtkCellData', internalPd:'vtkPointData', secondaryPd:'vtkPointData', secondaryCd:'vtkCellData') -> None: ... + def CountEdgeNeighbors(self, sharing:MutableSequence[int]) -> None: ... + def CountNeighbors(self, boundary:'vtkGenericAdaptorCell') -> int: ... + def Derivatives(self, subId:int, pcoords:MutableSequence[float], attribute:'vtkGenericAttribute', derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:MutableSequence[float], x:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float) -> int: ... + def GetAttributeOrder(self, a:'vtkGenericAttribute') -> int: ... + def GetBoundaryIterator(self, boundaries:'vtkGenericCellIterator', dim:int=-1) -> None: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetBounds(self) -> Pointer: ... + def GetDimension(self) -> int: ... + def GetEdgeArray(self, edgeId:int) -> Pointer: ... + def GetFaceArray(self, faceId:int) -> Pointer: ... + def GetGeometryOrder(self) -> int: ... + def GetHighestOrderAttribute(self, ac:'vtkGenericAttributeCollection') -> int: ... + def GetId(self) -> int: ... + def GetLength2(self) -> float: ... + def GetNeighbors(self, boundary:'vtkGenericAdaptorCell', neighbors:'vtkGenericCellIterator') -> None: ... + def GetNumberOfBoundaries(self, dim:int=-1) -> int: ... + def GetNumberOfDOFNodes(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def GetNumberOfVerticesOnFace(self, faceId:int) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Pointer: ... + def GetParametricDistance(self, pcoords:Sequence[float]) -> float: ... + def GetPointIds(self, id:MutableSequence[int]) -> None: ... + def GetPointIterator(self, it:'vtkGenericPointIterator') -> None: ... + def GetType(self) -> int: ... + @overload + def InterpolateTuple(self, a:'vtkGenericAttribute', pcoords:MutableSequence[float], val:MutableSequence[float]) -> None: ... + @overload + def InterpolateTuple(self, c:'vtkGenericAttributeCollection', pcoords:MutableSequence[float], val:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:MutableSequence[float], p2:MutableSequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsAttributeLinear(self, a:'vtkGenericAttribute') -> int: ... + def IsFaceOnBoundary(self, faceId:int) -> int: ... + def IsGeometryLinear(self) -> int: ... + def IsInDataSet(self) -> int: ... + def IsOnBoundary(self) -> int: ... + def IsPrimary(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewCellIterator(self) -> 'vtkGenericCellIterator': ... + def NewInstance(self) -> 'vtkGenericAdaptorCell': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericAdaptorCell': ... + def Tessellate(self, attributes:'vtkGenericAttributeCollection', tess:'vtkGenericCellTessellator', points:'vtkPoints', locator:'vtkIncrementalPointLocator', cellArray:'vtkCellArray', internalPd:'vtkPointData', pd:'vtkPointData', cd:'vtkCellData', types:'vtkUnsignedCharArray') -> None: ... + def TriangulateFace(self, attributes:'vtkGenericAttributeCollection', tess:'vtkGenericCellTessellator', index:int, points:'vtkPoints', locator:'vtkIncrementalPointLocator', cellArray:'vtkCellArray', internalPd:'vtkPointData', pd:'vtkPointData', cd:'vtkCellData') -> None: ... + +class vtkGenericAttribute(vtkmodules.vtkCommonCore.vtkObject): + actual_memory_size:'getset_descriptor' + centering:'getset_descriptor' + component_type:'getset_descriptor' + max_norm:'getset_descriptor' + name:'getset_descriptor' + number_of_components:'getset_descriptor' + size:'getset_descriptor' + type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self, other:'vtkGenericAttribute') -> None: ... + def GetActualMemorySize(self) -> int: ... + def GetCentering(self) -> int: ... + @overload + def GetComponent(self, i:int, c:'vtkGenericCellIterator', values:MutableSequence[float]) -> None: ... + @overload + def GetComponent(self, i:int, p:'vtkGenericPointIterator') -> float: ... + def GetComponentType(self) -> int: ... + def GetMaxNorm(self) -> float: ... + def GetName(self) -> str: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetRange(self, component:int=0) -> Pointer: ... + @overload + def GetRange(self, component:int, range:MutableSequence[float]) -> None: ... + def GetSize(self) -> int: ... + @overload + def GetTuple(self, c:'vtkGenericAdaptorCell') -> Pointer: ... + @overload + def GetTuple(self, c:'vtkGenericAdaptorCell', tuple:MutableSequence[float]) -> None: ... + @overload + def GetTuple(self, c:'vtkGenericCellIterator') -> Pointer: ... + @overload + def GetTuple(self, c:'vtkGenericCellIterator', tuple:MutableSequence[float]) -> None: ... + @overload + def GetTuple(self, p:'vtkGenericPointIterator') -> Pointer: ... + @overload + def GetTuple(self, p:'vtkGenericPointIterator', tuple:MutableSequence[float]) -> None: ... + def GetType(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenericAttribute': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericAttribute': ... + def ShallowCopy(self, other:'vtkGenericAttribute') -> None: ... + +class vtkGenericAttributeCollection(vtkmodules.vtkCommonCore.vtkObject): + active_attribute:'getset_descriptor' + active_component:'getset_descriptor' + actual_memory_size:'getset_descriptor' + attributes_to_interpolate:'getset_descriptor' + m_time:'getset_descriptor' + max_number_of_components:'getset_descriptor' + number_of_attributes_to_interpolate:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_point_centered_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self, other:'vtkGenericAttributeCollection') -> None: ... + def FindAttribute(self, name:str) -> int: ... + def GetActiveAttribute(self) -> int: ... + def GetActiveComponent(self) -> int: ... + def GetActualMemorySize(self) -> int: ... + def GetAttribute(self, i:int) -> 'vtkGenericAttribute': ... + def GetAttributeIndex(self, i:int) -> int: ... + def GetAttributesToInterpolate(self) -> Tuple[int, int]: ... + def GetMTime(self) -> int: ... + def GetMaxNumberOfComponents(self) -> int: ... + def GetNumberOfAttributes(self) -> int: ... + def GetNumberOfAttributesToInterpolate(self) -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPointCenteredComponents(self) -> int: ... + def HasAttribute(self, size:int, attributes:MutableSequence[int], attribute:int) -> int: ... + def InsertAttribute(self, i:int, a:'vtkGenericAttribute') -> None: ... + def InsertNextAttribute(self, a:'vtkGenericAttribute') -> None: ... + def IsA(self, type:str) -> int: ... + def IsEmpty(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenericAttributeCollection': ... + def RemoveAttribute(self, i:int) -> None: ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericAttributeCollection': ... + def SetActiveAttribute(self, attribute:int, component:int=0) -> None: ... + def SetAttributesToInterpolate(self, size:int, attributes:MutableSequence[int]) -> None: ... + def SetAttributesToInterpolateToAll(self) -> None: ... + def ShallowCopy(self, other:'vtkGenericAttributeCollection') -> None: ... + +class vtkGenericCell(vtkCell): + cell_dimension:'getset_descriptor' + cell_faces:'getset_descriptor' + cell_type:'getset_descriptor' + faces:'getset_descriptor' + parametric_coords:'getset_descriptor' + point_ids:'getset_descriptor' + points:'getset_descriptor' + representative_cell:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', connectivity:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def DeepCopy(self, c:'vtkCell') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + @overload + def GetCellFaces(self) -> 'vtkCellArray': ... + @overload + def GetCellFaces(self, faces:'vtkCellArray') -> None: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + def GetFaces(self) -> Pointer: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetRepresentativeCell(self) -> 'vtkCell': ... + def Initialize(self) -> None: ... + @staticmethod + def InstantiateCell(cellType:int) -> 'vtkCell': ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsLinear(self) -> int: ... + def IsPrimaryCell(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenericCell': ... + def RequiresExplicitFaceRepresentation(self) -> int: ... + def RequiresInitialization(self) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericCell': ... + def SetCellFaces(self, faces:'vtkCellArray') -> int: ... + def SetCellType(self, cellType:int) -> None: ... + def SetCellTypeToBezierCurve(self) -> None: ... + def SetCellTypeToBezierHexahedron(self) -> None: ... + def SetCellTypeToBezierQuadrilateral(self) -> None: ... + def SetCellTypeToBezierTetra(self) -> None: ... + def SetCellTypeToBezierTriangle(self) -> None: ... + def SetCellTypeToBezierWedge(self) -> None: ... + def SetCellTypeToBiQuadraticQuad(self) -> None: ... + def SetCellTypeToBiQuadraticQuadraticHexahedron(self) -> None: ... + def SetCellTypeToBiQuadraticQuadraticWedge(self) -> None: ... + def SetCellTypeToBiQuadraticTriangle(self) -> None: ... + def SetCellTypeToConvexPointSet(self) -> None: ... + def SetCellTypeToCubicLine(self) -> None: ... + def SetCellTypeToEmptyCell(self) -> None: ... + def SetCellTypeToHexagonalPrism(self) -> None: ... + def SetCellTypeToHexahedron(self) -> None: ... + def SetCellTypeToLagrangeCurve(self) -> None: ... + def SetCellTypeToLagrangeHexahedron(self) -> None: ... + def SetCellTypeToLagrangeQuadrilateral(self) -> None: ... + def SetCellTypeToLagrangeTetra(self) -> None: ... + def SetCellTypeToLagrangeTriangle(self) -> None: ... + def SetCellTypeToLagrangeWedge(self) -> None: ... + def SetCellTypeToLine(self) -> None: ... + def SetCellTypeToPentagonalPrism(self) -> None: ... + def SetCellTypeToPixel(self) -> None: ... + def SetCellTypeToPolyLine(self) -> None: ... + def SetCellTypeToPolyVertex(self) -> None: ... + def SetCellTypeToPolygon(self) -> None: ... + def SetCellTypeToPolyhedron(self) -> None: ... + def SetCellTypeToPyramid(self) -> None: ... + def SetCellTypeToQuad(self) -> None: ... + def SetCellTypeToQuadraticEdge(self) -> None: ... + def SetCellTypeToQuadraticHexahedron(self) -> None: ... + def SetCellTypeToQuadraticLinearQuad(self) -> None: ... + def SetCellTypeToQuadraticLinearWedge(self) -> None: ... + def SetCellTypeToQuadraticPolygon(self) -> None: ... + def SetCellTypeToQuadraticPyramid(self) -> None: ... + def SetCellTypeToQuadraticQuad(self) -> None: ... + def SetCellTypeToQuadraticTetra(self) -> None: ... + def SetCellTypeToQuadraticTriangle(self) -> None: ... + def SetCellTypeToQuadraticWedge(self) -> None: ... + def SetCellTypeToTetra(self) -> None: ... + def SetCellTypeToTriQuadraticHexahedron(self) -> None: ... + def SetCellTypeToTriQuadraticPyramid(self) -> None: ... + def SetCellTypeToTriangle(self) -> None: ... + def SetCellTypeToTriangleStrip(self) -> None: ... + def SetCellTypeToVertex(self) -> None: ... + def SetCellTypeToVoxel(self) -> None: ... + def SetCellTypeToWedge(self) -> None: ... + def SetFaces(self, faces:MutableSequence[int]) -> None: ... + def SetPointIds(self, pointIds:'vtkIdList') -> None: ... + def SetPoints(self, points:'vtkPoints') -> None: ... + def ShallowCopy(self, c:'vtkCell') -> None: ... + def Triangulate(self, index:int, ptIds:'vtkIdList', pts:'vtkPoints') -> int: ... + def TriangulateIds(self, index:int, ptIds:'vtkIdList') -> int: ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkGenericCellIterator(vtkmodules.vtkCommonCore.vtkObject): + cell:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Begin(self) -> None: ... + @overload + def GetCell(self, c:'vtkGenericAdaptorCell') -> None: ... + @overload + def GetCell(self) -> 'vtkGenericAdaptorCell': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsAtEnd(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewCell(self) -> 'vtkGenericAdaptorCell': ... + def NewInstance(self) -> 'vtkGenericCellIterator': ... + def Next(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericCellIterator': ... + +class vtkGenericCellTessellator(vtkmodules.vtkCommonCore.vtkObject): + error_metrics:'getset_descriptor' + measurement:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetErrorMetrics(self) -> 'vtkCollection': ... + def GetMaxErrors(self, errors:MutableSequence[float]) -> None: ... + def GetMeasurement(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InitErrorMetrics(self, ds:'vtkGenericDataSet') -> None: ... + def Initialize(self, ds:'vtkGenericDataSet') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenericCellTessellator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericCellTessellator': ... + def SetErrorMetrics(self, someErrorMetrics:'vtkCollection') -> None: ... + def SetMeasurement(self, _arg:int) -> None: ... + def Tessellate(self, cell:'vtkGenericAdaptorCell', att:'vtkGenericAttributeCollection', points:'vtkDoubleArray', cellArray:'vtkCellArray', internalPd:'vtkPointData') -> None: ... + def TessellateFace(self, cell:'vtkGenericAdaptorCell', att:'vtkGenericAttributeCollection', index:int, points:'vtkDoubleArray', cellArray:'vtkCellArray', internalPd:'vtkPointData') -> None: ... + def Triangulate(self, cell:'vtkGenericAdaptorCell', att:'vtkGenericAttributeCollection', points:'vtkDoubleArray', cellArray:'vtkCellArray', internalPd:'vtkPointData') -> None: ... + +class vtkGenericDataSet(vtkDataObject): + actual_memory_size:'getset_descriptor' + attributes:'getset_descriptor' + cell_dimension:'getset_descriptor' + data_object_type:'getset_descriptor' + estimated_size:'getset_descriptor' + length:'getset_descriptor' + m_time:'getset_descriptor' + number_of_points:'getset_descriptor' + tessellator:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeBounds(self) -> None: ... + def FindPoint(self, x:MutableSequence[float], p:'vtkGenericPointIterator') -> None: ... + def GetActualMemorySize(self) -> int: ... + @overload + def GetAttributes(self) -> 'vtkGenericAttributeCollection': ... + @overload + def GetAttributes(self, type:int) -> 'vtkDataSetAttributes': ... + @overload + def GetBounds(self) -> Pointer: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetCellDimension(self) -> int: ... + def GetCellTypes(self, types:'vtkCellTypes') -> None: ... + @overload + def GetCenter(self) -> Pointer: ... + @overload + def GetCenter(self, center:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkGenericDataSet': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkGenericDataSet': ... + def GetDataObjectType(self) -> int: ... + def GetEstimatedSize(self) -> int: ... + def GetLength(self) -> float: ... + def GetMTime(self) -> int: ... + def GetNumberOfCells(self, dim:int=-1) -> int: ... + def GetNumberOfElements(self, type:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def GetTessellator(self) -> 'vtkGenericCellTessellator': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewBoundaryIterator(self, dim:int=-1, exteriorOnly:int=0) -> 'vtkGenericCellIterator': ... + def NewCellIterator(self, dim:int=-1) -> 'vtkGenericCellIterator': ... + def NewInstance(self) -> 'vtkGenericDataSet': ... + def NewPointIterator(self) -> 'vtkGenericPointIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericDataSet': ... + def SetTessellator(self, tessellator:'vtkGenericCellTessellator') -> None: ... + +class vtkGenericEdgeTable(vtkmodules.vtkCommonCore.vtkObject): + number_of_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CheckEdge(self, e1:int, e2:int, ptId:int) -> int: ... + def CheckEdgeReferenceCount(self, e1:int, e2:int) -> int: ... + @overload + def CheckPoint(self, ptId:int) -> int: ... + @overload + def CheckPoint(self, ptId:int, point:MutableSequence[float], scalar:MutableSequence[float]) -> int: ... + def DumpTable(self) -> None: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IncrementEdgeReferenceCount(self, e1:int, e2:int, cellId:int) -> int: ... + def IncrementPointReferenceCount(self, ptId:int) -> None: ... + def Initialize(self, start:int) -> None: ... + @overload + def InsertEdge(self, e1:int, e2:int, cellId:int, ref:int, ptId:int) -> None: ... + @overload + def InsertEdge(self, e1:int, e2:int, cellId:int, ref:int=1) -> None: ... + def InsertPoint(self, ptId:int, point:MutableSequence[float]) -> None: ... + def InsertPointAndScalar(self, ptId:int, pt:MutableSequence[float], s:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LoadFactor(self) -> None: ... + def NewInstance(self) -> 'vtkGenericEdgeTable': ... + def RemoveEdge(self, e1:int, e2:int) -> int: ... + def RemovePoint(self, ptId:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericEdgeTable': ... + def SetNumberOfComponents(self, count:int) -> None: ... + +class vtkGenericInterpolatedVelocityField(vtkmodules.vtkCommonMath.vtkFunctionSet): + cache_hit:'getset_descriptor' + cache_miss:'getset_descriptor' + caching:'getset_descriptor' + last_cell:'getset_descriptor' + last_data_set:'getset_descriptor' + vectors_selection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddDataSet(self, dataset:'vtkGenericDataSet') -> None: ... + def CachingOff(self) -> None: ... + def CachingOn(self) -> None: ... + def ClearLastCell(self) -> None: ... + def CopyParameters(self, from_:'vtkGenericInterpolatedVelocityField') -> None: ... + @overload + def FunctionValues(self, x:MutableSequence[float], f:MutableSequence[float]) -> int: ... + @overload + def FunctionValues(self, x:MutableSequence[float], f:MutableSequence[float], userData:Pointer) -> int: ... + def GetCacheHit(self) -> int: ... + def GetCacheMiss(self) -> int: ... + def GetCaching(self) -> int: ... + def GetLastCell(self) -> 'vtkGenericAdaptorCell': ... + def GetLastDataSet(self) -> 'vtkGenericDataSet': ... + def GetLastLocalCoordinates(self, pcoords:MutableSequence[float]) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVectorsSelection(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenericInterpolatedVelocityField': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericInterpolatedVelocityField': ... + def SelectVectors(self, fieldName:str) -> None: ... + def SetCaching(self, _arg:int) -> None: ... + +class vtkGenericPointIterator(vtkmodules.vtkCommonCore.vtkObject): + id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Begin(self) -> None: ... + def GetId(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetPosition(self) -> Pointer: ... + @overload + def GetPosition(self, x:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + def IsAtEnd(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenericPointIterator': ... + def Next(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericPointIterator': ... + +class vtkGeometricErrorMetric(vtkGenericSubdivisionErrorMetric): + absolute_geometric_tolerance:'getset_descriptor' + relative:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAbsoluteGeometricTolerance(self) -> float: ... + def GetError(self, leftPoint:MutableSequence[float], midPoint:MutableSequence[float], rightPoint:MutableSequence[float], alpha:float) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRelative(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGeometricErrorMetric': ... + def RequiresEdgeSubdivision(self, leftPoint:MutableSequence[float], midPoint:MutableSequence[float], rightPoint:MutableSequence[float], alpha:float) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGeometricErrorMetric': ... + def SetAbsoluteGeometricTolerance(self, value:float) -> None: ... + def SetRelativeGeometricTolerance(self, value:float, ds:'vtkGenericDataSet') -> None: ... + +class vtkGraphEdge(vtkmodules.vtkCommonCore.vtkObject): + id:'getset_descriptor' + source:'getset_descriptor' + target:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetId(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSource(self) -> int: ... + def GetTarget(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGraphEdge': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraphEdge': ... + def SetId(self, _arg:int) -> None: ... + def SetSource(self, _arg:int) -> None: ... + def SetTarget(self, _arg:int) -> None: ... + +class vtkGraphInternals(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGraphInternals': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraphInternals': ... + +class vtkHexagonalPrism(vtkCell3D): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + @staticmethod + def ComputeCentroid(points:'vtkPoints', pointIds:Sequence[int], centroid:MutableSequence[float]) -> bool: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetCentroid(self, centroid:MutableSequence[float]) -> bool: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + @staticmethod + def GetEdgeArray(edgeId:int) -> Pointer: ... + def GetEdgePoints(self, edgeId:int, pts:Sequence[int]) -> None: ... + def GetEdgeToAdjacentFaces(self, edgeId:int, pts:Sequence[int]) -> None: ... + @staticmethod + def GetEdgeToAdjacentFacesArray(edgeId:int) -> Tuple[int, int]: ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + @staticmethod + def GetFaceArray(faceId:int) -> Pointer: ... + def GetFacePoints(self, faceId:int, pts:Sequence[int]) -> int: ... + def GetFaceToAdjacentFaces(self, faceId:int, faceIds:Sequence[int]) -> int: ... + @staticmethod + def GetFaceToAdjacentFacesArray(faceId:int) -> Tuple[int, int, int, int, int, int]: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetPointToIncidentEdges(self, pointId:int, edgeIds:Sequence[int]) -> int: ... + @staticmethod + def GetPointToIncidentEdgesArray(pointId:int) -> Tuple[int, int, int]: ... + def GetPointToIncidentFaces(self, pointId:int, faceIds:Sequence[int]) -> int: ... + @staticmethod + def GetPointToIncidentFacesArray(pointId:int) -> Tuple[int, int, int]: ... + def GetPointToOneRingPoints(self, pointId:int, pts:Sequence[int]) -> int: ... + @staticmethod + def GetPointToOneRingPointsArray(pointId:int) -> Tuple[int, int, int]: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsInsideOut(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHexagonalPrism': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHexagonalPrism': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkHexahedron(vtkCell3D): + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + @staticmethod + def ComputeCentroid(points:'vtkPoints', pointIds:Sequence[int], centroid:MutableSequence[float]) -> bool: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellType(self) -> int: ... + def GetCentroid(self, centroid:MutableSequence[float]) -> bool: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + @staticmethod + def GetEdgeArray(edgeId:int) -> Tuple[int, int]: ... + def GetEdgePoints(self, edgeId:int, pts:Sequence[int]) -> None: ... + def GetEdgeToAdjacentFaces(self, edgeId:int, pts:Sequence[int]) -> None: ... + @staticmethod + def GetEdgeToAdjacentFacesArray(edgeId:int) -> Tuple[int, int]: ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + @staticmethod + def GetFaceArray(faceId:int) -> Tuple[int, int, int, int]: ... + def GetFacePoints(self, faceId:int, pts:Sequence[int]) -> int: ... + def GetFaceToAdjacentFaces(self, faceId:int, faceIds:Sequence[int]) -> int: ... + @staticmethod + def GetFaceToAdjacentFacesArray(faceId:int) -> Tuple[int, int, int, int]: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetPointToIncidentEdges(self, pointId:int, edgeIds:Sequence[int]) -> int: ... + @staticmethod + def GetPointToIncidentEdgesArray(pointId:int) -> Tuple[int, int, int]: ... + def GetPointToIncidentFaces(self, pointId:int, faceIds:Sequence[int]) -> int: ... + @staticmethod + def GetPointToIncidentFacesArray(pointId:int) -> Tuple[int, int, int]: ... + def GetPointToOneRingPoints(self, pointId:int, pts:Sequence[int]) -> int: ... + @staticmethod + def GetPointToOneRingPointsArray(pointId:int) -> Tuple[int, int, int]: ... + @staticmethod + def GetTriangleCases(caseId:int) -> Pointer: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHexahedron': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHexahedron': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkUniformGridAMR(vtkCompositeDataSet): + data_object_type:'getset_descriptor' + grid_description:'getset_descriptor' + number_of_levels:'getset_descriptor' + total_number_of_blocks:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CompositeShallowCopy(self, src:'vtkCompositeDataSet') -> None: ... + def CopyStructure(self, src:'vtkCompositeDataSet') -> None: ... + def DeepCopy(self, src:'vtkDataObject') -> None: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetBounds(self) -> Pointer: ... + def GetCompositeIndex(self, level:int, index:int) -> int: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkUniformGridAMR': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkUniformGridAMR': ... + def GetDataObjectType(self) -> int: ... + @overload + def GetDataSet(self, iter:'vtkCompositeDataIterator') -> 'vtkDataObject': ... + @overload + def GetDataSet(self, level:int, idx:int) -> 'vtkUniformGrid': ... + @overload + def GetDataSet(self, flatIndex:int) -> 'vtkDataObject': ... + def GetGridDescription(self) -> int: ... + def GetLevelAndIndex(self, compositeIdx:int, level:int, idx:int) -> None: ... + def GetMax(self, max:MutableSequence[float]) -> None: ... + def GetMin(self, min:MutableSequence[float]) -> None: ... + def GetNumberOfDataSets(self, level:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLevels(self) -> int: ... + def GetTotalNumberOfBlocks(self) -> int: ... + @overload + def Initialize(self) -> None: ... + @overload + def Initialize(self, numLevels:int, blocksPerLevel:Sequence[int]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUniformGridAMR': ... + def NewIterator(self) -> 'vtkCompositeDataIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUniformGridAMR': ... + @overload + def SetDataSet(self, iter:'vtkCompositeDataIterator', dataObj:'vtkDataObject') -> None: ... + @overload + def SetDataSet(self, level:int, idx:int, grid:'vtkUniformGrid') -> None: ... + def SetGridDescription(self, gridDescription:int) -> None: ... + def ShallowCopy(self, src:'vtkDataObject') -> None: ... + +class vtkOverlappingAMR(vtkUniformGridAMR): + amr_info:'getset_descriptor' + data_object_type:'getset_descriptor' + origin:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Audit(self) -> None: ... + def FindGrid(self, q:MutableSequence[float], level:int, gridId:int) -> bool: ... + def GenerateParentChildInformation(self) -> None: ... + def GetAMRBlockSourceIndex(self, level:int, id:int) -> int: ... + def GetAMRBox(self, level:int, id:int) -> 'vtkAMRBox': ... + def GetAMRInfo(self) -> 'vtkAMRInformation': ... + @overload + def GetBounds(self, level:int, id:int, bb:MutableSequence[float]) -> None: ... + @overload + def GetBounds(self, b:MutableSequence[float]) -> None: ... + def GetChildren(self, level:int, index:int, numChildren:int) -> Pointer: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkOverlappingAMR': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkOverlappingAMR': ... + def GetDataObjectType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOrigin(self) -> Pointer: ... + @overload + def GetOrigin(self, level:int, id:int, origin:MutableSequence[float]) -> None: ... + def GetParents(self, level:int, index:int, numParents:int) -> Pointer: ... + @overload + def GetRefinementRatio(self, level:int) -> int: ... + @overload + def GetRefinementRatio(self, iter:'vtkCompositeDataIterator') -> int: ... + def GetSpacing(self, level:int, spacing:MutableSequence[float]) -> None: ... + def HasChildrenInformation(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def NUMBER_OF_BLANKED_POINTS() -> 'vtkInformationIdTypeKey': ... + def NewInstance(self) -> 'vtkOverlappingAMR': ... + def NewIterator(self) -> 'vtkCompositeDataIterator': ... + def PrintParentChildInfo(self, level:int, index:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOverlappingAMR': ... + def SetAMRBlockSourceIndex(self, level:int, id:int, sourceId:int) -> None: ... + def SetAMRBox(self, level:int, id:int, box:'vtkAMRBox') -> None: ... + def SetAMRInfo(self, info:'vtkAMRInformation') -> None: ... + def SetOrigin(self, origin:Sequence[float]) -> None: ... + def SetRefinementRatio(self, level:int, refRatio:int) -> None: ... + def SetSpacing(self, level:int, spacing:Sequence[float]) -> None: ... + +class vtkHierarchicalBoxDataSet(vtkOverlappingAMR): + data_object_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkHierarchicalBoxDataSet': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkHierarchicalBoxDataSet': ... + def GetDataObjectType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHierarchicalBoxDataSet': ... + def NewIterator(self) -> 'vtkCompositeDataIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHierarchicalBoxDataSet': ... + +class vtkHyperTree(vtkmodules.vtkCommonCore.vtkObject): + actual_memory_size:'getset_descriptor' + actual_memory_size_bytes:'getset_descriptor' + branch_factor:'getset_descriptor' + dimension:'getset_descriptor' + global_index_from_local:'getset_descriptor' + global_index_start:'getset_descriptor' + global_node_index_max:'getset_descriptor' + number_of_children:'getset_descriptor' + number_of_leaves:'getset_descriptor' + number_of_levels:'getset_descriptor' + number_of_nodes:'getset_descriptor' + number_of_vertices:'getset_descriptor' + tree_index:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildFromBreadthFirstOrderDescriptor(self, descriptor:'vtkBitArray', numberOfBits:int, startIndex:int=0) -> None: ... + @overload + def ComputeBreadthFirstOrderDescriptor(self, depthLimiter:int, inputMask:'vtkBitArray', numberOfVerticesPerDepth:'vtkTypeInt64Array', descriptor:'vtkBitArray', breadthFirstIdMap:'vtkIdList') -> None: ... + @overload + def ComputeBreadthFirstOrderDescriptor(self, inputMask:'vtkBitArray', numberOfVerticesPerDepth:'vtkTypeInt64Array', descriptor:'vtkBitArray', breadthFirstIdMap:'vtkIdList') -> None: ... + def CopyStructure(self, ht:'vtkHyperTree') -> None: ... + @staticmethod + def CreateInstance(branchFactor:int, dimension:int) -> 'vtkHyperTree': ... + def Freeze(self, mode:str) -> 'vtkHyperTree': ... + def GetActualMemorySize(self) -> int: ... + def GetActualMemorySizeBytes(self) -> int: ... + def GetBranchFactor(self) -> int: ... + def GetDimension(self) -> int: ... + def GetElderChildIndex(self, index_parent:int) -> int: ... + def GetElderChildIndexArray(self, nbElements:int) -> Pointer: ... + def GetGlobalIndexFromLocal(self, index:int) -> int: ... + def GetGlobalIndexStart(self) -> int: ... + def GetGlobalNodeIndexMax(self) -> int: ... + def GetNumberOfChildren(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLeaves(self) -> int: ... + def GetNumberOfLevels(self) -> int: ... + def GetNumberOfNodes(self) -> int: ... + def GetNumberOfVertices(self) -> int: ... + @overload + def GetScale(self, s:MutableSequence[float]) -> None: ... + @overload + def GetScale(self, d:int) -> float: ... + def GetTreeIndex(self) -> int: ... + def HasScales(self) -> bool: ... + def Initialize(self, branchFactor:int, dimension:int, numberOfChildren:int) -> None: ... + def InitializeForReader(self, numberOfLevels:int, nbVertices:int, nbVerticesOfLastLevel:int, isParent:'vtkBitArray', isMasked:'vtkBitArray', outIsMasked:'vtkBitArray') -> None: ... + def IsA(self, type:str) -> int: ... + def IsGlobalIndexImplicit(self) -> bool: ... + def IsLeaf(self, index:int) -> bool: ... + def IsTerminalNode(self, index:int) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTree': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTree': ... + def SetGlobalIndexFromLocal(self, index:int, global_:int) -> None: ... + def SetGlobalIndexStart(self, start:int) -> None: ... + def SetTreeIndex(self, treeIndex:int) -> None: ... + def SubdivideLeaf(self, index:int, level:int) -> None: ... + +class vtkHyperTreeData(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkHyperTreeData') -> None: ... + +class vtkHyperTreeGrid(vtkDataObject): + actual_memory_size:'getset_descriptor' + actual_memory_size_bytes:'getset_descriptor' + axes:'getset_descriptor' + bounds:'getset_descriptor' + branch_factor:'getset_descriptor' + cell_data:'getset_descriptor' + cell_dims:'getset_descriptor' + center:'getset_descriptor' + data_object_type:'getset_descriptor' + depth_limiter:'getset_descriptor' + dimension:'getset_descriptor' + dimensions:'getset_descriptor' + extent:'getset_descriptor' + extent_type:'getset_descriptor' + freeze_state:'getset_descriptor' + ghost_cells:'getset_descriptor' + global_node_index_max:'getset_descriptor' + has_interface:'getset_descriptor' + interface_intercepts_name:'getset_descriptor' + interface_normals_name:'getset_descriptor' + mask:'getset_descriptor' + max_number_of_trees:'getset_descriptor' + mode_squeeze:'getset_descriptor' + number_of_cells:'getset_descriptor' + number_of_children:'getset_descriptor' + number_of_leaves:'getset_descriptor' + number_of_levels:'getset_descriptor' + number_of_non_empty_trees:'getset_descriptor' + orientation:'getset_descriptor' + pure_mask:'getset_descriptor' + transposed_root_indexing:'getset_descriptor' + tree_ghost_array:'getset_descriptor' + x_coordinates:'getset_descriptor' + y_coordinates:'getset_descriptor' + z_coordinates:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllocateTreeGhostArray(self) -> 'vtkUnsignedCharArray': ... + def ComputeBounds(self) -> None: ... + def CopyCoordinates(self, output:'vtkHyperTreeGrid') -> None: ... + def CopyEmptyStructure(self, __a:'vtkDataObject') -> None: ... + def CopyStructure(self, __a:'vtkDataObject') -> None: ... + @staticmethod + def DIMENSION() -> 'vtkInformationIntegerKey': ... + def DeepCopy(self, __a:'vtkDataObject') -> None: ... + def FindDichotomicX(self, value:float, tol:float=0.0) -> int: ... + def FindDichotomicY(self, value:float, tol:float=0.0) -> int: ... + def FindDichotomicZ(self, value:float, tol:float=0.0) -> int: ... + def FindNonOrientedGeometryCursor(self, x:MutableSequence[float]) -> 'vtkHyperTreeGridNonOrientedGeometryCursor': ... + def Get1DAxis(self, axis:int) -> None: ... + def Get2DAxes(self, axis1:int, axis2:int) -> None: ... + def GetActualMemorySize(self) -> int: ... + def GetActualMemorySizeBytes(self) -> int: ... + def GetAttributesAsFieldData(self, type:int) -> 'vtkFieldData': ... + def GetAxes(self) -> Pointer: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetBranchFactor(self) -> int: ... + def GetCellData(self) -> 'vtkCellData': ... + @overload + def GetCellDims(self) -> Tuple[int, int, int]: ... + @overload + def GetCellDims(self, cellDims:MutableSequence[int]) -> None: ... + @overload + def GetCenter(self) -> Tuple[float, float, float]: ... + @overload + def GetCenter(self, center:MutableSequence[float]) -> None: ... + def GetChildMask(self, __a:int) -> int: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkHyperTreeGrid': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkHyperTreeGrid': ... + def GetDataObjectType(self) -> int: ... + def GetDepthLimiter(self) -> int: ... + def GetDimension(self) -> int: ... + @overload + def GetDimensions(self) -> Tuple[int, int, int]: ... + @overload + def GetDimensions(self, dim:MutableSequence[int]) -> None: ... + def GetExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetExtentType(self) -> int: ... + def GetFreezeState(self) -> bool: ... + def GetGhostCells(self) -> 'vtkUnsignedCharArray': ... + def GetGlobalNodeIndexMax(self) -> int: ... + def GetGridBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetHasInterface(self) -> bool: ... + def GetIndexFromLevelZeroCoordinates(self, __a:int, __b:int, __c:int, __d:int) -> None: ... + def GetInterfaceInterceptsName(self) -> str: ... + def GetInterfaceNormalsName(self) -> str: ... + def GetLevelZeroCoordinatesFromIndex(self, __a:int, __b:int, __c:int, __d:int) -> None: ... + def GetLevelZeroOriginAndSizeFromIndex(self, __a:int, __b:MutableSequence[float], __c:MutableSequence[float]) -> None: ... + def GetLevelZeroOriginFromIndex(self, __a:int, __b:MutableSequence[float]) -> None: ... + def GetMask(self) -> 'vtkBitArray': ... + def GetMaxNumberOfTrees(self) -> int: ... + def GetModeSqueeze(self) -> str: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfChildren(self) -> int: ... + def GetNumberOfElements(self, type:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLeaves(self) -> int: ... + @overload + def GetNumberOfLevels(self, __a:int) -> int: ... + @overload + def GetNumberOfLevels(self) -> int: ... + def GetNumberOfNonEmptyTrees(self) -> int: ... + def GetOrientation(self) -> int: ... + def GetPureMask(self) -> 'vtkBitArray': ... + def GetShiftedLevelZeroIndex(self, __a:int, __b:int, __c:int, __d:int) -> int: ... + def GetTransposedRootIndexing(self) -> bool: ... + def GetTree(self, __a:int, create:bool=False) -> 'vtkHyperTree': ... + def GetTreeGhostArray(self) -> 'vtkUnsignedCharArray': ... + def GetXCoordinates(self) -> 'vtkDataArray': ... + def GetYCoordinates(self) -> 'vtkDataArray': ... + def GetZCoordinates(self) -> 'vtkDataArray': ... + def HasAnyGhostCells(self) -> bool: ... + def HasInterfaceOff(self) -> None: ... + def HasInterfaceOn(self) -> None: ... + def HasMask(self) -> bool: ... + def Initialize(self) -> None: ... + def InitializeLocalIndexNode(self) -> None: ... + def InitializeNonOrientedCursor(self, cursor:'vtkHyperTreeGridNonOrientedCursor', index:int, create:bool=False) -> None: ... + def InitializeNonOrientedGeometryCursor(self, cursor:'vtkHyperTreeGridNonOrientedGeometryCursor', index:int, create:bool=False) -> None: ... + def InitializeNonOrientedMooreSuperCursor(self, cursor:'vtkHyperTreeGridNonOrientedMooreSuperCursor', index:int, create:bool=False) -> None: ... + def InitializeNonOrientedMooreSuperCursorLight(self, cursor:'vtkHyperTreeGridNonOrientedMooreSuperCursorLight', index:int, create:bool=False) -> None: ... + def InitializeNonOrientedUnlimitedGeometryCursor(self, cursor:'vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor', index:int, create:bool=False) -> None: ... + def InitializeNonOrientedUnlimitedMooreSuperCursor(self, cursor:'vtkHyperTreeGridNonOrientedUnlimitedMooreSuperCursor', index:int, create:bool=False) -> None: ... + def InitializeNonOrientedVonNeumannSuperCursor(self, cursor:'vtkHyperTreeGridNonOrientedVonNeumannSuperCursor', index:int, create:bool=False) -> None: ... + def InitializeNonOrientedVonNeumannSuperCursorLight(self, cursor:'vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight', index:int, create:bool=False) -> None: ... + def InitializeOrientedCursor(self, cursor:'vtkHyperTreeGridOrientedCursor', index:int, create:bool=False) -> None: ... + def InitializeOrientedGeometryCursor(self, cursor:'vtkHyperTreeGridOrientedGeometryCursor', index:int, create:bool=False) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def LEVELS() -> 'vtkInformationIntegerKey': ... + def NewInstance(self) -> 'vtkHyperTreeGrid': ... + def NewNonOrientedCursor(self, index:int, create:bool=False) -> 'vtkHyperTreeGridNonOrientedCursor': ... + def NewNonOrientedGeometryCursor(self, index:int, create:bool=False) -> 'vtkHyperTreeGridNonOrientedGeometryCursor': ... + def NewNonOrientedMooreSuperCursor(self, index:int, create:bool=False) -> 'vtkHyperTreeGridNonOrientedMooreSuperCursor': ... + def NewNonOrientedMooreSuperCursorLight(self, index:int, create:bool=False) -> 'vtkHyperTreeGridNonOrientedMooreSuperCursorLight': ... + def NewNonOrientedUnlimitedGeometryCursor(self, index:int, create:bool=False) -> 'vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor': ... + def NewNonOrientedUnlimitedMooreSuperCursor(self, index:int, create:bool=False) -> 'vtkHyperTreeGridNonOrientedUnlimitedMooreSuperCursor': ... + def NewNonOrientedVonNeumannSuperCursor(self, index:int, create:bool=False) -> 'vtkHyperTreeGridNonOrientedVonNeumannSuperCursor': ... + def NewNonOrientedVonNeumannSuperCursorLight(self, index:int, create:bool=False) -> 'vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight': ... + def NewOrientedCursor(self, index:int, create:bool=False) -> 'vtkHyperTreeGridOrientedCursor': ... + def NewOrientedGeometryCursor(self, index:int, create:bool=False) -> 'vtkHyperTreeGridOrientedGeometryCursor': ... + @staticmethod + def ORIENTATION() -> 'vtkInformationIntegerKey': ... + def RemoveTree(self, index:int) -> int: ... + @staticmethod + def SIZES() -> 'vtkInformationDoubleVectorKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGrid': ... + def SetBranchFactor(self, __a:int) -> None: ... + def SetDepthLimiter(self, _arg:int) -> None: ... + @overload + def SetDimensions(self, dims:Sequence[int]) -> None: ... + @overload + def SetDimensions(self, i:int, j:int, k:int) -> None: ... + @overload + def SetExtent(self, extent:Sequence[int]) -> None: ... + @overload + def SetExtent(self, x1:int, x2:int, y1:int, y2:int, z1:int, z2:int) -> None: ... + def SetFixedCoordinates(self, axis:int, value:float) -> None: ... + def SetHasInterface(self, _arg:bool) -> None: ... + def SetIndexingModeToIJK(self) -> None: ... + def SetIndexingModeToKJI(self) -> None: ... + def SetInterfaceInterceptsName(self, _arg:str) -> None: ... + def SetInterfaceNormalsName(self, _arg:str) -> None: ... + def SetMask(self, __a:'vtkBitArray') -> None: ... + def SetModeSqueeze(self, _arg:str) -> None: ... + def SetTransposedRootIndexing(self, _arg:bool) -> None: ... + def SetTree(self, __a:int, __b:'vtkHyperTree') -> None: ... + def SetXCoordinates(self, __a:'vtkDataArray') -> None: ... + def SetYCoordinates(self, __a:'vtkDataArray') -> None: ... + def SetZCoordinates(self, __a:'vtkDataArray') -> None: ... + def ShallowCopy(self, __a:'vtkDataObject') -> None: ... + def Squeeze(self) -> None: ... + def SupportsGhostArray(self, type:int) -> bool: ... + +class vtkHyperTreeGridLocator(vtkmodules.vtkCommonCore.vtkObject): + htg:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FindCell(self, point:Sequence[float], tol:float, cell:'vtkGenericCell', subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + def GetHTG(self) -> 'vtkHyperTreeGrid': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTolerance(self) -> float: ... + def Initialize(self) -> None: ... + @overload + def IntersectWithLine(self, p0:Sequence[float], p1:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int, cellId:int, cell:'vtkGenericCell') -> int: ... + @overload + def IntersectWithLine(self, p0:Sequence[float], p1:Sequence[float], tol:float, points:'vtkPoints', cellIds:'vtkIdList', cell:'vtkGenericCell') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridLocator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridLocator': ... + def Search(self, point:Sequence[float]) -> int: ... + def SetHTG(self, __a:'vtkHyperTreeGrid') -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def Update(self) -> None: ... + +class vtkHyperTreeGridGeometricLocator(vtkHyperTreeGridLocator): + htg:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FindCell(self, point:Sequence[float], tol:float, cell:'vtkGenericCell', subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def IntersectWithLine(self, p0:Sequence[float], p1:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int, cellId:int, cell:'vtkGenericCell') -> int: ... + @overload + def IntersectWithLine(self, p0:Sequence[float], p1:Sequence[float], tol:float, points:'vtkPoints', cellIds:'vtkIdList', cell:'vtkGenericCell') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridGeometricLocator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridGeometricLocator': ... + @overload + def Search(self, point:Sequence[float]) -> int: ... + @overload + def Search(self, point:Sequence[float], cursor:'vtkHyperTreeGridNonOrientedGeometryCursor') -> int: ... + def SetHTG(self, candHTG:'vtkHyperTreeGrid') -> None: ... + +class vtkHyperTreeGridNonOrientedCursor(vtkmodules.vtkCommonCore.vtkObject): + dimension:'getset_descriptor' + global_index_from_local:'getset_descriptor' + global_index_start:'getset_descriptor' + global_node_index:'getset_descriptor' + grid:'getset_descriptor' + level:'getset_descriptor' + mask:'getset_descriptor' + number_of_children:'getset_descriptor' + tree:'getset_descriptor' + vertex_id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Clone(self) -> 'vtkHyperTreeGridNonOrientedCursor': ... + def CloneFromCurrentEntry(self) -> 'vtkHyperTreeGridNonOrientedCursor': ... + def GetDimension(self) -> int: ... + def GetGlobalNodeIndex(self) -> int: ... + def GetGrid(self) -> 'vtkHyperTreeGrid': ... + def GetLevel(self) -> int: ... + def GetNumberOfChildren(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTree(self) -> 'vtkHyperTree': ... + def GetVertexId(self) -> int: ... + def HasTree(self) -> bool: ... + @overload + def Initialize(self, grid:'vtkHyperTreeGrid', treeIndex:int, create:bool=False) -> None: ... + @overload + def Initialize(self, grid:'vtkHyperTreeGrid', tree:'vtkHyperTree', level:int, index:int) -> None: ... + def IsA(self, type:str) -> int: ... + def IsLeaf(self) -> bool: ... + def IsMasked(self) -> bool: ... + def IsRoot(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridNonOrientedCursor': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridNonOrientedCursor': ... + def SetGlobalIndexFromLocal(self, index:int) -> None: ... + def SetGlobalIndexStart(self, index:int) -> None: ... + def SetMask(self, state:bool) -> None: ... + def SubdivideLeaf(self) -> None: ... + def ToChild(self, ichild:int) -> None: ... + def ToParent(self) -> None: ... + def ToRoot(self) -> None: ... + +class vtkHyperTreeGridNonOrientedGeometryCursor(vtkmodules.vtkCommonCore.vtkObject): + dimension:'getset_descriptor' + global_index_from_local:'getset_descriptor' + global_index_start:'getset_descriptor' + global_node_index:'getset_descriptor' + level:'getset_descriptor' + mask:'getset_descriptor' + number_of_children:'getset_descriptor' + origin:'getset_descriptor' + size:'getset_descriptor' + tree:'getset_descriptor' + vertex_id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Clone(self) -> 'vtkHyperTreeGridNonOrientedGeometryCursor': ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetDimension(self) -> int: ... + def GetGlobalNodeIndex(self) -> int: ... + def GetHyperTreeGridOrientedGeometryCursor(self, grid:'vtkHyperTreeGrid') -> 'vtkHyperTreeGridOrientedGeometryCursor': ... + def GetLevel(self) -> int: ... + def GetNumberOfChildren(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Pointer: ... + def GetPoint(self, point:MutableSequence[float]) -> None: ... + def GetSize(self) -> Pointer: ... + def GetTree(self) -> 'vtkHyperTree': ... + def GetVertexId(self) -> int: ... + def HasTree(self) -> bool: ... + @overload + def Initialize(self, grid:'vtkHyperTreeGrid', treeIndex:int, create:bool=False) -> None: ... + @overload + def Initialize(self, grid:'vtkHyperTreeGrid', tree:'vtkHyperTree', level:int, index:int, origin:MutableSequence[float]) -> None: ... + @overload + def Initialize(self, cursor:'vtkHyperTreeGridNonOrientedGeometryCursor') -> None: ... + def IsA(self, type:str) -> int: ... + def IsLeaf(self) -> bool: ... + def IsMasked(self) -> bool: ... + def IsRoot(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridNonOrientedGeometryCursor': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridNonOrientedGeometryCursor': ... + def SetGlobalIndexFromLocal(self, index:int) -> None: ... + def SetGlobalIndexStart(self, index:int) -> None: ... + def SetMask(self, state:bool) -> None: ... + def SubdivideLeaf(self) -> None: ... + def ToChild(self, ichild:int) -> None: ... + def ToParent(self) -> None: ... + def ToRoot(self) -> None: ... + +class vtkHyperTreeGridNonOrientedSuperCursor(vtkmodules.vtkCommonCore.vtkObject): + dimension:'getset_descriptor' + global_index_from_local:'getset_descriptor' + global_index_start:'getset_descriptor' + global_node_index:'getset_descriptor' + grid:'getset_descriptor' + indice_central_cursor:'getset_descriptor' + level:'getset_descriptor' + mask:'getset_descriptor' + number_of_children:'getset_descriptor' + number_of_cursors:'getset_descriptor' + origin:'getset_descriptor' + size:'getset_descriptor' + tree:'getset_descriptor' + vertex_id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Clone(self) -> 'vtkHyperTreeGridNonOrientedSuperCursor': ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetBounds(self, icursor:int, bounds:MutableSequence[float]) -> None: ... + def GetDimension(self) -> int: ... + @overload + def GetGlobalNodeIndex(self) -> int: ... + @overload + def GetGlobalNodeIndex(self, icursor:int) -> int: ... + def GetGrid(self) -> 'vtkHyperTreeGrid': ... + def GetIndiceCentralCursor(self) -> int: ... + def GetInformation(self, icursor:int, level:int, leaf:bool, id:int) -> 'vtkHyperTree': ... + @overload + def GetLevel(self) -> int: ... + @overload + def GetLevel(self, icursor:int) -> int: ... + def GetNonOrientedGeometryCursor(self, icursor:int) -> 'vtkHyperTreeGridNonOrientedGeometryCursor': ... + def GetNumberOfChildren(self) -> int: ... + def GetNumberOfCursors(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientedGeometryCursor(self, icursor:int) -> 'vtkHyperTreeGridOrientedGeometryCursor': ... + @overload + def GetOrigin(self) -> Pointer: ... + @overload + def GetOrigin(self, icursor:int) -> Pointer: ... + @overload + def GetPoint(self, point:MutableSequence[float]) -> None: ... + @overload + def GetPoint(self, icursor:int, point:MutableSequence[float]) -> None: ... + def GetSize(self) -> Pointer: ... + @overload + def GetTree(self) -> 'vtkHyperTree': ... + @overload + def GetTree(self, icursor:int) -> 'vtkHyperTree': ... + @overload + def GetVertexId(self) -> int: ... + @overload + def GetVertexId(self, icursor:int) -> int: ... + @overload + def HasTree(self) -> bool: ... + @overload + def HasTree(self, icursor:int) -> bool: ... + def Initialize(self, grid:'vtkHyperTreeGrid', treeIndex:int, create:bool=False) -> None: ... + def IsA(self, type:str) -> int: ... + @overload + def IsLeaf(self) -> bool: ... + @overload + def IsLeaf(self, icursor:int) -> bool: ... + @overload + def IsMasked(self) -> bool: ... + @overload + def IsMasked(self, icursor:int) -> bool: ... + def IsRoot(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridNonOrientedSuperCursor': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridNonOrientedSuperCursor': ... + def SetGlobalIndexFromLocal(self, index:int) -> None: ... + def SetGlobalIndexStart(self, index:int) -> None: ... + @overload + def SetMask(self, state:bool) -> None: ... + @overload + def SetMask(self, icursor:int, state:bool) -> None: ... + def SubdivideLeaf(self) -> None: ... + def ToChild(self, ichild:int) -> None: ... + def ToParent(self) -> None: ... + def ToRoot(self) -> None: ... + +class vtkHyperTreeGridNonOrientedMooreSuperCursor(vtkHyperTreeGridNonOrientedSuperCursor): + def __init__(self, **properties:Any) -> None: ... + def GetCornerCursors(self, __a:int, __b:int, __c:'vtkIdList') -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, grid:'vtkHyperTreeGrid', treeIndex:int, create:bool=False) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridNonOrientedMooreSuperCursor': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridNonOrientedMooreSuperCursor': ... + +class vtkHyperTreeGridNonOrientedSuperCursorLight(vtkmodules.vtkCommonCore.vtkObject): + dimension:'getset_descriptor' + global_index_from_local:'getset_descriptor' + global_index_start:'getset_descriptor' + global_node_index:'getset_descriptor' + grid:'getset_descriptor' + level:'getset_descriptor' + mask:'getset_descriptor' + number_of_children:'getset_descriptor' + number_of_cursors:'getset_descriptor' + origin:'getset_descriptor' + size:'getset_descriptor' + tree:'getset_descriptor' + vertex_id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Clone(self) -> 'vtkHyperTreeGridNonOrientedSuperCursorLight': ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetDimension(self) -> int: ... + @overload + def GetGlobalNodeIndex(self) -> int: ... + @overload + def GetGlobalNodeIndex(self, icursor:int) -> int: ... + def GetGrid(self) -> 'vtkHyperTreeGrid': ... + def GetInformation(self, icursor:int, level:int, leaf:bool, id:int) -> 'vtkHyperTree': ... + @overload + def GetLevel(self) -> int: ... + @overload + def GetLevel(self, icursor:int) -> int: ... + def GetNumberOfChildren(self) -> int: ... + def GetNumberOfCursors(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Pointer: ... + def GetPoint(self, point:MutableSequence[float]) -> None: ... + def GetSize(self) -> Pointer: ... + @overload + def GetTree(self) -> 'vtkHyperTree': ... + @overload + def GetTree(self, icursor:int) -> 'vtkHyperTree': ... + @overload + def GetVertexId(self) -> int: ... + @overload + def GetVertexId(self, icursor:int) -> int: ... + @overload + def HasTree(self) -> bool: ... + @overload + def HasTree(self, icursor:int) -> bool: ... + def Initialize(self, grid:'vtkHyperTreeGrid', treeIndex:int, create:bool=False) -> None: ... + def IsA(self, type:str) -> int: ... + @overload + def IsLeaf(self) -> bool: ... + @overload + def IsLeaf(self, icursor:int) -> bool: ... + @overload + def IsMasked(self) -> bool: ... + @overload + def IsMasked(self, icursor:int) -> bool: ... + def IsRoot(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridNonOrientedSuperCursorLight': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridNonOrientedSuperCursorLight': ... + def SetGlobalIndexFromLocal(self, index:int) -> None: ... + def SetGlobalIndexStart(self, index:int) -> None: ... + @overload + def SetMask(self, state:bool) -> None: ... + @overload + def SetMask(self, icursor:int, state:bool) -> None: ... + def SubdivideLeaf(self) -> None: ... + def ToChild(self, __a:int) -> None: ... + def ToParent(self) -> None: ... + def ToRoot(self) -> None: ... + +class vtkHyperTreeGridNonOrientedMooreSuperCursorLight(vtkHyperTreeGridNonOrientedSuperCursorLight): + def __init__(self, **properties:Any) -> None: ... + def GetCornerCursors(self, __a:int, __b:int, __c:'vtkIdList') -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, grid:'vtkHyperTreeGrid', treeIndex:int, create:bool=False) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridNonOrientedMooreSuperCursorLight': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridNonOrientedMooreSuperCursorLight': ... + +class vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor(vtkmodules.vtkCommonCore.vtkObject): + dimension:'getset_descriptor' + global_index_from_local:'getset_descriptor' + global_index_start:'getset_descriptor' + global_node_index:'getset_descriptor' + last_real_level:'getset_descriptor' + level:'getset_descriptor' + mask:'getset_descriptor' + number_of_children:'getset_descriptor' + origin:'getset_descriptor' + size:'getset_descriptor' + tree:'getset_descriptor' + vertex_id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Clone(self) -> 'vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor': ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetDimension(self) -> int: ... + def GetGlobalNodeIndex(self) -> int: ... + def GetHyperTreeGridNonOrientedGeometryCursor(self, grid:'vtkHyperTreeGrid') -> 'vtkHyperTreeGridNonOrientedGeometryCursor': ... + def GetHyperTreeGridOrientedGeometryCursor(self, grid:'vtkHyperTreeGrid') -> 'vtkHyperTreeGridOrientedGeometryCursor': ... + def GetLastRealLevel(self) -> int: ... + def GetLevel(self) -> int: ... + def GetNumberOfChildren(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Pointer: ... + def GetPoint(self, point:MutableSequence[float]) -> None: ... + def GetSize(self) -> Pointer: ... + def GetTree(self) -> 'vtkHyperTree': ... + def GetVertexId(self) -> int: ... + def HasTree(self) -> bool: ... + @overload + def Initialize(self, grid:'vtkHyperTreeGrid', treeIndex:int, create:bool=False) -> None: ... + @overload + def Initialize(self, grid:'vtkHyperTreeGrid', tree:'vtkHyperTree', level:int, index:int, origin:MutableSequence[float]) -> None: ... + @overload + def Initialize(self, cursor:'vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor') -> None: ... + def IsA(self, type:str) -> int: ... + def IsLeaf(self) -> bool: ... + def IsMasked(self) -> bool: ... + def IsRealLeaf(self) -> bool: ... + def IsRoot(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def IsVirtualLeaf(self) -> bool: ... + def NewInstance(self) -> 'vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor': ... + def SetGlobalIndexFromLocal(self, index:int) -> None: ... + def SetGlobalIndexStart(self, index:int) -> None: ... + def SetMask(self, state:bool) -> None: ... + def ToChild(self, ichild:int) -> None: ... + def ToParent(self) -> None: ... + def ToRoot(self) -> None: ... + +class vtkHyperTreeGridNonOrientedUnlimitedSuperCursor(vtkmodules.vtkCommonCore.vtkObject): + dimension:'getset_descriptor' + extensive_property_ratio:'getset_descriptor' + global_index_from_local:'getset_descriptor' + global_index_start:'getset_descriptor' + global_node_index:'getset_descriptor' + grid:'getset_descriptor' + last_real_level:'getset_descriptor' + level:'getset_descriptor' + mask:'getset_descriptor' + number_of_children:'getset_descriptor' + number_of_cursors:'getset_descriptor' + origin:'getset_descriptor' + size:'getset_descriptor' + tree:'getset_descriptor' + vertex_id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Clone(self) -> 'vtkHyperTreeGridNonOrientedUnlimitedSuperCursor': ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetBounds(self, icursor:int, bounds:MutableSequence[float]) -> None: ... + def GetDimension(self) -> int: ... + @overload + def GetExtensivePropertyRatio(self) -> float: ... + @overload + def GetExtensivePropertyRatio(self, index:int) -> float: ... + @overload + def GetGlobalNodeIndex(self) -> int: ... + @overload + def GetGlobalNodeIndex(self, icursor:int) -> int: ... + def GetGrid(self) -> 'vtkHyperTreeGrid': ... + def GetInformation(self, icursor:int, level:int, leaf:bool, id:int) -> 'vtkHyperTree': ... + @overload + def GetLastRealLevel(self) -> int: ... + @overload + def GetLastRealLevel(self, icursor:int) -> int: ... + @overload + def GetLevel(self) -> int: ... + @overload + def GetLevel(self, icursor:int) -> int: ... + def GetNonOrientedGeometryCursor(self, icursor:int) -> 'vtkHyperTreeGridNonOrientedGeometryCursor': ... + def GetNumberOfChildren(self) -> int: ... + def GetNumberOfCursors(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientedGeometryCursor(self, icursor:int) -> 'vtkHyperTreeGridOrientedGeometryCursor': ... + def GetOrigin(self) -> Pointer: ... + @overload + def GetPoint(self, point:MutableSequence[float]) -> None: ... + @overload + def GetPoint(self, icursor:int, point:MutableSequence[float]) -> None: ... + def GetSize(self) -> Pointer: ... + @overload + def GetTree(self) -> 'vtkHyperTree': ... + @overload + def GetTree(self, icursor:int) -> 'vtkHyperTree': ... + @overload + def GetVertexId(self) -> int: ... + @overload + def GetVertexId(self, icursor:int) -> int: ... + @overload + def HasTree(self) -> bool: ... + @overload + def HasTree(self, icursor:int) -> bool: ... + def Initialize(self, grid:'vtkHyperTreeGrid', treeIndex:int, create:bool=False) -> None: ... + def IsA(self, type:str) -> int: ... + @overload + def IsLeaf(self) -> bool: ... + @overload + def IsLeaf(self, icursor:int) -> bool: ... + @overload + def IsMasked(self) -> bool: ... + @overload + def IsMasked(self, icursor:int) -> bool: ... + @overload + def IsRealLeaf(self) -> bool: ... + @overload + def IsRealLeaf(self, icursor:int) -> bool: ... + def IsRoot(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def IsVirtualLeaf(self) -> bool: ... + @overload + def IsVirtualLeaf(self, icursor:int) -> bool: ... + def NewInstance(self) -> 'vtkHyperTreeGridNonOrientedUnlimitedSuperCursor': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridNonOrientedUnlimitedSuperCursor': ... + def SetGlobalIndexFromLocal(self, index:int) -> None: ... + def SetGlobalIndexStart(self, index:int) -> None: ... + @overload + def SetMask(self, state:bool) -> None: ... + @overload + def SetMask(self, icursor:int, state:bool) -> None: ... + def ToChild(self, ichild:int) -> None: ... + def ToParent(self) -> None: ... + def ToRoot(self) -> None: ... + +class vtkHyperTreeGridNonOrientedUnlimitedMooreSuperCursor(vtkHyperTreeGridNonOrientedUnlimitedSuperCursor): + def __init__(self, **properties:Any) -> None: ... + def GetCornerCursors(self, __a:int, __b:int, __c:'vtkIdList') -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, grid:'vtkHyperTreeGrid', treeIndex:int, create:bool=False) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridNonOrientedUnlimitedMooreSuperCursor': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridNonOrientedUnlimitedMooreSuperCursor': ... + +class vtkHyperTreeGridNonOrientedVonNeumannSuperCursor(vtkHyperTreeGridNonOrientedSuperCursor): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, grid:'vtkHyperTreeGrid', treeIndex:int, create:bool=False) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridNonOrientedVonNeumannSuperCursor': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridNonOrientedVonNeumannSuperCursor': ... + +class vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight(vtkHyperTreeGridNonOrientedSuperCursorLight): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, grid:'vtkHyperTreeGrid', treeIndex:int, create:bool=False) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight': ... + +class vtkHyperTreeGridOrientedCursor(vtkmodules.vtkCommonCore.vtkObject): + dimension:'getset_descriptor' + global_index_from_local:'getset_descriptor' + global_index_start:'getset_descriptor' + global_node_index:'getset_descriptor' + grid:'getset_descriptor' + level:'getset_descriptor' + mask:'getset_descriptor' + number_of_children:'getset_descriptor' + tree:'getset_descriptor' + vertex_id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Clone(self) -> 'vtkHyperTreeGridOrientedCursor': ... + def GetDimension(self) -> int: ... + def GetGlobalNodeIndex(self) -> int: ... + def GetGrid(self) -> 'vtkHyperTreeGrid': ... + def GetLevel(self) -> int: ... + def GetNumberOfChildren(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTree(self) -> 'vtkHyperTree': ... + def GetVertexId(self) -> int: ... + def HasTree(self) -> bool: ... + @overload + def Initialize(self, grid:'vtkHyperTreeGrid', treeIndex:int, create:bool=False) -> None: ... + @overload + def Initialize(self, grid:'vtkHyperTreeGrid', tree:'vtkHyperTree', level:int, index:int) -> None: ... + def IsA(self, type:str) -> int: ... + def IsLeaf(self) -> bool: ... + def IsMasked(self) -> bool: ... + def IsRoot(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridOrientedCursor': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridOrientedCursor': ... + def SetGlobalIndexFromLocal(self, index:int) -> None: ... + def SetGlobalIndexStart(self, index:int) -> None: ... + def SetMask(self, state:bool) -> None: ... + def SubdivideLeaf(self) -> None: ... + def ToChild(self, ichild:int) -> None: ... + +class vtkHyperTreeGridOrientedGeometryCursor(vtkmodules.vtkCommonCore.vtkObject): + dimension:'getset_descriptor' + global_index_from_local:'getset_descriptor' + global_index_start:'getset_descriptor' + global_node_index:'getset_descriptor' + level:'getset_descriptor' + mask:'getset_descriptor' + number_of_children:'getset_descriptor' + origin:'getset_descriptor' + size:'getset_descriptor' + tree:'getset_descriptor' + vertex_id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Clone(self) -> 'vtkHyperTreeGridOrientedGeometryCursor': ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetDimension(self) -> int: ... + def GetGlobalNodeIndex(self) -> int: ... + def GetLevel(self) -> int: ... + def GetNumberOfChildren(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Pointer: ... + def GetPoint(self, point:MutableSequence[float]) -> None: ... + def GetSize(self) -> Pointer: ... + def GetTree(self) -> 'vtkHyperTree': ... + def GetVertexId(self) -> int: ... + def HasTree(self) -> bool: ... + @overload + def Initialize(self, grid:'vtkHyperTreeGrid', treeIndex:int, create:bool=False) -> None: ... + @overload + def Initialize(self, grid:'vtkHyperTreeGrid', tree:'vtkHyperTree', level:int, index:int, origin:MutableSequence[float]) -> None: ... + @overload + def Initialize(self, cursor:'vtkHyperTreeGridOrientedGeometryCursor') -> None: ... + def IsA(self, type:str) -> int: ... + def IsLeaf(self) -> bool: ... + def IsMasked(self) -> bool: ... + def IsRoot(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridOrientedGeometryCursor': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridOrientedGeometryCursor': ... + def SetGlobalIndexFromLocal(self, index:int) -> None: ... + def SetGlobalIndexStart(self, index:int) -> None: ... + def SetMask(self, state:bool) -> None: ... + def SubdivideLeaf(self) -> None: ... + def ToChild(self, ichild:int) -> None: ... + +class vtkHyperTreeGridScales(object): + branch_factor:'getset_descriptor' + current_fail_level:'getset_descriptor' + def __init__(self, branchfactor:float, scale:Sequence[float] ) -> None: ... + def GetBranchFactor(self) -> float: ... + def GetCurrentFailLevel(self) -> int: ... + @overload + def GetScale(self, level:int) -> Pointer: ... + @overload + def GetScale(self, level:int, scale:MutableSequence[float]) -> None: ... + def GetScaleX(self, level:int) -> float: ... + def GetScaleY(self, level:int) -> float: ... + def GetScaleZ(self, level:int) -> float: ... + +class vtkImageData(vtkDataSet): + actual_memory_size:'getset_descriptor' + cell_types_array:'getset_descriptor' + cells:'getset_descriptor' + data_description:'getset_descriptor' + data_dimension:'getset_descriptor' + data_object_type:'getset_descriptor' + dimensions:'getset_descriptor' + direction_matrix:'getset_descriptor' + extent:'getset_descriptor' + extent_type:'getset_descriptor' + increments:'getset_descriptor' + index_to_physical_matrix:'getset_descriptor' + max_cell_size:'getset_descriptor' + max_spatial_dimension:'getset_descriptor' + min_spatial_dimension:'getset_descriptor' + number_of_cells:'getset_descriptor' + number_of_points:'getset_descriptor' + number_of_scalar_components:'getset_descriptor' + origin:'getset_descriptor' + physical_to_index_matrix:'getset_descriptor' + points:'getset_descriptor' + scalar_pointer:'getset_descriptor' + scalar_size:'getset_descriptor' + scalar_type:'getset_descriptor' + scalar_type_max:'getset_descriptor' + scalar_type_min:'getset_descriptor' + spacing:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AllocateScalars(self, dataType:int, numComponents:int) -> None: ... + @overload + def AllocateScalars(self, pipeline_info:'vtkInformation') -> None: ... + def ApplyIndexToPhysicalMatrix(self, source:'vtkMatrix4x4') -> None: ... + def ApplyPhysicalToIndexMatrix(self, source:'vtkMatrix4x4') -> None: ... + @overload + def BlankCell(self, ptId:int) -> None: ... + @overload + def BlankCell(self, i:int, j:int, k:int) -> None: ... + @overload + def BlankPoint(self, ptId:int) -> None: ... + @overload + def BlankPoint(self, i:int, j:int, k:int) -> None: ... + def ComputeBounds(self) -> None: ... + def ComputeCellId(self, ijk:MutableSequence[int]) -> int: ... + @staticmethod + def ComputeIndexToPhysicalMatrix(origin:Sequence[float], spacing:Sequence[float], direction:Sequence[float], result:MutableSequence[float]) -> None: ... + def ComputeInternalExtent(self, intExt:MutableSequence[int], tgtExt:MutableSequence[int], bnds:MutableSequence[int]) -> None: ... + @staticmethod + def ComputePhysicalToIndexMatrix(origin:Sequence[float], spacing:Sequence[float], direction:Sequence[float], result:MutableSequence[float]) -> None: ... + def ComputePointId(self, ijk:MutableSequence[int]) -> int: ... + @overload + def ComputeStructuredCoordinates(self, x:Sequence[float], ijk:MutableSequence[int], pcoords:MutableSequence[float]) -> int: ... + @overload + def ComputeStructuredCoordinates(self, x:Sequence[float], ijk:MutableSequence[int], pcoords:MutableSequence[float], tol2:float) -> int: ... + @overload + def CopyAndCastFrom(self, inData:'vtkImageData', extent:MutableSequence[int]) -> None: ... + @overload + def CopyAndCastFrom(self, inData:'vtkImageData', x0:int, x1:int, y0:int, y1:int, z0:int, z1:int) -> None: ... + def CopyInformationFromPipeline(self, information:'vtkInformation') -> None: ... + def CopyInformationToPipeline(self, information:'vtkInformation') -> None: ... + def CopyStructure(self, ds:'vtkDataSet') -> None: ... + def Crop(self, updateExtent:Sequence[int]) -> None: ... + def DeepCopy(self, src:'vtkDataObject') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkImageData': ... + def FindAndGetCell(self, x:MutableSequence[float], cell:'vtkCell', cellId:int, tol2:float, subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> 'vtkCell': ... + @overload + def FindCell(self, x:MutableSequence[float], cell:'vtkCell', cellId:int, tol2:float, subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + @overload + def FindCell(self, x:MutableSequence[float], cell:'vtkCell', gencell:'vtkGenericCell', cellId:int, tol2:float, subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + @overload + def FindPoint(self, x:MutableSequence[float]) -> int: ... + @overload + def FindPoint(self, x:float, y:float, z:float) -> int: ... + def GetActualMemorySize(self) -> int: ... + def GetArrayIncrements(self, array:'vtkDataArray', increments:MutableSequence[int]) -> None: ... + def GetArrayPointer(self, array:'vtkDataArray', coordinates:MutableSequence[int]) -> Pointer: ... + def GetArrayPointerForExtent(self, array:'vtkDataArray', extent:MutableSequence[int]) -> Pointer: ... + def GetAxisUpdateExtent(self, axis:int, min:int, max:int, updateExtent:Sequence[int]) -> None: ... + @overload + def GetCell(self, cellId:int) -> 'vtkCell': ... + @overload + def GetCell(self, i:int, j:int, k:int) -> 'vtkCell': ... + @overload + def GetCell(self, cellId:int, cell:'vtkGenericCell') -> None: ... + def GetCellBounds(self, cellId:int, bounds:MutableSequence[float]) -> None: ... + def GetCellDims(self, cellDims:MutableSequence[int]) -> None: ... + @overload + def GetCellNeighbors(self, cellId:int, ptIds:'vtkIdList', cellIds:'vtkIdList') -> None: ... + @overload + def GetCellNeighbors(self, cellId:int, ptIds:'vtkIdList', cellIds:'vtkIdList', seedLoc:MutableSequence[int]) -> None: ... + @overload + def GetCellPoints(self, cellId:int, npts:int, pts:Sequence[int], ptIds:'vtkIdList') -> None: ... + @overload + def GetCellPoints(self, cellId:int, ptIds:'vtkIdList') -> None: ... + def GetCellSize(self, cellId:int) -> int: ... + def GetCellType(self, cellId:int) -> int: ... + def GetCellTypesArray(self) -> 'vtkConstantArray_IiE': ... + def GetCells(self) -> 'vtkStructuredCellArray': ... + @overload + def GetContinuousIncrements(self, extent:MutableSequence[int], incX:int, incY:int, incZ:int) -> None: ... + @overload + def GetContinuousIncrements(self, scalars:'vtkDataArray', extent:MutableSequence[int], incX:int, incY:int, incZ:int) -> None: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkImageData': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkImageData': ... + def GetDataDescription(self) -> int: ... + def GetDataDimension(self) -> int: ... + def GetDataObjectType(self) -> int: ... + @overload + def GetDimensions(self) -> Tuple[int, int, int]: ... + @overload + def GetDimensions(self, dims:MutableSequence[int]) -> None: ... + def GetDirectionMatrix(self) -> 'vtkMatrix3x3': ... + def GetExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetExtentType(self) -> int: ... + @overload + def GetIncrements(self) -> Tuple[int, int, int]: ... + @overload + def GetIncrements(self, incX:int, incY:int, incZ:int) -> None: ... + @overload + def GetIncrements(self, inc:MutableSequence[int]) -> None: ... + @overload + def GetIncrements(self, scalars:'vtkDataArray') -> Tuple[int, int, int]: ... + @overload + def GetIncrements(self, scalars:'vtkDataArray', incX:int, incY:int, incZ:int) -> None: ... + @overload + def GetIncrements(self, scalars:'vtkDataArray', inc:MutableSequence[int]) -> None: ... + def GetIndexToPhysicalMatrix(self) -> 'vtkMatrix4x4': ... + def GetMaxCellSize(self) -> int: ... + def GetMaxSpatialDimension(self) -> int: ... + def GetMinSpatialDimension(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + @overload + @staticmethod + def GetNumberOfScalarComponents(meta_data:'vtkInformation') -> int: ... + @overload + def GetNumberOfScalarComponents(self) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetPhysicalToIndexMatrix(self) -> 'vtkMatrix4x4': ... + @overload + def GetPoint(self, ptId:int) -> Tuple[float, float, float]: ... + @overload + def GetPoint(self, id:int, x:MutableSequence[float]) -> None: ... + def GetPointCells(self, ptId:int, cellIds:'vtkIdList') -> None: ... + def GetPointGradient(self, i:int, j:int, k:int, s:'vtkDataArray', g:MutableSequence[float]) -> None: ... + def GetPoints(self) -> 'vtkPoints': ... + def GetScalarComponentAsDouble(self, x:int, y:int, z:int, component:int) -> float: ... + def GetScalarComponentAsFloat(self, x:int, y:int, z:int, component:int) -> float: ... + @overload + def GetScalarIndex(self, coordinates:MutableSequence[int]) -> int: ... + @overload + def GetScalarIndex(self, x:int, y:int, z:int) -> int: ... + def GetScalarIndexForExtent(self, extent:MutableSequence[int]) -> int: ... + @overload + def GetScalarPointer(self, coordinates:MutableSequence[int]) -> Pointer: ... + @overload + def GetScalarPointer(self, x:int, y:int, z:int) -> Pointer: ... + @overload + def GetScalarPointer(self) -> Pointer: ... + def GetScalarPointerForExtent(self, extent:MutableSequence[int]) -> Pointer: ... + @overload + def GetScalarSize(self, meta_data:'vtkInformation') -> int: ... + @overload + def GetScalarSize(self) -> int: ... + @overload + @staticmethod + def GetScalarType(meta_data:'vtkInformation') -> int: ... + @overload + def GetScalarType(self) -> int: ... + def GetScalarTypeAsString(self) -> str: ... + @overload + def GetScalarTypeMax(self, meta_data:'vtkInformation') -> float: ... + @overload + def GetScalarTypeMax(self) -> float: ... + @overload + def GetScalarTypeMin(self, meta_data:'vtkInformation') -> float: ... + @overload + def GetScalarTypeMin(self) -> float: ... + def GetSpacing(self) -> Tuple[float, float, float]: ... + def GetTupleIndex(self, array:'vtkDataArray', coordinates:MutableSequence[int]) -> int: ... + def GetVoxelGradient(self, i:int, j:int, k:int, s:'vtkDataArray', g:'vtkDataArray') -> None: ... + def HasAnyBlankCells(self) -> bool: ... + def HasAnyBlankPoints(self) -> bool: ... + @staticmethod + def HasNumberOfScalarComponents(meta_data:'vtkInformation') -> bool: ... + @staticmethod + def HasScalarType(meta_data:'vtkInformation') -> bool: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsCellVisible(self, cellId:int) -> int: ... + def IsPointVisible(self, ptId:int) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageData': ... + def PrepareForNewData(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageData': ... + def SetAxisUpdateExtent(self, axis:int, min:int, max:int, updateExtent:Sequence[int], axisUpdateExtent:MutableSequence[int]) -> None: ... + @overload + def SetDimensions(self, i:int, j:int, k:int) -> None: ... + @overload + def SetDimensions(self, dims:Sequence[int]) -> None: ... + @overload + def SetDirectionMatrix(self, m:'vtkMatrix3x3') -> None: ... + @overload + def SetDirectionMatrix(self, elements:Sequence[float]) -> None: ... + @overload + def SetDirectionMatrix(self, e00:float, e01:float, e02:float, e10:float, e11:float, e12:float, e20:float, e21:float, e22:float) -> None: ... + @overload + def SetExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def SetExtent(self, x1:int, x2:int, y1:int, y2:int, z1:int, z2:int) -> None: ... + @staticmethod + def SetNumberOfScalarComponents(n:int, meta_data:'vtkInformation') -> None: ... + @overload + def SetOrigin(self, i:float, j:float, k:float) -> None: ... + @overload + def SetOrigin(self, ijk:Sequence[float]) -> None: ... + def SetScalarComponentFromDouble(self, x:int, y:int, z:int, component:int, v:float) -> None: ... + def SetScalarComponentFromFloat(self, x:int, y:int, z:int, component:int, v:float) -> None: ... + @staticmethod + def SetScalarType(__a:int, meta_data:'vtkInformation') -> None: ... + @overload + def SetSpacing(self, i:float, j:float, k:float) -> None: ... + @overload + def SetSpacing(self, ijk:Sequence[float]) -> None: ... + def ShallowCopy(self, src:'vtkDataObject') -> None: ... + @overload + def TransformContinuousIndexToPhysicalPoint(self, i:float, j:float, k:float, xyz:MutableSequence[float]) -> None: ... + @overload + def TransformContinuousIndexToPhysicalPoint(self, ijk:Sequence[float], xyz:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def TransformContinuousIndexToPhysicalPoint(i:float, j:float, k:float, origin:Sequence[float], spacing:Sequence[float], direction:Sequence[float], xyz:MutableSequence[float]) -> None: ... + @overload + def TransformIndexToPhysicalPoint(self, i:int, j:int, k:int, xyz:MutableSequence[float]) -> None: ... + @overload + def TransformIndexToPhysicalPoint(self, ijk:Sequence[int], xyz:MutableSequence[float]) -> None: ... + def TransformPhysicalNormalToContinuousIndex(self, xyz:Sequence[float], ijk:MutableSequence[float]) -> None: ... + def TransformPhysicalPlaneToContinuousIndex(self, pplane:Sequence[float], iplane:MutableSequence[float]) -> None: ... + @overload + def TransformPhysicalPointToContinuousIndex(self, x:float, y:float, z:float, ijk:MutableSequence[float]) -> None: ... + @overload + def TransformPhysicalPointToContinuousIndex(self, xyz:Sequence[float], ijk:MutableSequence[float]) -> None: ... + @overload + def UnBlankCell(self, ptId:int) -> None: ... + @overload + def UnBlankCell(self, i:int, j:int, k:int) -> None: ... + @overload + def UnBlankPoint(self, ptId:int) -> None: ... + @overload + def UnBlankPoint(self, i:int, j:int, k:int) -> None: ... + +class vtkImageTransform(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageTransform': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageTransform': ... + @staticmethod + def TransformNormals(m3:'vtkMatrix3x3', spacing:Sequence[float], da:'vtkDataArray') -> None: ... + @overload + @staticmethod + def TransformPointSet(im:'vtkImageData', ps:'vtkPointSet') -> None: ... + @overload + @staticmethod + def TransformPointSet(im:'vtkImageData', ps:'vtkPointSet', transNormals:bool, transVectors:bool) -> None: ... + @staticmethod + def TransformPoints(m4:'vtkMatrix4x4', da:'vtkDataArray') -> None: ... + @staticmethod + def TransformVectors(m3:'vtkMatrix3x3', spacing:Sequence[float], da:'vtkDataArray') -> None: ... + @staticmethod + def TranslatePoints(t:Sequence[float], da:'vtkDataArray') -> None: ... + +class vtkImplicitBoolean(vtkImplicitFunction): + class OperationType(int): ... + VTK_DIFFERENCE:'OperationType' + VTK_INTERSECTION:'OperationType' + VTK_UNION:'OperationType' + VTK_UNION_OF_MAGNITUDES:'OperationType' + function:'getset_descriptor' + m_time:'getset_descriptor' + operation_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddFunction(self, in_:'vtkImplicitFunction') -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], g:MutableSequence[float]) -> None: ... + def GetFunction(self) -> 'vtkImplicitFunctionCollection': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOperationType(self) -> int: ... + def GetOperationTypeAsString(self) -> str: ... + def GetOperationTypeMaxValue(self) -> int: ... + def GetOperationTypeMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitBoolean': ... + def RemoveFunction(self, in_:'vtkImplicitFunction') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitBoolean': ... + def SetOperationType(self, _arg:int) -> None: ... + def SetOperationTypeToDifference(self) -> None: ... + def SetOperationTypeToIntersection(self) -> None: ... + def SetOperationTypeToUnion(self) -> None: ... + def SetOperationTypeToUnionOfMagnitudes(self) -> None: ... + +class vtkImplicitDataSet(vtkImplicitFunction): + data_set:'getset_descriptor' + m_time:'getset_descriptor' + out_gradient:'getset_descriptor' + out_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], n:MutableSequence[float]) -> None: ... + def GetDataSet(self) -> 'vtkDataSet': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutGradient(self) -> Tuple[float, float, float]: ... + def GetOutValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitDataSet': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitDataSet': ... + def SetDataSet(self, __a:'vtkDataSet') -> None: ... + @overload + def SetOutGradient(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOutGradient(self, _arg:Sequence[float]) -> None: ... + def SetOutValue(self, _arg:float) -> None: ... + +class vtkImplicitFunctionCollection(vtkmodules.vtkCommonCore.vtkCollection): + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, __a:'vtkImplicitFunction') -> None: ... + def GetNextItem(self) -> 'vtkImplicitFunction': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitFunctionCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitFunctionCollection': ... + +class vtkImplicitHalo(vtkImplicitFunction): + center:'getset_descriptor' + fade_out:'getset_descriptor' + radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], g:MutableSequence[float]) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetFadeOut(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadius(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitHalo': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitHalo': ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetFadeOut(self, _arg:float) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + +class vtkImplicitSelectionLoop(vtkImplicitFunction): + automatic_normal_generation:'getset_descriptor' + loop:'getset_descriptor' + m_time:'getset_descriptor' + normal:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutomaticNormalGenerationOff(self) -> None: ... + def AutomaticNormalGenerationOn(self) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], n:MutableSequence[float]) -> None: ... + def GetAutomaticNormalGeneration(self) -> int: ... + def GetLoop(self) -> 'vtkPoints': ... + def GetMTime(self) -> int: ... + def GetNormal(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitSelectionLoop': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitSelectionLoop': ... + def SetAutomaticNormalGeneration(self, _arg:int) -> None: ... + def SetLoop(self, __a:'vtkPoints') -> None: ... + @overload + def SetNormal(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetNormal(self, _arg:Sequence[float]) -> None: ... + +class vtkImplicitSum(vtkImplicitFunction): + m_time:'getset_descriptor' + normalize_by_weight:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddFunction(self, in_:'vtkImplicitFunction', weight:float) -> None: ... + @overload + def AddFunction(self, in_:'vtkImplicitFunction') -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], g:MutableSequence[float]) -> None: ... + def GetMTime(self) -> int: ... + def GetNormalizeByWeight(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitSum': ... + def NormalizeByWeightOff(self) -> None: ... + def NormalizeByWeightOn(self) -> None: ... + def RemoveAllFunctions(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitSum': ... + def SetFunctionWeight(self, f:'vtkImplicitFunction', weight:float) -> None: ... + def SetNormalizeByWeight(self, _arg:int) -> None: ... + +class vtkImplicitVolume(vtkImplicitFunction): + m_time:'getset_descriptor' + out_gradient:'getset_descriptor' + out_value:'getset_descriptor' + volume:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], n:MutableSequence[float]) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutGradient(self) -> Tuple[float, float, float]: ... + def GetOutValue(self) -> float: ... + def GetVolume(self) -> 'vtkImageData': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitVolume': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitVolume': ... + @overload + def SetOutGradient(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOutGradient(self, _arg:Sequence[float]) -> None: ... + def SetOutValue(self, _arg:float) -> None: ... + def SetVolume(self, __a:'vtkImageData') -> None: ... + +class vtkImplicitWindowFunction(vtkImplicitFunction): + implicit_function:'getset_descriptor' + m_time:'getset_descriptor' + window_range:'getset_descriptor' + window_values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], n:MutableSequence[float]) -> None: ... + def GetImplicitFunction(self) -> 'vtkImplicitFunction': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWindowRange(self) -> Tuple[float, float]: ... + def GetWindowValues(self) -> Tuple[float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitWindowFunction': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitWindowFunction': ... + def SetImplicitFunction(self, __a:'vtkImplicitFunction') -> None: ... + @overload + def SetWindowRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetWindowRange(self, _arg:Sequence[float]) -> None: ... + @overload + def SetWindowValues(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetWindowValues(self, _arg:Sequence[float]) -> None: ... + def UsesGarbageCollector(self) -> bool: ... + +class vtkInEdgeIterator(vtkmodules.vtkCommonCore.vtkObject): + graph:'getset_descriptor' + vertex:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetGraph(self) -> 'vtkGraph': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVertex(self) -> int: ... + def HasNext(self) -> bool: ... + def Initialize(self, g:'vtkGraph', v:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInEdgeIterator': ... + def Next(self) -> 'vtkInEdgeType': ... + def NextGraphEdge(self) -> 'vtkGraphEdge': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInEdgeIterator': ... + +class vtkInEdgeType(vtkEdgeBase): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, s:int, id:int) -> None: ... + @overload + def __init__(self, __a:'vtkInEdgeType') -> None: ... + +class vtkIncrementalOctreeNode(vtkmodules.vtkCommonCore.vtkObject): + bounds:'getset_descriptor' + id:'getset_descriptor' + max_bounds:'getset_descriptor' + max_data_bounds:'getset_descriptor' + min_bounds:'getset_descriptor' + min_data_bounds:'getset_descriptor' + number_of_levels:'getset_descriptor' + number_of_points:'getset_descriptor' + point_id_set:'getset_descriptor' + point_ids:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ContainsPoint(self, pnt:Sequence[float]) -> int: ... + def ContainsPointByData(self, pnt:Sequence[float]) -> int: ... + def DeleteChildNodes(self) -> None: ... + def ExportAllPointIdsByDirectSet(self, pntIdx:MutableSequence[int], idList:'vtkIdList') -> None: ... + def ExportAllPointIdsByInsertion(self, idList:'vtkIdList') -> None: ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetChild(self, i:int) -> 'vtkIncrementalOctreeNode': ... + def GetChildIndex(self, point:Sequence[float]) -> int: ... + @overload + def GetDistance2ToBoundary(self, point:Sequence[float], rootNode:'vtkIncrementalOctreeNode', checkData:int) -> float: ... + @overload + def GetDistance2ToBoundary(self, point:Sequence[float], closest:MutableSequence[float], rootNode:'vtkIncrementalOctreeNode', checkData:int) -> float: ... + def GetDistance2ToInnerBoundary(self, point:Sequence[float], rootNode:'vtkIncrementalOctreeNode') -> float: ... + def GetID(self) -> int: ... + def GetMaxBounds(self) -> Tuple[float, float, float]: ... + def GetMaxDataBounds(self) -> Pointer: ... + def GetMinBounds(self) -> Tuple[float, float, float]: ... + def GetMinDataBounds(self) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLevels(self) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def GetPointIdSet(self) -> 'vtkIdList': ... + def GetPointIds(self) -> 'vtkIdList': ... + def InsertPoint(self, points:'vtkPoints', newPnt:Sequence[float], maxPts:int, pntId:MutableSequence[int], ptMode:int, numberOfNodes:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsLeaf(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkIncrementalOctreeNode': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIncrementalOctreeNode': ... + def SetBounds(self, x1:float, x2:float, y1:float, y2:float, z1:float, z2:float) -> None: ... + +class vtkIncrementalPointLocator(vtkAbstractPointLocator): + def __init__(self, **properties:Any) -> None: ... + def FindClosestInsertedPoint(self, x:Sequence[float]) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def InitPointInsertion(self, newPts:'vtkPoints', bounds:Sequence[float]) -> int: ... + @overload + def InitPointInsertion(self, newPts:'vtkPoints', bounds:Sequence[float], estSize:int) -> int: ... + def InsertNextPoint(self, x:Sequence[float]) -> int: ... + def InsertPoint(self, ptId:int, x:Sequence[float]) -> None: ... + def InsertUniquePoint(self, x:Sequence[float], ptId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @overload + def IsInsertedPoint(self, x:float, y:float, z:float) -> int: ... + @overload + def IsInsertedPoint(self, x:Sequence[float]) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkIncrementalPointLocator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIncrementalPointLocator': ... + +class vtkIncrementalOctreePointLocator(vtkIncrementalPointLocator): + bounds:'getset_descriptor' + build_cubic_octree:'getset_descriptor' + locator_points:'getset_descriptor' + max_points_per_leaf:'getset_descriptor' + number_of_nodes:'getset_descriptor' + number_of_points:'getset_descriptor' + root:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildCubicOctreeOff(self) -> None: ... + def BuildCubicOctreeOn(self) -> None: ... + def BuildLocator(self) -> None: ... + def FindClosestInsertedPoint(self, x:Sequence[float]) -> int: ... + def FindClosestNPoints(self, N:int, x:Sequence[float], result:'vtkIdList') -> None: ... + @overload + def FindClosestPoint(self, x:Sequence[float]) -> int: ... + @overload + def FindClosestPoint(self, x:float, y:float, z:float) -> int: ... + @overload + def FindClosestPoint(self, x:Sequence[float], miniDist2:MutableSequence[float]) -> int: ... + @overload + def FindClosestPoint(self, x:float, y:float, z:float, miniDist2:MutableSequence[float]) -> int: ... + def FindClosestPointWithinRadius(self, radius:float, x:Sequence[float], dist2:float) -> int: ... + def FindClosestPointWithinSquaredRadius(self, radius2:float, x:Sequence[float], dist2:float) -> int: ... + def FindPointsWithinRadius(self, R:float, x:Sequence[float], result:'vtkIdList') -> None: ... + def FindPointsWithinSquaredRadius(self, R2:float, x:Sequence[float], result:'vtkIdList') -> None: ... + def ForceBuildLocator(self) -> None: ... + def FreeSearchStructure(self) -> None: ... + def GenerateRepresentation(self, level:int, polysData:'vtkPolyData') -> None: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetBounds(self) -> Pointer: ... + def GetBuildCubicOctree(self) -> int: ... + def GetLocatorPoints(self) -> 'vtkPoints': ... + def GetMaxPointsPerLeaf(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLevels(self) -> int: ... + def GetNumberOfNodes(self) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def GetRoot(self) -> 'vtkIncrementalOctreeNode': ... + @overload + def InitPointInsertion(self, points:'vtkPoints', bounds:Sequence[float]) -> int: ... + @overload + def InitPointInsertion(self, points:'vtkPoints', bounds:Sequence[float], estSize:int) -> int: ... + def Initialize(self) -> None: ... + def InsertNextPoint(self, x:Sequence[float]) -> int: ... + def InsertPoint(self, ptId:int, x:Sequence[float]) -> None: ... + def InsertPointWithoutChecking(self, point:Sequence[float], pntId:int, insert:int) -> None: ... + def InsertUniquePoint(self, point:Sequence[float], pntId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @overload + def IsInsertedPoint(self, x:Sequence[float]) -> int: ... + @overload + def IsInsertedPoint(self, x:float, y:float, z:float) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkIncrementalOctreePointLocator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIncrementalOctreePointLocator': ... + def SetBuildCubicOctree(self, _arg:int) -> None: ... + def SetMaxPointsPerLeaf(self, _arg:int) -> None: ... + +class vtkInformationQuadratureSchemeDefinitionVectorKey(vtkmodules.vtkCommonCore.vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def Append(self, info:'vtkInformation', value:'vtkQuadratureSchemeDefinition') -> None: ... + def Clear(self, info:'vtkInformation') -> None: ... + def DeepCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + def Get(self, info:'vtkInformation', idx:int) -> 'vtkQuadratureSchemeDefinition': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Length(self, info:'vtkInformation') -> int: ... + def NewInstance(self) -> 'vtkInformationQuadratureSchemeDefinitionVectorKey': ... + def Resize(self, info:'vtkInformation', n:int) -> None: ... + def RestoreState(self, info:'vtkInformation', element:'vtkXMLDataElement') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationQuadratureSchemeDefinitionVectorKey': ... + def SaveState(self, info:'vtkInformation', element:'vtkXMLDataElement') -> int: ... + def Set(self, info:'vtkInformation', value:'vtkQuadratureSchemeDefinition', i:int) -> None: ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + def Size(self, info:'vtkInformation') -> int: ... + +class vtkIntersectionCounter(object): + tolerance:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, tol:float, length:float) -> None: ... + @overload + def __init__(self, __a:'vtkIntersectionCounter') -> None: ... + def AddIntersection(self, t:float) -> None: ... + def CountIntersections(self) -> int: ... + def GetTolerance(self) -> float: ... + def Reset(self) -> None: ... + def SetTolerance(self, tol:float) -> None: ... + +class vtkIterativeClosestPointTransform(vtkmodules.vtkCommonTransforms.vtkLinearTransform): + check_mean_distance:'getset_descriptor' + landmark_transform:'getset_descriptor' + locator:'getset_descriptor' + maximum_mean_distance:'getset_descriptor' + maximum_number_of_iterations:'getset_descriptor' + maximum_number_of_landmarks:'getset_descriptor' + mean_distance:'getset_descriptor' + mean_distance_mode:'getset_descriptor' + number_of_iterations:'getset_descriptor' + source:'getset_descriptor' + start_by_matching_centroids:'getset_descriptor' + target:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CheckMeanDistanceOff(self) -> None: ... + def CheckMeanDistanceOn(self) -> None: ... + def GetCheckMeanDistance(self) -> int: ... + def GetLandmarkTransform(self) -> 'vtkLandmarkTransform': ... + def GetLocator(self) -> 'vtkCellLocator': ... + def GetMaximumMeanDistance(self) -> float: ... + def GetMaximumNumberOfIterations(self) -> int: ... + def GetMaximumNumberOfLandmarks(self) -> int: ... + def GetMeanDistance(self) -> float: ... + def GetMeanDistanceMode(self) -> int: ... + def GetMeanDistanceModeAsString(self) -> str: ... + def GetMeanDistanceModeMaxValue(self) -> int: ... + def GetMeanDistanceModeMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIterations(self) -> int: ... + def GetSource(self) -> 'vtkDataSet': ... + def GetStartByMatchingCentroids(self) -> int: ... + def GetTarget(self) -> 'vtkDataSet': ... + def Inverse(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeTransform(self) -> 'vtkAbstractTransform': ... + def NewInstance(self) -> 'vtkIterativeClosestPointTransform': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIterativeClosestPointTransform': ... + def SetCheckMeanDistance(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkCellLocator') -> None: ... + def SetMaximumMeanDistance(self, _arg:float) -> None: ... + def SetMaximumNumberOfIterations(self, _arg:int) -> None: ... + def SetMaximumNumberOfLandmarks(self, _arg:int) -> None: ... + def SetMeanDistanceMode(self, _arg:int) -> None: ... + def SetMeanDistanceModeToAbsoluteValue(self) -> None: ... + def SetMeanDistanceModeToRMS(self) -> None: ... + def SetSource(self, source:'vtkDataSet') -> None: ... + def SetStartByMatchingCentroids(self, _arg:int) -> None: ... + def SetTarget(self, target:'vtkDataSet') -> None: ... + def StartByMatchingCentroidsOff(self) -> None: ... + def StartByMatchingCentroidsOn(self) -> None: ... + +class vtkKdNode(vtkmodules.vtkCommonCore.vtkObject): + bounds:'getset_descriptor' + data_bounds:'getset_descriptor' + dim:'getset_descriptor' + division_position:'getset_descriptor' + id:'getset_descriptor' + left:'getset_descriptor' + max_bounds:'getset_descriptor' + max_data_bounds:'getset_descriptor' + max_id:'getset_descriptor' + min_bounds:'getset_descriptor' + min_data_bounds:'getset_descriptor' + min_id:'getset_descriptor' + number_of_points:'getset_descriptor' + right:'getset_descriptor' + up:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddChildNodes(self, left:'vtkKdNode', right:'vtkKdNode') -> None: ... + def ContainsBox(self, x1:float, x2:float, y1:float, y2:float, z1:float, z2:float, useDataBounds:int) -> int: ... + def ContainsPoint(self, x:float, y:float, z:float, useDataBounds:int) -> int: ... + def DeleteChildNodes(self) -> None: ... + def GetBounds(self, b:MutableSequence[float]) -> None: ... + def GetDataBounds(self, b:MutableSequence[float]) -> None: ... + def GetDim(self) -> int: ... + @overload + def GetDistance2ToBoundary(self, x:float, y:float, z:float, useDataBounds:int) -> float: ... + @overload + def GetDistance2ToBoundary(self, x:float, y:float, z:float, boundaryPt:MutableSequence[float], useDataBounds:int) -> float: ... + def GetDistance2ToInnerBoundary(self, x:float, y:float, z:float) -> float: ... + def GetDivisionPosition(self) -> float: ... + def GetID(self) -> int: ... + def GetLeft(self) -> 'vtkKdNode': ... + def GetMaxBounds(self) -> Tuple[float, float, float]: ... + def GetMaxDataBounds(self) -> Tuple[float, float, float]: ... + def GetMaxID(self) -> int: ... + def GetMinBounds(self) -> Tuple[float, float, float]: ... + def GetMinDataBounds(self) -> Tuple[float, float, float]: ... + def GetMinID(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def GetRight(self) -> 'vtkKdNode': ... + def GetUp(self) -> 'vtkKdNode': ... + def IntersectsBox(self, x1:float, x2:float, y1:float, y2:float, z1:float, z2:float, useDataBounds:int) -> int: ... + def IntersectsCell(self, cell:'vtkCell', useDataBounds:int, cellRegion:int=-1, cellBounds:MutableSequence[float]=...) -> int: ... + def IntersectsRegion(self, pi:'vtkPlanesIntersection', useDataBounds:int) -> int: ... + def IntersectsSphere2(self, x:float, y:float, z:float, rSquared:float, useDataBounds:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkKdNode': ... + def PrintNode(self, depth:int) -> None: ... + def PrintVerboseNode(self, depth:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkKdNode': ... + @overload + def SetBounds(self, x1:float, x2:float, y1:float, y2:float, z1:float, z2:float) -> None: ... + @overload + def SetBounds(self, b:Sequence[float]) -> None: ... + @overload + def SetDataBounds(self, x1:float, x2:float, y1:float, y2:float, z1:float, z2:float) -> None: ... + @overload + def SetDataBounds(self, v:MutableSequence[float]) -> None: ... + def SetDim(self, _arg:int) -> None: ... + def SetID(self, _arg:int) -> None: ... + def SetLeft(self, left:'vtkKdNode') -> None: ... + def SetMaxBounds(self, mb:Sequence[float]) -> None: ... + def SetMaxDataBounds(self, mb:Sequence[float]) -> None: ... + def SetMaxID(self, _arg:int) -> None: ... + def SetMinBounds(self, mb:Sequence[float]) -> None: ... + def SetMinDataBounds(self, mb:Sequence[float]) -> None: ... + def SetMinID(self, _arg:int) -> None: ... + def SetNumberOfPoints(self, _arg:int) -> None: ... + def SetRight(self, right:'vtkKdNode') -> None: ... + def SetUp(self, up:'vtkKdNode') -> None: ... + +class vtkKdTree(vtkLocator): + cuts:'getset_descriptor' + data_set:'getset_descriptor' + data_sets:'getset_descriptor' + fudge_factor:'getset_descriptor' + generate_representation_using_data_bounds:'getset_descriptor' + include_region_boundary_cells:'getset_descriptor' + min_cells:'getset_descriptor' + new_bounds:'getset_descriptor' + number_of_regions:'getset_descriptor' + number_of_regions_or_less:'getset_descriptor' + number_of_regions_or_more:'getset_descriptor' + timing:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddDataSet(self, set:'vtkDataSet') -> None: ... + def AllGetRegionContainingCell(self) -> Pointer: ... + def BuildLocator(self) -> None: ... + @overload + def BuildLocatorFromPoints(self, pointset:'vtkPointSet') -> None: ... + @overload + def BuildLocatorFromPoints(self, ptArray:'vtkPoints') -> None: ... + def BuildMapForDuplicatePoints(self, tolerance:float) -> 'vtkIdTypeArray': ... + @staticmethod + def CopyTree(kd:'vtkKdNode') -> 'vtkKdNode': ... + @overload + def CreateCellLists(self, dataSetIndex:int, regionReqList:MutableSequence[int], reqListSize:int) -> None: ... + @overload + def CreateCellLists(self, set:'vtkDataSet', regionReqList:MutableSequence[int], reqListSize:int) -> None: ... + @overload + def CreateCellLists(self, regionReqList:MutableSequence[int], listSize:int) -> None: ... + @overload + def CreateCellLists(self) -> None: ... + def DeleteCellLists(self) -> None: ... + def FindClosestNPoints(self, N:int, x:Sequence[float], result:'vtkIdList') -> None: ... + @overload + def FindClosestPoint(self, x:MutableSequence[float], dist2:float) -> int: ... + @overload + def FindClosestPoint(self, x:float, y:float, z:float, dist2:float) -> int: ... + @overload + def FindClosestPointInRegion(self, regionId:int, x:MutableSequence[float], dist2:float) -> int: ... + @overload + def FindClosestPointInRegion(self, regionId:int, x:float, y:float, z:float, dist2:float) -> int: ... + def FindClosestPointWithinRadius(self, radius:float, x:Sequence[float], dist2:float) -> int: ... + @overload + def FindPoint(self, x:MutableSequence[float]) -> int: ... + @overload + def FindPoint(self, x:float, y:float, z:float) -> int: ... + def FindPointsInArea(self, area:MutableSequence[float], ids:'vtkIdTypeArray', clearArray:bool=True) -> None: ... + def FindPointsWithinRadius(self, R:float, x:Sequence[float], result:'vtkIdList') -> None: ... + def ForceBuildLocator(self) -> None: ... + def FreeSearchStructure(self) -> None: ... + @overload + def GenerateRepresentation(self, level:int, pd:'vtkPolyData') -> None: ... + @overload + def GenerateRepresentation(self, regionList:MutableSequence[int], len:int, pd:'vtkPolyData') -> None: ... + def GenerateRepresentationUsingDataBoundsOff(self) -> None: ... + def GenerateRepresentationUsingDataBoundsOn(self) -> None: ... + def GetBoundaryCellList(self, regionID:int) -> 'vtkIdList': ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetCellList(self, regionID:int) -> 'vtkIdList': ... + @overload + def GetCellLists(self, regions:'vtkIntArray', set:int, inRegionCells:'vtkIdList', onBoundaryCells:'vtkIdList') -> int: ... + @overload + def GetCellLists(self, regions:'vtkIntArray', set:'vtkDataSet', inRegionCells:'vtkIdList', onBoundaryCells:'vtkIdList') -> int: ... + @overload + def GetCellLists(self, regions:'vtkIntArray', inRegionCells:'vtkIdList', onBoundaryCells:'vtkIdList') -> int: ... + def GetCuts(self) -> 'vtkBSPCuts': ... + @overload + def GetDataSet(self, n:int) -> 'vtkDataSet': ... + @overload + def GetDataSet(self) -> 'vtkDataSet': ... + def GetDataSetIndex(self, set:'vtkDataSet') -> int: ... + def GetDataSets(self) -> 'vtkDataSetCollection': ... + def GetFudgeFactor(self) -> float: ... + def GetGenerateRepresentationUsingDataBounds(self) -> int: ... + def GetIncludeRegionBoundaryCells(self) -> int: ... + def GetMinCells(self) -> int: ... + def GetNumberOfDataSets(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfRegions(self) -> int: ... + def GetNumberOfRegionsOrLess(self) -> int: ... + def GetNumberOfRegionsOrMore(self) -> int: ... + def GetPointsInRegion(self, regionId:int) -> 'vtkIdTypeArray': ... + def GetRegionBounds(self, regionID:int, bounds:MutableSequence[float]) -> None: ... + @overload + def GetRegionContainingCell(self, set:'vtkDataSet', cellID:int) -> int: ... + @overload + def GetRegionContainingCell(self, set:int, cellID:int) -> int: ... + @overload + def GetRegionContainingCell(self, cellID:int) -> int: ... + def GetRegionContainingPoint(self, x:float, y:float, z:float) -> int: ... + def GetRegionDataBounds(self, regionID:int, bounds:MutableSequence[float]) -> None: ... + def GetTiming(self) -> int: ... + def IncludeRegionBoundaryCellsOff(self) -> None: ... + def IncludeRegionBoundaryCellsOn(self) -> None: ... + def InvalidateGeometry(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewGeometry(self) -> int: ... + def NewInstance(self) -> 'vtkKdTree': ... + def OmitNoPartitioning(self) -> None: ... + def OmitXPartitioning(self) -> None: ... + def OmitXYPartitioning(self) -> None: ... + def OmitYPartitioning(self) -> None: ... + def OmitYZPartitioning(self) -> None: ... + def OmitZPartitioning(self) -> None: ... + def OmitZXPartitioning(self) -> None: ... + def PrintRegion(self, id:int) -> None: ... + def PrintTree(self) -> None: ... + def PrintVerboseTree(self) -> None: ... + def RemoveAllDataSets(self) -> None: ... + @overload + def RemoveDataSet(self, index:int) -> None: ... + @overload + def RemoveDataSet(self, set:'vtkDataSet') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkKdTree': ... + def SetCuts(self, cuts:'vtkBSPCuts') -> None: ... + def SetDataSet(self, set:'vtkDataSet') -> None: ... + def SetFudgeFactor(self, _arg:float) -> None: ... + def SetGenerateRepresentationUsingDataBounds(self, _arg:int) -> None: ... + def SetIncludeRegionBoundaryCells(self, _arg:int) -> None: ... + def SetMinCells(self, _arg:int) -> None: ... + def SetNewBounds(self, bounds:MutableSequence[float]) -> None: ... + def SetNumberOfRegionsOrLess(self, _arg:int) -> None: ... + def SetNumberOfRegionsOrMore(self, _arg:int) -> None: ... + def SetTiming(self, _arg:int) -> None: ... + def TimingOff(self) -> None: ... + def TimingOn(self) -> None: ... + def ViewOrderAllRegionsFromPosition(self, directionOfProjection:Sequence[float], orderedList:'vtkIntArray') -> int: ... + def ViewOrderAllRegionsInDirection(self, directionOfProjection:Sequence[float], orderedList:'vtkIntArray') -> int: ... + def ViewOrderRegionsFromPosition(self, regionIds:'vtkIntArray', directionOfProjection:Sequence[float], orderedList:'vtkIntArray') -> int: ... + def ViewOrderRegionsInDirection(self, regionIds:'vtkIntArray', directionOfProjection:Sequence[float], orderedList:'vtkIntArray') -> int: ... + +class vtkKdTreePointLocator(vtkAbstractPointLocator): + def __init__(self, **properties:Any) -> None: ... + def BuildLocator(self) -> None: ... + def FindClosestNPoints(self, N:int, x:Sequence[float], result:'vtkIdList') -> None: ... + def FindClosestPoint(self, x:Sequence[float]) -> int: ... + def FindClosestPointWithinRadius(self, radius:float, x:Sequence[float], dist2:float) -> int: ... + def FindPointsWithinRadius(self, R:float, x:Sequence[float], result:'vtkIdList') -> None: ... + def ForceBuildLocator(self) -> None: ... + def FreeSearchStructure(self) -> None: ... + def GenerateRepresentation(self, level:int, pd:'vtkPolyData') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkKdTreePointLocator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkKdTreePointLocator': ... + +class vtkLagrangeCurve(vtkHigherOrderCurve): + cell_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLagrangeCurve': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLagrangeCurve': ... + +class vtkLagrangeHexahedron(vtkHigherOrderHexahedron): + cell_type:'getset_descriptor' + edge_cell:'getset_descriptor' + face_cell:'getset_descriptor' + interpolation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetEdgeCell(self) -> 'vtkHigherOrderCurve': ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + def GetFaceCell(self) -> 'vtkHigherOrderQuadrilateral': ... + def GetInterpolation(self) -> 'vtkHigherOrderInterpolation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLagrangeHexahedron': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLagrangeHexahedron': ... + +class vtkLagrangeInterpolation(vtkHigherOrderInterpolation): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def EvaluateShapeAndGradient(order:int, pcoord:float, shape:MutableSequence[float], grad:MutableSequence[float]) -> None: ... + @staticmethod + def EvaluateShapeFunctions(order:int, pcoord:float, shape:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLagrangeInterpolation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLagrangeInterpolation': ... + @staticmethod + def Tensor1ShapeDerivatives(order:(int), pcoords:Sequence[float], derivs:MutableSequence[float]) -> int: ... + @staticmethod + def Tensor1ShapeFunctions(order:(int), pcoords:Sequence[float], shape:MutableSequence[float]) -> int: ... + @staticmethod + def Tensor2ShapeDerivatives(order:Sequence[int], pcoords:Sequence[float], derivs:MutableSequence[float]) -> int: ... + @staticmethod + def Tensor2ShapeFunctions(order:Sequence[int], pcoords:Sequence[float], shape:MutableSequence[float]) -> int: ... + def Tensor3EvaluateDerivative(self, order:Sequence[int], pcoords:Sequence[float], points:'vtkPoints', fieldVals:Sequence[float], fieldDim:int, fieldDerivs:MutableSequence[float]) -> None: ... + @staticmethod + def Tensor3ShapeDerivatives(order:Sequence[int], pcoords:Sequence[float], derivs:MutableSequence[float]) -> int: ... + @staticmethod + def Tensor3ShapeFunctions(order:Sequence[int], pcoords:Sequence[float], shape:MutableSequence[float]) -> int: ... + def WedgeEvaluate(self, order:Sequence[int], numberOfPoints:int, pcoords:Sequence[float], fieldVals:MutableSequence[float], fieldDim:int, fieldAtPCoords:MutableSequence[float]) -> None: ... + def WedgeEvaluateDerivative(self, order:Sequence[int], pcoords:Sequence[float], points:'vtkPoints', fieldVals:Sequence[float], fieldDim:int, fieldDerivs:MutableSequence[float]) -> None: ... + @staticmethod + def WedgeShapeDerivatives(order:Sequence[int], numberOfPoints:int, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def WedgeShapeFunctions(order:Sequence[int], numberOfPoints:int, pcoords:Sequence[float], shape:MutableSequence[float]) -> None: ... + +class vtkLagrangeQuadrilateral(vtkHigherOrderQuadrilateral): + cell_type:'getset_descriptor' + edge_cell:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetEdgeCell(self) -> 'vtkHigherOrderCurve': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLagrangeQuadrilateral': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLagrangeQuadrilateral': ... + +class vtkLagrangeTetra(vtkHigherOrderTetra): + cell_type:'getset_descriptor' + edge_cell:'getset_descriptor' + face_cell:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetEdgeCell(self) -> 'vtkHigherOrderCurve': ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + def GetFaceCell(self) -> 'vtkHigherOrderTriangle': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLagrangeTetra': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLagrangeTetra': ... + +class vtkLagrangeTriangle(vtkHigherOrderTriangle): + cell_type:'getset_descriptor' + edge_cell:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetEdgeCell(self) -> 'vtkHigherOrderCurve': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLagrangeTriangle': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLagrangeTriangle': ... + +class vtkLagrangeWedge(vtkHigherOrderWedge): + boundary_quad:'getset_descriptor' + boundary_tri:'getset_descriptor' + cell_type:'getset_descriptor' + edge_cell:'getset_descriptor' + interpolation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBoundaryQuad(self) -> 'vtkHigherOrderQuadrilateral': ... + def GetBoundaryTri(self) -> 'vtkHigherOrderTriangle': ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetEdgeCell(self) -> 'vtkHigherOrderCurve': ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + def GetInterpolation(self) -> 'vtkHigherOrderInterpolation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLagrangeWedge': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLagrangeWedge': ... + +class vtkLine(vtkCell): + class ToleranceType(int): ... + class IntersectionType(int): ... + Absolute:'ToleranceType' + AbsoluteFuzzy:'ToleranceType' + Intersect:'IntersectionType' + NoIntersect:'IntersectionType' + OnLine:'IntersectionType' + Relative:'ToleranceType' + RelativeFuzzy:'ToleranceType' + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', lines:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + @staticmethod + def DistanceBetweenLineSegments(l0:MutableSequence[float], l1:MutableSequence[float], m0:MutableSequence[float], m1:MutableSequence[float], closestPt1:MutableSequence[float], closestPt2:MutableSequence[float], t1:float, t2:float) -> float: ... + @staticmethod + def DistanceBetweenLines(l0:MutableSequence[float], l1:MutableSequence[float], m0:MutableSequence[float], m1:MutableSequence[float], closestPt1:MutableSequence[float], closestPt2:MutableSequence[float], t1:float, t2:float) -> float: ... + @overload + @staticmethod + def DistanceToLine(x:Sequence[float], p1:Sequence[float], p2:Sequence[float], t:float, closestPoint:MutableSequence[float]=...) -> float: ... + @overload + @staticmethod + def DistanceToLine(x:Sequence[float], p1:Sequence[float], p2:Sequence[float]) -> float: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, __a:int) -> 'vtkCell': ... + def GetFace(self, __a:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def Inflate(self, dist:float) -> int: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + @staticmethod + def Intersection(p1:Sequence[float], p2:Sequence[float], x1:Sequence[float], x2:Sequence[float], u:float, v:float, tolerance:float=1e-6, toleranceType:int=...) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLine': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLine': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkMarchingCubesPolygonCases(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkMarchingCubesPolygonCases') -> None: ... + +class vtkMarchingCubesTriangleCases(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkMarchingCubesTriangleCases') -> None: ... + +class vtkMarchingSquaresLineCases(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkMarchingSquaresLineCases') -> None: ... + +class vtkMeanValueCoordinatesInterpolator(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + @overload + @staticmethod + def ComputeInterpolationWeights(x:Sequence[float], pts:'vtkPoints', tris:'vtkIdList', weights:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def ComputeInterpolationWeights(x:Sequence[float], pts:'vtkPoints', tris:'vtkCellArray', weights:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMeanValueCoordinatesInterpolator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMeanValueCoordinatesInterpolator': ... + +class vtkPointLocator(vtkIncrementalPointLocator): + divisions:'getset_descriptor' + number_of_points_per_bucket:'getset_descriptor' + points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildLocator(self) -> None: ... + def FindClosestInsertedPoint(self, x:Sequence[float]) -> int: ... + def FindClosestNPoints(self, N:int, x:Sequence[float], result:'vtkIdList') -> None: ... + @overload + def FindClosestPoint(self, x:Sequence[float]) -> int: ... + @overload + def FindClosestPoint(self, x:float, y:float, z:float) -> int: ... + @overload + def FindClosestPointWithinRadius(self, radius:float, x:Sequence[float], dist2:float) -> int: ... + @overload + def FindClosestPointWithinRadius(self, radius:float, x:Sequence[float], inputDataLength:float, dist2:float) -> int: ... + @overload + def FindDistributedPoints(self, N:int, x:Sequence[float], result:'vtkIdList', M:int) -> None: ... + @overload + def FindDistributedPoints(self, N:int, x:float, y:float, z:float, result:'vtkIdList', M:int) -> None: ... + def FindPointsWithinRadius(self, R:float, x:Sequence[float], result:'vtkIdList') -> None: ... + def ForceBuildLocator(self) -> None: ... + def FreeSearchStructure(self) -> None: ... + def GenerateRepresentation(self, level:int, pd:'vtkPolyData') -> None: ... + def GetDivisions(self) -> Tuple[int, int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPointsPerBucket(self) -> int: ... + def GetNumberOfPointsPerBucketMaxValue(self) -> int: ... + def GetNumberOfPointsPerBucketMinValue(self) -> int: ... + def GetPoints(self) -> 'vtkPoints': ... + def GetPointsInBucket(self, x:Sequence[float], ijk:MutableSequence[int]) -> 'vtkIdList': ... + @overload + def InitPointInsertion(self, newPts:'vtkPoints', bounds:Sequence[float]) -> int: ... + @overload + def InitPointInsertion(self, newPts:'vtkPoints', bounds:Sequence[float], estNumPts:int) -> int: ... + def Initialize(self) -> None: ... + def InsertNextPoint(self, x:Sequence[float]) -> int: ... + def InsertPoint(self, ptId:int, x:Sequence[float]) -> None: ... + def InsertUniquePoint(self, x:Sequence[float], ptId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @overload + def IsInsertedPoint(self, x:float, y:float, z:float) -> int: ... + @overload + def IsInsertedPoint(self, x:Sequence[float]) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointLocator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointLocator': ... + @overload + def SetDivisions(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetDivisions(self, _arg:Sequence[int]) -> None: ... + def SetNumberOfPointsPerBucket(self, _arg:int) -> None: ... + +class vtkMergePoints(vtkPointLocator): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InsertUniquePoint(self, x:Sequence[float], ptId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @overload + def IsInsertedPoint(self, x:Sequence[float]) -> int: ... + @overload + def IsInsertedPoint(self, x:float, y:float, z:float) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMergePoints': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMergePoints': ... + +class vtkUndirectedGraph(vtkGraph): + data_object_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkUndirectedGraph': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkUndirectedGraph': ... + def GetDataObjectType(self) -> int: ... + def GetInDegree(self, v:int) -> int: ... + @overload + def GetInEdge(self, v:int, i:int) -> 'vtkInEdgeType': ... + @overload + def GetInEdge(self, v:int, i:int, e:'vtkGraphEdge') -> None: ... + def GetInEdges(self, v:int, it:'vtkInEdgeIterator') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsStructureValid(self, g:'vtkGraph') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUndirectedGraph': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUndirectedGraph': ... + +class vtkMolecule(vtkUndirectedGraph): + actual_memory_size:'getset_descriptor' + atom_data:'getset_descriptor' + atom_ghost_array:'getset_descriptor' + atomic_number_array:'getset_descriptor' + atomic_number_array_name:'getset_descriptor' + atomic_position_array:'getset_descriptor' + bond_data:'getset_descriptor' + bond_ghost_array:'getset_descriptor' + bond_orders_array:'getset_descriptor' + bond_orders_array_name:'getset_descriptor' + data_object_type:'getset_descriptor' + electronic_data:'getset_descriptor' + lattice:'getset_descriptor' + lattice_origin:'getset_descriptor' + number_of_atoms:'getset_descriptor' + number_of_bonds:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllocateAtomGhostArray(self) -> None: ... + def AllocateBondGhostArray(self) -> None: ... + @overload + def AppendAtom(self) -> 'vtkAtom': ... + @overload + def AppendAtom(self, atomicNumber:int, x:float, y:float, z:float) -> 'vtkAtom': ... + @overload + def AppendAtom(self, atomicNumber:int, pos:'vtkVector3f') -> 'vtkAtom': ... + @overload + def AppendAtom(self, atomicNumber:int, pos:MutableSequence[float]) -> 'vtkAtom': ... + @overload + def AppendBond(self, atom1:int, atom2:int, order:int=1) -> 'vtkBond': ... + @overload + def AppendBond(self, atom1:'vtkAtom', atom2:'vtkAtom', order:int=1) -> 'vtkBond': ... + def CheckedDeepCopy(self, g:'vtkGraph') -> bool: ... + def CheckedShallowCopy(self, g:'vtkGraph') -> bool: ... + def ClearLattice(self) -> None: ... + def DeepCopy(self, obj:'vtkDataObject') -> None: ... + def DeepCopyAttributes(self, m:'vtkMolecule') -> None: ... + def DeepCopyStructure(self, m:'vtkMolecule') -> None: ... + def GetActualMemorySize(self) -> int: ... + def GetAtom(self, atomId:int) -> 'vtkAtom': ... + def GetAtomAtomicNumber(self, atomId:int) -> int: ... + def GetAtomData(self) -> 'vtkDataSetAttributes': ... + def GetAtomGhostArray(self) -> 'vtkUnsignedCharArray': ... + @overload + def GetAtomPosition(self, atomId:int) -> 'vtkVector3f': ... + @overload + def GetAtomPosition(self, atomId:int, pos:MutableSequence[float]) -> None: ... + def GetAtomicNumberArray(self) -> 'vtkUnsignedShortArray': ... + def GetAtomicNumberArrayName(self) -> str: ... + def GetAtomicPositionArray(self) -> 'vtkPoints': ... + def GetBond(self, bondId:int) -> 'vtkBond': ... + def GetBondData(self) -> 'vtkDataSetAttributes': ... + def GetBondGhostArray(self) -> 'vtkUnsignedCharArray': ... + def GetBondId(self, a:int, b:int) -> int: ... + def GetBondLength(self, bondId:int) -> float: ... + def GetBondOrder(self, bondId:int) -> int: ... + def GetBondOrdersArray(self) -> 'vtkUnsignedShortArray': ... + def GetBondOrdersArrayName(self) -> str: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkMolecule': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkMolecule': ... + def GetDataObjectType(self) -> int: ... + def GetElectronicData(self) -> 'vtkAbstractElectronicData': ... + @overload + def GetLattice(self) -> 'vtkMatrix3x3': ... + @overload + def GetLattice(self, a:'vtkVector3d', b:'vtkVector3d', c:'vtkVector3d') -> None: ... + @overload + def GetLattice(self, a:'vtkVector3d', b:'vtkVector3d', c:'vtkVector3d', origin:'vtkVector3d') -> None: ... + def GetLatticeOrigin(self) -> 'vtkVector3d': ... + def GetNumberOfAtoms(self) -> int: ... + def GetNumberOfBonds(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + @staticmethod + def GetPlaneFromBond(bond:'vtkBond', normal:'vtkVector3f', plane:'vtkPlane') -> bool: ... + @overload + @staticmethod + def GetPlaneFromBond(atom1:'vtkAtom', atom2:'vtkAtom', normal:'vtkVector3f', plane:'vtkPlane') -> bool: ... + def HasLattice(self) -> bool: ... + @overload + def Initialize(self) -> None: ... + @overload + def Initialize(self, atomPositions:'vtkPoints', atomicNumberArray:'vtkDataArray', atomData:'vtkDataSetAttributes') -> int: ... + @overload + def Initialize(self, atomPositions:'vtkPoints', atomData:'vtkDataSetAttributes') -> int: ... + @overload + def Initialize(self, molecule:'vtkMolecule') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMolecule': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMolecule': ... + def SetAtomAtomicNumber(self, atomId:int, atomicNum:int) -> None: ... + @overload + def SetAtomPosition(self, atomId:int, pos:'vtkVector3f') -> None: ... + @overload + def SetAtomPosition(self, atomId:int, x:float, y:float, z:float) -> None: ... + @overload + def SetAtomPosition(self, atomId:int, pos:MutableSequence[float]) -> None: ... + def SetAtomicNumberArrayName(self, _arg:str) -> None: ... + def SetBondOrder(self, bondId:int, order:int) -> None: ... + def SetBondOrdersArrayName(self, _arg:str) -> None: ... + def SetElectronicData(self, __a:'vtkAbstractElectronicData') -> None: ... + @overload + def SetLattice(self, matrix:'vtkMatrix3x3') -> None: ... + @overload + def SetLattice(self, a:'vtkVector3d', b:'vtkVector3d', c:'vtkVector3d') -> None: ... + def SetLatticeOrigin(self, _arg:'vtkVector3d') -> None: ... + def ShallowCopy(self, obj:'vtkDataObject') -> None: ... + def ShallowCopyAttributes(self, m:'vtkMolecule') -> None: ... + def ShallowCopyStructure(self, m:'vtkMolecule') -> None: ... + +class vtkMultiBlockDataSet(vtkDataObjectTree): + data_object_type:'getset_descriptor' + number_of_blocks:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBlock(self, blockno:int) -> 'vtkDataObject': ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkMultiBlockDataSet': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkMultiBlockDataSet': ... + def GetDataObjectType(self) -> int: ... + @overload + def GetMetaData(self, blockno:int) -> 'vtkInformation': ... + @overload + def GetMetaData(self, iter:'vtkCompositeDataIterator') -> 'vtkInformation': ... + def GetNumberOfBlocks(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def HasMetaData(self, blockno:int) -> int: ... + @overload + def HasMetaData(self, iter:'vtkCompositeDataIterator') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMultiBlockDataSet': ... + def RemoveBlock(self, blockno:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMultiBlockDataSet': ... + def SetBlock(self, blockno:int, block:'vtkDataObject') -> None: ... + def SetNumberOfBlocks(self, numBlocks:int) -> None: ... + +class vtkPartitionedDataSet(vtkDataObjectTree): + data_object_type:'getset_descriptor' + number_of_partitions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkPartitionedDataSet': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkPartitionedDataSet': ... + def GetDataObjectType(self) -> int: ... + @overload + def GetMetaData(self, idx:int) -> 'vtkInformation': ... + @overload + def GetMetaData(self, iter:'vtkCompositeDataIterator') -> 'vtkInformation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPartitions(self) -> int: ... + def GetPartition(self, idx:int) -> 'vtkDataSet': ... + def GetPartitionAsDataObject(self, idx:int) -> 'vtkDataObject': ... + @overload + def HasMetaData(self, idx:int) -> int: ... + @overload + def HasMetaData(self, iter:'vtkCompositeDataIterator') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPartitionedDataSet': ... + def RemoveNullPartitions(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPartitionedDataSet': ... + def SetNumberOfPartitions(self, numPartitions:int) -> None: ... + def SetPartition(self, idx:int, partition:'vtkDataObject') -> None: ... + +class vtkMultiPieceDataSet(vtkPartitionedDataSet): + data_object_type:'getset_descriptor' + number_of_pieces:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkMultiPieceDataSet': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkMultiPieceDataSet': ... + def GetDataObjectType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPieces(self) -> int: ... + def GetPiece(self, pieceno:int) -> 'vtkDataSet': ... + def GetPieceAsDataObject(self, pieceno:int) -> 'vtkDataObject': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMultiPieceDataSet': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMultiPieceDataSet': ... + def SetNumberOfPieces(self, numpieces:int) -> None: ... + def SetPiece(self, pieceno:int, piece:'vtkDataObject') -> None: ... + +class vtkMutableDirectedGraph(vtkDirectedGraph): + def __init__(self, **properties:Any) -> None: ... + @overload + def AddChild(self, parent:int, propertyArr:'vtkVariantArray') -> int: ... + @overload + def AddChild(self, parent:int) -> int: ... + @overload + def AddEdge(self, u:int, v:int) -> 'vtkEdgeType': ... + @overload + def AddEdge(self, u:int, v:int, propertyArr:'vtkVariantArray') -> 'vtkEdgeType': ... + @overload + def AddEdge(self, u:'vtkVariant', v:int, propertyArr:'vtkVariantArray'=...) -> 'vtkEdgeType': ... + @overload + def AddEdge(self, u:int, v:'vtkVariant', propertyArr:'vtkVariantArray'=...) -> 'vtkEdgeType': ... + @overload + def AddEdge(self, u:'vtkVariant', v:'vtkVariant', propertyArr:'vtkVariantArray'=...) -> 'vtkEdgeType': ... + def AddGraphEdge(self, u:int, v:int) -> 'vtkGraphEdge': ... + @overload + def AddVertex(self) -> int: ... + @overload + def AddVertex(self, propertyArr:'vtkVariantArray') -> int: ... + @overload + def AddVertex(self, pedigreeId:'vtkVariant') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LazyAddEdge(self, u:int, v:int, propertyArr:'vtkVariantArray'=...) -> None: ... + @overload + def LazyAddEdge(self, u:'vtkVariant', v:int, propertyArr:'vtkVariantArray'=...) -> None: ... + @overload + def LazyAddEdge(self, u:int, v:'vtkVariant', propertyArr:'vtkVariantArray'=...) -> None: ... + @overload + def LazyAddEdge(self, u:'vtkVariant', v:'vtkVariant', propertyArr:'vtkVariantArray'=...) -> None: ... + @overload + def LazyAddVertex(self) -> None: ... + @overload + def LazyAddVertex(self, propertyArr:'vtkVariantArray') -> None: ... + @overload + def LazyAddVertex(self, pedigreeId:'vtkVariant') -> None: ... + def NewInstance(self) -> 'vtkMutableDirectedGraph': ... + def RemoveEdge(self, e:int) -> None: ... + def RemoveEdges(self, arr:'vtkIdTypeArray') -> None: ... + def RemoveVertex(self, v:int) -> None: ... + def RemoveVertices(self, arr:'vtkIdTypeArray') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMutableDirectedGraph': ... + def SetNumberOfVertices(self, numVerts:int) -> int: ... + +class vtkMutableUndirectedGraph(vtkUndirectedGraph): + def __init__(self, **properties:Any) -> None: ... + @overload + def AddEdge(self, u:int, v:int) -> 'vtkEdgeType': ... + @overload + def AddEdge(self, u:int, v:int, propertyArr:'vtkVariantArray') -> 'vtkEdgeType': ... + @overload + def AddEdge(self, u:'vtkVariant', v:int, propertyArr:'vtkVariantArray'=...) -> 'vtkEdgeType': ... + @overload + def AddEdge(self, u:int, v:'vtkVariant', propertyArr:'vtkVariantArray'=...) -> 'vtkEdgeType': ... + @overload + def AddEdge(self, u:'vtkVariant', v:'vtkVariant', propertyArr:'vtkVariantArray'=...) -> 'vtkEdgeType': ... + def AddGraphEdge(self, u:int, v:int) -> 'vtkGraphEdge': ... + @overload + def AddVertex(self) -> int: ... + @overload + def AddVertex(self, propertyArr:'vtkVariantArray') -> int: ... + @overload + def AddVertex(self, pedigreeId:'vtkVariant') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LazyAddEdge(self, u:int, v:int) -> None: ... + @overload + def LazyAddEdge(self, u:int, v:int, propertyArr:'vtkVariantArray') -> None: ... + @overload + def LazyAddEdge(self, u:'vtkVariant', v:int, propertyArr:'vtkVariantArray'=...) -> None: ... + @overload + def LazyAddEdge(self, u:int, v:'vtkVariant', propertyArr:'vtkVariantArray'=...) -> None: ... + @overload + def LazyAddEdge(self, u:'vtkVariant', v:'vtkVariant', propertyArr:'vtkVariantArray'=...) -> None: ... + @overload + def LazyAddVertex(self) -> None: ... + @overload + def LazyAddVertex(self, propertyArr:'vtkVariantArray') -> None: ... + @overload + def LazyAddVertex(self, pedigreeId:'vtkVariant') -> None: ... + def NewInstance(self) -> 'vtkMutableUndirectedGraph': ... + def RemoveEdge(self, e:int) -> None: ... + def RemoveEdges(self, arr:'vtkIdTypeArray') -> None: ... + def RemoveVertex(self, v:int) -> None: ... + def RemoveVertices(self, arr:'vtkIdTypeArray') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMutableUndirectedGraph': ... + def SetNumberOfVertices(self, numVerts:int) -> int: ... + +class vtkNonMergingPointLocator(vtkPointLocator): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InsertUniquePoint(self, x:Sequence[float], ptId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @overload + def IsInsertedPoint(self, __a:Sequence[float]) -> int: ... + @overload + def IsInsertedPoint(self, __a:float, __b:float, __c:float) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkNonMergingPointLocator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkNonMergingPointLocator': ... + +class vtkNonOverlappingAMR(vtkUniformGridAMR): + data_object_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkNonOverlappingAMR': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkNonOverlappingAMR': ... + def GetDataObjectType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkNonOverlappingAMR': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkNonOverlappingAMR': ... + +class vtkOctreePointLocator(vtkAbstractPointLocator): + bounds:'getset_descriptor' + create_cubic_octants:'getset_descriptor' + fudge_factor:'getset_descriptor' + maximum_points_per_region:'getset_descriptor' + number_of_leaf_nodes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildLocator(self) -> None: ... + def FindClosestNPoints(self, N:int, x:Sequence[float], result:'vtkIdList') -> None: ... + @overload + def FindClosestPoint(self, x:Sequence[float]) -> int: ... + @overload + def FindClosestPoint(self, x:float, y:float, z:float, dist2:float) -> int: ... + @overload + def FindClosestPointInRegion(self, regionId:int, x:MutableSequence[float], dist2:float) -> int: ... + @overload + def FindClosestPointInRegion(self, regionId:int, x:float, y:float, z:float, dist2:float) -> int: ... + def FindClosestPointWithinRadius(self, radius:float, x:Sequence[float], dist2:float) -> int: ... + def FindPointsInArea(self, area:MutableSequence[float], ids:'vtkIdTypeArray', clearArray:bool=True) -> None: ... + def FindPointsWithinRadius(self, radius:float, x:Sequence[float] , result:'vtkIdList') -> None: ... + def ForceBuildLocator(self) -> None: ... + def FreeSearchStructure(self) -> None: ... + def GenerateRepresentation(self, level:int, pd:'vtkPolyData') -> None: ... + @overload + def GetBounds(self) -> Pointer: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetCreateCubicOctants(self) -> int: ... + def GetFudgeFactor(self) -> float: ... + def GetMaximumPointsPerRegion(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLeafNodes(self) -> int: ... + def GetPointsInRegion(self, leafNodeId:int) -> 'vtkIdTypeArray': ... + def GetRegionBounds(self, regionID:int, bounds:MutableSequence[float]) -> None: ... + def GetRegionContainingPoint(self, x:float, y:float, z:float) -> int: ... + def GetRegionDataBounds(self, leafNodeID:int, bounds:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOctreePointLocator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOctreePointLocator': ... + def SetCreateCubicOctants(self, _arg:int) -> None: ... + def SetFudgeFactor(self, _arg:float) -> None: ... + def SetMaximumPointsPerRegion(self, _arg:int) -> None: ... + +class vtkOctreePointLocatorNode(vtkmodules.vtkCommonCore.vtkObject): + bounds:'getset_descriptor' + data_bounds:'getset_descriptor' + id:'getset_descriptor' + max_bounds:'getset_descriptor' + max_data_bounds:'getset_descriptor' + min_bounds:'getset_descriptor' + min_data_bounds:'getset_descriptor' + min_id:'getset_descriptor' + number_of_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeOctreeNodeInformation(self, Parent:'vtkOctreePointLocatorNode', NextLeafId:int, NextMinId:int, coordinates:MutableSequence[float]) -> None: ... + def ContainsPoint(self, x:float, y:float, z:float, useDataBounds:int) -> int: ... + def CreateChildNodes(self) -> None: ... + def DeleteChildNodes(self) -> None: ... + def GetBounds(self, b:MutableSequence[float]) -> None: ... + def GetChild(self, i:int) -> 'vtkOctreePointLocatorNode': ... + def GetDataBounds(self, b:MutableSequence[float]) -> None: ... + @overload + def GetDistance2ToBoundary(self, x:float, y:float, z:float, top:'vtkOctreePointLocatorNode', useDataBounds:int) -> float: ... + @overload + def GetDistance2ToBoundary(self, x:float, y:float, z:float, boundaryPt:MutableSequence[float], top:'vtkOctreePointLocatorNode', useDataBounds:int) -> float: ... + def GetDistance2ToInnerBoundary(self, x:float, y:float, z:float, top:'vtkOctreePointLocatorNode') -> float: ... + def GetID(self) -> int: ... + def GetMaxBounds(self) -> Pointer: ... + def GetMaxDataBounds(self) -> Pointer: ... + def GetMinBounds(self) -> Pointer: ... + def GetMinDataBounds(self) -> Pointer: ... + def GetMinID(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def GetSubOctantIndex(self, point:MutableSequence[float], CheckContainment:int) -> int: ... + def IntersectsRegion(self, pi:'vtkPlanesIntersection', useDataBounds:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOctreePointLocatorNode': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOctreePointLocatorNode': ... + @overload + def SetBounds(self, xMin:float, xMax:float, yMin:float, yMax:float, zMin:float, zMax:float) -> None: ... + @overload + def SetBounds(self, b:Sequence[float]) -> None: ... + def SetDataBounds(self, xMin:float, xMax:float, yMin:float, yMax:float, zMin:float, zMax:float) -> None: ... + def SetMaxBounds(self, maxBounds:MutableSequence[float]) -> None: ... + def SetMaxDataBounds(self, maxDataBounds:MutableSequence[float]) -> None: ... + def SetMinBounds(self, minBounds:MutableSequence[float]) -> None: ... + def SetMinDataBounds(self, minDataBounds:MutableSequence[float]) -> None: ... + def SetNumberOfPoints(self, numberOfPoints:int) -> None: ... + +class vtkOrderedTriangulator(vtkmodules.vtkCommonCore.vtkObject): + number_of_points:'getset_descriptor' + pre_sorted:'getset_descriptor' + use_templates:'getset_descriptor' + use_two_sort_ids:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddTetras(self, classification:int, ugrid:'vtkUnstructuredGrid') -> int: ... + @overload + def AddTetras(self, classification:int, connectivity:'vtkCellArray') -> int: ... + @overload + def AddTetras(self, classification:int, locator:'vtkIncrementalPointLocator', outConnectivity:'vtkCellArray', inPD:'vtkPointData', outPD:'vtkPointData', inCD:'vtkCellData', cellId:int, outCD:'vtkCellData') -> int: ... + @overload + def AddTetras(self, classification:int, ptIds:'vtkIdList', pts:'vtkPoints') -> int: ... + @overload + def AddTetras(self, classification:int, ptIds:'vtkIdList') -> int: ... + @overload + def AddTriangles(self, connectivity:'vtkCellArray') -> int: ... + @overload + def AddTriangles(self, id:int, connectivity:'vtkCellArray') -> int: ... + def GetNextTetra(self, classification:int, tet:'vtkTetra', cellScalars:'vtkDataArray', tetScalars:'vtkDoubleArray') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def GetPointId(self, internalId:int) -> int: ... + def GetPointLocation(self, internalId:int) -> Pointer: ... + def GetPointPosition(self, internalId:int) -> Pointer: ... + def GetPreSorted(self) -> int: ... + def GetTetras(self, classification:int, ugrid:'vtkUnstructuredGrid') -> int: ... + def GetUseTemplates(self) -> int: ... + def GetUseTwoSortIds(self) -> int: ... + def InitTetraTraversal(self) -> None: ... + @overload + def InitTriangulation(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float, numPts:int) -> None: ... + @overload + def InitTriangulation(self, bounds:MutableSequence[float], numPts:int) -> None: ... + @overload + def InsertPoint(self, id:int, x:MutableSequence[float], p:MutableSequence[float], type:int) -> int: ... + @overload + def InsertPoint(self, id:int, sortid:int, x:MutableSequence[float], p:MutableSequence[float], type:int) -> int: ... + @overload + def InsertPoint(self, id:int, sortid:int, sortid2:int, x:MutableSequence[float], p:MutableSequence[float], type:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOrderedTriangulator': ... + def PreSortedOff(self) -> None: ... + def PreSortedOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOrderedTriangulator': ... + def SetPreSorted(self, _arg:int) -> None: ... + def SetUseTemplates(self, _arg:int) -> None: ... + def SetUseTwoSortIds(self, _arg:int) -> None: ... + def TemplateTriangulate(self, cellType:int, numPts:int, numEdges:int) -> None: ... + def Triangulate(self) -> None: ... + def UpdatePointType(self, internalId:int, type:int) -> None: ... + def UseTemplatesOff(self) -> None: ... + def UseTemplatesOn(self) -> None: ... + def UseTwoSortIdsOff(self) -> None: ... + def UseTwoSortIdsOn(self) -> None: ... + +class vtkOutEdgeIterator(vtkmodules.vtkCommonCore.vtkObject): + graph:'getset_descriptor' + vertex:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetGraph(self) -> 'vtkGraph': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVertex(self) -> int: ... + def HasNext(self) -> bool: ... + def Initialize(self, g:'vtkGraph', v:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOutEdgeIterator': ... + def Next(self) -> 'vtkOutEdgeType': ... + def NextGraphEdge(self) -> 'vtkGraphEdge': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOutEdgeIterator': ... + +class vtkOutEdgeType(vtkEdgeBase): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, t:int, id:int) -> None: ... + @overload + def __init__(self, __a:'vtkOutEdgeType') -> None: ... + +class vtkPartitionedDataSetCollection(vtkDataObjectTree): + data_assembly:'getset_descriptor' + data_object_type:'getset_descriptor' + m_time:'getset_descriptor' + number_of_partitioned_data_sets:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CompositeShallowCopy(self, src:'vtkCompositeDataSet') -> None: ... + def CopyStructure(self, input:'vtkCompositeDataSet') -> None: ... + def DeepCopy(self, src:'vtkDataObject') -> None: ... + @overload + def GetCompositeIndex(self, idx:int) -> int: ... + @overload + def GetCompositeIndex(self, idx:int, partition:int) -> int: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkPartitionedDataSetCollection': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkPartitionedDataSetCollection': ... + def GetDataAssembly(self) -> 'vtkDataAssembly': ... + def GetDataObjectType(self) -> int: ... + def GetMTime(self) -> int: ... + @overload + def GetMetaData(self, idx:int) -> 'vtkInformation': ... + @overload + def GetMetaData(self, iter:'vtkCompositeDataIterator') -> 'vtkInformation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPartitionedDataSets(self) -> int: ... + def GetNumberOfPartitions(self, idx:int) -> int: ... + def GetPartition(self, idx:int, partition:int) -> 'vtkDataSet': ... + def GetPartitionAsDataObject(self, idx:int, partition:int) -> 'vtkDataObject': ... + def GetPartitionedDataSet(self, idx:int) -> 'vtkPartitionedDataSet': ... + @overload + def HasMetaData(self, idx:int) -> int: ... + @overload + def HasMetaData(self, iter:'vtkCompositeDataIterator') -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPartitionedDataSetCollection': ... + def RemovePartitionedDataSet(self, idx:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPartitionedDataSetCollection': ... + def SetDataAssembly(self, assembly:'vtkDataAssembly') -> None: ... + def SetNumberOfPartitionedDataSets(self, numDataSets:int) -> None: ... + def SetNumberOfPartitions(self, idx:int, numPartitions:int) -> None: ... + def SetPartition(self, idx:int, partition:int, object:'vtkDataObject') -> None: ... + def SetPartitionedDataSet(self, idx:int, dataset:'vtkPartitionedDataSet') -> None: ... + def ShallowCopy(self, src:'vtkDataObject') -> None: ... + +class vtkPath(vtkPointSet): + class ControlPointType(int): ... + CONIC_CURVE:'ControlPointType' + CUBIC_CURVE:'ControlPointType' + LINE_TO:'ControlPointType' + MOVE_TO:'ControlPointType' + codes:'getset_descriptor' + data_object_type:'getset_descriptor' + max_cell_size:'getset_descriptor' + max_spatial_dimension:'getset_descriptor' + min_spatial_dimension:'getset_descriptor' + number_of_cells:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, size:int=1000, extSize:int=1000) -> None: ... + @overload + def GetCell(self, __a:int) -> 'vtkCell': ... + @overload + def GetCell(self, __a:int, __b:'vtkGenericCell') -> None: ... + @overload + def GetCell(self, i:int, j:int, k:int) -> 'vtkCell': ... + @overload + def GetCellPoints(self, __a:int, ptIds:'vtkIdList') -> None: ... + @overload + def GetCellPoints(self, cellId:int, npts:int, pts:Sequence[int], ptIds:'vtkIdList') -> None: ... + def GetCellType(self, __a:int) -> int: ... + def GetCodes(self) -> 'vtkIntArray': ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkPath': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkPath': ... + def GetDataObjectType(self) -> int: ... + def GetMaxCellSize(self) -> int: ... + def GetMaxSpatialDimension(self) -> int: ... + def GetMinSpatialDimension(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointCells(self, ptId:int, cellIds:'vtkIdList') -> None: ... + @overload + def InsertNextPoint(self, pts:MutableSequence[float], code:int) -> None: ... + @overload + def InsertNextPoint(self, x:float, y:float, z:float, code:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPath': ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPath': ... + def SetCodes(self, __a:'vtkIntArray') -> None: ... + +class vtkPentagonalPrism(vtkCell3D): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + @staticmethod + def ComputeCentroid(points:'vtkPoints', pointIds:Sequence[int], centroid:MutableSequence[float]) -> bool: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetCentroid(self, centroid:MutableSequence[float]) -> bool: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + @staticmethod + def GetEdgeArray(edgeId:int) -> Pointer: ... + def GetEdgePoints(self, edgeId:int, pts:Sequence[int]) -> None: ... + def GetEdgeToAdjacentFaces(self, edgeId:int, pts:Sequence[int]) -> None: ... + @staticmethod + def GetEdgeToAdjacentFacesArray(edgeId:int) -> Tuple[int, int]: ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + @staticmethod + def GetFaceArray(faceId:int) -> Pointer: ... + def GetFacePoints(self, faceId:int, pts:Sequence[int]) -> int: ... + def GetFaceToAdjacentFaces(self, faceId:int, faceIds:Sequence[int]) -> int: ... + @staticmethod + def GetFaceToAdjacentFacesArray(faceId:int) -> Tuple[int, int, int, int, int]: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetPointToIncidentEdges(self, pointId:int, edgeIds:Sequence[int]) -> int: ... + @staticmethod + def GetPointToIncidentEdgesArray(pointId:int) -> Tuple[int, int, int]: ... + def GetPointToIncidentFaces(self, pointId:int, faceIds:Sequence[int]) -> int: ... + @staticmethod + def GetPointToIncidentFacesArray(pointId:int) -> Tuple[int, int, int]: ... + def GetPointToOneRingPoints(self, pointId:int, pts:Sequence[int]) -> int: ... + @staticmethod + def GetPointToOneRingPointsArray(pointId:int) -> Tuple[int, int, int]: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsInsideOut(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPentagonalPrism': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPentagonalPrism': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkPerlinNoise(vtkImplicitFunction): + amplitude:'getset_descriptor' + frequency:'getset_descriptor' + phase:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], n:MutableSequence[float]) -> None: ... + def GetAmplitude(self) -> float: ... + def GetFrequency(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPhase(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPerlinNoise': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPerlinNoise': ... + def SetAmplitude(self, _arg:float) -> None: ... + @overload + def SetFrequency(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetFrequency(self, _arg:Sequence[float]) -> None: ... + @overload + def SetPhase(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPhase(self, _arg:Sequence[float]) -> None: ... + +class vtkPiecewiseFunction(vtkDataObject): + class SearchMethod(int): ... + BINARY_SEARCH:'SearchMethod' + INTERPOLATION_SEARCH:'SearchMethod' + MAX_ENUM:'SearchMethod' + allow_duplicate_scalars:'getset_descriptor' + automatic_search_method:'getset_descriptor' + clamping:'getset_descriptor' + custom_search_method:'getset_descriptor' + data_object_type:'getset_descriptor' + data_pointer:'getset_descriptor' + first_non_zero_value:'getset_descriptor' + range:'getset_descriptor' + size:'getset_descriptor' + type:'getset_descriptor' + use_custom_search_method:'getset_descriptor' + use_log_scale:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddPoint(self, x:float, y:float) -> int: ... + @overload + def AddPoint(self, x:float, y:float, midpoint:float, sharpness:float) -> int: ... + def AddSegment(self, x1:float, y1:float, x2:float, y2:float) -> None: ... + def AdjustRange(self, range:MutableSequence[float]) -> int: ... + def AllowDuplicateScalarsOff(self) -> None: ... + def AllowDuplicateScalarsOn(self) -> None: ... + def BuildFunctionFromTable(self, x1:float, x2:float, size:int, table:MutableSequence[float], stride:int=1) -> None: ... + def ClampingOff(self) -> None: ... + def ClampingOn(self) -> None: ... + def DeepCopy(self, f:'vtkDataObject') -> None: ... + def EstimateMinNumberOfSamples(self, x1:float, x2:float) -> int: ... + def FillFromDataPointer(self, __a:int, __b:MutableSequence[float]) -> None: ... + def GetAllowDuplicateScalars(self) -> int: ... + def GetAutomaticSearchMethod(self) -> int: ... + def GetClamping(self) -> int: ... + def GetCustomSearchMethod(self) -> int: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkPiecewiseFunction': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkPiecewiseFunction': ... + def GetDataObjectType(self) -> int: ... + def GetDataPointer(self) -> Pointer: ... + def GetFirstNonZeroValue(self) -> float: ... + def GetNodeValue(self, index:int, val:MutableSequence[float]) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRange(self) -> Tuple[float, float]: ... + def GetSize(self) -> int: ... + def GetTable(self, x1:float, x2:float, size:int, table:MutableSequence[float], stride:int=1, logIncrements:int=0, epsilon:float=1e-5) -> None: ... + def GetType(self) -> str: ... + def GetUseLogScale(self) -> bool: ... + def GetValue(self, x:float) -> float: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPiecewiseFunction': ... + def RemoveAllPoints(self) -> None: ... + @overload + def RemovePoint(self, x:float) -> int: ... + @overload + def RemovePoint(self, x:float, y:float) -> int: ... + def RemovePointByIndex(self, id:int) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPiecewiseFunction': ... + def SetAllowDuplicateScalars(self, _arg:int) -> None: ... + def SetClamping(self, _arg:int) -> None: ... + def SetCustomSearchMethod(self, type:int) -> None: ... + def SetNodeValue(self, index:int, val:MutableSequence[float]) -> int: ... + def SetUseCustomSearchMethod(self, use:bool) -> None: ... + def SetUseLogScale(self, _arg:bool) -> None: ... + def ShallowCopy(self, f:'vtkDataObject') -> None: ... + def UpdateSearchMethod(self, epsilon:float=1e-12, thresh:float=1e-4) -> None: ... + def UseLogScaleOff(self) -> None: ... + def UseLogScaleOn(self) -> None: ... + +class vtkPixel(vtkCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def ComputeBoundingSphere(self, center:MutableSequence[float]) -> float: ... + def ComputeNormal(self, n:MutableSequence[float]) -> int: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetFace(self, __a:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def Inflate(self, dist:float) -> int: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPixel': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPixel': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkPixelExtent(object): + data:'getset_descriptor' + data_u:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, other:'vtkPixelExtent') -> None: ... + @overload + def CellToNode(self) -> None: ... + @overload + @staticmethod + def CellToNode(inputExt:'vtkPixelExtent') -> 'vtkPixelExtent': ... + def Clear(self) -> None: ... + @overload + def Contains(self, other:'vtkPixelExtent') -> int: ... + @overload + def Contains(self, i:int, j:int) -> int: ... + def Disjoint(self, other:'vtkPixelExtent') -> int: ... + def Empty(self) -> int: ... + def GetData(self) -> Pointer: ... + def GetDataU(self) -> Pointer: ... + def GetEndIndex(self, last:MutableSequence[int]) -> None: ... + @overload + def GetStartIndex(self, first:MutableSequence[int]) -> None: ... + @overload + def GetStartIndex(self, first:MutableSequence[int], origin:Sequence[int]) -> None: ... + @overload + def Grow(self, n:int) -> None: ... + @overload + def Grow(self, q:int, n:int) -> None: ... + @overload + @staticmethod + def Grow(inputExt:'vtkPixelExtent', n:int) -> 'vtkPixelExtent': ... + @overload + @staticmethod + def Grow(inputExt:'vtkPixelExtent', problemDomain:'vtkPixelExtent', n:int) -> 'vtkPixelExtent': ... + @overload + def GrowHigh(self, q:int, n:int) -> None: ... + @overload + @staticmethod + def GrowHigh(ext:'vtkPixelExtent', q:int, n:int) -> 'vtkPixelExtent': ... + @overload + def GrowLow(self, q:int, n:int) -> None: ... + @overload + @staticmethod + def GrowLow(ext:'vtkPixelExtent', q:int, n:int) -> 'vtkPixelExtent': ... + @overload + def NodeToCell(self) -> None: ... + @overload + @staticmethod + def NodeToCell(inputExt:'vtkPixelExtent') -> 'vtkPixelExtent': ... + def SetData(self, ext:'vtkPixelExtent') -> None: ... + @overload + def Shift(self) -> None: ... + @overload + def Shift(self, ext:'vtkPixelExtent') -> None: ... + @overload + def Shift(self, n:MutableSequence[int]) -> None: ... + @overload + def Shift(self, q:int, n:int) -> None: ... + @overload + @staticmethod + def Shift(ij:MutableSequence[int], n:int) -> None: ... + @overload + @staticmethod + def Shift(ij:MutableSequence[int], n:MutableSequence[int]) -> None: ... + @overload + def Shrink(self, n:int) -> None: ... + @overload + def Shrink(self, q:int, n:int) -> None: ... + @overload + @staticmethod + def Shrink(inputExt:'vtkPixelExtent', problemDomain:'vtkPixelExtent', n:int) -> 'vtkPixelExtent': ... + @overload + @staticmethod + def Shrink(inputExt:'vtkPixelExtent', n:int) -> 'vtkPixelExtent': ... + @overload + def Size(self) -> int: ... + @overload + @staticmethod + def Size(ext:'vtkPixelExtent') -> int: ... + def Split(self, dir:int) -> 'vtkPixelExtent': ... + +class vtkPixelTransfer(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkPixelTransfer') -> None: ... + @overload + @staticmethod + def Blit(ext:'vtkPixelExtent', nComps:int, srcType:int, srcData:Pointer, destType:int, destData:Pointer) -> int: ... + @overload + @staticmethod + def Blit(srcWhole:'vtkPixelExtent', srcSubset:'vtkPixelExtent', destWhole:'vtkPixelExtent', destSubset:'vtkPixelExtent', nSrcComps:int, srcType:int, srcData:Pointer, nDestComps:int, destType:int, destData:Pointer) -> int: ... + +class vtkPlane(vtkImplicitFunction): + axis_aligned:'getset_descriptor' + normal:'getset_descriptor' + offset:'getset_descriptor' + origin:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ComputeBestFittingPlane(pts:'vtkPoints', origin:MutableSequence[float], normal:MutableSequence[float]) -> bool: ... + def DeepCopy(self, plane:'vtkPlane') -> None: ... + @overload + @staticmethod + def DistanceToPlane(x:MutableSequence[float], n:MutableSequence[float], p0:MutableSequence[float]) -> float: ... + @overload + def DistanceToPlane(self, x:MutableSequence[float]) -> float: ... + @staticmethod + def Evaluate(normal:MutableSequence[float], origin:MutableSequence[float], x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], g:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def GeneralizedProjectPoint(x:Sequence[float], origin:Sequence[float], normal:Sequence[float], xproj:MutableSequence[float]) -> None: ... + @overload + def GeneralizedProjectPoint(self, x:Sequence[float], xproj:MutableSequence[float]) -> None: ... + def GetAxisAligned(self) -> bool: ... + def GetNormal(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffset(self) -> float: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + @overload + @staticmethod + def IntersectWithFinitePlane(n:MutableSequence[float], o:MutableSequence[float], pOrigin:MutableSequence[float], px:MutableSequence[float], py:MutableSequence[float], x0:MutableSequence[float], x1:MutableSequence[float]) -> int: ... + @overload + def IntersectWithFinitePlane(self, pOrigin:MutableSequence[float], px:MutableSequence[float], py:MutableSequence[float], x0:MutableSequence[float], x1:MutableSequence[float]) -> int: ... + @overload + @staticmethod + def IntersectWithLine(p1:Sequence[float], p2:Sequence[float], n:MutableSequence[float], p0:MutableSequence[float], t:float, x:MutableSequence[float]) -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], t:float, x:MutableSequence[float]) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlane': ... + @overload + @staticmethod + def ProjectPoint(x:Sequence[float], origin:Sequence[float] , normal:Sequence[float], xproj:MutableSequence[float]) -> None: ... + @overload + def ProjectPoint(self, x:Sequence[float], xproj:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def ProjectVector(v:Sequence[float], origin:Sequence[float], normal:Sequence[float], vproj:MutableSequence[float]) -> None: ... + @overload + def ProjectVector(self, v:Sequence[float], vproj:MutableSequence[float]) -> None: ... + def Push(self, distance:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlane': ... + def SetAxisAligned(self, _arg:bool) -> None: ... + @overload + def SetNormal(self, x:float, y:float, z:float) -> None: ... + @overload + def SetNormal(self, normal:Sequence[float]) -> None: ... + def SetOffset(self, _arg:float) -> None: ... + @overload + def SetOrigin(self, x:float, y:float, z:float) -> None: ... + @overload + def SetOrigin(self, origin:Sequence[float]) -> None: ... + +class vtkPlaneCollection(vtkmodules.vtkCommonCore.vtkCollection): + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, __a:'vtkPlane') -> None: ... + def GetItem(self, i:int) -> 'vtkPlane': ... + def GetNextItem(self) -> 'vtkPlane': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlaneCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlaneCollection': ... + +class vtkPlanes(vtkImplicitFunction): + bounds:'getset_descriptor' + frustum_planes:'getset_descriptor' + normals:'getset_descriptor' + points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], n:MutableSequence[float]) -> None: ... + def GetNormals(self) -> 'vtkDataArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPlanes(self) -> int: ... + @overload + def GetPlane(self, i:int) -> 'vtkPlane': ... + @overload + def GetPlane(self, i:int, plane:'vtkPlane') -> None: ... + def GetPoints(self) -> 'vtkPoints': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlanes': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlanes': ... + @overload + def SetBounds(self, bounds:Sequence[float]) -> None: ... + @overload + def SetBounds(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + def SetFrustumPlanes(self, planes:MutableSequence[float]) -> None: ... + def SetNormals(self, normals:'vtkDataArray') -> None: ... + def SetPoints(self, __a:'vtkPoints') -> None: ... + +class vtkPlanesIntersection(vtkPlanes): + num_region_vertices:'getset_descriptor' + number_of_region_vertices:'getset_descriptor' + region_vertices:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def Convert3DCell(cell:'vtkCell') -> 'vtkPlanesIntersection': ... + def GetNumRegionVertices(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfRegionVertices(self) -> int: ... + def GetRegionVertices(self, v:MutableSequence[float], nvertices:int) -> int: ... + def IntersectsRegion(self, R:'vtkPoints') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlanesIntersection': ... + @staticmethod + def PolygonIntersectsBBox(bounds:MutableSequence[float], pts:'vtkPoints') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlanesIntersection': ... + @overload + def SetRegionVertices(self, pts:'vtkPoints') -> None: ... + @overload + def SetRegionVertices(self, v:MutableSequence[float], nvertices:int) -> None: ... + +class vtkPointData(vtkDataSetAttributes): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkPointData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointData': ... + +class vtkPointSetCellIterator(vtkCellIterator): + cell_id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellId(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsDoneWithTraversal(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointSetCellIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointSetCellIterator': ... + +class vtkPointsProjectedHull(vtkmodules.vtkCommonCore.vtkPoints): + size_ccw_hull_x:'getset_descriptor' + size_ccw_hull_y:'getset_descriptor' + size_ccw_hull_z:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCCWHullX(self, pts:MutableSequence[float], len:int) -> int: ... + def GetCCWHullY(self, pts:MutableSequence[float], len:int) -> int: ... + def GetCCWHullZ(self, pts:MutableSequence[float], len:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSizeCCWHullX(self) -> int: ... + def GetSizeCCWHullY(self) -> int: ... + def GetSizeCCWHullZ(self) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointsProjectedHull': ... + @overload + def RectangleIntersectionX(self, R:'vtkPoints') -> int: ... + @overload + def RectangleIntersectionX(self, ymin:float, ymax:float, zmin:float, zmax:float) -> int: ... + @overload + def RectangleIntersectionY(self, R:'vtkPoints') -> int: ... + @overload + def RectangleIntersectionY(self, zmin:float, zmax:float, xmin:float, xmax:float) -> int: ... + @overload + def RectangleIntersectionZ(self, R:'vtkPoints') -> int: ... + @overload + def RectangleIntersectionZ(self, xmin:float, xmax:float, ymin:float, ymax:float) -> int: ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointsProjectedHull': ... + def Update(self) -> None: ... + +class vtkPolyData(vtkPointSet): + ERR_INCORRECT_FIELD:int + ERR_NON_MANIFOLD_STAR:int + ERR_NO_SUCH_FIELD:int + MAXIMUM:int + MINIMUM:int + REGULAR_POINT:int + SADDLE:int + actual_memory_size:'getset_descriptor' + data_object_type:'getset_descriptor' + ghost_level:'getset_descriptor' + lines:'getset_descriptor' + links:'getset_descriptor' + m_time:'getset_descriptor' + max_cell_size:'getset_descriptor' + max_spatial_dimension:'getset_descriptor' + mesh_m_time:'getset_descriptor' + min_spatial_dimension:'getset_descriptor' + number_of_cells:'getset_descriptor' + number_of_lines:'getset_descriptor' + number_of_polys:'getset_descriptor' + number_of_strips:'getset_descriptor' + number_of_verts:'getset_descriptor' + piece:'getset_descriptor' + polys:'getset_descriptor' + strips:'getset_descriptor' + verts:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddCellReference(self, cellId:int) -> None: ... + def AddReferenceToCell(self, ptId:int, cellId:int) -> None: ... + @overload + def Allocate(self, numCells:int=1000, extSize:int=1000) -> None: ... + @overload + def Allocate(self, inPolyData:'vtkPolyData', numCells:int=1000, extSize:int=1000) -> None: ... + def AllocateCopy(self, pd:'vtkPolyData') -> bool: ... + @overload + def AllocateEstimate(self, numCells:int, maxCellSize:int) -> bool: ... + @overload + def AllocateEstimate(self, numVerts:int, maxVertSize:int, numLines:int, maxLineSize:int, numPolys:int, maxPolySize:int, numStrips:int, maxStripSize:int) -> bool: ... + @overload + def AllocateExact(self, numCells:int, connectivitySize:int) -> bool: ... + @overload + def AllocateExact(self, numVerts:int, vertConnSize:int, numLines:int, lineConnSize:int, numPolys:int, polyConnSize:int, numStrips:int, stripConnSize:int) -> bool: ... + def AllocateProportional(self, pd:'vtkPolyData', ratio:float) -> bool: ... + def BuildCells(self) -> None: ... + def BuildLinks(self, initialSize:int=0) -> None: ... + def ComputeCellsBounds(self) -> None: ... + def CopyCells(self, pd:'vtkPolyData', idList:'vtkIdList', locator:'vtkIncrementalPointLocator'=...) -> None: ... + def CopyStructure(self, ds:'vtkDataSet') -> None: ... + def DeepCopy(self, src:'vtkDataObject') -> None: ... + def DeleteCell(self, cellId:int) -> None: ... + def DeleteCells(self) -> None: ... + def DeleteLinks(self) -> None: ... + def DeletePoint(self, ptId:int) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkPolyData': ... + def GetActualMemorySize(self) -> int: ... + @overload + def GetCell(self, cellId:int) -> 'vtkCell': ... + @overload + def GetCell(self, cellId:int, cell:'vtkGenericCell') -> None: ... + @overload + def GetCell(self, cellId:int, pts:Sequence[int]) -> int: ... + @overload + def GetCell(self, i:int, j:int, k:int) -> 'vtkCell': ... + def GetCellBounds(self, cellId:int, bounds:MutableSequence[float]) -> None: ... + def GetCellEdgeNeighbors(self, cellId:int, p1:int, p2:int, cellIds:'vtkIdList') -> None: ... + def GetCellIdRelativeToCellArray(self, cellId:int) -> int: ... + def GetCellNeighbors(self, cellId:int, ptIds:'vtkIdList', cellIds:'vtkIdList') -> None: ... + @overload + def GetCellPoints(self, cellId:int, ptIds:'vtkIdList') -> None: ... + @overload + def GetCellPoints(self, cellId:int, npts:int, pts:Sequence[int]) -> int: ... + @overload + def GetCellPoints(self, cellId:int, npts:int, pts:Sequence[int], ptIds:'vtkIdList') -> None: ... + def GetCellSize(self, cellId:int) -> int: ... + def GetCellType(self, cellId:int) -> int: ... + def GetCellsBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkPolyData': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkPolyData': ... + def GetDataObjectType(self) -> int: ... + def GetGhostLevel(self) -> int: ... + def GetLines(self) -> 'vtkCellArray': ... + def GetLinks(self) -> 'vtkAbstractCellLinks': ... + def GetMTime(self) -> int: ... + def GetMaxCellSize(self) -> int: ... + def GetMaxSpatialDimension(self) -> int: ... + def GetMeshMTime(self) -> int: ... + def GetMinSpatialDimension(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLines(self) -> int: ... + def GetNumberOfPieces(self) -> int: ... + def GetNumberOfPolys(self) -> int: ... + def GetNumberOfStrips(self) -> int: ... + def GetNumberOfVerts(self) -> int: ... + def GetPiece(self) -> int: ... + @overload + def GetPointCells(self, ptId:int, cellIds:'vtkIdList') -> None: ... + @overload + def GetPointCells(self, ptId:int, ncells:int, cells:MutableSequence[int]) -> None: ... + def GetPolys(self) -> 'vtkCellArray': ... + @overload + def GetScalarFieldCriticalIndex(self, pointId:int, scalarField:'vtkDataArray') -> int: ... + @overload + def GetScalarFieldCriticalIndex(self, pointId:int, fieldId:int) -> int: ... + @overload + def GetScalarFieldCriticalIndex(self, pointId:int, fieldName:str) -> int: ... + def GetStrips(self) -> 'vtkCellArray': ... + def GetVerts(self) -> 'vtkCellArray': ... + def Initialize(self) -> None: ... + @overload + def InsertNextCell(self, type:int, npts:int, pts:Sequence[int]) -> int: ... + @overload + def InsertNextCell(self, type:int, pts:'vtkIdList') -> int: ... + def InsertNextLinkedCell(self, type:int, npts:int, pts:Sequence[int]) -> int: ... + @overload + def InsertNextLinkedPoint(self, numLinks:int) -> int: ... + @overload + def InsertNextLinkedPoint(self, x:MutableSequence[float], numLinks:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsEdge(self, p1:int, p2:int) -> int: ... + def IsPointUsedByCell(self, ptId:int, cellId:int) -> int: ... + def IsTriangle(self, v1:int, v2:int, v3:int) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NeedToBuildCells(self) -> bool: ... + def NewInstance(self) -> 'vtkPolyData': ... + def RemoveCellReference(self, cellId:int) -> None: ... + def RemoveDeletedCells(self) -> None: ... + def RemoveGhostCells(self) -> None: ... + def RemoveReferenceToCell(self, ptId:int, cellId:int) -> None: ... + @overload + def ReplaceCell(self, cellId:int, ids:'vtkIdList') -> None: ... + @overload + def ReplaceCell(self, cellId:int, npts:int, pts:Sequence[int]) -> None: ... + @overload + def ReplaceCellPoint(self, cellId:int, oldPtId:int, newPtId:int) -> None: ... + @overload + def ReplaceCellPoint(self, cellId:int, oldPtId:int, newPtId:int, cellPointIds:'vtkIdList') -> None: ... + def ReplaceLinkedCell(self, cellId:int, npts:int, pts:Sequence[int]) -> None: ... + def Reset(self) -> None: ... + def ResizeCellList(self, ptId:int, size:int) -> None: ... + def ReverseCell(self, cellId:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyData': ... + def SetLines(self, l:'vtkCellArray') -> None: ... + def SetLinks(self, _arg:'vtkAbstractCellLinks') -> None: ... + def SetPolys(self, p:'vtkCellArray') -> None: ... + def SetStrips(self, s:'vtkCellArray') -> None: ... + def SetVerts(self, v:'vtkCellArray') -> None: ... + def ShallowCopy(self, src:'vtkDataObject') -> None: ... + def Squeeze(self) -> None: ... + +class vtkPolyDataCollection(vtkmodules.vtkCommonCore.vtkCollection): + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, pd:'vtkPolyData') -> None: ... + def GetNextItem(self) -> 'vtkPolyData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyDataCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataCollection': ... + +class vtkPolyLine(vtkCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', lines:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + @overload + @staticmethod + def GenerateSlidingNormals(pts:'vtkPoints', lines:'vtkCellArray', normals:'vtkDataArray') -> int: ... + @overload + @staticmethod + def GenerateSlidingNormals(pts:'vtkPoints', lines:'vtkCellArray', normals:'vtkDataArray', firstNormal:MutableSequence[float], threading:bool=False) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsPrimaryCell(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyLine': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyLine': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkPolyPlane(vtkImplicitFunction): + m_time:'getset_descriptor' + poly_line:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], g:MutableSequence[float]) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPolyLine(self) -> 'vtkPolyLine': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyPlane': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyPlane': ... + def SetPolyLine(self, __a:'vtkPolyLine') -> None: ... + +class vtkPolyVertex(vtkCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsPrimaryCell(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyVertex': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyVertex': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkPolygon(vtkCell): + class EarCutMeasureTypes(int): ... + BEST_QUALITY:'EarCutMeasureTypes' + DOT_PRODUCT:'EarCutMeasureTypes' + PERIMETER2_TO_AREA_RATIO:'EarCutMeasureTypes' + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + tolerance:'getset_descriptor' + use_mvc_interpolation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BoundedTriangulate(self, outTris:'vtkIdList', tol:float) -> int: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', tris:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + @overload + def ComputeArea(self) -> float: ... + @overload + @staticmethod + def ComputeArea(p:'vtkPoints', numPts:int, pts:Sequence[int], normal:MutableSequence[float]) -> float: ... + @overload + @staticmethod + def ComputeCentroid(p:'vtkPoints', numPts:int, pts:Sequence[int], centroid:MutableSequence[float], tolerance:float) -> bool: ... + @overload + @staticmethod + def ComputeCentroid(p:'vtkPoints', numPts:int, pts:Sequence[int], centroid:MutableSequence[float]) -> bool: ... + @overload + @staticmethod + def ComputeCentroid(ids:'vtkIdTypeArray', pts:'vtkPoints', centroid:MutableSequence[float]) -> bool: ... + @overload + @staticmethod + def ComputeNormal(p:'vtkPoints', numPts:int, pts:Sequence[int], n:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def ComputeNormal(p:'vtkPoints', n:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def ComputeNormal(ids:'vtkIdTypeArray', pts:'vtkPoints', n:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def ComputeNormal(numPts:int, pts:MutableSequence[float], n:MutableSequence[float]) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + @staticmethod + def DistanceToPolygon(x:MutableSequence[float], numPts:int, pts:MutableSequence[float], bounds:MutableSequence[float], closest:MutableSequence[float]) -> float: ... + @overload + def EarCutTriangulation(self, measure:int=...) -> int: ... + @overload + def EarCutTriangulation(self, outTris:'vtkIdList', measure:int=...) -> int: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetFace(self, __a:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTolerance(self) -> float: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def GetUseMVCInterpolation(self) -> bool: ... + def InterpolateFunctions(self, x:Sequence[float], sf:MutableSequence[float]) -> None: ... + @staticmethod + def IntersectConvex2DCells(cell1:'vtkCell', cell2:'vtkCell', tol:float, p0:MutableSequence[float], p1:MutableSequence[float]) -> int: ... + @staticmethod + def IntersectPolygonWithPolygon(npts:int, pts:MutableSequence[float], bounds:MutableSequence[float], npts2:int, pts2:MutableSequence[float], bounds2:MutableSequence[float], tol:float, x:MutableSequence[float]) -> int: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @overload + def IsConvex(self) -> bool: ... + @overload + @staticmethod + def IsConvex(p:'vtkPoints', numPts:int, pts:Sequence[int]) -> bool: ... + @overload + @staticmethod + def IsConvex(ids:'vtkIdTypeArray', p:'vtkPoints') -> bool: ... + @overload + @staticmethod + def IsConvex(p:'vtkPoints') -> bool: ... + def IsPrimaryCell(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolygon': ... + def NonDegenerateTriangulate(self, outTris:'vtkIdList') -> int: ... + def ParameterizePolygon(self, p0:MutableSequence[float], p10:MutableSequence[float], l10:float, p20:MutableSequence[float], l20:float, n:MutableSequence[float]) -> int: ... + @staticmethod + def PointInPolygon(x:MutableSequence[float], numPts:int, pts:MutableSequence[float], bounds:MutableSequence[float], n:MutableSequence[float]) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolygon': ... + def SetTolerance(self, _arg:float) -> None: ... + def SetUseMVCInterpolation(self, _arg:bool) -> None: ... + def Triangulate(self, index:int, ptIds:'vtkIdList', pts:'vtkPoints') -> int: ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + @overload + def UnbiasedEarCutTriangulation(self, seed:int, measure:int=...) -> int: ... + @overload + def UnbiasedEarCutTriangulation(self, seed:int, outTris:'vtkIdList', measure:int=...) -> int: ... + +class vtkPolyhedron(vtkCell3D): + cell_faces:'getset_descriptor' + cell_type:'getset_descriptor' + faces:'getset_descriptor' + parametric_coords:'getset_descriptor' + poly_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, scalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', connectivity:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, scalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def DeepCopy(self, c:'vtkCell') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + @overload + def GetCellFaces(self) -> 'vtkCellArray': ... + @overload + def GetCellFaces(self, faces:'vtkCellArray') -> None: ... + def GetCellType(self) -> int: ... + def GetCentroid(self, centroid:MutableSequence[float]) -> bool: ... + def GetEdge(self, __a:int) -> 'vtkCell': ... + def GetEdgePoints(self, edgeId:int, pts:Sequence[int]) -> None: ... + def GetEdgeToAdjacentFaces(self, edgeId:int, pts:Sequence[int]) -> None: ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + def GetFacePoints(self, faceId:int, pts:Sequence[int]) -> int: ... + def GetFaceToAdjacentFaces(self, faceId:int, faceIds:Sequence[int]) -> int: ... + def GetFaces(self) -> Pointer: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetPointToIncidentEdges(self, pointId:int, edgeIds:Sequence[int]) -> int: ... + def GetPointToIncidentFaces(self, pointId:int, faceIds:Sequence[int]) -> int: ... + def GetPointToOneRingPoints(self, pointId:int, pts:Sequence[int]) -> int: ... + def GetPolyData(self) -> 'vtkPolyData': ... + def Initialize(self) -> None: ... + def InterpolateDerivs(self, x:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, x:Sequence[float], sf:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsConvex(self) -> bool: ... + def IsInside(self, x:Sequence[float], tolerance:float) -> int: ... + def IsPrimaryCell(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyhedron': ... + def RequiresExplicitFaceRepresentation(self) -> int: ... + def RequiresInitialization(self) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyhedron': ... + def SetCellFaces(self, faces:'vtkCellArray') -> int: ... + def SetFaces(self, faces:MutableSequence[int]) -> None: ... + def ShallowCopy(self, c:'vtkCell') -> None: ... + @overload + def TriangulateFaces(self, newFaces:'vtkIdList') -> int: ... + @overload + def TriangulateFaces(self, newFaces:'vtkCellArray') -> int: ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkPolyhedronUtilities(object): + def __init__(self, __a:'vtkPolyhedronUtilities') -> None: ... + @staticmethod + def Decompose(polyhedron:'vtkPolyhedron', inPd:'vtkPointData', cellId:int, inCd:'vtkCellData') -> 'vtkUnstructuredGrid': ... + +class vtkPyramid(vtkCell3D): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + @staticmethod + def ComputeCentroid(points:'vtkPoints', pointIds:Sequence[int], centroid:MutableSequence[float]) -> bool: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetCentroid(self, centroid:MutableSequence[float]) -> bool: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + @staticmethod + def GetEdgeArray(edgeId:int) -> Tuple[int, int]: ... + def GetEdgePoints(self, edgeId:int, pts:Sequence[int]) -> None: ... + def GetEdgeToAdjacentFaces(self, edgeId:int, pts:Sequence[int]) -> None: ... + @staticmethod + def GetEdgeToAdjacentFacesArray(edgeId:int) -> Tuple[int, int]: ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + @staticmethod + def GetFaceArray(faceId:int) -> Tuple[int, int, int, int]: ... + def GetFacePoints(self, faceId:int, pts:Sequence[int]) -> int: ... + def GetFaceToAdjacentFaces(self, faceId:int, faceIds:Sequence[int]) -> int: ... + @staticmethod + def GetFaceToAdjacentFacesArray(faceId:int) -> Tuple[int, int, int, int]: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetPointToIncidentEdges(self, pointId:int, edgeIds:Sequence[int]) -> int: ... + @staticmethod + def GetPointToIncidentEdgesArray(pointId:int) -> Tuple[int, int, int, int]: ... + def GetPointToIncidentFaces(self, pointId:int, faceIds:Sequence[int]) -> int: ... + @staticmethod + def GetPointToIncidentFacesArray(pointId:int) -> Tuple[int, int, int, int]: ... + def GetPointToOneRingPoints(self, pointId:int, pts:Sequence[int]) -> int: ... + @staticmethod + def GetPointToOneRingPointsArray(pointId:int) -> Tuple[int, int, int, int]: ... + @staticmethod + def GetTriangleCases(caseId:int) -> Pointer: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsInsideOut(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPyramid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPyramid': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkQuad(vtkCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetEdgeArray(self, edgeId:int) -> Pointer: ... + def GetFace(self, __a:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], sf:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], sf:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuad': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuad': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkQuadraticEdge(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', lines:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, __a:int) -> 'vtkCell': ... + def GetFace(self, __a:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuadraticEdge': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadraticEdge': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkQuadraticHexahedron(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', tetras:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, __a:int) -> 'vtkCell': ... + @staticmethod + def GetEdgeArray(edgeId:int) -> Pointer: ... + def GetFace(self, __a:int) -> 'vtkCell': ... + @staticmethod + def GetFaceArray(faceId:int) -> Pointer: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuadraticHexahedron': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadraticHexahedron': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkQuadraticLinearQuad(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, __a:int) -> 'vtkCell': ... + @staticmethod + def GetEdgeArray(edgeId:int) -> Pointer: ... + def GetFace(self, __a:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuadraticLinearQuad': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadraticLinearQuad': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkQuadraticLinearWedge(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', tetras:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + @staticmethod + def GetEdgeArray(edgeId:int) -> Pointer: ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + @staticmethod + def GetFaceArray(faceId:int) -> Pointer: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuadraticLinearWedge': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadraticLinearWedge': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkQuadraticPolygon(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + use_mvc_interpolation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + @staticmethod + def ComputeCentroid(ids:'vtkIdTypeArray', pts:'vtkPoints', centroid:MutableSequence[float]) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + @staticmethod + def DistanceToPolygon(x:MutableSequence[float], numPts:int, pts:MutableSequence[float], bounds:MutableSequence[float], closest:MutableSequence[float]) -> float: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, __a:int) -> 'vtkCell': ... + def GetFace(self, __a:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseMVCInterpolation(self) -> bool: ... + def InterpolateFunctions(self, x:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def IntersectConvex2DCells(cell1:'vtkCell', cell2:'vtkCell', tol:float, p0:MutableSequence[float], p1:MutableSequence[float]) -> int: ... + @staticmethod + def IntersectPolygonWithPolygon(npts:int, pts:MutableSequence[float], bounds:MutableSequence[float], npts2:int, pts2:MutableSequence[float], bounds2:MutableSequence[float], tol:float, x:MutableSequence[float]) -> int: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsPrimaryCell(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuadraticPolygon': ... + def NonDegenerateTriangulate(self, outTris:'vtkIdList') -> int: ... + def ParameterizePolygon(self, p0:MutableSequence[float], p10:MutableSequence[float], l10:float, p20:MutableSequence[float], l20:float, n:MutableSequence[float]) -> int: ... + @staticmethod + def PointInPolygon(x:MutableSequence[float], numPts:int, pts:MutableSequence[float], bounds:MutableSequence[float], n:MutableSequence[float]) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadraticPolygon': ... + def SetUseMVCInterpolation(self, _arg:bool) -> None: ... + def Triangulate(self, index:int, ptIds:'vtkIdList', pts:'vtkPoints') -> int: ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkQuadraticPyramid(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', tets:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + @staticmethod + def GetEdgeArray(edgeId:int) -> Pointer: ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + @staticmethod + def GetFaceArray(faceId:int) -> Pointer: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuadraticPyramid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadraticPyramid': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkQuadraticQuad(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, __a:int) -> 'vtkCell': ... + def GetFace(self, __a:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuadraticQuad': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadraticQuad': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkQuadraticTetra(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', tetras:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, __a:int) -> 'vtkCell': ... + @staticmethod + def GetEdgeArray(edgeId:int) -> Pointer: ... + def GetFace(self, __a:int) -> 'vtkCell': ... + @staticmethod + def GetFaceArray(faceId:int) -> Pointer: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetParametricDistance(self, pcoords:Sequence[float]) -> float: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuadraticTetra': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadraticTetra': ... + def StableClip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', tetras:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> bool: ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkQuadraticTriangle(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetFace(self, __a:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetParametricDistance(self, pcoords:Sequence[float]) -> float: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuadraticTriangle': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadraticTriangle': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkQuadraticWedge(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', tetras:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + @staticmethod + def GetEdgeArray(edgeId:int) -> Pointer: ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + @staticmethod + def GetFaceArray(faceId:int) -> Pointer: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuadraticWedge': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadraticWedge': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkQuadratureSchemeDefinition(vtkmodules.vtkCommonCore.vtkObject): + cell_type:'getset_descriptor' + dimension:'getset_descriptor' + number_of_nodes:'getset_descriptor' + number_of_quadrature_points:'getset_descriptor' + quadrature_key:'getset_descriptor' + quadrature_weights:'getset_descriptor' + shape_function_weights:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def DICTIONARY() -> 'vtkInformationQuadratureSchemeDefinitionVectorKey': ... + def DeepCopy(self, other:'vtkQuadratureSchemeDefinition') -> int: ... + def GetCellType(self) -> int: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfNodes(self) -> int: ... + def GetNumberOfQuadraturePoints(self) -> int: ... + def GetQuadratureKey(self) -> int: ... + def GetQuadratureWeights(self) -> Pointer: ... + def GetShapeFunctionDerivativeWeights(self, quadraturePointId:int) -> Pointer: ... + @overload + def GetShapeFunctionWeights(self) -> Pointer: ... + @overload + def GetShapeFunctionWeights(self, quadraturePointId:int) -> Pointer: ... + @overload + def Initialize(self, cellType:int, numberOfNodes:int, numberOfQuadraturePoints:int, shapeFunctionWeights:MutableSequence[float]) -> None: ... + @overload + def Initialize(self, cellType:int, numberOfNodes:int, numberOfQuadraturePoints:int, shapeFunctionWeights:MutableSequence[float], quadratureWeights:MutableSequence[float]) -> None: ... + @overload + def Initialize(self, cellType:int, numberOfNodes:int, numberOfQuadraturePoints:int, shapeFunctionWeights:Sequence[float], quadratureWeights:Sequence[float], dim:int, shapeFunctionDerivativeWeights:Sequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuadratureSchemeDefinition': ... + @staticmethod + def QUADRATURE_OFFSET_ARRAY_NAME() -> 'vtkInformationStringKey': ... + def RestoreState(self, root:'vtkXMLDataElement') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadratureSchemeDefinition': ... + def SaveState(self, root:'vtkXMLDataElement') -> int: ... + +class vtkQuadric(vtkImplicitFunction): + coefficients:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], g:MutableSequence[float]) -> None: ... + def GetCoefficients(self) -> Tuple[float, float, float, float, float, float, float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuadric': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadric': ... + @overload + def SetCoefficients(self, a:MutableSequence[float]) -> None: ... + @overload + def SetCoefficients(self, a0:float, a1:float, a2:float, a3:float, a4:float, a5:float, a6:float, a7:float, a8:float, a9:float) -> None: ... + +class vtkVector_IdLi4EE(vtkmodules.vtkCommonMath.vtkTuple_IdLi4EE): + def Dot(self, other:'vtkVector_IdLi4EE') -> float: ... + def Norm(self) -> float: ... + def Normalize(self) -> float: ... + def Normalized(self) -> 'vtkVector_IdLi4EE': ... + def SquaredNorm(self) -> float: ... + +class vtkRect_IdE(vtkVector_IdLi4EE): + bottom:'getset_descriptor' + bottom_left:'getset_descriptor' + bottom_right:'getset_descriptor' + center:'getset_descriptor' + height:'getset_descriptor' + left:'getset_descriptor' + right:'getset_descriptor' + top:'getset_descriptor' + top_left:'getset_descriptor' + top_right:'getset_descriptor' + width:'getset_descriptor' + x:'getset_descriptor' + y:'getset_descriptor' + @overload + def AddPoint(self, point:Sequence[float]) -> None: ... + @overload + def AddPoint(self, x:float, y:float) -> None: ... + def AddRect(self, rect:'vtkRect_IdE') -> None: ... + def GetBottom(self) -> float: ... + def GetBottomLeft(self) -> 'vtkVector2_IdE': ... + def GetBottomRight(self) -> 'vtkVector_IdLi2EE': ... + def GetCenter(self) -> 'vtkVector2d': ... + def GetHeight(self) -> float: ... + def GetLeft(self) -> float: ... + def GetRight(self) -> float: ... + def GetTop(self) -> float: ... + def GetTopLeft(self) -> 'vtkVector_IdLi2EE': ... + def GetTopRight(self) -> 'vtkVector_IdLi2EE': ... + def GetWidth(self) -> float: ... + def GetX(self) -> float: ... + def GetY(self) -> float: ... + def Intersect(self, other:'vtkRect_IdE') -> bool: ... + def IntersectsWith(self, rect:'vtkRect_IdE') -> bool: ... + def MoveTo(self, x:float, y:float) -> None: ... + def Set(self, x:float, y:float, width:float, height:float) -> None: ... + def SetHeight(self, height:float) -> None: ... + def SetWidth(self, width:float) -> None: ... + def SetX(self, x:float) -> None: ... + def SetY(self, y:float) -> None: ... + +class vtkVector_IfLi4EE(vtkmodules.vtkCommonMath.vtkTuple_IfLi4EE): + def Dot(self, other:'vtkVector_IfLi4EE') -> float: ... + def Norm(self) -> float: ... + def Normalize(self) -> float: ... + def Normalized(self) -> 'vtkVector_IfLi4EE': ... + def SquaredNorm(self) -> float: ... + +class vtkRect_IfE(vtkVector_IfLi4EE): + bottom:'getset_descriptor' + bottom_left:'getset_descriptor' + bottom_right:'getset_descriptor' + center:'getset_descriptor' + height:'getset_descriptor' + left:'getset_descriptor' + right:'getset_descriptor' + top:'getset_descriptor' + top_left:'getset_descriptor' + top_right:'getset_descriptor' + width:'getset_descriptor' + x:'getset_descriptor' + y:'getset_descriptor' + @overload + def AddPoint(self, point:Sequence[float]) -> None: ... + @overload + def AddPoint(self, x:float, y:float) -> None: ... + def AddRect(self, rect:'vtkRect_IfE') -> None: ... + def GetBottom(self) -> float: ... + def GetBottomLeft(self) -> 'vtkVector2_IfE': ... + def GetBottomRight(self) -> 'vtkVector_IfLi2EE': ... + def GetCenter(self) -> 'vtkVector2d': ... + def GetHeight(self) -> float: ... + def GetLeft(self) -> float: ... + def GetRight(self) -> float: ... + def GetTop(self) -> float: ... + def GetTopLeft(self) -> 'vtkVector_IfLi2EE': ... + def GetTopRight(self) -> 'vtkVector_IfLi2EE': ... + def GetWidth(self) -> float: ... + def GetX(self) -> float: ... + def GetY(self) -> float: ... + def Intersect(self, other:'vtkRect_IfE') -> bool: ... + def IntersectsWith(self, rect:'vtkRect_IfE') -> bool: ... + def MoveTo(self, x:float, y:float) -> None: ... + def Set(self, x:float, y:float, width:float, height:float) -> None: ... + def SetHeight(self, height:float) -> None: ... + def SetWidth(self, width:float) -> None: ... + def SetX(self, x:float) -> None: ... + def SetY(self, y:float) -> None: ... + +class vtkVector_IiLi4EE(vtkmodules.vtkCommonMath.vtkTuple_IiLi4EE): + def Dot(self, other:'vtkVector_IiLi4EE') -> int: ... + def Norm(self) -> float: ... + def Normalize(self) -> float: ... + def Normalized(self) -> 'vtkVector_IiLi4EE': ... + def SquaredNorm(self) -> int: ... + +class vtkRect_IiE(vtkVector_IiLi4EE): + bottom:'getset_descriptor' + bottom_left:'getset_descriptor' + bottom_right:'getset_descriptor' + center:'getset_descriptor' + height:'getset_descriptor' + left:'getset_descriptor' + right:'getset_descriptor' + top:'getset_descriptor' + top_left:'getset_descriptor' + top_right:'getset_descriptor' + width:'getset_descriptor' + x:'getset_descriptor' + y:'getset_descriptor' + @overload + def AddPoint(self, point:Sequence[int]) -> None: ... + @overload + def AddPoint(self, x:int, y:int) -> None: ... + def AddRect(self, rect:'vtkRect_IiE') -> None: ... + def GetBottom(self) -> int: ... + def GetBottomLeft(self) -> 'vtkVector2_IiE': ... + def GetBottomRight(self) -> 'vtkVector_IiLi2EE': ... + def GetCenter(self) -> 'vtkVector2d': ... + def GetHeight(self) -> int: ... + def GetLeft(self) -> int: ... + def GetRight(self) -> int: ... + def GetTop(self) -> int: ... + def GetTopLeft(self) -> 'vtkVector_IiLi2EE': ... + def GetTopRight(self) -> 'vtkVector_IiLi2EE': ... + def GetWidth(self) -> int: ... + def GetX(self) -> int: ... + def GetY(self) -> int: ... + def Intersect(self, other:'vtkRect_IiE') -> bool: ... + def IntersectsWith(self, rect:'vtkRect_IiE') -> bool: ... + def MoveTo(self, x:int, y:int) -> None: ... + def Set(self, x:int, y:int, width:int, height:int) -> None: ... + def SetHeight(self, height:int) -> None: ... + def SetWidth(self, width:int) -> None: ... + def SetX(self, x:int) -> None: ... + def SetY(self, y:int) -> None: ... + +class vtkRectd(vtkRect_IdE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x:float, y:float, width:float, height:float) -> None: ... + @overload + def __init__(self, init:Sequence[float]) -> None: ... + @overload + def __init__(self, __a:'vtkRectd') -> None: ... + +class vtkRectf(vtkRect_IfE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x:float, y:float, width:float, height:float) -> None: ... + @overload + def __init__(self, init:Sequence[float]) -> None: ... + @overload + def __init__(self, __a:'vtkRectf') -> None: ... + +class vtkRecti(vtkRect_IiE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x:int, y:int, width:int, height:int) -> None: ... + @overload + def __init__(self, init:Sequence[int]) -> None: ... + @overload + def __init__(self, __a:'vtkRecti') -> None: ... + +class vtkRectilinearGrid(vtkDataSet): + actual_memory_size:'getset_descriptor' + cell_types_array:'getset_descriptor' + cells:'getset_descriptor' + data_description:'getset_descriptor' + data_dimension:'getset_descriptor' + data_object_type:'getset_descriptor' + dimensions:'getset_descriptor' + extent:'getset_descriptor' + extent_type:'getset_descriptor' + max_cell_size:'getset_descriptor' + max_spatial_dimension:'getset_descriptor' + min_spatial_dimension:'getset_descriptor' + number_of_cells:'getset_descriptor' + number_of_points:'getset_descriptor' + number_of_scalar_components:'getset_descriptor' + points:'getset_descriptor' + scalar_type:'getset_descriptor' + x_coordinates:'getset_descriptor' + y_coordinates:'getset_descriptor' + z_coordinates:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def BlankCell(self, ptId:int) -> None: ... + @overload + def BlankCell(self, i:int, j:int, k:int) -> None: ... + @overload + def BlankPoint(self, ptId:int) -> None: ... + @overload + def BlankPoint(self, i:int, j:int, k:int) -> None: ... + def ComputeBounds(self) -> None: ... + def ComputeCellId(self, ijk:MutableSequence[int]) -> int: ... + def ComputePointId(self, ijk:MutableSequence[int]) -> int: ... + def ComputeStructuredCoordinates(self, x:MutableSequence[float], ijk:MutableSequence[int], pcoords:MutableSequence[float]) -> int: ... + def CopyStructure(self, ds:'vtkDataSet') -> None: ... + def Crop(self, updateExtent:Sequence[int]) -> None: ... + def DeepCopy(self, src:'vtkDataObject') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkRectilinearGrid': ... + def FindAndGetCell(self, x:MutableSequence[float], cell:'vtkCell', cellId:int, tol2:float, subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> 'vtkCell': ... + @overload + def FindCell(self, x:MutableSequence[float], cell:'vtkCell', cellId:int, tol2:float, subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + @overload + def FindCell(self, x:MutableSequence[float], cell:'vtkCell', gencell:'vtkGenericCell', cellId:int, tol2:float, subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + def FindPoint(self, x:MutableSequence[float]) -> int: ... + def GetActualMemorySize(self) -> int: ... + @overload + def GetCell(self, cellId:int) -> 'vtkCell': ... + @overload + def GetCell(self, i:int, j:int, k:int) -> 'vtkCell': ... + @overload + def GetCell(self, cellId:int, cell:'vtkGenericCell') -> None: ... + def GetCellBounds(self, cellId:int, bounds:MutableSequence[float]) -> None: ... + def GetCellDims(self, cellDims:MutableSequence[int]) -> None: ... + @overload + def GetCellNeighbors(self, cellId:int, ptIds:'vtkIdList', cellIds:'vtkIdList') -> None: ... + @overload + def GetCellNeighbors(self, cellId:int, ptIds:'vtkIdList', cellIds:'vtkIdList', seedLoc:MutableSequence[int]) -> None: ... + @overload + def GetCellPoints(self, cellId:int, npts:int, pts:Sequence[int], ptIds:'vtkIdList') -> None: ... + @overload + def GetCellPoints(self, cellId:int, ptIds:'vtkIdList') -> None: ... + def GetCellSize(self, cellId:int) -> int: ... + def GetCellType(self, cellId:int) -> int: ... + def GetCellTypesArray(self) -> 'vtkConstantArray_IiE': ... + def GetCells(self) -> 'vtkStructuredCellArray': ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkRectilinearGrid': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkRectilinearGrid': ... + def GetDataDescription(self) -> int: ... + def GetDataDimension(self) -> int: ... + def GetDataObjectType(self) -> int: ... + def GetDimensions(self) -> Tuple[int, int, int]: ... + def GetExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetExtentType(self) -> int: ... + def GetMaxCellSize(self) -> int: ... + def GetMaxSpatialDimension(self) -> int: ... + def GetMinSpatialDimension(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + @overload + @staticmethod + def GetNumberOfScalarComponents(meta_data:'vtkInformation') -> int: ... + @overload + def GetNumberOfScalarComponents(self) -> int: ... + @overload + def GetPoint(self, ptId:int) -> Tuple[float, float, float]: ... + @overload + def GetPoint(self, id:int, x:MutableSequence[float]) -> None: ... + @overload + def GetPoint(self, i:int, j:int, k:int, p:MutableSequence[float]) -> None: ... + def GetPointCells(self, ptId:int, cellIds:'vtkIdList') -> None: ... + def GetPoints(self) -> 'vtkPoints': ... + @overload + @staticmethod + def GetScalarType(meta_data:'vtkInformation') -> int: ... + @overload + def GetScalarType(self) -> int: ... + def GetScalarTypeAsString(self) -> str: ... + def GetXCoordinates(self) -> 'vtkDataArray': ... + def GetYCoordinates(self) -> 'vtkDataArray': ... + def GetZCoordinates(self) -> 'vtkDataArray': ... + def HasAnyBlankCells(self) -> bool: ... + def HasAnyBlankPoints(self) -> bool: ... + @staticmethod + def HasNumberOfScalarComponents(meta_data:'vtkInformation') -> bool: ... + @staticmethod + def HasScalarType(meta_data:'vtkInformation') -> bool: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsCellVisible(self, cellId:int) -> int: ... + def IsPointVisible(self, ptId:int) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRectilinearGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRectilinearGrid': ... + @overload + def SetDimensions(self, i:int, j:int, k:int) -> None: ... + @overload + def SetDimensions(self, dim:Sequence[int]) -> None: ... + @overload + def SetExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def SetExtent(self, xMin:int, xMax:int, yMin:int, yMax:int, zMin:int, zMax:int) -> None: ... + @staticmethod + def SetNumberOfScalarComponents(n:int, meta_data:'vtkInformation') -> None: ... + @staticmethod + def SetScalarType(__a:int, meta_data:'vtkInformation') -> None: ... + def SetXCoordinates(self, __a:'vtkDataArray') -> None: ... + def SetYCoordinates(self, __a:'vtkDataArray') -> None: ... + def SetZCoordinates(self, __a:'vtkDataArray') -> None: ... + def ShallowCopy(self, src:'vtkDataObject') -> None: ... + @overload + def UnBlankCell(self, ptId:int) -> None: ... + @overload + def UnBlankCell(self, i:int, j:int, k:int) -> None: ... + @overload + def UnBlankPoint(self, ptId:int) -> None: ... + @overload + def UnBlankPoint(self, i:int, j:int, k:int) -> None: ... + +class vtkReebGraph(vtkMutableDirectedGraph): + ERR_INCORRECT_FIELD:int + ERR_NOT_A_SIMPLICIAL_MESH:int + ERR_NO_SUCH_FIELD:int + data_object_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def Build(self, mesh:'vtkPolyData', scalarField:'vtkDataArray') -> int: ... + @overload + def Build(self, mesh:'vtkUnstructuredGrid', scalarField:'vtkDataArray') -> int: ... + @overload + def Build(self, mesh:'vtkPolyData', scalarFieldId:int) -> int: ... + @overload + def Build(self, mesh:'vtkUnstructuredGrid', scalarFieldId:int) -> int: ... + @overload + def Build(self, mesh:'vtkPolyData', scalarFieldName:str) -> int: ... + @overload + def Build(self, mesh:'vtkUnstructuredGrid', scalarFieldName:str) -> int: ... + def CloseStream(self) -> None: ... + def DeepCopy(self, src:'vtkDataObject') -> None: ... + def GetDataObjectType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkReebGraph': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkReebGraph': ... + def Set(self, g:'vtkMutableDirectedGraph') -> None: ... + def Simplify(self, simplificationThreshold:float, simplificationMetric:'vtkReebGraphSimplificationMetric') -> int: ... + def StreamTetrahedron(self, vertex0Id:int, scalar0:float, vertex1Id:int, scalar1:float, vertex2Id:int, scalar2:float, vertex3Id:int, scalar3:float) -> int: ... + def StreamTriangle(self, vertex0Id:int, scalar0:float, vertex1Id:int, scalar1:float, vertex2Id:int, scalar2:float) -> int: ... + +class vtkReebGraphSimplificationMetric(vtkmodules.vtkCommonCore.vtkObject): + lower_bound:'getset_descriptor' + upper_bound:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeMetric(self, mesh:'vtkDataSet', field:'vtkDataArray', startCriticalPoint:int, vertexList:'vtkAbstractArray', endCriticalPoint:int) -> float: ... + def GetLowerBound(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUpperBound(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkReebGraphSimplificationMetric': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkReebGraphSimplificationMetric': ... + def SetLowerBound(self, _arg:float) -> None: ... + def SetUpperBound(self, _arg:float) -> None: ... + +class vtkSelection(vtkDataObject): + data_object_type:'getset_descriptor' + expression:'getset_descriptor' + m_time:'getset_descriptor' + number_of_nodes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddNode(self, __a:'vtkSelectionNode') -> str: ... + def DeepCopy(self, src:'vtkDataObject') -> None: ... + def Dump(self) -> None: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkSelection': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkSelection': ... + def GetDataObjectType(self) -> int: ... + def GetExpression(self) -> str: ... + def GetMTime(self) -> int: ... + @overload + def GetNode(self, idx:int) -> 'vtkSelectionNode': ... + @overload + def GetNode(self, name:str) -> 'vtkSelectionNode': ... + def GetNodeNameAtIndex(self, idx:int) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfNodes(self) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSelection': ... + def RemoveAllNodes(self) -> None: ... + @overload + def RemoveNode(self, idx:int) -> None: ... + @overload + def RemoveNode(self, name:str) -> None: ... + @overload + def RemoveNode(self, __a:'vtkSelectionNode') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSelection': ... + def SetExpression(self, _arg:str) -> None: ... + def SetNode(self, name:str, __b:'vtkSelectionNode') -> None: ... + def ShallowCopy(self, src:'vtkDataObject') -> None: ... + @overload + def Subtract(self, selection:'vtkSelection') -> None: ... + @overload + def Subtract(self, node:'vtkSelectionNode') -> None: ... + @overload + def Union(self, selection:'vtkSelection') -> None: ... + @overload + def Union(self, node:'vtkSelectionNode') -> None: ... + +class vtkSelectionNode(vtkmodules.vtkCommonCore.vtkObject): + class SelectionContent(int): ... + class SelectionField(int): ... + BLOCKS:'SelectionContent' + BLOCK_SELECTORS:'SelectionContent' + CELL:'SelectionField' + EDGE:'SelectionField' + FIELD:'SelectionField' + FRUSTUM:'SelectionContent' + GLOBALIDS:'SelectionContent' + INDICES:'SelectionContent' + LOCATIONS:'SelectionContent' + NUM_CONTENT_TYPES:'SelectionContent' + NUM_FIELD_TYPES:'SelectionField' + PEDIGREEIDS:'SelectionContent' + POINT:'SelectionField' + QUERY:'SelectionContent' + ROW:'SelectionField' + THRESHOLDS:'SelectionContent' + USER:'SelectionContent' + VALUES:'SelectionContent' + VERTEX:'SelectionField' + content_type:'getset_descriptor' + field_type:'getset_descriptor' + m_time:'getset_descriptor' + properties:'getset_descriptor' + query_string:'getset_descriptor' + selection_data:'getset_descriptor' + selection_list:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ASSEMBLY_NAME() -> 'vtkInformationStringKey': ... + @staticmethod + def CELLGRID_CELL_TYPE_INDEX() -> 'vtkInformationIntegerKey': ... + @staticmethod + def CELLGRID_SOURCE_SPECIFICATION_INDEX() -> 'vtkInformationIntegerKey': ... + @staticmethod + def COMPONENT_NUMBER() -> 'vtkInformationIntegerKey': ... + @staticmethod + def COMPOSITE_INDEX() -> 'vtkInformationIntegerKey': ... + @staticmethod + def CONNECTED_LAYERS() -> 'vtkInformationIntegerKey': ... + @staticmethod + def CONNECTED_LAYERS_REMOVE_INTERMEDIATE_LAYERS() -> 'vtkInformationIntegerKey': ... + @staticmethod + def CONNECTED_LAYERS_REMOVE_SEED() -> 'vtkInformationIntegerKey': ... + @staticmethod + def CONTAINING_CELLS() -> 'vtkInformationIntegerKey': ... + @staticmethod + def CONTENT_TYPE() -> 'vtkInformationIntegerKey': ... + @staticmethod + def ConvertAttributeTypeToSelectionField(val:int) -> int: ... + @staticmethod + def ConvertSelectionFieldToAttributeType(val:int) -> int: ... + def DeepCopy(self, src:'vtkSelectionNode') -> None: ... + @staticmethod + def EPSILON() -> 'vtkInformationDoubleKey': ... + def EqualProperties(self, other:'vtkSelectionNode', fullcompare:bool=True) -> bool: ... + @staticmethod + def FIELD_TYPE() -> 'vtkInformationIntegerKey': ... + def GetContentType(self) -> int: ... + @staticmethod + def GetContentTypeAsString(type:int) -> str: ... + def GetFieldType(self) -> int: ... + @staticmethod + def GetFieldTypeAsString(type:int) -> str: ... + @staticmethod + def GetFieldTypeFromString(type:str) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProperties(self) -> 'vtkInformation': ... + def GetQueryString(self) -> str: ... + def GetSelectionData(self) -> 'vtkDataSetAttributes': ... + def GetSelectionList(self) -> 'vtkAbstractArray': ... + @staticmethod + def HIERARCHICAL_INDEX() -> 'vtkInformationIntegerKey': ... + @staticmethod + def HIERARCHICAL_LEVEL() -> 'vtkInformationIntegerKey': ... + @staticmethod + def INVERSE() -> 'vtkInformationIntegerKey': ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSelectionNode': ... + @staticmethod + def PIXEL_COUNT() -> 'vtkInformationIntegerKey': ... + @staticmethod + def PROCESS_ID() -> 'vtkInformationIntegerKey': ... + @staticmethod + def PROP() -> 'vtkInformationObjectBaseKey': ... + @staticmethod + def PROP_ID() -> 'vtkInformationIntegerKey': ... + @staticmethod + def SELECTORS() -> 'vtkInformationStringVectorKey': ... + @staticmethod + def SOURCE() -> 'vtkInformationObjectBaseKey': ... + @staticmethod + def SOURCE_ID() -> 'vtkInformationIntegerKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSelectionNode': ... + def SetContentType(self, type:int) -> None: ... + def SetFieldType(self, type:int) -> None: ... + def SetQueryString(self, _arg:str) -> None: ... + def SetSelectionData(self, data:'vtkDataSetAttributes') -> None: ... + def SetSelectionList(self, __a:'vtkAbstractArray') -> None: ... + def ShallowCopy(self, src:'vtkSelectionNode') -> None: ... + def SubtractSelectionList(self, other:'vtkSelectionNode') -> None: ... + def UnionSelectionList(self, other:'vtkSelectionNode') -> None: ... + @staticmethod + def ZBUFFER_VALUE() -> 'vtkInformationDoubleKey': ... + +class vtkSimpleCellTessellator(vtkGenericCellTessellator): + fixed_subdivisions:'getset_descriptor' + generic_cell:'getset_descriptor' + max_adaptive_subdivisions:'getset_descriptor' + max_subdivision_level:'getset_descriptor' + subdivision_levels:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFixedSubdivisions(self) -> int: ... + def GetGenericCell(self) -> 'vtkGenericAdaptorCell': ... + def GetMaxAdaptiveSubdivisions(self) -> int: ... + def GetMaxSubdivisionLevel(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, ds:'vtkGenericDataSet') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSimpleCellTessellator': ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSimpleCellTessellator': ... + def SetFixedSubdivisions(self, level:int) -> None: ... + def SetMaxSubdivisionLevel(self, level:int) -> None: ... + def SetSubdivisionLevels(self, fixed:int, maxLevel:int) -> None: ... + def Tessellate(self, cell:'vtkGenericAdaptorCell', att:'vtkGenericAttributeCollection', points:'vtkDoubleArray', cellArray:'vtkCellArray', internalPd:'vtkPointData') -> None: ... + def TessellateFace(self, cell:'vtkGenericAdaptorCell', att:'vtkGenericAttributeCollection', index:int, points:'vtkDoubleArray', cellArray:'vtkCellArray', internalPd:'vtkPointData') -> None: ... + def Triangulate(self, cell:'vtkGenericAdaptorCell', att:'vtkGenericAttributeCollection', points:'vtkDoubleArray', cellArray:'vtkCellArray', internalPd:'vtkPointData') -> None: ... + +class vtkSmoothErrorMetric(vtkGenericSubdivisionErrorMetric): + angle_tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAngleTolerance(self) -> float: ... + def GetError(self, leftPoint:MutableSequence[float], midPoint:MutableSequence[float], rightPoint:MutableSequence[float], alpha:float) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSmoothErrorMetric': ... + def RequiresEdgeSubdivision(self, leftPoint:MutableSequence[float], midPoint:MutableSequence[float], rightPoint:MutableSequence[float], alpha:float) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSmoothErrorMetric': ... + def SetAngleTolerance(self, value:float) -> None: ... + +class vtkSortFieldData(vtkmodules.vtkCommonCore.vtkSortDataArray): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSortFieldData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSortFieldData': ... + @overload + @staticmethod + def Sort(fd:'vtkFieldData', arrayName:str, k:int, returnIndices:int) -> Pointer: ... + @overload + @staticmethod + def Sort(fd:'vtkFieldData', arrayName:str, k:int, returnIndices:int, dir:int) -> Pointer: ... + +class vtkSphere(vtkImplicitFunction): + center:'getset_descriptor' + radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + @staticmethod + def ComputeBoundingSphere(pts:MutableSequence[float], numPts:int, sphere:MutableSequence[float], hints:MutableSequence[int]) -> None: ... + @overload + @staticmethod + def ComputeBoundingSphere(pts:MutableSequence[float], numPts:int, sphere:MutableSequence[float]) -> None: ... + @staticmethod + def Evaluate(center:MutableSequence[float], R:float, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], n:MutableSequence[float]) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadius(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSphere': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSphere': ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + +class vtkSpheres(vtkImplicitFunction): + centers:'getset_descriptor' + radii:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], n:MutableSequence[float]) -> None: ... + def GetCenters(self) -> 'vtkPoints': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSpheres(self) -> int: ... + def GetRadii(self) -> 'vtkDataArray': ... + @overload + def GetSphere(self, i:int) -> 'vtkSphere': ... + @overload + def GetSphere(self, i:int, sphere:'vtkSphere') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSpheres': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSpheres': ... + def SetCenters(self, __a:'vtkPoints') -> None: ... + def SetRadii(self, radii:'vtkDataArray') -> None: ... + +class vtkSphericalPointIterator(vtkmodules.vtkCommonCore.vtkObject): + class AxesType(int): ... + class SortType(int): ... + CUBE_AXES:'AxesType' + CUBE_OCTAHEDRON_AXES:'AxesType' + DODECAHEDRON_AXES:'AxesType' + ICOSAHEDRON_AXES:'AxesType' + OCTAHEDRON_AXES:'AxesType' + SORT_ASCENDING:'SortType' + SORT_DESCENDING:'SortType' + SORT_NONE:'SortType' + XY_CCW_AXES:'AxesType' + XY_CW_AXES:'AxesType' + XY_SQUARE_AXES:'AxesType' + axes:'getset_descriptor' + current_point:'getset_descriptor' + data_set:'getset_descriptor' + number_of_axes:'getset_descriptor' + sorting:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self, pd:'vtkPolyData') -> None: ... + def GetAxes(self) -> 'vtkDoubleArray': ... + def GetAxisPoints(self, axis:int, npts:int, pts:Sequence[int]) -> None: ... + @overload + def GetCurrentPoint(self, ptId:int, x:MutableSequence[float]) -> None: ... + @overload + def GetCurrentPoint(self) -> int: ... + def GetDataSet(self) -> 'vtkDataSet': ... + def GetNumberOfAxes(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoint(self, axis:int, ptIdx:int) -> int: ... + def GetSorting(self) -> int: ... + def GetSortingMaxValue(self) -> int: ... + def GetSortingMinValue(self) -> int: ... + def GoToFirstPoint(self) -> None: ... + def GoToNextPoint(self) -> None: ... + @overload + def Initialize(self, center:MutableSequence[float], neighborhood:'vtkIdList') -> bool: ... + @overload + def Initialize(self, center:MutableSequence[float], numNei:int, neighborhood:MutableSequence[int]) -> bool: ... + @overload + def Initialize(self, center:MutableSequence[float]) -> bool: ... + def IsA(self, type:str) -> int: ... + def IsDoneWithTraversal(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSphericalPointIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSphericalPointIterator': ... + @overload + def SetAxes(self, _arg:'vtkDoubleArray') -> None: ... + @overload + def SetAxes(self, axesType:int, resolution:int=6) -> None: ... + def SetDataSet(self, _arg:'vtkDataSet') -> None: ... + def SetSortTypeToAscending(self) -> None: ... + def SetSortTypeToDescending(self) -> None: ... + def SetSortTypeToNone(self) -> None: ... + def SetSorting(self, _arg:int) -> None: ... + +class vtkSpline(vtkmodules.vtkCommonCore.vtkObject): + clamp_value:'getset_descriptor' + closed:'getset_descriptor' + left_constraint:'getset_descriptor' + left_value:'getset_descriptor' + m_time:'getset_descriptor' + number_of_points:'getset_descriptor' + parametric_range:'getset_descriptor' + right_constraint:'getset_descriptor' + right_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddPoint(self, t:float, x:float) -> None: ... + def ClampValueOff(self) -> None: ... + def ClampValueOn(self) -> None: ... + def ClosedOff(self) -> None: ... + def ClosedOn(self) -> None: ... + def Compute(self) -> None: ... + def DeepCopy(self, s:'vtkSpline') -> None: ... + def Evaluate(self, t:float) -> float: ... + def FillFromDataPointer(self, nb:int, data:MutableSequence[float]) -> None: ... + def GetClampValue(self) -> int: ... + def GetClosed(self) -> int: ... + def GetLeftConstraint(self) -> int: ... + def GetLeftConstraintMaxValue(self) -> int: ... + def GetLeftConstraintMinValue(self) -> int: ... + def GetLeftValue(self) -> float: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def GetParametricRange(self, tRange:MutableSequence[float]) -> None: ... + def GetRightConstraint(self) -> int: ... + def GetRightConstraintMaxValue(self) -> int: ... + def GetRightConstraintMinValue(self) -> int: ... + def GetRightValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSpline': ... + def RemoveAllPoints(self) -> None: ... + def RemovePoint(self, t:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSpline': ... + def SetClampValue(self, _arg:int) -> None: ... + def SetClosed(self, _arg:int) -> None: ... + def SetLeftConstraint(self, _arg:int) -> None: ... + def SetLeftValue(self, _arg:float) -> None: ... + @overload + def SetParametricRange(self, tMin:float, tMax:float) -> None: ... + @overload + def SetParametricRange(self, tRange:MutableSequence[float]) -> None: ... + def SetRightConstraint(self, _arg:int) -> None: ... + def SetRightValue(self, _arg:float) -> None: ... + +class vtkStaticCellLinks(vtkAbstractCellLinks): + actual_memory_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildLinks(self) -> None: ... + def DeepCopy(self, src:'vtkAbstractCellLinks') -> None: ... + def GetActualMemorySize(self) -> int: ... + def GetCells(self, ptId:int) -> Pointer: ... + def GetNcells(self, ptId:int) -> int: ... + def GetNumberOfCells(self, ptId:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStaticCellLinks': ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStaticCellLinks': ... + def SelectCells(self, minMaxDegree:MutableSequence[int], cellSelection:MutableSequence[int]) -> None: ... + def ShallowCopy(self, src:'vtkAbstractCellLinks') -> None: ... + def Squeeze(self) -> None: ... + +class vtkStaticCellLocator(vtkAbstractCellLocator): + divisions:'getset_descriptor' + large_ids:'getset_descriptor' + max_number_of_buckets:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildLocator(self) -> None: ... + @overload + def FindCell(self, x:MutableSequence[float], tol2:float, GenCell:'vtkGenericCell', subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + @overload + def FindCell(self, x:MutableSequence[float]) -> int: ... + @overload + def FindCell(self, x:MutableSequence[float], tol2:float, GenCell:'vtkGenericCell', pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + def FindCellsAlongLine(self, p1:Sequence[float], p2:Sequence[float], tolerance:float, cellsIds:'vtkIdList') -> None: ... + def FindCellsAlongPlane(self, o:Sequence[float], n:Sequence[float], tolerance:float, cells:'vtkIdList') -> None: ... + def FindCellsWithinBounds(self, bbox:MutableSequence[float], cells:'vtkIdList') -> None: ... + @overload + def FindClosestPoint(self, x:Sequence[float], closestPoint:MutableSequence[float], cell:'vtkGenericCell', cellId:int, subId:int, dist2:float) -> None: ... + @overload + def FindClosestPoint(self, x:Sequence[float], closestPoint:MutableSequence[float], cellId:int, subId:int, dist2:float) -> None: ... + @overload + def FindClosestPointWithinRadius(self, x:MutableSequence[float], radius:float, closestPoint:MutableSequence[float], cell:'vtkGenericCell', cellId:int, subId:int, dist2:float, inside:int) -> int: ... + @overload + def FindClosestPointWithinRadius(self, x:MutableSequence[float], radius:float, closestPoint:MutableSequence[float], cellId:int, subId:int, dist2:float) -> int: ... + @overload + def FindClosestPointWithinRadius(self, x:MutableSequence[float], radius:float, closestPoint:MutableSequence[float], cell:'vtkGenericCell', cellId:int, subId:int, dist2:float) -> int: ... + def ForceBuildLocator(self) -> None: ... + def FreeSearchStructure(self) -> None: ... + def GenerateRepresentation(self, level:int, pd:'vtkPolyData') -> None: ... + def GetDivisions(self) -> Tuple[int, int, int]: ... + def GetLargeIds(self) -> bool: ... + def GetMaxNumberOfBuckets(self) -> int: ... + def GetMaxNumberOfBucketsMaxValue(self) -> int: ... + def GetMaxNumberOfBucketsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InsideCellBounds(self, x:MutableSequence[float], cellId:int) -> bool: ... + @overload + def IntersectWithLine(self, a0:Sequence[float], a1:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int, cellId:int, cell:'vtkGenericCell') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, points:'vtkPoints', cellIds:'vtkIdList', cell:'vtkGenericCell') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int, cellId:int) -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], points:'vtkPoints', cellIds:'vtkIdList') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, points:'vtkPoints', cellIds:'vtkIdList') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStaticCellLocator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStaticCellLocator': ... + @overload + def SetDivisions(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetDivisions(self, _arg:Sequence[int]) -> None: ... + def SetMaxNumberOfBuckets(self, _arg:int) -> None: ... + def ShallowCopy(self, locator:'vtkAbstractCellLocator') -> None: ... + +class vtkStaticPointLocator(vtkAbstractPointLocator): + class TraversalOrderType(int): ... + BIN_ORDER:'TraversalOrderType' + POINT_ORDER:'TraversalOrderType' + bounds:'getset_descriptor' + divisions:'getset_descriptor' + large_ids:'getset_descriptor' + max_number_of_buckets:'getset_descriptor' + number_of_points_per_bucket:'getset_descriptor' + traversal_order:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def BuildLocator(self) -> None: ... + @overload + def BuildLocator(self, inBounds:Sequence[float]) -> None: ... + @overload + def FindClosestNPoints(self, N:int, x:Sequence[float], result:'vtkIdList') -> None: ... + @overload + def FindClosestNPoints(self, N:int, x:float, y:float, z:float, result:'vtkIdList') -> None: ... + @overload + def FindClosestPoint(self, x:Sequence[float]) -> int: ... + @overload + def FindClosestPoint(self, x:float, y:float, z:float) -> int: ... + @overload + def FindClosestPointWithinRadius(self, radius:float, x:Sequence[float], dist2:float) -> int: ... + @overload + def FindClosestPointWithinRadius(self, radius:float, x:Sequence[float], inputDataLength:float, dist2:float) -> int: ... + @overload + def FindPointsWithinRadius(self, R:float, x:Sequence[float], result:'vtkIdList') -> None: ... + @overload + def FindPointsWithinRadius(self, R:float, x:float, y:float, z:float, result:'vtkIdList') -> None: ... + def ForceBuildLocator(self) -> None: ... + def FreeSearchStructure(self) -> None: ... + def GenerateRepresentation(self, level:int, pd:'vtkPolyData') -> None: ... + @overload + def GetBounds(self) -> Pointer: ... + @overload + def GetBounds(self, __a:MutableSequence[float]) -> None: ... + def GetBucketIds(self, bNum:int, bList:'vtkIdList') -> None: ... + def GetDivisions(self) -> Tuple[int, int, int]: ... + def GetLargeIds(self) -> bool: ... + def GetMaxNumberOfBuckets(self) -> int: ... + def GetMaxNumberOfBucketsMaxValue(self) -> int: ... + def GetMaxNumberOfBucketsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPointsInBucket(self, bNum:int) -> int: ... + def GetNumberOfPointsPerBucket(self) -> int: ... + def GetNumberOfPointsPerBucketMaxValue(self) -> int: ... + def GetNumberOfPointsPerBucketMinValue(self) -> int: ... + @overload + def GetSpacing(self) -> Pointer: ... + @overload + def GetSpacing(self, spacing:MutableSequence[float]) -> None: ... + def GetTraversalOrder(self) -> int: ... + def GetTraversalOrderMaxValue(self) -> int: ... + def GetTraversalOrderMinValue(self) -> int: ... + def Initialize(self) -> None: ... + def IntersectWithLine(self, a0:MutableSequence[float], a1:MutableSequence[float], tol:float, t:float, lineX:MutableSequence[float], ptX:MutableSequence[float], ptId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergePoints(self, tol:float, mergeMap:MutableSequence[int]) -> None: ... + def MergePointsWithData(self, data:'vtkDataArray', mergeMap:MutableSequence[int]) -> None: ... + def NewInstance(self) -> 'vtkStaticPointLocator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStaticPointLocator': ... + @overload + def SetDivisions(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetDivisions(self, _arg:Sequence[int]) -> None: ... + def SetMaxNumberOfBuckets(self, _arg:int) -> None: ... + def SetNumberOfPointsPerBucket(self, _arg:int) -> None: ... + def SetTraversalOrder(self, _arg:int) -> None: ... + def SetTraversalOrderToBinOrder(self) -> None: ... + def SetTraversalOrderToPointOrder(self) -> None: ... + +class vtkStaticPointLocator2D(vtkAbstractPointLocator): + bounds:'getset_descriptor' + divisions:'getset_descriptor' + large_ids:'getset_descriptor' + max_number_of_buckets:'getset_descriptor' + number_of_points_per_bucket:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildLocator(self) -> None: ... + def FindCloseNBoundedPoints(self, N:int, x:Sequence[float], result:'vtkIdList') -> float: ... + @overload + def FindClosestNPoints(self, N:int, x:Sequence[float], result:'vtkIdList') -> None: ... + @overload + def FindClosestNPoints(self, N:int, x:float, y:float, z:float, result:'vtkIdList') -> None: ... + @overload + def FindClosestPoint(self, x:Sequence[float]) -> int: ... + @overload + def FindClosestPoint(self, x:float, y:float, z:float) -> int: ... + @overload + def FindClosestPointWithinRadius(self, radius:float, x:Sequence[float], dist2:float) -> int: ... + @overload + def FindClosestPointWithinRadius(self, radius:float, x:Sequence[float], inputDataLength:float, dist2:float) -> int: ... + @overload + def FindPointsWithinRadius(self, R:float, x:Sequence[float], result:'vtkIdList') -> None: ... + @overload + def FindPointsWithinRadius(self, R:float, x:float, y:float, z:float, result:'vtkIdList') -> None: ... + def ForceBuildLocator(self) -> None: ... + def FreeSearchStructure(self) -> None: ... + def GenerateRepresentation(self, level:int, pd:'vtkPolyData') -> None: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetBounds(self) -> Pointer: ... + def GetBucketIds(self, bNum:int, bList:'vtkIdList') -> None: ... + def GetBucketIndex(self, x:Sequence[float]) -> int: ... + def GetBucketIndices(self, x:Sequence[float], ij:MutableSequence[int]) -> None: ... + def GetDivisions(self) -> Tuple[int, int]: ... + def GetLargeIds(self) -> bool: ... + def GetMaxNumberOfBuckets(self) -> int: ... + def GetMaxNumberOfBucketsMaxValue(self) -> int: ... + def GetMaxNumberOfBucketsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPointsInBucket(self, bNum:int) -> int: ... + def GetNumberOfPointsPerBucket(self) -> int: ... + def GetNumberOfPointsPerBucketMaxValue(self) -> int: ... + def GetNumberOfPointsPerBucketMinValue(self) -> int: ... + @overload + def GetSpacing(self) -> Pointer: ... + @overload + def GetSpacing(self, spacing:MutableSequence[float]) -> None: ... + def Initialize(self) -> None: ... + def IntersectWithLine(self, a0:MutableSequence[float], a1:MutableSequence[float], tol:float, t:float, lineX:MutableSequence[float], ptX:MutableSequence[float], ptId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergePoints(self, tol:float, mergeMap:MutableSequence[int]) -> None: ... + def NewInstance(self) -> 'vtkStaticPointLocator2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStaticPointLocator2D': ... + @overload + def SetDivisions(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetDivisions(self, _arg:Sequence[int]) -> None: ... + def SetMaxNumberOfBuckets(self, _arg:int) -> None: ... + def SetNumberOfPointsPerBucket(self, _arg:int) -> None: ... + +class vtkStructuredCellArray(vtkAbstractCellArray): + max_cell_size:'getset_descriptor' + number_of_cells:'getset_descriptor' + number_of_connectivity_ids:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self, ca:'vtkAbstractCellArray') -> None: ... + @overload + def GetCellAtId(self, cellId:int, cellSize:int, cellPoints:Sequence[int], ptIds:'vtkIdList') -> None: ... + @overload + def GetCellAtId(self, cellId:int, ptIds:'vtkIdList') -> None: ... + @overload + def GetCellAtId(self, cellId:int, cellSize:int, cellPoints:MutableSequence[int]) -> None: ... + @overload + def GetCellAtId(self, ijk:MutableSequence[int], ptIds:'vtkIdList') -> None: ... + @overload + def GetCellAtId(self, ijk:MutableSequence[int], cellSize:int, cellPoints:MutableSequence[int]) -> None: ... + def GetCellSize(self, cellId:int) -> int: ... + def GetMaxCellSize(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfConnectivityIds(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfOffsets(self) -> int: ... + def GetOffset(self, cellId:int) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsHomogeneous(self) -> int: ... + def IsStorageShareable(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStructuredCellArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStructuredCellArray': ... + def SetData(self, extent:MutableSequence[int], usePixelVoxelOrientation:bool) -> None: ... + def ShallowCopy(self, ca:'vtkAbstractCellArray') -> None: ... + +class vtkStructuredData(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ComputeCellId(dim:Sequence[int], ijk:Sequence[int], dataDescription:int=...) -> int: ... + @staticmethod + def ComputeCellIdForExtent(extent:Sequence[int], ijk:Sequence[int], dataDescription:int=...) -> int: ... + @staticmethod + def ComputeCellStructuredCoords(cellId:int, dim:Sequence[int], ijk:MutableSequence[int], dataDescription:int=...) -> None: ... + @staticmethod + def ComputeCellStructuredCoordsForExtent(cellIdx:int, ext:Sequence[int], ijk:MutableSequence[int], dataDescription:int=...) -> None: ... + @staticmethod + def ComputeCellStructuredMinMaxCoords(cellId:int, dim:Sequence[int], ijkMin:MutableSequence[int], ijkMax:MutableSequence[int], dataDescription:int=...) -> None: ... + @staticmethod + def ComputePointId(dim:Sequence[int], ijk:Sequence[int], dataDescription:int=...) -> int: ... + @staticmethod + def ComputePointIdForExtent(extent:Sequence[int], ijk:Sequence[int], dataDescription:int=...) -> int: ... + @staticmethod + def ComputePointStructuredCoords(ptId:int, dim:Sequence[int], ijk:MutableSequence[int], dataDescription:int=...) -> None: ... + @staticmethod + def ComputePointStructuredCoordsForExtent(ptId:int, ext:Sequence[int], ijk:MutableSequence[int], dataDescription:int=...) -> None: ... + @staticmethod + def GetCellArray(extent:MutableSequence[int], usePixelVoxelOrientation:bool) -> 'vtkStructuredCellArray': ... + @staticmethod + def GetCellDimensionsFromExtent(ext:Sequence[int], celldims:MutableSequence[int], dataDescription:int=...) -> None: ... + @staticmethod + def GetCellDimensionsFromPointDimensions(pntdims:Sequence[int], cellDims:MutableSequence[int]) -> None: ... + @staticmethod + def GetCellExtentFromPointExtent(pntExtent:Sequence[int], cellExtent:MutableSequence[int], dataDescription:int=...) -> None: ... + @overload + @staticmethod + def GetCellNeighbors(cellId:int, ptIds:'vtkIdList', cellIds:'vtkIdList', dim:MutableSequence[int]) -> None: ... + @overload + @staticmethod + def GetCellNeighbors(cellId:int, ptIds:'vtkIdList', cellIds:'vtkIdList', dim:MutableSequence[int], seedLoc:MutableSequence[int]) -> None: ... + @staticmethod + def GetCellPoints(cellId:int, ptIds:'vtkIdList', dataDescription:int, dim:MutableSequence[int]) -> None: ... + @staticmethod + def GetDataDescription(dims:MutableSequence[int]) -> int: ... + @staticmethod + def GetDataDescriptionFromExtent(ext:MutableSequence[int]) -> int: ... + @overload + @staticmethod + def GetDataDimension(dataDescription:int) -> int: ... + @overload + @staticmethod + def GetDataDimension(ext:MutableSequence[int]) -> int: ... + @staticmethod + def GetDimensionsFromExtent(ext:Sequence[int], dims:MutableSequence[int], dataDescription:int=...) -> None: ... + @staticmethod + def GetGlobalStructuredCoordinates(lijk:Sequence[int], ext:Sequence[int], ijk:MutableSequence[int], dataDescription:int=...) -> None: ... + @staticmethod + def GetLocalStructuredCoordinates(ijk:Sequence[int], ext:Sequence[int], lijk:MutableSequence[int], dataDescription:int=...) -> None: ... + @staticmethod + def GetNumberOfCells(ext:Sequence[int], dataDescription:int=...) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GetNumberOfPoints(ext:Sequence[int], dataDescription:int=...) -> int: ... + @staticmethod + def GetPointCells(ptId:int, cellIds:'vtkIdList', dim:MutableSequence[int]) -> None: ... + @staticmethod + def GetPoints(xCoords:'vtkDataArray', yCoords:'vtkDataArray', zCoords:'vtkDataArray', extent:MutableSequence[int], dirMatrix:MutableSequence[float]) -> 'vtkPoints': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsCellVisible(cellId:int, dimensions:MutableSequence[int], dataDescription:int, cellGhostArray:'vtkUnsignedCharArray', pointGhostArray:'vtkUnsignedCharArray'=...) -> bool: ... + @staticmethod + def IsPointVisible(cellId:int, ghosts:'vtkUnsignedCharArray') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStructuredData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStructuredData': ... + @staticmethod + def SetDimensions(inDim:MutableSequence[int], dim:MutableSequence[int]) -> int: ... + @staticmethod + def SetExtent(inExt:MutableSequence[int], ext:MutableSequence[int]) -> int: ... + +class vtkStructuredExtent(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def Clamp(ext:MutableSequence[int], wholeExt:Sequence[int]) -> None: ... + @staticmethod + def GetDimensions(ext:Sequence[int], dims:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + @staticmethod + def Grow(ext:MutableSequence[int], count:int) -> None: ... + @overload + @staticmethod + def Grow(ext:MutableSequence[int], count:int, wholeExt:MutableSequence[int]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStructuredExtent': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStructuredExtent': ... + @staticmethod + def Smaller(ext:Sequence[int], wholeExt:Sequence[int]) -> bool: ... + @staticmethod + def StrictlySmaller(ext:Sequence[int], wholeExt:Sequence[int]) -> bool: ... + @staticmethod + def Transform(ext:MutableSequence[int], wholeExt:MutableSequence[int]) -> None: ... + +class vtkStructuredGrid(vtkPointSet): + actual_memory_size:'getset_descriptor' + cell_types_array:'getset_descriptor' + cells:'getset_descriptor' + data_description:'getset_descriptor' + data_dimension:'getset_descriptor' + data_object_type:'getset_descriptor' + dimensions:'getset_descriptor' + extent:'getset_descriptor' + extent_type:'getset_descriptor' + max_cell_size:'getset_descriptor' + max_spatial_dimension:'getset_descriptor' + min_spatial_dimension:'getset_descriptor' + number_of_cells:'getset_descriptor' + number_of_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BlankCell(self, ptId:int) -> None: ... + def BlankPoint(self, ptId:int) -> None: ... + def CopyStructure(self, ds:'vtkDataSet') -> None: ... + def Crop(self, updateExtent:Sequence[int]) -> None: ... + def DeepCopy(self, src:'vtkDataObject') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkStructuredGrid': ... + def GetActualMemorySize(self) -> int: ... + @overload + def GetCell(self, cellId:int) -> 'vtkCell': ... + @overload + def GetCell(self, i:int, j:int, k:int) -> 'vtkCell': ... + @overload + def GetCell(self, cellId:int, cell:'vtkGenericCell') -> None: ... + def GetCellBounds(self, cellId:int, bounds:MutableSequence[float]) -> None: ... + def GetCellDims(self, cellDims:MutableSequence[int]) -> None: ... + @overload + def GetCellNeighbors(self, cellId:int, ptIds:'vtkIdList', cellIds:'vtkIdList') -> None: ... + @overload + def GetCellNeighbors(self, cellId:int, ptIds:'vtkIdList', cellIds:'vtkIdList', seedLoc:MutableSequence[int]) -> None: ... + @overload + def GetCellPoints(self, cellId:int, npts:int, pts:Sequence[int], ptIds:'vtkIdList') -> None: ... + @overload + def GetCellPoints(self, cellId:int, ptIds:'vtkIdList') -> None: ... + def GetCellSize(self, cellId:int) -> int: ... + def GetCellType(self, cellId:int) -> int: ... + def GetCellTypesArray(self) -> 'vtkConstantArray_IiE': ... + def GetCells(self) -> 'vtkStructuredCellArray': ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkStructuredGrid': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkStructuredGrid': ... + def GetDataDescription(self) -> int: ... + def GetDataDimension(self) -> int: ... + def GetDataObjectType(self) -> int: ... + def GetDimensions(self, dims:MutableSequence[int]) -> None: ... + def GetExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetExtentType(self) -> int: ... + def GetMaxCellSize(self) -> int: ... + def GetMaxSpatialDimension(self) -> int: ... + def GetMinSpatialDimension(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + @overload + def GetPoint(self, ptId:int) -> Tuple[float, float, float]: ... + @overload + def GetPoint(self, ptId:int, p:MutableSequence[float]) -> None: ... + @overload + def GetPoint(self, i:int, j:int, k:int, p:MutableSequence[float], adjustForExtent:bool=True) -> None: ... + def GetPointCells(self, ptId:int, cellIds:'vtkIdList') -> None: ... + def HasAnyBlankCells(self) -> bool: ... + def HasAnyBlankPoints(self) -> bool: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsCellVisible(self, cellId:int) -> int: ... + def IsPointVisible(self, ptId:int) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStructuredGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStructuredGrid': ... + @overload + def SetDimensions(self, i:int, j:int, k:int) -> None: ... + @overload + def SetDimensions(self, dims:Sequence[int]) -> None: ... + @overload + def SetExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def SetExtent(self, xMin:int, xMax:int, yMin:int, yMax:int, zMin:int, zMax:int) -> None: ... + def ShallowCopy(self, src:'vtkDataObject') -> None: ... + def UnBlankCell(self, ptId:int) -> None: ... + def UnBlankPoint(self, ptId:int) -> None: ... + +class vtkStructuredPoints(vtkImageData): + data_object_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDataObjectType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStructuredPoints': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStructuredPoints': ... + +class vtkStructuredPointsCollection(vtkmodules.vtkCommonCore.vtkCollection): + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, ds:'vtkStructuredPoints') -> None: ... + def GetNextItem(self) -> 'vtkStructuredPoints': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStructuredPointsCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStructuredPointsCollection': ... + +class vtkSuperquadric(vtkImplicitFunction): + center:'getset_descriptor' + phi_roundness:'getset_descriptor' + scale:'getset_descriptor' + size:'getset_descriptor' + theta_roundness:'getset_descriptor' + thickness:'getset_descriptor' + toroidal:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], g:MutableSequence[float]) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPhiRoundness(self) -> float: ... + def GetScale(self) -> Tuple[float, float, float]: ... + def GetSize(self) -> float: ... + def GetThetaRoundness(self) -> float: ... + def GetThickness(self) -> float: ... + def GetThicknessMaxValue(self) -> float: ... + def GetThicknessMinValue(self) -> float: ... + def GetToroidal(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSuperquadric': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSuperquadric': ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetPhiRoundness(self, e:float) -> None: ... + @overload + def SetScale(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetScale(self, _arg:Sequence[float]) -> None: ... + def SetSize(self, _arg:float) -> None: ... + def SetThetaRoundness(self, e:float) -> None: ... + def SetThickness(self, _arg:float) -> None: ... + def SetToroidal(self, _arg:int) -> None: ... + def ToroidalOff(self) -> None: ... + def ToroidalOn(self) -> None: ... + +class vtkTable(vtkDataObject): + actual_memory_size:'getset_descriptor' + data_object_type:'getset_descriptor' + number_of_columns:'getset_descriptor' + number_of_rows:'getset_descriptor' + row_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddColumn(self, arr:'vtkAbstractArray') -> None: ... + def DeepCopy(self, src:'vtkDataObject') -> None: ... + def Dump(self, colWidth:int=16, rowLimit:int=-1) -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkTable': ... + def GetActualMemorySize(self) -> int: ... + def GetAttributesAsFieldData(self, type:int) -> 'vtkFieldData': ... + def GetColumn(self, col:int) -> 'vtkAbstractArray': ... + def GetColumnByName(self, name:str) -> 'vtkAbstractArray': ... + def GetColumnIndex(self, name:str) -> int: ... + def GetColumnName(self, col:int) -> str: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkTable': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkTable': ... + def GetDataObjectType(self) -> int: ... + def GetNumberOfColumns(self) -> int: ... + def GetNumberOfElements(self, type:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfRows(self) -> int: ... + @overload + def GetRow(self, row:int) -> 'vtkVariantArray': ... + @overload + def GetRow(self, row:int, values:'vtkVariantArray') -> None: ... + def GetRowData(self) -> 'vtkDataSetAttributes': ... + def GetValue(self, row:int, col:int) -> 'vtkVariant': ... + def GetValueByName(self, row:int, col:str) -> 'vtkVariant': ... + def Initialize(self) -> None: ... + def InsertColumn(self, arr:'vtkAbstractArray', index:int) -> None: ... + def InsertNextBlankRow(self, default_num_val:float=0.0) -> int: ... + def InsertNextRow(self, values:'vtkVariantArray') -> int: ... + def InsertRow(self, row:int) -> None: ... + def InsertRows(self, row:int, n:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTable': ... + def RemoveAllColumns(self) -> None: ... + def RemoveAllRows(self) -> None: ... + def RemoveColumn(self, col:int) -> None: ... + def RemoveColumnByName(self, name:str) -> None: ... + def RemoveRow(self, row:int) -> None: ... + def RemoveRows(self, row:int, n:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTable': ... + def SetNumberOfRows(self, __a:int) -> None: ... + def SetRow(self, row:int, values:'vtkVariantArray') -> None: ... + def SetRowData(self, data:'vtkDataSetAttributes') -> None: ... + def SetValue(self, row:int, col:int, value:'vtkVariant') -> None: ... + def SetValueByName(self, row:int, col:str, value:'vtkVariant') -> None: ... + def ShallowCopy(self, src:'vtkDataObject') -> None: ... + def SqueezeRows(self) -> None: ... + +class vtkTetra(vtkCell3D): + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def BarycentricCoords(x:MutableSequence[float], x1:MutableSequence[float], x2:MutableSequence[float], x3:MutableSequence[float], x4:MutableSequence[float], bcoords:MutableSequence[float]) -> int: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + @staticmethod + def Circumsphere(x1:MutableSequence[float], x2:MutableSequence[float], x3:MutableSequence[float], x4:MutableSequence[float], center:MutableSequence[float]) -> float: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', connectivity:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + @staticmethod + def ComputeCentroid(points:'vtkPoints', pointIds:Sequence[int], centroid:MutableSequence[float]) -> bool: ... + @staticmethod + def ComputeVolume(p1:MutableSequence[float], p2:MutableSequence[float], p3:MutableSequence[float], p4:MutableSequence[float]) -> float: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellType(self) -> int: ... + def GetCentroid(self, centroid:MutableSequence[float]) -> bool: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + @staticmethod + def GetEdgeArray(edgeId:int) -> Tuple[int, int]: ... + def GetEdgePoints(self, edgeId:int, pts:Sequence[int]) -> None: ... + def GetEdgeToAdjacentFaces(self, edgeId:int, pts:Sequence[int]) -> None: ... + @staticmethod + def GetEdgeToAdjacentFacesArray(edgeId:int) -> Tuple[int, int]: ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + @staticmethod + def GetFaceArray(faceId:int) -> Tuple[int, int, int]: ... + def GetFacePoints(self, faceId:int, pts:Sequence[int]) -> int: ... + def GetFaceToAdjacentFaces(self, faceId:int, faceIds:Sequence[int]) -> int: ... + @staticmethod + def GetFaceToAdjacentFacesArray(faceId:int) -> Tuple[int, int, int]: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetParametricDistance(self, pcoords:Sequence[float]) -> float: ... + def GetPointToIncidentEdges(self, pointId:int, edgeIds:Sequence[int]) -> int: ... + @staticmethod + def GetPointToIncidentEdgesArray(pointId:int) -> Tuple[int, int, int]: ... + def GetPointToIncidentFaces(self, pointId:int, faceIds:Sequence[int]) -> int: ... + @staticmethod + def GetPointToIncidentFacesArray(pointId:int) -> Tuple[int, int, int]: ... + def GetPointToOneRingPoints(self, pointId:int, pts:Sequence[int]) -> int: ... + @staticmethod + def GetPointToOneRingPointsArray(pointId:int) -> Tuple[int, int, int]: ... + @staticmethod + def GetTriangleCases(caseId:int) -> Pointer: ... + @staticmethod + def Insphere(p1:MutableSequence[float], p2:MutableSequence[float], p3:MutableSequence[float], p4:MutableSequence[float], center:MutableSequence[float]) -> float: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsInsideOut(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTetra': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTetra': ... + @staticmethod + def TetraCenter(p1:MutableSequence[float], p2:MutableSequence[float], p3:MutableSequence[float], p4:MutableSequence[float], center:MutableSequence[float]) -> None: ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkTree(vtkDirectedAcyclicGraph): + data_object_type:'getset_descriptor' + root:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetChild(self, v:int, i:int) -> int: ... + def GetChildren(self, v:int, it:'vtkAdjacentVertexIterator') -> None: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkTree': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkTree': ... + def GetDataObjectType(self) -> int: ... + def GetLevel(self, v:int) -> int: ... + def GetNumberOfChildren(self, v:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParent(self, v:int) -> int: ... + def GetParentEdge(self, v:int) -> 'vtkEdgeType': ... + def GetRoot(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsLeaf(self, vertex:int) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTree': ... + def ReorderChildren(self, parent:int, children:'vtkIdTypeArray') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTree': ... + +class vtkTreeIterator(vtkmodules.vtkCommonCore.vtkObject): + start_vertex:'getset_descriptor' + tree:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStartVertex(self) -> int: ... + def GetTree(self) -> 'vtkTree': ... + def HasNext(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTreeIterator': ... + def Next(self) -> int: ... + def Restart(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTreeIterator': ... + def SetStartVertex(self, vertex:int) -> None: ... + def SetTree(self, tree:'vtkTree') -> None: ... + +class vtkTreeBFSIterator(vtkTreeIterator): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTreeBFSIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTreeBFSIterator': ... + +class vtkTreeDFSIterator(vtkTreeIterator): + class ModeType(int): ... + DISCOVER:'ModeType' + FINISH:'ModeType' + mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMode(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTreeDFSIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTreeDFSIterator': ... + def SetMode(self, mode:int) -> None: ... + +class vtkTriQuadraticHexahedron(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', tetras:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, __a:int) -> 'vtkCell': ... + @staticmethod + def GetEdgeArray(edgeId:int) -> Pointer: ... + def GetFace(self, __a:int) -> 'vtkCell': ... + @staticmethod + def GetFaceArray(faceId:int) -> Pointer: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTriQuadraticHexahedron': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTriQuadraticHexahedron': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkTriQuadraticPyramid(vtkNonLinearCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', tets:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + @staticmethod + def GetEdgeArray(edgeId:int) -> Pointer: ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + @staticmethod + def GetFaceArray(faceId:int) -> Pointer: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetParametricDistance(self, pcoords:Sequence[float]) -> float: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTriQuadraticPyramid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTriQuadraticPyramid': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkTriangle(vtkCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def BarycentricCoords(x:Sequence[float], x1:Sequence[float], x2:Sequence[float], x3:Sequence[float], bcoords:MutableSequence[float]) -> int: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + @staticmethod + def Circumcircle(p1:Sequence[float], p2:Sequence[float], p3:Sequence[float], center:MutableSequence[float]) -> float: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def ComputeArea(self) -> float: ... + @staticmethod + def ComputeCentroid(points:'vtkPoints', pointIds:Sequence[int], centroid:MutableSequence[float]) -> bool: ... + @overload + @staticmethod + def ComputeNormal(p:'vtkPoints', numPts:int, pts:Sequence[int], n:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def ComputeNormal(v1:Sequence[float], v2:Sequence[float], v3:Sequence[float], n:MutableSequence[float]) -> None: ... + @staticmethod + def ComputeNormalDirection(v1:Sequence[float], v2:Sequence[float], v3:Sequence[float], n:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def ComputeQuadric(x1:Sequence[float], x2:Sequence[float], x3:Sequence[float], quadric:MutableSequence[MutableSequence[float]]) -> None: ... + @overload + @staticmethod + def ComputeQuadric(x1:Sequence[float], x2:Sequence[float], x3:Sequence[float], quadric:'vtkQuadric') -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetEdgeArray(self, edgeId:int) -> Pointer: ... + def GetFace(self, __a:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetParametricDistance(self, pcoords:Sequence[float]) -> float: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], sf:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], sf:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTriangle': ... + @staticmethod + def PointInTriangle(x:Sequence[float], x1:Sequence[float], x2:Sequence[float], x3:Sequence[float], tol2:float) -> int: ... + @staticmethod + def ProjectTo2D(x1:Sequence[float], x2:Sequence[float], x3:Sequence[float], v1:MutableSequence[float], v2:MutableSequence[float], v3:MutableSequence[float]) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTriangle': ... + @staticmethod + def TriangleArea(p1:Sequence[float], p2:Sequence[float], p3:Sequence[float]) -> float: ... + @staticmethod + def TriangleCenter(p1:Sequence[float], p2:Sequence[float], p3:Sequence[float], center:MutableSequence[float]) -> None: ... + @staticmethod + def TrianglesIntersect(p1:Sequence[float], q1:Sequence[float], r1:Sequence[float], p2:Sequence[float], q2:Sequence[float], r2:Sequence[float]) -> int: ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkTriangleStrip(vtkCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + @staticmethod + def DecomposeStrip(npts:int, pts:Sequence[int], tris:'vtkCellArray') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsPrimaryCell(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTriangleStrip': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTriangleStrip': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkUniformGrid(vtkImageData): + data_object_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CopyStructure(self, ds:'vtkDataSet') -> None: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkUniformGrid': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkUniformGrid': ... + def GetDataObjectType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewImageDataCopy(self) -> 'vtkImageData': ... + def NewInstance(self) -> 'vtkUniformGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUniformGrid': ... + +class vtkUniformGridAMRDataIterator(vtkCompositeDataIterator): + current_data_object:'getset_descriptor' + current_flat_index:'getset_descriptor' + current_index:'getset_descriptor' + current_level:'getset_descriptor' + current_meta_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCurrentDataObject(self) -> 'vtkDataObject': ... + def GetCurrentFlatIndex(self) -> int: ... + def GetCurrentIndex(self) -> int: ... + def GetCurrentLevel(self) -> int: ... + def GetCurrentMetaData(self) -> 'vtkInformation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GoToFirstItem(self) -> None: ... + def GoToNextItem(self) -> None: ... + def HasCurrentMetaData(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsDoneWithTraversal(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUniformGridAMRDataIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUniformGridAMRDataIterator': ... + +class vtkUniformHyperTreeGrid(vtkHyperTreeGrid): + actual_memory_size_bytes:'getset_descriptor' + data_object_type:'getset_descriptor' + grid_scale:'getset_descriptor' + origin:'getset_descriptor' + x_coordinates:'getset_descriptor' + y_coordinates:'getset_descriptor' + z_coordinates:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CopyCoordinates(self, output:'vtkHyperTreeGrid') -> None: ... + def CopyStructure(self, __a:'vtkDataObject') -> None: ... + def DeepCopy(self, __a:'vtkDataObject') -> None: ... + def GetActualMemorySizeBytes(self) -> int: ... + def GetDataObjectType(self) -> int: ... + def GetGridBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetGridScale(self) -> Tuple[float, float, float]: ... + def GetLevelZeroOriginAndSizeFromIndex(self, __a:int, __b:MutableSequence[float], __c:MutableSequence[float]) -> None: ... + def GetLevelZeroOriginFromIndex(self, __a:int, __b:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetTree(self, __a:int, create:bool=False) -> 'vtkHyperTree': ... + def GetXCoordinates(self) -> 'vtkDataArray': ... + def GetYCoordinates(self) -> 'vtkDataArray': ... + def GetZCoordinates(self) -> 'vtkDataArray': ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUniformHyperTreeGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUniformHyperTreeGrid': ... + def SetFixedCoordinates(self, axis:int, value:float) -> None: ... + @overload + def SetGridScale(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetGridScale(self, __a:MutableSequence[float]) -> None: ... + @overload + def SetGridScale(self, __a:float) -> None: ... + @overload + def SetOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOrigin(self, _arg:Sequence[float]) -> None: ... + def SetXCoordinates(self, XCoordinates:'vtkDataArray') -> None: ... + def SetYCoordinates(self, YCoordinates:'vtkDataArray') -> None: ... + def SetZCoordinates(self, ZCoordinates:'vtkDataArray') -> None: ... + def ShallowCopy(self, __a:'vtkDataObject') -> None: ... + +class vtkUnstructuredGridBase(vtkPointSet): + data_object_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, numCells:int=1000, extSize:int=1000) -> None: ... + def DeepCopy(self, src:'vtkDataObject') -> None: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkUnstructuredGridBase': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkUnstructuredGridBase': ... + def GetDataObjectType(self) -> int: ... + def GetIdsOfCellsOfType(self, type:int, array:'vtkIdTypeArray') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def InsertNextCell(self, type:int, npts:int, ptIds:Sequence[int]) -> int: ... + @overload + def InsertNextCell(self, type:int, ptIds:'vtkIdList') -> int: ... + @overload + def InsertNextCell(self, type:int, npts:int, ptIds:Sequence[int], nfaces:int, faces:Sequence[int]) -> int: ... + @overload + def InsertNextCell(self, type:int, npts:int, ptIds:Sequence[int], faces:'vtkCellArray') -> int: ... + def IsA(self, type:str) -> int: ... + def IsHomogeneous(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridBase': ... + def ReplaceCell(self, cellId:int, npts:int, pts:Sequence[int]) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridBase': ... + +class vtkUnstructuredGrid(vtkUnstructuredGridBase): + actual_memory_size:'getset_descriptor' + cell_locations_array:'getset_descriptor' + cell_types_array:'getset_descriptor' + cells:'getset_descriptor' + data_object_type:'getset_descriptor' + distinct_cell_types_array:'getset_descriptor' + face_locations:'getset_descriptor' + faces:'getset_descriptor' + ghost_level:'getset_descriptor' + links:'getset_descriptor' + max_cell_size:'getset_descriptor' + max_spatial_dimension:'getset_descriptor' + mesh_m_time:'getset_descriptor' + min_spatial_dimension:'getset_descriptor' + number_of_cells:'getset_descriptor' + piece:'getset_descriptor' + polyhedron_face_locations:'getset_descriptor' + polyhedron_faces:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddReferenceToCell(self, ptId:int, cellId:int) -> None: ... + def Allocate(self, numCells:int=1000, extSize:int=1000) -> None: ... + def AllocateEstimate(self, numCells:int, maxCellSize:int) -> bool: ... + def AllocateExact(self, numCells:int, connectivitySize:int) -> bool: ... + def BuildLinks(self) -> None: ... + @overload + @staticmethod + def ConvertFaceStreamPointIds(faceStream:'vtkIdList', idMap:MutableSequence[int]) -> None: ... + @overload + @staticmethod + def ConvertFaceStreamPointIds(nfaces:int, faceStream:MutableSequence[int], idMap:MutableSequence[int]) -> None: ... + @overload + @staticmethod + def ConvertFaceStreamPointIds(faces:'vtkCellArray', idMap:MutableSequence[int]) -> None: ... + def CopyStructure(self, ds:'vtkDataSet') -> None: ... + @overload + @staticmethod + def DecomposeAPolyhedronCell(polyhedronCellArray:'vtkCellArray', nCellpts:int, nCellfaces:int, cellArray:'vtkCellArray', faces:'vtkIdTypeArray') -> None: ... + @overload + @staticmethod + def DecomposeAPolyhedronCell(polyhedronCellStream:Sequence[int], nCellpts:int, nCellfaces:int, cellArray:'vtkCellArray', faces:'vtkIdTypeArray') -> None: ... + @overload + @staticmethod + def DecomposeAPolyhedronCell(nCellFaces:int, inFaceStream:Sequence[int], nCellpts:int, cellArray:'vtkCellArray', faces:'vtkIdTypeArray') -> None: ... + def DeepCopy(self, src:'vtkDataObject') -> None: ... + @staticmethod + def ExtendedNew() -> 'vtkUnstructuredGrid': ... + def GetActualMemorySize(self) -> int: ... + @overload + def GetCell(self, cellId:int) -> 'vtkCell': ... + @overload + def GetCell(self, cellId:int, cell:'vtkGenericCell') -> None: ... + @overload + def GetCell(self, i:int, j:int, k:int) -> 'vtkCell': ... + def GetCellBounds(self, cellId:int, bounds:MutableSequence[float]) -> None: ... + def GetCellLocationsArray(self) -> 'vtkIdTypeArray': ... + @overload + def GetCellNeighbors(self, cellId:int, ptIds:'vtkIdList', cellIds:'vtkIdList') -> None: ... + @overload + def GetCellNeighbors(self, cellId:int, npts:int, ptIds:Sequence[int], cellIds:'vtkIdList') -> None: ... + def GetCellNumberOfFaces(self, cellId:int, cellType:int, cell:'vtkGenericCell') -> int: ... + @overload + def GetCellPoints(self, cellId:int, ptIds:'vtkIdList') -> None: ... + @overload + def GetCellPoints(self, cellId:int, npts:int, pts:Sequence[int]) -> None: ... + @overload + def GetCellPoints(self, cellId:int, npts:int, pts:Sequence[int], ptIds:'vtkIdList') -> None: ... + def GetCellSize(self, cellId:int) -> int: ... + def GetCellType(self, cellId:int) -> int: ... + def GetCellTypes(self, types:'vtkCellTypes') -> None: ... + def GetCellTypesArray(self) -> 'vtkUnsignedCharArray': ... + def GetCells(self) -> 'vtkCellArray': ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkUnstructuredGrid': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkUnstructuredGrid': ... + def GetDataObjectType(self) -> int: ... + def GetDistinctCellTypesArray(self) -> 'vtkUnsignedCharArray': ... + def GetFaceLocations(self) -> 'vtkIdTypeArray': ... + @overload + def GetFaceStream(self, cellId:int, ptIds:'vtkIdList') -> None: ... + @overload + def GetFaceStream(self, cellId:int, nfaces:int, ptIds:Sequence[int]) -> None: ... + @overload + def GetFaces(self, cellId:int) -> Pointer: ... + @overload + def GetFaces(self) -> 'vtkIdTypeArray': ... + def GetGhostLevel(self) -> int: ... + def GetIdsOfCellsOfType(self, type:int, array:'vtkIdTypeArray') -> None: ... + def GetLinks(self) -> 'vtkAbstractCellLinks': ... + def GetMaxCellSize(self) -> int: ... + def GetMaxSpatialDimension(self) -> int: ... + def GetMeshMTime(self) -> int: ... + def GetMinSpatialDimension(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPieces(self) -> int: ... + def GetPiece(self) -> int: ... + @overload + def GetPointCells(self, ptId:int, cellIds:'vtkIdList') -> None: ... + @overload + def GetPointCells(self, ptId:int, ncells:int, cells:MutableSequence[int]) -> None: ... + def GetPolyhedronFaceLocations(self) -> 'vtkCellArray': ... + @overload + def GetPolyhedronFaces(self, cellId:int, faces:'vtkCellArray') -> None: ... + @overload + def GetPolyhedronFaces(self) -> 'vtkCellArray': ... + def Initialize(self) -> None: ... + def InitializeFacesRepresentation(self, numPrevCells:int) -> int: ... + def InsertNextLinkedCell(self, type:int, npts:int, pts:Sequence[int]) -> int: ... + def IsA(self, type:str) -> int: ... + @overload + def IsCellBoundary(self, cellId:int, npts:int, ptIds:Sequence[int], neighborCellId:int) -> bool: ... + @overload + def IsCellBoundary(self, cellId:int, npts:int, ptIds:Sequence[int]) -> bool: ... + def IsHomogeneous(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewCellIterator(self) -> 'vtkCellIterator': ... + def NewInstance(self) -> 'vtkUnstructuredGrid': ... + def RemoveGhostCells(self) -> None: ... + def RemoveReferenceToCell(self, ptId:int, cellId:int) -> None: ... + def Reset(self) -> None: ... + def ResizeCellList(self, ptId:int, size:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGrid': ... + @overload + def SetCells(self, type:int, cells:'vtkCellArray') -> None: ... + @overload + def SetCells(self, types:MutableSequence[int], cells:'vtkCellArray') -> None: ... + @overload + def SetCells(self, cellTypes:'vtkUnsignedCharArray', cells:'vtkCellArray') -> None: ... + @overload + def SetCells(self, cellTypes:'vtkUnsignedCharArray', cells:'vtkCellArray', faceLocations:'vtkIdTypeArray', faces:'vtkIdTypeArray') -> None: ... + @overload + def SetCells(self, cellTypes:'vtkUnsignedCharArray', cellLocations:'vtkIdTypeArray', cells:'vtkCellArray') -> None: ... + @overload + def SetCells(self, cellTypes:'vtkUnsignedCharArray', cellLocations:'vtkIdTypeArray', cells:'vtkCellArray', faceLocations:'vtkIdTypeArray', faces:'vtkIdTypeArray') -> None: ... + def SetLinks(self, _arg:'vtkAbstractCellLinks') -> None: ... + def SetPolyhedralCells(self, cellTypes:'vtkUnsignedCharArray', cells:'vtkCellArray', faceLocations:'vtkCellArray', faces:'vtkCellArray') -> None: ... + def ShallowCopy(self, src:'vtkDataObject') -> None: ... + def Squeeze(self) -> None: ... + +class vtkUnstructuredGridCellIterator(vtkCellIterator): + cell_id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellId(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GoToCell(self, cellId:int) -> None: ... + def IsA(self, type:str) -> int: ... + def IsDoneWithTraversal(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridCellIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridCellIterator': ... + +class vtkVector_IdLi2EE(vtkmodules.vtkCommonMath.vtkTuple_IdLi2EE): + def Dot(self, other:'vtkVector_IdLi2EE') -> float: ... + def Norm(self) -> float: ... + def Normalize(self) -> float: ... + def Normalized(self) -> 'vtkVector_IdLi2EE': ... + def SquaredNorm(self) -> float: ... + +class vtkVector2_IdE(vtkVector_IdLi2EE): + x:'getset_descriptor' + y:'getset_descriptor' + def GetX(self) -> float: ... + def GetY(self) -> float: ... + def Set(self, x:float, y:float) -> None: ... + def SetX(self, x:float) -> None: ... + def SetY(self, y:float) -> None: ... + +class vtkVector_IfLi2EE(vtkmodules.vtkCommonMath.vtkTuple_IfLi2EE): + def Dot(self, other:'vtkVector_IfLi2EE') -> float: ... + def Norm(self) -> float: ... + def Normalize(self) -> float: ... + def Normalized(self) -> 'vtkVector_IfLi2EE': ... + def SquaredNorm(self) -> float: ... + +class vtkVector2_IfE(vtkVector_IfLi2EE): + x:'getset_descriptor' + y:'getset_descriptor' + def GetX(self) -> float: ... + def GetY(self) -> float: ... + def Set(self, x:float, y:float) -> None: ... + def SetX(self, x:float) -> None: ... + def SetY(self, y:float) -> None: ... + +class vtkVector_IiLi2EE(vtkmodules.vtkCommonMath.vtkTuple_IiLi2EE): + def Dot(self, other:'vtkVector_IiLi2EE') -> int: ... + def Norm(self) -> float: ... + def Normalize(self) -> float: ... + def Normalized(self) -> 'vtkVector_IiLi2EE': ... + def SquaredNorm(self) -> int: ... + +class vtkVector2_IiE(vtkVector_IiLi2EE): + x:'getset_descriptor' + y:'getset_descriptor' + def GetX(self) -> int: ... + def GetY(self) -> int: ... + def Set(self, x:int, y:int) -> None: ... + def SetX(self, x:int) -> None: ... + def SetY(self, y:int) -> None: ... + +class vtkVector2d(vtkVector2_IdE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x:float, y:float) -> None: ... + @overload + def __init__(self, s:float) -> None: ... + @overload + def __init__(self, i:Sequence[float]) -> None: ... + @overload + def __init__(self, o:'vtkTuple_IdLi2EE') -> None: ... + @overload + def __init__(self, o:'vtkVector_IdLi2EE') -> None: ... + @overload + def __init__(self, __a:'vtkVector2d') -> None: ... + def Normalized(self) -> 'vtkVector2d': ... + +class vtkVector2f(vtkVector2_IfE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x:float, y:float) -> None: ... + @overload + def __init__(self, s:float) -> None: ... + @overload + def __init__(self, i:Sequence[float]) -> None: ... + @overload + def __init__(self, o:'vtkTuple_IfLi2EE') -> None: ... + @overload + def __init__(self, o:'vtkVector_IfLi2EE') -> None: ... + @overload + def __init__(self, __a:'vtkVector2f') -> None: ... + def Normalized(self) -> 'vtkVector2f': ... + +class vtkVector2i(vtkVector2_IiE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x:int, y:int) -> None: ... + @overload + def __init__(self, s:int) -> None: ... + @overload + def __init__(self, i:Sequence[int]) -> None: ... + @overload + def __init__(self, o:'vtkTuple_IiLi2EE') -> None: ... + @overload + def __init__(self, o:'vtkVector_IiLi2EE') -> None: ... + @overload + def __init__(self, __a:'vtkVector2i') -> None: ... + def Normalized(self) -> 'vtkVector2i': ... + +class vtkVector_IdLi3EE(vtkmodules.vtkCommonMath.vtkTuple_IdLi3EE): + def Dot(self, other:'vtkVector_IdLi3EE') -> float: ... + def Norm(self) -> float: ... + def Normalize(self) -> float: ... + def Normalized(self) -> 'vtkVector_IdLi3EE': ... + def SquaredNorm(self) -> float: ... + +class vtkVector3_IdE(vtkVector_IdLi3EE): + x:'getset_descriptor' + y:'getset_descriptor' + z:'getset_descriptor' + def Cross(self, other:'vtkVector3_IdE') -> 'vtkVector3_IdE': ... + def GetX(self) -> float: ... + def GetY(self) -> float: ... + def GetZ(self) -> float: ... + def Set(self, x:float, y:float, z:float) -> None: ... + def SetX(self, x:float) -> None: ... + def SetY(self, y:float) -> None: ... + def SetZ(self, z:float) -> None: ... + +class vtkVector_IfLi3EE(vtkmodules.vtkCommonMath.vtkTuple_IfLi3EE): + def Dot(self, other:'vtkVector_IfLi3EE') -> float: ... + def Norm(self) -> float: ... + def Normalize(self) -> float: ... + def Normalized(self) -> 'vtkVector_IfLi3EE': ... + def SquaredNorm(self) -> float: ... + +class vtkVector3_IfE(vtkVector_IfLi3EE): + x:'getset_descriptor' + y:'getset_descriptor' + z:'getset_descriptor' + def Cross(self, other:'vtkVector3_IfE') -> 'vtkVector3_IfE': ... + def GetX(self) -> float: ... + def GetY(self) -> float: ... + def GetZ(self) -> float: ... + def Set(self, x:float, y:float, z:float) -> None: ... + def SetX(self, x:float) -> None: ... + def SetY(self, y:float) -> None: ... + def SetZ(self, z:float) -> None: ... + +class vtkVector_IiLi3EE(vtkmodules.vtkCommonMath.vtkTuple_IiLi3EE): + def Dot(self, other:'vtkVector_IiLi3EE') -> int: ... + def Norm(self) -> float: ... + def Normalize(self) -> float: ... + def Normalized(self) -> 'vtkVector_IiLi3EE': ... + def SquaredNorm(self) -> int: ... + +class vtkVector3_IiE(vtkVector_IiLi3EE): + x:'getset_descriptor' + y:'getset_descriptor' + z:'getset_descriptor' + def Cross(self, other:'vtkVector3_IiE') -> 'vtkVector3_IiE': ... + def GetX(self) -> int: ... + def GetY(self) -> int: ... + def GetZ(self) -> int: ... + def Set(self, x:int, y:int, z:int) -> None: ... + def SetX(self, x:int) -> None: ... + def SetY(self, y:int) -> None: ... + def SetZ(self, z:int) -> None: ... + +class vtkVector3d(vtkVector3_IdE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x:float, y:float, z:float) -> None: ... + @overload + def __init__(self, s:float) -> None: ... + @overload + def __init__(self, i:Sequence[float]) -> None: ... + @overload + def __init__(self, o:'vtkTuple_IdLi3EE') -> None: ... + @overload + def __init__(self, o:'vtkVector_IdLi3EE') -> None: ... + @overload + def __init__(self, __a:'vtkVector3d') -> None: ... + def Cross(self, other:'vtkVector3d') -> 'vtkVector3d': ... + def Normalized(self) -> 'vtkVector3d': ... + +class vtkVector3f(vtkVector3_IfE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x:float, y:float, z:float) -> None: ... + @overload + def __init__(self, s:float) -> None: ... + @overload + def __init__(self, i:Sequence[float]) -> None: ... + @overload + def __init__(self, o:'vtkTuple_IfLi3EE') -> None: ... + @overload + def __init__(self, o:'vtkVector_IfLi3EE') -> None: ... + @overload + def __init__(self, __a:'vtkVector3f') -> None: ... + def Cross(self, other:'vtkVector3f') -> 'vtkVector3f': ... + def Normalized(self) -> 'vtkVector3f': ... + +class vtkVector3i(vtkVector3_IiE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x:int, y:int, z:int) -> None: ... + @overload + def __init__(self, s:int) -> None: ... + @overload + def __init__(self, i:Sequence[int]) -> None: ... + @overload + def __init__(self, o:'vtkTuple_IiLi3EE') -> None: ... + @overload + def __init__(self, o:'vtkVector_IiLi3EE') -> None: ... + @overload + def __init__(self, __a:'vtkVector3i') -> None: ... + def Cross(self, other:'vtkVector3i') -> 'vtkVector3i': ... + def Normalized(self) -> 'vtkVector3i': ... + +class vtkVector4_IdE(vtkVector_IdLi4EE): + w:'getset_descriptor' + x:'getset_descriptor' + y:'getset_descriptor' + z:'getset_descriptor' + def GetW(self) -> float: ... + def GetX(self) -> float: ... + def GetY(self) -> float: ... + def GetZ(self) -> float: ... + def Set(self, x:float, y:float, z:float, w:float) -> None: ... + def SetW(self, w:float) -> None: ... + def SetX(self, x:float) -> None: ... + def SetY(self, y:float) -> None: ... + def SetZ(self, z:float) -> None: ... + +class vtkVector4_IiE(vtkVector_IiLi4EE): + w:'getset_descriptor' + x:'getset_descriptor' + y:'getset_descriptor' + z:'getset_descriptor' + def GetW(self) -> int: ... + def GetX(self) -> int: ... + def GetY(self) -> int: ... + def GetZ(self) -> int: ... + def Set(self, x:int, y:int, z:int, w:int) -> None: ... + def SetW(self, w:int) -> None: ... + def SetX(self, x:int) -> None: ... + def SetY(self, y:int) -> None: ... + def SetZ(self, z:int) -> None: ... + +class vtkVector4d(vtkVector4_IdE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x:float, y:float, z:float, w:float) -> None: ... + @overload + def __init__(self, s:float) -> None: ... + @overload + def __init__(self, i:Sequence[float]) -> None: ... + @overload + def __init__(self, o:'vtkTuple_IdLi4EE') -> None: ... + @overload + def __init__(self, o:'vtkVector_IdLi4EE') -> None: ... + @overload + def __init__(self, __a:'vtkVector4d') -> None: ... + def Normalized(self) -> 'vtkVector4d': ... + +class vtkVector4i(vtkVector4_IiE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, x:int, y:int, z:int, w:int) -> None: ... + @overload + def __init__(self, s:int) -> None: ... + @overload + def __init__(self, i:Sequence[int]) -> None: ... + @overload + def __init__(self, o:'vtkTuple_IiLi4EE') -> None: ... + @overload + def __init__(self, o:'vtkVector_IiLi4EE') -> None: ... + @overload + def __init__(self, __a:'vtkVector4i') -> None: ... + def Normalized(self) -> 'vtkVector4i': ... + +class vtkVertex(vtkCell): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def Clip(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', pts:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData', insideOut:int) -> None: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts1:'vtkCellArray', lines:'vtkCellArray', verts2:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetEdge(self, __a:int) -> 'vtkCell': ... + def GetFace(self, __a:int) -> 'vtkCell': ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def Inflate(self, __a:float) -> int: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVertex': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVertex': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkVertexAdjacencyList(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkVertexAdjacencyList') -> None: ... + +class vtkVertexListIterator(vtkmodules.vtkCommonCore.vtkObject): + graph:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetGraph(self) -> 'vtkGraph': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def HasNext(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVertexListIterator': ... + def Next(self) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVertexListIterator': ... + def SetGraph(self, graph:'vtkGraph') -> None: ... + +class vtkVoxel(vtkCell3D): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + def ComputeBoundingSphere(self, center:MutableSequence[float]) -> float: ... + @staticmethod + def ComputeCentroid(points:'vtkPoints', pointIds:Sequence[int], centroid:MutableSequence[float]) -> bool: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetCentroid(self, centroid:MutableSequence[float]) -> bool: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + @staticmethod + def GetEdgeArray(edgeId:int) -> Tuple[int, int]: ... + def GetEdgePoints(self, edgeId:int, pts:Sequence[int]) -> None: ... + def GetEdgeToAdjacentFaces(self, edgeId:int, pts:Sequence[int]) -> None: ... + @staticmethod + def GetEdgeToAdjacentFacesArray(edgeId:int) -> Tuple[int, int]: ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + @staticmethod + def GetFaceArray(faceId:int) -> Tuple[int, int, int, int]: ... + def GetFacePoints(self, faceId:int, pts:Sequence[int]) -> int: ... + def GetFaceToAdjacentFaces(self, faceId:int, faces:Sequence[int]) -> int: ... + @staticmethod + def GetFaceToAdjacentFacesArray(faceId:int) -> Tuple[int, int, int, int]: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetPointToIncidentEdges(self, pointId:int, edges:Sequence[int]) -> int: ... + @staticmethod + def GetPointToIncidentEdgesArray(pointId:int) -> Tuple[int, int, int]: ... + def GetPointToIncidentFaces(self, pointId:int, faces:Sequence[int]) -> int: ... + @staticmethod + def GetPointToIncidentFacesArray(pointId:int) -> Tuple[int, int, int]: ... + def GetPointToOneRingPoints(self, pointId:int, pts:Sequence[int]) -> int: ... + @staticmethod + def GetPointToOneRingPointsArray(pointId:int) -> Tuple[int, int, int]: ... + @staticmethod + def GetTriangleCases(caseId:int) -> Pointer: ... + def Inflate(self, dist:float) -> int: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsInsideOut(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVoxel': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVoxel': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkWedge(vtkCell3D): + cell_dimension:'getset_descriptor' + cell_type:'getset_descriptor' + parametric_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellBoundary(self, subId:int, pcoords:Sequence[float], pts:'vtkIdList') -> int: ... + @staticmethod + def ComputeCentroid(points:'vtkPoints', pointIds:Sequence[int], centroid:MutableSequence[float]) -> bool: ... + def Contour(self, value:float, cellScalars:'vtkDataArray', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', lines:'vtkCellArray', polys:'vtkCellArray', inPd:'vtkPointData', outPd:'vtkPointData', inCd:'vtkCellData', cellId:int, outCd:'vtkCellData') -> None: ... + def Derivatives(self, subId:int, pcoords:Sequence[float], values:Sequence[float], dim:int, derivs:MutableSequence[float]) -> None: ... + def EvaluateLocation(self, subId:int, pcoords:Sequence[float], x:MutableSequence[float], weights:MutableSequence[float]) -> None: ... + def EvaluatePosition(self, x:Sequence[float], closestPoint:MutableSequence[float], subId:int, pcoords:MutableSequence[float], dist2:float, weights:MutableSequence[float]) -> int: ... + def GetCellDimension(self) -> int: ... + def GetCellType(self) -> int: ... + def GetCentroid(self, centroid:MutableSequence[float]) -> bool: ... + def GetEdge(self, edgeId:int) -> 'vtkCell': ... + @staticmethod + def GetEdgeArray(edgeId:int) -> Tuple[int, int]: ... + def GetEdgePoints(self, edgeId:int, pts:Sequence[int]) -> None: ... + def GetEdgeToAdjacentFaces(self, edgeId:int, pts:Sequence[int]) -> None: ... + @staticmethod + def GetEdgeToAdjacentFacesArray(edgeId:int) -> Tuple[int, int]: ... + def GetFace(self, faceId:int) -> 'vtkCell': ... + @staticmethod + def GetFaceArray(faceId:int) -> (int): ... + def GetFacePoints(self, faceId:int, pts:Sequence[int]) -> int: ... + def GetFaceToAdjacentFaces(self, faceId:int, faceIds:Sequence[int]) -> int: ... + @staticmethod + def GetFaceToAdjacentFacesArray(faceId:int) -> Tuple[int, int, int, int]: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricCenter(self, pcoords:MutableSequence[float]) -> int: ... + def GetParametricCoords(self) -> Tuple[float, float]: ... + def GetPointToIncidentEdges(self, pointId:int, edgeIds:Sequence[int]) -> int: ... + @staticmethod + def GetPointToIncidentEdgesArray(pointId:int) -> Tuple[int, int, int]: ... + def GetPointToIncidentFaces(self, pointId:int, faceIds:Sequence[int]) -> int: ... + @staticmethod + def GetPointToIncidentFacesArray(pointId:int) -> Tuple[int, int, int]: ... + def GetPointToOneRingPoints(self, pointId:int, pts:Sequence[int]) -> int: ... + @staticmethod + def GetPointToOneRingPointsArray(pointId:int) -> Tuple[int, int, int]: ... + @staticmethod + def GetTriangleCases(caseId:int) -> Pointer: ... + def InterpolateDerivs(self, pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + def InterpolateFunctions(self, pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationDerivs(pcoords:Sequence[float], derivs:MutableSequence[float]) -> None: ... + @staticmethod + def InterpolationFunctions(pcoords:Sequence[float], weights:MutableSequence[float]) -> None: ... + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsInsideOut(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWedge': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWedge': ... + def TriangulateLocalIds(self, index:int, ptIds:'vtkIdList') -> int: ... + +class vtkXMLDataElement(vtkmodules.vtkCommonCore.vtkObject): + attribute_encoding:'getset_descriptor' + character_data:'getset_descriptor' + character_data_width:'getset_descriptor' + id:'getset_descriptor' + name:'getset_descriptor' + number_of_attributes:'getset_descriptor' + parent:'getset_descriptor' + root:'getset_descriptor' + xml_byte_index:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddCharacterData(self, c:str, length:int) -> None: ... + def AddNestedElement(self, element:'vtkXMLDataElement') -> None: ... + def DeepCopy(self, elem:'vtkXMLDataElement') -> None: ... + def FindNestedElement(self, id:str) -> 'vtkXMLDataElement': ... + def FindNestedElementWithName(self, name:str) -> 'vtkXMLDataElement': ... + def FindNestedElementWithNameAndAttribute(self, name:str, att_name:str, att_value:str) -> 'vtkXMLDataElement': ... + def FindNestedElementWithNameAndId(self, name:str, id:str) -> 'vtkXMLDataElement': ... + def GetAttribute(self, name:str) -> str: ... + def GetAttributeEncoding(self) -> int: ... + def GetAttributeEncodingMaxValue(self) -> int: ... + def GetAttributeEncodingMinValue(self) -> int: ... + def GetAttributeName(self, idx:int) -> str: ... + def GetAttributeValue(self, idx:int) -> str: ... + def GetCharacterData(self) -> str: ... + def GetCharacterDataWidth(self) -> int: ... + def GetId(self) -> str: ... + def GetName(self) -> str: ... + def GetNestedElement(self, index:int) -> 'vtkXMLDataElement': ... + def GetNumberOfAttributes(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfNestedElements(self) -> int: ... + def GetParent(self) -> 'vtkXMLDataElement': ... + def GetRoot(self) -> 'vtkXMLDataElement': ... + @overload + def GetScalarAttribute(self, name:str, value:int) -> int: ... + @overload + def GetScalarAttribute(self, name:str, value:float) -> int: ... + @overload + def GetVectorAttribute(self, name:str, length:int, value:MutableSequence[int]) -> int: ... + @overload + def GetVectorAttribute(self, name:str, length:int, value:MutableSequence[float]) -> int: ... + def GetWordTypeAttribute(self, name:str, value:int) -> int: ... + def GetXMLByteIndex(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsEqualTo(self, elem:'vtkXMLDataElement') -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LookupElement(self, id:str) -> 'vtkXMLDataElement': ... + def LookupElementWithName(self, name:str) -> 'vtkXMLDataElement': ... + def NewInstance(self) -> 'vtkXMLDataElement': ... + def PrintXML(self, fname:str) -> None: ... + def RemoveAllAttributes(self) -> None: ... + def RemoveAllNestedElements(self) -> None: ... + def RemoveAttribute(self, name:str) -> None: ... + def RemoveNestedElement(self, __a:'vtkXMLDataElement') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLDataElement': ... + def SetAttribute(self, name:str, value:str) -> None: ... + def SetAttributeEncoding(self, _arg:int) -> None: ... + def SetCharacterData(self, data:str, length:int) -> None: ... + def SetCharacterDataWidth(self, _arg:int) -> None: ... + def SetDoubleAttribute(self, name:str, value:float) -> None: ... + def SetFloatAttribute(self, name:str, value:float) -> None: ... + def SetId(self, _arg:str) -> None: ... + def SetIntAttribute(self, name:str, value:int) -> None: ... + def SetName(self, _arg:str) -> None: ... + def SetParent(self, parent:'vtkXMLDataElement') -> None: ... + def SetUnsignedLongAttribute(self, name:str, value:int) -> None: ... + @overload + def SetVectorAttribute(self, name:str, length:int, value:Sequence[int]) -> None: ... + @overload + def SetVectorAttribute(self, name:str, length:int, value:Sequence[float]) -> None: ... + def SetXMLByteIndex(self, _arg:int) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonExecutionModel.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonExecutionModel.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..6eb0d1b Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonExecutionModel.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonExecutionModel.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonExecutionModel.pyi new file mode 100644 index 0000000..eb79b1b --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonExecutionModel.pyi @@ -0,0 +1,2118 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore + +VTK_MAX_SPHERE_TREE_LEVELS:int +VTK_MAX_SPHERE_TREE_RESOLUTION:int +VTK_UPDATE_EXTENT_COMBINE:int +VTK_UPDATE_EXTENT_REPLACE:int + +class vtkExecutionAggregator(vtkmodules.vtkCommonCore.vtkObject): + output_data_object:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Aggregate(self, input:'vtkDataObject') -> bool: ... + def Clear(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputDataObject(self) -> 'vtkDataObject': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExecutionAggregator': ... + def RequestDataObject(self, input:'vtkDataObject') -> 'vtkDataObject': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExecutionAggregator': ... + +class vtkAggregateToPartitionedDataSetCollection(vtkExecutionAggregator): + output_data_object:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Aggregate(self, input:'vtkDataObject') -> bool: ... + def Clear(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputDataObject(self) -> 'vtkDataObject': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAggregateToPartitionedDataSetCollection': ... + def RequestDataObject(self, input:'vtkDataObject') -> 'vtkDataObject': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAggregateToPartitionedDataSetCollection': ... + +class vtkAlgorithm(vtkmodules.vtkCommonCore.vtkObject): + class DesiredOutputPrecision(int): ... + DEFAULT_PRECISION:'DesiredOutputPrecision' + DOUBLE_PRECISION:'DesiredOutputPrecision' + SINGLE_PRECISION:'DesiredOutputPrecision' + abort_execute:'getset_descriptor' + abort_output:'getset_descriptor' + container_algorithm:'getset_descriptor' + default_executive_prototype:'getset_descriptor' + error_code:'getset_descriptor' + executive:'getset_descriptor' + information:'getset_descriptor' + input_algorithm:'getset_descriptor' + input_array_to_process:'getset_descriptor' + input_connection:'getset_descriptor' + input_data_object:'getset_descriptor' + input_executive:'getset_descriptor' + input_information:'getset_descriptor' + no_prior_temporal_access_information_key:'getset_descriptor' + number_of_input_ports:'getset_descriptor' + output_port:'getset_descriptor' + progress:'getset_descriptor' + progress_observer:'getset_descriptor' + progress_scale:'getset_descriptor' + progress_shift:'getset_descriptor' + progress_shift_scale:'getset_descriptor' + progress_text:'getset_descriptor' + release_data_flag:'getset_descriptor' + total_number_of_input_connections:'getset_descriptor' + update_extent:'getset_descriptor' + update_ghost_level:'getset_descriptor' + update_number_of_pieces:'getset_descriptor' + update_piece:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ABORTED() -> 'vtkInformationIntegerKey': ... + def AbortExecuteOff(self) -> None: ... + def AbortExecuteOn(self) -> None: ... + @overload + def AddInputConnection(self, port:int, input:'vtkAlgorithmOutput') -> None: ... + @overload + def AddInputConnection(self, input:'vtkAlgorithmOutput') -> None: ... + @overload + def AddInputDataObject(self, port:int, data:'vtkDataObject') -> None: ... + @overload + def AddInputDataObject(self, data:'vtkDataObject') -> None: ... + @staticmethod + def CAN_HANDLE_PIECE_REQUEST() -> 'vtkInformationIntegerKey': ... + @staticmethod + def CAN_PRODUCE_SUB_EXTENT() -> 'vtkInformationIntegerKey': ... + def CheckAbort(self) -> bool: ... + def ConvertTotalInputToPortConnection(self, ind:int, port:int, conn:int) -> None: ... + def GetAbortExecute(self) -> int: ... + def GetAbortOutput(self) -> bool: ... + def GetContainerAlgorithm(self) -> 'vtkAlgorithm': ... + def GetErrorCode(self) -> int: ... + def GetExecutive(self) -> 'vtkExecutive': ... + def GetInformation(self) -> 'vtkInformation': ... + @overload + def GetInputAlgorithm(self, port:int, index:int, algPort:int) -> 'vtkAlgorithm': ... + @overload + def GetInputAlgorithm(self, port:int, index:int) -> 'vtkAlgorithm': ... + @overload + def GetInputAlgorithm(self) -> 'vtkAlgorithm': ... + def GetInputArrayInformation(self, idx:int) -> 'vtkInformation': ... + def GetInputConnection(self, port:int, index:int) -> 'vtkAlgorithmOutput': ... + def GetInputDataObject(self, port:int, connection:int) -> 'vtkDataObject': ... + @overload + def GetInputExecutive(self, port:int, index:int) -> 'vtkExecutive': ... + @overload + def GetInputExecutive(self) -> 'vtkExecutive': ... + @overload + def GetInputInformation(self, port:int, index:int) -> 'vtkInformation': ... + @overload + def GetInputInformation(self) -> 'vtkInformation': ... + def GetInputPortInformation(self, port:int) -> 'vtkInformation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfInputConnections(self, port:int) -> int: ... + def GetNumberOfInputPorts(self) -> int: ... + def GetNumberOfOutputPorts(self) -> int: ... + def GetOutputDataObject(self, port:int) -> 'vtkDataObject': ... + def GetOutputInformation(self, port:int) -> 'vtkInformation': ... + @overload + def GetOutputPort(self, index:int) -> 'vtkAlgorithmOutput': ... + @overload + def GetOutputPort(self) -> 'vtkAlgorithmOutput': ... + def GetOutputPortInformation(self, port:int) -> 'vtkInformation': ... + def GetProgress(self) -> float: ... + def GetProgressObserver(self) -> 'vtkProgressObserver': ... + def GetProgressScale(self) -> float: ... + def GetProgressShift(self) -> float: ... + def GetProgressText(self) -> str: ... + def GetReleaseDataFlag(self) -> int: ... + def GetTotalNumberOfInputConnections(self) -> int: ... + @overload + def GetUpdateExtent(self) -> Tuple[int, int, int, int, int, int]: ... + @overload + def GetUpdateExtent(self, port:int) -> Tuple[int, int, int, int, int, int]: ... + @overload + def GetUpdateExtent(self, x0:int, x1:int, y0:int, y1:int, z0:int, z1:int) -> None: ... + @overload + def GetUpdateExtent(self, port:int, x0:int, x1:int, y0:int, y1:int, z0:int, z1:int) -> None: ... + @overload + def GetUpdateExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def GetUpdateExtent(self, port:int, extent:MutableSequence[int]) -> None: ... + @overload + def GetUpdateGhostLevel(self) -> int: ... + @overload + def GetUpdateGhostLevel(self, port:int) -> int: ... + @overload + def GetUpdateNumberOfPieces(self) -> int: ... + @overload + def GetUpdateNumberOfPieces(self, port:int) -> int: ... + @overload + def GetUpdatePiece(self) -> int: ... + @overload + def GetUpdatePiece(self, port:int) -> int: ... + def HasExecutive(self) -> int: ... + @staticmethod + def INPUT_ARRAYS_TO_PROCESS() -> 'vtkInformationInformationVectorKey': ... + @staticmethod + def INPUT_CONNECTION() -> 'vtkInformationIntegerKey': ... + @staticmethod + def INPUT_IS_OPTIONAL() -> 'vtkInformationIntegerKey': ... + @staticmethod + def INPUT_IS_REPEATABLE() -> 'vtkInformationIntegerKey': ... + @staticmethod + def INPUT_PORT() -> 'vtkInformationIntegerKey': ... + @staticmethod + def INPUT_REQUIRED_DATA_TYPE() -> 'vtkInformationStringVectorKey': ... + @staticmethod + def INPUT_REQUIRED_FIELDS() -> 'vtkInformationInformationVectorKey': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def ModifyRequest(self, request:'vtkInformation', when:int) -> int: ... + def NewInstance(self) -> 'vtkAlgorithm': ... + def ProcessRequest(self, request:'vtkInformation', inInfo:'vtkCollection', outInfo:'vtkInformationVector') -> int: ... + def PropagateUpdateExtent(self) -> None: ... + def ReleaseDataFlagOff(self) -> None: ... + def ReleaseDataFlagOn(self) -> None: ... + def RemoveAllInputConnections(self, port:int) -> None: ... + def RemoveAllInputs(self) -> None: ... + @overload + def RemoveInputConnection(self, port:int, input:'vtkAlgorithmOutput') -> None: ... + @overload + def RemoveInputConnection(self, port:int, idx:int) -> None: ... + def RemoveNoPriorTemporalAccessInformationKey(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAlgorithm': ... + def SetAbortExecute(self, _arg:int) -> None: ... + def SetAbortExecuteAndUpdateTime(self) -> None: ... + def SetAbortOutput(self, _arg:bool) -> None: ... + def SetContainerAlgorithm(self, containerAlg:'vtkAlgorithm') -> None: ... + @staticmethod + def SetDefaultExecutivePrototype(proto:'vtkExecutive') -> None: ... + def SetExecutive(self, executive:'vtkExecutive') -> None: ... + def SetInformation(self, __a:'vtkInformation') -> None: ... + @overload + def SetInputArrayToProcess(self, name:str, fieldAssociation:int) -> None: ... + @overload + def SetInputArrayToProcess(self, idx:int, port:int, connection:int, fieldAssociation:int, name:str) -> None: ... + @overload + def SetInputArrayToProcess(self, idx:int, port:int, connection:int, fieldAssociation:int, fieldAttributeType:int) -> None: ... + @overload + def SetInputArrayToProcess(self, idx:int, info:'vtkInformation') -> None: ... + @overload + def SetInputArrayToProcess(self, idx:int, port:int, connection:int, fieldAssociation:str, attributeTypeorName:str) -> None: ... + @overload + def SetInputConnection(self, port:int, input:'vtkAlgorithmOutput') -> None: ... + @overload + def SetInputConnection(self, input:'vtkAlgorithmOutput') -> None: ... + @overload + def SetInputDataObject(self, port:int, data:'vtkDataObject') -> None: ... + @overload + def SetInputDataObject(self, data:'vtkDataObject') -> None: ... + @overload + def SetNoPriorTemporalAccessInformationKey(self, key:int) -> None: ... + @overload + def SetNoPriorTemporalAccessInformationKey(self) -> None: ... + def SetProgressObserver(self, __a:'vtkProgressObserver') -> None: ... + def SetProgressShiftScale(self, shift:float, scale:float) -> None: ... + def SetProgressText(self, ptext:str) -> None: ... + def SetReleaseDataFlag(self, __a:int) -> None: ... + @overload + def Update(self, port:int) -> None: ... + @overload + def Update(self) -> None: ... + @overload + def Update(self, port:int, requests:'vtkInformationVector') -> int: ... + @overload + def Update(self, requests:'vtkInformation') -> int: ... + def UpdateDataObject(self) -> None: ... + def UpdateExtent(self, extents:Sequence[int]) -> int: ... + @overload + def UpdateExtentIsEmpty(self, pinfo:'vtkInformation', output:'vtkDataObject') -> int: ... + @overload + def UpdateExtentIsEmpty(self, pinfo:'vtkInformation', extentType:int) -> int: ... + def UpdateInformation(self) -> None: ... + def UpdatePiece(self, piece:int, numPieces:int, ghostLevels:int, extents:Sequence[int]=...) -> int: ... + def UpdateProgress(self, amount:float) -> None: ... + def UpdateTimeStep(self, time:float, piece:int=-1, numPieces:int=1, ghostLevels:int=0, extents:Sequence[int]=...) -> int: ... + def UpdateWholeExtent(self) -> None: ... + def UsesGarbageCollector(self) -> bool: ... + +class vtkAlgorithmOutput(vtkmodules.vtkCommonCore.vtkObject): + index:'getset_descriptor' + producer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetIndex(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProducer(self) -> 'vtkAlgorithm': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAlgorithmOutput': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAlgorithmOutput': ... + def SetIndex(self, index:int) -> None: ... + def SetProducer(self, producer:'vtkAlgorithm') -> None: ... + +class vtkAnnotationLayersAlgorithm(vtkAlgorithm): + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkAnnotationLayers': ... + @overload + def GetOutput(self, index:int) -> 'vtkAnnotationLayers': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAnnotationLayersAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAnnotationLayersAlgorithm': ... + @overload + def SetInputData(self, obj:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, index:int, obj:'vtkDataObject') -> None: ... + +class vtkArrayDataAlgorithm(vtkAlgorithm): + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkArrayData': ... + @overload + def GetOutput(self, index:int) -> 'vtkArrayData': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayDataAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayDataAlgorithm': ... + @overload + def SetInputData(self, obj:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, index:int, obj:'vtkDataObject') -> None: ... + +class vtkExecutive(vtkmodules.vtkCommonCore.vtkObject): + AfterForward:int + BeforeForward:int + RequestDownstream:int + RequestUpstream:int + algorithm:'getset_descriptor' + number_of_input_ports:'getset_descriptor' + number_of_output_ports:'getset_descriptor' + output_information:'getset_descriptor' + shared_output_information:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ALGORITHM_AFTER_FORWARD() -> 'vtkInformationIntegerKey': ... + @staticmethod + def ALGORITHM_BEFORE_FORWARD() -> 'vtkInformationIntegerKey': ... + @staticmethod + def ALGORITHM_DIRECTION() -> 'vtkInformationIntegerKey': ... + @staticmethod + def CONSUMERS() -> 'vtkInformationExecutivePortVectorKey': ... + @staticmethod + def FORWARD_DIRECTION() -> 'vtkInformationIntegerKey': ... + @staticmethod + def FROM_OUTPUT_PORT() -> 'vtkInformationIntegerKey': ... + def GetAlgorithm(self) -> 'vtkAlgorithm': ... + def GetInputData(self, port:int, connection:int) -> 'vtkDataObject': ... + def GetInputExecutive(self, port:int, connection:int) -> 'vtkExecutive': ... + @overload + def GetInputInformation(self, port:int, connection:int) -> 'vtkInformation': ... + @overload + def GetInputInformation(self, port:int) -> 'vtkInformationVector': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfInputConnections(self, port:int) -> int: ... + def GetNumberOfInputPorts(self) -> int: ... + def GetNumberOfOutputPorts(self) -> int: ... + def GetOutputData(self, port:int) -> 'vtkDataObject': ... + @overload + def GetOutputInformation(self, port:int) -> 'vtkInformation': ... + @overload + def GetOutputInformation(self) -> 'vtkInformationVector': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def KEYS_TO_COPY() -> 'vtkInformationKeyVectorKey': ... + def NewInstance(self) -> 'vtkExecutive': ... + @staticmethod + def PRODUCER() -> 'vtkInformationExecutivePortKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExecutive': ... + @overload + def SetOutputData(self, port:int, __b:'vtkDataObject', info:'vtkInformation') -> None: ... + @overload + def SetOutputData(self, port:int, __b:'vtkDataObject') -> None: ... + def SetSharedOutputInformation(self, outInfoVec:'vtkInformationVector') -> None: ... + @overload + def Update(self) -> int: ... + @overload + def Update(self, port:int) -> int: ... + def UpdateInformation(self) -> int: ... + def UsesGarbageCollector(self) -> bool: ... + +class vtkDemandDrivenPipeline(vtkExecutive): + pipeline_m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def DATA_NOT_GENERATED() -> 'vtkInformationIntegerKey': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPipelineMTime(self) -> int: ... + def GetReleaseDataFlag(self, port:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def NewDataObject(type:str) -> 'vtkDataObject': ... + def NewInstance(self) -> 'vtkDemandDrivenPipeline': ... + @staticmethod + def RELEASE_DATA() -> 'vtkInformationIntegerKey': ... + @staticmethod + def REQUEST_DATA() -> 'vtkInformationRequestKey': ... + @staticmethod + def REQUEST_DATA_NOT_GENERATED() -> 'vtkInformationRequestKey': ... + @staticmethod + def REQUEST_DATA_OBJECT() -> 'vtkInformationRequestKey': ... + @staticmethod + def REQUEST_INFORMATION() -> 'vtkInformationRequestKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDemandDrivenPipeline': ... + def SetReleaseDataFlag(self, port:int, n:int) -> int: ... + @overload + def Update(self) -> int: ... + @overload + def Update(self, port:int) -> int: ... + def UpdateData(self, outputPort:int) -> int: ... + def UpdateDataObject(self) -> int: ... + def UpdateInformation(self) -> int: ... + def UpdatePipelineMTime(self) -> int: ... + +class vtkStreamingDemandDrivenPipeline(vtkDemandDrivenPipeline): + class NO_PRIOR_TEMPORAL_ACCESS_STATES(int): ... + NO_PRIOR_TEMPORAL_ACCESS_CONTINUE:'NO_PRIOR_TEMPORAL_ACCESS_STATES' + NO_PRIOR_TEMPORAL_ACCESS_RESET:'NO_PRIOR_TEMPORAL_ACCESS_STATES' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def BOUNDS() -> 'vtkInformationDoubleVectorKey': ... + @staticmethod + def COMBINED_UPDATE_EXTENT() -> 'vtkInformationIntegerVectorKey': ... + @staticmethod + def CONTINUE_EXECUTING() -> 'vtkInformationIntegerKey': ... + @staticmethod + def EXACT_EXTENT() -> 'vtkInformationIntegerKey': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRequestExactExtent(self, port:int) -> int: ... + @overload + @staticmethod + def GetUpdateExtent(__a:'vtkInformation', extent:MutableSequence[int]) -> None: ... + @overload + @staticmethod + def GetUpdateExtent(__a:'vtkInformation') -> Pointer: ... + @staticmethod + def GetUpdateGhostLevel(__a:'vtkInformation') -> int: ... + @staticmethod + def GetUpdateNumberOfPieces(__a:'vtkInformation') -> int: ... + @staticmethod + def GetUpdatePiece(__a:'vtkInformation') -> int: ... + @overload + @staticmethod + def GetWholeExtent(__a:'vtkInformation', extent:MutableSequence[int]) -> None: ... + @overload + @staticmethod + def GetWholeExtent(__a:'vtkInformation') -> Tuple[int, int, int, int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def NO_PRIOR_TEMPORAL_ACCESS() -> 'vtkInformationIntegerKey': ... + def NewInstance(self) -> 'vtkStreamingDemandDrivenPipeline': ... + def PropagateTime(self, outputPort:int) -> int: ... + def PropagateUpdateExtent(self, outputPort:int) -> int: ... + @staticmethod + def REQUEST_TIME_DEPENDENT_INFORMATION() -> 'vtkInformationRequestKey': ... + @staticmethod + def REQUEST_UPDATE_EXTENT() -> 'vtkInformationRequestKey': ... + @staticmethod + def REQUEST_UPDATE_TIME() -> 'vtkInformationRequestKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStreamingDemandDrivenPipeline': ... + def SetRequestExactExtent(self, port:int, flag:int) -> int: ... + @staticmethod + def SetWholeExtent(__a:'vtkInformation', extent:MutableSequence[int]) -> int: ... + @staticmethod + def TIME_DEPENDENT_INFORMATION() -> 'vtkInformationIntegerKey': ... + @staticmethod + def TIME_RANGE() -> 'vtkInformationDoubleVectorKey': ... + @staticmethod + def TIME_STEPS() -> 'vtkInformationDoubleVectorKey': ... + @staticmethod + def UNRESTRICTED_UPDATE_EXTENT() -> 'vtkInformationIntegerKey': ... + @staticmethod + def UPDATE_EXTENT() -> 'vtkInformationIntegerVectorKey': ... + @staticmethod + def UPDATE_EXTENT_INITIALIZED() -> 'vtkInformationIntegerKey': ... + @staticmethod + def UPDATE_NUMBER_OF_GHOST_LEVELS() -> 'vtkInformationIntegerKey': ... + @staticmethod + def UPDATE_NUMBER_OF_PIECES() -> 'vtkInformationIntegerKey': ... + @staticmethod + def UPDATE_PIECE_NUMBER() -> 'vtkInformationIntegerKey': ... + @staticmethod + def UPDATE_TIME_STEP() -> 'vtkInformationDoubleKey': ... + @overload + def Update(self) -> int: ... + @overload + def Update(self, port:int) -> int: ... + @overload + def Update(self, port:int, requests:'vtkInformationVector') -> int: ... + def UpdateTimeDependentInformation(self, outputPort:int) -> int: ... + def UpdateWholeExtent(self) -> int: ... + @staticmethod + def WHOLE_EXTENT() -> 'vtkInformationIntegerVectorKey': ... + +class vtkCachedStreamingDemandDrivenPipeline(vtkStreamingDemandDrivenPipeline): + cache_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCacheSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCachedStreamingDemandDrivenPipeline': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCachedStreamingDemandDrivenPipeline': ... + def SetCacheSize(self, size:int) -> None: ... + +class vtkDataSetAlgorithm(vtkAlgorithm): + image_data_output:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + output:'getset_descriptor' + poly_data_output:'getset_descriptor' + rectilinear_grid_output:'getset_descriptor' + structured_grid_output:'getset_descriptor' + structured_points_output:'getset_descriptor' + unstructured_grid_output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def AddInputData(self, __a:'vtkDataSet') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataSet') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def GetImageDataOutput(self) -> 'vtkImageData': ... + def GetInput(self) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkDataSet': ... + @overload + def GetOutput(self, __a:int) -> 'vtkDataSet': ... + def GetPolyDataOutput(self) -> 'vtkPolyData': ... + def GetRectilinearGridOutput(self) -> 'vtkRectilinearGrid': ... + def GetStructuredGridOutput(self) -> 'vtkStructuredGrid': ... + def GetStructuredPointsOutput(self) -> 'vtkStructuredPoints': ... + def GetUnstructuredGridOutput(self) -> 'vtkUnstructuredGrid': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataSetAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataSetAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:'vtkDataSet') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataSet') -> None: ... + +class vtkCastToConcrete(vtkDataSetAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCastToConcrete': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCastToConcrete': ... + +class vtkCellGridAlgorithm(vtkAlgorithm): + input:'getset_descriptor' + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + @overload + def GetInput(self) -> 'vtkDataObject': ... + @overload + def GetInput(self, port:int) -> 'vtkDataObject': ... + @overload + def GetInputCellAttributeToProcess(self, idx:int, input:'vtkCellGrid') -> 'vtkCellAttribute': ... + @overload + def GetInputCellAttributeToProcess(self, idx:int, input:'vtkCellGrid', association:int) -> 'vtkCellAttribute': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkCellGrid': ... + @overload + def GetOutput(self, __a:int) -> 'vtkCellGrid': ... + def GetPolyDataInput(self, port:int) -> 'vtkCellGrid': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridAlgorithm': ... + def SetInputAttributeToProcess(self, idx:int, port:int, connection:int, name:str) -> None: ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def SetOutput(self, d:'vtkDataObject') -> None: ... + +class vtkCompositeDataPipeline(vtkStreamingDemandDrivenPipeline): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def BLOCK_AMOUNT_OF_DETAIL() -> 'vtkInformationDoubleKey': ... + @staticmethod + def COMPOSITE_DATA_META_DATA() -> 'vtkInformationObjectBaseKey': ... + def GetCompositeOutputData(self, port:int) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def LOAD_REQUESTED_BLOCKS() -> 'vtkInformationIntegerKey': ... + def NewInstance(self) -> 'vtkCompositeDataPipeline': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeDataPipeline': ... + @staticmethod + def UPDATE_COMPOSITE_INDICES() -> 'vtkInformationIntegerVectorKey': ... + +class vtkCompositeDataSetAlgorithm(vtkAlgorithm): + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkCompositeDataSet': ... + @overload + def GetOutput(self, __a:int) -> 'vtkCompositeDataSet': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositeDataSetAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeDataSetAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + +class vtkDataObjectAlgorithm(vtkAlgorithm): + input:'getset_descriptor' + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + @overload + def GetInput(self) -> 'vtkDataObject': ... + @overload + def GetInput(self, port:int) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkDataObject': ... + @overload + def GetOutput(self, __a:int) -> 'vtkDataObject': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataObjectAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataObjectAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def SetOutput(self, d:'vtkDataObject') -> None: ... + +class vtkDirectedGraphAlgorithm(vtkAlgorithm): + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkDirectedGraph': ... + @overload + def GetOutput(self, index:int) -> 'vtkDirectedGraph': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDirectedGraphAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDirectedGraphAlgorithm': ... + @overload + def SetInputData(self, obj:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, index:int, obj:'vtkDataObject') -> None: ... + +class vtkEndFor(vtkDataObjectAlgorithm): + aggregator:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEndFor': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEndFor': ... + def SetAggregator(self, __a:'vtkExecutionAggregator') -> None: ... + +class vtkEnsembleSource(vtkAlgorithm): + current_member:'getset_descriptor' + meta_data:'getset_descriptor' + number_of_members:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddMember(self, __a:'vtkAlgorithm') -> None: ... + def GetCurrentMember(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfMembers(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def META_DATA() -> 'vtkInformationDataObjectMetaDataKey': ... + def NewInstance(self) -> 'vtkEnsembleSource': ... + def RemoveAllMembers(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEnsembleSource': ... + def SetCurrentMember(self, _arg:int) -> None: ... + def SetMetaData(self, __a:'vtkTable') -> None: ... + @staticmethod + def UPDATE_MEMBER() -> 'vtkInformationIntegerRequestKey': ... + +class vtkExecutionRange(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExecutionRange': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExecutionRange': ... + def Size(self) -> int: ... + +class vtkExplicitStructuredGridAlgorithm(vtkAlgorithm): + input:'getset_descriptor' + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def GetExplicitStructuredGridInput(self, port:int) -> 'vtkExplicitStructuredGrid': ... + @overload + def GetInput(self) -> 'vtkDataObject': ... + @overload + def GetInput(self, port:int) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkExplicitStructuredGrid': ... + @overload + def GetOutput(self, __a:int) -> 'vtkExplicitStructuredGrid': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExplicitStructuredGridAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExplicitStructuredGridAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def SetOutput(self, d:'vtkDataObject') -> None: ... + +class vtkExtentRCBPartitioner(vtkmodules.vtkCommonCore.vtkObject): + duplicate_nodes:'getset_descriptor' + global_extent:'getset_descriptor' + num_extents:'getset_descriptor' + number_of_ghost_layers:'getset_descriptor' + number_of_partitions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DuplicateNodesOff(self) -> None: ... + def DuplicateNodesOn(self) -> None: ... + def GetDuplicateNodes(self) -> int: ... + def GetNumExtents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfGhostLayers(self) -> int: ... + def GetPartitionExtent(self, idx:int, ext:MutableSequence[int]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtentRCBPartitioner': ... + def Partition(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtentRCBPartitioner': ... + def SetDuplicateNodes(self, _arg:int) -> None: ... + @overload + def SetGlobalExtent(self, imin:int, imax:int, jmin:int, jmax:int, kmin:int, kmax:int) -> None: ... + @overload + def SetGlobalExtent(self, ext:MutableSequence[int]) -> None: ... + def SetNumberOfGhostLayers(self, _arg:int) -> None: ... + def SetNumberOfPartitions(self, N:int) -> None: ... + +class vtkExtentSplitter(vtkmodules.vtkCommonCore.vtkObject): + point_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddExtent(self, x0:int, x1:int, y0:int, y1:int, z0:int, z1:int) -> None: ... + @overload + def AddExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def AddExtentSource(self, id:int, priority:int, x0:int, x1:int, y0:int, y1:int, z0:int, z1:int) -> None: ... + @overload + def AddExtentSource(self, id:int, priority:int, extent:MutableSequence[int]) -> None: ... + def ComputeSubExtents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSubExtents(self) -> int: ... + def GetPointMode(self) -> int: ... + @overload + def GetSubExtent(self, index:int) -> Tuple[int, int, int, int, int, int]: ... + @overload + def GetSubExtent(self, index:int, extent:MutableSequence[int]) -> None: ... + def GetSubExtentSource(self, index:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtentSplitter': ... + def PointModeOff(self) -> None: ... + def PointModeOn(self) -> None: ... + def RemoveAllExtentSources(self) -> None: ... + def RemoveExtentSource(self, id:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtentSplitter': ... + def SetPointMode(self, _arg:int) -> None: ... + +class vtkExtentTranslator(vtkmodules.vtkCommonCore.vtkObject): + class Modes(int): ... + BLOCK_MODE:'Modes' + X_SLAB_MODE:'Modes' + Y_SLAB_MODE:'Modes' + Z_SLAB_MODE:'Modes' + extent:'getset_descriptor' + ghost_level:'getset_descriptor' + piece:'getset_descriptor' + split_mode:'getset_descriptor' + whole_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetGhostLevel(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPieces(self) -> int: ... + def GetPiece(self) -> int: ... + def GetSplitMode(self) -> int: ... + def GetWholeExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtentTranslator': ... + def PieceToExtent(self) -> int: ... + def PieceToExtentByPoints(self) -> int: ... + def PieceToExtentThreadSafe(self, piece:int, numPieces:int, ghostLevel:int, wholeExtent:MutableSequence[int], resultExtent:MutableSequence[int], splitMode:int, byPoints:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtentTranslator': ... + @overload + def SetExtent(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetExtent(self, _arg:Sequence[int]) -> None: ... + def SetGhostLevel(self, _arg:int) -> None: ... + def SetNumberOfPieces(self, _arg:int) -> None: ... + def SetPiece(self, _arg:int) -> None: ... + def SetSplitModeToBlock(self) -> None: ... + def SetSplitModeToXSlab(self) -> None: ... + def SetSplitModeToYSlab(self) -> None: ... + def SetSplitModeToZSlab(self) -> None: ... + def SetSplitPath(self, len:int, splitpath:MutableSequence[int]) -> None: ... + @overload + def SetWholeExtent(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetWholeExtent(self, _arg:Sequence[int]) -> None: ... + @staticmethod + def UPDATE_SPLIT_MODE() -> 'vtkInformationIntegerRequestKey': ... + +class vtkFilteringInformationKeyManager(object): + def __init__(self) -> None: ... + +class vtkForEach(vtkDataObjectAlgorithm): + range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def FOR_EACH_FILTER() -> 'vtkInformationObjectBaseKey': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsIterating(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Iter(self) -> None: ... + def NewInstance(self) -> 'vtkForEach': ... + def RegisterEndFor(self, __a:'vtkEndFor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkForEach': ... + def SetRange(self, __a:'vtkExecutionRange') -> None: ... + +class vtkGraphAlgorithm(vtkAlgorithm): + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkGraph': ... + @overload + def GetOutput(self, index:int) -> 'vtkGraph': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGraphAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraphAlgorithm': ... + @overload + def SetInputData(self, obj:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, index:int, obj:'vtkDataObject') -> None: ... + +class vtkHierarchicalBoxDataSetAlgorithm(vtkAlgorithm): + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkHierarchicalBoxDataSet': ... + @overload + def GetOutput(self, __a:int) -> 'vtkHierarchicalBoxDataSet': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHierarchicalBoxDataSetAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHierarchicalBoxDataSetAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + +class vtkHyperTreeGridAlgorithm(vtkAlgorithm): + hyper_tree_grid_output:'getset_descriptor' + input_data:'getset_descriptor' + output:'getset_descriptor' + poly_data_output:'getset_descriptor' + unstructured_grid_output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + @overload + def GetHyperTreeGridOutput(self) -> 'vtkHyperTreeGrid': ... + @overload + def GetHyperTreeGridOutput(self, __a:int) -> 'vtkHyperTreeGrid': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkDataObject': ... + @overload + def GetOutput(self, __a:int) -> 'vtkDataObject': ... + @overload + def GetPolyDataOutput(self) -> 'vtkPolyData': ... + @overload + def GetPolyDataOutput(self, __a:int) -> 'vtkPolyData': ... + @overload + def GetUnstructuredGridOutput(self) -> 'vtkUnstructuredGrid': ... + @overload + def GetUnstructuredGridOutput(self, __a:int) -> 'vtkUnstructuredGrid': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def SetOutput(self, __a:'vtkDataObject') -> None: ... + +class vtkImageAlgorithm(vtkAlgorithm): + input:'getset_descriptor' + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def GetImageDataInput(self, port:int) -> 'vtkImageData': ... + @overload + def GetInput(self, port:int) -> 'vtkDataObject': ... + @overload + def GetInput(self) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkImageData': ... + @overload + def GetOutput(self, __a:int) -> 'vtkImageData': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def SetOutput(self, d:'vtkDataObject') -> None: ... + +class vtkImageInPlaceFilter(vtkImageAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageInPlaceFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageInPlaceFilter': ... + +class vtkStructuredGridAlgorithm(vtkAlgorithm): + input:'getset_descriptor' + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + @overload + def GetInput(self) -> 'vtkDataObject': ... + @overload + def GetInput(self, port:int) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkStructuredGrid': ... + @overload + def GetOutput(self, __a:int) -> 'vtkStructuredGrid': ... + def GetStructuredGridInput(self, port:int) -> 'vtkStructuredGrid': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStructuredGridAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStructuredGridAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def SetOutput(self, d:'vtkDataObject') -> None: ... + +class vtkImageToStructuredGrid(vtkStructuredGridAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageToStructuredGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageToStructuredGrid': ... + +class vtkImageToStructuredPoints(vtkImageAlgorithm): + structured_points_output:'getset_descriptor' + vector_input:'getset_descriptor' + vector_input_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStructuredPointsOutput(self) -> 'vtkStructuredPoints': ... + def GetVectorInput(self) -> 'vtkImageData': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageToStructuredPoints': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageToStructuredPoints': ... + def SetVectorInputData(self, input:'vtkImageData') -> None: ... + +class vtkInformationDataObjectMetaDataKey(vtkmodules.vtkCommonCore.vtkInformationDataObjectKey): + def __init__(self, **properties:Any) -> None: ... + def CopyDefaultInformation(self, request:'vtkInformation', fromInfo:'vtkInformation', toInfo:'vtkInformation') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MakeKey(name:str, location:str) -> 'vtkInformationDataObjectMetaDataKey': ... + def NewInstance(self) -> 'vtkInformationDataObjectMetaDataKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationDataObjectMetaDataKey': ... + +class vtkInformationExecutivePortKey(vtkmodules.vtkCommonCore.vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def GetExecutive(self, info:'vtkInformation') -> 'vtkExecutive': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPort(self, info:'vtkInformation') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MakeKey(name:str, location:str) -> 'vtkInformationExecutivePortKey': ... + def NewInstance(self) -> 'vtkInformationExecutivePortKey': ... + def Report(self, info:'vtkInformation', collector:'vtkGarbageCollector') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationExecutivePortKey': ... + def Set(self, info:'vtkInformation', __b:'vtkExecutive', __c:int) -> None: ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationExecutivePortVectorKey(vtkmodules.vtkCommonCore.vtkInformationKey): + def __init__(self, **properties:Any) -> None: ... + def Append(self, info:'vtkInformation', executive:'vtkExecutive', port:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPorts(self, info:'vtkInformation') -> Pointer: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Length(self, info:'vtkInformation') -> int: ... + @staticmethod + def MakeKey(name:str, location:str) -> 'vtkInformationExecutivePortVectorKey': ... + def NewInstance(self) -> 'vtkInformationExecutivePortVectorKey': ... + @overload + def Remove(self, info:'vtkInformation', executive:'vtkExecutive', port:int) -> None: ... + @overload + def Remove(self, info:'vtkInformation') -> None: ... + def Report(self, info:'vtkInformation', collector:'vtkGarbageCollector') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationExecutivePortVectorKey': ... + def ShallowCopy(self, from_:'vtkInformation', to:'vtkInformation') -> None: ... + +class vtkInformationIntegerRequestKey(vtkmodules.vtkCommonCore.vtkInformationIntegerKey): + def __init__(self, **properties:Any) -> None: ... + def CopyDefaultInformation(self, request:'vtkInformation', fromInfo:'vtkInformation', toInfo:'vtkInformation') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MakeKey(name:str, location:str) -> 'vtkInformationIntegerRequestKey': ... + def NeedToExecute(self, pipelineInfo:'vtkInformation', dobjInfo:'vtkInformation') -> bool: ... + def NewInstance(self) -> 'vtkInformationIntegerRequestKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInformationIntegerRequestKey': ... + def StoreMetaData(self, request:'vtkInformation', pipelineInfo:'vtkInformation', dobjInfo:'vtkInformation') -> None: ... + +class vtkMoleculeAlgorithm(vtkAlgorithm): + input:'getset_descriptor' + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + @overload + def GetInput(self) -> 'vtkDataObject': ... + @overload + def GetInput(self, port:int) -> 'vtkDataObject': ... + def GetMoleculeInput(self, port:int) -> 'vtkMolecule': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkMolecule': ... + @overload + def GetOutput(self, __a:int) -> 'vtkMolecule': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMoleculeAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMoleculeAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def SetOutput(self, d:'vtkMolecule') -> None: ... + +class vtkMultiBlockDataSetAlgorithm(vtkAlgorithm): + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkMultiBlockDataSet': ... + @overload + def GetOutput(self, __a:int) -> 'vtkMultiBlockDataSet': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMultiBlockDataSetAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMultiBlockDataSetAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + +class vtkMultiTimeStepAlgorithm(vtkAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMultiTimeStepAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMultiTimeStepAlgorithm': ... + +class vtkUniformGridAMRAlgorithm(vtkAlgorithm): + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkUniformGridAMR': ... + @overload + def GetOutput(self, __a:int) -> 'vtkUniformGridAMR': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUniformGridAMRAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUniformGridAMRAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + +class vtkNonOverlappingAMRAlgorithm(vtkUniformGridAMRAlgorithm): + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkNonOverlappingAMR': ... + @overload + def GetOutput(self, __a:int) -> 'vtkNonOverlappingAMR': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkNonOverlappingAMRAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkNonOverlappingAMRAlgorithm': ... + +class vtkOverlappingAMRAlgorithm(vtkUniformGridAMRAlgorithm): + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkOverlappingAMR': ... + @overload + def GetOutput(self, __a:int) -> 'vtkOverlappingAMR': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOverlappingAMRAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOverlappingAMRAlgorithm': ... + +class vtkReaderAlgorithm(vtkAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def CreateOutput(self, currentOutput:'vtkDataObject') -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkReaderAlgorithm': ... + def ReadArrays(self, piece:int, npieces:int, nghosts:int, timestep:int, output:'vtkDataObject') -> int: ... + def ReadMesh(self, piece:int, npieces:int, nghosts:int, timestep:int, output:'vtkDataObject') -> int: ... + def ReadMetaData(self, metadata:'vtkInformation') -> int: ... + def ReadPoints(self, piece:int, npieces:int, nghosts:int, timestep:int, output:'vtkDataObject') -> int: ... + def ReadTimeDependentMetaData(self, __a:int, __b:'vtkInformation') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkReaderAlgorithm': ... + +class vtkParallelReader(vtkReaderAlgorithm): + current_file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddFileName(self, fname:str) -> None: ... + def ClearFileNames(self) -> None: ... + def GetCurrentFileName(self) -> str: ... + def GetFileName(self, i:int) -> str: ... + def GetNumberOfFileNames(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParallelReader': ... + def ReadArrays(self, piece:int, npieces:int, nghosts:int, timestep:int, output:'vtkDataObject') -> int: ... + def ReadMesh(self, piece:int, npieces:int, nghosts:int, timestep:int, output:'vtkDataObject') -> int: ... + def ReadMetaData(self, metadata:'vtkInformation') -> int: ... + def ReadPoints(self, piece:int, npieces:int, nghosts:int, timestep:int, output:'vtkDataObject') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParallelReader': ... + +class vtkPartitionedDataSetAlgorithm(vtkAlgorithm): + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkPartitionedDataSet': ... + @overload + def GetOutput(self, __a:int) -> 'vtkPartitionedDataSet': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPartitionedDataSetAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPartitionedDataSetAlgorithm': ... + +class vtkPartitionedDataSetCollectionAlgorithm(vtkAlgorithm): + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkPartitionedDataSetCollection': ... + @overload + def GetOutput(self, __a:int) -> 'vtkPartitionedDataSetCollection': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPartitionedDataSetCollectionAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPartitionedDataSetCollectionAlgorithm': ... + +class vtkPassInputTypeAlgorithm(vtkAlgorithm): + graph_output:'getset_descriptor' + hyper_tree_grid_output:'getset_descriptor' + image_data_output:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + molecule_output:'getset_descriptor' + output:'getset_descriptor' + poly_data_output:'getset_descriptor' + rectilinear_grid_output:'getset_descriptor' + structured_grid_output:'getset_descriptor' + structured_points_output:'getset_descriptor' + table_output:'getset_descriptor' + unstructured_grid_output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def GetGraphOutput(self) -> 'vtkGraph': ... + def GetHyperTreeGridOutput(self) -> 'vtkHyperTreeGrid': ... + def GetImageDataOutput(self) -> 'vtkImageData': ... + def GetInput(self) -> 'vtkDataObject': ... + def GetMoleculeOutput(self) -> 'vtkMolecule': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkDataObject': ... + @overload + def GetOutput(self, __a:int) -> 'vtkDataObject': ... + def GetPolyDataOutput(self) -> 'vtkPolyData': ... + def GetRectilinearGridOutput(self) -> 'vtkRectilinearGrid': ... + def GetStructuredGridOutput(self) -> 'vtkStructuredGrid': ... + def GetStructuredPointsOutput(self) -> 'vtkStructuredPoints': ... + def GetTableOutput(self) -> 'vtkTable': ... + def GetUnstructuredGridOutput(self) -> 'vtkUnstructuredGrid': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPassInputTypeAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPassInputTypeAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + +class vtkPiecewiseFunctionAlgorithm(vtkAlgorithm): + input:'getset_descriptor' + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + @overload + def GetInput(self) -> 'vtkDataObject': ... + @overload + def GetInput(self, port:int) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkDataObject': ... + @overload + def GetOutput(self, __a:int) -> 'vtkDataObject': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPiecewiseFunctionAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPiecewiseFunctionAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def SetOutput(self, d:'vtkDataObject') -> None: ... + +class vtkPiecewiseFunctionShiftScale(vtkPiecewiseFunctionAlgorithm): + position_scale:'getset_descriptor' + position_shift:'getset_descriptor' + value_scale:'getset_descriptor' + value_shift:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPositionScale(self) -> float: ... + def GetPositionShift(self) -> float: ... + def GetValueScale(self) -> float: ... + def GetValueShift(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPiecewiseFunctionShiftScale': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPiecewiseFunctionShiftScale': ... + def SetPositionScale(self, _arg:float) -> None: ... + def SetPositionShift(self, _arg:float) -> None: ... + def SetValueScale(self, _arg:float) -> None: ... + def SetValueShift(self, _arg:float) -> None: ... + +class vtkPointSetAlgorithm(vtkAlgorithm): + input:'getset_descriptor' + input_data:'getset_descriptor' + output:'getset_descriptor' + poly_data_output:'getset_descriptor' + structured_grid_output:'getset_descriptor' + unstructured_grid_output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def AddInputData(self, __a:'vtkPointSet') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkPointSet') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def GetInput(self) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkPointSet': ... + @overload + def GetOutput(self, __a:int) -> 'vtkPointSet': ... + def GetPolyDataOutput(self) -> 'vtkPolyData': ... + def GetStructuredGridOutput(self) -> 'vtkStructuredGrid': ... + def GetUnstructuredGridOutput(self) -> 'vtkUnstructuredGrid': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointSetAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointSetAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:'vtkPointSet') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkPointSet') -> None: ... + +class vtkPolyDataAlgorithm(vtkAlgorithm): + input:'getset_descriptor' + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + @overload + def GetInput(self) -> 'vtkDataObject': ... + @overload + def GetInput(self, port:int) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkPolyData': ... + @overload + def GetOutput(self, __a:int) -> 'vtkPolyData': ... + def GetPolyDataInput(self, port:int) -> 'vtkPolyData': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyDataAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def SetOutput(self, d:'vtkDataObject') -> None: ... + +class vtkProgressObserver(vtkmodules.vtkCommonCore.vtkObject): + progress:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProgress(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProgressObserver': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProgressObserver': ... + def UpdateProgress(self, amount:float) -> None: ... + +class vtkRectilinearGridAlgorithm(vtkAlgorithm): + input:'getset_descriptor' + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + @overload + def GetInput(self) -> 'vtkDataObject': ... + @overload + def GetInput(self, port:int) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkRectilinearGrid': ... + @overload + def GetOutput(self, __a:int) -> 'vtkRectilinearGrid': ... + def GetRectilinearGridInput(self, port:int) -> 'vtkRectilinearGrid': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRectilinearGridAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRectilinearGridAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def SetOutput(self, d:'vtkDataObject') -> None: ... + +class vtkSMPProgressObserver(vtkProgressObserver): + local_observer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLocalObserver(self) -> 'vtkProgressObserver': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSMPProgressObserver': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSMPProgressObserver': ... + def UpdateProgress(self, progress:float) -> None: ... + +class vtkScalarTree(vtkmodules.vtkCommonCore.vtkObject): + data_set:'getset_descriptor' + scalar_value:'getset_descriptor' + scalars:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildTree(self) -> None: ... + def GetCellBatch(self, batchNum:int, numCells:int) -> Pointer: ... + def GetDataSet(self) -> 'vtkDataSet': ... + def GetNumberOfCellBatches(self, scalarValue:float) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScalarValue(self) -> float: ... + def GetScalars(self) -> 'vtkDataArray': ... + def InitTraversal(self, scalarValue:float) -> None: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkScalarTree': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkScalarTree': ... + def SetDataSet(self, __a:'vtkDataSet') -> None: ... + def SetScalars(self, __a:'vtkDataArray') -> None: ... + def ShallowCopy(self, stree:'vtkScalarTree') -> None: ... + +class vtkSelectionAlgorithm(vtkAlgorithm): + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkSelection': ... + @overload + def GetOutput(self, index:int) -> 'vtkSelection': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSelectionAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSelectionAlgorithm': ... + @overload + def SetInputData(self, obj:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, index:int, obj:'vtkDataObject') -> None: ... + +class vtkSimpleImageToImageFilter(vtkImageAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSimpleImageToImageFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSimpleImageToImageFilter': ... + +class vtkSimpleReader(vtkReaderAlgorithm): + current_file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddFileName(self, fname:str) -> None: ... + def ClearFileNames(self) -> None: ... + def GetCurrentFileName(self) -> str: ... + def GetFileName(self, i:int) -> str: ... + def GetNumberOfFileNames(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTimeValue(self, fname:str) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSimpleReader': ... + def ReadArrays(self, piece:int, npieces:int, nghosts:int, timestep:int, output:'vtkDataObject') -> int: ... + def ReadArraysSimple(self, fname:str, output:'vtkDataObject') -> int: ... + def ReadMesh(self, piece:int, npieces:int, nghosts:int, timestep:int, output:'vtkDataObject') -> int: ... + def ReadMeshSimple(self, fname:str, output:'vtkDataObject') -> int: ... + def ReadMetaData(self, metadata:'vtkInformation') -> int: ... + def ReadMetaDataSimple(self, __a:str, __b:'vtkInformation') -> int: ... + def ReadPoints(self, piece:int, npieces:int, nghosts:int, timestep:int, output:'vtkDataObject') -> int: ... + def ReadPointsSimple(self, fname:str, output:'vtkDataObject') -> int: ... + def ReadTimeDependentMetaData(self, timestep:int, metadata:'vtkInformation') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSimpleReader': ... + +class vtkSimpleScalarTree(vtkScalarTree): + branching_factor:'getset_descriptor' + level:'getset_descriptor' + max_level:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildTree(self) -> None: ... + def GetBranchingFactor(self) -> int: ... + def GetBranchingFactorMaxValue(self) -> int: ... + def GetBranchingFactorMinValue(self) -> int: ... + def GetCellBatch(self, batchNum:int, numCells:int) -> Pointer: ... + def GetLevel(self) -> int: ... + def GetMaxLevel(self) -> int: ... + def GetMaxLevelMaxValue(self) -> int: ... + def GetMaxLevelMinValue(self) -> int: ... + def GetNumberOfCellBatches(self, scalarValue:float) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InitTraversal(self, scalarValue:float) -> None: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSimpleScalarTree': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSimpleScalarTree': ... + def SetBranchingFactor(self, _arg:int) -> None: ... + def SetMaxLevel(self, _arg:int) -> None: ... + def ShallowCopy(self, stree:'vtkScalarTree') -> None: ... + +class vtkSpanSpace(vtkScalarTree): + batch_size:'getset_descriptor' + compute_resolution:'getset_descriptor' + compute_scalar_range:'getset_descriptor' + number_of_cells_per_bucket:'getset_descriptor' + resolution:'getset_descriptor' + scalar_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildTree(self) -> None: ... + def ComputeResolutionOff(self) -> None: ... + def ComputeResolutionOn(self) -> None: ... + def ComputeScalarRangeOff(self) -> None: ... + def ComputeScalarRangeOn(self) -> None: ... + def GetBatchSize(self) -> int: ... + def GetBatchSizeMaxValue(self) -> int: ... + def GetBatchSizeMinValue(self) -> int: ... + def GetCellBatch(self, batchNum:int, numCells:int) -> Pointer: ... + def GetComputeResolution(self) -> int: ... + def GetComputeScalarRange(self) -> int: ... + def GetNumberOfCellBatches(self, scalarValue:float) -> int: ... + def GetNumberOfCellsPerBucket(self) -> int: ... + def GetNumberOfCellsPerBucketMaxValue(self) -> int: ... + def GetNumberOfCellsPerBucketMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetResolution(self) -> int: ... + def GetResolutionMaxValue(self) -> int: ... + def GetResolutionMinValue(self) -> int: ... + def GetScalarRange(self) -> Tuple[float, float]: ... + def InitTraversal(self, scalarValue:float) -> None: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSpanSpace': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSpanSpace': ... + def SetBatchSize(self, _arg:int) -> None: ... + def SetComputeResolution(self, _arg:int) -> None: ... + def SetComputeScalarRange(self, _arg:int) -> None: ... + def SetNumberOfCellsPerBucket(self, _arg:int) -> None: ... + def SetResolution(self, _arg:int) -> None: ... + @overload + def SetScalarRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetScalarRange(self, _arg:Sequence[float]) -> None: ... + def ShallowCopy(self, stree:'vtkScalarTree') -> None: ... + +class vtkSphereTree(vtkmodules.vtkCommonCore.vtkObject): + build_hierarchy:'getset_descriptor' + cell_spheres:'getset_descriptor' + data_set:'getset_descriptor' + max_level:'getset_descriptor' + number_of_levels:'getset_descriptor' + resolution:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def Build(self) -> None: ... + @overload + def Build(self, input:'vtkDataSet') -> None: ... + def BuildHierarchyOff(self) -> None: ... + def BuildHierarchyOn(self) -> None: ... + def GetBuildHierarchy(self) -> bool: ... + def GetCellSpheres(self) -> Pointer: ... + def GetDataSet(self) -> 'vtkDataSet': ... + def GetMaxLevel(self) -> int: ... + def GetMaxLevelMaxValue(self) -> int: ... + def GetMaxLevelMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLevels(self) -> int: ... + def GetResolution(self) -> int: ... + def GetResolutionMaxValue(self) -> int: ... + def GetResolutionMinValue(self) -> int: ... + def GetTreeSpheres(self, level:int, numSpheres:int) -> Pointer: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSphereTree': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSphereTree': ... + @overload + def SelectLine(self, origin:MutableSequence[float], ray:MutableSequence[float], numSelected:int) -> Pointer: ... + @overload + def SelectLine(self, origin:MutableSequence[float], ray:MutableSequence[float], cellIds:'vtkIdList') -> None: ... + @overload + def SelectPlane(self, origin:MutableSequence[float], normal:MutableSequence[float], numSelected:int) -> Pointer: ... + @overload + def SelectPlane(self, origin:MutableSequence[float], normal:MutableSequence[float], cellIds:'vtkIdList') -> None: ... + @overload + def SelectPoint(self, point:MutableSequence[float], numSelected:int) -> Pointer: ... + @overload + def SelectPoint(self, point:MutableSequence[float], cellIds:'vtkIdList') -> None: ... + def SetBuildHierarchy(self, _arg:bool) -> None: ... + def SetDataSet(self, __a:'vtkDataSet') -> None: ... + def SetMaxLevel(self, _arg:int) -> None: ... + def SetResolution(self, _arg:int) -> None: ... + def UsesGarbageCollector(self) -> bool: ... + +class vtkTableAlgorithm(vtkAlgorithm): + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkTable': ... + @overload + def GetOutput(self, index:int) -> 'vtkTable': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTableAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTableAlgorithm': ... + @overload + def SetInputData(self, obj:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, index:int, obj:'vtkDataObject') -> None: ... + +class vtkThreadedCompositeDataPipeline(vtkCompositeDataPipeline): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkThreadedCompositeDataPipeline': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkThreadedCompositeDataPipeline': ... + +class vtkThreadedImageAlgorithm(vtkImageAlgorithm): + desired_bytes_per_piece:'getset_descriptor' + enable_smp:'getset_descriptor' + global_default_enable_smp:'getset_descriptor' + minimum_piece_size:'getset_descriptor' + number_of_threads:'getset_descriptor' + number_of_threads_max_value:'getset_descriptor' + number_of_threads_min_value:'getset_descriptor' + split_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDesiredBytesPerPiece(self) -> int: ... + def GetEnableSMP(self) -> bool: ... + @staticmethod + def GetGlobalDefaultEnableSMP() -> bool: ... + def GetMinimumPieceSize(self) -> Tuple[int, int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfThreads(self) -> int: ... + def GetNumberOfThreadsMaxValue(self) -> int: ... + def GetNumberOfThreadsMinValue(self) -> int: ... + def GetSplitMode(self) -> int: ... + def GetSplitModeMaxValue(self) -> int: ... + def GetSplitModeMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkThreadedImageAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkThreadedImageAlgorithm': ... + def SetDesiredBytesPerPiece(self, _arg:int) -> None: ... + def SetEnableSMP(self, _arg:bool) -> None: ... + @staticmethod + def SetGlobalDefaultEnableSMP(enable:bool) -> None: ... + @overload + def SetMinimumPieceSize(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetMinimumPieceSize(self, _arg:Sequence[int]) -> None: ... + def SetNumberOfThreads(self, _arg:int) -> None: ... + def SetSplitMode(self, _arg:int) -> None: ... + def SetSplitModeToBeam(self) -> None: ... + def SetSplitModeToBlock(self) -> None: ... + def SetSplitModeToSlab(self) -> None: ... + def SplitExtent(self, splitExt:MutableSequence[int], startExt:MutableSequence[int], num:int, total:int) -> int: ... + def ThreadedExecute(self, inData:'vtkImageData', outData:'vtkImageData', extent:MutableSequence[int], threadId:int) -> None: ... + +class vtkTimeRange(vtkExecutionRange): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTimeRange': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTimeRange': ... + def Size(self) -> int: ... + +class vtkTreeAlgorithm(vtkAlgorithm): + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkTree': ... + @overload + def GetOutput(self, index:int) -> 'vtkTree': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTreeAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTreeAlgorithm': ... + @overload + def SetInputData(self, obj:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, index:int, obj:'vtkDataObject') -> None: ... + +class vtkTrivialConsumer(vtkAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTrivialConsumer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTrivialConsumer': ... + +class vtkTrivialProducer(vtkAlgorithm): + m_time:'getset_descriptor' + output:'getset_descriptor' + whole_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def FillOutputDataInformation(output:'vtkDataObject', outInfo:'vtkInformation') -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWholeExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTrivialProducer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTrivialProducer': ... + def SetOutput(self, output:'vtkDataObject') -> None: ... + @overload + def SetWholeExtent(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetWholeExtent(self, _arg:Sequence[int]) -> None: ... + +class vtkUndirectedGraphAlgorithm(vtkAlgorithm): + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkUndirectedGraph': ... + @overload + def GetOutput(self, index:int) -> 'vtkUndirectedGraph': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUndirectedGraphAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUndirectedGraphAlgorithm': ... + @overload + def SetInputData(self, obj:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, index:int, obj:'vtkDataObject') -> None: ... + +class vtkUniformGridPartitioner(vtkMultiBlockDataSetAlgorithm): + duplicate_nodes:'getset_descriptor' + number_of_ghost_layers:'getset_descriptor' + number_of_partitions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DuplicateNodesOff(self) -> None: ... + def DuplicateNodesOn(self) -> None: ... + def GetDuplicateNodes(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfGhostLayers(self) -> int: ... + def GetNumberOfPartitions(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUniformGridPartitioner': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUniformGridPartitioner': ... + def SetDuplicateNodes(self, _arg:int) -> None: ... + def SetNumberOfGhostLayers(self, _arg:int) -> None: ... + def SetNumberOfPartitions(self, _arg:int) -> None: ... + +class vtkUnstructuredGridAlgorithm(vtkAlgorithm): + input:'getset_descriptor' + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + @overload + def GetInput(self, port:int) -> 'vtkDataObject': ... + @overload + def GetInput(self) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkUnstructuredGrid': ... + @overload + def GetOutput(self, __a:int) -> 'vtkUnstructuredGrid': ... + def GetUnstructuredGridInput(self, port:int) -> 'vtkUnstructuredGrid': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def SetOutput(self, d:'vtkDataObject') -> None: ... + +class vtkUnstructuredGridBaseAlgorithm(vtkAlgorithm): + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkUnstructuredGridBase': ... + @overload + def GetOutput(self, __a:int) -> 'vtkUnstructuredGridBase': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridBaseAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridBaseAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def SetOutput(self, d:'vtkDataObject') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonMath.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonMath.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..917f183 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonMath.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonMath.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonMath.pyi new file mode 100644 index 0000000..24f4d46 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonMath.pyi @@ -0,0 +1,731 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore + +vtkQuaternion:Template +vtkTuple:Template + +class vtkAmoebaMinimizer(vtkmodules.vtkCommonCore.vtkObject): + contraction_ratio:'getset_descriptor' + expansion_ratio:'getset_descriptor' + function_evaluations:'getset_descriptor' + function_value:'getset_descriptor' + iterations:'getset_descriptor' + max_iterations:'getset_descriptor' + number_of_parameters:'getset_descriptor' + parameter_tolerance:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def EvaluateFunction(self) -> None: ... + def GetContractionRatio(self) -> float: ... + def GetContractionRatioMaxValue(self) -> float: ... + def GetContractionRatioMinValue(self) -> float: ... + def GetExpansionRatio(self) -> float: ... + def GetExpansionRatioMaxValue(self) -> float: ... + def GetExpansionRatioMinValue(self) -> float: ... + def GetFunctionEvaluations(self) -> int: ... + def GetFunctionValue(self) -> float: ... + def GetIterations(self) -> int: ... + def GetMaxIterations(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfParameters(self) -> int: ... + def GetParameterName(self, i:int) -> str: ... + @overload + def GetParameterScale(self, name:str) -> float: ... + @overload + def GetParameterScale(self, i:int) -> float: ... + def GetParameterTolerance(self) -> float: ... + @overload + def GetParameterValue(self, name:str) -> float: ... + @overload + def GetParameterValue(self, i:int) -> float: ... + def GetTolerance(self) -> float: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Iterate(self) -> int: ... + def Minimize(self) -> None: ... + def NewInstance(self) -> 'vtkAmoebaMinimizer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAmoebaMinimizer': ... + def SetContractionRatio(self, _arg:float) -> None: ... + def SetExpansionRatio(self, _arg:float) -> None: ... + def SetFunction(self, f:Callback) -> None: ... + def SetFunctionValue(self, _arg:float) -> None: ... + def SetMaxIterations(self, _arg:int) -> None: ... + @overload + def SetParameterScale(self, name:str, scale:float) -> None: ... + @overload + def SetParameterScale(self, i:int, scale:float) -> None: ... + def SetParameterTolerance(self, _arg:float) -> None: ... + @overload + def SetParameterValue(self, name:str, value:float) -> None: ... + @overload + def SetParameterValue(self, i:int, value:float) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + +class vtkFFT(vtkmodules.vtkCommonCore.vtkObject): + class Scaling(int): ... + class OctaveSubdivision(int): ... + class Octave(int): ... + class SpectralMode(int): ... + Density:'Scaling' + FirstHalf:'OctaveSubdivision' + FirstThird:'OctaveSubdivision' + Full:'OctaveSubdivision' + Hz_125:'Octave' + Hz_250:'Octave' + Hz_31_5:'Octave' + Hz_500:'Octave' + Hz_63:'Octave' + PSD:'SpectralMode' + STFT:'SpectralMode' + SecondHalf:'OctaveSubdivision' + SecondThird:'OctaveSubdivision' + Spectrum:'Scaling' + ThirdThird:'OctaveSubdivision' + kHz_1:'Octave' + kHz_16:'Octave' + kHz_2:'Octave' + kHz_4:'Octave' + kHz_8:'Octave' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def BartlettGenerator(x:int, size:int) -> float: ... + @staticmethod + def BlackmanGenerator(x:int, size:int) -> float: ... + @staticmethod + def FftFreq(windowLength:int, sampleSpacing:float) -> Tuple[float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def HanningGenerator(x:int, size:int) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFFT': ... + @staticmethod + def RFftFreq(windowLength:int, sampleSpacing:float) -> Tuple[float, float]: ... + @staticmethod + def RectangularGenerator(x:int, size:int) -> float: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFFT': ... + @staticmethod + def SineGenerator(x:int, size:int) -> float: ... + +class vtkFunctionSet(vtkmodules.vtkCommonCore.vtkObject): + number_of_functions:'getset_descriptor' + number_of_independent_variables:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def FunctionValues(self, x:MutableSequence[float], f:MutableSequence[float]) -> int: ... + @overload + def FunctionValues(self, x:MutableSequence[float], f:MutableSequence[float], userData:Pointer) -> int: ... + def GetNumberOfFunctions(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIndependentVariables(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFunctionSet': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFunctionSet': ... + +class vtkInitialValueProblemSolver(vtkmodules.vtkCommonCore.vtkObject): + class ErrorCodes(int): ... + NOT_INITIALIZED:'ErrorCodes' + OUT_OF_DOMAIN:'ErrorCodes' + UNEXPECTED_VALUE:'ErrorCodes' + function_set:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, maxError:float, error:float) -> int: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, maxError:float, error:float, userData:Pointer) -> int: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], dxprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, maxError:float, error:float) -> int: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], dxprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, maxError:float, error:float, userData:Pointer) -> int: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, delTActual:float, minStep:float, maxStep:float, maxError:float, error:float) -> int: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, delTActual:float, minStep:float, maxStep:float, maxError:float, error:float, userData:Pointer) -> int: ... + def GetFunctionSet(self) -> 'vtkFunctionSet': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsAdaptive(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInitialValueProblemSolver': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInitialValueProblemSolver': ... + def SetFunctionSet(self, fset:'vtkFunctionSet') -> None: ... + +class vtkMatrix3x3(vtkmodules.vtkCommonCore.vtkObject): + data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def Adjoint(self, in_:'vtkMatrix3x3', out:'vtkMatrix3x3') -> None: ... + @overload + @staticmethod + def Adjoint(inElements:Sequence[float], outElements:MutableSequence[float]) -> None: ... + @overload + def DeepCopy(self, source:'vtkMatrix3x3') -> None: ... + @overload + @staticmethod + def DeepCopy(elements:MutableSequence[float], source:'vtkMatrix3x3') -> None: ... + @overload + @staticmethod + def DeepCopy(elements:MutableSequence[float], newElements:Sequence[float]) -> None: ... + @overload + def DeepCopy(self, elements:Sequence[float]) -> None: ... + @overload + def Determinant(self) -> float: ... + @overload + @staticmethod + def Determinant(elements:Sequence[float]) -> float: ... + def GetData(self) -> Tuple[float, float, float, float, float, float, float, float, float]: ... + def GetElement(self, i:int, j:int) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def Identity(self) -> None: ... + @overload + @staticmethod + def Identity(elements:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def Invert(in_:'vtkMatrix3x3', out:'vtkMatrix3x3') -> None: ... + @overload + def Invert(self) -> None: ... + @overload + @staticmethod + def Invert(inElements:Sequence[float], outElements:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + def IsIdentity(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + @staticmethod + def Multiply3x3(a:'vtkMatrix3x3', b:'vtkMatrix3x3', c:'vtkMatrix3x3') -> None: ... + @overload + @staticmethod + def Multiply3x3(a:Sequence[float], b:Sequence[float], c:MutableSequence[float]) -> None: ... + @overload + def MultiplyPoint(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def MultiplyPoint(elements:Sequence[float], in_:Sequence[float], out:MutableSequence[float]) -> None: ... + def NewInstance(self) -> 'vtkMatrix3x3': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMatrix3x3': ... + def SetData(self, data:Sequence[float]) -> None: ... + def SetElement(self, i:int, j:int, value:float) -> None: ... + @overload + @staticmethod + def Transpose(in_:'vtkMatrix3x3', out:'vtkMatrix3x3') -> None: ... + @overload + def Transpose(self) -> None: ... + @overload + @staticmethod + def Transpose(inElements:Sequence[float], outElements:MutableSequence[float]) -> None: ... + @overload + def Zero(self) -> None: ... + @overload + @staticmethod + def Zero(elements:MutableSequence[float]) -> None: ... + +class vtkMatrix4x4(vtkmodules.vtkCommonCore.vtkObject): + data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def Adjoint(self, in_:'vtkMatrix4x4', out:'vtkMatrix4x4') -> None: ... + @overload + @staticmethod + def Adjoint(inElements:Sequence[float], outElements:MutableSequence[float]) -> None: ... + @overload + def DeepCopy(self, source:'vtkMatrix4x4') -> None: ... + @overload + @staticmethod + def DeepCopy(destination:MutableSequence[float], source:'vtkMatrix4x4') -> None: ... + @overload + @staticmethod + def DeepCopy(destination:MutableSequence[float], source:Sequence[float]) -> None: ... + @overload + def DeepCopy(self, elements:Sequence[float]) -> None: ... + @overload + def Determinant(self) -> float: ... + @overload + @staticmethod + def Determinant(elements:Sequence[float]) -> float: ... + def GetData(self) -> Tuple[float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float]: ... + def GetElement(self, i:int, j:int) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def Identity(self) -> None: ... + @overload + @staticmethod + def Identity(elements:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def Invert(in_:'vtkMatrix4x4', out:'vtkMatrix4x4') -> None: ... + @overload + def Invert(self) -> None: ... + @overload + @staticmethod + def Invert(inElements:Sequence[float], outElements:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + def IsIdentity(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + @staticmethod + def MatrixFromRotation(angle:float, x:float, y:float, z:float, result:'vtkMatrix4x4') -> None: ... + @overload + @staticmethod + def MatrixFromRotation(angle:float, x:float, y:float, z:float, matrix:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def Multiply4x4(a:'vtkMatrix4x4', b:'vtkMatrix4x4', c:'vtkMatrix4x4') -> None: ... + @overload + @staticmethod + def Multiply4x4(a:Sequence[float] , b:Sequence[float], c:MutableSequence[float]) -> None: ... + @staticmethod + def MultiplyAndTranspose4x4(a:Sequence[float], b:Sequence[float], c:MutableSequence[float]) -> None: ... + def MultiplyDoublePoint(self, in_:Sequence[float]) -> Tuple[float, float, float, float]: ... + def MultiplyFloatPoint(self, in_:Sequence[float]) -> Tuple[float, float, float, float]: ... + @overload + def MultiplyPoint(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def MultiplyPoint(elements:Sequence[float], in_:Sequence[float], out:MutableSequence[float]) -> None: ... + @overload + def MultiplyPoint(self, in_:Sequence[float]) -> Tuple[float, float, float, float]: ... + def NewInstance(self) -> 'vtkMatrix4x4': ... + @staticmethod + def PoseToMatrix(pos:MutableSequence[float], ori:MutableSequence[float], mat:'vtkMatrix4x4') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMatrix4x4': ... + def SetData(self, data:Sequence[float]) -> None: ... + def SetElement(self, i:int, j:int, value:float) -> None: ... + @overload + @staticmethod + def Transpose(in_:'vtkMatrix4x4', out:'vtkMatrix4x4') -> None: ... + @overload + def Transpose(self) -> None: ... + @overload + @staticmethod + def Transpose(inElements:Sequence[float], outElements:MutableSequence[float]) -> None: ... + @overload + def Zero(self) -> None: ... + @overload + @staticmethod + def Zero(elements:MutableSequence[float]) -> None: ... + +class vtkPolynomialSolversUnivariate(vtkmodules.vtkCommonCore.vtkObject): + division_tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def FerrariSolve(c:MutableSequence[float], r:MutableSequence[float], m:MutableSequence[int], tol:float) -> int: ... + @staticmethod + def FilterRoots(P:MutableSequence[float], d:int, upperBnds:MutableSequence[float], rootcount:int, diameter:float) -> int: ... + @staticmethod + def GetDivisionTolerance() -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + @staticmethod + def HabichtBisectionSolve(P:MutableSequence[float], d:int, a:MutableSequence[float], upperBnds:MutableSequence[float], tol:float) -> int: ... + @overload + @staticmethod + def HabichtBisectionSolve(P:MutableSequence[float], d:int, a:MutableSequence[float], upperBnds:MutableSequence[float], tol:float, intervalType:int) -> int: ... + @overload + @staticmethod + def HabichtBisectionSolve(P:MutableSequence[float], d:int, a:MutableSequence[float], upperBnds:MutableSequence[float], tol:float, intervalType:int, divideGCD:bool) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def LinBairstowSolve(c:MutableSequence[float], d:int, r:MutableSequence[float], tolerance:float) -> int: ... + def NewInstance(self) -> 'vtkPolynomialSolversUnivariate': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolynomialSolversUnivariate': ... + @staticmethod + def SetDivisionTolerance(tol:float) -> None: ... + @overload + @staticmethod + def SolveCubic(c0:float, c1:float, c2:float, c3:float) -> Pointer: ... + @overload + @staticmethod + def SolveCubic(c0:float, c1:float, c2:float, c3:float, r1:MutableSequence[float], r2:MutableSequence[float], r3:MutableSequence[float], num_roots:MutableSequence[int]) -> int: ... + @overload + @staticmethod + def SolveLinear(c0:float, c1:float) -> Pointer: ... + @overload + @staticmethod + def SolveLinear(c0:float, c1:float, r1:MutableSequence[float], num_roots:MutableSequence[int]) -> int: ... + @overload + @staticmethod + def SolveQuadratic(c0:float, c1:float, c2:float) -> Pointer: ... + @overload + @staticmethod + def SolveQuadratic(c0:float, c1:float, c2:float, r1:MutableSequence[float], r2:MutableSequence[float], num_roots:MutableSequence[int]) -> int: ... + @overload + @staticmethod + def SolveQuadratic(c:MutableSequence[float], r:MutableSequence[float], m:MutableSequence[int]) -> int: ... + @overload + @staticmethod + def SturmBisectionSolve(P:MutableSequence[float], d:int, a:MutableSequence[float], upperBnds:MutableSequence[float], tol:float) -> int: ... + @overload + @staticmethod + def SturmBisectionSolve(P:MutableSequence[float], d:int, a:MutableSequence[float], upperBnds:MutableSequence[float], tol:float, intervalType:int) -> int: ... + @overload + @staticmethod + def SturmBisectionSolve(P:MutableSequence[float], d:int, a:MutableSequence[float], upperBnds:MutableSequence[float], tol:float, intervalType:int, divideGCD:bool) -> int: ... + @staticmethod + def TartagliaCardanSolve(c:MutableSequence[float], r:MutableSequence[float], m:MutableSequence[int], tol:float) -> int: ... + +class vtkQuaternionInterpolator(vtkmodules.vtkCommonCore.vtkObject): + class vtkQuaternionInterpolationSearchMethod(int): ... + BinarySearch:'vtkQuaternionInterpolationSearchMethod' + INTERPOLATION_TYPE_LINEAR:int + INTERPOLATION_TYPE_SPLINE:int + LinearSearch:'vtkQuaternionInterpolationSearchMethod' + MaxEnum:'vtkQuaternionInterpolationSearchMethod' + interpolation_type:'getset_descriptor' + maximum_t:'getset_descriptor' + minimum_t:'getset_descriptor' + number_of_quaternions:'getset_descriptor' + search_method:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddQuaternion(self, t:float, q:'vtkQuaterniond') -> None: ... + @overload + def AddQuaternion(self, t:float, q:MutableSequence[float]) -> None: ... + def GetInterpolationType(self) -> int: ... + def GetInterpolationTypeMaxValue(self) -> int: ... + def GetInterpolationTypeMinValue(self) -> int: ... + def GetMaximumT(self) -> float: ... + def GetMinimumT(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfQuaternions(self) -> int: ... + def GetSearchMethod(self) -> int: ... + def Initialize(self) -> None: ... + @overload + def InterpolateQuaternion(self, t:float, q:'vtkQuaterniond') -> None: ... + @overload + def InterpolateQuaternion(self, t:float, q:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuaternionInterpolator': ... + def RemoveQuaternion(self, t:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuaternionInterpolator': ... + def SetInterpolationType(self, _arg:int) -> None: ... + def SetInterpolationTypeToLinear(self) -> None: ... + def SetInterpolationTypeToSpline(self) -> None: ... + def SetSearchMethod(self, type:int) -> None: ... + +class vtkTuple_IdLi4EE(object): + data:'getset_descriptor' + size:'getset_descriptor' + def Compare(self, other:'vtkTuple_IdLi4EE', tol:float) -> bool: ... + def GetData(self) -> Pointer: ... + def GetSize(self) -> int: ... + +class vtkQuaternion_IdE(vtkTuple_IdLi4EE): + w:'getset_descriptor' + x:'getset_descriptor' + y:'getset_descriptor' + z:'getset_descriptor' + def Conjugate(self) -> None: ... + def Conjugated(self) -> 'vtkQuaternion_IdE': ... + def FromMatrix3x3(self, A:Sequence[Sequence[float]]) -> None: ... + def Get(self, quat:MutableSequence[float]) -> None: ... + def GetRotationAngleAndAxis(self, axis:MutableSequence[float]) -> float: ... + def GetW(self) -> float: ... + def GetX(self) -> float: ... + def GetY(self) -> float: ... + def GetZ(self) -> float: ... + @staticmethod + def Identity() -> 'vtkQuaternion_IdE': ... + def InnerPoint(self, q1:'vtkQuaternion_IdE', q2:'vtkQuaternion_IdE') -> 'vtkQuaternion_IdE': ... + def Inverse(self) -> 'vtkQuaternion_IdE': ... + def Invert(self) -> None: ... + def Norm(self) -> float: ... + def Normalize(self) -> float: ... + def NormalizeWithAngleInDegrees(self) -> None: ... + def Normalized(self) -> 'vtkQuaternion_IdE': ... + def NormalizedWithAngleInDegrees(self) -> 'vtkQuaternion_IdE': ... + @overload + def Set(self, w:float, x:float, y:float, z:float) -> None: ... + @overload + def Set(self, quat:MutableSequence[float]) -> None: ... + @overload + def SetRotationAngleAndAxis(self, angle:float, axis:MutableSequence[float]) -> None: ... + @overload + def SetRotationAngleAndAxis(self, angle:float, x:float, y:float, z:float) -> None: ... + def SetW(self, w:float) -> None: ... + def SetX(self, x:float) -> None: ... + def SetY(self, y:float) -> None: ... + def SetZ(self, z:float) -> None: ... + def Slerp(self, t:float, q:'vtkQuaternion_IdE') -> 'vtkQuaternion_IdE': ... + def SquaredNorm(self) -> float: ... + def ToIdentity(self) -> None: ... + def ToMatrix3x3(self, A:MutableSequence[MutableSequence[float]]) -> None: ... + def ToUnitExp(self) -> None: ... + def ToUnitLog(self) -> None: ... + def UnitExp(self) -> 'vtkQuaternion_IdE': ... + def UnitLog(self) -> 'vtkQuaternion_IdE': ... + +class vtkTuple_IfLi4EE(object): + data:'getset_descriptor' + size:'getset_descriptor' + def Compare(self, other:'vtkTuple_IfLi4EE', tol:float) -> bool: ... + def GetData(self) -> Pointer: ... + def GetSize(self) -> int: ... + +class vtkQuaternion_IfE(vtkTuple_IfLi4EE): + w:'getset_descriptor' + x:'getset_descriptor' + y:'getset_descriptor' + z:'getset_descriptor' + def Conjugate(self) -> None: ... + def Conjugated(self) -> 'vtkQuaternion_IfE': ... + def FromMatrix3x3(self, A:Sequence[Sequence[float]]) -> None: ... + def Get(self, quat:MutableSequence[float]) -> None: ... + def GetRotationAngleAndAxis(self, axis:MutableSequence[float]) -> float: ... + def GetW(self) -> float: ... + def GetX(self) -> float: ... + def GetY(self) -> float: ... + def GetZ(self) -> float: ... + @staticmethod + def Identity() -> 'vtkQuaternion_IfE': ... + def InnerPoint(self, q1:'vtkQuaternion_IfE', q2:'vtkQuaternion_IfE') -> 'vtkQuaternion_IfE': ... + def Inverse(self) -> 'vtkQuaternion_IfE': ... + def Invert(self) -> None: ... + def Norm(self) -> float: ... + def Normalize(self) -> float: ... + def NormalizeWithAngleInDegrees(self) -> None: ... + def Normalized(self) -> 'vtkQuaternion_IfE': ... + def NormalizedWithAngleInDegrees(self) -> 'vtkQuaternion_IfE': ... + @overload + def Set(self, w:float, x:float, y:float, z:float) -> None: ... + @overload + def Set(self, quat:MutableSequence[float]) -> None: ... + @overload + def SetRotationAngleAndAxis(self, angle:float, axis:MutableSequence[float]) -> None: ... + @overload + def SetRotationAngleAndAxis(self, angle:float, x:float, y:float, z:float) -> None: ... + def SetW(self, w:float) -> None: ... + def SetX(self, x:float) -> None: ... + def SetY(self, y:float) -> None: ... + def SetZ(self, z:float) -> None: ... + def Slerp(self, t:float, q:'vtkQuaternion_IfE') -> 'vtkQuaternion_IfE': ... + def SquaredNorm(self) -> float: ... + def ToIdentity(self) -> None: ... + def ToMatrix3x3(self, A:MutableSequence[MutableSequence[float]]) -> None: ... + def ToUnitExp(self) -> None: ... + def ToUnitLog(self) -> None: ... + def UnitExp(self) -> 'vtkQuaternion_IfE': ... + def UnitLog(self) -> 'vtkQuaternion_IfE': ... + +class vtkQuaterniond(vtkQuaternion_IdE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, w:float, x:float, y:float, z:float) -> None: ... + @overload + def __init__(self, scalar:float) -> None: ... + @overload + def __init__(self, init:Sequence[float]) -> None: ... + @overload + def __init__(self, __a:'vtkQuaterniond') -> None: ... + def Conjugated(self) -> 'vtkQuaterniond': ... + def Identity(self) -> 'vtkQuaterniond': ... + def InnerPoint(self, q1:'vtkQuaterniond', q2:'vtkQuaterniond') -> 'vtkQuaterniond': ... + def Inverse(self) -> 'vtkQuaterniond': ... + def Normalized(self) -> 'vtkQuaterniond': ... + def NormalizedWithAngleInDegrees(self) -> 'vtkQuaterniond': ... + def Slerp(self, t:float, q:'vtkQuaterniond') -> 'vtkQuaterniond': ... + def UnitExp(self) -> 'vtkQuaterniond': ... + def UnitLog(self) -> 'vtkQuaterniond': ... + +class vtkQuaternionf(vtkQuaternion_IfE): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, w:float, x:float, y:float, z:float) -> None: ... + @overload + def __init__(self, scalar:float) -> None: ... + @overload + def __init__(self, init:Sequence[float]) -> None: ... + @overload + def __init__(self, __a:'vtkQuaternionf') -> None: ... + def Conjugated(self) -> 'vtkQuaternionf': ... + def Identity(self) -> 'vtkQuaternionf': ... + def InnerPoint(self, q1:'vtkQuaternionf', q2:'vtkQuaternionf') -> 'vtkQuaternionf': ... + def Inverse(self) -> 'vtkQuaternionf': ... + def Normalized(self) -> 'vtkQuaternionf': ... + def NormalizedWithAngleInDegrees(self) -> 'vtkQuaternionf': ... + def Slerp(self, t:float, q:'vtkQuaternionf') -> 'vtkQuaternionf': ... + def UnitExp(self) -> 'vtkQuaternionf': ... + def UnitLog(self) -> 'vtkQuaternionf': ... + +class vtkRungeKutta2(vtkInitialValueProblemSolver): + def __init__(self, **properties:Any) -> None: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, maxError:float, error:float, userData:Pointer) -> int: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], dxprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, maxError:float, error:float, userData:Pointer) -> int: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, delTActual:float, minStep:float, maxStep:float, maxError:float, error:float, userData:Pointer) -> int: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], dxprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, delTActual:float, minStep:float, maxStep:float, maxError:float, error:float, userData:Pointer) -> int: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, maxError:float, error:float) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRungeKutta2': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRungeKutta2': ... + +class vtkRungeKutta4(vtkInitialValueProblemSolver): + def __init__(self, **properties:Any) -> None: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, maxError:float, error:float, userData:Pointer) -> int: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], dxprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, maxError:float, error:float, userData:Pointer) -> int: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, delTActual:float, minStep:float, maxStep:float, maxError:float, error:float, userData:Pointer) -> int: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], dxprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, delTActual:float, minStep:float, maxStep:float, maxError:float, error:float, userData:Pointer) -> int: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, maxError:float, error:float) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRungeKutta4': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRungeKutta4': ... + +class vtkRungeKutta45(vtkInitialValueProblemSolver): + def __init__(self, **properties:Any) -> None: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, maxError:float, error:float, userData:Pointer) -> int: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], dxprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, maxError:float, error:float, userData:Pointer) -> int: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, delTActual:float, minStep:float, maxStep:float, maxError:float, error:float, userData:Pointer) -> int: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], dxprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, delTActual:float, minStep:float, maxStep:float, maxError:float, estErr:float, userData:Pointer) -> int: ... + @overload + def ComputeNextStep(self, xprev:MutableSequence[float], xnext:MutableSequence[float], t:float, delT:float, maxError:float, error:float) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRungeKutta45': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRungeKutta45': ... + +class vtkTuple_IdLi2EE(object): + data:'getset_descriptor' + size:'getset_descriptor' + def Compare(self, other:'vtkTuple_IdLi2EE', tol:float) -> bool: ... + def GetData(self) -> Pointer: ... + def GetSize(self) -> int: ... + +class vtkTuple_IdLi3EE(object): + data:'getset_descriptor' + size:'getset_descriptor' + def Compare(self, other:'vtkTuple_IdLi3EE', tol:float) -> bool: ... + def GetData(self) -> Pointer: ... + def GetSize(self) -> int: ... + +class vtkTuple_IfLi2EE(object): + data:'getset_descriptor' + size:'getset_descriptor' + def Compare(self, other:'vtkTuple_IfLi2EE', tol:float) -> bool: ... + def GetData(self) -> Pointer: ... + def GetSize(self) -> int: ... + +class vtkTuple_IfLi3EE(object): + data:'getset_descriptor' + size:'getset_descriptor' + def Compare(self, other:'vtkTuple_IfLi3EE', tol:float) -> bool: ... + def GetData(self) -> Pointer: ... + def GetSize(self) -> int: ... + +class vtkTuple_IhLi2EE(object): + data:'getset_descriptor' + size:'getset_descriptor' + def Compare(self, other:'vtkTuple_IhLi2EE', tol:int) -> bool: ... + def GetData(self) -> Pointer: ... + def GetSize(self) -> int: ... + +class vtkTuple_IhLi3EE(object): + data:'getset_descriptor' + size:'getset_descriptor' + def Compare(self, other:'vtkTuple_IhLi3EE', tol:int) -> bool: ... + def GetData(self) -> Pointer: ... + def GetSize(self) -> int: ... + +class vtkTuple_IhLi4EE(object): + data:'getset_descriptor' + size:'getset_descriptor' + def Compare(self, other:'vtkTuple_IhLi4EE', tol:int) -> bool: ... + def GetData(self) -> Pointer: ... + def GetSize(self) -> int: ... + +class vtkTuple_IiLi2EE(object): + data:'getset_descriptor' + size:'getset_descriptor' + def Compare(self, other:'vtkTuple_IiLi2EE', tol:int) -> bool: ... + def GetData(self) -> Pointer: ... + def GetSize(self) -> int: ... + +class vtkTuple_IiLi3EE(object): + data:'getset_descriptor' + size:'getset_descriptor' + def Compare(self, other:'vtkTuple_IiLi3EE', tol:int) -> bool: ... + def GetData(self) -> Pointer: ... + def GetSize(self) -> int: ... + +class vtkTuple_IiLi4EE(object): + data:'getset_descriptor' + size:'getset_descriptor' + def Compare(self, other:'vtkTuple_IiLi4EE', tol:int) -> bool: ... + def GetData(self) -> Pointer: ... + def GetSize(self) -> int: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonMisc.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonMisc.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..76b81d8 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonMisc.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonMisc.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonMisc.pyi new file mode 100644 index 0000000..bbf128c --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonMisc.pyi @@ -0,0 +1,326 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore + +VTK_PARSER_ABSOLUTE_VALUE:int +VTK_PARSER_ADD:int +VTK_PARSER_AND:int +VTK_PARSER_ARCCOSINE:int +VTK_PARSER_ARCSINE:int +VTK_PARSER_ARCTANGENT:int +VTK_PARSER_BEGIN_VARIABLES:int +VTK_PARSER_CEILING:int +VTK_PARSER_COSINE:int +VTK_PARSER_CROSS:int +VTK_PARSER_DIVIDE:int +VTK_PARSER_DOT_PRODUCT:int +VTK_PARSER_EQUAL_TO:int +VTK_PARSER_ERROR_RESULT:float +VTK_PARSER_EXPONENT:int +VTK_PARSER_FLOOR:int +VTK_PARSER_GREATER_THAN:int +VTK_PARSER_HYPERBOLIC_COSINE:int +VTK_PARSER_HYPERBOLIC_SINE:int +VTK_PARSER_HYPERBOLIC_TANGENT:int +VTK_PARSER_IF:int +VTK_PARSER_IHAT:int +VTK_PARSER_IMMEDIATE:int +VTK_PARSER_JHAT:int +VTK_PARSER_KHAT:int +VTK_PARSER_LESS_THAN:int +VTK_PARSER_LOGARITHM:int +VTK_PARSER_LOGARITHM10:int +VTK_PARSER_LOGARITHME:int +VTK_PARSER_MAGNITUDE:int +VTK_PARSER_MAX:int +VTK_PARSER_MIN:int +VTK_PARSER_MULTIPLY:int +VTK_PARSER_NORMALIZE:int +VTK_PARSER_OR:int +VTK_PARSER_POWER:int +VTK_PARSER_SCALAR_TIMES_VECTOR:int +VTK_PARSER_SIGN:int +VTK_PARSER_SINE:int +VTK_PARSER_SQUARE_ROOT:int +VTK_PARSER_SUBTRACT:int +VTK_PARSER_TANGENT:int +VTK_PARSER_UNARY_MINUS:int +VTK_PARSER_UNARY_PLUS:int +VTK_PARSER_VECTOR_ADD:int +VTK_PARSER_VECTOR_IF:int +VTK_PARSER_VECTOR_OVER_SCALAR:int +VTK_PARSER_VECTOR_SUBTRACT:int +VTK_PARSER_VECTOR_TIMES_SCALAR:int +VTK_PARSER_VECTOR_UNARY_MINUS:int +VTK_PARSER_VECTOR_UNARY_PLUS:int + +class vtkContourValues(vtkmodules.vtkCommonCore.vtkObject): + number_of_contours:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self, other:'vtkContourValues') -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContourValues': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContourValues': ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + +class vtkErrorCode(object): + class ErrorIds(int): ... + CannotOpenFileError:'ErrorIds' + FileFormatError:'ErrorIds' + FileNotFoundError:'ErrorIds' + FirstVTKErrorCode:'ErrorIds' + NoError:'ErrorIds' + NoFileNameError:'ErrorIds' + OutOfDiskSpaceError:'ErrorIds' + PrematureEndOfFileError:'ErrorIds' + UnknownError:'ErrorIds' + UnrecognizedFileTypeError:'ErrorIds' + UserError:'ErrorIds' + last_system_error:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkErrorCode') -> None: ... + @staticmethod + def GetErrorCodeFromString(error:str) -> int: ... + @staticmethod + def GetLastSystemError() -> int: ... + @staticmethod + def GetStringFromErrorCode(error:int) -> str: ... + +class vtkExprTkFunctionParser(vtkmodules.vtkCommonCore.vtkObject): + function:'getset_descriptor' + m_time:'getset_descriptor' + number_of_scalar_variables:'getset_descriptor' + number_of_vector_variables:'getset_descriptor' + replace_invalid_values:'getset_descriptor' + replacement_value:'getset_descriptor' + scalar_result:'getset_descriptor' + vector_result:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFunction(self) -> str: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfScalarVariables(self) -> int: ... + def GetNumberOfVectorVariables(self) -> int: ... + def GetReplaceInvalidValues(self) -> int: ... + def GetReplacementValue(self) -> float: ... + def GetScalarResult(self) -> float: ... + def GetScalarVariableIndex(self, name:str) -> int: ... + def GetScalarVariableName(self, i:int) -> str: ... + @overload + def GetScalarVariableNeeded(self, i:int) -> bool: ... + @overload + def GetScalarVariableNeeded(self, variableName:str) -> bool: ... + @overload + def GetScalarVariableValue(self, variableName:str) -> float: ... + @overload + def GetScalarVariableValue(self, i:int) -> float: ... + @overload + def GetVectorResult(self) -> Tuple[float, float, float]: ... + @overload + def GetVectorResult(self, result:MutableSequence[float]) -> None: ... + def GetVectorVariableIndex(self, name:str) -> int: ... + def GetVectorVariableName(self, i:int) -> str: ... + @overload + def GetVectorVariableNeeded(self, i:int) -> bool: ... + @overload + def GetVectorVariableNeeded(self, variableName:str) -> bool: ... + @overload + def GetVectorVariableValue(self, variableName:str) -> Tuple[float, float, float]: ... + @overload + def GetVectorVariableValue(self, variableName:str, value:MutableSequence[float]) -> None: ... + @overload + def GetVectorVariableValue(self, i:int) -> Tuple[float, float, float]: ... + @overload + def GetVectorVariableValue(self, i:int, value:MutableSequence[float]) -> None: ... + def InvalidateFunction(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsScalarResult(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def IsVectorResult(self) -> int: ... + def NewInstance(self) -> 'vtkExprTkFunctionParser': ... + def RemoveAllVariables(self) -> None: ... + def RemoveScalarVariables(self) -> None: ... + def RemoveVectorVariables(self) -> None: ... + def ReplaceInvalidValuesOff(self) -> None: ... + def ReplaceInvalidValuesOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExprTkFunctionParser': ... + @staticmethod + def SanitizeName(name:str) -> str: ... + def SetFunction(self, function:str) -> None: ... + def SetReplaceInvalidValues(self, _arg:int) -> None: ... + def SetReplacementValue(self, _arg:float) -> None: ... + @overload + def SetScalarVariableValue(self, variableName:str, value:float) -> None: ... + @overload + def SetScalarVariableValue(self, i:int, value:float) -> None: ... + @overload + def SetVectorVariableValue(self, variableName:str, xValue:float, yValue:float, zValue:float) -> None: ... + @overload + def SetVectorVariableValue(self, variableName:str, values:MutableSequence[float]) -> None: ... + @overload + def SetVectorVariableValue(self, i:int, xValue:float, yValue:float, zValue:float) -> None: ... + @overload + def SetVectorVariableValue(self, i:int, values:MutableSequence[float]) -> None: ... + +class vtkFunctionParser(vtkmodules.vtkCommonCore.vtkObject): + function:'getset_descriptor' + m_time:'getset_descriptor' + number_of_scalar_variables:'getset_descriptor' + number_of_vector_variables:'getset_descriptor' + replace_invalid_values:'getset_descriptor' + replacement_value:'getset_descriptor' + scalar_result:'getset_descriptor' + vector_result:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFunction(self) -> str: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfScalarVariables(self) -> int: ... + def GetNumberOfVectorVariables(self) -> int: ... + def GetReplaceInvalidValues(self) -> int: ... + def GetReplacementValue(self) -> float: ... + def GetScalarResult(self) -> float: ... + def GetScalarVariableIndex(self, name:str) -> int: ... + def GetScalarVariableName(self, i:int) -> str: ... + @overload + def GetScalarVariableNeeded(self, i:int) -> bool: ... + @overload + def GetScalarVariableNeeded(self, variableName:str) -> bool: ... + @overload + def GetScalarVariableValue(self, variableName:str) -> float: ... + @overload + def GetScalarVariableValue(self, i:int) -> float: ... + @overload + def GetVectorResult(self) -> Tuple[float, float, float]: ... + @overload + def GetVectorResult(self, result:MutableSequence[float]) -> None: ... + def GetVectorVariableIndex(self, name:str) -> int: ... + def GetVectorVariableName(self, i:int) -> str: ... + @overload + def GetVectorVariableNeeded(self, i:int) -> bool: ... + @overload + def GetVectorVariableNeeded(self, variableName:str) -> bool: ... + @overload + def GetVectorVariableValue(self, variableName:str) -> Tuple[float, float, float]: ... + @overload + def GetVectorVariableValue(self, variableName:str, value:MutableSequence[float]) -> None: ... + @overload + def GetVectorVariableValue(self, i:int) -> Tuple[float, float, float]: ... + @overload + def GetVectorVariableValue(self, i:int, value:MutableSequence[float]) -> None: ... + def InvalidateFunction(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsScalarResult(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def IsVectorResult(self) -> int: ... + def NewInstance(self) -> 'vtkFunctionParser': ... + def RemoveAllVariables(self) -> None: ... + def RemoveScalarVariables(self) -> None: ... + def RemoveVectorVariables(self) -> None: ... + def ReplaceInvalidValuesOff(self) -> None: ... + def ReplaceInvalidValuesOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFunctionParser': ... + def SetFunction(self, function:str) -> None: ... + def SetReplaceInvalidValues(self, _arg:int) -> None: ... + def SetReplacementValue(self, _arg:float) -> None: ... + @overload + def SetScalarVariableValue(self, variableName:str, value:float) -> None: ... + @overload + def SetScalarVariableValue(self, i:int, value:float) -> None: ... + @overload + def SetVectorVariableValue(self, variableName:str, xValue:float, yValue:float, zValue:float) -> None: ... + @overload + def SetVectorVariableValue(self, variableName:str, values:Sequence[float]) -> None: ... + @overload + def SetVectorVariableValue(self, i:int, xValue:float, yValue:float, zValue:float) -> None: ... + @overload + def SetVectorVariableValue(self, i:int, values:Sequence[float]) -> None: ... + +class vtkHeap(vtkmodules.vtkCommonCore.vtkObject): + block_size:'getset_descriptor' + number_of_allocations:'getset_descriptor' + number_of_blocks:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllocateMemory(self, n:int) -> Pointer: ... + def GetBlockSize(self) -> int: ... + def GetNumberOfAllocations(self) -> int: ... + def GetNumberOfBlocks(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHeap': ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHeap': ... + def SetBlockSize(self, __a:int) -> None: ... + def StringDup(self, str:str) -> str: ... + +class vtkPolygonBuilder(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkPolygonBuilder') -> None: ... + def GetPolygons(self, polys:'vtkIdListCollection') -> None: ... + def InsertTriangle(self, abc:Sequence[int]) -> None: ... + def Reset(self) -> None: ... + +class vtkResourceFileLocator(vtkmodules.vtkCommonCore.vtkObject): + log_verbosity:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def GetLibraryPathForSymbolUnix(symbolname:str) -> str: ... + @staticmethod + def GetLibraryPathForSymbolWin32(fptr:Pointer) -> str: ... + def GetLogVerbosity(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def Locate(self, anchor:str, landmark:str, defaultDir:str=...) -> str: ... + @overload + def Locate(self, anchor:str, landmark_prefixes:Sequence[str], landmark:str, defaultDir:str=...) -> str: ... + def NewInstance(self) -> 'vtkResourceFileLocator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkResourceFileLocator': ... + def SetLogVerbosity(self, _arg:int) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonPython.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonPython.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..4a36ab8 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonPython.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonPython.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonPython.pyi new file mode 100644 index 0000000..ffbad58 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonPython.pyi @@ -0,0 +1,28 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore + +class vtkPythonArchiver(vtkmodules.vtkCommonCore.vtkArchiver): + python_object:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CloseArchive(self) -> None: ... + def Contains(self, relativePath:str) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InsertIntoArchive(self, relativePath:str, data:str, size:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPythonArchiver': ... + def OpenArchive(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPythonArchiver': ... + def SetPythonObject(self, obj:'PyObject') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonSystem.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonSystem.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..205b49b Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonSystem.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonSystem.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonSystem.pyi new file mode 100644 index 0000000..bcd0920 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonSystem.pyi @@ -0,0 +1,232 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore + +class vtkSocket(vtkmodules.vtkCommonCore.vtkObject): + connected:'getset_descriptor' + socket_descriptor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CloseSocket(self) -> None: ... + def GetConnected(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSocketDescriptor(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSocket': ... + def Receive(self, data:Pointer, length:int, readFully:int=1) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSocket': ... + @staticmethod + def SelectSockets(sockets_to_select:Sequence[int], size:int, msec:int, selected_index:MutableSequence[int]) -> int: ... + def Send(self, data:Pointer, length:int) -> int: ... + +class vtkClientSocket(vtkSocket): + connecting_side:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConnectToServer(self, hostname:str, port:int) -> int: ... + def GetConnectingSide(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkClientSocket': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkClientSocket': ... + +class vtkDirectory(vtkmodules.vtkCommonCore.vtkObject): + files:'getset_descriptor' + number_of_files:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def DeleteDirectory(dir:str) -> int: ... + def FileIsDirectory(self, name:str) -> int: ... + @staticmethod + def GetCurrentWorkingDirectory(buf:str, len:int) -> str: ... + def GetFile(self, index:int) -> str: ... + def GetFiles(self) -> 'vtkStringArray': ... + def GetNumberOfFiles(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MakeDirectory(dir:str) -> int: ... + def NewInstance(self) -> 'vtkDirectory': ... + def Open(self, dir:str) -> int: ... + @staticmethod + def Rename(oldname:str, newname:str) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDirectory': ... + +class vtkExecutableRunner(vtkmodules.vtkCommonCore.vtkObject): + command:'getset_descriptor' + execute_in_system_shell:'getset_descriptor' + number_of_arguments:'getset_descriptor' + return_value:'getset_descriptor' + right_trim_result:'getset_descriptor' + std_err:'getset_descriptor' + std_out:'getset_descriptor' + timeout:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddArgument(self, arg:str) -> None: ... + def ClearArguments(self) -> None: ... + def Execute(self) -> None: ... + def ExecuteInSystemShellOff(self) -> None: ... + def ExecuteInSystemShellOn(self) -> None: ... + def GetCommand(self) -> str: ... + def GetExecuteInSystemShell(self) -> bool: ... + def GetNumberOfArguments(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReturnValue(self) -> int: ... + def GetRightTrimResult(self) -> bool: ... + def GetStdErr(self) -> str: ... + def GetStdOut(self) -> str: ... + def GetTimeout(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExecutableRunner': ... + def RightTrimResultOff(self) -> None: ... + def RightTrimResultOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExecutableRunner': ... + def SetCommand(self, arg:str) -> None: ... + def SetExecuteInSystemShell(self, _arg:bool) -> None: ... + def SetRightTrimResult(self, _arg:bool) -> None: ... + def SetTimeout(self, _arg:float) -> None: ... + +class vtkServerSocket(vtkSocket): + server_port:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def CreateServer(self, port:int, bindAddr:str) -> int: ... + @overload + def CreateServer(self, port:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetServerPort(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkServerSocket': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkServerSocket': ... + def WaitForConnection(self, msec:int=0) -> 'vtkClientSocket': ... + +class vtkSocketCollection(vtkmodules.vtkCommonCore.vtkCollection): + last_selected_socket:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, soc:'vtkSocket') -> None: ... + def GetLastSelectedSocket(self) -> 'vtkSocket': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSocketCollection': ... + def RemoveAllItems(self) -> None: ... + @overload + def RemoveItem(self, i:int) -> None: ... + @overload + def RemoveItem(self, __a:'vtkObject') -> None: ... + def ReplaceItem(self, i:int, __b:'vtkObject') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSocketCollection': ... + def SelectSockets(self, msec:int=0) -> int: ... + +class vtkTimerLog(vtkmodules.vtkCommonCore.vtkObject): + cpu_time:'getset_descriptor' + elapsed_time:'getset_descriptor' + logging:'getset_descriptor' + max_entries:'getset_descriptor' + number_of_events:'getset_descriptor' + universal_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def CleanupLog() -> None: ... + @staticmethod + def DumpLog(filename:str) -> None: ... + @staticmethod + def GetCPUTime() -> float: ... + def GetElapsedTime(self) -> float: ... + @staticmethod + def GetEventIndent(i:int) -> int: ... + @staticmethod + def GetEventString(i:int) -> str: ... + @staticmethod + def GetEventType(i:int) -> vtkTimerLogEntry.LogEntryType: ... + @staticmethod + def GetEventWallTime(i:int) -> float: ... + @staticmethod + def GetLogging() -> int: ... + @staticmethod + def GetMaxEntries() -> int: ... + @staticmethod + def GetNumberOfEvents() -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GetUniversalTime() -> float: ... + @staticmethod + def InsertTimedEvent(EventString:str, time:float, cpuTicks:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def LoggingOff() -> None: ... + @staticmethod + def LoggingOn() -> None: ... + @staticmethod + def MarkEndEvent(EventString:str) -> None: ... + @staticmethod + def MarkEvent(EventString:str) -> None: ... + @staticmethod + def MarkStartEvent(EventString:str) -> None: ... + def NewInstance(self) -> 'vtkTimerLog': ... + @staticmethod + def ResetLog() -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTimerLog': ... + @staticmethod + def SetLogging(v:int) -> None: ... + @staticmethod + def SetMaxEntries(a:int) -> None: ... + def StartTimer(self) -> None: ... + def StopTimer(self) -> None: ... + +class vtkTimerLogCleanup(object): + def __init__(self) -> None: ... + +class vtkTimerLogEntry(object): + class LogEntryType(int): ... + END:'LogEntryType' + INSERTED:'LogEntryType' + INVALID:'LogEntryType' + STANDALONE:'LogEntryType' + START:'LogEntryType' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkTimerLogEntry') -> None: ... + +class vtkTimerLogScope(object): + def __init__(self, eventString:str) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonTransforms.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonTransforms.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..3473278 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonTransforms.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonTransforms.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonTransforms.pyi new file mode 100644 index 0000000..c9fc864 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkCommonTransforms.pyi @@ -0,0 +1,618 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore + +VTK_LANDMARK_AFFINE:int +VTK_LANDMARK_RIGIDBODY:int +VTK_LANDMARK_SIMILARITY:int +VTK_RBF_CUSTOM:int +VTK_RBF_R:int +VTK_RBF_R2LOGR:int + +class vtkAbstractTransform(vtkmodules.vtkCommonCore.vtkObject): + inverse:'getset_descriptor' + m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CircuitCheck(self, transform:'vtkAbstractTransform') -> int: ... + def DeepCopy(self, __a:'vtkAbstractTransform') -> None: ... + def GetInverse(self) -> 'vtkAbstractTransform': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InternalTransformDerivative(self, in_:Sequence[float], out:MutableSequence[float], derivative:MutableSequence[MutableSequence[float]]) -> None: ... + def InternalTransformPoint(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + def Inverse(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeTransform(self) -> 'vtkAbstractTransform': ... + def Modified(self) -> None: ... + def NewInstance(self) -> 'vtkAbstractTransform': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractTransform': ... + def SetInverse(self, transform:'vtkAbstractTransform') -> None: ... + def TransformDoubleNormalAtPoint(self, point:Sequence[float], normal:Sequence[float]) -> Tuple[float, float, float]: ... + @overload + def TransformDoublePoint(self, x:float, y:float, z:float) -> Tuple[float, float, float]: ... + @overload + def TransformDoublePoint(self, point:Sequence[float]) -> Tuple[float, float, float]: ... + def TransformDoubleVectorAtPoint(self, point:Sequence[float], vector:Sequence[float]) -> Tuple[float, float, float]: ... + def TransformFloatNormalAtPoint(self, point:Sequence[float], normal:Sequence[float]) -> Tuple[float, float, float]: ... + @overload + def TransformFloatPoint(self, x:float, y:float, z:float) -> Tuple[float, float, float]: ... + @overload + def TransformFloatPoint(self, point:Sequence[float]) -> Tuple[float, float, float]: ... + def TransformFloatVectorAtPoint(self, point:Sequence[float], vector:Sequence[float]) -> Tuple[float, float, float]: ... + @overload + def TransformNormalAtPoint(self, point:Sequence[float], in_:Sequence[float], out:MutableSequence[float]) -> None: ... + @overload + def TransformNormalAtPoint(self, point:Sequence[float], normal:Sequence[float]) -> Tuple[float, float, float]: ... + @overload + def TransformPoint(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + @overload + def TransformPoint(self, x:float, y:float, z:float) -> Tuple[float, float, float]: ... + @overload + def TransformPoint(self, point:Sequence[float]) -> Tuple[float, float, float]: ... + def TransformPoints(self, inPts:'vtkPoints', outPts:'vtkPoints') -> None: ... + @overload + def TransformVectorAtPoint(self, point:Sequence[float], in_:Sequence[float], out:MutableSequence[float]) -> None: ... + @overload + def TransformVectorAtPoint(self, point:Sequence[float], vector:Sequence[float]) -> Tuple[float, float, float]: ... + def Update(self) -> None: ... + +class vtkWarpTransform(vtkAbstractTransform): + inverse_flag:'getset_descriptor' + inverse_iterations:'getset_descriptor' + inverse_tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInverseFlag(self) -> int: ... + def GetInverseIterations(self) -> int: ... + def GetInverseTolerance(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InternalTransformDerivative(self, in_:Sequence[float], out:MutableSequence[float], derivative:MutableSequence[MutableSequence[float]]) -> None: ... + def InternalTransformPoint(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + def Inverse(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWarpTransform': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWarpTransform': ... + def SetInverseIterations(self, _arg:int) -> None: ... + def SetInverseTolerance(self, _arg:float) -> None: ... + @overload + def TemplateTransformInverse(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + @overload + def TemplateTransformInverse(self, in_:Sequence[float], out:MutableSequence[float], derivative:MutableSequence[MutableSequence[float]]) -> None: ... + @overload + def TemplateTransformPoint(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + @overload + def TemplateTransformPoint(self, in_:Sequence[float], out:MutableSequence[float], derivative:MutableSequence[MutableSequence[float]]) -> None: ... + +class vtkCylindricalTransform(vtkWarpTransform): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeTransform(self) -> 'vtkAbstractTransform': ... + def NewInstance(self) -> 'vtkCylindricalTransform': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCylindricalTransform': ... + +class vtkGeneralTransform(vtkAbstractTransform): + input:'getset_descriptor' + inverse_flag:'getset_descriptor' + m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CircuitCheck(self, transform:'vtkAbstractTransform') -> int: ... + @overload + def Concatenate(self, matrix:'vtkMatrix4x4') -> None: ... + @overload + def Concatenate(self, elements:Sequence[float]) -> None: ... + @overload + def Concatenate(self, transform:'vtkAbstractTransform') -> None: ... + def GetConcatenatedTransform(self, i:int) -> 'vtkAbstractTransform': ... + def GetInput(self) -> 'vtkAbstractTransform': ... + def GetInverseFlag(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfConcatenatedTransforms(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Identity(self) -> None: ... + def InternalTransformDerivative(self, in_:Sequence[float], out:MutableSequence[float], derivative:MutableSequence[MutableSequence[float]]) -> None: ... + def InternalTransformPoint(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + def Inverse(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeTransform(self) -> 'vtkAbstractTransform': ... + def NewInstance(self) -> 'vtkGeneralTransform': ... + def Pop(self) -> None: ... + def PostMultiply(self) -> None: ... + def PreMultiply(self) -> None: ... + def Push(self) -> None: ... + @overload + def RotateWXYZ(self, angle:float, x:float, y:float, z:float) -> None: ... + @overload + def RotateWXYZ(self, angle:float, axis:Sequence[float]) -> None: ... + def RotateX(self, angle:float) -> None: ... + def RotateY(self, angle:float) -> None: ... + def RotateZ(self, angle:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGeneralTransform': ... + @overload + def Scale(self, x:float, y:float, z:float) -> None: ... + @overload + def Scale(self, s:Sequence[float]) -> None: ... + def SetInput(self, input:'vtkAbstractTransform') -> None: ... + @overload + def Translate(self, x:float, y:float, z:float) -> None: ... + @overload + def Translate(self, x:Sequence[float]) -> None: ... + +class vtkHomogeneousTransform(vtkAbstractTransform): + homogeneous_inverse:'getset_descriptor' + matrix:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetHomogeneousInverse(self) -> 'vtkHomogeneousTransform': ... + @overload + def GetMatrix(self, m:'vtkMatrix4x4') -> None: ... + @overload + def GetMatrix(self) -> 'vtkMatrix4x4': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InternalTransformDerivative(self, in_:Sequence[float], out:MutableSequence[float], derivative:MutableSequence[MutableSequence[float]]) -> None: ... + def InternalTransformPoint(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHomogeneousTransform': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHomogeneousTransform': ... + def TransformPoints(self, inPts:'vtkPoints', outPts:'vtkPoints') -> None: ... + +class vtkLinearTransform(vtkHomogeneousTransform): + linear_inverse:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLinearInverse(self) -> 'vtkLinearTransform': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InternalTransformDerivative(self, in_:Sequence[float], out:MutableSequence[float], derivative:MutableSequence[MutableSequence[float]]) -> None: ... + def InternalTransformNormal(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + def InternalTransformPoint(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + def InternalTransformVector(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLinearTransform': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLinearTransform': ... + @overload + def TransformDoubleNormal(self, x:float, y:float, z:float) -> Tuple[float, float, float]: ... + @overload + def TransformDoubleNormal(self, normal:Sequence[float]) -> Tuple[float, float, float]: ... + @overload + def TransformDoubleVector(self, x:float, y:float, z:float) -> Tuple[float, float, float]: ... + @overload + def TransformDoubleVector(self, vec:Sequence[float]) -> Tuple[float, float, float]: ... + @overload + def TransformFloatNormal(self, x:float, y:float, z:float) -> Tuple[float, float, float]: ... + @overload + def TransformFloatNormal(self, normal:Sequence[float]) -> Tuple[float, float, float]: ... + @overload + def TransformFloatVector(self, x:float, y:float, z:float) -> Tuple[float, float, float]: ... + @overload + def TransformFloatVector(self, vec:Sequence[float]) -> Tuple[float, float, float]: ... + @overload + def TransformNormal(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + @overload + def TransformNormal(self, x:float, y:float, z:float) -> Tuple[float, float, float]: ... + @overload + def TransformNormal(self, normal:Sequence[float]) -> Tuple[float, float, float]: ... + def TransformNormals(self, inNms:'vtkDataArray', outNms:'vtkDataArray') -> None: ... + def TransformPoints(self, inPts:'vtkPoints', outPts:'vtkPoints') -> None: ... + @overload + def TransformVector(self, x:float, y:float, z:float) -> Tuple[float, float, float]: ... + @overload + def TransformVector(self, normal:Sequence[float]) -> Tuple[float, float, float]: ... + @overload + def TransformVector(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + def TransformVectors(self, inVrs:'vtkDataArray', outVrs:'vtkDataArray') -> None: ... + +class vtkIdentityTransform(vtkLinearTransform): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InternalTransformDerivative(self, in_:Sequence[float], out:MutableSequence[float], derivative:MutableSequence[MutableSequence[float]]) -> None: ... + def InternalTransformNormal(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + def InternalTransformPoint(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + def InternalTransformVector(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + def Inverse(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeTransform(self) -> 'vtkAbstractTransform': ... + def NewInstance(self) -> 'vtkIdentityTransform': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIdentityTransform': ... + def TransformNormals(self, inNms:'vtkDataArray', outNms:'vtkDataArray') -> None: ... + def TransformPoints(self, inPts:'vtkPoints', outPts:'vtkPoints') -> None: ... + def TransformVectors(self, inVrs:'vtkDataArray', outVrs:'vtkDataArray') -> None: ... + +class vtkLandmarkTransform(vtkLinearTransform): + m_time:'getset_descriptor' + mode:'getset_descriptor' + source_landmarks:'getset_descriptor' + target_landmarks:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMTime(self) -> int: ... + def GetMode(self) -> int: ... + def GetModeAsString(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSourceLandmarks(self) -> 'vtkPoints': ... + def GetTargetLandmarks(self) -> 'vtkPoints': ... + def Inverse(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeTransform(self) -> 'vtkAbstractTransform': ... + def NewInstance(self) -> 'vtkLandmarkTransform': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLandmarkTransform': ... + def SetMode(self, _arg:int) -> None: ... + def SetModeToAffine(self) -> None: ... + def SetModeToRigidBody(self) -> None: ... + def SetModeToSimilarity(self) -> None: ... + def SetSourceLandmarks(self, source:'vtkPoints') -> None: ... + def SetTargetLandmarks(self, target:'vtkPoints') -> None: ... + +class vtkMatrixToHomogeneousTransform(vtkHomogeneousTransform): + input:'getset_descriptor' + m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInput(self) -> 'vtkMatrix4x4': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Inverse(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeTransform(self) -> 'vtkAbstractTransform': ... + def NewInstance(self) -> 'vtkMatrixToHomogeneousTransform': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMatrixToHomogeneousTransform': ... + def SetInput(self, __a:'vtkMatrix4x4') -> None: ... + +class vtkMatrixToLinearTransform(vtkLinearTransform): + input:'getset_descriptor' + m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInput(self) -> 'vtkMatrix4x4': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Inverse(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeTransform(self) -> 'vtkAbstractTransform': ... + def NewInstance(self) -> 'vtkMatrixToLinearTransform': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMatrixToLinearTransform': ... + def SetInput(self, __a:'vtkMatrix4x4') -> None: ... + +class vtkPerspectiveTransform(vtkHomogeneousTransform): + input:'getset_descriptor' + inverse_flag:'getset_descriptor' + m_time:'getset_descriptor' + matrix:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AdjustViewport(self, oldXMin:float, oldXMax:float, oldYMin:float, oldYMax:float, newXMin:float, newXMax:float, newYMin:float, newYMax:float) -> None: ... + def AdjustZBuffer(self, oldNearZ:float, oldFarZ:float, newNearZ:float, newFarZ:float) -> None: ... + def CircuitCheck(self, transform:'vtkAbstractTransform') -> int: ... + @overload + def Concatenate(self, matrix:'vtkMatrix4x4') -> None: ... + @overload + def Concatenate(self, elements:Sequence[float]) -> None: ... + @overload + def Concatenate(self, transform:'vtkHomogeneousTransform') -> None: ... + def Frustum(self, xmin:float, xmax:float, ymin:float, ymax:float, znear:float, zfar:float) -> None: ... + def GetConcatenatedTransform(self, i:int) -> 'vtkHomogeneousTransform': ... + def GetInput(self) -> 'vtkHomogeneousTransform': ... + def GetInverseFlag(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfConcatenatedTransforms(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Identity(self) -> None: ... + def Inverse(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeTransform(self) -> 'vtkAbstractTransform': ... + def NewInstance(self) -> 'vtkPerspectiveTransform': ... + def Ortho(self, xmin:float, xmax:float, ymin:float, ymax:float, znear:float, zfar:float) -> None: ... + def Perspective(self, angle:float, aspect:float, znear:float, zfar:float) -> None: ... + def Pop(self) -> None: ... + def PostMultiply(self) -> None: ... + def PreMultiply(self) -> None: ... + def Push(self) -> None: ... + @overload + def RotateWXYZ(self, angle:float, x:float, y:float, z:float) -> None: ... + @overload + def RotateWXYZ(self, angle:float, axis:Sequence[float]) -> None: ... + def RotateX(self, angle:float) -> None: ... + def RotateY(self, angle:float) -> None: ... + def RotateZ(self, angle:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPerspectiveTransform': ... + @overload + def Scale(self, x:float, y:float, z:float) -> None: ... + @overload + def Scale(self, s:Sequence[float]) -> None: ... + def SetInput(self, input:'vtkHomogeneousTransform') -> None: ... + @overload + def SetMatrix(self, matrix:'vtkMatrix4x4') -> None: ... + @overload + def SetMatrix(self, elements:Sequence[float]) -> None: ... + @overload + def SetupCamera(self, position:Sequence[float], focalpoint:Sequence[float], viewup:Sequence[float]) -> None: ... + @overload + def SetupCamera(self, p0:float, p1:float, p2:float, fp0:float, fp1:float, fp2:float, vup0:float, vup1:float, vup2:float) -> None: ... + def Shear(self, dxdz:float, dydz:float, zplane:float) -> None: ... + def Stereo(self, angle:float, focaldistance:float) -> None: ... + @overload + def Translate(self, x:float, y:float, z:float) -> None: ... + @overload + def Translate(self, x:Sequence[float]) -> None: ... + +class vtkSphericalTransform(vtkWarpTransform): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeTransform(self) -> 'vtkAbstractTransform': ... + def NewInstance(self) -> 'vtkSphericalTransform': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSphericalTransform': ... + +class vtkThinPlateSplineTransform(vtkWarpTransform): + basis:'getset_descriptor' + m_time:'getset_descriptor' + regularize_bulk_transform:'getset_descriptor' + sigma:'getset_descriptor' + source_landmarks:'getset_descriptor' + target_landmarks:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBasis(self) -> int: ... + def GetBasisAsString(self) -> str: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRegularizeBulkTransform(self) -> bool: ... + def GetSigma(self) -> float: ... + def GetSourceLandmarks(self) -> 'vtkPoints': ... + def GetTargetLandmarks(self) -> 'vtkPoints': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeTransform(self) -> 'vtkAbstractTransform': ... + def NewInstance(self) -> 'vtkThinPlateSplineTransform': ... + def RegularizeBulkTransformOff(self) -> None: ... + def RegularizeBulkTransformOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkThinPlateSplineTransform': ... + def SetBasis(self, basis:int) -> None: ... + def SetBasisToR(self) -> None: ... + def SetBasisToR2LogR(self) -> None: ... + def SetRegularizeBulkTransform(self, _arg:bool) -> None: ... + def SetSigma(self, _arg:float) -> None: ... + def SetSourceLandmarks(self, source:'vtkPoints') -> None: ... + def SetTargetLandmarks(self, target:'vtkPoints') -> None: ... + +class vtkTransform(vtkLinearTransform): + input:'getset_descriptor' + inverse:'getset_descriptor' + inverse_flag:'getset_descriptor' + m_time:'getset_descriptor' + matrix:'getset_descriptor' + orientation:'getset_descriptor' + orientation_wxyz:'getset_descriptor' + position:'getset_descriptor' + scale:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CircuitCheck(self, transform:'vtkAbstractTransform') -> int: ... + @overload + def Concatenate(self, matrix:'vtkMatrix4x4') -> None: ... + @overload + def Concatenate(self, elements:Sequence[float]) -> None: ... + @overload + def Concatenate(self, transform:'vtkLinearTransform') -> None: ... + def GetConcatenatedTransform(self, i:int) -> 'vtkLinearTransform': ... + def GetInput(self) -> 'vtkLinearTransform': ... + @overload + def GetInverse(self, inverse:'vtkMatrix4x4') -> None: ... + @overload + def GetInverse(self) -> 'vtkAbstractTransform': ... + def GetInverseFlag(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfConcatenatedTransforms(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOrientation(self, orient:MutableSequence[float]) -> None: ... + @overload + def GetOrientation(self) -> Tuple[float, float, float]: ... + @overload + @staticmethod + def GetOrientation(orient:MutableSequence[float], matrix:'vtkMatrix4x4') -> None: ... + @overload + def GetOrientationWXYZ(self, wxyz:MutableSequence[float]) -> None: ... + @overload + def GetOrientationWXYZ(self) -> Tuple[float, float, float, float]: ... + @overload + def GetPosition(self, pos:MutableSequence[float]) -> None: ... + @overload + def GetPosition(self) -> Tuple[float, float, float]: ... + @overload + def GetScale(self, scale:MutableSequence[float]) -> None: ... + @overload + def GetScale(self) -> Tuple[float, float, float]: ... + def GetTranspose(self, transpose:'vtkMatrix4x4') -> None: ... + def Identity(self) -> None: ... + def Inverse(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeTransform(self) -> 'vtkAbstractTransform': ... + def MultiplyPoint(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + def NewInstance(self) -> 'vtkTransform': ... + def Pop(self) -> None: ... + def PostMultiply(self) -> None: ... + def PreMultiply(self) -> None: ... + def Push(self) -> None: ... + @overload + def RotateWXYZ(self, angle:float, x:float, y:float, z:float) -> None: ... + @overload + def RotateWXYZ(self, angle:float, axis:Sequence[float]) -> None: ... + def RotateX(self, angle:float) -> None: ... + def RotateY(self, angle:float) -> None: ... + def RotateZ(self, angle:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransform': ... + @overload + def Scale(self, x:float, y:float, z:float) -> None: ... + @overload + def Scale(self, s:Sequence[float]) -> None: ... + def SetInput(self, input:'vtkLinearTransform') -> None: ... + @overload + def SetMatrix(self, matrix:'vtkMatrix4x4') -> None: ... + @overload + def SetMatrix(self, elements:Sequence[float]) -> None: ... + @overload + def Translate(self, x:float, y:float, z:float) -> None: ... + @overload + def Translate(self, x:Sequence[float]) -> None: ... + +class vtkTransform2D(vtkmodules.vtkCommonCore.vtkObject): + m_time:'getset_descriptor' + matrix:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInverse(self, inverse:'vtkMatrix3x3') -> None: ... + def GetMTime(self) -> int: ... + @overload + def GetMatrix(self) -> 'vtkMatrix3x3': ... + @overload + def GetMatrix(self, matrix:'vtkMatrix3x3') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPosition(self, pos:MutableSequence[float]) -> None: ... + def GetScale(self, scale:MutableSequence[float]) -> None: ... + def GetTranspose(self, transpose:'vtkMatrix3x3') -> None: ... + def Identity(self) -> None: ... + def Inverse(self) -> None: ... + @overload + def InverseTransformPoints(self, inPts:Sequence[float], outPts:MutableSequence[float], n:int) -> None: ... + @overload + def InverseTransformPoints(self, inPts:'vtkPoints2D', outPts:'vtkPoints2D') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MultiplyPoint(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + def NewInstance(self) -> 'vtkTransform2D': ... + def Rotate(self, angle:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransform2D': ... + @overload + def Scale(self, x:float, y:float) -> None: ... + @overload + def Scale(self, s:Sequence[float]) -> None: ... + @overload + def SetMatrix(self, matrix:'vtkMatrix3x3') -> None: ... + @overload + def SetMatrix(self, elements:Sequence[float]) -> None: ... + @overload + def TransformPoints(self, inPts:Sequence[float], outPts:MutableSequence[float], n:int) -> None: ... + @overload + def TransformPoints(self, inPts:'vtkPoints2D', outPts:'vtkPoints2D') -> None: ... + @overload + def Translate(self, x:float, y:float) -> None: ... + @overload + def Translate(self, x:Sequence[float]) -> None: ... + +class vtkTransformCollection(vtkmodules.vtkCommonCore.vtkCollection): + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, __a:'vtkTransform') -> None: ... + def GetNextItem(self) -> 'vtkTransform': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTransformCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransformCollection': ... + +class vtkTransformConcatenation(object): + inverse_flag:'getset_descriptor' + max_m_time:'getset_descriptor' + number_of_post_transforms:'getset_descriptor' + number_of_pre_transforms:'getset_descriptor' + pre_multiply_flag:'getset_descriptor' + @overload + def Concatenate(self, transform:'vtkAbstractTransform') -> None: ... + @overload + def Concatenate(self, elements:Sequence[float]) -> None: ... + def GetInverseFlag(self) -> int: ... + def GetMaxMTime(self) -> int: ... + def GetNumberOfPostTransforms(self) -> int: ... + def GetNumberOfPreTransforms(self) -> int: ... + def GetNumberOfTransforms(self) -> int: ... + def GetPreMultiplyFlag(self) -> int: ... + def GetTransform(self, i:int) -> 'vtkAbstractTransform': ... + def Identity(self) -> None: ... + def Inverse(self) -> None: ... + def Rotate(self, angle:float, x:float, y:float, z:float) -> None: ... + def Scale(self, x:float, y:float, z:float) -> None: ... + def SetPreMultiplyFlag(self, flag:int) -> None: ... + def Translate(self, x:float, y:float, z:float) -> None: ... + +class vtkTransformConcatenationStack(object): ... + +class vtkTransformPair(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkTransformPair') -> None: ... + def SwapForwardInverse(self) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkDomainsChemistry.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkDomainsChemistry.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..55dead8 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkDomainsChemistry.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkDomainsChemistry.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkDomainsChemistry.pyi new file mode 100644 index 0000000..74b92cd --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkDomainsChemistry.pyi @@ -0,0 +1,379 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonDataModel +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkIOXMLParser +import vtkmodules.vtkRenderingCore + +class vtkBlueObeliskData(vtkmodules.vtkCommonCore.vtkObject): + boiling_points:'getset_descriptor' + covalent_radii:'getset_descriptor' + default_colors:'getset_descriptor' + electron_affinities:'getset_descriptor' + electronic_configurations:'getset_descriptor' + exact_masses:'getset_descriptor' + families:'getset_descriptor' + groups:'getset_descriptor' + ionization_energies:'getset_descriptor' + lower_names:'getset_descriptor' + lower_symbols:'getset_descriptor' + masses:'getset_descriptor' + melting_points:'getset_descriptor' + names:'getset_descriptor' + number_of_elements:'getset_descriptor' + pauling_electronegativities:'getset_descriptor' + periodic_table_blocks:'getset_descriptor' + periods:'getset_descriptor' + symbols:'getset_descriptor' + vdw_radii:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBoilingPoints(self) -> 'vtkFloatArray': ... + def GetCovalentRadii(self) -> 'vtkFloatArray': ... + def GetDefaultColors(self) -> 'vtkFloatArray': ... + def GetElectronAffinities(self) -> 'vtkFloatArray': ... + def GetElectronicConfigurations(self) -> 'vtkStringArray': ... + def GetExactMasses(self) -> 'vtkFloatArray': ... + def GetFamilies(self) -> 'vtkStringArray': ... + def GetGroups(self) -> 'vtkUnsignedShortArray': ... + def GetIonizationEnergies(self) -> 'vtkFloatArray': ... + def GetLowerNames(self) -> 'vtkStringArray': ... + def GetLowerSymbols(self) -> 'vtkStringArray': ... + def GetMasses(self) -> 'vtkFloatArray': ... + def GetMeltingPoints(self) -> 'vtkFloatArray': ... + def GetNames(self) -> 'vtkStringArray': ... + def GetNumberOfElements(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPaulingElectronegativities(self) -> 'vtkFloatArray': ... + def GetPeriodicTableBlocks(self) -> 'vtkStringArray': ... + def GetPeriods(self) -> 'vtkUnsignedShortArray': ... + def GetSymbols(self) -> 'vtkStringArray': ... + def GetVDWRadii(self) -> 'vtkFloatArray': ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsInitialized(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LockWriteMutex(self) -> None: ... + def NewInstance(self) -> 'vtkBlueObeliskData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBlueObeliskData': ... + def UnlockWriteMutex(self) -> None: ... + +class vtkBlueObeliskDataParser(vtkmodules.vtkIOXMLParser.vtkXMLParser): + target:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBlueObeliskDataParser': ... + @overload + def Parse(self) -> int: ... + @overload + def Parse(self, __a:str) -> int: ... + @overload + def Parse(self, __a:str, __b:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBlueObeliskDataParser': ... + def SetTarget(self, bodr:'vtkBlueObeliskData') -> None: ... + +class vtkMoleculeMapper(vtkmodules.vtkRenderingCore.vtkMapper): + CovalentRadius:int + CustomArrayRadius:int + DiscreteByAtom:int + SingleColor:int + UnitRadius:int + VDWRadius:int + atom_color:'getset_descriptor' + atom_color_mode:'getset_descriptor' + atomic_radius_array_name:'getset_descriptor' + atomic_radius_scale_factor:'getset_descriptor' + atomic_radius_type:'getset_descriptor' + bond_color:'getset_descriptor' + bond_color_mode:'getset_descriptor' + bond_radius:'getset_descriptor' + bounds:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + lattice_color:'getset_descriptor' + map_scalars:'getset_descriptor' + periodic_table:'getset_descriptor' + render_atoms:'getset_descriptor' + render_bonds:'getset_descriptor' + render_lattice:'getset_descriptor' + supports_selection:'getset_descriptor' + use_multi_cylinders_for_bonds:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetAtomColor(self) -> Tuple[int, int, int]: ... + def GetAtomColorMode(self) -> int: ... + def GetAtomColorModeMaxValue(self) -> int: ... + def GetAtomColorModeMinValue(self) -> int: ... + def GetAtomicRadiusArrayName(self) -> str: ... + def GetAtomicRadiusScaleFactor(self) -> float: ... + def GetAtomicRadiusType(self) -> int: ... + def GetAtomicRadiusTypeAsString(self) -> str: ... + def GetBondColor(self) -> Tuple[int, int, int]: ... + def GetBondColorMode(self) -> int: ... + def GetBondColorModeAsString(self) -> str: ... + def GetBondColorModeMaxValue(self) -> int: ... + def GetBondColorModeMinValue(self) -> int: ... + def GetBondRadius(self) -> float: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetInput(self) -> 'vtkMolecule': ... + def GetLatticeColor(self) -> Tuple[int, int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPeriodicTable(self) -> 'vtkPeriodicTable': ... + def GetRenderAtoms(self) -> bool: ... + def GetRenderBonds(self) -> bool: ... + def GetRenderLattice(self) -> bool: ... + def GetSelectedAtoms(self, selection:'vtkSelection', atomIds:'vtkIdTypeArray') -> None: ... + def GetSelectedAtomsAndBonds(self, selection:'vtkSelection', atomIds:'vtkIdTypeArray', bondIds:'vtkIdTypeArray') -> None: ... + def GetSelectedBonds(self, selection:'vtkSelection', bondIds:'vtkIdTypeArray') -> None: ... + def GetSupportsSelection(self) -> bool: ... + def GetUseMultiCylindersForBonds(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMoleculeMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, __a:'vtkRenderer', __b:'vtkActor') -> None: ... + def RenderAtomsOff(self) -> None: ... + def RenderAtomsOn(self) -> None: ... + def RenderBondsOff(self) -> None: ... + def RenderBondsOn(self) -> None: ... + def RenderLatticeOff(self) -> None: ... + def RenderLatticeOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMoleculeMapper': ... + @overload + def SetAtomColor(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetAtomColor(self, _arg:Sequence[int]) -> None: ... + def SetAtomColorMode(self, _arg:int) -> None: ... + def SetAtomicRadiusArrayName(self, _arg:str) -> None: ... + def SetAtomicRadiusScaleFactor(self, _arg:float) -> None: ... + def SetAtomicRadiusType(self, _arg:int) -> None: ... + def SetAtomicRadiusTypeToCovalentRadius(self) -> None: ... + def SetAtomicRadiusTypeToCustomArrayRadius(self) -> None: ... + def SetAtomicRadiusTypeToUnitRadius(self) -> None: ... + def SetAtomicRadiusTypeToVDWRadius(self) -> None: ... + @overload + def SetBondColor(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetBondColor(self, _arg:Sequence[int]) -> None: ... + def SetBondColorMode(self, _arg:int) -> None: ... + def SetBondColorModeToDiscreteByAtom(self) -> None: ... + def SetBondColorModeToSingleColor(self) -> None: ... + def SetBondRadius(self, _arg:float) -> None: ... + def SetInputData(self, in_:'vtkMolecule') -> None: ... + @overload + def SetLatticeColor(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetLatticeColor(self, _arg:Sequence[int]) -> None: ... + def SetMapScalars(self, map:bool) -> None: ... + def SetRenderAtoms(self, _arg:bool) -> None: ... + def SetRenderBonds(self, _arg:bool) -> None: ... + def SetRenderLattice(self, _arg:bool) -> None: ... + def SetUseMultiCylindersForBonds(self, _arg:bool) -> None: ... + def UseBallAndStickSettings(self) -> None: ... + def UseFastSettings(self) -> None: ... + def UseLiquoriceStickSettings(self) -> None: ... + def UseMultiCylindersForBondsOff(self) -> None: ... + def UseMultiCylindersForBondsOn(self) -> None: ... + def UseVDWSpheresSettings(self) -> None: ... + +class vtkMoleculeToPolyDataFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + input:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInput(self) -> 'vtkMolecule': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMoleculeToPolyDataFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMoleculeToPolyDataFilter': ... + +class vtkMoleculeToAtomBallFilter(vtkMoleculeToPolyDataFilter): + CovalentRadius:int + UnitRadius:int + VDWRadius:int + radius_scale:'getset_descriptor' + radius_source:'getset_descriptor' + resolution:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadiusScale(self) -> float: ... + def GetRadiusSource(self) -> int: ... + def GetResolution(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMoleculeToAtomBallFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMoleculeToAtomBallFilter': ... + def SetRadiusScale(self, _arg:float) -> None: ... + def SetRadiusSource(self, _arg:int) -> None: ... + def SetResolution(self, _arg:int) -> None: ... + +class vtkMoleculeToBondStickFilter(vtkMoleculeToPolyDataFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMoleculeToBondStickFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMoleculeToBondStickFilter': ... + +class vtkMoleculeToLinesFilter(vtkMoleculeToPolyDataFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMoleculeToLinesFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMoleculeToLinesFilter': ... + +class vtkPeriodicTable(vtkmodules.vtkCommonCore.vtkObject): + blue_obelisk_data:'getset_descriptor' + max_vdw_radius:'getset_descriptor' + number_of_elements:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAtomicNumber(self, str:str) -> int: ... + def GetBlueObeliskData(self) -> 'vtkBlueObeliskData': ... + def GetCovalentRadius(self, atomicNum:int) -> float: ... + def GetDefaultLUT(self, __a:'vtkLookupTable') -> None: ... + @overload + def GetDefaultRGBTuple(self, atomicNum:int, rgb:MutableSequence[float]) -> None: ... + @overload + def GetDefaultRGBTuple(self, atomicNum:int) -> 'vtkColor3f': ... + def GetElementName(self, atomicNum:int) -> str: ... + def GetMaxVDWRadius(self) -> float: ... + def GetNumberOfElements(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSymbol(self, atomicNum:int) -> str: ... + def GetVDWRadius(self, atomicNum:int) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPeriodicTable': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPeriodicTable': ... + +class vtkPointSetToMoleculeFilter(vtkmodules.vtkCommonExecutionModel.vtkMoleculeAlgorithm): + convert_lines_into_bonds:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConvertLinesIntoBondsOff(self) -> None: ... + def ConvertLinesIntoBondsOn(self) -> None: ... + def GetConvertLinesIntoBonds(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointSetToMoleculeFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointSetToMoleculeFilter': ... + def SetConvertLinesIntoBonds(self, _arg:bool) -> None: ... + +class vtkProgrammableElectronicData(vtkmodules.vtkCommonDataModel.vtkAbstractElectronicData): + electron_density:'getset_descriptor' + number_of_electrons:'getset_descriptor' + number_of_m_os:'getset_descriptor' + padding:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self, obj:'vtkDataObject') -> None: ... + def GetElectronDensity(self) -> 'vtkImageData': ... + def GetMO(self, orbitalNumber:int) -> 'vtkImageData': ... + def GetNumberOfElectrons(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfMOs(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProgrammableElectronicData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProgrammableElectronicData': ... + def SetElectronDensity(self, __a:'vtkImageData') -> None: ... + def SetMO(self, orbitalNumber:int, data:'vtkImageData') -> None: ... + def SetNumberOfElectrons(self, _arg:int) -> None: ... + def SetNumberOfMOs(self, __a:int) -> None: ... + def SetPadding(self, _arg:float) -> None: ... + +class vtkProteinRibbonFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + coil_width:'getset_descriptor' + draw_small_molecules_as_spheres:'getset_descriptor' + helix_width:'getset_descriptor' + sphere_resolution:'getset_descriptor' + subdivide_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCoilWidth(self) -> float: ... + def GetDrawSmallMoleculesAsSpheres(self) -> bool: ... + def GetHelixWidth(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSphereResolution(self) -> int: ... + def GetSubdivideFactor(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProteinRibbonFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProteinRibbonFilter': ... + def SetCoilWidth(self, _arg:float) -> None: ... + def SetDrawSmallMoleculesAsSpheres(self, _arg:bool) -> None: ... + def SetHelixWidth(self, _arg:float) -> None: ... + def SetSphereResolution(self, _arg:int) -> None: ... + def SetSubdivideFactor(self, _arg:int) -> None: ... + +class vtkSimpleBondPerceiver(vtkmodules.vtkCommonExecutionModel.vtkMoleculeAlgorithm): + is_tolerance_absolute:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetIsToleranceAbsolute(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTolerance(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSimpleBondPerceiver': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSimpleBondPerceiver': ... + def SetIsToleranceAbsolute(self, _arg:bool) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkDomainsChemistryOpenGL2.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkDomainsChemistryOpenGL2.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..e6b9187 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkDomainsChemistryOpenGL2.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkDomainsChemistryOpenGL2.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkDomainsChemistryOpenGL2.pyi new file mode 100644 index 0000000..a30241f --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkDomainsChemistryOpenGL2.pyi @@ -0,0 +1,30 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkDomainsChemistry + +class vtkOpenGLMoleculeMapper(vtkmodules.vtkDomainsChemistry.vtkMoleculeMapper): + fast_atom_mapper:'getset_descriptor' + map_scalars:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFastAtomMapper(self) -> 'vtkOpenGLSphereMapper': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLMoleculeMapper': ... + def ProcessSelectorPixelBuffers(self, sel:'vtkHardwareSelector', pixeloffsets:MutableSequence[int], prop:'vtkProp') -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, __a:'vtkRenderer', __b:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLMoleculeMapper': ... + def SetMapScalars(self, map:bool) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersAMR.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersAMR.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..e17ec48 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersAMR.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersAMR.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersAMR.pyi new file mode 100644 index 0000000..f57236f --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersAMR.pyi @@ -0,0 +1,243 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonDataModel +import vtkmodules.vtkCommonExecutionModel + +class vtkAMRCutPlane(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + center:'getset_descriptor' + controller:'getset_descriptor' + initial_request:'getset_descriptor' + level_of_resolution:'getset_descriptor' + normal:'getset_descriptor' + use_native_cutter:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def FillOutputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetLevelOfResolution(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseNativeCutter(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAMRCutPlane': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAMRCutPlane': ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetInitialRequest(self, _arg:bool) -> None: ... + def SetLevelOfResolution(self, _arg:int) -> None: ... + @overload + def SetNormal(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetNormal(self, _arg:Sequence[float]) -> None: ... + def SetUseNativeCutter(self, _arg:bool) -> None: ... + def UseNativeCutterOff(self) -> None: ... + def UseNativeCutterOn(self) -> None: ... + +class vtkAMRGaussianPulseSource(vtkmodules.vtkCommonExecutionModel.vtkOverlappingAMRAlgorithm): + dimension:'getset_descriptor' + number_of_levels:'getset_descriptor' + pulse_amplitude:'getset_descriptor' + pulse_origin:'getset_descriptor' + pulse_width:'getset_descriptor' + refinement_ratio:'getset_descriptor' + root_spacing:'getset_descriptor' + x_pulse_origin:'getset_descriptor' + x_pulse_width:'getset_descriptor' + y_pulse_origin:'getset_descriptor' + y_pulse_width:'getset_descriptor' + z_pulse_origin:'getset_descriptor' + z_pulse_width:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPulseAmplitude(self) -> float: ... + def GetPulseOrigin(self) -> Tuple[float, float, float]: ... + def GetPulseWidth(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAMRGaussianPulseSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAMRGaussianPulseSource': ... + def SetDimension(self, _arg:int) -> None: ... + def SetNumberOfLevels(self, _arg:int) -> None: ... + def SetPulseAmplitude(self, _arg:float) -> None: ... + @overload + def SetPulseOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPulseOrigin(self, _arg:Sequence[float]) -> None: ... + @overload + def SetPulseWidth(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPulseWidth(self, _arg:Sequence[float]) -> None: ... + def SetRefinementRatio(self, r:int) -> None: ... + def SetRootSpacing(self, h0:float) -> None: ... + def SetXPulseOrigin(self, f:float) -> None: ... + def SetXPulseWidth(self, f:float) -> None: ... + def SetYPulseOrigin(self, f:float) -> None: ... + def SetYPulseWidth(self, f:float) -> None: ... + def SetZPulseOrigin(self, f:float) -> None: ... + def SetZPulseWidth(self, f:float) -> None: ... + +class vtkAMRResampleFilter(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + bias_vector:'getset_descriptor' + controller:'getset_descriptor' + demand_driven_mode:'getset_descriptor' + max:'getset_descriptor' + min:'getset_descriptor' + number_of_partitions:'getset_descriptor' + number_of_samples:'getset_descriptor' + transfer_to_nodes:'getset_descriptor' + use_bias_vector:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def FillOutputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetBiasVector(self) -> Tuple[float, float, float]: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetDemandDrivenMode(self) -> int: ... + def GetMax(self) -> Tuple[float, float, float]: ... + def GetMin(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPartitions(self) -> int: ... + def GetNumberOfSamples(self) -> Tuple[int, int, int]: ... + def GetTransferToNodes(self) -> int: ... + def GetUseBiasVector(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAMRResampleFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAMRResampleFilter': ... + @overload + def SetBiasVector(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetBiasVector(self, _arg:Sequence[float]) -> None: ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetDemandDrivenMode(self, _arg:int) -> None: ... + @overload + def SetMax(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetMax(self, _arg:Sequence[float]) -> None: ... + @overload + def SetMin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetMin(self, _arg:Sequence[float]) -> None: ... + def SetNumberOfPartitions(self, _arg:int) -> None: ... + @overload + def SetNumberOfSamples(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetNumberOfSamples(self, _arg:Sequence[int]) -> None: ... + def SetTransferToNodes(self, _arg:int) -> None: ... + def SetUseBiasVector(self, _arg:bool) -> None: ... + +class vtkAMRSliceFilter(vtkmodules.vtkCommonExecutionModel.vtkOverlappingAMRAlgorithm): + class NormalTag(int): ... + X_NORMAL:'NormalTag' + Y_NORMAL:'NormalTag' + Z_NORMAL:'NormalTag' + controller:'getset_descriptor' + max_resolution:'getset_descriptor' + normal:'getset_descriptor' + offset_from_origin:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def FillOutputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetMaxResolution(self) -> int: ... + def GetNormal(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffsetFromOrigin(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAMRSliceFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAMRSliceFilter': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetMaxResolution(self, _arg:int) -> None: ... + def SetNormal(self, _arg:int) -> None: ... + def SetOffsetFromOrigin(self, _arg:float) -> None: ... + +class vtkAMRToMultiBlockFilter(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def FillOutputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAMRToMultiBlockFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAMRToMultiBlockFilter': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkImageToAMR(vtkmodules.vtkCommonExecutionModel.vtkOverlappingAMRAlgorithm): + maximum_number_of_blocks:'getset_descriptor' + number_of_levels:'getset_descriptor' + number_of_levels_max_value:'getset_descriptor' + number_of_levels_min_value:'getset_descriptor' + refinement_ratio:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaximumNumberOfBlocks(self) -> int: ... + def GetMaximumNumberOfBlocksMaxValue(self) -> int: ... + def GetMaximumNumberOfBlocksMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLevels(self) -> int: ... + def GetNumberOfLevelsMaxValue(self) -> int: ... + def GetNumberOfLevelsMinValue(self) -> int: ... + def GetRefinementRatio(self) -> int: ... + def GetRefinementRatioMaxValue(self) -> int: ... + def GetRefinementRatioMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageToAMR': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageToAMR': ... + def SetMaximumNumberOfBlocks(self, _arg:int) -> None: ... + def SetNumberOfLevels(self, _arg:int) -> None: ... + def SetRefinementRatio(self, _arg:int) -> None: ... + +class vtkParallelAMRUtilities(vtkmodules.vtkCommonDataModel.vtkAMRUtilities): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def BlankCells(amr:'vtkOverlappingAMR', myController:'vtkMultiProcessController') -> None: ... + @staticmethod + def DistributeProcessInformation(amr:'vtkOverlappingAMR', myController:'vtkMultiProcessController', ProcessMap:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParallelAMRUtilities': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParallelAMRUtilities': ... + @staticmethod + def StripGhostLayers(ghostedAMRData:'vtkOverlappingAMR', strippedAMRData:'vtkOverlappingAMR', myController:'vtkMultiProcessController') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersCellGrid.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersCellGrid.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..9b77d36 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersCellGrid.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersCellGrid.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersCellGrid.pyi new file mode 100644 index 0000000..4dcba22 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersCellGrid.pyi @@ -0,0 +1,843 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonDataModel +import vtkmodules.vtkCommonExecutionModel + +class vtkDGSideType(int): ... + +class vtkDGSharingType(int): ... + +class vtkDGShapeModifier(int): ... + +Cells:'vtkDGSideType' +Discontinuous:'vtkDGSharingType' +InverseJacobian:'vtkDGShapeModifier' +None_:'vtkDGShapeModifier' +ScaledJacobian:'vtkDGShapeModifier' +SharedDOF:'vtkDGSharingType' +Sides:'vtkDGSideType' + +class vtkCellAttributeInformation(vtkmodules.vtkCommonDataModel.vtkCellAttributeCalculator): + basis_name:'getset_descriptor' + basis_order:'getset_descriptor' + basis_value_size:'getset_descriptor' + degree_of_freedom_size:'getset_descriptor' + number_of_basis_functions:'getset_descriptor' + shared_degrees_of_freedom:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBasisName(self) -> str: ... + def GetBasisOrder(self) -> int: ... + def GetBasisValueSize(self) -> int: ... + def GetDegreeOfFreedomSize(self) -> int: ... + def GetNumberOfBasisFunctions(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSharedDegreesOfFreedom(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellAttributeInformation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellAttributeInformation': ... + +class vtkCellGridCellCenters(vtkmodules.vtkCommonExecutionModel.vtkCellGridAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridCellCenters': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridCellCenters': ... + +class vtkCellGridCellSource(vtkmodules.vtkCommonExecutionModel.vtkCellGridAlgorithm): + cell_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellType(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridCellSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridCellSource': ... + def SetCellType(self, cellType:str) -> None: ... + +class vtkCellGridComputeSides(vtkmodules.vtkCommonExecutionModel.vtkCellGridAlgorithm): + omit_sides_for_renderable_inputs:'getset_descriptor' + output_dimension_control:'getset_descriptor' + preserve_renderable_inputs:'getset_descriptor' + selection_type:'getset_descriptor' + side_attribute:'getset_descriptor' + strategy:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOmitSidesForRenderableInputs(self) -> bool: ... + def GetOutputDimensionControl(self) -> int: ... + def GetPreserveRenderableInputs(self) -> bool: ... + def GetSelectionType(self) -> vtkCellGridSidesQuery.SelectionMode: ... + @staticmethod + def GetSideAttribute() -> 'vtkStringToken': ... + def GetStrategy(self) -> vtkCellGridSidesQuery.SummaryStrategy: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridComputeSides': ... + def OmitSidesForRenderableInputsOff(self) -> None: ... + def OmitSidesForRenderableInputsOn(self) -> None: ... + def PreserveRenderableInputsOff(self) -> None: ... + def PreserveRenderableInputsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridComputeSides': ... + def SetOmitSidesForRenderableInputs(self, omit:bool) -> None: ... + def SetOutputDimensionControl(self, flags:int) -> None: ... + def SetPreserveRenderableInputs(self, preserve:bool) -> None: ... + @overload + def SetSelectionType(self, selectionType:vtkCellGridSidesQuery.SelectionMode) -> None: ... + @overload + def SetSelectionType(self, selnType:int) -> None: ... + @overload + def SetStrategy(self, strategy:vtkCellGridSidesQuery.SummaryStrategy) -> None: ... + @overload + def SetStrategy(self, strategy:int) -> None: ... + +class vtkCellGridElevation(vtkmodules.vtkCommonExecutionModel.vtkCellGridAlgorithm): + attribute_name:'getset_descriptor' + axis:'getset_descriptor' + number_of_axes:'getset_descriptor' + number_of_axes_max_value:'getset_descriptor' + number_of_axes_min_value:'getset_descriptor' + origin:'getset_descriptor' + shock:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAttributeName(self) -> str: ... + def GetAxis(self) -> Tuple[float, float, float]: ... + def GetNumberOfAxes(self) -> int: ... + def GetNumberOfAxesMaxValue(self) -> int: ... + def GetNumberOfAxesMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetShock(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridElevation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridElevation': ... + def SetAttributeName(self, _arg:str) -> None: ... + @overload + def SetAxis(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAxis(self, _arg:Sequence[float]) -> None: ... + def SetNumberOfAxes(self, _arg:int) -> None: ... + @overload + def SetOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOrigin(self, _arg:Sequence[float]) -> None: ... + def SetShock(self, _arg:float) -> None: ... + +class vtkCellGridElevationQuery(vtkmodules.vtkCommonDataModel.vtkCellGridQuery): + def __init__(self, **properties:Any) -> None: ... + def Finalize(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridElevationQuery': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridElevationQuery': ... + +class vtkCellGridPointProbe(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + attribute_name:'getset_descriptor' + source_connection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAttributeName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridPointProbe': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridPointProbe': ... + def SetAttributeName(self, _arg:str) -> None: ... + def SetSourceConnection(self, source:'vtkAlgorithmOutput') -> None: ... + +class vtkCellGridToUnstructuredGrid(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridToUnstructuredGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridToUnstructuredGrid': ... + +class vtkCellGridTransform(vtkmodules.vtkCommonExecutionModel.vtkCellGridAlgorithm): + cell_attribute:'getset_descriptor' + m_time:'getset_descriptor' + transform:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridTransform': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridTransform': ... + def SetCellAttribute(self, att:'vtkCellAttribute') -> None: ... + def SetTransform(self, tfm:'vtkAbstractTransform') -> None: ... + +class vtkCellGridWarp(vtkmodules.vtkCommonExecutionModel.vtkCellGridAlgorithm): + m_time:'getset_descriptor' + scale_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScaleFactor(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridWarp': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridWarp': ... + def SetScaleFactor(self, scaleFactor:float) -> None: ... + +class vtkDGArrayOutputAccessor(object): + key:'getset_descriptor' + @overload + def __init__(self, result:'vtkDoubleArray') -> None: ... + @overload + def __init__(self, other:'vtkDGArrayOutputAccessor') -> None: ... + def GetKey(self) -> int: ... + def IsAtEnd(self) -> bool: ... + def Restart(self) -> None: ... + def size(self) -> int: ... + +class vtkDGArraysInputAccessor(object): + key:'getset_descriptor' + @overload + def __init__(self, cellIds:'vtkDataArray', rst:'vtkDataArray') -> None: ... + @overload + def __init__(self, other:'vtkDGArraysInputAccessor') -> None: ... + def GetCellId(self, iteration:int) -> int: ... + def GetKey(self) -> int: ... + def GetParameter(self, iteration:int) -> 'vtkVector3d': ... + def IsAtEnd(self) -> bool: ... + def Restart(self) -> None: ... + def size(self) -> int: ... + +class vtkDGAttributeInformation(vtkCellAttributeInformation): + basis_name:'getset_descriptor' + basis_order:'getset_descriptor' + basis_value_size:'getset_descriptor' + degree_of_freedom_size:'getset_descriptor' + number_of_basis_functions:'getset_descriptor' + shared_degrees_of_freedom:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def BasisShapeName(cellType:'vtkDGCell') -> str: ... + def GetBasisName(self) -> str: ... + def GetBasisOrder(self) -> int: ... + def GetBasisValueSize(self) -> int: ... + def GetDegreeOfFreedomSize(self) -> int: ... + def GetNumberOfBasisFunctions(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSharedDegreesOfFreedom(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGAttributeInformation': ... + def PrepareForGrid(self, cell:'vtkCellMetadata', attribute:'vtkCellAttribute') -> 'vtkCellAttributeCalculator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGAttributeInformation': ... + +class vtkDGBoundsResponder(object): + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGBoundsResponder': ... + def Query(self, query:'vtkCellGridBoundsQuery', cellType:'vtkCellMetadata', caches:'vtkCellGridResponders') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGBoundsResponder': ... + +class vtkDGCell(vtkmodules.vtkCommonDataModel.vtkCellMetadata): + class Shape(int): ... + Edge:'Shape' + Hexahedron:'Shape' + None_:'Shape' + Pyramid:'Shape' + Quadrilateral:'Shape' + Tetrahedron:'Shape' + Triangle:'Shape' + Vertex:'Shape' + Wedge:'Shape' + dimension:'getset_descriptor' + number_of_cells:'getset_descriptor' + number_of_corners:'getset_descriptor' + number_of_side_types:'getset_descriptor' + reference_points:'getset_descriptor' + shape:'getset_descriptor' + side_connectivity:'getset_descriptor' + side_offsets_and_shapes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self, other:'vtkCellMetadata') -> None: ... + def FillReferencePoints(self, arr:'vtkTypeFloat32Array') -> None: ... + def FillSideConnectivity(self, arr:'vtkTypeInt32Array') -> None: ... + def FillSideOffsetsAndShapes(self, arr:'vtkTypeInt32Array') -> None: ... + def GetCellSourceConnectivity(self, sideType:int=-1) -> 'vtkDataArray': ... + def GetCellSourceIsBlanked(self, sideType:int=-1) -> bool: ... + def GetCellSourceNodalGhostMarks(self, sideType:int=-1) -> 'vtkDataArray': ... + def GetCellSourceOffset(self, sideType:int=-1) -> int: ... + def GetCellSourceSelectionType(self, sideType:int=-1) -> int: ... + def GetCellSourceShape(self, sideType:int=-1) -> 'Shape': ... + def GetCellSourceSideType(self, sideType:int=-1) -> int: ... + def GetDimension(self) -> int: ... + def GetNumberOfCellSources(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfCorners(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSideTypes(self) -> int: ... + def GetNumberOfSidesOfDimension(self, dimension:int) -> int: ... + def GetParametricCenterOfSide(self, sideId:int) -> 'vtkVector3d': ... + def GetReferencePoints(self) -> 'vtkTypeFloat32Array': ... + def GetShape(self) -> 'Shape': ... + @staticmethod + def GetShapeCornerCount(shape:'Shape') -> int: ... + @staticmethod + def GetShapeDimension(shape:'Shape') -> int: ... + @staticmethod + def GetShapeEnum(shapeName:'vtkStringToken') -> 'Shape': ... + @staticmethod + def GetShapeName(shape:'Shape') -> 'vtkStringToken': ... + @overload + def GetSideConnectivity(self, side:int) -> Tuple[int, int]: ... + @overload + def GetSideConnectivity(self) -> 'vtkTypeInt32Array': ... + def GetSideOffsetsAndShapes(self) -> 'vtkTypeInt32Array': ... + def GetSideRangeForSideDimension(self, sideDimension:int) -> Tuple[int, int]: ... + def GetSideRangeForSideType(self, sideType:int) -> Tuple[int, int]: ... + def GetSideShape(self, side:int) -> 'Shape': ... + def GetSideTypeForShape(self, s:'Shape') -> int: ... + def GetSidesOfSide(self, side:int) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + def IsInside(self, rst:'vtkVector3d', tolerance:float=1e-6) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGCell': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGCell': ... + def ShallowCopy(self, other:'vtkCellMetadata') -> None: ... + +class vtkDGCellCenterResponder(object): + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGCellCenterResponder': ... + def Query(self, query:vtkCellGridCellCenters.Query, cellType:'vtkCellMetadata', caches:'vtkCellGridResponders') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGCellCenterResponder': ... + +class vtkDGCellSourceResponder(object): + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGCellSourceResponder': ... + def Query(self, query:vtkCellGridCellSource.Query, cellType:'vtkCellMetadata', caches:'vtkCellGridResponders') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGCellSourceResponder': ... + +class vtkDGCopyResponder(object): + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGCopyResponder': ... + def Query(self, query:'vtkCellGridCopyQuery', cellType:'vtkCellMetadata', caches:'vtkCellGridResponders') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGCopyResponder': ... + +class vtkDGEdge(vtkDGCell): + dimension:'getset_descriptor' + number_of_side_types:'getset_descriptor' + reference_points:'getset_descriptor' + side_connectivity:'getset_descriptor' + side_offsets_and_shapes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSideTypes(self) -> int: ... + def GetNumberOfSidesOfDimension(self, dimension:int) -> int: ... + def GetReferencePoints(self) -> 'vtkTypeFloat32Array': ... + @overload + def GetSideConnectivity(self, side:int) -> Tuple[int, int]: ... + @overload + def GetSideConnectivity(self) -> 'vtkTypeInt32Array': ... + def GetSideOffsetsAndShapes(self) -> 'vtkTypeInt32Array': ... + def GetSidesOfSide(self, side:int) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + def IsInside(self, rst:'vtkVector3d', tolerance:float) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGEdge': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGEdge': ... + +class vtkDGElevationResponder(object): + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGElevationResponder': ... + def Query(self, query:'vtkCellGridElevationQuery', cellType:'vtkCellMetadata', caches:'vtkCellGridResponders') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGElevationResponder': ... + +class vtkDGEvaluator(object): + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGEvaluator': ... + def Query(self, query:'vtkCellGridEvaluator', cellType:'vtkCellMetadata', caches:'vtkCellGridResponders') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGEvaluator': ... + +class vtkDeRhamCell(vtkDGCell): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDeRhamCell': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDeRhamCell': ... + +class vtkDGHex(vtkDeRhamCell): + dimension:'getset_descriptor' + number_of_side_types:'getset_descriptor' + reference_points:'getset_descriptor' + side_connectivity:'getset_descriptor' + side_offsets_and_shapes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSideTypes(self) -> int: ... + def GetNumberOfSidesOfDimension(self, dimension:int) -> int: ... + def GetReferencePoints(self) -> 'vtkTypeFloat32Array': ... + @overload + def GetSideConnectivity(self, side:int) -> Tuple[int, int]: ... + @overload + def GetSideConnectivity(self) -> 'vtkTypeInt32Array': ... + def GetSideOffsetsAndShapes(self) -> 'vtkTypeInt32Array': ... + def GetSidesOfSide(self, side:int) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + def IsInside(self, rst:'vtkVector3d', tolerance:float) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGHex': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGHex': ... + +class vtkInterpolateCalculator(vtkmodules.vtkCommonDataModel.vtkCellAttributeCalculator): + def __init__(self, **properties:Any) -> None: ... + def AnalyticDerivative(self) -> bool: ... + @overload + def Evaluate(self, cellId:int, rst:'vtkVector3d', value:MutableSequence[float]) -> None: ... + @overload + def Evaluate(self, cellIds:'vtkIdTypeArray', rst:'vtkDataArray', result:'vtkDataArray') -> None: ... + @overload + def EvaluateDerivative(self, cellId:int, rst:'vtkVector3d', jacobian:MutableSequence[float], neighborhood:float=1e-3) -> None: ... + @overload + def EvaluateDerivative(self, cellIds:'vtkIdTypeArray', rst:'vtkDataArray', result:'vtkDataArray') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInterpolateCalculator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInterpolateCalculator': ... + +class vtkDGInterpolateCalculator(vtkInterpolateCalculator): + def __init__(self, **properties:Any) -> None: ... + def AnalyticDerivative(self) -> bool: ... + @overload + def Evaluate(self, cellId:int, rst:'vtkVector3d', value:MutableSequence[float]) -> None: ... + @overload + def Evaluate(self, cellIds:'vtkIdTypeArray', rst:'vtkDataArray', result:'vtkDataArray') -> None: ... + @overload + def EvaluateDerivative(self, cellId:int, rst:'vtkVector3d', jacobian:MutableSequence[float], neighborhood:float) -> None: ... + @overload + def EvaluateDerivative(self, cellIds:'vtkIdTypeArray', rst:'vtkDataArray', result:'vtkDataArray') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGInterpolateCalculator': ... + def PrepareForGrid(self, cell:'vtkCellMetadata', field:'vtkCellAttribute') -> 'vtkCellAttributeCalculator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGInterpolateCalculator': ... + +class vtkDGOperationBase(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkDGOperationBase') -> None: ... + +class vtkDGOperationState(object): + def CloneInto(self, entry:'vtkDGOperationStateEntryBase') -> None: ... + +class vtkDGOperationStateEntryBase(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkDGOperationStateEntryBase') -> None: ... + +class vtkDGOperatorEntry(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkDGOperatorEntry') -> None: ... + def GetShaderString(self, functionName:str, parameterName:str) -> str: ... + +class vtkDGPyr(vtkDGCell): + dimension:'getset_descriptor' + number_of_side_types:'getset_descriptor' + reference_points:'getset_descriptor' + side_connectivity:'getset_descriptor' + side_offsets_and_shapes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSideTypes(self) -> int: ... + def GetNumberOfSidesOfDimension(self, dimension:int) -> int: ... + def GetReferencePoints(self) -> 'vtkTypeFloat32Array': ... + @overload + def GetSideConnectivity(self, side:int) -> Tuple[int, int]: ... + @overload + def GetSideConnectivity(self) -> 'vtkTypeInt32Array': ... + def GetSideOffsetsAndShapes(self) -> 'vtkTypeInt32Array': ... + def GetSidesOfSide(self, side:int) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + def IsInside(self, rst:'vtkVector3d', tolerance:float) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGPyr': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGPyr': ... + +class vtkDGQuad(vtkDeRhamCell): + dimension:'getset_descriptor' + number_of_side_types:'getset_descriptor' + reference_points:'getset_descriptor' + side_connectivity:'getset_descriptor' + side_offsets_and_shapes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSideTypes(self) -> int: ... + def GetNumberOfSidesOfDimension(self, dimension:int) -> int: ... + def GetReferencePoints(self) -> 'vtkTypeFloat32Array': ... + @overload + def GetSideConnectivity(self, side:int) -> Tuple[int, int]: ... + @overload + def GetSideConnectivity(self) -> 'vtkTypeInt32Array': ... + def GetSideOffsetsAndShapes(self) -> 'vtkTypeInt32Array': ... + def GetSidesOfSide(self, side:int) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + def IsInside(self, rst:'vtkVector3d', tolerance:float) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGQuad': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGQuad': ... + +class vtkDGRangeResponder(object): + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGRangeResponder': ... + def Query(self, query:'vtkCellGridRangeQuery', cellType:'vtkCellMetadata', caches:'vtkCellGridResponders') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGRangeResponder': ... + +class vtkDGSidesResponder(object): + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGSidesResponder': ... + def Query(self, query:'vtkCellGridSidesQuery', cellType:'vtkCellMetadata', caches:'vtkCellGridResponders') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGSidesResponder': ... + +class vtkDGTet(vtkDeRhamCell): + dimension:'getset_descriptor' + number_of_side_types:'getset_descriptor' + reference_points:'getset_descriptor' + side_connectivity:'getset_descriptor' + side_offsets_and_shapes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSideTypes(self) -> int: ... + def GetNumberOfSidesOfDimension(self, dimension:int) -> int: ... + def GetReferencePoints(self) -> 'vtkTypeFloat32Array': ... + @overload + def GetSideConnectivity(self, side:int) -> Tuple[int, int]: ... + @overload + def GetSideConnectivity(self) -> 'vtkTypeInt32Array': ... + def GetSideOffsetsAndShapes(self) -> 'vtkTypeInt32Array': ... + def GetSidesOfSide(self, side:int) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + def IsInside(self, rst:'vtkVector3d', tolerance:float) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGTet': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGTet': ... + +class vtkDGTranscribeCellGridCells(object): + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGTranscribeCellGridCells': ... + def Query(self, query:vtkCellGridToUnstructuredGrid.Query, cellType:'vtkCellMetadata', caches:'vtkCellGridResponders') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGTranscribeCellGridCells': ... + +class vtkDGTranscribeUnstructuredCells(object): + def ClaimMatchingCells(self, query:vtkUnstructuredGridToCellGrid.TranscribeQuery, cellType:'vtkDGCell') -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGTranscribeUnstructuredCells': ... + def Query(self, query:vtkUnstructuredGridToCellGrid.TranscribeQuery, cellType:'vtkCellMetadata', caches:'vtkCellGridResponders') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGTranscribeUnstructuredCells': ... + def TranscribeMatchingCells(self, query:vtkUnstructuredGridToCellGrid.TranscribeQuery, cellType:'vtkDGCell') -> bool: ... + +class vtkDGTransformResponder(object): + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGTransformResponder': ... + def Query(self, query:vtkCellGridTransform.Query, cellType:'vtkCellMetadata', caches:'vtkCellGridResponders') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGTransformResponder': ... + +class vtkDGTri(vtkDeRhamCell): + dimension:'getset_descriptor' + number_of_side_types:'getset_descriptor' + reference_points:'getset_descriptor' + side_connectivity:'getset_descriptor' + side_offsets_and_shapes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSideTypes(self) -> int: ... + def GetNumberOfSidesOfDimension(self, dimension:int) -> int: ... + def GetReferencePoints(self) -> 'vtkTypeFloat32Array': ... + @overload + def GetSideConnectivity(self, side:int) -> Tuple[int, int]: ... + @overload + def GetSideConnectivity(self) -> 'vtkTypeInt32Array': ... + def GetSideOffsetsAndShapes(self) -> 'vtkTypeInt32Array': ... + def GetSidesOfSide(self, side:int) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + def IsInside(self, rst:'vtkVector3d', tolerance:float) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGTri': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGTri': ... + +class vtkDGVert(vtkDGCell): + dimension:'getset_descriptor' + number_of_side_types:'getset_descriptor' + reference_points:'getset_descriptor' + side_connectivity:'getset_descriptor' + side_offsets_and_shapes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSideTypes(self) -> int: ... + def GetNumberOfSidesOfDimension(self, dimension:int) -> int: ... + def GetReferencePoints(self) -> 'vtkTypeFloat32Array': ... + @overload + def GetSideConnectivity(self, side:int) -> Tuple[int, int]: ... + @overload + def GetSideConnectivity(self) -> 'vtkTypeInt32Array': ... + def GetSideOffsetsAndShapes(self) -> 'vtkTypeInt32Array': ... + def GetSidesOfSide(self, side:int) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + def IsInside(self, rst:'vtkVector3d', tolerance:float) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGVert': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGVert': ... + +class vtkDGWarp(object): + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGWarp': ... + def Query(self, query:vtkCellGridWarp.Query, cellType:'vtkCellMetadata', caches:'vtkCellGridResponders') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGWarp': ... + +class vtkDGWdg(vtkDeRhamCell): + dimension:'getset_descriptor' + number_of_side_types:'getset_descriptor' + reference_points:'getset_descriptor' + side_connectivity:'getset_descriptor' + side_offsets_and_shapes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSideTypes(self) -> int: ... + def GetNumberOfSidesOfDimension(self, dimension:int) -> int: ... + def GetReferencePoints(self) -> 'vtkTypeFloat32Array': ... + @overload + def GetSideConnectivity(self, side:int) -> Tuple[int, int]: ... + @overload + def GetSideConnectivity(self) -> 'vtkTypeInt32Array': ... + def GetSideOffsetsAndShapes(self) -> 'vtkTypeInt32Array': ... + def GetSidesOfSide(self, side:int) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + def IsInside(self, rst:'vtkVector3d', tolerance:float) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGWdg': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGWdg': ... + +class vtkFiltersCellGrid(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFiltersCellGrid': ... + @staticmethod + def RegisterCellsAndResponders() -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFiltersCellGrid': ... + +class vtkUnstructuredGridFieldAnnotations(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def AddAnnotations(self, fieldData:'vtkFieldData', assembly:'vtkDataAssembly') -> None: ... + def FetchAnnotations(self, fieldData:'vtkFieldData', assembly:'vtkDataAssembly') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridFieldAnnotations': ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridFieldAnnotations': ... + +class vtkUnstructuredGridToCellGrid(vtkmodules.vtkCommonExecutionModel.vtkPartitionedDataSetCollectionAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def AddPreferredOutputType(self, inputCellType:int, preferredOutputType:'vtkStringToken', priority:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridToCellGrid': ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridToCellGrid': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersCore.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersCore.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..baefe37 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersCore.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersCore.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersCore.pyi new file mode 100644 index 0000000..bdc0a11 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersCore.pyi @@ -0,0 +1,5745 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonDataModel +import vtkmodules.vtkCommonExecutionModel + +VTK_ATTRIBUTE_MODE_DEFAULT:int +VTK_ATTRIBUTE_MODE_USE_CELL_DATA:int +VTK_ATTRIBUTE_MODE_USE_POINT_DATA:int +VTK_BEST_FITTING_PLANE:int +VTK_CELL_DATA:int +VTK_CELL_DATA_FIELD:int +VTK_COLOR_BY_SCALAR:int +VTK_COLOR_BY_SCALE:int +VTK_COLOR_BY_VECTOR:int +VTK_COMPONENT_MODE_USE_ALL:int +VTK_COMPONENT_MODE_USE_ANY:int +VTK_COMPONENT_MODE_USE_SELECTED:int +VTK_DATA_OBJECT_FIELD:int +VTK_DATA_SCALING_OFF:int +VTK_DELAUNAY_XY_PLANE:int +VTK_EXTRACT_ALL_REGIONS:int +VTK_EXTRACT_CELL_SEEDED_REGIONS:int +VTK_EXTRACT_CLOSEST_POINT_REGION:int +VTK_EXTRACT_LARGEST_REGION:int +VTK_EXTRACT_LARGE_REGIONS:int +VTK_EXTRACT_POINT_SEEDED_REGIONS:int +VTK_EXTRACT_SPECIFIED_REGIONS:int +VTK_FOLLOW_CAMERA_DIRECTION:int +VTK_INDEXING_BY_SCALAR:int +VTK_INDEXING_BY_VECTOR:int +VTK_INDEXING_OFF:int +VTK_POINT_DATA:int +VTK_POINT_DATA_FIELD:int +VTK_SCALE_BY_SCALAR:int +VTK_SCALE_BY_VECTOR:int +VTK_SCALE_BY_VECTORCOMPONENTS:int +VTK_SET_TRANSFORM_PLANE:int +VTK_SORT_BY_CELL:int +VTK_SORT_BY_VALUE:int +VTK_SPHERE_TREE_LEVELS:int +VTK_SPHERE_TREE_LINE:int +VTK_SPHERE_TREE_PLANE:int +VTK_SPHERE_TREE_POINT:int +VTK_TCOORDS_FROM_LENGTH:int +VTK_TCOORDS_FROM_NORMALIZED_LENGTH:int +VTK_TCOORDS_FROM_SCALARS:int +VTK_TCOORDS_OFF:int +VTK_USE_NORMAL:int +VTK_USE_VECTOR:int +VTK_VARY_RADIUS_BY_ABSOLUTE_SCALAR:int +VTK_VARY_RADIUS_BY_SCALAR:int +VTK_VARY_RADIUS_BY_VECTOR:int +VTK_VARY_RADIUS_BY_VECTOR_NORM:int +VTK_VARY_RADIUS_OFF:int +VTK_VECTOR_ROTATION_OFF:int + +class vtk3DLinearGridCrinkleExtractor(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + copy_cell_data:'getset_descriptor' + copy_point_data:'getset_descriptor' + implicit_function:'getset_descriptor' + m_time:'getset_descriptor' + number_of_threads_used:'getset_descriptor' + output_points_precision:'getset_descriptor' + remove_unused_points:'getset_descriptor' + sequential_processing:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def CanFullyProcessDataObject(object:'vtkDataObject') -> bool: ... + def CopyCellDataOff(self) -> None: ... + def CopyCellDataOn(self) -> None: ... + def CopyPointDataOff(self) -> None: ... + def CopyPointDataOn(self) -> None: ... + def GetCopyCellData(self) -> bool: ... + def GetCopyPointData(self) -> bool: ... + def GetImplicitFunction(self) -> 'vtkImplicitFunction': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfThreadsUsed(self) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetRemoveUnusedPoints(self) -> bool: ... + def GetSequentialProcessing(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtk3DLinearGridCrinkleExtractor': ... + def RemoveUnusedPointsOff(self) -> None: ... + def RemoveUnusedPointsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtk3DLinearGridCrinkleExtractor': ... + def SequentialProcessingOff(self) -> None: ... + def SequentialProcessingOn(self) -> None: ... + def SetCopyCellData(self, _arg:bool) -> None: ... + def SetCopyPointData(self, _arg:bool) -> None: ... + def SetImplicitFunction(self, __a:'vtkImplicitFunction') -> None: ... + def SetOutputPointsPrecision(self, precision:int) -> None: ... + def SetRemoveUnusedPoints(self, _arg:bool) -> None: ... + def SetSequentialProcessing(self, _arg:bool) -> None: ... + +class vtk3DLinearGridPlaneCutter(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + compute_normals:'getset_descriptor' + interpolate_attributes:'getset_descriptor' + large_ids:'getset_descriptor' + m_time:'getset_descriptor' + merge_points:'getset_descriptor' + number_of_threads_used:'getset_descriptor' + output_points_precision:'getset_descriptor' + plane:'getset_descriptor' + sequential_processing:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def CanFullyProcessDataObject(object:'vtkDataObject') -> bool: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def GetComputeNormals(self) -> bool: ... + def GetInterpolateAttributes(self) -> bool: ... + def GetLargeIds(self) -> bool: ... + def GetMTime(self) -> int: ... + def GetMergePoints(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfThreadsUsed(self) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPlane(self) -> 'vtkPlane': ... + def GetSequentialProcessing(self) -> bool: ... + def InterpolateAttributesOff(self) -> None: ... + def InterpolateAttributesOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergePointsOff(self) -> None: ... + def MergePointsOn(self) -> None: ... + def NewInstance(self) -> 'vtk3DLinearGridPlaneCutter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtk3DLinearGridPlaneCutter': ... + def SequentialProcessingOff(self) -> None: ... + def SequentialProcessingOn(self) -> None: ... + def SetComputeNormals(self, _arg:bool) -> None: ... + def SetInterpolateAttributes(self, _arg:bool) -> None: ... + def SetMergePoints(self, _arg:bool) -> None: ... + def SetOutputPointsPrecision(self, precision:int) -> None: ... + def SetPlane(self, __a:'vtkPlane') -> None: ... + def SetSequentialProcessing(self, _arg:bool) -> None: ... + +class vtkAppendArcLength(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAppendArcLength': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAppendArcLength': ... + +class vtkAppendCompositeDataLeaves(vtkmodules.vtkCommonExecutionModel.vtkCompositeDataSetAlgorithm): + append_field_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AppendFieldDataOff(self) -> None: ... + def AppendFieldDataOn(self) -> None: ... + def GetAppendFieldData(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAppendCompositeDataLeaves': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAppendCompositeDataLeaves': ... + def SetAppendFieldData(self, _arg:int) -> None: ... + +class vtkAppendDataSets(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + merge_points:'getset_descriptor' + output_data_set_type:'getset_descriptor' + output_points_precision:'getset_descriptor' + tolerance:'getset_descriptor' + tolerance_is_absolute:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMergePoints(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputDataSetType(self) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetOutputPointsPrecisionMaxValue(self) -> int: ... + def GetOutputPointsPrecisionMinValue(self) -> int: ... + def GetTolerance(self) -> float: ... + def GetToleranceIsAbsolute(self) -> bool: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergePointsOff(self) -> None: ... + def MergePointsOn(self) -> None: ... + def NewInstance(self) -> 'vtkAppendDataSets': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAppendDataSets': ... + def SetMergePoints(self, _arg:bool) -> None: ... + def SetOutputDataSetType(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def SetToleranceIsAbsolute(self, _arg:bool) -> None: ... + def ToleranceIsAbsoluteOff(self) -> None: ... + def ToleranceIsAbsoluteOn(self) -> None: ... + +class vtkAppendFilter(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + input:'getset_descriptor' + input_list:'getset_descriptor' + merge_points:'getset_descriptor' + output_points_precision:'getset_descriptor' + tolerance:'getset_descriptor' + tolerance_is_absolute:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetInput(self, idx:int) -> 'vtkDataSet': ... + @overload + def GetInput(self) -> 'vtkDataSet': ... + def GetInputList(self) -> 'vtkDataSetCollection': ... + def GetMergePoints(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetOutputPointsPrecisionMaxValue(self) -> int: ... + def GetOutputPointsPrecisionMinValue(self) -> int: ... + def GetTolerance(self) -> float: ... + def GetToleranceIsAbsolute(self) -> bool: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergePointsOff(self) -> None: ... + def MergePointsOn(self) -> None: ... + def NewInstance(self) -> 'vtkAppendFilter': ... + def RemoveInputData(self, in_:'vtkDataSet') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAppendFilter': ... + def SetMergePoints(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def SetToleranceIsAbsolute(self, _arg:bool) -> None: ... + def ToleranceIsAbsoluteOff(self) -> None: ... + def ToleranceIsAbsoluteOn(self) -> None: ... + +class vtkAppendPartitionedDataSetCollection(vtkmodules.vtkCommonExecutionModel.vtkPartitionedDataSetCollectionAlgorithm): + class AppendModes(int): ... + APPEND_PARTITIONS:'AppendModes' + MERGE_PARTITIONS:'AppendModes' + append_field_data:'getset_descriptor' + append_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AppendFieldDataOff(self) -> None: ... + def AppendFieldDataOn(self) -> None: ... + def GetAppendFieldData(self) -> bool: ... + def GetAppendMode(self) -> int: ... + def GetAppendModeMaxValue(self) -> int: ... + def GetAppendModeMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAppendPartitionedDataSetCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAppendPartitionedDataSetCollection': ... + def SetAppendFieldData(self, _arg:bool) -> None: ... + def SetAppendMode(self, _arg:int) -> None: ... + def SetAppendModeToAppendPartitions(self) -> None: ... + def SetAppendModeToMergePartitions(self) -> None: ... + +class vtkAppendPolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + input:'getset_descriptor' + number_of_inputs:'getset_descriptor' + output_points_precision:'getset_descriptor' + parallel_streaming:'getset_descriptor' + user_managed_inputs:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddInputData(self, __a:'vtkPolyData') -> None: ... + @overload + def GetInput(self, idx:int) -> 'vtkPolyData': ... + @overload + def GetInput(self) -> 'vtkPolyData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetParallelStreaming(self) -> int: ... + def GetUserManagedInputs(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAppendPolyData': ... + def ParallelStreamingOff(self) -> None: ... + def ParallelStreamingOn(self) -> None: ... + def RemoveInputData(self, __a:'vtkPolyData') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAppendPolyData': ... + def SetInputConnectionByNumber(self, num:int, input:'vtkAlgorithmOutput') -> None: ... + def SetInputDataByNumber(self, num:int, ds:'vtkPolyData') -> None: ... + def SetNumberOfInputs(self, num:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetParallelStreaming(self, _arg:int) -> None: ... + def SetUserManagedInputs(self, _arg:int) -> None: ... + def UserManagedInputsOff(self) -> None: ... + def UserManagedInputsOn(self) -> None: ... + +class vtkAppendSelection(vtkmodules.vtkCommonExecutionModel.vtkSelectionAlgorithm): + append_by_union:'getset_descriptor' + color_array_name:'getset_descriptor' + expression:'getset_descriptor' + input:'getset_descriptor' + inverse:'getset_descriptor' + number_of_inputs:'getset_descriptor' + user_managed_inputs:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddInputData(self, __a:'vtkSelection') -> None: ... + def AppendByUnionOff(self) -> None: ... + def AppendByUnionOn(self) -> None: ... + def GetAppendByUnion(self) -> int: ... + @staticmethod + def GetColorArrayName() -> str: ... + def GetExpression(self) -> str: ... + @overload + def GetInput(self, idx:int) -> 'vtkSelection': ... + @overload + def GetInput(self) -> 'vtkSelection': ... + def GetInputColor(self, index:int) -> Pointer: ... + def GetInputName(self, index:int) -> str: ... + def GetInverse(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUserManagedInputs(self) -> int: ... + def InverseOff(self) -> None: ... + def InverseOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAppendSelection': ... + def RemoveAllInputColors(self) -> None: ... + def RemoveAllInputNames(self) -> None: ... + def RemoveInputData(self, __a:'vtkSelection') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAppendSelection': ... + def SetAppendByUnion(self, _arg:int) -> None: ... + def SetExpression(self, arg:str) -> None: ... + def SetInputColor(self, index:int, r:float, g:float, b:float) -> None: ... + def SetInputConnectionByNumber(self, num:int, input:'vtkAlgorithmOutput') -> None: ... + def SetInputName(self, index:int, name:str) -> None: ... + def SetInverse(self, _arg:bool) -> None: ... + def SetNumberOfInputs(self, num:int) -> None: ... + def SetUserManagedInputs(self, _arg:int) -> None: ... + def UserManagedInputsOff(self) -> None: ... + def UserManagedInputsOn(self) -> None: ... + +class vtkArrayCalculator(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + class FunctionParserTypes(int): ... + DEFAULT_ATTRIBUTE_TYPE:int + ExprTkFunctionParser:'FunctionParserTypes' + FunctionParser:'FunctionParserTypes' + NumberOfFunctionParserTypes:'FunctionParserTypes' + attribute_type:'getset_descriptor' + coordinate_results:'getset_descriptor' + data_set_output:'getset_descriptor' + function:'getset_descriptor' + function_parser_type:'getset_descriptor' + ignore_missing_arrays:'getset_descriptor' + number_of_scalar_arrays:'getset_descriptor' + number_of_vector_arrays:'getset_descriptor' + replace_invalid_values:'getset_descriptor' + replacement_value:'getset_descriptor' + result_array_name:'getset_descriptor' + result_array_type:'getset_descriptor' + result_normals:'getset_descriptor' + result_t_coords:'getset_descriptor' + scalar_array_names:'getset_descriptor' + scalar_variable_names:'getset_descriptor' + selected_scalar_components:'getset_descriptor' + vector_array_names:'getset_descriptor' + vector_variable_names:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddCoordinateScalarVariable(self, variableName:str, component:int=0) -> None: ... + def AddCoordinateVectorVariable(self, variableName:str, component0:int=0, component1:int=1, component2:int=2) -> None: ... + def AddScalarArrayName(self, arrayName:str, component:int=0) -> None: ... + def AddScalarVariable(self, variableName:str, arrayName:str, component:int=0) -> None: ... + def AddVectorArrayName(self, arrayName:str, component0:int=0, component1:int=1, component2:int=2) -> None: ... + def AddVectorVariable(self, variableName:str, arrayName:str, component0:int=0, component1:int=1, component2:int=2) -> None: ... + def CoordinateResultsOff(self) -> None: ... + def CoordinateResultsOn(self) -> None: ... + def GetAttributeType(self) -> int: ... + def GetAttributeTypeAsString(self) -> str: ... + def GetCoordinateResults(self) -> int: ... + def GetDataSetOutput(self) -> 'vtkDataSet': ... + def GetFunction(self) -> str: ... + def GetFunctionParserType(self) -> 'FunctionParserTypes': ... + def GetIgnoreMissingArrays(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfScalarArrays(self) -> int: ... + def GetNumberOfVectorArrays(self) -> int: ... + def GetReplaceInvalidValues(self) -> int: ... + def GetReplacementValue(self) -> float: ... + def GetResultArrayName(self) -> str: ... + def GetResultArrayType(self) -> int: ... + def GetResultNormals(self) -> bool: ... + def GetResultTCoords(self) -> bool: ... + def GetScalarArrayName(self, i:int) -> str: ... + def GetScalarArrayNames(self) -> Tuple[str, str]: ... + def GetScalarVariableName(self, i:int) -> str: ... + def GetScalarVariableNames(self) -> Tuple[str, str]: ... + def GetSelectedScalarComponent(self, i:int) -> int: ... + def GetSelectedScalarComponents(self) -> Tuple[int, int]: ... + def GetSelectedVectorComponents(self, i:int) -> 'vtkTuple_IiLi3EE': ... + def GetVectorArrayName(self, i:int) -> str: ... + def GetVectorArrayNames(self) -> Tuple[str, str]: ... + def GetVectorVariableName(self, i:int) -> str: ... + def GetVectorVariableNames(self) -> Tuple[str, str]: ... + def IgnoreMissingArraysOff(self) -> None: ... + def IgnoreMissingArraysOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayCalculator': ... + def RemoveAllVariables(self) -> None: ... + def RemoveCoordinateScalarVariables(self) -> None: ... + def RemoveCoordinateVectorVariables(self) -> None: ... + def RemoveScalarVariables(self) -> None: ... + def RemoveVectorVariables(self) -> None: ... + def ReplaceInvalidValuesOff(self) -> None: ... + def ReplaceInvalidValuesOn(self) -> None: ... + def ResultNormalsOff(self) -> None: ... + def ResultNormalsOn(self) -> None: ... + def ResultTCoordsOff(self) -> None: ... + def ResultTCoordsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayCalculator': ... + def SetAttributeType(self, _arg:int) -> None: ... + def SetAttributeTypeToCellData(self) -> None: ... + def SetAttributeTypeToDefault(self) -> None: ... + def SetAttributeTypeToEdgeData(self) -> None: ... + def SetAttributeTypeToPointData(self) -> None: ... + def SetAttributeTypeToRowData(self) -> None: ... + def SetAttributeTypeToVertexData(self) -> None: ... + def SetCoordinateResults(self, _arg:int) -> None: ... + def SetFunction(self, _arg:str) -> None: ... + def SetFunctionParserType(self, _arg:'FunctionParserTypes') -> None: ... + def SetFunctionParserTypeToExprTkFunctionParser(self) -> None: ... + def SetFunctionParserTypeToFunctionParser(self) -> None: ... + def SetIgnoreMissingArrays(self, _arg:bool) -> None: ... + def SetReplaceInvalidValues(self, _arg:int) -> None: ... + def SetReplacementValue(self, _arg:float) -> None: ... + def SetResultArrayName(self, _arg:str) -> None: ... + def SetResultArrayType(self, _arg:int) -> None: ... + def SetResultNormals(self, _arg:bool) -> None: ... + def SetResultTCoords(self, _arg:bool) -> None: ... + +class vtkArrayRename(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + number_of_cell_arrays:'getset_descriptor' + number_of_edge_arrays:'getset_descriptor' + number_of_field_arrays:'getset_descriptor' + number_of_point_arrays:'getset_descriptor' + number_of_row_arrays:'getset_descriptor' + number_of_vertex_arrays:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClearAll(self) -> None: ... + def ClearCellMapping(self) -> None: ... + def ClearEdgeMapping(self) -> None: ... + def ClearFieldMapping(self) -> None: ... + def ClearMapping(self, attributeType:int) -> None: ... + def ClearPointMapping(self) -> None: ... + def ClearRowMapping(self) -> None: ... + def ClearVertexMapping(self) -> None: ... + def GetArrayNewName(self, attributeType:int, idx:int) -> str: ... + def GetArrayOriginalName(self, attributeType:int, idx:int) -> str: ... + def GetCellArrayNewName(self, idx:int) -> str: ... + def GetCellArrayOriginalName(self, idx:int) -> str: ... + def GetEdgeArrayNewName(self, idx:int) -> str: ... + def GetEdgeArrayOriginalName(self, idx:int) -> str: ... + def GetFieldArrayNewName(self, idx:int) -> str: ... + def GetFieldArrayOriginalName(self, idx:int) -> str: ... + def GetNumberOfArrays(self, attributeType:int) -> int: ... + def GetNumberOfCellArrays(self) -> int: ... + def GetNumberOfEdgeArrays(self) -> int: ... + def GetNumberOfFieldArrays(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPointArrays(self) -> int: ... + def GetNumberOfRowArrays(self) -> int: ... + def GetNumberOfVertexArrays(self) -> int: ... + def GetPointArrayNewName(self, idx:int) -> str: ... + def GetPointArrayOriginalName(self, idx:int) -> str: ... + def GetRowArrayNewName(self, idx:int) -> str: ... + def GetRowArrayOriginalName(self, idx:int) -> str: ... + def GetVertexArrayNewName(self, idx:int) -> str: ... + def GetVertexArrayOriginalName(self, idx:int) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayRename': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayRename': ... + @overload + def SetArrayName(self, attributeType:int, idx:int, newName:str) -> None: ... + @overload + def SetArrayName(self, attributeType:int, inputName:str, newName:str) -> None: ... + @overload + def SetCellArrayName(self, idx:int, newName:str) -> None: ... + @overload + def SetCellArrayName(self, inputName:str, newName:str) -> None: ... + @overload + def SetEdgeArrayName(self, idx:int, newName:str) -> None: ... + @overload + def SetEdgeArrayName(self, inputName:str, newName:str) -> None: ... + @overload + def SetFieldArrayName(self, idx:int, newName:str) -> None: ... + @overload + def SetFieldArrayName(self, inputName:str, newName:str) -> None: ... + @overload + def SetPointArrayName(self, idx:int, newName:str) -> None: ... + @overload + def SetPointArrayName(self, inputName:str, newName:str) -> None: ... + @overload + def SetRowArrayName(self, idx:int, newName:str) -> None: ... + @overload + def SetRowArrayName(self, inputName:str, newName:str) -> None: ... + @overload + def SetVertexArrayName(self, idx:int, newName:str) -> None: ... + @overload + def SetVertexArrayName(self, inputName:str, newName:str) -> None: ... + +class vtkAssignAttribute(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + class AttributeLocation(int): ... + CELL_DATA:'AttributeLocation' + EDGE_DATA:'AttributeLocation' + NUM_ATTRIBUTE_LOCS:'AttributeLocation' + POINT_DATA:'AttributeLocation' + VERTEX_DATA:'AttributeLocation' + def __init__(self, **properties:Any) -> None: ... + @overload + def Assign(self, inputAttributeType:int, attributeType:int, attributeLoc:int) -> None: ... + @overload + def Assign(self, fieldName:str, attributeType:int, attributeLoc:int) -> None: ... + @overload + def Assign(self, name:str, attributeType:str, attributeLoc:str) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAssignAttribute': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAssignAttribute': ... + +class vtkAttributeDataToFieldDataFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + pass_attribute_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassAttributeData(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAttributeDataToFieldDataFilter': ... + def PassAttributeDataOff(self) -> None: ... + def PassAttributeDataOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAttributeDataToFieldDataFilter': ... + def SetPassAttributeData(self, _arg:int) -> None: ... + +class vtkAttributeDataToTableFilter(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + add_meta_data:'getset_descriptor' + field_association:'getset_descriptor' + generate_cell_connectivity:'getset_descriptor' + generate_original_ids:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddMetaDataOff(self) -> None: ... + def AddMetaDataOn(self) -> None: ... + def GenerateCellConnectivityOff(self) -> None: ... + def GenerateCellConnectivityOn(self) -> None: ... + def GenerateOriginalIdsOff(self) -> None: ... + def GenerateOriginalIdsOn(self) -> None: ... + def GetAddMetaData(self) -> bool: ... + def GetFieldAssociation(self) -> int: ... + def GetGenerateCellConnectivity(self) -> bool: ... + def GetGenerateOriginalIds(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAttributeDataToTableFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAttributeDataToTableFilter': ... + def SetAddMetaData(self, _arg:bool) -> None: ... + def SetFieldAssociation(self, _arg:int) -> None: ... + def SetGenerateCellConnectivity(self, _arg:bool) -> None: ... + def SetGenerateOriginalIds(self, _arg:bool) -> None: ... + +class vtkBinCellDataFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + class CellOverlapCriterion(int): ... + CELL_CENTROID:'CellOverlapCriterion' + CELL_POINTS:'CellOverlapCriterion' + array_component:'getset_descriptor' + cell_locator:'getset_descriptor' + cell_overlap_method:'getset_descriptor' + compute_tolerance:'getset_descriptor' + number_of_bins:'getset_descriptor' + number_of_nonzero_bins_array_name:'getset_descriptor' + source:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + spatial_match:'getset_descriptor' + store_number_of_nonzero_bins:'getset_descriptor' + tolerance:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeToleranceOff(self) -> None: ... + def ComputeToleranceOn(self) -> None: ... + @overload + def GenerateValues(self, numBins:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numBins:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetArrayComponent(self) -> int: ... + def GetCellLocator(self) -> 'vtkAbstractCellLocator': ... + def GetCellOverlapMethod(self) -> int: ... + def GetCellOverlapMethodMaxValue(self) -> int: ... + def GetCellOverlapMethodMinValue(self) -> int: ... + def GetComputeTolerance(self) -> bool: ... + def GetNumberOfBins(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfNonzeroBinsArrayName(self) -> str: ... + def GetSource(self) -> 'vtkDataObject': ... + def GetSpatialMatch(self) -> int: ... + def GetStoreNumberOfNonzeroBins(self) -> bool: ... + def GetTolerance(self) -> float: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, binValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBinCellDataFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBinCellDataFilter': ... + def SetArrayComponent(self, _arg:int) -> None: ... + def SetCellLocator(self, cellLocator:'vtkAbstractCellLocator') -> None: ... + def SetCellOverlapMethod(self, _arg:int) -> None: ... + def SetComputeTolerance(self, _arg:bool) -> None: ... + def SetNumberOfBins(self, numBins:int) -> None: ... + def SetNumberOfNonzeroBinsArrayName(self, _arg:str) -> None: ... + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, source:'vtkDataObject') -> None: ... + def SetSpatialMatch(self, _arg:int) -> None: ... + def SetStoreNumberOfNonzeroBins(self, _arg:bool) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + def SpatialMatchOff(self) -> None: ... + def SpatialMatchOn(self) -> None: ... + def StoreNumberOfNonzeroBinsOff(self) -> None: ... + def StoreNumberOfNonzeroBinsOn(self) -> None: ... + +class vtkBinnedDecimation(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + BIN_AVERAGES:int + BIN_CENTERS:int + BIN_POINTS:int + INPUT_POINTS:int + auto_adjust_number_of_divisions:'getset_descriptor' + division_origin:'getset_descriptor' + division_spacing:'getset_descriptor' + large_ids:'getset_descriptor' + number_of_divisions:'getset_descriptor' + number_of_x_divisions:'getset_descriptor' + number_of_y_divisions:'getset_descriptor' + number_of_z_divisions:'getset_descriptor' + point_generation_mode:'getset_descriptor' + produce_cell_data:'getset_descriptor' + produce_point_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutoAdjustNumberOfDivisionsOff(self) -> None: ... + def AutoAdjustNumberOfDivisionsOn(self) -> None: ... + def GetAutoAdjustNumberOfDivisions(self) -> bool: ... + def GetDivisionOrigin(self) -> Tuple[float, float, float]: ... + def GetDivisionSpacing(self) -> Tuple[float, float, float]: ... + def GetLargeIds(self) -> bool: ... + @overload + def GetNumberOfDivisions(self) -> Tuple[int, int, int]: ... + @overload + def GetNumberOfDivisions(self, div:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfXDivisions(self) -> int: ... + def GetNumberOfYDivisions(self) -> int: ... + def GetNumberOfZDivisions(self) -> int: ... + def GetPointGenerationMode(self) -> int: ... + def GetPointGenerationModeMaxValue(self) -> int: ... + def GetPointGenerationModeMinValue(self) -> int: ... + def GetProduceCellData(self) -> bool: ... + def GetProducePointData(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBinnedDecimation': ... + def ProduceCellDataOff(self) -> None: ... + def ProduceCellDataOn(self) -> None: ... + def ProducePointDataOff(self) -> None: ... + def ProducePointDataOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBinnedDecimation': ... + def SetAutoAdjustNumberOfDivisions(self, _arg:bool) -> None: ... + @overload + def SetDivisionOrigin(self, x:float, y:float, z:float) -> None: ... + @overload + def SetDivisionOrigin(self, o:MutableSequence[float]) -> None: ... + @overload + def SetDivisionSpacing(self, x:float, y:float, z:float) -> None: ... + @overload + def SetDivisionSpacing(self, s:MutableSequence[float]) -> None: ... + @overload + def SetNumberOfDivisions(self, div:MutableSequence[int]) -> None: ... + @overload + def SetNumberOfDivisions(self, div0:int, div1:int, div2:int) -> None: ... + def SetNumberOfXDivisions(self, num:int) -> None: ... + def SetNumberOfYDivisions(self, num:int) -> None: ... + def SetNumberOfZDivisions(self, num:int) -> None: ... + def SetPointGenerationMode(self, _arg:int) -> None: ... + def SetPointGenerationModeToBinAverages(self) -> None: ... + def SetPointGenerationModeToBinCenters(self) -> None: ... + def SetPointGenerationModeToBinPoints(self) -> None: ... + def SetPointGenerationModeToUseInputPoints(self) -> None: ... + def SetProduceCellData(self, _arg:bool) -> None: ... + def SetProducePointData(self, _arg:bool) -> None: ... + +class vtkCellCenters(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + convert_ghost_cells_to_ghost_points:'getset_descriptor' + copy_arrays:'getset_descriptor' + vertex_cells:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ComputeCellCenters(dataset:'vtkDataSet', centers:'vtkDoubleArray') -> None: ... + def ConvertGhostCellsToGhostPointsOff(self) -> None: ... + def ConvertGhostCellsToGhostPointsOn(self) -> None: ... + def CopyArraysOff(self) -> None: ... + def CopyArraysOn(self) -> None: ... + def GetConvertGhostCellsToGhostPoints(self) -> bool: ... + def GetCopyArrays(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVertexCells(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellCenters': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellCenters': ... + def SetConvertGhostCellsToGhostPoints(self, _arg:bool) -> None: ... + def SetCopyArrays(self, _arg:bool) -> None: ... + def SetVertexCells(self, _arg:bool) -> None: ... + def VertexCellsOff(self) -> None: ... + def VertexCellsOn(self) -> None: ... + +class vtkCellDataToPointData(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + class ContributingCellEnum(int): ... + All:'ContributingCellEnum' + DataSetMax:'ContributingCellEnum' + Patch:'ContributingCellEnum' + contributing_cell_option:'getset_descriptor' + pass_cell_data:'getset_descriptor' + piece_invariant:'getset_descriptor' + process_all_arrays:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddCellDataArray(self, name:str) -> None: ... + def ClearCellDataArrays(self) -> None: ... + def GetContributingCellOption(self) -> int: ... + def GetContributingCellOptionMaxValue(self) -> int: ... + def GetContributingCellOptionMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassCellData(self) -> bool: ... + def GetPieceInvariant(self) -> bool: ... + def GetProcessAllArrays(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellDataToPointData': ... + def PassCellDataOff(self) -> None: ... + def PassCellDataOn(self) -> None: ... + def PieceInvariantOff(self) -> None: ... + def PieceInvariantOn(self) -> None: ... + def ProcessAllArraysOff(self) -> None: ... + def ProcessAllArraysOn(self) -> None: ... + def RemoveCellDataArray(self, name:str) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellDataToPointData': ... + def SetContributingCellOption(self, _arg:int) -> None: ... + def SetPassCellData(self, _arg:bool) -> None: ... + def SetPieceInvariant(self, _arg:bool) -> None: ... + def SetProcessAllArrays(self, _arg:bool) -> None: ... + +class vtkCenterOfMass(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + center:'getset_descriptor' + use_scalars_as_weights:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ComputeCenterOfMass(input:'vtkPoints', scalars:'vtkDataArray', center:MutableSequence[float]) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseScalarsAsWeights(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCenterOfMass': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCenterOfMass': ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetUseScalarsAsWeights(self, _arg:bool) -> None: ... + +class vtkCleanPolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + absolute_tolerance:'getset_descriptor' + convert_lines_to_points:'getset_descriptor' + convert_polys_to_lines:'getset_descriptor' + convert_strips_to_polys:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + output_points_precision:'getset_descriptor' + piece_invariant:'getset_descriptor' + point_merging:'getset_descriptor' + tolerance:'getset_descriptor' + tolerance_is_absolute:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConvertLinesToPointsOff(self) -> None: ... + def ConvertLinesToPointsOn(self) -> None: ... + def ConvertPolysToLinesOff(self) -> None: ... + def ConvertPolysToLinesOn(self) -> None: ... + def ConvertStripsToPolysOff(self) -> None: ... + def ConvertStripsToPolysOn(self) -> None: ... + def CreateDefaultLocator(self, input:'vtkPolyData'=...) -> None: ... + def GetAbsoluteTolerance(self) -> float: ... + def GetAbsoluteToleranceMaxValue(self) -> float: ... + def GetAbsoluteToleranceMinValue(self) -> float: ... + def GetConvertLinesToPoints(self) -> int: ... + def GetConvertPolysToLines(self) -> int: ... + def GetConvertStripsToPolys(self) -> int: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPieceInvariant(self) -> int: ... + def GetPointMerging(self) -> int: ... + def GetTolerance(self) -> float: ... + def GetToleranceIsAbsolute(self) -> int: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCleanPolyData': ... + def OperateOnBounds(self, in_:MutableSequence[float], out:MutableSequence[float]) -> None: ... + def OperateOnPoint(self, in_:MutableSequence[float], out:MutableSequence[float]) -> None: ... + def PieceInvariantOff(self) -> None: ... + def PieceInvariantOn(self) -> None: ... + def PointMergingOff(self) -> None: ... + def PointMergingOn(self) -> None: ... + def ReleaseLocator(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCleanPolyData': ... + def SetAbsoluteTolerance(self, _arg:float) -> None: ... + def SetConvertLinesToPoints(self, _arg:int) -> None: ... + def SetConvertPolysToLines(self, _arg:int) -> None: ... + def SetConvertStripsToPolys(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetPieceInvariant(self, _arg:int) -> None: ... + def SetPointMerging(self, _arg:int) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def SetToleranceIsAbsolute(self, _arg:int) -> None: ... + def ToleranceIsAbsoluteOff(self) -> None: ... + def ToleranceIsAbsoluteOn(self) -> None: ... + +class vtkClipPolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + clip_function:'getset_descriptor' + clipped_output:'getset_descriptor' + clipped_output_port:'getset_descriptor' + generate_clip_scalars:'getset_descriptor' + generate_clipped_output:'getset_descriptor' + inside_out:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + output_points_precision:'getset_descriptor' + value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def GenerateClipScalarsOff(self) -> None: ... + def GenerateClipScalarsOn(self) -> None: ... + def GenerateClippedOutputOff(self) -> None: ... + def GenerateClippedOutputOn(self) -> None: ... + def GetClipFunction(self) -> 'vtkImplicitFunction': ... + def GetClippedOutput(self) -> 'vtkPolyData': ... + def GetClippedOutputPort(self) -> 'vtkAlgorithmOutput': ... + def GetGenerateClipScalars(self) -> int: ... + def GetGenerateClippedOutput(self) -> int: ... + def GetInsideOut(self) -> int: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetValue(self) -> float: ... + def InsideOutOff(self) -> None: ... + def InsideOutOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkClipPolyData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkClipPolyData': ... + def SetClipFunction(self, __a:'vtkImplicitFunction') -> None: ... + def SetGenerateClipScalars(self, _arg:int) -> None: ... + def SetGenerateClippedOutput(self, _arg:int) -> None: ... + def SetInsideOut(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetValue(self, _arg:float) -> None: ... + +class vtkCutter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + cut_function:'getset_descriptor' + generate_cut_scalars:'getset_descriptor' + generate_triangles:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + output_points_precision:'getset_descriptor' + sort_by:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def GenerateCutScalarsOff(self) -> None: ... + def GenerateCutScalarsOn(self) -> None: ... + def GenerateTrianglesOff(self) -> None: ... + def GenerateTrianglesOn(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + @staticmethod + def GetCellTypeDimensions(cellTypeDimensions:MutableSequence[int]) -> None: ... + def GetCutFunction(self) -> 'vtkImplicitFunction': ... + def GetGenerateCutScalars(self) -> int: ... + def GetGenerateTriangles(self) -> int: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetOutputPointsPrecisionMaxValue(self) -> int: ... + def GetOutputPointsPrecisionMinValue(self) -> int: ... + def GetSortBy(self) -> int: ... + def GetSortByAsString(self) -> str: ... + def GetSortByMaxValue(self) -> int: ... + def GetSortByMinValue(self) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCutter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCutter': ... + def SetCutFunction(self, __a:'vtkImplicitFunction') -> None: ... + def SetGenerateCutScalars(self, _arg:int) -> None: ... + def SetGenerateTriangles(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetSortBy(self, _arg:int) -> None: ... + def SetSortByToSortByCell(self) -> None: ... + def SetSortByToSortByValue(self) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + +class vtkCompositeCutter(vtkCutter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositeCutter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeCutter': ... + +class vtkProbeFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + categorical_data:'getset_descriptor' + cell_locator_prototype:'getset_descriptor' + compute_tolerance:'getset_descriptor' + find_cell_strategy:'getset_descriptor' + pass_cell_arrays:'getset_descriptor' + pass_field_arrays:'getset_descriptor' + pass_point_arrays:'getset_descriptor' + snap_to_cell_with_closest_point:'getset_descriptor' + source:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + spatial_match:'getset_descriptor' + tolerance:'getset_descriptor' + valid_point_mask_array_name:'getset_descriptor' + valid_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CategoricalDataOff(self) -> None: ... + def CategoricalDataOn(self) -> None: ... + def ComputeToleranceOff(self) -> None: ... + def ComputeToleranceOn(self) -> None: ... + def GetCategoricalData(self) -> int: ... + def GetCellLocatorPrototype(self) -> 'vtkAbstractCellLocator': ... + def GetComputeTolerance(self) -> bool: ... + def GetFindCellStrategy(self) -> 'vtkFindCellStrategy': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassCellArrays(self) -> int: ... + def GetPassFieldArrays(self) -> int: ... + def GetPassPointArrays(self) -> int: ... + def GetSnapToCellWithClosestPoint(self) -> bool: ... + def GetSource(self) -> 'vtkDataObject': ... + def GetSpatialMatch(self) -> int: ... + def GetTolerance(self) -> float: ... + def GetValidPointMaskArrayName(self) -> str: ... + def GetValidPoints(self) -> 'vtkIdTypeArray': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProbeFilter': ... + def PassCellArraysOff(self) -> None: ... + def PassCellArraysOn(self) -> None: ... + def PassFieldArraysOff(self) -> None: ... + def PassFieldArraysOn(self) -> None: ... + def PassPointArraysOff(self) -> None: ... + def PassPointArraysOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProbeFilter': ... + def SetCategoricalData(self, _arg:int) -> None: ... + def SetCellLocatorPrototype(self, __a:'vtkAbstractCellLocator') -> None: ... + def SetComputeTolerance(self, _arg:bool) -> None: ... + def SetFindCellStrategy(self, __a:'vtkFindCellStrategy') -> None: ... + def SetPassCellArrays(self, _arg:int) -> None: ... + def SetPassFieldArrays(self, _arg:int) -> None: ... + def SetPassPointArrays(self, _arg:int) -> None: ... + def SetSnapToCellWithClosestPoint(self, _arg:bool) -> None: ... + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, source:'vtkDataObject') -> None: ... + def SetSpatialMatch(self, _arg:int) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def SetValidPointMaskArrayName(self, _arg:str) -> None: ... + def SnapToCellWithClosestPointOff(self) -> None: ... + def SnapToCellWithClosestPointOn(self) -> None: ... + def SpatialMatchOff(self) -> None: ... + def SpatialMatchOn(self) -> None: ... + +class vtkCompositeDataProbeFilter(vtkProbeFilter): + pass_partial_arrays:'getset_descriptor' + use_implicit_arrays:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassPartialArrays(self) -> bool: ... + def GetUseImplicitArrays(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositeDataProbeFilter': ... + def PassPartialArraysOff(self) -> None: ... + def PassPartialArraysOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeDataProbeFilter': ... + def SetPassPartialArrays(self, _arg:bool) -> None: ... + def SetUseImplicitArrays(self, _arg:bool) -> None: ... + def UseImplicitArraysOff(self) -> None: ... + def UseImplicitArraysOn(self) -> None: ... + +class vtkConnectivityFilter(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + class RegionIdAssignment(int): ... + CELL_COUNT_ASCENDING:'RegionIdAssignment' + CELL_COUNT_DESCENDING:'RegionIdAssignment' + UNSPECIFIED:'RegionIdAssignment' + closest_point:'getset_descriptor' + color_regions:'getset_descriptor' + compress_arrays:'getset_descriptor' + extraction_mode:'getset_descriptor' + number_of_extracted_regions:'getset_descriptor' + output_points_precision:'getset_descriptor' + region_id_assignment_mode:'getset_descriptor' + scalar_connectivity:'getset_descriptor' + scalar_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddSeed(self, id:int) -> None: ... + def AddSpecifiedRegion(self, id:int) -> None: ... + def ColorRegionsOff(self) -> None: ... + def ColorRegionsOn(self) -> None: ... + def CompressArraysOff(self) -> None: ... + def CompressArraysOn(self) -> None: ... + def DeleteSeed(self, id:int) -> None: ... + def DeleteSpecifiedRegion(self, id:int) -> None: ... + def GetClosestPoint(self) -> Tuple[float, float, float]: ... + def GetColorRegions(self) -> int: ... + def GetCompressArrays(self) -> bool: ... + def GetExtractionMode(self) -> int: ... + def GetExtractionModeAsString(self) -> str: ... + def GetExtractionModeMaxValue(self) -> int: ... + def GetExtractionModeMinValue(self) -> int: ... + def GetNumberOfExtractedRegions(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetRegionIdAssignmentMode(self) -> int: ... + def GetScalarConnectivity(self) -> int: ... + def GetScalarRange(self) -> Tuple[float, float]: ... + def InitializeSeedList(self) -> None: ... + def InitializeSpecifiedRegionList(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkConnectivityFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConnectivityFilter': ... + def ScalarConnectivityOff(self) -> None: ... + def ScalarConnectivityOn(self) -> None: ... + @overload + def SetClosestPoint(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetClosestPoint(self, _arg:Sequence[float]) -> None: ... + def SetColorRegions(self, _arg:int) -> None: ... + def SetCompressArrays(self, _arg:bool) -> None: ... + def SetExtractionMode(self, _arg:int) -> None: ... + def SetExtractionModeToAllRegions(self) -> None: ... + def SetExtractionModeToCellSeededRegions(self) -> None: ... + def SetExtractionModeToClosestPointRegion(self) -> None: ... + def SetExtractionModeToLargestRegion(self) -> None: ... + def SetExtractionModeToPointSeededRegions(self) -> None: ... + def SetExtractionModeToSpecifiedRegions(self) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetRegionIdAssignmentMode(self, _arg:int) -> None: ... + def SetScalarConnectivity(self, _arg:int) -> None: ... + @overload + def SetScalarRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetScalarRange(self, _arg:Sequence[float]) -> None: ... + +class vtkConstrainedSmoothingFilter(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + class ConstraintStrategyType(int): ... + CONSTRAINT_ARRAY:'ConstraintStrategyType' + CONSTRAINT_BOX:'ConstraintStrategyType' + CONSTRAINT_DISTANCE:'ConstraintStrategyType' + DEFAULT:'ConstraintStrategyType' + constraint_box:'getset_descriptor' + constraint_distance:'getset_descriptor' + constraint_strategy:'getset_descriptor' + convergence:'getset_descriptor' + generate_error_scalars:'getset_descriptor' + generate_error_vectors:'getset_descriptor' + number_of_iterations:'getset_descriptor' + number_of_iterations_max_value:'getset_descriptor' + number_of_iterations_min_value:'getset_descriptor' + output_points_precision:'getset_descriptor' + relaxation_factor:'getset_descriptor' + smoothing_stencils:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateErrorScalarsOff(self) -> None: ... + def GenerateErrorScalarsOn(self) -> None: ... + def GenerateErrorVectorsOff(self) -> None: ... + def GenerateErrorVectorsOn(self) -> None: ... + def GetConstraintBox(self) -> Tuple[float, float, float]: ... + def GetConstraintDistance(self) -> float: ... + def GetConstraintDistanceMaxValue(self) -> float: ... + def GetConstraintDistanceMinValue(self) -> float: ... + def GetConstraintStrategy(self) -> int: ... + def GetConstraintStrategyMaxValue(self) -> int: ... + def GetConstraintStrategyMinValue(self) -> int: ... + def GetConvergence(self) -> float: ... + def GetConvergenceMaxValue(self) -> float: ... + def GetConvergenceMinValue(self) -> float: ... + def GetGenerateErrorScalars(self) -> bool: ... + def GetGenerateErrorVectors(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIterations(self) -> int: ... + def GetNumberOfIterationsMaxValue(self) -> int: ... + def GetNumberOfIterationsMinValue(self) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetRelaxationFactor(self) -> float: ... + def GetSmoothingStencils(self) -> 'vtkCellArray': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkConstrainedSmoothingFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConstrainedSmoothingFilter': ... + @overload + def SetConstraintBox(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetConstraintBox(self, _arg:Sequence[float]) -> None: ... + def SetConstraintDistance(self, _arg:float) -> None: ... + def SetConstraintStrategy(self, _arg:int) -> None: ... + def SetConstraintStrategyToConstraintArray(self) -> None: ... + def SetConstraintStrategyToConstraintBox(self) -> None: ... + def SetConstraintStrategyToConstraintDistance(self) -> None: ... + def SetConstraintStrategyToDefault(self) -> None: ... + def SetConvergence(self, _arg:float) -> None: ... + def SetGenerateErrorScalars(self, _arg:bool) -> None: ... + def SetGenerateErrorVectors(self, _arg:bool) -> None: ... + def SetNumberOfIterations(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetRelaxationFactor(self, _arg:float) -> None: ... + def SetSmoothingStencils(self, _arg:'vtkCellArray') -> None: ... + +class vtkContour3DLinearGrid(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + compute_normals:'getset_descriptor' + compute_scalars:'getset_descriptor' + interpolate_attributes:'getset_descriptor' + large_ids:'getset_descriptor' + m_time:'getset_descriptor' + merge_points:'getset_descriptor' + number_of_contours:'getset_descriptor' + number_of_threads_used:'getset_descriptor' + output_points_precision:'getset_descriptor' + scalar_tree:'getset_descriptor' + sequential_processing:'getset_descriptor' + use_scalar_tree:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def CanFullyProcessDataObject(object:'vtkDataObject', scalarArrayName:str) -> bool: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def ComputeScalarsOff(self) -> None: ... + def ComputeScalarsOn(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetComputeNormals(self) -> int: ... + def GetComputeScalars(self) -> int: ... + def GetInterpolateAttributes(self) -> int: ... + def GetLargeIds(self) -> bool: ... + def GetMTime(self) -> int: ... + def GetMergePoints(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfThreadsUsed(self) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetScalarTree(self) -> 'vtkScalarTree': ... + def GetSequentialProcessing(self) -> int: ... + def GetUseScalarTree(self) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def InterpolateAttributesOff(self) -> None: ... + def InterpolateAttributesOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergePointsOff(self) -> None: ... + def MergePointsOn(self) -> None: ... + def NewInstance(self) -> 'vtkContour3DLinearGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContour3DLinearGrid': ... + def SequentialProcessingOff(self) -> None: ... + def SequentialProcessingOn(self) -> None: ... + def SetComputeNormals(self, _arg:int) -> None: ... + def SetComputeScalars(self, _arg:int) -> None: ... + def SetInterpolateAttributes(self, _arg:int) -> None: ... + def SetMergePoints(self, _arg:int) -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetScalarTree(self, __a:'vtkScalarTree') -> None: ... + def SetSequentialProcessing(self, _arg:int) -> None: ... + def SetUseScalarTree(self, _arg:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + def UseScalarTreeOff(self) -> None: ... + def UseScalarTreeOn(self) -> None: ... + +class vtkContourFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + array_component:'getset_descriptor' + compute_gradients:'getset_descriptor' + compute_normals:'getset_descriptor' + compute_scalars:'getset_descriptor' + contour_values:'getset_descriptor' + fast_mode:'getset_descriptor' + generate_triangles:'getset_descriptor' + input_array:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + output_points_precision:'getset_descriptor' + scalar_tree:'getset_descriptor' + use_scalar_tree:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeGradientsOff(self) -> None: ... + def ComputeGradientsOn(self) -> None: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def ComputeScalarsOff(self) -> None: ... + def ComputeScalarsOn(self) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def FastModeOff(self) -> None: ... + def FastModeOn(self) -> None: ... + def GenerateTrianglesOff(self) -> None: ... + def GenerateTrianglesOn(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetArrayComponent(self) -> int: ... + def GetComputeGradients(self) -> int: ... + def GetComputeNormals(self) -> int: ... + def GetComputeScalars(self) -> int: ... + def GetContourValues(self) -> Tuple[float, float]: ... + def GetFastMode(self) -> bool: ... + def GetGenerateTriangles(self) -> int: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetScalarTree(self) -> 'vtkScalarTree': ... + def GetUseScalarTree(self) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContourFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContourFilter': ... + def SetArrayComponent(self, _arg:int) -> None: ... + def SetComputeGradients(self, _arg:int) -> None: ... + def SetComputeNormals(self, _arg:int) -> None: ... + def SetComputeScalars(self, _arg:int) -> None: ... + def SetContourValues(self, values:Sequence[float]) -> None: ... + def SetFastMode(self, _arg:bool) -> None: ... + def SetGenerateTriangles(self, _arg:int) -> None: ... + def SetInputArray(self, name:str) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetScalarTree(self, __a:'vtkScalarTree') -> None: ... + def SetUseScalarTree(self, _arg:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + def UseScalarTreeOff(self) -> None: ... + def UseScalarTreeOn(self) -> None: ... + +class vtkContourGrid(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + compute_normals:'getset_descriptor' + compute_scalars:'getset_descriptor' + generate_triangles:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + output_points_precision:'getset_descriptor' + scalar_tree:'getset_descriptor' + use_scalar_tree:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def ComputeScalarsOff(self) -> None: ... + def ComputeScalarsOn(self) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def GenerateTrianglesOff(self) -> None: ... + def GenerateTrianglesOn(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetComputeNormals(self) -> int: ... + def GetComputeScalars(self) -> int: ... + def GetGenerateTriangles(self) -> int: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetScalarTree(self) -> 'vtkScalarTree': ... + def GetUseScalarTree(self) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContourGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContourGrid': ... + def SetComputeNormals(self, _arg:int) -> None: ... + def SetComputeScalars(self, _arg:int) -> None: ... + def SetGenerateTriangles(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetOutputPointsPrecision(self, precision:int) -> None: ... + def SetScalarTree(self, sTree:'vtkScalarTree') -> None: ... + def SetUseScalarTree(self, _arg:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + def UseScalarTreeOff(self) -> None: ... + def UseScalarTreeOn(self) -> None: ... + +class vtkContourHelper(object): + def __init__(self, locator:'vtkIncrementalPointLocator', outVerts:'vtkCellArray', outLines:'vtkCellArray', outPolys:'vtkCellArray', inPd:'vtkPointData', inCd:'vtkCellData', outPd:'vtkPointData', outCd:'vtkCellData', trisEstimatedSize:int, outputTriangles:bool) -> None: ... + def Contour(self, cell:'vtkCell', value:float, cellScalars:'vtkDataArray', cellId:int) -> None: ... + +class vtkConvertToMultiBlockDataSet(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkConvertToMultiBlockDataSet': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConvertToMultiBlockDataSet': ... + +class vtkConvertToPartitionedDataSetCollection(vtkmodules.vtkCommonExecutionModel.vtkPartitionedDataSetCollectionAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkConvertToPartitionedDataSetCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConvertToPartitionedDataSetCollection': ... + +class vtkConvertToPolyhedra(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + output_all_cells:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputAllCells(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkConvertToPolyhedra': ... + def OutputAllCellsOff(self) -> None: ... + def OutputAllCellsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConvertToPolyhedra': ... + def SetOutputAllCells(self, _arg:bool) -> None: ... + +class vtkDataObjectGenerator(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + program:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProgram(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataObjectGenerator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataObjectGenerator': ... + def SetProgram(self, _arg:str) -> None: ... + +class vtkDataObjectToDataSetFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + cell_connectivity_component_array_component:'getset_descriptor' + cell_connectivity_component_array_name:'getset_descriptor' + cell_connectivity_component_max_range:'getset_descriptor' + cell_connectivity_component_min_range:'getset_descriptor' + cell_type_component_array_component:'getset_descriptor' + cell_type_component_array_name:'getset_descriptor' + cell_type_component_max_range:'getset_descriptor' + cell_type_component_min_range:'getset_descriptor' + data_set_type:'getset_descriptor' + default_normalize:'getset_descriptor' + dimensions:'getset_descriptor' + input:'getset_descriptor' + lines_component_array_component:'getset_descriptor' + lines_component_array_name:'getset_descriptor' + lines_component_max_range:'getset_descriptor' + lines_component_min_range:'getset_descriptor' + origin:'getset_descriptor' + output:'getset_descriptor' + poly_data_output:'getset_descriptor' + polys_component_array_component:'getset_descriptor' + polys_component_array_name:'getset_descriptor' + polys_component_max_range:'getset_descriptor' + polys_component_min_range:'getset_descriptor' + rectilinear_grid_output:'getset_descriptor' + spacing:'getset_descriptor' + strips_component_array_component:'getset_descriptor' + strips_component_array_name:'getset_descriptor' + strips_component_max_range:'getset_descriptor' + strips_component_min_range:'getset_descriptor' + structured_grid_output:'getset_descriptor' + structured_points_output:'getset_descriptor' + unstructured_grid_output:'getset_descriptor' + verts_component_array_component:'getset_descriptor' + verts_component_array_name:'getset_descriptor' + verts_component_max_range:'getset_descriptor' + verts_component_min_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DefaultNormalizeOff(self) -> None: ... + def DefaultNormalizeOn(self) -> None: ... + def GetCellConnectivityComponentArrayComponent(self) -> int: ... + def GetCellConnectivityComponentArrayName(self) -> str: ... + def GetCellConnectivityComponentMaxRange(self) -> int: ... + def GetCellConnectivityComponentMinRange(self) -> int: ... + def GetCellTypeComponentArrayComponent(self) -> int: ... + def GetCellTypeComponentArrayName(self) -> str: ... + def GetCellTypeComponentMaxRange(self) -> int: ... + def GetCellTypeComponentMinRange(self) -> int: ... + def GetDataSetType(self) -> int: ... + def GetDefaultNormalize(self) -> int: ... + def GetDimensions(self) -> Tuple[int, int, int]: ... + def GetInput(self) -> 'vtkDataObject': ... + def GetLinesComponentArrayComponent(self) -> int: ... + def GetLinesComponentArrayName(self) -> str: ... + def GetLinesComponentMaxRange(self) -> int: ... + def GetLinesComponentMinRange(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + @overload + def GetOutput(self) -> 'vtkDataSet': ... + @overload + def GetOutput(self, idx:int) -> 'vtkDataSet': ... + def GetPointComponentArrayComponent(self, comp:int) -> int: ... + def GetPointComponentArrayName(self, comp:int) -> str: ... + def GetPointComponentMaxRange(self, comp:int) -> int: ... + def GetPointComponentMinRange(self, comp:int) -> int: ... + def GetPointComponentNormailzeFlag(self, comp:int) -> int: ... + def GetPolyDataOutput(self) -> 'vtkPolyData': ... + def GetPolysComponentArrayComponent(self) -> int: ... + def GetPolysComponentArrayName(self) -> str: ... + def GetPolysComponentMaxRange(self) -> int: ... + def GetPolysComponentMinRange(self) -> int: ... + def GetRectilinearGridOutput(self) -> 'vtkRectilinearGrid': ... + def GetSpacing(self) -> Tuple[float, float, float]: ... + def GetStripsComponentArrayComponent(self) -> int: ... + def GetStripsComponentArrayName(self) -> str: ... + def GetStripsComponentMaxRange(self) -> int: ... + def GetStripsComponentMinRange(self) -> int: ... + def GetStructuredGridOutput(self) -> 'vtkStructuredGrid': ... + def GetStructuredPointsOutput(self) -> 'vtkStructuredPoints': ... + def GetUnstructuredGridOutput(self) -> 'vtkUnstructuredGrid': ... + def GetVertsComponentArrayComponent(self) -> int: ... + def GetVertsComponentArrayName(self) -> str: ... + def GetVertsComponentMaxRange(self) -> int: ... + def GetVertsComponentMinRange(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataObjectToDataSetFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataObjectToDataSetFilter': ... + @overload + def SetCellConnectivityComponent(self, arrayName:str, arrayComp:int, min:int, max:int) -> None: ... + @overload + def SetCellConnectivityComponent(self, arrayName:str, arrayComp:int) -> None: ... + @overload + def SetCellTypeComponent(self, arrayName:str, arrayComp:int, min:int, max:int) -> None: ... + @overload + def SetCellTypeComponent(self, arrayName:str, arrayComp:int) -> None: ... + def SetDataSetType(self, __a:int) -> None: ... + def SetDataSetTypeToPolyData(self) -> None: ... + def SetDataSetTypeToRectilinearGrid(self) -> None: ... + def SetDataSetTypeToStructuredGrid(self) -> None: ... + def SetDataSetTypeToStructuredPoints(self) -> None: ... + def SetDataSetTypeToUnstructuredGrid(self) -> None: ... + def SetDefaultNormalize(self, _arg:int) -> None: ... + @overload + def SetDimensions(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetDimensions(self, _arg:Sequence[int]) -> None: ... + @overload + def SetDimensionsComponent(self, arrayName:str, arrayComp:int, min:int, max:int) -> None: ... + @overload + def SetDimensionsComponent(self, arrayName:str, arrayComp:int) -> None: ... + @overload + def SetLinesComponent(self, arrayName:str, arrayComp:int, min:int, max:int) -> None: ... + @overload + def SetLinesComponent(self, arrayName:str, arrayComp:int) -> None: ... + @overload + def SetOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOrigin(self, _arg:Sequence[float]) -> None: ... + @overload + def SetOriginComponent(self, arrayName:str, arrayComp:int, min:int, max:int) -> None: ... + @overload + def SetOriginComponent(self, arrayName:str, arrayComp:int) -> None: ... + @overload + def SetPointComponent(self, comp:int, arrayName:str, arrayComp:int, min:int, max:int, normalize:int) -> None: ... + @overload + def SetPointComponent(self, comp:int, arrayName:str, arrayComp:int) -> None: ... + @overload + def SetPolysComponent(self, arrayName:str, arrayComp:int, min:int, max:int) -> None: ... + @overload + def SetPolysComponent(self, arrayName:str, arrayComp:int) -> None: ... + @overload + def SetSpacing(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetSpacing(self, _arg:Sequence[float]) -> None: ... + @overload + def SetSpacingComponent(self, arrayName:str, arrayComp:int, min:int, max:int) -> None: ... + @overload + def SetSpacingComponent(self, arrayName:str, arrayComp:int) -> None: ... + @overload + def SetStripsComponent(self, arrayName:str, arrayComp:int, min:int, max:int) -> None: ... + @overload + def SetStripsComponent(self, arrayName:str, arrayComp:int) -> None: ... + @overload + def SetVertsComponent(self, arrayName:str, arrayComp:int, min:int, max:int) -> None: ... + @overload + def SetVertsComponent(self, arrayName:str, arrayComp:int) -> None: ... + +class vtkEdgeSubdivisionCriterion(vtkmodules.vtkCommonCore.vtkObject): + field_ids:'getset_descriptor' + field_offsets:'getset_descriptor' + number_of_fields:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DontPassField(self, sourceId:int, t:'vtkStreamingTessellator') -> bool: ... + def EvaluateLocationAndFields(self, p1:MutableSequence[float], field_start:int) -> bool: ... + def GetFieldIds(self) -> Pointer: ... + def GetFieldOffsets(self) -> Pointer: ... + def GetNumberOfFields(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputField(self, fieldId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEdgeSubdivisionCriterion': ... + def PassField(self, sourceId:int, sourceSize:int, t:'vtkStreamingTessellator') -> int: ... + def ResetFieldList(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEdgeSubdivisionCriterion': ... + +class vtkDataSetEdgeSubdivisionCriterion(vtkEdgeSubdivisionCriterion): + active_field_criteria:'getset_descriptor' + cell:'getset_descriptor' + cell_id:'getset_descriptor' + chord_error2:'getset_descriptor' + mesh:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def EvaluateCellDataField(self, result:MutableSequence[float], weights:MutableSequence[float], field:int) -> None: ... + def EvaluateFields(self, vertex:MutableSequence[float], weights:MutableSequence[float], field_start:int) -> Pointer: ... + def EvaluateLocationAndFields(self, midpt:MutableSequence[float], field_start:int) -> bool: ... + def EvaluatePointDataField(self, result:MutableSequence[float], weights:MutableSequence[float], field:int) -> None: ... + def GetActiveFieldCriteria(self) -> int: ... + def GetCell(self) -> 'vtkCell': ... + def GetCellId(self) -> int: ... + def GetChordError2(self) -> float: ... + def GetFieldError2(self, s:int) -> float: ... + def GetMesh(self) -> 'vtkDataSet': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataSetEdgeSubdivisionCriterion': ... + def ResetFieldError2(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataSetEdgeSubdivisionCriterion': ... + def SetCellId(self, cell:int) -> None: ... + def SetChordError2(self, _arg:float) -> None: ... + def SetFieldError2(self, s:int, err:float) -> None: ... + def SetMesh(self, __a:'vtkDataSet') -> None: ... + +class vtkDataSetToDataObjectFilter(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + cell_data:'getset_descriptor' + field_data:'getset_descriptor' + geometry:'getset_descriptor' + legacy_topology:'getset_descriptor' + modern_topology:'getset_descriptor' + point_data:'getset_descriptor' + topology:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellDataOff(self) -> None: ... + def CellDataOn(self) -> None: ... + def FieldDataOff(self) -> None: ... + def FieldDataOn(self) -> None: ... + def GeometryOff(self) -> None: ... + def GeometryOn(self) -> None: ... + def GetCellData(self) -> int: ... + def GetFieldData(self) -> int: ... + def GetGeometry(self) -> int: ... + def GetLegacyTopology(self) -> int: ... + def GetModernTopology(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointData(self) -> int: ... + def GetTopology(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LegacyTopologyOff(self) -> None: ... + def LegacyTopologyOn(self) -> None: ... + def ModernTopologyOff(self) -> None: ... + def ModernTopologyOn(self) -> None: ... + def NewInstance(self) -> 'vtkDataSetToDataObjectFilter': ... + def PointDataOff(self) -> None: ... + def PointDataOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataSetToDataObjectFilter': ... + def SetCellData(self, _arg:int) -> None: ... + def SetFieldData(self, _arg:int) -> None: ... + def SetGeometry(self, _arg:int) -> None: ... + def SetLegacyTopology(self, _arg:int) -> None: ... + def SetModernTopology(self, _arg:int) -> None: ... + def SetPointData(self, _arg:int) -> None: ... + def SetTopology(self, _arg:int) -> None: ... + def TopologyOff(self) -> None: ... + def TopologyOn(self) -> None: ... + +class vtkDecimatePolylineStrategy(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def ComputeError(self, dataset:'vtkPointSet', originId:int, p1Id:int, p2Id:int) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsStateValid(self, dataset:'vtkPointSet') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDecimatePolylineStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDecimatePolylineStrategy': ... + +class vtkDecimatePolylineAngleStrategy(vtkDecimatePolylineStrategy): + def __init__(self, **properties:Any) -> None: ... + def ComputeError(self, dataset:'vtkPointSet', originId:int, p1Id:int, p2Id:int) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDecimatePolylineAngleStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDecimatePolylineAngleStrategy': ... + +class vtkDecimatePolylineCustomFieldStrategy(vtkDecimatePolylineStrategy): + field_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeError(self, dataset:'vtkPointSet', originId:int, p1Id:int, p2Id:int) -> float: ... + def GetFieldName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsStateValid(self, dataset:'vtkPointSet') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDecimatePolylineCustomFieldStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDecimatePolylineCustomFieldStrategy': ... + def SetFieldName(self, _arg:str) -> None: ... + +class vtkDecimatePolylineDistanceStrategy(vtkDecimatePolylineStrategy): + def __init__(self, **properties:Any) -> None: ... + def ComputeError(self, dataset:'vtkPointSet', originId:int, p1Id:int, p2Id:int) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDecimatePolylineDistanceStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDecimatePolylineDistanceStrategy': ... + +class vtkDecimatePolylineFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + decimation_strategy:'getset_descriptor' + m_time:'getset_descriptor' + maximum_error:'getset_descriptor' + output_points_precision:'getset_descriptor' + target_reduction:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDecimationStrategy(self) -> 'vtkDecimatePolylineStrategy': ... + def GetMTime(self) -> int: ... + def GetMaximumError(self) -> float: ... + def GetMaximumErrorMaxValue(self) -> float: ... + def GetMaximumErrorMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetTargetReduction(self) -> float: ... + def GetTargetReductionMaxValue(self) -> float: ... + def GetTargetReductionMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDecimatePolylineFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDecimatePolylineFilter': ... + def SetDecimationStrategy(self, _arg:'vtkDecimatePolylineStrategy') -> None: ... + def SetMaximumError(self, _arg:float) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetTargetReduction(self, _arg:float) -> None: ... + +class vtkDecimatePro(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + absolute_error:'getset_descriptor' + accumulate_error:'getset_descriptor' + boundary_vertex_deletion:'getset_descriptor' + degree:'getset_descriptor' + error_is_absolute:'getset_descriptor' + feature_angle:'getset_descriptor' + inflection_point_ratio:'getset_descriptor' + inflection_points:'getset_descriptor' + maximum_error:'getset_descriptor' + number_of_inflection_points:'getset_descriptor' + output_points_precision:'getset_descriptor' + pre_split_mesh:'getset_descriptor' + preserve_topology:'getset_descriptor' + split_angle:'getset_descriptor' + splitting:'getset_descriptor' + target_reduction:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AccumulateErrorOff(self) -> None: ... + def AccumulateErrorOn(self) -> None: ... + def BoundaryVertexDeletionOff(self) -> None: ... + def BoundaryVertexDeletionOn(self) -> None: ... + def GetAbsoluteError(self) -> float: ... + def GetAbsoluteErrorMaxValue(self) -> float: ... + def GetAbsoluteErrorMinValue(self) -> float: ... + def GetAccumulateError(self) -> int: ... + def GetBoundaryVertexDeletion(self) -> int: ... + def GetDegree(self) -> int: ... + def GetDegreeMaxValue(self) -> int: ... + def GetDegreeMinValue(self) -> int: ... + def GetErrorIsAbsolute(self) -> int: ... + def GetFeatureAngle(self) -> float: ... + def GetFeatureAngleMaxValue(self) -> float: ... + def GetFeatureAngleMinValue(self) -> float: ... + def GetInflectionPointRatio(self) -> float: ... + def GetInflectionPointRatioMaxValue(self) -> float: ... + def GetInflectionPointRatioMinValue(self) -> float: ... + @overload + def GetInflectionPoints(self, inflectionPoints:MutableSequence[float]) -> None: ... + @overload + def GetInflectionPoints(self) -> Pointer: ... + def GetMaximumError(self) -> float: ... + def GetMaximumErrorMaxValue(self) -> float: ... + def GetMaximumErrorMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfInflectionPoints(self) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPreSplitMesh(self) -> int: ... + def GetPreserveTopology(self) -> int: ... + def GetSplitAngle(self) -> float: ... + def GetSplitAngleMaxValue(self) -> float: ... + def GetSplitAngleMinValue(self) -> float: ... + def GetSplitting(self) -> int: ... + def GetTargetReduction(self) -> float: ... + def GetTargetReductionMaxValue(self) -> float: ... + def GetTargetReductionMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDecimatePro': ... + def PreSplitMeshOff(self) -> None: ... + def PreSplitMeshOn(self) -> None: ... + def PreserveTopologyOff(self) -> None: ... + def PreserveTopologyOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDecimatePro': ... + def SetAbsoluteError(self, _arg:float) -> None: ... + def SetAccumulateError(self, _arg:int) -> None: ... + def SetBoundaryVertexDeletion(self, _arg:int) -> None: ... + def SetDegree(self, _arg:int) -> None: ... + def SetErrorIsAbsolute(self, _arg:int) -> None: ... + def SetFeatureAngle(self, _arg:float) -> None: ... + def SetInflectionPointRatio(self, _arg:float) -> None: ... + def SetMaximumError(self, _arg:float) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetPreSplitMesh(self, _arg:int) -> None: ... + def SetPreserveTopology(self, _arg:int) -> None: ... + def SetSplitAngle(self, _arg:float) -> None: ... + def SetSplitting(self, _arg:int) -> None: ... + def SetTargetReduction(self, _arg:float) -> None: ... + def SplittingOff(self) -> None: ... + def SplittingOn(self) -> None: ... + +class vtkDelaunay2D(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + alpha:'getset_descriptor' + bounding_triangulation:'getset_descriptor' + offset:'getset_descriptor' + projection_plane_mode:'getset_descriptor' + random_point_insertion:'getset_descriptor' + source:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + tolerance:'getset_descriptor' + transform:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BoundingTriangulationOff(self) -> None: ... + def BoundingTriangulationOn(self) -> None: ... + @staticmethod + def ComputeBestFittingPlane(input:'vtkPointSet') -> 'vtkAbstractTransform': ... + def GetAlpha(self) -> float: ... + def GetAlphaMaxValue(self) -> float: ... + def GetAlphaMinValue(self) -> float: ... + def GetBoundingTriangulation(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffset(self) -> float: ... + def GetOffsetMaxValue(self) -> float: ... + def GetOffsetMinValue(self) -> float: ... + def GetProjectionPlaneMode(self) -> int: ... + def GetProjectionPlaneModeMaxValue(self) -> int: ... + def GetProjectionPlaneModeMinValue(self) -> int: ... + def GetRandomPointInsertion(self) -> int: ... + def GetSource(self) -> 'vtkPolyData': ... + def GetTolerance(self) -> float: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def GetTransform(self) -> 'vtkAbstractTransform': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDelaunay2D': ... + def RandomPointInsertionOff(self) -> None: ... + def RandomPointInsertionOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDelaunay2D': ... + def SetAlpha(self, _arg:float) -> None: ... + def SetBoundingTriangulation(self, _arg:int) -> None: ... + def SetOffset(self, _arg:float) -> None: ... + def SetProjectionPlaneMode(self, _arg:int) -> None: ... + def SetRandomPointInsertion(self, _arg:int) -> None: ... + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, __a:'vtkPolyData') -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def SetTransform(self, _arg:'vtkAbstractTransform') -> None: ... + +class vtkDelaunay3D(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + alpha:'getset_descriptor' + alpha_lines:'getset_descriptor' + alpha_tets:'getset_descriptor' + alpha_tris:'getset_descriptor' + alpha_verts:'getset_descriptor' + bounding_triangulation:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + offset:'getset_descriptor' + output_points_precision:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AlphaLinesOff(self) -> None: ... + def AlphaLinesOn(self) -> None: ... + def AlphaTetsOff(self) -> None: ... + def AlphaTetsOn(self) -> None: ... + def AlphaTrisOff(self) -> None: ... + def AlphaTrisOn(self) -> None: ... + def AlphaVertsOff(self) -> None: ... + def AlphaVertsOn(self) -> None: ... + def BoundingTriangulationOff(self) -> None: ... + def BoundingTriangulationOn(self) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def EndPointInsertion(self) -> None: ... + def GetAlpha(self) -> float: ... + def GetAlphaLines(self) -> int: ... + def GetAlphaMaxValue(self) -> float: ... + def GetAlphaMinValue(self) -> float: ... + def GetAlphaTets(self) -> int: ... + def GetAlphaTris(self) -> int: ... + def GetAlphaVerts(self) -> int: ... + def GetBoundingTriangulation(self) -> int: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffset(self) -> float: ... + def GetOffsetMaxValue(self) -> float: ... + def GetOffsetMinValue(self) -> float: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetTolerance(self) -> float: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def InsertPoint(self, Mesh:'vtkUnstructuredGrid', points:'vtkPoints', id:int, x:MutableSequence[float], holeTetras:'vtkIdList') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDelaunay3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDelaunay3D': ... + def SetAlpha(self, _arg:float) -> None: ... + def SetAlphaLines(self, _arg:int) -> None: ... + def SetAlphaTets(self, _arg:int) -> None: ... + def SetAlphaTris(self, _arg:int) -> None: ... + def SetAlphaVerts(self, _arg:int) -> None: ... + def SetBoundingTriangulation(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetOffset(self, _arg:float) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + +class vtkElevationFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + high_point:'getset_descriptor' + low_point:'getset_descriptor' + scalar_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetHighPoint(self) -> Tuple[float, float, float]: ... + def GetLowPoint(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScalarRange(self) -> Tuple[float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkElevationFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkElevationFilter': ... + @overload + def SetHighPoint(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetHighPoint(self, _arg:Sequence[float]) -> None: ... + @overload + def SetLowPoint(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetLowPoint(self, _arg:Sequence[float]) -> None: ... + @overload + def SetScalarRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetScalarRange(self, _arg:Sequence[float]) -> None: ... + +class vtkExecutionTimer(vtkmodules.vtkCommonCore.vtkObject): + elapsed_cpu_time:'getset_descriptor' + elapsed_wall_clock_time:'getset_descriptor' + filter:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetElapsedCPUTime(self) -> float: ... + def GetElapsedWallClockTime(self) -> float: ... + def GetFilter(self) -> 'vtkAlgorithm': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExecutionTimer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExecutionTimer': ... + def SetFilter(self, filter:'vtkAlgorithm') -> None: ... + +class vtkExplicitStructuredGridCrop(vtkmodules.vtkCommonExecutionModel.vtkExplicitStructuredGridAlgorithm): + output_whole_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutputWholeExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def GetOutputWholeExtent(self) -> Pointer: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExplicitStructuredGridCrop': ... + def ResetOutputWholeExtent(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExplicitStructuredGridCrop': ... + @overload + def SetOutputWholeExtent(self, extent:MutableSequence[int], outInfo:'vtkInformation'=...) -> None: ... + @overload + def SetOutputWholeExtent(self, minX:int, maxX:int, minY:int, maxY:int, minZ:int, maxZ:int) -> None: ... + +class vtkExplicitStructuredGridToUnstructuredGrid(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExplicitStructuredGridToUnstructuredGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExplicitStructuredGridToUnstructuredGrid': ... + +class vtkExtractCells(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + assume_sorted_and_unique_ids:'getset_descriptor' + batch_size:'getset_descriptor' + cell_list:'getset_descriptor' + extract_all_cells:'getset_descriptor' + output_points_precision:'getset_descriptor' + pass_through_cell_ids:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddCellIds(self, ptr:Sequence[int], numValues:int) -> None: ... + def AddCellList(self, l:'vtkIdList') -> None: ... + def AddCellRange(self, from_:int, to:int) -> None: ... + def AssumeSortedAndUniqueIdsOff(self) -> None: ... + def AssumeSortedAndUniqueIdsOn(self) -> None: ... + def ExtractAllCellsOff(self) -> None: ... + def ExtractAllCellsOn(self) -> None: ... + def GetAssumeSortedAndUniqueIds(self) -> bool: ... + def GetBatchSize(self) -> int: ... + def GetBatchSizeMaxValue(self) -> int: ... + def GetBatchSizeMinValue(self) -> int: ... + def GetExtractAllCells(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPassThroughCellIds(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractCells': ... + def PassThroughCellIdsOff(self) -> None: ... + def PassThroughCellIdsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractCells': ... + def SetAssumeSortedAndUniqueIds(self, _arg:bool) -> None: ... + def SetBatchSize(self, _arg:int) -> None: ... + def SetCellIds(self, ptr:Sequence[int], numValues:int) -> None: ... + def SetCellList(self, l:'vtkIdList') -> None: ... + def SetExtractAllCells(self, _arg:bool) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetPassThroughCellIds(self, _arg:bool) -> None: ... + +class vtkExtractCellsAlongPolyLine(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + output_points_precision:'getset_descriptor' + source_connection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractCellsAlongPolyLine': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractCellsAlongPolyLine': ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetSourceConnection(self, input:'vtkAlgorithmOutput') -> None: ... + +class vtkExtractEdges(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + locator:'getset_descriptor' + m_time:'getset_descriptor' + use_all_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseAllPoints(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractEdges': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractEdges': ... + def SetLocator(self, _arg:'vtkIncrementalPointLocator') -> None: ... + def SetUseAllPoints(self, _arg:bool) -> None: ... + def UseAllPointsOff(self) -> None: ... + def UseAllPointsOn(self) -> None: ... + +class vtkFeatureEdges(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + boundary_edges:'getset_descriptor' + coloring:'getset_descriptor' + feature_angle:'getset_descriptor' + feature_edges:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + manifold_edges:'getset_descriptor' + non_manifold_edges:'getset_descriptor' + output_points_precision:'getset_descriptor' + pass_lines:'getset_descriptor' + remove_ghost_interfaces:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BoundaryEdgesOff(self) -> None: ... + def BoundaryEdgesOn(self) -> None: ... + def ColoringOff(self) -> None: ... + def ColoringOn(self) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def ExtractAllEdgeTypesOff(self) -> None: ... + def ExtractAllEdgeTypesOn(self) -> None: ... + def FeatureEdgesOff(self) -> None: ... + def FeatureEdgesOn(self) -> None: ... + def GetBoundaryEdges(self) -> bool: ... + def GetColoring(self) -> bool: ... + def GetFeatureAngle(self) -> float: ... + def GetFeatureAngleMaxValue(self) -> float: ... + def GetFeatureAngleMinValue(self) -> float: ... + def GetFeatureEdges(self) -> bool: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetManifoldEdges(self) -> bool: ... + def GetNonManifoldEdges(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPassLines(self) -> bool: ... + def GetRemoveGhostInterfaces(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def ManifoldEdgesOff(self) -> None: ... + def ManifoldEdgesOn(self) -> None: ... + def NewInstance(self) -> 'vtkFeatureEdges': ... + def NonManifoldEdgesOff(self) -> None: ... + def NonManifoldEdgesOn(self) -> None: ... + def PassLinesOff(self) -> None: ... + def PassLinesOn(self) -> None: ... + def RemoveGhostInterfacesOff(self) -> None: ... + def RemoveGhostInterfacesOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFeatureEdges': ... + def SetBoundaryEdges(self, _arg:bool) -> None: ... + def SetColoring(self, _arg:bool) -> None: ... + def SetFeatureAngle(self, _arg:float) -> None: ... + def SetFeatureEdges(self, _arg:bool) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetManifoldEdges(self, _arg:bool) -> None: ... + def SetNonManifoldEdges(self, _arg:bool) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetPassLines(self, _arg:bool) -> None: ... + def SetRemoveGhostInterfaces(self, _arg:bool) -> None: ... + +class vtkFieldDataToAttributeDataFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + default_normalize:'getset_descriptor' + input_field:'getset_descriptor' + output_attribute_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ConstructArray(da:'vtkDataArray', comp:int, fieldArray:'vtkDataArray', fieldComp:int, min:int, max:int, normalize:int) -> int: ... + def DefaultNormalizeOff(self) -> None: ... + def DefaultNormalizeOn(self) -> None: ... + def GetDefaultNormalize(self) -> int: ... + @staticmethod + def GetFieldArray(fd:'vtkFieldData', name:str, comp:int) -> 'vtkDataArray': ... + def GetInputField(self) -> int: ... + def GetNormalComponentArrayComponent(self, comp:int) -> int: ... + def GetNormalComponentArrayName(self, comp:int) -> str: ... + def GetNormalComponentMaxRange(self, comp:int) -> int: ... + def GetNormalComponentMinRange(self, comp:int) -> int: ... + def GetNormalComponentNormalizeFlag(self, comp:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputAttributeData(self) -> int: ... + def GetScalarComponentArrayComponent(self, comp:int) -> int: ... + def GetScalarComponentArrayName(self, comp:int) -> str: ... + def GetScalarComponentMaxRange(self, comp:int) -> int: ... + def GetScalarComponentMinRange(self, comp:int) -> int: ... + def GetScalarComponentNormalizeFlag(self, comp:int) -> int: ... + def GetTCoordComponentArrayComponent(self, comp:int) -> int: ... + def GetTCoordComponentArrayName(self, comp:int) -> str: ... + def GetTCoordComponentMaxRange(self, comp:int) -> int: ... + def GetTCoordComponentMinRange(self, comp:int) -> int: ... + def GetTCoordComponentNormalizeFlag(self, comp:int) -> int: ... + def GetTensorComponentArrayComponent(self, comp:int) -> int: ... + def GetTensorComponentArrayName(self, comp:int) -> str: ... + def GetTensorComponentMaxRange(self, comp:int) -> int: ... + def GetTensorComponentMinRange(self, comp:int) -> int: ... + def GetTensorComponentNormalizeFlag(self, comp:int) -> int: ... + def GetVectorComponentArrayComponent(self, comp:int) -> int: ... + def GetVectorComponentArrayName(self, comp:int) -> str: ... + def GetVectorComponentMaxRange(self, comp:int) -> int: ... + def GetVectorComponentMinRange(self, comp:int) -> int: ... + def GetVectorComponentNormalizeFlag(self, comp:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFieldDataToAttributeDataFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFieldDataToAttributeDataFilter': ... + def SetDefaultNormalize(self, _arg:int) -> None: ... + def SetInputField(self, _arg:int) -> None: ... + def SetInputFieldToCellDataField(self) -> None: ... + def SetInputFieldToDataObjectField(self) -> None: ... + def SetInputFieldToPointDataField(self) -> None: ... + @overload + def SetNormalComponent(self, comp:int, arrayName:str, arrayComp:int, min:int, max:int, normalize:int) -> None: ... + @overload + def SetNormalComponent(self, comp:int, arrayName:str, arrayComp:int) -> None: ... + def SetOutputAttributeData(self, _arg:int) -> None: ... + def SetOutputAttributeDataToCellData(self) -> None: ... + def SetOutputAttributeDataToPointData(self) -> None: ... + @overload + def SetScalarComponent(self, comp:int, arrayName:str, arrayComp:int, min:int, max:int, normalize:int) -> None: ... + @overload + def SetScalarComponent(self, comp:int, arrayName:str, arrayComp:int) -> None: ... + @overload + def SetTCoordComponent(self, comp:int, arrayName:str, arrayComp:int, min:int, max:int, normalize:int) -> None: ... + @overload + def SetTCoordComponent(self, comp:int, arrayName:str, arrayComp:int) -> None: ... + @overload + def SetTensorComponent(self, comp:int, arrayName:str, arrayComp:int, min:int, max:int, normalize:int) -> None: ... + @overload + def SetTensorComponent(self, comp:int, arrayName:str, arrayComp:int) -> None: ... + @overload + def SetVectorComponent(self, comp:int, arrayName:str, arrayComp:int, min:int, max:int, normalize:int) -> None: ... + @overload + def SetVectorComponent(self, comp:int, arrayName:str, arrayComp:int) -> None: ... + @staticmethod + def UpdateComponentRange(da:'vtkDataArray', compRange:MutableSequence[int]) -> int: ... + +class vtkFieldDataToDataSetAttribute(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + output_field_type:'getset_descriptor' + process_all_arrays:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddFieldDataArray(self, name:str) -> None: ... + def ClearFieldDataArrays(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputFieldType(self) -> int: ... + def GetProcessAllArrays(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFieldDataToDataSetAttribute': ... + def ProcessAllArraysOff(self) -> None: ... + def ProcessAllArraysOn(self) -> None: ... + def RemoveFieldDataArray(self, name:str) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFieldDataToDataSetAttribute': ... + def SetOutputFieldType(self, _arg:int) -> None: ... + def SetProcessAllArrays(self, _arg:bool) -> None: ... + +class vtkFlyingEdges2D(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + array_component:'getset_descriptor' + compute_scalars:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeScalarsOff(self) -> None: ... + def ComputeScalarsOn(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetArrayComponent(self) -> int: ... + def GetComputeScalars(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFlyingEdges2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFlyingEdges2D': ... + def SetArrayComponent(self, _arg:int) -> None: ... + def SetComputeScalars(self, _arg:int) -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + +class vtkFlyingEdges3D(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + array_component:'getset_descriptor' + compute_gradients:'getset_descriptor' + compute_normals:'getset_descriptor' + compute_scalars:'getset_descriptor' + interpolate_attributes:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeGradientsOff(self) -> None: ... + def ComputeGradientsOn(self) -> None: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def ComputeScalarsOff(self) -> None: ... + def ComputeScalarsOn(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetArrayComponent(self) -> int: ... + def GetComputeGradients(self) -> int: ... + def GetComputeNormals(self) -> int: ... + def GetComputeScalars(self) -> int: ... + def GetInterpolateAttributes(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def InterpolateAttributesOff(self) -> None: ... + def InterpolateAttributesOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFlyingEdges3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFlyingEdges3D': ... + def SetArrayComponent(self, _arg:int) -> None: ... + def SetComputeGradients(self, _arg:int) -> None: ... + def SetComputeNormals(self, _arg:int) -> None: ... + def SetComputeScalars(self, _arg:int) -> None: ... + def SetInterpolateAttributes(self, _arg:int) -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + +class vtkFlyingEdgesPlaneCutter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + array_component:'getset_descriptor' + compute_normals:'getset_descriptor' + interpolate_attributes:'getset_descriptor' + m_time:'getset_descriptor' + plane:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def GetArrayComponent(self) -> int: ... + def GetComputeNormals(self) -> int: ... + def GetInterpolateAttributes(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPlane(self) -> 'vtkPlane': ... + def InterpolateAttributesOff(self) -> None: ... + def InterpolateAttributesOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFlyingEdgesPlaneCutter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFlyingEdgesPlaneCutter': ... + def SetArrayComponent(self, _arg:int) -> None: ... + def SetComputeNormals(self, _arg:int) -> None: ... + def SetInterpolateAttributes(self, _arg:int) -> None: ... + def SetPlane(self, __a:'vtkPlane') -> None: ... + +class vtkGenerateIds(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + cell_ids:'getset_descriptor' + cell_ids_array_name:'getset_descriptor' + field_data:'getset_descriptor' + point_ids:'getset_descriptor' + point_ids_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellIdsOff(self) -> None: ... + def CellIdsOn(self) -> None: ... + def FieldDataOff(self) -> None: ... + def FieldDataOn(self) -> None: ... + def GetCellIds(self) -> bool: ... + def GetCellIdsArrayName(self) -> str: ... + def GetFieldData(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointIds(self) -> bool: ... + def GetPointIdsArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenerateIds': ... + def PointIdsOff(self) -> None: ... + def PointIdsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenerateIds': ... + def SetCellIds(self, _arg:bool) -> None: ... + def SetCellIdsArrayName(self, _arg:str) -> None: ... + def SetFieldData(self, _arg:bool) -> None: ... + def SetPointIds(self, _arg:bool) -> None: ... + def SetPointIdsArrayName(self, _arg:str) -> None: ... + +class vtkGenerateRegionIds(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + max_angle:'getset_descriptor' + region_ids_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaxAngle(self) -> float: ... + def GetMaxAngleMaxValue(self) -> float: ... + def GetMaxAngleMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRegionIdsArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenerateRegionIds': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenerateRegionIds': ... + def SetMaxAngle(self, _arg:float) -> None: ... + def SetRegionIdsArrayName(self, _arg:str) -> None: ... + +class vtkGlyph3D(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + clamping:'getset_descriptor' + color_mode:'getset_descriptor' + fill_cell_data:'getset_descriptor' + followed_camera_position:'getset_descriptor' + followed_camera_view_up:'getset_descriptor' + generate_point_ids:'getset_descriptor' + index_mode:'getset_descriptor' + m_time:'getset_descriptor' + orient:'getset_descriptor' + output_points_precision:'getset_descriptor' + point_ids_name:'getset_descriptor' + range:'getset_descriptor' + scale_factor:'getset_descriptor' + scale_mode:'getset_descriptor' + scaling:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + source_transform:'getset_descriptor' + vector_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClampingOff(self) -> None: ... + def ClampingOn(self) -> None: ... + def FillCellDataOff(self) -> None: ... + def FillCellDataOn(self) -> None: ... + def GeneratePointIdsOff(self) -> None: ... + def GeneratePointIdsOn(self) -> None: ... + def GetClamping(self) -> int: ... + def GetColorMode(self) -> int: ... + def GetColorModeAsString(self) -> str: ... + def GetFillCellData(self) -> int: ... + def GetFollowedCameraPosition(self) -> Tuple[float, float, float]: ... + def GetFollowedCameraViewUp(self) -> Tuple[float, float, float]: ... + def GetGeneratePointIds(self) -> int: ... + def GetIndexMode(self) -> int: ... + def GetIndexModeAsString(self) -> str: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrient(self) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPointIdsName(self) -> str: ... + def GetRange(self) -> Tuple[float, float]: ... + def GetScaleFactor(self) -> float: ... + def GetScaleMode(self) -> int: ... + def GetScaleModeAsString(self) -> str: ... + def GetScaling(self) -> int: ... + def GetSource(self, id:int=0) -> 'vtkPolyData': ... + def GetSourceTransform(self) -> 'vtkTransform': ... + def GetVectorMode(self) -> int: ... + def GetVectorModeAsString(self) -> str: ... + def IsA(self, type:str) -> int: ... + def IsPointVisible(self, __a:'vtkDataSet', __b:int) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGlyph3D': ... + def OrientOff(self) -> None: ... + def OrientOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGlyph3D': ... + def ScalingOff(self) -> None: ... + def ScalingOn(self) -> None: ... + def SetClamping(self, _arg:int) -> None: ... + def SetColorMode(self, _arg:int) -> None: ... + def SetColorModeToColorByScalar(self) -> None: ... + def SetColorModeToColorByScale(self) -> None: ... + def SetColorModeToColorByVector(self) -> None: ... + def SetFillCellData(self, _arg:int) -> None: ... + def SetFollowedCameraPosition(self, data:Sequence[float]) -> None: ... + def SetFollowedCameraViewUp(self, data:Sequence[float]) -> None: ... + def SetGeneratePointIds(self, _arg:int) -> None: ... + def SetIndexMode(self, _arg:int) -> None: ... + def SetIndexModeToOff(self) -> None: ... + def SetIndexModeToScalar(self) -> None: ... + def SetIndexModeToVector(self) -> None: ... + def SetOrient(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetPointIdsName(self, _arg:str) -> None: ... + @overload + def SetRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetRange(self, _arg:Sequence[float]) -> None: ... + def SetScaleFactor(self, _arg:float) -> None: ... + def SetScaleMode(self, _arg:int) -> None: ... + def SetScaleModeToDataScalingOff(self) -> None: ... + def SetScaleModeToScaleByScalar(self) -> None: ... + def SetScaleModeToScaleByVector(self) -> None: ... + def SetScaleModeToScaleByVectorComponents(self) -> None: ... + def SetScaling(self, _arg:int) -> None: ... + @overload + def SetSourceConnection(self, id:int, algOutput:'vtkAlgorithmOutput') -> None: ... + @overload + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + @overload + def SetSourceData(self, pd:'vtkPolyData') -> None: ... + @overload + def SetSourceData(self, id:int, pd:'vtkPolyData') -> None: ... + def SetSourceTransform(self, __a:'vtkTransform') -> None: ... + def SetVectorMode(self, _arg:int) -> None: ... + def SetVectorModeToFollowCameraDirection(self) -> None: ... + def SetVectorModeToUseNormal(self) -> None: ... + def SetVectorModeToUseVector(self) -> None: ... + def SetVectorModeToVectorRotationOff(self) -> None: ... + +class vtkGlyph2D(vtkGlyph3D): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGlyph2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGlyph2D': ... + +class vtkGridSynchronizedTemplates3D(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + compute_gradients:'getset_descriptor' + compute_normals:'getset_descriptor' + compute_scalars:'getset_descriptor' + generate_triangles:'getset_descriptor' + input_memory_limit:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + output_points_precision:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeGradientsOff(self) -> None: ... + def ComputeGradientsOn(self) -> None: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def ComputeScalarsOff(self) -> None: ... + def ComputeScalarsOn(self) -> None: ... + def GenerateTrianglesOff(self) -> None: ... + def GenerateTrianglesOn(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetComputeGradients(self) -> int: ... + def GetComputeNormals(self) -> int: ... + def GetComputeScalars(self) -> int: ... + def GetGenerateTriangles(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetOutputPointsPrecisionMaxValue(self) -> int: ... + def GetOutputPointsPrecisionMinValue(self) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGridSynchronizedTemplates3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGridSynchronizedTemplates3D': ... + def SetComputeGradients(self, _arg:int) -> None: ... + def SetComputeNormals(self, _arg:int) -> None: ... + def SetComputeScalars(self, _arg:int) -> None: ... + def SetGenerateTriangles(self, _arg:int) -> None: ... + def SetInputMemoryLimit(self, limit:int) -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + +class vtkHedgeHog(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + output_points_precision:'getset_descriptor' + scale_factor:'getset_descriptor' + vector_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetScaleFactor(self) -> float: ... + def GetVectorMode(self) -> int: ... + def GetVectorModeAsString(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHedgeHog': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHedgeHog': ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetScaleFactor(self, _arg:float) -> None: ... + def SetVectorMode(self, _arg:int) -> None: ... + def SetVectorModeToUseNormal(self) -> None: ... + def SetVectorModeToUseVector(self) -> None: ... + +class vtkHull(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + number_of_planes:'getset_descriptor' + planes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddCubeEdgePlanes(self) -> None: ... + def AddCubeFacePlanes(self) -> None: ... + def AddCubeVertexPlanes(self) -> None: ... + @overload + def AddPlane(self, A:float, B:float, C:float) -> int: ... + @overload + def AddPlane(self, plane:MutableSequence[float]) -> int: ... + @overload + def AddPlane(self, A:float, B:float, C:float, D:float) -> int: ... + @overload + def AddPlane(self, plane:MutableSequence[float], D:float) -> int: ... + def AddRecursiveSpherePlanes(self, level:int) -> None: ... + @overload + def GenerateHull(self, pd:'vtkPolyData', bounds:MutableSequence[float]) -> None: ... + @overload + def GenerateHull(self, pd:'vtkPolyData', xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPlanes(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHull': ... + def RemoveAllPlanes(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHull': ... + @overload + def SetPlane(self, i:int, A:float, B:float, C:float) -> None: ... + @overload + def SetPlane(self, i:int, plane:MutableSequence[float]) -> None: ... + @overload + def SetPlane(self, i:int, A:float, B:float, C:float, D:float) -> None: ... + @overload + def SetPlane(self, i:int, plane:MutableSequence[float], D:float) -> None: ... + def SetPlanes(self, planes:'vtkPlanes') -> None: ... + +class vtkHyperTreeGridProbeFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + compute_tolerance:'getset_descriptor' + locator:'getset_descriptor' + pass_cell_arrays:'getset_descriptor' + pass_field_arrays:'getset_descriptor' + pass_point_arrays:'getset_descriptor' + source:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + tolerance:'getset_descriptor' + use_implicit_arrays:'getset_descriptor' + valid_point_mask_array_name:'getset_descriptor' + valid_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetComputeTolerance(self) -> bool: ... + def GetLocator(self) -> 'vtkHyperTreeGridLocator': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassCellArrays(self) -> bool: ... + def GetPassFieldArrays(self) -> bool: ... + def GetPassPointArrays(self) -> bool: ... + def GetSource(self) -> 'vtkHyperTreeGrid': ... + def GetTolerance(self) -> float: ... + def GetUseImplicitArrays(self) -> bool: ... + def GetValidPointMaskArrayName(self) -> str: ... + def GetValidPoints(self) -> 'vtkIdTypeArray': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridProbeFilter': ... + def PassCellArraysOff(self) -> None: ... + def PassCellArraysOn(self) -> None: ... + def PassFieldArraysOff(self) -> None: ... + def PassFieldArraysOn(self) -> None: ... + def PassPointArraysOff(self) -> None: ... + def PassPointArraysOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridProbeFilter': ... + def SetComputeTolerance(self, _arg:bool) -> None: ... + def SetLocator(self, __a:'vtkHyperTreeGridLocator') -> None: ... + def SetPassCellArrays(self, _arg:bool) -> None: ... + def SetPassFieldArrays(self, _arg:bool) -> None: ... + def SetPassPointArrays(self, _arg:bool) -> None: ... + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, source:'vtkHyperTreeGrid') -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def SetUseImplicitArrays(self, _arg:bool) -> None: ... + def SetValidPointMaskArrayName(self, _arg:str) -> None: ... + def UseImplicitArraysOff(self) -> None: ... + def UseImplicitArraysOn(self) -> None: ... + +class vtkIdFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + cell_ids:'getset_descriptor' + cell_ids_array_name:'getset_descriptor' + field_data:'getset_descriptor' + point_ids:'getset_descriptor' + point_ids_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellIdsOff(self) -> None: ... + def CellIdsOn(self) -> None: ... + def FieldDataOff(self) -> None: ... + def FieldDataOn(self) -> None: ... + def GetCellIds(self) -> int: ... + def GetCellIdsArrayName(self) -> str: ... + def GetFieldData(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointIds(self) -> int: ... + def GetPointIdsArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkIdFilter': ... + def PointIdsOff(self) -> None: ... + def PointIdsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIdFilter': ... + def SetCellIds(self, _arg:int) -> None: ... + def SetCellIdsArrayName(self, _arg:str) -> None: ... + def SetFieldData(self, _arg:int) -> None: ... + def SetPointIds(self, _arg:int) -> None: ... + def SetPointIdsArrayName(self, _arg:str) -> None: ... + +class vtkImageAppend(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + append_axis:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + preserve_extents:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAppendAxis(self) -> int: ... + @overload + def GetInput(self, idx:int) -> 'vtkDataObject': ... + @overload + def GetInput(self) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfInputs(self) -> int: ... + def GetPreserveExtents(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageAppend': ... + def PreserveExtentsOff(self) -> None: ... + def PreserveExtentsOn(self) -> None: ... + def ReplaceNthInputConnection(self, idx:int, input:'vtkAlgorithmOutput') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageAppend': ... + def SetAppendAxis(self, _arg:int) -> None: ... + @overload + def SetInputData(self, idx:int, input:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, input:'vtkDataObject') -> None: ... + def SetPreserveExtents(self, _arg:int) -> None: ... + +class vtkImageDataToExplicitStructuredGrid(vtkmodules.vtkCommonExecutionModel.vtkExplicitStructuredGridAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageDataToExplicitStructuredGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageDataToExplicitStructuredGrid': ... + +class vtkImplicitPolyDataDistance(vtkmodules.vtkCommonDataModel.vtkImplicitFunction): + input:'getset_descriptor' + m_time:'getset_descriptor' + no_closest_point:'getset_descriptor' + no_gradient:'getset_descriptor' + no_value:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateFunctionAndGetClosestPoint(self, x:MutableSequence[float], closestPoint:MutableSequence[float]) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], g:MutableSequence[float]) -> None: ... + def GetMTime(self) -> int: ... + def GetNoClosestPoint(self) -> Tuple[float, float, float]: ... + def GetNoGradient(self) -> Tuple[float, float, float]: ... + def GetNoValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTolerance(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitPolyDataDistance': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitPolyDataDistance': ... + def SetInput(self, input:'vtkPolyData') -> None: ... + @overload + def SetNoClosestPoint(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetNoClosestPoint(self, _arg:Sequence[float]) -> None: ... + @overload + def SetNoGradient(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetNoGradient(self, _arg:Sequence[float]) -> None: ... + def SetNoValue(self, _arg:float) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + +class vtkImplicitProjectOnPlaneDistance(vtkmodules.vtkCommonDataModel.vtkImplicitFunction): + class NormType(int): + L0:'NormType' + L2:'NormType' + input:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + norm:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def EvaluateFunction(self, x:MutableSequence[float]) -> float: ... + @overload + def EvaluateFunction(self, input:'vtkDataArray', output:'vtkDataArray') -> None: ... + @overload + def EvaluateFunction(self, x:float, y:float, z:float) -> float: ... + def EvaluateGradient(self, x:MutableSequence[float], g:MutableSequence[float]) -> None: ... + def GetLocator(self) -> 'vtkAbstractCellLocator': ... + def GetMTime(self) -> int: ... + def GetNorm(self) -> 'NormType': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTolerance(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitProjectOnPlaneDistance': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitProjectOnPlaneDistance': ... + def SetInput(self, input:'vtkPolyData') -> None: ... + def SetLocator(self, _arg:'vtkAbstractCellLocator') -> None: ... + @overload + def SetNorm(self, n:'NormType') -> None: ... + @overload + def SetNorm(self, n:int) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + +class vtkMarchingCubes(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + compute_gradients:'getset_descriptor' + compute_normals:'getset_descriptor' + compute_scalars:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeGradientsOff(self) -> None: ... + def ComputeGradientsOn(self) -> None: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def ComputeScalarsOff(self) -> None: ... + def ComputeScalarsOn(self) -> None: ... + def CreateDefaultLocator(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetComputeGradients(self) -> int: ... + def GetComputeNormals(self) -> int: ... + def GetComputeScalars(self) -> int: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMarchingCubes': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMarchingCubes': ... + def SetComputeGradients(self, _arg:int) -> None: ... + def SetComputeNormals(self, _arg:int) -> None: ... + def SetComputeScalars(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + +class vtkMarchingSquares(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + image_range:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLocator(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetImageRange(self) -> Tuple[int, int, int, int, int, int]: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMarchingSquares': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMarchingSquares': ... + @overload + def SetImageRange(self, data:Sequence[int]) -> None: ... + @overload + def SetImageRange(self, imin:int, imax:int, jmin:int, jmax:int, kmin:int, kmax:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + +class vtkMaskFields(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + class FieldLocation(int): ... + CELL_DATA:'FieldLocation' + OBJECT_DATA:'FieldLocation' + POINT_DATA:'FieldLocation' + def __init__(self, **properties:Any) -> None: ... + def CopyAllOff(self) -> None: ... + def CopyAllOn(self) -> None: ... + @overload + def CopyAttributeOff(self, attributeLocation:int, attributeType:int) -> None: ... + @overload + def CopyAttributeOff(self, attributeLoc:str, attributeType:str) -> None: ... + @overload + def CopyAttributeOn(self, attributeLocation:int, attributeType:int) -> None: ... + @overload + def CopyAttributeOn(self, attributeLoc:str, attributeType:str) -> None: ... + def CopyAttributesOff(self) -> None: ... + def CopyAttributesOn(self) -> None: ... + @overload + def CopyFieldOff(self, fieldLocation:int, name:str) -> None: ... + @overload + def CopyFieldOff(self, fieldLoc:str, name:str) -> None: ... + @overload + def CopyFieldOn(self, fieldLocation:int, name:str) -> None: ... + @overload + def CopyFieldOn(self, fieldLoc:str, name:str) -> None: ... + def CopyFieldsOff(self) -> None: ... + def CopyFieldsOn(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMaskFields': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMaskFields': ... + +class vtkMaskPoints(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class DistributionType(int): ... + RANDOMIZED_ID_STRIDES:'DistributionType' + RANDOM_SAMPLING:'DistributionType' + SPATIALLY_STRATIFIED:'DistributionType' + UNIFORM_SPATIAL_BOUNDS:'DistributionType' + UNIFORM_SPATIAL_SURFACE:'DistributionType' + UNIFORM_SPATIAL_VOLUME:'DistributionType' + generate_vertices:'getset_descriptor' + maximum_number_of_points:'getset_descriptor' + offset:'getset_descriptor' + on_ratio:'getset_descriptor' + output_points_precision:'getset_descriptor' + proportional_maximum_number_of_points:'getset_descriptor' + random_mode:'getset_descriptor' + random_mode_type:'getset_descriptor' + random_seed:'getset_descriptor' + single_vertex_per_cell:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateVerticesOff(self) -> None: ... + def GenerateVerticesOn(self) -> None: ... + def GetGenerateVertices(self) -> bool: ... + def GetMaximumNumberOfPoints(self) -> int: ... + def GetMaximumNumberOfPointsMaxValue(self) -> int: ... + def GetMaximumNumberOfPointsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffset(self) -> int: ... + def GetOffsetMaxValue(self) -> int: ... + def GetOffsetMinValue(self) -> int: ... + def GetOnRatio(self) -> int: ... + def GetOnRatioMaxValue(self) -> int: ... + def GetOnRatioMinValue(self) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetProportionalMaximumNumberOfPoints(self) -> bool: ... + def GetRandomMode(self) -> bool: ... + def GetRandomModeType(self) -> int: ... + def GetRandomModeTypeMaxValue(self) -> int: ... + def GetRandomModeTypeMinValue(self) -> int: ... + def GetRandomSeed(self) -> int: ... + def GetSingleVertexPerCell(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMaskPoints': ... + def ProportionalMaximumNumberOfPointsOff(self) -> None: ... + def ProportionalMaximumNumberOfPointsOn(self) -> None: ... + def RandomModeOff(self) -> None: ... + def RandomModeOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMaskPoints': ... + def SetGenerateVertices(self, _arg:bool) -> None: ... + def SetMaximumNumberOfPoints(self, _arg:int) -> None: ... + def SetOffset(self, _arg:int) -> None: ... + def SetOnRatio(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetProportionalMaximumNumberOfPoints(self, _arg:bool) -> None: ... + def SetRandomMode(self, _arg:bool) -> None: ... + def SetRandomModeType(self, _arg:int) -> None: ... + def SetRandomSeed(self, _arg:int) -> None: ... + def SetSingleVertexPerCell(self, _arg:bool) -> None: ... + def SingleVertexPerCellOff(self) -> None: ... + def SingleVertexPerCellOn(self) -> None: ... + +class vtkMaskPolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + offset:'getset_descriptor' + on_ratio:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffset(self) -> int: ... + def GetOffsetMaxValue(self) -> int: ... + def GetOffsetMinValue(self) -> int: ... + def GetOnRatio(self) -> int: ... + def GetOnRatioMaxValue(self) -> int: ... + def GetOnRatioMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMaskPolyData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMaskPolyData': ... + def SetOffset(self, _arg:int) -> None: ... + def SetOnRatio(self, _arg:int) -> None: ... + +class vtkMassProperties(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + kx:'getset_descriptor' + ky:'getset_descriptor' + kz:'getset_descriptor' + max_cell_area:'getset_descriptor' + min_cell_area:'getset_descriptor' + normalized_shape_index:'getset_descriptor' + surface_area:'getset_descriptor' + volume:'getset_descriptor' + volume_projected:'getset_descriptor' + volume_x:'getset_descriptor' + volume_y:'getset_descriptor' + volume_z:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetKx(self) -> float: ... + def GetKy(self) -> float: ... + def GetKz(self) -> float: ... + def GetMaxCellArea(self) -> float: ... + def GetMinCellArea(self) -> float: ... + def GetNormalizedShapeIndex(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSurfaceArea(self) -> float: ... + def GetVolume(self) -> float: ... + def GetVolumeProjected(self) -> float: ... + def GetVolumeX(self) -> float: ... + def GetVolumeY(self) -> float: ... + def GetVolumeZ(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMassProperties': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMassProperties': ... + +class vtkMergeDataObjectFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + data_object:'getset_descriptor' + data_object_input_data:'getset_descriptor' + output_field:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDataObject(self) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputField(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMergeDataObjectFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMergeDataObjectFilter': ... + def SetDataObjectInputData(self, object:'vtkDataObject') -> None: ... + def SetOutputField(self, _arg:int) -> None: ... + def SetOutputFieldToCellDataField(self) -> None: ... + def SetOutputFieldToDataObjectField(self) -> None: ... + def SetOutputFieldToPointDataField(self) -> None: ... + +class vtkMergeFields(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + class FieldLocations(int): ... + CELL_DATA:'FieldLocations' + DATA_OBJECT:'FieldLocations' + POINT_DATA:'FieldLocations' + number_of_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Merge(self, component:int, arrayName:str, sourceComp:int) -> None: ... + def NewInstance(self) -> 'vtkMergeFields': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMergeFields': ... + def SetNumberOfComponents(self, _arg:int) -> None: ... + @overload + def SetOutputField(self, name:str, fieldLoc:int) -> None: ... + @overload + def SetOutputField(self, name:str, fieldLoc:str) -> None: ... + +class vtkMergeFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + geometry:'getset_descriptor' + geometry_connection:'getset_descriptor' + geometry_input_data:'getset_descriptor' + normals:'getset_descriptor' + normals_connection:'getset_descriptor' + normals_data:'getset_descriptor' + scalars:'getset_descriptor' + scalars_connection:'getset_descriptor' + scalars_data:'getset_descriptor' + t_coords:'getset_descriptor' + t_coords_connection:'getset_descriptor' + t_coords_data:'getset_descriptor' + tensors:'getset_descriptor' + tensors_connection:'getset_descriptor' + tensors_data:'getset_descriptor' + vectors:'getset_descriptor' + vectors_connection:'getset_descriptor' + vectors_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddField(self, name:str, input:'vtkDataSet') -> None: ... + def GetGeometry(self) -> 'vtkDataSet': ... + def GetNormals(self) -> 'vtkDataSet': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScalars(self) -> 'vtkDataSet': ... + def GetTCoords(self) -> 'vtkDataSet': ... + def GetTensors(self) -> 'vtkDataSet': ... + def GetVectors(self) -> 'vtkDataSet': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMergeFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMergeFilter': ... + def SetGeometryConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetGeometryInputData(self, input:'vtkDataSet') -> None: ... + def SetNormalsConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetNormalsData(self, __a:'vtkDataSet') -> None: ... + def SetScalarsConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetScalarsData(self, __a:'vtkDataSet') -> None: ... + def SetTCoordsConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetTCoordsData(self, __a:'vtkDataSet') -> None: ... + def SetTensorsConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetTensorsData(self, __a:'vtkDataSet') -> None: ... + def SetVectorsConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetVectorsData(self, __a:'vtkDataSet') -> None: ... + +class vtkMoleculeAppend(vtkmodules.vtkCommonExecutionModel.vtkMoleculeAlgorithm): + input:'getset_descriptor' + merge_coincident_atoms:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetInput(self, idx:int) -> 'vtkDataObject': ... + @overload + def GetInput(self) -> 'vtkDataObject': ... + def GetMergeCoincidentAtoms(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergeCoincidentAtomsOff(self) -> None: ... + def MergeCoincidentAtomsOn(self) -> None: ... + def NewInstance(self) -> 'vtkMoleculeAppend': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMoleculeAppend': ... + def SetMergeCoincidentAtoms(self, _arg:bool) -> None: ... + +class vtkMultiObjectMassProperties(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + all_valid:'getset_descriptor' + number_of_objects:'getset_descriptor' + object_ids_array_name:'getset_descriptor' + skip_validity_check:'getset_descriptor' + total_area:'getset_descriptor' + total_volume:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAllValid(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfObjects(self) -> int: ... + def GetObjectIdsArrayName(self) -> str: ... + def GetSkipValidityCheck(self) -> int: ... + def GetTotalArea(self) -> float: ... + def GetTotalVolume(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMultiObjectMassProperties': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMultiObjectMassProperties': ... + def SetObjectIdsArrayName(self, arg:str) -> None: ... + def SetSkipValidityCheck(self, _arg:int) -> None: ... + def SkipValidityCheckOff(self) -> None: ... + def SkipValidityCheckOn(self) -> None: ... + +class vtkOrientPolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + auto_orient_normals:'getset_descriptor' + consistency:'getset_descriptor' + flip_normals:'getset_descriptor' + non_manifold_traversal:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutoOrientNormalsOff(self) -> None: ... + def AutoOrientNormalsOn(self) -> None: ... + def ConsistencyOff(self) -> None: ... + def ConsistencyOn(self) -> None: ... + def FlipNormalsOff(self) -> None: ... + def FlipNormalsOn(self) -> None: ... + def GetAutoOrientNormals(self) -> bool: ... + def GetConsistency(self) -> bool: ... + def GetFlipNormals(self) -> bool: ... + def GetNonManifoldTraversal(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOrientPolyData': ... + def NonManifoldTraversalOff(self) -> None: ... + def NonManifoldTraversalOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOrientPolyData': ... + def SetAutoOrientNormals(self, _arg:bool) -> None: ... + def SetConsistency(self, _arg:bool) -> None: ... + def SetFlipNormals(self, _arg:bool) -> None: ... + def SetNonManifoldTraversal(self, _arg:bool) -> None: ... + +class vtkPackLabels(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + class DefaultScalarType(int): ... + class SortBy(int): ... + SORT_BY_LABEL_COUNT:'SortBy' + SORT_BY_LABEL_VALUE:'SortBy' + VTK_DEFAULT_TYPE:'DefaultScalarType' + background_value:'getset_descriptor' + labels:'getset_descriptor' + labels_count:'getset_descriptor' + number_of_labels:'getset_descriptor' + output_scalar_type:'getset_descriptor' + pass_cell_data:'getset_descriptor' + pass_field_data:'getset_descriptor' + pass_point_data:'getset_descriptor' + sort_by:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBackgroundValue(self) -> int: ... + def GetLabels(self) -> 'vtkDataArray': ... + def GetLabelsCount(self) -> 'vtkIdTypeArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLabels(self) -> int: ... + def GetOutputScalarType(self) -> int: ... + def GetPassCellData(self) -> bool: ... + def GetPassFieldData(self) -> bool: ... + def GetPassPointData(self) -> bool: ... + def GetSortBy(self) -> int: ... + def GetSortByMaxValue(self) -> int: ... + def GetSortByMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPackLabels': ... + def PassCellDataOff(self) -> None: ... + def PassCellDataOn(self) -> None: ... + def PassFieldDataOff(self) -> None: ... + def PassFieldDataOn(self) -> None: ... + def PassPointDataOff(self) -> None: ... + def PassPointDataOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPackLabels': ... + def SetBackgroundValue(self, _arg:int) -> None: ... + def SetOutputScalarType(self, _arg:int) -> None: ... + def SetOutputScalarTypeToDefault(self) -> None: ... + def SetOutputScalarTypeToUnsignedChar(self) -> None: ... + def SetOutputScalarTypeToUnsignedInt(self) -> None: ... + def SetOutputScalarTypeToUnsignedLong(self) -> None: ... + def SetOutputScalarTypeToUnsignedShort(self) -> None: ... + def SetPassCellData(self, _arg:bool) -> None: ... + def SetPassFieldData(self, _arg:bool) -> None: ... + def SetPassPointData(self, _arg:bool) -> None: ... + def SetSortBy(self, _arg:int) -> None: ... + def SortByLabelCount(self) -> None: ... + def SortByLabelValue(self) -> None: ... + +class vtkPassThrough(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + allow_null_input:'getset_descriptor' + deep_copy_input:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllowNullInputOff(self) -> None: ... + def AllowNullInputOn(self) -> None: ... + def DeepCopyInputOff(self) -> None: ... + def DeepCopyInputOn(self) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetAllowNullInput(self) -> bool: ... + def GetDeepCopyInput(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPassThrough': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPassThrough': ... + def SetAllowNullInput(self, _arg:bool) -> None: ... + def SetDeepCopyInput(self, _arg:int) -> None: ... + +class vtkPlaneCutter(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + build_hierarchy:'getset_descriptor' + build_tree:'getset_descriptor' + compute_normals:'getset_descriptor' + generate_polygons:'getset_descriptor' + interpolate_attributes:'getset_descriptor' + m_time:'getset_descriptor' + merge_points:'getset_descriptor' + output_points_precision:'getset_descriptor' + plane:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildHierarchyOff(self) -> None: ... + def BuildHierarchyOn(self) -> None: ... + def BuildTreeOff(self) -> None: ... + def BuildTreeOn(self) -> None: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def GeneratePolygonsOff(self) -> None: ... + def GeneratePolygonsOn(self) -> None: ... + def GetBuildHierarchy(self) -> bool: ... + def GetBuildTree(self) -> bool: ... + def GetComputeNormals(self) -> bool: ... + def GetGeneratePolygons(self) -> bool: ... + def GetInterpolateAttributes(self) -> bool: ... + def GetMTime(self) -> int: ... + def GetMergePoints(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetOutputPointsPrecisionMaxValue(self) -> int: ... + def GetOutputPointsPrecisionMinValue(self) -> int: ... + def GetPlane(self) -> 'vtkPlane': ... + def InterpolateAttributesOff(self) -> None: ... + def InterpolateAttributesOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergePointsOff(self) -> None: ... + def MergePointsOn(self) -> None: ... + def NewInstance(self) -> 'vtkPlaneCutter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlaneCutter': ... + def SetBuildHierarchy(self, _arg:bool) -> None: ... + def SetBuildTree(self, _arg:bool) -> None: ... + def SetComputeNormals(self, _arg:bool) -> None: ... + def SetGeneratePolygons(self, _arg:bool) -> None: ... + def SetInterpolateAttributes(self, _arg:bool) -> None: ... + def SetMergePoints(self, _arg:bool) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetPlane(self, __a:'vtkPlane') -> None: ... + +class vtkPointDataToCellData(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + categorical_data:'getset_descriptor' + pass_point_data:'getset_descriptor' + process_all_arrays:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddPointDataArray(self, name:str) -> None: ... + def CategoricalDataOff(self) -> None: ... + def CategoricalDataOn(self) -> None: ... + def ClearPointDataArrays(self) -> None: ... + def GetCategoricalData(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassPointData(self) -> bool: ... + def GetProcessAllArrays(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointDataToCellData': ... + def PassPointDataOff(self) -> None: ... + def PassPointDataOn(self) -> None: ... + def ProcessAllArraysOff(self) -> None: ... + def ProcessAllArraysOn(self) -> None: ... + def RemovePointDataArray(self, name:str) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointDataToCellData': ... + def SetCategoricalData(self, _arg:bool) -> None: ... + def SetPassPointData(self, _arg:bool) -> None: ... + def SetProcessAllArrays(self, _arg:bool) -> None: ... + +class vtkPolyDataConnectivityFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + closest_point:'getset_descriptor' + color_regions:'getset_descriptor' + extraction_mode:'getset_descriptor' + full_scalar_connectivity:'getset_descriptor' + mark_visited_point_ids:'getset_descriptor' + number_of_extracted_regions:'getset_descriptor' + output_points_precision:'getset_descriptor' + region_sizes:'getset_descriptor' + scalar_connectivity:'getset_descriptor' + scalar_range:'getset_descriptor' + visited_point_ids:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddSeed(self, id:int) -> None: ... + def AddSpecifiedRegion(self, id:int) -> None: ... + def ColorRegionsOff(self) -> None: ... + def ColorRegionsOn(self) -> None: ... + def DeleteSeed(self, id:int) -> None: ... + def DeleteSpecifiedRegion(self, id:int) -> None: ... + def FullScalarConnectivityOff(self) -> None: ... + def FullScalarConnectivityOn(self) -> None: ... + def GetClosestPoint(self) -> Tuple[float, float, float]: ... + def GetColorRegions(self) -> int: ... + def GetExtractionMode(self) -> int: ... + def GetExtractionModeAsString(self) -> str: ... + def GetExtractionModeMaxValue(self) -> int: ... + def GetExtractionModeMinValue(self) -> int: ... + def GetFullScalarConnectivity(self) -> int: ... + def GetMarkVisitedPointIds(self) -> int: ... + def GetNumberOfExtractedRegions(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetRegionSizes(self) -> 'vtkIdTypeArray': ... + def GetScalarConnectivity(self) -> int: ... + def GetScalarRange(self) -> Tuple[float, float]: ... + def GetVisitedPointIds(self) -> 'vtkIdList': ... + def InitializeSeedList(self) -> None: ... + def InitializeSpecifiedRegionList(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MarkVisitedPointIdsOff(self) -> None: ... + def MarkVisitedPointIdsOn(self) -> None: ... + def NewInstance(self) -> 'vtkPolyDataConnectivityFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataConnectivityFilter': ... + def ScalarConnectivityOff(self) -> None: ... + def ScalarConnectivityOn(self) -> None: ... + @overload + def SetClosestPoint(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetClosestPoint(self, _arg:Sequence[float]) -> None: ... + def SetColorRegions(self, _arg:int) -> None: ... + def SetExtractionMode(self, _arg:int) -> None: ... + def SetExtractionModeToAllRegions(self) -> None: ... + def SetExtractionModeToCellSeededRegions(self) -> None: ... + def SetExtractionModeToClosestPointRegion(self) -> None: ... + def SetExtractionModeToLargestRegion(self) -> None: ... + def SetExtractionModeToPointSeededRegions(self) -> None: ... + def SetExtractionModeToSpecifiedRegions(self) -> None: ... + def SetFullScalarConnectivity(self, _arg:int) -> None: ... + def SetMarkVisitedPointIds(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetScalarConnectivity(self, _arg:int) -> None: ... + @overload + def SetScalarRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetScalarRange(self, _arg:Sequence[float]) -> None: ... + +class vtkPolyDataEdgeConnectivityFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class RegionGrowingType(int): ... + LargeRegions:'RegionGrowingType' + RegionGrowingOff:'RegionGrowingType' + SmallRegions:'RegionGrowingType' + barrier_edge_length:'getset_descriptor' + barrier_edges:'getset_descriptor' + cell_region_areas:'getset_descriptor' + closest_point:'getset_descriptor' + color_regions:'getset_descriptor' + extraction_mode:'getset_descriptor' + large_region_threshold:'getset_descriptor' + number_of_extracted_regions:'getset_descriptor' + number_of_specified_regions:'getset_descriptor' + output_points_precision:'getset_descriptor' + region_growing:'getset_descriptor' + region_sizes:'getset_descriptor' + scalar_connectivity:'getset_descriptor' + scalar_range:'getset_descriptor' + source:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + total_area:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddSeed(self, id:int) -> None: ... + def AddSpecifiedRegion(self, id:int) -> None: ... + def BarrierEdgesOff(self) -> None: ... + def BarrierEdgesOn(self) -> None: ... + def CellRegionAreasOff(self) -> None: ... + def CellRegionAreasOn(self) -> None: ... + def ColorRegionsOff(self) -> None: ... + def ColorRegionsOn(self) -> None: ... + def DeleteSeed(self, id:int) -> None: ... + def DeleteSpecifiedRegion(self, id:int) -> None: ... + def GetBarrierEdgeLength(self) -> Tuple[float, float]: ... + def GetBarrierEdges(self) -> int: ... + def GetCellRegionAreas(self) -> int: ... + def GetClosestPoint(self) -> Tuple[float, float, float]: ... + def GetColorRegions(self) -> int: ... + def GetExtractionMode(self) -> int: ... + def GetExtractionModeAsString(self) -> str: ... + def GetExtractionModeMaxValue(self) -> int: ... + def GetExtractionModeMinValue(self) -> int: ... + def GetLargeRegionThreshold(self) -> float: ... + def GetLargeRegionThresholdMaxValue(self) -> float: ... + def GetLargeRegionThresholdMinValue(self) -> float: ... + def GetNumberOfExtractedRegions(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSpecifiedRegions(self) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetRegionGrowing(self) -> int: ... + def GetRegionGrowingMaxValue(self) -> int: ... + def GetRegionGrowingMinValue(self) -> int: ... + def GetRegionSizes(self) -> 'vtkIdTypeArray': ... + def GetScalarConnectivity(self) -> int: ... + def GetScalarRange(self) -> Tuple[float, float]: ... + def GetSource(self) -> 'vtkPolyData': ... + def GetTotalArea(self) -> float: ... + def GrowLargeRegionsOff(self) -> None: ... + def GrowLargeRegionsOn(self) -> None: ... + def GrowSmallRegionsOff(self) -> None: ... + def GrowSmallRegionsOn(self) -> None: ... + def InitializeSeedList(self) -> None: ... + def InitializeSpecifiedRegionList(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyDataEdgeConnectivityFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataEdgeConnectivityFilter': ... + def ScalarConnectivityOff(self) -> None: ... + def ScalarConnectivityOn(self) -> None: ... + @overload + def SetBarrierEdgeLength(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetBarrierEdgeLength(self, _arg:Sequence[float]) -> None: ... + def SetBarrierEdges(self, _arg:int) -> None: ... + def SetCellRegionAreas(self, _arg:int) -> None: ... + @overload + def SetClosestPoint(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetClosestPoint(self, _arg:Sequence[float]) -> None: ... + def SetColorRegions(self, _arg:int) -> None: ... + def SetExtractionMode(self, _arg:int) -> None: ... + def SetExtractionModeToAllRegions(self) -> None: ... + def SetExtractionModeToCellSeededRegions(self) -> None: ... + def SetExtractionModeToClosestPointRegion(self) -> None: ... + def SetExtractionModeToLargeRegions(self) -> None: ... + def SetExtractionModeToLargestRegion(self) -> None: ... + def SetExtractionModeToPointSeededRegions(self) -> None: ... + def SetExtractionModeToSpecifiedRegions(self) -> None: ... + def SetLargeRegionThreshold(self, _arg:float) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetRegionGrowing(self, _arg:int) -> None: ... + def SetRegionGrowingOff(self) -> None: ... + def SetRegionGrowingToLargeRegions(self) -> None: ... + def SetRegionGrowingToSmallRegions(self) -> None: ... + def SetScalarConnectivity(self, _arg:int) -> None: ... + @overload + def SetScalarRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetScalarRange(self, _arg:Sequence[float]) -> None: ... + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, __a:'vtkPolyData') -> None: ... + +class vtkPolyDataNormals(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + auto_orient_normals:'getset_descriptor' + compute_cell_normals:'getset_descriptor' + compute_point_normals:'getset_descriptor' + consistency:'getset_descriptor' + feature_angle:'getset_descriptor' + flip_normals:'getset_descriptor' + non_manifold_traversal:'getset_descriptor' + output_points_precision:'getset_descriptor' + splitting:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutoOrientNormalsOff(self) -> None: ... + def AutoOrientNormalsOn(self) -> None: ... + def ComputeCellNormalsOff(self) -> None: ... + def ComputeCellNormalsOn(self) -> None: ... + def ComputePointNormalsOff(self) -> None: ... + def ComputePointNormalsOn(self) -> None: ... + def ConsistencyOff(self) -> None: ... + def ConsistencyOn(self) -> None: ... + def FlipNormalsOff(self) -> None: ... + def FlipNormalsOn(self) -> None: ... + def GetAutoOrientNormals(self) -> int: ... + @staticmethod + def GetCellNormals(data:'vtkPolyData') -> 'vtkFloatArray': ... + def GetComputeCellNormals(self) -> int: ... + def GetComputePointNormals(self) -> int: ... + def GetConsistency(self) -> int: ... + def GetFeatureAngle(self) -> float: ... + def GetFeatureAngleMaxValue(self) -> float: ... + def GetFeatureAngleMinValue(self) -> float: ... + def GetFlipNormals(self) -> int: ... + def GetNonManifoldTraversal(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetOutputPointsPrecisionMaxValue(self) -> int: ... + def GetOutputPointsPrecisionMinValue(self) -> int: ... + @staticmethod + def GetPointNormals(data:'vtkPolyData', cellNormals:'vtkFloatArray', flipDirection:float=1.0) -> 'vtkFloatArray': ... + def GetSplitting(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyDataNormals': ... + def NonManifoldTraversalOff(self) -> None: ... + def NonManifoldTraversalOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataNormals': ... + def SetAutoOrientNormals(self, _arg:int) -> None: ... + def SetComputeCellNormals(self, _arg:int) -> None: ... + def SetComputePointNormals(self, _arg:int) -> None: ... + def SetConsistency(self, _arg:int) -> None: ... + def SetFeatureAngle(self, _arg:float) -> None: ... + def SetFlipNormals(self, _arg:int) -> None: ... + def SetNonManifoldTraversal(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetSplitting(self, _arg:int) -> None: ... + def SplittingOff(self) -> None: ... + def SplittingOn(self) -> None: ... + +class vtkPolyDataPlaneClipper(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + batch_size:'getset_descriptor' + cap:'getset_descriptor' + capping:'getset_descriptor' + clipping_loops:'getset_descriptor' + m_time:'getset_descriptor' + output_points_precision:'getset_descriptor' + pass_cap_point_data:'getset_descriptor' + plane:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def CanFullyProcessDataObject(object:'vtkDataObject') -> bool: ... + def CappingOff(self) -> None: ... + def CappingOn(self) -> None: ... + def ClippingLoopsOff(self) -> None: ... + def ClippingLoopsOn(self) -> None: ... + def GetBatchSize(self) -> int: ... + def GetBatchSizeMaxValue(self) -> int: ... + def GetBatchSizeMinValue(self) -> int: ... + def GetCap(self) -> 'vtkPolyData': ... + def GetCapping(self) -> bool: ... + def GetClippingLoops(self) -> bool: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPassCapPointData(self) -> bool: ... + def GetPlane(self) -> 'vtkPlane': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyDataPlaneClipper': ... + def PassCapPointDataOff(self) -> None: ... + def PassCapPointDataOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataPlaneClipper': ... + def SetBatchSize(self, _arg:int) -> None: ... + def SetCapping(self, _arg:bool) -> None: ... + def SetClippingLoops(self, _arg:bool) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetPassCapPointData(self, _arg:bool) -> None: ... + def SetPlane(self, __a:'vtkPlane') -> None: ... + +class vtkPolyDataPlaneCutter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + batch_size:'getset_descriptor' + compute_normals:'getset_descriptor' + interpolate_attributes:'getset_descriptor' + m_time:'getset_descriptor' + output_points_precision:'getset_descriptor' + plane:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def CanFullyProcessDataObject(object:'vtkDataObject') -> bool: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def GetBatchSize(self) -> int: ... + def GetBatchSizeMaxValue(self) -> int: ... + def GetBatchSizeMinValue(self) -> int: ... + def GetComputeNormals(self) -> bool: ... + def GetInterpolateAttributes(self) -> bool: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPlane(self) -> 'vtkPlane': ... + def InterpolateAttributesOff(self) -> None: ... + def InterpolateAttributesOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyDataPlaneCutter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataPlaneCutter': ... + def SetBatchSize(self, _arg:int) -> None: ... + def SetComputeNormals(self, _arg:bool) -> None: ... + def SetInterpolateAttributes(self, _arg:bool) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetPlane(self, __a:'vtkPlane') -> None: ... + +class vtkPolyDataTangents(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + compute_cell_tangents:'getset_descriptor' + compute_point_tangents:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeCellTangentsOff(self) -> None: ... + def ComputeCellTangentsOn(self) -> None: ... + def ComputePointTangentsOff(self) -> None: ... + def ComputePointTangentsOn(self) -> None: ... + def GetComputeCellTangents(self) -> bool: ... + def GetComputePointTangents(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyDataTangents': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataTangents': ... + def SetComputeCellTangents(self, _arg:bool) -> None: ... + def SetComputePointTangents(self, _arg:bool) -> None: ... + +class vtkPolyDataToUnstructuredGrid(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def CanBeProcessedFast(polyData:'vtkPolyData') -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyDataToUnstructuredGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataToUnstructuredGrid': ... + +class vtkQuadricClustering(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + auto_adjust_number_of_divisions:'getset_descriptor' + copy_cell_data:'getset_descriptor' + division_origin:'getset_descriptor' + division_spacing:'getset_descriptor' + feature_edges:'getset_descriptor' + feature_points_angle:'getset_descriptor' + number_of_divisions:'getset_descriptor' + number_of_x_divisions:'getset_descriptor' + number_of_y_divisions:'getset_descriptor' + number_of_z_divisions:'getset_descriptor' + prevent_duplicate_cells:'getset_descriptor' + use_feature_edges:'getset_descriptor' + use_feature_points:'getset_descriptor' + use_input_points:'getset_descriptor' + use_internal_triangles:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Append(self, piece:'vtkPolyData') -> None: ... + def AutoAdjustNumberOfDivisionsOff(self) -> None: ... + def AutoAdjustNumberOfDivisionsOn(self) -> None: ... + def CopyCellDataOff(self) -> None: ... + def CopyCellDataOn(self) -> None: ... + def EndAppend(self) -> None: ... + def GetAutoAdjustNumberOfDivisions(self) -> int: ... + def GetCopyCellData(self) -> int: ... + def GetDivisionOrigin(self) -> Tuple[float, float, float]: ... + def GetDivisionSpacing(self) -> Tuple[float, float, float]: ... + def GetFeatureEdges(self) -> 'vtkFeatureEdges': ... + def GetFeaturePointsAngle(self) -> float: ... + def GetFeaturePointsAngleMaxValue(self) -> float: ... + def GetFeaturePointsAngleMinValue(self) -> float: ... + @overload + def GetNumberOfDivisions(self) -> Tuple[int, int, int]: ... + @overload + def GetNumberOfDivisions(self, div:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfXDivisions(self) -> int: ... + def GetNumberOfYDivisions(self) -> int: ... + def GetNumberOfZDivisions(self) -> int: ... + def GetPreventDuplicateCells(self) -> int: ... + def GetUseFeatureEdges(self) -> int: ... + def GetUseFeaturePoints(self) -> int: ... + def GetUseInputPoints(self) -> int: ... + def GetUseInternalTriangles(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuadricClustering': ... + def PreventDuplicateCellsOff(self) -> None: ... + def PreventDuplicateCellsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadricClustering': ... + def SetAutoAdjustNumberOfDivisions(self, _arg:int) -> None: ... + def SetCopyCellData(self, _arg:int) -> None: ... + @overload + def SetDivisionOrigin(self, x:float, y:float, z:float) -> None: ... + @overload + def SetDivisionOrigin(self, o:MutableSequence[float]) -> None: ... + @overload + def SetDivisionSpacing(self, x:float, y:float, z:float) -> None: ... + @overload + def SetDivisionSpacing(self, s:MutableSequence[float]) -> None: ... + def SetFeaturePointsAngle(self, _arg:float) -> None: ... + @overload + def SetNumberOfDivisions(self, div:MutableSequence[int]) -> None: ... + @overload + def SetNumberOfDivisions(self, div0:int, div1:int, div2:int) -> None: ... + def SetNumberOfXDivisions(self, num:int) -> None: ... + def SetNumberOfYDivisions(self, num:int) -> None: ... + def SetNumberOfZDivisions(self, num:int) -> None: ... + def SetPreventDuplicateCells(self, _arg:int) -> None: ... + def SetUseFeatureEdges(self, _arg:int) -> None: ... + def SetUseFeaturePoints(self, _arg:int) -> None: ... + def SetUseInputPoints(self, _arg:int) -> None: ... + def SetUseInternalTriangles(self, _arg:int) -> None: ... + @overload + def StartAppend(self, bounds:MutableSequence[float]) -> None: ... + @overload + def StartAppend(self, x0:float, x1:float, y0:float, y1:float, z0:float, z1:float) -> None: ... + def UseFeatureEdgesOff(self) -> None: ... + def UseFeatureEdgesOn(self) -> None: ... + def UseFeaturePointsOff(self) -> None: ... + def UseFeaturePointsOn(self) -> None: ... + def UseInputPointsOff(self) -> None: ... + def UseInputPointsOn(self) -> None: ... + def UseInternalTrianglesOff(self) -> None: ... + def UseInternalTrianglesOn(self) -> None: ... + +class vtkQuadricDecimation(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + actual_reduction:'getset_descriptor' + attribute_error_metric:'getset_descriptor' + boundary_weight_factor:'getset_descriptor' + map_point_data:'getset_descriptor' + maximum_error:'getset_descriptor' + normals_attribute:'getset_descriptor' + normals_weight:'getset_descriptor' + regularization:'getset_descriptor' + regularize:'getset_descriptor' + scalars_attribute:'getset_descriptor' + scalars_weight:'getset_descriptor' + t_coords_attribute:'getset_descriptor' + t_coords_weight:'getset_descriptor' + target_reduction:'getset_descriptor' + tensors_attribute:'getset_descriptor' + tensors_weight:'getset_descriptor' + vectors_attribute:'getset_descriptor' + vectors_weight:'getset_descriptor' + volume_preservation:'getset_descriptor' + weigh_boundary_constraints_by_length:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AttributeErrorMetricOff(self) -> None: ... + def AttributeErrorMetricOn(self) -> None: ... + def GetActualReduction(self) -> float: ... + def GetAttributeErrorMetric(self) -> int: ... + def GetBoundaryWeightFactor(self) -> float: ... + def GetMapPointData(self) -> bool: ... + def GetMaximumError(self) -> float: ... + def GetNormalsAttribute(self) -> int: ... + def GetNormalsWeight(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRegularization(self) -> float: ... + def GetRegularize(self) -> int: ... + def GetScalarsAttribute(self) -> int: ... + def GetScalarsWeight(self) -> float: ... + def GetTCoordsAttribute(self) -> int: ... + def GetTCoordsWeight(self) -> float: ... + def GetTargetReduction(self) -> float: ... + def GetTargetReductionMaxValue(self) -> float: ... + def GetTargetReductionMinValue(self) -> float: ... + def GetTensorsAttribute(self) -> int: ... + def GetTensorsWeight(self) -> float: ... + def GetVectorsAttribute(self) -> int: ... + def GetVectorsWeight(self) -> float: ... + def GetVolumePreservation(self) -> int: ... + def GetWeighBoundaryConstraintsByLength(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MapPointDataOff(self) -> None: ... + def MapPointDataOn(self) -> None: ... + def NewInstance(self) -> 'vtkQuadricDecimation': ... + def NormalsAttributeOff(self) -> None: ... + def NormalsAttributeOn(self) -> None: ... + def RegularizeOff(self) -> None: ... + def RegularizeOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadricDecimation': ... + def ScalarsAttributeOff(self) -> None: ... + def ScalarsAttributeOn(self) -> None: ... + def SetAttributeErrorMetric(self, _arg:int) -> None: ... + def SetBoundaryWeightFactor(self, _arg:float) -> None: ... + def SetMapPointData(self, _arg:bool) -> None: ... + def SetMaximumError(self, _arg:float) -> None: ... + def SetNormalsAttribute(self, _arg:int) -> None: ... + def SetNormalsWeight(self, _arg:float) -> None: ... + def SetRegularization(self, _arg:float) -> None: ... + def SetRegularize(self, _arg:int) -> None: ... + def SetScalarsAttribute(self, _arg:int) -> None: ... + def SetScalarsWeight(self, _arg:float) -> None: ... + def SetTCoordsAttribute(self, _arg:int) -> None: ... + def SetTCoordsWeight(self, _arg:float) -> None: ... + def SetTargetReduction(self, _arg:float) -> None: ... + def SetTensorsAttribute(self, _arg:int) -> None: ... + def SetTensorsWeight(self, _arg:float) -> None: ... + def SetVectorsAttribute(self, _arg:int) -> None: ... + def SetVectorsWeight(self, _arg:float) -> None: ... + def SetVolumePreservation(self, _arg:int) -> None: ... + def SetWeighBoundaryConstraintsByLength(self, _arg:int) -> None: ... + def TCoordsAttributeOff(self) -> None: ... + def TCoordsAttributeOn(self) -> None: ... + def TensorsAttributeOff(self) -> None: ... + def TensorsAttributeOn(self) -> None: ... + def VectorsAttributeOff(self) -> None: ... + def VectorsAttributeOn(self) -> None: ... + def VolumePreservationOff(self) -> None: ... + def VolumePreservationOn(self) -> None: ... + def WeighBoundaryConstraintsByLengthOff(self) -> None: ... + def WeighBoundaryConstraintsByLengthOn(self) -> None: ... + +class vtkRearrangeFields(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + class FieldType(int): ... + class FieldLocation(int): ... + class OperationType(int): ... + ATTRIBUTE:'FieldType' + CELL_DATA:'FieldLocation' + COPY:'OperationType' + DATA_OBJECT:'FieldLocation' + MOVE:'OperationType' + NAME:'FieldType' + POINT_DATA:'FieldLocation' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddOperation(self, operationType:int, attributeType:int, fromFieldLoc:int, toFieldLoc:int) -> int: ... + @overload + def AddOperation(self, operationType:int, name:str, fromFieldLoc:int, toFieldLoc:int) -> int: ... + @overload + def AddOperation(self, operationType:str, attributeType:str, fromFieldLoc:str, toFieldLoc:str) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRearrangeFields': ... + def RemoveAllOperations(self) -> None: ... + @overload + def RemoveOperation(self, operationId:int) -> int: ... + @overload + def RemoveOperation(self, operationType:int, attributeType:int, fromFieldLoc:int, toFieldLoc:int) -> int: ... + @overload + def RemoveOperation(self, operationType:int, name:str, fromFieldLoc:int, toFieldLoc:int) -> int: ... + @overload + def RemoveOperation(self, operationType:str, attributeType:str, fromFieldLoc:str, toFieldLoc:str) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRearrangeFields': ... + +class vtkRectilinearSynchronizedTemplates(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + array_component:'getset_descriptor' + compute_gradients:'getset_descriptor' + compute_normals:'getset_descriptor' + compute_scalars:'getset_descriptor' + generate_triangles:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeGradientsOff(self) -> None: ... + def ComputeGradientsOn(self) -> None: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def ComputeScalarsOff(self) -> None: ... + def ComputeScalarsOn(self) -> None: ... + def ComputeSpacing(self, data:'vtkRectilinearGrid', i:int, j:int, k:int, extent:MutableSequence[int], spacing:MutableSequence[float]) -> None: ... + def GenerateTrianglesOff(self) -> None: ... + def GenerateTrianglesOn(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetArrayComponent(self) -> int: ... + def GetComputeGradients(self) -> int: ... + def GetComputeNormals(self) -> int: ... + def GetComputeScalars(self) -> int: ... + def GetGenerateTriangles(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRectilinearSynchronizedTemplates': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRectilinearSynchronizedTemplates': ... + def SetArrayComponent(self, _arg:int) -> None: ... + def SetComputeGradients(self, _arg:int) -> None: ... + def SetComputeNormals(self, _arg:int) -> None: ... + def SetComputeScalars(self, _arg:int) -> None: ... + def SetGenerateTriangles(self, _arg:int) -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + +class vtkRemoveDuplicatePolys(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRemoveDuplicatePolys': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRemoveDuplicatePolys': ... + +class vtkRemoveUnusedPoints(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + generate_original_point_ids:'getset_descriptor' + original_point_ids_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateOriginalPointIdsOff(self) -> None: ... + def GenerateOriginalPointIdsOn(self) -> None: ... + def GetGenerateOriginalPointIds(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOriginalPointIdsArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRemoveUnusedPoints': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRemoveUnusedPoints': ... + def SetGenerateOriginalPointIds(self, _arg:bool) -> None: ... + def SetOriginalPointIdsArrayName(self, _arg:str) -> None: ... + +class vtkResampleToImage(vtkmodules.vtkCommonExecutionModel.vtkAlgorithm): + mask_array_name:'getset_descriptor' + output:'getset_descriptor' + sampling_bounds:'getset_descriptor' + sampling_dimensions:'getset_descriptor' + use_input_bounds:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaskArrayName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutput(self) -> 'vtkImageData': ... + def GetSamplingBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetSamplingDimensions(self) -> Tuple[int, int, int]: ... + def GetUseInputBounds(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkResampleToImage': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkResampleToImage': ... + @overload + def SetSamplingBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetSamplingBounds(self, _arg:Sequence[float]) -> None: ... + @overload + def SetSamplingDimensions(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetSamplingDimensions(self, _arg:Sequence[int]) -> None: ... + def SetUseInputBounds(self, _arg:bool) -> None: ... + def UseInputBoundsOff(self) -> None: ... + def UseInputBoundsOn(self) -> None: ... + +class vtkResampleWithDataSet(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + categorical_data:'getset_descriptor' + cell_locator_prototype:'getset_descriptor' + compute_tolerance:'getset_descriptor' + m_time:'getset_descriptor' + mark_blank_points_and_cells:'getset_descriptor' + pass_cell_arrays:'getset_descriptor' + pass_field_arrays:'getset_descriptor' + pass_partial_arrays:'getset_descriptor' + pass_point_arrays:'getset_descriptor' + snap_to_cell_with_closest_point:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + tolerance:'getset_descriptor' + use_implicit_arrays:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeToleranceOff(self) -> None: ... + def ComputeToleranceOn(self) -> None: ... + def GetCategoricalData(self) -> bool: ... + def GetCellLocatorPrototype(self) -> 'vtkAbstractCellLocator': ... + def GetComputeTolerance(self) -> bool: ... + def GetMTime(self) -> int: ... + def GetMarkBlankPointsAndCells(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassCellArrays(self) -> bool: ... + def GetPassFieldArrays(self) -> bool: ... + def GetPassPartialArrays(self) -> bool: ... + def GetPassPointArrays(self) -> bool: ... + def GetSnapToCellWithClosestPoint(self) -> bool: ... + def GetTolerance(self) -> float: ... + def GetUseImplicitArrays(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MarkBlankPointsAndCellsOff(self) -> None: ... + def MarkBlankPointsAndCellsOn(self) -> None: ... + def NewInstance(self) -> 'vtkResampleWithDataSet': ... + def PassCellArraysOff(self) -> None: ... + def PassCellArraysOn(self) -> None: ... + def PassFieldArraysOff(self) -> None: ... + def PassFieldArraysOn(self) -> None: ... + def PassPartialArraysOff(self) -> None: ... + def PassPartialArraysOn(self) -> None: ... + def PassPointArraysOff(self) -> None: ... + def PassPointArraysOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkResampleWithDataSet': ... + def SetCategoricalData(self, arg:bool) -> None: ... + def SetCellLocatorPrototype(self, __a:'vtkAbstractCellLocator') -> None: ... + def SetComputeTolerance(self, arg:bool) -> None: ... + def SetMarkBlankPointsAndCells(self, _arg:bool) -> None: ... + def SetPassCellArrays(self, arg:bool) -> None: ... + def SetPassFieldArrays(self, arg:bool) -> None: ... + def SetPassPartialArrays(self, arg:bool) -> None: ... + def SetPassPointArrays(self, arg:bool) -> None: ... + def SetSnapToCellWithClosestPoint(self, arg:bool) -> None: ... + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, source:'vtkDataObject') -> None: ... + def SetTolerance(self, arg:float) -> None: ... + def SetUseImplicitArrays(self, arg:bool) -> None: ... + def SnapToCellWithClosestPointOff(self) -> None: ... + def SnapToCellWithClosestPointOn(self) -> None: ... + def UseImplicitArraysOff(self) -> None: ... + def UseImplicitArraysOn(self) -> None: ... + +class vtkReverseSense(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + reverse_cells:'getset_descriptor' + reverse_normals:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReverseCells(self) -> int: ... + def GetReverseNormals(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkReverseSense': ... + def ReverseCellsOff(self) -> None: ... + def ReverseCellsOn(self) -> None: ... + def ReverseNormalsOff(self) -> None: ... + def ReverseNormalsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkReverseSense': ... + def SetReverseCells(self, _arg:int) -> None: ... + def SetReverseNormals(self, _arg:int) -> None: ... + +class vtkSimpleElevationFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + vector:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVector(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSimpleElevationFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSimpleElevationFilter': ... + @overload + def SetVector(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetVector(self, _arg:Sequence[float]) -> None: ... + +class vtkSmoothPolyDataFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + boundary_smoothing:'getset_descriptor' + convergence:'getset_descriptor' + edge_angle:'getset_descriptor' + feature_angle:'getset_descriptor' + feature_edge_smoothing:'getset_descriptor' + generate_error_scalars:'getset_descriptor' + generate_error_vectors:'getset_descriptor' + number_of_iterations:'getset_descriptor' + number_of_iterations_max_value:'getset_descriptor' + number_of_iterations_min_value:'getset_descriptor' + output_points_precision:'getset_descriptor' + relaxation_factor:'getset_descriptor' + source:'getset_descriptor' + source_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BoundarySmoothingOff(self) -> None: ... + def BoundarySmoothingOn(self) -> None: ... + def FeatureEdgeSmoothingOff(self) -> None: ... + def FeatureEdgeSmoothingOn(self) -> None: ... + def GenerateErrorScalarsOff(self) -> None: ... + def GenerateErrorScalarsOn(self) -> None: ... + def GenerateErrorVectorsOff(self) -> None: ... + def GenerateErrorVectorsOn(self) -> None: ... + def GetBoundarySmoothing(self) -> int: ... + def GetConvergence(self) -> float: ... + def GetConvergenceMaxValue(self) -> float: ... + def GetConvergenceMinValue(self) -> float: ... + def GetEdgeAngle(self) -> float: ... + def GetEdgeAngleMaxValue(self) -> float: ... + def GetEdgeAngleMinValue(self) -> float: ... + def GetFeatureAngle(self) -> float: ... + def GetFeatureAngleMaxValue(self) -> float: ... + def GetFeatureAngleMinValue(self) -> float: ... + def GetFeatureEdgeSmoothing(self) -> int: ... + def GetGenerateErrorScalars(self) -> int: ... + def GetGenerateErrorVectors(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIterations(self) -> int: ... + def GetNumberOfIterationsMaxValue(self) -> int: ... + def GetNumberOfIterationsMinValue(self) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetRelaxationFactor(self) -> float: ... + def GetSource(self) -> 'vtkPolyData': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSmoothPolyDataFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSmoothPolyDataFilter': ... + def SetBoundarySmoothing(self, _arg:int) -> None: ... + def SetConvergence(self, _arg:float) -> None: ... + def SetEdgeAngle(self, _arg:float) -> None: ... + def SetFeatureAngle(self, _arg:float) -> None: ... + def SetFeatureEdgeSmoothing(self, _arg:int) -> None: ... + def SetGenerateErrorScalars(self, _arg:int) -> None: ... + def SetGenerateErrorVectors(self, _arg:int) -> None: ... + def SetNumberOfIterations(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetRelaxationFactor(self, _arg:float) -> None: ... + def SetSourceData(self, source:'vtkPolyData') -> None: ... + +class vtkSphereTreeFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + extraction_mode:'getset_descriptor' + level:'getset_descriptor' + m_time:'getset_descriptor' + normal:'getset_descriptor' + point:'getset_descriptor' + ray:'getset_descriptor' + sphere_tree:'getset_descriptor' + tree_hierarchy:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetExtractionMode(self) -> int: ... + def GetExtractionModeAsString(self) -> str: ... + def GetLevel(self) -> int: ... + def GetLevelMaxValue(self) -> int: ... + def GetLevelMinValue(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNormal(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoint(self) -> Tuple[float, float, float]: ... + def GetRay(self) -> Tuple[float, float, float]: ... + def GetSphereTree(self) -> 'vtkSphereTree': ... + def GetTreeHierarchy(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSphereTreeFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSphereTreeFilter': ... + def SetExtractionMode(self, _arg:int) -> None: ... + def SetExtractionModeToLevels(self) -> None: ... + def SetExtractionModeToLine(self) -> None: ... + def SetExtractionModeToPlane(self) -> None: ... + def SetExtractionModeToPoint(self) -> None: ... + def SetLevel(self, _arg:int) -> None: ... + @overload + def SetNormal(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetNormal(self, _arg:Sequence[float]) -> None: ... + @overload + def SetPoint(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPoint(self, _arg:Sequence[float]) -> None: ... + @overload + def SetRay(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetRay(self, _arg:Sequence[float]) -> None: ... + def SetSphereTree(self, __a:'vtkSphereTree') -> None: ... + def SetTreeHierarchy(self, _arg:bool) -> None: ... + def TreeHierarchyOff(self) -> None: ... + def TreeHierarchyOn(self) -> None: ... + +class vtkSplitSharpEdgesPolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + feature_angle:'getset_descriptor' + output_points_precision:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFeatureAngle(self) -> float: ... + def GetFeatureAngleMaxValue(self) -> float: ... + def GetFeatureAngleMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetOutputPointsPrecisionMaxValue(self) -> int: ... + def GetOutputPointsPrecisionMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSplitSharpEdgesPolyData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSplitSharpEdgesPolyData': ... + def SetFeatureAngle(self, _arg:float) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + +class vtkStaticCleanPolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + absolute_tolerance:'getset_descriptor' + average_point_data:'getset_descriptor' + convert_lines_to_points:'getset_descriptor' + convert_polys_to_lines:'getset_descriptor' + convert_strips_to_polys:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + merging_array:'getset_descriptor' + output_points_precision:'getset_descriptor' + piece_invariant:'getset_descriptor' + produce_merge_map:'getset_descriptor' + remove_unused_points:'getset_descriptor' + tolerance:'getset_descriptor' + tolerance_is_absolute:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AveragePointDataOff(self) -> None: ... + def AveragePointDataOn(self) -> None: ... + def ConvertLinesToPointsOff(self) -> None: ... + def ConvertLinesToPointsOn(self) -> None: ... + def ConvertPolysToLinesOff(self) -> None: ... + def ConvertPolysToLinesOn(self) -> None: ... + def ConvertStripsToPolysOff(self) -> None: ... + def ConvertStripsToPolysOn(self) -> None: ... + def GetAbsoluteTolerance(self) -> float: ... + def GetAbsoluteToleranceMaxValue(self) -> float: ... + def GetAbsoluteToleranceMinValue(self) -> float: ... + def GetAveragePointData(self) -> bool: ... + def GetConvertLinesToPoints(self) -> bool: ... + def GetConvertPolysToLines(self) -> bool: ... + def GetConvertStripsToPolys(self) -> bool: ... + def GetLocator(self) -> 'vtkStaticPointLocator': ... + def GetMTime(self) -> int: ... + def GetMergingArray(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPieceInvariant(self) -> bool: ... + def GetProduceMergeMap(self) -> bool: ... + def GetRemoveUnusedPoints(self) -> bool: ... + def GetTolerance(self) -> float: ... + def GetToleranceIsAbsolute(self) -> bool: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStaticCleanPolyData': ... + def PieceInvariantOff(self) -> None: ... + def PieceInvariantOn(self) -> None: ... + def ProduceMergeMapOff(self) -> None: ... + def ProduceMergeMapOn(self) -> None: ... + def RemoveUnusedPointsOff(self) -> None: ... + def RemoveUnusedPointsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStaticCleanPolyData': ... + def SetAbsoluteTolerance(self, _arg:float) -> None: ... + def SetAveragePointData(self, _arg:bool) -> None: ... + def SetConvertLinesToPoints(self, _arg:bool) -> None: ... + def SetConvertPolysToLines(self, _arg:bool) -> None: ... + def SetConvertStripsToPolys(self, _arg:bool) -> None: ... + def SetMergingArray(self, _arg:str) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetPieceInvariant(self, _arg:bool) -> None: ... + def SetProduceMergeMap(self, _arg:bool) -> None: ... + def SetRemoveUnusedPoints(self, _arg:bool) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def SetToleranceIsAbsolute(self, _arg:bool) -> None: ... + def ToleranceIsAbsoluteOff(self) -> None: ... + def ToleranceIsAbsoluteOn(self) -> None: ... + +class vtkStaticCleanUnstructuredGrid(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + absolute_tolerance:'getset_descriptor' + average_point_data:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + merging_array:'getset_descriptor' + output_points_precision:'getset_descriptor' + piece_invariant:'getset_descriptor' + produce_merge_map:'getset_descriptor' + remove_unused_points:'getset_descriptor' + tolerance:'getset_descriptor' + tolerance_is_absolute:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AveragePointDataOff(self) -> None: ... + def AveragePointDataOn(self) -> None: ... + @staticmethod + def AveragePoints(inPts:'vtkPoints', inPD:'vtkPointData', outPts:'vtkPoints', outPD:'vtkPointData', ptMap:MutableSequence[int], tol:float) -> None: ... + @staticmethod + def BuildPointMap(numPts:int, pmap:MutableSequence[int], ptUses:MutableSequence[int], mergeMap:MutableSequence[int]) -> int: ... + @staticmethod + def CopyPoints(inPts:'vtkPoints', inPD:'vtkPointData', outPts:'vtkPoints', outPD:'vtkPointData', ptMap:MutableSequence[int]) -> None: ... + def GetAbsoluteTolerance(self) -> float: ... + def GetAbsoluteToleranceMaxValue(self) -> float: ... + def GetAbsoluteToleranceMinValue(self) -> float: ... + def GetAveragePointData(self) -> bool: ... + def GetLocator(self) -> 'vtkStaticPointLocator': ... + def GetMTime(self) -> int: ... + def GetMergingArray(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPieceInvariant(self) -> bool: ... + def GetProduceMergeMap(self) -> bool: ... + def GetRemoveUnusedPoints(self) -> bool: ... + def GetTolerance(self) -> float: ... + def GetToleranceIsAbsolute(self) -> bool: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MarkPointUses(ca:'vtkCellArray', mergeMap:MutableSequence[int], ptUses:MutableSequence[int]) -> None: ... + def NewInstance(self) -> 'vtkStaticCleanUnstructuredGrid': ... + def PieceInvariantOff(self) -> None: ... + def PieceInvariantOn(self) -> None: ... + def ProduceMergeMapOff(self) -> None: ... + def ProduceMergeMapOn(self) -> None: ... + def RemoveUnusedPointsOff(self) -> None: ... + def RemoveUnusedPointsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStaticCleanUnstructuredGrid': ... + def SetAbsoluteTolerance(self, _arg:float) -> None: ... + def SetAveragePointData(self, _arg:bool) -> None: ... + def SetMergingArray(self, _arg:str) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetPieceInvariant(self, _arg:bool) -> None: ... + def SetProduceMergeMap(self, _arg:bool) -> None: ... + def SetRemoveUnusedPoints(self, _arg:bool) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def SetToleranceIsAbsolute(self, _arg:bool) -> None: ... + def ToleranceIsAbsoluteOff(self) -> None: ... + def ToleranceIsAbsoluteOn(self) -> None: ... + +class vtkStreamerBase(vtkmodules.vtkCommonExecutionModel.vtkAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStreamerBase': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStreamerBase': ... + +class vtkStreamingTessellator(vtkmodules.vtkCommonCore.vtkObject): + MaxFieldSize:int + const_private_data:'getset_descriptor' + embedding_dimension:'getset_descriptor' + field_size:'getset_descriptor' + maximum_number_of_subdivisions:'getset_descriptor' + private_data:'getset_descriptor' + subdivision_algorithm:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AdaptivelySample0Facet(self, v0:MutableSequence[float]) -> None: ... + def AdaptivelySample1Facet(self, v0:MutableSequence[float], v1:MutableSequence[float]) -> None: ... + def AdaptivelySample1FacetLinear(self, v0:MutableSequence[float], v1:MutableSequence[float]) -> None: ... + def AdaptivelySample2Facet(self, v0:MutableSequence[float], v1:MutableSequence[float], v2:MutableSequence[float]) -> None: ... + def AdaptivelySample2FacetLinear(self, v0:MutableSequence[float], v1:MutableSequence[float], v2:MutableSequence[float]) -> None: ... + def AdaptivelySample3Facet(self, v0:MutableSequence[float], v1:MutableSequence[float], v2:MutableSequence[float], v3:MutableSequence[float]) -> None: ... + def AdaptivelySample3FacetLinear(self, v0:MutableSequence[float], v1:MutableSequence[float], v2:MutableSequence[float], v3:MutableSequence[float]) -> None: ... + def GetCaseCount(self, c:int) -> int: ... + def GetConstPrivateData(self) -> Pointer: ... + def GetEmbeddingDimension(self, k:int) -> int: ... + def GetFieldSize(self, k:int) -> int: ... + def GetMaximumNumberOfSubdivisions(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPrivateData(self) -> Pointer: ... + def GetSubcaseCount(self, casenum:int, sub:int) -> int: ... + def GetSubdivisionAlgorithm(self) -> 'vtkEdgeSubdivisionCriterion': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStreamingTessellator': ... + def ResetCounts(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStreamingTessellator': ... + def SetConstPrivateData(self, ConstPrivate:Pointer) -> None: ... + def SetEmbeddingDimension(self, k:int, d:int) -> None: ... + def SetFieldSize(self, k:int, s:int) -> None: ... + def SetMaximumNumberOfSubdivisions(self, num_subdiv_in:int) -> None: ... + def SetPrivateData(self, Private:Pointer) -> None: ... + def SetSubdivisionAlgorithm(self, __a:'vtkEdgeSubdivisionCriterion') -> None: ... + +class vtkStripper(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + join_contiguous_segments:'getset_descriptor' + maximum_length:'getset_descriptor' + pass_cell_data_as_field_data:'getset_descriptor' + pass_through_cell_ids:'getset_descriptor' + pass_through_point_ids:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetJoinContiguousSegments(self) -> int: ... + def GetMaximumLength(self) -> int: ... + def GetMaximumLengthMaxValue(self) -> int: ... + def GetMaximumLengthMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassCellDataAsFieldData(self) -> int: ... + def GetPassThroughCellIds(self) -> int: ... + def GetPassThroughPointIds(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def JoinContiguousSegmentsOff(self) -> None: ... + def JoinContiguousSegmentsOn(self) -> None: ... + def NewInstance(self) -> 'vtkStripper': ... + def PassCellDataAsFieldDataOff(self) -> None: ... + def PassCellDataAsFieldDataOn(self) -> None: ... + def PassThroughCellIdsOff(self) -> None: ... + def PassThroughCellIdsOn(self) -> None: ... + def PassThroughPointIdsOff(self) -> None: ... + def PassThroughPointIdsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStripper': ... + def SetJoinContiguousSegments(self, _arg:int) -> None: ... + def SetMaximumLength(self, _arg:int) -> None: ... + def SetPassCellDataAsFieldData(self, _arg:int) -> None: ... + def SetPassThroughCellIds(self, _arg:int) -> None: ... + def SetPassThroughPointIds(self, _arg:int) -> None: ... + +class vtkStructuredDataPlaneCutter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + batch_size:'getset_descriptor' + build_hierarchy:'getset_descriptor' + build_tree:'getset_descriptor' + compute_normals:'getset_descriptor' + generate_polygons:'getset_descriptor' + interpolate_attributes:'getset_descriptor' + m_time:'getset_descriptor' + output_points_precision:'getset_descriptor' + plane:'getset_descriptor' + sphere_tree:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildHierarchyOff(self) -> None: ... + def BuildHierarchyOn(self) -> None: ... + def BuildTreeOff(self) -> None: ... + def BuildTreeOn(self) -> None: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def GeneratePolygonsOff(self) -> None: ... + def GeneratePolygonsOn(self) -> None: ... + def GetBatchSize(self) -> int: ... + def GetBatchSizeMaxValue(self) -> int: ... + def GetBatchSizeMinValue(self) -> int: ... + def GetBuildHierarchy(self) -> bool: ... + def GetBuildTree(self) -> bool: ... + def GetComputeNormals(self) -> bool: ... + def GetGeneratePolygons(self) -> bool: ... + def GetInterpolateAttributes(self) -> bool: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetOutputPointsPrecisionMaxValue(self) -> int: ... + def GetOutputPointsPrecisionMinValue(self) -> int: ... + def GetPlane(self) -> 'vtkPlane': ... + def GetSphereTree(self) -> 'vtkSphereTree': ... + def InterpolateAttributesOff(self) -> None: ... + def InterpolateAttributesOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStructuredDataPlaneCutter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStructuredDataPlaneCutter': ... + def SetBatchSize(self, _arg:int) -> None: ... + def SetBuildHierarchy(self, _arg:bool) -> None: ... + def SetBuildTree(self, _arg:bool) -> None: ... + def SetComputeNormals(self, _arg:bool) -> None: ... + def SetGeneratePolygons(self, _arg:bool) -> None: ... + def SetInterpolateAttributes(self, _arg:bool) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetPlane(self, __a:'vtkPlane') -> None: ... + def SetSphereTree(self, __a:'vtkSphereTree') -> None: ... + +class vtkStructuredGridAppend(vtkmodules.vtkCommonExecutionModel.vtkStructuredGridAlgorithm): + input:'getset_descriptor' + input_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetInput(self, num:int) -> 'vtkDataObject': ... + @overload + def GetInput(self) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfInputs(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStructuredGridAppend': ... + def ReplaceNthInputConnection(self, idx:int, input:'vtkAlgorithmOutput') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStructuredGridAppend': ... + @overload + def SetInputData(self, num:int, input:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, input:'vtkDataObject') -> None: ... + +class vtkStructuredGridOutlineFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStructuredGridOutlineFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStructuredGridOutlineFilter': ... + +class vtkSurfaceNets2D(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + array_component:'getset_descriptor' + background_label:'getset_descriptor' + compute_scalars:'getset_descriptor' + data_caching:'getset_descriptor' + labels:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + number_of_labels:'getset_descriptor' + smoother:'getset_descriptor' + smoothing:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeScalarsOff(self) -> None: ... + def ComputeScalarsOn(self) -> None: ... + def DataCachingOff(self) -> None: ... + def DataCachingOn(self) -> None: ... + @overload + def GenerateLabels(self, numLabels:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateLabels(self, numLabels:int, rangeStart:float, rangeEnd:float) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetArrayComponent(self) -> int: ... + def GetBackgroundLabel(self) -> float: ... + def GetComputeScalars(self) -> bool: ... + def GetDataCaching(self) -> bool: ... + def GetLabel(self, i:int) -> float: ... + @overload + def GetLabels(self) -> Pointer: ... + @overload + def GetLabels(self, contourValues:MutableSequence[float]) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLabels(self) -> int: ... + def GetSmoother(self) -> 'vtkConstrainedSmoothingFilter': ... + def GetSmoothing(self) -> bool: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSurfaceNets2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSurfaceNets2D': ... + def SetArrayComponent(self, _arg:int) -> None: ... + def SetBackgroundLabel(self, _arg:float) -> None: ... + def SetComputeScalars(self, _arg:bool) -> None: ... + def SetDataCaching(self, _arg:bool) -> None: ... + def SetLabel(self, i:int, value:float) -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetNumberOfLabels(self, number:int) -> None: ... + def SetSmoothing(self, _arg:bool) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + def SmoothingOff(self) -> None: ... + def SmoothingOn(self) -> None: ... + +class vtkSurfaceNets3D(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class MeshType(int): ... + class OutputType(int): ... + class TriangulationType(int): ... + MESH_TYPE_DEFAULT:'MeshType' + MESH_TYPE_QUADS:'MeshType' + MESH_TYPE_TRIANGLES:'MeshType' + OUTPUT_STYLE_BOUNDARY:'OutputType' + OUTPUT_STYLE_DEFAULT:'OutputType' + OUTPUT_STYLE_SELECTED:'OutputType' + TRIANGULATION_GREEDY:'TriangulationType' + TRIANGULATION_MIN_AREA:'TriangulationType' + TRIANGULATION_MIN_EDGE:'TriangulationType' + array_component:'getset_descriptor' + automatic_smoothing_constraints:'getset_descriptor' + background_label:'getset_descriptor' + constraint_box:'getset_descriptor' + constraint_distance:'getset_descriptor' + constraint_scale:'getset_descriptor' + constraint_strategy:'getset_descriptor' + data_caching:'getset_descriptor' + labels:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + number_of_iterations:'getset_descriptor' + number_of_labels:'getset_descriptor' + number_of_selected_labels:'getset_descriptor' + optimized_smoothing_stencils:'getset_descriptor' + output_mesh_type:'getset_descriptor' + output_style:'getset_descriptor' + relaxation_factor:'getset_descriptor' + smoother:'getset_descriptor' + smoothing:'getset_descriptor' + triangulation_strategy:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddSelectedLabel(self, label:float) -> None: ... + def AutomaticSmoothingConstraintsOff(self) -> None: ... + def AutomaticSmoothingConstraintsOn(self) -> None: ... + def DataCachingOff(self) -> None: ... + def DataCachingOn(self) -> None: ... + def DeleteSelectedLabel(self, label:float) -> None: ... + @overload + def GenerateLabels(self, numLabels:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateLabels(self, numLabels:int, rangeStart:float, rangeEnd:float) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetArrayComponent(self) -> int: ... + def GetAutomaticSmoothingConstraints(self) -> bool: ... + def GetBackgroundLabel(self) -> float: ... + @overload + def GetConstraintBox(self) -> Tuple[float, float, float]: ... + @overload + def GetConstraintBox(self, s:MutableSequence[float]) -> None: ... + def GetConstraintDistance(self) -> float: ... + def GetConstraintScale(self) -> float: ... + def GetConstraintScaleMaxValue(self) -> float: ... + def GetConstraintScaleMinValue(self) -> float: ... + def GetConstraintStrategy(self) -> int: ... + def GetDataCaching(self) -> bool: ... + def GetLabel(self, i:int) -> float: ... + @overload + def GetLabels(self) -> Pointer: ... + @overload + def GetLabels(self, contourValues:MutableSequence[float]) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIterations(self) -> int: ... + def GetNumberOfLabels(self) -> int: ... + def GetNumberOfSelectedLabels(self) -> int: ... + def GetOptimizedSmoothingStencils(self) -> bool: ... + def GetOutputMeshType(self) -> int: ... + def GetOutputMeshTypeMaxValue(self) -> int: ... + def GetOutputMeshTypeMinValue(self) -> int: ... + def GetOutputStyle(self) -> int: ... + def GetOutputStyleMaxValue(self) -> int: ... + def GetOutputStyleMinValue(self) -> int: ... + def GetRelaxationFactor(self) -> float: ... + def GetSelectedLabel(self, ithLabel:int) -> float: ... + def GetSmoother(self) -> 'vtkConstrainedSmoothingFilter': ... + def GetSmoothing(self) -> bool: ... + def GetTriangulationStrategy(self) -> int: ... + def GetTriangulationStrategyMaxValue(self) -> int: ... + def GetTriangulationStrategyMinValue(self) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def InitializeSelectedLabelsList(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSurfaceNets3D': ... + def OptimizedSmoothingStencilsOff(self) -> None: ... + def OptimizedSmoothingStencilsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSurfaceNets3D': ... + def SetArrayComponent(self, _arg:int) -> None: ... + def SetAutomaticSmoothingConstraints(self, _arg:bool) -> None: ... + def SetBackgroundLabel(self, _arg:float) -> None: ... + @overload + def SetConstraintBox(self, sx:float, sy:float, sz:float) -> None: ... + @overload + def SetConstraintBox(self, s:MutableSequence[float]) -> None: ... + def SetConstraintDistance(self, d:float) -> None: ... + def SetConstraintScale(self, _arg:float) -> None: ... + def SetConstraintStrategyToConstraintBox(self) -> None: ... + def SetConstraintStrategyToConstraintDistance(self) -> None: ... + def SetDataCaching(self, _arg:bool) -> None: ... + def SetLabel(self, i:int, value:float) -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetNumberOfIterations(self, n:int) -> None: ... + def SetNumberOfLabels(self, number:int) -> None: ... + def SetOptimizedSmoothingStencils(self, _arg:bool) -> None: ... + def SetOutputMeshType(self, _arg:int) -> None: ... + def SetOutputMeshTypeToDefault(self) -> None: ... + def SetOutputMeshTypeToQuads(self) -> None: ... + def SetOutputMeshTypeToTriangles(self) -> None: ... + def SetOutputStyle(self, _arg:int) -> None: ... + def SetOutputStyleToBoundary(self) -> None: ... + def SetOutputStyleToDefault(self) -> None: ... + def SetOutputStyleToSelected(self) -> None: ... + def SetRelaxationFactor(self, f:float) -> None: ... + def SetSmoothing(self, _arg:bool) -> None: ... + def SetTriangulationStrategy(self, _arg:int) -> None: ... + def SetTriangulationStrategyToGreedy(self) -> None: ... + def SetTriangulationStrategyToMinArea(self) -> None: ... + def SetTriangulationStrategyToMinEdge(self) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + def SmoothingOff(self) -> None: ... + def SmoothingOn(self) -> None: ... + +class vtkSynchronizedTemplates2D(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + array_component:'getset_descriptor' + compute_scalars:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeScalarsOff(self) -> None: ... + def ComputeScalarsOn(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetArrayComponent(self) -> int: ... + def GetComputeScalars(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSynchronizedTemplates2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSynchronizedTemplates2D': ... + def SetArrayComponent(self, _arg:int) -> None: ... + def SetComputeScalars(self, _arg:int) -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + +class vtkSynchronizedTemplates3D(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + array_component:'getset_descriptor' + compute_gradients:'getset_descriptor' + compute_normals:'getset_descriptor' + compute_scalars:'getset_descriptor' + generate_triangles:'getset_descriptor' + input_memory_limit:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeGradientsOff(self) -> None: ... + def ComputeGradientsOn(self) -> None: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def ComputeScalarsOff(self) -> None: ... + def ComputeScalarsOn(self) -> None: ... + def GenerateTrianglesOff(self) -> None: ... + def GenerateTrianglesOn(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetArrayComponent(self) -> int: ... + def GetComputeGradients(self) -> int: ... + def GetComputeNormals(self) -> int: ... + def GetComputeScalars(self) -> int: ... + def GetGenerateTriangles(self) -> int: ... + def GetInputMemoryLimit(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSynchronizedTemplates3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSynchronizedTemplates3D': ... + def SetArrayComponent(self, _arg:int) -> None: ... + def SetComputeGradients(self, _arg:int) -> None: ... + def SetComputeNormals(self, _arg:int) -> None: ... + def SetComputeScalars(self, _arg:int) -> None: ... + def SetGenerateTriangles(self, _arg:int) -> None: ... + def SetInputMemoryLimit(self, limit:int) -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + def ThreadedExecute(self, data:'vtkImageData', inInfo:'vtkInformation', outInfo:'vtkInformation', inScalars:'vtkDataArray') -> None: ... + +class vtkSynchronizedTemplatesCutter3D(vtkSynchronizedTemplates3D): + cut_function:'getset_descriptor' + output_points_precision:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCutFunction(self) -> 'vtkImplicitFunction': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetOutputPointsPrecisionMaxValue(self) -> int: ... + def GetOutputPointsPrecisionMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSynchronizedTemplatesCutter3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSynchronizedTemplatesCutter3D': ... + def SetCutFunction(self, __a:'vtkImplicitFunction') -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def ThreadedExecute(self, data:'vtkImageData', outInfo:'vtkInformation', __c:int) -> None: ... + +class vtkTensorGlyph(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + COLOR_BY_EIGENVALUES:int + COLOR_BY_SCALARS:int + clamp_scaling:'getset_descriptor' + color_glyphs:'getset_descriptor' + color_mode:'getset_descriptor' + extract_eigenvalues:'getset_descriptor' + length:'getset_descriptor' + max_scale_factor:'getset_descriptor' + scale_factor:'getset_descriptor' + scaling:'getset_descriptor' + source:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + symmetric:'getset_descriptor' + three_glyphs:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClampScalingOff(self) -> None: ... + def ClampScalingOn(self) -> None: ... + def ColorGlyphsOff(self) -> None: ... + def ColorGlyphsOn(self) -> None: ... + def ExtractEigenvaluesOff(self) -> None: ... + def ExtractEigenvaluesOn(self) -> None: ... + def GetClampScaling(self) -> int: ... + def GetColorGlyphs(self) -> int: ... + def GetColorMode(self) -> int: ... + def GetColorModeMaxValue(self) -> int: ... + def GetColorModeMinValue(self) -> int: ... + def GetExtractEigenvalues(self) -> int: ... + def GetLength(self) -> float: ... + def GetMaxScaleFactor(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScaleFactor(self) -> float: ... + def GetScaling(self) -> int: ... + def GetSource(self) -> 'vtkPolyData': ... + def GetSymmetric(self) -> int: ... + def GetThreeGlyphs(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTensorGlyph': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTensorGlyph': ... + def ScalingOff(self) -> None: ... + def ScalingOn(self) -> None: ... + def SetClampScaling(self, _arg:int) -> None: ... + def SetColorGlyphs(self, _arg:int) -> None: ... + def SetColorMode(self, _arg:int) -> None: ... + def SetColorModeToEigenvalues(self) -> None: ... + def SetColorModeToScalars(self) -> None: ... + def SetExtractEigenvalues(self, _arg:int) -> None: ... + def SetLength(self, _arg:float) -> None: ... + def SetMaxScaleFactor(self, _arg:float) -> None: ... + def SetScaleFactor(self, _arg:float) -> None: ... + def SetScaling(self, _arg:int) -> None: ... + @overload + def SetSourceConnection(self, id:int, algOutput:'vtkAlgorithmOutput') -> None: ... + @overload + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, source:'vtkPolyData') -> None: ... + def SetSymmetric(self, _arg:int) -> None: ... + def SetThreeGlyphs(self, _arg:int) -> None: ... + def SymmetricOff(self) -> None: ... + def SymmetricOn(self) -> None: ... + def ThreeGlyphsOff(self) -> None: ... + def ThreeGlyphsOn(self) -> None: ... + +class vtkThreshold(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + class ThresholdType(int): ... + THRESHOLD_BETWEEN:'ThresholdType' + THRESHOLD_LOWER:'ThresholdType' + THRESHOLD_UPPER:'ThresholdType' + all_scalars:'getset_descriptor' + component_mode:'getset_descriptor' + invert:'getset_descriptor' + lower_threshold:'getset_descriptor' + output_points_precision:'getset_descriptor' + selected_component:'getset_descriptor' + threshold_function:'getset_descriptor' + upper_threshold:'getset_descriptor' + use_continuous_cell_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllScalarsOff(self) -> None: ... + def AllScalarsOn(self) -> None: ... + def Between(self, s:float) -> int: ... + def GetAllScalars(self) -> int: ... + def GetComponentMode(self) -> int: ... + def GetComponentModeAsString(self) -> str: ... + def GetComponentModeMaxValue(self) -> int: ... + def GetComponentModeMinValue(self) -> int: ... + def GetInvert(self) -> bool: ... + def GetLowerThreshold(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetSelectedComponent(self) -> int: ... + def GetSelectedComponentMaxValue(self) -> int: ... + def GetSelectedComponentMinValue(self) -> int: ... + def GetThresholdFunction(self) -> int: ... + def GetUpperThreshold(self) -> float: ... + def GetUseContinuousCellRange(self) -> int: ... + def InvertOff(self) -> None: ... + def InvertOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Lower(self, s:float) -> int: ... + def NewInstance(self) -> 'vtkThreshold': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkThreshold': ... + def SetAllScalars(self, _arg:int) -> None: ... + def SetComponentMode(self, _arg:int) -> None: ... + def SetComponentModeToUseAll(self) -> None: ... + def SetComponentModeToUseAny(self) -> None: ... + def SetComponentModeToUseSelected(self) -> None: ... + def SetInvert(self, _arg:bool) -> None: ... + def SetLowerThreshold(self, _arg:float) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetSelectedComponent(self, _arg:int) -> None: ... + def SetThresholdFunction(self, function:int) -> None: ... + def SetUpperThreshold(self, _arg:float) -> None: ... + def SetUseContinuousCellRange(self, _arg:int) -> None: ... + def Upper(self, s:float) -> int: ... + def UseContinuousCellRangeOff(self) -> None: ... + def UseContinuousCellRangeOn(self) -> None: ... + +class vtkThresholdPoints(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + input_array_component:'getset_descriptor' + lower_threshold:'getset_descriptor' + output_points_precision:'getset_descriptor' + upper_threshold:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInputArrayComponent(self) -> int: ... + def GetLowerThreshold(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetUpperThreshold(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkThresholdPoints': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkThresholdPoints': ... + def SetInputArrayComponent(self, _arg:int) -> None: ... + def SetLowerThreshold(self, _arg:float) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetUpperThreshold(self, _arg:float) -> None: ... + def ThresholdBetween(self, lower:float, upper:float) -> None: ... + def ThresholdByLower(self, lower:float) -> None: ... + def ThresholdByUpper(self, upper:float) -> None: ... + +class vtkTransposeTable(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + add_id_column:'getset_descriptor' + id_column_name:'getset_descriptor' + use_id_column:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddIdColumnOff(self) -> None: ... + def AddIdColumnOn(self) -> None: ... + def GetAddIdColumn(self) -> bool: ... + def GetIdColumnName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseIdColumn(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTransposeTable': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransposeTable': ... + def SetAddIdColumn(self, _arg:bool) -> None: ... + def SetIdColumnName(self, _arg:str) -> None: ... + def SetUseIdColumn(self, _arg:bool) -> None: ... + def UseIdColumnOff(self) -> None: ... + def UseIdColumnOn(self) -> None: ... + +class vtkTriangleFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + pass_lines:'getset_descriptor' + pass_verts:'getset_descriptor' + preserve_polys:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassLines(self) -> int: ... + def GetPassVerts(self) -> int: ... + def GetPreservePolys(self) -> int: ... + def GetTolerance(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTriangleFilter': ... + def PassLinesOff(self) -> None: ... + def PassLinesOn(self) -> None: ... + def PassVertsOff(self) -> None: ... + def PassVertsOn(self) -> None: ... + def PreservePolysOff(self) -> None: ... + def PreservePolysOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTriangleFilter': ... + def SetPassLines(self, _arg:int) -> None: ... + def SetPassVerts(self, _arg:int) -> None: ... + def SetPreservePolys(self, _arg:int) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + +class vtkTriangleMeshPointNormals(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTriangleMeshPointNormals': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTriangleMeshPointNormals': ... + +class vtkTubeBender(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTubeBender': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTubeBender': ... + def SetRadius(self, _arg:float) -> None: ... + +class vtkTubeFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + capping:'getset_descriptor' + default_normal:'getset_descriptor' + generate_t_coords:'getset_descriptor' + number_of_sides:'getset_descriptor' + number_of_sides_max_value:'getset_descriptor' + number_of_sides_min_value:'getset_descriptor' + offset:'getset_descriptor' + on_ratio:'getset_descriptor' + output_points_precision:'getset_descriptor' + radius:'getset_descriptor' + radius_factor:'getset_descriptor' + sides_share_vertices:'getset_descriptor' + texture_length:'getset_descriptor' + use_default_normal:'getset_descriptor' + vary_radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CappingOff(self) -> None: ... + def CappingOn(self) -> None: ... + def GetCapping(self) -> int: ... + def GetDefaultNormal(self) -> Tuple[float, float, float]: ... + def GetGenerateTCoords(self) -> int: ... + def GetGenerateTCoordsAsString(self) -> str: ... + def GetGenerateTCoordsMaxValue(self) -> int: ... + def GetGenerateTCoordsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSides(self) -> int: ... + def GetNumberOfSidesMaxValue(self) -> int: ... + def GetNumberOfSidesMinValue(self) -> int: ... + def GetOffset(self) -> int: ... + def GetOffsetMaxValue(self) -> int: ... + def GetOffsetMinValue(self) -> int: ... + def GetOnRatio(self) -> int: ... + def GetOnRatioMaxValue(self) -> int: ... + def GetOnRatioMinValue(self) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusFactor(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def GetSidesShareVertices(self) -> int: ... + def GetTextureLength(self) -> float: ... + def GetTextureLengthMaxValue(self) -> float: ... + def GetTextureLengthMinValue(self) -> float: ... + def GetUseDefaultNormal(self) -> int: ... + def GetVaryRadius(self) -> int: ... + def GetVaryRadiusAsString(self) -> str: ... + def GetVaryRadiusMaxValue(self) -> int: ... + def GetVaryRadiusMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTubeFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTubeFilter': ... + def SetCapping(self, _arg:int) -> None: ... + @overload + def SetDefaultNormal(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetDefaultNormal(self, _arg:Sequence[float]) -> None: ... + def SetGenerateTCoords(self, _arg:int) -> None: ... + def SetGenerateTCoordsToNormalizedLength(self) -> None: ... + def SetGenerateTCoordsToOff(self) -> None: ... + def SetGenerateTCoordsToUseLength(self) -> None: ... + def SetGenerateTCoordsToUseScalars(self) -> None: ... + def SetNumberOfSides(self, _arg:int) -> None: ... + def SetOffset(self, _arg:int) -> None: ... + def SetOnRatio(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + def SetRadiusFactor(self, _arg:float) -> None: ... + def SetSidesShareVertices(self, _arg:int) -> None: ... + def SetTextureLength(self, _arg:float) -> None: ... + def SetUseDefaultNormal(self, _arg:int) -> None: ... + def SetVaryRadius(self, _arg:int) -> None: ... + def SetVaryRadiusToVaryRadiusByAbsoluteScalar(self) -> None: ... + def SetVaryRadiusToVaryRadiusByScalar(self) -> None: ... + def SetVaryRadiusToVaryRadiusByVector(self) -> None: ... + def SetVaryRadiusToVaryRadiusByVectorNorm(self) -> None: ... + def SetVaryRadiusToVaryRadiusOff(self) -> None: ... + def SidesShareVerticesOff(self) -> None: ... + def SidesShareVerticesOn(self) -> None: ... + def UseDefaultNormalOff(self) -> None: ... + def UseDefaultNormalOn(self) -> None: ... + +class vtkUnstructuredGridQuadricDecimation(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + NON_ERROR:int + NON_TETRAHEDRA:int + NO_CELLS:int + NO_SCALARS:int + auto_add_candidates:'getset_descriptor' + auto_add_candidates_threshold:'getset_descriptor' + boundary_weight:'getset_descriptor' + number_of_candidates:'getset_descriptor' + number_of_edges_to_decimate:'getset_descriptor' + number_of_tets_output:'getset_descriptor' + scalars_name:'getset_descriptor' + target_reduction:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAutoAddCandidates(self) -> int: ... + def GetAutoAddCandidatesThreshold(self) -> float: ... + def GetBoundaryWeight(self) -> float: ... + def GetNumberOfCandidates(self) -> int: ... + def GetNumberOfEdgesToDecimate(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTetsOutput(self) -> int: ... + def GetScalarsName(self) -> str: ... + def GetTargetReduction(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridQuadricDecimation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridQuadricDecimation': ... + def SetAutoAddCandidates(self, _arg:int) -> None: ... + def SetAutoAddCandidatesThreshold(self, _arg:float) -> None: ... + def SetBoundaryWeight(self, _arg:float) -> None: ... + def SetNumberOfCandidates(self, _arg:int) -> None: ... + def SetNumberOfEdgesToDecimate(self, _arg:int) -> None: ... + def SetNumberOfTetsOutput(self, _arg:int) -> None: ... + def SetScalarsName(self, _arg:str) -> None: ... + def SetTargetReduction(self, _arg:float) -> None: ... + +class vtkUnstructuredGridToExplicitStructuredGrid(vtkmodules.vtkCommonExecutionModel.vtkExplicitStructuredGridAlgorithm): + whole_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWholeExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridToExplicitStructuredGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridToExplicitStructuredGrid': ... + @overload + def SetWholeExtent(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetWholeExtent(self, _arg:Sequence[int]) -> None: ... + +class vtkVectorDot(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + actual_range:'getset_descriptor' + map_scalars:'getset_descriptor' + scalar_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetActualRange(self) -> Tuple[float, float]: ... + def GetMapScalars(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScalarRange(self) -> Tuple[float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MapScalarsOff(self) -> None: ... + def MapScalarsOn(self) -> None: ... + def NewInstance(self) -> 'vtkVectorDot': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVectorDot': ... + def SetMapScalars(self, _arg:int) -> None: ... + @overload + def SetScalarRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetScalarRange(self, _arg:Sequence[float]) -> None: ... + +class vtkVectorNorm(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + attribute_mode:'getset_descriptor' + normalize:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAttributeMode(self) -> int: ... + def GetAttributeModeAsString(self) -> str: ... + def GetNormalize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVectorNorm': ... + def NormalizeOff(self) -> None: ... + def NormalizeOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVectorNorm': ... + def SetAttributeMode(self, _arg:int) -> None: ... + def SetAttributeModeToDefault(self) -> None: ... + def SetAttributeModeToUseCellData(self) -> None: ... + def SetAttributeModeToUsePointData(self) -> None: ... + def SetNormalize(self, _arg:int) -> None: ... + +class vtkVoronoi2D(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class ProjectionPlaneStrategy(int): ... + class GenerateScalarsStrategy(int): ... + BEST_FITTING_PLANE:'ProjectionPlaneStrategy' + NONE:'GenerateScalarsStrategy' + POINT_IDS:'GenerateScalarsStrategy' + SPECIFIED_TRANSFORM_PLANE:'ProjectionPlaneStrategy' + THREAD_IDS:'GenerateScalarsStrategy' + XY_PLANE:'ProjectionPlaneStrategy' + generate_scalars:'getset_descriptor' + generate_voronoi_flower:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + maximum_number_of_tile_clips:'getset_descriptor' + number_of_threads_used:'getset_descriptor' + padding:'getset_descriptor' + point_of_interest:'getset_descriptor' + projection_plane_mode:'getset_descriptor' + spheres:'getset_descriptor' + transform:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateVoronoiFlowerOff(self) -> None: ... + def GenerateVoronoiFlowerOn(self) -> None: ... + def GetGenerateScalars(self) -> int: ... + def GetGenerateVoronoiFlower(self) -> int: ... + def GetLocator(self) -> 'vtkStaticPointLocator2D': ... + def GetMTime(self) -> int: ... + def GetMaximumNumberOfTileClips(self) -> int: ... + def GetMaximumNumberOfTileClipsMaxValue(self) -> int: ... + def GetMaximumNumberOfTileClipsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfThreadsUsed(self) -> int: ... + def GetPadding(self) -> float: ... + def GetPaddingMaxValue(self) -> float: ... + def GetPaddingMinValue(self) -> float: ... + def GetPointOfInterest(self) -> int: ... + def GetPointOfInterestMaxValue(self) -> int: ... + def GetPointOfInterestMinValue(self) -> int: ... + def GetProjectionPlaneMode(self) -> int: ... + def GetProjectionPlaneModeMaxValue(self) -> int: ... + def GetProjectionPlaneModeMinValue(self) -> int: ... + def GetSpheres(self) -> 'vtkSpheres': ... + def GetTransform(self) -> 'vtkAbstractTransform': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVoronoi2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVoronoi2D': ... + def SetGenerateScalars(self, _arg:int) -> None: ... + def SetGenerateScalarsToNone(self) -> None: ... + def SetGenerateScalarsToPointIds(self) -> None: ... + def SetGenerateScalarsToThreadIds(self) -> None: ... + def SetGenerateVoronoiFlower(self, _arg:int) -> None: ... + def SetMaximumNumberOfTileClips(self, _arg:int) -> None: ... + def SetPadding(self, _arg:float) -> None: ... + def SetPointOfInterest(self, _arg:int) -> None: ... + def SetProjectionPlaneMode(self, _arg:int) -> None: ... + def SetProjectionPlaneModeToBestFittingPlane(self) -> None: ... + def SetProjectionPlaneModeToSpecifiedTransformPlane(self) -> None: ... + def SetProjectionPlaneModeToXYPlane(self) -> None: ... + def SetTransform(self, __a:'vtkAbstractTransform') -> None: ... + +class vtkWindowedSincPolyDataFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + BLACKMAN:int + HAMMING:int + HANNING:int + NUTTALL:int + boundary_smoothing:'getset_descriptor' + edge_angle:'getset_descriptor' + feature_angle:'getset_descriptor' + feature_edge_smoothing:'getset_descriptor' + generate_error_scalars:'getset_descriptor' + generate_error_vectors:'getset_descriptor' + non_manifold_smoothing:'getset_descriptor' + normalize_coordinates:'getset_descriptor' + number_of_iterations:'getset_descriptor' + number_of_iterations_max_value:'getset_descriptor' + number_of_iterations_min_value:'getset_descriptor' + pass_band:'getset_descriptor' + weight_non_manifold_edges:'getset_descriptor' + window_function:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BoundarySmoothingOff(self) -> None: ... + def BoundarySmoothingOn(self) -> None: ... + def FeatureEdgeSmoothingOff(self) -> None: ... + def FeatureEdgeSmoothingOn(self) -> None: ... + def GenerateErrorScalarsOff(self) -> None: ... + def GenerateErrorScalarsOn(self) -> None: ... + def GenerateErrorVectorsOff(self) -> None: ... + def GenerateErrorVectorsOn(self) -> None: ... + def GetBoundarySmoothing(self) -> int: ... + def GetEdgeAngle(self) -> float: ... + def GetEdgeAngleMaxValue(self) -> float: ... + def GetEdgeAngleMinValue(self) -> float: ... + def GetFeatureAngle(self) -> float: ... + def GetFeatureAngleMaxValue(self) -> float: ... + def GetFeatureAngleMinValue(self) -> float: ... + def GetFeatureEdgeSmoothing(self) -> int: ... + def GetGenerateErrorScalars(self) -> int: ... + def GetGenerateErrorVectors(self) -> int: ... + def GetNonManifoldSmoothing(self) -> int: ... + def GetNormalizeCoordinates(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIterations(self) -> int: ... + def GetNumberOfIterationsMaxValue(self) -> int: ... + def GetNumberOfIterationsMinValue(self) -> int: ... + def GetPassBand(self) -> float: ... + def GetPassBandMaxValue(self) -> float: ... + def GetPassBandMinValue(self) -> float: ... + def GetWeightNonManifoldEdges(self) -> int: ... + def GetWindowFunction(self) -> int: ... + def GetWindowFunctionMaxValue(self) -> int: ... + def GetWindowFunctionMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWindowedSincPolyDataFilter': ... + def NonManifoldSmoothingOff(self) -> None: ... + def NonManifoldSmoothingOn(self) -> None: ... + def NormalizeCoordinatesOff(self) -> None: ... + def NormalizeCoordinatesOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWindowedSincPolyDataFilter': ... + def SetBoundarySmoothing(self, _arg:int) -> None: ... + def SetEdgeAngle(self, _arg:float) -> None: ... + def SetFeatureAngle(self, _arg:float) -> None: ... + def SetFeatureEdgeSmoothing(self, _arg:int) -> None: ... + def SetGenerateErrorScalars(self, _arg:int) -> None: ... + def SetGenerateErrorVectors(self, _arg:int) -> None: ... + def SetNonManifoldSmoothing(self, _arg:int) -> None: ... + def SetNormalizeCoordinates(self, _arg:int) -> None: ... + def SetNumberOfIterations(self, _arg:int) -> None: ... + def SetPassBand(self, _arg:float) -> None: ... + def SetWeightNonManifoldEdges(self, _arg:int) -> None: ... + def SetWindowFunction(self, _arg:int) -> None: ... + def SetWindowFunctionToBlackman(self) -> None: ... + def SetWindowFunctionToHamming(self) -> None: ... + def SetWindowFunctionToNuttall(self) -> None: ... + def SetWindowFunctionoHanning(self) -> None: ... + def WeightNonManifoldEdgesOff(self) -> None: ... + def WeightNonManifoldEdgesOn(self) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersExtraction.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersExtraction.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..0119b57 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersExtraction.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersExtraction.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersExtraction.pyi new file mode 100644 index 0000000..de1f1ab --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersExtraction.pyi @@ -0,0 +1,823 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkFiltersGeneral + +VTK_EXTRACT_COMPONENT:int +VTK_EXTRACT_DETERMINANT:int +VTK_EXTRACT_EFFECTIVE_STRESS:int +VTK_EXTRACT_NONNEGATIVE_DETERMINANT:int +VTK_EXTRACT_TRACE:int + +class vtkSelector(vtkmodules.vtkCommonCore.vtkObject): + insidedness_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Execute(self, input:'vtkDataObject', output:'vtkDataObject') -> None: ... + def Finalize(self) -> None: ... + def GetInsidednessArrayName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, node:'vtkSelectionNode') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSelector': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSelector': ... + def SetInsidednessArrayName(self, _arg:str) -> None: ... + +class vtkBlockSelector(vtkSelector): + def __init__(self, **properties:Any) -> None: ... + def Execute(self, input:'vtkDataObject', output:'vtkDataObject') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, node:'vtkSelectionNode') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBlockSelector': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBlockSelector': ... + +class vtkConvertSelection(vtkmodules.vtkCommonExecutionModel.vtkSelectionAlgorithm): + allow_missing_array:'getset_descriptor' + array_name:'getset_descriptor' + array_names:'getset_descriptor' + data_object_connection:'getset_descriptor' + input_field_type:'getset_descriptor' + match_any_values:'getset_descriptor' + output_type:'getset_descriptor' + selection_extractor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddArrayName(self, __a:str) -> None: ... + def AllowMissingArrayOff(self) -> None: ... + def AllowMissingArrayOn(self) -> None: ... + def ClearArrayNames(self) -> None: ... + def GetAllowMissingArray(self) -> bool: ... + def GetArrayName(self) -> str: ... + def GetArrayNames(self) -> 'vtkStringArray': ... + def GetInputFieldType(self) -> int: ... + def GetMatchAnyValues(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputType(self) -> int: ... + @staticmethod + def GetSelectedCells(input:'vtkSelection', data:'vtkDataSet', indices:'vtkIdTypeArray') -> None: ... + @staticmethod + def GetSelectedEdges(input:'vtkSelection', data:'vtkGraph', indices:'vtkIdTypeArray') -> None: ... + @staticmethod + def GetSelectedItems(input:'vtkSelection', data:'vtkDataObject', fieldType:int, indices:'vtkIdTypeArray') -> None: ... + @staticmethod + def GetSelectedPoints(input:'vtkSelection', data:'vtkDataSet', indices:'vtkIdTypeArray') -> None: ... + @staticmethod + def GetSelectedRows(input:'vtkSelection', data:'vtkTable', indices:'vtkIdTypeArray') -> None: ... + @staticmethod + def GetSelectedVertices(input:'vtkSelection', data:'vtkGraph', indices:'vtkIdTypeArray') -> None: ... + def GetSelectionExtractor(self) -> 'vtkExtractSelection': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MatchAnyValuesOff(self) -> None: ... + def MatchAnyValuesOn(self) -> None: ... + def NewInstance(self) -> 'vtkConvertSelection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConvertSelection': ... + def SetAllowMissingArray(self, _arg:bool) -> None: ... + def SetArrayName(self, __a:str) -> None: ... + def SetArrayNames(self, __a:'vtkStringArray') -> None: ... + def SetDataObjectConnection(self, in_:'vtkAlgorithmOutput') -> None: ... + def SetInputFieldType(self, _arg:int) -> None: ... + def SetMatchAnyValues(self, _arg:bool) -> None: ... + def SetOutputType(self, _arg:int) -> None: ... + def SetSelectionExtractor(self, __a:'vtkExtractSelection') -> None: ... + @staticmethod + def ToGlobalIdSelection(input:'vtkSelection', data:'vtkDataObject') -> 'vtkSelection': ... + @staticmethod + def ToIndexSelection(input:'vtkSelection', data:'vtkDataObject') -> 'vtkSelection': ... + @staticmethod + def ToPedigreeIdSelection(input:'vtkSelection', data:'vtkDataObject') -> 'vtkSelection': ... + @staticmethod + def ToSelectionType(input:'vtkSelection', data:'vtkDataObject', type:int, arrayNames:'vtkStringArray'=..., inputFieldType:int=-1, allowMissingArray:bool=False) -> 'vtkSelection': ... + @overload + @staticmethod + def ToValueSelection(input:'vtkSelection', data:'vtkDataObject', arrayName:str) -> 'vtkSelection': ... + @overload + @staticmethod + def ToValueSelection(input:'vtkSelection', data:'vtkDataObject', arrayNames:'vtkStringArray') -> 'vtkSelection': ... + +class vtkExpandMarkedElements(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + controller:'getset_descriptor' + number_of_layers:'getset_descriptor' + number_of_layers_max_value:'getset_descriptor' + number_of_layers_min_value:'getset_descriptor' + remove_intermediate_layers:'getset_descriptor' + remove_seed:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLayers(self) -> int: ... + def GetNumberOfLayersMaxValue(self) -> int: ... + def GetNumberOfLayersMinValue(self) -> int: ... + def GetRemoveIntermediateLayers(self) -> bool: ... + def GetRemoveSeed(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExpandMarkedElements': ... + def RemoveIntermediateLayersOff(self) -> None: ... + def RemoveIntermediateLayersOn(self) -> None: ... + def RemoveSeedOff(self) -> None: ... + def RemoveSeedOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExpandMarkedElements': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetNumberOfLayers(self, _arg:int) -> None: ... + def SetRemoveIntermediateLayers(self, _arg:bool) -> None: ... + def SetRemoveSeed(self, _arg:bool) -> None: ... + +class vtkExtractBlock(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + maintain_structure:'getset_descriptor' + prune_output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddIndex(self, index:int) -> None: ... + def GetMaintainStructure(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPruneOutput(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MaintainStructureOff(self) -> None: ... + def MaintainStructureOn(self) -> None: ... + def NewInstance(self) -> 'vtkExtractBlock': ... + def PruneOutputOff(self) -> None: ... + def PruneOutputOn(self) -> None: ... + def RemoveAllIndices(self) -> None: ... + def RemoveIndex(self, index:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractBlock': ... + def SetMaintainStructure(self, _arg:int) -> None: ... + def SetPruneOutput(self, _arg:int) -> None: ... + +class vtkExtractBlockUsingDataAssembly(vtkmodules.vtkCommonExecutionModel.vtkCompositeDataSetAlgorithm): + assembly_name:'getset_descriptor' + prune_data_assembly:'getset_descriptor' + select_subtrees:'getset_descriptor' + selector:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddSelector(self, selector:str) -> bool: ... + def ClearSelectors(self) -> None: ... + def GetAssemblyName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSelectors(self) -> int: ... + def GetPruneDataAssembly(self) -> bool: ... + def GetSelectSubtrees(self) -> bool: ... + def GetSelector(self, index:int) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractBlockUsingDataAssembly': ... + def PruneDataAssemblyOff(self) -> None: ... + def PruneDataAssemblyOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractBlockUsingDataAssembly': ... + def SelectSubtreesOff(self) -> None: ... + def SelectSubtreesOn(self) -> None: ... + def SetAssemblyName(self, _arg:str) -> None: ... + def SetPruneDataAssembly(self, _arg:bool) -> None: ... + def SetSelectSubtrees(self, _arg:bool) -> None: ... + def SetSelector(self, selector:str) -> None: ... + +class vtkExtractCellsByType(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def AddAllCellTypes(self) -> None: ... + def AddCellType(self, type:int) -> None: ... + def ExtractCellType(self, type:int) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractCellsByType': ... + def RemoveAllCellTypes(self) -> None: ... + def RemoveCellType(self, type:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractCellsByType': ... + +class vtkExtractDataArraysOverTime(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + field_association:'getset_descriptor' + number_of_time_steps:'getset_descriptor' + report_statistics_only:'getset_descriptor' + use_global_i_ds:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFieldAssociation(self) -> int: ... + def GetFieldAssociationMaxValue(self) -> int: ... + def GetFieldAssociationMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTimeSteps(self) -> int: ... + def GetReportStatisticsOnly(self) -> bool: ... + def GetUseGlobalIDs(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractDataArraysOverTime': ... + def ReportStatisticsOnlyOff(self) -> None: ... + def ReportStatisticsOnlyOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractDataArraysOverTime': ... + def SetFieldAssociation(self, _arg:int) -> None: ... + def SetReportStatisticsOnly(self, _arg:bool) -> None: ... + def SetUseGlobalIDs(self, _arg:bool) -> None: ... + +class vtkExtractDataOverTime(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + number_of_time_steps:'getset_descriptor' + point_index:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTimeSteps(self) -> int: ... + def GetPointIndex(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractDataOverTime': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractDataOverTime': ... + def SetPointIndex(self, _arg:int) -> None: ... + +class vtkExtractDataSets(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def AddDataSet(self, level:int, idx:int) -> None: ... + def ClearDataSetList(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractDataSets': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractDataSets': ... + +class vtkExtractExodusGlobalTemporalVariables(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + auto_detect_global_temporal_data_arrays:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutoDetectGlobalTemporalDataArraysOff(self) -> None: ... + def AutoDetectGlobalTemporalDataArraysOn(self) -> None: ... + def GetAutoDetectGlobalTemporalDataArrays(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractExodusGlobalTemporalVariables': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractExodusGlobalTemporalVariables': ... + def SetAutoDetectGlobalTemporalDataArrays(self, _arg:bool) -> None: ... + +class vtkExtractGeometry(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + extract_boundary_cells:'getset_descriptor' + extract_inside:'getset_descriptor' + extract_only_boundary_cells:'getset_descriptor' + implicit_function:'getset_descriptor' + m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExtractBoundaryCellsOff(self) -> None: ... + def ExtractBoundaryCellsOn(self) -> None: ... + def ExtractInsideOff(self) -> None: ... + def ExtractInsideOn(self) -> None: ... + def ExtractOnlyBoundaryCellsOff(self) -> None: ... + def ExtractOnlyBoundaryCellsOn(self) -> None: ... + def GetExtractBoundaryCells(self) -> int: ... + def GetExtractInside(self) -> int: ... + def GetExtractOnlyBoundaryCells(self) -> int: ... + def GetImplicitFunction(self) -> 'vtkImplicitFunction': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractGeometry': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractGeometry': ... + def SetExtractBoundaryCells(self, _arg:int) -> None: ... + def SetExtractInside(self, _arg:int) -> None: ... + def SetExtractOnlyBoundaryCells(self, _arg:int) -> None: ... + def SetImplicitFunction(self, __a:'vtkImplicitFunction') -> None: ... + +class vtkExtractGrid(vtkmodules.vtkCommonExecutionModel.vtkStructuredGridAlgorithm): + include_boundary:'getset_descriptor' + sample_rate:'getset_descriptor' + voi:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetIncludeBoundary(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSampleRate(self) -> Tuple[int, int, int]: ... + def GetVOI(self) -> Tuple[int, int, int, int, int, int]: ... + def IncludeBoundaryOff(self) -> None: ... + def IncludeBoundaryOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractGrid': ... + def SetIncludeBoundary(self, _arg:int) -> None: ... + @overload + def SetSampleRate(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetSampleRate(self, _arg:Sequence[int]) -> None: ... + @overload + def SetVOI(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetVOI(self, _arg:Sequence[int]) -> None: ... + +class vtkExtractLevel(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def AddLevel(self, level:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractLevel': ... + def RemoveAllLevels(self) -> None: ... + def RemoveLevel(self, level:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractLevel': ... + +class vtkExtractParticlesOverTime(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + id_channel_array:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetIdChannelArray(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractParticlesOverTime': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractParticlesOverTime': ... + def SetIdChannelArray(self, arg:str) -> None: ... + +class vtkExtractPolyDataGeometry(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + extract_boundary_cells:'getset_descriptor' + extract_inside:'getset_descriptor' + implicit_function:'getset_descriptor' + m_time:'getset_descriptor' + pass_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExtractBoundaryCellsOff(self) -> None: ... + def ExtractBoundaryCellsOn(self) -> None: ... + def ExtractInsideOff(self) -> None: ... + def ExtractInsideOn(self) -> None: ... + def GetExtractBoundaryCells(self) -> int: ... + def GetExtractInside(self) -> int: ... + def GetImplicitFunction(self) -> 'vtkImplicitFunction': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassPoints(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractPolyDataGeometry': ... + def PassPointsOff(self) -> None: ... + def PassPointsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractPolyDataGeometry': ... + def SetExtractBoundaryCells(self, _arg:int) -> None: ... + def SetExtractInside(self, _arg:int) -> None: ... + def SetImplicitFunction(self, __a:'vtkImplicitFunction') -> None: ... + def SetPassPoints(self, _arg:int) -> None: ... + +class vtkExtractRectilinearGrid(vtkmodules.vtkCommonExecutionModel.vtkRectilinearGridAlgorithm): + include_boundary:'getset_descriptor' + sample_rate:'getset_descriptor' + voi:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetIncludeBoundary(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSampleRate(self) -> Tuple[int, int, int]: ... + def GetVOI(self) -> Tuple[int, int, int, int, int, int]: ... + def IncludeBoundaryOff(self) -> None: ... + def IncludeBoundaryOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractRectilinearGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractRectilinearGrid': ... + def SetIncludeBoundary(self, _arg:int) -> None: ... + @overload + def SetSampleRate(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetSampleRate(self, _arg:Sequence[int]) -> None: ... + @overload + def SetVOI(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetVOI(self, _arg:Sequence[int]) -> None: ... + +class vtkExtractSelectedArraysOverTime(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + number_of_time_steps:'getset_descriptor' + report_statistics_only:'getset_descriptor' + selection_connection:'getset_descriptor' + selection_extractor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTimeSteps(self) -> int: ... + def GetReportStatisticsOnly(self) -> bool: ... + def GetSelectionExtractor(self) -> 'vtkExtractSelection': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractSelectedArraysOverTime': ... + def ReportStatisticsOnlyOff(self) -> None: ... + def ReportStatisticsOnlyOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractSelectedArraysOverTime': ... + def SetReportStatisticsOnly(self, _arg:bool) -> None: ... + def SetSelectionConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSelectionExtractor(self, __a:'vtkExtractSelection') -> None: ... + +class vtkExtractSelectedRows(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + add_original_row_ids_array:'getset_descriptor' + annotation_layers_connection:'getset_descriptor' + selection_connection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddOriginalRowIdsArrayOff(self) -> None: ... + def AddOriginalRowIdsArrayOn(self) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetAddOriginalRowIdsArray(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractSelectedRows': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractSelectedRows': ... + def SetAddOriginalRowIdsArray(self, _arg:bool) -> None: ... + def SetAnnotationLayersConnection(self, in_:'vtkAlgorithmOutput') -> None: ... + def SetSelectionConnection(self, in_:'vtkAlgorithmOutput') -> None: ... + +class vtkExtractSelection(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + hyper_tree_grid_to_unstructured_grid:'getset_descriptor' + preserve_topology:'getset_descriptor' + selection_connection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetHyperTreeGridToUnstructuredGrid(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPreserveTopology(self) -> bool: ... + def HyperTreeGridToUnstructuredGridOff(self) -> None: ... + def HyperTreeGridToUnstructuredGridOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractSelection': ... + def PreserveTopologyOff(self) -> None: ... + def PreserveTopologyOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractSelection': ... + def SetHyperTreeGridToUnstructuredGrid(self, _arg:bool) -> None: ... + def SetPreserveTopology(self, _arg:bool) -> None: ... + def SetSelectionConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + +class vtkExtractTensorComponents(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + extract_normals:'getset_descriptor' + extract_scalars:'getset_descriptor' + extract_t_coords:'getset_descriptor' + extract_vectors:'getset_descriptor' + normal_components:'getset_descriptor' + normalize_normals:'getset_descriptor' + number_of_t_coords:'getset_descriptor' + number_of_t_coords_max_value:'getset_descriptor' + number_of_t_coords_min_value:'getset_descriptor' + output_precision:'getset_descriptor' + pass_tensors_to_output:'getset_descriptor' + scalar_components:'getset_descriptor' + scalar_mode:'getset_descriptor' + t_coord_components:'getset_descriptor' + vector_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExtractNormalsOff(self) -> None: ... + def ExtractNormalsOn(self) -> None: ... + def ExtractScalarsOff(self) -> None: ... + def ExtractScalarsOn(self) -> None: ... + def ExtractTCoordsOff(self) -> None: ... + def ExtractTCoordsOn(self) -> None: ... + def ExtractVectorsOff(self) -> None: ... + def ExtractVectorsOn(self) -> None: ... + def GetExtractNormals(self) -> int: ... + def GetExtractScalars(self) -> int: ... + def GetExtractTCoords(self) -> int: ... + def GetExtractVectors(self) -> int: ... + def GetNormalComponents(self) -> Tuple[int, int, int, int, int, int]: ... + def GetNormalizeNormals(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTCoords(self) -> int: ... + def GetNumberOfTCoordsMaxValue(self) -> int: ... + def GetNumberOfTCoordsMinValue(self) -> int: ... + def GetOutputPrecision(self) -> int: ... + def GetPassTensorsToOutput(self) -> int: ... + def GetScalarComponents(self) -> Tuple[int, int]: ... + def GetScalarMode(self) -> int: ... + def GetTCoordComponents(self) -> Tuple[int, int, int, int, int, int]: ... + def GetVectorComponents(self) -> Tuple[int, int, int, int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractTensorComponents': ... + def NormalizeNormalsOff(self) -> None: ... + def NormalizeNormalsOn(self) -> None: ... + def PassTensorsToOutputOff(self) -> None: ... + def PassTensorsToOutputOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractTensorComponents': ... + def ScalarIsComponent(self) -> None: ... + def ScalarIsDeterminant(self) -> None: ... + def ScalarIsEffectiveStress(self) -> None: ... + def ScalarIsNonNegativeDeterminant(self) -> None: ... + def ScalarIsTrace(self) -> None: ... + def SetExtractNormals(self, _arg:int) -> None: ... + def SetExtractScalars(self, _arg:int) -> None: ... + def SetExtractTCoords(self, _arg:int) -> None: ... + def SetExtractVectors(self, _arg:int) -> None: ... + @overload + def SetNormalComponents(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetNormalComponents(self, _arg:Sequence[int]) -> None: ... + def SetNormalizeNormals(self, _arg:int) -> None: ... + def SetNumberOfTCoords(self, _arg:int) -> None: ... + def SetOutputPrecision(self, _arg:int) -> None: ... + def SetPassTensorsToOutput(self, _arg:int) -> None: ... + @overload + def SetScalarComponents(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetScalarComponents(self, _arg:Sequence[int]) -> None: ... + def SetScalarMode(self, _arg:int) -> None: ... + def SetScalarModeToComponent(self) -> None: ... + def SetScalarModeToDeterminant(self) -> None: ... + def SetScalarModeToEffectiveStress(self) -> None: ... + def SetScalarModeToNonNegativeDeterminant(self) -> None: ... + def SetScalarModeToTrace(self) -> None: ... + @overload + def SetTCoordComponents(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetTCoordComponents(self, _arg:Sequence[int]) -> None: ... + @overload + def SetVectorComponents(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetVectorComponents(self, _arg:Sequence[int]) -> None: ... + +class vtkExtractTimeSteps(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + NEAREST_TIMESTEP:int + NEXT_TIMESTEP:int + PREVIOUS_TIMESTEP:int + number_of_time_steps:'getset_descriptor' + range:'getset_descriptor' + time_estimation_mode:'getset_descriptor' + time_step_interval:'getset_descriptor' + use_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddTimeStepIndex(self, timeStepIndex:int) -> None: ... + def ClearTimeStepIndices(self) -> None: ... + def GenerateTimeStepIndices(self, begin:int, end:int, step:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTimeSteps(self) -> int: ... + def GetRange(self) -> Tuple[int, int]: ... + def GetTimeEstimationMode(self) -> int: ... + def GetTimeStepIndices(self, timeStepIndices:MutableSequence[int]) -> None: ... + def GetTimeStepInterval(self) -> int: ... + def GetTimeStepIntervalMaxValue(self) -> int: ... + def GetTimeStepIntervalMinValue(self) -> int: ... + def GetUseRange(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractTimeSteps': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractTimeSteps': ... + @overload + def SetRange(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetRange(self, _arg:Sequence[int]) -> None: ... + def SetTimeEstimationMode(self, _arg:int) -> None: ... + def SetTimeEstimationModeToNearest(self) -> None: ... + def SetTimeEstimationModeToNext(self) -> None: ... + def SetTimeEstimationModeToPrevious(self) -> None: ... + def SetTimeStepIndices(self, count:int, timeStepIndices:Sequence[int]) -> None: ... + def SetTimeStepInterval(self, _arg:int) -> None: ... + def SetUseRange(self, _arg:bool) -> None: ... + def UseRangeOff(self) -> None: ... + def UseRangeOn(self) -> None: ... + +class vtkExtractUnstructuredGrid(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + cell_clipping:'getset_descriptor' + cell_maximum:'getset_descriptor' + cell_minimum:'getset_descriptor' + extent:'getset_descriptor' + extent_clipping:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + merging:'getset_descriptor' + point_clipping:'getset_descriptor' + point_maximum:'getset_descriptor' + point_minimum:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellClippingOff(self) -> None: ... + def CellClippingOn(self) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def ExtentClippingOff(self) -> None: ... + def ExtentClippingOn(self) -> None: ... + def GetCellClipping(self) -> int: ... + def GetCellMaximum(self) -> int: ... + def GetCellMaximumMaxValue(self) -> int: ... + def GetCellMaximumMinValue(self) -> int: ... + def GetCellMinimum(self) -> int: ... + def GetCellMinimumMaxValue(self) -> int: ... + def GetCellMinimumMinValue(self) -> int: ... + def GetExtent(self) -> Tuple[float, float, float, float, float, float]: ... + def GetExtentClipping(self) -> int: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetMerging(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointClipping(self) -> int: ... + def GetPointMaximum(self) -> int: ... + def GetPointMaximumMaxValue(self) -> int: ... + def GetPointMaximumMinValue(self) -> int: ... + def GetPointMinimum(self) -> int: ... + def GetPointMinimumMaxValue(self) -> int: ... + def GetPointMinimumMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergingOff(self) -> None: ... + def MergingOn(self) -> None: ... + def NewInstance(self) -> 'vtkExtractUnstructuredGrid': ... + def PointClippingOff(self) -> None: ... + def PointClippingOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractUnstructuredGrid': ... + def SetCellClipping(self, _arg:int) -> None: ... + def SetCellMaximum(self, _arg:int) -> None: ... + def SetCellMinimum(self, _arg:int) -> None: ... + @overload + def SetExtent(self, xMin:float, xMax:float, yMin:float, yMax:float, zMin:float, zMax:float) -> None: ... + @overload + def SetExtent(self, extent:MutableSequence[float]) -> None: ... + def SetExtentClipping(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetMerging(self, _arg:int) -> None: ... + def SetPointClipping(self, _arg:int) -> None: ... + def SetPointMaximum(self, _arg:int) -> None: ... + def SetPointMinimum(self, _arg:int) -> None: ... + +class vtkExtractVectorComponents(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + extract_to_field_data:'getset_descriptor' + input_data:'getset_descriptor' + vx_component:'getset_descriptor' + vy_component:'getset_descriptor' + vz_component:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExtractToFieldDataOff(self) -> None: ... + def ExtractToFieldDataOn(self) -> None: ... + def GetExtractToFieldData(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVxComponent(self) -> 'vtkDataSet': ... + def GetVyComponent(self) -> 'vtkDataSet': ... + def GetVzComponent(self) -> 'vtkDataSet': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractVectorComponents': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractVectorComponents': ... + def SetExtractToFieldData(self, _arg:int) -> None: ... + def SetInputData(self, input:'vtkDataSet') -> None: ... + +class vtkFrustumSelector(vtkSelector): + frustum:'getset_descriptor' + m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFrustum(self) -> 'vtkPlanes': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, node:'vtkSelectionNode') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFrustumSelector': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFrustumSelector': ... + def SetFrustum(self, __a:'vtkPlanes') -> None: ... + +class vtkHierarchicalDataExtractDataSets(vtkExtractDataSets): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHierarchicalDataExtractDataSets': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHierarchicalDataExtractDataSets': ... + +class vtkHierarchicalDataExtractLevel(vtkExtractLevel): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHierarchicalDataExtractLevel': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHierarchicalDataExtractLevel': ... + +class vtkLocationSelector(vtkSelector): + def __init__(self, **properties:Any) -> None: ... + def Finalize(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, node:'vtkSelectionNode') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLocationSelector': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLocationSelector': ... + +class vtkProbeSelectedLocations(vtkmodules.vtkFiltersGeneral.vtkExtractSelectionBase): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProbeSelectedLocations': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProbeSelectedLocations': ... + +class vtkValueSelector(vtkSelector): + def __init__(self, **properties:Any) -> None: ... + def Finalize(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, node:'vtkSelectionNode') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkValueSelector': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkValueSelector': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersFlowPaths.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersFlowPaths.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..04ded58 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersFlowPaths.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersFlowPaths.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersFlowPaths.pyi new file mode 100644 index 0000000..895f00e --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersFlowPaths.pyi @@ -0,0 +1,999 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonDataModel +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkCommonMath + +class vtkAbstractInterpolatedVelocityField(vtkmodules.vtkCommonMath.vtkFunctionSet): + class VelocityFieldInitializationState(int): ... + INITIALIZE_ALL_DATASETS:'VelocityFieldInitializationState' + NOT_INITIALIZED:'VelocityFieldInitializationState' + SELF_INITIALIZE:'VelocityFieldInitializationState' + cache_hit:'getset_descriptor' + cache_miss:'getset_descriptor' + caching:'getset_descriptor' + find_cell_strategy:'getset_descriptor' + force_surface_tangent_vector:'getset_descriptor' + initialization_state:'getset_descriptor' + last_cell_id:'getset_descriptor' + last_data_set:'getset_descriptor' + normalize_vector:'getset_descriptor' + surface_dataset:'getset_descriptor' + vectors_selection:'getset_descriptor' + vectors_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClearLastCellId(self) -> None: ... + def CopyParameters(self, from_:'vtkAbstractInterpolatedVelocityField') -> None: ... + @overload + def FunctionValues(self, x:MutableSequence[float], f:MutableSequence[float]) -> int: ... + @overload + def FunctionValues(self, x:MutableSequence[float], f:MutableSequence[float], userData:Pointer) -> int: ... + def GetCacheHit(self) -> int: ... + def GetCacheMiss(self) -> int: ... + def GetCaching(self) -> bool: ... + def GetFindCellStrategy(self) -> 'vtkFindCellStrategy': ... + def GetForceSurfaceTangentVector(self) -> bool: ... + def GetInitializationState(self) -> int: ... + def GetLastCellId(self) -> int: ... + def GetLastDataSet(self) -> 'vtkDataSet': ... + def GetLastLocalCoordinates(self, pcoords:MutableSequence[float]) -> int: ... + def GetLastWeights(self, w:MutableSequence[float]) -> int: ... + def GetNormalizeVector(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSurfaceDataset(self) -> bool: ... + def GetVectorsSelection(self) -> str: ... + def GetVectorsType(self) -> int: ... + def Initialize(self, compDS:'vtkCompositeDataSet', initStrategy:int=...) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAbstractInterpolatedVelocityField': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractInterpolatedVelocityField': ... + def SelectVectors(self, fieldAssociation:int, fieldName:str) -> None: ... + def SetCaching(self, _arg:bool) -> None: ... + def SetFindCellStrategy(self, __a:'vtkFindCellStrategy') -> None: ... + def SetForceSurfaceTangentVector(self, _arg:bool) -> None: ... + @overload + def SetLastCellId(self, c:int) -> None: ... + @overload + def SetLastCellId(self, c:int, dataindex:int) -> None: ... + def SetNormalizeVector(self, _arg:bool) -> None: ... + def SetSurfaceDataset(self, _arg:bool) -> None: ... + +class vtkAMRInterpolatedVelocityField(vtkAbstractInterpolatedVelocityField): + amr_data:'getset_descriptor' + amr_data_set:'getset_descriptor' + last_cell_id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CopyParameters(self, from_:'vtkAbstractInterpolatedVelocityField') -> None: ... + @staticmethod + def FindGrid(q:MutableSequence[float], amrds:'vtkOverlappingAMR', level:int, gridId:int) -> bool: ... + @overload + def FunctionValues(self, x:MutableSequence[float], f:MutableSequence[float]) -> int: ... + @overload + def FunctionValues(self, x:MutableSequence[float], f:MutableSequence[float], userData:Pointer) -> int: ... + def GetAmrDataSet(self) -> 'vtkOverlappingAMR': ... + def GetLastDataSetLocation(self, level:int, id:int) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAMRInterpolatedVelocityField': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAMRInterpolatedVelocityField': ... + def SetAMRData(self, amr:'vtkOverlappingAMR') -> None: ... + def SetAmrDataSet(self, __a:'vtkOverlappingAMR') -> None: ... + @overload + def SetLastCellId(self, c:int) -> None: ... + @overload + def SetLastCellId(self, c:int, dataindex:int) -> None: ... + def SetLastDataSet(self, level:int, id:int) -> bool: ... + +class vtkCompositeInterpolatedVelocityField(vtkAbstractInterpolatedVelocityField): + cache_data_set_hit:'getset_descriptor' + cache_data_set_miss:'getset_descriptor' + last_cell_id:'getset_descriptor' + last_data_set_index:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddDataSet(self, dataset:'vtkDataSet', maxCellSize:int=0) -> None: ... + def CopyParameters(self, from_:'vtkAbstractInterpolatedVelocityField') -> None: ... + @overload + def FunctionValues(self, x:MutableSequence[float], f:MutableSequence[float]) -> int: ... + @overload + def FunctionValues(self, x:MutableSequence[float], f:MutableSequence[float], userData:Pointer) -> int: ... + def GetCacheDataSetHit(self) -> int: ... + def GetCacheDataSetMiss(self) -> int: ... + def GetLastDataSetIndex(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InsideTest(self, x:MutableSequence[float]) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositeInterpolatedVelocityField': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeInterpolatedVelocityField': ... + @overload + def SetLastCellId(self, c:int, dataindex:int) -> None: ... + @overload + def SetLastCellId(self, c:int) -> None: ... + def SnapPointOnCell(self, pOrigin:MutableSequence[float], pProj:MutableSequence[float]) -> int: ... + +class vtkEvenlySpacedStreamlines2D(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + closed_loop_maximum_distance:'getset_descriptor' + compute_vorticity:'getset_descriptor' + initial_integration_step:'getset_descriptor' + integration_step_unit:'getset_descriptor' + integrator:'getset_descriptor' + integrator_type:'getset_descriptor' + interpolator_prototype:'getset_descriptor' + interpolator_type:'getset_descriptor' + loop_angle:'getset_descriptor' + maximum_number_of_steps:'getset_descriptor' + minimum_number_of_loop_points:'getset_descriptor' + separating_distance:'getset_descriptor' + separating_distance_ratio:'getset_descriptor' + start_position:'getset_descriptor' + terminal_speed:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetClosedLoopMaximumDistance(self) -> float: ... + def GetComputeVorticity(self) -> bool: ... + def GetInitialIntegrationStep(self) -> float: ... + def GetIntegrationStepUnit(self) -> int: ... + def GetIntegrator(self) -> 'vtkInitialValueProblemSolver': ... + def GetIntegratorType(self) -> int: ... + def GetLoopAngle(self) -> float: ... + def GetMaximumNumberOfSteps(self) -> int: ... + def GetMinimumNumberOfLoopPoints(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSeparatingDistance(self) -> float: ... + def GetSeparatingDistanceRatio(self) -> float: ... + def GetStartPosition(self) -> Tuple[float, float, float]: ... + def GetTerminalSpeed(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEvenlySpacedStreamlines2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEvenlySpacedStreamlines2D': ... + def SetClosedLoopMaximumDistance(self, _arg:float) -> None: ... + def SetComputeVorticity(self, _arg:bool) -> None: ... + def SetInitialIntegrationStep(self, _arg:float) -> None: ... + def SetIntegrationStepUnit(self, unit:int) -> None: ... + def SetIntegrator(self, __a:'vtkInitialValueProblemSolver') -> None: ... + def SetIntegratorType(self, type:int) -> None: ... + def SetIntegratorTypeToRungeKutta2(self) -> None: ... + def SetIntegratorTypeToRungeKutta4(self) -> None: ... + def SetInterpolatorPrototype(self, ivf:'vtkAbstractInterpolatedVelocityField') -> None: ... + def SetInterpolatorType(self, interpType:int) -> None: ... + def SetInterpolatorTypeToCellLocator(self) -> None: ... + def SetInterpolatorTypeToDataSetPointLocator(self) -> None: ... + def SetLoopAngle(self, _arg:float) -> None: ... + def SetMaximumNumberOfSteps(self, _arg:int) -> None: ... + def SetMinimumNumberOfLoopPoints(self, _arg:int) -> None: ... + def SetSeparatingDistance(self, _arg:float) -> None: ... + def SetSeparatingDistanceRatio(self, _arg:float) -> None: ... + @overload + def SetStartPosition(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetStartPosition(self, _arg:Sequence[float]) -> None: ... + def SetTerminalSpeed(self, _arg:float) -> None: ... + +class vtkIntervalInformation(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkIntervalInformation') -> None: ... + @overload + @staticmethod + def ConvertToLength(interval:float, unit:int, cellLength:float) -> float: ... + @overload + @staticmethod + def ConvertToLength(interval:'vtkIntervalInformation', cellLength:float) -> float: ... + +class vtkLagrangianBasicIntegrationModel(vtkmodules.vtkCommonMath.vtkFunctionSet): + class SurfaceType(int): ... + class VariableStep(int): ... + SURFACE_TYPE_BOUNCE:'SurfaceType' + SURFACE_TYPE_BREAK:'SurfaceType' + SURFACE_TYPE_MODEL:'SurfaceType' + SURFACE_TYPE_PASS:'SurfaceType' + SURFACE_TYPE_TERM:'SurfaceType' + VARIABLE_STEP_CURRENT:'VariableStep' + VARIABLE_STEP_NEXT:'VariableStep' + VARIABLE_STEP_PREV:'VariableStep' + locator:'getset_descriptor' + locator_tolerance:'getset_descriptor' + locators_built:'getset_descriptor' + non_planar_quad_support:'getset_descriptor' + number_of_tracked_user_data:'getset_descriptor' + seed_array_comps:'getset_descriptor' + seed_array_names:'getset_descriptor' + seed_array_types:'getset_descriptor' + surface_array_comps:'getset_descriptor' + surface_array_default_values:'getset_descriptor' + surface_array_enum_values:'getset_descriptor' + surface_array_names:'getset_descriptor' + surface_array_types:'getset_descriptor' + tolerance:'getset_descriptor' + tracker:'getset_descriptor' + use_initial_integration_time:'getset_descriptor' + weights_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddDataSet(self, dataset:'vtkDataSet', surface:bool=False, surfaceFlatIndex:int=0) -> None: ... + def ClearDataSets(self, surface:bool=False) -> None: ... + def FinalizeOutputs(self, particlePathsOutput:'vtkPolyData', interractionOutput:'vtkDataObject') -> bool: ... + @overload + def FunctionValues(self, x:MutableSequence[float], f:MutableSequence[float], userData:Pointer) -> int: ... + @overload + def FunctionValues(self, x:MutableSequence[float], f:MutableSequence[float]) -> int: ... + def GetLocator(self) -> 'vtkAbstractCellLocator': ... + def GetLocatorTolerance(self) -> float: ... + def GetLocatorsBuilt(self) -> bool: ... + def GetNonPlanarQuadSupport(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTrackedUserData(self) -> int: ... + def GetSeedArray(self, idx:int, pointData:'vtkPointData') -> 'vtkAbstractArray': ... + def GetSeedArrayComps(self) -> 'vtkIntArray': ... + def GetSeedArrayNames(self) -> 'vtkStringArray': ... + def GetSeedArrayTypes(self) -> 'vtkIntArray': ... + def GetSurfaceArrayComps(self) -> 'vtkIntArray': ... + def GetSurfaceArrayDefaultValues(self) -> 'vtkDoubleArray': ... + def GetSurfaceArrayEnumValues(self) -> 'vtkStringArray': ... + def GetSurfaceArrayNames(self) -> 'vtkStringArray': ... + def GetSurfaceArrayTypes(self) -> 'vtkIntArray': ... + def GetTolerance(self) -> float: ... + def GetUseInitialIntegrationTime(self) -> bool: ... + def GetWeightsSize(self) -> int: ... + def InitializeInteractionData(self, data:'vtkFieldData') -> None: ... + def InitializeParticleData(self, particleData:'vtkFieldData', maxTuples:int=0) -> None: ... + def InitializePathData(self, data:'vtkFieldData') -> None: ... + def InitializeThreadedData(self) -> 'vtkLagrangianThreadedData': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLagrangianBasicIntegrationModel': ... + def NonPlanarQuadSupportOff(self) -> None: ... + def NonPlanarQuadSupportOn(self) -> None: ... + def PreParticleInitalization(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLagrangianBasicIntegrationModel': ... + def SetInputArrayToProcess(self, idx:int, port:int, connection:int, fieldAssociation:int, name:str) -> None: ... + def SetLocator(self, locator:'vtkAbstractCellLocator') -> None: ... + def SetLocatorsBuilt(self, _arg:bool) -> None: ... + def SetNonPlanarQuadSupport(self, _arg:bool) -> None: ... + def SetNumberOfTrackedUserData(self, _arg:int) -> None: ... + def SetTracker(self, Tracker:'vtkLagrangianParticleTracker') -> None: ... + def SetUseInitialIntegrationTime(self, _arg:bool) -> None: ... + def UseInitialIntegrationTimeOff(self) -> None: ... + def UseInitialIntegrationTimeOn(self) -> None: ... + +class vtkLagrangianMatidaIntegrationModel(vtkLagrangianBasicIntegrationModel): + gravity:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def FunctionValues(self, x:MutableSequence[float], f:MutableSequence[float], userData:Pointer) -> int: ... + @overload + def FunctionValues(self, x:MutableSequence[float], f:MutableSequence[float]) -> int: ... + def GetGravity(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLagrangianMatidaIntegrationModel': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLagrangianMatidaIntegrationModel': ... + @overload + def SetGravity(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetGravity(self, _arg:Sequence[float]) -> None: ... + +class vtkLagrangianParticle(object): + class ParticleTermination(int): ... + class SurfaceInteraction(int): ... + PARTICLE_TERMINATION_ABORTED:'ParticleTermination' + PARTICLE_TERMINATION_FLIGHT_TERMINATED:'ParticleTermination' + PARTICLE_TERMINATION_NOT_TERMINATED:'ParticleTermination' + PARTICLE_TERMINATION_OUT_OF_DOMAIN:'ParticleTermination' + PARTICLE_TERMINATION_OUT_OF_STEPS:'ParticleTermination' + PARTICLE_TERMINATION_OUT_OF_TIME:'ParticleTermination' + PARTICLE_TERMINATION_SURF_BREAK:'ParticleTermination' + PARTICLE_TERMINATION_SURF_TERMINATED:'ParticleTermination' + PARTICLE_TERMINATION_TRANSFERRED:'ParticleTermination' + SURFACE_INTERACTION_BOUNCE:'SurfaceInteraction' + SURFACE_INTERACTION_BREAK:'SurfaceInteraction' + SURFACE_INTERACTION_NO_INTERACTION:'SurfaceInteraction' + SURFACE_INTERACTION_OTHER:'SurfaceInteraction' + SURFACE_INTERACTION_PASS:'SurfaceInteraction' + SURFACE_INTERACTION_TERMINATED:'SurfaceInteraction' + equation_variables:'getset_descriptor' + id:'getset_descriptor' + integration_time:'getset_descriptor' + interaction:'getset_descriptor' + last_surface_cell_id:'getset_descriptor' + last_surface_data_set:'getset_descriptor' + next_equation_variables:'getset_descriptor' + next_position:'getset_descriptor' + next_tracked_user_data:'getset_descriptor' + next_user_variables:'getset_descriptor' + next_velocity:'getset_descriptor' + number_of_steps:'getset_descriptor' + number_of_user_variables:'getset_descriptor' + number_of_variables:'getset_descriptor' + p_insert_previous_position:'getset_descriptor' + p_manual_shift:'getset_descriptor' + parent_id:'getset_descriptor' + position:'getset_descriptor' + position_vector_magnitude:'getset_descriptor' + prev_equation_variables:'getset_descriptor' + prev_integration_time:'getset_descriptor' + prev_position:'getset_descriptor' + prev_tracked_user_data:'getset_descriptor' + prev_user_variables:'getset_descriptor' + prev_velocity:'getset_descriptor' + seed_array_tuple_index:'getset_descriptor' + seed_data:'getset_descriptor' + seed_id:'getset_descriptor' + step_time_ref:'getset_descriptor' + termination:'getset_descriptor' + threaded_data:'getset_descriptor' + tracked_user_data:'getset_descriptor' + user_flag:'getset_descriptor' + user_variables:'getset_descriptor' + velocity:'getset_descriptor' + def __init__(self, numberOfVariables:int, seedId:int, particleId:int, seedArrayTupleIndex:int, integrationTime:float, seedData:'vtkPointData', numberOfTrackedUserData:int) -> None: ... + def GetEquationVariables(self) -> Pointer: ... + def GetId(self) -> int: ... + def GetIntegrationTime(self) -> float: ... + def GetInteraction(self) -> int: ... + def GetLastSurfaceCellId(self) -> int: ... + def GetLastSurfaceDataSet(self) -> 'vtkDataSet': ... + def GetNextEquationVariables(self) -> Pointer: ... + def GetNextPosition(self) -> Pointer: ... + def GetNextTrackedUserData(self) -> Tuple[float, float]: ... + def GetNextUserVariables(self) -> Pointer: ... + def GetNextVelocity(self) -> Pointer: ... + def GetNumberOfSteps(self) -> int: ... + def GetNumberOfUserVariables(self) -> int: ... + def GetNumberOfVariables(self) -> int: ... + def GetPInsertPreviousPosition(self) -> bool: ... + def GetPManualShift(self) -> bool: ... + def GetParentId(self) -> int: ... + def GetPosition(self) -> Pointer: ... + def GetPositionVectorMagnitude(self) -> float: ... + def GetPrevEquationVariables(self) -> Pointer: ... + def GetPrevIntegrationTime(self) -> float: ... + def GetPrevPosition(self) -> Pointer: ... + def GetPrevTrackedUserData(self) -> Tuple[float, float]: ... + def GetPrevUserVariables(self) -> Pointer: ... + def GetPrevVelocity(self) -> Pointer: ... + def GetSeedArrayTupleIndex(self) -> int: ... + def GetSeedData(self) -> 'vtkPointData': ... + def GetSeedId(self) -> int: ... + def GetStepTimeRef(self) -> float: ... + def GetTermination(self) -> int: ... + def GetThreadedData(self) -> 'vtkLagrangianThreadedData': ... + def GetTrackedUserData(self) -> Tuple[float, float]: ... + def GetUserFlag(self) -> int: ... + def GetUserVariables(self) -> Pointer: ... + def GetVelocity(self) -> Pointer: ... + def MoveToNextPosition(self) -> None: ... + def SetIntegrationTime(self, time:float) -> None: ... + def SetInteraction(self, interaction:int) -> None: ... + def SetLastSurfaceCell(self, dataset:'vtkDataSet', cellId:int) -> None: ... + def SetPInsertPreviousPosition(self, val:bool) -> None: ... + def SetPManualShift(self, val:bool) -> None: ... + def SetParentId(self, parentId:int) -> None: ... + def SetTermination(self, termination:int) -> None: ... + def SetThreadedData(self, threadedData:'vtkLagrangianThreadedData') -> None: ... + def SetUserFlag(self, flag:int) -> None: ... + +class vtkLagrangianParticleTracker(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + class CellLengthComputation(int): ... + STEP_CUR_CELL_DIV_THEO:'CellLengthComputation' + STEP_CUR_CELL_LENGTH:'CellLengthComputation' + STEP_CUR_CELL_VEL_DIR:'CellLengthComputation' + adaptive_step_reintegration:'getset_descriptor' + cell_length_computation_mode:'getset_descriptor' + force_p_manual_shift:'getset_descriptor' + generate_particle_paths_output:'getset_descriptor' + generate_poly_vertex_interaction_output:'getset_descriptor' + integration_model:'getset_descriptor' + integrator:'getset_descriptor' + m_time:'getset_descriptor' + maximum_integration_time:'getset_descriptor' + maximum_number_of_steps:'getset_descriptor' + new_particle_id:'getset_descriptor' + source:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + step_factor:'getset_descriptor' + step_factor_max:'getset_descriptor' + step_factor_min:'getset_descriptor' + surface:'getset_descriptor' + surface_connection:'getset_descriptor' + surface_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AdaptiveStepReintegrationOff(self) -> None: ... + def AdaptiveStepReintegrationOn(self) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def FillOutputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def ForcePManualShiftOff(self) -> None: ... + def ForcePManualShiftOn(self) -> None: ... + def GenerateParticlePathsOutputOff(self) -> None: ... + def GenerateParticlePathsOutputOn(self) -> None: ... + def GetAdaptiveStepReintegration(self) -> bool: ... + def GetCellLengthComputationMode(self) -> int: ... + def GetForcePManualShift(self) -> bool: ... + def GetGenerateParticlePathsOutput(self) -> bool: ... + def GetGeneratePolyVertexInteractionOutput(self) -> bool: ... + def GetIntegrationModel(self) -> 'vtkLagrangianBasicIntegrationModel': ... + def GetIntegrator(self) -> 'vtkInitialValueProblemSolver': ... + def GetMTime(self) -> int: ... + def GetMaximumIntegrationTime(self) -> float: ... + def GetMaximumNumberOfSteps(self) -> int: ... + def GetNewParticleId(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSource(self) -> 'vtkDataObject': ... + def GetStepFactor(self) -> float: ... + def GetStepFactorMax(self) -> float: ... + def GetStepFactorMin(self) -> float: ... + def GetSurface(self) -> 'vtkDataObject': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLagrangianParticleTracker': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLagrangianParticleTracker': ... + def SetAdaptiveStepReintegration(self, _arg:bool) -> None: ... + def SetCellLengthComputationMode(self, _arg:int) -> None: ... + def SetForcePManualShift(self, _arg:bool) -> None: ... + def SetGenerateParticlePathsOutput(self, _arg:bool) -> None: ... + def SetGeneratePolyVertexInteractionOutput(self, _arg:bool) -> None: ... + def SetIntegrationModel(self, integrationModel:'vtkLagrangianBasicIntegrationModel') -> None: ... + def SetIntegrator(self, integrator:'vtkInitialValueProblemSolver') -> None: ... + def SetMaximumIntegrationTime(self, _arg:float) -> None: ... + def SetMaximumNumberOfSteps(self, _arg:int) -> None: ... + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, source:'vtkDataObject') -> None: ... + def SetStepFactor(self, _arg:float) -> None: ... + def SetStepFactorMax(self, _arg:float) -> None: ... + def SetStepFactorMin(self, _arg:float) -> None: ... + def SetSurfaceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSurfaceData(self, source:'vtkDataObject') -> None: ... + +class vtkLinearTransformCellLocator(vtkmodules.vtkCommonDataModel.vtkAbstractCellLocator): + cell_locator:'getset_descriptor' + is_linear_transformation:'getset_descriptor' + use_all_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildLocator(self) -> None: ... + @overload + def FindCell(self, x:MutableSequence[float], tol2:float, cell:'vtkGenericCell', subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + @overload + def FindCell(self, x:MutableSequence[float]) -> int: ... + @overload + def FindCell(self, x:MutableSequence[float], tol2:float, GenCell:'vtkGenericCell', pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + def FindCellsAlongLine(self, p1:Sequence[float], p2:Sequence[float], tolerance:float, cellsIds:'vtkIdList') -> None: ... + def FindCellsAlongPlane(self, o:Sequence[float], n:Sequence[float], tolerance:float, cells:'vtkIdList') -> None: ... + def FindCellsWithinBounds(self, bbox:MutableSequence[float], cells:'vtkIdList') -> None: ... + @overload + def FindClosestPoint(self, x:Sequence[float], closestPoint:MutableSequence[float], cell:'vtkGenericCell', cellId:int, subId:int, dist2:float) -> None: ... + @overload + def FindClosestPoint(self, x:Sequence[float], closestPoint:MutableSequence[float], cellId:int, subId:int, dist2:float) -> None: ... + @overload + def FindClosestPointWithinRadius(self, x:MutableSequence[float], radius:float, closestPoint:MutableSequence[float], cell:'vtkGenericCell', cellId:int, subId:int, dist2:float, inside:int) -> int: ... + @overload + def FindClosestPointWithinRadius(self, x:MutableSequence[float], radius:float, closestPoint:MutableSequence[float], cellId:int, subId:int, dist2:float) -> int: ... + @overload + def FindClosestPointWithinRadius(self, x:MutableSequence[float], radius:float, closestPoint:MutableSequence[float], cell:'vtkGenericCell', cellId:int, subId:int, dist2:float) -> int: ... + def ForceBuildLocator(self) -> None: ... + def FreeSearchStructure(self) -> None: ... + def GenerateRepresentation(self, level:int, pd:'vtkPolyData') -> None: ... + def GetCellLocator(self) -> 'vtkAbstractCellLocator': ... + def GetIsLinearTransformation(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseAllPoints(self) -> bool: ... + def InsideCellBounds(self, x:MutableSequence[float], cellId:int) -> bool: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int, cellId:int, cell:'vtkGenericCell') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, points:'vtkPoints', cellIds:'vtkIdList', cell:'vtkGenericCell') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int, cellId:int) -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], points:'vtkPoints', cellIds:'vtkIdList') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, points:'vtkPoints', cellIds:'vtkIdList') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLinearTransformCellLocator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLinearTransformCellLocator': ... + def SetCellLocator(self, locator:'vtkAbstractCellLocator') -> None: ... + def SetUseAllPoints(self, _arg:bool) -> None: ... + def ShallowCopy(self, locator:'vtkAbstractCellLocator') -> None: ... + def UseAllPointsOff(self) -> None: ... + def UseAllPointsOn(self) -> None: ... + +class vtkModifiedBSPTree(vtkmodules.vtkCommonDataModel.vtkAbstractCellLocator): + leaf_node_cell_information:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildLocator(self) -> None: ... + @overload + def FindCell(self, x:MutableSequence[float], tol2:float, GenCell:'vtkGenericCell', subId:int, pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + @overload + def FindCell(self, x:MutableSequence[float]) -> int: ... + @overload + def FindCell(self, x:MutableSequence[float], tol2:float, GenCell:'vtkGenericCell', pcoords:MutableSequence[float], weights:MutableSequence[float]) -> int: ... + def FindCellsAlongLine(self, p1:Sequence[float], p2:Sequence[float], tolerance:float, cellsIds:'vtkIdList') -> None: ... + def ForceBuildLocator(self) -> None: ... + def FreeSearchStructure(self) -> None: ... + def GenerateRepresentation(self, level:int, pd:'vtkPolyData') -> None: ... + def GenerateRepresentationLeafs(self, pd:'vtkPolyData') -> None: ... + def GetLeafNodeCellInformation(self) -> 'vtkIdListCollection': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int, cellId:int, cell:'vtkGenericCell') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, points:'vtkPoints', cellIds:'vtkIdList', cell:'vtkGenericCell') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int, cellId:int) -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], points:'vtkPoints', cellIds:'vtkIdList') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, points:'vtkPoints', cellIds:'vtkIdList') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkModifiedBSPTree': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkModifiedBSPTree': ... + def ShallowCopy(self, locator:'vtkAbstractCellLocator') -> None: ... + +class vtkParallelVectors(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + first_vector_field_name:'getset_descriptor' + second_vector_field_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFirstVectorFieldName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSecondVectorFieldName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParallelVectors': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParallelVectors': ... + def SetFirstVectorFieldName(self, _arg:str) -> None: ... + def SetSecondVectorFieldName(self, _arg:str) -> None: ... + +class vtkParticleTracerBase(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class MeshOverTimeTypes(int): ... + class Solvers(int): ... + DIFFERENT:'MeshOverTimeTypes' + INTERPOLATOR_WITH_CELL_LOCATOR:int + INTERPOLATOR_WITH_DATASET_POINT_LOCATOR:int + LINEAR_TRANSFORMATION:'MeshOverTimeTypes' + NONE:'Solvers' + RUNGE_KUTTA2:'Solvers' + RUNGE_KUTTA4:'Solvers' + RUNGE_KUTTA45:'Solvers' + SAME_TOPOLOGY:'MeshOverTimeTypes' + STATIC:'MeshOverTimeTypes' + UNKNOWN:'Solvers' + compute_vorticity:'getset_descriptor' + controller:'getset_descriptor' + disable_reset_cache:'getset_descriptor' + enable_particle_writing:'getset_descriptor' + force_reinjection_every_n_steps:'getset_descriptor' + force_serial_execution:'getset_descriptor' + ignore_pipeline_time:'getset_descriptor' + integrator:'getset_descriptor' + integrator_type:'getset_descriptor' + interpolator_type:'getset_descriptor' + mesh_over_time:'getset_descriptor' + particle_file_name:'getset_descriptor' + particle_writer:'getset_descriptor' + rotation_scale:'getset_descriptor' + start_time:'getset_descriptor' + static_seeds:'getset_descriptor' + terminal_speed:'getset_descriptor' + termination_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddSourceConnection(self, input:'vtkAlgorithmOutput') -> None: ... + def DisableResetCacheOff(self) -> None: ... + def DisableResetCacheOn(self) -> None: ... + def EnableParticleWritingOff(self) -> None: ... + def EnableParticleWritingOn(self) -> None: ... + def ForceSerialExecutionOff(self) -> None: ... + def ForceSerialExecutionOn(self) -> None: ... + def GetComputeVorticity(self) -> bool: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetDisableResetCache(self) -> bool: ... + def GetEnableParticleWriting(self) -> int: ... + def GetForceReinjectionEveryNSteps(self) -> int: ... + def GetForceSerialExecution(self) -> bool: ... + def GetIgnorePipelineTime(self) -> int: ... + def GetIntegrator(self) -> 'vtkInitialValueProblemSolver': ... + def GetIntegratorType(self) -> int: ... + def GetMeshOverTime(self) -> int: ... + def GetMeshOverTimeMaxValue(self) -> int: ... + def GetMeshOverTimeMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParticleFileName(self) -> str: ... + def GetParticleWriter(self) -> 'vtkAbstractParticleWriter': ... + def GetRotationScale(self) -> float: ... + def GetStartTime(self) -> float: ... + def GetStaticSeeds(self) -> int: ... + def GetTerminalSpeed(self) -> float: ... + def GetTerminationTime(self) -> float: ... + def IgnorePipelineTimeOff(self) -> None: ... + def IgnorePipelineTimeOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParticleTracerBase': ... + def PrintParticleHistories(self) -> None: ... + def RemoveAllSources(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParticleTracerBase': ... + def SetComputeVorticity(self, __a:bool) -> None: ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetDisableResetCache(self, __a:bool) -> None: ... + def SetEnableParticleWriting(self, _arg:int) -> None: ... + def SetForceReinjectionEveryNSteps(self, __a:int) -> None: ... + def SetForceSerialExecution(self, _arg:bool) -> None: ... + def SetIgnorePipelineTime(self, _arg:int) -> None: ... + def SetIntegrator(self, __a:'vtkInitialValueProblemSolver') -> None: ... + def SetIntegratorType(self, type:int) -> None: ... + def SetInterpolatorType(self, interpolatorType:int) -> None: ... + def SetInterpolatorTypeToCellLocator(self) -> None: ... + def SetInterpolatorTypeToDataSetPointLocator(self) -> None: ... + def SetMeshOverTime(self, meshOverTime:int) -> None: ... + def SetMeshOverTimeToDifferent(self) -> None: ... + def SetMeshOverTimeToLinearTransformation(self) -> None: ... + def SetMeshOverTimeToSameTopology(self) -> None: ... + def SetMeshOverTimeToStatic(self) -> None: ... + def SetParticleFileName(self, _arg:str) -> None: ... + def SetParticleWriter(self, pw:'vtkAbstractParticleWriter') -> None: ... + def SetRotationScale(self, __a:float) -> None: ... + def SetStartTime(self, __a:float) -> None: ... + def SetStaticSeeds(self, _arg:int) -> None: ... + def SetTerminalSpeed(self, __a:float) -> None: ... + def SetTerminationTime(self, __a:float) -> None: ... + @staticmethod + def TimeStepsArrayName() -> str: ... + +class vtkParticlePathFilter(vtkParticleTracerBase): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParticlePathFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParticlePathFilter': ... + +class vtkParticleTracer(vtkParticleTracerBase): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParticleTracer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParticleTracer': ... + +class vtkStreaklineFilter(vtkParticleTracerBase): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStreaklineFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStreaklineFilter': ... + +class vtkStreamTracer(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class Units(int): ... + class ReasonForTermination(int): ... + class Solvers(int): ... + BACKWARD:int + BOTH:int + CELL_LENGTH_UNIT:'Units' + FIXED_REASONS_FOR_TERMINATION_COUNT:'ReasonForTermination' + FORWARD:int + INTERPOLATOR_WITH_CELL_LOCATOR:int + INTERPOLATOR_WITH_DATASET_POINT_LOCATOR:int + LENGTH_UNIT:'Units' + NONE:'Solvers' + NOT_INITIALIZED:'ReasonForTermination' + OUT_OF_DOMAIN:'ReasonForTermination' + OUT_OF_LENGTH:'ReasonForTermination' + OUT_OF_STEPS:'ReasonForTermination' + RUNGE_KUTTA2:'Solvers' + RUNGE_KUTTA4:'Solvers' + RUNGE_KUTTA45:'Solvers' + STAGNATION:'ReasonForTermination' + UNEXPECTED_VALUE:'ReasonForTermination' + UNKNOWN:'Solvers' + compute_vorticity:'getset_descriptor' + force_serial_execution:'getset_descriptor' + initial_integration_step:'getset_descriptor' + integration_direction:'getset_descriptor' + integration_step_unit:'getset_descriptor' + integrator:'getset_descriptor' + integrator_type:'getset_descriptor' + interpolator_prototype:'getset_descriptor' + interpolator_type:'getset_descriptor' + maximum_error:'getset_descriptor' + maximum_integration_step:'getset_descriptor' + maximum_number_of_steps:'getset_descriptor' + maximum_propagation:'getset_descriptor' + minimum_integration_step:'getset_descriptor' + rotation_scale:'getset_descriptor' + source:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + start_position:'getset_descriptor' + surface_streamlines:'getset_descriptor' + terminal_speed:'getset_descriptor' + use_local_seed_source:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CalculateVorticity(self, cell:'vtkGenericCell', pcoords:MutableSequence[float], cellVectors:'vtkDoubleArray', vorticity:MutableSequence[float]) -> None: ... + def ConvertIntervals(self, step:float, minStep:float, maxStep:float, direction:int, cellLength:float) -> None: ... + def ForceSerialExecutionOff(self) -> None: ... + def ForceSerialExecutionOn(self) -> None: ... + def GenerateNormals(self, output:'vtkPolyData', firstNormal:MutableSequence[float], vecName:str) -> None: ... + def GetComputeVorticity(self) -> bool: ... + def GetForceSerialExecution(self) -> bool: ... + def GetInitialIntegrationStep(self) -> float: ... + def GetIntegrationDirection(self) -> int: ... + def GetIntegrationDirectionMaxValue(self) -> int: ... + def GetIntegrationDirectionMinValue(self) -> int: ... + def GetIntegrationStepUnit(self) -> int: ... + def GetIntegrator(self) -> 'vtkInitialValueProblemSolver': ... + def GetIntegratorType(self) -> int: ... + def GetMaximumError(self) -> float: ... + def GetMaximumIntegrationStep(self) -> float: ... + def GetMaximumNumberOfSteps(self) -> int: ... + def GetMaximumPropagation(self) -> float: ... + def GetMinimumIntegrationStep(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRotationScale(self) -> float: ... + def GetSource(self) -> 'vtkDataSet': ... + def GetStartPosition(self) -> Tuple[float, float, float]: ... + def GetSurfaceStreamlines(self) -> bool: ... + def GetTerminalSpeed(self) -> float: ... + def GetUseLocalSeedSource(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStreamTracer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStreamTracer': ... + def SetComputeVorticity(self, _arg:bool) -> None: ... + def SetForceSerialExecution(self, _arg:bool) -> None: ... + def SetInitialIntegrationStep(self, _arg:float) -> None: ... + def SetIntegrationDirection(self, _arg:int) -> None: ... + def SetIntegrationDirectionToBackward(self) -> None: ... + def SetIntegrationDirectionToBoth(self) -> None: ... + def SetIntegrationDirectionToForward(self) -> None: ... + def SetIntegrationStepUnit(self, unit:int) -> None: ... + def SetIntegrator(self, __a:'vtkInitialValueProblemSolver') -> None: ... + def SetIntegratorType(self, type:int) -> None: ... + def SetIntegratorTypeToRungeKutta2(self) -> None: ... + def SetIntegratorTypeToRungeKutta4(self) -> None: ... + def SetIntegratorTypeToRungeKutta45(self) -> None: ... + def SetInterpolatorPrototype(self, ivf:'vtkAbstractInterpolatedVelocityField') -> None: ... + def SetInterpolatorType(self, interpType:int) -> None: ... + def SetInterpolatorTypeToCellLocator(self) -> None: ... + def SetInterpolatorTypeToDataSetPointLocator(self) -> None: ... + def SetMaximumError(self, _arg:float) -> None: ... + def SetMaximumIntegrationStep(self, _arg:float) -> None: ... + def SetMaximumNumberOfSteps(self, _arg:int) -> None: ... + def SetMaximumPropagation(self, _arg:float) -> None: ... + def SetMinimumIntegrationStep(self, _arg:float) -> None: ... + def SetRotationScale(self, _arg:float) -> None: ... + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, source:'vtkDataSet') -> None: ... + @overload + def SetStartPosition(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetStartPosition(self, _arg:Sequence[float]) -> None: ... + def SetSurfaceStreamlines(self, _arg:bool) -> None: ... + def SetTerminalSpeed(self, _arg:float) -> None: ... + def SetUseLocalSeedSource(self, _arg:bool) -> None: ... + def SurfaceStreamlinesOff(self) -> None: ... + def SurfaceStreamlinesOn(self) -> None: ... + def UseLocalSeedSourceOff(self) -> None: ... + def UseLocalSeedSourceOn(self) -> None: ... + +class vtkStreamSurface(vtkStreamTracer): + use_iterative_seeding:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseIterativeSeeding(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStreamSurface': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStreamSurface': ... + def SetUseIterativeSeeding(self, _arg:bool) -> None: ... + def UseIterativeSeedingOff(self) -> None: ... + def UseIterativeSeedingOn(self) -> None: ... + +class vtkTemporalInterpolatedVelocityField(vtkmodules.vtkCommonMath.vtkFunctionSet): + class MeshOverTimeTypes(int): ... + class IDStates(int): ... + DIFFERENT:'MeshOverTimeTypes' + INSIDE_ALL:'IDStates' + LINEAR_TRANSFORMATION:'MeshOverTimeTypes' + OUTSIDE_ALL:'IDStates' + OUTSIDE_T0:'IDStates' + OUTSIDE_T1:'IDStates' + SAME_TOPOLOGY:'MeshOverTimeTypes' + STATIC:'MeshOverTimeTypes' + current_weight:'getset_descriptor' + find_cell_strategy:'getset_descriptor' + last_good_velocity:'getset_descriptor' + mesh_over_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddDataSetAtTime(self, N:int, T:float, dataset:'vtkDataSet') -> None: ... + def AdvanceOneTimeStep(self) -> None: ... + def ClearCache(self) -> None: ... + def CopyParameters(self, from_:'vtkTemporalInterpolatedVelocityField') -> None: ... + @overload + def FunctionValues(self, x:MutableSequence[float], u:MutableSequence[float]) -> int: ... + @overload + def FunctionValues(self, x:MutableSequence[float], f:MutableSequence[float], userData:Pointer) -> int: ... + def FunctionValuesAtT(self, T:int, x:MutableSequence[float], u:MutableSequence[float]) -> int: ... + def GetCachedCellIds(self, id:MutableSequence[int], ds:MutableSequence[int]) -> bool: ... + def GetCurrentWeight(self) -> float: ... + def GetFindCellStrategy(self) -> 'vtkFindCellStrategy': ... + def GetLastGoodVelocity(self) -> Tuple[float, float, float]: ... + def GetMeshOverTime(self) -> int: ... + def GetMeshOverTimeMaxValue(self) -> int: ... + def GetMeshOverTimeMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, t0:'vtkCompositeDataSet', t1:'vtkCompositeDataSet') -> None: ... + @overload + def InterpolatePoint(self, outPD1:'vtkPointData', outPD2:'vtkPointData', outIndex:int) -> bool: ... + @overload + def InterpolatePoint(self, T:int, outPD1:'vtkPointData', outIndex:int) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTemporalInterpolatedVelocityField': ... + def QuickTestPoint(self, x:MutableSequence[float]) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTemporalInterpolatedVelocityField': ... + def SelectVectors(self, fieldName:str) -> None: ... + def SetCachedCellIds(self, id:MutableSequence[int], ds:MutableSequence[int]) -> None: ... + def SetFindCellStrategy(self, __a:'vtkFindCellStrategy') -> None: ... + def SetMeshOverTime(self, _arg:int) -> None: ... + def SetMeshOverTimeToDifferent(self) -> None: ... + def SetMeshOverTimeToLinearTransformation(self) -> None: ... + def SetMeshOverTimeToSameTopology(self) -> None: ... + def SetMeshOverTimeToStatic(self) -> None: ... + def ShowCacheResults(self) -> None: ... + def TestPoint(self, x:MutableSequence[float]) -> int: ... + +class vtkVectorFieldTopology(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + compute_surfaces:'getset_descriptor' + epsilon_critical_point:'getset_descriptor' + exclude_boundary:'getset_descriptor' + integration_step_size:'getset_descriptor' + integration_step_unit:'getset_descriptor' + interpolator_type:'getset_descriptor' + max_num_steps:'getset_descriptor' + offset_away_from_boundary:'getset_descriptor' + separatrix_distance:'getset_descriptor' + use_boundary_switch_points:'getset_descriptor' + use_iterative_seeding:'getset_descriptor' + vector_angle_threshold:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetComputeSurfaces(self) -> bool: ... + def GetEpsilonCriticalPoint(self) -> float: ... + def GetExcludeBoundary(self) -> bool: ... + def GetIntegrationStepSize(self) -> float: ... + def GetIntegrationStepUnit(self) -> int: ... + def GetMaxNumSteps(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffsetAwayFromBoundary(self) -> float: ... + def GetSeparatrixDistance(self) -> float: ... + def GetUseBoundarySwitchPoints(self) -> bool: ... + def GetUseIterativeSeeding(self) -> bool: ... + def GetVectorAngleThreshold(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVectorFieldTopology': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVectorFieldTopology': ... + def SetComputeSurfaces(self, _arg:bool) -> None: ... + def SetEpsilonCriticalPoint(self, _arg:float) -> None: ... + def SetExcludeBoundary(self, _arg:bool) -> None: ... + def SetIntegrationStepSize(self, _arg:float) -> None: ... + def SetIntegrationStepUnit(self, _arg:int) -> None: ... + def SetInterpolatorType(self, interpType:int) -> None: ... + def SetInterpolatorTypeToCellLocator(self) -> None: ... + def SetInterpolatorTypeToDataSetPointLocator(self) -> None: ... + def SetMaxNumSteps(self, _arg:int) -> None: ... + def SetOffsetAwayFromBoundary(self, _arg:float) -> None: ... + def SetSeparatrixDistance(self, _arg:float) -> None: ... + def SetUseBoundarySwitchPoints(self, _arg:bool) -> None: ... + def SetUseIterativeSeeding(self, _arg:bool) -> None: ... + def SetVectorAngleThreshold(self, _arg:float) -> None: ... + +class vtkVortexCore(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + faster_approximation:'getset_descriptor' + higher_order_method:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FasterApproximationOff(self) -> None: ... + def FasterApproximationOn(self) -> None: ... + def GetFasterApproximation(self) -> bool: ... + def GetHigherOrderMethod(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def HigherOrderMethodOff(self) -> None: ... + def HigherOrderMethodOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVortexCore': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVortexCore': ... + def SetFasterApproximation(self, _arg:bool) -> None: ... + def SetHigherOrderMethod(self, _arg:int) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeneral.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeneral.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..a6a32f5 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeneral.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeneral.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeneral.pyi new file mode 100644 index 0000000..c06c6b9 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeneral.pyi @@ -0,0 +1,4081 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonDataModel +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkFiltersCore + +VTK_CCS_SCALAR_MODE_COLORS:int +VTK_CCS_SCALAR_MODE_LABELS:int +VTK_CCS_SCALAR_MODE_NONE:int +VTK_CURVATURE_GAUSS:int +VTK_CURVATURE_MAXIMUM:int +VTK_CURVATURE_MEAN:int +VTK_CURVATURE_MINIMUM:int +VTK_DICE_MODE_MEMORY_LIMIT:int +VTK_DICE_MODE_NUMBER_OF_POINTS:int +VTK_DICE_MODE_SPECIFIED_NUMBER:int +VTK_ICON_GRAVITY_BOTTOM_CENTER:int +VTK_ICON_GRAVITY_BOTTOM_LEFT:int +VTK_ICON_GRAVITY_BOTTOM_RIGHT:int +VTK_ICON_GRAVITY_CENTER_CENTER:int +VTK_ICON_GRAVITY_CENTER_LEFT:int +VTK_ICON_GRAVITY_CENTER_RIGHT:int +VTK_ICON_GRAVITY_TOP_CENTER:int +VTK_ICON_GRAVITY_TOP_LEFT:int +VTK_ICON_GRAVITY_TOP_RIGHT:int +VTK_ICON_SCALING_OFF:int +VTK_ICON_SCALING_USE_SCALING_ARRAY:int +VTK_INTEGRATE_BACKWARD:int +VTK_INTEGRATE_BOTH_DIRECTIONS:int +VTK_INTEGRATE_FORWARD:int +VTK_INTEGRATE_MAJOR_EIGENVECTOR:int +VTK_INTEGRATE_MEDIUM_EIGENVECTOR:int +VTK_INTEGRATE_MINOR_EIGENVECTOR:int +VTK_SUBDIVIDE_LENGTH:int +VTK_SUBDIVIDE_SPECIFIED:int +VTK_TCOORDS_FROM_LENGTH:int +VTK_TCOORDS_FROM_NORMALIZED_LENGTH:int +VTK_TCOORDS_FROM_SCALARS:int +VTK_TCOORDS_OFF:int +VTK_TENSOR_MODE_COMPUTE_GRADIENT:int +VTK_TENSOR_MODE_COMPUTE_GREEN_LAGRANGE_STRAIN:int +VTK_TENSOR_MODE_COMPUTE_STRAIN:int +VTK_TENSOR_MODE_PASS_TENSORS:int +VTK_VECTOR_MODE_COMPUTE_GRADIENT:int +VTK_VECTOR_MODE_COMPUTE_VORTICITY:int +VTK_VECTOR_MODE_PASS_VECTORS:int +VTK_VOXEL_TO_12_TET:int +VTK_VOXEL_TO_5_AND_12_TET:int +VTK_VOXEL_TO_5_TET:int +VTK_VOXEL_TO_6_TET:int + +class vtkAnimateModes(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + animate_vibrations:'getset_descriptor' + displacement_magnitude:'getset_descriptor' + displacement_preapplied:'getset_descriptor' + mode_shape:'getset_descriptor' + mode_shapes_range:'getset_descriptor' + time_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AnimateVibrationsOff(self) -> None: ... + def AnimateVibrationsOn(self) -> None: ... + def DisplacementPreappliedOff(self) -> None: ... + def DisplacementPreappliedOn(self) -> None: ... + def GetAnimateVibrations(self) -> bool: ... + def GetDisplacementMagnitude(self) -> float: ... + def GetDisplacementPreapplied(self) -> bool: ... + def GetModeShape(self) -> int: ... + def GetModeShapeMaxValue(self) -> int: ... + def GetModeShapeMinValue(self) -> int: ... + def GetModeShapesRange(self) -> Tuple[int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTimeRange(self) -> Tuple[float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAnimateModes': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAnimateModes': ... + def SetAnimateVibrations(self, _arg:bool) -> None: ... + def SetDisplacementMagnitude(self, _arg:float) -> None: ... + def SetDisplacementPreapplied(self, _arg:bool) -> None: ... + def SetModeShape(self, _arg:int) -> None: ... + +class vtkAnnotationLink(vtkmodules.vtkCommonExecutionModel.vtkAnnotationLayersAlgorithm): + annotation_layers:'getset_descriptor' + current_selection:'getset_descriptor' + m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddDomainMap(self, map:'vtkTable') -> None: ... + def GetAnnotationLayers(self) -> 'vtkAnnotationLayers': ... + def GetCurrentSelection(self) -> 'vtkSelection': ... + def GetDomainMap(self, i:int) -> 'vtkTable': ... + def GetMTime(self) -> int: ... + def GetNumberOfDomainMaps(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAnnotationLink': ... + def RemoveAllDomainMaps(self) -> None: ... + def RemoveDomainMap(self, map:'vtkTable') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAnnotationLink': ... + def SetAnnotationLayers(self, layers:'vtkAnnotationLayers') -> None: ... + def SetCurrentSelection(self, sel:'vtkSelection') -> None: ... + +class vtkAppendLocationAttributes(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + append_cell_centers:'getset_descriptor' + append_point_locations:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AppendCellCentersOff(self) -> None: ... + def AppendCellCentersOn(self) -> None: ... + def AppendPointLocationsOff(self) -> None: ... + def AppendPointLocationsOn(self) -> None: ... + def GetAppendCellCenters(self) -> bool: ... + def GetAppendPointLocations(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAppendLocationAttributes': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAppendLocationAttributes': ... + def SetAppendCellCenters(self, _arg:bool) -> None: ... + def SetAppendPointLocations(self, _arg:bool) -> None: ... + +class vtkAppendPoints(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + input_id_array_name:'getset_descriptor' + output_points_precision:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInputIdArrayName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAppendPoints': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAppendPoints': ... + def SetInputIdArrayName(self, _arg:str) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + +class vtkSubdivisionFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + check_for_triangles:'getset_descriptor' + number_of_subdivisions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CheckForTrianglesOff(self) -> None: ... + def CheckForTrianglesOn(self) -> None: ... + def GetCheckForTriangles(self) -> int: ... + def GetCheckForTrianglesMaxValue(self) -> int: ... + def GetCheckForTrianglesMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSubdivisions(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSubdivisionFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSubdivisionFilter': ... + def SetCheckForTriangles(self, _arg:int) -> None: ... + def SetNumberOfSubdivisions(self, _arg:int) -> None: ... + +class vtkApproximatingSubdivisionFilter(vtkSubdivisionFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkApproximatingSubdivisionFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkApproximatingSubdivisionFilter': ... + +class vtkAreaContourSpectrumFilter(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + arc_id:'getset_descriptor' + field_id:'getset_descriptor' + number_of_samples:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArcId(self) -> int: ... + def GetFieldId(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSamples(self) -> int: ... + def GetOutput(self) -> 'vtkTable': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAreaContourSpectrumFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAreaContourSpectrumFilter': ... + def SetArcId(self, _arg:int) -> None: ... + def SetFieldId(self, _arg:int) -> None: ... + def SetNumberOfSamples(self, _arg:int) -> None: ... + +class vtkAxes(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + compute_normals:'getset_descriptor' + origin:'getset_descriptor' + scale_factor:'getset_descriptor' + symmetric:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def GetComputeNormals(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetScaleFactor(self) -> float: ... + def GetSymmetric(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAxes': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAxes': ... + def SetComputeNormals(self, _arg:int) -> None: ... + @overload + def SetOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOrigin(self, _arg:Sequence[float]) -> None: ... + def SetScaleFactor(self, _arg:float) -> None: ... + def SetSymmetric(self, _arg:int) -> None: ... + def SymmetricOff(self) -> None: ... + def SymmetricOn(self) -> None: ... + +class vtkAxisAlignedReflectionFilter(vtkmodules.vtkCommonExecutionModel.vtkCompositeDataSetAlgorithm): + class PlaneModes(int): ... + class PlaneAxis(int): ... + PLANE:'PlaneModes' + X_MAX:'PlaneModes' + X_MIN:'PlaneModes' + X_PLANE:'PlaneAxis' + Y_MAX:'PlaneModes' + Y_MIN:'PlaneModes' + Y_PLANE:'PlaneAxis' + Z_MAX:'PlaneModes' + Z_MIN:'PlaneModes' + Z_PLANE:'PlaneAxis' + copy_input:'getset_descriptor' + m_time:'getset_descriptor' + plane_mode:'getset_descriptor' + reflect_all_input_arrays:'getset_descriptor' + reflection_plane:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CopyInputOff(self) -> None: ... + def CopyInputOn(self) -> None: ... + def GetCopyInput(self) -> bool: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPlaneMode(self) -> int: ... + def GetPlaneModeMaxValue(self) -> int: ... + def GetPlaneModeMinValue(self) -> int: ... + def GetReflectAllInputArrays(self) -> bool: ... + def GetReflectionPlane(self) -> 'vtkPlane': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAxisAlignedReflectionFilter': ... + def ReflectAllInputArraysOff(self) -> None: ... + def ReflectAllInputArraysOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAxisAlignedReflectionFilter': ... + def SetCopyInput(self, _arg:bool) -> None: ... + def SetPlaneMode(self, _arg:int) -> None: ... + def SetPlaneModeToPlane(self) -> None: ... + def SetPlaneModeToXMax(self) -> None: ... + def SetPlaneModeToXMin(self) -> None: ... + def SetPlaneModeToYMax(self) -> None: ... + def SetPlaneModeToYMin(self) -> None: ... + def SetPlaneModeToZMax(self) -> None: ... + def SetPlaneModeToZMin(self) -> None: ... + def SetReflectAllInputArrays(self, _arg:bool) -> None: ... + def SetReflectionPlane(self, _arg:'vtkPlane') -> None: ... + +class vtkAxisAlignedTransformFilter(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + class Angle(int): ... + class Axis(int): ... + ROT0:'Angle' + ROT180:'Angle' + ROT270:'Angle' + ROT90:'Angle' + X:'Axis' + Y:'Axis' + Z:'Axis' + rotation_angle:'getset_descriptor' + rotation_axis:'getset_descriptor' + scale:'getset_descriptor' + translation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRotationAngle(self) -> int: ... + def GetRotationAngleMaxValue(self) -> int: ... + def GetRotationAngleMinValue(self) -> int: ... + def GetRotationAxis(self) -> int: ... + def GetRotationAxisMaxValue(self) -> int: ... + def GetRotationAxisMinValue(self) -> int: ... + def GetScale(self) -> Tuple[float, float, float]: ... + def GetTranslation(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAxisAlignedTransformFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAxisAlignedTransformFilter': ... + def SetRotationAngle(self, _arg:int) -> None: ... + def SetRotationAxis(self, _arg:int) -> None: ... + @overload + def SetScale(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetScale(self, _arg:Sequence[float]) -> None: ... + @overload + def SetTranslation(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetTranslation(self, _arg:Sequence[float]) -> None: ... + +class vtkBlankStructuredGrid(vtkmodules.vtkCommonExecutionModel.vtkStructuredGridAlgorithm): + array_id:'getset_descriptor' + array_name:'getset_descriptor' + component:'getset_descriptor' + max_blanking_value:'getset_descriptor' + min_blanking_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArrayId(self) -> int: ... + def GetArrayName(self) -> str: ... + def GetComponent(self) -> int: ... + def GetComponentMaxValue(self) -> int: ... + def GetComponentMinValue(self) -> int: ... + def GetMaxBlankingValue(self) -> float: ... + def GetMinBlankingValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBlankStructuredGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBlankStructuredGrid': ... + def SetArrayId(self, _arg:int) -> None: ... + def SetArrayName(self, _arg:str) -> None: ... + def SetComponent(self, _arg:int) -> None: ... + def SetMaxBlankingValue(self, _arg:float) -> None: ... + def SetMinBlankingValue(self, _arg:float) -> None: ... + +class vtkBlankStructuredGridWithImage(vtkmodules.vtkCommonExecutionModel.vtkStructuredGridAlgorithm): + blanking_input:'getset_descriptor' + blanking_input_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBlankingInput(self) -> 'vtkImageData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBlankStructuredGridWithImage': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBlankStructuredGridWithImage': ... + def SetBlankingInputData(self, input:'vtkImageData') -> None: ... + +class vtkBlockIdScalars(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBlockIdScalars': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBlockIdScalars': ... + +class vtkBooleanOperationPolyDataFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class OperationType(int): ... + VTK_DIFFERENCE:'OperationType' + VTK_INTERSECTION:'OperationType' + VTK_UNION:'OperationType' + operation:'getset_descriptor' + reorient_difference_cells:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOperation(self) -> int: ... + def GetOperationMaxValue(self) -> int: ... + def GetOperationMinValue(self) -> int: ... + def GetReorientDifferenceCells(self) -> int: ... + def GetTolerance(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBooleanOperationPolyDataFilter': ... + def ReorientDifferenceCellsOff(self) -> None: ... + def ReorientDifferenceCellsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBooleanOperationPolyDataFilter': ... + def SetOperation(self, _arg:int) -> None: ... + def SetOperationToDifference(self) -> None: ... + def SetOperationToIntersection(self) -> None: ... + def SetOperationToUnion(self) -> None: ... + def SetReorientDifferenceCells(self, _arg:int) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + +class vtkBoxClipDataSet(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + box_clip:'getset_descriptor' + clipped_output:'getset_descriptor' + generate_clip_scalars:'getset_descriptor' + generate_clipped_output:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + orientation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellGrid(self, typeobj:int, npts:int, cellIds:Sequence[int], newCellArray:'vtkCellArray') -> None: ... + def ClipBox(self, newPoints:'vtkPoints', cell:'vtkGenericCell', locator:'vtkIncrementalPointLocator', tets:'vtkCellArray', inPD:'vtkPointData', outPD:'vtkPointData', inCD:'vtkCellData', cellId:int, outCD:'vtkCellData') -> None: ... + def ClipBox0D(self, cell:'vtkGenericCell', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', inPD:'vtkPointData', outPD:'vtkPointData', inCD:'vtkCellData', cellId:int, outCD:'vtkCellData') -> None: ... + def ClipBox1D(self, newPoints:'vtkPoints', cell:'vtkGenericCell', locator:'vtkIncrementalPointLocator', lines:'vtkCellArray', inPD:'vtkPointData', outPD:'vtkPointData', inCD:'vtkCellData', cellId:int, outCD:'vtkCellData') -> None: ... + def ClipBox2D(self, newPoints:'vtkPoints', cell:'vtkGenericCell', locator:'vtkIncrementalPointLocator', tets:'vtkCellArray', inPD:'vtkPointData', outPD:'vtkPointData', inCD:'vtkCellData', cellId:int, outCD:'vtkCellData') -> None: ... + def ClipHexahedron(self, newPoints:'vtkPoints', cell:'vtkGenericCell', locator:'vtkIncrementalPointLocator', tets:'vtkCellArray', inPD:'vtkPointData', outPD:'vtkPointData', inCD:'vtkCellData', cellId:int, outCD:'vtkCellData') -> None: ... + def ClipHexahedron0D(self, cell:'vtkGenericCell', locator:'vtkIncrementalPointLocator', verts:'vtkCellArray', inPD:'vtkPointData', outPD:'vtkPointData', inCD:'vtkCellData', cellId:int, outCD:'vtkCellData') -> None: ... + def ClipHexahedron1D(self, newPoints:'vtkPoints', cell:'vtkGenericCell', locator:'vtkIncrementalPointLocator', lines:'vtkCellArray', inPD:'vtkPointData', outPD:'vtkPointData', inCD:'vtkCellData', cellId:int, outCD:'vtkCellData') -> None: ... + def ClipHexahedron2D(self, newPoints:'vtkPoints', cell:'vtkGenericCell', locator:'vtkIncrementalPointLocator', tets:'vtkCellArray', inPD:'vtkPointData', outPD:'vtkPointData', inCD:'vtkCellData', cellId:int, outCD:'vtkCellData') -> None: ... + def CreateDefaultLocator(self) -> None: ... + def CreateTetra(self, npts:int, cellIds:Sequence[int], newCellArray:'vtkCellArray') -> None: ... + def GenerateClipScalarsOff(self) -> None: ... + def GenerateClipScalarsOn(self) -> None: ... + def GenerateClippedOutputOff(self) -> None: ... + def GenerateClippedOutputOn(self) -> None: ... + def GetClippedOutput(self) -> 'vtkUnstructuredGrid': ... + def GetGenerateClipScalars(self) -> int: ... + def GetGenerateClippedOutput(self) -> int: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfOutputs(self) -> int: ... + def GetOrientation(self) -> int: ... + @staticmethod + def InterpolateEdge(attributes:'vtkDataSetAttributes', toId:int, fromId1:int, fromId2:int, t:float) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MinEdgeF(self, id_v:Sequence[int], cellIds:Sequence[int], edgF:MutableSequence[int]) -> None: ... + def NewInstance(self) -> 'vtkBoxClipDataSet': ... + def PyramidToTetra(self, pyramId:Sequence[int], cellIds:Sequence[int], newCellArray:'vtkCellArray') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBoxClipDataSet': ... + @overload + def SetBoxClip(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @overload + def SetBoxClip(self, n0:Sequence[float], o0:Sequence[float], n1:Sequence[float] , o1:Sequence[float], n2:Sequence[float], o2:Sequence[float], n3:Sequence[float], o3:Sequence[float], n4:Sequence[float], o4:Sequence[float] , n5:Sequence[float], o5:Sequence[float]) -> None: ... + def SetGenerateClipScalars(self, _arg:int) -> None: ... + def SetGenerateClippedOutput(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetOrientation(self, _arg:int) -> None: ... + def WedgeToTetra(self, wedgeId:Sequence[int], cellIds:Sequence[int], newCellArray:'vtkCellArray') -> None: ... + +class vtkBrownianPoints(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + maximum_speed:'getset_descriptor' + minimum_speed:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaximumSpeed(self) -> float: ... + def GetMaximumSpeedMaxValue(self) -> float: ... + def GetMaximumSpeedMinValue(self) -> float: ... + def GetMinimumSpeed(self) -> float: ... + def GetMinimumSpeedMaxValue(self) -> float: ... + def GetMinimumSpeedMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBrownianPoints': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBrownianPoints': ... + def SetMaximumSpeed(self, _arg:float) -> None: ... + def SetMinimumSpeed(self, _arg:float) -> None: ... + +class vtkCellDerivatives(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + tensor_mode:'getset_descriptor' + vector_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTensorMode(self) -> int: ... + def GetTensorModeAsString(self) -> str: ... + def GetVectorMode(self) -> int: ... + def GetVectorModeAsString(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellDerivatives': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellDerivatives': ... + def SetTensorMode(self, _arg:int) -> None: ... + def SetTensorModeToComputeGradient(self) -> None: ... + def SetTensorModeToComputeGreenLagrangeStrain(self) -> None: ... + def SetTensorModeToComputeStrain(self) -> None: ... + def SetTensorModeToPassTensors(self) -> None: ... + def SetVectorMode(self, _arg:int) -> None: ... + def SetVectorModeToComputeGradient(self) -> None: ... + def SetVectorModeToComputeVorticity(self) -> None: ... + def SetVectorModeToPassVectors(self) -> None: ... + +class vtkCellValidator(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + class State(int): ... + FacesAreOrientedIncorrectly:'State' + IntersectingEdges:'State' + IntersectingFaces:'State' + NoncontiguousEdges:'State' + Nonconvex:'State' + Valid:'State' + WrongNumberOfPoints:'State' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + @staticmethod + def Check(__a:'vtkGenericCell', tolerance:float) -> 'State': ... + @overload + @staticmethod + def Check(__a:'vtkCell', tolerance:float) -> 'State': ... + @overload + @staticmethod + def Check(__a:'vtkEmptyCell', tolerance:float) -> 'State': ... + @overload + @staticmethod + def Check(__a:'vtkVertex', tolerance:float) -> 'State': ... + @overload + @staticmethod + def Check(__a:'vtkPolyVertex', tolerance:float) -> 'State': ... + @overload + @staticmethod + def Check(__a:'vtkLine', tolerance:float) -> 'State': ... + @overload + @staticmethod + def Check(__a:'vtkPolyLine', tolerance:float) -> 'State': ... + @overload + @staticmethod + def Check(__a:'vtkTriangle', tolerance:float) -> 'State': ... + @overload + @staticmethod + def Check(__a:'vtkTriangleStrip', tolerance:float) -> 'State': ... + @overload + @staticmethod + def Check(__a:'vtkPolygon', tolerance:float) -> 'State': ... + @overload + @staticmethod + def Check(__a:'vtkPixel', tolerance:float) -> 'State': ... + @overload + @staticmethod + def Check(__a:'vtkQuad', tolerance:float) -> 'State': ... + @overload + @staticmethod + def Check(__a:'vtkTetra', tolerance:float) -> 'State': ... + @overload + @staticmethod + def Check(__a:'vtkVoxel', tolerance:float) -> 'State': ... + @overload + @staticmethod + def Check(__a:'vtkHexahedron', tolerance:float) -> 'State': ... + @overload + @staticmethod + def Check(__a:'vtkWedge', tolerance:float) -> 'State': ... + @overload + @staticmethod + def Check(__a:'vtkPyramid', tolerance:float) -> 'State': ... + @overload + @staticmethod + def Check(__a:'vtkPentagonalPrism', tolerance:float) -> 'State': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTolerance(self) -> float: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellValidator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellValidator': ... + def SetTolerance(self, _arg:float) -> None: ... + +class vtkCleanUnstructuredGrid(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + class DataWeighingType(int): ... + AVERAGING:'DataWeighingType' + FIRST_POINT:'DataWeighingType' + NUMBER_OF_WEIGHING_TYPES:'DataWeighingType' + SPATIAL_DENSITY:'DataWeighingType' + absolute_tolerance:'getset_descriptor' + locator:'getset_descriptor' + output_points_precision:'getset_descriptor' + point_data_weighing_strategy:'getset_descriptor' + remove_points_without_cells:'getset_descriptor' + tolerance:'getset_descriptor' + tolerance_is_absolute:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLocator(self, input:'vtkDataSet'=...) -> None: ... + def GetAbsoluteTolerance(self) -> float: ... + def GetAbsoluteToleranceMaxValue(self) -> float: ... + def GetAbsoluteToleranceMinValue(self) -> float: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPointDataWeighingStrategy(self) -> int: ... + def GetPointDataWeighingStrategyMaxValue(self) -> int: ... + def GetPointDataWeighingStrategyMinValue(self) -> int: ... + def GetRemovePointsWithoutCells(self) -> bool: ... + def GetTolerance(self) -> float: ... + def GetToleranceIsAbsolute(self) -> bool: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCleanUnstructuredGrid': ... + def ReleaseLocator(self) -> None: ... + def RemovePointsWithoutCellsOff(self) -> None: ... + def RemovePointsWithoutCellsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCleanUnstructuredGrid': ... + def SetAbsoluteTolerance(self, _arg:float) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetPointDataWeighingStrategy(self, _arg:int) -> None: ... + def SetRemovePointsWithoutCells(self, _arg:bool) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def SetToleranceIsAbsolute(self, _arg:bool) -> None: ... + def ToleranceIsAbsoluteOff(self) -> None: ... + def ToleranceIsAbsoluteOn(self) -> None: ... + +class vtkCleanUnstructuredGridCells(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCleanUnstructuredGridCells': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCleanUnstructuredGridCells': ... + +class vtkClipClosedSurface(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + active_plane_color:'getset_descriptor' + active_plane_id:'getset_descriptor' + base_color:'getset_descriptor' + clip_color:'getset_descriptor' + clip_face_output:'getset_descriptor' + clipping_planes:'getset_descriptor' + generate_clip_face_output:'getset_descriptor' + generate_faces:'getset_descriptor' + generate_outline:'getset_descriptor' + inside_out:'getset_descriptor' + pass_point_data:'getset_descriptor' + scalar_mode:'getset_descriptor' + tolerance:'getset_descriptor' + triangulation_error_display:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateClipFaceOutputOff(self) -> None: ... + def GenerateClipFaceOutputOn(self) -> None: ... + def GenerateFacesOff(self) -> None: ... + def GenerateFacesOn(self) -> None: ... + def GenerateOutlineOff(self) -> None: ... + def GenerateOutlineOn(self) -> None: ... + def GetActivePlaneColor(self) -> Tuple[float, float, float]: ... + def GetActivePlaneId(self) -> int: ... + def GetBaseColor(self) -> Tuple[float, float, float]: ... + def GetClipColor(self) -> Tuple[float, float, float]: ... + def GetClipFaceOutput(self) -> 'vtkPolyData': ... + def GetClippingPlanes(self) -> 'vtkPlaneCollection': ... + def GetGenerateClipFaceOutput(self) -> int: ... + def GetGenerateFaces(self) -> int: ... + def GetGenerateOutline(self) -> int: ... + def GetInsideOut(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassPointData(self) -> int: ... + def GetScalarMode(self) -> int: ... + def GetScalarModeAsString(self) -> str: ... + def GetScalarModeMaxValue(self) -> int: ... + def GetScalarModeMinValue(self) -> int: ... + def GetTolerance(self) -> float: ... + def GetTriangulationErrorDisplay(self) -> int: ... + def InsideOutOff(self) -> None: ... + def InsideOutOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkClipClosedSurface': ... + def PassPointDataOff(self) -> None: ... + def PassPointDataOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkClipClosedSurface': ... + @overload + def SetActivePlaneColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetActivePlaneColor(self, _arg:Sequence[float]) -> None: ... + def SetActivePlaneId(self, _arg:int) -> None: ... + @overload + def SetBaseColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetBaseColor(self, _arg:Sequence[float]) -> None: ... + @overload + def SetClipColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetClipColor(self, _arg:Sequence[float]) -> None: ... + def SetClippingPlanes(self, planes:'vtkPlaneCollection') -> None: ... + def SetGenerateClipFaceOutput(self, _arg:int) -> None: ... + def SetGenerateFaces(self, _arg:int) -> None: ... + def SetGenerateOutline(self, _arg:int) -> None: ... + def SetInsideOut(self, _arg:int) -> None: ... + def SetPassPointData(self, _arg:int) -> None: ... + def SetScalarMode(self, _arg:int) -> None: ... + def SetScalarModeToColors(self) -> None: ... + def SetScalarModeToLabels(self) -> None: ... + def SetScalarModeToNone(self) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def SetTriangulationErrorDisplay(self, _arg:int) -> None: ... + def TriangulationErrorDisplayOff(self) -> None: ... + def TriangulationErrorDisplayOn(self) -> None: ... + +class vtkClipConvexPolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + m_time:'getset_descriptor' + planes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPlanes(self) -> 'vtkPlaneCollection': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkClipConvexPolyData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkClipConvexPolyData': ... + def SetPlanes(self, planes:'vtkPlaneCollection') -> None: ... + +class vtkClipDataSet(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + clip_function:'getset_descriptor' + clipped_output:'getset_descriptor' + generate_clip_scalars:'getset_descriptor' + generate_clipped_output:'getset_descriptor' + inside_out:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + merge_tolerance:'getset_descriptor' + output_points_precision:'getset_descriptor' + stable_clip_non_linear:'getset_descriptor' + use_value_as_offset:'getset_descriptor' + value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def GenerateClipScalarsOff(self) -> None: ... + def GenerateClipScalarsOn(self) -> None: ... + def GenerateClippedOutputOff(self) -> None: ... + def GenerateClippedOutputOn(self) -> None: ... + def GetClipFunction(self) -> 'vtkImplicitFunction': ... + def GetClippedOutput(self) -> 'vtkUnstructuredGrid': ... + def GetGenerateClipScalars(self) -> int: ... + def GetGenerateClippedOutput(self) -> int: ... + def GetInsideOut(self) -> int: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetMergeTolerance(self) -> float: ... + def GetMergeToleranceMaxValue(self) -> float: ... + def GetMergeToleranceMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetOutputPointsPrecisionMaxValue(self) -> int: ... + def GetOutputPointsPrecisionMinValue(self) -> int: ... + def GetStableClipNonLinear(self) -> bool: ... + def GetUseValueAsOffset(self) -> bool: ... + def GetValue(self) -> float: ... + def InsideOutOff(self) -> None: ... + def InsideOutOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkClipDataSet': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkClipDataSet': ... + def SetClipFunction(self, __a:'vtkImplicitFunction') -> None: ... + def SetGenerateClipScalars(self, _arg:int) -> None: ... + def SetGenerateClippedOutput(self, _arg:int) -> None: ... + def SetInsideOut(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetMergeTolerance(self, _arg:float) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetStableClipNonLinear(self, _arg:bool) -> None: ... + def SetUseValueAsOffset(self, _arg:bool) -> None: ... + def SetValue(self, _arg:float) -> None: ... + def StableClipNonLinearOff(self) -> None: ... + def StableClipNonLinearOn(self) -> None: ... + def UseValueAsOffsetOff(self) -> None: ... + def UseValueAsOffsetOn(self) -> None: ... + +class vtkClipVolume(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + clip_function:'getset_descriptor' + clipped_output:'getset_descriptor' + generate_clip_scalars:'getset_descriptor' + generate_clipped_output:'getset_descriptor' + inside_out:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + merge_tolerance:'getset_descriptor' + mixed3d_cell_generation:'getset_descriptor' + value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def GenerateClipScalarsOff(self) -> None: ... + def GenerateClipScalarsOn(self) -> None: ... + def GenerateClippedOutputOff(self) -> None: ... + def GenerateClippedOutputOn(self) -> None: ... + def GetClipFunction(self) -> 'vtkImplicitFunction': ... + def GetClippedOutput(self) -> 'vtkUnstructuredGrid': ... + def GetGenerateClipScalars(self) -> int: ... + def GetGenerateClippedOutput(self) -> int: ... + def GetInsideOut(self) -> int: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetMergeTolerance(self) -> float: ... + def GetMergeToleranceMaxValue(self) -> float: ... + def GetMergeToleranceMinValue(self) -> float: ... + def GetMixed3DCellGeneration(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self) -> float: ... + def InsideOutOff(self) -> None: ... + def InsideOutOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Mixed3DCellGenerationOff(self) -> None: ... + def Mixed3DCellGenerationOn(self) -> None: ... + def NewInstance(self) -> 'vtkClipVolume': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkClipVolume': ... + def SetClipFunction(self, __a:'vtkImplicitFunction') -> None: ... + def SetGenerateClipScalars(self, _arg:int) -> None: ... + def SetGenerateClippedOutput(self, _arg:int) -> None: ... + def SetInsideOut(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetMergeTolerance(self, _arg:float) -> None: ... + def SetMixed3DCellGeneration(self, _arg:int) -> None: ... + def SetValue(self, _arg:float) -> None: ... + +class vtkCoincidentPoints(vtkmodules.vtkCommonCore.vtkObject): + next_coincident_point_ids:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddPoint(self, Id:int, point:Sequence[float]) -> None: ... + def Clear(self) -> None: ... + def GetCoincidentPointIds(self, point:Sequence[float]) -> 'vtkIdList': ... + def GetNextCoincidentPointIds(self) -> 'vtkIdList': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InitTraversal(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCoincidentPoints': ... + def RemoveNonCoincidentPoints(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCoincidentPoints': ... + @staticmethod + def SpiralPoints(num:int, offsets:'vtkPoints') -> None: ... + +class vtkContourTriangulator(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + triangulation_error:'getset_descriptor' + triangulation_error_display:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTriangulationError(self) -> int: ... + def GetTriangulationErrorDisplay(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContourTriangulator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContourTriangulator': ... + def SetTriangulationErrorDisplay(self, _arg:int) -> None: ... + @staticmethod + def TriangulateContours(data:'vtkPolyData', firstLine:int, numLines:int, outputPolys:'vtkCellArray', normal:Sequence[float], self_:'vtkPolyDataAlgorithm'=...) -> int: ... + @staticmethod + def TriangulatePolygon(polygon:'vtkIdList', points:'vtkPoints', triangles:'vtkCellArray') -> int: ... + def TriangulationErrorDisplayOff(self) -> None: ... + def TriangulationErrorDisplayOn(self) -> None: ... + +class vtkCountFaces(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + output_array_name:'getset_descriptor' + use_implicit_array:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputArrayName(self) -> str: ... + def GetUseImplicitArray(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCountFaces': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCountFaces': ... + def SetOutputArrayName(self, _arg:str) -> None: ... + def SetUseImplicitArray(self, _arg:bool) -> None: ... + +class vtkCountVertices(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + output_array_name:'getset_descriptor' + use_implicit_array:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputArrayName(self) -> str: ... + def GetUseImplicitArray(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCountVertices': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCountVertices': ... + def SetOutputArrayName(self, _arg:str) -> None: ... + def SetUseImplicitArray(self, _arg:bool) -> None: ... + +class vtkCursor2D(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + axes:'getset_descriptor' + focal_point:'getset_descriptor' + model_bounds:'getset_descriptor' + outline:'getset_descriptor' + point:'getset_descriptor' + radius:'getset_descriptor' + translation_mode:'getset_descriptor' + wrap:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllOff(self) -> None: ... + def AllOn(self) -> None: ... + def AxesOff(self) -> None: ... + def AxesOn(self) -> None: ... + def GetAxes(self) -> int: ... + def GetFocalPoint(self) -> Tuple[float, float, float]: ... + def GetModelBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutline(self) -> int: ... + def GetPoint(self) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def GetTranslationMode(self) -> int: ... + def GetWrap(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCursor2D': ... + def OutlineOff(self) -> None: ... + def OutlineOn(self) -> None: ... + def PointOff(self) -> None: ... + def PointOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCursor2D': ... + def SetAxes(self, _arg:int) -> None: ... + @overload + def SetFocalPoint(self, x:MutableSequence[float]) -> None: ... + @overload + def SetFocalPoint(self, x:float, y:float, z:float) -> None: ... + @overload + def SetModelBounds(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @overload + def SetModelBounds(self, bounds:Sequence[float]) -> None: ... + def SetOutline(self, _arg:int) -> None: ... + def SetPoint(self, _arg:int) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + def SetTranslationMode(self, _arg:int) -> None: ... + def SetWrap(self, _arg:int) -> None: ... + def TranslationModeOff(self) -> None: ... + def TranslationModeOn(self) -> None: ... + def WrapOff(self) -> None: ... + def WrapOn(self) -> None: ... + +class vtkCursor3D(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + axes:'getset_descriptor' + focal_point:'getset_descriptor' + focus:'getset_descriptor' + model_bounds:'getset_descriptor' + outline:'getset_descriptor' + translation_mode:'getset_descriptor' + wrap:'getset_descriptor' + x_shadows:'getset_descriptor' + y_shadows:'getset_descriptor' + z_shadows:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllOff(self) -> None: ... + def AllOn(self) -> None: ... + def AxesOff(self) -> None: ... + def AxesOn(self) -> None: ... + def GetAxes(self) -> int: ... + def GetFocalPoint(self) -> Tuple[float, float, float]: ... + def GetFocus(self) -> 'vtkPolyData': ... + def GetModelBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutline(self) -> int: ... + def GetTranslationMode(self) -> int: ... + def GetWrap(self) -> int: ... + def GetXShadows(self) -> int: ... + def GetYShadows(self) -> int: ... + def GetZShadows(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCursor3D': ... + def OutlineOff(self) -> None: ... + def OutlineOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCursor3D': ... + def SetAxes(self, _arg:int) -> None: ... + @overload + def SetFocalPoint(self, x:MutableSequence[float]) -> None: ... + @overload + def SetFocalPoint(self, x:float, y:float, z:float) -> None: ... + @overload + def SetModelBounds(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @overload + def SetModelBounds(self, bounds:Sequence[float]) -> None: ... + def SetOutline(self, _arg:int) -> None: ... + def SetTranslationMode(self, _arg:int) -> None: ... + def SetWrap(self, _arg:int) -> None: ... + def SetXShadows(self, _arg:int) -> None: ... + def SetYShadows(self, _arg:int) -> None: ... + def SetZShadows(self, _arg:int) -> None: ... + def TranslationModeOff(self) -> None: ... + def TranslationModeOn(self) -> None: ... + def WrapOff(self) -> None: ... + def WrapOn(self) -> None: ... + def XShadowsOff(self) -> None: ... + def XShadowsOn(self) -> None: ... + def YShadowsOff(self) -> None: ... + def YShadowsOn(self) -> None: ... + def ZShadowsOff(self) -> None: ... + def ZShadowsOn(self) -> None: ... + +class vtkCurvatures(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + curvature_type:'getset_descriptor' + invert_mean_curvature:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCurvatureType(self) -> int: ... + def GetInvertMeanCurvature(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InvertMeanCurvatureOff(self) -> None: ... + def InvertMeanCurvatureOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCurvatures': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCurvatures': ... + def SetCurvatureType(self, _arg:int) -> None: ... + def SetCurvatureTypeToGaussian(self) -> None: ... + def SetCurvatureTypeToMaximum(self) -> None: ... + def SetCurvatureTypeToMean(self) -> None: ... + def SetCurvatureTypeToMinimum(self) -> None: ... + def SetInvertMeanCurvature(self, _arg:int) -> None: ... + +class vtkDataSetGradient(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + result_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetResultArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataSetGradient': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataSetGradient': ... + def SetResultArrayName(self, _arg:str) -> None: ... + +class vtkDataSetGradientPrecompute(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GradientPrecompute(ds:'vtkDataSet', self_:'vtkDataSetAlgorithm'=...) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataSetGradientPrecompute': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataSetGradientPrecompute': ... + +class vtkDataSetTriangleFilter(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + tetrahedra_only:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTetrahedraOnly(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataSetTriangleFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataSetTriangleFilter': ... + def SetTetrahedraOnly(self, _arg:int) -> None: ... + def TetrahedraOnlyOff(self) -> None: ... + def TetrahedraOnlyOn(self) -> None: ... + +class vtkDateToNumeric(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + date_format:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDateFormat(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDateToNumeric': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDateToNumeric': ... + def SetDateFormat(self, _arg:str) -> None: ... + +class vtkDeflectNormals(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + scale_factor:'getset_descriptor' + use_user_normal:'getset_descriptor' + user_normal:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScaleFactor(self) -> float: ... + def GetUseUserNormal(self) -> bool: ... + def GetUserNormal(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDeflectNormals': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDeflectNormals': ... + def SetScaleFactor(self, _arg:float) -> None: ... + def SetUseUserNormal(self, _arg:bool) -> None: ... + @overload + def SetUserNormal(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetUserNormal(self, _arg:Sequence[float]) -> None: ... + def UseUserNormalOff(self) -> None: ... + def UseUserNormalOn(self) -> None: ... + +class vtkDeformPointSet(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + control_mesh_connection:'getset_descriptor' + control_mesh_data:'getset_descriptor' + initialize_weights:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetControlMeshData(self) -> 'vtkPolyData': ... + def GetInitializeWeights(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InitializeWeightsOff(self) -> None: ... + def InitializeWeightsOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDeformPointSet': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDeformPointSet': ... + def SetControlMeshConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetControlMeshData(self, controlMesh:'vtkPolyData') -> None: ... + def SetInitializeWeights(self, _arg:int) -> None: ... + +class vtkDensifyPolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + number_of_subdivisions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSubdivisions(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDensifyPolyData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDensifyPolyData': ... + def SetNumberOfSubdivisions(self, _arg:int) -> None: ... + +class vtkDicer(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + dice_mode:'getset_descriptor' + field_data:'getset_descriptor' + memory_limit:'getset_descriptor' + number_of_actual_pieces:'getset_descriptor' + number_of_pieces:'getset_descriptor' + number_of_pieces_max_value:'getset_descriptor' + number_of_pieces_min_value:'getset_descriptor' + number_of_points_per_piece:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FieldDataOff(self) -> None: ... + def FieldDataOn(self) -> None: ... + def GetDiceMode(self) -> int: ... + def GetDiceModeMaxValue(self) -> int: ... + def GetDiceModeMinValue(self) -> int: ... + def GetFieldData(self) -> int: ... + def GetMemoryLimit(self) -> int: ... + def GetMemoryLimitMaxValue(self) -> int: ... + def GetMemoryLimitMinValue(self) -> int: ... + def GetNumberOfActualPieces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPieces(self) -> int: ... + def GetNumberOfPiecesMaxValue(self) -> int: ... + def GetNumberOfPiecesMinValue(self) -> int: ... + def GetNumberOfPointsPerPiece(self) -> int: ... + def GetNumberOfPointsPerPieceMaxValue(self) -> int: ... + def GetNumberOfPointsPerPieceMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDicer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDicer': ... + def SetDiceMode(self, _arg:int) -> None: ... + def SetDiceModeToMemoryLimitPerPiece(self) -> None: ... + def SetDiceModeToNumberOfPointsPerPiece(self) -> None: ... + def SetDiceModeToSpecifiedNumberOfPieces(self) -> None: ... + def SetFieldData(self, _arg:int) -> None: ... + def SetMemoryLimit(self, _arg:int) -> None: ... + def SetNumberOfPieces(self, _arg:int) -> None: ... + def SetNumberOfPointsPerPiece(self, _arg:int) -> None: ... + +class vtkDiscreteFlyingEdges2D(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + array_component:'getset_descriptor' + compute_scalars:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeScalarsOff(self) -> None: ... + def ComputeScalarsOn(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetArrayComponent(self) -> int: ... + def GetComputeScalars(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDiscreteFlyingEdges2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDiscreteFlyingEdges2D': ... + def SetArrayComponent(self, _arg:int) -> None: ... + def SetComputeScalars(self, _arg:int) -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + +class vtkDiscreteFlyingEdges3D(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + array_component:'getset_descriptor' + compute_gradients:'getset_descriptor' + compute_normals:'getset_descriptor' + compute_scalars:'getset_descriptor' + interpolate_attributes:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeGradientsOff(self) -> None: ... + def ComputeGradientsOn(self) -> None: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def ComputeScalarsOff(self) -> None: ... + def ComputeScalarsOn(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetArrayComponent(self) -> int: ... + def GetComputeGradients(self) -> int: ... + def GetComputeNormals(self) -> int: ... + def GetComputeScalars(self) -> int: ... + def GetInterpolateAttributes(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def InterpolateAttributesOff(self) -> None: ... + def InterpolateAttributesOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDiscreteFlyingEdges3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDiscreteFlyingEdges3D': ... + def SetArrayComponent(self, _arg:int) -> None: ... + def SetComputeGradients(self, _arg:int) -> None: ... + def SetComputeNormals(self, _arg:int) -> None: ... + def SetComputeScalars(self, _arg:int) -> None: ... + def SetInterpolateAttributes(self, _arg:int) -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + +class vtkDiscreteFlyingEdgesClipper2D(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + array_component:'getset_descriptor' + compute_scalars:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeScalarsOff(self) -> None: ... + def ComputeScalarsOn(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetArrayComponent(self) -> int: ... + def GetComputeScalars(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDiscreteFlyingEdgesClipper2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDiscreteFlyingEdgesClipper2D': ... + def SetArrayComponent(self, _arg:int) -> None: ... + def SetComputeScalars(self, _arg:int) -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + +class vtkDiscreteMarchingCubes(vtkmodules.vtkFiltersCore.vtkMarchingCubes): + compute_adjacent_scalars:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeAdjacentScalarsOff(self) -> None: ... + def ComputeAdjacentScalarsOn(self) -> None: ... + def GetComputeAdjacentScalars(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDiscreteMarchingCubes': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDiscreteMarchingCubes': ... + def SetComputeAdjacentScalars(self, _arg:int) -> None: ... + +class vtkDistancePolyDataFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + compute_cell_center_distance:'getset_descriptor' + compute_direction:'getset_descriptor' + compute_second_distance:'getset_descriptor' + negate_distance:'getset_descriptor' + second_distance_output:'getset_descriptor' + signed_distance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeCellCenterDistanceOff(self) -> None: ... + def ComputeCellCenterDistanceOn(self) -> None: ... + def ComputeDirectionOff(self) -> None: ... + def ComputeDirectionOn(self) -> None: ... + def ComputeSecondDistanceOff(self) -> None: ... + def ComputeSecondDistanceOn(self) -> None: ... + def GetComputeCellCenterDistance(self) -> int: ... + def GetComputeDirection(self) -> int: ... + def GetComputeSecondDistance(self) -> int: ... + def GetNegateDistance(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSecondDistanceOutput(self) -> 'vtkPolyData': ... + def GetSignedDistance(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NegateDistanceOff(self) -> None: ... + def NegateDistanceOn(self) -> None: ... + def NewInstance(self) -> 'vtkDistancePolyDataFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDistancePolyDataFilter': ... + def SetComputeCellCenterDistance(self, _arg:int) -> None: ... + def SetComputeDirection(self, _arg:int) -> None: ... + def SetComputeSecondDistance(self, _arg:int) -> None: ... + def SetNegateDistance(self, _arg:int) -> None: ... + def SetSignedDistance(self, _arg:int) -> None: ... + def SignedDistanceOff(self) -> None: ... + def SignedDistanceOn(self) -> None: ... + +class vtkEdgePoints(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEdgePoints': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEdgePoints': ... + def SetValue(self, _arg:float) -> None: ... + +class vtkEqualizerFilter(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + all_columns:'getset_descriptor' + array:'getset_descriptor' + points:'getset_descriptor' + sampling_frequency:'getset_descriptor' + spectrum_gain:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAllColumns(self) -> bool: ... + def GetArray(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoints(self) -> str: ... + def GetSamplingFrequency(self) -> int: ... + def GetSpectrumGain(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEqualizerFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEqualizerFilter': ... + def SetAllColumns(self, _arg:bool) -> None: ... + def SetArray(self, arg:str) -> None: ... + def SetPoints(self, points:str) -> None: ... + def SetSamplingFrequency(self, _arg:int) -> None: ... + def SetSpectrumGain(self, _arg:int) -> None: ... + +class vtkExplodeDataSet(vtkmodules.vtkCommonExecutionModel.vtkPartitionedDataSetCollectionAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExplodeDataSet': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExplodeDataSet': ... + +class vtkExtractArray(vtkmodules.vtkCommonExecutionModel.vtkArrayDataAlgorithm): + index:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetIndex(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractArray': ... + def SetIndex(self, _arg:int) -> None: ... + +class vtkExtractGhostCells(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + output_ghost_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputGhostArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractGhostCells': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractGhostCells': ... + def SetOutputGhostArrayName(self, _arg:str) -> None: ... + +class vtkExtractSelectionBase(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + preserve_topology:'getset_descriptor' + selection_connection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPreserveTopology(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractSelectionBase': ... + def PreserveTopologyOff(self) -> None: ... + def PreserveTopologyOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractSelectionBase': ... + def SetPreserveTopology(self, _arg:int) -> None: ... + def SetSelectionConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + +class vtkExtractSelectedFrustum(vtkExtractSelectionBase): + clip_points:'getset_descriptor' + containing_cells:'getset_descriptor' + field_type:'getset_descriptor' + frustum:'getset_descriptor' + inside_out:'getset_descriptor' + m_time:'getset_descriptor' + show_bounds:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateFrustum(self, vertices:MutableSequence[float]) -> None: ... + def GetClipPoints(self) -> 'vtkPoints': ... + def GetContainingCells(self) -> int: ... + def GetFieldType(self) -> int: ... + def GetFrustum(self) -> 'vtkPlanes': ... + def GetInsideOut(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShowBounds(self) -> int: ... + def InsideOutOff(self) -> None: ... + def InsideOutOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractSelectedFrustum': ... + def OverallBoundsTest(self, bounds:MutableSequence[float]) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractSelectedFrustum': ... + def SetContainingCells(self, _arg:int) -> None: ... + def SetFieldType(self, _arg:int) -> None: ... + def SetFrustum(self, __a:'vtkPlanes') -> None: ... + def SetInsideOut(self, _arg:int) -> None: ... + def SetShowBounds(self, _arg:int) -> None: ... + def ShowBoundsOff(self) -> None: ... + def ShowBoundsOn(self) -> None: ... + +class vtkFiniteElementFieldDistributor(vtkmodules.vtkCommonExecutionModel.vtkPartitionedDataSetCollectionAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFiniteElementFieldDistributor': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFiniteElementFieldDistributor': ... + +class vtkGradientFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + class ContributingCellEnum(int): ... + class ReplacementValueEnum(int): ... + All:'ContributingCellEnum' + DataSetMax:'ContributingCellEnum' + DataTypeMax:'ReplacementValueEnum' + DataTypeMin:'ReplacementValueEnum' + NaN:'ReplacementValueEnum' + Patch:'ContributingCellEnum' + Zero:'ReplacementValueEnum' + compute_divergence:'getset_descriptor' + compute_gradient:'getset_descriptor' + compute_q_criterion:'getset_descriptor' + compute_vorticity:'getset_descriptor' + contributing_cell_option:'getset_descriptor' + divergence_array_name:'getset_descriptor' + faster_approximation:'getset_descriptor' + input_scalars:'getset_descriptor' + q_criterion_array_name:'getset_descriptor' + replacement_value_option:'getset_descriptor' + result_array_name:'getset_descriptor' + vorticity_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeDivergenceOff(self) -> None: ... + def ComputeDivergenceOn(self) -> None: ... + def ComputeGradientOff(self) -> None: ... + def ComputeGradientOn(self) -> None: ... + def ComputeQCriterionOff(self) -> None: ... + def ComputeQCriterionOn(self) -> None: ... + def ComputeVorticityOff(self) -> None: ... + def ComputeVorticityOn(self) -> None: ... + def FasterApproximationOff(self) -> None: ... + def FasterApproximationOn(self) -> None: ... + def GetComputeDivergence(self) -> int: ... + def GetComputeGradient(self) -> int: ... + def GetComputeQCriterion(self) -> int: ... + def GetComputeVorticity(self) -> int: ... + def GetContributingCellOption(self) -> int: ... + def GetContributingCellOptionMaxValue(self) -> int: ... + def GetContributingCellOptionMinValue(self) -> int: ... + def GetDivergenceArrayName(self) -> str: ... + def GetFasterApproximation(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetQCriterionArrayName(self) -> str: ... + def GetReplacementValueOption(self) -> int: ... + def GetReplacementValueOptionMaxValue(self) -> int: ... + def GetReplacementValueOptionMinValue(self) -> int: ... + def GetResultArrayName(self) -> str: ... + def GetVorticityArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGradientFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGradientFilter': ... + def SetComputeDivergence(self, _arg:int) -> None: ... + def SetComputeGradient(self, _arg:int) -> None: ... + def SetComputeQCriterion(self, _arg:int) -> None: ... + def SetComputeVorticity(self, _arg:int) -> None: ... + def SetContributingCellOption(self, _arg:int) -> None: ... + def SetDivergenceArrayName(self, _arg:str) -> None: ... + def SetFasterApproximation(self, _arg:int) -> None: ... + @overload + def SetInputScalars(self, fieldAssociation:int, name:str) -> None: ... + @overload + def SetInputScalars(self, fieldAssociation:int, fieldAttributeType:int) -> None: ... + def SetQCriterionArrayName(self, _arg:str) -> None: ... + def SetReplacementValueOption(self, _arg:int) -> None: ... + def SetResultArrayName(self, _arg:str) -> None: ... + def SetVorticityArrayName(self, _arg:str) -> None: ... + +class vtkGraphLayoutFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + automatic_bounds_computation:'getset_descriptor' + cool_down_rate:'getset_descriptor' + graph_bounds:'getset_descriptor' + max_number_of_iterations:'getset_descriptor' + three_dimensional_layout:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutomaticBoundsComputationOff(self) -> None: ... + def AutomaticBoundsComputationOn(self) -> None: ... + def GetAutomaticBoundsComputation(self) -> int: ... + def GetCoolDownRate(self) -> float: ... + def GetCoolDownRateMaxValue(self) -> float: ... + def GetCoolDownRateMinValue(self) -> float: ... + def GetGraphBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetMaxNumberOfIterations(self) -> int: ... + def GetMaxNumberOfIterationsMaxValue(self) -> int: ... + def GetMaxNumberOfIterationsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetThreeDimensionalLayout(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGraphLayoutFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraphLayoutFilter': ... + def SetAutomaticBoundsComputation(self, _arg:int) -> None: ... + def SetCoolDownRate(self, _arg:float) -> None: ... + @overload + def SetGraphBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetGraphBounds(self, _arg:Sequence[float]) -> None: ... + def SetMaxNumberOfIterations(self, _arg:int) -> None: ... + def SetThreeDimensionalLayout(self, _arg:int) -> None: ... + def ThreeDimensionalLayoutOff(self) -> None: ... + def ThreeDimensionalLayoutOn(self) -> None: ... + +class vtkGraphToPoints(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGraphToPoints': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraphToPoints': ... + +class vtkGraphWeightFilter(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGraphWeightFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraphWeightFilter': ... + +class vtkGraphWeightEuclideanDistanceFilter(vtkGraphWeightFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGraphWeightEuclideanDistanceFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraphWeightEuclideanDistanceFilter': ... + +class vtkGroupDataSetsFilter(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + combine_first_layer_multiblock:'getset_descriptor' + output_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClearInputNames(self) -> None: ... + def CombineFirstLayerMultiblockOff(self) -> None: ... + def CombineFirstLayerMultiblockOn(self) -> None: ... + def GetCombineFirstLayerMultiblock(self) -> bool: ... + def GetInputName(self, index:int) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputType(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGroupDataSetsFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGroupDataSetsFilter': ... + def SetCombineFirstLayerMultiblock(self, _arg:bool) -> None: ... + def SetInputName(self, index:int, name:str) -> None: ... + def SetOutputType(self, _arg:int) -> None: ... + def SetOutputTypeToMultiBlockDataSet(self) -> None: ... + def SetOutputTypeToPartitionedDataSet(self) -> None: ... + def SetOutputTypeToPartitionedDataSetCollection(self) -> None: ... + +class vtkGroupTimeStepsFilter(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGroupTimeStepsFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGroupTimeStepsFilter': ... + +class vtkOverlappingAMRLevelIdScalars(vtkmodules.vtkCommonExecutionModel.vtkOverlappingAMRAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOverlappingAMRLevelIdScalars': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOverlappingAMRLevelIdScalars': ... + +class vtkLevelIdScalars(vtkOverlappingAMRLevelIdScalars): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLevelIdScalars': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLevelIdScalars': ... + +class vtkHierarchicalDataLevelFilter(vtkLevelIdScalars): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHierarchicalDataLevelFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHierarchicalDataLevelFilter': ... + +class vtkHyperStreamline(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + integration_direction:'getset_descriptor' + integration_eigenvector:'getset_descriptor' + integration_step_length:'getset_descriptor' + log_scaling:'getset_descriptor' + maximum_propagation_distance:'getset_descriptor' + number_of_sides:'getset_descriptor' + number_of_sides_max_value:'getset_descriptor' + number_of_sides_min_value:'getset_descriptor' + radius:'getset_descriptor' + start_position:'getset_descriptor' + step_length:'getset_descriptor' + terminal_eigenvalue:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetIntegrationDirection(self) -> int: ... + def GetIntegrationDirectionMaxValue(self) -> int: ... + def GetIntegrationDirectionMinValue(self) -> int: ... + def GetIntegrationEigenvector(self) -> int: ... + def GetIntegrationEigenvectorMaxValue(self) -> int: ... + def GetIntegrationEigenvectorMinValue(self) -> int: ... + def GetIntegrationStepLength(self) -> float: ... + def GetIntegrationStepLengthMaxValue(self) -> float: ... + def GetIntegrationStepLengthMinValue(self) -> float: ... + def GetLogScaling(self) -> int: ... + def GetMaximumPropagationDistance(self) -> float: ... + def GetMaximumPropagationDistanceMaxValue(self) -> float: ... + def GetMaximumPropagationDistanceMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSides(self) -> int: ... + def GetNumberOfSidesMaxValue(self) -> int: ... + def GetNumberOfSidesMinValue(self) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def GetStartLocation(self, subId:int, pcoords:MutableSequence[float]) -> int: ... + def GetStartPosition(self) -> Tuple[float, float, float]: ... + def GetStepLength(self) -> float: ... + def GetStepLengthMaxValue(self) -> float: ... + def GetStepLengthMinValue(self) -> float: ... + def GetTerminalEigenvalue(self) -> float: ... + def GetTerminalEigenvalueMaxValue(self) -> float: ... + def GetTerminalEigenvalueMinValue(self) -> float: ... + def IntegrateMajorEigenvector(self) -> None: ... + def IntegrateMediumEigenvector(self) -> None: ... + def IntegrateMinorEigenvector(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LogScalingOff(self) -> None: ... + def LogScalingOn(self) -> None: ... + def NewInstance(self) -> 'vtkHyperStreamline': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperStreamline': ... + def SetIntegrationDirection(self, _arg:int) -> None: ... + def SetIntegrationDirectionToBackward(self) -> None: ... + def SetIntegrationDirectionToForward(self) -> None: ... + def SetIntegrationDirectionToIntegrateBothDirections(self) -> None: ... + def SetIntegrationEigenvector(self, _arg:int) -> None: ... + def SetIntegrationEigenvectorToMajor(self) -> None: ... + def SetIntegrationEigenvectorToMedium(self) -> None: ... + def SetIntegrationEigenvectorToMinor(self) -> None: ... + def SetIntegrationStepLength(self, _arg:float) -> None: ... + def SetLogScaling(self, _arg:int) -> None: ... + def SetMaximumPropagationDistance(self, _arg:float) -> None: ... + def SetNumberOfSides(self, _arg:int) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + @overload + def SetStartLocation(self, cellId:int, subId:int, pcoords:MutableSequence[float]) -> None: ... + @overload + def SetStartLocation(self, cellId:int, subId:int, r:float, s:float, t:float) -> None: ... + @overload + def SetStartPosition(self, x:MutableSequence[float]) -> None: ... + @overload + def SetStartPosition(self, x:float, y:float, z:float) -> None: ... + def SetStepLength(self, _arg:float) -> None: ... + def SetTerminalEigenvalue(self, _arg:float) -> None: ... + +class vtkIconGlyphFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + display_size:'getset_descriptor' + gravity:'getset_descriptor' + icon_scaling:'getset_descriptor' + icon_sheet_size:'getset_descriptor' + icon_size:'getset_descriptor' + offset:'getset_descriptor' + pass_scalars:'getset_descriptor' + use_icon_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDisplaySize(self) -> Tuple[int, int]: ... + def GetGravity(self) -> int: ... + def GetIconScaling(self) -> int: ... + def GetIconSheetSize(self) -> Tuple[int, int]: ... + def GetIconSize(self) -> Tuple[int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffset(self) -> Tuple[int, int]: ... + def GetPassScalars(self) -> bool: ... + def GetUseIconSize(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkIconGlyphFilter': ... + def PassScalarsOff(self) -> None: ... + def PassScalarsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIconGlyphFilter': ... + @overload + def SetDisplaySize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetDisplaySize(self, _arg:Sequence[int]) -> None: ... + def SetGravity(self, _arg:int) -> None: ... + def SetGravityToBottomCenter(self) -> None: ... + def SetGravityToBottomLeft(self) -> None: ... + def SetGravityToBottomRight(self) -> None: ... + def SetGravityToCenterCenter(self) -> None: ... + def SetGravityToCenterLeft(self) -> None: ... + def SetGravityToCenterRight(self) -> None: ... + def SetGravityToTopCenter(self) -> None: ... + def SetGravityToTopLeft(self) -> None: ... + def SetGravityToTopRight(self) -> None: ... + def SetIconScaling(self, _arg:int) -> None: ... + def SetIconScalingToScalingArray(self) -> None: ... + def SetIconScalingToScalingOff(self) -> None: ... + @overload + def SetIconSheetSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetIconSheetSize(self, _arg:Sequence[int]) -> None: ... + @overload + def SetIconSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetIconSize(self, _arg:Sequence[int]) -> None: ... + @overload + def SetOffset(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetOffset(self, _arg:Sequence[int]) -> None: ... + def SetPassScalars(self, _arg:bool) -> None: ... + def SetUseIconSize(self, _arg:bool) -> None: ... + def UseIconSizeOff(self) -> None: ... + def UseIconSizeOn(self) -> None: ... + +class vtkImageDataToPointSet(vtkmodules.vtkCommonExecutionModel.vtkStructuredGridAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageDataToPointSet': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageDataToPointSet': ... + +class vtkImageMarchingCubes(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + compute_gradients:'getset_descriptor' + compute_normals:'getset_descriptor' + compute_scalars:'getset_descriptor' + input_memory_limit:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddLocatorPoint(self, cellX:int, cellY:int, edge:int, ptId:int) -> None: ... + def ComputeGradientsOff(self) -> None: ... + def ComputeGradientsOn(self) -> None: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def ComputeScalarsOff(self) -> None: ... + def ComputeScalarsOn(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetComputeGradients(self) -> int: ... + def GetComputeNormals(self) -> int: ... + def GetComputeScalars(self) -> int: ... + def GetInputMemoryLimit(self) -> int: ... + def GetLocatorPoint(self, cellX:int, cellY:int, edge:int) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IncrementLocatorZ(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageMarchingCubes': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageMarchingCubes': ... + def SetComputeGradients(self, _arg:int) -> None: ... + def SetComputeNormals(self, _arg:int) -> None: ... + def SetComputeScalars(self, _arg:int) -> None: ... + def SetInputMemoryLimit(self, _arg:int) -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + +class vtkInterpolateDataSetAttributes(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + input_list:'getset_descriptor' + t:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInputList(self) -> 'vtkDataSetCollection': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetT(self) -> float: ... + def GetTMaxValue(self) -> float: ... + def GetTMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInterpolateDataSetAttributes': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInterpolateDataSetAttributes': ... + def SetT(self, _arg:float) -> None: ... + +class vtkInterpolatingSubdivisionFilter(vtkSubdivisionFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInterpolatingSubdivisionFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInterpolatingSubdivisionFilter': ... + +class vtkIntersectionPolyDataFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + check_input:'getset_descriptor' + check_mesh:'getset_descriptor' + compute_intersection_point_array:'getset_descriptor' + number_of_intersection_lines:'getset_descriptor' + number_of_intersection_points:'getset_descriptor' + relative_subtriangle_area:'getset_descriptor' + split_first_output:'getset_descriptor' + split_second_output:'getset_descriptor' + status:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CheckInputOff(self) -> None: ... + def CheckInputOn(self) -> None: ... + def CheckMeshOff(self) -> None: ... + def CheckMeshOn(self) -> None: ... + @staticmethod + def CleanAndCheckInput(pd:'vtkPolyData', tolerance:float) -> None: ... + @staticmethod + def CleanAndCheckSurface(pd:'vtkPolyData', stats:MutableSequence[float], tolerance:float) -> None: ... + def ComputeIntersectionPointArrayOff(self) -> None: ... + def ComputeIntersectionPointArrayOn(self) -> None: ... + def GetCheckInput(self) -> int: ... + def GetCheckMesh(self) -> int: ... + def GetComputeIntersectionPointArray(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIntersectionLines(self) -> int: ... + def GetNumberOfIntersectionPoints(self) -> int: ... + def GetRelativeSubtriangleArea(self) -> float: ... + def GetSplitFirstOutput(self) -> int: ... + def GetSplitSecondOutput(self) -> int: ... + def GetStatus(self) -> int: ... + def GetTolerance(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkIntersectionPolyDataFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIntersectionPolyDataFilter': ... + def SetCheckInput(self, _arg:int) -> None: ... + def SetCheckMesh(self, _arg:int) -> None: ... + def SetComputeIntersectionPointArray(self, _arg:int) -> None: ... + def SetRelativeSubtriangleArea(self, _arg:float) -> None: ... + def SetSplitFirstOutput(self, _arg:int) -> None: ... + def SetSplitSecondOutput(self, _arg:int) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def SplitFirstOutputOff(self) -> None: ... + def SplitFirstOutputOn(self) -> None: ... + def SplitSecondOutputOff(self) -> None: ... + def SplitSecondOutputOn(self) -> None: ... + @staticmethod + def TriangleTriangleIntersection(p1:MutableSequence[float], q1:MutableSequence[float], r1:MutableSequence[float], p2:MutableSequence[float], q2:MutableSequence[float], r2:MutableSequence[float], coplanar:int, pt1:MutableSequence[float], pt2:MutableSequence[float], surfaceid:MutableSequence[float], tolerance:float) -> int: ... + +class vtkJoinTables(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + class JoinMode(int): ... + INTERSECTION:'JoinMode' + LEFT:'JoinMode' + RIGHT:'JoinMode' + UNION:'JoinMode' + left_key:'getset_descriptor' + mode:'getset_descriptor' + replacement_value:'getset_descriptor' + right_key:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLeftKey(self) -> str: ... + def GetMode(self) -> int: ... + def GetModeMaxValue(self) -> int: ... + def GetModeMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReplacementValue(self) -> float: ... + def GetRightKey(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkJoinTables': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkJoinTables': ... + def SetLeftKey(self, arg:str) -> None: ... + def SetMode(self, _arg:int) -> None: ... + def SetReplacementValue(self, _arg:float) -> None: ... + def SetRightKey(self, arg:str) -> None: ... + def SetSourceConnection(self, source:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, source:'vtkTable') -> None: ... + +class vtkLinkEdgels(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + gradient_threshold:'getset_descriptor' + link_threshold:'getset_descriptor' + phi_threshold:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetGradientThreshold(self) -> float: ... + def GetLinkThreshold(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPhiThreshold(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLinkEdgels': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLinkEdgels': ... + def SetGradientThreshold(self, _arg:float) -> None: ... + def SetLinkThreshold(self, _arg:float) -> None: ... + def SetPhiThreshold(self, _arg:float) -> None: ... + +class vtkLoopBooleanPolyDataFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class NoIntersectionOutputType(int): ... + class OperationType(int): ... + VTK_BOTH:'NoIntersectionOutputType' + VTK_DIFFERENCE:'OperationType' + VTK_FIRST:'NoIntersectionOutputType' + VTK_INTERSECTION:'OperationType' + VTK_NEITHER:'NoIntersectionOutputType' + VTK_SECOND:'NoIntersectionOutputType' + VTK_UNION:'OperationType' + no_intersection_output:'getset_descriptor' + number_of_intersection_lines:'getset_descriptor' + number_of_intersection_points:'getset_descriptor' + operation:'getset_descriptor' + status:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNoIntersectionOutput(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIntersectionLines(self) -> int: ... + def GetNumberOfIntersectionPoints(self) -> int: ... + def GetOperation(self) -> int: ... + def GetOperationMaxValue(self) -> int: ... + def GetOperationMinValue(self) -> int: ... + def GetStatus(self) -> int: ... + def GetTolerance(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLoopBooleanPolyDataFilter': ... + def NoIntersectionOutputOff(self) -> None: ... + def NoIntersectionOutputOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLoopBooleanPolyDataFilter': ... + def SetNoIntersectionOutput(self, _arg:int) -> None: ... + def SetOperation(self, _arg:int) -> None: ... + def SetOperationToDifference(self) -> None: ... + def SetOperationToIntersection(self) -> None: ... + def SetOperationToUnion(self) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + +class vtkMarchingContourFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + compute_gradients:'getset_descriptor' + compute_normals:'getset_descriptor' + compute_scalars:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + use_scalar_tree:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeGradientsOff(self) -> None: ... + def ComputeGradientsOn(self) -> None: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def ComputeScalarsOff(self) -> None: ... + def ComputeScalarsOn(self) -> None: ... + def CreateDefaultLocator(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetComputeGradients(self) -> int: ... + def GetComputeNormals(self) -> int: ... + def GetComputeScalars(self) -> int: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseScalarTree(self) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMarchingContourFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMarchingContourFilter': ... + def SetComputeGradients(self, _arg:int) -> None: ... + def SetComputeNormals(self, _arg:int) -> None: ... + def SetComputeScalars(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetUseScalarTree(self, _arg:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + def UseScalarTreeOff(self) -> None: ... + def UseScalarTreeOn(self) -> None: ... + +class vtkMatricizeArray(vtkmodules.vtkCommonExecutionModel.vtkArrayDataAlgorithm): + slice_dimension:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSliceDimension(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMatricizeArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMatricizeArray': ... + def SetSliceDimension(self, _arg:int) -> None: ... + +class vtkMergeArrays(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMergeArrays': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMergeArrays': ... + +class vtkMergeCells(vtkmodules.vtkCommonCore.vtkObject): + merge_duplicate_points:'getset_descriptor' + output_points_precision:'getset_descriptor' + point_merge_tolerance:'getset_descriptor' + total_number_of_cells:'getset_descriptor' + total_number_of_data_sets:'getset_descriptor' + total_number_of_points:'getset_descriptor' + unstructured_grid:'getset_descriptor' + use_global_cell_ids:'getset_descriptor' + use_global_ids:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Finish(self) -> None: ... + def GetMergeDuplicatePoints(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPointMergeTolerance(self) -> float: ... + def GetPointMergeToleranceMaxValue(self) -> float: ... + def GetPointMergeToleranceMinValue(self) -> float: ... + def GetTotalNumberOfCells(self) -> int: ... + def GetTotalNumberOfDataSets(self) -> int: ... + def GetTotalNumberOfPoints(self) -> int: ... + def GetUnstructuredGrid(self) -> 'vtkUnstructuredGrid': ... + def GetUseGlobalCellIds(self) -> int: ... + def GetUseGlobalIds(self) -> int: ... + def InvalidateCachedLocator(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergeDataSet(self, set:'vtkDataSet') -> int: ... + def MergeDuplicatePointsOff(self) -> None: ... + def MergeDuplicatePointsOn(self) -> None: ... + def NewInstance(self) -> 'vtkMergeCells': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMergeCells': ... + def SetMergeDuplicatePoints(self, _arg:bool) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetPointMergeTolerance(self, _arg:float) -> None: ... + def SetTotalNumberOfCells(self, _arg:int) -> None: ... + def SetTotalNumberOfDataSets(self, _arg:int) -> None: ... + def SetTotalNumberOfPoints(self, _arg:int) -> None: ... + def SetUnstructuredGrid(self, __a:'vtkUnstructuredGrid') -> None: ... + def SetUseGlobalCellIds(self, _arg:int) -> None: ... + def SetUseGlobalIds(self, _arg:int) -> None: ... + def UseGlobalCellIdsOff(self) -> None: ... + def UseGlobalCellIdsOn(self) -> None: ... + def UseGlobalIdsOff(self) -> None: ... + def UseGlobalIdsOn(self) -> None: ... + +class vtkMergeTimeFilter(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + tolerance:'getset_descriptor' + use_intersection:'getset_descriptor' + use_relative_tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTolerance(self) -> float: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def GetUseIntersection(self) -> bool: ... + def GetUseRelativeTolerance(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMergeTimeFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMergeTimeFilter': ... + def SetTolerance(self, _arg:float) -> None: ... + def SetUseIntersection(self, _arg:bool) -> None: ... + def SetUseRelativeTolerance(self, _arg:bool) -> None: ... + def UseIntersectionOff(self) -> None: ... + def UseIntersectionOn(self) -> None: ... + def UseRelativeToleranceOff(self) -> None: ... + def UseRelativeToleranceOn(self) -> None: ... + +class vtkMergeVectorComponents(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + attribute_type:'getset_descriptor' + output_vector_name:'getset_descriptor' + x_array_name:'getset_descriptor' + y_array_name:'getset_descriptor' + z_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAttributeType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputVectorName(self) -> str: ... + def GetXArrayName(self) -> str: ... + def GetYArrayName(self) -> str: ... + def GetZArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMergeVectorComponents': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMergeVectorComponents': ... + def SetAttributeType(self, _arg:int) -> None: ... + def SetAttributeTypeToCellData(self) -> None: ... + def SetAttributeTypeToPointData(self) -> None: ... + def SetOutputVectorName(self, _arg:str) -> None: ... + def SetXArrayName(self, _arg:str) -> None: ... + def SetYArrayName(self, _arg:str) -> None: ... + def SetZArrayName(self, _arg:str) -> None: ... + +class vtkMultiBlockDataGroupFilter(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + def __init__(self, **properties:Any) -> None: ... + @overload + def AddInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMultiBlockDataGroupFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMultiBlockDataGroupFilter': ... + +class vtkMultiBlockMergeFilter(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + def __init__(self, **properties:Any) -> None: ... + @overload + def AddInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMultiBlockMergeFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMultiBlockMergeFilter': ... + +class vtkMultiThreshold(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + class SetOperation(int): ... + class Closure(int): ... + class Norm(int): ... + AND:'SetOperation' + CLOSED:'Closure' + L1_NORM:'Norm' + L2_NORM:'Norm' + LINFINITY_NORM:'Norm' + NAND:'SetOperation' + OPEN:'Closure' + OR:'SetOperation' + WOR:'SetOperation' + XOR:'SetOperation' + def __init__(self, **properties:Any) -> None: ... + def AddBandpassIntervalSet(self, xmin:float, xmax:float, assoc:int, arrayName:str, component:int, allScalars:int) -> int: ... + def AddBooleanSet(self, operation:int, numInputs:int, inputs:MutableSequence[int]) -> int: ... + def AddHighpassIntervalSet(self, xmin:float, assoc:int, arrayName:str, component:int, allScalars:int) -> int: ... + @overload + def AddIntervalSet(self, xmin:float, xmax:float, omin:int, omax:int, assoc:int, arrayName:str, component:int, allScalars:int) -> int: ... + @overload + def AddIntervalSet(self, xmin:float, xmax:float, omin:int, omax:int, assoc:int, attribType:int, component:int, allScalars:int) -> int: ... + def AddLowpassIntervalSet(self, xmax:float, assoc:int, arrayName:str, component:int, allScalars:int) -> int: ... + def AddNotchIntervalSet(self, xlo:float, xhi:float, assoc:int, arrayName:str, component:int, allScalars:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMultiThreshold': ... + def OutputSet(self, setId:int) -> int: ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMultiThreshold': ... + +class vtkNormalizeMatrixVectors(vtkmodules.vtkCommonExecutionModel.vtkArrayDataAlgorithm): + p_value:'getset_descriptor' + vector_dimension:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPValue(self) -> float: ... + def GetVectorDimension(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkNormalizeMatrixVectors': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkNormalizeMatrixVectors': ... + def SetPValue(self, _arg:float) -> None: ... + def SetVectorDimension(self, _arg:int) -> None: ... + +class vtkOBBDicer(vtkDicer): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOBBDicer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOBBDicer': ... + +class vtkOBBNode(object): + def __init__(self) -> None: ... + def DebugPrintTree(self, level:int, leaf_vol:MutableSequence[float], minCells:MutableSequence[int], maxCells:MutableSequence[int]) -> None: ... + +class vtkOBBTree(vtkmodules.vtkCommonDataModel.vtkAbstractCellLocator): + def __init__(self, **properties:Any) -> None: ... + def BuildLocator(self) -> None: ... + @overload + @staticmethod + def ComputeOBB(pts:'vtkPoints', corner:MutableSequence[float], max:MutableSequence[float], mid:MutableSequence[float], min:MutableSequence[float], size:MutableSequence[float]) -> None: ... + @overload + def ComputeOBB(self, input:'vtkDataSet', corner:MutableSequence[float], max:MutableSequence[float], mid:MutableSequence[float], min:MutableSequence[float], size:MutableSequence[float]) -> None: ... + def ForceBuildLocator(self) -> None: ... + def FreeSearchStructure(self) -> None: ... + def GenerateRepresentation(self, level:int, pd:'vtkPolyData') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InsideOrOutside(self, point:Sequence[float]) -> int: ... + @overload + def IntersectWithLine(self, a0:Sequence[float], a1:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int, cellId:int, cell:'vtkGenericCell') -> int: ... + @overload + def IntersectWithLine(self, a0:Sequence[float], a1:Sequence[float], points:'vtkPoints', cellIds:'vtkIdList') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int) -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, t:float, x:MutableSequence[float], pcoords:MutableSequence[float], subId:int, cellId:int) -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, points:'vtkPoints', cellIds:'vtkIdList') -> int: ... + @overload + def IntersectWithLine(self, p1:Sequence[float], p2:Sequence[float], tol:float, points:'vtkPoints', cellIds:'vtkIdList', cell:'vtkGenericCell') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOBBTree': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOBBTree': ... + +class vtkPassArrays(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + remove_arrays:'getset_descriptor' + use_field_types:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddArray(self, fieldType:int, name:str) -> None: ... + def AddCellDataArray(self, name:str) -> None: ... + def AddFieldDataArray(self, name:str) -> None: ... + def AddFieldType(self, fieldType:int) -> None: ... + def AddPointDataArray(self, name:str) -> None: ... + def ClearArrays(self) -> None: ... + def ClearCellDataArrays(self) -> None: ... + def ClearFieldDataArrays(self) -> None: ... + def ClearFieldTypes(self) -> None: ... + def ClearPointDataArrays(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRemoveArrays(self) -> bool: ... + def GetUseFieldTypes(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPassArrays': ... + def RemoveArray(self, fieldType:int, name:str) -> None: ... + def RemoveArraysOff(self) -> None: ... + def RemoveArraysOn(self) -> None: ... + def RemoveCellDataArray(self, name:str) -> None: ... + def RemoveFieldDataArray(self, name:str) -> None: ... + def RemovePointDataArray(self, name:str) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPassArrays': ... + def SetRemoveArrays(self, _arg:bool) -> None: ... + def SetUseFieldTypes(self, _arg:bool) -> None: ... + def UseFieldTypesOff(self) -> None: ... + def UseFieldTypesOn(self) -> None: ... + +class vtkPassSelectedArrays(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + cell_data_array_selection:'getset_descriptor' + edge_data_array_selection:'getset_descriptor' + enabled:'getset_descriptor' + field_data_array_selection:'getset_descriptor' + point_data_array_selection:'getset_descriptor' + row_data_array_selection:'getset_descriptor' + vertex_data_array_selection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def EnabledOff(self) -> None: ... + def EnabledOn(self) -> None: ... + def GetArraySelection(self, association:int) -> 'vtkDataArraySelection': ... + def GetCellDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetEdgeDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetEnabled(self) -> bool: ... + def GetFieldDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetRowDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetVertexDataArraySelection(self) -> 'vtkDataArraySelection': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPassSelectedArrays': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPassSelectedArrays': ... + def SetEnabled(self, _arg:bool) -> None: ... + +class vtkPointConnectivityFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointConnectivityFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointConnectivityFilter': ... + +class vtkPolyDataStreamer(vtkmodules.vtkFiltersCore.vtkStreamerBase): + color_by_piece:'getset_descriptor' + number_of_stream_divisions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ColorByPieceOff(self) -> None: ... + def ColorByPieceOn(self) -> None: ... + def GetColorByPiece(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfStreamDivisions(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyDataStreamer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataStreamer': ... + def SetColorByPiece(self, _arg:int) -> None: ... + def SetNumberOfStreamDivisions(self, num:int) -> None: ... + +class vtkPolyDataToReebGraphFilter(vtkmodules.vtkCommonExecutionModel.vtkDirectedGraphAlgorithm): + field_id:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFieldId(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutput(self) -> 'vtkReebGraph': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyDataToReebGraphFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataToReebGraphFilter': ... + def SetFieldId(self, _arg:int) -> None: ... + +class vtkProbePolyhedron(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + probe_cell_data:'getset_descriptor' + probe_point_data:'getset_descriptor' + source:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProbeCellData(self) -> int: ... + def GetProbePointData(self) -> int: ... + def GetSource(self) -> 'vtkPolyData': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProbePolyhedron': ... + def ProbeCellDataOff(self) -> None: ... + def ProbeCellDataOn(self) -> None: ... + def ProbePointDataOff(self) -> None: ... + def ProbePointDataOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProbePolyhedron': ... + def SetProbeCellData(self, _arg:int) -> None: ... + def SetProbePointData(self, _arg:int) -> None: ... + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, source:'vtkPolyData') -> None: ... + +class vtkQuadraturePointInterpolator(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuadraturePointInterpolator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadraturePointInterpolator': ... + +class vtkQuadraturePointsGenerator(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuadraturePointsGenerator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadraturePointsGenerator': ... + +class vtkQuadratureSchemeDictionaryGenerator(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuadratureSchemeDictionaryGenerator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadratureSchemeDictionaryGenerator': ... + +class vtkQuantizePolyDataPoints(vtkmodules.vtkFiltersCore.vtkCleanPolyData): + q_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetQFactor(self) -> float: ... + def GetQFactorMaxValue(self) -> float: ... + def GetQFactorMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuantizePolyDataPoints': ... + def OperateOnBounds(self, in_:MutableSequence[float], out:MutableSequence[float]) -> None: ... + def OperateOnPoint(self, in_:MutableSequence[float], out:MutableSequence[float]) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuantizePolyDataPoints': ... + def SetQFactor(self, _arg:float) -> None: ... + +class vtkRandomAttributeGenerator(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + attributes_constant_per_block:'getset_descriptor' + component_range:'getset_descriptor' + data_type:'getset_descriptor' + generate_cell_array:'getset_descriptor' + generate_cell_normals:'getset_descriptor' + generate_cell_scalars:'getset_descriptor' + generate_cell_t_coords:'getset_descriptor' + generate_cell_tensors:'getset_descriptor' + generate_cell_vectors:'getset_descriptor' + generate_field_array:'getset_descriptor' + generate_point_array:'getset_descriptor' + generate_point_normals:'getset_descriptor' + generate_point_scalars:'getset_descriptor' + generate_point_t_coords:'getset_descriptor' + generate_point_tensors:'getset_descriptor' + generate_point_vectors:'getset_descriptor' + maximum_component_value:'getset_descriptor' + minimum_component_value:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_components_max_value:'getset_descriptor' + number_of_components_min_value:'getset_descriptor' + number_of_tuples:'getset_descriptor' + number_of_tuples_max_value:'getset_descriptor' + number_of_tuples_min_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AttributesConstantPerBlockOff(self) -> None: ... + def AttributesConstantPerBlockOn(self) -> None: ... + def GenerateAllCellDataOff(self) -> None: ... + def GenerateAllCellDataOn(self) -> None: ... + def GenerateAllDataOff(self) -> None: ... + def GenerateAllDataOn(self) -> None: ... + def GenerateAllPointDataOff(self) -> None: ... + def GenerateAllPointDataOn(self) -> None: ... + def GenerateCellArrayOff(self) -> None: ... + def GenerateCellArrayOn(self) -> None: ... + def GenerateCellNormalsOff(self) -> None: ... + def GenerateCellNormalsOn(self) -> None: ... + def GenerateCellScalarsOff(self) -> None: ... + def GenerateCellScalarsOn(self) -> None: ... + def GenerateCellTCoordsOff(self) -> None: ... + def GenerateCellTCoordsOn(self) -> None: ... + def GenerateCellTensorsOff(self) -> None: ... + def GenerateCellTensorsOn(self) -> None: ... + def GenerateCellVectorsOff(self) -> None: ... + def GenerateCellVectorsOn(self) -> None: ... + def GenerateFieldArrayOff(self) -> None: ... + def GenerateFieldArrayOn(self) -> None: ... + def GeneratePointArrayOff(self) -> None: ... + def GeneratePointArrayOn(self) -> None: ... + def GeneratePointNormalsOff(self) -> None: ... + def GeneratePointNormalsOn(self) -> None: ... + def GeneratePointScalarsOff(self) -> None: ... + def GeneratePointScalarsOn(self) -> None: ... + def GeneratePointTCoordsOff(self) -> None: ... + def GeneratePointTCoordsOn(self) -> None: ... + def GeneratePointTensorsOff(self) -> None: ... + def GeneratePointTensorsOn(self) -> None: ... + def GeneratePointVectorsOff(self) -> None: ... + def GeneratePointVectorsOn(self) -> None: ... + def GetAttributesConstantPerBlock(self) -> bool: ... + def GetDataType(self) -> int: ... + def GetGenerateCellArray(self) -> int: ... + def GetGenerateCellNormals(self) -> int: ... + def GetGenerateCellScalars(self) -> int: ... + def GetGenerateCellTCoords(self) -> int: ... + def GetGenerateCellTensors(self) -> int: ... + def GetGenerateCellVectors(self) -> int: ... + def GetGenerateFieldArray(self) -> int: ... + def GetGeneratePointArray(self) -> int: ... + def GetGeneratePointNormals(self) -> int: ... + def GetGeneratePointScalars(self) -> int: ... + def GetGeneratePointTCoords(self) -> int: ... + def GetGeneratePointTensors(self) -> int: ... + def GetGeneratePointVectors(self) -> int: ... + def GetMaximumComponentValue(self) -> float: ... + def GetMinimumComponentValue(self) -> float: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfComponentsMaxValue(self) -> int: ... + def GetNumberOfComponentsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetNumberOfTuplesMaxValue(self) -> int: ... + def GetNumberOfTuplesMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRandomAttributeGenerator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRandomAttributeGenerator': ... + def SetAttributesConstantPerBlock(self, _arg:bool) -> None: ... + def SetComponentRange(self, minimumValue:float, maximumValue:float) -> None: ... + def SetDataType(self, _arg:int) -> None: ... + def SetDataTypeToBit(self) -> None: ... + def SetDataTypeToChar(self) -> None: ... + def SetDataTypeToDouble(self) -> None: ... + def SetDataTypeToFloat(self) -> None: ... + def SetDataTypeToIdType(self) -> None: ... + def SetDataTypeToInt(self) -> None: ... + def SetDataTypeToLong(self) -> None: ... + def SetDataTypeToLongLong(self) -> None: ... + def SetDataTypeToShort(self) -> None: ... + def SetDataTypeToUnsignedChar(self) -> None: ... + def SetDataTypeToUnsignedInt(self) -> None: ... + def SetDataTypeToUnsignedLong(self) -> None: ... + def SetDataTypeToUnsignedLongLong(self) -> None: ... + def SetDataTypeToUnsignedShort(self) -> None: ... + def SetGenerateCellArray(self, _arg:int) -> None: ... + def SetGenerateCellNormals(self, _arg:int) -> None: ... + def SetGenerateCellScalars(self, _arg:int) -> None: ... + def SetGenerateCellTCoords(self, _arg:int) -> None: ... + def SetGenerateCellTensors(self, _arg:int) -> None: ... + def SetGenerateCellVectors(self, _arg:int) -> None: ... + def SetGenerateFieldArray(self, _arg:int) -> None: ... + def SetGeneratePointArray(self, _arg:int) -> None: ... + def SetGeneratePointNormals(self, _arg:int) -> None: ... + def SetGeneratePointScalars(self, _arg:int) -> None: ... + def SetGeneratePointTCoords(self, _arg:int) -> None: ... + def SetGeneratePointTensors(self, _arg:int) -> None: ... + def SetGeneratePointVectors(self, _arg:int) -> None: ... + def SetMaximumComponentValue(self, _arg:float) -> None: ... + def SetMinimumComponentValue(self, _arg:float) -> None: ... + def SetNumberOfComponents(self, _arg:int) -> None: ... + def SetNumberOfTuples(self, _arg:int) -> None: ... + +class vtkRectilinearGridClip(vtkmodules.vtkCommonExecutionModel.vtkRectilinearGridAlgorithm): + clip_data:'getset_descriptor' + output_whole_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClipDataOff(self) -> None: ... + def ClipDataOn(self) -> None: ... + def GetClipData(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutputWholeExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def GetOutputWholeExtent(self) -> Pointer: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRectilinearGridClip': ... + def ResetOutputWholeExtent(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRectilinearGridClip': ... + def SetClipData(self, _arg:int) -> None: ... + @overload + def SetOutputWholeExtent(self, extent:MutableSequence[int], outInfo:'vtkInformation'=...) -> None: ... + @overload + def SetOutputWholeExtent(self, minX:int, maxX:int, minY:int, maxY:int, minZ:int, maxZ:int) -> None: ... + +class vtkRectilinearGridToPointSet(vtkmodules.vtkCommonExecutionModel.vtkStructuredGridAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRectilinearGridToPointSet': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRectilinearGridToPointSet': ... + +class vtkRectilinearGridToTetrahedra(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + input:'getset_descriptor' + remember_voxel_id:'getset_descriptor' + tetra_per_cell:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRememberVoxelId(self) -> int: ... + def GetTetraPerCell(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRectilinearGridToTetrahedra': ... + def RememberVoxelIdOff(self) -> None: ... + def RememberVoxelIdOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRectilinearGridToTetrahedra': ... + @overload + def SetInput(self, Extent:Sequence[float], Spacing:Sequence[float], tol:float=0.001) -> None: ... + @overload + def SetInput(self, ExtentX:float, ExtentY:float, ExtentZ:float, SpacingX:float, SpacingY:float, SpacingZ:float, tol:float=0.001) -> None: ... + def SetRememberVoxelId(self, _arg:int) -> None: ... + def SetTetraPerCell(self, _arg:int) -> None: ... + def SetTetraPerCellTo12(self) -> None: ... + def SetTetraPerCellTo5(self) -> None: ... + def SetTetraPerCellTo5And12(self) -> None: ... + def SetTetraPerCellTo6(self) -> None: ... + +class vtkRecursiveDividingCubes(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + distance:'getset_descriptor' + increment:'getset_descriptor' + value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDistance(self) -> float: ... + def GetDistanceMaxValue(self) -> float: ... + def GetDistanceMinValue(self) -> float: ... + def GetIncrement(self) -> int: ... + def GetIncrementMaxValue(self) -> int: ... + def GetIncrementMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRecursiveDividingCubes': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRecursiveDividingCubes': ... + def SetDistance(self, _arg:float) -> None: ... + def SetIncrement(self, _arg:int) -> None: ... + def SetValue(self, _arg:float) -> None: ... + +class vtkReflectionFilter(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + class ReflectionPlane(int): ... + USE_X:'ReflectionPlane' + USE_X_MAX:'ReflectionPlane' + USE_X_MIN:'ReflectionPlane' + USE_Y:'ReflectionPlane' + USE_Y_MAX:'ReflectionPlane' + USE_Y_MIN:'ReflectionPlane' + USE_Z:'ReflectionPlane' + USE_Z_MAX:'ReflectionPlane' + USE_Z_MIN:'ReflectionPlane' + center:'getset_descriptor' + copy_input:'getset_descriptor' + flip_all_input_arrays:'getset_descriptor' + plane:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CopyInputOff(self) -> None: ... + def CopyInputOn(self) -> None: ... + def FlipAllInputArraysOff(self) -> None: ... + def FlipAllInputArraysOn(self) -> None: ... + def GetCenter(self) -> float: ... + def GetCopyInput(self) -> int: ... + def GetFlipAllInputArrays(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPlane(self) -> int: ... + def GetPlaneMaxValue(self) -> int: ... + def GetPlaneMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkReflectionFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkReflectionFilter': ... + def SetCenter(self, _arg:float) -> None: ... + def SetCopyInput(self, _arg:int) -> None: ... + def SetFlipAllInputArrays(self, _arg:bool) -> None: ... + def SetPlane(self, _arg:int) -> None: ... + def SetPlaneToX(self) -> None: ... + def SetPlaneToXMax(self) -> None: ... + def SetPlaneToXMin(self) -> None: ... + def SetPlaneToY(self) -> None: ... + def SetPlaneToYMax(self) -> None: ... + def SetPlaneToYMin(self) -> None: ... + def SetPlaneToZ(self) -> None: ... + def SetPlaneToZMax(self) -> None: ... + def SetPlaneToZMin(self) -> None: ... + +class vtkRemovePolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + cell_ids:'getset_descriptor' + exact_match:'getset_descriptor' + input:'getset_descriptor' + point_ids:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExactMatchOff(self) -> None: ... + def ExactMatchOn(self) -> None: ... + def GetCellIds(self) -> 'vtkIdTypeArray': ... + def GetExactMatch(self) -> bool: ... + @overload + def GetInput(self, idx:int) -> 'vtkPolyData': ... + @overload + def GetInput(self) -> 'vtkPolyData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointIds(self) -> 'vtkIdTypeArray': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRemovePolyData': ... + def RemoveInputData(self, __a:'vtkPolyData') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRemovePolyData': ... + def SetCellIds(self, __a:'vtkIdTypeArray') -> None: ... + def SetExactMatch(self, _arg:bool) -> None: ... + def SetPointIds(self, __a:'vtkIdTypeArray') -> None: ... + +class vtkRotationFilter(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + class RotationAxis(int): ... + USE_X:'RotationAxis' + USE_Y:'RotationAxis' + USE_Z:'RotationAxis' + angle:'getset_descriptor' + axis:'getset_descriptor' + center:'getset_descriptor' + copy_input:'getset_descriptor' + number_of_copies:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CopyInputOff(self) -> None: ... + def CopyInputOn(self) -> None: ... + def GetAngle(self) -> float: ... + def GetAxis(self) -> int: ... + def GetAxisMaxValue(self) -> int: ... + def GetAxisMinValue(self) -> int: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetCopyInput(self) -> int: ... + def GetNumberOfCopies(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRotationFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRotationFilter': ... + def SetAngle(self, _arg:float) -> None: ... + def SetAxis(self, _arg:int) -> None: ... + def SetAxisToX(self) -> None: ... + def SetAxisToY(self) -> None: ... + def SetAxisToZ(self) -> None: ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetCopyInput(self, _arg:int) -> None: ... + def SetNumberOfCopies(self, _arg:int) -> None: ... + +class vtkSampleImplicitFunctionFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + compute_gradients:'getset_descriptor' + gradient_array_name:'getset_descriptor' + implicit_function:'getset_descriptor' + m_time:'getset_descriptor' + scalar_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeGradientsOff(self) -> None: ... + def ComputeGradientsOn(self) -> None: ... + def GetComputeGradients(self) -> int: ... + def GetGradientArrayName(self) -> str: ... + def GetImplicitFunction(self) -> 'vtkImplicitFunction': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScalarArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSampleImplicitFunctionFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSampleImplicitFunctionFilter': ... + def SetComputeGradients(self, _arg:int) -> None: ... + def SetGradientArrayName(self, _arg:str) -> None: ... + def SetImplicitFunction(self, __a:'vtkImplicitFunction') -> None: ... + def SetScalarArrayName(self, _arg:str) -> None: ... + +class vtkShrinkFilter(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + shrink_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShrinkFactor(self) -> float: ... + def GetShrinkFactorMaxValue(self) -> float: ... + def GetShrinkFactorMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkShrinkFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkShrinkFilter': ... + def SetShrinkFactor(self, _arg:float) -> None: ... + +class vtkShrinkPolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + shrink_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShrinkFactor(self) -> float: ... + def GetShrinkFactorMaxValue(self) -> float: ... + def GetShrinkFactorMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkShrinkPolyData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkShrinkPolyData': ... + def SetShrinkFactor(self, _arg:float) -> None: ... + +class vtkSpatialRepresentationFilter(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + generate_leaves:'getset_descriptor' + maximum_level:'getset_descriptor' + spatial_representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddLevel(self, level:int) -> None: ... + def GenerateLeavesOff(self) -> None: ... + def GenerateLeavesOn(self) -> None: ... + def GetGenerateLeaves(self) -> bool: ... + def GetMaximumLevel(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSpatialRepresentation(self) -> 'vtkLocator': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSpatialRepresentationFilter': ... + def ResetLevels(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSpatialRepresentationFilter': ... + def SetGenerateLeaves(self, _arg:bool) -> None: ... + def SetSpatialRepresentation(self, __a:'vtkLocator') -> None: ... + +class vtkSpatioTemporalHarmonicsAttribute(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def AddHarmonic(self, amplitude:float, temporalFrequency:float, xWaveVector:float, yWaveVector:float, zWaveVector:float, phase:float) -> None: ... + def ClearHarmonics(self) -> None: ... + def ComputeValue(self, coords:MutableSequence[float], time:float) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def HasHarmonics(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSpatioTemporalHarmonicsAttribute': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSpatioTemporalHarmonicsAttribute': ... + +class vtkSphericalHarmonics(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSphericalHarmonics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSphericalHarmonics': ... + +class vtkSplineFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + generate_t_coords:'getset_descriptor' + length:'getset_descriptor' + maximum_number_of_subdivisions:'getset_descriptor' + number_of_subdivisions:'getset_descriptor' + number_of_subdivisions_max_value:'getset_descriptor' + number_of_subdivisions_min_value:'getset_descriptor' + output_points_precision:'getset_descriptor' + spline:'getset_descriptor' + subdivide:'getset_descriptor' + texture_length:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetGenerateTCoords(self) -> int: ... + def GetGenerateTCoordsAsString(self) -> str: ... + def GetGenerateTCoordsMaxValue(self) -> int: ... + def GetGenerateTCoordsMinValue(self) -> int: ... + def GetLength(self) -> float: ... + def GetLengthMaxValue(self) -> float: ... + def GetLengthMinValue(self) -> float: ... + def GetMaximumNumberOfSubdivisions(self) -> int: ... + def GetMaximumNumberOfSubdivisionsMaxValue(self) -> int: ... + def GetMaximumNumberOfSubdivisionsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSubdivisions(self) -> int: ... + def GetNumberOfSubdivisionsMaxValue(self) -> int: ... + def GetNumberOfSubdivisionsMinValue(self) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetSpline(self) -> 'vtkSpline': ... + def GetSubdivide(self) -> int: ... + def GetSubdivideAsString(self) -> str: ... + def GetSubdivideMaxValue(self) -> int: ... + def GetSubdivideMinValue(self) -> int: ... + def GetTextureLength(self) -> float: ... + def GetTextureLengthMaxValue(self) -> float: ... + def GetTextureLengthMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSplineFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSplineFilter': ... + def SetGenerateTCoords(self, _arg:int) -> None: ... + def SetGenerateTCoordsToNormalizedLength(self) -> None: ... + def SetGenerateTCoordsToOff(self) -> None: ... + def SetGenerateTCoordsToUseLength(self) -> None: ... + def SetGenerateTCoordsToUseScalars(self) -> None: ... + def SetLength(self, _arg:float) -> None: ... + def SetMaximumNumberOfSubdivisions(self, _arg:int) -> None: ... + def SetNumberOfSubdivisions(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetSpline(self, __a:'vtkSpline') -> None: ... + def SetSubdivide(self, _arg:int) -> None: ... + def SetSubdivideToLength(self) -> None: ... + def SetSubdivideToSpecified(self) -> None: ... + def SetTextureLength(self, _arg:float) -> None: ... + +class vtkSplitByCellScalarFilter(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + pass_all_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassAllPoints(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSplitByCellScalarFilter': ... + def PassAllPointsOff(self) -> None: ... + def PassAllPointsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSplitByCellScalarFilter': ... + def SetPassAllPoints(self, _arg:bool) -> None: ... + +class vtkSplitColumnComponents(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + NAMES_WITH_PARENS:int + NAMES_WITH_UNDERSCORES:int + NUMBERS_WITH_PARENS:int + NUMBERS_WITH_UNDERSCORES:int + calculate_magnitudes:'getset_descriptor' + naming_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CalculateMagnitudesOff(self) -> None: ... + def CalculateMagnitudesOn(self) -> None: ... + def GetCalculateMagnitudes(self) -> bool: ... + def GetNamingMode(self) -> int: ... + def GetNamingModeMaxValue(self) -> int: ... + def GetNamingModeMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSplitColumnComponents': ... + @staticmethod + def ORIGINAL_ARRAY_NAME() -> 'vtkInformationStringKey': ... + @staticmethod + def ORIGINAL_COMPONENT_NUMBER() -> 'vtkInformationIntegerKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSplitColumnComponents': ... + def SetCalculateMagnitudes(self, _arg:bool) -> None: ... + def SetNamingMode(self, _arg:int) -> None: ... + def SetNamingModeToNamesWithParens(self) -> None: ... + def SetNamingModeToNamesWithUnderscores(self) -> None: ... + def SetNamingModeToNumberWithParens(self) -> None: ... + def SetNamingModeToNumberWithUnderscores(self) -> None: ... + +class vtkSplitField(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + class FieldLocations(int): ... + CELL_DATA:'FieldLocations' + DATA_OBJECT:'FieldLocations' + POINT_DATA:'FieldLocations' + input_field:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSplitField': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSplitField': ... + @overload + def SetInputField(self, attributeType:int, fieldLoc:int) -> None: ... + @overload + def SetInputField(self, name:str, fieldLoc:int) -> None: ... + @overload + def SetInputField(self, name:str, fieldLoc:str) -> None: ... + def Split(self, component:int, arrayName:str) -> None: ... + +class vtkStructuredGridClip(vtkmodules.vtkCommonExecutionModel.vtkStructuredGridAlgorithm): + clip_data:'getset_descriptor' + output_whole_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClipDataOff(self) -> None: ... + def ClipDataOn(self) -> None: ... + def GetClipData(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutputWholeExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def GetOutputWholeExtent(self) -> Pointer: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStructuredGridClip': ... + def ResetOutputWholeExtent(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStructuredGridClip': ... + def SetClipData(self, _arg:int) -> None: ... + @overload + def SetOutputWholeExtent(self, extent:MutableSequence[int], outInfo:'vtkInformation'=...) -> None: ... + @overload + def SetOutputWholeExtent(self, minX:int, maxX:int, minY:int, maxY:int, minZ:int, maxZ:int) -> None: ... + +class vtkSubPixelPositionEdgels(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + grad_maps:'getset_descriptor' + grad_maps_data:'getset_descriptor' + target_flag:'getset_descriptor' + target_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetGradMaps(self) -> 'vtkStructuredPoints': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTargetFlag(self) -> int: ... + def GetTargetValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSubPixelPositionEdgels': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSubPixelPositionEdgels': ... + def SetGradMapsData(self, gm:'vtkStructuredPoints') -> None: ... + def SetTargetFlag(self, _arg:int) -> None: ... + def SetTargetValue(self, _arg:float) -> None: ... + def TargetFlagOff(self) -> None: ... + def TargetFlagOn(self) -> None: ... + +class vtkSynchronizeTimeFilter(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + relative_tolerance:'getset_descriptor' + source_connection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRelativeTolerance(self) -> float: ... + def GetRelativeToleranceMaxValue(self) -> float: ... + def GetRelativeToleranceMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSynchronizeTimeFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSynchronizeTimeFilter': ... + def SetRelativeTolerance(self, _arg:float) -> None: ... + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + +class vtkTableBasedClipDataSet(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + batch_size:'getset_descriptor' + clip_function:'getset_descriptor' + clipped_output:'getset_descriptor' + generate_clip_scalars:'getset_descriptor' + generate_clipped_output:'getset_descriptor' + inside_out:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + merge_tolerance:'getset_descriptor' + output_points_precision:'getset_descriptor' + use_value_as_offset:'getset_descriptor' + value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateClipScalarsOff(self) -> None: ... + def GenerateClipScalarsOn(self) -> None: ... + def GenerateClippedOutputOff(self) -> None: ... + def GenerateClippedOutputOn(self) -> None: ... + def GetBatchSize(self) -> int: ... + def GetBatchSizeMaxValue(self) -> int: ... + def GetBatchSizeMinValue(self) -> int: ... + def GetClipFunction(self) -> 'vtkImplicitFunction': ... + def GetClippedOutput(self) -> 'vtkUnstructuredGrid': ... + def GetGenerateClipScalars(self) -> int: ... + def GetGenerateClippedOutput(self) -> int: ... + def GetInsideOut(self) -> int: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetMergeTolerance(self) -> float: ... + def GetMergeToleranceMaxValue(self) -> float: ... + def GetMergeToleranceMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetOutputPointsPrecisionMaxValue(self) -> int: ... + def GetOutputPointsPrecisionMinValue(self) -> int: ... + def GetUseValueAsOffset(self) -> bool: ... + def GetValue(self) -> float: ... + def InsideOutOff(self) -> None: ... + def InsideOutOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTableBasedClipDataSet': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTableBasedClipDataSet': ... + def SetBatchSize(self, _arg:int) -> None: ... + def SetClipFunction(self, __a:'vtkImplicitFunction') -> None: ... + def SetGenerateClipScalars(self, _arg:int) -> None: ... + def SetGenerateClippedOutput(self, _arg:int) -> None: ... + def SetInsideOut(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetMergeTolerance(self, _arg:float) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetUseValueAsOffset(self, _arg:bool) -> None: ... + def SetValue(self, _arg:float) -> None: ... + def UseValueAsOffsetOff(self) -> None: ... + def UseValueAsOffsetOn(self) -> None: ... + +class vtkTableFFT(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + BARTLETT:int + BLACKMAN:int + HANNING:int + MAX_WINDOWING_FUNCTION:int + RECTANGULAR:int + SINE:int + average_fft:'getset_descriptor' + block_overlap:'getset_descriptor' + block_size:'getset_descriptor' + create_frequency_column:'getset_descriptor' + default_sample_rate:'getset_descriptor' + detrend:'getset_descriptor' + normalize:'getset_descriptor' + return_onesided:'getset_descriptor' + scaling_method:'getset_descriptor' + windowing_function:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AverageFftOff(self) -> None: ... + def AverageFftOn(self) -> None: ... + def CreateFrequencyColumnOff(self) -> None: ... + def CreateFrequencyColumnOn(self) -> None: ... + def DetrendOff(self) -> None: ... + def DetrendOn(self) -> None: ... + def GetAverageFft(self) -> bool: ... + def GetBlockOverlap(self) -> int: ... + def GetBlockSize(self) -> int: ... + def GetCreateFrequencyColumn(self) -> bool: ... + def GetDefaultSampleRate(self) -> float: ... + def GetDetrend(self) -> bool: ... + def GetNormalize(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReturnOnesided(self) -> bool: ... + def GetScalingMethod(self) -> int: ... + def GetScalingMethodMaxValue(self) -> int: ... + def GetScalingMethodMinValue(self) -> int: ... + def GetWindowingFunction(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTableFFT': ... + def NormalizeOff(self) -> None: ... + def NormalizeOn(self) -> None: ... + def ReturnOnesidedOff(self) -> None: ... + def ReturnOnesidedOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTableFFT': ... + def SetAverageFft(self, __a:bool) -> None: ... + def SetBlockOverlap(self, _arg:int) -> None: ... + def SetBlockSize(self, __a:int) -> None: ... + def SetCreateFrequencyColumn(self, _arg:bool) -> None: ... + def SetDefaultSampleRate(self, _arg:float) -> None: ... + def SetDetrend(self, _arg:bool) -> None: ... + def SetNormalize(self, _arg:bool) -> None: ... + def SetReturnOnesided(self, _arg:bool) -> None: ... + def SetScalingMethod(self, _arg:int) -> None: ... + def SetWindowingFunction(self, __a:int) -> None: ... + +class vtkTableToPolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + create2d_points:'getset_descriptor' + preserve_coordinate_columns_as_data_arrays:'getset_descriptor' + x_column:'getset_descriptor' + x_column_index:'getset_descriptor' + x_component:'getset_descriptor' + y_column:'getset_descriptor' + y_column_index:'getset_descriptor' + y_component:'getset_descriptor' + z_column:'getset_descriptor' + z_column_index:'getset_descriptor' + z_component:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Create2DPointsOff(self) -> None: ... + def Create2DPointsOn(self) -> None: ... + def GetCreate2DPoints(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPreserveCoordinateColumnsAsDataArrays(self) -> bool: ... + def GetXColumn(self) -> str: ... + def GetXColumnIndex(self) -> int: ... + def GetXColumnIndexMaxValue(self) -> int: ... + def GetXColumnIndexMinValue(self) -> int: ... + def GetXComponent(self) -> int: ... + def GetXComponentMaxValue(self) -> int: ... + def GetXComponentMinValue(self) -> int: ... + def GetYColumn(self) -> str: ... + def GetYColumnIndex(self) -> int: ... + def GetYColumnIndexMaxValue(self) -> int: ... + def GetYColumnIndexMinValue(self) -> int: ... + def GetYComponent(self) -> int: ... + def GetYComponentMaxValue(self) -> int: ... + def GetYComponentMinValue(self) -> int: ... + def GetZColumn(self) -> str: ... + def GetZColumnIndex(self) -> int: ... + def GetZColumnIndexMaxValue(self) -> int: ... + def GetZColumnIndexMinValue(self) -> int: ... + def GetZComponent(self) -> int: ... + def GetZComponentMaxValue(self) -> int: ... + def GetZComponentMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTableToPolyData': ... + def PreserveCoordinateColumnsAsDataArraysOff(self) -> None: ... + def PreserveCoordinateColumnsAsDataArraysOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTableToPolyData': ... + def SetCreate2DPoints(self, _arg:bool) -> None: ... + def SetPreserveCoordinateColumnsAsDataArrays(self, _arg:bool) -> None: ... + def SetXColumn(self, _arg:str) -> None: ... + def SetXColumnIndex(self, _arg:int) -> None: ... + def SetXComponent(self, _arg:int) -> None: ... + def SetYColumn(self, _arg:str) -> None: ... + def SetYColumnIndex(self, _arg:int) -> None: ... + def SetYComponent(self, _arg:int) -> None: ... + def SetZColumn(self, _arg:str) -> None: ... + def SetZColumnIndex(self, _arg:int) -> None: ... + def SetZComponent(self, _arg:int) -> None: ... + +class vtkTableToStructuredGrid(vtkmodules.vtkCommonExecutionModel.vtkStructuredGridAlgorithm): + whole_extent:'getset_descriptor' + x_column:'getset_descriptor' + x_component:'getset_descriptor' + y_column:'getset_descriptor' + y_component:'getset_descriptor' + z_column:'getset_descriptor' + z_component:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWholeExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetXColumn(self) -> str: ... + def GetXComponent(self) -> int: ... + def GetXComponentMaxValue(self) -> int: ... + def GetXComponentMinValue(self) -> int: ... + def GetYColumn(self) -> str: ... + def GetYComponent(self) -> int: ... + def GetYComponentMaxValue(self) -> int: ... + def GetYComponentMinValue(self) -> int: ... + def GetZColumn(self) -> str: ... + def GetZComponent(self) -> int: ... + def GetZComponentMaxValue(self) -> int: ... + def GetZComponentMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTableToStructuredGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTableToStructuredGrid': ... + @overload + def SetWholeExtent(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetWholeExtent(self, _arg:Sequence[int]) -> None: ... + def SetXColumn(self, _arg:str) -> None: ... + def SetXComponent(self, _arg:int) -> None: ... + def SetYColumn(self, _arg:str) -> None: ... + def SetYComponent(self, _arg:int) -> None: ... + def SetZColumn(self, _arg:str) -> None: ... + def SetZComponent(self, _arg:int) -> None: ... + +class vtkTemporalPathLineFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + id_channel_array:'getset_descriptor' + keep_dead_trails:'getset_descriptor' + mask_points:'getset_descriptor' + max_step_distance:'getset_descriptor' + max_track_length:'getset_descriptor' + selection_connection:'getset_descriptor' + selection_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Flush(self) -> None: ... + def GetIdChannelArray(self) -> str: ... + def GetKeepDeadTrails(self) -> bool: ... + def GetMaskPoints(self) -> int: ... + def GetMaxStepDistance(self) -> Tuple[float, float, float]: ... + def GetMaxTrackLength(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTemporalPathLineFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTemporalPathLineFilter': ... + def SetIdChannelArray(self, _arg:str) -> None: ... + def SetKeepDeadTrails(self, _arg:bool) -> None: ... + def SetMaskPoints(self, _arg:int) -> None: ... + @overload + def SetMaxStepDistance(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetMaxStepDistance(self, _arg:Sequence[float]) -> None: ... + def SetMaxTrackLength(self, _arg:int) -> None: ... + def SetSelectionConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSelectionData(self, input:'vtkDataSet') -> None: ... + @staticmethod + def TimeStepsArrayName() -> str: ... + +class vtkTemporalStatistics(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + compute_average:'getset_descriptor' + compute_maximum:'getset_descriptor' + compute_minimum:'getset_descriptor' + compute_standard_deviation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeAverageOff(self) -> None: ... + def ComputeAverageOn(self) -> None: ... + def ComputeMaximumOff(self) -> None: ... + def ComputeMaximumOn(self) -> None: ... + def ComputeMinimumOff(self) -> None: ... + def ComputeMinimumOn(self) -> None: ... + def ComputeStandardDeviationOff(self) -> None: ... + def ComputeStandardDeviationOn(self) -> None: ... + def GetComputeAverage(self) -> int: ... + def GetComputeMaximum(self) -> int: ... + def GetComputeMinimum(self) -> int: ... + def GetComputeStandardDeviation(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTemporalStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTemporalStatistics': ... + def SetComputeAverage(self, _arg:int) -> None: ... + def SetComputeMaximum(self, _arg:int) -> None: ... + def SetComputeMinimum(self, _arg:int) -> None: ... + def SetComputeStandardDeviation(self, _arg:int) -> None: ... + @staticmethod + def TimeStepsArrayName() -> str: ... + +class vtkTessellatorFilter(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + chord_error:'getset_descriptor' + m_time:'getset_descriptor' + maximum_number_of_subdivisions:'getset_descriptor' + merge_points:'getset_descriptor' + output_dimension:'getset_descriptor' + subdivider:'getset_descriptor' + tessellator:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetChordError(self) -> float: ... + def GetMTime(self) -> int: ... + def GetMaximumNumberOfSubdivisions(self) -> int: ... + def GetMergePoints(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputDimension(self) -> int: ... + def GetOutputDimensionMaxValue(self) -> int: ... + def GetOutputDimensionMinValue(self) -> int: ... + def GetSubdivider(self) -> 'vtkDataSetEdgeSubdivisionCriterion': ... + def GetTessellator(self) -> 'vtkStreamingTessellator': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergePointsOff(self) -> None: ... + def MergePointsOn(self) -> None: ... + def NewInstance(self) -> 'vtkTessellatorFilter': ... + def ResetFieldCriteria(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTessellatorFilter': ... + def SetChordError(self, ce:float) -> None: ... + def SetFieldCriterion(self, field:int, err:float) -> None: ... + def SetMaximumNumberOfSubdivisions(self, num_subdiv_in:int) -> None: ... + def SetMergePoints(self, _arg:int) -> None: ... + def SetOutputDimension(self, _arg:int) -> None: ... + def SetSubdivider(self, __a:'vtkDataSetEdgeSubdivisionCriterion') -> None: ... + def SetTessellator(self, __a:'vtkStreamingTessellator') -> None: ... + +class vtkTimeSourceExample(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + analytic:'getset_descriptor' + growing:'getset_descriptor' + x_amplitude:'getset_descriptor' + y_amplitude:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AnalyticOff(self) -> None: ... + def AnalyticOn(self) -> None: ... + def GetAnalytic(self) -> int: ... + def GetAnalyticMaxValue(self) -> int: ... + def GetAnalyticMinValue(self) -> int: ... + def GetGrowing(self) -> int: ... + def GetGrowingMaxValue(self) -> int: ... + def GetGrowingMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetXAmplitude(self) -> float: ... + def GetYAmplitude(self) -> float: ... + def GrowingOff(self) -> None: ... + def GrowingOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTimeSourceExample': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTimeSourceExample': ... + def SetAnalytic(self, _arg:int) -> None: ... + def SetGrowing(self, _arg:int) -> None: ... + def SetXAmplitude(self, _arg:float) -> None: ... + def SetYAmplitude(self, _arg:float) -> None: ... + +class vtkTransformFilter(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + m_time:'getset_descriptor' + output_points_precision:'getset_descriptor' + transform:'getset_descriptor' + transform_all_input_vectors:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetTransform(self) -> 'vtkAbstractTransform': ... + def GetTransformAllInputVectors(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTransformFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransformFilter': ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetTransform(self, __a:'vtkAbstractTransform') -> None: ... + def SetTransformAllInputVectors(self, _arg:bool) -> None: ... + def TransformAllInputVectorsOff(self) -> None: ... + def TransformAllInputVectorsOn(self) -> None: ... + +class vtkTransformPolyDataFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + m_time:'getset_descriptor' + output_points_precision:'getset_descriptor' + transform:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetTransform(self) -> 'vtkAbstractTransform': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTransformPolyDataFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransformPolyDataFilter': ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetTransform(self, __a:'vtkAbstractTransform') -> None: ... + +class vtkUncertaintyTubeFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + number_of_sides:'getset_descriptor' + number_of_sides_max_value:'getset_descriptor' + number_of_sides_min_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSides(self) -> int: ... + def GetNumberOfSidesMaxValue(self) -> int: ... + def GetNumberOfSidesMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUncertaintyTubeFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUncertaintyTubeFilter': ... + def SetNumberOfSides(self, _arg:int) -> None: ... + +class vtkVertexGlyphFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVertexGlyphFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVertexGlyphFilter': ... + +class vtkVolumeContourSpectrumFilter(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + arc_id:'getset_descriptor' + field_id:'getset_descriptor' + number_of_samples:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArcId(self) -> int: ... + def GetFieldId(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSamples(self) -> int: ... + def GetOutput(self) -> 'vtkTable': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVolumeContourSpectrumFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVolumeContourSpectrumFilter': ... + def SetArcId(self, _arg:int) -> None: ... + def SetFieldId(self, _arg:int) -> None: ... + def SetNumberOfSamples(self, _arg:int) -> None: ... + +class vtkVoxelContoursToSurfaceFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + memory_limit_in_bytes:'getset_descriptor' + spacing:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMemoryLimitInBytes(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSpacing(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVoxelContoursToSurfaceFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVoxelContoursToSurfaceFilter': ... + def SetMemoryLimitInBytes(self, _arg:int) -> None: ... + @overload + def SetSpacing(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetSpacing(self, _arg:Sequence[float]) -> None: ... + +class vtkWarpLens(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + center:'getset_descriptor' + format_height:'getset_descriptor' + format_width:'getset_descriptor' + image_height:'getset_descriptor' + image_width:'getset_descriptor' + k1:'getset_descriptor' + k2:'getset_descriptor' + kappa:'getset_descriptor' + p1:'getset_descriptor' + p2:'getset_descriptor' + principal_point:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetCenter(self) -> Tuple[float, float]: ... + def GetFormatHeight(self) -> float: ... + def GetFormatWidth(self) -> float: ... + def GetImageHeight(self) -> int: ... + def GetImageWidth(self) -> int: ... + def GetK1(self) -> float: ... + def GetK2(self) -> float: ... + def GetKappa(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetP1(self) -> float: ... + def GetP2(self) -> float: ... + def GetPrincipalPoint(self) -> Tuple[float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWarpLens': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWarpLens': ... + def SetCenter(self, centerX:float, centerY:float) -> None: ... + def SetFormatHeight(self, _arg:float) -> None: ... + def SetFormatWidth(self, _arg:float) -> None: ... + def SetImageHeight(self, _arg:int) -> None: ... + def SetImageWidth(self, _arg:int) -> None: ... + def SetK1(self, _arg:float) -> None: ... + def SetK2(self, _arg:float) -> None: ... + def SetKappa(self, kappa:float) -> None: ... + def SetP1(self, _arg:float) -> None: ... + def SetP2(self, _arg:float) -> None: ... + @overload + def SetPrincipalPoint(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetPrincipalPoint(self, _arg:Sequence[float]) -> None: ... + +class vtkWarpScalar(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + generate_enclosure:'getset_descriptor' + normal:'getset_descriptor' + output_points_precision:'getset_descriptor' + scale_factor:'getset_descriptor' + use_normal:'getset_descriptor' + xy_plane:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GenerateEnclosureOff(self) -> None: ... + def GenerateEnclosureOn(self) -> None: ... + def GetGenerateEnclosure(self) -> bool: ... + def GetNormal(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetScaleFactor(self) -> float: ... + def GetUseNormal(self) -> int: ... + def GetXYPlane(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWarpScalar': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWarpScalar': ... + def SetGenerateEnclosure(self, _arg:bool) -> None: ... + @overload + def SetNormal(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetNormal(self, _arg:Sequence[float]) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetScaleFactor(self, _arg:float) -> None: ... + def SetUseNormal(self, _arg:int) -> None: ... + def SetXYPlane(self, _arg:int) -> None: ... + def UseNormalOff(self) -> None: ... + def UseNormalOn(self) -> None: ... + def XYPlaneOff(self) -> None: ... + def XYPlaneOn(self) -> None: ... + +class vtkWarpTo(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + absolute:'getset_descriptor' + position:'getset_descriptor' + scale_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AbsoluteOff(self) -> None: ... + def AbsoluteOn(self) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetAbsolute(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPosition(self) -> Tuple[float, float, float]: ... + def GetScaleFactor(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWarpTo': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWarpTo': ... + def SetAbsolute(self, _arg:int) -> None: ... + @overload + def SetPosition(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPosition(self, _arg:Sequence[float]) -> None: ... + def SetScaleFactor(self, _arg:float) -> None: ... + +class vtkWarpVector(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + output_points_precision:'getset_descriptor' + scale_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetScaleFactor(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWarpVector': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWarpVector': ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetScaleFactor(self, _arg:float) -> None: ... + +class vtkYoungsMaterialInterface(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + MAX_CELL_POINTS:int + axis_symetric:'getset_descriptor' + fill_material:'getset_descriptor' + inverse_normal:'getset_descriptor' + number_of_domains:'getset_descriptor' + number_of_materials:'getset_descriptor' + onion_peel:'getset_descriptor' + reverse_material_order:'getset_descriptor' + use_all_blocks:'getset_descriptor' + use_fraction_as_distance:'getset_descriptor' + volume_fraction_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddMaterialBlockMapping(self, b:int) -> None: ... + def AxisSymetricOff(self) -> None: ... + def AxisSymetricOn(self) -> None: ... + def FillMaterialOff(self) -> None: ... + def FillMaterialOn(self) -> None: ... + def GetAxisSymetric(self) -> int: ... + def GetFillMaterial(self) -> int: ... + def GetInverseNormal(self) -> int: ... + def GetNumberOfDomains(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfMaterials(self) -> int: ... + def GetOnionPeel(self) -> int: ... + def GetReverseMaterialOrder(self) -> int: ... + def GetUseAllBlocks(self) -> bool: ... + def GetUseFractionAsDistance(self) -> int: ... + def GetVolumeFractionRange(self) -> Tuple[float, float]: ... + def InverseNormalOff(self) -> None: ... + def InverseNormalOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkYoungsMaterialInterface': ... + def OnionPeelOff(self) -> None: ... + def OnionPeelOn(self) -> None: ... + def RemoveAllMaterialBlockMappings(self) -> None: ... + def RemoveAllMaterials(self) -> None: ... + def ReverseMaterialOrderOff(self) -> None: ... + def ReverseMaterialOrderOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkYoungsMaterialInterface': ... + def SetAxisSymetric(self, _arg:int) -> None: ... + def SetFillMaterial(self, _arg:int) -> None: ... + def SetInverseNormal(self, _arg:int) -> None: ... + @overload + def SetMaterialArrays(self, i:int, volume:str, normalX:str, normalY:str, normalZ:str, ordering:str) -> None: ... + @overload + def SetMaterialArrays(self, i:int, volume:str, normal:str, ordering:str) -> None: ... + @overload + def SetMaterialNormalArray(self, i:int, normal:str) -> None: ... + @overload + def SetMaterialNormalArray(self, volume:str, normal:str) -> None: ... + @overload + def SetMaterialOrderingArray(self, i:int, ordering:str) -> None: ... + @overload + def SetMaterialOrderingArray(self, volume:str, ordering:str) -> None: ... + def SetMaterialVolumeFractionArray(self, i:int, volume:str) -> None: ... + def SetNumberOfMaterials(self, n:int) -> None: ... + def SetOnionPeel(self, _arg:int) -> None: ... + def SetReverseMaterialOrder(self, _arg:int) -> None: ... + def SetUseAllBlocks(self, _arg:bool) -> None: ... + def SetUseFractionAsDistance(self, _arg:int) -> None: ... + @overload + def SetVolumeFractionRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetVolumeFractionRange(self, _arg:Sequence[float]) -> None: ... + def UseAllBlocksOff(self) -> None: ... + def UseAllBlocksOn(self) -> None: ... + def UseFractionAsDistanceOff(self) -> None: ... + def UseFractionAsDistanceOn(self) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeneric.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeneric.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..1be7071 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeneric.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeneric.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeneric.pyi new file mode 100644 index 0000000..4f7c79f --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeneric.pyi @@ -0,0 +1,515 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +VTK_COLOR_BY_SCALAR:int +VTK_COLOR_BY_SCALE:int +VTK_COLOR_BY_VECTOR:int +VTK_DATA_SCALING_OFF:int +VTK_INDEXING_BY_SCALAR:int +VTK_INDEXING_BY_VECTOR:int +VTK_INDEXING_OFF:int +VTK_SCALE_BY_SCALAR:int +VTK_SCALE_BY_VECTOR:int +VTK_SCALE_BY_VECTORCOMPONENTS:int +VTK_USE_NORMAL:int +VTK_USE_VECTOR:int +VTK_VECTOR_ROTATION_OFF:int + +class vtkGenericClip(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + clip_function:'getset_descriptor' + clipped_output:'getset_descriptor' + generate_clip_scalars:'getset_descriptor' + generate_clipped_output:'getset_descriptor' + input_scalars_selection:'getset_descriptor' + inside_out:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + merge_tolerance:'getset_descriptor' + value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def GenerateClipScalarsOff(self) -> None: ... + def GenerateClipScalarsOn(self) -> None: ... + def GenerateClippedOutputOff(self) -> None: ... + def GenerateClippedOutputOn(self) -> None: ... + def GetClipFunction(self) -> 'vtkImplicitFunction': ... + def GetClippedOutput(self) -> 'vtkUnstructuredGrid': ... + def GetGenerateClipScalars(self) -> int: ... + def GetGenerateClippedOutput(self) -> int: ... + def GetInputScalarsSelection(self) -> str: ... + def GetInsideOut(self) -> int: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetMergeTolerance(self) -> float: ... + def GetMergeToleranceMaxValue(self) -> float: ... + def GetMergeToleranceMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfOutputs(self) -> int: ... + def GetValue(self) -> float: ... + def InsideOutOff(self) -> None: ... + def InsideOutOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenericClip': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericClip': ... + def SelectInputScalars(self, fieldName:str) -> None: ... + def SetClipFunction(self, __a:'vtkImplicitFunction') -> None: ... + def SetGenerateClipScalars(self, _arg:int) -> None: ... + def SetGenerateClippedOutput(self, _arg:int) -> None: ... + def SetInsideOut(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetMergeTolerance(self, _arg:float) -> None: ... + def SetValue(self, _arg:float) -> None: ... + +class vtkGenericContourFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + compute_gradients:'getset_descriptor' + compute_normals:'getset_descriptor' + compute_scalars:'getset_descriptor' + input_scalars_selection:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeGradientsOff(self) -> None: ... + def ComputeGradientsOn(self) -> None: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def ComputeScalarsOff(self) -> None: ... + def ComputeScalarsOn(self) -> None: ... + def CreateDefaultLocator(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetComputeGradients(self) -> int: ... + def GetComputeNormals(self) -> int: ... + def GetComputeScalars(self) -> int: ... + def GetInputScalarsSelection(self) -> str: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenericContourFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericContourFilter': ... + def SelectInputScalars(self, fieldName:str) -> None: ... + def SetComputeGradients(self, _arg:int) -> None: ... + def SetComputeNormals(self, _arg:int) -> None: ... + def SetComputeScalars(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + +class vtkGenericCutter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + cut_function:'getset_descriptor' + generate_cut_scalars:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def GenerateCutScalarsOff(self) -> None: ... + def GenerateCutScalarsOn(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetCutFunction(self) -> 'vtkImplicitFunction': ... + def GetGenerateCutScalars(self) -> int: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenericCutter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericCutter': ... + def SetCutFunction(self, __a:'vtkImplicitFunction') -> None: ... + def SetGenerateCutScalars(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + +class vtkGenericDataSetTessellator(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + keep_cell_ids:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + merging:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def GetKeepCellIds(self) -> int: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetMerging(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def KeepCellIdsOff(self) -> None: ... + def KeepCellIdsOn(self) -> None: ... + def MergingOff(self) -> None: ... + def MergingOn(self) -> None: ... + def NewInstance(self) -> 'vtkGenericDataSetTessellator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericDataSetTessellator': ... + def SetKeepCellIds(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetMerging(self, _arg:int) -> None: ... + +class vtkGenericGeometryFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + cell_clipping:'getset_descriptor' + cell_maximum:'getset_descriptor' + cell_minimum:'getset_descriptor' + extent:'getset_descriptor' + extent_clipping:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + merging:'getset_descriptor' + pass_through_cell_ids:'getset_descriptor' + point_clipping:'getset_descriptor' + point_maximum:'getset_descriptor' + point_minimum:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellClippingOff(self) -> None: ... + def CellClippingOn(self) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def ExtentClippingOff(self) -> None: ... + def ExtentClippingOn(self) -> None: ... + def GetCellClipping(self) -> int: ... + def GetCellMaximum(self) -> int: ... + def GetCellMaximumMaxValue(self) -> int: ... + def GetCellMaximumMinValue(self) -> int: ... + def GetCellMinimum(self) -> int: ... + def GetCellMinimumMaxValue(self) -> int: ... + def GetCellMinimumMinValue(self) -> int: ... + def GetExtent(self) -> Pointer: ... + def GetExtentClipping(self) -> int: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetMerging(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassThroughCellIds(self) -> int: ... + def GetPointClipping(self) -> int: ... + def GetPointMaximum(self) -> int: ... + def GetPointMaximumMaxValue(self) -> int: ... + def GetPointMaximumMinValue(self) -> int: ... + def GetPointMinimum(self) -> int: ... + def GetPointMinimumMaxValue(self) -> int: ... + def GetPointMinimumMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergingOff(self) -> None: ... + def MergingOn(self) -> None: ... + def NewInstance(self) -> 'vtkGenericGeometryFilter': ... + def PassThroughCellIdsOff(self) -> None: ... + def PassThroughCellIdsOn(self) -> None: ... + def PointClippingOff(self) -> None: ... + def PointClippingOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericGeometryFilter': ... + def SetCellClipping(self, _arg:int) -> None: ... + def SetCellMaximum(self, _arg:int) -> None: ... + def SetCellMinimum(self, _arg:int) -> None: ... + @overload + def SetExtent(self, xMin:float, xMax:float, yMin:float, yMax:float, zMin:float, zMax:float) -> None: ... + @overload + def SetExtent(self, extent:MutableSequence[float]) -> None: ... + def SetExtentClipping(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetMerging(self, _arg:int) -> None: ... + def SetPassThroughCellIds(self, _arg:int) -> None: ... + def SetPointClipping(self, _arg:int) -> None: ... + def SetPointMaximum(self, _arg:int) -> None: ... + def SetPointMinimum(self, _arg:int) -> None: ... + +class vtkGenericGlyph3DFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + clamping:'getset_descriptor' + color_mode:'getset_descriptor' + generate_point_ids:'getset_descriptor' + index_mode:'getset_descriptor' + input_normals_selection:'getset_descriptor' + input_scalars_selection:'getset_descriptor' + input_vectors_selection:'getset_descriptor' + orient:'getset_descriptor' + point_ids_name:'getset_descriptor' + range:'getset_descriptor' + scale_factor:'getset_descriptor' + scale_mode:'getset_descriptor' + scaling:'getset_descriptor' + source_data:'getset_descriptor' + vector_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClampingOff(self) -> None: ... + def ClampingOn(self) -> None: ... + def GeneratePointIdsOff(self) -> None: ... + def GeneratePointIdsOn(self) -> None: ... + def GetClamping(self) -> int: ... + def GetColorMode(self) -> int: ... + def GetColorModeAsString(self) -> str: ... + def GetGeneratePointIds(self) -> int: ... + def GetIndexMode(self) -> int: ... + def GetIndexModeAsString(self) -> str: ... + def GetInputNormalsSelection(self) -> str: ... + def GetInputScalarsSelection(self) -> str: ... + def GetInputVectorsSelection(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrient(self) -> int: ... + def GetPointIdsName(self) -> str: ... + def GetRange(self) -> Tuple[float, float]: ... + def GetScaleFactor(self) -> float: ... + def GetScaleMode(self) -> int: ... + def GetScaleModeAsString(self) -> str: ... + def GetScaling(self) -> int: ... + def GetSource(self, id:int=0) -> 'vtkPolyData': ... + def GetVectorMode(self) -> int: ... + def GetVectorModeAsString(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenericGlyph3DFilter': ... + def OrientOff(self) -> None: ... + def OrientOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericGlyph3DFilter': ... + def ScalingOff(self) -> None: ... + def ScalingOn(self) -> None: ... + def SelectInputNormals(self, fieldName:str) -> None: ... + def SelectInputScalars(self, fieldName:str) -> None: ... + def SelectInputVectors(self, fieldName:str) -> None: ... + def SetClamping(self, _arg:int) -> None: ... + def SetColorMode(self, _arg:int) -> None: ... + def SetColorModeToColorByScalar(self) -> None: ... + def SetColorModeToColorByScale(self) -> None: ... + def SetColorModeToColorByVector(self) -> None: ... + def SetGeneratePointIds(self, _arg:int) -> None: ... + def SetIndexMode(self, _arg:int) -> None: ... + def SetIndexModeToOff(self) -> None: ... + def SetIndexModeToScalar(self) -> None: ... + def SetIndexModeToVector(self) -> None: ... + def SetOrient(self, _arg:int) -> None: ... + def SetPointIdsName(self, _arg:str) -> None: ... + @overload + def SetRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetRange(self, _arg:Sequence[float]) -> None: ... + def SetScaleFactor(self, _arg:float) -> None: ... + def SetScaleMode(self, _arg:int) -> None: ... + def SetScaleModeToDataScalingOff(self) -> None: ... + def SetScaleModeToScaleByScalar(self) -> None: ... + def SetScaleModeToScaleByVector(self) -> None: ... + def SetScaleModeToScaleByVectorComponents(self) -> None: ... + def SetScaling(self, _arg:int) -> None: ... + @overload + def SetSourceData(self, pd:'vtkPolyData') -> None: ... + @overload + def SetSourceData(self, id:int, pd:'vtkPolyData') -> None: ... + def SetVectorMode(self, _arg:int) -> None: ... + def SetVectorModeToUseNormal(self) -> None: ... + def SetVectorModeToUseVector(self) -> None: ... + def SetVectorModeToVectorRotationOff(self) -> None: ... + +class vtkGenericOutlineFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenericOutlineFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericOutlineFilter': ... + +class vtkGenericProbeFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + source:'getset_descriptor' + source_data:'getset_descriptor' + valid_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSource(self) -> 'vtkGenericDataSet': ... + def GetValidPoints(self) -> 'vtkIdTypeArray': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenericProbeFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericProbeFilter': ... + def SetSourceData(self, source:'vtkGenericDataSet') -> None: ... + +class vtkGenericStreamTracer(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class Units(int): ... + class Solvers(int): ... + class ReasonForTermination(int): ... + BACKWARD:int + BOTH:int + CELL_LENGTH_UNIT:'Units' + FORWARD:int + LENGTH_UNIT:'Units' + NONE:'Solvers' + NOT_INITIALIZED:'ReasonForTermination' + OUT_OF_DOMAIN:'ReasonForTermination' + OUT_OF_STEPS:'ReasonForTermination' + OUT_OF_TIME:'ReasonForTermination' + RUNGE_KUTTA2:'Solvers' + RUNGE_KUTTA4:'Solvers' + RUNGE_KUTTA45:'Solvers' + STAGNATION:'ReasonForTermination' + TIME_UNIT:'Units' + UNEXPECTED_VALUE:'ReasonForTermination' + UNKNOWN:'Solvers' + compute_vorticity:'getset_descriptor' + initial_integration_step:'getset_descriptor' + initial_integration_step_unit:'getset_descriptor' + input_vectors_selection:'getset_descriptor' + integration_direction:'getset_descriptor' + integration_step_unit:'getset_descriptor' + integrator:'getset_descriptor' + integrator_type:'getset_descriptor' + interpolator_prototype:'getset_descriptor' + maximum_error:'getset_descriptor' + maximum_integration_step:'getset_descriptor' + maximum_integration_step_unit:'getset_descriptor' + maximum_number_of_steps:'getset_descriptor' + maximum_propagation:'getset_descriptor' + maximum_propagation_unit:'getset_descriptor' + minimum_integration_step:'getset_descriptor' + minimum_integration_step_unit:'getset_descriptor' + rotation_scale:'getset_descriptor' + source:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + start_position:'getset_descriptor' + terminal_speed:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddInputData(self, in_:'vtkGenericDataSet') -> None: ... + def ComputeVorticityOff(self) -> None: ... + def ComputeVorticityOn(self) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetComputeVorticity(self) -> int: ... + def GetInitialIntegrationStep(self) -> float: ... + def GetInitialIntegrationStepUnit(self) -> int: ... + def GetInputVectorsSelection(self) -> str: ... + def GetIntegrationDirection(self) -> int: ... + def GetIntegrationDirectionMaxValue(self) -> int: ... + def GetIntegrationDirectionMinValue(self) -> int: ... + def GetIntegrator(self) -> 'vtkInitialValueProblemSolver': ... + def GetIntegratorType(self) -> int: ... + def GetMaximumError(self) -> float: ... + def GetMaximumIntegrationStep(self) -> float: ... + def GetMaximumIntegrationStepUnit(self) -> int: ... + def GetMaximumNumberOfSteps(self) -> int: ... + def GetMaximumPropagation(self) -> float: ... + def GetMaximumPropagationUnit(self) -> int: ... + def GetMinimumIntegrationStep(self) -> float: ... + def GetMinimumIntegrationStepUnit(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRotationScale(self) -> float: ... + def GetSource(self) -> 'vtkDataSet': ... + def GetStartPosition(self) -> Tuple[float, float, float]: ... + def GetTerminalSpeed(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenericStreamTracer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericStreamTracer': ... + def SelectInputVectors(self, fieldName:str) -> None: ... + def SetComputeVorticity(self, _arg:int) -> None: ... + @overload + def SetInitialIntegrationStep(self, unit:int, step:float) -> None: ... + @overload + def SetInitialIntegrationStep(self, step:float) -> None: ... + def SetInitialIntegrationStepUnit(self, unit:int) -> None: ... + def SetInitialIntegrationStepUnitToCellLengthUnit(self) -> None: ... + def SetInitialIntegrationStepUnitToLengthUnit(self) -> None: ... + def SetInitialIntegrationStepUnitToTimeUnit(self) -> None: ... + def SetIntegrationDirection(self, _arg:int) -> None: ... + def SetIntegrationDirectionToBackward(self) -> None: ... + def SetIntegrationDirectionToBoth(self) -> None: ... + def SetIntegrationDirectionToForward(self) -> None: ... + def SetIntegrationStepUnit(self, unit:int) -> None: ... + def SetIntegrator(self, __a:'vtkInitialValueProblemSolver') -> None: ... + def SetIntegratorType(self, type:int) -> None: ... + def SetIntegratorTypeToRungeKutta2(self) -> None: ... + def SetIntegratorTypeToRungeKutta4(self) -> None: ... + def SetIntegratorTypeToRungeKutta45(self) -> None: ... + def SetInterpolatorPrototype(self, ivf:'vtkGenericInterpolatedVelocityField') -> None: ... + def SetMaximumError(self, _arg:float) -> None: ... + @overload + def SetMaximumIntegrationStep(self, unit:int, step:float) -> None: ... + @overload + def SetMaximumIntegrationStep(self, step:float) -> None: ... + def SetMaximumIntegrationStepUnit(self, unit:int) -> None: ... + def SetMaximumIntegrationStepUnitToCellLengthUnit(self) -> None: ... + def SetMaximumIntegrationStepUnitToLengthUnit(self) -> None: ... + def SetMaximumIntegrationStepUnitToTimeUnit(self) -> None: ... + def SetMaximumNumberOfSteps(self, _arg:int) -> None: ... + @overload + def SetMaximumPropagation(self, unit:int, max:float) -> None: ... + @overload + def SetMaximumPropagation(self, max:float) -> None: ... + def SetMaximumPropagationUnit(self, unit:int) -> None: ... + def SetMaximumPropagationUnitToCellLengthUnit(self) -> None: ... + def SetMaximumPropagationUnitToLengthUnit(self) -> None: ... + def SetMaximumPropagationUnitToTimeUnit(self) -> None: ... + @overload + def SetMinimumIntegrationStep(self, unit:int, step:float) -> None: ... + @overload + def SetMinimumIntegrationStep(self, step:float) -> None: ... + def SetMinimumIntegrationStepUnit(self, unit:int) -> None: ... + def SetMinimumIntegrationStepUnitToCellLengthUnit(self) -> None: ... + def SetMinimumIntegrationStepUnitToLengthUnit(self) -> None: ... + def SetMinimumIntegrationStepUnitToTimeUnit(self) -> None: ... + def SetRotationScale(self, _arg:float) -> None: ... + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, source:'vtkDataSet') -> None: ... + @overload + def SetStartPosition(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetStartPosition(self, _arg:Sequence[float]) -> None: ... + def SetTerminalSpeed(self, _arg:float) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeometry.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeometry.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..fa66e26 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeometry.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeometry.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeometry.pyi new file mode 100644 index 0000000..645e876 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeometry.pyi @@ -0,0 +1,822 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +VTK_EDGE_OVERLAP:int +VTK_NODE_OVERLAP:int +VTK_NO_OVERLAP:int +VTK_PARTIAL_OVERLAP:int + +class vtkAbstractGridConnectivity(vtkmodules.vtkCommonCore.vtkObject): + number_of_ghost_layers:'getset_descriptor' + number_of_grids:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeNeighbors(self) -> None: ... + def CreateGhostLayers(self, N:int=1) -> None: ... + def GetGhostedCellGhostArray(self, gridID:int) -> 'vtkUnsignedCharArray': ... + def GetGhostedGridCellData(self, gridID:int) -> 'vtkCellData': ... + def GetGhostedGridPointData(self, gridID:int) -> 'vtkPointData': ... + def GetGhostedPointGhostArray(self, gridID:int) -> 'vtkUnsignedCharArray': ... + def GetGhostedPoints(self, gridID:int) -> 'vtkPoints': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfGhostLayers(self) -> int: ... + def GetNumberOfGrids(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAbstractGridConnectivity': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractGridConnectivity': ... + def SetNumberOfGhostLayers(self, _arg:int) -> None: ... + def SetNumberOfGrids(self, N:int) -> None: ... + +class vtkAttributeSmoothingFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + class SmoothingStrategyType(int): ... + class InterpolationWeightsType(int): ... + ADJACENT_TO_BOUNDARY:'SmoothingStrategyType' + ALL_BUT_BOUNDARY:'SmoothingStrategyType' + ALL_POINTS:'SmoothingStrategyType' + AVERAGE:'InterpolationWeightsType' + DISTANCE:'InterpolationWeightsType' + DISTANCE2:'InterpolationWeightsType' + SMOOTHING_MASK:'SmoothingStrategyType' + number_of_iterations:'getset_descriptor' + number_of_iterations_max_value:'getset_descriptor' + number_of_iterations_min_value:'getset_descriptor' + relaxation_factor:'getset_descriptor' + smoothing_mask:'getset_descriptor' + smoothing_strategy:'getset_descriptor' + weights_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddExcludedArray(self, excludedArray:str) -> None: ... + def ClearExcludedArrays(self) -> None: ... + def GetExcludedArray(self, i:int) -> str: ... + def GetNumberOfExcludedArrays(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIterations(self) -> int: ... + def GetNumberOfIterationsMaxValue(self) -> int: ... + def GetNumberOfIterationsMinValue(self) -> int: ... + def GetRelaxationFactor(self) -> float: ... + def GetRelaxationFactorMaxValue(self) -> float: ... + def GetRelaxationFactorMinValue(self) -> float: ... + def GetSmoothingMask(self) -> 'vtkUnsignedCharArray': ... + def GetSmoothingStrategy(self) -> int: ... + def GetSmoothingStrategyMaxValue(self) -> int: ... + def GetSmoothingStrategyMinValue(self) -> int: ... + def GetWeightsType(self) -> int: ... + def GetWeightsTypeMaxValue(self) -> int: ... + def GetWeightsTypeMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAttributeSmoothingFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAttributeSmoothingFilter': ... + def SetNumberOfIterations(self, _arg:int) -> None: ... + def SetRelaxationFactor(self, _arg:float) -> None: ... + def SetSmoothingMask(self, _arg:'vtkUnsignedCharArray') -> None: ... + def SetSmoothingStrategy(self, _arg:int) -> None: ... + def SetSmoothingStrategyToAdjacentToBoundary(self) -> None: ... + def SetSmoothingStrategyToAllButBoundary(self) -> None: ... + def SetSmoothingStrategyToAllPoints(self) -> None: ... + def SetSmoothingStrategyToSmoothingMask(self) -> None: ... + def SetWeightsType(self, _arg:int) -> None: ... + def SetWeightsTypeToAverage(self) -> None: ... + def SetWeightsTypeToDistance(self) -> None: ... + def SetWeightsTypeToDistance2(self) -> None: ... + +class vtkCompositeDataGeometryFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositeDataGeometryFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeDataGeometryFilter': ... + +class vtkDataSetSurfaceFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + allow_interpolation:'getset_descriptor' + delegation:'getset_descriptor' + fast_mode:'getset_descriptor' + match_boundaries_ignoring_cell_order:'getset_descriptor' + nonlinear_subdivision_level:'getset_descriptor' + original_cell_ids_name:'getset_descriptor' + original_point_ids_name:'getset_descriptor' + pass_through_cell_ids:'getset_descriptor' + pass_through_point_ids:'getset_descriptor' + piece_invariant:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllowInterpolationOff(self) -> None: ... + def AllowInterpolationOn(self) -> None: ... + def DataSetExecute(self, input:'vtkDataSet', output:'vtkPolyData') -> int: ... + def DelegationOff(self) -> None: ... + def DelegationOn(self) -> None: ... + def FastModeOff(self) -> None: ... + def FastModeOn(self) -> None: ... + def GetAllowInterpolation(self) -> int: ... + def GetDelegation(self) -> int: ... + def GetFastMode(self) -> bool: ... + def GetMatchBoundariesIgnoringCellOrder(self) -> int: ... + def GetNonlinearSubdivisionLevel(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOriginalCellIdsName(self) -> str: ... + def GetOriginalPointIdsName(self) -> str: ... + def GetPassThroughCellIds(self) -> int: ... + def GetPassThroughPointIds(self) -> int: ... + def GetPieceInvariant(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataSetSurfaceFilter': ... + def PassThroughCellIdsOff(self) -> None: ... + def PassThroughCellIdsOn(self) -> None: ... + def PassThroughPointIdsOff(self) -> None: ... + def PassThroughPointIdsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataSetSurfaceFilter': ... + def SetAllowInterpolation(self, _arg:int) -> None: ... + def SetDelegation(self, _arg:int) -> None: ... + def SetFastMode(self, _arg:bool) -> None: ... + def SetMatchBoundariesIgnoringCellOrder(self, _arg:int) -> None: ... + def SetNonlinearSubdivisionLevel(self, _arg:int) -> None: ... + def SetOriginalCellIdsName(self, _arg:str) -> None: ... + def SetOriginalPointIdsName(self, _arg:str) -> None: ... + def SetPassThroughCellIds(self, _arg:int) -> None: ... + def SetPassThroughPointIds(self, _arg:int) -> None: ... + def SetPieceInvariant(self, _arg:int) -> None: ... + @overload + def StructuredExecute(self, input:'vtkDataSet', output:'vtkPolyData', ext:MutableSequence[int], wholeExt:MutableSequence[int]) -> int: ... + @overload + def StructuredExecute(self, input:'vtkDataSet', output:'vtkPolyData', ext32:Sequence[int], wholeExt32:Sequence[int]) -> int: ... + @overload + def UniformGridExecute(self, input:'vtkDataSet', output:'vtkPolyData', ext:MutableSequence[int], wholeExt:MutableSequence[int], extractface:MutableSequence[bool]) -> int: ... + @overload + def UniformGridExecute(self, input:'vtkDataSet', output:'vtkPolyData', ext32:Sequence[int], wholeExt32:Sequence[int], extractface:MutableSequence[bool]) -> int: ... + def UnstructuredGridExecute(self, input:'vtkDataSet', output:'vtkPolyData') -> int: ... + +class vtkDataSetRegionSurfaceFilter(vtkDataSetSurfaceFilter): + interface_i_ds_name:'getset_descriptor' + material_i_ds_name:'getset_descriptor' + material_pi_ds_name:'getset_descriptor' + material_properties_name:'getset_descriptor' + region_array_name:'getset_descriptor' + single_sided:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInterfaceIDsName(self) -> str: ... + def GetMaterialIDsName(self) -> str: ... + def GetMaterialPIDsName(self) -> str: ... + def GetMaterialPropertiesName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRegionArrayName(self) -> str: ... + def GetSingleSided(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataSetRegionSurfaceFilter': ... + def RecordOrigCellId(self, newIndex:int, origId:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataSetRegionSurfaceFilter': ... + def SetInterfaceIDsName(self, _arg:str) -> None: ... + def SetMaterialIDsName(self, _arg:str) -> None: ... + def SetMaterialPIDsName(self, _arg:str) -> None: ... + def SetMaterialPropertiesName(self, _arg:str) -> None: ... + def SetRegionArrayName(self, _arg:str) -> None: ... + def SetSingleSided(self, _arg:bool) -> None: ... + def UnstructuredGridExecute(self, input:'vtkDataSet', output:'vtkPolyData') -> int: ... + +class vtkExplicitStructuredGridSurfaceFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + original_cell_ids_name:'getset_descriptor' + original_point_ids_name:'getset_descriptor' + pass_through_cell_ids:'getset_descriptor' + pass_through_point_ids:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOriginalCellIdsName(self) -> str: ... + def GetOriginalPointIdsName(self) -> str: ... + def GetPassThroughCellIds(self) -> int: ... + def GetPassThroughPointIds(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExplicitStructuredGridSurfaceFilter': ... + def PassThroughCellIdsOff(self) -> None: ... + def PassThroughCellIdsOn(self) -> None: ... + def PassThroughPointIdsOff(self) -> None: ... + def PassThroughPointIdsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExplicitStructuredGridSurfaceFilter': ... + def SetOriginalCellIdsName(self, _arg:str) -> None: ... + def SetOriginalPointIdsName(self, _arg:str) -> None: ... + def SetPassThroughCellIds(self, _arg:int) -> None: ... + def SetPassThroughPointIds(self, _arg:int) -> None: ... + +class vtkFastGeomQuadStruct(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkFastGeomQuadStruct') -> None: ... + +class vtkGeometryFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + cell_clipping:'getset_descriptor' + cell_maximum:'getset_descriptor' + cell_minimum:'getset_descriptor' + delegation:'getset_descriptor' + excluded_faces:'getset_descriptor' + excluded_faces_connection:'getset_descriptor' + excluded_faces_data:'getset_descriptor' + extent:'getset_descriptor' + extent_clipping:'getset_descriptor' + fast_mode:'getset_descriptor' + match_boundaries_ignoring_cell_order:'getset_descriptor' + merging:'getset_descriptor' + nonlinear_subdivision_level:'getset_descriptor' + original_cell_ids_name:'getset_descriptor' + original_point_ids_name:'getset_descriptor' + output_points_precision:'getset_descriptor' + pass_through_cell_ids:'getset_descriptor' + pass_through_point_ids:'getset_descriptor' + piece_invariant:'getset_descriptor' + point_clipping:'getset_descriptor' + point_maximum:'getset_descriptor' + point_minimum:'getset_descriptor' + remove_ghost_interfaces:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellClippingOff(self) -> None: ... + def CellClippingOn(self) -> None: ... + @overload + def DataSetExecute(self, input:'vtkDataSet', output:'vtkPolyData', exc:'vtkPolyData') -> int: ... + @overload + def DataSetExecute(self, input:'vtkDataSet', output:'vtkPolyData') -> int: ... + def DelegationOff(self) -> None: ... + def DelegationOn(self) -> None: ... + def ExtentClippingOff(self) -> None: ... + def ExtentClippingOn(self) -> None: ... + def FastModeOff(self) -> None: ... + def FastModeOn(self) -> None: ... + def GetCellClipping(self) -> bool: ... + def GetCellMaximum(self) -> int: ... + def GetCellMaximumMaxValue(self) -> int: ... + def GetCellMaximumMinValue(self) -> int: ... + def GetCellMinimum(self) -> int: ... + def GetCellMinimumMaxValue(self) -> int: ... + def GetCellMinimumMinValue(self) -> int: ... + def GetDelegation(self) -> int: ... + def GetExcludedFaces(self) -> 'vtkPolyData': ... + def GetExtent(self) -> Tuple[float, float, float, float, float, float]: ... + def GetExtentClipping(self) -> bool: ... + def GetFastMode(self) -> bool: ... + def GetMatchBoundariesIgnoringCellOrder(self) -> int: ... + def GetMerging(self) -> bool: ... + def GetNonlinearSubdivisionLevel(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOriginalCellIdsName(self) -> str: ... + def GetOriginalPointIdsName(self) -> str: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPassThroughCellIds(self) -> int: ... + def GetPassThroughPointIds(self) -> int: ... + def GetPieceInvariant(self) -> int: ... + def GetPointClipping(self) -> bool: ... + def GetPointMaximum(self) -> int: ... + def GetPointMaximumMaxValue(self) -> int: ... + def GetPointMaximumMinValue(self) -> int: ... + def GetPointMinimum(self) -> int: ... + def GetPointMinimumMaxValue(self) -> int: ... + def GetPointMinimumMinValue(self) -> int: ... + def GetRemoveGhostInterfaces(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergingOff(self) -> None: ... + def MergingOn(self) -> None: ... + def NewInstance(self) -> 'vtkGeometryFilter': ... + def PassThroughCellIdsOff(self) -> None: ... + def PassThroughCellIdsOn(self) -> None: ... + def PassThroughPointIdsOff(self) -> None: ... + def PassThroughPointIdsOn(self) -> None: ... + def PointClippingOff(self) -> None: ... + def PointClippingOn(self) -> None: ... + @overload + def PolyDataExecute(self, input:'vtkDataSet', output:'vtkPolyData', exc:'vtkPolyData') -> int: ... + @overload + def PolyDataExecute(self, __a:'vtkDataSet', __b:'vtkPolyData') -> int: ... + def RemoveGhostInterfacesOff(self) -> None: ... + def RemoveGhostInterfacesOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGeometryFilter': ... + def SetCellClipping(self, _arg:bool) -> None: ... + def SetCellMaximum(self, _arg:int) -> None: ... + def SetCellMinimum(self, _arg:int) -> None: ... + def SetDelegation(self, _arg:int) -> None: ... + def SetExcludedFacesConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetExcludedFacesData(self, __a:'vtkPolyData') -> None: ... + @overload + def SetExtent(self, xMin:float, xMax:float, yMin:float, yMax:float, zMin:float, zMax:float) -> None: ... + @overload + def SetExtent(self, extent:MutableSequence[float]) -> None: ... + def SetExtentClipping(self, _arg:bool) -> None: ... + def SetFastMode(self, _arg:bool) -> None: ... + def SetMatchBoundariesIgnoringCellOrder(self, _arg:int) -> None: ... + def SetMerging(self, _arg:bool) -> None: ... + def SetNonlinearSubdivisionLevel(self, _arg:int) -> None: ... + def SetOriginalCellIdsName(self, _arg:str) -> None: ... + def SetOriginalPointIdsName(self, _arg:str) -> None: ... + def SetOutputPointsPrecision(self, precision:int) -> None: ... + def SetPassThroughCellIds(self, _arg:int) -> None: ... + def SetPassThroughPointIds(self, _arg:int) -> None: ... + def SetPieceInvariant(self, _arg:int) -> None: ... + def SetPointClipping(self, _arg:bool) -> None: ... + def SetPointMaximum(self, _arg:int) -> None: ... + def SetPointMinimum(self, _arg:int) -> None: ... + def SetRemoveGhostInterfaces(self, _arg:bool) -> None: ... + @overload + def StructuredExecute(self, input:'vtkDataSet', output:'vtkPolyData', wholeExtent:MutableSequence[int], exc:'vtkPolyData', extractFace:MutableSequence[bool]=...) -> int: ... + @overload + def StructuredExecute(self, input:'vtkDataSet', output:'vtkPolyData', wholeExt:MutableSequence[int], extractFace:MutableSequence[bool]=...) -> int: ... + def UnstructuredGridExecute(self, input:'vtkDataSet', output:'vtkPolyData') -> int: ... + +class vtkGeometryFilterHelper(object): + class CellType(int): ... + LINES:'CellType' + NON_LINEAR_CELLS:'CellType' + NUM_CELL_TYPES:'CellType' + OTHER_LINEAR_CELLS:'CellType' + POLYS:'CellType' + STRIPS:'CellType' + VERTS:'CellType' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkGeometryFilterHelper') -> None: ... + @overload + @staticmethod + def CopyFilterParams(gf:'vtkGeometryFilter', dssf:'vtkDataSetSurfaceFilter') -> None: ... + @overload + @staticmethod + def CopyFilterParams(dssf:'vtkDataSetSurfaceFilter', gf:'vtkGeometryFilter') -> None: ... + def HasOnlyLines(self) -> bool: ... + def HasOnlyPolys(self) -> bool: ... + def HasOnlyStrips(self) -> bool: ... + def HasOnlyVerts(self) -> bool: ... + +class vtkHierarchicalDataSetGeometryFilter(vtkCompositeDataGeometryFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHierarchicalDataSetGeometryFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHierarchicalDataSetGeometryFilter': ... + +class vtkImageDataGeometryFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + extent:'getset_descriptor' + output_triangles:'getset_descriptor' + threshold_cells:'getset_descriptor' + threshold_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputTriangles(self) -> int: ... + def GetThresholdCells(self) -> int: ... + def GetThresholdValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageDataGeometryFilter': ... + def OutputTrianglesOff(self) -> None: ... + def OutputTrianglesOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageDataGeometryFilter': ... + @overload + def SetExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def SetExtent(self, iMin:int, iMax:int, jMin:int, jMax:int, kMin:int, kMax:int) -> None: ... + def SetOutputTriangles(self, _arg:int) -> None: ... + def SetThresholdCells(self, _arg:int) -> None: ... + def SetThresholdValue(self, _arg:float) -> None: ... + def ThresholdCellsOff(self) -> None: ... + def ThresholdCellsOn(self) -> None: ... + def ThresholdValueOff(self) -> None: ... + def ThresholdValueOn(self) -> None: ... + +class vtkImageDataToUniformGrid(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + reverse:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReverse(self) -> int: ... + def GetReverseMaxValue(self) -> int: ... + def GetReverseMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageDataToUniformGrid': ... + def ReverseOff(self) -> None: ... + def ReverseOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageDataToUniformGrid': ... + def SetReverse(self, _arg:int) -> None: ... + +class vtkLinearToQuadraticCellsFilter(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + locator:'getset_descriptor' + m_time:'getset_descriptor' + output_points_precision:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLinearToQuadraticCellsFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLinearToQuadraticCellsFilter': ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + +class vtkMarkBoundaryFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + boundary_cells_name:'getset_descriptor' + boundary_faces_name:'getset_descriptor' + boundary_points_name:'getset_descriptor' + generate_boundary_faces:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateBoundaryFacesOff(self) -> None: ... + def GenerateBoundaryFacesOn(self) -> None: ... + def GetBoundaryCellsName(self) -> str: ... + def GetBoundaryFacesName(self) -> str: ... + def GetBoundaryPointsName(self) -> str: ... + def GetGenerateBoundaryFaces(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMarkBoundaryFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMarkBoundaryFilter': ... + def SetBoundaryCellsName(self, _arg:str) -> None: ... + def SetBoundaryFacesName(self, _arg:str) -> None: ... + def SetBoundaryPointsName(self, _arg:str) -> None: ... + def SetGenerateBoundaryFaces(self, _arg:bool) -> None: ... + +class vtkProjectSphereFilter(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + center:'getset_descriptor' + keep_pole_points:'getset_descriptor' + translate_z:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetKeepPolePoints(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTranslateZ(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def KeepPolePointsOff(self) -> None: ... + def KeepPolePointsOn(self) -> None: ... + def NewInstance(self) -> 'vtkProjectSphereFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProjectSphereFilter': ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetKeepPolePoints(self, _arg:bool) -> None: ... + def SetTranslateZ(self, _arg:bool) -> None: ... + def TranslateZOff(self) -> None: ... + def TranslateZOn(self) -> None: ... + +class vtkRecoverGeometryWireframe(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + cell_ids_attribute:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellIdsAttribute(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRecoverGeometryWireframe': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRecoverGeometryWireframe': ... + def SetCellIdsAttribute(self, _arg:str) -> None: ... + +class vtkRectilinearGridGeometryFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRectilinearGridGeometryFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRectilinearGridGeometryFilter': ... + @overload + def SetExtent(self, iMin:int, iMax:int, jMin:int, jMax:int, kMin:int, kMax:int) -> None: ... + @overload + def SetExtent(self, extent:MutableSequence[int]) -> None: ... + +class vtkRectilinearGridPartitioner(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + duplicate_nodes:'getset_descriptor' + number_of_ghost_layers:'getset_descriptor' + number_of_partitions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DuplicateNodesOff(self) -> None: ... + def DuplicateNodesOn(self) -> None: ... + def GetDuplicateNodes(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfGhostLayers(self) -> int: ... + def GetNumberOfPartitions(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRectilinearGridPartitioner': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRectilinearGridPartitioner': ... + def SetDuplicateNodes(self, _arg:int) -> None: ... + def SetNumberOfGhostLayers(self, _arg:int) -> None: ... + def SetNumberOfPartitions(self, _arg:int) -> None: ... + +class vtkStructuredAMRGridConnectivity(vtkAbstractGridConnectivity): + balanced_refinement:'getset_descriptor' + cell_centered:'getset_descriptor' + node_centered:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeNeighbors(self) -> None: ... + def CreateGhostLayers(self, N:int=1) -> None: ... + def GetBalancedRefinement(self) -> bool: ... + def GetCellCentered(self) -> bool: ... + def GetGhostedExtent(self, gridID:int, ext:MutableSequence[int]) -> None: ... + def GetNeighbor(self, gridID:int, nei:int) -> 'vtkStructuredAMRNeighbor': ... + def GetNodeCentered(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfNeighbors(self, gridID:int) -> int: ... + def Initialize(self, NumberOfLevels:int, N:int, RefinementRatio:int=-1) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStructuredAMRGridConnectivity': ... + @overload + def RegisterGrid(self, gridIdx:int, level:int, refinementRatio:int, extents:MutableSequence[int], nodesGhostArray:'vtkUnsignedCharArray', cellGhostArray:'vtkUnsignedCharArray', pointData:'vtkPointData', cellData:'vtkCellData', gridNodes:'vtkPoints') -> None: ... + @overload + def RegisterGrid(self, gridIdx:int, level:int, extents:MutableSequence[int], nodesGhostArray:'vtkUnsignedCharArray', cellGhostArray:'vtkUnsignedCharArray', pointData:'vtkPointData', cellData:'vtkCellData', gridNodes:'vtkPoints') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStructuredAMRGridConnectivity': ... + def SetBalancedRefinement(self, _arg:bool) -> None: ... + def SetCellCentered(self, _arg:bool) -> None: ... + def SetNodeCentered(self, _arg:bool) -> None: ... + +class vtkStructuredNeighbor(object): + class NeighborOrientation(int): ... + HI:'NeighborOrientation' + LO:'NeighborOrientation' + ONE_TO_ONE:'NeighborOrientation' + SUBSET_BOTH:'NeighborOrientation' + SUBSET_HI:'NeighborOrientation' + SUBSET_LO:'NeighborOrientation' + SUPERSET:'NeighborOrientation' + UNDEFINED:'NeighborOrientation' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, NeiID:int, overlap:MutableSequence[int]) -> None: ... + @overload + def __init__(self, NeiID:int, overlap:MutableSequence[int], orient:MutableSequence[int]) -> None: ... + @overload + def __init__(self, N:'vtkStructuredNeighbor') -> None: ... + def ComputeSendAndReceiveExtent(self, gridRealExtent:MutableSequence[int], gridGhostedExtent:MutableSequence[int], neiRealExtent:MutableSequence[int], WholeExtent:MutableSequence[int], N:int) -> None: ... + +class vtkStructuredAMRNeighbor(vtkStructuredNeighbor): + class NeighborRelationship(int): ... + CHILD:'NeighborRelationship' + COARSE_TO_FINE_SIBLING:'NeighborRelationship' + FINE_TO_COARSE_SIBLING:'NeighborRelationship' + PARENT:'NeighborRelationship' + PARTIALLY_OVERLAPPING_CHILD:'NeighborRelationship' + PARTIALLY_OVERLAPPING_PARENT:'NeighborRelationship' + SAME_LEVEL_SIBLING:'NeighborRelationship' + UNDEFINED:'NeighborRelationship' + relation_ship_string:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, gridLevel:int, neiID:int, neighborLevel:int, gridOverlap:MutableSequence[int], neiOverlap:MutableSequence[int], orient:MutableSequence[int], relationShip:int) -> None: ... + @overload + def __init__(self, N:'vtkStructuredAMRNeighbor') -> None: ... + def ComputeSendAndReceiveExtent(self, gridRealExtent:MutableSequence[int], gridGhostedExtent:MutableSequence[int], neiRealExtent:MutableSequence[int], WholeExtent:MutableSequence[int], N:int) -> None: ... + def GetReceiveExtentOnGrid(self, ng:int, gridExtent:MutableSequence[int], ext:MutableSequence[int]) -> None: ... + def GetRelationShipString(self) -> str: ... + +class vtkStructuredGridConnectivity(vtkAbstractGridConnectivity): + data_dimension:'getset_descriptor' + number_of_grids:'getset_descriptor' + whole_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeNeighbors(self) -> None: ... + def CreateGhostLayers(self, N:int=1) -> None: ... + def FillGhostArrays(self, gridID:int, nodesArray:'vtkUnsignedCharArray', cellsArray:'vtkUnsignedCharArray') -> None: ... + def GetDataDimension(self) -> int: ... + def GetGhostedGridExtent(self, gridID:int, ext:MutableSequence[int]) -> None: ... + def GetGridExtent(self, gridID:int, extent:MutableSequence[int]) -> None: ... + def GetGridNeighbor(self, gridID:int, nei:int) -> 'vtkStructuredNeighbor': ... + def GetNeighbors(self, gridID:int, extents:MutableSequence[int]) -> 'vtkIdList': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfNeighbors(self, gridID:int) -> int: ... + def GetWholeExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStructuredGridConnectivity': ... + def RegisterGrid(self, gridID:int, extents:MutableSequence[int], nodesGhostArray:'vtkUnsignedCharArray', cellGhostArray:'vtkUnsignedCharArray', pointData:'vtkPointData', cellData:'vtkCellData', gridNodes:'vtkPoints') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStructuredGridConnectivity': ... + def SetGhostedGridExtent(self, gridID:int, ext:MutableSequence[int]) -> None: ... + def SetNumberOfGrids(self, N:int) -> None: ... + @overload + def SetWholeExtent(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetWholeExtent(self, _arg:Sequence[int]) -> None: ... + +class vtkStructuredGridGeometryFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStructuredGridGeometryFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStructuredGridGeometryFilter': ... + @overload + def SetExtent(self, iMin:int, iMax:int, jMin:int, jMax:int, kMin:int, kMax:int) -> None: ... + @overload + def SetExtent(self, extent:MutableSequence[int]) -> None: ... + +class vtkStructuredGridPartitioner(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + duplicate_nodes:'getset_descriptor' + number_of_ghost_layers:'getset_descriptor' + number_of_partitions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DuplicateNodesOff(self) -> None: ... + def DuplicateNodesOn(self) -> None: ... + def GetDuplicateNodes(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfGhostLayers(self) -> int: ... + def GetNumberOfPartitions(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStructuredGridPartitioner': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStructuredGridPartitioner': ... + def SetDuplicateNodes(self, _arg:int) -> None: ... + def SetNumberOfGhostLayers(self, _arg:int) -> None: ... + def SetNumberOfPartitions(self, _arg:int) -> None: ... + +class vtkStructuredPointsGeometryFilter(vtkImageDataGeometryFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStructuredPointsGeometryFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStructuredPointsGeometryFilter': ... + +class vtkUnstructuredGridGeometryFilter(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridBaseAlgorithm): + cell_clipping:'getset_descriptor' + cell_maximum:'getset_descriptor' + cell_minimum:'getset_descriptor' + duplicate_ghost_cell_clipping:'getset_descriptor' + extent:'getset_descriptor' + extent_clipping:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + match_boundaries_ignoring_cell_order:'getset_descriptor' + merging:'getset_descriptor' + original_cell_ids_name:'getset_descriptor' + original_point_ids_name:'getset_descriptor' + pass_through_cell_ids:'getset_descriptor' + pass_through_point_ids:'getset_descriptor' + point_clipping:'getset_descriptor' + point_maximum:'getset_descriptor' + point_minimum:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CellClippingOff(self) -> None: ... + def CellClippingOn(self) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def DuplicateGhostCellClippingOff(self) -> None: ... + def DuplicateGhostCellClippingOn(self) -> None: ... + def ExtentClippingOff(self) -> None: ... + def ExtentClippingOn(self) -> None: ... + def GetCellClipping(self) -> int: ... + def GetCellMaximum(self) -> int: ... + def GetCellMaximumMaxValue(self) -> int: ... + def GetCellMaximumMinValue(self) -> int: ... + def GetCellMinimum(self) -> int: ... + def GetCellMinimumMaxValue(self) -> int: ... + def GetCellMinimumMinValue(self) -> int: ... + def GetDuplicateGhostCellClipping(self) -> int: ... + def GetExtent(self) -> Pointer: ... + def GetExtentClipping(self) -> int: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetMatchBoundariesIgnoringCellOrder(self) -> int: ... + def GetMerging(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOriginalCellIdsName(self) -> str: ... + def GetOriginalPointIdsName(self) -> str: ... + def GetPassThroughCellIds(self) -> int: ... + def GetPassThroughPointIds(self) -> int: ... + def GetPointClipping(self) -> int: ... + def GetPointMaximum(self) -> int: ... + def GetPointMaximumMaxValue(self) -> int: ... + def GetPointMaximumMinValue(self) -> int: ... + def GetPointMinimum(self) -> int: ... + def GetPointMinimumMaxValue(self) -> int: ... + def GetPointMinimumMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergingOff(self) -> None: ... + def MergingOn(self) -> None: ... + def NewInstance(self) -> 'vtkUnstructuredGridGeometryFilter': ... + def PassThroughCellIdsOff(self) -> None: ... + def PassThroughCellIdsOn(self) -> None: ... + def PassThroughPointIdsOff(self) -> None: ... + def PassThroughPointIdsOn(self) -> None: ... + def PointClippingOff(self) -> None: ... + def PointClippingOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridGeometryFilter': ... + def SetCellClipping(self, _arg:int) -> None: ... + def SetCellMaximum(self, _arg:int) -> None: ... + def SetCellMinimum(self, _arg:int) -> None: ... + def SetDuplicateGhostCellClipping(self, _arg:int) -> None: ... + @overload + def SetExtent(self, xMin:float, xMax:float, yMin:float, yMax:float, zMin:float, zMax:float) -> None: ... + @overload + def SetExtent(self, extent:MutableSequence[float]) -> None: ... + def SetExtentClipping(self, _arg:int) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetMatchBoundariesIgnoringCellOrder(self, _arg:int) -> None: ... + def SetMerging(self, _arg:int) -> None: ... + def SetOriginalCellIdsName(self, _arg:str) -> None: ... + def SetOriginalPointIdsName(self, _arg:str) -> None: ... + def SetPassThroughCellIds(self, _arg:int) -> None: ... + def SetPassThroughPointIds(self, _arg:int) -> None: ... + def SetPointClipping(self, _arg:int) -> None: ... + def SetPointMaximum(self, _arg:int) -> None: ... + def SetPointMinimum(self, _arg:int) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeometryPreview.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeometryPreview.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..fb3c4e4 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeometryPreview.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeometryPreview.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeometryPreview.pyi new file mode 100644 index 0000000..13fc561 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersGeometryPreview.pyi @@ -0,0 +1,119 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkOctreeImageToPointSetFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + cell_array_component:'getset_descriptor' + create_vertices_cell_array:'getset_descriptor' + process_input_cell_array:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateVerticesCellArrayOff(self) -> None: ... + def CreateVerticesCellArrayOn(self) -> None: ... + def GetCellArrayComponent(self) -> int: ... + def GetCellArrayComponentMaxValue(self) -> int: ... + def GetCellArrayComponentMinValue(self) -> int: ... + def GetCreateVerticesCellArray(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProcessInputCellArray(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOctreeImageToPointSetFilter': ... + def ProcessInputCellArrayOff(self) -> None: ... + def ProcessInputCellArrayOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOctreeImageToPointSetFilter': ... + def SetCellArrayComponent(self, _arg:int) -> None: ... + def SetCreateVerticesCellArray(self, _arg:bool) -> None: ... + def SetProcessInputCellArray(self, _arg:bool) -> None: ... + +class vtkPointSetStreamer(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + bucket_id:'getset_descriptor' + create_vertices_cell_array:'getset_descriptor' + number_of_buckets:'getset_descriptor' + number_of_points_per_bucket:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateVerticesCellArrayOff(self) -> None: ... + def CreateVerticesCellArrayOn(self) -> None: ... + def GetBucketId(self) -> int: ... + def GetBucketIdMaxValue(self) -> int: ... + def GetBucketIdMinValue(self) -> int: ... + def GetCreateVerticesCellArray(self) -> bool: ... + def GetNumberOfBuckets(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPointsPerBucket(self) -> int: ... + def GetNumberOfPointsPerBucketMaxValue(self) -> int: ... + def GetNumberOfPointsPerBucketMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointSetStreamer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointSetStreamer': ... + def SetBucketId(self, _arg:int) -> None: ... + def SetCreateVerticesCellArray(self, _arg:bool) -> None: ... + def SetNumberOfPointsPerBucket(self, _arg:int) -> None: ... + +class vtkPointSetToOctreeImageFilter(vtkmodules.vtkCommonExecutionModel.vtkPartitionedDataSetAlgorithm): + compute_count:'getset_descriptor' + compute_last_value:'getset_descriptor' + compute_max:'getset_descriptor' + compute_mean:'getset_descriptor' + compute_min:'getset_descriptor' + compute_sum:'getset_descriptor' + number_of_points_per_cell:'getset_descriptor' + process_input_point_array:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeCountOff(self) -> None: ... + def ComputeCountOn(self) -> None: ... + def ComputeLastValueOff(self) -> None: ... + def ComputeLastValueOn(self) -> None: ... + def ComputeMaxOff(self) -> None: ... + def ComputeMaxOn(self) -> None: ... + def ComputeMeanOff(self) -> None: ... + def ComputeMeanOn(self) -> None: ... + def ComputeMinOff(self) -> None: ... + def ComputeMinOn(self) -> None: ... + def ComputeSumOff(self) -> None: ... + def ComputeSumOn(self) -> None: ... + def GetComputeCount(self) -> bool: ... + def GetComputeLastValue(self) -> bool: ... + def GetComputeMax(self) -> bool: ... + def GetComputeMean(self) -> bool: ... + def GetComputeMin(self) -> bool: ... + def GetComputeSum(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPointsPerCell(self) -> int: ... + def GetNumberOfPointsPerCellMaxValue(self) -> int: ... + def GetNumberOfPointsPerCellMinValue(self) -> int: ... + def GetProcessInputPointArray(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointSetToOctreeImageFilter': ... + def ProcessInputPointArrayOff(self) -> None: ... + def ProcessInputPointArrayOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointSetToOctreeImageFilter': ... + def SetComputeCount(self, _arg:bool) -> None: ... + def SetComputeLastValue(self, _arg:bool) -> None: ... + def SetComputeMax(self, _arg:bool) -> None: ... + def SetComputeMean(self, _arg:bool) -> None: ... + def SetComputeMin(self, _arg:bool) -> None: ... + def SetComputeSum(self, _arg:bool) -> None: ... + def SetNumberOfPointsPerCell(self, _arg:int) -> None: ... + def SetProcessInputPointArray(self, _arg:bool) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersHybrid.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersHybrid.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..7162d72 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersHybrid.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersHybrid.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersHybrid.pyi new file mode 100644 index 0000000..97026a2 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersHybrid.pyi @@ -0,0 +1,966 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkCommonTransforms +import vtkmodules.vtkFiltersGeometry + +VTK_BSPLINE_EDGE:int +VTK_BSPLINE_ZERO:int +VTK_BSPLINE_ZERO_AT_BORDER:int +VTK_CELL_MODE:int +VTK_COLOR_MODE_LINEAR_256:int +VTK_COLOR_MODE_LUT:int +VTK_ERROR_ABSOLUTE:int +VTK_ERROR_NUMBER_OF_TRIANGLES:int +VTK_ERROR_RELATIVE:int +VTK_ERROR_SPECIFIED_REDUCTION:int +VTK_GRID_CUBIC:int +VTK_GRID_LINEAR:int +VTK_GRID_NEAREST:int +VTK_STYLE_PIXELIZE:int +VTK_STYLE_POLYGONALIZE:int +VTK_STYLE_RUN_LENGTH:int +VTK_VOXEL_MODE:int + +class vtkAdaptiveDataSetSurfaceFilter(vtkmodules.vtkFiltersGeometry.vtkGeometryFilter): + bb_selection:'getset_descriptor' + circle_selection:'getset_descriptor' + dynamic_decimate_level_max:'getset_descriptor' + fixed_level_max:'getset_descriptor' + m_time:'getset_descriptor' + renderer:'getset_descriptor' + scale:'getset_descriptor' + view_point_depend:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBBSelection(self) -> bool: ... + def GetCircleSelection(self) -> bool: ... + def GetDynamicDecimateLevelMax(self) -> int: ... + def GetFixedLevelMax(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderer(self) -> 'vtkRenderer': ... + def GetScale(self) -> int: ... + def GetViewPointDepend(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAdaptiveDataSetSurfaceFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAdaptiveDataSetSurfaceFilter': ... + def SetBBSelection(self, _arg:bool) -> None: ... + def SetCircleSelection(self, _arg:bool) -> None: ... + def SetDynamicDecimateLevelMax(self, _arg:int) -> None: ... + def SetFixedLevelMax(self, _arg:int) -> None: ... + def SetRenderer(self, ren:'vtkRenderer') -> None: ... + def SetScale(self, _arg:float) -> None: ... + def SetViewPointDepend(self, _arg:bool) -> None: ... + +class vtkBSplineTransform(vtkmodules.vtkCommonTransforms.vtkWarpTransform): + border_mode:'getset_descriptor' + coefficient_connection:'getset_descriptor' + coefficient_data:'getset_descriptor' + displacement_scale:'getset_descriptor' + m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBorderMode(self) -> int: ... + def GetBorderModeAsString(self) -> str: ... + def GetBorderModeMaxValue(self) -> int: ... + def GetBorderModeMinValue(self) -> int: ... + def GetCoefficientData(self) -> 'vtkImageData': ... + def GetDisplacementScale(self) -> float: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeTransform(self) -> 'vtkAbstractTransform': ... + def NewInstance(self) -> 'vtkBSplineTransform': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBSplineTransform': ... + def SetBorderMode(self, _arg:int) -> None: ... + def SetBorderModeToEdge(self) -> None: ... + def SetBorderModeToZero(self) -> None: ... + def SetBorderModeToZeroAtBorder(self) -> None: ... + def SetCoefficientConnection(self, __a:'vtkAlgorithmOutput') -> None: ... + def SetCoefficientData(self, __a:'vtkImageData') -> None: ... + def SetDisplacementScale(self, _arg:float) -> None: ... + +class vtkDSPFilterDefinition(vtkmodules.vtkCommonCore.vtkObject): + input_variable_name:'getset_descriptor' + num_denominator_weights:'getset_descriptor' + num_forward_numerator_weights:'getset_descriptor' + num_numerator_weights:'getset_descriptor' + output_variable_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Clear(self) -> None: ... + def Copy(self, other:'vtkDSPFilterDefinition') -> None: ... + def GetDenominatorWeight(self, a_which:int) -> float: ... + def GetForwardNumeratorWeight(self, a_which:int) -> float: ... + def GetInputVariableName(self) -> str: ... + def GetNumDenominatorWeights(self) -> int: ... + def GetNumForwardNumeratorWeights(self) -> int: ... + def GetNumNumeratorWeights(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumeratorWeight(self, a_which:int) -> float: ... + def GetOutputVariableName(self) -> str: ... + def IsA(self, type:str) -> int: ... + def IsThisInputVariableInstanceNeeded(self, a_timestep:int, a_outputTimestep:int) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDSPFilterDefinition': ... + def PushBackDenominatorWeight(self, a_value:float) -> None: ... + def PushBackForwardNumeratorWeight(self, a_value:float) -> None: ... + def PushBackNumeratorWeight(self, a_value:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDSPFilterDefinition': ... + def SetInputVariableName(self, a_value:str) -> None: ... + def SetOutputVariableName(self, a_value:str) -> None: ... + +class vtkDSPFilterGroup(vtkmodules.vtkCommonCore.vtkObject): + num_filters:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddFilter(self, filter:'vtkDSPFilterDefinition') -> None: ... + def AddInputVariableInstance(self, a_name:str, a_timestep:int, a_data:'vtkFloatArray') -> None: ... + def Copy(self, other:'vtkDSPFilterGroup') -> None: ... + def GetCachedInput(self, a_whichFilter:int, a_whichTimestep:int) -> 'vtkFloatArray': ... + def GetCachedOutput(self, a_whichFilter:int, a_whichTimestep:int) -> 'vtkFloatArray': ... + def GetFilter(self, a_whichFilter:int) -> 'vtkDSPFilterDefinition': ... + def GetInputVariableName(self, a_whichFilter:int) -> str: ... + def GetNumFilters(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutput(self, a_whichFilter:int, a_whichTimestep:int, a_instancesCalculated:int) -> 'vtkFloatArray': ... + def IsA(self, type:str) -> int: ... + def IsThisInputVariableInstanceCached(self, a_name:str, a_timestep:int) -> bool: ... + def IsThisInputVariableInstanceNeeded(self, a_name:str, a_timestep:int, a_outputTimestep:int) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDSPFilterGroup': ... + def RemoveFilter(self, a_outputVariableName:str) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDSPFilterGroup': ... + +class vtkDepthSortPolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class Directions(int): ... + class SortMode(int): ... + VTK_DIRECTION_BACK_TO_FRONT:'Directions' + VTK_DIRECTION_FRONT_TO_BACK:'Directions' + VTK_DIRECTION_SPECIFIED_VECTOR:'Directions' + VTK_SORT_BOUNDS_CENTER:'SortMode' + VTK_SORT_FIRST_POINT:'SortMode' + VTK_SORT_PARAMETRIC_CENTER:'SortMode' + camera:'getset_descriptor' + depth_sort_mode:'getset_descriptor' + direction:'getset_descriptor' + m_time:'getset_descriptor' + origin:'getset_descriptor' + prop3d:'getset_descriptor' + sort_scalars:'getset_descriptor' + vector:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCamera(self) -> 'vtkCamera': ... + def GetDepthSortMode(self) -> int: ... + def GetDirection(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetProp3D(self) -> 'vtkProp3D': ... + def GetSortScalars(self) -> int: ... + def GetVector(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDepthSortPolyData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDepthSortPolyData': ... + def SetCamera(self, __a:'vtkCamera') -> None: ... + def SetDepthSortMode(self, _arg:int) -> None: ... + def SetDepthSortModeToBoundsCenter(self) -> None: ... + def SetDepthSortModeToFirstPoint(self) -> None: ... + def SetDepthSortModeToParametricCenter(self) -> None: ... + def SetDirection(self, _arg:int) -> None: ... + def SetDirectionToBackToFront(self) -> None: ... + def SetDirectionToFrontToBack(self) -> None: ... + def SetDirectionToSpecifiedVector(self) -> None: ... + @overload + def SetOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOrigin(self, _arg:Sequence[float]) -> None: ... + def SetProp3D(self, __a:'vtkProp3D') -> None: ... + def SetSortScalars(self, _arg:int) -> None: ... + @overload + def SetVector(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetVector(self, _arg:Sequence[float]) -> None: ... + def SortScalarsOff(self) -> None: ... + def SortScalarsOn(self) -> None: ... + +class vtkEarthSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + on_ratio:'getset_descriptor' + outline:'getset_descriptor' + radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOnRatio(self) -> int: ... + def GetOnRatioMaxValue(self) -> int: ... + def GetOnRatioMinValue(self) -> int: ... + def GetOutline(self) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEarthSource': ... + def OutlineOff(self) -> None: ... + def OutlineOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEarthSource': ... + def SetOnRatio(self, _arg:int) -> None: ... + def SetOutline(self, _arg:int) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + +class vtkFacetReader(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def CanReadFile(filename:str) -> int: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFacetReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFacetReader': ... + def SetFileName(self, _arg:str) -> None: ... + +class vtkForceTime(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + forced_time:'getset_descriptor' + ignore_pipeline_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetForcedTime(self) -> float: ... + def GetIgnorePipelineTime(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IgnorePipelineTimeOff(self) -> None: ... + def IgnorePipelineTimeOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkForceTime': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkForceTime': ... + def SetForcedTime(self, _arg:float) -> None: ... + def SetIgnorePipelineTime(self, _arg:bool) -> None: ... + +class vtkGenerateTimeSteps(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + number_of_time_steps:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddTimeStepValue(self, timeStepValue:float) -> None: ... + def ClearTimeStepValues(self) -> None: ... + def GenerateTimeStepValues(self, begin:float, end:float, step:float) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTimeSteps(self) -> int: ... + def GetTimeStepValues(self, timeStepValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenerateTimeSteps': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenerateTimeSteps': ... + def SetTimeStepValues(self, count:int, timeStepValues:Sequence[float]) -> None: ... + +class vtkGreedyTerrainDecimation(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + absolute_error:'getset_descriptor' + boundary_vertex_deletion:'getset_descriptor' + compute_normals:'getset_descriptor' + error_measure:'getset_descriptor' + number_of_triangles:'getset_descriptor' + number_of_triangles_max_value:'getset_descriptor' + number_of_triangles_min_value:'getset_descriptor' + reduction:'getset_descriptor' + relative_error:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BoundaryVertexDeletionOff(self) -> None: ... + def BoundaryVertexDeletionOn(self) -> None: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def GetAbsoluteError(self) -> float: ... + def GetAbsoluteErrorMaxValue(self) -> float: ... + def GetAbsoluteErrorMinValue(self) -> float: ... + def GetBoundaryVertexDeletion(self) -> int: ... + def GetComputeNormals(self) -> int: ... + def GetErrorMeasure(self) -> int: ... + def GetErrorMeasureMaxValue(self) -> int: ... + def GetErrorMeasureMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTriangles(self) -> int: ... + def GetNumberOfTrianglesMaxValue(self) -> int: ... + def GetNumberOfTrianglesMinValue(self) -> int: ... + def GetReduction(self) -> float: ... + def GetReductionMaxValue(self) -> float: ... + def GetReductionMinValue(self) -> float: ... + def GetRelativeError(self) -> float: ... + def GetRelativeErrorMaxValue(self) -> float: ... + def GetRelativeErrorMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGreedyTerrainDecimation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGreedyTerrainDecimation': ... + def SetAbsoluteError(self, _arg:float) -> None: ... + def SetBoundaryVertexDeletion(self, _arg:int) -> None: ... + def SetComputeNormals(self, _arg:int) -> None: ... + def SetErrorMeasure(self, _arg:int) -> None: ... + def SetErrorMeasureToAbsoluteError(self) -> None: ... + def SetErrorMeasureToNumberOfTriangles(self) -> None: ... + def SetErrorMeasureToRelativeError(self) -> None: ... + def SetErrorMeasureToSpecifiedReduction(self) -> None: ... + def SetNumberOfTriangles(self, _arg:int) -> None: ... + def SetReduction(self, _arg:float) -> None: ... + def SetRelativeError(self, _arg:float) -> None: ... + +class vtkGridTransform(vtkmodules.vtkCommonTransforms.vtkWarpTransform): + displacement_grid:'getset_descriptor' + displacement_grid_connection:'getset_descriptor' + displacement_grid_data:'getset_descriptor' + displacement_scale:'getset_descriptor' + displacement_shift:'getset_descriptor' + interpolation_mode:'getset_descriptor' + m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDisplacementGrid(self) -> 'vtkImageData': ... + def GetDisplacementScale(self) -> float: ... + def GetDisplacementShift(self) -> float: ... + def GetInterpolationMode(self) -> int: ... + def GetInterpolationModeAsString(self) -> str: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeTransform(self) -> 'vtkAbstractTransform': ... + def NewInstance(self) -> 'vtkGridTransform': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGridTransform': ... + def SetDisplacementGridConnection(self, __a:'vtkAlgorithmOutput') -> None: ... + def SetDisplacementGridData(self, __a:'vtkImageData') -> None: ... + def SetDisplacementScale(self, _arg:float) -> None: ... + def SetDisplacementShift(self, _arg:float) -> None: ... + def SetInterpolationMode(self, mode:int) -> None: ... + def SetInterpolationModeToCubic(self) -> None: ... + def SetInterpolationModeToLinear(self) -> None: ... + def SetInterpolationModeToNearestNeighbor(self) -> None: ... + +class vtkImageToPolyDataFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + color_mode:'getset_descriptor' + decimation:'getset_descriptor' + decimation_error:'getset_descriptor' + error:'getset_descriptor' + lookup_table:'getset_descriptor' + number_of_smoothing_iterations:'getset_descriptor' + number_of_smoothing_iterations_max_value:'getset_descriptor' + number_of_smoothing_iterations_min_value:'getset_descriptor' + output_style:'getset_descriptor' + smoothing:'getset_descriptor' + sub_image_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DecimationOff(self) -> None: ... + def DecimationOn(self) -> None: ... + def GetColorMode(self) -> int: ... + def GetColorModeMaxValue(self) -> int: ... + def GetColorModeMinValue(self) -> int: ... + def GetDecimation(self) -> int: ... + def GetDecimationError(self) -> float: ... + def GetDecimationErrorMaxValue(self) -> float: ... + def GetDecimationErrorMinValue(self) -> float: ... + def GetError(self) -> int: ... + def GetErrorMaxValue(self) -> int: ... + def GetErrorMinValue(self) -> int: ... + def GetLookupTable(self) -> 'vtkScalarsToColors': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSmoothingIterations(self) -> int: ... + def GetNumberOfSmoothingIterationsMaxValue(self) -> int: ... + def GetNumberOfSmoothingIterationsMinValue(self) -> int: ... + def GetOutputStyle(self) -> int: ... + def GetOutputStyleMaxValue(self) -> int: ... + def GetOutputStyleMinValue(self) -> int: ... + def GetSmoothing(self) -> int: ... + def GetSubImageSize(self) -> int: ... + def GetSubImageSizeMaxValue(self) -> int: ... + def GetSubImageSizeMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageToPolyDataFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageToPolyDataFilter': ... + def SetColorMode(self, _arg:int) -> None: ... + def SetColorModeToLUT(self) -> None: ... + def SetColorModeToLinear256(self) -> None: ... + def SetDecimation(self, _arg:int) -> None: ... + def SetDecimationError(self, _arg:float) -> None: ... + def SetError(self, _arg:int) -> None: ... + def SetLookupTable(self, __a:'vtkScalarsToColors') -> None: ... + def SetNumberOfSmoothingIterations(self, _arg:int) -> None: ... + def SetOutputStyle(self, _arg:int) -> None: ... + def SetOutputStyleToPixelize(self) -> None: ... + def SetOutputStyleToPolygonalize(self) -> None: ... + def SetOutputStyleToRunLength(self) -> None: ... + def SetSmoothing(self, _arg:int) -> None: ... + def SetSubImageSize(self, _arg:int) -> None: ... + def SmoothingOff(self) -> None: ... + def SmoothingOn(self) -> None: ... + +class vtkImplicitModeller(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + adjust_bounds:'getset_descriptor' + adjust_distance:'getset_descriptor' + cap_value:'getset_descriptor' + capping:'getset_descriptor' + locator_max_level:'getset_descriptor' + maximum_distance:'getset_descriptor' + model_bounds:'getset_descriptor' + number_of_threads:'getset_descriptor' + number_of_threads_max_value:'getset_descriptor' + number_of_threads_min_value:'getset_descriptor' + output_scalar_type:'getset_descriptor' + process_mode:'getset_descriptor' + sample_dimensions:'getset_descriptor' + scale_to_maximum_distance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AdjustBoundsOff(self) -> None: ... + def AdjustBoundsOn(self) -> None: ... + def Append(self, input:'vtkDataSet') -> None: ... + def CappingOff(self) -> None: ... + def CappingOn(self) -> None: ... + def ComputeModelBounds(self, input:'vtkDataSet'=...) -> float: ... + def EndAppend(self) -> None: ... + def GetAdjustBounds(self) -> int: ... + def GetAdjustDistance(self) -> float: ... + def GetAdjustDistanceMaxValue(self) -> float: ... + def GetAdjustDistanceMinValue(self) -> float: ... + def GetCapValue(self) -> float: ... + def GetCapping(self) -> int: ... + def GetLocatorMaxLevel(self) -> int: ... + def GetMaximumDistance(self) -> float: ... + def GetMaximumDistanceMaxValue(self) -> float: ... + def GetMaximumDistanceMinValue(self) -> float: ... + def GetModelBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfThreads(self) -> int: ... + def GetNumberOfThreadsMaxValue(self) -> int: ... + def GetNumberOfThreadsMinValue(self) -> int: ... + def GetOutputScalarType(self) -> int: ... + def GetProcessMode(self) -> int: ... + def GetProcessModeAsString(self) -> str: ... + def GetProcessModeMaxValue(self) -> int: ... + def GetProcessModeMinValue(self) -> int: ... + def GetSampleDimensions(self) -> Tuple[int, int, int]: ... + def GetScaleToMaximumDistance(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitModeller': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitModeller': ... + def ScaleToMaximumDistanceOff(self) -> None: ... + def ScaleToMaximumDistanceOn(self) -> None: ... + def SetAdjustBounds(self, _arg:int) -> None: ... + def SetAdjustDistance(self, _arg:float) -> None: ... + def SetCapValue(self, value:float) -> None: ... + def SetCapping(self, _arg:int) -> None: ... + def SetLocatorMaxLevel(self, _arg:int) -> None: ... + def SetMaximumDistance(self, _arg:float) -> None: ... + @overload + def SetModelBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetModelBounds(self, _arg:Sequence[float]) -> None: ... + def SetNumberOfThreads(self, _arg:int) -> None: ... + def SetOutputScalarType(self, type:int) -> None: ... + def SetOutputScalarTypeToChar(self) -> None: ... + def SetOutputScalarTypeToDouble(self) -> None: ... + def SetOutputScalarTypeToFloat(self) -> None: ... + def SetOutputScalarTypeToInt(self) -> None: ... + def SetOutputScalarTypeToLong(self) -> None: ... + def SetOutputScalarTypeToShort(self) -> None: ... + def SetOutputScalarTypeToUnsignedChar(self) -> None: ... + def SetOutputScalarTypeToUnsignedInt(self) -> None: ... + def SetOutputScalarTypeToUnsignedLong(self) -> None: ... + def SetOutputScalarTypeToUnsignedShort(self) -> None: ... + def SetProcessMode(self, _arg:int) -> None: ... + def SetProcessModeToPerCell(self) -> None: ... + def SetProcessModeToPerVoxel(self) -> None: ... + @overload + def SetSampleDimensions(self, i:int, j:int, k:int) -> None: ... + @overload + def SetSampleDimensions(self, dim:MutableSequence[int]) -> None: ... + def SetScaleToMaximumDistance(self, _arg:int) -> None: ... + def StartAppend(self) -> None: ... + +class vtkPCAAnalysisFilter(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + evals:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetEvals(self) -> 'vtkFloatArray': ... + def GetModesRequiredFor(self, proportion:float) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParameterisedShape(self, b:'vtkFloatArray', shape:'vtkPointSet') -> None: ... + def GetShapeParameters(self, shape:'vtkPointSet', b:'vtkFloatArray', bsize:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPCAAnalysisFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPCAAnalysisFilter': ... + +class vtkPolyDataSilhouette(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class Directions(int): ... + VTK_DIRECTION_CAMERA_ORIGIN:'Directions' + VTK_DIRECTION_CAMERA_VECTOR:'Directions' + VTK_DIRECTION_SPECIFIED_ORIGIN:'Directions' + VTK_DIRECTION_SPECIFIED_VECTOR:'Directions' + border_edges:'getset_descriptor' + camera:'getset_descriptor' + direction:'getset_descriptor' + enable_feature_angle:'getset_descriptor' + feature_angle:'getset_descriptor' + m_time:'getset_descriptor' + origin:'getset_descriptor' + piece_invariant:'getset_descriptor' + prop3d:'getset_descriptor' + vector:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BorderEdgesOff(self) -> None: ... + def BorderEdgesOn(self) -> None: ... + def GetBorderEdges(self) -> int: ... + def GetCamera(self) -> 'vtkCamera': ... + def GetDirection(self) -> int: ... + def GetEnableFeatureAngle(self) -> int: ... + def GetFeatureAngle(self) -> float: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetPieceInvariant(self) -> int: ... + def GetProp3D(self) -> 'vtkProp3D': ... + def GetVector(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyDataSilhouette': ... + def PieceInvariantOff(self) -> None: ... + def PieceInvariantOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataSilhouette': ... + def SetBorderEdges(self, _arg:int) -> None: ... + def SetCamera(self, __a:'vtkCamera') -> None: ... + def SetDirection(self, _arg:int) -> None: ... + def SetDirectionToCameraOrigin(self) -> None: ... + def SetDirectionToCameraVector(self) -> None: ... + def SetDirectionToSpecifiedOrigin(self) -> None: ... + def SetDirectionToSpecifiedVector(self) -> None: ... + def SetEnableFeatureAngle(self, _arg:int) -> None: ... + def SetFeatureAngle(self, _arg:float) -> None: ... + @overload + def SetOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOrigin(self, _arg:Sequence[float]) -> None: ... + def SetPieceInvariant(self, _arg:int) -> None: ... + def SetProp3D(self, __a:'vtkProp3D') -> None: ... + @overload + def SetVector(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetVector(self, _arg:Sequence[float]) -> None: ... + +class vtkProcrustesAlignmentFilter(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + landmark_transform:'getset_descriptor' + mean_points:'getset_descriptor' + output_points_precision:'getset_descriptor' + start_from_centroid:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLandmarkTransform(self) -> 'vtkLandmarkTransform': ... + def GetMeanPoints(self) -> 'vtkPoints': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetStartFromCentroid(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProcrustesAlignmentFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProcrustesAlignmentFilter': ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetStartFromCentroid(self, _arg:bool) -> None: ... + def StartFromCentroidOff(self) -> None: ... + def StartFromCentroidOn(self) -> None: ... + +class vtkProjectedTerrainPath(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + HUG_PROJECTION:int + NONOCCLUDED_PROJECTION:int + SIMPLE_PROJECTION:int + height_offset:'getset_descriptor' + height_tolerance:'getset_descriptor' + maximum_number_of_lines:'getset_descriptor' + projection_mode:'getset_descriptor' + source:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetHeightOffset(self) -> float: ... + def GetHeightTolerance(self) -> float: ... + def GetHeightToleranceMaxValue(self) -> float: ... + def GetHeightToleranceMinValue(self) -> float: ... + def GetMaximumNumberOfLines(self) -> int: ... + def GetMaximumNumberOfLinesMaxValue(self) -> int: ... + def GetMaximumNumberOfLinesMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProjectionMode(self) -> int: ... + def GetProjectionModeMaxValue(self) -> int: ... + def GetProjectionModeMinValue(self) -> int: ... + def GetSource(self) -> 'vtkImageData': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProjectedTerrainPath': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProjectedTerrainPath': ... + def SetHeightOffset(self, _arg:float) -> None: ... + def SetHeightTolerance(self, _arg:float) -> None: ... + def SetMaximumNumberOfLines(self, _arg:int) -> None: ... + def SetProjectionMode(self, _arg:int) -> None: ... + def SetProjectionModeToHug(self) -> None: ... + def SetProjectionModeToNonOccluded(self) -> None: ... + def SetProjectionModeToSimple(self) -> None: ... + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, source:'vtkImageData') -> None: ... + +class vtkRenderLargeImage(vtkmodules.vtkCommonExecutionModel.vtkAlgorithm): + input:'getset_descriptor' + magnification:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInput(self) -> 'vtkRenderer': ... + def GetMagnification(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutput(self) -> 'vtkImageData': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRenderLargeImage': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderLargeImage': ... + def SetInput(self, __a:'vtkRenderer') -> None: ... + def SetMagnification(self, _arg:int) -> None: ... + +class vtkTemporalArrayOperatorFilter(vtkmodules.vtkCommonExecutionModel.vtkMultiTimeStepAlgorithm): + class OperatorType(int): ... + ADD:'OperatorType' + DIV:'OperatorType' + MUL:'OperatorType' + SUB:'OperatorType' + first_time_step_index:'getset_descriptor' + operator:'getset_descriptor' + output_array_name_suffix:'getset_descriptor' + relative_mode:'getset_descriptor' + second_time_step_index:'getset_descriptor' + time_step_shift:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFirstTimeStepIndex(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOperator(self) -> int: ... + def GetOutputArrayNameSuffix(self) -> str: ... + def GetRelativeMode(self) -> bool: ... + def GetSecondTimeStepIndex(self) -> int: ... + def GetTimeStepShift(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTemporalArrayOperatorFilter': ... + def RelativeModeOff(self) -> None: ... + def RelativeModeOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTemporalArrayOperatorFilter': ... + def SetFirstTimeStepIndex(self, _arg:int) -> None: ... + def SetOperator(self, _arg:int) -> None: ... + def SetOutputArrayNameSuffix(self, _arg:str) -> None: ... + def SetRelativeMode(self, _arg:bool) -> None: ... + def SetSecondTimeStepIndex(self, _arg:int) -> None: ... + def SetTimeStepShift(self, _arg:int) -> None: ... + +class vtkTemporalDataSetCache(vtkmodules.vtkCommonExecutionModel.vtkAlgorithm): + cache_in_memkind:'getset_descriptor' + cache_size:'getset_descriptor' + is_a_source:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CacheInMemkindOff(self) -> None: ... + def CacheInMemkindOn(self) -> None: ... + def GetCacheInMemkind(self) -> bool: ... + def GetCacheSize(self) -> int: ... + def GetIsASource(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsASourceOff(self) -> None: ... + def IsASourceOn(self) -> None: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTemporalDataSetCache': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTemporalDataSetCache': ... + def SetCacheInMemkind(self, _arg:bool) -> None: ... + def SetCacheSize(self, size:int) -> None: ... + def SetIsASource(self, _arg:bool) -> None: ... + +class vtkTemporalFractal(vtkmodules.vtkCommonExecutionModel.vtkAlgorithm): + adaptive_subdivision:'getset_descriptor' + asymmetric:'getset_descriptor' + dimensions:'getset_descriptor' + discrete_time_steps:'getset_descriptor' + fractal_value:'getset_descriptor' + generate_rectilinear_grids:'getset_descriptor' + ghost_levels:'getset_descriptor' + maximum_level:'getset_descriptor' + two_dimensional:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AdaptiveSubdivisionOff(self) -> None: ... + def AdaptiveSubdivisionOn(self) -> None: ... + def DiscreteTimeStepsOff(self) -> None: ... + def DiscreteTimeStepsOn(self) -> None: ... + def GenerateRectilinearGridsOff(self) -> None: ... + def GenerateRectilinearGridsOn(self) -> None: ... + def GetAdaptiveSubdivision(self) -> int: ... + def GetAsymmetric(self) -> int: ... + def GetDimensions(self) -> int: ... + def GetDiscreteTimeSteps(self) -> int: ... + def GetFractalValue(self) -> float: ... + def GetGenerateRectilinearGrids(self) -> int: ... + def GetGhostLevels(self) -> int: ... + def GetMaximumLevel(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTwoDimensional(self) -> int: ... + def GhostLevelsOff(self) -> None: ... + def GhostLevelsOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTemporalFractal': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTemporalFractal': ... + def SetAdaptiveSubdivision(self, _arg:int) -> None: ... + def SetAsymmetric(self, _arg:int) -> None: ... + def SetDimensions(self, _arg:int) -> None: ... + def SetDiscreteTimeSteps(self, _arg:int) -> None: ... + def SetFractalValue(self, _arg:float) -> None: ... + def SetGenerateRectilinearGrids(self, _arg:int) -> None: ... + def SetGhostLevels(self, _arg:int) -> None: ... + def SetMaximumLevel(self, _arg:int) -> None: ... + def SetTwoDimensional(self, _arg:int) -> None: ... + def TwoDimensionalOff(self) -> None: ... + def TwoDimensionalOn(self) -> None: ... + +class vtkTemporalInterpolator(vtkmodules.vtkCommonExecutionModel.vtkMultiTimeStepAlgorithm): + cache_data:'getset_descriptor' + discrete_time_step_interval:'getset_descriptor' + resample_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCacheData(self) -> bool: ... + def GetDiscreteTimeStepInterval(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetResampleFactor(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTemporalInterpolator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTemporalInterpolator': ... + def SetCacheData(self, _arg:bool) -> None: ... + def SetDiscreteTimeStepInterval(self, _arg:float) -> None: ... + def SetResampleFactor(self, _arg:int) -> None: ... + +class vtkTemporalShiftScale(vtkmodules.vtkCommonExecutionModel.vtkAlgorithm): + maximum_number_of_periods:'getset_descriptor' + periodic:'getset_descriptor' + periodic_end_correction:'getset_descriptor' + post_shift:'getset_descriptor' + pre_shift:'getset_descriptor' + scale:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaximumNumberOfPeriods(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPeriodic(self) -> int: ... + def GetPeriodicEndCorrection(self) -> int: ... + def GetPostShift(self) -> float: ... + def GetPreShift(self) -> float: ... + def GetScale(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTemporalShiftScale': ... + def PeriodicEndCorrectionOff(self) -> None: ... + def PeriodicEndCorrectionOn(self) -> None: ... + def PeriodicOff(self) -> None: ... + def PeriodicOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTemporalShiftScale': ... + def SetMaximumNumberOfPeriods(self, _arg:float) -> None: ... + def SetPeriodic(self, _arg:int) -> None: ... + def SetPeriodicEndCorrection(self, _arg:int) -> None: ... + def SetPostShift(self, _arg:float) -> None: ... + def SetPreShift(self, _arg:float) -> None: ... + def SetScale(self, _arg:float) -> None: ... + +class vtkTemporalSnapToTimeStep(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + VTK_SNAP_NEAREST:int + VTK_SNAP_NEXTABOVE_OR_EQUAL:int + VTK_SNAP_NEXTBELOW_OR_EQUAL:int + snap_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSnapMode(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTemporalSnapToTimeStep': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTemporalSnapToTimeStep': ... + def SetSnapMode(self, _arg:int) -> None: ... + def SetSnapModeToNearest(self) -> None: ... + def SetSnapModeToNextAboveOrEqual(self) -> None: ... + def SetSnapModeToNextBelowOrEqual(self) -> None: ... + +class vtkTransformToGrid(vtkmodules.vtkCommonExecutionModel.vtkAlgorithm): + displacement_scale:'getset_descriptor' + displacement_shift:'getset_descriptor' + grid_extent:'getset_descriptor' + grid_origin:'getset_descriptor' + grid_scalar_type:'getset_descriptor' + grid_spacing:'getset_descriptor' + input:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDisplacementScale(self) -> float: ... + def GetDisplacementShift(self) -> float: ... + def GetGridExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetGridOrigin(self) -> Tuple[float, float, float]: ... + def GetGridScalarType(self) -> int: ... + def GetGridSpacing(self) -> Tuple[float, float, float]: ... + def GetInput(self) -> 'vtkAbstractTransform': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutput(self) -> 'vtkImageData': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTransformToGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransformToGrid': ... + @overload + def SetGridExtent(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetGridExtent(self, _arg:Sequence[int]) -> None: ... + @overload + def SetGridOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetGridOrigin(self, _arg:Sequence[float]) -> None: ... + def SetGridScalarType(self, _arg:int) -> None: ... + def SetGridScalarTypeToChar(self) -> None: ... + def SetGridScalarTypeToDouble(self) -> None: ... + def SetGridScalarTypeToFloat(self) -> None: ... + def SetGridScalarTypeToShort(self) -> None: ... + def SetGridScalarTypeToUnsignedChar(self) -> None: ... + def SetGridScalarTypeToUnsignedShort(self) -> None: ... + @overload + def SetGridSpacing(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetGridSpacing(self, _arg:Sequence[float]) -> None: ... + def SetInput(self, __a:'vtkAbstractTransform') -> None: ... + +class vtkWeightedTransformFilter(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + add_input_values:'getset_descriptor' + cell_data_transform_index_array:'getset_descriptor' + cell_data_weight_array:'getset_descriptor' + m_time:'getset_descriptor' + number_of_transforms:'getset_descriptor' + transform_index_array:'getset_descriptor' + weight_array:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddInputValuesOff(self) -> None: ... + def AddInputValuesOn(self) -> None: ... + def GetAddInputValues(self) -> int: ... + def GetCellDataTransformIndexArray(self) -> str: ... + def GetCellDataWeightArray(self) -> str: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTransforms(self) -> int: ... + def GetTransform(self, num:int) -> 'vtkAbstractTransform': ... + def GetTransformIndexArray(self) -> str: ... + def GetWeightArray(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWeightedTransformFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWeightedTransformFilter': ... + def SetAddInputValues(self, _arg:int) -> None: ... + def SetCellDataTransformIndexArray(self, _arg:str) -> None: ... + def SetCellDataWeightArray(self, _arg:str) -> None: ... + def SetNumberOfTransforms(self, num:int) -> None: ... + def SetTransform(self, transform:'vtkAbstractTransform', num:int) -> None: ... + def SetTransformIndexArray(self, _arg:str) -> None: ... + def SetWeightArray(self, _arg:str) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersHyperTree.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersHyperTree.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..f17d387 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersHyperTree.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersHyperTree.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersHyperTree.pyi new file mode 100644 index 0000000..f90b656 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersHyperTree.pyi @@ -0,0 +1,599 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkFiltersCore + +class vtkHyperTreeGridAxisClip(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + class ClipType(int): ... + BOX:'ClipType' + PLANE:'ClipType' + QUADRIC:'ClipType' + bounds:'getset_descriptor' + clip_type:'getset_descriptor' + inside_out:'getset_descriptor' + m_time:'getset_descriptor' + plane_normal_axis:'getset_descriptor' + plane_position:'getset_descriptor' + quadric:'getset_descriptor' + quadric_coefficients:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetClipType(self) -> int: ... + def GetClipTypeMaxValue(self) -> int: ... + def GetClipTypeMinValue(self) -> int: ... + def GetInsideOut(self) -> bool: ... + def GetMTime(self) -> int: ... + def GetMaximumBounds(self, __a:MutableSequence[float]) -> None: ... + def GetMinimumBounds(self, __a:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPlaneNormalAxis(self) -> int: ... + def GetPlaneNormalAxisMaxValue(self) -> int: ... + def GetPlaneNormalAxisMinValue(self) -> int: ... + def GetPlanePosition(self) -> float: ... + def GetQuadric(self) -> 'vtkQuadric': ... + @overload + def GetQuadricCoefficients(self, __a:MutableSequence[float]) -> None: ... + @overload + def GetQuadricCoefficients(self) -> Pointer: ... + def InsideOutOff(self) -> None: ... + def InsideOutOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridAxisClip': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridAxisClip': ... + @overload + def SetBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetBounds(self, _arg:Sequence[float]) -> None: ... + def SetClipType(self, _arg:int) -> None: ... + def SetClipTypeToBox(self) -> None: ... + def SetClipTypeToPlane(self) -> None: ... + def SetClipTypeToQuadric(self) -> None: ... + def SetInsideOut(self, _arg:bool) -> None: ... + def SetPlaneNormalAxis(self, _arg:int) -> None: ... + def SetPlanePosition(self, _arg:float) -> None: ... + def SetQuadric(self, __a:'vtkQuadric') -> None: ... + @overload + def SetQuadricCoefficients(self, a:float, b:float, c:float, d:float, e:float, f:float, g:float, h:float, i:float, j:float) -> None: ... + @overload + def SetQuadricCoefficients(self, __a:MutableSequence[float]) -> None: ... + +class vtkHyperTreeGridAxisCut(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + plane_normal_axis:'getset_descriptor' + plane_position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPlaneNormalAxis(self) -> int: ... + def GetPlaneNormalAxisMaxValue(self) -> int: ... + def GetPlaneNormalAxisMinValue(self) -> int: ... + def GetPlanePosition(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridAxisCut': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridAxisCut': ... + def SetPlaneNormalAxis(self, _arg:int) -> None: ... + def SetPlanePosition(self, _arg:float) -> None: ... + +class vtkHyperTreeGridAxisReflection(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + class AxisReflectionPlane(int): ... + USE_X:'AxisReflectionPlane' + USE_X_MAX:'AxisReflectionPlane' + USE_X_MIN:'AxisReflectionPlane' + USE_Y:'AxisReflectionPlane' + USE_Y_MAX:'AxisReflectionPlane' + USE_Y_MIN:'AxisReflectionPlane' + USE_Z:'AxisReflectionPlane' + USE_Z_MAX:'AxisReflectionPlane' + USE_Z_MIN:'AxisReflectionPlane' + center:'getset_descriptor' + plane:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCenter(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPlane(self) -> int: ... + def GetPlaneMaxValue(self) -> int: ... + def GetPlaneMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridAxisReflection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridAxisReflection': ... + def SetCenter(self, _arg:float) -> None: ... + def SetPlane(self, _arg:int) -> None: ... + def SetPlaneToX(self) -> None: ... + def SetPlaneToXMax(self) -> None: ... + def SetPlaneToXMin(self) -> None: ... + def SetPlaneToY(self) -> None: ... + def SetPlaneToYMax(self) -> None: ... + def SetPlaneToYMin(self) -> None: ... + def SetPlaneToZ(self) -> None: ... + def SetPlaneToZMax(self) -> None: ... + def SetPlaneToZMin(self) -> None: ... + +class vtkHyperTreeGridGenerateFieldStrategy(vtkmodules.vtkCommonCore.vtkObject): + and_finalize_array:'getset_descriptor' + array_name:'getset_descriptor' + array_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Compute(self, __a:'vtkHyperTreeGridNonOrientedGeometryCursor') -> None: ... + def GetAndFinalizeArray(self) -> 'vtkDataArray': ... + def GetArrayName(self) -> str: ... + def GetArrayType(self) -> vtkDataObject.AttributeTypes: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, __a:'vtkHyperTreeGrid') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridGenerateFieldStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridGenerateFieldStrategy': ... + def SetArrayName(self, arrayName:str) -> None: ... + def SetArrayType(self, arrayType:vtkDataObject.AttributeTypes) -> None: ... + +class vtkHyperTreeGridCellCenterStrategy(vtkHyperTreeGridGenerateFieldStrategy): + and_finalize_array:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Compute(self, cursor:'vtkHyperTreeGridNonOrientedGeometryCursor') -> None: ... + def GetAndFinalizeArray(self) -> 'vtkDataArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, inputHTG:'vtkHyperTreeGrid') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridCellCenterStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridCellCenterStrategy': ... + +class vtkHyperTreeGridCellCenters(vtkmodules.vtkFiltersCore.vtkCellCenters): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridCellCenters': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridCellCenters': ... + +class vtkHyperTreeGridCellSizeStrategy(vtkHyperTreeGridGenerateFieldStrategy): + and_finalize_array:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Compute(self, cursor:'vtkHyperTreeGridNonOrientedGeometryCursor') -> None: ... + def GetAndFinalizeArray(self) -> 'vtkDataArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, inputHTG:'vtkHyperTreeGrid') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridCellSizeStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridCellSizeStrategy': ... + +class vtkHyperTreeGridContour(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + class CellStrategy3D(int): ... + USE_DECOMPOSED_POLYHEDRA:'CellStrategy3D' + USE_VOXELS:'CellStrategy3D' + locator:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + strategy3d:'getset_descriptor' + use_implicit_arrays:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLocator(self) -> None: ... + @overload + def GenerateValues(self, __a:int, __b:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, __a:int, __b:float, __c:float) -> None: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStrategy3DMaxValue(self) -> int: ... + def GetStrategy3DMinValue(self) -> int: ... + def GetUseImplicitArrays(self) -> bool: ... + def GetValue(self, __a:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, __a:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridContour': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridContour': ... + def SetLocator(self, __a:'vtkIncrementalPointLocator') -> None: ... + def SetNumberOfContours(self, __a:int) -> None: ... + def SetStrategy3D(self, _arg:int) -> None: ... + def SetUseImplicitArrays(self, _arg:bool) -> None: ... + def SetValue(self, __a:int, __b:float) -> None: ... + def UseImplicitArraysOff(self) -> None: ... + def UseImplicitArraysOn(self) -> None: ... + +class vtkHyperTreeGridDepthLimiter(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + depth:'getset_descriptor' + just_create_new_mask:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDepth(self) -> int: ... + def GetJustCreateNewMask(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridDepthLimiter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridDepthLimiter': ... + def SetDepth(self, _arg:int) -> None: ... + def SetJustCreateNewMask(self, _arg:bool) -> None: ... + +class vtkHyperTreeGridEvaluateCoarse(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + OPERATOR_AVERAGE:int + OPERATOR_DON_T_CHANGE:int + OPERATOR_DON_T_CHANGE_FAST:int + OPERATOR_ELDER_CHILD:int + OPERATOR_MAX:int + OPERATOR_MIN:int + OPERATOR_SPLATTING_AVERAGE:int + OPERATOR_SUM:int + OPERATOR_UNMASKED_AVERAGE:int + default:'getset_descriptor' + operator:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOperator(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridEvaluateCoarse': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridEvaluateCoarse': ... + def SetDefault(self, _arg:float) -> None: ... + def SetOperator(self, _arg:int) -> None: ... + +class vtkHyperTreeGridExtractGhostCells(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + output_ghost_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputGhostArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridExtractGhostCells': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridExtractGhostCells': ... + def SetOutputGhostArrayName(self, _arg:str) -> None: ... + +class vtkHyperTreeGridFeatureEdges(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + merge_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMergePoints(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridFeatureEdges': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridFeatureEdges': ... + def SetMergePoints(self, _arg:bool) -> None: ... + +class vtkHyperTreeGridGenerateFields(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + cell_center_array_name:'getset_descriptor' + cell_size_array_name:'getset_descriptor' + compute_cell_center_array:'getset_descriptor' + compute_cell_size_array:'getset_descriptor' + compute_total_visible_volume_array:'getset_descriptor' + compute_valid_cell_array:'getset_descriptor' + total_visible_volume_array_name:'getset_descriptor' + valid_cell_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeCellCenterArrayOff(self) -> None: ... + def ComputeCellCenterArrayOn(self) -> None: ... + def ComputeCellSizeArrayOff(self) -> None: ... + def ComputeCellSizeArrayOn(self) -> None: ... + def ComputeTotalVisibleVolumeArrayOff(self) -> None: ... + def ComputeTotalVisibleVolumeArrayOn(self) -> None: ... + def ComputeValidCellArrayOff(self) -> None: ... + def ComputeValidCellArrayOn(self) -> None: ... + def GetCellCenterArrayName(self) -> str: ... + def GetCellSizeArrayName(self) -> str: ... + def GetComputeCellCenterArray(self) -> bool: ... + def GetComputeCellSizeArray(self) -> bool: ... + def GetComputeTotalVisibleVolumeArray(self) -> bool: ... + def GetComputeValidCellArray(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTotalVisibleVolumeArrayName(self) -> str: ... + def GetValidCellArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridGenerateFields': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridGenerateFields': ... + def SetCellCenterArrayName(self, name:str) -> None: ... + def SetCellSizeArrayName(self, name:str) -> None: ... + def SetComputeCellCenterArray(self, enable:bool) -> None: ... + def SetComputeCellSizeArray(self, enable:bool) -> None: ... + def SetComputeTotalVisibleVolumeArray(self, enable:bool) -> None: ... + def SetComputeValidCellArray(self, enable:bool) -> None: ... + def SetTotalVisibleVolumeArrayName(self, name:str) -> None: ... + def SetValidCellArrayName(self, name:str) -> None: ... + +class vtkHyperTreeGridGeometry(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + fill_material:'getset_descriptor' + merging:'getset_descriptor' + original_cell_id_array_name:'getset_descriptor' + pass_through_cell_ids:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillMaterialOff(self) -> None: ... + def FillMaterialOn(self) -> None: ... + def GetFillMaterial(self) -> bool: ... + def GetMerging(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOriginalCellIdArrayName(self) -> str: ... + def GetPassThroughCellIds(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridGeometry': ... + def PassThroughCellIdsOff(self) -> None: ... + def PassThroughCellIdsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridGeometry': ... + def SetFillMaterial(self, _arg:bool) -> None: ... + def SetMerging(self, _arg:bool) -> None: ... + def SetOriginalCellIdArrayName(self, _arg:str) -> None: ... + def SetPassThroughCellIds(self, _arg:bool) -> None: ... + +class vtkHyperTreeGridGradient(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + class ComputeMode(int): ... + UNLIMITED:'ComputeMode' + UNSTRUCTURED:'ComputeMode' + compute_divergence:'getset_descriptor' + compute_gradient:'getset_descriptor' + compute_q_criterion:'getset_descriptor' + compute_vorticity:'getset_descriptor' + divergence_array_name:'getset_descriptor' + extensive_computation:'getset_descriptor' + gradient_array_name:'getset_descriptor' + mode:'getset_descriptor' + q_criterion_array_name:'getset_descriptor' + vorticity_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeDivergenceOff(self) -> None: ... + def ComputeDivergenceOn(self) -> None: ... + def ComputeGradientOff(self) -> None: ... + def ComputeGradientOn(self) -> None: ... + def ComputeQCriterionOff(self) -> None: ... + def ComputeQCriterionOn(self) -> None: ... + def ComputeVorticityOff(self) -> None: ... + def ComputeVorticityOn(self) -> None: ... + def ExtensiveComputationOff(self) -> None: ... + def ExtensiveComputationOn(self) -> None: ... + def GetComputeDivergence(self) -> bool: ... + def GetComputeGradient(self) -> bool: ... + def GetComputeQCriterion(self) -> bool: ... + def GetComputeVorticity(self) -> bool: ... + def GetDivergenceArrayName(self) -> str: ... + def GetExtensiveComputation(self) -> bool: ... + def GetGradientArrayName(self) -> str: ... + def GetMode(self) -> int: ... + def GetModeMaxValue(self) -> int: ... + def GetModeMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetQCriterionArrayName(self) -> str: ... + def GetVorticityArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridGradient': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridGradient': ... + def SetComputeDivergence(self, _arg:bool) -> None: ... + def SetComputeGradient(self, _arg:bool) -> None: ... + def SetComputeQCriterion(self, _arg:bool) -> None: ... + def SetComputeVorticity(self, _arg:bool) -> None: ... + def SetDivergenceArrayName(self, _arg:str) -> None: ... + def SetExtensiveComputation(self, _arg:bool) -> None: ... + def SetGradientArrayName(self, _arg:str) -> None: ... + def SetMode(self, _arg:int) -> None: ... + def SetQCriterionArrayName(self, _arg:str) -> None: ... + def SetVorticityArrayName(self, _arg:str) -> None: ... + +class vtkHyperTreeGridPlaneCutter(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + axis_alignment:'getset_descriptor' + dual:'getset_descriptor' + plane:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DualOff(self) -> None: ... + def DualOn(self) -> None: ... + def GetAxisAlignment(self) -> int: ... + def GetDual(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPlane(self) -> Tuple[float, float, float, float]: ... + def IsA(self, type:str) -> int: ... + def IsPlaneOrthogonalToXAxis(self) -> bool: ... + def IsPlaneOrthogonalToYAxis(self) -> bool: ... + def IsPlaneOrthogonalToZAxis(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridPlaneCutter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridPlaneCutter': ... + def SetDual(self, _arg:int) -> None: ... + def SetPlane(self, a:float, b:float, c:float, d:float) -> None: ... + +class vtkHyperTreeGridRemoveGhostCells(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridRemoveGhostCells': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridRemoveGhostCells': ... + +class vtkHyperTreeGridThreshold(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + class MemoryStrategyChoice(int): ... + CopyStructureAndIndexArrays:'MemoryStrategyChoice' + DeepThreshold:'MemoryStrategyChoice' + MaskInput:'MemoryStrategyChoice' + lower_threshold:'getset_descriptor' + memory_strategy:'getset_descriptor' + upper_threshold:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLowerThreshold(self) -> float: ... + def GetMemoryStrategy(self) -> int: ... + def GetMemoryStrategyMaxValue(self) -> int: ... + def GetMemoryStrategyMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUpperThreshold(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridThreshold': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridThreshold': ... + def SetLowerThreshold(self, _arg:float) -> None: ... + def SetMemoryStrategy(self, _arg:int) -> None: ... + def SetUpperThreshold(self, _arg:float) -> None: ... + def ThresholdBetween(self, __a:float, __b:float) -> None: ... + +class vtkHyperTreeGridToDualGrid(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridToDualGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridToDualGrid': ... + +class vtkHyperTreeGridToUnstructuredGrid(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + add_original_ids:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddOriginalIdsOff(self) -> None: ... + def AddOriginalIdsOn(self) -> None: ... + def GetAddOriginalIds(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridToUnstructuredGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridToUnstructuredGrid': ... + def SetAddOriginalIds(self, _arg:bool) -> None: ... + +class vtkHyperTreeGridTotalVisibleVolumeStrategy(vtkHyperTreeGridGenerateFieldStrategy): + and_finalize_array:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Compute(self, __a:'vtkHyperTreeGridNonOrientedGeometryCursor') -> None: ... + def GetAndFinalizeArray(self) -> 'vtkDataArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, __a:'vtkHyperTreeGrid') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridTotalVisibleVolumeStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridTotalVisibleVolumeStrategy': ... + +class vtkHyperTreeGridValidCellStrategy(vtkHyperTreeGridGenerateFieldStrategy): + and_finalize_array:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Compute(self, cursor:'vtkHyperTreeGridNonOrientedGeometryCursor') -> None: ... + def GetAndFinalizeArray(self) -> 'vtkDataArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, inputHTG:'vtkHyperTreeGrid') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridValidCellStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridValidCellStrategy': ... + +class vtkHyperTreeGridVisibleLeavesSize(vtkHyperTreeGridGenerateFields): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridVisibleLeavesSize': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridVisibleLeavesSize': ... + +class vtkImageDataToHyperTreeGrid(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + depth_max:'getset_descriptor' + nb_colors:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDepthMax(self) -> int: ... + def GetNbColors(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageDataToHyperTreeGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageDataToHyperTreeGrid': ... + def SetDepthMax(self, _arg:int) -> None: ... + def SetNbColors(self, _arg:int) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersImaging.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersImaging.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..7e169b3 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersImaging.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersImaging.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersImaging.pyi new file mode 100644 index 0000000..6aa7542 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersImaging.pyi @@ -0,0 +1,157 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkFiltersStatistics + +class vtkComputeHistogram2DOutliers(vtkmodules.vtkCommonExecutionModel.vtkSelectionAlgorithm): + class InputPorts(int): ... + class OutputPorts(int): ... + INPUT_HISTOGRAMS_IMAGE_DATA:'InputPorts' + INPUT_HISTOGRAMS_MULTIBLOCK:'InputPorts' + INPUT_TABLE_DATA:'InputPorts' + OUTPUT_SELECTED_ROWS:'OutputPorts' + OUTPUT_SELECTED_TABLE_DATA:'OutputPorts' + input_histogram_image_data_connection:'getset_descriptor' + input_histogram_multi_block_connection:'getset_descriptor' + input_table_connection:'getset_descriptor' + output_table:'getset_descriptor' + preferred_number_of_outliers:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputTable(self) -> 'vtkTable': ... + def GetPreferredNumberOfOutliers(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkComputeHistogram2DOutliers': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkComputeHistogram2DOutliers': ... + def SetInputHistogramImageDataConnection(self, cxn:'vtkAlgorithmOutput') -> None: ... + def SetInputHistogramMultiBlockConnection(self, cxn:'vtkAlgorithmOutput') -> None: ... + def SetInputTableConnection(self, cxn:'vtkAlgorithmOutput') -> None: ... + def SetPreferredNumberOfOutliers(self, _arg:int) -> None: ... + +class vtkExtractHistogram2D(vtkmodules.vtkFiltersStatistics.vtkStatisticsAlgorithm): + class OutputIndices(int): ... + HISTOGRAM_IMAGE:'OutputIndices' + components_to_process:'getset_descriptor' + custom_histogram_extents:'getset_descriptor' + histogram_extents:'getset_descriptor' + maximum_bin_count:'getset_descriptor' + number_of_bins:'getset_descriptor' + output_histogram_image:'getset_descriptor' + row_mask:'getset_descriptor' + scalar_type:'getset_descriptor' + swap_columns:'getset_descriptor' + use_custom_histogram_extents:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Aggregate(self, __a:'vtkDataObjectCollection', __b:'vtkMultiBlockDataSet') -> None: ... + @overload + def GetBinRange(self, binX:int, binY:int, range:MutableSequence[float]) -> int: ... + @overload + def GetBinRange(self, bin:int, range:MutableSequence[float]) -> int: ... + def GetBinWidth(self, bw:MutableSequence[float]) -> None: ... + def GetComponentsToProcess(self) -> Tuple[int, int]: ... + def GetCustomHistogramExtents(self) -> Tuple[float, float, float, float]: ... + def GetHistogramExtents(self) -> Pointer: ... + def GetMaximumBinCount(self) -> float: ... + def GetNumberOfBins(self) -> Tuple[int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputHistogramImage(self) -> 'vtkImageData': ... + def GetRowMask(self) -> 'vtkDataArray': ... + def GetScalarType(self) -> int: ... + def GetSwapColumns(self) -> int: ... + def GetUseCustomHistogramExtents(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractHistogram2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractHistogram2D': ... + @overload + def SetComponentsToProcess(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetComponentsToProcess(self, _arg:Sequence[int]) -> None: ... + @overload + def SetCustomHistogramExtents(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetCustomHistogramExtents(self, _arg:Sequence[float]) -> None: ... + @overload + def SetNumberOfBins(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetNumberOfBins(self, _arg:Sequence[int]) -> None: ... + def SetRowMask(self, __a:'vtkDataArray') -> None: ... + def SetScalarType(self, _arg:int) -> None: ... + def SetScalarTypeToDouble(self) -> None: ... + def SetScalarTypeToFloat(self) -> None: ... + def SetScalarTypeToUnsignedChar(self) -> None: ... + def SetScalarTypeToUnsignedInt(self) -> None: ... + def SetScalarTypeToUnsignedLong(self) -> None: ... + def SetScalarTypeToUnsignedShort(self) -> None: ... + def SetSwapColumns(self, _arg:int) -> None: ... + def SetUseCustomHistogramExtents(self, _arg:int) -> None: ... + def SwapColumnsOff(self) -> None: ... + def SwapColumnsOn(self) -> None: ... + def UseCustomHistogramExtentsOff(self) -> None: ... + def UseCustomHistogramExtentsOn(self) -> None: ... + +class vtkPairwiseExtractHistogram2D(vtkmodules.vtkFiltersStatistics.vtkStatisticsAlgorithm): + class OutputIndices(int): ... + HISTOGRAM_IMAGE:'OutputIndices' + custom_column_range_by_index:'getset_descriptor' + custom_column_range_index:'getset_descriptor' + maximum_bin_count:'getset_descriptor' + number_of_bins:'getset_descriptor' + scalar_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Aggregate(self, __a:'vtkDataObjectCollection', __b:'vtkMultiBlockDataSet') -> None: ... + @overload + def GetBinRange(self, idx:int, binX:int, binY:int, range:MutableSequence[float]) -> int: ... + @overload + def GetBinRange(self, idx:int, bin:int, range:MutableSequence[float]) -> int: ... + def GetBinWidth(self, idx:int, bw:MutableSequence[float]) -> None: ... + def GetHistogramExtents(self, idx:int) -> Pointer: ... + def GetHistogramFilter(self, idx:int) -> 'vtkExtractHistogram2D': ... + @overload + def GetMaximumBinCount(self, idx:int) -> float: ... + @overload + def GetMaximumBinCount(self) -> float: ... + def GetNumberOfBins(self) -> Tuple[int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputHistogramImage(self, idx:int) -> 'vtkImageData': ... + def GetScalarType(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPairwiseExtractHistogram2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPairwiseExtractHistogram2D': ... + @overload + def SetCustomColumnRange(self, col:int, range:MutableSequence[float]) -> None: ... + @overload + def SetCustomColumnRange(self, col:int, rmin:float, rmax:float) -> None: ... + def SetCustomColumnRangeByIndex(self, __a:float, __b:float) -> None: ... + def SetCustomColumnRangeIndex(self, _arg:int) -> None: ... + @overload + def SetNumberOfBins(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetNumberOfBins(self, _arg:Sequence[int]) -> None: ... + def SetScalarType(self, _arg:int) -> None: ... + def SetScalarTypeToUnsignedChar(self) -> None: ... + def SetScalarTypeToUnsignedInt(self) -> None: ... + def SetScalarTypeToUnsignedLong(self) -> None: ... + def SetScalarTypeToUnsignedShort(self) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersModeling.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersModeling.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..d4efa24 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersModeling.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersModeling.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersModeling.pyi new file mode 100644 index 0000000..70cc75e --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersModeling.pyi @@ -0,0 +1,1380 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkFiltersGeneral + +VTK_DIJKSTRA_EDGE_SEARCH:int +VTK_GREEDY_EDGE_SEARCH:int +VTK_INSIDE_CLOSEST_POINT_REGION:int +VTK_INSIDE_LARGEST_REGION:int +VTK_INSIDE_SMALLEST_REGION:int +VTK_LOOP_CLOSURE_ALL:int +VTK_LOOP_CLOSURE_BOUNDARY:int +VTK_LOOP_CLOSURE_OFF:int +VTK_MAX_SPHERE_RESOLUTION:int +VTK_NORMAL_EXTRUSION:int +VTK_OUTPUT_BOTH:int +VTK_OUTPUT_POLYGONS:int +VTK_OUTPUT_POLYLINES:int +VTK_POINT_EXTRUSION:int +VTK_PROJECTED_TEXTURE_USE_PINHOLE:int +VTK_PROJECTED_TEXTURE_USE_TWO_MIRRORS:int +VTK_RULED_MODE_POINT_WALK:int +VTK_RULED_MODE_RESAMPLE:int +VTK_SCALAR_MODE_INDEX:int +VTK_SCALAR_MODE_VALUE:int +VTK_TCOORDS_FROM_LENGTH:int +VTK_TCOORDS_FROM_NORMALIZED_LENGTH:int +VTK_TCOORDS_FROM_SCALARS:int +VTK_TCOORDS_OFF:int +VTK_VECTOR_EXTRUSION:int + +class vtkAdaptiveSubdivisionFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + locator:'getset_descriptor' + m_time:'getset_descriptor' + maximum_edge_length:'getset_descriptor' + maximum_number_of_passes:'getset_descriptor' + maximum_number_of_triangles:'getset_descriptor' + maximum_triangle_area:'getset_descriptor' + output_points_precision:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetMaximumEdgeLength(self) -> float: ... + def GetMaximumEdgeLengthMaxValue(self) -> float: ... + def GetMaximumEdgeLengthMinValue(self) -> float: ... + def GetMaximumNumberOfPasses(self) -> int: ... + def GetMaximumNumberOfPassesMaxValue(self) -> int: ... + def GetMaximumNumberOfPassesMinValue(self) -> int: ... + def GetMaximumNumberOfTriangles(self) -> int: ... + def GetMaximumNumberOfTrianglesMaxValue(self) -> int: ... + def GetMaximumNumberOfTrianglesMinValue(self) -> int: ... + def GetMaximumTriangleArea(self) -> float: ... + def GetMaximumTriangleAreaMaxValue(self) -> float: ... + def GetMaximumTriangleAreaMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAdaptiveSubdivisionFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAdaptiveSubdivisionFilter': ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetMaximumEdgeLength(self, _arg:float) -> None: ... + def SetMaximumNumberOfPasses(self, _arg:int) -> None: ... + def SetMaximumNumberOfTriangles(self, _arg:int) -> None: ... + def SetMaximumTriangleArea(self, _arg:float) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + +class vtkBandedPolyDataContourFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + clip_tolerance:'getset_descriptor' + clipping:'getset_descriptor' + component:'getset_descriptor' + contour_edges_output:'getset_descriptor' + generate_contour_edges:'getset_descriptor' + m_time:'getset_descriptor' + number_of_contours:'getset_descriptor' + scalar_mode:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClippingOff(self) -> None: ... + def ClippingOn(self) -> None: ... + def GenerateContourEdgesOff(self) -> None: ... + def GenerateContourEdgesOn(self) -> None: ... + @overload + def GenerateValues(self, numContours:int, range:MutableSequence[float]) -> None: ... + @overload + def GenerateValues(self, numContours:int, rangeStart:float, rangeEnd:float) -> None: ... + def GetClipTolerance(self) -> float: ... + def GetClipping(self) -> int: ... + def GetComponent(self) -> int: ... + def GetContourEdgesOutput(self) -> 'vtkPolyData': ... + def GetGenerateContourEdges(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfContours(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScalarMode(self) -> int: ... + def GetScalarModeMaxValue(self) -> int: ... + def GetScalarModeMinValue(self) -> int: ... + def GetValue(self, i:int) -> float: ... + @overload + def GetValues(self) -> Pointer: ... + @overload + def GetValues(self, contourValues:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBandedPolyDataContourFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBandedPolyDataContourFilter': ... + def SetClipTolerance(self, _arg:float) -> None: ... + def SetClipping(self, _arg:int) -> None: ... + def SetComponent(self, _arg:int) -> None: ... + def SetGenerateContourEdges(self, _arg:int) -> None: ... + def SetNumberOfContours(self, number:int) -> None: ... + def SetScalarMode(self, _arg:int) -> None: ... + def SetScalarModeToIndex(self) -> None: ... + def SetScalarModeToValue(self) -> None: ... + def SetValue(self, i:int, value:float) -> None: ... + +class vtkButterflySubdivisionFilter(vtkmodules.vtkFiltersGeneral.vtkInterpolatingSubdivisionFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkButterflySubdivisionFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkButterflySubdivisionFilter': ... + +class vtkCollisionDetectionFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class CollisionModes(int): ... + VTK_ALL_CONTACTS:'CollisionModes' + VTK_FIRST_CONTACT:'CollisionModes' + VTK_HALF_CONTACTS:'CollisionModes' + box_tolerance:'getset_descriptor' + cell_tolerance:'getset_descriptor' + collision_mode:'getset_descriptor' + contacts_output:'getset_descriptor' + contacts_output_port:'getset_descriptor' + generate_scalars:'getset_descriptor' + m_time:'getset_descriptor' + number_of_box_tests:'getset_descriptor' + number_of_cells_per_node:'getset_descriptor' + number_of_contacts:'getset_descriptor' + opacity:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateScalarsOff(self) -> None: ... + def GenerateScalarsOn(self) -> None: ... + def GetBoxTolerance(self) -> float: ... + def GetCellTolerance(self) -> float: ... + def GetCollisionMode(self) -> int: ... + def GetCollisionModeAsString(self) -> str: ... + def GetCollisionModeMaxValue(self) -> int: ... + def GetCollisionModeMinValue(self) -> int: ... + def GetContactCells(self, i:int) -> 'vtkIdTypeArray': ... + def GetContactsOutput(self) -> 'vtkPolyData': ... + def GetContactsOutputPort(self) -> 'vtkAlgorithmOutput': ... + def GetGenerateScalars(self) -> int: ... + def GetInputData(self, i:int) -> 'vtkPolyData': ... + def GetMTime(self) -> int: ... + def GetMatrix(self, i:int) -> 'vtkMatrix4x4': ... + def GetNumberOfBoxTests(self) -> int: ... + def GetNumberOfCellsPerNode(self) -> int: ... + def GetNumberOfContacts(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOpacity(self) -> float: ... + def GetOpacityMaxValue(self) -> float: ... + def GetOpacityMinValue(self) -> float: ... + def GetTransform(self, i:int) -> 'vtkLinearTransform': ... + def IntersectPolygonWithPolygon(self, npts:int, pts:MutableSequence[float], bounds:MutableSequence[float], npts2:int, pts2:MutableSequence[float], bounds2:MutableSequence[float], tol2:float, x1:MutableSequence[float], x2:MutableSequence[float], CollisionMode:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCollisionDetectionFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCollisionDetectionFilter': ... + def SetBoxTolerance(self, _arg:float) -> None: ... + def SetCellTolerance(self, _arg:float) -> None: ... + def SetCollisionMode(self, _arg:int) -> None: ... + def SetCollisionModeToAllContacts(self) -> None: ... + def SetCollisionModeToFirstContact(self) -> None: ... + def SetCollisionModeToHalfContacts(self) -> None: ... + def SetGenerateScalars(self, _arg:int) -> None: ... + def SetInputData(self, i:int, model:'vtkPolyData') -> None: ... + def SetMatrix(self, i:int, matrix:'vtkMatrix4x4') -> None: ... + def SetNumberOfCellsPerNode(self, _arg:int) -> None: ... + def SetOpacity(self, _arg:float) -> None: ... + def SetTransform(self, i:int, transform:'vtkLinearTransform') -> None: ... + +class vtkContourLoopExtraction(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + clean_points:'getset_descriptor' + loop_closure:'getset_descriptor' + normal:'getset_descriptor' + output_mode:'getset_descriptor' + scalar_range:'getset_descriptor' + scalar_thresholding:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CleanPointsOff(self) -> None: ... + def CleanPointsOn(self) -> None: ... + def GetCleanPoints(self) -> bool: ... + def GetLoopClosure(self) -> int: ... + def GetLoopClosureAsString(self) -> str: ... + def GetLoopClosureMaxValue(self) -> int: ... + def GetLoopClosureMinValue(self) -> int: ... + def GetNormal(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputMode(self) -> int: ... + def GetOutputModeAsString(self) -> str: ... + def GetOutputModeMaxValue(self) -> int: ... + def GetOutputModeMinValue(self) -> int: ... + def GetScalarRange(self) -> Tuple[float, float]: ... + def GetScalarThresholding(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContourLoopExtraction': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContourLoopExtraction': ... + def ScalarThresholdingOff(self) -> None: ... + def ScalarThresholdingOn(self) -> None: ... + def SetCleanPoints(self, _arg:bool) -> None: ... + def SetLoopClosure(self, _arg:int) -> None: ... + def SetLoopClosureToAll(self) -> None: ... + def SetLoopClosureToBoundary(self) -> None: ... + def SetLoopClosureToOff(self) -> None: ... + @overload + def SetNormal(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetNormal(self, _arg:Sequence[float]) -> None: ... + def SetOutputMode(self, _arg:int) -> None: ... + def SetOutputModeToBoth(self) -> None: ... + def SetOutputModeToPolygons(self) -> None: ... + def SetOutputModeToPolylines(self) -> None: ... + @overload + def SetScalarRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetScalarRange(self, _arg:Sequence[float]) -> None: ... + def SetScalarThresholding(self, _arg:bool) -> None: ... + +class vtkCookieCutter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class PointInterpolationType(int): ... + USE_LOOP_EDGES:'PointInterpolationType' + USE_MESH_EDGES:'PointInterpolationType' + locator:'getset_descriptor' + loops:'getset_descriptor' + loops_connection:'getset_descriptor' + loops_data:'getset_descriptor' + pass_cell_data:'getset_descriptor' + pass_point_data:'getset_descriptor' + point_interpolation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetLoops(self) -> 'vtkDataObject': ... + def GetLoopsConnection(self) -> 'vtkAlgorithmOutput': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassCellData(self) -> bool: ... + def GetPassPointData(self) -> bool: ... + def GetPointInterpolation(self) -> int: ... + def GetPointInterpolationMaxValue(self) -> int: ... + def GetPointInterpolationMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCookieCutter': ... + def PassCellDataOff(self) -> None: ... + def PassCellDataOn(self) -> None: ... + def PassPointDataOff(self) -> None: ... + def PassPointDataOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCookieCutter': ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetLoopsConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetLoopsData(self, loops:'vtkDataObject') -> None: ... + def SetPassCellData(self, _arg:bool) -> None: ... + def SetPassPointData(self, _arg:bool) -> None: ... + def SetPointInterpolation(self, _arg:int) -> None: ... + def SetPointInterpolationToLoopEdges(self) -> None: ... + def SetPointInterpolationToMeshEdges(self) -> None: ... + +class vtkGeodesicPath(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGeodesicPath': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGeodesicPath': ... + +class vtkGraphGeodesicPath(vtkGeodesicPath): + end_vertex:'getset_descriptor' + start_vertex:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetEndVertex(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStartVertex(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGraphGeodesicPath': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraphGeodesicPath': ... + def SetEndVertex(self, _arg:int) -> None: ... + def SetStartVertex(self, _arg:int) -> None: ... + +class vtkDijkstraGraphGeodesicPath(vtkGraphGeodesicPath): + id_list:'getset_descriptor' + repel_path_from_vertices:'getset_descriptor' + repel_vertices:'getset_descriptor' + stop_when_end_reached:'getset_descriptor' + use_scalar_weights:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCumulativeWeights(self, weights:'vtkDoubleArray') -> None: ... + def GetIdList(self) -> 'vtkIdList': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRepelPathFromVertices(self) -> int: ... + def GetRepelVertices(self) -> 'vtkPoints': ... + def GetStopWhenEndReached(self) -> int: ... + def GetUseScalarWeights(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDijkstraGraphGeodesicPath': ... + def RepelPathFromVerticesOff(self) -> None: ... + def RepelPathFromVerticesOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDijkstraGraphGeodesicPath': ... + def SetRepelPathFromVertices(self, _arg:int) -> None: ... + def SetRepelVertices(self, __a:'vtkPoints') -> None: ... + def SetStopWhenEndReached(self, _arg:int) -> None: ... + def SetUseScalarWeights(self, _arg:int) -> None: ... + def StopWhenEndReachedOff(self) -> None: ... + def StopWhenEndReachedOn(self) -> None: ... + def UseScalarWeightsOff(self) -> None: ... + def UseScalarWeightsOn(self) -> None: ... + +class vtkDijkstraImageGeodesicPath(vtkDijkstraGraphGeodesicPath): + curvature_weight:'getset_descriptor' + edge_length_weight:'getset_descriptor' + image_data_input:'getset_descriptor' + image_weight:'getset_descriptor' + input_as_image_data:'getset_descriptor' + input_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCurvatureWeight(self) -> float: ... + def GetCurvatureWeightMaxValue(self) -> float: ... + def GetCurvatureWeightMinValue(self) -> float: ... + def GetEdgeLengthWeight(self) -> float: ... + def GetImageDataInput(self) -> 'vtkImageData': ... + def GetImageWeight(self) -> float: ... + def GetInputAsImageData(self) -> 'vtkImageData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDijkstraImageGeodesicPath': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDijkstraImageGeodesicPath': ... + def SetCurvatureWeight(self, _arg:float) -> None: ... + def SetEdgeLengthWeight(self, __a:float) -> None: ... + def SetImageWeight(self, __a:float) -> None: ... + def SetInputData(self, __a:'vtkDataObject') -> None: ... + +class vtkFillHolesFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + hole_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetHoleSize(self) -> float: ... + def GetHoleSizeMaxValue(self) -> float: ... + def GetHoleSizeMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFillHolesFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFillHolesFilter': ... + def SetHoleSize(self, _arg:float) -> None: ... + +class vtkFitToHeightMapFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class FittingStrategy(int): ... + CELL_AVERAGE_HEIGHT:'FittingStrategy' + CELL_MAXIMUM_HEIGHT:'FittingStrategy' + CELL_MINIMUM_HEIGHT:'FittingStrategy' + POINT_AVERAGE_HEIGHT:'FittingStrategy' + POINT_MAXIMUM_HEIGHT:'FittingStrategy' + POINT_MINIMUM_HEIGHT:'FittingStrategy' + POINT_PROJECTION:'FittingStrategy' + fitting_strategy:'getset_descriptor' + height_map:'getset_descriptor' + height_map_connection:'getset_descriptor' + height_map_data:'getset_descriptor' + use_height_map_offset:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFittingStrategy(self) -> int: ... + @overload + def GetHeightMap(self) -> 'vtkImageData': ... + @overload + def GetHeightMap(self, sourceInfo:'vtkInformationVector') -> 'vtkImageData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseHeightMapOffset(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFitToHeightMapFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFitToHeightMapFilter': ... + def SetFittingStrategy(self, _arg:int) -> None: ... + def SetFittingStrategyToAverageHeight(self) -> None: ... + def SetFittingStrategyToCellAverageHeight(self) -> None: ... + def SetFittingStrategyToCellMaximumHeight(self) -> None: ... + def SetFittingStrategyToCellMinimumHeight(self) -> None: ... + def SetFittingStrategyToPointMaximumHeight(self) -> None: ... + def SetFittingStrategyToPointMinimumHeight(self) -> None: ... + def SetFittingStrategyToPointProjection(self) -> None: ... + def SetHeightMapConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetHeightMapData(self, idata:'vtkImageData') -> None: ... + def SetUseHeightMapOffset(self, _arg:int) -> None: ... + def UseHeightMapOffsetOff(self) -> None: ... + def UseHeightMapOffsetOn(self) -> None: ... + +class vtkHausdorffDistancePointSetFilter(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + class DistanceMethod(int): ... + POINT_TO_CELL:'DistanceMethod' + POINT_TO_POINT:'DistanceMethod' + hausdorff_distance:'getset_descriptor' + relative_distance:'getset_descriptor' + target_distance_method:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetHausdorffDistance(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRelativeDistance(self) -> Tuple[float, float]: ... + def GetTargetDistanceMethod(self) -> int: ... + def GetTargetDistanceMethodAsString(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHausdorffDistancePointSetFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHausdorffDistancePointSetFilter': ... + def SetTargetDistanceMethod(self, _arg:int) -> None: ... + def SetTargetDistanceMethodToPointToCell(self) -> None: ... + def SetTargetDistanceMethodToPointToPoint(self) -> None: ... + +class vtkHyperTreeGridOutlineFilter(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + generate_faces:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateFacesOff(self) -> None: ... + def GenerateFacesOn(self) -> None: ... + def GetGenerateFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridOutlineFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridOutlineFilter': ... + def SetGenerateFaces(self, _arg:int) -> None: ... + +class vtkImageDataOutlineFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + generate_faces:'getset_descriptor' + output_points_precision:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateFacesOff(self) -> None: ... + def GenerateFacesOn(self) -> None: ... + def GetGenerateFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageDataOutlineFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageDataOutlineFilter': ... + def SetGenerateFaces(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + +class vtkImprintFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class MergeTolType(int): ... + class ToleranceStrategy(int): ... + class DebugOutput(int): ... + class SpecifiedOutput(int): ... + class PointInterpolationType(int): ... + ABSOLUTE_TOLERANCE:'MergeTolType' + DECOUPLED_TOLERANCES:'ToleranceStrategy' + IMPRINTED_CELLS:'SpecifiedOutput' + IMPRINTED_REGION:'SpecifiedOutput' + LINKED_TOLERANCES:'ToleranceStrategy' + MERGED_IMPRINT:'SpecifiedOutput' + NO_DEBUG_OUTPUT:'DebugOutput' + PROJECTED_IMPRINT:'SpecifiedOutput' + RELATIVE_TO_AVERAGE_EDGE_LENGTH:'MergeTolType' + RELATIVE_TO_MIN_EDGE_LENGTH:'MergeTolType' + RELATIVE_TO_PROJECTION_TOLERANCE:'MergeTolType' + TARGET_CELLS:'SpecifiedOutput' + TRIANGULATION_INPUT:'DebugOutput' + TRIANGULATION_OUTPUT:'DebugOutput' + USE_IMPRINT_EDGES:'PointInterpolationType' + USE_TARGET_EDGES:'PointInterpolationType' + boundary_edge_insertion:'getset_descriptor' + debug_cell_id:'getset_descriptor' + debug_output:'getset_descriptor' + debug_output_type:'getset_descriptor' + imprint:'getset_descriptor' + imprint_connection:'getset_descriptor' + imprint_data:'getset_descriptor' + merge_tolerance:'getset_descriptor' + merge_tolerance_type:'getset_descriptor' + output_type:'getset_descriptor' + pass_cell_data:'getset_descriptor' + pass_point_data:'getset_descriptor' + point_interpolation:'getset_descriptor' + target:'getset_descriptor' + target_connection:'getset_descriptor' + target_data:'getset_descriptor' + tolerance:'getset_descriptor' + tolerance_strategy:'getset_descriptor' + triangulate_output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BoundaryEdgeInsertionOff(self) -> None: ... + def BoundaryEdgeInsertionOn(self) -> None: ... + def GetBoundaryEdgeInsertion(self) -> bool: ... + def GetDebugCellId(self) -> int: ... + def GetDebugOutput(self) -> 'vtkPolyData': ... + def GetDebugOutputType(self) -> int: ... + def GetDebugOutputTypeMaxValue(self) -> int: ... + def GetDebugOutputTypeMinValue(self) -> int: ... + def GetImprint(self) -> 'vtkDataObject': ... + def GetImprintConnection(self) -> 'vtkAlgorithmOutput': ... + def GetMergeTolerance(self) -> float: ... + def GetMergeToleranceMaxValue(self) -> float: ... + def GetMergeToleranceMinValue(self) -> float: ... + def GetMergeToleranceType(self) -> int: ... + def GetMergeToleranceTypeMaxValue(self) -> int: ... + def GetMergeToleranceTypeMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputType(self) -> int: ... + def GetOutputTypeMaxValue(self) -> int: ... + def GetOutputTypeMinValue(self) -> int: ... + def GetPassCellData(self) -> bool: ... + def GetPassPointData(self) -> bool: ... + def GetPointInterpolation(self) -> int: ... + def GetPointInterpolationMaxValue(self) -> int: ... + def GetPointInterpolationMinValue(self) -> int: ... + def GetTarget(self) -> 'vtkDataObject': ... + def GetTargetConnection(self) -> 'vtkAlgorithmOutput': ... + def GetTolerance(self) -> float: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def GetToleranceStrategy(self) -> int: ... + def GetToleranceStrategyMaxValue(self) -> int: ... + def GetToleranceStrategyMinValue(self) -> int: ... + def GetTriangulateOutput(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImprintFilter': ... + def PassCellDataOff(self) -> None: ... + def PassCellDataOn(self) -> None: ... + def PassPointDataOff(self) -> None: ... + def PassPointDataOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImprintFilter': ... + def SetBoundaryEdgeInsertion(self, _arg:bool) -> None: ... + def SetDebugCellId(self, _arg:int) -> None: ... + def SetDebugOutputType(self, _arg:int) -> None: ... + def SetDebugOutputTypeToNoDebugOutput(self) -> None: ... + def SetDebugOutputTypeToTriangulationInput(self) -> None: ... + def SetDebugOutputTypeToTriangulationOutput(self) -> None: ... + def SetImprintConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetImprintData(self, imprint:'vtkDataObject') -> None: ... + def SetMergeTolerance(self, _arg:float) -> None: ... + def SetMergeToleranceType(self, _arg:int) -> None: ... + def SetMergeToleranceTypeToAbsolute(self) -> None: ... + def SetMergeToleranceTypeToAverageEdge(self) -> None: ... + def SetMergeToleranceTypeToMinEdge(self) -> None: ... + def SetMergeToleranceTypeToRelativeToProjection(self) -> None: ... + def SetOutputType(self, _arg:int) -> None: ... + def SetOutputTypeToImprintedCells(self) -> None: ... + def SetOutputTypeToImprintedRegion(self) -> None: ... + def SetOutputTypeToMergedImprint(self) -> None: ... + def SetOutputTypeToProjectedImprint(self) -> None: ... + def SetOutputTypeToTargetCells(self) -> None: ... + def SetPassCellData(self, _arg:bool) -> None: ... + def SetPassPointData(self, _arg:bool) -> None: ... + def SetPointInterpolation(self, _arg:int) -> None: ... + def SetPointInterpolationToImprintEdges(self) -> None: ... + def SetPointInterpolationToTargetEdges(self) -> None: ... + def SetTargetConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetTargetData(self, target:'vtkDataObject') -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def SetToleranceStrategy(self, _arg:int) -> None: ... + def SetToleranceStrategyToDecoupled(self) -> None: ... + def SetToleranceStrategyToLinked(self) -> None: ... + def SetTriangulateOutput(self, _arg:bool) -> None: ... + def TriangulateOutputOff(self) -> None: ... + def TriangulateOutputOn(self) -> None: ... + +class vtkLinearCellExtrusionFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + locator:'getset_descriptor' + merge_duplicate_points:'getset_descriptor' + scale_factor:'getset_descriptor' + use_user_vector:'getset_descriptor' + user_vector:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMergeDuplicatePoints(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScaleFactor(self) -> float: ... + def GetUseUserVector(self) -> bool: ... + def GetUserVector(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergeDuplicatePointsOff(self) -> None: ... + def MergeDuplicatePointsOn(self) -> None: ... + def NewInstance(self) -> 'vtkLinearCellExtrusionFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLinearCellExtrusionFilter': ... + def SetLocator(self, _arg:'vtkIncrementalPointLocator') -> None: ... + def SetMergeDuplicatePoints(self, _arg:bool) -> None: ... + def SetScaleFactor(self, _arg:float) -> None: ... + def SetUseUserVector(self, _arg:bool) -> None: ... + @overload + def SetUserVector(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetUserVector(self, _arg:Sequence[float]) -> None: ... + def UseUserVectorOff(self) -> None: ... + def UseUserVectorOn(self) -> None: ... + +class vtkLinearExtrusionFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + capping:'getset_descriptor' + extrusion_point:'getset_descriptor' + extrusion_type:'getset_descriptor' + scale_factor:'getset_descriptor' + vector:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CappingOff(self) -> None: ... + def CappingOn(self) -> None: ... + def GetCapping(self) -> int: ... + def GetExtrusionPoint(self) -> Tuple[float, float, float]: ... + def GetExtrusionType(self) -> int: ... + def GetExtrusionTypeMaxValue(self) -> int: ... + def GetExtrusionTypeMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScaleFactor(self) -> float: ... + def GetVector(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLinearExtrusionFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLinearExtrusionFilter': ... + def SetCapping(self, _arg:int) -> None: ... + @overload + def SetExtrusionPoint(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetExtrusionPoint(self, _arg:Sequence[float]) -> None: ... + def SetExtrusionType(self, _arg:int) -> None: ... + def SetExtrusionTypeToNormalExtrusion(self) -> None: ... + def SetExtrusionTypeToPointExtrusion(self) -> None: ... + def SetExtrusionTypeToVectorExtrusion(self) -> None: ... + def SetScaleFactor(self, _arg:float) -> None: ... + @overload + def SetVector(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetVector(self, _arg:Sequence[float]) -> None: ... + +class vtkLinearSubdivisionFilter(vtkmodules.vtkFiltersGeneral.vtkInterpolatingSubdivisionFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLinearSubdivisionFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLinearSubdivisionFilter': ... + +class vtkLoopSubdivisionFilter(vtkmodules.vtkFiltersGeneral.vtkApproximatingSubdivisionFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLoopSubdivisionFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLoopSubdivisionFilter': ... + +class vtkOutlineFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class CompositeOutlineStyle(int): ... + LEAF_DATASETS:'CompositeOutlineStyle' + ROOT_AND_LEAFS:'CompositeOutlineStyle' + ROOT_LEVEL:'CompositeOutlineStyle' + SPECIFIED_INDEX:'CompositeOutlineStyle' + composite_style:'getset_descriptor' + generate_faces:'getset_descriptor' + output_points_precision:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddIndex(self, index:int) -> None: ... + def GenerateFacesOff(self) -> None: ... + def GenerateFacesOn(self) -> None: ... + def GetCompositeStyle(self) -> int: ... + def GetGenerateFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOutlineFilter': ... + def RemoveAllIndices(self) -> None: ... + def RemoveIndex(self, index:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOutlineFilter': ... + def SetCompositeStyle(self, _arg:int) -> None: ... + def SetCompositeStyleToLeafs(self) -> None: ... + def SetCompositeStyleToRoot(self) -> None: ... + def SetCompositeStyleToRootAndLeafs(self) -> None: ... + def SetCompositeStyleToSpecifiedIndex(self) -> None: ... + def SetGenerateFaces(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + +class vtkPolyDataPointSampler(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + RANDOM_GENERATION:int + REGULAR_GENERATION:int + distance:'getset_descriptor' + generate_edge_points:'getset_descriptor' + generate_interior_points:'getset_descriptor' + generate_vertex_points:'getset_descriptor' + generate_vertices:'getset_descriptor' + interpolate_point_data:'getset_descriptor' + point_generation_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateEdgePointsOff(self) -> None: ... + def GenerateEdgePointsOn(self) -> None: ... + def GenerateInteriorPointsOff(self) -> None: ... + def GenerateInteriorPointsOn(self) -> None: ... + def GenerateVertexPointsOff(self) -> None: ... + def GenerateVertexPointsOn(self) -> None: ... + def GenerateVerticesOff(self) -> None: ... + def GenerateVerticesOn(self) -> None: ... + def GetDistance(self) -> float: ... + def GetDistanceMaxValue(self) -> float: ... + def GetDistanceMinValue(self) -> float: ... + def GetGenerateEdgePoints(self) -> bool: ... + def GetGenerateInteriorPoints(self) -> bool: ... + def GetGenerateVertexPoints(self) -> bool: ... + def GetGenerateVertices(self) -> bool: ... + def GetInterpolatePointData(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointGenerationMode(self) -> int: ... + def GetPointGenerationModeMaxValue(self) -> int: ... + def GetPointGenerationModeMinValue(self) -> int: ... + def InterpolatePointDataOff(self) -> None: ... + def InterpolatePointDataOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyDataPointSampler': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataPointSampler': ... + def SetDistance(self, _arg:float) -> None: ... + def SetGenerateEdgePoints(self, _arg:bool) -> None: ... + def SetGenerateInteriorPoints(self, _arg:bool) -> None: ... + def SetGenerateVertexPoints(self, _arg:bool) -> None: ... + def SetGenerateVertices(self, _arg:bool) -> None: ... + def SetInterpolatePointData(self, _arg:bool) -> None: ... + def SetPointGenerationMode(self, _arg:int) -> None: ... + def SetPointGenerationModeToRandom(self) -> None: ... + def SetPointGenerationModeToRegular(self) -> None: ... + +class vtkProjectedTexture(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + aspect_ratio:'getset_descriptor' + camera_mode:'getset_descriptor' + focal_point:'getset_descriptor' + mirror_separation:'getset_descriptor' + orientation:'getset_descriptor' + position:'getset_descriptor' + s_range:'getset_descriptor' + t_range:'getset_descriptor' + up:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAspectRatio(self) -> Tuple[float, float, float]: ... + def GetCameraMode(self) -> int: ... + def GetFocalPoint(self) -> Tuple[float, float, float]: ... + def GetMirrorSeparation(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientation(self) -> Tuple[float, float, float]: ... + def GetPosition(self) -> Tuple[float, float, float]: ... + def GetSRange(self) -> Tuple[float, float]: ... + def GetTRange(self) -> Tuple[float, float]: ... + def GetUp(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProjectedTexture': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProjectedTexture': ... + @overload + def SetAspectRatio(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAspectRatio(self, _arg:Sequence[float]) -> None: ... + def SetCameraMode(self, _arg:int) -> None: ... + def SetCameraModeToPinhole(self) -> None: ... + def SetCameraModeToTwoMirror(self) -> None: ... + @overload + def SetFocalPoint(self, focalPoint:MutableSequence[float]) -> None: ... + @overload + def SetFocalPoint(self, x:float, y:float, z:float) -> None: ... + def SetMirrorSeparation(self, _arg:float) -> None: ... + @overload + def SetPosition(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPosition(self, _arg:Sequence[float]) -> None: ... + @overload + def SetSRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetSRange(self, _arg:Sequence[float]) -> None: ... + @overload + def SetTRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetTRange(self, _arg:Sequence[float]) -> None: ... + @overload + def SetUp(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetUp(self, _arg:Sequence[float]) -> None: ... + +class vtkQuadRotationalExtrusionFilter(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + class RotationAxis(int): ... + USE_X:'RotationAxis' + USE_Y:'RotationAxis' + USE_Z:'RotationAxis' + axis:'getset_descriptor' + capping:'getset_descriptor' + default_angle:'getset_descriptor' + delta_radius:'getset_descriptor' + resolution:'getset_descriptor' + translation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddPerBlockAngle(self, blockId:int, angle:float) -> None: ... + def CappingOff(self) -> None: ... + def CappingOn(self) -> None: ... + def GetAxis(self) -> int: ... + def GetAxisMaxValue(self) -> int: ... + def GetAxisMinValue(self) -> int: ... + def GetCapping(self) -> int: ... + def GetDefaultAngle(self) -> float: ... + def GetDeltaRadius(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetResolution(self) -> int: ... + def GetResolutionMaxValue(self) -> int: ... + def GetResolutionMinValue(self) -> int: ... + def GetTranslation(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuadRotationalExtrusionFilter': ... + def RemoveAllPerBlockAngles(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadRotationalExtrusionFilter': ... + def SetAxis(self, _arg:int) -> None: ... + def SetAxisToX(self) -> None: ... + def SetAxisToY(self) -> None: ... + def SetAxisToZ(self) -> None: ... + def SetCapping(self, _arg:int) -> None: ... + def SetDefaultAngle(self, _arg:float) -> None: ... + def SetDeltaRadius(self, _arg:float) -> None: ... + def SetResolution(self, _arg:int) -> None: ... + def SetTranslation(self, _arg:float) -> None: ... + +class vtkRibbonFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + angle:'getset_descriptor' + default_normal:'getset_descriptor' + generate_t_coords:'getset_descriptor' + texture_length:'getset_descriptor' + use_default_normal:'getset_descriptor' + vary_width:'getset_descriptor' + width:'getset_descriptor' + width_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAngle(self) -> float: ... + def GetAngleMaxValue(self) -> float: ... + def GetAngleMinValue(self) -> float: ... + def GetDefaultNormal(self) -> Tuple[float, float, float]: ... + def GetGenerateTCoords(self) -> int: ... + def GetGenerateTCoordsAsString(self) -> str: ... + def GetGenerateTCoordsMaxValue(self) -> int: ... + def GetGenerateTCoordsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTextureLength(self) -> float: ... + def GetTextureLengthMaxValue(self) -> float: ... + def GetTextureLengthMinValue(self) -> float: ... + def GetUseDefaultNormal(self) -> int: ... + def GetVaryWidth(self) -> int: ... + def GetWidth(self) -> float: ... + def GetWidthFactor(self) -> float: ... + def GetWidthMaxValue(self) -> float: ... + def GetWidthMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRibbonFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRibbonFilter': ... + def SetAngle(self, _arg:float) -> None: ... + @overload + def SetDefaultNormal(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetDefaultNormal(self, _arg:Sequence[float]) -> None: ... + def SetGenerateTCoords(self, _arg:int) -> None: ... + def SetGenerateTCoordsToNormalizedLength(self) -> None: ... + def SetGenerateTCoordsToOff(self) -> None: ... + def SetGenerateTCoordsToUseLength(self) -> None: ... + def SetGenerateTCoordsToUseScalars(self) -> None: ... + def SetTextureLength(self, _arg:float) -> None: ... + def SetUseDefaultNormal(self, _arg:int) -> None: ... + def SetVaryWidth(self, _arg:int) -> None: ... + def SetWidth(self, _arg:float) -> None: ... + def SetWidthFactor(self, _arg:float) -> None: ... + def UseDefaultNormalOff(self) -> None: ... + def UseDefaultNormalOn(self) -> None: ... + def VaryWidthOff(self) -> None: ... + def VaryWidthOn(self) -> None: ... + +class vtkRotationalExtrusionFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + angle:'getset_descriptor' + capping:'getset_descriptor' + delta_radius:'getset_descriptor' + resolution:'getset_descriptor' + rotation_axis:'getset_descriptor' + translation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CappingOff(self) -> None: ... + def CappingOn(self) -> None: ... + def GetAngle(self) -> float: ... + def GetCapping(self) -> int: ... + def GetDeltaRadius(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetResolution(self) -> int: ... + def GetResolutionMaxValue(self) -> int: ... + def GetResolutionMinValue(self) -> int: ... + def GetRotationAxis(self) -> Tuple[float, float, float]: ... + def GetTranslation(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRotationalExtrusionFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRotationalExtrusionFilter': ... + def SetAngle(self, _arg:float) -> None: ... + def SetCapping(self, _arg:int) -> None: ... + def SetDeltaRadius(self, _arg:float) -> None: ... + def SetResolution(self, _arg:int) -> None: ... + @overload + def SetRotationAxis(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetRotationAxis(self, _arg:Sequence[float]) -> None: ... + def SetTranslation(self, _arg:float) -> None: ... + +class vtkRuledSurfaceFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + close_surface:'getset_descriptor' + distance_factor:'getset_descriptor' + offset:'getset_descriptor' + on_ratio:'getset_descriptor' + orient_loops:'getset_descriptor' + pass_lines:'getset_descriptor' + resolution:'getset_descriptor' + ruled_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CloseSurfaceOff(self) -> None: ... + def CloseSurfaceOn(self) -> None: ... + def GetCloseSurface(self) -> int: ... + def GetDistanceFactor(self) -> float: ... + def GetDistanceFactorMaxValue(self) -> float: ... + def GetDistanceFactorMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffset(self) -> int: ... + def GetOffsetMaxValue(self) -> int: ... + def GetOffsetMinValue(self) -> int: ... + def GetOnRatio(self) -> int: ... + def GetOnRatioMaxValue(self) -> int: ... + def GetOnRatioMinValue(self) -> int: ... + def GetOrientLoops(self) -> int: ... + def GetPassLines(self) -> int: ... + def GetResolution(self) -> Tuple[int, int]: ... + def GetRuledMode(self) -> int: ... + def GetRuledModeAsString(self) -> str: ... + def GetRuledModeMaxValue(self) -> int: ... + def GetRuledModeMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRuledSurfaceFilter': ... + def OrientLoopsOff(self) -> None: ... + def OrientLoopsOn(self) -> None: ... + def PassLinesOff(self) -> None: ... + def PassLinesOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRuledSurfaceFilter': ... + def SetCloseSurface(self, _arg:int) -> None: ... + def SetDistanceFactor(self, _arg:float) -> None: ... + def SetOffset(self, _arg:int) -> None: ... + def SetOnRatio(self, _arg:int) -> None: ... + def SetOrientLoops(self, _arg:int) -> None: ... + def SetPassLines(self, _arg:int) -> None: ... + @overload + def SetResolution(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetResolution(self, _arg:Sequence[int]) -> None: ... + def SetRuledMode(self, _arg:int) -> None: ... + def SetRuledModeToPointWalk(self) -> None: ... + def SetRuledModeToResample(self) -> None: ... + +class vtkSectorSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + circumferential_resolution:'getset_descriptor' + end_angle:'getset_descriptor' + inner_radius:'getset_descriptor' + outer_radius:'getset_descriptor' + radial_resolution:'getset_descriptor' + start_angle:'getset_descriptor' + z_coord:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCircumferentialResolution(self) -> int: ... + def GetCircumferentialResolutionMaxValue(self) -> int: ... + def GetCircumferentialResolutionMinValue(self) -> int: ... + def GetEndAngle(self) -> float: ... + def GetEndAngleMaxValue(self) -> float: ... + def GetEndAngleMinValue(self) -> float: ... + def GetInnerRadius(self) -> float: ... + def GetInnerRadiusMaxValue(self) -> float: ... + def GetInnerRadiusMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOuterRadius(self) -> float: ... + def GetOuterRadiusMaxValue(self) -> float: ... + def GetOuterRadiusMinValue(self) -> float: ... + def GetRadialResolution(self) -> int: ... + def GetRadialResolutionMaxValue(self) -> int: ... + def GetRadialResolutionMinValue(self) -> int: ... + def GetStartAngle(self) -> float: ... + def GetStartAngleMaxValue(self) -> float: ... + def GetStartAngleMinValue(self) -> float: ... + def GetZCoord(self) -> float: ... + def GetZCoordMaxValue(self) -> float: ... + def GetZCoordMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSectorSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSectorSource': ... + def SetCircumferentialResolution(self, _arg:int) -> None: ... + def SetEndAngle(self, _arg:float) -> None: ... + def SetInnerRadius(self, _arg:float) -> None: ... + def SetOuterRadius(self, _arg:float) -> None: ... + def SetRadialResolution(self, _arg:int) -> None: ... + def SetStartAngle(self, _arg:float) -> None: ... + def SetZCoord(self, _arg:float) -> None: ... + +class vtkSelectEnclosedPoints(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + check_surface:'getset_descriptor' + inside_out:'getset_descriptor' + surface:'getset_descriptor' + surface_connection:'getset_descriptor' + surface_data:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CheckSurfaceOff(self) -> None: ... + def CheckSurfaceOn(self) -> None: ... + def Complete(self) -> None: ... + def GetCheckSurface(self) -> int: ... + def GetInsideOut(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetSurface(self) -> 'vtkPolyData': ... + @overload + def GetSurface(self, sourceInfo:'vtkInformationVector') -> 'vtkPolyData': ... + def GetTolerance(self) -> float: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def Initialize(self, surface:'vtkPolyData') -> None: ... + def InsideOutOff(self) -> None: ... + def InsideOutOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsInside(self, inputPtId:int) -> int: ... + @overload + def IsInsideSurface(self, x:MutableSequence[float]) -> int: ... + @overload + def IsInsideSurface(self, x:float, y:float, z:float) -> int: ... + @overload + @staticmethod + def IsInsideSurface(x:MutableSequence[float], surface:'vtkPolyData', bds:MutableSequence[float], length:float, tol:float, locator:'vtkAbstractCellLocator', cellIds:'vtkIdList', genCell:'vtkGenericCell', counter:'vtkIntersectionCounter', poole:'vtkRandomPool'=..., seqIdx:int=0) -> int: ... + @staticmethod + def IsSurfaceClosed(surface:'vtkPolyData') -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSelectEnclosedPoints': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSelectEnclosedPoints': ... + def SetCheckSurface(self, _arg:int) -> None: ... + def SetInsideOut(self, _arg:int) -> None: ... + def SetSurfaceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSurfaceData(self, pd:'vtkPolyData') -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + +class vtkSelectPolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + closest_point:'getset_descriptor' + edge_search_mode:'getset_descriptor' + generate_selection_scalars:'getset_descriptor' + generate_unselected_output:'getset_descriptor' + inside_out:'getset_descriptor' + loop:'getset_descriptor' + m_time:'getset_descriptor' + selection_edges:'getset_descriptor' + selection_mode:'getset_descriptor' + selection_scalars_array_name:'getset_descriptor' + unselected_output:'getset_descriptor' + unselected_output_port:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateSelectionScalarsOff(self) -> None: ... + def GenerateSelectionScalarsOn(self) -> None: ... + def GenerateUnselectedOutputOff(self) -> None: ... + def GenerateUnselectedOutputOn(self) -> None: ... + def GetClosestPoint(self) -> Tuple[float, float, float]: ... + def GetEdgeSearchMode(self) -> int: ... + def GetEdgeSearchModeAsString(self) -> str: ... + def GetEdgeSearchModeMaxValue(self) -> int: ... + def GetEdgeSearchModeMinValue(self) -> int: ... + def GetGenerateSelectionScalars(self) -> int: ... + def GetGenerateUnselectedOutput(self) -> int: ... + def GetInsideOut(self) -> int: ... + def GetLoop(self) -> 'vtkPoints': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSelectionEdges(self) -> 'vtkPolyData': ... + def GetSelectionMode(self) -> int: ... + def GetSelectionModeAsString(self) -> str: ... + def GetSelectionModeMaxValue(self) -> int: ... + def GetSelectionModeMinValue(self) -> int: ... + def GetSelectionScalarsArrayName(self) -> str: ... + def GetUnselectedOutput(self) -> 'vtkPolyData': ... + def GetUnselectedOutputPort(self) -> 'vtkAlgorithmOutput': ... + def InsideOutOff(self) -> None: ... + def InsideOutOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSelectPolyData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSelectPolyData': ... + @overload + def SetClosestPoint(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetClosestPoint(self, _arg:Sequence[float]) -> None: ... + def SetEdgeSearchMode(self, _arg:int) -> None: ... + def SetEdgeSearchModeToDijkstra(self) -> None: ... + def SetEdgeSearchModeToGreedy(self) -> None: ... + def SetGenerateSelectionScalars(self, _arg:int) -> None: ... + def SetGenerateUnselectedOutput(self, _arg:int) -> None: ... + def SetInsideOut(self, _arg:int) -> None: ... + def SetLoop(self, __a:'vtkPoints') -> None: ... + def SetSelectionMode(self, _arg:int) -> None: ... + def SetSelectionModeToClosestPointRegion(self) -> None: ... + def SetSelectionModeToLargestRegion(self) -> None: ... + def SetSelectionModeToSmallestRegion(self) -> None: ... + def SetSelectionScalarsArrayName(self, _arg:str) -> None: ... + +class vtkSpherePuzzle(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + state:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetState(self) -> Pointer: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MoveHorizontal(self, section:int, percentage:int, rightFlag:int) -> None: ... + def MovePoint(self, percentage:int) -> None: ... + def MoveVertical(self, section:int, percentage:int, rightFlag:int) -> None: ... + def NewInstance(self) -> 'vtkSpherePuzzle': ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSpherePuzzle': ... + def SetPoint(self, x:float, y:float, z:float) -> int: ... + +class vtkSpherePuzzleArrows(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + permutation:'getset_descriptor' + permutation_component:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPermutation(self) -> Tuple[int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSpherePuzzleArrows': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSpherePuzzleArrows': ... + @overload + def SetPermutation(self, data:Sequence[int]) -> None: ... + @overload + def SetPermutation(self, puz:'vtkSpherePuzzle') -> None: ... + def SetPermutationComponent(self, comp:int, val:int) -> None: ... + +class vtkSubdivideTetra(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSubdivideTetra': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSubdivideTetra': ... + +class vtkTrimmedExtrusionFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class ExtrusionStrategy(int): ... + class CappingStrategy(int): ... + ALL_EDGES:'ExtrusionStrategy' + AVERAGE_DISTANCE:'CappingStrategy' + BOUNDARY_EDGES:'ExtrusionStrategy' + INTERSECTION:'CappingStrategy' + MAXIMUM_DISTANCE:'CappingStrategy' + MINIMUM_DISTANCE:'CappingStrategy' + capping:'getset_descriptor' + capping_strategy:'getset_descriptor' + extrusion_direction:'getset_descriptor' + extrusion_strategy:'getset_descriptor' + locator:'getset_descriptor' + trim_surface:'getset_descriptor' + trim_surface_connection:'getset_descriptor' + trim_surface_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CappingOff(self) -> None: ... + def CappingOn(self) -> None: ... + def GetCapping(self) -> int: ... + def GetCappingStrategy(self) -> int: ... + def GetExtrusionDirection(self) -> Tuple[float, float, float]: ... + def GetExtrusionStrategy(self) -> int: ... + def GetLocator(self) -> 'vtkAbstractCellLocator': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetTrimSurface(self) -> 'vtkPolyData': ... + @overload + def GetTrimSurface(self, sourceInfo:'vtkInformationVector') -> 'vtkPolyData': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTrimmedExtrusionFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTrimmedExtrusionFilter': ... + def SetCapping(self, _arg:int) -> None: ... + def SetCappingStrategy(self, _arg:int) -> None: ... + def SetCappingStrategyToAverageDistance(self) -> None: ... + def SetCappingStrategyToIntersection(self) -> None: ... + def SetCappingStrategyToMaximumDistance(self) -> None: ... + def SetCappingStrategyToMinimumDistance(self) -> None: ... + @overload + def SetExtrusionDirection(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetExtrusionDirection(self, _arg:Sequence[float]) -> None: ... + def SetExtrusionStrategy(self, _arg:int) -> None: ... + def SetExtrusionStrategyToAllEdges(self) -> None: ... + def SetExtrusionStrategyToBoundaryEdges(self) -> None: ... + def SetLocator(self, locator:'vtkAbstractCellLocator') -> None: ... + def SetTrimSurfaceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetTrimSurfaceData(self, pd:'vtkPolyData') -> None: ... + +class vtkVolumeOfRevolutionFilter(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + axis_direction:'getset_descriptor' + axis_position:'getset_descriptor' + output_points_precision:'getset_descriptor' + resolution:'getset_descriptor' + sweep_angle:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAxisDirection(self) -> Tuple[float, float, float]: ... + def GetAxisPosition(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetOutputPointsPrecisionMaxValue(self) -> int: ... + def GetOutputPointsPrecisionMinValue(self) -> int: ... + def GetResolution(self) -> int: ... + def GetResolutionMaxValue(self) -> int: ... + def GetResolutionMinValue(self) -> int: ... + def GetSweepAngle(self) -> float: ... + def GetSweepAngleMaxValue(self) -> float: ... + def GetSweepAngleMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVolumeOfRevolutionFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVolumeOfRevolutionFilter': ... + @overload + def SetAxisDirection(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAxisDirection(self, _arg:Sequence[float]) -> None: ... + @overload + def SetAxisPosition(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAxisPosition(self, _arg:Sequence[float]) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetResolution(self, _arg:int) -> None: ... + def SetSweepAngle(self, _arg:float) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallel.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallel.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..01755ac Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallel.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallel.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallel.pyi new file mode 100644 index 0000000..a9cc020 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallel.pyi @@ -0,0 +1,1228 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonDataModel +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkFiltersCore +import vtkmodules.vtkFiltersExtraction +import vtkmodules.vtkFiltersGeneral +import vtkmodules.vtkFiltersGeometry +import vtkmodules.vtkFiltersHybrid +import vtkmodules.vtkFiltersModeling +import vtkmodules.vtkFiltersSources +import vtkmodules.vtkFiltersTexture + +VTK_ITERATION_MODE_DIRECT_NB:int +VTK_ITERATION_MODE_MAX:int +VTK_ROTATION_MODE_ARRAY_VALUE:int +VTK_ROTATION_MODE_DIRECT_ANGLE:int + +class vtkAdaptiveTemporalInterpolator(vtkmodules.vtkFiltersHybrid.vtkTemporalInterpolator): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAdaptiveTemporalInterpolator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAdaptiveTemporalInterpolator': ... + +class vtkAggregateDataSetFilter(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + merge_points:'getset_descriptor' + number_of_target_processes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMergePoints(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTargetProcesses(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergePointsOff(self) -> None: ... + def MergePointsOn(self) -> None: ... + def NewInstance(self) -> 'vtkAggregateDataSetFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAggregateDataSetFilter': ... + def SetMergePoints(self, _arg:bool) -> None: ... + def SetNumberOfTargetProcesses(self, __a:int) -> None: ... + +class vtkAlignImageDataSetFilter(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + controller:'getset_descriptor' + minimum_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetMinimumExtent(self) -> Tuple[int, int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAlignImageDataSetFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAlignImageDataSetFilter': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + @overload + def SetMinimumExtent(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetMinimumExtent(self, _arg:Sequence[int]) -> None: ... + +class vtkPeriodicFilter(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + iteration_mode:'getset_descriptor' + number_of_periods:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddIndex(self, index:int) -> None: ... + def GetIterationMode(self) -> int: ... + def GetIterationModeMaxValue(self) -> int: ... + def GetIterationModeMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPeriods(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPeriodicFilter': ... + def RemoveAllIndices(self) -> None: ... + def RemoveIndex(self, index:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPeriodicFilter': ... + def SetIterationMode(self, _arg:int) -> None: ... + def SetIterationModeToDirectNb(self) -> None: ... + def SetIterationModeToMax(self) -> None: ... + def SetNumberOfPeriods(self, _arg:int) -> None: ... + +class vtkAngularPeriodicFilter(vtkPeriodicFilter): + center:'getset_descriptor' + compute_rotations_on_the_fly:'getset_descriptor' + rotation_angle:'getset_descriptor' + rotation_array_name:'getset_descriptor' + rotation_axis:'getset_descriptor' + rotation_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeRotationsOnTheFlyOff(self) -> None: ... + def ComputeRotationsOnTheFlyOn(self) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetComputeRotationsOnTheFly(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRotationAngle(self) -> float: ... + def GetRotationArrayName(self) -> str: ... + def GetRotationAxis(self) -> int: ... + def GetRotationAxisMaxValue(self) -> int: ... + def GetRotationAxisMinValue(self) -> int: ... + def GetRotationMode(self) -> int: ... + def GetRotationModeMaxValue(self) -> int: ... + def GetRotationModeMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAngularPeriodicFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAngularPeriodicFilter': ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetComputeRotationsOnTheFly(self, _arg:bool) -> None: ... + def SetRotationAngle(self, _arg:float) -> None: ... + def SetRotationArrayName(self, _arg:str) -> None: ... + def SetRotationAxis(self, _arg:int) -> None: ... + def SetRotationAxisToX(self) -> None: ... + def SetRotationAxisToY(self) -> None: ... + def SetRotationAxisToZ(self) -> None: ... + def SetRotationMode(self, _arg:int) -> None: ... + def SetRotationModeToArrayValue(self) -> None: ... + def SetRotationModeToDirectAngle(self) -> None: ... + +class vtkBlockDistribution(object): + num_elements:'getset_descriptor' + num_processors:'getset_descriptor' + @overload + def __init__(self, N:int, P:int) -> None: ... + @overload + def __init__(self, __a:'vtkBlockDistribution') -> None: ... + def GetBlockSize(self, rank:int) -> int: ... + def GetFirstGlobalIndexOnProcessor(self, rank:int) -> int: ... + def GetGlobalIndex(self, localIndex:int, rank:int) -> int: ... + def GetLocalIndexOfElement(self, globalIndex:int) -> int: ... + def GetNumElements(self) -> int: ... + def GetNumProcessors(self) -> int: ... + def GetProcessorOfElement(self, globalIndex:int) -> int: ... + +class vtkCleanArrays(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + controller:'getset_descriptor' + fill_partial_arrays:'getset_descriptor' + mark_filled_partial_arrays:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillPartialArraysOff(self) -> None: ... + def FillPartialArraysOn(self) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetFillPartialArrays(self) -> bool: ... + def GetMarkFilledPartialArrays(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MarkFilledPartialArraysOff(self) -> None: ... + def MarkFilledPartialArraysOn(self) -> None: ... + def NewInstance(self) -> 'vtkCleanArrays': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCleanArrays': ... + def SetController(self, controller:'vtkMultiProcessController') -> None: ... + def SetFillPartialArrays(self, _arg:bool) -> None: ... + def SetMarkFilledPartialArrays(self, _arg:bool) -> None: ... + +class vtkCollectGraph(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + DIRECTED_OUTPUT:int + UNDIRECTED_OUTPUT:int + USE_INPUT_TYPE:int + controller:'getset_descriptor' + output_type:'getset_descriptor' + pass_through:'getset_descriptor' + socket_controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputType(self) -> int: ... + def GetPassThrough(self) -> int: ... + def GetSocketController(self) -> 'vtkSocketController': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCollectGraph': ... + def PassThroughOff(self) -> None: ... + def PassThroughOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCollectGraph': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetOutputType(self, _arg:int) -> None: ... + def SetPassThrough(self, _arg:int) -> None: ... + def SetSocketController(self, __a:'vtkSocketController') -> None: ... + +class vtkCollectPolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + controller:'getset_descriptor' + pass_through:'getset_descriptor' + socket_controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassThrough(self) -> int: ... + def GetSocketController(self) -> 'vtkSocketController': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCollectPolyData': ... + def PassThroughOff(self) -> None: ... + def PassThroughOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCollectPolyData': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetPassThrough(self, _arg:int) -> None: ... + def SetSocketController(self, __a:'vtkSocketController') -> None: ... + +class vtkCollectTable(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + controller:'getset_descriptor' + pass_through:'getset_descriptor' + socket_controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassThrough(self) -> int: ... + def GetSocketController(self) -> 'vtkSocketController': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCollectTable': ... + def PassThroughOff(self) -> None: ... + def PassThroughOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCollectTable': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetPassThrough(self, _arg:int) -> None: ... + def SetSocketController(self, __a:'vtkSocketController') -> None: ... + +class vtkCutMaterial(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + array_name:'getset_descriptor' + center_point:'getset_descriptor' + material:'getset_descriptor' + material_array_name:'getset_descriptor' + maximum_point:'getset_descriptor' + normal:'getset_descriptor' + up_vector:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArrayName(self) -> str: ... + def GetCenterPoint(self) -> Tuple[float, float, float]: ... + def GetMaterial(self) -> int: ... + def GetMaterialArrayName(self) -> str: ... + def GetMaximumPoint(self) -> Tuple[float, float, float]: ... + def GetNormal(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUpVector(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCutMaterial': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCutMaterial': ... + def SetArrayName(self, _arg:str) -> None: ... + def SetMaterial(self, _arg:int) -> None: ... + def SetMaterialArrayName(self, _arg:str) -> None: ... + @overload + def SetUpVector(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetUpVector(self, _arg:Sequence[float]) -> None: ... + +class vtkDistributedDataFilter(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + class BoundaryModes(int): ... + ASSIGN_TO_ALL_INTERSECTING_REGIONS:'BoundaryModes' + ASSIGN_TO_ONE_REGION:'BoundaryModes' + SPLIT_BOUNDARY_CELLS:'BoundaryModes' + boundary_mode:'getset_descriptor' + clip_cells:'getset_descriptor' + controller:'getset_descriptor' + cuts:'getset_descriptor' + include_all_intersecting_cells:'getset_descriptor' + kdtree:'getset_descriptor' + minimum_ghost_level:'getset_descriptor' + retain_kdtree:'getset_descriptor' + timing:'getset_descriptor' + use_minimal_memory:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClipCellsOff(self) -> None: ... + def ClipCellsOn(self) -> None: ... + def GetBoundaryMode(self) -> int: ... + def GetClipCells(self) -> int: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetCuts(self) -> 'vtkBSPCuts': ... + def GetIncludeAllIntersectingCells(self) -> int: ... + def GetKdtree(self) -> 'vtkPKdTree': ... + def GetMinimumGhostLevel(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRetainKdtree(self) -> int: ... + def GetTiming(self) -> int: ... + def GetUseMinimalMemory(self) -> int: ... + def IncludeAllIntersectingCellsOff(self) -> None: ... + def IncludeAllIntersectingCellsOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDistributedDataFilter': ... + def RetainKdtreeOff(self) -> None: ... + def RetainKdtreeOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDistributedDataFilter': ... + def SetBoundaryMode(self, mode:int) -> None: ... + def SetBoundaryModeToAssignToAllIntersectingRegions(self) -> None: ... + def SetBoundaryModeToAssignToOneRegion(self) -> None: ... + def SetBoundaryModeToSplitBoundaryCells(self) -> None: ... + def SetClipCells(self, _arg:int) -> None: ... + def SetController(self, c:'vtkMultiProcessController') -> None: ... + def SetCuts(self, cuts:'vtkBSPCuts') -> None: ... + def SetIncludeAllIntersectingCells(self, _arg:int) -> None: ... + def SetMinimumGhostLevel(self, _arg:int) -> None: ... + def SetRetainKdtree(self, _arg:int) -> None: ... + def SetTiming(self, _arg:int) -> None: ... + def SetUseMinimalMemory(self, _arg:int) -> None: ... + def SetUserRegionAssignments(self, map:Sequence[int], numRegions:int) -> None: ... + def TimingOff(self) -> None: ... + def TimingOn(self) -> None: ... + def UseMinimalMemoryOff(self) -> None: ... + def UseMinimalMemoryOn(self) -> None: ... + +class vtkDuplicatePolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + client_flag:'getset_descriptor' + controller:'getset_descriptor' + memory_size:'getset_descriptor' + socket_controller:'getset_descriptor' + synchronous:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetClientFlag(self) -> int: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetMemorySize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSocketController(self) -> 'vtkSocketController': ... + def GetSynchronous(self) -> int: ... + def InitializeSchedule(self, numProcs:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDuplicatePolyData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDuplicatePolyData': ... + def SetClientFlag(self, _arg:int) -> None: ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetSocketController(self, controller:'vtkSocketController') -> None: ... + def SetSynchronous(self, _arg:int) -> None: ... + def SynchronousOff(self) -> None: ... + def SynchronousOn(self) -> None: ... + +class vtkExtractCTHPart(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + capping:'getset_descriptor' + clip_plane:'getset_descriptor' + controller:'getset_descriptor' + generate_solid_geometry:'getset_descriptor' + generate_triangles:'getset_descriptor' + m_time:'getset_descriptor' + remove_ghost_cells:'getset_descriptor' + volume_fraction_surface_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddVolumeArrayName(self, __a:str) -> None: ... + def CappingOff(self) -> None: ... + def CappingOn(self) -> None: ... + def GenerateSolidGeometryOff(self) -> None: ... + def GenerateSolidGeometryOn(self) -> None: ... + def GenerateTrianglesOff(self) -> None: ... + def GenerateTrianglesOn(self) -> None: ... + def GetCapping(self) -> bool: ... + def GetClipPlane(self) -> 'vtkPlane': ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetGenerateSolidGeometry(self) -> bool: ... + def GetGenerateTriangles(self) -> bool: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfVolumeArrayNames(self) -> int: ... + def GetRemoveGhostCells(self) -> bool: ... + def GetVolumeArrayName(self, idx:int) -> str: ... + def GetVolumeFractionSurfaceValue(self) -> float: ... + def GetVolumeFractionSurfaceValueMaxValue(self) -> float: ... + def GetVolumeFractionSurfaceValueMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractCTHPart': ... + def RemoveGhostCellsOff(self) -> None: ... + def RemoveGhostCellsOn(self) -> None: ... + def RemoveVolumeArrayNames(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractCTHPart': ... + def SetCapping(self, _arg:bool) -> None: ... + def SetClipPlane(self, clipPlane:'vtkPlane') -> None: ... + def SetController(self, controller:'vtkMultiProcessController') -> None: ... + def SetGenerateSolidGeometry(self, _arg:bool) -> None: ... + def SetGenerateTriangles(self, _arg:bool) -> None: ... + def SetRemoveGhostCells(self, _arg:bool) -> None: ... + def SetVolumeFractionSurfaceValue(self, _arg:float) -> None: ... + +class vtkExtractPolyDataPiece(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + create_ghost_cells:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateGhostCellsOff(self) -> None: ... + def CreateGhostCellsOn(self) -> None: ... + def GetCreateGhostCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractPolyDataPiece': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractPolyDataPiece': ... + def SetCreateGhostCells(self, _arg:int) -> None: ... + +class vtkExtractUnstructuredGridPiece(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + create_ghost_cells:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateGhostCellsOff(self) -> None: ... + def CreateGhostCellsOn(self) -> None: ... + def GetCreateGhostCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractUnstructuredGridPiece': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractUnstructuredGridPiece': ... + def SetCreateGhostCells(self, _arg:int) -> None: ... + +class vtkExtractUserDefinedPiece(vtkExtractUnstructuredGridPiece): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractUserDefinedPiece': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractUserDefinedPiece': ... + def SetConstantData(self, data:Pointer, len:int) -> None: ... + +class vtkGenerateProcessIds(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + controller:'getset_descriptor' + generate_cell_data:'getset_descriptor' + generate_point_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateCellDataOff(self) -> None: ... + def GenerateCellDataOn(self) -> None: ... + def GeneratePointDataOff(self) -> None: ... + def GeneratePointDataOn(self) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetGenerateCellData(self) -> bool: ... + def GetGeneratePointData(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenerateProcessIds': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenerateProcessIds': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetGenerateCellData(self, _arg:bool) -> None: ... + def SetGeneratePointData(self, _arg:bool) -> None: ... + +class vtkHyperTreeGridGenerateGlobalIds(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridGenerateGlobalIds': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridGenerateGlobalIds': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkHyperTreeGridGenerateProcessIds(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridGenerateProcessIds': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridGenerateProcessIds': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkHyperTreeGridGhostCellsGenerator(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridGhostCellsGenerator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridGhostCellsGenerator': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkIntegrateAttributes(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + class CommunicationIds(int): ... + IntegrateAttrData:'CommunicationIds' + IntegrateAttrInfo:'CommunicationIds' + controller:'getset_descriptor' + divide_all_cell_data_by_volume:'getset_descriptor' + integration_strategy:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetDivideAllCellDataByVolume(self) -> bool: ... + def GetIntegrationStrategy(self) -> 'vtkIntegrationStrategy': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkIntegrateAttributes': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIntegrateAttributes': ... + def SetController(self, controller:'vtkMultiProcessController') -> None: ... + def SetDivideAllCellDataByVolume(self, _arg:bool) -> None: ... + def SetIntegrationStrategy(self, strategy:'vtkIntegrationStrategy') -> None: ... + +class vtkIntegrationStrategy(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, input:'vtkDataSet') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkIntegrationStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIntegrationStrategy': ... + +class vtkIntegrationGaussianStrategy(vtkIntegrationStrategy): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, input:'vtkDataSet') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkIntegrationGaussianStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIntegrationGaussianStrategy': ... + +class vtkIntegrationLinearStrategy(vtkIntegrationStrategy): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkIntegrationLinearStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIntegrationLinearStrategy': ... + +class vtkMergeBlocks(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + merge_partitions_only:'getset_descriptor' + merge_points:'getset_descriptor' + output_data_set_type:'getset_descriptor' + tolerance:'getset_descriptor' + tolerance_is_absolute:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMergePartitionsOnly(self) -> bool: ... + def GetMergePoints(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputDataSetType(self) -> int: ... + def GetTolerance(self) -> float: ... + def GetToleranceIsAbsolute(self) -> bool: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergePartitionsOnlyOff(self) -> None: ... + def MergePartitionsOnlyOn(self) -> None: ... + def MergePointsOff(self) -> None: ... + def MergePointsOn(self) -> None: ... + def NewInstance(self) -> 'vtkMergeBlocks': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMergeBlocks': ... + def SetMergePartitionsOnly(self, _arg:bool) -> None: ... + def SetMergePoints(self, _arg:bool) -> None: ... + def SetOutputDataSetType(self, _arg:int) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def SetToleranceIsAbsolute(self, _arg:bool) -> None: ... + def ToleranceIsAbsoluteOff(self) -> None: ... + def ToleranceIsAbsoluteOn(self) -> None: ... + +class vtkMultiProcessControllerHelper(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MergePieces(pieces:MutableSequence['vtkDataObject'], result:'vtkDataObject') -> bool: ... + def NewInstance(self) -> 'vtkMultiProcessControllerHelper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMultiProcessControllerHelper': ... + +class vtkPAxisAlignedReflectionFilter(vtkmodules.vtkFiltersGeneral.vtkAxisAlignedReflectionFilter): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPAxisAlignedReflectionFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPAxisAlignedReflectionFilter': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPConvertToMultiBlockDataSet(vtkmodules.vtkFiltersCore.vtkConvertToMultiBlockDataSet): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPConvertToMultiBlockDataSet': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPConvertToMultiBlockDataSet': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPExtractDataArraysOverTime(vtkmodules.vtkFiltersExtraction.vtkExtractDataArraysOverTime): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPExtractDataArraysOverTime': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPExtractDataArraysOverTime': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPExtractExodusGlobalTemporalVariables(vtkmodules.vtkFiltersExtraction.vtkExtractExodusGlobalTemporalVariables): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPExtractExodusGlobalTemporalVariables': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPExtractExodusGlobalTemporalVariables': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPExtractSelectedArraysOverTime(vtkmodules.vtkFiltersExtraction.vtkExtractSelectedArraysOverTime): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPExtractSelectedArraysOverTime': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPExtractSelectedArraysOverTime': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPHyperTreeGridProbeFilter(vtkmodules.vtkFiltersCore.vtkHyperTreeGridProbeFilter): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPHyperTreeGridProbeFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPHyperTreeGridProbeFilter': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPKdTree(vtkmodules.vtkCommonDataModel.vtkKdTree): + controller:'getset_descriptor' + region_assignment:'getset_descriptor' + region_assignment_map:'getset_descriptor' + region_assignment_map_length:'getset_descriptor' + total_number_of_cells:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AssignRegions(self, map:MutableSequence[int], numRegions:int) -> int: ... + def AssignRegionsContiguous(self) -> int: ... + def AssignRegionsRoundRobin(self) -> int: ... + def BuildLocator(self) -> None: ... + def CreateGlobalDataArrayBounds(self) -> int: ... + def CreateProcessCellCountData(self) -> int: ... + def GetAllProcessesBorderingOnPoint(self, x:float, y:float, z:float, list:'vtkIntArray') -> None: ... + @overload + def GetCellArrayGlobalRange(self, name:str, range:MutableSequence[float]) -> int: ... + @overload + def GetCellArrayGlobalRange(self, arrayIndex:int, range:MutableSequence[float]) -> int: ... + @overload + def GetCellListsForProcessRegions(self, ProcessId:int, set:int, inRegionCells:'vtkIdList', onBoundaryCells:'vtkIdList') -> int: ... + @overload + def GetCellListsForProcessRegions(self, ProcessId:int, set:'vtkDataSet', inRegionCells:'vtkIdList', onBoundaryCells:'vtkIdList') -> int: ... + @overload + def GetCellListsForProcessRegions(self, ProcessId:int, inRegionCells:'vtkIdList', onBoundaryCells:'vtkIdList') -> int: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetPointArrayGlobalRange(self, name:str, range:MutableSequence[float]) -> int: ... + @overload + def GetPointArrayGlobalRange(self, arrayIndex:int, range:MutableSequence[float]) -> int: ... + def GetProcessAssignedToRegion(self, regionId:int) -> int: ... + def GetProcessCellCountForRegion(self, processId:int, regionId:int) -> int: ... + def GetProcessListForRegion(self, regionId:int, processes:'vtkIntArray') -> int: ... + def GetProcessesCellCountForRegion(self, regionId:int, count:MutableSequence[int], len:int) -> int: ... + def GetRegionAssignment(self) -> int: ... + def GetRegionAssignmentList(self, procId:int, list:'vtkIntArray') -> int: ... + def GetRegionAssignmentMap(self) -> Pointer: ... + def GetRegionAssignmentMapLength(self) -> int: ... + def GetRegionListForProcess(self, processId:int, regions:'vtkIntArray') -> int: ... + def GetRegionsCellCountForProcess(self, ProcessId:int, count:MutableSequence[int], len:int) -> int: ... + def GetTotalNumberOfCells(self) -> int: ... + def GetTotalProcessesInRegion(self, regionId:int) -> int: ... + def GetTotalRegionsForProcess(self, processId:int) -> int: ... + def HasData(self, processId:int, regionId:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPKdTree': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPKdTree': ... + def SetController(self, c:'vtkMultiProcessController') -> None: ... + def ViewOrderAllProcessesFromPosition(self, cameraPosition:Sequence[float], orderedList:'vtkIntArray') -> int: ... + def ViewOrderAllProcessesInDirection(self, directionOfProjection:Sequence[float], orderedList:'vtkIntArray') -> int: ... + +class vtkPLinearExtrusionFilter(vtkmodules.vtkFiltersModeling.vtkLinearExtrusionFilter): + piece_invariant:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPieceInvariant(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPLinearExtrusionFilter': ... + def PieceInvariantOff(self) -> None: ... + def PieceInvariantOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPLinearExtrusionFilter': ... + def SetPieceInvariant(self, _arg:int) -> None: ... + +class vtkPMaskPoints(vtkmodules.vtkFiltersCore.vtkMaskPoints): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPMaskPoints': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPMaskPoints': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPMergeArrays(vtkmodules.vtkFiltersGeneral.vtkMergeArrays): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPMergeArrays': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPMergeArrays': ... + +class vtkPOutlineCornerFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + controller:'getset_descriptor' + corner_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetCornerFactor(self) -> float: ... + def GetCornerFactorMaxValue(self) -> float: ... + def GetCornerFactorMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPOutlineCornerFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPOutlineCornerFilter': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetCornerFactor(self, cornerFactor:float) -> None: ... + +class vtkPOutlineFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPOutlineFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPOutlineFilter': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPOutlineFilterInternals(object): + controller:'getset_descriptor' + corner_factor:'getset_descriptor' + is_corner_source:'getset_descriptor' + def __init__(self) -> None: ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetCornerFactor(self, cornerFactor:float) -> None: ... + def SetIsCornerSource(self, value:bool) -> None: ... + +class vtkPPolyDataNormals(vtkmodules.vtkFiltersCore.vtkPolyDataNormals): + piece_invariant:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPieceInvariant(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPPolyDataNormals': ... + def PieceInvariantOff(self) -> None: ... + def PieceInvariantOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPPolyDataNormals': ... + def SetPieceInvariant(self, _arg:int) -> None: ... + +class vtkPProbeFilter(vtkmodules.vtkFiltersCore.vtkCompositeDataProbeFilter): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPProbeFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPProbeFilter': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPProjectSphereFilter(vtkmodules.vtkFiltersGeometry.vtkProjectSphereFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPProjectSphereFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPProjectSphereFilter': ... + +class vtkPReflectionFilter(vtkmodules.vtkFiltersGeneral.vtkReflectionFilter): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPReflectionFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPReflectionFilter': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPResampleFilter(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + controller:'getset_descriptor' + custom_sampling_bounds:'getset_descriptor' + sampling_dimension:'getset_descriptor' + use_input_bounds:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetCustomSamplingBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSamplingDimension(self) -> Tuple[int, int, int]: ... + def GetUseInputBounds(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPResampleFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPResampleFilter': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + @overload + def SetCustomSamplingBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetCustomSamplingBounds(self, _arg:Sequence[float]) -> None: ... + @overload + def SetSamplingDimension(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetSamplingDimension(self, _arg:Sequence[int]) -> None: ... + def SetUseInputBounds(self, _arg:int) -> None: ... + def UseInputBoundsOff(self) -> None: ... + def UseInputBoundsOn(self) -> None: ... + +class vtkPSphereSource(vtkmodules.vtkFiltersSources.vtkSphereSource): + estimated_memory_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetEstimatedMemorySize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPSphereSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPSphereSource': ... + +class vtkPTextureMapToSphere(vtkmodules.vtkFiltersTexture.vtkTextureMapToSphere): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPTextureMapToSphere': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPTextureMapToSphere': ... + +class vtkPYoungsMaterialInterface(vtkmodules.vtkFiltersGeneral.vtkYoungsMaterialInterface): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Aggregate(self, __a:int, __b:MutableSequence[int]) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPYoungsMaterialInterface': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPYoungsMaterialInterface': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPartitionBalancer(vtkmodules.vtkCommonExecutionModel.vtkPartitionedDataSetAlgorithm): + class Mode(int): ... + Expand:'Mode' + Squash:'Mode' + controller:'getset_descriptor' + mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetMode(self) -> int: ... + def GetModeMaxValue(self) -> int: ... + def GetModeMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPartitionBalancer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPartitionBalancer': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetMode(self, _arg:int) -> None: ... + def SetModeToExpand(self) -> None: ... + def SetModeToSquash(self) -> None: ... + +class vtkPieceRequestFilter(vtkmodules.vtkCommonExecutionModel.vtkAlgorithm): + input_data:'getset_descriptor' + number_of_pieces_max_value:'getset_descriptor' + number_of_pieces_min_value:'getset_descriptor' + output:'getset_descriptor' + piece:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPieces(self) -> int: ... + def GetNumberOfPiecesMaxValue(self) -> int: ... + def GetNumberOfPiecesMinValue(self) -> int: ... + @overload + def GetOutput(self) -> 'vtkDataObject': ... + @overload + def GetOutput(self, __a:int) -> 'vtkDataObject': ... + def GetPiece(self) -> int: ... + def GetPieceMaxValue(self) -> int: ... + def GetPieceMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPieceRequestFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPieceRequestFilter': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def SetNumberOfPieces(self, _arg:int) -> None: ... + def SetPiece(self, _arg:int) -> None: ... + +class vtkPieceScalars(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + random_mode:'getset_descriptor' + scalar_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRandomMode(self) -> int: ... + def GetScalarMode(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPieceScalars': ... + def RandomModeOff(self) -> None: ... + def RandomModeOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPieceScalars': ... + def SetRandomMode(self, _arg:int) -> None: ... + def SetScalarModeToCellData(self) -> None: ... + def SetScalarModeToPointData(self) -> None: ... + +class vtkPipelineSize(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetEstimatedSize(self, input:'vtkAlgorithm', inputPort:int, connection:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSubPieces(self, memoryLimit:int, mapper:'vtkAlgorithm', piece:int, numPieces:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPipelineSize': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPipelineSize': ... + +class vtkRectilinearGridOutlineFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRectilinearGridOutlineFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRectilinearGridOutlineFilter': ... + +class vtkRemoveGhosts(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRemoveGhosts': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRemoveGhosts': ... + +class vtkTransmitPolyDataPiece(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + controller:'getset_descriptor' + create_ghost_cells:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateGhostCellsOff(self) -> None: ... + def CreateGhostCellsOn(self) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetCreateGhostCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTransmitPolyDataPiece': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransmitPolyDataPiece': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetCreateGhostCells(self, _arg:int) -> None: ... + +class vtkTransmitStructuredDataPiece(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + controller:'getset_descriptor' + create_ghost_cells:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateGhostCellsOff(self) -> None: ... + def CreateGhostCellsOn(self) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetCreateGhostCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTransmitStructuredDataPiece': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransmitStructuredDataPiece': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetCreateGhostCells(self, _arg:int) -> None: ... + +class vtkTransmitRectilinearGridPiece(vtkTransmitStructuredDataPiece): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTransmitRectilinearGridPiece': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransmitRectilinearGridPiece': ... + +class vtkTransmitStructuredGridPiece(vtkTransmitStructuredDataPiece): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTransmitStructuredGridPiece': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransmitStructuredGridPiece': ... + +class vtkTransmitUnstructuredGridPiece(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + controller:'getset_descriptor' + create_ghost_cells:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateGhostCellsOff(self) -> None: ... + def CreateGhostCellsOn(self) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetCreateGhostCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTransmitUnstructuredGridPiece': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransmitUnstructuredGridPiece': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetCreateGhostCells(self, _arg:int) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallelDIY2.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallelDIY2.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..932af9d Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallelDIY2.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallelDIY2.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallelDIY2.pyi new file mode 100644 index 0000000..586a640 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallelDIY2.pyi @@ -0,0 +1,404 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkFiltersCore + +class vtkAdaptiveResampleToImage(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + controller:'getset_descriptor' + number_of_images:'getset_descriptor' + number_of_images_max_value:'getset_descriptor' + number_of_images_min_value:'getset_descriptor' + sampling_dimensions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfImages(self) -> int: ... + def GetNumberOfImagesMaxValue(self) -> int: ... + def GetNumberOfImagesMinValue(self) -> int: ... + def GetSamplingDimensions(self) -> Tuple[int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAdaptiveResampleToImage': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAdaptiveResampleToImage': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetNumberOfImages(self, _arg:int) -> None: ... + @overload + def SetSamplingDimensions(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetSamplingDimensions(self, _arg:Sequence[int]) -> None: ... + +class vtkExtractSubsetWithSeed(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + LINE_I:int + LINE_J:int + LINE_K:int + PLANE_IJ:int + PLANE_JK:int + PLANE_KI:int + controller:'getset_descriptor' + direction:'getset_descriptor' + seed:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetDirection(self) -> int: ... + def GetDirectionMaxValue(self) -> int: ... + def GetDirectionMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSeed(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractSubsetWithSeed': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractSubsetWithSeed': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetDirection(self, _arg:int) -> None: ... + def SetDirectionToLineI(self) -> None: ... + def SetDirectionToLineJ(self) -> None: ... + def SetDirectionToLineK(self) -> None: ... + def SetDirectionToPlaneIJ(self) -> None: ... + def SetDirectionToPlaneJK(self) -> None: ... + def SetDirectionToPlaneKI(self) -> None: ... + @overload + def SetSeed(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetSeed(self, _arg:Sequence[float]) -> None: ... + +class vtkGenerateGlobalIds(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + controller:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTolerance(self) -> float: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenerateGlobalIds': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenerateGlobalIds': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + +class vtkGhostCellsGenerator(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + build_if_required:'getset_descriptor' + controller:'getset_descriptor' + generate_global_ids:'getset_descriptor' + generate_process_ids:'getset_descriptor' + number_of_ghost_layers:'getset_descriptor' + number_of_ghost_layers_max_value:'getset_descriptor' + number_of_ghost_layers_min_value:'getset_descriptor' + synchronize_only:'getset_descriptor' + use_static_mesh_cache:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildIfRequiredOff(self) -> None: ... + def BuildIfRequiredOn(self) -> None: ... + def GenerateGlobalIdsOff(self) -> None: ... + def GenerateGlobalIdsOn(self) -> None: ... + def GenerateProcessIdsOff(self) -> None: ... + def GenerateProcessIdsOn(self) -> None: ... + def GetBuildIfRequired(self) -> bool: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetGenerateGlobalIds(self) -> bool: ... + def GetGenerateProcessIds(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfGhostLayers(self) -> int: ... + def GetNumberOfGhostLayersMaxValue(self) -> int: ... + def GetNumberOfGhostLayersMinValue(self) -> int: ... + def GetSynchronizeOnly(self) -> bool: ... + def GetUseStaticMeshCache(self) -> bool: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGhostCellsGenerator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGhostCellsGenerator': ... + def SetBuildIfRequired(self, _arg:bool) -> None: ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetGenerateGlobalIds(self, _arg:bool) -> None: ... + def SetGenerateProcessIds(self, _arg:bool) -> None: ... + def SetNumberOfGhostLayers(self, _arg:int) -> None: ... + def SetSynchronizeOnly(self, _arg:bool) -> None: ... + def SetUseStaticMeshCache(self, _arg:bool) -> None: ... + def SynchronizeOnlyOff(self) -> None: ... + def SynchronizeOnlyOn(self) -> None: ... + def UseStaticMeshCacheOff(self) -> None: ... + def UseStaticMeshCacheOn(self) -> None: ... + +class vtkPartitioningStrategy(vtkmodules.vtkCommonCore.vtkObject): + class PartitionedEntity(int): ... + CELLS:'PartitionedEntity' + POINTS:'PartitionedEntity' + controller:'getset_descriptor' + number_of_partitions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPartitions(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPartitioningStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPartitioningStrategy': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetNumberOfPartitions(self, _arg:int) -> None: ... + +class vtkNativePartitioningStrategy(vtkPartitioningStrategy): + expand_explicit_cuts:'getset_descriptor' + load_balance_across_all_blocks:'getset_descriptor' + use_explicit_cuts:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddExplicitCut(self, bbox:'vtkBoundingBox') -> None: ... + @overload + def AddExplicitCut(self, bbox:Sequence[float]) -> None: ... + def ExpandExplicitCutsOff(self) -> None: ... + def ExpandExplicitCutsOn(self) -> None: ... + def GetExpandExplicitCuts(self) -> bool: ... + def GetExplicitCut(self, index:int) -> 'vtkBoundingBox': ... + def GetLoadBalanceAcrossAllBlocks(self) -> bool: ... + def GetNumberOfExplicitCuts(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseExplicitCuts(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LoadBalanceAcrossAllBlocksOff(self) -> None: ... + def LoadBalanceAcrossAllBlocksOn(self) -> None: ... + def NewInstance(self) -> 'vtkNativePartitioningStrategy': ... + def RemoveAllExplicitCuts(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkNativePartitioningStrategy': ... + def SetExpandExplicitCuts(self, _arg:bool) -> None: ... + def SetLoadBalanceAcrossAllBlocks(self, _arg:bool) -> None: ... + def SetUseExplicitCuts(self, _arg:bool) -> None: ... + def UseExplicitCutsOff(self) -> None: ... + def UseExplicitCutsOn(self) -> None: ... + +class vtkOverlappingCellsDetector(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + controller:'getset_descriptor' + number_of_overlaps_per_cell_array_name:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfOverlapsPerCellArrayName(self) -> str: ... + def GetTolerance(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOverlappingCellsDetector': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOverlappingCellsDetector': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetNumberOfOverlapsPerCellArrayName(self, _arg:str) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + +class vtkPResampleToImage(vtkmodules.vtkFiltersCore.vtkResampleToImage): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPResampleToImage': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPResampleToImage': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPResampleWithDataSet(vtkmodules.vtkFiltersCore.vtkResampleWithDataSet): + controller:'getset_descriptor' + use_balanced_partition_for_points_lookup:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseBalancedPartitionForPointsLookup(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPResampleWithDataSet': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPResampleWithDataSet': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetUseBalancedPartitionForPointsLookup(self, _arg:bool) -> None: ... + def UseBalancedPartitionForPointsLookupOff(self) -> None: ... + def UseBalancedPartitionForPointsLookupOn(self) -> None: ... + +class vtkProbeLineFilter(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + class SamplingPatternEnum(int): ... + SAMPLE_LINE_AT_CELL_BOUNDARIES:'SamplingPatternEnum' + SAMPLE_LINE_AT_SEGMENT_CENTERS:'SamplingPatternEnum' + SAMPLE_LINE_UNIFORMLY:'SamplingPatternEnum' + aggregate_as_poly_data:'getset_descriptor' + compute_tolerance:'getset_descriptor' + controller:'getset_descriptor' + line_resolution:'getset_descriptor' + pass_cell_arrays:'getset_descriptor' + pass_field_arrays:'getset_descriptor' + pass_partial_arrays:'getset_descriptor' + pass_point_arrays:'getset_descriptor' + sampling_pattern:'getset_descriptor' + source_connection:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AggregateAsPolyDataOff(self) -> None: ... + def AggregateAsPolyDataOn(self) -> None: ... + def ComputeToleranceOff(self) -> None: ... + def ComputeToleranceOn(self) -> None: ... + def GetAggregateAsPolyData(self) -> bool: ... + def GetComputeTolerance(self) -> bool: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetLineResolution(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassCellArrays(self) -> bool: ... + def GetPassFieldArrays(self) -> bool: ... + def GetPassPartialArrays(self) -> bool: ... + def GetPassPointArrays(self) -> bool: ... + def GetSamplingPattern(self) -> int: ... + def GetSamplingPatternMaxValue(self) -> int: ... + def GetSamplingPatternMinValue(self) -> int: ... + def GetTolerance(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProbeLineFilter': ... + def PassCellArraysOff(self) -> None: ... + def PassCellArraysOn(self) -> None: ... + def PassFieldArraysOff(self) -> None: ... + def PassFieldArraysOn(self) -> None: ... + def PassPartialArraysOff(self) -> None: ... + def PassPartialArraysOn(self) -> None: ... + def PassPointArraysOff(self) -> None: ... + def PassPointArraysOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProbeLineFilter': ... + def SetAggregateAsPolyData(self, _arg:bool) -> None: ... + def SetComputeTolerance(self, _arg:bool) -> None: ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetLineResolution(self, _arg:int) -> None: ... + def SetPassCellArrays(self, _arg:bool) -> None: ... + def SetPassFieldArrays(self, _arg:bool) -> None: ... + def SetPassPartialArrays(self, _arg:bool) -> None: ... + def SetPassPointArrays(self, _arg:bool) -> None: ... + def SetSamplingPattern(self, _arg:int) -> None: ... + def SetSourceConnection(self, input:'vtkAlgorithmOutput') -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + +class vtkRedistributeDataSetFilter(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + class BoundaryModes(int): ... + ASSIGN_TO_ALL_INTERSECTING_REGIONS:'BoundaryModes' + ASSIGN_TO_ONE_REGION:'BoundaryModes' + SPLIT_BOUNDARY_CELLS:'BoundaryModes' + boundary_mode:'getset_descriptor' + controller:'getset_descriptor' + enable_debugging:'getset_descriptor' + expand_explicit_cuts:'getset_descriptor' + generate_global_cell_ids:'getset_descriptor' + load_balance_across_all_blocks:'getset_descriptor' + m_time:'getset_descriptor' + number_of_partitions:'getset_descriptor' + preserve_partitions_in_output:'getset_descriptor' + strategy:'getset_descriptor' + use_explicit_cuts:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddExplicitCut(self, bbox:'vtkBoundingBox') -> None: ... + @overload + def AddExplicitCut(self, bbox:Sequence[float]) -> None: ... + def EnableDebuggingOff(self) -> None: ... + def EnableDebuggingOn(self) -> None: ... + def ExpandExplicitCutsOff(self) -> None: ... + def ExpandExplicitCutsOn(self) -> None: ... + def GenerateGlobalCellIdsOff(self) -> None: ... + def GenerateGlobalCellIdsOn(self) -> None: ... + def GetBoundaryMode(self) -> int: ... + def GetBoundaryModeMaxValue(self) -> int: ... + def GetBoundaryModeMinValue(self) -> int: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetEnableDebugging(self) -> bool: ... + def GetExpandExplicitCuts(self) -> bool: ... + def GetExplicitCut(self, index:int) -> 'vtkBoundingBox': ... + def GetGenerateGlobalCellIds(self) -> bool: ... + def GetLoadBalanceAcrossAllBlocks(self) -> bool: ... + def GetMTime(self) -> int: ... + def GetNumberOfExplicitCuts(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPartitions(self) -> int: ... + def GetPreservePartitionsInOutput(self) -> bool: ... + def GetStrategy(self) -> 'vtkPartitioningStrategy': ... + def GetUseExplicitCuts(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LoadBalanceAcrossAllBlocksOff(self) -> None: ... + def LoadBalanceAcrossAllBlocksOn(self) -> None: ... + def NewInstance(self) -> 'vtkRedistributeDataSetFilter': ... + def PreservePartitionsInOutputOff(self) -> None: ... + def PreservePartitionsInOutputOn(self) -> None: ... + def RemoveAllExplicitCuts(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRedistributeDataSetFilter': ... + def SetBoundaryMode(self, _arg:int) -> None: ... + def SetBoundaryModeToAssignToAllIntersectingRegions(self) -> None: ... + def SetBoundaryModeToAssignToOneRegion(self) -> None: ... + def SetBoundaryModeToSplitBoundaryCells(self) -> None: ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetEnableDebugging(self, _arg:bool) -> None: ... + def SetExpandExplicitCuts(self, __a:bool) -> None: ... + def SetGenerateGlobalCellIds(self, _arg:bool) -> None: ... + def SetLoadBalanceAcrossAllBlocks(self, __a:bool) -> None: ... + def SetNumberOfPartitions(self, __a:int) -> None: ... + def SetPreservePartitionsInOutput(self, _arg:bool) -> None: ... + def SetStrategy(self, __a:'vtkPartitioningStrategy') -> None: ... + def SetUseExplicitCuts(self, __a:bool) -> None: ... + def UseExplicitCutsOff(self) -> None: ... + def UseExplicitCutsOn(self) -> None: ... + +class vtkStitchImageDataWithGhosts(vtkGhostCellsGenerator): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStitchImageDataWithGhosts': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStitchImageDataWithGhosts': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallelImaging.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallelImaging.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..0210e18 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallelImaging.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallelImaging.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallelImaging.pyi new file mode 100644 index 0000000..aa8b1b5 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallelImaging.pyi @@ -0,0 +1,98 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkFiltersImaging +import vtkmodules.vtkFiltersParallel +import vtkmodules.vtkImagingCore + +class vtkExtractPiece(vtkmodules.vtkCommonExecutionModel.vtkCompositeDataSetAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractPiece': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractPiece': ... + +class vtkMemoryLimitImageDataStreamer(vtkmodules.vtkImagingCore.vtkImageDataStreamer): + memory_limit:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMemoryLimit(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMemoryLimitImageDataStreamer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMemoryLimitImageDataStreamer': ... + def SetMemoryLimit(self, _arg:int) -> None: ... + +class vtkPComputeHistogram2DOutliers(vtkmodules.vtkFiltersImaging.vtkComputeHistogram2DOutliers): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPComputeHistogram2DOutliers': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPComputeHistogram2DOutliers': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPExtractHistogram2D(vtkmodules.vtkFiltersImaging.vtkExtractHistogram2D): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPExtractHistogram2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPExtractHistogram2D': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPPairwiseExtractHistogram2D(vtkmodules.vtkFiltersImaging.vtkPairwiseExtractHistogram2D): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPPairwiseExtractHistogram2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPPairwiseExtractHistogram2D': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkTransmitImageDataPiece(vtkmodules.vtkFiltersParallel.vtkTransmitStructuredDataPiece): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTransmitImageDataPiece': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransmitImageDataPiece': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallelStatistics.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallelStatistics.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..63c5cb4 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallelStatistics.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallelStatistics.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallelStatistics.pyi new file mode 100644 index 0000000..4d1d754 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersParallelStatistics.pyi @@ -0,0 +1,188 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkFiltersStatistics + +class vtkPAutoCorrelativeStatistics(vtkmodules.vtkFiltersStatistics.vtkAutoCorrelativeStatistics): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Learn(self, inData:'vtkTable', inParameters:'vtkTable', outMeta:'vtkMultiBlockDataSet') -> None: ... + def NewInstance(self) -> 'vtkPAutoCorrelativeStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPAutoCorrelativeStatistics': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def Test(self, __a:'vtkTable', __b:'vtkMultiBlockDataSet', __c:'vtkTable') -> None: ... + +class vtkPBivariateLinearTableThreshold(vtkmodules.vtkFiltersStatistics.vtkBivariateLinearTableThreshold): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPBivariateLinearTableThreshold': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPBivariateLinearTableThreshold': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPComputeQuantiles(vtkmodules.vtkFiltersStatistics.vtkComputeQuantiles): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPComputeQuantiles': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPComputeQuantiles': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPComputeQuartiles(vtkmodules.vtkFiltersStatistics.vtkComputeQuartiles): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPComputeQuartiles': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPComputeQuartiles': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPContingencyStatistics(vtkmodules.vtkFiltersStatistics.vtkContingencyStatistics): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Learn(self, __a:'vtkTable', __b:'vtkTable', __c:'vtkMultiBlockDataSet') -> None: ... + def NewInstance(self) -> 'vtkPContingencyStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPContingencyStatistics': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPCorrelativeStatistics(vtkmodules.vtkFiltersStatistics.vtkCorrelativeStatistics): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Learn(self, inData:'vtkTable', inParameters:'vtkTable', outMeta:'vtkMultiBlockDataSet') -> None: ... + def NewInstance(self) -> 'vtkPCorrelativeStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPCorrelativeStatistics': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def Test(self, __a:'vtkTable', __b:'vtkMultiBlockDataSet', __c:'vtkTable') -> None: ... + +class vtkPDescriptiveStatistics(vtkmodules.vtkFiltersStatistics.vtkDescriptiveStatistics): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Learn(self, inData:'vtkTable', inParameters:'vtkTable', outMeta:'vtkMultiBlockDataSet') -> None: ... + def NewInstance(self) -> 'vtkPDescriptiveStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPDescriptiveStatistics': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPKMeansStatistics(vtkmodules.vtkFiltersStatistics.vtkKMeansStatistics): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateInitialClusterCenters(self, numToAllocate:int, numberOfClusters:'vtkIdTypeArray', inData:'vtkTable', curClusterElements:'vtkTable', newClusterElements:'vtkTable') -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTotalNumberOfObservations(self, numObservations:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPKMeansStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPKMeansStatistics': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def UpdateClusterCenters(self, newClusterElements:'vtkTable', curClusterElements:'vtkTable', numMembershipChanges:'vtkIdTypeArray', numElementsInCluster:'vtkIdTypeArray', error:'vtkDoubleArray', startRunID:'vtkIdTypeArray', endRunID:'vtkIdTypeArray', computeRun:'vtkIntArray') -> None: ... + +class vtkPMultiCorrelativeStatistics(vtkmodules.vtkFiltersStatistics.vtkMultiCorrelativeStatistics): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def GatherStatistics(curController:'vtkMultiProcessController', sparseCov:'vtkTable') -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPMultiCorrelativeStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPMultiCorrelativeStatistics': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPOrderStatistics(vtkmodules.vtkFiltersStatistics.vtkOrderStatistics): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Learn(self, __a:'vtkTable', __b:'vtkTable', __c:'vtkMultiBlockDataSet') -> None: ... + def NewInstance(self) -> 'vtkPOrderStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPOrderStatistics': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + +class vtkPPCAStatistics(vtkmodules.vtkFiltersStatistics.vtkPCAStatistics): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPPCAStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPPCAStatistics': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersPoints.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersPoints.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..be3a19a Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersPoints.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersPoints.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersPoints.pyi new file mode 100644 index 0000000..bd7bf00 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersPoints.pyi @@ -0,0 +1,1535 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +VTK_DENSITY_ESTIMATE_FIXED_RADIUS:int +VTK_DENSITY_ESTIMATE_RELATIVE_RADIUS:int +VTK_DENSITY_FORM_NPTS:int +VTK_DENSITY_FORM_VOLUME_NORM:int +VTK_EXTRACT_ALL_CLUSTERS:int +VTK_EXTRACT_ALL_REGIONS:int +VTK_EXTRACT_CLOSEST_POINT_CLUSTER:int +VTK_EXTRACT_CLOSEST_POINT_REGION:int +VTK_EXTRACT_LARGEST_CLUSTER:int +VTK_EXTRACT_LARGEST_REGION:int +VTK_EXTRACT_POINT_SEEDED_CLUSTERS:int +VTK_EXTRACT_POINT_SEEDED_REGIONS:int +VTK_EXTRACT_SPECIFIED_CLUSTERS:int +VTK_EXTRACT_SPECIFIED_REGIONS:int +VTK_MAX_LEVEL:int + +class vtkBoundedPointSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + bounds:'getset_descriptor' + number_of_points:'getset_descriptor' + number_of_points_max_value:'getset_descriptor' + number_of_points_min_value:'getset_descriptor' + output_points_precision:'getset_descriptor' + produce_cell_output:'getset_descriptor' + produce_random_scalars:'getset_descriptor' + scalar_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def GetNumberOfPointsMaxValue(self) -> int: ... + def GetNumberOfPointsMinValue(self) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetProduceCellOutput(self) -> bool: ... + def GetProduceRandomScalars(self) -> bool: ... + def GetScalarRange(self) -> Tuple[float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBoundedPointSource': ... + def ProduceCellOutputOff(self) -> None: ... + def ProduceCellOutputOn(self) -> None: ... + def ProduceRandomScalarsOff(self) -> None: ... + def ProduceRandomScalarsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBoundedPointSource': ... + @overload + def SetBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetBounds(self, _arg:Sequence[float]) -> None: ... + def SetNumberOfPoints(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetProduceCellOutput(self, _arg:bool) -> None: ... + def SetProduceRandomScalars(self, _arg:bool) -> None: ... + @overload + def SetScalarRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetScalarRange(self, _arg:Sequence[float]) -> None: ... + +class vtkConnectedPointsFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + aligned_normals:'getset_descriptor' + closest_point:'getset_descriptor' + extraction_mode:'getset_descriptor' + locator:'getset_descriptor' + normal_angle:'getset_descriptor' + number_of_extracted_regions:'getset_descriptor' + radius:'getset_descriptor' + scalar_connectivity:'getset_descriptor' + scalar_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddSeed(self, id:int) -> None: ... + def AddSpecifiedRegion(self, id:int) -> None: ... + def AlignedNormalsOff(self) -> None: ... + def AlignedNormalsOn(self) -> None: ... + def DeleteSeed(self, id:int) -> None: ... + def DeleteSpecifiedRegion(self, id:int) -> None: ... + def GetAlignedNormals(self) -> int: ... + def GetClosestPoint(self) -> Tuple[float, float, float]: ... + def GetExtractionMode(self) -> int: ... + def GetExtractionModeAsString(self) -> str: ... + def GetExtractionModeMaxValue(self) -> int: ... + def GetExtractionModeMinValue(self) -> int: ... + def GetLocator(self) -> 'vtkAbstractPointLocator': ... + def GetNormalAngle(self) -> float: ... + def GetNormalAngleMaxValue(self) -> float: ... + def GetNormalAngleMinValue(self) -> float: ... + def GetNumberOfExtractedRegions(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def GetScalarConnectivity(self) -> int: ... + def GetScalarRange(self) -> Tuple[float, float]: ... + def InitializeSeedList(self) -> None: ... + def InitializeSpecifiedRegionList(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkConnectedPointsFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConnectedPointsFilter': ... + def ScalarConnectivityOff(self) -> None: ... + def ScalarConnectivityOn(self) -> None: ... + def SetAlignedNormals(self, _arg:int) -> None: ... + @overload + def SetClosestPoint(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetClosestPoint(self, _arg:Sequence[float]) -> None: ... + def SetExtractionMode(self, _arg:int) -> None: ... + def SetExtractionModeToAllRegions(self) -> None: ... + def SetExtractionModeToClosestPointRegion(self) -> None: ... + def SetExtractionModeToLargestRegion(self) -> None: ... + def SetExtractionModeToPointSeededRegions(self) -> None: ... + def SetExtractionModeToSpecifiedRegions(self) -> None: ... + def SetLocator(self, locator:'vtkAbstractPointLocator') -> None: ... + def SetNormalAngle(self, _arg:float) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + def SetScalarConnectivity(self, _arg:int) -> None: ... + @overload + def SetScalarRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetScalarRange(self, _arg:Sequence[float]) -> None: ... + +class vtkConvertToPointCloud(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class CellGeneration(int): ... + NO_CELLS:'CellGeneration' + POLYVERTEX_CELL:'CellGeneration' + VERTEX_CELLS:'CellGeneration' + cell_generation_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellGenerationMode(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkConvertToPointCloud': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConvertToPointCloud': ... + def SetCellGenerationMode(self, _arg:int) -> None: ... + +class vtkDensifyPointCloudFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class NeighborhoodType(int): ... + N_CLOSEST:'NeighborhoodType' + RADIUS:'NeighborhoodType' + interpolate_attribute_data:'getset_descriptor' + maximum_number_of_iterations:'getset_descriptor' + maximum_number_of_points:'getset_descriptor' + neighborhood_type:'getset_descriptor' + number_of_closest_points:'getset_descriptor' + number_of_closest_points_max_value:'getset_descriptor' + number_of_closest_points_min_value:'getset_descriptor' + radius:'getset_descriptor' + target_distance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInterpolateAttributeData(self) -> bool: ... + def GetMaximumNumberOfIterations(self) -> int: ... + def GetMaximumNumberOfIterationsMaxValue(self) -> int: ... + def GetMaximumNumberOfIterationsMinValue(self) -> int: ... + def GetMaximumNumberOfPoints(self) -> int: ... + def GetMaximumNumberOfPointsMaxValue(self) -> int: ... + def GetMaximumNumberOfPointsMinValue(self) -> int: ... + def GetNeighborhoodType(self) -> int: ... + def GetNumberOfClosestPoints(self) -> int: ... + def GetNumberOfClosestPointsMaxValue(self) -> int: ... + def GetNumberOfClosestPointsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def GetTargetDistance(self) -> float: ... + def GetTargetDistanceMaxValue(self) -> float: ... + def GetTargetDistanceMinValue(self) -> float: ... + def InterpolateAttributeDataOff(self) -> None: ... + def InterpolateAttributeDataOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDensifyPointCloudFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDensifyPointCloudFilter': ... + def SetInterpolateAttributeData(self, _arg:bool) -> None: ... + def SetMaximumNumberOfIterations(self, _arg:int) -> None: ... + def SetMaximumNumberOfPoints(self, _arg:int) -> None: ... + def SetNeighborhoodType(self, _arg:int) -> None: ... + def SetNeighborhoodTypeToNClosest(self) -> None: ... + def SetNeighborhoodTypeToRadius(self) -> None: ... + def SetNumberOfClosestPoints(self, _arg:int) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + def SetTargetDistance(self, _arg:float) -> None: ... + +class vtkInterpolationKernel(vtkmodules.vtkCommonCore.vtkObject): + requires_initialization:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeBasis(self, x:MutableSequence[float], pIds:'vtkIdList', ptId:int=0) -> int: ... + def ComputeWeights(self, x:MutableSequence[float], pIds:'vtkIdList', weights:'vtkDoubleArray') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRequiresInitialization(self) -> bool: ... + def Initialize(self, loc:'vtkAbstractPointLocator', ds:'vtkDataSet', pd:'vtkPointData') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInterpolationKernel': ... + def RequiresInitializationOff(self) -> None: ... + def RequiresInitializationOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInterpolationKernel': ... + def SetRequiresInitialization(self, _arg:bool) -> None: ... + +class vtkGeneralizedKernel(vtkInterpolationKernel): + class KernelStyle(int): ... + N_CLOSEST:'KernelStyle' + RADIUS:'KernelStyle' + kernel_footprint:'getset_descriptor' + normalize_weights:'getset_descriptor' + number_of_points:'getset_descriptor' + number_of_points_max_value:'getset_descriptor' + number_of_points_min_value:'getset_descriptor' + radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeBasis(self, x:MutableSequence[float], pIds:'vtkIdList', ptId:int=0) -> int: ... + @overload + def ComputeWeights(self, x:MutableSequence[float], pIds:'vtkIdList', prob:'vtkDoubleArray', weights:'vtkDoubleArray') -> int: ... + @overload + def ComputeWeights(self, x:MutableSequence[float], pIds:'vtkIdList', weights:'vtkDoubleArray') -> int: ... + def GetKernelFootprint(self) -> int: ... + def GetNormalizeWeights(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def GetNumberOfPointsMaxValue(self) -> int: ... + def GetNumberOfPointsMinValue(self) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGeneralizedKernel': ... + def NormalizeWeightsOff(self) -> None: ... + def NormalizeWeightsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGeneralizedKernel': ... + def SetKernelFootprint(self, _arg:int) -> None: ... + def SetKernelFootprintToNClosest(self) -> None: ... + def SetKernelFootprintToRadius(self) -> None: ... + def SetNormalizeWeights(self, _arg:bool) -> None: ... + def SetNumberOfPoints(self, _arg:int) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + +class vtkEllipsoidalGaussianKernel(vtkGeneralizedKernel): + eccentricity:'getset_descriptor' + normals_array_name:'getset_descriptor' + scalars_array_name:'getset_descriptor' + scale_factor:'getset_descriptor' + sharpness:'getset_descriptor' + use_normals:'getset_descriptor' + use_scalars:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ComputeWeights(self, x:MutableSequence[float], pIds:'vtkIdList', prob:'vtkDoubleArray', weights:'vtkDoubleArray') -> int: ... + @overload + def ComputeWeights(self, x:MutableSequence[float], pIds:'vtkIdList', weights:'vtkDoubleArray') -> int: ... + def GetEccentricity(self) -> float: ... + def GetEccentricityMaxValue(self) -> float: ... + def GetEccentricityMinValue(self) -> float: ... + def GetNormalsArrayName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScalarsArrayName(self) -> str: ... + def GetScaleFactor(self) -> float: ... + def GetScaleFactorMaxValue(self) -> float: ... + def GetScaleFactorMinValue(self) -> float: ... + def GetSharpness(self) -> float: ... + def GetSharpnessMaxValue(self) -> float: ... + def GetSharpnessMinValue(self) -> float: ... + def GetUseNormals(self) -> bool: ... + def GetUseScalars(self) -> bool: ... + def Initialize(self, loc:'vtkAbstractPointLocator', ds:'vtkDataSet', pd:'vtkPointData') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEllipsoidalGaussianKernel': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEllipsoidalGaussianKernel': ... + def SetEccentricity(self, _arg:float) -> None: ... + def SetNormalsArrayName(self, _arg:str) -> None: ... + def SetScalarsArrayName(self, _arg:str) -> None: ... + def SetScaleFactor(self, _arg:float) -> None: ... + def SetSharpness(self, _arg:float) -> None: ... + def SetUseNormals(self, _arg:bool) -> None: ... + def SetUseScalars(self, _arg:bool) -> None: ... + def UseNormalsOff(self) -> None: ... + def UseNormalsOn(self) -> None: ... + def UseScalarsOff(self) -> None: ... + def UseScalarsOn(self) -> None: ... + +class vtkEuclideanClusterExtraction(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + closest_point:'getset_descriptor' + color_clusters:'getset_descriptor' + extraction_mode:'getset_descriptor' + locator:'getset_descriptor' + number_of_extracted_clusters:'getset_descriptor' + radius:'getset_descriptor' + scalar_connectivity:'getset_descriptor' + scalar_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddSeed(self, id:int) -> None: ... + def AddSpecifiedCluster(self, id:int) -> None: ... + def ColorClustersOff(self) -> None: ... + def ColorClustersOn(self) -> None: ... + def DeleteSeed(self, id:int) -> None: ... + def DeleteSpecifiedCluster(self, id:int) -> None: ... + def GetClosestPoint(self) -> Tuple[float, float, float]: ... + def GetColorClusters(self) -> bool: ... + def GetExtractionMode(self) -> int: ... + def GetExtractionModeAsString(self) -> str: ... + def GetExtractionModeMaxValue(self) -> int: ... + def GetExtractionModeMinValue(self) -> int: ... + def GetLocator(self) -> 'vtkAbstractPointLocator': ... + def GetNumberOfExtractedClusters(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def GetScalarConnectivity(self) -> bool: ... + def GetScalarRange(self) -> Tuple[float, float]: ... + def InitializeSeedList(self) -> None: ... + def InitializeSpecifiedClusterList(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEuclideanClusterExtraction': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEuclideanClusterExtraction': ... + def ScalarConnectivityOff(self) -> None: ... + def ScalarConnectivityOn(self) -> None: ... + @overload + def SetClosestPoint(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetClosestPoint(self, _arg:Sequence[float]) -> None: ... + def SetColorClusters(self, _arg:bool) -> None: ... + def SetExtractionMode(self, _arg:int) -> None: ... + def SetExtractionModeToAllClusters(self) -> None: ... + def SetExtractionModeToClosestPointCluster(self) -> None: ... + def SetExtractionModeToLargestCluster(self) -> None: ... + def SetExtractionModeToPointSeededClusters(self) -> None: ... + def SetExtractionModeToSpecifiedClusters(self) -> None: ... + def SetLocator(self, locator:'vtkAbstractPointLocator') -> None: ... + def SetRadius(self, _arg:float) -> None: ... + def SetScalarConnectivity(self, _arg:bool) -> None: ... + @overload + def SetScalarRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetScalarRange(self, _arg:Sequence[float]) -> None: ... + +class vtkPointCloudFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + generate_outliers:'getset_descriptor' + generate_vertices:'getset_descriptor' + number_of_points_removed:'getset_descriptor' + point_map:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateOutliersOff(self) -> None: ... + def GenerateOutliersOn(self) -> None: ... + def GenerateVerticesOff(self) -> None: ... + def GenerateVerticesOn(self) -> None: ... + def GetGenerateOutliers(self) -> bool: ... + def GetGenerateVertices(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPointsRemoved(self) -> int: ... + def GetPointMap(self) -> Pointer: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointCloudFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointCloudFilter': ... + def SetGenerateOutliers(self, _arg:bool) -> None: ... + def SetGenerateVertices(self, _arg:bool) -> None: ... + +class vtkExtractEnclosedPoints(vtkPointCloudFilter): + check_surface:'getset_descriptor' + surface:'getset_descriptor' + surface_connection:'getset_descriptor' + surface_data:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CheckSurfaceOff(self) -> None: ... + def CheckSurfaceOn(self) -> None: ... + def GetCheckSurface(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetSurface(self) -> 'vtkPolyData': ... + @overload + def GetSurface(self, sourceInfo:'vtkInformationVector') -> 'vtkPolyData': ... + def GetTolerance(self) -> float: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractEnclosedPoints': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractEnclosedPoints': ... + def SetCheckSurface(self, _arg:int) -> None: ... + def SetSurfaceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSurfaceData(self, pd:'vtkPolyData') -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + +class vtkExtractHierarchicalBins(vtkPointCloudFilter): + bin:'getset_descriptor' + binning_filter:'getset_descriptor' + level:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBin(self) -> int: ... + def GetBinningFilter(self) -> 'vtkHierarchicalBinningFilter': ... + def GetLevel(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractHierarchicalBins': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractHierarchicalBins': ... + def SetBin(self, _arg:int) -> None: ... + def SetBinningFilter(self, __a:'vtkHierarchicalBinningFilter') -> None: ... + def SetLevel(self, _arg:int) -> None: ... + +class vtkExtractPointCloudPiece(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + modulo_ordering:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetModuloOrdering(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def ModuloOrderingOff(self) -> None: ... + def ModuloOrderingOn(self) -> None: ... + def NewInstance(self) -> 'vtkExtractPointCloudPiece': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractPointCloudPiece': ... + def SetModuloOrdering(self, _arg:bool) -> None: ... + +class vtkExtractPoints(vtkPointCloudFilter): + extract_inside:'getset_descriptor' + implicit_function:'getset_descriptor' + m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExtractInsideOff(self) -> None: ... + def ExtractInsideOn(self) -> None: ... + def GetExtractInside(self) -> bool: ... + def GetImplicitFunction(self) -> 'vtkImplicitFunction': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractPoints': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractPoints': ... + def SetExtractInside(self, _arg:bool) -> None: ... + def SetImplicitFunction(self, __a:'vtkImplicitFunction') -> None: ... + +class vtkExtractSurface(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + compute_gradients:'getset_descriptor' + compute_normals:'getset_descriptor' + hole_filling:'getset_descriptor' + radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeGradientsOff(self) -> None: ... + def ComputeGradientsOn(self) -> None: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def GetComputeGradients(self) -> int: ... + def GetComputeNormals(self) -> int: ... + def GetHoleFilling(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def HoleFillingOff(self) -> None: ... + def HoleFillingOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractSurface': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractSurface': ... + def SetComputeGradients(self, _arg:int) -> None: ... + def SetComputeNormals(self, _arg:int) -> None: ... + def SetHoleFilling(self, _arg:bool) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + +class vtkFitImplicitFunction(vtkPointCloudFilter): + implicit_function:'getset_descriptor' + m_time:'getset_descriptor' + threshold:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetImplicitFunction(self) -> 'vtkImplicitFunction': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetThreshold(self) -> float: ... + def GetThresholdMaxValue(self) -> float: ... + def GetThresholdMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFitImplicitFunction': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFitImplicitFunction': ... + def SetImplicitFunction(self, __a:'vtkImplicitFunction') -> None: ... + def SetThreshold(self, _arg:float) -> None: ... + +class vtkGaussianKernel(vtkGeneralizedKernel): + sharpness:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ComputeWeights(self, x:MutableSequence[float], pIds:'vtkIdList', prob:'vtkDoubleArray', weights:'vtkDoubleArray') -> int: ... + @overload + def ComputeWeights(self, x:MutableSequence[float], pIds:'vtkIdList', weights:'vtkDoubleArray') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSharpness(self) -> float: ... + def GetSharpnessMaxValue(self) -> float: ... + def GetSharpnessMinValue(self) -> float: ... + def Initialize(self, loc:'vtkAbstractPointLocator', ds:'vtkDataSet', pd:'vtkPointData') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGaussianKernel': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGaussianKernel': ... + def SetSharpness(self, _arg:float) -> None: ... + +class vtkHierarchicalBinningFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + automatic:'getset_descriptor' + bounds:'getset_descriptor' + divisions:'getset_descriptor' + number_of_global_bins:'getset_descriptor' + number_of_levels:'getset_descriptor' + number_of_levels_max_value:'getset_descriptor' + number_of_levels_min_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutomaticOff(self) -> None: ... + def AutomaticOn(self) -> None: ... + def GetAutomatic(self) -> bool: ... + def GetBinBounds(self, globalBin:int, bounds:MutableSequence[float]) -> None: ... + def GetBinOffset(self, globalBin:int, npts:int) -> int: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetDivisions(self) -> Tuple[int, int, int]: ... + def GetLevelOffset(self, level:int, npts:int) -> int: ... + def GetLocalBinBounds(self, level:int, localBin:int, bounds:MutableSequence[float]) -> None: ... + def GetLocalBinOffset(self, level:int, localBin:int, npts:int) -> int: ... + def GetNumberOfBins(self, level:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfGlobalBins(self) -> int: ... + def GetNumberOfLevels(self) -> int: ... + def GetNumberOfLevelsMaxValue(self) -> int: ... + def GetNumberOfLevelsMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHierarchicalBinningFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHierarchicalBinningFilter': ... + def SetAutomatic(self, _arg:bool) -> None: ... + @overload + def SetBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetBounds(self, _arg:Sequence[float]) -> None: ... + @overload + def SetDivisions(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetDivisions(self, _arg:Sequence[int]) -> None: ... + def SetNumberOfLevels(self, _arg:int) -> None: ... + +class vtkLinearKernel(vtkGeneralizedKernel): + def __init__(self, **properties:Any) -> None: ... + @overload + def ComputeWeights(self, x:MutableSequence[float], pIds:'vtkIdList', prob:'vtkDoubleArray', weights:'vtkDoubleArray') -> int: ... + @overload + def ComputeWeights(self, x:MutableSequence[float], pIds:'vtkIdList', weights:'vtkDoubleArray') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLinearKernel': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLinearKernel': ... + +class vtkMaskPointsFilter(vtkPointCloudFilter): + empty_value:'getset_descriptor' + mask:'getset_descriptor' + mask_connection:'getset_descriptor' + mask_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetEmptyValue(self) -> int: ... + def GetMask(self) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMaskPointsFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMaskPointsFilter': ... + def SetEmptyValue(self, _arg:int) -> None: ... + def SetMaskConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetMaskData(self, source:'vtkDataObject') -> None: ... + +class vtkPCACurvatureEstimation(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + locator:'getset_descriptor' + sample_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLocator(self) -> 'vtkAbstractPointLocator': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSampleSize(self) -> int: ... + def GetSampleSizeMaxValue(self) -> int: ... + def GetSampleSizeMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPCACurvatureEstimation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPCACurvatureEstimation': ... + def SetLocator(self, locator:'vtkAbstractPointLocator') -> None: ... + def SetSampleSize(self, _arg:int) -> None: ... + +class vtkPCANormalEstimation(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class Style(int): ... + AS_COMPUTED:'Style' + GRAPH_TRAVERSAL:'Style' + KNN:int + POINT:'Style' + RADIUS:int + cell_generation_mode:'getset_descriptor' + flip_normals:'getset_descriptor' + locator:'getset_descriptor' + normal_orientation:'getset_descriptor' + orientation_point:'getset_descriptor' + radius:'getset_descriptor' + sample_size:'getset_descriptor' + search_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FlipNormalsOff(self) -> None: ... + def FlipNormalsOn(self) -> None: ... + def GetCellGenerationMode(self) -> int: ... + def GetFlipNormals(self) -> bool: ... + def GetLocator(self) -> 'vtkAbstractPointLocator': ... + def GetNormalOrientation(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientationPoint(self) -> Tuple[float, float, float]: ... + def GetRadius(self) -> float: ... + def GetSampleSize(self) -> int: ... + def GetSampleSizeMaxValue(self) -> int: ... + def GetSampleSizeMinValue(self) -> int: ... + def GetSearchMode(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPCANormalEstimation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPCANormalEstimation': ... + def SetCellGenerationMode(self, _arg:int) -> None: ... + def SetFlipNormals(self, _arg:bool) -> None: ... + def SetLocator(self, locator:'vtkAbstractPointLocator') -> None: ... + def SetNormalOrientation(self, _arg:int) -> None: ... + def SetNormalOrientationToAsComputed(self) -> None: ... + def SetNormalOrientationToGraphTraversal(self) -> None: ... + def SetNormalOrientationToPoint(self) -> None: ... + @overload + def SetOrientationPoint(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOrientationPoint(self, _arg:Sequence[float]) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + def SetSampleSize(self, _arg:int) -> None: ... + def SetSearchMode(self, _arg:int) -> None: ... + def SetSearchModeToKNN(self) -> None: ... + def SetSearchModeToRadius(self) -> None: ... + +class vtkPointDensityFilter(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + class FunctionClass(int): ... + NON_ZERO:'FunctionClass' + ZERO:'FunctionClass' + adjust_distance:'getset_descriptor' + compute_gradient:'getset_descriptor' + density_estimate:'getset_descriptor' + density_form:'getset_descriptor' + locator:'getset_descriptor' + model_bounds:'getset_descriptor' + radius:'getset_descriptor' + relative_radius:'getset_descriptor' + sample_dimensions:'getset_descriptor' + scalar_weighting:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeGradientOff(self) -> None: ... + def ComputeGradientOn(self) -> None: ... + def GetAdjustDistance(self) -> float: ... + def GetAdjustDistanceMaxValue(self) -> float: ... + def GetAdjustDistanceMinValue(self) -> float: ... + def GetComputeGradient(self) -> bool: ... + def GetDensityEstimate(self) -> int: ... + def GetDensityEstimateAsString(self) -> str: ... + def GetDensityEstimateMaxValue(self) -> int: ... + def GetDensityEstimateMinValue(self) -> int: ... + def GetDensityForm(self) -> int: ... + def GetDensityFormAsString(self) -> str: ... + def GetDensityFormMaxValue(self) -> int: ... + def GetDensityFormMinValue(self) -> int: ... + def GetLocator(self) -> 'vtkAbstractPointLocator': ... + def GetModelBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def GetRelativeRadius(self) -> float: ... + def GetRelativeRadiusMaxValue(self) -> float: ... + def GetRelativeRadiusMinValue(self) -> float: ... + def GetSampleDimensions(self) -> Tuple[int, int, int]: ... + def GetScalarWeighting(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointDensityFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointDensityFilter': ... + def ScalarWeightingOff(self) -> None: ... + def ScalarWeightingOn(self) -> None: ... + def SetAdjustDistance(self, _arg:float) -> None: ... + def SetComputeGradient(self, _arg:bool) -> None: ... + def SetDensityEstimate(self, _arg:int) -> None: ... + def SetDensityEstimateToFixedRadius(self) -> None: ... + def SetDensityEstimateToRelativeRadius(self) -> None: ... + def SetDensityForm(self, _arg:int) -> None: ... + def SetDensityFormToNumberOfPoints(self) -> None: ... + def SetDensityFormToVolumeNormalized(self) -> None: ... + def SetLocator(self, locator:'vtkAbstractPointLocator') -> None: ... + @overload + def SetModelBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetModelBounds(self, _arg:Sequence[float]) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + def SetRelativeRadius(self, _arg:float) -> None: ... + @overload + def SetSampleDimensions(self, i:int, j:int, k:int) -> None: ... + @overload + def SetSampleDimensions(self, dim:MutableSequence[int]) -> None: ... + def SetScalarWeighting(self, _arg:bool) -> None: ... + +class vtkPointInterpolator(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + class Strategy(int): ... + CLOSEST_POINT:'Strategy' + MASK_POINTS:'Strategy' + NULL_VALUE:'Strategy' + kernel:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + null_points_strategy:'getset_descriptor' + null_value:'getset_descriptor' + pass_cell_arrays:'getset_descriptor' + pass_field_arrays:'getset_descriptor' + pass_point_arrays:'getset_descriptor' + promote_output_arrays:'getset_descriptor' + source:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + valid_points_mask_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddExcludedArray(self, excludedArray:str) -> None: ... + def ClearExcludedArrays(self) -> None: ... + def GetExcludedArray(self, i:int) -> str: ... + def GetKernel(self) -> 'vtkInterpolationKernel': ... + def GetLocator(self) -> 'vtkAbstractPointLocator': ... + def GetMTime(self) -> int: ... + def GetNullPointsStrategy(self) -> int: ... + def GetNullValue(self) -> float: ... + def GetNumberOfExcludedArrays(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassCellArrays(self) -> bool: ... + def GetPassFieldArrays(self) -> bool: ... + def GetPassPointArrays(self) -> bool: ... + def GetPromoteOutputArrays(self) -> bool: ... + def GetSource(self) -> 'vtkDataObject': ... + def GetValidPointsMaskArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointInterpolator': ... + def PassCellArraysOff(self) -> None: ... + def PassCellArraysOn(self) -> None: ... + def PassFieldArraysOff(self) -> None: ... + def PassFieldArraysOn(self) -> None: ... + def PassPointArraysOff(self) -> None: ... + def PassPointArraysOn(self) -> None: ... + def PromoteOutputArraysOff(self) -> None: ... + def PromoteOutputArraysOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointInterpolator': ... + def SetKernel(self, kernel:'vtkInterpolationKernel') -> None: ... + def SetLocator(self, locator:'vtkAbstractPointLocator') -> None: ... + def SetNullPointsStrategy(self, _arg:int) -> None: ... + def SetNullPointsStrategyToClosestPoint(self) -> None: ... + def SetNullPointsStrategyToMaskPoints(self) -> None: ... + def SetNullPointsStrategyToNullValue(self) -> None: ... + def SetNullValue(self, _arg:float) -> None: ... + def SetPassCellArrays(self, _arg:bool) -> None: ... + def SetPassFieldArrays(self, _arg:bool) -> None: ... + def SetPassPointArrays(self, _arg:bool) -> None: ... + def SetPromoteOutputArrays(self, _arg:bool) -> None: ... + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, source:'vtkDataObject') -> None: ... + def SetValidPointsMaskArrayName(self, _arg:str) -> None: ... + +class vtkPointInterpolator2D(vtkPointInterpolator): + interpolate_z:'getset_descriptor' + z_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInterpolateZ(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetZArrayName(self) -> str: ... + def InterpolateZOff(self) -> None: ... + def InterpolateZOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointInterpolator2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointInterpolator2D': ... + def SetInterpolateZ(self, _arg:bool) -> None: ... + def SetZArrayName(self, _arg:str) -> None: ... + +class vtkPointOccupancyFilter(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + empty_value:'getset_descriptor' + model_bounds:'getset_descriptor' + occupied_value:'getset_descriptor' + sample_dimensions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetEmptyValue(self) -> int: ... + def GetModelBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOccupiedValue(self) -> int: ... + def GetSampleDimensions(self) -> Tuple[int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointOccupancyFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointOccupancyFilter': ... + def SetEmptyValue(self, _arg:int) -> None: ... + @overload + def SetModelBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetModelBounds(self, _arg:Sequence[float]) -> None: ... + def SetOccupiedValue(self, _arg:int) -> None: ... + @overload + def SetSampleDimensions(self, i:int, j:int, k:int) -> None: ... + @overload + def SetSampleDimensions(self, dim:MutableSequence[int]) -> None: ... + +class vtkPointSmoothingFilter(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + DEFAULT_SMOOTHING:int + FRAME_FIELD_SMOOTHING:int + GEOMETRIC_SMOOTHING:int + PLANE_MOTION:int + SCALAR_SMOOTHING:int + TENSOR_SMOOTHING:int + UNCONSTRAINED_MOTION:int + UNIFORM_SMOOTHING:int + attraction_factor:'getset_descriptor' + boundary_angle:'getset_descriptor' + compute_packing_radius:'getset_descriptor' + convergence:'getset_descriptor' + enable_constraints:'getset_descriptor' + fixed_angle:'getset_descriptor' + frame_field_array:'getset_descriptor' + generate_constraint_normals:'getset_descriptor' + generate_constraint_scalars:'getset_descriptor' + locator:'getset_descriptor' + maximum_step_size:'getset_descriptor' + motion_constraint:'getset_descriptor' + neighborhood_size:'getset_descriptor' + number_of_iterations:'getset_descriptor' + number_of_iterations_max_value:'getset_descriptor' + number_of_iterations_min_value:'getset_descriptor' + number_of_sub_iterations:'getset_descriptor' + number_of_sub_iterations_max_value:'getset_descriptor' + number_of_sub_iterations_min_value:'getset_descriptor' + packing_factor:'getset_descriptor' + packing_radius:'getset_descriptor' + plane:'getset_descriptor' + smoothing_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputePackingRadiusOff(self) -> None: ... + def ComputePackingRadiusOn(self) -> None: ... + def EnableConstraintsOff(self) -> None: ... + def EnableConstraintsOn(self) -> None: ... + def GenerateConstraintNormalsOff(self) -> None: ... + def GenerateConstraintNormalsOn(self) -> None: ... + def GenerateConstraintScalarsOff(self) -> None: ... + def GenerateConstraintScalarsOn(self) -> None: ... + def GetAttractionFactor(self) -> float: ... + def GetAttractionFactorMaxValue(self) -> float: ... + def GetAttractionFactorMinValue(self) -> float: ... + def GetBoundaryAngle(self) -> float: ... + def GetBoundaryAngleMaxValue(self) -> float: ... + def GetBoundaryAngleMinValue(self) -> float: ... + def GetComputePackingRadius(self) -> bool: ... + def GetConvergence(self) -> float: ... + def GetConvergenceMaxValue(self) -> float: ... + def GetConvergenceMinValue(self) -> float: ... + def GetEnableConstraints(self) -> bool: ... + def GetFixedAngle(self) -> float: ... + def GetFixedAngleMaxValue(self) -> float: ... + def GetFixedAngleMinValue(self) -> float: ... + def GetFrameFieldArray(self) -> 'vtkDataArray': ... + def GetGenerateConstraintNormals(self) -> bool: ... + def GetGenerateConstraintScalars(self) -> bool: ... + def GetLocator(self) -> 'vtkAbstractPointLocator': ... + def GetMaximumStepSize(self) -> float: ... + def GetMaximumStepSizeMaxValue(self) -> float: ... + def GetMaximumStepSizeMinValue(self) -> float: ... + def GetMotionConstraint(self) -> int: ... + def GetNeighborhoodSize(self) -> int: ... + def GetNeighborhoodSizeMaxValue(self) -> int: ... + def GetNeighborhoodSizeMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIterations(self) -> int: ... + def GetNumberOfIterationsMaxValue(self) -> int: ... + def GetNumberOfIterationsMinValue(self) -> int: ... + def GetNumberOfSubIterations(self) -> int: ... + def GetNumberOfSubIterationsMaxValue(self) -> int: ... + def GetNumberOfSubIterationsMinValue(self) -> int: ... + def GetPackingFactor(self) -> float: ... + def GetPackingFactorMaxValue(self) -> float: ... + def GetPackingFactorMinValue(self) -> float: ... + def GetPackingRadius(self) -> float: ... + def GetPackingRadiusMaxValue(self) -> float: ... + def GetPackingRadiusMinValue(self) -> float: ... + def GetPlane(self) -> 'vtkPlane': ... + def GetSmoothingMode(self) -> int: ... + def GetSmoothingModeMaxValue(self) -> int: ... + def GetSmoothingModeMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointSmoothingFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointSmoothingFilter': ... + def SetAttractionFactor(self, _arg:float) -> None: ... + def SetBoundaryAngle(self, _arg:float) -> None: ... + def SetComputePackingRadius(self, _arg:bool) -> None: ... + def SetConvergence(self, _arg:float) -> None: ... + def SetEnableConstraints(self, _arg:bool) -> None: ... + def SetFixedAngle(self, _arg:float) -> None: ... + def SetFrameFieldArray(self, __a:'vtkDataArray') -> None: ... + def SetGenerateConstraintNormals(self, _arg:bool) -> None: ... + def SetGenerateConstraintScalars(self, _arg:bool) -> None: ... + def SetLocator(self, locator:'vtkAbstractPointLocator') -> None: ... + def SetMaximumStepSize(self, _arg:float) -> None: ... + def SetMotionConstraint(self, _arg:int) -> None: ... + def SetMotionConstraintToPlane(self) -> None: ... + def SetMotionConstraintToUnconstrained(self) -> None: ... + def SetNeighborhoodSize(self, _arg:int) -> None: ... + def SetNumberOfIterations(self, _arg:int) -> None: ... + def SetNumberOfSubIterations(self, _arg:int) -> None: ... + def SetPackingFactor(self, _arg:float) -> None: ... + def SetPackingRadius(self, _arg:float) -> None: ... + def SetPlane(self, __a:'vtkPlane') -> None: ... + def SetSmoothingMode(self, _arg:int) -> None: ... + def SetSmoothingModeToDefault(self) -> None: ... + def SetSmoothingModeToFrameField(self) -> None: ... + def SetSmoothingModeToGeometric(self) -> None: ... + def SetSmoothingModeToScalars(self) -> None: ... + def SetSmoothingModeToTensors(self) -> None: ... + def SetSmoothingModeToUniform(self) -> None: ... + +class vtkPoissonDiskSampler(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + locator:'getset_descriptor' + radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLocator(self) -> 'vtkAbstractPointLocator': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadius(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPoissonDiskSampler': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPoissonDiskSampler': ... + def SetLocator(self, locator:'vtkAbstractPointLocator') -> None: ... + def SetRadius(self, _arg:float) -> None: ... + +class vtkProbabilisticVoronoiKernel(vtkGeneralizedKernel): + def __init__(self, **properties:Any) -> None: ... + @overload + def ComputeWeights(self, x:MutableSequence[float], pIds:'vtkIdList', prob:'vtkDoubleArray', weights:'vtkDoubleArray') -> int: ... + @overload + def ComputeWeights(self, x:MutableSequence[float], pIds:'vtkIdList', weights:'vtkDoubleArray') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProbabilisticVoronoiKernel': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProbabilisticVoronoiKernel': ... + +class vtkProjectPointsToPlane(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + class PlaneProjectionType(int): ... + BEST_COORDINATE_PLANE:'PlaneProjectionType' + BEST_FIT_PLANE:'PlaneProjectionType' + SPECIFIED_PLANE:'PlaneProjectionType' + X_PLANE:'PlaneProjectionType' + Y_PLANE:'PlaneProjectionType' + Z_PLANE:'PlaneProjectionType' + normal:'getset_descriptor' + origin:'getset_descriptor' + output_points_precision:'getset_descriptor' + projection_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNormal(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetProjectionType(self) -> int: ... + def GetProjectionTypeMaxValue(self) -> int: ... + def GetProjectionTypeMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProjectPointsToPlane': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProjectPointsToPlane': ... + @overload + def SetNormal(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetNormal(self, _arg:Sequence[float]) -> None: ... + @overload + def SetOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOrigin(self, _arg:Sequence[float]) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetProjectionType(self, _arg:int) -> None: ... + def SetProjectionTypeToBestCoordinatePlane(self) -> None: ... + def SetProjectionTypeToBestFitPlane(self) -> None: ... + def SetProjectionTypeToSpecifiedPlane(self) -> None: ... + def SetProjectionTypeToXPlane(self) -> None: ... + def SetProjectionTypeToYPlane(self) -> None: ... + def SetProjectionTypeToZPlane(self) -> None: ... + +class vtkRadiusOutlierRemoval(vtkPointCloudFilter): + locator:'getset_descriptor' + number_of_neighbors:'getset_descriptor' + number_of_neighbors_max_value:'getset_descriptor' + number_of_neighbors_min_value:'getset_descriptor' + radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLocator(self) -> 'vtkAbstractPointLocator': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfNeighbors(self) -> int: ... + def GetNumberOfNeighborsMaxValue(self) -> int: ... + def GetNumberOfNeighborsMinValue(self) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRadiusOutlierRemoval': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRadiusOutlierRemoval': ... + def SetLocator(self, locator:'vtkAbstractPointLocator') -> None: ... + def SetNumberOfNeighbors(self, _arg:int) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + +class vtkSPHKernel(vtkInterpolationKernel): + cutoff_array:'getset_descriptor' + cutoff_factor:'getset_descriptor' + density_array:'getset_descriptor' + dimension:'getset_descriptor' + mass_array:'getset_descriptor' + norm_factor:'getset_descriptor' + spatial_step:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeBasis(self, x:MutableSequence[float], pIds:'vtkIdList', ptId:int=0) -> int: ... + def ComputeDerivWeight(self, d:float) -> float: ... + def ComputeDerivWeights(self, x:MutableSequence[float], pIds:'vtkIdList', weights:'vtkDoubleArray', gradWeights:'vtkDoubleArray') -> int: ... + def ComputeFunctionWeight(self, d:float) -> float: ... + def ComputeWeights(self, x:MutableSequence[float], pIds:'vtkIdList', weights:'vtkDoubleArray') -> int: ... + def GetCutoffArray(self) -> 'vtkDataArray': ... + def GetCutoffFactor(self) -> float: ... + def GetDensityArray(self) -> 'vtkDataArray': ... + def GetDimension(self) -> int: ... + def GetDimensionMaxValue(self) -> int: ... + def GetDimensionMinValue(self) -> int: ... + def GetMassArray(self) -> 'vtkDataArray': ... + def GetNormFactor(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSpatialStep(self) -> float: ... + def GetSpatialStepMaxValue(self) -> float: ... + def GetSpatialStepMinValue(self) -> float: ... + def Initialize(self, loc:'vtkAbstractPointLocator', ds:'vtkDataSet', pd:'vtkPointData') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSPHKernel': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSPHKernel': ... + def SetCutoffArray(self, __a:'vtkDataArray') -> None: ... + def SetDensityArray(self, __a:'vtkDataArray') -> None: ... + def SetDimension(self, _arg:int) -> None: ... + def SetMassArray(self, __a:'vtkDataArray') -> None: ... + def SetSpatialStep(self, _arg:float) -> None: ... + +class vtkSPHCubicKernel(vtkSPHKernel): + def __init__(self, **properties:Any) -> None: ... + def ComputeDerivWeight(self, d:float) -> float: ... + def ComputeFunctionWeight(self, d:float) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, loc:'vtkAbstractPointLocator', ds:'vtkDataSet', pd:'vtkPointData') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSPHCubicKernel': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSPHCubicKernel': ... + +class vtkSPHInterpolator(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + class NullStrategy(int): ... + MASK_POINTS:'NullStrategy' + NULL_VALUE:'NullStrategy' + compute_shepard_sum:'getset_descriptor' + cutoff_array_name:'getset_descriptor' + density_array_name:'getset_descriptor' + kernel:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + mass_array_name:'getset_descriptor' + null_points_strategy:'getset_descriptor' + null_value:'getset_descriptor' + pass_cell_arrays:'getset_descriptor' + pass_field_arrays:'getset_descriptor' + pass_point_arrays:'getset_descriptor' + promote_output_arrays:'getset_descriptor' + shepard_normalization:'getset_descriptor' + shepard_sum_array_name:'getset_descriptor' + source:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + valid_points_mask_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddDerivativeArray(self, derivArray:str) -> None: ... + def AddExcludedArray(self, excludedArray:str) -> None: ... + def ClearDerivativeArrays(self) -> None: ... + def ClearExcludedArrays(self) -> None: ... + def ComputeShepardSumOff(self) -> None: ... + def ComputeShepardSumOn(self) -> None: ... + def GetComputeShepardSum(self) -> int: ... + def GetCutoffArrayName(self) -> str: ... + def GetDensityArrayName(self) -> str: ... + def GetDerivativeArray(self, i:int) -> str: ... + def GetExcludedArray(self, i:int) -> str: ... + def GetKernel(self) -> 'vtkSPHKernel': ... + def GetLocator(self) -> 'vtkAbstractPointLocator': ... + def GetMTime(self) -> int: ... + def GetMassArrayName(self) -> str: ... + def GetNullPointsStrategy(self) -> int: ... + def GetNullValue(self) -> float: ... + def GetNumberOfDerivativeArrays(self) -> int: ... + def GetNumberOfExcludedArrays(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPassCellArrays(self) -> int: ... + def GetPassFieldArrays(self) -> int: ... + def GetPassPointArrays(self) -> int: ... + def GetPromoteOutputArrays(self) -> int: ... + def GetShepardNormalization(self) -> int: ... + def GetShepardSumArrayName(self) -> str: ... + def GetSource(self) -> 'vtkDataObject': ... + def GetValidPointsMaskArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSPHInterpolator': ... + def PassCellArraysOff(self) -> None: ... + def PassCellArraysOn(self) -> None: ... + def PassFieldArraysOff(self) -> None: ... + def PassFieldArraysOn(self) -> None: ... + def PassPointArraysOff(self) -> None: ... + def PassPointArraysOn(self) -> None: ... + def PromoteOutputArraysOff(self) -> None: ... + def PromoteOutputArraysOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSPHInterpolator': ... + def SetComputeShepardSum(self, _arg:int) -> None: ... + def SetCutoffArrayName(self, _arg:str) -> None: ... + def SetDensityArrayName(self, _arg:str) -> None: ... + def SetKernel(self, kernel:'vtkSPHKernel') -> None: ... + def SetLocator(self, locator:'vtkAbstractPointLocator') -> None: ... + def SetMassArrayName(self, _arg:str) -> None: ... + def SetNullPointsStrategy(self, _arg:int) -> None: ... + def SetNullPointsStrategyToMaskPoints(self) -> None: ... + def SetNullPointsStrategyToNullValue(self) -> None: ... + def SetNullValue(self, _arg:float) -> None: ... + def SetPassCellArrays(self, _arg:int) -> None: ... + def SetPassFieldArrays(self, _arg:int) -> None: ... + def SetPassPointArrays(self, _arg:int) -> None: ... + def SetPromoteOutputArrays(self, _arg:int) -> None: ... + def SetShepardNormalization(self, _arg:int) -> None: ... + def SetShepardSumArrayName(self, _arg:str) -> None: ... + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, source:'vtkDataObject') -> None: ... + def SetValidPointsMaskArrayName(self, _arg:str) -> None: ... + def ShepardNormalizationOff(self) -> None: ... + def ShepardNormalizationOn(self) -> None: ... + +class vtkSPHQuarticKernel(vtkSPHKernel): + def __init__(self, **properties:Any) -> None: ... + def ComputeDerivWeight(self, d:float) -> float: ... + def ComputeFunctionWeight(self, d:float) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, loc:'vtkAbstractPointLocator', ds:'vtkDataSet', pd:'vtkPointData') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSPHQuarticKernel': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSPHQuarticKernel': ... + +class vtkSPHQuinticKernel(vtkSPHKernel): + def __init__(self, **properties:Any) -> None: ... + def ComputeDerivWeight(self, d:float) -> float: ... + def ComputeFunctionWeight(self, d:float) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, loc:'vtkAbstractPointLocator', ds:'vtkDataSet', pd:'vtkPointData') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSPHQuinticKernel': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSPHQuinticKernel': ... + +class vtkShepardKernel(vtkGeneralizedKernel): + power_parameter:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ComputeWeights(self, x:MutableSequence[float], pIds:'vtkIdList', prob:'vtkDoubleArray', weights:'vtkDoubleArray') -> int: ... + @overload + def ComputeWeights(self, x:MutableSequence[float], pIds:'vtkIdList', weights:'vtkDoubleArray') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPowerParameter(self) -> float: ... + def GetPowerParameterMaxValue(self) -> float: ... + def GetPowerParameterMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkShepardKernel': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkShepardKernel': ... + def SetPowerParameter(self, _arg:float) -> None: ... + +class vtkSignedDistance(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + bounds:'getset_descriptor' + dimensions:'getset_descriptor' + locator:'getset_descriptor' + radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Append(self, input:'vtkPolyData') -> None: ... + def EndAppend(self) -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetDimensions(self) -> Tuple[int, int, int]: ... + def GetLocator(self) -> 'vtkAbstractPointLocator': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSignedDistance': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSignedDistance': ... + @overload + def SetBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetBounds(self, _arg:Sequence[float]) -> None: ... + @overload + def SetDimensions(self, i:int, j:int, k:int) -> None: ... + @overload + def SetDimensions(self, dim:Sequence[int]) -> None: ... + def SetLocator(self, locator:'vtkAbstractPointLocator') -> None: ... + def SetRadius(self, _arg:float) -> None: ... + def StartAppend(self) -> None: ... + +class vtkStatisticalOutlierRemoval(vtkPointCloudFilter): + computed_mean:'getset_descriptor' + computed_standard_deviation:'getset_descriptor' + locator:'getset_descriptor' + sample_size:'getset_descriptor' + standard_deviation_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetComputedMean(self) -> float: ... + def GetComputedMeanMaxValue(self) -> float: ... + def GetComputedMeanMinValue(self) -> float: ... + def GetComputedStandardDeviation(self) -> float: ... + def GetComputedStandardDeviationMaxValue(self) -> float: ... + def GetComputedStandardDeviationMinValue(self) -> float: ... + def GetLocator(self) -> 'vtkAbstractPointLocator': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSampleSize(self) -> int: ... + def GetSampleSizeMaxValue(self) -> int: ... + def GetSampleSizeMinValue(self) -> int: ... + def GetStandardDeviationFactor(self) -> float: ... + def GetStandardDeviationFactorMaxValue(self) -> float: ... + def GetStandardDeviationFactorMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStatisticalOutlierRemoval': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStatisticalOutlierRemoval': ... + def SetComputedMean(self, _arg:float) -> None: ... + def SetComputedStandardDeviation(self, _arg:float) -> None: ... + def SetLocator(self, locator:'vtkAbstractPointLocator') -> None: ... + def SetSampleSize(self, _arg:int) -> None: ... + def SetStandardDeviationFactor(self, _arg:float) -> None: ... + +class vtkUnsignedDistance(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + adjust_bounds:'getset_descriptor' + adjust_distance:'getset_descriptor' + bounds:'getset_descriptor' + cap_value:'getset_descriptor' + capping:'getset_descriptor' + dimensions:'getset_descriptor' + locator:'getset_descriptor' + output_scalar_type:'getset_descriptor' + radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AdjustBoundsOff(self) -> None: ... + def AdjustBoundsOn(self) -> None: ... + def Append(self, input:'vtkPolyData') -> None: ... + def CappingOff(self) -> None: ... + def CappingOn(self) -> None: ... + def EndAppend(self) -> None: ... + def GetAdjustBounds(self) -> int: ... + def GetAdjustDistance(self) -> float: ... + def GetAdjustDistanceMaxValue(self) -> float: ... + def GetAdjustDistanceMinValue(self) -> float: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetCapValue(self) -> float: ... + def GetCapping(self) -> int: ... + def GetDimensions(self) -> Tuple[int, int, int]: ... + def GetLocator(self) -> 'vtkAbstractPointLocator': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputScalarType(self) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnsignedDistance': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnsignedDistance': ... + def SetAdjustBounds(self, _arg:int) -> None: ... + def SetAdjustDistance(self, _arg:float) -> None: ... + @overload + def SetBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetBounds(self, _arg:Sequence[float]) -> None: ... + def SetCapValue(self, _arg:float) -> None: ... + def SetCapping(self, _arg:int) -> None: ... + @overload + def SetDimensions(self, i:int, j:int, k:int) -> None: ... + @overload + def SetDimensions(self, dim:Sequence[int]) -> None: ... + def SetLocator(self, locator:'vtkAbstractPointLocator') -> None: ... + def SetOutputScalarType(self, _arg:int) -> None: ... + def SetOutputScalarTypeToDouble(self) -> None: ... + def SetOutputScalarTypeToFloat(self) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + def StartAppend(self) -> None: ... + +class vtkVoronoiKernel(vtkInterpolationKernel): + def __init__(self, **properties:Any) -> None: ... + def ComputeBasis(self, x:MutableSequence[float], pIds:'vtkIdList', ptId:int=0) -> int: ... + def ComputeWeights(self, x:MutableSequence[float], pIds:'vtkIdList', weights:'vtkDoubleArray') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVoronoiKernel': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVoronoiKernel': ... + +class vtkVoxelGrid(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class Style(int): ... + AUTOMATIC:'Style' + MANUAL:'Style' + SPECIFY_LEAF_SIZE:'Style' + configuration_style:'getset_descriptor' + divisions:'getset_descriptor' + kernel:'getset_descriptor' + leaf_size:'getset_descriptor' + number_of_points_per_bin:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetConfigurationStyle(self) -> int: ... + def GetDivisions(self) -> Tuple[int, int, int]: ... + def GetKernel(self) -> 'vtkInterpolationKernel': ... + def GetLeafSize(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPointsPerBin(self) -> int: ... + def GetNumberOfPointsPerBinMaxValue(self) -> int: ... + def GetNumberOfPointsPerBinMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVoxelGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVoxelGrid': ... + def SetConfigurationStyle(self, _arg:int) -> None: ... + def SetConfigurationStyleToAutomatic(self) -> None: ... + def SetConfigurationStyleToLeafSize(self) -> None: ... + def SetConfigurationStyleToManual(self) -> None: ... + @overload + def SetDivisions(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetDivisions(self, _arg:Sequence[int]) -> None: ... + def SetKernel(self, kernel:'vtkInterpolationKernel') -> None: ... + @overload + def SetLeafSize(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetLeafSize(self, _arg:Sequence[float]) -> None: ... + def SetNumberOfPointsPerBin(self, _arg:int) -> None: ... + +class vtkWendlandQuinticKernel(vtkSPHKernel): + def __init__(self, **properties:Any) -> None: ... + def ComputeDerivWeight(self, d:float) -> float: ... + def ComputeFunctionWeight(self, d:float) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, loc:'vtkAbstractPointLocator', ds:'vtkDataSet', pd:'vtkPointData') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWendlandQuinticKernel': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWendlandQuinticKernel': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersProgrammable.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersProgrammable.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..cd455be Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersProgrammable.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersProgrammable.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersProgrammable.pyi new file mode 100644 index 0000000..ffa7ac7 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersProgrammable.pyi @@ -0,0 +1,98 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +VTK_COLOR_BY_INPUT:int +VTK_COLOR_BY_SOURCE:int + +class vtkProgrammableAttributeDataFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + input_list:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddInput(self, in_:'vtkDataSet') -> None: ... + def GetInputList(self) -> 'vtkDataSetCollection': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProgrammableAttributeDataFilter': ... + def RemoveInput(self, in_:'vtkDataSet') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProgrammableAttributeDataFilter': ... + def SetExecuteMethod(self, f:Callback) -> None: ... + +class vtkProgrammableFilter(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + copy_arrays:'getset_descriptor' + graph_input:'getset_descriptor' + hyper_tree_grid_input:'getset_descriptor' + molecule_input:'getset_descriptor' + poly_data_input:'getset_descriptor' + rectilinear_grid_input:'getset_descriptor' + structured_grid_input:'getset_descriptor' + structured_points_input:'getset_descriptor' + table_input:'getset_descriptor' + unstructured_grid_input:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CopyArraysOff(self) -> None: ... + def CopyArraysOn(self) -> None: ... + def GetCopyArrays(self) -> bool: ... + def GetGraphInput(self) -> 'vtkGraph': ... + def GetHyperTreeGridInput(self) -> 'vtkHyperTreeGrid': ... + def GetMoleculeInput(self) -> 'vtkMolecule': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPolyDataInput(self) -> 'vtkPolyData': ... + def GetRectilinearGridInput(self) -> 'vtkRectilinearGrid': ... + def GetStructuredGridInput(self) -> 'vtkStructuredGrid': ... + def GetStructuredPointsInput(self) -> 'vtkStructuredPoints': ... + def GetTableInput(self) -> 'vtkTable': ... + def GetUnstructuredGridInput(self) -> 'vtkUnstructuredGrid': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProgrammableFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProgrammableFilter': ... + def SetCopyArrays(self, _arg:bool) -> None: ... + def SetExecuteMethod(self, f:Callback) -> None: ... + +class vtkProgrammableGlyphFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + color_mode:'getset_descriptor' + point:'getset_descriptor' + point_data:'getset_descriptor' + point_id:'getset_descriptor' + source:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetColorMode(self) -> int: ... + def GetColorModeAsString(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoint(self) -> Tuple[float, float, float]: ... + def GetPointData(self) -> 'vtkPointData': ... + def GetPointId(self) -> int: ... + def GetSource(self) -> 'vtkPolyData': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProgrammableGlyphFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProgrammableGlyphFilter': ... + def SetColorMode(self, _arg:int) -> None: ... + def SetColorModeToColorByInput(self) -> None: ... + def SetColorModeToColorBySource(self) -> None: ... + def SetGlyphMethod(self, f:Callback) -> None: ... + def SetSourceConnection(self, output:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, source:'vtkPolyData') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersPython.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersPython.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..bc7d840 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersPython.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersPython.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersPython.pyi new file mode 100644 index 0000000..c552ac4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersPython.pyi @@ -0,0 +1,29 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkPythonAlgorithm(vtkmodules.vtkCommonExecutionModel.vtkAlgorithm): + number_of_input_ports:'getset_descriptor' + number_of_output_ports:'getset_descriptor' + python_object:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPythonAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPythonAlgorithm': ... + def SetNumberOfInputPorts(self, n:int) -> None: ... + def SetNumberOfOutputPorts(self, n:int) -> None: ... + def SetPythonObject(self, obj:'PyObject') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersReduction.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersReduction.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..c69d0e0 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersReduction.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersReduction.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersReduction.pyi new file mode 100644 index 0000000..402b3ea --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersReduction.pyi @@ -0,0 +1,122 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkToImplicitStrategy(vtkmodules.vtkCommonCore.vtkObject): + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClearCache(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTolerance(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkToImplicitStrategy': ... + def Reduce(self, __a:'vtkDataArray') -> 'vtkDataArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkToImplicitStrategy': ... + def SetTolerance(self, _arg:float) -> None: ... + +class vtkToAffineArrayStrategy(vtkToImplicitStrategy): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkToAffineArrayStrategy': ... + def Reduce(self, __a:'vtkDataArray') -> 'vtkDataArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkToAffineArrayStrategy': ... + +class vtkToConstantArrayStrategy(vtkToImplicitStrategy): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkToConstantArrayStrategy': ... + def Reduce(self, __a:'vtkDataArray') -> 'vtkDataArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkToConstantArrayStrategy': ... + +class vtkToImplicitArrayFilter(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + cell_data_array_selection:'getset_descriptor' + edge_data_array_selection:'getset_descriptor' + field_data_array_selection:'getset_descriptor' + max_number_of_degrees_of_freedom:'getset_descriptor' + point_data_array_selection:'getset_descriptor' + points_then_cells_data_array_selection:'getset_descriptor' + row_data_array_selection:'getset_descriptor' + strategy:'getset_descriptor' + target_reduction:'getset_descriptor' + use_max_number_of_degrees_of_freedom:'getset_descriptor' + vertex_data_array_selection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArraySelection(self, association:int) -> 'vtkDataArraySelection': ... + def GetCellDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetEdgeDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetFieldDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetMaxNumberOfDegreesOfFreedom(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetPointsThenCellsDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetRowDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetStrategy(self) -> 'vtkToImplicitStrategy': ... + def GetTargetReduction(self) -> float: ... + def GetUseMaxNumberOfDegreesOfFreedom(self) -> bool: ... + def GetVertexDataArraySelection(self) -> 'vtkDataArraySelection': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkToImplicitArrayFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkToImplicitArrayFilter': ... + def SetMaxNumberOfDegreesOfFreedom(self, _arg:int) -> None: ... + def SetStrategy(self, __a:'vtkToImplicitStrategy') -> None: ... + def SetTargetReduction(self, _arg:float) -> None: ... + def SetUseMaxNumberOfDegreesOfFreedom(self, _arg:bool) -> None: ... + def UseMaxNumberOfDegreesOfFreedomOff(self) -> None: ... + def UseMaxNumberOfDegreesOfFreedomOn(self) -> None: ... + +class vtkToImplicitRamerDouglasPeuckerStrategy(vtkToImplicitStrategy): + def __init__(self, **properties:Any) -> None: ... + def ClearCache(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkToImplicitRamerDouglasPeuckerStrategy': ... + def Reduce(self, __a:'vtkDataArray') -> 'vtkDataArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkToImplicitRamerDouglasPeuckerStrategy': ... + +class vtkToImplicitTypeErasureStrategy(vtkToImplicitStrategy): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkToImplicitTypeErasureStrategy': ... + def Reduce(self, __a:'vtkDataArray') -> 'vtkDataArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkToImplicitTypeErasureStrategy': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersSMP.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersSMP.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..8d3214f Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersSMP.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersSMP.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersSMP.pyi new file mode 100644 index 0000000..f705742 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersSMP.pyi @@ -0,0 +1,51 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonDataModel +import vtkmodules.vtkFiltersCore + +class vtkSMPContourGrid(vtkmodules.vtkFiltersCore.vtkContourGrid): + merge_pieces:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMergePieces(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergePiecesOff(self) -> None: ... + def MergePiecesOn(self) -> None: ... + def NewInstance(self) -> 'vtkSMPContourGrid': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSMPContourGrid': ... + def SetMergePieces(self, _arg:bool) -> None: ... + +class vtkSMPMergePoints(vtkmodules.vtkCommonDataModel.vtkMergePoints): + max_id:'getset_descriptor' + number_of_buckets:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FixSizeOfPointArray(self) -> None: ... + def GetMaxId(self) -> int: ... + def GetNumberOfBuckets(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIdsInBucket(self, idx:int) -> int: ... + def InitializeMerge(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Merge(self, locator:'vtkSMPMergePoints', idx:int, outPd:'vtkPointData', inPd:'vtkPointData', idList:'vtkIdList') -> None: ... + def NewInstance(self) -> 'vtkSMPMergePoints': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSMPMergePoints': ... + +class vtkSMPMergePolyDataHelper(object): ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersSelection.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersSelection.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..f22c562 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersSelection.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersSelection.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersSelection.pyi new file mode 100644 index 0000000..69ccfdf --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersSelection.pyi @@ -0,0 +1,124 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkCellDistanceSelector(vtkmodules.vtkCommonExecutionModel.vtkSelectionAlgorithm): + class InputPorts(int): ... + INPUT_MESH:'InputPorts' + INPUT_SELECTION:'InputPorts' + add_intermediate:'getset_descriptor' + distance:'getset_descriptor' + include_seed:'getset_descriptor' + input_mesh:'getset_descriptor' + input_mesh_connection:'getset_descriptor' + input_selection:'getset_descriptor' + input_selection_connection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddIntermediateOff(self) -> None: ... + def AddIntermediateOn(self) -> None: ... + def GetAddIntermediate(self) -> int: ... + def GetDistance(self) -> int: ... + def GetIncludeSeed(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IncludeSeedOff(self) -> None: ... + def IncludeSeedOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellDistanceSelector': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellDistanceSelector': ... + def SetAddIntermediate(self, _arg:int) -> None: ... + def SetDistance(self, _arg:int) -> None: ... + def SetIncludeSeed(self, _arg:int) -> None: ... + def SetInputMesh(self, obj:'vtkDataObject') -> None: ... + def SetInputMeshConnection(self, in_:'vtkAlgorithmOutput') -> None: ... + def SetInputSelection(self, obj:'vtkSelection') -> None: ... + def SetInputSelectionConnection(self, in_:'vtkAlgorithmOutput') -> None: ... + +class vtkKdTreeSelector(vtkmodules.vtkCommonExecutionModel.vtkSelectionAlgorithm): + kd_tree:'getset_descriptor' + m_time:'getset_descriptor' + selection_attribute:'getset_descriptor' + selection_bounds:'getset_descriptor' + selection_field_name:'getset_descriptor' + single_selection:'getset_descriptor' + single_selection_threshold:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetKdTree(self) -> 'vtkKdTree': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSelectionAttribute(self) -> int: ... + def GetSelectionBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetSelectionFieldName(self) -> str: ... + def GetSingleSelection(self) -> bool: ... + def GetSingleSelectionThreshold(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkKdTreeSelector': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkKdTreeSelector': ... + def SetKdTree(self, tree:'vtkKdTree') -> None: ... + def SetSelectionAttribute(self, _arg:int) -> None: ... + @overload + def SetSelectionBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetSelectionBounds(self, _arg:Sequence[float]) -> None: ... + def SetSelectionFieldName(self, _arg:str) -> None: ... + def SetSingleSelection(self, _arg:bool) -> None: ... + def SetSingleSelectionThreshold(self, _arg:float) -> None: ... + def SingleSelectionOff(self) -> None: ... + def SingleSelectionOn(self) -> None: ... + +class vtkLinearSelector(vtkmodules.vtkCommonExecutionModel.vtkSelectionAlgorithm): + end_point:'getset_descriptor' + include_vertices:'getset_descriptor' + points:'getset_descriptor' + start_point:'getset_descriptor' + tolerance:'getset_descriptor' + vertex_elimination_tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetEndPoint(self) -> Tuple[float, float, float]: ... + def GetIncludeVertices(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoints(self) -> 'vtkPoints': ... + def GetStartPoint(self) -> Tuple[float, float, float]: ... + def GetTolerance(self) -> float: ... + def GetVertexEliminationTolerance(self) -> float: ... + def GetVertexEliminationToleranceMaxValue(self) -> float: ... + def GetVertexEliminationToleranceMinValue(self) -> float: ... + def IncludeVerticesOff(self) -> None: ... + def IncludeVerticesOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLinearSelector': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLinearSelector': ... + @overload + def SetEndPoint(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetEndPoint(self, _arg:Sequence[float]) -> None: ... + def SetIncludeVertices(self, _arg:bool) -> None: ... + def SetPoints(self, __a:'vtkPoints') -> None: ... + @overload + def SetStartPoint(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetStartPoint(self, _arg:Sequence[float]) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def SetVertexEliminationTolerance(self, _arg:float) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersSources.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersSources.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..30c9b1c Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersSources.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersSources.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersSources.pyi new file mode 100644 index 0000000..55b224c --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersSources.pyi @@ -0,0 +1,2069 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +VTK_ARROW_GLYPH:int +VTK_BOX_TYPE_AXIS_ALIGNED:int +VTK_BOX_TYPE_ORIENTED:int +VTK_CIRCLE_GLYPH:int +VTK_CROSS_GLYPH:int +VTK_DASH_GLYPH:int +VTK_DIAMOND_GLYPH:int +VTK_EDGEARROW_GLYPH:int +VTK_HOOKEDARROW_GLYPH:int +VTK_MAX_CIRCLE_RESOLUTION:int +VTK_MAX_SUPERQUADRIC_RESOLUTION:int +VTK_MIN_SUPERQUADRIC_ROUNDNESS:float +VTK_MIN_SUPERQUADRIC_THICKNESS:float +VTK_NO_GLYPH:int +VTK_POINT_EXPONENTIAL:int +VTK_POINT_SHELL:int +VTK_POINT_UNIFORM:int +VTK_SOLID_CUBE:int +VTK_SOLID_DODECAHEDRON:int +VTK_SOLID_ICOSAHEDRON:int +VTK_SOLID_OCTAHEDRON:int +VTK_SOLID_TETRAHEDRON:int +VTK_SQUARE_GLYPH:int +VTK_TEXTURE_STYLE_FIT_IMAGE:int +VTK_TEXTURE_STYLE_PROPORTIONAL:int +VTK_THICKARROW_GLYPH:int +VTK_THICKCROSS_GLYPH:int +VTK_TRIANGLE_GLYPH:int +VTK_VERTEX_GLYPH:int + +class vtkArcSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + angle:'getset_descriptor' + center:'getset_descriptor' + negative:'getset_descriptor' + normal:'getset_descriptor' + output_points_precision:'getset_descriptor' + point1:'getset_descriptor' + point2:'getset_descriptor' + polar_vector:'getset_descriptor' + resolution:'getset_descriptor' + use_normal_and_angle:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAngle(self) -> float: ... + def GetAngleMaxValue(self) -> float: ... + def GetAngleMinValue(self) -> float: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetNegative(self) -> bool: ... + def GetNormal(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPoint1(self) -> Tuple[float, float, float]: ... + def GetPoint2(self) -> Tuple[float, float, float]: ... + def GetPolarVector(self) -> Tuple[float, float, float]: ... + def GetResolution(self) -> int: ... + def GetResolutionMaxValue(self) -> int: ... + def GetResolutionMinValue(self) -> int: ... + def GetUseNormalAndAngle(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NegativeOff(self) -> None: ... + def NegativeOn(self) -> None: ... + def NewInstance(self) -> 'vtkArcSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArcSource': ... + def SetAngle(self, _arg:float) -> None: ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetNegative(self, _arg:bool) -> None: ... + @overload + def SetNormal(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetNormal(self, _arg:Sequence[float]) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + @overload + def SetPoint1(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPoint1(self, _arg:Sequence[float]) -> None: ... + @overload + def SetPoint2(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPoint2(self, _arg:Sequence[float]) -> None: ... + @overload + def SetPolarVector(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPolarVector(self, _arg:Sequence[float]) -> None: ... + def SetResolution(self, _arg:int) -> None: ... + def SetUseNormalAndAngle(self, _arg:bool) -> None: ... + def UseNormalAndAngleOff(self) -> None: ... + def UseNormalAndAngleOn(self) -> None: ... + +class vtkArrowSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class ArrowOrigins(int): + Center:'ArrowOrigins' + Default:'ArrowOrigins' + arrow_origin:'getset_descriptor' + invert:'getset_descriptor' + shaft_radius:'getset_descriptor' + shaft_resolution:'getset_descriptor' + tip_length:'getset_descriptor' + tip_radius:'getset_descriptor' + tip_resolution:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArrowOrigin(self) -> 'ArrowOrigins': ... + def GetArrowOriginAsString(self) -> str: ... + def GetInvert(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShaftRadius(self) -> float: ... + def GetShaftRadiusMaxValue(self) -> float: ... + def GetShaftRadiusMinValue(self) -> float: ... + def GetShaftResolution(self) -> int: ... + def GetShaftResolutionMaxValue(self) -> int: ... + def GetShaftResolutionMinValue(self) -> int: ... + def GetTipLength(self) -> float: ... + def GetTipLengthMaxValue(self) -> float: ... + def GetTipLengthMinValue(self) -> float: ... + def GetTipRadius(self) -> float: ... + def GetTipRadiusMaxValue(self) -> float: ... + def GetTipRadiusMinValue(self) -> float: ... + def GetTipResolution(self) -> int: ... + def GetTipResolutionMaxValue(self) -> int: ... + def GetTipResolutionMinValue(self) -> int: ... + def InvertOff(self) -> None: ... + def InvertOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrowSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrowSource': ... + def SetArrowOrigin(self, _arg:'ArrowOrigins') -> None: ... + def SetArrowOriginToCenter(self) -> None: ... + def SetArrowOriginToDefault(self) -> None: ... + def SetInvert(self, _arg:bool) -> None: ... + def SetShaftRadius(self, _arg:float) -> None: ... + def SetShaftResolution(self, _arg:int) -> None: ... + def SetTipLength(self, _arg:float) -> None: ... + def SetTipRadius(self, _arg:float) -> None: ... + def SetTipResolution(self, _arg:int) -> None: ... + +class vtkButtonSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + center:'getset_descriptor' + shoulder_texture_coordinate:'getset_descriptor' + texture_dimensions:'getset_descriptor' + texture_style:'getset_descriptor' + two_sided:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShoulderTextureCoordinate(self) -> Tuple[float, float]: ... + def GetTextureDimensions(self) -> Tuple[int, int]: ... + def GetTextureStyle(self) -> int: ... + def GetTextureStyleMaxValue(self) -> int: ... + def GetTextureStyleMinValue(self) -> int: ... + def GetTwoSided(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkButtonSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkButtonSource': ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + @overload + def SetShoulderTextureCoordinate(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetShoulderTextureCoordinate(self, _arg:Sequence[float]) -> None: ... + @overload + def SetTextureDimensions(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetTextureDimensions(self, _arg:Sequence[int]) -> None: ... + def SetTextureStyle(self, _arg:int) -> None: ... + def SetTextureStyleToFitImage(self) -> None: ... + def SetTextureStyleToProportional(self) -> None: ... + def SetTwoSided(self, _arg:int) -> None: ... + def TwoSidedOff(self) -> None: ... + def TwoSidedOn(self) -> None: ... + +class vtkCellTypeSource(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + blocks_dimensions:'getset_descriptor' + cell_dimension:'getset_descriptor' + cell_order:'getset_descriptor' + cell_type:'getset_descriptor' + complete_quadratic_simplicial_elements:'getset_descriptor' + output_precision:'getset_descriptor' + polynomial_field_order:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CompleteQuadraticSimplicialElementsOff(self) -> None: ... + def CompleteQuadraticSimplicialElementsOn(self) -> None: ... + def GetBlocksDimensions(self) -> Tuple[int, int, int]: ... + def GetCellDimension(self) -> int: ... + def GetCellOrder(self) -> int: ... + def GetCellType(self) -> int: ... + def GetCompleteQuadraticSimplicialElements(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPrecision(self) -> int: ... + def GetOutputPrecisionMaxValue(self) -> int: ... + def GetOutputPrecisionMinValue(self) -> int: ... + def GetPolynomialFieldOrder(self) -> int: ... + def GetPolynomialFieldOrderMaxValue(self) -> int: ... + def GetPolynomialFieldOrderMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellTypeSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellTypeSource': ... + @overload + def SetBlocksDimensions(self, __a:MutableSequence[int]) -> None: ... + @overload + def SetBlocksDimensions(self, __a:int, __b:int, __c:int) -> None: ... + def SetCellOrder(self, _arg:int) -> None: ... + def SetCellType(self, cellType:int) -> None: ... + def SetCompleteQuadraticSimplicialElements(self, _arg:bool) -> None: ... + def SetOutputPrecision(self, _arg:int) -> None: ... + def SetPolynomialFieldOrder(self, _arg:int) -> None: ... + +class vtkConeSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + angle:'getset_descriptor' + capping:'getset_descriptor' + center:'getset_descriptor' + direction:'getset_descriptor' + height:'getset_descriptor' + output_points_precision:'getset_descriptor' + radius:'getset_descriptor' + resolution:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CappingOff(self) -> None: ... + def CappingOn(self) -> None: ... + def GetAngle(self) -> float: ... + def GetCapping(self) -> int: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetDirection(self) -> Tuple[float, float, float]: ... + def GetHeight(self) -> float: ... + def GetHeightMaxValue(self) -> float: ... + def GetHeightMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def GetResolution(self) -> int: ... + def GetResolutionMaxValue(self) -> int: ... + def GetResolutionMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkConeSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConeSource': ... + def SetAngle(self, angle:float) -> None: ... + def SetCapping(self, _arg:int) -> None: ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + @overload + def SetDirection(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetDirection(self, _arg:Sequence[float]) -> None: ... + def SetHeight(self, _arg:float) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + def SetResolution(self, _arg:int) -> None: ... + +class vtkCubeSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + bounds:'getset_descriptor' + center:'getset_descriptor' + output_points_precision:'getset_descriptor' + x_length:'getset_descriptor' + y_length:'getset_descriptor' + z_length:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetXLength(self) -> float: ... + def GetXLengthMaxValue(self) -> float: ... + def GetXLengthMinValue(self) -> float: ... + def GetYLength(self) -> float: ... + def GetYLengthMaxValue(self) -> float: ... + def GetYLengthMinValue(self) -> float: ... + def GetZLength(self) -> float: ... + def GetZLengthMaxValue(self) -> float: ... + def GetZLengthMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCubeSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCubeSource': ... + @overload + def SetBounds(self, xMin:float, xMax:float, yMin:float, yMax:float, zMin:float, zMax:float) -> None: ... + @overload + def SetBounds(self, bounds:Sequence[float]) -> None: ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetXLength(self, _arg:float) -> None: ... + def SetYLength(self, _arg:float) -> None: ... + def SetZLength(self, _arg:float) -> None: ... + +class vtkCylinderSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + capping:'getset_descriptor' + capsule_cap:'getset_descriptor' + center:'getset_descriptor' + height:'getset_descriptor' + lat_long_tessellation:'getset_descriptor' + output_points_precision:'getset_descriptor' + radius:'getset_descriptor' + resolution:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CappingOff(self) -> None: ... + def CappingOn(self) -> None: ... + def CapsuleCapOff(self) -> None: ... + def CapsuleCapOn(self) -> None: ... + def GetCapping(self) -> int: ... + def GetCapsuleCap(self) -> int: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetHeight(self) -> float: ... + def GetHeightMaxValue(self) -> float: ... + def GetHeightMinValue(self) -> float: ... + def GetLatLongTessellation(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def GetResolution(self) -> int: ... + def GetResolutionMaxValue(self) -> int: ... + def GetResolutionMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LatLongTessellationOff(self) -> None: ... + def LatLongTessellationOn(self) -> None: ... + def NewInstance(self) -> 'vtkCylinderSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCylinderSource': ... + def SetCapping(self, _arg:int) -> None: ... + def SetCapsuleCap(self, _arg:int) -> None: ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetHeight(self, _arg:float) -> None: ... + def SetLatLongTessellation(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + def SetResolution(self, _arg:int) -> None: ... + +class vtkDiagonalMatrixSource(vtkmodules.vtkCommonExecutionModel.vtkArrayDataAlgorithm): + class StorageType(int): ... + DENSE:'StorageType' + SPARSE:'StorageType' + array_type:'getset_descriptor' + column_label:'getset_descriptor' + diagonal:'getset_descriptor' + extents:'getset_descriptor' + row_label:'getset_descriptor' + sub_diagonal:'getset_descriptor' + super_diagonal:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArrayType(self) -> int: ... + def GetColumnLabel(self) -> str: ... + def GetDiagonal(self) -> float: ... + def GetExtents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRowLabel(self) -> str: ... + def GetSubDiagonal(self) -> float: ... + def GetSuperDiagonal(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDiagonalMatrixSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDiagonalMatrixSource': ... + def SetArrayType(self, _arg:int) -> None: ... + def SetColumnLabel(self, _arg:str) -> None: ... + def SetDiagonal(self, _arg:float) -> None: ... + def SetExtents(self, _arg:int) -> None: ... + def SetRowLabel(self, _arg:str) -> None: ... + def SetSubDiagonal(self, _arg:float) -> None: ... + def SetSuperDiagonal(self, _arg:float) -> None: ... + +class vtkDiskSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + center:'getset_descriptor' + circumferential_resolution:'getset_descriptor' + inner_radius:'getset_descriptor' + normal:'getset_descriptor' + outer_radius:'getset_descriptor' + output_points_precision:'getset_descriptor' + radial_resolution:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetCircumferentialResolution(self) -> int: ... + def GetCircumferentialResolutionMaxValue(self) -> int: ... + def GetCircumferentialResolutionMinValue(self) -> int: ... + def GetInnerRadius(self) -> float: ... + def GetInnerRadiusMaxValue(self) -> float: ... + def GetInnerRadiusMinValue(self) -> float: ... + def GetNormal(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOuterRadius(self) -> float: ... + def GetOuterRadiusMaxValue(self) -> float: ... + def GetOuterRadiusMinValue(self) -> float: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetRadialResolution(self) -> int: ... + def GetRadialResolutionMaxValue(self) -> int: ... + def GetRadialResolutionMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDiskSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDiskSource': ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetCircumferentialResolution(self, _arg:int) -> None: ... + def SetInnerRadius(self, _arg:float) -> None: ... + @overload + def SetNormal(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetNormal(self, _arg:Sequence[float]) -> None: ... + def SetOuterRadius(self, _arg:float) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetRadialResolution(self, _arg:int) -> None: ... + +class vtkEllipseArcSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + center:'getset_descriptor' + close:'getset_descriptor' + major_radius_vector:'getset_descriptor' + normal:'getset_descriptor' + output_points_precision:'getset_descriptor' + ratio:'getset_descriptor' + resolution:'getset_descriptor' + segment_angle:'getset_descriptor' + start_angle:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CloseOff(self) -> None: ... + def CloseOn(self) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetClose(self) -> bool: ... + def GetMajorRadiusVector(self) -> Tuple[float, float, float]: ... + def GetNormal(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetRatio(self) -> float: ... + def GetRatioMaxValue(self) -> float: ... + def GetRatioMinValue(self) -> float: ... + def GetResolution(self) -> int: ... + def GetResolutionMaxValue(self) -> int: ... + def GetResolutionMinValue(self) -> int: ... + def GetSegmentAngle(self) -> float: ... + def GetSegmentAngleMaxValue(self) -> float: ... + def GetSegmentAngleMinValue(self) -> float: ... + def GetStartAngle(self) -> float: ... + def GetStartAngleMaxValue(self) -> float: ... + def GetStartAngleMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEllipseArcSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEllipseArcSource': ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetClose(self, _arg:bool) -> None: ... + @overload + def SetMajorRadiusVector(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetMajorRadiusVector(self, _arg:Sequence[float]) -> None: ... + @overload + def SetNormal(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetNormal(self, _arg:Sequence[float]) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetRatio(self, _arg:float) -> None: ... + def SetResolution(self, _arg:int) -> None: ... + def SetSegmentAngle(self, _arg:float) -> None: ... + def SetStartAngle(self, _arg:float) -> None: ... + +class vtkEllipticalButtonSource(vtkButtonSource): + circumferential_resolution:'getset_descriptor' + depth:'getset_descriptor' + height:'getset_descriptor' + output_points_precision:'getset_descriptor' + radial_ratio:'getset_descriptor' + shoulder_resolution:'getset_descriptor' + texture_resolution:'getset_descriptor' + width:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCircumferentialResolution(self) -> int: ... + def GetCircumferentialResolutionMaxValue(self) -> int: ... + def GetCircumferentialResolutionMinValue(self) -> int: ... + def GetDepth(self) -> float: ... + def GetDepthMaxValue(self) -> float: ... + def GetDepthMinValue(self) -> float: ... + def GetHeight(self) -> float: ... + def GetHeightMaxValue(self) -> float: ... + def GetHeightMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetRadialRatio(self) -> float: ... + def GetRadialRatioMaxValue(self) -> float: ... + def GetRadialRatioMinValue(self) -> float: ... + def GetShoulderResolution(self) -> int: ... + def GetShoulderResolutionMaxValue(self) -> int: ... + def GetShoulderResolutionMinValue(self) -> int: ... + def GetTextureResolution(self) -> int: ... + def GetTextureResolutionMaxValue(self) -> int: ... + def GetTextureResolutionMinValue(self) -> int: ... + def GetWidth(self) -> float: ... + def GetWidthMaxValue(self) -> float: ... + def GetWidthMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEllipticalButtonSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEllipticalButtonSource': ... + def SetCircumferentialResolution(self, _arg:int) -> None: ... + def SetDepth(self, _arg:float) -> None: ... + def SetHeight(self, _arg:float) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetRadialRatio(self, _arg:float) -> None: ... + def SetShoulderResolution(self, _arg:int) -> None: ... + def SetTextureResolution(self, _arg:int) -> None: ... + def SetWidth(self, _arg:float) -> None: ... + +class vtkFrustumSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + lines_length:'getset_descriptor' + m_time:'getset_descriptor' + output_points_precision:'getset_descriptor' + planes:'getset_descriptor' + show_lines:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLinesLength(self) -> float: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPlanes(self) -> 'vtkPlanes': ... + def GetShowLines(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFrustumSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFrustumSource': ... + def SetLinesLength(self, _arg:float) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetPlanes(self, planes:'vtkPlanes') -> None: ... + def SetShowLines(self, _arg:bool) -> None: ... + def ShowLinesOff(self) -> None: ... + def ShowLinesOn(self) -> None: ... + +class vtkGlyphSource2D(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + center:'getset_descriptor' + color:'getset_descriptor' + cross:'getset_descriptor' + dash:'getset_descriptor' + double_pointed:'getset_descriptor' + filled:'getset_descriptor' + glyph_type:'getset_descriptor' + output_points_precision:'getset_descriptor' + point_inwards:'getset_descriptor' + resolution:'getset_descriptor' + rotation_angle:'getset_descriptor' + scale:'getset_descriptor' + scale2:'getset_descriptor' + tip_length:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CrossOff(self) -> None: ... + def CrossOn(self) -> None: ... + def DashOff(self) -> None: ... + def DashOn(self) -> None: ... + def DoublePointedOff(self) -> None: ... + def DoublePointedOn(self) -> None: ... + def FilledOff(self) -> None: ... + def FilledOn(self) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetColor(self) -> Tuple[float, float, float]: ... + def GetCross(self) -> int: ... + def GetDash(self) -> int: ... + def GetDoublePointed(self) -> bool: ... + def GetFilled(self) -> int: ... + def GetGlyphType(self) -> int: ... + def GetGlyphTypeMaxValue(self) -> int: ... + def GetGlyphTypeMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPointInwards(self) -> bool: ... + def GetResolution(self) -> int: ... + def GetResolutionMaxValue(self) -> int: ... + def GetResolutionMinValue(self) -> int: ... + def GetRotationAngle(self) -> float: ... + def GetScale(self) -> float: ... + def GetScale2(self) -> float: ... + def GetScale2MaxValue(self) -> float: ... + def GetScale2MinValue(self) -> float: ... + def GetScaleMaxValue(self) -> float: ... + def GetScaleMinValue(self) -> float: ... + def GetTipLength(self) -> float: ... + def GetTipLengthMaxValue(self) -> float: ... + def GetTipLengthMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGlyphSource2D': ... + def PointInwardsOff(self) -> None: ... + def PointInwardsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGlyphSource2D': ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + @overload + def SetColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetColor(self, _arg:Sequence[float]) -> None: ... + def SetCross(self, _arg:int) -> None: ... + def SetDash(self, _arg:int) -> None: ... + def SetDoublePointed(self, _arg:bool) -> None: ... + def SetFilled(self, _arg:int) -> None: ... + def SetGlyphType(self, _arg:int) -> None: ... + def SetGlyphTypeToArrow(self) -> None: ... + def SetGlyphTypeToCircle(self) -> None: ... + def SetGlyphTypeToCross(self) -> None: ... + def SetGlyphTypeToDash(self) -> None: ... + def SetGlyphTypeToDiamond(self) -> None: ... + def SetGlyphTypeToEdgeArrow(self) -> None: ... + def SetGlyphTypeToHookedArrow(self) -> None: ... + def SetGlyphTypeToNone(self) -> None: ... + def SetGlyphTypeToSquare(self) -> None: ... + def SetGlyphTypeToThickArrow(self) -> None: ... + def SetGlyphTypeToThickCross(self) -> None: ... + def SetGlyphTypeToTriangle(self) -> None: ... + def SetGlyphTypeToVertex(self) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetPointInwards(self, _arg:bool) -> None: ... + def SetResolution(self, _arg:int) -> None: ... + def SetRotationAngle(self, _arg:float) -> None: ... + def SetScale(self, _arg:float) -> None: ... + def SetScale2(self, _arg:float) -> None: ... + def SetTipLength(self, _arg:float) -> None: ... + +class vtkGoldenBallSource(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + center:'getset_descriptor' + generate_normals:'getset_descriptor' + include_center_point:'getset_descriptor' + output_points_precision:'getset_descriptor' + radius:'getset_descriptor' + resolution:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateNormalsOff(self) -> None: ... + def GenerateNormalsOn(self) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetGenerateNormals(self) -> int: ... + def GetIncludeCenterPoint(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def GetResolution(self) -> int: ... + def GetResolutionMaxValue(self) -> int: ... + def GetResolutionMinValue(self) -> int: ... + def IncludeCenterPointOff(self) -> None: ... + def IncludeCenterPointOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGoldenBallSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGoldenBallSource': ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetGenerateNormals(self, _arg:int) -> None: ... + def SetIncludeCenterPoint(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + def SetResolution(self, _arg:int) -> None: ... + +class vtkGraphToPolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + edge_glyph_output:'getset_descriptor' + edge_glyph_position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def EdgeGlyphOutputOff(self) -> None: ... + def EdgeGlyphOutputOn(self) -> None: ... + def GetEdgeGlyphOutput(self) -> bool: ... + def GetEdgeGlyphPosition(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGraphToPolyData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraphToPolyData': ... + def SetEdgeGlyphOutput(self, _arg:bool) -> None: ... + def SetEdgeGlyphPosition(self, _arg:float) -> None: ... + +class vtkHandleSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + direction:'getset_descriptor' + directional:'getset_descriptor' + position:'getset_descriptor' + size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DirectionalOff(self) -> None: ... + def DirectionalOn(self) -> None: ... + @overload + def GetDirection(self, dir:MutableSequence[float]) -> None: ... + @overload + def GetDirection(self) -> Pointer: ... + def GetDirectional(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetPosition(self, pos:MutableSequence[float]) -> None: ... + @overload + def GetPosition(self) -> Pointer: ... + def GetSize(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHandleSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHandleSource': ... + @overload + def SetDirection(self, dir:Sequence[float]) -> None: ... + @overload + def SetDirection(self, xDir:float, yDir:float, zDir:float) -> None: ... + def SetDirectional(self, _arg:bool) -> None: ... + @overload + def SetPosition(self, pos:Sequence[float]) -> None: ... + @overload + def SetPosition(self, xPos:float, yPos:float, zPos:float) -> None: ... + def SetSize(self, _arg:float) -> None: ... + +class vtkHyperTreeGridPreConfiguredSource(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + class HTGArchitecture(int): ... + class HTGType(int): ... + BALANCED:'HTGArchitecture' + BALANCED_2DEPTH_3BRANCH_3X3X2:'HTGType' + BALANCED_3DEPTH_2BRANCH_2X3:'HTGType' + BALANCED_4DEPTH_3BRANCH_2X2:'HTGType' + CUSTOM:'HTGType' + UNBALANCED:'HTGArchitecture' + UNBALANCED_2DEPTH_3BRANCH_3X3:'HTGType' + UNBALANCED_3DEPTH_2BRANCH_2X3:'HTGType' + UNBALANCED_3DEPTH_2BRANCH_3X2X3:'HTGType' + custom_architecture:'getset_descriptor' + custom_depth:'getset_descriptor' + custom_dim:'getset_descriptor' + custom_extent:'getset_descriptor' + custom_factor:'getset_descriptor' + custom_subdivisions:'getset_descriptor' + htg_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateBalanced(self, HTG:'vtkHyperTreeGrid', dim:int, factor:int, depth:int, extent:Sequence[float], subdivisions:Sequence[int]) -> None: ... + def GenerateBalanced2Depth3BranchTree3x3x2(self, HTG:'vtkHyperTreeGrid') -> None: ... + def GenerateBalanced3DepthQuadTree2x3(self, HTG:'vtkHyperTreeGrid') -> None: ... + def GenerateBalanced4Depth3BranchTree2x2(self, HTG:'vtkHyperTreeGrid') -> None: ... + def GenerateCustom(self, HTG:'vtkHyperTreeGrid') -> int: ... + def GenerateUnbalanced(self, HTG:'vtkHyperTreeGrid', dim:int, factor:int, depth:int, extent:Sequence[float], subdivisions:Sequence[int]) -> None: ... + def GenerateUnbalanced2Depth3BranchTree3x3(self, HTG:'vtkHyperTreeGrid') -> None: ... + def GenerateUnbalanced3DepthOctTree3x2x3(self, HTG:'vtkHyperTreeGrid') -> None: ... + def GenerateUnbalanced3DepthQuadTree2x3(self, HTG:'vtkHyperTreeGrid') -> None: ... + def GetCustomArchitecture(self) -> 'HTGArchitecture': ... + def GetCustomDepth(self) -> int: ... + def GetCustomDim(self) -> int: ... + def GetCustomExtent(self) -> Tuple[float, float, float, float, float, float]: ... + def GetCustomFactor(self) -> int: ... + def GetCustomSubdivisions(self) -> Tuple[int, int, int]: ... + def GetHTGMode(self) -> 'HTGType': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridPreConfiguredSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridPreConfiguredSource': ... + def SetCustomArchitecture(self, _arg:'HTGArchitecture') -> None: ... + def SetCustomDepth(self, _arg:int) -> None: ... + def SetCustomDim(self, _arg:int) -> None: ... + @overload + def SetCustomExtent(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetCustomExtent(self, _arg:Sequence[float]) -> None: ... + def SetCustomFactor(self, _arg:int) -> None: ... + @overload + def SetCustomSubdivisions(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetCustomSubdivisions(self, _arg:Sequence[int]) -> None: ... + def SetHTGMode(self, _arg:'HTGType') -> None: ... + +class vtkHyperTreeGridSource(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + branch_factor:'getset_descriptor' + descriptor:'getset_descriptor' + descriptor_bits:'getset_descriptor' + dimensions:'getset_descriptor' + generate_interface_fields:'getset_descriptor' + grid_scale:'getset_descriptor' + level_zero_material_index:'getset_descriptor' + m_time:'getset_descriptor' + mask:'getset_descriptor' + mask_bits:'getset_descriptor' + max_depth:'getset_descriptor' + orientation:'getset_descriptor' + origin:'getset_descriptor' + quadric:'getset_descriptor' + quadric_coefficients:'getset_descriptor' + transposed_root_indexing:'getset_descriptor' + use_descriptor:'getset_descriptor' + use_mask:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConvertDescriptorStringToBitArray(self, __a:str) -> 'vtkBitArray': ... + def ConvertMaskStringToBitArray(self, __a:str) -> 'vtkBitArray': ... + def GenerateInterfaceFieldsOff(self) -> None: ... + def GenerateInterfaceFieldsOn(self) -> None: ... + def GetBranchFactor(self) -> int: ... + def GetBranchFactorMaxValue(self) -> int: ... + def GetBranchFactorMinValue(self) -> int: ... + def GetDescriptor(self) -> str: ... + def GetDescriptorBits(self) -> 'vtkBitArray': ... + def GetDimensions(self) -> Tuple[int, int, int]: ... + def GetGenerateInterfaceFields(self) -> bool: ... + def GetGridScale(self) -> Tuple[float, float, float]: ... + def GetMTime(self) -> int: ... + def GetMask(self) -> str: ... + def GetMaskBits(self) -> 'vtkBitArray': ... + def GetMaxDepth(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientation(self) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetQuadric(self) -> 'vtkQuadric': ... + @overload + def GetQuadricCoefficients(self, __a:MutableSequence[float]) -> None: ... + @overload + def GetQuadricCoefficients(self) -> Pointer: ... + def GetTransposedRootIndexing(self) -> bool: ... + def GetUseDescriptor(self) -> bool: ... + def GetUseMask(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridSource': ... + def SetBranchFactor(self, _arg:int) -> None: ... + def SetDescriptor(self, _arg:str) -> None: ... + def SetDescriptorBits(self, __a:'vtkBitArray') -> None: ... + @overload + def SetDimensions(self, dims:Sequence[int]) -> None: ... + @overload + def SetDimensions(self, __a:int, __b:int, __c:int) -> None: ... + def SetGenerateInterfaceFields(self, _arg:bool) -> None: ... + @overload + def SetGridScale(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetGridScale(self, _arg:Sequence[float]) -> None: ... + @overload + def SetGridScale(self, scale:float) -> None: ... + def SetIndexingModeToIJK(self) -> None: ... + def SetIndexingModeToKJI(self) -> None: ... + def SetLevelZeroMaterialIndex(self, __a:'vtkIdTypeArray') -> None: ... + def SetMask(self, _arg:str) -> None: ... + def SetMaskBits(self, __a:'vtkBitArray') -> None: ... + def SetMaxDepth(self, levels:int) -> None: ... + @overload + def SetOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOrigin(self, _arg:Sequence[float]) -> None: ... + def SetQuadric(self, __a:'vtkQuadric') -> None: ... + def SetQuadricCoefficients(self, __a:MutableSequence[float]) -> None: ... + def SetTransposedRootIndexing(self, _arg:bool) -> None: ... + def SetUseDescriptor(self, _arg:bool) -> None: ... + def SetUseMask(self, _arg:bool) -> None: ... + def UseDescriptorOff(self) -> None: ... + def UseDescriptorOn(self) -> None: ... + def UseMaskOff(self) -> None: ... + def UseMaskOn(self) -> None: ... + +class vtkLineSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + output_points_precision:'getset_descriptor' + point1:'getset_descriptor' + point2:'getset_descriptor' + points:'getset_descriptor' + resolution:'getset_descriptor' + use_regular_refinement:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfRefinementRatios(self) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPoint1(self) -> Tuple[float, float, float]: ... + def GetPoint2(self) -> Tuple[float, float, float]: ... + def GetPoints(self) -> 'vtkPoints': ... + def GetRefinementRatio(self, index:int) -> float: ... + def GetResolution(self) -> int: ... + def GetResolutionMaxValue(self) -> int: ... + def GetResolutionMinValue(self) -> int: ... + def GetUseRegularRefinement(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLineSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLineSource': ... + def SetNumberOfRefinementRatios(self, __a:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + @overload + def SetPoint1(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPoint1(self, _arg:Sequence[float]) -> None: ... + @overload + def SetPoint2(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPoint2(self, _arg:Sequence[float]) -> None: ... + def SetPoints(self, __a:'vtkPoints') -> None: ... + def SetRefinementRatio(self, index:int, value:float) -> None: ... + def SetResolution(self, _arg:int) -> None: ... + def SetUseRegularRefinement(self, _arg:bool) -> None: ... + def UseRegularRefinementOff(self) -> None: ... + def UseRegularRefinementOn(self) -> None: ... + +class vtkOutlineCornerFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + corner_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCornerFactor(self) -> float: ... + def GetCornerFactorMaxValue(self) -> float: ... + def GetCornerFactorMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOutlineCornerFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOutlineCornerFilter': ... + def SetCornerFactor(self, _arg:float) -> None: ... + +class vtkOutlineSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + bounds:'getset_descriptor' + box_type:'getset_descriptor' + corners:'getset_descriptor' + generate_faces:'getset_descriptor' + output_points_precision:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateFacesOff(self) -> None: ... + def GenerateFacesOn(self) -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetBoxType(self) -> int: ... + def GetCorners(self) -> Tuple[float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float]: ... + def GetGenerateFaces(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOutlineSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOutlineSource': ... + @overload + def SetBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetBounds(self, _arg:Sequence[float]) -> None: ... + def SetBoxType(self, _arg:int) -> None: ... + def SetBoxTypeToAxisAligned(self) -> None: ... + def SetBoxTypeToOriented(self) -> None: ... + def SetCorners(self, data:Sequence[float]) -> None: ... + def SetGenerateFaces(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + +class vtkOutlineCornerSource(vtkOutlineSource): + corner_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCornerFactor(self) -> float: ... + def GetCornerFactorMaxValue(self) -> float: ... + def GetCornerFactorMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOutlineCornerSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOutlineCornerSource': ... + def SetCornerFactor(self, _arg:float) -> None: ... + +class vtkParametricFunctionSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class SCALAR_MODE(int): ... + SCALAR_DISTANCE:'SCALAR_MODE' + SCALAR_FUNCTION_DEFINED:'SCALAR_MODE' + SCALAR_MODULUS:'SCALAR_MODE' + SCALAR_NONE:'SCALAR_MODE' + SCALAR_PHASE:'SCALAR_MODE' + SCALAR_QUADRANT:'SCALAR_MODE' + SCALAR_U:'SCALAR_MODE' + SCALAR_U0:'SCALAR_MODE' + SCALAR_U0V0:'SCALAR_MODE' + SCALAR_V:'SCALAR_MODE' + SCALAR_V0:'SCALAR_MODE' + SCALAR_X:'SCALAR_MODE' + SCALAR_Y:'SCALAR_MODE' + SCALAR_Z:'SCALAR_MODE' + generate_normals:'getset_descriptor' + generate_texture_coordinates:'getset_descriptor' + m_time:'getset_descriptor' + output_points_precision:'getset_descriptor' + parametric_function:'getset_descriptor' + scalar_mode:'getset_descriptor' + u_resolution:'getset_descriptor' + v_resolution:'getset_descriptor' + w_resolution:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateNormalsOff(self) -> None: ... + def GenerateNormalsOn(self) -> None: ... + def GenerateTextureCoordinatesOff(self) -> None: ... + def GenerateTextureCoordinatesOn(self) -> None: ... + def GetGenerateNormals(self) -> int: ... + def GetGenerateNormalsMaxValue(self) -> int: ... + def GetGenerateNormalsMinValue(self) -> int: ... + def GetGenerateTextureCoordinates(self) -> int: ... + def GetGenerateTextureCoordinatesMaxValue(self) -> int: ... + def GetGenerateTextureCoordinatesMinValue(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetParametricFunction(self) -> 'vtkParametricFunction': ... + def GetScalarMode(self) -> int: ... + def GetScalarModeMaxValue(self) -> int: ... + def GetScalarModeMinValue(self) -> int: ... + def GetUResolution(self) -> int: ... + def GetUResolutionMaxValue(self) -> int: ... + def GetUResolutionMinValue(self) -> int: ... + def GetVResolution(self) -> int: ... + def GetVResolutionMaxValue(self) -> int: ... + def GetVResolutionMinValue(self) -> int: ... + def GetWResolution(self) -> int: ... + def GetWResolutionMaxValue(self) -> int: ... + def GetWResolutionMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParametricFunctionSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParametricFunctionSource': ... + def SetGenerateNormals(self, _arg:int) -> None: ... + def SetGenerateTextureCoordinates(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetParametricFunction(self, __a:'vtkParametricFunction') -> None: ... + def SetScalarMode(self, _arg:int) -> None: ... + def SetScalarModeToDistance(self) -> None: ... + def SetScalarModeToFunctionDefined(self) -> None: ... + def SetScalarModeToModulus(self) -> None: ... + def SetScalarModeToNone(self) -> None: ... + def SetScalarModeToPhase(self) -> None: ... + def SetScalarModeToQuadrant(self) -> None: ... + def SetScalarModeToU(self) -> None: ... + def SetScalarModeToU0(self) -> None: ... + def SetScalarModeToU0V0(self) -> None: ... + def SetScalarModeToV(self) -> None: ... + def SetScalarModeToV0(self) -> None: ... + def SetScalarModeToX(self) -> None: ... + def SetScalarModeToY(self) -> None: ... + def SetScalarModeToZ(self) -> None: ... + def SetUResolution(self, _arg:int) -> None: ... + def SetVResolution(self, _arg:int) -> None: ... + def SetWResolution(self, _arg:int) -> None: ... + +class vtkPartitionedDataSetCollectionSource(vtkmodules.vtkCommonExecutionModel.vtkPartitionedDataSetCollectionAlgorithm): + number_of_shapes:'getset_descriptor' + number_of_shapes_max_value:'getset_descriptor' + number_of_shapes_min_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfShapes(self) -> int: ... + def GetNumberOfShapesMaxValue(self) -> int: ... + def GetNumberOfShapesMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPartitionedDataSetCollectionSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPartitionedDataSetCollectionSource': ... + def SetNumberOfShapes(self, _arg:int) -> None: ... + +class vtkPartitionedDataSetSource(vtkmodules.vtkCommonExecutionModel.vtkPartitionedDataSetAlgorithm): + number_of_partitions:'getset_descriptor' + number_of_partitions_max_value:'getset_descriptor' + number_of_partitions_min_value:'getset_descriptor' + parametric_function:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DisableAllRanks(self) -> None: ... + def DisableRank(self, rank:int) -> None: ... + def EnableAllRanks(self) -> None: ... + def EnableRank(self, rank:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPartitions(self) -> int: ... + def GetNumberOfPartitionsMaxValue(self) -> int: ... + def GetNumberOfPartitionsMinValue(self) -> int: ... + def GetParametricFunction(self) -> 'vtkParametricFunction': ... + def IsA(self, type:str) -> int: ... + def IsEnabledRank(self, rank:int) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPartitionedDataSetSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPartitionedDataSetSource': ... + def SetNumberOfPartitions(self, _arg:int) -> None: ... + def SetParametricFunction(self, __a:'vtkParametricFunction') -> None: ... + +class vtkPlaneSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + center:'getset_descriptor' + normal:'getset_descriptor' + origin:'getset_descriptor' + output_points_precision:'getset_descriptor' + point1:'getset_descriptor' + point2:'getset_descriptor' + resolution:'getset_descriptor' + x_resolution:'getset_descriptor' + y_resolution:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAxis1(self, a1:MutableSequence[float]) -> None: ... + def GetAxis2(self, a2:MutableSequence[float]) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetNormal(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPoint1(self) -> Tuple[float, float, float]: ... + def GetPoint2(self) -> Tuple[float, float, float]: ... + def GetResolution(self, xR:int, yR:int) -> None: ... + def GetXResolution(self) -> int: ... + def GetYResolution(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlaneSource': ... + def Push(self, distance:float) -> None: ... + def Rotate(self, angle:float, rotationAxis:MutableSequence[float]) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlaneSource': ... + @overload + def SetCenter(self, x:float, y:float, z:float) -> None: ... + @overload + def SetCenter(self, center:MutableSequence[float]) -> None: ... + @overload + def SetNormal(self, nx:float, ny:float, nz:float) -> None: ... + @overload + def SetNormal(self, n:MutableSequence[float]) -> None: ... + @overload + def SetOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOrigin(self, _arg:Sequence[float]) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + @overload + def SetPoint1(self, x:float, y:float, z:float) -> None: ... + @overload + def SetPoint1(self, pnt:MutableSequence[float]) -> None: ... + @overload + def SetPoint2(self, x:float, y:float, z:float) -> None: ... + @overload + def SetPoint2(self, pnt:MutableSequence[float]) -> None: ... + def SetResolution(self, xR:int, yR:int) -> None: ... + def SetXResolution(self, _arg:int) -> None: ... + def SetYResolution(self, _arg:int) -> None: ... + +class vtkPlatonicSolidSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + output_points_precision:'getset_descriptor' + solid_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetSolidType(self) -> int: ... + def GetSolidTypeMaxValue(self) -> int: ... + def GetSolidTypeMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlatonicSolidSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlatonicSolidSource': ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetSolidType(self, _arg:int) -> None: ... + def SetSolidTypeToCube(self) -> None: ... + def SetSolidTypeToDodecahedron(self) -> None: ... + def SetSolidTypeToIcosahedron(self) -> None: ... + def SetSolidTypeToOctahedron(self) -> None: ... + def SetSolidTypeToTetrahedron(self) -> None: ... + +class vtkPointHandleSource(vtkHandleSource): + direction:'getset_descriptor' + position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetDirection(self) -> Pointer: ... + @overload + def GetDirection(self, dir:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetPosition(self) -> Pointer: ... + @overload + def GetPosition(self, pos:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointHandleSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointHandleSource': ... + @overload + def SetDirection(self, xDir:float, yDir:float, zDir:float) -> None: ... + @overload + def SetDirection(self, dir:Sequence[float]) -> None: ... + @overload + def SetPosition(self, xPos:float, yPos:float, zPos:float) -> None: ... + @overload + def SetPosition(self, pos:Sequence[float]) -> None: ... + +class vtkPointSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + center:'getset_descriptor' + distribution:'getset_descriptor' + number_of_points:'getset_descriptor' + number_of_points_max_value:'getset_descriptor' + number_of_points_min_value:'getset_descriptor' + output_points_precision:'getset_descriptor' + radius:'getset_descriptor' + random_sequence:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetDistribution(self) -> int: ... + def GetDistributionMaxValue(self) -> int: ... + def GetDistributionMinValue(self) -> int: ... + def GetLambda(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def GetNumberOfPointsMaxValue(self) -> int: ... + def GetNumberOfPointsMinValue(self) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def GetRandomSequence(self) -> 'vtkRandomSequence': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointSource': ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetDistribution(self, _arg:int) -> None: ... + def SetDistributionToExponential(self) -> None: ... + def SetDistributionToShell(self) -> None: ... + def SetDistributionToUniform(self) -> None: ... + def SetLambda(self, _arg:float) -> None: ... + def SetNumberOfPoints(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + def SetRandomSequence(self, randomSequence:'vtkRandomSequence') -> None: ... + +class vtkPolyPointSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + m_time:'getset_descriptor' + number_of_points:'getset_descriptor' + points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def GetPoints(self) -> 'vtkPoints': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyPointSource': ... + def Resize(self, numPoints:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyPointSource': ... + def SetNumberOfPoints(self, numPoints:int) -> None: ... + def SetPoint(self, id:int, x:float, y:float, z:float) -> None: ... + def SetPoints(self, points:'vtkPoints') -> None: ... + +class vtkPolyLineSource(vtkPolyPointSource): + closed:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClosedOff(self) -> None: ... + def ClosedOn(self) -> None: ... + def GetClosed(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyLineSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyLineSource': ... + def SetClosed(self, _arg:int) -> None: ... + +class vtkProgrammableDataObjectSource(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProgrammableDataObjectSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProgrammableDataObjectSource': ... + def SetExecuteMethod(self, f:Callback) -> None: ... + +class vtkProgrammableSource(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + graph_output:'getset_descriptor' + molecule_output:'getset_descriptor' + poly_data_output:'getset_descriptor' + rectilinear_grid_output:'getset_descriptor' + structured_grid_output:'getset_descriptor' + structured_points_output:'getset_descriptor' + table_output:'getset_descriptor' + unstructured_grid_output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetGraphOutput(self) -> 'vtkGraph': ... + def GetMoleculeOutput(self) -> 'vtkMolecule': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPolyDataOutput(self) -> 'vtkPolyData': ... + def GetRectilinearGridOutput(self) -> 'vtkRectilinearGrid': ... + def GetStructuredGridOutput(self) -> 'vtkStructuredGrid': ... + def GetStructuredPointsOutput(self) -> 'vtkStructuredPoints': ... + def GetTableOutput(self) -> 'vtkTable': ... + def GetUnstructuredGridOutput(self) -> 'vtkUnstructuredGrid': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProgrammableSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProgrammableSource': ... + def SetExecuteMethod(self, f:Callback) -> None: ... + +class vtkRandomHyperTreeGridSource(vtkmodules.vtkCommonExecutionModel.vtkHyperTreeGridAlgorithm): + actual_masked_cell_fraction:'getset_descriptor' + dimensions:'getset_descriptor' + masked_fraction:'getset_descriptor' + max_depth:'getset_descriptor' + output_bounds:'getset_descriptor' + seed:'getset_descriptor' + split_fraction:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetActualMaskedCellFraction(self) -> float: ... + def GetDimensions(self) -> Tuple[int, int, int]: ... + def GetMaskedFraction(self) -> float: ... + def GetMaskedFractionMaxValue(self) -> float: ... + def GetMaskedFractionMinValue(self) -> float: ... + def GetMaxDepth(self) -> int: ... + def GetMaxDepthMaxValue(self) -> int: ... + def GetMaxDepthMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetSeed(self) -> int: ... + def GetSplitFraction(self) -> float: ... + def GetSplitFractionMaxValue(self) -> float: ... + def GetSplitFractionMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRandomHyperTreeGridSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRandomHyperTreeGridSource': ... + @overload + def SetDimensions(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetDimensions(self, _arg:Sequence[int]) -> None: ... + def SetMaskedFraction(self, _arg:float) -> None: ... + def SetMaxDepth(self, _arg:int) -> None: ... + @overload + def SetOutputBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetOutputBounds(self, _arg:Sequence[float]) -> None: ... + def SetSeed(self, _arg:int) -> None: ... + def SetSplitFraction(self, _arg:float) -> None: ... + +class vtkRectangularButtonSource(vtkButtonSource): + box_ratio:'getset_descriptor' + depth:'getset_descriptor' + height:'getset_descriptor' + output_points_precision:'getset_descriptor' + texture_height_ratio:'getset_descriptor' + texture_ratio:'getset_descriptor' + width:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBoxRatio(self) -> float: ... + def GetBoxRatioMaxValue(self) -> float: ... + def GetBoxRatioMinValue(self) -> float: ... + def GetDepth(self) -> float: ... + def GetDepthMaxValue(self) -> float: ... + def GetDepthMinValue(self) -> float: ... + def GetHeight(self) -> float: ... + def GetHeightMaxValue(self) -> float: ... + def GetHeightMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetTextureHeightRatio(self) -> float: ... + def GetTextureHeightRatioMaxValue(self) -> float: ... + def GetTextureHeightRatioMinValue(self) -> float: ... + def GetTextureRatio(self) -> float: ... + def GetTextureRatioMaxValue(self) -> float: ... + def GetTextureRatioMinValue(self) -> float: ... + def GetWidth(self) -> float: ... + def GetWidthMaxValue(self) -> float: ... + def GetWidthMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRectangularButtonSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRectangularButtonSource': ... + def SetBoxRatio(self, _arg:float) -> None: ... + def SetDepth(self, _arg:float) -> None: ... + def SetHeight(self, _arg:float) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetTextureHeightRatio(self, _arg:float) -> None: ... + def SetTextureRatio(self, _arg:float) -> None: ... + def SetWidth(self, _arg:float) -> None: ... + +class vtkRegularPolygonSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + center:'getset_descriptor' + generate_polygon:'getset_descriptor' + generate_polyline:'getset_descriptor' + normal:'getset_descriptor' + number_of_sides:'getset_descriptor' + number_of_sides_max_value:'getset_descriptor' + number_of_sides_min_value:'getset_descriptor' + output_points_precision:'getset_descriptor' + radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GeneratePolygonOff(self) -> None: ... + def GeneratePolygonOn(self) -> None: ... + def GeneratePolylineOff(self) -> None: ... + def GeneratePolylineOn(self) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetGeneratePolygon(self) -> int: ... + def GetGeneratePolyline(self) -> int: ... + def GetNormal(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSides(self) -> int: ... + def GetNumberOfSidesMaxValue(self) -> int: ... + def GetNumberOfSidesMinValue(self) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetRadius(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRegularPolygonSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRegularPolygonSource': ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetGeneratePolygon(self, _arg:int) -> None: ... + def SetGeneratePolyline(self, _arg:int) -> None: ... + @overload + def SetNormal(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetNormal(self, _arg:Sequence[float]) -> None: ... + def SetNumberOfSides(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + +class vtkSelectionSource(vtkmodules.vtkCommonExecutionModel.vtkSelectionAlgorithm): + class FieldTypeOptions(int): ... + ELEMENT_TYPE:'FieldTypeOptions' + FIELD_TYPE:'FieldTypeOptions' + array_component:'getset_descriptor' + array_name:'getset_descriptor' + assembly_name:'getset_descriptor' + composite_index:'getset_descriptor' + containing_cells:'getset_descriptor' + content_type:'getset_descriptor' + element_type:'getset_descriptor' + expression:'getset_descriptor' + field_type:'getset_descriptor' + field_type_option:'getset_descriptor' + frustum:'getset_descriptor' + hierarchical_index:'getset_descriptor' + hierarchical_level:'getset_descriptor' + inverse:'getset_descriptor' + node_name:'getset_descriptor' + number_of_layers:'getset_descriptor' + number_of_layers_max_value:'getset_descriptor' + number_of_layers_min_value:'getset_descriptor' + number_of_nodes:'getset_descriptor' + process_id:'getset_descriptor' + query_string:'getset_descriptor' + remove_intermediate_layers:'getset_descriptor' + remove_seed:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddBlock(self, nodeId:int, block:int) -> None: ... + @overload + def AddBlock(self, blockno:int) -> None: ... + @overload + def AddBlockSelector(self, nodeId:int, block:str) -> None: ... + @overload + def AddBlockSelector(self, selector:str) -> None: ... + @overload + def AddID(self, nodeId:int, piece:int, id:int) -> None: ... + @overload + def AddID(self, piece:int, id:int) -> None: ... + @overload + def AddLocation(self, nodeId:int, x:float, y:float, z:float) -> None: ... + @overload + def AddLocation(self, x:float, y:float, z:float) -> None: ... + @overload + def AddSelector(self, nodeId:int, selector:str) -> None: ... + @overload + def AddSelector(self, selector:str) -> None: ... + @overload + def AddStringID(self, nodeId:int, piece:int, id:str) -> None: ... + @overload + def AddStringID(self, piece:int, id:str) -> None: ... + @overload + def AddThreshold(self, nodeId:int, min:float, max:float) -> None: ... + @overload + def AddThreshold(self, min:float, max:float) -> None: ... + @overload + def GetArrayComponent(self, nodeId:int) -> int: ... + @overload + def GetArrayComponent(self) -> int: ... + @overload + def GetArrayName(self, nodeId:int) -> str: ... + @overload + def GetArrayName(self) -> str: ... + @overload + def GetAssemblyName(self, nodeId:int) -> str: ... + @overload + def GetAssemblyName(self) -> str: ... + @overload + def GetCompositeIndex(self, nodeId:int) -> int: ... + @overload + def GetCompositeIndex(self) -> int: ... + @overload + def GetContainingCells(self, nodeId:int) -> int: ... + @overload + def GetContainingCells(self) -> int: ... + @overload + def GetContentType(self, nodeId:int) -> int: ... + @overload + def GetContentType(self) -> int: ... + def GetContentTypeMaxValue(self) -> int: ... + def GetContentTypeMinValue(self) -> int: ... + def GetElementType(self) -> int: ... + def GetElementTypeMaxValue(self) -> int: ... + def GetElementTypeMinValue(self) -> int: ... + def GetExpression(self) -> str: ... + def GetFieldType(self) -> int: ... + def GetFieldTypeMaxValue(self) -> int: ... + def GetFieldTypeMinValue(self) -> int: ... + def GetFieldTypeOption(self) -> int: ... + def GetFieldTypeOptionMaxValue(self) -> int: ... + def GetFieldTypeOptionMinValue(self) -> int: ... + @overload + def GetHierarchicalIndex(self, nodeId:int) -> int: ... + @overload + def GetHierarchicalIndex(self) -> int: ... + @overload + def GetHierarchicalLevel(self, nodeId:int) -> int: ... + @overload + def GetHierarchicalLevel(self) -> int: ... + @overload + def GetInverse(self, nodeId:int) -> int: ... + @overload + def GetInverse(self) -> int: ... + @overload + def GetNodeName(self, nodeId:int) -> str: ... + @overload + def GetNodeName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetNumberOfLayers(self, nodeId:int) -> int: ... + @overload + def GetNumberOfLayers(self) -> int: ... + def GetNumberOfLayersMaxValue(self) -> int: ... + def GetNumberOfLayersMinValue(self) -> int: ... + def GetNumberOfNodes(self) -> int: ... + def GetProcessID(self) -> int: ... + def GetProcessIDMaxValue(self) -> int: ... + def GetProcessIDMinValue(self) -> int: ... + @overload + def GetQueryString(self, nodeId:int) -> str: ... + @overload + def GetQueryString(self) -> str: ... + @overload + def GetRemoveIntermediateLayers(self, nodeId:int) -> bool: ... + @overload + def GetRemoveIntermediateLayers(self) -> bool: ... + @overload + def GetRemoveSeed(self, nodeId:int) -> bool: ... + @overload + def GetRemoveSeed(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSelectionSource': ... + @overload + def RemoveAllBlockSelectors(self, nodeId:int) -> None: ... + @overload + def RemoveAllBlockSelectors(self) -> None: ... + @overload + def RemoveAllBlocks(self, nodeId:int) -> None: ... + @overload + def RemoveAllBlocks(self) -> None: ... + @overload + def RemoveAllIDs(self, nodeId:int) -> None: ... + @overload + def RemoveAllIDs(self) -> None: ... + @overload + def RemoveAllLocations(self, nodeId:int) -> None: ... + @overload + def RemoveAllLocations(self) -> None: ... + def RemoveAllNodes(self) -> None: ... + @overload + def RemoveAllSelectors(self, nodeId:int) -> None: ... + @overload + def RemoveAllSelectors(self) -> None: ... + @overload + def RemoveAllStringIDs(self, nodeId:int) -> None: ... + @overload + def RemoveAllStringIDs(self) -> None: ... + @overload + def RemoveAllThresholds(self, nodeId:int) -> None: ... + @overload + def RemoveAllThresholds(self) -> None: ... + @overload + def RemoveNode(self, idx:int) -> None: ... + @overload + def RemoveNode(self, name:str) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSelectionSource': ... + @overload + def SetArrayComponent(self, nodeId:int, component:int) -> None: ... + @overload + def SetArrayComponent(self, component:int) -> None: ... + @overload + def SetArrayName(self, nodeId:int, name:str) -> None: ... + @overload + def SetArrayName(self, name:str) -> None: ... + @overload + def SetAssemblyName(self, nodeId:int, name:str) -> None: ... + @overload + def SetAssemblyName(self, name:str) -> None: ... + @overload + def SetCompositeIndex(self, nodeId:int, index:int) -> None: ... + @overload + def SetCompositeIndex(self, compositeIndex:int) -> None: ... + @overload + def SetContainingCells(self, nodeId:int, containingCells:int) -> None: ... + @overload + def SetContainingCells(self, containingCells:int) -> None: ... + @overload + def SetContentType(self, nodeId:int, type:int) -> None: ... + @overload + def SetContentType(self, contentType:int) -> None: ... + def SetElementType(self, _arg:int) -> None: ... + def SetExpression(self, arg:str) -> None: ... + def SetFieldType(self, _arg:int) -> None: ... + def SetFieldTypeOption(self, _arg:int) -> None: ... + def SetFieldTypeOptionToElementType(self) -> None: ... + def SetFieldTypeOptionToFieldType(self) -> None: ... + @overload + def SetFrustum(self, nodeId:int, vertices:MutableSequence[float]) -> None: ... + @overload + def SetFrustum(self, vertices:MutableSequence[float]) -> None: ... + @overload + def SetHierarchicalIndex(self, nodeId:int, index:int) -> None: ... + @overload + def SetHierarchicalIndex(self, index:int) -> None: ... + @overload + def SetHierarchicalLevel(self, nodeId:int, level:int) -> None: ... + @overload + def SetHierarchicalLevel(self, level:int) -> None: ... + @overload + def SetInverse(self, nodeId:int, inverse:int) -> None: ... + @overload + def SetInverse(self, inverse:int) -> None: ... + @overload + def SetNodeName(self, nodeId:int, name:str) -> None: ... + @overload + def SetNodeName(self, name:str) -> None: ... + @overload + def SetNumberOfLayers(self, nodeId:int, numberOfLayers:int) -> None: ... + @overload + def SetNumberOfLayers(self, numberOfLayers:int) -> None: ... + def SetNumberOfNodes(self, numberOfNodes:int) -> None: ... + def SetProcessID(self, _arg:int) -> None: ... + @overload + def SetQueryString(self, nodeId:int, queryString:str) -> None: ... + @overload + def SetQueryString(self, query:str) -> None: ... + @overload + def SetRemoveIntermediateLayers(self, nodeId:int, RemoveIntermediateLayers:bool) -> None: ... + @overload + def SetRemoveIntermediateLayers(self, RemoveIntermediateLayers:bool) -> None: ... + @overload + def SetRemoveSeed(self, nodeId:int, RemoveSeed:bool) -> None: ... + @overload + def SetRemoveSeed(self, RemoveSeed:bool) -> None: ... + +class vtkSpatioTemporalHarmonicsSource(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + whole_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddHarmonic(self, amplitude:float, temporalFrequency:float, xWaveVector:float, yWaveVector:float, zWaveVector:float, phase:float) -> None: ... + def AddTimeStepValue(self, timeStepValue:float) -> None: ... + def ClearHarmonics(self) -> None: ... + def ClearTimeStepValues(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWholeExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSpatioTemporalHarmonicsSource': ... + def ResetHarmonics(self) -> None: ... + def ResetTimeStepValues(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSpatioTemporalHarmonicsSource': ... + @overload + def SetWholeExtent(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetWholeExtent(self, _arg:Sequence[int]) -> None: ... + +class vtkSphereSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + center:'getset_descriptor' + end_phi:'getset_descriptor' + end_theta:'getset_descriptor' + generate_normals:'getset_descriptor' + lat_long_tessellation:'getset_descriptor' + output_points_precision:'getset_descriptor' + phi_resolution:'getset_descriptor' + radius:'getset_descriptor' + start_phi:'getset_descriptor' + start_theta:'getset_descriptor' + theta_resolution:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateNormalsOff(self) -> None: ... + def GenerateNormalsOn(self) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetEndPhi(self) -> float: ... + def GetEndPhiMaxValue(self) -> float: ... + def GetEndPhiMinValue(self) -> float: ... + def GetEndTheta(self) -> float: ... + def GetEndThetaMaxValue(self) -> float: ... + def GetEndThetaMinValue(self) -> float: ... + def GetGenerateNormals(self) -> int: ... + def GetLatLongTessellation(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPhiResolution(self) -> int: ... + def GetPhiResolutionMaxValue(self) -> int: ... + def GetPhiResolutionMinValue(self) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def GetStartPhi(self) -> float: ... + def GetStartPhiMaxValue(self) -> float: ... + def GetStartPhiMinValue(self) -> float: ... + def GetStartTheta(self) -> float: ... + def GetStartThetaMaxValue(self) -> float: ... + def GetStartThetaMinValue(self) -> float: ... + def GetThetaResolution(self) -> int: ... + def GetThetaResolutionMaxValue(self) -> int: ... + def GetThetaResolutionMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LatLongTessellationOff(self) -> None: ... + def LatLongTessellationOn(self) -> None: ... + def NewInstance(self) -> 'vtkSphereSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSphereSource': ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetEndPhi(self, _arg:float) -> None: ... + def SetEndTheta(self, _arg:float) -> None: ... + def SetGenerateNormals(self, _arg:int) -> None: ... + def SetLatLongTessellation(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetPhiResolution(self, _arg:int) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + def SetStartPhi(self, _arg:float) -> None: ... + def SetStartTheta(self, _arg:float) -> None: ... + def SetThetaResolution(self, _arg:int) -> None: ... + +class vtkSuperquadricSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + axis_of_symmetry:'getset_descriptor' + center:'getset_descriptor' + output_points_precision:'getset_descriptor' + phi_resolution:'getset_descriptor' + phi_roundness:'getset_descriptor' + scale:'getset_descriptor' + size:'getset_descriptor' + theta_resolution:'getset_descriptor' + theta_roundness:'getset_descriptor' + thickness:'getset_descriptor' + toroidal:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAxisOfSymmetry(self) -> int: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPhiResolution(self) -> int: ... + def GetPhiRoundness(self) -> float: ... + def GetScale(self) -> Tuple[float, float, float]: ... + def GetSize(self) -> float: ... + def GetThetaResolution(self) -> int: ... + def GetThetaRoundness(self) -> float: ... + def GetThickness(self) -> float: ... + def GetThicknessMaxValue(self) -> float: ... + def GetThicknessMinValue(self) -> float: ... + def GetToroidal(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSuperquadricSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSuperquadricSource': ... + def SetAxisOfSymmetry(self, _arg:int) -> None: ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetPhiResolution(self, i:int) -> None: ... + def SetPhiRoundness(self, e:float) -> None: ... + @overload + def SetScale(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetScale(self, _arg:Sequence[float]) -> None: ... + def SetSize(self, _arg:float) -> None: ... + def SetThetaResolution(self, i:int) -> None: ... + def SetThetaRoundness(self, e:float) -> None: ... + def SetThickness(self, _arg:float) -> None: ... + def SetToroidal(self, _arg:int) -> None: ... + def SetXAxisOfSymmetry(self) -> None: ... + def SetYAxisOfSymmetry(self) -> None: ... + def SetZAxisOfSymmetry(self) -> None: ... + def ToroidalOff(self) -> None: ... + def ToroidalOn(self) -> None: ... + +class vtkTessellatedBoxSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + bounds:'getset_descriptor' + duplicate_shared_points:'getset_descriptor' + level:'getset_descriptor' + output_points_precision:'getset_descriptor' + quads:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DuplicateSharedPointsOff(self) -> None: ... + def DuplicateSharedPointsOn(self) -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetDuplicateSharedPoints(self) -> int: ... + def GetLevel(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetQuads(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTessellatedBoxSource': ... + def QuadsOff(self) -> None: ... + def QuadsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTessellatedBoxSource': ... + @overload + def SetBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetBounds(self, _arg:Sequence[float]) -> None: ... + def SetDuplicateSharedPoints(self, _arg:int) -> None: ... + def SetLevel(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetQuads(self, _arg:int) -> None: ... + +class vtkTextSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + background_color:'getset_descriptor' + backing:'getset_descriptor' + foreground_color:'getset_descriptor' + output_points_precision:'getset_descriptor' + text:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BackingOff(self) -> None: ... + def BackingOn(self) -> None: ... + def GetBackgroundColor(self) -> Tuple[float, float, float]: ... + def GetBacking(self) -> int: ... + def GetForegroundColor(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetText(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTextSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTextSource': ... + @overload + def SetBackgroundColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetBackgroundColor(self, _arg:Sequence[float]) -> None: ... + def SetBacking(self, _arg:int) -> None: ... + @overload + def SetForegroundColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetForegroundColor(self, _arg:Sequence[float]) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetText(self, _arg:str) -> None: ... + +class vtkTexturedSphereSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + output_points_precision:'getset_descriptor' + phi:'getset_descriptor' + phi_resolution:'getset_descriptor' + radius:'getset_descriptor' + theta:'getset_descriptor' + theta_resolution:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetPhi(self) -> float: ... + def GetPhiMaxValue(self) -> float: ... + def GetPhiMinValue(self) -> float: ... + def GetPhiResolution(self) -> int: ... + def GetPhiResolutionMaxValue(self) -> int: ... + def GetPhiResolutionMinValue(self) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def GetTheta(self) -> float: ... + def GetThetaMaxValue(self) -> float: ... + def GetThetaMinValue(self) -> float: ... + def GetThetaResolution(self) -> int: ... + def GetThetaResolutionMaxValue(self) -> int: ... + def GetThetaResolutionMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTexturedSphereSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTexturedSphereSource': ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetPhi(self, _arg:float) -> None: ... + def SetPhiResolution(self, _arg:int) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + def SetTheta(self, _arg:float) -> None: ... + def SetThetaResolution(self, _arg:int) -> None: ... + +class vtkUniformHyperTreeGridSource(vtkHyperTreeGridSource): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUniformHyperTreeGridSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUniformHyperTreeGridSource': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersStatistics.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersStatistics.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..847f55c Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersStatistics.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersStatistics.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersStatistics.pyi new file mode 100644 index 0000000..f2239f2 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersStatistics.pyi @@ -0,0 +1,595 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkStatisticsAlgorithm(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + class InputPorts(int): ... + class OutputIndices(int): ... + INPUT_DATA:'InputPorts' + INPUT_MODEL:'InputPorts' + LEARN_PARAMETERS:'InputPorts' + OUTPUT_DATA:'OutputIndices' + OUTPUT_MODEL:'OutputIndices' + OUTPUT_TEST:'OutputIndices' + assess_names:'getset_descriptor' + assess_option:'getset_descriptor' + derive_option:'getset_descriptor' + input_model:'getset_descriptor' + input_model_connection:'getset_descriptor' + learn_option:'getset_descriptor' + learn_option_parameter_connection:'getset_descriptor' + learn_option_parameters:'getset_descriptor' + number_of_primary_tables:'getset_descriptor' + number_of_requests:'getset_descriptor' + test_option:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddColumn(self, namCol:str) -> None: ... + def AddColumnPair(self, namColX:str, namColY:str) -> None: ... + def Aggregate(self, __a:'vtkDataObjectCollection', __b:'vtkMultiBlockDataSet') -> None: ... + def GetAssessNames(self) -> 'vtkStringArray': ... + def GetAssessOption(self) -> bool: ... + @overload + def GetColumnForRequest(self, r:int, c:int) -> str: ... + @overload + def GetColumnForRequest(self, r:int, c:int, columnName:str) -> int: ... + def GetDeriveOption(self) -> bool: ... + def GetLearnOption(self) -> bool: ... + def GetNumberOfColumnsForRequest(self, request:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPrimaryTables(self) -> int: ... + def GetNumberOfRequests(self) -> int: ... + def GetTestOption(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStatisticsAlgorithm': ... + def RequestSelectedColumns(self) -> int: ... + def ResetAllColumnStates(self) -> None: ... + def ResetRequests(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStatisticsAlgorithm': ... + def SetAssessNames(self, __a:'vtkStringArray') -> None: ... + def SetAssessOption(self, _arg:bool) -> None: ... + def SetColumnStatus(self, namCol:str, status:int) -> None: ... + def SetDeriveOption(self, _arg:bool) -> None: ... + def SetInputModel(self, model:'vtkDataObject') -> None: ... + def SetInputModelConnection(self, model:'vtkAlgorithmOutput') -> None: ... + def SetLearnOption(self, _arg:bool) -> None: ... + def SetLearnOptionParameterConnection(self, params:'vtkAlgorithmOutput') -> None: ... + def SetLearnOptionParameters(self, params:'vtkDataObject') -> None: ... + def SetNumberOfPrimaryTables(self, _arg:int) -> None: ... + def SetParameter(self, parameter:str, index:int, value:'vtkVariant') -> bool: ... + def SetTestOption(self, _arg:bool) -> None: ... + +class vtkAutoCorrelativeStatistics(vtkStatisticsAlgorithm): + slice_cardinality:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Aggregate(self, __a:'vtkDataObjectCollection', __b:'vtkMultiBlockDataSet') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSliceCardinality(self) -> int: ... + def GetSliceCardinalityMaxValue(self) -> int: ... + def GetSliceCardinalityMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAutoCorrelativeStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAutoCorrelativeStatistics': ... + def SetSliceCardinality(self, _arg:int) -> None: ... + +class vtkBivariateLinearTableThreshold(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + class LinearThresholdType(int): ... + class OutputPorts(int): ... + BLT_ABOVE:'LinearThresholdType' + BLT_BELOW:'LinearThresholdType' + BLT_BETWEEN:'LinearThresholdType' + BLT_NEAR:'LinearThresholdType' + OUTPUT_ROW_DATA:'OutputPorts' + OUTPUT_ROW_IDS:'OutputPorts' + column_ranges:'getset_descriptor' + distance_threshold:'getset_descriptor' + inclusive:'getset_descriptor' + linear_threshold_type:'getset_descriptor' + number_of_columns_to_threshold:'getset_descriptor' + use_normalized_distance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddColumnToThreshold(self, column:int, component:int) -> None: ... + @overload + def AddLineEquation(self, p1:MutableSequence[float], p2:MutableSequence[float]) -> None: ... + @overload + def AddLineEquation(self, p:MutableSequence[float], slope:float) -> None: ... + @overload + def AddLineEquation(self, a:float, b:float, c:float) -> None: ... + def ClearColumnsToThreshold(self) -> None: ... + def ClearLineEquations(self) -> None: ... + @overload + @staticmethod + def ComputeImplicitLineFunction(p1:MutableSequence[float], p2:MutableSequence[float], abc:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def ComputeImplicitLineFunction(p:MutableSequence[float], slope:float, abc:MutableSequence[float]) -> None: ... + def GetColumnRanges(self) -> Tuple[float, float]: ... + def GetColumnToThreshold(self, idx:int, column:int, component:int) -> None: ... + def GetDistanceThreshold(self) -> float: ... + def GetInclusive(self) -> int: ... + def GetLinearThresholdType(self) -> int: ... + def GetNumberOfColumnsToThreshold(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSelectedRowIds(self, selection:int=0) -> 'vtkIdTypeArray': ... + def GetUseNormalizedDistance(self) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBivariateLinearTableThreshold': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBivariateLinearTableThreshold': ... + @overload + def SetColumnRanges(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetColumnRanges(self, _arg:Sequence[float]) -> None: ... + def SetDistanceThreshold(self, _arg:float) -> None: ... + def SetInclusive(self, _arg:int) -> None: ... + def SetLinearThresholdType(self, _arg:int) -> None: ... + def SetLinearThresholdTypeToAbove(self) -> None: ... + def SetLinearThresholdTypeToBelow(self) -> None: ... + def SetLinearThresholdTypeToBetween(self) -> None: ... + def SetLinearThresholdTypeToNear(self) -> None: ... + def SetUseNormalizedDistance(self, _arg:int) -> None: ... + def UseNormalizedDistanceOff(self) -> None: ... + def UseNormalizedDistanceOn(self) -> None: ... + +class vtkComputeQuantiles(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + number_of_intervals:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIntervals(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkComputeQuantiles': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkComputeQuantiles': ... + def SetNumberOfIntervals(self, _arg:int) -> None: ... + +class vtkComputeQuartiles(vtkComputeQuantiles): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkComputeQuartiles': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkComputeQuartiles': ... + +class vtkContingencyStatistics(vtkStatisticsAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def Aggregate(self, __a:'vtkDataObjectCollection', __b:'vtkMultiBlockDataSet') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContingencyStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContingencyStatistics': ... + +class vtkCorrelativeStatistics(vtkStatisticsAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def Aggregate(self, __a:'vtkDataObjectCollection', __b:'vtkMultiBlockDataSet') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCorrelativeStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCorrelativeStatistics': ... + +class vtkDescriptiveStatistics(vtkStatisticsAlgorithm): + ghosts_to_skip:'getset_descriptor' + sample_estimate:'getset_descriptor' + signed_deviations:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Aggregate(self, __a:'vtkDataObjectCollection', __b:'vtkMultiBlockDataSet') -> None: ... + def GetGhostsToSkip(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSampleEstimate(self) -> bool: ... + def GetSignedDeviations(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDescriptiveStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDescriptiveStatistics': ... + def SampleEstimateOff(self) -> None: ... + def SampleEstimateOn(self) -> None: ... + def SetGhostsToSkip(self, _arg:int) -> None: ... + def SetSampleEstimate(self, _arg:bool) -> None: ... + def SetSignedDeviations(self, _arg:int) -> None: ... + def SignedDeviationsOff(self) -> None: ... + def SignedDeviationsOn(self) -> None: ... + +class vtkExtractFunctionalBagPlot(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + density_for_p50:'getset_descriptor' + density_for_p_user:'getset_descriptor' + p_user:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractFunctionalBagPlot': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractFunctionalBagPlot': ... + def SetDensityForP50(self, _arg:float) -> None: ... + def SetDensityForPUser(self, _arg:float) -> None: ... + def SetPUser(self, _arg:int) -> None: ... + +class vtkExtractHistogram(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + accumulation:'getset_descriptor' + bin_accumulation_array_name:'getset_descriptor' + bin_count:'getset_descriptor' + bin_extents_array_name:'getset_descriptor' + bin_range:'getset_descriptor' + bin_values_array_name:'getset_descriptor' + calculate_averages:'getset_descriptor' + center_bins_around_min_and_max:'getset_descriptor' + component:'getset_descriptor' + custom_bin_ranges:'getset_descriptor' + normalize:'getset_descriptor' + use_custom_bin_ranges:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AccumulationOff(self) -> None: ... + def AccumulationOn(self) -> None: ... + def CalculateAveragesOff(self) -> None: ... + def CalculateAveragesOn(self) -> None: ... + def CenterBinsAroundMinAndMaxOff(self) -> None: ... + def CenterBinsAroundMinAndMaxOn(self) -> None: ... + def GetAccumulation(self) -> bool: ... + def GetBinAccumulationArrayName(self) -> str: ... + def GetBinCount(self) -> int: ... + def GetBinCountMaxValue(self) -> int: ... + def GetBinCountMinValue(self) -> int: ... + def GetBinExtentsArrayName(self) -> str: ... + def GetBinRange(self) -> Tuple[float, float]: ... + def GetBinValuesArrayName(self) -> str: ... + def GetCalculateAverages(self) -> bool: ... + def GetCenterBinsAroundMinAndMax(self) -> bool: ... + def GetComponent(self) -> int: ... + def GetComponentMaxValue(self) -> int: ... + def GetComponentMinValue(self) -> int: ... + def GetCustomBinRanges(self) -> Tuple[float, float]: ... + def GetNormalize(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseCustomBinRanges(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractHistogram': ... + def NormalizeOff(self) -> None: ... + def NormalizeOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractHistogram': ... + def SetAccumulation(self, _arg:bool) -> None: ... + def SetBinAccumulationArrayName(self, _arg:str) -> None: ... + def SetBinCount(self, _arg:int) -> None: ... + def SetBinExtentsArrayName(self, _arg:str) -> None: ... + def SetBinValuesArrayName(self, _arg:str) -> None: ... + def SetCalculateAverages(self, _arg:bool) -> None: ... + def SetCenterBinsAroundMinAndMax(self, _arg:bool) -> None: ... + def SetComponent(self, _arg:int) -> None: ... + @overload + def SetCustomBinRanges(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetCustomBinRanges(self, _arg:Sequence[float]) -> None: ... + def SetNormalize(self, _arg:bool) -> None: ... + def SetUseCustomBinRanges(self, _arg:bool) -> None: ... + def UseCustomBinRangesOff(self) -> None: ... + def UseCustomBinRangesOn(self) -> None: ... + +class vtkHighestDensityRegionsStatistics(vtkStatisticsAlgorithm): + sigma:'getset_descriptor' + sigma_matrix:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Aggregate(self, __a:'vtkDataObjectCollection', __b:'vtkMultiBlockDataSet') -> None: ... + @overload + def ComputeHDR(self, inObservations:'vtkDataArray', outDensity:'vtkDataArray') -> float: ... + @overload + def ComputeHDR(self, inObs:'vtkDataArray', inPOI:'vtkDataArray', outDensity:'vtkDataArray') -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHighestDensityRegionsStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHighestDensityRegionsStatistics': ... + def SetSigma(self, sigma:float) -> None: ... + def SetSigmaMatrix(self, s11:float, s12:float, s21:float, s22:float) -> None: ... + +class vtkKMeansDistanceFunctor(vtkmodules.vtkCommonCore.vtkObject): + data_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllocateElementArray(self, size:int) -> Pointer: ... + def CreateCoordinateArray(self) -> 'vtkAbstractArray': ... + def DeallocateElementArray(self, __a:Pointer) -> None: ... + def GetDataType(self) -> int: ... + def GetEmptyTuple(self, dimension:int) -> 'vtkVariantArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkKMeansDistanceFunctor': ... + def PackElements(self, curTable:'vtkTable', vElements:Pointer) -> None: ... + def PairwiseUpdate(self, clusterCenters:'vtkTable', row:int, data:'vtkVariantArray', dataCardinality:int, totalCardinality:int) -> None: ... + def PerturbElement(self, __a:'vtkTable', __b:'vtkTable', __c:int, __d:int, __e:int, __f:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkKMeansDistanceFunctor': ... + @overload + def UnPackElements(self, curTable:'vtkTable', newTable:'vtkTable', vLocalElements:Pointer, vGlobalElements:Pointer, np:int) -> None: ... + @overload + def UnPackElements(self, curTable:'vtkTable', vLocalElements:Pointer, numRows:int, numCols:int) -> None: ... + +class vtkKMeansDistanceFunctorCalculator(vtkKMeansDistanceFunctor): + distance_expression:'getset_descriptor' + function_parser:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDistanceExpression(self) -> str: ... + def GetFunctionParser(self) -> 'vtkFunctionParser': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkKMeansDistanceFunctorCalculator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkKMeansDistanceFunctorCalculator': ... + def SetDistanceExpression(self, _arg:str) -> None: ... + def SetFunctionParser(self, __a:'vtkFunctionParser') -> None: ... + +class vtkKMeansStatistics(vtkStatisticsAlgorithm): + default_number_of_clusters:'getset_descriptor' + distance_functor:'getset_descriptor' + ghosts_to_skip:'getset_descriptor' + k_values_array_name:'getset_descriptor' + max_num_iterations:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Aggregate(self, __a:'vtkDataObjectCollection', __b:'vtkMultiBlockDataSet') -> None: ... + def GetDefaultNumberOfClusters(self) -> int: ... + def GetDistanceFunctor(self) -> 'vtkKMeansDistanceFunctor': ... + def GetGhostsToSkip(self) -> int: ... + def GetKValuesArrayName(self) -> str: ... + def GetMaxNumIterations(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTolerance(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkKMeansStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkKMeansStatistics': ... + def SetDefaultNumberOfClusters(self, _arg:int) -> None: ... + def SetDistanceFunctor(self, __a:'vtkKMeansDistanceFunctor') -> None: ... + def SetGhostsToSkip(self, _arg:int) -> None: ... + def SetKValuesArrayName(self, _arg:str) -> None: ... + def SetMaxNumIterations(self, _arg:int) -> None: ... + def SetParameter(self, parameter:str, index:int, value:'vtkVariant') -> bool: ... + def SetTolerance(self, _arg:float) -> None: ... + +class vtkLengthDistribution(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + sample_size:'getset_descriptor' + sort_sample:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLengthQuantile(self, qq:float=0.5) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSampleSize(self) -> int: ... + def GetSortSample(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLengthDistribution': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLengthDistribution': ... + def SetSampleSize(self, _arg:int) -> None: ... + def SetSortSample(self, _arg:bool) -> None: ... + def SortSampleOff(self) -> None: ... + def SortSampleOn(self) -> None: ... + +class vtkMultiCorrelativeStatistics(vtkStatisticsAlgorithm): + ghosts_to_skip:'getset_descriptor' + median_absolute_deviation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Aggregate(self, __a:'vtkDataObjectCollection', __b:'vtkMultiBlockDataSet') -> None: ... + def GetGhostsToSkip(self) -> int: ... + def GetMedianAbsoluteDeviation(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MedianAbsoluteDeviationOff(self) -> None: ... + def MedianAbsoluteDeviationOn(self) -> None: ... + def NewInstance(self) -> 'vtkMultiCorrelativeStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMultiCorrelativeStatistics': ... + def SetGhostsToSkip(self, _arg:int) -> None: ... + def SetMedianAbsoluteDeviation(self, _arg:bool) -> None: ... + +class vtkOrderStatistics(vtkStatisticsAlgorithm): + class QuantileDefinitionType(int): ... + InverseCDF:'QuantileDefinitionType' + InverseCDFAveragedSteps:'QuantileDefinitionType' + NearestObservation:'QuantileDefinitionType' + ghosts_to_skip:'getset_descriptor' + maximum_histogram_size:'getset_descriptor' + number_of_intervals:'getset_descriptor' + quantile_definition:'getset_descriptor' + quantize:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Aggregate(self, __a:'vtkDataObjectCollection', __b:'vtkMultiBlockDataSet') -> None: ... + def GetGhostsToSkip(self) -> int: ... + def GetMaximumHistogramSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIntervals(self) -> int: ... + def GetQuantileDefinition(self) -> int: ... + def GetQuantize(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOrderStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOrderStatistics': ... + def SetGhostsToSkip(self, _arg:int) -> None: ... + def SetMaximumHistogramSize(self, _arg:int) -> None: ... + def SetNumberOfIntervals(self, _arg:int) -> None: ... + def SetParameter(self, parameter:str, index:int, value:'vtkVariant') -> bool: ... + @overload + def SetQuantileDefinition(self, _arg:'QuantileDefinitionType') -> None: ... + @overload + def SetQuantileDefinition(self, __a:int) -> None: ... + def SetQuantize(self, _arg:bool) -> None: ... + +class vtkPCAStatistics(vtkMultiCorrelativeStatistics): + class NormalizationType(int): ... + class ProjectionType(int): ... + DIAGONAL_SPECIFIED:'NormalizationType' + DIAGONAL_VARIANCE:'NormalizationType' + FIXED_BASIS_ENERGY:'ProjectionType' + FIXED_BASIS_SIZE:'ProjectionType' + FULL_BASIS:'ProjectionType' + NONE:'NormalizationType' + NUM_BASIS_SCHEMES:'ProjectionType' + NUM_NORMALIZATION_SCHEMES:'NormalizationType' + TRIANGLE_SPECIFIED:'NormalizationType' + basis_scheme:'getset_descriptor' + basis_scheme_by_name:'getset_descriptor' + fixed_basis_energy:'getset_descriptor' + fixed_basis_size:'getset_descriptor' + normalization_scheme:'getset_descriptor' + normalization_scheme_by_name:'getset_descriptor' + specified_normalization:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBasisScheme(self) -> int: ... + def GetBasisSchemeName(self, schemeIndex:int) -> str: ... + @overload + def GetEigenvalue(self, request:int, i:int) -> float: ... + @overload + def GetEigenvalue(self, i:int) -> float: ... + @overload + def GetEigenvalues(self, request:int, __b:'vtkDoubleArray') -> None: ... + @overload + def GetEigenvalues(self, __a:'vtkDoubleArray') -> None: ... + @overload + def GetEigenvector(self, i:int, eigenvector:'vtkDoubleArray') -> None: ... + @overload + def GetEigenvector(self, request:int, i:int, eigenvector:'vtkDoubleArray') -> None: ... + @overload + def GetEigenvectors(self, request:int, eigenvectors:'vtkDoubleArray') -> None: ... + @overload + def GetEigenvectors(self, eigenvectors:'vtkDoubleArray') -> None: ... + def GetFixedBasisEnergy(self) -> float: ... + def GetFixedBasisEnergyMaxValue(self) -> float: ... + def GetFixedBasisEnergyMinValue(self) -> float: ... + def GetFixedBasisSize(self) -> int: ... + def GetNormalizationScheme(self) -> int: ... + def GetNormalizationSchemeName(self, scheme:int) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSpecifiedNormalization(self) -> 'vtkTable': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPCAStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPCAStatistics': ... + def SetBasisScheme(self, _arg:int) -> None: ... + def SetBasisSchemeByName(self, schemeName:str) -> None: ... + def SetFixedBasisEnergy(self, _arg:float) -> None: ... + def SetFixedBasisSize(self, _arg:int) -> None: ... + def SetNormalizationScheme(self, _arg:int) -> None: ... + def SetNormalizationSchemeByName(self, schemeName:str) -> None: ... + def SetParameter(self, parameter:str, index:int, value:'vtkVariant') -> bool: ... + def SetSpecifiedNormalization(self, __a:'vtkTable') -> None: ... + +class vtkStrahlerMetric(vtkmodules.vtkCommonExecutionModel.vtkTreeAlgorithm): + max_strahler:'getset_descriptor' + metric_array_name:'getset_descriptor' + normalize:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaxStrahler(self) -> float: ... + def GetNormalize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStrahlerMetric': ... + def NormalizeOff(self) -> None: ... + def NormalizeOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStrahlerMetric': ... + def SetMetricArrayName(self, _arg:str) -> None: ... + def SetNormalize(self, _arg:int) -> None: ... + +class vtkStreamingStatistics(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + class InputPorts(int): ... + class OutputIndices(int): ... + INPUT_DATA:'InputPorts' + INPUT_MODEL:'InputPorts' + LEARN_PARAMETERS:'InputPorts' + OUTPUT_DATA:'OutputIndices' + OUTPUT_MODEL:'OutputIndices' + OUTPUT_TEST:'OutputIndices' + statistics_algorithm:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStreamingStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStreamingStatistics': ... + def SetStatisticsAlgorithm(self, __a:'vtkStatisticsAlgorithm') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTemporal.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTemporal.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..2cbb0fd Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTemporal.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTemporal.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTemporal.pyi new file mode 100644 index 0000000..7fdb5e2 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTemporal.pyi @@ -0,0 +1,118 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkFiltersCore + +class vtkCriticalTime(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + class ComponentModeType(int): ... + class ThresholdType(int): ... + COMPONENT_MODE_USE_ALL:'ComponentModeType' + COMPONENT_MODE_USE_ANY:'ComponentModeType' + COMPONENT_MODE_USE_SELECTED:'ComponentModeType' + THRESHOLD_BETWEEN:'ThresholdType' + THRESHOLD_LOWER:'ThresholdType' + THRESHOLD_UPPER:'ThresholdType' + component_mode:'getset_descriptor' + lower_threshold:'getset_descriptor' + selected_component:'getset_descriptor' + threshold_criterion:'getset_descriptor' + upper_threshold:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetComponentMode(self) -> int: ... + def GetComponentModeAsString(self) -> str: ... + def GetComponentModeMaxValue(self) -> int: ... + def GetComponentModeMinValue(self) -> int: ... + def GetLowerThreshold(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSelectedComponent(self) -> int: ... + def GetSelectedComponentMaxValue(self) -> int: ... + def GetSelectedComponentMinValue(self) -> int: ... + def GetThresholdCriterion(self) -> int: ... + def GetThresholdCriterionMaxValue(self) -> int: ... + def GetThresholdCriterionMinValue(self) -> int: ... + def GetThresholdFunctionAsString(self) -> str: ... + def GetUpperThreshold(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCriticalTime': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCriticalTime': ... + def SetComponentMode(self, _arg:int) -> None: ... + def SetComponentModeToUseAll(self) -> None: ... + def SetComponentModeToUseAny(self) -> None: ... + def SetComponentModeToUseSelected(self) -> None: ... + def SetLowerThreshold(self, _arg:float) -> None: ... + def SetSelectedComponent(self, _arg:int) -> None: ... + def SetThresholdCriterion(self, _arg:int) -> None: ... + def SetThresholdCriterionToBetween(self) -> None: ... + def SetThresholdCriterionToLower(self) -> None: ... + def SetThresholdCriterionToUpper(self) -> None: ... + def SetUpperThreshold(self, _arg:float) -> None: ... + @staticmethod + def TimeStepsArrayName() -> str: ... + +class vtkDataObjectMeshCache(vtkmodules.vtkCommonCore.vtkObject): + consumer:'getset_descriptor' + original_data_object:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddOriginalIds(self, attribute:int, name:str) -> None: ... + def ClearOriginalIds(self) -> None: ... + def CopyCacheToDataObject(self, output:'vtkDataObject') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InvalidateCache(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsSupportedData(self, dataobject:'vtkDataObject') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataObjectMeshCache': ... + def RemoveOriginalIds(self, attribute:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataObjectMeshCache': ... + def SetConsumer(self, _arg:'vtkAlgorithm') -> None: ... + def SetOriginalDataObject(self, original:'vtkDataObject') -> None: ... + def UpdateCache(self, newObject:'vtkDataObject') -> None: ... + +class vtkForceStaticMesh(vtkmodules.vtkFiltersCore.vtkPassThrough): + force_cache_computation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ForceCacheComputationOff(self) -> None: ... + def ForceCacheComputationOn(self) -> None: ... + def GetForceCacheComputation(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkForceStaticMesh': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkForceStaticMesh': ... + def SetForceCacheComputation(self, _arg:bool) -> None: ... + +class vtkTemporalSmoothing(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + temporal_window_half_width:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTemporalWindowHalfWidth(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTemporalSmoothing': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTemporalSmoothing': ... + def SetTemporalWindowHalfWidth(self, _arg:int) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTensor.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTensor.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..470a9eb Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTensor.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTensor.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTensor.pyi new file mode 100644 index 0000000..2b71ba6 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTensor.pyi @@ -0,0 +1,59 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkTensorPrincipalInvariants(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + cell_data_array_selection:'getset_descriptor' + point_data_array_selection:'getset_descriptor' + scale_vectors:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetScaleVectors(self) -> bool: ... + @staticmethod + def GetSigmaValueArrayName(baseName:str, index:int) -> str: ... + @staticmethod + def GetSigmaVectorArrayName(baseName:str, index:int) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTensorPrincipalInvariants': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTensorPrincipalInvariants': ... + def SetScaleVectors(self, _arg:bool) -> None: ... + +class vtkYieldCriteria(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + class Criterion(int): + PrincipalStress:'Criterion' + Tresca:'Criterion' + VonMises:'Criterion' + cell_data_array_selection:'getset_descriptor' + criteria_selection:'getset_descriptor' + point_data_array_selection:'getset_descriptor' + scale_vectors:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetCriteriaSelection(self) -> 'vtkDataArraySelection': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetScaleVectors(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkYieldCriteria': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkYieldCriteria': ... + def SetScaleVectors(self, _arg:bool) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTexture.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTexture.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..8f47b95 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTexture.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTexture.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTexture.pyi new file mode 100644 index 0000000..c5216e7 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTexture.pyi @@ -0,0 +1,276 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkImplicitTextureCoords(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + flip_texture:'getset_descriptor' + r_function:'getset_descriptor' + s_function:'getset_descriptor' + t_function:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FlipTextureOff(self) -> None: ... + def FlipTextureOn(self) -> None: ... + def GetFlipTexture(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRFunction(self) -> 'vtkImplicitFunction': ... + def GetSFunction(self) -> 'vtkImplicitFunction': ... + def GetTFunction(self) -> 'vtkImplicitFunction': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitTextureCoords': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitTextureCoords': ... + def SetFlipTexture(self, _arg:int) -> None: ... + def SetRFunction(self, __a:'vtkImplicitFunction') -> None: ... + def SetSFunction(self, __a:'vtkImplicitFunction') -> None: ... + def SetTFunction(self, __a:'vtkImplicitFunction') -> None: ... + +class vtkScalarsToTextureFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + texture_dimensions:'getset_descriptor' + transfer_function:'getset_descriptor' + use_transfer_function:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTextureDimensions(self) -> Tuple[int, int]: ... + def GetTransferFunction(self) -> 'vtkScalarsToColors': ... + def GetUseTransferFunction(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkScalarsToTextureFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkScalarsToTextureFilter': ... + @overload + def SetTextureDimensions(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetTextureDimensions(self, _arg:Sequence[int]) -> None: ... + def SetTransferFunction(self, stc:'vtkScalarsToColors') -> None: ... + def SetUseTransferFunction(self, _arg:bool) -> None: ... + def UseTransferFunctionOff(self) -> None: ... + def UseTransferFunctionOn(self) -> None: ... + +class vtkTextureMapToCylinder(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + automatic_cylinder_generation:'getset_descriptor' + point1:'getset_descriptor' + point2:'getset_descriptor' + prevent_seam:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutomaticCylinderGenerationOff(self) -> None: ... + def AutomaticCylinderGenerationOn(self) -> None: ... + def GetAutomaticCylinderGeneration(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoint1(self) -> Tuple[float, float, float]: ... + def GetPoint2(self) -> Tuple[float, float, float]: ... + def GetPreventSeam(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTextureMapToCylinder': ... + def PreventSeamOff(self) -> None: ... + def PreventSeamOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTextureMapToCylinder': ... + def SetAutomaticCylinderGeneration(self, _arg:int) -> None: ... + @overload + def SetPoint1(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPoint1(self, _arg:Sequence[float]) -> None: ... + @overload + def SetPoint2(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPoint2(self, _arg:Sequence[float]) -> None: ... + def SetPreventSeam(self, _arg:int) -> None: ... + +class vtkTextureMapToPlane(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + automatic_plane_generation:'getset_descriptor' + normal:'getset_descriptor' + origin:'getset_descriptor' + point1:'getset_descriptor' + point2:'getset_descriptor' + s_range:'getset_descriptor' + t_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutomaticPlaneGenerationOff(self) -> None: ... + def AutomaticPlaneGenerationOn(self) -> None: ... + def GetAutomaticPlaneGeneration(self) -> int: ... + def GetNormal(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetPoint1(self) -> Tuple[float, float, float]: ... + def GetPoint2(self) -> Tuple[float, float, float]: ... + def GetSRange(self) -> Tuple[float, float]: ... + def GetTRange(self) -> Tuple[float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTextureMapToPlane': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTextureMapToPlane': ... + def SetAutomaticPlaneGeneration(self, _arg:int) -> None: ... + @overload + def SetNormal(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetNormal(self, _arg:Sequence[float]) -> None: ... + @overload + def SetOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOrigin(self, _arg:Sequence[float]) -> None: ... + @overload + def SetPoint1(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPoint1(self, _arg:Sequence[float]) -> None: ... + @overload + def SetPoint2(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPoint2(self, _arg:Sequence[float]) -> None: ... + @overload + def SetSRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetSRange(self, _arg:Sequence[float]) -> None: ... + @overload + def SetTRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetTRange(self, _arg:Sequence[float]) -> None: ... + +class vtkTextureMapToSphere(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + automatic_sphere_generation:'getset_descriptor' + center:'getset_descriptor' + prevent_seam:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutomaticSphereGenerationOff(self) -> None: ... + def AutomaticSphereGenerationOn(self) -> None: ... + def ComputeCenter(self, input:'vtkDataSet') -> None: ... + def GetAutomaticSphereGeneration(self) -> int: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPreventSeam(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTextureMapToSphere': ... + def PreventSeamOff(self) -> None: ... + def PreventSeamOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTextureMapToSphere': ... + def SetAutomaticSphereGeneration(self, _arg:int) -> None: ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetPreventSeam(self, _arg:int) -> None: ... + +class vtkThresholdTextureCoords(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + in_texture_coord:'getset_descriptor' + lower_threshold:'getset_descriptor' + out_texture_coord:'getset_descriptor' + texture_dimension:'getset_descriptor' + upper_threshold:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInTextureCoord(self) -> Tuple[float, float, float]: ... + def GetLowerThreshold(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutTextureCoord(self) -> Tuple[float, float, float]: ... + def GetTextureDimension(self) -> int: ... + def GetTextureDimensionMaxValue(self) -> int: ... + def GetTextureDimensionMinValue(self) -> int: ... + def GetUpperThreshold(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkThresholdTextureCoords': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkThresholdTextureCoords': ... + @overload + def SetInTextureCoord(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetInTextureCoord(self, _arg:Sequence[float]) -> None: ... + @overload + def SetOutTextureCoord(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOutTextureCoord(self, _arg:Sequence[float]) -> None: ... + def SetTextureDimension(self, _arg:int) -> None: ... + def ThresholdBetween(self, lower:float, upper:float) -> None: ... + def ThresholdByLower(self, lower:float) -> None: ... + def ThresholdByUpper(self, upper:float) -> None: ... + +class vtkTransformTextureCoords(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + flip_r:'getset_descriptor' + flip_s:'getset_descriptor' + flip_t:'getset_descriptor' + origin:'getset_descriptor' + position:'getset_descriptor' + scale:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddPosition(self, deltaR:float, deltaS:float, deltaT:float) -> None: ... + @overload + def AddPosition(self, deltaPosition:MutableSequence[float]) -> None: ... + def FlipROff(self) -> None: ... + def FlipROn(self) -> None: ... + def FlipSOff(self) -> None: ... + def FlipSOn(self) -> None: ... + def FlipTOff(self) -> None: ... + def FlipTOn(self) -> None: ... + def GetFlipR(self) -> int: ... + def GetFlipS(self) -> int: ... + def GetFlipT(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetPosition(self) -> Tuple[float, float, float]: ... + def GetScale(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTransformTextureCoords': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransformTextureCoords': ... + def SetFlipR(self, _arg:int) -> None: ... + def SetFlipS(self, _arg:int) -> None: ... + def SetFlipT(self, _arg:int) -> None: ... + @overload + def SetOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOrigin(self, _arg:Sequence[float]) -> None: ... + @overload + def SetPosition(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPosition(self, _arg:Sequence[float]) -> None: ... + @overload + def SetScale(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetScale(self, _arg:Sequence[float]) -> None: ... + +class vtkTriangularTCoords(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTriangularTCoords': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTriangularTCoords': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTopology.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTopology.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..94f42d9 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTopology.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTopology.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTopology.pyi new file mode 100644 index 0000000..1304aeb --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersTopology.pyi @@ -0,0 +1,50 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkFiberSurface(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class BaseVertexType(int): ... + class ClipVertexType(int): ... + bv_edge_01:'BaseVertexType' + bv_edge_02:'BaseVertexType' + bv_edge_03:'BaseVertexType' + bv_edge_12:'BaseVertexType' + bv_edge_13:'BaseVertexType' + bv_edge_23:'BaseVertexType' + bv_not_used:'BaseVertexType' + bv_vertex_0:'BaseVertexType' + bv_vertex_1:'BaseVertexType' + bv_vertex_2:'BaseVertexType' + bv_vertex_3:'BaseVertexType' + edge_0_parm_0:'ClipVertexType' + edge_0_parm_1:'ClipVertexType' + edge_1_parm_0:'ClipVertexType' + edge_1_parm_1:'ClipVertexType' + edge_2_parm_0:'ClipVertexType' + edge_2_parm_1:'ClipVertexType' + field1:'getset_descriptor' + field2:'getset_descriptor' + not_used:'ClipVertexType' + vertex_0:'ClipVertexType' + vertex_1:'ClipVertexType' + vertex_2:'ClipVertexType' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFiberSurface': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFiberSurface': ... + def SetField1(self, fieldName:str) -> None: ... + def SetField2(self, fieldName:str) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersVerdict.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersVerdict.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..5092f73 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersVerdict.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersVerdict.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersVerdict.pyi new file mode 100644 index 0000000..5696937 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkFiltersVerdict.pyi @@ -0,0 +1,551 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkBoundaryMeshQuality(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + angle_face_normal_and_cell_center_to_face_center_vector:'getset_descriptor' + distance_from_cell_center_to_face_center:'getset_descriptor' + distance_from_cell_center_to_face_plane:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AngleFaceNormalAndCellCenterToFaceCenterVectorOff(self) -> None: ... + def AngleFaceNormalAndCellCenterToFaceCenterVectorOn(self) -> None: ... + def DistanceFromCellCenterToFaceCenterOff(self) -> None: ... + def DistanceFromCellCenterToFaceCenterOn(self) -> None: ... + def DistanceFromCellCenterToFacePlaneOff(self) -> None: ... + def DistanceFromCellCenterToFacePlaneOn(self) -> None: ... + def GetAngleFaceNormalAndCellCenterToFaceCenterVector(self) -> bool: ... + def GetDistanceFromCellCenterToFaceCenter(self) -> bool: ... + def GetDistanceFromCellCenterToFacePlane(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBoundaryMeshQuality': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBoundaryMeshQuality': ... + def SetAngleFaceNormalAndCellCenterToFaceCenterVector(self, _arg:bool) -> None: ... + def SetDistanceFromCellCenterToFaceCenter(self, _arg:bool) -> None: ... + def SetDistanceFromCellCenterToFacePlane(self, _arg:bool) -> None: ... + +class vtkCellQuality(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + quality_measure:'getset_descriptor' + undefined_quality:'getset_descriptor' + unsupported_geometry:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUndefinedQuality(self) -> float: ... + def GetUnsupportedGeometry(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellQuality': ... + def PixelArea(self, __a:'vtkCell') -> float: ... + def PolygonArea(self, __a:'vtkCell') -> float: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellQuality': ... + def SetQualityMeasure(self, measure:int) -> None: ... + def SetQualityMeasureToArea(self) -> None: ... + def SetQualityMeasureToAspectFrobenius(self) -> None: ... + def SetQualityMeasureToAspectGamma(self) -> None: ... + def SetQualityMeasureToAspectRatio(self) -> None: ... + def SetQualityMeasureToCollapseRatio(self) -> None: ... + def SetQualityMeasureToCondition(self) -> None: ... + def SetQualityMeasureToDiagonal(self) -> None: ... + def SetQualityMeasureToDimension(self) -> None: ... + def SetQualityMeasureToDistortion(self) -> None: ... + def SetQualityMeasureToJacobian(self) -> None: ... + def SetQualityMeasureToMaxAngle(self) -> None: ... + def SetQualityMeasureToMaxAspectFrobenius(self) -> None: ... + def SetQualityMeasureToMaxEdgeRatio(self) -> None: ... + def SetQualityMeasureToMedAspectFrobenius(self) -> None: ... + def SetQualityMeasureToMinAngle(self) -> None: ... + def SetQualityMeasureToOddy(self) -> None: ... + def SetQualityMeasureToRadiusRatio(self) -> None: ... + def SetQualityMeasureToRelativeSizeSquared(self) -> None: ... + def SetQualityMeasureToScaledJacobian(self) -> None: ... + def SetQualityMeasureToShape(self) -> None: ... + def SetQualityMeasureToShapeAndSize(self) -> None: ... + def SetQualityMeasureToShear(self) -> None: ... + def SetQualityMeasureToShearAndSize(self) -> None: ... + def SetQualityMeasureToSkew(self) -> None: ... + def SetQualityMeasureToStretch(self) -> None: ... + def SetQualityMeasureToTaper(self) -> None: ... + def SetQualityMeasureToVolume(self) -> None: ... + def SetQualityMeasureToWarpage(self) -> None: ... + def SetUndefinedQuality(self, _arg:float) -> None: ... + def SetUnsupportedGeometry(self, _arg:float) -> None: ... + def TriangleStripArea(self, __a:'vtkCell') -> float: ... + +class vtkCellSizeFilter(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + area_array_name:'getset_descriptor' + compute_area:'getset_descriptor' + compute_length:'getset_descriptor' + compute_sum:'getset_descriptor' + compute_vertex_count:'getset_descriptor' + compute_volume:'getset_descriptor' + length_array_name:'getset_descriptor' + vertex_count_array_name:'getset_descriptor' + volume_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeAreaOff(self) -> None: ... + def ComputeAreaOn(self) -> None: ... + def ComputeLengthOff(self) -> None: ... + def ComputeLengthOn(self) -> None: ... + def ComputeSumOff(self) -> None: ... + def ComputeSumOn(self) -> None: ... + def ComputeVertexCountOff(self) -> None: ... + def ComputeVertexCountOn(self) -> None: ... + def ComputeVolumeOff(self) -> None: ... + def ComputeVolumeOn(self) -> None: ... + def GetAreaArrayName(self) -> str: ... + def GetComputeArea(self) -> bool: ... + def GetComputeLength(self) -> bool: ... + def GetComputeSum(self) -> bool: ... + def GetComputeVertexCount(self) -> bool: ... + def GetComputeVolume(self) -> bool: ... + def GetLengthArrayName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVertexCountArrayName(self) -> str: ... + def GetVolumeArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellSizeFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellSizeFilter': ... + def SetAreaArrayName(self, _arg:str) -> None: ... + def SetComputeArea(self, _arg:bool) -> None: ... + def SetComputeLength(self, _arg:bool) -> None: ... + def SetComputeSum(self, _arg:bool) -> None: ... + def SetComputeVertexCount(self, _arg:bool) -> None: ... + def SetComputeVolume(self, _arg:bool) -> None: ... + def SetLengthArrayName(self, _arg:str) -> None: ... + def SetVertexCountArrayName(self, _arg:str) -> None: ... + def SetVolumeArrayName(self, _arg:str) -> None: ... + +class vtkMatrixMathFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + operation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOperation(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMatrixMathFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMatrixMathFilter': ... + def SetOperation(self, _arg:int) -> None: ... + def SetOperationToDeterminant(self) -> None: ... + def SetOperationToEigenvalue(self) -> None: ... + def SetOperationToEigenvector(self) -> None: ... + def SetOperationToInverse(self) -> None: ... + +class vtkMeshQuality(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + class QualityMeasureTypes(int): + AREA:'QualityMeasureTypes' + ASPECT_FROBENIUS:'QualityMeasureTypes' + ASPECT_GAMMA:'QualityMeasureTypes' + ASPECT_RATIO:'QualityMeasureTypes' + COLLAPSE_RATIO:'QualityMeasureTypes' + CONDITION:'QualityMeasureTypes' + DIAGONAL:'QualityMeasureTypes' + DIMENSION:'QualityMeasureTypes' + DISTORTION:'QualityMeasureTypes' + EDGE_RATIO:'QualityMeasureTypes' + EQUIANGLE_SKEW:'QualityMeasureTypes' + EQUIVOLUME_SKEW:'QualityMeasureTypes' + JACOBIAN:'QualityMeasureTypes' + MAX_ANGLE:'QualityMeasureTypes' + MAX_ASPECT_FROBENIUS:'QualityMeasureTypes' + MAX_EDGE_RATIO:'QualityMeasureTypes' + MAX_STRETCH:'QualityMeasureTypes' + MEAN_ASPECT_FROBENIUS:'QualityMeasureTypes' + MEAN_RATIO:'QualityMeasureTypes' + MED_ASPECT_FROBENIUS:'QualityMeasureTypes' + MIN_ANGLE:'QualityMeasureTypes' + NODAL_JACOBIAN_RATIO:'QualityMeasureTypes' + NONE:'QualityMeasureTypes' + NORMALIZED_INRADIUS:'QualityMeasureTypes' + ODDY:'QualityMeasureTypes' + RADIUS_RATIO:'QualityMeasureTypes' + RELATIVE_SIZE_SQUARED:'QualityMeasureTypes' + SCALED_JACOBIAN:'QualityMeasureTypes' + SHAPE:'QualityMeasureTypes' + SHAPE_AND_SIZE:'QualityMeasureTypes' + SHEAR:'QualityMeasureTypes' + SHEAR_AND_SIZE:'QualityMeasureTypes' + SKEW:'QualityMeasureTypes' + SQUISH_INDEX:'QualityMeasureTypes' + STRETCH:'QualityMeasureTypes' + TAPER:'QualityMeasureTypes' + TOTAL_QUALITY_MEASURE_TYPES:'QualityMeasureTypes' + VOLUME:'QualityMeasureTypes' + WARPAGE:'QualityMeasureTypes' + hex_quality_measure:'getset_descriptor' + linear_approximation:'getset_descriptor' + pyramid_quality_measure:'getset_descriptor' + quad_quality_measure:'getset_descriptor' + ratio:'getset_descriptor' + save_cell_quality:'getset_descriptor' + tet_quality_measure:'getset_descriptor' + triangle_quality_measure:'getset_descriptor' + wedge_quality_measure:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetHexQualityMeasure(self) -> 'QualityMeasureTypes': ... + def GetLinearApproximation(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPyramidQualityMeasure(self) -> 'QualityMeasureTypes': ... + def GetQuadQualityMeasure(self) -> 'QualityMeasureTypes': ... + def GetRatio(self) -> int: ... + def GetSaveCellQuality(self) -> int: ... + def GetTetQualityMeasure(self) -> 'QualityMeasureTypes': ... + def GetTriangleQualityMeasure(self) -> 'QualityMeasureTypes': ... + def GetWedgeQualityMeasure(self) -> 'QualityMeasureTypes': ... + @staticmethod + def HexCondition(cell:'vtkCell') -> float: ... + @staticmethod + def HexDiagonal(cell:'vtkCell') -> float: ... + @staticmethod + def HexDimension(cell:'vtkCell') -> float: ... + @staticmethod + def HexDistortion(cell:'vtkCell') -> float: ... + @staticmethod + def HexEdgeRatio(cell:'vtkCell') -> float: ... + @staticmethod + def HexEquiangleSkew(cell:'vtkCell') -> float: ... + @staticmethod + def HexJacobian(cell:'vtkCell') -> float: ... + @staticmethod + def HexMaxAspectFrobenius(cell:'vtkCell') -> float: ... + @staticmethod + def HexMaxEdgeRatio(cell:'vtkCell') -> float: ... + @staticmethod + def HexMedAspectFrobenius(cell:'vtkCell') -> float: ... + @staticmethod + def HexNodalJacobianRatio(cell:'vtkCell') -> float: ... + @staticmethod + def HexOddy(cell:'vtkCell') -> float: ... + @staticmethod + def HexRelativeSizeSquared(cell:'vtkCell') -> float: ... + @staticmethod + def HexScaledJacobian(cell:'vtkCell') -> float: ... + @staticmethod + def HexShape(cell:'vtkCell') -> float: ... + @staticmethod + def HexShapeAndSize(cell:'vtkCell') -> float: ... + @staticmethod + def HexShear(cell:'vtkCell') -> float: ... + @staticmethod + def HexShearAndSize(cell:'vtkCell') -> float: ... + @staticmethod + def HexSkew(cell:'vtkCell') -> float: ... + @staticmethod + def HexStretch(cell:'vtkCell') -> float: ... + @staticmethod + def HexTaper(cell:'vtkCell') -> float: ... + @staticmethod + def HexVolume(cell:'vtkCell') -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LinearApproximationOff(self) -> None: ... + def LinearApproximationOn(self) -> None: ... + def NewInstance(self) -> 'vtkMeshQuality': ... + @staticmethod + def PyramidEquiangleSkew(cell:'vtkCell') -> float: ... + @staticmethod + def PyramidJacobian(cell:'vtkCell') -> float: ... + @staticmethod + def PyramidScaledJacobian(cell:'vtkCell') -> float: ... + @staticmethod + def PyramidShape(cell:'vtkCell') -> float: ... + @staticmethod + def PyramidVolume(cell:'vtkCell') -> float: ... + @staticmethod + def QuadArea(cell:'vtkCell') -> float: ... + @staticmethod + def QuadAspectRatio(cell:'vtkCell') -> float: ... + @staticmethod + def QuadCondition(cell:'vtkCell') -> float: ... + @staticmethod + def QuadDistortion(cell:'vtkCell') -> float: ... + @staticmethod + def QuadEdgeRatio(cell:'vtkCell') -> float: ... + @staticmethod + def QuadEquiangleSkew(cell:'vtkCell') -> float: ... + @staticmethod + def QuadJacobian(cell:'vtkCell') -> float: ... + @staticmethod + def QuadMaxAngle(cell:'vtkCell') -> float: ... + @staticmethod + def QuadMaxAspectFrobenius(cell:'vtkCell') -> float: ... + @staticmethod + def QuadMaxEdgeRatio(cell:'vtkCell') -> float: ... + @staticmethod + def QuadMedAspectFrobenius(cell:'vtkCell') -> float: ... + @staticmethod + def QuadMinAngle(cell:'vtkCell') -> float: ... + @staticmethod + def QuadOddy(cell:'vtkCell') -> float: ... + @staticmethod + def QuadRadiusRatio(cell:'vtkCell') -> float: ... + @staticmethod + def QuadRelativeSizeSquared(cell:'vtkCell') -> float: ... + @staticmethod + def QuadScaledJacobian(cell:'vtkCell') -> float: ... + @staticmethod + def QuadShape(cell:'vtkCell') -> float: ... + @staticmethod + def QuadShapeAndSize(cell:'vtkCell') -> float: ... + @staticmethod + def QuadShear(cell:'vtkCell') -> float: ... + @staticmethod + def QuadShearAndSize(cell:'vtkCell') -> float: ... + @staticmethod + def QuadSkew(cell:'vtkCell') -> float: ... + @staticmethod + def QuadStretch(cell:'vtkCell') -> float: ... + @staticmethod + def QuadTaper(cell:'vtkCell') -> float: ... + @staticmethod + def QuadWarpage(cell:'vtkCell') -> float: ... + def RatioOff(self) -> None: ... + def RatioOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMeshQuality': ... + def SaveCellQualityOff(self) -> None: ... + def SaveCellQualityOn(self) -> None: ... + @overload + def SetHexQualityMeasure(self, _arg:'QualityMeasureTypes') -> None: ... + @overload + def SetHexQualityMeasure(self, measure:int) -> None: ... + def SetHexQualityMeasureToCondition(self) -> None: ... + def SetHexQualityMeasureToDiagonal(self) -> None: ... + def SetHexQualityMeasureToDimension(self) -> None: ... + def SetHexQualityMeasureToDistortion(self) -> None: ... + def SetHexQualityMeasureToEdgeRatio(self) -> None: ... + def SetHexQualityMeasureToEquiangleSkew(self) -> None: ... + def SetHexQualityMeasureToJacobian(self) -> None: ... + def SetHexQualityMeasureToMaxAspectFrobenius(self) -> None: ... + def SetHexQualityMeasureToMaxEdgeRatio(self) -> None: ... + def SetHexQualityMeasureToMedAspectFrobenius(self) -> None: ... + def SetHexQualityMeasureToNodalJacobianRatio(self) -> None: ... + def SetHexQualityMeasureToOddy(self) -> None: ... + def SetHexQualityMeasureToRelativeSizeSquared(self) -> None: ... + def SetHexQualityMeasureToScaledJacobian(self) -> None: ... + def SetHexQualityMeasureToShape(self) -> None: ... + def SetHexQualityMeasureToShapeAndSize(self) -> None: ... + def SetHexQualityMeasureToShear(self) -> None: ... + def SetHexQualityMeasureToShearAndSize(self) -> None: ... + def SetHexQualityMeasureToSkew(self) -> None: ... + def SetHexQualityMeasureToStretch(self) -> None: ... + def SetHexQualityMeasureToTaper(self) -> None: ... + def SetHexQualityMeasureToVolume(self) -> None: ... + def SetLinearApproximation(self, _arg:bool) -> None: ... + @overload + def SetPyramidQualityMeasure(self, _arg:'QualityMeasureTypes') -> None: ... + @overload + def SetPyramidQualityMeasure(self, measure:int) -> None: ... + def SetPyramidQualityMeasureToEquiangleSkew(self) -> None: ... + def SetPyramidQualityMeasureToJacobian(self) -> None: ... + def SetPyramidQualityMeasureToScaledJacobian(self) -> None: ... + def SetPyramidQualityMeasureToShape(self) -> None: ... + def SetPyramidQualityMeasureToVolume(self) -> None: ... + @overload + def SetQuadQualityMeasure(self, _arg:'QualityMeasureTypes') -> None: ... + @overload + def SetQuadQualityMeasure(self, measure:int) -> None: ... + def SetQuadQualityMeasureToArea(self) -> None: ... + def SetQuadQualityMeasureToAspectRatio(self) -> None: ... + def SetQuadQualityMeasureToCondition(self) -> None: ... + def SetQuadQualityMeasureToDistortion(self) -> None: ... + def SetQuadQualityMeasureToEdgeRatio(self) -> None: ... + def SetQuadQualityMeasureToEquiangleSkew(self) -> None: ... + def SetQuadQualityMeasureToJacobian(self) -> None: ... + def SetQuadQualityMeasureToMaxAngle(self) -> None: ... + def SetQuadQualityMeasureToMaxAspectFrobenius(self) -> None: ... + def SetQuadQualityMeasureToMaxEdgeRatio(self) -> None: ... + def SetQuadQualityMeasureToMedAspectFrobenius(self) -> None: ... + def SetQuadQualityMeasureToMinAngle(self) -> None: ... + def SetQuadQualityMeasureToOddy(self) -> None: ... + def SetQuadQualityMeasureToRadiusRatio(self) -> None: ... + def SetQuadQualityMeasureToRelativeSizeSquared(self) -> None: ... + def SetQuadQualityMeasureToScaledJacobian(self) -> None: ... + def SetQuadQualityMeasureToShape(self) -> None: ... + def SetQuadQualityMeasureToShapeAndSize(self) -> None: ... + def SetQuadQualityMeasureToShear(self) -> None: ... + def SetQuadQualityMeasureToShearAndSize(self) -> None: ... + def SetQuadQualityMeasureToSkew(self) -> None: ... + def SetQuadQualityMeasureToStretch(self) -> None: ... + def SetQuadQualityMeasureToTaper(self) -> None: ... + def SetQuadQualityMeasureToWarpage(self) -> None: ... + def SetRatio(self, r:int) -> None: ... + def SetSaveCellQuality(self, _arg:int) -> None: ... + @overload + def SetTetQualityMeasure(self, _arg:'QualityMeasureTypes') -> None: ... + @overload + def SetTetQualityMeasure(self, measure:int) -> None: ... + def SetTetQualityMeasureToAspectFrobenius(self) -> None: ... + def SetTetQualityMeasureToAspectGamma(self) -> None: ... + def SetTetQualityMeasureToAspectRatio(self) -> None: ... + def SetTetQualityMeasureToCollapseRatio(self) -> None: ... + def SetTetQualityMeasureToCondition(self) -> None: ... + def SetTetQualityMeasureToDistortion(self) -> None: ... + def SetTetQualityMeasureToEdgeRatio(self) -> None: ... + def SetTetQualityMeasureToEquiangleSkew(self) -> None: ... + def SetTetQualityMeasureToEquivolumeSkew(self) -> None: ... + def SetTetQualityMeasureToJacobian(self) -> None: ... + def SetTetQualityMeasureToMeanRatio(self) -> None: ... + def SetTetQualityMeasureToMinAngle(self) -> None: ... + def SetTetQualityMeasureToNormalizedInradius(self) -> None: ... + def SetTetQualityMeasureToRadiusRatio(self) -> None: ... + def SetTetQualityMeasureToRelativeSizeSquared(self) -> None: ... + def SetTetQualityMeasureToScaledJacobian(self) -> None: ... + def SetTetQualityMeasureToShape(self) -> None: ... + def SetTetQualityMeasureToShapeAndSize(self) -> None: ... + def SetTetQualityMeasureToSquishIndex(self) -> None: ... + def SetTetQualityMeasureToVolume(self) -> None: ... + @overload + def SetTriangleQualityMeasure(self, _arg:'QualityMeasureTypes') -> None: ... + @overload + def SetTriangleQualityMeasure(self, measure:int) -> None: ... + def SetTriangleQualityMeasureToArea(self) -> None: ... + def SetTriangleQualityMeasureToAspectFrobenius(self) -> None: ... + def SetTriangleQualityMeasureToAspectRatio(self) -> None: ... + def SetTriangleQualityMeasureToCondition(self) -> None: ... + def SetTriangleQualityMeasureToDistortion(self) -> None: ... + def SetTriangleQualityMeasureToEdgeRatio(self) -> None: ... + def SetTriangleQualityMeasureToEquiangleSkew(self) -> None: ... + def SetTriangleQualityMeasureToMaxAngle(self) -> None: ... + def SetTriangleQualityMeasureToMinAngle(self) -> None: ... + def SetTriangleQualityMeasureToNormalizedInradius(self) -> None: ... + def SetTriangleQualityMeasureToRadiusRatio(self) -> None: ... + def SetTriangleQualityMeasureToRelativeSizeSquared(self) -> None: ... + def SetTriangleQualityMeasureToScaledJacobian(self) -> None: ... + def SetTriangleQualityMeasureToShape(self) -> None: ... + def SetTriangleQualityMeasureToShapeAndSize(self) -> None: ... + @overload + def SetWedgeQualityMeasure(self, _arg:'QualityMeasureTypes') -> None: ... + @overload + def SetWedgeQualityMeasure(self, measure:int) -> None: ... + def SetWedgeQualityMeasureToCondition(self) -> None: ... + def SetWedgeQualityMeasureToDistortion(self) -> None: ... + def SetWedgeQualityMeasureToEdgeRatio(self) -> None: ... + def SetWedgeQualityMeasureToEquiangleSkew(self) -> None: ... + def SetWedgeQualityMeasureToJacobian(self) -> None: ... + def SetWedgeQualityMeasureToMaxAspectFrobenius(self) -> None: ... + def SetWedgeQualityMeasureToMaxStretch(self) -> None: ... + def SetWedgeQualityMeasureToMeanAspectFrobenius(self) -> None: ... + def SetWedgeQualityMeasureToScaledJacobian(self) -> None: ... + def SetWedgeQualityMeasureToShape(self) -> None: ... + def SetWedgeQualityMeasureToVolume(self) -> None: ... + @staticmethod + def TetAspectFrobenius(cell:'vtkCell') -> float: ... + @staticmethod + def TetAspectGamma(cell:'vtkCell') -> float: ... + @staticmethod + def TetAspectRatio(cell:'vtkCell') -> float: ... + @staticmethod + def TetCollapseRatio(cell:'vtkCell') -> float: ... + @staticmethod + def TetCondition(cell:'vtkCell') -> float: ... + @staticmethod + def TetDistortion(cell:'vtkCell') -> float: ... + @staticmethod + def TetEdgeRatio(cell:'vtkCell') -> float: ... + @staticmethod + def TetEquiangleSkew(cell:'vtkCell') -> float: ... + @staticmethod + def TetEquivolumeSkew(cell:'vtkCell') -> float: ... + @staticmethod + def TetJacobian(cell:'vtkCell') -> float: ... + @staticmethod + def TetMeanRatio(cell:'vtkCell') -> float: ... + @staticmethod + def TetMinAngle(cell:'vtkCell') -> float: ... + @staticmethod + def TetNormalizedInradius(cell:'vtkCell') -> float: ... + @staticmethod + def TetRadiusRatio(cell:'vtkCell') -> float: ... + @staticmethod + def TetRelativeSizeSquared(cell:'vtkCell') -> float: ... + @staticmethod + def TetScaledJacobian(cell:'vtkCell') -> float: ... + @staticmethod + def TetShape(cell:'vtkCell') -> float: ... + @staticmethod + def TetShapeAndSize(cell:'vtkCell') -> float: ... + @staticmethod + def TetSquishIndex(cell:'vtkCell') -> float: ... + @staticmethod + def TetVolume(cell:'vtkCell') -> float: ... + @staticmethod + def TriangleArea(cell:'vtkCell') -> float: ... + @staticmethod + def TriangleAspectFrobenius(cell:'vtkCell') -> float: ... + @staticmethod + def TriangleAspectRatio(cell:'vtkCell') -> float: ... + @staticmethod + def TriangleCondition(cell:'vtkCell') -> float: ... + @staticmethod + def TriangleDistortion(cell:'vtkCell') -> float: ... + @staticmethod + def TriangleEdgeRatio(cell:'vtkCell') -> float: ... + @staticmethod + def TriangleEquiangleSkew(cell:'vtkCell') -> float: ... + @staticmethod + def TriangleMaxAngle(cell:'vtkCell') -> float: ... + @staticmethod + def TriangleMinAngle(cell:'vtkCell') -> float: ... + @staticmethod + def TriangleNormalizedInradius(cell:'vtkCell') -> float: ... + @staticmethod + def TriangleRadiusRatio(cell:'vtkCell') -> float: ... + @staticmethod + def TriangleRelativeSizeSquared(cell:'vtkCell') -> float: ... + @staticmethod + def TriangleScaledJacobian(cell:'vtkCell') -> float: ... + @staticmethod + def TriangleShape(cell:'vtkCell') -> float: ... + @staticmethod + def TriangleShapeAndSize(cell:'vtkCell') -> float: ... + @staticmethod + def WedgeCondition(cell:'vtkCell') -> float: ... + @staticmethod + def WedgeDistortion(cell:'vtkCell') -> float: ... + @staticmethod + def WedgeEdgeRatio(cell:'vtkCell') -> float: ... + @staticmethod + def WedgeEquiangleSkew(cell:'vtkCell') -> float: ... + @staticmethod + def WedgeJacobian(cell:'vtkCell') -> float: ... + @staticmethod + def WedgeMaxAspectFrobenius(cell:'vtkCell') -> float: ... + @staticmethod + def WedgeMaxStretch(cell:'vtkCell') -> float: ... + @staticmethod + def WedgeMeanAspectFrobenius(cell:'vtkCell') -> float: ... + @staticmethod + def WedgeScaledJacobian(cell:'vtkCell') -> float: ... + @staticmethod + def WedgeShape(cell:'vtkCell') -> float: ... + @staticmethod + def WedgeVolume(cell:'vtkCell') -> float: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkGeovisCore.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkGeovisCore.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..3d448b1 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkGeovisCore.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkGeovisCore.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkGeovisCore.pyi new file mode 100644 index 0000000..cc3359a --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkGeovisCore.pyi @@ -0,0 +1,88 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonTransforms + +class vtkGeoProjection(vtkmodules.vtkCommonCore.vtkObject): + central_meridian:'getset_descriptor' + description:'getset_descriptor' + index:'getset_descriptor' + name:'getset_descriptor' + number_of_optional_parameters:'getset_descriptor' + number_of_projections:'getset_descriptor' + proj4_string:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClearOptionalParameters(self) -> None: ... + def GetCentralMeridian(self) -> float: ... + def GetDescription(self) -> str: ... + def GetIndex(self) -> int: ... + def GetName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfOptionalParameters(self) -> int: ... + @staticmethod + def GetNumberOfProjections() -> int: ... + def GetOptionalParameterKey(self, index:int) -> str: ... + def GetOptionalParameterValue(self, index:int) -> str: ... + def GetPROJ4String(self) -> str: ... + @staticmethod + def GetProjectionDescription(projection:int) -> str: ... + @staticmethod + def GetProjectionName(projection:int) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGeoProjection': ... + def RemoveOptionalParameter(self, __a:str) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGeoProjection': ... + def SetCentralMeridian(self, _arg:float) -> None: ... + def SetName(self, _arg:str) -> None: ... + def SetOptionalParameter(self, key:str, value:str) -> None: ... + def SetPROJ4String(self, _arg:str) -> None: ... + +class vtkGeoTransform(vtkmodules.vtkCommonTransforms.vtkAbstractTransform): + destination_projection:'getset_descriptor' + source_projection:'getset_descriptor' + transform_z_coordinate:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + @staticmethod + def ComputeUTMZone(lon:float, lat:float) -> int: ... + @overload + @staticmethod + def ComputeUTMZone(lonlat:MutableSequence[float]) -> int: ... + def GetDestinationProjection(self) -> 'vtkGeoProjection': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSourceProjection(self) -> 'vtkGeoProjection': ... + def GetTransformZCoordinate(self) -> bool: ... + def InternalTransformDerivative(self, in_:Sequence[float], out:MutableSequence[float], derivative:MutableSequence[MutableSequence[float]]) -> None: ... + def InternalTransformPoint(self, in_:Sequence[float], out:MutableSequence[float]) -> None: ... + def Inverse(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeTransform(self) -> 'vtkAbstractTransform': ... + def NewInstance(self) -> 'vtkGeoTransform': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGeoTransform': ... + @overload + def SetDestinationProjection(self, dest:'vtkGeoProjection') -> None: ... + @overload + def SetDestinationProjection(self, proj:str) -> None: ... + @overload + def SetSourceProjection(self, source:'vtkGeoProjection') -> None: ... + @overload + def SetSourceProjection(self, proj:str) -> None: ... + def SetTransformZCoordinate(self, _arg:bool) -> None: ... + def TransformPoints(self, src:'vtkPoints', dst:'vtkPoints') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOAMR.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOAMR.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..7e78861 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOAMR.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOAsynchronous.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOAsynchronous.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..8919eb8 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOAsynchronous.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOAsynchronous.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOAsynchronous.pyi new file mode 100644 index 0000000..4845a50 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOAsynchronous.pyi @@ -0,0 +1,28 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore + +class vtkThreadedImageWriter(vtkmodules.vtkCommonCore.vtkObject): + max_threads:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def EncodeAndWrite(self, image:'vtkImageData', fileName:str) -> None: ... + def Finalize(self) -> None: ... + def GetMaxThreads(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkThreadedImageWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkThreadedImageWriter': ... + def SetMaxThreads(self, __a:int) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOAvmesh.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOAvmesh.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..9d8ebf2 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOAvmesh.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCGNSReader.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCGNSReader.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..7820ec1 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCGNSReader.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCGNSReader.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCGNSReader.pyi new file mode 100644 index 0000000..54cb368 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCGNSReader.pyi @@ -0,0 +1,194 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkCGNSFileSeriesReader(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + controller:'getset_descriptor' + current_file_name:'getset_descriptor' + ignore_reader_time:'getset_descriptor' + reader:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddFileName(self, fname:str) -> None: ... + def CanReadFile(self, filename:str) -> int: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetCurrentFileName(self) -> str: ... + def GetIgnoreReaderTime(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReader(self) -> 'vtkCGNSReader': ... + def IgnoreReaderTimeOff(self) -> None: ... + def IgnoreReaderTimeOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCGNSFileSeriesReader': ... + def RemoveAllFileNames(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCGNSFileSeriesReader': ... + def SetController(self, controller:'vtkMultiProcessController') -> None: ... + def SetIgnoreReaderTime(self, _arg:bool) -> None: ... + def SetReader(self, reader:'vtkCGNSReader') -> None: ... + +class vtkCGNSReader(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + class DataArrayLocation(int): ... + CELL_DATA:'DataArrayLocation' + FACE_DATA:'DataArrayLocation' + base_selection:'getset_descriptor' + cache_connectivity:'getset_descriptor' + cache_mesh:'getset_descriptor' + cell_data_array_selection:'getset_descriptor' + controller:'getset_descriptor' + create_each_solution_as_block:'getset_descriptor' + data_location:'getset_descriptor' + distribute_blocks:'getset_descriptor' + double_precision_mesh:'getset_descriptor' + face_data_array_selection:'getset_descriptor' + family_selection:'getset_descriptor' + file_name:'getset_descriptor' + ignore_flow_solution_pointers:'getset_descriptor' + load_bnd_patch:'getset_descriptor' + load_mesh:'getset_descriptor' + load_surface_patch:'getset_descriptor' + number_of_base_arrays:'getset_descriptor' + number_of_cell_arrays:'getset_descriptor' + number_of_face_arrays:'getset_descriptor' + number_of_family_arrays:'getset_descriptor' + number_of_point_arrays:'getset_descriptor' + point_data_array_selection:'getset_descriptor' + unsteady_solution_start_timestep:'getset_descriptor' + use3d_vector:'getset_descriptor' + use_unsteady_pattern:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Broadcast(self, ctrl:'vtkMultiProcessController') -> None: ... + def CacheConnectivityOff(self) -> None: ... + def CacheConnectivityOn(self) -> None: ... + def CacheMeshOff(self) -> None: ... + def CacheMeshOn(self) -> None: ... + def CanReadFile(self, filename:str) -> int: ... + def CreateEachSolutionAsBlockOff(self) -> None: ... + def CreateEachSolutionAsBlockOn(self) -> None: ... + def DisableAllBases(self) -> None: ... + def DisableAllCellArrays(self) -> None: ... + def DisableAllFaceArrays(self) -> None: ... + def DisableAllFamilies(self) -> None: ... + def DisableAllPointArrays(self) -> None: ... + def DistributeBlocksOff(self) -> None: ... + def DistributeBlocksOn(self) -> None: ... + def DoublePrecisionMeshOff(self) -> None: ... + def DoublePrecisionMeshOn(self) -> None: ... + def EnableAllBases(self) -> None: ... + def EnableAllCellArrays(self) -> None: ... + def EnableAllFaceArrays(self) -> None: ... + def EnableAllFamilies(self) -> None: ... + def EnableAllPointArrays(self) -> None: ... + @staticmethod + def FAMILY() -> 'vtkInformationStringKey': ... + def GetBaseArrayName(self, index:int) -> str: ... + def GetBaseArrayStatus(self, name:str) -> int: ... + def GetBaseSelection(self) -> 'vtkDataArraySelection': ... + def GetCacheConnectivity(self) -> bool: ... + def GetCacheMesh(self) -> bool: ... + def GetCellArrayName(self, index:int) -> str: ... + def GetCellArrayStatus(self, name:str) -> int: ... + def GetCellDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetCreateEachSolutionAsBlock(self) -> int: ... + def GetDataLocation(self) -> int: ... + def GetDataLocationMaxValue(self) -> int: ... + def GetDataLocationMinValue(self) -> int: ... + def GetDistributeBlocks(self) -> bool: ... + def GetDoublePrecisionMesh(self) -> int: ... + def GetFaceArrayName(self, index:int) -> str: ... + def GetFaceArrayStatus(self, name:str) -> int: ... + def GetFaceDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetFamilyArrayName(self, index:int) -> str: ... + def GetFamilyArrayStatus(self, name:str) -> int: ... + def GetFamilySelection(self) -> 'vtkDataArraySelection': ... + def GetFileName(self) -> str: ... + def GetIgnoreFlowSolutionPointers(self) -> bool: ... + def GetLoadBndPatch(self) -> bool: ... + def GetLoadMesh(self) -> bool: ... + def GetLoadSurfacePatch(self) -> bool: ... + def GetNumberOfBaseArrays(self) -> int: ... + def GetNumberOfCellArrays(self) -> int: ... + def GetNumberOfFaceArrays(self) -> int: ... + def GetNumberOfFamilyArrays(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPointArrays(self) -> int: ... + def GetPointArrayName(self, index:int) -> str: ... + def GetPointArrayStatus(self, name:str) -> int: ... + def GetPointDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetUnsteadySolutionStartTimestep(self) -> int: ... + def GetUse3DVector(self) -> bool: ... + def GetUseUnsteadyPattern(self) -> bool: ... + def IgnoreFlowSolutionPointersOff(self) -> None: ... + def IgnoreFlowSolutionPointersOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LoadBndPatchOff(self) -> None: ... + def LoadBndPatchOn(self) -> None: ... + def LoadMeshOff(self) -> None: ... + def LoadMeshOn(self) -> None: ... + def LoadSurfacePatchOff(self) -> None: ... + def LoadSurfacePatchOn(self) -> None: ... + def NewInstance(self) -> 'vtkCGNSReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCGNSReader': ... + def SetBaseArrayStatus(self, name:str, status:int) -> None: ... + def SetCacheConnectivity(self, enable:bool) -> None: ... + def SetCacheMesh(self, enable:bool) -> None: ... + def SetCellArrayStatus(self, name:str, status:int) -> None: ... + def SetController(self, c:'vtkMultiProcessController') -> None: ... + def SetCreateEachSolutionAsBlock(self, _arg:int) -> None: ... + def SetDataLocation(self, _arg:int) -> None: ... + def SetDistributeBlocks(self, _arg:bool) -> None: ... + def SetDoublePrecisionMesh(self, _arg:int) -> None: ... + def SetFaceArrayStatus(self, name:str, status:int) -> None: ... + def SetFamilyArrayStatus(self, name:str, status:int) -> None: ... + def SetFileName(self, arg:str) -> None: ... + def SetIgnoreFlowSolutionPointers(self, _arg:bool) -> None: ... + def SetLoadBndPatch(self, _arg:bool) -> None: ... + def SetLoadMesh(self, _arg:bool) -> None: ... + def SetLoadSurfacePatch(self, _arg:bool) -> None: ... + def SetPointArrayStatus(self, name:str, status:int) -> None: ... + def SetUnsteadySolutionStartTimestep(self, _arg:int) -> None: ... + def SetUse3DVector(self, _arg:bool) -> None: ... + def SetUseUnsteadyPattern(self, _arg:bool) -> None: ... + def Use3DVectorOff(self) -> None: ... + def Use3DVectorOn(self) -> None: ... + def UseUnsteadyPatternOff(self) -> None: ... + def UseUnsteadyPatternOn(self) -> None: ... + +class vtkCONVERGECFDCGNSReader(vtkmodules.vtkCommonExecutionModel.vtkPartitionedDataSetCollectionAlgorithm): + cell_data_array_selection:'getset_descriptor' + file_name:'getset_descriptor' + parcel_data_array_selection:'getset_descriptor' + point_data_array_selection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CanReadFile(self, filename:str) -> int: ... + def GetCellDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParcelDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetPointDataArraySelection(self) -> 'vtkDataArraySelection': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCONVERGECFDCGNSReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCONVERGECFDCGNSReader': ... + def SetFileName(self, _arg:str) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCONVERGECFD.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCONVERGECFD.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..482d654 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCONVERGECFD.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCONVERGECFD.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCONVERGECFD.pyi new file mode 100644 index 0000000..abda3ae --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCONVERGECFD.pyi @@ -0,0 +1,31 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkCONVERGECFDReader(vtkmodules.vtkCommonExecutionModel.vtkPartitionedDataSetCollectionAlgorithm): + cell_data_array_selection:'getset_descriptor' + file_name:'getset_descriptor' + parcel_data_array_selection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CanReadFile(self, fname:str) -> int: ... + def GetCellDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParcelDataArraySelection(self) -> 'vtkDataArraySelection': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCONVERGECFDReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCONVERGECFDReader': ... + def SetFileName(self, _arg:str) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCellGrid.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCellGrid.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..878b4ac Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCellGrid.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCellGrid.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCellGrid.pyi new file mode 100644 index 0000000..df7ce69 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCellGrid.pyi @@ -0,0 +1,119 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonDataModel +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkIOCore + +class vtkCellGridIOQuery(vtkmodules.vtkCommonDataModel.vtkCellGridQuery): + attribute_data:'getset_descriptor' + data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAttributeData(self) -> vtknlohmann.json: ... + def GetData(self) -> vtknlohmann.json: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsSerializing(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridIOQuery': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridIOQuery': ... + +class vtkCellGridReader(vtkmodules.vtkCommonExecutionModel.vtkCellGridAlgorithm): + file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridReader': ... + def SetFileName(self, _arg:str) -> None: ... + +class vtkCellGridWriter(vtkmodules.vtkIOCore.vtkWriter): + class Format(int): ... + MessagePack:'Format' + NumberOfFormats:'Format' + PlainText:'Format' + file_format:'getset_descriptor' + file_name:'getset_descriptor' + input:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileFormat(self) -> 'Format': ... + def GetFileName(self) -> str: ... + @overload + def GetInput(self) -> 'vtkCellGrid': ... + @overload + def GetInput(self, port:int) -> 'vtkCellGrid': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridWriter': ... + def SetFileFormat(self, _arg:'Format') -> None: ... + def SetFileName(self, _arg:str) -> None: ... + +class vtkCompositeCellGridReader(vtkmodules.vtkCommonExecutionModel.vtkReaderAlgorithm): + cell_attribute_selection:'getset_descriptor' + cell_type_selection:'getset_descriptor' + file_name:'getset_descriptor' + m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellAttributeSelection(self) -> 'vtkDataArraySelection': ... + def GetCellTypeSelection(self) -> 'vtkDataArraySelection': ... + def GetFileName(self) -> str: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositeCellGridReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeCellGridReader': ... + def SetFileName(self, _arg:str) -> None: ... + +class vtkDGIOResponder(object): + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGIOResponder': ... + def Query(self, query:'vtkCellGridIOQuery', cellType:'vtkCellMetadata', caches:'vtkCellGridResponders') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGIOResponder': ... + +class vtkIOCellGrid(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkIOCellGrid': ... + @staticmethod + def RegisterCellsAndResponders() -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIOCellGrid': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCesium3DTiles.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCesium3DTiles.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..4bce7bc Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCesium3DTiles.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCesium3DTiles.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCesium3DTiles.pyi new file mode 100644 index 0000000..e8fdcba --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCesium3DTiles.pyi @@ -0,0 +1,135 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkIOCore + +class vtkCesium3DTilesReader(vtkmodules.vtkCommonExecutionModel.vtkPartitionedDataSetCollectionAlgorithm): + file_name:'getset_descriptor' + level:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CanReadFile(self, name:str) -> int: ... + def GetFileName(self) -> str: ... + def GetLevel(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTileReader(self, index:int) -> 'vtkGLTFReader': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCesium3DTilesReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCesium3DTilesReader': ... + def SetFileName(self, _arg:str) -> None: ... + def SetLevel(self, _arg:int) -> None: ... + +class vtkCesium3DTilesWriter(vtkmodules.vtkIOCore.vtkWriter): + class InputType(int): ... + Buildings:'InputType' + Mesh:'InputType' + Points:'InputType' + content_gltf:'getset_descriptor' + content_gltf_save_glb:'getset_descriptor' + crs:'getset_descriptor' + directory_name:'getset_descriptor' + input_type:'getset_descriptor' + merge_tile_poly_data:'getset_descriptor' + merged_texture_width:'getset_descriptor' + number_of_features_per_tile:'getset_descriptor' + offset:'getset_descriptor' + property_texture_file:'getset_descriptor' + save_textures:'getset_descriptor' + save_tiles:'getset_descriptor' + texture_base_directory:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ContentGLTFOff(self) -> None: ... + def ContentGLTFOn(self) -> None: ... + def ContentGLTFSaveGLBOff(self) -> None: ... + def ContentGLTFSaveGLBOn(self) -> None: ... + def GetCRS(self) -> str: ... + def GetContentGLTF(self) -> bool: ... + def GetContentGLTFSaveGLB(self) -> bool: ... + def GetDirectoryName(self) -> str: ... + def GetInputType(self) -> int: ... + def GetMergeTilePolyData(self) -> bool: ... + def GetMergedTextureWidth(self) -> int: ... + def GetNumberOfFeaturesPerTile(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffset(self) -> Tuple[float, float, float]: ... + def GetPropertyTextureFile(self) -> str: ... + def GetSaveTextures(self) -> bool: ... + def GetSaveTiles(self) -> bool: ... + def GetTextureBaseDirectory(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergeTilePolyDataOff(self) -> None: ... + def MergeTilePolyDataOn(self) -> None: ... + def NewInstance(self) -> 'vtkCesium3DTilesWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCesium3DTilesWriter': ... + def SaveTexturesOff(self) -> None: ... + def SaveTexturesOn(self) -> None: ... + def SaveTilesOff(self) -> None: ... + def SaveTilesOn(self) -> None: ... + def SetCRS(self, _arg:str) -> None: ... + def SetContentGLTF(self, _arg:bool) -> None: ... + def SetContentGLTFSaveGLB(self, _arg:bool) -> None: ... + def SetDirectoryName(self, _arg:str) -> None: ... + def SetInputType(self, _arg:int) -> None: ... + def SetMergeTilePolyData(self, _arg:bool) -> None: ... + def SetMergedTextureWidth(self, _arg:int) -> None: ... + def SetNumberOfFeaturesPerTile(self, _arg:int) -> None: ... + @overload + def SetOffset(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOffset(self, _arg:Sequence[float]) -> None: ... + def SetPropertyTextureFile(self, _arg:str) -> None: ... + def SetSaveTextures(self, _arg:bool) -> None: ... + def SetSaveTiles(self, _arg:bool) -> None: ... + def SetTextureBaseDirectory(self, _arg:str) -> None: ... + +class vtkCesiumB3DMReader(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + file_name:'getset_descriptor' + gltf_reader:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetGLTFReader(self) -> 'vtkGLTFReader': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCesiumB3DMReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCesiumB3DMReader': ... + def SetFileName(self, _arg:str) -> None: ... + +class vtkCesiumPointCloudWriter(vtkmodules.vtkIOCore.vtkWriter): + file_name:'getset_descriptor' + point_ids:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointIds(self) -> 'vtkIdList': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCesiumPointCloudWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCesiumPointCloudWriter': ... + def SetFileName(self, _arg:str) -> None: ... + def SetPointIds(self, _arg:'vtkIdList') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOChemistry.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOChemistry.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..8f70b94 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOChemistry.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOChemistry.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOChemistry.pyi new file mode 100644 index 0000000..0f9a05b --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOChemistry.pyi @@ -0,0 +1,168 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkCMLMoleculeReader(vtkmodules.vtkCommonExecutionModel.vtkMoleculeAlgorithm): + file_name:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutput(self) -> 'vtkMolecule': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCMLMoleculeReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCMLMoleculeReader': ... + def SetFileName(self, _arg:str) -> None: ... + def SetOutput(self, __a:'vtkMolecule') -> None: ... + +class vtkMoleculeReaderBase(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + b_scale:'getset_descriptor' + file_name:'getset_descriptor' + hb_scale:'getset_descriptor' + number_of_atoms:'getset_descriptor' + number_of_models:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBScale(self) -> float: ... + def GetFileName(self) -> str: ... + def GetHBScale(self) -> float: ... + def GetNumberOfAtoms(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfModels(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMoleculeReaderBase': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMoleculeReaderBase': ... + def SetBScale(self, _arg:float) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetHBScale(self, _arg:float) -> None: ... + +class vtkGaussianCubeReader(vtkMoleculeReaderBase): + grid_output:'getset_descriptor' + transform:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetGridOutput(self) -> 'vtkImageData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTransform(self) -> 'vtkTransform': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGaussianCubeReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGaussianCubeReader': ... + +class vtkGaussianCubeReader2(vtkmodules.vtkCommonExecutionModel.vtkMoleculeAlgorithm): + file_name:'getset_descriptor' + grid_output:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetGridOutput(self) -> 'vtkImageData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutput(self) -> 'vtkMolecule': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGaussianCubeReader2': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGaussianCubeReader2': ... + def SetFileName(self, _arg:str) -> None: ... + def SetOutput(self, __a:'vtkMolecule') -> None: ... + +class vtkPDBReader(vtkMoleculeReaderBase): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPDBReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPDBReader': ... + +class vtkVASPAnimationReader(vtkmodules.vtkCommonExecutionModel.vtkMoleculeAlgorithm): + file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVASPAnimationReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVASPAnimationReader': ... + def SetFileName(self, _arg:str) -> None: ... + +class vtkVASPTessellationReader(vtkmodules.vtkCommonExecutionModel.vtkMoleculeAlgorithm): + file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVASPTessellationReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVASPTessellationReader': ... + def SetFileName(self, _arg:str) -> None: ... + +class vtkXYZMolReader(vtkMoleculeReaderBase): + max_time_step:'getset_descriptor' + time_step:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CanReadFile(self, name:str) -> int: ... + def GetMaxTimeStep(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTimeStep(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXYZMolReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXYZMolReader': ... + def SetTimeStep(self, _arg:int) -> None: ... + +class vtkXYZMolReader2(vtkmodules.vtkCommonExecutionModel.vtkMoleculeAlgorithm): + file_name:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutput(self) -> 'vtkMolecule': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXYZMolReader2': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXYZMolReader2': ... + def SetFileName(self, arg:str) -> None: ... + def SetOutput(self, __a:'vtkMolecule') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCityGML.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCityGML.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..55d2c3b Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCityGML.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCityGML.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCityGML.pyi new file mode 100644 index 0000000..81bf42a --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCityGML.pyi @@ -0,0 +1,51 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkCityGMLReader(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + begin_building_index:'getset_descriptor' + end_building_index:'getset_descriptor' + file_name:'getset_descriptor' + lod:'getset_descriptor' + number_of_buildings:'getset_descriptor' + use_transparency_as_opacity:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBeginBuildingIndex(self) -> int: ... + def GetEndBuildingIndex(self) -> int: ... + def GetFileName(self) -> str: ... + def GetLOD(self) -> int: ... + def GetLODMaxValue(self) -> int: ... + def GetLODMinValue(self) -> int: ... + def GetNumberOfBuildings(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseTransparencyAsOpacity(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCityGMLReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCityGMLReader': ... + def SetBeginBuildingIndex(self, _arg:int) -> None: ... + def SetEndBuildingIndex(self, _arg:int) -> None: ... + @overload + @staticmethod + def SetField(obj:'vtkDataObject', name:str, value:str) -> None: ... + @overload + @staticmethod + def SetField(obj:'vtkDataObject', name:str, value:MutableSequence[float], numberOfComponents:int) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetLOD(self, _arg:int) -> None: ... + def SetNumberOfBuildings(self, _arg:int) -> None: ... + def SetUseTransparencyAsOpacity(self, _arg:int) -> None: ... + def UseTransparencyAsOpacityOff(self) -> None: ... + def UseTransparencyAsOpacityOn(self) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCore.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCore.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..69adeaf Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOCore.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOERF.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOERF.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..a828fc8 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOERF.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOEnSight.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOEnSight.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..27437de Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOEnSight.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOEnSight.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOEnSight.pyi new file mode 100644 index 0000000..c99cdf4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOEnSight.pyi @@ -0,0 +1,335 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class EnsightReaderCellIdMode(int): ... + +IMPLICIT_STRUCTURED_MODE:'EnsightReaderCellIdMode' +NON_SPARSE_MODE:'EnsightReaderCellIdMode' +SINGLE_PROCESS_MODE:'EnsightReaderCellIdMode' +SPARSE_MODE:'EnsightReaderCellIdMode' + +class vtkGenericEnSightReader(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + class FileTypes(int): ... + ENSIGHT_6:'FileTypes' + ENSIGHT_6_BINARY:'FileTypes' + ENSIGHT_GOLD:'FileTypes' + ENSIGHT_GOLD_BINARY:'FileTypes' + ENSIGHT_MASTER_SERVER:'FileTypes' + FILE_BIG_ENDIAN:int + FILE_LITTLE_ENDIAN:int + FILE_UNKNOWN_ENDIAN:int + apply_tetrahedralize:'getset_descriptor' + byte_order:'getset_descriptor' + case_file_name:'getset_descriptor' + cell_data_array_selection:'getset_descriptor' + en_sight_version:'getset_descriptor' + file_path:'getset_descriptor' + geometry_file_name:'getset_descriptor' + maximum_time_value:'getset_descriptor' + minimum_time_value:'getset_descriptor' + number_of_cell_arrays:'getset_descriptor' + number_of_complex_scalars_per_element:'getset_descriptor' + number_of_complex_scalars_per_node:'getset_descriptor' + number_of_complex_variables:'getset_descriptor' + number_of_complex_vectors_per_element:'getset_descriptor' + number_of_complex_vectors_per_node:'getset_descriptor' + number_of_point_arrays:'getset_descriptor' + number_of_scalars_per_element:'getset_descriptor' + number_of_scalars_per_measured_node:'getset_descriptor' + number_of_scalars_per_node:'getset_descriptor' + number_of_tensors_asym_per_element:'getset_descriptor' + number_of_tensors_asym_per_node:'getset_descriptor' + number_of_tensors_symm_per_element:'getset_descriptor' + number_of_tensors_symm_per_node:'getset_descriptor' + number_of_variables:'getset_descriptor' + number_of_vectors_per_element:'getset_descriptor' + number_of_vectors_per_measured_node:'getset_descriptor' + number_of_vectors_per_node:'getset_descriptor' + particle_coordinates_by_index:'getset_descriptor' + point_data_array_selection:'getset_descriptor' + read_all_variables:'getset_descriptor' + reader:'getset_descriptor' + time_sets:'getset_descriptor' + time_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CanReadFile(self, casefilename:str) -> int: ... + def DetermineEnSightVersion(self, quiet:int=0) -> int: ... + def GetApplyTetrahedralize(self) -> bool: ... + def GetByteOrder(self) -> int: ... + def GetByteOrderAsString(self) -> str: ... + def GetCaseFileName(self) -> str: ... + def GetCellArrayName(self, index:int) -> str: ... + def GetCellArrayStatus(self, name:str) -> int: ... + def GetCellDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetComplexDescription(self, n:int) -> str: ... + def GetComplexVariableType(self, n:int) -> int: ... + @overload + def GetDescription(self, n:int) -> str: ... + @overload + def GetDescription(self, n:int, type:int) -> str: ... + def GetEnSightVersion(self) -> int: ... + def GetFilePath(self) -> str: ... + def GetGeometryFileName(self) -> str: ... + def GetMaximumTimeValue(self) -> float: ... + def GetMinimumTimeValue(self) -> float: ... + def GetNumberOfCellArrays(self) -> int: ... + def GetNumberOfComplexScalarsPerElement(self) -> int: ... + def GetNumberOfComplexScalarsPerNode(self) -> int: ... + def GetNumberOfComplexVariables(self) -> int: ... + def GetNumberOfComplexVectorsPerElement(self) -> int: ... + def GetNumberOfComplexVectorsPerNode(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPointArrays(self) -> int: ... + def GetNumberOfScalarsPerElement(self) -> int: ... + def GetNumberOfScalarsPerMeasuredNode(self) -> int: ... + def GetNumberOfScalarsPerNode(self) -> int: ... + def GetNumberOfTensorsAsymPerElement(self) -> int: ... + def GetNumberOfTensorsAsymPerNode(self) -> int: ... + def GetNumberOfTensorsSymmPerElement(self) -> int: ... + def GetNumberOfTensorsSymmPerNode(self) -> int: ... + @overload + def GetNumberOfVariables(self) -> int: ... + @overload + def GetNumberOfVariables(self, type:int) -> int: ... + def GetNumberOfVectorsPerElement(self) -> int: ... + def GetNumberOfVectorsPerMeasuredNode(self) -> int: ... + def GetNumberOfVectorsPerNode(self) -> int: ... + def GetParticleCoordinatesByIndex(self) -> int: ... + def GetPointArrayName(self, index:int) -> str: ... + def GetPointArrayStatus(self, name:str) -> int: ... + def GetPointDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetReadAllVariables(self) -> int: ... + def GetReader(self) -> 'vtkGenericEnSightReader': ... + def GetTimeSets(self) -> 'vtkDataArrayCollection': ... + def GetTimeValue(self) -> float: ... + def GetVariableType(self, n:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsEnSightFile(casefilename:str) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenericEnSightReader': ... + def ParticleCoordinatesByIndexOff(self) -> None: ... + def ParticleCoordinatesByIndexOn(self) -> None: ... + def ReadAllVariablesOff(self) -> None: ... + def ReadAllVariablesOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericEnSightReader': ... + def SetApplyTetrahedralize(self, _arg:bool) -> None: ... + def SetByteOrder(self, _arg:int) -> None: ... + def SetByteOrderToBigEndian(self) -> None: ... + def SetByteOrderToLittleEndian(self) -> None: ... + def SetCaseFileName(self, fileName:str) -> None: ... + def SetCellArrayStatus(self, name:str, status:int) -> None: ... + def SetFilePath(self, _arg:str) -> None: ... + def SetParticleCoordinatesByIndex(self, _arg:int) -> None: ... + def SetPointArrayStatus(self, name:str, status:int) -> None: ... + def SetReadAllVariables(self, _arg:int) -> None: ... + def SetTimeValue(self, value:float) -> None: ... + +class vtkEnSightReader(vtkGenericEnSightReader): + class ElementTypesList(int): ... + class SectionTypeList(int): ... + class VariableTypesList(int): ... + BAR2:'ElementTypesList' + BAR3:'ElementTypesList' + BLOCK:'SectionTypeList' + COMPLEX_SCALAR_PER_ELEMENT:'VariableTypesList' + COMPLEX_SCALAR_PER_NODE:'VariableTypesList' + COMPLEX_VECTOR_PER_ELEMENT:'VariableTypesList' + COMPLEX_VECTOR_PER_NODE:'VariableTypesList' + COORDINATES:'SectionTypeList' + ELEMENT:'SectionTypeList' + HEXA20:'ElementTypesList' + HEXA8:'ElementTypesList' + NFACED:'ElementTypesList' + NSIDED:'ElementTypesList' + NUMBER_OF_ELEMENT_TYPES:'ElementTypesList' + PENTA15:'ElementTypesList' + PENTA6:'ElementTypesList' + POINT:'ElementTypesList' + PYRAMID13:'ElementTypesList' + PYRAMID5:'ElementTypesList' + QUAD4:'ElementTypesList' + QUAD8:'ElementTypesList' + SCALAR_PER_ELEMENT:'VariableTypesList' + SCALAR_PER_MEASURED_NODE:'VariableTypesList' + SCALAR_PER_NODE:'VariableTypesList' + TENSOR_ASYM_PER_ELEMENT:'VariableTypesList' + TENSOR_ASYM_PER_NODE:'VariableTypesList' + TENSOR_SYMM_PER_ELEMENT:'VariableTypesList' + TENSOR_SYMM_PER_NODE:'VariableTypesList' + TETRA10:'ElementTypesList' + TETRA4:'ElementTypesList' + TRIA3:'ElementTypesList' + TRIA6:'ElementTypesList' + VECTOR_PER_ELEMENT:'VariableTypesList' + VECTOR_PER_MEASURED_NODE:'VariableTypesList' + VECTOR_PER_NODE:'VariableTypesList' + match_file_name:'getset_descriptor' + measured_file_name:'getset_descriptor' + rigid_body_file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMatchFileName(self) -> str: ... + def GetMeasuredFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRigidBodyFileName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEnSightReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEnSightReader': ... + +class vtkEnSight6BinaryReader(vtkEnSightReader): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEnSight6BinaryReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEnSight6BinaryReader': ... + +class vtkEnSight6Reader(vtkEnSightReader): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEnSight6Reader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEnSight6Reader': ... + +class vtkEnSightGoldBinaryReader(vtkEnSightReader): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEnSightGoldBinaryReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEnSightGoldBinaryReader': ... + +class vtkEnSightGoldCombinedReader(vtkmodules.vtkCommonExecutionModel.vtkPartitionedDataSetCollectionAlgorithm): + all_time_steps:'getset_descriptor' + case_file_name:'getset_descriptor' + cell_array_selection:'getset_descriptor' + controller:'getset_descriptor' + field_array_selection:'getset_descriptor' + file_path:'getset_descriptor' + m_time:'getset_descriptor' + part_names:'getset_descriptor' + part_of_sos_file:'getset_descriptor' + part_selection:'getset_descriptor' + pdc_info_for_loaded_parts:'getset_descriptor' + point_array_selection:'getset_descriptor' + time_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CanReadFile(self, casefilename:str) -> int: ... + def GetAllTimeSteps(self) -> 'vtkDoubleArray': ... + def GetCaseFileName(self) -> str: ... + def GetCellArraySelection(self) -> 'vtkDataArraySelection': ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetFieldArraySelection(self) -> 'vtkDataArraySelection': ... + def GetFilePath(self) -> str: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPartNames(self) -> 'vtkStringArray': ... + def GetPartOfSOSFile(self) -> bool: ... + def GetPartSelection(self) -> 'vtkDataArraySelection': ... + def GetPointArraySelection(self) -> 'vtkDataArraySelection': ... + def GetTimeValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEnSightGoldCombinedReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEnSightGoldCombinedReader': ... + def SetCaseFileName(self, _arg:str) -> None: ... + def SetController(self, controller:'vtkMultiProcessController') -> None: ... + def SetFilePath(self, _arg:str) -> None: ... + def SetPDCInfoForLoadedParts(self, indices:'vtkIdTypeArray', names:'vtkStringArray') -> None: ... + def SetPartOfSOSFile(self, _arg:bool) -> None: ... + def SetTimeValue(self, _arg:float) -> None: ... + +class vtkEnSightGoldReader(vtkEnSightReader): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEnSightGoldReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEnSightGoldReader': ... + +class vtkEnSightMasterServerReader(vtkGenericEnSightReader): + current_piece:'getset_descriptor' + piece_case_file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CanReadFile(self, fname:str) -> int: ... + def DetermineFileName(self, piece:int) -> int: ... + def GetCurrentPiece(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPieceCaseFileName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEnSightMasterServerReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEnSightMasterServerReader': ... + def SetCurrentPiece(self, _arg:int) -> None: ... + +class vtkEnSightSOSGoldReader(vtkmodules.vtkCommonExecutionModel.vtkPartitionedDataSetCollectionAlgorithm): + case_file_name:'getset_descriptor' + cell_array_selection:'getset_descriptor' + controller:'getset_descriptor' + field_array_selection:'getset_descriptor' + m_time:'getset_descriptor' + part_selection:'getset_descriptor' + point_array_selection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CanReadFile(self, fname:str) -> int: ... + def GetCaseFileName(self) -> str: ... + def GetCellArraySelection(self) -> 'vtkDataArraySelection': ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetFieldArraySelection(self) -> 'vtkDataArraySelection': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPartSelection(self) -> 'vtkDataArraySelection': ... + def GetPointArraySelection(self) -> 'vtkDataArraySelection': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEnSightSOSGoldReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEnSightSOSGoldReader': ... + def SetCaseFileName(self, _arg:str) -> None: ... + def SetController(self, controller:'vtkMultiProcessController') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOEngys.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOEngys.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..7c2c989 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOEngys.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOExodus.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOExodus.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..3cabad1 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOExodus.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOExport.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOExport.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..717ae32 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOExport.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOExportGL2PS.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOExportGL2PS.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..eba5043 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOExportGL2PS.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOExportGL2PS.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOExportGL2PS.pyi new file mode 100644 index 0000000..4264084 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOExportGL2PS.pyi @@ -0,0 +1,139 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkIOExport + +class vtkGL2PSExporter(vtkmodules.vtkIOExport.vtkExporter): + class SortScheme(int): ... + class OutputFormat(int): ... + BSP_SORT:'SortScheme' + EPS_FILE:'OutputFormat' + NO_SORT:'SortScheme' + PDF_FILE:'OutputFormat' + PS_FILE:'OutputFormat' + SIMPLE_SORT:'SortScheme' + SVG_FILE:'OutputFormat' + TEX_FILE:'OutputFormat' + best_root:'getset_descriptor' + buffer_size:'getset_descriptor' + compress:'getset_descriptor' + draw_background:'getset_descriptor' + file_format:'getset_descriptor' + file_prefix:'getset_descriptor' + landscape:'getset_descriptor' + line_width_factor:'getset_descriptor' + occlusion_cull:'getset_descriptor' + point_size_factor:'getset_descriptor' + ps3_shading:'getset_descriptor' + raster_exclusions:'getset_descriptor' + silent:'getset_descriptor' + simple_line_offset:'getset_descriptor' + sort:'getset_descriptor' + text:'getset_descriptor' + text_as_path:'getset_descriptor' + title:'getset_descriptor' + write3d_props_as_raster_image:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BestRootOff(self) -> None: ... + def BestRootOn(self) -> None: ... + def CompressOff(self) -> None: ... + def CompressOn(self) -> None: ... + def DrawBackgroundOff(self) -> None: ... + def DrawBackgroundOn(self) -> None: ... + def GetBestRoot(self) -> int: ... + def GetBufferSize(self) -> int: ... + def GetCompress(self) -> int: ... + def GetDrawBackground(self) -> int: ... + def GetFileFormat(self) -> int: ... + def GetFileFormatAsString(self) -> str: ... + def GetFileFormatMaxValue(self) -> int: ... + def GetFileFormatMinValue(self) -> int: ... + def GetFilePrefix(self) -> str: ... + def GetLandscape(self) -> int: ... + def GetLineWidthFactor(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOcclusionCull(self) -> int: ... + def GetPS3Shading(self) -> int: ... + def GetPointSizeFactor(self) -> float: ... + def GetRasterExclusions(self) -> 'vtkPropCollection': ... + def GetSilent(self) -> int: ... + def GetSimpleLineOffset(self) -> int: ... + def GetSort(self) -> int: ... + def GetSortAsString(self) -> str: ... + def GetSortMaxValue(self) -> int: ... + def GetSortMinValue(self) -> int: ... + def GetText(self) -> int: ... + def GetTextAsPath(self) -> bool: ... + def GetTitle(self) -> str: ... + def GetWrite3DPropsAsRasterImage(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LandscapeOff(self) -> None: ... + def LandscapeOn(self) -> None: ... + def NewInstance(self) -> 'vtkGL2PSExporter': ... + def OcclusionCullOff(self) -> None: ... + def OcclusionCullOn(self) -> None: ... + def PS3ShadingOff(self) -> None: ... + def PS3ShadingOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGL2PSExporter': ... + def SetBestRoot(self, _arg:int) -> None: ... + def SetBufferSize(self, _arg:int) -> None: ... + def SetCompress(self, _arg:int) -> None: ... + def SetDrawBackground(self, _arg:int) -> None: ... + def SetFileFormat(self, _arg:int) -> None: ... + def SetFileFormatToEPS(self) -> None: ... + def SetFileFormatToPDF(self) -> None: ... + def SetFileFormatToPS(self) -> None: ... + def SetFileFormatToSVG(self) -> None: ... + def SetFileFormatToTeX(self) -> None: ... + def SetFilePrefix(self, _arg:str) -> None: ... + def SetLandscape(self, _arg:int) -> None: ... + def SetLineWidthFactor(self, _arg:float) -> None: ... + def SetOcclusionCull(self, _arg:int) -> None: ... + def SetPS3Shading(self, _arg:int) -> None: ... + def SetPointSizeFactor(self, _arg:float) -> None: ... + def SetRasterExclusions(self, __a:'vtkPropCollection') -> None: ... + def SetSilent(self, _arg:int) -> None: ... + def SetSimpleLineOffset(self, _arg:int) -> None: ... + def SetSort(self, _arg:int) -> None: ... + def SetSortToBSP(self) -> None: ... + def SetSortToOff(self) -> None: ... + def SetSortToSimple(self) -> None: ... + def SetText(self, _arg:int) -> None: ... + def SetTextAsPath(self, _arg:bool) -> None: ... + def SetTitle(self, _arg:str) -> None: ... + def SetWrite3DPropsAsRasterImage(self, _arg:int) -> None: ... + def SilentOff(self) -> None: ... + def SilentOn(self) -> None: ... + def SimpleLineOffsetOff(self) -> None: ... + def SimpleLineOffsetOn(self) -> None: ... + def TextAsPathOff(self) -> None: ... + def TextAsPathOn(self) -> None: ... + def TextOff(self) -> None: ... + def TextOn(self) -> None: ... + def UsePainterSettings(self) -> None: ... + def Write3DPropsAsRasterImageOff(self) -> None: ... + def Write3DPropsAsRasterImageOn(self) -> None: ... + +class vtkOpenGLGL2PSExporter(vtkGL2PSExporter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLGL2PSExporter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLGL2PSExporter': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOExportPDF.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOExportPDF.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..40483cf Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOExportPDF.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOExportPDF.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOExportPDF.pyi new file mode 100644 index 0000000..9898be3 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOExportPDF.pyi @@ -0,0 +1,83 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkIOExport +import vtkmodules.vtkRenderingContext2D + +class vtkPDFContextDevice2D(vtkmodules.vtkRenderingContext2D.vtkContextDevice2D): + clipping:'getset_descriptor' + color4:'getset_descriptor' + line_type:'getset_descriptor' + line_width:'getset_descriptor' + matrix:'getset_descriptor' + point_size:'getset_descriptor' + renderer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeJustifiedStringBounds(self, string:str, bounds:MutableSequence[float]) -> None: ... + def ComputeStringBounds(self, string:str, bounds:MutableSequence[float]) -> None: ... + def DrawColoredPolygon(self, points:MutableSequence[float], numPoints:int, colors:MutableSequence[int]=..., nc_comps:int=0) -> None: ... + def DrawEllipseWedge(self, x:float, y:float, outRx:float, outRy:float, inRx:float, inRy:float, startAngle:float, stopAngle:float) -> None: ... + def DrawEllipticArc(self, x:float, y:float, rX:float, rY:float, startAngle:float, stopAngle:float) -> None: ... + @overload + def DrawImage(self, p:MutableSequence[float], scale:float, image:'vtkImageData') -> None: ... + @overload + def DrawImage(self, pos:'vtkRectf', image:'vtkImageData') -> None: ... + def DrawLines(self, f:MutableSequence[float], n:int, colors:MutableSequence[int]=..., nc_comps:int=0) -> None: ... + def DrawMarkers(self, shape:int, highlight:bool, points:MutableSequence[float], n:int, colors:MutableSequence[int]=..., nc_comps:int=0) -> None: ... + def DrawMathTextString(self, point:MutableSequence[float], str:str) -> None: ... + def DrawPointSprites(self, sprite:'vtkImageData', points:MutableSequence[float], n:int, colors:MutableSequence[int]=..., nc_comps:int=0) -> None: ... + def DrawPoints(self, points:MutableSequence[float], n:int, colors:MutableSequence[int]=..., nc_comps:int=0) -> None: ... + def DrawPoly(self, points:MutableSequence[float], n:int, colors:MutableSequence[int]=..., nc_comps:int=0) -> None: ... + def DrawPolyData(self, p:MutableSequence[float], scale:float, polyData:'vtkPolyData', colors:'vtkUnsignedCharArray', scalarMode:int) -> None: ... + def DrawPolygon(self, __a:MutableSequence[float], __b:int) -> None: ... + def DrawQuad(self, __a:MutableSequence[float], __b:int) -> None: ... + def DrawQuadStrip(self, __a:MutableSequence[float], __b:int) -> None: ... + def DrawString(self, point:MutableSequence[float], string:str) -> None: ... + def EnableClipping(self, enable:bool) -> None: ... + def GetMatrix(self, m:'vtkMatrix3x3') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MultiplyMatrix(self, m:'vtkMatrix3x3') -> None: ... + def NewInstance(self) -> 'vtkPDFContextDevice2D': ... + def PopMatrix(self) -> None: ... + def PushMatrix(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPDFContextDevice2D': ... + def SetClipping(self, x:MutableSequence[int]) -> None: ... + def SetColor4(self, color:MutableSequence[int]) -> None: ... + def SetHaruObjects(self, doc:Pointer, page:Pointer) -> None: ... + def SetLineType(self, type:int) -> None: ... + def SetLineWidth(self, width:float) -> None: ... + def SetMatrix(self, m:'vtkMatrix3x3') -> None: ... + def SetPointSize(self, size:float) -> None: ... + def SetRenderer(self, __a:'vtkRenderer') -> None: ... + def SetTexture(self, image:'vtkImageData', properties:int) -> None: ... + +class vtkPDFExporter(vtkmodules.vtkIOExport.vtkExporter): + file_name:'getset_descriptor' + title:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTitle(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPDFExporter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPDFExporter': ... + def SetFileName(self, _arg:str) -> None: ... + def SetTitle(self, _arg:str) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOFDS.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOFDS.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..b9c2a0c Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOFDS.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOFLUENTCFF.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOFLUENTCFF.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..6ebbe68 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOFLUENTCFF.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOFLUENTCFF.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOFLUENTCFF.pyi new file mode 100644 index 0000000..0475dc4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOFLUENTCFF.pyi @@ -0,0 +1,35 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkFLUENTCFFReader(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + file_name:'getset_descriptor' + number_of_cell_arrays:'getset_descriptor' + number_of_cells:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DisableAllCellArrays(self) -> None: ... + def EnableAllCellArrays(self) -> None: ... + def GetCellArrayName(self, index:int) -> str: ... + def GetCellArrayStatus(self, name:str) -> int: ... + def GetFileName(self) -> str: ... + def GetNumberOfCellArrays(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFLUENTCFFReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFLUENTCFFReader': ... + def SetCellArrayStatus(self, name:str, status:int) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOGeoJSON.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOGeoJSON.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..c2ad10c Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOGeoJSON.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOGeoJSON.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOGeoJSON.pyi new file mode 100644 index 0000000..937f70a --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOGeoJSON.pyi @@ -0,0 +1,104 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonDataModel +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkIOCore + +class vtkGeoJSONFeature(vtkmodules.vtkCommonDataModel.vtkDataObject): + data_object_type:'getset_descriptor' + outline_polygons:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDataObjectType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutlinePolygons(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGeoJSONFeature': ... + def OutlinePolygonsOff(self) -> None: ... + def OutlinePolygonsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGeoJSONFeature': ... + def SetOutlinePolygons(self, _arg:bool) -> None: ... + +class vtkGeoJSONReader(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + file_name:'getset_descriptor' + outline_polygons:'getset_descriptor' + serialized_properties_array_name:'getset_descriptor' + string_input:'getset_descriptor' + string_input_mode:'getset_descriptor' + triangulate_polygons:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddFeatureProperty(self, name:str, typeAndDefaultValue:'vtkVariant') -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutlinePolygons(self) -> bool: ... + def GetSerializedPropertiesArrayName(self) -> str: ... + def GetStringInput(self) -> str: ... + def GetStringInputMode(self) -> bool: ... + def GetTriangulatePolygons(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGeoJSONReader': ... + def OutlinePolygonsOff(self) -> None: ... + def OutlinePolygonsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGeoJSONReader': ... + def SetFileName(self, _arg:str) -> None: ... + def SetOutlinePolygons(self, _arg:bool) -> None: ... + def SetSerializedPropertiesArrayName(self, _arg:str) -> None: ... + def SetStringInput(self, _arg:str) -> None: ... + def SetStringInputMode(self, _arg:bool) -> None: ... + def SetTriangulatePolygons(self, _arg:bool) -> None: ... + def StringInputModeOff(self) -> None: ... + def StringInputModeOn(self) -> None: ... + def TriangulatePolygonsOff(self) -> None: ... + def TriangulatePolygonsOn(self) -> None: ... + +class vtkGeoJSONWriter(vtkmodules.vtkIOCore.vtkWriter): + binary_output_string:'getset_descriptor' + file_name:'getset_descriptor' + lookup_table:'getset_descriptor' + output_std_string:'getset_descriptor' + output_string:'getset_descriptor' + output_string_length:'getset_descriptor' + scalar_format:'getset_descriptor' + write_to_output_string:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBinaryOutputString(self) -> Pointer: ... + def GetFileName(self) -> str: ... + def GetLookupTable(self) -> 'vtkLookupTable': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputStdString(self) -> str: ... + def GetOutputString(self) -> str: ... + def GetOutputStringLength(self) -> int: ... + def GetScalarFormat(self) -> int: ... + def GetWriteToOutputString(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGeoJSONWriter': ... + def RegisterAndGetOutputString(self) -> str: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGeoJSONWriter': ... + def SetFileName(self, _arg:str) -> None: ... + def SetLookupTable(self, lut:'vtkLookupTable') -> None: ... + def SetScalarFormat(self, _arg:int) -> None: ... + def SetWriteToOutputString(self, _arg:bool) -> None: ... + def WriteToOutputStringOff(self) -> None: ... + def WriteToOutputStringOn(self) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOGeometry.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOGeometry.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..18e62d9 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOGeometry.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOGeometry.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOGeometry.pyi new file mode 100644 index 0000000..af87302 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOGeometry.pyi @@ -0,0 +1,1092 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkIOCore + +VTK_FILE_BYTE_ORDER_BIG_ENDIAN:int +VTK_FILE_BYTE_ORDER_LITTLE_ENDIAN:int +VTK_OPENFOAM_TIME_PROFILING:int + +class vtkAVSucdReader(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + binary_file:'getset_descriptor' + byte_order:'getset_descriptor' + file_name:'getset_descriptor' + number_of_cell_arrays:'getset_descriptor' + number_of_cell_components:'getset_descriptor' + number_of_cell_fields:'getset_descriptor' + number_of_cells:'getset_descriptor' + number_of_fields:'getset_descriptor' + number_of_node_components:'getset_descriptor' + number_of_node_fields:'getset_descriptor' + number_of_nodes:'getset_descriptor' + number_of_point_arrays:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BinaryFileOff(self) -> None: ... + def BinaryFileOn(self) -> None: ... + def DisableAllCellArrays(self) -> None: ... + def DisableAllPointArrays(self) -> None: ... + def EnableAllCellArrays(self) -> None: ... + def EnableAllPointArrays(self) -> None: ... + def GetBinaryFile(self) -> int: ... + def GetByteOrder(self) -> int: ... + def GetByteOrderAsString(self) -> str: ... + def GetCellArrayName(self, index:int) -> str: ... + def GetCellArrayStatus(self, name:str) -> int: ... + def GetCellDataRange(self, cellComp:int, index:int, min:MutableSequence[float], max:MutableSequence[float]) -> None: ... + def GetFileName(self) -> str: ... + def GetNodeDataRange(self, nodeComp:int, index:int, min:MutableSequence[float], max:MutableSequence[float]) -> None: ... + def GetNumberOfCellArrays(self) -> int: ... + def GetNumberOfCellComponents(self) -> int: ... + def GetNumberOfCellFields(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfFields(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfNodeComponents(self) -> int: ... + def GetNumberOfNodeFields(self) -> int: ... + def GetNumberOfNodes(self) -> int: ... + def GetNumberOfPointArrays(self) -> int: ... + def GetPointArrayName(self, index:int) -> str: ... + def GetPointArrayStatus(self, name:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAVSucdReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAVSucdReader': ... + def SetBinaryFile(self, _arg:int) -> None: ... + def SetByteOrder(self, _arg:int) -> None: ... + def SetByteOrderToBigEndian(self) -> None: ... + def SetByteOrderToLittleEndian(self) -> None: ... + def SetCellArrayStatus(self, name:str, status:int) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetPointArrayStatus(self, name:str, status:int) -> None: ... + +class vtkBYUReader(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + displacement_file_name:'getset_descriptor' + file_name:'getset_descriptor' + geometry_file_name:'getset_descriptor' + part_number:'getset_descriptor' + read_displacement:'getset_descriptor' + read_scalar:'getset_descriptor' + read_texture:'getset_descriptor' + scalar_file_name:'getset_descriptor' + texture_file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def CanReadFile(filename:str) -> int: ... + def GetDisplacementFileName(self) -> str: ... + def GetFileName(self) -> str: ... + def GetGeometryFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPartNumber(self) -> int: ... + def GetPartNumberMaxValue(self) -> int: ... + def GetPartNumberMinValue(self) -> int: ... + def GetReadDisplacement(self) -> int: ... + def GetReadScalar(self) -> int: ... + def GetReadTexture(self) -> int: ... + def GetScalarFileName(self) -> str: ... + def GetTextureFileName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBYUReader': ... + def ReadDisplacementOff(self) -> None: ... + def ReadDisplacementOn(self) -> None: ... + def ReadScalarOff(self) -> None: ... + def ReadScalarOn(self) -> None: ... + def ReadTextureOff(self) -> None: ... + def ReadTextureOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBYUReader': ... + def SetDisplacementFileName(self, _arg:str) -> None: ... + def SetFileName(self, f:str) -> None: ... + def SetGeometryFileName(self, _arg:str) -> None: ... + def SetPartNumber(self, _arg:int) -> None: ... + def SetReadDisplacement(self, _arg:int) -> None: ... + def SetReadScalar(self, _arg:int) -> None: ... + def SetReadTexture(self, _arg:int) -> None: ... + def SetScalarFileName(self, _arg:str) -> None: ... + def SetTextureFileName(self, _arg:str) -> None: ... + +class vtkBYUWriter(vtkmodules.vtkIOCore.vtkWriter): + displacement_file_name:'getset_descriptor' + geometry_file_name:'getset_descriptor' + input:'getset_descriptor' + scalar_file_name:'getset_descriptor' + texture_file_name:'getset_descriptor' + write_displacement:'getset_descriptor' + write_scalar:'getset_descriptor' + write_texture:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDisplacementFileName(self) -> str: ... + def GetGeometryFileName(self) -> str: ... + @overload + def GetInput(self) -> 'vtkPolyData': ... + @overload + def GetInput(self, port:int) -> 'vtkPolyData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScalarFileName(self) -> str: ... + def GetTextureFileName(self) -> str: ... + def GetWriteDisplacement(self) -> int: ... + def GetWriteScalar(self) -> int: ... + def GetWriteTexture(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBYUWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBYUWriter': ... + def SetDisplacementFileName(self, _arg:str) -> None: ... + def SetGeometryFileName(self, _arg:str) -> None: ... + def SetScalarFileName(self, _arg:str) -> None: ... + def SetTextureFileName(self, _arg:str) -> None: ... + def SetWriteDisplacement(self, _arg:int) -> None: ... + def SetWriteScalar(self, _arg:int) -> None: ... + def SetWriteTexture(self, _arg:int) -> None: ... + def WriteDisplacementOff(self) -> None: ... + def WriteDisplacementOn(self) -> None: ... + def WriteScalarOff(self) -> None: ... + def WriteScalarOn(self) -> None: ... + def WriteTextureOff(self) -> None: ... + def WriteTextureOn(self) -> None: ... + +class vtkChacoReader(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + base_name:'getset_descriptor' + dimensionality:'getset_descriptor' + generate_edge_weight_arrays:'getset_descriptor' + generate_global_element_id_array:'getset_descriptor' + generate_global_node_id_array:'getset_descriptor' + generate_vertex_weight_arrays:'getset_descriptor' + global_element_id_array_name:'getset_descriptor' + global_node_id_array_name:'getset_descriptor' + number_of_cell_weight_arrays:'getset_descriptor' + number_of_edge_weights:'getset_descriptor' + number_of_edges:'getset_descriptor' + number_of_point_weight_arrays:'getset_descriptor' + number_of_vertex_weights:'getset_descriptor' + number_of_vertices:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateEdgeWeightArraysOff(self) -> None: ... + def GenerateEdgeWeightArraysOn(self) -> None: ... + def GenerateGlobalElementIdArrayOff(self) -> None: ... + def GenerateGlobalElementIdArrayOn(self) -> None: ... + def GenerateGlobalNodeIdArrayOff(self) -> None: ... + def GenerateGlobalNodeIdArrayOn(self) -> None: ... + def GenerateVertexWeightArraysOff(self) -> None: ... + def GenerateVertexWeightArraysOn(self) -> None: ... + def GetBaseName(self) -> str: ... + def GetDimensionality(self) -> int: ... + def GetEdgeWeightArrayName(self, weight:int) -> str: ... + def GetGenerateEdgeWeightArrays(self) -> int: ... + def GetGenerateGlobalElementIdArray(self) -> int: ... + def GetGenerateGlobalNodeIdArray(self) -> int: ... + def GetGenerateVertexWeightArrays(self) -> int: ... + @staticmethod + def GetGlobalElementIdArrayName() -> str: ... + @staticmethod + def GetGlobalNodeIdArrayName() -> str: ... + def GetNumberOfCellWeightArrays(self) -> int: ... + def GetNumberOfEdgeWeights(self) -> int: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPointWeightArrays(self) -> int: ... + def GetNumberOfVertexWeights(self) -> int: ... + def GetNumberOfVertices(self) -> int: ... + def GetVertexWeightArrayName(self, weight:int) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkChacoReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkChacoReader': ... + def SetBaseName(self, _arg:str) -> None: ... + def SetGenerateEdgeWeightArrays(self, _arg:int) -> None: ... + def SetGenerateGlobalElementIdArray(self, _arg:int) -> None: ... + def SetGenerateGlobalNodeIdArray(self, _arg:int) -> None: ... + def SetGenerateVertexWeightArrays(self, _arg:int) -> None: ... + +class vtkFLUENTReader(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + cache_data:'getset_descriptor' + data_byte_order:'getset_descriptor' + file_name:'getset_descriptor' + m_time:'getset_descriptor' + number_of_cell_arrays:'getset_descriptor' + number_of_cells:'getset_descriptor' + zone_section_selection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CacheDataOff(self) -> None: ... + def CacheDataOn(self) -> None: ... + def DisableAllCellArrays(self) -> None: ... + def EnableAllCellArrays(self) -> None: ... + def GetCacheData(self) -> bool: ... + def GetCellArrayName(self, index:int) -> str: ... + def GetCellArrayStatus(self, name:str) -> int: ... + def GetDataByteOrder(self) -> int: ... + def GetDataByteOrderAsString(self) -> str: ... + def GetFileName(self) -> str: ... + def GetMTime(self) -> int: ... + def GetNumberOfCellArrays(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetZoneSectionSelection(self) -> 'vtkDataArraySelection': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFLUENTReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFLUENTReader': ... + def SetCacheData(self, _arg:bool) -> None: ... + def SetCellArrayStatus(self, name:str, status:int) -> None: ... + def SetDataByteOrder(self, __a:int) -> None: ... + def SetDataByteOrderToBigEndian(self) -> None: ... + def SetDataByteOrderToLittleEndian(self) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + +class vtkFacetWriter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFacetWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFacetWriter': ... + def SetFileName(self, _arg:str) -> None: ... + def Write(self) -> None: ... + +class vtkGAMBITReader(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + file_name:'getset_descriptor' + number_of_cell_fields:'getset_descriptor' + number_of_cells:'getset_descriptor' + number_of_node_fields:'getset_descriptor' + number_of_nodes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfCellFields(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfNodeFields(self) -> int: ... + def GetNumberOfNodes(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGAMBITReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGAMBITReader': ... + def SetFileName(self, _arg:str) -> None: ... + +class vtkGLTFDocumentLoader(vtkmodules.vtkCommonCore.vtkObject): + class AccessorType(int): + INVALID:'AccessorType' + MAT2:'AccessorType' + MAT3:'AccessorType' + MAT4:'AccessorType' + SCALAR:'AccessorType' + VEC2:'AccessorType' + VEC3:'AccessorType' + VEC4:'AccessorType' + class ComponentType(int): + BYTE:'ComponentType' + FLOAT:'ComponentType' + SHORT:'ComponentType' + UNSIGNED_BYTE:'ComponentType' + UNSIGNED_INT:'ComponentType' + UNSIGNED_SHORT:'ComponentType' + class Target(int): + ARRAY_BUFFER:'Target' + ELEMENT_ARRAY_BUFFER:'Target' + glb_start:'getset_descriptor' + load_animation:'getset_descriptor' + load_images:'getset_descriptor' + load_skin_matrix:'getset_descriptor' + supported_extensions:'getset_descriptor' + used_extensions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ApplyAnimation(self, t:float, animationId:int, forceStep:bool=False) -> bool: ... + @overload + def BuildGlobalTransforms(self, nodeIndex:int, parentTransform:'vtkMatrix4x4') -> None: ... + @overload + def BuildGlobalTransforms(self) -> None: ... + def BuildModelVTKGeometry(self) -> bool: ... + def GetGLBStart(self) -> int: ... + def GetLoadAnimation(self) -> bool: ... + def GetLoadImages(self) -> bool: ... + def GetLoadSkinMatrix(self) -> bool: ... + @staticmethod + def GetNumberOfComponentsForType(type:vtkGLTFDocumentLoader.AccessorType) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSupportedExtensions(self) -> Tuple[str, str]: ... + def GetUsedExtensions(self) -> Tuple[str, str]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LoadAnimationOff(self) -> None: ... + def LoadAnimationOn(self) -> None: ... + def LoadImagesOff(self) -> None: ... + def LoadImagesOn(self) -> None: ... + def LoadModelMetaDataFromFile(self, FileName:str) -> bool: ... + def LoadModelMetaDataFromStream(self, stream:'vtkResourceStream', loader:'vtkURILoader'=...) -> bool: ... + def LoadSkinMatrixOff(self) -> None: ... + def LoadSkinMatrixOn(self) -> None: ... + def NewInstance(self) -> 'vtkGLTFDocumentLoader': ... + def PrepareData(self) -> None: ... + def ResetAnimation(self, animationId:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGLTFDocumentLoader': ... + def SetGLBStart(self, _arg:int) -> None: ... + def SetLoadAnimation(self, _arg:bool) -> None: ... + def SetLoadImages(self, _arg:bool) -> None: ... + def SetLoadSkinMatrix(self, _arg:bool) -> None: ... + +class vtkGLTFReader(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + all_scene_names:'getset_descriptor' + animation_selection:'getset_descriptor' + apply_deformations_to_geometry:'getset_descriptor' + current_scene:'getset_descriptor' + file_name:'getset_descriptor' + frame_rate:'getset_descriptor' + glb_start:'getset_descriptor' + number_of_animations:'getset_descriptor' + number_of_scenes:'getset_descriptor' + number_of_textures:'getset_descriptor' + output_points_precision:'getset_descriptor' + scene:'getset_descriptor' + stream:'getset_descriptor' + uri_loader:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ApplyDeformationsToGeometryOff(self) -> None: ... + def ApplyDeformationsToGeometryOn(self) -> None: ... + def DisableAnimation(self, animationIndex:int) -> None: ... + def EnableAnimation(self, animationIndex:int) -> None: ... + def GetAllSceneNames(self) -> 'vtkStringArray': ... + def GetAnimationDuration(self, animationIndex:int) -> float: ... + def GetAnimationName(self, animationIndex:int) -> str: ... + def GetAnimationSelection(self) -> 'vtkDataArraySelection': ... + def GetApplyDeformationsToGeometry(self) -> bool: ... + def GetCurrentScene(self) -> int: ... + def GetFileName(self) -> str: ... + def GetFrameRate(self) -> int: ... + def GetGLBStart(self) -> int: ... + def GetNumberOfAnimations(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfScenes(self) -> int: ... + def GetNumberOfTextures(self) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetSceneName(self, sceneIndex:int) -> str: ... + def GetStream(self) -> 'vtkResourceStream': ... + def GetTexture(self, textureIndex:int) -> 'vtkGLTFTexture': ... + def GetURILoader(self) -> 'vtkURILoader': ... + def IsA(self, type:str) -> int: ... + def IsAnimationEnabled(self, animationIndex:int) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGLTFReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGLTFReader': ... + def SetApplyDeformationsToGeometry(self, flag:bool) -> None: ... + def SetCurrentScene(self, _arg:int) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetFrameRate(self, _arg:int) -> None: ... + def SetGLBStart(self, _arg:int) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetScene(self, scene:str) -> None: ... + def SetStream(self, _arg:'vtkResourceStream') -> None: ... + def SetURILoader(self, _arg:'vtkURILoader') -> None: ... + +class vtkGLTFTexture(vtkmodules.vtkCommonCore.vtkObject): + vtk_texture:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVTKTexture(self) -> 'vtkTexture': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGLTFTexture': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGLTFTexture': ... + +class vtkGLTFWriter(vtkmodules.vtkIOCore.vtkWriter): + binary:'getset_descriptor' + copy_textures:'getset_descriptor' + file_name:'getset_descriptor' + inline_data:'getset_descriptor' + property_texture_file:'getset_descriptor' + relative_coordinates:'getset_descriptor' + save_active_point_color:'getset_descriptor' + save_batch_id:'getset_descriptor' + save_normal:'getset_descriptor' + save_textures:'getset_descriptor' + texture_base_directory:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CopyTexturesOff(self) -> None: ... + def CopyTexturesOn(self) -> None: ... + def GetBinary(self) -> bool: ... + def GetCopyTextures(self) -> bool: ... + @staticmethod + def GetFieldAsStringVector(obj:'vtkDataObject', name:str) -> Tuple[str, str]: ... + def GetFileName(self) -> str: ... + def GetInlineData(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPropertyTextureFile(self) -> str: ... + def GetRelativeCoordinates(self) -> bool: ... + def GetSaveActivePointColor(self) -> bool: ... + def GetSaveBatchId(self) -> bool: ... + def GetSaveNormal(self) -> bool: ... + def GetSaveTextures(self) -> bool: ... + def GetTextureBaseDirectory(self) -> str: ... + def InlineDataOff(self) -> None: ... + def InlineDataOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGLTFWriter': ... + def RelativeCoordinatesOff(self) -> None: ... + def RelativeCoordinatesOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGLTFWriter': ... + def SaveActivePointColorOff(self) -> None: ... + def SaveActivePointColorOn(self) -> None: ... + def SaveBatchIdOff(self) -> None: ... + def SaveBatchIdOn(self) -> None: ... + def SaveNormalOff(self) -> None: ... + def SaveNormalOn(self) -> None: ... + def SaveTexturesOff(self) -> None: ... + def SaveTexturesOn(self) -> None: ... + def SetCopyTextures(self, _arg:bool) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetInlineData(self, _arg:bool) -> None: ... + def SetPropertyTextureFile(self, _arg:str) -> None: ... + def SetRelativeCoordinates(self, _arg:bool) -> None: ... + def SetSaveActivePointColor(self, _arg:bool) -> None: ... + def SetSaveBatchId(self, _arg:bool) -> None: ... + def SetSaveNormal(self, _arg:bool) -> None: ... + def SetSaveTextures(self, _arg:bool) -> None: ... + def SetTextureBaseDirectory(self, _arg:str) -> None: ... + def WriteToString(self) -> str: ... + +class vtkHoudiniPolyDataWriter(vtkmodules.vtkIOCore.vtkWriter): + file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHoudiniPolyDataWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHoudiniPolyDataWriter': ... + def SetFileName(self, _arg:str) -> None: ... + +class vtkIVWriter(vtkmodules.vtkIOCore.vtkWriter): + file_name:'getset_descriptor' + input:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + @overload + def GetInput(self) -> 'vtkPolyData': ... + @overload + def GetInput(self, port:int) -> 'vtkPolyData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkIVWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIVWriter': ... + def SetFileName(self, _arg:str) -> None: ... + +class vtkMCubesReader(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + data_byte_order:'getset_descriptor' + file_name:'getset_descriptor' + flip_normals:'getset_descriptor' + header_size:'getset_descriptor' + limits_file_name:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + normals:'getset_descriptor' + swap_bytes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultLocator(self) -> None: ... + def FlipNormalsOff(self) -> None: ... + def FlipNormalsOn(self) -> None: ... + def GetDataByteOrder(self) -> int: ... + def GetDataByteOrderAsString(self) -> str: ... + def GetFileName(self) -> str: ... + def GetFlipNormals(self) -> int: ... + def GetHeaderSize(self) -> int: ... + def GetHeaderSizeMaxValue(self) -> int: ... + def GetHeaderSizeMinValue(self) -> int: ... + def GetLimitsFileName(self) -> str: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetNormals(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSwapBytes(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMCubesReader': ... + def NormalsOff(self) -> None: ... + def NormalsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMCubesReader': ... + def SetDataByteOrder(self, __a:int) -> None: ... + def SetDataByteOrderToBigEndian(self) -> None: ... + def SetDataByteOrderToLittleEndian(self) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetFlipNormals(self, _arg:int) -> None: ... + def SetHeaderSize(self, _arg:int) -> None: ... + def SetLimitsFileName(self, _arg:str) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetNormals(self, _arg:int) -> None: ... + def SetSwapBytes(self, _arg:int) -> None: ... + def SwapBytesOff(self) -> None: ... + def SwapBytesOn(self) -> None: ... + +class vtkMCubesWriter(vtkmodules.vtkIOCore.vtkWriter): + file_name:'getset_descriptor' + input:'getset_descriptor' + limits_file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + @overload + def GetInput(self) -> 'vtkPolyData': ... + @overload + def GetInput(self, port:int) -> 'vtkPolyData': ... + def GetLimitsFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMCubesWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMCubesWriter': ... + def SetFileName(self, _arg:str) -> None: ... + def SetLimitsFileName(self, _arg:str) -> None: ... + +class vtkMFIXReader(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + file_name:'getset_descriptor' + number_of_cell_arrays:'getset_descriptor' + number_of_cell_fields:'getset_descriptor' + number_of_cells:'getset_descriptor' + number_of_points:'getset_descriptor' + time_step:'getset_descriptor' + time_step_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DisableAllCellArrays(self) -> None: ... + def EnableAllCellArrays(self) -> None: ... + def GetCellArrayName(self, index:int) -> str: ... + def GetCellArrayStatus(self, name:str) -> int: ... + def GetCellDataRange(self, cellComp:int, min:MutableSequence[float], max:MutableSequence[float]) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfCellArrays(self) -> int: ... + def GetNumberOfCellFields(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPoints(self) -> int: ... + def GetNumberOfTimeSteps(self) -> int: ... + def GetTimeStep(self) -> int: ... + def GetTimeStepRange(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMFIXReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMFIXReader': ... + def SetCellArrayStatus(self, name:str, status:int) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetTimeStep(self, _arg:int) -> None: ... + @overload + def SetTimeStepRange(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetTimeStepRange(self, _arg:Sequence[int]) -> None: ... + +class vtkOBJReader(vtkmodules.vtkIOCore.vtkAbstractPolyDataReader): + comment:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetComment(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOBJReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOBJReader': ... + +class vtkOBJWriter(vtkmodules.vtkIOCore.vtkWriter): + file_name:'getset_descriptor' + input_geometry:'getset_descriptor' + input_texture:'getset_descriptor' + texture_file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetInput(self, port:int) -> 'vtkDataSet': ... + def GetInputGeometry(self) -> 'vtkPolyData': ... + def GetInputTexture(self) -> 'vtkImageData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTextureFileName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOBJWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOBJWriter': ... + def SetFileName(self, _arg:str) -> None: ... + def SetTextureFileName(self, _arg:str) -> None: ... + +class vtkOFFReader(vtkmodules.vtkIOCore.vtkAbstractPolyDataReader): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOFFReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOFFReader': ... + +class vtkOpenFOAMReader(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + add_dimensions_to_array_names:'getset_descriptor' + cache_mesh:'getset_descriptor' + cell_data_array_selection:'getset_descriptor' + copy_data_to_cell_zones:'getset_descriptor' + create_cell_to_point:'getset_descriptor' + file_name:'getset_descriptor' + ignore_restart_files:'getset_descriptor' + lagrangian_data_array_selection:'getset_descriptor' + list_time_steps_by_control_dict:'getset_descriptor' + number_of_cell_arrays:'getset_descriptor' + number_of_lagrangian_arrays:'getset_descriptor' + number_of_patch_arrays:'getset_descriptor' + number_of_point_arrays:'getset_descriptor' + parent:'getset_descriptor' + patch_data_array_selection:'getset_descriptor' + point_data_array_selection:'getset_descriptor' + positions_is_in13_format:'getset_descriptor' + read_zones:'getset_descriptor' + sequential_processing:'getset_descriptor' + size_average_cell_to_point:'getset_descriptor' + skip_zero_time:'getset_descriptor' + time_names:'getset_descriptor' + time_value:'getset_descriptor' + time_values:'getset_descriptor' + use64_bit_floats:'getset_descriptor' + use64_bit_labels:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddDimensionsToArrayNamesOff(self) -> None: ... + def AddDimensionsToArrayNamesOn(self) -> None: ... + def CacheMeshOff(self) -> None: ... + def CacheMeshOn(self) -> None: ... + def CanReadFile(self, __a:str) -> int: ... + def ComputeProgress(self) -> float: ... + def CopyDataToCellZonesOff(self) -> None: ... + def CopyDataToCellZonesOn(self) -> None: ... + def CreateCellToPointOff(self) -> None: ... + def CreateCellToPointOn(self) -> None: ... + def DisableAllCellArrays(self) -> None: ... + def DisableAllLagrangianArrays(self) -> None: ... + def DisableAllPatchArrays(self) -> None: ... + def DisableAllPointArrays(self) -> None: ... + def EnableAllCellArrays(self) -> None: ... + def EnableAllLagrangianArrays(self) -> None: ... + def EnableAllPatchArrays(self) -> None: ... + def EnableAllPointArrays(self) -> None: ... + def GetAddDimensionsToArrayNames(self) -> int: ... + def GetCacheMesh(self) -> int: ... + def GetCellArrayName(self, index:int) -> str: ... + def GetCellArrayStatus(self, name:str) -> int: ... + def GetCellDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetCopyDataToCellZones(self) -> bool: ... + def GetCreateCellToPoint(self) -> int: ... + def GetFileName(self) -> str: ... + def GetIgnoreRestartFiles(self) -> bool: ... + def GetLagrangianArrayName(self, index:int) -> str: ... + def GetLagrangianArrayStatus(self, name:str) -> int: ... + def GetLagrangianDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetListTimeStepsByControlDict(self) -> int: ... + def GetNumberOfCellArrays(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLagrangianArrays(self) -> int: ... + def GetNumberOfPatchArrays(self) -> int: ... + def GetNumberOfPointArrays(self) -> int: ... + def GetPatchArrayName(self, index:int) -> str: ... + def GetPatchArrayStatus(self, name:str) -> int: ... + def GetPatchDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetPointArrayName(self, index:int) -> str: ... + def GetPointArrayStatus(self, name:str) -> int: ... + def GetPointDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetPositionsIsIn13Format(self) -> int: ... + def GetReadZones(self) -> int: ... + def GetSequentialProcessing(self) -> bool: ... + def GetSizeAverageCellToPoint(self) -> int: ... + def GetSkipZeroTime(self) -> bool: ... + def GetTimeNames(self) -> 'vtkStringArray': ... + def GetTimeValue(self) -> float: ... + def GetTimeValues(self) -> 'vtkDoubleArray': ... + def GetUse64BitFloats(self) -> bool: ... + def GetUse64BitLabels(self) -> bool: ... + def IgnoreRestartFilesOff(self) -> None: ... + def IgnoreRestartFilesOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def ListTimeStepsByControlDictOff(self) -> None: ... + def ListTimeStepsByControlDictOn(self) -> None: ... + def MakeMetaDataAtTimeStep(self, listNextTimeStep:bool, skipComputingMetaData:bool=False) -> int: ... + def NewInstance(self) -> 'vtkOpenFOAMReader': ... + def PositionsIsIn13FormatOff(self) -> None: ... + def PositionsIsIn13FormatOn(self) -> None: ... + def ReadZonesOff(self) -> None: ... + def ReadZonesOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenFOAMReader': ... + def SequentialProcessingOff(self) -> None: ... + def SequentialProcessingOn(self) -> None: ... + def SetAddDimensionsToArrayNames(self, _arg:int) -> None: ... + def SetCacheMesh(self, _arg:int) -> None: ... + def SetCellArrayStatus(self, name:str, status:int) -> None: ... + def SetCopyDataToCellZones(self, _arg:bool) -> None: ... + def SetCreateCellToPoint(self, _arg:int) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetIgnoreRestartFiles(self, _arg:bool) -> None: ... + def SetLagrangianArrayStatus(self, name:str, status:int) -> None: ... + def SetListTimeStepsByControlDict(self, _arg:int) -> None: ... + def SetParent(self, parent:'vtkOpenFOAMReader') -> None: ... + def SetPatchArrayStatus(self, name:str, status:int) -> None: ... + def SetPointArrayStatus(self, name:str, status:int) -> None: ... + def SetPositionsIsIn13Format(self, _arg:int) -> None: ... + def SetReadZones(self, _arg:int) -> None: ... + def SetRefresh(self) -> None: ... + def SetSequentialProcessing(self, _arg:bool) -> None: ... + def SetSizeAverageCellToPoint(self, _arg:int) -> None: ... + def SetSkipZeroTime(self, _arg:bool) -> None: ... + def SetTimeValue(self, __a:float) -> bool: ... + def SetUse64BitFloats(self, val:bool) -> None: ... + def SetUse64BitLabels(self, val:bool) -> None: ... + def SizeAverageCellToPointOff(self) -> None: ... + def SizeAverageCellToPointOn(self) -> None: ... + def SkipZeroTimeOff(self) -> None: ... + def SkipZeroTimeOn(self) -> None: ... + def Use64BitFloatsOff(self) -> None: ... + def Use64BitFloatsOn(self) -> None: ... + def Use64BitLabelsOff(self) -> None: ... + def Use64BitLabelsOn(self) -> None: ... + +class vtkPTSReader(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + create_cells:'getset_descriptor' + file_name:'getset_descriptor' + include_color_and_luminance:'getset_descriptor' + limit_read_to_bounds:'getset_descriptor' + limit_to_max_number_of_points:'getset_descriptor' + max_number_of_points:'getset_descriptor' + output_data_type_is_double:'getset_descriptor' + read_bounds:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateCellsOff(self) -> None: ... + def CreateCellsOn(self) -> None: ... + def GetCreateCells(self) -> bool: ... + def GetFileName(self) -> str: ... + def GetIncludeColorAndLuminance(self) -> bool: ... + def GetLimitReadToBounds(self) -> bool: ... + def GetLimitToMaxNumberOfPoints(self) -> bool: ... + def GetMaxNumberOfPoints(self) -> int: ... + def GetMaxNumberOfPointsMaxValue(self) -> int: ... + def GetMaxNumberOfPointsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputDataTypeIsDouble(self) -> bool: ... + def GetReadBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def IncludeColorAndLuminanceOff(self) -> None: ... + def IncludeColorAndLuminanceOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LimitReadToBoundsOff(self) -> None: ... + def LimitReadToBoundsOn(self) -> None: ... + def LimitToMaxNumberOfPointsOff(self) -> None: ... + def LimitToMaxNumberOfPointsOn(self) -> None: ... + def NewInstance(self) -> 'vtkPTSReader': ... + def OutputDataTypeIsDoubleOff(self) -> None: ... + def OutputDataTypeIsDoubleOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPTSReader': ... + def SetCreateCells(self, _arg:bool) -> None: ... + def SetFileName(self, filename:str) -> None: ... + def SetIncludeColorAndLuminance(self, _arg:bool) -> None: ... + def SetLimitReadToBounds(self, _arg:bool) -> None: ... + def SetLimitToMaxNumberOfPoints(self, _arg:bool) -> None: ... + def SetMaxNumberOfPoints(self, _arg:int) -> None: ... + def SetOutputDataTypeIsDouble(self, _arg:bool) -> None: ... + @overload + def SetReadBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetReadBounds(self, _arg:Sequence[float]) -> None: ... + +class vtkParticleReader(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + data_byte_order:'getset_descriptor' + data_type:'getset_descriptor' + file_name:'getset_descriptor' + file_type:'getset_descriptor' + has_scalar:'getset_descriptor' + swap_bytes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDataByteOrder(self) -> int: ... + def GetDataByteOrderAsString(self) -> str: ... + def GetDataType(self) -> int: ... + def GetDataTypeMaxValue(self) -> int: ... + def GetDataTypeMinValue(self) -> int: ... + def GetFileName(self) -> str: ... + def GetFileType(self) -> int: ... + def GetFileTypeMaxValue(self) -> int: ... + def GetFileTypeMinValue(self) -> int: ... + def GetHasScalar(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSwapBytes(self) -> int: ... + def HasScalarOff(self) -> None: ... + def HasScalarOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParticleReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParticleReader': ... + def SetDataByteOrder(self, __a:int) -> None: ... + def SetDataByteOrderToBigEndian(self) -> None: ... + def SetDataByteOrderToLittleEndian(self) -> None: ... + def SetDataType(self, _arg:int) -> None: ... + def SetDataTypeToDouble(self) -> None: ... + def SetDataTypeToFloat(self) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetFileType(self, _arg:int) -> None: ... + def SetFileTypeToBinary(self) -> None: ... + def SetFileTypeToText(self) -> None: ... + def SetFileTypeToUnknown(self) -> None: ... + def SetHasScalar(self, _arg:int) -> None: ... + def SetSwapBytes(self, _arg:int) -> None: ... + def SwapBytesOff(self) -> None: ... + def SwapBytesOn(self) -> None: ... + +class vtkProStarReader(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + class cellType(int): ... + class shapeType(int): ... + file_name:'getset_descriptor' + scale_factor:'getset_descriptor' + starcdBaffleType:'cellType' + starcdFluidType:'cellType' + starcdHex:'shapeType' + starcdLine:'shapeType' + starcdLineType:'cellType' + starcdPoint:'shapeType' + starcdPointType:'cellType' + starcdPoly:'shapeType' + starcdPrism:'shapeType' + starcdPyr:'shapeType' + starcdShell:'shapeType' + starcdShellType:'cellType' + starcdSolidType:'cellType' + starcdTet:'shapeType' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScaleFactor(self) -> float: ... + def GetScaleFactorMaxValue(self) -> float: ... + def GetScaleFactorMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProStarReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProStarReader': ... + def SetFileName(self, _arg:str) -> None: ... + def SetScaleFactor(self, _arg:float) -> None: ... + +class vtkSTLReader(vtkmodules.vtkIOCore.vtkAbstractPolyDataReader): + binary_header:'getset_descriptor' + header:'getset_descriptor' + locator:'getset_descriptor' + m_time:'getset_descriptor' + merging:'getset_descriptor' + scalar_tags:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBinaryHeader(self) -> 'vtkUnsignedCharArray': ... + def GetHeader(self) -> str: ... + def GetLocator(self) -> 'vtkIncrementalPointLocator': ... + def GetMTime(self) -> int: ... + def GetMerging(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScalarTags(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergingOff(self) -> None: ... + def MergingOn(self) -> None: ... + def NewInstance(self) -> 'vtkSTLReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSTLReader': ... + def ScalarTagsOff(self) -> None: ... + def ScalarTagsOn(self) -> None: ... + def SetLocator(self, locator:'vtkIncrementalPointLocator') -> None: ... + def SetMerging(self, _arg:int) -> None: ... + def SetScalarTags(self, _arg:int) -> None: ... + +class vtkSTLWriter(vtkmodules.vtkIOCore.vtkWriter): + binary_header:'getset_descriptor' + file_name:'getset_descriptor' + file_type:'getset_descriptor' + header:'getset_descriptor' + input:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBinaryHeader(self) -> 'vtkUnsignedCharArray': ... + def GetFileName(self) -> str: ... + def GetFileType(self) -> int: ... + def GetFileTypeMaxValue(self) -> int: ... + def GetFileTypeMinValue(self) -> int: ... + def GetHeader(self) -> str: ... + @overload + def GetInput(self) -> 'vtkPolyData': ... + @overload + def GetInput(self, port:int) -> 'vtkPolyData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSTLWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSTLWriter': ... + def SetBinaryHeader(self, binaryHeader:'vtkUnsignedCharArray') -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetFileType(self, _arg:int) -> None: ... + def SetFileTypeToASCII(self) -> None: ... + def SetFileTypeToBinary(self) -> None: ... + def SetHeader(self, _arg:str) -> None: ... + +class vtkTecplotReader(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + data_title:'getset_descriptor' + file_name:'getset_descriptor' + number_of_blocks:'getset_descriptor' + number_of_data_arrays:'getset_descriptor' + number_of_data_attributes:'getset_descriptor' + number_of_variables:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBlockName(self, blockIdx:int) -> str: ... + def GetDataArrayName(self, arrayIdx:int) -> str: ... + def GetDataArrayStatus(self, arayName:str) -> int: ... + def GetDataAttributeName(self, attrIndx:int) -> str: ... + def GetDataTitle(self) -> str: ... + def GetNumberOfBlocks(self) -> int: ... + def GetNumberOfDataArrays(self) -> int: ... + def GetNumberOfDataAttributes(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfVariables(self) -> int: ... + def IsA(self, type:str) -> int: ... + @overload + def IsDataAttributeCellBased(self, attrName:str) -> int: ... + @overload + def IsDataAttributeCellBased(self, attrIndx:int) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTecplotReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTecplotReader': ... + def SetDataArrayStatus(self, arayName:str, bChecked:int) -> None: ... + def SetFileName(self, fileName:str) -> None: ... + +class vtkWindBladeReader(vtkmodules.vtkCommonExecutionModel.vtkStructuredGridAlgorithm): + blade_output:'getset_descriptor' + field_output:'getset_descriptor' + filename:'getset_descriptor' + ground_output:'getset_descriptor' + number_of_point_arrays:'getset_descriptor' + sub_extent:'getset_descriptor' + whole_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DisableAllPointArrays(self) -> None: ... + def EnableAllPointArrays(self) -> None: ... + def GetBladeOutput(self) -> 'vtkUnstructuredGrid': ... + def GetFieldOutput(self) -> 'vtkStructuredGrid': ... + def GetFilename(self) -> str: ... + def GetGroundOutput(self) -> 'vtkStructuredGrid': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPointArrays(self) -> int: ... + def GetPointArrayName(self, index:int) -> str: ... + def GetPointArrayStatus(self, name:str) -> int: ... + def GetSubExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetWholeExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWindBladeReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWindBladeReader': ... + def SetFilename(self, _arg:str) -> None: ... + def SetPointArrayStatus(self, name:str, status:int) -> None: ... + @overload + def SetSubExtent(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetSubExtent(self, _arg:Sequence[int]) -> None: ... + @overload + def SetWholeExtent(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetWholeExtent(self, _arg:Sequence[int]) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOH5Rage.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOH5Rage.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..df1aee4 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOH5Rage.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOH5part.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOH5part.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..c485bc6 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOH5part.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOHDF.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOHDF.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..59553b1 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOHDF.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOIOSS.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOIOSS.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..cd976fc Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOIOSS.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOImage.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOImage.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..1add107 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOImage.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOImport.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOImport.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..b3c0f5d Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOImport.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOInfovis.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOInfovis.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..876a30f Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOInfovis.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOInfovis.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOInfovis.pyi new file mode 100644 index 0000000..c33674e --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOInfovis.pyi @@ -0,0 +1,482 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkIOLegacy +import vtkmodules.vtkIOXML + +class vtkBiomTableReader(vtkmodules.vtkIOLegacy.vtkTableReader): + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkTable': ... + @overload + def GetOutput(self, idx:int) -> 'vtkTable': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBiomTableReader': ... + def ReadMeshSimple(self, fname:str, output:'vtkDataObject') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBiomTableReader': ... + def SetOutput(self, output:'vtkTable') -> None: ... + +class vtkChacoGraphReader(vtkmodules.vtkCommonExecutionModel.vtkUndirectedGraphAlgorithm): + file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkChacoGraphReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkChacoGraphReader': ... + def SetFileName(self, _arg:str) -> None: ... + +class vtkDIMACSGraphReader(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + edge_attribute_array_name:'getset_descriptor' + file_name:'getset_descriptor' + vertex_attribute_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetEdgeAttributeArrayName(self) -> str: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVertexAttributeArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDIMACSGraphReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDIMACSGraphReader': ... + def SetEdgeAttributeArrayName(self, _arg:str) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetVertexAttributeArrayName(self, _arg:str) -> None: ... + +class vtkDIMACSGraphWriter(vtkmodules.vtkIOLegacy.vtkDataWriter): + input:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetInput(self) -> 'vtkGraph': ... + @overload + def GetInput(self, port:int) -> 'vtkGraph': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDIMACSGraphWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDIMACSGraphWriter': ... + +class vtkDelimitedTextReader(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + add_tab_field_delimiter:'getset_descriptor' + comment_characters:'getset_descriptor' + default_double_value:'getset_descriptor' + default_integer_value:'getset_descriptor' + detect_numeric_columns:'getset_descriptor' + field_delimiter_characters:'getset_descriptor' + file_name:'getset_descriptor' + force_double:'getset_descriptor' + generate_pedigree_ids:'getset_descriptor' + have_headers:'getset_descriptor' + input_string:'getset_descriptor' + input_string_length:'getset_descriptor' + last_error:'getset_descriptor' + max_records:'getset_descriptor' + merge_consecutive_delimiters:'getset_descriptor' + output_pedigree_ids:'getset_descriptor' + pedigree_id_array_name:'getset_descriptor' + preview:'getset_descriptor' + preview_number_of_lines:'getset_descriptor' + read_from_input_string:'getset_descriptor' + replacement_character:'getset_descriptor' + skipped_records:'getset_descriptor' + string_delimiter:'getset_descriptor' + trim_whitespace_prior_to_numeric_conversion:'getset_descriptor' + unicode_character_set:'getset_descriptor' + use_string_delimiter:'getset_descriptor' + utf8_field_delimiters:'getset_descriptor' + utf8_record_delimiters:'getset_descriptor' + utf8_string_delimiters:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddTabFieldDelimiterOff(self) -> None: ... + def AddTabFieldDelimiterOn(self) -> None: ... + def DetectNumericColumnsOff(self) -> None: ... + def DetectNumericColumnsOn(self) -> None: ... + def ForceDoubleOff(self) -> None: ... + def ForceDoubleOn(self) -> None: ... + def GeneratePedigreeIdsOff(self) -> None: ... + def GeneratePedigreeIdsOn(self) -> None: ... + def GetAddTabFieldDelimiter(self) -> bool: ... + def GetCommentCharacters(self) -> str: ... + def GetDefaultDoubleValue(self) -> float: ... + def GetDefaultIntegerValue(self) -> int: ... + def GetDetectNumericColumns(self) -> bool: ... + def GetFieldDelimiterCharacters(self) -> str: ... + def GetFileName(self) -> str: ... + def GetForceDouble(self) -> bool: ... + def GetGeneratePedigreeIds(self) -> bool: ... + def GetHaveHeaders(self) -> bool: ... + def GetInputString(self) -> str: ... + def GetInputStringLength(self) -> int: ... + def GetLastError(self) -> str: ... + def GetMaxRecords(self) -> int: ... + def GetMergeConsecutiveDelimiters(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPedigreeIds(self) -> bool: ... + def GetPedigreeIdArrayName(self) -> str: ... + def GetPreview(self) -> str: ... + def GetPreviewNumberOfLines(self) -> int: ... + def GetReadFromInputString(self) -> int: ... + def GetReplacementCharacter(self) -> int: ... + def GetSkippedRecords(self) -> int: ... + def GetStringDelimiter(self) -> str: ... + def GetTrimWhitespacePriorToNumericConversion(self) -> bool: ... + def GetUTF8FieldDelimiters(self) -> str: ... + def GetUTF8RecordDelimiters(self) -> str: ... + def GetUTF8StringDelimiters(self) -> str: ... + def GetUnicodeCharacterSet(self) -> str: ... + def GetUseStringDelimiter(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergeConsecutiveDelimitersOff(self) -> None: ... + def MergeConsecutiveDelimitersOn(self) -> None: ... + def NewInstance(self) -> 'vtkDelimitedTextReader': ... + def OutputPedigreeIdsOff(self) -> None: ... + def OutputPedigreeIdsOn(self) -> None: ... + def ReadFromInputStringOff(self) -> None: ... + def ReadFromInputStringOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDelimitedTextReader': ... + def SetAddTabFieldDelimiter(self, _arg:bool) -> None: ... + def SetCommentCharacters(self, _arg:str) -> None: ... + def SetDefaultDoubleValue(self, _arg:float) -> None: ... + def SetDefaultIntegerValue(self, _arg:int) -> None: ... + def SetDetectNumericColumns(self, _arg:bool) -> None: ... + def SetFieldDelimiterCharacters(self, _arg:str) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetForceDouble(self, _arg:bool) -> None: ... + def SetGeneratePedigreeIds(self, _arg:bool) -> None: ... + def SetHaveHeaders(self, _arg:bool) -> None: ... + @overload + def SetInputString(self, in_:str, len:int) -> None: ... + @overload + def SetInputString(self, input:str) -> None: ... + def SetMaxRecords(self, _arg:int) -> None: ... + def SetMergeConsecutiveDelimiters(self, _arg:bool) -> None: ... + def SetOutputPedigreeIds(self, _arg:bool) -> None: ... + def SetPedigreeIdArrayName(self, _arg:str) -> None: ... + def SetPreviewNumberOfLines(self, _arg:int) -> None: ... + def SetReadFromInputString(self, _arg:int) -> None: ... + def SetReplacementCharacter(self, _arg:int) -> None: ... + def SetSkippedRecords(self, _arg:int) -> None: ... + def SetStringDelimiter(self, _arg:str) -> None: ... + def SetTrimWhitespacePriorToNumericConversion(self, _arg:bool) -> None: ... + def SetUTF8FieldDelimiters(self, delimiters:str) -> None: ... + def SetUTF8RecordDelimiters(self, delimiters:str) -> None: ... + def SetUTF8StringDelimiters(self, delimiters:str) -> None: ... + def SetUnicodeCharacterSet(self, _arg:str) -> None: ... + def SetUseStringDelimiter(self, _arg:bool) -> None: ... + def TrimWhitespacePriorToNumericConversionOff(self) -> None: ... + def TrimWhitespacePriorToNumericConversionOn(self) -> None: ... + def UseStringDelimiterOff(self) -> None: ... + def UseStringDelimiterOn(self) -> None: ... + +class vtkFixedWidthTextReader(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + field_width:'getset_descriptor' + file_name:'getset_descriptor' + have_headers:'getset_descriptor' + strip_white_space:'getset_descriptor' + table_error_observer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFieldWidth(self) -> int: ... + def GetFileName(self) -> str: ... + def GetHaveHeaders(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStripWhiteSpace(self) -> bool: ... + def GetTableErrorObserver(self) -> 'vtkCommand': ... + def HaveHeadersOff(self) -> None: ... + def HaveHeadersOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFixedWidthTextReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFixedWidthTextReader': ... + def SetFieldWidth(self, _arg:int) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetHaveHeaders(self, _arg:bool) -> None: ... + def SetStripWhiteSpace(self, _arg:bool) -> None: ... + def SetTableErrorObserver(self, __a:'vtkCommand') -> None: ... + def StripWhiteSpaceOff(self) -> None: ... + def StripWhiteSpaceOn(self) -> None: ... + +class vtkISIReader(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + delimiter:'getset_descriptor' + file_name:'getset_descriptor' + max_records:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDelimiter(self) -> str: ... + def GetFileName(self) -> str: ... + def GetMaxRecords(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkISIReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkISIReader': ... + def SetDelimiter(self, _arg:str) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetMaxRecords(self, _arg:int) -> None: ... + +class vtkMultiNewickTreeReader(vtkmodules.vtkIOLegacy.vtkDataReader): + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkMultiPieceDataSet': ... + @overload + def GetOutput(self, idx:int) -> 'vtkMultiPieceDataSet': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMultiNewickTreeReader': ... + def ReadMeshSimple(self, fname:str, output:'vtkDataObject') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMultiNewickTreeReader': ... + def SetOutput(self, output:'vtkMultiPieceDataSet') -> None: ... + +class vtkNewickTreeReader(vtkmodules.vtkIOLegacy.vtkDataReader): + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkTree': ... + @overload + def GetOutput(self, idx:int) -> 'vtkTree': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkNewickTreeReader': ... + def ReadMeshSimple(self, fname:str, output:'vtkDataObject') -> int: ... + def ReadNewickTree(self, buffer:str, tree:'vtkTree') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkNewickTreeReader': ... + def SetOutput(self, output:'vtkTree') -> None: ... + +class vtkNewickTreeWriter(vtkmodules.vtkIOLegacy.vtkDataWriter): + edge_weight_array_name:'getset_descriptor' + input:'getset_descriptor' + node_name_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetEdgeWeightArrayName(self) -> str: ... + @overload + def GetInput(self) -> 'vtkTree': ... + @overload + def GetInput(self, port:int) -> 'vtkTree': ... + def GetNodeNameArrayName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkNewickTreeWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkNewickTreeWriter': ... + def SetEdgeWeightArrayName(self, _arg:str) -> None: ... + def SetNodeNameArrayName(self, _arg:str) -> None: ... + +class vtkPhyloXMLTreeReader(vtkmodules.vtkIOXML.vtkXMLReader): + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkTree': ... + @overload + def GetOutput(self, idx:int) -> 'vtkTree': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPhyloXMLTreeReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPhyloXMLTreeReader': ... + +class vtkPhyloXMLTreeWriter(vtkmodules.vtkIOXML.vtkXMLWriter): + default_file_extension:'getset_descriptor' + edge_weight_array_name:'getset_descriptor' + input:'getset_descriptor' + node_name_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDefaultFileExtension(self) -> str: ... + def GetEdgeWeightArrayName(self) -> str: ... + @overload + def GetInput(self) -> 'vtkTree': ... + @overload + def GetInput(self, port:int) -> 'vtkTree': ... + def GetNodeNameArrayName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IgnoreArray(self, arrayName:str) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPhyloXMLTreeWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPhyloXMLTreeWriter': ... + def SetEdgeWeightArrayName(self, _arg:str) -> None: ... + def SetNodeNameArrayName(self, _arg:str) -> None: ... + +class vtkRISReader(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + delimiter:'getset_descriptor' + file_name:'getset_descriptor' + max_records:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDelimiter(self) -> str: ... + def GetFileName(self) -> str: ... + def GetMaxRecords(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRISReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRISReader': ... + def SetDelimiter(self, _arg:str) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetMaxRecords(self, _arg:int) -> None: ... + +class vtkTemporalDelimitedTextReader(vtkDelimitedTextReader): + m_time:'getset_descriptor' + remove_time_step_column:'getset_descriptor' + time_column_id:'getset_descriptor' + time_column_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRemoveTimeStepColumn(self) -> bool: ... + def GetTimeColumnId(self) -> int: ... + def GetTimeColumnName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTemporalDelimitedTextReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTemporalDelimitedTextReader': ... + def SetRemoveTimeStepColumn(self, rts:bool) -> None: ... + def SetTimeColumnId(self, idx:int) -> None: ... + def SetTimeColumnName(self, name:str) -> None: ... + +class vtkTulipReader(vtkmodules.vtkCommonExecutionModel.vtkUndirectedGraphAlgorithm): + file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTulipReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTulipReader': ... + def SetFileName(self, _arg:str) -> None: ... + +class vtkXGMLReader(vtkmodules.vtkCommonExecutionModel.vtkUndirectedGraphAlgorithm): + file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXGMLReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXGMLReader': ... + def SetFileName(self, _arg:str) -> None: ... + +class vtkXMLTreeReader(vtkmodules.vtkCommonExecutionModel.vtkTreeAlgorithm): + edge_pedigree_id_array_name:'getset_descriptor' + file_name:'getset_descriptor' + generate_edge_pedigree_ids:'getset_descriptor' + generate_vertex_pedigree_ids:'getset_descriptor' + mask_arrays:'getset_descriptor' + read_char_data:'getset_descriptor' + read_tag_name:'getset_descriptor' + vertex_pedigree_id_array_name:'getset_descriptor' + xml_string:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateEdgePedigreeIdsOff(self) -> None: ... + def GenerateEdgePedigreeIdsOn(self) -> None: ... + def GenerateVertexPedigreeIdsOff(self) -> None: ... + def GenerateVertexPedigreeIdsOn(self) -> None: ... + def GetEdgePedigreeIdArrayName(self) -> str: ... + def GetFileName(self) -> str: ... + def GetGenerateEdgePedigreeIds(self) -> bool: ... + def GetGenerateVertexPedigreeIds(self) -> bool: ... + def GetMaskArrays(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReadCharData(self) -> bool: ... + def GetReadTagName(self) -> bool: ... + def GetVertexPedigreeIdArrayName(self) -> str: ... + def GetXMLString(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MaskArraysOff(self) -> None: ... + def MaskArraysOn(self) -> None: ... + def NewInstance(self) -> 'vtkXMLTreeReader': ... + def ReadCharDataOff(self) -> None: ... + def ReadCharDataOn(self) -> None: ... + def ReadTagNameOff(self) -> None: ... + def ReadTagNameOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLTreeReader': ... + def SetEdgePedigreeIdArrayName(self, _arg:str) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetGenerateEdgePedigreeIds(self, _arg:bool) -> None: ... + def SetGenerateVertexPedigreeIds(self, _arg:bool) -> None: ... + def SetMaskArrays(self, _arg:bool) -> None: ... + def SetReadCharData(self, _arg:bool) -> None: ... + def SetReadTagName(self, _arg:bool) -> None: ... + def SetVertexPedigreeIdArrayName(self, _arg:str) -> None: ... + def SetXMLString(self, _arg:str) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOLANLX3D.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOLANLX3D.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..46a5df4 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOLANLX3D.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOLANLX3D.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOLANLX3D.pyi new file mode 100644 index 0000000..1ae728d --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOLANLX3D.pyi @@ -0,0 +1,29 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkLANLX3DReader(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + file_name:'getset_descriptor' + read_all_pieces:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReadAllPieces(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLANLX3DReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLANLX3DReader': ... + def SetFileName(self, _arg:str) -> None: ... + def SetReadAllPieces(self, _arg:bool) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOLSDyna.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOLSDyna.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..94eb29b Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOLSDyna.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOLegacy.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOLegacy.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..60f950a Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOLegacy.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOMINC.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOMINC.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..896cff6 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOMINC.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOMotionFX.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOMotionFX.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..49a32c5 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOMotionFX.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOMotionFX.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOMotionFX.pyi new file mode 100644 index 0000000..781e53e --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOMotionFX.pyi @@ -0,0 +1,31 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkMotionFXCFGReader(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + file_name:'getset_descriptor' + time_resolution:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTimeResolution(self) -> int: ... + def GetTimeResolutionMaxValue(self) -> int: ... + def GetTimeResolutionMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMotionFXCFGReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMotionFXCFGReader': ... + def SetFileName(self, fname:str) -> None: ... + def SetTimeResolution(self, _arg:int) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOMovie.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOMovie.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..7196658 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOMovie.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIONetCDF.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIONetCDF.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..0d315f0 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIONetCDF.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOOMF.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOOMF.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..c50fcdb Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOOMF.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOOggTheora.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOOggTheora.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..9ed365a Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOOggTheora.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOOggTheora.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOOggTheora.pyi new file mode 100644 index 0000000..47cbeb6 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOOggTheora.pyi @@ -0,0 +1,41 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkIOMovie + +class vtkOggTheoraWriter(vtkmodules.vtkIOMovie.vtkGenericMovieWriter): + quality:'getset_descriptor' + rate:'getset_descriptor' + subsampling:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def End(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetQuality(self) -> int: ... + def GetQualityMaxValue(self) -> int: ... + def GetQualityMinValue(self) -> int: ... + def GetRate(self) -> int: ... + def GetRateMaxValue(self) -> int: ... + def GetRateMinValue(self) -> int: ... + def GetSubsampling(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOggTheoraWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOggTheoraWriter': ... + def SetQuality(self, _arg:int) -> None: ... + def SetRate(self, _arg:int) -> None: ... + def SetSubsampling(self, _arg:int) -> None: ... + def Start(self) -> None: ... + def SubsamplingOff(self) -> None: ... + def SubsamplingOn(self) -> None: ... + def Write(self) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOPIO.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOPIO.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..c09dffe Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOPIO.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOPLY.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOPLY.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..8ba97b2 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOPLY.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallel.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallel.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..234ecda Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallel.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallel.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallel.pyi new file mode 100644 index 0000000..97d11a7 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallel.pyi @@ -0,0 +1,355 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkIOCore +import vtkmodules.vtkIOGeometry +import vtkmodules.vtkIOImage +import vtkmodules.vtkIOLegacy + +class vtkEnSightWriter(vtkmodules.vtkIOCore.vtkWriter): + base_name:'getset_descriptor' + block_i_ds:'getset_descriptor' + file_name:'getset_descriptor' + ghost_level:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + number_of_blocks:'getset_descriptor' + path:'getset_descriptor' + process_number:'getset_descriptor' + time_step:'getset_descriptor' + transient_geometry:'getset_descriptor' + write_element_i_ds:'getset_descriptor' + write_node_i_ds:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBaseName(self) -> str: ... + def GetBlockIDs(self) -> Pointer: ... + def GetFileName(self) -> str: ... + def GetGhostLevel(self) -> int: ... + def GetInput(self) -> 'vtkUnstructuredGrid': ... + def GetNumberOfBlocks(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPath(self) -> str: ... + def GetProcessNumber(self) -> int: ... + def GetTimeStep(self) -> int: ... + def GetTransientGeometry(self) -> bool: ... + def GetWriteElementIDs(self) -> bool: ... + def GetWriteNodeIDs(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEnSightWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEnSightWriter': ... + def SetBaseName(self, _arg:str) -> None: ... + def SetBlockIDs(self, val:MutableSequence[int]) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetGhostLevel(self, _arg:int) -> None: ... + def SetInputData(self, input:'vtkUnstructuredGrid') -> None: ... + def SetNumberOfBlocks(self, _arg:int) -> None: ... + def SetPath(self, _arg:str) -> None: ... + def SetProcessNumber(self, _arg:int) -> None: ... + def SetTimeStep(self, _arg:int) -> None: ... + def SetTransientGeometry(self, _arg:bool) -> None: ... + def SetWriteElementIDs(self, _arg:bool) -> None: ... + def SetWriteNodeIDs(self, _arg:bool) -> None: ... + def WriteCaseFile(self, TotalTimeSteps:int) -> None: ... + def WriteElementIDsOff(self) -> None: ... + def WriteElementIDsOn(self) -> None: ... + def WriteNodeIDsOff(self) -> None: ... + def WriteNodeIDsOn(self) -> None: ... + def WriteSOSCaseFile(self, NumProcs:int) -> None: ... + +class vtkMultiBlockPLOT3DReader(vtkmodules.vtkCommonExecutionModel.vtkParallelReader): + FILE_BIG_ENDIAN:int + FILE_LITTLE_ENDIAN:int + auto_detect_format:'getset_descriptor' + binary_file:'getset_descriptor' + byte_order:'getset_descriptor' + controller:'getset_descriptor' + double_precision:'getset_descriptor' + file_name:'getset_descriptor' + force_read:'getset_descriptor' + function_file_name:'getset_descriptor' + gamma:'getset_descriptor' + has_byte_count:'getset_descriptor' + i_blanking:'getset_descriptor' + multi_grid:'getset_descriptor' + output:'getset_descriptor' + preserve_intermediate_functions:'getset_descriptor' + q_file_name:'getset_descriptor' + r:'getset_descriptor' + scalar_function_number:'getset_descriptor' + two_dimensional_geometry:'getset_descriptor' + vector_function_number:'getset_descriptor' + xyz_file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddFunction(self, functionNumber:int) -> None: ... + def AddFunctionName(self, name:str) -> None: ... + def AutoDetectFormatOff(self) -> None: ... + def AutoDetectFormatOn(self) -> None: ... + def BinaryFileOff(self) -> None: ... + def BinaryFileOn(self) -> None: ... + def CanReadBinaryFile(self, fname:str) -> int: ... + def DoublePrecisionOff(self) -> None: ... + def DoublePrecisionOn(self) -> None: ... + def ForceReadOff(self) -> None: ... + def ForceReadOn(self) -> None: ... + def GetAutoDetectFormat(self) -> int: ... + def GetBinaryFile(self) -> int: ... + def GetByteOrder(self) -> int: ... + def GetByteOrderAsString(self) -> str: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetDoublePrecision(self) -> int: ... + @overload + def GetFileName(self) -> str: ... + @overload + def GetFileName(self, i:int) -> str: ... + def GetForceRead(self) -> int: ... + def GetFunctionFileName(self) -> str: ... + def GetGamma(self) -> float: ... + def GetHasByteCount(self) -> int: ... + def GetIBlanking(self) -> int: ... + def GetMultiGrid(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkMultiBlockDataSet': ... + @overload + def GetOutput(self, __a:int) -> 'vtkMultiBlockDataSet': ... + def GetPreserveIntermediateFunctions(self) -> bool: ... + def GetQFileName(self) -> str: ... + def GetR(self) -> float: ... + def GetScalarFunctionNumber(self) -> int: ... + def GetTwoDimensionalGeometry(self) -> int: ... + def GetVectorFunctionNumber(self) -> int: ... + def GetXYZFileName(self) -> str: ... + def HasByteCountOff(self) -> None: ... + def HasByteCountOn(self) -> None: ... + def IBlankingOff(self) -> None: ... + def IBlankingOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MultiGridOff(self) -> None: ... + def MultiGridOn(self) -> None: ... + def NewInstance(self) -> 'vtkMultiBlockPLOT3DReader': ... + def PreserveIntermediateFunctionsOff(self) -> None: ... + def PreserveIntermediateFunctionsOn(self) -> None: ... + def ReadArrays(self, piece:int, npieces:int, nghosts:int, timestep:int, output:'vtkDataObject') -> int: ... + def ReadMesh(self, piece:int, npieces:int, nghosts:int, timestep:int, output:'vtkDataObject') -> int: ... + def ReadMetaData(self, metadata:'vtkInformation') -> int: ... + def ReadPoints(self, piece:int, npieces:int, nghosts:int, timestep:int, output:'vtkDataObject') -> int: ... + def RemoveAllFunctions(self) -> None: ... + def RemoveFunction(self, __a:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMultiBlockPLOT3DReader': ... + def SetAutoDetectFormat(self, _arg:int) -> None: ... + def SetBinaryFile(self, _arg:int) -> None: ... + def SetByteOrder(self, _arg:int) -> None: ... + def SetByteOrderToBigEndian(self) -> None: ... + def SetByteOrderToLittleEndian(self) -> None: ... + def SetController(self, c:'vtkMultiProcessController') -> None: ... + def SetDoublePrecision(self, _arg:int) -> None: ... + def SetFileName(self, name:str) -> None: ... + def SetForceRead(self, _arg:int) -> None: ... + def SetFunctionFileName(self, _arg:str) -> None: ... + def SetGamma(self, _arg:float) -> None: ... + def SetHasByteCount(self, _arg:int) -> None: ... + def SetIBlanking(self, _arg:int) -> None: ... + def SetMultiGrid(self, _arg:int) -> None: ... + def SetPreserveIntermediateFunctions(self, _arg:bool) -> None: ... + def SetQFileName(self, name:str) -> None: ... + def SetR(self, _arg:float) -> None: ... + def SetScalarFunctionNumber(self, num:int) -> None: ... + def SetTwoDimensionalGeometry(self, _arg:int) -> None: ... + def SetVectorFunctionNumber(self, num:int) -> None: ... + def SetXYZFileName(self, __a:str) -> None: ... + def TwoDimensionalGeometryOff(self) -> None: ... + def TwoDimensionalGeometryOn(self) -> None: ... + +class vtkNek5000Reader(vtkmodules.vtkCommonExecutionModel.vtkUnstructuredGridAlgorithm): + clean_grid:'getset_descriptor' + data_file_name:'getset_descriptor' + file_name:'getset_descriptor' + m_time:'getset_descriptor' + number_of_point_arrays:'getset_descriptor' + number_of_time_steps:'getset_descriptor' + spectral_element_ids:'getset_descriptor' + time_step_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CanReadFile(self, fname:str) -> int: ... + def CleanGridOff(self) -> None: ... + def CleanGridOn(self) -> None: ... + def DisableAllPointArrays(self) -> None: ... + def EnableAllPointArrays(self) -> None: ... + def GetCleanGrid(self) -> int: ... + def GetDataFileName(self) -> str: ... + def GetFileName(self) -> str: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPointArrays(self) -> int: ... + def GetNumberOfTimeSteps(self) -> int: ... + def GetPointArrayName(self, index:int) -> str: ... + @overload + def GetPointArrayStatus(self, name:str) -> bool: ... + @overload + def GetPointArrayStatus(self, index:int) -> bool: ... + def GetSpectralElementIds(self) -> int: ... + def GetTimeStepRange(self) -> Tuple[int, int]: ... + def GetVariableNamesFromData(self, varTags:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkNek5000Reader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkNek5000Reader': ... + def SetCleanGrid(self, _arg:int) -> None: ... + def SetDataFileName(self, _arg:str) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetPointArrayStatus(self, name:str, status:int) -> None: ... + def SetSpectralElementIds(self, _arg:int) -> None: ... + @overload + def SetTimeStepRange(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetTimeStepRange(self, _arg:Sequence[int]) -> None: ... + def SpectralElementIdsOff(self) -> None: ... + def SpectralElementIdsOn(self) -> None: ... + +class vtkPChacoReader(vtkmodules.vtkIOGeometry.vtkChacoReader): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPChacoReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPChacoReader': ... + def SetController(self, c:'vtkMultiProcessController') -> None: ... + +class vtkPDataSetReader(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + data_type:'getset_descriptor' + file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CanReadFile(self, filename:str) -> int: ... + def GetDataType(self) -> int: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPDataSetReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPDataSetReader': ... + def SetFileName(self, _arg:str) -> None: ... + +class vtkPDataSetWriter(vtkmodules.vtkIOLegacy.vtkDataSetWriter): + controller:'getset_descriptor' + end_piece:'getset_descriptor' + file_pattern:'getset_descriptor' + ghost_level:'getset_descriptor' + number_of_pieces:'getset_descriptor' + start_piece:'getset_descriptor' + use_relative_file_names:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetEndPiece(self) -> int: ... + def GetFilePattern(self) -> str: ... + def GetGhostLevel(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPieces(self) -> int: ... + def GetStartPiece(self) -> int: ... + def GetUseRelativeFileNames(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPDataSetWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPDataSetWriter': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetEndPiece(self, _arg:int) -> None: ... + def SetFilePattern(self, _arg:str) -> None: ... + def SetGhostLevel(self, _arg:int) -> None: ... + def SetNumberOfPieces(self, num:int) -> None: ... + def SetStartPiece(self, _arg:int) -> None: ... + def SetUseRelativeFileNames(self, _arg:int) -> None: ... + def UseRelativeFileNamesOff(self) -> None: ... + def UseRelativeFileNamesOn(self) -> None: ... + def Write(self) -> int: ... + +class vtkPImageWriter(vtkmodules.vtkIOImage.vtkImageWriter): + memory_limit:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMemoryLimit(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPImageWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPImageWriter': ... + def SetMemoryLimit(self, _arg:int) -> None: ... + +class vtkPOpenFOAMReader(vtkmodules.vtkIOGeometry.vtkOpenFOAMReader): + class caseType(int): ... + DECOMPOSED_CASE:'caseType' + RECONSTRUCTED_CASE:'caseType' + case_type:'getset_descriptor' + controller:'getset_descriptor' + read_all_files_to_determine_structure:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeProgress(self) -> float: ... + def GetCaseType(self) -> 'caseType': ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReadAllFilesToDetermineStructure(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPOpenFOAMReader': ... + def ReadAllFilesToDetermineStructureOff(self) -> None: ... + def ReadAllFilesToDetermineStructureOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPOpenFOAMReader': ... + def SetCaseType(self, t:int) -> None: ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetReadAllFilesToDetermineStructure(self, __a:bool) -> None: ... + +class vtkPlot3DMetaReader(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlot3DMetaReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlot3DMetaReader': ... + def SetFileName(self, _arg:str) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallelExodus.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallelExodus.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..90aaaaf Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallelExodus.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallelExodus.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallelExodus.pyi new file mode 100644 index 0000000..ef8a588 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallelExodus.pyi @@ -0,0 +1,64 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkIOExodus + +class vtkPExodusIIReader(vtkmodules.vtkIOExodus.vtkExodusIIReader): + controller:'getset_descriptor' + file_name:'getset_descriptor' + file_pattern:'getset_descriptor' + file_prefix:'getset_descriptor' + file_range:'getset_descriptor' + number_of_file_names:'getset_descriptor' + number_of_files:'getset_descriptor' + total_number_of_elements:'getset_descriptor' + total_number_of_nodes:'getset_descriptor' + variable_cache_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Broadcast(self, ctrl:'vtkMultiProcessController') -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetFilePattern(self) -> str: ... + def GetFilePrefix(self) -> str: ... + def GetFileRange(self) -> Tuple[int, int]: ... + def GetNumberOfFileNames(self) -> int: ... + def GetNumberOfFiles(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTotalNumberOfElements(self) -> int: ... + def GetTotalNumberOfNodes(self) -> int: ... + def GetVariableCacheSize(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPExodusIIReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPExodusIIReader': ... + def SetController(self, c:'vtkMultiProcessController') -> None: ... + def SetFileName(self, name:str) -> None: ... + def SetFilePattern(self, _arg:str) -> None: ... + def SetFilePrefix(self, _arg:str) -> None: ... + @overload + def SetFileRange(self, __a:int, __b:int) -> None: ... + @overload + def SetFileRange(self, r:MutableSequence[int]) -> None: ... + def SetVariableCacheSize(self, _arg:float) -> None: ... + +class vtkPExodusIIWriter(vtkmodules.vtkIOExodus.vtkExodusIIWriter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPExodusIIWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPExodusIIWriter': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallelLSDyna.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallelLSDyna.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..3711032 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallelLSDyna.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallelLSDyna.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallelLSDyna.pyi new file mode 100644 index 0000000..040b591 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallelLSDyna.pyi @@ -0,0 +1,27 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkIOLSDyna + +class vtkPLSDynaReader(vtkmodules.vtkIOLSDyna.vtkLSDynaReader): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CanReadFile(self, fname:str) -> int: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPLSDynaReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPLSDynaReader': ... + def SetController(self, c:'vtkMultiProcessController') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallelXML.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallelXML.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..6a11a2b Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallelXML.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallelXML.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallelXML.pyi new file mode 100644 index 0000000..a3a1e4b --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOParallelXML.pyi @@ -0,0 +1,356 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkIOXML + +class vtkXMLCompositeDataSetWriterHelper(vtkmodules.vtkCommonCore.vtkObject): + writer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWriter(self) -> 'vtkXMLWriterBase': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLCompositeDataSetWriterHelper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLCompositeDataSetWriterHelper': ... + def SetWriter(self, writer:'vtkXMLWriterBase') -> None: ... + def WriteDataSet(self, path:str, prefix:str, data:'vtkDataObject') -> str: ... + +class vtkXMLDataWriterHelper(vtkmodules.vtkIOXML.vtkXMLWriter): + data_set_name:'getset_descriptor' + data_set_version:'getset_descriptor' + default_file_extension:'getset_descriptor' + writer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddGlobalFieldData(self, dataset:'vtkCompositeDataSet') -> bool: ... + def AddXML(self, xmlElement:'vtkXMLDataElement') -> bool: ... + def BeginWriting(self) -> bool: ... + def EndWriting(self) -> bool: ... + def GetDefaultFileExtension(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWriter(self) -> 'vtkXMLWriter2': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLDataWriterHelper': ... + def OpenFile(self) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLDataWriterHelper': ... + def SetDataSetName(self, name:str) -> None: ... + def SetDataSetVersion(self, major:int, minor:int) -> None: ... + def SetWriter(self, __a:'vtkXMLWriter2') -> None: ... + +class vtkXMLPDataObjectWriter(vtkmodules.vtkIOXML.vtkXMLWriter): + controller:'getset_descriptor' + end_piece:'getset_descriptor' + ghost_level:'getset_descriptor' + number_of_pieces:'getset_descriptor' + start_piece:'getset_descriptor' + use_subdirectory:'getset_descriptor' + write_summary_file:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetEndPiece(self) -> int: ... + def GetGhostLevel(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPieces(self) -> int: ... + def GetStartPiece(self) -> int: ... + def GetUseSubdirectory(self) -> bool: ... + def GetWriteSummaryFile(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLPDataObjectWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLPDataObjectWriter': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetEndPiece(self, _arg:int) -> None: ... + def SetGhostLevel(self, _arg:int) -> None: ... + def SetNumberOfPieces(self, _arg:int) -> None: ... + def SetStartPiece(self, _arg:int) -> None: ... + def SetUseSubdirectory(self, _arg:bool) -> None: ... + def SetWriteSummaryFile(self, flag:int) -> None: ... + def WriteSummaryFileOff(self) -> None: ... + def WriteSummaryFileOn(self) -> None: ... + +class vtkXMLPDataWriter(vtkXMLPDataObjectWriter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLPDataWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLPDataWriter': ... + +class vtkXMLPDataSetWriter(vtkXMLPDataWriter): + input:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInput(self) -> 'vtkDataSet': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLPDataSetWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLPDataSetWriter': ... + +class vtkXMLPUniformGridAMRWriter(vtkmodules.vtkIOXML.vtkXMLUniformGridAMRWriter): + controller:'getset_descriptor' + write_meta_file:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLPUniformGridAMRWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLPUniformGridAMRWriter': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetWriteMetaFile(self, flag:int) -> None: ... + +class vtkXMLPHierarchicalBoxDataWriter(vtkXMLPUniformGridAMRWriter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLPHierarchicalBoxDataWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLPHierarchicalBoxDataWriter': ... + +class vtkXMLPHyperTreeGridWriter(vtkXMLPDataObjectWriter): + default_file_extension:'getset_descriptor' + input:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDefaultFileExtension(self) -> str: ... + def GetInput(self) -> 'vtkHyperTreeGrid': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLPHyperTreeGridWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLPHyperTreeGridWriter': ... + +class vtkXMLPStructuredDataWriter(vtkXMLPDataWriter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLPStructuredDataWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLPStructuredDataWriter': ... + +class vtkXMLPImageDataWriter(vtkXMLPStructuredDataWriter): + default_file_extension:'getset_descriptor' + input:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDefaultFileExtension(self) -> str: ... + def GetInput(self) -> 'vtkImageData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLPImageDataWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLPImageDataWriter': ... + +class vtkXMLPMultiBlockDataWriter(vtkmodules.vtkIOXML.vtkXMLMultiBlockDataWriter): + controller:'getset_descriptor' + number_of_pieces:'getset_descriptor' + start_piece:'getset_descriptor' + write_meta_file:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPieces(self) -> int: ... + def GetStartPiece(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLPMultiBlockDataWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLPMultiBlockDataWriter': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetNumberOfPieces(self, _arg:int) -> None: ... + def SetStartPiece(self, _arg:int) -> None: ... + def SetWriteMetaFile(self, flag:int) -> None: ... + +class vtkXMLPUnstructuredDataWriter(vtkXMLPDataWriter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLPUnstructuredDataWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLPUnstructuredDataWriter': ... + +class vtkXMLPPolyDataWriter(vtkXMLPUnstructuredDataWriter): + default_file_extension:'getset_descriptor' + input:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDefaultFileExtension(self) -> str: ... + def GetInput(self) -> 'vtkPolyData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLPPolyDataWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLPPolyDataWriter': ... + +class vtkXMLPRectilinearGridWriter(vtkXMLPStructuredDataWriter): + default_file_extension:'getset_descriptor' + input:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDefaultFileExtension(self) -> str: ... + def GetInput(self) -> 'vtkRectilinearGrid': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLPRectilinearGridWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLPRectilinearGridWriter': ... + +class vtkXMLPStructuredGridWriter(vtkXMLPStructuredDataWriter): + default_file_extension:'getset_descriptor' + input:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDefaultFileExtension(self) -> str: ... + def GetInput(self) -> 'vtkStructuredGrid': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLPStructuredGridWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLPStructuredGridWriter': ... + +class vtkXMLPTableWriter(vtkXMLPDataObjectWriter): + default_file_extension:'getset_descriptor' + input:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDefaultFileExtension(self) -> str: ... + def GetInput(self) -> 'vtkTable': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLPTableWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLPTableWriter': ... + +class vtkXMLPUnstructuredGridWriter(vtkXMLPUnstructuredDataWriter): + default_file_extension:'getset_descriptor' + input:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDefaultFileExtension(self) -> str: ... + def GetInput(self) -> 'vtkUnstructuredGridBase': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLPUnstructuredGridWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLPUnstructuredGridWriter': ... + +class vtkXMLWriter2(vtkmodules.vtkIOXML.vtkXMLWriterBase): + controller:'getset_descriptor' + number_of_ghost_levels:'getset_descriptor' + number_of_ghost_levels_max_value:'getset_descriptor' + number_of_ghost_levels_min_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfGhostLevels(self) -> int: ... + def GetNumberOfGhostLevelsMaxValue(self) -> int: ... + def GetNumberOfGhostLevelsMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLWriter2': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLWriter2': ... + def SetController(self, controller:'vtkMultiProcessController') -> None: ... + def SetNumberOfGhostLevels(self, _arg:int) -> None: ... + +class vtkXMLPartitionedDataSetCollectionWriter(vtkXMLWriter2): + default_file_extension:'getset_descriptor' + input_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDefaultFileExtension(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLPartitionedDataSetCollectionWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLPartitionedDataSetCollectionWriter': ... + def SetInputData(self, pd:'vtkPartitionedDataSetCollection') -> None: ... + +class vtkXMLPartitionedDataSetWriter(vtkXMLWriter2): + default_file_extension:'getset_descriptor' + input_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDefaultFileExtension(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLPartitionedDataSetWriter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLPartitionedDataSetWriter': ... + def SetInputData(self, pd:'vtkPartitionedDataSet') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOSQL.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOSQL.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..7b6885b Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOSQL.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOSegY.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOSegY.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..85a88d9 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOSegY.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOTRUCHAS.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOTRUCHAS.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..c10214e Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOTRUCHAS.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOTRUCHAS.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOTRUCHAS.pyi new file mode 100644 index 0000000..28435ac --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOTRUCHAS.pyi @@ -0,0 +1,43 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkTRUCHASReader(vtkmodules.vtkCommonExecutionModel.vtkMultiBlockDataSetAlgorithm): + file_name:'getset_descriptor' + number_of_block_arrays:'getset_descriptor' + number_of_cell_arrays:'getset_descriptor' + number_of_point_arrays:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def CanReadFile(filename:str) -> int: ... + def GetBlockArrayName(self, index:int) -> str: ... + def GetBlockArrayStatus(self, gridname:str) -> int: ... + def GetCellArrayName(self, index:int) -> str: ... + def GetCellArrayStatus(self, name:str) -> int: ... + def GetFileName(self) -> str: ... + def GetNumberOfBlockArrays(self) -> int: ... + def GetNumberOfCellArrays(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPointArrays(self) -> int: ... + def GetPointArrayName(self, index:int) -> str: ... + def GetPointArrayStatus(self, name:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTRUCHASReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTRUCHASReader': ... + def SetBlockArrayStatus(self, gridname:str, status:int) -> None: ... + def SetCellArrayStatus(self, name:str, status:int) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetPointArrayStatus(self, name:str, status:int) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOTecplotTable.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOTecplotTable.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..6c6197e Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOTecplotTable.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOTecplotTable.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOTecplotTable.pyi new file mode 100644 index 0000000..559dbb5 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOTecplotTable.pyi @@ -0,0 +1,53 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkTecplotTableReader(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + column_names_on_line:'getset_descriptor' + file_name:'getset_descriptor' + generate_pedigree_ids:'getset_descriptor' + header_lines:'getset_descriptor' + last_error:'getset_descriptor' + max_records:'getset_descriptor' + output_pedigree_ids:'getset_descriptor' + pedigree_id_array_name:'getset_descriptor' + skip_column_names:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GeneratePedigreeIdsOff(self) -> None: ... + def GeneratePedigreeIdsOn(self) -> None: ... + def GetColumnNamesOnLine(self) -> int: ... + def GetFileName(self) -> str: ... + def GetGeneratePedigreeIds(self) -> bool: ... + def GetHeaderLines(self) -> int: ... + def GetLastError(self) -> str: ... + def GetMaxRecords(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPedigreeIds(self) -> bool: ... + def GetPedigreeIdArrayName(self) -> str: ... + def GetSkipColumnNames(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTecplotTableReader': ... + def OutputPedigreeIdsOff(self) -> None: ... + def OutputPedigreeIdsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTecplotTableReader': ... + def SetColumnNamesOnLine(self, _arg:int) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetGeneratePedigreeIds(self, _arg:bool) -> None: ... + def SetHeaderLines(self, _arg:int) -> None: ... + def SetMaxRecords(self, _arg:int) -> None: ... + def SetOutputPedigreeIds(self, _arg:bool) -> None: ... + def SetPedigreeIdArrayName(self, _arg:str) -> None: ... + def SetSkipColumnNames(self, _arg:int) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOVPIC.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOVPIC.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..c4b1142 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOVPIC.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOVeraOut.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOVeraOut.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..590f5f3 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOVeraOut.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOVeraOut.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOVeraOut.pyi new file mode 100644 index 0000000..6daf0b4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOVeraOut.pyi @@ -0,0 +1,32 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkVeraOutReader(vtkmodules.vtkCommonExecutionModel.vtkRectilinearGridAlgorithm): + cell_data_array_selection:'getset_descriptor' + field_data_array_selection:'getset_descriptor' + file_name:'getset_descriptor' + m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetFieldDataArraySelection(self) -> 'vtkDataArraySelection': ... + def GetFileName(self) -> str: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVeraOutReader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVeraOutReader': ... + def SetFileName(self, _arg:str) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOVideo.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOVideo.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..fcbf22c Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOVideo.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOXML.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOXML.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..8ea7a06 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOXML.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOXMLParser.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOXMLParser.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..b4e8cde Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOXMLParser.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOXMLParser.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOXMLParser.pyi new file mode 100644 index 0000000..93bded1 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOXMLParser.pyi @@ -0,0 +1,109 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore + +class vtkXMLParser(vtkmodules.vtkCommonCore.vtkObject): + encoding:'getset_descriptor' + file_name:'getset_descriptor' + ignore_character_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CleanupParser(self) -> int: ... + def GetEncoding(self) -> str: ... + def GetFileName(self) -> str: ... + def GetIgnoreCharacterData(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InitializeParser(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLParser': ... + @overload + def Parse(self) -> int: ... + @overload + def Parse(self, inputString:str) -> int: ... + @overload + def Parse(self, inputString:str, length:int) -> int: ... + def ParseChunk(self, inputString:str, length:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLParser': ... + def SeekG(self, position:int) -> None: ... + def SetEncoding(self, _arg:str) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetIgnoreCharacterData(self, _arg:int) -> None: ... + def TellG(self) -> int: ... + @staticmethod + def hasLargeOffsets() -> bool: ... + +class vtkXMLDataParser(vtkXMLParser): + BigEndian:int + LittleEndian:int + abort:'getset_descriptor' + appended_data_position:'getset_descriptor' + attributes_encoding:'getset_descriptor' + compressor:'getset_descriptor' + progress:'getset_descriptor' + root_element:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CharacterDataHandler(self, data:str, length:int) -> None: ... + def GetAbort(self) -> int: ... + def GetAppendedDataPosition(self) -> int: ... + def GetAttributesEncoding(self) -> int: ... + def GetAttributesEncodingMaxValue(self) -> int: ... + def GetAttributesEncodingMinValue(self) -> int: ... + def GetCompressor(self) -> 'vtkDataCompressor': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProgress(self) -> float: ... + def GetRootElement(self) -> 'vtkXMLDataElement': ... + def GetWordTypeSize(self, wordType:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLDataParser': ... + def Parse(self) -> int: ... + @overload + def ReadAppendedData(self, offset:int, buffer:Pointer, startWord:int, numWords:int, wordType:int) -> int: ... + @overload + def ReadAppendedData(self, offset:int, buffer:str, startWord:int, numWords:int) -> int: ... + def ReadAsciiData(self, buffer:Pointer, startWord:int, numWords:int, wordType:int) -> int: ... + def ReadBinaryData(self, buffer:Pointer, startWord:int, maxWords:int, wordType:int) -> int: ... + @overload + def ReadInlineData(self, element:'vtkXMLDataElement', isAscii:int, buffer:Pointer, startWord:int, numWords:int, wordType:int) -> int: ... + @overload + def ReadInlineData(self, element:'vtkXMLDataElement', isAscii:int, buffer:str, startWord:int, numWords:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLDataParser': ... + def SetAbort(self, _arg:int) -> None: ... + def SetAttributesEncoding(self, _arg:int) -> None: ... + def SetCompressor(self, __a:'vtkDataCompressor') -> None: ... + def SetProgress(self, _arg:float) -> None: ... + +class vtkXMLUtilities(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def FactorElements(tree:'vtkXMLDataElement') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXMLUtilities': ... + @staticmethod + def ReadElementFromFile(filename:str, encoding:int=...) -> 'vtkXMLDataElement': ... + @staticmethod + def ReadElementFromString(str:str, encoding:int=...) -> 'vtkXMLDataElement': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXMLUtilities': ... + @staticmethod + def UnFactorElements(tree:'vtkXMLDataElement') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkIOXdmf2.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOXdmf2.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..953fa2b Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkIOXdmf2.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingColor.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingColor.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..98a41bf Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingColor.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingColor.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingColor.pyi new file mode 100644 index 0000000..b50d989 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingColor.pyi @@ -0,0 +1,211 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkImagingCore + +class vtkImageHSIToRGB(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + maximum:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaximum(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageHSIToRGB': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageHSIToRGB': ... + def SetMaximum(self, _arg:float) -> None: ... + +class vtkImageHSVToRGB(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + maximum:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaximum(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageHSVToRGB': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageHSVToRGB': ... + def SetMaximum(self, _arg:float) -> None: ... + +class vtkImageLuminance(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageLuminance': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageLuminance': ... + +class vtkImageMapToRGBA(vtkmodules.vtkImagingCore.vtkImageMapToColors): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageMapToRGBA': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageMapToRGBA': ... + +class vtkImageMapToWindowLevelColors(vtkmodules.vtkImagingCore.vtkImageMapToColors): + level:'getset_descriptor' + window:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLevel(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWindow(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageMapToWindowLevelColors': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageMapToWindowLevelColors': ... + def SetLevel(self, _arg:float) -> None: ... + def SetWindow(self, _arg:float) -> None: ... + +class vtkImageQuantizeRGBToIndex(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + build_tree_execute_time:'getset_descriptor' + initialize_execute_time:'getset_descriptor' + input_type:'getset_descriptor' + lookup_index_execute_time:'getset_descriptor' + lookup_table:'getset_descriptor' + number_of_colors:'getset_descriptor' + number_of_colors_max_value:'getset_descriptor' + number_of_colors_min_value:'getset_descriptor' + sampling_rate:'getset_descriptor' + sort_index_by_luminance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBuildTreeExecuteTime(self) -> float: ... + def GetInitializeExecuteTime(self) -> float: ... + def GetInputType(self) -> int: ... + def GetLookupIndexExecuteTime(self) -> float: ... + def GetLookupTable(self) -> 'vtkLookupTable': ... + def GetNumberOfColors(self) -> int: ... + def GetNumberOfColorsMaxValue(self) -> int: ... + def GetNumberOfColorsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSamplingRate(self) -> Tuple[int, int, int]: ... + def GetSortIndexByLuminance(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageQuantizeRGBToIndex': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageQuantizeRGBToIndex': ... + def SetBuildTreeExecuteTime(self, _arg:float) -> None: ... + def SetInitializeExecuteTime(self, _arg:float) -> None: ... + def SetLookupIndexExecuteTime(self, _arg:float) -> None: ... + def SetNumberOfColors(self, _arg:int) -> None: ... + @overload + def SetSamplingRate(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetSamplingRate(self, _arg:Sequence[int]) -> None: ... + def SetSortIndexByLuminance(self, _arg:bool) -> None: ... + def SortIndexByLuminanceOff(self) -> None: ... + def SortIndexByLuminanceOn(self) -> None: ... + +class vtkImageRGBToHSI(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + maximum:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaximum(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageRGBToHSI': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageRGBToHSI': ... + def SetMaximum(self, _arg:float) -> None: ... + +class vtkImageRGBToHSV(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + maximum:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaximum(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageRGBToHSV': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageRGBToHSV': ... + def SetMaximum(self, _arg:float) -> None: ... + +class vtkImageRGBToXYZ(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageRGBToXYZ': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageRGBToXYZ': ... + +class vtkImageRGBToYIQ(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + maximum:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaximum(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageRGBToYIQ': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageRGBToYIQ': ... + def SetMaximum(self, _arg:float) -> None: ... + +class vtkImageXYZToLAB(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageXYZToLAB': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageXYZToLAB': ... + +class vtkImageYIQToRGB(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + maximum:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaximum(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageYIQToRGB': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageYIQToRGB': ... + def SetMaximum(self, _arg:float) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingCore.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingCore.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..ee574d5 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingCore.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingCore.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingCore.pyi new file mode 100644 index 0000000..61742c4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingCore.pyi @@ -0,0 +1,1560 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonDataModel +import vtkmodules.vtkCommonExecutionModel + +class vtkImageBorderMode(int): ... + +VTK_BLACKMAN_HARRIS3:int +VTK_BLACKMAN_HARRIS4:int +VTK_BLACKMAN_NUTTALL3:int +VTK_BLACKMAN_NUTTALL4:int +VTK_BLACKMAN_WINDOW:int +VTK_COSINE_WINDOW:int +VTK_HAMMING_WINDOW:int +VTK_HANN_WINDOW:int +VTK_IMAGE_BLEND_MODE_COMPOUND:int +VTK_IMAGE_BLEND_MODE_NORMAL:int +VTK_IMAGE_BORDER_CLAMP:'vtkImageBorderMode' +VTK_IMAGE_BORDER_MIRROR:'vtkImageBorderMode' +VTK_IMAGE_BORDER_REPEAT:'vtkImageBorderMode' +VTK_IMAGE_BSPLINE_DEGREE_MAX:int +VTK_KAISER_WINDOW:int +VTK_LANCZOS_WINDOW:int +VTK_NUTTALL_WINDOW:int +VTK_RESLICE_CUBIC:int +VTK_RESLICE_LINEAR:int +VTK_RESLICE_NEAREST:int +VTK_SINC_KERNEL_SIZE_MAX:int + +class vtkAbstractImageInterpolator(vtkmodules.vtkCommonCore.vtkObject): + border_mode:'getset_descriptor' + component_count:'getset_descriptor' + component_offset:'getset_descriptor' + direction:'getset_descriptor' + extent:'getset_descriptor' + number_of_components:'getset_descriptor' + origin:'getset_descriptor' + out_value:'getset_descriptor' + sliding_window:'getset_descriptor' + spacing:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CheckBoundsIJK(self, x:Sequence[float]) -> bool: ... + def ComputeNumberOfComponents(self, inputComponents:int) -> int: ... + def ComputeSupportSize(self, matrix:Sequence[float], support:MutableSequence[int]) -> None: ... + def DeepCopy(self, obj:'vtkAbstractImageInterpolator') -> None: ... + def GetBorderMode(self) -> 'vtkImageBorderMode': ... + def GetBorderModeAsString(self) -> str: ... + def GetComponentCount(self) -> int: ... + def GetComponentOffset(self) -> int: ... + def GetDirection(self) -> Tuple[float, float, float, float, float, float, float, float, float]: ... + def GetExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetOutValue(self) -> float: ... + def GetSlidingWindow(self) -> bool: ... + def GetSpacing(self) -> Tuple[float, float, float]: ... + def GetTolerance(self) -> float: ... + def Initialize(self, data:'vtkDataObject') -> None: ... + @overload + def Interpolate(self, x:float, y:float, z:float, component:int) -> float: ... + @overload + def Interpolate(self, point:Sequence[float], value:MutableSequence[float]) -> bool: ... + def InterpolateIJK(self, point:Sequence[float], value:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + def IsSeparable(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAbstractImageInterpolator': ... + def ReleaseData(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractImageInterpolator': ... + def SetBorderMode(self, mode:'vtkImageBorderMode') -> None: ... + def SetBorderModeToClamp(self) -> None: ... + def SetBorderModeToMirror(self) -> None: ... + def SetBorderModeToRepeat(self) -> None: ... + def SetComponentCount(self, count:int) -> None: ... + def SetComponentOffset(self, offset:int) -> None: ... + def SetOutValue(self, outValue:float) -> None: ... + def SetSlidingWindow(self, x:bool) -> None: ... + def SetTolerance(self, tol:float) -> None: ... + def SlidingWindowOff(self) -> None: ... + def SlidingWindowOn(self) -> None: ... + def Update(self) -> None: ... + +class vtkExtractVOI(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + include_boundary:'getset_descriptor' + sample_rate:'getset_descriptor' + voi:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetIncludeBoundary(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSampleRate(self) -> Tuple[int, int, int]: ... + def GetVOI(self) -> Tuple[int, int, int, int, int, int]: ... + def IncludeBoundaryOff(self) -> None: ... + def IncludeBoundaryOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractVOI': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractVOI': ... + def SetIncludeBoundary(self, _arg:int) -> None: ... + @overload + def SetSampleRate(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetSampleRate(self, _arg:Sequence[int]) -> None: ... + @overload + def SetVOI(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetVOI(self, _arg:Sequence[int]) -> None: ... + +class vtkImageInterpolator(vtkAbstractImageInterpolator): + interpolation_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeSupportSize(self, matrix:Sequence[float], size:MutableSequence[int]) -> None: ... + def GetInterpolationMode(self) -> int: ... + def GetInterpolationModeAsString(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsSeparable(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageInterpolator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageInterpolator': ... + def SetInterpolationMode(self, mode:int) -> None: ... + def SetInterpolationModeToCubic(self) -> None: ... + def SetInterpolationModeToLinear(self) -> None: ... + def SetInterpolationModeToNearest(self) -> None: ... + +class vtkGenericImageInterpolator(vtkImageInterpolator): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenericImageInterpolator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericImageInterpolator': ... + def Update(self) -> None: ... + +class vtkImageAppendComponents(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + input:'getset_descriptor' + input_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetInput(self, num:int) -> 'vtkDataObject': ... + @overload + def GetInput(self) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfInputs(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageAppendComponents': ... + def ReplaceNthInputConnection(self, idx:int, input:'vtkAlgorithmOutput') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageAppendComponents': ... + @overload + def SetInputData(self, num:int, input:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, input:'vtkDataObject') -> None: ... + +class vtkImageBSplineCoefficients(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + border_mode:'getset_descriptor' + border_mode_max_value:'getset_descriptor' + border_mode_min_value:'getset_descriptor' + bypass:'getset_descriptor' + output_scalar_type:'getset_descriptor' + spline_degree:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BypassOff(self) -> None: ... + def BypassOn(self) -> None: ... + def CheckBounds(self, point:Sequence[float]) -> int: ... + @overload + def Evaluate(self, point:Sequence[float], value:MutableSequence[float]) -> None: ... + @overload + def Evaluate(self, x:float, y:float, z:float) -> float: ... + @overload + def Evaluate(self, point:Sequence[float]) -> float: ... + def GetBorderMode(self) -> 'vtkImageBorderMode': ... + def GetBorderModeAsString(self) -> str: ... + def GetBorderModeMaxValue(self) -> 'vtkImageBorderMode': ... + def GetBorderModeMinValue(self) -> 'vtkImageBorderMode': ... + def GetBypass(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputScalarType(self) -> int: ... + def GetOutputScalarTypeAsString(self) -> str: ... + def GetOutputScalarTypeMaxValue(self) -> int: ... + def GetOutputScalarTypeMinValue(self) -> int: ... + def GetSplineDegree(self) -> int: ... + def GetSplineDegreeMaxValue(self) -> int: ... + def GetSplineDegreeMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageBSplineCoefficients': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageBSplineCoefficients': ... + def SetBorderMode(self, _arg:'vtkImageBorderMode') -> None: ... + def SetBorderModeToClamp(self) -> None: ... + def SetBorderModeToMirror(self) -> None: ... + def SetBorderModeToRepeat(self) -> None: ... + def SetBypass(self, _arg:int) -> None: ... + def SetOutputScalarType(self, _arg:int) -> None: ... + def SetOutputScalarTypeToDouble(self) -> None: ... + def SetOutputScalarTypeToFloat(self) -> None: ... + def SetSplineDegree(self, _arg:int) -> None: ... + +class vtkImageBSplineInternals(object): + @staticmethod + def ConvertToInterpolationCoefficients(data:MutableSequence[float], size:int, border:'vtkImageBorderMode', poles:MutableSequence[float], numPoles:int, tol:float) -> None: ... + @staticmethod + def GetInterpolationWeights(weights:MutableSequence[float], w:float, degree:int) -> int: ... + @staticmethod + def GetPoleValues(poles:MutableSequence[float], numPoles:int, degree:int) -> int: ... + @staticmethod + def InterpolatedValue(coeffs:Sequence[float], value:MutableSequence[float], width:int, height:int, slices:int, depth:int, x:float, y:float, z:float, degree:int, border:'vtkImageBorderMode') -> int: ... + +class vtkImageBSplineInterpolator(vtkAbstractImageInterpolator): + spline_degree:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeSupportSize(self, matrix:Sequence[float], size:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSplineDegree(self) -> int: ... + def GetSplineDegreeMaxValue(self) -> int: ... + def GetSplineDegreeMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsSeparable(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageBSplineInterpolator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageBSplineInterpolator': ... + def SetSplineDegree(self, degree:int) -> None: ... + +class vtkImageBlend(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + blend_alpha:'getset_descriptor' + blend_mode:'getset_descriptor' + compound_alpha:'getset_descriptor' + compound_threshold:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + stencil:'getset_descriptor' + stencil_connection:'getset_descriptor' + stencil_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BlendAlphaOff(self) -> None: ... + def BlendAlphaOn(self) -> None: ... + def CompoundAlphaOff(self) -> None: ... + def CompoundAlphaOn(self) -> None: ... + def GetBlendAlpha(self) -> int: ... + def GetBlendMode(self) -> int: ... + def GetBlendModeAsString(self) -> str: ... + def GetBlendModeMaxValue(self) -> int: ... + def GetBlendModeMinValue(self) -> int: ... + def GetCompoundAlpha(self) -> int: ... + def GetCompoundThreshold(self) -> float: ... + @overload + def GetInput(self, num:int) -> 'vtkDataObject': ... + @overload + def GetInput(self) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfInputs(self) -> int: ... + def GetOpacity(self, idx:int) -> float: ... + def GetStencil(self) -> 'vtkImageStencilData': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageBlend': ... + def ReplaceNthInputConnection(self, idx:int, input:'vtkAlgorithmOutput') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageBlend': ... + def SetBlendAlpha(self, _arg:int) -> None: ... + def SetBlendMode(self, _arg:int) -> None: ... + def SetBlendModeToCompound(self) -> None: ... + def SetBlendModeToNormal(self) -> None: ... + def SetCompoundAlpha(self, _arg:int) -> None: ... + def SetCompoundThreshold(self, _arg:float) -> None: ... + @overload + def SetInputData(self, num:int, input:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, input:'vtkDataObject') -> None: ... + def SetOpacity(self, idx:int, opacity:float) -> None: ... + def SetStencilConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetStencilData(self, stencil:'vtkImageStencilData') -> None: ... + +class vtkImageCacheFilter(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + cache_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCacheSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageCacheFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageCacheFilter': ... + def SetCacheSize(self, size:int) -> None: ... + +class vtkImageCast(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + clamp_overflow:'getset_descriptor' + output_scalar_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClampOverflowOff(self) -> None: ... + def ClampOverflowOn(self) -> None: ... + def GetClampOverflow(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputScalarType(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageCast': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageCast': ... + def SetClampOverflow(self, _arg:int) -> None: ... + def SetOutputScalarType(self, _arg:int) -> None: ... + def SetOutputScalarTypeToChar(self) -> None: ... + def SetOutputScalarTypeToDouble(self) -> None: ... + def SetOutputScalarTypeToFloat(self) -> None: ... + def SetOutputScalarTypeToInt(self) -> None: ... + def SetOutputScalarTypeToLong(self) -> None: ... + def SetOutputScalarTypeToShort(self) -> None: ... + def SetOutputScalarTypeToUnsignedChar(self) -> None: ... + def SetOutputScalarTypeToUnsignedInt(self) -> None: ... + def SetOutputScalarTypeToUnsignedLong(self) -> None: ... + def SetOutputScalarTypeToUnsignedShort(self) -> None: ... + +class vtkImageChangeInformation(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + center_image:'getset_descriptor' + extent_translation:'getset_descriptor' + information_input:'getset_descriptor' + information_input_data:'getset_descriptor' + origin_scale:'getset_descriptor' + origin_translation:'getset_descriptor' + output_direction:'getset_descriptor' + output_extent_start:'getset_descriptor' + output_origin:'getset_descriptor' + output_spacing:'getset_descriptor' + spacing_scale:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CenterImageOff(self) -> None: ... + def CenterImageOn(self) -> None: ... + def GetCenterImage(self) -> int: ... + def GetExtentTranslation(self) -> Tuple[int, int, int]: ... + def GetInformationInput(self) -> 'vtkImageData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOriginScale(self) -> Tuple[float, float, float]: ... + def GetOriginTranslation(self) -> Tuple[float, float, float]: ... + def GetOutputDirection(self) -> Tuple[float, float, float, float, float, float, float, float, float]: ... + def GetOutputExtentStart(self) -> Tuple[int, int, int]: ... + def GetOutputOrigin(self) -> Tuple[float, float, float]: ... + def GetOutputSpacing(self) -> Tuple[float, float, float]: ... + def GetSpacingScale(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageChangeInformation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageChangeInformation': ... + def SetCenterImage(self, _arg:int) -> None: ... + @overload + def SetExtentTranslation(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetExtentTranslation(self, _arg:Sequence[int]) -> None: ... + def SetInformationInputData(self, __a:'vtkImageData') -> None: ... + @overload + def SetOriginScale(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOriginScale(self, _arg:Sequence[float]) -> None: ... + @overload + def SetOriginTranslation(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOriginTranslation(self, _arg:Sequence[float]) -> None: ... + def SetOutputDirection(self, data:Sequence[float]) -> None: ... + @overload + def SetOutputExtentStart(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetOutputExtentStart(self, _arg:Sequence[int]) -> None: ... + @overload + def SetOutputOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOutputOrigin(self, _arg:Sequence[float]) -> None: ... + @overload + def SetOutputSpacing(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOutputSpacing(self, _arg:Sequence[float]) -> None: ... + @overload + def SetSpacingScale(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetSpacingScale(self, _arg:Sequence[float]) -> None: ... + +class vtkImageClip(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + clip_data:'getset_descriptor' + output_whole_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClipDataOff(self) -> None: ... + def ClipDataOn(self) -> None: ... + def GetClipData(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutputWholeExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def GetOutputWholeExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageClip': ... + def ResetOutputWholeExtent(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageClip': ... + def SetClipData(self, _arg:int) -> None: ... + @overload + def SetOutputWholeExtent(self, extent:MutableSequence[int], outInfo:'vtkInformation'=...) -> None: ... + @overload + def SetOutputWholeExtent(self, minX:int, maxX:int, minY:int, maxY:int, minZ:int, maxZ:int) -> None: ... + +class vtkImagePadFilter(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + output_number_of_scalar_components:'getset_descriptor' + output_whole_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputNumberOfScalarComponents(self) -> int: ... + @overload + def GetOutputWholeExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def GetOutputWholeExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImagePadFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImagePadFilter': ... + def SetOutputNumberOfScalarComponents(self, _arg:int) -> None: ... + @overload + def SetOutputWholeExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def SetOutputWholeExtent(self, minX:int, maxX:int, minY:int, maxY:int, minZ:int, maxZ:int) -> None: ... + +class vtkImageConstantPad(vtkImagePadFilter): + component_constants:'getset_descriptor' + constant:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetComponentConstants(self) -> 'vtkDoubleArray': ... + def GetConstant(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageConstantPad': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageConstantPad': ... + def SetComponentConstants(self, values:'vtkDoubleArray') -> None: ... + def SetConstant(self, _arg:float) -> None: ... + +class vtkImageDataStreamer(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + extent_translator:'getset_descriptor' + number_of_stream_divisions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetExtentTranslator(self) -> 'vtkExtentTranslator': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfStreamDivisions(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageDataStreamer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageDataStreamer': ... + def SetExtentTranslator(self, __a:'vtkExtentTranslator') -> None: ... + def SetNumberOfStreamDivisions(self, _arg:int) -> None: ... + +class vtkImageIterateFilter(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + iteration:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetIteration(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIterations(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageIterateFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageIterateFilter': ... + +class vtkImageDecomposeFilter(vtkImageIterateFilter): + dimensionality:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDimensionality(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageDecomposeFilter': ... + def PermuteExtent(self, extent:MutableSequence[int], min0:int, max0:int, min1:int, max1:int, min2:int, max2:int) -> None: ... + def PermuteIncrements(self, increments:MutableSequence[int], inc0:int, inc1:int, inc2:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageDecomposeFilter': ... + def SetDimensionality(self, dim:int) -> None: ... + +class vtkImageDifference(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + allow_shift:'getset_descriptor' + average_threshold_factor:'getset_descriptor' + averaging:'getset_descriptor' + error:'getset_descriptor' + image:'getset_descriptor' + image_connection:'getset_descriptor' + image_data:'getset_descriptor' + threshold:'getset_descriptor' + thresholded_error:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllowShiftOff(self) -> None: ... + def AllowShiftOn(self) -> None: ... + def AveragingOff(self) -> None: ... + def AveragingOn(self) -> None: ... + def GetAllowShift(self) -> bool: ... + def GetAverageThresholdFactor(self) -> float: ... + def GetAveraging(self) -> bool: ... + @overload + def GetError(self) -> float: ... + @overload + def GetError(self, e:MutableSequence[float]) -> None: ... + def GetImage(self) -> 'vtkImageData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetThreshold(self) -> int: ... + @overload + def GetThresholdedError(self) -> float: ... + @overload + def GetThresholdedError(self, e:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageDifference': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageDifference': ... + def SetAllowShift(self, _arg:bool) -> None: ... + def SetAverageThresholdFactor(self, _arg:float) -> None: ... + def SetAveraging(self, _arg:bool) -> None: ... + def SetImageConnection(self, output:'vtkAlgorithmOutput') -> None: ... + def SetImageData(self, image:'vtkDataObject') -> None: ... + def SetThreshold(self, _arg:int) -> None: ... + +class vtkImageExtractComponents(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + components:'getset_descriptor' + number_of_components:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetComponents(self) -> Tuple[int, int, int]: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageExtractComponents': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageExtractComponents': ... + @overload + def SetComponents(self, c1:int) -> None: ... + @overload + def SetComponents(self, c1:int, c2:int) -> None: ... + @overload + def SetComponents(self, c1:int, c2:int, c3:int) -> None: ... + +class vtkImageReslice(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + auto_crop_output:'getset_descriptor' + background_color:'getset_descriptor' + background_level:'getset_descriptor' + border:'getset_descriptor' + border_thickness:'getset_descriptor' + generate_stencil_output:'getset_descriptor' + information_input:'getset_descriptor' + interpolate:'getset_descriptor' + interpolation_mode:'getset_descriptor' + interpolator:'getset_descriptor' + m_time:'getset_descriptor' + mirror:'getset_descriptor' + optimization:'getset_descriptor' + output_dimensionality:'getset_descriptor' + output_direction:'getset_descriptor' + output_extent:'getset_descriptor' + output_origin:'getset_descriptor' + output_scalar_type:'getset_descriptor' + output_spacing:'getset_descriptor' + reslice_axes:'getset_descriptor' + reslice_axes_direction_cosines:'getset_descriptor' + reslice_axes_origin:'getset_descriptor' + reslice_transform:'getset_descriptor' + scalar_scale:'getset_descriptor' + scalar_shift:'getset_descriptor' + slab_mode:'getset_descriptor' + slab_number_of_slices:'getset_descriptor' + slab_slice_spacing_fraction:'getset_descriptor' + slab_trapezoid_integration:'getset_descriptor' + stencil:'getset_descriptor' + stencil_data:'getset_descriptor' + stencil_output:'getset_descriptor' + stencil_output_port:'getset_descriptor' + transform_input_sampling:'getset_descriptor' + wrap:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutoCropOutputOff(self) -> None: ... + def AutoCropOutputOn(self) -> None: ... + def BorderOff(self) -> None: ... + def BorderOn(self) -> None: ... + def GenerateStencilOutputOff(self) -> None: ... + def GenerateStencilOutputOn(self) -> None: ... + def GetAutoCropOutput(self) -> int: ... + def GetBackgroundColor(self) -> Tuple[float, float, float, float]: ... + def GetBackgroundLevel(self) -> float: ... + def GetBorder(self) -> int: ... + def GetBorderThickness(self) -> float: ... + def GetGenerateStencilOutput(self) -> int: ... + def GetInformationInput(self) -> 'vtkImageData': ... + def GetInterpolate(self) -> int: ... + def GetInterpolationMode(self) -> int: ... + def GetInterpolationModeAsString(self) -> str: ... + def GetInterpolationModeMaxValue(self) -> int: ... + def GetInterpolationModeMinValue(self) -> int: ... + def GetInterpolator(self) -> 'vtkAbstractImageInterpolator': ... + def GetMTime(self) -> int: ... + def GetMirror(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOptimization(self) -> int: ... + def GetOutputDimensionality(self) -> int: ... + def GetOutputDirection(self) -> Tuple[float, float, float]: ... + def GetOutputExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetOutputOrigin(self) -> Tuple[float, float, float]: ... + def GetOutputScalarType(self) -> int: ... + def GetOutputSpacing(self) -> Tuple[float, float, float]: ... + def GetResliceAxes(self) -> 'vtkMatrix4x4': ... + @overload + def GetResliceAxesDirectionCosines(self, x:MutableSequence[float], y:MutableSequence[float], z:MutableSequence[float]) -> None: ... + @overload + def GetResliceAxesDirectionCosines(self, xyz:MutableSequence[float]) -> None: ... + @overload + def GetResliceAxesDirectionCosines(self) -> Tuple[float, float, float, float, float, float, float, float, float]: ... + @overload + def GetResliceAxesOrigin(self, xyz:MutableSequence[float]) -> None: ... + @overload + def GetResliceAxesOrigin(self) -> Tuple[float, float, float]: ... + def GetResliceTransform(self) -> 'vtkAbstractTransform': ... + def GetScalarScale(self) -> float: ... + def GetScalarShift(self) -> float: ... + def GetSlabMode(self) -> int: ... + def GetSlabModeAsString(self) -> str: ... + def GetSlabModeMaxValue(self) -> int: ... + def GetSlabModeMinValue(self) -> int: ... + def GetSlabNumberOfSlices(self) -> int: ... + def GetSlabSliceSpacingFraction(self) -> float: ... + def GetSlabTrapezoidIntegration(self) -> int: ... + def GetStencil(self) -> 'vtkImageStencilData': ... + def GetStencilOutput(self) -> 'vtkImageStencilData': ... + def GetStencilOutputPort(self) -> 'vtkAlgorithmOutput': ... + def GetTransformInputSampling(self) -> int: ... + def GetWrap(self) -> int: ... + def InterpolateOff(self) -> None: ... + def InterpolateOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MirrorOff(self) -> None: ... + def MirrorOn(self) -> None: ... + def NewInstance(self) -> 'vtkImageReslice': ... + def OptimizationOff(self) -> None: ... + def OptimizationOn(self) -> None: ... + def ReportReferences(self, __a:'vtkGarbageCollector') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageReslice': ... + def SetAutoCropOutput(self, _arg:int) -> None: ... + @overload + def SetBackgroundColor(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetBackgroundColor(self, _arg:Sequence[float]) -> None: ... + def SetBackgroundLevel(self, v:float) -> None: ... + def SetBorder(self, _arg:int) -> None: ... + def SetBorderThickness(self, _arg:float) -> None: ... + def SetGenerateStencilOutput(self, _arg:int) -> None: ... + def SetInformationInput(self, __a:'vtkImageData') -> None: ... + def SetInterpolate(self, t:int) -> None: ... + def SetInterpolationMode(self, _arg:int) -> None: ... + def SetInterpolationModeToCubic(self) -> None: ... + def SetInterpolationModeToLinear(self) -> None: ... + def SetInterpolationModeToNearestNeighbor(self) -> None: ... + def SetInterpolator(self, sampler:'vtkAbstractImageInterpolator') -> None: ... + def SetMirror(self, _arg:int) -> None: ... + def SetOptimization(self, _arg:int) -> None: ... + def SetOutputDimensionality(self, _arg:int) -> None: ... + @overload + def SetOutputDirection(self, xx:float, xy:float, xz:float, yx:float, yy:float, yz:float, zx:float, zy:float, zz:float) -> None: ... + @overload + def SetOutputDirection(self, a:Sequence[float]) -> None: ... + def SetOutputDirectionToDefault(self) -> None: ... + @overload + def SetOutputExtent(self, a:int, b:int, c:int, d:int, e:int, f:int) -> None: ... + @overload + def SetOutputExtent(self, a:Sequence[int]) -> None: ... + def SetOutputExtentToDefault(self) -> None: ... + @overload + def SetOutputOrigin(self, x:float, y:float, z:float) -> None: ... + @overload + def SetOutputOrigin(self, a:Sequence[float]) -> None: ... + def SetOutputOriginToDefault(self) -> None: ... + def SetOutputScalarType(self, _arg:int) -> None: ... + @overload + def SetOutputSpacing(self, x:float, y:float, z:float) -> None: ... + @overload + def SetOutputSpacing(self, a:Sequence[float]) -> None: ... + def SetOutputSpacingToDefault(self) -> None: ... + def SetResliceAxes(self, __a:'vtkMatrix4x4') -> None: ... + @overload + def SetResliceAxesDirectionCosines(self, x0:float, x1:float, x2:float, y0:float, y1:float, y2:float, z0:float, z1:float, z2:float) -> None: ... + @overload + def SetResliceAxesDirectionCosines(self, x:Sequence[float], y:Sequence[float], z:Sequence[float]) -> None: ... + @overload + def SetResliceAxesDirectionCosines(self, xyz:Sequence[float]) -> None: ... + @overload + def SetResliceAxesOrigin(self, x:float, y:float, z:float) -> None: ... + @overload + def SetResliceAxesOrigin(self, xyz:Sequence[float]) -> None: ... + def SetResliceTransform(self, __a:'vtkAbstractTransform') -> None: ... + def SetScalarScale(self, _arg:float) -> None: ... + def SetScalarShift(self, _arg:float) -> None: ... + def SetSlabMode(self, _arg:int) -> None: ... + def SetSlabModeToMax(self) -> None: ... + def SetSlabModeToMean(self) -> None: ... + def SetSlabModeToMin(self) -> None: ... + def SetSlabModeToSum(self) -> None: ... + def SetSlabNumberOfSlices(self, _arg:int) -> None: ... + def SetSlabSliceSpacingFraction(self, _arg:float) -> None: ... + def SetSlabTrapezoidIntegration(self, _arg:int) -> None: ... + def SetStencilData(self, stencil:'vtkImageStencilData') -> None: ... + def SetStencilOutput(self, stencil:'vtkImageStencilData') -> None: ... + def SetTransformInputSampling(self, _arg:int) -> None: ... + def SetWrap(self, _arg:int) -> None: ... + def SlabTrapezoidIntegrationOff(self) -> None: ... + def SlabTrapezoidIntegrationOn(self) -> None: ... + def TransformInputSamplingOff(self) -> None: ... + def TransformInputSamplingOn(self) -> None: ... + def WrapOff(self) -> None: ... + def WrapOn(self) -> None: ... + +class vtkImageFlip(vtkImageReslice): + filtered_axes:'getset_descriptor' + filtered_axis:'getset_descriptor' + flip_about_origin:'getset_descriptor' + preserve_image_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FlipAboutOriginOff(self) -> None: ... + def FlipAboutOriginOn(self) -> None: ... + def GetFilteredAxes(self) -> int: ... + def GetFilteredAxis(self) -> int: ... + def GetFlipAboutOrigin(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPreserveImageExtent(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageFlip': ... + def PreserveImageExtentOff(self) -> None: ... + def PreserveImageExtentOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageFlip': ... + def SetFilteredAxes(self, axis:int) -> None: ... + def SetFilteredAxis(self, _arg:int) -> None: ... + def SetFlipAboutOrigin(self, _arg:int) -> None: ... + def SetPreserveImageExtent(self, _arg:int) -> None: ... + +class vtkImageMagnify(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + interpolate:'getset_descriptor' + magnification_factors:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInterpolate(self) -> int: ... + def GetMagnificationFactors(self) -> Tuple[int, int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InterpolateOff(self) -> None: ... + def InterpolateOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageMagnify': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageMagnify': ... + def SetInterpolate(self, _arg:int) -> None: ... + @overload + def SetMagnificationFactors(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetMagnificationFactors(self, _arg:Sequence[int]) -> None: ... + +class vtkImageMapToColors(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + active_component:'getset_descriptor' + lookup_table:'getset_descriptor' + m_time:'getset_descriptor' + na_n_color:'getset_descriptor' + output_format:'getset_descriptor' + pass_alpha_to_output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetActiveComponent(self) -> int: ... + def GetLookupTable(self) -> 'vtkScalarsToColors': ... + def GetMTime(self) -> int: ... + def GetNaNColor(self) -> Tuple[int, int, int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputFormat(self) -> int: ... + def GetPassAlphaToOutput(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageMapToColors': ... + def PassAlphaToOutputOff(self) -> None: ... + def PassAlphaToOutputOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageMapToColors': ... + def SetActiveComponent(self, _arg:int) -> None: ... + def SetLookupTable(self, __a:'vtkScalarsToColors') -> None: ... + @overload + def SetNaNColor(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int) -> None: ... + @overload + def SetNaNColor(self, _arg:Sequence[int]) -> None: ... + def SetOutputFormat(self, _arg:int) -> None: ... + def SetOutputFormatToLuminance(self) -> None: ... + def SetOutputFormatToLuminanceAlpha(self) -> None: ... + def SetOutputFormatToRGB(self) -> None: ... + def SetOutputFormatToRGBA(self) -> None: ... + def SetPassAlphaToOutput(self, _arg:int) -> None: ... + +class vtkImageMask(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + image_input_data:'getset_descriptor' + input1_data:'getset_descriptor' + input2_data:'getset_descriptor' + mask_alpha:'getset_descriptor' + mask_input_data:'getset_descriptor' + masked_output_value:'getset_descriptor' + masked_output_value_length:'getset_descriptor' + not_mask:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaskAlpha(self) -> float: ... + def GetMaskAlphaMaxValue(self) -> float: ... + def GetMaskAlphaMinValue(self) -> float: ... + def GetMaskedOutputValue(self) -> Pointer: ... + def GetMaskedOutputValueLength(self) -> int: ... + def GetNotMask(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageMask': ... + def NotMaskOff(self) -> None: ... + def NotMaskOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageMask': ... + def SetImageInputData(self, in_:'vtkImageData') -> None: ... + def SetInput1Data(self, in_:'vtkDataObject') -> None: ... + def SetInput2Data(self, in_:'vtkDataObject') -> None: ... + def SetMaskAlpha(self, _arg:float) -> None: ... + def SetMaskInputData(self, in_:'vtkImageData') -> None: ... + @overload + def SetMaskedOutputValue(self, num:int, v:MutableSequence[float]) -> None: ... + @overload + def SetMaskedOutputValue(self, v:float) -> None: ... + @overload + def SetMaskedOutputValue(self, v1:float, v2:float) -> None: ... + @overload + def SetMaskedOutputValue(self, v1:float, v2:float, v3:float) -> None: ... + def SetNotMask(self, _arg:int) -> None: ... + +class vtkImageMirrorPad(vtkImagePadFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageMirrorPad': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageMirrorPad': ... + +class vtkImagePermute(vtkImageReslice): + filtered_axes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFilteredAxes(self) -> Tuple[int, int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImagePermute': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImagePermute': ... + @overload + def SetFilteredAxes(self, x:int, y:int, z:int) -> None: ... + @overload + def SetFilteredAxes(self, xyz:Sequence[int]) -> None: ... + +class vtkImagePointDataIterator(object): + id:'getset_descriptor' + index:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, image:'vtkImageData', extent:Sequence[int]=..., stencil:'vtkImageStencilData'=..., algorithm:'vtkAlgorithm'=..., threadId:int=0) -> None: ... + @overload + def __init__(self, __a:'vtkImagePointDataIterator') -> None: ... + def GetId(self) -> int: ... + @overload + def GetIndex(self, result:MutableSequence[int]) -> None: ... + @overload + def GetIndex(self) -> Tuple[int, int, int]: ... + @overload + @staticmethod + def GetVoidPointer(image:'vtkImageData', i:int=0, pixelIncrement:MutableSequence[int]=...) -> Pointer: ... + @overload + @staticmethod + def GetVoidPointer(array:'vtkDataArray', i:int=0, pixelIncrement:MutableSequence[int]=...) -> Pointer: ... + def Initialize(self, image:'vtkImageData', extent:Sequence[int]=..., stencil:'vtkImageStencilData'=..., algorithm:'vtkAlgorithm'=..., threadId:int=0) -> None: ... + def IsAtEnd(self) -> bool: ... + def IsInStencil(self) -> bool: ... + def NextSpan(self) -> None: ... + def SpanEndId(self) -> int: ... + +class vtkImagePointIterator(vtkImagePointDataIterator): + position:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, image:'vtkImageData', extent:Sequence[int]=..., stencil:'vtkImageStencilData'=..., algorithm:'vtkAlgorithm'=..., threadId:int=0) -> None: ... + @overload + def __init__(self, __a:'vtkImagePointIterator') -> None: ... + @overload + def GetPosition(self) -> Tuple[float, float, float]: ... + @overload + def GetPosition(self, x:MutableSequence[float]) -> None: ... + def Initialize(self, image:'vtkImageData', extent:Sequence[int]=..., stencil:'vtkImageStencilData'=..., algorithm:'vtkAlgorithm'=..., threadId:int=0) -> None: ... + def IsAtEnd(self) -> bool: ... + def Next(self) -> None: ... + def NextSpan(self) -> None: ... + +class vtkImageProbeFilter(vtkmodules.vtkCommonExecutionModel.vtkDataSetAlgorithm): + interpolator:'getset_descriptor' + source:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInterpolator(self) -> 'vtkAbstractImageInterpolator': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSource(self) -> 'vtkDataObject': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageProbeFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageProbeFilter': ... + def SetInterpolator(self, interpolator:'vtkAbstractImageInterpolator') -> None: ... + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, source:'vtkDataObject') -> None: ... + +class vtkImageResample(vtkImageReslice): + dimensionality:'getset_descriptor' + magnification_factors:'getset_descriptor' + output_spacing:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAxisMagnificationFactor(self, axis:int, inInfo:'vtkInformation'=...) -> float: ... + def GetDimensionality(self) -> int: ... + def GetMagnificationFactors(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageResample': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageResample': ... + def SetAxisMagnificationFactor(self, axis:int, factor:float) -> None: ... + def SetAxisOutputSpacing(self, axis:int, spacing:float) -> None: ... + def SetDimensionality(self, _arg:int) -> None: ... + @overload + def SetMagnificationFactors(self, fx:float, fy:float, fz:float) -> None: ... + @overload + def SetMagnificationFactors(self, f:Sequence[float]) -> None: ... + @overload + def SetOutputSpacing(self, sx:float, sy:float, sz:float) -> None: ... + @overload + def SetOutputSpacing(self, spacing:Sequence[float]) -> None: ... + +class vtkImageResize(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + MAGNIFICATION_FACTORS:int + OUTPUT_DIMENSIONS:int + OUTPUT_SPACING:int + border:'getset_descriptor' + cropping:'getset_descriptor' + cropping_region:'getset_descriptor' + interpolate:'getset_descriptor' + interpolator:'getset_descriptor' + m_time:'getset_descriptor' + magnification_factors:'getset_descriptor' + output_dimensions:'getset_descriptor' + output_spacing:'getset_descriptor' + resize_method:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BorderOff(self) -> None: ... + def BorderOn(self) -> None: ... + def CroppingOff(self) -> None: ... + def CroppingOn(self) -> None: ... + def GetBorder(self) -> int: ... + def GetCropping(self) -> int: ... + def GetCroppingRegion(self) -> Tuple[float, float, float, float, float, float]: ... + def GetInterpolate(self) -> int: ... + def GetInterpolator(self) -> 'vtkAbstractImageInterpolator': ... + def GetMTime(self) -> int: ... + def GetMagnificationFactors(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputDimensions(self) -> Tuple[int, int, int]: ... + def GetOutputSpacing(self) -> Tuple[float, float, float]: ... + def GetResizeMethod(self) -> int: ... + def GetResizeMethodAsString(self) -> str: ... + def GetResizeMethodMaxValue(self) -> int: ... + def GetResizeMethodMinValue(self) -> int: ... + def InterpolateOff(self) -> None: ... + def InterpolateOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageResize': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageResize': ... + def SetBorder(self, _arg:int) -> None: ... + def SetCropping(self, _arg:int) -> None: ... + @overload + def SetCroppingRegion(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetCroppingRegion(self, _arg:Sequence[float]) -> None: ... + def SetInterpolate(self, _arg:int) -> None: ... + def SetInterpolator(self, sampler:'vtkAbstractImageInterpolator') -> None: ... + @overload + def SetMagnificationFactors(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetMagnificationFactors(self, _arg:Sequence[float]) -> None: ... + @overload + def SetOutputDimensions(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetOutputDimensions(self, _arg:Sequence[int]) -> None: ... + @overload + def SetOutputSpacing(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOutputSpacing(self, _arg:Sequence[float]) -> None: ... + def SetResizeMethod(self, _arg:int) -> None: ... + def SetResizeMethodToMagnificationFactors(self) -> None: ... + def SetResizeMethodToOutputDimensions(self) -> None: ... + def SetResizeMethodToOutputSpacing(self) -> None: ... + +class vtkImageResliceToColors(vtkImageReslice): + bypass:'getset_descriptor' + lookup_table:'getset_descriptor' + m_time:'getset_descriptor' + output_format:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BypassOff(self) -> None: ... + def BypassOn(self) -> None: ... + def GetBypass(self) -> int: ... + def GetLookupTable(self) -> 'vtkScalarsToColors': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputFormat(self) -> int: ... + def GetOutputFormatMaxValue(self) -> int: ... + def GetOutputFormatMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageResliceToColors': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageResliceToColors': ... + def SetBypass(self, bypass:int) -> None: ... + def SetLookupTable(self, table:'vtkScalarsToColors') -> None: ... + def SetOutputFormat(self, _arg:int) -> None: ... + def SetOutputFormatToLuminance(self) -> None: ... + def SetOutputFormatToLuminanceAlpha(self) -> None: ... + def SetOutputFormatToRGB(self) -> None: ... + def SetOutputFormatToRGBA(self) -> None: ... + +class vtkImageSSIM(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + clamp_negative_values:'getset_descriptor' + image_connection:'getset_descriptor' + image_data:'getset_descriptor' + input_range:'getset_descriptor' + patch_radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClampNegativeValuesOff(self) -> None: ... + def ClampNegativeValuesOn(self) -> None: ... + @staticmethod + def ComputeErrorMetrics(scalars:'vtkDoubleArray', tight:float, loose:float) -> None: ... + def GetClampNegativeValues(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPatchRadius(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageSSIM': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageSSIM': ... + def SetClampNegativeValues(self, _arg:bool) -> None: ... + def SetImageConnection(self, output:'vtkAlgorithmOutput') -> None: ... + def SetImageData(self, image:'vtkDataObject') -> None: ... + def SetInputRange(self, range:MutableSequence[int]) -> None: ... + def SetInputToAuto(self) -> None: ... + def SetInputToGrayscale(self) -> None: ... + def SetInputToLab(self) -> None: ... + def SetInputToRGB(self) -> None: ... + def SetInputToRGBA(self) -> None: ... + def SetPatchRadius(self, _arg:float) -> None: ... + +class vtkImageShiftScale(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + clamp_overflow:'getset_descriptor' + output_scalar_type:'getset_descriptor' + scale:'getset_descriptor' + shift:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClampOverflowOff(self) -> None: ... + def ClampOverflowOn(self) -> None: ... + def GetClampOverflow(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputScalarType(self) -> int: ... + def GetScale(self) -> float: ... + def GetShift(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageShiftScale': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageShiftScale': ... + def SetClampOverflow(self, _arg:int) -> None: ... + def SetOutputScalarType(self, _arg:int) -> None: ... + def SetOutputScalarTypeToChar(self) -> None: ... + def SetOutputScalarTypeToDouble(self) -> None: ... + def SetOutputScalarTypeToFloat(self) -> None: ... + def SetOutputScalarTypeToInt(self) -> None: ... + def SetOutputScalarTypeToLong(self) -> None: ... + def SetOutputScalarTypeToShort(self) -> None: ... + def SetOutputScalarTypeToUnsignedChar(self) -> None: ... + def SetOutputScalarTypeToUnsignedInt(self) -> None: ... + def SetOutputScalarTypeToUnsignedLong(self) -> None: ... + def SetOutputScalarTypeToUnsignedShort(self) -> None: ... + def SetScale(self, _arg:float) -> None: ... + def SetShift(self, _arg:float) -> None: ... + +class vtkImageShrink3D(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + averaging:'getset_descriptor' + maximum:'getset_descriptor' + mean:'getset_descriptor' + median:'getset_descriptor' + minimum:'getset_descriptor' + shift:'getset_descriptor' + shrink_factors:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AveragingOff(self) -> None: ... + def AveragingOn(self) -> None: ... + def GetAveraging(self) -> int: ... + def GetMaximum(self) -> int: ... + def GetMean(self) -> int: ... + def GetMedian(self) -> int: ... + def GetMinimum(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShift(self) -> Tuple[int, int, int]: ... + def GetShrinkFactors(self) -> Tuple[int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MaximumOff(self) -> None: ... + def MaximumOn(self) -> None: ... + def MeanOff(self) -> None: ... + def MeanOn(self) -> None: ... + def MedianOff(self) -> None: ... + def MedianOn(self) -> None: ... + def MinimumOff(self) -> None: ... + def MinimumOn(self) -> None: ... + def NewInstance(self) -> 'vtkImageShrink3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageShrink3D': ... + def SetAveraging(self, __a:int) -> None: ... + def SetMaximum(self, __a:int) -> None: ... + def SetMean(self, __a:int) -> None: ... + def SetMedian(self, __a:int) -> None: ... + def SetMinimum(self, __a:int) -> None: ... + @overload + def SetShift(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetShift(self, _arg:Sequence[int]) -> None: ... + @overload + def SetShrinkFactors(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetShrinkFactors(self, _arg:Sequence[int]) -> None: ... + +class vtkImageSincInterpolator(vtkAbstractImageInterpolator): + antialiasing:'getset_descriptor' + blur_factors:'getset_descriptor' + renormalization:'getset_descriptor' + use_window_parameter:'getset_descriptor' + window_function:'getset_descriptor' + window_half_width:'getset_descriptor' + window_parameter:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AntialiasingOff(self) -> None: ... + def AntialiasingOn(self) -> None: ... + def ComputeSupportSize(self, matrix:Sequence[float], support:MutableSequence[int]) -> None: ... + def GetAntialiasing(self) -> int: ... + @overload + def GetBlurFactors(self, f:MutableSequence[float]) -> None: ... + @overload + def GetBlurFactors(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenormalization(self) -> int: ... + def GetUseWindowParameter(self) -> int: ... + def GetWindowFunction(self) -> int: ... + def GetWindowFunctionAsString(self) -> str: ... + def GetWindowHalfWidth(self) -> int: ... + def GetWindowParameter(self) -> float: ... + def IsA(self, type:str) -> int: ... + def IsSeparable(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageSincInterpolator': ... + def RenormalizationOff(self) -> None: ... + def RenormalizationOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageSincInterpolator': ... + def SetAntialiasing(self, antialiasing:int) -> None: ... + @overload + def SetBlurFactors(self, x:float, y:float, z:float) -> None: ... + @overload + def SetBlurFactors(self, f:Sequence[float]) -> None: ... + def SetRenormalization(self, renormalization:int) -> None: ... + def SetUseWindowParameter(self, val:int) -> None: ... + def SetWindowFunction(self, mode:int) -> None: ... + def SetWindowFunctionToBlackman(self) -> None: ... + def SetWindowFunctionToBlackmanHarris3(self) -> None: ... + def SetWindowFunctionToBlackmanHarris4(self) -> None: ... + def SetWindowFunctionToBlackmanNuttall3(self) -> None: ... + def SetWindowFunctionToBlackmanNuttall4(self) -> None: ... + def SetWindowFunctionToCosine(self) -> None: ... + def SetWindowFunctionToHamming(self) -> None: ... + def SetWindowFunctionToHann(self) -> None: ... + def SetWindowFunctionToKaiser(self) -> None: ... + def SetWindowFunctionToLanczos(self) -> None: ... + def SetWindowFunctionToNuttall(self) -> None: ... + def SetWindowHalfWidth(self, n:int) -> None: ... + def SetWindowParameter(self, param:float) -> None: ... + def UseWindowParameterOff(self) -> None: ... + def UseWindowParameterOn(self) -> None: ... + +class vtkImageStencilAlgorithm(vtkmodules.vtkCommonExecutionModel.vtkAlgorithm): + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutput(self) -> 'vtkImageStencilData': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageStencilAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageStencilAlgorithm': ... + def SetOutput(self, output:'vtkImageStencilData') -> None: ... + +class vtkImageStencilData(vtkmodules.vtkCommonDataModel.vtkDataObject): + data_object_type:'getset_descriptor' + extent:'getset_descriptor' + extent_type:'getset_descriptor' + origin:'getset_descriptor' + spacing:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Add(self, __a:'vtkImageStencilData') -> None: ... + def AllocateExtents(self) -> None: ... + def Clip(self, extent:MutableSequence[int]) -> int: ... + def CopyInformationFromPipeline(self, info:'vtkInformation') -> None: ... + def CopyInformationToPipeline(self, info:'vtkInformation') -> None: ... + def DeepCopy(self, o:'vtkDataObject') -> None: ... + def Fill(self) -> None: ... + @overload + @staticmethod + def GetData(info:'vtkInformation') -> 'vtkImageStencilData': ... + @overload + @staticmethod + def GetData(v:'vtkInformationVector', i:int=0) -> 'vtkImageStencilData': ... + def GetDataObjectType(self) -> int: ... + def GetExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetExtentType(self) -> int: ... + def GetNextExtent(self, r1:int, r2:int, xMin:int, xMax:int, yIdx:int, zIdx:int, iter:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetSpacing(self) -> Tuple[float, float, float]: ... + def Initialize(self) -> None: ... + def InsertAndMergeExtent(self, r1:int, r2:int, yIdx:int, zIdx:int) -> None: ... + def InsertNextExtent(self, r1:int, r2:int, yIdx:int, zIdx:int) -> None: ... + def InternalImageStencilDataCopy(self, s:'vtkImageStencilData') -> None: ... + def IsA(self, type:str) -> int: ... + def IsInside(self, xIdx:int, yIdx:int, zIdx:int) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageStencilData': ... + def RemoveExtent(self, r1:int, r2:int, yIdx:int, zIdx:int) -> None: ... + def Replace(self, __a:'vtkImageStencilData') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageStencilData': ... + @overload + def SetExtent(self, extent:Sequence[int]) -> None: ... + @overload + def SetExtent(self, x1:int, x2:int, y1:int, y2:int, z1:int, z2:int) -> None: ... + @overload + def SetOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOrigin(self, _arg:Sequence[float]) -> None: ... + @overload + def SetSpacing(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetSpacing(self, _arg:Sequence[float]) -> None: ... + def ShallowCopy(self, f:'vtkDataObject') -> None: ... + def Subtract(self, __a:'vtkImageStencilData') -> None: ... + +class vtkImageStencilRaster(object): + tolerance:'getset_descriptor' + def __init__(self, wholeExtent:Sequence[int]) -> None: ... + def FillStencilData(self, data:'vtkImageStencilData', extent:Sequence[int], xj:int=0, yj:int=1) -> None: ... + def GetTolerance(self) -> float: ... + def InsertLine(self, pt1:Sequence[float], pt2:Sequence[float]) -> None: ... + def PrepareForNewData(self, allocateExtent:Sequence[int]=...) -> None: ... + def SetTolerance(self, tol:float) -> None: ... + +class vtkImageStencilSource(vtkImageStencilAlgorithm): + information_input:'getset_descriptor' + output_origin:'getset_descriptor' + output_spacing:'getset_descriptor' + output_whole_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInformationInput(self) -> 'vtkImageData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputOrigin(self) -> Tuple[float, float, float]: ... + def GetOutputSpacing(self) -> Tuple[float, float, float]: ... + def GetOutputWholeExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageStencilSource': ... + def ReportReferences(self, __a:'vtkGarbageCollector') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageStencilSource': ... + def SetInformationInput(self, __a:'vtkImageData') -> None: ... + @overload + def SetOutputOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOutputOrigin(self, _arg:Sequence[float]) -> None: ... + @overload + def SetOutputSpacing(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOutputSpacing(self, _arg:Sequence[float]) -> None: ... + @overload + def SetOutputWholeExtent(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetOutputWholeExtent(self, _arg:Sequence[int]) -> None: ... + +class vtkImageThreshold(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + in_value:'getset_descriptor' + lower_threshold:'getset_descriptor' + out_value:'getset_descriptor' + output_scalar_type:'getset_descriptor' + replace_in:'getset_descriptor' + replace_out:'getset_descriptor' + upper_threshold:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInValue(self) -> float: ... + def GetLowerThreshold(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutValue(self) -> float: ... + def GetOutputScalarType(self) -> int: ... + def GetReplaceIn(self) -> int: ... + def GetReplaceOut(self) -> int: ... + def GetUpperThreshold(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageThreshold': ... + def ReplaceInOff(self) -> None: ... + def ReplaceInOn(self) -> None: ... + def ReplaceOutOff(self) -> None: ... + def ReplaceOutOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageThreshold': ... + def SetInValue(self, val:float) -> None: ... + def SetOutValue(self, val:float) -> None: ... + def SetOutputScalarType(self, _arg:int) -> None: ... + def SetOutputScalarTypeToChar(self) -> None: ... + def SetOutputScalarTypeToDouble(self) -> None: ... + def SetOutputScalarTypeToFloat(self) -> None: ... + def SetOutputScalarTypeToInt(self) -> None: ... + def SetOutputScalarTypeToLong(self) -> None: ... + def SetOutputScalarTypeToShort(self) -> None: ... + def SetOutputScalarTypeToSignedChar(self) -> None: ... + def SetOutputScalarTypeToUnsignedChar(self) -> None: ... + def SetOutputScalarTypeToUnsignedInt(self) -> None: ... + def SetOutputScalarTypeToUnsignedLong(self) -> None: ... + def SetOutputScalarTypeToUnsignedShort(self) -> None: ... + def SetReplaceIn(self, _arg:int) -> None: ... + def SetReplaceOut(self, _arg:int) -> None: ... + def ThresholdBetween(self, lower:float, upper:float) -> None: ... + def ThresholdByLower(self, thresh:float) -> None: ... + def ThresholdByUpper(self, thresh:float) -> None: ... + +class vtkImageTranslateExtent(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + translation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTranslation(self) -> Tuple[int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageTranslateExtent': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageTranslateExtent': ... + @overload + def SetTranslation(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetTranslation(self, _arg:Sequence[int]) -> None: ... + +class vtkImageWrapPad(vtkImagePadFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageWrapPad': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageWrapPad': ... + +class vtkRTAnalyticSource(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + center:'getset_descriptor' + maximum:'getset_descriptor' + standard_deviation:'getset_descriptor' + subsample_rate:'getset_descriptor' + whole_extent:'getset_descriptor' + x_freq:'getset_descriptor' + x_mag:'getset_descriptor' + y_freq:'getset_descriptor' + y_mag:'getset_descriptor' + z_freq:'getset_descriptor' + z_mag:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetMaximum(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStandardDeviation(self) -> float: ... + def GetSubsampleRate(self) -> int: ... + def GetWholeExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetXFreq(self) -> float: ... + def GetXMag(self) -> float: ... + def GetYFreq(self) -> float: ... + def GetYMag(self) -> float: ... + def GetZFreq(self) -> float: ... + def GetZMag(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRTAnalyticSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRTAnalyticSource': ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetMaximum(self, _arg:float) -> None: ... + def SetStandardDeviation(self, _arg:float) -> None: ... + def SetSubsampleRate(self, _arg:int) -> None: ... + def SetWholeExtent(self, xMinx:int, xMax:int, yMin:int, yMax:int, zMin:int, zMax:int) -> None: ... + def SetXFreq(self, _arg:float) -> None: ... + def SetXMag(self, _arg:float) -> None: ... + def SetYFreq(self, _arg:float) -> None: ... + def SetYMag(self, _arg:float) -> None: ... + def SetZFreq(self, _arg:float) -> None: ... + def SetZMag(self, _arg:float) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingFourier.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingFourier.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..cdc5ca5 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingFourier.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingFourier.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingFourier.pyi new file mode 100644 index 0000000..7577ab1 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingFourier.pyi @@ -0,0 +1,188 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkImagingCore + +class vtkImageButterworthHighPass(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + cut_off:'getset_descriptor' + order:'getset_descriptor' + x_cut_off:'getset_descriptor' + y_cut_off:'getset_descriptor' + z_cut_off:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCutOff(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrder(self) -> int: ... + def GetXCutOff(self) -> float: ... + def GetYCutOff(self) -> float: ... + def GetZCutOff(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageButterworthHighPass': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageButterworthHighPass': ... + @overload + def SetCutOff(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCutOff(self, _arg:Sequence[float]) -> None: ... + @overload + def SetCutOff(self, v:float) -> None: ... + def SetOrder(self, _arg:int) -> None: ... + def SetXCutOff(self, cutOff:float) -> None: ... + def SetYCutOff(self, cutOff:float) -> None: ... + def SetZCutOff(self, cutOff:float) -> None: ... + +class vtkImageButterworthLowPass(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + cut_off:'getset_descriptor' + order:'getset_descriptor' + x_cut_off:'getset_descriptor' + y_cut_off:'getset_descriptor' + z_cut_off:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCutOff(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrder(self) -> int: ... + def GetXCutOff(self) -> float: ... + def GetYCutOff(self) -> float: ... + def GetZCutOff(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageButterworthLowPass': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageButterworthLowPass': ... + @overload + def SetCutOff(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCutOff(self, _arg:Sequence[float]) -> None: ... + @overload + def SetCutOff(self, v:float) -> None: ... + def SetOrder(self, _arg:int) -> None: ... + def SetXCutOff(self, cutOff:float) -> None: ... + def SetYCutOff(self, cutOff:float) -> None: ... + def SetZCutOff(self, cutOff:float) -> None: ... + +class vtkImageComplex_t(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkImageComplex_t') -> None: ... + +class vtkImageFourierFilter(vtkmodules.vtkImagingCore.vtkImageDecomposeFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageFourierFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageFourierFilter': ... + +class vtkImageFFT(vtkImageFourierFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageFFT': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageFFT': ... + +class vtkImageFourierCenter(vtkmodules.vtkImagingCore.vtkImageDecomposeFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageFourierCenter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageFourierCenter': ... + +class vtkImageIdealHighPass(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + cut_off:'getset_descriptor' + x_cut_off:'getset_descriptor' + y_cut_off:'getset_descriptor' + z_cut_off:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCutOff(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetXCutOff(self) -> float: ... + def GetYCutOff(self) -> float: ... + def GetZCutOff(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageIdealHighPass': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageIdealHighPass': ... + @overload + def SetCutOff(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCutOff(self, _arg:Sequence[float]) -> None: ... + @overload + def SetCutOff(self, v:float) -> None: ... + def SetXCutOff(self, cutOff:float) -> None: ... + def SetYCutOff(self, cutOff:float) -> None: ... + def SetZCutOff(self, cutOff:float) -> None: ... + +class vtkImageIdealLowPass(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + cut_off:'getset_descriptor' + x_cut_off:'getset_descriptor' + y_cut_off:'getset_descriptor' + z_cut_off:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCutOff(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetXCutOff(self) -> float: ... + def GetYCutOff(self) -> float: ... + def GetZCutOff(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageIdealLowPass': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageIdealLowPass': ... + @overload + def SetCutOff(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCutOff(self, _arg:Sequence[float]) -> None: ... + @overload + def SetCutOff(self, v:float) -> None: ... + def SetXCutOff(self, cutOff:float) -> None: ... + def SetYCutOff(self, cutOff:float) -> None: ... + def SetZCutOff(self, cutOff:float) -> None: ... + +class vtkImageRFFT(vtkImageFourierFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageRFFT': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageRFFT': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingGeneral.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingGeneral.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..0d2ede9 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingGeneral.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingGeneral.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingGeneral.pyi new file mode 100644 index 0000000..16b9e70 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingGeneral.pyi @@ -0,0 +1,549 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkImagingCore + +VTK_EDT_SAITO:int +VTK_EDT_SAITO_CACHED:int + +class vtkImageSpatialAlgorithm(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + kernel_middle:'getset_descriptor' + kernel_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetKernelMiddle(self) -> Tuple[int, int, int]: ... + def GetKernelSize(self) -> Tuple[int, int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageSpatialAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageSpatialAlgorithm': ... + +class vtkImageAnisotropicDiffusion2D(vtkImageSpatialAlgorithm): + corners:'getset_descriptor' + diffusion_factor:'getset_descriptor' + diffusion_threshold:'getset_descriptor' + edges:'getset_descriptor' + faces:'getset_descriptor' + gradient_magnitude_threshold:'getset_descriptor' + number_of_iterations:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CornersOff(self) -> None: ... + def CornersOn(self) -> None: ... + def EdgesOff(self) -> None: ... + def EdgesOn(self) -> None: ... + def FacesOff(self) -> None: ... + def FacesOn(self) -> None: ... + def GetCorners(self) -> int: ... + def GetDiffusionFactor(self) -> float: ... + def GetDiffusionThreshold(self) -> float: ... + def GetEdges(self) -> int: ... + def GetFaces(self) -> int: ... + def GetGradientMagnitudeThreshold(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIterations(self) -> int: ... + def GradientMagnitudeThresholdOff(self) -> None: ... + def GradientMagnitudeThresholdOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageAnisotropicDiffusion2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageAnisotropicDiffusion2D': ... + def SetCorners(self, _arg:int) -> None: ... + def SetDiffusionFactor(self, _arg:float) -> None: ... + def SetDiffusionThreshold(self, _arg:float) -> None: ... + def SetEdges(self, _arg:int) -> None: ... + def SetFaces(self, _arg:int) -> None: ... + def SetGradientMagnitudeThreshold(self, _arg:int) -> None: ... + def SetNumberOfIterations(self, num:int) -> None: ... + +class vtkImageAnisotropicDiffusion3D(vtkImageSpatialAlgorithm): + corners:'getset_descriptor' + diffusion_factor:'getset_descriptor' + diffusion_threshold:'getset_descriptor' + edges:'getset_descriptor' + faces:'getset_descriptor' + gradient_magnitude_threshold:'getset_descriptor' + number_of_iterations:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CornersOff(self) -> None: ... + def CornersOn(self) -> None: ... + def EdgesOff(self) -> None: ... + def EdgesOn(self) -> None: ... + def FacesOff(self) -> None: ... + def FacesOn(self) -> None: ... + def GetCorners(self) -> int: ... + def GetDiffusionFactor(self) -> float: ... + def GetDiffusionThreshold(self) -> float: ... + def GetEdges(self) -> int: ... + def GetFaces(self) -> int: ... + def GetGradientMagnitudeThreshold(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIterations(self) -> int: ... + def GradientMagnitudeThresholdOff(self) -> None: ... + def GradientMagnitudeThresholdOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageAnisotropicDiffusion3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageAnisotropicDiffusion3D': ... + def SetCorners(self, _arg:int) -> None: ... + def SetDiffusionFactor(self, _arg:float) -> None: ... + def SetDiffusionThreshold(self, _arg:float) -> None: ... + def SetEdges(self, _arg:int) -> None: ... + def SetFaces(self, _arg:int) -> None: ... + def SetGradientMagnitudeThreshold(self, _arg:int) -> None: ... + def SetNumberOfIterations(self, num:int) -> None: ... + +class vtkImageCheckerboard(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + input1_data:'getset_descriptor' + input2_data:'getset_descriptor' + number_of_divisions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfDivisions(self) -> Tuple[int, int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageCheckerboard': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageCheckerboard': ... + def SetInput1Data(self, in_:'vtkDataObject') -> None: ... + def SetInput2Data(self, in_:'vtkDataObject') -> None: ... + @overload + def SetNumberOfDivisions(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetNumberOfDivisions(self, _arg:Sequence[int]) -> None: ... + +class vtkImageCityBlockDistance(vtkmodules.vtkImagingCore.vtkImageDecomposeFilter): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageCityBlockDistance': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageCityBlockDistance': ... + +class vtkImageConvolve(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + kernel3x3:'getset_descriptor' + kernel3x3x3:'getset_descriptor' + kernel5x5:'getset_descriptor' + kernel5x5x5:'getset_descriptor' + kernel7x7:'getset_descriptor' + kernel7x7x7:'getset_descriptor' + kernel_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetKernel3x3(self) -> Tuple[float, float, float, float, float, float, float, float, float]: ... + @overload + def GetKernel3x3(self, kernel:MutableSequence[float]) -> None: ... + @overload + def GetKernel3x3x3(self) -> Tuple[float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float]: ... + @overload + def GetKernel3x3x3(self, kernel:MutableSequence[float]) -> None: ... + @overload + def GetKernel5x5(self) -> Tuple[float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float]: ... + @overload + def GetKernel5x5(self, kernel:MutableSequence[float]) -> None: ... + def GetKernel5x5x5(self) -> Tuple[float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float]: ... + @overload + def GetKernel7x7(self) -> Tuple[float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float]: ... + @overload + def GetKernel7x7(self, kernel:MutableSequence[float]) -> None: ... + def GetKernel7x7x7(self) -> Tuple[float, float]: ... + def GetKernelSize(self) -> Tuple[int, int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageConvolve': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageConvolve': ... + def SetKernel3x3(self, kernel:Sequence[float]) -> None: ... + def SetKernel3x3x3(self, kernel:Sequence[float]) -> None: ... + def SetKernel5x5(self, kernel:Sequence[float]) -> None: ... + def SetKernel5x5x5(self, kernel:Sequence[float]) -> None: ... + def SetKernel7x7(self, kernel:Sequence[float]) -> None: ... + +class vtkImageCorrelation(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + dimensionality:'getset_descriptor' + input1_data:'getset_descriptor' + input2_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDimensionality(self) -> int: ... + def GetDimensionalityMaxValue(self) -> int: ... + def GetDimensionalityMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageCorrelation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageCorrelation': ... + def SetDimensionality(self, _arg:int) -> None: ... + def SetInput1Data(self, in_:'vtkDataObject') -> None: ... + def SetInput2Data(self, in_:'vtkDataObject') -> None: ... + +class vtkImageEuclideanDistance(vtkmodules.vtkImagingCore.vtkImageDecomposeFilter): + algorithm:'getset_descriptor' + consider_anisotropy:'getset_descriptor' + initialize:'getset_descriptor' + maximum_distance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConsiderAnisotropyOff(self) -> None: ... + def ConsiderAnisotropyOn(self) -> None: ... + def GetAlgorithm(self) -> int: ... + def GetConsiderAnisotropy(self) -> int: ... + def GetInitialize(self) -> int: ... + def GetMaximumDistance(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InitializeOff(self) -> None: ... + def InitializeOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageEuclideanDistance': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageEuclideanDistance': ... + def SetAlgorithm(self, _arg:int) -> None: ... + def SetAlgorithmToSaito(self) -> None: ... + def SetAlgorithmToSaitoCached(self) -> None: ... + def SetConsiderAnisotropy(self, _arg:int) -> None: ... + def SetInitialize(self, _arg:int) -> None: ... + def SetMaximumDistance(self, _arg:float) -> None: ... + +class vtkImageEuclideanToPolar(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + theta_maximum:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetThetaMaximum(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageEuclideanToPolar': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageEuclideanToPolar': ... + def SetThetaMaximum(self, _arg:float) -> None: ... + +class vtkImageGaussianSmooth(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + dimensionality:'getset_descriptor' + radius_factor:'getset_descriptor' + radius_factors:'getset_descriptor' + standard_deviation:'getset_descriptor' + standard_deviations:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDimensionality(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadiusFactors(self) -> Tuple[float, float, float]: ... + def GetStandardDeviations(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageGaussianSmooth': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageGaussianSmooth': ... + def SetDimensionality(self, _arg:int) -> None: ... + def SetRadiusFactor(self, f:float) -> None: ... + @overload + def SetRadiusFactors(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetRadiusFactors(self, _arg:Sequence[float]) -> None: ... + @overload + def SetRadiusFactors(self, f:float, f2:float) -> None: ... + @overload + def SetStandardDeviation(self, std:float) -> None: ... + @overload + def SetStandardDeviation(self, a:float, b:float) -> None: ... + @overload + def SetStandardDeviation(self, a:float, b:float, c:float) -> None: ... + @overload + def SetStandardDeviations(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetStandardDeviations(self, _arg:Sequence[float]) -> None: ... + @overload + def SetStandardDeviations(self, a:float, b:float) -> None: ... + +class vtkImageGradient(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + dimensionality:'getset_descriptor' + handle_boundaries:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDimensionality(self) -> int: ... + def GetDimensionalityMaxValue(self) -> int: ... + def GetDimensionalityMinValue(self) -> int: ... + def GetHandleBoundaries(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def HandleBoundariesOff(self) -> None: ... + def HandleBoundariesOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageGradient': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageGradient': ... + def SetDimensionality(self, _arg:int) -> None: ... + def SetHandleBoundaries(self, _arg:int) -> None: ... + +class vtkImageGradientMagnitude(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + dimensionality:'getset_descriptor' + handle_boundaries:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDimensionality(self) -> int: ... + def GetDimensionalityMaxValue(self) -> int: ... + def GetDimensionalityMinValue(self) -> int: ... + def GetHandleBoundaries(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def HandleBoundariesOff(self) -> None: ... + def HandleBoundariesOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageGradientMagnitude': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageGradientMagnitude': ... + def SetDimensionality(self, _arg:int) -> None: ... + def SetHandleBoundaries(self, _arg:int) -> None: ... + +class vtkImageHybridMedian2D(vtkImageSpatialAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageHybridMedian2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageHybridMedian2D': ... + +class vtkImageLaplacian(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + dimensionality:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDimensionality(self) -> int: ... + def GetDimensionalityMaxValue(self) -> int: ... + def GetDimensionalityMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageLaplacian': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageLaplacian': ... + def SetDimensionality(self, _arg:int) -> None: ... + +class vtkImageMedian3D(vtkImageSpatialAlgorithm): + kernel_size:'getset_descriptor' + number_of_elements:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfElements(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageMedian3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageMedian3D': ... + def SetKernelSize(self, size0:int, size1:int, size2:int) -> None: ... + +class vtkImageNormalize(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageNormalize': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageNormalize': ... + +class vtkImageRange3D(vtkImageSpatialAlgorithm): + kernel_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageRange3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageRange3D': ... + def SetKernelSize(self, size0:int, size1:int, size2:int) -> None: ... + +class vtkImageSeparableConvolution(vtkmodules.vtkImagingCore.vtkImageDecomposeFilter): + m_time:'getset_descriptor' + x_kernel:'getset_descriptor' + y_kernel:'getset_descriptor' + z_kernel:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetXKernel(self) -> 'vtkFloatArray': ... + def GetYKernel(self) -> 'vtkFloatArray': ... + def GetZKernel(self) -> 'vtkFloatArray': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageSeparableConvolution': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageSeparableConvolution': ... + def SetXKernel(self, __a:'vtkFloatArray') -> None: ... + def SetYKernel(self, __a:'vtkFloatArray') -> None: ... + def SetZKernel(self, __a:'vtkFloatArray') -> None: ... + +class vtkImageSlab(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + multi_slice_output:'getset_descriptor' + operation:'getset_descriptor' + orientation:'getset_descriptor' + output_scalar_type:'getset_descriptor' + slice_range:'getset_descriptor' + trapezoid_integration:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMultiSliceOutput(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOperation(self) -> int: ... + def GetOperationAsString(self) -> str: ... + def GetOperationMaxValue(self) -> int: ... + def GetOperationMinValue(self) -> int: ... + def GetOrientation(self) -> int: ... + def GetOrientationMaxValue(self) -> int: ... + def GetOrientationMinValue(self) -> int: ... + def GetOutputScalarType(self) -> int: ... + def GetSliceRange(self) -> Tuple[int, int]: ... + def GetTrapezoidIntegration(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MultiSliceOutputOff(self) -> None: ... + def MultiSliceOutputOn(self) -> None: ... + def NewInstance(self) -> 'vtkImageSlab': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageSlab': ... + def SetMultiSliceOutput(self, _arg:int) -> None: ... + def SetOperation(self, _arg:int) -> None: ... + def SetOperationToMax(self) -> None: ... + def SetOperationToMean(self) -> None: ... + def SetOperationToMin(self) -> None: ... + def SetOperationToSum(self) -> None: ... + def SetOrientation(self, _arg:int) -> None: ... + def SetOrientationToX(self) -> None: ... + def SetOrientationToY(self) -> None: ... + def SetOrientationToZ(self) -> None: ... + def SetOutputScalarTypeToDouble(self) -> None: ... + def SetOutputScalarTypeToFloat(self) -> None: ... + def SetOutputScalarTypeToInputScalarType(self) -> None: ... + @overload + def SetSliceRange(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetSliceRange(self, _arg:Sequence[int]) -> None: ... + def SetTrapezoidIntegration(self, _arg:int) -> None: ... + def TrapezoidIntegrationOff(self) -> None: ... + def TrapezoidIntegrationOn(self) -> None: ... + +class vtkImageSlabReslice(vtkmodules.vtkImagingCore.vtkImageReslice): + blend_mode:'getset_descriptor' + num_blend_sample_points:'getset_descriptor' + slab_resolution:'getset_descriptor' + slab_thickness:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBlendMode(self) -> int: ... + def GetNumBlendSamplePoints(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSlabResolution(self) -> float: ... + def GetSlabThickness(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageSlabReslice': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageSlabReslice': ... + def SetBlendMode(self, _arg:int) -> None: ... + def SetBlendModeToMax(self) -> None: ... + def SetBlendModeToMean(self) -> None: ... + def SetBlendModeToMin(self) -> None: ... + def SetSlabResolution(self, _arg:float) -> None: ... + def SetSlabThickness(self, _arg:float) -> None: ... + +class vtkImageSobel2D(vtkImageSpatialAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageSobel2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageSobel2D': ... + +class vtkImageSobel3D(vtkImageSpatialAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageSobel3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageSobel3D': ... + +class vtkImageVariance3D(vtkImageSpatialAlgorithm): + kernel_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageVariance3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageVariance3D': ... + def SetKernelSize(self, size0:int, size1:int, size2:int) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingHybrid.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingHybrid.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..2aec398 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingHybrid.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingHybrid.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingHybrid.pyi new file mode 100644 index 0000000..66bd6ca --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingHybrid.pyi @@ -0,0 +1,651 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +VTK_ACCUMULATION_MODE_MAX:int +VTK_ACCUMULATION_MODE_MIN:int +VTK_ACCUMULATION_MODE_SUM:int +VTK_WIPE_HORIZONTAL:int +VTK_WIPE_LOWER_LEFT:int +VTK_WIPE_LOWER_RIGHT:int +VTK_WIPE_QUAD:int +VTK_WIPE_UPPER_LEFT:int +VTK_WIPE_UPPER_RIGHT:int +VTK_WIPE_VERTICAL:int + +class vtkBooleanTexture(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + in_in:'getset_descriptor' + in_on:'getset_descriptor' + in_out:'getset_descriptor' + on_in:'getset_descriptor' + on_on:'getset_descriptor' + on_out:'getset_descriptor' + out_in:'getset_descriptor' + out_on:'getset_descriptor' + out_out:'getset_descriptor' + thickness:'getset_descriptor' + x_size:'getset_descriptor' + y_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInIn(self) -> Tuple[int, int]: ... + def GetInOn(self) -> Tuple[int, int]: ... + def GetInOut(self) -> Tuple[int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOnIn(self) -> Tuple[int, int]: ... + def GetOnOn(self) -> Tuple[int, int]: ... + def GetOnOut(self) -> Tuple[int, int]: ... + def GetOutIn(self) -> Tuple[int, int]: ... + def GetOutOn(self) -> Tuple[int, int]: ... + def GetOutOut(self) -> Tuple[int, int]: ... + def GetThickness(self) -> int: ... + def GetXSize(self) -> int: ... + def GetYSize(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBooleanTexture': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBooleanTexture': ... + @overload + def SetInIn(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetInIn(self, _arg:Sequence[int]) -> None: ... + @overload + def SetInOn(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetInOn(self, _arg:Sequence[int]) -> None: ... + @overload + def SetInOut(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetInOut(self, _arg:Sequence[int]) -> None: ... + @overload + def SetOnIn(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetOnIn(self, _arg:Sequence[int]) -> None: ... + @overload + def SetOnOn(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetOnOn(self, _arg:Sequence[int]) -> None: ... + @overload + def SetOnOut(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetOnOut(self, _arg:Sequence[int]) -> None: ... + @overload + def SetOutIn(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetOutIn(self, _arg:Sequence[int]) -> None: ... + @overload + def SetOutOn(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetOutOn(self, _arg:Sequence[int]) -> None: ... + @overload + def SetOutOut(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetOutOut(self, _arg:Sequence[int]) -> None: ... + def SetThickness(self, _arg:int) -> None: ... + def SetXSize(self, _arg:int) -> None: ... + def SetYSize(self, _arg:int) -> None: ... + +class vtkCheckerboardSplatter(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + accumulation_mode:'getset_descriptor' + cap_value:'getset_descriptor' + capping:'getset_descriptor' + eccentricity:'getset_descriptor' + exponent_factor:'getset_descriptor' + footprint:'getset_descriptor' + maximum_dimension:'getset_descriptor' + model_bounds:'getset_descriptor' + normal_warping:'getset_descriptor' + null_value:'getset_descriptor' + output_scalar_type:'getset_descriptor' + parallel_splat_crossover:'getset_descriptor' + radius:'getset_descriptor' + sample_dimensions:'getset_descriptor' + scalar_warping:'getset_descriptor' + scale_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CappingOff(self) -> None: ... + def CappingOn(self) -> None: ... + def ComputeModelBounds(self, input:'vtkDataSet', output:'vtkImageData', outInfo:'vtkInformation') -> None: ... + def GetAccumulationMode(self) -> int: ... + def GetAccumulationModeAsString(self) -> str: ... + def GetAccumulationModeMaxValue(self) -> int: ... + def GetAccumulationModeMinValue(self) -> int: ... + def GetCapValue(self) -> float: ... + def GetCapping(self) -> int: ... + def GetEccentricity(self) -> float: ... + def GetEccentricityMaxValue(self) -> float: ... + def GetEccentricityMinValue(self) -> float: ... + def GetExponentFactor(self) -> float: ... + def GetFootprint(self) -> int: ... + def GetFootprintMaxValue(self) -> int: ... + def GetFootprintMinValue(self) -> int: ... + def GetMaximumDimension(self) -> int: ... + def GetMaximumDimensionMaxValue(self) -> int: ... + def GetMaximumDimensionMinValue(self) -> int: ... + def GetModelBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNormalWarping(self) -> int: ... + def GetNullValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputScalarType(self) -> int: ... + def GetParallelSplatCrossover(self) -> int: ... + def GetParallelSplatCrossoverMaxValue(self) -> int: ... + def GetParallelSplatCrossoverMinValue(self) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def GetSampleDimensions(self) -> Tuple[int, int, int]: ... + def GetScalarWarping(self) -> int: ... + def GetScaleFactor(self) -> float: ... + def GetScaleFactorMaxValue(self) -> float: ... + def GetScaleFactorMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCheckerboardSplatter': ... + def NormalWarpingOff(self) -> None: ... + def NormalWarpingOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCheckerboardSplatter': ... + def ScalarWarpingOff(self) -> None: ... + def ScalarWarpingOn(self) -> None: ... + def SetAccumulationMode(self, _arg:int) -> None: ... + def SetAccumulationModeToMax(self) -> None: ... + def SetAccumulationModeToMin(self) -> None: ... + def SetAccumulationModeToSum(self) -> None: ... + def SetCapValue(self, _arg:float) -> None: ... + def SetCapping(self, _arg:int) -> None: ... + def SetEccentricity(self, _arg:float) -> None: ... + def SetExponentFactor(self, _arg:float) -> None: ... + def SetFootprint(self, _arg:int) -> None: ... + def SetMaximumDimension(self, _arg:int) -> None: ... + @overload + def SetModelBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetModelBounds(self, _arg:Sequence[float]) -> None: ... + def SetNormalWarping(self, _arg:int) -> None: ... + def SetNullValue(self, _arg:float) -> None: ... + def SetOutputScalarType(self, _arg:int) -> None: ... + def SetOutputScalarTypeToDouble(self) -> None: ... + def SetOutputScalarTypeToFloat(self) -> None: ... + def SetParallelSplatCrossover(self, _arg:int) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + @overload + def SetSampleDimensions(self, i:int, j:int, k:int) -> None: ... + @overload + def SetSampleDimensions(self, dim:MutableSequence[int]) -> None: ... + def SetScalarWarping(self, _arg:int) -> None: ... + def SetScaleFactor(self, _arg:float) -> None: ... + +class vtkFastSplatter(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + ClampLimit:int + FreezeScaleLimit:int + NoneLimit:int + ScaleLimit:int + limit_mode:'getset_descriptor' + max_value:'getset_descriptor' + min_value:'getset_descriptor' + model_bounds:'getset_descriptor' + number_of_points_splatted:'getset_descriptor' + output_dimensions:'getset_descriptor' + splat_connection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLimitMode(self) -> int: ... + def GetMaxValue(self) -> float: ... + def GetMinValue(self) -> float: ... + def GetModelBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPointsSplatted(self) -> int: ... + def GetOutputDimensions(self) -> Tuple[int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFastSplatter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFastSplatter': ... + def SetLimitMode(self, _arg:int) -> None: ... + def SetLimitModeToClamp(self) -> None: ... + def SetLimitModeToFreezeScale(self) -> None: ... + def SetLimitModeToNone(self) -> None: ... + def SetLimitModeToScale(self) -> None: ... + def SetMaxValue(self, _arg:float) -> None: ... + def SetMinValue(self, _arg:float) -> None: ... + @overload + def SetModelBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetModelBounds(self, _arg:Sequence[float]) -> None: ... + @overload + def SetOutputDimensions(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetOutputDimensions(self, _arg:Sequence[int]) -> None: ... + def SetSplatConnection(self, __a:'vtkAlgorithmOutput') -> None: ... + +class vtkGaussianSplatter(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + accumulation_mode:'getset_descriptor' + cap_value:'getset_descriptor' + capping:'getset_descriptor' + eccentricity:'getset_descriptor' + exponent_factor:'getset_descriptor' + model_bounds:'getset_descriptor' + normal_warping:'getset_descriptor' + null_value:'getset_descriptor' + radius:'getset_descriptor' + sample_dimensions:'getset_descriptor' + scalar_warping:'getset_descriptor' + scale_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CappingOff(self) -> None: ... + def CappingOn(self) -> None: ... + @overload + def ComputeModelBounds(self, input:'vtkDataSet', output:'vtkImageData', outInfo:'vtkInformation') -> None: ... + @overload + def ComputeModelBounds(self, input:'vtkCompositeDataSet', output:'vtkImageData', outInfo:'vtkInformation') -> None: ... + def GetAccumulationMode(self) -> int: ... + def GetAccumulationModeAsString(self) -> str: ... + def GetAccumulationModeMaxValue(self) -> int: ... + def GetAccumulationModeMinValue(self) -> int: ... + def GetCapValue(self) -> float: ... + def GetCapping(self) -> int: ... + def GetEccentricity(self) -> float: ... + def GetEccentricityMaxValue(self) -> float: ... + def GetEccentricityMinValue(self) -> float: ... + def GetExponentFactor(self) -> float: ... + def GetModelBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNormalWarping(self) -> int: ... + def GetNullValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def GetSampleDimensions(self) -> Tuple[int, int, int]: ... + def GetScalarWarping(self) -> int: ... + def GetScaleFactor(self) -> float: ... + def GetScaleFactorMaxValue(self) -> float: ... + def GetScaleFactorMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGaussianSplatter': ... + def NormalWarpingOff(self) -> None: ... + def NormalWarpingOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGaussianSplatter': ... + def SamplePoint(self, x:MutableSequence[float]) -> float: ... + def ScalarWarpingOff(self) -> None: ... + def ScalarWarpingOn(self) -> None: ... + def SetAccumulationMode(self, _arg:int) -> None: ... + def SetAccumulationModeToMax(self) -> None: ... + def SetAccumulationModeToMin(self) -> None: ... + def SetAccumulationModeToSum(self) -> None: ... + def SetCapValue(self, _arg:float) -> None: ... + def SetCapping(self, _arg:int) -> None: ... + def SetEccentricity(self, _arg:float) -> None: ... + def SetExponentFactor(self, _arg:float) -> None: ... + @overload + def SetModelBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetModelBounds(self, _arg:Sequence[float]) -> None: ... + def SetNormalWarping(self, _arg:int) -> None: ... + def SetNullValue(self, _arg:float) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + @overload + def SetSampleDimensions(self, i:int, j:int, k:int) -> None: ... + @overload + def SetSampleDimensions(self, dim:MutableSequence[int]) -> None: ... + def SetScalar(self, idx:int, dist2:float, sPtr:MutableSequence[float]) -> None: ... + def SetScalarWarping(self, _arg:int) -> None: ... + def SetScaleFactor(self, _arg:float) -> None: ... + +class vtkImageCursor3D(vtkmodules.vtkCommonExecutionModel.vtkImageInPlaceFilter): + cursor_position:'getset_descriptor' + cursor_radius:'getset_descriptor' + cursor_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCursorPosition(self) -> Tuple[float, float, float]: ... + def GetCursorRadius(self) -> int: ... + def GetCursorValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageCursor3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageCursor3D': ... + @overload + def SetCursorPosition(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCursorPosition(self, _arg:Sequence[float]) -> None: ... + def SetCursorRadius(self, _arg:int) -> None: ... + def SetCursorValue(self, _arg:float) -> None: ... + +class vtkImageRectilinearWipe(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + axis:'getset_descriptor' + input1_data:'getset_descriptor' + input2_data:'getset_descriptor' + position:'getset_descriptor' + wipe:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAxis(self) -> Tuple[int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPosition(self) -> Tuple[int, int]: ... + def GetWipe(self) -> int: ... + def GetWipeMaxValue(self) -> int: ... + def GetWipeMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageRectilinearWipe': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageRectilinearWipe': ... + @overload + def SetAxis(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetAxis(self, _arg:Sequence[int]) -> None: ... + def SetInput1Data(self, in_:'vtkDataObject') -> None: ... + def SetInput2Data(self, in_:'vtkDataObject') -> None: ... + @overload + def SetPosition(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetPosition(self, _arg:Sequence[int]) -> None: ... + def SetWipe(self, _arg:int) -> None: ... + def SetWipeToHorizontal(self) -> None: ... + def SetWipeToLowerLeft(self) -> None: ... + def SetWipeToLowerRight(self) -> None: ... + def SetWipeToQuad(self) -> None: ... + def SetWipeToUpperLeft(self) -> None: ... + def SetWipeToUpperRight(self) -> None: ... + def SetWipeToVertical(self) -> None: ... + +class vtkImageToPoints(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + output_points_precision:'getset_descriptor' + stencil_connection:'getset_descriptor' + stencil_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetStencilConnection(self) -> 'vtkAlgorithmOutput': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageToPoints': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageToPoints': ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetStencilConnection(self, port:'vtkAlgorithmOutput') -> None: ... + def SetStencilData(self, stencil:'vtkImageStencilData') -> None: ... + +class vtkPointLoad(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + compute_effective_stress:'getset_descriptor' + load_value:'getset_descriptor' + model_bounds:'getset_descriptor' + poissons_ratio:'getset_descriptor' + sample_dimensions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeEffectiveStressOff(self) -> None: ... + def ComputeEffectiveStressOn(self) -> None: ... + def GetComputeEffectiveStress(self) -> int: ... + def GetLoadValue(self) -> float: ... + def GetModelBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoissonsRatio(self) -> float: ... + def GetSampleDimensions(self) -> Tuple[int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointLoad': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointLoad': ... + def SetComputeEffectiveStress(self, __a:int) -> None: ... + def SetLoadValue(self, _arg:float) -> None: ... + @overload + def SetModelBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetModelBounds(self, _arg:Sequence[float]) -> None: ... + def SetPoissonsRatio(self, _arg:float) -> None: ... + @overload + def SetSampleDimensions(self, dim:MutableSequence[int]) -> None: ... + @overload + def SetSampleDimensions(self, i:int, j:int, k:int) -> None: ... + +class vtkSampleFunction(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + cap_value:'getset_descriptor' + capping:'getset_descriptor' + compute_normals:'getset_descriptor' + implicit_function:'getset_descriptor' + m_time:'getset_descriptor' + model_bounds:'getset_descriptor' + normal_array_name:'getset_descriptor' + output_scalar_type:'getset_descriptor' + sample_dimensions:'getset_descriptor' + scalar_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CappingOff(self) -> None: ... + def CappingOn(self) -> None: ... + def ComputeNormalsOff(self) -> None: ... + def ComputeNormalsOn(self) -> None: ... + def GetCapValue(self) -> float: ... + def GetCapping(self) -> int: ... + def GetComputeNormals(self) -> int: ... + def GetImplicitFunction(self) -> 'vtkImplicitFunction': ... + def GetMTime(self) -> int: ... + def GetModelBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNormalArrayName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputScalarType(self) -> int: ... + def GetSampleDimensions(self) -> Tuple[int, int, int]: ... + def GetScalarArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSampleFunction': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSampleFunction': ... + def SetCapValue(self, _arg:float) -> None: ... + def SetCapping(self, _arg:int) -> None: ... + def SetComputeNormals(self, _arg:int) -> None: ... + def SetImplicitFunction(self, __a:'vtkImplicitFunction') -> None: ... + @overload + def SetModelBounds(self, bounds:Sequence[float]) -> None: ... + @overload + def SetModelBounds(self, xMin:float, xMax:float, yMin:float, yMax:float, zMin:float, zMax:float) -> None: ... + def SetNormalArrayName(self, _arg:str) -> None: ... + def SetOutputScalarType(self, _arg:int) -> None: ... + def SetOutputScalarTypeToChar(self) -> None: ... + def SetOutputScalarTypeToDouble(self) -> None: ... + def SetOutputScalarTypeToFloat(self) -> None: ... + def SetOutputScalarTypeToInt(self) -> None: ... + def SetOutputScalarTypeToLong(self) -> None: ... + def SetOutputScalarTypeToShort(self) -> None: ... + def SetOutputScalarTypeToUnsignedChar(self) -> None: ... + def SetOutputScalarTypeToUnsignedInt(self) -> None: ... + def SetOutputScalarTypeToUnsignedLong(self) -> None: ... + def SetOutputScalarTypeToUnsignedShort(self) -> None: ... + @overload + def SetSampleDimensions(self, i:int, j:int, k:int) -> None: ... + @overload + def SetSampleDimensions(self, dim:MutableSequence[int]) -> None: ... + def SetScalarArrayName(self, _arg:str) -> None: ... + +class vtkShepardMethod(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + maximum_distance:'getset_descriptor' + model_bounds:'getset_descriptor' + null_value:'getset_descriptor' + power_parameter:'getset_descriptor' + sample_dimensions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeModelBounds(self, origin:MutableSequence[float], spacing:MutableSequence[float]) -> float: ... + def GetMaximumDistance(self) -> float: ... + def GetMaximumDistanceMaxValue(self) -> float: ... + def GetMaximumDistanceMinValue(self) -> float: ... + def GetModelBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNullValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPowerParameter(self) -> float: ... + def GetPowerParameterMaxValue(self) -> float: ... + def GetPowerParameterMinValue(self) -> float: ... + def GetSampleDimensions(self) -> Tuple[int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkShepardMethod': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkShepardMethod': ... + def SetMaximumDistance(self, _arg:float) -> None: ... + @overload + def SetModelBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetModelBounds(self, _arg:Sequence[float]) -> None: ... + def SetNullValue(self, _arg:float) -> None: ... + def SetPowerParameter(self, _arg:float) -> None: ... + @overload + def SetSampleDimensions(self, i:int, j:int, k:int) -> None: ... + @overload + def SetSampleDimensions(self, dim:MutableSequence[int]) -> None: ... + +class vtkSliceCubes(vtkmodules.vtkCommonCore.vtkObject): + file_name:'getset_descriptor' + limits_file_name:'getset_descriptor' + reader:'getset_descriptor' + value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetLimitsFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReader(self) -> 'vtkVolumeReader': ... + def GetValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSliceCubes': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSliceCubes': ... + def SetFileName(self, _arg:str) -> None: ... + def SetLimitsFileName(self, _arg:str) -> None: ... + def SetReader(self, __a:'vtkVolumeReader') -> None: ... + def SetValue(self, _arg:float) -> None: ... + def Update(self) -> None: ... + def Write(self) -> None: ... + +class vtkSurfaceReconstructionFilter(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + neighborhood_size:'getset_descriptor' + sample_spacing:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNeighborhoodSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSampleSpacing(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSurfaceReconstructionFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSurfaceReconstructionFilter': ... + def SetNeighborhoodSize(self, _arg:int) -> None: ... + def SetSampleSpacing(self, _arg:float) -> None: ... + +class vtkTriangularTexture(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + scale_factor:'getset_descriptor' + texture_pattern:'getset_descriptor' + x_size:'getset_descriptor' + y_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScaleFactor(self) -> float: ... + def GetTexturePattern(self) -> int: ... + def GetTexturePatternMaxValue(self) -> int: ... + def GetTexturePatternMinValue(self) -> int: ... + def GetXSize(self) -> int: ... + def GetYSize(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTriangularTexture': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTriangularTexture': ... + def SetScaleFactor(self, _arg:float) -> None: ... + def SetTexturePattern(self, _arg:int) -> None: ... + def SetXSize(self, _arg:int) -> None: ... + def SetYSize(self, _arg:int) -> None: ... + +class vtkVoxelModeller(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + background_value:'getset_descriptor' + foreground_value:'getset_descriptor' + maximum_distance:'getset_descriptor' + model_bounds:'getset_descriptor' + sample_dimensions:'getset_descriptor' + scalar_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeModelBounds(self, origin:MutableSequence[float], spacing:MutableSequence[float]) -> float: ... + def GetBackgroundValue(self) -> float: ... + def GetForegroundValue(self) -> float: ... + def GetMaximumDistance(self) -> float: ... + def GetMaximumDistanceMaxValue(self) -> float: ... + def GetMaximumDistanceMinValue(self) -> float: ... + def GetModelBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSampleDimensions(self) -> Tuple[int, int, int]: ... + def GetScalarType(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVoxelModeller': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVoxelModeller': ... + def SetBackgroundValue(self, _arg:float) -> None: ... + def SetForegroundValue(self, _arg:float) -> None: ... + def SetMaximumDistance(self, _arg:float) -> None: ... + @overload + def SetModelBounds(self, bounds:Sequence[float]) -> None: ... + @overload + def SetModelBounds(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @overload + def SetSampleDimensions(self, i:int, j:int, k:int) -> None: ... + @overload + def SetSampleDimensions(self, dim:MutableSequence[int]) -> None: ... + def SetScalarType(self, _arg:int) -> None: ... + def SetScalarTypeToBit(self) -> None: ... + def SetScalarTypeToChar(self) -> None: ... + def SetScalarTypeToDouble(self) -> None: ... + def SetScalarTypeToFloat(self) -> None: ... + def SetScalarTypeToInt(self) -> None: ... + def SetScalarTypeToLong(self) -> None: ... + def SetScalarTypeToShort(self) -> None: ... + def SetScalarTypeToUnsignedChar(self) -> None: ... + def SetScalarTypeToUnsignedInt(self) -> None: ... + def SetScalarTypeToUnsignedLong(self) -> None: ... + def SetScalarTypeToUnsignedShort(self) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingMath.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingMath.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..36a6a21 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingMath.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingMath.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingMath.pyi new file mode 100644 index 0000000..f08a5f6 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingMath.pyi @@ -0,0 +1,247 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +VTK_ABS:int +VTK_ADD:int +VTK_ADDC:int +VTK_AND:int +VTK_ATAN:int +VTK_ATAN2:int +VTK_COMPLEX_MULTIPLY:int +VTK_CONJUGATE:int +VTK_COS:int +VTK_DIVIDE:int +VTK_EXP:int +VTK_INVERT:int +VTK_LOG:int +VTK_MAX:int +VTK_MIN:int +VTK_MULTIPLY:int +VTK_MULTIPLYBYK:int +VTK_NAND:int +VTK_NOP:int +VTK_NOR:int +VTK_NOT:int +VTK_OR:int +VTK_REPLACECBYK:int +VTK_SIN:int +VTK_SQR:int +VTK_SQRT:int +VTK_SUBTRACT:int +VTK_XOR:int + +class vtkImageDivergence(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageDivergence': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageDivergence': ... + +class vtkImageDotProduct(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + input1_data:'getset_descriptor' + input2_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageDotProduct': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageDotProduct': ... + def SetInput1Data(self, in_:'vtkDataObject') -> None: ... + def SetInput2Data(self, in_:'vtkDataObject') -> None: ... + +class vtkImageLogarithmicScale(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + constant:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetConstant(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageLogarithmicScale': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageLogarithmicScale': ... + def SetConstant(self, _arg:float) -> None: ... + +class vtkImageLogic(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + input1_data:'getset_descriptor' + input2_data:'getset_descriptor' + operation:'getset_descriptor' + output_true_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOperation(self) -> int: ... + def GetOutputTrueValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageLogic': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageLogic': ... + def SetInput1Data(self, input:'vtkDataObject') -> None: ... + def SetInput2Data(self, input:'vtkDataObject') -> None: ... + def SetOperation(self, _arg:int) -> None: ... + def SetOperationToAnd(self) -> None: ... + def SetOperationToNand(self) -> None: ... + def SetOperationToNor(self) -> None: ... + def SetOperationToNot(self) -> None: ... + def SetOperationToOr(self) -> None: ... + def SetOperationToXor(self) -> None: ... + def SetOutputTrueValue(self, _arg:float) -> None: ... + +class vtkImageMagnitude(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageMagnitude': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageMagnitude': ... + +class vtkImageMaskBits(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + mask:'getset_descriptor' + masks:'getset_descriptor' + operation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMasks(self) -> Tuple[int, int, int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOperation(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageMaskBits': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageMaskBits': ... + def SetMask(self, mask:int) -> None: ... + @overload + def SetMasks(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int) -> None: ... + @overload + def SetMasks(self, _arg:Sequence[int]) -> None: ... + @overload + def SetMasks(self, mask1:int, mask2:int) -> None: ... + @overload + def SetMasks(self, mask1:int, mask2:int, mask3:int) -> None: ... + def SetOperation(self, _arg:int) -> None: ... + def SetOperationToAnd(self) -> None: ... + def SetOperationToNand(self) -> None: ... + def SetOperationToNor(self) -> None: ... + def SetOperationToOr(self) -> None: ... + def SetOperationToXor(self) -> None: ... + +class vtkImageMathematics(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + constant_c:'getset_descriptor' + constant_k:'getset_descriptor' + divide_by_zero_to_c:'getset_descriptor' + input:'getset_descriptor' + input1_data:'getset_descriptor' + input2_data:'getset_descriptor' + input_connection:'getset_descriptor' + input_data:'getset_descriptor' + operation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DivideByZeroToCOff(self) -> None: ... + def DivideByZeroToCOn(self) -> None: ... + def GetConstantC(self) -> float: ... + def GetConstantK(self) -> float: ... + def GetDivideByZeroToC(self) -> int: ... + @overload + def GetInput(self, idx:int) -> 'vtkDataObject': ... + @overload + def GetInput(self) -> 'vtkDataObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfInputs(self) -> int: ... + def GetOperation(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageMathematics': ... + def ReplaceNthInputConnection(self, idx:int, input:'vtkAlgorithmOutput') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageMathematics': ... + def SetConstantC(self, _arg:float) -> None: ... + def SetConstantK(self, _arg:float) -> None: ... + def SetDivideByZeroToC(self, _arg:int) -> None: ... + def SetInput1Data(self, in_:'vtkDataObject') -> None: ... + def SetInput2Data(self, in_:'vtkDataObject') -> None: ... + @overload + def SetInputConnection(self, idx:int, input:'vtkAlgorithmOutput') -> None: ... + @overload + def SetInputConnection(self, input:'vtkAlgorithmOutput') -> None: ... + @overload + def SetInputData(self, idx:int, input:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, input:'vtkDataObject') -> None: ... + def SetOperation(self, _arg:int) -> None: ... + def SetOperationToATAN(self) -> None: ... + def SetOperationToATAN2(self) -> None: ... + def SetOperationToAbsoluteValue(self) -> None: ... + def SetOperationToAdd(self) -> None: ... + def SetOperationToAddConstant(self) -> None: ... + def SetOperationToComplexMultiply(self) -> None: ... + def SetOperationToConjugate(self) -> None: ... + def SetOperationToCos(self) -> None: ... + def SetOperationToDivide(self) -> None: ... + def SetOperationToExp(self) -> None: ... + def SetOperationToInvert(self) -> None: ... + def SetOperationToLog(self) -> None: ... + def SetOperationToMax(self) -> None: ... + def SetOperationToMin(self) -> None: ... + def SetOperationToMultiply(self) -> None: ... + def SetOperationToMultiplyByK(self) -> None: ... + def SetOperationToReplaceCByK(self) -> None: ... + def SetOperationToSin(self) -> None: ... + def SetOperationToSquare(self) -> None: ... + def SetOperationToSquareRoot(self) -> None: ... + def SetOperationToSubtract(self) -> None: ... + +class vtkImageWeightedSum(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + normalize_by_weight:'getset_descriptor' + weights:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CalculateTotalWeight(self) -> float: ... + def GetNormalizeByWeight(self) -> int: ... + def GetNormalizeByWeightMaxValue(self) -> int: ... + def GetNormalizeByWeightMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWeights(self) -> 'vtkDoubleArray': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageWeightedSum': ... + def NormalizeByWeightOff(self) -> None: ... + def NormalizeByWeightOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageWeightedSum': ... + def SetNormalizeByWeight(self, _arg:int) -> None: ... + def SetWeight(self, id:int, weight:float) -> None: ... + def SetWeights(self, __a:'vtkDoubleArray') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingMorphological.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingMorphological.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..067395c Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingMorphological.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingMorphological.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingMorphological.pyi new file mode 100644 index 0000000..31f0b47 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingMorphological.pyi @@ -0,0 +1,391 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkImagingCore +import vtkmodules.vtkImagingGeneral + +VTK_IMAGE_NON_MAXIMUM_SUPPRESSION_MAGNITUDE_INPUT:int +VTK_IMAGE_NON_MAXIMUM_SUPPRESSION_VECTOR_INPUT:int + +class vtkImage2DIslandPixel_t(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkImage2DIslandPixel_t') -> None: ... + +class vtkImageConnectivityFilter(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + class ExtractionModeEnum(int): ... + class LabelModeEnum(int): ... + AllRegions:'ExtractionModeEnum' + ConstantValue:'LabelModeEnum' + LargestRegion:'ExtractionModeEnum' + SeedScalar:'LabelModeEnum' + SeededRegions:'ExtractionModeEnum' + SizeRank:'LabelModeEnum' + active_component:'getset_descriptor' + extracted_region_extents:'getset_descriptor' + extracted_region_labels:'getset_descriptor' + extracted_region_seed_ids:'getset_descriptor' + extracted_region_sizes:'getset_descriptor' + extraction_mode:'getset_descriptor' + generate_region_extents:'getset_descriptor' + label_constant_value:'getset_descriptor' + label_mode:'getset_descriptor' + label_scalar_type:'getset_descriptor' + number_of_extracted_regions:'getset_descriptor' + scalar_range:'getset_descriptor' + seed_connection:'getset_descriptor' + seed_data:'getset_descriptor' + size_range:'getset_descriptor' + stencil_connection:'getset_descriptor' + stencil_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateRegionExtentsOff(self) -> None: ... + def GenerateRegionExtentsOn(self) -> None: ... + def GetActiveComponent(self) -> int: ... + def GetExtractedRegionExtents(self) -> 'vtkIntArray': ... + def GetExtractedRegionLabels(self) -> 'vtkIdTypeArray': ... + def GetExtractedRegionSeedIds(self) -> 'vtkIdTypeArray': ... + def GetExtractedRegionSizes(self) -> 'vtkIdTypeArray': ... + def GetExtractionMode(self) -> int: ... + def GetExtractionModeAsString(self) -> str: ... + def GetGenerateRegionExtents(self) -> int: ... + def GetLabelConstantValue(self) -> int: ... + def GetLabelMode(self) -> int: ... + def GetLabelModeAsString(self) -> str: ... + def GetLabelScalarType(self) -> int: ... + def GetLabelScalarTypeAsString(self) -> str: ... + def GetNumberOfExtractedRegions(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScalarRange(self) -> Tuple[float, float]: ... + def GetSeedConnection(self) -> 'vtkAlgorithmOutput': ... + def GetSizeRange(self) -> Tuple[int, int]: ... + def GetStencilConnection(self) -> 'vtkAlgorithmOutput': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageConnectivityFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageConnectivityFilter': ... + def SetActiveComponent(self, _arg:int) -> None: ... + def SetExtractionMode(self, _arg:int) -> None: ... + def SetExtractionModeToAllRegions(self) -> None: ... + def SetExtractionModeToLargestRegion(self) -> None: ... + def SetExtractionModeToSeededRegions(self) -> None: ... + def SetGenerateRegionExtents(self, _arg:int) -> None: ... + def SetLabelConstantValue(self, _arg:int) -> None: ... + def SetLabelMode(self, _arg:int) -> None: ... + def SetLabelModeToConstantValue(self) -> None: ... + def SetLabelModeToSeedScalar(self) -> None: ... + def SetLabelModeToSizeRank(self) -> None: ... + def SetLabelScalarType(self, _arg:int) -> None: ... + def SetLabelScalarTypeToInt(self) -> None: ... + def SetLabelScalarTypeToShort(self) -> None: ... + def SetLabelScalarTypeToUnsignedChar(self) -> None: ... + def SetLabelScalarTypeToUnsignedShort(self) -> None: ... + @overload + def SetScalarRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetScalarRange(self, _arg:Sequence[float]) -> None: ... + def SetSeedConnection(self, port:'vtkAlgorithmOutput') -> None: ... + def SetSeedData(self, data:'vtkDataSet') -> None: ... + @overload + def SetSizeRange(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetSizeRange(self, _arg:Sequence[int]) -> None: ... + def SetStencilConnection(self, port:'vtkAlgorithmOutput') -> None: ... + def SetStencilData(self, data:'vtkImageStencilData') -> None: ... + +class vtkImageConnector(vtkmodules.vtkCommonCore.vtkObject): + connected_value:'getset_descriptor' + unconnected_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetConnectedValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUnconnectedValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MarkData(self, data:'vtkImageData', dimensionality:int, ext:MutableSequence[int]) -> None: ... + def NewInstance(self) -> 'vtkImageConnector': ... + def RemoveAllSeeds(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageConnector': ... + def SetConnectedValue(self, _arg:int) -> None: ... + def SetUnconnectedValue(self, _arg:int) -> None: ... + +class vtkImageConnectorSeed(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkImageConnectorSeed') -> None: ... + +class vtkImageContinuousDilate3D(vtkmodules.vtkImagingGeneral.vtkImageSpatialAlgorithm): + kernel_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageContinuousDilate3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageContinuousDilate3D': ... + def SetKernelSize(self, size0:int, size1:int, size2:int) -> None: ... + +class vtkImageContinuousErode3D(vtkmodules.vtkImagingGeneral.vtkImageSpatialAlgorithm): + kernel_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageContinuousErode3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageContinuousErode3D': ... + def SetKernelSize(self, size0:int, size1:int, size2:int) -> None: ... + +class vtkImageDilateErode3D(vtkmodules.vtkImagingGeneral.vtkImageSpatialAlgorithm): + dilate_value:'getset_descriptor' + erode_value:'getset_descriptor' + kernel_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDilateValue(self) -> float: ... + def GetErodeValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageDilateErode3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageDilateErode3D': ... + def SetDilateValue(self, _arg:float) -> None: ... + def SetErodeValue(self, _arg:float) -> None: ... + def SetKernelSize(self, size0:int, size1:int, size2:int) -> None: ... + +class vtkImageIslandRemoval2D(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + area_threshold:'getset_descriptor' + island_value:'getset_descriptor' + replace_value:'getset_descriptor' + square_neighborhood:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAreaThreshold(self) -> int: ... + def GetIslandValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReplaceValue(self) -> float: ... + def GetSquareNeighborhood(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageIslandRemoval2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageIslandRemoval2D': ... + def SetAreaThreshold(self, _arg:int) -> None: ... + def SetIslandValue(self, _arg:float) -> None: ... + def SetReplaceValue(self, _arg:float) -> None: ... + def SetSquareNeighborhood(self, _arg:int) -> None: ... + def SquareNeighborhoodOff(self) -> None: ... + def SquareNeighborhoodOn(self) -> None: ... + +class vtkImageNonMaximumSuppression(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + dimensionality:'getset_descriptor' + handle_boundaries:'getset_descriptor' + magnitude_input_data:'getset_descriptor' + vector_input_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDimensionality(self) -> int: ... + def GetDimensionalityMaxValue(self) -> int: ... + def GetDimensionalityMinValue(self) -> int: ... + def GetHandleBoundaries(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def HandleBoundariesOff(self) -> None: ... + def HandleBoundariesOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageNonMaximumSuppression': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageNonMaximumSuppression': ... + def SetDimensionality(self, _arg:int) -> None: ... + def SetHandleBoundaries(self, _arg:int) -> None: ... + def SetMagnitudeInputData(self, input:'vtkImageData') -> None: ... + def SetVectorInputData(self, input:'vtkImageData') -> None: ... + +class vtkImageOpenClose3D(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + close_value:'getset_descriptor' + filter0:'getset_descriptor' + filter1:'getset_descriptor' + kernel_size:'getset_descriptor' + m_time:'getset_descriptor' + open_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DebugOff(self) -> None: ... + def DebugOn(self) -> None: ... + def GetCloseValue(self) -> float: ... + def GetFilter0(self) -> 'vtkImageDilateErode3D': ... + def GetFilter1(self) -> 'vtkImageDilateErode3D': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOpenValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Modified(self) -> None: ... + def NewInstance(self) -> 'vtkImageOpenClose3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageOpenClose3D': ... + def SetCloseValue(self, value:float) -> None: ... + def SetKernelSize(self, size0:int, size1:int, size2:int) -> None: ... + def SetOpenValue(self, value:float) -> None: ... + +class vtkImageSeedConnectivity(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + connector:'getset_descriptor' + dimensionality:'getset_descriptor' + input_connect_value:'getset_descriptor' + output_connected_value:'getset_descriptor' + output_unconnected_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddSeed(self, num:int, index:MutableSequence[int]) -> None: ... + @overload + def AddSeed(self, i0:int, i1:int, i2:int) -> None: ... + @overload + def AddSeed(self, i0:int, i1:int) -> None: ... + def GetConnector(self) -> 'vtkImageConnector': ... + def GetDimensionality(self) -> int: ... + def GetInputConnectValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputConnectedValue(self) -> int: ... + def GetOutputUnconnectedValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageSeedConnectivity': ... + def RemoveAllSeeds(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageSeedConnectivity': ... + def SetDimensionality(self, _arg:int) -> None: ... + def SetInputConnectValue(self, _arg:int) -> None: ... + def SetOutputConnectedValue(self, _arg:int) -> None: ... + def SetOutputUnconnectedValue(self, _arg:int) -> None: ... + +class vtkImageSkeleton2D(vtkmodules.vtkImagingCore.vtkImageIterateFilter): + prune:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPrune(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageSkeleton2D': ... + def PruneOff(self) -> None: ... + def PruneOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageSkeleton2D': ... + def SetNumberOfIterations(self, num:int) -> None: ... + def SetPrune(self, _arg:int) -> None: ... + +class vtkImageThresholdConnectivity(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + active_component:'getset_descriptor' + in_value:'getset_descriptor' + lower_threshold:'getset_descriptor' + m_time:'getset_descriptor' + neighborhood_fraction:'getset_descriptor' + neighborhood_radius:'getset_descriptor' + number_of_in_voxels:'getset_descriptor' + out_value:'getset_descriptor' + replace_in:'getset_descriptor' + replace_out:'getset_descriptor' + seed_points:'getset_descriptor' + slice_range_x:'getset_descriptor' + slice_range_y:'getset_descriptor' + slice_range_z:'getset_descriptor' + stencil:'getset_descriptor' + stencil_data:'getset_descriptor' + upper_threshold:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetActiveComponent(self) -> int: ... + def GetInValue(self) -> float: ... + def GetLowerThreshold(self) -> float: ... + def GetMTime(self) -> int: ... + def GetNeighborhoodFraction(self) -> float: ... + def GetNeighborhoodFractionMaxValue(self) -> float: ... + def GetNeighborhoodFractionMinValue(self) -> float: ... + def GetNeighborhoodRadius(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfInVoxels(self) -> int: ... + def GetOutValue(self) -> float: ... + def GetReplaceIn(self) -> int: ... + def GetReplaceOut(self) -> int: ... + def GetSeedPoints(self) -> 'vtkPoints': ... + def GetSliceRangeX(self) -> Tuple[int, int]: ... + def GetSliceRangeY(self) -> Tuple[int, int]: ... + def GetSliceRangeZ(self) -> Tuple[int, int]: ... + def GetStencil(self) -> 'vtkImageStencilData': ... + def GetUpperThreshold(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageThresholdConnectivity': ... + def ReplaceInOff(self) -> None: ... + def ReplaceInOn(self) -> None: ... + def ReplaceOutOff(self) -> None: ... + def ReplaceOutOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageThresholdConnectivity': ... + def SetActiveComponent(self, _arg:int) -> None: ... + def SetInValue(self, val:float) -> None: ... + def SetNeighborhoodFraction(self, _arg:float) -> None: ... + @overload + def SetNeighborhoodRadius(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetNeighborhoodRadius(self, _arg:Sequence[float]) -> None: ... + def SetOutValue(self, val:float) -> None: ... + def SetReplaceIn(self, _arg:int) -> None: ... + def SetReplaceOut(self, _arg:int) -> None: ... + def SetSeedPoints(self, points:'vtkPoints') -> None: ... + @overload + def SetSliceRangeX(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetSliceRangeX(self, _arg:Sequence[int]) -> None: ... + @overload + def SetSliceRangeY(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetSliceRangeY(self, _arg:Sequence[int]) -> None: ... + @overload + def SetSliceRangeZ(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetSliceRangeZ(self, _arg:Sequence[int]) -> None: ... + def SetStencilData(self, stencil:'vtkImageStencilData') -> None: ... + def ThresholdBetween(self, lower:float, upper:float) -> None: ... + def ThresholdByLower(self, thresh:float) -> None: ... + def ThresholdByUpper(self, thresh:float) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingOpenGL2.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingOpenGL2.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..f7c790a Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingOpenGL2.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingOpenGL2.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingOpenGL2.pyi new file mode 100644 index 0000000..6339446 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingOpenGL2.pyi @@ -0,0 +1,25 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkImagingGeneral + +class vtkOpenGLImageGradient(vtkmodules.vtkImagingGeneral.vtkImageGradient): + render_window:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLImageGradient': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLImageGradient': ... + def SetRenderWindow(self, __a:'vtkRenderWindow') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingSources.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingSources.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..3000345 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingSources.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingSources.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingSources.pyi new file mode 100644 index 0000000..4b5ade7 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingSources.pyi @@ -0,0 +1,328 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkImageCanvasSource2D(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + default_z:'getset_descriptor' + draw_color:'getset_descriptor' + extent:'getset_descriptor' + number_of_scalar_components:'getset_descriptor' + ratio:'getset_descriptor' + scalar_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DrawCircle(self, c0:int, c1:int, radius:float) -> None: ... + @overload + def DrawImage(self, x0:int, y0:int, i:'vtkImageData') -> None: ... + @overload + def DrawImage(self, x0:int, y0:int, __c:'vtkImageData', sx:int, sy:int, width:int, height:int) -> None: ... + def DrawPoint(self, p0:int, p1:int) -> None: ... + def DrawSegment(self, x0:int, y0:int, x1:int, y1:int) -> None: ... + @overload + def DrawSegment3D(self, p0:MutableSequence[float], p1:MutableSequence[float]) -> None: ... + @overload + def DrawSegment3D(self, x1:float, y1:float, z1:float, x2:float, y2:float, z2:float) -> None: ... + def FillBox(self, min0:int, max0:int, min1:int, max1:int) -> None: ... + def FillPixel(self, x:int, y:int) -> None: ... + def FillTriangle(self, x0:int, y0:int, x1:int, y1:int, x2:int, y2:int) -> None: ... + def FillTube(self, x0:int, y0:int, x1:int, y1:int, radius:float) -> None: ... + def GetDefaultZ(self) -> int: ... + def GetDrawColor(self) -> Tuple[float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfScalarComponents(self) -> int: ... + def GetRatio(self) -> Tuple[float, float, float]: ... + def GetScalarType(self) -> int: ... + def InitializeCanvasVolume(self, volume:'vtkImageData') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageCanvasSource2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageCanvasSource2D': ... + def SetDefaultZ(self, _arg:int) -> None: ... + @overload + def SetDrawColor(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetDrawColor(self, _arg:Sequence[float]) -> None: ... + @overload + def SetDrawColor(self, a:float) -> None: ... + @overload + def SetDrawColor(self, a:float, b:float) -> None: ... + @overload + def SetDrawColor(self, a:float, b:float, c:float) -> None: ... + @overload + def SetExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def SetExtent(self, x1:int, x2:int, y1:int, y2:int, z1:int, z2:int) -> None: ... + def SetNumberOfScalarComponents(self, i:int) -> None: ... + @overload + def SetRatio(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetRatio(self, _arg:Sequence[float]) -> None: ... + def SetScalarType(self, __a:int) -> None: ... + def SetScalarTypeToChar(self) -> None: ... + def SetScalarTypeToDouble(self) -> None: ... + def SetScalarTypeToFloat(self) -> None: ... + def SetScalarTypeToInt(self) -> None: ... + def SetScalarTypeToLong(self) -> None: ... + def SetScalarTypeToShort(self) -> None: ... + def SetScalarTypeToUnsignedChar(self) -> None: ... + def SetScalarTypeToUnsignedInt(self) -> None: ... + def SetScalarTypeToUnsignedLong(self) -> None: ... + def SetScalarTypeToUnsignedShort(self) -> None: ... + +class vtkImageEllipsoidSource(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + center:'getset_descriptor' + in_value:'getset_descriptor' + out_value:'getset_descriptor' + output_scalar_type:'getset_descriptor' + radius:'getset_descriptor' + whole_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetInValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutValue(self) -> float: ... + def GetOutputScalarType(self) -> int: ... + def GetRadius(self) -> Tuple[float, float, float]: ... + @overload + def GetWholeExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def GetWholeExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageEllipsoidSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageEllipsoidSource': ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetInValue(self, _arg:float) -> None: ... + def SetOutValue(self, _arg:float) -> None: ... + def SetOutputScalarType(self, _arg:int) -> None: ... + def SetOutputScalarTypeToChar(self) -> None: ... + def SetOutputScalarTypeToDouble(self) -> None: ... + def SetOutputScalarTypeToFloat(self) -> None: ... + def SetOutputScalarTypeToInt(self) -> None: ... + def SetOutputScalarTypeToLong(self) -> None: ... + def SetOutputScalarTypeToShort(self) -> None: ... + def SetOutputScalarTypeToUnsignedChar(self) -> None: ... + def SetOutputScalarTypeToUnsignedInt(self) -> None: ... + def SetOutputScalarTypeToUnsignedLong(self) -> None: ... + def SetOutputScalarTypeToUnsignedShort(self) -> None: ... + @overload + def SetRadius(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetRadius(self, _arg:Sequence[float]) -> None: ... + @overload + def SetWholeExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def SetWholeExtent(self, minX:int, maxX:int, minY:int, maxY:int, minZ:int, maxZ:int) -> None: ... + +class vtkImageGaussianSource(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + center:'getset_descriptor' + maximum:'getset_descriptor' + standard_deviation:'getset_descriptor' + whole_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetMaximum(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStandardDeviation(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageGaussianSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageGaussianSource': ... + @overload + def SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCenter(self, _arg:Sequence[float]) -> None: ... + def SetMaximum(self, _arg:float) -> None: ... + def SetStandardDeviation(self, _arg:float) -> None: ... + def SetWholeExtent(self, xMinx:int, xMax:int, yMin:int, yMax:int, zMin:int, zMax:int) -> None: ... + +class vtkImageGridSource(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + data_extent:'getset_descriptor' + data_origin:'getset_descriptor' + data_scalar_type:'getset_descriptor' + data_spacing:'getset_descriptor' + fill_value:'getset_descriptor' + grid_origin:'getset_descriptor' + grid_spacing:'getset_descriptor' + line_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDataExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetDataOrigin(self) -> Tuple[float, float, float]: ... + def GetDataScalarType(self) -> int: ... + def GetDataScalarTypeAsString(self) -> str: ... + def GetDataSpacing(self) -> Tuple[float, float, float]: ... + def GetFillValue(self) -> float: ... + def GetGridOrigin(self) -> Tuple[int, int, int]: ... + def GetGridSpacing(self) -> Tuple[int, int, int]: ... + def GetLineValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageGridSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageGridSource': ... + @overload + def SetDataExtent(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetDataExtent(self, _arg:Sequence[int]) -> None: ... + @overload + def SetDataOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetDataOrigin(self, _arg:Sequence[float]) -> None: ... + def SetDataScalarType(self, _arg:int) -> None: ... + def SetDataScalarTypeToDouble(self) -> None: ... + def SetDataScalarTypeToInt(self) -> None: ... + def SetDataScalarTypeToShort(self) -> None: ... + def SetDataScalarTypeToUnsignedChar(self) -> None: ... + def SetDataScalarTypeToUnsignedShort(self) -> None: ... + @overload + def SetDataSpacing(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetDataSpacing(self, _arg:Sequence[float]) -> None: ... + def SetFillValue(self, _arg:float) -> None: ... + @overload + def SetGridOrigin(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetGridOrigin(self, _arg:Sequence[int]) -> None: ... + @overload + def SetGridSpacing(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetGridSpacing(self, _arg:Sequence[int]) -> None: ... + def SetLineValue(self, _arg:float) -> None: ... + +class vtkImageMandelbrotSource(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + constant_size:'getset_descriptor' + maximum_number_of_iterations:'getset_descriptor' + origin_cx:'getset_descriptor' + projection_axes:'getset_descriptor' + sample_cx:'getset_descriptor' + size_cx:'getset_descriptor' + subsample_rate:'getset_descriptor' + whole_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstantSizeOff(self) -> None: ... + def ConstantSizeOn(self) -> None: ... + def CopyOriginAndSample(self, source:'vtkImageMandelbrotSource') -> None: ... + def GetConstantSize(self) -> int: ... + def GetMaximumNumberOfIterations(self) -> int: ... + def GetMaximumNumberOfIterationsMaxValue(self) -> int: ... + def GetMaximumNumberOfIterationsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOriginCX(self) -> Tuple[float, float, float, float]: ... + def GetProjectionAxes(self) -> Tuple[int, int, int]: ... + def GetSampleCX(self) -> Tuple[float, float, float, float]: ... + @overload + def GetSizeCX(self) -> Tuple[float, float, float, float]: ... + @overload + def GetSizeCX(self, s:MutableSequence[float]) -> None: ... + def GetSubsampleRate(self) -> int: ... + def GetSubsampleRateMaxValue(self) -> int: ... + def GetSubsampleRateMinValue(self) -> int: ... + def GetWholeExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageMandelbrotSource': ... + def Pan(self, x:float, y:float, z:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageMandelbrotSource': ... + def SetConstantSize(self, _arg:int) -> None: ... + def SetMaximumNumberOfIterations(self, _arg:int) -> None: ... + @overload + def SetOriginCX(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetOriginCX(self, _arg:Sequence[float]) -> None: ... + @overload + def SetProjectionAxes(self, x:int, y:int, z:int) -> None: ... + @overload + def SetProjectionAxes(self, a:MutableSequence[int]) -> None: ... + @overload + def SetSampleCX(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetSampleCX(self, _arg:Sequence[float]) -> None: ... + def SetSizeCX(self, cReal:float, cImag:float, xReal:float, xImag:float) -> None: ... + def SetSubsampleRate(self, _arg:int) -> None: ... + @overload + def SetWholeExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def SetWholeExtent(self, minX:int, maxX:int, minY:int, maxY:int, minZ:int, maxZ:int) -> None: ... + def Zoom(self, factor:float) -> None: ... + +class vtkImageNoiseSource(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + maximum:'getset_descriptor' + minimum:'getset_descriptor' + whole_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaximum(self) -> float: ... + def GetMinimum(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageNoiseSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageNoiseSource': ... + def SetMaximum(self, _arg:float) -> None: ... + def SetMinimum(self, _arg:float) -> None: ... + @overload + def SetWholeExtent(self, xMinx:int, xMax:int, yMin:int, yMax:int, zMin:int, zMax:int) -> None: ... + @overload + def SetWholeExtent(self, ext:Sequence[int]) -> None: ... + +class vtkImageSinusoidSource(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + amplitude:'getset_descriptor' + direction:'getset_descriptor' + period:'getset_descriptor' + phase:'getset_descriptor' + whole_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAmplitude(self) -> float: ... + def GetDirection(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPeriod(self) -> float: ... + def GetPhase(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageSinusoidSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageSinusoidSource': ... + def SetAmplitude(self, _arg:float) -> None: ... + @overload + def SetDirection(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetDirection(self, dir:MutableSequence[float]) -> None: ... + def SetPeriod(self, _arg:float) -> None: ... + def SetPhase(self, _arg:float) -> None: ... + def SetWholeExtent(self, xMinx:int, xMax:int, yMin:int, yMax:int, zMin:int, zMax:int) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingStatistics.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingStatistics.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..4f6598a Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingStatistics.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingStatistics.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingStatistics.pyi new file mode 100644 index 0000000..7ed4c06 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingStatistics.pyi @@ -0,0 +1,173 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkImageAccumulate(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + component_extent:'getset_descriptor' + component_origin:'getset_descriptor' + component_spacing:'getset_descriptor' + ignore_zero:'getset_descriptor' + max:'getset_descriptor' + mean:'getset_descriptor' + min:'getset_descriptor' + reverse_stencil:'getset_descriptor' + standard_deviation:'getset_descriptor' + stencil:'getset_descriptor' + stencil_data:'getset_descriptor' + voxel_count:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetComponentExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def GetComponentExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetComponentOrigin(self) -> Tuple[float, float, float]: ... + def GetComponentSpacing(self) -> Tuple[float, float, float]: ... + def GetIgnoreZero(self) -> int: ... + def GetIgnoreZeroMaxValue(self) -> int: ... + def GetIgnoreZeroMinValue(self) -> int: ... + def GetMax(self) -> Tuple[float, float, float]: ... + def GetMean(self) -> Tuple[float, float, float]: ... + def GetMin(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReverseStencil(self) -> int: ... + def GetReverseStencilMaxValue(self) -> int: ... + def GetReverseStencilMinValue(self) -> int: ... + def GetStandardDeviation(self) -> Tuple[float, float, float]: ... + def GetStencil(self) -> 'vtkImageStencilData': ... + def GetVoxelCount(self) -> int: ... + def IgnoreZeroOff(self) -> None: ... + def IgnoreZeroOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageAccumulate': ... + def ReverseStencilOff(self) -> None: ... + def ReverseStencilOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageAccumulate': ... + @overload + def SetComponentExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def SetComponentExtent(self, minX:int, maxX:int, minY:int, maxY:int, minZ:int, maxZ:int) -> None: ... + @overload + def SetComponentOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetComponentOrigin(self, _arg:Sequence[float]) -> None: ... + @overload + def SetComponentSpacing(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetComponentSpacing(self, _arg:Sequence[float]) -> None: ... + def SetIgnoreZero(self, _arg:int) -> None: ... + def SetReverseStencil(self, _arg:int) -> None: ... + def SetStencilData(self, stencil:'vtkImageStencilData') -> None: ... + +class vtkImageHistogram(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + Linear:int + Log:int + Sqrt:int + active_component:'getset_descriptor' + automatic_binning:'getset_descriptor' + bin_origin:'getset_descriptor' + bin_spacing:'getset_descriptor' + generate_histogram_image:'getset_descriptor' + histogram:'getset_descriptor' + histogram_image_scale:'getset_descriptor' + histogram_image_size:'getset_descriptor' + maximum_number_of_bins:'getset_descriptor' + number_of_bins:'getset_descriptor' + stencil:'getset_descriptor' + stencil_connection:'getset_descriptor' + stencil_data:'getset_descriptor' + total:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutomaticBinningOff(self) -> None: ... + def AutomaticBinningOn(self) -> None: ... + def GenerateHistogramImageOff(self) -> None: ... + def GenerateHistogramImageOn(self) -> None: ... + def GetActiveComponent(self) -> int: ... + def GetAutomaticBinning(self) -> int: ... + def GetBinOrigin(self) -> float: ... + def GetBinSpacing(self) -> float: ... + def GetGenerateHistogramImage(self) -> int: ... + def GetHistogram(self) -> 'vtkIdTypeArray': ... + def GetHistogramImageScale(self) -> int: ... + def GetHistogramImageScaleAsString(self) -> str: ... + def GetHistogramImageScaleMaxValue(self) -> int: ... + def GetHistogramImageScaleMinValue(self) -> int: ... + def GetHistogramImageSize(self) -> Tuple[int, int]: ... + def GetMaximumNumberOfBins(self) -> int: ... + def GetNumberOfBins(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStencil(self) -> 'vtkImageStencilData': ... + def GetTotal(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageHistogram': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageHistogram': ... + def SetActiveComponent(self, _arg:int) -> None: ... + def SetAutomaticBinning(self, _arg:int) -> None: ... + def SetBinOrigin(self, _arg:float) -> None: ... + def SetBinSpacing(self, _arg:float) -> None: ... + def SetGenerateHistogramImage(self, _arg:int) -> None: ... + def SetHistogramImageScale(self, _arg:int) -> None: ... + def SetHistogramImageScaleToLinear(self) -> None: ... + def SetHistogramImageScaleToLog(self) -> None: ... + def SetHistogramImageScaleToSqrt(self) -> None: ... + @overload + def SetHistogramImageSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetHistogramImageSize(self, _arg:Sequence[int]) -> None: ... + def SetMaximumNumberOfBins(self, _arg:int) -> None: ... + def SetNumberOfBins(self, _arg:int) -> None: ... + def SetStencilConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetStencilData(self, stencil:'vtkImageStencilData') -> None: ... + +class vtkImageHistogramStatistics(vtkImageHistogram): + auto_range:'getset_descriptor' + auto_range_expansion_factors:'getset_descriptor' + auto_range_percentiles:'getset_descriptor' + maximum:'getset_descriptor' + mean:'getset_descriptor' + median:'getset_descriptor' + minimum:'getset_descriptor' + standard_deviation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAutoRange(self) -> Tuple[float, float]: ... + def GetAutoRangeExpansionFactors(self) -> Tuple[float, float]: ... + def GetAutoRangePercentiles(self) -> Tuple[float, float]: ... + def GetMaximum(self) -> float: ... + def GetMean(self) -> float: ... + def GetMedian(self) -> float: ... + def GetMinimum(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStandardDeviation(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageHistogramStatistics': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageHistogramStatistics': ... + @overload + def SetAutoRangeExpansionFactors(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetAutoRangeExpansionFactors(self, _arg:Sequence[float]) -> None: ... + @overload + def SetAutoRangePercentiles(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetAutoRangePercentiles(self, _arg:Sequence[float]) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingStencil.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingStencil.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..e8ceea4 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingStencil.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingStencil.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingStencil.pyi new file mode 100644 index 0000000..1177c4a --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkImagingStencil.pyi @@ -0,0 +1,217 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkImagingCore + +class vtkImageStencil(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + background_color:'getset_descriptor' + background_input:'getset_descriptor' + background_input_data:'getset_descriptor' + background_value:'getset_descriptor' + reverse_stencil:'getset_descriptor' + stencil:'getset_descriptor' + stencil_connection:'getset_descriptor' + stencil_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBackgroundColor(self) -> Tuple[float, float, float, float]: ... + def GetBackgroundInput(self) -> 'vtkImageData': ... + def GetBackgroundValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReverseStencil(self) -> int: ... + def GetStencil(self) -> 'vtkImageStencilData': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageStencil': ... + def ReverseStencilOff(self) -> None: ... + def ReverseStencilOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageStencil': ... + @overload + def SetBackgroundColor(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetBackgroundColor(self, _arg:Sequence[float]) -> None: ... + def SetBackgroundInputData(self, input:'vtkImageData') -> None: ... + def SetBackgroundValue(self, val:float) -> None: ... + def SetReverseStencil(self, _arg:int) -> None: ... + def SetStencilConnection(self, outputPort:'vtkAlgorithmOutput') -> None: ... + def SetStencilData(self, stencil:'vtkImageStencilData') -> None: ... + +class vtkImageStencilToImage(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + inside_value:'getset_descriptor' + output_scalar_type:'getset_descriptor' + outside_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInsideValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputScalarType(self) -> int: ... + def GetOutsideValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageStencilToImage': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageStencilToImage': ... + def SetInsideValue(self, _arg:float) -> None: ... + def SetOutputScalarType(self, _arg:int) -> None: ... + def SetOutputScalarTypeToChar(self) -> None: ... + def SetOutputScalarTypeToDouble(self) -> None: ... + def SetOutputScalarTypeToFloat(self) -> None: ... + def SetOutputScalarTypeToInt(self) -> None: ... + def SetOutputScalarTypeToLong(self) -> None: ... + def SetOutputScalarTypeToShort(self) -> None: ... + def SetOutputScalarTypeToUnsignedChar(self) -> None: ... + def SetOutputScalarTypeToUnsignedInt(self) -> None: ... + def SetOutputScalarTypeToUnsignedLong(self) -> None: ... + def SetOutputScalarTypeToUnsignedShort(self) -> None: ... + def SetOutsideValue(self, _arg:float) -> None: ... + +class vtkImageToImageStencil(vtkmodules.vtkImagingCore.vtkImageStencilAlgorithm): + input:'getset_descriptor' + input_data:'getset_descriptor' + lower_threshold:'getset_descriptor' + upper_threshold:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInput(self) -> 'vtkImageData': ... + def GetLowerThreshold(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUpperThreshold(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageToImageStencil': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageToImageStencil': ... + def SetInputData(self, input:'vtkImageData') -> None: ... + def SetLowerThreshold(self, _arg:float) -> None: ... + def SetUpperThreshold(self, _arg:float) -> None: ... + def ThresholdBetween(self, lower:float, upper:float) -> None: ... + def ThresholdByLower(self, thresh:float) -> None: ... + def ThresholdByUpper(self, thresh:float) -> None: ... + +class vtkImplicitFunctionToImageStencil(vtkmodules.vtkImagingCore.vtkImageStencilSource): + input:'getset_descriptor' + m_time:'getset_descriptor' + threshold:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInput(self) -> 'vtkImplicitFunction': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetThreshold(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitFunctionToImageStencil': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitFunctionToImageStencil': ... + def SetInput(self, __a:'vtkImplicitFunction') -> None: ... + def SetThreshold(self, _arg:float) -> None: ... + +class vtkLassoStencilSource(vtkmodules.vtkImagingCore.vtkImageStencilSource): + POLYGON:int + SPLINE:int + m_time:'getset_descriptor' + points:'getset_descriptor' + shape:'getset_descriptor' + slice_orientation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoints(self) -> 'vtkPoints': ... + def GetShape(self) -> int: ... + def GetShapeAsString(self) -> str: ... + def GetShapeMaxValue(self) -> int: ... + def GetShapeMinValue(self) -> int: ... + def GetSliceOrientation(self) -> int: ... + def GetSliceOrientationMaxValue(self) -> int: ... + def GetSliceOrientationMinValue(self) -> int: ... + def GetSlicePoints(self, i:int) -> 'vtkPoints': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLassoStencilSource': ... + def RemoveAllSlicePoints(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLassoStencilSource': ... + def SetPoints(self, points:'vtkPoints') -> None: ... + def SetShape(self, _arg:int) -> None: ... + def SetShapeToPolygon(self) -> None: ... + def SetShapeToSpline(self) -> None: ... + def SetSliceOrientation(self, _arg:int) -> None: ... + def SetSlicePoints(self, i:int, points:'vtkPoints') -> None: ... + +class vtkPolyDataToImageStencil(vtkmodules.vtkImagingCore.vtkImageStencilSource): + enable_smp:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetEnableSMP(self) -> bool: ... + def GetInput(self) -> 'vtkPolyData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTolerance(self) -> float: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyDataToImageStencil': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataToImageStencil': ... + def SetEnableSMP(self, _arg:bool) -> None: ... + def SetInputData(self, __a:'vtkPolyData') -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + +class vtkROIStencilSource(vtkmodules.vtkImagingCore.vtkImageStencilSource): + BOX:int + CYLINDERX:int + CYLINDERY:int + CYLINDERZ:int + ELLIPSOID:int + bounds:'getset_descriptor' + shape:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShape(self) -> int: ... + def GetShapeAsString(self) -> str: ... + def GetShapeMaxValue(self) -> int: ... + def GetShapeMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkROIStencilSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkROIStencilSource': ... + @overload + def SetBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetBounds(self, _arg:Sequence[float]) -> None: ... + def SetShape(self, _arg:int) -> None: ... + def SetShapeToBox(self) -> None: ... + def SetShapeToCylinderX(self) -> None: ... + def SetShapeToCylinderY(self) -> None: ... + def SetShapeToCylinderZ(self) -> None: ... + def SetShapeToEllipsoid(self) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkInfovisCore.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkInfovisCore.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..2acc15d Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkInfovisCore.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkInfovisCore.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkInfovisCore.pyi new file mode 100644 index 0000000..63aa619 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkInfovisCore.pyi @@ -0,0 +1,1099 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkAddMembershipArray(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + CELL_DATA:int + EDGE_DATA:int + FIELD_DATA:int + POINT_DATA:int + ROW_DATA:int + VERTEX_DATA:int + field_type:'getset_descriptor' + input_array_name:'getset_descriptor' + input_values:'getset_descriptor' + output_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFieldType(self) -> int: ... + def GetFieldTypeMaxValue(self) -> int: ... + def GetFieldTypeMinValue(self) -> int: ... + def GetInputArrayName(self) -> str: ... + def GetInputValues(self) -> 'vtkAbstractArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAddMembershipArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAddMembershipArray': ... + def SetFieldType(self, _arg:int) -> None: ... + def SetInputArrayName(self, _arg:str) -> None: ... + def SetInputValues(self, __a:'vtkAbstractArray') -> None: ... + def SetOutputArrayName(self, _arg:str) -> None: ... + +class vtkAdjacencyMatrixToEdgeTable(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + minimum_count:'getset_descriptor' + minimum_threshold:'getset_descriptor' + source_dimension:'getset_descriptor' + value_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMinimumCount(self) -> int: ... + def GetMinimumThreshold(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSourceDimension(self) -> int: ... + def GetValueArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAdjacencyMatrixToEdgeTable': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAdjacencyMatrixToEdgeTable': ... + def SetMinimumCount(self, _arg:int) -> None: ... + def SetMinimumThreshold(self, _arg:float) -> None: ... + def SetSourceDimension(self, _arg:int) -> None: ... + def SetValueArrayName(self, _arg:str) -> None: ... + +class vtkArrayNorm(vtkmodules.vtkCommonExecutionModel.vtkArrayDataAlgorithm): + dimension:'getset_descriptor' + invert:'getset_descriptor' + l:'getset_descriptor' + window:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDimension(self) -> int: ... + def GetInvert(self) -> int: ... + def GetL(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWindow(self) -> 'vtkArrayRange': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayNorm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayNorm': ... + def SetDimension(self, _arg:int) -> None: ... + def SetInvert(self, _arg:int) -> None: ... + def SetL(self, value:int) -> None: ... + def SetWindow(self, window:'vtkArrayRange') -> None: ... + +class vtkArrayToTable(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayToTable': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayToTable': ... + +class vtkCollapseGraph(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + graph_connection:'getset_descriptor' + selection_connection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCollapseGraph': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCollapseGraph': ... + def SetGraphConnection(self, __a:'vtkAlgorithmOutput') -> None: ... + def SetSelectionConnection(self, __a:'vtkAlgorithmOutput') -> None: ... + +class vtkCollapseVerticesByArray(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + allow_self_loops:'getset_descriptor' + count_edges_collapsed:'getset_descriptor' + count_vertices_collapsed:'getset_descriptor' + edges_collapsed_array:'getset_descriptor' + vertex_array:'getset_descriptor' + vertices_collapsed_array:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddAggregateEdgeArray(self, arrName:str) -> None: ... + def AllowSelfLoopsOff(self) -> None: ... + def AllowSelfLoopsOn(self) -> None: ... + def ClearAggregateEdgeArray(self) -> None: ... + def CountEdgesCollapsedOff(self) -> None: ... + def CountEdgesCollapsedOn(self) -> None: ... + def CountVerticesCollapsedOff(self) -> None: ... + def CountVerticesCollapsedOn(self) -> None: ... + def GetAllowSelfLoops(self) -> bool: ... + def GetCountEdgesCollapsed(self) -> bool: ... + def GetCountVerticesCollapsed(self) -> bool: ... + def GetEdgesCollapsedArray(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVertexArray(self) -> str: ... + def GetVerticesCollapsedArray(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCollapseVerticesByArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCollapseVerticesByArray': ... + def SetAllowSelfLoops(self, _arg:bool) -> None: ... + def SetCountEdgesCollapsed(self, _arg:bool) -> None: ... + def SetCountVerticesCollapsed(self, _arg:bool) -> None: ... + def SetEdgesCollapsedArray(self, _arg:str) -> None: ... + def SetVertexArray(self, _arg:str) -> None: ... + def SetVerticesCollapsedArray(self, _arg:str) -> None: ... + +class vtkContinuousScatterplot(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + epsilon:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetEpsilon(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContinuousScatterplot': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContinuousScatterplot': ... + def SetEpsilon(self, _arg:float) -> None: ... + def SetField1(self, fieldName:str, ResX:int) -> None: ... + def SetField2(self, fieldName:str, ResY:int) -> None: ... + +class vtkDotProductSimilarity(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + diagonal:'getset_descriptor' + first_second:'getset_descriptor' + lower_diagonal:'getset_descriptor' + maximum_count:'getset_descriptor' + minimum_count:'getset_descriptor' + minimum_threshold:'getset_descriptor' + second_first:'getset_descriptor' + upper_diagonal:'getset_descriptor' + vector_dimension:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDiagonal(self) -> int: ... + def GetFirstSecond(self) -> int: ... + def GetLowerDiagonal(self) -> int: ... + def GetMaximumCount(self) -> int: ... + def GetMinimumCount(self) -> int: ... + def GetMinimumThreshold(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSecondFirst(self) -> int: ... + def GetUpperDiagonal(self) -> int: ... + def GetVectorDimension(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDotProductSimilarity': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDotProductSimilarity': ... + def SetDiagonal(self, _arg:int) -> None: ... + def SetFirstSecond(self, _arg:int) -> None: ... + def SetLowerDiagonal(self, _arg:int) -> None: ... + def SetMaximumCount(self, _arg:int) -> None: ... + def SetMinimumCount(self, _arg:int) -> None: ... + def SetMinimumThreshold(self, _arg:float) -> None: ... + def SetSecondFirst(self, _arg:int) -> None: ... + def SetUpperDiagonal(self, _arg:int) -> None: ... + def SetVectorDimension(self, _arg:int) -> None: ... + +class vtkEdgeCenters(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + vertex_cells:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVertexCells(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEdgeCenters': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEdgeCenters': ... + def SetVertexCells(self, _arg:int) -> None: ... + def VertexCellsOff(self) -> None: ... + def VertexCellsOn(self) -> None: ... + +class vtkExpandSelectedGraph(vtkmodules.vtkCommonExecutionModel.vtkSelectionAlgorithm): + bfs_distance:'getset_descriptor' + domain:'getset_descriptor' + graph_connection:'getset_descriptor' + include_shortest_paths:'getset_descriptor' + use_domain:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetBFSDistance(self) -> int: ... + def GetDomain(self) -> str: ... + def GetIncludeShortestPaths(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseDomain(self) -> bool: ... + def IncludeShortestPathsOff(self) -> None: ... + def IncludeShortestPathsOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExpandSelectedGraph': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExpandSelectedGraph': ... + def SetBFSDistance(self, _arg:int) -> None: ... + def SetDomain(self, _arg:str) -> None: ... + def SetGraphConnection(self, in_:'vtkAlgorithmOutput') -> None: ... + def SetIncludeShortestPaths(self, _arg:bool) -> None: ... + def SetUseDomain(self, _arg:bool) -> None: ... + def UseDomainOff(self) -> None: ... + def UseDomainOn(self) -> None: ... + +class vtkExtractSelectedGraph(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + annotation_layers_connection:'getset_descriptor' + remove_isolated_vertices:'getset_descriptor' + selection_connection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRemoveIsolatedVertices(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractSelectedGraph': ... + def RemoveIsolatedVerticesOff(self) -> None: ... + def RemoveIsolatedVerticesOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractSelectedGraph': ... + def SetAnnotationLayersConnection(self, in_:'vtkAlgorithmOutput') -> None: ... + def SetRemoveIsolatedVertices(self, _arg:bool) -> None: ... + def SetSelectionConnection(self, in_:'vtkAlgorithmOutput') -> None: ... + +class vtkExtractSelectedTree(vtkmodules.vtkCommonExecutionModel.vtkTreeAlgorithm): + selection_connection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExtractSelectedTree': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExtractSelectedTree': ... + def SetSelectionConnection(self, in_:'vtkAlgorithmOutput') -> None: ... + +class vtkGenerateIndexArray(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + CELL_DATA:int + EDGE_DATA:int + POINT_DATA:int + ROW_DATA:int + VERTEX_DATA:int + array_name:'getset_descriptor' + field_type:'getset_descriptor' + pedigree_id:'getset_descriptor' + reference_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArrayName(self) -> str: ... + def GetFieldType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPedigreeID(self) -> int: ... + def GetReferenceArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenerateIndexArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenerateIndexArray': ... + def SetArrayName(self, _arg:str) -> None: ... + def SetFieldType(self, _arg:int) -> None: ... + def SetPedigreeID(self, _arg:int) -> None: ... + def SetReferenceArrayName(self, _arg:str) -> None: ... + +class vtkGraphHierarchicalBundleEdges(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + bundling_strength:'getset_descriptor' + direct_mapping:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DirectMappingOff(self) -> None: ... + def DirectMappingOn(self) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetBundlingStrength(self) -> float: ... + def GetBundlingStrengthMaxValue(self) -> float: ... + def GetBundlingStrengthMinValue(self) -> float: ... + def GetDirectMapping(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGraphHierarchicalBundleEdges': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraphHierarchicalBundleEdges': ... + def SetBundlingStrength(self, _arg:float) -> None: ... + def SetDirectMapping(self, _arg:bool) -> None: ... + +class vtkGroupLeafVertices(vtkmodules.vtkCommonExecutionModel.vtkTreeAlgorithm): + group_domain:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetGroupDomain(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGroupLeafVertices': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGroupLeafVertices': ... + def SetGroupDomain(self, _arg:str) -> None: ... + +class vtkKCoreDecomposition(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + check_input_graph:'getset_descriptor' + output_array_name:'getset_descriptor' + use_in_degree_neighbors:'getset_descriptor' + use_out_degree_neighbors:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CheckInputGraphOff(self) -> None: ... + def CheckInputGraphOn(self) -> None: ... + def GetCheckInputGraph(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseInDegreeNeighbors(self) -> bool: ... + def GetUseOutDegreeNeighbors(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkKCoreDecomposition': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkKCoreDecomposition': ... + def SetCheckInputGraph(self, _arg:bool) -> None: ... + def SetOutputArrayName(self, _arg:str) -> None: ... + def SetUseInDegreeNeighbors(self, _arg:bool) -> None: ... + def SetUseOutDegreeNeighbors(self, _arg:bool) -> None: ... + def UseInDegreeNeighborsOff(self) -> None: ... + def UseInDegreeNeighborsOn(self) -> None: ... + def UseOutDegreeNeighborsOff(self) -> None: ... + def UseOutDegreeNeighborsOn(self) -> None: ... + +class vtkMergeColumns(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + merged_column_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMergedColumnName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMergeColumns': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMergeColumns': ... + def SetMergedColumnName(self, _arg:str) -> None: ... + +class vtkMergeGraphs(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + edge_window:'getset_descriptor' + edge_window_array_name:'getset_descriptor' + use_edge_window:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ExtendGraph(self, g1:'vtkMutableGraphHelper', g2:'vtkGraph') -> int: ... + def GetEdgeWindow(self) -> float: ... + def GetEdgeWindowArrayName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseEdgeWindow(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMergeGraphs': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMergeGraphs': ... + def SetEdgeWindow(self, _arg:float) -> None: ... + def SetEdgeWindowArrayName(self, _arg:str) -> None: ... + def SetUseEdgeWindow(self, _arg:bool) -> None: ... + def UseEdgeWindowOff(self) -> None: ... + def UseEdgeWindowOn(self) -> None: ... + +class vtkMergeTables(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + first_table_prefix:'getset_descriptor' + merge_columns_by_name:'getset_descriptor' + prefix_all_but_merged:'getset_descriptor' + second_table_prefix:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFirstTablePrefix(self) -> str: ... + def GetMergeColumnsByName(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPrefixAllButMerged(self) -> bool: ... + def GetSecondTablePrefix(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MergeColumnsByNameOff(self) -> None: ... + def MergeColumnsByNameOn(self) -> None: ... + def NewInstance(self) -> 'vtkMergeTables': ... + def PrefixAllButMergedOff(self) -> None: ... + def PrefixAllButMergedOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMergeTables': ... + def SetFirstTablePrefix(self, _arg:str) -> None: ... + def SetMergeColumnsByName(self, _arg:bool) -> None: ... + def SetPrefixAllButMerged(self, _arg:bool) -> None: ... + def SetSecondTablePrefix(self, _arg:str) -> None: ... + +class vtkMutableGraphHelper(vtkmodules.vtkCommonCore.vtkObject): + graph:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddEdge(self, u:int, v:int) -> 'vtkEdgeType': ... + def AddGraphEdge(self, u:int, v:int) -> 'vtkGraphEdge': ... + def AddVertex(self) -> int: ... + def GetGraph(self) -> 'vtkGraph': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMutableGraphHelper': ... + def RemoveEdge(self, e:int) -> None: ... + def RemoveEdges(self, edges:'vtkIdTypeArray') -> None: ... + def RemoveVertex(self, v:int) -> None: ... + def RemoveVertices(self, verts:'vtkIdTypeArray') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMutableGraphHelper': ... + def SetGraph(self, g:'vtkGraph') -> None: ... + +class vtkNetworkHierarchy(vtkmodules.vtkCommonExecutionModel.vtkTreeAlgorithm): + ip_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetIPArrayName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkNetworkHierarchy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkNetworkHierarchy': ... + def SetIPArrayName(self, _arg:str) -> None: ... + +class vtkPipelineGraphSource(vtkmodules.vtkCommonExecutionModel.vtkDirectedGraphAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def AddSink(self, sink:'vtkObject') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPipelineGraphSource': ... + def RemoveSink(self, sink:'vtkObject') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPipelineGraphSource': ... + +class vtkPruneTreeFilter(vtkmodules.vtkCommonExecutionModel.vtkTreeAlgorithm): + parent_vertex:'getset_descriptor' + should_prune_parent_vertex:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParentVertex(self) -> int: ... + def GetShouldPruneParentVertex(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPruneTreeFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPruneTreeFilter': ... + def SetParentVertex(self, _arg:int) -> None: ... + def SetShouldPruneParentVertex(self, _arg:bool) -> None: ... + +class vtkRandomGraphSource(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + allow_parallel_edges:'getset_descriptor' + allow_self_loops:'getset_descriptor' + directed:'getset_descriptor' + edge_pedigree_id_array_name:'getset_descriptor' + edge_probability:'getset_descriptor' + edge_weight_array_name:'getset_descriptor' + generate_pedigree_ids:'getset_descriptor' + include_edge_weights:'getset_descriptor' + number_of_edges:'getset_descriptor' + number_of_edges_max_value:'getset_descriptor' + number_of_edges_min_value:'getset_descriptor' + number_of_vertices:'getset_descriptor' + number_of_vertices_max_value:'getset_descriptor' + number_of_vertices_min_value:'getset_descriptor' + seed:'getset_descriptor' + start_with_tree:'getset_descriptor' + use_edge_probability:'getset_descriptor' + vertex_pedigree_id_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllowParallelEdgesOff(self) -> None: ... + def AllowParallelEdgesOn(self) -> None: ... + def AllowSelfLoopsOff(self) -> None: ... + def AllowSelfLoopsOn(self) -> None: ... + def DirectedOff(self) -> None: ... + def DirectedOn(self) -> None: ... + def GeneratePedigreeIdsOff(self) -> None: ... + def GeneratePedigreeIdsOn(self) -> None: ... + def GetAllowParallelEdges(self) -> bool: ... + def GetAllowSelfLoops(self) -> bool: ... + def GetDirected(self) -> bool: ... + def GetEdgePedigreeIdArrayName(self) -> str: ... + def GetEdgeProbability(self) -> float: ... + def GetEdgeProbabilityMaxValue(self) -> float: ... + def GetEdgeProbabilityMinValue(self) -> float: ... + def GetEdgeWeightArrayName(self) -> str: ... + def GetGeneratePedigreeIds(self) -> bool: ... + def GetIncludeEdgeWeights(self) -> bool: ... + def GetNumberOfEdges(self) -> int: ... + def GetNumberOfEdgesMaxValue(self) -> int: ... + def GetNumberOfEdgesMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfVertices(self) -> int: ... + def GetNumberOfVerticesMaxValue(self) -> int: ... + def GetNumberOfVerticesMinValue(self) -> int: ... + def GetSeed(self) -> int: ... + def GetStartWithTree(self) -> bool: ... + def GetUseEdgeProbability(self) -> bool: ... + def GetVertexPedigreeIdArrayName(self) -> str: ... + def IncludeEdgeWeightsOff(self) -> None: ... + def IncludeEdgeWeightsOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRandomGraphSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRandomGraphSource': ... + def SetAllowParallelEdges(self, _arg:bool) -> None: ... + def SetAllowSelfLoops(self, _arg:bool) -> None: ... + def SetDirected(self, _arg:bool) -> None: ... + def SetEdgePedigreeIdArrayName(self, _arg:str) -> None: ... + def SetEdgeProbability(self, _arg:float) -> None: ... + def SetEdgeWeightArrayName(self, _arg:str) -> None: ... + def SetGeneratePedigreeIds(self, _arg:bool) -> None: ... + def SetIncludeEdgeWeights(self, _arg:bool) -> None: ... + def SetNumberOfEdges(self, _arg:int) -> None: ... + def SetNumberOfVertices(self, _arg:int) -> None: ... + def SetSeed(self, _arg:int) -> None: ... + def SetStartWithTree(self, _arg:bool) -> None: ... + def SetUseEdgeProbability(self, _arg:bool) -> None: ... + def SetVertexPedigreeIdArrayName(self, _arg:str) -> None: ... + def StartWithTreeOff(self) -> None: ... + def StartWithTreeOn(self) -> None: ... + def UseEdgeProbabilityOff(self) -> None: ... + def UseEdgeProbabilityOn(self) -> None: ... + +class vtkReduceTable(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + MEAN:int + MEDIAN:int + MODE:int + index_column:'getset_descriptor' + non_numerical_reduction_method:'getset_descriptor' + numerical_reduction_method:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetIndexColumn(self) -> int: ... + def GetNonNumericalReductionMethod(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumericalReductionMethod(self) -> int: ... + def GetReductionMethodForColumn(self, col:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkReduceTable': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkReduceTable': ... + def SetIndexColumn(self, _arg:int) -> None: ... + def SetNonNumericalReductionMethod(self, _arg:int) -> None: ... + def SetNumericalReductionMethod(self, _arg:int) -> None: ... + def SetReductionMethodForColumn(self, col:int, method:int) -> None: ... + +class vtkRemoveHiddenData(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRemoveHiddenData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRemoveHiddenData': ... + +class vtkRemoveIsolatedVertices(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRemoveIsolatedVertices': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRemoveIsolatedVertices': ... + +class vtkSparseArrayToTable(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + value_column:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValueColumn(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSparseArrayToTable': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSparseArrayToTable': ... + def SetValueColumn(self, _arg:str) -> None: ... + +class vtkStreamGraph(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + edge_window:'getset_descriptor' + edge_window_array_name:'getset_descriptor' + use_edge_window:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetEdgeWindow(self) -> float: ... + def GetEdgeWindowArrayName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseEdgeWindow(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStreamGraph': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStreamGraph': ... + def SetEdgeWindow(self, _arg:float) -> None: ... + def SetEdgeWindowArrayName(self, _arg:str) -> None: ... + def SetUseEdgeWindow(self, _arg:bool) -> None: ... + def UseEdgeWindowOff(self) -> None: ... + def UseEdgeWindowOn(self) -> None: ... + +class vtkStringToCategory(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + category_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCategoryArrayName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStringToCategory': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStringToCategory': ... + def SetCategoryArrayName(self, _arg:str) -> None: ... + +class vtkStringToNumeric(vtkmodules.vtkCommonExecutionModel.vtkDataObjectAlgorithm): + convert_cell_data:'getset_descriptor' + convert_edge_data:'getset_descriptor' + convert_field_data:'getset_descriptor' + convert_point_data:'getset_descriptor' + convert_row_data:'getset_descriptor' + convert_vertex_data:'getset_descriptor' + default_double_value:'getset_descriptor' + default_integer_value:'getset_descriptor' + force_double:'getset_descriptor' + trim_whitespace_prior_to_numeric_conversion:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConvertCellDataOff(self) -> None: ... + def ConvertCellDataOn(self) -> None: ... + def ConvertEdgeDataOff(self) -> None: ... + def ConvertEdgeDataOn(self) -> None: ... + def ConvertFieldDataOff(self) -> None: ... + def ConvertFieldDataOn(self) -> None: ... + def ConvertPointDataOff(self) -> None: ... + def ConvertPointDataOn(self) -> None: ... + def ConvertRowDataOff(self) -> None: ... + def ConvertRowDataOn(self) -> None: ... + def ConvertVertexDataOff(self) -> None: ... + def ConvertVertexDataOn(self) -> None: ... + def ForceDoubleOff(self) -> None: ... + def ForceDoubleOn(self) -> None: ... + def GetConvertCellData(self) -> bool: ... + def GetConvertEdgeData(self) -> bool: ... + def GetConvertFieldData(self) -> bool: ... + def GetConvertPointData(self) -> bool: ... + def GetConvertRowData(self) -> bool: ... + def GetConvertVertexData(self) -> bool: ... + def GetDefaultDoubleValue(self) -> float: ... + def GetDefaultIntegerValue(self) -> int: ... + def GetForceDouble(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTrimWhitespacePriorToNumericConversion(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStringToNumeric': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStringToNumeric': ... + def SetConvertCellData(self, _arg:bool) -> None: ... + def SetConvertEdgeData(self, b:bool) -> None: ... + def SetConvertFieldData(self, _arg:bool) -> None: ... + def SetConvertPointData(self, _arg:bool) -> None: ... + def SetConvertRowData(self, b:bool) -> None: ... + def SetConvertVertexData(self, b:bool) -> None: ... + def SetDefaultDoubleValue(self, _arg:float) -> None: ... + def SetDefaultIntegerValue(self, _arg:int) -> None: ... + def SetForceDouble(self, _arg:bool) -> None: ... + def SetTrimWhitespacePriorToNumericConversion(self, _arg:bool) -> None: ... + def TrimWhitespacePriorToNumericConversionOff(self) -> None: ... + def TrimWhitespacePriorToNumericConversionOn(self) -> None: ... + +class vtkTableToArray(vtkmodules.vtkCommonExecutionModel.vtkArrayDataAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def AddAllColumns(self) -> None: ... + @overload + def AddColumn(self, name:str) -> None: ... + @overload + def AddColumn(self, index:int) -> None: ... + def ClearColumns(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTableToArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTableToArray': ... + +class vtkTableToGraph(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + directed:'getset_descriptor' + link_graph:'getset_descriptor' + m_time:'getset_descriptor' + vertex_table_connection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddLinkEdge(self, column1:str, column2:str) -> None: ... + def AddLinkVertex(self, column:str, domain:str=..., hidden:int=0) -> None: ... + def ClearLinkEdges(self) -> None: ... + def ClearLinkVertices(self) -> None: ... + def DirectedOff(self) -> None: ... + def DirectedOn(self) -> None: ... + def GetDirected(self) -> bool: ... + def GetLinkGraph(self) -> 'vtkMutableDirectedGraph': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LinkColumnPath(self, column:'vtkStringArray', domain:'vtkStringArray'=..., hidden:'vtkBitArray'=...) -> None: ... + def NewInstance(self) -> 'vtkTableToGraph': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTableToGraph': ... + def SetDirected(self, _arg:bool) -> None: ... + def SetLinkGraph(self, g:'vtkMutableDirectedGraph') -> None: ... + def SetVertexTableConnection(self, in_:'vtkAlgorithmOutput') -> None: ... + +class vtkTableToSparseArray(vtkmodules.vtkCommonExecutionModel.vtkArrayDataAlgorithm): + output_extents:'getset_descriptor' + value_column:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddCoordinateColumn(self, name:str) -> None: ... + def ClearCoordinateColumns(self) -> None: ... + def ClearOutputExtents(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValueColumn(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTableToSparseArray': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTableToSparseArray': ... + def SetOutputExtents(self, extents:'vtkArrayExtents') -> None: ... + def SetValueColumn(self, name:str) -> None: ... + +class vtkTableToTreeFilter(vtkmodules.vtkCommonExecutionModel.vtkTreeAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTableToTreeFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTableToTreeFilter': ... + +class vtkThresholdGraph(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + lower_threshold:'getset_descriptor' + upper_threshold:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLowerThreshold(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUpperThreshold(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkThresholdGraph': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkThresholdGraph': ... + def SetLowerThreshold(self, _arg:float) -> None: ... + def SetUpperThreshold(self, _arg:float) -> None: ... + +class vtkThresholdTable(vtkmodules.vtkCommonExecutionModel.vtkTableAlgorithm): + ACCEPT_BETWEEN:int + ACCEPT_GREATER_THAN:int + ACCEPT_LESS_THAN:int + ACCEPT_OUTSIDE:int + max_value:'getset_descriptor' + min_value:'getset_descriptor' + mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaxValue(self) -> 'vtkVariant': ... + def GetMinValue(self) -> 'vtkVariant': ... + def GetMode(self) -> int: ... + def GetModeMaxValue(self) -> int: ... + def GetModeMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def IsValueAcceptable(self, value:'vtkVariant') -> bool: ... + def NewInstance(self) -> 'vtkThresholdTable': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkThresholdTable': ... + @overload + def SetMaxValue(self, v:'vtkVariant') -> None: ... + @overload + def SetMaxValue(self, v:float) -> None: ... + @overload + def SetMinValue(self, v:'vtkVariant') -> None: ... + @overload + def SetMinValue(self, v:float) -> None: ... + def SetMode(self, _arg:int) -> None: ... + @overload + def ThresholdBetween(self, lower:'vtkVariant', upper:'vtkVariant') -> None: ... + @overload + def ThresholdBetween(self, lower:float, upper:float) -> None: ... + +class vtkTransferAttributes(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + default_value:'getset_descriptor' + direct_mapping:'getset_descriptor' + source_array_name:'getset_descriptor' + source_field_type:'getset_descriptor' + target_array_name:'getset_descriptor' + target_field_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DirectMappingOff(self) -> None: ... + def DirectMappingOn(self) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetDefaultValue(self) -> 'vtkVariant': ... + def GetDirectMapping(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSourceArrayName(self) -> str: ... + def GetSourceFieldType(self) -> int: ... + def GetTargetArrayName(self) -> str: ... + def GetTargetFieldType(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTransferAttributes': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransferAttributes': ... + def SetDefaultValue(self, value:'vtkVariant') -> None: ... + def SetDirectMapping(self, _arg:bool) -> None: ... + def SetSourceArrayName(self, _arg:str) -> None: ... + def SetSourceFieldType(self, _arg:int) -> None: ... + def SetTargetArrayName(self, _arg:str) -> None: ... + def SetTargetFieldType(self, _arg:int) -> None: ... + +class vtkTransposeMatrix(vtkmodules.vtkCommonExecutionModel.vtkArrayDataAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTransposeMatrix': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransposeMatrix': ... + +class vtkTreeDifferenceFilter(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + comparison_array_is_vertex_data:'getset_descriptor' + comparison_array_name:'getset_descriptor' + id_array_name:'getset_descriptor' + output_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetComparisonArrayIsVertexData(self) -> bool: ... + def GetComparisonArrayName(self) -> str: ... + def GetIdArrayName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTreeDifferenceFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTreeDifferenceFilter': ... + def SetComparisonArrayIsVertexData(self, _arg:bool) -> None: ... + def SetComparisonArrayName(self, _arg:str) -> None: ... + def SetIdArrayName(self, _arg:str) -> None: ... + def SetOutputArrayName(self, _arg:str) -> None: ... + +class vtkTreeFieldAggregator(vtkmodules.vtkCommonExecutionModel.vtkTreeAlgorithm): + field:'getset_descriptor' + leaf_vertex_unit_size:'getset_descriptor' + log_scale:'getset_descriptor' + min_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetField(self) -> str: ... + def GetLeafVertexUnitSize(self) -> bool: ... + def GetLogScale(self) -> bool: ... + def GetMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LeafVertexUnitSizeOff(self) -> None: ... + def LeafVertexUnitSizeOn(self) -> None: ... + def LogScaleOff(self) -> None: ... + def LogScaleOn(self) -> None: ... + def NewInstance(self) -> 'vtkTreeFieldAggregator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTreeFieldAggregator': ... + def SetField(self, _arg:str) -> None: ... + def SetLeafVertexUnitSize(self, _arg:bool) -> None: ... + def SetLogScale(self, _arg:bool) -> None: ... + def SetMinValue(self, _arg:float) -> None: ... + +class vtkTreeLevelsFilter(vtkmodules.vtkCommonExecutionModel.vtkTreeAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTreeLevelsFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTreeLevelsFilter': ... + +class vtkVertexDegree(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + output_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVertexDegree': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVertexDegree': ... + def SetOutputArrayName(self, _arg:str) -> None: ... + +class vtkWordCloud(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + background_color_name:'getset_descriptor' + bw_mask:'getset_descriptor' + color_scheme_name:'getset_descriptor' + dpi:'getset_descriptor' + file_name:'getset_descriptor' + font_file_name:'getset_descriptor' + font_multiplier:'getset_descriptor' + gap:'getset_descriptor' + kept_words:'getset_descriptor' + mask_color_name:'getset_descriptor' + mask_file_name:'getset_descriptor' + max_font_size:'getset_descriptor' + min_font_size:'getset_descriptor' + min_frequency:'getset_descriptor' + orientations:'getset_descriptor' + skipped_words:'getset_descriptor' + stop_list_file_name:'getset_descriptor' + stopped_words:'getset_descriptor' + title:'getset_descriptor' + word_color_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddOrientation(self, arg:float) -> None: ... + def AddStopWord(self, word:str) -> None: ... + def ClearStopWords(self) -> None: ... + def GetBWMask(self) -> bool: ... + def GetBackgroundColorName(self) -> str: ... + def GetColorSchemeName(self) -> str: ... + def GetDPI(self) -> int: ... + def GetFileName(self) -> str: ... + def GetFontFileName(self) -> str: ... + def GetFontMultiplier(self) -> int: ... + def GetGap(self) -> int: ... + def GetKeptWords(self) -> Tuple[str, str]: ... + def GetMaskColorName(self) -> str: ... + def GetMaskFileName(self) -> str: ... + def GetMaxFontSize(self) -> int: ... + def GetMinFontSize(self) -> int: ... + def GetMinFrequency(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientations(self) -> Tuple[float, float]: ... + def GetSkippedWords(self) -> Tuple[str, str]: ... + def GetStopListFileName(self) -> str: ... + def GetStoppedWords(self) -> Tuple[str, str]: ... + def GetTitle(self) -> str: ... + def GetWordColorName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWordCloud': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWordCloud': ... + def SetBWMask(self, arg:bool) -> None: ... + def SetBackgroundColorName(self, arg:str) -> None: ... + def SetColorSchemeName(self, arg:str) -> None: ... + def SetDPI(self, _arg:int) -> None: ... + def SetFileName(self, arg:str) -> None: ... + def SetFontFileName(self, arg:str) -> None: ... + def SetFontMultiplier(self, _arg:int) -> None: ... + def SetGap(self, _arg:int) -> None: ... + def SetMaskColorName(self, arg:str) -> None: ... + def SetMaskFileName(self, arg:str) -> None: ... + def SetMaxFontSize(self, _arg:int) -> None: ... + def SetMinFontSize(self, _arg:int) -> None: ... + def SetMinFrequency(self, _arg:int) -> None: ... + def SetOrientations(self, arg:MutableSequence[float]) -> None: ... + def SetStopListFileName(self, arg:str) -> None: ... + def SetTitle(self, arg:str) -> None: ... + def SetWordColorName(self, arg:str) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkInfovisLayout.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkInfovisLayout.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..8b84cc2 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkInfovisLayout.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkInfovisLayout.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkInfovisLayout.pyi new file mode 100644 index 0000000..25593c5 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkInfovisLayout.pyi @@ -0,0 +1,1220 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkEdgeLayoutStrategy(vtkmodules.vtkCommonCore.vtkObject): + edge_weight_array_name:'getset_descriptor' + graph:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetEdgeWeightArrayName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkEdgeLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEdgeLayoutStrategy': ... + def SetEdgeWeightArrayName(self, _arg:str) -> None: ... + def SetGraph(self, graph:'vtkGraph') -> None: ... + +class vtkArcParallelEdgeStrategy(vtkEdgeLayoutStrategy): + number_of_subdivisions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSubdivisions(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkArcParallelEdgeStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArcParallelEdgeStrategy': ... + def SetNumberOfSubdivisions(self, _arg:int) -> None: ... + +class vtkAreaLayout(vtkmodules.vtkCommonExecutionModel.vtkTreeAlgorithm): + area_array_name:'getset_descriptor' + edge_routing_points:'getset_descriptor' + layout_strategy:'getset_descriptor' + m_time:'getset_descriptor' + size_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def EdgeRoutingPointsOff(self) -> None: ... + def EdgeRoutingPointsOn(self) -> None: ... + def FindVertex(self, pnt:MutableSequence[float]) -> int: ... + def GetAreaArrayName(self) -> str: ... + def GetBoundingArea(self, id:int, sinfo:MutableSequence[float]) -> None: ... + def GetEdgeRoutingPoints(self) -> bool: ... + def GetLayoutStrategy(self) -> 'vtkAreaLayoutStrategy': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAreaLayout': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAreaLayout': ... + def SetAreaArrayName(self, _arg:str) -> None: ... + def SetEdgeRoutingPoints(self, _arg:bool) -> None: ... + def SetLayoutStrategy(self, strategy:'vtkAreaLayoutStrategy') -> None: ... + def SetSizeArrayName(self, name:str) -> None: ... + +class vtkAreaLayoutStrategy(vtkmodules.vtkCommonCore.vtkObject): + shrink_percentage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FindVertex(self, tree:'vtkTree', array:'vtkDataArray', pnt:MutableSequence[float]) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShrinkPercentage(self) -> float: ... + def GetShrinkPercentageMaxValue(self) -> float: ... + def GetShrinkPercentageMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self, inputTree:'vtkTree', areaArray:'vtkDataArray', sizeArray:'vtkDataArray') -> None: ... + def LayoutEdgePoints(self, inputTree:'vtkTree', areaArray:'vtkDataArray', sizeArray:'vtkDataArray', edgeRoutingTree:'vtkTree') -> None: ... + def NewInstance(self) -> 'vtkAreaLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAreaLayoutStrategy': ... + def SetShrinkPercentage(self, _arg:float) -> None: ... + +class vtkAssignCoordinates(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + jitter:'getset_descriptor' + x_coord_array_name:'getset_descriptor' + y_coord_array_name:'getset_descriptor' + z_coord_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetXCoordArrayName(self) -> str: ... + def GetYCoordArrayName(self) -> str: ... + def GetZCoordArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAssignCoordinates': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAssignCoordinates': ... + def SetJitter(self, _arg:bool) -> None: ... + def SetXCoordArrayName(self, _arg:str) -> None: ... + def SetYCoordArrayName(self, _arg:str) -> None: ... + def SetZCoordArrayName(self, _arg:str) -> None: ... + +class vtkGraphLayoutStrategy(vtkmodules.vtkCommonCore.vtkObject): + edge_weight_field:'getset_descriptor' + graph:'getset_descriptor' + weight_edges:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetEdgeWeightField(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWeightEdges(self) -> bool: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsLayoutComplete(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkGraphLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraphLayoutStrategy': ... + def SetEdgeWeightField(self, field:str) -> None: ... + def SetGraph(self, graph:'vtkGraph') -> None: ... + def SetWeightEdges(self, state:bool) -> None: ... + +class vtkAssignCoordinatesLayoutStrategy(vtkGraphLayoutStrategy): + x_coord_array_name:'getset_descriptor' + y_coord_array_name:'getset_descriptor' + z_coord_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetXCoordArrayName(self) -> str: ... + def GetYCoordArrayName(self) -> str: ... + def GetZCoordArrayName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkAssignCoordinatesLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAssignCoordinatesLayoutStrategy': ... + def SetXCoordArrayName(self, name:str) -> None: ... + def SetYCoordArrayName(self, name:str) -> None: ... + def SetZCoordArrayName(self, name:str) -> None: ... + +class vtkAttributeClustering2DLayoutStrategy(vtkGraphLayoutStrategy): + cool_down_rate:'getset_descriptor' + initial_temperature:'getset_descriptor' + iterations_per_layout:'getset_descriptor' + max_number_of_iterations:'getset_descriptor' + random_seed:'getset_descriptor' + rest_distance:'getset_descriptor' + vertex_attribute:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCoolDownRate(self) -> float: ... + def GetCoolDownRateMaxValue(self) -> float: ... + def GetCoolDownRateMinValue(self) -> float: ... + def GetInitialTemperature(self) -> float: ... + def GetInitialTemperatureMaxValue(self) -> float: ... + def GetInitialTemperatureMinValue(self) -> float: ... + def GetIterationsPerLayout(self) -> int: ... + def GetIterationsPerLayoutMaxValue(self) -> int: ... + def GetIterationsPerLayoutMinValue(self) -> int: ... + def GetMaxNumberOfIterations(self) -> int: ... + def GetMaxNumberOfIterationsMaxValue(self) -> int: ... + def GetMaxNumberOfIterationsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRandomSeed(self) -> int: ... + def GetRandomSeedMaxValue(self) -> int: ... + def GetRandomSeedMinValue(self) -> int: ... + def GetRestDistance(self) -> float: ... + def GetVertexAttribute(self) -> str: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsLayoutComplete(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkAttributeClustering2DLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAttributeClustering2DLayoutStrategy': ... + def SetCoolDownRate(self, _arg:float) -> None: ... + def SetInitialTemperature(self, _arg:float) -> None: ... + def SetIterationsPerLayout(self, _arg:int) -> None: ... + def SetMaxNumberOfIterations(self, _arg:int) -> None: ... + def SetRandomSeed(self, _arg:int) -> None: ... + def SetRestDistance(self, _arg:float) -> None: ... + def SetVertexAttribute(self, __a:str) -> None: ... + +class vtkTreeMapLayoutStrategy(vtkAreaLayoutStrategy): + def __init__(self, **properties:Any) -> None: ... + def FindVertex(self, tree:'vtkTree', areaArray:'vtkDataArray', pnt:MutableSequence[float]) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTreeMapLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTreeMapLayoutStrategy': ... + +class vtkBoxLayoutStrategy(vtkTreeMapLayoutStrategy): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self, inputTree:'vtkTree', coordsArray:'vtkDataArray', sizeArray:'vtkDataArray') -> None: ... + def NewInstance(self) -> 'vtkBoxLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBoxLayoutStrategy': ... + +class vtkCirclePackLayoutStrategy(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self, inputTree:'vtkTree', areaArray:'vtkDataArray', sizeArray:'vtkDataArray') -> None: ... + def NewInstance(self) -> 'vtkCirclePackLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCirclePackLayoutStrategy': ... + +class vtkCirclePackFrontChainLayoutStrategy(vtkCirclePackLayoutStrategy): + height:'getset_descriptor' + width:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetHeight(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWidth(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self, inputTree:'vtkTree', areaArray:'vtkDataArray', sizeArray:'vtkDataArray') -> None: ... + def NewInstance(self) -> 'vtkCirclePackFrontChainLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCirclePackFrontChainLayoutStrategy': ... + def SetHeight(self, _arg:int) -> None: ... + def SetWidth(self, _arg:int) -> None: ... + +class vtkCirclePackLayout(vtkmodules.vtkCommonExecutionModel.vtkTreeAlgorithm): + circles_field_name:'getset_descriptor' + layout_strategy:'getset_descriptor' + m_time:'getset_descriptor' + size_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FindVertex(self, pnt:MutableSequence[float], cinfo:MutableSequence[float]=...) -> int: ... + def GetBoundingCircle(self, id:int, cinfo:MutableSequence[float]) -> None: ... + def GetCirclesFieldName(self) -> str: ... + def GetLayoutStrategy(self) -> 'vtkCirclePackLayoutStrategy': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCirclePackLayout': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCirclePackLayout': ... + def SetCirclesFieldName(self, _arg:str) -> None: ... + def SetLayoutStrategy(self, strategy:'vtkCirclePackLayoutStrategy') -> None: ... + def SetSizeArrayName(self, name:str) -> None: ... + +class vtkCirclePackToPolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + circles_array_name:'getset_descriptor' + resolution:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetResolution(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCirclePackToPolyData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCirclePackToPolyData': ... + def SetCirclesArrayName(self, name:str) -> None: ... + def SetResolution(self, _arg:int) -> None: ... + +class vtkCircularLayoutStrategy(vtkGraphLayoutStrategy): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkCircularLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCircularLayoutStrategy': ... + +class vtkClustering2DLayoutStrategy(vtkGraphLayoutStrategy): + cool_down_rate:'getset_descriptor' + initial_temperature:'getset_descriptor' + iterations_per_layout:'getset_descriptor' + max_number_of_iterations:'getset_descriptor' + random_seed:'getset_descriptor' + rest_distance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCoolDownRate(self) -> float: ... + def GetCoolDownRateMaxValue(self) -> float: ... + def GetCoolDownRateMinValue(self) -> float: ... + def GetInitialTemperature(self) -> float: ... + def GetInitialTemperatureMaxValue(self) -> float: ... + def GetInitialTemperatureMinValue(self) -> float: ... + def GetIterationsPerLayout(self) -> int: ... + def GetIterationsPerLayoutMaxValue(self) -> int: ... + def GetIterationsPerLayoutMinValue(self) -> int: ... + def GetMaxNumberOfIterations(self) -> int: ... + def GetMaxNumberOfIterationsMaxValue(self) -> int: ... + def GetMaxNumberOfIterationsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRandomSeed(self) -> int: ... + def GetRandomSeedMaxValue(self) -> int: ... + def GetRandomSeedMinValue(self) -> int: ... + def GetRestDistance(self) -> float: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsLayoutComplete(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkClustering2DLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkClustering2DLayoutStrategy': ... + def SetCoolDownRate(self, _arg:float) -> None: ... + def SetInitialTemperature(self, _arg:float) -> None: ... + def SetIterationsPerLayout(self, _arg:int) -> None: ... + def SetMaxNumberOfIterations(self, _arg:int) -> None: ... + def SetRandomSeed(self, _arg:int) -> None: ... + def SetRestDistance(self, _arg:float) -> None: ... + +class vtkCommunity2DLayoutStrategy(vtkGraphLayoutStrategy): + community_array_name:'getset_descriptor' + community_strength:'getset_descriptor' + cool_down_rate:'getset_descriptor' + initial_temperature:'getset_descriptor' + iterations_per_layout:'getset_descriptor' + max_number_of_iterations:'getset_descriptor' + random_seed:'getset_descriptor' + rest_distance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCommunityArrayName(self) -> str: ... + def GetCommunityStrength(self) -> float: ... + def GetCommunityStrengthMaxValue(self) -> float: ... + def GetCommunityStrengthMinValue(self) -> float: ... + def GetCoolDownRate(self) -> float: ... + def GetCoolDownRateMaxValue(self) -> float: ... + def GetCoolDownRateMinValue(self) -> float: ... + def GetInitialTemperature(self) -> float: ... + def GetInitialTemperatureMaxValue(self) -> float: ... + def GetInitialTemperatureMinValue(self) -> float: ... + def GetIterationsPerLayout(self) -> int: ... + def GetIterationsPerLayoutMaxValue(self) -> int: ... + def GetIterationsPerLayoutMinValue(self) -> int: ... + def GetMaxNumberOfIterations(self) -> int: ... + def GetMaxNumberOfIterationsMaxValue(self) -> int: ... + def GetMaxNumberOfIterationsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRandomSeed(self) -> int: ... + def GetRandomSeedMaxValue(self) -> int: ... + def GetRandomSeedMinValue(self) -> int: ... + def GetRestDistance(self) -> float: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsLayoutComplete(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkCommunity2DLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCommunity2DLayoutStrategy': ... + def SetCommunityArrayName(self, _arg:str) -> None: ... + def SetCommunityStrength(self, _arg:float) -> None: ... + def SetCoolDownRate(self, _arg:float) -> None: ... + def SetInitialTemperature(self, _arg:float) -> None: ... + def SetIterationsPerLayout(self, _arg:int) -> None: ... + def SetMaxNumberOfIterations(self, _arg:int) -> None: ... + def SetRandomSeed(self, _arg:int) -> None: ... + def SetRestDistance(self, _arg:float) -> None: ... + +class vtkConeLayoutStrategy(vtkGraphLayoutStrategy): + compactness:'getset_descriptor' + compression:'getset_descriptor' + spacing:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CompressionOff(self) -> None: ... + def CompressionOn(self) -> None: ... + def GetCompactness(self) -> float: ... + def GetCompression(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSpacing(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkConeLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConeLayoutStrategy': ... + def SetCompactness(self, _arg:float) -> None: ... + def SetCompression(self, _arg:int) -> None: ... + def SetSpacing(self, _arg:float) -> None: ... + +class vtkConstrained2DLayoutStrategy(vtkGraphLayoutStrategy): + cool_down_rate:'getset_descriptor' + initial_temperature:'getset_descriptor' + input_array_name:'getset_descriptor' + iterations_per_layout:'getset_descriptor' + max_number_of_iterations:'getset_descriptor' + random_seed:'getset_descriptor' + rest_distance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCoolDownRate(self) -> float: ... + def GetCoolDownRateMaxValue(self) -> float: ... + def GetCoolDownRateMinValue(self) -> float: ... + def GetInitialTemperature(self) -> float: ... + def GetInitialTemperatureMaxValue(self) -> float: ... + def GetInitialTemperatureMinValue(self) -> float: ... + def GetInputArrayName(self) -> str: ... + def GetIterationsPerLayout(self) -> int: ... + def GetIterationsPerLayoutMaxValue(self) -> int: ... + def GetIterationsPerLayoutMinValue(self) -> int: ... + def GetMaxNumberOfIterations(self) -> int: ... + def GetMaxNumberOfIterationsMaxValue(self) -> int: ... + def GetMaxNumberOfIterationsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRandomSeed(self) -> int: ... + def GetRandomSeedMaxValue(self) -> int: ... + def GetRandomSeedMinValue(self) -> int: ... + def GetRestDistance(self) -> float: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsLayoutComplete(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkConstrained2DLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConstrained2DLayoutStrategy': ... + def SetCoolDownRate(self, _arg:float) -> None: ... + def SetInitialTemperature(self, _arg:float) -> None: ... + def SetInputArrayName(self, _arg:str) -> None: ... + def SetIterationsPerLayout(self, _arg:int) -> None: ... + def SetMaxNumberOfIterations(self, _arg:int) -> None: ... + def SetRandomSeed(self, _arg:int) -> None: ... + def SetRestDistance(self, _arg:float) -> None: ... + +class vtkCosmicTreeLayoutStrategy(vtkGraphLayoutStrategy): + layout_depth:'getset_descriptor' + layout_root:'getset_descriptor' + node_size_array_name:'getset_descriptor' + size_leaf_nodes_only:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLayoutDepth(self) -> int: ... + def GetLayoutRoot(self) -> int: ... + def GetNodeSizeArrayName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSizeLeafNodesOnly(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkCosmicTreeLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCosmicTreeLayoutStrategy': ... + def SetLayoutDepth(self, _arg:int) -> None: ... + def SetLayoutRoot(self, _arg:int) -> None: ... + def SetNodeSizeArrayName(self, _arg:str) -> None: ... + def SetSizeLeafNodesOnly(self, _arg:int) -> None: ... + def SizeLeafNodesOnlyOff(self) -> None: ... + def SizeLeafNodesOnlyOn(self) -> None: ... + +class vtkEdgeLayout(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + layout_strategy:'getset_descriptor' + m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLayoutStrategy(self) -> 'vtkEdgeLayoutStrategy': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEdgeLayout': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEdgeLayout': ... + def SetLayoutStrategy(self, strategy:'vtkEdgeLayoutStrategy') -> None: ... + +class vtkFast2DLayoutStrategy(vtkGraphLayoutStrategy): + cool_down_rate:'getset_descriptor' + initial_temperature:'getset_descriptor' + iterations_per_layout:'getset_descriptor' + max_number_of_iterations:'getset_descriptor' + random_seed:'getset_descriptor' + rest_distance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCoolDownRate(self) -> float: ... + def GetCoolDownRateMaxValue(self) -> float: ... + def GetCoolDownRateMinValue(self) -> float: ... + def GetInitialTemperature(self) -> float: ... + def GetInitialTemperatureMaxValue(self) -> float: ... + def GetInitialTemperatureMinValue(self) -> float: ... + def GetIterationsPerLayout(self) -> int: ... + def GetIterationsPerLayoutMaxValue(self) -> int: ... + def GetIterationsPerLayoutMinValue(self) -> int: ... + def GetMaxNumberOfIterations(self) -> int: ... + def GetMaxNumberOfIterationsMaxValue(self) -> int: ... + def GetMaxNumberOfIterationsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRandomSeed(self) -> int: ... + def GetRandomSeedMaxValue(self) -> int: ... + def GetRandomSeedMinValue(self) -> int: ... + def GetRestDistance(self) -> float: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsLayoutComplete(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkFast2DLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFast2DLayoutStrategy': ... + def SetCoolDownRate(self, _arg:float) -> None: ... + def SetInitialTemperature(self, _arg:float) -> None: ... + def SetIterationsPerLayout(self, _arg:int) -> None: ... + def SetMaxNumberOfIterations(self, _arg:int) -> None: ... + def SetRandomSeed(self, _arg:int) -> None: ... + def SetRestDistance(self, _arg:float) -> None: ... + +class vtkForceDirectedLayoutStrategy(vtkGraphLayoutStrategy): + automatic_bounds_computation:'getset_descriptor' + cool_down_rate:'getset_descriptor' + graph_bounds:'getset_descriptor' + initial_temperature:'getset_descriptor' + iterations_per_layout:'getset_descriptor' + max_number_of_iterations:'getset_descriptor' + random_initial_points:'getset_descriptor' + random_seed:'getset_descriptor' + three_dimensional_layout:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutomaticBoundsComputationOff(self) -> None: ... + def AutomaticBoundsComputationOn(self) -> None: ... + def GetAutomaticBoundsComputation(self) -> int: ... + def GetCoolDownRate(self) -> float: ... + def GetCoolDownRateMaxValue(self) -> float: ... + def GetCoolDownRateMinValue(self) -> float: ... + def GetGraphBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetInitialTemperature(self) -> float: ... + def GetInitialTemperatureMaxValue(self) -> float: ... + def GetInitialTemperatureMinValue(self) -> float: ... + def GetIterationsPerLayout(self) -> int: ... + def GetIterationsPerLayoutMaxValue(self) -> int: ... + def GetIterationsPerLayoutMinValue(self) -> int: ... + def GetMaxNumberOfIterations(self) -> int: ... + def GetMaxNumberOfIterationsMaxValue(self) -> int: ... + def GetMaxNumberOfIterationsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRandomInitialPoints(self) -> int: ... + def GetRandomSeed(self) -> int: ... + def GetRandomSeedMaxValue(self) -> int: ... + def GetRandomSeedMinValue(self) -> int: ... + def GetThreeDimensionalLayout(self) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsLayoutComplete(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkForceDirectedLayoutStrategy': ... + def RandomInitialPointsOff(self) -> None: ... + def RandomInitialPointsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkForceDirectedLayoutStrategy': ... + def SetAutomaticBoundsComputation(self, _arg:int) -> None: ... + def SetCoolDownRate(self, _arg:float) -> None: ... + @overload + def SetGraphBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetGraphBounds(self, _arg:Sequence[float]) -> None: ... + def SetInitialTemperature(self, _arg:float) -> None: ... + def SetIterationsPerLayout(self, _arg:int) -> None: ... + def SetMaxNumberOfIterations(self, _arg:int) -> None: ... + def SetRandomInitialPoints(self, _arg:int) -> None: ... + def SetRandomSeed(self, _arg:int) -> None: ... + def SetThreeDimensionalLayout(self, _arg:int) -> None: ... + def ThreeDimensionalLayoutOff(self) -> None: ... + def ThreeDimensionalLayoutOn(self) -> None: ... + +class vtkGeoEdgeStrategy(vtkEdgeLayoutStrategy): + explode_factor:'getset_descriptor' + globe_radius:'getset_descriptor' + number_of_subdivisions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetExplodeFactor(self) -> float: ... + def GetGlobeRadius(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSubdivisions(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkGeoEdgeStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGeoEdgeStrategy': ... + def SetExplodeFactor(self, _arg:float) -> None: ... + def SetGlobeRadius(self, _arg:float) -> None: ... + def SetNumberOfSubdivisions(self, _arg:int) -> None: ... + +class vtkGeoMath(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def DistanceSquared(pt0:MutableSequence[float], pt1:MutableSequence[float]) -> float: ... + @staticmethod + def EarthRadiusMeters() -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def LongLatAltToRect(longLatAlt:MutableSequence[float], rect:MutableSequence[float]) -> None: ... + def NewInstance(self) -> 'vtkGeoMath': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGeoMath': ... + +class vtkGraphLayout(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + layout_strategy:'getset_descriptor' + m_time:'getset_descriptor' + transform:'getset_descriptor' + use_transform:'getset_descriptor' + z_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLayoutStrategy(self) -> 'vtkGraphLayoutStrategy': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTransform(self) -> 'vtkAbstractTransform': ... + def GetUseTransform(self) -> bool: ... + def GetZRange(self) -> float: ... + def IsA(self, type:str) -> int: ... + def IsLayoutComplete(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGraphLayout': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraphLayout': ... + def SetLayoutStrategy(self, strategy:'vtkGraphLayoutStrategy') -> None: ... + def SetTransform(self, t:'vtkAbstractTransform') -> None: ... + def SetUseTransform(self, _arg:bool) -> None: ... + def SetZRange(self, _arg:float) -> None: ... + def UseTransformOff(self) -> None: ... + def UseTransformOn(self) -> None: ... + +class vtkIncrementalForceLayout(vtkmodules.vtkCommonCore.vtkObject): + alpha:'getset_descriptor' + charge:'getset_descriptor' + distance:'getset_descriptor' + fixed:'getset_descriptor' + friction:'getset_descriptor' + graph:'getset_descriptor' + gravity:'getset_descriptor' + gravity_point:'getset_descriptor' + strength:'getset_descriptor' + theta:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAlpha(self) -> float: ... + def GetCharge(self) -> float: ... + def GetDistance(self) -> float: ... + def GetFixed(self) -> int: ... + def GetFriction(self) -> float: ... + def GetGraph(self) -> 'vtkGraph': ... + def GetGravity(self) -> float: ... + def GetGravityPoint(self) -> 'vtkVector2f': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStrength(self) -> float: ... + def GetTheta(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkIncrementalForceLayout': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIncrementalForceLayout': ... + def SetAlpha(self, _arg:float) -> None: ... + def SetCharge(self, _arg:float) -> None: ... + def SetDistance(self, _arg:float) -> None: ... + def SetFixed(self, fixed:int) -> None: ... + def SetFriction(self, _arg:float) -> None: ... + def SetGraph(self, g:'vtkGraph') -> None: ... + def SetGravity(self, _arg:float) -> None: ... + def SetGravityPoint(self, point:'vtkVector2f') -> None: ... + def SetStrength(self, _arg:float) -> None: ... + def SetTheta(self, _arg:float) -> None: ... + def UpdatePositions(self) -> None: ... + +class vtkKCoreLayout(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + cartesian:'getset_descriptor' + cartesian_coords_x_array_name:'getset_descriptor' + cartesian_coords_y_array_name:'getset_descriptor' + epsilon:'getset_descriptor' + graph_connection:'getset_descriptor' + k_core_label_array_name:'getset_descriptor' + polar:'getset_descriptor' + polar_coords_angle_array_name:'getset_descriptor' + polar_coords_radius_array_name:'getset_descriptor' + unit_radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CartesianOff(self) -> None: ... + def CartesianOn(self) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetCartesian(self) -> bool: ... + def GetCartesianCoordsXArrayName(self) -> str: ... + def GetCartesianCoordsYArrayName(self) -> str: ... + def GetEpsilon(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPolar(self) -> bool: ... + def GetPolarCoordsAngleArrayName(self) -> str: ... + def GetPolarCoordsRadiusArrayName(self) -> str: ... + def GetUnitRadius(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkKCoreLayout': ... + def PolarOff(self) -> None: ... + def PolarOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkKCoreLayout': ... + def SetCartesian(self, _arg:bool) -> None: ... + def SetCartesianCoordsXArrayName(self, _arg:str) -> None: ... + def SetCartesianCoordsYArrayName(self, _arg:str) -> None: ... + def SetEpsilon(self, _arg:float) -> None: ... + def SetGraphConnection(self, __a:'vtkAlgorithmOutput') -> None: ... + def SetKCoreLabelArrayName(self, _arg:str) -> None: ... + def SetPolar(self, _arg:bool) -> None: ... + def SetPolarCoordsAngleArrayName(self, _arg:str) -> None: ... + def SetPolarCoordsRadiusArrayName(self, _arg:str) -> None: ... + def SetUnitRadius(self, _arg:float) -> None: ... + +class vtkPassThroughEdgeStrategy(vtkEdgeLayoutStrategy): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkPassThroughEdgeStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPassThroughEdgeStrategy': ... + +class vtkPassThroughLayoutStrategy(vtkGraphLayoutStrategy): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsLayoutComplete(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkPassThroughLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPassThroughLayoutStrategy': ... + +class vtkPerturbCoincidentVertices(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + perturb_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPerturbFactor(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPerturbCoincidentVertices': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPerturbCoincidentVertices': ... + def SetPerturbFactor(self, _arg:float) -> None: ... + +class vtkRandomLayoutStrategy(vtkGraphLayoutStrategy): + automatic_bounds_computation:'getset_descriptor' + graph:'getset_descriptor' + graph_bounds:'getset_descriptor' + random_seed:'getset_descriptor' + three_dimensional_layout:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutomaticBoundsComputationOff(self) -> None: ... + def AutomaticBoundsComputationOn(self) -> None: ... + def GetAutomaticBoundsComputation(self) -> int: ... + def GetGraphBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRandomSeed(self) -> int: ... + def GetRandomSeedMaxValue(self) -> int: ... + def GetRandomSeedMinValue(self) -> int: ... + def GetThreeDimensionalLayout(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkRandomLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRandomLayoutStrategy': ... + def SetAutomaticBoundsComputation(self, _arg:int) -> None: ... + def SetGraph(self, graph:'vtkGraph') -> None: ... + @overload + def SetGraphBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetGraphBounds(self, _arg:Sequence[float]) -> None: ... + def SetRandomSeed(self, _arg:int) -> None: ... + def SetThreeDimensionalLayout(self, _arg:int) -> None: ... + def ThreeDimensionalLayoutOff(self) -> None: ... + def ThreeDimensionalLayoutOn(self) -> None: ... + +class vtkSimple2DLayoutStrategy(vtkGraphLayoutStrategy): + cool_down_rate:'getset_descriptor' + initial_temperature:'getset_descriptor' + iterations_per_layout:'getset_descriptor' + jitter:'getset_descriptor' + max_number_of_iterations:'getset_descriptor' + random_seed:'getset_descriptor' + rest_distance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCoolDownRate(self) -> float: ... + def GetCoolDownRateMaxValue(self) -> float: ... + def GetCoolDownRateMinValue(self) -> float: ... + def GetInitialTemperature(self) -> float: ... + def GetInitialTemperatureMaxValue(self) -> float: ... + def GetInitialTemperatureMinValue(self) -> float: ... + def GetIterationsPerLayout(self) -> int: ... + def GetIterationsPerLayoutMaxValue(self) -> int: ... + def GetIterationsPerLayoutMinValue(self) -> int: ... + def GetJitter(self) -> bool: ... + def GetMaxNumberOfIterations(self) -> int: ... + def GetMaxNumberOfIterationsMaxValue(self) -> int: ... + def GetMaxNumberOfIterationsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRandomSeed(self) -> int: ... + def GetRandomSeedMaxValue(self) -> int: ... + def GetRandomSeedMinValue(self) -> int: ... + def GetRestDistance(self) -> float: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsLayoutComplete(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkSimple2DLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSimple2DLayoutStrategy': ... + def SetCoolDownRate(self, _arg:float) -> None: ... + def SetInitialTemperature(self, _arg:float) -> None: ... + def SetIterationsPerLayout(self, _arg:int) -> None: ... + def SetJitter(self, _arg:bool) -> None: ... + def SetMaxNumberOfIterations(self, _arg:int) -> None: ... + def SetRandomSeed(self, _arg:int) -> None: ... + def SetRestDistance(self, _arg:float) -> None: ... + +class vtkSimple3DCirclesStrategy(vtkGraphLayoutStrategy): + FixedDistanceMethod:int + FixedRadiusMethod:int + auto_height:'getset_descriptor' + direction:'getset_descriptor' + force_to_use_universal_start_points_finder:'getset_descriptor' + graph:'getset_descriptor' + height:'getset_descriptor' + hierarchical_layers:'getset_descriptor' + hierarchical_order:'getset_descriptor' + marked_start_vertices:'getset_descriptor' + marked_value:'getset_descriptor' + method:'getset_descriptor' + minimum_degree:'getset_descriptor' + minimum_radian:'getset_descriptor' + origin:'getset_descriptor' + radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutoHeightOff(self) -> None: ... + def AutoHeightOn(self) -> None: ... + def ForceToUseUniversalStartPointsFinderOff(self) -> None: ... + def ForceToUseUniversalStartPointsFinderOn(self) -> None: ... + def GetAutoHeight(self) -> int: ... + def GetDirection(self) -> Tuple[float, float, float]: ... + def GetForceToUseUniversalStartPointsFinder(self) -> int: ... + def GetHeight(self) -> float: ... + def GetHierarchicalLayers(self) -> 'vtkIntArray': ... + def GetHierarchicalOrder(self) -> 'vtkIdTypeArray': ... + def GetMarkedStartVertices(self) -> 'vtkAbstractArray': ... + def GetMarkedValue(self) -> 'vtkVariant': ... + def GetMethod(self) -> int: ... + def GetMinimumDegree(self) -> float: ... + def GetMinimumRadian(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetRadius(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkSimple3DCirclesStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSimple3DCirclesStrategy': ... + def SetAutoHeight(self, _arg:int) -> None: ... + @overload + def SetDirection(self, dx:float, dy:float, dz:float) -> None: ... + @overload + def SetDirection(self, d:MutableSequence[float]) -> None: ... + def SetForceToUseUniversalStartPointsFinder(self, _arg:int) -> None: ... + def SetGraph(self, graph:'vtkGraph') -> None: ... + def SetHeight(self, _arg:float) -> None: ... + def SetHierarchicalLayers(self, _arg:'vtkIntArray') -> None: ... + def SetHierarchicalOrder(self, _arg:'vtkIdTypeArray') -> None: ... + def SetMarkedStartVertices(self, _arg:'vtkAbstractArray') -> None: ... + def SetMarkedValue(self, _arg:'vtkVariant') -> None: ... + def SetMethod(self, _arg:int) -> None: ... + def SetMinimumDegree(self, degree:float) -> None: ... + def SetMinimumRadian(self, _arg:float) -> None: ... + @overload + def SetOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOrigin(self, _arg:Sequence[float]) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + +class vtkSliceAndDiceLayoutStrategy(vtkTreeMapLayoutStrategy): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self, inputTree:'vtkTree', coordsArray:'vtkDataArray', sizeArray:'vtkDataArray') -> None: ... + def NewInstance(self) -> 'vtkSliceAndDiceLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSliceAndDiceLayoutStrategy': ... + +class vtkSpanTreeLayoutStrategy(vtkGraphLayoutStrategy): + depth_first_spanning_tree:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DepthFirstSpanningTreeOff(self) -> None: ... + def DepthFirstSpanningTreeOn(self) -> None: ... + def GetDepthFirstSpanningTree(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkSpanTreeLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSpanTreeLayoutStrategy': ... + def SetDepthFirstSpanningTree(self, _arg:bool) -> None: ... + +class vtkSplineGraphEdges(vtkmodules.vtkCommonExecutionModel.vtkGraphAlgorithm): + BSPLINE:int + CUSTOM:int + number_of_subdivisions:'getset_descriptor' + spline:'getset_descriptor' + spline_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSubdivisions(self) -> int: ... + def GetSpline(self) -> 'vtkSpline': ... + def GetSplineType(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSplineGraphEdges': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSplineGraphEdges': ... + def SetNumberOfSubdivisions(self, _arg:int) -> None: ... + def SetSpline(self, s:'vtkSpline') -> None: ... + def SetSplineType(self, _arg:int) -> None: ... + +class vtkSquarifyLayoutStrategy(vtkTreeMapLayoutStrategy): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self, inputTree:'vtkTree', coordsArray:'vtkDataArray', sizeArray:'vtkDataArray') -> None: ... + def NewInstance(self) -> 'vtkSquarifyLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSquarifyLayoutStrategy': ... + +class vtkStackedTreeLayoutStrategy(vtkAreaLayoutStrategy): + interior_log_spacing_value:'getset_descriptor' + interior_radius:'getset_descriptor' + reverse:'getset_descriptor' + ring_thickness:'getset_descriptor' + root_end_angle:'getset_descriptor' + root_start_angle:'getset_descriptor' + use_rectangular_coordinates:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FindVertex(self, tree:'vtkTree', array:'vtkDataArray', pnt:MutableSequence[float]) -> int: ... + def GetInteriorLogSpacingValue(self) -> float: ... + def GetInteriorRadius(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReverse(self) -> bool: ... + def GetRingThickness(self) -> float: ... + def GetRootEndAngle(self) -> float: ... + def GetRootStartAngle(self) -> float: ... + def GetUseRectangularCoordinates(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self, inputTree:'vtkTree', sectorArray:'vtkDataArray', sizeArray:'vtkDataArray') -> None: ... + def LayoutEdgePoints(self, inputTree:'vtkTree', sectorArray:'vtkDataArray', sizeArray:'vtkDataArray', edgeRoutingTree:'vtkTree') -> None: ... + def NewInstance(self) -> 'vtkStackedTreeLayoutStrategy': ... + def ReverseOff(self) -> None: ... + def ReverseOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStackedTreeLayoutStrategy': ... + def SetInteriorLogSpacingValue(self, _arg:float) -> None: ... + def SetInteriorRadius(self, _arg:float) -> None: ... + def SetReverse(self, _arg:bool) -> None: ... + def SetRingThickness(self, _arg:float) -> None: ... + def SetRootEndAngle(self, _arg:float) -> None: ... + def SetRootStartAngle(self, _arg:float) -> None: ... + def SetUseRectangularCoordinates(self, _arg:bool) -> None: ... + def UseRectangularCoordinatesOff(self) -> None: ... + def UseRectangularCoordinatesOn(self) -> None: ... + +class vtkTreeLayoutStrategy(vtkGraphLayoutStrategy): + angle:'getset_descriptor' + distance_array_name:'getset_descriptor' + leaf_spacing:'getset_descriptor' + log_spacing_value:'getset_descriptor' + radial:'getset_descriptor' + reverse_edges:'getset_descriptor' + rotation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAngle(self) -> float: ... + def GetAngleMaxValue(self) -> float: ... + def GetAngleMinValue(self) -> float: ... + def GetDistanceArrayName(self) -> str: ... + def GetLeafSpacing(self) -> float: ... + def GetLeafSpacingMaxValue(self) -> float: ... + def GetLeafSpacingMinValue(self) -> float: ... + def GetLogSpacingValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadial(self) -> bool: ... + def GetReverseEdges(self) -> bool: ... + def GetRotation(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkTreeLayoutStrategy': ... + def RadialOff(self) -> None: ... + def RadialOn(self) -> None: ... + def ReverseEdgesOff(self) -> None: ... + def ReverseEdgesOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTreeLayoutStrategy': ... + def SetAngle(self, _arg:float) -> None: ... + def SetDistanceArrayName(self, _arg:str) -> None: ... + def SetLeafSpacing(self, _arg:float) -> None: ... + def SetLogSpacingValue(self, _arg:float) -> None: ... + def SetRadial(self, _arg:bool) -> None: ... + def SetReverseEdges(self, _arg:bool) -> None: ... + def SetRotation(self, _arg:float) -> None: ... + +class vtkTreeMapLayout(vtkmodules.vtkCommonExecutionModel.vtkTreeAlgorithm): + layout_strategy:'getset_descriptor' + m_time:'getset_descriptor' + rectangles_field_name:'getset_descriptor' + size_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FindVertex(self, pnt:MutableSequence[float], binfo:MutableSequence[float]=...) -> int: ... + def GetBoundingBox(self, id:int, binfo:MutableSequence[float]) -> None: ... + def GetLayoutStrategy(self) -> 'vtkTreeMapLayoutStrategy': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRectanglesFieldName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTreeMapLayout': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTreeMapLayout': ... + def SetLayoutStrategy(self, strategy:'vtkTreeMapLayoutStrategy') -> None: ... + def SetRectanglesFieldName(self, _arg:str) -> None: ... + def SetSizeArrayName(self, name:str) -> None: ... + +class vtkTreeMapToPolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + add_normals:'getset_descriptor' + level_array_name:'getset_descriptor' + level_delta_z:'getset_descriptor' + rectangles_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetAddNormals(self) -> bool: ... + def GetLevelDeltaZ(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTreeMapToPolyData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTreeMapToPolyData': ... + def SetAddNormals(self, _arg:bool) -> None: ... + def SetLevelArrayName(self, name:str) -> None: ... + def SetLevelDeltaZ(self, _arg:float) -> None: ... + def SetRectanglesArrayName(self, name:str) -> None: ... + +class vtkTreeOrbitLayoutStrategy(vtkGraphLayoutStrategy): + child_radius_factor:'getset_descriptor' + leaf_spacing:'getset_descriptor' + log_spacing_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetChildRadiusFactor(self) -> float: ... + def GetLeafSpacing(self) -> float: ... + def GetLeafSpacingMaxValue(self) -> float: ... + def GetLeafSpacingMinValue(self) -> float: ... + def GetLogSpacingValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Layout(self) -> None: ... + def NewInstance(self) -> 'vtkTreeOrbitLayoutStrategy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTreeOrbitLayoutStrategy': ... + def SetChildRadiusFactor(self, _arg:float) -> None: ... + def SetLeafSpacing(self, _arg:float) -> None: ... + def SetLogSpacingValue(self, _arg:float) -> None: ... + +class vtkTreeRingToPolyData(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + sectors_array_name:'getset_descriptor' + shrink_percentage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShrinkPercentage(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTreeRingToPolyData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTreeRingToPolyData': ... + def SetSectorsArrayName(self, name:str) -> None: ... + def SetShrinkPercentage(self, _arg:float) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkInteractionImage.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkInteractionImage.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..4b679ff Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkInteractionImage.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkInteractionImage.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkInteractionImage.pyi new file mode 100644 index 0000000..b58499b --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkInteractionImage.pyi @@ -0,0 +1,249 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore + +class vtkImageViewer(vtkmodules.vtkCommonCore.vtkObject): + actor2d:'getset_descriptor' + color_level:'getset_descriptor' + color_window:'getset_descriptor' + display_id:'getset_descriptor' + image_mapper:'getset_descriptor' + input:'getset_descriptor' + input_connection:'getset_descriptor' + input_data:'getset_descriptor' + off_screen_rendering:'getset_descriptor' + parent_id:'getset_descriptor' + position:'getset_descriptor' + render_window:'getset_descriptor' + renderer:'getset_descriptor' + size:'getset_descriptor' + whole_z_max:'getset_descriptor' + whole_z_min:'getset_descriptor' + window_id:'getset_descriptor' + window_name:'getset_descriptor' + z_slice:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetActor2D(self) -> 'vtkActor2D': ... + def GetColorLevel(self) -> float: ... + def GetColorWindow(self) -> float: ... + def GetImageMapper(self) -> 'vtkImageMapper': ... + def GetInput(self) -> 'vtkImageData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffScreenRendering(self) -> int: ... + def GetPosition(self) -> Tuple[int, int]: ... + def GetRenderWindow(self) -> 'vtkRenderWindow': ... + def GetRenderer(self) -> 'vtkRenderer': ... + def GetSize(self) -> Tuple[int, int]: ... + def GetWholeZMax(self) -> int: ... + def GetWholeZMin(self) -> int: ... + def GetWindowName(self) -> str: ... + def GetZSlice(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageViewer': ... + def OffScreenRenderingOff(self) -> None: ... + def OffScreenRenderingOn(self) -> None: ... + def Render(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageViewer': ... + def SetColorLevel(self, s:float) -> None: ... + def SetColorWindow(self, s:float) -> None: ... + def SetDisplayId(self, a:Pointer) -> None: ... + def SetInputConnection(self, input:'vtkAlgorithmOutput') -> None: ... + def SetInputData(self, in_:'vtkImageData') -> None: ... + def SetOffScreenRendering(self, __a:int) -> None: ... + def SetParentId(self, a:Pointer) -> None: ... + @overload + def SetPosition(self, x:int, y:int) -> None: ... + @overload + def SetPosition(self, a:MutableSequence[int]) -> None: ... + def SetRenderWindow(self, renWin:'vtkRenderWindow') -> None: ... + @overload + def SetSize(self, width:int, height:int) -> None: ... + @overload + def SetSize(self, a:MutableSequence[int]) -> None: ... + def SetWindowId(self, a:Pointer) -> None: ... + def SetZSlice(self, s:int) -> None: ... + def SetupInteractor(self, __a:'vtkRenderWindowInteractor') -> None: ... + +class vtkImageViewer2(vtkmodules.vtkCommonCore.vtkObject): + SLICE_ORIENTATION_XY:int + SLICE_ORIENTATION_XZ:int + SLICE_ORIENTATION_YZ:int + color_level:'getset_descriptor' + color_window:'getset_descriptor' + display_id:'getset_descriptor' + image_actor:'getset_descriptor' + input:'getset_descriptor' + input_connection:'getset_descriptor' + input_data:'getset_descriptor' + interactor_style:'getset_descriptor' + off_screen_rendering:'getset_descriptor' + parent_id:'getset_descriptor' + position:'getset_descriptor' + render_window:'getset_descriptor' + renderer:'getset_descriptor' + size:'getset_descriptor' + slice:'getset_descriptor' + slice_max:'getset_descriptor' + slice_min:'getset_descriptor' + slice_orientation:'getset_descriptor' + window_id:'getset_descriptor' + window_level:'getset_descriptor' + window_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetColorLevel(self) -> float: ... + def GetColorWindow(self) -> float: ... + def GetImageActor(self) -> 'vtkImageActor': ... + def GetInput(self) -> 'vtkImageData': ... + def GetInteractorStyle(self) -> 'vtkInteractorStyleImage': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffScreenRendering(self) -> int: ... + def GetPosition(self) -> Tuple[int, int]: ... + def GetRenderWindow(self) -> 'vtkRenderWindow': ... + def GetRenderer(self) -> 'vtkRenderer': ... + def GetSize(self) -> Tuple[int, int]: ... + def GetSlice(self) -> int: ... + def GetSliceMax(self) -> int: ... + def GetSliceMin(self) -> int: ... + def GetSliceOrientation(self) -> int: ... + @overload + def GetSliceRange(self, range:MutableSequence[int]) -> None: ... + @overload + def GetSliceRange(self, min:int, max:int) -> None: ... + @overload + def GetSliceRange(self) -> Pointer: ... + def GetWindowLevel(self) -> 'vtkImageMapToWindowLevelColors': ... + def GetWindowName(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageViewer2': ... + def OffScreenRenderingOff(self) -> None: ... + def OffScreenRenderingOn(self) -> None: ... + def Render(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageViewer2': ... + def SetColorLevel(self, s:float) -> None: ... + def SetColorWindow(self, s:float) -> None: ... + def SetDisplayId(self, a:Pointer) -> None: ... + def SetInputConnection(self, input:'vtkAlgorithmOutput') -> None: ... + def SetInputData(self, in_:'vtkImageData') -> None: ... + def SetOffScreenRendering(self, __a:int) -> None: ... + def SetParentId(self, a:Pointer) -> None: ... + @overload + def SetPosition(self, x:int, y:int) -> None: ... + @overload + def SetPosition(self, a:MutableSequence[int]) -> None: ... + def SetRenderWindow(self, arg:'vtkRenderWindow') -> None: ... + def SetRenderer(self, arg:'vtkRenderer') -> None: ... + @overload + def SetSize(self, width:int, height:int) -> None: ... + @overload + def SetSize(self, a:MutableSequence[int]) -> None: ... + def SetSlice(self, s:int) -> None: ... + def SetSliceOrientation(self, orientation:int) -> None: ... + def SetSliceOrientationToXY(self) -> None: ... + def SetSliceOrientationToXZ(self) -> None: ... + def SetSliceOrientationToYZ(self) -> None: ... + def SetWindowId(self, a:Pointer) -> None: ... + def SetupInteractor(self, __a:'vtkRenderWindowInteractor') -> None: ... + def UpdateDisplayExtent(self) -> None: ... + +class vtkResliceImageViewer(vtkImageViewer2): + RESLICE_AXIS_ALIGNED:int + RESLICE_OBLIQUE:int + SliceChangedEvent:int + color_level:'getset_descriptor' + color_window:'getset_descriptor' + input_connection:'getset_descriptor' + input_data:'getset_descriptor' + interactor:'getset_descriptor' + lookup_table:'getset_descriptor' + measurements:'getset_descriptor' + point_placer:'getset_descriptor' + reslice_cursor:'getset_descriptor' + reslice_cursor_widget:'getset_descriptor' + reslice_mode:'getset_descriptor' + slice_scroll_factor:'getset_descriptor' + slice_scroll_on_mouse_wheel:'getset_descriptor' + thick_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInteractor(self) -> 'vtkRenderWindowInteractor': ... + def GetLookupTable(self) -> 'vtkScalarsToColors': ... + def GetMeasurements(self) -> 'vtkResliceImageViewerMeasurements': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointPlacer(self) -> 'vtkBoundedPlanePointPlacer': ... + def GetResliceCursor(self) -> 'vtkResliceCursor': ... + def GetResliceCursorWidget(self) -> 'vtkResliceCursorWidget': ... + def GetResliceMode(self) -> int: ... + def GetSliceScrollFactor(self) -> float: ... + def GetSliceScrollOnMouseWheel(self) -> int: ... + def GetThickMode(self) -> int: ... + def IncrementSlice(self, inc:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkResliceImageViewer': ... + def Render(self) -> None: ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkResliceImageViewer': ... + def SetColorLevel(self, s:float) -> None: ... + def SetColorWindow(self, s:float) -> None: ... + def SetInputConnection(self, input:'vtkAlgorithmOutput') -> None: ... + def SetInputData(self, in_:'vtkImageData') -> None: ... + def SetLookupTable(self, __a:'vtkScalarsToColors') -> None: ... + def SetResliceCursor(self, rc:'vtkResliceCursor') -> None: ... + def SetResliceMode(self, resliceMode:int) -> None: ... + def SetResliceModeToAxisAligned(self) -> None: ... + def SetResliceModeToOblique(self) -> None: ... + def SetSliceScrollFactor(self, _arg:float) -> None: ... + def SetSliceScrollOnMouseWheel(self, _arg:int) -> None: ... + def SetThickMode(self, __a:int) -> None: ... + def SliceScrollOnMouseWheelOff(self) -> None: ... + def SliceScrollOnMouseWheelOn(self) -> None: ... + +class vtkResliceImageViewerMeasurements(vtkmodules.vtkCommonCore.vtkObject): + process_events:'getset_descriptor' + reslice_image_viewer:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, __a:'vtkAbstractWidget') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProcessEvents(self) -> int: ... + def GetProcessEventsMaxValue(self) -> int: ... + def GetProcessEventsMinValue(self) -> int: ... + def GetResliceImageViewer(self) -> 'vtkResliceImageViewer': ... + def GetTolerance(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkResliceImageViewerMeasurements': ... + def ProcessEventsOff(self) -> None: ... + def ProcessEventsOn(self) -> None: ... + def RemoveAllItems(self) -> None: ... + def RemoveItem(self, __a:'vtkAbstractWidget') -> None: ... + def Render(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkResliceImageViewerMeasurements': ... + def SetProcessEvents(self, _arg:int) -> None: ... + def SetResliceImageViewer(self, __a:'vtkResliceImageViewer') -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def Update(self) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkInteractionStyle.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkInteractionStyle.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..32c7dc7 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkInteractionStyle.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkInteractionStyle.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkInteractionStyle.pyi new file mode 100644 index 0000000..03c2d54 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkInteractionStyle.pyi @@ -0,0 +1,619 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingCore + +VTKIS_ACTOR:int +VTKIS_CAMERA:int +VTKIS_IMAGE2D:int +VTKIS_IMAGE3D:int +VTKIS_IMAGE_SLICING:int +VTKIS_JOYSTICK:int +VTKIS_SLICE:int +VTKIS_TRACKBALL:int +VTKIS_USERINTERACTION:int +VTKIS_WINDOW_LEVEL:int + +class vtkInteractorStyleDrawPolygon(vtkmodules.vtkRenderingCore.vtkInteractorStyle): + draw_polygon_pixels:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DrawPolygonPixelsOff(self) -> None: ... + def DrawPolygonPixelsOn(self) -> None: ... + def GetDrawPolygonPixels(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyleDrawPolygon': ... + def OnLeftButtonDown(self) -> None: ... + def OnLeftButtonUp(self) -> None: ... + def OnMouseMove(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleDrawPolygon': ... + def SetDrawPolygonPixels(self, _arg:bool) -> None: ... + +class vtkInteractorStyleFlight(vtkmodules.vtkRenderingCore.vtkInteractorStyle): + angle_acceleration_factor:'getset_descriptor' + angle_step_size:'getset_descriptor' + default_up_vector:'getset_descriptor' + disable_motion:'getset_descriptor' + motion_acceleration_factor:'getset_descriptor' + motion_step_size:'getset_descriptor' + restore_up_vector:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DisableMotionOff(self) -> None: ... + def DisableMotionOn(self) -> None: ... + def EndForwardFly(self) -> None: ... + def EndReverseFly(self) -> None: ... + def ForwardFly(self) -> None: ... + def GetAngleAccelerationFactor(self) -> float: ... + def GetAngleStepSize(self) -> float: ... + def GetDefaultUpVector(self) -> Tuple[float, float, float]: ... + def GetDisableMotion(self) -> int: ... + def GetMotionAccelerationFactor(self) -> float: ... + def GetMotionStepSize(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRestoreUpVector(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def JumpTo(self, campos:MutableSequence[float], focpos:MutableSequence[float]) -> None: ... + def NewInstance(self) -> 'vtkInteractorStyleFlight': ... + def OnChar(self) -> None: ... + def OnKeyDown(self) -> None: ... + def OnKeyUp(self) -> None: ... + def OnLeftButtonDown(self) -> None: ... + def OnLeftButtonUp(self) -> None: ... + def OnMiddleButtonDown(self) -> None: ... + def OnMiddleButtonUp(self) -> None: ... + def OnMouseMove(self) -> None: ... + def OnRightButtonDown(self) -> None: ... + def OnRightButtonUp(self) -> None: ... + def OnTimer(self) -> None: ... + def RestoreUpVectorOff(self) -> None: ... + def RestoreUpVectorOn(self) -> None: ... + def ReverseFly(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleFlight': ... + def SetAngleAccelerationFactor(self, _arg:float) -> None: ... + def SetAngleStepSize(self, _arg:float) -> None: ... + def SetDefaultUpVector(self, data:Sequence[float]) -> None: ... + def SetDisableMotion(self, _arg:int) -> None: ... + def SetMotionAccelerationFactor(self, _arg:float) -> None: ... + def SetMotionStepSize(self, _arg:float) -> None: ... + def SetRestoreUpVector(self, _arg:int) -> None: ... + def StartForwardFly(self) -> None: ... + def StartReverseFly(self) -> None: ... + +class vtkInteractorStyleTrackballCamera(vtkmodules.vtkRenderingCore.vtkInteractorStyle): + motion_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Dolly(self) -> None: ... + def EnvironmentRotate(self) -> None: ... + def GetMotionFactor(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyleTrackballCamera': ... + def OnLeftButtonDown(self) -> None: ... + def OnLeftButtonUp(self) -> None: ... + def OnMiddleButtonDown(self) -> None: ... + def OnMiddleButtonUp(self) -> None: ... + def OnMouseMove(self) -> None: ... + def OnMouseWheelBackward(self) -> None: ... + def OnMouseWheelForward(self) -> None: ... + def OnRightButtonDown(self) -> None: ... + def OnRightButtonUp(self) -> None: ... + def Pan(self) -> None: ... + def Rotate(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleTrackballCamera': ... + def SetMotionFactor(self, _arg:float) -> None: ... + def Spin(self) -> None: ... + +class vtkInteractorStyleImage(vtkInteractorStyleTrackballCamera): + current_image_number:'getset_descriptor' + current_image_property:'getset_descriptor' + interaction_mode:'getset_descriptor' + window_level_current_position:'getset_descriptor' + window_level_start_position:'getset_descriptor' + x_view_right_vector:'getset_descriptor' + x_view_up_vector:'getset_descriptor' + y_view_right_vector:'getset_descriptor' + y_view_up_vector:'getset_descriptor' + z_view_right_vector:'getset_descriptor' + z_view_up_vector:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def EndPick(self) -> None: ... + def EndSlice(self) -> None: ... + def EndWindowLevel(self) -> None: ... + def GetCurrentImageNumber(self) -> int: ... + def GetCurrentImageProperty(self) -> 'vtkImageProperty': ... + def GetInteractionMode(self) -> int: ... + def GetInteractionModeMaxValue(self) -> int: ... + def GetInteractionModeMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWindowLevelCurrentPosition(self) -> Tuple[int, int]: ... + def GetWindowLevelStartPosition(self) -> Tuple[int, int]: ... + def GetXViewRightVector(self) -> Tuple[float, float, float]: ... + def GetXViewUpVector(self) -> Tuple[float, float, float]: ... + def GetYViewRightVector(self) -> Tuple[float, float, float]: ... + def GetYViewUpVector(self) -> Tuple[float, float, float]: ... + def GetZViewRightVector(self) -> Tuple[float, float, float]: ... + def GetZViewUpVector(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyleImage': ... + def OnChar(self) -> None: ... + def OnLeftButtonDown(self) -> None: ... + def OnLeftButtonUp(self) -> None: ... + def OnMiddleButtonDown(self) -> None: ... + def OnMiddleButtonUp(self) -> None: ... + def OnMouseMove(self) -> None: ... + def OnRightButtonDown(self) -> None: ... + def OnRightButtonUp(self) -> None: ... + def Pick(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleImage': ... + def SetCurrentImageNumber(self, i:int) -> None: ... + def SetImageOrientation(self, leftToRight:Sequence[float], bottomToTop:Sequence[float]) -> None: ... + def SetInteractionMode(self, _arg:int) -> None: ... + def SetInteractionModeToImage2D(self) -> None: ... + def SetInteractionModeToImage3D(self) -> None: ... + def SetInteractionModeToImageSlicing(self) -> None: ... + @overload + def SetXViewRightVector(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetXViewRightVector(self, _arg:Sequence[float]) -> None: ... + @overload + def SetXViewUpVector(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetXViewUpVector(self, _arg:Sequence[float]) -> None: ... + @overload + def SetYViewRightVector(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetYViewRightVector(self, _arg:Sequence[float]) -> None: ... + @overload + def SetYViewUpVector(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetYViewUpVector(self, _arg:Sequence[float]) -> None: ... + @overload + def SetZViewRightVector(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetZViewRightVector(self, _arg:Sequence[float]) -> None: ... + @overload + def SetZViewUpVector(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetZViewUpVector(self, _arg:Sequence[float]) -> None: ... + def Slice(self) -> None: ... + def StartPick(self) -> None: ... + def StartSlice(self) -> None: ... + def StartWindowLevel(self) -> None: ... + def WindowLevel(self) -> None: ... + +class vtkInteractorStyleJoystickActor(vtkmodules.vtkRenderingCore.vtkInteractorStyle): + def __init__(self, **properties:Any) -> None: ... + def Dolly(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyleJoystickActor': ... + def OnLeftButtonDown(self) -> None: ... + def OnLeftButtonUp(self) -> None: ... + def OnMiddleButtonDown(self) -> None: ... + def OnMiddleButtonUp(self) -> None: ... + def OnMouseMove(self) -> None: ... + def OnRightButtonDown(self) -> None: ... + def OnRightButtonUp(self) -> None: ... + def Pan(self) -> None: ... + def Rotate(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleJoystickActor': ... + def Spin(self) -> None: ... + def UniformScale(self) -> None: ... + +class vtkInteractorStyleJoystickCamera(vtkmodules.vtkRenderingCore.vtkInteractorStyle): + def __init__(self, **properties:Any) -> None: ... + def Dolly(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyleJoystickCamera': ... + def OnLeftButtonDown(self) -> None: ... + def OnLeftButtonUp(self) -> None: ... + def OnMiddleButtonDown(self) -> None: ... + def OnMiddleButtonUp(self) -> None: ... + def OnMouseMove(self) -> None: ... + def OnMouseWheelBackward(self) -> None: ... + def OnMouseWheelForward(self) -> None: ... + def OnRightButtonDown(self) -> None: ... + def OnRightButtonUp(self) -> None: ... + def Pan(self) -> None: ... + def Rotate(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleJoystickCamera': ... + def Spin(self) -> None: ... + +class vtkInteractorStyleMultiTouchCamera(vtkInteractorStyleTrackballCamera): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyleMultiTouchCamera': ... + def OnEndPan(self) -> None: ... + def OnEndPinch(self) -> None: ... + def OnEndRotate(self) -> None: ... + def OnPan(self) -> None: ... + def OnPinch(self) -> None: ... + def OnRotate(self) -> None: ... + def OnStartPan(self) -> None: ... + def OnStartPinch(self) -> None: ... + def OnStartRotate(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleMultiTouchCamera': ... + +class vtkInteractorStyleRubberBand2D(vtkmodules.vtkRenderingCore.vtkInteractorStyle): + NONE:int + PANNING:int + SELECTING:int + SELECT_NORMAL:int + SELECT_UNION:int + ZOOMING:int + end_position:'getset_descriptor' + interaction:'getset_descriptor' + render_on_mouse_move:'getset_descriptor' + start_position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetEndPosition(self) -> Tuple[int, int]: ... + def GetInteraction(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderOnMouseMove(self) -> bool: ... + def GetStartPosition(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyleRubberBand2D': ... + def OnLeftButtonDown(self) -> None: ... + def OnLeftButtonUp(self) -> None: ... + def OnMiddleButtonDown(self) -> None: ... + def OnMiddleButtonUp(self) -> None: ... + def OnMouseMove(self) -> None: ... + def OnMouseWheelBackward(self) -> None: ... + def OnMouseWheelForward(self) -> None: ... + def OnRightButtonDown(self) -> None: ... + def OnRightButtonUp(self) -> None: ... + def RenderOnMouseMoveOff(self) -> None: ... + def RenderOnMouseMoveOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleRubberBand2D': ... + def SetRenderOnMouseMove(self, _arg:bool) -> None: ... + +class vtkInteractorStyleRubberBand3D(vtkInteractorStyleTrackballCamera): + NONE:int + PANNING:int + ROTATING:int + SELECTING:int + SELECT_NORMAL:int + SELECT_UNION:int + ZOOMING:int + end_position:'getset_descriptor' + interaction:'getset_descriptor' + render_on_mouse_move:'getset_descriptor' + start_position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetEndPosition(self) -> Tuple[int, int]: ... + def GetInteraction(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderOnMouseMove(self) -> bool: ... + def GetStartPosition(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyleRubberBand3D': ... + def OnLeftButtonDown(self) -> None: ... + def OnLeftButtonUp(self) -> None: ... + def OnMiddleButtonDown(self) -> None: ... + def OnMiddleButtonUp(self) -> None: ... + def OnMouseMove(self) -> None: ... + def OnMouseWheelBackward(self) -> None: ... + def OnMouseWheelForward(self) -> None: ... + def OnRightButtonDown(self) -> None: ... + def OnRightButtonUp(self) -> None: ... + def RenderOnMouseMoveOff(self) -> None: ... + def RenderOnMouseMoveOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleRubberBand3D': ... + def SetRenderOnMouseMove(self, _arg:bool) -> None: ... + +class vtkInteractorStyleRubberBandPick(vtkInteractorStyleTrackballCamera): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyleRubberBandPick': ... + def OnChar(self) -> None: ... + def OnLeftButtonDown(self) -> None: ... + def OnLeftButtonUp(self) -> None: ... + def OnMouseMove(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleRubberBandPick': ... + def StartSelect(self) -> None: ... + def StopSelect(self) -> None: ... + +class vtkInteractorStyleRubberBandZoom(vtkmodules.vtkRenderingCore.vtkInteractorStyle): + center_at_start_position:'getset_descriptor' + lock_aspect_to_viewport:'getset_descriptor' + use_dolly_for_perspective_projection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CenterAtStartPositionOff(self) -> None: ... + def CenterAtStartPositionOn(self) -> None: ... + def GetCenterAtStartPosition(self) -> bool: ... + def GetLockAspectToViewport(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseDollyForPerspectiveProjection(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LockAspectToViewportOff(self) -> None: ... + def LockAspectToViewportOn(self) -> None: ... + def NewInstance(self) -> 'vtkInteractorStyleRubberBandZoom': ... + def OnLeftButtonDown(self) -> None: ... + def OnLeftButtonUp(self) -> None: ... + def OnMouseMove(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleRubberBandZoom': ... + def SetCenterAtStartPosition(self, _arg:bool) -> None: ... + def SetLockAspectToViewport(self, _arg:bool) -> None: ... + def SetUseDollyForPerspectiveProjection(self, _arg:bool) -> None: ... + def UseDollyForPerspectiveProjectionOff(self) -> None: ... + def UseDollyForPerspectiveProjectionOn(self) -> None: ... + +class vtkInteractorStyleSwitch(vtkmodules.vtkRenderingCore.vtkInteractorStyleSwitchBase): + auto_adjust_camera_clipping_range:'getset_descriptor' + current_renderer:'getset_descriptor' + current_style:'getset_descriptor' + default_renderer:'getset_descriptor' + interactor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCurrentStyle(self) -> 'vtkInteractorStyle': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyleSwitch': ... + def OnChar(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleSwitch': ... + def SetAutoAdjustCameraClippingRange(self, value:int) -> None: ... + def SetCurrentRenderer(self, __a:'vtkRenderer') -> None: ... + def SetCurrentStyleToJoystickActor(self) -> None: ... + def SetCurrentStyleToJoystickCamera(self) -> None: ... + def SetCurrentStyleToMultiTouchCamera(self) -> None: ... + def SetCurrentStyleToTrackballActor(self) -> None: ... + def SetCurrentStyleToTrackballCamera(self) -> None: ... + def SetDefaultRenderer(self, __a:'vtkRenderer') -> None: ... + def SetInteractor(self, iren:'vtkRenderWindowInteractor') -> None: ... + +class vtkInteractorStyleTerrain(vtkmodules.vtkRenderingCore.vtkInteractorStyle): + lat_long_lines:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Dolly(self) -> None: ... + def GetLatLongLines(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LatLongLinesOff(self) -> None: ... + def LatLongLinesOn(self) -> None: ... + def NewInstance(self) -> 'vtkInteractorStyleTerrain': ... + def OnChar(self) -> None: ... + def OnLeftButtonDown(self) -> None: ... + def OnLeftButtonUp(self) -> None: ... + def OnMiddleButtonDown(self) -> None: ... + def OnMiddleButtonUp(self) -> None: ... + def OnMouseMove(self) -> None: ... + def OnRightButtonDown(self) -> None: ... + def OnRightButtonUp(self) -> None: ... + def Pan(self) -> None: ... + def Rotate(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleTerrain': ... + def SetLatLongLines(self, _arg:int) -> None: ... + +class vtkInteractorStyleTrackball(vtkInteractorStyleSwitch): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyleTrackball': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleTrackball': ... + +class vtkInteractorStyleTrackballActor(vtkmodules.vtkRenderingCore.vtkInteractorStyle): + def __init__(self, **properties:Any) -> None: ... + def Dolly(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyleTrackballActor': ... + def OnLeftButtonDown(self) -> None: ... + def OnLeftButtonUp(self) -> None: ... + def OnMiddleButtonDown(self) -> None: ... + def OnMiddleButtonUp(self) -> None: ... + def OnMouseMove(self) -> None: ... + def OnRightButtonDown(self) -> None: ... + def OnRightButtonUp(self) -> None: ... + def Pan(self) -> None: ... + def Rotate(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleTrackballActor': ... + def Spin(self) -> None: ... + def UniformScale(self) -> None: ... + +class vtkInteractorStyleUnicam(vtkmodules.vtkRenderingCore.vtkInteractorStyle): + BUTTON_LEFT:int + BUTTON_MIDDLE:int + BUTTON_RIGHT:int + CAM_INT_CHOOSE:int + CAM_INT_DOLLY:int + CAM_INT_PAN:int + CAM_INT_ROT:int + NONE:int + world_up_vector:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWorldUpVector(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyleUnicam': ... + def OnLeftButtonDown(self) -> None: ... + def OnLeftButtonMove(self) -> None: ... + def OnLeftButtonUp(self) -> None: ... + def OnMouseMove(self) -> None: ... + def OnTimer(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleUnicam': ... + @overload + def SetWorldUpVector(self, a:MutableSequence[float]) -> None: ... + @overload + def SetWorldUpVector(self, x:float, y:float, z:float) -> None: ... + +class vtkInteractorStyleUser(vtkmodules.vtkRenderingCore.vtkInteractorStyle): + button:'getset_descriptor' + char:'getset_descriptor' + ctrl_key:'getset_descriptor' + key_sym:'getset_descriptor' + last_pos:'getset_descriptor' + old_pos:'getset_descriptor' + shift_key:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetButton(self) -> int: ... + def GetChar(self) -> int: ... + def GetCtrlKey(self) -> int: ... + def GetKeySym(self) -> str: ... + def GetLastPos(self) -> Tuple[int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOldPos(self) -> Tuple[int, int]: ... + def GetShiftKey(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyleUser': ... + def OnChar(self) -> None: ... + def OnConfigure(self) -> None: ... + def OnEnter(self) -> None: ... + def OnExpose(self) -> None: ... + def OnKeyPress(self) -> None: ... + def OnKeyRelease(self) -> None: ... + def OnLeave(self) -> None: ... + def OnLeftButtonDown(self) -> None: ... + def OnLeftButtonUp(self) -> None: ... + def OnMiddleButtonDown(self) -> None: ... + def OnMiddleButtonUp(self) -> None: ... + def OnMouseMove(self) -> None: ... + def OnMouseWheelBackward(self) -> None: ... + def OnMouseWheelForward(self) -> None: ... + def OnRightButtonDown(self) -> None: ... + def OnRightButtonUp(self) -> None: ... + def OnTimer(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleUser': ... + +class vtkParallelCoordinatesInteractorStyle(vtkInteractorStyleTrackballCamera): + INTERACT_HOVER:int + INTERACT_INSPECT:int + INTERACT_PAN:int + INTERACT_ZOOM:int + cursor_current_position:'getset_descriptor' + cursor_last_position:'getset_descriptor' + cursor_start_position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def EndInspect(self) -> None: ... + def EndPan(self) -> None: ... + def EndZoom(self) -> None: ... + @overload + def GetCursorCurrentPosition(self) -> Tuple[int, int]: ... + @overload + def GetCursorCurrentPosition(self, viewport:'vtkViewport', pos:MutableSequence[float]) -> None: ... + @overload + def GetCursorLastPosition(self) -> Tuple[int, int]: ... + @overload + def GetCursorLastPosition(self, viewport:'vtkViewport', pos:MutableSequence[float]) -> None: ... + @overload + def GetCursorStartPosition(self) -> Tuple[int, int]: ... + @overload + def GetCursorStartPosition(self, viewport:'vtkViewport', pos:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Inspect(self, x:int, y:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParallelCoordinatesInteractorStyle': ... + def OnChar(self) -> None: ... + def OnLeave(self) -> None: ... + def OnLeftButtonDown(self) -> None: ... + def OnLeftButtonUp(self) -> None: ... + def OnMiddleButtonDown(self) -> None: ... + def OnMiddleButtonUp(self) -> None: ... + def OnMouseMove(self) -> None: ... + def OnRightButtonDown(self) -> None: ... + def OnRightButtonUp(self) -> None: ... + def Pan(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParallelCoordinatesInteractorStyle': ... + def StartInspect(self, x:int, y:int) -> None: ... + def StartPan(self) -> None: ... + def StartZoom(self) -> None: ... + def Zoom(self) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkInteractionWidgets.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkInteractionWidgets.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..af26ee6 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkInteractionWidgets.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkInteractionWidgets.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkInteractionWidgets.pyi new file mode 100644 index 0000000..c9581ea --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkInteractionWidgets.pyi @@ -0,0 +1,8662 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkFiltersSources +import vtkmodules.vtkRenderingContext2D +import vtkmodules.vtkRenderingCore + +VTK_CUBIC_RESLICE:int +VTK_IMAGE_PLANE_WIDGET_MAX_TEXTBUFF:int +VTK_ITW_PROJECTION_XY:int +VTK_ITW_PROJECTION_XZ:int +VTK_ITW_PROJECTION_YZ:int +VTK_ITW_SNAP_CELLS:int +VTK_ITW_SNAP_POINTS:int +VTK_LINEAR_RESLICE:int +VTK_MAX_ANNULUS_RESOLUTION:int +VTK_MAX_CONE_RESOLUTION:int +VTK_MAX_CYL_RESOLUTION:int +VTK_NEAREST_RESLICE:int +VTK_PLANE_OFF:int +VTK_PLANE_OUTLINE:int +VTK_PLANE_SURFACE:int +VTK_PLANE_WIREFRAME:int +VTK_PROJECTION_OBLIQUE:int +VTK_PROJECTION_XY:int +VTK_PROJECTION_XZ:int +VTK_PROJECTION_YZ:int +VTK_RESLICE_CURSOR_REPRESENTATION_MAX_TEXTBUFF:int +VTK_SPHERE_OFF:int +VTK_SPHERE_SURFACE:int +VTK_SPHERE_WIREFRAME:int + +class vtkWidgetRepresentation(vtkmodules.vtkRenderingCore.vtkProp): + class Axis(int): ... + Custom:'Axis' + NONE:'Axis' + XAxis:'Axis' + YAxis:'Axis' + ZAxis:'Axis' + bounds:'getset_descriptor' + handle_size:'getset_descriptor' + interaction_state:'getset_descriptor' + need_to_render:'getset_descriptor' + picking_managed:'getset_descriptor' + place_factor:'getset_descriptor' + renderer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComplexInteraction(self, __a:'vtkRenderWindowInteractor', __b:'vtkAbstractWidget', __c:int, __d:Pointer) -> None: ... + def ComputeComplexInteractionState(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, callData:Pointer, modify:int=0) -> int: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def EndComplexInteraction(self, __a:'vtkRenderWindowInteractor', __b:'vtkAbstractWidget', __c:int, __d:Pointer) -> None: ... + def EndWidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetActors2D(self, __a:'vtkPropCollection') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetHandleSize(self) -> float: ... + def GetHandleSizeMaxValue(self) -> float: ... + def GetHandleSizeMinValue(self) -> float: ... + def GetInteractionState(self) -> int: ... + def GetNeedToRender(self) -> int: ... + def GetNeedToRenderMaxValue(self) -> int: ... + def GetNeedToRenderMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPickingManaged(self) -> bool: ... + def GetPlaceFactor(self) -> float: ... + def GetPlaceFactorMaxValue(self) -> float: ... + def GetPlaceFactorMinValue(self) -> float: ... + def GetRenderer(self) -> 'vtkRenderer': ... + def GetVolumes(self, __a:'vtkPropCollection') -> None: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def Highlight(self, highlightOn:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NeedToRenderOff(self) -> None: ... + def NeedToRenderOn(self) -> None: ... + def NewInstance(self) -> 'vtkWidgetRepresentation': ... + def PickingManagedOff(self) -> None: ... + def PickingManagedOn(self) -> None: ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderVolumetricGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWidgetRepresentation': ... + def SetHandleSize(self, _arg:float) -> None: ... + def SetNeedToRender(self, _arg:int) -> None: ... + def SetPickingManaged(self, managed:bool) -> None: ... + def SetPlaceFactor(self, _arg:float) -> None: ... + def SetRenderer(self, ren:'vtkRenderer') -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def StartComplexInteraction(self, __a:'vtkRenderWindowInteractor', __b:'vtkAbstractWidget', __c:int, __d:Pointer) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def UnRegisterPickers(self) -> None: ... + def WidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + +class vtk3DCursorRepresentation(vtkWidgetRepresentation): + class CursorShape(int): ... + CROSS_SHAPE:'CursorShape' + CUSTOM_SHAPE:'CursorShape' + SPHERE_SHAPE:'CursorShape' + cursor_shape:'getset_descriptor' + custom_cursor:'getset_descriptor' + shape:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def GetCustomCursor(self) -> 'vtkActor': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShape(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtk3DCursorRepresentation': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtk3DCursorRepresentation': ... + def SetCursorShape(self, shape:int) -> None: ... + def SetCustomCursor(self, customCursor:'vtkActor') -> None: ... + def WidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + +class vtkAbstractWidget(vtkmodules.vtkRenderingCore.vtkInteractorObserver): + enabled:'getset_descriptor' + event_translator:'getset_descriptor' + manages_cursor:'getset_descriptor' + parent:'getset_descriptor' + priority:'getset_descriptor' + process_events:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetEventTranslator(self) -> 'vtkWidgetEventTranslator': ... + def GetManagesCursor(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParent(self) -> 'vtkAbstractWidget': ... + def GetProcessEvents(self) -> int: ... + def GetProcessEventsMaxValue(self) -> int: ... + def GetProcessEventsMinValue(self) -> int: ... + def GetRepresentation(self) -> 'vtkWidgetRepresentation': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def ManagesCursorOff(self) -> None: ... + def ManagesCursorOn(self) -> None: ... + def NewInstance(self) -> 'vtkAbstractWidget': ... + def ProcessEventsOff(self) -> None: ... + def ProcessEventsOn(self) -> None: ... + def Render(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractWidget': ... + def SetEnabled(self, __a:int) -> None: ... + def SetManagesCursor(self, _arg:int) -> None: ... + def SetParent(self, parent:'vtkAbstractWidget') -> None: ... + def SetPriority(self, __a:float) -> None: ... + def SetProcessEvents(self, _arg:int) -> None: ... + +class vtk3DCursorWidget(vtkAbstractWidget): + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def Get3DCursorRepresentation(self) -> 'vtk3DCursorRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtk3DCursorWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtk3DCursorWidget': ... + def SetRepresentation(self, r:'vtk3DCursorRepresentation') -> None: ... + +class vtk3DWidget(vtkmodules.vtkRenderingCore.vtkInteractorObserver): + handle_size:'getset_descriptor' + input:'getset_descriptor' + input_connection:'getset_descriptor' + input_data:'getset_descriptor' + place_factor:'getset_descriptor' + prop3d:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetHandleSize(self) -> float: ... + def GetHandleSizeMaxValue(self) -> float: ... + def GetHandleSizeMinValue(self) -> float: ... + def GetInput(self) -> 'vtkDataSet': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPlaceFactor(self) -> float: ... + def GetPlaceFactorMaxValue(self) -> float: ... + def GetPlaceFactorMinValue(self) -> float: ... + def GetProp3D(self) -> 'vtkProp3D': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtk3DWidget': ... + @overload + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + @overload + def PlaceWidget(self) -> None: ... + @overload + def PlaceWidget(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtk3DWidget': ... + def SetHandleSize(self, _arg:float) -> None: ... + def SetInputConnection(self, __a:'vtkAlgorithmOutput') -> None: ... + def SetInputData(self, __a:'vtkDataSet') -> None: ... + def SetPlaceFactor(self, _arg:float) -> None: ... + def SetProp3D(self, __a:'vtkProp3D') -> None: ... + +class vtkHandleRepresentation(vtkWidgetRepresentation): + class InteractionStateType(int): ... + Nearby:'InteractionStateType' + Outside:'InteractionStateType' + Scaling:'InteractionStateType' + Selecting:'InteractionStateType' + Translating:'InteractionStateType' + active_representation:'getset_descriptor' + constrained:'getset_descriptor' + custom_translation_axis:'getset_descriptor' + custom_translation_axis_on:'getset_descriptor' + display_position:'getset_descriptor' + interaction_state:'getset_descriptor' + m_time:'getset_descriptor' + point_placer:'getset_descriptor' + renderer:'getset_descriptor' + tolerance:'getset_descriptor' + translation_axis:'getset_descriptor' + world_position:'getset_descriptor' + x_translation_axis_on:'getset_descriptor' + y_translation_axis_on:'getset_descriptor' + z_translation_axis_on:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ActiveRepresentationOff(self) -> None: ... + def ActiveRepresentationOn(self) -> None: ... + def CheckConstraint(self, renderer:'vtkRenderer', pos:MutableSequence[float]) -> int: ... + def ConstrainedOff(self) -> None: ... + def ConstrainedOn(self) -> None: ... + def DeepCopy(self, prop:'vtkProp') -> None: ... + def GetActiveRepresentation(self) -> int: ... + def GetConstrained(self) -> int: ... + def GetCustomTranslationAxis(self) -> Tuple[float, float, float]: ... + @overload + def GetDisplayPosition(self, pos:MutableSequence[float]) -> None: ... + @overload + def GetDisplayPosition(self) -> Tuple[float, float]: ... + def GetInteractionStateMaxValue(self) -> int: ... + def GetInteractionStateMinValue(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointPlacer(self) -> 'vtkPointPlacer': ... + def GetTolerance(self) -> int: ... + def GetToleranceMaxValue(self) -> int: ... + def GetToleranceMinValue(self) -> int: ... + def GetTranslationAxis(self) -> int: ... + def GetTranslationAxisMaxValue(self) -> int: ... + def GetTranslationAxisMinValue(self) -> int: ... + def GetTranslationVector(self, p1:Sequence[float], p2:Sequence[float], v:MutableSequence[float]) -> None: ... + @overload + def GetWorldPosition(self, pos:MutableSequence[float]) -> None: ... + @overload + def GetWorldPosition(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + def IsTranslationConstrained(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHandleRepresentation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHandleRepresentation': ... + def SetActiveRepresentation(self, _arg:int) -> None: ... + def SetConstrained(self, _arg:int) -> None: ... + @overload + def SetCustomTranslationAxis(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCustomTranslationAxis(self, _arg:Sequence[float]) -> None: ... + def SetCustomTranslationAxisOn(self) -> None: ... + def SetDisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetInteractionState(self, _arg:int) -> None: ... + def SetPointPlacer(self, __a:'vtkPointPlacer') -> None: ... + def SetRenderer(self, ren:'vtkRenderer') -> None: ... + def SetTolerance(self, _arg:int) -> None: ... + def SetTranslationAxis(self, _arg:int) -> None: ... + def SetTranslationAxisOff(self) -> None: ... + def SetWorldPosition(self, pos:MutableSequence[float]) -> None: ... + def SetXTranslationAxisOn(self) -> None: ... + def SetYTranslationAxisOn(self) -> None: ... + def SetZTranslationAxisOn(self) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + @overload + def Translate(self, p1:Sequence[float], p2:Sequence[float]) -> None: ... + @overload + def Translate(self, v:Sequence[float]) -> None: ... + +class vtkAbstractPolygonalHandleRepresentation3D(vtkHandleRepresentation): + bounds:'getset_descriptor' + display_position:'getset_descriptor' + handle:'getset_descriptor' + handle_visibility:'getset_descriptor' + label_text:'getset_descriptor' + label_text_actor:'getset_descriptor' + label_text_scale:'getset_descriptor' + label_visibility:'getset_descriptor' + property:'getset_descriptor' + selected_property:'getset_descriptor' + smooth_motion:'getset_descriptor' + transform:'getset_descriptor' + uniform_scale:'getset_descriptor' + world_position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def DeepCopy(self, prop:'vtkProp') -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetHandle(self) -> 'vtkPolyData': ... + def GetHandleVisibility(self) -> int: ... + def GetLabelText(self) -> str: ... + def GetLabelTextActor(self) -> 'vtkFollower': ... + def GetLabelTextScale(self) -> Pointer: ... + def GetLabelVisibility(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProperty(self) -> 'vtkProperty': ... + def GetSelectedProperty(self) -> 'vtkProperty': ... + def GetSmoothMotion(self) -> int: ... + def GetTransform(self) -> 'vtkAbstractTransform': ... + def HandleVisibilityOff(self) -> None: ... + def HandleVisibilityOn(self) -> None: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def Highlight(self, highlight:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LabelVisibilityOff(self) -> None: ... + def LabelVisibilityOn(self) -> None: ... + def NewInstance(self) -> 'vtkAbstractPolygonalHandleRepresentation3D': ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractPolygonalHandleRepresentation3D': ... + def SetDisplayPosition(self, p:MutableSequence[float]) -> None: ... + def SetHandle(self, __a:'vtkPolyData') -> None: ... + def SetHandleVisibility(self, _arg:int) -> None: ... + def SetLabelText(self, label:str) -> None: ... + @overload + def SetLabelTextScale(self, scale:MutableSequence[float]) -> None: ... + @overload + def SetLabelTextScale(self, x:float, y:float, z:float) -> None: ... + def SetLabelVisibility(self, _arg:int) -> None: ... + def SetProperty(self, __a:'vtkProperty') -> None: ... + def SetSelectedProperty(self, __a:'vtkProperty') -> None: ... + def SetSmoothMotion(self, _arg:int) -> None: ... + def SetUniformScale(self, scale:float) -> None: ... + def SetWorldPosition(self, p:MutableSequence[float]) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def SmoothMotionOff(self) -> None: ... + def SmoothMotionOn(self) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def Translate(self, v:Sequence[float]) -> None: ... + def WidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + +class vtkCurveRepresentation(vtkWidgetRepresentation): + class InteractionStateType(int): ... + Erasing:'InteractionStateType' + Inserting:'InteractionStateType' + Moving:'InteractionStateType' + OnHandle:'InteractionStateType' + OnLine:'InteractionStateType' + Outside:'InteractionStateType' + Pushing:'InteractionStateType' + Scaling:'InteractionStateType' + Spinning:'InteractionStateType' + bounds:'getset_descriptor' + closed:'getset_descriptor' + current_handle_index:'getset_descriptor' + directional:'getset_descriptor' + foreground_color:'getset_descriptor' + handle_positions:'getset_descriptor' + handle_property:'getset_descriptor' + interaction_color:'getset_descriptor' + interaction_state:'getset_descriptor' + line_color:'getset_descriptor' + line_property:'getset_descriptor' + number_of_handles:'getset_descriptor' + plane_source:'getset_descriptor' + project_to_plane:'getset_descriptor' + projection_normal:'getset_descriptor' + projection_position:'getset_descriptor' + selected_handle_property:'getset_descriptor' + selected_line_property:'getset_descriptor' + summed_length:'getset_descriptor' + translation_axis:'getset_descriptor' + x_translation_axis_on:'getset_descriptor' + y_translation_axis_on:'getset_descriptor' + z_translation_axis_on:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ClosedOff(self) -> None: ... + def ClosedOn(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def DirectionalOff(self) -> None: ... + def DirectionalOn(self) -> None: ... + def EndWidgetInteraction(self, e:MutableSequence[float]) -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetClosed(self) -> int: ... + def GetCurrentHandleIndex(self) -> int: ... + def GetDirectional(self) -> bool: ... + @overload + def GetHandlePosition(self, handle:int, xyz:MutableSequence[float]) -> None: ... + @overload + def GetHandlePosition(self, handle:int) -> Pointer: ... + def GetHandlePositions(self) -> 'vtkDoubleArray': ... + def GetHandleProperty(self) -> 'vtkProperty': ... + def GetLineProperty(self) -> 'vtkProperty': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfHandles(self) -> int: ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetProjectToPlane(self) -> int: ... + def GetProjectionNormal(self) -> int: ... + def GetProjectionNormalMaxValue(self) -> int: ... + def GetProjectionNormalMinValue(self) -> int: ... + def GetProjectionPosition(self) -> float: ... + def GetSelectedHandleProperty(self) -> 'vtkProperty': ... + def GetSelectedLineProperty(self) -> 'vtkProperty': ... + def GetSummedLength(self) -> float: ... + def GetTranslationAxis(self) -> int: ... + def GetTranslationAxisMaxValue(self) -> int: ... + def GetTranslationAxisMinValue(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def InitializeHandles(self, points:'vtkPoints') -> None: ... + def IsA(self, type:str) -> int: ... + def IsClosed(self) -> int: ... + def IsTranslationConstrained(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCurveRepresentation': ... + def ProjectToPlaneOff(self) -> None: ... + def ProjectToPlaneOn(self) -> None: ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCurveRepresentation': ... + def SetClosed(self, closed:int) -> None: ... + def SetCurrentHandleIndex(self, index:int) -> None: ... + def SetDirectional(self, val:bool) -> None: ... + @overload + def SetForegroundColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetForegroundColor(self, c:MutableSequence[float]) -> None: ... + @overload + def SetHandlePosition(self, handle:int, x:float, y:float, z:float) -> None: ... + @overload + def SetHandlePosition(self, handle:int, xyz:MutableSequence[float]) -> None: ... + @overload + def SetInteractionColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetInteractionColor(self, c:MutableSequence[float]) -> None: ... + def SetInteractionState(self, _arg:int) -> None: ... + def SetLineColor(self, r:float, g:float, b:float) -> None: ... + def SetNumberOfHandles(self, npts:int) -> None: ... + def SetPlaneSource(self, plane:'vtkPlaneSource') -> None: ... + def SetProjectToPlane(self, _arg:int) -> None: ... + def SetProjectionNormal(self, _arg:int) -> None: ... + def SetProjectionNormalToOblique(self) -> None: ... + def SetProjectionNormalToXAxes(self) -> None: ... + def SetProjectionNormalToYAxes(self) -> None: ... + def SetProjectionNormalToZAxes(self) -> None: ... + def SetProjectionPosition(self, position:float) -> None: ... + def SetTranslationAxis(self, _arg:int) -> None: ... + def SetTranslationAxisOff(self) -> None: ... + def SetXTranslationAxisOn(self) -> None: ... + def SetYTranslationAxisOn(self) -> None: ... + def SetZTranslationAxisOn(self) -> None: ... + def StartWidgetInteraction(self, e:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, e:MutableSequence[float]) -> None: ... + +class vtkAbstractSplineRepresentation(vtkCurveRepresentation): + handle_positions:'getset_descriptor' + parametric_spline:'getset_descriptor' + resolution:'getset_descriptor' + summed_length:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetHandlePositions(self) -> 'vtkDoubleArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParametricSpline(self) -> 'vtkParametricSpline': ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetResolution(self) -> int: ... + def GetSummedLength(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAbstractSplineRepresentation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractSplineRepresentation': ... + def SetParametricSpline(self, spline:'vtkParametricSpline') -> None: ... + def SetResolution(self, resolution:int) -> None: ... + +class vtkAffineRepresentation(vtkWidgetRepresentation): + class InteractionStateType(int): ... + MoveOrigin:'InteractionStateType' + MoveOriginX:'InteractionStateType' + MoveOriginY:'InteractionStateType' + Outside:'InteractionStateType' + Rotate:'InteractionStateType' + ScaleEEdge:'InteractionStateType' + ScaleNE:'InteractionStateType' + ScaleNEdge:'InteractionStateType' + ScaleNW:'InteractionStateType' + ScaleSE:'InteractionStateType' + ScaleSEdge:'InteractionStateType' + ScaleSW:'InteractionStateType' + ScaleWEdge:'InteractionStateType' + ShearEEdge:'InteractionStateType' + ShearNEdge:'InteractionStateType' + ShearSEdge:'InteractionStateType' + ShearWEdge:'InteractionStateType' + Translate:'InteractionStateType' + TranslateX:'InteractionStateType' + TranslateY:'InteractionStateType' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTolerance(self) -> int: ... + def GetToleranceMaxValue(self) -> int: ... + def GetToleranceMinValue(self) -> int: ... + def GetTransform(self, t:'vtkTransform') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAffineRepresentation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAffineRepresentation': ... + def SetTolerance(self, _arg:int) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkAffineRepresentation2D(vtkAffineRepresentation): + axes_width:'getset_descriptor' + box_width:'getset_descriptor' + circle_width:'getset_descriptor' + display_text:'getset_descriptor' + origin:'getset_descriptor' + property:'getset_descriptor' + selected_property:'getset_descriptor' + text_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def DisplayTextOff(self) -> None: ... + def DisplayTextOn(self) -> None: ... + def EndWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def GetActors2D(self, __a:'vtkPropCollection') -> None: ... + def GetAxesWidth(self) -> int: ... + def GetAxesWidthMaxValue(self) -> int: ... + def GetAxesWidthMinValue(self) -> int: ... + def GetBoxWidth(self) -> int: ... + def GetBoxWidthMaxValue(self) -> int: ... + def GetBoxWidthMinValue(self) -> int: ... + def GetCircleWidth(self) -> int: ... + def GetCircleWidthMaxValue(self) -> int: ... + def GetCircleWidthMinValue(self) -> int: ... + def GetDisplayText(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetProperty(self) -> 'vtkProperty2D': ... + def GetSelectedProperty(self) -> 'vtkProperty2D': ... + def GetTextProperty(self) -> 'vtkTextProperty': ... + def GetTransform(self, t:'vtkTransform') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAffineRepresentation2D': ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAffineRepresentation2D': ... + def SetAxesWidth(self, _arg:int) -> None: ... + def SetBoxWidth(self, _arg:int) -> None: ... + def SetCircleWidth(self, _arg:int) -> None: ... + def SetDisplayText(self, _arg:int) -> None: ... + @overload + def SetOrigin(self, o:Sequence[float]) -> None: ... + @overload + def SetOrigin(self, ox:float, oy:float, oz:float) -> None: ... + def SetProperty(self, __a:'vtkProperty2D') -> None: ... + def SetSelectedProperty(self, __a:'vtkProperty2D') -> None: ... + def SetTextProperty(self, __a:'vtkTextProperty') -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + +class vtkAffineWidget(vtkAbstractWidget): + affine_representation:'getset_descriptor' + enabled:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetAffineRepresentation(self) -> 'vtkAffineRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAffineWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAffineWidget': ... + def SetEnabled(self, __a:int) -> None: ... + def SetRepresentation(self, r:'vtkAffineRepresentation') -> None: ... + +class vtkAngleRepresentation(vtkWidgetRepresentation): + NearCenter:int + NearP1:int + NearP2:int + Outside:int + angle:'getset_descriptor' + arc_visibility:'getset_descriptor' + center_display_position:'getset_descriptor' + center_representation:'getset_descriptor' + handle_representation:'getset_descriptor' + label_format:'getset_descriptor' + point1_display_position:'getset_descriptor' + point1_representation:'getset_descriptor' + point2_display_position:'getset_descriptor' + point2_representation:'getset_descriptor' + ray1_visibility:'getset_descriptor' + ray2_visibility:'getset_descriptor' + renderer:'getset_descriptor' + scale:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ArcVisibilityOff(self) -> None: ... + def ArcVisibilityOn(self) -> None: ... + def BuildRepresentation(self) -> None: ... + def CenterWidgetInteraction(self, e:MutableSequence[float]) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def GetAngle(self) -> float: ... + def GetArcVisibility(self) -> int: ... + def GetCenterDisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def GetCenterRepresentation(self) -> 'vtkHandleRepresentation': ... + def GetCenterWorldPosition(self, pos:MutableSequence[float]) -> None: ... + def GetLabelFormat(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoint1DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint1Representation(self) -> 'vtkHandleRepresentation': ... + def GetPoint1WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint2DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint2Representation(self) -> 'vtkHandleRepresentation': ... + def GetPoint2WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def GetRay1Visibility(self) -> int: ... + def GetRay2Visibility(self) -> int: ... + def GetScale(self) -> float: ... + def GetTolerance(self) -> int: ... + def GetToleranceMaxValue(self) -> int: ... + def GetToleranceMinValue(self) -> int: ... + def InstantiateHandleRepresentation(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAngleRepresentation': ... + def Ray1VisibilityOff(self) -> None: ... + def Ray1VisibilityOn(self) -> None: ... + def Ray2VisibilityOff(self) -> None: ... + def Ray2VisibilityOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAngleRepresentation': ... + def SetArcVisibility(self, _arg:int) -> None: ... + def SetCenterDisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetHandleRepresentation(self, handle:'vtkHandleRepresentation') -> None: ... + def SetLabelFormat(self, _arg:str) -> None: ... + def SetPoint1DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint2DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetRay1Visibility(self, _arg:int) -> None: ... + def SetRay2Visibility(self, _arg:int) -> None: ... + def SetRenderer(self, ren:'vtkRenderer') -> None: ... + def SetScale(self, _arg:float) -> None: ... + def SetTolerance(self, _arg:int) -> None: ... + def StartWidgetInteraction(self, e:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, e:MutableSequence[float]) -> None: ... + +class vtkAngleRepresentation2D(vtkAngleRepresentation): + angle:'getset_descriptor' + arc:'getset_descriptor' + center_display_position:'getset_descriptor' + center_world_position:'getset_descriptor' + force3d_arc_placement:'getset_descriptor' + point1_display_position:'getset_descriptor' + point1_world_position:'getset_descriptor' + point2_display_position:'getset_descriptor' + point2_world_position:'getset_descriptor' + ray1:'getset_descriptor' + ray2:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def GetAngle(self) -> float: ... + def GetArc(self) -> 'vtkLeaderActor2D': ... + def GetCenterDisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def GetCenterWorldPosition(self, pos:MutableSequence[float]) -> None: ... + def GetForce3DArcPlacement(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoint1DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint1WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint2DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint2WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def GetRay1(self) -> 'vtkLeaderActor2D': ... + def GetRay2(self) -> 'vtkLeaderActor2D': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAngleRepresentation2D': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAngleRepresentation2D': ... + def SetCenterDisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetCenterWorldPosition(self, pos:MutableSequence[float]) -> None: ... + def SetForce3DArcPlacement(self, _arg:bool) -> None: ... + def SetPoint1DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint1WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint2DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint2WorldPosition(self, pos:MutableSequence[float]) -> None: ... + +class vtkAngleRepresentation3D(vtkAngleRepresentation): + angle:'getset_descriptor' + arc:'getset_descriptor' + center_display_position:'getset_descriptor' + center_world_position:'getset_descriptor' + point1_display_position:'getset_descriptor' + point1_world_position:'getset_descriptor' + point2_display_position:'getset_descriptor' + point2_world_position:'getset_descriptor' + ray1:'getset_descriptor' + ray2:'getset_descriptor' + text_actor:'getset_descriptor' + text_actor_scale:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def GetAngle(self) -> float: ... + def GetArc(self) -> 'vtkActor': ... + def GetCenterDisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def GetCenterWorldPosition(self, pos:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoint1DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint1WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint2DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint2WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def GetRay1(self) -> 'vtkActor': ... + def GetRay2(self) -> 'vtkActor': ... + def GetTextActor(self) -> 'vtkFollower': ... + def GetTextActorScale(self) -> Pointer: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAngleRepresentation3D': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAngleRepresentation3D': ... + def SetCenterDisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetCenterWorldPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint1DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint1WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint2DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint2WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def SetTextActorScale(self, scale:MutableSequence[float]) -> None: ... + +class vtkAngleWidget(vtkAbstractWidget): + Define:int + Manipulate:int + Start:int + angle_representation:'getset_descriptor' + enabled:'getset_descriptor' + process_events:'getset_descriptor' + representation:'getset_descriptor' + widget_state:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetAngleRepresentation(self) -> 'vtkAngleRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWidgetState(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsAngleValid(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAngleWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAngleWidget': ... + def SetEnabled(self, __a:int) -> None: ... + def SetProcessEvents(self, __a:int) -> None: ... + def SetRepresentation(self, r:'vtkAngleRepresentation') -> None: ... + def SetWidgetStateToManipulate(self) -> None: ... + def SetWidgetStateToStart(self) -> None: ... + +class vtkAxesTransformRepresentation(vtkWidgetRepresentation): + OnOrigin:int + OnX:int + OnXEnd:int + OnY:int + OnYEnd:int + OnZ:int + OnZEnd:int + Outside:int + bounds:'getset_descriptor' + interaction_state:'getset_descriptor' + label_format:'getset_descriptor' + label_property:'getset_descriptor' + label_scale:'getset_descriptor' + origin_display_position:'getset_descriptor' + origin_representation:'getset_descriptor' + origin_world_position:'getset_descriptor' + selection_representation:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetInteractionStateMaxValue(self) -> int: ... + def GetInteractionStateMinValue(self) -> int: ... + def GetLabelFormat(self) -> str: ... + def GetLabelProperty(self) -> 'vtkProperty': ... + def GetLabelScale(self) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOriginDisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def GetOriginRepresentation(self) -> 'vtkHandleRepresentation': ... + @overload + def GetOriginWorldPosition(self) -> Pointer: ... + @overload + def GetOriginWorldPosition(self, pos:MutableSequence[float]) -> None: ... + def GetSelectionRepresentation(self) -> 'vtkHandleRepresentation': ... + def GetTolerance(self) -> int: ... + def GetToleranceMaxValue(self) -> int: ... + def GetToleranceMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAxesTransformRepresentation': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAxesTransformRepresentation': ... + def SetInteractionState(self, _arg:int) -> None: ... + def SetLabelFormat(self, _arg:str) -> None: ... + @overload + def SetLabelScale(self, x:float, y:float, z:float) -> None: ... + @overload + def SetLabelScale(self, scale:MutableSequence[float]) -> None: ... + def SetOriginDisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetOriginWorldPosition(self, pos:MutableSequence[float]) -> None: ... + def SetTolerance(self, _arg:int) -> None: ... + def StartWidgetInteraction(self, e:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, e:MutableSequence[float]) -> None: ... + +class vtkAxesTransformWidget(vtkAbstractWidget): + enabled:'getset_descriptor' + line_representation:'getset_descriptor' + process_events:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetLineRepresentation(self) -> 'vtkAxesTransformRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAxesTransformWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAxesTransformWidget': ... + def SetEnabled(self, enabling:int) -> None: ... + def SetProcessEvents(self, __a:int) -> None: ... + def SetRepresentation(self, r:'vtkAxesTransformRepresentation') -> None: ... + +class vtkBalloonRepresentation(vtkWidgetRepresentation): + class InteractionStateType(int): ... + ImageBottom:int + ImageLeft:int + ImageRight:int + ImageTop:int + OnImage:'InteractionStateType' + OnText:'InteractionStateType' + Outside:'InteractionStateType' + balloon_image:'getset_descriptor' + balloon_layout:'getset_descriptor' + balloon_text:'getset_descriptor' + frame_property:'getset_descriptor' + image_property:'getset_descriptor' + image_size:'getset_descriptor' + offset:'getset_descriptor' + padding:'getset_descriptor' + text_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def EndWidgetInteraction(self, e:MutableSequence[float]) -> None: ... + def GetBalloonImage(self) -> 'vtkImageData': ... + def GetBalloonLayout(self) -> int: ... + def GetBalloonText(self) -> str: ... + def GetFrameProperty(self) -> 'vtkProperty2D': ... + def GetImageProperty(self) -> 'vtkProperty2D': ... + def GetImageSize(self) -> Tuple[int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffset(self) -> Tuple[int, int]: ... + def GetPadding(self) -> int: ... + def GetPaddingMaxValue(self) -> int: ... + def GetPaddingMinValue(self) -> int: ... + def GetTextProperty(self) -> 'vtkTextProperty': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBalloonRepresentation': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBalloonRepresentation': ... + def SetBalloonImage(self, img:'vtkImageData') -> None: ... + def SetBalloonLayout(self, _arg:int) -> None: ... + def SetBalloonLayoutToImageBottom(self) -> None: ... + def SetBalloonLayoutToImageLeft(self) -> None: ... + def SetBalloonLayoutToImageRight(self) -> None: ... + def SetBalloonLayoutToImageTop(self) -> None: ... + def SetBalloonLayoutToTextBottom(self) -> None: ... + def SetBalloonLayoutToTextLeft(self) -> None: ... + def SetBalloonLayoutToTextRight(self) -> None: ... + def SetBalloonLayoutToTextTop(self) -> None: ... + def SetBalloonText(self, _arg:str) -> None: ... + def SetFrameProperty(self, p:'vtkProperty2D') -> None: ... + def SetImageProperty(self, p:'vtkProperty2D') -> None: ... + @overload + def SetImageSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetImageSize(self, _arg:Sequence[int]) -> None: ... + @overload + def SetOffset(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetOffset(self, _arg:Sequence[int]) -> None: ... + def SetPadding(self, _arg:int) -> None: ... + def SetTextProperty(self, p:'vtkTextProperty') -> None: ... + def StartWidgetInteraction(self, e:MutableSequence[float]) -> None: ... + +class vtkHoverWidget(vtkAbstractWidget): + enabled:'getset_descriptor' + timer_duration:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTimerDuration(self) -> int: ... + def GetTimerDurationMaxValue(self) -> int: ... + def GetTimerDurationMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHoverWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHoverWidget': ... + def SetEnabled(self, __a:int) -> None: ... + def SetTimerDuration(self, _arg:int) -> None: ... + +class vtkBalloonWidget(vtkHoverWidget): + balloon_representation:'getset_descriptor' + current_prop:'getset_descriptor' + enabled:'getset_descriptor' + picker:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddBalloon(self, prop:'vtkProp', str:str, img:'vtkImageData') -> None: ... + @overload + def AddBalloon(self, prop:'vtkProp', str:str) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetBalloonImage(self, prop:'vtkProp') -> 'vtkImageData': ... + def GetBalloonRepresentation(self) -> 'vtkBalloonRepresentation': ... + def GetBalloonString(self, prop:'vtkProp') -> str: ... + def GetCurrentProp(self) -> 'vtkProp': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPicker(self) -> 'vtkAbstractPropPicker': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBalloonWidget': ... + def RegisterPickers(self) -> None: ... + def RemoveBalloon(self, prop:'vtkProp') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBalloonWidget': ... + def SetEnabled(self, __a:int) -> None: ... + def SetPicker(self, __a:'vtkAbstractPropPicker') -> None: ... + def SetRepresentation(self, r:'vtkBalloonRepresentation') -> None: ... + def UpdateBalloonImage(self, prop:'vtkProp', image:'vtkImageData') -> None: ... + def UpdateBalloonString(self, prop:'vtkProp', str:str) -> None: ... + +class vtkContourLineInterpolator(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSpan(self, nodeIndex:int, nodeIndices:'vtkIntArray', rep:'vtkContourRepresentation') -> None: ... + def InterpolateLine(self, ren:'vtkRenderer', rep:'vtkContourRepresentation', idx1:int, idx2:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContourLineInterpolator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContourLineInterpolator': ... + def UpdateNode(self, __a:'vtkRenderer', __b:'vtkContourRepresentation', node:MutableSequence[float], idx:int) -> int: ... + +class vtkBezierContourLineInterpolator(vtkContourLineInterpolator): + maximum_curve_error:'getset_descriptor' + maximum_curve_line_segments:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaximumCurveError(self) -> float: ... + def GetMaximumCurveErrorMaxValue(self) -> float: ... + def GetMaximumCurveErrorMinValue(self) -> float: ... + def GetMaximumCurveLineSegments(self) -> int: ... + def GetMaximumCurveLineSegmentsMaxValue(self) -> int: ... + def GetMaximumCurveLineSegmentsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSpan(self, nodeIndex:int, nodeIndices:'vtkIntArray', rep:'vtkContourRepresentation') -> None: ... + def InterpolateLine(self, ren:'vtkRenderer', rep:'vtkContourRepresentation', idx1:int, idx2:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBezierContourLineInterpolator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBezierContourLineInterpolator': ... + def SetMaximumCurveError(self, _arg:float) -> None: ... + def SetMaximumCurveLineSegments(self, _arg:int) -> None: ... + +class vtkBiDimensionalRepresentation(vtkWidgetRepresentation): + NearP1:int + NearP2:int + NearP3:int + NearP4:int + OnCenter:int + OnL1Inner:int + OnL1Outer:int + OnL2Inner:int + OnL2Outer:int + Outside:int + handle_representation:'getset_descriptor' + id:'getset_descriptor' + label_format:'getset_descriptor' + label_text:'getset_descriptor' + length1:'getset_descriptor' + length2:'getset_descriptor' + line1_visibility:'getset_descriptor' + line2_visibility:'getset_descriptor' + point1_display_position:'getset_descriptor' + point1_representation:'getset_descriptor' + point1_world_position:'getset_descriptor' + point2_display_position:'getset_descriptor' + point2_representation:'getset_descriptor' + point2_world_position:'getset_descriptor' + point3_display_position:'getset_descriptor' + point3_representation:'getset_descriptor' + point3_world_position:'getset_descriptor' + point4_display_position:'getset_descriptor' + point4_representation:'getset_descriptor' + point4_world_position:'getset_descriptor' + show_label_above_widget:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetID(self) -> int: ... + def GetLabelFormat(self) -> str: ... + @overload + def GetLabelPosition(self) -> Pointer: ... + @overload + def GetLabelPosition(self, pos:MutableSequence[float]) -> None: ... + def GetLabelText(self) -> str: ... + def GetLength1(self) -> float: ... + def GetLength2(self) -> float: ... + def GetLine1Visibility(self) -> int: ... + def GetLine2Visibility(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoint1DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint1Representation(self) -> 'vtkHandleRepresentation': ... + def GetPoint1WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint2DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint2Representation(self) -> 'vtkHandleRepresentation': ... + def GetPoint2WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint3DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint3Representation(self) -> 'vtkHandleRepresentation': ... + def GetPoint3WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint4DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint4Representation(self) -> 'vtkHandleRepresentation': ... + def GetPoint4WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def GetShowLabelAboveWidget(self) -> int: ... + def GetTolerance(self) -> int: ... + def GetToleranceMaxValue(self) -> int: ... + def GetToleranceMinValue(self) -> int: ... + def GetWorldLabelPosition(self, pos:MutableSequence[float]) -> None: ... + def InstantiateHandleRepresentation(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Line1VisibilityOff(self) -> None: ... + def Line1VisibilityOn(self) -> None: ... + def Line2VisibilityOff(self) -> None: ... + def Line2VisibilityOn(self) -> None: ... + def NewInstance(self) -> 'vtkBiDimensionalRepresentation': ... + def Point2WidgetInteraction(self, e:MutableSequence[float]) -> None: ... + def Point3WidgetInteraction(self, e:MutableSequence[float]) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBiDimensionalRepresentation': ... + def SetHandleRepresentation(self, handle:'vtkHandleRepresentation') -> None: ... + def SetID(self, id:int) -> None: ... + def SetLabelFormat(self, _arg:str) -> None: ... + def SetLine1Visibility(self, _arg:int) -> None: ... + def SetLine2Visibility(self, _arg:int) -> None: ... + def SetPoint1DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint1WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint2DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint2WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint3DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint3WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint4DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint4WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def SetShowLabelAboveWidget(self, _arg:int) -> None: ... + def SetTolerance(self, _arg:int) -> None: ... + def ShowLabelAboveWidgetOff(self) -> None: ... + def ShowLabelAboveWidgetOn(self) -> None: ... + def StartWidgetDefinition(self, e:MutableSequence[float]) -> None: ... + def StartWidgetManipulation(self, e:MutableSequence[float]) -> None: ... + +class vtkBiDimensionalRepresentation2D(vtkBiDimensionalRepresentation): + NearP1:int + NearP2:int + NearP3:int + NearP4:int + OnCenter:int + OnL1Inner:int + OnL1Outer:int + OnL2Inner:int + OnL2Outer:int + Outside:int + label_text:'getset_descriptor' + line_property:'getset_descriptor' + selected_line_property:'getset_descriptor' + text_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + @overload + def GetLabelPosition(self) -> Pointer: ... + @overload + def GetLabelPosition(self, pos:MutableSequence[float]) -> None: ... + def GetLabelText(self) -> str: ... + def GetLineProperty(self) -> 'vtkProperty2D': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSelectedLineProperty(self) -> 'vtkProperty2D': ... + def GetTextProperty(self) -> 'vtkTextProperty': ... + def GetWorldLabelPosition(self, pos:MutableSequence[float]) -> None: ... + def Highlight(self, highlightOn:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBiDimensionalRepresentation2D': ... + def Point2WidgetInteraction(self, e:MutableSequence[float]) -> None: ... + def Point3WidgetInteraction(self, e:MutableSequence[float]) -> None: ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBiDimensionalRepresentation2D': ... + def StartWidgetDefinition(self, e:MutableSequence[float]) -> None: ... + def StartWidgetManipulation(self, e:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, e:MutableSequence[float]) -> None: ... + +class vtkBiDimensionalWidget(vtkAbstractWidget): + Define:int + EndWidgetSelectEvent:int + Manipulate:int + Start:int + bi_dimensional_representation:'getset_descriptor' + enabled:'getset_descriptor' + process_events:'getset_descriptor' + representation:'getset_descriptor' + widget_state:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetBiDimensionalRepresentation(self) -> 'vtkBiDimensionalRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWidgetState(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsMeasureValid(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBiDimensionalWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBiDimensionalWidget': ... + def SetEnabled(self, __a:int) -> None: ... + def SetProcessEvents(self, __a:int) -> None: ... + def SetRepresentation(self, r:'vtkBiDimensionalRepresentation') -> None: ... + def SetWidgetStateToManipulate(self) -> None: ... + def SetWidgetStateToStart(self) -> None: ... + +class vtkBorderRepresentation(vtkWidgetRepresentation): + class InteractionStateType(int): ... + AdjustingE0:'InteractionStateType' + AdjustingE1:'InteractionStateType' + AdjustingE2:'InteractionStateType' + AdjustingE3:'InteractionStateType' + AdjustingP0:'InteractionStateType' + AdjustingP1:'InteractionStateType' + AdjustingP2:'InteractionStateType' + AdjustingP3:'InteractionStateType' + AnyLocation:int + BORDER_ACTIVE:int + BORDER_OFF:int + BORDER_ON:int + Inside:'InteractionStateType' + LowerCenter:int + LowerLeftCorner:int + LowerRightCorner:int + Outside:'InteractionStateType' + UpperCenter:int + UpperLeftCorner:int + UpperRightCorner:int + border_color:'getset_descriptor' + border_property:'getset_descriptor' + border_thickness:'getset_descriptor' + bw_actor_display_overlay_edges:'getset_descriptor' + bw_actor_display_overlay_polygon:'getset_descriptor' + corner_radius_strength:'getset_descriptor' + corner_resolution:'getset_descriptor' + enforce_normalized_viewport_bounds:'getset_descriptor' + interaction_state:'getset_descriptor' + m_time:'getset_descriptor' + maximum_size:'getset_descriptor' + minimum_normalized_viewport_size:'getset_descriptor' + minimum_size:'getset_descriptor' + moving:'getset_descriptor' + polygon_color:'getset_descriptor' + polygon_opacity:'getset_descriptor' + polygon_rgba:'getset_descriptor' + position:'getset_descriptor' + position2:'getset_descriptor' + position2_coordinate:'getset_descriptor' + position_coordinate:'getset_descriptor' + proportional_resize:'getset_descriptor' + selection_point:'getset_descriptor' + show_border:'getset_descriptor' + show_horizontal_border:'getset_descriptor' + show_polygon:'getset_descriptor' + show_polygon_background:'getset_descriptor' + show_vertical_border:'getset_descriptor' + tolerance:'getset_descriptor' + window_location:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def EnforceNormalizedViewportBoundsOff(self) -> None: ... + def EnforceNormalizedViewportBoundsOn(self) -> None: ... + def GetActors2D(self, __a:'vtkPropCollection') -> None: ... + def GetBorderColor(self) -> Tuple[float, float, float]: ... + def GetBorderProperty(self) -> 'vtkProperty2D': ... + def GetBorderThickness(self) -> float: ... + def GetBorderThicknessMaxValue(self) -> float: ... + def GetBorderThicknessMinValue(self) -> float: ... + def GetCornerRadiusStrength(self) -> float: ... + def GetCornerRadiusStrengthMaxValue(self) -> float: ... + def GetCornerRadiusStrengthMinValue(self) -> float: ... + def GetCornerResolution(self) -> int: ... + def GetCornerResolutionMaxValue(self) -> int: ... + def GetCornerResolutionMinValue(self) -> int: ... + def GetEnforceNormalizedViewportBounds(self) -> int: ... + def GetInteractionStateMaxValue(self) -> int: ... + def GetInteractionStateMinValue(self) -> int: ... + def GetMTime(self) -> int: ... + def GetMaximumSize(self) -> Tuple[int, int]: ... + def GetMinimumNormalizedViewportSize(self) -> Tuple[float, float]: ... + def GetMinimumSize(self) -> Tuple[int, int]: ... + def GetMoving(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPolygonColor(self) -> Tuple[float, float, float]: ... + def GetPolygonOpacity(self) -> float: ... + def GetPolygonOpacityMaxValue(self) -> float: ... + def GetPolygonOpacityMinValue(self) -> float: ... + @overload + def GetPolygonRGBA(self, rgba:MutableSequence[float]) -> None: ... + @overload + def GetPolygonRGBA(self, r:float, g:float, b:float, a:float) -> None: ... + def GetPosition(self) -> Tuple[float, float]: ... + def GetPosition2(self) -> Tuple[float, float]: ... + def GetPosition2Coordinate(self) -> 'vtkCoordinate': ... + def GetPositionCoordinate(self) -> 'vtkCoordinate': ... + def GetProportionalResize(self) -> int: ... + def GetSelectionPoint(self) -> Tuple[float, float]: ... + def GetShowBorder(self) -> int: ... + def GetShowBorderMaxValue(self) -> int: ... + def GetShowBorderMinValue(self) -> int: ... + def GetShowHorizontalBorder(self) -> int: ... + def GetShowHorizontalBorderMaxValue(self) -> int: ... + def GetShowHorizontalBorderMinValue(self) -> int: ... + def GetShowPolygon(self) -> int: ... + def GetShowPolygonBackground(self) -> int: ... + def GetShowPolygonBackgroundMaxValue(self) -> int: ... + def GetShowPolygonBackgroundMinValue(self) -> int: ... + def GetShowVerticalBorder(self) -> int: ... + def GetShowVerticalBorderMaxValue(self) -> int: ... + def GetShowVerticalBorderMinValue(self) -> int: ... + def GetSize(self, size:MutableSequence[float]) -> None: ... + def GetTolerance(self) -> int: ... + def GetToleranceMaxValue(self) -> int: ... + def GetToleranceMinValue(self) -> int: ... + def GetWindowLocation(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MovingOff(self) -> None: ... + def MovingOn(self) -> None: ... + def NewInstance(self) -> 'vtkBorderRepresentation': ... + def ProportionalResizeOff(self) -> None: ... + def ProportionalResizeOn(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBorderRepresentation': ... + def SetBWActorDisplayOverlayEdges(self, __a:bool) -> None: ... + def SetBWActorDisplayOverlayPolygon(self, __a:bool) -> None: ... + @overload + def SetBorderColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetBorderColor(self, _arg:Sequence[float]) -> None: ... + def SetBorderThickness(self, _arg:float) -> None: ... + def SetCornerRadiusStrength(self, _arg:float) -> None: ... + def SetCornerResolution(self, _arg:int) -> None: ... + def SetEnforceNormalizedViewportBounds(self, _arg:int) -> None: ... + def SetInteractionState(self, _arg:int) -> None: ... + @overload + def SetMaximumSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetMaximumSize(self, _arg:Sequence[int]) -> None: ... + @overload + def SetMinimumNormalizedViewportSize(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetMinimumNormalizedViewportSize(self, _arg:Sequence[float]) -> None: ... + @overload + def SetMinimumSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetMinimumSize(self, _arg:Sequence[int]) -> None: ... + def SetMoving(self, _arg:int) -> None: ... + @overload + def SetPolygonColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPolygonColor(self, _arg:Sequence[float]) -> None: ... + def SetPolygonOpacity(self, _arg:float) -> None: ... + @overload + def SetPolygonRGBA(self, rgba:MutableSequence[float]) -> None: ... + @overload + def SetPolygonRGBA(self, r:float, g:float, b:float, a:float) -> None: ... + @overload + def SetPosition(self, x:MutableSequence[float]) -> None: ... + @overload + def SetPosition(self, x:float, y:float) -> None: ... + @overload + def SetPosition2(self, x:MutableSequence[float]) -> None: ... + @overload + def SetPosition2(self, x:float, y:float) -> None: ... + def SetProportionalResize(self, _arg:int) -> None: ... + def SetShowBorder(self, border:int) -> None: ... + def SetShowBorderToActive(self) -> None: ... + def SetShowBorderToOff(self) -> None: ... + def SetShowBorderToOn(self) -> None: ... + def SetShowHorizontalBorder(self, _arg:int) -> None: ... + def SetShowPolygon(self, border:int) -> None: ... + def SetShowPolygonBackground(self, _arg:int) -> None: ... + def SetShowPolygonToActive(self) -> None: ... + def SetShowPolygonToOff(self) -> None: ... + def SetShowPolygonToOn(self) -> None: ... + def SetShowVerticalBorder(self, _arg:int) -> None: ... + def SetTolerance(self, _arg:int) -> None: ... + def SetWindowLocation(self, enumLocation:int) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def UpdateWindowLocation(self) -> None: ... + def WidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + +class vtkBorderWidget(vtkAbstractWidget): + border_representation:'getset_descriptor' + process_events:'getset_descriptor' + representation:'getset_descriptor' + resizable:'getset_descriptor' + selectable:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetBorderRepresentation(self) -> 'vtkBorderRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProcessEvents(self) -> int: ... + def GetResizable(self) -> int: ... + def GetSelectable(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBorderWidget': ... + def ResizableOff(self) -> None: ... + def ResizableOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBorderWidget': ... + def SelectableOff(self) -> None: ... + def SelectableOn(self) -> None: ... + def SetRepresentation(self, r:'vtkBorderRepresentation') -> None: ... + def SetResizable(self, _arg:int) -> None: ... + def SetSelectable(self, _arg:int) -> None: ... + +class vtkPointPlacer(vtkmodules.vtkCommonCore.vtkObject): + pixel_tolerance:'getset_descriptor' + world_tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ComputeWorldPosition(self, ren:'vtkRenderer', displayPos:MutableSequence[float], worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + @overload + def ComputeWorldPosition(self, ren:'vtkRenderer', displayPos:MutableSequence[float], refWorldPos:MutableSequence[float], worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPixelTolerance(self) -> int: ... + def GetPixelToleranceMaxValue(self) -> int: ... + def GetPixelToleranceMinValue(self) -> int: ... + def GetWorldTolerance(self) -> float: ... + def GetWorldToleranceMaxValue(self) -> float: ... + def GetWorldToleranceMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointPlacer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointPlacer': ... + def SetPixelTolerance(self, _arg:int) -> None: ... + def SetWorldTolerance(self, _arg:float) -> None: ... + def UpdateInternalState(self) -> int: ... + def UpdateNodeWorldPosition(self, worldPos:MutableSequence[float], nodePointId:int) -> int: ... + def UpdateWorldPosition(self, ren:'vtkRenderer', worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + def ValidateDisplayPosition(self, __a:'vtkRenderer', displayPos:MutableSequence[float]) -> int: ... + @overload + def ValidateWorldPosition(self, worldPos:MutableSequence[float]) -> int: ... + @overload + def ValidateWorldPosition(self, worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + +class vtkBoundedPlanePointPlacer(vtkPointPlacer): + Oblique:int + XAxis:int + YAxis:int + ZAxis:int + bounding_planes:'getset_descriptor' + oblique_plane:'getset_descriptor' + projection_normal:'getset_descriptor' + projection_position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddBoundingPlane(self, plane:'vtkPlane') -> None: ... + @overload + def ComputeWorldPosition(self, ren:'vtkRenderer', displayPos:MutableSequence[float], worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + @overload + def ComputeWorldPosition(self, ren:'vtkRenderer', displayPos:MutableSequence[float], refWorldPos:MutableSequence[float], worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + def GetBoundingPlanes(self) -> 'vtkPlaneCollection': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetObliquePlane(self) -> 'vtkPlane': ... + def GetProjectionNormal(self) -> int: ... + def GetProjectionNormalMaxValue(self) -> int: ... + def GetProjectionNormalMinValue(self) -> int: ... + def GetProjectionPosition(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBoundedPlanePointPlacer': ... + def RemoveAllBoundingPlanes(self) -> None: ... + def RemoveBoundingPlane(self, plane:'vtkPlane') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBoundedPlanePointPlacer': ... + @overload + def SetBoundingPlanes(self, __a:'vtkPlaneCollection') -> None: ... + @overload + def SetBoundingPlanes(self, planes:'vtkPlanes') -> None: ... + def SetObliquePlane(self, __a:'vtkPlane') -> None: ... + def SetProjectionNormal(self, _arg:int) -> None: ... + def SetProjectionNormalToOblique(self) -> None: ... + def SetProjectionNormalToXAxis(self) -> None: ... + def SetProjectionNormalToYAxis(self) -> None: ... + def SetProjectionNormalToZAxis(self) -> None: ... + def SetProjectionPosition(self, position:float) -> None: ... + def UpdateWorldPosition(self, ren:'vtkRenderer', worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + @overload + def ValidateWorldPosition(self, worldPos:MutableSequence[float]) -> int: ... + @overload + def ValidateWorldPosition(self, worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + +class vtkBoundedWidgetRepresentation(vtkWidgetRepresentation): + constrain_to_widget_bounds:'getset_descriptor' + outline_property:'getset_descriptor' + outline_translation:'getset_descriptor' + outside_bounds:'getset_descriptor' + selected_outline_property:'getset_descriptor' + translation_axis:'getset_descriptor' + widget_bounds:'getset_descriptor' + x_translation_axis_on:'getset_descriptor' + y_translation_axis_on:'getset_descriptor' + z_translation_axis_on:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConstrainToWidgetBoundsOff(self) -> None: ... + def ConstrainToWidgetBoundsOn(self) -> None: ... + def GetConstrainToWidgetBounds(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutlineProperty(self) -> 'vtkProperty': ... + def GetOutlineTranslation(self) -> bool: ... + def GetOutsideBounds(self) -> bool: ... + def GetSelectedOutlineProperty(self) -> 'vtkProperty': ... + def GetTranslationAxis(self) -> int: ... + def GetTranslationAxisMaxValue(self) -> int: ... + def GetTranslationAxisMinValue(self) -> int: ... + def GetWidgetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBoundedWidgetRepresentation': ... + def OutlineTranslationOff(self) -> None: ... + def OutlineTranslationOn(self) -> None: ... + def OutsideBoundsOff(self) -> None: ... + def OutsideBoundsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBoundedWidgetRepresentation': ... + def SetConstrainToWidgetBounds(self, _arg:bool) -> None: ... + def SetOutlineTranslation(self, _arg:bool) -> None: ... + def SetOutsideBounds(self, _arg:bool) -> None: ... + def SetTranslationAxis(self, _arg:int) -> None: ... + def SetTranslationAxisOff(self) -> None: ... + @overload + def SetWidgetBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetWidgetBounds(self, _arg:Sequence[float]) -> None: ... + def SetXTranslationAxisOn(self) -> None: ... + def SetYTranslationAxisOn(self) -> None: ... + def SetZTranslationAxisOn(self) -> None: ... + +class vtkBoxRepresentation(vtkWidgetRepresentation): + MoveF0:int + MoveF1:int + MoveF2:int + MoveF3:int + MoveF4:int + MoveF5:int + Outside:int + Rotating:int + Scaling:int + Translating:int + bounds:'getset_descriptor' + corners:'getset_descriptor' + face_property:'getset_descriptor' + foreground_color:'getset_descriptor' + handle_property:'getset_descriptor' + inside_out:'getset_descriptor' + interaction_color:'getset_descriptor' + interaction_state:'getset_descriptor' + outline_cursor_wires:'getset_descriptor' + outline_face_wires:'getset_descriptor' + outline_property:'getset_descriptor' + selected_face_property:'getset_descriptor' + selected_handle_property:'getset_descriptor' + selected_outline_property:'getset_descriptor' + snap_to_axes:'getset_descriptor' + transform:'getset_descriptor' + translation_axis:'getset_descriptor' + two_plane_mode:'getset_descriptor' + x_translation_axis_on:'getset_descriptor' + y_translation_axis_on:'getset_descriptor' + z_translation_axis_on:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def ComputeComplexInteractionState(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer, modify:int=0) -> int: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def EndComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetCorners(self) -> Tuple[float, float]: ... + def GetFaceProperty(self) -> 'vtkProperty': ... + def GetHandleProperty(self) -> 'vtkProperty': ... + def GetInsideOut(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutlineCursorWires(self) -> int: ... + def GetOutlineFaceWires(self) -> int: ... + def GetOutlineProperty(self) -> 'vtkProperty': ... + def GetPlanes(self, planes:'vtkPlanes') -> None: ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetSelectedFaceProperty(self) -> 'vtkProperty': ... + def GetSelectedHandleProperty(self) -> 'vtkProperty': ... + def GetSelectedOutlineProperty(self) -> 'vtkProperty': ... + def GetSnapToAxes(self) -> bool: ... + def GetTransform(self, t:'vtkTransform') -> None: ... + def GetTranslationAxis(self) -> int: ... + def GetTranslationAxisMaxValue(self) -> int: ... + def GetTranslationAxisMinValue(self) -> int: ... + def GetTwoPlaneMode(self) -> bool: ... + def GetUnderlyingPlane(self, i:int) -> 'vtkPlane': ... + def HandlesOff(self) -> None: ... + def HandlesOn(self) -> None: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def InsideOutOff(self) -> None: ... + def InsideOutOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsTranslationConstrained(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBoxRepresentation': ... + def OutlineCursorWiresOff(self) -> None: ... + def OutlineCursorWiresOn(self) -> None: ... + def OutlineFaceWiresOff(self) -> None: ... + def OutlineFaceWiresOn(self) -> None: ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBoxRepresentation': ... + def SetCorners(self, points:MutableSequence[float]) -> None: ... + @overload + def SetForegroundColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetForegroundColor(self, _arg:Sequence[float]) -> None: ... + def SetInsideOut(self, _arg:int) -> None: ... + @overload + def SetInteractionColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetInteractionColor(self, _arg:Sequence[float]) -> None: ... + def SetInteractionState(self, state:int) -> None: ... + def SetOutlineCursorWires(self, __a:int) -> None: ... + def SetOutlineFaceWires(self, __a:int) -> None: ... + def SetSnapToAxes(self, _arg:bool) -> None: ... + def SetTransform(self, t:'vtkTransform') -> None: ... + def SetTranslationAxis(self, _arg:int) -> None: ... + def SetTranslationAxisOff(self) -> None: ... + def SetTwoPlaneMode(self, __a:bool) -> None: ... + def SetXTranslationAxisOn(self) -> None: ... + def SetYTranslationAxisOn(self) -> None: ... + def SetZTranslationAxisOn(self) -> None: ... + def StartComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def StartWidgetInteraction(self, e:MutableSequence[float]) -> None: ... + def StepBackward(self) -> None: ... + def StepForward(self) -> None: ... + def WidgetInteraction(self, e:MutableSequence[float]) -> None: ... + +class vtkBoxWidget(vtk3DWidget): + enabled:'getset_descriptor' + face_property:'getset_descriptor' + handle_property:'getset_descriptor' + inside_out:'getset_descriptor' + outline_cursor_wires:'getset_descriptor' + outline_face_wires:'getset_descriptor' + outline_property:'getset_descriptor' + rotation_enabled:'getset_descriptor' + scaling_enabled:'getset_descriptor' + selected_face_property:'getset_descriptor' + selected_handle_property:'getset_descriptor' + selected_outline_property:'getset_descriptor' + transform:'getset_descriptor' + translation_enabled:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFaceProperty(self) -> 'vtkProperty': ... + def GetHandleProperty(self) -> 'vtkProperty': ... + def GetInsideOut(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutlineCursorWires(self) -> int: ... + def GetOutlineFaceWires(self) -> int: ... + def GetOutlineProperty(self) -> 'vtkProperty': ... + def GetPlanes(self, planes:'vtkPlanes') -> None: ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetRotationEnabled(self) -> int: ... + def GetScalingEnabled(self) -> int: ... + def GetSelectedFaceProperty(self) -> 'vtkProperty': ... + def GetSelectedHandleProperty(self) -> 'vtkProperty': ... + def GetSelectedOutlineProperty(self) -> 'vtkProperty': ... + def GetTransform(self, t:'vtkTransform') -> None: ... + def GetTranslationEnabled(self) -> int: ... + def HandlesOff(self) -> None: ... + def HandlesOn(self) -> None: ... + def InsideOutOff(self) -> None: ... + def InsideOutOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBoxWidget': ... + def OutlineCursorWiresOff(self) -> None: ... + def OutlineCursorWiresOn(self) -> None: ... + def OutlineFaceWiresOff(self) -> None: ... + def OutlineFaceWiresOn(self) -> None: ... + @overload + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + @overload + def PlaceWidget(self) -> None: ... + @overload + def PlaceWidget(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + def RotationEnabledOff(self) -> None: ... + def RotationEnabledOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBoxWidget': ... + def ScalingEnabledOff(self) -> None: ... + def ScalingEnabledOn(self) -> None: ... + def SetEnabled(self, __a:int) -> None: ... + def SetInsideOut(self, _arg:int) -> None: ... + def SetOutlineCursorWires(self, __a:int) -> None: ... + def SetOutlineFaceWires(self, __a:int) -> None: ... + def SetRotationEnabled(self, _arg:int) -> None: ... + def SetScalingEnabled(self, _arg:int) -> None: ... + def SetTransform(self, t:'vtkTransform') -> None: ... + def SetTranslationEnabled(self, _arg:int) -> None: ... + def TranslationEnabledOff(self) -> None: ... + def TranslationEnabledOn(self) -> None: ... + +class vtkBoxWidget2(vtkAbstractWidget): + enabled:'getset_descriptor' + move_faces_enabled:'getset_descriptor' + representation:'getset_descriptor' + rotation_enabled:'getset_descriptor' + scaling_enabled:'getset_descriptor' + translation_enabled:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetMoveFacesEnabled(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRotationEnabled(self) -> int: ... + def GetScalingEnabled(self) -> int: ... + def GetTranslationEnabled(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MoveFacesEnabledOff(self) -> None: ... + def MoveFacesEnabledOn(self) -> None: ... + def NewInstance(self) -> 'vtkBoxWidget2': ... + def RotationEnabledOff(self) -> None: ... + def RotationEnabledOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBoxWidget2': ... + def ScalingEnabledOff(self) -> None: ... + def ScalingEnabledOn(self) -> None: ... + def SetEnabled(self, enabling:int) -> None: ... + def SetMoveFacesEnabled(self, _arg:int) -> None: ... + def SetRepresentation(self, r:'vtkBoxRepresentation') -> None: ... + def SetRotationEnabled(self, _arg:int) -> None: ... + def SetScalingEnabled(self, _arg:int) -> None: ... + def SetTranslationEnabled(self, _arg:int) -> None: ... + def TranslationEnabledOff(self) -> None: ... + def TranslationEnabledOn(self) -> None: ... + +class vtkBrokenLineWidget(vtk3DWidget): + enabled:'getset_descriptor' + handle_property:'getset_descriptor' + handle_size_factor:'getset_descriptor' + line_property:'getset_descriptor' + number_of_handles:'getset_descriptor' + plane_source:'getset_descriptor' + process_events:'getset_descriptor' + project_to_plane:'getset_descriptor' + projection_normal:'getset_descriptor' + projection_position:'getset_descriptor' + selected_handle_property:'getset_descriptor' + selected_line_property:'getset_descriptor' + summed_length:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetHandlePosition(self, handle:int, xyz:MutableSequence[float]) -> None: ... + @overload + def GetHandlePosition(self, handle:int) -> Pointer: ... + def GetHandleProperty(self) -> 'vtkProperty': ... + def GetHandleSizeFactor(self) -> float: ... + def GetHandleSizeFactorMaxValue(self) -> float: ... + def GetHandleSizeFactorMinValue(self) -> float: ... + def GetLineProperty(self) -> 'vtkProperty': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfHandles(self) -> int: ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetProcessEvents(self) -> int: ... + def GetProcessEventsMaxValue(self) -> int: ... + def GetProcessEventsMinValue(self) -> int: ... + def GetProjectToPlane(self) -> int: ... + def GetProjectionNormal(self) -> int: ... + def GetProjectionNormalMaxValue(self) -> int: ... + def GetProjectionNormalMinValue(self) -> int: ... + def GetProjectionPosition(self) -> float: ... + def GetSelectedHandleProperty(self) -> 'vtkProperty': ... + def GetSelectedLineProperty(self) -> 'vtkProperty': ... + def GetSummedLength(self) -> float: ... + def InitializeHandles(self, points:'vtkPoints') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBrokenLineWidget': ... + @overload + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + @overload + def PlaceWidget(self) -> None: ... + @overload + def PlaceWidget(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + def ProcessEventsOff(self) -> None: ... + def ProcessEventsOn(self) -> None: ... + def ProjectToPlaneOff(self) -> None: ... + def ProjectToPlaneOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBrokenLineWidget': ... + def SetEnabled(self, __a:int) -> None: ... + @overload + def SetHandlePosition(self, handle:int, x:float, y:float, z:float) -> None: ... + @overload + def SetHandlePosition(self, handle:int, xyz:MutableSequence[float]) -> None: ... + def SetHandleProperty(self, __a:'vtkProperty') -> None: ... + def SetHandleSizeFactor(self, _arg:float) -> None: ... + def SetLineProperty(self, __a:'vtkProperty') -> None: ... + def SetNumberOfHandles(self, npts:int) -> None: ... + def SetPlaneSource(self, plane:'vtkPlaneSource') -> None: ... + def SetProcessEvents(self, _arg:int) -> None: ... + def SetProjectToPlane(self, _arg:int) -> None: ... + def SetProjectionNormal(self, _arg:int) -> None: ... + def SetProjectionNormalToOblique(self) -> None: ... + def SetProjectionNormalToXAxes(self) -> None: ... + def SetProjectionNormalToYAxes(self) -> None: ... + def SetProjectionNormalToZAxes(self) -> None: ... + def SetProjectionPosition(self, position:float) -> None: ... + def SetSelectedHandleProperty(self, __a:'vtkProperty') -> None: ... + def SetSelectedLineProperty(self, __a:'vtkProperty') -> None: ... + +class vtkButtonRepresentation(vtkWidgetRepresentation): + class HighlightStateType(int): ... + class InteractionStateType(int): ... + HighlightHovering:'HighlightStateType' + HighlightNormal:'HighlightStateType' + HighlightSelecting:'HighlightStateType' + Inside:'InteractionStateType' + Outside:'InteractionStateType' + highlight_state:'getset_descriptor' + number_of_states_max_value:'getset_descriptor' + number_of_states_min_value:'getset_descriptor' + state:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetHighlightState(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfStatesMaxValue(self) -> int: ... + def GetNumberOfStatesMinValue(self) -> int: ... + def GetState(self) -> int: ... + def Highlight(self, __a:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkButtonRepresentation': ... + def NextState(self) -> None: ... + def PreviousState(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkButtonRepresentation': ... + def SetNumberOfStates(self, _arg:int) -> None: ... + def SetState(self, state:int) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkButtonWidget(vtkAbstractWidget): + button_representation:'getset_descriptor' + enabled:'getset_descriptor' + representation:'getset_descriptor' + slider_representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetButtonRepresentation(self) -> 'vtkButtonRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSliderRepresentation(self) -> 'vtkButtonRepresentation': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkButtonWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkButtonWidget': ... + def SetEnabled(self, __a:int) -> None: ... + def SetRepresentation(self, r:'vtkButtonRepresentation') -> None: ... + +class vtkCamera3DRepresentation(vtkWidgetRepresentation): + Outside:int + Scaling:int + Translating:int + TranslatingNearTarget:int + TranslatingPosition:int + TranslatingTarget:int + TranslatingUp:int + bounds:'getset_descriptor' + camera:'getset_descriptor' + front_handle_distance:'getset_descriptor' + frustum_visibility:'getset_descriptor' + interaction_state:'getset_descriptor' + secondary_handles_visibility:'getset_descriptor' + translating_all:'getset_descriptor' + translation_axis:'getset_descriptor' + up_handle_distance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def FrustumVisibilityOff(self) -> None: ... + def FrustumVisibilityOn(self) -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetCamera(self) -> 'vtkCamera': ... + def GetFrontHandleDistance(self) -> float: ... + def GetFrontHandleDistanceMaxValue(self) -> float: ... + def GetFrontHandleDistanceMinValue(self) -> float: ... + def GetFrustumVisibility(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSecondaryHandlesVisibility(self) -> bool: ... + def GetTranslatingAll(self) -> bool: ... + def GetTranslationAxis(self) -> int: ... + def GetTranslationAxisMaxValue(self) -> int: ... + def GetTranslationAxisMinValue(self) -> int: ... + def GetUpHandleDistance(self) -> float: ... + def GetUpHandleDistanceMaxValue(self) -> float: ... + def GetUpHandleDistanceMinValue(self) -> float: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCamera3DRepresentation': ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCamera3DRepresentation': ... + def SecondaryHandlesVisibilityOff(self) -> None: ... + def SecondaryHandlesVisibilityOn(self) -> None: ... + def SetCamera(self, camera:'vtkCamera') -> None: ... + def SetFrontHandleDistance(self, _arg:float) -> None: ... + def SetFrustumVisibility(self, visible:bool) -> None: ... + def SetInteractionState(self, state:int) -> None: ... + def SetSecondaryHandlesVisibility(self, visible:bool) -> None: ... + def SetTranslatingAll(self, _arg:bool) -> None: ... + def SetTranslationAxis(self, _arg:int) -> None: ... + def SetTranslationAxisToNone(self) -> None: ... + def SetTranslationAxisToXAxis(self) -> None: ... + def SetTranslationAxisToYAxis(self) -> None: ... + def SetTranslationAxisToZAxis(self) -> None: ... + def SetUpHandleDistance(self, _arg:float) -> None: ... + def StartWidgetInteraction(self, e:MutableSequence[float]) -> None: ... + def TranslatingAllOff(self) -> None: ... + def TranslatingAllOn(self) -> None: ... + def WidgetInteraction(self, e:MutableSequence[float]) -> None: ... + +class vtkCamera3DWidget(vtkAbstractWidget): + enabled:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCamera3DWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCamera3DWidget': ... + def SetEnabled(self, enabling:int) -> None: ... + def SetRepresentation(self, r:'vtkCamera3DRepresentation') -> None: ... + +class vtkCameraHandleSource(vtkmodules.vtkFiltersSources.vtkHandleSource): + camera:'getset_descriptor' + direction:'getset_descriptor' + position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetDirection(self) -> Pointer: ... + @overload + def GetDirection(self, dir:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetPosition(self) -> Pointer: ... + @overload + def GetPosition(self, pos:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCameraHandleSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCameraHandleSource': ... + def SetCamera(self, cam:'vtkCamera') -> None: ... + @overload + def SetDirection(self, xTarget:float, yTarget:float, zTarget:float) -> None: ... + @overload + def SetDirection(self, dir:Sequence[float]) -> None: ... + @overload + def SetPosition(self, xPos:float, yPos:float, zPos:float) -> None: ... + @overload + def SetPosition(self, pos:Sequence[float]) -> None: ... + +class vtkCameraOrientationRepresentation(vtkWidgetRepresentation): + class AnchorType(int): + LowerLeft:'AnchorType' + LowerRight:'AnchorType' + UpperLeft:'AnchorType' + UpperRight:'AnchorType' + class InteractionStateType(int): + Hovering:'InteractionStateType' + Outside:'InteractionStateType' + Rotating:'InteractionStateType' + anchor_position:'getset_descriptor' + azimuth:'getset_descriptor' + back:'getset_descriptor' + bounds:'getset_descriptor' + container_circumferential_resolution:'getset_descriptor' + container_property:'getset_descriptor' + container_radial_resolution:'getset_descriptor' + container_visibility:'getset_descriptor' + elevation:'getset_descriptor' + handle_circumferential_resolution:'getset_descriptor' + interaction_state_as_enum:'getset_descriptor' + normalized_handle_dia:'getset_descriptor' + padding:'getset_descriptor' + picked_axis:'getset_descriptor' + picked_dir:'getset_descriptor' + shaft_resolution:'getset_descriptor' + size:'getset_descriptor' + total_length:'getset_descriptor' + transform:'getset_descriptor' + up:'getset_descriptor' + x_minus_label_property:'getset_descriptor' + x_minus_label_text:'getset_descriptor' + x_plus_label_property:'getset_descriptor' + x_plus_label_text:'getset_descriptor' + y_minus_label_property:'getset_descriptor' + y_minus_label_text:'getset_descriptor' + y_plus_label_property:'getset_descriptor' + y_plus_label_text:'getset_descriptor' + z_minus_label_property:'getset_descriptor' + z_minus_label_text:'getset_descriptor' + z_plus_label_property:'getset_descriptor' + z_plus_label_text:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AnchorToLowerLeft(self) -> None: ... + def AnchorToLowerRight(self) -> None: ... + def AnchorToUpperLeft(self) -> None: ... + def AnchorToUpperRight(self) -> None: ... + @overload + def ApplyInteractionState(self, state:'InteractionStateType') -> None: ... + @overload + def ApplyInteractionState(self, state:int) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def ContainerVisibilityOff(self) -> None: ... + def ContainerVisibilityOn(self) -> None: ... + def EndWidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetAnchorPosition(self) -> 'AnchorType': ... + def GetAzimuth(self) -> float: ... + def GetBack(self) -> Tuple[float, float, float]: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetContainerCircumferentialResolution(self) -> int: ... + def GetContainerCircumferentialResolutionMaxValue(self) -> int: ... + def GetContainerCircumferentialResolutionMinValue(self) -> int: ... + def GetContainerProperty(self) -> 'vtkProperty': ... + def GetContainerRadialResolution(self) -> int: ... + def GetContainerRadialResolutionMaxValue(self) -> int: ... + def GetContainerRadialResolutionMinValue(self) -> int: ... + def GetContainerVisibility(self) -> bool: ... + def GetElevation(self) -> float: ... + def GetHandleCircumferentialResolution(self) -> int: ... + def GetHandleCircumferentialResolutionMaxValue(self) -> int: ... + def GetHandleCircumferentialResolutionMinValue(self) -> int: ... + def GetInteractionStateAsEnum(self) -> 'InteractionStateType': ... + def GetNormalizedHandleDia(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPadding(self) -> Tuple[int, int]: ... + def GetPickedAxis(self) -> int: ... + def GetPickedDir(self) -> int: ... + def GetShaftResolution(self) -> int: ... + def GetShaftResolutionMaxValue(self) -> int: ... + def GetShaftResolutionMinValue(self) -> int: ... + def GetSize(self) -> Tuple[int, int]: ... + def GetTotalLength(self) -> float: ... + def GetTransform(self) -> 'vtkTransform': ... + def GetUp(self) -> Tuple[float, float, float]: ... + def GetXMinusLabelProperty(self) -> 'vtkTextProperty': ... + def GetXMinusLabelText(self) -> str: ... + def GetXPlusLabelProperty(self) -> 'vtkTextProperty': ... + def GetXPlusLabelText(self) -> str: ... + def GetYMinusLabelProperty(self) -> 'vtkTextProperty': ... + def GetYMinusLabelText(self) -> str: ... + def GetYPlusLabelProperty(self) -> 'vtkTextProperty': ... + def GetYPlusLabelText(self) -> str: ... + def GetZMinusLabelProperty(self) -> 'vtkTextProperty': ... + def GetZMinusLabelText(self) -> str: ... + def GetZPlusLabelProperty(self) -> 'vtkTextProperty': ... + def GetZPlusLabelText(self) -> str: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsAnyHandleSelected(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCameraOrientationRepresentation': ... + def PlaceWidget(self, __a:MutableSequence[float]) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCameraOrientationRepresentation': ... + def SetAnchorPosition(self, _arg:'AnchorType') -> None: ... + def SetContainerCircumferentialResolution(self, _arg:int) -> None: ... + def SetContainerRadialResolution(self, _arg:int) -> None: ... + def SetContainerVisibility(self, state:bool) -> None: ... + def SetHandleCircumferentialResolution(self, _arg:int) -> None: ... + def SetNormalizedHandleDia(self, _arg:float) -> None: ... + @overload + def SetPadding(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetPadding(self, _arg:Sequence[int]) -> None: ... + def SetShaftResolution(self, _arg:int) -> None: ... + @overload + def SetSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetSize(self, _arg:Sequence[int]) -> None: ... + def SetTotalLength(self, _arg:float) -> None: ... + def SetXMinusLabelText(self, label:str) -> None: ... + def SetXPlusLabelText(self, label:str) -> None: ... + def SetYMinusLabelText(self, label:str) -> None: ... + def SetYPlusLabelText(self, label:str) -> None: ... + def SetZMinusLabelText(self, label:str) -> None: ... + def SetZPlusLabelText(self, label:str) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + +class vtkCameraOrientationWidget(vtkAbstractWidget): + animate:'getset_descriptor' + animator_total_frames:'getset_descriptor' + default_renderer:'getset_descriptor' + parent_renderer:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AnimateOff(self) -> None: ... + def AnimateOn(self) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetAnimate(self) -> bool: ... + def GetAnimatorTotalFrames(self) -> int: ... + def GetAnimatorTotalFramesMaxValue(self) -> int: ... + def GetAnimatorTotalFramesMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParentRenderer(self) -> 'vtkRenderer': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCameraOrientationWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCameraOrientationWidget': ... + def SetAnimate(self, _arg:bool) -> None: ... + def SetAnimatorTotalFrames(self, _arg:int) -> None: ... + def SetDefaultRenderer(self, renderer:'vtkRenderer') -> None: ... + def SetParentRenderer(self, renderer:'vtkRenderer') -> None: ... + def SetRepresentation(self, r:'vtkCameraOrientationRepresentation') -> None: ... + def SquareResize(self) -> None: ... + +class vtkCameraPathRepresentation(vtkAbstractSplineRepresentation): + directional:'getset_descriptor' + number_of_handles:'getset_descriptor' + parametric_spline:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddCameraAt(self, camera:'vtkCamera', index:int) -> None: ... + def BuildRepresentation(self) -> None: ... + def DeleteCameraAt(self, index:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InitializeHandles(self, points:'vtkPoints') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCameraPathRepresentation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCameraPathRepresentation': ... + def SetDirectional(self, val:bool) -> None: ... + def SetNumberOfHandles(self, npts:int) -> None: ... + def SetParametricSpline(self, spline:'vtkParametricSpline') -> None: ... + +class vtkCameraPathWidget(vtkAbstractWidget): + enabled:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCameraPathWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCameraPathWidget': ... + def SetEnabled(self, enabling:int) -> None: ... + def SetRepresentation(self, r:'vtkCameraPathRepresentation') -> None: ... + +class vtkCameraRepresentation(vtkBorderRepresentation): + camera:'getset_descriptor' + interpolator:'getset_descriptor' + number_of_frames:'getset_descriptor' + number_of_frames_max_value:'getset_descriptor' + number_of_frames_min_value:'getset_descriptor' + property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddCameraToPath(self) -> None: ... + def AnimatePath(self, rwi:'vtkRenderWindowInteractor') -> None: ... + def BuildRepresentation(self) -> None: ... + def GetActors2D(self, __a:'vtkPropCollection') -> None: ... + def GetCamera(self) -> 'vtkCamera': ... + def GetInterpolator(self) -> 'vtkCameraInterpolator': ... + def GetNumberOfFrames(self) -> int: ... + def GetNumberOfFramesMaxValue(self) -> int: ... + def GetNumberOfFramesMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProperty(self) -> 'vtkProperty2D': ... + def GetSize(self, size:MutableSequence[float]) -> None: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def InitializePath(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCameraRepresentation': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCameraRepresentation': ... + def SetCamera(self, camera:'vtkCamera') -> None: ... + def SetInterpolator(self, camInt:'vtkCameraInterpolator') -> None: ... + def SetNumberOfFrames(self, _arg:int) -> None: ... + +class vtkCameraWidget(vtkBorderWidget): + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCameraWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCameraWidget': ... + def SetRepresentation(self, r:'vtkCameraRepresentation') -> None: ... + +class vtkCaptionRepresentation(vtkBorderRepresentation): + class FitType(int): ... + VTK_FIT_TO_BORDER:'FitType' + VTK_FIT_TO_TEXT:'FitType' + anchor_position:'getset_descriptor' + anchor_representation:'getset_descriptor' + caption_actor2d:'getset_descriptor' + fit:'getset_descriptor' + font_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def GetActors2D(self, __a:'vtkPropCollection') -> None: ... + def GetAnchorPosition(self, pos:MutableSequence[float]) -> None: ... + def GetAnchorRepresentation(self) -> 'vtkPointHandleRepresentation3D': ... + def GetCaptionActor2D(self) -> 'vtkCaptionActor2D': ... + def GetFit(self) -> int: ... + def GetFitAsString(self) -> str: ... + def GetFitMaxValue(self) -> int: ... + def GetFitMinValue(self) -> int: ... + def GetFontFactor(self) -> float: ... + def GetFontFactorMaxValue(self) -> float: ... + def GetFontFactorMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSize(self, size:MutableSequence[float]) -> None: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCaptionRepresentation': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCaptionRepresentation': ... + def SetAnchorPosition(self, pos:MutableSequence[float]) -> None: ... + def SetAnchorRepresentation(self, __a:'vtkPointHandleRepresentation3D') -> None: ... + def SetCaptionActor2D(self, captionActor:'vtkCaptionActor2D') -> None: ... + def SetFit(self, _arg:int) -> None: ... + def SetFitToBorder(self) -> None: ... + def SetFitToText(self) -> None: ... + def SetFontFactor(self, _arg:float) -> None: ... + +class vtkCaptionWidget(vtkBorderWidget): + caption_actor2d:'getset_descriptor' + enabled:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetCaptionActor2D(self) -> 'vtkCaptionActor2D': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCaptionWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCaptionWidget': ... + def SetCaptionActor2D(self, capActor:'vtkCaptionActor2D') -> None: ... + def SetEnabled(self, enabling:int) -> None: ... + def SetRepresentation(self, r:'vtkCaptionRepresentation') -> None: ... + +class vtkCellCentersPointPlacer(vtkPointPlacer): + CellPointsMean:int + None_:int + ParametricCenter:int + cell_picker:'getset_descriptor' + mode:'getset_descriptor' + number_of_props:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddProp(self, __a:'vtkProp') -> None: ... + @overload + def ComputeWorldPosition(self, ren:'vtkRenderer', displayPos:MutableSequence[float], worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + @overload + def ComputeWorldPosition(self, ren:'vtkRenderer', displayPos:MutableSequence[float], refWorldPos:MutableSequence[float], worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + def GetCellPicker(self) -> 'vtkCellPicker': ... + def GetMode(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfProps(self) -> int: ... + def HasProp(self, __a:'vtkProp') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellCentersPointPlacer': ... + def RemoveAllProps(self) -> None: ... + def RemoveViewProp(self, prop:'vtkProp') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellCentersPointPlacer': ... + def SetMode(self, _arg:int) -> None: ... + def ValidateDisplayPosition(self, __a:'vtkRenderer', displayPos:MutableSequence[float]) -> int: ... + @overload + def ValidateWorldPosition(self, worldPos:MutableSequence[float]) -> int: ... + @overload + def ValidateWorldPosition(self, worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + +class vtkSliderRepresentation(vtkWidgetRepresentation): + class InteractionStateType(int): ... + LeftCap:'InteractionStateType' + Outside:'InteractionStateType' + RightCap:'InteractionStateType' + Slider:'InteractionStateType' + Tube:'InteractionStateType' + current_t:'getset_descriptor' + end_cap_length:'getset_descriptor' + end_cap_width:'getset_descriptor' + label_format:'getset_descriptor' + label_height:'getset_descriptor' + maximum_value:'getset_descriptor' + minimum_value:'getset_descriptor' + picked_t:'getset_descriptor' + show_slider_label:'getset_descriptor' + slider_length:'getset_descriptor' + slider_width:'getset_descriptor' + title_height:'getset_descriptor' + title_text:'getset_descriptor' + tube_width:'getset_descriptor' + value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCurrentT(self) -> float: ... + def GetEndCapLength(self) -> float: ... + def GetEndCapLengthMaxValue(self) -> float: ... + def GetEndCapLengthMinValue(self) -> float: ... + def GetEndCapWidth(self) -> float: ... + def GetEndCapWidthMaxValue(self) -> float: ... + def GetEndCapWidthMinValue(self) -> float: ... + def GetLabelFormat(self) -> str: ... + def GetLabelHeight(self) -> float: ... + def GetLabelHeightMaxValue(self) -> float: ... + def GetLabelHeightMinValue(self) -> float: ... + def GetMaximumValue(self) -> float: ... + def GetMinimumValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPickedT(self) -> float: ... + def GetShowSliderLabel(self) -> int: ... + def GetSliderLength(self) -> float: ... + def GetSliderLengthMaxValue(self) -> float: ... + def GetSliderLengthMinValue(self) -> float: ... + def GetSliderWidth(self) -> float: ... + def GetSliderWidthMaxValue(self) -> float: ... + def GetSliderWidthMinValue(self) -> float: ... + def GetTitleHeight(self) -> float: ... + def GetTitleHeightMaxValue(self) -> float: ... + def GetTitleHeightMinValue(self) -> float: ... + def GetTitleText(self) -> str: ... + def GetTubeWidth(self) -> float: ... + def GetTubeWidthMaxValue(self) -> float: ... + def GetTubeWidthMinValue(self) -> float: ... + def GetValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSliderRepresentation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSliderRepresentation': ... + def SetEndCapLength(self, _arg:float) -> None: ... + def SetEndCapWidth(self, _arg:float) -> None: ... + def SetLabelFormat(self, _arg:str) -> None: ... + def SetLabelHeight(self, _arg:float) -> None: ... + def SetMaximumValue(self, value:float) -> None: ... + def SetMinimumValue(self, value:float) -> None: ... + def SetShowSliderLabel(self, _arg:int) -> None: ... + def SetSliderLength(self, _arg:float) -> None: ... + def SetSliderWidth(self, _arg:float) -> None: ... + def SetTitleHeight(self, _arg:float) -> None: ... + def SetTitleText(self, __a:str) -> None: ... + def SetTubeWidth(self, _arg:float) -> None: ... + def SetValue(self, value:float) -> None: ... + def ShowSliderLabelOff(self) -> None: ... + def ShowSliderLabelOn(self) -> None: ... + +class vtkCenteredSliderRepresentation(vtkSliderRepresentation): + label_property:'getset_descriptor' + point1_coordinate:'getset_descriptor' + point2_coordinate:'getset_descriptor' + selected_property:'getset_descriptor' + slider_property:'getset_descriptor' + title_text:'getset_descriptor' + tube_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def GetActors(self, propCollections:'vtkPropCollection') -> None: ... + def GetLabelProperty(self) -> 'vtkTextProperty': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoint1Coordinate(self) -> 'vtkCoordinate': ... + def GetPoint2Coordinate(self) -> 'vtkCoordinate': ... + def GetSelectedProperty(self) -> 'vtkProperty2D': ... + def GetSliderProperty(self) -> 'vtkProperty2D': ... + def GetTitleText(self) -> str: ... + def GetTubeProperty(self) -> 'vtkProperty2D': ... + def Highlight(self, __a:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCenteredSliderRepresentation': ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def ReleaseGraphicsResources(self, window:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCenteredSliderRepresentation': ... + def SetTitleText(self, __a:str) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + +class vtkCenteredSliderWidget(vtkAbstractWidget): + representation:'getset_descriptor' + slider_representation:'getset_descriptor' + value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSliderRepresentation(self) -> 'vtkSliderRepresentation': ... + def GetValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCenteredSliderWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCenteredSliderWidget': ... + def SetRepresentation(self, r:'vtkSliderRepresentation') -> None: ... + +class vtkCheckerboardRepresentation(vtkWidgetRepresentation): + BottomSlider:int + LeftSlider:int + RightSlider:int + TopSlider:int + bottom_representation:'getset_descriptor' + checkerboard:'getset_descriptor' + corner_offset:'getset_descriptor' + image_actor:'getset_descriptor' + left_representation:'getset_descriptor' + right_representation:'getset_descriptor' + top_representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetBottomRepresentation(self) -> 'vtkSliderRepresentation3D': ... + def GetCheckerboard(self) -> 'vtkImageCheckerboard': ... + def GetCornerOffset(self) -> float: ... + def GetCornerOffsetMaxValue(self) -> float: ... + def GetCornerOffsetMinValue(self) -> float: ... + def GetImageActor(self) -> 'vtkImageActor': ... + def GetLeftRepresentation(self) -> 'vtkSliderRepresentation3D': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRightRepresentation(self) -> 'vtkSliderRepresentation3D': ... + def GetTopRepresentation(self) -> 'vtkSliderRepresentation3D': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCheckerboardRepresentation': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCheckerboardRepresentation': ... + def SetBottomRepresentation(self, __a:'vtkSliderRepresentation3D') -> None: ... + def SetCheckerboard(self, chkrbrd:'vtkImageCheckerboard') -> None: ... + def SetCornerOffset(self, _arg:float) -> None: ... + def SetImageActor(self, imageActor:'vtkImageActor') -> None: ... + def SetLeftRepresentation(self, __a:'vtkSliderRepresentation3D') -> None: ... + def SetRightRepresentation(self, __a:'vtkSliderRepresentation3D') -> None: ... + def SetTopRepresentation(self, __a:'vtkSliderRepresentation3D') -> None: ... + def SliderValueChanged(self, sliderNum:int) -> None: ... + +class vtkCheckerboardWidget(vtkAbstractWidget): + checkerboard_representation:'getset_descriptor' + enabled:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetCheckerboardRepresentation(self) -> 'vtkCheckerboardRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCheckerboardWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCheckerboardWidget': ... + def SetEnabled(self, __a:int) -> None: ... + def SetRepresentation(self, r:'vtkCheckerboardRepresentation') -> None: ... + +class vtkClosedSurfacePointPlacer(vtkPointPlacer): + bounding_planes:'getset_descriptor' + minimum_distance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddBoundingPlane(self, plane:'vtkPlane') -> None: ... + @overload + def ComputeWorldPosition(self, ren:'vtkRenderer', displayPos:MutableSequence[float], worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + @overload + def ComputeWorldPosition(self, ren:'vtkRenderer', displayPos:MutableSequence[float], refWorldPos:MutableSequence[float], worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + def GetBoundingPlanes(self) -> 'vtkPlaneCollection': ... + def GetMinimumDistance(self) -> float: ... + def GetMinimumDistanceMaxValue(self) -> float: ... + def GetMinimumDistanceMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkClosedSurfacePointPlacer': ... + def RemoveAllBoundingPlanes(self) -> None: ... + def RemoveBoundingPlane(self, plane:'vtkPlane') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkClosedSurfacePointPlacer': ... + @overload + def SetBoundingPlanes(self, __a:'vtkPlaneCollection') -> None: ... + @overload + def SetBoundingPlanes(self, planes:'vtkPlanes') -> None: ... + def SetMinimumDistance(self, _arg:float) -> None: ... + @overload + def ValidateWorldPosition(self, worldPos:MutableSequence[float]) -> int: ... + @overload + def ValidateWorldPosition(self, worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + +class vtkContinuousValueWidgetRepresentation(vtkWidgetRepresentation): + class InteractionStateType(int): ... + Adjusting:'InteractionStateType' + Inside:'InteractionStateType' + Outside:'InteractionStateType' + value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContinuousValueWidgetRepresentation': ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContinuousValueWidgetRepresentation': ... + def SetValue(self, value:float) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + +class vtkCompassRepresentation(vtkContinuousValueWidgetRepresentation): + class InteractionStateType(int): ... + Adjusting:'InteractionStateType' + DistanceAdjusting:'InteractionStateType' + DistanceIn:'InteractionStateType' + DistanceOut:'InteractionStateType' + Inside:'InteractionStateType' + Outside:'InteractionStateType' + TiltAdjusting:'InteractionStateType' + TiltDown:'InteractionStateType' + TiltUp:'InteractionStateType' + distance:'getset_descriptor' + heading:'getset_descriptor' + label_property:'getset_descriptor' + maximum_distance:'getset_descriptor' + maximum_tilt_angle:'getset_descriptor' + minimum_distance:'getset_descriptor' + minimum_tilt_angle:'getset_descriptor' + point1_coordinate:'getset_descriptor' + point2_coordinate:'getset_descriptor' + renderer:'getset_descriptor' + ring_property:'getset_descriptor' + selected_property:'getset_descriptor' + tilt:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def DistanceWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def EndDistance(self) -> None: ... + def EndTilt(self) -> None: ... + def GetActors(self, propCollection:'vtkPropCollection') -> None: ... + def GetDistance(self) -> float: ... + def GetHeading(self) -> float: ... + def GetLabelProperty(self) -> 'vtkTextProperty': ... + def GetMaximumDistance(self) -> float: ... + def GetMaximumTiltAngle(self) -> float: ... + def GetMinimumDistance(self) -> float: ... + def GetMinimumTiltAngle(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoint1Coordinate(self) -> 'vtkCoordinate': ... + def GetPoint2Coordinate(self) -> 'vtkCoordinate': ... + def GetRingProperty(self) -> 'vtkProperty2D': ... + def GetSelectedProperty(self) -> 'vtkProperty2D': ... + def GetTilt(self) -> float: ... + def Highlight(self, __a:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompassRepresentation': ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def ReleaseGraphicsResources(self, window:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, viewPort:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompassRepresentation': ... + def SetDistance(self, distance:float) -> None: ... + def SetHeading(self, heading:float) -> None: ... + def SetMaximumDistance(self, distance:float) -> None: ... + def SetMaximumTiltAngle(self, angle:float) -> None: ... + def SetMinimumDistance(self, distance:float) -> None: ... + def SetMinimumTiltAngle(self, angle:float) -> None: ... + def SetRenderer(self, renderer:'vtkRenderer') -> None: ... + def SetTilt(self, tilt:float) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def TiltWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def UpdateDistance(self, deltaDistance:float=0) -> None: ... + def UpdateTilt(self, deltaTilt:float=0) -> None: ... + def WidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + +class vtkCompassWidget(vtkAbstractWidget): + distance:'getset_descriptor' + distance_speed:'getset_descriptor' + heading:'getset_descriptor' + representation:'getset_descriptor' + tilt:'getset_descriptor' + tilt_speed:'getset_descriptor' + timer_duration:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetDistance(self) -> float: ... + def GetDistanceSpeed(self) -> float: ... + def GetHeading(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTilt(self) -> float: ... + def GetTiltSpeed(self) -> float: ... + def GetTimerDuration(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompassWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompassWidget': ... + def SetDistance(self, distance:float) -> None: ... + def SetDistanceSpeed(self, _arg:float) -> None: ... + def SetHeading(self, v:float) -> None: ... + def SetRepresentation(self, r:'vtkCompassRepresentation') -> None: ... + def SetTilt(self, tilt:float) -> None: ... + def SetTiltSpeed(self, _arg:float) -> None: ... + def SetTimerDuration(self, _arg:int) -> None: ... + +class vtkConstrainedPointHandleRepresentation(vtkHandleRepresentation): + Oblique:int + XAxis:int + YAxis:int + ZAxis:int + active_cursor_shape:'getset_descriptor' + active_property:'getset_descriptor' + bounding_planes:'getset_descriptor' + cursor_shape:'getset_descriptor' + display_position:'getset_descriptor' + oblique_plane:'getset_descriptor' + position:'getset_descriptor' + projection_normal:'getset_descriptor' + projection_position:'getset_descriptor' + property:'getset_descriptor' + renderer:'getset_descriptor' + selected_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddBoundingPlane(self, plane:'vtkPlane') -> None: ... + def BuildRepresentation(self) -> None: ... + def CheckConstraint(self, renderer:'vtkRenderer', pos:MutableSequence[float]) -> int: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int) -> int: ... + def GetActiveCursorShape(self) -> 'vtkPolyData': ... + def GetActiveProperty(self) -> 'vtkProperty': ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetBoundingPlanes(self) -> 'vtkPlaneCollection': ... + def GetCursorShape(self) -> 'vtkPolyData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetObliquePlane(self) -> 'vtkPlane': ... + @overload + def GetPosition(self) -> Pointer: ... + @overload + def GetPosition(self, xyz:MutableSequence[float]) -> None: ... + def GetProjectionNormal(self) -> int: ... + def GetProjectionNormalMaxValue(self) -> int: ... + def GetProjectionNormalMinValue(self) -> int: ... + def GetProjectionPosition(self) -> float: ... + def GetProperty(self) -> 'vtkProperty': ... + def GetSelectedProperty(self) -> 'vtkProperty': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def Highlight(self, highlight:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkConstrainedPointHandleRepresentation': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RemoveAllBoundingPlanes(self) -> None: ... + def RemoveBoundingPlane(self, plane:'vtkPlane') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConstrainedPointHandleRepresentation': ... + def SetActiveCursorShape(self, activeShape:'vtkPolyData') -> None: ... + @overload + def SetBoundingPlanes(self, __a:'vtkPlaneCollection') -> None: ... + @overload + def SetBoundingPlanes(self, planes:'vtkPlanes') -> None: ... + def SetCursorShape(self, cursorShape:'vtkPolyData') -> None: ... + def SetDisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetObliquePlane(self, __a:'vtkPlane') -> None: ... + @overload + def SetPosition(self, x:float, y:float, z:float) -> None: ... + @overload + def SetPosition(self, xyz:MutableSequence[float]) -> None: ... + def SetProjectionNormal(self, _arg:int) -> None: ... + def SetProjectionNormalToOblique(self) -> None: ... + def SetProjectionNormalToXAxis(self) -> None: ... + def SetProjectionNormalToYAxis(self) -> None: ... + def SetProjectionNormalToZAxis(self) -> None: ... + def SetProjectionPosition(self, position:float) -> None: ... + def SetRenderer(self, ren:'vtkRenderer') -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def Translate(self, p1:Sequence[float], p2:Sequence[float]) -> None: ... + def WidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + +class vtkContinuousValueWidget(vtkAbstractWidget): + continuous_value_widget_representation:'getset_descriptor' + representation:'getset_descriptor' + value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetContinuousValueWidgetRepresentation(self) -> 'vtkContinuousValueWidgetRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContinuousValueWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContinuousValueWidget': ... + def SetRepresentation(self, r:'vtkContinuousValueWidgetRepresentation') -> None: ... + def SetValue(self, v:float) -> None: ... + +class vtkContourRepresentation(vtkWidgetRepresentation): + Inactive:int + Nearby:int + Outside:int + Scale:int + Shift:int + Translate:int + active_node_selected:'getset_descriptor' + closed_loop:'getset_descriptor' + contour_representation_as_poly_data:'getset_descriptor' + current_operation:'getset_descriptor' + line_interpolator:'getset_descriptor' + pixel_tolerance:'getset_descriptor' + point_placer:'getset_descriptor' + rebuild_locator:'getset_descriptor' + show_selected_nodes:'getset_descriptor' + world_tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ActivateNode(self, displayPos:MutableSequence[float]) -> int: ... + @overload + def ActivateNode(self, displayPos:MutableSequence[int]) -> int: ... + @overload + def ActivateNode(self, X:int, Y:int) -> int: ... + @overload + def AddIntermediatePointWorldPosition(self, n:int, point:MutableSequence[float]) -> int: ... + @overload + def AddIntermediatePointWorldPosition(self, n:int, point:MutableSequence[float], ptId:int) -> int: ... + @overload + def AddNodeAtDisplayPosition(self, displayPos:MutableSequence[float]) -> int: ... + @overload + def AddNodeAtDisplayPosition(self, displayPos:MutableSequence[int]) -> int: ... + @overload + def AddNodeAtDisplayPosition(self, X:int, Y:int) -> int: ... + @overload + def AddNodeAtWorldPosition(self, x:float, y:float, z:float) -> int: ... + @overload + def AddNodeAtWorldPosition(self, worldPos:MutableSequence[float]) -> int: ... + @overload + def AddNodeAtWorldPosition(self, worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + def AddNodeOnContour(self, X:int, Y:int) -> int: ... + def BuildRepresentation(self) -> None: ... + def ClearAllNodes(self) -> None: ... + def ClosedLoopOff(self) -> None: ... + def ClosedLoopOn(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modified:int=0) -> int: ... + def DeleteActiveNode(self) -> int: ... + def DeleteLastNode(self) -> int: ... + def DeleteNthNode(self, n:int) -> int: ... + def GetActiveNodeDisplayPosition(self, pos:MutableSequence[float]) -> int: ... + def GetActiveNodeSelected(self) -> int: ... + def GetActiveNodeWorldOrientation(self, orient:MutableSequence[float]) -> int: ... + def GetActiveNodeWorldPosition(self, pos:MutableSequence[float]) -> int: ... + def GetClosedLoop(self) -> int: ... + def GetContourRepresentationAsPolyData(self) -> 'vtkPolyData': ... + def GetCurrentOperation(self) -> int: ... + def GetCurrentOperationMaxValue(self) -> int: ... + def GetCurrentOperationMinValue(self) -> int: ... + def GetIntermediatePointWorldPosition(self, n:int, idx:int, point:MutableSequence[float]) -> int: ... + def GetLineInterpolator(self) -> 'vtkContourLineInterpolator': ... + def GetNodePolyData(self, poly:'vtkPolyData') -> None: ... + def GetNthNodeDisplayPosition(self, n:int, pos:MutableSequence[float]) -> int: ... + def GetNthNodeSelected(self, __a:int) -> int: ... + def GetNthNodeSlope(self, idx:int, slope:MutableSequence[float]) -> int: ... + def GetNthNodeWorldOrientation(self, n:int, orient:MutableSequence[float]) -> int: ... + def GetNthNodeWorldPosition(self, n:int, pos:MutableSequence[float]) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIntermediatePoints(self, n:int) -> int: ... + def GetNumberOfNodes(self) -> int: ... + def GetPixelTolerance(self) -> int: ... + def GetPixelToleranceMaxValue(self) -> int: ... + def GetPixelToleranceMinValue(self) -> int: ... + def GetPointPlacer(self) -> 'vtkPointPlacer': ... + def GetShowSelectedNodes(self) -> int: ... + def GetWorldTolerance(self) -> float: ... + def GetWorldToleranceMaxValue(self) -> float: ... + def GetWorldToleranceMinValue(self) -> float: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContourRepresentation': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContourRepresentation': ... + @overload + def SetActiveNodeToDisplayPosition(self, pos:MutableSequence[float]) -> int: ... + @overload + def SetActiveNodeToDisplayPosition(self, pos:MutableSequence[int]) -> int: ... + @overload + def SetActiveNodeToDisplayPosition(self, X:int, Y:int) -> int: ... + @overload + def SetActiveNodeToWorldPosition(self, pos:MutableSequence[float]) -> int: ... + @overload + def SetActiveNodeToWorldPosition(self, pos:MutableSequence[float], orient:MutableSequence[float]) -> int: ... + def SetClosedLoop(self, val:int) -> None: ... + def SetCurrentOperation(self, _arg:int) -> None: ... + def SetCurrentOperationToInactive(self) -> None: ... + def SetCurrentOperationToScale(self) -> None: ... + def SetCurrentOperationToShift(self) -> None: ... + def SetCurrentOperationToTranslate(self) -> None: ... + def SetLineInterpolator(self, __a:'vtkContourLineInterpolator') -> None: ... + @overload + def SetNthNodeDisplayPosition(self, n:int, X:int, Y:int) -> int: ... + @overload + def SetNthNodeDisplayPosition(self, n:int, pos:MutableSequence[int]) -> int: ... + @overload + def SetNthNodeDisplayPosition(self, n:int, pos:MutableSequence[float]) -> int: ... + def SetNthNodeSelected(self, __a:int) -> int: ... + @overload + def SetNthNodeWorldPosition(self, n:int, pos:MutableSequence[float]) -> int: ... + @overload + def SetNthNodeWorldPosition(self, n:int, pos:MutableSequence[float], orient:MutableSequence[float]) -> int: ... + def SetPixelTolerance(self, _arg:int) -> None: ... + def SetPointPlacer(self, __a:'vtkPointPlacer') -> None: ... + def SetRebuildLocator(self, _arg:bool) -> None: ... + def SetShowSelectedNodes(self, __a:int) -> None: ... + def SetWorldTolerance(self, _arg:float) -> None: ... + def ShowSelectedNodesOff(self) -> None: ... + def ShowSelectedNodesOn(self) -> None: ... + def StartWidgetInteraction(self, e:MutableSequence[float]) -> None: ... + def ToggleActiveNodeSelected(self) -> int: ... + def WidgetInteraction(self, e:MutableSequence[float]) -> None: ... + +class vtkContourRepresentationInternals(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkContourRepresentationInternals') -> None: ... + def ClearNodes(self) -> None: ... + +class vtkContourRepresentationNode(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkContourRepresentationNode') -> None: ... + +class vtkContourRepresentationPoint(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkContourRepresentationPoint') -> None: ... + +class vtkContourWidget(vtkAbstractWidget): + Define:int + Manipulate:int + Start:int + allow_node_picking:'getset_descriptor' + continuous_draw:'getset_descriptor' + contour_representation:'getset_descriptor' + enabled:'getset_descriptor' + follow_cursor:'getset_descriptor' + representation:'getset_descriptor' + widget_state:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllowNodePickingOff(self) -> None: ... + def AllowNodePickingOn(self) -> None: ... + def CloseLoop(self) -> None: ... + def ContinuousDrawOff(self) -> None: ... + def ContinuousDrawOn(self) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def FollowCursorOff(self) -> None: ... + def FollowCursorOn(self) -> None: ... + def GetAllowNodePicking(self) -> int: ... + def GetContinuousDraw(self) -> int: ... + def GetContourRepresentation(self) -> 'vtkContourRepresentation': ... + def GetFollowCursor(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWidgetState(self) -> int: ... + @overload + def Initialize(self, poly:'vtkPolyData', state:int=1, idList:'vtkIdList'=...) -> None: ... + @overload + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContourWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContourWidget': ... + def SetAllowNodePicking(self, __a:int) -> None: ... + def SetContinuousDraw(self, _arg:int) -> None: ... + def SetEnabled(self, __a:int) -> None: ... + def SetFollowCursor(self, _arg:int) -> None: ... + def SetRepresentation(self, r:'vtkContourRepresentation') -> None: ... + def SetWidgetState(self, _arg:int) -> None: ... + +class vtkCoordinateFrameRepresentation(vtkWidgetRepresentation): + class InteractionStateType(int): ... + ModifyingLockerXVector:'InteractionStateType' + ModifyingLockerYVector:'InteractionStateType' + ModifyingLockerZVector:'InteractionStateType' + Moving:'InteractionStateType' + MovingOrigin:'InteractionStateType' + Outside:'InteractionStateType' + RotatingXVector:'InteractionStateType' + RotatingYVector:'InteractionStateType' + RotatingZVector:'InteractionStateType' + bounds:'getset_descriptor' + direction:'getset_descriptor' + interaction_state:'getset_descriptor' + length_factor:'getset_descriptor' + lock_normal_to_camera:'getset_descriptor' + locked_axis:'getset_descriptor' + locked_x_vector_property:'getset_descriptor' + locked_y_vector_property:'getset_descriptor' + locked_z_vector_property:'getset_descriptor' + normal:'getset_descriptor' + origin:'getset_descriptor' + origin_property:'getset_descriptor' + pick_camera_focal_info:'getset_descriptor' + representation_state:'getset_descriptor' + selected_locked_x_vector_property:'getset_descriptor' + selected_locked_y_vector_property:'getset_descriptor' + selected_locked_z_vector_property:'getset_descriptor' + selected_origin_property:'getset_descriptor' + selected_unlocked_x_vector_property:'getset_descriptor' + selected_unlocked_y_vector_property:'getset_descriptor' + selected_unlocked_z_vector_property:'getset_descriptor' + selected_x_vector_property:'getset_descriptor' + selected_y_vector_property:'getset_descriptor' + selected_z_vector_property:'getset_descriptor' + translation_axis_off:'getset_descriptor' + unlocked_x_vector_property:'getset_descriptor' + unlocked_y_vector_property:'getset_descriptor' + unlocked_z_vector_property:'getset_descriptor' + x_axis_vector:'getset_descriptor' + x_translation_axis_on:'getset_descriptor' + x_vector_normal:'getset_descriptor' + x_vector_property:'getset_descriptor' + y_axis_vector:'getset_descriptor' + y_translation_axis_on:'getset_descriptor' + y_vector_normal:'getset_descriptor' + y_vector_property:'getset_descriptor' + z_axis_vector:'getset_descriptor' + z_translation_axis_on:'getset_descriptor' + z_vector_normal:'getset_descriptor' + z_vector_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def EndWidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + def GetActors(self, pc:'vtkPropCollection') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetInteractionStateMaxValue(self) -> int: ... + def GetInteractionStateMinValue(self) -> int: ... + def GetLengthFactor(self) -> float: ... + def GetLengthFactorMaxValue(self) -> float: ... + def GetLengthFactorMinValue(self) -> float: ... + def GetLockNormalToCamera(self) -> int: ... + def GetLockedAxis(self) -> int: ... + def GetLockedXVectorProperty(self) -> 'vtkProperty': ... + def GetLockedYVectorProperty(self) -> 'vtkProperty': ... + def GetLockedZVectorProperty(self) -> 'vtkProperty': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetOriginProperty(self) -> 'vtkProperty': ... + def GetPickCameraFocalInfo(self) -> bool: ... + def GetRepresentationState(self) -> int: ... + def GetSelectedLockedXVectorProperty(self) -> 'vtkProperty': ... + def GetSelectedLockedYVectorProperty(self) -> 'vtkProperty': ... + def GetSelectedLockedZVectorProperty(self) -> 'vtkProperty': ... + def GetSelectedOriginProperty(self) -> 'vtkProperty': ... + def GetSelectedUnlockedXVectorProperty(self) -> 'vtkProperty': ... + def GetSelectedUnlockedYVectorProperty(self) -> 'vtkProperty': ... + def GetSelectedUnlockedZVectorProperty(self) -> 'vtkProperty': ... + def GetSelectedXVectorProperty(self) -> 'vtkProperty': ... + def GetSelectedYVectorProperty(self) -> 'vtkProperty': ... + def GetSelectedZVectorProperty(self) -> 'vtkProperty': ... + def GetUnlockedXVectorProperty(self) -> 'vtkProperty': ... + def GetUnlockedYVectorProperty(self) -> 'vtkProperty': ... + def GetUnlockedZVectorProperty(self) -> 'vtkProperty': ... + def GetXVectorNormal(self) -> Tuple[float, float, float]: ... + def GetXVectorProperty(self) -> 'vtkProperty': ... + def GetYVectorNormal(self) -> Tuple[float, float, float]: ... + def GetYVectorProperty(self) -> 'vtkProperty': ... + def GetZVectorNormal(self) -> Tuple[float, float, float]: ... + def GetZVectorProperty(self) -> 'vtkProperty': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsTranslationConstrained(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LockNormalToCameraOff(self) -> None: ... + def LockNormalToCameraOn(self) -> None: ... + def NewInstance(self) -> 'vtkCoordinateFrameRepresentation': ... + def PickCameraFocalInfoOff(self) -> None: ... + def PickCameraFocalInfoOn(self) -> None: ... + def PickDirectionPoint(self, X:int, Y:int, snapToMeshPoint:bool=False) -> bool: ... + def PickNormal(self, X:int, Y:int, snapToMeshPoint:bool=False) -> bool: ... + def PickOrigin(self, X:int, Y:int, snapToMeshPoint:bool=False) -> bool: ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + def Reset(self) -> None: ... + def ResetAxes(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCoordinateFrameRepresentation': ... + @overload + def SetDirection(self, x:float, y:float, z:float) -> None: ... + @overload + def SetDirection(self, d:MutableSequence[float]) -> None: ... + def SetInteractionState(self, _arg:int) -> None: ... + def SetLengthFactor(self, _arg:float) -> None: ... + def SetLockNormalToCamera(self, __a:int) -> None: ... + def SetLockedAxis(self, axis:int) -> None: ... + @overload + def SetNormal(self, x:float, y:float, z:float) -> None: ... + @overload + def SetNormal(self, n:MutableSequence[float]) -> None: ... + def SetNormalToCamera(self) -> None: ... + @overload + def SetOrigin(self, x:float, y:float, z:float) -> None: ... + @overload + def SetOrigin(self, x:MutableSequence[float]) -> None: ... + def SetPickCameraFocalInfo(self, _arg:bool) -> None: ... + def SetRepresentationState(self, __a:int) -> None: ... + def SetTranslationAxisOff(self) -> None: ... + @overload + def SetXAxisVector(self, v:Sequence[float]) -> None: ... + @overload + def SetXAxisVector(self, x:float, y:float, z:float) -> None: ... + def SetXTranslationAxisOn(self) -> None: ... + @overload + def SetYAxisVector(self, v:Sequence[float]) -> None: ... + @overload + def SetYAxisVector(self, x:float, y:float, z:float) -> None: ... + def SetYTranslationAxisOn(self) -> None: ... + @overload + def SetZAxisVector(self, v:Sequence[float]) -> None: ... + @overload + def SetZAxisVector(self, x:float, y:float, z:float) -> None: ... + def SetZTranslationAxisOn(self) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def UpdatePlacement(self) -> None: ... + def WidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + +class vtkCoordinateFrameWidget(vtkAbstractWidget): + coordinate_frame_representation:'getset_descriptor' + enabled:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetCoordinateFrameRepresentation(self) -> 'vtkCoordinateFrameRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCoordinateFrameWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCoordinateFrameWidget': ... + def SetEnabled(self, enabling:int) -> None: ... + def SetRepresentation(self, rep:'vtkCoordinateFrameRepresentation') -> None: ... + +class vtkDijkstraImageContourLineInterpolator(vtkContourLineInterpolator): + cost_image:'getset_descriptor' + dijkstra_image_geodesic_path:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCostImage(self) -> 'vtkImageData': ... + def GetDijkstraImageGeodesicPath(self) -> 'vtkDijkstraImageGeodesicPath': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InterpolateLine(self, ren:'vtkRenderer', rep:'vtkContourRepresentation', idx1:int, idx2:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDijkstraImageContourLineInterpolator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDijkstraImageContourLineInterpolator': ... + def SetCostImage(self, __a:'vtkImageData') -> None: ... + +class vtkDisplaySizedImplicitPlaneRepresentation(vtkWidgetRepresentation): + class InteractionStateType(int): ... + Moving:'InteractionStateType' + MovingOrigin:'InteractionStateType' + MovingOutline:'InteractionStateType' + Outside:'InteractionStateType' + Pushing:'InteractionStateType' + ResizeDiskRadius:'InteractionStateType' + Rotating:'InteractionStateType' + Scaling:'InteractionStateType' + always_snap_to_nearest_axis:'getset_descriptor' + bounds:'getset_descriptor' + bump_distance:'getset_descriptor' + constrain_maximum_size_to_widget_bounds:'getset_descriptor' + constrain_to_widget_bounds:'getset_descriptor' + draw_intersection_edges:'getset_descriptor' + draw_outline:'getset_descriptor' + draw_plane:'getset_descriptor' + edges_property:'getset_descriptor' + foreground_color:'getset_descriptor' + handle_color:'getset_descriptor' + interaction_color:'getset_descriptor' + interaction_state:'getset_descriptor' + intersection_edges_property:'getset_descriptor' + lock_normal_to_camera:'getset_descriptor' + normal:'getset_descriptor' + normal_property:'getset_descriptor' + normal_to_x_axis:'getset_descriptor' + normal_to_y_axis:'getset_descriptor' + normal_to_z_axis:'getset_descriptor' + origin:'getset_descriptor' + outline_property:'getset_descriptor' + outline_translation:'getset_descriptor' + outside_bounds:'getset_descriptor' + pick_camera_focal_info:'getset_descriptor' + plane:'getset_descriptor' + plane_property:'getset_descriptor' + poly_data_algorithm:'getset_descriptor' + radius_multiplier:'getset_descriptor' + representation_state:'getset_descriptor' + scale_enabled:'getset_descriptor' + selected_edges_property:'getset_descriptor' + selected_normal_property:'getset_descriptor' + selected_outline_property:'getset_descriptor' + selected_plane_property:'getset_descriptor' + selected_sphere_property:'getset_descriptor' + snap_to_axes:'getset_descriptor' + sphere_property:'getset_descriptor' + translation_axis_off:'getset_descriptor' + underlying_plane:'getset_descriptor' + widget_bounds:'getset_descriptor' + x_translation_axis_on:'getset_descriptor' + y_translation_axis_on:'getset_descriptor' + z_translation_axis_on:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def BumpPlane(self, dir:int, factor:float) -> None: ... + def ComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def ComputeComplexInteractionState(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer, modify:int=0) -> int: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def ConstrainMaximumSizeToWidgetBoundsOff(self) -> None: ... + def ConstrainMaximumSizeToWidgetBoundsOn(self) -> None: ... + def ConstrainToWidgetBoundsOff(self) -> None: ... + def ConstrainToWidgetBoundsOn(self) -> None: ... + def DrawIntersectionEdgesOff(self) -> None: ... + def DrawIntersectionEdgesOn(self) -> None: ... + def DrawOutlineOff(self) -> None: ... + def DrawOutlineOn(self) -> None: ... + def DrawPlaneOff(self) -> None: ... + def DrawPlaneOn(self) -> None: ... + def EndComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def EndWidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + def GetActors(self, pc:'vtkPropCollection') -> None: ... + def GetAlwaysSnapToNearestAxis(self) -> bool: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetBumpDistance(self) -> float: ... + def GetBumpDistanceMaxValue(self) -> float: ... + def GetBumpDistanceMinValue(self) -> float: ... + def GetConstrainMaximumSizeToWidgetBounds(self) -> int: ... + def GetConstrainToWidgetBounds(self) -> int: ... + def GetDrawIntersectionEdges(self) -> int: ... + def GetDrawOutline(self) -> int: ... + def GetDrawPlane(self) -> int: ... + def GetEdgesProperty(self) -> 'vtkProperty': ... + def GetInteractionStateMaxValue(self) -> int: ... + def GetInteractionStateMinValue(self) -> int: ... + def GetIntersectionEdgesProperty(self) -> 'vtkProperty': ... + def GetLockNormalToCamera(self) -> int: ... + @overload + def GetNormal(self) -> Tuple[float, float, float]: ... + @overload + def GetNormal(self, xyz:MutableSequence[float]) -> None: ... + def GetNormalProperty(self) -> 'vtkProperty': ... + def GetNormalToXAxis(self) -> int: ... + def GetNormalToYAxis(self) -> int: ... + def GetNormalToZAxis(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOrigin(self) -> Tuple[float, float, float]: ... + @overload + def GetOrigin(self, xyz:MutableSequence[float]) -> None: ... + def GetOutlineProperty(self) -> 'vtkProperty': ... + def GetOutlineTranslation(self) -> int: ... + def GetOutsideBounds(self) -> int: ... + def GetPickCameraFocalInfo(self) -> bool: ... + def GetPlane(self, plane:'vtkPlane') -> None: ... + def GetPlaneProperty(self) -> 'vtkProperty': ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetPolyDataAlgorithm(self) -> 'vtkPolyDataAlgorithm': ... + def GetRadiusMultiplier(self) -> float: ... + def GetRadiusMultiplierMaxValue(self) -> float: ... + def GetRadiusMultiplierMinValue(self) -> float: ... + def GetRepresentationState(self) -> int: ... + def GetScaleEnabled(self) -> int: ... + def GetSelectedEdgesProperty(self) -> 'vtkProperty': ... + def GetSelectedNormalProperty(self) -> 'vtkProperty': ... + def GetSelectedOutlineProperty(self) -> 'vtkProperty': ... + def GetSelectedPlaneProperty(self) -> 'vtkProperty': ... + def GetSelectedSphereProperty(self) -> 'vtkProperty': ... + def GetSnapToAxes(self) -> bool: ... + def GetSphereProperty(self) -> 'vtkProperty': ... + def GetUnderlyingPlane(self) -> 'vtkPlane': ... + def GetWidgetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsTranslationConstrained(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LockNormalToCameraOff(self) -> None: ... + def LockNormalToCameraOn(self) -> None: ... + def NewInstance(self) -> 'vtkDisplaySizedImplicitPlaneRepresentation': ... + def NormalToXAxisOff(self) -> None: ... + def NormalToXAxisOn(self) -> None: ... + def NormalToYAxisOff(self) -> None: ... + def NormalToYAxisOn(self) -> None: ... + def NormalToZAxisOff(self) -> None: ... + def NormalToZAxisOn(self) -> None: ... + def OutlineTranslationOff(self) -> None: ... + def OutlineTranslationOn(self) -> None: ... + def OutsideBoundsOff(self) -> None: ... + def OutsideBoundsOn(self) -> None: ... + def PickCameraFocalInfoOff(self) -> None: ... + def PickCameraFocalInfoOn(self) -> None: ... + def PickNormal(self, X:int, Y:int, snapToMeshPoint:bool=False) -> bool: ... + def PickOrigin(self, X:int, Y:int, snapToMeshPoint:bool=False) -> bool: ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def PushPlane(self, distance:float) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDisplaySizedImplicitPlaneRepresentation': ... + def ScaleEnabledOff(self) -> None: ... + def ScaleEnabledOn(self) -> None: ... + def SetAlwaysSnapToNearestAxis(self, snap:bool) -> None: ... + def SetBumpDistance(self, _arg:float) -> None: ... + def SetConstrainMaximumSizeToWidgetBounds(self, _arg:int) -> None: ... + def SetConstrainToWidgetBounds(self, _arg:int) -> None: ... + def SetDrawIntersectionEdges(self, intersectionEdges:int) -> None: ... + def SetDrawOutline(self, outline:int) -> None: ... + def SetDrawPlane(self, plane:int) -> None: ... + @overload + def SetForegroundColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetForegroundColor(self, c:MutableSequence[float]) -> None: ... + @overload + def SetHandleColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetHandleColor(self, c:MutableSequence[float]) -> None: ... + @overload + def SetInteractionColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetInteractionColor(self, c:MutableSequence[float]) -> None: ... + def SetInteractionState(self, _arg:int) -> None: ... + def SetLockNormalToCamera(self, __a:int) -> None: ... + @overload + def SetNormal(self, x:float, y:float, z:float) -> None: ... + @overload + def SetNormal(self, n:MutableSequence[float]) -> None: ... + def SetNormalToCamera(self) -> None: ... + def SetNormalToXAxis(self, __a:int) -> None: ... + def SetNormalToYAxis(self, __a:int) -> None: ... + def SetNormalToZAxis(self, __a:int) -> None: ... + @overload + def SetOrigin(self, x:float, y:float, z:float) -> None: ... + @overload + def SetOrigin(self, x:MutableSequence[float]) -> None: ... + def SetOutlineTranslation(self, _arg:int) -> None: ... + def SetOutsideBounds(self, _arg:int) -> None: ... + def SetPickCameraFocalInfo(self, _arg:bool) -> None: ... + def SetPlane(self, plane:'vtkPlane') -> None: ... + def SetRadiusMultiplier(self, radiusMultiplier:float) -> None: ... + def SetRepresentationState(self, __a:int) -> None: ... + def SetScaleEnabled(self, _arg:int) -> None: ... + def SetSnapToAxes(self, _arg:bool) -> None: ... + def SetTranslationAxisOff(self) -> None: ... + @overload + def SetWidgetBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetWidgetBounds(self, _arg:Sequence[float]) -> None: ... + def SetXTranslationAxisOn(self) -> None: ... + def SetYTranslationAxisOn(self) -> None: ... + def SetZTranslationAxisOn(self) -> None: ... + def SnapToAxesOff(self) -> None: ... + def SnapToAxesOn(self) -> None: ... + def StartComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def UpdatePlacement(self) -> None: ... + def WidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + +class vtkDisplaySizedImplicitPlaneWidget(vtkAbstractWidget): + display_sized_implicit_plane_representation:'getset_descriptor' + enabled:'getset_descriptor' + lock_normal_to_camera:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetDisplaySizedImplicitPlaneRepresentation(self) -> 'vtkDisplaySizedImplicitPlaneRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDisplaySizedImplicitPlaneWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDisplaySizedImplicitPlaneWidget': ... + def SetEnabled(self, enabling:int) -> None: ... + def SetLockNormalToCamera(self, lock:int) -> None: ... + def SetRepresentation(self, rep:'vtkDisplaySizedImplicitPlaneRepresentation') -> None: ... + +class vtkDistanceRepresentation(vtkWidgetRepresentation): + NearP1:int + NearP2:int + Outside:int + distance:'getset_descriptor' + handle_representation:'getset_descriptor' + label_format:'getset_descriptor' + number_of_ruler_ticks:'getset_descriptor' + number_of_ruler_ticks_max_value:'getset_descriptor' + number_of_ruler_ticks_min_value:'getset_descriptor' + point1_display_position:'getset_descriptor' + point1_representation:'getset_descriptor' + point1_world_position:'getset_descriptor' + point2_display_position:'getset_descriptor' + point2_representation:'getset_descriptor' + point2_world_position:'getset_descriptor' + ruler_distance:'getset_descriptor' + ruler_mode:'getset_descriptor' + scale:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def ComputeComplexInteractionState(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer, modify:int=0) -> int: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def GetDistance(self) -> float: ... + def GetLabelFormat(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfRulerTicks(self) -> int: ... + def GetNumberOfRulerTicksMaxValue(self) -> int: ... + def GetNumberOfRulerTicksMinValue(self) -> int: ... + def GetPoint1DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint1Representation(self) -> 'vtkHandleRepresentation': ... + @overload + def GetPoint1WorldPosition(self, pos:MutableSequence[float]) -> None: ... + @overload + def GetPoint1WorldPosition(self) -> Tuple[float, float, float]: ... + def GetPoint2DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint2Representation(self) -> 'vtkHandleRepresentation': ... + @overload + def GetPoint2WorldPosition(self, pos:MutableSequence[float]) -> None: ... + @overload + def GetPoint2WorldPosition(self) -> Tuple[float, float, float]: ... + def GetRulerDistance(self) -> float: ... + def GetRulerDistanceMaxValue(self) -> float: ... + def GetRulerDistanceMinValue(self) -> float: ... + def GetRulerMode(self) -> int: ... + def GetScale(self) -> float: ... + def GetTolerance(self) -> int: ... + def GetToleranceMaxValue(self) -> int: ... + def GetToleranceMinValue(self) -> int: ... + def InstantiateHandleRepresentation(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDistanceRepresentation': ... + def RulerModeOff(self) -> None: ... + def RulerModeOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDistanceRepresentation': ... + def SetHandleRepresentation(self, handle:'vtkHandleRepresentation') -> None: ... + def SetLabelFormat(self, _arg:str) -> None: ... + def SetNumberOfRulerTicks(self, _arg:int) -> None: ... + def SetPoint1DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint1WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint2DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint2WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def SetRulerDistance(self, _arg:float) -> None: ... + def SetRulerMode(self, _arg:int) -> None: ... + def SetScale(self, _arg:float) -> None: ... + def SetTolerance(self, _arg:int) -> None: ... + def StartComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def StartWidgetInteraction(self, e:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, e:MutableSequence[float]) -> None: ... + +class vtkDistanceRepresentation2D(vtkDistanceRepresentation): + axis:'getset_descriptor' + axis_property:'getset_descriptor' + distance:'getset_descriptor' + point1_display_position:'getset_descriptor' + point1_world_position:'getset_descriptor' + point2_display_position:'getset_descriptor' + point2_world_position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def GetAxis(self) -> 'vtkAxisActor2D': ... + def GetAxisProperty(self) -> 'vtkProperty2D': ... + def GetDistance(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoint1DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + @overload + def GetPoint1WorldPosition(self) -> Tuple[float, float, float]: ... + @overload + def GetPoint1WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint2DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + @overload + def GetPoint2WorldPosition(self) -> Tuple[float, float, float]: ... + @overload + def GetPoint2WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDistanceRepresentation2D': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDistanceRepresentation2D': ... + def SetPoint1DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint1WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint2DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint2WorldPosition(self, pos:MutableSequence[float]) -> None: ... + +class vtkDistanceRepresentation3D(vtkDistanceRepresentation): + bounds:'getset_descriptor' + distance:'getset_descriptor' + glyph_actor:'getset_descriptor' + glyph_scale:'getset_descriptor' + label_actor:'getset_descriptor' + label_position:'getset_descriptor' + label_property:'getset_descriptor' + label_scale:'getset_descriptor' + line_property:'getset_descriptor' + maximum_number_of_ruler_ticks:'getset_descriptor' + point1_display_position:'getset_descriptor' + point1_world_position:'getset_descriptor' + point2_display_position:'getset_descriptor' + point2_world_position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetDistance(self) -> float: ... + def GetGlyphActor(self) -> 'vtkActor': ... + def GetGlyphScale(self) -> float: ... + def GetLabelActor(self) -> 'vtkFollower': ... + def GetLabelPosition(self) -> float: ... + def GetLabelProperty(self) -> 'vtkProperty': ... + def GetLabelScale(self) -> Pointer: ... + def GetLineProperty(self) -> 'vtkProperty': ... + def GetMaximumNumberOfRulerTicks(self) -> int: ... + def GetMaximumNumberOfRulerTicksMaxValue(self) -> int: ... + def GetMaximumNumberOfRulerTicksMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoint1DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + @overload + def GetPoint1WorldPosition(self) -> Tuple[float, float, float]: ... + @overload + def GetPoint1WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def GetPoint2DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + @overload + def GetPoint2WorldPosition(self) -> Tuple[float, float, float]: ... + @overload + def GetPoint2WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDistanceRepresentation3D': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDistanceRepresentation3D': ... + def SetGlyphScale(self, scale:float) -> None: ... + def SetLabelActor(self, __a:'vtkFollower') -> None: ... + def SetLabelPosition(self, labelPosition:float) -> None: ... + @overload + def SetLabelScale(self, x:float, y:float, z:float) -> None: ... + @overload + def SetLabelScale(self, scale:MutableSequence[float]) -> None: ... + def SetMaximumNumberOfRulerTicks(self, _arg:int) -> None: ... + def SetPoint1DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint1WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint2DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint2WorldPosition(self, pos:MutableSequence[float]) -> None: ... + +class vtkDistanceWidget(vtkAbstractWidget): + Define:int + Manipulate:int + Start:int + distance_representation:'getset_descriptor' + enabled:'getset_descriptor' + process_events:'getset_descriptor' + representation:'getset_descriptor' + widget_state:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetDistanceRepresentation(self) -> 'vtkDistanceRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWidgetState(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDistanceWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDistanceWidget': ... + def SetEnabled(self, __a:int) -> None: ... + def SetProcessEvents(self, __a:int) -> None: ... + def SetRepresentation(self, r:'vtkDistanceRepresentation') -> None: ... + def SetWidgetStateToManipulate(self) -> None: ... + def SetWidgetStateToStart(self) -> None: ... + +class vtkTensorProbeRepresentation(vtkWidgetRepresentation): + probe_cell_id:'getset_descriptor' + probe_position:'getset_descriptor' + trajectory:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProbeCellId(self) -> int: ... + def GetProbePosition(self) -> Tuple[float, float, float]: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Move(self, motionVector:MutableSequence[float]) -> int: ... + def NewInstance(self) -> 'vtkTensorProbeRepresentation': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTensorProbeRepresentation': ... + def SelectProbe(self, pos:MutableSequence[int]) -> int: ... + def SetProbeCellId(self, _arg:int) -> None: ... + @overload + def SetProbePosition(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetProbePosition(self, _arg:Sequence[float]) -> None: ... + def SetTrajectory(self, __a:'vtkPolyData') -> None: ... + +class vtkEllipsoidTensorProbeRepresentation(vtkTensorProbeRepresentation): + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEllipsoidTensorProbeRepresentation': ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEllipsoidTensorProbeRepresentation': ... + def SelectProbe(self, pos:MutableSequence[int]) -> int: ... + +class vtkEqualizerContextItem(vtkmodules.vtkRenderingContext2D.vtkContextItem): + points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoints(self) -> str: ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MouseButtonPressEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseButtonReleaseEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseEnterEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseLeaveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseMoveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def NewInstance(self) -> 'vtkEqualizerContextItem': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEqualizerContextItem': ... + def SetPoints(self, points:str) -> None: ... + +class vtkEvent(vtkmodules.vtkCommonCore.vtkObject): + class EventModifiers(int): ... + AltModifier:'EventModifiers' + AnyModifier:'EventModifiers' + ControlModifier:'EventModifiers' + NoModifier:'EventModifiers' + ShiftModifier:'EventModifiers' + event_id:'getset_descriptor' + key_code:'getset_descriptor' + key_sym:'getset_descriptor' + modifier:'getset_descriptor' + repeat_count:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetEventId(self) -> int: ... + def GetKeyCode(self) -> str: ... + def GetKeySym(self) -> str: ... + @overload + def GetModifier(self) -> int: ... + @overload + @staticmethod + def GetModifier(__a:'vtkRenderWindowInteractor') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRepeatCount(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEvent': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEvent': ... + def SetEventId(self, _arg:int) -> None: ... + def SetKeyCode(self, _arg:str) -> None: ... + def SetKeySym(self, _arg:str) -> None: ... + def SetModifier(self, _arg:int) -> None: ... + def SetRepeatCount(self, _arg:int) -> None: ... + +class vtkFinitePlaneRepresentation(vtkWidgetRepresentation): + class InteractionStateType(int): ... + ModifyV1:'InteractionStateType' + ModifyV2:'InteractionStateType' + MoveOrigin:'InteractionStateType' + Moving:'InteractionStateType' + Outside:'InteractionStateType' + Pushing:'InteractionStateType' + Rotating:'InteractionStateType' + bounds:'getset_descriptor' + draw_plane:'getset_descriptor' + handles:'getset_descriptor' + interaction_state:'getset_descriptor' + normal:'getset_descriptor' + normal_property:'getset_descriptor' + origin:'getset_descriptor' + plane_property:'getset_descriptor' + rectangular_shape:'getset_descriptor' + representation_state:'getset_descriptor' + selected_handle_property:'getset_descriptor' + selected_normal_property:'getset_descriptor' + selected_plane_property:'getset_descriptor' + tubing:'getset_descriptor' + v1:'getset_descriptor' + v1_handle_property:'getset_descriptor' + v2:'getset_descriptor' + v2_handle_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def DrawPlaneOff(self) -> None: ... + def DrawPlaneOn(self) -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetDrawPlane(self) -> bool: ... + def GetInteractionStateMaxValue(self) -> int: ... + def GetInteractionStateMinValue(self) -> int: ... + def GetNormal(self) -> Tuple[float, float, float]: ... + def GetNormalProperty(self) -> 'vtkProperty': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetPlaneProperty(self) -> 'vtkProperty': ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetRectangularShape(self) -> bool: ... + def GetRepresentationState(self) -> int: ... + def GetSelectedHandleProperty(self) -> 'vtkProperty': ... + def GetSelectedNormalProperty(self) -> 'vtkProperty': ... + def GetSelectedPlaneProperty(self) -> 'vtkProperty': ... + def GetTubing(self) -> bool: ... + def GetV1(self) -> Tuple[float, float]: ... + def GetV1HandleProperty(self) -> 'vtkProperty': ... + def GetV2(self) -> Tuple[float, float]: ... + def GetV2HandleProperty(self) -> 'vtkProperty': ... + def HandlesOff(self) -> None: ... + def HandlesOn(self) -> None: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MovePoint1(self, p1:MutableSequence[float], p2:MutableSequence[float]) -> None: ... + def MovePoint2(self, p1:MutableSequence[float], p2:MutableSequence[float]) -> None: ... + def NewInstance(self) -> 'vtkFinitePlaneRepresentation': ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def Push(self, p1:MutableSequence[float], p2:MutableSequence[float]) -> None: ... + def RectangularShapeOff(self) -> None: ... + def RectangularShapeOn(self) -> None: ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + def Rotate(self, X:int, Y:int, p1:MutableSequence[float], p2:MutableSequence[float], vpn:MutableSequence[float]) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFinitePlaneRepresentation': ... + def SetDrawPlane(self, plane:bool) -> None: ... + def SetHandles(self, handles:bool) -> None: ... + def SetInteractionState(self, _arg:int) -> None: ... + @overload + def SetNormal(self, x:float, y:float, z:float) -> None: ... + @overload + def SetNormal(self, n:MutableSequence[float]) -> None: ... + @overload + def SetOrigin(self, x:float, y:float, z:float) -> None: ... + @overload + def SetOrigin(self, x:MutableSequence[float]) -> None: ... + def SetRectangularShape(self, _arg:bool) -> None: ... + def SetRepresentationState(self, __a:int) -> None: ... + def SetTubing(self, _arg:bool) -> None: ... + @overload + def SetV1(self, x:float, y:float) -> None: ... + @overload + def SetV1(self, x:MutableSequence[float]) -> None: ... + @overload + def SetV2(self, x:float, y:float) -> None: ... + @overload + def SetV2(self, x:MutableSequence[float]) -> None: ... + def StartWidgetInteraction(self, e:MutableSequence[float]) -> None: ... + def TranslateOrigin(self, p1:MutableSequence[float], p2:MutableSequence[float]) -> None: ... + def TubingOff(self) -> None: ... + def TubingOn(self) -> None: ... + def WidgetInteraction(self, e:MutableSequence[float]) -> None: ... + +class vtkFinitePlaneWidget(vtkAbstractWidget): + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFinitePlaneWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFinitePlaneWidget': ... + def SetRepresentation(self, r:'vtkFinitePlaneRepresentation') -> None: ... + +class vtkPolygonalHandleRepresentation3D(vtkAbstractPolygonalHandleRepresentation3D): + offset:'getset_descriptor' + world_position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffset(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolygonalHandleRepresentation3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolygonalHandleRepresentation3D': ... + @overload + def SetOffset(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOffset(self, _arg:Sequence[float]) -> None: ... + def SetWorldPosition(self, p:MutableSequence[float]) -> None: ... + +class vtkFixedSizeHandleRepresentation3D(vtkPolygonalHandleRepresentation3D): + handle_size_in_pixels:'getset_descriptor' + handle_size_tolerance_in_pixels:'getset_descriptor' + sphere_source:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetHandleSizeInPixels(self) -> float: ... + def GetHandleSizeToleranceInPixels(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSphereSource(self) -> 'vtkSphereSource': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFixedSizeHandleRepresentation3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFixedSizeHandleRepresentation3D': ... + def SetHandleSizeInPixels(self, _arg:float) -> None: ... + def SetHandleSizeToleranceInPixels(self, _arg:float) -> None: ... + +class vtkFocalPlaneContourRepresentation(vtkContourRepresentation): + def __init__(self, **properties:Any) -> None: ... + def GetIntermediatePointDisplayPosition(self, n:int, idx:int, point:MutableSequence[float]) -> int: ... + def GetIntermediatePointWorldPosition(self, n:int, idx:int, point:MutableSequence[float]) -> int: ... + def GetNthNodeDisplayPosition(self, n:int, pos:MutableSequence[float]) -> int: ... + def GetNthNodeWorldPosition(self, n:int, pos:MutableSequence[float]) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFocalPlaneContourRepresentation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFocalPlaneContourRepresentation': ... + def UpdateContour(self) -> int: ... + def UpdateContourWorldPositionsBasedOnDisplayPositions(self) -> None: ... + def UpdateLines(self, index:int) -> None: ... + +class vtkFocalPlanePointPlacer(vtkPointPlacer): + offset:'getset_descriptor' + point_bounds:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ComputeWorldPosition(self, ren:'vtkRenderer', displayPos:MutableSequence[float], worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + @overload + def ComputeWorldPosition(self, ren:'vtkRenderer', displayPos:MutableSequence[float], refWorldPos:MutableSequence[float], worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffset(self) -> float: ... + def GetPointBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFocalPlanePointPlacer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFocalPlanePointPlacer': ... + def SetOffset(self, _arg:float) -> None: ... + @overload + def SetPointBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetPointBounds(self, _arg:Sequence[float]) -> None: ... + @overload + def ValidateWorldPosition(self, worldPos:MutableSequence[float]) -> int: ... + @overload + def ValidateWorldPosition(self, worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + +class vtkHandleWidget(vtkAbstractWidget): + class WidgetStateType(int): ... + Active:'WidgetStateType' + Inactive:'WidgetStateType' + Start:'WidgetStateType' + allow_handle_resize:'getset_descriptor' + enable_axis_constraint:'getset_descriptor' + enable_translation:'getset_descriptor' + enabled:'getset_descriptor' + handle_representation:'getset_descriptor' + representation:'getset_descriptor' + show_inactive:'getset_descriptor' + widget_state:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllowHandleResizeOff(self) -> None: ... + def AllowHandleResizeOn(self) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def EnableAxisConstraintOff(self) -> None: ... + def EnableAxisConstraintOn(self) -> None: ... + def EnableTranslationOff(self) -> None: ... + def EnableTranslationOn(self) -> None: ... + def GetAllowHandleResize(self) -> int: ... + def GetEnableAxisConstraint(self) -> int: ... + def GetEnableTranslation(self) -> int: ... + def GetHandleRepresentation(self) -> 'vtkHandleRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShowInactive(self) -> int: ... + def GetWidgetState(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHandleWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHandleWidget': ... + def SetAllowHandleResize(self, _arg:int) -> None: ... + def SetEnableAxisConstraint(self, _arg:int) -> None: ... + def SetEnableTranslation(self, _arg:int) -> None: ... + def SetEnabled(self, enabling:int) -> None: ... + def SetRepresentation(self, r:'vtkHandleRepresentation') -> None: ... + def SetShowInactive(self, _arg:int) -> None: ... + def ShowInactiveOff(self) -> None: ... + def ShowInactiveOn(self) -> None: ... + +class vtkImageActorPointPlacer(vtkPointPlacer): + bounds:'getset_descriptor' + image_actor:'getset_descriptor' + world_tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ComputeWorldPosition(self, ren:'vtkRenderer', displayPos:MutableSequence[float], worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + @overload + def ComputeWorldPosition(self, ren:'vtkRenderer', displayPos:MutableSequence[float], refWorldPos:MutableSequence[float], worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetImageActor(self) -> 'vtkImageActor': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageActorPointPlacer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageActorPointPlacer': ... + @overload + def SetBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetBounds(self, _arg:Sequence[float]) -> None: ... + def SetImageActor(self, __a:'vtkImageActor') -> None: ... + def SetWorldTolerance(self, tol:float) -> None: ... + def UpdateInternalState(self) -> int: ... + def UpdateWorldPosition(self, ren:'vtkRenderer', worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + @overload + def ValidateWorldPosition(self, worldPos:MutableSequence[float]) -> int: ... + @overload + def ValidateWorldPosition(self, worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + +class vtkImageCroppingRegionsWidget(vtk3DWidget): + class WidgetEventIds(int): ... + CroppingPlanesPositionChangedEvent:'WidgetEventIds' + SLICE_ORIENTATION_XY:int + SLICE_ORIENTATION_XZ:int + SLICE_ORIENTATION_YZ:int + cropping_region_flags:'getset_descriptor' + enabled:'getset_descriptor' + line1_color:'getset_descriptor' + line2_color:'getset_descriptor' + line3_color:'getset_descriptor' + line4_color:'getset_descriptor' + plane_positions:'getset_descriptor' + slice:'getset_descriptor' + slice_orientation:'getset_descriptor' + volume_mapper:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCroppingRegionFlags(self) -> int: ... + @overload + def GetLine1Color(self) -> Pointer: ... + @overload + def GetLine1Color(self, rgb:MutableSequence[float]) -> None: ... + @overload + def GetLine2Color(self) -> Pointer: ... + @overload + def GetLine2Color(self, rgb:MutableSequence[float]) -> None: ... + @overload + def GetLine3Color(self) -> Pointer: ... + @overload + def GetLine3Color(self, rgb:MutableSequence[float]) -> None: ... + @overload + def GetLine4Color(self) -> Pointer: ... + @overload + def GetLine4Color(self, rgb:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPlanePositions(self) -> Tuple[float, float, float, float, float, float]: ... + def GetSlice(self) -> int: ... + def GetSliceOrientation(self) -> int: ... + def GetVolumeMapper(self) -> 'vtkVolumeMapper': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MoveHorizontalLine(self) -> None: ... + def MoveIntersectingLines(self) -> None: ... + def MoveVerticalLine(self) -> None: ... + def NewInstance(self) -> 'vtkImageCroppingRegionsWidget': ... + def OnButtonPress(self) -> None: ... + def OnButtonRelease(self) -> None: ... + def OnMouseMove(self) -> None: ... + @overload + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + @overload + def PlaceWidget(self) -> None: ... + @overload + def PlaceWidget(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageCroppingRegionsWidget': ... + def SetCroppingRegionFlags(self, flags:int) -> None: ... + def SetEnabled(self, enabling:int) -> None: ... + @overload + def SetLine1Color(self, r:float, g:float, b:float) -> None: ... + @overload + def SetLine1Color(self, rgb:MutableSequence[float]) -> None: ... + @overload + def SetLine2Color(self, r:float, g:float, b:float) -> None: ... + @overload + def SetLine2Color(self, rgb:MutableSequence[float]) -> None: ... + @overload + def SetLine3Color(self, r:float, g:float, b:float) -> None: ... + @overload + def SetLine3Color(self, rgb:MutableSequence[float]) -> None: ... + @overload + def SetLine4Color(self, r:float, g:float, b:float) -> None: ... + @overload + def SetLine4Color(self, rgb:MutableSequence[float]) -> None: ... + @overload + def SetPlanePositions(self, pos:MutableSequence[float]) -> None: ... + @overload + def SetPlanePositions(self, xMin:float, xMax:float, yMin:float, yMax:float, zMin:float, zMax:float) -> None: ... + def SetSlice(self, num:int) -> None: ... + def SetSliceOrientation(self, orientation:int) -> None: ... + def SetSliceOrientationToXY(self) -> None: ... + def SetSliceOrientationToXZ(self) -> None: ... + def SetSliceOrientationToYZ(self) -> None: ... + def SetVolumeMapper(self, mapper:'vtkVolumeMapper') -> None: ... + def UpdateAccordingToInput(self) -> None: ... + def UpdateCursorIcon(self) -> None: ... + +class vtkImageOrthoPlanes(vtkmodules.vtkCommonCore.vtkObject): + transform:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPlane(self, i:int) -> 'vtkImagePlaneWidget': ... + def GetTransform(self) -> 'vtkTransform': ... + def HandlePlaneEvent(self, imagePlaneWidget:'vtkImagePlaneWidget') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageOrthoPlanes': ... + def ResetPlanes(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageOrthoPlanes': ... + def SetPlane(self, i:int, imagePlaneWidget:'vtkImagePlaneWidget') -> None: ... + +class vtkPolyDataSourceWidget(vtk3DWidget): + poly_data_algorithm:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPolyDataAlgorithm(self) -> 'vtkPolyDataAlgorithm': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyDataSourceWidget': ... + @overload + def PlaceWidget(self) -> None: ... + @overload + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + @overload + def PlaceWidget(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataSourceWidget': ... + def UpdatePlacement(self) -> None: ... + +class vtkImagePlaneWidget(vtkPolyDataSourceWidget): + VTK_CONTROL_MODIFIER:int + VTK_CURSOR_ACTION:int + VTK_NO_MODIFIER:int + VTK_SHIFT_MODIFIER:int + VTK_SLICE_MOTION_ACTION:int + VTK_WINDOW_LEVEL_ACTION:int + center:'getset_descriptor' + color_map:'getset_descriptor' + current_cursor_position:'getset_descriptor' + current_image_value:'getset_descriptor' + cursor_data_status:'getset_descriptor' + cursor_property:'getset_descriptor' + display_text:'getset_descriptor' + enabled:'getset_descriptor' + input_connection:'getset_descriptor' + interaction:'getset_descriptor' + left_button_action:'getset_descriptor' + left_button_auto_modifier:'getset_descriptor' + level:'getset_descriptor' + lookup_table:'getset_descriptor' + margin_property:'getset_descriptor' + margin_size_x:'getset_descriptor' + margin_size_y:'getset_descriptor' + middle_button_action:'getset_descriptor' + middle_button_auto_modifier:'getset_descriptor' + normal:'getset_descriptor' + origin:'getset_descriptor' + picker:'getset_descriptor' + plane_orientation:'getset_descriptor' + plane_property:'getset_descriptor' + point1:'getset_descriptor' + point2:'getset_descriptor' + poly_data_algorithm:'getset_descriptor' + reslice:'getset_descriptor' + reslice_axes:'getset_descriptor' + reslice_interpolate:'getset_descriptor' + reslice_output:'getset_descriptor' + restrict_plane_to_volume:'getset_descriptor' + right_button_action:'getset_descriptor' + right_button_auto_modifier:'getset_descriptor' + selected_plane_property:'getset_descriptor' + slice_index:'getset_descriptor' + slice_position:'getset_descriptor' + text_property:'getset_descriptor' + texture:'getset_descriptor' + texture_interpolate:'getset_descriptor' + texture_plane_property:'getset_descriptor' + texture_visibility:'getset_descriptor' + use_continuous_cursor:'getset_descriptor' + user_controlled_lookup_table:'getset_descriptor' + window:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DisplayTextOff(self) -> None: ... + def DisplayTextOn(self) -> None: ... + @overload + def GetCenter(self) -> Tuple[float, float, float]: ... + @overload + def GetCenter(self, xyz:MutableSequence[float]) -> None: ... + def GetColorMap(self) -> 'vtkImageMapToColors': ... + def GetCurrentCursorPosition(self) -> Tuple[float, float, float]: ... + def GetCurrentImageValue(self) -> float: ... + def GetCursorData(self, xyzv:MutableSequence[float]) -> int: ... + def GetCursorDataStatus(self) -> int: ... + def GetCursorProperty(self) -> 'vtkProperty': ... + def GetDisplayText(self) -> int: ... + def GetInteraction(self) -> int: ... + def GetLeftButtonAction(self) -> int: ... + def GetLeftButtonActionMaxValue(self) -> int: ... + def GetLeftButtonActionMinValue(self) -> int: ... + def GetLeftButtonAutoModifier(self) -> int: ... + def GetLeftButtonAutoModifierMaxValue(self) -> int: ... + def GetLeftButtonAutoModifierMinValue(self) -> int: ... + def GetLevel(self) -> float: ... + def GetLookupTable(self) -> 'vtkLookupTable': ... + def GetMarginProperty(self) -> 'vtkProperty': ... + def GetMarginSizeX(self) -> float: ... + def GetMarginSizeXMaxValue(self) -> float: ... + def GetMarginSizeXMinValue(self) -> float: ... + def GetMarginSizeY(self) -> float: ... + def GetMarginSizeYMaxValue(self) -> float: ... + def GetMarginSizeYMinValue(self) -> float: ... + def GetMiddleButtonAction(self) -> int: ... + def GetMiddleButtonActionMaxValue(self) -> int: ... + def GetMiddleButtonActionMinValue(self) -> int: ... + def GetMiddleButtonAutoModifier(self) -> int: ... + def GetMiddleButtonAutoModifierMaxValue(self) -> int: ... + def GetMiddleButtonAutoModifierMinValue(self) -> int: ... + @overload + def GetNormal(self) -> Tuple[float, float, float]: ... + @overload + def GetNormal(self, xyz:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOrigin(self) -> Tuple[float, float, float]: ... + @overload + def GetOrigin(self, xyz:MutableSequence[float]) -> None: ... + def GetPlaneOrientation(self) -> int: ... + def GetPlaneProperty(self) -> 'vtkProperty': ... + @overload + def GetPoint1(self) -> Tuple[float, float, float]: ... + @overload + def GetPoint1(self, xyz:MutableSequence[float]) -> None: ... + @overload + def GetPoint2(self) -> Tuple[float, float, float]: ... + @overload + def GetPoint2(self, xyz:MutableSequence[float]) -> None: ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetPolyDataAlgorithm(self) -> 'vtkPolyDataAlgorithm': ... + def GetReslice(self) -> 'vtkImageReslice': ... + def GetResliceAxes(self) -> 'vtkMatrix4x4': ... + def GetResliceInterpolate(self) -> int: ... + def GetResliceOutput(self) -> 'vtkImageData': ... + def GetRestrictPlaneToVolume(self) -> int: ... + def GetRightButtonAction(self) -> int: ... + def GetRightButtonActionMaxValue(self) -> int: ... + def GetRightButtonActionMinValue(self) -> int: ... + def GetRightButtonAutoModifier(self) -> int: ... + def GetRightButtonAutoModifierMaxValue(self) -> int: ... + def GetRightButtonAutoModifierMinValue(self) -> int: ... + def GetSelectedPlaneProperty(self) -> 'vtkProperty': ... + def GetSliceIndex(self) -> int: ... + def GetSlicePosition(self) -> float: ... + def GetTextProperty(self) -> 'vtkTextProperty': ... + def GetTexture(self) -> 'vtkTexture': ... + def GetTextureInterpolate(self) -> int: ... + def GetTexturePlaneProperty(self) -> 'vtkProperty': ... + def GetTextureVisibility(self) -> int: ... + def GetUseContinuousCursor(self) -> int: ... + def GetUserControlledLookupTable(self) -> int: ... + def GetVector1(self, v1:MutableSequence[float]) -> None: ... + def GetVector2(self, v2:MutableSequence[float]) -> None: ... + def GetWindow(self) -> float: ... + def GetWindowLevel(self, wl:MutableSequence[float]) -> None: ... + def InteractionOff(self) -> None: ... + def InteractionOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImagePlaneWidget': ... + @overload + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + @overload + def PlaceWidget(self) -> None: ... + @overload + def PlaceWidget(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + def RestrictPlaneToVolumeOff(self) -> None: ... + def RestrictPlaneToVolumeOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImagePlaneWidget': ... + def SetColorMap(self, __a:'vtkImageMapToColors') -> None: ... + def SetCursorProperty(self, __a:'vtkProperty') -> None: ... + def SetDisplayText(self, _arg:int) -> None: ... + def SetEnabled(self, __a:int) -> None: ... + def SetInputConnection(self, aout:'vtkAlgorithmOutput') -> None: ... + def SetInteraction(self, interact:int) -> None: ... + def SetLeftButtonAction(self, _arg:int) -> None: ... + def SetLeftButtonAutoModifier(self, _arg:int) -> None: ... + def SetLookupTable(self, __a:'vtkLookupTable') -> None: ... + def SetMarginProperty(self, __a:'vtkProperty') -> None: ... + def SetMarginSizeX(self, _arg:float) -> None: ... + def SetMarginSizeY(self, _arg:float) -> None: ... + def SetMiddleButtonAction(self, _arg:int) -> None: ... + def SetMiddleButtonAutoModifier(self, _arg:int) -> None: ... + @overload + def SetOrigin(self, x:float, y:float, z:float) -> None: ... + @overload + def SetOrigin(self, xyz:MutableSequence[float]) -> None: ... + def SetPicker(self, __a:'vtkAbstractPropPicker') -> None: ... + def SetPlaneOrientation(self, __a:int) -> None: ... + def SetPlaneOrientationToXAxes(self) -> None: ... + def SetPlaneOrientationToYAxes(self) -> None: ... + def SetPlaneOrientationToZAxes(self) -> None: ... + def SetPlaneProperty(self, __a:'vtkProperty') -> None: ... + @overload + def SetPoint1(self, x:float, y:float, z:float) -> None: ... + @overload + def SetPoint1(self, xyz:MutableSequence[float]) -> None: ... + @overload + def SetPoint2(self, x:float, y:float, z:float) -> None: ... + @overload + def SetPoint2(self, xyz:MutableSequence[float]) -> None: ... + def SetResliceInterpolate(self, __a:int) -> None: ... + def SetResliceInterpolateToCubic(self) -> None: ... + def SetResliceInterpolateToLinear(self) -> None: ... + def SetResliceInterpolateToNearestNeighbour(self) -> None: ... + def SetRestrictPlaneToVolume(self, _arg:int) -> None: ... + def SetRightButtonAction(self, _arg:int) -> None: ... + def SetRightButtonAutoModifier(self, _arg:int) -> None: ... + def SetSelectedPlaneProperty(self, __a:'vtkProperty') -> None: ... + def SetSliceIndex(self, index:int) -> None: ... + def SetSlicePosition(self, position:float) -> None: ... + def SetTextProperty(self, tprop:'vtkTextProperty') -> None: ... + def SetTextureInterpolate(self, _arg:int) -> None: ... + def SetTexturePlaneProperty(self, __a:'vtkProperty') -> None: ... + def SetTextureVisibility(self, __a:int) -> None: ... + def SetUseContinuousCursor(self, _arg:int) -> None: ... + def SetUserControlledLookupTable(self, _arg:int) -> None: ... + def SetWindowLevel(self, window:float, level:float, copy:int=0) -> None: ... + def TextureInterpolateOff(self) -> None: ... + def TextureInterpolateOn(self) -> None: ... + def TextureVisibilityOff(self) -> None: ... + def TextureVisibilityOn(self) -> None: ... + def UpdatePlacement(self) -> None: ... + def UseContinuousCursorOff(self) -> None: ... + def UseContinuousCursorOn(self) -> None: ... + def UserControlledLookupTableOff(self) -> None: ... + def UserControlledLookupTableOn(self) -> None: ... + +class vtkImageTracerWidget(vtk3DWidget): + auto_close:'getset_descriptor' + capture_radius:'getset_descriptor' + enabled:'getset_descriptor' + glyph_source:'getset_descriptor' + handle_left_mouse_button:'getset_descriptor' + handle_middle_mouse_button:'getset_descriptor' + handle_property:'getset_descriptor' + handle_right_mouse_button:'getset_descriptor' + image_snap_type:'getset_descriptor' + interaction:'getset_descriptor' + line_property:'getset_descriptor' + number_of_handles:'getset_descriptor' + project_to_plane:'getset_descriptor' + projection_normal:'getset_descriptor' + projection_position:'getset_descriptor' + selected_handle_property:'getset_descriptor' + selected_line_property:'getset_descriptor' + snap_to_image:'getset_descriptor' + view_prop:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutoCloseOff(self) -> None: ... + def AutoCloseOn(self) -> None: ... + def GetAutoClose(self) -> int: ... + def GetCaptureRadius(self) -> float: ... + def GetGlyphSource(self) -> 'vtkGlyphSource2D': ... + def GetHandleLeftMouseButton(self) -> int: ... + def GetHandleMiddleMouseButton(self) -> int: ... + @overload + def GetHandlePosition(self, handle:int, xyz:MutableSequence[float]) -> None: ... + @overload + def GetHandlePosition(self, handle:int) -> Tuple[float, float, float]: ... + def GetHandleProperty(self) -> 'vtkProperty': ... + def GetHandleRightMouseButton(self) -> int: ... + def GetImageSnapType(self) -> int: ... + def GetImageSnapTypeMaxValue(self) -> int: ... + def GetImageSnapTypeMinValue(self) -> int: ... + def GetInteraction(self) -> int: ... + def GetLineProperty(self) -> 'vtkProperty': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfHandles(self) -> int: ... + def GetPath(self, pd:'vtkPolyData') -> None: ... + def GetProjectToPlane(self) -> int: ... + def GetProjectionNormal(self) -> int: ... + def GetProjectionNormalMaxValue(self) -> int: ... + def GetProjectionNormalMinValue(self) -> int: ... + def GetProjectionPosition(self) -> float: ... + def GetSelectedHandleProperty(self) -> 'vtkProperty': ... + def GetSelectedLineProperty(self) -> 'vtkProperty': ... + def GetSnapToImage(self) -> int: ... + def HandleLeftMouseButtonOff(self) -> None: ... + def HandleLeftMouseButtonOn(self) -> None: ... + def HandleMiddleMouseButtonOff(self) -> None: ... + def HandleMiddleMouseButtonOn(self) -> None: ... + def HandleRightMouseButtonOff(self) -> None: ... + def HandleRightMouseButtonOn(self) -> None: ... + def InitializeHandles(self, __a:'vtkPoints') -> None: ... + def InteractionOff(self) -> None: ... + def InteractionOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsClosed(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageTracerWidget': ... + @overload + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + @overload + def PlaceWidget(self) -> None: ... + @overload + def PlaceWidget(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + def ProjectToPlaneOff(self) -> None: ... + def ProjectToPlaneOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageTracerWidget': ... + def SetAutoClose(self, _arg:int) -> None: ... + def SetCaptureRadius(self, _arg:float) -> None: ... + def SetEnabled(self, __a:int) -> None: ... + def SetHandleLeftMouseButton(self, _arg:int) -> None: ... + def SetHandleMiddleMouseButton(self, _arg:int) -> None: ... + @overload + def SetHandlePosition(self, handle:int, xyz:MutableSequence[float]) -> None: ... + @overload + def SetHandlePosition(self, handle:int, x:float, y:float, z:float) -> None: ... + def SetHandleProperty(self, __a:'vtkProperty') -> None: ... + def SetHandleRightMouseButton(self, _arg:int) -> None: ... + def SetImageSnapType(self, _arg:int) -> None: ... + def SetInteraction(self, interact:int) -> None: ... + def SetLineProperty(self, __a:'vtkProperty') -> None: ... + def SetProjectToPlane(self, _arg:int) -> None: ... + def SetProjectionNormal(self, _arg:int) -> None: ... + def SetProjectionNormalToXAxes(self) -> None: ... + def SetProjectionNormalToYAxes(self) -> None: ... + def SetProjectionNormalToZAxes(self) -> None: ... + def SetProjectionPosition(self, position:float) -> None: ... + def SetSelectedHandleProperty(self, __a:'vtkProperty') -> None: ... + def SetSelectedLineProperty(self, __a:'vtkProperty') -> None: ... + def SetSnapToImage(self, snap:int) -> None: ... + def SetViewProp(self, prop:'vtkProp') -> None: ... + def SnapToImageOff(self) -> None: ... + def SnapToImageOn(self) -> None: ... + +class vtkImplicitAnnulusRepresentation(vtkBoundedWidgetRepresentation): + class InteractionStateType(int): ... + AdjustingInnerRadius:'InteractionStateType' + AdjustingOuterRadius:'InteractionStateType' + Moving:'InteractionStateType' + MovingCenter:'InteractionStateType' + MovingOutline:'InteractionStateType' + Outside:'InteractionStateType' + RotatingAxis:'InteractionStateType' + Scaling:'InteractionStateType' + TranslatingCenter:'InteractionStateType' + along_x_axis:'getset_descriptor' + along_y_axis:'getset_descriptor' + along_z_axis:'getset_descriptor' + annulus_property:'getset_descriptor' + axis:'getset_descriptor' + axis_property:'getset_descriptor' + bounds:'getset_descriptor' + bump_distance:'getset_descriptor' + center:'getset_descriptor' + draw_annulus:'getset_descriptor' + foreground_color:'getset_descriptor' + handle_color:'getset_descriptor' + inner_radius:'getset_descriptor' + interaction_color:'getset_descriptor' + interaction_state:'getset_descriptor' + outer_radius:'getset_descriptor' + radius_handle_property:'getset_descriptor' + representation_state:'getset_descriptor' + resolution:'getset_descriptor' + scale_enabled:'getset_descriptor' + selected_annulus_property:'getset_descriptor' + selected_axis_property:'getset_descriptor' + selected_radius_handle_property:'getset_descriptor' + tubing:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AlongXAxisOff(self) -> None: ... + def AlongXAxisOn(self) -> None: ... + def AlongYAxisOff(self) -> None: ... + def AlongYAxisOn(self) -> None: ... + def AlongZAxisOff(self) -> None: ... + def AlongZAxisOn(self) -> None: ... + def BuildRepresentation(self) -> None: ... + def BumpAnnulus(self, dir:int, factor:float) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def DrawAnnulusOff(self) -> None: ... + def DrawAnnulusOn(self) -> None: ... + def EndWidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + def GetActors(self, pc:'vtkPropCollection') -> None: ... + def GetAlongXAxis(self) -> bool: ... + def GetAlongYAxis(self) -> bool: ... + def GetAlongZAxis(self) -> bool: ... + def GetAnnulus(self, annulus:'vtkAnnulus') -> None: ... + def GetAnnulusProperty(self) -> 'vtkProperty': ... + @overload + def GetAxis(self) -> Tuple[float, float, float]: ... + @overload + def GetAxis(self, a:MutableSequence[float]) -> None: ... + def GetAxisProperty(self) -> 'vtkProperty': ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetBumpDistance(self) -> float: ... + def GetBumpDistanceMaxValue(self) -> float: ... + def GetBumpDistanceMinValue(self) -> float: ... + @overload + def GetCenter(self) -> Tuple[float, float, float]: ... + @overload + def GetCenter(self, xyz:MutableSequence[float]) -> None: ... + def GetDrawAnnulus(self) -> bool: ... + def GetInnerRadius(self) -> float: ... + def GetInteractionStateMaxValue(self) -> 'InteractionStateType': ... + def GetInteractionStateMinValue(self) -> 'InteractionStateType': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOuterRadius(self) -> float: ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetRadiusHandleProperty(self) -> 'vtkProperty': ... + def GetRepresentationState(self) -> 'InteractionStateType': ... + def GetResolution(self) -> int: ... + def GetResolutionMaxValue(self) -> int: ... + def GetResolutionMinValue(self) -> int: ... + def GetScaleEnabled(self) -> bool: ... + def GetSelectedAnnulusProperty(self) -> 'vtkProperty': ... + def GetSelectedAxisProperty(self) -> 'vtkProperty': ... + def GetSelectedRadiusHandleProperty(self) -> 'vtkProperty': ... + def GetTubing(self) -> bool: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitAnnulusRepresentation': ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def PushAnnulus(self, distance:float) -> None: ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitAnnulusRepresentation': ... + def ScaleEnabledOff(self) -> None: ... + def ScaleEnabledOn(self) -> None: ... + def SetAlongXAxis(self, __a:bool) -> None: ... + def SetAlongYAxis(self, __a:bool) -> None: ... + def SetAlongZAxis(self, __a:bool) -> None: ... + @overload + def SetAxis(self, x:float, y:float, z:float) -> None: ... + @overload + def SetAxis(self, a:MutableSequence[float]) -> None: ... + def SetBumpDistance(self, _arg:float) -> None: ... + @overload + def SetCenter(self, x:float, y:float, z:float) -> None: ... + @overload + def SetCenter(self, x:MutableSequence[float]) -> None: ... + def SetDrawAnnulus(self, draw:bool) -> None: ... + @overload + def SetForegroundColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetForegroundColor(self, c:MutableSequence[float]) -> None: ... + @overload + def SetHandleColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetHandleColor(self, c:MutableSequence[float]) -> None: ... + def SetInnerRadius(self, r:float) -> None: ... + @overload + def SetInteractionColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetInteractionColor(self, c:MutableSequence[float]) -> None: ... + def SetInteractionState(self, _arg:'InteractionStateType') -> None: ... + def SetOuterRadius(self, r:float) -> None: ... + def SetRepresentationState(self, __a:'InteractionStateType') -> None: ... + def SetResolution(self, _arg:int) -> None: ... + def SetScaleEnabled(self, _arg:bool) -> None: ... + def SetTubing(self, _arg:bool) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def TubingOff(self) -> None: ... + def TubingOn(self) -> None: ... + def UpdatePlacement(self) -> None: ... + def WidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + +class vtkImplicitAnnulusWidget(vtkAbstractWidget): + annulus_representation:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetAnnulusRepresentation(self) -> 'vtkImplicitAnnulusRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitAnnulusWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitAnnulusWidget': ... + def SetRepresentation(self, rep:'vtkImplicitAnnulusRepresentation') -> None: ... + +class vtkImplicitConeRepresentation(vtkBoundedWidgetRepresentation): + class InteractionStateType(int): ... + AdjustingAngle:'InteractionStateType' + Moving:'InteractionStateType' + MovingOrigin:'InteractionStateType' + MovingOutline:'InteractionStateType' + Outside:'InteractionStateType' + RotatingAxis:'InteractionStateType' + Scaling:'InteractionStateType' + TranslatingOrigin:'InteractionStateType' + along_x_axis:'getset_descriptor' + along_y_axis:'getset_descriptor' + along_z_axis:'getset_descriptor' + angle:'getset_descriptor' + axis:'getset_descriptor' + axis_property:'getset_descriptor' + bounds:'getset_descriptor' + bump_distance:'getset_descriptor' + cone_property:'getset_descriptor' + draw_cone:'getset_descriptor' + edges_property:'getset_descriptor' + foreground_color:'getset_descriptor' + handle_color:'getset_descriptor' + interaction_color:'getset_descriptor' + interaction_state:'getset_descriptor' + origin:'getset_descriptor' + representation_state:'getset_descriptor' + resolution:'getset_descriptor' + scale_enabled:'getset_descriptor' + selected_axis_property:'getset_descriptor' + selected_cone_property:'getset_descriptor' + tubing:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AlongXAxisOff(self) -> None: ... + def AlongXAxisOn(self) -> None: ... + def AlongYAxisOff(self) -> None: ... + def AlongYAxisOn(self) -> None: ... + def AlongZAxisOff(self) -> None: ... + def AlongZAxisOn(self) -> None: ... + def BuildRepresentation(self) -> None: ... + def BumpCone(self, dir:int, factor:float) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def DrawConeOff(self) -> None: ... + def DrawConeOn(self) -> None: ... + def EndWidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + def GetActors(self, pc:'vtkPropCollection') -> None: ... + def GetAlongXAxis(self) -> bool: ... + def GetAlongYAxis(self) -> bool: ... + def GetAlongZAxis(self) -> bool: ... + def GetAngle(self) -> float: ... + @overload + def GetAxis(self) -> Tuple[float, float, float]: ... + @overload + def GetAxis(self, a:MutableSequence[float]) -> None: ... + def GetAxisProperty(self) -> 'vtkProperty': ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetBumpDistance(self) -> float: ... + def GetBumpDistanceMaxValue(self) -> float: ... + def GetBumpDistanceMinValue(self) -> float: ... + def GetCone(self, cone:'vtkCone') -> None: ... + def GetConeProperty(self) -> 'vtkProperty': ... + def GetDrawCone(self) -> bool: ... + def GetEdgesProperty(self) -> 'vtkProperty': ... + def GetInteractionStateMaxValue(self) -> 'InteractionStateType': ... + def GetInteractionStateMinValue(self) -> 'InteractionStateType': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOrigin(self) -> Tuple[float, float, float]: ... + @overload + def GetOrigin(self, xyz:MutableSequence[float]) -> None: ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetRepresentationState(self) -> 'InteractionStateType': ... + def GetResolution(self) -> int: ... + def GetResolutionMaxValue(self) -> int: ... + def GetResolutionMinValue(self) -> int: ... + def GetScaleEnabled(self) -> bool: ... + def GetSelectedAxisProperty(self) -> 'vtkProperty': ... + def GetSelectedConeProperty(self) -> 'vtkProperty': ... + def GetTubing(self) -> bool: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitConeRepresentation': ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def PushCone(self, distance:float) -> None: ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitConeRepresentation': ... + def ScaleEnabledOff(self) -> None: ... + def ScaleEnabledOn(self) -> None: ... + def SetAlongXAxis(self, __a:bool) -> None: ... + def SetAlongYAxis(self, __a:bool) -> None: ... + def SetAlongZAxis(self, __a:bool) -> None: ... + def SetAngle(self, r:float) -> None: ... + @overload + def SetAxis(self, x:float, y:float, z:float) -> None: ... + @overload + def SetAxis(self, a:MutableSequence[float]) -> None: ... + def SetBumpDistance(self, _arg:float) -> None: ... + def SetDrawCone(self, draw:bool) -> None: ... + @overload + def SetForegroundColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetForegroundColor(self, c:MutableSequence[float]) -> None: ... + @overload + def SetHandleColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetHandleColor(self, c:MutableSequence[float]) -> None: ... + @overload + def SetInteractionColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetInteractionColor(self, c:MutableSequence[float]) -> None: ... + def SetInteractionState(self, _arg:'InteractionStateType') -> None: ... + @overload + def SetOrigin(self, x:float, y:float, z:float) -> None: ... + @overload + def SetOrigin(self, x:MutableSequence[float]) -> None: ... + def SetRepresentationState(self, __a:'InteractionStateType') -> None: ... + def SetResolution(self, _arg:int) -> None: ... + def SetScaleEnabled(self, _arg:bool) -> None: ... + def SetTubing(self, _arg:bool) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def TubingOff(self) -> None: ... + def TubingOn(self) -> None: ... + def UpdatePlacement(self) -> None: ... + def WidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + +class vtkImplicitConeWidget(vtkAbstractWidget): + cone_representation:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetConeRepresentation(self) -> 'vtkImplicitConeRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitConeWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitConeWidget': ... + def SetRepresentation(self, rep:'vtkImplicitConeRepresentation') -> None: ... + +class vtkImplicitCylinderRepresentation(vtkBoundedWidgetRepresentation): + class InteractionStateType(int): ... + AdjustingRadius:'InteractionStateType' + Moving:'InteractionStateType' + MovingCenter:'InteractionStateType' + MovingOutline:'InteractionStateType' + Outside:'InteractionStateType' + RotatingAxis:'InteractionStateType' + Scaling:'InteractionStateType' + TranslatingCenter:'InteractionStateType' + along_x_axis:'getset_descriptor' + along_y_axis:'getset_descriptor' + along_z_axis:'getset_descriptor' + axis:'getset_descriptor' + axis_property:'getset_descriptor' + bounds:'getset_descriptor' + bump_distance:'getset_descriptor' + center:'getset_descriptor' + cylinder_property:'getset_descriptor' + draw_cylinder:'getset_descriptor' + edges_property:'getset_descriptor' + foreground_color:'getset_descriptor' + handle_color:'getset_descriptor' + interaction_color:'getset_descriptor' + interaction_state:'getset_descriptor' + max_radius:'getset_descriptor' + min_radius:'getset_descriptor' + radius:'getset_descriptor' + representation_state:'getset_descriptor' + resolution:'getset_descriptor' + scale_enabled:'getset_descriptor' + selected_axis_property:'getset_descriptor' + selected_cylinder_property:'getset_descriptor' + tubing:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AlongXAxisOff(self) -> None: ... + def AlongXAxisOn(self) -> None: ... + def AlongYAxisOff(self) -> None: ... + def AlongYAxisOn(self) -> None: ... + def AlongZAxisOff(self) -> None: ... + def AlongZAxisOn(self) -> None: ... + def BuildRepresentation(self) -> None: ... + def BumpCylinder(self, dir:int, factor:float) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def DrawCylinderOff(self) -> None: ... + def DrawCylinderOn(self) -> None: ... + def EndWidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + def GetActors(self, pc:'vtkPropCollection') -> None: ... + def GetAlongXAxis(self) -> int: ... + def GetAlongYAxis(self) -> int: ... + def GetAlongZAxis(self) -> int: ... + @overload + def GetAxis(self) -> Tuple[float, float, float]: ... + @overload + def GetAxis(self, a:MutableSequence[float]) -> None: ... + def GetAxisProperty(self) -> 'vtkProperty': ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetBumpDistance(self) -> float: ... + def GetBumpDistanceMaxValue(self) -> float: ... + def GetBumpDistanceMinValue(self) -> float: ... + @overload + def GetCenter(self) -> Tuple[float, float, float]: ... + @overload + def GetCenter(self, xyz:MutableSequence[float]) -> None: ... + def GetCylinder(self, cyl:'vtkCylinder') -> None: ... + def GetCylinderProperty(self) -> 'vtkProperty': ... + def GetDrawCylinder(self) -> int: ... + def GetEdgesProperty(self) -> 'vtkProperty': ... + def GetInteractionStateMaxValue(self) -> int: ... + def GetInteractionStateMinValue(self) -> int: ... + def GetMaxRadius(self) -> float: ... + def GetMaxRadiusMaxValue(self) -> float: ... + def GetMaxRadiusMinValue(self) -> float: ... + def GetMinRadius(self) -> float: ... + def GetMinRadiusMaxValue(self) -> float: ... + def GetMinRadiusMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetRadius(self) -> float: ... + def GetRepresentationState(self) -> int: ... + def GetResolution(self) -> int: ... + def GetResolutionMaxValue(self) -> int: ... + def GetResolutionMinValue(self) -> int: ... + def GetScaleEnabled(self) -> int: ... + def GetSelectedAxisProperty(self) -> 'vtkProperty': ... + def GetSelectedCylinderProperty(self) -> 'vtkProperty': ... + def GetTubing(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitCylinderRepresentation': ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def PushCylinder(self, distance:float) -> None: ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitCylinderRepresentation': ... + def ScaleEnabledOff(self) -> None: ... + def ScaleEnabledOn(self) -> None: ... + def SetAlongXAxis(self, __a:int) -> None: ... + def SetAlongYAxis(self, __a:int) -> None: ... + def SetAlongZAxis(self, __a:int) -> None: ... + @overload + def SetAxis(self, x:float, y:float, z:float) -> None: ... + @overload + def SetAxis(self, a:MutableSequence[float]) -> None: ... + def SetBumpDistance(self, _arg:float) -> None: ... + @overload + def SetCenter(self, x:float, y:float, z:float) -> None: ... + @overload + def SetCenter(self, x:MutableSequence[float]) -> None: ... + def SetDrawCylinder(self, drawCyl:int) -> None: ... + @overload + def SetForegroundColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetForegroundColor(self, c:MutableSequence[float]) -> None: ... + @overload + def SetHandleColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetHandleColor(self, c:MutableSequence[float]) -> None: ... + @overload + def SetInteractionColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetInteractionColor(self, c:MutableSequence[float]) -> None: ... + def SetInteractionState(self, _arg:int) -> None: ... + def SetMaxRadius(self, _arg:float) -> None: ... + def SetMinRadius(self, _arg:float) -> None: ... + def SetRadius(self, r:float) -> None: ... + def SetRepresentationState(self, __a:int) -> None: ... + def SetResolution(self, _arg:int) -> None: ... + def SetScaleEnabled(self, _arg:int) -> None: ... + def SetTubing(self, _arg:int) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def TubingOff(self) -> None: ... + def TubingOn(self) -> None: ... + def UpdatePlacement(self) -> None: ... + def WidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + +class vtkImplicitCylinderWidget(vtkAbstractWidget): + cylinder_representation:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetCylinderRepresentation(self) -> 'vtkImplicitCylinderRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitCylinderWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitCylinderWidget': ... + def SetRepresentation(self, rep:'vtkImplicitCylinderRepresentation') -> None: ... + +class vtkImplicitFrustumRepresentation(vtkBoundedWidgetRepresentation): + class InteractionStateType(int): ... + AdjustingHorizontalAngle:'InteractionStateType' + AdjustingNearPlaneDistance:'InteractionStateType' + AdjustingPitch:'InteractionStateType' + AdjustingRoll:'InteractionStateType' + AdjustingVerticalAngle:'InteractionStateType' + AdjustingYaw:'InteractionStateType' + Moving:'InteractionStateType' + MovingOrigin:'InteractionStateType' + Outside:'InteractionStateType' + TranslatingOriginOnAxis:'InteractionStateType' + along_x_axis:'getset_descriptor' + along_y_axis:'getset_descriptor' + along_z_axis:'getset_descriptor' + bounds:'getset_descriptor' + draw_frustum:'getset_descriptor' + edge_handle_property:'getset_descriptor' + foreground_color:'getset_descriptor' + frustum_property:'getset_descriptor' + handle_color:'getset_descriptor' + horizontal_angle:'getset_descriptor' + interaction_color:'getset_descriptor' + interaction_state:'getset_descriptor' + near_plane_distance:'getset_descriptor' + orientation:'getset_descriptor' + origin:'getset_descriptor' + representation_state:'getset_descriptor' + selected_edge_handle_property:'getset_descriptor' + vertical_angle:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AlongXAxisOff(self) -> None: ... + def AlongXAxisOn(self) -> None: ... + def AlongYAxisOff(self) -> None: ... + def AlongYAxisOn(self) -> None: ... + def AlongZAxisOff(self) -> None: ... + def AlongZAxisOn(self) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def DrawFrustumOff(self) -> None: ... + def DrawFrustumOn(self) -> None: ... + def EndWidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + def GetActors(self, pc:'vtkPropCollection') -> None: ... + def GetAlongXAxis(self) -> bool: ... + def GetAlongYAxis(self) -> bool: ... + def GetAlongZAxis(self) -> bool: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetDrawFrustum(self) -> bool: ... + def GetEdgeHandleProperty(self) -> 'vtkProperty': ... + def GetFrustum(self, frustum:'vtkFrustum') -> None: ... + def GetFrustumProperty(self) -> 'vtkProperty': ... + def GetHorizontalAngle(self) -> float: ... + def GetInteractionStateMaxValue(self) -> 'InteractionStateType': ... + def GetInteractionStateMinValue(self) -> 'InteractionStateType': ... + def GetNearPlaneDistance(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOrientation(self) -> Tuple[float, float, float]: ... + @overload + def GetOrientation(self, x:float, y:float, z:float) -> None: ... + @overload + def GetOrientation(self, xyz:MutableSequence[float]) -> None: ... + @overload + def GetOrigin(self) -> Tuple[float, float, float]: ... + @overload + def GetOrigin(self, xyz:MutableSequence[float]) -> None: ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetRepresentationState(self) -> 'InteractionStateType': ... + def GetSelectedEdgeHandleProperty(self) -> 'vtkProperty': ... + def GetVerticalAngle(self) -> float: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitFrustumRepresentation': ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitFrustumRepresentation': ... + def SetAlongXAxis(self, __a:bool) -> None: ... + def SetAlongYAxis(self, __a:bool) -> None: ... + def SetAlongZAxis(self, __a:bool) -> None: ... + def SetDrawFrustum(self, draw:bool) -> None: ... + @overload + def SetForegroundColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetForegroundColor(self, c:MutableSequence[float]) -> None: ... + @overload + def SetHandleColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetHandleColor(self, c:MutableSequence[float]) -> None: ... + def SetHorizontalAngle(self, angle:float) -> None: ... + @overload + def SetInteractionColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetInteractionColor(self, c:MutableSequence[float]) -> None: ... + def SetInteractionState(self, _arg:'InteractionStateType') -> None: ... + def SetNearPlaneDistance(self, angle:float) -> None: ... + @overload + def SetOrientation(self, x:float, y:float, z:float) -> None: ... + @overload + def SetOrientation(self, xyz:Sequence[float]) -> None: ... + @overload + def SetOrientation(self, xyz:'vtkVector3d') -> None: ... + @overload + def SetOrigin(self, x:float, y:float, z:float) -> None: ... + @overload + def SetOrigin(self, x:MutableSequence[float]) -> None: ... + @overload + def SetOrigin(self, xyz:'vtkVector3d') -> None: ... + def SetRepresentationState(self, __a:'InteractionStateType') -> None: ... + def SetVerticalAngle(self, angle:float) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def UpdatePlacement(self) -> None: ... + def WidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + +class vtkImplicitFrustumWidget(vtkAbstractWidget): + frustum_representation:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetFrustumRepresentation(self) -> 'vtkImplicitFrustumRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitFrustumWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitFrustumWidget': ... + def SetRepresentation(self, rep:'vtkImplicitFrustumRepresentation') -> None: ... + +class vtkImplicitPlaneRepresentation(vtkBoundedWidgetRepresentation): + class InteractionStateType(int): ... + Moving:'InteractionStateType' + MovingOrigin:'InteractionStateType' + MovingOutline:'InteractionStateType' + Outside:'InteractionStateType' + Pushing:'InteractionStateType' + Rotating:'InteractionStateType' + Scaling:'InteractionStateType' + always_snap_to_nearest_axis:'getset_descriptor' + bounds:'getset_descriptor' + bump_distance:'getset_descriptor' + crop_plane_to_bounding_box:'getset_descriptor' + draw_outline:'getset_descriptor' + draw_plane:'getset_descriptor' + edge_color:'getset_descriptor' + edges_property:'getset_descriptor' + foreground_color:'getset_descriptor' + handle_color:'getset_descriptor' + interaction_color:'getset_descriptor' + interaction_state:'getset_descriptor' + lock_normal_to_camera:'getset_descriptor' + normal:'getset_descriptor' + normal_property:'getset_descriptor' + normal_to_x_axis:'getset_descriptor' + normal_to_y_axis:'getset_descriptor' + normal_to_z_axis:'getset_descriptor' + origin:'getset_descriptor' + plane:'getset_descriptor' + plane_property:'getset_descriptor' + poly_data_algorithm:'getset_descriptor' + representation_state:'getset_descriptor' + scale_enabled:'getset_descriptor' + selected_normal_property:'getset_descriptor' + selected_plane_property:'getset_descriptor' + snap_to_axes:'getset_descriptor' + tubing:'getset_descriptor' + underlying_plane:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def BumpPlane(self, dir:int, factor:float) -> None: ... + def ComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def ComputeComplexInteractionState(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer, modify:int=0) -> int: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def CropPlaneToBoundingBoxOff(self) -> None: ... + def CropPlaneToBoundingBoxOn(self) -> None: ... + def DrawOutlineOff(self) -> None: ... + def DrawOutlineOn(self) -> None: ... + def DrawPlaneOff(self) -> None: ... + def DrawPlaneOn(self) -> None: ... + def EndComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def EndWidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + def GetActors(self, pc:'vtkPropCollection') -> None: ... + def GetAlwaysSnapToNearestAxis(self) -> bool: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetBumpDistance(self) -> float: ... + def GetBumpDistanceMaxValue(self) -> float: ... + def GetBumpDistanceMinValue(self) -> float: ... + def GetCropPlaneToBoundingBox(self) -> bool: ... + def GetDrawOutline(self) -> int: ... + def GetDrawPlane(self) -> int: ... + def GetEdgesProperty(self) -> 'vtkProperty': ... + def GetInteractionStateMaxValue(self) -> int: ... + def GetInteractionStateMinValue(self) -> int: ... + def GetLockNormalToCamera(self) -> int: ... + @overload + def GetNormal(self) -> Tuple[float, float, float]: ... + @overload + def GetNormal(self, xyz:MutableSequence[float]) -> None: ... + def GetNormalProperty(self) -> 'vtkProperty': ... + def GetNormalToXAxis(self) -> int: ... + def GetNormalToYAxis(self) -> int: ... + def GetNormalToZAxis(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOrigin(self) -> Tuple[float, float, float]: ... + @overload + def GetOrigin(self, xyz:MutableSequence[float]) -> None: ... + def GetPlane(self, plane:'vtkPlane') -> None: ... + def GetPlaneProperty(self) -> 'vtkProperty': ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetPolyDataAlgorithm(self) -> 'vtkPolyDataAlgorithm': ... + def GetRepresentationState(self) -> int: ... + def GetScaleEnabled(self) -> int: ... + def GetSelectedNormalProperty(self) -> 'vtkProperty': ... + def GetSelectedPlaneProperty(self) -> 'vtkProperty': ... + def GetSnapToAxes(self) -> bool: ... + def GetTubing(self) -> int: ... + def GetUnderlyingPlane(self) -> 'vtkPlane': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LockNormalToCameraOff(self) -> None: ... + def LockNormalToCameraOn(self) -> None: ... + def NewInstance(self) -> 'vtkImplicitPlaneRepresentation': ... + def NormalToXAxisOff(self) -> None: ... + def NormalToXAxisOn(self) -> None: ... + def NormalToYAxisOff(self) -> None: ... + def NormalToYAxisOn(self) -> None: ... + def NormalToZAxisOff(self) -> None: ... + def NormalToZAxisOn(self) -> None: ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def PushPlane(self, distance:float) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitPlaneRepresentation': ... + def ScaleEnabledOff(self) -> None: ... + def ScaleEnabledOn(self) -> None: ... + def SetAlwaysSnapToNearestAxis(self, snap:bool) -> None: ... + def SetBumpDistance(self, _arg:float) -> None: ... + def SetCropPlaneToBoundingBox(self, __a:bool) -> None: ... + def SetDrawOutline(self, plane:int) -> None: ... + def SetDrawPlane(self, plane:int) -> None: ... + @overload + def SetEdgeColor(self, __a:'vtkLookupTable') -> None: ... + @overload + def SetEdgeColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetEdgeColor(self, c:MutableSequence[float]) -> None: ... + @overload + def SetForegroundColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetForegroundColor(self, c:MutableSequence[float]) -> None: ... + @overload + def SetHandleColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetHandleColor(self, c:MutableSequence[float]) -> None: ... + @overload + def SetInteractionColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetInteractionColor(self, c:MutableSequence[float]) -> None: ... + def SetInteractionState(self, _arg:int) -> None: ... + def SetLockNormalToCamera(self, __a:int) -> None: ... + @overload + def SetNormal(self, x:float, y:float, z:float) -> None: ... + @overload + def SetNormal(self, n:MutableSequence[float]) -> None: ... + def SetNormalToCamera(self) -> None: ... + def SetNormalToXAxis(self, __a:int) -> None: ... + def SetNormalToYAxis(self, __a:int) -> None: ... + def SetNormalToZAxis(self, __a:int) -> None: ... + @overload + def SetOrigin(self, x:float, y:float, z:float) -> None: ... + @overload + def SetOrigin(self, x:MutableSequence[float]) -> None: ... + def SetPlane(self, plane:'vtkPlane') -> None: ... + def SetRepresentationState(self, __a:int) -> None: ... + def SetScaleEnabled(self, _arg:int) -> None: ... + def SetSnapToAxes(self, _arg:bool) -> None: ... + def SetTubing(self, _arg:int) -> None: ... + def StartComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def TubingOff(self) -> None: ... + def TubingOn(self) -> None: ... + def UpdatePlacement(self) -> None: ... + def WidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + +class vtkImplicitImageRepresentation(vtkImplicitPlaneRepresentation): + color_map:'getset_descriptor' + crop_plane_to_bounding_box:'getset_descriptor' + lookup_table:'getset_descriptor' + reslice:'getset_descriptor' + reslice_interpolate:'getset_descriptor' + texture_interpolate:'getset_descriptor' + user_controlled_lookup_table:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def GetColorMap(self) -> 'vtkImageMapToColors': ... + def GetLookupTable(self) -> 'vtkLookupTable': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReslice(self) -> 'vtkImageReslice': ... + def GetResliceInterpolate(self) -> int: ... + def GetTextureInterpolate(self) -> bool: ... + def GetUserControlledLookupTable(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitImageRepresentation': ... + @overload + def PlaceImage(self, img:'vtkImageData') -> None: ... + @overload + def PlaceImage(self, aout:'vtkAlgorithmOutput') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitImageRepresentation': ... + def SetColorMap(self, __a:'vtkImageMapToColors') -> None: ... + def SetCropPlaneToBoundingBox(self, __a:bool) -> None: ... + def SetLookupTable(self, __a:'vtkLookupTable') -> None: ... + def SetResliceInterpolate(self, __a:int) -> None: ... + def SetResliceInterpolateToCubic(self) -> None: ... + def SetResliceInterpolateToLinear(self) -> None: ... + def SetResliceInterpolateToNearestNeighbour(self) -> None: ... + def SetTextureInterpolate(self, _arg:bool) -> None: ... + def SetUserControlledLookupTable(self, _arg:bool) -> None: ... + def TextureInterpolateOff(self) -> None: ... + def TextureInterpolateOn(self) -> None: ... + def UserControlledLookupTableOff(self) -> None: ... + def UserControlledLookupTableOn(self) -> None: ... + +class vtkImplicitPlaneWidget(vtkPolyDataSourceWidget): + diagonal_ratio:'getset_descriptor' + draw_plane:'getset_descriptor' + edges_property:'getset_descriptor' + enabled:'getset_descriptor' + normal:'getset_descriptor' + normal_property:'getset_descriptor' + normal_to_x_axis:'getset_descriptor' + normal_to_y_axis:'getset_descriptor' + normal_to_z_axis:'getset_descriptor' + origin:'getset_descriptor' + origin_translation:'getset_descriptor' + outline_property:'getset_descriptor' + outline_translation:'getset_descriptor' + outside_bounds:'getset_descriptor' + plane_property:'getset_descriptor' + poly_data_algorithm:'getset_descriptor' + scale_enabled:'getset_descriptor' + selected_normal_property:'getset_descriptor' + selected_outline_property:'getset_descriptor' + selected_plane_property:'getset_descriptor' + tubing:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DrawPlaneOff(self) -> None: ... + def DrawPlaneOn(self) -> None: ... + def GetDiagonalRatio(self) -> float: ... + def GetDiagonalRatioMaxValue(self) -> float: ... + def GetDiagonalRatioMinValue(self) -> float: ... + def GetDrawPlane(self) -> int: ... + def GetEdgesProperty(self) -> 'vtkProperty': ... + @overload + def GetNormal(self) -> Tuple[float, float, float]: ... + @overload + def GetNormal(self, xyz:MutableSequence[float]) -> None: ... + def GetNormalProperty(self) -> 'vtkProperty': ... + def GetNormalToXAxis(self) -> int: ... + def GetNormalToYAxis(self) -> int: ... + def GetNormalToZAxis(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOrigin(self) -> Tuple[float, float, float]: ... + @overload + def GetOrigin(self, xyz:MutableSequence[float]) -> None: ... + def GetOriginTranslation(self) -> int: ... + def GetOutlineProperty(self) -> 'vtkProperty': ... + def GetOutlineTranslation(self) -> int: ... + def GetOutsideBounds(self) -> int: ... + def GetPlane(self, plane:'vtkPlane') -> None: ... + def GetPlaneProperty(self) -> 'vtkProperty': ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetPolyDataAlgorithm(self) -> 'vtkPolyDataAlgorithm': ... + def GetScaleEnabled(self) -> int: ... + def GetSelectedNormalProperty(self) -> 'vtkProperty': ... + def GetSelectedOutlineProperty(self) -> 'vtkProperty': ... + def GetSelectedPlaneProperty(self) -> 'vtkProperty': ... + def GetTubing(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitPlaneWidget': ... + def NormalToXAxisOff(self) -> None: ... + def NormalToXAxisOn(self) -> None: ... + def NormalToYAxisOff(self) -> None: ... + def NormalToYAxisOn(self) -> None: ... + def NormalToZAxisOff(self) -> None: ... + def NormalToZAxisOn(self) -> None: ... + def OriginTranslationOff(self) -> None: ... + def OriginTranslationOn(self) -> None: ... + def OutlineTranslationOff(self) -> None: ... + def OutlineTranslationOn(self) -> None: ... + def OutsideBoundsOff(self) -> None: ... + def OutsideBoundsOn(self) -> None: ... + @overload + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + @overload + def PlaceWidget(self) -> None: ... + @overload + def PlaceWidget(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitPlaneWidget': ... + def ScaleEnabledOff(self) -> None: ... + def ScaleEnabledOn(self) -> None: ... + def SetDiagonalRatio(self, _arg:float) -> None: ... + def SetDrawPlane(self, plane:int) -> None: ... + def SetEnabled(self, __a:int) -> None: ... + @overload + def SetNormal(self, x:float, y:float, z:float) -> None: ... + @overload + def SetNormal(self, n:MutableSequence[float]) -> None: ... + def SetNormalToXAxis(self, __a:int) -> None: ... + def SetNormalToYAxis(self, __a:int) -> None: ... + def SetNormalToZAxis(self, __a:int) -> None: ... + @overload + def SetOrigin(self, x:float, y:float, z:float) -> None: ... + @overload + def SetOrigin(self, x:MutableSequence[float]) -> None: ... + def SetOriginTranslation(self, _arg:int) -> None: ... + def SetOutlineTranslation(self, _arg:int) -> None: ... + def SetOutsideBounds(self, _arg:int) -> None: ... + def SetScaleEnabled(self, _arg:int) -> None: ... + def SetTubing(self, _arg:int) -> None: ... + def SizeHandles(self) -> None: ... + def TubingOff(self) -> None: ... + def TubingOn(self) -> None: ... + def UpdatePlacement(self) -> None: ... + +class vtkImplicitPlaneWidget2(vtkAbstractWidget): + enabled:'getset_descriptor' + implicit_plane_representation:'getset_descriptor' + lock_normal_to_camera:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetImplicitPlaneRepresentation(self) -> 'vtkImplicitPlaneRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImplicitPlaneWidget2': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImplicitPlaneWidget2': ... + def SetEnabled(self, enabling:int) -> None: ... + def SetLockNormalToCamera(self, lock:int) -> None: ... + def SetRepresentation(self, rep:'vtkImplicitPlaneRepresentation') -> None: ... + +class vtkLightRepresentation(vtkWidgetRepresentation): + MovingFocalPoint:int + MovingLight:int + MovingPositionalFocalPoint:int + Outside:int + ScalingConeAngle:int + bounds:'getset_descriptor' + cone_angle:'getset_descriptor' + focal_point:'getset_descriptor' + interaction_state:'getset_descriptor' + light_color:'getset_descriptor' + light_position:'getset_descriptor' + positional:'getset_descriptor' + property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetConeAngle(self) -> float: ... + def GetFocalPoint(self) -> Tuple[float, float, float]: ... + def GetInteractionStateMaxValue(self) -> int: ... + def GetInteractionStateMinValue(self) -> int: ... + def GetLightColor(self) -> Tuple[float, float, float]: ... + def GetLightPosition(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPositional(self) -> bool: ... + def GetProperty(self) -> 'vtkProperty': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLightRepresentation': ... + def PositionalOff(self) -> None: ... + def PositionalOn(self) -> None: ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLightRepresentation': ... + def SetConeAngle(self, angle:float) -> None: ... + def SetFocalPoint(self, pos:MutableSequence[float]) -> None: ... + def SetInteractionState(self, _arg:int) -> None: ... + def SetLightColor(self, color:MutableSequence[float]) -> None: ... + def SetLightPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPositional(self, _arg:bool) -> None: ... + def StartWidgetInteraction(self, eventPosition:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, eventPosition:MutableSequence[float]) -> None: ... + +class vtkLightWidget(vtkAbstractWidget): + light_representation:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetLightRepresentation(self) -> 'vtkLightRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLightWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLightWidget': ... + def SetRepresentation(self, r:'vtkLightRepresentation') -> None: ... + +class vtkLineRepresentation(vtkWidgetRepresentation): + OnLine:int + OnP1:int + OnP2:int + Outside:int + RestrictNone:int + RestrictToX:int + RestrictToY:int + RestrictToZ:int + Scaling:int + TranslatingP1:int + TranslatingP2:int + bounds:'getset_descriptor' + directional_line:'getset_descriptor' + distance:'getset_descriptor' + distance_annotation_format:'getset_descriptor' + distance_annotation_property:'getset_descriptor' + distance_annotation_scale:'getset_descriptor' + distance_annotation_visibility:'getset_descriptor' + end_point2_property:'getset_descriptor' + end_point_property:'getset_descriptor' + foreground_color:'getset_descriptor' + handle_representation:'getset_descriptor' + interaction_color:'getset_descriptor' + interaction_state:'getset_descriptor' + line_color:'getset_descriptor' + line_handle_representation:'getset_descriptor' + line_property:'getset_descriptor' + m_time:'getset_descriptor' + point1_display_position:'getset_descriptor' + point1_representation:'getset_descriptor' + point1_world_position:'getset_descriptor' + point2_display_position:'getset_descriptor' + point2_representation:'getset_descriptor' + point2_world_position:'getset_descriptor' + renderer:'getset_descriptor' + representation_state:'getset_descriptor' + resolution:'getset_descriptor' + selected_end_point2_property:'getset_descriptor' + selected_end_point_property:'getset_descriptor' + selected_line_property:'getset_descriptor' + text_actor:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def DirectionalLineOff(self) -> None: ... + def DirectionalLineOn(self) -> None: ... + def DistanceAnnotationVisibilityOff(self) -> None: ... + def DistanceAnnotationVisibilityOn(self) -> None: ... + def GetActors(self, pc:'vtkPropCollection') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetDirectionalLine(self) -> bool: ... + def GetDistance(self) -> float: ... + def GetDistanceAnnotationFormat(self) -> str: ... + def GetDistanceAnnotationProperty(self) -> 'vtkProperty': ... + def GetDistanceAnnotationScale(self) -> Tuple[float, float, float]: ... + def GetDistanceAnnotationVisibility(self) -> int: ... + def GetEndPoint2Property(self) -> 'vtkProperty': ... + def GetEndPointProperty(self) -> 'vtkProperty': ... + def GetInteractionStateMaxValue(self) -> int: ... + def GetInteractionStateMinValue(self) -> int: ... + def GetLineHandleRepresentation(self) -> 'vtkPointHandleRepresentation3D': ... + def GetLineProperty(self) -> 'vtkProperty': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetPoint1DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + @overload + def GetPoint1DisplayPosition(self) -> Tuple[float, float, float]: ... + def GetPoint1Representation(self) -> 'vtkPointHandleRepresentation3D': ... + @overload + def GetPoint1WorldPosition(self, pos:MutableSequence[float]) -> None: ... + @overload + def GetPoint1WorldPosition(self) -> Tuple[float, float, float]: ... + @overload + def GetPoint2DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + @overload + def GetPoint2DisplayPosition(self) -> Tuple[float, float, float]: ... + def GetPoint2Representation(self) -> 'vtkPointHandleRepresentation3D': ... + @overload + def GetPoint2WorldPosition(self, pos:MutableSequence[float]) -> None: ... + @overload + def GetPoint2WorldPosition(self) -> Tuple[float, float, float]: ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetRepresentationState(self) -> int: ... + def GetResolution(self) -> int: ... + def GetSelectedEndPoint2Property(self) -> 'vtkProperty': ... + def GetSelectedEndPointProperty(self) -> 'vtkProperty': ... + def GetSelectedLineProperty(self) -> 'vtkProperty': ... + def GetTextActor(self) -> 'vtkFollower': ... + def GetTolerance(self) -> int: ... + def GetToleranceMaxValue(self) -> int: ... + def GetToleranceMinValue(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def InstantiateHandleRepresentation(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLineRepresentation': ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLineRepresentation': ... + def SetDirectionalLine(self, val:bool) -> None: ... + def SetDistanceAnnotationFormat(self, _arg:str) -> None: ... + @overload + def SetDistanceAnnotationScale(self, x:float, y:float, z:float) -> None: ... + @overload + def SetDistanceAnnotationScale(self, scale:MutableSequence[float]) -> None: ... + def SetDistanceAnnotationVisibility(self, _arg:int) -> None: ... + @overload + def SetForegroundColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetForegroundColor(self, c:MutableSequence[float]) -> None: ... + def SetHandleRepresentation(self, handle:'vtkPointHandleRepresentation3D') -> None: ... + @overload + def SetInteractionColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetInteractionColor(self, c:MutableSequence[float]) -> None: ... + def SetInteractionState(self, _arg:int) -> None: ... + def SetLineColor(self, r:float, g:float, b:float) -> None: ... + def SetPoint1DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint1WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint2DisplayPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPoint2WorldPosition(self, pos:MutableSequence[float]) -> None: ... + def SetRenderer(self, ren:'vtkRenderer') -> None: ... + def SetRepresentationState(self, __a:int) -> None: ... + def SetResolution(self, res:int) -> None: ... + def SetTolerance(self, _arg:int) -> None: ... + def StartWidgetInteraction(self, e:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, e:MutableSequence[float]) -> None: ... + +class vtkLineWidget(vtk3DWidget): + align:'getset_descriptor' + clamp_to_bounds:'getset_descriptor' + enabled:'getset_descriptor' + handle_property:'getset_descriptor' + line_property:'getset_descriptor' + point1:'getset_descriptor' + point2:'getset_descriptor' + resolution:'getset_descriptor' + selected_handle_property:'getset_descriptor' + selected_line_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClampToBoundsOff(self) -> None: ... + def ClampToBoundsOn(self) -> None: ... + def GetAlign(self) -> int: ... + def GetAlignMaxValue(self) -> int: ... + def GetAlignMinValue(self) -> int: ... + def GetClampToBounds(self) -> int: ... + def GetHandleProperty(self) -> 'vtkProperty': ... + def GetLineProperty(self) -> 'vtkProperty': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetPoint1(self) -> Tuple[float, float, float]: ... + @overload + def GetPoint1(self, xyz:MutableSequence[float]) -> None: ... + @overload + def GetPoint2(self) -> Tuple[float, float, float]: ... + @overload + def GetPoint2(self, xyz:MutableSequence[float]) -> None: ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetResolution(self) -> int: ... + def GetSelectedHandleProperty(self) -> 'vtkProperty': ... + def GetSelectedLineProperty(self) -> 'vtkProperty': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLineWidget': ... + @overload + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + @overload + def PlaceWidget(self) -> None: ... + @overload + def PlaceWidget(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLineWidget': ... + def SetAlign(self, _arg:int) -> None: ... + def SetAlignToNone(self) -> None: ... + def SetAlignToXAxis(self) -> None: ... + def SetAlignToYAxis(self) -> None: ... + def SetAlignToZAxis(self) -> None: ... + def SetClampToBounds(self, _arg:int) -> None: ... + def SetEnabled(self, __a:int) -> None: ... + @overload + def SetPoint1(self, x:float, y:float, z:float) -> None: ... + @overload + def SetPoint1(self, x:MutableSequence[float]) -> None: ... + @overload + def SetPoint2(self, x:float, y:float, z:float) -> None: ... + @overload + def SetPoint2(self, x:MutableSequence[float]) -> None: ... + def SetResolution(self, r:int) -> None: ... + +class vtkLineWidget2(vtkAbstractWidget): + enabled:'getset_descriptor' + line_representation:'getset_descriptor' + process_events:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetLineRepresentation(self) -> 'vtkLineRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLineWidget2': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLineWidget2': ... + def SetEnabled(self, enabling:int) -> None: ... + def SetProcessEvents(self, __a:int) -> None: ... + def SetRepresentation(self, r:'vtkLineRepresentation') -> None: ... + +class vtkLinearContourLineInterpolator(vtkContourLineInterpolator): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InterpolateLine(self, ren:'vtkRenderer', rep:'vtkContourRepresentation', idx1:int, idx2:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLinearContourLineInterpolator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLinearContourLineInterpolator': ... + +class vtkLogoRepresentation(vtkBorderRepresentation): + image:'getset_descriptor' + image_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def GetActors2D(self, pc:'vtkPropCollection') -> None: ... + def GetImage(self) -> 'vtkImageData': ... + def GetImageProperty(self) -> 'vtkProperty2D': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLogoRepresentation': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLogoRepresentation': ... + def SetImage(self, img:'vtkImageData') -> None: ... + def SetImageProperty(self, p:'vtkProperty2D') -> None: ... + +class vtkLogoWidget(vtkBorderWidget): + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLogoWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLogoWidget': ... + def SetRepresentation(self, r:'vtkLogoRepresentation') -> None: ... + +class vtkMagnifierRepresentation(vtkWidgetRepresentation): + class InteractionStateType(int): ... + Invisible:'InteractionStateType' + Visible:'InteractionStateType' + border:'getset_descriptor' + border_property:'getset_descriptor' + interaction_state:'getset_descriptor' + m_time:'getset_descriptor' + magnification_factor:'getset_descriptor' + magnification_renderer:'getset_descriptor' + renderer:'getset_descriptor' + size:'getset_descriptor' + view_props:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddViewProp(self, __a:'vtkProp') -> None: ... + def BorderOff(self) -> None: ... + def BorderOn(self) -> None: ... + def BuildRepresentation(self) -> None: ... + def GetBorder(self) -> bool: ... + def GetBorderProperty(self) -> 'vtkProperty2D': ... + def GetInteractionStateMaxValue(self) -> int: ... + def GetInteractionStateMinValue(self) -> int: ... + def GetMTime(self) -> int: ... + def GetMagnificationFactor(self) -> float: ... + def GetMagnificationFactorMaxValue(self) -> float: ... + def GetMagnificationFactorMinValue(self) -> float: ... + def GetMagnificationRenderer(self) -> 'vtkRenderer': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSize(self) -> Tuple[int, int]: ... + def GetViewProps(self) -> 'vtkPropCollection': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def HasViewProp(self, __a:'vtkProp') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMagnifierRepresentation': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RemoveAllViewProps(self) -> None: ... + def RemoveViewProp(self, __a:'vtkProp') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMagnifierRepresentation': ... + def SetBorder(self, _arg:bool) -> None: ... + def SetInteractionState(self, _arg:int) -> None: ... + def SetMagnificationFactor(self, _arg:float) -> None: ... + def SetRenderer(self, ren:'vtkRenderer') -> None: ... + @overload + def SetSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetSize(self, _arg:Sequence[int]) -> None: ... + def WidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + +class vtkMagnifierWidget(vtkAbstractWidget): + enabled:'getset_descriptor' + key_press_decrease_value:'getset_descriptor' + key_press_increase_value:'getset_descriptor' + magnifier_representation:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetKeyPressDecreaseValue(self) -> str: ... + def GetKeyPressIncreaseValue(self) -> str: ... + def GetMagnifierRepresentation(self) -> 'vtkMagnifierRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMagnifierWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMagnifierWidget': ... + def SetEnabled(self, enabling:int) -> None: ... + def SetKeyPressDecreaseValue(self, _arg:str) -> None: ... + def SetKeyPressIncreaseValue(self, _arg:str) -> None: ... + def SetRepresentation(self, r:'vtkMagnifierRepresentation') -> None: ... + +class vtkMeasurementCubeHandleRepresentation3D(vtkHandleRepresentation): + adaptive_scaling:'getset_descriptor' + bounds:'getset_descriptor' + display_position:'getset_descriptor' + handle:'getset_descriptor' + handle_visibility:'getset_descriptor' + label_text:'getset_descriptor' + label_text_input:'getset_descriptor' + label_visibility:'getset_descriptor' + length_unit:'getset_descriptor' + max_relative_cube_screen_area:'getset_descriptor' + min_relative_cube_screen_area:'getset_descriptor' + property:'getset_descriptor' + rescale_factor:'getset_descriptor' + selected_label_visibility:'getset_descriptor' + selected_property:'getset_descriptor' + side_length:'getset_descriptor' + smooth_motion:'getset_descriptor' + transform:'getset_descriptor' + world_position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AdaptiveScalingOff(self) -> None: ... + def AdaptiveScalingOn(self) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def DeepCopy(self, prop:'vtkProp') -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetAdaptiveScaling(self) -> int: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetHandle(self) -> 'vtkPolyData': ... + def GetHandleVisibility(self) -> int: ... + def GetLabelText(self) -> 'vtkBillboardTextActor3D': ... + def GetLabelTextInput(self) -> str: ... + def GetLabelVisibility(self) -> int: ... + def GetLengthUnit(self) -> str: ... + def GetMaxRelativeCubeScreenArea(self) -> float: ... + def GetMinRelativeCubeScreenArea(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProperty(self) -> 'vtkProperty': ... + def GetRescaleFactor(self) -> float: ... + def GetRescaleFactorMaxValue(self) -> float: ... + def GetRescaleFactorMinValue(self) -> float: ... + def GetSelectedLabelVisibility(self) -> int: ... + def GetSelectedProperty(self) -> 'vtkProperty': ... + def GetSideLength(self) -> float: ... + def GetSmoothMotion(self) -> int: ... + def GetTransform(self) -> 'vtkAbstractTransform': ... + def HandleVisibilityOff(self) -> None: ... + def HandleVisibilityOn(self) -> None: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def Highlight(self, highlight:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LabelVisibilityOff(self) -> None: ... + def LabelVisibilityOn(self) -> None: ... + def NewInstance(self) -> 'vtkMeasurementCubeHandleRepresentation3D': ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMeasurementCubeHandleRepresentation3D': ... + def SelectedLabelVisibilityOff(self) -> None: ... + def SelectedLabelVisibilityOn(self) -> None: ... + def SetAdaptiveScaling(self, _arg:int) -> None: ... + def SetDisplayPosition(self, p:MutableSequence[float]) -> None: ... + def SetHandleVisibility(self, _arg:int) -> None: ... + def SetLabelTextInput(self, label:str) -> None: ... + def SetLabelVisibility(self, _arg:int) -> None: ... + def SetLengthUnit(self, _arg:str) -> None: ... + def SetMaxRelativeCubeScreenArea(self, __a:float) -> None: ... + def SetMinRelativeCubeScreenArea(self, __a:float) -> None: ... + def SetProperty(self, __a:'vtkProperty') -> None: ... + def SetRescaleFactor(self, _arg:float) -> None: ... + def SetSelectedLabelVisibility(self, _arg:int) -> None: ... + def SetSelectedProperty(self, __a:'vtkProperty') -> None: ... + def SetSideLength(self, __a:float) -> None: ... + def SetSmoothMotion(self, _arg:int) -> None: ... + def SetWorldPosition(self, p:MutableSequence[float]) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def SmoothMotionOff(self) -> None: ... + def SmoothMotionOn(self) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + +class vtkOrientationMarkerWidget(vtkmodules.vtkRenderingCore.vtkInteractorObserver): + enabled:'getset_descriptor' + interactive:'getset_descriptor' + max_dimension_size:'getset_descriptor' + min_dimension_size:'getset_descriptor' + orientation_marker:'getset_descriptor' + outline_color:'getset_descriptor' + renderer:'getset_descriptor' + should_constrain_size:'getset_descriptor' + tolerance:'getset_descriptor' + viewport:'getset_descriptor' + zoom:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def EndInteraction(self) -> None: ... + def ExecuteCameraUpdateEvent(self, o:'vtkObject', event:int, calldata:Pointer) -> None: ... + def GetInteractive(self) -> int: ... + def GetMaxDimensionSize(self) -> int: ... + def GetMinDimensionSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientationMarker(self) -> 'vtkProp': ... + def GetOutlineColor(self) -> Tuple[float, float, float]: ... + def GetRenderer(self) -> 'vtkRenderer': ... + def GetShouldConstrainSize(self) -> int: ... + def GetTolerance(self) -> int: ... + def GetToleranceMaxValue(self) -> int: ... + def GetToleranceMinValue(self) -> int: ... + def GetViewport(self) -> Tuple[float, float, float, float]: ... + def GetZoom(self) -> float: ... + def GetZoomMaxValue(self) -> float: ... + def GetZoomMinValue(self) -> float: ... + def InteractiveOff(self) -> None: ... + def InteractiveOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Modified(self) -> None: ... + def NewInstance(self) -> 'vtkOrientationMarkerWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOrientationMarkerWidget': ... + def SetEnabled(self, __a:int) -> None: ... + def SetInteractive(self, interact:int) -> None: ... + def SetOrientationMarker(self, prop:'vtkProp') -> None: ... + def SetOutlineColor(self, r:float, g:float, b:float) -> None: ... + def SetRenderer(self, renderer:'vtkRenderer') -> None: ... + def SetShouldConstrainSize(self, shouldConstrainSize:int) -> None: ... + def SetSizeConstraintDimensionSizes(self, minDimensionSize:int, maxDimensionSize:int) -> bool: ... + def SetTolerance(self, _arg:int) -> None: ... + @overload + def SetViewport(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetViewport(self, _arg:Sequence[float]) -> None: ... + def SetZoom(self, _arg:float) -> None: ... + +class vtkOrientationRepresentation(vtkWidgetRepresentation): + class Axis(int): ... + Outside:int + RotatingX:int + RotatingY:int + RotatingZ:int + X_AXIS:'Axis' + Y_AXIS:'Axis' + Z_AXIS:'Axis' + arrow_distance:'getset_descriptor' + arrow_length:'getset_descriptor' + arrow_shaft_radius:'getset_descriptor' + arrow_tip_length:'getset_descriptor' + arrow_tip_radius:'getset_descriptor' + bounds:'getset_descriptor' + interaction_state:'getset_descriptor' + orientation:'getset_descriptor' + orientation_x:'getset_descriptor' + orientation_y:'getset_descriptor' + orientation_z:'getset_descriptor' + show_arrows:'getset_descriptor' + torus_length:'getset_descriptor' + torus_thickness:'getset_descriptor' + transform:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetArrowDistance(self) -> float: ... + def GetArrowDistanceMaxValue(self) -> float: ... + def GetArrowDistanceMinValue(self) -> float: ... + def GetArrowLength(self) -> float: ... + def GetArrowLengthMaxValue(self) -> float: ... + def GetArrowLengthMinValue(self) -> float: ... + def GetArrowShaftRadius(self) -> float: ... + def GetArrowShaftRadiusMaxValue(self) -> float: ... + def GetArrowShaftRadiusMinValue(self) -> float: ... + def GetArrowTipLength(self) -> float: ... + def GetArrowTipRadius(self) -> float: ... + def GetArrowTipRadiusMaxValue(self) -> float: ... + def GetArrowTipRadiusMinValue(self) -> float: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientation(self) -> Pointer: ... + def GetOrientationX(self) -> float: ... + def GetOrientationY(self) -> float: ... + def GetOrientationZ(self) -> float: ... + def GetProperty(self, axis:int, selected:bool) -> 'vtkProperty': ... + def GetPropertyX(self, selected:bool) -> 'vtkProperty': ... + def GetPropertyY(self, selected:bool) -> 'vtkProperty': ... + def GetPropertyZ(self, selected:bool) -> 'vtkProperty': ... + def GetShowArrows(self) -> bool: ... + def GetTorusLength(self) -> float: ... + def GetTorusLengthMaxValue(self) -> float: ... + def GetTorusLengthMinValue(self) -> float: ... + def GetTorusThickness(self) -> float: ... + def GetTorusThicknessMaxValue(self) -> float: ... + def GetTorusThicknessMinValue(self) -> float: ... + def GetTransform(self) -> 'vtkTransform': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOrientationRepresentation': ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOrientationRepresentation': ... + def SetArrowDistance(self, _arg:float) -> None: ... + def SetArrowLength(self, _arg:float) -> None: ... + def SetArrowShaftRadius(self, _arg:float) -> None: ... + def SetArrowTipLength(self, _arg:float) -> None: ... + def SetArrowTipRadius(self, _arg:float) -> None: ... + def SetInteractionState(self, state:int) -> None: ... + def SetOrientation(self, values:MutableSequence[float]) -> None: ... + def SetOrientationX(self, value:float) -> None: ... + def SetOrientationY(self, value:float) -> None: ... + def SetOrientationZ(self, value:float) -> None: ... + def SetProperty(self, axis:int, selected:bool, property:'vtkProperty') -> None: ... + def SetPropertyX(self, selected:bool, property:'vtkProperty') -> None: ... + def SetPropertyY(self, selected:bool, property:'vtkProperty') -> None: ... + def SetPropertyZ(self, selected:bool, property:'vtkProperty') -> None: ... + def SetShowArrows(self, _arg:bool) -> None: ... + def SetTorusLength(self, _arg:float) -> None: ... + def SetTorusThickness(self, _arg:float) -> None: ... + def ShowArrowsOff(self) -> None: ... + def ShowArrowsOn(self) -> None: ... + def StartWidgetInteraction(self, e:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, e:MutableSequence[float]) -> None: ... + +class vtkOrientationWidget(vtkAbstractWidget): + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOrientationWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOrientationWidget': ... + def SetRepresentation(self, r:'vtkOrientationRepresentation') -> None: ... + +class vtkOrientedGlyphContourRepresentation(vtkContourRepresentation): + active_cursor_shape:'getset_descriptor' + active_property:'getset_descriptor' + always_on_top:'getset_descriptor' + bounds:'getset_descriptor' + contour_representation_as_poly_data:'getset_descriptor' + cursor_shape:'getset_descriptor' + line_color:'getset_descriptor' + lines_property:'getset_descriptor' + property:'getset_descriptor' + renderer:'getset_descriptor' + show_selected_nodes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AlwaysOnTopOff(self) -> None: ... + def AlwaysOnTopOn(self) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modified:int=0) -> int: ... + def GetActiveCursorShape(self) -> 'vtkPolyData': ... + def GetActiveProperty(self) -> 'vtkProperty': ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetAlwaysOnTop(self) -> int: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetContourRepresentationAsPolyData(self) -> 'vtkPolyData': ... + def GetCursorShape(self) -> 'vtkPolyData': ... + def GetLinesProperty(self) -> 'vtkProperty': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProperty(self) -> 'vtkProperty': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOrientedGlyphContourRepresentation': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOrientedGlyphContourRepresentation': ... + def SetActiveCursorShape(self, activeShape:'vtkPolyData') -> None: ... + def SetAlwaysOnTop(self, _arg:int) -> None: ... + def SetCursorShape(self, cursorShape:'vtkPolyData') -> None: ... + def SetLineColor(self, r:float, g:float, b:float) -> None: ... + def SetRenderer(self, ren:'vtkRenderer') -> None: ... + def SetShowSelectedNodes(self, __a:int) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + +class vtkOrientedGlyphFocalPlaneContourRepresentation(vtkFocalPlaneContourRepresentation): + active_cursor_shape:'getset_descriptor' + active_property:'getset_descriptor' + contour_representation_as_poly_data:'getset_descriptor' + cursor_shape:'getset_descriptor' + lines_property:'getset_descriptor' + property:'getset_descriptor' + renderer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modified:int=0) -> int: ... + def GetActiveCursorShape(self) -> 'vtkPolyData': ... + def GetActiveProperty(self) -> 'vtkProperty2D': ... + def GetActors2D(self, __a:'vtkPropCollection') -> None: ... + def GetContourPlaneDirectionCosines(self, origin:Sequence[float] ) -> 'vtkMatrix4x4': ... + def GetContourRepresentationAsPolyData(self) -> 'vtkPolyData': ... + def GetCursorShape(self) -> 'vtkPolyData': ... + def GetLinesProperty(self) -> 'vtkProperty2D': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProperty(self) -> 'vtkProperty2D': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOrientedGlyphFocalPlaneContourRepresentation': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOrientedGlyphFocalPlaneContourRepresentation': ... + def SetActiveCursorShape(self, activeShape:'vtkPolyData') -> None: ... + def SetCursorShape(self, cursorShape:'vtkPolyData') -> None: ... + def SetRenderer(self, ren:'vtkRenderer') -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + +class vtkOrientedPolygonalHandleRepresentation3D(vtkAbstractPolygonalHandleRepresentation3D): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOrientedPolygonalHandleRepresentation3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOrientedPolygonalHandleRepresentation3D': ... + +class vtkParallelopipedRepresentation(vtkWidgetRepresentation): + class InteractionStateType(int): ... + ChairMode:'InteractionStateType' + Inside:'InteractionStateType' + Outside:'InteractionStateType' + RequestChairMode:'InteractionStateType' + RequestResizeParallelopiped:'InteractionStateType' + RequestResizeParallelopipedAlongAnAxis:'InteractionStateType' + RequestRotateParallelopiped:'InteractionStateType' + RequestScaleParallelopiped:'InteractionStateType' + RequestTranslateParallelopiped:'InteractionStateType' + ResizingParallelopiped:'InteractionStateType' + ResizingParallelopipedAlongAnAxis:'InteractionStateType' + RotatingParallelopiped:'InteractionStateType' + ScalingParallelopiped:'InteractionStateType' + TranslatingParallelopiped:'InteractionStateType' + bounds:'getset_descriptor' + face_property:'getset_descriptor' + handle_property:'getset_descriptor' + handle_representation:'getset_descriptor' + hovered_handle_property:'getset_descriptor' + interaction_state:'getset_descriptor' + minimum_thickness:'getset_descriptor' + outline_property:'getset_descriptor' + selected_face_property:'getset_descriptor' + selected_handle_property:'getset_descriptor' + selected_outline_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def GetActors(self, pc:'vtkPropCollection') -> None: ... + def GetBoundingPlanes(self, pc:'vtkPlaneCollection') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetFaceProperty(self) -> 'vtkProperty': ... + def GetHandleProperty(self) -> 'vtkProperty': ... + def GetHandleRepresentation(self, index:int) -> 'vtkHandleRepresentation': ... + def GetHoveredHandleProperty(self) -> 'vtkProperty': ... + def GetMinimumThickness(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutlineProperty(self) -> 'vtkProperty': ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetSelectedFaceProperty(self) -> 'vtkProperty': ... + def GetSelectedHandleProperty(self) -> 'vtkProperty': ... + def GetSelectedOutlineProperty(self) -> 'vtkProperty': ... + def HandlesOff(self) -> None: ... + def HandlesOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParallelopipedRepresentation': ... + @overload + def PlaceWidget(self, corners:MutableSequence[MutableSequence[float]]) -> None: ... + @overload + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def PositionHandles(self) -> None: ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParallelopipedRepresentation': ... + def Scale(self, X:int, Y:int) -> None: ... + def SetHandleProperty(self, __a:'vtkProperty') -> None: ... + def SetHandleRepresentation(self, handle:'vtkHandleRepresentation') -> None: ... + def SetHoveredHandleProperty(self, __a:'vtkProperty') -> None: ... + def SetInteractionState(self, _arg:int) -> None: ... + def SetMinimumThickness(self, _arg:float) -> None: ... + def SetSelectedHandleProperty(self, __a:'vtkProperty') -> None: ... + @overload + def Translate(self, translation:MutableSequence[float]) -> None: ... + @overload + def Translate(self, X:int, Y:int) -> None: ... + +class vtkParallelopipedWidget(vtkAbstractWidget): + enable_chair_creation:'getset_descriptor' + enabled:'getset_descriptor' + parallelopiped_representation:'getset_descriptor' + process_events:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def EnableChairCreationOff(self) -> None: ... + def EnableChairCreationOn(self) -> None: ... + def GetEnableChairCreation(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParallelopipedRepresentation(self) -> 'vtkParallelopipedRepresentation': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParallelopipedWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParallelopipedWidget': ... + def SetEnableChairCreation(self, _arg:int) -> None: ... + def SetEnabled(self, __a:int) -> None: ... + def SetProcessEvents(self, __a:int) -> None: ... + def SetRepresentation(self, r:'vtkParallelopipedRepresentation') -> None: ... + +class vtkPlaneWidget(vtkPolyDataSourceWidget): + center:'getset_descriptor' + enabled:'getset_descriptor' + handle_property:'getset_descriptor' + normal:'getset_descriptor' + normal_to_x_axis:'getset_descriptor' + normal_to_y_axis:'getset_descriptor' + normal_to_z_axis:'getset_descriptor' + origin:'getset_descriptor' + plane_property:'getset_descriptor' + point1:'getset_descriptor' + point2:'getset_descriptor' + poly_data_algorithm:'getset_descriptor' + representation:'getset_descriptor' + resolution:'getset_descriptor' + selected_handle_property:'getset_descriptor' + selected_plane_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetCenter(self) -> Tuple[float, float, float]: ... + @overload + def GetCenter(self, xyz:MutableSequence[float]) -> None: ... + def GetHandleProperty(self) -> 'vtkProperty': ... + @overload + def GetNormal(self) -> Tuple[float, float, float]: ... + @overload + def GetNormal(self, xyz:MutableSequence[float]) -> None: ... + def GetNormalToXAxis(self) -> int: ... + def GetNormalToYAxis(self) -> int: ... + def GetNormalToZAxis(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOrigin(self) -> Tuple[float, float, float]: ... + @overload + def GetOrigin(self, xyz:MutableSequence[float]) -> None: ... + def GetPlane(self, plane:'vtkPlane') -> None: ... + def GetPlaneProperty(self) -> 'vtkProperty': ... + @overload + def GetPoint1(self) -> Tuple[float, float, float]: ... + @overload + def GetPoint1(self, xyz:MutableSequence[float]) -> None: ... + @overload + def GetPoint2(self) -> Tuple[float, float, float]: ... + @overload + def GetPoint2(self, xyz:MutableSequence[float]) -> None: ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetPolyDataAlgorithm(self) -> 'vtkPolyDataAlgorithm': ... + def GetRepresentation(self) -> int: ... + def GetRepresentationMaxValue(self) -> int: ... + def GetRepresentationMinValue(self) -> int: ... + def GetResolution(self) -> int: ... + def GetSelectedHandleProperty(self) -> 'vtkProperty': ... + def GetSelectedPlaneProperty(self) -> 'vtkProperty': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlaneWidget': ... + def NormalToXAxisOff(self) -> None: ... + def NormalToXAxisOn(self) -> None: ... + def NormalToYAxisOff(self) -> None: ... + def NormalToYAxisOn(self) -> None: ... + def NormalToZAxisOff(self) -> None: ... + def NormalToZAxisOn(self) -> None: ... + @overload + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + @overload + def PlaceWidget(self) -> None: ... + @overload + def PlaceWidget(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlaneWidget': ... + @overload + def SetCenter(self, x:float, y:float, z:float) -> None: ... + @overload + def SetCenter(self, x:MutableSequence[float]) -> None: ... + def SetEnabled(self, __a:int) -> None: ... + @overload + def SetNormal(self, x:float, y:float, z:float) -> None: ... + @overload + def SetNormal(self, x:MutableSequence[float]) -> None: ... + def SetNormalToXAxis(self, _arg:int) -> None: ... + def SetNormalToYAxis(self, _arg:int) -> None: ... + def SetNormalToZAxis(self, _arg:int) -> None: ... + @overload + def SetOrigin(self, x:float, y:float, z:float) -> None: ... + @overload + def SetOrigin(self, x:MutableSequence[float]) -> None: ... + def SetPlaneProperty(self, __a:'vtkProperty') -> None: ... + @overload + def SetPoint1(self, x:float, y:float, z:float) -> None: ... + @overload + def SetPoint1(self, x:MutableSequence[float]) -> None: ... + @overload + def SetPoint2(self, x:float, y:float, z:float) -> None: ... + @overload + def SetPoint2(self, x:MutableSequence[float]) -> None: ... + def SetRepresentation(self, _arg:int) -> None: ... + def SetRepresentationToOff(self) -> None: ... + def SetRepresentationToOutline(self) -> None: ... + def SetRepresentationToSurface(self) -> None: ... + def SetRepresentationToWireframe(self) -> None: ... + def SetResolution(self, r:int) -> None: ... + def UpdatePlacement(self) -> None: ... + +class vtkPlaybackRepresentation(vtkBorderRepresentation): + property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BackwardOneFrame(self) -> None: ... + def BuildRepresentation(self) -> None: ... + def ForwardOneFrame(self) -> None: ... + def GetActors2D(self, __a:'vtkPropCollection') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProperty(self) -> 'vtkProperty2D': ... + def GetSize(self, size:MutableSequence[float]) -> None: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def JumpToBeginning(self) -> None: ... + def JumpToEnd(self) -> None: ... + def NewInstance(self) -> 'vtkPlaybackRepresentation': ... + def Play(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlaybackRepresentation': ... + def Stop(self) -> None: ... + +class vtkPlaybackWidget(vtkBorderWidget): + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPlaybackWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPlaybackWidget': ... + def SetRepresentation(self, r:'vtkPlaybackRepresentation') -> None: ... + +class vtkPointCloudRepresentation(vtkWidgetRepresentation): + class PickingModeType(int): ... + class InteractionStateType(int): ... + HARDWARE_PICKING:'PickingModeType' + Outside:'InteractionStateType' + Over:'InteractionStateType' + OverOutline:'InteractionStateType' + SOFTWARE_PICKING:'PickingModeType' + Selecting:'InteractionStateType' + bounds:'getset_descriptor' + hardware_picking_tolerance:'getset_descriptor' + highlighting:'getset_descriptor' + interaction_state:'getset_descriptor' + picking_mode:'getset_descriptor' + point_cloud_actor:'getset_descriptor' + point_cloud_mapper:'getset_descriptor' + point_id:'getset_descriptor' + software_picking_tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def GetActors(self, pc:'vtkPropCollection') -> None: ... + def GetActors2D(self, pc:'vtkPropCollection') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetHardwarePickingTolerance(self) -> int: ... + def GetHighlighting(self) -> bool: ... + def GetInteractionStateMaxValue(self) -> int: ... + def GetInteractionStateMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPickingMode(self) -> int: ... + def GetPickingModeMaxValue(self) -> int: ... + def GetPickingModeMinValue(self) -> int: ... + def GetPointCloudActor(self) -> 'vtkActor': ... + def GetPointCloudMapper(self) -> 'vtkPolyDataMapper': ... + @overload + def GetPointCoordinates(self) -> Pointer: ... + @overload + def GetPointCoordinates(self, x:MutableSequence[float]) -> None: ... + def GetPointId(self) -> int: ... + def GetSoftwarePickingTolerance(self) -> float: ... + def GetSoftwarePickingToleranceMaxValue(self) -> float: ... + def GetSoftwarePickingToleranceMinValue(self) -> float: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def HighlightingOff(self) -> None: ... + def HighlightingOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointCloudRepresentation': ... + @overload + def PlacePointCloud(self, a:'vtkActor') -> None: ... + @overload + def PlacePointCloud(self, ps:'vtkPointSet') -> None: ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointCloudRepresentation': ... + def SetHardwarePickingTolerance(self, _arg:int) -> None: ... + def SetHighlighting(self, _arg:bool) -> None: ... + def SetInteractionState(self, _arg:int) -> None: ... + def SetPickingMode(self, _arg:int) -> None: ... + def SetPickingModeToHardware(self) -> None: ... + def SetPickingModeToSoftware(self) -> None: ... + def SetSoftwarePickingTolerance(self, _arg:float) -> None: ... + +class vtkPointCloudWidget(vtkAbstractWidget): + enabled:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointCloudWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointCloudWidget': ... + def SetEnabled(self, enabling:int) -> None: ... + def SetRepresentation(self, r:'vtkPointCloudRepresentation') -> None: ... + +class vtkPointHandleRepresentation2D(vtkHandleRepresentation): + bounds:'getset_descriptor' + cursor_shape:'getset_descriptor' + display_position:'getset_descriptor' + point_placer:'getset_descriptor' + property:'getset_descriptor' + selected_property:'getset_descriptor' + visibility:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def DeepCopy(self, prop:'vtkProp') -> None: ... + def GetActors2D(self, __a:'vtkPropCollection') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetCursorShape(self) -> 'vtkPolyData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProperty(self) -> 'vtkProperty2D': ... + def GetSelectedProperty(self) -> 'vtkProperty2D': ... + def Highlight(self, highlight:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointHandleRepresentation2D': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointHandleRepresentation2D': ... + def SetCursorShape(self, cursorShape:'vtkPolyData') -> None: ... + def SetDisplayPosition(self, xyz:MutableSequence[float]) -> None: ... + def SetPointPlacer(self, __a:'vtkPointPlacer') -> None: ... + def SetProperty(self, __a:'vtkProperty2D') -> None: ... + def SetSelectedProperty(self, __a:'vtkProperty2D') -> None: ... + def SetVisibility(self, visible:int) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def Translate(self, p1:Sequence[float], p2:Sequence[float]) -> None: ... + def WidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + +class vtkPointHandleRepresentation3D(vtkHandleRepresentation): + bounds:'getset_descriptor' + display_position:'getset_descriptor' + foreground_color:'getset_descriptor' + handle_size:'getset_descriptor' + hot_spot_size:'getset_descriptor' + interaction_color:'getset_descriptor' + outline:'getset_descriptor' + property:'getset_descriptor' + selected_property:'getset_descriptor' + smooth_motion:'getset_descriptor' + translation_mode:'getset_descriptor' + visibility:'getset_descriptor' + world_position:'getset_descriptor' + x_shadows:'getset_descriptor' + y_shadows:'getset_descriptor' + z_shadows:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllOff(self) -> None: ... + def AllOn(self) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def ComputeComplexInteractionState(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer, modify:int=0) -> int: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def DeepCopy(self, prop:'vtkProp') -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetHotSpotSize(self) -> float: ... + def GetHotSpotSizeMaxValue(self) -> float: ... + def GetHotSpotSizeMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutline(self) -> int: ... + def GetProperty(self) -> 'vtkProperty': ... + def GetSelectedProperty(self) -> 'vtkProperty': ... + def GetSmoothMotion(self) -> int: ... + def GetTranslationMode(self) -> int: ... + def GetXShadows(self) -> int: ... + def GetYShadows(self) -> int: ... + def GetZShadows(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def Highlight(self, highlight:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointHandleRepresentation3D': ... + def OutlineOff(self) -> None: ... + def OutlineOn(self) -> None: ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointHandleRepresentation3D': ... + def SetDisplayPosition(self, p:MutableSequence[float]) -> None: ... + @overload + def SetForegroundColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetForegroundColor(self, c:MutableSequence[float]) -> None: ... + def SetHandleSize(self, size:float) -> None: ... + def SetHotSpotSize(self, _arg:float) -> None: ... + @overload + def SetInteractionColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetInteractionColor(self, c:MutableSequence[float]) -> None: ... + def SetOutline(self, o:int) -> None: ... + def SetProperty(self, __a:'vtkProperty') -> None: ... + def SetSelectedProperty(self, __a:'vtkProperty') -> None: ... + def SetSmoothMotion(self, _arg:int) -> None: ... + def SetTranslationMode(self, mode:int) -> None: ... + def SetVisibility(self, visible:int) -> None: ... + def SetWorldPosition(self, p:MutableSequence[float]) -> None: ... + def SetXShadows(self, o:int) -> None: ... + def SetYShadows(self, o:int) -> None: ... + def SetZShadows(self, o:int) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def SmoothMotionOff(self) -> None: ... + def SmoothMotionOn(self) -> None: ... + def StartComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def Translate(self, v:Sequence[float]) -> None: ... + def TranslationModeOff(self) -> None: ... + def TranslationModeOn(self) -> None: ... + def WidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def XShadowsOff(self) -> None: ... + def XShadowsOn(self) -> None: ... + def YShadowsOff(self) -> None: ... + def YShadowsOn(self) -> None: ... + def ZShadowsOff(self) -> None: ... + def ZShadowsOn(self) -> None: ... + +class vtkPointWidget(vtk3DWidget): + enabled:'getset_descriptor' + hot_spot_size:'getset_descriptor' + outline:'getset_descriptor' + position:'getset_descriptor' + property:'getset_descriptor' + selected_property:'getset_descriptor' + translation_mode:'getset_descriptor' + x_shadows:'getset_descriptor' + y_shadows:'getset_descriptor' + z_shadows:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllOff(self) -> None: ... + def AllOn(self) -> None: ... + def GetHotSpotSize(self) -> float: ... + def GetHotSpotSizeMaxValue(self) -> float: ... + def GetHotSpotSizeMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutline(self) -> int: ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + @overload + def GetPosition(self) -> Tuple[float, float, float]: ... + @overload + def GetPosition(self, xyz:MutableSequence[float]) -> None: ... + def GetProperty(self) -> 'vtkProperty': ... + def GetSelectedProperty(self) -> 'vtkProperty': ... + def GetTranslationMode(self) -> int: ... + def GetXShadows(self) -> int: ... + def GetYShadows(self) -> int: ... + def GetZShadows(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointWidget': ... + def OutlineOff(self) -> None: ... + def OutlineOn(self) -> None: ... + @overload + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + @overload + def PlaceWidget(self) -> None: ... + @overload + def PlaceWidget(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointWidget': ... + def SetEnabled(self, __a:int) -> None: ... + def SetHotSpotSize(self, _arg:float) -> None: ... + def SetOutline(self, o:int) -> None: ... + @overload + def SetPosition(self, x:float, y:float, z:float) -> None: ... + @overload + def SetPosition(self, x:MutableSequence[float]) -> None: ... + def SetTranslationMode(self, mode:int) -> None: ... + def SetXShadows(self, o:int) -> None: ... + def SetYShadows(self, o:int) -> None: ... + def SetZShadows(self, o:int) -> None: ... + def TranslationModeOff(self) -> None: ... + def TranslationModeOn(self) -> None: ... + def XShadowsOff(self) -> None: ... + def XShadowsOn(self) -> None: ... + def YShadowsOff(self) -> None: ... + def YShadowsOn(self) -> None: ... + def ZShadowsOff(self) -> None: ... + def ZShadowsOn(self) -> None: ... + +class vtkPolyDataContourLineInterpolator(vtkContourLineInterpolator): + polys:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPolys(self) -> 'vtkPolyDataCollection': ... + def InterpolateLine(self, ren:'vtkRenderer', rep:'vtkContourRepresentation', idx1:int, idx2:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyDataContourLineInterpolator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataContourLineInterpolator': ... + def UpdateNode(self, __a:'vtkRenderer', __b:'vtkContourRepresentation', node:MutableSequence[float], idx:int) -> int: ... + +class vtkPolyDataPointPlacer(vtkPointPlacer): + number_of_props:'getset_descriptor' + prop_picker:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddProp(self, __a:'vtkProp') -> None: ... + @overload + def ComputeWorldPosition(self, ren:'vtkRenderer', displayPos:MutableSequence[float], worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + @overload + def ComputeWorldPosition(self, ren:'vtkRenderer', displayPos:MutableSequence[float], refWorldPos:MutableSequence[float], worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfProps(self) -> int: ... + def GetPropPicker(self) -> 'vtkPropPicker': ... + def HasProp(self, __a:'vtkProp') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyDataPointPlacer': ... + def RemoveAllProps(self) -> None: ... + def RemoveViewProp(self, prop:'vtkProp') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataPointPlacer': ... + def ValidateDisplayPosition(self, __a:'vtkRenderer', displayPos:MutableSequence[float]) -> int: ... + @overload + def ValidateWorldPosition(self, worldPos:MutableSequence[float]) -> int: ... + @overload + def ValidateWorldPosition(self, worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + +class vtkPolyLineRepresentation(vtkCurveRepresentation): + handle_positions:'getset_descriptor' + number_of_handles:'getset_descriptor' + summed_length:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def GetHandlePositions(self) -> 'vtkDoubleArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetSummedLength(self) -> float: ... + def InitializeHandles(self, points:'vtkPoints') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyLineRepresentation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyLineRepresentation': ... + def SetNumberOfHandles(self, npts:int) -> None: ... + +class vtkPolyLineWidget(vtkAbstractWidget): + enabled:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyLineWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyLineWidget': ... + def SetEnabled(self, enabling:int) -> None: ... + def SetRepresentation(self, r:'vtkPolyLineRepresentation') -> None: ... + +class vtkPolygonalSurfaceContourLineInterpolator(vtkPolyDataContourLineInterpolator): + distance_offset:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetContourPointIds(self, rep:'vtkContourRepresentation', ids:'vtkIdList') -> None: ... + def GetDistanceOffset(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InterpolateLine(self, ren:'vtkRenderer', rep:'vtkContourRepresentation', idx1:int, idx2:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolygonalSurfaceContourLineInterpolator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolygonalSurfaceContourLineInterpolator': ... + def SetDistanceOffset(self, _arg:float) -> None: ... + def UpdateNode(self, __a:'vtkRenderer', __b:'vtkContourRepresentation', node:MutableSequence[float], idx:int) -> int: ... + +class vtkPolygonalSurfacePointPlacer(vtkPolyDataPointPlacer): + cell_picker:'getset_descriptor' + distance_offset:'getset_descriptor' + polys:'getset_descriptor' + snap_to_closest_point:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddProp(self, __a:'vtkProp') -> None: ... + @overload + def ComputeWorldPosition(self, ren:'vtkRenderer', displayPos:MutableSequence[float], worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + @overload + def ComputeWorldPosition(self, ren:'vtkRenderer', displayPos:MutableSequence[float], refWorldPos:MutableSequence[float], worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + def GetCellPicker(self) -> 'vtkCellPicker': ... + def GetDistanceOffset(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPolys(self) -> 'vtkPolyDataCollection': ... + def GetSnapToClosestPoint(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolygonalSurfacePointPlacer': ... + def RemoveAllProps(self) -> None: ... + def RemoveViewProp(self, prop:'vtkProp') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolygonalSurfacePointPlacer': ... + def SetDistanceOffset(self, _arg:float) -> None: ... + def SetSnapToClosestPoint(self, _arg:int) -> None: ... + def SnapToClosestPointOff(self) -> None: ... + def SnapToClosestPointOn(self) -> None: ... + def UpdateNodeWorldPosition(self, worldPos:MutableSequence[float], nodePointId:int) -> int: ... + def ValidateDisplayPosition(self, __a:'vtkRenderer', displayPos:MutableSequence[float]) -> int: ... + @overload + def ValidateWorldPosition(self, worldPos:MutableSequence[float]) -> int: ... + @overload + def ValidateWorldPosition(self, worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + +class vtkPolygonalSurfacePointPlacerNode(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkPolygonalSurfacePointPlacerNode') -> None: ... + +class vtkProgressBarRepresentation(vtkBorderRepresentation): + background_color:'getset_descriptor' + draw_background:'getset_descriptor' + draw_frame:'getset_descriptor' + padding:'getset_descriptor' + progress_bar_color:'getset_descriptor' + progress_rate:'getset_descriptor' + property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def DrawBackgroundOff(self) -> None: ... + def DrawBackgroundOn(self) -> None: ... + def DrawFrameOff(self) -> None: ... + def DrawFrameOn(self) -> None: ... + def GetActors2D(self, __a:'vtkPropCollection') -> None: ... + def GetBackgroundColor(self) -> Tuple[float, float, float]: ... + def GetDrawBackground(self) -> bool: ... + def GetDrawFrame(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPadding(self) -> Tuple[float, float]: ... + def GetProgressBarColor(self) -> Tuple[float, float, float]: ... + def GetProgressRate(self) -> float: ... + def GetProgressRateMaxValue(self) -> float: ... + def GetProgressRateMinValue(self) -> float: ... + def GetProperty(self) -> 'vtkProperty2D': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProgressBarRepresentation': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProgressBarRepresentation': ... + @overload + def SetBackgroundColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetBackgroundColor(self, _arg:Sequence[float]) -> None: ... + def SetDrawBackground(self, _arg:bool) -> None: ... + def SetDrawFrame(self, _arg:bool) -> None: ... + @overload + def SetPadding(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetPadding(self, _arg:Sequence[float]) -> None: ... + @overload + def SetProgressBarColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetProgressBarColor(self, _arg:Sequence[float]) -> None: ... + def SetProgressRate(self, _arg:float) -> None: ... + +class vtkProgressBarWidget(vtkBorderWidget): + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProgressBarWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProgressBarWidget': ... + def SetRepresentation(self, r:'vtkProgressBarRepresentation') -> None: ... + +class vtkProp3DButtonRepresentation(vtkButtonRepresentation): + bounds:'getset_descriptor' + follow_camera:'getset_descriptor' + state:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def FollowCameraOff(self) -> None: ... + def FollowCameraOn(self) -> None: ... + def GetActors(self, pc:'vtkPropCollection') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetButtonProp(self, i:int) -> 'vtkProp3D': ... + def GetFollowCamera(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProp3DButtonRepresentation': ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + def RenderVolumetricGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProp3DButtonRepresentation': ... + def SetButtonProp(self, i:int, prop:'vtkProp3D') -> None: ... + def SetFollowCamera(self, _arg:int) -> None: ... + def SetState(self, state:int) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkRectilinearWipeRepresentation(vtkWidgetRepresentation): + class InteractionStateType(int): ... + MovingCenter:'InteractionStateType' + MovingHPane:'InteractionStateType' + MovingVPane:'InteractionStateType' + Outside:'InteractionStateType' + image_actor:'getset_descriptor' + property:'getset_descriptor' + rectilinear_wipe:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def GetActors2D(self, __a:'vtkPropCollection') -> None: ... + def GetImageActor(self) -> 'vtkImageActor': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProperty(self) -> 'vtkProperty2D': ... + def GetRectilinearWipe(self) -> 'vtkImageRectilinearWipe': ... + def GetTolerance(self) -> int: ... + def GetToleranceMaxValue(self) -> int: ... + def GetToleranceMinValue(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRectilinearWipeRepresentation': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRectilinearWipeRepresentation': ... + def SetImageActor(self, imageActor:'vtkImageActor') -> None: ... + def SetRectilinearWipe(self, wipe:'vtkImageRectilinearWipe') -> None: ... + def SetTolerance(self, _arg:int) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + +class vtkRectilinearWipeWidget(vtkAbstractWidget): + rectilinear_wipe_representation:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRectilinearWipeRepresentation(self) -> 'vtkRectilinearWipeRepresentation': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRectilinearWipeWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRectilinearWipeWidget': ... + def SetRepresentation(self, r:'vtkRectilinearWipeRepresentation') -> None: ... + +class vtkResliceCursor(vtkmodules.vtkCommonCore.vtkObject): + center:'getset_descriptor' + hole:'getset_descriptor' + hole_width:'getset_descriptor' + hole_width_in_pixels:'getset_descriptor' + image:'getset_descriptor' + m_time:'getset_descriptor' + poly_data:'getset_descriptor' + thick_mode:'getset_descriptor' + thickness:'getset_descriptor' + x_axis:'getset_descriptor' + x_view_up:'getset_descriptor' + y_axis:'getset_descriptor' + y_view_up:'getset_descriptor' + z_axis:'getset_descriptor' + z_view_up:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAxis(self, i:int) -> Pointer: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetCenterlineAxisPolyData(self, axis:int) -> 'vtkPolyData': ... + def GetHole(self) -> int: ... + def GetHoleWidth(self) -> float: ... + def GetHoleWidthInPixels(self) -> float: ... + def GetImage(self) -> 'vtkImageData': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPlane(self, n:int) -> 'vtkPlane': ... + def GetPolyData(self) -> 'vtkPolyData': ... + def GetThickMode(self) -> int: ... + def GetThickness(self) -> Tuple[float, float, float]: ... + def GetViewUp(self, i:int) -> Pointer: ... + def GetXAxis(self) -> Tuple[float, float, float]: ... + def GetXViewUp(self) -> Tuple[float, float, float]: ... + def GetYAxis(self) -> Tuple[float, float, float]: ... + def GetYViewUp(self) -> Tuple[float, float, float]: ... + def GetZAxis(self) -> Tuple[float, float, float]: ... + def GetZViewUp(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkResliceCursor': ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkResliceCursor': ... + @overload + def SetCenter(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetCenter(self, center:MutableSequence[float]) -> None: ... + def SetHole(self, _arg:int) -> None: ... + def SetHoleWidth(self, _arg:float) -> None: ... + def SetHoleWidthInPixels(self, _arg:float) -> None: ... + def SetImage(self, __a:'vtkImageData') -> None: ... + def SetThickMode(self, _arg:int) -> None: ... + @overload + def SetThickness(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetThickness(self, _arg:Sequence[float]) -> None: ... + @overload + def SetXAxis(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetXAxis(self, _arg:Sequence[float]) -> None: ... + @overload + def SetXViewUp(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetXViewUp(self, _arg:Sequence[float]) -> None: ... + @overload + def SetYAxis(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetYAxis(self, _arg:Sequence[float]) -> None: ... + @overload + def SetYViewUp(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetYViewUp(self, _arg:Sequence[float]) -> None: ... + @overload + def SetZAxis(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetZAxis(self, _arg:Sequence[float]) -> None: ... + @overload + def SetZViewUp(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetZViewUp(self, _arg:Sequence[float]) -> None: ... + def ThickModeOff(self) -> None: ... + def ThickModeOn(self) -> None: ... + def Update(self) -> None: ... + +class vtkResliceCursorActor(vtkmodules.vtkRenderingCore.vtkProp3D): + bounds:'getset_descriptor' + cursor_algorithm:'getset_descriptor' + m_time:'getset_descriptor' + user_matrix:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetCenterlineActor(self, axis:int) -> 'vtkActor': ... + def GetCenterlineProperty(self, i:int) -> 'vtkProperty': ... + def GetCursorAlgorithm(self) -> 'vtkResliceCursorPolyDataAlgorithm': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetThickSlabProperty(self, i:int) -> 'vtkProperty': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkResliceCursorActor': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkResliceCursorActor': ... + def SetUserMatrix(self, matrix:'vtkMatrix4x4') -> None: ... + +class vtkResliceCursorRepresentation(vtkWidgetRepresentation): + NearAxis1:int + NearAxis2:int + NearCenter:int + None_:int + OnAxis1:int + OnAxis2:int + OnCenter:int + Outside:int + PanAndRotate:int + ResizeThickness:int + RotateBothAxes:int + TranslateSingleAxis:int + WindowLevelling:int + color_map:'getset_descriptor' + cursor_algorithm:'getset_descriptor' + display_text:'getset_descriptor' + image_actor:'getset_descriptor' + independent_thickness:'getset_descriptor' + level:'getset_descriptor' + lookup_table:'getset_descriptor' + manipulation_mode:'getset_descriptor' + plane_source:'getset_descriptor' + reslice:'getset_descriptor' + reslice_axes:'getset_descriptor' + reslice_cursor:'getset_descriptor' + restrict_plane_to_volume:'getset_descriptor' + show_resliced_image:'getset_descriptor' + text_property:'getset_descriptor' + thickness_label_format:'getset_descriptor' + thickness_label_text:'getset_descriptor' + tolerance:'getset_descriptor' + use_image_actor:'getset_descriptor' + window:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ActivateText(self, __a:int) -> None: ... + @staticmethod + def BoundPlane(bounds:MutableSequence[float], origin:MutableSequence[float], p1:MutableSequence[float], p2:MutableSequence[float]) -> int: ... + def BuildRepresentation(self) -> None: ... + def DisplayTextOff(self) -> None: ... + def DisplayTextOn(self) -> None: ... + def GetColorMap(self) -> 'vtkImageMapToColors': ... + def GetCursorAlgorithm(self) -> 'vtkResliceCursorPolyDataAlgorithm': ... + def GetDisplayText(self) -> int: ... + def GetImageActor(self) -> 'vtkImageActor': ... + def GetIndependentThickness(self) -> bool: ... + def GetLevel(self) -> float: ... + def GetLookupTable(self) -> 'vtkScalarsToColors': ... + def GetManipulationMode(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPlaneSource(self) -> 'vtkPlaneSource': ... + def GetReslice(self) -> 'vtkImageAlgorithm': ... + def GetResliceAxes(self) -> 'vtkMatrix4x4': ... + def GetResliceCursor(self) -> 'vtkResliceCursor': ... + def GetRestrictPlaneToVolume(self) -> int: ... + def GetShowReslicedImage(self) -> int: ... + def GetTextProperty(self) -> 'vtkTextProperty': ... + def GetThicknessLabelFormat(self) -> str: ... + @overload + def GetThicknessLabelPosition(self) -> Pointer: ... + @overload + def GetThicknessLabelPosition(self, pos:MutableSequence[float]) -> None: ... + def GetThicknessLabelText(self) -> str: ... + def GetTolerance(self) -> int: ... + def GetToleranceMaxValue(self) -> int: ... + def GetToleranceMinValue(self) -> int: ... + def GetUseImageActor(self) -> int: ... + def GetWindow(self) -> float: ... + def GetWindowLevel(self, wl:MutableSequence[float]) -> None: ... + def GetWorldThicknessLabelPosition(self, pos:MutableSequence[float]) -> None: ... + def IndependentThicknessOff(self) -> None: ... + def IndependentThicknessOn(self) -> None: ... + def InitializeReslicePlane(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def ManageTextDisplay(self) -> None: ... + def NewInstance(self) -> 'vtkResliceCursorRepresentation': ... + def ResetCamera(self) -> None: ... + def RestrictPlaneToVolumeOff(self) -> None: ... + def RestrictPlaneToVolumeOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkResliceCursorRepresentation': ... + def SetColorMap(self, __a:'vtkImageMapToColors') -> None: ... + def SetDisplayText(self, _arg:int) -> None: ... + def SetIndependentThickness(self, _arg:bool) -> None: ... + def SetLookupTable(self, __a:'vtkScalarsToColors') -> None: ... + def SetManipulationMode(self, m:int) -> None: ... + def SetRestrictPlaneToVolume(self, _arg:int) -> None: ... + def SetShowReslicedImage(self, _arg:int) -> None: ... + def SetTextProperty(self, tprop:'vtkTextProperty') -> None: ... + def SetThicknessLabelFormat(self, _arg:str) -> None: ... + def SetTolerance(self, _arg:int) -> None: ... + def SetUseImageActor(self, _arg:int) -> None: ... + def SetWindowLevel(self, window:float, level:float, copy:int=0) -> None: ... + def ShowReslicedImageOff(self) -> None: ... + def ShowReslicedImageOn(self) -> None: ... + @staticmethod + def TransformPlane(planeToTransform:'vtkPlaneSource', targetCenter:MutableSequence[float], targetNormal:MutableSequence[float], targetViewUp:MutableSequence[float]) -> None: ... + def UseImageActorOff(self) -> None: ... + def UseImageActorOn(self) -> None: ... + +class vtkResliceCursorLineRepresentation(vtkResliceCursorRepresentation): + bounds:'getset_descriptor' + reslice_cursor:'getset_descriptor' + reslice_cursor_actor:'getset_descriptor' + tolerance:'getset_descriptor' + user_matrix:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetResliceCursor(self) -> 'vtkResliceCursor': ... + def GetResliceCursorActor(self) -> 'vtkResliceCursorActor': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def Highlight(self, highlightOn:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkResliceCursorLineRepresentation': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkResliceCursorLineRepresentation': ... + def SetTolerance(self, t:int) -> None: ... + def SetUserMatrix(self, matrix:'vtkMatrix4x4') -> None: ... + def StartWidgetInteraction(self, startEventPos:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, e:MutableSequence[float]) -> None: ... + +class vtkResliceCursorPicker(vtkmodules.vtkRenderingCore.vtkPicker): + picked_axis1:'getset_descriptor' + picked_axis2:'getset_descriptor' + picked_center:'getset_descriptor' + reslice_cursor_algorithm:'getset_descriptor' + transform_matrix:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPickedAxis1(self) -> int: ... + def GetPickedAxis2(self) -> int: ... + def GetPickedCenter(self) -> int: ... + def GetResliceCursorAlgorithm(self) -> 'vtkResliceCursorPolyDataAlgorithm': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkResliceCursorPicker': ... + @overload + def Pick(self, selectionX:float, selectionY:float, selectionZ:float, renderer:'vtkRenderer') -> int: ... + @overload + def Pick(self, displayPos:MutableSequence[float], world:MutableSequence[float], ren:'vtkRenderer') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkResliceCursorPicker': ... + def SetResliceCursorAlgorithm(self, __a:'vtkResliceCursorPolyDataAlgorithm') -> None: ... + def SetTransformMatrix(self, __a:'vtkMatrix4x4') -> None: ... + +class vtkResliceCursorPolyDataAlgorithm(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + XAxis:int + YAxis:int + ZAxis:int + axis1:'getset_descriptor' + axis2:'getset_descriptor' + centerline_axis1:'getset_descriptor' + centerline_axis2:'getset_descriptor' + m_time:'getset_descriptor' + plane_axis1:'getset_descriptor' + plane_axis2:'getset_descriptor' + reslice_cursor:'getset_descriptor' + reslice_plane_normal:'getset_descriptor' + slice_bounds:'getset_descriptor' + thick_slab_axis1:'getset_descriptor' + thick_slab_axis2:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAxis1(self) -> int: ... + def GetAxis2(self) -> int: ... + def GetCenterlineAxis1(self) -> 'vtkPolyData': ... + def GetCenterlineAxis2(self) -> 'vtkPolyData': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOtherPlaneForAxis(self, p:int) -> int: ... + def GetPlaneAxis1(self) -> int: ... + def GetPlaneAxis2(self) -> int: ... + def GetResliceCursor(self) -> 'vtkResliceCursor': ... + def GetReslicePlaneNormal(self) -> int: ... + def GetSliceBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetThickSlabAxis1(self) -> 'vtkPolyData': ... + def GetThickSlabAxis2(self) -> 'vtkPolyData': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkResliceCursorPolyDataAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkResliceCursorPolyDataAlgorithm': ... + def SetResliceCursor(self, __a:'vtkResliceCursor') -> None: ... + def SetReslicePlaneNormal(self, _arg:int) -> None: ... + def SetReslicePlaneNormalToXAxis(self) -> None: ... + def SetReslicePlaneNormalToYAxis(self) -> None: ... + def SetReslicePlaneNormalToZAxis(self) -> None: ... + @overload + def SetSliceBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetSliceBounds(self, _arg:Sequence[float]) -> None: ... + +class vtkResliceCursorThickLineRepresentation(vtkResliceCursorLineRepresentation): + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultResliceAlgorithm(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkResliceCursorThickLineRepresentation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkResliceCursorThickLineRepresentation': ... + def SetResliceParameters(self, outputSpacingX:float, outputSpacingY:float, extentX:int, extentY:int) -> None: ... + +class vtkResliceCursorWidget(vtkAbstractWidget): + ResetCursorEvent:int + ResliceAxesChangedEvent:int + ResliceThicknessChangedEvent:int + WindowLevelEvent:int + enabled:'getset_descriptor' + manage_window_level:'getset_descriptor' + representation:'getset_descriptor' + reslice_cursor_representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetManageWindowLevel(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetResliceCursorRepresentation(self) -> 'vtkResliceCursorRepresentation': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def ManageWindowLevelOff(self) -> None: ... + def ManageWindowLevelOn(self) -> None: ... + def NewInstance(self) -> 'vtkResliceCursorWidget': ... + def ResetResliceCursor(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkResliceCursorWidget': ... + def SetEnabled(self, __a:int) -> None: ... + def SetManageWindowLevel(self, _arg:int) -> None: ... + def SetRepresentation(self, r:'vtkResliceCursorRepresentation') -> None: ... + +class vtkScalarBarRepresentation(vtkBorderRepresentation): + auto_orient:'getset_descriptor' + orientation:'getset_descriptor' + scalar_bar_actor:'getset_descriptor' + visibility:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def GetActors2D(self, collection:'vtkPropCollection') -> None: ... + def GetAutoOrient(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientation(self) -> int: ... + def GetScalarBarActor(self) -> 'vtkScalarBarActor': ... + def GetSize(self, size:MutableSequence[float]) -> None: ... + def GetVisibility(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkScalarBarRepresentation': ... + def ReleaseGraphicsResources(self, window:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkScalarBarRepresentation': ... + def SetAutoOrient(self, _arg:bool) -> None: ... + def SetOrientation(self, orient:int) -> None: ... + def SetScalarBarActor(self, __a:'vtkScalarBarActor') -> None: ... + def SetVisibility(self, __a:int) -> None: ... + def WidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + +class vtkScalarBarWidget(vtkBorderWidget): + process_events:'getset_descriptor' + repositionable:'getset_descriptor' + representation:'getset_descriptor' + scalar_bar_actor:'getset_descriptor' + scalar_bar_representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProcessEvents(self) -> int: ... + def GetRepositionable(self) -> int: ... + def GetScalarBarActor(self) -> 'vtkScalarBarActor': ... + def GetScalarBarRepresentation(self) -> 'vtkScalarBarRepresentation': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkScalarBarWidget': ... + def RepositionableOff(self) -> None: ... + def RepositionableOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkScalarBarWidget': ... + def SetRepositionable(self, _arg:int) -> None: ... + def SetRepresentation(self, rep:'vtkScalarBarRepresentation') -> None: ... + def SetScalarBarActor(self, actor:'vtkScalarBarActor') -> None: ... + +class vtkSeedRepresentation(vtkWidgetRepresentation): + NearSeed:int + Outside:int + active_handle:'getset_descriptor' + handle_representation:'getset_descriptor' + number_of_seeds:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def CreateHandle(self, e:MutableSequence[float]) -> int: ... + def GetActiveHandle(self) -> int: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + @overload + def GetHandleRepresentation(self, num:int) -> 'vtkHandleRepresentation': ... + @overload + def GetHandleRepresentation(self) -> 'vtkHandleRepresentation': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSeeds(self) -> int: ... + def GetSeedDisplayPosition(self, seedNum:int, pos:MutableSequence[float]) -> None: ... + def GetSeedWorldPosition(self, seedNum:int, pos:MutableSequence[float]) -> None: ... + def GetTolerance(self) -> int: ... + def GetToleranceMaxValue(self) -> int: ... + def GetToleranceMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSeedRepresentation': ... + def RemoveActiveHandle(self) -> None: ... + def RemoveHandle(self, n:int) -> None: ... + def RemoveLastHandle(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSeedRepresentation': ... + def SetActiveHandle(self, handleId:int) -> None: ... + def SetHandleRepresentation(self, handle:'vtkHandleRepresentation') -> None: ... + def SetSeedDisplayPosition(self, seedNum:int, pos:MutableSequence[float]) -> None: ... + def SetSeedWorldPosition(self, seedNum:int, pos:MutableSequence[float]) -> None: ... + def SetTolerance(self, _arg:int) -> None: ... + +class vtkSeedWidget(vtkAbstractWidget): + MovingSeed:int + PlacedSeeds:int + PlacingSeeds:int + Start:int + current_renderer:'getset_descriptor' + enabled:'getset_descriptor' + interactor:'getset_descriptor' + process_events:'getset_descriptor' + representation:'getset_descriptor' + seed_representation:'getset_descriptor' + widget_state:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CompleteInteraction(self) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def CreateNewHandle(self) -> 'vtkHandleWidget': ... + def DeleteSeed(self, n:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSeed(self, n:int) -> 'vtkHandleWidget': ... + def GetSeedRepresentation(self) -> 'vtkSeedRepresentation': ... + def GetWidgetState(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSeedWidget': ... + def RestartInteraction(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSeedWidget': ... + def SetCurrentRenderer(self, __a:'vtkRenderer') -> None: ... + def SetEnabled(self, __a:int) -> None: ... + def SetInteractor(self, __a:'vtkRenderWindowInteractor') -> None: ... + def SetProcessEvents(self, __a:int) -> None: ... + def SetRepresentation(self, rep:'vtkSeedRepresentation') -> None: ... + +class vtkSliderRepresentation2D(vtkSliderRepresentation): + cap_property:'getset_descriptor' + label_property:'getset_descriptor' + point1_coordinate:'getset_descriptor' + point2_coordinate:'getset_descriptor' + selected_property:'getset_descriptor' + slider_property:'getset_descriptor' + title_property:'getset_descriptor' + title_text:'getset_descriptor' + tube_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def GetActors2D(self, propCollection:'vtkPropCollection') -> None: ... + def GetCapProperty(self) -> 'vtkProperty2D': ... + def GetLabelProperty(self) -> 'vtkTextProperty': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoint1Coordinate(self) -> 'vtkCoordinate': ... + def GetPoint2Coordinate(self) -> 'vtkCoordinate': ... + def GetSelectedProperty(self) -> 'vtkProperty2D': ... + def GetSliderProperty(self) -> 'vtkProperty2D': ... + def GetTitleProperty(self) -> 'vtkTextProperty': ... + def GetTitleText(self) -> str: ... + def GetTubeProperty(self) -> 'vtkProperty2D': ... + def Highlight(self, __a:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSliderRepresentation2D': ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def ReleaseGraphicsResources(self, window:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSliderRepresentation2D': ... + def SetTitleText(self, __a:str) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + +class vtkSliderRepresentation3D(vtkSliderRepresentation): + bounds:'getset_descriptor' + cap_property:'getset_descriptor' + m_time:'getset_descriptor' + point1_coordinate:'getset_descriptor' + point1_in_world_coordinates:'getset_descriptor' + point2_coordinate:'getset_descriptor' + point2_in_world_coordinates:'getset_descriptor' + rotation:'getset_descriptor' + selected_property:'getset_descriptor' + slider_property:'getset_descriptor' + slider_shape:'getset_descriptor' + title_text:'getset_descriptor' + tube_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def GetActors(self, propCollection:'vtkPropCollection') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetCapProperty(self) -> 'vtkProperty': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoint1Coordinate(self) -> 'vtkCoordinate': ... + def GetPoint2Coordinate(self) -> 'vtkCoordinate': ... + def GetRotation(self) -> float: ... + def GetSelectedProperty(self) -> 'vtkProperty': ... + def GetSliderProperty(self) -> 'vtkProperty': ... + def GetSliderShape(self) -> int: ... + def GetSliderShapeMaxValue(self) -> int: ... + def GetSliderShapeMinValue(self) -> int: ... + def GetTitleText(self) -> str: ... + def GetTubeProperty(self) -> 'vtkProperty': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def Highlight(self, __a:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSliderRepresentation3D': ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, window:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSliderRepresentation3D': ... + def SetPoint1InWorldCoordinates(self, x:float, y:float, z:float) -> None: ... + def SetPoint2InWorldCoordinates(self, x:float, y:float, z:float) -> None: ... + def SetRotation(self, _arg:float) -> None: ... + def SetSliderShape(self, _arg:int) -> None: ... + def SetSliderShapeToCylinder(self) -> None: ... + def SetSliderShapeToSphere(self) -> None: ... + def SetTitleText(self, __a:str) -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, newEventPos:MutableSequence[float]) -> None: ... + +class vtkSliderWidget(vtkAbstractWidget): + animation_mode:'getset_descriptor' + number_of_animation_steps:'getset_descriptor' + number_of_animation_steps_max_value:'getset_descriptor' + number_of_animation_steps_min_value:'getset_descriptor' + representation:'getset_descriptor' + slider_representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetAnimationMode(self) -> int: ... + def GetAnimationModeMaxValue(self) -> int: ... + def GetAnimationModeMinValue(self) -> int: ... + def GetNumberOfAnimationSteps(self) -> int: ... + def GetNumberOfAnimationStepsMaxValue(self) -> int: ... + def GetNumberOfAnimationStepsMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSliderRepresentation(self) -> 'vtkSliderRepresentation': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSliderWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSliderWidget': ... + def SetAnimationMode(self, _arg:int) -> None: ... + def SetAnimationModeToAnimate(self) -> None: ... + def SetAnimationModeToJump(self) -> None: ... + def SetAnimationModeToOff(self) -> None: ... + def SetNumberOfAnimationSteps(self, _arg:int) -> None: ... + def SetRepresentation(self, r:'vtkSliderRepresentation') -> None: ... + +class vtkSphereHandleRepresentation(vtkHandleRepresentation): + bounds:'getset_descriptor' + display_position:'getset_descriptor' + handle_size:'getset_descriptor' + hot_spot_size:'getset_descriptor' + property:'getset_descriptor' + selected_property:'getset_descriptor' + sphere_radius:'getset_descriptor' + translation_mode:'getset_descriptor' + visibility:'getset_descriptor' + world_position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def DeepCopy(self, prop:'vtkProp') -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetHotSpotSize(self) -> float: ... + def GetHotSpotSizeMaxValue(self) -> float: ... + def GetHotSpotSizeMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProperty(self) -> 'vtkProperty': ... + def GetSelectedProperty(self) -> 'vtkProperty': ... + def GetSphereRadius(self) -> float: ... + def GetTranslationMode(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def Highlight(self, highlight:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSphereHandleRepresentation': ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSphereHandleRepresentation': ... + def SetDisplayPosition(self, p:MutableSequence[float]) -> None: ... + def SetHandleSize(self, size:float) -> None: ... + def SetHotSpotSize(self, _arg:float) -> None: ... + def SetProperty(self, __a:'vtkProperty') -> None: ... + def SetSelectedProperty(self, __a:'vtkProperty') -> None: ... + def SetSphereRadius(self, __a:float) -> None: ... + def SetTranslationMode(self, _arg:int) -> None: ... + def SetVisibility(self, visible:int) -> None: ... + def SetWorldPosition(self, p:MutableSequence[float]) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def StartWidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + def Translate(self, v:Sequence[float]) -> None: ... + def TranslationModeOff(self) -> None: ... + def TranslationModeOn(self) -> None: ... + def WidgetInteraction(self, eventPos:MutableSequence[float]) -> None: ... + +class vtkSphereRepresentation(vtkWidgetRepresentation): + MovingHandle:int + OnSphere:int + Outside:int + Scaling:int + Translating:int + bounds:'getset_descriptor' + center:'getset_descriptor' + center_cursor:'getset_descriptor' + foreground_color:'getset_descriptor' + handle_color:'getset_descriptor' + handle_direction:'getset_descriptor' + handle_position:'getset_descriptor' + handle_property:'getset_descriptor' + handle_text:'getset_descriptor' + handle_text_property:'getset_descriptor' + handle_visibility:'getset_descriptor' + interaction_color:'getset_descriptor' + interaction_state:'getset_descriptor' + phi_resolution:'getset_descriptor' + radial_line:'getset_descriptor' + radial_line_property:'getset_descriptor' + radius:'getset_descriptor' + representation:'getset_descriptor' + selected_handle_property:'getset_descriptor' + selected_sphere_property:'getset_descriptor' + sphere_property:'getset_descriptor' + theta_resolution:'getset_descriptor' + translation_axis:'getset_descriptor' + x_translation_axis_on:'getset_descriptor' + y_translation_axis_on:'getset_descriptor' + z_translation_axis_on:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def CenterCursorOff(self) -> None: ... + def CenterCursorOn(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetCenter(self) -> Tuple[float, float, float]: ... + @overload + def GetCenter(self, xyz:MutableSequence[float]) -> None: ... + def GetCenterCursor(self) -> bool: ... + def GetHandleDirection(self) -> Tuple[float, float, float]: ... + def GetHandlePosition(self) -> Tuple[float, float, float]: ... + def GetHandleProperty(self) -> 'vtkProperty': ... + def GetHandleText(self) -> int: ... + def GetHandleTextProperty(self) -> 'vtkTextProperty': ... + def GetHandleVisibility(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPhiResolution(self) -> int: ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetRadialLine(self) -> int: ... + def GetRadialLineProperty(self) -> 'vtkProperty': ... + def GetRadius(self) -> float: ... + def GetRepresentation(self) -> int: ... + def GetRepresentationMaxValue(self) -> int: ... + def GetRepresentationMinValue(self) -> int: ... + def GetSelectedHandleProperty(self) -> 'vtkProperty': ... + def GetSelectedSphereProperty(self) -> 'vtkProperty': ... + def GetSphere(self, sphere:'vtkSphere') -> None: ... + def GetSphereProperty(self) -> 'vtkProperty': ... + def GetThetaResolution(self) -> int: ... + def GetTranslationAxis(self) -> int: ... + def GetTranslationAxisMaxValue(self) -> int: ... + def GetTranslationAxisMinValue(self) -> int: ... + def HandleTextOff(self) -> None: ... + def HandleTextOn(self) -> None: ... + def HandleVisibilityOff(self) -> None: ... + def HandleVisibilityOn(self) -> None: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsTranslationConstrained(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSphereRepresentation': ... + @overload + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + @overload + def PlaceWidget(self, center:MutableSequence[float], handlePosition:MutableSequence[float]) -> None: ... + def RadialLineOff(self) -> None: ... + def RadialLineOn(self) -> None: ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSphereRepresentation': ... + @overload + def SetCenter(self, c:MutableSequence[float]) -> None: ... + @overload + def SetCenter(self, x:float, y:float, z:float) -> None: ... + def SetCenterCursor(self, _arg:bool) -> None: ... + @overload + def SetForegroundColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetForegroundColor(self, c:MutableSequence[float]) -> None: ... + @overload + def SetHandleColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetHandleColor(self, c:MutableSequence[float]) -> None: ... + @overload + def SetHandleDirection(self, dir:MutableSequence[float]) -> None: ... + @overload + def SetHandleDirection(self, dx:float, dy:float, dz:float) -> None: ... + @overload + def SetHandlePosition(self, handle:MutableSequence[float]) -> None: ... + @overload + def SetHandlePosition(self, x:float, y:float, z:float) -> None: ... + def SetHandleText(self, _arg:int) -> None: ... + def SetHandleVisibility(self, _arg:int) -> None: ... + @overload + def SetInteractionColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetInteractionColor(self, c:MutableSequence[float]) -> None: ... + def SetInteractionState(self, state:int) -> None: ... + def SetPhiResolution(self, r:int) -> None: ... + def SetRadialLine(self, _arg:int) -> None: ... + def SetRadius(self, r:float) -> None: ... + def SetRepresentation(self, _arg:int) -> None: ... + def SetRepresentationToOff(self) -> None: ... + def SetRepresentationToSurface(self) -> None: ... + def SetRepresentationToWireframe(self) -> None: ... + def SetThetaResolution(self, r:int) -> None: ... + def SetTranslationAxis(self, _arg:int) -> None: ... + def SetTranslationAxisOff(self) -> None: ... + def SetXTranslationAxisOn(self) -> None: ... + def SetYTranslationAxisOn(self) -> None: ... + def SetZTranslationAxisOn(self) -> None: ... + def StartWidgetInteraction(self, e:MutableSequence[float]) -> None: ... + def WidgetInteraction(self, e:MutableSequence[float]) -> None: ... + +class vtkSphereWidget(vtk3DWidget): + center:'getset_descriptor' + enabled:'getset_descriptor' + handle_direction:'getset_descriptor' + handle_position:'getset_descriptor' + handle_property:'getset_descriptor' + handle_visibility:'getset_descriptor' + phi_resolution:'getset_descriptor' + radius:'getset_descriptor' + representation:'getset_descriptor' + scale:'getset_descriptor' + selected_handle_property:'getset_descriptor' + selected_sphere_property:'getset_descriptor' + sphere_property:'getset_descriptor' + theta_resolution:'getset_descriptor' + translation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetCenter(self) -> Tuple[float, float, float]: ... + @overload + def GetCenter(self, xyz:MutableSequence[float]) -> None: ... + def GetHandleDirection(self) -> Tuple[float, float, float]: ... + def GetHandlePosition(self) -> Tuple[float, float, float]: ... + def GetHandleProperty(self) -> 'vtkProperty': ... + def GetHandleVisibility(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPhiResolution(self) -> int: ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetRadius(self) -> float: ... + def GetRepresentation(self) -> int: ... + def GetRepresentationMaxValue(self) -> int: ... + def GetRepresentationMinValue(self) -> int: ... + def GetScale(self) -> int: ... + def GetSelectedHandleProperty(self) -> 'vtkProperty': ... + def GetSelectedSphereProperty(self) -> 'vtkProperty': ... + def GetSphere(self, sphere:'vtkSphere') -> None: ... + def GetSphereProperty(self) -> 'vtkProperty': ... + def GetThetaResolution(self) -> int: ... + def GetTranslation(self) -> int: ... + def HandleVisibilityOff(self) -> None: ... + def HandleVisibilityOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSphereWidget': ... + @overload + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + @overload + def PlaceWidget(self) -> None: ... + @overload + def PlaceWidget(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSphereWidget': ... + def ScaleOff(self) -> None: ... + def ScaleOn(self) -> None: ... + @overload + def SetCenter(self, x:float, y:float, z:float) -> None: ... + @overload + def SetCenter(self, x:MutableSequence[float]) -> None: ... + def SetEnabled(self, __a:int) -> None: ... + @overload + def SetHandleDirection(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetHandleDirection(self, _arg:Sequence[float]) -> None: ... + def SetHandleVisibility(self, _arg:int) -> None: ... + def SetPhiResolution(self, r:int) -> None: ... + def SetRadius(self, r:float) -> None: ... + def SetRepresentation(self, _arg:int) -> None: ... + def SetRepresentationToOff(self) -> None: ... + def SetRepresentationToSurface(self) -> None: ... + def SetRepresentationToWireframe(self) -> None: ... + def SetScale(self, _arg:int) -> None: ... + def SetThetaResolution(self, r:int) -> None: ... + def SetTranslation(self, _arg:int) -> None: ... + def TranslationOff(self) -> None: ... + def TranslationOn(self) -> None: ... + +class vtkSphereWidget2(vtkAbstractWidget): + enabled:'getset_descriptor' + representation:'getset_descriptor' + scaling_enabled:'getset_descriptor' + translation_enabled:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScalingEnabled(self) -> int: ... + def GetTranslationEnabled(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSphereWidget2': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSphereWidget2': ... + def ScalingEnabledOff(self) -> None: ... + def ScalingEnabledOn(self) -> None: ... + def SetEnabled(self, enabling:int) -> None: ... + def SetRepresentation(self, r:'vtkSphereRepresentation') -> None: ... + def SetScalingEnabled(self, _arg:int) -> None: ... + def SetTranslationEnabled(self, _arg:int) -> None: ... + def TranslationEnabledOff(self) -> None: ... + def TranslationEnabledOn(self) -> None: ... + +class vtkSplineRepresentation(vtkAbstractSplineRepresentation): + number_of_handles:'getset_descriptor' + parametric_spline:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InitializeHandles(self, points:'vtkPoints') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSplineRepresentation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSplineRepresentation': ... + def SetNumberOfHandles(self, npts:int) -> None: ... + def SetParametricSpline(self, spline:'vtkParametricSpline') -> None: ... + +class vtkSplineWidget(vtk3DWidget): + closed:'getset_descriptor' + enabled:'getset_descriptor' + handle_property:'getset_descriptor' + line_property:'getset_descriptor' + number_of_handles:'getset_descriptor' + parametric_spline:'getset_descriptor' + plane_source:'getset_descriptor' + process_events:'getset_descriptor' + project_to_plane:'getset_descriptor' + projection_normal:'getset_descriptor' + projection_position:'getset_descriptor' + resolution:'getset_descriptor' + selected_handle_property:'getset_descriptor' + selected_line_property:'getset_descriptor' + summed_length:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClosedOff(self) -> None: ... + def ClosedOn(self) -> None: ... + def GetClosed(self) -> int: ... + @overload + def GetHandlePosition(self, handle:int, xyz:MutableSequence[float]) -> None: ... + @overload + def GetHandlePosition(self, handle:int) -> Tuple[float, float, float]: ... + def GetHandleProperty(self) -> 'vtkProperty': ... + def GetLineProperty(self) -> 'vtkProperty': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfHandles(self) -> int: ... + def GetParametricSpline(self) -> 'vtkParametricSpline': ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetProcessEvents(self) -> int: ... + def GetProcessEventsMaxValue(self) -> int: ... + def GetProcessEventsMinValue(self) -> int: ... + def GetProjectToPlane(self) -> int: ... + def GetProjectionNormal(self) -> int: ... + def GetProjectionNormalMaxValue(self) -> int: ... + def GetProjectionNormalMinValue(self) -> int: ... + def GetProjectionPosition(self) -> float: ... + def GetResolution(self) -> int: ... + def GetSelectedHandleProperty(self) -> 'vtkProperty': ... + def GetSelectedLineProperty(self) -> 'vtkProperty': ... + def GetSummedLength(self) -> float: ... + def InitializeHandles(self, points:'vtkPoints') -> None: ... + def IsA(self, type:str) -> int: ... + def IsClosed(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSplineWidget': ... + @overload + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + @overload + def PlaceWidget(self) -> None: ... + @overload + def PlaceWidget(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + def ProcessEventsOff(self) -> None: ... + def ProcessEventsOn(self) -> None: ... + def ProjectToPlaneOff(self) -> None: ... + def ProjectToPlaneOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSplineWidget': ... + def SetClosed(self, closed:int) -> None: ... + def SetEnabled(self, __a:int) -> None: ... + @overload + def SetHandlePosition(self, handle:int, x:float, y:float, z:float) -> None: ... + @overload + def SetHandlePosition(self, handle:int, xyz:MutableSequence[float]) -> None: ... + def SetHandleProperty(self, __a:'vtkProperty') -> None: ... + def SetLineProperty(self, __a:'vtkProperty') -> None: ... + def SetNumberOfHandles(self, npts:int) -> None: ... + def SetParametricSpline(self, __a:'vtkParametricSpline') -> None: ... + def SetPlaneSource(self, plane:'vtkPlaneSource') -> None: ... + def SetProcessEvents(self, _arg:int) -> None: ... + def SetProjectToPlane(self, _arg:int) -> None: ... + def SetProjectionNormal(self, _arg:int) -> None: ... + def SetProjectionNormalToOblique(self) -> None: ... + def SetProjectionNormalToXAxes(self) -> None: ... + def SetProjectionNormalToYAxes(self) -> None: ... + def SetProjectionNormalToZAxes(self) -> None: ... + def SetProjectionPosition(self, position:float) -> None: ... + def SetResolution(self, resolution:int) -> None: ... + def SetSelectedHandleProperty(self, __a:'vtkProperty') -> None: ... + def SetSelectedLineProperty(self, __a:'vtkProperty') -> None: ... + +class vtkSplineWidget2(vtkAbstractWidget): + enabled:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSplineWidget2': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSplineWidget2': ... + def SetEnabled(self, enabling:int) -> None: ... + def SetRepresentation(self, r:'vtkSplineRepresentation') -> None: ... + +class vtkTensorProbeWidget(vtkAbstractWidget): + representation:'getset_descriptor' + tensor_probe_representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTensorProbeRepresentation(self) -> 'vtkTensorProbeRepresentation': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTensorProbeWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTensorProbeWidget': ... + def SetRepresentation(self, r:'vtkTensorProbeRepresentation') -> None: ... + +class vtkTensorRepresentation(vtkWidgetRepresentation): + MoveF0:int + MoveF1:int + MoveF2:int + MoveF3:int + MoveF4:int + MoveF5:int + Outside:int + Rotating:int + Scaling:int + Translating:int + bounds:'getset_descriptor' + ellipsoid_property:'getset_descriptor' + face_property:'getset_descriptor' + handle_property:'getset_descriptor' + interaction_state:'getset_descriptor' + outline_cursor_wires:'getset_descriptor' + outline_face_wires:'getset_descriptor' + outline_property:'getset_descriptor' + position:'getset_descriptor' + selected_face_property:'getset_descriptor' + selected_handle_property:'getset_descriptor' + selected_outline_property:'getset_descriptor' + snap_to_axes:'getset_descriptor' + symmetric_tensor:'getset_descriptor' + tensor:'getset_descriptor' + tensor_ellipsoid:'getset_descriptor' + translation_axis:'getset_descriptor' + x_translation_axis_on:'getset_descriptor' + y_translation_axis_on:'getset_descriptor' + z_translation_axis_on:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def ComputeComplexInteractionState(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer, modify:int=0) -> int: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def EndComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetEigenvalues(self, evals:MutableSequence[float]) -> None: ... + def GetEigenvector(self, n:int, ev:MutableSequence[float]) -> None: ... + def GetEllipsoidProperty(self) -> 'vtkProperty': ... + def GetFaceProperty(self) -> 'vtkProperty': ... + def GetHandleProperty(self) -> 'vtkProperty': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutlineCursorWires(self) -> bool: ... + def GetOutlineFaceWires(self) -> bool: ... + def GetOutlineProperty(self) -> 'vtkProperty': ... + def GetPolyData(self, pd:'vtkPolyData') -> None: ... + def GetPosition(self, pos:MutableSequence[float]) -> None: ... + def GetSelectedFaceProperty(self) -> 'vtkProperty': ... + def GetSelectedHandleProperty(self) -> 'vtkProperty': ... + def GetSelectedOutlineProperty(self) -> 'vtkProperty': ... + def GetSnapToAxes(self) -> bool: ... + def GetSymmetricTensor(self, symTensor:MutableSequence[float]) -> None: ... + def GetTensor(self, tensor:MutableSequence[float]) -> None: ... + def GetTensorEllipsoid(self) -> bool: ... + def GetTranslationAxis(self) -> int: ... + def GetTranslationAxisMaxValue(self) -> int: ... + def GetTranslationAxisMinValue(self) -> int: ... + def HandlesOff(self) -> None: ... + def HandlesOn(self) -> None: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsTranslationConstrained(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTensorRepresentation': ... + def OutlineCursorWiresOff(self) -> None: ... + def OutlineCursorWiresOn(self) -> None: ... + def OutlineFaceWiresOff(self) -> None: ... + def OutlineFaceWiresOn(self) -> None: ... + def PlaceTensor(self, tensor:MutableSequence[float], position:MutableSequence[float]) -> None: ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTensorRepresentation': ... + def SetInteractionState(self, state:int) -> None: ... + def SetOutlineCursorWires(self, __a:bool) -> None: ... + def SetOutlineFaceWires(self, __a:bool) -> None: ... + def SetPosition(self, pos:MutableSequence[float]) -> None: ... + def SetSnapToAxes(self, _arg:bool) -> None: ... + def SetSymmetricTensor(self, symTensor:MutableSequence[float]) -> None: ... + def SetTensor(self, tensor:MutableSequence[float]) -> None: ... + def SetTensorEllipsoid(self, __a:bool) -> None: ... + def SetTranslationAxis(self, _arg:int) -> None: ... + def SetTranslationAxisOff(self) -> None: ... + def SetXTranslationAxisOn(self) -> None: ... + def SetYTranslationAxisOn(self) -> None: ... + def SetZTranslationAxisOn(self) -> None: ... + def StartComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def StartWidgetInteraction(self, e:MutableSequence[float]) -> None: ... + def StepBackward(self) -> None: ... + def StepForward(self) -> None: ... + def TensorEllipsoidOff(self) -> None: ... + def TensorEllipsoidOn(self) -> None: ... + def WidgetInteraction(self, e:MutableSequence[float]) -> None: ... + +class vtkTensorWidget(vtkAbstractWidget): + enabled:'getset_descriptor' + move_faces_enabled:'getset_descriptor' + representation:'getset_descriptor' + rotation_enabled:'getset_descriptor' + scaling_enabled:'getset_descriptor' + translation_enabled:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetMoveFacesEnabled(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRotationEnabled(self) -> int: ... + def GetScalingEnabled(self) -> int: ... + def GetTranslationEnabled(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MoveFacesEnabledOff(self) -> None: ... + def MoveFacesEnabledOn(self) -> None: ... + def NewInstance(self) -> 'vtkTensorWidget': ... + def RotationEnabledOff(self) -> None: ... + def RotationEnabledOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTensorWidget': ... + def ScalingEnabledOff(self) -> None: ... + def ScalingEnabledOn(self) -> None: ... + def SetEnabled(self, enabling:int) -> None: ... + def SetMoveFacesEnabled(self, _arg:int) -> None: ... + def SetRepresentation(self, r:'vtkTensorRepresentation') -> None: ... + def SetRotationEnabled(self, _arg:int) -> None: ... + def SetScalingEnabled(self, _arg:int) -> None: ... + def SetTranslationEnabled(self, _arg:int) -> None: ... + def TranslationEnabledOff(self) -> None: ... + def TranslationEnabledOn(self) -> None: ... + +class vtkTerrainContourLineInterpolator(vtkContourLineInterpolator): + image_data:'getset_descriptor' + projector:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetImageData(self) -> 'vtkImageData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProjector(self) -> 'vtkProjectedTerrainPath': ... + def InterpolateLine(self, ren:'vtkRenderer', rep:'vtkContourRepresentation', idx1:int, idx2:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTerrainContourLineInterpolator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTerrainContourLineInterpolator': ... + def SetImageData(self, __a:'vtkImageData') -> None: ... + def UpdateNode(self, __a:'vtkRenderer', __b:'vtkContourRepresentation', node:MutableSequence[float], idx:int) -> int: ... + +class vtkTerrainDataPointPlacer(vtkPointPlacer): + height_offset:'getset_descriptor' + prop_picker:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddProp(self, __a:'vtkProp') -> None: ... + @overload + def ComputeWorldPosition(self, ren:'vtkRenderer', displayPos:MutableSequence[float], worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + @overload + def ComputeWorldPosition(self, ren:'vtkRenderer', displayPos:MutableSequence[float], refWorldPos:MutableSequence[float], worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + def GetHeightOffset(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPropPicker(self) -> 'vtkPropPicker': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTerrainDataPointPlacer': ... + def RemoveAllProps(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTerrainDataPointPlacer': ... + def SetHeightOffset(self, _arg:float) -> None: ... + def ValidateDisplayPosition(self, __a:'vtkRenderer', displayPos:MutableSequence[float]) -> int: ... + @overload + def ValidateWorldPosition(self, worldPos:MutableSequence[float]) -> int: ... + @overload + def ValidateWorldPosition(self, worldPos:MutableSequence[float], worldOrient:MutableSequence[float]) -> int: ... + +class vtkTextRepresentation(vtkBorderRepresentation): + padding:'getset_descriptor' + padding_bottom:'getset_descriptor' + padding_left:'getset_descriptor' + padding_right:'getset_descriptor' + padding_top:'getset_descriptor' + position:'getset_descriptor' + text:'getset_descriptor' + text_actor:'getset_descriptor' + window_location:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ExecuteTextActorModifiedEvent(self, obj:'vtkObject', enumEvent:int, p:Pointer) -> None: ... + def ExecuteTextPropertyModifiedEvent(self, obj:'vtkObject', enumEvent:int, p:Pointer) -> None: ... + def GetActors2D(self, __a:'vtkPropCollection') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPaddingBottom(self) -> int: ... + def GetPaddingBottomMaxValue(self) -> int: ... + def GetPaddingBottomMinValue(self) -> int: ... + def GetPaddingLeft(self) -> int: ... + def GetPaddingLeftMaxValue(self) -> int: ... + def GetPaddingLeftMinValue(self) -> int: ... + def GetPaddingRight(self) -> int: ... + def GetPaddingRightMaxValue(self) -> int: ... + def GetPaddingRightMinValue(self) -> int: ... + def GetPaddingTop(self) -> int: ... + def GetPaddingTopMaxValue(self) -> int: ... + def GetPaddingTopMinValue(self) -> int: ... + def GetSize(self, size:MutableSequence[float]) -> None: ... + def GetText(self) -> str: ... + def GetTextActor(self) -> 'vtkTextActor': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTextRepresentation': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTextRepresentation': ... + def SetPadding(self, padding:int) -> None: ... + def SetPaddingBottom(self, _arg:int) -> None: ... + def SetPaddingLeft(self, _arg:int) -> None: ... + def SetPaddingRight(self, _arg:int) -> None: ... + def SetPaddingTop(self, _arg:int) -> None: ... + @overload + def SetPosition(self, x:float, y:float) -> None: ... + @overload + def SetPosition(self, pos:MutableSequence[float]) -> None: ... + def SetText(self, text:str) -> None: ... + def SetTextActor(self, textActor:'vtkTextActor') -> None: ... + def SetWindowLocation(self, enumLocation:int) -> None: ... + +class vtkTextWidget(vtkBorderWidget): + representation:'getset_descriptor' + text_actor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTextActor(self) -> 'vtkTextActor': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTextWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTextWidget': ... + def SetRepresentation(self, r:'vtkTextRepresentation') -> None: ... + def SetTextActor(self, textActor:'vtkTextActor') -> None: ... + +class vtkTexturedButtonRepresentation(vtkButtonRepresentation): + bounds:'getset_descriptor' + button_geometry:'getset_descriptor' + button_geometry_connection:'getset_descriptor' + follow_camera:'getset_descriptor' + hovering_property:'getset_descriptor' + property:'getset_descriptor' + selecting_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def FollowCameraOff(self) -> None: ... + def FollowCameraOn(self) -> None: ... + def GetActors(self, pc:'vtkPropCollection') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetButtonGeometry(self) -> 'vtkPolyData': ... + def GetButtonTexture(self, i:int) -> 'vtkImageData': ... + def GetFollowCamera(self) -> int: ... + def GetHoveringProperty(self) -> 'vtkProperty': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProperty(self) -> 'vtkProperty': ... + def GetSelectingProperty(self) -> 'vtkProperty': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def Highlight(self, state:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTexturedButtonRepresentation': ... + @overload + def PlaceWidget(self, scale:float, point:MutableSequence[float], normal:MutableSequence[float]) -> None: ... + @overload + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def RegisterPickers(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTexturedButtonRepresentation': ... + def SetButtonGeometry(self, pd:'vtkPolyData') -> None: ... + def SetButtonGeometryConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetButtonTexture(self, i:int, image:'vtkImageData') -> None: ... + def SetFollowCamera(self, _arg:int) -> None: ... + def SetHoveringProperty(self, p:'vtkProperty') -> None: ... + def SetProperty(self, p:'vtkProperty') -> None: ... + def SetSelectingProperty(self, p:'vtkProperty') -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkTexturedButtonRepresentation2D(vtkButtonRepresentation): + balloon:'getset_descriptor' + bounds:'getset_descriptor' + hovering_property:'getset_descriptor' + property:'getset_descriptor' + selecting_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComputeInteractionState(self, X:int, Y:int, modify:int=0) -> int: ... + def GetActors(self, pc:'vtkPropCollection') -> None: ... + def GetBalloon(self) -> 'vtkBalloonRepresentation': ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetButtonTexture(self, i:int) -> 'vtkImageData': ... + def GetHoveringProperty(self) -> 'vtkProperty2D': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProperty(self) -> 'vtkProperty2D': ... + def GetSelectingProperty(self) -> 'vtkProperty2D': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def Highlight(self, state:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTexturedButtonRepresentation2D': ... + @overload + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + @overload + def PlaceWidget(self, anchor:MutableSequence[float], size:MutableSequence[int]) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTexturedButtonRepresentation2D': ... + def SetButtonTexture(self, i:int, image:'vtkImageData') -> None: ... + def SetHoveringProperty(self, p:'vtkProperty2D') -> None: ... + def SetProperty(self, p:'vtkProperty2D') -> None: ... + def SetSelectingProperty(self, p:'vtkProperty2D') -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkWidgetCallbackMapper(vtkmodules.vtkCommonCore.vtkObject): + event_translator:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetEventTranslator(self) -> 'vtkWidgetEventTranslator': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InvokeCallback(self, widgetEvent:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWidgetCallbackMapper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWidgetCallbackMapper': ... + def SetEventTranslator(self, t:'vtkWidgetEventTranslator') -> None: ... + +class vtkWidgetEvent(vtkmodules.vtkCommonCore.vtkObject): + class WidgetEventIds(int): ... + AddFinalPoint:'WidgetEventIds' + AddFinalPoint3D:'WidgetEventIds' + AddPoint:'WidgetEventIds' + AddPoint3D:'WidgetEventIds' + Completed:'WidgetEventIds' + Delete:'WidgetEventIds' + Down:'WidgetEventIds' + EndResize:'WidgetEventIds' + EndRotate:'WidgetEventIds' + EndScale:'WidgetEventIds' + EndSelect:'WidgetEventIds' + EndSelect3D:'WidgetEventIds' + EndTranslate:'WidgetEventIds' + HoverLeave:'WidgetEventIds' + Left:'WidgetEventIds' + ModifyEvent:'WidgetEventIds' + Move:'WidgetEventIds' + Move3D:'WidgetEventIds' + NoEvent:'WidgetEventIds' + PickDirectionPoint:'WidgetEventIds' + PickNormal:'WidgetEventIds' + PickPoint:'WidgetEventIds' + Reset:'WidgetEventIds' + Resize:'WidgetEventIds' + Right:'WidgetEventIds' + Rotate:'WidgetEventIds' + Scale:'WidgetEventIds' + Select:'WidgetEventIds' + Select3D:'WidgetEventIds' + SizeHandles:'WidgetEventIds' + TimedOut:'WidgetEventIds' + Translate:'WidgetEventIds' + Up:'WidgetEventIds' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def GetEventIdFromString(event:str) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GetStringFromEventId(event:int) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWidgetEvent': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWidgetEvent': ... + +class vtkWidgetEventTranslator(vtkmodules.vtkCommonCore.vtkObject): + translation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddEventsToInteractor(self, __a:'vtkRenderWindowInteractor', __b:'vtkCallbackCommand', priority:float) -> None: ... + def AddEventsToParent(self, __a:'vtkAbstractWidget', __b:'vtkCallbackCommand', priority:float) -> None: ... + def ClearEvents(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetTranslation(self, VTKEvent:int) -> int: ... + @overload + def GetTranslation(self, VTKEvent:str) -> str: ... + @overload + def GetTranslation(self, VTKEvent:int, modifier:int, keyCode:str, repeatCount:int, keySym:str) -> int: ... + @overload + def GetTranslation(self, VTKEvent:int, edata:'vtkEventData') -> int: ... + @overload + def GetTranslation(self, VTKEvent:'vtkEvent') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWidgetEventTranslator': ... + @overload + def RemoveTranslation(self, VTKEvent:int, modifier:int, keyCode:str, repeatCount:int, keySym:str) -> int: ... + @overload + def RemoveTranslation(self, e:'vtkEvent') -> int: ... + @overload + def RemoveTranslation(self, e:'vtkEventData') -> int: ... + @overload + def RemoveTranslation(self, VTKEvent:int) -> int: ... + @overload + def RemoveTranslation(self, VTKEvent:str) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWidgetEventTranslator': ... + @overload + def SetTranslation(self, VTKEvent:int, widgetEvent:int) -> None: ... + @overload + def SetTranslation(self, VTKEvent:str, widgetEvent:str) -> None: ... + @overload + def SetTranslation(self, VTKEvent:int, modifier:int, keyCode:str, repeatCount:int, keySym:str, widgetEvent:int) -> None: ... + @overload + def SetTranslation(self, VTKevent:'vtkEvent', widgetEvent:int) -> None: ... + @overload + def SetTranslation(self, VTKEvent:int, edata:'vtkEventData', widgetEvent:int) -> None: ... + +class vtkWidgetSet(vtkmodules.vtkCommonCore.vtkObject): + enabled:'getset_descriptor' + number_of_widgets:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddWidget(self, __a:'vtkAbstractWidget') -> None: ... + def EnabledOff(self) -> None: ... + def EnabledOn(self) -> None: ... + def GetNthWidget(self, __a:int) -> 'vtkAbstractWidget': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfWidgets(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWidgetSet': ... + def RemoveWidget(self, __a:'vtkAbstractWidget') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWidgetSet': ... + def SetEnabled(self, __a:int) -> None: ... + +class vtkXYPlotWidget(vtkmodules.vtkRenderingCore.vtkInteractorObserver): + enabled:'getset_descriptor' + xy_plot_actor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetXYPlotActor(self) -> 'vtkXYPlotActor': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXYPlotWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXYPlotWidget': ... + def SetEnabled(self, __a:int) -> None: ... + def SetXYPlotActor(self, __a:'vtkXYPlotActor') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkParallelCore.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkParallelCore.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..b45149e Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkParallelCore.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkParallelCore.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkParallelCore.pyi new file mode 100644 index 0000000..2e47534 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkParallelCore.pyi @@ -0,0 +1,751 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore + +class vtkCommunicator(vtkmodules.vtkCommonCore.vtkObject): + class Tags(int): ... + class StandardOperations(int): ... + BARRIER_TAG:'Tags' + BITWISE_AND_OP:'StandardOperations' + BITWISE_OR_OP:'StandardOperations' + BITWISE_XOR_OP:'StandardOperations' + BROADCAST_TAG:'Tags' + GATHERV_TAG:'Tags' + GATHER_TAG:'Tags' + LOGICAL_AND_OP:'StandardOperations' + LOGICAL_OR_OP:'StandardOperations' + LOGICAL_XOR_OP:'StandardOperations' + MAX_OP:'StandardOperations' + MIN_OP:'StandardOperations' + PRODUCT_OP:'StandardOperations' + REDUCE_TAG:'Tags' + SCATTERV_TAG:'Tags' + SCATTER_TAG:'Tags' + SUM_OP:'StandardOperations' + count:'getset_descriptor' + local_process_id:'getset_descriptor' + number_of_processes:'getset_descriptor' + use_copy:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AllGather(self, sendBuffer:Sequence[int], recvBuffer:MutableSequence[int], length:int) -> int: ... + @overload + def AllGather(self, sendBuffer:str, recvBuffer:str, length:int) -> int: ... + @overload + def AllGather(self, sendBuffer:Sequence[float], recvBuffer:MutableSequence[float], length:int) -> int: ... + @overload + def AllGather(self, sendBuffer:'vtkDataArray', recvBuffer:'vtkDataArray') -> int: ... + @overload + def AllGather(self, sendBuffer:'vtkDataObject', recvBuffer:MutableSequence['vtkDataObject']) -> int: ... + @overload + def AllGatherV(self, sendBuffer:Sequence[int], recvBuffer:MutableSequence[int], sendLength:int, recvLengths:MutableSequence[int], offsets:MutableSequence[int]) -> int: ... + @overload + def AllGatherV(self, sendBuffer:str, recvBuffer:str, sendLength:int, recvLengths:MutableSequence[int], offsets:MutableSequence[int]) -> int: ... + @overload + def AllGatherV(self, sendBuffer:Sequence[float], recvBuffer:MutableSequence[float], sendLength:int, recvLengths:MutableSequence[int], offsets:MutableSequence[int]) -> int: ... + @overload + def AllGatherV(self, sendBuffer:'vtkDataArray', recvBuffer:'vtkDataArray', recvLengths:MutableSequence[int], offsets:MutableSequence[int]) -> int: ... + @overload + def AllGatherV(self, sendBuffer:'vtkDataArray', recvBuffer:'vtkDataArray') -> int: ... + def AllGatherVVoidArray(self, sendBuffer:Pointer, recvBuffer:Pointer, sendLength:int, recvLengths:MutableSequence[int], offsets:MutableSequence[int], type:int) -> int: ... + def AllGatherVoidArray(self, sendBuffer:Pointer, recvBuffer:Pointer, length:int, type:int) -> int: ... + @overload + def AllReduce(self, sendBuffer:Sequence[int], recvBuffer:MutableSequence[int], length:int, operation:int) -> int: ... + @overload + def AllReduce(self, sendBuffer:str, recvBuffer:str, length:int, operation:int) -> int: ... + @overload + def AllReduce(self, sendBuffer:Sequence[float], recvBuffer:MutableSequence[float], length:int, operation:int) -> int: ... + @overload + def AllReduce(self, sendBuffer:'vtkDataArray', recvBuffer:'vtkDataArray', operation:int) -> int: ... + def AllReduceVoidArray(self, sendBuffer:Pointer, recvBuffer:Pointer, length:int, type:int, operation:int) -> int: ... + def Barrier(self) -> None: ... + @overload + def Broadcast(self, data:MutableSequence[int], length:int, srcProcessId:int) -> int: ... + @overload + def Broadcast(self, data:str, length:int, srcProcessId:int) -> int: ... + @overload + def Broadcast(self, data:MutableSequence[float], length:int, srcProcessId:int) -> int: ... + @overload + def Broadcast(self, data:'vtkDataObject', srcProcessId:int) -> int: ... + @overload + def Broadcast(self, data:'vtkDataArray', srcProcessId:int) -> int: ... + @overload + def Broadcast(self, stream:'vtkMultiProcessStream', srcProcessId:int) -> int: ... + def BroadcastVoidArray(self, data:Pointer, length:int, type:int, srcProcessId:int) -> int: ... + def CanProbe(self) -> bool: ... + @overload + def Gather(self, sendBuffer:Sequence[int], recvBuffer:MutableSequence[int], length:int, destProcessId:int) -> int: ... + @overload + def Gather(self, sendBuffer:str, recvBuffer:str, length:int, destProcessId:int) -> int: ... + @overload + def Gather(self, sendBuffer:Sequence[float], recvBuffer:MutableSequence[float], length:int, destProcessId:int) -> int: ... + @overload + def Gather(self, sendBuffer:'vtkDataArray', recvBuffer:'vtkDataArray', destProcessId:int) -> int: ... + @overload + def Gather(self, sendBuffer:'vtkDataObject', recvBuffer:MutableSequence['vtkDataObject'], destProcessId:int) -> int: ... + @overload + def GatherV(self, sendBuffer:Sequence[int], recvBuffer:MutableSequence[int], sendLength:int, recvLengths:MutableSequence[int], offsets:MutableSequence[int], destProcessId:int) -> int: ... + @overload + def GatherV(self, sendBuffer:str, recvBuffer:str, sendLength:int, recvLengths:MutableSequence[int], offsets:MutableSequence[int], destProcessId:int) -> int: ... + @overload + def GatherV(self, sendBuffer:Sequence[float], recvBuffer:MutableSequence[float], sendLength:int, recvLengths:MutableSequence[int], offsets:MutableSequence[int], destProcessId:int) -> int: ... + @overload + def GatherV(self, sendBuffer:'vtkDataArray', recvBuffer:'vtkDataArray', recvLengths:'vtkIdTypeArray', offsets:'vtkIdTypeArray', destProcessId:int) -> int: ... + def GatherVVoidArray(self, sendBuffer:Pointer, recvBuffer:Pointer, sendLength:int, recvLengths:MutableSequence[int], offsets:MutableSequence[int], type:int, destProcessId:int) -> int: ... + def GatherVoidArray(self, sendBuffer:Pointer, recvBuffer:Pointer, length:int, type:int, destProcessId:int) -> int: ... + def GetCount(self) -> int: ... + @staticmethod + def GetLeftChildProcessor(pid:int) -> int: ... + def GetLocalProcessId(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfProcesses(self) -> int: ... + @staticmethod + def GetParentProcessor(pid:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MarshalDataObject(object:'vtkDataObject', buffer:'vtkCharArray') -> int: ... + def NewInstance(self) -> 'vtkCommunicator': ... + def Probe(self, source:int, tag:int, actualSource:MutableSequence[int]) -> int: ... + @overload + def Receive(self, data:'vtkDataObject', remoteHandle:int, tag:int) -> int: ... + @overload + def Receive(self, data:'vtkDataArray', remoteHandle:int, tag:int) -> int: ... + @overload + def Receive(self, data:MutableSequence[int], maxlength:int, remoteHandle:int, tag:int) -> int: ... + @overload + def Receive(self, data:str, maxlength:int, remoteHandle:int, tag:int) -> int: ... + @overload + def Receive(self, data:MutableSequence[float], maxlength:int, remoteHandle:int, tag:int) -> int: ... + @overload + def Receive(self, stream:'vtkMultiProcessStream', remoteId:int, tag:int) -> int: ... + def ReceiveDataObject(self, remoteHandle:int, tag:int) -> 'vtkDataObject': ... + def ReceiveVoidArray(self, data:Pointer, maxlength:int, type:int, remoteHandle:int, tag:int) -> int: ... + @overload + def Reduce(self, sendBuffer:Sequence[int], recvBuffer:MutableSequence[int], length:int, operation:int, destProcessId:int) -> int: ... + @overload + def Reduce(self, sendBuffer:str, recvBuffer:str, length:int, operation:int, destProcessId:int) -> int: ... + @overload + def Reduce(self, sendBuffer:Sequence[float], recvBuffer:MutableSequence[float], length:int, operation:int, destProcessId:int) -> int: ... + @overload + def Reduce(self, sendBuffer:'vtkDataArray', recvBuffer:'vtkDataArray', operation:int, destProcessId:int) -> int: ... + def ReduceVoidArray(self, sendBuffer:Pointer, recvBuffer:Pointer, length:int, type:int, operation:int, destProcessId:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCommunicator': ... + @overload + def Scatter(self, sendBuffer:Sequence[int], recvBuffer:MutableSequence[int], length:int, srcProcessId:int) -> int: ... + @overload + def Scatter(self, sendBuffer:str, recvBuffer:str, length:int, srcProcessId:int) -> int: ... + @overload + def Scatter(self, sendBuffer:Sequence[float], recvBuffer:MutableSequence[float], length:int, srcProcessId:int) -> int: ... + @overload + def Scatter(self, sendBuffer:'vtkDataArray', recvBuffer:'vtkDataArray', srcProcessId:int) -> int: ... + @overload + def ScatterV(self, sendBuffer:Sequence[int], recvBuffer:MutableSequence[int], sendLengths:MutableSequence[int], offsets:MutableSequence[int], recvLength:int, srcProcessId:int) -> int: ... + @overload + def ScatterV(self, sendBuffer:str, recvBuffer:str, sendLengths:MutableSequence[int], offsets:MutableSequence[int], recvLength:int, srcProcessId:int) -> int: ... + @overload + def ScatterV(self, sendBuffer:Sequence[float], recvBuffer:MutableSequence[float], sendLengths:MutableSequence[int], offsets:MutableSequence[int], recvLength:int, srcProcessId:int) -> int: ... + def ScatterVVoidArray(self, sendBuffer:Pointer, recvBuffer:Pointer, sendLengths:MutableSequence[int], offsets:MutableSequence[int], recvLength:int, type:int, srcProcessId:int) -> int: ... + def ScatterVoidArray(self, sendBuffer:Pointer, recvBuffer:Pointer, length:int, type:int, srcProcessId:int) -> int: ... + @overload + def Send(self, data:'vtkDataObject', remoteHandle:int, tag:int) -> int: ... + @overload + def Send(self, data:'vtkDataArray', remoteHandle:int, tag:int) -> int: ... + @overload + def Send(self, data:Sequence[int], length:int, remoteHandle:int, tag:int) -> int: ... + @overload + def Send(self, data:str, length:int, remoteHandle:int, tag:int) -> int: ... + @overload + def Send(self, data:Sequence[float], length:int, remoteHandle:int, tag:int) -> int: ... + @overload + def Send(self, stream:'vtkMultiProcessStream', remoteId:int, tag:int) -> int: ... + def SendVoidArray(self, data:Pointer, length:int, type:int, remoteHandle:int, tag:int) -> int: ... + def SetNumberOfProcesses(self, num:int) -> None: ... + @staticmethod + def SetUseCopy(useCopy:int) -> None: ... + @overload + @staticmethod + def UnMarshalDataObject(buffer:'vtkCharArray', object:'vtkDataObject') -> int: ... + @overload + @staticmethod + def UnMarshalDataObject(buffer:'vtkCharArray') -> 'vtkDataObject': ... + +class vtkDummyCommunicator(vtkCommunicator): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDummyCommunicator': ... + def ReceiveVoidArray(self, __a:Pointer, __b:int, __c:int, __d:int, __e:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDummyCommunicator': ... + def SendVoidArray(self, __a:Pointer, __b:int, __c:int, __d:int, __e:int) -> int: ... + +class vtkMultiProcessController(vtkmodules.vtkCommonCore.vtkObject): + class Consts(int): ... + class Tags(int): ... + class Errors(int): ... + ANY_SOURCE:'Consts' + BREAK_RMI_TAG:'Tags' + INVALID_SOURCE:'Consts' + RMI_ARG_ERROR:'Errors' + RMI_ARG_TAG:'Tags' + RMI_NO_ERROR:'Errors' + RMI_TAG:'Tags' + RMI_TAG_ERROR:'Errors' + XML_WRITER_DATA_INFO:'Tags' + break_flag:'getset_descriptor' + break_rmi_tag:'getset_descriptor' + broadcast_trigger_rmi:'getset_descriptor' + communicator:'getset_descriptor' + count:'getset_descriptor' + global_controller:'getset_descriptor' + local_process_id:'getset_descriptor' + number_of_processes:'getset_descriptor' + rmi_arg_tag:'getset_descriptor' + rmi_tag:'getset_descriptor' + single_process_object:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AllGather(self, sendBuffer:Sequence[int], recvBuffer:MutableSequence[int], length:int) -> int: ... + @overload + def AllGather(self, sendBuffer:str, recvBuffer:str, length:int) -> int: ... + @overload + def AllGather(self, sendBuffer:Sequence[float], recvBuffer:MutableSequence[float], length:int) -> int: ... + @overload + def AllGather(self, sendBuffer:'vtkDataArray', recvBuffer:'vtkDataArray') -> int: ... + @overload + def AllGather(self, sendBuffer:'vtkDataObject', recvBuffer:MutableSequence['vtkDataObject']) -> int: ... + @overload + def AllGatherV(self, sendBuffer:Sequence[int], recvBuffer:MutableSequence[int], sendLength:int, recvLengths:MutableSequence[int], offsets:MutableSequence[int]) -> int: ... + @overload + def AllGatherV(self, sendBuffer:str, recvBuffer:str, sendLength:int, recvLengths:MutableSequence[int], offsets:MutableSequence[int]) -> int: ... + @overload + def AllGatherV(self, sendBuffer:Sequence[float], recvBuffer:MutableSequence[float], sendLength:int, recvLengths:MutableSequence[int], offsets:MutableSequence[int]) -> int: ... + @overload + def AllGatherV(self, sendBuffer:'vtkDataArray', recvBuffer:'vtkDataArray', recvLengths:MutableSequence[int], offsets:MutableSequence[int]) -> int: ... + @overload + def AllGatherV(self, sendBuffer:'vtkDataArray', recvBuffer:'vtkDataArray') -> int: ... + @overload + def AllReduce(self, sendBuffer:Sequence[int], recvBuffer:MutableSequence[int], length:int, operation:int) -> int: ... + @overload + def AllReduce(self, sendBuffer:str, recvBuffer:str, length:int, operation:int) -> int: ... + @overload + def AllReduce(self, sendBuffer:Sequence[float], recvBuffer:MutableSequence[float], length:int, operation:int) -> int: ... + @overload + def AllReduce(self, sendBuffer:'vtkDataArray', recvBuffer:'vtkDataArray', operation:int) -> int: ... + @overload + def AllReduce(self, sendBuffer:'vtkBoundingBox', recvBuffer:'vtkBoundingBox') -> int: ... + @overload + def AllReduce(self, sendBuffer:'vtkDataArraySelection', recvBuffer:'vtkDataArraySelection') -> int: ... + def Barrier(self) -> None: ... + @overload + def Broadcast(self, data:MutableSequence[int], length:int, srcProcessId:int) -> int: ... + @overload + def Broadcast(self, data:str, length:int, srcProcessId:int) -> int: ... + @overload + def Broadcast(self, data:MutableSequence[float], length:int, srcProcessId:int) -> int: ... + @overload + def Broadcast(self, data:'vtkDataObject', srcProcessId:int) -> int: ... + @overload + def Broadcast(self, data:'vtkDataArray', srcProcessId:int) -> int: ... + @overload + def Broadcast(self, stream:'vtkMultiProcessStream', srcProcessId:int) -> int: ... + def BroadcastProcessRMIs(self, reportErrors:int, dont_loop:int=0) -> int: ... + def BroadcastTriggerRMIOff(self) -> None: ... + def BroadcastTriggerRMIOn(self) -> None: ... + def BroadcastTriggerRMIOnAllChildren(self, arg:Pointer, argLength:int, tag:int) -> None: ... + def CanProbe(self) -> bool: ... + def CreateOutputWindow(self) -> None: ... + def CreateSubController(self, group:'vtkProcessGroup') -> 'vtkMultiProcessController': ... + @overload + def Finalize(self) -> None: ... + @overload + def Finalize(self, finalizedExternally:int) -> None: ... + @overload + def Gather(self, sendBuffer:Sequence[int], recvBuffer:MutableSequence[int], length:int, destProcessId:int) -> int: ... + @overload + def Gather(self, sendBuffer:str, recvBuffer:str, length:int, destProcessId:int) -> int: ... + @overload + def Gather(self, sendBuffer:Sequence[float], recvBuffer:MutableSequence[float], length:int, destProcessId:int) -> int: ... + @overload + def Gather(self, sendBuffer:'vtkDataArray', recvBuffer:'vtkDataArray', destProcessId:int) -> int: ... + @overload + def Gather(self, sendBuffer:'vtkDataObject', recvBuffer:MutableSequence['vtkDataObject'], destProcessId:int) -> int: ... + @overload + def GatherV(self, sendBuffer:Sequence[int], recvBuffer:MutableSequence[int], sendLength:int, recvLengths:MutableSequence[int], offsets:MutableSequence[int], destProcessId:int) -> int: ... + @overload + def GatherV(self, sendBuffer:str, recvBuffer:str, sendLength:int, recvLengths:MutableSequence[int], offsets:MutableSequence[int], destProcessId:int) -> int: ... + @overload + def GatherV(self, sendBuffer:Sequence[float], recvBuffer:MutableSequence[float], sendLength:int, recvLengths:MutableSequence[int], offsets:MutableSequence[int], destProcessId:int) -> int: ... + @overload + def GatherV(self, sendBuffer:'vtkDataArray', recvBuffer:'vtkDataArray', recvLengths:MutableSequence[int], offsets:MutableSequence[int], destProcessId:int) -> int: ... + def GetBreakFlag(self) -> int: ... + @staticmethod + def GetBreakRMITag() -> int: ... + def GetBroadcastTriggerRMI(self) -> bool: ... + def GetCommunicator(self) -> 'vtkCommunicator': ... + def GetCount(self) -> int: ... + @staticmethod + def GetGlobalController() -> 'vtkMultiProcessController': ... + def GetLocalProcessId(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfProcesses(self) -> int: ... + @staticmethod + def GetRMIArgTag() -> int: ... + @staticmethod + def GetRMITag() -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MultipleMethodExecute(self) -> None: ... + def NewInstance(self) -> 'vtkMultiProcessController': ... + def PartitionController(self, localColor:int, localKey:int) -> 'vtkMultiProcessController': ... + def Probe(self, source:int, tag:int, actualSource:MutableSequence[int]) -> int: ... + @overload + def ProcessRMIs(self, reportErrors:int, dont_loop:int=0) -> int: ... + @overload + def ProcessRMIs(self) -> int: ... + @overload + def Receive(self, data:MutableSequence[int], maxlength:int, remoteProcessId:int, tag:int) -> int: ... + @overload + def Receive(self, data:str, maxlength:int, remoteProcessId:int, tag:int) -> int: ... + @overload + def Receive(self, data:MutableSequence[float], maxlength:int, remoteProcessId:int, tag:int) -> int: ... + @overload + def Receive(self, data:MutableSequence[int], maxLength:int, remoteProcessId:int, tag:int) -> int: ... + @overload + def Receive(self, data:'vtkDataObject', remoteId:int, tag:int) -> int: ... + @overload + def Receive(self, data:'vtkDataArray', remoteId:int, tag:int) -> int: ... + @overload + def Receive(self, stream:'vtkMultiProcessStream', remoteId:int, tag:int) -> int: ... + def ReceiveDataObject(self, remoteId:int, tag:int) -> 'vtkDataObject': ... + @overload + def Reduce(self, sendBuffer:Sequence[int], recvBuffer:MutableSequence[int], length:int, operation:int, destProcessId:int) -> int: ... + @overload + def Reduce(self, sendBuffer:str, recvBuffer:str, length:int, operation:int, destProcessId:int) -> int: ... + @overload + def Reduce(self, sendBuffer:Sequence[float], recvBuffer:MutableSequence[float], length:int, operation:int, destProcessId:int) -> int: ... + @overload + def Reduce(self, sendBuffer:'vtkDataArray', recvBuffer:'vtkDataArray', operation:int, destProcessId:int) -> int: ... + @overload + def Reduce(self, sendBuffer:'vtkBoundingBox', recvBuffer:'vtkBoundingBox', destProcessId:int) -> int: ... + @overload + def Reduce(self, sendBuffer:'vtkDataArraySelection', recvBuffer:'vtkDataArraySelection', destProcessId:int) -> int: ... + def RemoveAllRMICallbacks(self, tag:int) -> None: ... + def RemoveFirstRMI(self, tag:int) -> int: ... + def RemoveRMI(self, id:int) -> int: ... + def RemoveRMICallback(self, id:int) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMultiProcessController': ... + @overload + def Scatter(self, sendBuffer:Sequence[int], recvBuffer:MutableSequence[int], length:int, srcProcessId:int) -> int: ... + @overload + def Scatter(self, sendBuffer:str, recvBuffer:str, length:int, srcProcessId:int) -> int: ... + @overload + def Scatter(self, sendBuffer:Sequence[float], recvBuffer:MutableSequence[float], length:int, srcProcessId:int) -> int: ... + @overload + def Scatter(self, sendBuffer:'vtkDataArray', recvBuffer:'vtkDataArray', srcProcessId:int) -> int: ... + @overload + def ScatterV(self, sendBuffer:Sequence[int], recvBuffer:MutableSequence[int], sendLengths:MutableSequence[int], offsets:MutableSequence[int], recvLength:int, srcProcessId:int) -> int: ... + @overload + def ScatterV(self, sendBuffer:str, recvBuffer:str, sendLengths:MutableSequence[int], offsets:MutableSequence[int], recvLength:int, srcProcessId:int) -> int: ... + @overload + def ScatterV(self, sendBuffer:Sequence[float], recvBuffer:MutableSequence[float], sendLengths:MutableSequence[int], offsets:MutableSequence[int], recvLength:int, srcProcessId:int) -> int: ... + @overload + def Send(self, data:Sequence[int], length:int, remoteProcessId:int, tag:int) -> int: ... + @overload + def Send(self, data:str, length:int, remoteProcessId:int, tag:int) -> int: ... + @overload + def Send(self, data:Sequence[float], length:int, remoteProcessId:int, tag:int) -> int: ... + @overload + def Send(self, data:'vtkDataObject', remoteId:int, tag:int) -> int: ... + @overload + def Send(self, data:'vtkDataArray', remoteId:int, tag:int) -> int: ... + @overload + def Send(self, stream:'vtkMultiProcessStream', remoteId:int, tag:int) -> int: ... + def SetBreakFlag(self, _arg:int) -> None: ... + def SetBroadcastTriggerRMI(self, _arg:bool) -> None: ... + @staticmethod + def SetGlobalController(controller:'vtkMultiProcessController') -> None: ... + def SetNumberOfProcesses(self, num:int) -> None: ... + def SetSingleProcessObject(self, p:'vtkProcess') -> None: ... + def SingleMethodExecute(self) -> None: ... + def TriggerBreakRMIs(self) -> None: ... + @overload + def TriggerRMI(self, remoteProcessId:int, arg:Pointer, argLength:int, tag:int) -> None: ... + @overload + def TriggerRMI(self, remoteProcessId:int, arg:str, tag:int) -> None: ... + @overload + def TriggerRMI(self, remoteProcessId:int, tag:int) -> None: ... + @overload + def TriggerRMIOnAllChildren(self, arg:Pointer, argLength:int, tag:int) -> None: ... + @overload + def TriggerRMIOnAllChildren(self, arg:str, tag:int) -> None: ... + @overload + def TriggerRMIOnAllChildren(self, tag:int) -> None: ... + +class vtkDummyController(vtkMultiProcessController): + communicator:'getset_descriptor' + local_process_id:'getset_descriptor' + rmi_communicator:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateOutputWindow(self) -> None: ... + @overload + def Finalize(self) -> None: ... + @overload + def Finalize(self, __a:int) -> None: ... + def GetLocalProcessId(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRMICommunicator(self) -> 'vtkCommunicator': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MultipleMethodExecute(self) -> None: ... + def NewInstance(self) -> 'vtkDummyController': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDummyController': ... + def SetCommunicator(self, __a:'vtkCommunicator') -> None: ... + def SetRMICommunicator(self, __a:'vtkCommunicator') -> None: ... + def SingleMethodExecute(self) -> None: ... + +class vtkFieldDataSerializer(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def DeSerializeToSubExtent(subext:MutableSequence[int], gridExtent:MutableSequence[int], fieldData:'vtkFieldData', bytestream:'vtkMultiProcessStream') -> None: ... + @staticmethod + def Deserialize(bytestream:'vtkMultiProcessStream', fieldData:'vtkFieldData') -> None: ... + @staticmethod + def DeserializeMetaData(bytestream:'vtkMultiProcessStream', names:'vtkStringArray', datatypes:'vtkIntArray', dimensions:'vtkIntArray') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFieldDataSerializer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFieldDataSerializer': ... + @staticmethod + def Serialize(fieldData:'vtkFieldData', bytestream:'vtkMultiProcessStream') -> None: ... + @staticmethod + def SerializeMetaData(fieldData:'vtkFieldData', bytestream:'vtkMultiProcessStream') -> None: ... + @staticmethod + def SerializeSubExtent(subext:MutableSequence[int], gridExtent:MutableSequence[int], fieldData:'vtkFieldData', bytestream:'vtkMultiProcessStream') -> None: ... + @staticmethod + def SerializeTuples(tupleIds:'vtkIdList', fieldData:'vtkFieldData', bytestream:'vtkMultiProcessStream') -> None: ... + +class vtkMultiProcessStream(object): + raw_data:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkMultiProcessStream') -> None: ... + def Empty(self) -> bool: ... + @overload + def GetRawData(self, data:MutableSequence[int]) -> None: ... + @overload + def GetRawData(self, data:MutableSequence[int], size:int) -> None: ... + @overload + def GetRawData(self) -> Tuple[int, int]: ... + @overload + def Pop(self, array:MutableSequence[float], size:int) -> None: ... + @overload + def Pop(self, array:MutableSequence[int], size:int) -> None: ... + @overload + def Push(self, array:MutableSequence[float], size:int) -> None: ... + @overload + def Push(self, array:MutableSequence[int], size:int) -> None: ... + @overload + def Push(self, array:str, size:int) -> None: ... + def RawSize(self) -> int: ... + def Reset(self) -> None: ... + @overload + def SetRawData(self, data:Sequence[int]) -> None: ... + @overload + def SetRawData(self, __a:Sequence[int], size:int) -> None: ... + def Size(self) -> int: ... + +class vtkPDirectory(vtkmodules.vtkCommonCore.vtkObject): + files:'getset_descriptor' + number_of_files:'getset_descriptor' + path:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Clear(self) -> None: ... + @staticmethod + def DeleteDirectory(dir:str) -> int: ... + def FileIsDirectory(self, name:str) -> int: ... + @staticmethod + def GetCurrentWorkingDirectory(buf:str, len:int) -> str: ... + def GetFile(self, index:int) -> str: ... + def GetFiles(self) -> 'vtkStringArray': ... + def GetNumberOfFiles(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPath(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Load(self, __a:str) -> bool: ... + @staticmethod + def MakeDirectory(dir:str) -> int: ... + def NewInstance(self) -> 'vtkPDirectory': ... + def Open(self, dir:str) -> int: ... + @staticmethod + def Rename(oldname:str, newname:str) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPDirectory': ... + +class vtkPSystemTools(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def BroadcastString(__a:str, proc:int) -> None: ... + @overload + @staticmethod + def CollapseFullPath(in_relative:str) -> str: ... + @overload + @staticmethod + def CollapseFullPath(in_relative:str, in_base:str) -> str: ... + @overload + @staticmethod + def FileExists(filename:str, isFile:bool) -> bool: ... + @overload + @staticmethod + def FileExists(filename:str) -> bool: ... + @staticmethod + def FileIsDirectory(name:str) -> bool: ... + @staticmethod + def FindProgramPath(argv0:str, pathOut:str, errorMsg:str, exeName:str=..., buildDir:str=..., installPrefix:str=...) -> bool: ... + @staticmethod + def GetCurrentWorkingDirectory(collapse:bool=True) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GetProgramPath(__a:str) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPSystemTools': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPSystemTools': ... + +class vtkProcess(vtkmodules.vtkCommonCore.vtkObject): + controller:'getset_descriptor' + return_value:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Execute(self) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReturnValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProcess': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProcess': ... + def SetController(self, aController:'vtkMultiProcessController') -> None: ... + +class vtkProcessGroup(vtkmodules.vtkCommonCore.vtkObject): + communicator:'getset_descriptor' + local_process_id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddProcessId(self, processId:int) -> int: ... + def Copy(self, group:'vtkProcessGroup') -> None: ... + def FindProcessId(self, processId:int) -> int: ... + def GetCommunicator(self) -> 'vtkCommunicator': ... + def GetLocalProcessId(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfProcessIds(self) -> int: ... + def GetProcessId(self, pos:int) -> int: ... + @overload + def Initialize(self, controller:'vtkMultiProcessController') -> None: ... + @overload + def Initialize(self, communicator:'vtkCommunicator') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProcessGroup': ... + def RemoveAllProcessIds(self) -> None: ... + def RemoveProcessId(self, processId:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProcessGroup': ... + def SetCommunicator(self, communicator:'vtkCommunicator') -> None: ... + +class vtkSocketCommunicator(vtkCommunicator): + is_connected:'getset_descriptor' + is_server:'getset_descriptor' + number_of_processes:'getset_descriptor' + perform_handshake:'getset_descriptor' + report_errors:'getset_descriptor' + socket:'getset_descriptor' + swap_bytes_in_received_data:'getset_descriptor' + version:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllGatherVVoidArray(self, sendBuffer:Pointer, recvBuffer:Pointer, sendLength:int, recvLengths:MutableSequence[int], offsets:MutableSequence[int], type:int) -> int: ... + def AllGatherVoidArray(self, sendBuffer:Pointer, recvBuffer:Pointer, length:int, type:int) -> int: ... + def AllReduceVoidArray(self, sendBuffer:Pointer, recvBuffer:Pointer, length:int, type:int, operation:int) -> int: ... + def Barrier(self) -> None: ... + def BroadcastVoidArray(self, data:Pointer, length:int, type:int, srcProcessId:int) -> int: ... + def BufferCurrentMessage(self) -> None: ... + def ClientSideHandshake(self) -> int: ... + def CloseConnection(self) -> None: ... + def ConnectTo(self, hostName:str, port:int) -> int: ... + def GatherVVoidArray(self, sendBuffer:Pointer, recvBuffer:Pointer, sendLength:int, recvLengths:MutableSequence[int], offsets:MutableSequence[int], type:int, destProcessId:int) -> int: ... + def GatherVoidArray(self, sendBuffer:Pointer, recvBuffer:Pointer, length:int, type:int, destProcessId:int) -> int: ... + def GetIsConnected(self) -> int: ... + def GetIsServer(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPerformHandshake(self) -> int: ... + def GetPerformHandshakeMaxValue(self) -> int: ... + def GetPerformHandshakeMinValue(self) -> int: ... + def GetReportErrors(self) -> int: ... + def GetSocket(self) -> 'vtkClientSocket': ... + def GetSwapBytesInReceivedData(self) -> int: ... + @staticmethod + def GetVersion() -> int: ... + def Handshake(self) -> int: ... + def HasBufferredMessages(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def LogToFile(self, name:str) -> int: ... + @overload + def LogToFile(self, name:str, append:int) -> int: ... + def NewInstance(self) -> 'vtkSocketCommunicator': ... + def PerformHandshakeOff(self) -> None: ... + def PerformHandshakeOn(self) -> None: ... + def ReceiveVoidArray(self, data:Pointer, length:int, type:int, remoteHandle:int, tag:int) -> int: ... + def ReduceVoidArray(self, sendBuffer:Pointer, recvBuffer:Pointer, length:int, type:int, operation:int, destProcessId:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSocketCommunicator': ... + def ScatterVVoidArray(self, sendBuffer:Pointer, recvBuffer:Pointer, sendLengths:MutableSequence[int], offsets:MutableSequence[int], recvLength:int, type:int, srcProcessId:int) -> int: ... + def ScatterVoidArray(self, sendBuffer:Pointer, recvBuffer:Pointer, length:int, type:int, srcProcessId:int) -> int: ... + def SendVoidArray(self, data:Pointer, length:int, type:int, remoteHandle:int, tag:int) -> int: ... + def ServerSideHandshake(self) -> int: ... + def SetNumberOfProcesses(self, num:int) -> None: ... + def SetPerformHandshake(self, _arg:int) -> None: ... + def SetReportErrors(self, _arg:int) -> None: ... + def SetSocket(self, __a:'vtkClientSocket') -> None: ... + @overload + def WaitForConnection(self, port:int) -> int: ... + @overload + def WaitForConnection(self, socket:'vtkServerSocket', msec:int=0) -> int: ... + +class vtkSocketController(vtkMultiProcessController): + class Consts(int): ... + ENDIAN_TAG:'Consts' + HASH_TAG:'Consts' + IDTYPESIZE_TAG:'Consts' + VERSION_TAG:'Consts' + communicator:'getset_descriptor' + swap_bytes_in_received_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CloseConnection(self) -> None: ... + def ConnectTo(self, hostName:str, port:int) -> int: ... + def CreateCompliantController(self) -> 'vtkMultiProcessController': ... + def CreateOutputWindow(self) -> None: ... + @overload + def Finalize(self) -> None: ... + @overload + def Finalize(self, __a:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSwapBytesInReceivedData(self) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MultipleMethodExecute(self) -> None: ... + def NewInstance(self) -> 'vtkSocketController': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSocketController': ... + def SetCommunicator(self, comm:'vtkSocketCommunicator') -> None: ... + def SingleMethodExecute(self) -> None: ... + def WaitForConnection(self, port:int) -> int: ... + +class vtkSubCommunicator(vtkCommunicator): + group:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetGroup(self) -> 'vtkProcessGroup': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSubCommunicator': ... + def ReceiveVoidArray(self, data:Pointer, length:int, type:int, remoteHandle:int, tag:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSubCommunicator': ... + def SendVoidArray(self, data:Pointer, length:int, type:int, remoteHandle:int, tag:int) -> int: ... + def SetGroup(self, group:'vtkProcessGroup') -> None: ... + +class vtkSubGroup(vtkmodules.vtkCommonCore.vtkObject): + MAXOP:int + MINOP:int + SUMOP:int + def __init__(self, **properties:Any) -> None: ... + def Barrier(self) -> int: ... + @overload + def Broadcast(self, data:MutableSequence[float], length:int, root:int) -> int: ... + @overload + def Broadcast(self, data:MutableSequence[int], length:int, root:int) -> int: ... + @overload + def Broadcast(self, data:str, length:int, root:int) -> int: ... + @overload + def Gather(self, data:MutableSequence[int], to:MutableSequence[int], length:int, root:int) -> int: ... + @overload + def Gather(self, data:str, to:str, length:int, root:int) -> int: ... + @overload + def Gather(self, data:MutableSequence[float], to:MutableSequence[float], length:int, root:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, p0:int, p1:int, me:int, tag:int, c:'vtkCommunicator') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSubGroup': ... + def PrintSubGroup(self) -> None: ... + @overload + def ReduceMax(self, data:MutableSequence[float], to:MutableSequence[float], length:int, root:int) -> int: ... + @overload + def ReduceMax(self, data:MutableSequence[int], to:MutableSequence[int], length:int, root:int) -> int: ... + @overload + def ReduceMin(self, data:MutableSequence[float], to:MutableSequence[float], length:int, root:int) -> int: ... + @overload + def ReduceMin(self, data:MutableSequence[int], to:MutableSequence[int], length:int, root:int) -> int: ... + def ReduceSum(self, data:MutableSequence[int], to:MutableSequence[int], length:int, root:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSubGroup': ... + def getLocalRank(self, processID:int) -> int: ... + def setGatherPattern(self, root:int, length:int) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkPythonContext2D.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkPythonContext2D.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..1277fe8 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkPythonContext2D.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkPythonContext2D.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkPythonContext2D.pyi new file mode 100644 index 0000000..c03cb74 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkPythonContext2D.pyi @@ -0,0 +1,26 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingContext2D + +class vtkPythonItem(vtkmodules.vtkRenderingContext2D.vtkContextItem): + python_object:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPythonItem': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPythonItem': ... + def SetPythonObject(self, obj:'PyObject') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingAnnotation.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingAnnotation.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..5ea4050 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingAnnotation.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingAnnotation.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingAnnotation.pyi new file mode 100644 index 0000000..397df88 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingAnnotation.pyi @@ -0,0 +1,3202 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkRenderingCore + +VTK_IV_COLUMN:int +VTK_IV_ROW:int +VTK_ORIENT_HORIZONTAL:int +VTK_ORIENT_VERTICAL:int +VTK_PLOT_FIELD_DATA:int +VTK_PLOT_NORMALS:int +VTK_PLOT_SCALARS:int +VTK_PLOT_TCOORDS:int +VTK_PLOT_TENSORS:int +VTK_PLOT_VECTORS:int +VTK_XYPLOT_ARC_LENGTH:int +VTK_XYPLOT_COLUMN:int +VTK_XYPLOT_INDEX:int +VTK_XYPLOT_NORMALIZED_ARC_LENGTH:int +VTK_XYPLOT_ROW:int +VTK_XYPLOT_VALUE:int +VTK_XYPLOT_Y_AXIS_HCENTER:int +VTK_XYPLOT_Y_AXIS_TOP:int +VTK_XYPLOT_Y_AXIS_VCENTER:int + +class vtkAnnotatedCubeActor(vtkmodules.vtkRenderingCore.vtkProp3D): + assembly:'getset_descriptor' + bounds:'getset_descriptor' + cube_property:'getset_descriptor' + cube_visibility:'getset_descriptor' + face_text_scale:'getset_descriptor' + face_text_visibility:'getset_descriptor' + m_time:'getset_descriptor' + text_edges_property:'getset_descriptor' + text_edges_visibility:'getset_descriptor' + x_face_text_rotation:'getset_descriptor' + x_minus_face_property:'getset_descriptor' + x_minus_face_text:'getset_descriptor' + x_plus_face_property:'getset_descriptor' + x_plus_face_text:'getset_descriptor' + y_face_text_rotation:'getset_descriptor' + y_minus_face_property:'getset_descriptor' + y_minus_face_text:'getset_descriptor' + y_plus_face_property:'getset_descriptor' + y_plus_face_text:'getset_descriptor' + z_face_text_rotation:'getset_descriptor' + z_minus_face_property:'getset_descriptor' + z_minus_face_text:'getset_descriptor' + z_plus_face_property:'getset_descriptor' + z_plus_face_text:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetAssembly(self) -> 'vtkAssembly': ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetCubeProperty(self) -> 'vtkProperty': ... + def GetCubeVisibility(self) -> int: ... + def GetFaceTextScale(self) -> float: ... + def GetFaceTextVisibility(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTextEdgesProperty(self) -> 'vtkProperty': ... + def GetTextEdgesVisibility(self) -> int: ... + def GetXFaceTextRotation(self) -> float: ... + def GetXMinusFaceProperty(self) -> 'vtkProperty': ... + def GetXMinusFaceText(self) -> str: ... + def GetXPlusFaceProperty(self) -> 'vtkProperty': ... + def GetXPlusFaceText(self) -> str: ... + def GetYFaceTextRotation(self) -> float: ... + def GetYMinusFaceProperty(self) -> 'vtkProperty': ... + def GetYMinusFaceText(self) -> str: ... + def GetYPlusFaceProperty(self) -> 'vtkProperty': ... + def GetYPlusFaceText(self) -> str: ... + def GetZFaceTextRotation(self) -> float: ... + def GetZMinusFaceProperty(self) -> 'vtkProperty': ... + def GetZMinusFaceText(self) -> str: ... + def GetZPlusFaceProperty(self) -> 'vtkProperty': ... + def GetZPlusFaceText(self) -> str: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAnnotatedCubeActor': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAnnotatedCubeActor': ... + def SetCubeVisibility(self, __a:int) -> None: ... + def SetFaceTextScale(self, __a:float) -> None: ... + def SetFaceTextVisibility(self, __a:int) -> None: ... + def SetTextEdgesVisibility(self, __a:int) -> None: ... + def SetXFaceTextRotation(self, _arg:float) -> None: ... + def SetXMinusFaceText(self, _arg:str) -> None: ... + def SetXPlusFaceText(self, _arg:str) -> None: ... + def SetYFaceTextRotation(self, _arg:float) -> None: ... + def SetYMinusFaceText(self, _arg:str) -> None: ... + def SetYPlusFaceText(self, _arg:str) -> None: ... + def SetZFaceTextRotation(self, _arg:float) -> None: ... + def SetZMinusFaceText(self, _arg:str) -> None: ... + def SetZPlusFaceText(self, _arg:str) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkArcPlotter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + camera:'getset_descriptor' + default_normal:'getset_descriptor' + field_data_array:'getset_descriptor' + height:'getset_descriptor' + m_time:'getset_descriptor' + offset:'getset_descriptor' + plot_component:'getset_descriptor' + plot_mode:'getset_descriptor' + radius:'getset_descriptor' + use_default_normal:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCamera(self) -> 'vtkCamera': ... + def GetDefaultNormal(self) -> Tuple[float, float, float]: ... + def GetFieldDataArray(self) -> int: ... + def GetFieldDataArrayMaxValue(self) -> int: ... + def GetFieldDataArrayMinValue(self) -> int: ... + def GetHeight(self) -> float: ... + def GetHeightMaxValue(self) -> float: ... + def GetHeightMinValue(self) -> float: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffset(self) -> float: ... + def GetOffsetMaxValue(self) -> float: ... + def GetOffsetMinValue(self) -> float: ... + def GetPlotComponent(self) -> int: ... + def GetPlotMode(self) -> int: ... + def GetRadius(self) -> float: ... + def GetRadiusMaxValue(self) -> float: ... + def GetRadiusMinValue(self) -> float: ... + def GetUseDefaultNormal(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArcPlotter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArcPlotter': ... + def SetCamera(self, __a:'vtkCamera') -> None: ... + @overload + def SetDefaultNormal(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetDefaultNormal(self, _arg:Sequence[float]) -> None: ... + def SetFieldDataArray(self, _arg:int) -> None: ... + def SetHeight(self, _arg:float) -> None: ... + def SetOffset(self, _arg:float) -> None: ... + def SetPlotComponent(self, _arg:int) -> None: ... + def SetPlotMode(self, _arg:int) -> None: ... + def SetPlotModeToPlotFieldData(self) -> None: ... + def SetPlotModeToPlotNormals(self) -> None: ... + def SetPlotModeToPlotScalars(self) -> None: ... + def SetPlotModeToPlotTCoords(self) -> None: ... + def SetPlotModeToPlotTensors(self) -> None: ... + def SetPlotModeToPlotVectors(self) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + def SetUseDefaultNormal(self, _arg:int) -> None: ... + def UseDefaultNormalOff(self) -> None: ... + def UseDefaultNormalOn(self) -> None: ... + +class vtkAxesActor(vtkmodules.vtkRenderingCore.vtkProp3D): + CONE_TIP:int + CYLINDER_SHAFT:int + LINE_SHAFT:int + SPHERE_TIP:int + USER_DEFINED_SHAFT:int + USER_DEFINED_TIP:int + axis_labels:'getset_descriptor' + bounds:'getset_descriptor' + cone_radius:'getset_descriptor' + cone_resolution:'getset_descriptor' + cylinder_radius:'getset_descriptor' + cylinder_resolution:'getset_descriptor' + m_time:'getset_descriptor' + normalized_label_position:'getset_descriptor' + normalized_shaft_length:'getset_descriptor' + normalized_tip_length:'getset_descriptor' + redraw_m_time:'getset_descriptor' + shaft_type:'getset_descriptor' + sphere_radius:'getset_descriptor' + sphere_resolution:'getset_descriptor' + tip_type:'getset_descriptor' + total_length:'getset_descriptor' + user_defined_shaft:'getset_descriptor' + user_defined_tip:'getset_descriptor' + x_axis_caption_actor2d:'getset_descriptor' + x_axis_label_text:'getset_descriptor' + x_axis_shaft_property:'getset_descriptor' + x_axis_tip_property:'getset_descriptor' + y_axis_caption_actor2d:'getset_descriptor' + y_axis_label_text:'getset_descriptor' + y_axis_shaft_property:'getset_descriptor' + y_axis_tip_property:'getset_descriptor' + z_axis_caption_actor2d:'getset_descriptor' + z_axis_label_text:'getset_descriptor' + z_axis_shaft_property:'getset_descriptor' + z_axis_tip_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AxisLabelsOff(self) -> None: ... + def AxisLabelsOn(self) -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetAxisLabels(self) -> int: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetConeRadius(self) -> float: ... + def GetConeRadiusMaxValue(self) -> float: ... + def GetConeRadiusMinValue(self) -> float: ... + def GetConeResolution(self) -> int: ... + def GetConeResolutionMaxValue(self) -> int: ... + def GetConeResolutionMinValue(self) -> int: ... + def GetCylinderRadius(self) -> float: ... + def GetCylinderRadiusMaxValue(self) -> float: ... + def GetCylinderRadiusMinValue(self) -> float: ... + def GetCylinderResolution(self) -> int: ... + def GetCylinderResolutionMaxValue(self) -> int: ... + def GetCylinderResolutionMinValue(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNormalizedLabelPosition(self) -> Tuple[float, float, float]: ... + def GetNormalizedShaftLength(self) -> Tuple[float, float, float]: ... + def GetNormalizedTipLength(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRedrawMTime(self) -> int: ... + def GetShaftType(self) -> int: ... + def GetSphereRadius(self) -> float: ... + def GetSphereRadiusMaxValue(self) -> float: ... + def GetSphereRadiusMinValue(self) -> float: ... + def GetSphereResolution(self) -> int: ... + def GetSphereResolutionMaxValue(self) -> int: ... + def GetSphereResolutionMinValue(self) -> int: ... + def GetTipType(self) -> int: ... + def GetTotalLength(self) -> Tuple[float, float, float]: ... + def GetUserDefinedShaft(self) -> 'vtkPolyData': ... + def GetUserDefinedTip(self) -> 'vtkPolyData': ... + def GetXAxisCaptionActor2D(self) -> 'vtkCaptionActor2D': ... + def GetXAxisLabelText(self) -> str: ... + def GetXAxisShaftProperty(self) -> 'vtkProperty': ... + def GetXAxisTipProperty(self) -> 'vtkProperty': ... + def GetYAxisCaptionActor2D(self) -> 'vtkCaptionActor2D': ... + def GetYAxisLabelText(self) -> str: ... + def GetYAxisShaftProperty(self) -> 'vtkProperty': ... + def GetYAxisTipProperty(self) -> 'vtkProperty': ... + def GetZAxisCaptionActor2D(self) -> 'vtkCaptionActor2D': ... + def GetZAxisLabelText(self) -> str: ... + def GetZAxisShaftProperty(self) -> 'vtkProperty': ... + def GetZAxisTipProperty(self) -> 'vtkProperty': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAxesActor': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAxesActor': ... + def SetAxisLabels(self, _arg:int) -> None: ... + def SetConeRadius(self, _arg:float) -> None: ... + def SetConeResolution(self, _arg:int) -> None: ... + def SetCylinderRadius(self, _arg:float) -> None: ... + def SetCylinderResolution(self, _arg:int) -> None: ... + @overload + def SetNormalizedLabelPosition(self, v:MutableSequence[float]) -> None: ... + @overload + def SetNormalizedLabelPosition(self, x:float, y:float, z:float) -> None: ... + @overload + def SetNormalizedShaftLength(self, v:MutableSequence[float]) -> None: ... + @overload + def SetNormalizedShaftLength(self, x:float, y:float, z:float) -> None: ... + @overload + def SetNormalizedTipLength(self, v:MutableSequence[float]) -> None: ... + @overload + def SetNormalizedTipLength(self, x:float, y:float, z:float) -> None: ... + def SetShaftType(self, type:int) -> None: ... + def SetShaftTypeToCylinder(self) -> None: ... + def SetShaftTypeToLine(self) -> None: ... + def SetShaftTypeToUserDefined(self) -> None: ... + def SetSphereRadius(self, _arg:float) -> None: ... + def SetSphereResolution(self, _arg:int) -> None: ... + def SetTipType(self, type:int) -> None: ... + def SetTipTypeToCone(self) -> None: ... + def SetTipTypeToSphere(self) -> None: ... + def SetTipTypeToUserDefined(self) -> None: ... + @overload + def SetTotalLength(self, v:MutableSequence[float]) -> None: ... + @overload + def SetTotalLength(self, x:float, y:float, z:float) -> None: ... + def SetUserDefinedShaft(self, __a:'vtkPolyData') -> None: ... + def SetUserDefinedTip(self, __a:'vtkPolyData') -> None: ... + def SetXAxisLabelText(self, _arg:str) -> None: ... + def SetYAxisLabelText(self, _arg:str) -> None: ... + def SetZAxisLabelText(self, _arg:str) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkAxisActor(vtkmodules.vtkRenderingCore.vtkActor): + class AlignLocation(int): ... + class AxisPosition(int): ... + class AxisType(int): ... + class TickLocation(int): ... + VTK_ALIGN_BOTTOM:'AlignLocation' + VTK_ALIGN_POINT1:'AlignLocation' + VTK_ALIGN_POINT2:'AlignLocation' + VTK_ALIGN_TOP:'AlignLocation' + VTK_AXIS_POS_MAXMAX:'AxisPosition' + VTK_AXIS_POS_MAXMIN:'AxisPosition' + VTK_AXIS_POS_MINMAX:'AxisPosition' + VTK_AXIS_POS_MINMIN:'AxisPosition' + VTK_AXIS_TYPE_X:'AxisType' + VTK_AXIS_TYPE_Y:'AxisType' + VTK_AXIS_TYPE_Z:'AxisType' + VTK_TICKS_BOTH:'TickLocation' + VTK_TICKS_INSIDE:'TickLocation' + VTK_TICKS_OUTSIDE:'TickLocation' + axis_base_for_x:'getset_descriptor' + axis_base_for_y:'getset_descriptor' + axis_base_for_z:'getset_descriptor' + axis_lines_property:'getset_descriptor' + axis_main_line_property:'getset_descriptor' + axis_major_ticks_property:'getset_descriptor' + axis_minor_ticks_property:'getset_descriptor' + axis_on_origin:'getset_descriptor' + axis_position:'getset_descriptor' + axis_type:'getset_descriptor' + axis_visibility:'getset_descriptor' + bounds:'getset_descriptor' + calculate_label_offset:'getset_descriptor' + calculate_title_offset:'getset_descriptor' + camera:'getset_descriptor' + delta_minor:'getset_descriptor' + delta_range_major:'getset_descriptor' + delta_range_minor:'getset_descriptor' + draw_gridlines:'getset_descriptor' + draw_gridlines_location:'getset_descriptor' + draw_gridpolys:'getset_descriptor' + draw_inner_gridlines:'getset_descriptor' + exponent:'getset_descriptor' + exponent_actor:'getset_descriptor' + exponent_location:'getset_descriptor' + exponent_offset:'getset_descriptor' + exponent_prop3d:'getset_descriptor' + exponent_scale:'getset_descriptor' + exponent_visibility:'getset_descriptor' + gridline_x_length:'getset_descriptor' + gridline_y_length:'getset_descriptor' + gridline_z_length:'getset_descriptor' + gridlines_property:'getset_descriptor' + gridpolys_property:'getset_descriptor' + horizontal_offset_y_title2d:'getset_descriptor' + inner_gridlines_property:'getset_descriptor' + label_format:'getset_descriptor' + label_offset:'getset_descriptor' + label_scale:'getset_descriptor' + label_text_property:'getset_descriptor' + label_visibility:'getset_descriptor' + labels:'getset_descriptor' + last_major_tick_point_correction:'getset_descriptor' + log:'getset_descriptor' + major_range_start:'getset_descriptor' + major_tick_size:'getset_descriptor' + minor_range_start:'getset_descriptor' + minor_start:'getset_descriptor' + minor_tick_size:'getset_descriptor' + minor_ticks_visible:'getset_descriptor' + number_of_label_follower3d:'getset_descriptor' + number_of_labels_built:'getset_descriptor' + point1:'getset_descriptor' + point1_coordinate:'getset_descriptor' + point2:'getset_descriptor' + point2_coordinate:'getset_descriptor' + range:'getset_descriptor' + save_title_position:'getset_descriptor' + screen_size:'getset_descriptor' + tick_location:'getset_descriptor' + tick_visibility:'getset_descriptor' + title:'getset_descriptor' + title_actor:'getset_descriptor' + title_align_location:'getset_descriptor' + title_offset:'getset_descriptor' + title_prop3d:'getset_descriptor' + title_scale:'getset_descriptor' + title_text_property:'getset_descriptor' + title_visibility:'getset_descriptor' + use2d_mode:'getset_descriptor' + use_text_actor3d:'getset_descriptor' + vertical_offset_x_title2d:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AxisVisibilityOff(self) -> None: ... + def AxisVisibilityOn(self) -> None: ... + def BuildAxis(self, viewport:'vtkViewport', __b:bool) -> None: ... + def CalculateLabelOffsetOff(self) -> None: ... + def CalculateLabelOffsetOn(self) -> None: ... + def CalculateTitleOffsetOff(self) -> None: ... + def CalculateTitleOffsetOn(self) -> None: ... + @overload + def ComputeMaxLabelLength(self, __a:Sequence[float]) -> float: ... + @overload + def ComputeMaxLabelLength(self) -> float: ... + @overload + def ComputeTitleLength(self, __a:Sequence[float]) -> float: ... + @overload + def ComputeTitleLength(self) -> float: ... + def DrawGridlinesOff(self) -> None: ... + def DrawGridlinesOn(self) -> None: ... + def DrawGridlinesOnlyOff(self) -> None: ... + def DrawGridlinesOnlyOn(self) -> None: ... + def DrawGridpolysOff(self) -> None: ... + def DrawGridpolysOn(self) -> None: ... + def DrawInnerGridlinesOff(self) -> None: ... + def DrawInnerGridlinesOn(self) -> None: ... + def ExponentVisibilityOff(self) -> None: ... + def ExponentVisibilityOn(self) -> None: ... + def GetAxisBaseForX(self) -> Tuple[float, float, float]: ... + def GetAxisBaseForY(self) -> Tuple[float, float, float]: ... + def GetAxisBaseForZ(self) -> Tuple[float, float, float]: ... + def GetAxisLinesProperty(self) -> 'vtkProperty': ... + def GetAxisMainLineProperty(self) -> 'vtkProperty': ... + def GetAxisMajorTicksProperty(self) -> 'vtkProperty': ... + def GetAxisMinorTicksProperty(self) -> 'vtkProperty': ... + def GetAxisOnOrigin(self) -> bool: ... + def GetAxisPosition(self) -> int: ... + def GetAxisPositionMaxValue(self) -> int: ... + def GetAxisPositionMinValue(self) -> int: ... + def GetAxisType(self) -> int: ... + def GetAxisTypeMaxValue(self) -> int: ... + def GetAxisTypeMinValue(self) -> int: ... + def GetAxisVisibility(self) -> bool: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetCalculateLabelOffset(self) -> bool: ... + def GetCalculateTitleOffset(self) -> bool: ... + def GetCamera(self) -> 'vtkCamera': ... + def GetDeltaMajor(self, axis:int) -> float: ... + def GetDeltaMinor(self) -> float: ... + def GetDeltaRangeMajor(self) -> float: ... + def GetDeltaRangeMinor(self) -> float: ... + def GetDrawGridlines(self) -> bool: ... + def GetDrawGridlinesLocation(self) -> int: ... + def GetDrawGridlinesOnly(self) -> bool: ... + def GetDrawGridpolys(self) -> bool: ... + def GetDrawInnerGridlines(self) -> bool: ... + def GetExponent(self) -> str: ... + def GetExponentActor(self) -> 'vtkAxisFollower': ... + def GetExponentLocation(self) -> int: ... + def GetExponentOffset(self) -> float: ... + def GetExponentProp3D(self) -> 'vtkProp3DAxisFollower': ... + def GetExponentVisibility(self) -> bool: ... + def GetGridlineXLength(self) -> float: ... + def GetGridlineYLength(self) -> float: ... + def GetGridlineZLength(self) -> float: ... + def GetGridlinesProperty(self) -> 'vtkProperty': ... + def GetGridpolysProperty(self) -> 'vtkProperty': ... + def GetHorizontalOffsetYTitle2D(self) -> float: ... + def GetInnerGridlinesProperty(self) -> 'vtkProperty': ... + def GetLabelFollower(self, index:int) -> 'vtkAxisFollower': ... + def GetLabelFollower3D(self, index:int) -> 'vtkProp3DAxisFollower': ... + def GetLabelFormat(self) -> str: ... + def GetLabelOffset(self) -> float: ... + def GetLabelTextProperty(self) -> 'vtkTextProperty': ... + def GetLabelVisibility(self) -> bool: ... + def GetLastMajorTickPointCorrection(self) -> bool: ... + def GetLog(self) -> bool: ... + def GetMajorRangeStart(self) -> float: ... + def GetMajorStart(self, axis:int) -> float: ... + def GetMajorTickSize(self) -> float: ... + def GetMinorRangeStart(self) -> float: ... + def GetMinorStart(self) -> float: ... + def GetMinorTickSize(self) -> float: ... + def GetMinorTicksVisible(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLabelFollower3D(self) -> int: ... + def GetNumberOfLabelFollowers(self) -> int: ... + def GetNumberOfLabelsBuilt(self) -> int: ... + def GetPoint1(self) -> Pointer: ... + def GetPoint1Coordinate(self) -> 'vtkCoordinate': ... + def GetPoint2(self) -> Pointer: ... + def GetPoint2Coordinate(self) -> 'vtkCoordinate': ... + def GetRange(self) -> Tuple[float, float]: ... + def GetSaveTitlePosition(self) -> int: ... + def GetScreenSize(self) -> float: ... + def GetTickLocation(self) -> int: ... + def GetTickLocationMaxValue(self) -> int: ... + def GetTickLocationMinValue(self) -> int: ... + def GetTickVisibility(self) -> bool: ... + def GetTitle(self) -> str: ... + def GetTitleActor(self) -> 'vtkAxisFollower': ... + def GetTitleAlignLocation(self) -> int: ... + def GetTitleOffset(self) -> Tuple[float, float]: ... + def GetTitleProp3D(self) -> 'vtkProp3DAxisFollower': ... + def GetTitleTextProperty(self) -> 'vtkTextProperty': ... + def GetTitleVisibility(self) -> bool: ... + def GetUse2DMode(self) -> bool: ... + def GetUseTextActor3D(self) -> bool: ... + def GetVerticalOffsetXTitle2D(self) -> float: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LabelVisibilityOff(self) -> None: ... + def LabelVisibilityOn(self) -> None: ... + def LastMajorTickPointCorrectionOff(self) -> None: ... + def LastMajorTickPointCorrectionOn(self) -> None: ... + def LogOff(self) -> None: ... + def LogOn(self) -> None: ... + def MinorTicksVisibleOff(self) -> None: ... + def MinorTicksVisibleOn(self) -> None: ... + def NewInstance(self) -> 'vtkAxisActor': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAxisActor': ... + @overload + def SetAxisBaseForX(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAxisBaseForX(self, _arg:Sequence[float]) -> None: ... + @overload + def SetAxisBaseForY(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAxisBaseForY(self, _arg:Sequence[float]) -> None: ... + @overload + def SetAxisBaseForZ(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAxisBaseForZ(self, _arg:Sequence[float]) -> None: ... + def SetAxisLinesProperty(self, __a:'vtkProperty') -> None: ... + def SetAxisMainLineProperty(self, __a:'vtkProperty') -> None: ... + def SetAxisMajorTicksProperty(self, __a:'vtkProperty') -> None: ... + def SetAxisMinorTicksProperty(self, __a:'vtkProperty') -> None: ... + def SetAxisOnOrigin(self, _arg:bool) -> None: ... + def SetAxisPosition(self, _arg:int) -> None: ... + def SetAxisPositionToMaxMax(self) -> None: ... + def SetAxisPositionToMaxMin(self) -> None: ... + def SetAxisPositionToMinMax(self) -> None: ... + def SetAxisPositionToMinMin(self) -> None: ... + def SetAxisType(self, _arg:int) -> None: ... + def SetAxisTypeToX(self) -> None: ... + def SetAxisTypeToY(self) -> None: ... + def SetAxisTypeToZ(self) -> None: ... + def SetAxisVisibility(self, _arg:bool) -> None: ... + @overload + def SetBounds(self, bounds:Sequence[float]) -> None: ... + @overload + def SetBounds(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + def SetCalculateLabelOffset(self, _arg:bool) -> None: ... + def SetCalculateTitleOffset(self, _arg:bool) -> None: ... + def SetCamera(self, __a:'vtkCamera') -> None: ... + def SetDeltaMajor(self, axis:int, value:float) -> None: ... + def SetDeltaMinor(self, __a:float) -> None: ... + def SetDeltaRangeMajor(self, _arg:float) -> None: ... + def SetDeltaRangeMinor(self, _arg:float) -> None: ... + def SetDrawGridlines(self, _arg:bool) -> None: ... + def SetDrawGridlinesLocation(self, _arg:int) -> None: ... + def SetDrawGridlinesOnly(self, _arg:bool) -> None: ... + def SetDrawGridpolys(self, _arg:bool) -> None: ... + def SetDrawInnerGridlines(self, _arg:bool) -> None: ... + def SetExponent(self, exp:str) -> None: ... + def SetExponentLocation(self, location:int) -> None: ... + def SetExponentOffset(self, _arg:float) -> None: ... + def SetExponentScale(self, scale:float) -> None: ... + def SetExponentVisibility(self, _arg:bool) -> None: ... + def SetGridlineXLength(self, _arg:float) -> None: ... + def SetGridlineYLength(self, _arg:float) -> None: ... + def SetGridlineZLength(self, _arg:float) -> None: ... + def SetGridlinesProperty(self, __a:'vtkProperty') -> None: ... + def SetGridpolysProperty(self, __a:'vtkProperty') -> None: ... + def SetHorizontalOffsetYTitle2D(self, _arg:float) -> None: ... + def SetInnerGridlinesProperty(self, __a:'vtkProperty') -> None: ... + def SetLabelFormat(self, _arg:str) -> None: ... + def SetLabelOffset(self, _arg:float) -> None: ... + @overload + def SetLabelScale(self, scale:float) -> None: ... + @overload + def SetLabelScale(self, labelIndex:int, scale:float) -> None: ... + def SetLabelTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetLabelVisibility(self, _arg:bool) -> None: ... + def SetLabels(self, labels:'vtkStringArray') -> None: ... + def SetLastMajorTickPointCorrection(self, _arg:bool) -> None: ... + def SetLog(self, _arg:bool) -> None: ... + def SetMajorRangeStart(self, _arg:float) -> None: ... + def SetMajorStart(self, axis:int, value:float) -> None: ... + def SetMajorTickSize(self, _arg:float) -> None: ... + def SetMinorRangeStart(self, _arg:float) -> None: ... + def SetMinorStart(self, __a:float) -> None: ... + def SetMinorTickSize(self, _arg:float) -> None: ... + def SetMinorTicksVisible(self, _arg:bool) -> None: ... + @overload + def SetPoint1(self, x:MutableSequence[float]) -> None: ... + @overload + def SetPoint1(self, x:float, y:float, z:float) -> None: ... + @overload + def SetPoint2(self, x:MutableSequence[float]) -> None: ... + @overload + def SetPoint2(self, x:float, y:float, z:float) -> None: ... + @overload + def SetRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetRange(self, _arg:Sequence[float]) -> None: ... + def SetSaveTitlePosition(self, _arg:int) -> None: ... + def SetScreenSize(self, _arg:float) -> None: ... + def SetTickLocation(self, _arg:int) -> None: ... + def SetTickLocationToBoth(self) -> None: ... + def SetTickLocationToInside(self) -> None: ... + def SetTickLocationToOutside(self) -> None: ... + def SetTickVisibility(self, _arg:bool) -> None: ... + def SetTitle(self, title:str) -> None: ... + def SetTitleAlignLocation(self, location:int) -> None: ... + @overload + def SetTitleOffset(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetTitleOffset(self, _arg:Sequence[float]) -> None: ... + def SetTitleScale(self, scale:float) -> None: ... + def SetTitleTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetTitleVisibility(self, _arg:bool) -> None: ... + def SetUse2DMode(self, _arg:bool) -> None: ... + def SetUseTextActor3D(self, _arg:bool) -> None: ... + def SetVerticalOffsetXTitle2D(self, _arg:float) -> None: ... + def TickVisibilityOff(self) -> None: ... + def TickVisibilityOn(self) -> None: ... + def TitleVisibilityOff(self) -> None: ... + def TitleVisibilityOn(self) -> None: ... + +class vtkAxisActor2D(vtkmodules.vtkRenderingCore.vtkActor2D): + class LabelMax(int): ... + VTK_MAX_LABELS:'LabelMax' + adjust_labels:'getset_descriptor' + adjusted_number_of_labels:'getset_descriptor' + axis_visibility:'getset_descriptor' + font_factor:'getset_descriptor' + label_factor:'getset_descriptor' + label_format:'getset_descriptor' + label_text_property:'getset_descriptor' + label_visibility:'getset_descriptor' + minor_tick_length:'getset_descriptor' + notation:'getset_descriptor' + number_of_labels:'getset_descriptor' + number_of_labels_max_value:'getset_descriptor' + number_of_labels_min_value:'getset_descriptor' + number_of_minor_ticks:'getset_descriptor' + number_of_minor_ticks_max_value:'getset_descriptor' + number_of_minor_ticks_min_value:'getset_descriptor' + point1:'getset_descriptor' + point1_coordinate:'getset_descriptor' + point2:'getset_descriptor' + point2_coordinate:'getset_descriptor' + precision:'getset_descriptor' + range:'getset_descriptor' + ruler_distance:'getset_descriptor' + ruler_mode:'getset_descriptor' + size_font_relative_to_axis:'getset_descriptor' + skip_first_tick:'getset_descriptor' + snap_labels_to_grid:'getset_descriptor' + tick_length:'getset_descriptor' + tick_offset:'getset_descriptor' + tick_positions:'getset_descriptor' + tick_visibility:'getset_descriptor' + title:'getset_descriptor' + title_position:'getset_descriptor' + title_text_property:'getset_descriptor' + title_visibility:'getset_descriptor' + use_font_size_from_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AdjustLabelsOff(self) -> None: ... + def AdjustLabelsOn(self) -> None: ... + def AxisVisibilityOff(self) -> None: ... + def AxisVisibilityOn(self) -> None: ... + @staticmethod + def ComputeRange(inRange:MutableSequence[float], outRange:MutableSequence[float], inNumTicks:int, outNumTicks:int, interval:float) -> None: ... + def GetAdjustLabels(self) -> int: ... + def GetAdjustedNumberOfLabels(self) -> int: ... + @overload + def GetAdjustedRange(self) -> Pointer: ... + @overload + def GetAdjustedRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def GetAdjustedRange(self, _arg:MutableSequence[float]) -> None: ... + def GetAxisVisibility(self) -> int: ... + def GetFontFactor(self) -> float: ... + def GetFontFactorMaxValue(self) -> float: ... + def GetFontFactorMinValue(self) -> float: ... + def GetLabelFactor(self) -> float: ... + def GetLabelFactorMaxValue(self) -> float: ... + def GetLabelFactorMinValue(self) -> float: ... + def GetLabelFormat(self) -> str: ... + def GetLabelTextProperty(self) -> 'vtkTextProperty': ... + def GetLabelVisibility(self) -> int: ... + def GetMinorTickLength(self) -> int: ... + def GetMinorTickLengthMaxValue(self) -> int: ... + def GetMinorTickLengthMinValue(self) -> int: ... + def GetNotation(self) -> int: ... + def GetNotationMaxValue(self) -> int: ... + def GetNotationMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLabels(self) -> int: ... + def GetNumberOfLabelsMaxValue(self) -> int: ... + def GetNumberOfLabelsMinValue(self) -> int: ... + def GetNumberOfMinorTicks(self) -> int: ... + def GetNumberOfMinorTicksMaxValue(self) -> int: ... + def GetNumberOfMinorTicksMinValue(self) -> int: ... + def GetPoint1(self) -> Pointer: ... + def GetPoint1Coordinate(self) -> 'vtkCoordinate': ... + def GetPoint2(self) -> Pointer: ... + def GetPoint2Coordinate(self) -> 'vtkCoordinate': ... + def GetPrecision(self) -> int: ... + def GetPrecisionMaxValue(self) -> int: ... + def GetPrecisionMinValue(self) -> int: ... + def GetRange(self) -> Tuple[float, float]: ... + def GetRulerDistance(self) -> float: ... + def GetRulerDistanceMaxValue(self) -> float: ... + def GetRulerDistanceMinValue(self) -> float: ... + def GetRulerMode(self) -> int: ... + def GetSizeFontRelativeToAxis(self) -> int: ... + def GetSkipFirstTick(self) -> bool: ... + def GetSnapLabelsToGrid(self) -> bool: ... + def GetTickLength(self) -> int: ... + def GetTickLengthMaxValue(self) -> int: ... + def GetTickLengthMinValue(self) -> int: ... + def GetTickOffset(self) -> int: ... + def GetTickOffsetMaxValue(self) -> int: ... + def GetTickOffsetMinValue(self) -> int: ... + def GetTickPositions(self) -> 'vtkPoints': ... + def GetTickVisibility(self) -> int: ... + def GetTitle(self) -> str: ... + def GetTitlePosition(self) -> float: ... + def GetTitleTextProperty(self) -> 'vtkTextProperty': ... + def GetTitleVisibility(self) -> int: ... + def GetUseFontSizeFromProperty(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LabelVisibilityOff(self) -> None: ... + def LabelVisibilityOn(self) -> None: ... + def NewInstance(self) -> 'vtkAxisActor2D': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + def RulerModeOff(self) -> None: ... + def RulerModeOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAxisActor2D': ... + def SetAdjustLabels(self, _arg:int) -> None: ... + def SetAxisVisibility(self, _arg:int) -> None: ... + def SetFontFactor(self, _arg:float) -> None: ... + def SetLabelFactor(self, _arg:float) -> None: ... + def SetLabelFormat(self, _arg:str) -> None: ... + def SetLabelTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetLabelVisibility(self, _arg:int) -> None: ... + def SetMinorTickLength(self, _arg:int) -> None: ... + def SetNotation(self, _arg:int) -> None: ... + def SetNumberOfLabels(self, _arg:int) -> None: ... + def SetNumberOfMinorTicks(self, _arg:int) -> None: ... + @overload + def SetPoint1(self, x:MutableSequence[float]) -> None: ... + @overload + def SetPoint1(self, x:float, y:float) -> None: ... + @overload + def SetPoint2(self, x:MutableSequence[float]) -> None: ... + @overload + def SetPoint2(self, x:float, y:float) -> None: ... + def SetPrecision(self, _arg:int) -> None: ... + @overload + def SetRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetRange(self, _arg:Sequence[float]) -> None: ... + def SetRulerDistance(self, _arg:float) -> None: ... + def SetRulerMode(self, _arg:int) -> None: ... + def SetSizeFontRelativeToAxis(self, _arg:int) -> None: ... + def SetSkipFirstTick(self, _arg:bool) -> None: ... + def SetSnapLabelsToGrid(self, _arg:bool) -> None: ... + def SetTickLength(self, _arg:int) -> None: ... + def SetTickOffset(self, _arg:int) -> None: ... + def SetTickVisibility(self, _arg:int) -> None: ... + def SetTitle(self, _arg:str) -> None: ... + def SetTitlePosition(self, _arg:float) -> None: ... + def SetTitleTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetTitleVisibility(self, _arg:int) -> None: ... + def SetUseFontSizeFromProperty(self, _arg:int) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def SizeFontRelativeToAxisOff(self) -> None: ... + def SizeFontRelativeToAxisOn(self) -> None: ... + def SkipFirstTickOff(self) -> None: ... + def SkipFirstTickOn(self) -> None: ... + def SnapLabelsToGridOff(self) -> None: ... + def SnapLabelsToGridOn(self) -> None: ... + def TickVisibilityOff(self) -> None: ... + def TickVisibilityOn(self) -> None: ... + def TitleVisibilityOff(self) -> None: ... + def TitleVisibilityOn(self) -> None: ... + def UpdateGeometryAndRenderOpaqueGeometry(self, viewport:'vtkViewport', render:bool) -> int: ... + def UseFontSizeFromPropertyOff(self) -> None: ... + def UseFontSizeFromPropertyOn(self) -> None: ... + +class vtkAxisFollower(vtkmodules.vtkRenderingCore.vtkFollower): + auto_center:'getset_descriptor' + axis:'getset_descriptor' + distance_lod_threshold:'getset_descriptor' + enable_distance_lod:'getset_descriptor' + enable_view_angle_lod:'getset_descriptor' + screen_offset:'getset_descriptor' + screen_offset_vector:'getset_descriptor' + view_angle_lod_threshold:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutoCenterOff(self) -> None: ... + def AutoCenterOn(self) -> None: ... + @staticmethod + def AutoScale(viewport:'vtkViewport', camera:'vtkCamera', screenSize:float, position:MutableSequence[float]) -> float: ... + def ComputeMatrix(self) -> None: ... + def ComputeTransformMatrix(self, ren:'vtkRenderer') -> None: ... + def GetAutoCenter(self) -> int: ... + def GetAxis(self) -> 'vtkAxisActor': ... + def GetDistanceLODThreshold(self) -> float: ... + def GetDistanceLODThresholdMaxValue(self) -> float: ... + def GetDistanceLODThresholdMinValue(self) -> float: ... + def GetEnableDistanceLOD(self) -> int: ... + def GetEnableViewAngleLOD(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScreenOffset(self) -> float: ... + def GetScreenOffsetVector(self) -> Tuple[float, float]: ... + def GetViewAngleLODThreshold(self) -> float: ... + def GetViewAngleLODThresholdMaxValue(self) -> float: ... + def GetViewAngleLODThresholdMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAxisFollower': ... + def Render(self, ren:'vtkRenderer') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAxisFollower': ... + def SetAutoCenter(self, _arg:int) -> None: ... + def SetAxis(self, __a:'vtkAxisActor') -> None: ... + def SetDistanceLODThreshold(self, _arg:float) -> None: ... + def SetEnableDistanceLOD(self, _arg:int) -> None: ... + def SetEnableViewAngleLOD(self, _arg:int) -> None: ... + def SetScreenOffset(self, offset:float) -> None: ... + @overload + def SetScreenOffsetVector(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetScreenOffsetVector(self, _arg:Sequence[float]) -> None: ... + def SetViewAngleLODThreshold(self, _arg:float) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkBarChartActor(vtkmodules.vtkRenderingCore.vtkActor2D): + input:'getset_descriptor' + label_text_property:'getset_descriptor' + label_visibility:'getset_descriptor' + legend_actor:'getset_descriptor' + legend_visibility:'getset_descriptor' + title:'getset_descriptor' + title_text_property:'getset_descriptor' + title_visibility:'getset_descriptor' + y_title:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBarColor(self, i:int) -> Pointer: ... + def GetBarLabel(self, i:int) -> str: ... + def GetInput(self) -> 'vtkDataObject': ... + def GetLabelTextProperty(self) -> 'vtkTextProperty': ... + def GetLabelVisibility(self) -> int: ... + def GetLegendActor(self) -> 'vtkLegendBoxActor': ... + def GetLegendVisibility(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTitle(self) -> str: ... + def GetTitleTextProperty(self) -> 'vtkTextProperty': ... + def GetTitleVisibility(self) -> int: ... + def GetYTitle(self) -> str: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LabelVisibilityOff(self) -> None: ... + def LabelVisibilityOn(self) -> None: ... + def LegendVisibilityOff(self) -> None: ... + def LegendVisibilityOn(self) -> None: ... + def NewInstance(self) -> 'vtkBarChartActor': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBarChartActor': ... + @overload + def SetBarColor(self, i:int, r:float, g:float, b:float) -> None: ... + @overload + def SetBarColor(self, i:int, color:Sequence[float]) -> None: ... + def SetBarLabel(self, i:int, __b:str) -> None: ... + def SetInput(self, __a:'vtkDataObject') -> None: ... + def SetLabelTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetLabelVisibility(self, _arg:int) -> None: ... + def SetLegendVisibility(self, _arg:int) -> None: ... + def SetTitle(self, _arg:str) -> None: ... + def SetTitleTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetTitleVisibility(self, _arg:int) -> None: ... + def SetYTitle(self, _arg:str) -> None: ... + def TitleVisibilityOff(self) -> None: ... + def TitleVisibilityOn(self) -> None: ... + +class vtkCaptionActor2D(vtkmodules.vtkRenderingCore.vtkActor2D): + attach_edge_only:'getset_descriptor' + attachment_point:'getset_descriptor' + attachment_point_coordinate:'getset_descriptor' + border:'getset_descriptor' + caption:'getset_descriptor' + caption_text_property:'getset_descriptor' + leader:'getset_descriptor' + leader_glyph:'getset_descriptor' + leader_glyph_connection:'getset_descriptor' + leader_glyph_data:'getset_descriptor' + leader_glyph_size:'getset_descriptor' + maximum_leader_glyph_size:'getset_descriptor' + padding:'getset_descriptor' + text_actor:'getset_descriptor' + three_dimensional_leader:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AttachEdgeOnlyOff(self) -> None: ... + def AttachEdgeOnlyOn(self) -> None: ... + def BorderOff(self) -> None: ... + def BorderOn(self) -> None: ... + def GetAttachEdgeOnly(self) -> int: ... + def GetAttachmentPoint(self) -> Tuple[float, float, float]: ... + def GetAttachmentPointCoordinate(self) -> 'vtkCoordinate': ... + def GetBorder(self) -> int: ... + def GetCaption(self) -> str: ... + def GetCaptionTextProperty(self) -> 'vtkTextProperty': ... + def GetLeader(self) -> int: ... + def GetLeaderGlyph(self) -> 'vtkPolyData': ... + def GetLeaderGlyphSize(self) -> float: ... + def GetLeaderGlyphSizeMaxValue(self) -> float: ... + def GetLeaderGlyphSizeMinValue(self) -> float: ... + def GetMaximumLeaderGlyphSize(self) -> int: ... + def GetMaximumLeaderGlyphSizeMaxValue(self) -> int: ... + def GetMaximumLeaderGlyphSizeMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPadding(self) -> int: ... + def GetPaddingMaxValue(self) -> int: ... + def GetPaddingMinValue(self) -> int: ... + def GetTextActor(self) -> 'vtkTextActor': ... + def GetThreeDimensionalLeader(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LeaderOff(self) -> None: ... + def LeaderOn(self) -> None: ... + def NewInstance(self) -> 'vtkCaptionActor2D': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCaptionActor2D': ... + def SetAttachEdgeOnly(self, _arg:int) -> None: ... + @overload + def SetAttachmentPoint(self, x:MutableSequence[float]) -> None: ... + @overload + def SetAttachmentPoint(self, x:float, y:float, z:float) -> None: ... + def SetBorder(self, _arg:int) -> None: ... + def SetCaption(self, caption:str) -> None: ... + def SetCaptionTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetLeader(self, _arg:int) -> None: ... + def SetLeaderGlyphConnection(self, __a:'vtkAlgorithmOutput') -> None: ... + def SetLeaderGlyphData(self, __a:'vtkPolyData') -> None: ... + def SetLeaderGlyphSize(self, _arg:float) -> None: ... + def SetMaximumLeaderGlyphSize(self, _arg:int) -> None: ... + def SetPadding(self, _arg:int) -> None: ... + def SetThreeDimensionalLeader(self, _arg:int) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def ThreeDimensionalLeaderOff(self) -> None: ... + def ThreeDimensionalLeaderOn(self) -> None: ... + +class vtkConvexHull2D(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class HullShapes(int): ... + BoundingRectangle:'HullShapes' + ConvexHull:'HullShapes' + hull_shape:'getset_descriptor' + m_time:'getset_descriptor' + min_hull_size_in_display:'getset_descriptor' + min_hull_size_in_world:'getset_descriptor' + outline:'getset_descriptor' + renderer:'getset_descriptor' + scale_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def CalculateBoundingRectangle(inPoints:'vtkPoints', outPoints:'vtkPoints', minimumHullSize:float=1.0) -> None: ... + @staticmethod + def CalculateConvexHull(inPoints:'vtkPoints', outPoints:'vtkPoints', minimumHullSize:float=1.0) -> None: ... + def GetHullShape(self) -> int: ... + def GetHullShapeMaxValue(self) -> int: ... + def GetHullShapeMinValue(self) -> int: ... + def GetMTime(self) -> int: ... + def GetMinHullSizeInDisplay(self) -> int: ... + def GetMinHullSizeInDisplayMaxValue(self) -> int: ... + def GetMinHullSizeInDisplayMinValue(self) -> int: ... + def GetMinHullSizeInWorld(self) -> float: ... + def GetMinHullSizeInWorldMaxValue(self) -> float: ... + def GetMinHullSizeInWorldMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutline(self) -> bool: ... + def GetRenderer(self) -> 'vtkRenderer': ... + def GetScaleFactor(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkConvexHull2D': ... + def OutlineOff(self) -> None: ... + def OutlineOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConvexHull2D': ... + def SetHullShape(self, _arg:int) -> None: ... + def SetMinHullSizeInDisplay(self, _arg:int) -> None: ... + def SetMinHullSizeInWorld(self, _arg:float) -> None: ... + def SetOutline(self, _arg:bool) -> None: ... + def SetRenderer(self, renderer:'vtkRenderer') -> None: ... + def SetScaleFactor(self, _arg:float) -> None: ... + +class vtkCornerAnnotation(vtkmodules.vtkRenderingCore.vtkActor2D): + class TextPosition(int): ... + LeftEdge:'TextPosition' + LowerEdge:'TextPosition' + LowerLeft:'TextPosition' + LowerRight:'TextPosition' + NumTextPositions:int + RightEdge:'TextPosition' + UpperEdge:'TextPosition' + UpperLeft:'TextPosition' + UpperRight:'TextPosition' + all_texts:'getset_descriptor' + image_actor:'getset_descriptor' + level_scale:'getset_descriptor' + level_shift:'getset_descriptor' + linear_font_scale_factor:'getset_descriptor' + maximum_font_size:'getset_descriptor' + maximum_line_height:'getset_descriptor' + minimum_font_size:'getset_descriptor' + nonlinear_font_scale_factor:'getset_descriptor' + show_slice_and_image:'getset_descriptor' + text_property:'getset_descriptor' + window_level:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClearAllTexts(self) -> None: ... + def CopyAllTextsFrom(self, ca:'vtkCornerAnnotation') -> None: ... + def GetAllTexts(self) -> Tuple[str, str]: ... + def GetImageActor(self) -> 'vtkImageActor': ... + def GetLevelScale(self) -> float: ... + def GetLevelShift(self) -> float: ... + def GetLinearFontScaleFactor(self) -> float: ... + def GetMaximumFontSize(self) -> int: ... + def GetMaximumLineHeight(self) -> float: ... + def GetMinimumFontSize(self) -> int: ... + def GetNonlinearFontScaleFactor(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShowSliceAndImage(self) -> int: ... + def GetText(self, i:int) -> str: ... + def GetTextProperty(self) -> 'vtkTextProperty': ... + def GetWindowLevel(self) -> 'vtkImageMapToWindowLevelColors': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCornerAnnotation': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCornerAnnotation': ... + def SetAllTexts(self, values:Sequence[str]) -> None: ... + def SetImageActor(self, __a:'vtkImageActor') -> None: ... + def SetLevelScale(self, _arg:float) -> None: ... + def SetLevelShift(self, _arg:float) -> None: ... + def SetLinearFontScaleFactor(self, _arg:float) -> None: ... + def SetMaximumFontSize(self, _arg:int) -> None: ... + def SetMaximumLineHeight(self, _arg:float) -> None: ... + def SetMinimumFontSize(self, _arg:int) -> None: ... + def SetNonlinearFontScaleFactor(self, _arg:float) -> None: ... + def SetShowSliceAndImage(self, _arg:int) -> None: ... + def SetText(self, i:int, text:str) -> None: ... + def SetTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetWindowLevel(self, __a:'vtkImageMapToWindowLevelColors') -> None: ... + def ShowSliceAndImageOff(self) -> None: ... + def ShowSliceAndImageOn(self) -> None: ... + +class vtkCubeAxesActor(vtkmodules.vtkRenderingCore.vtkActor): + class FlyMode(int): ... + class GridVisibility(int): ... + class TickLocation(int): ... + VTK_FLY_CLOSEST_TRIAD:'FlyMode' + VTK_FLY_FURTHEST_TRIAD:'FlyMode' + VTK_FLY_OUTER_EDGES:'FlyMode' + VTK_FLY_STATIC_EDGES:'FlyMode' + VTK_FLY_STATIC_TRIAD:'FlyMode' + VTK_GRID_LINES_ALL:'GridVisibility' + VTK_GRID_LINES_CLOSEST:'GridVisibility' + VTK_GRID_LINES_FURTHEST:'GridVisibility' + VTK_TICKS_BOTH:'TickLocation' + VTK_TICKS_INSIDE:'TickLocation' + VTK_TICKS_OUTSIDE:'TickLocation' + axis_base_for_x:'getset_descriptor' + axis_base_for_y:'getset_descriptor' + axis_base_for_z:'getset_descriptor' + axis_origin:'getset_descriptor' + bounds:'getset_descriptor' + camera:'getset_descriptor' + center_sticky_axes:'getset_descriptor' + corner_offset:'getset_descriptor' + distance_lod_threshold:'getset_descriptor' + draw_x_gridlines:'getset_descriptor' + draw_x_gridpolys:'getset_descriptor' + draw_x_inner_gridlines:'getset_descriptor' + draw_y_gridlines:'getset_descriptor' + draw_y_gridpolys:'getset_descriptor' + draw_y_inner_gridlines:'getset_descriptor' + draw_z_gridlines:'getset_descriptor' + draw_z_gridpolys:'getset_descriptor' + draw_z_inner_gridlines:'getset_descriptor' + enable_distance_lod:'getset_descriptor' + enable_view_angle_lod:'getset_descriptor' + fly_mode:'getset_descriptor' + grid_line_location:'getset_descriptor' + inertia:'getset_descriptor' + label_offset:'getset_descriptor' + oriented_bounds:'getset_descriptor' + rebuild_axes:'getset_descriptor' + save_title_position:'getset_descriptor' + screen_size:'getset_descriptor' + sticky_axes:'getset_descriptor' + tick_location:'getset_descriptor' + title_offset:'getset_descriptor' + use2d_mode:'getset_descriptor' + use_axis_origin:'getset_descriptor' + use_oriented_bounds:'getset_descriptor' + use_text_actor3d:'getset_descriptor' + view_angle_lod_threshold:'getset_descriptor' + x_axes_gridlines_property:'getset_descriptor' + x_axes_gridpolys_property:'getset_descriptor' + x_axes_inner_gridlines_property:'getset_descriptor' + x_axes_label_property:'getset_descriptor' + x_axes_lines_property:'getset_descriptor' + x_axes_title_property:'getset_descriptor' + x_axis_label_visibility:'getset_descriptor' + x_axis_minor_tick_visibility:'getset_descriptor' + x_axis_range:'getset_descriptor' + x_axis_tick_visibility:'getset_descriptor' + x_axis_visibility:'getset_descriptor' + x_label_format:'getset_descriptor' + x_title:'getset_descriptor' + x_units:'getset_descriptor' + y_axes_gridlines_property:'getset_descriptor' + y_axes_gridpolys_property:'getset_descriptor' + y_axes_inner_gridlines_property:'getset_descriptor' + y_axes_label_property:'getset_descriptor' + y_axes_lines_property:'getset_descriptor' + y_axes_title_property:'getset_descriptor' + y_axis_label_visibility:'getset_descriptor' + y_axis_minor_tick_visibility:'getset_descriptor' + y_axis_range:'getset_descriptor' + y_axis_tick_visibility:'getset_descriptor' + y_axis_visibility:'getset_descriptor' + y_label_format:'getset_descriptor' + y_title:'getset_descriptor' + y_units:'getset_descriptor' + z_axes_gridlines_property:'getset_descriptor' + z_axes_gridpolys_property:'getset_descriptor' + z_axes_inner_gridlines_property:'getset_descriptor' + z_axes_label_property:'getset_descriptor' + z_axes_lines_property:'getset_descriptor' + z_axes_title_property:'getset_descriptor' + z_axis_label_visibility:'getset_descriptor' + z_axis_minor_tick_visibility:'getset_descriptor' + z_axis_range:'getset_descriptor' + z_axis_tick_visibility:'getset_descriptor' + z_axis_visibility:'getset_descriptor' + z_label_format:'getset_descriptor' + z_title:'getset_descriptor' + z_units:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CenterStickyAxesOff(self) -> None: ... + def CenterStickyAxesOn(self) -> None: ... + def DrawXGridlinesOff(self) -> None: ... + def DrawXGridlinesOn(self) -> None: ... + def DrawXGridpolysOff(self) -> None: ... + def DrawXGridpolysOn(self) -> None: ... + def DrawXInnerGridlinesOff(self) -> None: ... + def DrawXInnerGridlinesOn(self) -> None: ... + def DrawYGridlinesOff(self) -> None: ... + def DrawYGridlinesOn(self) -> None: ... + def DrawYGridpolysOff(self) -> None: ... + def DrawYGridpolysOn(self) -> None: ... + def DrawYInnerGridlinesOff(self) -> None: ... + def DrawYInnerGridlinesOn(self) -> None: ... + def DrawZGridlinesOff(self) -> None: ... + def DrawZGridlinesOn(self) -> None: ... + def DrawZGridpolysOff(self) -> None: ... + def DrawZGridpolysOn(self) -> None: ... + def DrawZInnerGridlinesOff(self) -> None: ... + def DrawZInnerGridlinesOn(self) -> None: ... + def GetAxisBaseForX(self) -> Tuple[float, float, float]: ... + def GetAxisBaseForY(self) -> Tuple[float, float, float]: ... + def GetAxisBaseForZ(self) -> Tuple[float, float, float]: ... + def GetAxisLabels(self, axis:int) -> 'vtkStringArray': ... + def GetAxisOrigin(self) -> Tuple[float, float, float]: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetCamera(self) -> 'vtkCamera': ... + def GetCenterStickyAxes(self) -> bool: ... + def GetCornerOffset(self) -> float: ... + def GetDistanceLODThreshold(self) -> float: ... + def GetDistanceLODThresholdMaxValue(self) -> float: ... + def GetDistanceLODThresholdMinValue(self) -> float: ... + def GetDrawXGridlines(self) -> bool: ... + def GetDrawXGridpolys(self) -> bool: ... + def GetDrawXInnerGridlines(self) -> bool: ... + def GetDrawYGridlines(self) -> bool: ... + def GetDrawYGridpolys(self) -> bool: ... + def GetDrawYInnerGridlines(self) -> bool: ... + def GetDrawZGridlines(self) -> bool: ... + def GetDrawZGridpolys(self) -> bool: ... + def GetDrawZInnerGridlines(self) -> bool: ... + def GetEnableDistanceLOD(self) -> bool: ... + def GetEnableViewAngleLOD(self) -> bool: ... + def GetFlyMode(self) -> int: ... + def GetFlyModeMaxValue(self) -> int: ... + def GetFlyModeMinValue(self) -> int: ... + def GetGridLineLocation(self) -> int: ... + def GetInertia(self) -> int: ... + def GetInertiaMaxValue(self) -> int: ... + def GetInertiaMinValue(self) -> int: ... + def GetLabelOffset(self) -> float: ... + def GetLabelTextProperty(self, __a:int) -> 'vtkTextProperty': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientedBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetRebuildAxes(self) -> bool: ... + @overload + def GetRenderedBounds(self, rBounds:MutableSequence[float]) -> None: ... + @overload + def GetRenderedBounds(self) -> Pointer: ... + def GetScreenSize(self) -> float: ... + def GetStickyAxes(self) -> bool: ... + def GetTickLocation(self) -> int: ... + def GetTickLocationMaxValue(self) -> int: ... + def GetTickLocationMinValue(self) -> int: ... + def GetTitleOffset(self) -> Tuple[float, float]: ... + def GetTitleTextProperty(self, __a:int) -> 'vtkTextProperty': ... + def GetUse2DMode(self) -> bool: ... + def GetUseAxisOrigin(self) -> bool: ... + def GetUseOrientedBounds(self) -> bool: ... + def GetUseTextActor3D(self) -> bool: ... + def GetViewAngleLODThreshold(self) -> float: ... + def GetViewAngleLODThresholdMaxValue(self) -> float: ... + def GetViewAngleLODThresholdMinValue(self) -> float: ... + def GetXAxesGridlinesProperty(self) -> 'vtkProperty': ... + def GetXAxesGridpolysProperty(self) -> 'vtkProperty': ... + def GetXAxesInnerGridlinesProperty(self) -> 'vtkProperty': ... + def GetXAxesLabelProperty(self) -> 'vtkTextProperty': ... + def GetXAxesLinesProperty(self) -> 'vtkProperty': ... + def GetXAxesTitleProperty(self) -> 'vtkTextProperty': ... + def GetXAxisLabelVisibility(self) -> bool: ... + def GetXAxisMinorTickVisibility(self) -> bool: ... + def GetXAxisRange(self) -> Tuple[float, float]: ... + def GetXAxisTickVisibility(self) -> bool: ... + def GetXAxisVisibility(self) -> bool: ... + def GetXLabelFormat(self) -> str: ... + def GetXTitle(self) -> str: ... + def GetXUnits(self) -> str: ... + def GetYAxesGridlinesProperty(self) -> 'vtkProperty': ... + def GetYAxesGridpolysProperty(self) -> 'vtkProperty': ... + def GetYAxesInnerGridlinesProperty(self) -> 'vtkProperty': ... + def GetYAxesLabelProperty(self) -> 'vtkTextProperty': ... + def GetYAxesLinesProperty(self) -> 'vtkProperty': ... + def GetYAxesTitleProperty(self) -> 'vtkTextProperty': ... + def GetYAxisLabelVisibility(self) -> bool: ... + def GetYAxisMinorTickVisibility(self) -> bool: ... + def GetYAxisRange(self) -> Tuple[float, float]: ... + def GetYAxisTickVisibility(self) -> bool: ... + def GetYAxisVisibility(self) -> bool: ... + def GetYLabelFormat(self) -> str: ... + def GetYTitle(self) -> str: ... + def GetYUnits(self) -> str: ... + def GetZAxesGridlinesProperty(self) -> 'vtkProperty': ... + def GetZAxesGridpolysProperty(self) -> 'vtkProperty': ... + def GetZAxesInnerGridlinesProperty(self) -> 'vtkProperty': ... + def GetZAxesLabelProperty(self) -> 'vtkTextProperty': ... + def GetZAxesLinesProperty(self) -> 'vtkProperty': ... + def GetZAxesTitleProperty(self) -> 'vtkTextProperty': ... + def GetZAxisLabelVisibility(self) -> bool: ... + def GetZAxisMinorTickVisibility(self) -> bool: ... + def GetZAxisRange(self) -> Tuple[float, float]: ... + def GetZAxisTickVisibility(self) -> bool: ... + def GetZAxisVisibility(self) -> bool: ... + def GetZLabelFormat(self) -> str: ... + def GetZTitle(self) -> str: ... + def GetZUnits(self) -> str: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCubeAxesActor': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCubeAxesActor': ... + @overload + def SetAxisBaseForX(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAxisBaseForX(self, _arg:Sequence[float]) -> None: ... + @overload + def SetAxisBaseForY(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAxisBaseForY(self, _arg:Sequence[float]) -> None: ... + @overload + def SetAxisBaseForZ(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAxisBaseForZ(self, _arg:Sequence[float]) -> None: ... + def SetAxisLabels(self, axis:int, value:'vtkStringArray') -> None: ... + @overload + def SetAxisOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAxisOrigin(self, _arg:Sequence[float]) -> None: ... + @overload + def SetBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetBounds(self, _arg:Sequence[float]) -> None: ... + def SetCamera(self, __a:'vtkCamera') -> None: ... + def SetCenterStickyAxes(self, _arg:bool) -> None: ... + def SetCornerOffset(self, _arg:float) -> None: ... + def SetDistanceLODThreshold(self, _arg:float) -> None: ... + def SetDrawXGridlines(self, _arg:bool) -> None: ... + def SetDrawXGridpolys(self, _arg:bool) -> None: ... + def SetDrawXInnerGridlines(self, _arg:bool) -> None: ... + def SetDrawYGridlines(self, _arg:bool) -> None: ... + def SetDrawYGridpolys(self, _arg:bool) -> None: ... + def SetDrawYInnerGridlines(self, _arg:bool) -> None: ... + def SetDrawZGridlines(self, _arg:bool) -> None: ... + def SetDrawZGridpolys(self, _arg:bool) -> None: ... + def SetDrawZInnerGridlines(self, _arg:bool) -> None: ... + def SetEnableDistanceLOD(self, _arg:bool) -> None: ... + def SetEnableViewAngleLOD(self, _arg:bool) -> None: ... + def SetFlyMode(self, _arg:int) -> None: ... + def SetFlyModeToClosestTriad(self) -> None: ... + def SetFlyModeToFurthestTriad(self) -> None: ... + def SetFlyModeToOuterEdges(self) -> None: ... + def SetFlyModeToStaticEdges(self) -> None: ... + def SetFlyModeToStaticTriad(self) -> None: ... + def SetGridLineLocation(self, _arg:int) -> None: ... + def SetInertia(self, _arg:int) -> None: ... + def SetLabelOffset(self, offset:float) -> None: ... + def SetLabelScaling(self, __a:bool, __b:int, __c:int, __d:int) -> None: ... + @overload + def SetOrientedBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetOrientedBounds(self, _arg:Sequence[float]) -> None: ... + def SetRebuildAxes(self, _arg:bool) -> None: ... + def SetSaveTitlePosition(self, val:int) -> None: ... + def SetScreenSize(self, screenSize:float) -> None: ... + def SetStickyAxes(self, _arg:bool) -> None: ... + def SetTickLocation(self, _arg:int) -> None: ... + def SetTickLocationToBoth(self) -> None: ... + def SetTickLocationToInside(self) -> None: ... + def SetTickLocationToOutside(self) -> None: ... + def SetTitleOffset(self, titleOffset:MutableSequence[float]) -> None: ... + def SetUse2DMode(self, enable:bool) -> None: ... + def SetUseAxisOrigin(self, _arg:bool) -> None: ... + def SetUseOrientedBounds(self, _arg:bool) -> None: ... + def SetUseTextActor3D(self, enable:bool) -> None: ... + def SetViewAngleLODThreshold(self, _arg:float) -> None: ... + def SetXAxesGridlinesProperty(self, __a:'vtkProperty') -> None: ... + def SetXAxesGridpolysProperty(self, __a:'vtkProperty') -> None: ... + def SetXAxesInnerGridlinesProperty(self, __a:'vtkProperty') -> None: ... + def SetXAxesLabelProperty(self, __a:'vtkTextProperty') -> None: ... + def SetXAxesLinesProperty(self, __a:'vtkProperty') -> None: ... + def SetXAxesTitleProperty(self, __a:'vtkTextProperty') -> None: ... + def SetXAxisLabelVisibility(self, _arg:bool) -> None: ... + def SetXAxisMinorTickVisibility(self, _arg:bool) -> None: ... + @overload + def SetXAxisRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetXAxisRange(self, _arg:Sequence[float]) -> None: ... + def SetXAxisTickVisibility(self, _arg:bool) -> None: ... + def SetXAxisVisibility(self, _arg:bool) -> None: ... + def SetXLabelFormat(self, _arg:str) -> None: ... + def SetXTitle(self, _arg:str) -> None: ... + def SetXUnits(self, _arg:str) -> None: ... + def SetYAxesGridlinesProperty(self, __a:'vtkProperty') -> None: ... + def SetYAxesGridpolysProperty(self, __a:'vtkProperty') -> None: ... + def SetYAxesInnerGridlinesProperty(self, __a:'vtkProperty') -> None: ... + def SetYAxesLabelProperty(self, __a:'vtkTextProperty') -> None: ... + def SetYAxesLinesProperty(self, __a:'vtkProperty') -> None: ... + def SetYAxesTitleProperty(self, __a:'vtkTextProperty') -> None: ... + def SetYAxisLabelVisibility(self, _arg:bool) -> None: ... + def SetYAxisMinorTickVisibility(self, _arg:bool) -> None: ... + @overload + def SetYAxisRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetYAxisRange(self, _arg:Sequence[float]) -> None: ... + def SetYAxisTickVisibility(self, _arg:bool) -> None: ... + def SetYAxisVisibility(self, _arg:bool) -> None: ... + def SetYLabelFormat(self, _arg:str) -> None: ... + def SetYTitle(self, _arg:str) -> None: ... + def SetYUnits(self, _arg:str) -> None: ... + def SetZAxesGridlinesProperty(self, __a:'vtkProperty') -> None: ... + def SetZAxesGridpolysProperty(self, __a:'vtkProperty') -> None: ... + def SetZAxesInnerGridlinesProperty(self, __a:'vtkProperty') -> None: ... + def SetZAxesLabelProperty(self, __a:'vtkTextProperty') -> None: ... + def SetZAxesLinesProperty(self, __a:'vtkProperty') -> None: ... + def SetZAxesTitleProperty(self, __a:'vtkTextProperty') -> None: ... + def SetZAxisLabelVisibility(self, _arg:bool) -> None: ... + def SetZAxisMinorTickVisibility(self, _arg:bool) -> None: ... + @overload + def SetZAxisRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetZAxisRange(self, _arg:Sequence[float]) -> None: ... + def SetZAxisTickVisibility(self, _arg:bool) -> None: ... + def SetZAxisVisibility(self, _arg:bool) -> None: ... + def SetZLabelFormat(self, _arg:str) -> None: ... + def SetZTitle(self, _arg:str) -> None: ... + def SetZUnits(self, _arg:str) -> None: ... + def StickyAxesOff(self) -> None: ... + def StickyAxesOn(self) -> None: ... + def XAxisLabelVisibilityOff(self) -> None: ... + def XAxisLabelVisibilityOn(self) -> None: ... + def XAxisMinorTickVisibilityOff(self) -> None: ... + def XAxisMinorTickVisibilityOn(self) -> None: ... + def XAxisTickVisibilityOff(self) -> None: ... + def XAxisTickVisibilityOn(self) -> None: ... + def XAxisVisibilityOff(self) -> None: ... + def XAxisVisibilityOn(self) -> None: ... + def YAxisLabelVisibilityOff(self) -> None: ... + def YAxisLabelVisibilityOn(self) -> None: ... + def YAxisMinorTickVisibilityOff(self) -> None: ... + def YAxisMinorTickVisibilityOn(self) -> None: ... + def YAxisTickVisibilityOff(self) -> None: ... + def YAxisTickVisibilityOn(self) -> None: ... + def YAxisVisibilityOff(self) -> None: ... + def YAxisVisibilityOn(self) -> None: ... + def ZAxisLabelVisibilityOff(self) -> None: ... + def ZAxisLabelVisibilityOn(self) -> None: ... + def ZAxisMinorTickVisibilityOff(self) -> None: ... + def ZAxisMinorTickVisibilityOn(self) -> None: ... + def ZAxisTickVisibilityOff(self) -> None: ... + def ZAxisTickVisibilityOn(self) -> None: ... + def ZAxisVisibilityOff(self) -> None: ... + def ZAxisVisibilityOn(self) -> None: ... + +class vtkCubeAxesActor2D(vtkmodules.vtkRenderingCore.vtkActor2D): + class FlyMode(int): ... + VTK_FLY_CLOSEST_TRIAD:'FlyMode' + VTK_FLY_NONE:'FlyMode' + VTK_FLY_OUTER_EDGES:'FlyMode' + axis_label_text_property:'getset_descriptor' + axis_title_text_property:'getset_descriptor' + bounds:'getset_descriptor' + camera:'getset_descriptor' + corner_offset:'getset_descriptor' + fly_mode:'getset_descriptor' + font_factor:'getset_descriptor' + inertia:'getset_descriptor' + input:'getset_descriptor' + input_connection:'getset_descriptor' + input_data:'getset_descriptor' + label_format:'getset_descriptor' + number_of_labels:'getset_descriptor' + number_of_labels_max_value:'getset_descriptor' + number_of_labels_min_value:'getset_descriptor' + ranges:'getset_descriptor' + scaling:'getset_descriptor' + show_actual_bounds:'getset_descriptor' + use_ranges:'getset_descriptor' + view_prop:'getset_descriptor' + x_axis_actor2d:'getset_descriptor' + x_axis_visibility:'getset_descriptor' + x_label:'getset_descriptor' + x_origin:'getset_descriptor' + y_axis_actor2d:'getset_descriptor' + y_axis_visibility:'getset_descriptor' + y_label:'getset_descriptor' + y_origin:'getset_descriptor' + z_axis_actor2d:'getset_descriptor' + z_axis_visibility:'getset_descriptor' + z_label:'getset_descriptor' + z_origin:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAxisLabelTextProperty(self) -> 'vtkTextProperty': ... + def GetAxisTitleTextProperty(self) -> 'vtkTextProperty': ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetCamera(self) -> 'vtkCamera': ... + def GetCornerOffset(self) -> float: ... + def GetFlyMode(self) -> int: ... + def GetFlyModeMaxValue(self) -> int: ... + def GetFlyModeMinValue(self) -> int: ... + def GetFontFactor(self) -> float: ... + def GetFontFactorMaxValue(self) -> float: ... + def GetFontFactorMinValue(self) -> float: ... + def GetInertia(self) -> int: ... + def GetInertiaMaxValue(self) -> int: ... + def GetInertiaMinValue(self) -> int: ... + def GetInput(self) -> 'vtkDataSet': ... + def GetLabelFormat(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLabels(self) -> int: ... + def GetNumberOfLabelsMaxValue(self) -> int: ... + def GetNumberOfLabelsMinValue(self) -> int: ... + @overload + def GetRanges(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetRanges(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @overload + def GetRanges(self, ranges:MutableSequence[float]) -> None: ... + def GetScaling(self) -> int: ... + def GetShowActualBounds(self) -> int: ... + def GetShowActualBoundsMaxValue(self) -> int: ... + def GetShowActualBoundsMinValue(self) -> int: ... + def GetUseRanges(self) -> int: ... + def GetViewProp(self) -> 'vtkProp': ... + def GetXAxisActor2D(self) -> 'vtkAxisActor2D': ... + def GetXAxisVisibility(self) -> int: ... + def GetXLabel(self) -> str: ... + def GetYAxisActor2D(self) -> 'vtkAxisActor2D': ... + def GetYAxisVisibility(self) -> int: ... + def GetYLabel(self) -> str: ... + def GetZAxisActor2D(self) -> 'vtkAxisActor2D': ... + def GetZAxisVisibility(self) -> int: ... + def GetZLabel(self) -> str: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCubeAxesActor2D': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCubeAxesActor2D': ... + def ScalingOff(self) -> None: ... + def ScalingOn(self) -> None: ... + def SetAxisLabelTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetAxisTitleTextProperty(self, p:'vtkTextProperty') -> None: ... + @overload + def SetBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetBounds(self, _arg:Sequence[float]) -> None: ... + def SetCamera(self, __a:'vtkCamera') -> None: ... + def SetCornerOffset(self, _arg:float) -> None: ... + def SetFlyMode(self, _arg:int) -> None: ... + def SetFlyModeToClosestTriad(self) -> None: ... + def SetFlyModeToNone(self) -> None: ... + def SetFlyModeToOuterEdges(self) -> None: ... + def SetFontFactor(self, _arg:float) -> None: ... + def SetInertia(self, _arg:int) -> None: ... + def SetInputConnection(self, __a:'vtkAlgorithmOutput') -> None: ... + def SetInputData(self, __a:'vtkDataSet') -> None: ... + def SetLabelFormat(self, _arg:str) -> None: ... + def SetNumberOfLabels(self, _arg:int) -> None: ... + @overload + def SetRanges(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetRanges(self, _arg:Sequence[float]) -> None: ... + def SetScaling(self, _arg:int) -> None: ... + def SetShowActualBounds(self, _arg:int) -> None: ... + def SetUseRanges(self, _arg:int) -> None: ... + def SetViewProp(self, prop:'vtkProp') -> None: ... + def SetXAxisVisibility(self, _arg:int) -> None: ... + def SetXLabel(self, _arg:str) -> None: ... + def SetXOrigin(self, _arg:float) -> None: ... + def SetYAxisVisibility(self, _arg:int) -> None: ... + def SetYLabel(self, _arg:str) -> None: ... + def SetYOrigin(self, _arg:float) -> None: ... + def SetZAxisVisibility(self, _arg:int) -> None: ... + def SetZLabel(self, _arg:str) -> None: ... + def SetZOrigin(self, _arg:float) -> None: ... + def ShallowCopy(self, actor:'vtkCubeAxesActor2D') -> None: ... + def UseRangesOff(self) -> None: ... + def UseRangesOn(self) -> None: ... + def XAxisVisibilityOff(self) -> None: ... + def XAxisVisibilityOn(self) -> None: ... + def YAxisVisibilityOff(self) -> None: ... + def YAxisVisibilityOn(self) -> None: ... + def ZAxisVisibilityOff(self) -> None: ... + def ZAxisVisibilityOn(self) -> None: ... + +class vtkGraphAnnotationLayersFilter(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + m_time:'getset_descriptor' + min_hull_size_in_display:'getset_descriptor' + min_hull_size_in_world:'getset_descriptor' + outline:'getset_descriptor' + renderer:'getset_descriptor' + scale_factor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGraphAnnotationLayersFilter': ... + def OutlineOff(self) -> None: ... + def OutlineOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraphAnnotationLayersFilter': ... + def SetHullShapeToBoundingRectangle(self) -> None: ... + def SetHullShapeToConvexHull(self) -> None: ... + def SetMinHullSizeInDisplay(self, size:int) -> None: ... + def SetMinHullSizeInWorld(self, size:float) -> None: ... + def SetOutline(self, b:bool) -> None: ... + def SetRenderer(self, renderer:'vtkRenderer') -> None: ... + def SetScaleFactor(self, scale:float) -> None: ... + +class vtkLeaderActor2D(vtkmodules.vtkRenderingCore.vtkActor2D): + VTK_ARROW_BOTH:int + VTK_ARROW_FILLED:int + VTK_ARROW_HOLLOW:int + VTK_ARROW_NONE:int + VTK_ARROW_OPEN:int + VTK_ARROW_POINT1:int + VTK_ARROW_POINT2:int + angle:'getset_descriptor' + arrow_length:'getset_descriptor' + arrow_placement:'getset_descriptor' + arrow_style:'getset_descriptor' + arrow_width:'getset_descriptor' + auto_label:'getset_descriptor' + label:'getset_descriptor' + label_factor:'getset_descriptor' + label_format:'getset_descriptor' + label_text_property:'getset_descriptor' + length:'getset_descriptor' + maximum_arrow_size:'getset_descriptor' + minimum_arrow_size:'getset_descriptor' + radius:'getset_descriptor' + use_font_size_from_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutoLabelOff(self) -> None: ... + def AutoLabelOn(self) -> None: ... + def GetAngle(self) -> float: ... + def GetArrowLength(self) -> float: ... + def GetArrowLengthMaxValue(self) -> float: ... + def GetArrowLengthMinValue(self) -> float: ... + def GetArrowPlacement(self) -> int: ... + def GetArrowPlacementMaxValue(self) -> int: ... + def GetArrowPlacementMinValue(self) -> int: ... + def GetArrowStyle(self) -> int: ... + def GetArrowStyleMaxValue(self) -> int: ... + def GetArrowStyleMinValue(self) -> int: ... + def GetArrowWidth(self) -> float: ... + def GetArrowWidthMaxValue(self) -> float: ... + def GetArrowWidthMinValue(self) -> float: ... + def GetAutoLabel(self) -> int: ... + def GetLabel(self) -> str: ... + def GetLabelFactor(self) -> float: ... + def GetLabelFactorMaxValue(self) -> float: ... + def GetLabelFactorMinValue(self) -> float: ... + def GetLabelFormat(self) -> str: ... + def GetLabelTextProperty(self) -> 'vtkTextProperty': ... + def GetLength(self) -> float: ... + def GetMaximumArrowSize(self) -> float: ... + def GetMaximumArrowSizeMaxValue(self) -> float: ... + def GetMaximumArrowSizeMinValue(self) -> float: ... + def GetMinimumArrowSize(self) -> float: ... + def GetMinimumArrowSizeMaxValue(self) -> float: ... + def GetMinimumArrowSizeMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadius(self) -> float: ... + def GetUseFontSizeFromProperty(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLeaderActor2D': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLeaderActor2D': ... + def SetArrowLength(self, _arg:float) -> None: ... + def SetArrowPlacement(self, _arg:int) -> None: ... + def SetArrowPlacementToBoth(self) -> None: ... + def SetArrowPlacementToNone(self) -> None: ... + def SetArrowPlacementToPoint1(self) -> None: ... + def SetArrowPlacementToPoint2(self) -> None: ... + def SetArrowStyle(self, _arg:int) -> None: ... + def SetArrowStyleToFilled(self) -> None: ... + def SetArrowStyleToHollow(self) -> None: ... + def SetArrowStyleToOpen(self) -> None: ... + def SetArrowWidth(self, _arg:float) -> None: ... + def SetAutoLabel(self, _arg:int) -> None: ... + def SetLabel(self, _arg:str) -> None: ... + def SetLabelFactor(self, _arg:float) -> None: ... + def SetLabelFormat(self, _arg:str) -> None: ... + def SetLabelTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetMaximumArrowSize(self, _arg:float) -> None: ... + def SetMinimumArrowSize(self, _arg:float) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + def SetUseFontSizeFromProperty(self, _arg:int) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def UseFontSizeFromPropertyOff(self) -> None: ... + def UseFontSizeFromPropertyOn(self) -> None: ... + +class vtkLegendBoxActor(vtkmodules.vtkRenderingCore.vtkActor2D): + background_color:'getset_descriptor' + background_opacity:'getset_descriptor' + border:'getset_descriptor' + box:'getset_descriptor' + box_property:'getset_descriptor' + entry_text_property:'getset_descriptor' + lock_border:'getset_descriptor' + number_of_entries:'getset_descriptor' + padding:'getset_descriptor' + scalar_visibility:'getset_descriptor' + use_background:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BorderOff(self) -> None: ... + def BorderOn(self) -> None: ... + def BoxOff(self) -> None: ... + def BoxOn(self) -> None: ... + def GetBackgroundColor(self) -> Tuple[float, float, float]: ... + def GetBackgroundOpacity(self) -> float: ... + def GetBackgroundOpacityMaxValue(self) -> float: ... + def GetBackgroundOpacityMinValue(self) -> float: ... + def GetBorder(self) -> int: ... + def GetBox(self) -> int: ... + def GetBoxProperty(self) -> 'vtkProperty2D': ... + def GetEntryColor(self, i:int) -> Tuple[float, float, float]: ... + def GetEntryIcon(self, i:int) -> 'vtkImageData': ... + def GetEntryString(self, i:int) -> str: ... + def GetEntrySymbol(self, i:int) -> 'vtkPolyData': ... + def GetEntryTextProperty(self) -> 'vtkTextProperty': ... + def GetLockBorder(self) -> int: ... + def GetNumberOfEntries(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPadding(self) -> int: ... + def GetPaddingMaxValue(self) -> int: ... + def GetPaddingMinValue(self) -> int: ... + def GetScalarVisibility(self) -> int: ... + def GetUseBackground(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LockBorderOff(self) -> None: ... + def LockBorderOn(self) -> None: ... + def NewInstance(self) -> 'vtkLegendBoxActor': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLegendBoxActor': ... + def ScalarVisibilityOff(self) -> None: ... + def ScalarVisibilityOn(self) -> None: ... + @overload + def SetBackgroundColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetBackgroundColor(self, _arg:Sequence[float]) -> None: ... + def SetBackgroundOpacity(self, _arg:float) -> None: ... + def SetBorder(self, _arg:int) -> None: ... + def SetBox(self, _arg:int) -> None: ... + @overload + def SetEntry(self, i:int, symbol:'vtkPolyData', string:str, color:MutableSequence[float]) -> None: ... + @overload + def SetEntry(self, i:int, symbol:'vtkImageData', string:str, color:MutableSequence[float]) -> None: ... + @overload + def SetEntry(self, i:int, symbol:'vtkPolyData', icon:'vtkImageData', string:str, color:MutableSequence[float]) -> None: ... + @overload + def SetEntryColor(self, i:int, color:MutableSequence[float]) -> None: ... + @overload + def SetEntryColor(self, i:int, r:float, g:float, b:float) -> None: ... + def SetEntryIcon(self, i:int, icon:'vtkImageData') -> None: ... + def SetEntryString(self, i:int, string:str) -> None: ... + def SetEntrySymbol(self, i:int, symbol:'vtkPolyData') -> None: ... + def SetEntryTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetLockBorder(self, _arg:int) -> None: ... + def SetNumberOfEntries(self, num:int) -> None: ... + def SetPadding(self, _arg:int) -> None: ... + def SetScalarVisibility(self, _arg:int) -> None: ... + def SetUseBackground(self, _arg:int) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def UseBackgroundOff(self) -> None: ... + def UseBackgroundOn(self) -> None: ... + +class vtkLegendScaleActor(vtkmodules.vtkRenderingCore.vtkProp): + class AttributeLocation(int): ... + COORDINATES:'AttributeLocation' + DISTANCE:'AttributeLocation' + XY_COORDINATES:'AttributeLocation' + adjust_labels:'getset_descriptor' + axes_property:'getset_descriptor' + axes_text_property:'getset_descriptor' + bottom_axis:'getset_descriptor' + bottom_axis_visibility:'getset_descriptor' + bottom_border_offset:'getset_descriptor' + corner_offset_factor:'getset_descriptor' + grid_visibility:'getset_descriptor' + label_mode:'getset_descriptor' + left_axis:'getset_descriptor' + left_axis_visibility:'getset_descriptor' + left_border_offset:'getset_descriptor' + legend_label_property:'getset_descriptor' + legend_title_property:'getset_descriptor' + legend_visibility:'getset_descriptor' + notation:'getset_descriptor' + number_of_horizontal_labels:'getset_descriptor' + number_of_vertical_labels:'getset_descriptor' + origin:'getset_descriptor' + precision:'getset_descriptor' + right_axis:'getset_descriptor' + right_axis_visibility:'getset_descriptor' + right_border_offset:'getset_descriptor' + snap_to_grid:'getset_descriptor' + top_axis:'getset_descriptor' + top_axis_visibility:'getset_descriptor' + top_border_offset:'getset_descriptor' + use_font_size_from_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllAnnotationsOff(self) -> None: ... + def AllAnnotationsOn(self) -> None: ... + def AllAxesOff(self) -> None: ... + def AllAxesOn(self) -> None: ... + def BottomAxisVisibilityOff(self) -> None: ... + def BottomAxisVisibilityOn(self) -> None: ... + def BuildRepresentation(self, viewport:'vtkViewport') -> None: ... + def GetActors2D(self, __a:'vtkPropCollection') -> None: ... + def GetAxesProperty(self) -> 'vtkProperty2D': ... + def GetBottomAxis(self) -> 'vtkAxisActor2D': ... + def GetBottomAxisVisibility(self) -> int: ... + def GetBottomBorderOffset(self) -> int: ... + def GetBottomBorderOffsetMaxValue(self) -> int: ... + def GetBottomBorderOffsetMinValue(self) -> int: ... + def GetCornerOffsetFactor(self) -> float: ... + def GetCornerOffsetFactorMaxValue(self) -> float: ... + def GetCornerOffsetFactorMinValue(self) -> float: ... + def GetGridVisibility(self) -> bool: ... + def GetLabelMode(self) -> int: ... + def GetLabelModeMaxValue(self) -> int: ... + def GetLabelModeMinValue(self) -> int: ... + def GetLeftAxis(self) -> 'vtkAxisActor2D': ... + def GetLeftAxisVisibility(self) -> int: ... + def GetLeftBorderOffset(self) -> int: ... + def GetLeftBorderOffsetMaxValue(self) -> int: ... + def GetLeftBorderOffsetMinValue(self) -> int: ... + def GetLegendLabelProperty(self) -> 'vtkTextProperty': ... + def GetLegendTitleProperty(self) -> 'vtkTextProperty': ... + def GetLegendVisibility(self) -> int: ... + def GetNotation(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfHorizontalLabels(self) -> int: ... + def GetNumberOfVerticalLabels(self) -> int: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetPrecision(self) -> int: ... + def GetRightAxis(self) -> 'vtkAxisActor2D': ... + def GetRightAxisVisibility(self) -> int: ... + def GetRightBorderOffset(self) -> int: ... + def GetRightBorderOffsetMaxValue(self) -> int: ... + def GetRightBorderOffsetMinValue(self) -> int: ... + def GetTopAxis(self) -> 'vtkAxisActor2D': ... + def GetTopAxisVisibility(self) -> int: ... + def GetTopBorderOffset(self) -> int: ... + def GetTopBorderOffsetMaxValue(self) -> int: ... + def GetTopBorderOffsetMinValue(self) -> int: ... + def GridVisibilityOff(self) -> None: ... + def GridVisibilityOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LeftAxisVisibilityOff(self) -> None: ... + def LeftAxisVisibilityOn(self) -> None: ... + def LegendVisibilityOff(self) -> None: ... + def LegendVisibilityOn(self) -> None: ... + def NewInstance(self) -> 'vtkLegendScaleActor': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RightAxisVisibilityOff(self) -> None: ... + def RightAxisVisibilityOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLegendScaleActor': ... + def SetAdjustLabels(self, adjust:bool) -> None: ... + def SetAxesProperty(self, property:'vtkProperty2D') -> None: ... + def SetAxesTextProperty(self, property:'vtkTextProperty') -> None: ... + def SetBottomAxisVisibility(self, _arg:int) -> None: ... + def SetBottomBorderOffset(self, _arg:int) -> None: ... + def SetCornerOffsetFactor(self, _arg:float) -> None: ... + def SetGridVisibility(self, _arg:bool) -> None: ... + def SetLabelMode(self, _arg:int) -> None: ... + def SetLabelModeToCoordinates(self) -> None: ... + def SetLabelModeToDistance(self) -> None: ... + def SetLabelModeToXYCoordinates(self) -> None: ... + def SetLeftAxisVisibility(self, _arg:int) -> None: ... + def SetLeftBorderOffset(self, _arg:int) -> None: ... + def SetLegendVisibility(self, _arg:int) -> None: ... + def SetNotation(self, notation:int) -> None: ... + def SetNumberOfHorizontalLabels(self, val:int) -> None: ... + def SetNumberOfVerticalLabels(self, val:int) -> None: ... + @overload + def SetOrigin(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOrigin(self, _arg:Sequence[float]) -> None: ... + def SetPrecision(self, val:int) -> None: ... + def SetRightAxisVisibility(self, _arg:int) -> None: ... + def SetRightBorderOffset(self, _arg:int) -> None: ... + def SetSnapToGrid(self, snap:bool) -> None: ... + def SetTopAxisVisibility(self, _arg:int) -> None: ... + def SetTopBorderOffset(self, _arg:int) -> None: ... + def SetUseFontSizeFromProperty(self, sizeFromProp:bool) -> None: ... + def TopAxisVisibilityOff(self) -> None: ... + def TopAxisVisibilityOn(self) -> None: ... + +class vtkParallelCoordinatesActor(vtkmodules.vtkRenderingCore.vtkActor2D): + independent_variables:'getset_descriptor' + input:'getset_descriptor' + input_connection:'getset_descriptor' + input_data:'getset_descriptor' + label_format:'getset_descriptor' + label_text_property:'getset_descriptor' + number_of_labels:'getset_descriptor' + number_of_labels_max_value:'getset_descriptor' + number_of_labels_min_value:'getset_descriptor' + title:'getset_descriptor' + title_text_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetIndependentVariables(self) -> int: ... + def GetIndependentVariablesMaxValue(self) -> int: ... + def GetIndependentVariablesMinValue(self) -> int: ... + def GetInput(self) -> 'vtkDataObject': ... + def GetLabelFormat(self) -> str: ... + def GetLabelTextProperty(self) -> 'vtkTextProperty': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLabels(self) -> int: ... + def GetNumberOfLabelsMaxValue(self) -> int: ... + def GetNumberOfLabelsMinValue(self) -> int: ... + def GetTitle(self) -> str: ... + def GetTitleTextProperty(self) -> 'vtkTextProperty': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParallelCoordinatesActor': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParallelCoordinatesActor': ... + def SetIndependentVariables(self, _arg:int) -> None: ... + def SetIndependentVariablesToColumns(self) -> None: ... + def SetIndependentVariablesToRows(self) -> None: ... + def SetInputConnection(self, __a:'vtkAlgorithmOutput') -> None: ... + def SetInputData(self, __a:'vtkDataObject') -> None: ... + def SetLabelFormat(self, _arg:str) -> None: ... + def SetLabelTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetNumberOfLabels(self, _arg:int) -> None: ... + def SetTitle(self, _arg:str) -> None: ... + def SetTitleTextProperty(self, p:'vtkTextProperty') -> None: ... + +class vtkPieChartActor(vtkmodules.vtkRenderingCore.vtkActor2D): + input:'getset_descriptor' + input_connection:'getset_descriptor' + input_data:'getset_descriptor' + label_text_property:'getset_descriptor' + label_visibility:'getset_descriptor' + legend_actor:'getset_descriptor' + legend_visibility:'getset_descriptor' + title:'getset_descriptor' + title_text_property:'getset_descriptor' + title_visibility:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInput(self) -> 'vtkDataObject': ... + def GetLabelTextProperty(self) -> 'vtkTextProperty': ... + def GetLabelVisibility(self) -> int: ... + def GetLegendActor(self) -> 'vtkLegendBoxActor': ... + def GetLegendVisibility(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPieceColor(self, i:int) -> Pointer: ... + def GetPieceLabel(self, i:int) -> str: ... + def GetTitle(self) -> str: ... + def GetTitleTextProperty(self) -> 'vtkTextProperty': ... + def GetTitleVisibility(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LabelVisibilityOff(self) -> None: ... + def LabelVisibilityOn(self) -> None: ... + def LegendVisibilityOff(self) -> None: ... + def LegendVisibilityOn(self) -> None: ... + def NewInstance(self) -> 'vtkPieChartActor': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPieChartActor': ... + def SetInputConnection(self, __a:'vtkAlgorithmOutput') -> None: ... + def SetInputData(self, __a:'vtkDataObject') -> None: ... + def SetLabelTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetLabelVisibility(self, _arg:int) -> None: ... + def SetLegendVisibility(self, _arg:int) -> None: ... + @overload + def SetPieceColor(self, i:int, r:float, g:float, b:float) -> None: ... + @overload + def SetPieceColor(self, i:int, color:Sequence[float]) -> None: ... + def SetPieceLabel(self, i:int, __b:str) -> None: ... + def SetTitle(self, _arg:str) -> None: ... + def SetTitleTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetTitleVisibility(self, _arg:int) -> None: ... + def TitleVisibilityOff(self) -> None: ... + def TitleVisibilityOn(self) -> None: ... + +class vtkPolarAxesActor(vtkmodules.vtkRenderingCore.vtkActor): + class ExponentLocation(int): ... + class TitleLocation(int): ... + VTK_EXPONENT_BOTTOM:'ExponentLocation' + VTK_EXPONENT_EXTERN:'ExponentLocation' + VTK_EXPONENT_LABELS:'ExponentLocation' + VTK_TITLE_BOTTOM:'TitleLocation' + VTK_TITLE_EXTERN:'TitleLocation' + arc_major_tick_size:'getset_descriptor' + arc_major_tick_thickness:'getset_descriptor' + arc_minor_tick_visibility:'getset_descriptor' + arc_tick_matches_radial_axes:'getset_descriptor' + arc_tick_ratio_size:'getset_descriptor' + arc_tick_ratio_thickness:'getset_descriptor' + arc_tick_visibility:'getset_descriptor' + arc_ticks_origin_to_polar_axis:'getset_descriptor' + axis_minor_tick_visibility:'getset_descriptor' + axis_tick_matches_polar_axes:'getset_descriptor' + axis_tick_visibility:'getset_descriptor' + bounds:'getset_descriptor' + camera:'getset_descriptor' + delta_angle_major:'getset_descriptor' + delta_angle_minor:'getset_descriptor' + delta_range_major:'getset_descriptor' + delta_range_minor:'getset_descriptor' + distance_lod_threshold:'getset_descriptor' + draw_polar_arcs_gridlines:'getset_descriptor' + draw_radial_gridlines:'getset_descriptor' + enable_distance_lod:'getset_descriptor' + enable_view_angle_lod:'getset_descriptor' + exponent_location:'getset_descriptor' + last_axis_tick_ratio_size:'getset_descriptor' + last_axis_tick_ratio_thickness:'getset_descriptor' + last_radial_axis_major_tick_size:'getset_descriptor' + last_radial_axis_major_tick_thickness:'getset_descriptor' + last_radial_axis_property:'getset_descriptor' + last_radial_axis_text_property:'getset_descriptor' + log:'getset_descriptor' + maximum_angle:'getset_descriptor' + maximum_radius:'getset_descriptor' + minimum_angle:'getset_descriptor' + minimum_radius:'getset_descriptor' + polar_arc_resolution_per_degree:'getset_descriptor' + polar_arcs_property:'getset_descriptor' + polar_arcs_visibility:'getset_descriptor' + polar_axis_label_text_property:'getset_descriptor' + polar_axis_major_tick_size:'getset_descriptor' + polar_axis_major_tick_thickness:'getset_descriptor' + polar_axis_property:'getset_descriptor' + polar_axis_tick_ratio_size:'getset_descriptor' + polar_axis_tick_ratio_thickness:'getset_descriptor' + polar_axis_title:'getset_descriptor' + polar_axis_title_location:'getset_descriptor' + polar_axis_title_text_property:'getset_descriptor' + polar_axis_visibility:'getset_descriptor' + polar_exponent_offset:'getset_descriptor' + polar_label_format:'getset_descriptor' + polar_label_offset:'getset_descriptor' + polar_label_visibility:'getset_descriptor' + polar_tick_visibility:'getset_descriptor' + polar_title_offset:'getset_descriptor' + polar_title_visibility:'getset_descriptor' + pole:'getset_descriptor' + radial_angle_format:'getset_descriptor' + radial_axes_origin_to_polar_axis:'getset_descriptor' + radial_axes_visibility:'getset_descriptor' + radial_axis_title_location:'getset_descriptor' + radial_title_offset:'getset_descriptor' + radial_title_visibility:'getset_descriptor' + radial_units:'getset_descriptor' + range:'getset_descriptor' + ratio:'getset_descriptor' + requested_delta_angle_radial_axes:'getset_descriptor' + requested_delta_range_polar_axes:'getset_descriptor' + requested_number_of_polar_axes:'getset_descriptor' + requested_number_of_radial_axes:'getset_descriptor' + screen_size:'getset_descriptor' + secondary_polar_arcs_property:'getset_descriptor' + secondary_radial_axes_property:'getset_descriptor' + secondary_radial_axes_text_property:'getset_descriptor' + smallest_visible_polar_angle:'getset_descriptor' + tick_location:'getset_descriptor' + tick_ratio_radius_size:'getset_descriptor' + use2d_mode:'getset_descriptor' + view_angle_lod_threshold:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ArcMinorTickVisibilityOff(self) -> None: ... + def ArcMinorTickVisibilityOn(self) -> None: ... + def ArcTickMatchesRadialAxesOff(self) -> None: ... + def ArcTickMatchesRadialAxesOn(self) -> None: ... + def ArcTickVisibilityOff(self) -> None: ... + def ArcTickVisibilityOn(self) -> None: ... + def ArcTicksOriginToPolarAxisOff(self) -> None: ... + def ArcTicksOriginToPolarAxisOn(self) -> None: ... + def AxisMinorTickVisibilityOff(self) -> None: ... + def AxisMinorTickVisibilityOn(self) -> None: ... + def AxisTickMatchesPolarAxesOff(self) -> None: ... + def AxisTickMatchesPolarAxesOn(self) -> None: ... + def AxisTickVisibilityOff(self) -> None: ... + def AxisTickVisibilityOn(self) -> None: ... + def DrawPolarArcsGridlinesOff(self) -> None: ... + def DrawPolarArcsGridlinesOn(self) -> None: ... + def DrawRadialGridlinesOff(self) -> None: ... + def DrawRadialGridlinesOn(self) -> None: ... + def GetArcMajorTickSize(self) -> float: ... + def GetArcMajorTickThickness(self) -> float: ... + def GetArcMinorTickVisibility(self) -> bool: ... + def GetArcTickMatchesRadialAxes(self) -> bool: ... + def GetArcTickRatioSize(self) -> float: ... + def GetArcTickRatioThickness(self) -> float: ... + def GetArcTickVisibility(self) -> bool: ... + def GetArcTicksOriginToPolarAxis(self) -> bool: ... + def GetAxisMinorTickVisibility(self) -> bool: ... + def GetAxisTickMatchesPolarAxes(self) -> bool: ... + def GetAxisTickVisibility(self) -> bool: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetCamera(self) -> 'vtkCamera': ... + def GetDeltaAngleMajor(self) -> float: ... + def GetDeltaAngleMinor(self) -> float: ... + def GetDeltaRangeMajor(self) -> float: ... + def GetDeltaRangeMinor(self) -> float: ... + def GetDistanceLODThreshold(self) -> float: ... + def GetDistanceLODThresholdMaxValue(self) -> float: ... + def GetDistanceLODThresholdMinValue(self) -> float: ... + def GetDrawPolarArcsGridlines(self) -> bool: ... + def GetDrawRadialGridlines(self) -> bool: ... + def GetEnableDistanceLOD(self) -> bool: ... + def GetEnableViewAngleLOD(self) -> bool: ... + def GetExponentLocation(self) -> int: ... + def GetExponentLocationMaxValue(self) -> int: ... + def GetExponentLocationMinValue(self) -> int: ... + def GetLastAxisTickRatioSize(self) -> float: ... + def GetLastAxisTickRatioThickness(self) -> float: ... + def GetLastRadialAxisMajorTickSize(self) -> float: ... + def GetLastRadialAxisMajorTickThickness(self) -> float: ... + def GetLastRadialAxisProperty(self) -> 'vtkProperty': ... + def GetLastRadialAxisTextProperty(self) -> 'vtkTextProperty': ... + def GetLog(self) -> bool: ... + def GetMaximumAngle(self) -> float: ... + def GetMaximumRadius(self) -> float: ... + def GetMinimumAngle(self) -> float: ... + def GetMinimumRadius(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPolarArcResolutionPerDegree(self) -> float: ... + def GetPolarArcResolutionPerDegreeMaxValue(self) -> float: ... + def GetPolarArcResolutionPerDegreeMinValue(self) -> float: ... + def GetPolarArcsProperty(self) -> 'vtkProperty': ... + def GetPolarArcsVisibility(self) -> bool: ... + def GetPolarAxisLabelTextProperty(self) -> 'vtkTextProperty': ... + def GetPolarAxisMajorTickSize(self) -> float: ... + def GetPolarAxisMajorTickThickness(self) -> float: ... + def GetPolarAxisProperty(self) -> 'vtkProperty': ... + def GetPolarAxisTickRatioSize(self) -> float: ... + def GetPolarAxisTickRatioThickness(self) -> float: ... + def GetPolarAxisTitle(self) -> str: ... + def GetPolarAxisTitleLocation(self) -> int: ... + def GetPolarAxisTitleLocationMaxValue(self) -> int: ... + def GetPolarAxisTitleLocationMinValue(self) -> int: ... + def GetPolarAxisTitleTextProperty(self) -> 'vtkTextProperty': ... + def GetPolarAxisVisibility(self) -> bool: ... + def GetPolarExponentOffset(self) -> float: ... + def GetPolarLabelFormat(self) -> str: ... + def GetPolarLabelOffset(self) -> float: ... + def GetPolarLabelVisibility(self) -> bool: ... + def GetPolarTickVisibility(self) -> bool: ... + def GetPolarTitleOffset(self) -> Tuple[float, float]: ... + def GetPolarTitleVisibility(self) -> bool: ... + def GetPole(self) -> Tuple[float, float, float]: ... + def GetRadialAngleFormat(self) -> str: ... + def GetRadialAxesOriginToPolarAxis(self) -> bool: ... + def GetRadialAxesVisibility(self) -> bool: ... + def GetRadialAxisTitleLocation(self) -> int: ... + def GetRadialAxisTitleLocationMaxValue(self) -> int: ... + def GetRadialAxisTitleLocationMinValue(self) -> int: ... + def GetRadialTitleOffset(self) -> Tuple[float, float]: ... + def GetRadialTitleVisibility(self) -> bool: ... + def GetRadialUnits(self) -> bool: ... + def GetRange(self) -> Tuple[float, float]: ... + def GetRatio(self) -> float: ... + def GetRatioMaxValue(self) -> float: ... + def GetRatioMinValue(self) -> float: ... + def GetRequestedDeltaAngleRadialAxes(self) -> float: ... + def GetRequestedDeltaRangePolarAxes(self) -> float: ... + def GetRequestedNumberOfPolarAxes(self) -> int: ... + def GetRequestedNumberOfPolarAxesMaxValue(self) -> int: ... + def GetRequestedNumberOfPolarAxesMinValue(self) -> int: ... + def GetRequestedNumberOfRadialAxes(self) -> int: ... + def GetRequestedNumberOfRadialAxesMaxValue(self) -> int: ... + def GetRequestedNumberOfRadialAxesMinValue(self) -> int: ... + def GetScreenSize(self) -> float: ... + def GetSecondaryPolarArcsProperty(self) -> 'vtkProperty': ... + def GetSecondaryRadialAxesProperty(self) -> 'vtkProperty': ... + def GetSecondaryRadialAxesTextProperty(self) -> 'vtkTextProperty': ... + def GetSmallestVisiblePolarAngle(self) -> float: ... + def GetSmallestVisiblePolarAngleMaxValue(self) -> float: ... + def GetSmallestVisiblePolarAngleMinValue(self) -> float: ... + def GetTickLocation(self) -> int: ... + def GetTickLocationMaxValue(self) -> int: ... + def GetTickLocationMinValue(self) -> int: ... + def GetTickRatioRadiusSize(self) -> float: ... + def GetUse2DMode(self) -> bool: ... + def GetViewAngleLODThreshold(self) -> float: ... + def GetViewAngleLODThresholdMaxValue(self) -> float: ... + def GetViewAngleLODThresholdMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LogOff(self) -> None: ... + def LogOn(self) -> None: ... + def NewInstance(self) -> 'vtkPolarAxesActor': ... + def PolarArcsVisibilityOff(self) -> None: ... + def PolarArcsVisibilityOn(self) -> None: ... + def PolarAxisVisibilityOff(self) -> None: ... + def PolarAxisVisibilityOn(self) -> None: ... + def PolarLabelVisibilityOff(self) -> None: ... + def PolarLabelVisibilityOn(self) -> None: ... + def PolarTickVisibilityOff(self) -> None: ... + def PolarTickVisibilityOn(self) -> None: ... + def PolarTitleVisibilityOff(self) -> None: ... + def PolarTitleVisibilityOn(self) -> None: ... + def RadialAxesOriginToPolarAxisOff(self) -> None: ... + def RadialAxesOriginToPolarAxisOn(self) -> None: ... + def RadialAxesVisibilityOff(self) -> None: ... + def RadialAxesVisibilityOn(self) -> None: ... + def RadialTitleVisibilityOff(self) -> None: ... + def RadialTitleVisibilityOn(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolarAxesActor': ... + def SetArcMajorTickSize(self, _arg:float) -> None: ... + def SetArcMajorTickThickness(self, _arg:float) -> None: ... + def SetArcMinorTickVisibility(self, _arg:bool) -> None: ... + def SetArcTickMatchesRadialAxes(self, _arg:bool) -> None: ... + def SetArcTickRatioSize(self, _arg:float) -> None: ... + def SetArcTickRatioThickness(self, _arg:float) -> None: ... + def SetArcTickVisibility(self, _arg:bool) -> None: ... + def SetArcTicksOriginToPolarAxis(self, _arg:bool) -> None: ... + def SetAxisMinorTickVisibility(self, _arg:bool) -> None: ... + def SetAxisTickMatchesPolarAxes(self, _arg:bool) -> None: ... + def SetAxisTickVisibility(self, _arg:bool) -> None: ... + @overload + def SetBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetBounds(self, _arg:Sequence[float]) -> None: ... + def SetCamera(self, __a:'vtkCamera') -> None: ... + def SetDeltaAngleMajor(self, _arg:float) -> None: ... + def SetDeltaAngleMinor(self, _arg:float) -> None: ... + def SetDeltaRangeMajor(self, _arg:float) -> None: ... + def SetDeltaRangeMinor(self, _arg:float) -> None: ... + def SetDistanceLODThreshold(self, _arg:float) -> None: ... + def SetDrawPolarArcsGridlines(self, _arg:bool) -> None: ... + def SetDrawRadialGridlines(self, _arg:bool) -> None: ... + def SetEnableDistanceLOD(self, _arg:bool) -> None: ... + def SetEnableViewAngleLOD(self, _arg:bool) -> None: ... + def SetExponentLocation(self, _arg:int) -> None: ... + def SetLastAxisTickRatioSize(self, _arg:float) -> None: ... + def SetLastAxisTickRatioThickness(self, _arg:float) -> None: ... + def SetLastRadialAxisMajorTickSize(self, _arg:float) -> None: ... + def SetLastRadialAxisMajorTickThickness(self, _arg:float) -> None: ... + def SetLastRadialAxisProperty(self, p:'vtkProperty') -> None: ... + def SetLastRadialAxisTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetLog(self, _arg:bool) -> None: ... + def SetMaximumAngle(self, __a:float) -> None: ... + def SetMaximumRadius(self, __a:float) -> None: ... + def SetMinimumAngle(self, __a:float) -> None: ... + def SetMinimumRadius(self, __a:float) -> None: ... + def SetPolarArcResolutionPerDegree(self, _arg:float) -> None: ... + def SetPolarArcsProperty(self, p:'vtkProperty') -> None: ... + def SetPolarArcsVisibility(self, _arg:bool) -> None: ... + def SetPolarAxisLabelTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetPolarAxisMajorTickSize(self, _arg:float) -> None: ... + def SetPolarAxisMajorTickThickness(self, _arg:float) -> None: ... + def SetPolarAxisProperty(self, __a:'vtkProperty') -> None: ... + def SetPolarAxisTickRatioSize(self, _arg:float) -> None: ... + def SetPolarAxisTickRatioThickness(self, _arg:float) -> None: ... + def SetPolarAxisTitle(self, _arg:str) -> None: ... + def SetPolarAxisTitleLocation(self, _arg:int) -> None: ... + def SetPolarAxisTitleTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetPolarAxisVisibility(self, _arg:bool) -> None: ... + def SetPolarExponentOffset(self, _arg:float) -> None: ... + def SetPolarLabelFormat(self, _arg:str) -> None: ... + def SetPolarLabelOffset(self, _arg:float) -> None: ... + def SetPolarLabelVisibility(self, _arg:bool) -> None: ... + def SetPolarTickVisibility(self, _arg:bool) -> None: ... + @overload + def SetPolarTitleOffset(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetPolarTitleOffset(self, _arg:Sequence[float]) -> None: ... + def SetPolarTitleVisibility(self, _arg:bool) -> None: ... + @overload + def SetPole(self, __a:MutableSequence[float]) -> None: ... + @overload + def SetPole(self, __a:float, __b:float, __c:float) -> None: ... + def SetRadialAngleFormat(self, _arg:str) -> None: ... + def SetRadialAxesOriginToPolarAxis(self, _arg:bool) -> None: ... + def SetRadialAxesVisibility(self, _arg:bool) -> None: ... + def SetRadialAxisTitleLocation(self, _arg:int) -> None: ... + @overload + def SetRadialTitleOffset(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetRadialTitleOffset(self, _arg:Sequence[float]) -> None: ... + def SetRadialTitleVisibility(self, _arg:bool) -> None: ... + def SetRadialUnits(self, _arg:bool) -> None: ... + @overload + def SetRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetRange(self, _arg:Sequence[float]) -> None: ... + def SetRatio(self, _arg:float) -> None: ... + def SetRequestedDeltaAngleRadialAxes(self, _arg:float) -> None: ... + def SetRequestedDeltaRangePolarAxes(self, _arg:float) -> None: ... + def SetRequestedNumberOfPolarAxes(self, _arg:int) -> None: ... + def SetRequestedNumberOfRadialAxes(self, _arg:int) -> None: ... + def SetScreenSize(self, _arg:float) -> None: ... + def SetSecondaryPolarArcsProperty(self, p:'vtkProperty') -> None: ... + def SetSecondaryRadialAxesProperty(self, p:'vtkProperty') -> None: ... + def SetSecondaryRadialAxesTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetSmallestVisiblePolarAngle(self, _arg:float) -> None: ... + def SetTickLocation(self, _arg:int) -> None: ... + def SetTickRatioRadiusSize(self, _arg:float) -> None: ... + def SetUse2DMode(self, enable:bool) -> None: ... + def SetViewAngleLODThreshold(self, _arg:float) -> None: ... + +class vtkPolarAxesActor2D(vtkmodules.vtkRenderingCore.vtkActor2D): + axes_length:'getset_descriptor' + axes_text_property:'getset_descriptor' + end_angle:'getset_descriptor' + number_of_axes:'getset_descriptor' + number_of_axes_ticks:'getset_descriptor' + origin:'getset_descriptor' + start_angle:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetActors2D(self, pc:'vtkPropCollection') -> None: ... + def GetAxesLength(self) -> float: ... + def GetAxesTextProperty(self) -> 'vtkTextProperty': ... + def GetEndAngle(self) -> float: ... + def GetNumberOfAxes(self) -> int: ... + def GetNumberOfAxesTicks(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self, origin:MutableSequence[float]) -> None: ... + def GetStartAngle(self) -> float: ... + def HasOpaqueGeometry(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolarAxesActor2D': ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolarAxesActor2D': ... + def SetAxesLength(self, length:float) -> None: ... + def SetAxesTextProperty(self, property:'vtkTextProperty') -> None: ... + def SetEndAngle(self, angle:float) -> None: ... + def SetNumberOfAxes(self, number:int) -> None: ... + def SetNumberOfAxesTicks(self, number:int) -> None: ... + @overload + def SetOrigin(self, x:float, y:float) -> None: ... + @overload + def SetOrigin(self, origin:MutableSequence[float]) -> None: ... + def SetStartAngle(self, angle:float) -> None: ... + +class vtkProp3DAxisFollower(vtkmodules.vtkRenderingCore.vtkProp3DFollower): + auto_center:'getset_descriptor' + axis:'getset_descriptor' + distance_lod_threshold:'getset_descriptor' + enable_distance_lod:'getset_descriptor' + enable_view_angle_lod:'getset_descriptor' + screen_offset:'getset_descriptor' + screen_offset_vector:'getset_descriptor' + view_angle_lod_threshold:'getset_descriptor' + viewport:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutoCenterOff(self) -> None: ... + def AutoCenterOn(self) -> None: ... + @staticmethod + def AutoScale(viewport:'vtkViewport', camera:'vtkCamera', screenSize:float, position:MutableSequence[float]) -> float: ... + def ComputeMatrix(self) -> None: ... + def GetAutoCenter(self) -> int: ... + def GetAxis(self) -> 'vtkAxisActor': ... + def GetDistanceLODThreshold(self) -> float: ... + def GetDistanceLODThresholdMaxValue(self) -> float: ... + def GetDistanceLODThresholdMinValue(self) -> float: ... + def GetEnableDistanceLOD(self) -> int: ... + def GetEnableViewAngleLOD(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScreenOffset(self) -> float: ... + def GetScreenOffsetVector(self) -> Tuple[float, float]: ... + def GetViewAngleLODThreshold(self) -> float: ... + def GetViewAngleLODThresholdMaxValue(self) -> float: ... + def GetViewAngleLODThresholdMinValue(self) -> float: ... + def GetViewport(self) -> 'vtkViewport': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProp3DAxisFollower': ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderVolumetricGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProp3DAxisFollower': ... + def SetAutoCenter(self, _arg:int) -> None: ... + def SetAxis(self, __a:'vtkAxisActor') -> None: ... + def SetDistanceLODThreshold(self, _arg:float) -> None: ... + def SetEnableDistanceLOD(self, _arg:int) -> None: ... + def SetEnableViewAngleLOD(self, _arg:int) -> None: ... + def SetScreenOffset(self, offset:float) -> None: ... + @overload + def SetScreenOffsetVector(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetScreenOffsetVector(self, _arg:Sequence[float]) -> None: ... + def SetViewAngleLODThreshold(self, _arg:float) -> None: ... + def SetViewport(self, viewport:'vtkViewport') -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkRadialGridActor2D(vtkmodules.vtkRenderingCore.vtkActor2D): + axes_viewport_length:'getset_descriptor' + end_angle:'getset_descriptor' + first_axes_points:'getset_descriptor' + last_axes_points:'getset_descriptor' + number_of_axes:'getset_descriptor' + number_of_axes_max_value:'getset_descriptor' + number_of_axes_min_value:'getset_descriptor' + number_of_ticks:'getset_descriptor' + number_of_ticks_max_value:'getset_descriptor' + number_of_ticks_min_value:'getset_descriptor' + origin:'getset_descriptor' + start_angle:'getset_descriptor' + text_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetActors2D(self, pc:'vtkPropCollection') -> None: ... + def GetAxesViewportLength(self) -> float: ... + def GetAxesViewportLengthMaxValue(self) -> float: ... + def GetAxesViewportLengthMinValue(self) -> float: ... + def GetEndAngle(self) -> float: ... + def GetFirstAxesPoints(self) -> 'vtkPoints': ... + def GetLastAxesPoints(self) -> 'vtkPoints': ... + def GetNumberOfAxes(self) -> int: ... + def GetNumberOfAxesMaxValue(self) -> int: ... + def GetNumberOfAxesMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTicks(self) -> int: ... + def GetNumberOfTicksMaxValue(self) -> int: ... + def GetNumberOfTicksMinValue(self) -> int: ... + def GetOrigin(self) -> Tuple[float, float]: ... + def GetStartAngle(self) -> float: ... + def GetTextProperty(self) -> 'vtkTextProperty': ... + def HasOpaqueGeometry(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRadialGridActor2D': ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRadialGridActor2D': ... + def SetAxesViewportLength(self, _arg:float) -> None: ... + def SetEndAngle(self, _arg:float) -> None: ... + def SetNumberOfAxes(self, _arg:int) -> None: ... + def SetNumberOfTicks(self, _arg:int) -> None: ... + @overload + def SetOrigin(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetOrigin(self, _arg:Sequence[float]) -> None: ... + def SetStartAngle(self, _arg:float) -> None: ... + def SetTextProperty(self, property:'vtkTextProperty') -> None: ... + +class vtkScalarBarActor(vtkmodules.vtkRenderingCore.vtkActor2D): + PrecedeScalarBar:int + SucceedScalarBar:int + above_range_annotation:'getset_descriptor' + annotation_leader_padding:'getset_descriptor' + annotation_text_property:'getset_descriptor' + annotation_text_scaling:'getset_descriptor' + background_property:'getset_descriptor' + bar_ratio:'getset_descriptor' + below_range_annotation:'getset_descriptor' + component_title:'getset_descriptor' + custom_labels:'getset_descriptor' + draw_above_range_swatch:'getset_descriptor' + draw_annotations:'getset_descriptor' + draw_background:'getset_descriptor' + draw_below_range_swatch:'getset_descriptor' + draw_color_bar:'getset_descriptor' + draw_frame:'getset_descriptor' + draw_nan_annotation:'getset_descriptor' + draw_tick_labels:'getset_descriptor' + fixed_annotation_leader_line_color:'getset_descriptor' + force_vertical_title:'getset_descriptor' + frame_property:'getset_descriptor' + label_format:'getset_descriptor' + label_text_property:'getset_descriptor' + lookup_table:'getset_descriptor' + maximum_height_in_pixels:'getset_descriptor' + maximum_number_of_colors:'getset_descriptor' + maximum_width_in_pixels:'getset_descriptor' + nan_annotation:'getset_descriptor' + number_of_labels:'getset_descriptor' + number_of_labels_max_value:'getset_descriptor' + number_of_labels_min_value:'getset_descriptor' + opacity_function:'getset_descriptor' + orientation:'getset_descriptor' + text_pad:'getset_descriptor' + text_position:'getset_descriptor' + texture_actor:'getset_descriptor' + texture_grid_width:'getset_descriptor' + title:'getset_descriptor' + title_ratio:'getset_descriptor' + title_text_property:'getset_descriptor' + unconstrained_font_size:'getset_descriptor' + use_custom_labels:'getset_descriptor' + use_opacity:'getset_descriptor' + vertical_title_separation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AnnotationTextScalingOff(self) -> None: ... + def AnnotationTextScalingOn(self) -> None: ... + def DrawAboveRangeSwatchOff(self) -> None: ... + def DrawAboveRangeSwatchOn(self) -> None: ... + def DrawAnnotationsOff(self) -> None: ... + def DrawAnnotationsOn(self) -> None: ... + def DrawBackgroundOff(self) -> None: ... + def DrawBackgroundOn(self) -> None: ... + def DrawBelowRangeSwatchOff(self) -> None: ... + def DrawBelowRangeSwatchOn(self) -> None: ... + def DrawColorBarOff(self) -> None: ... + def DrawColorBarOn(self) -> None: ... + def DrawFrameOff(self) -> None: ... + def DrawFrameOn(self) -> None: ... + def DrawNanAnnotationOff(self) -> None: ... + def DrawNanAnnotationOn(self) -> None: ... + def DrawTickLabelsOff(self) -> None: ... + def DrawTickLabelsOn(self) -> None: ... + def FixedAnnotationLeaderLineColorOff(self) -> None: ... + def FixedAnnotationLeaderLineColorOn(self) -> None: ... + def GetAboveRangeAnnotation(self) -> str: ... + def GetAnnotationLeaderPadding(self) -> float: ... + def GetAnnotationTextProperty(self) -> 'vtkTextProperty': ... + def GetAnnotationTextScaling(self) -> int: ... + def GetBackgroundProperty(self) -> 'vtkProperty2D': ... + def GetBarRatio(self) -> float: ... + def GetBarRatioMaxValue(self) -> float: ... + def GetBarRatioMinValue(self) -> float: ... + def GetBelowRangeAnnotation(self) -> str: ... + def GetComponentTitle(self) -> str: ... + def GetCustomLabels(self) -> 'vtkDoubleArray': ... + def GetDrawAboveRangeSwatch(self) -> bool: ... + def GetDrawAnnotations(self) -> int: ... + def GetDrawBackground(self) -> int: ... + def GetDrawBelowRangeSwatch(self) -> bool: ... + def GetDrawColorBar(self) -> int: ... + def GetDrawFrame(self) -> int: ... + def GetDrawNanAnnotation(self) -> int: ... + def GetDrawTickLabels(self) -> int: ... + def GetFixedAnnotationLeaderLineColor(self) -> int: ... + def GetForceVerticalTitle(self) -> bool: ... + def GetFrameProperty(self) -> 'vtkProperty2D': ... + def GetLabelFormat(self) -> str: ... + def GetLabelTextProperty(self) -> 'vtkTextProperty': ... + def GetLookupTable(self) -> 'vtkScalarsToColors': ... + def GetMaximumHeightInPixels(self) -> int: ... + def GetMaximumNumberOfColors(self) -> int: ... + def GetMaximumNumberOfColorsMaxValue(self) -> int: ... + def GetMaximumNumberOfColorsMinValue(self) -> int: ... + def GetMaximumWidthInPixels(self) -> int: ... + def GetNanAnnotation(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLabels(self) -> int: ... + def GetNumberOfLabelsMaxValue(self) -> int: ... + def GetNumberOfLabelsMinValue(self) -> int: ... + def GetOpacityFunction(self) -> 'vtkPiecewiseFunction': ... + def GetOrientation(self) -> int: ... + def GetOrientationMaxValue(self) -> int: ... + def GetOrientationMinValue(self) -> int: ... + def GetScalarBarRect(self, rect:MutableSequence[int], viewport:'vtkViewport') -> None: ... + def GetTextPad(self) -> int: ... + def GetTextPosition(self) -> int: ... + def GetTextPositionMaxValue(self) -> int: ... + def GetTextPositionMinValue(self) -> int: ... + def GetTextureActor(self) -> 'vtkTexturedActor2D': ... + def GetTextureGridWidth(self) -> float: ... + def GetTitle(self) -> str: ... + def GetTitleRatio(self) -> float: ... + def GetTitleRatioMaxValue(self) -> float: ... + def GetTitleRatioMinValue(self) -> float: ... + def GetTitleTextProperty(self) -> 'vtkTextProperty': ... + def GetUnconstrainedFontSize(self) -> bool: ... + def GetUseCustomLabels(self) -> bool: ... + def GetUseOpacity(self) -> int: ... + def GetVerticalTitleSeparation(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkScalarBarActor': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkScalarBarActor': ... + def SetAboveRangeAnnotation(self, _arg:str) -> None: ... + def SetAnnotationLeaderPadding(self, _arg:float) -> None: ... + def SetAnnotationTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetAnnotationTextScaling(self, _arg:int) -> None: ... + def SetBackgroundProperty(self, p:'vtkProperty2D') -> None: ... + def SetBarRatio(self, _arg:float) -> None: ... + def SetBelowRangeAnnotation(self, _arg:str) -> None: ... + def SetComponentTitle(self, _arg:str) -> None: ... + def SetCustomLabels(self, labels:'vtkDoubleArray') -> None: ... + def SetDrawAboveRangeSwatch(self, _arg:bool) -> None: ... + def SetDrawAnnotations(self, _arg:int) -> None: ... + def SetDrawBackground(self, _arg:int) -> None: ... + def SetDrawBelowRangeSwatch(self, _arg:bool) -> None: ... + def SetDrawColorBar(self, _arg:int) -> None: ... + def SetDrawFrame(self, _arg:int) -> None: ... + def SetDrawNanAnnotation(self, _arg:int) -> None: ... + def SetDrawTickLabels(self, _arg:int) -> None: ... + def SetFixedAnnotationLeaderLineColor(self, _arg:int) -> None: ... + def SetForceVerticalTitle(self, _arg:bool) -> None: ... + def SetFrameProperty(self, p:'vtkProperty2D') -> None: ... + def SetLabelFormat(self, _arg:str) -> None: ... + def SetLabelTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetLookupTable(self, __a:'vtkScalarsToColors') -> None: ... + def SetMaximumHeightInPixels(self, _arg:int) -> None: ... + def SetMaximumNumberOfColors(self, _arg:int) -> None: ... + def SetMaximumWidthInPixels(self, _arg:int) -> None: ... + def SetNanAnnotation(self, _arg:str) -> None: ... + def SetNumberOfLabels(self, _arg:int) -> None: ... + def SetOpacityFunction(self, __a:'vtkPiecewiseFunction') -> None: ... + def SetOrientation(self, _arg:int) -> None: ... + def SetOrientationToHorizontal(self) -> None: ... + def SetOrientationToVertical(self) -> None: ... + def SetTextPad(self, _arg:int) -> None: ... + def SetTextPosition(self, _arg:int) -> None: ... + def SetTextPositionToPrecedeScalarBar(self) -> None: ... + def SetTextPositionToSucceedScalarBar(self) -> None: ... + def SetTextureGridWidth(self, _arg:float) -> None: ... + def SetTitle(self, _arg:str) -> None: ... + def SetTitleRatio(self, _arg:float) -> None: ... + def SetTitleTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetUnconstrainedFontSize(self, _arg:bool) -> None: ... + def SetUseCustomLabels(self, _arg:bool) -> None: ... + def SetUseOpacity(self, _arg:int) -> None: ... + def SetVerticalTitleSeparation(self, _arg:int) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def UnconstrainedFontSizeOff(self) -> None: ... + def UnconstrainedFontSizeOn(self) -> None: ... + def UseCustomLabelsOff(self) -> None: ... + def UseCustomLabelsOn(self) -> None: ... + def UseOpacityOff(self) -> None: ... + def UseOpacityOn(self) -> None: ... + +class vtkSpiderPlotActor(vtkmodules.vtkRenderingCore.vtkActor2D): + independent_variables:'getset_descriptor' + input:'getset_descriptor' + input_connection:'getset_descriptor' + input_data:'getset_descriptor' + label_text_property:'getset_descriptor' + label_visibility:'getset_descriptor' + legend_actor:'getset_descriptor' + legend_visibility:'getset_descriptor' + number_of_rings:'getset_descriptor' + number_of_rings_max_value:'getset_descriptor' + number_of_rings_min_value:'getset_descriptor' + title:'getset_descriptor' + title_text_property:'getset_descriptor' + title_visibility:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAxisLabel(self, i:int) -> str: ... + def GetAxisRange(self, i:int, range:MutableSequence[float]) -> None: ... + def GetIndependentVariables(self) -> int: ... + def GetIndependentVariablesMaxValue(self) -> int: ... + def GetIndependentVariablesMinValue(self) -> int: ... + def GetInput(self) -> 'vtkDataObject': ... + def GetLabelTextProperty(self) -> 'vtkTextProperty': ... + def GetLabelVisibility(self) -> int: ... + def GetLegendActor(self) -> 'vtkLegendBoxActor': ... + def GetLegendVisibility(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfRings(self) -> int: ... + def GetNumberOfRingsMaxValue(self) -> int: ... + def GetNumberOfRingsMinValue(self) -> int: ... + def GetPlotColor(self, i:int) -> Pointer: ... + def GetTitle(self) -> str: ... + def GetTitleTextProperty(self) -> 'vtkTextProperty': ... + def GetTitleVisibility(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LabelVisibilityOff(self) -> None: ... + def LabelVisibilityOn(self) -> None: ... + def LegendVisibilityOff(self) -> None: ... + def LegendVisibilityOn(self) -> None: ... + def NewInstance(self) -> 'vtkSpiderPlotActor': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSpiderPlotActor': ... + def SetAxisLabel(self, i:int, __b:str) -> None: ... + @overload + def SetAxisRange(self, i:int, min:float, max:float) -> None: ... + @overload + def SetAxisRange(self, i:int, range:MutableSequence[float]) -> None: ... + def SetIndependentVariables(self, _arg:int) -> None: ... + def SetIndependentVariablesToColumns(self) -> None: ... + def SetIndependentVariablesToRows(self) -> None: ... + def SetInputConnection(self, __a:'vtkAlgorithmOutput') -> None: ... + def SetInputData(self, __a:'vtkDataObject') -> None: ... + def SetLabelTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetLabelVisibility(self, _arg:int) -> None: ... + def SetLegendVisibility(self, _arg:int) -> None: ... + def SetNumberOfRings(self, _arg:int) -> None: ... + @overload + def SetPlotColor(self, i:int, r:float, g:float, b:float) -> None: ... + @overload + def SetPlotColor(self, i:int, color:Sequence[float]) -> None: ... + def SetTitle(self, _arg:str) -> None: ... + def SetTitleTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetTitleVisibility(self, _arg:int) -> None: ... + def TitleVisibilityOff(self) -> None: ... + def TitleVisibilityOn(self) -> None: ... + +class vtkXYPlotActor(vtkmodules.vtkRenderingCore.vtkActor2D): + class Alignment(int): ... + AlignAxisBottom:'Alignment' + AlignAxisHCenter:'Alignment' + AlignAxisLeft:'Alignment' + AlignAxisRight:'Alignment' + AlignAxisTop:'Alignment' + AlignAxisVCenter:'Alignment' + AlignBottom:'Alignment' + AlignHCenter:'Alignment' + AlignLeft:'Alignment' + AlignRight:'Alignment' + AlignTop:'Alignment' + AlignVCenter:'Alignment' + adjust_title_position:'getset_descriptor' + adjust_title_position_mode:'getset_descriptor' + adjust_x_labels:'getset_descriptor' + adjust_y_labels:'getset_descriptor' + axis_label_bold:'getset_descriptor' + axis_label_color:'getset_descriptor' + axis_label_font_family:'getset_descriptor' + axis_label_font_size:'getset_descriptor' + axis_label_italic:'getset_descriptor' + axis_label_justification:'getset_descriptor' + axis_label_shadow:'getset_descriptor' + axis_label_text_property:'getset_descriptor' + axis_label_vertical_justification:'getset_descriptor' + axis_title_bold:'getset_descriptor' + axis_title_color:'getset_descriptor' + axis_title_font_family:'getset_descriptor' + axis_title_font_size:'getset_descriptor' + axis_title_italic:'getset_descriptor' + axis_title_justification:'getset_descriptor' + axis_title_shadow:'getset_descriptor' + axis_title_text_property:'getset_descriptor' + axis_title_vertical_justification:'getset_descriptor' + border:'getset_descriptor' + chart_border:'getset_descriptor' + chart_box:'getset_descriptor' + chart_box_property:'getset_descriptor' + data_object_plot_mode:'getset_descriptor' + data_object_x_component:'getset_descriptor' + data_object_y_component:'getset_descriptor' + exchange_axes:'getset_descriptor' + glyph_size:'getset_descriptor' + glyph_source:'getset_descriptor' + label_format:'getset_descriptor' + legend:'getset_descriptor' + legend_actor:'getset_descriptor' + legend_background_color:'getset_descriptor' + legend_border:'getset_descriptor' + legend_box:'getset_descriptor' + legend_position:'getset_descriptor' + legend_position2:'getset_descriptor' + legend_use_background:'getset_descriptor' + line_width:'getset_descriptor' + logx:'getset_descriptor' + m_time:'getset_descriptor' + number_of_data_object_input_connections:'getset_descriptor' + number_of_data_set_input_connections:'getset_descriptor' + number_of_labels:'getset_descriptor' + number_of_x_labels:'getset_descriptor' + number_of_x_labels_max_value:'getset_descriptor' + number_of_x_labels_min_value:'getset_descriptor' + number_of_x_minor_ticks:'getset_descriptor' + number_of_y_labels:'getset_descriptor' + number_of_y_labels_max_value:'getset_descriptor' + number_of_y_labels_min_value:'getset_descriptor' + number_of_y_minor_ticks:'getset_descriptor' + plot_coordinate:'getset_descriptor' + plot_curve_lines:'getset_descriptor' + plot_curve_points:'getset_descriptor' + plot_glyph_type:'getset_descriptor' + plot_lines:'getset_descriptor' + plot_points:'getset_descriptor' + plot_range:'getset_descriptor' + point_component:'getset_descriptor' + reference_x_value:'getset_descriptor' + reference_y_value:'getset_descriptor' + reverse_x_axis:'getset_descriptor' + reverse_y_axis:'getset_descriptor' + show_reference_x_line:'getset_descriptor' + show_reference_y_line:'getset_descriptor' + title:'getset_descriptor' + title_bold:'getset_descriptor' + title_color:'getset_descriptor' + title_font_family:'getset_descriptor' + title_font_size:'getset_descriptor' + title_italic:'getset_descriptor' + title_justification:'getset_descriptor' + title_position:'getset_descriptor' + title_shadow:'getset_descriptor' + title_text_property:'getset_descriptor' + title_vertical_justification:'getset_descriptor' + viewport_coordinate:'getset_descriptor' + x_axis_actor2d:'getset_descriptor' + x_axis_color:'getset_descriptor' + x_label_format:'getset_descriptor' + x_range:'getset_descriptor' + x_title:'getset_descriptor' + x_title_position:'getset_descriptor' + x_values:'getset_descriptor' + y_axis_actor2d:'getset_descriptor' + y_axis_color:'getset_descriptor' + y_label_format:'getset_descriptor' + y_range:'getset_descriptor' + y_title:'getset_descriptor' + y_title_position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddDataObjectInput(self, in_:'vtkDataObject') -> None: ... + def AddDataObjectInputConnection(self, alg:'vtkAlgorithmOutput') -> None: ... + @overload + def AddDataSetInput(self, ds:'vtkDataSet', arrayName:str, component:int) -> None: ... + @overload + def AddDataSetInput(self, ds:'vtkDataSet') -> None: ... + @overload + def AddDataSetInputConnection(self, in_:'vtkAlgorithmOutput', arrayName:str, component:int) -> None: ... + @overload + def AddDataSetInputConnection(self, in_:'vtkAlgorithmOutput') -> None: ... + def AddUserCurvesPoint(self, __a:float, __b:float, __c:float) -> None: ... + def AdjustTitlePositionOff(self) -> None: ... + def AdjustTitlePositionOn(self) -> None: ... + def ChartBorderOff(self) -> None: ... + def ChartBorderOn(self) -> None: ... + def ChartBoxOff(self) -> None: ... + def ChartBoxOn(self) -> None: ... + def ExchangeAxesOff(self) -> None: ... + def ExchangeAxesOn(self) -> None: ... + def GetAdjustTitlePosition(self) -> int: ... + def GetAdjustTitlePositionMode(self) -> int: ... + def GetAdjustXLabels(self) -> int: ... + def GetAdjustYLabels(self) -> int: ... + def GetAxisLabelTextProperty(self) -> 'vtkTextProperty': ... + def GetAxisTitleTextProperty(self) -> 'vtkTextProperty': ... + def GetBorder(self) -> int: ... + def GetBorderMaxValue(self) -> int: ... + def GetBorderMinValue(self) -> int: ... + def GetChartBorder(self) -> int: ... + def GetChartBox(self) -> int: ... + def GetChartBoxProperty(self) -> 'vtkProperty2D': ... + def GetDataObjectInputConnection(self, idx:int) -> 'vtkAlgorithmOutput': ... + def GetDataObjectPlotMode(self) -> int: ... + def GetDataObjectPlotModeAsString(self) -> str: ... + def GetDataObjectPlotModeMaxValue(self) -> int: ... + def GetDataObjectPlotModeMinValue(self) -> int: ... + def GetDataObjectXComponent(self, i:int) -> int: ... + def GetDataObjectYComponent(self, i:int) -> int: ... + def GetDataSetInputConnection(self, idx:int) -> 'vtkAlgorithmOutput': ... + def GetExchangeAxes(self) -> int: ... + def GetGlyphSize(self) -> float: ... + def GetGlyphSizeMaxValue(self) -> float: ... + def GetGlyphSizeMinValue(self) -> float: ... + def GetGlyphSource(self) -> 'vtkGlyphSource2D': ... + def GetLabelFormat(self) -> str: ... + def GetLegend(self) -> int: ... + def GetLegendActor(self) -> 'vtkLegendBoxActor': ... + def GetLegendPosition(self) -> Tuple[float, float]: ... + def GetLegendPosition2(self) -> Tuple[float, float]: ... + def GetLogx(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfDataObjectInputConnections(self) -> int: ... + def GetNumberOfDataSetInputConnections(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfXLabels(self) -> int: ... + def GetNumberOfXLabelsMaxValue(self) -> int: ... + def GetNumberOfXLabelsMinValue(self) -> int: ... + def GetNumberOfXMinorTicks(self) -> int: ... + def GetNumberOfYLabels(self) -> int: ... + def GetNumberOfYLabelsMaxValue(self) -> int: ... + def GetNumberOfYLabelsMinValue(self) -> int: ... + def GetNumberOfYMinorTicks(self) -> int: ... + def GetPlotColor(self, i:int) -> Tuple[float, float, float]: ... + def GetPlotCoordinate(self) -> Tuple[float, float]: ... + def GetPlotCurveLines(self) -> int: ... + def GetPlotCurvePoints(self) -> int: ... + def GetPlotLabel(self, i:int) -> str: ... + @overload + def GetPlotLines(self, i:int) -> int: ... + @overload + def GetPlotLines(self) -> int: ... + @overload + def GetPlotPoints(self, i:int) -> int: ... + @overload + def GetPlotPoints(self) -> int: ... + def GetPlotSymbol(self, i:int) -> 'vtkPolyData': ... + def GetPointComponent(self, i:int) -> int: ... + def GetReferenceXValue(self) -> float: ... + def GetReferenceYValue(self) -> float: ... + def GetReverseXAxis(self) -> int: ... + def GetReverseYAxis(self) -> int: ... + def GetShowReferenceXLine(self) -> int: ... + def GetShowReferenceYLine(self) -> int: ... + def GetTitle(self) -> str: ... + def GetTitlePosition(self) -> Tuple[float, float]: ... + def GetTitleTextProperty(self) -> 'vtkTextProperty': ... + def GetViewportCoordinate(self) -> Tuple[float, float]: ... + def GetXAxisActor2D(self) -> 'vtkAxisActor2D': ... + def GetXLabelFormat(self) -> str: ... + def GetXRange(self) -> Tuple[float, float]: ... + def GetXTitle(self) -> str: ... + def GetXTitlePosition(self) -> float: ... + def GetXValues(self) -> int: ... + def GetXValuesAsString(self) -> str: ... + def GetXValuesMaxValue(self) -> int: ... + def GetXValuesMinValue(self) -> int: ... + def GetYAxisActor2D(self) -> 'vtkAxisActor2D': ... + def GetYLabelFormat(self) -> str: ... + def GetYRange(self) -> Tuple[float, float]: ... + def GetYTitle(self) -> str: ... + def GetYTitlePosition(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsInPlot(self, viewport:'vtkViewport', u:float, v:float) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LegendOff(self) -> None: ... + def LegendOn(self) -> None: ... + def LogxOff(self) -> None: ... + def LogxOn(self) -> None: ... + def NewInstance(self) -> 'vtkXYPlotActor': ... + def PlotCurveLinesOff(self) -> None: ... + def PlotCurveLinesOn(self) -> None: ... + def PlotCurvePointsOff(self) -> None: ... + def PlotCurvePointsOn(self) -> None: ... + def PlotLinesOff(self) -> None: ... + def PlotLinesOn(self) -> None: ... + def PlotPointsOff(self) -> None: ... + def PlotPointsOn(self) -> None: ... + @overload + def PlotToViewportCoordinate(self, viewport:'vtkViewport', u:float, v:float) -> None: ... + @overload + def PlotToViewportCoordinate(self, viewport:'vtkViewport') -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RemoveAllActiveCurves(self) -> None: ... + def RemoveAllDataObjectInputConnections(self) -> None: ... + def RemoveAllDataSetInputConnections(self) -> None: ... + def RemoveDataObjectInput(self, in_:'vtkDataObject') -> None: ... + def RemoveDataObjectInputConnection(self, aout:'vtkAlgorithmOutput') -> None: ... + @overload + def RemoveDataSetInput(self, ds:'vtkDataSet', arrayName:str, component:int) -> None: ... + @overload + def RemoveDataSetInput(self, ds:'vtkDataSet') -> None: ... + @overload + def RemoveDataSetInputConnection(self, in_:'vtkAlgorithmOutput', arrayName:str, component:int) -> None: ... + @overload + def RemoveDataSetInputConnection(self, in_:'vtkAlgorithmOutput') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + def ReverseXAxisOff(self) -> None: ... + def ReverseXAxisOn(self) -> None: ... + def ReverseYAxisOff(self) -> None: ... + def ReverseYAxisOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXYPlotActor': ... + def SetAdjustTitlePosition(self, _arg:int) -> None: ... + def SetAdjustTitlePositionMode(self, _arg:int) -> None: ... + def SetAdjustXLabels(self, adjust:int) -> None: ... + def SetAdjustYLabels(self, adjust:int) -> None: ... + def SetAxisLabelBold(self, __a:int) -> None: ... + def SetAxisLabelColor(self, __a:float, __b:float, __c:float) -> None: ... + def SetAxisLabelFontFamily(self, __a:int) -> None: ... + def SetAxisLabelFontSize(self, __a:int) -> None: ... + def SetAxisLabelItalic(self, __a:int) -> None: ... + def SetAxisLabelJustification(self, __a:int) -> None: ... + def SetAxisLabelShadow(self, __a:int) -> None: ... + def SetAxisLabelTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetAxisLabelVerticalJustification(self, __a:int) -> None: ... + def SetAxisTitleBold(self, __a:int) -> None: ... + def SetAxisTitleColor(self, __a:float, __b:float, __c:float) -> None: ... + def SetAxisTitleFontFamily(self, __a:int) -> None: ... + def SetAxisTitleFontSize(self, __a:int) -> None: ... + def SetAxisTitleItalic(self, __a:int) -> None: ... + def SetAxisTitleJustification(self, __a:int) -> None: ... + def SetAxisTitleShadow(self, __a:int) -> None: ... + def SetAxisTitleTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetAxisTitleVerticalJustification(self, __a:int) -> None: ... + def SetBorder(self, _arg:int) -> None: ... + def SetChartBorder(self, _arg:int) -> None: ... + def SetChartBox(self, _arg:int) -> None: ... + def SetDataObjectPlotMode(self, _arg:int) -> None: ... + def SetDataObjectPlotModeToColumns(self) -> None: ... + def SetDataObjectPlotModeToRows(self) -> None: ... + def SetDataObjectXComponent(self, i:int, comp:int) -> None: ... + def SetDataObjectYComponent(self, i:int, comp:int) -> None: ... + def SetExchangeAxes(self, _arg:int) -> None: ... + def SetGlyphSize(self, _arg:float) -> None: ... + def SetLabelFormat(self, __a:str) -> None: ... + def SetLegend(self, _arg:int) -> None: ... + def SetLegendBackgroundColor(self, __a:float, __b:float, __c:float) -> None: ... + def SetLegendBorder(self, __a:int) -> None: ... + def SetLegendBox(self, __a:int) -> None: ... + @overload + def SetLegendPosition(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetLegendPosition(self, _arg:Sequence[float]) -> None: ... + @overload + def SetLegendPosition2(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetLegendPosition2(self, _arg:Sequence[float]) -> None: ... + def SetLegendUseBackground(self, __a:int) -> None: ... + def SetLineWidth(self, __a:float) -> None: ... + def SetLogx(self, _arg:int) -> None: ... + def SetNumberOfLabels(self, num:int) -> None: ... + def SetNumberOfXLabels(self, _arg:int) -> None: ... + def SetNumberOfXMinorTicks(self, num:int) -> None: ... + def SetNumberOfYLabels(self, _arg:int) -> None: ... + def SetNumberOfYMinorTicks(self, num:int) -> None: ... + @overload + def SetPlotColor(self, i:int, r:float, g:float, b:float) -> None: ... + @overload + def SetPlotColor(self, i:int, color:Sequence[float]) -> None: ... + @overload + def SetPlotCoordinate(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetPlotCoordinate(self, _arg:Sequence[float]) -> None: ... + def SetPlotCurveLines(self, _arg:int) -> None: ... + def SetPlotCurvePoints(self, _arg:int) -> None: ... + def SetPlotGlyphType(self, __a:int, __b:int) -> None: ... + def SetPlotLabel(self, i:int, label:str) -> None: ... + @overload + def SetPlotLines(self, i:int, __b:int) -> None: ... + @overload + def SetPlotLines(self, _arg:int) -> None: ... + @overload + def SetPlotPoints(self, i:int, __b:int) -> None: ... + @overload + def SetPlotPoints(self, _arg:int) -> None: ... + def SetPlotRange(self, xmin:float, ymin:float, xmax:float, ymax:float) -> None: ... + def SetPlotSymbol(self, i:int, input:'vtkPolyData') -> None: ... + def SetPointComponent(self, i:int, comp:int) -> None: ... + def SetReferenceXValue(self, _arg:float) -> None: ... + def SetReferenceYValue(self, _arg:float) -> None: ... + def SetReverseXAxis(self, _arg:int) -> None: ... + def SetReverseYAxis(self, _arg:int) -> None: ... + def SetShowReferenceXLine(self, _arg:int) -> None: ... + def SetShowReferenceYLine(self, _arg:int) -> None: ... + def SetTitle(self, _arg:str) -> None: ... + def SetTitleBold(self, __a:int) -> None: ... + def SetTitleColor(self, __a:float, __b:float, __c:float) -> None: ... + def SetTitleFontFamily(self, __a:int) -> None: ... + def SetTitleFontSize(self, __a:int) -> None: ... + def SetTitleItalic(self, __a:int) -> None: ... + def SetTitleJustification(self, __a:int) -> None: ... + @overload + def SetTitlePosition(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetTitlePosition(self, _arg:Sequence[float]) -> None: ... + def SetTitleShadow(self, __a:int) -> None: ... + def SetTitleTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetTitleVerticalJustification(self, __a:int) -> None: ... + @overload + def SetViewportCoordinate(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetViewportCoordinate(self, _arg:Sequence[float]) -> None: ... + def SetXAxisColor(self, __a:float, __b:float, __c:float) -> None: ... + def SetXLabelFormat(self, __a:str) -> None: ... + @overload + def SetXRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetXRange(self, _arg:Sequence[float]) -> None: ... + def SetXTitle(self, _arg:str) -> None: ... + def SetXTitlePosition(self, position:float) -> None: ... + def SetXValues(self, _arg:int) -> None: ... + def SetXValuesToArcLength(self) -> None: ... + def SetXValuesToIndex(self) -> None: ... + def SetXValuesToNormalizedArcLength(self) -> None: ... + def SetXValuesToValue(self) -> None: ... + def SetYAxisColor(self, __a:float, __b:float, __c:float) -> None: ... + def SetYLabelFormat(self, __a:str) -> None: ... + @overload + def SetYRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetYRange(self, _arg:Sequence[float]) -> None: ... + def SetYTitle(self, __a:str) -> None: ... + def SetYTitlePosition(self, _arg:int) -> None: ... + def SetYTitlePositionToHCenter(self) -> None: ... + def SetYTitlePositionToTop(self) -> None: ... + def SetYTitlePositionToVCenter(self) -> None: ... + def ShowReferenceXLineOff(self) -> None: ... + def ShowReferenceXLineOn(self) -> None: ... + def ShowReferenceYLineOff(self) -> None: ... + def ShowReferenceYLineOn(self) -> None: ... + @overload + def ViewportToPlotCoordinate(self, viewport:'vtkViewport', u:float, v:float) -> None: ... + @overload + def ViewportToPlotCoordinate(self, viewport:'vtkViewport') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingCellGrid.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingCellGrid.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..9a237df Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingCellGrid.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingCellGrid.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingCellGrid.pyi new file mode 100644 index 0000000..ee7b532 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingCellGrid.pyi @@ -0,0 +1,73 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingCore + +class vtkDGRenderResponder(object): + class ScalarVisualizationOverrideType(int): + L2_NORM_R_S:'ScalarVisualizationOverrideType' + L2_NORM_S_T:'ScalarVisualizationOverrideType' + L2_NORM_T_R:'ScalarVisualizationOverrideType' + NONE:'ScalarVisualizationOverrideType' + R:'ScalarVisualizationOverrideType' + S:'ScalarVisualizationOverrideType' + T:'ScalarVisualizationOverrideType' + scalar_visualization_override_type:'getset_descriptor' + visualize_tessellation:'getset_descriptor' + def AddMod(self, className:str) -> None: ... + def AddMods(self, classNames:Sequence[str]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDGRenderResponder': ... + def Query(self, request:'vtkCellGridRenderRequest', metadata:'vtkCellMetadata', caches:'vtkCellGridResponders') -> bool: ... + def RemoveAllMods(self) -> None: ... + def RemoveMod(self, className:str) -> None: ... + def ResetModsToDefault(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDGRenderResponder': ... + @staticmethod + def SetScalarVisualizationOverrideType(type:'ScalarVisualizationOverrideType') -> None: ... + @staticmethod + def SetVisualizeTessellation(value:bool) -> None: ... + +class vtkOpenGLCellGridMapper(vtkmodules.vtkRenderingCore.vtkCellGridMapper): + supports_selection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSupportsSelection(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLCellGridMapper': ... + def ReleaseGraphicsResources(self, window:'vtkWindow') -> None: ... + def Render(self, __a:'vtkRenderer', __b:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLCellGridMapper': ... + def ShallowCopy(self, m:'vtkAbstractMapper') -> None: ... + +class vtkRenderingCellGrid(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRenderingCellGrid': ... + @staticmethod + def RegisterCellsAndResponders() -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderingCellGrid': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingContext2D.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingContext2D.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..f8847cd Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingContext2D.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingContext2D.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingContext2D.pyi new file mode 100644 index 0000000..ffde47f --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingContext2D.pyi @@ -0,0 +1,981 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkRenderingCore + +class vtkAbstractContextBufferId(vtkmodules.vtkCommonCore.vtkObject): + context:'getset_descriptor' + height:'getset_descriptor' + values:'getset_descriptor' + width:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self) -> None: ... + def GetContext(self) -> 'vtkRenderWindow': ... + def GetHeight(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPickedItem(self, x:int, y:int) -> int: ... + def GetWidth(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsAllocated(self) -> bool: ... + def IsSupported(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAbstractContextBufferId': ... + def ReleaseGraphicsResources(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractContextBufferId': ... + def SetContext(self, context:'vtkRenderWindow') -> None: ... + def SetHeight(self, _arg:int) -> None: ... + def SetValues(self, srcXmin:int, srcYmin:int) -> None: ... + def SetWidth(self, _arg:int) -> None: ... + +class vtkAbstractContextItem(vtkmodules.vtkCommonCore.vtkObject): + interactive:'getset_descriptor' + number_of_items:'getset_descriptor' + parent:'getset_descriptor' + scene:'getset_descriptor' + visible:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, item:'vtkAbstractContextItem') -> int: ... + def ClearItems(self) -> None: ... + def GetInteractive(self) -> bool: ... + def GetItem(self, index:int) -> 'vtkAbstractContextItem': ... + def GetItemIndex(self, item:'vtkAbstractContextItem') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfItems(self) -> int: ... + def GetParent(self) -> 'vtkAbstractContextItem': ... + def GetPickedItem(self, mouse:'vtkContextMouseEvent') -> 'vtkAbstractContextItem': ... + def GetScene(self) -> 'vtkContextScene': ... + def GetVisible(self) -> bool: ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def KeyPressEvent(self, key:'vtkContextKeyEvent') -> bool: ... + def KeyReleaseEvent(self, key:'vtkContextKeyEvent') -> bool: ... + def Lower(self, index:int) -> int: ... + def MapFromParent(self, point:'vtkVector2f') -> 'vtkVector2f': ... + def MapFromScene(self, point:'vtkVector2f') -> 'vtkVector2f': ... + def MapToParent(self, point:'vtkVector2f') -> 'vtkVector2f': ... + def MapToScene(self, point:'vtkVector2f') -> 'vtkVector2f': ... + def MouseButtonPressEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseButtonReleaseEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseDoubleClickEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseEnterEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseLeaveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseMoveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseWheelEvent(self, mouse:'vtkContextMouseEvent', delta:int) -> bool: ... + def NewInstance(self) -> 'vtkAbstractContextItem': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def PaintChildren(self, painter:'vtkContext2D') -> bool: ... + def Raise(self, index:int) -> int: ... + def ReleaseGraphicsResources(self) -> None: ... + @overload + def RemoveItem(self, item:'vtkAbstractContextItem') -> bool: ... + @overload + def RemoveItem(self, index:int) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractContextItem': ... + def SetInteractive(self, _arg:bool) -> None: ... + def SetParent(self, parent:'vtkAbstractContextItem') -> None: ... + def SetScene(self, scene:'vtkContextScene') -> None: ... + def SetVisible(self, _arg:bool) -> None: ... + def StackAbove(self, index:int, under:int) -> int: ... + def StackUnder(self, child:int, above:int) -> int: ... + def Update(self) -> None: ... + +class vtkContextItem(vtkAbstractContextItem): + opacity:'getset_descriptor' + transform:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOpacity(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContextItem': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContextItem': ... + def SetOpacity(self, _arg:float) -> None: ... + def SetTransform(self, __a:'vtkContextTransform') -> None: ... + +class vtkBlockItem(vtkContextItem): + BOTTOM:int + CENTER:int + CUSTOM:int + LEFT:int + RIGHT:int + TOP:int + auto_compute_dimensions:'getset_descriptor' + brush:'getset_descriptor' + dimensions:'getset_descriptor' + horizontal_alignment:'getset_descriptor' + label:'getset_descriptor' + label_properties:'getset_descriptor' + margins:'getset_descriptor' + mouse_over_brush:'getset_descriptor' + padding:'getset_descriptor' + pen:'getset_descriptor' + vertical_alignment:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutoComputeDimensionsOff(self) -> None: ... + def AutoComputeDimensionsOn(self) -> None: ... + def GetAutoComputeDimensions(self) -> bool: ... + def GetBrush(self) -> 'vtkBrush': ... + def GetDimensions(self) -> Tuple[float, float, float, float]: ... + def GetHorizontalAlignment(self) -> int: ... + def GetLabel(self) -> str: ... + def GetLabelProperties(self) -> 'vtkTextProperty': ... + def GetMargins(self) -> Tuple[int, int]: ... + def GetMouseOverBrush(self) -> 'vtkBrush': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPadding(self) -> Tuple[int, int]: ... + def GetPen(self) -> 'vtkPen': ... + def GetVerticalAlignment(self) -> int: ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MouseButtonPressEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseButtonReleaseEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseEnterEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseLeaveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseMoveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def NewInstance(self) -> 'vtkBlockItem': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBlockItem': ... + def SetAutoComputeDimensions(self, _arg:bool) -> None: ... + @overload + def SetDimensions(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetDimensions(self, _arg:Sequence[float]) -> None: ... + def SetHorizontalAlignment(self, _arg:int) -> None: ... + def SetLabel(self, label:str) -> None: ... + def SetLabelProperties(self, __a:'vtkTextProperty') -> None: ... + @overload + def SetMargins(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetMargins(self, _arg:Sequence[int]) -> None: ... + @overload + def SetPadding(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetPadding(self, _arg:Sequence[int]) -> None: ... + def SetVerticalAlignment(self, _arg:int) -> None: ... + +class vtkBrush(vtkmodules.vtkCommonCore.vtkObject): + class TextureProperty(int): ... + Linear:'TextureProperty' + Nearest:'TextureProperty' + Repeat:'TextureProperty' + Stretch:'TextureProperty' + color:'getset_descriptor' + color_f:'getset_descriptor' + color_object:'getset_descriptor' + opacity:'getset_descriptor' + opacity_f:'getset_descriptor' + texture:'getset_descriptor' + texture_properties:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self, brush:'vtkBrush') -> None: ... + @overload + def GetColor(self, color:MutableSequence[int]) -> None: ... + @overload + def GetColor(self) -> Pointer: ... + def GetColorF(self, color:MutableSequence[float]) -> None: ... + def GetColorObject(self) -> 'vtkColor4ub': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOpacity(self) -> int: ... + def GetOpacityF(self) -> float: ... + def GetTexture(self) -> 'vtkImageData': ... + def GetTextureProperties(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBrush': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBrush': ... + @overload + def SetColor(self, color:MutableSequence[int]) -> None: ... + @overload + def SetColor(self, r:int, g:int, b:int) -> None: ... + @overload + def SetColor(self, r:int, g:int, b:int, a:int) -> None: ... + @overload + def SetColor(self, color:'vtkColor4ub') -> None: ... + @overload + def SetColorF(self, color:MutableSequence[float]) -> None: ... + @overload + def SetColorF(self, r:float, g:float, b:float) -> None: ... + @overload + def SetColorF(self, r:float, g:float, b:float, a:float) -> None: ... + def SetOpacity(self, a:int) -> None: ... + def SetOpacityF(self, a:float) -> None: ... + def SetTexture(self, image:'vtkImageData') -> None: ... + def SetTextureProperties(self, _arg:int) -> None: ... + +class vtkContext2D(vtkmodules.vtkCommonCore.vtkObject): + brush:'getset_descriptor' + buffer_id_mode:'getset_descriptor' + context3d:'getset_descriptor' + device:'getset_descriptor' + pen:'getset_descriptor' + text_prop:'getset_descriptor' + transform:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AppendTransform(self, transform:'vtkTransform2D') -> None: ... + def ApplyBrush(self, brush:'vtkBrush') -> None: ... + def ApplyId(self, id:int) -> None: ... + def ApplyPen(self, pen:'vtkPen') -> None: ... + def ApplyTextProp(self, prop:'vtkTextProperty') -> None: ... + def Begin(self, device:'vtkContextDevice2D') -> bool: ... + def BufferIdModeBegin(self, bufferId:'vtkAbstractContextBufferId') -> None: ... + def BufferIdModeEnd(self) -> None: ... + def ComputeFontSizeForBoundedString(self, string:str, width:float, height:float) -> int: ... + def ComputeJustifiedStringBounds(self, string:str, bounds:MutableSequence[float]) -> None: ... + @overload + def ComputeStringBounds(self, string:str, bounds:'vtkPoints2D') -> None: ... + @overload + def ComputeStringBounds(self, string:str, bounds:MutableSequence[float]) -> None: ... + def DrawArc(self, x:float, y:float, r:float, startAngle:float, stopAngle:float) -> None: ... + def DrawEllipse(self, x:float, y:float, rx:float, ry:float) -> None: ... + def DrawEllipseWedge(self, x:float, y:float, outRx:float, outRy:float, inRx:float, inRy:float, startAngle:float, stopAngle:float) -> None: ... + def DrawEllipticArc(self, x:float, y:float, rX:float, rY:float, startAngle:float, stopAngle:float) -> None: ... + @overload + def DrawImage(self, x:float, y:float, image:'vtkImageData') -> None: ... + @overload + def DrawImage(self, x:float, y:float, scale:float, image:'vtkImageData') -> None: ... + @overload + def DrawImage(self, pos:'vtkRectf', image:'vtkImageData') -> None: ... + @overload + def DrawLine(self, x1:float, y1:float, x2:float, y2:float) -> None: ... + @overload + def DrawLine(self, p:MutableSequence[float]) -> None: ... + @overload + def DrawLine(self, points:'vtkPoints2D') -> None: ... + @overload + def DrawLines(self, points:'vtkPoints2D') -> None: ... + @overload + def DrawLines(self, points:MutableSequence[float], n:int) -> None: ... + @overload + def DrawMarkers(self, shape:int, highlight:bool, points:MutableSequence[float], n:int, colors:MutableSequence[int], nc_comps:int) -> None: ... + @overload + def DrawMarkers(self, shape:int, highlight:bool, points:MutableSequence[float], n:int) -> None: ... + @overload + def DrawMarkers(self, shape:int, highlight:bool, points:'vtkPoints2D') -> None: ... + @overload + def DrawMarkers(self, shape:int, highlight:bool, points:'vtkPoints2D', colors:'vtkUnsignedCharArray') -> None: ... + @overload + def DrawMathTextString(self, point:'vtkPoints2D', string:str) -> None: ... + @overload + def DrawMathTextString(self, x:float, y:float, string:str) -> None: ... + @overload + def DrawMathTextString(self, point:'vtkPoints2D', string:str, fallback:str) -> None: ... + @overload + def DrawMathTextString(self, x:float, y:float, string:str, fallback:str) -> None: ... + def DrawPoint(self, x:float, y:float) -> None: ... + @overload + def DrawPointSprites(self, sprite:'vtkImageData', points:'vtkPoints2D') -> None: ... + @overload + def DrawPointSprites(self, sprite:'vtkImageData', points:'vtkPoints2D', colors:'vtkUnsignedCharArray') -> None: ... + @overload + def DrawPointSprites(self, sprite:'vtkImageData', points:MutableSequence[float], n:int, colors:MutableSequence[int], nc_comps:int) -> None: ... + @overload + def DrawPointSprites(self, sprite:'vtkImageData', points:MutableSequence[float], n:int) -> None: ... + @overload + def DrawPoints(self, x:MutableSequence[float], y:MutableSequence[float], n:int) -> None: ... + @overload + def DrawPoints(self, points:'vtkPoints2D') -> None: ... + @overload + def DrawPoints(self, points:MutableSequence[float], n:int) -> None: ... + @overload + def DrawPoly(self, x:MutableSequence[float], y:MutableSequence[float], n:int) -> None: ... + @overload + def DrawPoly(self, points:'vtkPoints2D') -> None: ... + @overload + def DrawPoly(self, points:MutableSequence[float], n:int) -> None: ... + @overload + def DrawPoly(self, points:MutableSequence[float], n:int, colors:MutableSequence[int], nc_comps:int) -> None: ... + def DrawPolyData(self, x:float, y:float, polyData:'vtkPolyData', colors:'vtkUnsignedCharArray', scalarMode:int) -> None: ... + @overload + def DrawPolygon(self, x:MutableSequence[float], y:MutableSequence[float], n:int) -> None: ... + @overload + def DrawPolygon(self, points:'vtkPoints2D') -> None: ... + @overload + def DrawPolygon(self, points:MutableSequence[float], n:int) -> None: ... + @overload + def DrawPolygon(self, x:MutableSequence[float], y:MutableSequence[float], n:int, color:MutableSequence[int], nc_comps:int) -> None: ... + @overload + def DrawPolygon(self, points:'vtkPoints2D', color:MutableSequence[int], nc_comps:int) -> None: ... + @overload + def DrawPolygon(self, points:MutableSequence[float], n:int, color:MutableSequence[int], nc_comps:int) -> None: ... + @overload + def DrawQuad(self, x1:float, y1:float, x2:float, y2:float, x3:float, y3:float, x4:float, y4:float) -> None: ... + @overload + def DrawQuad(self, p:MutableSequence[float]) -> None: ... + @overload + def DrawQuadStrip(self, points:'vtkPoints2D') -> None: ... + @overload + def DrawQuadStrip(self, p:MutableSequence[float], n:int) -> None: ... + def DrawRect(self, x:float, y:float, w:float, h:float) -> None: ... + @overload + def DrawString(self, point:'vtkPoints2D', string:str) -> None: ... + @overload + def DrawString(self, x:float, y:float, string:str) -> None: ... + @overload + def DrawStringRect(self, rect:'vtkPoints2D', string:str) -> None: ... + @overload + def DrawStringRect(self, rect:Sequence[float], string:str) -> None: ... + def DrawWedge(self, x:float, y:float, outRadius:float, inRadius:float, startAngle:float, stopAngle:float) -> None: ... + def End(self) -> bool: ... + @staticmethod + def FloatToInt(x:float) -> int: ... + def GetBrush(self) -> 'vtkBrush': ... + def GetBufferIdMode(self) -> bool: ... + def GetContext3D(self) -> 'vtkContext3D': ... + def GetDevice(self) -> 'vtkContextDevice2D': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPen(self) -> 'vtkPen': ... + def GetTextProp(self) -> 'vtkTextProperty': ... + def GetTransform(self) -> 'vtkTransform2D': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MathTextIsSupported(self) -> bool: ... + def NewInstance(self) -> 'vtkContext2D': ... + def PopMatrix(self) -> None: ... + def PushMatrix(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContext2D': ... + def SetContext3D(self, context:'vtkContext3D') -> None: ... + def SetTransform(self, transform:'vtkTransform2D') -> None: ... + +class vtkContext3D(vtkmodules.vtkCommonCore.vtkObject): + device:'getset_descriptor' + transform:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AppendTransform(self, transform:'vtkTransform') -> None: ... + def ApplyBrush(self, brush:'vtkBrush') -> None: ... + def ApplyPen(self, pen:'vtkPen') -> None: ... + def Begin(self, device:'vtkContextDevice3D') -> bool: ... + def DisableClippingPlane(self, i:int) -> None: ... + def DrawLine(self, start:'vtkVector3f', end:'vtkVector3f') -> None: ... + def DrawPoint(self, point:'vtkVector3f') -> None: ... + @overload + def DrawPoints(self, points:Sequence[float], n:int) -> None: ... + @overload + def DrawPoints(self, points:Sequence[float], n:int, colors:MutableSequence[int], nc_comps:int) -> None: ... + def DrawPoly(self, points:Sequence[float], n:int) -> None: ... + def DrawTriangleMesh(self, mesh:Sequence[float], n:int, colors:Sequence[int] , nc:int) -> None: ... + def EnableClippingPlane(self, i:int, planeEquation:MutableSequence[float]) -> None: ... + def End(self) -> bool: ... + def GetDevice(self) -> 'vtkContextDevice3D': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTransform(self) -> 'vtkTransform': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContext3D': ... + def PopMatrix(self) -> None: ... + def PushMatrix(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContext3D': ... + def SetTransform(self, transform:'vtkTransform') -> None: ... + +class vtkContextActor(vtkmodules.vtkRenderingCore.vtkProp): + context:'getset_descriptor' + force_device:'getset_descriptor' + scene:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetContext(self) -> 'vtkContext2D': ... + def GetForceDevice(self) -> 'vtkContextDevice2D': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScene(self) -> 'vtkContextScene': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContextActor': ... + def ReleaseGraphicsResources(self, window:'vtkWindow') -> None: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContextActor': ... + def SetForceDevice(self, dev:'vtkContextDevice2D') -> None: ... + def SetScene(self, scene:'vtkContextScene') -> None: ... + +class vtkContextClip(vtkAbstractContextItem): + clip:'getset_descriptor' + height:'getset_descriptor' + width:'getset_descriptor' + x:'getset_descriptor' + y:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetHeight(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRect(self, rect:MutableSequence[float]) -> None: ... + def GetWidth(self) -> float: ... + def GetX(self) -> float: ... + def GetY(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContextClip': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContextClip': ... + def SetClip(self, x:float, y:float, width:float, height:float) -> None: ... + def Update(self) -> None: ... + +class vtkContextDevice2D(vtkmodules.vtkCommonCore.vtkObject): + class TextureProperty(int): ... + Linear:'TextureProperty' + Nearest:'TextureProperty' + Repeat:'TextureProperty' + Stretch:'TextureProperty' + brush:'getset_descriptor' + buffer_id_mode:'getset_descriptor' + clipping:'getset_descriptor' + color4:'getset_descriptor' + height:'getset_descriptor' + line_type:'getset_descriptor' + line_width:'getset_descriptor' + matrix:'getset_descriptor' + pen:'getset_descriptor' + point_size:'getset_descriptor' + text_prop:'getset_descriptor' + viewport_rect:'getset_descriptor' + viewport_size:'getset_descriptor' + width:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ApplyBrush(self, brush:'vtkBrush') -> None: ... + def ApplyPen(self, pen:'vtkPen') -> None: ... + def ApplyTextProp(self, prop:'vtkTextProperty') -> None: ... + def Begin(self, __a:'vtkViewport') -> None: ... + def BufferIdModeBegin(self, bufferId:'vtkAbstractContextBufferId') -> None: ... + def BufferIdModeEnd(self) -> None: ... + def ComputeJustifiedStringBounds(self, string:str, bounds:MutableSequence[float]) -> None: ... + def ComputeStringBounds(self, string:str, bounds:MutableSequence[float]) -> None: ... + def DisableClipping(self) -> None: ... + def DrawColoredPolygon(self, points:MutableSequence[float], numPoints:int, colors:MutableSequence[int]=..., nc_comps:int=0) -> None: ... + def DrawEllipseWedge(self, x:float, y:float, outRx:float, outRy:float, inRx:float, inRy:float, startAngle:float, stopAngle:float) -> None: ... + def DrawEllipticArc(self, x:float, y:float, rX:float, rY:float, startAngle:float, stopAngle:float) -> None: ... + @overload + def DrawImage(self, p:MutableSequence[float], scale:float, image:'vtkImageData') -> None: ... + @overload + def DrawImage(self, pos:'vtkRectf', image:'vtkImageData') -> None: ... + def DrawLines(self, f:MutableSequence[float], n:int, colors:MutableSequence[int]=..., nc_comps:int=0) -> None: ... + def DrawMarkers(self, shape:int, highlight:bool, points:MutableSequence[float], n:int, colors:MutableSequence[int]=..., nc_comps:int=0) -> None: ... + def DrawMathTextString(self, point:MutableSequence[float], string:str) -> None: ... + def DrawPointSprites(self, sprite:'vtkImageData', points:MutableSequence[float], n:int, colors:MutableSequence[int]=..., nc_comps:int=0) -> None: ... + def DrawPoints(self, points:MutableSequence[float], n:int, colors:MutableSequence[int]=..., nc_comps:int=0) -> None: ... + def DrawPoly(self, points:MutableSequence[float], n:int, colors:MutableSequence[int]=..., nc_comps:int=0) -> None: ... + def DrawPolyData(self, p:MutableSequence[float], scale:float, polyData:'vtkPolyData', colors:'vtkUnsignedCharArray', scalarMode:int) -> None: ... + def DrawPolygon(self, p:MutableSequence[float], n:int) -> None: ... + def DrawQuad(self, __a:MutableSequence[float], __b:int) -> None: ... + def DrawQuadStrip(self, __a:MutableSequence[float], __b:int) -> None: ... + def DrawString(self, point:MutableSequence[float], string:str) -> None: ... + def EnableClipping(self, enable:bool) -> None: ... + def End(self) -> None: ... + def GetBrush(self) -> 'vtkBrush': ... + def GetBufferIdMode(self) -> bool: ... + def GetHeight(self) -> int: ... + def GetMatrix(self, m:'vtkMatrix3x3') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPen(self) -> 'vtkPen': ... + def GetTextProp(self) -> 'vtkTextProperty': ... + def GetViewportRect(self) -> 'vtkRecti': ... + def GetViewportSize(self) -> 'vtkVector2i': ... + def GetWidth(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MathTextIsSupported(self) -> bool: ... + def MultiplyMatrix(self, m:'vtkMatrix3x3') -> None: ... + def NewInstance(self) -> 'vtkContextDevice2D': ... + def PopMatrix(self) -> None: ... + def PushMatrix(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContextDevice2D': ... + def SetClipping(self, x:MutableSequence[int]) -> None: ... + def SetColor4(self, color:MutableSequence[int]) -> None: ... + def SetLineType(self, type:int) -> None: ... + def SetLineWidth(self, width:float) -> None: ... + def SetMatrix(self, m:'vtkMatrix3x3') -> None: ... + def SetPointSize(self, size:float) -> None: ... + def SetTexture(self, image:'vtkImageData', properties:int) -> None: ... + def SetViewportRect(self, rect:'vtkRecti') -> None: ... + def SetViewportSize(self, size:'vtkVector2i') -> None: ... + +class vtkContextDevice3D(vtkmodules.vtkCommonCore.vtkObject): + clipping:'getset_descriptor' + matrix:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ApplyBrush(self, brush:'vtkBrush') -> None: ... + def ApplyPen(self, pen:'vtkPen') -> None: ... + def DisableClipping(self) -> None: ... + def DisableClippingPlane(self, i:int) -> None: ... + def DrawLines(self, verts:Sequence[float], n:int, colors:Sequence[int]=..., nc:int=0) -> None: ... + def DrawPoints(self, verts:Sequence[float], n:int, colors:Sequence[int]=..., nc:int=0) -> None: ... + def DrawPoly(self, verts:Sequence[float], n:int, colors:Sequence[int]=..., nc:int=0) -> None: ... + def DrawTriangleMesh(self, mesh:Sequence[float], n:int, colors:Sequence[int] , nc:int) -> None: ... + def EnableClipping(self, enable:bool) -> None: ... + def EnableClippingPlane(self, i:int, planeEquation:MutableSequence[float]) -> None: ... + def GetMatrix(self, m:'vtkMatrix4x4') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MultiplyMatrix(self, m:'vtkMatrix4x4') -> None: ... + def NewInstance(self) -> 'vtkContextDevice3D': ... + def PopMatrix(self) -> None: ... + def PushMatrix(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContextDevice3D': ... + def SetClipping(self, rect:'vtkRecti') -> None: ... + def SetMatrix(self, m:'vtkMatrix4x4') -> None: ... + +class vtkContextKeyEvent(object): + interactor:'getset_descriptor' + key_code:'getset_descriptor' + position:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkContextKeyEvent') -> None: ... + def GetInteractor(self) -> 'vtkRenderWindowInteractor': ... + def GetKeyCode(self) -> str: ... + def GetPosition(self) -> 'vtkVector2i': ... + def SetInteractor(self, interactor:'vtkRenderWindowInteractor') -> None: ... + def SetPosition(self, position:'vtkVector2i') -> None: ... + +class vtkContextMapper2D(vtkmodules.vtkCommonExecutionModel.vtkAlgorithm): + input:'getset_descriptor' + input_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInput(self) -> 'vtkTable': ... + def GetInputAbstractArrayToProcess(self, idx:int, input:'vtkDataObject') -> 'vtkAbstractArray': ... + def GetInputArrayToProcess(self, idx:int, input:'vtkDataObject') -> 'vtkDataArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContextMapper2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContextMapper2D': ... + def SetInputData(self, input:'vtkTable') -> None: ... + +class vtkContextMouseEvent(object): + ALT_MODIFIER:int + CONTROL_MODIFIER:int + LEFT_BUTTON:int + MIDDLE_BUTTON:int + NO_BUTTON:int + NO_MODIFIER:int + RIGHT_BUTTON:int + SHIFT_MODIFIER:int + button:'getset_descriptor' + interactor:'getset_descriptor' + last_pos:'getset_descriptor' + last_scene_pos:'getset_descriptor' + last_screen_pos:'getset_descriptor' + modifiers:'getset_descriptor' + pos:'getset_descriptor' + scene_pos:'getset_descriptor' + screen_pos:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkContextMouseEvent') -> None: ... + def GetButton(self) -> int: ... + def GetInteractor(self) -> 'vtkRenderWindowInteractor': ... + def GetLastPos(self) -> 'vtkVector2f': ... + def GetLastScenePos(self) -> 'vtkVector2f': ... + def GetLastScreenPos(self) -> 'vtkVector2i': ... + def GetModifiers(self) -> int: ... + def GetPos(self) -> 'vtkVector2f': ... + def GetScenePos(self) -> 'vtkVector2f': ... + def GetScreenPos(self) -> 'vtkVector2i': ... + def SetButton(self, button:int) -> None: ... + def SetInteractor(self, interactor:'vtkRenderWindowInteractor') -> None: ... + def SetLastPos(self, pos:'vtkVector2f') -> None: ... + def SetLastScenePos(self, pos:'vtkVector2f') -> None: ... + def SetLastScreenPos(self, pos:'vtkVector2i') -> None: ... + def SetPos(self, pos:'vtkVector2f') -> None: ... + def SetScenePos(self, pos:'vtkVector2f') -> None: ... + def SetScreenPos(self, pos:'vtkVector2i') -> None: ... + +class vtkContextScene(vtkmodules.vtkCommonCore.vtkObject): + class SelectionModifier(int): ... + SELECTION_ADDITION:'SelectionModifier' + SELECTION_DEFAULT:'SelectionModifier' + SELECTION_SUBTRACTION:'SelectionModifier' + SELECTION_TOGGLE:'SelectionModifier' + annotation_link:'getset_descriptor' + buffer_id:'getset_descriptor' + dirty:'getset_descriptor' + geometry:'getset_descriptor' + last_painter:'getset_descriptor' + logical_tile_scale:'getset_descriptor' + number_of_items:'getset_descriptor' + origin:'getset_descriptor' + picked_item:'getset_descriptor' + renderer:'getset_descriptor' + scale_tiles:'getset_descriptor' + scene_bottom:'getset_descriptor' + scene_height:'getset_descriptor' + scene_left:'getset_descriptor' + scene_width:'getset_descriptor' + transform:'getset_descriptor' + use_buffer_id:'getset_descriptor' + view_height:'getset_descriptor' + view_width:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, item:'vtkAbstractContextItem') -> int: ... + def ClearItems(self) -> None: ... + def GetAnnotationLink(self) -> 'vtkAnnotationLink': ... + def GetBufferId(self) -> 'vtkAbstractContextBufferId': ... + def GetDirty(self) -> bool: ... + def GetGeometry(self) -> Tuple[int, int]: ... + def GetItem(self, index:int) -> 'vtkAbstractContextItem': ... + def GetLastPainter(self) -> 'vtkWeakPointer_I12vtkContext2DE': ... + def GetLogicalTileScale(self) -> 'vtkVector2i': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfItems(self) -> int: ... + def GetOrigin(self) -> Tuple[int, int]: ... + @overload + def GetPickedItem(self, x:int, y:int) -> int: ... + @overload + def GetPickedItem(self) -> 'vtkAbstractContextItem': ... + def GetRenderer(self) -> 'vtkRenderer': ... + def GetScaleTiles(self) -> bool: ... + def GetSceneBottom(self) -> int: ... + def GetSceneHeight(self) -> int: ... + def GetSceneLeft(self) -> int: ... + def GetSceneWidth(self) -> int: ... + def GetTransform(self) -> 'vtkTransform2D': ... + def GetUseBufferId(self) -> bool: ... + def GetViewHeight(self) -> int: ... + def GetViewWidth(self) -> int: ... + def HasTransform(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContextScene': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def ReleaseGraphicsResources(self) -> None: ... + def RemoveAllItems(self) -> None: ... + @overload + def RemoveItem(self, item:'vtkAbstractContextItem') -> bool: ... + @overload + def RemoveItem(self, index:int) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContextScene': ... + def ScaleTilesOff(self) -> None: ... + def ScaleTilesOn(self) -> None: ... + def SetAnnotationLink(self, link:'vtkAnnotationLink') -> None: ... + def SetDirty(self, isDirty:bool) -> None: ... + @overload + def SetGeometry(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetGeometry(self, _arg:Sequence[int]) -> None: ... + @overload + def SetOrigin(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetOrigin(self, _arg:Sequence[int]) -> None: ... + def SetRenderer(self, renderer:'vtkRenderer') -> None: ... + def SetScaleTiles(self, _arg:bool) -> None: ... + def SetTransform(self, transform:'vtkTransform2D') -> None: ... + def SetUseBufferId(self, _arg:bool) -> None: ... + +class vtkContextTransform(vtkAbstractContextItem): + pan_modifier:'getset_descriptor' + pan_mouse_button:'getset_descriptor' + pan_y_on_mouse_wheel:'getset_descriptor' + secondary_pan_modifier:'getset_descriptor' + secondary_pan_mouse_button:'getset_descriptor' + secondary_zoom_modifier:'getset_descriptor' + secondary_zoom_mouse_button:'getset_descriptor' + transform:'getset_descriptor' + zoom_modifier:'getset_descriptor' + zoom_mouse_button:'getset_descriptor' + zoom_on_mouse_wheel:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPanModifier(self) -> int: ... + def GetPanMouseButton(self) -> int: ... + def GetPanYOnMouseWheel(self) -> bool: ... + def GetSecondaryPanModifier(self) -> int: ... + def GetSecondaryPanMouseButton(self) -> int: ... + def GetSecondaryZoomModifier(self) -> int: ... + def GetSecondaryZoomMouseButton(self) -> int: ... + def GetTransform(self) -> 'vtkTransform2D': ... + def GetZoomModifier(self) -> int: ... + def GetZoomMouseButton(self) -> int: ... + def GetZoomOnMouseWheel(self) -> bool: ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def Identity(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MapFromParent(self, point:'vtkVector2f') -> 'vtkVector2f': ... + def MapToParent(self, point:'vtkVector2f') -> 'vtkVector2f': ... + def MouseButtonPressEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseMoveEvent(self, mouse:'vtkContextMouseEvent') -> bool: ... + def MouseWheelEvent(self, mouse:'vtkContextMouseEvent', delta:int) -> bool: ... + def NewInstance(self) -> 'vtkContextTransform': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def PanYOnMouseWheelOff(self) -> None: ... + def PanYOnMouseWheelOn(self) -> None: ... + def Rotate(self, angle:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContextTransform': ... + def Scale(self, dx:float, dy:float) -> None: ... + def SetPanModifier(self, _arg:int) -> None: ... + def SetPanMouseButton(self, _arg:int) -> None: ... + def SetPanYOnMouseWheel(self, _arg:bool) -> None: ... + def SetSecondaryPanModifier(self, _arg:int) -> None: ... + def SetSecondaryPanMouseButton(self, _arg:int) -> None: ... + def SetSecondaryZoomModifier(self, _arg:int) -> None: ... + def SetSecondaryZoomMouseButton(self, _arg:int) -> None: ... + def SetZoomModifier(self, _arg:int) -> None: ... + def SetZoomMouseButton(self, _arg:int) -> None: ... + def SetZoomOnMouseWheel(self, _arg:bool) -> None: ... + def Translate(self, dx:float, dy:float) -> None: ... + def Update(self) -> None: ... + def ZoomOnMouseWheelOff(self) -> None: ... + def ZoomOnMouseWheelOn(self) -> None: ... + +class vtkImageItem(vtkContextItem): + image:'getset_descriptor' + position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetImage(self) -> 'vtkImageData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPosition(self) -> Tuple[float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageItem': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageItem': ... + def SetImage(self, image:'vtkImageData') -> None: ... + @overload + def SetPosition(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetPosition(self, _arg:Sequence[float]) -> None: ... + +class vtkPolyDataItem(vtkContextItem): + mapped_colors:'getset_descriptor' + poly_data:'getset_descriptor' + position:'getset_descriptor' + scalar_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPolyData(self) -> 'vtkPolyData': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyDataItem': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataItem': ... + def SetMappedColors(self, colors:'vtkUnsignedCharArray') -> None: ... + def SetPolyData(self, polyData:'vtkPolyData') -> None: ... + @overload + def SetPosition(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetPosition(self, _arg:Sequence[float]) -> None: ... + def SetScalarMode(self, _arg:int) -> None: ... + +class vtkLabeledContourPolyDataItem(vtkPolyDataItem): + label_visibility:'getset_descriptor' + skip_distance:'getset_descriptor' + text_properties:'getset_descriptor' + text_property:'getset_descriptor' + text_property_mapping:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLabelVisibility(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSkipDistance(self) -> float: ... + def GetTextProperties(self) -> 'vtkTextPropertyCollection': ... + def GetTextPropertyMapping(self) -> 'vtkDoubleArray': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LabelVisibilityOff(self) -> None: ... + def LabelVisibilityOn(self) -> None: ... + def NewInstance(self) -> 'vtkLabeledContourPolyDataItem': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLabeledContourPolyDataItem': ... + def SetLabelVisibility(self, _arg:bool) -> None: ... + def SetSkipDistance(self, _arg:float) -> None: ... + def SetTextProperties(self, coll:'vtkTextPropertyCollection') -> None: ... + def SetTextProperty(self, tprop:'vtkTextProperty') -> None: ... + def SetTextPropertyMapping(self, mapping:'vtkDoubleArray') -> None: ... + +class vtkMarkerUtilities(vtkmodules.vtkCommonCore.vtkObject): + CIRCLE:int + CROSS:int + DIAMOND:int + NONE:int + PLUS:int + SQUARE:int + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def GenerateMarker(data:'vtkImageData', style:int, width:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMarkerUtilities': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMarkerUtilities': ... + +class vtkPen(vtkmodules.vtkCommonCore.vtkObject): + DASH_DOT_DOT_LINE:int + DASH_DOT_LINE:int + DASH_LINE:int + DENSE_DOT_LINE:int + DOT_LINE:int + NO_PEN:int + SOLID_LINE:int + color:'getset_descriptor' + color_f:'getset_descriptor' + color_object:'getset_descriptor' + line_type:'getset_descriptor' + opacity:'getset_descriptor' + opacity_f:'getset_descriptor' + width:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self, pen:'vtkPen') -> None: ... + @overload + def GetColor(self, color:MutableSequence[int]) -> None: ... + @overload + def GetColor(self) -> Pointer: ... + def GetColorF(self, color:MutableSequence[float]) -> None: ... + def GetColorObject(self) -> 'vtkColor4ub': ... + def GetLineType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOpacity(self) -> int: ... + def GetWidth(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPen': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPen': ... + @overload + def SetColor(self, color:MutableSequence[int]) -> None: ... + @overload + def SetColor(self, r:int, g:int, b:int) -> None: ... + @overload + def SetColor(self, r:int, g:int, b:int, a:int) -> None: ... + @overload + def SetColor(self, color:'vtkColor4ub') -> None: ... + @overload + def SetColorF(self, color:MutableSequence[float]) -> None: ... + @overload + def SetColorF(self, r:float, g:float, b:float) -> None: ... + @overload + def SetColorF(self, r:float, g:float, b:float, a:float) -> None: ... + def SetLineType(self, type:int) -> None: ... + def SetOpacity(self, a:int) -> None: ... + def SetOpacityF(self, a:float) -> None: ... + def SetWidth(self, _arg:float) -> None: ... + +class vtkPropItem(vtkAbstractContextItem): + prop_object:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPropObject(self) -> 'vtkProp': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPropItem': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def ReleaseGraphicsResources(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPropItem': ... + def SetPropObject(self, PropObject:'vtkProp') -> None: ... + +class vtkTooltipItem(vtkContextItem): + brush:'getset_descriptor' + pen:'getset_descriptor' + position:'getset_descriptor' + position_vector:'getset_descriptor' + text:'getset_descriptor' + text_properties:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBrush(self) -> 'vtkBrush': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPen(self) -> 'vtkPen': ... + def GetPosition(self) -> Tuple[float, float]: ... + def GetPositionVector(self) -> 'vtkVector2f': ... + def GetText(self) -> str: ... + def GetTextProperties(self) -> 'vtkTextProperty': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTooltipItem': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTooltipItem': ... + @overload + def SetPosition(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetPosition(self, _arg:Sequence[float]) -> None: ... + @overload + def SetPosition(self, pos:'vtkVector2f') -> None: ... + def SetText(self, text:str) -> None: ... + def Update(self) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingContextOpenGL2.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingContextOpenGL2.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..e94d54a Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingContextOpenGL2.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingContextOpenGL2.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingContextOpenGL2.pyi new file mode 100644 index 0000000..40ec073 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingContextOpenGL2.pyi @@ -0,0 +1,160 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingContext2D + +class vtkOpenGLContextActor(vtkmodules.vtkRenderingContext2D.vtkContextActor): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLContextActor': ... + def ReleaseGraphicsResources(self, window:'vtkWindow') -> None: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLContextActor': ... + +class vtkOpenGLContextBufferId(vtkmodules.vtkRenderingContext2D.vtkAbstractContextBufferId): + context:'getset_descriptor' + values:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self) -> None: ... + def GetContext(self) -> 'vtkRenderWindow': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPickedItem(self, x:int, y:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsAllocated(self) -> bool: ... + def IsSupported(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLContextBufferId': ... + def ReleaseGraphicsResources(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLContextBufferId': ... + def SetContext(self, context:'vtkRenderWindow') -> None: ... + def SetValues(self, srcXmin:int, srcYmin:int) -> None: ... + +class vtkOpenGLContextDevice2D(vtkmodules.vtkRenderingContext2D.vtkContextDevice2D): + clipping:'getset_descriptor' + color:'getset_descriptor' + color4:'getset_descriptor' + line_type:'getset_descriptor' + line_width:'getset_descriptor' + matrix:'getset_descriptor' + maximum_marker_cache_size:'getset_descriptor' + model_matrix:'getset_descriptor' + point_size:'getset_descriptor' + projection_matrix:'getset_descriptor' + render_window:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Begin(self, viewport:'vtkViewport') -> None: ... + def BufferIdModeBegin(self, bufferId:'vtkAbstractContextBufferId') -> None: ... + def BufferIdModeEnd(self) -> None: ... + def ComputeJustifiedStringBounds(self, string:str, bounds:MutableSequence[float]) -> None: ... + def ComputeStringBounds(self, string:str, bounds:MutableSequence[float]) -> None: ... + def DrawColoredPolygon(self, points:MutableSequence[float], numPoints:int, colors:MutableSequence[int]=..., nc_comps:int=0) -> None: ... + def DrawEllipseWedge(self, x:float, y:float, outRx:float, outRy:float, inRx:float, inRy:float, startAngle:float, stopAngle:float) -> None: ... + def DrawEllipticArc(self, x:float, y:float, rX:float, rY:float, startAngle:float, stopAngle:float) -> None: ... + @overload + def DrawImage(self, p:MutableSequence[float], scale:float, image:'vtkImageData') -> None: ... + @overload + def DrawImage(self, pos:'vtkRectf', image:'vtkImageData') -> None: ... + def DrawLines(self, f:MutableSequence[float], n:int, colors:MutableSequence[int]=..., nc_comps:int=0) -> None: ... + def DrawMarkers(self, shape:int, highlight:bool, points:MutableSequence[float], n:int, colors:MutableSequence[int]=..., nc_comps:int=0) -> None: ... + def DrawMathTextString(self, point:MutableSequence[float], string:str) -> None: ... + def DrawPointSprites(self, sprite:'vtkImageData', points:MutableSequence[float], n:int, colors:MutableSequence[int]=..., nc_comps:int=0) -> None: ... + def DrawPoints(self, points:MutableSequence[float], n:int, colors:MutableSequence[int]=..., nc_comps:int=0) -> None: ... + def DrawPoly(self, f:MutableSequence[float], n:int, colors:MutableSequence[int]=..., nc_comps:int=0) -> None: ... + def DrawPolyData(self, p:MutableSequence[float], scale:float, polyData:'vtkPolyData', colors:'vtkUnsignedCharArray', scalarMode:int) -> None: ... + def DrawPolygon(self, __a:MutableSequence[float], __b:int) -> None: ... + def DrawQuad(self, points:MutableSequence[float], n:int) -> None: ... + def DrawQuadStrip(self, points:MutableSequence[float], n:int) -> None: ... + def DrawString(self, point:MutableSequence[float], string:str) -> None: ... + def EnableClipping(self, enable:bool) -> None: ... + def End(self) -> None: ... + def GetMatrix(self, m:'vtkMatrix3x3') -> None: ... + def GetMaximumMarkerCacheSize(self) -> int: ... + def GetModelMatrix(self) -> 'vtkMatrix4x4': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProjectionMatrix(self) -> 'vtkMatrix4x4': ... + def GetRenderWindow(self) -> 'vtkOpenGLRenderWindow': ... + def HasGLSL(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MultiplyMatrix(self, m:'vtkMatrix3x3') -> None: ... + def NewInstance(self) -> 'vtkOpenGLContextDevice2D': ... + def PopMatrix(self) -> None: ... + def PushMatrix(self) -> None: ... + def ReleaseGraphicsResources(self, window:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLContextDevice2D': ... + def SetClipping(self, x:MutableSequence[int]) -> None: ... + def SetColor(self, color:MutableSequence[int]) -> None: ... + def SetColor4(self, color:MutableSequence[int]) -> None: ... + def SetLineType(self, type:int) -> None: ... + def SetLineWidth(self, width:float) -> None: ... + def SetMatrix(self, m:'vtkMatrix3x3') -> None: ... + def SetMaximumMarkerCacheSize(self, _arg:int) -> None: ... + def SetPointSize(self, size:float) -> None: ... + def SetStringRendererToFreeType(self) -> bool: ... + def SetStringRendererToQt(self) -> bool: ... + def SetTexture(self, image:'vtkImageData', properties:int=0) -> None: ... + +class vtkOpenGLContextDevice3D(vtkmodules.vtkRenderingContext2D.vtkContextDevice3D): + clipping:'getset_descriptor' + matrix:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ApplyBrush(self, brush:'vtkBrush') -> None: ... + def ApplyPen(self, pen:'vtkPen') -> None: ... + def Begin(self, viewport:'vtkViewport') -> None: ... + def DisableClippingPlane(self, i:int) -> None: ... + def DrawLines(self, verts:Sequence[float], n:int, colors:Sequence[int], nc:int) -> None: ... + def DrawPoints(self, verts:Sequence[float], n:int, colors:Sequence[int], nc:int) -> None: ... + def DrawPoly(self, verts:Sequence[float], n:int, colors:Sequence[int], nc:int) -> None: ... + def DrawTriangleMesh(self, mesh:Sequence[float], n:int, colors:Sequence[int] , nc:int) -> None: ... + def EnableClipping(self, enable:bool) -> None: ... + def EnableClippingPlane(self, i:int, planeEquation:MutableSequence[float]) -> None: ... + def GetMatrix(self, m:'vtkMatrix4x4') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, __a:'vtkRenderer', __b:'vtkOpenGLContextDevice2D') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MultiplyMatrix(self, m:'vtkMatrix4x4') -> None: ... + def NewInstance(self) -> 'vtkOpenGLContextDevice3D': ... + def PopMatrix(self) -> None: ... + def PushMatrix(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLContextDevice3D': ... + def SetClipping(self, rect:'vtkRecti') -> None: ... + def SetMatrix(self, m:'vtkMatrix4x4') -> None: ... + +class vtkOpenGLPropItem(vtkmodules.vtkRenderingContext2D.vtkPropItem): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLPropItem': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLPropItem': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingCore.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingCore.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..9425c4e Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingCore.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingCore.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingCore.pyi new file mode 100644 index 0000000..0ecd1d6 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingCore.pyi @@ -0,0 +1,7785 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonDataModel +import vtkmodules.vtkCommonExecutionModel + +VTKIS_ANIM_OFF:int +VTKIS_ANIM_ON:int +VTKIS_CLIP:int +VTKIS_DOLLY:int +VTKIS_ELEVATION:int +VTKIS_ENV_ROTATE:int +VTKIS_EXIT:int +VTKIS_FORWARDFLY:int +VTKIS_GESTURE:int +VTKIS_GROUNDMOVEMENT:int +VTKIS_LOAD_CAMERA_POSE:int +VTKIS_MENU:int +VTKIS_NONE:int +VTKIS_PAN:int +VTKIS_PICK:int +VTKIS_POSITION_PROP:int +VTKIS_REVERSEFLY:int +VTKIS_ROTATE:int +VTKIS_SPIN:int +VTKIS_START:int +VTKIS_TELEPORTATION:int +VTKIS_TIMER:int +VTKIS_TOGGLE_DRAW_CONTROLS:int +VTKIS_TWO_POINTER:int +VTKIS_USCALE:int +VTKIS_ZOOM:int +VTKI_MAX_POINTERS:int +VTKI_TIMER_FIRST:int +VTKI_TIMER_UPDATE:int +VTK_BACKGROUND_LOCATION:int +VTK_CTF_DIVERGING:int +VTK_CTF_HSV:int +VTK_CTF_LAB:int +VTK_CTF_LAB_CIEDE2000:int +VTK_CTF_LINEAR:int +VTK_CTF_LOG10:int +VTK_CTF_PROLAB:int +VTK_CTF_RGB:int +VTK_CTF_STEP:int +VTK_CULLER_SORT_BACK_TO_FRONT:int +VTK_CULLER_SORT_FRONT_TO_BACK:int +VTK_CULLER_SORT_NONE:int +VTK_CURSOR_ARROW:int +VTK_CURSOR_CROSSHAIR:int +VTK_CURSOR_CUSTOM:int +VTK_CURSOR_DEFAULT:int +VTK_CURSOR_HAND:int +VTK_CURSOR_SIZEALL:int +VTK_CURSOR_SIZENE:int +VTK_CURSOR_SIZENS:int +VTK_CURSOR_SIZENW:int +VTK_CURSOR_SIZESE:int +VTK_CURSOR_SIZESW:int +VTK_CURSOR_SIZEWE:int +VTK_DISPLAY:int +VTK_FLAT:int +VTK_FOREGROUND_LOCATION:int +VTK_GET_ARRAY_BY_ID:int +VTK_GET_ARRAY_BY_NAME:int +VTK_GOURAUD:int +VTK_LABEL_FIELD_DATA:int +VTK_LABEL_IDS:int +VTK_LABEL_NORMALS:int +VTK_LABEL_SCALARS:int +VTK_LABEL_TCOORDS:int +VTK_LABEL_TENSORS:int +VTK_LABEL_VECTORS:int +VTK_LIGHT_TYPE_CAMERA_LIGHT:int +VTK_LIGHT_TYPE_HEADLIGHT:int +VTK_LIGHT_TYPE_SCENE_LIGHT:int +VTK_MARKER_CIRCLE:int +VTK_MARKER_CROSS:int +VTK_MARKER_DIAMOND:int +VTK_MARKER_NONE:int +VTK_MARKER_PLUS:int +VTK_MARKER_SQUARE:int +VTK_MARKER_UNKNOWN:int +VTK_MATERIALMODE_AMBIENT:int +VTK_MATERIALMODE_AMBIENT_AND_DIFFUSE:int +VTK_MATERIALMODE_DEFAULT:int +VTK_MATERIALMODE_DIFFUSE:int +VTK_NORMALIZED_DISPLAY:int +VTK_NORMALIZED_VIEWPORT:int +VTK_PBR:int +VTK_PHONG:int +VTK_POINTS:int +VTK_POSE:int +VTK_RESOLVE_OFF:int +VTK_RESOLVE_POLYGON_OFFSET:int +VTK_RESOLVE_SHIFT_ZBUFFER:int +VTK_SCALAR_MODE_DEFAULT:int +VTK_SCALAR_MODE_USE_CELL_DATA:int +VTK_SCALAR_MODE_USE_CELL_FIELD_DATA:int +VTK_SCALAR_MODE_USE_FIELD_DATA:int +VTK_SCALAR_MODE_USE_POINT_DATA:int +VTK_SCALAR_MODE_USE_POINT_FIELD_DATA:int +VTK_STEREO_ANAGLYPH:int +VTK_STEREO_CHECKERBOARD:int +VTK_STEREO_CRYSTAL_EYES:int +VTK_STEREO_DRESDEN:int +VTK_STEREO_EMULATE:int +VTK_STEREO_FAKE:int +VTK_STEREO_INTERLACED:int +VTK_STEREO_LEFT:int +VTK_STEREO_RED_BLUE:int +VTK_STEREO_RIGHT:int +VTK_STEREO_SPLITVIEWPORT_HORIZONTAL:int +VTK_STEREO_ZSPACE_INSPIRE:int +VTK_SURFACE:int +VTK_TEXTURE_QUALITY_16BIT:int +VTK_TEXTURE_QUALITY_32BIT:int +VTK_TEXTURE_QUALITY_DEFAULT:int +VTK_USERDEFINED:int +VTK_VIEW:int +VTK_VIEWPORT:int +VTK_WIREFRAME:int +VTK_WORLD:int +VTK_ZBUFFER:int +vtkMaxPythagoreanQuadrupleId:int + +class vtkAbstractMapper(vtkmodules.vtkCommonExecutionModel.vtkAlgorithm): + clipping_planes:'getset_descriptor' + m_time:'getset_descriptor' + number_of_clipping_planes:'getset_descriptor' + time_to_draw:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddClippingPlane(self, plane:'vtkPlane') -> None: ... + @staticmethod + def GetAbstractScalars(input:'vtkDataSet', scalarMode:int, arrayAccessMode:int, arrayId:int, arrayName:str, cellFlag:int) -> 'vtkAbstractArray': ... + def GetClippingPlanes(self) -> 'vtkPlaneCollection': ... + @staticmethod + def GetGhostArray(input:'vtkDataSet', scalarMode:int, ghostsToSkip:int) -> 'vtkUnsignedCharArray': ... + def GetMTime(self) -> int: ... + def GetNumberOfClippingPlanes(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GetScalars(input:'vtkDataSet', scalarMode:int, arrayAccessMode:int, arrayId:int, arrayName:str, cellFlag:int) -> 'vtkDataArray': ... + def GetTimeToDraw(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAbstractMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RemoveAllClippingPlanes(self) -> None: ... + def RemoveClippingPlane(self, plane:'vtkPlane') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractMapper': ... + @overload + def SetClippingPlanes(self, __a:'vtkPlaneCollection') -> None: ... + @overload + def SetClippingPlanes(self, planes:'vtkPlanes') -> None: ... + def ShallowCopy(self, m:'vtkAbstractMapper') -> None: ... + +class vtkAbstractMapper3D(vtkAbstractMapper): + bounds:'getset_descriptor' + center:'getset_descriptor' + length:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetCenter(self) -> Tuple[float, float, float]: ... + @overload + def GetCenter(self, center:MutableSequence[float]) -> None: ... + def GetClippingPlaneInDataCoords(self, propMatrix:'vtkMatrix4x4', i:int, planeEquation:MutableSequence[float]) -> None: ... + def GetLength(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsARayCastMapper(self) -> int: ... + def IsARenderIntoImageMapper(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAbstractMapper3D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractMapper3D': ... + +class vtkAbstractVolumeMapper(vtkAbstractMapper3D): + array_access_mode:'getset_descriptor' + array_id:'getset_descriptor' + array_name:'getset_descriptor' + bounds:'getset_descriptor' + data_object_input:'getset_descriptor' + data_set_input:'getset_descriptor' + gradient_magnitude_bias:'getset_descriptor' + gradient_magnitude_scale:'getset_descriptor' + scalar_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArrayAccessMode(self) -> int: ... + def GetArrayId(self) -> int: ... + def GetArrayName(self) -> str: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetDataObjectInput(self) -> 'vtkDataObject': ... + def GetDataSetInput(self) -> 'vtkDataSet': ... + @overload + def GetGradientMagnitudeBias(self) -> float: ... + @overload + def GetGradientMagnitudeBias(self, __a:int) -> float: ... + @overload + def GetGradientMagnitudeScale(self) -> float: ... + @overload + def GetGradientMagnitudeScale(self, __a:int) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScalarMode(self) -> int: ... + def GetScalarModeAsString(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAbstractVolumeMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer', vol:'vtkVolume') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractVolumeMapper': ... + @overload + def SelectScalarArray(self, arrayNum:int) -> None: ... + @overload + def SelectScalarArray(self, arrayName:str) -> None: ... + def SetArrayAccessMode(self, _arg:int) -> None: ... + def SetScalarMode(self, _arg:int) -> None: ... + def SetScalarModeToDefault(self) -> None: ... + def SetScalarModeToUseCellData(self) -> None: ... + def SetScalarModeToUseCellFieldData(self) -> None: ... + def SetScalarModeToUsePointData(self) -> None: ... + def SetScalarModeToUsePointFieldData(self) -> None: ... + +class vtkAbstractHyperTreeGridMapper(vtkAbstractVolumeMapper): + color_map:'getset_descriptor' + input:'getset_descriptor' + input_connection:'getset_descriptor' + input_data:'getset_descriptor' + m_time:'getset_descriptor' + renderer:'getset_descriptor' + scalar_range:'getset_descriptor' + scale:'getset_descriptor' + viewport_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetColorMap(self) -> 'vtkScalarsToColors': ... + def GetInput(self) -> 'vtkUniformHyperTreeGrid': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderer(self) -> 'vtkRenderer': ... + def GetScalarRange(self) -> Tuple[float, float]: ... + def GetViewportSize(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAbstractHyperTreeGridMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, __a:'vtkRenderer', __b:'vtkVolume') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractHyperTreeGridMapper': ... + def SetColorMap(self, __a:'vtkScalarsToColors') -> None: ... + @overload + def SetInputConnection(self, __a:int, __b:'vtkAlgorithmOutput') -> None: ... + @overload + def SetInputConnection(self, input:'vtkAlgorithmOutput') -> None: ... + def SetInputData(self, __a:'vtkUniformHyperTreeGrid') -> None: ... + def SetRenderer(self, __a:'vtkRenderer') -> None: ... + @overload + def SetScalarRange(self, __a:float, __b:float) -> None: ... + @overload + def SetScalarRange(self, __a:MutableSequence[float]) -> None: ... + def SetScale(self, _arg:float) -> None: ... + +class vtkAbstractInteractionDevice(vtkmodules.vtkCommonCore.vtkObject): + render_device:'getset_descriptor' + render_widget:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderDevice(self) -> 'vtkAbstractRenderDevice': ... + def GetRenderWidget(self) -> 'vtkRenderWidget': ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAbstractInteractionDevice': ... + def ProcessEvents(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractInteractionDevice': ... + def SetRenderDevice(self, device:'vtkAbstractRenderDevice') -> None: ... + def SetRenderWidget(self, widget:'vtkRenderWidget') -> None: ... + def Start(self) -> None: ... + +class vtkAbstractPicker(vtkmodules.vtkCommonCore.vtkObject): + pick_from_list:'getset_descriptor' + pick_list:'getset_descriptor' + pick_position:'getset_descriptor' + renderer:'getset_descriptor' + selection_point:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddPickList(self, __a:'vtkProp') -> None: ... + def DeletePickList(self, __a:'vtkProp') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPickFromList(self) -> int: ... + def GetPickList(self) -> 'vtkPropCollection': ... + def GetPickPosition(self) -> Tuple[float, float, float]: ... + def GetRenderer(self) -> 'vtkRenderer': ... + def GetSelectionPoint(self) -> Tuple[float, float, float]: ... + def InitializePickList(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAbstractPicker': ... + @overload + def Pick(self, selectionX:float, selectionY:float, selectionZ:float, renderer:'vtkRenderer') -> int: ... + @overload + def Pick(self, selectionPt:MutableSequence[float], ren:'vtkRenderer') -> int: ... + def Pick3DPoint(self, __a:MutableSequence[float], __b:'vtkRenderer') -> int: ... + def Pick3DRay(self, __a:MutableSequence[float], __b:MutableSequence[float], __c:'vtkRenderer') -> int: ... + def PickFromListOff(self) -> None: ... + def PickFromListOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractPicker': ... + def SetPickFromList(self, _arg:int) -> None: ... + +class vtkAbstractPropPicker(vtkAbstractPicker): + actor:'getset_descriptor' + actor2d:'getset_descriptor' + assembly:'getset_descriptor' + path:'getset_descriptor' + prop3d:'getset_descriptor' + prop_assembly:'getset_descriptor' + view_prop:'getset_descriptor' + volume:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetActor(self) -> 'vtkActor': ... + def GetActor2D(self) -> 'vtkActor2D': ... + def GetAssembly(self) -> 'vtkAssembly': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPath(self) -> 'vtkAssemblyPath': ... + def GetProp3D(self) -> 'vtkProp3D': ... + def GetPropAssembly(self) -> 'vtkPropAssembly': ... + def GetViewProp(self) -> 'vtkProp': ... + def GetVolume(self) -> 'vtkVolume': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAbstractPropPicker': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractPropPicker': ... + def SetPath(self, __a:'vtkAssemblyPath') -> None: ... + +class vtkAbstractRenderDevice(vtkmodules.vtkCommonCore.vtkObject): + requested_gl_version:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateNewWindow(self, geometry:'vtkRecti', name:str) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeCurrent(self) -> None: ... + def NewInstance(self) -> 'vtkAbstractRenderDevice': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAbstractRenderDevice': ... + def SetRequestedGLVersion(self, major:int, minor:int) -> None: ... + +class vtkProp(vtkmodules.vtkCommonCore.vtkObject): + allocated_render_time:'getset_descriptor' + bounds:'getset_descriptor' + dragable:'getset_descriptor' + estimated_render_time:'getset_descriptor' + matrix:'getset_descriptor' + next_path:'getset_descriptor' + number_of_paths:'getset_descriptor' + pickable:'getset_descriptor' + property_keys:'getset_descriptor' + redraw_m_time:'getset_descriptor' + render_time_multiplier:'getset_descriptor' + shader_property:'getset_descriptor' + supports_selection:'getset_descriptor' + use_bounds:'getset_descriptor' + visibility:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddConsumer(self, c:'vtkObject') -> None: ... + def AddEstimatedRenderTime(self, t:float, vp:'vtkViewport') -> None: ... + def BuildPaths(self, paths:'vtkAssemblyPaths', path:'vtkAssemblyPath') -> None: ... + def DragableOff(self) -> None: ... + def DragableOn(self) -> None: ... + @staticmethod + def GeneralTextureTransform() -> 'vtkInformationDoubleVectorKey': ... + @staticmethod + def GeneralTextureUnit() -> 'vtkInformationIntegerKey': ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetActors2D(self, __a:'vtkPropCollection') -> None: ... + def GetAllocatedRenderTime(self) -> float: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetConsumer(self, i:int) -> 'vtkObject': ... + def GetDragable(self) -> int: ... + @overload + def GetEstimatedRenderTime(self, __a:'vtkViewport') -> float: ... + @overload + def GetEstimatedRenderTime(self) -> float: ... + def GetMatrix(self) -> 'vtkMatrix4x4': ... + def GetNextPath(self) -> 'vtkAssemblyPath': ... + def GetNumberOfConsumers(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPaths(self) -> int: ... + def GetPickable(self) -> int: ... + def GetPropertyKeys(self) -> 'vtkInformation': ... + def GetRedrawMTime(self) -> int: ... + def GetRenderTimeMultiplier(self) -> float: ... + def GetShaderProperty(self) -> 'vtkShaderProperty': ... + def GetSupportsSelection(self) -> bool: ... + def GetUseBounds(self) -> bool: ... + def GetVisibility(self) -> int: ... + def GetVolumes(self, __a:'vtkPropCollection') -> None: ... + def HasKeys(self, requiredKeys:'vtkInformation') -> bool: ... + def HasOpaqueGeometry(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def InitPathTraversal(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsConsumer(self, c:'vtkObject') -> int: ... + def IsRenderingTranslucentPolygonalGeometry(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProp': ... + def Pick(self) -> None: ... + def PickableOff(self) -> None: ... + def PickableOn(self) -> None: ... + def PokeMatrix(self, matrix:'vtkMatrix4x4') -> None: ... + def ProcessSelectorPixelBuffers(self, __a:'vtkHardwareSelector', __b:MutableSequence[int]) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RemoveConsumer(self, c:'vtkObject') -> None: ... + def RenderFilteredOpaqueGeometry(self, v:'vtkViewport', requiredKeys:'vtkInformation') -> bool: ... + def RenderFilteredOverlay(self, v:'vtkViewport', requiredKeys:'vtkInformation') -> bool: ... + def RenderFilteredTranslucentPolygonalGeometry(self, v:'vtkViewport', requiredKeys:'vtkInformation') -> bool: ... + def RenderFilteredVolumetricGeometry(self, v:'vtkViewport', requiredKeys:'vtkInformation') -> bool: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + def RenderVolumetricGeometry(self, __a:'vtkViewport') -> int: ... + def RestoreEstimatedRenderTime(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProp': ... + def SetAllocatedRenderTime(self, t:float, v:'vtkViewport') -> None: ... + def SetDragable(self, _arg:int) -> None: ... + def SetEstimatedRenderTime(self, t:float) -> None: ... + def SetPickable(self, _arg:int) -> None: ... + def SetPropertyKeys(self, keys:'vtkInformation') -> None: ... + def SetRenderTimeMultiplier(self, t:float) -> None: ... + def SetShaderProperty(self, property:'vtkShaderProperty') -> None: ... + def SetUseBounds(self, _arg:bool) -> None: ... + def SetVisibility(self, _arg:int) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def UseBoundsOff(self) -> None: ... + def UseBoundsOn(self) -> None: ... + def VisibilityOff(self) -> None: ... + def VisibilityOn(self) -> None: ... + +class vtkProp3D(vtkProp): + class CoordinateSystems(int): ... + DEVICE:'CoordinateSystems' + PHYSICAL:'CoordinateSystems' + WORLD:'CoordinateSystems' + bounds:'getset_descriptor' + center:'getset_descriptor' + coordinate_system:'getset_descriptor' + coordinate_system_device:'getset_descriptor' + coordinate_system_renderer:'getset_descriptor' + is_identity:'getset_descriptor' + length:'getset_descriptor' + m_time:'getset_descriptor' + matrix:'getset_descriptor' + orientation:'getset_descriptor' + orientation_wxyz:'getset_descriptor' + origin:'getset_descriptor' + position:'getset_descriptor' + properties_from_model_to_world_matrix:'getset_descriptor' + scale:'getset_descriptor' + user_matrix:'getset_descriptor' + user_transform:'getset_descriptor' + user_transform_matrix_m_time:'getset_descriptor' + x_range:'getset_descriptor' + y_range:'getset_descriptor' + z_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddOrientation(self, x:float, y:float, z:float) -> None: ... + @overload + def AddOrientation(self, orentation:MutableSequence[float]) -> None: ... + @overload + def AddPosition(self, deltaPosition:MutableSequence[float]) -> None: ... + @overload + def AddPosition(self, deltaX:float, deltaY:float, deltaZ:float) -> None: ... + def ComputeMatrix(self) -> None: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetCenter(self) -> Tuple[float, float, float]: ... + def GetCoordinateSystem(self) -> 'CoordinateSystems': ... + def GetCoordinateSystemAsString(self) -> str: ... + def GetCoordinateSystemDevice(self) -> int: ... + def GetCoordinateSystemRenderer(self) -> 'vtkRenderer': ... + def GetIsIdentity(self) -> int: ... + def GetLength(self) -> float: ... + def GetMTime(self) -> int: ... + @overload + def GetMatrix(self, result:'vtkMatrix4x4') -> None: ... + @overload + def GetMatrix(self, result:MutableSequence[float]) -> None: ... + @overload + def GetMatrix(self) -> 'vtkMatrix4x4': ... + def GetModelToWorldMatrix(self, result:'vtkMatrix4x4') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOrientation(self) -> Tuple[float, float, float]: ... + @overload + def GetOrientation(self, orentation:MutableSequence[float]) -> None: ... + def GetOrientationWXYZ(self) -> Tuple[float, float, float, float]: ... + def GetOrigin(self) -> Tuple[float, float, float]: ... + def GetPosition(self) -> Tuple[float, float, float]: ... + def GetScale(self) -> Tuple[float, float, float]: ... + def GetUserMatrix(self) -> 'vtkMatrix4x4': ... + def GetUserTransform(self) -> 'vtkLinearTransform': ... + def GetUserTransformMatrixMTime(self) -> int: ... + def GetXRange(self) -> Tuple[float, float]: ... + def GetYRange(self) -> Tuple[float, float]: ... + def GetZRange(self) -> Tuple[float, float]: ... + def InitPathTraversal(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProp3D': ... + def PokeMatrix(self, matrix:'vtkMatrix4x4') -> None: ... + def RotateWXYZ(self, w:float, x:float, y:float, z:float) -> None: ... + def RotateX(self, __a:float) -> None: ... + def RotateY(self, __a:float) -> None: ... + def RotateZ(self, __a:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProp3D': ... + def SetCoordinateSystem(self, val:'CoordinateSystems') -> None: ... + def SetCoordinateSystemDevice(self, _arg:int) -> None: ... + def SetCoordinateSystemRenderer(self, ren:'vtkRenderer') -> None: ... + def SetCoordinateSystemToDevice(self) -> None: ... + def SetCoordinateSystemToPhysical(self) -> None: ... + def SetCoordinateSystemToWorld(self) -> None: ... + @overload + def SetOrientation(self, x:float, y:float, z:float) -> None: ... + @overload + def SetOrientation(self, orientation:MutableSequence[float]) -> None: ... + @overload + def SetOrigin(self, x:float, y:float, z:float) -> None: ... + @overload + def SetOrigin(self, pos:Sequence[float]) -> None: ... + @overload + def SetPosition(self, x:float, y:float, z:float) -> None: ... + @overload + def SetPosition(self, pos:MutableSequence[float]) -> None: ... + def SetPropertiesFromModelToWorldMatrix(self, modelToWorld:'vtkMatrix4x4') -> None: ... + @overload + def SetScale(self, x:float, y:float, z:float) -> None: ... + @overload + def SetScale(self, scale:MutableSequence[float]) -> None: ... + @overload + def SetScale(self, s:float) -> None: ... + def SetUserMatrix(self, matrix:'vtkMatrix4x4') -> None: ... + def SetUserTransform(self, transform:'vtkLinearTransform') -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkActor(vtkProp3D): + backface_property:'getset_descriptor' + bounds:'getset_descriptor' + force_opaque:'getset_descriptor' + force_translucent:'getset_descriptor' + is_rendering_translucent_polygonal_geometry:'getset_descriptor' + m_time:'getset_descriptor' + mapper:'getset_descriptor' + property:'getset_descriptor' + redraw_m_time:'getset_descriptor' + supports_selection:'getset_descriptor' + texture:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ApplyProperties(self) -> None: ... + def ForceOpaqueOff(self) -> None: ... + def ForceOpaqueOn(self) -> None: ... + def ForceTranslucentOff(self) -> None: ... + def ForceTranslucentOn(self) -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetBackfaceProperty(self) -> 'vtkProperty': ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetForceOpaque(self) -> bool: ... + def GetForceTranslucent(self) -> bool: ... + def GetMTime(self) -> int: ... + def GetMapper(self) -> 'vtkMapper': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProperty(self) -> 'vtkProperty': ... + def GetRedrawMTime(self) -> int: ... + def GetSupportsSelection(self) -> bool: ... + def GetTexture(self) -> 'vtkTexture': ... + def HasOpaqueGeometry(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsRenderingTranslucentPolygonalGeometry(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeProperty(self) -> 'vtkProperty': ... + def NewInstance(self) -> 'vtkActor': ... + def ProcessSelectorPixelBuffers(self, sel:'vtkHardwareSelector', pixeloffsets:MutableSequence[int]) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, __a:'vtkRenderer', __b:'vtkMapper') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkActor': ... + def SetBackfaceProperty(self, lut:'vtkProperty') -> None: ... + def SetForceOpaque(self, _arg:bool) -> None: ... + def SetForceTranslucent(self, _arg:bool) -> None: ... + def SetIsRenderingTranslucentPolygonalGeometry(self, val:bool) -> None: ... + def SetMapper(self, __a:'vtkMapper') -> None: ... + def SetProperty(self, lut:'vtkProperty') -> None: ... + def SetTexture(self, __a:'vtkTexture') -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkActor2D(vtkProp): + actual_position2_coordinate:'getset_descriptor' + actual_position_coordinate:'getset_descriptor' + display_position:'getset_descriptor' + height:'getset_descriptor' + layer_number:'getset_descriptor' + m_time:'getset_descriptor' + mapper:'getset_descriptor' + position:'getset_descriptor' + position2:'getset_descriptor' + position2_coordinate:'getset_descriptor' + position_coordinate:'getset_descriptor' + property:'getset_descriptor' + width:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetActors2D(self, pc:'vtkPropCollection') -> None: ... + def GetActualPosition2Coordinate(self) -> 'vtkCoordinate': ... + def GetActualPositionCoordinate(self) -> 'vtkCoordinate': ... + def GetHeight(self) -> float: ... + def GetLayerNumber(self) -> int: ... + def GetMTime(self) -> int: ... + def GetMapper(self) -> 'vtkMapper2D': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPosition(self) -> Tuple[float, float]: ... + def GetPosition2(self) -> Tuple[float, float]: ... + def GetPosition2Coordinate(self) -> 'vtkCoordinate': ... + def GetPositionCoordinate(self) -> 'vtkCoordinate': ... + def GetProperty(self) -> 'vtkProperty2D': ... + def GetWidth(self) -> float: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkActor2D': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkActor2D': ... + def SetDisplayPosition(self, __a:int, __b:int) -> None: ... + def SetHeight(self, h:float) -> None: ... + def SetLayerNumber(self, _arg:int) -> None: ... + def SetMapper(self, mapper:'vtkMapper2D') -> None: ... + @overload + def SetPosition(self, x:MutableSequence[float]) -> None: ... + @overload + def SetPosition(self, x:float, y:float) -> None: ... + @overload + def SetPosition2(self, x:MutableSequence[float]) -> None: ... + @overload + def SetPosition2(self, x:float, y:float) -> None: ... + def SetPosition2Coordinate(self, _arg:'vtkCoordinate') -> None: ... + def SetPositionCoordinate(self, _arg:'vtkCoordinate') -> None: ... + def SetProperty(self, __a:'vtkProperty2D') -> None: ... + def SetWidth(self, w:float) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkPropCollection(vtkmodules.vtkCommonCore.vtkCollection): + last_prop:'getset_descriptor' + next_prop:'getset_descriptor' + number_of_paths:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, a:'vtkProp') -> None: ... + def GetLastProp(self) -> 'vtkProp': ... + def GetNextProp(self) -> 'vtkProp': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPaths(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPropCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPropCollection': ... + +class vtkActor2DCollection(vtkPropCollection): + last_actor2d:'getset_descriptor' + last_item:'getset_descriptor' + next_actor2d:'getset_descriptor' + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, a:'vtkActor2D') -> None: ... + def GetLastActor2D(self) -> 'vtkActor2D': ... + def GetLastItem(self) -> 'vtkActor2D': ... + def GetNextActor2D(self) -> 'vtkActor2D': ... + def GetNextItem(self) -> 'vtkActor2D': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IndexOfFirstOccurence(self, a:'vtkActor2D') -> int: ... + def IsA(self, type:str) -> int: ... + def IsItemPresent(self, a:'vtkActor2D') -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkActor2DCollection': ... + def RenderOverlay(self, viewport:'vtkViewport') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkActor2DCollection': ... + def Sort(self) -> None: ... + +class vtkActorCollection(vtkPropCollection): + last_actor:'getset_descriptor' + last_item:'getset_descriptor' + next_actor:'getset_descriptor' + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, a:'vtkActor') -> None: ... + def ApplyProperties(self, p:'vtkProperty') -> None: ... + def GetLastActor(self) -> 'vtkActor': ... + def GetLastItem(self) -> 'vtkActor': ... + def GetNextActor(self) -> 'vtkActor': ... + def GetNextItem(self) -> 'vtkActor': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkActorCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkActorCollection': ... + +class vtkAreaPicker(vtkAbstractPropPicker): + clip_points:'getset_descriptor' + data_object:'getset_descriptor' + data_set:'getset_descriptor' + frustum:'getset_descriptor' + mapper:'getset_descriptor' + pick_coords:'getset_descriptor' + prop3_ds:'getset_descriptor' + renderer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AreaPick(self, x0:float, y0:float, x1:float, y1:float, renderer:'vtkRenderer'=...) -> int: ... + def GetClipPoints(self) -> 'vtkPoints': ... + def GetDataObject(self) -> 'vtkDataObject': ... + def GetDataSet(self) -> 'vtkDataSet': ... + def GetFrustum(self) -> 'vtkPlanes': ... + def GetMapper(self) -> 'vtkAbstractMapper3D': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProp3Ds(self) -> 'vtkProp3DCollection': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAreaPicker': ... + @overload + def Pick(self) -> int: ... + @overload + def Pick(self, x0:float, y0:float, z0:float, renderer:'vtkRenderer'=...) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAreaPicker': ... + def SetPickCoords(self, x0:float, y0:float, x1:float, y1:float) -> None: ... + def SetRenderer(self, __a:'vtkRenderer') -> None: ... + +class vtkAssembly(vtkProp3D): + bounds:'getset_descriptor' + m_time:'getset_descriptor' + next_path:'getset_descriptor' + number_of_paths:'getset_descriptor' + parts:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddPart(self, __a:'vtkProp3D') -> None: ... + def BuildPaths(self, paths:'vtkAssemblyPaths', path:'vtkAssemblyPath') -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetMTime(self) -> int: ... + def GetNextPath(self) -> 'vtkAssemblyPath': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPaths(self) -> int: ... + def GetParts(self) -> 'vtkProp3DCollection': ... + def GetVolumes(self, __a:'vtkPropCollection') -> None: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def InitPathTraversal(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAssembly': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RemovePart(self, __a:'vtkProp3D') -> None: ... + def RenderOpaqueGeometry(self, ren:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, ren:'vtkViewport') -> int: ... + def RenderVolumetricGeometry(self, ren:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAssembly': ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkAssemblyNode(vtkmodules.vtkCommonCore.vtkObject): + m_time:'getset_descriptor' + matrix:'getset_descriptor' + view_prop:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMTime(self) -> int: ... + def GetMatrix(self) -> 'vtkMatrix4x4': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetViewProp(self) -> 'vtkProp': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAssemblyNode': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAssemblyNode': ... + def SetMatrix(self, matrix:'vtkMatrix4x4') -> None: ... + def SetViewProp(self, prop:'vtkProp') -> None: ... + +class vtkAssemblyPath(vtkmodules.vtkCommonCore.vtkCollection): + first_node:'getset_descriptor' + last_node:'getset_descriptor' + m_time:'getset_descriptor' + next_node:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddNode(self, p:'vtkProp', m:'vtkMatrix4x4') -> None: ... + def DeleteLastNode(self) -> None: ... + def GetFirstNode(self) -> 'vtkAssemblyNode': ... + def GetLastNode(self) -> 'vtkAssemblyNode': ... + def GetMTime(self) -> int: ... + def GetNextNode(self) -> 'vtkAssemblyNode': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAssemblyPath': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAssemblyPath': ... + def ShallowCopy(self, path:'vtkAssemblyPath') -> None: ... + +class vtkAssemblyPaths(vtkmodules.vtkCommonCore.vtkCollection): + m_time:'getset_descriptor' + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, p:'vtkAssemblyPath') -> None: ... + def GetMTime(self) -> int: ... + def GetNextItem(self) -> 'vtkAssemblyPath': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsItemPresent(self, p:'vtkAssemblyPath') -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAssemblyPaths': ... + def RemoveItem(self, p:'vtkAssemblyPath') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAssemblyPaths': ... + +class vtkAvatar(vtkActor): + head_orientation:'getset_descriptor' + head_position:'getset_descriptor' + left_hand_orientation:'getset_descriptor' + left_hand_position:'getset_descriptor' + right_hand_orientation:'getset_descriptor' + right_hand_position:'getset_descriptor' + show_hands_only:'getset_descriptor' + up_vector:'getset_descriptor' + use_left_hand:'getset_descriptor' + use_right_hand:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetHeadOrientation(self) -> Tuple[float, float, float]: ... + def GetHeadPosition(self) -> Tuple[float, float, float]: ... + def GetLeftHandOrientation(self) -> Tuple[float, float, float]: ... + def GetLeftHandPosition(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRightHandOrientation(self) -> Tuple[float, float, float]: ... + def GetRightHandPosition(self) -> Tuple[float, float, float]: ... + def GetShowHandsOnly(self) -> bool: ... + def GetUpVector(self) -> Tuple[float, float, float]: ... + def GetUseLeftHand(self) -> bool: ... + def GetUseRightHand(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAvatar': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAvatar': ... + @overload + def SetHeadOrientation(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetHeadOrientation(self, _arg:Sequence[float]) -> None: ... + @overload + def SetHeadPosition(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetHeadPosition(self, _arg:Sequence[float]) -> None: ... + @overload + def SetLeftHandOrientation(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetLeftHandOrientation(self, _arg:Sequence[float]) -> None: ... + @overload + def SetLeftHandPosition(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetLeftHandPosition(self, _arg:Sequence[float]) -> None: ... + @overload + def SetRightHandOrientation(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetRightHandOrientation(self, _arg:Sequence[float]) -> None: ... + @overload + def SetRightHandPosition(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetRightHandPosition(self, _arg:Sequence[float]) -> None: ... + def SetShowHandsOnly(self, _arg:bool) -> None: ... + @overload + def SetUpVector(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetUpVector(self, _arg:Sequence[float]) -> None: ... + def SetUseLeftHand(self, _arg:bool) -> None: ... + def SetUseRightHand(self, _arg:bool) -> None: ... + def ShowHandsOnlyOff(self) -> None: ... + def ShowHandsOnlyOn(self) -> None: ... + def UseLeftHandOff(self) -> None: ... + def UseLeftHandOn(self) -> None: ... + def UseRightHandOff(self) -> None: ... + def UseRightHandOn(self) -> None: ... + +class vtkBackgroundColorMonitor(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBackgroundColorMonitor': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBackgroundColorMonitor': ... + def StateChanged(self, ren:'vtkRenderer') -> bool: ... + def Update(self, ren:'vtkRenderer') -> None: ... + +class vtkBillboardTextActor3D(vtkProp3D): + anchor_dc:'getset_descriptor' + bounds:'getset_descriptor' + display_offset:'getset_descriptor' + force_opaque:'getset_descriptor' + force_translucent:'getset_descriptor' + input:'getset_descriptor' + text_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ForceOpaqueOff(self) -> None: ... + def ForceOpaqueOn(self) -> None: ... + def ForceTranslucentOff(self) -> None: ... + def ForceTranslucentOn(self) -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetAnchorDC(self) -> Tuple[float, float, float]: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetDisplayOffset(self) -> Tuple[int, int]: ... + def GetForceOpaque(self) -> bool: ... + def GetForceTranslucent(self) -> bool: ... + def GetInput(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTextProperty(self) -> 'vtkTextProperty': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBillboardTextActor3D': ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, vp:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, vp:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBillboardTextActor3D': ... + @overload + def SetDisplayOffset(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetDisplayOffset(self, _arg:Sequence[int]) -> None: ... + def SetForceOpaque(self, opaque:bool) -> None: ... + def SetForceTranslucent(self, trans:bool) -> None: ... + def SetInput(self, in_:str) -> None: ... + def SetTextProperty(self, tprop:'vtkTextProperty') -> None: ... + def UpdateGeometry(self, vp:'vtkViewport') -> None: ... + +class vtkCamera(vtkmodules.vtkCommonCore.vtkObject): + camera_light_transform_matrix:'getset_descriptor' + clipping_range:'getset_descriptor' + direction_of_projection:'getset_descriptor' + distance:'getset_descriptor' + explicit_aspect_ratio:'getset_descriptor' + explicit_projection_transform_matrix:'getset_descriptor' + eye_angle:'getset_descriptor' + eye_position:'getset_descriptor' + eye_separation:'getset_descriptor' + eye_transform_matrix:'getset_descriptor' + focal_disk:'getset_descriptor' + focal_distance:'getset_descriptor' + focal_point:'getset_descriptor' + focal_point_scale:'getset_descriptor' + focal_point_shift:'getset_descriptor' + freeze_focal_point:'getset_descriptor' + information:'getset_descriptor' + left_eye:'getset_descriptor' + model_transform_matrix:'getset_descriptor' + model_view_transform_matrix:'getset_descriptor' + model_view_transform_object:'getset_descriptor' + near_plane_scale:'getset_descriptor' + near_plane_shift:'getset_descriptor' + oblique_angles:'getset_descriptor' + off_axis_clipping_adjustment:'getset_descriptor' + orientation:'getset_descriptor' + orientation_wxyz:'getset_descriptor' + parallel_projection:'getset_descriptor' + parallel_scale:'getset_descriptor' + position:'getset_descriptor' + roll:'getset_descriptor' + scissor_rect:'getset_descriptor' + screen_bottom_left:'getset_descriptor' + screen_bottom_right:'getset_descriptor' + screen_top_right:'getset_descriptor' + shift_scale_threshold:'getset_descriptor' + stereo:'getset_descriptor' + thickness:'getset_descriptor' + use_explicit_aspect_ratio:'getset_descriptor' + use_explicit_projection_transform_matrix:'getset_descriptor' + use_horizontal_view_angle:'getset_descriptor' + use_off_axis_projection:'getset_descriptor' + use_scissor:'getset_descriptor' + user_transform:'getset_descriptor' + user_view_transform:'getset_descriptor' + view_angle:'getset_descriptor' + view_plane_normal:'getset_descriptor' + view_shear:'getset_descriptor' + view_transform_matrix:'getset_descriptor' + view_transform_object:'getset_descriptor' + view_up:'getset_descriptor' + viewing_rays_m_time:'getset_descriptor' + window_center:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ApplyTransform(self, t:'vtkTransform') -> None: ... + def Azimuth(self, angle:float) -> None: ... + def ComputeViewPlaneNormal(self) -> None: ... + def DeepCopy(self, source:'vtkCamera') -> None: ... + def Dolly(self, value:float) -> None: ... + def Elevation(self, angle:float) -> None: ... + def GetCameraLightTransformMatrix(self) -> 'vtkMatrix4x4': ... + def GetClippingRange(self) -> Tuple[float, float]: ... + def GetCompositeProjectionTransformMatrix(self, aspect:float, nearz:float, farz:float) -> 'vtkMatrix4x4': ... + def GetDirectionOfProjection(self) -> Tuple[float, float, float]: ... + def GetDistance(self) -> float: ... + def GetExplicitAspectRatio(self) -> float: ... + def GetExplicitProjectionTransformMatrix(self) -> 'vtkMatrix4x4': ... + def GetEyeAngle(self) -> float: ... + def GetEyePlaneNormal(self, normal:MutableSequence[float]) -> None: ... + def GetEyePosition(self, eyePosition:MutableSequence[float]) -> None: ... + def GetEyeSeparation(self) -> float: ... + def GetEyeTransformMatrix(self) -> 'vtkMatrix4x4': ... + def GetFocalDisk(self) -> float: ... + def GetFocalDistance(self) -> float: ... + def GetFocalPoint(self) -> Tuple[float, float, float]: ... + def GetFocalPointScale(self) -> float: ... + def GetFocalPointShift(self) -> Tuple[float, float, float]: ... + def GetFreezeFocalPoint(self) -> bool: ... + def GetFrustumPlanes(self, aspect:float, planes:MutableSequence[float]) -> None: ... + def GetInformation(self) -> 'vtkInformation': ... + def GetLeftEye(self) -> int: ... + def GetModelTransformMatrix(self) -> 'vtkMatrix4x4': ... + def GetModelViewTransformMatrix(self) -> 'vtkMatrix4x4': ... + def GetModelViewTransformObject(self) -> 'vtkTransform': ... + def GetNearPlaneScale(self) -> float: ... + def GetNearPlaneShift(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOffAxisClippingAdjustment(self) -> float: ... + def GetOrientation(self) -> Tuple[float, float, float]: ... + def GetOrientationWXYZ(self) -> Tuple[float, float, float, float]: ... + def GetParallelProjection(self) -> int: ... + def GetParallelScale(self) -> float: ... + def GetPosition(self) -> Tuple[float, float, float]: ... + @overload + def GetProjectionTransformMatrix(self, aspect:float, nearz:float, farz:float) -> 'vtkMatrix4x4': ... + @overload + def GetProjectionTransformMatrix(self, ren:'vtkRenderer') -> 'vtkMatrix4x4': ... + def GetProjectionTransformObject(self, aspect:float, nearz:float, farz:float) -> 'vtkPerspectiveTransform': ... + def GetRoll(self) -> float: ... + def GetScissorRect(self, scissorRect:'vtkRecti') -> None: ... + def GetScreenBottomLeft(self) -> Tuple[float, float, float]: ... + def GetScreenBottomRight(self) -> Tuple[float, float, float]: ... + def GetScreenTopRight(self) -> Tuple[float, float, float]: ... + def GetShiftScaleThreshold(self) -> float: ... + def GetStereo(self) -> int: ... + def GetStereoEyePosition(self, eyePosition:MutableSequence[float]) -> None: ... + def GetThickness(self) -> float: ... + def GetUseExplicitAspectRatio(self) -> bool: ... + def GetUseExplicitProjectionTransformMatrix(self) -> bool: ... + def GetUseHorizontalViewAngle(self) -> int: ... + def GetUseOffAxisProjection(self) -> int: ... + def GetUseScissor(self) -> bool: ... + def GetUserTransform(self) -> 'vtkHomogeneousTransform': ... + def GetUserViewTransform(self) -> 'vtkHomogeneousTransform': ... + def GetViewAngle(self) -> float: ... + def GetViewPlaneNormal(self) -> Tuple[float, float, float]: ... + def GetViewShear(self) -> Tuple[float, float, float]: ... + def GetViewTransformMatrix(self) -> 'vtkMatrix4x4': ... + def GetViewTransformObject(self) -> 'vtkTransform': ... + def GetViewUp(self) -> Tuple[float, float, float]: ... + def GetViewingRaysMTime(self) -> int: ... + def GetWindowCenter(self) -> Tuple[float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCamera': ... + def OrthogonalizeViewUp(self) -> None: ... + def ParallelProjectionOff(self) -> None: ... + def ParallelProjectionOn(self) -> None: ... + def Pitch(self, angle:float) -> None: ... + def Render(self, __a:'vtkRenderer') -> None: ... + def Roll(self, angle:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCamera': ... + @overload + def SetClippingRange(self, dNear:float, dFar:float) -> None: ... + @overload + def SetClippingRange(self, a:Sequence[float]) -> None: ... + def SetDistance(self, __a:float) -> None: ... + def SetExplicitAspectRatio(self, _arg:float) -> None: ... + def SetExplicitProjectionTransformMatrix(self, __a:'vtkMatrix4x4') -> None: ... + def SetEyeAngle(self, _arg:float) -> None: ... + def SetEyePosition(self, eyePosition:MutableSequence[float]) -> None: ... + def SetEyeSeparation(self, _arg:float) -> None: ... + @overload + def SetEyeTransformMatrix(self, matrix:'vtkMatrix4x4') -> None: ... + @overload + def SetEyeTransformMatrix(self, elements:Sequence[float]) -> None: ... + def SetFocalDisk(self, _arg:float) -> None: ... + def SetFocalDistance(self, _arg:float) -> None: ... + @overload + def SetFocalPoint(self, x:float, y:float, z:float) -> None: ... + @overload + def SetFocalPoint(self, a:Sequence[float]) -> None: ... + def SetFreezeFocalPoint(self, _arg:bool) -> None: ... + def SetInformation(self, __a:'vtkInformation') -> None: ... + def SetLeftEye(self, _arg:int) -> None: ... + @overload + def SetModelTransformMatrix(self, matrix:'vtkMatrix4x4') -> None: ... + @overload + def SetModelTransformMatrix(self, elements:Sequence[float]) -> None: ... + def SetObliqueAngles(self, alpha:float, beta:float) -> None: ... + def SetParallelProjection(self, flag:int) -> None: ... + def SetParallelScale(self, scale:float) -> None: ... + @overload + def SetPosition(self, x:float, y:float, z:float) -> None: ... + @overload + def SetPosition(self, a:Sequence[float]) -> None: ... + def SetRoll(self, angle:float) -> None: ... + def SetScissorRect(self, scissorRect:'vtkRecti') -> None: ... + @overload + def SetScreenBottomLeft(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetScreenBottomLeft(self, _arg:Sequence[float]) -> None: ... + @overload + def SetScreenBottomRight(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetScreenBottomRight(self, _arg:Sequence[float]) -> None: ... + @overload + def SetScreenTopRight(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetScreenTopRight(self, _arg:Sequence[float]) -> None: ... + def SetShiftScaleThreshold(self, _arg:float) -> None: ... + def SetThickness(self, __a:float) -> None: ... + def SetUseExplicitAspectRatio(self, _arg:bool) -> None: ... + def SetUseExplicitProjectionTransformMatrix(self, _arg:bool) -> None: ... + def SetUseHorizontalViewAngle(self, flag:int) -> None: ... + def SetUseOffAxisProjection(self, _arg:int) -> None: ... + def SetUseScissor(self, _arg:bool) -> None: ... + def SetUserTransform(self, transform:'vtkHomogeneousTransform') -> None: ... + def SetUserViewTransform(self, transform:'vtkHomogeneousTransform') -> None: ... + def SetViewAngle(self, angle:float) -> None: ... + @overload + def SetViewShear(self, dxdz:float, dydz:float, center:float) -> None: ... + @overload + def SetViewShear(self, d:MutableSequence[float]) -> None: ... + @overload + def SetViewUp(self, vx:float, vy:float, vz:float) -> None: ... + @overload + def SetViewUp(self, a:Sequence[float]) -> None: ... + def SetWindowCenter(self, x:float, y:float) -> None: ... + def ShallowCopy(self, source:'vtkCamera') -> None: ... + def UpdateIdealShiftScale(self, aspect:float) -> None: ... + def UpdateViewport(self, ren:'vtkRenderer') -> None: ... + def UseExplicitAspectRatioOff(self) -> None: ... + def UseExplicitAspectRatioOn(self) -> None: ... + def UseExplicitProjectionTransformMatrixOff(self) -> None: ... + def UseExplicitProjectionTransformMatrixOn(self) -> None: ... + def UseHorizontalViewAngleOff(self) -> None: ... + def UseHorizontalViewAngleOn(self) -> None: ... + def UseOffAxisProjectionOff(self) -> None: ... + def UseOffAxisProjectionOn(self) -> None: ... + def ViewingRaysModified(self) -> None: ... + def Yaw(self, angle:float) -> None: ... + def Zoom(self, factor:float) -> None: ... + +class vtkCameraActor(vtkProp3D): + bounds:'getset_descriptor' + camera:'getset_descriptor' + m_time:'getset_descriptor' + property:'getset_descriptor' + width_by_height_ratio:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetCamera(self) -> 'vtkCamera': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProperty(self) -> 'vtkProperty': ... + def GetWidthByHeightRatio(self) -> float: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCameraActor': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCameraActor': ... + def SetCamera(self, camera:'vtkCamera') -> None: ... + def SetProperty(self, p:'vtkProperty') -> None: ... + def SetWidthByHeightRatio(self, _arg:float) -> None: ... + +class vtkCameraInterpolator(vtkmodules.vtkCommonCore.vtkObject): + INTERPOLATION_TYPE_LINEAR:int + INTERPOLATION_TYPE_MANUAL:int + INTERPOLATION_TYPE_SPLINE:int + clipping_range_interpolator:'getset_descriptor' + focal_point_interpolator:'getset_descriptor' + interpolation_type:'getset_descriptor' + m_time:'getset_descriptor' + maximum_t:'getset_descriptor' + minimum_t:'getset_descriptor' + number_of_cameras:'getset_descriptor' + parallel_scale_interpolator:'getset_descriptor' + position_interpolator:'getset_descriptor' + view_angle_interpolator:'getset_descriptor' + view_up_interpolator:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddCamera(self, t:float, camera:'vtkCamera') -> None: ... + def GetClippingRangeInterpolator(self) -> 'vtkTupleInterpolator': ... + def GetFocalPointInterpolator(self) -> 'vtkTupleInterpolator': ... + def GetInterpolationType(self) -> int: ... + def GetInterpolationTypeMaxValue(self) -> int: ... + def GetInterpolationTypeMinValue(self) -> int: ... + def GetMTime(self) -> int: ... + def GetMaximumT(self) -> float: ... + def GetMinimumT(self) -> float: ... + def GetNumberOfCameras(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParallelScaleInterpolator(self) -> 'vtkTupleInterpolator': ... + def GetPositionInterpolator(self) -> 'vtkTupleInterpolator': ... + def GetViewAngleInterpolator(self) -> 'vtkTupleInterpolator': ... + def GetViewUpInterpolator(self) -> 'vtkTupleInterpolator': ... + def Initialize(self) -> None: ... + def InterpolateCamera(self, t:float, camera:'vtkCamera') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCameraInterpolator': ... + def RemoveCamera(self, t:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCameraInterpolator': ... + def SetClippingRangeInterpolator(self, __a:'vtkTupleInterpolator') -> None: ... + def SetFocalPointInterpolator(self, __a:'vtkTupleInterpolator') -> None: ... + def SetInterpolationType(self, _arg:int) -> None: ... + def SetInterpolationTypeToLinear(self) -> None: ... + def SetInterpolationTypeToManual(self) -> None: ... + def SetInterpolationTypeToSpline(self) -> None: ... + def SetParallelScaleInterpolator(self, __a:'vtkTupleInterpolator') -> None: ... + def SetPositionInterpolator(self, __a:'vtkTupleInterpolator') -> None: ... + def SetViewAngleInterpolator(self, __a:'vtkTupleInterpolator') -> None: ... + def SetViewUpInterpolator(self, __a:'vtkTupleInterpolator') -> None: ... + +class vtkVisibilitySort(vtkmodules.vtkCommonCore.vtkObject): + BACK_TO_FRONT:int + FRONT_TO_BACK:int + camera:'getset_descriptor' + direction:'getset_descriptor' + input:'getset_descriptor' + inverse_model_transform:'getset_descriptor' + max_cells_returned:'getset_descriptor' + model_transform:'getset_descriptor' + next_cells:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCamera(self) -> 'vtkCamera': ... + def GetDirection(self) -> int: ... + def GetInput(self) -> 'vtkDataSet': ... + def GetInverseModelTransform(self) -> 'vtkMatrix4x4': ... + def GetMaxCellsReturned(self) -> int: ... + def GetMaxCellsReturnedMaxValue(self) -> int: ... + def GetMaxCellsReturnedMinValue(self) -> int: ... + def GetModelTransform(self) -> 'vtkMatrix4x4': ... + def GetNextCells(self) -> 'vtkIdTypeArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InitTraversal(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVisibilitySort': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVisibilitySort': ... + def SetCamera(self, camera:'vtkCamera') -> None: ... + def SetDirection(self, _arg:int) -> None: ... + def SetDirectionToBackToFront(self) -> None: ... + def SetDirectionToFrontToBack(self) -> None: ... + def SetInput(self, data:'vtkDataSet') -> None: ... + def SetMaxCellsReturned(self, _arg:int) -> None: ... + def SetModelTransform(self, mat:'vtkMatrix4x4') -> None: ... + def UsesGarbageCollector(self) -> bool: ... + +class vtkCellCenterDepthSort(vtkVisibilitySort): + next_cells:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNextCells(self) -> 'vtkIdTypeArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InitTraversal(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellCenterDepthSort': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellCenterDepthSort': ... + +class vtkCellGraphicsPrimitiveMap(object): + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + +class vtkMapper(vtkAbstractMapper3D): + array_access_mode:'getset_descriptor' + array_component:'getset_descriptor' + array_id:'getset_descriptor' + array_name:'getset_descriptor' + bounds:'getset_descriptor' + color_coordinates:'getset_descriptor' + color_map_colors:'getset_descriptor' + color_mode:'getset_descriptor' + color_texture_map:'getset_descriptor' + data_set_input:'getset_descriptor' + field_data_tuple_id:'getset_descriptor' + input:'getset_descriptor' + input_as_data_set:'getset_descriptor' + interpolate_scalars_before_mapping:'getset_descriptor' + lookup_table:'getset_descriptor' + m_time:'getset_descriptor' + relative_coincident_topology_line_offset_parameters:'getset_descriptor' + relative_coincident_topology_point_offset_parameter:'getset_descriptor' + relative_coincident_topology_polygon_offset_parameters:'getset_descriptor' + render_time:'getset_descriptor' + resolve_coincident_topology:'getset_descriptor' + resolve_coincident_topology_line_offset_parameters:'getset_descriptor' + resolve_coincident_topology_point_offset_parameter:'getset_descriptor' + resolve_coincident_topology_polygon_offset_faces:'getset_descriptor' + resolve_coincident_topology_polygon_offset_parameters:'getset_descriptor' + resolve_coincident_topology_z_shift:'getset_descriptor' + scalar_mode:'getset_descriptor' + scalar_range:'getset_descriptor' + scalar_visibility:'getset_descriptor' + selection:'getset_descriptor' + static:'getset_descriptor' + supports_selection:'getset_descriptor' + use_lookup_table_scalar_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def BuildColorTextureImage(lkup:'vtkScalarsToColors', colorMode:int) -> 'vtkImageData': ... + def CanUseTextureMapForColoring(self, input:'vtkDataObject') -> int: ... + def ClearColorArrays(self) -> None: ... + @overload + def ColorByArrayComponent(self, arrayNum:int, component:int) -> None: ... + @overload + def ColorByArrayComponent(self, arrayName:str, component:int) -> None: ... + def CreateDefaultLookupTable(self) -> None: ... + def GetArrayAccessMode(self) -> int: ... + def GetArrayComponent(self) -> int: ... + def GetArrayId(self) -> int: ... + def GetArrayName(self) -> str: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetCoincidentTopologyLineOffsetParameters(self, factor:float, units:float) -> None: ... + def GetCoincidentTopologyPointOffsetParameter(self, units:float) -> None: ... + def GetCoincidentTopologyPolygonOffsetParameters(self, factor:float, units:float) -> None: ... + def GetColorCoordinates(self) -> 'vtkFloatArray': ... + def GetColorMapColors(self) -> 'vtkUnsignedCharArray': ... + def GetColorMode(self) -> int: ... + def GetColorModeAsString(self) -> str: ... + def GetColorTextureMap(self) -> 'vtkImageData': ... + def GetDataSetInput(self) -> 'vtkDataSet': ... + def GetFieldDataTupleId(self) -> int: ... + def GetInput(self) -> 'vtkDataSet': ... + def GetInputAsDataSet(self) -> 'vtkDataSet': ... + def GetInterpolateScalarsBeforeMapping(self) -> int: ... + def GetLookupTable(self) -> 'vtkScalarsToColors': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRelativeCoincidentTopologyLineOffsetParameters(self, factor:float, units:float) -> None: ... + def GetRelativeCoincidentTopologyPointOffsetParameter(self, units:float) -> None: ... + def GetRelativeCoincidentTopologyPolygonOffsetParameters(self, factor:float, units:float) -> None: ... + def GetRenderTime(self) -> float: ... + @staticmethod + def GetResolveCoincidentTopology() -> int: ... + @staticmethod + def GetResolveCoincidentTopologyLineOffsetParameters(factor:float, units:float) -> None: ... + @staticmethod + def GetResolveCoincidentTopologyPointOffsetParameter(units:float) -> None: ... + @staticmethod + def GetResolveCoincidentTopologyPolygonOffsetFaces() -> int: ... + @staticmethod + def GetResolveCoincidentTopologyPolygonOffsetParameters(factor:float, units:float) -> None: ... + @staticmethod + def GetResolveCoincidentTopologyZShift() -> float: ... + def GetScalarMode(self) -> int: ... + def GetScalarModeAsString(self) -> str: ... + def GetScalarRange(self) -> Tuple[float, float]: ... + def GetScalarVisibility(self) -> int: ... + def GetSelection(self) -> 'vtkSelection': ... + def GetStatic(self) -> int: ... + def GetSupportsSelection(self) -> bool: ... + def GetUseLookupTableScalarRange(self) -> int: ... + def HasOpaqueGeometry(self) -> bool: ... + def HasTranslucentPolygonalGeometry(self) -> bool: ... + def InterpolateScalarsBeforeMappingOff(self) -> None: ... + def InterpolateScalarsBeforeMappingOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def MapScalars(self, alpha:float) -> 'vtkUnsignedCharArray': ... + @overload + def MapScalars(self, alpha:float, cellFlag:int) -> 'vtkUnsignedCharArray': ... + @overload + def MapScalars(self, input:'vtkDataSet', alpha:float) -> 'vtkUnsignedCharArray': ... + @overload + def MapScalars(self, input:'vtkDataSet', alpha:float, cellFlag:int) -> 'vtkUnsignedCharArray': ... + def NewInstance(self) -> 'vtkMapper': ... + def ProcessSelectorPixelBuffers(self, __a:'vtkHardwareSelector', __b:MutableSequence[int], __c:'vtkProp') -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer', a:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMapper': ... + def ScalarVisibilityOff(self) -> None: ... + def ScalarVisibilityOn(self) -> None: ... + @overload + def SelectColorArray(self, arrayNum:int) -> None: ... + @overload + def SelectColorArray(self, arrayName:str) -> None: ... + def SetArrayAccessMode(self, _arg:int) -> None: ... + def SetArrayComponent(self, _arg:int) -> None: ... + def SetArrayId(self, _arg:int) -> None: ... + def SetArrayName(self, _arg:str) -> None: ... + def SetColorMode(self, _arg:int) -> None: ... + def SetColorModeToDefault(self) -> None: ... + def SetColorModeToDirectScalars(self) -> None: ... + def SetColorModeToMapScalars(self) -> None: ... + def SetFieldDataTupleId(self, _arg:int) -> None: ... + def SetInterpolateScalarsBeforeMapping(self, _arg:int) -> None: ... + def SetLookupTable(self, lut:'vtkScalarsToColors') -> None: ... + def SetRelativeCoincidentTopologyLineOffsetParameters(self, factor:float, units:float) -> None: ... + def SetRelativeCoincidentTopologyPointOffsetParameter(self, units:float) -> None: ... + def SetRelativeCoincidentTopologyPolygonOffsetParameters(self, factor:float, units:float) -> None: ... + def SetRenderTime(self, time:float) -> None: ... + @staticmethod + def SetResolveCoincidentTopology(val:int) -> None: ... + @staticmethod + def SetResolveCoincidentTopologyLineOffsetParameters(factor:float, units:float) -> None: ... + @staticmethod + def SetResolveCoincidentTopologyPointOffsetParameter(units:float) -> None: ... + @staticmethod + def SetResolveCoincidentTopologyPolygonOffsetFaces(faces:int) -> None: ... + @staticmethod + def SetResolveCoincidentTopologyPolygonOffsetParameters(factor:float, units:float) -> None: ... + @staticmethod + def SetResolveCoincidentTopologyToDefault() -> None: ... + @staticmethod + def SetResolveCoincidentTopologyToOff() -> None: ... + @staticmethod + def SetResolveCoincidentTopologyToPolygonOffset() -> None: ... + @staticmethod + def SetResolveCoincidentTopologyToShiftZBuffer() -> None: ... + @staticmethod + def SetResolveCoincidentTopologyZShift(val:float) -> None: ... + def SetScalarMode(self, _arg:int) -> None: ... + def SetScalarModeToDefault(self) -> None: ... + def SetScalarModeToUseCellData(self) -> None: ... + def SetScalarModeToUseCellFieldData(self) -> None: ... + def SetScalarModeToUseFieldData(self) -> None: ... + def SetScalarModeToUsePointData(self) -> None: ... + def SetScalarModeToUsePointFieldData(self) -> None: ... + @overload + def SetScalarRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetScalarRange(self, _arg:Sequence[float]) -> None: ... + def SetScalarVisibility(self, _arg:int) -> None: ... + def SetSelection(self, __a:'vtkSelection') -> None: ... + def SetStatic(self, _arg:int) -> None: ... + def SetUseLookupTableScalarRange(self, _arg:int) -> None: ... + def ShallowCopy(self, m:'vtkAbstractMapper') -> None: ... + def StaticOff(self) -> None: ... + def StaticOn(self) -> None: ... + def UseLookupTableScalarRangeOff(self) -> None: ... + def UseLookupTableScalarRangeOn(self) -> None: ... + +class vtkCellGridMapper(vtkMapper): + bounds:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + visualize_basis_function:'getset_descriptor' + visualize_p_coords:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetInput(self) -> 'vtkCellGrid': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVisualizeBasisFunction(self) -> int: ... + def GetVisualizePCoords(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridMapper': ... + def PrepareColormap(self, cmap:'vtkScalarsToColors'=...) -> None: ... + def Render(self, __a:'vtkRenderer', __b:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridMapper': ... + def SetInputData(self, in_:'vtkCellGrid') -> None: ... + def SetVisualizeBasisFunction(self, _arg:int) -> None: ... + def SetVisualizePCoords(self, _arg:int) -> None: ... + @overload + def Update(self, port:int) -> None: ... + @overload + def Update(self) -> None: ... + @overload + def Update(self, port:int, requests:'vtkInformationVector') -> int: ... + @overload + def Update(self, requests:'vtkInformation') -> int: ... + +class vtkCellGridRenderRequest(vtkmodules.vtkCommonDataModel.vtkCellGridQuery): + class RenderableGeometry(int): ... + ALL:'RenderableGeometry' + EDGES:'RenderableGeometry' + FACES:'RenderableGeometry' + SURFACE_WITH_EDGES:'RenderableGeometry' + VERTICES:'RenderableGeometry' + VOLUMES:'RenderableGeometry' + actor:'getset_descriptor' + is_releasing_resources:'getset_descriptor' + mapper:'getset_descriptor' + renderer:'getset_descriptor' + shapes_to_draw:'getset_descriptor' + window:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Finalize(self) -> bool: ... + def GetActor(self) -> 'vtkActor': ... + def GetIsReleasingResources(self) -> bool: ... + def GetMapper(self) -> 'vtkCellGridMapper': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderer(self) -> 'vtkRenderer': ... + def GetShapesToDraw(self) -> str: ... + def GetShapesToDrawMaxValue(self) -> str: ... + def GetShapesToDrawMinValue(self) -> str: ... + def GetWindow(self) -> 'vtkWindow': ... + def Initialize(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellGridRenderRequest': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellGridRenderRequest': ... + def SetActor(self, actor:'vtkActor') -> None: ... + def SetIsReleasingResources(self, _arg:bool) -> None: ... + def SetMapper(self, mapper:'vtkCellGridMapper') -> None: ... + def SetRenderer(self, renderer:'vtkRenderer') -> None: ... + def SetShapesToDraw(self, _arg:str) -> None: ... + def SetWindow(self, window:'vtkWindow') -> None: ... + +class vtkPicker(vtkAbstractPropPicker): + actors:'getset_descriptor' + composite_data_set:'getset_descriptor' + data_set:'getset_descriptor' + flat_block_index:'getset_descriptor' + mapper:'getset_descriptor' + mapper_position:'getset_descriptor' + picked_positions:'getset_descriptor' + prop3_ds:'getset_descriptor' + tolerance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetActors(self) -> 'vtkActorCollection': ... + def GetCompositeDataSet(self) -> 'vtkCompositeDataSet': ... + def GetDataSet(self) -> 'vtkDataSet': ... + def GetFlatBlockIndex(self) -> int: ... + def GetMapper(self) -> 'vtkAbstractMapper3D': ... + def GetMapperPosition(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPickedPositions(self) -> 'vtkPoints': ... + def GetProp3Ds(self) -> 'vtkProp3DCollection': ... + def GetTolerance(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPicker': ... + @overload + def Pick(self, selectionX:float, selectionY:float, selectionZ:float, renderer:'vtkRenderer') -> int: ... + @overload + def Pick(self, selectionPt:MutableSequence[float], ren:'vtkRenderer') -> int: ... + @overload + def Pick3DPoint(self, selectionPt:MutableSequence[float], ren:'vtkRenderer') -> int: ... + @overload + def Pick3DPoint(self, p1World:MutableSequence[float], p2World:MutableSequence[float], ren:'vtkRenderer') -> int: ... + def Pick3DRay(self, selectionPt:MutableSequence[float], orient:MutableSequence[float], ren:'vtkRenderer') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPicker': ... + def SetTolerance(self, _arg:float) -> None: ... + +class vtkCellPicker(vtkPicker): + cell_id:'getset_descriptor' + cell_ijk:'getset_descriptor' + clipping_plane_id:'getset_descriptor' + mapper_normal:'getset_descriptor' + p_coords:'getset_descriptor' + pick_clipping_planes:'getset_descriptor' + pick_normal:'getset_descriptor' + pick_texture_data:'getset_descriptor' + point_id:'getset_descriptor' + point_ijk:'getset_descriptor' + sub_id:'getset_descriptor' + texture:'getset_descriptor' + use_volume_gradient_opacity:'getset_descriptor' + volume_opacity_isovalue:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddLocator(self, locator:'vtkAbstractCellLocator') -> None: ... + def GetCellIJK(self) -> Tuple[int, int, int]: ... + def GetCellId(self) -> int: ... + def GetClippingPlaneId(self) -> int: ... + def GetMapperNormal(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPCoords(self) -> Tuple[float, float, float]: ... + def GetPickClippingPlanes(self) -> int: ... + def GetPickNormal(self) -> Tuple[float, float, float]: ... + def GetPickTextureData(self) -> int: ... + def GetPointIJK(self) -> Tuple[int, int, int]: ... + def GetPointId(self) -> int: ... + def GetSubId(self) -> int: ... + def GetTexture(self) -> 'vtkTexture': ... + def GetUseVolumeGradientOpacity(self) -> int: ... + def GetVolumeOpacityIsovalue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCellPicker': ... + def Pick(self, selectionX:float, selectionY:float, selectionZ:float, renderer:'vtkRenderer') -> int: ... + def Pick3DRay(self, selectionPt:MutableSequence[float], orient:MutableSequence[float], ren:'vtkRenderer') -> int: ... + def PickClippingPlanesOff(self) -> None: ... + def PickClippingPlanesOn(self) -> None: ... + def PickTextureDataOff(self) -> None: ... + def PickTextureDataOn(self) -> None: ... + def RemoveAllLocators(self) -> None: ... + def RemoveLocator(self, locator:'vtkAbstractCellLocator') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCellPicker': ... + def SetPickClippingPlanes(self, _arg:int) -> None: ... + def SetPickTextureData(self, _arg:int) -> None: ... + def SetUseVolumeGradientOpacity(self, _arg:int) -> None: ... + def SetVolumeOpacityIsovalue(self, _arg:float) -> None: ... + def UseVolumeGradientOpacityOff(self) -> None: ... + def UseVolumeGradientOpacityOn(self) -> None: ... + +class vtkColorTransferFunction(vtkmodules.vtkCommonCore.vtkScalarsToColors): + above_range_color:'getset_descriptor' + allow_duplicate_scalars:'getset_descriptor' + below_range_color:'getset_descriptor' + clamping:'getset_descriptor' + color_space:'getset_descriptor' + data_pointer:'getset_descriptor' + hsv_wrap:'getset_descriptor' + nan_color:'getset_descriptor' + nan_color_rgba:'getset_descriptor' + nan_opacity:'getset_descriptor' + number_of_available_colors:'getset_descriptor' + range:'getset_descriptor' + scale:'getset_descriptor' + size:'getset_descriptor' + use_above_range_color:'getset_descriptor' + use_below_range_color:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddHSVPoint(self, x:float, h:float, s:float, v:float) -> int: ... + @overload + def AddHSVPoint(self, x:float, h:float, s:float, v:float, midpoint:float, sharpness:float) -> int: ... + def AddHSVSegment(self, x1:float, h1:float, s1:float, v1:float, x2:float, h2:float, s2:float, v2:float) -> None: ... + @overload + def AddRGBPoint(self, x:float, r:float, g:float, b:float) -> int: ... + @overload + def AddRGBPoint(self, x:float, r:float, g:float, b:float, midpoint:float, sharpness:float) -> int: ... + @overload + def AddRGBPoints(self, x:'vtkDoubleArray', rgbColors:'vtkDoubleArray') -> int: ... + @overload + def AddRGBPoints(self, x:'vtkDoubleArray', rgbColors:'vtkDoubleArray', midpoint:float, sharpness:float) -> int: ... + def AddRGBSegment(self, x1:float, r1:float, g1:float, b1:float, x2:float, r2:float, g2:float, b2:float) -> None: ... + def AdjustRange(self, range:MutableSequence[float]) -> int: ... + def AllowDuplicateScalarsOff(self) -> None: ... + def AllowDuplicateScalarsOn(self) -> None: ... + def BuildFunctionFromTable(self, x1:float, x2:float, size:int, table:MutableSequence[float]) -> None: ... + def ClampingOff(self) -> None: ... + def ClampingOn(self) -> None: ... + def DeepCopy(self, f:'vtkScalarsToColors') -> None: ... + def EstimateMinNumberOfSamples(self, x1:float, x2:float) -> int: ... + def FillFromDataPointer(self, n:int, ptr:MutableSequence[float]) -> None: ... + def GetAboveRangeColor(self) -> Tuple[float, float, float]: ... + def GetAllowDuplicateScalars(self) -> int: ... + def GetBelowRangeColor(self) -> Tuple[float, float, float]: ... + def GetBlueValue(self, x:float) -> float: ... + def GetClamping(self) -> int: ... + def GetClampingMaxValue(self) -> int: ... + def GetClampingMinValue(self) -> int: ... + @overload + def GetColor(self, x:float) -> Tuple[float, float, float]: ... + @overload + def GetColor(self, x:float, rgb:MutableSequence[float]) -> None: ... + def GetColorSpace(self) -> int: ... + def GetColorSpaceMaxValue(self) -> int: ... + def GetColorSpaceMinValue(self) -> int: ... + def GetDataPointer(self) -> Pointer: ... + def GetGreenValue(self, x:float) -> float: ... + def GetHSVWrap(self) -> int: ... + def GetIndexedColor(self, idx:int, rgba:MutableSequence[float]) -> None: ... + def GetNanColor(self) -> Tuple[float, float, float]: ... + def GetNanOpacity(self) -> float: ... + def GetNodeValue(self, index:int, val:MutableSequence[float]) -> int: ... + def GetNumberOfAvailableColors(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetRange(self) -> Tuple[float, float]: ... + @overload + def GetRange(self, arg1:float, arg2:float) -> None: ... + @overload + def GetRange(self, _arg:MutableSequence[float]) -> None: ... + def GetRedValue(self, x:float) -> float: ... + def GetScale(self) -> int: ... + def GetSize(self) -> int: ... + @overload + def GetTable(self, x1:float, x2:float, n:int, table:MutableSequence[float]) -> None: ... + @overload + def GetTable(self, x1:float, x2:float, n:int) -> Pointer: ... + def GetUseAboveRangeColor(self) -> int: ... + def GetUseBelowRangeColor(self) -> int: ... + def HSVWrapOff(self) -> None: ... + def HSVWrapOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MapScalarsThroughTable2(self, input:Pointer, output:MutableSequence[int], inputDataType:int, numberOfValues:int, inputIncrement:int, outputIncrement:int) -> None: ... + def MapValue(self, v:float) -> Pointer: ... + def NewInstance(self) -> 'vtkColorTransferFunction': ... + def RemoveAllPoints(self) -> None: ... + def RemovePoint(self, x:float) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkColorTransferFunction': ... + @overload + def SetAboveRangeColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAboveRangeColor(self, _arg:Sequence[float]) -> None: ... + def SetAllowDuplicateScalars(self, _arg:int) -> None: ... + @overload + def SetBelowRangeColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetBelowRangeColor(self, _arg:Sequence[float]) -> None: ... + def SetClamping(self, _arg:int) -> None: ... + def SetColorSpace(self, _arg:int) -> None: ... + def SetColorSpaceToDiverging(self) -> None: ... + def SetColorSpaceToHSV(self) -> None: ... + def SetColorSpaceToLab(self) -> None: ... + def SetColorSpaceToLabCIEDE2000(self) -> None: ... + def SetColorSpaceToProlab(self) -> None: ... + def SetColorSpaceToRGB(self) -> None: ... + def SetColorSpaceToStep(self) -> None: ... + def SetHSVWrap(self, _arg:int) -> None: ... + @overload + def SetNanColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetNanColor(self, _arg:Sequence[float]) -> None: ... + @overload + def SetNanColorRGBA(self, r:float, g:float, b:float, a:float) -> None: ... + @overload + def SetNanColorRGBA(self, rgba:MutableSequence[float]) -> None: ... + def SetNanOpacity(self, _arg:float) -> None: ... + def SetNodeValue(self, index:int, val:MutableSequence[float]) -> int: ... + def SetScale(self, _arg:int) -> None: ... + def SetScaleToLinear(self) -> None: ... + def SetScaleToLog10(self) -> None: ... + def SetUseAboveRangeColor(self, _arg:int) -> None: ... + def SetUseBelowRangeColor(self, _arg:int) -> None: ... + def ShallowCopy(self, f:'vtkColorTransferFunction') -> None: ... + def UseAboveRangeColorOff(self) -> None: ... + def UseAboveRangeColorOn(self) -> None: ... + def UseBelowRangeColorOff(self) -> None: ... + def UseBelowRangeColorOn(self) -> None: ... + +class vtkCompositeCellGridMapper(vtkMapper): + bounds:'getset_descriptor' + cell_id_array_name:'getset_descriptor' + cell_id_attribute_name:'getset_descriptor' + composite_data_display_attributes:'getset_descriptor' + composite_id_array_name:'getset_descriptor' + composite_id_attribute_name:'getset_descriptor' + m_time:'getset_descriptor' + point_id_array_name:'getset_descriptor' + point_id_attribute_name:'getset_descriptor' + process_id_array_name:'getset_descriptor' + process_id_attribute_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetCellIdAttributeName(self) -> 'vtkStringToken': ... + def GetCompositeDataDisplayAttributes(self) -> 'vtkCompositeDataDisplayAttributes': ... + def GetCompositeIdAttributeName(self) -> 'vtkStringToken': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointIdAttributeName(self) -> 'vtkStringToken': ... + def GetProcessIdAttributeName(self) -> 'vtkStringToken': ... + def HasOpaqueGeometry(self) -> bool: ... + def HasTranslucentPolygonalGeometry(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositeCellGridMapper': ... + def RecursiveHasTranslucentGeometry(self, dobj:'vtkDataObject', flat_index:int) -> bool: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer', a:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeCellGridMapper': ... + def SetCellIdArrayName(self, __a:str) -> None: ... + def SetCellIdAttributeName(self, _arg:'vtkStringToken') -> None: ... + def SetCompositeDataDisplayAttributes(self, __a:'vtkCompositeDataDisplayAttributes') -> None: ... + def SetCompositeIdArrayName(self, __a:str) -> None: ... + def SetCompositeIdAttributeName(self, _arg:'vtkStringToken') -> None: ... + def SetPointIdArrayName(self, __a:str) -> None: ... + def SetPointIdAttributeName(self, _arg:'vtkStringToken') -> None: ... + def SetProcessIdArrayName(self, __a:str) -> None: ... + def SetProcessIdAttributeName(self, _arg:'vtkStringToken') -> None: ... + +class vtkCompositeDataDisplayAttributes(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ComputeVisibleBounds(cda:'vtkCompositeDataDisplayAttributes', dobj:'vtkDataObject', bounds:MutableSequence[float]) -> None: ... + @staticmethod + def DataObjectFromIndex(flat_index:int, parent_obj:'vtkDataObject', current_flat_index:int=0) -> 'vtkDataObject': ... + def GetBlockArrayAccessMode(self, data_object:'vtkDataObject') -> int: ... + def GetBlockArrayComponent(self, data_object:'vtkDataObject') -> int: ... + def GetBlockArrayId(self, data_object:'vtkDataObject') -> int: ... + def GetBlockArrayName(self, data_object:'vtkDataObject') -> str: ... + @overload + def GetBlockColor(self, data_object:'vtkDataObject', color:MutableSequence[float]) -> None: ... + @overload + def GetBlockColor(self, data_object:'vtkDataObject') -> 'vtkColor3d': ... + def GetBlockColorMode(self, data_object:'vtkDataObject') -> int: ... + def GetBlockFieldDataTupleId(self, data_object:'vtkDataObject') -> int: ... + def GetBlockInterpolateScalarsBeforeMapping(self, data_object:'vtkDataObject') -> bool: ... + def GetBlockLookupTable(self, data_object:'vtkDataObject') -> 'vtkScalarsToColors': ... + def GetBlockMaterial(self, data_object:'vtkDataObject') -> str: ... + def GetBlockOpacity(self, data_object:'vtkDataObject') -> float: ... + def GetBlockPickability(self, data_object:'vtkDataObject') -> bool: ... + def GetBlockScalarMode(self, data_object:'vtkDataObject') -> int: ... + def GetBlockScalarRange(self, data_object:'vtkDataObject') -> 'vtkVector2d': ... + def GetBlockScalarVisibility(self, data_object:'vtkDataObject') -> bool: ... + def GetBlockUseLookupTableScalarRange(self, data_object:'vtkDataObject') -> bool: ... + def GetBlockVisibility(self, data_object:'vtkDataObject') -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def HasBlockArrayAccessMode(self, data_object:'vtkDataObject') -> bool: ... + def HasBlockArrayAccessModes(self) -> bool: ... + def HasBlockArrayComponent(self, data_object:'vtkDataObject') -> bool: ... + def HasBlockArrayComponents(self) -> bool: ... + def HasBlockArrayId(self, data_object:'vtkDataObject') -> bool: ... + def HasBlockArrayIds(self) -> bool: ... + def HasBlockArrayName(self, data_object:'vtkDataObject') -> bool: ... + def HasBlockArrayNames(self) -> bool: ... + def HasBlockColor(self, data_object:'vtkDataObject') -> bool: ... + def HasBlockColorMode(self, data_object:'vtkDataObject') -> bool: ... + def HasBlockColorModes(self) -> bool: ... + def HasBlockColors(self) -> bool: ... + def HasBlockFieldDataTupleId(self, data_object:'vtkDataObject') -> bool: ... + def HasBlockFieldDataTupleIds(self) -> bool: ... + def HasBlockInterpolateScalarsBeforeMapping(self, data_object:'vtkDataObject') -> bool: ... + def HasBlockInterpolateScalarsBeforeMappings(self) -> bool: ... + def HasBlockLookupTable(self, data_object:'vtkDataObject') -> bool: ... + def HasBlockLookupTables(self) -> bool: ... + def HasBlockMaterial(self, data_object:'vtkDataObject') -> bool: ... + def HasBlockMaterials(self) -> bool: ... + def HasBlockOpacities(self) -> bool: ... + def HasBlockOpacity(self, data_object:'vtkDataObject') -> bool: ... + def HasBlockPickabilities(self) -> bool: ... + def HasBlockPickability(self, data_object:'vtkDataObject') -> bool: ... + def HasBlockScalarMode(self, data_object:'vtkDataObject') -> bool: ... + def HasBlockScalarModes(self) -> bool: ... + def HasBlockScalarRange(self, data_object:'vtkDataObject') -> bool: ... + def HasBlockScalarRanges(self) -> bool: ... + def HasBlockScalarVisibilities(self) -> bool: ... + def HasBlockScalarVisibility(self, data_object:'vtkDataObject') -> bool: ... + def HasBlockUseLookupTableScalarRange(self, data_object:'vtkDataObject') -> bool: ... + def HasBlockUseLookupTableScalarRanges(self) -> bool: ... + def HasBlockVisibilities(self) -> bool: ... + def HasBlockVisibility(self, data_object:'vtkDataObject') -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositeDataDisplayAttributes': ... + def RemoveBlockArrayAccessMode(self, data_object:'vtkDataObject') -> None: ... + def RemoveBlockArrayAccessModes(self) -> None: ... + def RemoveBlockArrayComponent(self, data_object:'vtkDataObject') -> None: ... + def RemoveBlockArrayComponents(self) -> None: ... + def RemoveBlockArrayId(self, data_object:'vtkDataObject') -> None: ... + def RemoveBlockArrayIds(self) -> None: ... + def RemoveBlockArrayName(self, data_object:'vtkDataObject') -> None: ... + def RemoveBlockArrayNames(self) -> None: ... + def RemoveBlockColor(self, data_object:'vtkDataObject') -> None: ... + def RemoveBlockColorMode(self, data_object:'vtkDataObject') -> None: ... + def RemoveBlockColorModes(self) -> None: ... + def RemoveBlockColors(self) -> None: ... + def RemoveBlockFieldDataTupleId(self, data_object:'vtkDataObject') -> None: ... + def RemoveBlockFieldDataTupleIds(self) -> None: ... + def RemoveBlockInterpolateScalarsBeforeMapping(self, data_object:'vtkDataObject') -> None: ... + def RemoveBlockInterpolateScalarsBeforeMappings(self) -> None: ... + def RemoveBlockLookupTable(self, data_object:'vtkDataObject') -> None: ... + def RemoveBlockLookupTables(self) -> None: ... + def RemoveBlockMaterial(self, data_object:'vtkDataObject') -> None: ... + def RemoveBlockMaterials(self) -> None: ... + def RemoveBlockOpacities(self) -> None: ... + def RemoveBlockOpacity(self, data_object:'vtkDataObject') -> None: ... + def RemoveBlockPickabilities(self) -> None: ... + def RemoveBlockPickability(self, data_object:'vtkDataObject') -> None: ... + def RemoveBlockScalarMode(self, data_object:'vtkDataObject') -> None: ... + def RemoveBlockScalarModes(self) -> None: ... + def RemoveBlockScalarRange(self, data_object:'vtkDataObject') -> None: ... + def RemoveBlockScalarRanges(self) -> None: ... + def RemoveBlockScalarVisibilities(self) -> None: ... + def RemoveBlockScalarVisibility(self, data_object:'vtkDataObject') -> None: ... + def RemoveBlockUseLookupTableScalarRange(self, data_object:'vtkDataObject') -> None: ... + def RemoveBlockUseLookupTableScalarRanges(self) -> None: ... + def RemoveBlockVisibilities(self) -> None: ... + def RemoveBlockVisibility(self, data_object:'vtkDataObject') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeDataDisplayAttributes': ... + def SetBlockArrayAccessMode(self, data_object:'vtkDataObject', value:int) -> None: ... + def SetBlockArrayComponent(self, data_object:'vtkDataObject', value:int) -> None: ... + def SetBlockArrayId(self, data_object:'vtkDataObject', value:int) -> None: ... + def SetBlockArrayName(self, data_object:'vtkDataObject', value:str) -> None: ... + def SetBlockColor(self, data_object:'vtkDataObject', color:Sequence[float]) -> None: ... + def SetBlockColorMode(self, data_object:'vtkDataObject', value:int) -> None: ... + def SetBlockFieldDataTupleId(self, data_object:'vtkDataObject', value:int) -> None: ... + def SetBlockInterpolateScalarsBeforeMapping(self, data_object:'vtkDataObject', value:bool) -> None: ... + def SetBlockLookupTable(self, data_object:'vtkDataObject', lut:'vtkScalarsToColors') -> None: ... + def SetBlockMaterial(self, data_object:'vtkDataObject', material:str) -> None: ... + def SetBlockOpacity(self, data_object:'vtkDataObject', opacity:float) -> None: ... + def SetBlockPickability(self, data_object:'vtkDataObject', visible:bool) -> None: ... + def SetBlockScalarMode(self, data_object:'vtkDataObject', value:int) -> None: ... + def SetBlockScalarRange(self, data_object:'vtkDataObject', value:'vtkVector2d') -> None: ... + def SetBlockScalarVisibility(self, data_object:'vtkDataObject', value:bool) -> None: ... + def SetBlockUseLookupTableScalarRange(self, data_object:'vtkDataObject', value:bool) -> None: ... + def SetBlockVisibility(self, data_object:'vtkDataObject', visible:bool) -> None: ... + +class vtkCompositeDataDisplayAttributesLegacy(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ComputeVisibleBounds(cda:'vtkCompositeDataDisplayAttributesLegacy', dobj:'vtkDataObject', bounds:MutableSequence[float]) -> None: ... + @overload + def GetBlockColor(self, flat_index:int, color:MutableSequence[float]) -> None: ... + @overload + def GetBlockColor(self, flat_index:int) -> 'vtkColor3d': ... + def GetBlockOpacity(self, flat_index:int) -> float: ... + def GetBlockPickability(self, flat_index:int) -> bool: ... + def GetBlockVisibility(self, flat_index:int) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def HasBlockColor(self, flat_index:int) -> bool: ... + def HasBlockColors(self) -> bool: ... + def HasBlockOpacities(self) -> bool: ... + def HasBlockOpacity(self, flat_index:int) -> bool: ... + def HasBlockPickabilities(self) -> bool: ... + def HasBlockPickability(self, flat_index:int) -> bool: ... + def HasBlockVisibilities(self) -> bool: ... + def HasBlockVisibility(self, flat_index:int) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositeDataDisplayAttributesLegacy': ... + def RemoveBlockColor(self, flat_index:int) -> None: ... + def RemoveBlockColors(self) -> None: ... + def RemoveBlockOpacities(self) -> None: ... + def RemoveBlockOpacity(self, flat_index:int) -> None: ... + def RemoveBlockPickabilities(self) -> None: ... + def RemoveBlockPickability(self, flat_index:int) -> None: ... + def RemoveBlockVisibilities(self) -> None: ... + def RemoveBlockVisibility(self, flat_index:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeDataDisplayAttributesLegacy': ... + def SetBlockColor(self, flat_index:int, color:Sequence[float]) -> None: ... + def SetBlockOpacity(self, flat_index:int, opacity:float) -> None: ... + def SetBlockPickability(self, flat_index:int, visible:bool) -> None: ... + def SetBlockVisibility(self, flat_index:int, visible:bool) -> None: ... + +class vtkPolyDataMapper(vtkMapper): + class ShiftScaleMethodType(int): ... + ALWAYS_AUTO_SHIFT_SCALE:'ShiftScaleMethodType' + AUTO_SHIFT:'ShiftScaleMethodType' + AUTO_SHIFT_SCALE:'ShiftScaleMethodType' + DISABLE_SHIFT_SCALE:'ShiftScaleMethodType' + FOCAL_POINT_SHIFT_SCALE:'ShiftScaleMethodType' + MANUAL_SHIFT_SCALE:'ShiftScaleMethodType' + NEAR_PLANE_SHIFT_SCALE:'ShiftScaleMethodType' + bounds:'getset_descriptor' + cell_id_array_name:'getset_descriptor' + composite_id_array_name:'getset_descriptor' + ghost_level:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + number_of_sub_pieces:'getset_descriptor' + pause_shift_scale:'getset_descriptor' + piece:'getset_descriptor' + point_id_array_name:'getset_descriptor' + process_id_array_name:'getset_descriptor' + seamless_u:'getset_descriptor' + seamless_v:'getset_descriptor' + vbo_shift_scale_method:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetCellIdArrayName(self) -> str: ... + def GetCompositeIdArrayName(self) -> str: ... + def GetGhostLevel(self) -> int: ... + def GetInput(self) -> 'vtkPolyData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPieces(self) -> int: ... + def GetNumberOfSubPieces(self) -> int: ... + def GetPauseShiftScale(self) -> bool: ... + def GetPiece(self) -> int: ... + def GetPointIdArrayName(self) -> str: ... + def GetProcessIdArrayName(self) -> str: ... + def GetSeamlessU(self) -> bool: ... + def GetSeamlessV(self) -> bool: ... + def GetVBOShiftScaleMethod(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MapDataArrayToMultiTextureAttribute(self, textureName:str, dataArrayName:str, fieldAssociation:int, componentno:int=-1) -> None: ... + def MapDataArrayToVertexAttribute(self, vertexAttributeName:str, dataArrayName:str, fieldAssociation:int, componentno:int=-1) -> None: ... + def NewInstance(self) -> 'vtkPolyDataMapper': ... + def PauseShiftScaleOff(self) -> None: ... + def PauseShiftScaleOn(self) -> None: ... + def RemoveAllVertexAttributeMappings(self) -> None: ... + def RemoveVertexAttributeMapping(self, vertexAttributeName:str) -> None: ... + def Render(self, ren:'vtkRenderer', act:'vtkActor') -> None: ... + def RenderPiece(self, __a:'vtkRenderer', __b:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataMapper': ... + def SeamlessUOff(self) -> None: ... + def SeamlessUOn(self) -> None: ... + def SeamlessVOff(self) -> None: ... + def SeamlessVOn(self) -> None: ... + def SetCellIdArrayName(self, _arg:str) -> None: ... + def SetCompositeIdArrayName(self, _arg:str) -> None: ... + def SetGhostLevel(self, _arg:int) -> None: ... + def SetInputData(self, in_:'vtkPolyData') -> None: ... + def SetNumberOfPieces(self, _arg:int) -> None: ... + def SetNumberOfSubPieces(self, _arg:int) -> None: ... + def SetPauseShiftScale(self, pauseShiftScale:bool) -> None: ... + def SetPiece(self, _arg:int) -> None: ... + def SetPointIdArrayName(self, _arg:str) -> None: ... + def SetProcessIdArrayName(self, _arg:str) -> None: ... + def SetSeamlessU(self, _arg:bool) -> None: ... + def SetSeamlessV(self, _arg:bool) -> None: ... + def SetVBOShiftScaleMethod(self, __a:int) -> None: ... + def ShallowCopy(self, m:'vtkAbstractMapper') -> None: ... + @overload + def Update(self, port:int) -> None: ... + @overload + def Update(self) -> None: ... + @overload + def Update(self, port:int, requests:'vtkInformationVector') -> int: ... + @overload + def Update(self, requests:'vtkInformation') -> int: ... + +class vtkCompositePolyDataMapper(vtkPolyDataMapper): + bounds:'getset_descriptor' + color_missing_arrays_with_nan_color:'getset_descriptor' + composite_data_display_attributes:'getset_descriptor' + input_array_to_process:'getset_descriptor' + m_time:'getset_descriptor' + pause_shift_scale:'getset_descriptor' + vbo_shift_scale_method:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ColorMissingArraysWithNanColorOff(self) -> None: ... + def ColorMissingArraysWithNanColorOn(self) -> None: ... + def GetBlockArrayAccessMode(self, index:int) -> int: ... + def GetBlockArrayComponent(self, index:int) -> int: ... + def GetBlockArrayId(self, index:int) -> int: ... + def GetBlockArrayName(self, index:int) -> str: ... + def GetBlockColor(self, index:int, color:MutableSequence[float]) -> None: ... + def GetBlockFieldDataTupleId(self, index:int) -> int: ... + def GetBlockOpacity(self, index:int) -> float: ... + def GetBlockScalarMode(self, index:int) -> int: ... + def GetBlockVisibility(self, index:int) -> bool: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetColorMissingArraysWithNanColor(self) -> bool: ... + def GetCompositeDataDisplayAttributes(self) -> 'vtkCompositeDataDisplayAttributes': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def HasOpaqueGeometry(self) -> bool: ... + def HasTranslucentPolygonalGeometry(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositePolyDataMapper': ... + def ProcessSelectorPixelBuffers(self, sel:'vtkHardwareSelector', pixeloffsets:MutableSequence[int], prop:'vtkProp') -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RemoveBlockArrayAccessMode(self, index:int) -> None: ... + def RemoveBlockArrayAccessModes(self) -> None: ... + def RemoveBlockArrayComponent(self, index:int) -> None: ... + def RemoveBlockArrayComponents(self) -> None: ... + def RemoveBlockArrayId(self, index:int) -> None: ... + def RemoveBlockArrayIds(self) -> None: ... + def RemoveBlockArrayName(self, index:int) -> None: ... + def RemoveBlockArrayNames(self) -> None: ... + def RemoveBlockColor(self, index:int) -> None: ... + def RemoveBlockColors(self) -> None: ... + def RemoveBlockFieldDataTupleId(self, index:int) -> None: ... + def RemoveBlockFieldDataTupleIds(self) -> None: ... + def RemoveBlockOpacities(self) -> None: ... + def RemoveBlockOpacity(self, index:int) -> None: ... + def RemoveBlockScalarMode(self, index:int) -> None: ... + def RemoveBlockScalarModes(self) -> None: ... + def RemoveBlockVisibilities(self) -> None: ... + def RemoveBlockVisibility(self, index:int) -> None: ... + def Render(self, renderer:'vtkRenderer', actor:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositePolyDataMapper': ... + def SetBlockArrayAccessMode(self, index:int, value:int) -> None: ... + def SetBlockArrayComponent(self, index:int, value:int) -> None: ... + def SetBlockArrayId(self, index:int, value:int) -> None: ... + def SetBlockArrayName(self, index:int, value:str) -> None: ... + @overload + def SetBlockColor(self, index:int, color:Sequence[float]) -> None: ... + @overload + def SetBlockColor(self, index:int, r:float, g:float, b:float) -> None: ... + def SetBlockFieldDataTupleId(self, index:int, value:int) -> None: ... + def SetBlockOpacity(self, index:int, opacity:float) -> None: ... + def SetBlockScalarMode(self, index:int, value:int) -> None: ... + def SetBlockVisibility(self, index:int, visible:bool) -> None: ... + def SetColorMissingArraysWithNanColor(self, _arg:bool) -> None: ... + def SetCompositeDataDisplayAttributes(self, attributes:'vtkCompositeDataDisplayAttributes') -> None: ... + @overload + def SetInputArrayToProcess(self, idx:int, port:int, connection:int, fieldAssociation:int, name:str) -> None: ... + @overload + def SetInputArrayToProcess(self, idx:int, port:int, connection:int, fieldAssociation:int, fieldAttributeType:int) -> None: ... + @overload + def SetInputArrayToProcess(self, idx:int, info:'vtkInformation') -> None: ... + @overload + def SetInputArrayToProcess(self, name:str, fieldAssociation:int) -> None: ... + @overload + def SetInputArrayToProcess(self, idx:int, port:int, connection:int, fieldAssociation:str, attributeTypeorName:str) -> None: ... + def SetPauseShiftScale(self, pauseShiftScale:bool) -> None: ... + def SetVBOShiftScaleMethod(self, method:int) -> None: ... + def ShallowCopy(self, mapper:'vtkAbstractMapper') -> None: ... + +class vtkCompositePolyDataMapperDelegator(vtkmodules.vtkCommonCore.vtkObject): + delegate:'getset_descriptor' + marked:'getset_descriptor' + parent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Clear(self) -> None: ... + def ClearUnmarkedBatchElements(self) -> None: ... + def GetDelegate(self) -> 'vtkPolyDataMapper': ... + def GetMarked(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Mark(self) -> None: ... + def NewInstance(self) -> 'vtkCompositePolyDataMapperDelegator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositePolyDataMapperDelegator': ... + def SetParent(self, mapper:'vtkCompositePolyDataMapper') -> None: ... + def ShallowCopy(self, polydataMapper:'vtkCompositePolyDataMapper') -> None: ... + def Unmark(self) -> None: ... + def UnmarkBatchElements(self) -> None: ... + +class vtkCoordinate(vtkmodules.vtkCommonCore.vtkObject): + coordinate_system:'getset_descriptor' + reference_coordinate:'getset_descriptor' + value:'getset_descriptor' + viewport:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetComputedDisplayValue(self, __a:'vtkViewport') -> Tuple[int, int]: ... + def GetComputedDoubleDisplayValue(self, __a:'vtkViewport') -> Tuple[float, float]: ... + def GetComputedDoubleViewportValue(self, __a:'vtkViewport') -> Tuple[float, float]: ... + def GetComputedLocalDisplayValue(self, __a:'vtkViewport') -> Tuple[int, int]: ... + def GetComputedUserDefinedValue(self, __a:'vtkViewport') -> Tuple[float, float, float]: ... + def GetComputedValue(self, __a:'vtkViewport') -> Tuple[float, float, float]: ... + def GetComputedViewportValue(self, __a:'vtkViewport') -> Tuple[int, int]: ... + def GetComputedWorldValue(self, __a:'vtkViewport') -> Tuple[float, float, float]: ... + def GetCoordinateSystem(self) -> int: ... + def GetCoordinateSystemAsString(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReferenceCoordinate(self) -> 'vtkCoordinate': ... + def GetValue(self) -> Tuple[float, float, float]: ... + def GetViewport(self) -> 'vtkViewport': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCoordinate': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCoordinate': ... + def SetCoordinateSystem(self, _arg:int) -> None: ... + def SetCoordinateSystemToDisplay(self) -> None: ... + def SetCoordinateSystemToNormalizedDisplay(self) -> None: ... + def SetCoordinateSystemToNormalizedViewport(self) -> None: ... + def SetCoordinateSystemToPose(self) -> None: ... + def SetCoordinateSystemToView(self) -> None: ... + def SetCoordinateSystemToViewport(self) -> None: ... + def SetCoordinateSystemToWorld(self) -> None: ... + def SetReferenceCoordinate(self, __a:'vtkCoordinate') -> None: ... + @overload + def SetValue(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetValue(self, _arg:Sequence[float]) -> None: ... + @overload + def SetValue(self, a:float, b:float) -> None: ... + def SetViewport(self, viewport:'vtkViewport') -> None: ... + +class vtkCuller(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCuller': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCuller': ... + +class vtkCullerCollection(vtkmodules.vtkCommonCore.vtkCollection): + last_item:'getset_descriptor' + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, a:'vtkCuller') -> None: ... + def GetLastItem(self) -> 'vtkCuller': ... + def GetNextItem(self) -> 'vtkCuller': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCullerCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCullerCollection': ... + +class vtkDataSetMapper(vtkMapper): + input:'getset_descriptor' + input_data:'getset_descriptor' + m_time:'getset_descriptor' + poly_data_mapper:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInput(self) -> 'vtkDataSet': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPolyDataMapper(self) -> 'vtkPolyDataMapper': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataSetMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer', act:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataSetMapper': ... + def SetInputData(self, input:'vtkDataSet') -> None: ... + +class vtkDiscretizableColorTransferFunction(vtkColorTransferFunction): + alpha:'getset_descriptor' + discretize:'getset_descriptor' + enable_opacity_mapping:'getset_descriptor' + m_time:'getset_descriptor' + nan_color:'getset_descriptor' + nan_opacity:'getset_descriptor' + number_of_available_colors:'getset_descriptor' + number_of_indexed_colors:'getset_descriptor' + number_of_values:'getset_descriptor' + scalar_opacity_function:'getset_descriptor' + use_log_scale:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Build(self) -> None: ... + def DiscretizeOff(self) -> None: ... + def DiscretizeOn(self) -> None: ... + def EnableOpacityMappingOff(self) -> None: ... + def EnableOpacityMappingOn(self) -> None: ... + def GetColor(self, v:float, rgb:MutableSequence[float]) -> None: ... + def GetDiscretize(self) -> int: ... + def GetEnableOpacityMapping(self) -> bool: ... + def GetIndexedColor(self, i:int, rgba:MutableSequence[float]) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfAvailableColors(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIndexedColors(self) -> int: ... + def GetNumberOfValues(self) -> int: ... + def GetOpacity(self, v:float) -> float: ... + def GetScalarOpacityFunction(self) -> 'vtkPiecewiseFunction': ... + def GetUseLogScale(self) -> int: ... + def IsA(self, type:str) -> int: ... + @overload + def IsOpaque(self) -> int: ... + @overload + def IsOpaque(self, scalars:'vtkAbstractArray', colorMode:int, component:int) -> int: ... + @overload + def IsOpaque(self, scalars:'vtkAbstractArray', colorMode:int, component:int, ghosts:'vtkUnsignedCharArray', ghostsToSkip:int=0xff) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MapScalarsThroughTable2(self, input:Pointer, output:MutableSequence[int], inputDataType:int, numberOfValues:int, inputIncrement:int, outputFormat:int) -> None: ... + def MapValue(self, v:float) -> Pointer: ... + def NewInstance(self) -> 'vtkDiscretizableColorTransferFunction': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDiscretizableColorTransferFunction': ... + def SetAlpha(self, alpha:float) -> None: ... + def SetDiscretize(self, _arg:int) -> None: ... + def SetEnableOpacityMapping(self, _arg:bool) -> None: ... + def SetIndexedColor(self, index:int, r:float, g:float, b:float, a:float=1.0) -> None: ... + def SetIndexedColorRGB(self, index:int, rgb:Sequence[float]) -> None: ... + def SetIndexedColorRGBA(self, index:int, rgba:Sequence[float]) -> None: ... + @overload + def SetNanColor(self, r:float, g:float, b:float) -> None: ... + @overload + def SetNanColor(self, rgb:Sequence[float]) -> None: ... + def SetNanOpacity(self, a:float) -> None: ... + def SetNumberOfIndexedColors(self, count:int) -> None: ... + def SetNumberOfValues(self, _arg:int) -> None: ... + def SetScalarOpacityFunction(self, function:'vtkPiecewiseFunction') -> None: ... + def SetUseLogScale(self, useLogScale:int) -> None: ... + def UsingLogScale(self) -> int: ... + +class vtkDistanceToCamera(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + distance_array_name:'getset_descriptor' + m_time:'getset_descriptor' + renderer:'getset_descriptor' + scaling:'getset_descriptor' + screen_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDistanceArrayName(self) -> str: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderer(self) -> 'vtkRenderer': ... + def GetScaling(self) -> bool: ... + def GetScreenSize(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDistanceToCamera': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDistanceToCamera': ... + def ScalingOff(self) -> None: ... + def ScalingOn(self) -> None: ... + def SetDistanceArrayName(self, _arg:str) -> None: ... + def SetRenderer(self, ren:'vtkRenderer') -> None: ... + def SetScaling(self, _arg:bool) -> None: ... + def SetScreenSize(self, _arg:float) -> None: ... + +class vtkFXAAOptions(vtkmodules.vtkCommonCore.vtkObject): + class DebugOption(int): ... + FXAA_DEBUG_EDGE_DIRECTION:'DebugOption' + FXAA_DEBUG_EDGE_DISTANCE:'DebugOption' + FXAA_DEBUG_EDGE_NUM_STEPS:'DebugOption' + FXAA_DEBUG_EDGE_SAMPLE_OFFSET:'DebugOption' + FXAA_DEBUG_ONLY_EDGE_AA:'DebugOption' + FXAA_DEBUG_ONLY_SUBPIX_AA:'DebugOption' + FXAA_DEBUG_SUBPIXEL_ALIASING:'DebugOption' + FXAA_NO_DEBUG:'DebugOption' + debug_option_value:'getset_descriptor' + endpoint_search_iterations:'getset_descriptor' + hard_contrast_threshold:'getset_descriptor' + relative_contrast_threshold:'getset_descriptor' + subpixel_blend_limit:'getset_descriptor' + subpixel_contrast_threshold:'getset_descriptor' + use_high_quality_endpoints:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDebugOptionValue(self) -> 'DebugOption': ... + def GetEndpointSearchIterations(self) -> int: ... + def GetEndpointSearchIterationsMaxValue(self) -> int: ... + def GetEndpointSearchIterationsMinValue(self) -> int: ... + def GetHardContrastThreshold(self) -> float: ... + def GetHardContrastThresholdMaxValue(self) -> float: ... + def GetHardContrastThresholdMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRelativeContrastThreshold(self) -> float: ... + def GetRelativeContrastThresholdMaxValue(self) -> float: ... + def GetRelativeContrastThresholdMinValue(self) -> float: ... + def GetSubpixelBlendLimit(self) -> float: ... + def GetSubpixelBlendLimitMaxValue(self) -> float: ... + def GetSubpixelBlendLimitMinValue(self) -> float: ... + def GetSubpixelContrastThreshold(self) -> float: ... + def GetSubpixelContrastThresholdMaxValue(self) -> float: ... + def GetSubpixelContrastThresholdMinValue(self) -> float: ... + def GetUseHighQualityEndpoints(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFXAAOptions': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFXAAOptions': ... + def SetDebugOptionValue(self, _arg:'DebugOption') -> None: ... + def SetEndpointSearchIterations(self, _arg:int) -> None: ... + def SetHardContrastThreshold(self, _arg:float) -> None: ... + def SetRelativeContrastThreshold(self, _arg:float) -> None: ... + def SetSubpixelBlendLimit(self, _arg:float) -> None: ... + def SetSubpixelContrastThreshold(self, _arg:float) -> None: ... + def SetUseHighQualityEndpoints(self, _arg:bool) -> None: ... + def UseHighQualityEndpointsOff(self) -> None: ... + def UseHighQualityEndpointsOn(self) -> None: ... + +class vtkFlagpoleLabel(vtkActor): + base_position:'getset_descriptor' + bounds:'getset_descriptor' + flag_size:'getset_descriptor' + force_opaque:'getset_descriptor' + force_translucent:'getset_descriptor' + input:'getset_descriptor' + text_property:'getset_descriptor' + top_position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ForceOpaqueOff(self) -> None: ... + def ForceOpaqueOn(self) -> None: ... + def ForceTranslucentOff(self) -> None: ... + def ForceTranslucentOn(self) -> None: ... + def GetBasePosition(self) -> Tuple[float, float, float]: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetFlagSize(self) -> float: ... + def GetForceOpaque(self) -> bool: ... + def GetForceTranslucent(self) -> bool: ... + def GetInput(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTextProperty(self) -> 'vtkTextProperty': ... + def GetTopPosition(self) -> Tuple[float, float, float]: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFlagpoleLabel': ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, vp:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, vp:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFlagpoleLabel': ... + def SetBasePosition(self, x:float, y:float, z:float) -> None: ... + def SetFlagSize(self, _arg:float) -> None: ... + def SetForceOpaque(self, opaque:bool) -> None: ... + def SetForceTranslucent(self, trans:bool) -> None: ... + def SetInput(self, in_:str) -> None: ... + def SetTextProperty(self, tprop:'vtkTextProperty') -> None: ... + def SetTopPosition(self, x:float, y:float, z:float) -> None: ... + +class vtkFollower(vtkActor): + camera:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeMatrix(self) -> None: ... + def GetCamera(self) -> 'vtkCamera': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFollower': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFollower': ... + def SetCamera(self, __a:'vtkCamera') -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkFrameBufferObjectBase(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + @overload + def GetLastSize(self) -> Pointer: ... + @overload + def GetLastSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def GetLastSize(self, _arg:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFrameBufferObjectBase': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFrameBufferObjectBase': ... + +class vtkFrustumCoverageCuller(vtkCuller): + maximum_coverage:'getset_descriptor' + minimum_coverage:'getset_descriptor' + sorting_style:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaximumCoverage(self) -> float: ... + def GetMinimumCoverage(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSortingStyle(self) -> int: ... + def GetSortingStyleAsString(self) -> str: ... + def GetSortingStyleMaxValue(self) -> int: ... + def GetSortingStyleMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFrustumCoverageCuller': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFrustumCoverageCuller': ... + def SetMaximumCoverage(self, _arg:float) -> None: ... + def SetMinimumCoverage(self, _arg:float) -> None: ... + def SetSortingStyle(self, _arg:int) -> None: ... + def SetSortingStyleToBackToFront(self) -> None: ... + def SetSortingStyleToFrontToBack(self) -> None: ... + def SetSortingStyleToNone(self) -> None: ... + +class vtkGPUInfo(vtkmodules.vtkCommonCore.vtkObject): + dedicated_system_memory:'getset_descriptor' + dedicated_video_memory:'getset_descriptor' + shared_system_memory:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDedicatedSystemMemory(self) -> int: ... + def GetDedicatedVideoMemory(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSharedSystemMemory(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGPUInfo': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGPUInfo': ... + def SetDedicatedSystemMemory(self, _arg:int) -> None: ... + def SetDedicatedVideoMemory(self, _arg:int) -> None: ... + def SetSharedSystemMemory(self, _arg:int) -> None: ... + +class vtkGPUInfoList(vtkmodules.vtkCommonCore.vtkObject): + number_of_gp_us:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetGPUInfo(self, i:int) -> 'vtkGPUInfo': ... + def GetNumberOfGPUs(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsProbed(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGPUInfoList': ... + def Probe(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGPUInfoList': ... + +class vtkGPUInfoListArray(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkGPUInfoListArray') -> None: ... + +class vtkGenericVertexAttributeMapping(vtkmodules.vtkCommonCore.vtkObject): + number_of_mappings:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddMapping(self, attributeName:str, arrayName:str, fieldAssociation:int, component:int) -> None: ... + @overload + def AddMapping(self, unit:int, arrayName:str, fieldAssociation:int, component:int) -> None: ... + def GetArrayName(self, index:int) -> str: ... + def GetAttributeName(self, index:int) -> str: ... + def GetComponent(self, index:int) -> int: ... + def GetFieldAssociation(self, index:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfMappings(self) -> int: ... + def GetTextureUnit(self, index:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenericVertexAttributeMapping': ... + def RemoveAllMappings(self) -> None: ... + def RemoveMapping(self, attributeName:str) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericVertexAttributeMapping': ... + +class vtkGlyph3DMapper(vtkMapper): + class ArrayIndexes(int): ... + class OrientationModes(int): ... + class ScaleModes(int): ... + DIRECTION:'OrientationModes' + MASK:'ArrayIndexes' + NO_DATA_SCALING:'ScaleModes' + ORIENTATION:'ArrayIndexes' + QUATERNION:'OrientationModes' + ROTATION:'OrientationModes' + SCALE:'ArrayIndexes' + SCALE_BY_COMPONENTS:'ScaleModes' + SCALE_BY_MAGNITUDE:'ScaleModes' + SELECTIONID:'ArrayIndexes' + SOURCE_INDEX:'ArrayIndexes' + block_attributes:'getset_descriptor' + bounds:'getset_descriptor' + clamping:'getset_descriptor' + culling_and_lod:'getset_descriptor' + input_data:'getset_descriptor' + lod_coloring:'getset_descriptor' + mask_array:'getset_descriptor' + masking:'getset_descriptor' + max_number_of_lod:'getset_descriptor' + number_of_lod:'getset_descriptor' + orient:'getset_descriptor' + orientation_array:'getset_descriptor' + orientation_mode:'getset_descriptor' + range:'getset_descriptor' + scale_array:'getset_descriptor' + scale_factor:'getset_descriptor' + scale_mode:'getset_descriptor' + scaling:'getset_descriptor' + selection_color_id:'getset_descriptor' + selection_id_array:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + source_index_array:'getset_descriptor' + source_indexing:'getset_descriptor' + source_table_tree:'getset_descriptor' + supports_selection:'getset_descriptor' + use_selection_ids:'getset_descriptor' + use_source_table_tree:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClampingOff(self) -> None: ... + def ClampingOn(self) -> None: ... + def GetBlockAttributes(self) -> 'vtkCompositeDataDisplayAttributes': ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetClamping(self) -> bool: ... + def GetCullingAndLOD(self) -> bool: ... + def GetLODColoring(self) -> bool: ... + def GetMasking(self) -> bool: ... + def GetMaxNumberOfLOD(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrient(self) -> bool: ... + def GetOrientationMode(self) -> int: ... + def GetOrientationModeAsString(self) -> str: ... + def GetOrientationModeMaxValue(self) -> int: ... + def GetOrientationModeMinValue(self) -> int: ... + def GetRange(self) -> Tuple[float, float]: ... + def GetScaleFactor(self) -> float: ... + def GetScaleMode(self) -> int: ... + def GetScaleModeAsString(self) -> str: ... + def GetScaling(self) -> bool: ... + def GetSelectionColorId(self) -> int: ... + def GetSource(self, idx:int=0) -> 'vtkPolyData': ... + def GetSourceIndexing(self) -> bool: ... + def GetSourceTableTree(self) -> 'vtkDataObjectTree': ... + def GetSupportsSelection(self) -> bool: ... + def GetUseSelectionIds(self) -> bool: ... + def GetUseSourceTableTree(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MaskingOff(self) -> None: ... + def MaskingOn(self) -> None: ... + def NewInstance(self) -> 'vtkGlyph3DMapper': ... + def OrientOff(self) -> None: ... + def OrientOn(self) -> None: ... + def Render(self, ren:'vtkRenderer', act:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGlyph3DMapper': ... + def ScalingOff(self) -> None: ... + def ScalingOn(self) -> None: ... + def SetBlockAttributes(self, attr:'vtkCompositeDataDisplayAttributes') -> None: ... + def SetClamping(self, _arg:bool) -> None: ... + def SetCullingAndLOD(self, _arg:bool) -> None: ... + def SetInputData(self, __a:'vtkDataObject') -> None: ... + def SetLODColoring(self, _arg:bool) -> None: ... + def SetLODDistanceAndTargetReduction(self, index:int, distance:float, targetReduction:float) -> None: ... + @overload + def SetMaskArray(self, maskarrayname:str) -> None: ... + @overload + def SetMaskArray(self, fieldAttributeType:int) -> None: ... + def SetMasking(self, _arg:bool) -> None: ... + def SetNumberOfLOD(self, nb:int) -> None: ... + def SetOrient(self, _arg:bool) -> None: ... + @overload + def SetOrientationArray(self, orientationarrayname:str) -> None: ... + @overload + def SetOrientationArray(self, fieldAttributeType:int) -> None: ... + def SetOrientationMode(self, _arg:int) -> None: ... + def SetOrientationModeToDirection(self) -> None: ... + def SetOrientationModeToQuaternion(self) -> None: ... + def SetOrientationModeToRotation(self) -> None: ... + @overload + def SetRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetRange(self, _arg:Sequence[float]) -> None: ... + @overload + def SetScaleArray(self, scalarsarrayname:str) -> None: ... + @overload + def SetScaleArray(self, fieldAttributeType:int) -> None: ... + def SetScaleFactor(self, _arg:float) -> None: ... + def SetScaleMode(self, _arg:int) -> None: ... + def SetScaleModeToNoDataScaling(self) -> None: ... + def SetScaleModeToScaleByMagnitude(self) -> None: ... + def SetScaleModeToScaleByVectorComponents(self) -> None: ... + def SetScaling(self, _arg:bool) -> None: ... + def SetSelectionColorId(self, _arg:int) -> None: ... + @overload + def SetSelectionIdArray(self, selectionIdArrayName:str) -> None: ... + @overload + def SetSelectionIdArray(self, fieldAttributeType:int) -> None: ... + @overload + def SetSourceConnection(self, idx:int, algOutput:'vtkAlgorithmOutput') -> None: ... + @overload + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + @overload + def SetSourceData(self, idx:int, pd:'vtkPolyData') -> None: ... + @overload + def SetSourceData(self, pd:'vtkPolyData') -> None: ... + @overload + def SetSourceIndexArray(self, arrayname:str) -> None: ... + @overload + def SetSourceIndexArray(self, fieldAttributeType:int) -> None: ... + def SetSourceIndexing(self, _arg:bool) -> None: ... + def SetSourceTableTree(self, tree:'vtkDataObjectTree') -> None: ... + def SetUseSelectionIds(self, _arg:bool) -> None: ... + def SetUseSourceTableTree(self, _arg:bool) -> None: ... + def SourceIndexingOff(self) -> None: ... + def SourceIndexingOn(self) -> None: ... + def UseSelectionIdsOff(self) -> None: ... + def UseSelectionIdsOn(self) -> None: ... + def UseSourceTableTreeOff(self) -> None: ... + def UseSourceTableTreeOn(self) -> None: ... + +class vtkGraphMapper(vtkMapper): + bounds:'getset_descriptor' + color_edges:'getset_descriptor' + color_vertices:'getset_descriptor' + edge_color_array_name:'getset_descriptor' + edge_line_width:'getset_descriptor' + edge_lookup_table:'getset_descriptor' + edge_visibility:'getset_descriptor' + enable_edges_by_array:'getset_descriptor' + enable_vertices_by_array:'getset_descriptor' + enabled_edges_array_name:'getset_descriptor' + enabled_vertices_array_name:'getset_descriptor' + icon_alignment:'getset_descriptor' + icon_array_name:'getset_descriptor' + icon_size:'getset_descriptor' + icon_texture:'getset_descriptor' + icon_visibility:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + m_time:'getset_descriptor' + scaled_glyphs:'getset_descriptor' + scaling_array_name:'getset_descriptor' + vertex_color_array_name:'getset_descriptor' + vertex_lookup_table:'getset_descriptor' + vertex_point_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddIconType(self, type:str, index:int) -> None: ... + def ClearIconTypes(self) -> None: ... + def ColorEdgesOff(self) -> None: ... + def ColorEdgesOn(self) -> None: ... + def ColorVerticesOff(self) -> None: ... + def ColorVerticesOn(self) -> None: ... + def EdgeVisibilityOff(self) -> None: ... + def EdgeVisibilityOn(self) -> None: ... + def EnableEdgesByArrayOff(self) -> None: ... + def EnableEdgesByArrayOn(self) -> None: ... + def EnableVerticesByArrayOff(self) -> None: ... + def EnableVerticesByArrayOn(self) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetColorEdges(self) -> bool: ... + def GetColorVertices(self) -> bool: ... + def GetEdgeColorArrayName(self) -> str: ... + def GetEdgeLineWidth(self) -> float: ... + def GetEdgeLookupTable(self) -> 'vtkLookupTable': ... + def GetEdgeVisibility(self) -> bool: ... + def GetEnableEdgesByArray(self) -> int: ... + def GetEnableVerticesByArray(self) -> int: ... + def GetEnabledEdgesArrayName(self) -> str: ... + def GetEnabledVerticesArrayName(self) -> str: ... + def GetIconArrayName(self) -> str: ... + def GetIconSize(self) -> Pointer: ... + def GetIconTexture(self) -> 'vtkTexture': ... + def GetIconVisibility(self) -> bool: ... + def GetInput(self) -> 'vtkGraph': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScaledGlyphs(self) -> bool: ... + def GetScalingArrayName(self) -> str: ... + def GetVertexColorArrayName(self) -> str: ... + def GetVertexLookupTable(self) -> 'vtkLookupTable': ... + def GetVertexPointSize(self) -> float: ... + def IconVisibilityOff(self) -> None: ... + def IconVisibilityOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGraphMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer', act:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraphMapper': ... + def ScaledGlyphsOff(self) -> None: ... + def ScaledGlyphsOn(self) -> None: ... + def SetColorEdges(self, vis:bool) -> None: ... + def SetColorVertices(self, vis:bool) -> None: ... + def SetEdgeColorArrayName(self, name:str) -> None: ... + def SetEdgeLineWidth(self, width:float) -> None: ... + def SetEdgeVisibility(self, vis:bool) -> None: ... + def SetEnableEdgesByArray(self, _arg:int) -> None: ... + def SetEnableVerticesByArray(self, _arg:int) -> None: ... + def SetEnabledEdgesArrayName(self, _arg:str) -> None: ... + def SetEnabledVerticesArrayName(self, _arg:str) -> None: ... + def SetIconAlignment(self, alignment:int) -> None: ... + def SetIconArrayName(self, name:str) -> None: ... + def SetIconSize(self, size:MutableSequence[int]) -> None: ... + def SetIconTexture(self, texture:'vtkTexture') -> None: ... + def SetIconVisibility(self, vis:bool) -> None: ... + def SetInputData(self, input:'vtkGraph') -> None: ... + def SetScaledGlyphs(self, arg:bool) -> None: ... + def SetScalingArrayName(self, _arg:str) -> None: ... + def SetVertexColorArrayName(self, name:str) -> None: ... + def SetVertexPointSize(self, size:float) -> None: ... + +class vtkGraphToGlyphs(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + CIRCLE:int + CROSS:int + DASH:int + DIAMOND:int + SPHERE:int + SQUARE:int + THICKCROSS:int + TRIANGLE:int + VERTEX:int + filled:'getset_descriptor' + glyph_type:'getset_descriptor' + m_time:'getset_descriptor' + renderer:'getset_descriptor' + scaling:'getset_descriptor' + screen_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FilledOff(self) -> None: ... + def FilledOn(self) -> None: ... + def GetFilled(self) -> bool: ... + def GetGlyphType(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderer(self) -> 'vtkRenderer': ... + def GetScaling(self) -> bool: ... + def GetScreenSize(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGraphToGlyphs': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraphToGlyphs': ... + def SetFilled(self, _arg:bool) -> None: ... + def SetGlyphType(self, _arg:int) -> None: ... + def SetRenderer(self, ren:'vtkRenderer') -> None: ... + def SetScaling(self, b:bool) -> None: ... + def SetScreenSize(self, _arg:float) -> None: ... + +class vtkGraphicsFactory(vtkmodules.vtkCommonCore.vtkObject): + off_screen_only_mode:'getset_descriptor' + render_library:'getset_descriptor' + use_mesa_classes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def CreateInstance(vtkclassname:str) -> 'vtkObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GetOffScreenOnlyMode() -> int: ... + @staticmethod + def GetRenderLibrary() -> str: ... + @staticmethod + def GetUseMesaClasses() -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGraphicsFactory': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraphicsFactory': ... + @staticmethod + def SetOffScreenOnlyMode(use:int) -> None: ... + @staticmethod + def SetUseMesaClasses(use:int) -> None: ... + +class vtkHardwarePicker(vtkAbstractPropPicker): + cell_grid_cell_type_id:'getset_descriptor' + cell_grid_source_spec_id:'getset_descriptor' + cell_grid_tuple_id:'getset_descriptor' + cell_id:'getset_descriptor' + composite_data_set:'getset_descriptor' + data_object:'getset_descriptor' + data_set:'getset_descriptor' + flat_block_index:'getset_descriptor' + mapper:'getset_descriptor' + normal_flipped:'getset_descriptor' + p_coords:'getset_descriptor' + pick_normal:'getset_descriptor' + pixel_tolerance:'getset_descriptor' + point_id:'getset_descriptor' + snap_to_mesh_point:'getset_descriptor' + sub_id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellGridCellTypeId(self) -> int: ... + def GetCellGridSourceSpecId(self) -> int: ... + def GetCellGridTupleId(self) -> int: ... + def GetCellId(self) -> int: ... + def GetCompositeDataSet(self) -> 'vtkCompositeDataSet': ... + def GetDataObject(self) -> 'vtkDataObject': ... + def GetDataSet(self) -> 'vtkDataSet': ... + def GetFlatBlockIndex(self) -> int: ... + def GetMapper(self) -> 'vtkAbstractMapper3D': ... + def GetNormalFlipped(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPCoords(self) -> Tuple[float, float, float]: ... + def GetPickNormal(self) -> Tuple[float, float, float]: ... + def GetPixelTolerance(self) -> int: ... + def GetPointId(self) -> int: ... + def GetSnapToMeshPoint(self) -> bool: ... + def GetSubId(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHardwarePicker': ... + def Pick(self, selectionX:float, selectionY:float, selectionZ:float, renderer:'vtkRenderer') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHardwarePicker': ... + def SetPixelTolerance(self, _arg:int) -> None: ... + def SetSnapToMeshPoint(self, _arg:bool) -> None: ... + def SnapToMeshPointOff(self) -> None: ... + def SnapToMeshPointOn(self) -> None: ... + +class vtkHardwareSelector(vtkmodules.vtkCommonCore.vtkObject): + class PassTypes(int): ... + ACTOR_PASS:'PassTypes' + CELLGRID_CELL_TYPE_INDEX_PASS:'PassTypes' + CELLGRID_SOURCE_INDEX_PASS:'PassTypes' + CELLGRID_TUPLE_ID_HIGH24:'PassTypes' + CELLGRID_TUPLE_ID_LOW24:'PassTypes' + CELL_ID_HIGH24:'PassTypes' + CELL_ID_LOW24:'PassTypes' + COMPOSITE_INDEX_PASS:'PassTypes' + MAX_KNOWN_PASS:'PassTypes' + MIN_KNOWN_PASS:'PassTypes' + POINT_ID_HIGH24:'PassTypes' + POINT_ID_LOW24:'PassTypes' + PROCESS_PASS:'PassTypes' + actor_pass_only:'getset_descriptor' + area:'getset_descriptor' + capture_z_values:'getset_descriptor' + current_pass:'getset_descriptor' + field_association:'getset_descriptor' + process_id:'getset_descriptor' + prop_color_value:'getset_descriptor' + renderer:'getset_descriptor' + use_process_id_from_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BeginRenderProp(self) -> None: ... + def CaptureBuffers(self) -> bool: ... + def ClearBuffers(self) -> None: ... + @staticmethod + def Convert(id:int, tcoord:MutableSequence[float]) -> None: ... + def EndRenderProp(self) -> None: ... + def GeneratePolygonSelection(self, polygonPoints:MutableSequence[int], count:int) -> 'vtkSelection': ... + @overload + def GenerateSelection(self) -> 'vtkSelection': ... + @overload + def GenerateSelection(self, r:MutableSequence[int]) -> 'vtkSelection': ... + @overload + def GenerateSelection(self, x1:int, y1:int, x2:int, y2:int) -> 'vtkSelection': ... + def GetActorPassOnly(self) -> bool: ... + def GetArea(self) -> Tuple[int, int, int, int]: ... + def GetCaptureZValues(self) -> bool: ... + def GetCurrentPass(self) -> int: ... + def GetFieldAssociation(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPixelBuffer(self, passNo:int) -> Pointer: ... + def GetProcessID(self) -> int: ... + def GetPropColorValue(self) -> Tuple[float, float, float]: ... + def GetPropFromID(self, id:int) -> 'vtkProp': ... + def GetRawPixelBuffer(self, passNo:int) -> Pointer: ... + def GetRenderer(self) -> 'vtkRenderer': ... + def GetUseProcessIdFromData(self) -> bool: ... + def HasHighCellGridTupleIds(self) -> bool: ... + def HasHighCellIds(self) -> bool: ... + def HasHighPointIds(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHardwareSelector': ... + def PassTypeToString(self, type:'PassTypes') -> str: ... + def RenderCompositeIndex(self, index:int) -> None: ... + def RenderProcessId(self, processid:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHardwareSelector': ... + def SavePixelBuffer(self, passNo:int) -> None: ... + def Select(self) -> 'vtkSelection': ... + def SetActorPassOnly(self, _arg:bool) -> None: ... + @overload + def SetArea(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int) -> None: ... + @overload + def SetArea(self, _arg:Sequence[int]) -> None: ... + def SetCaptureZValues(self, _arg:bool) -> None: ... + def SetFieldAssociation(self, _arg:int) -> None: ... + def SetProcessID(self, _arg:int) -> None: ... + @overload + def SetPropColorValue(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPropColorValue(self, _arg:Sequence[float]) -> None: ... + @overload + def SetPropColorValue(self, val:int) -> None: ... + def SetRenderer(self, __a:'vtkRenderer') -> None: ... + def SetUseProcessIdFromData(self, _arg:bool) -> None: ... + def UpdateMaximumCellGridTupleId(self, attribid:int) -> None: ... + def UpdateMaximumCellId(self, attribid:int) -> None: ... + def UpdateMaximumPointId(self, attribid:int) -> None: ... + +class vtkHardwareWindow(vtkmodules.vtkCommonCore.vtkWindow): + def __init__(self, **properties:Any) -> None: ... + def Create(self) -> None: ... + def Destroy(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHardwareWindow': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHardwareWindow': ... + +class vtkHierarchicalPolyDataMapper(vtkCompositePolyDataMapper): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHierarchicalPolyDataMapper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHierarchicalPolyDataMapper': ... + +class vtkImageSlice(vtkProp3D): + bounds:'getset_descriptor' + force_translucent:'getset_descriptor' + m_time:'getset_descriptor' + mapper:'getset_descriptor' + max_x_bound:'getset_descriptor' + max_y_bound:'getset_descriptor' + max_z_bound:'getset_descriptor' + min_x_bound:'getset_descriptor' + min_y_bound:'getset_descriptor' + min_z_bound:'getset_descriptor' + property:'getset_descriptor' + redraw_m_time:'getset_descriptor' + stacked_image_pass:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ForceTranslucentOff(self) -> None: ... + def ForceTranslucentOn(self) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetForceTranslucent(self) -> bool: ... + def GetImages(self, __a:'vtkPropCollection') -> None: ... + def GetMTime(self) -> int: ... + def GetMapper(self) -> 'vtkImageMapper3D': ... + def GetMaxXBound(self) -> float: ... + def GetMaxYBound(self) -> float: ... + def GetMaxZBound(self) -> float: ... + def GetMinXBound(self) -> float: ... + def GetMinYBound(self) -> float: ... + def GetMinZBound(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProperty(self) -> 'vtkImageProperty': ... + def GetRedrawMTime(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageSlice': ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + def Render(self, __a:'vtkRenderer') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageSlice': ... + def SetForceTranslucent(self, _arg:bool) -> None: ... + def SetMapper(self, mapper:'vtkImageMapper3D') -> None: ... + def SetProperty(self, property:'vtkImageProperty') -> None: ... + def SetStackedImagePass(self, pass_:int) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def Update(self) -> None: ... + +class vtkImageActor(vtkImageSlice): + bounds:'getset_descriptor' + display_bounds:'getset_descriptor' + display_extent:'getset_descriptor' + force_opaque:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + interpolate:'getset_descriptor' + opacity:'getset_descriptor' + slice_number:'getset_descriptor' + slice_number_max:'getset_descriptor' + slice_number_min:'getset_descriptor' + whole_z_max:'getset_descriptor' + whole_z_min:'getset_descriptor' + z_slice:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ForceOpaqueOff(self) -> None: ... + def ForceOpaqueOn(self) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetDisplayBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetDisplayBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetDisplayExtent(self, extent:MutableSequence[int]) -> None: ... + @overload + def GetDisplayExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetForceOpaque(self) -> bool: ... + def GetInput(self) -> 'vtkImageData': ... + def GetInterpolate(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOpacity(self) -> float: ... + def GetOpacityMaxValue(self) -> float: ... + def GetOpacityMinValue(self) -> float: ... + def GetSliceNumber(self) -> int: ... + def GetSliceNumberMax(self) -> int: ... + def GetSliceNumberMin(self) -> int: ... + def GetWholeZMax(self) -> int: ... + def GetWholeZMin(self) -> int: ... + def GetZSlice(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def InterpolateOff(self) -> None: ... + def InterpolateOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageActor': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageActor': ... + @overload + def SetDisplayExtent(self, extent:Sequence[int]) -> None: ... + @overload + def SetDisplayExtent(self, minX:int, maxX:int, minY:int, maxY:int, minZ:int, maxZ:int) -> None: ... + def SetForceOpaque(self, _arg:bool) -> None: ... + def SetInputData(self, __a:'vtkImageData') -> None: ... + def SetInterpolate(self, __a:int) -> None: ... + def SetOpacity(self, __a:float) -> None: ... + def SetZSlice(self, z:int) -> None: ... + +class vtkMapper2D(vtkAbstractMapper): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMapper2D': ... + def RenderOpaqueGeometry(self, __a:'vtkViewport', __b:'vtkActor2D') -> None: ... + def RenderOverlay(self, __a:'vtkViewport', __b:'vtkActor2D') -> None: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport', __b:'vtkActor2D') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMapper2D': ... + +class vtkImageMapper(vtkMapper2D): + color_level:'getset_descriptor' + color_scale:'getset_descriptor' + color_shift:'getset_descriptor' + color_window:'getset_descriptor' + custom_display_extents:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + m_time:'getset_descriptor' + render_to_rectangle:'getset_descriptor' + use_custom_extents:'getset_descriptor' + whole_z_max:'getset_descriptor' + whole_z_min:'getset_descriptor' + z_slice:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetColorLevel(self) -> float: ... + def GetColorScale(self) -> float: ... + def GetColorShift(self) -> float: ... + def GetColorWindow(self) -> float: ... + def GetCustomDisplayExtents(self) -> Tuple[int, int, int, int]: ... + def GetInput(self) -> 'vtkImageData': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderToRectangle(self) -> int: ... + def GetUseCustomExtents(self) -> int: ... + def GetWholeZMax(self) -> int: ... + def GetWholeZMin(self) -> int: ... + def GetZSlice(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageMapper': ... + def RenderData(self, __a:'vtkViewport', __b:'vtkImageData', __c:'vtkActor2D') -> None: ... + def RenderStart(self, viewport:'vtkViewport', actor:'vtkActor2D') -> None: ... + def RenderToRectangleOff(self) -> None: ... + def RenderToRectangleOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageMapper': ... + def SetColorLevel(self, _arg:float) -> None: ... + def SetColorWindow(self, _arg:float) -> None: ... + def SetCustomDisplayExtents(self, data:Sequence[int]) -> None: ... + def SetInputData(self, input:'vtkImageData') -> None: ... + def SetRenderToRectangle(self, _arg:int) -> None: ... + def SetUseCustomExtents(self, _arg:int) -> None: ... + def SetZSlice(self, _arg:int) -> None: ... + def UseCustomExtentsOff(self) -> None: ... + def UseCustomExtentsOn(self) -> None: ... + +class vtkImageMapper3D(vtkAbstractMapper3D): + background:'getset_descriptor' + border:'getset_descriptor' + data_object_input:'getset_descriptor' + data_set_input:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + number_of_threads:'getset_descriptor' + number_of_threads_max_value:'getset_descriptor' + number_of_threads_min_value:'getset_descriptor' + slice_at_focal_point:'getset_descriptor' + slice_faces_camera:'getset_descriptor' + slice_plane:'getset_descriptor' + streaming:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BackgroundOff(self) -> None: ... + def BackgroundOn(self) -> None: ... + def BorderOff(self) -> None: ... + def BorderOn(self) -> None: ... + def GetBackground(self) -> int: ... + def GetBorder(self) -> int: ... + def GetDataObjectInput(self) -> 'vtkDataObject': ... + def GetDataSetInput(self) -> 'vtkDataSet': ... + def GetIndexBounds(self, extent:MutableSequence[float]) -> None: ... + def GetInput(self) -> 'vtkImageData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfThreads(self) -> int: ... + def GetNumberOfThreadsMaxValue(self) -> int: ... + def GetNumberOfThreadsMinValue(self) -> int: ... + def GetSliceAtFocalPoint(self) -> int: ... + def GetSliceFacesCamera(self) -> int: ... + def GetSlicePlane(self) -> 'vtkPlane': ... + def GetSlicePlaneInDataCoords(self, propMatrix:'vtkMatrix4x4', plane:MutableSequence[float]) -> None: ... + def GetStreaming(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageMapper3D': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, renderer:'vtkRenderer', prop:'vtkImageSlice') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageMapper3D': ... + def SetBackground(self, _arg:int) -> None: ... + def SetBorder(self, _arg:int) -> None: ... + def SetInputData(self, input:'vtkImageData') -> None: ... + def SetNumberOfThreads(self, _arg:int) -> None: ... + def SetSliceAtFocalPoint(self, _arg:int) -> None: ... + def SetSliceFacesCamera(self, _arg:int) -> None: ... + def SetStreaming(self, _arg:int) -> None: ... + def SliceAtFocalPointOff(self) -> None: ... + def SliceAtFocalPointOn(self) -> None: ... + def SliceFacesCameraOff(self) -> None: ... + def SliceFacesCameraOn(self) -> None: ... + def StreamingOff(self) -> None: ... + def StreamingOn(self) -> None: ... + +class vtkImageProperty(vtkmodules.vtkCommonCore.vtkObject): + ambient:'getset_descriptor' + backing:'getset_descriptor' + backing_color:'getset_descriptor' + checkerboard:'getset_descriptor' + checkerboard_offset:'getset_descriptor' + checkerboard_spacing:'getset_descriptor' + color_level:'getset_descriptor' + color_window:'getset_descriptor' + diffuse:'getset_descriptor' + interpolation_type:'getset_descriptor' + layer_number:'getset_descriptor' + lookup_table:'getset_descriptor' + m_time:'getset_descriptor' + opacity:'getset_descriptor' + use_lookup_table_scalar_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BackingOff(self) -> None: ... + def BackingOn(self) -> None: ... + def CheckerboardOff(self) -> None: ... + def CheckerboardOn(self) -> None: ... + def DeepCopy(self, p:'vtkImageProperty') -> None: ... + def GetAmbient(self) -> float: ... + def GetAmbientMaxValue(self) -> float: ... + def GetAmbientMinValue(self) -> float: ... + def GetBacking(self) -> int: ... + def GetBackingColor(self) -> Tuple[float, float, float]: ... + def GetCheckerboard(self) -> int: ... + def GetCheckerboardOffset(self) -> Tuple[float, float]: ... + def GetCheckerboardSpacing(self) -> Tuple[float, float]: ... + def GetColorLevel(self) -> float: ... + def GetColorWindow(self) -> float: ... + def GetDiffuse(self) -> float: ... + def GetDiffuseMaxValue(self) -> float: ... + def GetDiffuseMinValue(self) -> float: ... + def GetInterpolationType(self) -> int: ... + def GetInterpolationTypeAsString(self) -> str: ... + def GetInterpolationTypeMaxValue(self) -> int: ... + def GetInterpolationTypeMinValue(self) -> int: ... + def GetLayerNumber(self) -> int: ... + def GetLookupTable(self) -> 'vtkScalarsToColors': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOpacity(self) -> float: ... + def GetOpacityMaxValue(self) -> float: ... + def GetOpacityMinValue(self) -> float: ... + def GetUseLookupTableScalarRange(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageProperty': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageProperty': ... + def SetAmbient(self, _arg:float) -> None: ... + def SetBacking(self, _arg:int) -> None: ... + @overload + def SetBackingColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetBackingColor(self, _arg:Sequence[float]) -> None: ... + def SetCheckerboard(self, _arg:int) -> None: ... + @overload + def SetCheckerboardOffset(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetCheckerboardOffset(self, _arg:Sequence[float]) -> None: ... + @overload + def SetCheckerboardSpacing(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetCheckerboardSpacing(self, _arg:Sequence[float]) -> None: ... + def SetColorLevel(self, _arg:float) -> None: ... + def SetColorWindow(self, _arg:float) -> None: ... + def SetDiffuse(self, _arg:float) -> None: ... + def SetInterpolationType(self, _arg:int) -> None: ... + def SetInterpolationTypeToCubic(self) -> None: ... + def SetInterpolationTypeToLinear(self) -> None: ... + def SetInterpolationTypeToNearest(self) -> None: ... + def SetLayerNumber(self, _arg:int) -> None: ... + def SetLookupTable(self, lut:'vtkScalarsToColors') -> None: ... + def SetOpacity(self, _arg:float) -> None: ... + def SetUseLookupTableScalarRange(self, _arg:int) -> None: ... + def UseLookupTableScalarRangeOff(self) -> None: ... + def UseLookupTableScalarRangeOn(self) -> None: ... + +class vtkImageSliceMapper(vtkImageMapper3D): + bounds:'getset_descriptor' + cropping:'getset_descriptor' + cropping_region:'getset_descriptor' + display_extent:'getset_descriptor' + m_time:'getset_descriptor' + orientation:'getset_descriptor' + slice_number:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CroppingOff(self) -> None: ... + def CroppingOn(self) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetCropping(self) -> int: ... + def GetCroppingRegion(self) -> Tuple[int, int, int, int, int, int]: ... + def GetIndexBounds(self, extent:MutableSequence[float]) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientation(self) -> int: ... + def GetOrientationMaxValue(self) -> int: ... + def GetOrientationMinValue(self) -> int: ... + def GetSliceNumber(self) -> int: ... + def GetSliceNumberMaxValue(self) -> int: ... + def GetSliceNumberMinValue(self) -> int: ... + def GetSlicePlaneInDataCoords(self, propMatrix:'vtkMatrix4x4', plane:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageSliceMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, renderer:'vtkRenderer', prop:'vtkImageSlice') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageSliceMapper': ... + def SetCropping(self, _arg:int) -> None: ... + @overload + def SetCroppingRegion(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetCroppingRegion(self, _arg:Sequence[int]) -> None: ... + def SetDisplayExtent(self, extent:Sequence[int]) -> None: ... + def SetOrientation(self, _arg:int) -> None: ... + def SetOrientationToI(self) -> None: ... + def SetOrientationToJ(self) -> None: ... + def SetOrientationToK(self) -> None: ... + def SetOrientationToX(self) -> None: ... + def SetOrientationToY(self) -> None: ... + def SetOrientationToZ(self) -> None: ... + def SetSliceNumber(self, slice:int) -> None: ... + +class vtkInteractorObserver(vtkmodules.vtkCommonCore.vtkObject): + current_renderer:'getset_descriptor' + default_renderer:'getset_descriptor' + enabled:'getset_descriptor' + interactor:'getset_descriptor' + key_press_activation:'getset_descriptor' + key_press_activation_value:'getset_descriptor' + picking_managed:'getset_descriptor' + priority:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ComputeDisplayToWorld(ren:'vtkRenderer', x:float, y:float, z:float, worldPt:MutableSequence[float]) -> None: ... + @staticmethod + def ComputeWorldToDisplay(ren:'vtkRenderer', x:float, y:float, z:float, displayPt:MutableSequence[float]) -> None: ... + def EnabledOff(self) -> None: ... + def EnabledOn(self) -> None: ... + def GetCurrentRenderer(self) -> 'vtkRenderer': ... + def GetDefaultRenderer(self) -> 'vtkRenderer': ... + def GetEnabled(self) -> int: ... + def GetInteractor(self) -> 'vtkRenderWindowInteractor': ... + def GetKeyPressActivation(self) -> int: ... + def GetKeyPressActivationValue(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPickingManaged(self) -> bool: ... + def GetPriority(self) -> float: ... + def GetPriorityMaxValue(self) -> float: ... + def GetPriorityMinValue(self) -> float: ... + def GrabFocus(self, mouseEvents:'vtkCommand', keypressEvents:'vtkCommand'=...) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def KeyPressActivationOff(self) -> None: ... + def KeyPressActivationOn(self) -> None: ... + def NewInstance(self) -> 'vtkInteractorObserver': ... + def Off(self) -> None: ... + def On(self) -> None: ... + def OnChar(self) -> None: ... + def PickingManagedOff(self) -> None: ... + def PickingManagedOn(self) -> None: ... + def ReleaseFocus(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorObserver': ... + def SetCurrentRenderer(self, __a:'vtkRenderer') -> None: ... + def SetDefaultRenderer(self, __a:'vtkRenderer') -> None: ... + def SetEnabled(self, __a:int) -> None: ... + def SetInteractor(self, iren:'vtkRenderWindowInteractor') -> None: ... + def SetKeyPressActivation(self, _arg:int) -> None: ... + def SetKeyPressActivationValue(self, _arg:str) -> None: ... + def SetPickingManaged(self, managed:bool) -> None: ... + def SetPriority(self, _arg:float) -> None: ... + +class vtkInteractorEventRecorder(vtkInteractorObserver): + class vtkEventDataType(int): + None_:'vtkEventDataType' + StringArray:'vtkEventDataType' + enabled:'getset_descriptor' + file_name:'getset_descriptor' + input_string:'getset_descriptor' + interactor:'getset_descriptor' + read_from_input_string:'getset_descriptor' + show_cursor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Clear(self) -> None: ... + def GetFileName(self) -> str: ... + def GetInputString(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReadFromInputString(self) -> int: ... + def GetShowCursor(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorEventRecorder': ... + def Play(self) -> None: ... + def ReadFromInputStringOff(self) -> None: ... + def ReadFromInputStringOn(self) -> None: ... + def Record(self) -> None: ... + def Rewind(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorEventRecorder': ... + def SetEnabled(self, __a:int) -> None: ... + def SetFileName(self, _arg:str) -> None: ... + def SetInputString(self, _arg:str) -> None: ... + def SetInteractor(self, iren:'vtkRenderWindowInteractor') -> None: ... + def SetReadFromInputString(self, _arg:int) -> None: ... + def SetShowCursor(self, _arg:bool) -> None: ... + def ShowCursorOff(self) -> None: ... + def ShowCursorOn(self) -> None: ... + def Stop(self) -> None: ... + +class vtkInteractorStyle(vtkInteractorObserver): + auto_adjust_camera_clipping_range:'getset_descriptor' + enabled:'getset_descriptor' + handle_observers:'getset_descriptor' + interactor:'getset_descriptor' + mouse_wheel_motion_factor:'getset_descriptor' + pick_color:'getset_descriptor' + state:'getset_descriptor' + t_dx_style:'getset_descriptor' + timer_duration:'getset_descriptor' + use_timers:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutoAdjustCameraClippingRangeOff(self) -> None: ... + def AutoAdjustCameraClippingRangeOn(self) -> None: ... + def DelegateTDxEvent(self, event:int, calldata:Pointer) -> None: ... + def Dolly(self) -> None: ... + def EndDolly(self) -> None: ... + def EndEnvRotate(self) -> None: ... + def EndGesture(self) -> None: ... + def EndPan(self) -> None: ... + def EndRotate(self) -> None: ... + def EndSpin(self) -> None: ... + def EndTimer(self) -> None: ... + def EndTwoPointer(self) -> None: ... + def EndUniformScale(self) -> None: ... + def EndZoom(self) -> None: ... + def EnvironmentRotate(self) -> None: ... + def FindPokedRenderer(self, __a:int, __b:int) -> None: ... + def GetAutoAdjustCameraClippingRange(self) -> int: ... + def GetAutoAdjustCameraClippingRangeMaxValue(self) -> int: ... + def GetAutoAdjustCameraClippingRangeMinValue(self) -> int: ... + def GetHandleObservers(self) -> int: ... + def GetMouseWheelMotionFactor(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPickColor(self) -> Tuple[float, float, float]: ... + def GetState(self) -> int: ... + def GetTDxStyle(self) -> 'vtkTDxInteractorStyle': ... + def GetTimerDuration(self) -> int: ... + def GetTimerDurationMaxValue(self) -> int: ... + def GetTimerDurationMinValue(self) -> int: ... + def GetUseTimers(self) -> int: ... + def HandleObserversOff(self) -> None: ... + def HandleObserversOn(self) -> None: ... + def HighlightActor2D(self, actor2D:'vtkActor2D') -> None: ... + def HighlightProp(self, prop:'vtkProp') -> None: ... + def HighlightProp3D(self, prop3D:'vtkProp3D') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyle': ... + def OnButton3D(self, __a:'vtkEventData') -> None: ... + def OnChar(self) -> None: ... + def OnClip3D(self, __a:'vtkEventData') -> None: ... + def OnConfigure(self) -> None: ... + def OnDropFiles(self, filePaths:'vtkStringArray') -> None: ... + def OnDropLocation(self, position:MutableSequence[float]) -> None: ... + def OnElevation3D(self, __a:'vtkEventData') -> None: ... + def OnEndPan(self) -> None: ... + def OnEndPinch(self) -> None: ... + def OnEndRotate(self) -> None: ... + def OnEndSwipe(self) -> None: ... + def OnEnter(self) -> None: ... + def OnExpose(self) -> None: ... + def OnFifthButtonDown(self) -> None: ... + def OnFifthButtonUp(self) -> None: ... + def OnFourthButtonDown(self) -> None: ... + def OnFourthButtonUp(self) -> None: ... + def OnKeyDown(self) -> None: ... + def OnKeyPress(self) -> None: ... + def OnKeyRelease(self) -> None: ... + def OnKeyUp(self) -> None: ... + def OnLeave(self) -> None: ... + def OnLeftButtonDoubleClick(self) -> None: ... + def OnLeftButtonDown(self) -> None: ... + def OnLeftButtonUp(self) -> None: ... + def OnLongTap(self) -> None: ... + def OnMenu3D(self, __a:'vtkEventData') -> None: ... + def OnMiddleButtonDoubleClick(self) -> None: ... + def OnMiddleButtonDown(self) -> None: ... + def OnMiddleButtonUp(self) -> None: ... + def OnMouseMove(self) -> None: ... + def OnMouseWheelBackward(self) -> None: ... + def OnMouseWheelForward(self) -> None: ... + def OnMouseWheelLeft(self) -> None: ... + def OnMouseWheelRight(self) -> None: ... + def OnMove3D(self, __a:'vtkEventData') -> None: ... + def OnNextPose3D(self, __a:'vtkEventData') -> None: ... + def OnPan(self) -> None: ... + def OnPick3D(self, __a:'vtkEventData') -> None: ... + def OnPinch(self) -> None: ... + def OnPositionProp3D(self, __a:'vtkEventData') -> None: ... + def OnRightButtonDoubleClick(self) -> None: ... + def OnRightButtonDown(self) -> None: ... + def OnRightButtonUp(self) -> None: ... + def OnRotate(self) -> None: ... + def OnSelect3D(self, __a:'vtkEventData') -> None: ... + def OnStartPan(self) -> None: ... + def OnStartPinch(self) -> None: ... + def OnStartRotate(self) -> None: ... + def OnStartSwipe(self) -> None: ... + def OnSwipe(self) -> None: ... + def OnTap(self) -> None: ... + def OnTimer(self) -> None: ... + def OnViewerMovement3D(self, __a:'vtkEventData') -> None: ... + def Pan(self) -> None: ... + def Rotate(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyle': ... + def SetAutoAdjustCameraClippingRange(self, _arg:int) -> None: ... + def SetEnabled(self, __a:int) -> None: ... + def SetHandleObservers(self, _arg:int) -> None: ... + def SetInteractor(self, interactor:'vtkRenderWindowInteractor') -> None: ... + def SetMouseWheelMotionFactor(self, _arg:float) -> None: ... + @overload + def SetPickColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPickColor(self, _arg:Sequence[float]) -> None: ... + def SetTDxStyle(self, tdxStyle:'vtkTDxInteractorStyle') -> None: ... + def SetTimerDuration(self, _arg:int) -> None: ... + def SetUseTimers(self, _arg:int) -> None: ... + def Spin(self) -> None: ... + def StartAnimate(self) -> None: ... + def StartDolly(self) -> None: ... + def StartEnvRotate(self) -> None: ... + def StartGesture(self) -> None: ... + def StartPan(self) -> None: ... + def StartRotate(self) -> None: ... + def StartSpin(self) -> None: ... + def StartState(self, newstate:int) -> None: ... + def StartTimer(self) -> None: ... + def StartTwoPointer(self) -> None: ... + def StartUniformScale(self) -> None: ... + def StartZoom(self) -> None: ... + def StopAnimate(self) -> None: ... + def StopState(self) -> None: ... + def UniformScale(self) -> None: ... + def UseTimersOff(self) -> None: ... + def UseTimersOn(self) -> None: ... + def Zoom(self) -> None: ... + +class vtkInteractorStyle3D(vtkInteractorStyle): + dolly_physical_speed:'getset_descriptor' + interaction_picker:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Dolly3D(self, __a:'vtkEventData') -> None: ... + def GetDollyPhysicalSpeed(self) -> float: ... + def GetInteractionPicker(self) -> 'vtkAbstractPropPicker': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyle3D': ... + def PositionProp(self, __a:'vtkEventData', lwpos:MutableSequence[float]=..., lwori:MutableSequence[float]=...) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyle3D': ... + def SetDollyPhysicalSpeed(self, _arg:float) -> None: ... + def SetInteractionPicker(self, prop:'vtkAbstractPropPicker') -> None: ... + def SetScale(self, cam:'vtkCamera', newScale:float) -> None: ... + +class vtkInteractorStyleSwitchBase(vtkInteractorStyle): + interactor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInteractor(self) -> 'vtkRenderWindowInteractor': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyleSwitchBase': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleSwitchBase': ... + +class vtkLODProp3D(vtkProp3D): + automatic_lod_selection:'getset_descriptor' + automatic_pick_lod_selection:'getset_descriptor' + bounds:'getset_descriptor' + current_index:'getset_descriptor' + last_rendered_lodid:'getset_descriptor' + number_of_lo_ds:'getset_descriptor' + pick_lodid:'getset_descriptor' + selected_lodid:'getset_descriptor' + selected_pick_lodid:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddEstimatedRenderTime(self, t:float, vp:'vtkViewport') -> None: ... + @overload + def AddLOD(self, m:'vtkMapper', p:'vtkProperty', back:'vtkProperty', t:'vtkTexture', time:float) -> int: ... + @overload + def AddLOD(self, m:'vtkMapper', p:'vtkProperty', t:'vtkTexture', time:float) -> int: ... + @overload + def AddLOD(self, m:'vtkMapper', p:'vtkProperty', back:'vtkProperty', time:float) -> int: ... + @overload + def AddLOD(self, m:'vtkMapper', p:'vtkProperty', time:float) -> int: ... + @overload + def AddLOD(self, m:'vtkMapper', t:'vtkTexture', time:float) -> int: ... + @overload + def AddLOD(self, m:'vtkMapper', time:float) -> int: ... + @overload + def AddLOD(self, m:'vtkAbstractVolumeMapper', p:'vtkVolumeProperty', time:float) -> int: ... + @overload + def AddLOD(self, m:'vtkAbstractVolumeMapper', time:float) -> int: ... + @overload + def AddLOD(self, m:'vtkImageMapper3D', p:'vtkImageProperty', time:float) -> int: ... + @overload + def AddLOD(self, m:'vtkImageMapper3D', time:float) -> int: ... + def AutomaticLODSelectionOff(self) -> None: ... + def AutomaticLODSelectionOn(self) -> None: ... + def AutomaticPickLODSelectionOff(self) -> None: ... + def AutomaticPickLODSelectionOn(self) -> None: ... + def DisableLOD(self, id:int) -> None: ... + def EnableLOD(self, id:int) -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetAutomaticLODSelection(self) -> int: ... + def GetAutomaticLODSelectionMaxValue(self) -> int: ... + def GetAutomaticLODSelectionMinValue(self) -> int: ... + def GetAutomaticPickLODSelection(self) -> int: ... + def GetAutomaticPickLODSelectionMaxValue(self) -> int: ... + def GetAutomaticPickLODSelectionMinValue(self) -> int: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetCurrentIndex(self) -> int: ... + def GetLODEstimatedRenderTime(self, id:int) -> float: ... + def GetLODIndexEstimatedRenderTime(self, index:int) -> float: ... + def GetLODIndexLevel(self, index:int) -> float: ... + def GetLODLevel(self, id:int) -> float: ... + def GetLODMapper(self, id:int) -> 'vtkAbstractMapper3D': ... + def GetLastRenderedLODID(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLODs(self) -> int: ... + def GetPickLODID(self) -> int: ... + def GetSelectedLODID(self) -> int: ... + def GetSelectedPickLODID(self) -> int: ... + def GetVolumes(self, __a:'vtkPropCollection') -> None: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsLODEnabled(self, id:int) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLODProp3D': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RemoveLOD(self, id:int) -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderVolumetricGeometry(self, viewport:'vtkViewport') -> int: ... + def RestoreEstimatedRenderTime(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLODProp3D': ... + def SetAllocatedRenderTime(self, t:float, vp:'vtkViewport') -> None: ... + def SetAutomaticLODSelection(self, _arg:int) -> None: ... + def SetAutomaticPickLODSelection(self, _arg:int) -> None: ... + def SetLODBackfaceProperty(self, id:int, t:'vtkProperty') -> None: ... + def SetLODLevel(self, id:int, level:float) -> None: ... + @overload + def SetLODMapper(self, id:int, m:'vtkMapper') -> None: ... + @overload + def SetLODMapper(self, id:int, m:'vtkAbstractVolumeMapper') -> None: ... + @overload + def SetLODMapper(self, id:int, m:'vtkImageMapper3D') -> None: ... + @overload + def SetLODProperty(self, id:int, p:'vtkProperty') -> None: ... + @overload + def SetLODProperty(self, id:int, p:'vtkVolumeProperty') -> None: ... + @overload + def SetLODProperty(self, id:int, p:'vtkImageProperty') -> None: ... + def SetLODTexture(self, id:int, t:'vtkTexture') -> None: ... + def SetSelectedLODID(self, _arg:int) -> None: ... + def SetSelectedPickLODID(self, id:int) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkLODProp3DEntry_t(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkLODProp3DEntry_t') -> None: ... + +class vtkLabeledContourMapper(vtkMapper): + bounds:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + label_visibility:'getset_descriptor' + poly_data_mapper:'getset_descriptor' + skip_distance:'getset_descriptor' + text_properties:'getset_descriptor' + text_property:'getset_descriptor' + text_property_mapping:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetInput(self) -> 'vtkPolyData': ... + def GetLabelVisibility(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPolyDataMapper(self) -> 'vtkPolyDataMapper': ... + def GetSkipDistance(self) -> float: ... + def GetTextProperties(self) -> 'vtkTextPropertyCollection': ... + def GetTextPropertyMapping(self) -> 'vtkDoubleArray': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LabelVisibilityOff(self) -> None: ... + def LabelVisibilityOn(self) -> None: ... + def NewInstance(self) -> 'vtkLabeledContourMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer', act:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLabeledContourMapper': ... + def SetInputData(self, in_:'vtkPolyData') -> None: ... + def SetLabelVisibility(self, _arg:bool) -> None: ... + def SetPolyDataMapper(self, __a:'vtkPolyDataMapper') -> None: ... + def SetSkipDistance(self, _arg:float) -> None: ... + def SetTextProperties(self, coll:'vtkTextPropertyCollection') -> None: ... + def SetTextProperty(self, tprop:'vtkTextProperty') -> None: ... + def SetTextPropertyMapping(self, mapping:'vtkDoubleArray') -> None: ... + +class vtkLight(vtkmodules.vtkCommonCore.vtkObject): + ambient_color:'getset_descriptor' + attenuation_values:'getset_descriptor' + color:'getset_descriptor' + cone_angle:'getset_descriptor' + diffuse_color:'getset_descriptor' + direction_angle:'getset_descriptor' + exponent:'getset_descriptor' + focal_point:'getset_descriptor' + information:'getset_descriptor' + intensity:'getset_descriptor' + light_type:'getset_descriptor' + position:'getset_descriptor' + positional:'getset_descriptor' + shadow_attenuation:'getset_descriptor' + specular_color:'getset_descriptor' + switch:'getset_descriptor' + transform_matrix:'getset_descriptor' + transformed_focal_point:'getset_descriptor' + transformed_position:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self, light:'vtkLight') -> None: ... + def GetAmbientColor(self) -> Tuple[float, float, float]: ... + def GetAttenuationValues(self) -> Tuple[float, float, float]: ... + def GetConeAngle(self) -> float: ... + def GetDiffuseColor(self) -> Tuple[float, float, float]: ... + def GetExponent(self) -> float: ... + def GetExponentMaxValue(self) -> float: ... + def GetExponentMinValue(self) -> float: ... + def GetFocalPoint(self) -> Tuple[float, float, float]: ... + def GetInformation(self) -> 'vtkInformation': ... + def GetIntensity(self) -> float: ... + def GetLightType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPosition(self) -> Tuple[float, float, float]: ... + def GetPositional(self) -> int: ... + def GetShadowAttenuation(self) -> float: ... + def GetSpecularColor(self) -> Tuple[float, float, float]: ... + def GetSwitch(self) -> int: ... + def GetTransformMatrix(self) -> 'vtkMatrix4x4': ... + @overload + def GetTransformedFocalPoint(self, x:float, y:float, z:float) -> None: ... + @overload + def GetTransformedFocalPoint(self, a:MutableSequence[float]) -> None: ... + @overload + def GetTransformedFocalPoint(self) -> Tuple[float, float, float]: ... + @overload + def GetTransformedPosition(self, x:float, y:float, z:float) -> None: ... + @overload + def GetTransformedPosition(self, a:MutableSequence[float]) -> None: ... + @overload + def GetTransformedPosition(self) -> Tuple[float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LightTypeIsCameraLight(self) -> int: ... + def LightTypeIsHeadlight(self) -> int: ... + def LightTypeIsSceneLight(self) -> int: ... + def NewInstance(self) -> 'vtkLight': ... + def PositionalOff(self) -> None: ... + def PositionalOn(self) -> None: ... + def Render(self, __a:'vtkRenderer', __b:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLight': ... + @overload + def SetAmbientColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAmbientColor(self, _arg:Sequence[float]) -> None: ... + @overload + def SetAttenuationValues(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAttenuationValues(self, _arg:Sequence[float]) -> None: ... + @overload + def SetColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetColor(self, a:Sequence[float]) -> None: ... + def SetConeAngle(self, _arg:float) -> None: ... + @overload + def SetDiffuseColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetDiffuseColor(self, _arg:Sequence[float]) -> None: ... + @overload + def SetDirectionAngle(self, elevation:float, azimuth:float) -> None: ... + @overload + def SetDirectionAngle(self, ang:Sequence[float]) -> None: ... + def SetExponent(self, _arg:float) -> None: ... + @overload + def SetFocalPoint(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetFocalPoint(self, _arg:Sequence[float]) -> None: ... + def SetInformation(self, __a:'vtkInformation') -> None: ... + def SetIntensity(self, _arg:float) -> None: ... + def SetLightType(self, __a:int) -> None: ... + def SetLightTypeToCameraLight(self) -> None: ... + def SetLightTypeToHeadlight(self) -> None: ... + def SetLightTypeToSceneLight(self) -> None: ... + @overload + def SetPosition(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPosition(self, _arg:Sequence[float]) -> None: ... + def SetPositional(self, _arg:int) -> None: ... + def SetShadowAttenuation(self, _arg:float) -> None: ... + @overload + def SetSpecularColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetSpecularColor(self, _arg:Sequence[float]) -> None: ... + def SetSwitch(self, _arg:int) -> None: ... + def SetTransformMatrix(self, __a:'vtkMatrix4x4') -> None: ... + def ShallowClone(self) -> 'vtkLight': ... + def SwitchOff(self) -> None: ... + def SwitchOn(self) -> None: ... + def TransformPoint(self, a:MutableSequence[float], b:MutableSequence[float]) -> None: ... + def TransformVector(self, a:MutableSequence[float], b:MutableSequence[float]) -> None: ... + +class vtkLightActor(vtkProp3D): + bounds:'getset_descriptor' + clipping_range:'getset_descriptor' + cone_property:'getset_descriptor' + frustum_property:'getset_descriptor' + light:'getset_descriptor' + m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetClippingRange(self) -> Tuple[float, float]: ... + def GetConeProperty(self) -> 'vtkProperty': ... + def GetFrustumProperty(self) -> 'vtkProperty': ... + def GetLight(self) -> 'vtkLight': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLightActor': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLightActor': ... + @overload + def SetClippingRange(self, dNear:float, dFar:float) -> None: ... + @overload + def SetClippingRange(self, a:Sequence[float]) -> None: ... + def SetLight(self, light:'vtkLight') -> None: ... + +class vtkLightCollection(vtkmodules.vtkCommonCore.vtkCollection): + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, a:'vtkLight') -> None: ... + def GetNextItem(self) -> 'vtkLight': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLightCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLightCollection': ... + +class vtkLightKit(vtkmodules.vtkCommonCore.vtkObject): + class LightKitSubType(int): ... + class LightKitType(int): ... + Azimuth:'LightKitSubType' + Elevation:'LightKitSubType' + Intensity:'LightKitSubType' + KBRatio:'LightKitSubType' + KFRatio:'LightKitSubType' + KHRatio:'LightKitSubType' + TBackLight:'LightKitType' + TFillLight:'LightKitType' + THeadLight:'LightKitType' + TKeyLight:'LightKitType' + Warmth:'LightKitSubType' + back_light_angle:'getset_descriptor' + back_light_azimuth:'getset_descriptor' + back_light_color:'getset_descriptor' + back_light_elevation:'getset_descriptor' + back_light_warmth:'getset_descriptor' + fill_light_angle:'getset_descriptor' + fill_light_azimuth:'getset_descriptor' + fill_light_color:'getset_descriptor' + fill_light_elevation:'getset_descriptor' + fill_light_warmth:'getset_descriptor' + head_light_color:'getset_descriptor' + head_light_warmth:'getset_descriptor' + key_light_angle:'getset_descriptor' + key_light_azimuth:'getset_descriptor' + key_light_color:'getset_descriptor' + key_light_elevation:'getset_descriptor' + key_light_intensity:'getset_descriptor' + key_light_warmth:'getset_descriptor' + key_to_back_ratio:'getset_descriptor' + key_to_fill_ratio:'getset_descriptor' + key_to_head_ratio:'getset_descriptor' + maintain_luminance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddLightsToRenderer(self, renderer:'vtkRenderer') -> None: ... + def DeepCopy(self, kit:'vtkLightKit') -> None: ... + def GetBackLightAngle(self) -> Tuple[float, float]: ... + def GetBackLightAzimuth(self) -> float: ... + def GetBackLightColor(self) -> Tuple[float, float, float]: ... + def GetBackLightElevation(self) -> float: ... + def GetBackLightWarmth(self) -> float: ... + def GetFillLightAngle(self) -> Tuple[float, float]: ... + def GetFillLightAzimuth(self) -> float: ... + def GetFillLightColor(self) -> Tuple[float, float, float]: ... + def GetFillLightElevation(self) -> float: ... + def GetFillLightWarmth(self) -> float: ... + def GetHeadLightColor(self) -> Tuple[float, float, float]: ... + def GetHeadLightWarmth(self) -> float: ... + def GetKeyLightAngle(self) -> Tuple[float, float]: ... + def GetKeyLightAzimuth(self) -> float: ... + def GetKeyLightColor(self) -> Tuple[float, float, float]: ... + def GetKeyLightElevation(self) -> float: ... + def GetKeyLightIntensity(self) -> float: ... + def GetKeyLightWarmth(self) -> float: ... + def GetKeyToBackRatio(self) -> float: ... + def GetKeyToBackRatioMaxValue(self) -> float: ... + def GetKeyToBackRatioMinValue(self) -> float: ... + def GetKeyToFillRatio(self) -> float: ... + def GetKeyToFillRatioMaxValue(self) -> float: ... + def GetKeyToFillRatioMinValue(self) -> float: ... + def GetKeyToHeadRatio(self) -> float: ... + def GetKeyToHeadRatioMaxValue(self) -> float: ... + def GetKeyToHeadRatioMinValue(self) -> float: ... + def GetMaintainLuminance(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GetShortStringFromSubType(subtype:int) -> str: ... + @staticmethod + def GetStringFromSubType(type:int) -> str: ... + @staticmethod + def GetStringFromType(type:int) -> str: ... + @staticmethod + def GetSubType(type:'LightKitType', i:int) -> 'LightKitSubType': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MaintainLuminanceOff(self) -> None: ... + def MaintainLuminanceOn(self) -> None: ... + def Modified(self) -> None: ... + def NewInstance(self) -> 'vtkLightKit': ... + def RemoveLightsFromRenderer(self, renderer:'vtkRenderer') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLightKit': ... + @overload + def SetBackLightAngle(self, elevation:float, azimuth:float) -> None: ... + @overload + def SetBackLightAngle(self, angle:MutableSequence[float]) -> None: ... + def SetBackLightAzimuth(self, x:float) -> None: ... + def SetBackLightElevation(self, x:float) -> None: ... + def SetBackLightWarmth(self, _arg:float) -> None: ... + @overload + def SetFillLightAngle(self, elevation:float, azimuth:float) -> None: ... + @overload + def SetFillLightAngle(self, angle:MutableSequence[float]) -> None: ... + def SetFillLightAzimuth(self, x:float) -> None: ... + def SetFillLightElevation(self, x:float) -> None: ... + def SetFillLightWarmth(self, _arg:float) -> None: ... + def SetHeadLightWarmth(self, _arg:float) -> None: ... + @overload + def SetKeyLightAngle(self, elevation:float, azimuth:float) -> None: ... + @overload + def SetKeyLightAngle(self, angle:MutableSequence[float]) -> None: ... + def SetKeyLightAzimuth(self, x:float) -> None: ... + def SetKeyLightElevation(self, x:float) -> None: ... + def SetKeyLightIntensity(self, _arg:float) -> None: ... + def SetKeyLightWarmth(self, _arg:float) -> None: ... + def SetKeyToBackRatio(self, _arg:float) -> None: ... + def SetKeyToFillRatio(self, _arg:float) -> None: ... + def SetKeyToHeadRatio(self, _arg:float) -> None: ... + def SetMaintainLuminance(self, _arg:int) -> None: ... + def Update(self) -> None: ... + +class vtkLogLookupTable(vtkmodules.vtkCommonCore.vtkLookupTable): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLogLookupTable': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLogLookupTable': ... + +class vtkLookupTableWithEnabling(vtkmodules.vtkCommonCore.vtkLookupTable): + enabled_array:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DisableColor(self, r:int, g:int, b:int, rd:MutableSequence[int], gd:MutableSequence[int], bd:MutableSequence[int]) -> None: ... + def GetEnabledArray(self) -> 'vtkDataArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MapScalarsThroughTable2(self, input:Pointer, output:MutableSequence[int], inputDataType:int, numberOfValues:int, inputIncrement:int, outputFormat:int) -> None: ... + def NewInstance(self) -> 'vtkLookupTableWithEnabling': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLookupTableWithEnabling': ... + def SetEnabledArray(self, enabledArray:'vtkDataArray') -> None: ... + +class vtkMapArrayValues(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + class FieldType(int): ... + CELL_DATA:'FieldType' + EDGE_DATA:'FieldType' + NUM_ATTRIBUTE_LOCS:'FieldType' + POINT_DATA:'FieldType' + ROW_DATA:'FieldType' + VERTEX_DATA:'FieldType' + field_type:'getset_descriptor' + fill_value:'getset_descriptor' + input_array_name:'getset_descriptor' + map_size:'getset_descriptor' + output_array_name:'getset_descriptor' + output_array_type:'getset_descriptor' + pass_array:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddToMap(self, from_:'vtkVariant', to:'vtkVariant') -> None: ... + @overload + def AddToMap(self, from_:int, to:int) -> None: ... + @overload + def AddToMap(self, from_:int, to:str) -> None: ... + @overload + def AddToMap(self, from_:str, to:int) -> None: ... + @overload + def AddToMap(self, from_:str, to:str) -> None: ... + def ClearMap(self) -> None: ... + def GetFieldType(self) -> int: ... + def GetFillValue(self) -> float: ... + def GetInputArrayName(self) -> str: ... + def GetMapSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputArrayName(self) -> str: ... + def GetOutputArrayType(self) -> int: ... + def GetPassArray(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMapArrayValues': ... + def PassArrayOff(self) -> None: ... + def PassArrayOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMapArrayValues': ... + def SetFieldType(self, _arg:int) -> None: ... + def SetFillValue(self, _arg:float) -> None: ... + def SetInputArrayName(self, _arg:str) -> None: ... + def SetOutputArrayName(self, _arg:str) -> None: ... + def SetOutputArrayType(self, _arg:int) -> None: ... + def SetPassArray(self, _arg:int) -> None: ... + +class vtkMapperCollection(vtkmodules.vtkCommonCore.vtkCollection): + last_item:'getset_descriptor' + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, a:'vtkMapper') -> None: ... + def GetLastItem(self) -> 'vtkMapper': ... + def GetNextItem(self) -> 'vtkMapper': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMapperCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMapperCollection': ... + +class vtkObserverMediator(vtkmodules.vtkCommonCore.vtkObject): + interactor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInteractor(self) -> 'vtkRenderWindowInteractor': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkObserverMediator': ... + def RemoveAllCursorShapeRequests(self, __a:'vtkInteractorObserver') -> None: ... + def RequestCursorShape(self, __a:'vtkInteractorObserver', requestedShape:int) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkObserverMediator': ... + def SetInteractor(self, iren:'vtkRenderWindowInteractor') -> None: ... + +class vtkPickingManager(vtkmodules.vtkCommonCore.vtkObject): + enabled:'getset_descriptor' + interactor:'getset_descriptor' + number_of_pickers:'getset_descriptor' + optimize_on_interactor_events:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddPicker(self, picker:'vtkAbstractPicker', object:'vtkObject'=...) -> None: ... + def EnabledOff(self) -> None: ... + def EnabledOn(self) -> None: ... + def GetAssemblyPath(self, X:float, Y:float, Z:float, picker:'vtkAbstractPropPicker', renderer:'vtkRenderer', obj:'vtkObject') -> 'vtkAssemblyPath': ... + def GetEnabled(self) -> bool: ... + def GetInteractor(self) -> 'vtkRenderWindowInteractor': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfObjectsLinked(self, picker:'vtkAbstractPicker') -> int: ... + def GetNumberOfPickers(self) -> int: ... + def GetOptimizeOnInteractorEvents(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPickingManager': ... + @overload + def Pick(self, picker:'vtkAbstractPicker', object:'vtkObject') -> bool: ... + @overload + def Pick(self, object:'vtkObject') -> bool: ... + @overload + def Pick(self, picker:'vtkAbstractPicker') -> bool: ... + def RemoveObject(self, object:'vtkObject') -> None: ... + def RemovePicker(self, picker:'vtkAbstractPicker', object:'vtkObject'=...) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPickingManager': ... + def SetEnabled(self, _arg:bool) -> None: ... + def SetInteractor(self, iren:'vtkRenderWindowInteractor') -> None: ... + def SetOptimizeOnInteractorEvents(self, optimize:bool) -> None: ... + +class vtkPointGaussianMapper(vtkPolyDataMapper): + anisotropic:'getset_descriptor' + bound_scale:'getset_descriptor' + emissive:'getset_descriptor' + lowpass_matrix:'getset_descriptor' + opacity_array:'getset_descriptor' + opacity_array_component:'getset_descriptor' + opacity_table_size:'getset_descriptor' + rotation_array:'getset_descriptor' + scalar_opacity_function:'getset_descriptor' + scale_array:'getset_descriptor' + scale_array_component:'getset_descriptor' + scale_factor:'getset_descriptor' + scale_function:'getset_descriptor' + scale_table_size:'getset_descriptor' + splat_shader_code:'getset_descriptor' + supports_selection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AnisotropicOff(self) -> None: ... + def AnisotropicOn(self) -> None: ... + def EmissiveOff(self) -> None: ... + def EmissiveOn(self) -> None: ... + def GetAnisotropic(self) -> bool: ... + def GetBoundScale(self) -> float: ... + def GetEmissive(self) -> int: ... + def GetLowpassMatrix(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOpacityArray(self) -> str: ... + def GetOpacityArrayComponent(self) -> int: ... + def GetOpacityTableSize(self) -> int: ... + def GetRotationArray(self) -> str: ... + def GetScalarOpacityFunction(self) -> 'vtkPiecewiseFunction': ... + def GetScaleArray(self) -> str: ... + def GetScaleArrayComponent(self) -> int: ... + def GetScaleFactor(self) -> float: ... + def GetScaleFunction(self) -> 'vtkPiecewiseFunction': ... + def GetScaleTableSize(self) -> int: ... + def GetSplatShaderCode(self) -> str: ... + def GetSupportsSelection(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointGaussianMapper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointGaussianMapper': ... + def SetAnisotropic(self, _arg:bool) -> None: ... + def SetBoundScale(self, _arg:float) -> None: ... + def SetEmissive(self, _arg:int) -> None: ... + @overload + def SetLowpassMatrix(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetLowpassMatrix(self, _arg:Sequence[float]) -> None: ... + def SetOpacityArray(self, _arg:str) -> None: ... + def SetOpacityArrayComponent(self, _arg:int) -> None: ... + def SetOpacityTableSize(self, _arg:int) -> None: ... + def SetRotationArray(self, _arg:str) -> None: ... + def SetScalarOpacityFunction(self, __a:'vtkPiecewiseFunction') -> None: ... + def SetScaleArray(self, _arg:str) -> None: ... + def SetScaleArrayComponent(self, _arg:int) -> None: ... + def SetScaleFactor(self, _arg:float) -> None: ... + def SetScaleFunction(self, __a:'vtkPiecewiseFunction') -> None: ... + def SetScaleTableSize(self, _arg:int) -> None: ... + def SetSplatShaderCode(self, _arg:str) -> None: ... + +class vtkPointPicker(vtkPicker): + point_id:'getset_descriptor' + use_cells:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointId(self) -> int: ... + def GetUseCells(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointPicker': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointPicker': ... + def SetUseCells(self, _arg:int) -> None: ... + def UseCellsOff(self) -> None: ... + def UseCellsOn(self) -> None: ... + +class vtkPolyDataMapper2D(vtkMapper2D): + array_access_mode:'getset_descriptor' + array_component:'getset_descriptor' + array_id:'getset_descriptor' + array_name:'getset_descriptor' + color_mode:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + lookup_table:'getset_descriptor' + m_time:'getset_descriptor' + scalar_mode:'getset_descriptor' + scalar_range:'getset_descriptor' + scalar_visibility:'getset_descriptor' + transform_coordinate:'getset_descriptor' + transform_coordinate_use_double:'getset_descriptor' + use_lookup_table_scalar_range:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def ColorByArrayComponent(self, arrayNum:int, component:int) -> None: ... + @overload + def ColorByArrayComponent(self, arrayName:str, component:int) -> None: ... + def CreateDefaultLookupTable(self) -> None: ... + def GetArrayAccessMode(self) -> int: ... + def GetArrayComponent(self) -> int: ... + def GetArrayId(self) -> int: ... + def GetArrayName(self) -> str: ... + def GetColorMode(self) -> int: ... + def GetColorModeAsString(self) -> str: ... + def GetInput(self) -> 'vtkPolyData': ... + def GetLookupTable(self) -> 'vtkScalarsToColors': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScalarMode(self) -> int: ... + def GetScalarRange(self) -> Tuple[float, float]: ... + def GetScalarVisibility(self) -> int: ... + def GetTransformCoordinate(self) -> 'vtkCoordinate': ... + def GetTransformCoordinateUseDouble(self) -> bool: ... + def GetUseLookupTableScalarRange(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MapScalars(self, alpha:float) -> 'vtkUnsignedCharArray': ... + def NewInstance(self) -> 'vtkPolyDataMapper2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataMapper2D': ... + def ScalarVisibilityOff(self) -> None: ... + def ScalarVisibilityOn(self) -> None: ... + def SetArrayAccessMode(self, _arg:int) -> None: ... + def SetArrayComponent(self, _arg:int) -> None: ... + def SetArrayId(self, _arg:int) -> None: ... + def SetArrayName(self, _arg:str) -> None: ... + def SetColorMode(self, _arg:int) -> None: ... + def SetColorModeToDefault(self) -> None: ... + def SetColorModeToDirectScalars(self) -> None: ... + def SetColorModeToMapScalars(self) -> None: ... + def SetInputData(self, in_:'vtkPolyData') -> None: ... + def SetLookupTable(self, lut:'vtkScalarsToColors') -> None: ... + def SetScalarMode(self, _arg:int) -> None: ... + def SetScalarModeToDefault(self) -> None: ... + def SetScalarModeToUseCellData(self) -> None: ... + def SetScalarModeToUseCellFieldData(self) -> None: ... + def SetScalarModeToUsePointData(self) -> None: ... + def SetScalarModeToUsePointFieldData(self) -> None: ... + @overload + def SetScalarRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetScalarRange(self, _arg:Sequence[float]) -> None: ... + def SetScalarVisibility(self, _arg:int) -> None: ... + def SetTransformCoordinate(self, __a:'vtkCoordinate') -> None: ... + def SetTransformCoordinateUseDouble(self, _arg:bool) -> None: ... + def SetUseLookupTableScalarRange(self, _arg:int) -> None: ... + def ShallowCopy(self, m:'vtkAbstractMapper') -> None: ... + def TransformCoordinateUseDoubleOff(self) -> None: ... + def TransformCoordinateUseDoubleOn(self) -> None: ... + def UseLookupTableScalarRangeOff(self) -> None: ... + def UseLookupTableScalarRangeOn(self) -> None: ... + +class vtkProp3DCollection(vtkPropCollection): + last_prop3d:'getset_descriptor' + next_prop3d:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, p:'vtkProp3D') -> None: ... + def GetLastProp3D(self) -> 'vtkProp3D': ... + def GetNextProp3D(self) -> 'vtkProp3D': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProp3DCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProp3DCollection': ... + +class vtkProp3DFollower(vtkProp3D): + bounds:'getset_descriptor' + camera:'getset_descriptor' + next_path:'getset_descriptor' + prop3d:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeMatrix(self) -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetCamera(self) -> 'vtkCamera': ... + def GetNextPath(self) -> 'vtkAssemblyPath': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProp3D(self) -> 'vtkProp3D': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def InitPathTraversal(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProp3DFollower': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderVolumetricGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProp3DFollower': ... + def SetCamera(self, __a:'vtkCamera') -> None: ... + def SetProp3D(self, prop:'vtkProp3D') -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkPropAssembly(vtkProp): + bounds:'getset_descriptor' + m_time:'getset_descriptor' + next_path:'getset_descriptor' + number_of_paths:'getset_descriptor' + parts:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddPart(self, __a:'vtkProp') -> None: ... + def BuildPaths(self, paths:'vtkAssemblyPaths', path:'vtkAssemblyPath') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetMTime(self) -> int: ... + def GetNextPath(self) -> 'vtkAssemblyPath': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPaths(self) -> int: ... + def GetParts(self) -> 'vtkPropCollection': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def InitPathTraversal(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPropAssembly': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RemovePart(self, __a:'vtkProp') -> None: ... + def RenderOpaqueGeometry(self, ren:'vtkViewport') -> int: ... + def RenderOverlay(self, ren:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, ren:'vtkViewport') -> int: ... + def RenderVolumetricGeometry(self, ren:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPropAssembly': ... + def ShallowCopy(self, Prop:'vtkProp') -> None: ... + +class vtkPropPicker(vtkAbstractPropPicker): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPropPicker': ... + @overload + def Pick(self, selectionX:float, selectionY:float, selectionZ:float, renderer:'vtkRenderer') -> int: ... + @overload + def Pick(self, selectionPt:MutableSequence[float], renderer:'vtkRenderer') -> int: ... + def Pick3DPoint(self, selectionPt:MutableSequence[float], ren:'vtkRenderer') -> int: ... + def Pick3DRay(self, selectionPt:MutableSequence[float], orient:MutableSequence[float], ren:'vtkRenderer') -> int: ... + @overload + def PickProp(self, selectionX:float, selectionY:float, renderer:'vtkRenderer') -> int: ... + @overload + def PickProp(self, selectionX:float, selectionY:float, renderer:'vtkRenderer', pickfrom:'vtkPropCollection') -> int: ... + @overload + def PickProp3DPoint(self, pos:MutableSequence[float], renderer:'vtkRenderer') -> int: ... + @overload + def PickProp3DPoint(self, pos:MutableSequence[float], renderer:'vtkRenderer', pickfrom:'vtkPropCollection') -> int: ... + def PickProp3DRay(self, selectionPt:MutableSequence[float], eventWorldOrientation:MutableSequence[float], renderer:'vtkRenderer', pickfrom:'vtkPropCollection') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPropPicker': ... + +class vtkProperty(vtkmodules.vtkCommonCore.vtkObject): + class Point2DShapeType(int): + Round:'Point2DShapeType' + Square:'Point2DShapeType' + ambient:'getset_descriptor' + ambient_color:'getset_descriptor' + anisotropy:'getset_descriptor' + anisotropy_rotation:'getset_descriptor' + anisotropy_texture:'getset_descriptor' + backface_culling:'getset_descriptor' + base_color_texture:'getset_descriptor' + base_ior:'getset_descriptor' + coat_color:'getset_descriptor' + coat_ior:'getset_descriptor' + coat_normal_scale:'getset_descriptor' + coat_normal_texture:'getset_descriptor' + coat_roughness:'getset_descriptor' + coat_strength:'getset_descriptor' + color:'getset_descriptor' + diffuse:'getset_descriptor' + diffuse_color:'getset_descriptor' + edge_color:'getset_descriptor' + edge_opacity:'getset_descriptor' + edge_tint:'getset_descriptor' + edge_visibility:'getset_descriptor' + edge_width:'getset_descriptor' + emissive_factor:'getset_descriptor' + emissive_texture:'getset_descriptor' + frontface_culling:'getset_descriptor' + information:'getset_descriptor' + interpolation:'getset_descriptor' + lighting:'getset_descriptor' + line_stipple_pattern:'getset_descriptor' + line_stipple_repeat_factor:'getset_descriptor' + line_width:'getset_descriptor' + material_name:'getset_descriptor' + metallic:'getset_descriptor' + normal_scale:'getset_descriptor' + normal_texture:'getset_descriptor' + number_of_textures:'getset_descriptor' + occlusion_strength:'getset_descriptor' + opacity:'getset_descriptor' + orm_texture:'getset_descriptor' + point2d_shape:'getset_descriptor' + point_size:'getset_descriptor' + render_lines_as_tubes:'getset_descriptor' + render_points_as_spheres:'getset_descriptor' + representation:'getset_descriptor' + roughness:'getset_descriptor' + selection_color:'getset_descriptor' + selection_line_width:'getset_descriptor' + selection_point_size:'getset_descriptor' + shading:'getset_descriptor' + show_textures_on_backface:'getset_descriptor' + specular:'getset_descriptor' + specular_color:'getset_descriptor' + specular_power:'getset_descriptor' + use_line_width_for_edge_thickness:'getset_descriptor' + vertex_color:'getset_descriptor' + vertex_visibility:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddShaderVariable(self, __a:str, __b:int, __c:MutableSequence[int]) -> None: ... + @overload + def AddShaderVariable(self, __a:str, __b:int, __c:MutableSequence[float]) -> None: ... + @overload + def AddShaderVariable(self, __a:str, __b:int) -> None: ... + @overload + def AddShaderVariable(self, __a:str, __b:float) -> None: ... + @overload + def AddShaderVariable(self, __a:str, __b:int, __c:int) -> None: ... + @overload + def AddShaderVariable(self, __a:str, __b:float, __c:float) -> None: ... + @overload + def AddShaderVariable(self, __a:str, __b:int, __c:int, __d:int) -> None: ... + @overload + def AddShaderVariable(self, __a:str, __b:float, __c:float, __d:float) -> None: ... + def BackfaceCullingOff(self) -> None: ... + def BackfaceCullingOn(self) -> None: ... + def BackfaceRender(self, __a:'vtkActor', __b:'vtkRenderer') -> None: ... + @staticmethod + def ComputeIORFromReflectance(reflectance:float, ior:float) -> float: ... + @staticmethod + def ComputeReflectanceFromIOR(IORTo:float, IORFrom:float) -> float: ... + def ComputeReflectanceOfBaseLayer(self) -> float: ... + def DeepCopy(self, p:'vtkProperty') -> None: ... + def EdgeVisibilityOff(self) -> None: ... + def EdgeVisibilityOn(self) -> None: ... + def FrontfaceCullingOff(self) -> None: ... + def FrontfaceCullingOn(self) -> None: ... + def GetAmbient(self) -> float: ... + def GetAmbientColor(self) -> Tuple[float, float, float]: ... + def GetAmbientMaxValue(self) -> float: ... + def GetAmbientMinValue(self) -> float: ... + def GetAnisotropy(self) -> float: ... + def GetAnisotropyMaxValue(self) -> float: ... + def GetAnisotropyMinValue(self) -> float: ... + def GetAnisotropyRotation(self) -> float: ... + def GetAnisotropyRotationMaxValue(self) -> float: ... + def GetAnisotropyRotationMinValue(self) -> float: ... + def GetBackfaceCulling(self) -> int: ... + def GetBaseIOR(self) -> float: ... + def GetBaseIORMaxValue(self) -> float: ... + def GetBaseIORMinValue(self) -> float: ... + def GetCoatColor(self) -> Tuple[float, float, float]: ... + def GetCoatIOR(self) -> float: ... + def GetCoatIORMaxValue(self) -> float: ... + def GetCoatIORMinValue(self) -> float: ... + def GetCoatNormalScale(self) -> float: ... + def GetCoatNormalScaleMaxValue(self) -> float: ... + def GetCoatNormalScaleMinValue(self) -> float: ... + def GetCoatRoughness(self) -> float: ... + def GetCoatRoughnessMaxValue(self) -> float: ... + def GetCoatRoughnessMinValue(self) -> float: ... + def GetCoatStrength(self) -> float: ... + def GetCoatStrengthMaxValue(self) -> float: ... + def GetCoatStrengthMinValue(self) -> float: ... + @overload + def GetColor(self) -> Tuple[float, float, float]: ... + @overload + def GetColor(self, rgb:MutableSequence[float]) -> None: ... + @overload + def GetColor(self, r:float, g:float, b:float) -> None: ... + def GetDiffuse(self) -> float: ... + def GetDiffuseColor(self) -> Tuple[float, float, float]: ... + def GetDiffuseMaxValue(self) -> float: ... + def GetDiffuseMinValue(self) -> float: ... + def GetEdgeColor(self) -> Tuple[float, float, float]: ... + def GetEdgeOpacity(self) -> float: ... + def GetEdgeOpacityMaxValue(self) -> float: ... + def GetEdgeOpacityMinValue(self) -> float: ... + def GetEdgeTint(self) -> Tuple[float, float, float]: ... + def GetEdgeVisibility(self) -> int: ... + def GetEdgeWidth(self) -> float: ... + def GetEdgeWidthMaxValue(self) -> float: ... + def GetEdgeWidthMinValue(self) -> float: ... + def GetEmissiveFactor(self) -> Tuple[float, float, float]: ... + def GetFrontfaceCulling(self) -> int: ... + def GetInformation(self) -> 'vtkInformation': ... + def GetInterpolation(self) -> int: ... + def GetInterpolationAsString(self) -> str: ... + def GetInterpolationMaxValue(self) -> int: ... + def GetInterpolationMinValue(self) -> int: ... + def GetLighting(self) -> bool: ... + def GetLineStipplePattern(self) -> int: ... + def GetLineStippleRepeatFactor(self) -> int: ... + def GetLineStippleRepeatFactorMaxValue(self) -> int: ... + def GetLineStippleRepeatFactorMinValue(self) -> int: ... + def GetLineWidth(self) -> float: ... + def GetLineWidthMaxValue(self) -> float: ... + def GetLineWidthMinValue(self) -> float: ... + def GetMaterialName(self) -> str: ... + def GetMetallic(self) -> float: ... + def GetMetallicMaxValue(self) -> float: ... + def GetMetallicMinValue(self) -> float: ... + def GetNormalScale(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTextures(self) -> int: ... + def GetOcclusionStrength(self) -> float: ... + def GetOcclusionStrengthMaxValue(self) -> float: ... + def GetOcclusionStrengthMinValue(self) -> float: ... + def GetOpacity(self) -> float: ... + def GetOpacityMaxValue(self) -> float: ... + def GetOpacityMinValue(self) -> float: ... + def GetPoint2DShape(self) -> 'Point2DShapeType': ... + def GetPointSize(self) -> float: ... + def GetPointSizeMaxValue(self) -> float: ... + def GetPointSizeMinValue(self) -> float: ... + def GetRenderLinesAsTubes(self) -> bool: ... + def GetRenderPointsAsSpheres(self) -> bool: ... + def GetRepresentation(self) -> int: ... + def GetRepresentationAsString(self) -> str: ... + def GetRepresentationMaxValue(self) -> int: ... + def GetRepresentationMinValue(self) -> int: ... + def GetRoughness(self) -> float: ... + def GetRoughnessMaxValue(self) -> float: ... + def GetRoughnessMinValue(self) -> float: ... + def GetSelectionColor(self) -> Tuple[float, float, float, float]: ... + def GetSelectionLineWidth(self) -> float: ... + def GetSelectionPointSize(self) -> float: ... + def GetShading(self) -> int: ... + def GetShowTexturesOnBackface(self) -> bool: ... + def GetSpecular(self) -> float: ... + def GetSpecularColor(self) -> Tuple[float, float, float]: ... + def GetSpecularMaxValue(self) -> float: ... + def GetSpecularMinValue(self) -> float: ... + def GetSpecularPower(self) -> float: ... + def GetSpecularPowerMaxValue(self) -> float: ... + def GetSpecularPowerMinValue(self) -> float: ... + def GetTexture(self, name:str) -> 'vtkTexture': ... + def GetUseLineWidthForEdgeThickness(self) -> bool: ... + def GetVertexColor(self) -> Tuple[float, float, float]: ... + def GetVertexVisibility(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LightingOff(self) -> None: ... + def LightingOn(self) -> None: ... + def NewInstance(self) -> 'vtkProperty': ... + def PostRender(self, __a:'vtkActor', __b:'vtkRenderer') -> None: ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + def RemoveAllTextures(self) -> None: ... + def RemoveTexture(self, name:str) -> None: ... + def Render(self, __a:'vtkActor', __b:'vtkRenderer') -> None: ... + def RenderLinesAsTubesOff(self) -> None: ... + def RenderLinesAsTubesOn(self) -> None: ... + def RenderPointsAsSpheresOff(self) -> None: ... + def RenderPointsAsSpheresOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProperty': ... + def SetAmbient(self, _arg:float) -> None: ... + @overload + def SetAmbientColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAmbientColor(self, _arg:Sequence[float]) -> None: ... + def SetAnisotropy(self, _arg:float) -> None: ... + def SetAnisotropyRotation(self, _arg:float) -> None: ... + def SetAnisotropyTexture(self, texture:'vtkTexture') -> None: ... + def SetBackfaceCulling(self, _arg:int) -> None: ... + def SetBaseColorTexture(self, texture:'vtkTexture') -> None: ... + def SetBaseIOR(self, _arg:float) -> None: ... + @overload + def SetCoatColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCoatColor(self, _arg:Sequence[float]) -> None: ... + def SetCoatIOR(self, _arg:float) -> None: ... + def SetCoatNormalScale(self, _arg:float) -> None: ... + def SetCoatNormalTexture(self, texture:'vtkTexture') -> None: ... + def SetCoatRoughness(self, _arg:float) -> None: ... + def SetCoatStrength(self, _arg:float) -> None: ... + @overload + def SetColor(self, r:float, g:float, b:float) -> None: ... + @overload + def SetColor(self, a:MutableSequence[float]) -> None: ... + def SetDiffuse(self, _arg:float) -> None: ... + @overload + def SetDiffuseColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetDiffuseColor(self, _arg:Sequence[float]) -> None: ... + @overload + def SetEdgeColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetEdgeColor(self, _arg:Sequence[float]) -> None: ... + def SetEdgeOpacity(self, _arg:float) -> None: ... + @overload + def SetEdgeTint(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetEdgeTint(self, _arg:Sequence[float]) -> None: ... + def SetEdgeVisibility(self, _arg:int) -> None: ... + def SetEdgeWidth(self, _arg:float) -> None: ... + @overload + def SetEmissiveFactor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetEmissiveFactor(self, _arg:Sequence[float]) -> None: ... + def SetEmissiveTexture(self, texture:'vtkTexture') -> None: ... + def SetFrontfaceCulling(self, _arg:int) -> None: ... + def SetInformation(self, __a:'vtkInformation') -> None: ... + def SetInterpolation(self, _arg:int) -> None: ... + def SetInterpolationToFlat(self) -> None: ... + def SetInterpolationToGouraud(self) -> None: ... + def SetInterpolationToPBR(self) -> None: ... + def SetInterpolationToPhong(self) -> None: ... + def SetLighting(self, _arg:bool) -> None: ... + def SetLineStipplePattern(self, _arg:int) -> None: ... + def SetLineStippleRepeatFactor(self, _arg:int) -> None: ... + def SetLineWidth(self, _arg:float) -> None: ... + def SetMaterialName(self, _arg:str) -> None: ... + def SetMetallic(self, _arg:float) -> None: ... + def SetNormalScale(self, _arg:float) -> None: ... + def SetNormalTexture(self, texture:'vtkTexture') -> None: ... + def SetORMTexture(self, texture:'vtkTexture') -> None: ... + def SetOcclusionStrength(self, _arg:float) -> None: ... + def SetOpacity(self, _arg:float) -> None: ... + def SetPoint2DShape(self, _arg:'Point2DShapeType') -> None: ... + def SetPointSize(self, _arg:float) -> None: ... + def SetRenderLinesAsTubes(self, _arg:bool) -> None: ... + def SetRenderPointsAsSpheres(self, _arg:bool) -> None: ... + def SetRepresentation(self, _arg:int) -> None: ... + def SetRepresentationToPoints(self) -> None: ... + def SetRepresentationToSurface(self) -> None: ... + def SetRepresentationToWireframe(self) -> None: ... + def SetRoughness(self, _arg:float) -> None: ... + @overload + def SetSelectionColor(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetSelectionColor(self, _arg:Sequence[float]) -> None: ... + def SetSelectionLineWidth(self, _arg:float) -> None: ... + def SetSelectionPointSize(self, _arg:float) -> None: ... + def SetShading(self, _arg:int) -> None: ... + def SetShowTexturesOnBackface(self, _arg:bool) -> None: ... + def SetSpecular(self, _arg:float) -> None: ... + @overload + def SetSpecularColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetSpecularColor(self, _arg:Sequence[float]) -> None: ... + def SetSpecularPower(self, _arg:float) -> None: ... + def SetTexture(self, name:str, texture:'vtkTexture') -> None: ... + def SetUseLineWidthForEdgeThickness(self, _arg:bool) -> None: ... + @overload + def SetVertexColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetVertexColor(self, _arg:Sequence[float]) -> None: ... + def SetVertexVisibility(self, _arg:int) -> None: ... + def ShadingOff(self) -> None: ... + def ShadingOn(self) -> None: ... + def ShowTexturesOnBackfaceOff(self) -> None: ... + def ShowTexturesOnBackfaceOn(self) -> None: ... + def UseLineWidthForEdgeThicknessOff(self) -> None: ... + def UseLineWidthForEdgeThicknessOn(self) -> None: ... + def VertexVisibilityOff(self) -> None: ... + def VertexVisibilityOn(self) -> None: ... + +class vtkProperty2D(vtkmodules.vtkCommonCore.vtkObject): + color:'getset_descriptor' + display_location:'getset_descriptor' + line_stipple_pattern:'getset_descriptor' + line_stipple_repeat_factor:'getset_descriptor' + line_width:'getset_descriptor' + opacity:'getset_descriptor' + point_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self, p:'vtkProperty2D') -> None: ... + def GetColor(self) -> Tuple[float, float, float]: ... + def GetDisplayLocation(self) -> int: ... + def GetDisplayLocationMaxValue(self) -> int: ... + def GetDisplayLocationMinValue(self) -> int: ... + def GetLineStipplePattern(self) -> int: ... + def GetLineStippleRepeatFactor(self) -> int: ... + def GetLineStippleRepeatFactorMaxValue(self) -> int: ... + def GetLineStippleRepeatFactorMinValue(self) -> int: ... + def GetLineWidth(self) -> float: ... + def GetLineWidthMaxValue(self) -> float: ... + def GetLineWidthMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOpacity(self) -> float: ... + def GetPointSize(self) -> float: ... + def GetPointSizeMaxValue(self) -> float: ... + def GetPointSizeMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkProperty2D': ... + def Render(self, viewport:'vtkViewport') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProperty2D': ... + @overload + def SetColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetColor(self, _arg:Sequence[float]) -> None: ... + def SetDisplayLocation(self, _arg:int) -> None: ... + def SetDisplayLocationToBackground(self) -> None: ... + def SetDisplayLocationToForeground(self) -> None: ... + def SetLineStipplePattern(self, _arg:int) -> None: ... + def SetLineStippleRepeatFactor(self, _arg:int) -> None: ... + def SetLineWidth(self, _arg:float) -> None: ... + def SetOpacity(self, _arg:float) -> None: ... + def SetPointSize(self, _arg:float) -> None: ... + +class vtkRayCastRayInfo_t(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkRayCastRayInfo_t') -> None: ... + +class vtkRenderPass(vtkmodules.vtkCommonCore.vtkObject): + number_of_rendered_props:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfRenderedProps(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRenderPass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderPass': ... + +class vtkRenderState(object): + frame_buffer:'getset_descriptor' + prop_array_count:'getset_descriptor' + renderer:'getset_descriptor' + required_keys:'getset_descriptor' + def __init__(self, renderer:'vtkRenderer') -> None: ... + def GetFrameBuffer(self) -> 'vtkFrameBufferObjectBase': ... + def GetPropArrayCount(self) -> int: ... + def GetRenderer(self) -> 'vtkRenderer': ... + def GetRequiredKeys(self) -> 'vtkInformation': ... + def GetWindowSize(self, size:MutableSequence[int]) -> None: ... + def IsValid(self) -> bool: ... + def SetFrameBuffer(self, fbo:'vtkFrameBufferObjectBase') -> None: ... + def SetRequiredKeys(self, keys:'vtkInformation') -> None: ... + +class vtkRenderTimerLog(vtkmodules.vtkCommonCore.vtkObject): + frame_limit:'getset_descriptor' + logging_enabled:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FrameReady(self) -> bool: ... + def GetFrameLimit(self) -> int: ... + def GetLoggingEnabled(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsSupported(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LoggingEnabledOff(self) -> None: ... + def LoggingEnabledOn(self) -> None: ... + def MarkEndEvent(self) -> None: ... + def MarkFrame(self) -> None: ... + def MarkStartEvent(self, name:str) -> None: ... + def NewInstance(self) -> 'vtkRenderTimerLog': ... + def ReleaseGraphicsResources(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderTimerLog': ... + def SetFrameLimit(self, _arg:int) -> None: ... + def SetLoggingEnabled(self, _arg:bool) -> None: ... + +class vtkRenderWidget(vtkmodules.vtkCommonCore.vtkObject): + name:'getset_descriptor' + position:'getset_descriptor' + size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPosition(self) -> 'vtkVector2i': ... + def GetSize(self) -> 'vtkVector2i': ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeCurrent(self) -> None: ... + def NewInstance(self) -> 'vtkRenderWidget': ... + def Render(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderWidget': ... + def SetName(self, name:str) -> None: ... + def SetPosition(self, pos:'vtkVector2i') -> None: ... + def SetSize(self, size:'vtkVector2i') -> None: ... + def Start(self) -> None: ... + +class vtkRenderWindow(vtkmodules.vtkCommonCore.vtkWindow): + PhysicalToWorldMatrixModified:int + abort_render:'getset_descriptor' + alpha_bit_planes:'getset_descriptor' + anaglyph_color_mask:'getset_descriptor' + anaglyph_color_saturation:'getset_descriptor' + borders:'getset_descriptor' + capturing_gl2ps_special_props:'getset_descriptor' + coverable:'getset_descriptor' + current_cursor:'getset_descriptor' + cursor_file_name:'getset_descriptor' + cursor_position:'getset_descriptor' + depth_buffer_size:'getset_descriptor' + desired_update_rate:'getset_descriptor' + device_index:'getset_descriptor' + display_id:'getset_descriptor' + enable_translucent_surface:'getset_descriptor' + event_pending:'getset_descriptor' + full_screen:'getset_descriptor' + generic_context:'getset_descriptor' + generic_display_id:'getset_descriptor' + generic_drawable:'getset_descriptor' + generic_parent_id:'getset_descriptor' + generic_window_id:'getset_descriptor' + in_abort_check:'getset_descriptor' + initialized:'getset_descriptor' + interactor:'getset_descriptor' + line_smoothing:'getset_descriptor' + multi_samples:'getset_descriptor' + never_rendered:'getset_descriptor' + next_window_id:'getset_descriptor' + next_window_info:'getset_descriptor' + number_of_devices:'getset_descriptor' + number_of_layers:'getset_descriptor' + number_of_layers_max_value:'getset_descriptor' + number_of_layers_min_value:'getset_descriptor' + parent_id:'getset_descriptor' + parent_info:'getset_descriptor' + physical_scale:'getset_descriptor' + physical_to_world_matrix:'getset_descriptor' + physical_translation:'getset_descriptor' + physical_view_direction:'getset_descriptor' + physical_view_up:'getset_descriptor' + platform_supports_render_window_sharing:'getset_descriptor' + point_smoothing:'getset_descriptor' + polygon_smoothing:'getset_descriptor' + render_library:'getset_descriptor' + render_timer:'getset_descriptor' + renderers:'getset_descriptor' + rendering_backend:'getset_descriptor' + shared_render_window:'getset_descriptor' + stencil_capable:'getset_descriptor' + stereo_capable_window:'getset_descriptor' + stereo_render:'getset_descriptor' + stereo_type:'getset_descriptor' + swap_buffers:'getset_descriptor' + use_srgb_color_space:'getset_descriptor' + window_id:'getset_descriptor' + window_info:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddRenderer(self, __a:'vtkRenderer') -> None: ... + def AlphaBitPlanesOff(self) -> None: ... + def AlphaBitPlanesOn(self) -> None: ... + def BordersOff(self) -> None: ... + def BordersOn(self) -> None: ... + def CaptureGL2PSSpecialProps(self, specialProps:'vtkCollection') -> None: ... + def CheckAbortStatus(self) -> int: ... + def CheckInRenderStatus(self) -> int: ... + def ClearInRenderStatus(self) -> None: ... + def CopyResultFrame(self) -> None: ... + def CoverableOff(self) -> None: ... + def CoverableOn(self) -> None: ... + def EnableTranslucentSurfaceOff(self) -> None: ... + def EnableTranslucentSurfaceOn(self) -> None: ... + def End(self) -> None: ... + def Finalize(self) -> None: ... + def Frame(self) -> None: ... + def FullScreenOff(self) -> None: ... + def FullScreenOn(self) -> None: ... + def GetAbortRender(self) -> int: ... + def GetAlphaBitPlanes(self) -> int: ... + def GetAnaglyphColorMask(self) -> Tuple[int, int]: ... + def GetAnaglyphColorSaturation(self) -> float: ... + def GetAnaglyphColorSaturationMaxValue(self) -> float: ... + def GetAnaglyphColorSaturationMinValue(self) -> float: ... + def GetBorders(self) -> int: ... + def GetCapturingGL2PSSpecialProps(self) -> int: ... + def GetColorBufferSizes(self, __a:MutableSequence[int]) -> int: ... + def GetCoverable(self) -> int: ... + def GetCurrentCursor(self) -> int: ... + def GetCursorFileName(self) -> str: ... + def GetDepthBufferSize(self) -> int: ... + def GetDesiredUpdateRate(self) -> float: ... + def GetDeviceIndex(self) -> int: ... + def GetDeviceToWorldMatrixForDevice(self, device:'vtkEventDataDevice', deviceToWorldMatrix:'vtkMatrix4x4') -> bool: ... + def GetEnableTranslucentSurface(self) -> bool: ... + def GetEventPending(self) -> int: ... + def GetFullScreen(self) -> int: ... + def GetGenericContext(self) -> Pointer: ... + def GetGenericDisplayId(self) -> Pointer: ... + def GetGenericDrawable(self) -> Pointer: ... + def GetGenericParentId(self) -> Pointer: ... + def GetGenericWindowId(self) -> Pointer: ... + def GetInAbortCheck(self) -> int: ... + def GetInitialized(self) -> bool: ... + def GetInteractor(self) -> 'vtkRenderWindowInteractor': ... + def GetLineSmoothing(self) -> int: ... + def GetMultiSamples(self) -> int: ... + def GetNeverRendered(self) -> int: ... + def GetNumberOfDevices(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLayers(self) -> int: ... + def GetNumberOfLayersMaxValue(self) -> int: ... + def GetNumberOfLayersMinValue(self) -> int: ... + def GetPhysicalScale(self) -> float: ... + def GetPhysicalToWorldMatrix(self, matrix:'vtkMatrix4x4') -> None: ... + def GetPhysicalTranslation(self) -> Tuple[float, float, float]: ... + def GetPhysicalViewDirection(self) -> Tuple[float, float, float]: ... + def GetPhysicalViewUp(self) -> Tuple[float, float, float]: ... + def GetPlatformSupportsRenderWindowSharing(self) -> bool: ... + def GetPointSmoothing(self) -> int: ... + def GetPolygonSmoothing(self) -> int: ... + @overload + def GetRGBACharPixelData(self, __a:int, __b:int, __c:int, __d:int, __e:int, __f:int) -> Pointer: ... + @overload + def GetRGBACharPixelData(self, __a:int, __b:int, __c:int, __d:int, __e:int, __f:'vtkUnsignedCharArray', __g:int) -> int: ... + @overload + def GetRGBAPixelData(self, __a:int, __b:int, __c:int, __d:int, __e:int, __f:int) -> Pointer: ... + @overload + def GetRGBAPixelData(self, __a:int, __b:int, __c:int, __d:int, __e:int, __f:'vtkFloatArray', __g:int) -> int: ... + @staticmethod + def GetRenderLibrary() -> str: ... + def GetRenderTimer(self) -> 'vtkRenderTimerLog': ... + def GetRenderers(self) -> 'vtkRendererCollection': ... + def GetRenderingBackend(self) -> str: ... + def GetSharedRenderWindow(self) -> 'vtkRenderWindow': ... + def GetStencilCapable(self) -> int: ... + def GetStereoCapableWindow(self) -> int: ... + def GetStereoRender(self) -> int: ... + def GetStereoType(self) -> int: ... + @overload + def GetStereoTypeAsString(self) -> str: ... + @overload + @staticmethod + def GetStereoTypeAsString(type:int) -> str: ... + def GetSwapBuffers(self) -> int: ... + def GetUseSRGBColorSpace(self) -> bool: ... + @overload + def GetZbufferData(self, __a:int, __b:int, __c:int, __d:int) -> Pointer: ... + @overload + def GetZbufferData(self, __a:int, __b:int, __c:int, __d:int, __e:MutableSequence[float]) -> int: ... + @overload + def GetZbufferData(self, __a:int, __b:int, __c:int, __d:int, __e:'vtkFloatArray') -> int: ... + def GetZbufferDataAtPoint(self, x:int, y:int) -> float: ... + def HasRenderer(self, __a:'vtkRenderer') -> int: ... + def HideCursor(self) -> None: ... + def Initialize(self) -> None: ... + def InitializeFromCurrentContext(self) -> bool: ... + def IsA(self, type:str) -> int: ... + def IsCurrent(self) -> bool: ... + def IsDirect(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LineSmoothingOff(self) -> None: ... + def LineSmoothingOn(self) -> None: ... + def MakeRenderWindowInteractor(self) -> 'vtkRenderWindowInteractor': ... + def NewInstance(self) -> 'vtkRenderWindow': ... + def PointSmoothingOff(self) -> None: ... + def PointSmoothingOn(self) -> None: ... + def PolygonSmoothingOff(self) -> None: ... + def PolygonSmoothingOn(self) -> None: ... + def ReleaseRGBAPixelData(self, __a:MutableSequence[float]) -> None: ... + def RemoveRenderer(self, __a:'vtkRenderer') -> None: ... + def Render(self) -> None: ... + def ReportCapabilities(self) -> str: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderWindow': ... + def SetAbortRender(self, _arg:int) -> None: ... + def SetAlphaBitPlanes(self, _arg:int) -> None: ... + @overload + def SetAnaglyphColorMask(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetAnaglyphColorMask(self, _arg:Sequence[int]) -> None: ... + def SetAnaglyphColorSaturation(self, _arg:float) -> None: ... + def SetBorders(self, _arg:int) -> None: ... + def SetCoverable(self, coverable:int) -> None: ... + def SetCurrentCursor(self, _arg:int) -> None: ... + def SetCursorFileName(self, _arg:str) -> None: ... + def SetCursorPosition(self, __a:int, __b:int) -> None: ... + def SetDesiredUpdateRate(self, __a:float) -> None: ... + def SetDeviceIndex(self, _arg:int) -> None: ... + def SetDisplayId(self, __a:Pointer) -> None: ... + def SetEnableTranslucentSurface(self, _arg:bool) -> None: ... + def SetForceMakeCurrent(self) -> None: ... + def SetFullScreen(self, __a:int) -> None: ... + def SetInAbortCheck(self, _arg:int) -> None: ... + def SetInteractor(self, __a:'vtkRenderWindowInteractor') -> None: ... + def SetLineSmoothing(self, _arg:int) -> None: ... + def SetMultiSamples(self, __a:int) -> None: ... + def SetNextWindowId(self, __a:Pointer) -> None: ... + def SetNextWindowInfo(self, __a:str) -> None: ... + def SetNumberOfLayers(self, _arg:int) -> None: ... + def SetParentId(self, __a:Pointer) -> None: ... + def SetParentInfo(self, __a:str) -> None: ... + def SetPhysicalScale(self, __a:float) -> None: ... + def SetPhysicalToWorldMatrix(self, matrix:'vtkMatrix4x4') -> None: ... + @overload + def SetPhysicalTranslation(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetPhysicalTranslation(self, __a:MutableSequence[float]) -> None: ... + @overload + def SetPhysicalViewDirection(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetPhysicalViewDirection(self, __a:MutableSequence[float]) -> None: ... + @overload + def SetPhysicalViewUp(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetPhysicalViewUp(self, __a:MutableSequence[float]) -> None: ... + @overload + def SetPixelData(self, __a:int, __b:int, __c:int, __d:int, __e:MutableSequence[int], __f:int, __g:int) -> int: ... + @overload + def SetPixelData(self, __a:int, __b:int, __c:int, __d:int, __e:'vtkUnsignedCharArray', __f:int, __g:int) -> int: ... + def SetPointSmoothing(self, _arg:int) -> None: ... + def SetPolygonSmoothing(self, _arg:int) -> None: ... + @overload + def SetRGBACharPixelData(self, __a:int, __b:int, __c:int, __d:int, __e:MutableSequence[int], __f:int, __g:int, __h:int) -> int: ... + @overload + def SetRGBACharPixelData(self, __a:int, __b:int, __c:int, __d:int, __e:'vtkUnsignedCharArray', __f:int, __g:int, __h:int) -> int: ... + @overload + def SetRGBAPixelData(self, __a:int, __b:int, __c:int, __d:int, __e:MutableSequence[float], __f:int, __g:int, __h:int) -> int: ... + @overload + def SetRGBAPixelData(self, __a:int, __b:int, __c:int, __d:int, __e:'vtkFloatArray', __f:int, __g:int, __h:int) -> int: ... + def SetSharedRenderWindow(self, __a:'vtkRenderWindow') -> None: ... + def SetStencilCapable(self, _arg:int) -> None: ... + def SetStereoCapableWindow(self, capable:int) -> None: ... + def SetStereoRender(self, stereo:int) -> None: ... + def SetStereoType(self, __a:int) -> None: ... + def SetStereoTypeToAnaglyph(self) -> None: ... + def SetStereoTypeToCheckerboard(self) -> None: ... + def SetStereoTypeToCrystalEyes(self) -> None: ... + def SetStereoTypeToDresden(self) -> None: ... + def SetStereoTypeToEmulate(self) -> None: ... + def SetStereoTypeToFake(self) -> None: ... + def SetStereoTypeToInterlaced(self) -> None: ... + def SetStereoTypeToLeft(self) -> None: ... + def SetStereoTypeToRedBlue(self) -> None: ... + def SetStereoTypeToRight(self) -> None: ... + def SetStereoTypeToSplitViewportHorizontal(self) -> None: ... + def SetSwapBuffers(self, _arg:int) -> None: ... + def SetUseSRGBColorSpace(self, _arg:bool) -> None: ... + def SetWindowId(self, __a:Pointer) -> None: ... + def SetWindowInfo(self, __a:str) -> None: ... + @overload + def SetZbufferData(self, __a:int, __b:int, __c:int, __d:int, __e:MutableSequence[float]) -> int: ... + @overload + def SetZbufferData(self, __a:int, __b:int, __c:int, __d:int, __e:'vtkFloatArray') -> int: ... + def ShowCursor(self) -> None: ... + def Start(self) -> None: ... + def StencilCapableOff(self) -> None: ... + def StencilCapableOn(self) -> None: ... + def StereoCapableWindowOff(self) -> None: ... + def StereoCapableWindowOn(self) -> None: ... + def StereoMidpoint(self) -> None: ... + def StereoRenderComplete(self) -> None: ... + def StereoRenderOff(self) -> None: ... + def StereoRenderOn(self) -> None: ... + def StereoUpdate(self) -> None: ... + def SupportsOpenGL(self) -> int: ... + def SwapBuffersOff(self) -> None: ... + def SwapBuffersOn(self) -> None: ... + def UseSRGBColorSpaceOff(self) -> None: ... + def UseSRGBColorSpaceOn(self) -> None: ... + def WaitForCompletion(self) -> None: ... + def WindowRemap(self) -> None: ... + +class vtkRenderWindowCollection(vtkmodules.vtkCommonCore.vtkCollection): + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, a:'vtkRenderWindow') -> None: ... + def GetNextItem(self) -> 'vtkRenderWindow': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRenderWindowCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderWindowCollection': ... + +class vtkRenderWindowInteractor(vtkmodules.vtkCommonCore.vtkObject): + OneShotTimer:int + RepeatingTimer:int + alt_key:'getset_descriptor' + control_key:'getset_descriptor' + current_gesture:'getset_descriptor' + desired_update_rate:'getset_descriptor' + dolly:'getset_descriptor' + done:'getset_descriptor' + enable_render:'getset_descriptor' + enabled:'getset_descriptor' + event_position:'getset_descriptor' + event_position_flip_y:'getset_descriptor' + event_size:'getset_descriptor' + hardware_window:'getset_descriptor' + initialized:'getset_descriptor' + interactor_style:'getset_descriptor' + key_code:'getset_descriptor' + key_sym:'getset_descriptor' + last_event_position:'getset_descriptor' + last_rotation:'getset_descriptor' + last_scale:'getset_descriptor' + last_translation:'getset_descriptor' + light_follow_camera:'getset_descriptor' + number_of_fly_frames:'getset_descriptor' + number_of_fly_frames_max_value:'getset_descriptor' + number_of_fly_frames_min_value:'getset_descriptor' + observer_mediator:'getset_descriptor' + picker:'getset_descriptor' + picking_manager:'getset_descriptor' + pointer_index:'getset_descriptor' + pointers_down_count:'getset_descriptor' + recognize_gestures:'getset_descriptor' + render_window:'getset_descriptor' + repeat_count:'getset_descriptor' + rotation:'getset_descriptor' + scale:'getset_descriptor' + shift_key:'getset_descriptor' + size:'getset_descriptor' + still_update_rate:'getset_descriptor' + timer_duration:'getset_descriptor' + timer_event_duration:'getset_descriptor' + timer_event_id:'getset_descriptor' + timer_event_platform_id:'getset_descriptor' + timer_event_type:'getset_descriptor' + translation:'getset_descriptor' + use_t_dx:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CharEvent(self) -> None: ... + def ClearContact(self, contactID:int) -> None: ... + def ClearPointerIndex(self, i:int) -> None: ... + def ConfigureEvent(self) -> None: ... + def CreateDefaultPicker(self) -> 'vtkAbstractPropPicker': ... + def CreateOneShotTimer(self, duration:int) -> int: ... + def CreateRepeatingTimer(self, duration:int) -> int: ... + def CreateTimer(self, timerType:int) -> int: ... + @overload + def DestroyTimer(self) -> int: ... + @overload + def DestroyTimer(self, timerId:int) -> int: ... + def Disable(self) -> None: ... + def Enable(self) -> None: ... + def EnableRenderOff(self) -> None: ... + def EnableRenderOn(self) -> None: ... + def EndPanEvent(self) -> None: ... + def EndPickCallback(self) -> None: ... + def EndPinchEvent(self) -> None: ... + def EndRotateEvent(self) -> None: ... + def EnterEvent(self) -> None: ... + def ExitCallback(self) -> None: ... + def ExitEvent(self) -> None: ... + def ExposeEvent(self) -> None: ... + def FifthButtonPressEvent(self) -> None: ... + def FifthButtonReleaseEvent(self) -> None: ... + def FindPokedRenderer(self, __a:int, __b:int) -> 'vtkRenderer': ... + @overload + def FlyTo(self, ren:'vtkRenderer', x:float, y:float, z:float) -> None: ... + @overload + def FlyTo(self, ren:'vtkRenderer', x:MutableSequence[float]) -> None: ... + @overload + def FlyToImage(self, ren:'vtkRenderer', x:float, y:float) -> None: ... + @overload + def FlyToImage(self, ren:'vtkRenderer', x:MutableSequence[float]) -> None: ... + def FourthButtonPressEvent(self) -> None: ... + def FourthButtonReleaseEvent(self) -> None: ... + def GetAltKey(self) -> int: ... + def GetControlKey(self) -> int: ... + def GetCurrentGesture(self) -> vtkCommand.EventIds: ... + def GetDesiredUpdateRate(self) -> float: ... + def GetDesiredUpdateRateMaxValue(self) -> float: ... + def GetDesiredUpdateRateMinValue(self) -> float: ... + def GetDolly(self) -> float: ... + def GetDone(self) -> bool: ... + def GetEnableRender(self) -> bool: ... + def GetEnabled(self) -> int: ... + def GetEventPosition(self) -> Tuple[int, int]: ... + def GetEventPositions(self, pointerIndex:int) -> Pointer: ... + def GetEventSize(self) -> Tuple[int, int]: ... + def GetHardwareWindow(self) -> 'vtkHardwareWindow': ... + def GetInitialized(self) -> int: ... + def GetInteractorStyle(self) -> 'vtkInteractorObserver': ... + def GetKeyCode(self) -> str: ... + def GetKeySym(self) -> str: ... + def GetLastEventPosition(self) -> Tuple[int, int]: ... + def GetLastEventPositions(self, pointerIndex:int) -> Pointer: ... + def GetLastRotation(self) -> float: ... + def GetLastScale(self) -> float: ... + def GetLastTranslation(self) -> Tuple[float, float]: ... + def GetLightFollowCamera(self) -> int: ... + def GetMousePosition(self, x:MutableSequence[int], y:MutableSequence[int]) -> None: ... + def GetNumberOfFlyFrames(self) -> int: ... + def GetNumberOfFlyFramesMaxValue(self) -> int: ... + def GetNumberOfFlyFramesMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetObserverMediator(self) -> 'vtkObserverMediator': ... + def GetPicker(self) -> 'vtkAbstractPicker': ... + def GetPickingManager(self) -> 'vtkPickingManager': ... + def GetPointerIndex(self) -> int: ... + def GetPointerIndexForContact(self, contactID:int) -> int: ... + def GetPointerIndexForExistingContact(self, contactID:int) -> int: ... + def GetPointersDownCount(self) -> int: ... + def GetRecognizeGestures(self) -> bool: ... + def GetRenderWindow(self) -> 'vtkRenderWindow': ... + def GetRepeatCount(self) -> int: ... + def GetRotation(self) -> float: ... + def GetScale(self) -> float: ... + def GetShiftKey(self) -> int: ... + def GetSize(self) -> Tuple[int, int]: ... + def GetStillUpdateRate(self) -> float: ... + def GetStillUpdateRateMaxValue(self) -> float: ... + def GetStillUpdateRateMinValue(self) -> float: ... + @overload + def GetTimerDuration(self, timerId:int) -> int: ... + @overload + def GetTimerDuration(self) -> int: ... + def GetTimerDurationMaxValue(self) -> int: ... + def GetTimerDurationMinValue(self) -> int: ... + def GetTimerEventDuration(self) -> int: ... + def GetTimerEventId(self) -> int: ... + def GetTimerEventPlatformId(self) -> int: ... + def GetTimerEventType(self) -> int: ... + def GetTranslation(self) -> Tuple[float, float]: ... + def GetUseTDx(self) -> bool: ... + def GetVTKTimerId(self, platformTimerId:int) -> int: ... + def HideCursor(self) -> None: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsOneShotTimer(self, timerId:int) -> int: ... + def IsPointerIndexSet(self, i:int) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def KeyPressEvent(self) -> None: ... + def KeyReleaseEvent(self) -> None: ... + def LeaveEvent(self) -> None: ... + def LeftButtonPressEvent(self) -> None: ... + def LeftButtonReleaseEvent(self) -> None: ... + def LightFollowCameraOff(self) -> None: ... + def LightFollowCameraOn(self) -> None: ... + def LongTapEvent(self) -> None: ... + def MiddleButtonPressEvent(self) -> None: ... + def MiddleButtonReleaseEvent(self) -> None: ... + def MouseMoveEvent(self) -> None: ... + def MouseWheelBackwardEvent(self) -> None: ... + def MouseWheelForwardEvent(self) -> None: ... + def MouseWheelLeftEvent(self) -> None: ... + def MouseWheelRightEvent(self) -> None: ... + def NewInstance(self) -> 'vtkRenderWindowInteractor': ... + def PanEvent(self) -> None: ... + def PinchEvent(self) -> None: ... + def ProcessEvents(self) -> None: ... + def ReInitialize(self) -> None: ... + def Render(self) -> None: ... + def ResetTimer(self, timerId:int) -> int: ... + def RightButtonPressEvent(self) -> None: ... + def RightButtonReleaseEvent(self) -> None: ... + def RotateEvent(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderWindowInteractor': ... + def SetAltKey(self, _arg:int) -> None: ... + def SetControlKey(self, _arg:int) -> None: ... + def SetCurrentGesture(self, eid:vtkCommand.EventIds) -> None: ... + def SetDesiredUpdateRate(self, _arg:float) -> None: ... + def SetDolly(self, _arg:float) -> None: ... + def SetDone(self, _arg:bool) -> None: ... + def SetEnableRender(self, _arg:bool) -> None: ... + @overload + def SetEventInformation(self, x:int, y:int, ctrl:int, shift:int, keycode:str, repeatcount:int, keysym:str, pointerIndex:int) -> None: ... + @overload + def SetEventInformation(self, x:int, y:int, ctrl:int=0, shift:int=0, keycode:str=..., repeatcount:int=0, keysym:str=...) -> None: ... + @overload + def SetEventInformationFlipY(self, x:int, y:int, ctrl:int, shift:int, keycode:str, repeatcount:int, keysym:str, pointerIndex:int) -> None: ... + @overload + def SetEventInformationFlipY(self, x:int, y:int, ctrl:int=0, shift:int=0, keycode:str=..., repeatcount:int=0, keysym:str=...) -> None: ... + @overload + def SetEventPosition(self, x:int, y:int) -> None: ... + @overload + def SetEventPosition(self, pos:MutableSequence[int]) -> None: ... + @overload + def SetEventPosition(self, x:int, y:int, pointerIndex:int) -> None: ... + @overload + def SetEventPosition(self, pos:MutableSequence[int], pointerIndex:int) -> None: ... + @overload + def SetEventPositionFlipY(self, x:int, y:int) -> None: ... + @overload + def SetEventPositionFlipY(self, pos:MutableSequence[int]) -> None: ... + @overload + def SetEventPositionFlipY(self, x:int, y:int, pointerIndex:int) -> None: ... + @overload + def SetEventPositionFlipY(self, pos:MutableSequence[int], pointerIndex:int) -> None: ... + @overload + def SetEventSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetEventSize(self, _arg:Sequence[int]) -> None: ... + def SetHardwareWindow(self, aren:'vtkHardwareWindow') -> None: ... + def SetInteractorStyle(self, __a:'vtkInteractorObserver') -> None: ... + def SetKeyCode(self, _arg:str) -> None: ... + def SetKeyEventInformation(self, ctrl:int=0, shift:int=0, keycode:str=..., repeatcount:int=0, keysym:str=...) -> None: ... + def SetKeySym(self, _arg:str) -> None: ... + @overload + def SetLastEventPosition(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetLastEventPosition(self, _arg:Sequence[int]) -> None: ... + def SetLightFollowCamera(self, _arg:int) -> None: ... + def SetNumberOfFlyFrames(self, _arg:int) -> None: ... + def SetPicker(self, __a:'vtkAbstractPicker') -> None: ... + def SetPickingManager(self, __a:'vtkPickingManager') -> None: ... + def SetPointerIndex(self, _arg:int) -> None: ... + def SetRecognizeGestures(self, _arg:bool) -> None: ... + def SetRenderWindow(self, aren:'vtkRenderWindow') -> None: ... + def SetRepeatCount(self, _arg:int) -> None: ... + def SetRotation(self, rotation:float) -> None: ... + def SetScale(self, scale:float) -> None: ... + def SetShiftKey(self, _arg:int) -> None: ... + @overload + def SetSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetSize(self, _arg:Sequence[int]) -> None: ... + def SetStillUpdateRate(self, _arg:float) -> None: ... + def SetTimerDuration(self, _arg:int) -> None: ... + def SetTimerEventDuration(self, _arg:int) -> None: ... + def SetTimerEventId(self, _arg:int) -> None: ... + def SetTimerEventPlatformId(self, _arg:int) -> None: ... + def SetTimerEventType(self, _arg:int) -> None: ... + def SetTranslation(self, val:MutableSequence[float]) -> None: ... + def SetUseTDx(self, _arg:bool) -> None: ... + def ShowCursor(self) -> None: ... + def Start(self) -> None: ... + def StartPanEvent(self) -> None: ... + def StartPickCallback(self) -> None: ... + def StartPinchEvent(self) -> None: ... + def StartRotateEvent(self) -> None: ... + def SwipeEvent(self) -> None: ... + def TapEvent(self) -> None: ... + def TerminateApp(self) -> None: ... + def UpdateSize(self, x:int, y:int) -> None: ... + def UserCallback(self) -> None: ... + +class vtkRenderWindowInteractor3D(vtkRenderWindowInteractor): + last_translation3d:'getset_descriptor' + physical_scale:'getset_descriptor' + physical_view_direction:'getset_descriptor' + physical_view_up:'getset_descriptor' + starting_physical_to_world_matrix:'getset_descriptor' + translation3d:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Disable(self) -> None: ... + def Enable(self) -> None: ... + def GetLastPhysicalEventPose(self, poseMatrix:'vtkMatrix4x4', pointerIndex:int) -> None: ... + def GetLastTranslation3D(self) -> Tuple[float, float, float]: ... + def GetLastWorldEventOrientation(self, pointerIndex:int) -> Pointer: ... + def GetLastWorldEventPose(self, poseMatrix:'vtkMatrix4x4', pointerIndex:int) -> None: ... + def GetLastWorldEventPosition(self, pointerIndex:int) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPhysicalEventPose(self, poseMatrix:'vtkMatrix4x4', pointerIndex:int) -> None: ... + def GetPhysicalScale(self) -> float: ... + def GetPhysicalTranslation(self, __a:'vtkCamera') -> Pointer: ... + def GetPhysicalViewDirection(self) -> Pointer: ... + def GetPhysicalViewUp(self) -> Pointer: ... + def GetStartingPhysicalEventPose(self, poseMatrix:'vtkMatrix4x4', pointerIndex:int) -> None: ... + def GetStartingPhysicalToWorldMatrix(self, startingPhysicalToWorldMatrix:'vtkMatrix4x4') -> None: ... + def GetTouchPadPosition(self, __a:'vtkEventDataDevice', __b:'vtkEventDataDeviceInput', __c:MutableSequence[float]) -> None: ... + def GetTranslation3D(self) -> Tuple[float, float, float]: ... + def GetWorldEventOrientation(self, pointerIndex:int) -> Pointer: ... + def GetWorldEventPose(self, poseMatrix:'vtkMatrix4x4', pointerIndex:int) -> None: ... + def GetWorldEventPosition(self, pointerIndex:int) -> Pointer: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MiddleButtonPressEvent(self) -> None: ... + def MiddleButtonReleaseEvent(self) -> None: ... + def NewInstance(self) -> 'vtkRenderWindowInteractor3D': ... + def RightButtonPressEvent(self) -> None: ... + def RightButtonReleaseEvent(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderWindowInteractor3D': ... + def SetPhysicalEventPose(self, poseMatrix:'vtkMatrix4x4', pointerIndex:int) -> None: ... + def SetPhysicalEventPosition(self, x:float, y:float, z:float, pointerIndex:int) -> None: ... + def SetPhysicalScale(self, __a:float) -> None: ... + def SetPhysicalTranslation(self, __a:'vtkCamera', __b:float, __c:float, __d:float) -> None: ... + def SetPhysicalViewDirection(self, __a:float, __b:float, __c:float) -> None: ... + def SetPhysicalViewUp(self, __a:float, __b:float, __c:float) -> None: ... + def SetStartingPhysicalEventPose(self, poseMatrix:'vtkMatrix4x4', device:'vtkEventDataDevice') -> None: ... + def SetStartingPhysicalToWorldMatrix(self, startingPhysicalToWorldMatrix:'vtkMatrix4x4') -> None: ... + def SetTranslation3D(self, val:MutableSequence[float]) -> None: ... + def SetWorldEventOrientation(self, w:float, x:float, y:float, z:float, pointerIndex:int) -> None: ... + def SetWorldEventPose(self, poseMatrix:'vtkMatrix4x4', pointerIndex:int) -> None: ... + def SetWorldEventPosition(self, x:float, y:float, z:float, pointerIndex:int) -> None: ... + +class vtkRenderedAreaPicker(vtkAreaPicker): + def __init__(self, **properties:Any) -> None: ... + def AreaPick(self, x0:float, y0:float, x1:float, y1:float, __e:'vtkRenderer') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRenderedAreaPicker': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderedAreaPicker': ... + +class vtkViewport(vtkmodules.vtkCommonCore.vtkObject): + class GradientModes(int): + VTK_GRADIENT_HORIZONTAL:'GradientModes' + VTK_GRADIENT_RADIAL_VIEWPORT_FARTHEST_CORNER:'GradientModes' + VTK_GRADIENT_RADIAL_VIEWPORT_FARTHEST_SIDE:'GradientModes' + VTK_GRADIENT_VERTICAL:'GradientModes' + actors2d:'getset_descriptor' + aspect:'getset_descriptor' + background:'getset_descriptor' + background2:'getset_descriptor' + background_alpha:'getset_descriptor' + center:'getset_descriptor' + display_point:'getset_descriptor' + dither_gradient:'getset_descriptor' + environmental_bg:'getset_descriptor' + environmental_bg2:'getset_descriptor' + gradient_background:'getset_descriptor' + gradient_environmental_bg:'getset_descriptor' + gradient_mode:'getset_descriptor' + origin:'getset_descriptor' + pick_height:'getset_descriptor' + pick_result_props:'getset_descriptor' + pick_width:'getset_descriptor' + pick_x:'getset_descriptor' + pick_x1:'getset_descriptor' + pick_x2:'getset_descriptor' + pick_y:'getset_descriptor' + pick_y1:'getset_descriptor' + pick_y2:'getset_descriptor' + picked_z:'getset_descriptor' + pixel_aspect:'getset_descriptor' + size:'getset_descriptor' + view_point:'getset_descriptor' + view_props:'getset_descriptor' + viewport:'getset_descriptor' + vtk_window:'getset_descriptor' + world_point:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddActor2D(self, p:'vtkProp') -> None: ... + def AddViewProp(self, __a:'vtkProp') -> None: ... + def ComputeAspect(self) -> None: ... + def DisplayToLocalDisplay(self, x:float, y:float) -> None: ... + def DisplayToNormalizedDisplay(self, u:float, v:float) -> None: ... + def DisplayToView(self) -> None: ... + def DisplayToWorld(self) -> None: ... + def DitherGradientOff(self) -> None: ... + def DitherGradientOn(self) -> None: ... + def GetActors2D(self) -> 'vtkActor2DCollection': ... + def GetAspect(self) -> Tuple[float, float]: ... + def GetBackground(self) -> Tuple[float, float, float]: ... + def GetBackground2(self) -> Tuple[float, float, float]: ... + def GetBackgroundAlpha(self) -> float: ... + def GetBackgroundAlphaMaxValue(self) -> float: ... + def GetBackgroundAlphaMinValue(self) -> float: ... + def GetCenter(self) -> Tuple[float, float]: ... + def GetDisplayPoint(self) -> Tuple[float, float, float]: ... + def GetDitherGradient(self) -> bool: ... + def GetEnvironmentalBG(self) -> Tuple[float, float, float]: ... + def GetEnvironmentalBG2(self) -> Tuple[float, float, float]: ... + def GetGradientBackground(self) -> bool: ... + def GetGradientEnvironmentalBG(self) -> bool: ... + def GetGradientMode(self) -> 'GradientModes': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrigin(self) -> Tuple[int, int]: ... + def GetPickHeight(self) -> float: ... + def GetPickResultProps(self) -> 'vtkPropCollection': ... + def GetPickWidth(self) -> float: ... + def GetPickX(self) -> float: ... + def GetPickX1(self) -> float: ... + def GetPickX2(self) -> float: ... + def GetPickY(self) -> float: ... + def GetPickY1(self) -> float: ... + def GetPickY2(self) -> float: ... + def GetPickedZ(self) -> float: ... + def GetPixelAspect(self) -> Tuple[float, float]: ... + def GetSize(self) -> Tuple[int, int]: ... + def GetTiledSize(self, width:MutableSequence[int], height:MutableSequence[int]) -> None: ... + def GetTiledSizeAndOrigin(self, width:MutableSequence[int], height:MutableSequence[int], lowerLeftX:MutableSequence[int], lowerLeftY:MutableSequence[int]) -> None: ... + def GetVTKWindow(self) -> 'vtkWindow': ... + def GetViewPoint(self) -> Tuple[float, float, float]: ... + def GetViewProps(self) -> 'vtkPropCollection': ... + def GetViewport(self) -> Tuple[float, float, float, float]: ... + def GetWorldPoint(self) -> Tuple[float, float, float, float]: ... + def GradientBackgroundOff(self) -> None: ... + def GradientBackgroundOn(self) -> None: ... + def GradientEnvironmentalBGOff(self) -> None: ... + def GradientEnvironmentalBGOn(self) -> None: ... + def HasViewProp(self, __a:'vtkProp') -> int: ... + def IsA(self, type:str) -> int: ... + def IsInViewport(self, x:int, y:int) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LocalDisplayToDisplay(self, x:float, y:float) -> None: ... + def NewInstance(self) -> 'vtkViewport': ... + def NormalizedDisplayToDisplay(self, u:float, v:float) -> None: ... + def NormalizedDisplayToViewport(self, x:float, y:float) -> None: ... + def NormalizedViewportToView(self, x:float, y:float, z:float) -> None: ... + def NormalizedViewportToViewport(self, u:float, v:float) -> None: ... + @overload + def PickProp(self, selectionX:float, selectionY:float) -> 'vtkAssemblyPath': ... + @overload + def PickProp(self, selectionX1:float, selectionY1:float, selectionX2:float, selectionY2:float) -> 'vtkAssemblyPath': ... + @overload + def PickProp(self, selectionX:float, selectionY:float, fieldAssociation:int, selection:'vtkSelection') -> 'vtkAssemblyPath': ... + @overload + def PickProp(self, selectionX1:float, selectionY1:float, selectionX2:float, selectionY2:float, fieldAssociation:int, selection:'vtkSelection') -> 'vtkAssemblyPath': ... + @overload + def PickPropFrom(self, selectionX:float, selectionY:float, __c:'vtkPropCollection') -> 'vtkAssemblyPath': ... + @overload + def PickPropFrom(self, selectionX1:float, selectionY1:float, selectionX2:float, selectionY2:float, __e:'vtkPropCollection') -> 'vtkAssemblyPath': ... + @overload + def PickPropFrom(self, selectionX:float, selectionY:float, __c:'vtkPropCollection', fieldAssociation:int, selection:'vtkSelection') -> 'vtkAssemblyPath': ... + @overload + def PickPropFrom(self, selectionX1:float, selectionY1:float, selectionX2:float, selectionY2:float, __e:'vtkPropCollection', fieldAssociation:int, selection:'vtkSelection') -> 'vtkAssemblyPath': ... + def PoseToView(self, __a:float, __b:float, __c:float) -> None: ... + def PoseToWorld(self, __a:float, __b:float, __c:float) -> None: ... + def RemoveActor2D(self, p:'vtkProp') -> None: ... + def RemoveAllViewProps(self) -> None: ... + def RemoveViewProp(self, __a:'vtkProp') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkViewport': ... + @overload + def SetAspect(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetAspect(self, _arg:Sequence[float]) -> None: ... + @overload + def SetBackground(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetBackground(self, _arg:Sequence[float]) -> None: ... + @overload + def SetBackground2(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetBackground2(self, _arg:Sequence[float]) -> None: ... + def SetBackgroundAlpha(self, _arg:float) -> None: ... + @overload + def SetDisplayPoint(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetDisplayPoint(self, _arg:Sequence[float]) -> None: ... + def SetDitherGradient(self, _arg:bool) -> None: ... + @overload + def SetEnvironmentalBG(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetEnvironmentalBG(self, _arg:Sequence[float]) -> None: ... + @overload + def SetEnvironmentalBG2(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetEnvironmentalBG2(self, _arg:Sequence[float]) -> None: ... + def SetGradientBackground(self, _arg:bool) -> None: ... + def SetGradientEnvironmentalBG(self, _arg:bool) -> None: ... + def SetGradientMode(self, _arg:'GradientModes') -> None: ... + @overload + def SetPixelAspect(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetPixelAspect(self, _arg:Sequence[float]) -> None: ... + @overload + def SetViewPoint(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetViewPoint(self, _arg:Sequence[float]) -> None: ... + @overload + def SetViewport(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetViewport(self, _arg:Sequence[float]) -> None: ... + @overload + def SetWorldPoint(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetWorldPoint(self, _arg:Sequence[float]) -> None: ... + @overload + def ViewToDisplay(self) -> None: ... + @overload + def ViewToDisplay(self, x:float, y:float, z:float) -> None: ... + def ViewToNormalizedViewport(self, x:float, y:float, z:float) -> None: ... + def ViewToPose(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def ViewToWorld(self) -> None: ... + @overload + def ViewToWorld(self, __a:float, __b:float, __c:float) -> None: ... + def ViewportToNormalizedDisplay(self, x:float, y:float) -> None: ... + def ViewportToNormalizedViewport(self, u:float, v:float) -> None: ... + @overload + def WorldToDisplay(self) -> None: ... + @overload + def WorldToDisplay(self, x:float, y:float, z:float) -> None: ... + def WorldToPose(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def WorldToView(self) -> None: ... + @overload + def WorldToView(self, __a:float, __b:float, __c:float) -> None: ... + +class vtkRenderer(vtkViewport): + active_camera:'getset_descriptor' + actors:'getset_descriptor' + allocated_render_time:'getset_descriptor' + ambient:'getset_descriptor' + automatic_light_creation:'getset_descriptor' + background_texture:'getset_descriptor' + backing_store:'getset_descriptor' + clipping_range_expansion:'getset_descriptor' + cullers:'getset_descriptor' + delegate:'getset_descriptor' + draw:'getset_descriptor' + environment_right:'getset_descriptor' + environment_texture:'getset_descriptor' + environment_texture_property:'getset_descriptor' + environment_up:'getset_descriptor' + erase:'getset_descriptor' + fxaa_options:'getset_descriptor' + gl2ps_special_prop_collection:'getset_descriptor' + information:'getset_descriptor' + interactive:'getset_descriptor' + last_render_time_in_seconds:'getset_descriptor' + last_rendering_used_depth_peeling:'getset_descriptor' + layer:'getset_descriptor' + left_background_texture:'getset_descriptor' + light_collection:'getset_descriptor' + light_follow_camera:'getset_descriptor' + lights:'getset_descriptor' + m_time:'getset_descriptor' + maximum_number_of_peels:'getset_descriptor' + near_clipping_plane_tolerance:'getset_descriptor' + number_of_props_rendered:'getset_descriptor' + occlusion_ratio:'getset_descriptor' + preserve_color_buffer:'getset_descriptor' + preserve_depth_buffer:'getset_descriptor' + render_window:'getset_descriptor' + right_background_texture:'getset_descriptor' + safe_get_z:'getset_descriptor' + selector:'getset_descriptor' + ssao_bias:'getset_descriptor' + ssao_blur:'getset_descriptor' + ssao_kernel_size:'getset_descriptor' + ssao_radius:'getset_descriptor' + textured_background:'getset_descriptor' + tiled_aspect_ratio:'getset_descriptor' + time_factor:'getset_descriptor' + two_sided_lighting:'getset_descriptor' + use_depth_peeling:'getset_descriptor' + use_depth_peeling_for_volumes:'getset_descriptor' + use_fxaa:'getset_descriptor' + use_hidden_line_removal:'getset_descriptor' + use_image_based_lighting:'getset_descriptor' + use_oit:'getset_descriptor' + use_shadows:'getset_descriptor' + use_ssao:'getset_descriptor' + volumes:'getset_descriptor' + vtk_window:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddActor(self, p:'vtkProp') -> None: ... + def AddCuller(self, __a:'vtkCuller') -> None: ... + def AddLight(self, __a:'vtkLight') -> None: ... + def AddVolume(self, p:'vtkProp') -> None: ... + def AutomaticLightCreationOff(self) -> None: ... + def AutomaticLightCreationOn(self) -> None: ... + def BackingStoreOff(self) -> None: ... + def BackingStoreOn(self) -> None: ... + def CaptureGL2PSSpecialProp(self, __a:'vtkProp') -> int: ... + def Clear(self) -> None: ... + def ClearLights(self) -> None: ... + @overload + def ComputeVisiblePropBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def ComputeVisiblePropBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def CreateLight(self) -> None: ... + def DeviceRender(self) -> None: ... + def DeviceRenderOpaqueGeometry(self, fbo:'vtkFrameBufferObjectBase'=...) -> None: ... + def DeviceRenderTranslucentPolygonalGeometry(self, fbo:'vtkFrameBufferObjectBase'=...) -> None: ... + @overload + def DisplayToWorld(self, display:'vtkVector3d') -> 'vtkVector3d': ... + @overload + def DisplayToWorld(self) -> None: ... + def DrawOff(self) -> None: ... + def DrawOn(self) -> None: ... + def EraseOff(self) -> None: ... + def EraseOn(self) -> None: ... + def GetActiveCamera(self) -> 'vtkCamera': ... + def GetActors(self) -> 'vtkActorCollection': ... + def GetAllocatedRenderTime(self) -> float: ... + def GetAmbient(self) -> Tuple[float, float, float]: ... + def GetAutomaticLightCreation(self) -> int: ... + def GetBackgroundTexture(self) -> 'vtkTexture': ... + def GetBackingStore(self) -> int: ... + def GetClippingRangeExpansion(self) -> float: ... + def GetClippingRangeExpansionMaxValue(self) -> float: ... + def GetClippingRangeExpansionMinValue(self) -> float: ... + def GetCullers(self) -> 'vtkCullerCollection': ... + def GetDelegate(self) -> 'vtkRendererDelegate': ... + def GetDraw(self) -> int: ... + def GetEnvironmentRight(self) -> Tuple[float, float, float]: ... + def GetEnvironmentTexture(self) -> 'vtkTexture': ... + def GetEnvironmentUp(self) -> Tuple[float, float, float]: ... + def GetErase(self) -> int: ... + def GetFXAAOptions(self) -> 'vtkFXAAOptions': ... + def GetInformation(self) -> 'vtkInformation': ... + def GetInteractive(self) -> int: ... + def GetLastRenderTimeInSeconds(self) -> float: ... + def GetLastRenderingUsedDepthPeeling(self) -> int: ... + def GetLayer(self) -> int: ... + def GetLeftBackgroundTexture(self) -> 'vtkTexture': ... + def GetLightFollowCamera(self) -> int: ... + def GetLights(self) -> 'vtkLightCollection': ... + def GetMTime(self) -> int: ... + def GetMaximumNumberOfPeels(self) -> int: ... + def GetNearClippingPlaneTolerance(self) -> float: ... + def GetNearClippingPlaneToleranceMaxValue(self) -> float: ... + def GetNearClippingPlaneToleranceMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPropsRendered(self) -> int: ... + def GetOcclusionRatio(self) -> float: ... + def GetOcclusionRatioMaxValue(self) -> float: ... + def GetOcclusionRatioMinValue(self) -> float: ... + def GetPass(self) -> 'vtkRenderPass': ... + def GetPreserveColorBuffer(self) -> int: ... + def GetPreserveDepthBuffer(self) -> int: ... + def GetRenderWindow(self) -> 'vtkRenderWindow': ... + def GetRightBackgroundTexture(self) -> 'vtkTexture': ... + def GetSSAOBias(self) -> float: ... + def GetSSAOBlur(self) -> bool: ... + def GetSSAOKernelSize(self) -> int: ... + def GetSSAORadius(self) -> float: ... + def GetSafeGetZ(self) -> bool: ... + def GetSelector(self) -> 'vtkHardwareSelector': ... + def GetTexturedBackground(self) -> bool: ... + def GetTiledAspectRatio(self) -> float: ... + def GetTimeFactor(self) -> float: ... + def GetTwoSidedLighting(self) -> int: ... + def GetUseDepthPeeling(self) -> int: ... + def GetUseDepthPeelingForVolumes(self) -> bool: ... + def GetUseFXAA(self) -> bool: ... + def GetUseHiddenLineRemoval(self) -> int: ... + def GetUseImageBasedLighting(self) -> bool: ... + def GetUseOIT(self) -> bool: ... + def GetUseSSAO(self) -> bool: ... + def GetUseShadows(self) -> int: ... + def GetVTKWindow(self) -> 'vtkWindow': ... + def GetVolumes(self) -> 'vtkVolumeCollection': ... + def GetZ(self, x:int, y:int) -> float: ... + def InteractiveOff(self) -> None: ... + def InteractiveOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsActiveCameraCreated(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LightFollowCameraOff(self) -> None: ... + def LightFollowCameraOn(self) -> None: ... + def MakeCamera(self) -> 'vtkCamera': ... + def MakeLight(self) -> 'vtkLight': ... + def NewInstance(self) -> 'vtkRenderer': ... + @overload + def PickProp(self, selectionX:float, selectionY:float) -> 'vtkAssemblyPath': ... + @overload + def PickProp(self, selectionX1:float, selectionY1:float, selectionX2:float, selectionY2:float) -> 'vtkAssemblyPath': ... + @overload + def PickProp(self, selectionX:float, selectionY:float, fieldAssociation:int, selection:'vtkSelection') -> 'vtkAssemblyPath': ... + @overload + def PickProp(self, selectionX1:float, selectionY1:float, selectionX2:float, selectionY2:float, fieldAssociation:int, selection:'vtkSelection') -> 'vtkAssemblyPath': ... + def PoseToView(self, wx:float, wy:float, wz:float) -> None: ... + def PoseToWorld(self, wx:float, wy:float, wz:float) -> None: ... + def PreserveColorBufferOff(self) -> None: ... + def PreserveColorBufferOn(self) -> None: ... + def PreserveDepthBufferOff(self) -> None: ... + def PreserveDepthBufferOn(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RemoveActor(self, p:'vtkProp') -> None: ... + def RemoveAllLights(self) -> None: ... + def RemoveCuller(self, __a:'vtkCuller') -> None: ... + def RemoveLight(self, __a:'vtkLight') -> None: ... + def RemoveVolume(self, p:'vtkProp') -> None: ... + def Render(self) -> None: ... + @overload + def ResetCamera(self) -> None: ... + @overload + def ResetCamera(self, bounds:Sequence[float]) -> None: ... + @overload + def ResetCamera(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @overload + def ResetCameraClippingRange(self) -> None: ... + @overload + def ResetCameraClippingRange(self, bounds:Sequence[float]) -> None: ... + @overload + def ResetCameraClippingRange(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @overload + def ResetCameraScreenSpace(self, offsetRatio:float=0.9) -> None: ... + @overload + def ResetCameraScreenSpace(self, bounds:Sequence[float], offsetRatio:float=0.9) -> None: ... + @overload + def ResetCameraScreenSpace(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float, offsetRatio:float=0.9) -> None: ... + def SSAOBlurOff(self) -> None: ... + def SSAOBlurOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderer': ... + def SafeGetZOff(self) -> None: ... + def SafeGetZOn(self) -> None: ... + def SetActiveCamera(self, __a:'vtkCamera') -> None: ... + def SetAllocatedRenderTime(self, _arg:float) -> None: ... + @overload + def SetAmbient(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAmbient(self, _arg:Sequence[float]) -> None: ... + def SetAutomaticLightCreation(self, _arg:int) -> None: ... + def SetBackgroundTexture(self, __a:'vtkTexture') -> None: ... + def SetBackingStore(self, _arg:int) -> None: ... + def SetClippingRangeExpansion(self, _arg:float) -> None: ... + def SetDelegate(self, d:'vtkRendererDelegate') -> None: ... + def SetDraw(self, _arg:int) -> None: ... + @overload + def SetEnvironmentRight(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetEnvironmentRight(self, _arg:Sequence[float]) -> None: ... + def SetEnvironmentTexture(self, texture:'vtkTexture', isSRGB:bool=False) -> None: ... + def SetEnvironmentTextureProperty(self, texture:'vtkTexture') -> None: ... + @overload + def SetEnvironmentUp(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetEnvironmentUp(self, _arg:Sequence[float]) -> None: ... + def SetErase(self, _arg:int) -> None: ... + def SetFXAAOptions(self, __a:'vtkFXAAOptions') -> None: ... + def SetGL2PSSpecialPropCollection(self, __a:'vtkPropCollection') -> None: ... + def SetInformation(self, __a:'vtkInformation') -> None: ... + def SetInteractive(self, _arg:int) -> None: ... + def SetLayer(self, layer:int) -> None: ... + def SetLeftBackgroundTexture(self, __a:'vtkTexture') -> None: ... + def SetLightCollection(self, lights:'vtkLightCollection') -> None: ... + def SetLightFollowCamera(self, _arg:int) -> None: ... + def SetMaximumNumberOfPeels(self, _arg:int) -> None: ... + def SetNearClippingPlaneTolerance(self, _arg:float) -> None: ... + def SetOcclusionRatio(self, _arg:float) -> None: ... + def SetPass(self, p:'vtkRenderPass') -> None: ... + def SetPreserveColorBuffer(self, _arg:int) -> None: ... + def SetPreserveDepthBuffer(self, _arg:int) -> None: ... + def SetRenderWindow(self, __a:'vtkRenderWindow') -> None: ... + def SetRightBackgroundTexture(self, __a:'vtkTexture') -> None: ... + def SetSSAOBias(self, _arg:float) -> None: ... + def SetSSAOBlur(self, _arg:bool) -> None: ... + def SetSSAOKernelSize(self, _arg:int) -> None: ... + def SetSSAORadius(self, _arg:float) -> None: ... + def SetSafeGetZ(self, _arg:bool) -> None: ... + def SetTexturedBackground(self, _arg:bool) -> None: ... + def SetTwoSidedLighting(self, _arg:int) -> None: ... + def SetUseDepthPeeling(self, _arg:int) -> None: ... + def SetUseDepthPeelingForVolumes(self, _arg:bool) -> None: ... + def SetUseFXAA(self, _arg:bool) -> None: ... + def SetUseHiddenLineRemoval(self, _arg:int) -> None: ... + def SetUseImageBasedLighting(self, _arg:bool) -> None: ... + def SetUseOIT(self, _arg:bool) -> None: ... + def SetUseSSAO(self, _arg:bool) -> None: ... + def SetUseShadows(self, _arg:int) -> None: ... + def StereoMidpoint(self) -> None: ... + def TexturedBackgroundOff(self) -> None: ... + def TexturedBackgroundOn(self) -> None: ... + def Transparent(self) -> int: ... + def TwoSidedLightingOff(self) -> None: ... + def TwoSidedLightingOn(self) -> None: ... + def UpdateLightsGeometryToFollowCamera(self) -> int: ... + def UseDepthPeelingForVolumesOff(self) -> None: ... + def UseDepthPeelingForVolumesOn(self) -> None: ... + def UseDepthPeelingOff(self) -> None: ... + def UseDepthPeelingOn(self) -> None: ... + def UseFXAAOff(self) -> None: ... + def UseFXAAOn(self) -> None: ... + def UseHiddenLineRemovalOff(self) -> None: ... + def UseHiddenLineRemovalOn(self) -> None: ... + def UseImageBasedLightingOff(self) -> None: ... + def UseImageBasedLightingOn(self) -> None: ... + def UseOITOff(self) -> None: ... + def UseOITOn(self) -> None: ... + def UseSSAOOff(self) -> None: ... + def UseSSAOOn(self) -> None: ... + def UseShadowsOff(self) -> None: ... + def UseShadowsOn(self) -> None: ... + def ViewToPose(self, wx:float, wy:float, wz:float) -> None: ... + @overload + def ViewToWorld(self) -> None: ... + @overload + def ViewToWorld(self, wx:float, wy:float, wz:float) -> None: ... + def VisibleActorCount(self) -> int: ... + def VisibleVolumeCount(self) -> int: ... + def WorldToPose(self, wx:float, wy:float, wz:float) -> None: ... + @overload + def WorldToView(self) -> None: ... + @overload + def WorldToView(self, wx:float, wy:float, wz:float) -> None: ... + def ZoomToBoxUsingViewAngle(self, box:'vtkRecti', offsetRatio:float=1.0) -> None: ... + +class vtkRendererCollection(vtkmodules.vtkCommonCore.vtkCollection): + first_renderer:'getset_descriptor' + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, a:'vtkRenderer') -> None: ... + def GetFirstRenderer(self) -> 'vtkRenderer': ... + def GetNextItem(self) -> 'vtkRenderer': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRendererCollection': ... + def Render(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRendererCollection': ... + +class vtkRendererDelegate(vtkmodules.vtkCommonCore.vtkObject): + used:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUsed(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRendererDelegate': ... + def Render(self, r:'vtkRenderer') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRendererDelegate': ... + def SetUsed(self, _arg:bool) -> None: ... + def UsedOff(self) -> None: ... + def UsedOn(self) -> None: ... + +class vtkRendererSource(vtkmodules.vtkCommonExecutionModel.vtkAlgorithm): + depth_values:'getset_descriptor' + depth_values_in_scalars:'getset_descriptor' + input:'getset_descriptor' + m_time:'getset_descriptor' + output:'getset_descriptor' + render_flag:'getset_descriptor' + whole_window:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DepthValuesInScalarsOff(self) -> None: ... + def DepthValuesInScalarsOn(self) -> None: ... + def DepthValuesOff(self) -> None: ... + def DepthValuesOn(self) -> None: ... + def DepthValuesOnlyOff(self) -> None: ... + def DepthValuesOnlyOn(self) -> None: ... + def GetDepthValues(self) -> int: ... + def GetDepthValuesInScalars(self) -> int: ... + def GetDepthValuesOnly(self) -> int: ... + def GetInput(self) -> 'vtkRenderer': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutput(self) -> 'vtkImageData': ... + def GetRenderFlag(self) -> int: ... + def GetWholeWindow(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRendererSource': ... + def RenderFlagOff(self) -> None: ... + def RenderFlagOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRendererSource': ... + def SetDepthValues(self, _arg:int) -> None: ... + def SetDepthValuesInScalars(self, _arg:int) -> None: ... + def SetDepthValuesOnly(self, _arg:int) -> None: ... + def SetInput(self, __a:'vtkRenderer') -> None: ... + def SetRenderFlag(self, _arg:int) -> None: ... + def SetWholeWindow(self, _arg:int) -> None: ... + def WholeWindowOff(self) -> None: ... + def WholeWindowOn(self) -> None: ... + +class vtkResizingWindowToImageFilter(vtkmodules.vtkCommonExecutionModel.vtkAlgorithm): + input:'getset_descriptor' + input_buffer_type:'getset_descriptor' + output:'getset_descriptor' + size:'getset_descriptor' + size_limit:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInput(self) -> 'vtkWindow': ... + def GetInputBufferType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutput(self) -> 'vtkImageData': ... + def GetSize(self) -> Tuple[int, int]: ... + def GetSizeLimit(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkResizingWindowToImageFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkResizingWindowToImageFilter': ... + def SetInput(self, input:'vtkWindow') -> None: ... + def SetInputBufferType(self, _arg:int) -> None: ... + def SetInputBufferTypeToRGB(self) -> None: ... + def SetInputBufferTypeToRGBA(self) -> None: ... + def SetInputBufferTypeToZBuffer(self) -> None: ... + @overload + def SetSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetSize(self, _arg:Sequence[int]) -> None: ... + def SetSizeLimit(self, _arg:int) -> None: ... + +class vtkScenePicker(vtkmodules.vtkCommonCore.vtkObject): + enable_vertex_picking:'getset_descriptor' + renderer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def EnableVertexPickingOff(self) -> None: ... + def EnableVertexPickingOn(self) -> None: ... + def GetCellId(self, displayPos:MutableSequence[int]) -> int: ... + def GetEnableVertexPicking(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderer(self) -> 'vtkRenderer': ... + def GetVertexId(self, displayPos:MutableSequence[int]) -> int: ... + def GetViewProp(self, displayPos:MutableSequence[int]) -> 'vtkProp': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkScenePicker': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkScenePicker': ... + def SetEnableVertexPicking(self, _arg:int) -> None: ... + def SetRenderer(self, __a:'vtkRenderer') -> None: ... + +class vtkSelectVisiblePoints(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + m_time:'getset_descriptor' + renderer:'getset_descriptor' + select_invisible:'getset_descriptor' + selection:'getset_descriptor' + selection_window:'getset_descriptor' + tolerance:'getset_descriptor' + tolerance_world:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderer(self) -> 'vtkRenderer': ... + def GetSelectInvisible(self) -> int: ... + def GetSelection(self) -> Tuple[int, int, int, int]: ... + def GetSelectionWindow(self) -> int: ... + def GetTolerance(self) -> float: ... + def GetToleranceMaxValue(self) -> float: ... + def GetToleranceMinValue(self) -> float: ... + def GetToleranceWorld(self) -> float: ... + def GetToleranceWorldMaxValue(self) -> float: ... + def GetToleranceWorldMinValue(self) -> float: ... + def Initialize(self, getZbuff:bool) -> Pointer: ... + def IsA(self, type:str) -> int: ... + def IsPointOccluded(self, x:Sequence[float], zPtr:Sequence[float]) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSelectVisiblePoints': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSelectVisiblePoints': ... + def SelectInvisibleOff(self) -> None: ... + def SelectInvisibleOn(self) -> None: ... + def SelectionWindowOff(self) -> None: ... + def SelectionWindowOn(self) -> None: ... + def SetRenderer(self, ren:'vtkRenderer') -> None: ... + def SetSelectInvisible(self, _arg:int) -> None: ... + @overload + def SetSelection(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int) -> None: ... + @overload + def SetSelection(self, _arg:Sequence[int]) -> None: ... + def SetSelectionWindow(self, _arg:int) -> None: ... + def SetTolerance(self, _arg:float) -> None: ... + def SetToleranceWorld(self, _arg:float) -> None: ... + +class vtkShaderProperty(vtkmodules.vtkCommonCore.vtkObject): + fragment_custom_uniforms:'getset_descriptor' + fragment_shader_code:'getset_descriptor' + geometry_custom_uniforms:'getset_descriptor' + geometry_shader_code:'getset_descriptor' + number_of_shader_replacements:'getset_descriptor' + shader_m_time:'getset_descriptor' + tess_control_custom_uniforms:'getset_descriptor' + tess_control_shader_code:'getset_descriptor' + tess_evaluation_custom_uniforms:'getset_descriptor' + tess_evaluation_shader_code:'getset_descriptor' + vertex_custom_uniforms:'getset_descriptor' + vertex_shader_code:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddFragmentShaderReplacement(self, originalValue:str, replaceFirst:bool, replacementValue:str, replaceAll:bool) -> None: ... + def AddGeometryShaderReplacement(self, originalValue:str, replaceFirst:bool, replacementValue:str, replaceAll:bool) -> None: ... + def AddTessControlShaderReplacement(self, originalValue:str, replaceFirst:bool, replacementValue:str, replaceAll:bool) -> None: ... + def AddTessEvaluationShaderReplacement(self, originalValue:str, replaceFirst:bool, replacementValue:str, replaceAll:bool) -> None: ... + def AddVertexShaderReplacement(self, originalValue:str, replaceFirst:bool, replacementValue:str, replaceAll:bool) -> None: ... + def ClearAllFragmentShaderReplacements(self) -> None: ... + def ClearAllGeometryShaderReplacements(self) -> None: ... + def ClearAllShaderReplacements(self) -> None: ... + def ClearAllTessControlShaderReplacements(self) -> None: ... + def ClearAllTessEvalShaderReplacements(self) -> None: ... + def ClearAllVertexShaderReplacements(self) -> None: ... + def ClearFragmentShaderReplacement(self, originalValue:str, replaceFirst:bool) -> None: ... + def ClearGeometryShaderReplacement(self, originalValue:str, replaceFirst:bool) -> None: ... + def ClearTessControlShaderReplacement(self, originalValue:str, replaceFirst:bool) -> None: ... + def ClearTessEvaluationShaderReplacement(self, originalValue:str, replaceFirst:bool) -> None: ... + def ClearVertexShaderReplacement(self, originalValue:str, replaceFirst:bool) -> None: ... + def DeepCopy(self, p:'vtkShaderProperty') -> None: ... + def GetFragmentCustomUniforms(self) -> 'vtkUniforms': ... + def GetFragmentShaderCode(self) -> str: ... + def GetGeometryCustomUniforms(self) -> 'vtkUniforms': ... + def GetGeometryShaderCode(self) -> str: ... + def GetNthShaderReplacement(self, index:int, name:str, replaceFirst:bool, replacementValue:str, replaceAll:bool) -> None: ... + def GetNthShaderReplacementTypeAsString(self, index:int) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfShaderReplacements(self) -> int: ... + def GetShaderMTime(self) -> int: ... + def GetTessControlCustomUniforms(self) -> 'vtkUniforms': ... + def GetTessControlShaderCode(self) -> str: ... + def GetTessEvaluationCustomUniforms(self) -> 'vtkUniforms': ... + def GetTessEvaluationShaderCode(self) -> str: ... + def GetVertexCustomUniforms(self) -> 'vtkUniforms': ... + def GetVertexShaderCode(self) -> str: ... + def HasFragmentShaderCode(self) -> bool: ... + def HasGeometryShaderCode(self) -> bool: ... + def HasTessControlShaderCode(self) -> bool: ... + def HasTessEvalShaderCode(self) -> bool: ... + def HasVertexShaderCode(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkShaderProperty': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkShaderProperty': ... + def SetFragmentShaderCode(self, _arg:str) -> None: ... + def SetGeometryShaderCode(self, _arg:str) -> None: ... + def SetTessControlShaderCode(self, _arg:str) -> None: ... + def SetTessEvaluationShaderCode(self, _arg:str) -> None: ... + def SetVertexShaderCode(self, _arg:str) -> None: ... + +class vtkSkybox(vtkActor): + class Projection(int): ... + Cube:'Projection' + Floor:'Projection' + Sphere:'Projection' + StereoSphere:'Projection' + bounds:'getset_descriptor' + floor_plane:'getset_descriptor' + floor_right:'getset_descriptor' + floor_tex_coord_scale:'getset_descriptor' + gamma_correct:'getset_descriptor' + projection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GammaCorrectOff(self) -> None: ... + def GammaCorrectOn(self) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetFloorPlane(self) -> Tuple[float, float, float, float]: ... + def GetFloorRight(self) -> Tuple[float, float, float]: ... + def GetFloorTexCoordScale(self) -> Tuple[float, float]: ... + def GetGammaCorrect(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProjection(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSkybox': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSkybox': ... + @overload + def SetFloorPlane(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetFloorPlane(self, _arg:Sequence[float]) -> None: ... + @overload + def SetFloorRight(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetFloorRight(self, _arg:Sequence[float]) -> None: ... + @overload + def SetFloorTexCoordScale(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetFloorTexCoordScale(self, _arg:Sequence[float]) -> None: ... + def SetGammaCorrect(self, _arg:bool) -> None: ... + def SetProjection(self, _arg:int) -> None: ... + def SetProjectionToCube(self) -> None: ... + def SetProjectionToFloor(self) -> None: ... + def SetProjectionToSphere(self) -> None: ... + def SetProjectionToStereoSphere(self) -> None: ... + +class vtkStateStorage(object): + def __init__(self) -> None: ... + def Clear(self) -> None: ... + +class vtkStereoCompositor(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def Anaglyph(self, rgbLeftNResult:'vtkUnsignedCharArray', rgbRight:'vtkUnsignedCharArray', colorSaturation:float, colorMask:Sequence[int]) -> bool: ... + def Checkerboard(self, rgbLeftNResult:'vtkUnsignedCharArray', rgbRight:'vtkUnsignedCharArray', size:Sequence[int]) -> bool: ... + def Dresden(self, rgbLeftNResult:'vtkUnsignedCharArray', rgbRight:'vtkUnsignedCharArray', size:Sequence[int]) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Interlaced(self, rgbLeftNResult:'vtkUnsignedCharArray', rgbRight:'vtkUnsignedCharArray', size:Sequence[int]) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStereoCompositor': ... + def RedBlue(self, rgbLeftNResult:'vtkUnsignedCharArray', rgbRight:'vtkUnsignedCharArray') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStereoCompositor': ... + def SplitViewportHorizontal(self, rgbLeftNResult:'vtkUnsignedCharArray', rgbRight:'vtkUnsignedCharArray', size:Sequence[int]) -> bool: ... + +class vtkStringToImage(vtkmodules.vtkCommonCore.vtkObject): + scale_to_power_of_two:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBounds(self, property:'vtkTextProperty', string:str, dpi:int) -> 'vtkVector2i': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScaleToPowerOfTwo(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStringToImage': ... + def RenderString(self, property:'vtkTextProperty', string:str, dpi:int, data:'vtkImageData', text_dims:MutableSequence[int]=...) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStringToImage': ... + def SetScaleToPowerOfTwo(self, scale:bool) -> None: ... + +class vtkTDxInteractorStyle(vtkmodules.vtkCommonCore.vtkObject): + settings:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSettings(self) -> 'vtkTDxInteractorStyleSettings': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTDxInteractorStyle': ... + def OnButtonPressedEvent(self, button:int) -> None: ... + def OnButtonReleasedEvent(self, button:int) -> None: ... + def ProcessEvent(self, renderer:'vtkRenderer', event:int, calldata:Pointer) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTDxInteractorStyle': ... + def SetSettings(self, settings:'vtkTDxInteractorStyleSettings') -> None: ... + +class vtkTDxInteractorStyleCamera(vtkTDxInteractorStyle): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTDxInteractorStyleCamera': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTDxInteractorStyleCamera': ... + +class vtkTDxInteractorStyleSettings(vtkmodules.vtkCommonCore.vtkObject): + angle_sensitivity:'getset_descriptor' + translation_x_sensitivity:'getset_descriptor' + translation_y_sensitivity:'getset_descriptor' + translation_z_sensitivity:'getset_descriptor' + use_rotation_x:'getset_descriptor' + use_rotation_y:'getset_descriptor' + use_rotation_z:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAngleSensitivity(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTranslationXSensitivity(self) -> float: ... + def GetTranslationYSensitivity(self) -> float: ... + def GetTranslationZSensitivity(self) -> float: ... + def GetUseRotationX(self) -> bool: ... + def GetUseRotationY(self) -> bool: ... + def GetUseRotationZ(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTDxInteractorStyleSettings': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTDxInteractorStyleSettings': ... + def SetAngleSensitivity(self, _arg:float) -> None: ... + def SetTranslationXSensitivity(self, _arg:float) -> None: ... + def SetTranslationYSensitivity(self, _arg:float) -> None: ... + def SetTranslationZSensitivity(self, _arg:float) -> None: ... + def SetUseRotationX(self, _arg:bool) -> None: ... + def SetUseRotationY(self, _arg:bool) -> None: ... + def SetUseRotationZ(self, _arg:bool) -> None: ... + +class vtkTDxMotionEventInfo(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkTDxMotionEventInfo') -> None: ... + +class vtkTexturedActor2D(vtkActor2D): + m_time:'getset_descriptor' + texture:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTexture(self) -> 'vtkTexture': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTexturedActor2D': ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTexturedActor2D': ... + def SetTexture(self, texture:'vtkTexture') -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkTextActor(vtkTexturedActor2D): + TEXT_SCALE_MODE_NONE:int + TEXT_SCALE_MODE_PROP:int + TEXT_SCALE_MODE_VIEWPORT:int + alignment_point:'getset_descriptor' + input:'getset_descriptor' + maximum_line_height:'getset_descriptor' + minimum_size:'getset_descriptor' + orientation:'getset_descriptor' + scaled_text_property:'getset_descriptor' + text_property:'getset_descriptor' + text_scale_mode:'getset_descriptor' + use_border_align:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeScaledFont(self, viewport:'vtkViewport') -> None: ... + def DisplayToSpecified(self, pos:MutableSequence[float], vport:'vtkViewport', specified:int) -> None: ... + def GetAlignmentPoint(self) -> int: ... + def GetBoundingBox(self, vport:'vtkViewport', bbox:MutableSequence[float]) -> None: ... + @staticmethod + def GetFontScale(viewport:'vtkViewport') -> float: ... + def GetInput(self) -> str: ... + def GetMaximumLineHeight(self) -> float: ... + def GetMinimumSize(self) -> Tuple[int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientation(self) -> float: ... + def GetScaledTextProperty(self) -> 'vtkTextProperty': ... + def GetSize(self, vport:'vtkViewport', size:MutableSequence[float]) -> None: ... + def GetTextProperty(self) -> 'vtkTextProperty': ... + def GetTextScaleMode(self) -> int: ... + def GetTextScaleModeMaxValue(self) -> int: ... + def GetTextScaleModeMinValue(self) -> int: ... + def GetUseBorderAlign(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTextActor': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTextActor': ... + def SetAlignmentPoint(self, point:int) -> None: ... + @overload + def SetConstrainedFontSize(self, __a:'vtkViewport', targetWidth:int, targetHeight:int) -> int: ... + @overload + @staticmethod + def SetConstrainedFontSize(__a:'vtkTextActor', __b:'vtkViewport', targetWidth:int, targetHeight:int) -> int: ... + def SetInput(self, inputString:str) -> None: ... + def SetMaximumLineHeight(self, _arg:float) -> None: ... + @overload + def SetMinimumSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetMinimumSize(self, _arg:Sequence[int]) -> None: ... + def SetNonLinearFontScale(self, exponent:float, target:int) -> None: ... + def SetOrientation(self, orientation:float) -> None: ... + def SetTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetTextScaleMode(self, _arg:int) -> None: ... + def SetTextScaleModeToNone(self) -> None: ... + def SetTextScaleModeToProp(self) -> None: ... + def SetTextScaleModeToViewport(self) -> None: ... + def SetUseBorderAlign(self, _arg:int) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def SpecifiedToDisplay(self, pos:MutableSequence[float], vport:'vtkViewport', specified:int) -> None: ... + def UseBorderAlignOff(self) -> None: ... + def UseBorderAlignOn(self) -> None: ... + +class vtkTextActor3D(vtkProp3D): + bounds:'getset_descriptor' + force_opaque:'getset_descriptor' + force_translucent:'getset_descriptor' + input:'getset_descriptor' + rendered_dpi:'getset_descriptor' + text_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ForceOpaqueOff(self) -> None: ... + def ForceOpaqueOn(self) -> None: ... + def ForceTranslucentOff(self) -> None: ... + def ForceTranslucentOn(self) -> None: ... + def GetBoundingBox(self, bbox:MutableSequence[int]) -> int: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetForceOpaque(self) -> bool: ... + def GetForceTranslucent(self) -> bool: ... + def GetInput(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GetRenderedDPI() -> int: ... + def GetTextProperty(self) -> 'vtkTextProperty': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTextActor3D': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTextActor3D': ... + def SetForceOpaque(self, opaque:bool) -> None: ... + def SetForceTranslucent(self, trans:bool) -> None: ... + def SetInput(self, _arg:str) -> None: ... + def SetTextProperty(self, p:'vtkTextProperty') -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkTextMapper(vtkMapper2D): + input:'getset_descriptor' + m_time:'getset_descriptor' + text_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetHeight(self, v:'vtkViewport') -> int: ... + def GetInput(self) -> str: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSize(self, __a:'vtkViewport', size:MutableSequence[int]) -> None: ... + def GetTextProperty(self) -> 'vtkTextProperty': ... + def GetWidth(self, v:'vtkViewport') -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTextMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOverlay(self, __a:'vtkViewport', __b:'vtkActor2D') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTextMapper': ... + @overload + def SetConstrainedFontSize(self, __a:'vtkViewport', targetWidth:int, targetHeight:int) -> int: ... + @overload + @staticmethod + def SetConstrainedFontSize(__a:'vtkTextMapper', __b:'vtkViewport', targetWidth:int, targetHeight:int) -> int: ... + def SetInput(self, _arg:str) -> None: ... + @staticmethod + def SetRelativeFontSize(__a:'vtkTextMapper', __b:'vtkViewport', winSize:Sequence[int], stringSize:MutableSequence[int], sizeFactor:float=0.0) -> int: ... + def SetTextProperty(self, p:'vtkTextProperty') -> None: ... + def ShallowCopy(self, m:'vtkAbstractMapper') -> None: ... + +class vtkTextProperty(vtkmodules.vtkCommonCore.vtkObject): + background_color:'getset_descriptor' + background_opacity:'getset_descriptor' + background_rgba:'getset_descriptor' + bold:'getset_descriptor' + cell_offset:'getset_descriptor' + color:'getset_descriptor' + font_family:'getset_descriptor' + font_family_as_string:'getset_descriptor' + font_file:'getset_descriptor' + font_size:'getset_descriptor' + frame:'getset_descriptor' + frame_color:'getset_descriptor' + frame_width:'getset_descriptor' + interior_lines_color:'getset_descriptor' + interior_lines_visibility:'getset_descriptor' + interior_lines_width:'getset_descriptor' + italic:'getset_descriptor' + justification:'getset_descriptor' + line_offset:'getset_descriptor' + line_spacing:'getset_descriptor' + opacity:'getset_descriptor' + orientation:'getset_descriptor' + shadow:'getset_descriptor' + shadow_offset:'getset_descriptor' + use_tight_bounding_box:'getset_descriptor' + vertical_justification:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BoldOff(self) -> None: ... + def BoldOn(self) -> None: ... + def FrameOff(self) -> None: ... + def FrameOn(self) -> None: ... + def GetBackgroundColor(self) -> Tuple[float, float, float]: ... + def GetBackgroundOpacity(self) -> float: ... + def GetBackgroundOpacityMaxValue(self) -> float: ... + def GetBackgroundOpacityMinValue(self) -> float: ... + @overload + def GetBackgroundRGBA(self, rgba:MutableSequence[float]) -> None: ... + @overload + def GetBackgroundRGBA(self, r:float, g:float, b:float, a:float) -> None: ... + def GetBold(self) -> int: ... + def GetCellOffset(self) -> float: ... + def GetColor(self) -> Tuple[float, float, float]: ... + def GetFontFamily(self) -> int: ... + @overload + def GetFontFamilyAsString(self) -> str: ... + @overload + @staticmethod + def GetFontFamilyAsString(f:int) -> str: ... + @staticmethod + def GetFontFamilyFromString(f:str) -> int: ... + def GetFontFamilyMinValue(self) -> int: ... + def GetFontFile(self) -> str: ... + def GetFontSize(self) -> int: ... + def GetFontSizeMaxValue(self) -> int: ... + def GetFontSizeMinValue(self) -> int: ... + def GetFrame(self) -> int: ... + def GetFrameColor(self) -> Tuple[float, float, float]: ... + def GetFrameWidth(self) -> int: ... + def GetFrameWidthMaxValue(self) -> int: ... + def GetFrameWidthMinValue(self) -> int: ... + def GetInteriorLinesColor(self) -> Tuple[float, float, float]: ... + def GetInteriorLinesVisibility(self) -> bool: ... + def GetInteriorLinesWidth(self) -> int: ... + def GetItalic(self) -> int: ... + def GetJustification(self) -> int: ... + def GetJustificationAsString(self) -> str: ... + def GetJustificationMaxValue(self) -> int: ... + def GetJustificationMinValue(self) -> int: ... + def GetLineOffset(self) -> float: ... + def GetLineSpacing(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOpacity(self) -> float: ... + def GetOpacityMaxValue(self) -> float: ... + def GetOpacityMinValue(self) -> float: ... + def GetOrientation(self) -> float: ... + def GetShadow(self) -> int: ... + def GetShadowColor(self, color:MutableSequence[float]) -> None: ... + def GetShadowOffset(self) -> Tuple[int, int]: ... + def GetUseTightBoundingBox(self) -> int: ... + def GetVerticalJustification(self) -> int: ... + def GetVerticalJustificationAsString(self) -> str: ... + def GetVerticalJustificationMaxValue(self) -> int: ... + def GetVerticalJustificationMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def ItalicOff(self) -> None: ... + def ItalicOn(self) -> None: ... + def NewInstance(self) -> 'vtkTextProperty': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTextProperty': ... + @overload + def SetBackgroundColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetBackgroundColor(self, _arg:Sequence[float]) -> None: ... + def SetBackgroundOpacity(self, _arg:float) -> None: ... + @overload + def SetBackgroundRGBA(self, rgba:MutableSequence[float]) -> None: ... + @overload + def SetBackgroundRGBA(self, r:float, g:float, b:float, a:float) -> None: ... + def SetBold(self, _arg:int) -> None: ... + def SetCellOffset(self, _arg:float) -> None: ... + @overload + def SetColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetColor(self, _arg:Sequence[float]) -> None: ... + def SetFontFamily(self, t:int) -> None: ... + def SetFontFamilyAsString(self, _arg:str) -> None: ... + def SetFontFamilyToArial(self) -> None: ... + def SetFontFamilyToCourier(self) -> None: ... + def SetFontFamilyToTimes(self) -> None: ... + def SetFontFile(self, _arg:str) -> None: ... + def SetFontSize(self, _arg:int) -> None: ... + def SetFrame(self, _arg:int) -> None: ... + @overload + def SetFrameColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetFrameColor(self, _arg:Sequence[float]) -> None: ... + def SetFrameWidth(self, _arg:int) -> None: ... + @overload + def SetInteriorLinesColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetInteriorLinesColor(self, _arg:Sequence[float]) -> None: ... + def SetInteriorLinesVisibility(self, _arg:bool) -> None: ... + def SetInteriorLinesWidth(self, _arg:int) -> None: ... + def SetItalic(self, _arg:int) -> None: ... + def SetJustification(self, _arg:int) -> None: ... + def SetJustificationToCentered(self) -> None: ... + def SetJustificationToLeft(self) -> None: ... + def SetJustificationToRight(self) -> None: ... + def SetLineOffset(self, _arg:float) -> None: ... + def SetLineSpacing(self, _arg:float) -> None: ... + def SetOpacity(self, _arg:float) -> None: ... + def SetOrientation(self, _arg:float) -> None: ... + def SetShadow(self, _arg:int) -> None: ... + @overload + def SetShadowOffset(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetShadowOffset(self, _arg:Sequence[int]) -> None: ... + def SetUseTightBoundingBox(self, _arg:int) -> None: ... + def SetVerticalJustification(self, _arg:int) -> None: ... + def SetVerticalJustificationToBottom(self) -> None: ... + def SetVerticalJustificationToCentered(self) -> None: ... + def SetVerticalJustificationToTop(self) -> None: ... + def ShadowOff(self) -> None: ... + def ShadowOn(self) -> None: ... + def ShallowCopy(self, tprop:'vtkTextProperty') -> None: ... + def UseTightBoundingBoxOff(self) -> None: ... + def UseTightBoundingBoxOn(self) -> None: ... + +class vtkTextPropertyCollection(vtkmodules.vtkCommonCore.vtkCollection): + last_item:'getset_descriptor' + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, a:'vtkTextProperty') -> None: ... + def GetItem(self, idx:int) -> 'vtkTextProperty': ... + def GetLastItem(self) -> 'vtkTextProperty': ... + def GetNextItem(self) -> 'vtkTextProperty': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTextPropertyCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTextPropertyCollection': ... + +class vtkTextRenderer(vtkmodules.vtkCommonCore.vtkObject): + class Backend(int): ... + Default:'Backend' + Detect:'Backend' + FreeType:'Backend' + MathText:'Backend' + UserBackend:'Backend' + default_backend:'getset_descriptor' + instance:'getset_descriptor' + scale_to_power_of_two:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DetectBackend(self, str:str) -> int: ... + def FreeTypeIsSupported(self) -> bool: ... + def GetBoundingBox(self, tprop:'vtkTextProperty', str:str, bbox:MutableSequence[int], dpi:int, backend:int=...) -> bool: ... + def GetConstrainedFontSize(self, str:str, tprop:'vtkTextProperty', targetWidth:int, targetHeight:int, dpi:int, backend:int=...) -> int: ... + def GetDefaultBackend(self) -> int: ... + @staticmethod + def GetInstance() -> 'vtkTextRenderer': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MathTextIsSupported(self) -> bool: ... + def NewInstance(self) -> 'vtkTextRenderer': ... + def RenderString(self, tprop:'vtkTextProperty', str:str, data:'vtkImageData', textDims:MutableSequence[int], dpi:int, backend:int=...) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTextRenderer': ... + def SetDefaultBackend(self, _arg:int) -> None: ... + def SetScaleToPowerOfTwo(self, scale:bool) -> None: ... + def StringToPath(self, tprop:'vtkTextProperty', str:str, path:'vtkPath', dpi:int, backend:int=...) -> bool: ... + +class vtkTextRendererCleanup(object): + def __init__(self) -> None: ... + +class vtkTexture(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + class VTKTextureBlendingMode(int): ... + ClampToBorder:int + ClampToEdge:int + MirroredRepeat:int + NumberOfWrapModes:int + Repeat:int + VTK_TEXTURE_BLENDING_MODE_ADD:'VTKTextureBlendingMode' + VTK_TEXTURE_BLENDING_MODE_ADD_SIGNED:'VTKTextureBlendingMode' + VTK_TEXTURE_BLENDING_MODE_INTERPOLATE:'VTKTextureBlendingMode' + VTK_TEXTURE_BLENDING_MODE_MODULATE:'VTKTextureBlendingMode' + VTK_TEXTURE_BLENDING_MODE_NONE:'VTKTextureBlendingMode' + VTK_TEXTURE_BLENDING_MODE_REPLACE:'VTKTextureBlendingMode' + VTK_TEXTURE_BLENDING_MODE_SUBTRACT:'VTKTextureBlendingMode' + blending_mode:'getset_descriptor' + border_color:'getset_descriptor' + color_mode:'getset_descriptor' + cube_map:'getset_descriptor' + edge_clamp:'getset_descriptor' + input:'getset_descriptor' + interpolate:'getset_descriptor' + lookup_table:'getset_descriptor' + mapped_scalars:'getset_descriptor' + maximum_anisotropic_filtering:'getset_descriptor' + mipmap:'getset_descriptor' + premultiplied_alpha:'getset_descriptor' + quality:'getset_descriptor' + repeat:'getset_descriptor' + restrict_power_of2_image_smaller:'getset_descriptor' + texture_unit:'getset_descriptor' + transform:'getset_descriptor' + use_srgb_color_space:'getset_descriptor' + wrap:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CubeMapOff(self) -> None: ... + def CubeMapOn(self) -> None: ... + def EdgeClampOff(self) -> None: ... + def EdgeClampOn(self) -> None: ... + def GetBlendingMode(self) -> int: ... + def GetBorderColor(self) -> Tuple[float, float, float, float]: ... + def GetColorMode(self) -> int: ... + def GetCubeMap(self) -> bool: ... + def GetEdgeClamp(self) -> int: ... + def GetInput(self) -> 'vtkImageData': ... + def GetInterpolate(self) -> int: ... + def GetLookupTable(self) -> 'vtkScalarsToColors': ... + def GetMappedScalars(self) -> 'vtkUnsignedCharArray': ... + def GetMaximumAnisotropicFiltering(self) -> float: ... + def GetMipmap(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPremultipliedAlpha(self) -> bool: ... + def GetQuality(self) -> int: ... + def GetRepeat(self) -> int: ... + def GetRestrictPowerOf2ImageSmaller(self) -> int: ... + def GetTextureUnit(self) -> int: ... + def GetTransform(self) -> 'vtkTransform': ... + def GetUseSRGBColorSpace(self) -> bool: ... + def GetWrap(self) -> int: ... + def GetWrapMaxValue(self) -> int: ... + def GetWrapMinValue(self) -> int: ... + def InterpolateOff(self) -> None: ... + def InterpolateOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsTranslucent(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Load(self, __a:'vtkRenderer') -> None: ... + def MapScalarsToColors(self, scalars:'vtkDataArray') -> Pointer: ... + def MipmapOff(self) -> None: ... + def MipmapOn(self) -> None: ... + def NewInstance(self) -> 'vtkTexture': ... + def PostRender(self, __a:'vtkRenderer') -> None: ... + def PremultipliedAlphaOff(self) -> None: ... + def PremultipliedAlphaOn(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer') -> None: ... + def RepeatOff(self) -> None: ... + def RepeatOn(self) -> None: ... + def RestrictPowerOf2ImageSmallerOff(self) -> None: ... + def RestrictPowerOf2ImageSmallerOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTexture': ... + def SetBlendingMode(self, _arg:int) -> None: ... + @overload + def SetBorderColor(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetBorderColor(self, _arg:Sequence[float]) -> None: ... + def SetColorMode(self, _arg:int) -> None: ... + def SetColorModeToDefault(self) -> None: ... + def SetColorModeToDirectScalars(self) -> None: ... + def SetColorModeToMapScalars(self) -> None: ... + def SetCubeMap(self, val:bool) -> None: ... + def SetEdgeClamp(self, __a:int) -> None: ... + def SetInterpolate(self, _arg:int) -> None: ... + def SetLookupTable(self, __a:'vtkScalarsToColors') -> None: ... + def SetMaximumAnisotropicFiltering(self, _arg:float) -> None: ... + def SetMipmap(self, _arg:bool) -> None: ... + def SetPremultipliedAlpha(self, _arg:bool) -> None: ... + def SetQuality(self, _arg:int) -> None: ... + def SetQualityTo16Bit(self) -> None: ... + def SetQualityTo32Bit(self) -> None: ... + def SetQualityToDefault(self) -> None: ... + def SetRepeat(self, r:int) -> None: ... + def SetRestrictPowerOf2ImageSmaller(self, _arg:int) -> None: ... + def SetTransform(self, transform:'vtkTransform') -> None: ... + def SetUseSRGBColorSpace(self, _arg:bool) -> None: ... + def SetWrap(self, _arg:int) -> None: ... + def UseSRGBColorSpaceOff(self) -> None: ... + def UseSRGBColorSpaceOn(self) -> None: ... + +class vtkTransformCoordinateSystems(vtkmodules.vtkCommonExecutionModel.vtkPointSetAlgorithm): + input_coordinate_system:'getset_descriptor' + m_time:'getset_descriptor' + output_coordinate_system:'getset_descriptor' + viewport:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInputCoordinateSystem(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputCoordinateSystem(self) -> int: ... + def GetViewport(self) -> 'vtkViewport': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTransformCoordinateSystems': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransformCoordinateSystems': ... + def SetInputCoordinateSystem(self, _arg:int) -> None: ... + def SetInputCoordinateSystemToDisplay(self) -> None: ... + def SetInputCoordinateSystemToViewport(self) -> None: ... + def SetInputCoordinateSystemToWorld(self) -> None: ... + def SetOutputCoordinateSystem(self, _arg:int) -> None: ... + def SetOutputCoordinateSystemToDisplay(self) -> None: ... + def SetOutputCoordinateSystemToViewport(self) -> None: ... + def SetOutputCoordinateSystemToWorld(self) -> None: ... + def SetViewport(self, viewport:'vtkViewport') -> None: ... + +class vtkTransformInterpolator(vtkmodules.vtkCommonCore.vtkObject): + INTERPOLATION_TYPE_LINEAR:int + INTERPOLATION_TYPE_MANUAL:int + INTERPOLATION_TYPE_SPLINE:int + interpolation_type:'getset_descriptor' + m_time:'getset_descriptor' + maximum_t:'getset_descriptor' + minimum_t:'getset_descriptor' + number_of_transforms:'getset_descriptor' + position_interpolator:'getset_descriptor' + rotation_interpolator:'getset_descriptor' + scale_interpolator:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddTransform(self, t:float, xform:'vtkTransform') -> None: ... + @overload + def AddTransform(self, t:float, matrix:'vtkMatrix4x4') -> None: ... + @overload + def AddTransform(self, t:float, prop3D:'vtkProp3D') -> None: ... + def GetInterpolationType(self) -> int: ... + def GetInterpolationTypeMaxValue(self) -> int: ... + def GetInterpolationTypeMinValue(self) -> int: ... + def GetMTime(self) -> int: ... + def GetMaximumT(self) -> float: ... + def GetMinimumT(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTransforms(self) -> int: ... + def GetPositionInterpolator(self) -> 'vtkTupleInterpolator': ... + def GetRotationInterpolator(self) -> 'vtkQuaternionInterpolator': ... + def GetScaleInterpolator(self) -> 'vtkTupleInterpolator': ... + def Initialize(self) -> None: ... + def InterpolateTransform(self, t:float, xform:'vtkTransform') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTransformInterpolator': ... + def RemoveTransform(self, t:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransformInterpolator': ... + def SetInterpolationType(self, _arg:int) -> None: ... + def SetInterpolationTypeToLinear(self) -> None: ... + def SetInterpolationTypeToManual(self) -> None: ... + def SetInterpolationTypeToSpline(self) -> None: ... + def SetPositionInterpolator(self, __a:'vtkTupleInterpolator') -> None: ... + def SetRotationInterpolator(self, __a:'vtkQuaternionInterpolator') -> None: ... + def SetScaleInterpolator(self, __a:'vtkTupleInterpolator') -> None: ... + +class vtkTupleInterpolator(vtkmodules.vtkCommonCore.vtkObject): + INTERPOLATION_TYPE_LINEAR:int + INTERPOLATION_TYPE_SPLINE:int + interpolating_spline:'getset_descriptor' + interpolation_type:'getset_descriptor' + maximum_t:'getset_descriptor' + minimum_t:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddTuple(self, t:float, tuple:MutableSequence[float]) -> None: ... + def GetInterpolatingSpline(self) -> 'vtkSpline': ... + def GetInterpolationType(self) -> int: ... + def GetMaximumT(self) -> float: ... + def GetMinimumT(self) -> float: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def Initialize(self) -> None: ... + def InterpolateTuple(self, t:float, tuple:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTupleInterpolator': ... + def RemoveTuple(self, t:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTupleInterpolator': ... + def SetInterpolatingSpline(self, __a:'vtkSpline') -> None: ... + def SetInterpolationType(self, type:int) -> None: ... + def SetInterpolationTypeToLinear(self) -> None: ... + def SetInterpolationTypeToSpline(self) -> None: ... + def SetNumberOfComponents(self, numComp:int) -> None: ... + +class vtkUniforms(vtkmodules.vtkCommonCore.vtkObject): + class TupleType(int): ... + NumberOfTupleTypes:'TupleType' + TupleTypeInvalid:'TupleType' + TupleTypeMatrix:'TupleType' + TupleTypeScalar:'TupleType' + TupleTypeVector:'TupleType' + number_of_uniforms:'getset_descriptor' + uniform_list_m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNthUniformName(self, uniformIndex:int) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfUniforms(self) -> int: ... + @overload + def GetUniform(self, name:str, value:MutableSequence[int]) -> bool: ... + @overload + def GetUniform(self, name:str, value:MutableSequence[float]) -> bool: ... + def GetUniform1fv(self, name:str, f:MutableSequence[float]) -> bool: ... + def GetUniform1iv(self, name:str, f:MutableSequence[int]) -> bool: ... + def GetUniform2f(self, name:str, v:MutableSequence[float]) -> bool: ... + def GetUniform2fv(self, name:str, f:MutableSequence[float]) -> bool: ... + def GetUniform2i(self, name:str, v:MutableSequence[int]) -> bool: ... + def GetUniform3f(self, name:str, v:MutableSequence[float]) -> bool: ... + def GetUniform3fv(self, name:str, f:MutableSequence[float]) -> bool: ... + def GetUniform3uc(self, name:str, v:MutableSequence[int]) -> bool: ... + def GetUniform4f(self, name:str, v:MutableSequence[float]) -> bool: ... + def GetUniform4fv(self, name:str, f:MutableSequence[float]) -> bool: ... + def GetUniform4uc(self, name:str, v:MutableSequence[int]) -> bool: ... + def GetUniformListMTime(self) -> int: ... + @overload + def GetUniformMatrix(self, name:str, v:'vtkMatrix3x3') -> bool: ... + @overload + def GetUniformMatrix(self, name:str, v:'vtkMatrix4x4') -> bool: ... + def GetUniformMatrix3x3(self, name:str, v:MutableSequence[float]) -> bool: ... + def GetUniformMatrix4x4(self, name:str, v:MutableSequence[float]) -> bool: ... + def GetUniformMatrix4x4v(self, name:str, f:MutableSequence[float]) -> bool: ... + def GetUniformNumberOfComponents(self, name:str) -> int: ... + def GetUniformNumberOfTuples(self, name:str) -> int: ... + def GetUniformScalarType(self, name:str) -> int: ... + def GetUniformTupleType(self, name:str) -> 'TupleType': ... + def GetUniformf(self, name:str, v:float) -> bool: ... + def GetUniformi(self, name:str, v:int) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUniforms': ... + def RemoveAllUniforms(self) -> None: ... + def RemoveUniform(self, name:str) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUniforms': ... + @staticmethod + def ScalarTypeToString(scalarType:int) -> str: ... + @overload + def SetUniform(self, name:str, tt:vtkUniforms.TupleType, nbComponents:int, value:Sequence[int]) -> None: ... + @overload + def SetUniform(self, name:str, tt:vtkUniforms.TupleType, nbComponents:int, value:Sequence[float]) -> None: ... + def SetUniform1fv(self, name:str, count:int, f:Sequence[float]) -> None: ... + def SetUniform1iv(self, name:str, count:int, f:Sequence[int]) -> None: ... + def SetUniform2f(self, name:str, v:Sequence[float]) -> None: ... + def SetUniform2i(self, name:str, v:Sequence[int]) -> None: ... + def SetUniform3f(self, name:str, v:Sequence[float]) -> None: ... + def SetUniform3uc(self, name:str, v:Sequence[int]) -> None: ... + def SetUniform4f(self, name:str, v:Sequence[float]) -> None: ... + def SetUniform4uc(self, name:str, v:Sequence[int]) -> None: ... + @overload + def SetUniformMatrix(self, name:str, v:'vtkMatrix3x3') -> None: ... + @overload + def SetUniformMatrix(self, name:str, v:'vtkMatrix4x4') -> None: ... + def SetUniformMatrix3x3(self, name:str, v:MutableSequence[float]) -> None: ... + def SetUniformMatrix4x4(self, name:str, v:MutableSequence[float]) -> None: ... + def SetUniformMatrix4x4v(self, name:str, count:int, v:MutableSequence[float]) -> None: ... + def SetUniformf(self, name:str, v:float) -> None: ... + def SetUniformi(self, name:str, v:int) -> None: ... + @staticmethod + def StringToScalarType(s:str) -> int: ... + @staticmethod + def StringToTupleType(s:str) -> 'TupleType': ... + @staticmethod + def TupleTypeToString(tt:'TupleType') -> str: ... + +class vtkViewDependentErrorMetric(vtkmodules.vtkCommonDataModel.vtkGenericSubdivisionErrorMetric): + pixel_tolerance:'getset_descriptor' + viewport:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetError(self, leftPoint:MutableSequence[float], midPoint:MutableSequence[float], rightPoint:MutableSequence[float], alpha:float) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPixelTolerance(self) -> float: ... + def GetViewport(self) -> 'vtkViewport': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkViewDependentErrorMetric': ... + def RequiresEdgeSubdivision(self, leftPoint:MutableSequence[float], midPoint:MutableSequence[float], rightPoint:MutableSequence[float], alpha:float) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkViewDependentErrorMetric': ... + def SetPixelTolerance(self, value:float) -> None: ... + def SetViewport(self, viewport:'vtkViewport') -> None: ... + +class vtkVolume(vtkProp3D): + array_size:'getset_descriptor' + bounds:'getset_descriptor' + corrected_scalar_opacity_array:'getset_descriptor' + gradient_opacity_array:'getset_descriptor' + gradient_opacity_constant:'getset_descriptor' + gray_array:'getset_descriptor' + m_time:'getset_descriptor' + mapper:'getset_descriptor' + max_x_bound:'getset_descriptor' + max_y_bound:'getset_descriptor' + max_z_bound:'getset_descriptor' + min_x_bound:'getset_descriptor' + min_y_bound:'getset_descriptor' + min_z_bound:'getset_descriptor' + property:'getset_descriptor' + redraw_m_time:'getset_descriptor' + rgb_array:'getset_descriptor' + scalar_opacity_array:'getset_descriptor' + supports_selection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetArraySize(self) -> float: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetCorrectedScalarOpacityArray(self, __a:int) -> Pointer: ... + @overload + def GetCorrectedScalarOpacityArray(self) -> Pointer: ... + @overload + def GetGradientOpacityArray(self, __a:int) -> Pointer: ... + @overload + def GetGradientOpacityArray(self) -> Pointer: ... + @overload + def GetGradientOpacityConstant(self, __a:int) -> float: ... + @overload + def GetGradientOpacityConstant(self) -> float: ... + @overload + def GetGrayArray(self, __a:int) -> Pointer: ... + @overload + def GetGrayArray(self) -> Pointer: ... + def GetMTime(self) -> int: ... + def GetMapper(self) -> 'vtkAbstractVolumeMapper': ... + def GetMaxXBound(self) -> float: ... + def GetMaxYBound(self) -> float: ... + def GetMaxZBound(self) -> float: ... + def GetMinXBound(self) -> float: ... + def GetMinYBound(self) -> float: ... + def GetMinZBound(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProperty(self) -> 'vtkVolumeProperty': ... + @overload + def GetRGBArray(self, __a:int) -> Pointer: ... + @overload + def GetRGBArray(self) -> Pointer: ... + def GetRedrawMTime(self) -> int: ... + @overload + def GetScalarOpacityArray(self, __a:int) -> Pointer: ... + @overload + def GetScalarOpacityArray(self) -> Pointer: ... + def GetSupportsSelection(self) -> bool: ... + def GetVolumes(self, vc:'vtkPropCollection') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVolume': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderVolumetricGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVolume': ... + def SetMapper(self, mapper:'vtkAbstractVolumeMapper') -> None: ... + def SetProperty(self, property:'vtkVolumeProperty') -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def Update(self) -> None: ... + def UpdateScalarOpacityforSampleSize(self, ren:'vtkRenderer', sample_distance:float) -> None: ... + def UpdateTransferFunctions(self, ren:'vtkRenderer') -> None: ... + +class vtkVolumeCollection(vtkPropCollection): + next_item:'getset_descriptor' + next_volume:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, a:'vtkVolume') -> None: ... + def GetNextItem(self) -> 'vtkVolume': ... + def GetNextVolume(self) -> 'vtkVolume': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVolumeCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVolumeCollection': ... + +class vtkVolumeProperty(vtkmodules.vtkCommonCore.vtkObject): + class TransferMode(int): ... + TF_1D:'TransferMode' + TF_2D:'TransferMode' + ambient:'getset_descriptor' + clipped_voxel_intensity:'getset_descriptor' + color:'getset_descriptor' + color_channels:'getset_descriptor' + diffuse:'getset_descriptor' + disable_gradient_opacity:'getset_descriptor' + gradient_opacity:'getset_descriptor' + gradient_opacity_m_time:'getset_descriptor' + gray_transfer_function:'getset_descriptor' + gray_transfer_function_m_time:'getset_descriptor' + independent_components:'getset_descriptor' + interpolation_type:'getset_descriptor' + iso_surface_values:'getset_descriptor' + label_color_m_time:'getset_descriptor' + label_gradient_opacity_m_time:'getset_descriptor' + label_scalar_opacity_m_time:'getset_descriptor' + m_time:'getset_descriptor' + number_of_labels:'getset_descriptor' + rgb_transfer_function:'getset_descriptor' + rgb_transfer_function_m_time:'getset_descriptor' + scalar_opacity:'getset_descriptor' + scalar_opacity_m_time:'getset_descriptor' + scalar_opacity_unit_distance:'getset_descriptor' + scattering_anisotropy:'getset_descriptor' + shade:'getset_descriptor' + slice_function:'getset_descriptor' + specular:'getset_descriptor' + specular_power:'getset_descriptor' + stored_gradient_opacity:'getset_descriptor' + transfer_function2d:'getset_descriptor' + transfer_function_mode:'getset_descriptor' + use_clipped_voxel_intensity:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self, p:'vtkVolumeProperty') -> None: ... + @overload + def DisableGradientOpacityOff(self, index:int) -> None: ... + @overload + def DisableGradientOpacityOff(self) -> None: ... + @overload + def DisableGradientOpacityOn(self, index:int) -> None: ... + @overload + def DisableGradientOpacityOn(self) -> None: ... + @overload + def GetAmbient(self, index:int) -> float: ... + @overload + def GetAmbient(self) -> float: ... + def GetClippedVoxelIntensity(self) -> float: ... + @overload + def GetColorChannels(self, index:int) -> int: ... + @overload + def GetColorChannels(self) -> int: ... + def GetComponentWeight(self, index:int) -> float: ... + @overload + def GetDiffuse(self, index:int) -> float: ... + @overload + def GetDiffuse(self) -> float: ... + @overload + def GetDisableGradientOpacity(self, index:int) -> int: ... + @overload + def GetDisableGradientOpacity(self) -> int: ... + @overload + def GetGradientOpacity(self, index:int) -> 'vtkPiecewiseFunction': ... + @overload + def GetGradientOpacity(self) -> 'vtkPiecewiseFunction': ... + @overload + def GetGradientOpacityMTime(self, index:int) -> 'vtkTimeStamp': ... + @overload + def GetGradientOpacityMTime(self) -> 'vtkTimeStamp': ... + @overload + def GetGrayTransferFunction(self, index:int) -> 'vtkPiecewiseFunction': ... + @overload + def GetGrayTransferFunction(self) -> 'vtkPiecewiseFunction': ... + @overload + def GetGrayTransferFunctionMTime(self, index:int) -> 'vtkTimeStamp': ... + @overload + def GetGrayTransferFunctionMTime(self) -> 'vtkTimeStamp': ... + def GetIndependentComponents(self) -> int: ... + def GetIndependentComponentsMaxValue(self) -> int: ... + def GetIndependentComponentsMinValue(self) -> int: ... + def GetInterpolationType(self) -> int: ... + def GetInterpolationTypeAsString(self) -> str: ... + def GetInterpolationTypeMaxValue(self) -> int: ... + def GetInterpolationTypeMinValue(self) -> int: ... + def GetIsoSurfaceValues(self) -> 'vtkContourValues': ... + def GetLabelColor(self, label:int) -> 'vtkColorTransferFunction': ... + def GetLabelColorMTime(self) -> 'vtkTimeStamp': ... + def GetLabelGradientOpacity(self, label:int) -> 'vtkPiecewiseFunction': ... + def GetLabelGradientOpacityMTime(self) -> 'vtkTimeStamp': ... + def GetLabelScalarOpacity(self, label:int) -> 'vtkPiecewiseFunction': ... + def GetLabelScalarOpacityMTime(self) -> 'vtkTimeStamp': ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLabels(self) -> int: ... + @overload + def GetRGBTransferFunction(self, index:int) -> 'vtkColorTransferFunction': ... + @overload + def GetRGBTransferFunction(self) -> 'vtkColorTransferFunction': ... + @overload + def GetRGBTransferFunctionMTime(self, index:int) -> 'vtkTimeStamp': ... + @overload + def GetRGBTransferFunctionMTime(self) -> 'vtkTimeStamp': ... + @overload + def GetScalarOpacity(self, index:int) -> 'vtkPiecewiseFunction': ... + @overload + def GetScalarOpacity(self) -> 'vtkPiecewiseFunction': ... + @overload + def GetScalarOpacityMTime(self, index:int) -> 'vtkTimeStamp': ... + @overload + def GetScalarOpacityMTime(self) -> 'vtkTimeStamp': ... + @overload + def GetScalarOpacityUnitDistance(self, index:int) -> float: ... + @overload + def GetScalarOpacityUnitDistance(self) -> float: ... + def GetScatteringAnisotropy(self) -> float: ... + def GetScatteringAnisotropyMaxValue(self) -> float: ... + def GetScatteringAnisotropyMinValue(self) -> float: ... + @overload + def GetShade(self, index:int) -> int: ... + @overload + def GetShade(self) -> int: ... + def GetSliceFunction(self) -> 'vtkImplicitFunction': ... + @overload + def GetSpecular(self, index:int) -> float: ... + @overload + def GetSpecular(self) -> float: ... + @overload + def GetSpecularPower(self, index:int) -> float: ... + @overload + def GetSpecularPower(self) -> float: ... + @overload + def GetStoredGradientOpacity(self, index:int) -> 'vtkPiecewiseFunction': ... + @overload + def GetStoredGradientOpacity(self) -> 'vtkPiecewiseFunction': ... + @overload + def GetTransferFunction2D(self, index:int) -> 'vtkImageData': ... + @overload + def GetTransferFunction2D(self) -> 'vtkImageData': ... + def GetTransferFunctionMode(self) -> int: ... + def GetTransferFunctionModeMaxValue(self) -> int: ... + def GetTransferFunctionModeMinValue(self) -> int: ... + def GetUseClippedVoxelIntensity(self) -> int: ... + def HasGradientOpacity(self, index:int=0) -> bool: ... + def HasLabelGradientOpacity(self) -> bool: ... + def IndependentComponentsOff(self) -> None: ... + def IndependentComponentsOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVolumeProperty': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVolumeProperty': ... + @overload + def SetAmbient(self, index:int, value:float) -> None: ... + @overload + def SetAmbient(self, value:float) -> None: ... + def SetClippedVoxelIntensity(self, _arg:float) -> None: ... + @overload + def SetColor(self, index:int, function:'vtkPiecewiseFunction') -> None: ... + @overload + def SetColor(self, function:'vtkPiecewiseFunction') -> None: ... + @overload + def SetColor(self, index:int, function:'vtkColorTransferFunction') -> None: ... + @overload + def SetColor(self, function:'vtkColorTransferFunction') -> None: ... + def SetComponentWeight(self, index:int, value:float) -> None: ... + @overload + def SetDiffuse(self, index:int, value:float) -> None: ... + @overload + def SetDiffuse(self, value:float) -> None: ... + @overload + def SetDisableGradientOpacity(self, index:int, value:int) -> None: ... + @overload + def SetDisableGradientOpacity(self, value:int) -> None: ... + @overload + def SetGradientOpacity(self, index:int, function:'vtkPiecewiseFunction') -> None: ... + @overload + def SetGradientOpacity(self, function:'vtkPiecewiseFunction') -> None: ... + def SetIndependentComponents(self, _arg:int) -> None: ... + def SetInterpolationType(self, _arg:int) -> None: ... + def SetInterpolationTypeToLinear(self) -> None: ... + def SetInterpolationTypeToNearest(self) -> None: ... + def SetLabelColor(self, label:int, function:'vtkColorTransferFunction') -> None: ... + def SetLabelGradientOpacity(self, label:int, function:'vtkPiecewiseFunction') -> None: ... + def SetLabelScalarOpacity(self, label:int, function:'vtkPiecewiseFunction') -> None: ... + @overload + def SetScalarOpacity(self, index:int, function:'vtkPiecewiseFunction') -> None: ... + @overload + def SetScalarOpacity(self, function:'vtkPiecewiseFunction') -> None: ... + @overload + def SetScalarOpacityUnitDistance(self, index:int, distance:float) -> None: ... + @overload + def SetScalarOpacityUnitDistance(self, distance:float) -> None: ... + def SetScatteringAnisotropy(self, _arg:float) -> None: ... + @overload + def SetShade(self, index:int, value:int) -> None: ... + @overload + def SetShade(self, value:int) -> None: ... + def SetSliceFunction(self, _arg:'vtkImplicitFunction') -> None: ... + @overload + def SetSpecular(self, index:int, value:float) -> None: ... + @overload + def SetSpecular(self, value:float) -> None: ... + @overload + def SetSpecularPower(self, index:int, value:float) -> None: ... + @overload + def SetSpecularPower(self, value:float) -> None: ... + @overload + def SetTransferFunction2D(self, index:int, function:'vtkImageData') -> None: ... + @overload + def SetTransferFunction2D(self, function:'vtkImageData') -> None: ... + def SetTransferFunctionMode(self, _arg:int) -> None: ... + def SetTransferFunctionModeTo1D(self) -> None: ... + def SetTransferFunctionModeTo2D(self) -> None: ... + def SetUseClippedVoxelIntensity(self, _arg:int) -> None: ... + @overload + def ShadeOff(self, index:int) -> None: ... + @overload + def ShadeOff(self) -> None: ... + @overload + def ShadeOn(self, index:int) -> None: ... + @overload + def ShadeOn(self) -> None: ... + def UpdateMTimes(self) -> None: ... + def UseClippedVoxelIntensityOff(self) -> None: ... + def UseClippedVoxelIntensityOn(self) -> None: ... + +class vtkWindowLevelLookupTable(vtkmodules.vtkCommonCore.vtkLookupTable): + inverse_video:'getset_descriptor' + level:'getset_descriptor' + maximum_table_value:'getset_descriptor' + minimum_table_value:'getset_descriptor' + window:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ForceBuild(self) -> None: ... + def GetInverseVideo(self) -> int: ... + def GetLevel(self) -> float: ... + def GetMaximumTableValue(self) -> Tuple[float, float, float, float]: ... + def GetMinimumTableValue(self) -> Tuple[float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWindow(self) -> float: ... + def InverseVideoOff(self) -> None: ... + def InverseVideoOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWindowLevelLookupTable': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWindowLevelLookupTable': ... + def SetInverseVideo(self, iv:int) -> None: ... + def SetLevel(self, level:float) -> None: ... + @overload + def SetMaximumTableValue(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetMaximumTableValue(self, _arg:Sequence[float]) -> None: ... + @overload + def SetMinimumTableValue(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetMinimumTableValue(self, _arg:Sequence[float]) -> None: ... + def SetWindow(self, window:float) -> None: ... + +class vtkWindowToImageFilter(vtkmodules.vtkCommonExecutionModel.vtkAlgorithm): + fix_boundary:'getset_descriptor' + input:'getset_descriptor' + input_buffer_type:'getset_descriptor' + output:'getset_descriptor' + read_front_buffer:'getset_descriptor' + scale:'getset_descriptor' + should_rerender:'getset_descriptor' + viewport:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FixBoundaryOff(self) -> None: ... + def FixBoundaryOn(self) -> None: ... + def GetFixBoundary(self) -> bool: ... + def GetInput(self) -> 'vtkWindow': ... + def GetInputBufferType(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutput(self) -> 'vtkImageData': ... + def GetReadFrontBuffer(self) -> int: ... + def GetScale(self) -> Tuple[int, int]: ... + def GetShouldRerender(self) -> int: ... + def GetViewport(self) -> Tuple[float, float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWindowToImageFilter': ... + def ReadFrontBufferOff(self) -> None: ... + def ReadFrontBufferOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWindowToImageFilter': ... + def SetFixBoundary(self, _arg:bool) -> None: ... + def SetInput(self, input:'vtkWindow') -> None: ... + def SetInputBufferType(self, _arg:int) -> None: ... + def SetInputBufferTypeToRGB(self) -> None: ... + def SetInputBufferTypeToRGBA(self) -> None: ... + def SetInputBufferTypeToZBuffer(self) -> None: ... + def SetReadFrontBuffer(self, _arg:int) -> None: ... + @overload + def SetScale(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetScale(self, _arg:Sequence[int]) -> None: ... + @overload + def SetScale(self, scale:int) -> None: ... + def SetShouldRerender(self, _arg:int) -> None: ... + @overload + def SetViewport(self, __a:float, __b:float, __c:float, __d:float) -> None: ... + @overload + def SetViewport(self, __a:MutableSequence[float]) -> None: ... + def ShouldRerenderOff(self) -> None: ... + def ShouldRerenderOn(self) -> None: ... + +class vtkWorldPointPicker(vtkAbstractPicker): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWorldPointPicker': ... + @overload + def Pick(self, selectionX:float, selectionY:float, selectionZ:float, renderer:'vtkRenderer') -> int: ... + @overload + def Pick(self, selectionPt:MutableSequence[float], renderer:'vtkRenderer') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWorldPointPicker': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingExternal.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingExternal.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..1d1fe16 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingExternal.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingExternal.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingExternal.pyi new file mode 100644 index 0000000..43b09bb --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingExternal.pyi @@ -0,0 +1,174 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingCore +import vtkmodules.vtkRenderingOpenGL2 + +class ExternalVTKWidget(vtkmodules.vtkCommonCore.vtkObject): + render_window:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddRenderer(self) -> 'vtkExternalOpenGLRenderer': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderWindow(self) -> 'vtkExternalOpenGLRenderWindow': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'ExternalVTKWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'ExternalVTKWidget': ... + def SetRenderWindow(self, renWin:'vtkExternalOpenGLRenderWindow') -> None: ... + +class vtkExternalLight(vtkmodules.vtkRenderingCore.vtkLight): + class ReplaceModes(int): ... + ALL_PARAMS:'ReplaceModes' + INDIVIDUAL_PARAMS:'ReplaceModes' + ambient_color:'getset_descriptor' + ambient_color_set:'getset_descriptor' + attenuation_values:'getset_descriptor' + attenuation_values_set:'getset_descriptor' + cone_angle:'getset_descriptor' + cone_angle_set:'getset_descriptor' + diffuse_color:'getset_descriptor' + diffuse_color_set:'getset_descriptor' + exponent:'getset_descriptor' + exponent_set:'getset_descriptor' + focal_point:'getset_descriptor' + focal_point_set:'getset_descriptor' + intensity:'getset_descriptor' + intensity_set:'getset_descriptor' + light_index:'getset_descriptor' + position:'getset_descriptor' + position_set:'getset_descriptor' + positional:'getset_descriptor' + positional_set:'getset_descriptor' + replace_mode:'getset_descriptor' + specular_color:'getset_descriptor' + specular_color_set:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAmbientColorSet(self) -> bool: ... + def GetAttenuationValuesSet(self) -> bool: ... + def GetConeAngleSet(self) -> bool: ... + def GetDiffuseColorSet(self) -> bool: ... + def GetExponentSet(self) -> bool: ... + def GetFocalPointSet(self) -> bool: ... + def GetIntensitySet(self) -> bool: ... + def GetLightIndex(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPositionSet(self) -> bool: ... + def GetPositionalSet(self) -> bool: ... + def GetReplaceMode(self) -> int: ... + def GetSpecularColorSet(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExternalLight': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExternalLight': ... + @overload + def SetAmbientColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetAmbientColor(self, _arg:Sequence[float]) -> None: ... + @overload + def SetAttenuationValues(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetAttenuationValues(self, _arg:Sequence[float]) -> None: ... + def SetConeAngle(self, __a:float) -> None: ... + @overload + def SetDiffuseColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetDiffuseColor(self, _arg:Sequence[float]) -> None: ... + def SetExponent(self, __a:float) -> None: ... + @overload + def SetFocalPoint(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetFocalPoint(self, _arg:Sequence[float]) -> None: ... + def SetIntensity(self, __a:float) -> None: ... + def SetLightIndex(self, _arg:int) -> None: ... + @overload + def SetPosition(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetPosition(self, _arg:Sequence[float]) -> None: ... + def SetPositional(self, __a:int) -> None: ... + def SetReplaceMode(self, _arg:int) -> None: ... + @overload + def SetSpecularColor(self, __a:float, __b:float, __c:float) -> None: ... + @overload + def SetSpecularColor(self, _arg:Sequence[float]) -> None: ... + +class vtkExternalOpenGLCamera(vtkmodules.vtkRenderingOpenGL2.vtkOpenGLCamera): + projection_transform_matrix:'getset_descriptor' + view_transform_matrix:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExternalOpenGLCamera': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExternalOpenGLCamera': ... + def SetProjectionTransformMatrix(self, elements:Sequence[float]) -> None: ... + def SetViewTransformMatrix(self, elements:Sequence[float]) -> None: ... + +class vtkExternalOpenGLRenderWindow(vtkmodules.vtkRenderingOpenGL2.vtkGenericOpenGLRenderWindow): + automatic_window_position_and_resize:'getset_descriptor' + use_external_content:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutomaticWindowPositionAndResizeOff(self) -> None: ... + def AutomaticWindowPositionAndResizeOn(self) -> None: ... + def GetAutomaticWindowPositionAndResize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseExternalContent(self) -> bool: ... + def IsA(self, type:str) -> int: ... + def IsCurrent(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkExternalOpenGLRenderWindow': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExternalOpenGLRenderWindow': ... + def SetAutomaticWindowPositionAndResize(self, _arg:int) -> None: ... + def SetUseExternalContent(self, _arg:bool) -> None: ... + def Start(self) -> None: ... + def UseExternalContentOff(self) -> None: ... + def UseExternalContentOn(self) -> None: ... + +class vtkExternalOpenGLRenderer(vtkmodules.vtkRenderingOpenGL2.vtkOpenGLRenderer): + preserve_gl_camera_matrices:'getset_descriptor' + preserve_gl_lights:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddExternalLight(self, __a:'vtkExternalLight') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPreserveGLCameraMatrices(self) -> int: ... + def GetPreserveGLLights(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeCamera(self) -> 'vtkCamera': ... + def NewInstance(self) -> 'vtkExternalOpenGLRenderer': ... + def PreserveGLCameraMatricesOff(self) -> None: ... + def PreserveGLCameraMatricesOn(self) -> None: ... + def PreserveGLLightsOff(self) -> None: ... + def PreserveGLLightsOn(self) -> None: ... + def RemoveAllExternalLights(self) -> None: ... + def RemoveExternalLight(self, __a:'vtkExternalLight') -> None: ... + def Render(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkExternalOpenGLRenderer': ... + def SetPreserveGLCameraMatrices(self, _arg:int) -> None: ... + def SetPreserveGLLights(self, _arg:int) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingFreeType.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingFreeType.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..f77e5c1 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingFreeType.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingFreeType.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingFreeType.pyi new file mode 100644 index 0000000..b6b6383 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingFreeType.pyi @@ -0,0 +1,175 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkRenderingCore + +class vtkFreeTypeStringToImage(vtkmodules.vtkRenderingCore.vtkStringToImage): + scale_to_power_of_two:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self, utility:'vtkFreeTypeStringToImage') -> None: ... + def GetBounds(self, property:'vtkTextProperty', string:str, dpi:int) -> 'vtkVector2i': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFreeTypeStringToImage': ... + def RenderString(self, property:'vtkTextProperty', string:str, dpi:int, data:'vtkImageData', textDims:MutableSequence[int]=...) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFreeTypeStringToImage': ... + def SetScaleToPowerOfTwo(self, scale:bool) -> None: ... + +class vtkFreeTypeTools(vtkmodules.vtkCommonCore.vtkObject): + debug_textures:'getset_descriptor' + force_compiled_fonts:'getset_descriptor' + instance:'getset_descriptor' + maximum_number_of_bytes:'getset_descriptor' + maximum_number_of_faces:'getset_descriptor' + maximum_number_of_sizes:'getset_descriptor' + scale_to_power_two:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DebugTexturesOff(self) -> None: ... + def DebugTexturesOn(self) -> None: ... + def ForceCompiledFontsOff(self) -> None: ... + def ForceCompiledFontsOn(self) -> None: ... + def GetBoundingBox(self, tprop:'vtkTextProperty', str:str, dpi:int, bbox:MutableSequence[int]) -> bool: ... + def GetConstrainedFontSize(self, str:str, tprop:'vtkTextProperty', dpi:int, targetWidth:int, targetHeight:int) -> int: ... + def GetDebugTextures(self) -> bool: ... + def GetForceCompiledFonts(self) -> bool: ... + @staticmethod + def GetInstance() -> 'vtkFreeTypeTools': ... + def GetMaximumNumberOfBytes(self) -> int: ... + def GetMaximumNumberOfBytesMaxValue(self) -> int: ... + def GetMaximumNumberOfBytesMinValue(self) -> int: ... + def GetMaximumNumberOfFaces(self) -> int: ... + def GetMaximumNumberOfFacesMaxValue(self) -> int: ... + def GetMaximumNumberOfFacesMinValue(self) -> int: ... + def GetMaximumNumberOfSizes(self) -> int: ... + def GetMaximumNumberOfSizesMaxValue(self) -> int: ... + def GetMaximumNumberOfSizesMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScaleToPowerTwo(self) -> bool: ... + @staticmethod + def HashBuffer(buffer:Pointer, n:int, hash:int=0) -> int: ... + @staticmethod + def HashString(str:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MapIdToTextProperty(self, tprop_cache_id:int, tprop:'vtkTextProperty') -> None: ... + def MapTextPropertyToId(self, tprop:'vtkTextProperty', tprop_cache_id:MutableSequence[int]) -> None: ... + def NewInstance(self) -> 'vtkFreeTypeTools': ... + def RenderString(self, tprop:'vtkTextProperty', str:str, dpi:int, data:'vtkImageData', textDims:MutableSequence[int]=...) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFreeTypeTools': ... + def ScaleToPowerTwoOff(self) -> None: ... + def ScaleToPowerTwoOn(self) -> None: ... + def SetDebugTextures(self, _arg:bool) -> None: ... + def SetForceCompiledFonts(self, _arg:bool) -> None: ... + @staticmethod + def SetInstance(instance:'vtkFreeTypeTools') -> None: ... + def SetMaximumNumberOfBytes(self, _arg:int) -> None: ... + def SetMaximumNumberOfFaces(self, _arg:int) -> None: ... + def SetMaximumNumberOfSizes(self, _arg:int) -> None: ... + def SetScaleToPowerTwo(self, _arg:bool) -> None: ... + def StringToPath(self, tprop:'vtkTextProperty', str:str, dpi:int, path:'vtkPath') -> bool: ... + +class vtkFreeTypeToolsCleanup(object): + def __init__(self) -> None: ... + +class vtkMathTextFreeTypeTextRenderer(vtkmodules.vtkRenderingCore.vtkTextRenderer): + def __init__(self, **properties:Any) -> None: ... + def FreeTypeIsSupported(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MathTextIsSupported(self) -> bool: ... + def NewInstance(self) -> 'vtkMathTextFreeTypeTextRenderer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMathTextFreeTypeTextRenderer': ... + +class vtkMathTextUtilities(vtkmodules.vtkCommonCore.vtkObject): + instance:'getset_descriptor' + scale_to_power_of_two:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBoundingBox(self, tprop:'vtkTextProperty', str:str, dpi:int, bbox:MutableSequence[int]) -> bool: ... + def GetConstrainedFontSize(self, str:str, tprop:'vtkTextProperty', targetWidth:int, targetHeight:int, dpi:int) -> int: ... + @staticmethod + def GetInstance() -> 'vtkMathTextUtilities': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScaleToPowerOfTwo(self) -> bool: ... + def IsA(self, type:str) -> int: ... + def IsAvailable(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMathTextUtilities': ... + def RenderString(self, str:str, data:'vtkImageData', tprop:'vtkTextProperty', dpi:int, textDims:MutableSequence[int]=...) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMathTextUtilities': ... + @staticmethod + def SetInstance(instance:'vtkMathTextUtilities') -> None: ... + def SetScaleToPowerOfTwo(self, scale:bool) -> None: ... + def StringToPath(self, str:str, path:'vtkPath', tprop:'vtkTextProperty', dpi:int) -> bool: ... + +class vtkMathTextUtilitiesCleanup(object): + def __init__(self) -> None: ... + +class vtkScaledTextActor(vtkmodules.vtkRenderingCore.vtkTextActor): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkScaledTextActor': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkScaledTextActor': ... + +class vtkTextRendererStringToImage(vtkmodules.vtkRenderingCore.vtkStringToImage): + scale_to_power_of_two:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeepCopy(self, utility:'vtkTextRendererStringToImage') -> None: ... + def GetBounds(self, property:'vtkTextProperty', string:str, dpi:int) -> 'vtkVector2i': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTextRendererStringToImage': ... + def RenderString(self, property:'vtkTextProperty', string:str, dpi:int, data:'vtkImageData', textDims:MutableSequence[int]=...) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTextRendererStringToImage': ... + def SetScaleToPowerOfTwo(self, scale:bool) -> None: ... + +class vtkVectorText(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + text:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetText(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVectorText': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVectorText': ... + def SetText(self, _arg:str) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingGL2PSOpenGL2.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingGL2PSOpenGL2.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..b474e58 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingGL2PSOpenGL2.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingGL2PSOpenGL2.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingGL2PSOpenGL2.pyi new file mode 100644 index 0000000..ef2571e --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingGL2PSOpenGL2.pyi @@ -0,0 +1,33 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingOpenGL2 + +class vtkOpenGLGL2PSHelperImpl(vtkmodules.vtkRenderingOpenGL2.vtkOpenGLGL2PSHelper): + def __init__(self, **properties:Any) -> None: ... + def Draw3DPath(self, path:'vtkPath', actorMatrix:'vtkMatrix4x4', rasterPos:MutableSequence[float], actorColor:MutableSequence[int], ren:'vtkRenderer', label:str=...) -> None: ... + def DrawImage(self, input:'vtkImageData', pos:MutableSequence[float]) -> None: ... + def DrawPath(self, path:'vtkPath', rasterPos:MutableSequence[float], windowPos:MutableSequence[float], rgba:MutableSequence[int], scale:MutableSequence[float]=..., rotateAngle:float=0.0, strokeWidth:float=-1, label:str=...) -> None: ... + def DrawString(self, str:str, tprop:'vtkTextProperty', pos:MutableSequence[float], backgroundDepth:float, ren:'vtkRenderer') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLGL2PSHelperImpl': ... + @overload + def ProcessTransformFeedback(self, tfc:'vtkTransformFeedback', ren:'vtkRenderer', act:'vtkActor') -> None: ... + @overload + def ProcessTransformFeedback(self, tfc:'vtkTransformFeedback', ren:'vtkRenderer', col:MutableSequence[int]) -> None: ... + @overload + def ProcessTransformFeedback(self, tfc:'vtkTransformFeedback', ren:'vtkRenderer', col:MutableSequence[float]) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLGL2PSHelperImpl': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingGridAxes.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingGridAxes.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..df46e5f Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingGridAxes.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingGridAxes.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingGridAxes.pyi new file mode 100644 index 0000000..6eae1af --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingGridAxes.pyi @@ -0,0 +1,344 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingCore + +class vtkGridAxesActor2D(vtkmodules.vtkRenderingCore.vtkProp3D): + bounds:'getset_descriptor' + face:'getset_descriptor' + force_opaque:'getset_descriptor' + generate_edges:'getset_descriptor' + generate_grid:'getset_descriptor' + generate_ticks:'getset_descriptor' + grid_bounds:'getset_descriptor' + label_display_offset:'getset_descriptor' + label_mask:'getset_descriptor' + m_time:'getset_descriptor' + notation:'getset_descriptor' + precision:'getset_descriptor' + property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ForceOpaqueOff(self) -> None: ... + def ForceOpaqueOn(self) -> None: ... + def GenerateEdgesOff(self) -> None: ... + def GenerateEdgesOn(self) -> None: ... + def GenerateGridOff(self) -> None: ... + def GenerateGridOn(self) -> None: ... + def GenerateTicksOff(self) -> None: ... + def GenerateTicksOn(self) -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetFace(self) -> int: ... + def GetFaceMaxValue(self) -> int: ... + def GetFaceMinValue(self) -> int: ... + def GetForceOpaque(self) -> bool: ... + def GetGenerateEdges(self) -> bool: ... + def GetGenerateGrid(self) -> bool: ... + def GetGenerateTicks(self) -> bool: ... + def GetGridBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetLabelDisplayOffset(self) -> Tuple[int, int]: ... + def GetLabelMask(self) -> int: ... + def GetLabelTextProperty(self, axis:int) -> 'vtkTextProperty': ... + def GetMTime(self) -> int: ... + def GetNotation(self, axis:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPrecision(self, axis:int) -> int: ... + def GetProperty(self) -> 'vtkProperty': ... + def GetTitle(self, axis:int) -> str: ... + def GetTitleTextProperty(self, axis:int) -> 'vtkTextProperty': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGridAxesActor2D': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGridAxesActor2D': ... + def SetCustomTickPositions(self, axis:int, positions:'vtkDoubleArray') -> None: ... + def SetFace(self, _arg:int) -> None: ... + def SetForceOpaque(self, _arg:bool) -> None: ... + def SetGenerateEdges(self, val:bool) -> None: ... + def SetGenerateGrid(self, val:bool) -> None: ... + def SetGenerateTicks(self, val:bool) -> None: ... + @overload + def SetGridBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetGridBounds(self, _arg:Sequence[float]) -> None: ... + @overload + def SetLabelDisplayOffset(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetLabelDisplayOffset(self, _arg:Sequence[int]) -> None: ... + def SetLabelMask(self, _arg:int) -> None: ... + def SetLabelTextProperty(self, axis:int, __b:'vtkTextProperty') -> None: ... + def SetNotation(self, axis:int, notation:int) -> None: ... + def SetPrecision(self, axis:int, val:int) -> None: ... + def SetProperty(self, __a:'vtkProperty') -> None: ... + def SetTitle(self, axis:int, title:str) -> None: ... + def SetTitleTextProperty(self, axis:int, __b:'vtkTextProperty') -> None: ... + def UpdateGeometry(self, viewport:'vtkViewport', doRegularUpdate:bool) -> None: ... + +class vtkGridAxesActor3D(vtkmodules.vtkRenderingCore.vtkProp3D): + bounds:'getset_descriptor' + face_mask:'getset_descriptor' + force_opaque:'getset_descriptor' + generate_edges:'getset_descriptor' + generate_grid:'getset_descriptor' + generate_ticks:'getset_descriptor' + grid_bounds:'getset_descriptor' + label_display_offset:'getset_descriptor' + label_mask:'getset_descriptor' + label_unique_edges_only:'getset_descriptor' + notation:'getset_descriptor' + number_of_x_labels:'getset_descriptor' + number_of_y_labels:'getset_descriptor' + number_of_z_labels:'getset_descriptor' + precision:'getset_descriptor' + property:'getset_descriptor' + x_label_text_property:'getset_descriptor' + x_notation:'getset_descriptor' + x_precision:'getset_descriptor' + x_title:'getset_descriptor' + x_title_text_property:'getset_descriptor' + x_use_custom_labels:'getset_descriptor' + y_label_text_property:'getset_descriptor' + y_notation:'getset_descriptor' + y_precision:'getset_descriptor' + y_title:'getset_descriptor' + y_title_text_property:'getset_descriptor' + y_use_custom_labels:'getset_descriptor' + z_label_text_property:'getset_descriptor' + z_notation:'getset_descriptor' + z_precision:'getset_descriptor' + z_title:'getset_descriptor' + z_title_text_property:'getset_descriptor' + z_use_custom_labels:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ForceOpaqueOff(self) -> None: ... + def ForceOpaqueOn(self) -> None: ... + def GenerateEdgesOff(self) -> None: ... + def GenerateEdgesOn(self) -> None: ... + def GenerateGridOff(self) -> None: ... + def GenerateGridOn(self) -> None: ... + def GenerateTicksOff(self) -> None: ... + def GenerateTicksOn(self) -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetFaceMask(self) -> int: ... + def GetForceOpaque(self) -> bool: ... + def GetGenerateEdges(self) -> bool: ... + def GetGenerateGrid(self) -> bool: ... + def GetGenerateTicks(self) -> bool: ... + def GetGridBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetLabelDisplayOffset(self) -> Tuple[int, int]: ... + def GetLabelMask(self) -> int: ... + def GetLabelTextProperty(self, axis:int) -> 'vtkTextProperty': ... + def GetLabelUniqueEdgesOnly(self) -> bool: ... + def GetNotation(self, axis:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPrecision(self, axis:int) -> int: ... + def GetProperty(self) -> 'vtkProperty': ... + def GetRenderedBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetTitle(self, axis:int) -> str: ... + def GetTitleTextProperty(self, axis:int) -> 'vtkTextProperty': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGridAxesActor3D': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGridAxesActor3D': ... + def SetFaceMask(self, mask:int) -> None: ... + def SetForceOpaque(self, _arg:bool) -> None: ... + def SetGenerateEdges(self, val:bool) -> None: ... + def SetGenerateGrid(self, val:bool) -> None: ... + def SetGenerateTicks(self, val:bool) -> None: ... + @overload + def SetGridBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetGridBounds(self, _arg:Sequence[float]) -> None: ... + def SetLabel(self, axis:int, index:int, value:float) -> None: ... + @overload + def SetLabelDisplayOffset(self, xoffset:int, yoffset:int) -> None: ... + @overload + def SetLabelDisplayOffset(self, offset:Sequence[int]) -> None: ... + def SetLabelMask(self, mask:int) -> None: ... + def SetLabelTextProperty(self, axis:int, __b:'vtkTextProperty') -> None: ... + def SetLabelUniqueEdgesOnly(self, _arg:bool) -> None: ... + def SetNotation(self, axis:int, notation:int) -> None: ... + def SetNumberOfLabels(self, axis:int, val:int) -> None: ... + def SetNumberOfXLabels(self, val:int) -> None: ... + def SetNumberOfYLabels(self, val:int) -> None: ... + def SetNumberOfZLabels(self, val:int) -> None: ... + def SetPrecision(self, axis:int, val:int) -> None: ... + def SetProperty(self, __a:'vtkProperty') -> None: ... + def SetTitle(self, axis:int, title:str) -> None: ... + def SetTitleTextProperty(self, axis:int, __b:'vtkTextProperty') -> None: ... + def SetUseCustomLabels(self, axis:int, val:bool) -> None: ... + def SetXLabel(self, index:int, value:float) -> None: ... + def SetXLabelTextProperty(self, prop:'vtkTextProperty') -> None: ... + def SetXNotation(self, notation:int) -> None: ... + def SetXPrecision(self, val:int) -> None: ... + def SetXTitle(self, title:str) -> None: ... + def SetXTitleTextProperty(self, prop:'vtkTextProperty') -> None: ... + def SetXUseCustomLabels(self, val:bool) -> None: ... + def SetYLabel(self, index:int, value:float) -> None: ... + def SetYLabelTextProperty(self, prop:'vtkTextProperty') -> None: ... + def SetYNotation(self, notation:int) -> None: ... + def SetYPrecision(self, val:int) -> None: ... + def SetYTitle(self, title:str) -> None: ... + def SetYTitleTextProperty(self, prop:'vtkTextProperty') -> None: ... + def SetYUseCustomLabels(self, val:bool) -> None: ... + def SetZLabel(self, index:int, value:float) -> None: ... + def SetZLabelTextProperty(self, prop:'vtkTextProperty') -> None: ... + def SetZNotation(self, notation:int) -> None: ... + def SetZPrecision(self, val:int) -> None: ... + def SetZTitle(self, title:str) -> None: ... + def SetZTitleTextProperty(self, prop:'vtkTextProperty') -> None: ... + def SetZUseCustomLabels(self, val:bool) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def UpdateGeometry(self, vp:'vtkViewport') -> None: ... + +class vtkGridAxesHelper(vtkmodules.vtkCommonCore.vtkObject): + class Faces(int): ... + class LabelMasks(int): ... + MAX_X:'LabelMasks' + MAX_XY:'Faces' + MAX_Y:'LabelMasks' + MAX_YZ:'Faces' + MAX_Z:'LabelMasks' + MAX_ZX:'Faces' + MIN_X:'LabelMasks' + MIN_XY:'Faces' + MIN_Y:'LabelMasks' + MIN_YZ:'Faces' + MIN_Z:'LabelMasks' + MIN_ZX:'Faces' + active_axes:'getset_descriptor' + backface:'getset_descriptor' + face:'getset_descriptor' + grid_bounds:'getset_descriptor' + label_mask:'getset_descriptor' + label_visibilities:'getset_descriptor' + matrix:'getset_descriptor' + points:'getset_descriptor' + transformed_face_normal:'getset_descriptor' + transformed_points:'getset_descriptor' + viewport_normals:'getset_descriptor' + viewport_points:'getset_descriptor' + viewport_points_as_double:'getset_descriptor' + viewport_vectors:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetActiveAxes(self) -> 'vtkVector2i': ... + def GetBackface(self) -> bool: ... + def GetFace(self) -> int: ... + def GetFaceMaxValue(self) -> int: ... + def GetFaceMinValue(self) -> int: ... + def GetGridBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetLabelMask(self) -> int: ... + def GetLabelVisibilities(self) -> 'vtkTuple_IbLi4EE': ... + def GetMatrix(self) -> 'vtkMatrix4x4': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoints(self) -> 'vtkTuple_I11vtkVector3dLi4EE': ... + def GetTransformedFaceNormal(self) -> 'vtkVector3d': ... + def GetTransformedPoints(self) -> 'vtkTuple_I11vtkVector3dLi4EE': ... + def GetViewportNormals(self) -> 'vtkTuple_I11vtkVector2dLi4EE': ... + def GetViewportPoints(self) -> 'vtkTuple_I11vtkVector2iLi4EE': ... + def GetViewportPointsAsDouble(self) -> 'vtkTuple_I11vtkVector2dLi4EE': ... + def GetViewportVectors(self) -> 'vtkTuple_I11vtkVector2dLi4EE': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGridAxesHelper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGridAxesHelper': ... + def SetFace(self, _arg:int) -> None: ... + @overload + def SetGridBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetGridBounds(self, _arg:Sequence[float]) -> None: ... + def SetLabelMask(self, _arg:int) -> None: ... + def SetMatrix(self, __a:'vtkMatrix4x4') -> None: ... + def TransformPoint(self, point:'vtkVector3d') -> 'vtkVector3d': ... + def UpdateForViewport(self, viewport:'vtkViewport') -> bool: ... + +class vtkGridAxesPlaneActor2D(vtkmodules.vtkRenderingCore.vtkProp3D): + TICK_DIRECTION_BOTH:int + TICK_DIRECTION_INWARDS:int + TICK_DIRECTION_OUTWARDS:int + bounds:'getset_descriptor' + face:'getset_descriptor' + generate_edges:'getset_descriptor' + generate_grid:'getset_descriptor' + generate_ticks:'getset_descriptor' + grid_bounds:'getset_descriptor' + property:'getset_descriptor' + tick_direction:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateEdgesOff(self) -> None: ... + def GenerateEdgesOn(self) -> None: ... + def GenerateGridOff(self) -> None: ... + def GenerateGridOn(self) -> None: ... + def GenerateTicksOff(self) -> None: ... + def GenerateTicksOn(self) -> None: ... + def GetActors(self, __a:'vtkPropCollection') -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetFace(self) -> int: ... + def GetFaceMaxValue(self) -> int: ... + def GetFaceMinValue(self) -> int: ... + def GetGenerateEdges(self) -> bool: ... + def GetGenerateGrid(self) -> bool: ... + def GetGenerateTicks(self) -> bool: ... + def GetGridBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProperty(self) -> 'vtkProperty': ... + def GetTickDirection(self) -> int: ... + def GetTickDirectionMaxValue(self) -> int: ... + def GetTickDirectionMinValue(self) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGridAxesPlaneActor2D': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGridAxesPlaneActor2D': ... + def SetFace(self, _arg:int) -> None: ... + def SetGenerateEdges(self, _arg:bool) -> None: ... + def SetGenerateGrid(self, _arg:bool) -> None: ... + def SetGenerateTicks(self, _arg:bool) -> None: ... + @overload + def SetGridBounds(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetGridBounds(self, _arg:Sequence[float]) -> None: ... + def SetProperty(self, __a:'vtkProperty') -> None: ... + def SetTickDirection(self, _arg:int) -> None: ... + def SetTickPositions(self, axis:int, data:'vtkDoubleArray') -> None: ... + def UpdateGeometry(self, vp:'vtkViewport') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingHyperTreeGrid.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingHyperTreeGrid.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..4bdcc33 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingHyperTreeGrid.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingHyperTreeGrid.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingHyperTreeGrid.pyi new file mode 100644 index 0000000..f0670b2 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingHyperTreeGrid.pyi @@ -0,0 +1,53 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingCore + +class vtkHyperTreeGridMapper(vtkmodules.vtkRenderingCore.vtkMapper): + bounds:'getset_descriptor' + composite_data_display_attributes:'getset_descriptor' + input_connection:'getset_descriptor' + input_data_object:'getset_descriptor' + use_adaptive_decimation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FillInputPortInformation(self, port:int, info:'vtkInformation') -> int: ... + def GetBlockVisibility(self, index:int) -> bool: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetBoundsComposite(self, bounds:MutableSequence[float]) -> None: ... + def GetCompositeDataDisplayAttributes(self) -> 'vtkCompositeDataDisplayAttributes': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseAdaptiveDecimation(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHyperTreeGridMapper': ... + def RemoveBlockVisibilities(self) -> None: ... + def RemoveBlockVisibility(self, index:int) -> None: ... + def Render(self, ren:'vtkRenderer', act:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHyperTreeGridMapper': ... + def SetBlockVisibility(self, index:int, visible:bool) -> None: ... + def SetCompositeDataDisplayAttributes(self, attributes:'vtkCompositeDataDisplayAttributes') -> None: ... + @overload + def SetInputConnection(self, port:int, input:'vtkAlgorithmOutput') -> None: ... + @overload + def SetInputConnection(self, input:'vtkAlgorithmOutput') -> None: ... + @overload + def SetInputDataObject(self, port:int, input:'vtkDataObject') -> None: ... + @overload + def SetInputDataObject(self, input:'vtkDataObject') -> None: ... + def SetUseAdaptiveDecimation(self, _arg:bool) -> None: ... + def UseAdaptiveDecimationOff(self) -> None: ... + def UseAdaptiveDecimationOn(self) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingImage.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingImage.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..b804447 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingImage.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingImage.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingImage.pyi new file mode 100644 index 0000000..4d69ff7 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingImage.pyi @@ -0,0 +1,190 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkRenderingCore + +class vtkDepthImageToPointCloud(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + camera:'getset_descriptor' + cull_far_points:'getset_descriptor' + cull_near_points:'getset_descriptor' + m_time:'getset_descriptor' + output_points_precision:'getset_descriptor' + produce_color_scalars:'getset_descriptor' + produce_vertex_cell_array:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CullFarPointsOff(self) -> None: ... + def CullFarPointsOn(self) -> None: ... + def CullNearPointsOff(self) -> None: ... + def CullNearPointsOn(self) -> None: ... + def GetCamera(self) -> 'vtkCamera': ... + def GetCullFarPoints(self) -> bool: ... + def GetCullNearPoints(self) -> bool: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputPointsPrecision(self) -> int: ... + def GetProduceColorScalars(self) -> bool: ... + def GetProduceVertexCellArray(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDepthImageToPointCloud': ... + def ProduceColorScalarsOff(self) -> None: ... + def ProduceColorScalarsOn(self) -> None: ... + def ProduceVertexCellArrayOff(self) -> None: ... + def ProduceVertexCellArrayOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDepthImageToPointCloud': ... + def SetCamera(self, __a:'vtkCamera') -> None: ... + def SetCullFarPoints(self, _arg:bool) -> None: ... + def SetCullNearPoints(self, _arg:bool) -> None: ... + def SetOutputPointsPrecision(self, _arg:int) -> None: ... + def SetProduceColorScalars(self, _arg:bool) -> None: ... + def SetProduceVertexCellArray(self, _arg:bool) -> None: ... + +class vtkImageResliceMapper(vtkmodules.vtkRenderingCore.vtkImageMapper3D): + auto_adjust_image_quality:'getset_descriptor' + bounds:'getset_descriptor' + image_sample_factor:'getset_descriptor' + interpolator:'getset_descriptor' + jump_to_nearest_slice:'getset_descriptor' + m_time:'getset_descriptor' + resample_to_screen_pixels:'getset_descriptor' + separate_window_level_operation:'getset_descriptor' + slab_sample_factor:'getset_descriptor' + slab_thickness:'getset_descriptor' + slab_type:'getset_descriptor' + slice_plane:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutoAdjustImageQualityOff(self) -> None: ... + def AutoAdjustImageQualityOn(self) -> None: ... + def GetAutoAdjustImageQuality(self) -> int: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetImageSampleFactor(self) -> int: ... + def GetImageSampleFactorMaxValue(self) -> int: ... + def GetImageSampleFactorMinValue(self) -> int: ... + def GetIndexBounds(self, extent:MutableSequence[float]) -> None: ... + def GetInterpolator(self) -> 'vtkAbstractImageInterpolator': ... + def GetJumpToNearestSlice(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetResampleToScreenPixels(self) -> int: ... + def GetSeparateWindowLevelOperation(self) -> int: ... + def GetSlabSampleFactor(self) -> int: ... + def GetSlabSampleFactorMaxValue(self) -> int: ... + def GetSlabSampleFactorMinValue(self) -> int: ... + def GetSlabThickness(self) -> float: ... + def GetSlabType(self) -> int: ... + def GetSlabTypeAsString(self) -> str: ... + def GetSlabTypeMaxValue(self) -> int: ... + def GetSlabTypeMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def JumpToNearestSliceOff(self) -> None: ... + def JumpToNearestSliceOn(self) -> None: ... + def NewInstance(self) -> 'vtkImageResliceMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, renderer:'vtkRenderer', prop:'vtkImageSlice') -> None: ... + def ResampleToScreenPixelsOff(self) -> None: ... + def ResampleToScreenPixelsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageResliceMapper': ... + def SeparateWindowLevelOperationOff(self) -> None: ... + def SeparateWindowLevelOperationOn(self) -> None: ... + def SetAutoAdjustImageQuality(self, _arg:int) -> None: ... + def SetImageSampleFactor(self, _arg:int) -> None: ... + def SetInterpolator(self, interpolator:'vtkAbstractImageInterpolator') -> None: ... + def SetJumpToNearestSlice(self, _arg:int) -> None: ... + def SetResampleToScreenPixels(self, _arg:int) -> None: ... + def SetSeparateWindowLevelOperation(self, _arg:int) -> None: ... + def SetSlabSampleFactor(self, _arg:int) -> None: ... + def SetSlabThickness(self, _arg:float) -> None: ... + def SetSlabType(self, _arg:int) -> None: ... + def SetSlabTypeToMax(self) -> None: ... + def SetSlabTypeToMean(self) -> None: ... + def SetSlabTypeToMin(self) -> None: ... + def SetSlabTypeToSum(self) -> None: ... + def SetSlicePlane(self, plane:'vtkPlane') -> None: ... + +class vtkImageSliceCollection(vtkmodules.vtkRenderingCore.vtkPropCollection): + next_image:'getset_descriptor' + next_item:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, a:'vtkImageSlice') -> None: ... + def GetNextImage(self) -> 'vtkImageSlice': ... + def GetNextItem(self) -> 'vtkImageSlice': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageSliceCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageSliceCollection': ... + def Sort(self) -> None: ... + +class vtkImageStack(vtkmodules.vtkRenderingCore.vtkImageSlice): + active_image:'getset_descriptor' + active_layer:'getset_descriptor' + bounds:'getset_descriptor' + images:'getset_descriptor' + m_time:'getset_descriptor' + mapper:'getset_descriptor' + next_path:'getset_descriptor' + number_of_paths:'getset_descriptor' + property:'getset_descriptor' + redraw_m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddImage(self, prop:'vtkImageSlice') -> None: ... + def BuildPaths(self, paths:'vtkAssemblyPaths', path:'vtkAssemblyPath') -> None: ... + def GetActiveImage(self) -> 'vtkImageSlice': ... + def GetActiveLayer(self) -> int: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + @overload + def GetImages(self) -> 'vtkImageSliceCollection': ... + @overload + def GetImages(self, __a:'vtkPropCollection') -> None: ... + def GetMTime(self) -> int: ... + def GetMapper(self) -> 'vtkImageMapper3D': ... + def GetNextPath(self) -> 'vtkAssemblyPath': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfPaths(self) -> int: ... + def GetProperty(self) -> 'vtkImageProperty': ... + def GetRedrawMTime(self) -> int: ... + def HasImage(self, prop:'vtkImageSlice') -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def InitPathTraversal(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageStack': ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + def RemoveImage(self, prop:'vtkImageSlice') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport') -> int: ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageStack': ... + def SetActiveLayer(self, _arg:int) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingLICOpenGL2.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingLICOpenGL2.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..9dd6f81 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingLICOpenGL2.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingLICOpenGL2.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingLICOpenGL2.pyi new file mode 100644 index 0000000..faf3f83 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingLICOpenGL2.pyi @@ -0,0 +1,434 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkRenderingCore +import vtkmodules.vtkRenderingOpenGL2 + +class vtkBatchedSurfaceLICMapper(vtkmodules.vtkRenderingOpenGL2.vtkOpenGLBatchedPolyDataMapper): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkBatchedSurfaceLICMapper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkBatchedSurfaceLICMapper': ... + +class vtkCompositeSurfaceLICMapper(vtkmodules.vtkRenderingCore.vtkCompositePolyDataMapper): + lic_interface:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLICInterface(self) -> 'vtkSurfaceLICInterface': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositeSurfaceLICMapper': ... + def Render(self, ren:'vtkRenderer', act:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeSurfaceLICMapper': ... + +class vtkCompositeSurfaceLICMapperDelegator(vtkmodules.vtkRenderingOpenGL2.vtkOpenGLCompositePolyDataMapperDelegator): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositeSurfaceLICMapperDelegator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeSurfaceLICMapperDelegator': ... + def ShallowCopy(self, mapper:'vtkCompositePolyDataMapper') -> None: ... + +class vtkImageDataLIC2D(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm): + context:'getset_descriptor' + magnification:'getset_descriptor' + open_gl_extensions_supported:'getset_descriptor' + step_size:'getset_descriptor' + steps:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetContext(self) -> 'vtkRenderWindow': ... + def GetMagnification(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOpenGLExtensionsSupported(self) -> int: ... + def GetStepSize(self) -> float: ... + def GetSteps(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageDataLIC2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageDataLIC2D': ... + def SetContext(self, context:'vtkRenderWindow') -> int: ... + def SetMagnification(self, _arg:int) -> None: ... + def SetStepSize(self, _arg:float) -> None: ... + def SetSteps(self, _arg:int) -> None: ... + def TranslateInputExtent(self, inExt:Sequence[int], inWholeExtent:Sequence[int], outExt:MutableSequence[int]) -> None: ... + +class vtkLineIntegralConvolution2D(vtkmodules.vtkCommonCore.vtkObject): + ENHANCE_CONTRAST_OFF:int + ENHANCE_CONTRAST_ON:int + anti_alias:'getset_descriptor' + component_ids:'getset_descriptor' + context:'getset_descriptor' + enhance_contrast:'getset_descriptor' + enhanced_lic:'getset_descriptor' + high_contrast_enhancement_factor:'getset_descriptor' + low_contrast_enhancement_factor:'getset_descriptor' + mask_threshold:'getset_descriptor' + max_noise_value:'getset_descriptor' + noise_tex_parameters:'getset_descriptor' + normalize_vectors:'getset_descriptor' + number_of_steps:'getset_descriptor' + number_of_steps_max_value:'getset_descriptor' + number_of_steps_min_value:'getset_descriptor' + step_size:'getset_descriptor' + transform_vectors:'getset_descriptor' + vector_tex_parameters:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AntiAliasOff(self) -> None: ... + def AntiAliasOn(self) -> None: ... + def EnhanceContrastOff(self) -> None: ... + def EnhanceContrastOn(self) -> None: ... + def EnhancedLICOff(self) -> None: ... + def EnhancedLICOn(self) -> None: ... + @overload + def Execute(self, vectorTex:'vtkTextureObject', noiseTex:'vtkTextureObject') -> 'vtkTextureObject': ... + @overload + def Execute(self, extent:Sequence[int], vectorTex:'vtkTextureObject', noiseTex:'vtkTextureObject') -> 'vtkTextureObject': ... + def GetAntiAlias(self) -> int: ... + def GetAntiAliasMaxValue(self) -> int: ... + def GetAntiAliasMinValue(self) -> int: ... + def GetComponentIds(self) -> Tuple[int, int]: ... + def GetContext(self) -> 'vtkOpenGLRenderWindow': ... + def GetEnhanceContrast(self) -> int: ... + def GetEnhanceContrastMaxValue(self) -> int: ... + def GetEnhanceContrastMinValue(self) -> int: ... + def GetEnhancedLIC(self) -> int: ... + def GetEnhancedLICMaxValue(self) -> int: ... + def GetEnhancedLICMinValue(self) -> int: ... + def GetHighContrastEnhancementFactor(self) -> float: ... + def GetHighContrastEnhancementFactorMaxValue(self) -> float: ... + def GetHighContrastEnhancementFactorMinValue(self) -> float: ... + def GetLowContrastEnhancementFactor(self) -> float: ... + def GetLowContrastEnhancementFactorMaxValue(self) -> float: ... + def GetLowContrastEnhancementFactorMinValue(self) -> float: ... + def GetMaskThreshold(self) -> float: ... + def GetMaskThresholdMaxValue(self) -> float: ... + def GetMaskThresholdMinValue(self) -> float: ... + def GetMaxNoiseValue(self) -> float: ... + def GetMaxNoiseValueMaxValue(self) -> float: ... + def GetMaxNoiseValueMinValue(self) -> float: ... + def GetNormalizeVectors(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSteps(self) -> int: ... + def GetNumberOfStepsMaxValue(self) -> int: ... + def GetNumberOfStepsMinValue(self) -> int: ... + def GetStepSize(self) -> float: ... + def GetStepSizeMaxValue(self) -> float: ... + def GetStepSizeMinValue(self) -> float: ... + def GetTransformVectors(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsSupported(renWin:'vtkRenderWindow') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLineIntegralConvolution2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLineIntegralConvolution2D': ... + def SetAntiAlias(self, _arg:int) -> None: ... + @overload + def SetComponentIds(self, c0:int, c1:int) -> None: ... + @overload + def SetComponentIds(self, c:MutableSequence[int]) -> None: ... + def SetContext(self, context:'vtkOpenGLRenderWindow') -> None: ... + def SetEnhanceContrast(self, _arg:int) -> None: ... + def SetEnhancedLIC(self, _arg:int) -> None: ... + def SetHighContrastEnhancementFactor(self, _arg:float) -> None: ... + def SetLowContrastEnhancementFactor(self, _arg:float) -> None: ... + def SetMaskThreshold(self, _arg:float) -> None: ... + def SetMaxNoiseValue(self, _arg:float) -> None: ... + @staticmethod + def SetNoiseTexParameters(noise:'vtkTextureObject') -> None: ... + def SetNormalizeVectors(self, val:int) -> None: ... + def SetNumberOfSteps(self, _arg:int) -> None: ... + def SetStepSize(self, _arg:float) -> None: ... + def SetTransformVectors(self, val:int) -> None: ... + @staticmethod + def SetVectorTexParameters(vectors:'vtkTextureObject') -> None: ... + def WriteTimerLog(self, __a:str) -> None: ... + +class vtkPainterCommunicator(object): + is_null:'getset_descriptor' + mpi_finalized:'getset_descriptor' + mpi_initialized:'getset_descriptor' + rank:'getset_descriptor' + size:'getset_descriptor' + world_rank:'getset_descriptor' + world_size:'getset_descriptor' + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, other:'vtkPainterCommunicator') -> None: ... + def GetIsNull(self) -> bool: ... + def GetMPIFinalized(self) -> bool: ... + def GetMPIInitialized(self) -> bool: ... + def GetRank(self) -> int: ... + def GetSize(self) -> int: ... + def GetWorldRank(self) -> int: ... + def GetWorldSize(self) -> int: ... + +class vtkStructuredGridLIC2D(vtkmodules.vtkCommonExecutionModel.vtkStructuredGridAlgorithm): + context:'getset_descriptor' + fbo_success:'getset_descriptor' + lic_success:'getset_descriptor' + magnification:'getset_descriptor' + step_size:'getset_descriptor' + steps:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetContext(self) -> 'vtkRenderWindow': ... + def GetFBOSuccess(self) -> int: ... + def GetLICSuccess(self) -> int: ... + def GetMagnification(self) -> int: ... + def GetMagnificationMaxValue(self) -> int: ... + def GetMagnificationMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStepSize(self) -> float: ... + def GetSteps(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkStructuredGridLIC2D': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkStructuredGridLIC2D': ... + def SetContext(self, context:'vtkRenderWindow') -> int: ... + def SetMagnification(self, _arg:int) -> None: ... + def SetStepSize(self, _arg:float) -> None: ... + def SetSteps(self, _arg:int) -> None: ... + +class vtkSurfaceLICComposite(vtkmodules.vtkCommonCore.vtkObject): + COMPOSITE_AUTO:int + COMPOSITE_BALANCED:int + COMPOSITE_INPLACE:int + COMPOSITE_INPLACE_DISJOINT:int + context:'getset_descriptor' + data_set_extent:'getset_descriptor' + strategy:'getset_descriptor' + window_extent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildProgram(self, __a:MutableSequence[float]) -> int: ... + def GetCompositeExtent(self, i:int=0) -> 'vtkPixelExtent': ... + def GetContext(self) -> 'vtkOpenGLRenderWindow': ... + def GetDataSetExtent(self) -> 'vtkPixelExtent': ... + def GetDisjointGuardExtent(self, i:int=0) -> 'vtkPixelExtent': ... + def GetGuardExtent(self, i:int=0) -> 'vtkPixelExtent': ... + def GetNumberOfCompositeExtents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStrategy(self) -> int: ... + def GetWindowExtent(self) -> 'vtkPixelExtent': ... + def InitializeCompositeExtents(self, vectors:MutableSequence[float]) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSurfaceLICComposite': ... + def RestoreDefaultCommunicator(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSurfaceLICComposite': ... + def SetContext(self, __a:'vtkOpenGLRenderWindow') -> None: ... + def SetStrategy(self, val:int) -> None: ... + +class vtkSurfaceLICInterface(vtkmodules.vtkCommonCore.vtkObject): + COLOR_MODE_BLEND:int + COLOR_MODE_MAP:int + COMPOSITE_AUTO:int + COMPOSITE_BALANCED:int + COMPOSITE_INPLACE:int + COMPOSITE_INPLACE_DISJOINT:int + ENHANCE_CONTRAST_BOTH:int + ENHANCE_CONTRAST_COLOR:int + ENHANCE_CONTRAST_LIC:int + ENHANCE_CONTRAST_OFF:int + NOISE_TYPE_GAUSSIAN:int + NOISE_TYPE_PERLIN:int + NOISE_TYPE_UNIFORM:int + anti_alias:'getset_descriptor' + color_mode:'getset_descriptor' + composite_strategy:'getset_descriptor' + enable:'getset_descriptor' + enhance_contrast:'getset_descriptor' + enhanced_lic:'getset_descriptor' + generate_noise_texture:'getset_descriptor' + has_vectors:'getset_descriptor' + high_color_contrast_enhancement_factor:'getset_descriptor' + high_lic_contrast_enhancement_factor:'getset_descriptor' + impulse_noise_background_value:'getset_descriptor' + impulse_noise_probability:'getset_descriptor' + lic_intensity:'getset_descriptor' + low_color_contrast_enhancement_factor:'getset_descriptor' + low_lic_contrast_enhancement_factor:'getset_descriptor' + map_mode_bias:'getset_descriptor' + mask_color:'getset_descriptor' + mask_intensity:'getset_descriptor' + mask_on_surface:'getset_descriptor' + mask_threshold:'getset_descriptor' + max_noise_value:'getset_descriptor' + min_noise_value:'getset_descriptor' + noise_data_set:'getset_descriptor' + noise_generator_seed:'getset_descriptor' + noise_grain_size:'getset_descriptor' + noise_texture_size:'getset_descriptor' + noise_type:'getset_descriptor' + normalize_vectors:'getset_descriptor' + number_of_noise_levels:'getset_descriptor' + number_of_steps:'getset_descriptor' + step_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AntiAliasOff(self) -> None: ... + def AntiAliasOn(self) -> None: ... + def ApplyLIC(self) -> None: ... + def CanRenderSurfaceLIC(self, actor:'vtkActor') -> bool: ... + def CombineColorsAndLIC(self) -> None: ... + def CompletedGeometry(self) -> None: ... + def CopyToScreen(self) -> None: ... + def CreateCommunicator(self, __a:'vtkRenderer', __b:'vtkActor', data:'vtkDataObject') -> None: ... + def EnableOff(self) -> None: ... + def EnableOn(self) -> None: ... + def EnhancedLICOff(self) -> None: ... + def EnhancedLICOn(self) -> None: ... + def GatherVectors(self) -> None: ... + def GetAntiAlias(self) -> int: ... + def GetColorMode(self) -> int: ... + def GetCompositeStrategy(self) -> int: ... + def GetEnable(self) -> int: ... + def GetEnhanceContrast(self) -> int: ... + def GetEnhancedLIC(self) -> int: ... + def GetGenerateNoiseTexture(self) -> int: ... + def GetHasVectors(self) -> bool: ... + def GetHighColorContrastEnhancementFactor(self) -> float: ... + def GetHighLICContrastEnhancementFactor(self) -> float: ... + def GetImpulseNoiseBackgroundValue(self) -> float: ... + def GetImpulseNoiseProbability(self) -> float: ... + def GetLICIntensity(self) -> float: ... + def GetLowColorContrastEnhancementFactor(self) -> float: ... + def GetLowLICContrastEnhancementFactor(self) -> float: ... + def GetMapModeBias(self) -> float: ... + def GetMaskColor(self) -> Tuple[float, float, float]: ... + def GetMaskIntensity(self) -> float: ... + def GetMaskOnSurface(self) -> int: ... + def GetMaskThreshold(self) -> float: ... + def GetMaxNoiseValue(self) -> float: ... + def GetMinNoiseValue(self) -> float: ... + def GetNoiseDataSet(self) -> 'vtkImageData': ... + def GetNoiseGeneratorSeed(self) -> int: ... + def GetNoiseGrainSize(self) -> int: ... + def GetNoiseTextureSize(self) -> int: ... + def GetNoiseType(self) -> int: ... + def GetNormalizeVectors(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfNoiseLevels(self) -> int: ... + def GetNumberOfSteps(self) -> int: ... + def GetStepSize(self) -> float: ... + def InitializeResources(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsSupported(context:'vtkRenderWindow') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MaskOnSurfaceOff(self) -> None: ... + def MaskOnSurfaceOn(self) -> None: ... + def NewInstance(self) -> 'vtkSurfaceLICInterface': ... + def NormalizeVectorsOff(self) -> None: ... + def NormalizeVectorsOn(self) -> None: ... + def PrepareForGeometry(self) -> None: ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSurfaceLICInterface': ... + def SetAntiAlias(self, val:int) -> None: ... + def SetColorMode(self, val:int) -> None: ... + def SetCompositeStrategy(self, val:int) -> None: ... + def SetEnable(self, _arg:int) -> None: ... + def SetEnhanceContrast(self, val:int) -> None: ... + def SetEnhancedLIC(self, val:int) -> None: ... + def SetGenerateNoiseTexture(self, shouldGenerate:int) -> None: ... + def SetHasVectors(self, val:bool) -> None: ... + def SetHighColorContrastEnhancementFactor(self, val:float) -> None: ... + def SetHighLICContrastEnhancementFactor(self, val:float) -> None: ... + def SetImpulseNoiseBackgroundValue(self, val:float) -> None: ... + def SetImpulseNoiseProbability(self, val:float) -> None: ... + def SetLICIntensity(self, val:float) -> None: ... + def SetLowColorContrastEnhancementFactor(self, val:float) -> None: ... + def SetLowLICContrastEnhancementFactor(self, val:float) -> None: ... + def SetMapModeBias(self, val:float) -> None: ... + @overload + def SetMaskColor(self, val:MutableSequence[float]) -> None: ... + @overload + def SetMaskColor(self, r:float, g:float, b:float) -> None: ... + def SetMaskIntensity(self, val:float) -> None: ... + def SetMaskOnSurface(self, val:int) -> None: ... + def SetMaskThreshold(self, val:float) -> None: ... + def SetMaxNoiseValue(self, val:float) -> None: ... + def SetMinNoiseValue(self, val:float) -> None: ... + def SetNoiseDataSet(self, data:'vtkImageData') -> None: ... + def SetNoiseGeneratorSeed(self, val:int) -> None: ... + def SetNoiseGrainSize(self, val:int) -> None: ... + def SetNoiseTextureSize(self, length:int) -> None: ... + def SetNoiseType(self, type:int) -> None: ... + def SetNormalizeVectors(self, val:int) -> None: ... + def SetNumberOfNoiseLevels(self, val:int) -> None: ... + def SetNumberOfSteps(self, val:int) -> None: ... + def SetStepSize(self, val:float) -> None: ... + def ShallowCopy(self, m:'vtkSurfaceLICInterface') -> None: ... + def UpdateCommunicator(self, renderer:'vtkRenderer', actor:'vtkActor', data:'vtkDataObject') -> None: ... + def ValidateContext(self, renderer:'vtkRenderer') -> None: ... + def WriteTimerLog(self, __a:str) -> None: ... + +class vtkSurfaceLICMapper(vtkmodules.vtkRenderingOpenGL2.vtkOpenGLPolyDataMapper): + lic_interface:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLICInterface(self) -> 'vtkSurfaceLICInterface': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSurfaceLICMapper': ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + def RenderPiece(self, ren:'vtkRenderer', act:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSurfaceLICMapper': ... + def ShallowCopy(self, __a:'vtkAbstractMapper') -> None: ... + +class vtkTextureIO(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, __a:'vtkTextureIO') -> None: ... + @overload + @staticmethod + def Write(filename:str, texture:'vtkTextureObject', subset:Sequence[int] =..., origin:Sequence[float]=...) -> None: ... + @overload + @staticmethod + def Write(filename:str, texture:'vtkTextureObject', subset:'vtkPixelExtent', origin:Sequence[float]=...) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingLOD.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingLOD.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..4a3d2c4 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingLOD.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingLOD.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingLOD.pyi new file mode 100644 index 0000000..29d34c8 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingLOD.pyi @@ -0,0 +1,107 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingCore + +class vtkLODActor(vtkmodules.vtkRenderingCore.vtkActor): + lod_mappers:'getset_descriptor' + low_res_filter:'getset_descriptor' + medium_res_filter:'getset_descriptor' + number_of_cloud_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddLODMapper(self, mapper:'vtkMapper') -> None: ... + def GetLODMappers(self) -> 'vtkMapperCollection': ... + def GetLowResFilter(self) -> 'vtkPolyDataAlgorithm': ... + def GetMediumResFilter(self) -> 'vtkPolyDataAlgorithm': ... + def GetNumberOfCloudPoints(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Modified(self) -> None: ... + def NewInstance(self) -> 'vtkLODActor': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, __a:'vtkRenderer', __b:'vtkMapper') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLODActor': ... + def SetLowResFilter(self, __a:'vtkPolyDataAlgorithm') -> None: ... + def SetMediumResFilter(self, __a:'vtkPolyDataAlgorithm') -> None: ... + def SetNumberOfCloudPoints(self, _arg:int) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkQuadricLODActor(vtkmodules.vtkRenderingCore.vtkActor): + class PropTypeEnum(int): ... + class DataConfigurationEnum(int): ... + ACTOR:'PropTypeEnum' + FOLLOWER:'PropTypeEnum' + UNKNOWN:'DataConfigurationEnum' + XLINE:'DataConfigurationEnum' + XYPLANE:'DataConfigurationEnum' + XYZVOLUME:'DataConfigurationEnum' + XZPLANE:'DataConfigurationEnum' + YLINE:'DataConfigurationEnum' + YZPLANE:'DataConfigurationEnum' + ZLINE:'DataConfigurationEnum' + camera:'getset_descriptor' + collapse_dimension_ratio:'getset_descriptor' + data_configuration:'getset_descriptor' + defer_lod_construction:'getset_descriptor' + lod_filter:'getset_descriptor' + prop_type:'getset_descriptor' + static:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeferLODConstructionOff(self) -> None: ... + def DeferLODConstructionOn(self) -> None: ... + def GetCamera(self) -> 'vtkCamera': ... + def GetCollapseDimensionRatio(self) -> float: ... + def GetCollapseDimensionRatioMaxValue(self) -> float: ... + def GetCollapseDimensionRatioMinValue(self) -> float: ... + def GetDataConfiguration(self) -> int: ... + def GetDataConfigurationMaxValue(self) -> int: ... + def GetDataConfigurationMinValue(self) -> int: ... + def GetDeferLODConstruction(self) -> int: ... + def GetLODFilter(self) -> 'vtkQuadricClustering': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPropType(self) -> int: ... + def GetPropTypeMaxValue(self) -> int: ... + def GetPropTypeMinValue(self) -> int: ... + def GetStatic(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkQuadricLODActor': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, __a:'vtkRenderer', __b:'vtkMapper') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkQuadricLODActor': ... + def SetCamera(self, __a:'vtkCamera') -> None: ... + def SetCollapseDimensionRatio(self, _arg:float) -> None: ... + def SetDataConfiguration(self, _arg:int) -> None: ... + def SetDataConfigurationToUnknown(self) -> None: ... + def SetDataConfigurationToXLine(self) -> None: ... + def SetDataConfigurationToXYPlane(self) -> None: ... + def SetDataConfigurationToXYZVolume(self) -> None: ... + def SetDataConfigurationToXZPlane(self) -> None: ... + def SetDataConfigurationToYLine(self) -> None: ... + def SetDataConfigurationToYZPlane(self) -> None: ... + def SetDataConfigurationToZLine(self) -> None: ... + def SetDeferLODConstruction(self, _arg:int) -> None: ... + def SetLODFilter(self, lodFilter:'vtkQuadricClustering') -> None: ... + def SetPropType(self, _arg:int) -> None: ... + def SetPropTypeToActor(self) -> None: ... + def SetPropTypeToFollower(self) -> None: ... + def SetStatic(self, _arg:int) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + def StaticOff(self) -> None: ... + def StaticOn(self) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingLabel.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingLabel.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..4c1813a Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingLabel.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingLabel.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingLabel.pyi new file mode 100644 index 0000000..866a7ee --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingLabel.pyi @@ -0,0 +1,600 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonDataModel +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkRenderingCore + +class vtkLabeledDataMapper(vtkmodules.vtkRenderingCore.vtkMapper2D): + class Coordinates(int): ... + DISPLAY:'Coordinates' + WORLD:'Coordinates' + component_separator:'getset_descriptor' + coordinate_system:'getset_descriptor' + field_data_array:'getset_descriptor' + field_data_name:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + label_format:'getset_descriptor' + label_mode:'getset_descriptor' + label_text_property:'getset_descriptor' + labeled_component:'getset_descriptor' + m_time:'getset_descriptor' + number_of_labels:'getset_descriptor' + transform:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CoordinateSystemDisplay(self) -> None: ... + def CoordinateSystemWorld(self) -> None: ... + def GetComponentSeparator(self) -> str: ... + def GetCoordinateSystem(self) -> int: ... + def GetCoordinateSystemMaxValue(self) -> int: ... + def GetCoordinateSystemMinValue(self) -> int: ... + def GetFieldDataArray(self) -> int: ... + def GetFieldDataArrayMaxValue(self) -> int: ... + def GetFieldDataArrayMinValue(self) -> int: ... + def GetFieldDataName(self) -> str: ... + def GetInput(self) -> 'vtkDataSet': ... + def GetLabelFormat(self) -> str: ... + def GetLabelMode(self) -> int: ... + def GetLabelPosition(self, label:int, pos:MutableSequence[float]) -> None: ... + def GetLabelText(self, label:int) -> str: ... + @overload + def GetLabelTextProperty(self) -> 'vtkTextProperty': ... + @overload + def GetLabelTextProperty(self, type:int) -> 'vtkTextProperty': ... + def GetLabeledComponent(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLabels(self) -> int: ... + def GetTransform(self) -> 'vtkTransform': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLabeledDataMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport', actor:'vtkActor2D') -> None: ... + def RenderOverlay(self, viewport:'vtkViewport', actor:'vtkActor2D') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLabeledDataMapper': ... + def SetComponentSeparator(self, _arg:str) -> None: ... + def SetCoordinateSystem(self, _arg:int) -> None: ... + def SetFieldDataArray(self, _arg:int) -> None: ... + def SetFieldDataName(self, _arg:str) -> None: ... + def SetInputData(self, __a:'vtkDataObject') -> None: ... + def SetLabelFormat(self, _arg:str) -> None: ... + def SetLabelMode(self, _arg:int) -> None: ... + def SetLabelModeToLabelFieldData(self) -> None: ... + def SetLabelModeToLabelIds(self) -> None: ... + def SetLabelModeToLabelNormals(self) -> None: ... + def SetLabelModeToLabelScalars(self) -> None: ... + def SetLabelModeToLabelTCoords(self) -> None: ... + def SetLabelModeToLabelTensors(self) -> None: ... + def SetLabelModeToLabelVectors(self) -> None: ... + @overload + def SetLabelTextProperty(self, p:'vtkTextProperty') -> None: ... + @overload + def SetLabelTextProperty(self, p:'vtkTextProperty', type:int) -> None: ... + def SetLabeledComponent(self, _arg:int) -> None: ... + def SetTransform(self, t:'vtkTransform') -> None: ... + +class vtkDynamic2DLabelMapper(vtkLabeledDataMapper): + label_height_padding:'getset_descriptor' + label_width_padding:'getset_descriptor' + priority_array_name:'getset_descriptor' + reverse_priority:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLabelHeightPadding(self) -> float: ... + def GetLabelWidthPadding(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReversePriority(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDynamic2DLabelMapper': ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport', actor:'vtkActor2D') -> None: ... + def RenderOverlay(self, viewport:'vtkViewport', actor:'vtkActor2D') -> None: ... + def ReversePriorityOff(self) -> None: ... + def ReversePriorityOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDynamic2DLabelMapper': ... + def SetLabelHeightPadding(self, _arg:float) -> None: ... + def SetLabelWidthPadding(self, _arg:float) -> None: ... + def SetPriorityArrayName(self, name:str) -> None: ... + def SetReversePriority(self, _arg:bool) -> None: ... + +class vtkLabelRenderStrategy(vtkmodules.vtkCommonCore.vtkObject): + default_text_property:'getset_descriptor' + renderer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeLabelBounds(self, tprop:'vtkTextProperty', label:str, bds:MutableSequence[float]) -> None: ... + def EndFrame(self) -> None: ... + def GetDefaultTextProperty(self) -> 'vtkTextProperty': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderer(self) -> 'vtkRenderer': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLabelRenderStrategy': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + @overload + def RenderLabel(self, x:MutableSequence[int], tprop:'vtkTextProperty', label:str) -> None: ... + @overload + def RenderLabel(self, x:MutableSequence[int], tprop:'vtkTextProperty', label:str, maxWidth:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLabelRenderStrategy': ... + def SetDefaultTextProperty(self, tprop:'vtkTextProperty') -> None: ... + def SetRenderer(self, ren:'vtkRenderer') -> None: ... + def StartFrame(self) -> None: ... + def SupportsBoundedSize(self) -> bool: ... + def SupportsRotation(self) -> bool: ... + +class vtkFreeTypeLabelRenderStrategy(vtkLabelRenderStrategy): + def __init__(self, **properties:Any) -> None: ... + def ComputeLabelBounds(self, tprop:'vtkTextProperty', label:str, bds:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFreeTypeLabelRenderStrategy': ... + def ReleaseGraphicsResources(self, window:'vtkWindow') -> None: ... + @overload + def RenderLabel(self, x:MutableSequence[int], tprop:'vtkTextProperty', label:str) -> None: ... + @overload + def RenderLabel(self, x:MutableSequence[int], tprop:'vtkTextProperty', label:str, maxWidth:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFreeTypeLabelRenderStrategy': ... + def SupportsBoundedSize(self) -> bool: ... + def SupportsRotation(self) -> bool: ... + +class vtkLabelHierarchy(vtkmodules.vtkCommonDataModel.vtkPointSet): + class IteratorType(int): ... + DEPTH_FIRST:'IteratorType' + FRUSTUM:'IteratorType' + FULL_SORT:'IteratorType' + QUEUE:'IteratorType' + bounded_sizes:'getset_descriptor' + center_pts:'getset_descriptor' + coincident_points:'getset_descriptor' + icon_indices:'getset_descriptor' + labels:'getset_descriptor' + max_cell_size:'getset_descriptor' + maximum_depth:'getset_descriptor' + number_of_cells:'getset_descriptor' + orientations:'getset_descriptor' + points:'getset_descriptor' + priorities:'getset_descriptor' + sizes:'getset_descriptor' + target_label_count:'getset_descriptor' + text_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeHierarchy(self) -> None: ... + @overload + def FindCell(self, __a:MutableSequence[float], __b:'vtkCell', __c:int, __d:float, __e:int, __f:MutableSequence[float], __g:MutableSequence[float]) -> int: ... + @overload + def FindCell(self, __a:MutableSequence[float], __b:'vtkCell', __c:'vtkGenericCell', __d:int, __e:float, __f:int, __g:MutableSequence[float], __h:MutableSequence[float]) -> int: ... + @staticmethod + def GetAnchorFrustumPlanes(frustumPlanes:MutableSequence[float], ren:'vtkRenderer', anchorTransform:'vtkCoordinate') -> None: ... + def GetBoundedSizes(self) -> 'vtkDataArray': ... + @overload + def GetCell(self, __a:int) -> 'vtkCell': ... + @overload + def GetCell(self, __a:int, __b:'vtkGenericCell') -> None: ... + @overload + def GetCell(self, i:int, j:int, k:int) -> 'vtkCell': ... + @overload + def GetCellPoints(self, __a:int, __b:'vtkIdList') -> None: ... + @overload + def GetCellPoints(self, cellId:int, npts:int, pts:Sequence[int], ptIds:'vtkIdList') -> None: ... + def GetCellType(self, __a:int) -> int: ... + def GetCenterPts(self) -> 'vtkPoints': ... + def GetCoincidentPoints(self) -> 'vtkCoincidentPoints': ... + def GetDiscreteNodeCoordinatesFromWorldPoint(self, ijk:MutableSequence[int], pt:MutableSequence[float], level:int) -> None: ... + def GetIconIndices(self) -> 'vtkIntArray': ... + def GetLabels(self) -> 'vtkAbstractArray': ... + def GetMaxCellSize(self) -> int: ... + def GetMaximumDepth(self) -> int: ... + def GetNumberOfCells(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientations(self) -> 'vtkDataArray': ... + @staticmethod + def GetPathForNodalCoordinates(path:MutableSequence[int], ijk:MutableSequence[int], level:int) -> bool: ... + def GetPointCells(self, __a:int, __b:'vtkIdList') -> None: ... + def GetPriorities(self) -> 'vtkDataArray': ... + def GetSizes(self) -> 'vtkDataArray': ... + def GetTargetLabelCount(self) -> int: ... + def GetTextProperty(self) -> 'vtkTextProperty': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLabelHierarchy': ... + def NewIterator(self, type:int, ren:'vtkRenderer', cam:'vtkCamera', frustumPlanes:MutableSequence[float], positionsAsNormals:bool, bucketSize:MutableSequence[float]) -> 'vtkLabelHierarchyIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLabelHierarchy': ... + def SetBoundedSizes(self, arr:'vtkDataArray') -> None: ... + def SetIconIndices(self, arr:'vtkIntArray') -> None: ... + def SetLabels(self, arr:'vtkAbstractArray') -> None: ... + def SetMaximumDepth(self, _arg:int) -> None: ... + def SetOrientations(self, arr:'vtkDataArray') -> None: ... + def SetPoints(self, __a:'vtkPoints') -> None: ... + def SetPriorities(self, arr:'vtkDataArray') -> None: ... + def SetSizes(self, arr:'vtkDataArray') -> None: ... + def SetTargetLabelCount(self, _arg:int) -> None: ... + def SetTextProperty(self, tprop:'vtkTextProperty') -> None: ... + +class vtkLabelHierarchyAlgorithm(vtkmodules.vtkCommonExecutionModel.vtkAlgorithm): + input:'getset_descriptor' + input_data:'getset_descriptor' + output:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def AddInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + @overload + def GetInput(self) -> 'vtkDataObject': ... + @overload + def GetInput(self, port:int) -> 'vtkDataObject': ... + def GetLabelHierarchyInput(self, port:int) -> 'vtkLabelHierarchy': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @overload + def GetOutput(self) -> 'vtkLabelHierarchy': ... + @overload + def GetOutput(self, __a:int) -> 'vtkLabelHierarchy': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLabelHierarchyAlgorithm': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLabelHierarchyAlgorithm': ... + @overload + def SetInputData(self, __a:'vtkDataObject') -> None: ... + @overload + def SetInputData(self, __a:int, __b:'vtkDataObject') -> None: ... + def SetOutput(self, d:'vtkDataObject') -> None: ... + +class vtkLabelHierarchyIterator(vtkmodules.vtkCommonCore.vtkObject): + all_bounds:'getset_descriptor' + hierarchy:'getset_descriptor' + label:'getset_descriptor' + label_id:'getset_descriptor' + orientation:'getset_descriptor' + traversed_bounds:'getset_descriptor' + type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Begin(self, __a:'vtkIdTypeArray') -> None: ... + def BoxAllNodes(self, __a:'vtkPolyData') -> None: ... + def BoxNode(self) -> None: ... + def GetAllBounds(self) -> int: ... + def GetBoundedSize(self, sz:MutableSequence[float]) -> None: ... + def GetHierarchy(self) -> 'vtkLabelHierarchy': ... + def GetLabel(self) -> str: ... + def GetLabelId(self) -> int: ... + def GetNodeGeometry(self, ctr:MutableSequence[float], size:float) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientation(self) -> float: ... + def GetPoint(self, x:MutableSequence[float]) -> None: ... + def GetSize(self, sz:MutableSequence[float]) -> None: ... + def GetType(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsAtEnd(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLabelHierarchyIterator': ... + def Next(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLabelHierarchyIterator': ... + def SetAllBounds(self, _arg:int) -> None: ... + def SetTraversedBounds(self, __a:'vtkPolyData') -> None: ... + +class vtkLabelHierarchyCompositeIterator(vtkLabelHierarchyIterator): + hierarchy:'getset_descriptor' + label_id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddIterator(self, it:'vtkLabelHierarchyIterator') -> None: ... + @overload + def AddIterator(self, it:'vtkLabelHierarchyIterator', count:int) -> None: ... + def Begin(self, __a:'vtkIdTypeArray') -> None: ... + def BoxAllNodes(self, __a:'vtkPolyData') -> None: ... + def BoxNode(self) -> None: ... + def ClearIterators(self) -> None: ... + def GetHierarchy(self) -> 'vtkLabelHierarchy': ... + def GetLabelId(self) -> int: ... + def GetNodeGeometry(self, ctr:MutableSequence[float], size:float) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsAtEnd(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLabelHierarchyCompositeIterator': ... + def Next(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLabelHierarchyCompositeIterator': ... + +class vtkLabelPlacementMapper(vtkmodules.vtkRenderingCore.vtkMapper2D): + class LabelStyle(int): ... + class LabelShape(int): ... + FILLED:'LabelStyle' + NONE:'LabelShape' + NUMBER_OF_LABEL_SHAPES:'LabelShape' + NUMBER_OF_LABEL_STYLES:'LabelStyle' + OUTLINE:'LabelStyle' + RECT:'LabelShape' + ROUNDED_RECT:'LabelShape' + anchor_transform:'getset_descriptor' + background_color:'getset_descriptor' + background_opacity:'getset_descriptor' + generate_perturbed_label_spokes:'getset_descriptor' + iterator_type:'getset_descriptor' + margin:'getset_descriptor' + maximum_label_fraction:'getset_descriptor' + output_traversed_bounds:'getset_descriptor' + place_all_labels:'getset_descriptor' + positions_as_normals:'getset_descriptor' + render_strategy:'getset_descriptor' + shape:'getset_descriptor' + style:'getset_descriptor' + use_depth_buffer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GeneratePerturbedLabelSpokesOff(self) -> None: ... + def GeneratePerturbedLabelSpokesOn(self) -> None: ... + def GetAnchorTransform(self) -> 'vtkCoordinate': ... + def GetBackgroundColor(self) -> Tuple[float, float, float]: ... + def GetBackgroundOpacity(self) -> float: ... + def GetBackgroundOpacityMaxValue(self) -> float: ... + def GetBackgroundOpacityMinValue(self) -> float: ... + def GetGeneratePerturbedLabelSpokes(self) -> bool: ... + def GetIteratorType(self) -> int: ... + def GetMargin(self) -> float: ... + def GetMaximumLabelFraction(self) -> float: ... + def GetMaximumLabelFractionMaxValue(self) -> float: ... + def GetMaximumLabelFractionMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputTraversedBounds(self) -> bool: ... + def GetPlaceAllLabels(self) -> bool: ... + def GetPositionsAsNormals(self) -> bool: ... + def GetRenderStrategy(self) -> 'vtkLabelRenderStrategy': ... + def GetShape(self) -> int: ... + def GetShapeMaxValue(self) -> int: ... + def GetShapeMinValue(self) -> int: ... + def GetStyle(self) -> int: ... + def GetStyleMaxValue(self) -> int: ... + def GetStyleMinValue(self) -> int: ... + def GetUseDepthBuffer(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLabelPlacementMapper': ... + def OutputTraversedBoundsOff(self) -> None: ... + def OutputTraversedBoundsOn(self) -> None: ... + def PlaceAllLabelsOff(self) -> None: ... + def PlaceAllLabelsOn(self) -> None: ... + def PositionsAsNormalsOff(self) -> None: ... + def PositionsAsNormalsOn(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOverlay(self, viewport:'vtkViewport', actor:'vtkActor2D') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLabelPlacementMapper': ... + @overload + def SetBackgroundColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetBackgroundColor(self, _arg:Sequence[float]) -> None: ... + def SetBackgroundOpacity(self, _arg:float) -> None: ... + def SetGeneratePerturbedLabelSpokes(self, _arg:bool) -> None: ... + def SetIteratorType(self, _arg:int) -> None: ... + def SetMargin(self, _arg:float) -> None: ... + def SetMaximumLabelFraction(self, _arg:float) -> None: ... + def SetOutputTraversedBounds(self, _arg:bool) -> None: ... + def SetPlaceAllLabels(self, _arg:bool) -> None: ... + def SetPositionsAsNormals(self, _arg:bool) -> None: ... + def SetRenderStrategy(self, s:'vtkLabelRenderStrategy') -> None: ... + def SetShape(self, _arg:int) -> None: ... + def SetShapeToNone(self) -> None: ... + def SetShapeToRect(self) -> None: ... + def SetShapeToRoundedRect(self) -> None: ... + def SetStyle(self, _arg:int) -> None: ... + def SetStyleToFilled(self) -> None: ... + def SetStyleToOutline(self) -> None: ... + def SetUseDepthBuffer(self, _arg:bool) -> None: ... + def UseDepthBufferOff(self) -> None: ... + def UseDepthBufferOn(self) -> None: ... + +class vtkLabelPlacer(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + class LabelGravity(int): ... + class OutputCoordinates(int): ... + BaselineCenter:'LabelGravity' + BaselineLeft:'LabelGravity' + BaselineRight:'LabelGravity' + CenterCenter:'LabelGravity' + CenterLeft:'LabelGravity' + CenterRight:'LabelGravity' + DISPLAY:'OutputCoordinates' + HorizontalBitMask:'LabelGravity' + HorizontalCenterBit:'LabelGravity' + HorizontalLeftBit:'LabelGravity' + HorizontalRightBit:'LabelGravity' + LowerCenter:'LabelGravity' + LowerLeft:'LabelGravity' + LowerRight:'LabelGravity' + UpperCenter:'LabelGravity' + UpperLeft:'LabelGravity' + UpperRight:'LabelGravity' + VerticalBaselineBit:'LabelGravity' + VerticalBitMask:'LabelGravity' + VerticalBottomBit:'LabelGravity' + VerticalCenterBit:'LabelGravity' + VerticalTopBit:'LabelGravity' + WORLD:'OutputCoordinates' + anchor_transform:'getset_descriptor' + generate_perturbed_label_spokes:'getset_descriptor' + gravity:'getset_descriptor' + iterator_type:'getset_descriptor' + m_time:'getset_descriptor' + maximum_label_fraction:'getset_descriptor' + output_coordinate_system:'getset_descriptor' + output_traversed_bounds:'getset_descriptor' + positions_as_normals:'getset_descriptor' + renderer:'getset_descriptor' + use_depth_buffer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GeneratePerturbedLabelSpokesOff(self) -> None: ... + def GeneratePerturbedLabelSpokesOn(self) -> None: ... + def GetAnchorTransform(self) -> 'vtkCoordinate': ... + def GetGeneratePerturbedLabelSpokes(self) -> bool: ... + def GetGravity(self) -> int: ... + def GetIteratorType(self) -> int: ... + def GetMTime(self) -> int: ... + def GetMaximumLabelFraction(self) -> float: ... + def GetMaximumLabelFractionMaxValue(self) -> float: ... + def GetMaximumLabelFractionMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutputCoordinateSystem(self) -> int: ... + def GetOutputCoordinateSystemMaxValue(self) -> int: ... + def GetOutputCoordinateSystemMinValue(self) -> int: ... + def GetOutputTraversedBounds(self) -> bool: ... + def GetPositionsAsNormals(self) -> bool: ... + def GetRenderer(self) -> 'vtkRenderer': ... + def GetUseDepthBuffer(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLabelPlacer': ... + def OutputCoordinateSystemDisplay(self) -> None: ... + def OutputCoordinateSystemWorld(self) -> None: ... + def OutputTraversedBoundsOff(self) -> None: ... + def OutputTraversedBoundsOn(self) -> None: ... + def PositionsAsNormalsOff(self) -> None: ... + def PositionsAsNormalsOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLabelPlacer': ... + def SetGeneratePerturbedLabelSpokes(self, _arg:bool) -> None: ... + def SetGravity(self, gravity:int) -> None: ... + def SetIteratorType(self, _arg:int) -> None: ... + def SetMaximumLabelFraction(self, _arg:float) -> None: ... + def SetOutputCoordinateSystem(self, _arg:int) -> None: ... + def SetOutputTraversedBounds(self, _arg:bool) -> None: ... + def SetPositionsAsNormals(self, _arg:bool) -> None: ... + def SetRenderer(self, __a:'vtkRenderer') -> None: ... + def SetUseDepthBuffer(self, _arg:bool) -> None: ... + def UseDepthBufferOff(self) -> None: ... + def UseDepthBufferOn(self) -> None: ... + +class vtkLabelSizeCalculator(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + dpi:'getset_descriptor' + label_size_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDPI(self) -> int: ... + def GetFontProperty(self, type:int=0) -> 'vtkTextProperty': ... + def GetLabelSizeArrayName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLabelSizeCalculator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLabelSizeCalculator': ... + def SetDPI(self, _arg:int) -> None: ... + def SetFontProperty(self, fontProp:'vtkTextProperty', type:int=0) -> None: ... + def SetLabelSizeArrayName(self, _arg:str) -> None: ... + +class vtkLabeledTreeMapDataMapper(vtkLabeledDataMapper): + child_motion:'getset_descriptor' + clip_text_mode:'getset_descriptor' + dynamic_level:'getset_descriptor' + font_size_range:'getset_descriptor' + input_tree:'getset_descriptor' + level_range:'getset_descriptor' + rectangles_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetChildMotion(self) -> int: ... + def GetClipTextMode(self) -> int: ... + def GetDynamicLevel(self) -> int: ... + def GetFontSizeRange(self, range:MutableSequence[int]) -> None: ... + def GetInputTree(self) -> 'vtkTree': ... + def GetLevelRange(self, range:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLabeledTreeMapDataMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, viewport:'vtkViewport', actor:'vtkActor2D') -> None: ... + def RenderOverlay(self, viewport:'vtkViewport', actor:'vtkActor2D') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLabeledTreeMapDataMapper': ... + def SetChildMotion(self, _arg:int) -> None: ... + def SetClipTextMode(self, _arg:int) -> None: ... + def SetDynamicLevel(self, _arg:int) -> None: ... + def SetFontSizeRange(self, maxSize:int, minSize:int, delta:int=4) -> None: ... + def SetLevelRange(self, startLevel:int, endLevel:int) -> None: ... + def SetRectanglesArrayName(self, name:str) -> None: ... + +class vtkPointSetToLabelHierarchy(vtkLabelHierarchyAlgorithm): + bounded_size_array_name:'getset_descriptor' + icon_index_array_name:'getset_descriptor' + label_array_name:'getset_descriptor' + maximum_depth:'getset_descriptor' + orientation_array_name:'getset_descriptor' + priority_array_name:'getset_descriptor' + size_array_name:'getset_descriptor' + target_label_count:'getset_descriptor' + text_property:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBoundedSizeArrayName(self) -> str: ... + def GetIconIndexArrayName(self) -> str: ... + def GetLabelArrayName(self) -> str: ... + def GetMaximumDepth(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientationArrayName(self) -> str: ... + def GetPriorityArrayName(self) -> str: ... + def GetSizeArrayName(self) -> str: ... + def GetTargetLabelCount(self) -> int: ... + def GetTextProperty(self) -> 'vtkTextProperty': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointSetToLabelHierarchy': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointSetToLabelHierarchy': ... + def SetBoundedSizeArrayName(self, name:str) -> None: ... + def SetIconIndexArrayName(self, name:str) -> None: ... + def SetLabelArrayName(self, name:str) -> None: ... + def SetMaximumDepth(self, _arg:int) -> None: ... + def SetOrientationArrayName(self, name:str) -> None: ... + def SetPriorityArrayName(self, name:str) -> None: ... + def SetSizeArrayName(self, name:str) -> None: ... + def SetTargetLabelCount(self, _arg:int) -> None: ... + def SetTextProperty(self, tprop:'vtkTextProperty') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingMatplotlib.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingMatplotlib.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..f2f834f Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingMatplotlib.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingMatplotlib.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingMatplotlib.pyi new file mode 100644 index 0000000..4cc01c5 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingMatplotlib.pyi @@ -0,0 +1,30 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingFreeType + +class vtkMatplotlibMathTextUtilities(vtkmodules.vtkRenderingFreeType.vtkMathTextUtilities): + scale_to_power_of_two:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBoundingBox(self, tprop:'vtkTextProperty', str:str, dpi:int, bbox:MutableSequence[int]) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScaleToPowerOfTwo(self) -> bool: ... + def IsA(self, type:str) -> int: ... + def IsAvailable(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMatplotlibMathTextUtilities': ... + def RenderString(self, str:str, image:'vtkImageData', tprop:'vtkTextProperty', dpi:int, textDims:MutableSequence[int]=...) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMatplotlibMathTextUtilities': ... + def SetScaleToPowerOfTwo(self, val:bool) -> None: ... + def StringToPath(self, str:str, path:'vtkPath', tprop:'vtkTextProperty', dpi:int) -> bool: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingOpenGL2.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingOpenGL2.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..407f222 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingOpenGL2.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingOpenGL2.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingOpenGL2.pyi new file mode 100644 index 0000000..4b6e98b --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingOpenGL2.pyi @@ -0,0 +1,3655 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingCore +import vtkmodules.vtkRenderingHyperTreeGrid + +class vtkArrayRenderer(vtkmodules.vtkRenderingCore.vtkMapper): + class ElementShape(int): ... + Line:'ElementShape' + LineStrip:'ElementShape' + Point:'ElementShape' + Triangle:'ElementShape' + TriangleFan:'ElementShape' + TriangleStrip:'ElementShape' + bounds:'getset_descriptor' + fragment_shader_source:'getset_descriptor' + has_opaque:'getset_descriptor' + has_translucent:'getset_descriptor' + vertex_shader_source:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddMod(self, className:str) -> None: ... + def AddMods(self, classNames:Sequence[str]) -> None: ... + def BindArrayToTexture(self, textureName:'vtkStringToken', array:'vtkDataArray', asScalars:bool=False) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetFragmentShaderSource(self) -> str: ... + def GetHasOpaque(self) -> int: ... + def GetHasTranslucent(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShader(self, shaderType:vtkShader.Type) -> 'vtkShader': ... + def GetVertexShaderSource(self) -> str: ... + def HasOpaqueGeometry(self) -> bool: ... + def HasTranslucentPolygonalGeometry(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkArrayRenderer': ... + def PrepareColormap(self, cmap:'vtkScalarsToColors'=...) -> None: ... + def ReleaseGraphicsResources(self, window:'vtkWindow') -> None: ... + def RemoveAllMods(self) -> None: ... + def RemoveMod(self, className:str) -> None: ... + def Render(self, ren:'vtkRenderer', a:'vtkActor') -> None: ... + def ResetModsToDefault(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkArrayRenderer': ... + def SetElementType(self, elementType:int) -> bool: ... + def SetFragmentShaderSource(self, arg:str) -> None: ... + def SetHasOpaque(self, _arg:int) -> None: ... + def SetHasTranslucent(self, _arg:int) -> None: ... + def SetNumberOfElements(self, numberOfElements:int) -> bool: ... + def SetNumberOfInstances(self, numberOfInstances:int) -> bool: ... + def SetVertexShaderSource(self, arg:str) -> None: ... + +class vtkCameraPass(vtkmodules.vtkRenderingCore.vtkRenderPass): + aspect_ratio_override:'getset_descriptor' + delegate_pass:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAspectRatioOverride(self) -> float: ... + def GetDelegatePass(self) -> 'vtkRenderPass': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCameraPass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCameraPass': ... + def SetAspectRatioOverride(self, _arg:float) -> None: ... + def SetDelegatePass(self, delegatePass:'vtkRenderPass') -> None: ... + +class vtkClearRGBPass(vtkmodules.vtkRenderingCore.vtkRenderPass): + background:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBackground(self) -> Tuple[float, float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkClearRGBPass': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkClearRGBPass': ... + @overload + def SetBackground(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetBackground(self, _arg:Sequence[float]) -> None: ... + +class vtkClearZPass(vtkmodules.vtkRenderingCore.vtkRenderPass): + depth:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDepth(self) -> float: ... + def GetDepthMaxValue(self) -> float: ... + def GetDepthMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkClearZPass': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkClearZPass': ... + def SetDepth(self, _arg:float) -> None: ... + +class vtkDataTransferHelper(vtkmodules.vtkCommonCore.vtkObject): + array:'getset_descriptor' + context:'getset_descriptor' + cpu_extent:'getset_descriptor' + cpu_extent_is_valid:'getset_descriptor' + gpu_extent:'getset_descriptor' + gpu_extent_is_valid:'getset_descriptor' + min_texture_dimension:'getset_descriptor' + shader_supports_texture_int:'getset_descriptor' + texture:'getset_descriptor' + texture_extent:'getset_descriptor' + texture_extent_is_valid:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Download(self) -> bool: ... + def DownloadAsync1(self) -> bool: ... + def DownloadAsync2(self) -> bool: ... + def GetArray(self) -> 'vtkDataArray': ... + def GetCPUExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetCPUExtentIsValid(self) -> bool: ... + def GetContext(self) -> 'vtkRenderWindow': ... + def GetExtentIsValid(self, extent:MutableSequence[int]) -> bool: ... + def GetGPUExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetGPUExtentIsValid(self) -> bool: ... + def GetMinTextureDimension(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShaderSupportsTextureInt(self) -> bool: ... + def GetTexture(self) -> 'vtkTextureObject': ... + def GetTextureExtent(self) -> Tuple[int, int, int, int, int, int]: ... + def GetTextureExtentIsValid(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsSupported(renWin:'vtkRenderWindow') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataTransferHelper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataTransferHelper': ... + def SetArray(self, array:'vtkDataArray') -> None: ... + @overload + def SetCPUExtent(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetCPUExtent(self, _arg:Sequence[int]) -> None: ... + def SetContext(self, context:'vtkRenderWindow') -> None: ... + @overload + def SetGPUExtent(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetGPUExtent(self, _arg:Sequence[int]) -> None: ... + def SetMinTextureDimension(self, _arg:int) -> None: ... + def SetShaderSupportsTextureInt(self, value:bool) -> None: ... + def SetTexture(self, texture:'vtkTextureObject') -> None: ... + @overload + def SetTextureExtent(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetTextureExtent(self, _arg:Sequence[int]) -> None: ... + def Upload(self, components:int=0, componentList:MutableSequence[int]=...) -> bool: ... + +class vtkDefaultPass(vtkmodules.vtkRenderingCore.vtkRenderPass): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDefaultPass': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDefaultPass': ... + +class vtkOpenGLRenderPass(vtkmodules.vtkRenderingCore.vtkRenderPass): + active_draw_buffers:'getset_descriptor' + shader_stage_m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetActiveDrawBuffers(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShaderStageMTime(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLRenderPass': ... + def PostReplaceShaderValues(self, vertexShader:str, geometryShader:str, fragmentShader:str, mapper:'vtkAbstractMapper', prop:'vtkProp') -> bool: ... + def PreReplaceShaderValues(self, vertexShader:str, geometryShader:str, fragmentShader:str, mapper:'vtkAbstractMapper', prop:'vtkProp') -> bool: ... + @staticmethod + def RenderPasses() -> 'vtkInformationObjectBaseVectorKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLRenderPass': ... + def SetActiveDrawBuffers(self, _arg:int) -> None: ... + def SetShaderParameters(self, program:'vtkShaderProgram', mapper:'vtkAbstractMapper', prop:'vtkProp', VAO:'vtkOpenGLVertexArrayObject'=...) -> bool: ... + +class vtkImageProcessingPass(vtkOpenGLRenderPass): + delegate_pass:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDelegatePass(self) -> 'vtkRenderPass': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageProcessingPass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageProcessingPass': ... + def SetDelegatePass(self, delegatePass:'vtkRenderPass') -> None: ... + +class vtkDepthImageProcessingPass(vtkImageProcessingPass): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDepthImageProcessingPass': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDepthImageProcessingPass': ... + +class vtkDepthOfFieldPass(vtkDepthImageProcessingPass): + automatic_focal_distance:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutomaticFocalDistanceOff(self) -> None: ... + def AutomaticFocalDistanceOn(self) -> None: ... + def GetAutomaticFocalDistance(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDepthOfFieldPass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDepthOfFieldPass': ... + def SetAutomaticFocalDistance(self, _arg:bool) -> None: ... + +class vtkDepthPeelingPass(vtkOpenGLRenderPass): + depth_format:'getset_descriptor' + maximum_number_of_peels:'getset_descriptor' + occlusion_ratio:'getset_descriptor' + opaque_rgba_texture:'getset_descriptor' + opaque_z_texture:'getset_descriptor' + translucent_pass:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaximumNumberOfPeels(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOcclusionRatio(self) -> float: ... + def GetOcclusionRatioMaxValue(self) -> float: ... + def GetOcclusionRatioMinValue(self) -> float: ... + def GetTranslucentPass(self) -> 'vtkRenderPass': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDepthPeelingPass': ... + def PostReplaceShaderValues(self, vertexShader:str, geometryShader:str, fragmentShader:str, mapper:'vtkAbstractMapper', prop:'vtkProp') -> bool: ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDepthPeelingPass': ... + def SetDepthFormat(self, _arg:int) -> None: ... + def SetMaximumNumberOfPeels(self, _arg:int) -> None: ... + def SetOcclusionRatio(self, _arg:float) -> None: ... + def SetOpaqueRGBATexture(self, __a:'vtkTextureObject') -> None: ... + def SetOpaqueZTexture(self, __a:'vtkTextureObject') -> None: ... + def SetShaderParameters(self, program:'vtkShaderProgram', mapper:'vtkAbstractMapper', prop:'vtkProp', VAO:'vtkOpenGLVertexArrayObject'=...) -> bool: ... + def SetTranslucentPass(self, translucentPass:'vtkRenderPass') -> None: ... + +class vtkDrawTexturedElements(object): + class ElementShape(int): ... + class PatchShape(int): ... + AbstractPatches:'ElementShape' + Line:'ElementShape' + LineStrip:'ElementShape' + PatchLine:'PatchShape' + PatchQuadrilateral:'PatchShape' + PatchTriangle:'PatchShape' + Point:'ElementShape' + Triangle:'ElementShape' + TriangleFan:'ElementShape' + TriangleStrip:'ElementShape' + element_type:'getset_descriptor' + glsl_mod_collection:'getset_descriptor' + include_colormap:'getset_descriptor' + number_of_elements:'getset_descriptor' + number_of_instances:'getset_descriptor' + patch_type:'getset_descriptor' + shader_program:'getset_descriptor' + def __init__(self) -> None: ... + def AppendArrayToTexture(self, textureName:'vtkStringToken', array:'vtkDataArray', asScalars:bool=False) -> None: ... + def BindArrayToTexture(self, textureName:'vtkStringToken', array:'vtkDataArray', asScalars:bool=False) -> None: ... + def DrawInstancedElements(self, ren:'vtkRenderer', a:'vtkActor', mapper:'vtkMapper') -> None: ... + def GetElementType(self) -> int: ... + def GetGLSLModCollection(self) -> 'vtkCollection': ... + def GetIncludeColormap(self) -> bool: ... + def GetNumberOfElements(self) -> int: ... + def GetNumberOfInstances(self) -> int: ... + def GetPatchType(self) -> int: ... + def GetShader(self, shaderType:vtkShader.Type) -> 'vtkShader': ... + def GetShaderProgram(self) -> 'vtkShaderProgram': ... + @staticmethod + def PatchVertexCountFromPrimitive(element:int) -> int: ... + def ReleaseResources(self, window:'vtkWindow') -> None: ... + def SetElementType(self, elementType:int) -> bool: ... + def SetIncludeColormap(self, includeColormap:bool) -> bool: ... + def SetNumberOfElements(self, numberOfElements:int) -> bool: ... + def SetNumberOfInstances(self, numberOfInstances:int) -> bool: ... + def SetPatchType(self, patchType:int) -> bool: ... + def UnbindArray(self, __a:'vtkStringToken') -> bool: ... + +class vtkDualDepthPeelingPass(vtkDepthPeelingPass): + shader_stage_m_time:'getset_descriptor' + volumetric_pass:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShaderStageMTime(self) -> int: ... + def GetVolumetricPass(self) -> 'vtkRenderPass': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDualDepthPeelingPass': ... + def PostReplaceShaderValues(self, vertexShader:str, geometryShader:str, fragmentShader:str, mapper:'vtkAbstractMapper', prop:'vtkProp') -> bool: ... + def PreReplaceShaderValues(self, vertexShader:str, geometryShader:str, fragmentShader:str, mapper:'vtkAbstractMapper', prop:'vtkProp') -> bool: ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDualDepthPeelingPass': ... + def SetShaderParameters(self, program:'vtkShaderProgram', mapper:'vtkAbstractMapper', prop:'vtkProp', VAO:'vtkOpenGLVertexArrayObject'=...) -> bool: ... + def SetVolumetricPass(self, volumetricPass:'vtkRenderPass') -> None: ... + +class vtkDummyGPUInfoList(vtkmodules.vtkRenderingCore.vtkGPUInfoList): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDummyGPUInfoList': ... + def Probe(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDummyGPUInfoList': ... + +class vtkEDLShading(vtkDepthImageProcessingPass): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEDLShading': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEDLShading': ... + +class vtkOpenGLRenderWindow(vtkmodules.vtkRenderingCore.vtkRenderWindow): + class FrameBlitModes(int): ... + BlitToCurrent:'FrameBlitModes' + BlitToCurrentWithDepth:'FrameBlitModes' + BlitToHardware:'FrameBlitModes' + NoBlit:'FrameBlitModes' + buffer_needs_resolving:'getset_descriptor' + context_creation_time:'getset_descriptor' + depth_buffer_size:'getset_descriptor' + display_framebuffer:'getset_descriptor' + frame_blit_mode:'getset_descriptor' + framebuffer_flip_y:'getset_descriptor' + global_maximum_number_of_multi_samples:'getset_descriptor' + maximum_hardware_line_width:'getset_descriptor' + noise_texture_unit:'getset_descriptor' + open_gl_support_message:'getset_descriptor' + render_buffer_target_depth_size:'getset_descriptor' + render_framebuffer:'getset_descriptor' + rendering_backend:'getset_descriptor' + shader_cache:'getset_descriptor' + state:'getset_descriptor' + t_quad2dvbo:'getset_descriptor' + texture_unit_manager:'getset_descriptor' + using_srgb_color_space:'getset_descriptor' + vbo_cache:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ActivateTexture(self, __a:'vtkTextureObject') -> None: ... + @overload + def BlitDisplayFramebuffer(self) -> None: ... + @overload + def BlitDisplayFramebuffer(self, right:int, srcX:int, srcY:int, srcWidth:int, srcHeight:int, destX:int, destY:int, destWidth:int, destHeight:int, bufferMode:int, interpolation:int) -> None: ... + def BlitDisplayFramebufferColorAndDepth(self) -> None: ... + @overload + def BlitToRenderFramebuffer(self, includeDepth:bool) -> None: ... + @overload + def BlitToRenderFramebuffer(self, srcX:int, srcY:int, srcWidth:int, srcHeight:int, destX:int, destY:int, destWidth:int, destHeight:int, bufferMode:int, interpolation:int) -> None: ... + def DeactivateTexture(self, __a:'vtkTextureObject') -> None: ... + @overload + def DrawPixels(self, x1:int, y1:int, x2:int, y2:int, numComponents:int, dataType:int, data:Pointer) -> None: ... + @overload + def DrawPixels(self, dstXmin:int, dstYmin:int, dstXmax:int, dstYmax:int, srcXmin:int, srcYmin:int, srcXmax:int, srcYmax:int, srcWidth:int, srcHeight:int, numComponents:int, dataType:int, data:Pointer) -> None: ... + @overload + def DrawPixels(self, srcWidth:int, srcHeight:int, numComponents:int, dataType:int, data:Pointer) -> None: ... + def End(self) -> None: ... + def Frame(self) -> None: ... + def FramebufferFlipYOff(self) -> None: ... + def FramebufferFlipYOn(self) -> None: ... + def GetBufferNeedsResolving(self) -> bool: ... + def GetColorBufferInternalFormat(self, attachmentPoint:int) -> int: ... + def GetColorBufferSizes(self, rgba:MutableSequence[int]) -> int: ... + def GetContextCreationTime(self) -> int: ... + def GetDefaultTextureInternalFormat(self, vtktype:int, numComponents:int, needInteger:bool, needFloat:bool, needSRGB:bool) -> int: ... + def GetDepthBufferSize(self) -> int: ... + def GetDisplayFramebuffer(self) -> 'vtkOpenGLFramebufferObject': ... + def GetFrameBlitMode(self) -> 'FrameBlitModes': ... + def GetFrameBlitModeMaxValue(self) -> 'FrameBlitModes': ... + def GetFrameBlitModeMinValue(self) -> 'FrameBlitModes': ... + def GetFramebufferFlipY(self) -> bool: ... + @staticmethod + def GetGlobalMaximumNumberOfMultiSamples() -> int: ... + def GetMaximumHardwareLineWidth(self) -> float: ... + def GetNoiseTextureUnit(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOpenGLSupportMessage(self) -> str: ... + def GetOpenGLVersion(self, major:int, minor:int) -> None: ... + @overload + def GetPixelData(self, x:int, y:int, x2:int, y2:int, front:int, right:int) -> Pointer: ... + @overload + def GetPixelData(self, x:int, y:int, x2:int, y2:int, front:int, data:'vtkUnsignedCharArray', right:int) -> int: ... + @overload + def GetRGBACharPixelData(self, x:int, y:int, x2:int, y2:int, front:int, right:int=0) -> Pointer: ... + @overload + def GetRGBACharPixelData(self, x:int, y:int, x2:int, y2:int, front:int, data:'vtkUnsignedCharArray', right:int=0) -> int: ... + @overload + def GetRGBAPixelData(self, x:int, y:int, x2:int, y2:int, front:int, right:int=0) -> Pointer: ... + @overload + def GetRGBAPixelData(self, x:int, y:int, x2:int, y2:int, front:int, data:'vtkFloatArray', right:int=0) -> int: ... + def GetRenderBufferTargetDepthSize(self) -> int: ... + def GetRenderFramebuffer(self) -> 'vtkOpenGLFramebufferObject': ... + def GetRenderingBackend(self) -> str: ... + def GetShaderCache(self) -> 'vtkOpenGLShaderCache': ... + def GetState(self) -> 'vtkOpenGLState': ... + def GetTQuad2DVBO(self) -> 'vtkOpenGLBufferObject': ... + def GetTextureUnitForTexture(self, __a:'vtkTextureObject') -> int: ... + def GetTextureUnitManager(self) -> 'vtkTextureUnitManager': ... + def GetUsingSRGBColorSpace(self) -> bool: ... + def GetVBOCache(self) -> 'vtkOpenGLVertexBufferObjectCache': ... + @overload + def GetZbufferData(self, x1:int, y1:int, x2:int, y2:int) -> Pointer: ... + @overload + def GetZbufferData(self, x1:int, y1:int, x2:int, y2:int, z:MutableSequence[float]) -> int: ... + @overload + def GetZbufferData(self, x1:int, y1:int, x2:int, y2:int, buffer:'vtkFloatArray') -> int: ... + def Initialize(self) -> None: ... + def InitializeFromCurrentContext(self) -> bool: ... + def IsA(self, type:str) -> int: ... + def IsPointSpriteBugPresent(self) -> bool: ... + def IsPrimIDBugPresent(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLRenderWindow': ... + def OpenGLInit(self) -> None: ... + def OpenGLInitContext(self) -> None: ... + def OpenGLInitState(self) -> None: ... + def PopContext(self) -> None: ... + def PushContext(self) -> None: ... + def RegisterGraphicsResources(self, cb:'vtkGenericOpenGLResourceFreeCallback') -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def ReleaseRGBAPixelData(self, data:MutableSequence[float]) -> None: ... + def Render(self) -> None: ... + def ReportCapabilities(self) -> str: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLRenderWindow': ... + def SetFrameBlitMode(self, _arg:'FrameBlitModes') -> None: ... + def SetFrameBlitModeToBlitToCurrent(self) -> None: ... + def SetFrameBlitModeToBlitToCurrentWithDepth(self) -> None: ... + def SetFrameBlitModeToBlitToHardware(self) -> None: ... + def SetFrameBlitModeToNoBlit(self) -> None: ... + def SetFramebufferFlipY(self, _arg:bool) -> None: ... + @staticmethod + def SetGlobalMaximumNumberOfMultiSamples(val:int) -> None: ... + @overload + def SetPixelData(self, x:int, y:int, x2:int, y2:int, data:MutableSequence[int], front:int, right:int) -> int: ... + @overload + def SetPixelData(self, x:int, y:int, x2:int, y2:int, data:'vtkUnsignedCharArray', front:int, right:int) -> int: ... + @overload + def SetRGBACharPixelData(self, x:int, y:int, x2:int, y2:int, data:MutableSequence[int], front:int, blend:int=0, right:int=0) -> int: ... + @overload + def SetRGBACharPixelData(self, x:int, y:int, x2:int, y2:int, data:'vtkUnsignedCharArray', front:int, blend:int=0, right:int=0) -> int: ... + @overload + def SetRGBAPixelData(self, x:int, y:int, x2:int, y2:int, data:MutableSequence[float], front:int, blend:int=0, right:int=0) -> int: ... + @overload + def SetRGBAPixelData(self, x:int, y:int, x2:int, y2:int, data:'vtkFloatArray', front:int, blend:int=0, right:int=0) -> int: ... + def SetRenderBufferTargetDepthSize(self, _arg:int) -> None: ... + def SetSwapControl(self, __a:int) -> bool: ... + @overload + def SetZbufferData(self, x1:int, y1:int, x2:int, y2:int, buffer:MutableSequence[float]) -> int: ... + @overload + def SetZbufferData(self, x1:int, y1:int, x2:int, y2:int, buffer:'vtkFloatArray') -> int: ... + def Start(self) -> None: ... + def StereoMidpoint(self) -> None: ... + def SupportsOpenGL(self) -> int: ... + @overload + def TextureDepthBlit(self, source:'vtkTextureObject') -> None: ... + @overload + def TextureDepthBlit(self, source:'vtkTextureObject', srcX:int, srcY:int, srcX2:int, srcY2:int) -> None: ... + @overload + def TextureDepthBlit(self, source:'vtkTextureObject', srcX:int, srcY:int, srcX2:int, srcY2:int, destX:int, destY:int, destX2:int, destY2:int) -> None: ... + def UnregisterGraphicsResources(self, cb:'vtkGenericOpenGLResourceFreeCallback') -> None: ... + def WaitForCompletion(self) -> None: ... + +class vtkEGLRenderWindow(vtkOpenGLRenderWindow): + display_id:'getset_descriptor' + event_pending:'getset_descriptor' + full_screen:'getset_descriptor' + generic_context:'getset_descriptor' + generic_display_id:'getset_descriptor' + generic_drawable:'getset_descriptor' + generic_parent_id:'getset_descriptor' + generic_window_id:'getset_descriptor' + next_window_id:'getset_descriptor' + next_window_info:'getset_descriptor' + number_of_devices:'getset_descriptor' + own_window:'getset_descriptor' + parent_id:'getset_descriptor' + parent_info:'getset_descriptor' + position:'getset_descriptor' + screen_size:'getset_descriptor' + show_window:'getset_descriptor' + size:'getset_descriptor' + stereo_capable_window:'getset_descriptor' + window_id:'getset_descriptor' + window_info:'getset_descriptor' + window_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Finalize(self) -> None: ... + def Frame(self) -> None: ... + def GetEGLSurfaceSize(self, width:MutableSequence[int], height:MutableSequence[int]) -> None: ... + def GetEventPending(self) -> int: ... + def GetGenericContext(self) -> Pointer: ... + def GetGenericDisplayId(self) -> Pointer: ... + def GetGenericDrawable(self) -> Pointer: ... + def GetGenericParentId(self) -> Pointer: ... + def GetGenericWindowId(self) -> Pointer: ... + def GetNumberOfDevices(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOwnWindow(self) -> int: ... + def GetPosition(self) -> Tuple[int, int]: ... + def GetScreenSize(self) -> Tuple[int, int]: ... + def HideCursor(self) -> None: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsCurrent(self) -> bool: ... + def IsDirect(self) -> int: ... + def IsPointSpriteBugPresent(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeCurrent(self) -> None: ... + def NewInstance(self) -> 'vtkEGLRenderWindow': ... + def PrefFullScreen(self) -> None: ... + def ReleaseCurrent(self) -> None: ... + def Render(self) -> None: ... + def ReportCapabilities(self) -> str: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEGLRenderWindow': ... + def SetDisplayId(self, __a:Pointer) -> None: ... + def SetFullScreen(self, __a:int) -> None: ... + def SetNextWindowId(self, __a:Pointer) -> None: ... + def SetNextWindowInfo(self, __a:str) -> None: ... + def SetParentId(self, __a:Pointer) -> None: ... + def SetParentInfo(self, __a:str) -> None: ... + @overload + def SetPosition(self, x:int, y:int) -> None: ... + @overload + def SetPosition(self, a:MutableSequence[int]) -> None: ... + def SetShowWindow(self, __a:bool) -> None: ... + @overload + def SetSize(self, width:int, height:int) -> None: ... + @overload + def SetSize(self, a:MutableSequence[int]) -> None: ... + def SetStereoCapableWindow(self, capable:int) -> None: ... + def SetWindowId(self, window:Pointer) -> None: ... + def SetWindowInfo(self, __a:str) -> None: ... + def SetWindowName(self, __a:str) -> None: ... + def ShowCursor(self) -> None: ... + def WindowInitialize(self) -> None: ... + def WindowRemap(self) -> None: ... + +class vtkOpenGLTexture(vtkmodules.vtkRenderingCore.vtkTexture): + is_depth_texture:'getset_descriptor' + texture_object:'getset_descriptor' + texture_type:'getset_descriptor' + texture_unit:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CopyTexImage(self, x:int, y:int, width:int, height:int) -> None: ... + def GetIsDepthTexture(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTextureObject(self) -> 'vtkTextureObject': ... + def GetTextureType(self) -> int: ... + def GetTextureUnit(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsTranslucent(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Load(self, __a:'vtkRenderer') -> None: ... + def NewInstance(self) -> 'vtkOpenGLTexture': ... + def PostRender(self, __a:'vtkRenderer') -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLTexture': ... + def SetIsDepthTexture(self, _arg:int) -> None: ... + def SetTextureObject(self, __a:'vtkTextureObject') -> None: ... + def SetTextureType(self, _arg:int) -> None: ... + +class vtkEquirectangularToCubeMapTexture(vtkOpenGLTexture): + cube_map_size:'getset_descriptor' + input_texture:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCubeMapSize(self) -> int: ... + def GetInputTexture(self) -> 'vtkOpenGLTexture': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Load(self, __a:'vtkRenderer') -> None: ... + def NewInstance(self) -> 'vtkEquirectangularToCubeMapTexture': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEquirectangularToCubeMapTexture': ... + def SetCubeMapSize(self, _arg:int) -> None: ... + def SetInputTexture(self, texture:'vtkOpenGLTexture') -> None: ... + +class vtkOpenGLPolyDataMapper(vtkmodules.vtkRenderingCore.vtkPolyDataMapper): + class PrimitiveTypes(int): ... + PrimitiveEnd:'PrimitiveTypes' + PrimitiveLines:'PrimitiveTypes' + PrimitivePoints:'PrimitiveTypes' + PrimitiveStart:'PrimitiveTypes' + PrimitiveTriStrips:'PrimitiveTypes' + PrimitiveTris:'PrimitiveTypes' + PrimitiveVertices:'PrimitiveTypes' + populate_selection_settings:'getset_descriptor' + supports_selection:'getset_descriptor' + use_program_point_size:'getset_descriptor' + vb_os:'getset_descriptor' + vbo_shift_scale_method:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPopulateSelectionSettings(self) -> int: ... + def GetSupportsSelection(self) -> bool: ... + def GetUseProgramPointSize(self) -> bool: ... + def GetVBOs(self) -> 'vtkOpenGLVertexBufferObjectGroup': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MapDataArrayToMultiTextureAttribute(self, tname:str, dataArrayName:str, fieldAssociation:int, componentno:int=-1) -> None: ... + def MapDataArrayToVertexAttribute(self, vertexAttributeName:str, dataArrayName:str, fieldAssociation:int, componentno:int=-1) -> None: ... + def NewInstance(self) -> 'vtkOpenGLPolyDataMapper': ... + def ProcessSelectorPixelBuffers(self, sel:'vtkHardwareSelector', pixeloffsets:MutableSequence[int], prop:'vtkProp') -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RemoveAllVertexAttributeMappings(self) -> None: ... + def RemoveVertexAttributeMapping(self, vertexAttributeName:str) -> None: ... + def RenderPiece(self, ren:'vtkRenderer', act:'vtkActor') -> None: ... + def RenderPieceDraw(self, ren:'vtkRenderer', act:'vtkActor') -> None: ... + def RenderPieceFinish(self, ren:'vtkRenderer', act:'vtkActor') -> None: ... + def RenderPieceStart(self, ren:'vtkRenderer', act:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLPolyDataMapper': ... + def SetPopulateSelectionSettings(self, v:int) -> None: ... + def SetUseProgramPointSize(self, _arg:bool) -> None: ... + def SetVBOShiftScaleMethod(self, method:int) -> None: ... + def ShallowCopy(self, m:'vtkAbstractMapper') -> None: ... + def UseProgramPointSizeOff(self) -> None: ... + def UseProgramPointSizeOn(self) -> None: ... + +class vtkFastLabeledDataMapper(vtkOpenGLPolyDataMapper): + class TextAnchor(int): ... + Center:'TextAnchor' + LeftEdge:'TextAnchor' + LowerEdge:'TextAnchor' + LowerLeft:'TextAnchor' + LowerRight:'TextAnchor' + RightEdge:'TextAnchor' + UpperEdge:'TextAnchor' + UpperLeft:'TextAnchor' + UpperRight:'TextAnchor' + component_separator:'getset_descriptor' + field_data_array:'getset_descriptor' + field_data_name:'getset_descriptor' + frame_colors_name:'getset_descriptor' + input_data:'getset_descriptor' + label_format:'getset_descriptor' + label_mode:'getset_descriptor' + label_text_property:'getset_descriptor' + labeled_component:'getset_descriptor' + m_time:'getset_descriptor' + text_anchor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetComponentSeparator(self) -> str: ... + def GetFieldDataArray(self) -> int: ... + def GetFieldDataArrayMaxValue(self) -> int: ... + def GetFieldDataArrayMinValue(self) -> int: ... + def GetFieldDataName(self) -> str: ... + def GetFrameColorsName(self) -> str: ... + def GetLabelFormat(self) -> str: ... + def GetLabelMode(self) -> int: ... + @overload + def GetLabelTextProperty(self) -> 'vtkTextProperty': ... + @overload + def GetLabelTextProperty(self, type:int) -> 'vtkTextProperty': ... + def GetLabeledComponent(self) -> int: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTextAnchor(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFastLabeledDataMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderPiece(self, ren:'vtkRenderer', act:'vtkActor') -> None: ... + def RenderPieceFinish(self, ren:'vtkRenderer', act:'vtkActor') -> None: ... + def RenderPieceStart(self, ren:'vtkRenderer', act:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFastLabeledDataMapper': ... + def SetComponentSeparator(self, _arg:str) -> None: ... + def SetFieldDataArray(self, _arg:int) -> None: ... + def SetFieldDataName(self, _arg:str) -> None: ... + def SetFrameColorsName(self, _arg:str) -> None: ... + def SetInputData(self, __a:'vtkDataSet') -> None: ... + def SetLabelFormat(self, _arg:str) -> None: ... + def SetLabelMode(self, _arg:int) -> None: ... + def SetLabelModeToLabelFieldData(self) -> None: ... + def SetLabelModeToLabelIds(self) -> None: ... + def SetLabelModeToLabelNormals(self) -> None: ... + def SetLabelModeToLabelScalars(self) -> None: ... + def SetLabelModeToLabelTCoords(self) -> None: ... + def SetLabelModeToLabelTensors(self) -> None: ... + def SetLabelModeToLabelVectors(self) -> None: ... + @overload + def SetLabelTextProperty(self, p:'vtkTextProperty') -> None: ... + @overload + def SetLabelTextProperty(self, p:'vtkTextProperty', type:int) -> None: ... + def SetLabeledComponent(self, _arg:int) -> None: ... + def SetTextAnchor(self, _arg:int) -> None: ... + +class vtkFourByteUnion(object): + def __init__(self) -> None: ... + +class vtkFramebufferPass(vtkDepthImageProcessingPass): + color_format:'getset_descriptor' + color_texture:'getset_descriptor' + depth_format:'getset_descriptor' + depth_texture:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetColorTexture(self) -> 'vtkTextureObject': ... + def GetDepthTexture(self) -> 'vtkTextureObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFramebufferPass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFramebufferPass': ... + def SetColorFormat(self, _arg:int) -> None: ... + def SetDepthFormat(self, _arg:int) -> None: ... + +class vtkGLSLModifierBase(vtkmodules.vtkCommonCore.vtkObject): + primitive_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def GLSL_MODIFIERS() -> 'vtkInformationObjectBaseKey': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def IsUpToDate(self, renderer:'vtkOpenGLRenderer', mapper:'vtkAbstractMapper', actor:'vtkActor') -> bool: ... + def NewInstance(self) -> 'vtkGLSLModifierBase': ... + def ReplaceShaderValues(self, renderer:'vtkOpenGLRenderer', vertexShader:str, tessControlShader:str, tessEvalShader:str, geometryShader:str, fragmentShader:str, mapper:'vtkAbstractMapper', actor:'vtkActor') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGLSLModifierBase': ... + def SetPrimitiveType(self, primType:int) -> None: ... + def SetShaderParameters(self, renderer:'vtkOpenGLRenderer', program:'vtkShaderProgram', mapper:'vtkAbstractMapper', actor:'vtkActor', VAO:'vtkOpenGLVertexArrayObject'=...) -> bool: ... + +class vtkGLSLModCamera(vtkGLSLModifierBase): + def __init__(self, **properties:Any) -> None: ... + def DisableShiftScale(self) -> None: ... + def EnableShiftScale(self, coordShiftAndScaleInUse:bool, ssMatrix:'vtkMatrix4x4') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def IsUpToDate(self, renderer:'vtkOpenGLRenderer', mapper:'vtkAbstractMapper', actor:'vtkActor') -> bool: ... + def NewInstance(self) -> 'vtkGLSLModCamera': ... + def ReplaceShaderValues(self, renderer:'vtkOpenGLRenderer', vertexShader:str, tessControlShader:str, tessEvalShader:str, geometryShader:str, fragmentShader:str, mapper:'vtkAbstractMapper', actor:'vtkActor') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGLSLModCamera': ... + def SetShaderParameters(self, renderer:'vtkOpenGLRenderer', program:'vtkShaderProgram', mapper:'vtkAbstractMapper', actor:'vtkActor', VAO:'vtkOpenGLVertexArrayObject'=...) -> bool: ... + +class vtkGLSLModCoincidentTopology(vtkGLSLModifierBase): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def IsUpToDate(self, renderer:'vtkOpenGLRenderer', mapper:'vtkAbstractMapper', actor:'vtkActor') -> bool: ... + def NewInstance(self) -> 'vtkGLSLModCoincidentTopology': ... + def ReplaceShaderValues(self, renderer:'vtkOpenGLRenderer', vertexShader:str, tessControlShader:str, tessEvalShader:str, geometryShader:str, fragmentShader:str, mapper:'vtkAbstractMapper', actor:'vtkActor') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGLSLModCoincidentTopology': ... + def SetShaderParameters(self, renderer:'vtkOpenGLRenderer', program:'vtkShaderProgram', mapper:'vtkAbstractMapper', actor:'vtkActor', VAO:'vtkOpenGLVertexArrayObject'=...) -> bool: ... + +class vtkGLSLModLight(vtkGLSLModifierBase): + use_anisotropy:'getset_descriptor' + use_clear_coat:'getset_descriptor' + use_pbr_textures:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseAnisotropy(self) -> bool: ... + def GetUseClearCoat(self) -> bool: ... + def GetUsePBRTextures(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def IsUpToDate(self, renderer:'vtkOpenGLRenderer', mapper:'vtkAbstractMapper', actor:'vtkActor') -> bool: ... + def NewInstance(self) -> 'vtkGLSLModLight': ... + def ReplaceShaderValues(self, renderer:'vtkOpenGLRenderer', vertexShader:str, tessControlShader:str, tessEvalShader:str, geometryShader:str, fragmentShader:str, mapper:'vtkAbstractMapper', actor:'vtkActor') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGLSLModLight': ... + def SetShaderParameters(self, renderer:'vtkOpenGLRenderer', program:'vtkShaderProgram', mapper:'vtkAbstractMapper', actor:'vtkActor', VAO:'vtkOpenGLVertexArrayObject'=...) -> bool: ... + def SetUseAnisotropy(self, _arg:bool) -> None: ... + def SetUseClearCoat(self, _arg:bool) -> None: ... + def SetUsePBRTextures(self, _arg:bool) -> None: ... + +class vtkGLSLModPixelDebugger(vtkGLSLModifierBase): + substitution_json_file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def IsUpToDate(self, renderer:'vtkOpenGLRenderer', mapper:'vtkAbstractMapper', actor:'vtkActor') -> bool: ... + def NewInstance(self) -> 'vtkGLSLModPixelDebugger': ... + def ReplaceShaderValues(self, renderer:'vtkOpenGLRenderer', vertexShader:str, tessControlShader:str, tessEvalShader:str, geometryShader:str, fragmentShader:str, mapper:'vtkAbstractMapper', actor:'vtkActor') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGLSLModPixelDebugger': ... + def SetShaderParameters(self, renderer:'vtkOpenGLRenderer', program:'vtkShaderProgram', mapper:'vtkAbstractMapper', actor:'vtkActor', VAO:'vtkOpenGLVertexArrayObject'=...) -> bool: ... + def SetSubstitutionJSONFileName(self, filename:str) -> None: ... + +class vtkGLSLModifierFactory(object): + @staticmethod + def CreateAMod(modName:str) -> 'vtkGLSLModifierBase': ... + +class vtkGaussianBlurPass(vtkImageProcessingPass): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGaussianBlurPass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGaussianBlurPass': ... + +class vtkGenericOpenGLRenderWindow(vtkOpenGLRenderWindow): + back_left_buffer:'getset_descriptor' + back_right_buffer:'getset_descriptor' + current_cursor:'getset_descriptor' + display_id:'getset_descriptor' + event_pending:'getset_descriptor' + force_maximum_hardware_line_width:'getset_descriptor' + front_left_buffer:'getset_descriptor' + front_right_buffer:'getset_descriptor' + full_screen:'getset_descriptor' + generic_context:'getset_descriptor' + generic_display_id:'getset_descriptor' + generic_drawable:'getset_descriptor' + generic_parent_id:'getset_descriptor' + generic_window_id:'getset_descriptor' + is_current:'getset_descriptor' + is_direct:'getset_descriptor' + mapped:'getset_descriptor' + maximum_hardware_line_width:'getset_descriptor' + next_window_id:'getset_descriptor' + next_window_info:'getset_descriptor' + own_context:'getset_descriptor' + parent_id:'getset_descriptor' + parent_info:'getset_descriptor' + ready_for_rendering:'getset_descriptor' + screen_size:'getset_descriptor' + supports_open_gl:'getset_descriptor' + window_id:'getset_descriptor' + window_info:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateAWindow(self) -> None: ... + def DestroyWindow(self) -> None: ... + def Finalize(self) -> None: ... + def Frame(self) -> None: ... + def GetEventPending(self) -> int: ... + def GetForceMaximumHardwareLineWidth(self) -> float: ... + def GetForceMaximumHardwareLineWidthMaxValue(self) -> float: ... + def GetForceMaximumHardwareLineWidthMinValue(self) -> float: ... + def GetGenericContext(self) -> Pointer: ... + def GetGenericDisplayId(self) -> Pointer: ... + def GetGenericDrawable(self) -> Pointer: ... + def GetGenericParentId(self) -> Pointer: ... + def GetGenericWindowId(self) -> Pointer: ... + def GetMaximumHardwareLineWidth(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReadyForRendering(self) -> bool: ... + def GetScreenSize(self) -> Tuple[int, int]: ... + def HideCursor(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsCurrent(self) -> bool: ... + def IsDirect(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeCurrent(self) -> None: ... + def NewInstance(self) -> 'vtkGenericOpenGLRenderWindow': ... + def OpenGLInit(self) -> None: ... + def PopState(self) -> None: ... + def PushState(self) -> None: ... + def Render(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericOpenGLRenderWindow': ... + def SetBackLeftBuffer(self, __a:int) -> None: ... + def SetBackRightBuffer(self, __a:int) -> None: ... + def SetCurrentCursor(self, cShape:int) -> None: ... + def SetDisplayId(self, __a:Pointer) -> None: ... + def SetForceMaximumHardwareLineWidth(self, _arg:float) -> None: ... + def SetFrontLeftBuffer(self, __a:int) -> None: ... + def SetFrontRightBuffer(self, __a:int) -> None: ... + def SetFullScreen(self, __a:int) -> None: ... + def SetIsCurrent(self, newValue:bool) -> None: ... + def SetIsDirect(self, newValue:int) -> None: ... + def SetMapped(self, _arg:int) -> None: ... + def SetNextWindowId(self, __a:Pointer) -> None: ... + def SetNextWindowInfo(self, __a:str) -> None: ... + def SetOwnContext(self, __a:int) -> None: ... + def SetParentId(self, __a:Pointer) -> None: ... + def SetParentInfo(self, __a:str) -> None: ... + def SetReadyForRendering(self, _arg:bool) -> None: ... + @overload + def SetScreenSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetScreenSize(self, _arg:Sequence[int]) -> None: ... + def SetSupportsOpenGL(self, newValue:int) -> None: ... + def SetWindowId(self, __a:Pointer) -> None: ... + def SetWindowInfo(self, __a:str) -> None: ... + def ShowCursor(self) -> None: ... + def SupportsOpenGL(self) -> int: ... + def WindowRemap(self) -> None: ... + +class vtkHiddenLineRemovalPass(vtkOpenGLRenderPass): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHiddenLineRemovalPass': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHiddenLineRemovalPass': ... + +class vtkLightingMapPass(vtkDefaultPass): + class RenderMode(int): ... + LUMINANCE:'RenderMode' + NORMALS:'RenderMode' + render_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderType(self) -> 'RenderMode': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLightingMapPass': ... + @staticmethod + def RENDER_LUMINANCE() -> 'vtkInformationIntegerKey': ... + @staticmethod + def RENDER_NORMALS() -> 'vtkInformationIntegerKey': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLightingMapPass': ... + def SetRenderType(self, _arg:'RenderMode') -> None: ... + +class vtkLightsPass(vtkmodules.vtkRenderingCore.vtkRenderPass): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLightsPass': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLightsPass': ... + +class vtkOSOpenGLRenderWindow(vtkOpenGLRenderWindow): + display_id:'getset_descriptor' + event_pending:'getset_descriptor' + full_screen:'getset_descriptor' + generic_context:'getset_descriptor' + generic_display_id:'getset_descriptor' + generic_drawable:'getset_descriptor' + generic_parent_id:'getset_descriptor' + generic_window_id:'getset_descriptor' + next_window_id:'getset_descriptor' + next_window_info:'getset_descriptor' + parent_id:'getset_descriptor' + parent_info:'getset_descriptor' + position:'getset_descriptor' + screen_size:'getset_descriptor' + size:'getset_descriptor' + stereo_capable_window:'getset_descriptor' + window_id:'getset_descriptor' + window_info:'getset_descriptor' + window_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Finalize(self) -> None: ... + def Frame(self) -> None: ... + def GetEventPending(self) -> int: ... + def GetGenericContext(self) -> Pointer: ... + def GetGenericDisplayId(self) -> Pointer: ... + def GetGenericDrawable(self) -> Pointer: ... + def GetGenericParentId(self) -> Pointer: ... + def GetGenericWindowId(self) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPosition(self) -> Tuple[int, int]: ... + def GetScreenSize(self) -> Tuple[int, int]: ... + def HideCursor(self) -> None: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsCurrent(self) -> bool: ... + def IsDirect(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeCurrent(self) -> None: ... + def NewInstance(self) -> 'vtkOSOpenGLRenderWindow': ... + def ReportCapabilities(self) -> str: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOSOpenGLRenderWindow': ... + def SetDisplayId(self, __a:Pointer) -> None: ... + def SetForceMakeCurrent(self) -> None: ... + def SetFullScreen(self, __a:int) -> None: ... + def SetNextWindowId(self, __a:Pointer) -> None: ... + def SetNextWindowInfo(self, info:str) -> None: ... + def SetParentId(self, __a:Pointer) -> None: ... + def SetParentInfo(self, info:str) -> None: ... + @overload + def SetPosition(self, x:int, y:int) -> None: ... + @overload + def SetPosition(self, a:MutableSequence[int]) -> None: ... + @overload + def SetSize(self, width:int, height:int) -> None: ... + @overload + def SetSize(self, a:MutableSequence[int]) -> None: ... + def SetStereoCapableWindow(self, capable:int) -> None: ... + def SetWindowId(self, __a:Pointer) -> None: ... + def SetWindowInfo(self, info:str) -> None: ... + def SetWindowName(self, __a:str) -> None: ... + def ShowCursor(self) -> None: ... + def SupportsOpenGL(self) -> int: ... + def WindowInitialize(self) -> None: ... + def WindowRemap(self) -> None: ... + +class vtkOpaquePass(vtkDefaultPass): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpaquePass': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpaquePass': ... + +class vtkOpenGLActor(vtkmodules.vtkRenderingCore.vtkActor): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def GLDepthMaskOverride() -> 'vtkInformationIntegerKey': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLActor': ... + def Render(self, ren:'vtkRenderer', mapper:'vtkMapper') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLActor': ... + +class vtkOpenGLArrayTextureBufferAdapter(object): + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, array:'vtkDataArray', asScalars:bool, integerTexture:MutableSequence[bool]=...) -> None: ... + @overload + def __init__(self, __a:'vtkOpenGLArrayTextureBufferAdapter') -> None: ... + def ReleaseGraphicsResources(self, window:'vtkWindow') -> None: ... + def Upload(self, renderWindow:'vtkOpenGLRenderWindow', force:bool=False) -> None: ... + +class vtkOpenGLBatchedPolyDataMapper(vtkOpenGLPolyDataMapper): + m_time:'getset_descriptor' + parent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClearBatchElements(self) -> None: ... + def ClearUnmarkedBatchElements(self) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLBatchedPolyDataMapper': ... + def ProcessSelectorPixelBuffers(self, sel:'vtkHardwareSelector', pixeloffsets:MutableSequence[int], prop:'vtkProp') -> None: ... + def RenderPiece(self, renderer:'vtkRenderer', actor:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLBatchedPolyDataMapper': ... + def SetParent(self, parent:'vtkCompositePolyDataMapper') -> None: ... + def UnmarkBatchElements(self) -> None: ... + +class vtkOpenGLBillboardTextActor3D(vtkmodules.vtkRenderingCore.vtkBillboardTextActor3D): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLBillboardTextActor3D': ... + def RenderTranslucentPolygonalGeometry(self, vp:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLBillboardTextActor3D': ... + +class vtkOpenGLBufferObject(vtkmodules.vtkCommonCore.vtkObject): + class ObjectType(int): ... + class ObjectUsage(int): ... + ArrayBuffer:'ObjectType' + DynamicCopy:'ObjectUsage' + DynamicDraw:'ObjectUsage' + DynamicRead:'ObjectUsage' + ElementArrayBuffer:'ObjectType' + StaticCopy:'ObjectUsage' + StaticDraw:'ObjectUsage' + StaticRead:'ObjectUsage' + StreamCopy:'ObjectUsage' + StreamDraw:'ObjectUsage' + StreamRead:'ObjectUsage' + TextureBuffer:'ObjectType' + error:'getset_descriptor' + handle:'getset_descriptor' + size:'getset_descriptor' + type:'getset_descriptor' + usage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Allocate(self, size:int, type:'ObjectType', usage:'ObjectUsage') -> bool: ... + def Bind(self) -> bool: ... + def BindShaderStorage(self, index:int) -> bool: ... + def FlagBufferAsDirty(self) -> None: ... + def GenerateBuffer(self, type:'ObjectType') -> bool: ... + def GetError(self) -> str: ... + def GetHandle(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSize(self) -> int: ... + def GetType(self) -> 'ObjectType': ... + def GetUsage(self) -> 'ObjectUsage': ... + def IsA(self, type:str) -> int: ... + def IsReady(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLBufferObject': ... + def Release(self) -> bool: ... + def ReleaseGraphicsResources(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLBufferObject': ... + def SetType(self, value:'ObjectType') -> None: ... + def SetUsage(self, value:'ObjectUsage') -> None: ... + +class vtkOpenGLCamera(vtkmodules.vtkRenderingCore.vtkCamera): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLCamera': ... + def Render(self, ren:'vtkRenderer') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLCamera': ... + def UpdateViewport(self, ren:'vtkRenderer') -> None: ... + +class vtkOpenGLCellToVTKCellMap(vtkmodules.vtkCommonCore.vtkObject): + final_offset:'getset_descriptor' + primitive_offsets:'getset_descriptor' + size:'getset_descriptor' + start_offset:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConvertOpenGLCellIdToVTKCellId(self, pointPicking:bool, openGLId:int) -> int: ... + def GetFinalOffset(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPrimitiveOffsets(self) -> Pointer: ... + def GetSize(self) -> int: ... + def GetValue(self, i:int) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLCellToVTKCellMap': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLCellToVTKCellMap': ... + def SetStartOffset(self, start:int) -> None: ... + +class vtkOpenGLCompositePolyDataMapperDelegator(vtkmodules.vtkRenderingCore.vtkCompositePolyDataMapperDelegator): + def __init__(self, **properties:Any) -> None: ... + def ClearUnmarkedBatchElements(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLCompositePolyDataMapperDelegator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLCompositePolyDataMapperDelegator': ... + def ShallowCopy(self, mapper:'vtkCompositePolyDataMapper') -> None: ... + def UnmarkBatchElements(self) -> None: ... + +class vtkOpenGLPolyDataMapper2D(vtkmodules.vtkRenderingCore.vtkPolyDataMapper2D): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLPolyDataMapper2D': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOverlay(self, viewport:'vtkViewport', actor:'vtkActor2D') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLPolyDataMapper2D': ... + +class vtkOpenGLES30PolyDataMapper2D(vtkOpenGLPolyDataMapper2D): + class PrimitiveTypes(int): ... + PrimitiveEnd:'PrimitiveTypes' + PrimitiveLines:'PrimitiveTypes' + PrimitivePoints:'PrimitiveTypes' + PrimitiveStart:'PrimitiveTypes' + PrimitiveTriStrips:'PrimitiveTypes' + PrimitiveTris:'PrimitiveTypes' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLES30PolyDataMapper2D': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOverlay(self, viewport:'vtkViewport', actor:'vtkActor2D') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLES30PolyDataMapper2D': ... + +class vtkOpenGLFXAAFilter(vtkmodules.vtkCommonCore.vtkObject): + debug_option_value:'getset_descriptor' + endpoint_search_iterations:'getset_descriptor' + hard_contrast_threshold:'getset_descriptor' + relative_contrast_threshold:'getset_descriptor' + subpixel_blend_limit:'getset_descriptor' + subpixel_contrast_threshold:'getset_descriptor' + use_high_quality_endpoints:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Execute(self, ren:'vtkOpenGLRenderer') -> None: ... + def GetDebugOptionValue(self) -> vtkFXAAOptions.DebugOption: ... + def GetEndpointSearchIterations(self) -> int: ... + def GetEndpointSearchIterationsMaxValue(self) -> int: ... + def GetEndpointSearchIterationsMinValue(self) -> int: ... + def GetHardContrastThreshold(self) -> float: ... + def GetHardContrastThresholdMaxValue(self) -> float: ... + def GetHardContrastThresholdMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRelativeContrastThreshold(self) -> float: ... + def GetRelativeContrastThresholdMaxValue(self) -> float: ... + def GetRelativeContrastThresholdMinValue(self) -> float: ... + def GetSubpixelBlendLimit(self) -> float: ... + def GetSubpixelBlendLimitMaxValue(self) -> float: ... + def GetSubpixelBlendLimitMinValue(self) -> float: ... + def GetSubpixelContrastThreshold(self) -> float: ... + def GetSubpixelContrastThresholdMaxValue(self) -> float: ... + def GetSubpixelContrastThresholdMinValue(self) -> float: ... + def GetUseHighQualityEndpoints(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLFXAAFilter': ... + def ReleaseGraphicsResources(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLFXAAFilter': ... + def SetDebugOptionValue(self, opt:vtkFXAAOptions.DebugOption) -> None: ... + def SetEndpointSearchIterations(self, _arg:int) -> None: ... + def SetHardContrastThreshold(self, _arg:float) -> None: ... + def SetRelativeContrastThreshold(self, _arg:float) -> None: ... + def SetSubpixelBlendLimit(self, _arg:float) -> None: ... + def SetSubpixelContrastThreshold(self, _arg:float) -> None: ... + def SetUseHighQualityEndpoints(self, val:bool) -> None: ... + def UpdateConfiguration(self, opts:'vtkFXAAOptions') -> None: ... + def UseHighQualityEndpointsOff(self) -> None: ... + def UseHighQualityEndpointsOn(self) -> None: ... + +class vtkOpenGLFXAAPass(vtkImageProcessingPass): + fxaa_options:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFXAAOptions(self) -> 'vtkFXAAOptions': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLFXAAPass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLFXAAPass': ... + def SetFXAAOptions(self, __a:'vtkFXAAOptions') -> None: ... + +class vtkOpenGLFluidMapper(vtkmodules.vtkRenderingCore.vtkAbstractVolumeMapper): + class FluidSurfaceFilterMethod(int): ... + class FluidDisplayMode(int): ... + BilateralGaussian:'FluidSurfaceFilterMethod' + FilteredOpaqueSurface:'FluidDisplayMode' + FilteredSurfaceNormal:'FluidDisplayMode' + NarrowRange:'FluidSurfaceFilterMethod' + NumDisplayModes:'FluidDisplayMode' + NumFilterMethods:'FluidSurfaceFilterMethod' + TransparentFluidVolume:'FluidDisplayMode' + UnfilteredOpaqueSurface:'FluidDisplayMode' + UnfilteredSurfaceNormal:'FluidDisplayMode' + additional_reflection:'getset_descriptor' + attenuation_color:'getset_descriptor' + attenuation_scale:'getset_descriptor' + bilateral_gaussian_filter_parameter:'getset_descriptor' + display_mode:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + narrow_range_filter_parameters:'getset_descriptor' + opaque_color:'getset_descriptor' + particle_color_power:'getset_descriptor' + particle_color_scale:'getset_descriptor' + particle_radius:'getset_descriptor' + refraction_scale:'getset_descriptor' + refractive_index:'getset_descriptor' + scalar_visibility:'getset_descriptor' + surface_filter_iterations:'getset_descriptor' + surface_filter_method:'getset_descriptor' + surface_filter_radius:'getset_descriptor' + thickness_and_volume_color_filter_iterations:'getset_descriptor' + thickness_and_volume_color_filter_radius:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAdditionalReflection(self) -> float: ... + def GetAttenuationColor(self) -> Tuple[float, float, float]: ... + def GetAttenuationScale(self) -> float: ... + def GetDisplayMode(self) -> vtkOpenGLFluidMapper.FluidDisplayMode: ... + def GetInput(self) -> 'vtkPolyData': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOpaqueColor(self) -> Tuple[float, float, float]: ... + def GetParticleColorPower(self) -> float: ... + def GetParticleColorScale(self) -> float: ... + def GetParticleRadius(self) -> float: ... + def GetRefractionScale(self) -> float: ... + def GetRefractiveIndex(self) -> float: ... + def GetScalarVisibility(self) -> bool: ... + def GetSurfaceFilterIterations(self) -> int: ... + def GetSurfaceFilterMethod(self) -> vtkOpenGLFluidMapper.FluidSurfaceFilterMethod: ... + def GetSurfaceFilterRadius(self) -> int: ... + def GetThicknessAndVolumeColorFilterIterations(self) -> int: ... + def GetThicknessAndVolumeColorFilterRadius(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLFluidMapper': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer', vol:'vtkVolume') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLFluidMapper': ... + def ScalarVisibilityOff(self) -> None: ... + def ScalarVisibilityOn(self) -> None: ... + def SetAdditionalReflection(self, _arg:float) -> None: ... + @overload + def SetAttenuationColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAttenuationColor(self, _arg:Sequence[float]) -> None: ... + def SetAttenuationScale(self, _arg:float) -> None: ... + def SetBilateralGaussianFilterParameter(self, sigmaDepth:float) -> None: ... + def SetDisplayMode(self, _arg:vtkOpenGLFluidMapper.FluidDisplayMode) -> None: ... + def SetInputData(self, in_:'vtkPolyData') -> None: ... + def SetNarrowRangeFilterParameters(self, lambda_:float, mu:float) -> None: ... + @overload + def SetOpaqueColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOpaqueColor(self, _arg:Sequence[float]) -> None: ... + def SetParticleColorPower(self, _arg:float) -> None: ... + def SetParticleColorScale(self, _arg:float) -> None: ... + def SetParticleRadius(self, _arg:float) -> None: ... + def SetRefractionScale(self, _arg:float) -> None: ... + def SetRefractiveIndex(self, _arg:float) -> None: ... + def SetScalarVisibility(self, _arg:bool) -> None: ... + def SetSurfaceFilterIterations(self, _arg:int) -> None: ... + def SetSurfaceFilterMethod(self, _arg:vtkOpenGLFluidMapper.FluidSurfaceFilterMethod) -> None: ... + def SetSurfaceFilterRadius(self, _arg:int) -> None: ... + def SetThicknessAndVolumeColorFilterIterations(self, _arg:int) -> None: ... + def SetThicknessAndVolumeColorFilterRadius(self, _arg:float) -> None: ... + +class vtkOpenGLFramebufferObject(vtkmodules.vtkRenderingCore.vtkFrameBufferObjectBase): + active_read_buffer:'getset_descriptor' + both_mode:'getset_descriptor' + context:'getset_descriptor' + depth_attachment_as_texture_object:'getset_descriptor' + draw_mode:'getset_descriptor' + fbo_index:'getset_descriptor' + maximum_number_of_active_targets:'getset_descriptor' + maximum_number_of_render_targets:'getset_descriptor' + multi_samples:'getset_descriptor' + number_of_color_attachments:'getset_descriptor' + read_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ActivateBuffer(self, id:int) -> None: ... + def ActivateDrawBuffer(self, id:int) -> None: ... + @overload + def ActivateDrawBuffers(self, n:int) -> None: ... + @overload + def ActivateDrawBuffers(self, ids:MutableSequence[int], n:int) -> None: ... + def ActivateReadBuffer(self, id:int) -> None: ... + @overload + def AddColorAttachment(self, attId:int, tex:'vtkTextureObject', zslice:int=0, format:int=0, mipmapLevel:int=0) -> None: ... + @overload + def AddColorAttachment(self, attId:int, tex:'vtkRenderbuffer') -> None: ... + @overload + def AddDepthAttachment(self) -> None: ... + @overload + def AddDepthAttachment(self, tex:'vtkTextureObject') -> None: ... + @overload + def AddDepthAttachment(self, tex:'vtkRenderbuffer') -> None: ... + @overload + def Bind(self) -> None: ... + @overload + def Bind(self, mode:int) -> None: ... + @staticmethod + def Blit(srcExt:Sequence[int], destExt:Sequence[int], bits:int, mapping:int) -> int: ... + def CheckFrameBufferStatus(self, mode:int) -> int: ... + def DeactivateDrawBuffers(self) -> None: ... + def DeactivateReadBuffer(self) -> None: ... + @overload + def Download(self, extent:MutableSequence[int], vtkType:int, nComps:int, oglType:int, oglFormat:int) -> 'vtkPixelBufferObject': ... + @overload + @staticmethod + def Download(extent:MutableSequence[int], vtkType:int, nComps:int, oglType:int, oglFormat:int, pbo:'vtkPixelBufferObject') -> None: ... + def DownloadColor1(self, extent:MutableSequence[int], vtkType:int, channel:int) -> 'vtkPixelBufferObject': ... + def DownloadColor3(self, extent:MutableSequence[int], vtkType:int) -> 'vtkPixelBufferObject': ... + def DownloadColor4(self, extent:MutableSequence[int], vtkType:int) -> 'vtkPixelBufferObject': ... + def DownloadDepth(self, extent:MutableSequence[int], vtkType:int) -> 'vtkPixelBufferObject': ... + def GetActiveDrawBuffer(self, id:int) -> int: ... + def GetActiveReadBuffer(self) -> int: ... + @staticmethod + def GetBothMode() -> int: ... + def GetColorAttachmentAsTextureObject(self, num:int) -> 'vtkTextureObject': ... + def GetContext(self) -> 'vtkOpenGLRenderWindow': ... + def GetDepthAttachmentAsTextureObject(self) -> 'vtkTextureObject': ... + @staticmethod + def GetDrawMode() -> int: ... + def GetFBOIndex(self) -> int: ... + @overload + def GetLastSize(self) -> Pointer: ... + @overload + def GetLastSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def GetLastSize(self, _arg:MutableSequence[int]) -> None: ... + def GetMaximumNumberOfActiveTargets(self) -> int: ... + def GetMaximumNumberOfRenderTargets(self) -> int: ... + def GetMultiSamples(self) -> int: ... + def GetNumberOfColorAttachments(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GetReadMode() -> int: ... + def InitializeViewport(self, width:int, height:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsSupported(__a:'vtkOpenGLRenderWindow') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLFramebufferObject': ... + @overload + def PopulateFramebuffer(self, width:int, height:int) -> bool: ... + @overload + def PopulateFramebuffer(self, width:int, height:int, useTextures:bool, numberOfColorAttachments:int, colorDataType:int, wantDepthAttachment:bool, depthBitplanes:int, multisamples:int, wantStencilAttachment:bool=False) -> bool: ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + def RemoveColorAttachment(self, index:int) -> None: ... + def RemoveColorAttachments(self, num:int) -> None: ... + def RemoveDepthAttachment(self) -> None: ... + def RenderQuad(self, minX:int, maxX:int, minY:int, maxY:int, program:'vtkShaderProgram', vao:'vtkOpenGLVertexArrayObject') -> None: ... + def Resize(self, width:int, height:int) -> None: ... + @overload + def RestorePreviousBindingsAndBuffers(self) -> None: ... + @overload + def RestorePreviousBindingsAndBuffers(self, mode:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLFramebufferObject': ... + @overload + def SaveCurrentBindingsAndBuffers(self) -> None: ... + @overload + def SaveCurrentBindingsAndBuffers(self, mode:int) -> None: ... + def SetContext(self, context:'vtkRenderWindow') -> None: ... + def Start(self, width:int, height:int) -> bool: ... + def StartNonOrtho(self, width:int, height:int) -> bool: ... + @overload + def UnBind(self) -> None: ... + @overload + def UnBind(self, mode:int) -> None: ... + +class vtkOpenGLGL2PSHelper(vtkmodules.vtkCommonCore.vtkObject): + class State(int): ... + Background:'State' + Capture:'State' + Inactive:'State' + active_state:'getset_descriptor' + instance:'getset_descriptor' + line_stipple:'getset_descriptor' + line_width:'getset_descriptor' + point_size:'getset_descriptor' + render_window:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Draw3DPath(self, path:'vtkPath', actorMatrix:'vtkMatrix4x4', rasterPos:MutableSequence[float], actorColor:MutableSequence[int], ren:'vtkRenderer', label:str=...) -> None: ... + def DrawImage(self, image:'vtkImageData', pos:MutableSequence[float]) -> None: ... + def DrawPath(self, path:'vtkPath', rasterPos:MutableSequence[float], windowPos:MutableSequence[float], rgba:MutableSequence[int], scale:MutableSequence[float]=..., rotateAngle:float=0.0, strokeWidth:float=-1, label:str=...) -> None: ... + def DrawString(self, str:str, tprop:'vtkTextProperty', pos:MutableSequence[float], backgroundDepth:float, ren:'vtkRenderer') -> None: ... + def GetActiveState(self) -> 'State': ... + @staticmethod + def GetInstance() -> 'vtkOpenGLGL2PSHelper': ... + def GetLineStipple(self) -> int: ... + def GetLineWidth(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointSize(self) -> float: ... + def GetRenderWindow(self) -> 'vtkRenderWindow': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLGL2PSHelper': ... + @overload + def ProcessTransformFeedback(self, tfc:'vtkTransformFeedback', ren:'vtkRenderer', act:'vtkActor') -> None: ... + @overload + def ProcessTransformFeedback(self, tfc:'vtkTransformFeedback', ren:'vtkRenderer', col:MutableSequence[int]) -> None: ... + @overload + def ProcessTransformFeedback(self, tfc:'vtkTransformFeedback', ren:'vtkRenderer', col:MutableSequence[float]) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLGL2PSHelper': ... + @staticmethod + def SetInstance(__a:'vtkOpenGLGL2PSHelper') -> None: ... + def SetLineStipple(self, _arg:int) -> None: ... + def SetLineWidth(self, _arg:float) -> None: ... + def SetPointSize(self, _arg:float) -> None: ... + +class vtkOpenGLGlyph3DHelper(vtkOpenGLPolyDataMapper): + lod_coloring:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GlyphRender(self, ren:'vtkRenderer', actor:'vtkActor', numPts:int, colors:MutableSequence[int], matrices:MutableSequence[float], normalMatrices:MutableSequence[float], pickIds:MutableSequence[int], pointMTime:int, culling:bool) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLGlyph3DHelper': ... + def ReleaseGraphicsResources(self, window:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLGlyph3DHelper': ... + def SetLODColoring(self, val:bool) -> None: ... + +class vtkOpenGLGlyph3DMapper(vtkmodules.vtkRenderingCore.vtkGlyph3DMapper): + max_number_of_lod:'getset_descriptor' + number_of_lod:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetMaxNumberOfLOD(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLGlyph3DMapper': ... + def ReleaseGraphicsResources(self, window:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer', a:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLGlyph3DMapper': ... + def SetLODDistanceAndTargetReduction(self, index:int, distance:float, targetReduction:float) -> None: ... + def SetNumberOfLOD(self, nb:int) -> None: ... + +class vtkOpenGLHardwareSelector(vtkmodules.vtkRenderingCore.vtkHardwareSelector): + def __init__(self, **properties:Any) -> None: ... + def BeginRenderProp(self) -> None: ... + def BeginSelection(self) -> None: ... + def EndRenderProp(self) -> None: ... + def EndSelection(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLHardwareSelector': ... + def RenderCompositeIndex(self, index:int) -> None: ... + def RenderProcessId(self, processid:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLHardwareSelector': ... + +class vtkOpenGLHelper(object): + def __init__(self) -> None: ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + +class vtkOpenGLHyperTreeGridMapper(vtkmodules.vtkRenderingHyperTreeGrid.vtkHyperTreeGridMapper): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLHyperTreeGridMapper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLHyperTreeGridMapper': ... + +class vtkOpenGLImageAlgorithmCallback(object): + def __init__(self) -> None: ... + def InitializeShaderUniforms(self, __a:'vtkShaderProgram') -> None: ... + def UpdateShaderUniforms(self, __a:'vtkShaderProgram', __b:int) -> None: ... + +class vtkOpenGLImageAlgorithmHelper(vtkmodules.vtkCommonCore.vtkObject): + render_window:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLImageAlgorithmHelper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLImageAlgorithmHelper': ... + def SetRenderWindow(self, renWin:'vtkRenderWindow') -> None: ... + +class vtkOpenGLImageMapper(vtkmodules.vtkRenderingCore.vtkImageMapper): + def __init__(self, **properties:Any) -> None: ... + def DrawPixels(self, viewport:'vtkViewport', width:int, height:int, numComponents:int, data:Pointer) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLImageMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderData(self, viewport:'vtkViewport', data:'vtkImageData', actor:'vtkActor2D') -> None: ... + def RenderOverlay(self, viewport:'vtkViewport', actor:'vtkActor2D') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLImageMapper': ... + +class vtkOpenGLImageSliceMapper(vtkmodules.vtkRenderingCore.vtkImageSliceMapper): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLImageSliceMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer', prop:'vtkImageSlice') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLImageSliceMapper': ... + +class vtkOpenGLIndexBufferObject(vtkOpenGLBufferObject): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def AppendEdgeFlagIndexBuffer(indexArray:MutableSequence[int], cells:'vtkCellArray', vertexOffset:int, edgeflags:'vtkDataArray') -> None: ... + @staticmethod + def AppendLineIndexBuffer(indexArray:MutableSequence[int], cells:'vtkCellArray', vertexOffset:int) -> None: ... + @staticmethod + def AppendPointIndexBuffer(indexArray:MutableSequence[int], cells:'vtkCellArray', vertexOffset:int) -> None: ... + @staticmethod + def AppendStripIndexBuffer(indexArray:MutableSequence[int], cells:'vtkCellArray', vertexOffset:int, wireframeTriStrips:bool) -> None: ... + @staticmethod + def AppendTriangleLineIndexBuffer(indexArray:MutableSequence[int], cells:'vtkCellArray', vertexOffset:int) -> None: ... + def CreateEdgeFlagIndexBuffer(self, cells:'vtkCellArray', edgeflags:'vtkDataArray') -> int: ... + def CreateLineIndexBuffer(self, cells:'vtkCellArray') -> int: ... + def CreatePointIndexBuffer(self, cells:'vtkCellArray') -> int: ... + def CreateStripIndexBuffer(self, cells:'vtkCellArray', wireframeTriStrips:bool) -> int: ... + def CreateTriangleLineIndexBuffer(self, cells:'vtkCellArray') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLIndexBufferObject': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLIndexBufferObject': ... + +class vtkOpenGLInstanceCulling(vtkmodules.vtkCommonCore.vtkObject): + color_lod:'getset_descriptor' + helper:'getset_descriptor' + number_of_lod:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddLOD(self, distance:float, targetReduction:float) -> None: ... + def BuildCullingShaders(self, cache:'vtkOpenGLShaderCache', numInstances:int, withNormals:bool) -> None: ... + def GetColorLOD(self) -> bool: ... + def GetHelper(self) -> 'vtkOpenGLHelper': ... + def GetLODBuffer(self, index:int) -> 'vtkOpenGLBufferObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfLOD(self) -> int: ... + def InitLOD(self, pd:'vtkPolyData') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLInstanceCulling': ... + def RunCullingShaders(self, numInstances:int, matrixBuffer:'vtkOpenGLBufferObject', colorBuffer:'vtkOpenGLBufferObject', normalBuffer:'vtkOpenGLBufferObject') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLInstanceCulling': ... + def SetColorLOD(self, _arg:bool) -> None: ... + +class vtkOpenGLLabeledContourMapper(vtkmodules.vtkRenderingCore.vtkLabeledContourMapper): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLLabeledContourMapper': ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLLabeledContourMapper': ... + +class vtkOpenGLLight(vtkmodules.vtkRenderingCore.vtkLight): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLLight': ... + def Render(self, ren:'vtkRenderer', light_index:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLLight': ... + +class vtkOpenGLLowMemoryPolyDataMapper(vtkmodules.vtkRenderingCore.vtkPolyDataMapper): + populate_selection_settings:'getset_descriptor' + supports_selection:'getset_descriptor' + vbo_shift_scale_method:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddMod(self, className:str) -> None: ... + def AddMods(self, classNames:Sequence[str]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPopulateSelectionSettings(self) -> bool: ... + def GetSupportsSelection(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MapDataArrayToMultiTextureAttribute(self, tname:str, dataArrayName:str, fieldAssociation:int, componentno:int=-1) -> None: ... + def MapDataArrayToVertexAttribute(self, vertexAttributeName:str, dataArrayName:str, fieldAssociation:int, componentno:int=-1) -> None: ... + def NewInstance(self) -> 'vtkOpenGLLowMemoryPolyDataMapper': ... + def ProcessSelectorPixelBuffers(self, sel:'vtkHardwareSelector', pixeloffsets:MutableSequence[int], prop:'vtkProp') -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RemoveAllMods(self) -> None: ... + def RemoveAllVertexAttributeMappings(self) -> None: ... + def RemoveMod(self, className:str) -> None: ... + def RemoveVertexAttributeMapping(self, vertexAttributeName:str) -> None: ... + def RenderPiece(self, renderer:'vtkRenderer', actor:'vtkActor') -> None: ... + def RenderPieceDraw(self, renderer:'vtkRenderer', actor:'vtkActor') -> None: ... + def RenderPieceFinish(self, renderer:'vtkRenderer', actor:'vtkActor') -> None: ... + def RenderPieceStart(self, renderer:'vtkRenderer', actor:'vtkActor') -> None: ... + def ResetModsToDefault(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLLowMemoryPolyDataMapper': ... + def SetPopulateSelectionSettings(self, v:bool) -> None: ... + def SetVBOShiftScaleMethod(self, method:int) -> None: ... + def ShallowCopy(self, m:'vtkAbstractMapper') -> None: ... + +class vtkOpenGLLowMemoryBatchedPolyDataMapper(vtkOpenGLLowMemoryPolyDataMapper): + m_time:'getset_descriptor' + parent:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClearBatchElements(self) -> None: ... + def ClearUnmarkedBatchElements(self) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLLowMemoryBatchedPolyDataMapper': ... + def ProcessSelectorPixelBuffers(self, sel:'vtkHardwareSelector', pixeloffsets:MutableSequence[int], prop:'vtkProp') -> None: ... + def RenderPiece(self, renderer:'vtkRenderer', actor:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLLowMemoryBatchedPolyDataMapper': ... + def SetParent(self, parent:'vtkCompositePolyDataMapper') -> None: ... + def UnmarkBatchElements(self) -> None: ... + +class vtkOpenGLPointGaussianMapper(vtkmodules.vtkRenderingCore.vtkPointGaussianMapper): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLPointGaussianMapper': ... + def ProcessSelectorPixelBuffers(self, sel:'vtkHardwareSelector', pixeloffsets:MutableSequence[int], prop:'vtkProp') -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer', act:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLPointGaussianMapper': ... + +class vtkOpenGLProperty(vtkmodules.vtkRenderingCore.vtkProperty): + def __init__(self, **properties:Any) -> None: ... + def BackfaceRender(self, a:'vtkActor', ren:'vtkRenderer') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLProperty': ... + def PostRender(self, a:'vtkActor', r:'vtkRenderer') -> None: ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + def Render(self, a:'vtkActor', ren:'vtkRenderer') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLProperty': ... + +class vtkOpenGLQuadHelper(object): + def __init__(self, __a:'vtkOpenGLRenderWindow', vs:str, fs:str, gs:str, flipY:bool=False) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self) -> None: ... + +class vtkOpenGLRenderTimer(object): + elapsed_milliseconds:'getset_descriptor' + elapsed_nanoseconds:'getset_descriptor' + elapsed_seconds:'getset_descriptor' + reusable_elapsed_seconds:'getset_descriptor' + start_time:'getset_descriptor' + stop_time:'getset_descriptor' + def __init__(self) -> None: ... + def GetElapsedMilliseconds(self) -> float: ... + def GetElapsedNanoseconds(self) -> int: ... + def GetElapsedSeconds(self) -> float: ... + def GetReusableElapsedSeconds(self) -> float: ... + def GetStartTime(self) -> int: ... + def GetStopTime(self) -> int: ... + @staticmethod + def IsSupported() -> bool: ... + def Ready(self) -> bool: ... + def ReleaseGraphicsResources(self) -> None: ... + def Reset(self) -> None: ... + def ReusableStart(self) -> None: ... + def ReusableStop(self) -> None: ... + def Start(self) -> None: ... + def Started(self) -> bool: ... + def Stop(self) -> None: ... + def Stopped(self) -> bool: ... + +class vtkOpenGLRenderTimerLog(vtkmodules.vtkRenderingCore.vtkRenderTimerLog): + logging_enabled:'getset_descriptor' + min_timer_pool_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def FrameReady(self) -> bool: ... + def GetLoggingEnabled(self) -> bool: ... + def GetMinTimerPoolSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsSupported(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MarkEndEvent(self) -> None: ... + def MarkFrame(self) -> None: ... + def MarkStartEvent(self, name:str) -> None: ... + def NewInstance(self) -> 'vtkOpenGLRenderTimerLog': ... + def ReleaseGraphicsResources(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLRenderTimerLog': ... + def SetMinTimerPoolSize(self, _arg:int) -> None: ... + +class vtkOpenGLRenderUtilities(vtkmodules.vtkCommonCore.vtkObject): + full_screen_quad_fragment_shader_template:'getset_descriptor' + full_screen_quad_geometry_shader:'getset_descriptor' + full_screen_quad_vertex_shader:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def DrawFullScreenQuad() -> None: ... + @staticmethod + def GetFullScreenQuadFragmentShaderTemplate() -> str: ... + @staticmethod + def GetFullScreenQuadGeometryShader() -> str: ... + @staticmethod + def GetFullScreenQuadVertexShader() -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MarkDebugEvent(event:str) -> None: ... + def NewInstance(self) -> 'vtkOpenGLRenderUtilities': ... + @overload + @staticmethod + def PrepFullScreenVAO(renWin:'vtkOpenGLRenderWindow', vao:'vtkOpenGLVertexArrayObject', prog:'vtkShaderProgram') -> bool: ... + @overload + @staticmethod + def PrepFullScreenVAO(vertBuf:'vtkOpenGLBufferObject', vao:'vtkOpenGLVertexArrayObject', prog:'vtkShaderProgram') -> bool: ... + @staticmethod + def RenderQuad(verts:MutableSequence[float], tcoords:MutableSequence[float], program:'vtkShaderProgram', vao:'vtkOpenGLVertexArrayObject') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLRenderUtilities': ... + +class vtkOpenGLRenderer(vtkmodules.vtkRenderingCore.vtkRenderer): + class LightingComplexityEnum(int): ... + Directional:'LightingComplexityEnum' + Headlight:'LightingComplexityEnum' + NoLighting:'LightingComplexityEnum' + Positional:'LightingComplexityEnum' + depth_peeling_higher_layer:'getset_descriptor' + env_map_irradiance:'getset_descriptor' + env_map_lookup_table:'getset_descriptor' + env_map_prefiltered:'getset_descriptor' + lighting_complexity:'getset_descriptor' + lighting_count:'getset_descriptor' + lighting_uniforms:'getset_descriptor' + spherical_harmonics:'getset_descriptor' + state:'getset_descriptor' + use_spherical_harmonics:'getset_descriptor' + user_light_transform:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Clear(self) -> None: ... + def DeviceRender(self) -> None: ... + def DeviceRenderOpaqueGeometry(self, fbo:'vtkFrameBufferObjectBase'=...) -> None: ... + def DeviceRenderTranslucentPolygonalGeometry(self, fbo:'vtkFrameBufferObjectBase'=...) -> None: ... + def GetDepthPeelingHigherLayer(self) -> int: ... + def GetEnvMapIrradiance(self) -> 'vtkPBRIrradianceTexture': ... + def GetEnvMapLookupTable(self) -> 'vtkPBRLUTTexture': ... + def GetEnvMapPrefiltered(self) -> 'vtkPBRPrefilterTexture': ... + def GetLightingComplexity(self) -> int: ... + def GetLightingCount(self) -> int: ... + def GetLightingUniforms(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSphericalHarmonics(self) -> 'vtkFloatArray': ... + def GetState(self) -> 'vtkOpenGLState': ... + def GetUseSphericalHarmonics(self) -> bool: ... + def GetUserLightTransform(self) -> 'vtkTransform': ... + @staticmethod + def HaveAppleQueryAllocationBug() -> bool: ... + def IsA(self, type:str) -> int: ... + def IsDualDepthPeelingSupported(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLRenderer': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLRenderer': ... + def SetEnvMapIrradiance(self, _arg:'vtkPBRIrradianceTexture') -> None: ... + def SetEnvMapLookupTable(self, _arg:'vtkPBRLUTTexture') -> None: ... + def SetEnvMapPrefiltered(self, _arg:'vtkPBRPrefilterTexture') -> None: ... + def SetEnvironmentTexture(self, texture:'vtkTexture', isSRGB:bool=False) -> None: ... + def SetUseSphericalHarmonics(self, _arg:bool) -> None: ... + def SetUserLightTransform(self, transform:'vtkTransform') -> None: ... + def UpdateLightingUniforms(self, prog:'vtkShaderProgram') -> None: ... + def UpdateLights(self) -> int: ... + def UseSphericalHarmonicsOff(self) -> None: ... + def UseSphericalHarmonicsOn(self) -> None: ... + +class vtkOpenGLShaderCache(vtkmodules.vtkCommonCore.vtkObject): + elapsed_time:'getset_descriptor' + last_shader_bound:'getset_descriptor' + sync_glsl_shader_version:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClearLastShaderBound(self) -> None: ... + def GetLastShaderBound(self) -> 'vtkShaderProgram': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSyncGLSLShaderVersion(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLShaderCache': ... + @overload + def ReadyShaderProgram(self, vertexCode:str, fragmentCode:str, geometryCode:str, cap:'vtkTransformFeedback'=...) -> 'vtkShaderProgram': ... + @overload + def ReadyShaderProgram(self, vertexCode:str, fragmentCode:str, geometryCode:str, tessControlCode:str, tessEvalCode:str, cap:'vtkTransformFeedback'=...) -> 'vtkShaderProgram': ... + @overload + def ReadyShaderProgram(self, shader:'vtkShaderProgram', cap:'vtkTransformFeedback'=...) -> 'vtkShaderProgram': ... + def ReleaseCurrentShader(self) -> None: ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLShaderCache': ... + def SetElapsedTime(self, val:float) -> None: ... + def SetSyncGLSLShaderVersion(self, _arg:bool) -> None: ... + def SyncGLSLShaderVersionOff(self) -> None: ... + def SyncGLSLShaderVersionOn(self) -> None: ... + +class vtkOpenGLShaderProperty(vtkmodules.vtkRenderingCore.vtkShaderProperty): + number_of_shader_replacements:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddFragmentShaderReplacement(self, originalValue:str, replaceFirst:bool, replacementValue:str, replaceAll:bool) -> None: ... + def AddGeometryShaderReplacement(self, originalValue:str, replaceFirst:bool, replacementValue:str, replaceAll:bool) -> None: ... + def AddShaderReplacement(self, shaderType:vtkShader.Type, originalValue:str, replaceFirst:bool, replacementValue:str, replaceAll:bool) -> None: ... + def AddTessControlShaderReplacement(self, originalValue:str, replaceFirst:bool, replacementValue:str, replaceAll:bool) -> None: ... + def AddTessEvaluationShaderReplacement(self, originalValue:str, replaceFirst:bool, replacementValue:str, replaceAll:bool) -> None: ... + def AddVertexShaderReplacement(self, originalValue:str, replaceFirst:bool, replacementValue:str, replaceAll:bool) -> None: ... + def ClearAllFragmentShaderReplacements(self) -> None: ... + def ClearAllGeometryShaderReplacements(self) -> None: ... + @overload + def ClearAllShaderReplacements(self) -> None: ... + @overload + def ClearAllShaderReplacements(self, shaderType:vtkShader.Type) -> None: ... + def ClearAllTessControlShaderReplacements(self) -> None: ... + def ClearAllTessEvalShaderReplacements(self) -> None: ... + def ClearAllVertexShaderReplacements(self) -> None: ... + def ClearFragmentShaderReplacement(self, originalValue:str, replaceFirst:bool) -> None: ... + def ClearGeometryShaderReplacement(self, originalValue:str, replaceFirst:bool) -> None: ... + def ClearShaderReplacement(self, shaderType:vtkShader.Type, originalValue:str, replaceFirst:bool) -> None: ... + def ClearTessControlShaderReplacement(self, originalValue:str, replaceFirst:bool) -> None: ... + def ClearTessEvaluationShaderReplacement(self, originalValue:str, replaceFirst:bool) -> None: ... + def ClearVertexShaderReplacement(self, originalValue:str, replaceFirst:bool) -> None: ... + def DeepCopy(self, p:'vtkOpenGLShaderProperty') -> None: ... + def GetNthShaderReplacement(self, index:int, name:str, replaceFirst:bool, replacementValue:str, replaceAll:bool) -> None: ... + def GetNthShaderReplacementTypeAsString(self, index:int) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfShaderReplacements(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLShaderProperty': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLShaderProperty': ... + +class vtkOpenGLSkybox(vtkmodules.vtkRenderingCore.vtkSkybox): + mapper:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLSkybox': ... + def Render(self, ren:'vtkRenderer', mapper:'vtkMapper') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLSkybox': ... + def SetMapper(self, mapper:'vtkMapper') -> None: ... + +class vtkOpenGLSphereMapper(vtkOpenGLPolyDataMapper): + radius:'getset_descriptor' + scale_array:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadius(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLSphereMapper': ... + def Render(self, ren:'vtkRenderer', act:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLSphereMapper': ... + def SetRadius(self, _arg:float) -> None: ... + def SetScaleArray(self, _arg:str) -> None: ... + +class vtkOpenGLState(vtkmodules.vtkCommonCore.vtkObject): + renderer:'getset_descriptor' + shader_cache:'getset_descriptor' + texture_unit_manager:'getset_descriptor' + vbo_cache:'getset_descriptor' + vendor:'getset_descriptor' + version:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ActivateTexture(self, __a:'vtkTextureObject') -> None: ... + def DeactivateTexture(self, __a:'vtkTextureObject') -> None: ... + def GetBlendFuncState(self, __a:MutableSequence[int]) -> None: ... + def GetCurrentDrawFramebufferState(self, drawBinding:int, drawBuffer:int) -> None: ... + def GetDefaultTextureInternalFormat(self, vtktype:int, numComponents:int, needInteger:bool, needFloat:bool, needSRGB:bool) -> int: ... + def GetEnumState(self, name:int) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderer(self) -> str: ... + def GetShaderCache(self) -> 'vtkOpenGLShaderCache': ... + def GetTextureUnitForTexture(self, __a:'vtkTextureObject') -> int: ... + def GetTextureUnitManager(self) -> 'vtkTextureUnitManager': ... + def GetVBOCache(self) -> 'vtkOpenGLVertexBufferObjectCache': ... + def GetVendor(self) -> str: ... + def GetVersion(self) -> str: ... + def Initialize(self, __a:'vtkOpenGLRenderWindow') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLState': ... + def Pop(self) -> None: ... + def PopDrawFramebufferBinding(self) -> None: ... + def PopFramebufferBindings(self) -> None: ... + def PopReadFramebufferBinding(self) -> None: ... + def Push(self) -> None: ... + def PushDrawFramebufferBinding(self) -> None: ... + def PushFramebufferBindings(self) -> None: ... + def PushReadFramebufferBinding(self) -> None: ... + def Reset(self) -> None: ... + def ResetEnumState(self, name:int) -> None: ... + def ResetFramebufferBindings(self) -> None: ... + def ResetGLActiveTexture(self) -> None: ... + def ResetGLBlendEquationState(self) -> None: ... + def ResetGLBlendFuncState(self) -> None: ... + def ResetGLClearColorState(self) -> None: ... + def ResetGLClearDepthState(self) -> None: ... + def ResetGLColorMaskState(self) -> None: ... + def ResetGLCullFaceState(self) -> None: ... + def ResetGLDepthFuncState(self) -> None: ... + def ResetGLDepthMaskState(self) -> None: ... + def ResetGLScissorState(self) -> None: ... + def ResetGLViewportState(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLState': ... + def SetEnumState(self, name:int, value:bool) -> None: ... + def SetTextureUnitManager(self, textureUnitManager:'vtkTextureUnitManager') -> None: ... + def SetVBOCache(self, val:'vtkOpenGLVertexBufferObjectCache') -> None: ... + def VerifyNoActiveTextures(self) -> None: ... + def vtkBindFramebuffer(self, target:int, fo:'vtkOpenGLFramebufferObject') -> None: ... + def vtkDrawBuffers(self, n:int, __b:MutableSequence[int], __c:'vtkOpenGLFramebufferObject') -> None: ... + def vtkReadBuffer(self, __a:int, __b:'vtkOpenGLFramebufferObject') -> None: ... + def vtkglActiveTexture(self, __a:int) -> None: ... + def vtkglBindFramebuffer(self, target:int, fb:int) -> None: ... + def vtkglBlendEquation(self, val:int) -> None: ... + def vtkglBlendEquationSeparate(self, col:int, alpha:int) -> None: ... + def vtkglBlendFunc(self, sfactor:int, dfactor:int) -> None: ... + def vtkglBlendFuncSeparate(self, sfactorRGB:int, dfactorRGB:int, sfactorAlpha:int, dfactorAlpha:int) -> None: ... + def vtkglBlitFramebuffer(self, __a:int, __b:int, __c:int, __d:int, __e:int, __f:int, __g:int, __h:int, __i:int, __j:int) -> None: ... + def vtkglClear(self, mask:int) -> None: ... + def vtkglClearColor(self, red:float, green:float, blue:float, alpha:float) -> None: ... + def vtkglClearDepth(self, depth:float) -> None: ... + def vtkglColorMask(self, r:int, g:int, b:int, a:int) -> None: ... + def vtkglCullFace(self, val:int) -> None: ... + def vtkglDepthFunc(self, val:int) -> None: ... + def vtkglDepthMask(self, flag:int) -> None: ... + def vtkglDisable(self, cap:int) -> None: ... + def vtkglDrawBuffer(self, __a:int) -> None: ... + def vtkglDrawBuffers(self, n:int, __b:MutableSequence[int]) -> None: ... + def vtkglEnable(self, cap:int) -> None: ... + def vtkglGetBooleanv(self, pname:int, params:MutableSequence[int]) -> None: ... + def vtkglGetDoublev(self, pname:int, params:MutableSequence[float]) -> None: ... + def vtkglGetFloatv(self, pname:int, params:MutableSequence[float]) -> None: ... + def vtkglGetIntegerv(self, pname:int, params:MutableSequence[int]) -> None: ... + def vtkglLineWidth(self, __a:float) -> None: ... + def vtkglPixelStorei(self, __a:int, __b:int) -> None: ... + def vtkglPointSize(self, __a:float) -> None: ... + def vtkglReadBuffer(self, __a:int) -> None: ... + def vtkglScissor(self, x:int, y:int, width:int, height:int) -> None: ... + def vtkglStencilFunc(self, func:int, ref:int, mask:int) -> None: ... + def vtkglStencilFuncSeparate(self, face:int, func:int, ref:int, mask:int) -> None: ... + def vtkglStencilMask(self, mask:int) -> None: ... + def vtkglStencilMaskSeparate(self, face:int, mask:int) -> None: ... + def vtkglStencilOp(self, sfail:int, dpfail:int, dppass:int) -> None: ... + def vtkglStencilOpSeparate(self, face:int, sfail:int, dpfail:int, dppass:int) -> None: ... + def vtkglViewport(self, x:int, y:int, width:int, height:int) -> None: ... + +class vtkOpenGLStickMapper(vtkOpenGLPolyDataMapper): + orientation_array:'getset_descriptor' + scale_array:'getset_descriptor' + selection_id_array:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLStickMapper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLStickMapper': ... + def SetOrientationArray(self, _arg:str) -> None: ... + def SetScaleArray(self, _arg:str) -> None: ... + def SetSelectionIdArray(self, _arg:str) -> None: ... + +class vtkOpenGLTextActor(vtkmodules.vtkRenderingCore.vtkTextActor): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLTextActor': ... + def RenderOverlay(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLTextActor': ... + +class vtkOpenGLTextActor3D(vtkmodules.vtkRenderingCore.vtkTextActor3D): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLTextActor3D': ... + def RenderTranslucentPolygonalGeometry(self, viewport:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLTextActor3D': ... + +class vtkOpenGLTextMapper(vtkmodules.vtkRenderingCore.vtkTextMapper): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLTextMapper': ... + def RenderOverlay(self, vp:'vtkViewport', act:'vtkActor2D') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLTextMapper': ... + +class vtkOpenGLUniforms(vtkmodules.vtkRenderingCore.vtkUniforms): + declarations:'getset_descriptor' + number_of_uniforms:'getset_descriptor' + uniform_list_m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDeclarations(self) -> str: ... + def GetNthUniformName(self, uniformIndex:int) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfUniforms(self) -> int: ... + @overload + def GetUniform(self, name:str, value:MutableSequence[int]) -> bool: ... + @overload + def GetUniform(self, name:str, value:MutableSequence[float]) -> bool: ... + def GetUniform1fv(self, name:str, f:MutableSequence[float]) -> bool: ... + def GetUniform1iv(self, name:str, f:MutableSequence[int]) -> bool: ... + def GetUniform2f(self, name:str, v:MutableSequence[float]) -> bool: ... + def GetUniform2fv(self, name:str, f:MutableSequence[float]) -> bool: ... + def GetUniform2i(self, name:str, v:MutableSequence[int]) -> bool: ... + def GetUniform3f(self, name:str, v:MutableSequence[float]) -> bool: ... + def GetUniform3fv(self, name:str, f:MutableSequence[float]) -> bool: ... + def GetUniform3uc(self, name:str, v:MutableSequence[int]) -> bool: ... + def GetUniform4f(self, name:str, v:MutableSequence[float]) -> bool: ... + def GetUniform4fv(self, name:str, f:MutableSequence[float]) -> bool: ... + def GetUniform4uc(self, name:str, v:MutableSequence[int]) -> bool: ... + def GetUniformListMTime(self) -> int: ... + @overload + def GetUniformMatrix(self, name:str, v:'vtkMatrix3x3') -> bool: ... + @overload + def GetUniformMatrix(self, name:str, v:'vtkMatrix4x4') -> bool: ... + def GetUniformMatrix3x3(self, name:str, v:MutableSequence[float]) -> bool: ... + def GetUniformMatrix4x4(self, name:str, v:MutableSequence[float]) -> bool: ... + def GetUniformMatrix4x4v(self, name:str, f:MutableSequence[float]) -> bool: ... + def GetUniformNumberOfComponents(self, name:str) -> int: ... + def GetUniformNumberOfTuples(self, name:str) -> int: ... + def GetUniformScalarType(self, name:str) -> int: ... + def GetUniformf(self, name:str, v:float) -> bool: ... + def GetUniformi(self, name:str, v:int) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLUniforms': ... + def RemoveAllUniforms(self) -> None: ... + def RemoveUniform(self, name:str) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLUniforms': ... + @overload + def SetUniform(self, name:str, tt:vtkUniforms.TupleType, nbComponents:int, value:Sequence[int]) -> None: ... + @overload + def SetUniform(self, name:str, tt:vtkUniforms.TupleType, nbComponents:int, value:Sequence[float]) -> None: ... + def SetUniform1fv(self, name:str, count:int, f:Sequence[float]) -> None: ... + def SetUniform1iv(self, name:str, count:int, f:Sequence[int]) -> None: ... + def SetUniform2f(self, name:str, v:Sequence[float]) -> None: ... + def SetUniform2i(self, name:str, v:Sequence[int]) -> None: ... + def SetUniform3f(self, name:str, v:Sequence[float]) -> None: ... + def SetUniform3uc(self, name:str, v:Sequence[int]) -> None: ... + def SetUniform4f(self, name:str, v:Sequence[float]) -> None: ... + def SetUniform4uc(self, name:str, v:Sequence[int]) -> None: ... + @overload + def SetUniformMatrix(self, name:str, v:'vtkMatrix3x3') -> None: ... + @overload + def SetUniformMatrix(self, name:str, v:'vtkMatrix4x4') -> None: ... + def SetUniformMatrix3x3(self, name:str, v:MutableSequence[float]) -> None: ... + def SetUniformMatrix4x4(self, name:str, v:MutableSequence[float]) -> None: ... + def SetUniformMatrix4x4v(self, name:str, count:int, v:MutableSequence[float]) -> None: ... + def SetUniformf(self, name:str, v:float) -> None: ... + def SetUniformi(self, name:str, v:int) -> None: ... + def SetUniforms(self, p:'vtkShaderProgram') -> bool: ... + +class vtkOpenGLVertexArrayObject(vtkmodules.vtkCommonCore.vtkObject): + force_emulation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def AddAttributeArray(self, program:'vtkShaderProgram', buffer:'vtkOpenGLBufferObject', name:str, offset:int, stride:int, elementType:int, elementTupleSize:int, normalize:bool) -> bool: ... + @overload + def AddAttributeArray(self, program:'vtkShaderProgram', buffer:'vtkOpenGLVertexBufferObject', name:str, offset:int, normalize:bool) -> bool: ... + def AddAttributeArrayWithDivisor(self, program:'vtkShaderProgram', buffer:'vtkOpenGLBufferObject', name:str, offset:int, stride:int, elementType:int, elementTupleSize:int, normalize:bool, divisor:int, isMatrix:bool) -> bool: ... + def AddAttributeMatrixWithDivisor(self, program:'vtkShaderProgram', buffer:'vtkOpenGLBufferObject', name:str, offset:int, stride:int, elementType:int, elementTupleSize:int, normalize:bool, divisor:int, tupleOffset:int) -> bool: ... + def Bind(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLVertexArrayObject': ... + def Release(self) -> None: ... + def ReleaseGraphicsResources(self) -> None: ... + def RemoveAttributeArray(self, name:str) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLVertexArrayObject': ... + def SetForceEmulation(self, val:bool) -> None: ... + def ShaderProgramChanged(self) -> None: ... + +class vtkOpenGLVertexBufferObject(vtkOpenGLBufferObject): + cache:'getset_descriptor' + camera:'getset_descriptor' + coord_shift_and_scale_enabled:'getset_descriptor' + coord_shift_and_scale_method:'getset_descriptor' + data_type:'getset_descriptor' + data_type_size:'getset_descriptor' + global_coord_shift_and_scale_enabled:'getset_descriptor' + number_of_components:'getset_descriptor' + number_of_tuples:'getset_descriptor' + packed_vbo:'getset_descriptor' + prop3d:'getset_descriptor' + scale:'getset_descriptor' + shift:'getset_descriptor' + stride:'getset_descriptor' + upload_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AppendDataArray(self, array:'vtkDataArray') -> None: ... + def GetCoordShiftAndScaleEnabled(self) -> bool: ... + def GetCoordShiftAndScaleMethod(self) -> int: ... + def GetDataType(self) -> int: ... + def GetDataTypeSize(self) -> int: ... + @staticmethod + def GetGlobalCoordShiftAndScaleEnabled() -> int: ... + def GetNumberOfComponents(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self) -> int: ... + def GetPackedVBO(self) -> Tuple[float, float]: ... + def GetScale(self) -> Tuple[float, float]: ... + def GetShift(self) -> Tuple[float, float]: ... + def GetStride(self) -> int: ... + def GetUploadTime(self) -> 'vtkTimeStamp': ... + @staticmethod + def GlobalCoordShiftAndScaleEnabledOff() -> None: ... + @staticmethod + def GlobalCoordShiftAndScaleEnabledOn() -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLVertexBufferObject': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLVertexBufferObject': ... + def SetCache(self, cache:'vtkOpenGLVertexBufferObjectCache') -> None: ... + def SetCamera(self, cam:'vtkCamera') -> None: ... + def SetCoordShiftAndScaleMethod(self, meth:int) -> None: ... + def SetDataType(self, v:int) -> None: ... + @staticmethod + def SetGlobalCoordShiftAndScaleEnabled(val:int) -> None: ... + def SetProp3D(self, prop3d:'vtkProp3D') -> None: ... + @overload + def SetScale(self, scale:Sequence[float]) -> None: ... + @overload + def SetScale(self, x:float, y:float, z:float) -> None: ... + @overload + def SetShift(self, shift:Sequence[float]) -> None: ... + @overload + def SetShift(self, x:float, y:float, z:float) -> None: ... + def SetStride(self, _arg:int) -> None: ... + def UpdateShiftScale(self, da:'vtkDataArray') -> None: ... + def UploadDataArray(self, array:'vtkDataArray') -> None: ... + def UploadVBO(self) -> None: ... + +class vtkOpenGLVertexBufferObjectCache(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVBO(self, array:'vtkDataArray', destType:int) -> 'vtkOpenGLVertexBufferObject': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLVertexBufferObjectCache': ... + def RemoveVBO(self, vbo:'vtkOpenGLVertexBufferObject') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLVertexBufferObjectCache': ... + +class vtkOpenGLVertexBufferObjectGroup(vtkmodules.vtkCommonCore.vtkObject): + m_time:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddAllAttributesToVAO(self, program:'vtkShaderProgram', vao:'vtkOpenGLVertexArrayObject') -> None: ... + def AppendDataArray(self, attribute:str, da:'vtkDataArray', destType:int) -> None: ... + def ArrayExists(self, attribute:str, da:'vtkDataArray', offset:int, totalOffset:int) -> bool: ... + @overload + def BuildAllVBOs(self, __a:'vtkOpenGLVertexBufferObjectCache') -> None: ... + @overload + def BuildAllVBOs(self, __a:'vtkViewport') -> None: ... + @overload + def CacheDataArray(self, attribute:str, da:'vtkDataArray', cache:'vtkOpenGLVertexBufferObjectCache', destType:int) -> None: ... + @overload + def CacheDataArray(self, attribute:str, da:'vtkDataArray', vp:'vtkViewport', destType:int) -> None: ... + def ClearAllDataArrays(self) -> None: ... + def ClearAllVBOs(self) -> None: ... + def GetMTime(self) -> int: ... + def GetNumberOfComponents(self, attribute:str) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTuples(self, attribute:str) -> int: ... + def GetVBO(self, attribute:str) -> 'vtkOpenGLVertexBufferObject': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLVertexBufferObjectGroup': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RemoveAttribute(self, attribute:str) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLVertexBufferObjectGroup': ... + +class vtkOrderIndependentTranslucentPass(vtkOpenGLRenderPass): + translucent_pass:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTranslucentPass(self) -> 'vtkRenderPass': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOrderIndependentTranslucentPass': ... + def PostReplaceShaderValues(self, vertexShader:str, geometryShader:str, fragmentShader:str, mapper:'vtkAbstractMapper', prop:'vtkProp') -> bool: ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOrderIndependentTranslucentPass': ... + def SetTranslucentPass(self, translucentPass:'vtkRenderPass') -> None: ... + +class vtkOutlineGlowPass(vtkImageProcessingPass): + outline_intensity:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutlineIntensity(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOutlineGlowPass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOutlineGlowPass': ... + def SetOutlineIntensity(self, _arg:float) -> None: ... + +class vtkOverlayPass(vtkDefaultPass): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOverlayPass': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOverlayPass': ... + +class vtkPBRIrradianceTexture(vtkOpenGLTexture): + convert_to_linear:'getset_descriptor' + input_texture:'getset_descriptor' + irradiance_size:'getset_descriptor' + irradiance_step:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConvertToLinearOff(self) -> None: ... + def ConvertToLinearOn(self) -> None: ... + def GetConvertToLinear(self) -> bool: ... + def GetInputTexture(self) -> 'vtkOpenGLTexture': ... + def GetIrradianceSize(self) -> int: ... + def GetIrradianceStep(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Load(self, __a:'vtkRenderer') -> None: ... + def NewInstance(self) -> 'vtkPBRIrradianceTexture': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPBRIrradianceTexture': ... + def SetConvertToLinear(self, _arg:bool) -> None: ... + def SetInputTexture(self, texture:'vtkOpenGLTexture') -> None: ... + def SetIrradianceSize(self, _arg:int) -> None: ... + def SetIrradianceStep(self, _arg:float) -> None: ... + +class vtkPBRLUTTexture(vtkOpenGLTexture): + lut_samples:'getset_descriptor' + lut_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLUTSamples(self) -> int: ... + def GetLUTSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Load(self, __a:'vtkRenderer') -> None: ... + def NewInstance(self) -> 'vtkPBRLUTTexture': ... + def Render(self, ren:'vtkRenderer') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPBRLUTTexture': ... + def SetLUTSamples(self, _arg:int) -> None: ... + def SetLUTSize(self, _arg:int) -> None: ... + +class vtkPBRPrefilterTexture(vtkOpenGLTexture): + convert_to_linear:'getset_descriptor' + half_precision:'getset_descriptor' + input_texture:'getset_descriptor' + prefilter_levels:'getset_descriptor' + prefilter_max_samples:'getset_descriptor' + prefilter_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ConvertToLinearOff(self) -> None: ... + def ConvertToLinearOn(self) -> None: ... + def GetConvertToLinear(self) -> bool: ... + def GetHalfPrecision(self) -> bool: ... + def GetInputTexture(self) -> 'vtkOpenGLTexture': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPrefilterLevels(self) -> int: ... + def GetPrefilterMaxSamples(self) -> int: ... + def GetPrefilterSize(self) -> int: ... + def HalfPrecisionOff(self) -> None: ... + def HalfPrecisionOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def Load(self, __a:'vtkRenderer') -> None: ... + def NewInstance(self) -> 'vtkPBRPrefilterTexture': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPBRPrefilterTexture': ... + def SetConvertToLinear(self, _arg:bool) -> None: ... + def SetHalfPrecision(self, _arg:bool) -> None: ... + def SetInputTexture(self, __a:'vtkOpenGLTexture') -> None: ... + def SetPrefilterLevels(self, _arg:int) -> None: ... + def SetPrefilterMaxSamples(self, _arg:int) -> None: ... + +class vtkPanoramicProjectionPass(vtkImageProcessingPass): + Azimuthal:int + Equirectangular:int + angle:'getset_descriptor' + cube_resolution:'getset_descriptor' + interpolate:'getset_descriptor' + projection_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetAngle(self) -> float: ... + def GetAngleMaxValue(self) -> float: ... + def GetAngleMinValue(self) -> float: ... + def GetCubeResolution(self) -> int: ... + def GetInterpolate(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProjectionType(self) -> int: ... + def GetProjectionTypeMaxValue(self) -> int: ... + def GetProjectionTypeMinValue(self) -> int: ... + def InterpolateOff(self) -> None: ... + def InterpolateOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPanoramicProjectionPass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPanoramicProjectionPass': ... + def SetAngle(self, _arg:float) -> None: ... + def SetCubeResolution(self, _arg:int) -> None: ... + def SetInterpolate(self, _arg:bool) -> None: ... + def SetProjectionType(self, _arg:int) -> None: ... + def SetProjectionTypeToAzimuthal(self) -> None: ... + def SetProjectionTypeToEquirectangular(self) -> None: ... + +class vtkPixelBufferObject(vtkmodules.vtkCommonCore.vtkObject): + class BufferType(int): ... + DynamicCopy:int + DynamicDraw:int + DynamicRead:int + NumberOfUsages:int + PACKED_BUFFER:'BufferType' + StaticCopy:int + StaticDraw:int + StaticRead:int + StreamCopy:int + StreamDraw:int + StreamRead:int + UNPACKED_BUFFER:'BufferType' + components:'getset_descriptor' + context:'getset_descriptor' + handle:'getset_descriptor' + size:'getset_descriptor' + type:'getset_descriptor' + usage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def Allocate(self, vtkType:int, numtuples:int, comps:int, mode:'BufferType') -> None: ... + @overload + def Allocate(self, nbytes:int, mode:'BufferType') -> None: ... + def Bind(self, buffer:'BufferType') -> None: ... + def BindToPackedBuffer(self) -> None: ... + def BindToUnPackedBuffer(self) -> None: ... + def Download1D(self, type:int, data:Pointer, dim:int, numcomps:int, increment:int) -> bool: ... + def Download2D(self, type:int, data:Pointer, dims:MutableSequence[int], numcomps:int, increments:MutableSequence[int]) -> bool: ... + def Download3D(self, type:int, data:Pointer, dims:MutableSequence[int], numcomps:int, increments:MutableSequence[int]) -> bool: ... + def GetComponents(self) -> int: ... + def GetContext(self) -> 'vtkRenderWindow': ... + def GetHandle(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSize(self) -> int: ... + def GetType(self) -> int: ... + def GetUsage(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsSupported(renWin:'vtkRenderWindow') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @overload + def MapBuffer(self, type:int, numtuples:int, comps:int, mode:'BufferType') -> Pointer: ... + @overload + def MapBuffer(self, numbytes:int, mode:'BufferType') -> Pointer: ... + @overload + def MapBuffer(self, mode:'BufferType') -> Pointer: ... + @overload + def MapPackedBuffer(self) -> Pointer: ... + @overload + def MapPackedBuffer(self, type:int, numtuples:int, comps:int) -> Pointer: ... + @overload + def MapPackedBuffer(self, numbytes:int) -> Pointer: ... + @overload + def MapUnpackedBuffer(self) -> Pointer: ... + @overload + def MapUnpackedBuffer(self, type:int, numtuples:int, comps:int) -> Pointer: ... + @overload + def MapUnpackedBuffer(self, numbytes:int) -> Pointer: ... + def NewInstance(self) -> 'vtkPixelBufferObject': ... + def ReleaseMemory(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPixelBufferObject': ... + def SetComponents(self, _arg:int) -> None: ... + def SetContext(self, context:'vtkRenderWindow') -> None: ... + @overload + def SetSize(self, _arg:int) -> None: ... + @overload + def SetSize(self, nTups:int, nComps:int) -> None: ... + def SetType(self, _arg:int) -> None: ... + def SetUsage(self, _arg:int) -> None: ... + def UnBind(self) -> None: ... + def UnmapBuffer(self, mode:'BufferType') -> None: ... + def UnmapPackedBuffer(self) -> None: ... + def UnmapUnpackedBuffer(self) -> None: ... + def Upload1D(self, type:int, data:Pointer, numtuples:int, comps:int, increment:int) -> bool: ... + def Upload2D(self, type:int, data:Pointer, dims:MutableSequence[int], comps:int, increments:MutableSequence[int]) -> bool: ... + def Upload3D(self, type:int, data:Pointer, dims:MutableSequence[int], comps:int, increments:MutableSequence[int], components:int, componentList:MutableSequence[int]) -> bool: ... + +class vtkPointFillPass(vtkDepthImageProcessingPass): + candidate_point_ratio:'getset_descriptor' + minimum_candidate_angle:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCandidatePointRatio(self) -> float: ... + def GetMinimumCandidateAngle(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPointFillPass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPointFillPass': ... + def SetCandidatePointRatio(self, _arg:float) -> None: ... + def SetMinimumCandidateAngle(self, _arg:float) -> None: ... + +class vtkRenderPassCollection(vtkmodules.vtkCommonCore.vtkCollection): + last_render_pass:'getset_descriptor' + next_render_pass:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddItem(self, pass_:'vtkRenderPass') -> None: ... + def GetLastRenderPass(self) -> 'vtkRenderPass': ... + def GetNextRenderPass(self) -> 'vtkRenderPass': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRenderPassCollection': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderPassCollection': ... + +class vtkRenderStepsPass(vtkmodules.vtkRenderingCore.vtkRenderPass): + camera_pass:'getset_descriptor' + lights_pass:'getset_descriptor' + opaque_pass:'getset_descriptor' + overlay_pass:'getset_descriptor' + post_process_pass:'getset_descriptor' + translucent_pass:'getset_descriptor' + volumetric_pass:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCameraPass(self) -> 'vtkCameraPass': ... + def GetLightsPass(self) -> 'vtkRenderPass': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOpaquePass(self) -> 'vtkRenderPass': ... + def GetOverlayPass(self) -> 'vtkRenderPass': ... + def GetPostProcessPass(self) -> 'vtkRenderPass': ... + def GetTranslucentPass(self) -> 'vtkRenderPass': ... + def GetVolumetricPass(self) -> 'vtkRenderPass': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRenderStepsPass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderStepsPass': ... + def SetCameraPass(self, __a:'vtkCameraPass') -> None: ... + def SetLightsPass(self, __a:'vtkRenderPass') -> None: ... + def SetOpaquePass(self, __a:'vtkRenderPass') -> None: ... + def SetOverlayPass(self, __a:'vtkRenderPass') -> None: ... + def SetPostProcessPass(self, __a:'vtkRenderPass') -> None: ... + def SetTranslucentPass(self, __a:'vtkRenderPass') -> None: ... + def SetVolumetricPass(self, __a:'vtkRenderPass') -> None: ... + +class vtkRenderbuffer(vtkmodules.vtkCommonCore.vtkObject): + context:'getset_descriptor' + handle:'getset_descriptor' + height:'getset_descriptor' + samples:'getset_descriptor' + width:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def Create(self, format:int, width:int, height:int) -> int: ... + @overload + def Create(self, format:int, width:int, height:int, samples:int) -> int: ... + def CreateColorAttachment(self, width:int, height:int) -> int: ... + def CreateDepthAttachment(self, width:int, height:int) -> int: ... + def GetContext(self) -> 'vtkRenderWindow': ... + def GetHandle(self) -> int: ... + def GetHeight(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSamples(self) -> int: ... + def GetWidth(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsSupported(renWin:'vtkRenderWindow') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRenderbuffer': ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + def Resize(self, width:int, height:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderbuffer': ... + def SetContext(self, win:'vtkRenderWindow') -> None: ... + +class vtkSSAAPass(vtkmodules.vtkRenderingCore.vtkRenderPass): + color_format:'getset_descriptor' + delegate_pass:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetColorFormat(self) -> int: ... + def GetDelegatePass(self) -> 'vtkRenderPass': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSSAAPass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSSAAPass': ... + def SetColorFormat(self, _arg:int) -> None: ... + def SetDelegatePass(self, delegatePass:'vtkRenderPass') -> None: ... + +class vtkSSAOPass(vtkImageProcessingPass): + bias:'getset_descriptor' + blur:'getset_descriptor' + depth_format:'getset_descriptor' + intensity_scale:'getset_descriptor' + intensity_shift:'getset_descriptor' + kernel_size:'getset_descriptor' + radius:'getset_descriptor' + volume_opacity_threshold:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BlurOff(self) -> None: ... + def BlurOn(self) -> None: ... + def GetBias(self) -> float: ... + def GetBlur(self) -> bool: ... + def GetIntensityScale(self) -> float: ... + def GetIntensityShift(self) -> float: ... + def GetIntensityShiftMaxValue(self) -> float: ... + def GetIntensityShiftMinValue(self) -> float: ... + def GetKernelSize(self) -> int: ... + def GetKernelSizeMaxValue(self) -> int: ... + def GetKernelSizeMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRadius(self) -> float: ... + def GetVolumeOpacityThreshold(self) -> float: ... + def GetVolumeOpacityThresholdMaxValue(self) -> float: ... + def GetVolumeOpacityThresholdMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSSAOPass': ... + def PostReplaceShaderValues(self, vertexShader:str, geometryShader:str, fragmentShader:str, mapper:'vtkAbstractMapper', prop:'vtkProp') -> bool: ... + def PreReplaceShaderValues(self, vertexShader:str, geometryShader:str, fragmentShader:str, mapper:'vtkAbstractMapper', prop:'vtkProp') -> bool: ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSSAOPass': ... + def SetBias(self, _arg:float) -> None: ... + def SetBlur(self, _arg:bool) -> None: ... + def SetDepthFormat(self, _arg:int) -> None: ... + def SetIntensityScale(self, _arg:float) -> None: ... + def SetIntensityShift(self, _arg:float) -> None: ... + def SetKernelSize(self, _arg:int) -> None: ... + def SetRadius(self, _arg:float) -> None: ... + def SetShaderParameters(self, program:'vtkShaderProgram', mapper:'vtkAbstractMapper', prop:'vtkProp', VAO:'vtkOpenGLVertexArrayObject'=...) -> bool: ... + def SetVolumeOpacityThreshold(self, _arg:float) -> None: ... + +class vtkSequencePass(vtkmodules.vtkRenderingCore.vtkRenderPass): + passes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPasses(self) -> 'vtkRenderPassCollection': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSequencePass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSequencePass': ... + def SetPasses(self, passes:'vtkRenderPassCollection') -> None: ... + +class vtkShader(vtkmodules.vtkCommonCore.vtkObject): + class Type(int): ... + Compute:'Type' + Fragment:'Type' + Geometry:'Type' + TessControl:'Type' + TessEvaluation:'Type' + Unknown:'Type' + Vertex:'Type' + error:'getset_descriptor' + handle:'getset_descriptor' + source:'getset_descriptor' + type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Cleanup(self) -> None: ... + def Compile(self) -> bool: ... + def GetError(self) -> str: ... + def GetHandle(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSource(self) -> str: ... + def GetType(self) -> 'Type': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsComputeShaderSupported() -> bool: ... + @staticmethod + def IsTessellationShaderSupported() -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkShader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkShader': ... + def SetSource(self, source:str) -> None: ... + def SetType(self, type:'Type') -> None: ... + +class vtkShaderProgram(vtkmodules.vtkCommonCore.vtkObject): + class UniformGroups(int): ... + class NormalizeOption(int): ... + CameraGroup:'UniformGroups' + LightingGroup:'UniformGroups' + NoNormalize:'NormalizeOption' + Normalize:'NormalizeOption' + UserGroup:'UniformGroups' + compiled:'getset_descriptor' + compute_shader:'getset_descriptor' + error:'getset_descriptor' + file_name_prefix_for_debugging:'getset_descriptor' + fragment_shader:'getset_descriptor' + geometry_shader:'getset_descriptor' + handle:'getset_descriptor' + md5_hash:'getset_descriptor' + number_of_outputs:'getset_descriptor' + tess_control_shader:'getset_descriptor' + tess_evaluation_shader:'getset_descriptor' + transform_feedback:'getset_descriptor' + vertex_shader:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CompiledOff(self) -> None: ... + def CompiledOn(self) -> None: ... + def DisableAttributeArray(self, name:str) -> bool: ... + def EnableAttributeArray(self, name:str) -> bool: ... + def FindAttributeArray(self, name:str) -> int: ... + def FindUniform(self, name:str) -> int: ... + def GetCompiled(self) -> bool: ... + def GetComputeShader(self) -> 'vtkShader': ... + def GetError(self) -> str: ... + def GetFileNamePrefixForDebugging(self) -> str: ... + def GetFragmentShader(self) -> 'vtkShader': ... + def GetGeometryShader(self) -> 'vtkShader': ... + def GetHandle(self) -> int: ... + def GetMD5Hash(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTessControlShader(self) -> 'vtkShader': ... + def GetTessEvaluationShader(self) -> 'vtkShader': ... + def GetTransformFeedback(self) -> 'vtkTransformFeedback': ... + def GetUniformGroupUpdateTime(self, __a:int) -> int: ... + def GetVertexShader(self) -> 'vtkShader': ... + def IsA(self, type:str) -> int: ... + def IsAttributeUsed(self, name:str) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def IsUniformUsed(self, __a:str) -> bool: ... + def NewInstance(self) -> 'vtkShaderProgram': ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkShaderProgram': ... + def SetCompiled(self, _arg:bool) -> None: ... + def SetComputeShader(self, __a:'vtkShader') -> None: ... + def SetFileNamePrefixForDebugging(self, _arg:str) -> None: ... + def SetFragmentShader(self, __a:'vtkShader') -> None: ... + def SetGeometryShader(self, __a:'vtkShader') -> None: ... + def SetMD5Hash(self, hash:str) -> None: ... + def SetNumberOfOutputs(self, _arg:int) -> None: ... + def SetTessControlShader(self, __a:'vtkShader') -> None: ... + def SetTessEvaluationShader(self, __a:'vtkShader') -> None: ... + def SetTransformFeedback(self, tfc:'vtkTransformFeedback') -> None: ... + def SetUniform1fv(self, name:str, count:int, f:Sequence[float]) -> bool: ... + def SetUniform1iv(self, name:str, count:int, f:Sequence[int]) -> bool: ... + def SetUniform2f(self, name:str, v:Sequence[float]) -> bool: ... + def SetUniform2fv(self, name:str, count:int, f:Sequence[float]) -> bool: ... + def SetUniform2i(self, name:str, v:Sequence[int]) -> bool: ... + def SetUniform3f(self, name:str, v:Sequence[float]) -> bool: ... + def SetUniform3fv(self, name:str, count:int, f:Sequence[float]) -> bool: ... + def SetUniform3uc(self, name:str, v:Sequence[int]) -> bool: ... + def SetUniform4f(self, name:str, v:Sequence[float]) -> bool: ... + def SetUniform4fv(self, name:str, count:int, f:Sequence[float]) -> bool: ... + def SetUniform4uc(self, name:str, v:Sequence[int]) -> bool: ... + def SetUniformGroupUpdateTime(self, __a:int, tm:int) -> None: ... + @overload + def SetUniformMatrix(self, name:str, v:'vtkMatrix3x3') -> bool: ... + @overload + def SetUniformMatrix(self, name:str, v:'vtkMatrix4x4') -> bool: ... + def SetUniformMatrix3x3(self, name:str, v:MutableSequence[float]) -> bool: ... + def SetUniformMatrix4x4(self, name:str, v:MutableSequence[float]) -> bool: ... + def SetUniformMatrix4x4v(self, name:str, count:int, v:MutableSequence[float]) -> bool: ... + def SetUniformf(self, name:str, v:float) -> bool: ... + def SetUniformi(self, name:str, v:int) -> bool: ... + def SetVertexShader(self, __a:'vtkShader') -> None: ... + @overload + @staticmethod + def Substitute(source:str, search:str, replace:str, all:bool=True) -> bool: ... + @overload + @staticmethod + def Substitute(shader:'vtkShader', search:str, replace:str, all:bool=True) -> bool: ... + def UseAttributeArray(self, name:str, offset:int, stride:int, elementType:int, elementTupleSize:int, normalize:'NormalizeOption') -> bool: ... + def isBound(self) -> bool: ... + +class vtkShadowMapBakerPass(vtkOpenGLRenderPass): + composite_z_pass:'getset_descriptor' + exponential_constant:'getset_descriptor' + has_shadows:'getset_descriptor' + need_update:'getset_descriptor' + opaque_sequence:'getset_descriptor' + resolution:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCompositeZPass(self) -> 'vtkRenderPass': ... + def GetExponentialConstant(self) -> float: ... + def GetHasShadows(self) -> bool: ... + def GetNeedUpdate(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOpaqueSequence(self) -> 'vtkRenderPass': ... + def GetResolution(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LightCreatesShadow(self, l:'vtkLight') -> bool: ... + def NewInstance(self) -> 'vtkShadowMapBakerPass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkShadowMapBakerPass': ... + def SetCompositeZPass(self, compositeZPass:'vtkRenderPass') -> None: ... + def SetExponentialConstant(self, _arg:float) -> None: ... + def SetOpaqueSequence(self, opaqueSequence:'vtkRenderPass') -> None: ... + def SetResolution(self, _arg:int) -> None: ... + def SetUpToDate(self) -> None: ... + +class vtkShadowMapPass(vtkOpenGLRenderPass): + fragment_declaration:'getset_descriptor' + fragment_implementation:'getset_descriptor' + opaque_sequence:'getset_descriptor' + shadow_map_baker_pass:'getset_descriptor' + shadow_map_texture_units:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFragmentDeclaration(self) -> str: ... + def GetFragmentImplementation(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOpaqueSequence(self) -> 'vtkRenderPass': ... + def GetShadowMapBakerPass(self) -> 'vtkShadowMapBakerPass': ... + def GetShadowMapTextureUnits(self) -> Tuple[int, int]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkShadowMapPass': ... + def PostReplaceShaderValues(self, vertexShader:str, geometryShader:str, fragmentShader:str, mapper:'vtkAbstractMapper', prop:'vtkProp') -> bool: ... + def PreReplaceShaderValues(self, vertexShader:str, geometryShader:str, fragmentShader:str, mapper:'vtkAbstractMapper', prop:'vtkProp') -> bool: ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkShadowMapPass': ... + def SetOpaqueSequence(self, opaqueSequence:'vtkRenderPass') -> None: ... + def SetShaderParameters(self, program:'vtkShaderProgram', mapper:'vtkAbstractMapper', prop:'vtkProp', VAO:'vtkOpenGLVertexArrayObject'=...) -> bool: ... + def SetShadowMapBakerPass(self, shadowMapBakerPass:'vtkShadowMapBakerPass') -> None: ... + @staticmethod + def ShadowMapPass() -> 'vtkInformationObjectBaseKey': ... + def ShadowMapTransforms(self) -> Tuple[float, float]: ... + +class vtkSimpleMotionBlurPass(vtkDepthImageProcessingPass): + color_format:'getset_descriptor' + color_texture:'getset_descriptor' + depth_format:'getset_descriptor' + depth_texture:'getset_descriptor' + sub_frames:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetColorTexture(self) -> 'vtkTextureObject': ... + def GetDepthTexture(self) -> 'vtkTextureObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSubFrames(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSimpleMotionBlurPass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSimpleMotionBlurPass': ... + def SetColorFormat(self, _arg:int) -> None: ... + def SetDepthFormat(self, _arg:int) -> None: ... + def SetSubFrames(self, subFrames:int) -> None: ... + +class vtkSobelGradientMagnitudePass(vtkImageProcessingPass): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSobelGradientMagnitudePass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSobelGradientMagnitudePass': ... + +class vtkTextureObject(vtkmodules.vtkCommonCore.vtkObject): + AlwaysTrue:int + ClampToBorder:int + ClampToEdge:int + Equal:int + Fixed16:int + Fixed24:int + Fixed32:int + Fixed8:int + Float16:int + Float32:int + Gequal:int + Greater:int + Lequal:int + Less:int + Linear:int + LinearMipmapLinear:int + LinearMipmapNearest:int + MirroredRepeat:int + Native:int + Nearest:int + NearestMipmapLinear:int + NearestMipmapNearest:int + Never:int + NotEqual:int + NumberOfDepthFormats:int + NumberOfDepthTextureCompareFunctions:int + NumberOfMinificationModes:int + NumberOfWrapModes:int + Repeat:int + auto_parameters:'getset_descriptor' + base_level:'getset_descriptor' + border_color:'getset_descriptor' + components:'getset_descriptor' + context:'getset_descriptor' + data_type:'getset_descriptor' + depth:'getset_descriptor' + depth_texture_compare:'getset_descriptor' + depth_texture_compare_function:'getset_descriptor' + format:'getset_descriptor' + generate_mipmap:'getset_descriptor' + handle:'getset_descriptor' + height:'getset_descriptor' + internal_format:'getset_descriptor' + linear_magnification:'getset_descriptor' + magnification_filter:'getset_descriptor' + max_level:'getset_descriptor' + max_lod:'getset_descriptor' + maximum_anisotropic_filtering:'getset_descriptor' + maximum_texture_size3d:'getset_descriptor' + min_lod:'getset_descriptor' + minification_filter:'getset_descriptor' + number_of_dimensions:'getset_descriptor' + require_depth_buffer_float:'getset_descriptor' + require_texture_float:'getset_descriptor' + require_texture_integer:'getset_descriptor' + samples:'getset_descriptor' + supports_depth_buffer_float:'getset_descriptor' + supports_texture_float:'getset_descriptor' + supports_texture_integer:'getset_descriptor' + target:'getset_descriptor' + texture_unit:'getset_descriptor' + tuples:'getset_descriptor' + use_srgb_color_space:'getset_descriptor' + vtk_data_type:'getset_descriptor' + width:'getset_descriptor' + wrap_r:'getset_descriptor' + wrap_s:'getset_descriptor' + wrap_t:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Activate(self) -> None: ... + def Allocate1D(self, width:int, numComps:int, vtkType:int) -> bool: ... + def Allocate2D(self, width:int, height:int, numComps:int, vtkType:int, level:int=0) -> bool: ... + def Allocate3D(self, width:int, height:int, depth:int, numComps:int, vtkType:int) -> bool: ... + def AllocateDepth(self, width:int, height:int, internalFormat:int) -> bool: ... + def AllocateDepthStencil(self, width:int, height:int) -> bool: ... + def AllocateProxyTexture3D(self, width:int, height:int, depth:int, numComps:int, dataType:int) -> bool: ... + def AssignToExistingTexture(self, handle:int, target:int) -> None: ... + def AutoParametersOff(self) -> None: ... + def AutoParametersOn(self) -> None: ... + def Bind(self) -> None: ... + def CopyFromFrameBuffer(self, srcXmin:int, srcYmin:int, dstXmin:int, dstYmin:int, width:int, height:int) -> None: ... + @overload + def CopyToFrameBuffer(self, program:'vtkShaderProgram', vao:'vtkOpenGLVertexArrayObject') -> None: ... + @overload + def CopyToFrameBuffer(self, srcXmin:int, srcYmin:int, srcXmax:int, srcYmax:int, dstXmin:int, dstYmin:int, dstXmax:int, dstYmax:int, dstSizeX:int, dstSizeY:int, program:'vtkShaderProgram', vao:'vtkOpenGLVertexArrayObject') -> None: ... + @overload + def CopyToFrameBuffer(self, srcXmin:int, srcYmin:int, srcXmax:int, srcYmax:int, dstXmin:int, dstYmin:int, dstSizeX:int, dstSizeY:int, program:'vtkShaderProgram', vao:'vtkOpenGLVertexArrayObject') -> None: ... + @overload + def CopyToFrameBuffer(self, tcoords:MutableSequence[float], verts:MutableSequence[float], program:'vtkShaderProgram', vao:'vtkOpenGLVertexArrayObject') -> None: ... + def Create1D(self, numComps:int, pbo:'vtkPixelBufferObject', shaderSupportsTextureInt:bool) -> bool: ... + def Create1DFromRaw(self, width:int, numComps:int, dataType:int, data:Pointer) -> bool: ... + @overload + def Create2D(self, width:int, height:int, numComps:int, pbo:'vtkPixelBufferObject', shaderSupportsTextureInt:bool) -> bool: ... + @overload + def Create2D(self, width:int, height:int, numComps:int, vtktype:int, __e:bool) -> bool: ... + def Create2DArrayFromRaw(self, width:int, height:int, numComps:int, dataType:int, nbLayers:int, data:Pointer) -> bool: ... + def Create2DFromRaw(self, width:int, height:int, numComps:int, dataType:int, data:Pointer) -> bool: ... + @overload + def Create3D(self, width:int, height:int, depth:int, numComps:int, pbo:'vtkPixelBufferObject', shaderSupportsTextureInt:bool) -> bool: ... + @overload + def Create3D(self, width:int, height:int, depth:int, numComps:int, vtktype:int, __f:bool) -> bool: ... + def Create3DFromRaw(self, width:int, height:int, depth:int, numComps:int, dataType:int, data:Pointer) -> bool: ... + def CreateDepth(self, width:int, height:int, internalFormat:int, pbo:'vtkPixelBufferObject') -> bool: ... + def CreateDepthFromRaw(self, width:int, height:int, internalFormat:int, rawType:int, raw:Pointer) -> bool: ... + def CreateTextureBuffer(self, numValues:int, numComps:int, dataType:int, bo:'vtkOpenGLBufferObject') -> bool: ... + def Deactivate(self) -> None: ... + @overload + def Download(self) -> 'vtkPixelBufferObject': ... + @overload + def Download(self, target:int, level:int) -> 'vtkPixelBufferObject': ... + def EmulateTextureBufferWith2DTextures(self, numValues:int, numComps:int, dataType:int, bo:'vtkOpenGLBufferObject') -> bool: ... + def GetAutoParameters(self) -> int: ... + def GetBaseLevel(self) -> int: ... + def GetBorderColor(self) -> Tuple[float, float, float, float]: ... + def GetComponents(self) -> int: ... + def GetContext(self) -> 'vtkOpenGLRenderWindow': ... + def GetDataType(self, vtk_scalar_type:int) -> int: ... + def GetDefaultDataType(self, vtk_scalar_type:int) -> int: ... + def GetDefaultFormat(self, vtktype:int, numComps:int, shaderSupportsTextureInt:bool) -> int: ... + def GetDefaultInternalFormat(self, vtktype:int, numComps:int, shaderSupportsTextureInt:bool) -> int: ... + def GetDepth(self) -> int: ... + def GetDepthTextureCompare(self) -> bool: ... + def GetDepthTextureCompareFunction(self) -> int: ... + def GetFormat(self, vtktype:int, numComps:int, shaderSupportsTextureInt:bool) -> int: ... + def GetGenerateMipmap(self) -> bool: ... + def GetHandle(self) -> int: ... + def GetHeight(self) -> int: ... + def GetInternalFormat(self, vtktype:int, numComps:int, shaderSupportsTextureInt:bool) -> int: ... + def GetLinearMagnification(self) -> bool: ... + def GetMagnificationFilter(self) -> int: ... + def GetMagnificationFilterMode(self, vtktype:int) -> int: ... + def GetMaxLOD(self) -> float: ... + def GetMaxLevel(self) -> int: ... + def GetMaximumAnisotropicFiltering(self) -> float: ... + @staticmethod + def GetMaximumTextureSize(context:'vtkOpenGLRenderWindow') -> int: ... + @overload + @staticmethod + def GetMaximumTextureSize3D(context:'vtkOpenGLRenderWindow') -> int: ... + @overload + def GetMaximumTextureSize3D(self) -> int: ... + def GetMinLOD(self) -> float: ... + def GetMinificationFilter(self) -> int: ... + def GetMinificationFilterMode(self, vtktype:int) -> int: ... + def GetNumberOfDimensions(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRequireDepthBufferFloat(self) -> bool: ... + def GetRequireTextureFloat(self) -> bool: ... + def GetRequireTextureInteger(self) -> bool: ... + def GetSamples(self) -> int: ... + def GetShiftAndScale(self, shift:float, scale:float) -> None: ... + def GetSupportsDepthBufferFloat(self) -> bool: ... + def GetSupportsTextureFloat(self) -> bool: ... + def GetSupportsTextureInteger(self) -> bool: ... + def GetTarget(self) -> int: ... + def GetTextureUnit(self) -> int: ... + def GetTuples(self) -> int: ... + def GetUseSRGBColorSpace(self) -> bool: ... + def GetVTKDataType(self) -> int: ... + def GetWidth(self) -> int: ... + def GetWrapR(self) -> int: ... + def GetWrapRMode(self, vtktype:int) -> int: ... + def GetWrapS(self) -> int: ... + def GetWrapSMode(self, vtktype:int) -> int: ... + def GetWrapT(self) -> int: ... + def GetWrapTMode(self, vtktype:int) -> int: ... + def IsA(self, type:str) -> int: ... + def IsBound(self) -> bool: ... + @overload + @staticmethod + def IsSupported(renWin:'vtkOpenGLRenderWindow', requireTexFloat:bool, requireDepthFloat:bool, requireTexInt:bool) -> bool: ... + @overload + @staticmethod + def IsSupported(renWin:'vtkOpenGLRenderWindow') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTextureObject': ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + def ResetFormatAndType(self) -> None: ... + def Resize(self, width:int, height:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTextureObject': ... + def SendParameters(self) -> None: ... + def SetAutoParameters(self, _arg:int) -> None: ... + def SetBaseLevel(self, _arg:int) -> None: ... + @overload + def SetBorderColor(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetBorderColor(self, _arg:Sequence[float]) -> None: ... + def SetContext(self, __a:'vtkOpenGLRenderWindow') -> None: ... + def SetDataType(self, glType:int) -> None: ... + def SetDepthTextureCompare(self, _arg:bool) -> None: ... + def SetDepthTextureCompareFunction(self, _arg:int) -> None: ... + def SetFormat(self, glFormat:int) -> None: ... + def SetGenerateMipmap(self, _arg:bool) -> None: ... + def SetInternalFormat(self, glInternalFormat:int) -> None: ... + def SetLinearMagnification(self, val:bool) -> None: ... + def SetMagnificationFilter(self, _arg:int) -> None: ... + def SetMaxLOD(self, _arg:float) -> None: ... + def SetMaxLevel(self, _arg:int) -> None: ... + def SetMaximumAnisotropicFiltering(self, _arg:float) -> None: ... + def SetMinLOD(self, _arg:float) -> None: ... + def SetMinificationFilter(self, _arg:int) -> None: ... + def SetRequireDepthBufferFloat(self, _arg:bool) -> None: ... + def SetRequireTextureFloat(self, _arg:bool) -> None: ... + def SetRequireTextureInteger(self, _arg:bool) -> None: ... + def SetSamples(self, _arg:int) -> None: ... + def SetUseSRGBColorSpace(self, _arg:bool) -> None: ... + def SetWrapR(self, _arg:int) -> None: ... + def SetWrapS(self, _arg:int) -> None: ... + def SetWrapT(self, _arg:int) -> None: ... + def UseSRGBColorSpaceOff(self) -> None: ... + def UseSRGBColorSpaceOn(self) -> None: ... + +class vtkTextureUnitManager(vtkmodules.vtkCommonCore.vtkObject): + number_of_texture_units:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def Allocate(self) -> int: ... + @overload + def Allocate(self, unit:int) -> int: ... + def Free(self, textureUnitId:int) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfTextureUnits(self) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsAllocated(self, textureUnitId:int) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTextureUnitManager': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTextureUnitManager': ... + +class vtkToneMappingPass(vtkImageProcessingPass): + Clamp:int + Exponential:int + GenericFilmic:int + NeutralPBR:int + Reinhard:int + contrast:'getset_descriptor' + exposure:'getset_descriptor' + hdr_max:'getset_descriptor' + mid_in:'getset_descriptor' + mid_out:'getset_descriptor' + shoulder:'getset_descriptor' + tone_mapping_type:'getset_descriptor' + use_aces:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetContrast(self) -> float: ... + def GetContrastMaxValue(self) -> float: ... + def GetContrastMinValue(self) -> float: ... + def GetExposure(self) -> float: ... + def GetHdrMax(self) -> float: ... + def GetHdrMaxMaxValue(self) -> float: ... + def GetHdrMaxMinValue(self) -> float: ... + def GetMidIn(self) -> float: ... + def GetMidInMaxValue(self) -> float: ... + def GetMidInMinValue(self) -> float: ... + def GetMidOut(self) -> float: ... + def GetMidOutMaxValue(self) -> float: ... + def GetMidOutMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShoulder(self) -> float: ... + def GetShoulderMaxValue(self) -> float: ... + def GetShoulderMinValue(self) -> float: ... + def GetToneMappingType(self) -> int: ... + def GetToneMappingTypeMaxValue(self) -> int: ... + def GetToneMappingTypeMinValue(self) -> int: ... + def GetUseACES(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkToneMappingPass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkToneMappingPass': ... + def SetContrast(self, _arg:float) -> None: ... + def SetExposure(self, _arg:float) -> None: ... + def SetGenericFilmicDefaultPresets(self) -> None: ... + def SetGenericFilmicUncharted2Presets(self) -> None: ... + def SetHdrMax(self, _arg:float) -> None: ... + def SetMidIn(self, _arg:float) -> None: ... + def SetMidOut(self, _arg:float) -> None: ... + def SetShoulder(self, _arg:float) -> None: ... + def SetToneMappingType(self, _arg:int) -> None: ... + def SetUseACES(self, _arg:bool) -> None: ... + +class vtkTransformFeedback(vtkmodules.vtkCommonCore.vtkObject): + class VaryingRole(int): ... + Color_RGBA_F:'VaryingRole' + Next_Buffer:'VaryingRole' + Normal_F:'VaryingRole' + Vertex_ClipCoordinate_F:'VaryingRole' + buffer_data:'getset_descriptor' + buffer_size:'getset_descriptor' + bytes_per_vertex:'getset_descriptor' + number_of_vertices:'getset_descriptor' + primitive_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddVarying(self, role:'VaryingRole', var:str) -> None: ... + def Allocate(self, nbBuffers:int, size:int, hint:int) -> None: ... + def BindBuffer(self, allocateOneBuffer:bool=True) -> None: ... + def BindVaryings(self, prog:'vtkShaderProgram') -> None: ... + def ClearVaryings(self) -> None: ... + def GetBuffer(self, index:int) -> 'vtkOpenGLBufferObject': ... + def GetBufferData(self) -> Pointer: ... + def GetBufferHandle(self, index:int=0) -> int: ... + def GetBufferSize(self) -> int: ... + @overload + @staticmethod + def GetBytesPerVertex(role:'VaryingRole') -> int: ... + @overload + def GetBytesPerVertex(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfVertices(self) -> int: ... + def GetPrimitiveMode(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTransformFeedback': ... + def ReadBuffer(self, index:int=0) -> None: ... + def ReleaseBufferData(self, freeBuffer:bool=True) -> None: ... + def ReleaseGraphicsResources(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTransformFeedback': ... + @overload + def SetNumberOfVertices(self, _arg:int) -> None: ... + @overload + def SetNumberOfVertices(self, drawMode:int, inputVerts:int) -> None: ... + def SetPrimitiveMode(self, _arg:int) -> None: ... + +class vtkTranslucentPass(vtkDefaultPass): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTranslucentPass': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTranslucentPass': ... + +class vtkValuePass(vtkOpenGLRenderPass): + class Mode(int): ... + FLOATING_POINT:'Mode' + INVERTIBLE_LUT:'Mode' + float_image_extents:'getset_descriptor' + input_array_to_process:'getset_descriptor' + input_component_to_process:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFloatImageData(self, format:int, width:int, height:int, data:Pointer) -> None: ... + def GetFloatImageDataArray(self, ren:'vtkRenderer') -> 'vtkFloatArray': ... + def GetFloatImageExtents(self) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkValuePass': ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkValuePass': ... + @overload + def SetInputArrayToProcess(self, fieldAssociation:int, name:str) -> None: ... + @overload + def SetInputArrayToProcess(self, fieldAssociation:int, fieldId:int) -> None: ... + def SetInputComponentToProcess(self, component:int) -> None: ... + +class vtkVolumetricPass(vtkDefaultPass): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVolumetricPass': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVolumetricPass': ... + +class vtkXOpenGLRenderWindow(vtkOpenGLRenderWindow): + coverable:'getset_descriptor' + current_cursor:'getset_descriptor' + desired_depth:'getset_descriptor' + desired_visual_info:'getset_descriptor' + display_id:'getset_descriptor' + event_pending:'getset_descriptor' + full_screen:'getset_descriptor' + generic_context:'getset_descriptor' + generic_display_id:'getset_descriptor' + generic_drawable:'getset_descriptor' + generic_fb_config:'getset_descriptor' + generic_parent_id:'getset_descriptor' + generic_window_id:'getset_descriptor' + icon:'getset_descriptor' + next_window_id:'getset_descriptor' + next_window_info:'getset_descriptor' + parent_id:'getset_descriptor' + parent_info:'getset_descriptor' + platform_supports_render_window_sharing:'getset_descriptor' + position:'getset_descriptor' + screen_size:'getset_descriptor' + show_window:'getset_descriptor' + size:'getset_descriptor' + stereo_capable_window:'getset_descriptor' + window_id:'getset_descriptor' + window_info:'getset_descriptor' + window_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def EnsureDisplay(self) -> bool: ... + def Finalize(self) -> None: ... + def Frame(self) -> None: ... + def GetDesiredDepth(self) -> int: ... + def GetDesiredVisualInfo(self) -> 'vtkXVisualInfo': ... + def GetEventPending(self) -> int: ... + def GetGenericContext(self) -> Pointer: ... + def GetGenericDisplayId(self) -> Pointer: ... + def GetGenericDrawable(self) -> Pointer: ... + def GetGenericFBConfig(self) -> Pointer: ... + def GetGenericParentId(self) -> Pointer: ... + def GetGenericWindowId(self) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPlatformSupportsRenderWindowSharing(self) -> bool: ... + def GetPosition(self) -> Tuple[int, int]: ... + def GetScreenSize(self) -> Tuple[int, int]: ... + def HideCursor(self) -> None: ... + def Initialize(self) -> None: ... + def InitializeFromCurrentContext(self) -> bool: ... + def IsA(self, type:str) -> int: ... + def IsCurrent(self) -> bool: ... + def IsDirect(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeCurrent(self) -> None: ... + def NewInstance(self) -> 'vtkXOpenGLRenderWindow': ... + def PopContext(self) -> None: ... + def PrefFullScreen(self) -> None: ... + def PushContext(self) -> None: ... + def ReleaseCurrent(self) -> None: ... + def Render(self) -> None: ... + def ReportCapabilities(self) -> str: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXOpenGLRenderWindow': ... + def SetCoverable(self, coverable:int) -> None: ... + def SetCurrentCursor(self, __a:int) -> None: ... + def SetDisplayId(self, __a:Pointer) -> None: ... + def SetForceMakeCurrent(self) -> None: ... + def SetFullScreen(self, __a:int) -> None: ... + def SetIcon(self, img:'vtkImageData') -> None: ... + def SetNextWindowId(self, __a:Pointer) -> None: ... + def SetNextWindowInfo(self, info:str) -> None: ... + def SetParentId(self, __a:Pointer) -> None: ... + def SetParentInfo(self, info:str) -> None: ... + @overload + def SetPosition(self, x:int, y:int) -> None: ... + @overload + def SetPosition(self, a:MutableSequence[int]) -> None: ... + def SetShowWindow(self, val:bool) -> None: ... + @overload + def SetSize(self, width:int, height:int) -> None: ... + @overload + def SetSize(self, a:MutableSequence[int]) -> None: ... + def SetStereoCapableWindow(self, capable:int) -> None: ... + def SetSwapControl(self, i:int) -> bool: ... + def SetWindowId(self, __a:Pointer) -> None: ... + def SetWindowInfo(self, info:str) -> None: ... + def SetWindowName(self, __a:str) -> None: ... + def ShowCursor(self) -> None: ... + def Start(self) -> None: ... + def WindowInitialize(self) -> None: ... + def WindowRemap(self) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingParallel.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingParallel.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..e157e80 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingParallel.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingParallel.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingParallel.pyi new file mode 100644 index 0000000..ed9fbf0 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingParallel.pyi @@ -0,0 +1,482 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingCore +import vtkmodules.vtkRenderingOpenGL2 + +class vtkClientServerCompositePass(vtkmodules.vtkRenderingCore.vtkRenderPass): + controller:'getset_descriptor' + post_processing_render_pass:'getset_descriptor' + process_is_server:'getset_descriptor' + render_pass:'getset_descriptor' + server_side_rendering:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPostProcessingRenderPass(self) -> 'vtkRenderPass': ... + def GetProcessIsServer(self) -> bool: ... + def GetRenderPass(self) -> 'vtkRenderPass': ... + def GetServerSideRendering(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkClientServerCompositePass': ... + def ProcessIsServerOff(self) -> None: ... + def ProcessIsServerOn(self) -> None: ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkClientServerCompositePass': ... + def ServerSideRenderingOff(self) -> None: ... + def ServerSideRenderingOn(self) -> None: ... + def SetController(self, controller:'vtkMultiProcessController') -> None: ... + def SetPostProcessingRenderPass(self, __a:'vtkRenderPass') -> None: ... + def SetProcessIsServer(self, _arg:bool) -> None: ... + def SetRenderPass(self, __a:'vtkRenderPass') -> None: ... + def SetServerSideRendering(self, _arg:bool) -> None: ... + +class vtkSynchronizedRenderers(vtkmodules.vtkCommonCore.vtkObject): + COMPUTE_BOUNDS_TAG:int + RESET_CAMERA_TAG:int + SYNC_RENDERER_TAG:int + automatic_event_handling:'getset_descriptor' + capture_delegate:'getset_descriptor' + fix_background:'getset_descriptor' + image_reduction_factor:'getset_descriptor' + parallel_controller:'getset_descriptor' + parallel_rendering:'getset_descriptor' + renderer:'getset_descriptor' + root_process_id:'getset_descriptor' + write_back_images:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutomaticEventHandlingOff(self) -> None: ... + def AutomaticEventHandlingOn(self) -> None: ... + def CollectiveExpandForVisiblePropBounds(self, bounds:MutableSequence[float]) -> None: ... + def EnableSynchronizableActors(self, __a:bool) -> None: ... + def FixBackgroundOff(self) -> None: ... + def FixBackgroundOn(self) -> None: ... + def GetAutomaticEventHandling(self) -> bool: ... + def GetCaptureDelegate(self) -> 'vtkSynchronizedRenderers': ... + def GetFixBackground(self) -> bool: ... + def GetImageReductionFactor(self) -> int: ... + def GetImageReductionFactorMaxValue(self) -> int: ... + def GetImageReductionFactorMinValue(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParallelController(self) -> 'vtkMultiProcessController': ... + def GetParallelRendering(self) -> bool: ... + def GetRenderer(self) -> 'vtkRenderer': ... + def GetRootProcessId(self) -> int: ... + def GetWriteBackImages(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSynchronizedRenderers': ... + def ParallelRenderingOff(self) -> None: ... + def ParallelRenderingOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSynchronizedRenderers': ... + def SetAutomaticEventHandling(self, _arg:bool) -> None: ... + def SetCaptureDelegate(self, __a:'vtkSynchronizedRenderers') -> None: ... + def SetFixBackground(self, _arg:bool) -> None: ... + def SetImageReductionFactor(self, _arg:int) -> None: ... + def SetParallelController(self, __a:'vtkMultiProcessController') -> None: ... + def SetParallelRendering(self, _arg:bool) -> None: ... + def SetRenderer(self, __a:'vtkRenderer') -> None: ... + def SetRootProcessId(self, _arg:int) -> None: ... + def SetWriteBackImages(self, _arg:bool) -> None: ... + def WriteBackImagesOff(self) -> None: ... + def WriteBackImagesOn(self) -> None: ... + +class vtkClientServerSynchronizedRenderers(vtkSynchronizedRenderers): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkClientServerSynchronizedRenderers': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkClientServerSynchronizedRenderers': ... + +class vtkCompositeRGBAPass(vtkmodules.vtkRenderingCore.vtkRenderPass): + controller:'getset_descriptor' + kdtree:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetKdtree(self) -> 'vtkPKdTree': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsSupported(self, context:'vtkOpenGLRenderWindow') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositeRGBAPass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeRGBAPass': ... + def SetController(self, controller:'vtkMultiProcessController') -> None: ... + def SetKdtree(self, kdtree:'vtkPKdTree') -> None: ... + +class vtkParallelRenderManager(vtkmodules.vtkCommonCore.vtkObject): + class Tags(int): ... + BOUNDS_TAG:'Tags' + COMPUTE_VISIBLE_PROP_BOUNDS_RMI_TAG:'Tags' + LIGHT_INFO_TAG:'Tags' + LINEAR:int + NEAREST:int + RENDER_RMI_TAG:'Tags' + REN_ID_TAG:'Tags' + REN_INFO_TAG:'Tags' + WIN_INFO_TAG:'Tags' + auto_image_reduction_factor:'getset_descriptor' + controller:'getset_descriptor' + default_render_event_propagation:'getset_descriptor' + force_render_window_size:'getset_descriptor' + forced_render_window_size:'getset_descriptor' + full_image_size:'getset_descriptor' + image_processing_time:'getset_descriptor' + image_reduction_factor:'getset_descriptor' + image_reduction_factor_for_update_rate:'getset_descriptor' + magnify_image_method:'getset_descriptor' + magnify_images:'getset_descriptor' + max_image_reduction_factor:'getset_descriptor' + parallel_rendering:'getset_descriptor' + reduced_image_size:'getset_descriptor' + render_event_propagation:'getset_descriptor' + render_time:'getset_descriptor' + render_window:'getset_descriptor' + sync_render_window_renderers:'getset_descriptor' + synchronize_tile_properties:'getset_descriptor' + use_back_buffer:'getset_descriptor' + use_compositing:'getset_descriptor' + use_rgba:'getset_descriptor' + write_back_images:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddRenderer(self, __a:'vtkRenderer') -> None: ... + def AutoImageReductionFactorOff(self) -> None: ... + def AutoImageReductionFactorOn(self) -> None: ... + def CheckForAbortComposite(self) -> int: ... + def CheckForAbortRender(self) -> None: ... + def ComputeVisiblePropBounds(self, ren:'vtkRenderer', bounds:MutableSequence[float]) -> None: ... + def ComputeVisiblePropBoundsRMI(self, renderId:int) -> None: ... + def EndRender(self) -> None: ... + def GenericEndRenderCallback(self) -> None: ... + def GenericStartRenderCallback(self) -> None: ... + def GetAutoImageReductionFactor(self) -> int: ... + def GetController(self) -> 'vtkMultiProcessController': ... + @staticmethod + def GetDefaultRenderEventPropagation() -> bool: ... + def GetForceRenderWindowSize(self) -> int: ... + def GetForcedRenderWindowSize(self) -> Tuple[int, int]: ... + def GetFullImageSize(self) -> Tuple[int, int]: ... + def GetImageProcessingTime(self) -> float: ... + def GetImageReductionFactor(self) -> float: ... + def GetMagnifyImageMethod(self) -> int: ... + def GetMagnifyImages(self) -> int: ... + def GetMaxImageReductionFactor(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParallelRendering(self) -> int: ... + @overload + def GetPixelData(self, data:'vtkUnsignedCharArray') -> None: ... + @overload + def GetPixelData(self, x1:int, y1:int, x2:int, y2:int, data:'vtkUnsignedCharArray') -> None: ... + def GetReducedImageSize(self) -> Tuple[int, int]: ... + @overload + def GetReducedPixelData(self, data:'vtkUnsignedCharArray') -> None: ... + @overload + def GetReducedPixelData(self, x1:int, y1:int, x2:int, y2:int, data:'vtkUnsignedCharArray') -> None: ... + def GetRenderEventPropagation(self) -> int: ... + def GetRenderTime(self) -> float: ... + def GetRenderWindow(self) -> 'vtkRenderWindow': ... + def GetSyncRenderWindowRenderers(self) -> int: ... + def GetSynchronizeTileProperties(self) -> int: ... + def GetUseBackBuffer(self) -> int: ... + def GetUseCompositing(self) -> int: ... + def GetUseRGBA(self) -> int: ... + def GetWriteBackImages(self) -> int: ... + def InitializeOffScreen(self) -> None: ... + def InitializePieces(self) -> None: ... + def InitializeRMIs(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MagnifyImage(self, fullImage:'vtkUnsignedCharArray', fullImageSize:Sequence[int], reducedImage:'vtkUnsignedCharArray', reducedImageSize:Sequence[int], fullImageViewport:Sequence[int]=..., reducedImageViewport:Sequence[int]=...) -> None: ... + @staticmethod + def MagnifyImageLinear(fullImage:'vtkUnsignedCharArray', fullImageSize:Sequence[int], reducedImage:'vtkUnsignedCharArray', reducedImageSize:Sequence[int], fullImageViewport:Sequence[int]=..., reducedImageViewport:Sequence[int]=...) -> None: ... + @staticmethod + def MagnifyImageNearest(fullImage:'vtkUnsignedCharArray', fullImageSize:Sequence[int], reducedImage:'vtkUnsignedCharArray', reducedImageSize:Sequence[int], fullImageViewport:Sequence[int]=..., reducedImageViewport:Sequence[int]=...) -> None: ... + def MagnifyImagesOff(self) -> None: ... + def MagnifyImagesOn(self) -> None: ... + def MakeRenderWindow(self) -> 'vtkRenderWindow': ... + def MakeRenderer(self) -> 'vtkRenderer': ... + def NewInstance(self) -> 'vtkParallelRenderManager': ... + def ParallelRenderingOff(self) -> None: ... + def ParallelRenderingOn(self) -> None: ... + def RemoveAllRenderers(self) -> None: ... + def RemoveRenderer(self, __a:'vtkRenderer') -> None: ... + def RenderEventPropagationOff(self) -> None: ... + def RenderEventPropagationOn(self) -> None: ... + def RenderRMI(self) -> None: ... + def ResetAllCameras(self) -> None: ... + def ResetCamera(self, ren:'vtkRenderer') -> None: ... + def ResetCameraClippingRange(self, ren:'vtkRenderer') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParallelRenderManager': ... + def SatelliteEndRender(self) -> None: ... + def SatelliteStartRender(self) -> None: ... + def SetAutoImageReductionFactor(self, _arg:int) -> None: ... + def SetController(self, controller:'vtkMultiProcessController') -> None: ... + @staticmethod + def SetDefaultRenderEventPropagation(val:bool) -> None: ... + def SetForceRenderWindowSize(self, _arg:int) -> None: ... + @overload + def SetForcedRenderWindowSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetForcedRenderWindowSize(self, _arg:Sequence[int]) -> None: ... + def SetImageReductionFactor(self, factor:float) -> None: ... + def SetImageReductionFactorForUpdateRate(self, DesiredUpdateRate:float) -> None: ... + def SetMagnifyImageMethod(self, method:int) -> None: ... + def SetMagnifyImageMethodToLinear(self) -> None: ... + def SetMagnifyImageMethodToNearest(self) -> None: ... + def SetMagnifyImages(self, _arg:int) -> None: ... + def SetMaxImageReductionFactor(self, _arg:float) -> None: ... + def SetParallelRendering(self, _arg:int) -> None: ... + def SetRenderEventPropagation(self, _arg:int) -> None: ... + def SetRenderWindow(self, renWin:'vtkRenderWindow') -> None: ... + def SetSyncRenderWindowRenderers(self, _arg:int) -> None: ... + def SetSynchronizeTileProperties(self, _arg:int) -> None: ... + def SetUseBackBuffer(self, _arg:int) -> None: ... + def SetUseCompositing(self, _arg:int) -> None: ... + def SetUseRGBA(self, _arg:int) -> None: ... + def SetWriteBackImages(self, _arg:int) -> None: ... + def StartInteractor(self) -> None: ... + def StartRender(self) -> None: ... + def StartServices(self) -> None: ... + def StopServices(self) -> None: ... + def SyncRenderWindowRenderersOff(self) -> None: ... + def SyncRenderWindowRenderersOn(self) -> None: ... + def SynchronizeTilePropertiesOff(self) -> None: ... + def SynchronizeTilePropertiesOn(self) -> None: ... + def TileWindows(self, xsize:int, ysize:int, nColumns:int) -> None: ... + def UseBackBufferOff(self) -> None: ... + def UseBackBufferOn(self) -> None: ... + def UseCompositingOff(self) -> None: ... + def UseCompositingOn(self) -> None: ... + def WriteBackImagesOff(self) -> None: ... + def WriteBackImagesOn(self) -> None: ... + +class vtkCompositeRenderManager(vtkParallelRenderManager): + compositer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCompositer(self) -> 'vtkCompositer': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositeRenderManager': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeRenderManager': ... + def SetCompositer(self, c:'vtkCompositer') -> None: ... + +class vtkCompositeZPass(vtkmodules.vtkRenderingCore.vtkRenderPass): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + def IsSupported(self, context:'vtkOpenGLRenderWindow') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositeZPass': ... + def ReleaseGraphicsResources(self, w:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeZPass': ... + def SetController(self, controller:'vtkMultiProcessController') -> None: ... + +class vtkCompositedSynchronizedRenderers(vtkSynchronizedRenderers): + compositer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCompositer(self) -> 'vtkCompositer': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositedSynchronizedRenderers': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositedSynchronizedRenderers': ... + def SetCompositer(self, __a:'vtkCompositer') -> None: ... + +class vtkCompositer(vtkmodules.vtkCommonCore.vtkObject): + controller:'getset_descriptor' + number_of_processes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CompositeBuffer(self, pBuf:'vtkDataArray', zBuf:'vtkFloatArray', pTmp:'vtkDataArray', zTmp:'vtkFloatArray') -> None: ... + @staticmethod + def DeleteArray(da:'vtkDataArray') -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfProcesses(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompositer': ... + @staticmethod + def ResizeFloatArray(fa:'vtkFloatArray', numComp:int, size:int) -> None: ... + @staticmethod + def ResizeUnsignedCharArray(uca:'vtkUnsignedCharArray', numComp:int, size:int) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositer': ... + def SetController(self, __a:'vtkMultiProcessController') -> None: ... + def SetNumberOfProcesses(self, _arg:int) -> None: ... + +class vtkCompressCompositer(vtkCompositer): + def __init__(self, **properties:Any) -> None: ... + def CompositeBuffer(self, pBuf:'vtkDataArray', zBuf:'vtkFloatArray', pTmp:'vtkDataArray', zTmp:'vtkFloatArray') -> None: ... + @staticmethod + def CompositeImagePair(localZ:'vtkFloatArray', localP:'vtkDataArray', remoteZ:'vtkFloatArray', remoteP:'vtkDataArray', outZ:'vtkFloatArray', outP:'vtkDataArray') -> None: ... + @staticmethod + def Compress(zIn:'vtkFloatArray', pIn:'vtkDataArray', zOut:'vtkFloatArray', pOut:'vtkDataArray') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCompressCompositer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompressCompositer': ... + @staticmethod + def Uncompress(zIn:'vtkFloatArray', pIn:'vtkDataArray', zOut:'vtkFloatArray', pOut:'vtkDataArray', lengthOut:int) -> None: ... + +class vtkImageRenderManager(vtkParallelRenderManager): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkImageRenderManager': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageRenderManager': ... + +class vtkPHardwareSelector(vtkmodules.vtkRenderingOpenGL2.vtkOpenGLHardwareSelector): + process_is_root:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CaptureBuffers(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProcessIsRoot(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPHardwareSelector': ... + def ProcessIsRootOff(self) -> None: ... + def ProcessIsRootOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPHardwareSelector': ... + def SetProcessIsRoot(self, _arg:bool) -> None: ... + +class vtkSynchronizableActors(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def CleanUpRenderer(self, ren:'vtkRenderer') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InitializeRenderer(self, ren:'vtkRenderer') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSynchronizableActors': ... + def RestoreFromStream(self, stream:'vtkMultiProcessStream', ren:'vtkRenderer') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSynchronizableActors': ... + def SaveToStream(self, stream:'vtkMultiProcessStream', ren:'vtkRenderer') -> None: ... + +class vtkSynchronizableAvatars(vtkSynchronizableActors): + def __init__(self, **properties:Any) -> None: ... + def CleanUpRenderer(self, ren:'vtkRenderer') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def InitializeRenderer(self, ren:'vtkRenderer') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSynchronizableAvatars': ... + def RestoreFromStream(self, stream:'vtkMultiProcessStream', ren:'vtkRenderer') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSynchronizableAvatars': ... + def SaveToStream(self, stream:'vtkMultiProcessStream', ren:'vtkRenderer') -> None: ... + +class vtkSynchronizedRenderWindows(vtkmodules.vtkCommonCore.vtkObject): + SYNC_RENDER_TAG:int + identifier:'getset_descriptor' + parallel_controller:'getset_descriptor' + parallel_rendering:'getset_descriptor' + render_event_propagation:'getset_descriptor' + render_window:'getset_descriptor' + root_process_id:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AbortRender(self) -> None: ... + def GetIdentifier(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParallelController(self) -> 'vtkMultiProcessController': ... + def GetParallelRendering(self) -> bool: ... + def GetRenderEventPropagation(self) -> bool: ... + def GetRenderWindow(self) -> 'vtkRenderWindow': ... + def GetRootProcessId(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSynchronizedRenderWindows': ... + def ParallelRenderingOff(self) -> None: ... + def ParallelRenderingOn(self) -> None: ... + def RenderEventPropagationOff(self) -> None: ... + def RenderEventPropagationOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSynchronizedRenderWindows': ... + def SetIdentifier(self, id:int) -> None: ... + def SetParallelController(self, __a:'vtkMultiProcessController') -> None: ... + def SetParallelRendering(self, _arg:bool) -> None: ... + def SetRenderEventPropagation(self, _arg:bool) -> None: ... + def SetRenderWindow(self, __a:'vtkRenderWindow') -> None: ... + def SetRootProcessId(self, _arg:int) -> None: ... + +class vtkTreeCompositer(vtkCompositer): + def __init__(self, **properties:Any) -> None: ... + def CompositeBuffer(self, pBuf:'vtkDataArray', zBuf:'vtkFloatArray', pTmp:'vtkDataArray', zTmp:'vtkFloatArray') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTreeCompositer': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTreeCompositer': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingSceneGraph.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingSceneGraph.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..d51db5f Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingSceneGraph.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingSceneGraph.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingSceneGraph.pyi new file mode 100644 index 0000000..46b62c1 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingSceneGraph.pyi @@ -0,0 +1,196 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore + +class vtkViewNode(vtkmodules.vtkCommonCore.vtkObject): + class operation_type(int): ... + build:'operation_type' + invalidate:'operation_type' + my_factory:'getset_descriptor' + noop:'operation_type' + parent:'getset_descriptor' + render:'operation_type' + renderable:'getset_descriptor' + synchronize:'operation_type' + def __init__(self, **properties:Any) -> None: ... + def Build(self, __a:bool) -> None: ... + def GetFirstAncestorOfType(self, type:str) -> 'vtkViewNode': ... + def GetFirstChildOfType(self, type:str) -> 'vtkViewNode': ... + def GetMyFactory(self) -> 'vtkViewNodeFactory': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetParent(self) -> 'vtkViewNode': ... + def GetRenderable(self) -> 'vtkObject': ... + def GetViewNodeFor(self, __a:'vtkObject') -> 'vtkViewNode': ... + def Invalidate(self, __a:bool) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkViewNode': ... + def Render(self, __a:bool) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkViewNode': ... + def SetMyFactory(self, __a:'vtkViewNodeFactory') -> None: ... + def SetParent(self, __a:'vtkViewNode') -> None: ... + def SetRenderable(self, __a:'vtkObject') -> None: ... + def Synchronize(self, __a:bool) -> None: ... + def Traverse(self, operation:int) -> None: ... + def TraverseAllPasses(self) -> None: ... + +class vtkActorNode(vtkViewNode): + def __init__(self, **properties:Any) -> None: ... + def Build(self, prepass:bool) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkActorNode': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkActorNode': ... + +class vtkCameraNode(vtkViewNode): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkCameraNode': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkCameraNode': ... + +class vtkLightNode(vtkViewNode): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkLightNode': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkLightNode': ... + +class vtkMapperNode(vtkViewNode): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMapperNode': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMapperNode': ... + +class vtkPolyDataMapperNode(vtkMapperNode): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPolyDataMapperNode': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPolyDataMapperNode': ... + +class vtkRendererNode(vtkViewNode): + scale:'getset_descriptor' + size:'getset_descriptor' + viewport:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Build(self, prepass:bool) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScale(self) -> Tuple[int, int]: ... + def GetSize(self) -> Tuple[int, int]: ... + def GetViewport(self) -> Tuple[float, float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRendererNode': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRendererNode': ... + @overload + def SetScale(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetScale(self, _arg:Sequence[int]) -> None: ... + @overload + def SetSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetSize(self, _arg:Sequence[int]) -> None: ... + @overload + def SetViewport(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetViewport(self, _arg:Sequence[float]) -> None: ... + +class vtkViewNodeFactory(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def CreateNode(self, __a:'vtkObject') -> 'vtkViewNode': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkViewNodeFactory': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkViewNodeFactory': ... + +class vtkVolumeMapperNode(vtkMapperNode): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVolumeMapperNode': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVolumeMapperNode': ... + +class vtkVolumeNode(vtkViewNode): + def __init__(self, **properties:Any) -> None: ... + def Build(self, prepass:bool) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVolumeNode': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVolumeNode': ... + +class vtkWindowNode(vtkViewNode): + color_buffer:'getset_descriptor' + size:'getset_descriptor' + z_buffer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Build(self, prepass:bool) -> None: ... + def GetColorBuffer(self) -> 'vtkUnsignedCharArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSize(self) -> Pointer: ... + def GetZBuffer(self) -> 'vtkFloatArray': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWindowNode': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWindowNode': ... + def Synchronize(self, prepass:bool) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingUI.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingUI.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..e7a8411 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingUI.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingUI.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingUI.pyi new file mode 100644 index 0000000..25594b5 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingUI.pyi @@ -0,0 +1,49 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingCore + +class vtkGenericRenderWindowInteractor(vtkmodules.vtkRenderingCore.vtkRenderWindowInteractor): + timer_event_resets_timer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTimerEventResetsTimer(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGenericRenderWindowInteractor': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGenericRenderWindowInteractor': ... + def SetTimerEventResetsTimer(self, _arg:int) -> None: ... + def TimerEvent(self) -> None: ... + def TimerEventResetsTimerOff(self) -> None: ... + def TimerEventResetsTimerOn(self) -> None: ... + +class vtkXRenderWindowInteractor(vtkmodules.vtkRenderingCore.vtkRenderWindowInteractor): + def __init__(self, **properties:Any) -> None: ... + def Disable(self) -> None: ... + def Enable(self) -> None: ... + def GetMousePosition(self, x:MutableSequence[int], y:MutableSequence[int]) -> None: ... + def GetMousePositionAndModifierKeysState(self, x:MutableSequence[int], y:MutableSequence[int], keys:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkXRenderWindowInteractor': ... + def ProcessEvents(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkXRenderWindowInteractor': ... + def TerminateApp(self) -> None: ... + def UpdateSize(self, __a:int, __b:int) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVR.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVR.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..e6d3002 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVR.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVR.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVR.pyi new file mode 100644 index 0000000..895d3f4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVR.pyi @@ -0,0 +1,468 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkInteractionWidgets +import vtkmodules.vtkRenderingCore +import vtkmodules.vtkRenderingOpenGL2 + +class vtkVRCamera(vtkmodules.vtkRenderingOpenGL2.vtkOpenGLCamera): + track_hmd:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTrackHMD(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVRCamera': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVRCamera': ... + def SetCameraFromDeviceToWorldMatrix(self, mat:'vtkMatrix4x4', distance:float) -> None: ... + def SetCameraFromWorldToDeviceMatrix(self, mat:'vtkMatrix4x4', distance:float) -> None: ... + def SetTrackHMD(self, _arg:bool) -> None: ... + +class vtkVRControlsHelper(vtkmodules.vtkRenderingCore.vtkProp): + class ButtonSides(int): ... + class DrawSides(int): ... + Back:'ButtonSides' + Front:'ButtonSides' + Left:'DrawSides' + Right:'DrawSides' + device:'getset_descriptor' + enabled:'getset_descriptor' + renderer:'getset_descriptor' + text:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def EnabledOff(self) -> None: ... + def EnabledOn(self) -> None: ... + def GetEnabled(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderer(self) -> 'vtkRenderer': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVRControlsHelper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVRControlsHelper': ... + def SetDevice(self, val:'vtkEventDataDevice') -> None: ... + def SetEnabled(self, enabled:bool) -> None: ... + def SetRenderer(self, ren:'vtkRenderer') -> None: ... + def SetText(self, str:str) -> None: ... + def SetTooltipInfo(self, s:str, buttonSide:int, drawSide:int, txt:str) -> None: ... + def UpdateRepresentation(self) -> None: ... + +class vtkVRFollower(vtkmodules.vtkRenderingCore.vtkFollower): + def __init__(self, **properties:Any) -> None: ... + def ComputeMatrix(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVRFollower': ... + def Render(self, ren:'vtkRenderer') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVRFollower': ... + +class vtkVRHMDCamera(vtkVRCamera): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVRHMDCamera': ... + def Render(self, ren:'vtkRenderer') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVRHMDCamera': ... + +class vtkVRHardwarePicker(vtkmodules.vtkRenderingCore.vtkPropPicker): + selection:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSelection(self) -> 'vtkSelection': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVRHardwarePicker': ... + def PickProp(self, selectionPt:MutableSequence[float], eventWorldOrientation:MutableSequence[float], renderer:'vtkRenderer', pickfrom:'vtkPropCollection', actorPassOnly:bool) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVRHardwarePicker': ... + +class vtkVRInteractorStyle(vtkmodules.vtkRenderingCore.vtkInteractorStyle3D): + class MovementStyle(int): ... + FLY_STYLE:'MovementStyle' + GROUNDED_STYLE:'MovementStyle' + draw_controls:'getset_descriptor' + grab_with_ray:'getset_descriptor' + hover_pick:'getset_descriptor' + interactor:'getset_descriptor' + menu:'getset_descriptor' + style:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddTooltipForInput(self, device:'vtkEventDataDevice', input:'vtkEventDataDeviceInput', text:str=...) -> None: ... + def Clip(self, __a:'vtkEventDataDevice3D') -> None: ... + def Elevation3D(self, __a:'vtkEventDataDevice3D') -> None: ... + def EndClip(self, __a:'vtkEventDataDevice3D') -> None: ... + def EndLoadCamPose(self, __a:'vtkEventDataDevice3D') -> None: ... + def EndMovement3D(self, __a:'vtkEventDataDevice3D') -> None: ... + def EndPick(self, __a:'vtkEventDataDevice3D') -> None: ... + def EndPositionProp(self, __a:'vtkEventDataDevice3D') -> None: ... + def GetGrabWithRay(self) -> bool: ... + def GetHoverPick(self) -> bool: ... + def GetInteractionState(self, device:'vtkEventDataDevice') -> int: ... + def GetMappedAction(self, eid:vtkCommand.EventIds, action:'vtkEventDataAction'=...) -> int: ... + def GetMenu(self) -> 'vtkVRMenuWidget': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetStyle(self) -> 'MovementStyle': ... + def GrabWithRayOff(self) -> None: ... + def GrabWithRayOn(self) -> None: ... + def GroundMovement3D(self, __a:'vtkEventDataDevice3D') -> None: ... + def HideBillboard(self) -> None: ... + def HidePickActor(self) -> None: ... + def HideRay(self, controller:'vtkEventDataDevice') -> None: ... + def HoverPickOff(self) -> None: ... + def HoverPickOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LoadNextCameraPose(self) -> None: ... + def MakeControlsHelper(self) -> 'vtkVRControlsHelper': ... + @overload + def MapInputToAction(self, eid:vtkCommand.EventIds, state:int) -> None: ... + @overload + def MapInputToAction(self, eid:vtkCommand.EventIds, action:'vtkEventDataAction', state:int) -> None: ... + def NewInstance(self) -> 'vtkVRInteractorStyle': ... + def OnElevation3D(self, edata:'vtkEventData') -> None: ... + def OnMenu3D(self, edata:'vtkEventData') -> None: ... + def OnMove3D(self, edata:'vtkEventData') -> None: ... + def OnNextPose3D(self, edata:'vtkEventData') -> None: ... + def OnPan(self) -> None: ... + def OnPinch(self) -> None: ... + def OnRotate(self) -> None: ... + def OnSelect3D(self, edata:'vtkEventData') -> None: ... + def OnViewerMovement3D(self, edata:'vtkEventData') -> None: ... + def PositionProp(self, __a:'vtkEventData', lwpos:MutableSequence[float]=..., lwori:MutableSequence[float]=...) -> None: ... + def ProbeData(self, controller:'vtkEventDataDevice') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVRInteractorStyle': ... + def SetDrawControls(self, __a:bool) -> None: ... + def SetGrabWithRay(self, _arg:bool) -> None: ... + def SetHoverPick(self, _arg:bool) -> None: ... + def SetInteractionState(self, device:'vtkEventDataDevice', state:int) -> None: ... + def SetInteractor(self, iren:'vtkRenderWindowInteractor') -> None: ... + def SetStyle(self, _arg:'MovementStyle') -> None: ... + def SetupActions(self, iren:'vtkRenderWindowInteractor') -> None: ... + def ShowBillboard(self, text:str) -> None: ... + def ShowPickCell(self, cell:'vtkCell', __b:'vtkProp3D') -> None: ... + def ShowPickSphere(self, pos:MutableSequence[float], radius:float, __c:'vtkProp3D') -> None: ... + def ShowRay(self, controller:'vtkEventDataDevice') -> None: ... + def StartClip(self, __a:'vtkEventDataDevice3D') -> None: ... + def StartLoadCamPose(self, __a:'vtkEventDataDevice3D') -> None: ... + def StartMovement3D(self, interactionState:int, __b:'vtkEventDataDevice3D') -> None: ... + def StartPick(self, __a:'vtkEventDataDevice3D') -> None: ... + def StartPositionProp(self, __a:'vtkEventDataDevice3D') -> None: ... + def Teleportation3D(self, edd:'vtkEventDataDevice3D') -> None: ... + def ToggleDrawControls(self) -> None: ... + +class vtkVRMenuRepresentation(vtkmodules.vtkInteractionWidgets.vtkWidgetRepresentation): + current_option:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def EndComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def GetCurrentOption(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVRMenuRepresentation': ... + def PushFrontMenuItem(self, name:str, text:str, cmd:'vtkCommand') -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RemoveAllMenuItems(self) -> None: ... + def RemoveMenuItem(self, name:str) -> None: ... + def RenameMenuItem(self, name:str, text:str) -> None: ... + def RenderOverlay(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVRMenuRepresentation': ... + def StartComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + +class vtkVRMenuWidget(vtkmodules.vtkInteractionWidgets.vtkAbstractWidget): + class WidgetStateType(int): ... + Active:'WidgetStateType' + Start:'WidgetStateType' + representation:'getset_descriptor' + widget_state:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetWidgetState(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVRMenuWidget': ... + def PushFrontMenuItem(self, name:str, text:str, cmd:'vtkCommand') -> None: ... + def RemoveAllMenuItems(self) -> None: ... + def RemoveMenuItem(self, name:str) -> None: ... + def RenameMenuItem(self, name:str, text:str) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVRMenuWidget': ... + def SetRepresentation(self, rep:'vtkVRMenuRepresentation') -> None: ... + def Show(self, ed:'vtkEventData') -> None: ... + def ShowSubMenu(self, __a:'vtkVRMenuWidget') -> None: ... + +class vtkVRModel(vtkmodules.vtkCommonCore.vtkObject): + name:'getset_descriptor' + ray:'getset_descriptor' + ray_color:'getset_descriptor' + ray_length:'getset_descriptor' + show_ray:'getset_descriptor' + visibility:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Build(self, win:'vtkOpenGLRenderWindow') -> bool: ... + def GetName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRay(self) -> 'vtkVRRay': ... + def GetVisibility(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVRModel': ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + def Render(self, win:'vtkOpenGLRenderWindow', poseInTrackingCoordinates:'vtkMatrix4x4') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVRModel': ... + def SetName(self, modelName:str) -> None: ... + def SetRayColor(self, r:float, g:float, b:float) -> None: ... + def SetRayLength(self, length:float) -> None: ... + def SetShowRay(self, v:bool) -> None: ... + def SetVisibility(self, v:bool) -> None: ... + +class vtkVRPanelRepresentation(vtkmodules.vtkInteractionWidgets.vtkWidgetRepresentation): + class InteractionStateType(int): ... + Moving:'InteractionStateType' + Outside:'InteractionStateType' + allow_adjustment:'getset_descriptor' + text:'getset_descriptor' + text_actor:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllowAdjustmentOff(self) -> None: ... + def AllowAdjustmentOn(self) -> None: ... + def BuildRepresentation(self) -> None: ... + def ComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def ComputeComplexInteractionState(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer, modify:int=0) -> int: ... + def EndComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + def GetAllowAdjustment(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTextActor(self) -> 'vtkTextActor3D': ... + def HasTranslucentPolygonalGeometry(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVRPanelRepresentation': ... + def PlaceWidget(self, bounds:MutableSequence[float]) -> None: ... + def PlaceWidgetExtended(self, bounds:Sequence[float], normal:Sequence[float] , upvec:Sequence[float], scale:float) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def RenderOpaqueGeometry(self, __a:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, __a:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVRPanelRepresentation': ... + def SetAllowAdjustment(self, _arg:bool) -> None: ... + def SetCoordinateSystemToHMD(self) -> None: ... + def SetCoordinateSystemToLeftController(self) -> None: ... + def SetCoordinateSystemToRightController(self) -> None: ... + def SetCoordinateSystemToWorld(self) -> None: ... + def SetText(self, str:str) -> None: ... + def StartComplexInteraction(self, iren:'vtkRenderWindowInteractor', widget:'vtkAbstractWidget', event:int, calldata:Pointer) -> None: ... + +class vtkVRPanelWidget(vtkmodules.vtkInteractionWidgets.vtkAbstractWidget): + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CreateDefaultRepresentation(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVRPanelWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVRPanelWidget': ... + def SetRepresentation(self, rep:'vtkVRPanelRepresentation') -> None: ... + +class vtkVRRenderWindow(vtkmodules.vtkRenderingOpenGL2.vtkOpenGLRenderWindow): + LeftEye:int + RightEye:int + base_station_visibility:'getset_descriptor' + event_pending:'getset_descriptor' + generic_context:'getset_descriptor' + generic_display_id:'getset_descriptor' + generic_drawable:'getset_descriptor' + generic_parent_id:'getset_descriptor' + generic_window_id:'getset_descriptor' + helper_window:'getset_descriptor' + screen_size:'getset_descriptor' + size:'getset_descriptor' + state:'getset_descriptor' + track_hmd:'getset_descriptor' + vr_initialized:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddRenderer(self, __a:'vtkRenderer') -> None: ... + def BaseStationVisibilityOff(self) -> None: ... + def BaseStationVisibilityOn(self) -> None: ... + def GetBaseStationVisibility(self) -> bool: ... + def GetDeviceToPhysicalMatrixForDevice(self, idx:'vtkEventDataDevice') -> 'vtkMatrix4x4': ... + def GetDeviceToWorldMatrixForDevice(self, device:'vtkEventDataDevice', deviceToWorldMatrix:'vtkMatrix4x4') -> bool: ... + def GetEventPending(self) -> int: ... + def GetGenericContext(self) -> Pointer: ... + def GetGenericDisplayId(self) -> Pointer: ... + def GetGenericDrawable(self) -> Pointer: ... + def GetGenericParentId(self) -> Pointer: ... + def GetGenericWindowId(self) -> Pointer: ... + def GetHelperWindow(self) -> 'vtkOpenGLRenderWindow': ... + def GetModelForDevice(self, idx:'vtkEventDataDevice') -> 'vtkVRModel': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderBufferSize(self, width:int, height:int) -> None: ... + def GetScreenSize(self) -> Tuple[int, int]: ... + def GetState(self) -> 'vtkOpenGLState': ... + def GetTrackHMD(self) -> bool: ... + def GetVRInitialized(self) -> bool: ... + def InitializeViewFromCamera(self, cam:'vtkCamera') -> None: ... + def IsA(self, type:str) -> int: ... + def IsCurrent(self) -> bool: ... + def IsDirect(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeCurrent(self) -> None: ... + def MakeRenderWindowInteractor(self) -> 'vtkRenderWindowInteractor': ... + def NewInstance(self) -> 'vtkVRRenderWindow': ... + def ReleaseCurrent(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self) -> None: ... + def RenderModels(self) -> None: ... + def ReportCapabilities(self) -> str: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVRRenderWindow': ... + def SetBaseStationVisibility(self, _arg:bool) -> None: ... + def SetHelperWindow(self, val:'vtkOpenGLRenderWindow') -> None: ... + @overload + def SetSize(self, width:int, height:int) -> None: ... + @overload + def SetSize(self, a:MutableSequence[int]) -> None: ... + def SetTrackHMD(self, __a:bool) -> None: ... + def SupportsOpenGL(self) -> int: ... + def UpdateHMDMatrixPose(self) -> None: ... + +class vtkVRRenderWindowInteractor(vtkmodules.vtkRenderingCore.vtkRenderWindowInteractor3D): + action_manifest_directory:'getset_descriptor' + action_manifest_file_name:'getset_descriptor' + action_set_name:'getset_descriptor' + physical_scale:'getset_descriptor' + physical_view_direction:'getset_descriptor' + physical_view_up:'getset_descriptor' + pointer_device:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddAction(self, path:str, __b:vtkCommand.EventIds, isAnalog:bool) -> None: ... + def ConvertPoseToWorldCoordinates(self, poseInTrackingCoordinates:'vtkMatrix4x4', pos:MutableSequence[float], wxyz:MutableSequence[float], ppos:MutableSequence[float], wdir:MutableSequence[float]) -> None: ... + def DoOneEvent(self, renWin:'vtkVRRenderWindow', ren:'vtkRenderer') -> None: ... + def ExitCallback(self) -> None: ... + def GetActionManifestDirectory(self) -> str: ... + def GetActionManifestFileName(self) -> str: ... + def GetActionSetName(self) -> str: ... + def GetDeviceInputDownCount(self, device:'vtkEventDataDevice') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPhysicalScale(self) -> float: ... + def GetPhysicalTranslation(self, __a:'vtkCamera') -> Pointer: ... + def GetPhysicalViewDirection(self) -> Pointer: ... + def GetPhysicalViewUp(self) -> Pointer: ... + def GetPointerDevice(self) -> 'vtkEventDataDevice': ... + def HandleComplexGestureEvents(self, ed:'vtkEventData') -> None: ... + def Initialize(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVRRenderWindowInteractor': ... + def ProcessEvents(self) -> None: ... + def RecognizeComplexGesture(self, edata:'vtkEventDataDevice3D') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVRRenderWindowInteractor': ... + def SetActionManifestDirectory(self, _arg:str) -> None: ... + def SetActionManifestFileName(self, _arg:str) -> None: ... + def SetActionSetName(self, _arg:str) -> None: ... + @staticmethod + def SetClassExitMethod(f:Callback) -> None: ... + def SetDeviceInputDownCount(self, device:'vtkEventDataDevice', count:int) -> None: ... + def SetPhysicalScale(self, __a:float) -> None: ... + def SetPhysicalTranslation(self, __a:'vtkCamera', __b:float, __c:float, __d:float) -> None: ... + def SetPhysicalViewDirection(self, __a:float, __b:float, __c:float) -> None: ... + def SetPhysicalViewUp(self, __a:float, __b:float, __c:float) -> None: ... + +class vtkVRRenderer(vtkmodules.vtkRenderingOpenGL2.vtkOpenGLRenderer): + show_floor:'getset_descriptor' + show_left_marker:'getset_descriptor' + show_right_marker:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def DeviceRender(self) -> None: ... + def GetFloorTransform(self, transform:'vtkTransform') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShowFloor(self) -> bool: ... + def GetShowLeftMarker(self) -> bool: ... + def GetShowRightMarker(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MakeCamera(self) -> 'vtkCamera': ... + def NewInstance(self) -> 'vtkVRRenderer': ... + @overload + def ResetCamera(self, bounds:Sequence[float]) -> None: ... + @overload + def ResetCamera(self) -> None: ... + @overload + def ResetCamera(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @overload + def ResetCameraClippingRange(self) -> None: ... + @overload + def ResetCameraClippingRange(self, bounds:Sequence[float]) -> None: ... + @overload + def ResetCameraClippingRange(self, xmin:float, xmax:float, ymin:float, ymax:float, zmin:float, zmax:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVRRenderer': ... + def SetShowFloor(self, value:bool) -> None: ... + def SetShowLeftMarker(self, value:bool) -> None: ... + def SetShowRightMarker(self, value:bool) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVRModels.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVRModels.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..c6832f3 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVRModels.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVRModels.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVRModels.pyi new file mode 100644 index 0000000..3f0d94d --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVRModels.pyi @@ -0,0 +1,69 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingCore + +class vtkOpenGLAvatar(vtkmodules.vtkRenderingCore.vtkAvatar): + bounds:'getset_descriptor' + label:'getset_descriptor' + label_text_property:'getset_descriptor' + left_show_ray:'getset_descriptor' + ray_length:'getset_descriptor' + right_show_ray:'getset_descriptor' + show_hands_only:'getset_descriptor' + use_left_hand:'getset_descriptor' + use_right_hand:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetLabel(self) -> str: ... + def GetLabelTextProperty(self) -> 'vtkTextProperty': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLAvatar': ... + def RenderOpaqueGeometry(self, vp:'vtkViewport') -> int: ... + def RenderTranslucentPolygonalGeometry(self, vp:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLAvatar': ... + def SetLabel(self, label:str) -> None: ... + def SetLeftShowRay(self, v:bool) -> None: ... + def SetRayLength(self, length:float) -> None: ... + def SetRightShowRay(self, v:bool) -> None: ... + def SetShowHandsOnly(self, val:bool) -> None: ... + def SetUseLeftHand(self, val:bool) -> None: ... + def SetUseRightHand(self, val:bool) -> None: ... + +class vtkVRRay(vtkmodules.vtkCommonCore.vtkObject): + color:'getset_descriptor' + length:'getset_descriptor' + show:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Build(self, win:'vtkOpenGLRenderWindow') -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShow(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVRRay': ... + def ReleaseGraphicsResources(self, win:'vtkRenderWindow') -> None: ... + def Render(self, win:'vtkOpenGLRenderWindow', poseMatrix:'vtkMatrix4x4') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVRRay': ... + @overload + def SetColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetColor(self, _arg:Sequence[float]) -> None: ... + def SetLength(self, _arg:float) -> None: ... + def SetShow(self, _arg:bool) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVolume.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVolume.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..b4055e3 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVolume.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVolume.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVolume.pyi new file mode 100644 index 0000000..2782570 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVolume.pyi @@ -0,0 +1,1297 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkRenderingCore + +VTKKW_FPMM_SHIFT:int +VTKKW_FP_MASK:float +VTKKW_FP_SCALE:float +VTKKW_FP_SHIFT:int +VTK_BUNYKRCF_ARRAY_SIZE:int +VTK_BUNYKRCF_MAX_ARRAYS:int +VTK_CROP_CROSS:int +VTK_CROP_FENCE:int +VTK_CROP_INVERTED_CROSS:float +VTK_CROP_INVERTED_FENCE:int +VTK_CROP_SUBVOLUME:int +VTK_MAX_SHADING_TABLES:int + +class vtkVolumeMapper(vtkmodules.vtkRenderingCore.vtkAbstractVolumeMapper): + class BlendModes(int): ... + ADDITIVE_BLEND:'BlendModes' + AVERAGE_INTENSITY_BLEND:'BlendModes' + COMPOSITE_BLEND:'BlendModes' + ISOSURFACE_BLEND:'BlendModes' + MAXIMUM_INTENSITY_BLEND:'BlendModes' + MINIMUM_INTENSITY_BLEND:'BlendModes' + SLICE_BLEND:'BlendModes' + average_ip_scalar_range:'getset_descriptor' + blend_mode:'getset_descriptor' + compute_normal_from_opacity:'getset_descriptor' + cropping:'getset_descriptor' + cropping_region_flags:'getset_descriptor' + cropping_region_planes:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + voxel_cropping_region_planes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeNormalFromOpacityOff(self) -> None: ... + def ComputeNormalFromOpacityOn(self) -> None: ... + def CroppingOff(self) -> None: ... + def CroppingOn(self) -> None: ... + def GetAverageIPScalarRange(self) -> Tuple[float, float]: ... + def GetBlendMode(self) -> int: ... + def GetComputeNormalFromOpacity(self) -> bool: ... + def GetCropping(self) -> int: ... + def GetCroppingMaxValue(self) -> int: ... + def GetCroppingMinValue(self) -> int: ... + def GetCroppingRegionFlags(self) -> int: ... + def GetCroppingRegionFlagsMaxValue(self) -> int: ... + def GetCroppingRegionFlagsMinValue(self) -> int: ... + def GetCroppingRegionPlanes(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetInput(self) -> 'vtkDataSet': ... + @overload + def GetInput(self, port:int) -> 'vtkDataSet': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVoxelCroppingRegionPlanes(self) -> Tuple[float, float, float, float, float, float]: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVolumeMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer', vol:'vtkVolume') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVolumeMapper': ... + @overload + def SetAverageIPScalarRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetAverageIPScalarRange(self, _arg:Sequence[float]) -> None: ... + def SetBlendMode(self, _arg:int) -> None: ... + def SetBlendModeToAdditive(self) -> None: ... + def SetBlendModeToAverageIntensity(self) -> None: ... + def SetBlendModeToComposite(self) -> None: ... + def SetBlendModeToIsoSurface(self) -> None: ... + def SetBlendModeToMaximumIntensity(self) -> None: ... + def SetBlendModeToMinimumIntensity(self) -> None: ... + def SetBlendModeToSlice(self) -> None: ... + def SetComputeNormalFromOpacity(self, _arg:bool) -> None: ... + def SetCropping(self, _arg:int) -> None: ... + def SetCroppingRegionFlags(self, _arg:int) -> None: ... + def SetCroppingRegionFlagsToCross(self) -> None: ... + def SetCroppingRegionFlagsToFence(self) -> None: ... + def SetCroppingRegionFlagsToInvertedCross(self) -> None: ... + def SetCroppingRegionFlagsToInvertedFence(self) -> None: ... + def SetCroppingRegionFlagsToSubVolume(self) -> None: ... + @overload + def SetCroppingRegionPlanes(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float, _arg5:float, _arg6:float) -> None: ... + @overload + def SetCroppingRegionPlanes(self, _arg:Sequence[float]) -> None: ... + @overload + def SetInputData(self, __a:'vtkImageData') -> None: ... + @overload + def SetInputData(self, __a:'vtkDataSet') -> None: ... + @overload + def SetInputData(self, __a:'vtkRectilinearGrid') -> None: ... + +class vtkAnariVolumeInterface(vtkVolumeMapper): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAnariVolumeInterface': ... + def Render(self, __a:'vtkRenderer', __b:'vtkVolume') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAnariVolumeInterface': ... + +class vtkDirectionEncoder(vtkmodules.vtkCommonCore.vtkObject): + decoded_gradient_table:'getset_descriptor' + number_of_encoded_directions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDecodedGradient(self, value:int) -> Tuple[float, float, float]: ... + def GetDecodedGradientTable(self) -> Pointer: ... + def GetEncodedDirection(self, n:MutableSequence[float]) -> int: ... + def GetNumberOfEncodedDirections(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDirectionEncoder': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDirectionEncoder': ... + +class vtkEncodedGradientEstimator(vtkmodules.vtkCommonCore.vtkObject): + bounds:'getset_descriptor' + bounds_clip:'getset_descriptor' + circle_limits:'getset_descriptor' + compute_gradient_magnitudes:'getset_descriptor' + cylinder_clip:'getset_descriptor' + direction_encoder:'getset_descriptor' + encoded_normals:'getset_descriptor' + gradient_magnitude_bias:'getset_descriptor' + gradient_magnitude_scale:'getset_descriptor' + gradient_magnitudes:'getset_descriptor' + input_aspect:'getset_descriptor' + input_data:'getset_descriptor' + input_size:'getset_descriptor' + last_update_time_in_cpu_seconds:'getset_descriptor' + last_update_time_in_seconds:'getset_descriptor' + number_of_threads:'getset_descriptor' + number_of_threads_max_value:'getset_descriptor' + number_of_threads_min_value:'getset_descriptor' + use_cylinder_clip:'getset_descriptor' + zero_normal_threshold:'getset_descriptor' + zero_pad:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def BoundsClipOff(self) -> None: ... + def BoundsClipOn(self) -> None: ... + def ComputeGradientMagnitudesOff(self) -> None: ... + def ComputeGradientMagnitudesOn(self) -> None: ... + def CylinderClipOff(self) -> None: ... + def CylinderClipOn(self) -> None: ... + def GetBounds(self) -> Tuple[int, int, int, int, int, int]: ... + def GetBoundsClip(self) -> int: ... + def GetBoundsClipMaxValue(self) -> int: ... + def GetBoundsClipMinValue(self) -> int: ... + def GetCircleLimits(self) -> Pointer: ... + def GetComputeGradientMagnitudes(self) -> int: ... + def GetCylinderClip(self) -> int: ... + def GetDirectionEncoder(self) -> 'vtkDirectionEncoder': ... + @overload + def GetEncodedNormalIndex(self, xyzIndex:int) -> int: ... + @overload + def GetEncodedNormalIndex(self, xIndex:int, yIndex:int, zIndex:int) -> int: ... + def GetEncodedNormals(self) -> Pointer: ... + def GetGradientMagnitudeBias(self) -> float: ... + def GetGradientMagnitudeScale(self) -> float: ... + def GetGradientMagnitudes(self) -> Pointer: ... + def GetInputAspect(self) -> Tuple[float, float, float]: ... + def GetInputData(self) -> 'vtkImageData': ... + def GetInputSize(self) -> Tuple[int, int, int]: ... + def GetLastUpdateTimeInCPUSeconds(self) -> float: ... + def GetLastUpdateTimeInSeconds(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfThreads(self) -> int: ... + def GetNumberOfThreadsMaxValue(self) -> int: ... + def GetNumberOfThreadsMinValue(self) -> int: ... + def GetUseCylinderClip(self) -> int: ... + def GetZeroNormalThreshold(self) -> float: ... + def GetZeroPad(self) -> int: ... + def GetZeroPadMaxValue(self) -> int: ... + def GetZeroPadMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEncodedGradientEstimator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEncodedGradientEstimator': ... + @overload + def SetBounds(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int) -> None: ... + @overload + def SetBounds(self, _arg:Sequence[int]) -> None: ... + def SetBoundsClip(self, _arg:int) -> None: ... + def SetComputeGradientMagnitudes(self, _arg:int) -> None: ... + def SetCylinderClip(self, _arg:int) -> None: ... + def SetDirectionEncoder(self, direnc:'vtkDirectionEncoder') -> None: ... + def SetGradientMagnitudeBias(self, _arg:float) -> None: ... + def SetGradientMagnitudeScale(self, _arg:float) -> None: ... + def SetInputData(self, __a:'vtkImageData') -> None: ... + def SetNumberOfThreads(self, _arg:int) -> None: ... + def SetZeroNormalThreshold(self, v:float) -> None: ... + def SetZeroPad(self, _arg:int) -> None: ... + def Update(self) -> None: ... + def ZeroPadOff(self) -> None: ... + def ZeroPadOn(self) -> None: ... + +class vtkEncodedGradientShader(vtkmodules.vtkCommonCore.vtkObject): + active_component:'getset_descriptor' + zero_normal_diffuse_intensity:'getset_descriptor' + zero_normal_specular_intensity:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetActiveComponent(self) -> int: ... + def GetActiveComponentMaxValue(self) -> int: ... + def GetActiveComponentMinValue(self) -> int: ... + def GetBlueDiffuseShadingTable(self, vol:'vtkVolume') -> Pointer: ... + def GetBlueSpecularShadingTable(self, vol:'vtkVolume') -> Pointer: ... + def GetGreenDiffuseShadingTable(self, vol:'vtkVolume') -> Pointer: ... + def GetGreenSpecularShadingTable(self, vol:'vtkVolume') -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRedDiffuseShadingTable(self, vol:'vtkVolume') -> Pointer: ... + def GetRedSpecularShadingTable(self, vol:'vtkVolume') -> Pointer: ... + def GetZeroNormalDiffuseIntensity(self) -> float: ... + def GetZeroNormalDiffuseIntensityMaxValue(self) -> float: ... + def GetZeroNormalDiffuseIntensityMinValue(self) -> float: ... + def GetZeroNormalSpecularIntensity(self) -> float: ... + def GetZeroNormalSpecularIntensityMaxValue(self) -> float: ... + def GetZeroNormalSpecularIntensityMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEncodedGradientShader': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEncodedGradientShader': ... + def SetActiveComponent(self, _arg:int) -> None: ... + def SetZeroNormalDiffuseIntensity(self, _arg:float) -> None: ... + def SetZeroNormalSpecularIntensity(self, _arg:float) -> None: ... + def UpdateShadingTable(self, ren:'vtkRenderer', vol:'vtkVolume', gradest:'vtkEncodedGradientEstimator') -> None: ... + +class vtkFiniteDifferenceGradientEstimator(vtkEncodedGradientEstimator): + sample_spacing_in_voxels:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSampleSpacingInVoxels(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFiniteDifferenceGradientEstimator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFiniteDifferenceGradientEstimator': ... + def SetSampleSpacingInVoxels(self, _arg:int) -> None: ... + +class vtkFixedPointRayCastImage(vtkmodules.vtkCommonCore.vtkObject): + image:'getset_descriptor' + image_in_use_size:'getset_descriptor' + image_memory_size:'getset_descriptor' + image_origin:'getset_descriptor' + image_sample_distance:'getset_descriptor' + image_viewport_size:'getset_descriptor' + use_z_buffer:'getset_descriptor' + z_buffer:'getset_descriptor' + z_buffer_origin:'getset_descriptor' + z_buffer_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AllocateImage(self) -> None: ... + def AllocateZBuffer(self) -> None: ... + def ClearImage(self) -> None: ... + def GetImage(self) -> Pointer: ... + def GetImageInUseSize(self) -> Tuple[int, int]: ... + def GetImageMemorySize(self) -> Tuple[int, int]: ... + def GetImageOrigin(self) -> Tuple[int, int]: ... + def GetImageSampleDistance(self) -> float: ... + def GetImageViewportSize(self) -> Tuple[int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseZBuffer(self) -> int: ... + def GetUseZBufferMaxValue(self) -> int: ... + def GetUseZBufferMinValue(self) -> int: ... + def GetZBuffer(self) -> Pointer: ... + def GetZBufferOrigin(self) -> Tuple[int, int]: ... + def GetZBufferSize(self) -> Tuple[int, int]: ... + def GetZBufferValue(self, x:int, y:int) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFixedPointRayCastImage': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFixedPointRayCastImage': ... + @overload + def SetImageInUseSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetImageInUseSize(self, _arg:Sequence[int]) -> None: ... + @overload + def SetImageMemorySize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetImageMemorySize(self, _arg:Sequence[int]) -> None: ... + @overload + def SetImageOrigin(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetImageOrigin(self, _arg:Sequence[int]) -> None: ... + def SetImageSampleDistance(self, _arg:float) -> None: ... + @overload + def SetImageViewportSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetImageViewportSize(self, _arg:Sequence[int]) -> None: ... + def SetUseZBuffer(self, _arg:int) -> None: ... + @overload + def SetZBufferOrigin(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetZBufferOrigin(self, _arg:Sequence[int]) -> None: ... + @overload + def SetZBufferSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetZBufferSize(self, _arg:Sequence[int]) -> None: ... + def UseZBufferOff(self) -> None: ... + def UseZBufferOn(self) -> None: ... + +class vtkFixedPointVolumeRayCastHelper(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GenerateImage(self, __a:int, __b:int, __c:'vtkVolume', __d:'vtkFixedPointVolumeRayCastMapper') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFixedPointVolumeRayCastHelper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFixedPointVolumeRayCastHelper': ... + +class vtkFixedPointVolumeRayCastCompositeGOHelper(vtkFixedPointVolumeRayCastHelper): + def __init__(self, **properties:Any) -> None: ... + def GenerateImage(self, threadID:int, threadCount:int, vol:'vtkVolume', mapper:'vtkFixedPointVolumeRayCastMapper') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFixedPointVolumeRayCastCompositeGOHelper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFixedPointVolumeRayCastCompositeGOHelper': ... + +class vtkFixedPointVolumeRayCastCompositeGOShadeHelper(vtkFixedPointVolumeRayCastHelper): + def __init__(self, **properties:Any) -> None: ... + def GenerateImage(self, threadID:int, threadCount:int, vol:'vtkVolume', mapper:'vtkFixedPointVolumeRayCastMapper') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFixedPointVolumeRayCastCompositeGOShadeHelper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFixedPointVolumeRayCastCompositeGOShadeHelper': ... + +class vtkFixedPointVolumeRayCastCompositeHelper(vtkFixedPointVolumeRayCastHelper): + def __init__(self, **properties:Any) -> None: ... + def GenerateImage(self, threadID:int, threadCount:int, vol:'vtkVolume', mapper:'vtkFixedPointVolumeRayCastMapper') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFixedPointVolumeRayCastCompositeHelper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFixedPointVolumeRayCastCompositeHelper': ... + +class vtkFixedPointVolumeRayCastCompositeShadeHelper(vtkFixedPointVolumeRayCastHelper): + def __init__(self, **properties:Any) -> None: ... + def GenerateImage(self, threadID:int, threadCount:int, vol:'vtkVolume', mapper:'vtkFixedPointVolumeRayCastMapper') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFixedPointVolumeRayCastCompositeShadeHelper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFixedPointVolumeRayCastCompositeShadeHelper': ... + +class vtkFixedPointVolumeRayCastMIPHelper(vtkFixedPointVolumeRayCastHelper): + def __init__(self, **properties:Any) -> None: ... + def GenerateImage(self, threadID:int, threadCount:int, vol:'vtkVolume', mapper:'vtkFixedPointVolumeRayCastMapper') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkFixedPointVolumeRayCastMIPHelper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFixedPointVolumeRayCastMIPHelper': ... + +class vtkFixedPointVolumeRayCastMapper(vtkVolumeMapper): + auto_adjust_sample_distances:'getset_descriptor' + composite_go_helper:'getset_descriptor' + composite_go_shade_helper:'getset_descriptor' + composite_helper:'getset_descriptor' + composite_shade_helper:'getset_descriptor' + current_scalars:'getset_descriptor' + final_color_level:'getset_descriptor' + final_color_window:'getset_descriptor' + flip_mip_comparison:'getset_descriptor' + gradient_opacity_required:'getset_descriptor' + image_sample_distance:'getset_descriptor' + interactive_sample_distance:'getset_descriptor' + intermix_intersecting_geometry:'getset_descriptor' + lock_sample_distance_to_input_spacing:'getset_descriptor' + maximum_image_sample_distance:'getset_descriptor' + minimum_image_sample_distance:'getset_descriptor' + mip_helper:'getset_descriptor' + number_of_threads:'getset_descriptor' + previous_scalars:'getset_descriptor' + ray_cast_image:'getset_descriptor' + render_window:'getset_descriptor' + row_bounds:'getset_descriptor' + sample_distance:'getset_descriptor' + shading_required:'getset_descriptor' + table_scale:'getset_descriptor' + table_shift:'getset_descriptor' + volume:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AbortRender(self) -> None: ... + def AutoAdjustSampleDistancesOff(self) -> None: ... + def AutoAdjustSampleDistancesOn(self) -> None: ... + def CheckIfCropped(self, pos:MutableSequence[int]) -> int: ... + def CheckMIPMinMaxVolumeFlag(self, pos:MutableSequence[int], c:int, maxIdx:int, flip:int) -> int: ... + def CheckMinMaxVolumeFlag(self, pos:MutableSequence[int], c:int) -> int: ... + def ComputeRayInfo(self, x:int, y:int, pos:MutableSequence[int], dir:MutableSequence[int], numSteps:MutableSequence[int]) -> None: ... + @overload + def ComputeRequiredImageSampleDistance(self, desiredTime:float, ren:'vtkRenderer') -> float: ... + @overload + def ComputeRequiredImageSampleDistance(self, desiredTime:float, ren:'vtkRenderer', vol:'vtkVolume') -> float: ... + def CreateCanonicalView(self, volume:'vtkVolume', image:'vtkImageData', blend_mode:int, viewDirection:MutableSequence[float], viewUp:MutableSequence[float]) -> None: ... + def DisplayRenderedImage(self, __a:'vtkRenderer', __b:'vtkVolume') -> None: ... + def FixedPointIncrement(self, position:MutableSequence[int], increment:MutableSequence[int]) -> None: ... + def GetAutoAdjustSampleDistances(self) -> int: ... + def GetAutoAdjustSampleDistancesMaxValue(self) -> int: ... + def GetAutoAdjustSampleDistancesMinValue(self) -> int: ... + def GetColorTable(self, c:int) -> Pointer: ... + def GetCompositeGOHelper(self) -> 'vtkFixedPointVolumeRayCastCompositeGOHelper': ... + def GetCompositeGOShadeHelper(self) -> 'vtkFixedPointVolumeRayCastCompositeGOShadeHelper': ... + def GetCompositeHelper(self) -> 'vtkFixedPointVolumeRayCastCompositeHelper': ... + def GetCompositeShadeHelper(self) -> 'vtkFixedPointVolumeRayCastCompositeShadeHelper': ... + def GetCurrentScalars(self) -> 'vtkDataArray': ... + def GetDiffuseShadingTable(self, c:int) -> Pointer: ... + @overload + def GetEstimatedRenderTime(self, ren:'vtkRenderer', vol:'vtkVolume') -> float: ... + @overload + def GetEstimatedRenderTime(self, ren:'vtkRenderer') -> float: ... + def GetFinalColorLevel(self) -> float: ... + def GetFinalColorWindow(self) -> float: ... + def GetFlipMIPComparison(self) -> int: ... + def GetFloatTripleFromPointer(self, v:MutableSequence[float], ptr:MutableSequence[float]) -> None: ... + def GetGradientOpacityRequired(self) -> int: ... + def GetGradientOpacityTable(self, c:int) -> Pointer: ... + def GetImageSampleDistance(self) -> float: ... + def GetImageSampleDistanceMaxValue(self) -> float: ... + def GetImageSampleDistanceMinValue(self) -> float: ... + def GetInteractiveSampleDistance(self) -> float: ... + def GetIntermixIntersectingGeometry(self) -> int: ... + def GetIntermixIntersectingGeometryMaxValue(self) -> int: ... + def GetIntermixIntersectingGeometryMinValue(self) -> int: ... + def GetLockSampleDistanceToInputSpacing(self) -> int: ... + def GetLockSampleDistanceToInputSpacingMaxValue(self) -> int: ... + def GetLockSampleDistanceToInputSpacingMinValue(self) -> int: ... + def GetMIPHelper(self) -> 'vtkFixedPointVolumeRayCastMIPHelper': ... + def GetMaximumImageSampleDistance(self) -> float: ... + def GetMaximumImageSampleDistanceMaxValue(self) -> float: ... + def GetMaximumImageSampleDistanceMinValue(self) -> float: ... + def GetMinimumImageSampleDistance(self) -> float: ... + def GetMinimumImageSampleDistanceMaxValue(self) -> float: ... + def GetMinimumImageSampleDistanceMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfThreads(self) -> int: ... + def GetPreviousScalars(self) -> 'vtkDataArray': ... + def GetRayCastImage(self) -> 'vtkFixedPointRayCastImage': ... + def GetRenderWindow(self) -> 'vtkRenderWindow': ... + def GetRowBounds(self) -> Pointer: ... + def GetSampleDistance(self) -> float: ... + def GetScalarOpacityTable(self, c:int) -> Pointer: ... + def GetShadingRequired(self) -> int: ... + def GetSpecularShadingTable(self, c:int) -> Pointer: ... + def GetTableScale(self) -> Tuple[float, float, float, float]: ... + def GetTableShift(self) -> Tuple[float, float, float, float]: ... + def GetUIntTripleFromPointer(self, v:MutableSequence[int], ptr:MutableSequence[int]) -> None: ... + def GetVolume(self) -> 'vtkVolume': ... + def InitializeRayInfo(self, vol:'vtkVolume') -> None: ... + def IntermixIntersectingGeometryOff(self) -> None: ... + def IntermixIntersectingGeometryOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LockSampleDistanceToInputSpacingOff(self) -> None: ... + def LockSampleDistanceToInputSpacingOn(self) -> None: ... + def LookupColorUC(self, colorTable:MutableSequence[int], scalarOpacityTable:MutableSequence[int], index:int, color:MutableSequence[int]) -> None: ... + def LookupDependentColorUC(self, colorTable:MutableSequence[int], scalarOpacityTable:MutableSequence[int], index:MutableSequence[int], components:int, color:MutableSequence[int]) -> None: ... + def NewInstance(self) -> 'vtkFixedPointVolumeRayCastMapper': ... + def PerImageInitialization(self, __a:'vtkRenderer', __b:'vtkVolume', __c:int, __d:MutableSequence[float], __e:MutableSequence[float], __f:MutableSequence[int]) -> int: ... + def PerSubVolumeInitialization(self, __a:'vtkRenderer', __b:'vtkVolume', __c:int) -> None: ... + def PerVolumeInitialization(self, __a:'vtkRenderer', __b:'vtkVolume') -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, __a:'vtkRenderer', __b:'vtkVolume') -> None: ... + def RenderSubVolume(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkFixedPointVolumeRayCastMapper': ... + def SetAutoAdjustSampleDistances(self, _arg:int) -> None: ... + def SetFinalColorLevel(self, _arg:float) -> None: ... + def SetFinalColorWindow(self, _arg:float) -> None: ... + def SetImageSampleDistance(self, _arg:float) -> None: ... + def SetInteractiveSampleDistance(self, _arg:float) -> None: ... + def SetIntermixIntersectingGeometry(self, _arg:int) -> None: ... + def SetLockSampleDistanceToInputSpacing(self, _arg:int) -> None: ... + def SetMaximumImageSampleDistance(self, _arg:float) -> None: ... + def SetMinimumImageSampleDistance(self, _arg:float) -> None: ... + def SetNumberOfThreads(self, num:int) -> None: ... + def SetRayCastImage(self, __a:'vtkFixedPointRayCastImage') -> None: ... + def SetSampleDistance(self, _arg:float) -> None: ... + def ShiftVectorDown(self, in_:MutableSequence[int], out:MutableSequence[int]) -> None: ... + def ShouldUseNearestNeighborInterpolation(self, vol:'vtkVolume') -> int: ... + @overload + def ToFixedPointDirection(self, dir:float) -> int: ... + @overload + def ToFixedPointDirection(self, in_:MutableSequence[float], out:MutableSequence[int]) -> None: ... + @overload + def ToFixedPointPosition(self, val:float) -> int: ... + @overload + def ToFixedPointPosition(self, in_:MutableSequence[float], out:MutableSequence[int]) -> None: ... + +class vtkGPUVolumeRayCastMapper(vtkVolumeMapper): + class TFRangeType(int): ... + BinaryMaskType:int + LabelMapMaskType:int + NATIVE:'TFRangeType' + SCALAR:'TFRangeType' + auto_adjust_sample_distances:'getset_descriptor' + clamp_depth_to_backface:'getset_descriptor' + color_range_type:'getset_descriptor' + depth_image_scalar_type:'getset_descriptor' + depth_pass_contour_values:'getset_descriptor' + final_color_level:'getset_descriptor' + final_color_window:'getset_descriptor' + global_illumination_reach:'getset_descriptor' + gradient_opacity_range_type:'getset_descriptor' + image_sample_distance:'getset_descriptor' + input:'getset_descriptor' + input_connection:'getset_descriptor' + input_count:'getset_descriptor' + lock_sample_distance_to_input_spacing:'getset_descriptor' + mask_blend_factor:'getset_descriptor' + mask_input:'getset_descriptor' + mask_type:'getset_descriptor' + max_memory_fraction:'getset_descriptor' + max_memory_in_bytes:'getset_descriptor' + maximum_image_sample_distance:'getset_descriptor' + minimum_image_sample_distance:'getset_descriptor' + render_to_image:'getset_descriptor' + report_progress:'getset_descriptor' + sample_distance:'getset_descriptor' + scalar_opacity_range_type:'getset_descriptor' + transfer2dy_axis_array:'getset_descriptor' + use_depth_pass:'getset_descriptor' + use_jittering:'getset_descriptor' + volumetric_scattering_blending:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutoAdjustSampleDistancesOff(self) -> None: ... + def AutoAdjustSampleDistancesOn(self) -> None: ... + def ClampDepthToBackfaceOff(self) -> None: ... + def ClampDepthToBackfaceOn(self) -> None: ... + def CreateCanonicalView(self, ren:'vtkRenderer', volume:'vtkVolume', image:'vtkImageData', blend_mode:int, viewDirection:MutableSequence[float], viewUp:MutableSequence[float]) -> None: ... + def GPURender(self, __a:'vtkRenderer', __b:'vtkVolume') -> None: ... + def GetAutoAdjustSampleDistances(self) -> int: ... + def GetAutoAdjustSampleDistancesMaxValue(self) -> int: ... + def GetAutoAdjustSampleDistancesMinValue(self) -> int: ... + def GetBoundsFromPort(self, port:int) -> Tuple[float, float, float, float, float, float]: ... + def GetClampDepthToBackface(self) -> int: ... + def GetColorImage(self, __a:'vtkImageData') -> None: ... + def GetColorRangeType(self) -> int: ... + def GetDepthImage(self, __a:'vtkImageData') -> None: ... + def GetDepthImageScalarType(self) -> int: ... + def GetDepthPassContourValues(self) -> 'vtkContourValues': ... + def GetFinalColorLevel(self) -> float: ... + def GetFinalColorWindow(self) -> float: ... + def GetGlobalIlluminationReach(self) -> float: ... + def GetGlobalIlluminationReachMaxValue(self) -> float: ... + def GetGlobalIlluminationReachMinValue(self) -> float: ... + def GetGradientOpacityRangeType(self) -> int: ... + def GetImageSampleDistance(self) -> float: ... + def GetImageSampleDistanceMaxValue(self) -> float: ... + def GetImageSampleDistanceMinValue(self) -> float: ... + def GetInput(self) -> 'vtkDataSet': ... + def GetInputCount(self) -> int: ... + def GetLockSampleDistanceToInputSpacing(self) -> int: ... + def GetLockSampleDistanceToInputSpacingMaxValue(self) -> int: ... + def GetLockSampleDistanceToInputSpacingMinValue(self) -> int: ... + def GetMaskBlendFactor(self) -> float: ... + def GetMaskBlendFactorMaxValue(self) -> float: ... + def GetMaskBlendFactorMinValue(self) -> float: ... + def GetMaskInput(self) -> 'vtkImageData': ... + def GetMaskType(self) -> int: ... + def GetMaxMemoryFraction(self) -> float: ... + def GetMaxMemoryFractionMaxValue(self) -> float: ... + def GetMaxMemoryFractionMinValue(self) -> float: ... + def GetMaxMemoryInBytes(self) -> int: ... + def GetMaximumImageSampleDistance(self) -> float: ... + def GetMaximumImageSampleDistanceMaxValue(self) -> float: ... + def GetMaximumImageSampleDistanceMinValue(self) -> float: ... + def GetMinimumImageSampleDistance(self) -> float: ... + def GetMinimumImageSampleDistanceMaxValue(self) -> float: ... + def GetMinimumImageSampleDistanceMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetReductionRatio(self, ratio:MutableSequence[float]) -> None: ... + def GetRenderToImage(self) -> int: ... + def GetReportProgress(self) -> bool: ... + def GetSampleDistance(self) -> float: ... + def GetScalarOpacityRangeType(self) -> int: ... + def GetTransfer2DYAxisArray(self) -> str: ... + def GetTransformedInput(self, port:int=0) -> 'vtkDataSet': ... + def GetUseDepthPass(self) -> int: ... + def GetUseDepthPassMaxValue(self) -> int: ... + def GetUseDepthPassMinValue(self) -> int: ... + def GetUseJittering(self) -> int: ... + def GetUseJitteringMaxValue(self) -> int: ... + def GetUseJitteringMinValue(self) -> int: ... + def GetVolumetricScatteringBlending(self) -> float: ... + def GetVolumetricScatteringBlendingMaxValue(self) -> float: ... + def GetVolumetricScatteringBlendingMinValue(self) -> float: ... + def IsA(self, type:str) -> int: ... + def IsRenderSupported(self, window:'vtkRenderWindow', property:'vtkVolumeProperty') -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LockSampleDistanceToInputSpacingOff(self) -> None: ... + def LockSampleDistanceToInputSpacingOn(self) -> None: ... + def NewInstance(self) -> 'vtkGPUVolumeRayCastMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + @overload + def RemoveInputConnection(self, port:int, input:'vtkAlgorithmOutput') -> None: ... + @overload + def RemoveInputConnection(self, port:int, idx:int) -> None: ... + def Render(self, __a:'vtkRenderer', __b:'vtkVolume') -> None: ... + def RenderToImageOff(self) -> None: ... + def RenderToImageOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGPUVolumeRayCastMapper': ... + def SetAutoAdjustSampleDistances(self, _arg:int) -> None: ... + def SetClampDepthToBackface(self, _arg:int) -> None: ... + def SetColorRangeType(self, _arg:int) -> None: ... + def SetDepthImageScalarType(self, _arg:int) -> None: ... + def SetDepthImageScalarTypeToFloat(self) -> None: ... + def SetDepthImageScalarTypeToUnsignedChar(self) -> None: ... + def SetDepthImageScalarTypeToUnsignedShort(self) -> None: ... + def SetFinalColorLevel(self, _arg:float) -> None: ... + def SetFinalColorWindow(self, _arg:float) -> None: ... + def SetGlobalIlluminationReach(self, _arg:float) -> None: ... + def SetGradientOpacityRangeType(self, _arg:int) -> None: ... + def SetImageSampleDistance(self, _arg:float) -> None: ... + @overload + def SetInputConnection(self, port:int, input:'vtkAlgorithmOutput') -> None: ... + @overload + def SetInputConnection(self, input:'vtkAlgorithmOutput') -> None: ... + def SetLockSampleDistanceToInputSpacing(self, _arg:int) -> None: ... + def SetMaskBlendFactor(self, _arg:float) -> None: ... + def SetMaskInput(self, mask:'vtkImageData') -> None: ... + def SetMaskType(self, _arg:int) -> None: ... + def SetMaskTypeToBinary(self) -> None: ... + def SetMaskTypeToLabelMap(self) -> None: ... + def SetMaxMemoryFraction(self, _arg:float) -> None: ... + def SetMaxMemoryInBytes(self, _arg:int) -> None: ... + def SetMaximumImageSampleDistance(self, _arg:float) -> None: ... + def SetMinimumImageSampleDistance(self, _arg:float) -> None: ... + def SetRenderToImage(self, _arg:int) -> None: ... + def SetReportProgress(self, _arg:bool) -> None: ... + def SetSampleDistance(self, _arg:float) -> None: ... + def SetScalarOpacityRangeType(self, _arg:int) -> None: ... + def SetTransfer2DYAxisArray(self, _arg:str) -> None: ... + def SetUseDepthPass(self, _arg:int) -> None: ... + def SetUseJittering(self, _arg:int) -> None: ... + def SetVolumetricScatteringBlending(self, _arg:float) -> None: ... + def UseDepthPassOff(self) -> None: ... + def UseDepthPassOn(self) -> None: ... + def UseJitteringOff(self) -> None: ... + def UseJitteringOn(self) -> None: ... + +class vtkMultiVolume(vtkmodules.vtkRenderingCore.vtkVolume): + bounds:'getset_descriptor' + bounds_time:'getset_descriptor' + data_bounds:'getset_descriptor' + data_geometry:'getset_descriptor' + m_time:'getset_descriptor' + matrix:'getset_descriptor' + property:'getset_descriptor' + texture_matrix:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + def GetBoundsTime(self) -> int: ... + def GetDataBounds(self) -> Pointer: ... + def GetDataGeometry(self) -> Pointer: ... + def GetMTime(self) -> int: ... + @overload + def GetMatrix(self) -> 'vtkMatrix4x4': ... + @overload + def GetMatrix(self, result:'vtkMatrix4x4') -> None: ... + @overload + def GetMatrix(self, result:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProperty(self) -> 'vtkVolumeProperty': ... + def GetTextureMatrix(self) -> 'vtkMatrix4x4': ... + def GetVolume(self, port:int=0) -> 'vtkVolume': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMultiVolume': ... + def RemoveVolume(self, port:int) -> None: ... + def RenderVolumetricGeometry(self, vp:'vtkViewport') -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMultiVolume': ... + def SetProperty(self, property:'vtkVolumeProperty') -> None: ... + def SetVolume(self, volume:'vtkVolume', port:int=0) -> None: ... + def ShallowCopy(self, prop:'vtkProp') -> None: ... + +class vtkOSPRayVolumeInterface(vtkVolumeMapper): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOSPRayVolumeInterface': ... + def Render(self, __a:'vtkRenderer', __b:'vtkVolume') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOSPRayVolumeInterface': ... + +class vtkUnstructuredGridVolumeMapper(vtkmodules.vtkRenderingCore.vtkAbstractVolumeMapper): + COMPOSITE_BLEND:int + MAXIMUM_INTENSITY_BLEND:int + blend_mode:'getset_descriptor' + input:'getset_descriptor' + input_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBlendMode(self) -> int: ... + def GetInput(self) -> 'vtkUnstructuredGridBase': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridVolumeMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer', vol:'vtkVolume') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridVolumeMapper': ... + def SetBlendMode(self, _arg:int) -> None: ... + def SetBlendModeToComposite(self) -> None: ... + def SetBlendModeToMaximumIntensity(self) -> None: ... + @overload + def SetInputData(self, __a:'vtkUnstructuredGridBase') -> None: ... + @overload + def SetInputData(self, __a:'vtkDataSet') -> None: ... + +class vtkProjectedTetrahedraMapper(vtkUnstructuredGridVolumeMapper): + visibility_sort:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVisibilitySort(self) -> 'vtkVisibilitySort': ... + def IsA(self, type:str) -> int: ... + def IsSupported(self, __a:'vtkRenderWindow') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + @staticmethod + def MapScalarsToColors(colors:'vtkDataArray', property:'vtkVolumeProperty', scalars:'vtkDataArray') -> None: ... + def NewInstance(self) -> 'vtkProjectedTetrahedraMapper': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkProjectedTetrahedraMapper': ... + def SetVisibilitySort(self, sort:'vtkVisibilitySort') -> None: ... + @staticmethod + def TransformPoints(inPoints:'vtkPoints', projection_mat:Sequence[float], modelview_mat:Sequence[float], outPoints:'vtkFloatArray') -> None: ... + +class vtkRayCastImageDisplayHelper(vtkmodules.vtkCommonCore.vtkObject): + pixel_scale:'getset_descriptor' + pre_multiplied_colors:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPixelScale(self) -> float: ... + def GetPreMultipliedColors(self) -> int: ... + def GetPreMultipliedColorsMaxValue(self) -> int: ... + def GetPreMultipliedColorsMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRayCastImageDisplayHelper': ... + def PreMultipliedColorsOff(self) -> None: ... + def PreMultipliedColorsOn(self) -> None: ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + @overload + def RenderTexture(self, vol:'vtkVolume', ren:'vtkRenderer', imageMemorySize:MutableSequence[int], imageViewportSize:MutableSequence[int], imageInUseSize:MutableSequence[int], imageOrigin:MutableSequence[int], requestedDepth:float, image:MutableSequence[int]) -> None: ... + @overload + def RenderTexture(self, vol:'vtkVolume', ren:'vtkRenderer', image:'vtkFixedPointRayCastImage', requestedDepth:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRayCastImageDisplayHelper': ... + def SetPixelScale(self, _arg:float) -> None: ... + def SetPreMultipliedColors(self, _arg:int) -> None: ... + +class vtkRecursiveSphereDirectionEncoder(vtkDirectionEncoder): + decoded_gradient_table:'getset_descriptor' + number_of_encoded_directions:'getset_descriptor' + recursion_depth:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDecodedGradient(self, value:int) -> Tuple[float, float, float]: ... + def GetDecodedGradientTable(self) -> Pointer: ... + def GetEncodedDirection(self, n:MutableSequence[float]) -> int: ... + def GetNumberOfEncodedDirections(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRecursionDepth(self) -> int: ... + def GetRecursionDepthMaxValue(self) -> int: ... + def GetRecursionDepthMinValue(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRecursiveSphereDirectionEncoder': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRecursiveSphereDirectionEncoder': ... + def SetRecursionDepth(self, _arg:int) -> None: ... + +class vtkSphericalDirectionEncoder(vtkDirectionEncoder): + decoded_gradient_table:'getset_descriptor' + number_of_encoded_directions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDecodedGradient(self, value:int) -> Tuple[float, float, float]: ... + def GetDecodedGradientTable(self) -> Pointer: ... + def GetEncodedDirection(self, n:MutableSequence[float]) -> int: ... + def GetNumberOfEncodedDirections(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSphericalDirectionEncoder': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSphericalDirectionEncoder': ... + +class vtkUnstructuredGridVolumeRayCastFunction(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def Finalize(self) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, ren:'vtkRenderer', vol:'vtkVolume') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridVolumeRayCastFunction': ... + def NewIterator(self) -> 'vtkUnstructuredGridVolumeRayCastIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridVolumeRayCastFunction': ... + +class vtkUnstructuredGridBunykRayCastFunction(vtkUnstructuredGridVolumeRayCastFunction): + image_origin:'getset_descriptor' + image_viewport_size:'getset_descriptor' + points:'getset_descriptor' + view_to_world_matrix:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Finalize(self) -> None: ... + def GetImageOrigin(self) -> Tuple[int, int]: ... + def GetImageViewportSize(self) -> Tuple[int, int]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPoints(self) -> Pointer: ... + def GetViewToWorldMatrix(self) -> 'vtkMatrix4x4': ... + def Initialize(self, ren:'vtkRenderer', vol:'vtkVolume') -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridBunykRayCastFunction': ... + def NewIterator(self) -> 'vtkUnstructuredGridVolumeRayCastIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridBunykRayCastFunction': ... + +class vtkUnstructuredGridVolumeRayIntegrator(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, volume:'vtkVolume', scalars:'vtkDataArray') -> None: ... + def Integrate(self, intersectionLengths:'vtkDoubleArray', nearIntersections:'vtkDataArray', farIntersections:'vtkDataArray', color:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridVolumeRayIntegrator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridVolumeRayIntegrator': ... + +class vtkUnstructuredGridHomogeneousRayIntegrator(vtkUnstructuredGridVolumeRayIntegrator): + transfer_function_table_size:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTransferFunctionTableSize(self) -> int: ... + def Initialize(self, volume:'vtkVolume', scalars:'vtkDataArray') -> None: ... + def Integrate(self, intersectionLengths:'vtkDoubleArray', nearIntersections:'vtkDataArray', farIntersections:'vtkDataArray', color:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridHomogeneousRayIntegrator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridHomogeneousRayIntegrator': ... + def SetTransferFunctionTableSize(self, _arg:int) -> None: ... + +class vtkUnstructuredGridLinearRayIntegrator(vtkUnstructuredGridVolumeRayIntegrator): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, volume:'vtkVolume', scalars:'vtkDataArray') -> None: ... + def Integrate(self, intersectionLengths:'vtkDoubleArray', nearIntersections:'vtkDataArray', farIntersections:'vtkDataArray', color:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def IntegrateRay(length:float, intensity_front:float, attenuation_front:float, intensity_back:float, attenuation_back:float, color:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def IntegrateRay(length:float, color_front:Sequence[float], attenuation_front:float, color_back:Sequence[float], attenuation_back:float, color:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridLinearRayIntegrator': ... + @staticmethod + def Psi(length:float, attenuation_front:float, attenuation_back:float) -> float: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridLinearRayIntegrator': ... + +class vtkUnstructuredGridPartialPreIntegration(vtkUnstructuredGridVolumeRayIntegrator): + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def BuildPsiTable() -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + @staticmethod + def GetPsiTable(size:int) -> Pointer: ... + def Initialize(self, volume:'vtkVolume', scalars:'vtkDataArray') -> None: ... + def Integrate(self, intersectionLengths:'vtkDoubleArray', nearIntersections:'vtkDataArray', farIntersections:'vtkDataArray', color:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def IntegrateRay(length:float, intensity_front:float, attenuation_front:float, intensity_back:float, attenuation_back:float, color:MutableSequence[float]) -> None: ... + @overload + @staticmethod + def IntegrateRay(length:float, color_front:Sequence[float], attenuation_front:float, color_back:Sequence[float], attenuation_back:float, color:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridPartialPreIntegration': ... + @staticmethod + def Psi(taufD:float, taubD:float) -> float: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridPartialPreIntegration': ... + +class vtkUnstructuredGridPreIntegration(vtkUnstructuredGridVolumeRayIntegrator): + incremental_pre_integration:'getset_descriptor' + integration_table_length_resolution:'getset_descriptor' + integration_table_length_scale:'getset_descriptor' + integration_table_scalar_resolution:'getset_descriptor' + integrator:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetIncrementalPreIntegration(self) -> int: ... + def GetIndexedTableEntry(self, scalar_front_index:int, scalar_back_index:int, length_index:int, component:int=0) -> Pointer: ... + def GetIntegrationTableLengthResolution(self) -> int: ... + def GetIntegrationTableLengthScale(self) -> float: ... + def GetIntegrationTableScalarResolution(self) -> int: ... + def GetIntegrationTableScalarScale(self, component:int=0) -> float: ... + def GetIntegrationTableScalarShift(self, component:int=0) -> float: ... + def GetIntegrator(self) -> 'vtkUnstructuredGridVolumeRayIntegrator': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPreIntegrationTable(self, component:int=0) -> Pointer: ... + def GetTableEntry(self, scalar_front:float, scalar_back:float, length:float, component:int=0) -> Pointer: ... + def IncrementalPreIntegrationOff(self) -> None: ... + def IncrementalPreIntegrationOn(self) -> None: ... + def Initialize(self, volume:'vtkVolume', scalars:'vtkDataArray') -> None: ... + def Integrate(self, intersectionLengths:'vtkDoubleArray', nearIntersections:'vtkDataArray', farIntersections:'vtkDataArray', color:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridPreIntegration': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridPreIntegration': ... + def SetIncrementalPreIntegration(self, _arg:int) -> None: ... + def SetIntegrationTableLengthResolution(self, _arg:int) -> None: ... + def SetIntegrationTableScalarResolution(self, _arg:int) -> None: ... + def SetIntegrator(self, __a:'vtkUnstructuredGridVolumeRayIntegrator') -> None: ... + +class vtkUnstructuredGridVolumeRayCastIterator(vtkmodules.vtkCommonCore.vtkObject): + bounds:'getset_descriptor' + max_number_of_intersections:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBounds(self) -> Tuple[float, float]: ... + def GetMaxNumberOfIntersections(self) -> int: ... + def GetNextIntersections(self, intersectedCells:'vtkIdList', intersectionLengths:'vtkDoubleArray', scalars:'vtkDataArray', nearIntersections:'vtkDataArray', farIntersections:'vtkDataArray') -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def Initialize(self, x:int, y:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridVolumeRayCastIterator': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridVolumeRayCastIterator': ... + @overload + def SetBounds(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetBounds(self, _arg:Sequence[float]) -> None: ... + def SetMaxNumberOfIntersections(self, _arg:int) -> None: ... + +class vtkUnstructuredGridVolumeRayCastMapper(vtkUnstructuredGridVolumeMapper): + auto_adjust_sample_distances:'getset_descriptor' + image_in_use_size:'getset_descriptor' + image_origin:'getset_descriptor' + image_sample_distance:'getset_descriptor' + image_viewport_size:'getset_descriptor' + intermix_intersecting_geometry:'getset_descriptor' + maximum_image_sample_distance:'getset_descriptor' + minimum_image_sample_distance:'getset_descriptor' + number_of_threads:'getset_descriptor' + ray_cast_function:'getset_descriptor' + ray_integrator:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutoAdjustSampleDistancesOff(self) -> None: ... + def AutoAdjustSampleDistancesOn(self) -> None: ... + def CastRays(self, threadID:int, threadCount:int) -> None: ... + def GetAutoAdjustSampleDistances(self) -> int: ... + def GetAutoAdjustSampleDistancesMaxValue(self) -> int: ... + def GetAutoAdjustSampleDistancesMinValue(self) -> int: ... + def GetImageInUseSize(self) -> Tuple[int, int]: ... + def GetImageOrigin(self) -> Tuple[int, int]: ... + def GetImageSampleDistance(self) -> float: ... + def GetImageSampleDistanceMaxValue(self) -> float: ... + def GetImageSampleDistanceMinValue(self) -> float: ... + def GetImageViewportSize(self) -> Tuple[int, int]: ... + def GetIntermixIntersectingGeometry(self) -> int: ... + def GetIntermixIntersectingGeometryMaxValue(self) -> int: ... + def GetIntermixIntersectingGeometryMinValue(self) -> int: ... + def GetMaximumImageSampleDistance(self) -> float: ... + def GetMaximumImageSampleDistanceMaxValue(self) -> float: ... + def GetMaximumImageSampleDistanceMinValue(self) -> float: ... + def GetMinimumImageSampleDistance(self) -> float: ... + def GetMinimumImageSampleDistanceMaxValue(self) -> float: ... + def GetMinimumImageSampleDistanceMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfThreads(self) -> int: ... + def GetRayCastFunction(self) -> 'vtkUnstructuredGridVolumeRayCastFunction': ... + def GetRayIntegrator(self) -> 'vtkUnstructuredGridVolumeRayIntegrator': ... + def IntermixIntersectingGeometryOff(self) -> None: ... + def IntermixIntersectingGeometryOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridVolumeRayCastMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, __a:'vtkRenderer', __b:'vtkVolume') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridVolumeRayCastMapper': ... + def SetAutoAdjustSampleDistances(self, _arg:int) -> None: ... + def SetImageSampleDistance(self, _arg:float) -> None: ... + def SetIntermixIntersectingGeometry(self, _arg:int) -> None: ... + def SetMaximumImageSampleDistance(self, _arg:float) -> None: ... + def SetMinimumImageSampleDistance(self, _arg:float) -> None: ... + def SetNumberOfThreads(self, _arg:int) -> None: ... + def SetRayCastFunction(self, f:'vtkUnstructuredGridVolumeRayCastFunction') -> None: ... + def SetRayIntegrator(self, ri:'vtkUnstructuredGridVolumeRayIntegrator') -> None: ... + +class vtkUnstructuredGridVolumeZSweepMapper(vtkUnstructuredGridVolumeMapper): + auto_adjust_sample_distances:'getset_descriptor' + image_in_use_size:'getset_descriptor' + image_origin:'getset_descriptor' + image_sample_distance:'getset_descriptor' + image_viewport_size:'getset_descriptor' + intermix_intersecting_geometry:'getset_descriptor' + max_pixel_list_size:'getset_descriptor' + maximum_image_sample_distance:'getset_descriptor' + minimum_image_sample_distance:'getset_descriptor' + ray_integrator:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutoAdjustSampleDistancesOff(self) -> None: ... + def AutoAdjustSampleDistancesOn(self) -> None: ... + def GetAutoAdjustSampleDistances(self) -> int: ... + def GetAutoAdjustSampleDistancesMaxValue(self) -> int: ... + def GetAutoAdjustSampleDistancesMinValue(self) -> int: ... + def GetImageInUseSize(self) -> Tuple[int, int]: ... + def GetImageOrigin(self) -> Tuple[int, int]: ... + def GetImageSampleDistance(self) -> float: ... + def GetImageSampleDistanceMaxValue(self) -> float: ... + def GetImageSampleDistanceMinValue(self) -> float: ... + def GetImageViewportSize(self) -> Tuple[int, int]: ... + def GetIntermixIntersectingGeometry(self) -> int: ... + def GetIntermixIntersectingGeometryMaxValue(self) -> int: ... + def GetIntermixIntersectingGeometryMinValue(self) -> int: ... + def GetMaxPixelListSize(self) -> int: ... + def GetMaximumImageSampleDistance(self) -> float: ... + def GetMaximumImageSampleDistanceMaxValue(self) -> float: ... + def GetMaximumImageSampleDistanceMinValue(self) -> float: ... + def GetMinimumImageSampleDistance(self) -> float: ... + def GetMinimumImageSampleDistanceMaxValue(self) -> float: ... + def GetMinimumImageSampleDistanceMinValue(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRayIntegrator(self) -> 'vtkUnstructuredGridVolumeRayIntegrator': ... + def IntermixIntersectingGeometryOff(self) -> None: ... + def IntermixIntersectingGeometryOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkUnstructuredGridVolumeZSweepMapper': ... + def Render(self, ren:'vtkRenderer', vol:'vtkVolume') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkUnstructuredGridVolumeZSweepMapper': ... + def SetAutoAdjustSampleDistances(self, _arg:int) -> None: ... + def SetImageSampleDistance(self, _arg:float) -> None: ... + def SetIntermixIntersectingGeometry(self, _arg:int) -> None: ... + def SetMaxPixelListSize(self, size:int) -> None: ... + def SetMaximumImageSampleDistance(self, _arg:float) -> None: ... + def SetMinimumImageSampleDistance(self, _arg:float) -> None: ... + def SetRayIntegrator(self, ri:'vtkUnstructuredGridVolumeRayIntegrator') -> None: ... + +class vtkVolumeOutlineSource(vtkmodules.vtkCommonExecutionModel.vtkPolyDataAlgorithm): + active_plane_color:'getset_descriptor' + active_plane_id:'getset_descriptor' + color:'getset_descriptor' + generate_faces:'getset_descriptor' + generate_outline:'getset_descriptor' + generate_scalars:'getset_descriptor' + volume_mapper:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateFacesOff(self) -> None: ... + def GenerateFacesOn(self) -> None: ... + def GenerateOutlineOff(self) -> None: ... + def GenerateOutlineOn(self) -> None: ... + def GenerateScalarsOff(self) -> None: ... + def GenerateScalarsOn(self) -> None: ... + def GetActivePlaneColor(self) -> Tuple[float, float, float]: ... + def GetActivePlaneId(self) -> int: ... + def GetColor(self) -> Tuple[float, float, float]: ... + def GetGenerateFaces(self) -> int: ... + def GetGenerateOutline(self) -> int: ... + def GetGenerateScalars(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVolumeMapper(self) -> 'vtkVolumeMapper': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVolumeOutlineSource': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVolumeOutlineSource': ... + @overload + def SetActivePlaneColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetActivePlaneColor(self, _arg:Sequence[float]) -> None: ... + def SetActivePlaneId(self, _arg:int) -> None: ... + @overload + def SetColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetColor(self, _arg:Sequence[float]) -> None: ... + def SetGenerateFaces(self, _arg:int) -> None: ... + def SetGenerateOutline(self, _arg:int) -> None: ... + def SetGenerateScalars(self, _arg:int) -> None: ... + def SetVolumeMapper(self, mapper:'vtkVolumeMapper') -> None: ... + +class vtkVolumePicker(vtkmodules.vtkRenderingCore.vtkCellPicker): + cropping_plane_id:'getset_descriptor' + pick_cropping_planes:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCroppingPlaneId(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPickCroppingPlanes(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVolumePicker': ... + def PickCroppingPlanesOff(self) -> None: ... + def PickCroppingPlanesOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVolumePicker': ... + def SetPickCroppingPlanes(self, _arg:int) -> None: ... + +class vtkVolumeRayCastSpaceLeapingImageFilter(vtkmodules.vtkCommonExecutionModel.vtkThreadedImageAlgorithm): + cache:'getset_descriptor' + compute_gradient_opacity:'getset_descriptor' + compute_min_max:'getset_descriptor' + current_scalars:'getset_descriptor' + independent_components:'getset_descriptor' + last_min_max_build_time:'getset_descriptor' + last_min_max_flag_time:'getset_descriptor' + min_non_zero_gradient_magnitude_index:'getset_descriptor' + min_non_zero_scalar_index:'getset_descriptor' + number_of_independent_components:'getset_descriptor' + table_scale:'getset_descriptor' + table_shift:'getset_descriptor' + table_size:'getset_descriptor' + update_gradient_opacity_flags:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ComputeGradientOpacityOff(self) -> None: ... + def ComputeGradientOpacityOn(self) -> None: ... + @staticmethod + def ComputeInputExtentsForOutput(inExt:MutableSequence[int], inDim:MutableSequence[int], outExt:MutableSequence[int], inData:'vtkImageData') -> None: ... + def ComputeMinMaxOff(self) -> None: ... + def ComputeMinMaxOn(self) -> None: ... + def ComputeOffset(self, ext:Sequence[int], wholeExt:Sequence[int], nComponents:int) -> int: ... + def GetComputeGradientOpacity(self) -> int: ... + def GetComputeMinMax(self) -> int: ... + def GetCurrentScalars(self) -> 'vtkDataArray': ... + def GetIndependentComponents(self) -> int: ... + def GetLastMinMaxBuildTime(self) -> int: ... + def GetLastMinMaxFlagTime(self) -> int: ... + def GetMinMaxVolume(self, dims:MutableSequence[int]) -> Pointer: ... + def GetMinNonZeroGradientMagnitudeIndex(self) -> Pointer: ... + def GetMinNonZeroScalarIndex(self) -> Pointer: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfIndependentComponents(self) -> int: ... + def GetTableScale(self) -> Tuple[float, float, float, float]: ... + def GetTableShift(self) -> Tuple[float, float, float, float]: ... + def GetTableSize(self) -> Tuple[int, int, int, int]: ... + def GetUpdateGradientOpacityFlags(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVolumeRayCastSpaceLeapingImageFilter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVolumeRayCastSpaceLeapingImageFilter': ... + def SetCache(self, imageCache:'vtkImageData') -> None: ... + def SetComputeGradientOpacity(self, _arg:int) -> None: ... + def SetComputeMinMax(self, _arg:int) -> None: ... + def SetCurrentScalars(self, __a:'vtkDataArray') -> None: ... + def SetGradientOpacityTable(self, c:int, t:MutableSequence[int]) -> None: ... + def SetIndependentComponents(self, _arg:int) -> None: ... + def SetScalarOpacityTable(self, c:int, t:MutableSequence[int]) -> None: ... + @overload + def SetTableScale(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetTableScale(self, _arg:Sequence[float]) -> None: ... + @overload + def SetTableShift(self, _arg1:float, _arg2:float, _arg3:float, _arg4:float) -> None: ... + @overload + def SetTableShift(self, _arg:Sequence[float]) -> None: ... + @overload + def SetTableSize(self, _arg1:int, _arg2:int, _arg3:int, _arg4:int) -> None: ... + @overload + def SetTableSize(self, _arg:Sequence[int]) -> None: ... + def SetUpdateGradientOpacityFlags(self, _arg:int) -> None: ... + def UpdateGradientOpacityFlagsOff(self) -> None: ... + def UpdateGradientOpacityFlagsOn(self) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVolumeAMR.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVolumeAMR.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..92fbfcc Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVolumeAMR.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVolumeAMR.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVolumeAMR.pyi new file mode 100644 index 0000000..dd1479b --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVolumeAMR.pyi @@ -0,0 +1,118 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingVolume + +class vtkAMRVolumeMapper(vtkmodules.vtkRenderingVolume.vtkVolumeMapper): + DefaultRenderMode:int + GPURenderMode:int + InvalidRenderMode:int + RayCastAndTextureRenderMode:int + RayCastRenderMode:int + TextureRenderMode:int + UndefinedRenderMode:int + array_access_mode:'getset_descriptor' + array_id:'getset_descriptor' + array_name:'getset_descriptor' + blend_mode:'getset_descriptor' + bounds:'getset_descriptor' + cropping:'getset_descriptor' + cropping_region_flags:'getset_descriptor' + cropping_region_planes:'getset_descriptor' + freeze_focal_point:'getset_descriptor' + input_connection:'getset_descriptor' + input_data:'getset_descriptor' + interpolation_mode:'getset_descriptor' + number_of_samples:'getset_descriptor' + requested_render_mode:'getset_descriptor' + requested_resampling_mode:'getset_descriptor' + resampler_update_tolerance:'getset_descriptor' + scalar_mode:'getset_descriptor' + use_default_threading:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ComputeResamplerBoundsFrustumMethod(camera:'vtkCamera', renderer:'vtkRenderer', data_bounds:Sequence[float], out_bounds:MutableSequence[float]) -> bool: ... + def GetArrayAccessMode(self) -> int: ... + def GetArrayId(self) -> int: ... + def GetArrayName(self) -> str: ... + def GetBlendMode(self) -> int: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetCropping(self) -> int: ... + def GetCroppingRegionFlags(self) -> int: ... + @overload + def GetCroppingRegionPlanes(self, planes:MutableSequence[float]) -> None: ... + @overload + def GetCroppingRegionPlanes(self) -> Tuple[float, float, float, float, float, float]: ... + def GetFreezeFocalPoint(self) -> bool: ... + def GetInterpolationMode(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSamples(self) -> Tuple[int, int, int]: ... + def GetRequestedRenderMode(self) -> int: ... + def GetRequestedResamplingMode(self) -> int: ... + def GetResamplerUpdateTolerance(self) -> float: ... + def GetScalarModeAsString(self) -> str: ... + def GetUseDefaultThreading(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkAMRVolumeMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer', vol:'vtkVolume') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkAMRVolumeMapper': ... + @overload + def SelectScalarArray(self, arrayNum:int) -> None: ... + @overload + def SelectScalarArray(self, arrayName:str) -> None: ... + def SetBlendMode(self, mode:int) -> None: ... + def SetCropping(self, __a:int) -> None: ... + def SetCroppingRegionFlags(self, mode:int) -> None: ... + @overload + def SetCroppingRegionPlanes(self, arg1:float, arg2:float, arg3:float, arg4:float, arg5:float, arg6:float) -> None: ... + @overload + def SetCroppingRegionPlanes(self, planes:Sequence[float]) -> None: ... + def SetFreezeFocalPoint(self, _arg:bool) -> None: ... + @overload + def SetInputConnection(self, port:int, input:'vtkAlgorithmOutput') -> None: ... + @overload + def SetInputConnection(self, input:'vtkAlgorithmOutput') -> None: ... + @overload + def SetInputData(self, __a:'vtkImageData') -> None: ... + @overload + def SetInputData(self, __a:'vtkDataSet') -> None: ... + @overload + def SetInputData(self, __a:'vtkRectilinearGrid') -> None: ... + @overload + def SetInputData(self, __a:'vtkOverlappingAMR') -> None: ... + def SetInterpolationMode(self, mode:int) -> None: ... + def SetInterpolationModeToCubic(self) -> None: ... + def SetInterpolationModeToLinear(self) -> None: ... + def SetInterpolationModeToNearestNeighbor(self) -> None: ... + @overload + def SetNumberOfSamples(self, _arg1:int, _arg2:int, _arg3:int) -> None: ... + @overload + def SetNumberOfSamples(self, _arg:Sequence[int]) -> None: ... + def SetRequestedRenderMode(self, mode:int) -> None: ... + def SetRequestedRenderModeToDefault(self) -> None: ... + def SetRequestedRenderModeToGPU(self) -> None: ... + def SetRequestedRenderModeToRayCast(self) -> None: ... + def SetRequestedRenderModeToRayCastAndTexture(self) -> None: ... + def SetRequestedRenderModeToTexture(self) -> None: ... + def SetRequestedResamplingMode(self, _arg:int) -> None: ... + def SetResamplerUpdateTolerance(self, _arg:float) -> None: ... + def SetScalarMode(self, mode:int) -> None: ... + def SetUseDefaultThreading(self, _arg:bool) -> None: ... + def UpdateResampler(self, ren:'vtkRenderer', amr:'vtkOverlappingAMR') -> None: ... + def UpdateResamplerFrustrumMethod(self, ren:'vtkRenderer', amr:'vtkOverlappingAMR') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVolumeOpenGL2.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVolumeOpenGL2.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..23709d9 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVolumeOpenGL2.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVolumeOpenGL2.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVolumeOpenGL2.pyi new file mode 100644 index 0000000..2c0a2ad --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVolumeOpenGL2.pyi @@ -0,0 +1,350 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingOpenGL2 +import vtkmodules.vtkRenderingVolume + +class vtkMultiBlockUnstructuredGridVolumeMapper(vtkmodules.vtkRenderingVolume.vtkUnstructuredGridVolumeMapper): + array_access_mode:'getset_descriptor' + blend_mode:'getset_descriptor' + bounds:'getset_descriptor' + scalar_mode:'getset_descriptor' + use_floating_point_frame_buffer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseFloatingPointFrameBuffer(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMultiBlockUnstructuredGridVolumeMapper': ... + def ReleaseGraphicsResources(self, window:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer', vol:'vtkVolume') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMultiBlockUnstructuredGridVolumeMapper': ... + @overload + def SelectScalarArray(self, arrayNum:int) -> None: ... + @overload + def SelectScalarArray(self, arrayName:str) -> None: ... + def SetArrayAccessMode(self, accessMode:int) -> None: ... + def SetBlendMode(self, mode:int) -> None: ... + def SetScalarMode(self, ScalarMode:int) -> None: ... + def SetUseFloatingPointFrameBuffer(self, use:bool) -> None: ... + +class vtkMultiBlockVolumeMapper(vtkmodules.vtkRenderingVolume.vtkVolumeMapper): + array_access_mode:'getset_descriptor' + blend_mode:'getset_descriptor' + bounds:'getset_descriptor' + compute_normal_from_opacity:'getset_descriptor' + cropping:'getset_descriptor' + cropping_region_flags:'getset_descriptor' + cropping_region_planes:'getset_descriptor' + global_illumination_reach:'getset_descriptor' + requested_render_mode:'getset_descriptor' + scalar_mode:'getset_descriptor' + transfer2dy_axis_array:'getset_descriptor' + vector_component:'getset_descriptor' + vector_mode:'getset_descriptor' + volumetric_scattering_blending:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetBounds(self) -> Tuple[float, float, float, float, float, float]: ... + @overload + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetGlobalIlluminationReach(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVectorComponent(self) -> int: ... + def GetVectorMode(self) -> int: ... + def GetVolumetricScatteringBlending(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkMultiBlockVolumeMapper': ... + def ReleaseGraphicsResources(self, window:'vtkWindow') -> None: ... + def Render(self, ren:'vtkRenderer', vol:'vtkVolume') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkMultiBlockVolumeMapper': ... + @overload + def SelectScalarArray(self, arrayNum:int) -> None: ... + @overload + def SelectScalarArray(self, arrayName:str) -> None: ... + def SetArrayAccessMode(self, accessMode:int) -> None: ... + def SetBlendMode(self, mode:int) -> None: ... + def SetComputeNormalFromOpacity(self, val:bool) -> None: ... + def SetCropping(self, mode:int) -> None: ... + def SetCroppingRegionFlags(self, mode:int) -> None: ... + @overload + def SetCroppingRegionPlanes(self, arg1:float, arg2:float, arg3:float, arg4:float, arg5:float, arg6:float) -> None: ... + @overload + def SetCroppingRegionPlanes(self, planes:Sequence[float]) -> None: ... + def SetGlobalIlluminationReach(self, val:float) -> None: ... + def SetRequestedRenderMode(self, __a:int) -> None: ... + def SetScalarMode(self, ScalarMode:int) -> None: ... + def SetTransfer2DYAxisArray(self, a:str) -> None: ... + def SetVectorComponent(self, component:int) -> None: ... + def SetVectorMode(self, mode:int) -> None: ... + def SetVolumetricScatteringBlending(self, val:float) -> None: ... + +class vtkOpenGLGPUVolumeRayCastMapper(vtkmodules.vtkRenderingVolume.vtkGPUVolumeRayCastMapper): + class Passes(int): ... + DepthPass:'Passes' + RenderPass:'Passes' + color_texture:'getset_descriptor' + current_pass:'getset_descriptor' + depth_texture:'getset_descriptor' + partitions:'getset_descriptor' + shared_depth_texture:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetColorImage(self, im:'vtkImageData') -> None: ... + def GetColorTexture(self) -> 'vtkTextureObject': ... + def GetCurrentPass(self) -> int: ... + def GetDepthImage(self, im:'vtkImageData') -> None: ... + def GetDepthTexture(self) -> 'vtkTextureObject': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLGPUVolumeRayCastMapper': ... + def PreLoadData(self, ren:'vtkRenderer', vol:'vtkVolume') -> bool: ... + def ReleaseGraphicsResources(self, window:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLGPUVolumeRayCastMapper': ... + def SetPartitions(self, x:int, y:int, z:int) -> None: ... + def SetSharedDepthTexture(self, nt:'vtkTextureObject') -> None: ... + +class vtkOpenGLProjectedTetrahedraMapper(vtkmodules.vtkRenderingVolume.vtkProjectedTetrahedraMapper): + use_floating_point_frame_buffer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseFloatingPointFrameBuffer(self) -> bool: ... + def IsA(self, type:str) -> int: ... + def IsSupported(self, context:'vtkRenderWindow') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLProjectedTetrahedraMapper': ... + def ReleaseGraphicsResources(self, window:'vtkWindow') -> None: ... + def Render(self, renderer:'vtkRenderer', volume:'vtkVolume') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLProjectedTetrahedraMapper': ... + def SetUseFloatingPointFrameBuffer(self, _arg:bool) -> None: ... + def UseFloatingPointFrameBufferOff(self) -> None: ... + def UseFloatingPointFrameBufferOn(self) -> None: ... + +class vtkOpenGLRayCastImageDisplayHelper(vtkmodules.vtkRenderingVolume.vtkRayCastImageDisplayHelper): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLRayCastImageDisplayHelper': ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + @overload + def RenderTexture(self, vol:'vtkVolume', ren:'vtkRenderer', imageMemorySize:MutableSequence[int], imageViewportSize:MutableSequence[int], imageInUseSize:MutableSequence[int], imageOrigin:MutableSequence[int], requestedDepth:float, image:MutableSequence[int]) -> None: ... + @overload + def RenderTexture(self, vol:'vtkVolume', ren:'vtkRenderer', image:'vtkFixedPointRayCastImage', requestedDepth:float) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLRayCastImageDisplayHelper': ... + +class vtkOpenGLSurfaceProbeVolumeMapper(vtkmodules.vtkRenderingOpenGL2.vtkOpenGLPolyDataMapper): + class BlendModes(int): + AVERAGE:'BlendModes' + MAX:'BlendModes' + MIN:'BlendModes' + NONE:'BlendModes' + blend_mode:'getset_descriptor' + blend_width:'getset_descriptor' + level:'getset_descriptor' + probe_input:'getset_descriptor' + probe_input_connection:'getset_descriptor' + probe_input_data:'getset_descriptor' + source:'getset_descriptor' + source_connection:'getset_descriptor' + source_data:'getset_descriptor' + window:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBlendMode(self) -> 'BlendModes': ... + def GetBlendWidth(self) -> float: ... + def GetLevel(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetProbeInput(self) -> 'vtkPolyData': ... + def GetSource(self) -> 'vtkImageData': ... + def GetWindow(self) -> float: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkOpenGLSurfaceProbeVolumeMapper': ... + def RenderPiece(self, ren:'vtkRenderer', act:'vtkActor') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkOpenGLSurfaceProbeVolumeMapper': ... + def SetBlendMode(self, _arg:'BlendModes') -> None: ... + def SetBlendModeToAverageIntensity(self) -> None: ... + def SetBlendModeToMaximumIntensity(self) -> None: ... + def SetBlendModeToMinimumIntensity(self) -> None: ... + def SetBlendModeToNone(self) -> None: ... + def SetBlendWidth(self, _arg:float) -> None: ... + def SetLevel(self, _arg:float) -> None: ... + def SetProbeInputConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetProbeInputData(self, in_:'vtkPolyData') -> None: ... + def SetSourceConnection(self, algOutput:'vtkAlgorithmOutput') -> None: ... + def SetSourceData(self, in_:'vtkImageData') -> None: ... + def SetWindow(self, _arg:float) -> None: ... + def UpdateShaders(self, cellBO:'vtkOpenGLHelper', ren:'vtkRenderer', act:'vtkActor') -> None: ... + +class vtkSmartVolumeMapper(vtkmodules.vtkRenderingVolume.vtkVolumeMapper): + class VectorModeType(int): ... + class LowResModeType(int): ... + AnariRenderMode:int + COMPONENT:'VectorModeType' + DISABLED:'VectorModeType' + DefaultRenderMode:int + GPURenderMode:int + InvalidRenderMode:int + LowResModeDisabled:'LowResModeType' + LowResModeResample:'LowResModeType' + MAGNITUDE:'VectorModeType' + OSPRayRenderMode:int + RayCastRenderMode:int + UndefinedRenderMode:int + auto_adjust_sample_distances:'getset_descriptor' + final_color_level:'getset_descriptor' + final_color_window:'getset_descriptor' + global_illumination_reach:'getset_descriptor' + interactive_adjust_sample_distances:'getset_descriptor' + interactive_update_rate:'getset_descriptor' + interpolation_mode:'getset_descriptor' + last_used_render_mode:'getset_descriptor' + low_res_mode:'getset_descriptor' + max_memory_fraction:'getset_descriptor' + max_memory_in_bytes:'getset_descriptor' + requested_render_mode:'getset_descriptor' + sample_distance:'getset_descriptor' + transfer2dy_axis_array:'getset_descriptor' + use_jittering:'getset_descriptor' + vector_component:'getset_descriptor' + vector_mode:'getset_descriptor' + volumetric_scattering_blending:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AutoAdjustSampleDistancesOff(self) -> None: ... + def AutoAdjustSampleDistancesOn(self) -> None: ... + def CreateCanonicalView(self, ren:'vtkRenderer', volume:'vtkVolume', volume2:'vtkVolume', image:'vtkImageData', blend_mode:int, viewDirection:MutableSequence[float], viewUp:MutableSequence[float]) -> None: ... + def GetAutoAdjustSampleDistances(self) -> int: ... + def GetAutoAdjustSampleDistancesMaxValue(self) -> int: ... + def GetAutoAdjustSampleDistancesMinValue(self) -> int: ... + def GetFinalColorLevel(self) -> float: ... + def GetFinalColorWindow(self) -> float: ... + def GetGlobalIlluminationReach(self) -> float: ... + def GetGlobalIlluminationReachMaxValue(self) -> float: ... + def GetGlobalIlluminationReachMinValue(self) -> float: ... + def GetInteractiveAdjustSampleDistances(self) -> int: ... + def GetInteractiveAdjustSampleDistancesMaxValue(self) -> int: ... + def GetInteractiveAdjustSampleDistancesMinValue(self) -> int: ... + def GetInteractiveUpdateRate(self) -> float: ... + def GetInteractiveUpdateRateMaxValue(self) -> float: ... + def GetInteractiveUpdateRateMinValue(self) -> float: ... + def GetInterpolationMode(self) -> int: ... + def GetInterpolationModeMaxValue(self) -> int: ... + def GetInterpolationModeMinValue(self) -> int: ... + def GetLastUsedRenderMode(self) -> int: ... + def GetLowResMode(self) -> int: ... + def GetMaxMemoryFraction(self) -> float: ... + def GetMaxMemoryFractionMaxValue(self) -> float: ... + def GetMaxMemoryFractionMinValue(self) -> float: ... + def GetMaxMemoryInBytes(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRequestedRenderMode(self) -> int: ... + def GetSampleDistance(self) -> float: ... + def GetTransfer2DYAxisArray(self) -> str: ... + def GetUseJittering(self) -> int: ... + def GetUseJitteringMaxValue(self) -> int: ... + def GetUseJitteringMinValue(self) -> int: ... + def GetVectorComponent(self) -> int: ... + def GetVectorComponentMaxValue(self) -> int: ... + def GetVectorComponentMinValue(self) -> int: ... + def GetVectorMode(self) -> int: ... + def GetVolumetricScatteringBlending(self) -> float: ... + def GetVolumetricScatteringBlendingMaxValue(self) -> float: ... + def GetVolumetricScatteringBlendingMinValue(self) -> float: ... + def InteractiveAdjustSampleDistancesOff(self) -> None: ... + def InteractiveAdjustSampleDistancesOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSmartVolumeMapper': ... + def ReleaseGraphicsResources(self, __a:'vtkWindow') -> None: ... + def Render(self, __a:'vtkRenderer', __b:'vtkVolume') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSmartVolumeMapper': ... + def SetAutoAdjustSampleDistances(self, _arg:int) -> None: ... + def SetFinalColorLevel(self, _arg:float) -> None: ... + def SetFinalColorWindow(self, _arg:float) -> None: ... + def SetGlobalIlluminationReach(self, _arg:float) -> None: ... + def SetInteractiveAdjustSampleDistances(self, _arg:int) -> None: ... + def SetInteractiveUpdateRate(self, _arg:float) -> None: ... + def SetInterpolationMode(self, _arg:int) -> None: ... + def SetInterpolationModeToCubic(self) -> None: ... + def SetInterpolationModeToLinear(self) -> None: ... + def SetInterpolationModeToNearestNeighbor(self) -> None: ... + def SetLowResMode(self, _arg:int) -> None: ... + def SetMaxMemoryFraction(self, _arg:float) -> None: ... + def SetMaxMemoryInBytes(self, _arg:int) -> None: ... + def SetRequestedRenderMode(self, mode:int) -> None: ... + def SetRequestedRenderModeToAnari(self) -> None: ... + def SetRequestedRenderModeToDefault(self) -> None: ... + def SetRequestedRenderModeToGPU(self) -> None: ... + def SetRequestedRenderModeToOSPRay(self) -> None: ... + def SetRequestedRenderModeToRayCast(self) -> None: ... + def SetSampleDistance(self, _arg:float) -> None: ... + def SetTransfer2DYAxisArray(self, _arg:str) -> None: ... + def SetUseJittering(self, _arg:int) -> None: ... + def SetVectorComponent(self, _arg:int) -> None: ... + def SetVectorMode(self, mode:int) -> None: ... + def SetVolumetricScatteringBlending(self, _arg:float) -> None: ... + def UseJitteringOff(self) -> None: ... + def UseJitteringOn(self) -> None: ... + +class vtkVolumeTexture(vtkmodules.vtkCommonCore.vtkObject): + loaded_scalars:'getset_descriptor' + partitions:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLoadedScalars(self) -> 'vtkDataArray': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPartitions(self) -> 'vtkTuple_IiLi3EE': ... + @staticmethod + def GetScaleAndBias(scalarType:int, scalarRange:MutableSequence[float], scale:float, bias:float) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LoadVolume(self, ren:'vtkRenderer', data:'vtkDataSet', scalars:'vtkDataArray', isCell:int, interpolation:int) -> bool: ... + def NewInstance(self) -> 'vtkVolumeTexture': ... + def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVolumeTexture': ... + def SetPartitions(self, x:int, y:int, z:int) -> None: ... + def SortBlocksBackToFront(self, ren:'vtkRenderer', volumeMat:'vtkMatrix4x4') -> None: ... + def UpdateVolume(self, property:'vtkVolumeProperty') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVtkJS.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVtkJS.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..4bcaefd Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVtkJS.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVtkJS.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVtkJS.pyi new file mode 100644 index 0000000..739dbc8 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkRenderingVtkJS.pyi @@ -0,0 +1,58 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingSceneGraph + +class vtkVtkJSSceneGraphSerializer(vtkmodules.vtkCommonCore.vtkObject): + number_of_data_arrays:'getset_descriptor' + number_of_data_objects:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def Add(self, __a:'vtkViewNode', __b:'vtkActor') -> None: ... + @overload + def Add(self, __a:'vtkViewNode', __b:'vtkCompositePolyDataMapper') -> None: ... + @overload + def Add(self, __a:'vtkViewNode', __b:'vtkGlyph3DMapper') -> None: ... + @overload + def Add(self, __a:'vtkViewNode', __b:'vtkMapper') -> None: ... + @overload + def Add(self, __a:'vtkViewNode', __b:'vtkRenderer') -> None: ... + @overload + def Add(self, __a:'vtkViewNode', __b:'vtkRenderWindow') -> None: ... + def GetDataArray(self, __a:int) -> 'vtkDataArray': ... + def GetDataArrayId(self, __a:int) -> str: ... + def GetDataObject(self, __a:int) -> 'vtkDataObject': ... + def GetNumberOfDataArrays(self) -> int: ... + def GetNumberOfDataObjects(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVtkJSSceneGraphSerializer': ... + def Reset(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVtkJSSceneGraphSerializer': ... + +class vtkVtkJSViewNodeFactory(vtkmodules.vtkRenderingSceneGraph.vtkViewNodeFactory): + serializer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSerializer(self) -> 'vtkVtkJSSceneGraphSerializer': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkVtkJSViewNodeFactory': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkVtkJSViewNodeFactory': ... + def SetSerializer(self, __a:'vtkVtkJSSceneGraphSerializer') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkSerializationManager.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkSerializationManager.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..bf38e8b Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkSerializationManager.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkSerializationManager.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkSerializationManager.pyi new file mode 100644 index 0000000..716d2fe --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkSerializationManager.pyi @@ -0,0 +1,65 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore + +class vtkObjectManager(vtkmodules.vtkCommonCore.vtkObject): + deserializer:'getset_descriptor' + invoker:'getset_descriptor' + object_manager_log_verbosity:'getset_descriptor' + serializer:'getset_descriptor' + total_blob_memory_usage:'getset_descriptor' + total_vtk_data_object_memory_usage:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Clear(self) -> None: ... + def Export(self, filename:str, indentLevel:int=-1, indentChar:str=...) -> None: ... + def GetAllDependencies(self, identifier:int) -> Tuple[int, int]: ... + def GetBlob(self, hash:str) -> 'vtkTypeUInt8Array': ... + def GetBlobHashes(self, ids:Sequence[int]) -> Tuple[str, str]: ... + def GetDeserializer(self) -> 'vtkDeserializer': ... + def GetId(self, objectBase:'vtkObjectBase') -> int: ... + def GetInvoker(self) -> 'vtkInvoker': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetObjectAtId(self, id:int) -> 'vtkObjectBase': ... + def GetObjectManagerLogVerbosity(self) -> vtkLogger.Verbosity: ... + def GetSerializer(self) -> 'vtkSerializer': ... + def GetState(self, id:int) -> str: ... + def GetTotalBlobMemoryUsage(self) -> int: ... + def GetTotalVTKDataObjectMemoryUsage(self) -> int: ... + def Import(self, stateFileName:str, blobFileName:str) -> None: ... + def Initialize(self) -> bool: ... + def InitializeDefaultHandlers(self) -> bool: ... + def Invoke(self, identifier:int, methodName:str, args:str) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkObjectManager': ... + def PruneUnusedBlobs(self) -> None: ... + def PruneUnusedObjects(self) -> None: ... + def PruneUnusedStates(self) -> None: ... + @staticmethod + def ROOT() -> int: ... + def RegisterBlob(self, hash:str, blob:'vtkTypeUInt8Array') -> bool: ... + def RegisterObject(self, objectBase:'vtkObjectBase') -> int: ... + def RegisterState(self, state:str) -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkObjectManager': ... + def SetObjectManagerLogVerbosity(self, verbosity:vtkLogger.Verbosity) -> None: ... + def UnRegisterBlob(self, hash:str) -> bool: ... + def UnRegisterObject(self, identifier:int) -> bool: ... + def UnRegisterState(self, identifier:int) -> bool: ... + def UpdateObjectFromState(self, state:str) -> None: ... + def UpdateObjectsFromStates(self) -> None: ... + def UpdateStateFromObject(self, identifier:int) -> None: ... + @overload + def UpdateStatesFromObjects(self) -> None: ... + @overload + def UpdateStatesFromObjects(self, identifiers:Sequence[int]) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkTestingRendering.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkTestingRendering.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..67320bf Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkTestingRendering.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkTestingRendering.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkTestingRendering.pyi new file mode 100644 index 0000000..261c9cf --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkTestingRendering.pyi @@ -0,0 +1,114 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingCore + +VTK_SKIP_RETURN_CODE:int + +class vtkTesting(vtkmodules.vtkCommonCore.vtkObject): + class ReturnValue(int): ... + DO_INTERACTOR:'ReturnValue' + FAILED:'ReturnValue' + NOT_RUN:'ReturnValue' + PASSED:'ReturnValue' + border_offset:'getset_descriptor' + controller:'getset_descriptor' + data_root:'getset_descriptor' + front_buffer:'getset_descriptor' + image_difference:'getset_descriptor' + render_window:'getset_descriptor' + temp_directory:'getset_descriptor' + valid_image_file_name:'getset_descriptor' + verbose:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddArgument(self, argv:str) -> None: ... + def CleanArguments(self) -> None: ... + @overload + def CompareAverageOfL2Norm(self, dsA:'vtkDataSet', dsB:'vtkDataSet', tol:float) -> int: ... + @overload + def CompareAverageOfL2Norm(self, daA:'vtkDataArray', daB:'vtkDataArray', tol:float) -> int: ... + def FrontBufferOff(self) -> None: ... + def FrontBufferOn(self) -> None: ... + def GetArgument(self, arg:str) -> str: ... + def GetBorderOffset(self) -> int: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetDataRoot(self) -> str: ... + def GetFrontBuffer(self) -> int: ... + def GetImageDifference(self) -> float: ... + @staticmethod + def GetMesaVersion(renderWindow:'vtkRenderWindow', version:MutableSequence[int]) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderWindow(self) -> 'vtkRenderWindow': ... + def GetTempDirectory(self) -> str: ... + def GetValidImageFileName(self) -> str: ... + def GetVerbose(self) -> int: ... + def IsA(self, type:str) -> int: ... + def IsFlagSpecified(self, flag:str) -> int: ... + def IsInteractiveModeSpecified(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def IsValidImageSpecified(self) -> int: ... + def NewInstance(self) -> 'vtkTesting': ... + @overload + def RegressionTest(self, thresh:float) -> int: ... + @overload + def RegressionTest(self, thresh:float, output:str) -> int: ... + @overload + def RegressionTest(self, pngFileName:str, thresh:float) -> int: ... + @overload + def RegressionTest(self, pngFileName:str, thresh:float, output:str) -> int: ... + @overload + def RegressionTest(self, imageSource:'vtkAlgorithm', thresh:float) -> int: ... + @overload + def RegressionTest(self, imageSource:'vtkAlgorithm', thresh:float, output:str) -> int: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTesting': ... + def SetBorderOffset(self, _arg:int) -> None: ... + def SetController(self, controller:'vtkMultiProcessController') -> None: ... + def SetDataRoot(self, _arg:str) -> None: ... + def SetFrontBuffer(self, frontBuffer:int) -> None: ... + def SetRenderWindow(self, rw:'vtkRenderWindow') -> None: ... + def SetTempDirectory(self, _arg:str) -> None: ... + def SetValidImageFileName(self, _arg:str) -> None: ... + def SetVerbose(self, _arg:int) -> None: ... + +class vtkTestingInteractor(vtkmodules.vtkRenderingCore.vtkRenderWindowInteractor): + controller:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetController(self) -> 'vtkMultiProcessController': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTestingInteractor': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTestingInteractor': ... + def SetController(self, controller:'vtkMultiProcessController') -> None: ... + def Start(self) -> None: ... + +class vtkTestingObjectFactory(vtkmodules.vtkCommonCore.vtkObjectFactory): + description:'getset_descriptor' + vtk_source_version:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetDescription(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetVTKSourceVersion(self) -> str: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTestingObjectFactory': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTestingObjectFactory': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkTestingSerialization.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkTestingSerialization.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..6c827eb Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkTestingSerialization.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkTestingSerialization.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkTestingSerialization.pyi new file mode 100644 index 0000000..e4e0389 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkTestingSerialization.pyi @@ -0,0 +1,74 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore + +class vtkSerDesMock(vtkmodules.vtkCommonCore.vtkObject): + class CStyleEnum(int): ... + class MemberScopedEnum(int): + Value1:'MemberScopedEnum' + Value2:'MemberScopedEnum' + Value1:'CStyleEnum' + Value2:'CStyleEnum' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSerDesMock': ... + def ReturnBoundingBox(self) -> 'vtkBoundingBox': ... + def ReturnCStyleEnum(self) -> 'CStyleEnum': ... + def ReturnCharPointer(self) -> str: ... + def ReturnColor3d(self) -> 'vtkColor3d': ... + def ReturnColor3f(self) -> 'vtkColor3f': ... + def ReturnColor3ub(self) -> 'vtkColor3ub': ... + def ReturnColor4d(self) -> 'vtkColor4d': ... + def ReturnColor4f(self) -> 'vtkColor4f': ... + def ReturnColor4ub(self) -> 'vtkColor4ub': ... + def ReturnMemberScopedEnum(self) -> 'MemberScopedEnum': ... + def ReturnNumericArray(self) -> Tuple[float, float, float, float]: ... + def ReturnNumericScalar(self) -> float: ... + def ReturnRectd(self) -> 'vtkRectd': ... + def ReturnRectf(self) -> 'vtkRectf': ... + def ReturnRecti(self) -> 'vtkRecti': ... + def ReturnStdString(self) -> str: ... + def ReturnStdVectorOfInt(self) -> Tuple[int, int]: ... + def ReturnStdVectorOfReal(self) -> Tuple[float, float]: ... + def ReturnStdVectorOfStdString(self) -> Tuple[str, str]: ... + def ReturnTupleInt3(self) -> 'vtkTuple_IiLi3EE': ... + def ReturnVTKObjectRawPointer(self) -> 'vtkSerDesMockObject': ... + def ReturnVTKSmartPointer(self) -> 'vtkSerDesMockObject': ... + def ReturnVector2d(self) -> 'vtkVector2d': ... + def ReturnVector2f(self) -> 'vtkVector2f': ... + def ReturnVector2i(self) -> 'vtkVector2i': ... + def ReturnVector3d(self) -> 'vtkVector3d': ... + def ReturnVector3f(self) -> 'vtkVector3f': ... + def ReturnVector3i(self) -> 'vtkVector3i': ... + def ReturnVector4d(self) -> 'vtkVector4d': ... + def ReturnVector4i(self) -> 'vtkVector4i': ... + def ReturnVectorInt3(self) -> 'vtkVector_IiLi3EE': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSerDesMock': ... + +class vtkSerDesMockObject(vtkmodules.vtkCommonCore.vtkObject): + tag:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetTag(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSerDesMockObject': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSerDesMockObject': ... + def SetTag(self, _arg:int) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkViewsContext2D.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkViewsContext2D.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..4afab88 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkViewsContext2D.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkViewsContext2D.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkViewsContext2D.pyi new file mode 100644 index 0000000..deb4dae --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkViewsContext2D.pyi @@ -0,0 +1,62 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkRenderingCore +import vtkmodules.vtkViewsCore + +class vtkContextInteractorStyle(vtkmodules.vtkRenderingCore.vtkInteractorStyle): + scene:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScene(self) -> 'vtkContextScene': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContextInteractorStyle': ... + def OnChar(self) -> None: ... + def OnKeyPress(self) -> None: ... + def OnKeyRelease(self) -> None: ... + def OnLeftButtonDoubleClick(self) -> None: ... + def OnLeftButtonDown(self) -> None: ... + def OnLeftButtonUp(self) -> None: ... + def OnMiddleButtonDoubleClick(self) -> None: ... + def OnMiddleButtonDown(self) -> None: ... + def OnMiddleButtonUp(self) -> None: ... + def OnMouseMove(self) -> None: ... + def OnMouseWheelBackward(self) -> None: ... + def OnMouseWheelForward(self) -> None: ... + def OnRightButtonDoubleClick(self) -> None: ... + def OnRightButtonDown(self) -> None: ... + def OnRightButtonUp(self) -> None: ... + def OnSceneModified(self) -> None: ... + def OnSelection(self, rect:MutableSequence[int]) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContextInteractorStyle': ... + def SetScene(self, scene:'vtkContextScene') -> None: ... + +class vtkContextView(vtkmodules.vtkViewsCore.vtkRenderViewBase): + context:'getset_descriptor' + scene:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetContext(self) -> 'vtkContext2D': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScene(self) -> 'vtkContextScene': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkContextView': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkContextView': ... + def SetContext(self, context:'vtkContext2D') -> None: ... + def SetScene(self, scene:'vtkContextScene') -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkViewsCore.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkViewsCore.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..f0b507e Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkViewsCore.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkViewsCore.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkViewsCore.pyi new file mode 100644 index 0000000..2b27442 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkViewsCore.pyi @@ -0,0 +1,380 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonExecutionModel + +class vtkConvertSelectionDomain(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + def __init__(self, **properties:Any) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkConvertSelectionDomain': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkConvertSelectionDomain': ... + +class vtkDataRepresentation(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + annotation_link:'getset_descriptor' + internal_annotation_output_port:'getset_descriptor' + internal_output_port:'getset_descriptor' + internal_selection_output_port:'getset_descriptor' + selectable:'getset_descriptor' + selection_array_name:'getset_descriptor' + selection_array_names:'getset_descriptor' + selection_type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def Annotate(self, view:'vtkView', annotations:'vtkAnnotationLayers') -> None: ... + @overload + def Annotate(self, view:'vtkView', annotations:'vtkAnnotationLayers', extend:bool) -> None: ... + def ApplyViewTheme(self, theme:'vtkViewTheme') -> None: ... + def ConvertSelection(self, view:'vtkView', selection:'vtkSelection') -> 'vtkSelection': ... + def GetAnnotationLink(self) -> 'vtkAnnotationLink': ... + def GetInputConnection(self, port:int=0, index:int=0) -> 'vtkAlgorithmOutput': ... + @overload + def GetInternalAnnotationOutputPort(self) -> 'vtkAlgorithmOutput': ... + @overload + def GetInternalAnnotationOutputPort(self, port:int) -> 'vtkAlgorithmOutput': ... + @overload + def GetInternalAnnotationOutputPort(self, port:int, conn:int) -> 'vtkAlgorithmOutput': ... + @overload + def GetInternalOutputPort(self) -> 'vtkAlgorithmOutput': ... + @overload + def GetInternalOutputPort(self, port:int) -> 'vtkAlgorithmOutput': ... + @overload + def GetInternalOutputPort(self, port:int, conn:int) -> 'vtkAlgorithmOutput': ... + @overload + def GetInternalSelectionOutputPort(self) -> 'vtkAlgorithmOutput': ... + @overload + def GetInternalSelectionOutputPort(self, port:int) -> 'vtkAlgorithmOutput': ... + @overload + def GetInternalSelectionOutputPort(self, port:int, conn:int) -> 'vtkAlgorithmOutput': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSelectable(self) -> bool: ... + def GetSelectionArrayName(self) -> str: ... + def GetSelectionArrayNames(self) -> 'vtkStringArray': ... + def GetSelectionType(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkDataRepresentation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDataRepresentation': ... + @overload + def Select(self, view:'vtkView', selection:'vtkSelection') -> None: ... + @overload + def Select(self, view:'vtkView', selection:'vtkSelection', extend:bool) -> None: ... + def SelectableOff(self) -> None: ... + def SelectableOn(self) -> None: ... + def SetAnnotationLink(self, link:'vtkAnnotationLink') -> None: ... + def SetSelectable(self, _arg:bool) -> None: ... + def SetSelectionArrayName(self, name:str) -> None: ... + def SetSelectionArrayNames(self, names:'vtkStringArray') -> None: ... + def SetSelectionType(self, _arg:int) -> None: ... + @overload + def UpdateAnnotations(self, annotations:'vtkAnnotationLayers') -> None: ... + @overload + def UpdateAnnotations(self, annotations:'vtkAnnotationLayers', extend:bool) -> None: ... + @overload + def UpdateSelection(self, selection:'vtkSelection') -> None: ... + @overload + def UpdateSelection(self, selection:'vtkSelection', extend:bool) -> None: ... + +class vtkEmptyRepresentation(vtkDataRepresentation): + internal_annotation_output_port:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @overload + def GetInternalAnnotationOutputPort(self) -> 'vtkAlgorithmOutput': ... + @overload + def GetInternalAnnotationOutputPort(self, port:int) -> 'vtkAlgorithmOutput': ... + @overload + def GetInternalAnnotationOutputPort(self, port:int, conn:int) -> 'vtkAlgorithmOutput': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkEmptyRepresentation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkEmptyRepresentation': ... + +class vtkView(vtkmodules.vtkCommonCore.vtkObject): + observer:'getset_descriptor' + representation:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddRepresentation(self, rep:'vtkDataRepresentation') -> None: ... + def AddRepresentationFromInput(self, input:'vtkDataObject') -> 'vtkDataRepresentation': ... + def AddRepresentationFromInputConnection(self, conn:'vtkAlgorithmOutput') -> 'vtkDataRepresentation': ... + def ApplyViewTheme(self, theme:'vtkViewTheme') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfRepresentations(self) -> int: ... + def GetObserver(self) -> 'vtkCommand': ... + def GetRepresentation(self, index:int=0) -> 'vtkDataRepresentation': ... + def IsA(self, type:str) -> int: ... + def IsRepresentationPresent(self, rep:'vtkDataRepresentation') -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkView': ... + def RegisterProgress(self, algorithm:'vtkObject', message:str=...) -> None: ... + def RemoveAllRepresentations(self) -> None: ... + @overload + def RemoveRepresentation(self, rep:'vtkDataRepresentation') -> None: ... + @overload + def RemoveRepresentation(self, rep:'vtkAlgorithmOutput') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkView': ... + def SetRepresentation(self, rep:'vtkDataRepresentation') -> None: ... + def SetRepresentationFromInput(self, input:'vtkDataObject') -> 'vtkDataRepresentation': ... + def SetRepresentationFromInputConnection(self, conn:'vtkAlgorithmOutput') -> 'vtkDataRepresentation': ... + def UnRegisterProgress(self, algorithm:'vtkObject') -> None: ... + def Update(self) -> None: ... + +class vtkRenderViewBase(vtkView): + interactor:'getset_descriptor' + render_window:'getset_descriptor' + renderer:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInteractor(self) -> 'vtkRenderWindowInteractor': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderWindow(self) -> 'vtkRenderWindow': ... + def GetRenderer(self) -> 'vtkRenderer': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRenderViewBase': ... + def Render(self) -> None: ... + def ResetCamera(self) -> None: ... + def ResetCameraClippingRange(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderViewBase': ... + def SetInteractor(self, __a:'vtkRenderWindowInteractor') -> None: ... + def SetRenderWindow(self, win:'vtkRenderWindow') -> None: ... + def SetRenderer(self, ren:'vtkRenderer') -> None: ... + +class vtkViewTheme(vtkmodules.vtkCommonCore.vtkObject): + background_color:'getset_descriptor' + background_color2:'getset_descriptor' + cell_alpha_range:'getset_descriptor' + cell_color:'getset_descriptor' + cell_hue_range:'getset_descriptor' + cell_lookup_table:'getset_descriptor' + cell_opacity:'getset_descriptor' + cell_saturation_range:'getset_descriptor' + cell_text_property:'getset_descriptor' + cell_value_range:'getset_descriptor' + edge_label_color:'getset_descriptor' + line_width:'getset_descriptor' + outline_color:'getset_descriptor' + point_alpha_range:'getset_descriptor' + point_color:'getset_descriptor' + point_hue_range:'getset_descriptor' + point_lookup_table:'getset_descriptor' + point_opacity:'getset_descriptor' + point_saturation_range:'getset_descriptor' + point_size:'getset_descriptor' + point_text_property:'getset_descriptor' + point_value_range:'getset_descriptor' + scale_cell_lookup_table:'getset_descriptor' + scale_point_lookup_table:'getset_descriptor' + selected_cell_color:'getset_descriptor' + selected_cell_opacity:'getset_descriptor' + selected_point_color:'getset_descriptor' + selected_point_opacity:'getset_descriptor' + vertex_label_color:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def CreateMellowTheme() -> 'vtkViewTheme': ... + @staticmethod + def CreateNeonTheme() -> 'vtkViewTheme': ... + @staticmethod + def CreateOceanTheme() -> 'vtkViewTheme': ... + def GetBackgroundColor(self) -> Tuple[float, float, float]: ... + def GetBackgroundColor2(self) -> Tuple[float, float, float]: ... + @overload + def GetCellAlphaRange(self) -> Pointer: ... + @overload + def GetCellAlphaRange(self, mn:float, mx:float) -> None: ... + @overload + def GetCellAlphaRange(self, rng:MutableSequence[float]) -> None: ... + def GetCellColor(self) -> Tuple[float, float, float]: ... + @overload + def GetCellHueRange(self) -> Pointer: ... + @overload + def GetCellHueRange(self, mn:float, mx:float) -> None: ... + @overload + def GetCellHueRange(self, rng:MutableSequence[float]) -> None: ... + def GetCellLookupTable(self) -> 'vtkScalarsToColors': ... + def GetCellOpacity(self) -> float: ... + @overload + def GetCellSaturationRange(self) -> Pointer: ... + @overload + def GetCellSaturationRange(self, mn:float, mx:float) -> None: ... + @overload + def GetCellSaturationRange(self, rng:MutableSequence[float]) -> None: ... + def GetCellTextProperty(self) -> 'vtkTextProperty': ... + @overload + def GetCellValueRange(self) -> Pointer: ... + @overload + def GetCellValueRange(self, mn:float, mx:float) -> None: ... + @overload + def GetCellValueRange(self, rng:MutableSequence[float]) -> None: ... + @overload + def GetEdgeLabelColor(self) -> Pointer: ... + @overload + def GetEdgeLabelColor(self, r:float, g:float, b:float) -> None: ... + @overload + def GetEdgeLabelColor(self, c:MutableSequence[float]) -> None: ... + def GetLineWidth(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOutlineColor(self) -> Tuple[float, float, float]: ... + @overload + def GetPointAlphaRange(self) -> Pointer: ... + @overload + def GetPointAlphaRange(self, mn:float, mx:float) -> None: ... + @overload + def GetPointAlphaRange(self, rng:MutableSequence[float]) -> None: ... + def GetPointColor(self) -> Tuple[float, float, float]: ... + @overload + def GetPointHueRange(self) -> Pointer: ... + @overload + def GetPointHueRange(self, mn:float, mx:float) -> None: ... + @overload + def GetPointHueRange(self, rng:MutableSequence[float]) -> None: ... + def GetPointLookupTable(self) -> 'vtkScalarsToColors': ... + def GetPointOpacity(self) -> float: ... + @overload + def GetPointSaturationRange(self) -> Pointer: ... + @overload + def GetPointSaturationRange(self, mn:float, mx:float) -> None: ... + @overload + def GetPointSaturationRange(self, rng:MutableSequence[float]) -> None: ... + def GetPointSize(self) -> float: ... + def GetPointTextProperty(self) -> 'vtkTextProperty': ... + @overload + def GetPointValueRange(self) -> Pointer: ... + @overload + def GetPointValueRange(self, mn:float, mx:float) -> None: ... + @overload + def GetPointValueRange(self, rng:MutableSequence[float]) -> None: ... + def GetScaleCellLookupTable(self) -> bool: ... + def GetScalePointLookupTable(self) -> bool: ... + def GetSelectedCellColor(self) -> Tuple[float, float, float]: ... + def GetSelectedCellOpacity(self) -> float: ... + def GetSelectedPointColor(self) -> Tuple[float, float, float]: ... + def GetSelectedPointOpacity(self) -> float: ... + @overload + def GetVertexLabelColor(self) -> Pointer: ... + @overload + def GetVertexLabelColor(self, r:float, g:float, b:float) -> None: ... + @overload + def GetVertexLabelColor(self, c:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LookupMatchesCellTheme(self, s2c:'vtkScalarsToColors') -> bool: ... + def LookupMatchesPointTheme(self, s2c:'vtkScalarsToColors') -> bool: ... + def NewInstance(self) -> 'vtkViewTheme': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkViewTheme': ... + def ScaleCellLookupTableOff(self) -> None: ... + def ScaleCellLookupTableOn(self) -> None: ... + def ScalePointLookupTableOff(self) -> None: ... + def ScalePointLookupTableOn(self) -> None: ... + @overload + def SetBackgroundColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetBackgroundColor(self, _arg:Sequence[float]) -> None: ... + @overload + def SetBackgroundColor2(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetBackgroundColor2(self, _arg:Sequence[float]) -> None: ... + @overload + def SetCellAlphaRange(self, mn:float, mx:float) -> None: ... + @overload + def SetCellAlphaRange(self, rng:MutableSequence[float]) -> None: ... + @overload + def SetCellColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetCellColor(self, _arg:Sequence[float]) -> None: ... + @overload + def SetCellHueRange(self, mn:float, mx:float) -> None: ... + @overload + def SetCellHueRange(self, rng:MutableSequence[float]) -> None: ... + def SetCellLookupTable(self, lut:'vtkScalarsToColors') -> None: ... + def SetCellOpacity(self, _arg:float) -> None: ... + @overload + def SetCellSaturationRange(self, mn:float, mx:float) -> None: ... + @overload + def SetCellSaturationRange(self, rng:MutableSequence[float]) -> None: ... + def SetCellTextProperty(self, tprop:'vtkTextProperty') -> None: ... + @overload + def SetCellValueRange(self, mn:float, mx:float) -> None: ... + @overload + def SetCellValueRange(self, rng:MutableSequence[float]) -> None: ... + @overload + def SetEdgeLabelColor(self, r:float, g:float, b:float) -> None: ... + @overload + def SetEdgeLabelColor(self, c:MutableSequence[float]) -> None: ... + def SetLineWidth(self, _arg:float) -> None: ... + @overload + def SetOutlineColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetOutlineColor(self, _arg:Sequence[float]) -> None: ... + @overload + def SetPointAlphaRange(self, mn:float, mx:float) -> None: ... + @overload + def SetPointAlphaRange(self, rng:MutableSequence[float]) -> None: ... + @overload + def SetPointColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetPointColor(self, _arg:Sequence[float]) -> None: ... + @overload + def SetPointHueRange(self, mn:float, mx:float) -> None: ... + @overload + def SetPointHueRange(self, rng:MutableSequence[float]) -> None: ... + def SetPointLookupTable(self, lut:'vtkScalarsToColors') -> None: ... + def SetPointOpacity(self, _arg:float) -> None: ... + @overload + def SetPointSaturationRange(self, mn:float, mx:float) -> None: ... + @overload + def SetPointSaturationRange(self, rng:MutableSequence[float]) -> None: ... + def SetPointSize(self, _arg:float) -> None: ... + def SetPointTextProperty(self, tprop:'vtkTextProperty') -> None: ... + @overload + def SetPointValueRange(self, mn:float, mx:float) -> None: ... + @overload + def SetPointValueRange(self, rng:MutableSequence[float]) -> None: ... + def SetScaleCellLookupTable(self, _arg:bool) -> None: ... + def SetScalePointLookupTable(self, _arg:bool) -> None: ... + @overload + def SetSelectedCellColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetSelectedCellColor(self, _arg:Sequence[float]) -> None: ... + def SetSelectedCellOpacity(self, _arg:float) -> None: ... + @overload + def SetSelectedPointColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetSelectedPointColor(self, _arg:Sequence[float]) -> None: ... + def SetSelectedPointOpacity(self, _arg:float) -> None: ... + @overload + def SetVertexLabelColor(self, r:float, g:float, b:float) -> None: ... + @overload + def SetVertexLabelColor(self, c:MutableSequence[float]) -> None: ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkViewsInfovis.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkViewsInfovis.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..34c8838 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkViewsInfovis.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkViewsInfovis.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkViewsInfovis.pyi new file mode 100644 index 0000000..d41e9f0 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkViewsInfovis.pyi @@ -0,0 +1,1622 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkCommonDataModel +import vtkmodules.vtkCommonExecutionModel +import vtkmodules.vtkInteractionStyle +import vtkmodules.vtkRenderingContext2D +import vtkmodules.vtkViewsCore + +class vtkApplyColors(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + cell_color_output_array_name:'getset_descriptor' + cell_lookup_table:'getset_descriptor' + default_cell_color:'getset_descriptor' + default_cell_opacity:'getset_descriptor' + default_point_color:'getset_descriptor' + default_point_opacity:'getset_descriptor' + m_time:'getset_descriptor' + point_color_output_array_name:'getset_descriptor' + point_lookup_table:'getset_descriptor' + scale_cell_lookup_table:'getset_descriptor' + scale_point_lookup_table:'getset_descriptor' + selected_cell_color:'getset_descriptor' + selected_cell_opacity:'getset_descriptor' + selected_point_color:'getset_descriptor' + selected_point_opacity:'getset_descriptor' + use_cell_lookup_table:'getset_descriptor' + use_current_annotation_color:'getset_descriptor' + use_point_lookup_table:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCellColorOutputArrayName(self) -> str: ... + def GetCellLookupTable(self) -> 'vtkScalarsToColors': ... + def GetDefaultCellColor(self) -> Tuple[float, float, float]: ... + def GetDefaultCellOpacity(self) -> float: ... + def GetDefaultPointColor(self) -> Tuple[float, float, float]: ... + def GetDefaultPointOpacity(self) -> float: ... + def GetMTime(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetPointColorOutputArrayName(self) -> str: ... + def GetPointLookupTable(self) -> 'vtkScalarsToColors': ... + def GetScaleCellLookupTable(self) -> bool: ... + def GetScalePointLookupTable(self) -> bool: ... + def GetSelectedCellColor(self) -> Tuple[float, float, float]: ... + def GetSelectedCellOpacity(self) -> float: ... + def GetSelectedPointColor(self) -> Tuple[float, float, float]: ... + def GetSelectedPointOpacity(self) -> float: ... + def GetUseCellLookupTable(self) -> bool: ... + def GetUseCurrentAnnotationColor(self) -> bool: ... + def GetUsePointLookupTable(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkApplyColors': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkApplyColors': ... + def ScaleCellLookupTableOff(self) -> None: ... + def ScaleCellLookupTableOn(self) -> None: ... + def ScalePointLookupTableOff(self) -> None: ... + def ScalePointLookupTableOn(self) -> None: ... + def SetCellColorOutputArrayName(self, _arg:str) -> None: ... + def SetCellLookupTable(self, lut:'vtkScalarsToColors') -> None: ... + @overload + def SetDefaultCellColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetDefaultCellColor(self, _arg:Sequence[float]) -> None: ... + def SetDefaultCellOpacity(self, _arg:float) -> None: ... + @overload + def SetDefaultPointColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetDefaultPointColor(self, _arg:Sequence[float]) -> None: ... + def SetDefaultPointOpacity(self, _arg:float) -> None: ... + def SetPointColorOutputArrayName(self, _arg:str) -> None: ... + def SetPointLookupTable(self, lut:'vtkScalarsToColors') -> None: ... + def SetScaleCellLookupTable(self, _arg:bool) -> None: ... + def SetScalePointLookupTable(self, _arg:bool) -> None: ... + @overload + def SetSelectedCellColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetSelectedCellColor(self, _arg:Sequence[float]) -> None: ... + def SetSelectedCellOpacity(self, _arg:float) -> None: ... + @overload + def SetSelectedPointColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetSelectedPointColor(self, _arg:Sequence[float]) -> None: ... + def SetSelectedPointOpacity(self, _arg:float) -> None: ... + def SetUseCellLookupTable(self, _arg:bool) -> None: ... + def SetUseCurrentAnnotationColor(self, _arg:bool) -> None: ... + def SetUsePointLookupTable(self, _arg:bool) -> None: ... + def UseCellLookupTableOff(self) -> None: ... + def UseCellLookupTableOn(self) -> None: ... + def UseCurrentAnnotationColorOff(self) -> None: ... + def UseCurrentAnnotationColorOn(self) -> None: ... + def UsePointLookupTableOff(self) -> None: ... + def UsePointLookupTableOn(self) -> None: ... + +class vtkApplyIcons(vtkmodules.vtkCommonExecutionModel.vtkPassInputTypeAlgorithm): + ANNOTATION_ICON:int + IGNORE_SELECTION:int + SELECTED_ICON:int + SELECTED_OFFSET:int + attribute_type:'getset_descriptor' + default_icon:'getset_descriptor' + icon_output_array_name:'getset_descriptor' + selected_icon:'getset_descriptor' + selection_mode:'getset_descriptor' + use_lookup_table:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ClearAllIconTypes(self) -> None: ... + def GetAttributeType(self) -> int: ... + def GetDefaultIcon(self) -> int: ... + def GetIconOutputArrayName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSelectedIcon(self) -> int: ... + def GetSelectionMode(self) -> int: ... + def GetUseLookupTable(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkApplyIcons': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkApplyIcons': ... + def SetAttributeType(self, _arg:int) -> None: ... + def SetDefaultIcon(self, _arg:int) -> None: ... + def SetIconOutputArrayName(self, _arg:str) -> None: ... + @overload + def SetIconType(self, v:'vtkVariant', icon:int) -> None: ... + @overload + def SetIconType(self, v:float, icon:int) -> None: ... + @overload + def SetIconType(self, v:str, icon:int) -> None: ... + def SetSelectedIcon(self, _arg:int) -> None: ... + def SetSelectionMode(self, _arg:int) -> None: ... + def SetSelectionModeToAnnotationIcon(self) -> None: ... + def SetSelectionModeToIgnoreSelection(self) -> None: ... + def SetSelectionModeToSelectedIcon(self) -> None: ... + def SetSelectionModeToSelectedOffset(self) -> None: ... + def SetUseLookupTable(self, _arg:bool) -> None: ... + def UseLookupTableOff(self) -> None: ... + def UseLookupTableOn(self) -> None: ... + +class vtkDendrogramItem(vtkmodules.vtkRenderingContext2D.vtkContextItem): + DOWN_TO_UP:int + LEFT_TO_RIGHT:int + RIGHT_TO_LEFT:int + UP_TO_DOWN:int + color_array:'getset_descriptor' + display_number_of_collapsed_leaf_nodes:'getset_descriptor' + distance_array_name:'getset_descriptor' + draw_labels:'getset_descriptor' + extend_leaf_nodes:'getset_descriptor' + label_width:'getset_descriptor' + leaf_spacing:'getset_descriptor' + line_width:'getset_descriptor' + orientation:'getset_descriptor' + position:'getset_descriptor' + position_vector:'getset_descriptor' + pruned_tree:'getset_descriptor' + tree:'getset_descriptor' + vertex_name_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CollapseToNumberOfLeafNodes(self, n:int) -> None: ... + def ComputeLabelWidth(self, painter:'vtkContext2D') -> None: ... + def DisplayNumberOfCollapsedLeafNodesOff(self) -> None: ... + def DisplayNumberOfCollapsedLeafNodesOn(self) -> None: ... + def DrawLabelsOff(self) -> None: ... + def DrawLabelsOn(self) -> None: ... + def ExtendLeafNodesOff(self) -> None: ... + def ExtendLeafNodesOn(self) -> None: ... + def GetAngleForOrientation(self, orientation:int) -> float: ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetDisplayNumberOfCollapsedLeafNodes(self) -> bool: ... + def GetDistanceArrayName(self) -> str: ... + def GetDrawLabels(self) -> bool: ... + def GetExtendLeafNodes(self) -> bool: ... + def GetLabelWidth(self) -> float: ... + def GetLeafSpacing(self) -> float: ... + def GetLineWidth(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientation(self) -> int: ... + def GetPosition(self) -> Tuple[float, float]: ... + def GetPositionOfVertex(self, vertexName:str, position:MutableSequence[float]) -> bool: ... + def GetPositionVector(self) -> 'vtkVector2f': ... + def GetPrunedTree(self) -> 'vtkTree': ... + def GetTextAngleForOrientation(self, orientation:int) -> float: ... + def GetTree(self) -> 'vtkTree': ... + def GetVertexNameArrayName(self) -> str: ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MouseDoubleClickEvent(self, event:'vtkContextMouseEvent') -> bool: ... + def NewInstance(self) -> 'vtkDendrogramItem': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + def PrepareToPaint(self, painter:'vtkContext2D') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkDendrogramItem': ... + def SetColorArray(self, arrayName:str) -> None: ... + def SetDisplayNumberOfCollapsedLeafNodes(self, _arg:bool) -> None: ... + def SetDistanceArrayName(self, _arg:str) -> None: ... + def SetDrawLabels(self, _arg:bool) -> None: ... + def SetExtendLeafNodes(self, _arg:bool) -> None: ... + def SetLeafSpacing(self, _arg:float) -> None: ... + def SetLineWidth(self, _arg:float) -> None: ... + def SetOrientation(self, orientation:int) -> None: ... + @overload + def SetPosition(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetPosition(self, _arg:Sequence[float]) -> None: ... + @overload + def SetPosition(self, pos:'vtkVector2f') -> None: ... + def SetTree(self, tree:'vtkTree') -> None: ... + def SetVertexNameArrayName(self, _arg:str) -> None: ... + +class vtkGraphItem(vtkmodules.vtkRenderingContext2D.vtkContextItem): + graph:'getset_descriptor' + layout:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetGraph(self) -> 'vtkGraph': ... + def GetLayout(self) -> 'vtkIncrementalForceLayout': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGraphItem': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraphItem': ... + def SetGraph(self, graph:'vtkGraph') -> None: ... + def StartLayoutAnimation(self, interactor:'vtkRenderWindowInteractor') -> None: ... + def StopLayoutAnimation(self) -> None: ... + def UpdateLayout(self) -> None: ... + +class vtkRenderView(vtkmodules.vtkViewsCore.vtkRenderViewBase): + ALL:int + FREETYPE:int + FRUSTUM:int + INTERACTION_MODE_2D:int + INTERACTION_MODE_3D:int + INTERACTION_MODE_UNKNOWN:int + NO_OVERLAP:int + QT:int + SURFACE:int + display_hover_text:'getset_descriptor' + display_size:'getset_descriptor' + icon_size:'getset_descriptor' + icon_texture:'getset_descriptor' + interaction_mode:'getset_descriptor' + interactor:'getset_descriptor' + interactor_style:'getset_descriptor' + label_placement_mode:'getset_descriptor' + label_render_mode:'getset_descriptor' + render_on_mouse_move:'getset_descriptor' + render_window:'getset_descriptor' + selection_mode:'getset_descriptor' + transform:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddLabels(self, conn:'vtkAlgorithmOutput') -> None: ... + def ApplyViewTheme(self, theme:'vtkViewTheme') -> None: ... + def DisplayHoverTextOff(self) -> None: ... + def DisplayHoverTextOn(self) -> None: ... + def GetDisplayHoverText(self) -> bool: ... + @overload + def GetDisplaySize(self) -> Pointer: ... + @overload + def GetDisplaySize(self, dsx:int, dsy:int) -> None: ... + def GetIconSize(self) -> Tuple[int, int]: ... + def GetIconTexture(self) -> 'vtkTexture': ... + def GetInteractionMode(self) -> int: ... + def GetInteractorStyle(self) -> 'vtkInteractorObserver': ... + def GetLabelPlacementMode(self) -> int: ... + def GetLabelRenderMode(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRenderOnMouseMove(self) -> bool: ... + def GetSelectionMode(self) -> int: ... + def GetSelectionModeMaxValue(self) -> int: ... + def GetSelectionModeMinValue(self) -> int: ... + def GetTransform(self) -> 'vtkAbstractTransform': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRenderView': ... + def RemoveLabels(self, conn:'vtkAlgorithmOutput') -> None: ... + def Render(self) -> None: ... + def RenderOnMouseMoveOff(self) -> None: ... + def RenderOnMouseMoveOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderView': ... + def SetDisplayHoverText(self, b:bool) -> None: ... + @overload + def SetDisplaySize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetDisplaySize(self, _arg:Sequence[int]) -> None: ... + @overload + def SetIconSize(self, _arg1:int, _arg2:int) -> None: ... + @overload + def SetIconSize(self, _arg:Sequence[int]) -> None: ... + def SetIconTexture(self, texture:'vtkTexture') -> None: ... + def SetInteractionMode(self, mode:int) -> None: ... + def SetInteractionModeTo2D(self) -> None: ... + def SetInteractionModeTo3D(self) -> None: ... + def SetInteractor(self, interactor:'vtkRenderWindowInteractor') -> None: ... + def SetInteractorStyle(self, style:'vtkInteractorObserver') -> None: ... + def SetLabelPlacementMode(self, mode:int) -> None: ... + def SetLabelPlacementModeToAll(self) -> None: ... + def SetLabelPlacementModeToNoOverlap(self) -> None: ... + def SetLabelRenderMode(self, mode:int) -> None: ... + def SetLabelRenderModeToFreetype(self) -> None: ... + def SetLabelRenderModeToQt(self) -> None: ... + def SetRenderOnMouseMove(self, b:bool) -> None: ... + def SetRenderWindow(self, win:'vtkRenderWindow') -> None: ... + def SetSelectionMode(self, _arg:int) -> None: ... + def SetSelectionModeToFrustum(self) -> None: ... + def SetSelectionModeToSurface(self) -> None: ... + def SetTransform(self, transform:'vtkAbstractTransform') -> None: ... + +class vtkGraphLayoutView(vtkRenderView): + color_edges:'getset_descriptor' + color_vertices:'getset_descriptor' + edge_color_array_name:'getset_descriptor' + edge_label_array_name:'getset_descriptor' + edge_label_font_size:'getset_descriptor' + edge_label_visibility:'getset_descriptor' + edge_layout_strategy:'getset_descriptor' + edge_layout_strategy_name:'getset_descriptor' + edge_scalar_bar_visibility:'getset_descriptor' + edge_selection:'getset_descriptor' + edge_visibility:'getset_descriptor' + enable_edges_by_array:'getset_descriptor' + enable_vertices_by_array:'getset_descriptor' + enabled_edges_array_name:'getset_descriptor' + enabled_vertices_array_name:'getset_descriptor' + glyph_type:'getset_descriptor' + hide_edge_labels_on_interaction:'getset_descriptor' + hide_vertex_labels_on_interaction:'getset_descriptor' + icon_alignment:'getset_descriptor' + icon_array_name:'getset_descriptor' + icon_visibility:'getset_descriptor' + layout_strategy:'getset_descriptor' + layout_strategy_name:'getset_descriptor' + scaled_glyphs:'getset_descriptor' + scaling_array_name:'getset_descriptor' + vertex_color_array_name:'getset_descriptor' + vertex_label_array_name:'getset_descriptor' + vertex_label_font_size:'getset_descriptor' + vertex_label_visibility:'getset_descriptor' + vertex_scalar_bar_visibility:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddIconType(self, type:str, index:int) -> None: ... + def ClearIconTypes(self) -> None: ... + def ColorEdgesOff(self) -> None: ... + def ColorEdgesOn(self) -> None: ... + def ColorVerticesOff(self) -> None: ... + def ColorVerticesOn(self) -> None: ... + def EdgeLabelVisibilityOff(self) -> None: ... + def EdgeLabelVisibilityOn(self) -> None: ... + def EdgeSelectionOff(self) -> None: ... + def EdgeSelectionOn(self) -> None: ... + def EdgeVisibilityOff(self) -> None: ... + def EdgeVisibilityOn(self) -> None: ... + def GetColorEdges(self) -> bool: ... + def GetColorVertices(self) -> bool: ... + def GetEdgeColorArrayName(self) -> str: ... + def GetEdgeLabelArrayName(self) -> str: ... + def GetEdgeLabelFontSize(self) -> int: ... + def GetEdgeLabelVisibility(self) -> bool: ... + def GetEdgeLayoutStrategy(self) -> 'vtkEdgeLayoutStrategy': ... + def GetEdgeLayoutStrategyName(self) -> str: ... + def GetEdgeScalarBarVisibility(self) -> bool: ... + def GetEdgeSelection(self) -> bool: ... + def GetEdgeVisibility(self) -> bool: ... + def GetEnableEdgesByArray(self) -> int: ... + def GetEnableVerticesByArray(self) -> int: ... + def GetEnabledEdgesArrayName(self) -> str: ... + def GetEnabledVerticesArrayName(self) -> str: ... + def GetGlyphType(self) -> int: ... + def GetHideEdgeLabelsOnInteraction(self) -> bool: ... + def GetHideVertexLabelsOnInteraction(self) -> bool: ... + def GetIconArrayName(self) -> str: ... + def GetIconVisibility(self) -> bool: ... + def GetLayoutStrategy(self) -> 'vtkGraphLayoutStrategy': ... + def GetLayoutStrategyName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScaledGlyphs(self) -> bool: ... + def GetScalingArrayName(self) -> str: ... + def GetVertexColorArrayName(self) -> str: ... + def GetVertexLabelArrayName(self) -> str: ... + def GetVertexLabelFontSize(self) -> int: ... + def GetVertexLabelVisibility(self) -> bool: ... + def GetVertexScalarBarVisibility(self) -> bool: ... + def HideEdgeLabelsOnInteractionOff(self) -> None: ... + def HideEdgeLabelsOnInteractionOn(self) -> None: ... + def HideVertexLabelsOnInteractionOff(self) -> None: ... + def HideVertexLabelsOnInteractionOn(self) -> None: ... + def IconVisibilityOff(self) -> None: ... + def IconVisibilityOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsLayoutComplete(self) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkGraphLayoutView': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkGraphLayoutView': ... + def ScaledGlyphsOff(self) -> None: ... + def ScaledGlyphsOn(self) -> None: ... + def SetColorEdges(self, vis:bool) -> None: ... + def SetColorVertices(self, vis:bool) -> None: ... + def SetEdgeColorArrayName(self, name:str) -> None: ... + def SetEdgeLabelArrayName(self, name:str) -> None: ... + def SetEdgeLabelFontSize(self, size:int) -> None: ... + def SetEdgeLabelVisibility(self, vis:bool) -> None: ... + @overload + def SetEdgeLayoutStrategy(self, name:str) -> None: ... + @overload + def SetEdgeLayoutStrategy(self, s:'vtkEdgeLayoutStrategy') -> None: ... + def SetEdgeLayoutStrategyToArcParallel(self) -> None: ... + def SetEdgeLayoutStrategyToPassThrough(self) -> None: ... + def SetEdgeScalarBarVisibility(self, vis:bool) -> None: ... + def SetEdgeSelection(self, vis:bool) -> None: ... + def SetEdgeVisibility(self, vis:bool) -> None: ... + def SetEnableEdgesByArray(self, vis:bool) -> None: ... + def SetEnableVerticesByArray(self, vis:bool) -> None: ... + def SetEnabledEdgesArrayName(self, name:str) -> None: ... + def SetEnabledVerticesArrayName(self, name:str) -> None: ... + def SetGlyphType(self, type:int) -> None: ... + def SetHideEdgeLabelsOnInteraction(self, vis:bool) -> None: ... + def SetHideVertexLabelsOnInteraction(self, vis:bool) -> None: ... + def SetIconAlignment(self, alignment:int) -> None: ... + def SetIconArrayName(self, name:str) -> None: ... + def SetIconVisibility(self, b:bool) -> None: ... + @overload + def SetLayoutStrategy(self, name:str) -> None: ... + @overload + def SetLayoutStrategy(self, s:'vtkGraphLayoutStrategy') -> None: ... + def SetLayoutStrategyToCircular(self) -> None: ... + def SetLayoutStrategyToClustering2D(self) -> None: ... + def SetLayoutStrategyToCommunity2D(self) -> None: ... + def SetLayoutStrategyToCone(self) -> None: ... + def SetLayoutStrategyToCosmicTree(self) -> None: ... + def SetLayoutStrategyToFast2D(self) -> None: ... + def SetLayoutStrategyToForceDirected(self) -> None: ... + def SetLayoutStrategyToPassThrough(self) -> None: ... + def SetLayoutStrategyToRandom(self) -> None: ... + def SetLayoutStrategyToSimple2D(self) -> None: ... + def SetLayoutStrategyToSpanTree(self) -> None: ... + def SetLayoutStrategyToTree(self) -> None: ... + def SetScaledGlyphs(self, arg:bool) -> None: ... + def SetScalingArrayName(self, name:str) -> None: ... + def SetVertexColorArrayName(self, name:str) -> None: ... + def SetVertexLabelArrayName(self, name:str) -> None: ... + def SetVertexLabelFontSize(self, size:int) -> None: ... + def SetVertexLabelVisibility(self, vis:bool) -> None: ... + def SetVertexScalarBarVisibility(self, vis:bool) -> None: ... + def UpdateLayout(self) -> None: ... + def VertexLabelVisibilityOff(self) -> None: ... + def VertexLabelVisibilityOn(self) -> None: ... + def ZoomToSelection(self) -> None: ... + +class vtkHeatmapItem(vtkmodules.vtkRenderingContext2D.vtkContextItem): + DOWN_TO_UP:int + LEFT_TO_RIGHT:int + RIGHT_TO_LEFT:int + UP_TO_DOWN:int + cell_height:'getset_descriptor' + cell_width:'getset_descriptor' + column_label_width:'getset_descriptor' + name_column:'getset_descriptor' + orientation:'getset_descriptor' + position:'getset_descriptor' + position_vector:'getset_descriptor' + row_label_width:'getset_descriptor' + row_names:'getset_descriptor' + table:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetCellHeight(self) -> float: ... + def GetCellWidth(self) -> float: ... + def GetColumnLabelWidth(self) -> float: ... + def GetNameColumn(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientation(self) -> int: ... + def GetPosition(self) -> Tuple[float, float]: ... + def GetPositionVector(self) -> 'vtkVector2f': ... + def GetRowLabelWidth(self) -> float: ... + def GetRowNames(self) -> 'vtkStringArray': ... + def GetTable(self) -> 'vtkTable': ... + def GetTextAngleForOrientation(self, orientation:int) -> float: ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MarkRowAsBlank(self, rowName:str) -> None: ... + def MouseDoubleClickEvent(self, event:'vtkContextMouseEvent') -> bool: ... + def MouseMoveEvent(self, event:'vtkContextMouseEvent') -> bool: ... + def NewInstance(self) -> 'vtkHeatmapItem': ... + def Paint(self, painter:'vtkContext2D') -> bool: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHeatmapItem': ... + def SetCellHeight(self, _arg:float) -> None: ... + def SetCellWidth(self, _arg:float) -> None: ... + def SetNameColumn(self, _arg:str) -> None: ... + def SetOrientation(self, orientation:int) -> None: ... + @overload + def SetPosition(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetPosition(self, _arg:Sequence[float]) -> None: ... + @overload + def SetPosition(self, pos:'vtkVector2f') -> None: ... + def SetTable(self, table:'vtkTable') -> None: ... + +class vtkHierarchicalGraphPipeline(vtkmodules.vtkCommonCore.vtkObject): + actor:'getset_descriptor' + bundling_strength:'getset_descriptor' + color_array_name:'getset_descriptor' + color_edges_by_array:'getset_descriptor' + hover_array_name:'getset_descriptor' + label_actor:'getset_descriptor' + label_array_name:'getset_descriptor' + label_text_property:'getset_descriptor' + label_visibility:'getset_descriptor' + spline_type:'getset_descriptor' + visibility:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ApplyViewTheme(self, theme:'vtkViewTheme') -> None: ... + def ColorEdgesByArrayOff(self) -> None: ... + def ColorEdgesByArrayOn(self) -> None: ... + def ConvertSelection(self, rep:'vtkDataRepresentation', sel:'vtkSelection') -> 'vtkSelection': ... + def GetActor(self) -> 'vtkActor': ... + def GetBundlingStrength(self) -> float: ... + def GetColorArrayName(self) -> str: ... + def GetColorEdgesByArray(self) -> bool: ... + def GetHoverArrayName(self) -> str: ... + def GetLabelActor(self) -> 'vtkActor2D': ... + def GetLabelArrayName(self) -> str: ... + def GetLabelTextProperty(self) -> 'vtkTextProperty': ... + def GetLabelVisibility(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSplineType(self) -> int: ... + def GetVisibility(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LabelVisibilityOff(self) -> None: ... + def LabelVisibilityOn(self) -> None: ... + def NewInstance(self) -> 'vtkHierarchicalGraphPipeline': ... + def PrepareInputConnections(self, graphConn:'vtkAlgorithmOutput', treeConn:'vtkAlgorithmOutput', annConn:'vtkAlgorithmOutput') -> None: ... + def RegisterProgress(self, view:'vtkRenderView') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHierarchicalGraphPipeline': ... + def SetBundlingStrength(self, strength:float) -> None: ... + def SetColorArrayName(self, name:str) -> None: ... + def SetColorEdgesByArray(self, vis:bool) -> None: ... + def SetHoverArrayName(self, _arg:str) -> None: ... + def SetLabelArrayName(self, name:str) -> None: ... + def SetLabelTextProperty(self, prop:'vtkTextProperty') -> None: ... + def SetLabelVisibility(self, vis:bool) -> None: ... + def SetSplineType(self, type:int) -> None: ... + def SetVisibility(self, vis:bool) -> None: ... + def VisibilityOff(self) -> None: ... + def VisibilityOn(self) -> None: ... + +class vtkHierarchicalGraphView(vtkGraphLayoutView): + bundling_strength:'getset_descriptor' + color_graph_edges_by_array:'getset_descriptor' + graph_edge_color_array_name:'getset_descriptor' + graph_edge_label_array_name:'getset_descriptor' + graph_edge_label_font_size:'getset_descriptor' + graph_edge_label_visibility:'getset_descriptor' + graph_visibility:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ColorGraphEdgesByArrayOff(self) -> None: ... + def ColorGraphEdgesByArrayOn(self) -> None: ... + def GetBundlingStrength(self) -> float: ... + def GetColorGraphEdgesByArray(self) -> bool: ... + def GetGraphEdgeColorArrayName(self) -> str: ... + def GetGraphEdgeLabelArrayName(self) -> str: ... + def GetGraphEdgeLabelFontSize(self) -> int: ... + def GetGraphEdgeLabelVisibility(self) -> bool: ... + def GetGraphVisibility(self) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GraphEdgeLabelVisibilityOff(self) -> None: ... + def GraphEdgeLabelVisibilityOn(self) -> None: ... + def GraphVisibilityOff(self) -> None: ... + def GraphVisibilityOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkHierarchicalGraphView': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkHierarchicalGraphView': ... + def SetBundlingStrength(self, strength:float) -> None: ... + def SetColorGraphEdgesByArray(self, vis:bool) -> None: ... + def SetGraphEdgeColorArrayName(self, name:str) -> None: ... + def SetGraphEdgeColorToSplineFraction(self) -> None: ... + def SetGraphEdgeLabelArrayName(self, name:str) -> None: ... + def SetGraphEdgeLabelFontSize(self, size:int) -> None: ... + def SetGraphEdgeLabelVisibility(self, vis:bool) -> None: ... + def SetGraphFromInput(self, input:'vtkDataObject') -> 'vtkDataRepresentation': ... + def SetGraphFromInputConnection(self, conn:'vtkAlgorithmOutput') -> 'vtkDataRepresentation': ... + def SetGraphVisibility(self, vis:bool) -> None: ... + def SetHierarchyFromInput(self, input:'vtkDataObject') -> 'vtkDataRepresentation': ... + def SetHierarchyFromInputConnection(self, conn:'vtkAlgorithmOutput') -> 'vtkDataRepresentation': ... + +class vtkTreeAreaView(vtkRenderView): + area_color_array_name:'getset_descriptor' + area_hover_array_name:'getset_descriptor' + area_label_array_name:'getset_descriptor' + area_label_font_size:'getset_descriptor' + area_label_visibility:'getset_descriptor' + area_size_array_name:'getset_descriptor' + bundling_strength:'getset_descriptor' + color_areas:'getset_descriptor' + color_edges:'getset_descriptor' + edge_color_array_name:'getset_descriptor' + edge_label_array_name:'getset_descriptor' + edge_label_font_size:'getset_descriptor' + edge_label_visibility:'getset_descriptor' + edge_scalar_bar_visibility:'getset_descriptor' + label_priority_array_name:'getset_descriptor' + layout_strategy:'getset_descriptor' + shrink_percentage:'getset_descriptor' + use_rectangular_coordinates:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AreaLabelVisibilityOff(self) -> None: ... + def AreaLabelVisibilityOn(self) -> None: ... + def ColorAreasOff(self) -> None: ... + def ColorAreasOn(self) -> None: ... + def ColorEdgesOff(self) -> None: ... + def ColorEdgesOn(self) -> None: ... + def EdgeLabelVisibilityOff(self) -> None: ... + def EdgeLabelVisibilityOn(self) -> None: ... + def GetAreaColorArrayName(self) -> str: ... + def GetAreaHoverArrayName(self) -> str: ... + def GetAreaLabelArrayName(self) -> str: ... + def GetAreaLabelFontSize(self) -> int: ... + def GetAreaLabelVisibility(self) -> bool: ... + def GetAreaSizeArrayName(self) -> str: ... + def GetBundlingStrength(self) -> float: ... + def GetColorAreas(self) -> bool: ... + def GetColorEdges(self) -> bool: ... + def GetEdgeColorArrayName(self) -> str: ... + def GetEdgeLabelArrayName(self) -> str: ... + def GetEdgeLabelFontSize(self) -> int: ... + def GetEdgeLabelVisibility(self) -> bool: ... + def GetEdgeScalarBarVisibility(self) -> bool: ... + def GetLabelPriorityArrayName(self) -> str: ... + def GetLayoutStrategy(self) -> 'vtkAreaLayoutStrategy': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShrinkPercentage(self) -> float: ... + def GetUseRectangularCoordinates(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTreeAreaView': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTreeAreaView': ... + def SetAreaColorArrayName(self, name:str) -> None: ... + def SetAreaHoverArrayName(self, name:str) -> None: ... + def SetAreaLabelArrayName(self, name:str) -> None: ... + def SetAreaLabelFontSize(self, size:int) -> None: ... + def SetAreaLabelVisibility(self, vis:bool) -> None: ... + def SetAreaSizeArrayName(self, name:str) -> None: ... + def SetBundlingStrength(self, strength:float) -> None: ... + def SetColorAreas(self, vis:bool) -> None: ... + def SetColorEdges(self, vis:bool) -> None: ... + def SetEdgeColorArrayName(self, name:str) -> None: ... + def SetEdgeColorToSplineFraction(self) -> None: ... + def SetEdgeLabelArrayName(self, name:str) -> None: ... + def SetEdgeLabelFontSize(self, size:int) -> None: ... + def SetEdgeLabelVisibility(self, vis:bool) -> None: ... + def SetEdgeScalarBarVisibility(self, b:bool) -> None: ... + def SetGraphFromInput(self, input:'vtkGraph') -> 'vtkDataRepresentation': ... + def SetGraphFromInputConnection(self, conn:'vtkAlgorithmOutput') -> 'vtkDataRepresentation': ... + def SetLabelPriorityArrayName(self, name:str) -> None: ... + def SetLayoutStrategy(self, strategy:'vtkAreaLayoutStrategy') -> None: ... + def SetShrinkPercentage(self, value:float) -> None: ... + def SetTreeFromInput(self, input:'vtkTree') -> 'vtkDataRepresentation': ... + def SetTreeFromInputConnection(self, conn:'vtkAlgorithmOutput') -> 'vtkDataRepresentation': ... + def SetUseRectangularCoordinates(self, rect:bool) -> None: ... + def UseRectangularCoordinatesOff(self) -> None: ... + def UseRectangularCoordinatesOn(self) -> None: ... + +class vtkIcicleView(vtkTreeAreaView): + layer_thickness:'getset_descriptor' + root_width:'getset_descriptor' + top_to_bottom:'getset_descriptor' + use_gradient_coloring:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLayerThickness(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRootWidth(self) -> float: ... + def GetTopToBottom(self) -> bool: ... + def GetUseGradientColoring(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkIcicleView': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkIcicleView': ... + def SetLayerThickness(self, thickness:float) -> None: ... + def SetRootWidth(self, width:float) -> None: ... + def SetTopToBottom(self, reversed:bool) -> None: ... + def SetUseGradientColoring(self, value:bool) -> None: ... + def TopToBottomOff(self) -> None: ... + def TopToBottomOn(self) -> None: ... + def UseGradientColoringOff(self) -> None: ... + def UseGradientColoringOn(self) -> None: ... + +class vtkInteractorStyleAreaSelectHover(vtkmodules.vtkInteractionStyle.vtkInteractorStyleRubberBand2D): + high_light_color:'getset_descriptor' + high_light_width:'getset_descriptor' + interactor:'getset_descriptor' + label_field:'getset_descriptor' + layout:'getset_descriptor' + use_rectangular_coordinates:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetHighLightWidth(self) -> float: ... + def GetIdAtPos(self, x:int, y:int) -> int: ... + def GetLabelField(self) -> str: ... + def GetLayout(self) -> 'vtkAreaLayout': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetUseRectangularCoordinates(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyleAreaSelectHover': ... + def OnMouseMove(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleAreaSelectHover': ... + def SetHighLightColor(self, r:float, g:float, b:float) -> None: ... + def SetHighLightWidth(self, lw:float) -> None: ... + def SetInteractor(self, rwi:'vtkRenderWindowInteractor') -> None: ... + def SetLabelField(self, _arg:str) -> None: ... + def SetLayout(self, layout:'vtkAreaLayout') -> None: ... + def SetUseRectangularCoordinates(self, _arg:bool) -> None: ... + def UseRectangularCoordinatesOff(self) -> None: ... + def UseRectangularCoordinatesOn(self) -> None: ... + +class vtkInteractorStyleTreeMapHover(vtkmodules.vtkInteractionStyle.vtkInteractorStyleImage): + high_light_color:'getset_descriptor' + high_light_width:'getset_descriptor' + interactor:'getset_descriptor' + label_field:'getset_descriptor' + layout:'getset_descriptor' + selection_light_color:'getset_descriptor' + selection_width:'getset_descriptor' + tree_map_to_poly_data:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetHighLightWidth(self) -> float: ... + def GetLabelField(self) -> str: ... + def GetLayout(self) -> 'vtkTreeMapLayout': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetSelectionWidth(self) -> float: ... + def GetTreeMapToPolyData(self) -> 'vtkTreeMapToPolyData': ... + def HighLightCurrentSelectedItem(self) -> None: ... + def HighLightItem(self, id:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkInteractorStyleTreeMapHover': ... + def OnLeftButtonUp(self) -> None: ... + def OnMouseMove(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkInteractorStyleTreeMapHover': ... + def SetHighLightColor(self, r:float, g:float, b:float) -> None: ... + def SetHighLightWidth(self, lw:float) -> None: ... + def SetInteractor(self, rwi:'vtkRenderWindowInteractor') -> None: ... + def SetLabelField(self, _arg:str) -> None: ... + def SetLayout(self, layout:'vtkTreeMapLayout') -> None: ... + def SetSelectionLightColor(self, r:float, g:float, b:float) -> None: ... + def SetSelectionWidth(self, lw:float) -> None: ... + def SetTreeMapToPolyData(self, filter:'vtkTreeMapToPolyData') -> None: ... + +class vtkRenderedRepresentation(vtkmodules.vtkViewsCore.vtkDataRepresentation): + label_render_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetLabelRenderMode(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRenderedRepresentation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderedRepresentation': ... + def SetLabelRenderMode(self, _arg:int) -> None: ... + +class vtkParallelCoordinatesRepresentation(vtkRenderedRepresentation): + class InputPorts(int): ... + INPUT_DATA:'InputPorts' + INPUT_TITLES:'InputPorts' + NUM_INPUT_PORTS:'InputPorts' + angle_brush_threshold:'getset_descriptor' + axis_color:'getset_descriptor' + axis_label_color:'getset_descriptor' + axis_titles:'getset_descriptor' + curve_resolution:'getset_descriptor' + font_size:'getset_descriptor' + function_brush_threshold:'getset_descriptor' + line_color:'getset_descriptor' + line_opacity:'getset_descriptor' + number_of_axes:'getset_descriptor' + number_of_axis_labels:'getset_descriptor' + number_of_samples:'getset_descriptor' + plot_title:'getset_descriptor' + use_curves:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AngleSelect(self, brushClass:int, brushOperator:int, p1:MutableSequence[float], p2:MutableSequence[float]) -> None: ... + def ApplyViewTheme(self, theme:'vtkViewTheme') -> None: ... + def FunctionSelect(self, brushClass:int, brushOperator:int, p1:MutableSequence[float], p2:MutableSequence[float], q1:MutableSequence[float], q2:MutableSequence[float]) -> None: ... + def GetAngleBrushThreshold(self) -> float: ... + def GetAxisColor(self) -> Tuple[float, float, float]: ... + def GetAxisLabelColor(self) -> Tuple[float, float, float]: ... + def GetCurveResolution(self) -> int: ... + def GetFontSize(self) -> float: ... + def GetFunctionBrushThreshold(self) -> float: ... + def GetHoverString(self, view:'vtkView', x:int, y:int) -> str: ... + def GetLineColor(self) -> Tuple[float, float, float]: ... + def GetLineOpacity(self) -> float: ... + def GetNumberOfAxes(self) -> int: ... + def GetNumberOfAxisLabels(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfSamples(self) -> int: ... + def GetPositionAndSize(self, position:MutableSequence[float], size:MutableSequence[float]) -> int: ... + def GetPositionNearXCoordinate(self, xcoord:float) -> int: ... + def GetRangeAtPosition(self, position:int, range:MutableSequence[float]) -> int: ... + def GetUseCurves(self) -> int: ... + def GetXCoordinateOfPosition(self, axis:int) -> float: ... + def GetXCoordinatesOfPositions(self, coords:MutableSequence[float]) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def LassoSelect(self, brushClass:int, brushOperator:int, brushPoints:'vtkPoints') -> None: ... + def NewInstance(self) -> 'vtkParallelCoordinatesRepresentation': ... + def RangeSelect(self, brushClass:int, brushOperator:int, p1:MutableSequence[float], p2:MutableSequence[float]) -> None: ... + def ResetAxes(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParallelCoordinatesRepresentation': ... + def SetAngleBrushThreshold(self, _arg:float) -> None: ... + @overload + def SetAxisColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAxisColor(self, _arg:Sequence[float]) -> None: ... + @overload + def SetAxisLabelColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetAxisLabelColor(self, _arg:Sequence[float]) -> None: ... + @overload + def SetAxisTitles(self, __a:'vtkStringArray') -> None: ... + @overload + def SetAxisTitles(self, __a:'vtkAlgorithmOutput') -> None: ... + def SetCurveResolution(self, _arg:int) -> None: ... + def SetFontSize(self, _arg:float) -> None: ... + def SetFunctionBrushThreshold(self, _arg:float) -> None: ... + @overload + def SetLineColor(self, _arg1:float, _arg2:float, _arg3:float) -> None: ... + @overload + def SetLineColor(self, _arg:Sequence[float]) -> None: ... + def SetLineOpacity(self, _arg:float) -> None: ... + def SetNumberOfAxisLabels(self, num:int) -> None: ... + def SetPlotTitle(self, __a:str) -> None: ... + def SetPositionAndSize(self, position:MutableSequence[float], size:MutableSequence[float]) -> int: ... + def SetRangeAtPosition(self, position:int, range:MutableSequence[float]) -> int: ... + def SetUseCurves(self, _arg:int) -> None: ... + def SetXCoordinateOfPosition(self, position:int, xcoord:float) -> int: ... + def SwapAxisPositions(self, position1:int, position2:int) -> int: ... + def UseCurvesOff(self) -> None: ... + def UseCurvesOn(self) -> None: ... + +class vtkParallelCoordinatesHistogramRepresentation(vtkParallelCoordinatesRepresentation): + histogram_lookup_table_range:'getset_descriptor' + number_of_histogram_bins:'getset_descriptor' + preferred_number_of_outliers:'getset_descriptor' + show_outliers:'getset_descriptor' + use_histograms:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ApplyViewTheme(self, theme:'vtkViewTheme') -> None: ... + def GetHistogramLookupTableRange(self) -> Tuple[float, float]: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfHistogramBins(self) -> Tuple[int, int]: ... + def GetPreferredNumberOfOutliers(self) -> int: ... + def GetShowOutliers(self) -> int: ... + def GetUseHistograms(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParallelCoordinatesHistogramRepresentation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParallelCoordinatesHistogramRepresentation': ... + @overload + def SetHistogramLookupTableRange(self, _arg1:float, _arg2:float) -> None: ... + @overload + def SetHistogramLookupTableRange(self, _arg:Sequence[float]) -> None: ... + @overload + def SetNumberOfHistogramBins(self, __a:int, __b:int) -> None: ... + @overload + def SetNumberOfHistogramBins(self, __a:MutableSequence[int]) -> None: ... + def SetPreferredNumberOfOutliers(self, __a:int) -> None: ... + def SetRangeAtPosition(self, position:int, range:MutableSequence[float]) -> int: ... + def SetShowOutliers(self, __a:int) -> None: ... + def SetUseHistograms(self, __a:int) -> None: ... + def ShowOutliersOff(self) -> None: ... + def ShowOutliersOn(self) -> None: ... + def SwapAxisPositions(self, position1:int, position2:int) -> int: ... + def UseHistogramsOff(self) -> None: ... + def UseHistogramsOn(self) -> None: ... + +class vtkParallelCoordinatesView(vtkRenderView): + VTK_BRUSHOPERATOR_ADD:int + VTK_BRUSHOPERATOR_INTERSECT:int + VTK_BRUSHOPERATOR_MODECOUNT:int + VTK_BRUSHOPERATOR_REPLACE:int + VTK_BRUSHOPERATOR_SUBTRACT:int + VTK_BRUSH_ANGLE:int + VTK_BRUSH_AXISTHRESHOLD:int + VTK_BRUSH_FUNCTION:int + VTK_BRUSH_LASSO:int + VTK_BRUSH_MODECOUNT:int + VTK_INSPECT_MANIPULATE_AXES:int + VTK_INSPECT_MODECOUNT:int + VTK_INSPECT_SELECT_DATA:int + brush_mode:'getset_descriptor' + brush_operator:'getset_descriptor' + current_brush_class:'getset_descriptor' + inspect_mode:'getset_descriptor' + maximum_number_of_brush_points:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ApplyViewTheme(self, theme:'vtkViewTheme') -> None: ... + def GetBrushMode(self) -> int: ... + def GetBrushOperator(self) -> int: ... + def GetCurrentBrushClass(self) -> int: ... + def GetInspectMode(self) -> int: ... + def GetMaximumNumberOfBrushPoints(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkParallelCoordinatesView': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkParallelCoordinatesView': ... + def SetBrushMode(self, __a:int) -> None: ... + def SetBrushModeToAngle(self) -> None: ... + def SetBrushModeToAxisThreshold(self) -> None: ... + def SetBrushModeToFunction(self) -> None: ... + def SetBrushModeToLasso(self) -> None: ... + def SetBrushOperator(self, __a:int) -> None: ... + def SetBrushOperatorToAdd(self) -> None: ... + def SetBrushOperatorToIntersect(self) -> None: ... + def SetBrushOperatorToReplace(self) -> None: ... + def SetBrushOperatorToSubtract(self) -> None: ... + def SetCurrentBrushClass(self, _arg:int) -> None: ... + def SetInpsectModeToSelectData(self) -> None: ... + def SetInspectMode(self, __a:int) -> None: ... + def SetInspectModeToManipulateAxes(self) -> None: ... + def SetMaximumNumberOfBrushPoints(self, __a:int) -> None: ... + +class vtkRenderedGraphRepresentation(vtkRenderedRepresentation): + color_edges_by_array:'getset_descriptor' + color_vertices_by_array:'getset_descriptor' + edge_color_array_name:'getset_descriptor' + edge_hover_array_name:'getset_descriptor' + edge_icon_alignment:'getset_descriptor' + edge_icon_array_name:'getset_descriptor' + edge_icon_priority_array_name:'getset_descriptor' + edge_icon_visibility:'getset_descriptor' + edge_label_array_name:'getset_descriptor' + edge_label_priority_array_name:'getset_descriptor' + edge_label_text_property:'getset_descriptor' + edge_label_visibility:'getset_descriptor' + edge_layout_strategy:'getset_descriptor' + edge_layout_strategy_name:'getset_descriptor' + edge_layout_strategy_to_geo:'getset_descriptor' + edge_scalar_bar:'getset_descriptor' + edge_scalar_bar_visibility:'getset_descriptor' + edge_selection:'getset_descriptor' + edge_visibility:'getset_descriptor' + enable_edges_by_array:'getset_descriptor' + enable_vertices_by_array:'getset_descriptor' + enabled_edges_array_name:'getset_descriptor' + enabled_vertices_array_name:'getset_descriptor' + glyph_type:'getset_descriptor' + hide_edge_labels_on_interaction:'getset_descriptor' + hide_vertex_labels_on_interaction:'getset_descriptor' + layout_strategy:'getset_descriptor' + layout_strategy_name:'getset_descriptor' + scaling:'getset_descriptor' + scaling_array_name:'getset_descriptor' + use_edge_icon_type_map:'getset_descriptor' + use_vertex_icon_type_map:'getset_descriptor' + vertex_color_array_name:'getset_descriptor' + vertex_default_icon:'getset_descriptor' + vertex_hover_array_name:'getset_descriptor' + vertex_icon_alignment:'getset_descriptor' + vertex_icon_array_name:'getset_descriptor' + vertex_icon_priority_array_name:'getset_descriptor' + vertex_icon_selection_mode:'getset_descriptor' + vertex_icon_visibility:'getset_descriptor' + vertex_label_array_name:'getset_descriptor' + vertex_label_priority_array_name:'getset_descriptor' + vertex_label_text_property:'getset_descriptor' + vertex_label_visibility:'getset_descriptor' + vertex_scalar_bar:'getset_descriptor' + vertex_scalar_bar_visibility:'getset_descriptor' + vertex_selected_icon:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def AddEdgeIconType(self, name:str, type:int) -> None: ... + def AddVertexIconType(self, name:str, type:int) -> None: ... + def ApplyViewTheme(self, theme:'vtkViewTheme') -> None: ... + def ClearEdgeIconTypes(self) -> None: ... + def ClearVertexIconTypes(self) -> None: ... + def ColorEdgesByArrayOff(self) -> None: ... + def ColorEdgesByArrayOn(self) -> None: ... + def ColorVerticesByArrayOff(self) -> None: ... + def ColorVerticesByArrayOn(self) -> None: ... + def ComputeSelectedGraphBounds(self, bounds:MutableSequence[float]) -> None: ... + def EdgeIconVisibilityOff(self) -> None: ... + def EdgeIconVisibilityOn(self) -> None: ... + def EdgeLabelVisibilityOff(self) -> None: ... + def EdgeLabelVisibilityOn(self) -> None: ... + def EdgeVisibilityOff(self) -> None: ... + def EdgeVisibilityOn(self) -> None: ... + def EnableEdgesByArrayOff(self) -> None: ... + def EnableEdgesByArrayOn(self) -> None: ... + def EnableVerticesByArrayOff(self) -> None: ... + def EnableVerticesByArrayOn(self) -> None: ... + def GetColorEdgesByArray(self) -> bool: ... + def GetColorVerticesByArray(self) -> bool: ... + def GetEdgeColorArrayName(self) -> str: ... + def GetEdgeHoverArrayName(self) -> str: ... + def GetEdgeIconAlignment(self) -> int: ... + def GetEdgeIconArrayName(self) -> str: ... + def GetEdgeIconPriorityArrayName(self) -> str: ... + def GetEdgeIconVisibility(self) -> bool: ... + def GetEdgeLabelArrayName(self) -> str: ... + def GetEdgeLabelPriorityArrayName(self) -> str: ... + def GetEdgeLabelTextProperty(self) -> 'vtkTextProperty': ... + def GetEdgeLabelVisibility(self) -> bool: ... + def GetEdgeLayoutStrategy(self) -> 'vtkEdgeLayoutStrategy': ... + def GetEdgeLayoutStrategyName(self) -> str: ... + def GetEdgeScalarBar(self) -> 'vtkScalarBarWidget': ... + def GetEdgeScalarBarVisibility(self) -> bool: ... + def GetEdgeSelection(self) -> bool: ... + def GetEdgeVisibility(self) -> bool: ... + def GetEnableEdgesByArray(self) -> bool: ... + def GetEnableVerticesByArray(self) -> bool: ... + def GetEnabledEdgesArrayName(self) -> str: ... + def GetEnabledVerticesArrayName(self) -> str: ... + def GetGlyphType(self) -> int: ... + def GetHideEdgeLabelsOnInteraction(self) -> bool: ... + def GetHideVertexLabelsOnInteraction(self) -> bool: ... + def GetLayoutStrategy(self) -> 'vtkGraphLayoutStrategy': ... + def GetLayoutStrategyName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetScaling(self) -> bool: ... + def GetScalingArrayName(self) -> str: ... + def GetUseEdgeIconTypeMap(self) -> bool: ... + def GetUseVertexIconTypeMap(self) -> bool: ... + def GetVertexColorArrayName(self) -> str: ... + def GetVertexDefaultIcon(self) -> int: ... + def GetVertexHoverArrayName(self) -> str: ... + def GetVertexIconAlignment(self) -> int: ... + def GetVertexIconArrayName(self) -> str: ... + def GetVertexIconPriorityArrayName(self) -> str: ... + def GetVertexIconSelectionMode(self) -> int: ... + def GetVertexIconVisibility(self) -> bool: ... + def GetVertexLabelArrayName(self) -> str: ... + def GetVertexLabelPriorityArrayName(self) -> str: ... + def GetVertexLabelTextProperty(self) -> 'vtkTextProperty': ... + def GetVertexLabelVisibility(self) -> bool: ... + def GetVertexScalarBar(self) -> 'vtkScalarBarWidget': ... + def GetVertexScalarBarVisibility(self) -> bool: ... + def GetVertexSelectedIcon(self) -> int: ... + def HideEdgeLabelsOnInteractionOff(self) -> None: ... + def HideEdgeLabelsOnInteractionOn(self) -> None: ... + def HideVertexLabelsOnInteractionOff(self) -> None: ... + def HideVertexLabelsOnInteractionOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + def IsLayoutComplete(self) -> bool: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRenderedGraphRepresentation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderedGraphRepresentation': ... + def ScalingOff(self) -> None: ... + def ScalingOn(self) -> None: ... + def SetColorEdgesByArray(self, b:bool) -> None: ... + def SetColorVerticesByArray(self, b:bool) -> None: ... + def SetEdgeColorArrayName(self, name:str) -> None: ... + def SetEdgeHoverArrayName(self, _arg:str) -> None: ... + def SetEdgeIconAlignment(self, align:int) -> None: ... + def SetEdgeIconArrayName(self, name:str) -> None: ... + def SetEdgeIconPriorityArrayName(self, name:str) -> None: ... + def SetEdgeIconVisibility(self, b:bool) -> None: ... + def SetEdgeLabelArrayName(self, name:str) -> None: ... + def SetEdgeLabelPriorityArrayName(self, name:str) -> None: ... + def SetEdgeLabelTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetEdgeLabelVisibility(self, b:bool) -> None: ... + @overload + def SetEdgeLayoutStrategy(self, strategy:'vtkEdgeLayoutStrategy') -> None: ... + @overload + def SetEdgeLayoutStrategy(self, name:str) -> None: ... + def SetEdgeLayoutStrategyToArcParallel(self) -> None: ... + def SetEdgeLayoutStrategyToGeo(self, explodeFactor:float=0.2) -> None: ... + def SetEdgeLayoutStrategyToPassThrough(self) -> None: ... + def SetEdgeScalarBarVisibility(self, b:bool) -> None: ... + def SetEdgeSelection(self, b:bool) -> None: ... + def SetEdgeVisibility(self, b:bool) -> None: ... + def SetEnableEdgesByArray(self, b:bool) -> None: ... + def SetEnableVerticesByArray(self, b:bool) -> None: ... + def SetEnabledEdgesArrayName(self, name:str) -> None: ... + def SetEnabledVerticesArrayName(self, name:str) -> None: ... + def SetGlyphType(self, type:int) -> None: ... + def SetHideEdgeLabelsOnInteraction(self, _arg:bool) -> None: ... + def SetHideVertexLabelsOnInteraction(self, _arg:bool) -> None: ... + @overload + def SetLayoutStrategy(self, strategy:'vtkGraphLayoutStrategy') -> None: ... + @overload + def SetLayoutStrategy(self, name:str) -> None: ... + def SetLayoutStrategyToAssignCoordinates(self, xarr:str, yarr:str=..., zarr:str=...) -> None: ... + def SetLayoutStrategyToCircular(self) -> None: ... + def SetLayoutStrategyToClustering2D(self) -> None: ... + def SetLayoutStrategyToCommunity2D(self) -> None: ... + def SetLayoutStrategyToCone(self) -> None: ... + @overload + def SetLayoutStrategyToCosmicTree(self) -> None: ... + @overload + def SetLayoutStrategyToCosmicTree(self, nodeSizeArrayName:str, sizeLeafNodesOnly:bool=True, layoutDepth:int=0, layoutRoot:int=-1) -> None: ... + def SetLayoutStrategyToFast2D(self) -> None: ... + def SetLayoutStrategyToForceDirected(self) -> None: ... + def SetLayoutStrategyToPassThrough(self) -> None: ... + def SetLayoutStrategyToRandom(self) -> None: ... + def SetLayoutStrategyToSimple2D(self) -> None: ... + def SetLayoutStrategyToSpanTree(self) -> None: ... + @overload + def SetLayoutStrategyToTree(self) -> None: ... + @overload + def SetLayoutStrategyToTree(self, radial:bool, angle:float=90, leafSpacing:float=0.9, logSpacing:float=1.0) -> None: ... + def SetScaling(self, b:bool) -> None: ... + def SetScalingArrayName(self, name:str) -> None: ... + def SetUseEdgeIconTypeMap(self, b:bool) -> None: ... + def SetUseVertexIconTypeMap(self, b:bool) -> None: ... + def SetVertexColorArrayName(self, name:str) -> None: ... + def SetVertexDefaultIcon(self, icon:int) -> None: ... + def SetVertexHoverArrayName(self, _arg:str) -> None: ... + def SetVertexIconAlignment(self, align:int) -> None: ... + def SetVertexIconArrayName(self, name:str) -> None: ... + def SetVertexIconPriorityArrayName(self, name:str) -> None: ... + def SetVertexIconSelectionMode(self, mode:int) -> None: ... + def SetVertexIconSelectionModeToAnnotationIcon(self) -> None: ... + def SetVertexIconSelectionModeToIgnoreSelection(self) -> None: ... + def SetVertexIconSelectionModeToSelectedIcon(self) -> None: ... + def SetVertexIconSelectionModeToSelectedOffset(self) -> None: ... + def SetVertexIconVisibility(self, b:bool) -> None: ... + def SetVertexLabelArrayName(self, name:str) -> None: ... + def SetVertexLabelPriorityArrayName(self, name:str) -> None: ... + def SetVertexLabelTextProperty(self, p:'vtkTextProperty') -> None: ... + def SetVertexLabelVisibility(self, b:bool) -> None: ... + def SetVertexScalarBarVisibility(self, b:bool) -> None: ... + def SetVertexSelectedIcon(self, icon:int) -> None: ... + def UpdateLayout(self) -> None: ... + def UseEdgeIconTypeMapOff(self) -> None: ... + def UseEdgeIconTypeMapOn(self) -> None: ... + def UseVertexIconTypeMapOff(self) -> None: ... + def UseVertexIconTypeMapOn(self) -> None: ... + def VertexIconVisibilityOff(self) -> None: ... + def VertexIconVisibilityOn(self) -> None: ... + def VertexLabelVisibilityOff(self) -> None: ... + def VertexLabelVisibilityOn(self) -> None: ... + +class vtkRenderedHierarchyRepresentation(vtkRenderedGraphRepresentation): + bundling_strength:'getset_descriptor' + color_graph_edges_by_array:'getset_descriptor' + graph_edge_color_array_name:'getset_descriptor' + graph_edge_color_to_spline_fraction:'getset_descriptor' + graph_edge_label_array_name:'getset_descriptor' + graph_edge_label_font_size:'getset_descriptor' + graph_edge_label_visibility:'getset_descriptor' + graph_spline_type:'getset_descriptor' + graph_visibility:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ColorGraphEdgesByArrayOff(self) -> None: ... + def ColorGraphEdgesByArrayOn(self) -> None: ... + @overload + def GetBundlingStrength(self) -> float: ... + @overload + def GetBundlingStrength(self, idx:int) -> float: ... + @overload + def GetColorGraphEdgesByArray(self) -> bool: ... + @overload + def GetColorGraphEdgesByArray(self, idx:int) -> bool: ... + @overload + def GetGraphEdgeColorArrayName(self) -> str: ... + @overload + def GetGraphEdgeColorArrayName(self, idx:int) -> str: ... + @overload + def GetGraphEdgeLabelArrayName(self) -> str: ... + @overload + def GetGraphEdgeLabelArrayName(self, idx:int) -> str: ... + @overload + def GetGraphEdgeLabelFontSize(self) -> int: ... + @overload + def GetGraphEdgeLabelFontSize(self, idx:int) -> int: ... + @overload + def GetGraphEdgeLabelVisibility(self) -> bool: ... + @overload + def GetGraphEdgeLabelVisibility(self, idx:int) -> bool: ... + def GetGraphSplineType(self, idx:int) -> int: ... + @overload + def GetGraphVisibility(self) -> bool: ... + @overload + def GetGraphVisibility(self, idx:int) -> bool: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GraphEdgeLabelVisibilityOff(self) -> None: ... + def GraphEdgeLabelVisibilityOn(self) -> None: ... + def GraphVisibilityOff(self) -> None: ... + def GraphVisibilityOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRenderedHierarchyRepresentation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderedHierarchyRepresentation': ... + @overload + def SetBundlingStrength(self, strength:float) -> None: ... + @overload + def SetBundlingStrength(self, strength:float, idx:int) -> None: ... + @overload + def SetColorGraphEdgesByArray(self, vis:bool) -> None: ... + @overload + def SetColorGraphEdgesByArray(self, vis:bool, idx:int) -> None: ... + @overload + def SetGraphEdgeColorArrayName(self, name:str) -> None: ... + @overload + def SetGraphEdgeColorArrayName(self, name:str, idx:int) -> None: ... + @overload + def SetGraphEdgeColorToSplineFraction(self) -> None: ... + @overload + def SetGraphEdgeColorToSplineFraction(self, idx:int) -> None: ... + @overload + def SetGraphEdgeLabelArrayName(self, name:str) -> None: ... + @overload + def SetGraphEdgeLabelArrayName(self, name:str, idx:int) -> None: ... + @overload + def SetGraphEdgeLabelFontSize(self, size:int) -> None: ... + @overload + def SetGraphEdgeLabelFontSize(self, size:int, idx:int) -> None: ... + @overload + def SetGraphEdgeLabelVisibility(self, vis:bool) -> None: ... + @overload + def SetGraphEdgeLabelVisibility(self, vis:bool, idx:int) -> None: ... + def SetGraphSplineType(self, type:int, idx:int) -> None: ... + @overload + def SetGraphVisibility(self, vis:bool) -> None: ... + @overload + def SetGraphVisibility(self, vis:bool, idx:int) -> None: ... + +class vtkRenderedSurfaceRepresentation(vtkRenderedRepresentation): + cell_color_array_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ApplyViewTheme(self, theme:'vtkViewTheme') -> None: ... + def GetCellColorArrayName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRenderedSurfaceRepresentation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderedSurfaceRepresentation': ... + def SetCellColorArrayName(self, arrayName:str) -> None: ... + +class vtkRenderedTreeAreaRepresentation(vtkRenderedRepresentation): + area_color_array_name:'getset_descriptor' + area_hover_array_name:'getset_descriptor' + area_label_array_name:'getset_descriptor' + area_label_mapper:'getset_descriptor' + area_label_priority_array_name:'getset_descriptor' + area_label_text_property:'getset_descriptor' + area_label_visibility:'getset_descriptor' + area_layout_strategy:'getset_descriptor' + area_size_array_name:'getset_descriptor' + area_to_poly_data:'getset_descriptor' + color_areas_by_array:'getset_descriptor' + color_graph_edges_by_array:'getset_descriptor' + edge_scalar_bar_visibility:'getset_descriptor' + graph_bundling_strength:'getset_descriptor' + graph_edge_color_array_name:'getset_descriptor' + graph_edge_color_to_spline_fraction:'getset_descriptor' + graph_edge_label_array_name:'getset_descriptor' + graph_edge_label_text_property:'getset_descriptor' + graph_edge_label_visibility:'getset_descriptor' + graph_hover_array_name:'getset_descriptor' + graph_spline_type:'getset_descriptor' + label_render_mode:'getset_descriptor' + shrink_percentage:'getset_descriptor' + use_rectangular_coordinates:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def ApplyViewTheme(self, theme:'vtkViewTheme') -> None: ... + def AreaLabelVisibilityOff(self) -> None: ... + def AreaLabelVisibilityOn(self) -> None: ... + def ColorAreasByArrayOff(self) -> None: ... + def ColorAreasByArrayOn(self) -> None: ... + def ColorGraphEdgesByArrayOff(self) -> None: ... + def ColorGraphEdgesByArrayOn(self) -> None: ... + def GetAreaColorArrayName(self) -> str: ... + def GetAreaHoverArrayName(self) -> str: ... + def GetAreaLabelArrayName(self) -> str: ... + def GetAreaLabelMapper(self) -> 'vtkLabeledDataMapper': ... + def GetAreaLabelPriorityArrayName(self) -> str: ... + def GetAreaLabelTextProperty(self) -> 'vtkTextProperty': ... + def GetAreaLabelVisibility(self) -> bool: ... + def GetAreaLayoutStrategy(self) -> 'vtkAreaLayoutStrategy': ... + def GetAreaSizeArrayName(self) -> str: ... + def GetAreaToPolyData(self) -> 'vtkPolyDataAlgorithm': ... + def GetColorAreasByArray(self) -> bool: ... + @overload + def GetColorGraphEdgesByArray(self) -> bool: ... + @overload + def GetColorGraphEdgesByArray(self, idx:int) -> bool: ... + def GetEdgeScalarBarVisibility(self) -> bool: ... + @overload + def GetGraphBundlingStrength(self) -> float: ... + @overload + def GetGraphBundlingStrength(self, idx:int) -> float: ... + @overload + def GetGraphEdgeColorArrayName(self) -> str: ... + @overload + def GetGraphEdgeColorArrayName(self, idx:int) -> str: ... + @overload + def GetGraphEdgeLabelArrayName(self) -> str: ... + @overload + def GetGraphEdgeLabelArrayName(self, idx:int) -> str: ... + @overload + def GetGraphEdgeLabelTextProperty(self) -> 'vtkTextProperty': ... + @overload + def GetGraphEdgeLabelTextProperty(self, idx:int) -> 'vtkTextProperty': ... + @overload + def GetGraphEdgeLabelVisibility(self) -> bool: ... + @overload + def GetGraphEdgeLabelVisibility(self, idx:int) -> bool: ... + @overload + def GetGraphHoverArrayName(self) -> str: ... + @overload + def GetGraphHoverArrayName(self, idx:int) -> str: ... + def GetGraphSplineType(self, idx:int) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetShrinkPercentage(self) -> float: ... + def GetUseRectangularCoordinates(self) -> bool: ... + def GraphEdgeLabelVisibilityOff(self) -> None: ... + def GraphEdgeLabelVisibilityOn(self) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkRenderedTreeAreaRepresentation': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkRenderedTreeAreaRepresentation': ... + def SetAreaColorArrayName(self, name:str) -> None: ... + def SetAreaHoverArrayName(self, _arg:str) -> None: ... + def SetAreaLabelArrayName(self, name:str) -> None: ... + def SetAreaLabelMapper(self, mapper:'vtkLabeledDataMapper') -> None: ... + def SetAreaLabelPriorityArrayName(self, name:str) -> None: ... + def SetAreaLabelTextProperty(self, tp:'vtkTextProperty') -> None: ... + def SetAreaLabelVisibility(self, vis:bool) -> None: ... + def SetAreaLayoutStrategy(self, strategy:'vtkAreaLayoutStrategy') -> None: ... + def SetAreaSizeArrayName(self, name:str) -> None: ... + def SetAreaToPolyData(self, areaToPoly:'vtkPolyDataAlgorithm') -> None: ... + def SetColorAreasByArray(self, vis:bool) -> None: ... + @overload + def SetColorGraphEdgesByArray(self, vis:bool) -> None: ... + @overload + def SetColorGraphEdgesByArray(self, vis:bool, idx:int) -> None: ... + def SetEdgeScalarBarVisibility(self, b:bool) -> None: ... + @overload + def SetGraphBundlingStrength(self, strength:float) -> None: ... + @overload + def SetGraphBundlingStrength(self, strength:float, idx:int) -> None: ... + @overload + def SetGraphEdgeColorArrayName(self, name:str) -> None: ... + @overload + def SetGraphEdgeColorArrayName(self, name:str, idx:int) -> None: ... + @overload + def SetGraphEdgeColorToSplineFraction(self) -> None: ... + @overload + def SetGraphEdgeColorToSplineFraction(self, idx:int) -> None: ... + @overload + def SetGraphEdgeLabelArrayName(self, name:str) -> None: ... + @overload + def SetGraphEdgeLabelArrayName(self, name:str, idx:int) -> None: ... + @overload + def SetGraphEdgeLabelTextProperty(self, tp:'vtkTextProperty') -> None: ... + @overload + def SetGraphEdgeLabelTextProperty(self, tp:'vtkTextProperty', idx:int) -> None: ... + @overload + def SetGraphEdgeLabelVisibility(self, vis:bool) -> None: ... + @overload + def SetGraphEdgeLabelVisibility(self, vis:bool, idx:int) -> None: ... + @overload + def SetGraphHoverArrayName(self, name:str) -> None: ... + @overload + def SetGraphHoverArrayName(self, name:str, idx:int) -> None: ... + def SetGraphSplineType(self, type:int, idx:int) -> None: ... + def SetLabelRenderMode(self, mode:int) -> None: ... + def SetShrinkPercentage(self, value:float) -> None: ... + def SetUseRectangularCoordinates(self, _arg:bool) -> None: ... + def UseRectangularCoordinatesOff(self) -> None: ... + def UseRectangularCoordinatesOn(self) -> None: ... + +class vtkSCurveSpline(vtkmodules.vtkCommonDataModel.vtkSpline): + node_weight:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def Compute(self) -> None: ... + def DeepCopy(self, s:'vtkSpline') -> None: ... + def Evaluate(self, t:float) -> float: ... + def GetNodeWeight(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkSCurveSpline': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkSCurveSpline': ... + def SetNodeWeight(self, _arg:float) -> None: ... + +class vtkTanglegramItem(vtkmodules.vtkRenderingContext2D.vtkContextItem): + correspondence_line_width:'getset_descriptor' + label_size_difference:'getset_descriptor' + minimum_visible_font_size:'getset_descriptor' + orientation:'getset_descriptor' + table:'getset_descriptor' + tree1:'getset_descriptor' + tree1_label:'getset_descriptor' + tree2:'getset_descriptor' + tree2_label:'getset_descriptor' + tree_line_width:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetCorrespondenceLineWidth(self) -> float: ... + def GetLabelSizeDifference(self) -> int: ... + def GetMinimumVisibleFontSize(self) -> int: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientation(self) -> int: ... + def GetTable(self) -> 'vtkTable': ... + def GetTree1Label(self) -> str: ... + def GetTree2Label(self) -> str: ... + def GetTreeLineWidth(self) -> float: ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MouseDoubleClickEvent(self, event:'vtkContextMouseEvent') -> bool: ... + def NewInstance(self) -> 'vtkTanglegramItem': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTanglegramItem': ... + def SetCorrespondenceLineWidth(self, _arg:float) -> None: ... + def SetLabelSizeDifference(self, _arg:int) -> None: ... + def SetMinimumVisibleFontSize(self, _arg:int) -> None: ... + def SetOrientation(self, orientation:int) -> None: ... + def SetTable(self, table:'vtkTable') -> None: ... + def SetTree1(self, tree:'vtkTree') -> None: ... + def SetTree1Label(self, _arg:str) -> None: ... + def SetTree2(self, tree:'vtkTree') -> None: ... + def SetTree2Label(self, _arg:str) -> None: ... + def SetTreeLineWidth(self, width:float) -> None: ... + +class vtkTreeHeatmapItem(vtkmodules.vtkRenderingContext2D.vtkContextItem): + column_tree:'getset_descriptor' + dendrogram:'getset_descriptor' + heatmap:'getset_descriptor' + orientation:'getset_descriptor' + pruned_tree:'getset_descriptor' + table:'getset_descriptor' + tree:'getset_descriptor' + tree_color_array:'getset_descriptor' + tree_line_width:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def CollapseToNumberOfLeafNodes(self, n:int) -> None: ... + def GetBounds(self, bounds:MutableSequence[float]) -> None: ... + def GetCenter(self, center:MutableSequence[float]) -> None: ... + def GetColumnTree(self) -> 'vtkTree': ... + def GetDendrogram(self) -> 'vtkDendrogramItem': ... + def GetHeatmap(self) -> 'vtkHeatmapItem': ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetOrientation(self) -> int: ... + def GetPrunedTree(self) -> 'vtkTree': ... + def GetSize(self, size:MutableSequence[float]) -> None: ... + def GetTable(self) -> 'vtkTable': ... + def GetTree(self) -> 'vtkTree': ... + def GetTreeLineWidth(self) -> float: ... + def Hit(self, mouse:'vtkContextMouseEvent') -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def MouseDoubleClickEvent(self, event:'vtkContextMouseEvent') -> bool: ... + def NewInstance(self) -> 'vtkTreeHeatmapItem': ... + def ReorderTable(self) -> None: ... + def ReverseTableColumns(self) -> None: ... + def ReverseTableRows(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTreeHeatmapItem': ... + def SetColumnTree(self, tree:'vtkTree') -> None: ... + def SetDendrogram(self, dendrogram:'vtkDendrogramItem') -> None: ... + def SetHeatmap(self, heatmap:'vtkHeatmapItem') -> None: ... + def SetOrientation(self, orientation:int) -> None: ... + def SetTable(self, table:'vtkTable') -> None: ... + def SetTree(self, tree:'vtkTree') -> None: ... + def SetTreeColorArray(self, arrayName:str) -> None: ... + def SetTreeLineWidth(self, width:float) -> None: ... + +class vtkTreeMapView(vtkTreeAreaView): + font_size_range:'getset_descriptor' + layout_strategy:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFontSizeRange(self, range:MutableSequence[int]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTreeMapView': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTreeMapView': ... + def SetFontSizeRange(self, maxSize:int, minSize:int, delta:int=4) -> None: ... + @overload + def SetLayoutStrategy(self, s:'vtkAreaLayoutStrategy') -> None: ... + @overload + def SetLayoutStrategy(self, name:str) -> None: ... + def SetLayoutStrategyToBox(self) -> None: ... + def SetLayoutStrategyToSliceAndDice(self) -> None: ... + def SetLayoutStrategyToSquarify(self) -> None: ... + +class vtkTreeRingView(vtkTreeAreaView): + interior_log_spacing_value:'getset_descriptor' + interior_radius:'getset_descriptor' + layer_thickness:'getset_descriptor' + root_angles:'getset_descriptor' + root_at_center:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetInteriorLogSpacingValue(self) -> float: ... + def GetInteriorRadius(self) -> float: ... + def GetLayerThickness(self) -> float: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetRootAtCenter(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkTreeRingView': ... + def RootAtCenterOff(self) -> None: ... + def RootAtCenterOn(self) -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkTreeRingView': ... + def SetInteriorLogSpacingValue(self, value:float) -> None: ... + def SetInteriorRadius(self, rad:float) -> None: ... + def SetLayerThickness(self, thickness:float) -> None: ... + def SetRootAngles(self, start:float, end:float) -> None: ... + def SetRootAtCenter(self, center:bool) -> None: ... + +class vtkViewUpdater(vtkmodules.vtkCommonCore.vtkObject): + def __init__(self, **properties:Any) -> None: ... + def AddAnnotationLink(self, link:'vtkAnnotationLink') -> None: ... + def AddView(self, view:'vtkView') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkViewUpdater': ... + def RemoveView(self, view:'vtkView') -> None: ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkViewUpdater': ... + diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkWebCore.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkWebCore.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..e6b1b25 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkWebCore.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkWebGLExporter.cpython-311-x86_64-linux-gnu.so b/venv/lib/python3.11/site-packages/vtkmodules/vtkWebGLExporter.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000..5a3f185 Binary files /dev/null and b/venv/lib/python3.11/site-packages/vtkmodules/vtkWebGLExporter.cpython-311-x86_64-linux-gnu.so differ diff --git a/venv/lib/python3.11/site-packages/vtkmodules/vtkWebGLExporter.pyi b/venv/lib/python3.11/site-packages/vtkmodules/vtkWebGLExporter.pyi new file mode 100644 index 0000000..0bcf1f4 --- /dev/null +++ b/venv/lib/python3.11/site-packages/vtkmodules/vtkWebGLExporter.pyi @@ -0,0 +1,196 @@ +from typing import overload, Any, Callable, TypeVar, Union +from typing import Tuple, List, Sequence, MutableSequence + +Callback = Union[Callable[..., None], None] +Buffer = TypeVar('Buffer') +Pointer = TypeVar('Pointer') +Template = TypeVar('Template') + +import vtkmodules.vtkCommonCore +import vtkmodules.vtkIOExport + +class WebGLObjectTypes(int): ... + +VTK_ONLYCAMERA:int +VTK_ONLYWIDGET:int +VTK_PARSEALL:int +wLINES:'WebGLObjectTypes' +wPOINTS:'WebGLObjectTypes' +wTRIANGLES:'WebGLObjectTypes' + +class vtkPVWebGLExporter(vtkmodules.vtkIOExport.vtkExporter): + file_name:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GetFileName(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkPVWebGLExporter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkPVWebGLExporter': ... + def SetFileName(self, _arg:str) -> None: ... + +class vtkWebGLDataSet(vtkmodules.vtkCommonCore.vtkObject): + binary_data:'getset_descriptor' + binary_size:'getset_descriptor' + colors:'getset_descriptor' + matrix:'getset_descriptor' + md5:'getset_descriptor' + normals:'getset_descriptor' + t_coords:'getset_descriptor' + type:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateBinaryData(self) -> None: ... + def GetBinaryData(self) -> Pointer: ... + def GetBinarySize(self) -> int: ... + def GetMD5(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def HasChanged(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWebGLDataSet': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWebGLDataSet': ... + def SetColors(self, c:MutableSequence[int]) -> None: ... + def SetIndexes(self, i:MutableSequence[int], size:int) -> None: ... + def SetMatrix(self, m:MutableSequence[float]) -> None: ... + def SetNormals(self, n:MutableSequence[float]) -> None: ... + def SetPoints(self, p:MutableSequence[float], size:int) -> None: ... + def SetTCoords(self, t:MutableSequence[float]) -> None: ... + def SetType(self, t:'WebGLObjectTypes') -> None: ... + def SetVertices(self, v:MutableSequence[float], size:int) -> None: ... + +class vtkWebGLExporter(vtkmodules.vtkCommonCore.vtkObject): + center_of_rotation:'getset_descriptor' + id:'getset_descriptor' + max_allowed_size:'getset_descriptor' + number_of_objects:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + @staticmethod + def ComputeMD5(content:Sequence[int], size:int, hash:str) -> None: ... + def GenerateMetadata(self) -> str: ... + def GetId(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfObjects(self) -> int: ... + def GetWebGLObject(self, index:int) -> 'vtkWebGLObject': ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWebGLExporter': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWebGLExporter': ... + def SetCenterOfRotation(self, a1:float, a2:float, a3:float) -> None: ... + @overload + def SetMaxAllowedSize(self, mesh:int, lines:int) -> None: ... + @overload + def SetMaxAllowedSize(self, size:int) -> None: ... + def exportStaticScene(self, renderers:'vtkRendererCollection', width:int, height:int, path:str) -> None: ... + def hasChanged(self) -> bool: ... + def parseScene(self, renderers:'vtkRendererCollection', viewId:str, parseType:int) -> None: ... + +class vtkWebGLObject(vtkmodules.vtkCommonCore.vtkObject): + has_transparency:'getset_descriptor' + id:'getset_descriptor' + interact_at_server:'getset_descriptor' + is_widget:'getset_descriptor' + layer:'getset_descriptor' + md5:'getset_descriptor' + number_of_parts:'getset_descriptor' + renderer_id:'getset_descriptor' + transformation_matrix:'getset_descriptor' + type:'getset_descriptor' + visibility:'getset_descriptor' + wireframe_mode:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateBinaryData(self) -> None: ... + @overload + def GetBinaryData(self, part:int) -> Pointer: ... + @overload + def GetBinaryData(self, part:int, buffer:'vtkUnsignedCharArray') -> None: ... + def GetBinarySize(self, part:int) -> int: ... + def GetId(self) -> str: ... + def GetLayer(self) -> int: ... + def GetMD5(self) -> str: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfParts(self) -> int: ... + def GetRendererId(self) -> int: ... + def HasChanged(self) -> bool: ... + def HasTransparency(self) -> bool: ... + def InteractAtServer(self) -> bool: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWebGLObject': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWebGLObject': ... + def SetHasTransparency(self, t:bool) -> None: ... + def SetId(self, i:str) -> None: ... + def SetInteractAtServer(self, i:bool) -> None: ... + def SetIsWidget(self, w:bool) -> None: ... + def SetLayer(self, l:int) -> None: ... + def SetRendererId(self, i:int) -> None: ... + def SetTransformationMatrix(self, m:'vtkMatrix4x4') -> None: ... + def SetType(self, t:'WebGLObjectTypes') -> None: ... + def SetVisibility(self, vis:bool) -> None: ... + def SetWireframeMode(self, wireframe:bool) -> None: ... + def isVisible(self) -> bool: ... + def isWidget(self) -> bool: ... + def isWireframeMode(self) -> bool: ... + +class vtkWebGLPolyData(vtkWebGLObject): + number_of_parts:'getset_descriptor' + transformation_matrix:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateBinaryData(self) -> None: ... + def GetBinaryData(self, part:int) -> Pointer: ... + def GetBinarySize(self, part:int) -> int: ... + def GetColorsFromPointData(self, color:MutableSequence[int], pointdata:'vtkPointData', polydata:'vtkPolyData', actor:'vtkActor') -> None: ... + def GetColorsFromPolyData(self, color:MutableSequence[int], polydata:'vtkPolyData', actor:'vtkActor') -> None: ... + def GetLines(self, polydata:'vtkTriangleFilter', actor:'vtkActor', lineMaxSize:int) -> None: ... + def GetLinesFromPolygon(self, mapper:'vtkMapper', actor:'vtkActor', lineMaxSize:int, edgeColor:MutableSequence[float]) -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfParts(self) -> int: ... + def GetPoints(self, polydata:'vtkTriangleFilter', actor:'vtkActor', maxSize:int) -> None: ... + def GetPolygonsFromCellData(self, polydata:'vtkTriangleFilter', actor:'vtkActor', maxSize:int) -> None: ... + def GetPolygonsFromPointData(self, polydata:'vtkTriangleFilter', actor:'vtkActor', maxSize:int) -> None: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWebGLPolyData': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWebGLPolyData': ... + def SetLine(self, _points:MutableSequence[float], _numberOfPoints:int, _index:MutableSequence[int], _numberOfIndex:int, _colors:MutableSequence[int], maxSize:int) -> None: ... + def SetMesh(self, _vertices:MutableSequence[float], _numberOfVertices:int, _index:MutableSequence[int], _numberOfIndexes:int, _normals:MutableSequence[float], _colors:MutableSequence[int], _tcoords:MutableSequence[float], maxSize:int) -> None: ... + def SetPoints(self, points:MutableSequence[float], numberOfPoints:int, colors:MutableSequence[int], maxSize:int) -> None: ... + def SetTransformationMatrix(self, m:'vtkMatrix4x4') -> None: ... + +class vtkWebGLWidget(vtkWebGLObject): + number_of_parts:'getset_descriptor' + def __init__(self, **properties:Any) -> None: ... + def GenerateBinaryData(self) -> None: ... + def GetBinaryData(self, part:int) -> Pointer: ... + def GetBinarySize(self, part:int) -> int: ... + def GetDataFromColorMap(self, actor:'vtkActor2D') -> None: ... + def GetNumberOfGenerationsFromBase(self, type:str) -> int: ... + @staticmethod + def GetNumberOfGenerationsFromBaseType(type:str) -> int: ... + def GetNumberOfParts(self) -> int: ... + def IsA(self, type:str) -> int: ... + @staticmethod + def IsTypeOf(type:str) -> int: ... + def NewInstance(self) -> 'vtkWebGLWidget': ... + @staticmethod + def SafeDownCast(o:'vtkObjectBase') -> 'vtkWebGLWidget': ... + diff --git a/venv/lib64 b/venv/lib64 new file mode 100644 index 0000000..7951405 --- /dev/null +++ b/venv/lib64 @@ -0,0 +1 @@ +lib \ No newline at end of file diff --git a/venv/pyvenv.cfg b/venv/pyvenv.cfg new file mode 100644 index 0000000..7ae1ce9 --- /dev/null +++ b/venv/pyvenv.cfg @@ -0,0 +1,5 @@ +home = /opt/anaconda3/envs/moldinsight/bin +include-system-site-packages = false +version = 3.11.14 +executable = /opt/anaconda3/envs/moldinsight/bin/python3.11 +command = /opt/anaconda3/envs/moldinsight/bin/python3 -m venv /opt/moldinsight/moldinsight_project/venv diff --git a/venv/share/man/man1/ttx.1 b/venv/share/man/man1/ttx.1 new file mode 100644 index 0000000..bba23b5 --- /dev/null +++ b/venv/share/man/man1/ttx.1 @@ -0,0 +1,225 @@ +.Dd May 18, 2004 +.\" ttx is not specific to any OS, but contrary to what groff_mdoc(7) +.\" seems to imply, entirely omitting the .Os macro causes 'BSD' to +.\" be used, so I give a zero-width space as its argument. +.Os \& +.\" The "FontTools Manual" argument apparently has no effect in +.\" groff 1.18.1. I think it is a bug in the -mdoc groff package. +.Dt TTX 1 "FontTools Manual" +.Sh NAME +.Nm ttx +.Nd tool for manipulating TrueType and OpenType fonts +.Sh SYNOPSIS +.Nm +.Bk +.Op Ar option ... +.Ek +.Bk +.Ar file ... +.Ek +.Sh DESCRIPTION +.Nm +is a tool for manipulating TrueType and OpenType fonts. It can convert +TrueType and OpenType fonts to and from an +.Tn XML Ns -based format called +.Tn TTX . +.Tn TTX +files have a +.Ql .ttx +extension. +.Pp +For each +.Ar file +argument it is given, +.Nm +detects whether it is a +.Ql .ttf , +.Ql .otf +or +.Ql .ttx +file and acts accordingly: if it is a +.Ql .ttf +or +.Ql .otf +file, it generates a +.Ql .ttx +file; if it is a +.Ql .ttx +file, it generates a +.Ql .ttf +or +.Ql .otf +file. +.Pp +By default, every output file is created in the same directory as the +corresponding input file and with the same name except for the +extension, which is substituted appropriately. +.Nm +never overwrites existing files; if necessary, it appends a suffix to +the output file name before the extension, as in +.Pa Arial#1.ttf . +.Ss "General options" +.Bl -tag -width ".Fl t Ar table" +.It Fl h +Display usage information. +.It Fl d Ar dir +Write the output files to directory +.Ar dir +instead of writing every output file to the same directory as the +corresponding input file. +.It Fl o Ar file +Write the output to +.Ar file +instead of writing it to the same directory as the +corresponding input file. +.It Fl v +Be verbose. Write more messages to the standard output describing what +is being done. +.It Fl a +Allow virtual glyphs ID's on compile or decompile. +.El +.Ss "Dump options" +The following options control the process of dumping font files +(TrueType or OpenType) to +.Tn TTX +files. +.Bl -tag -width ".Fl t Ar table" +.It Fl l +List table information. Instead of dumping the font to a +.Tn TTX +file, display minimal information about each table. +.It Fl t Ar table +Dump table +.Ar table . +This option may be given multiple times to dump several tables at +once. When not specified, all tables are dumped. +.It Fl x Ar table +Exclude table +.Ar table +from the list of tables to dump. This option may be given multiple +times to exclude several tables from the dump. The +.Fl t +and +.Fl x +options are mutually exclusive. +.It Fl s +Split tables. Dump each table to a separate +.Tn TTX +file and write (under the name that would have been used for the output +file if the +.Fl s +option had not been given) one small +.Tn TTX +file containing references to the individual table dump files. This +file can be used as input to +.Nm +as long as the referenced files can be found in the same directory. +.It Fl i +.\" XXX: I suppose OpenType programs (exist and) are also affected. +Don't disassemble TrueType instructions. When this option is specified, +all TrueType programs (glyph programs, the font program and the +pre-program) are written to the +.Tn TTX +file as hexadecimal data instead of +assembly. This saves some time and results in smaller +.Tn TTX +files. +.It Fl y Ar n +When decompiling a TrueType Collection (TTC) file, +decompile font number +.Ar n , +starting from 0. +.El +.Ss "Compilation options" +The following options control the process of compiling +.Tn TTX +files into font files (TrueType or OpenType): +.Bl -tag -width ".Fl t Ar table" +.It Fl m Ar fontfile +Merge the input +.Tn TTX +file +.Ar file +with +.Ar fontfile . +No more than one +.Ar file +argument can be specified when this option is used. +.It Fl b +Don't recalculate glyph bounding boxes. Use the values in the +.Tn TTX +file as is. +.El +.Sh "THE TTX FILE FORMAT" +You can find some information about the +.Tn TTX +file format in +.Pa documentation.html . +In particular, you will find in that file the list of tables understood by +.Nm +and the relations between TrueType GlyphIDs and the glyph names used in +.Tn TTX +files. +.Sh EXAMPLES +In the following examples, all files are read from and written to the +current directory. Additionally, the name given for the output file +assumes in every case that it did not exist before +.Nm +was invoked. +.Pp +Dump the TrueType font contained in +.Pa FreeSans.ttf +to +.Pa FreeSans.ttx : +.Pp +.Dl ttx FreeSans.ttf +.Pp +Compile +.Pa MyFont.ttx +into a TrueType or OpenType font file: +.Pp +.Dl ttx MyFont.ttx +.Pp +List the tables in +.Pa FreeSans.ttf +along with some information: +.Pp +.Dl ttx -l FreeSans.ttf +.Pp +Dump the +.Sq cmap +table from +.Pa FreeSans.ttf +to +.Pa FreeSans.ttx : +.Pp +.Dl ttx -t cmap FreeSans.ttf +.Sh NOTES +On MS\-Windows and MacOS, +.Nm +is available as a graphical application to which files can be dropped. +.Sh SEE ALSO +.Pa documentation.html +.Pp +.Xr fontforge 1 , +.Xr ftinfo 1 , +.Xr gfontview 1 , +.Xr xmbdfed 1 , +.Xr Font::TTF 3pm +.Sh AUTHORS +.Nm +was written by +.An -nosplit +.An "Just van Rossum" Aq just@letterror.com . +.Pp +This manual page was written by +.An "Florent Rougon" Aq f.rougon@free.fr +for the Debian GNU/Linux system based on the existing FontTools +documentation. It may be freely used, modified and distributed without +restrictions. +.\" For Emacs: +.\" Local Variables: +.\" fill-column: 72 +.\" sentence-end: "[.?!][]\"')}]*\\($\\| $\\| \\| \\)[ \n]*" +.\" sentence-end-double-space: t +.\" End: \ No newline at end of file